<?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>234365</bug_id>
          
          <creation_ts>2021-12-15 13:46:08 -0800</creation_ts>
          <short_desc>Remove unreachable code in Plugin and PluginController</short_desc>
          <delta_ts>2021-12-16 16:19:56 -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>andersca</cc>
    
    <cc>cdumez</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1824530</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-12-15 13:46:08 -0800</bug_when>
    <thetext>Remove unreachable code in Plugin and PluginController</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824535</commentid>
    <comment_count>1</comment_count>
      <attachid>447282</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-12-15 13:52:53 -0800</bug_when>
    <thetext>Created attachment 447282
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824536</commentid>
    <comment_count>2</comment_count>
      <attachid>447282</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2021-12-15 13:54:40 -0800</bug_when>
    <thetext>Comment on attachment 447282
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824566</commentid>
    <comment_count>3</comment_count>
      <attachid>447294</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-12-15 15:44:06 -0800</bug_when>
    <thetext>Created attachment 447294
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824578</commentid>
    <comment_count>4</comment_count>
      <attachid>447294</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2021-12-15 16:29:24 -0800</bug_when>
    <thetext>Comment on attachment 447294
Patch

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

&gt; Source/WTF/ChangeLog:6
&gt; +        Reviewed by Geoff Garen.

🤔</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824613</commentid>
    <comment_count>5</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-12-15 17:53:17 -0800</bug_when>
    <thetext>http://trac.webkit.org/r287121</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824614</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-15 17:54:48 -0800</bug_when>
    <thetext>&lt;rdar://problem/86552090&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824906</commentid>
    <comment_count>7</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-12-16 16:19:56 -0800</bug_when>
    <thetext>http://trac.webkit.org/r287164</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447282</attachid>
            <date>2021-12-15 13:52:53 -0800</date>
            <delta_ts>2021-12-15 15:44:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234365-20211215135252.patch</filename>
            <type>text/plain</type>
            <size>41153</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MDkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDc0NzEyMDI4ZDI4OTc0MTFjNmJkYjRk
NjAyOWNhYTM4N2EzYTg2ZTEuLjViYjY0NDUxNzBlODIyNjAyNzViMzQyNmMyM2E1N2RmMjhkY2Jl
ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMTItMTUgIEFsZXggQ2hyaXN0ZW5zZW4gIDxh
Y2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZW1vdmUgdW5yZWFjaGFibGUgY29k
ZSBpbiBQbHVnaW4gYW5kIFBsdWdpbkNvbnRyb2xsZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDM2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJl
bmNlcy55YW1sOgorICAgICAgICAqIFNjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJ
bnRlcm5hbC55YW1sOgorCiAyMDIxLTEyLTE1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CiAKICAgICAgICAgTW92ZSBTV1NlcnZlcnMgZnJvbSBOZXR3b3JrUHJvY2VzcyB0byBOZXR3
b3JrU2Vzc2lvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDJlOGEyMjQ3MDhhY2JhMTMzYjY0YWI5YTJlZDc4NDM2
YmExNzkzNmYuLjQxYmUxMDc3N2Q2NTIwNGQ4MDQxMWI4Y2ViYWIyZWZlYzc3Y2ZmMjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMS0xMi0xNSAgQWxleCBDaHJpc3RlbnNlbiAgPGFj
aHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIFJlbW92ZSB1bnJlYWNoYWJsZSBjb2Rl
IGluIFBsdWdpbiBhbmQgUGx1Z2luQ29udHJvbGxlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0MzY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmg6
CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlck1hYy5tbToKKyAgICAgICAg
KiBoaXN0b3J5L0JhY2tGb3J3YXJkQ2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2FuQ2Fj
aGVGcmFtZSk6CisgICAgICAgICogcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg6CisgICAg
ICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzZXRFeHBlcmltZW50YWxQbHVn
SW5TYW5kYm94UHJvZmlsZXNFbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJ1
bnRpbWVFbmFibGVkRmVhdHVyZXM6OmV4cGVyaW1lbnRhbFBsdWdJblNhbmRib3hQcm9maWxlc0Vu
YWJsZWQgY29uc3QpOiBEZWxldGVkLgorCiAyMDIxLTEyLTE1ICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTW9yZSBjbGVhbnVwIGFmdGVyIFBs
dWdpblByb2Nlc3MgcmVtb3ZhbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBiNWRmNjAxMjdmMzA3ZjY2NmViM2MzOTgw
MGY3NDJlYTgzN2M3MDkyLi5jOTEwMGZjNGE0OGY4NmFmNWJkOTY2NzhmODA0ZGMzNjQ3OGJlYzFm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDc3IEBACisyMDIxLTEyLTE1ICBBbGV4IENocmlzdGVuc2Vu
ICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIHVucmVhY2hhYmxl
IGNvZGUgaW4gUGx1Z2luIGFuZCBQbHVnaW5Db250cm9sbGVyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQzNjUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVu
Y2VzLmNwcDoKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNTZXRQYWdlQ2FjaGVTdXBwb3J0c1BsdWdp
bnMpOgorICAgICAgICAoV0tQcmVmZXJlbmNlc0dldFBhZ2VDYWNoZVN1cHBvcnRzUGx1Z2lucyk6
CisgICAgICAgIChXS1ByZWZlcmVuY2VzU2V0QXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRp
b25FbmFibGVkKToKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNHZXRBc3luY2hyb25vdXNQbHVnaW5J
bml0aWFsaXphdGlvbkVuYWJsZWQpOgorICAgICAgICAoV0tQcmVmZXJlbmNlc1NldEFzeW5jaHJv
bm91c1BsdWdpbkluaXRpYWxpemF0aW9uRW5hYmxlZEZvckFsbFBsdWdpbnMpOgorICAgICAgICAo
V0tQcmVmZXJlbmNlc0dldEFzeW5jaHJvbm91c1BsdWdpbkluaXRpYWxpemF0aW9uRW5hYmxlZEZv
ckFsbFBsdWdpbnMpOgorICAgICAgICAoV0tQcmVmZXJlbmNlc1NldEFydGlmaWNpYWxQbHVnaW5J
bml0aWFsaXphdGlvbkRlbGF5RW5hYmxlZCk6CisgICAgICAgIChXS1ByZWZlcmVuY2VzR2V0QXJ0
aWZpY2lhbFBsdWdpbkluaXRpYWxpemF0aW9uRGVsYXlFbmFibGVkKToKKyAgICAgICAgKFdLUHJl
ZmVyZW5jZXNTZXRQbHVnaW5TYW5kYm94UHJvZmlsZXNFbmFibGVkRm9yQWxsUGx1Z2lucyk6Cisg
ICAgICAgIChXS1ByZWZlcmVuY2VzR2V0UGx1Z2luU2FuZGJveFByb2ZpbGVzRW5hYmxlZEZvckFs
bFBsdWdpbnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5t
bToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBfc2V0UGFnZUNhY2hlU3VwcG9ydHNQbHVnaW5z
Ol0pOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIF9wYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnNd
KToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBfc2V0QXN5bmNocm9ub3VzUGx1Z2luSW5pdGlh
bGl6YXRpb25FbmFibGVkOl0pOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIF9hc3luY2hyb25v
dXNQbHVnaW5Jbml0aWFsaXphdGlvbkVuYWJsZWRdKToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNl
cyBfc2V0QXJ0aWZpY2lhbFBsdWdpbkluaXRpYWxpemF0aW9uRGVsYXlFbmFibGVkOl0pOgorICAg
ICAgICAoLVtXS1ByZWZlcmVuY2VzIF9hcnRpZmljaWFsUGx1Z2luSW5pdGlhbGl6YXRpb25EZWxh
eUVuYWJsZWRdKToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBfc2V0RXhwZXJpbWVudGFsUGx1
Z0luU2FuZGJveFByb2ZpbGVzRW5hYmxlZDpdKToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBf
ZXhwZXJpbWVudGFsUGx1Z0luU2FuZGJveFByb2ZpbGVzRW5hYmxlZF0pOgorICAgICAgICAqIFdl
YlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLmg6CisgICAgICAgIChpc1R5cGUpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tOgorICAgICAgICAoV2Vi
S2l0OjpQREZQbHVnaW46OlBERlBsdWdpbik6CisgICAgICAgIChXZWJLaXQ6OlBERlBsdWdpbjo6
Z2V0U2VsZWN0aW9uRm9yV29yZEF0UG9pbnQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIFdl
YlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW46OlBs
dWdpbik6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5oOgor
ICAgICAgICAoV2ViS2l0OjpQbHVnaW46OnR5cGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAo
V2ViS2l0OjpQbHVnaW46OmlzUGx1Z2luUHJveHkgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAo
V2ViS2l0OjpQbHVnaW46OmlzTmV0c2NhcGVQbHVnaW4gY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpQbHVnaW46OmlzUERGUGx1Z2luIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luQ29udHJvbGxlci5oOgorICAgICAgICAoV2ViS2l0
OjpQbHVnaW5Db250cm9sbGVyOjphc3luY2hyb25vdXNQbHVnaW5Jbml0aWFsaXphdGlvbkVuYWJs
ZWQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Db250cm9sbGVyOjph
c3luY2hyb25vdXNQbHVnaW5Jbml0aWFsaXphdGlvbkVuYWJsZWRGb3JBbGxQbHVnaW5zIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UGx1Z2luQ29udHJvbGxlcjo6YXJ0aWZpY2lh
bFBsdWdpbkluaXRpYWxpemF0aW9uRGVsYXlFbmFibGVkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6UGx1Z2luQ29udHJvbGxlcjo6UGx1Z2luRGVzdHJ1Y3Rpb25Qcm90ZWN0b3I6
OlBsdWdpbkRlc3RydWN0aW9uUHJvdGVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
UGx1Z2luQ29udHJvbGxlcjo6UGx1Z2luRGVzdHJ1Y3Rpb25Qcm90ZWN0b3I6On5QbHVnaW5EZXN0
cnVjdGlvblByb3RlY3Rvcik6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblZpZXcuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5WaWV3Ojppbml0aWFsaXpl
UGx1Z2luKToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luVmlldzo6cGx1Z2luRm9jdXNPcldpbmRv
d0ZvY3VzQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblZpZXc6OmRpZEZhaWxUb0lu
aXRpYWxpemVQbHVnaW4pOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5WaWV3Ojpn
ZXRTZWxlY3Rpb25Gb3JXb3JkQXRQb2ludCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6OlBsdWdpblZpZXc6OmludmFsaWRhdGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQ
bHVnaW5WaWV3Ojp1c2VyQWdlbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5W
aWV3OjpjYW5jZWxTdHJlYW1Mb2FkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UGx1Z2lu
Vmlldzo6Y29udGludWVTdHJlYW1Mb2FkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UGx1
Z2luVmlldzo6Y2FuY2VsTWFudWFsU3RyZWFtTG9hZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6OlBsdWdpblZpZXc6OnNldFN0YXR1c2JhclRleHQpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpQbHVnaW5WaWV3Ojppc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6UGx1Z2luVmlldzo6Y29tcG9zaXRpbmdSZW5kZXJTZXJ2ZXJQ
b3J0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UGx1Z2luVmlldzo6Z2V0QXV0aGVudGlj
YXRpb25JbmZvKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UGx1Z2luVmlldzo6aXNQcml2
YXRlQnJvd3NpbmdFbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UGx1Z2luVmll
dzo6YXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRpb25FbmFibGVkIGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6UGx1Z2luVmlldzo6YXN5bmNocm9ub3VzUGx1Z2luSW5pdGlh
bGl6YXRpb25FbmFibGVkRm9yQWxsUGx1Z2lucyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6OlBsdWdpblZpZXc6OmFydGlmaWNpYWxQbHVnaW5Jbml0aWFsaXphdGlvbkRlbGF5RW5h
YmxlZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlBsdWdpblZpZXc6OnByb3Rl
Y3RQbHVnaW5Gcm9tRGVzdHJ1Y3Rpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQbHVn
aW5WaWV3Ojp1bnByb3RlY3RQbHVnaW5Gcm9tRGVzdHJ1Y3Rpb24pOiBEZWxldGVkLgorICAgICAg
ICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3Lmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6YXN5bmNocm9u
b3VzUGx1Z2luSW5pdGlhbGl6YXRpb25FbmFibGVkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6c2V0QXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRpb25FbmFi
bGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6YXN5bmNocm9ub3VzUGx1
Z2luSW5pdGlhbGl6YXRpb25FbmFibGVkRm9yQWxsUGx1Z2lucyBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldEFzeW5jaHJvbm91c1BsdWdpbkluaXRpYWxpemF0
aW9uRW5hYmxlZEZvckFsbFBsdWdpbnMpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlOjphcnRpZmljaWFsUGx1Z2luSW5pdGlhbGl6YXRpb25EZWxheUVuYWJsZWQgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZXRBcnRpZmljaWFsUGx1Z2luSW5p
dGlhbGl6YXRpb25EZWxheUVuYWJsZWQpOiBEZWxldGVkLgorCiAyMDIxLTEyLTE1ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTW9yZSBjbGVh
bnVwIGFmdGVyIFBsdWdpblByb2Nlc3MgcmVtb3ZhbApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9T
Y3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzLnlhbWwgYi9Tb3VyY2UvV1RGL1Njcmlw
dHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXMueWFtbAppbmRleCA2NDc1YWEwM2RkNjQzZmJi
OGM1N2M5MzM3NTBlMmU1MzQ2OTQ0NGQxLi5mYWU0ZjJmZTE0ZmM5MDBkMzc0MWJmNGNkMWVkZGFj
ZTFkYzY1MDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2Vi
UHJlZmVyZW5jZXMueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2Vi
UHJlZmVyZW5jZXMueWFtbApAQCAtMzEyLDMwICszMTIsNiBAQCBBcHBsZVBheUVuYWJsZWQ6CiAg
ICAgICAiRU5BQkxFKEFQUExFX1BBWV9SRU1PVEVfVUkpIjogdHJ1ZQogICAgICAgZGVmYXVsdDog
ZmFsc2UKIAotQXJ0aWZpY2lhbFBsdWdpbkluaXRpYWxpemF0aW9uRGVsYXlFbmFibGVkOgotICB0
eXBlOiBib29sCi0gIHdlYmNvcmVCaW5kaW5nOiBub25lCi0gIGV4cG9zZWQ6IFsgV2ViS2l0IF0K
LSAgZGVmYXVsdFZhbHVlOgotICAgIFdlYktpdDoKLSAgICAgIGRlZmF1bHQ6IGZhbHNlCi0KLUFz
eW5jaHJvbm91c1BsdWdpbkluaXRpYWxpemF0aW9uRW5hYmxlZDoKLSAgdHlwZTogYm9vbAotICB3
ZWJjb3JlQmluZGluZzogbm9uZQotICBleHBvc2VkOiBbIFdlYktpdCBdCi0gIGRlZmF1bHRWYWx1
ZToKLSAgICBXZWJLaXQ6Ci0gICAgICBkZWZhdWx0OiBmYWxzZQotCi1Bc3luY2hyb25vdXNQbHVn
aW5Jbml0aWFsaXphdGlvbkVuYWJsZWRGb3JBbGxQbHVnaW5zOgotICB0eXBlOiBib29sCi0gIHdl
YmNvcmVCaW5kaW5nOiBub25lCi0gIGV4cG9zZWQ6IFsgV2ViS2l0IF0KLSAgZGVmYXVsdFZhbHVl
OgotICAgIFdlYktpdDoKLSAgICAgIGRlZmF1bHQ6IGZhbHNlCi0KIEFzeW5jaHJvbm91c1NwZWxs
Q2hlY2tpbmdFbmFibGVkOgogICB0eXBlOiBib29sCiAgIGRlZmF1bHRWYWx1ZToKQEAgLTM2OSwx
NyArMzQ1LDYgQEAgQXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQ6CiAgICAgV2ViQ29yZToKICAg
ICAgIGRlZmF1bHQ6IHRydWUKIAotQmFja0ZvcndhcmRDYWNoZVN1cHBvcnRzUGx1Z2luczoKLSAg
dHlwZTogYm9vbAotICB3ZWJLaXRMZWdhY3lQcmVmZXJlbmNlS2V5OiBXZWJLaXRQYWdlQ2FjaGVT
dXBwb3J0c1BsdWdpbnNQcmVmZXJlbmNlS2V5Ci0gIGRlZmF1bHRWYWx1ZToKLSAgICBXZWJLaXRM
ZWdhY3k6Ci0gICAgICBkZWZhdWx0OiB0cnVlCi0gICAgV2ViS2l0OgotICAgICAgZGVmYXVsdDog
dHJ1ZQotICAgIFdlYkNvcmU6Ci0gICAgICBkZWZhdWx0OiBmYWxzZQotCiBCYWNrc3BhY2VLZXlO
YXZpZ2F0aW9uRW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBkZWZhdWx0VmFsdWU6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5h
bC55YW1sIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50
ZXJuYWwueWFtbAppbmRleCBlMWJhZmZjMzc4NDI4ZGFhZmFmMmE4YTI1OWM3NWM1YjEyYzFmY2M1
Li44ZTMxMzEwMjJiYzA3MDg0OWJhYjUxMTEzMjc0NTQ0YmRhMGIwZDAyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1s
CisrKyBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0ludGVy
bmFsLnlhbWwKQEAgLTI1NiwxOCArMjU2LDYgQEAgRXZlbnRIYW5kbGVyRHJpdmVuU21vb3RoS2V5
Ym9hcmRTY3JvbGxpbmdFbmFibGVkOgogICBXZWJDb3JlOgogICAgZGVmYXVsdDogZmFsc2UKIAot
IyBGSVhNRTogVGhpcyBpcyBub3QgcmVsZXZlbnQgZm9yIFdlYktpdExlZ2FjeSwgc28gc2hvdWxk
IGJlIGV4Y2x1ZGVkIGZyb20gV2ViS2l0TGVnYWN5IGVudGlyZWx5LgotRXhwZXJpbWVudGFsUGx1
Z0luU2FuZGJveFByb2ZpbGVzRW5hYmxlZDoKLSAgdHlwZTogYm9vbAotICBodW1hblJlYWRhYmxl
TmFtZTogIlNhbmRib3ggUGx1Zy1JbnMiCi0gIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkVu
YWJsZSBQbHVnLUluIHNhbmRib3hpbmciCi0gIHdlYmNvcmVCaW5kaW5nOiBSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzCi0gIGRlZmF1bHRWYWx1ZToKLSAgICBXZWJLaXRMZWdhY3k6Ci0gICAgICBkZWZh
dWx0OiBmYWxzZQotICAgIFdlYktpdDoKLSAgICAgIGRlZmF1bHQ6IGZhbHNlCi0KIEZhc3RlckNs
aWNrc0VuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgaHVtYW5SZWFkYWJsZU5hbWU6ICJGYXN0IGNs
aWNrcyIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRy
b2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaApp
bmRleCAwMTFlYmU3MjVmYzdkMmI2YTk4NTc2MTk2YzE3OTY1YzExNGY5ZDAyLi5mYzc1ZWM2Y2Mz
NTk1YTQzOWI4NWEzN2Q3MzczODg1NTkxNDc4ODRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5oCkBAIC0zOCw4ICszOCw2IEBAIE9CSkNfQ0xBU1Mg
SlNDb250ZXh0OwogT0JKQ19DTEFTUyBXZWJTY3JpcHRPYmplY3Q7CiAjZW5kaWYKIAotc3RydWN0
IE5QT2JqZWN0OwotCiBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIENhbGxGcmFtZTsKIGNsYXNzIEpT
R2xvYmFsT2JqZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2Ny
aXB0Q29udHJvbGxlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENv
bnRyb2xsZXJNYWMubW0KaW5kZXggYzY5M2FmNDdmZjI2ZTg4NTMxMjA4MWU3M2EwNTZhOTgwYmQ4
YWIzMS4uM2Y3MWZkZWQyNDViOTU3NGFiNjk1ZGIyYmY0MjFjN2FlY2QzOThmZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlck1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyTWFjLm1tCkBAIC00
Niw3ICs0Niw2IEBACiAKIEBpbnRlcmZhY2UgTlNPYmplY3QgKFdlYlBsdWdpbikKIC0gKGlkKW9i
amVjdEZvcldlYlNjcmlwdDsKLS0gKE5QT2JqZWN0ICopY3JlYXRlUGx1Z2luU2NyaXB0YWJsZU9i
amVjdDsKIC0gKFJlZlB0cjxKU0M6OkJpbmRpbmdzOjpJbnN0YW5jZT4pY3JlYXRlUGx1Z2luQmlu
ZGluZ3NJbnN0YW5jZTooUmVmPEpTQzo6QmluZGluZ3M6OlJvb3RPYmplY3Q+JiYpcm9vdE9iamVj
dDsKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9CYWNrRm9yd2Fy
ZENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQmFja0ZvcndhcmRDYWNoZS5jcHAK
aW5kZXggNDg0MDBhMzEwZWNlMjRmNDlmOGMwMjgwZTAxODE0MDQ2YWM4NzQ0ZC4uMzQ0N2FhMzBm
NWM3ZGVhMmNmZjRmMGRiM2ZjZTgyMDYzZTE0NjJjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaGlzdG9yeS9CYWNrRm9yd2FyZENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0
b3J5L0JhY2tGb3J3YXJkQ2FjaGUuY3BwCkBAIC0xMzUsMTAgKzEzNSw2IEBAIHN0YXRpYyBib29s
IGNhbkNhY2hlRnJhbWUoRnJhbWUmIGZyYW1lLCBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCYgZGlh
Z25vc3RpY0xvZ2dpCiAgICAgICAgIGxvZ0JhY2tGb3J3YXJkQ2FjaGVGYWlsdXJlRGlhZ25vc3Rp
Y01lc3NhZ2UoZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6
aXNFcnJvclBhZ2VLZXkoKSk7CiAgICAgICAgIGlzQ2FjaGVhYmxlID0gZmFsc2U7CiAgICAgfQot
ICAgIGlmIChmcmFtZUxvYWRlci5zdWJmcmFtZUxvYWRlcigpLmNvbnRhaW5zUGx1Z2lucygpICYm
ICFmcmFtZS5wYWdlKCktPnNldHRpbmdzKCkuYmFja0ZvcndhcmRDYWNoZVN1cHBvcnRzUGx1Z2lu
cygpKSB7Ci0gICAgICAgIFBDTE9HKCIgICAtRnJhbWUgY29udGFpbnMgcGx1Z2lucyIpOwotICAg
ICAgICBpc0NhY2hlYWJsZSA9IGZhbHNlOwotICAgIH0KICAgICBpZiAoZnJhbWUuaXNNYWluRnJh
bWUoKSAmJiBmcmFtZS5kb2N1bWVudCgpICYmIGZyYW1lLmRvY3VtZW50KCktPnVybCgpLnByb3Rv
Y29sSXMoImh0dHBzIikgJiYgZG9jdW1lbnRMb2FkZXItPnJlc3BvbnNlKCkuY2FjaGVDb250cm9s
Q29udGFpbnNOb1N0b3JlKCkpIHsKICAgICAgICAgUENMT0coIiAgIC1GcmFtZSBpcyBIVFRQUywg
YW5kIGNhY2hlIGNvbnRyb2wgcHJvaGliaXRzIHN0b3JpbmciKTsKICAgICAgICAgbG9nQmFja0Zv
cndhcmRDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpodHRwc05vU3RvcmVLZXkoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCmluZGV4IDYyNThjMDE2N2QxZjJj
OWY3ODExZjc2MDY3ODdhMmVmN2Y3NmEyZjQuLjBhNjIzZDQxMjNmYTYxZTc2OGFlYmJlMzJhMTJh
NDQ2Y2RjNzg4ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJs
ZWRGZWF0dXJlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0
dXJlcy5oCkBAIC0xMDEsOSArMTAxLDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2VydmVyVGlt
aW5nRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBtX2lzU2VydmVyVGltaW5nRW5hYmxlZCA9IGlz
RW5hYmxlZDsgfQogICAgIGJvb2wgc2VydmVyVGltaW5nRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJu
IG1faXNTZXJ2ZXJUaW1pbmdFbmFibGVkOyB9CiAKLSAgICB2b2lkIHNldEV4cGVyaW1lbnRhbFBs
dWdJblNhbmRib3hQcm9maWxlc0VuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgbV9leHBlcmltZW50
YWxQbHVnSW5TYW5kYm94UHJvZmlsZXNFbmFibGVkID0gaXNFbmFibGVkOyB9Ci0gICAgYm9vbCBl
eHBlcmltZW50YWxQbHVnSW5TYW5kYm94UHJvZmlsZXNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4g
bV9leHBlcmltZW50YWxQbHVnSW5TYW5kYm94UHJvZmlsZXNFbmFibGVkOyB9Ci0KICAgICB2b2lk
IHNldEF0dHJTdHlsZUVuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgbV9hdHRyU3R5bGVFbmFibGVk
ID0gaXNFbmFibGVkOyB9CiAgICAgYm9vbCBhdHRyU3R5bGVFbmFibGVkKCkgY29uc3QgeyByZXR1
cm4gbV9hdHRyU3R5bGVFbmFibGVkOyB9CiAKQEAgLTI4OCw3ICsyODUsNiBAQCBwcml2YXRlOgog
ICAgIGJvb2wgbV9pdHBEZWJ1Z01vZGUgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc1Jlc3RyaWN0
ZWRIVFRQUmVzcG9uc2VBY2Nlc3MgeyB0cnVlIH07CiAgICAgYm9vbCBtX2lzU2VydmVyVGltaW5n
RW5hYmxlZCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2V4cGVyaW1lbnRhbFBsdWdJblNhbmRib3hQ
cm9maWxlc0VuYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9hdHRyU3R5bGVFbmFibGVkIHsg
ZmFsc2UgfTsKICAgICBib29sIG1fd2ViQVBJU3RhdGlzdGljc0VuYWJsZWQgeyBmYWxzZSB9Owog
ICAgIGJvb2wgbV9zeW50aGV0aWNFZGl0aW5nQ29tbWFuZHNFbmFibGVkIHsgdHJ1ZSB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAppbmRleCA5
MGRkMzJiYWNiMDMzYjcxNzM1MjlmMmY1ZDI5OWEyMGNjZTMyMGRlLi5lYTdkNzYxMWViNGQ2YTkw
ODlkMmQyYTkyNTliYmQ5MGE5YTA2Nzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcApAQCAtNjA1LDE0ICs2MDUsMTMgQEAgYm9vbCBXS1By
ZWZlcmVuY2VzR2V0UGFnZUNhY2hlRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2Vz
UmVmKQogICAgIHJldHVybiB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT51c2VzQmFja0ZvcndhcmRD
YWNoZSgpOwogfQogCi12b2lkIFdLUHJlZmVyZW5jZXNTZXRQYWdlQ2FjaGVTdXBwb3J0c1BsdWdp
bnMoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBiYWNrRm9yd2FyZENhY2hl
U3VwcG9ydHNQbHVnaW5zKQordm9pZCBXS1ByZWZlcmVuY2VzU2V0UGFnZUNhY2hlU3VwcG9ydHNQ
bHVnaW5zKFdLUHJlZmVyZW5jZXNSZWYsIGJvb2wpCiB7Ci0gICAgdG9JbXBsKHByZWZlcmVuY2Vz
UmVmKS0+c2V0QmFja0ZvcndhcmRDYWNoZVN1cHBvcnRzUGx1Z2lucyhiYWNrRm9yd2FyZENhY2hl
U3VwcG9ydHNQbHVnaW5zKTsKIH0KIAotYm9vbCBXS1ByZWZlcmVuY2VzR2V0UGFnZUNhY2hlU3Vw
cG9ydHNQbHVnaW5zKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpCitib29sIFdLUHJl
ZmVyZW5jZXNHZXRQYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnMoV0tQcmVmZXJlbmNlc1JlZikKIHsK
LSAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+YmFja0ZvcndhcmRDYWNoZVN1cHBv
cnRzUGx1Z2lucygpOworICAgIHJldHVybiBmYWxzZTsKIH0KIAogdm9pZCBXS1ByZWZlcmVuY2Vz
U2V0UGFnaW5hdGVEdXJpbmdMYXlvdXRFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5j
ZXNSZWYsIGJvb2wgZW5hYmxlZCkKQEAgLTEwMDUsMzQgKzEwMDQsMzEgQEAgYm9vbCBXS1ByZWZl
cmVuY2VzR2V0RGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVy
ZW5jZXNSZWYpCiAgICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPmRpYWdub3N0aWNM
b2dnaW5nRW5hYmxlZCgpOwogfQogCi12b2lkIFdLUHJlZmVyZW5jZXNTZXRBc3luY2hyb25vdXNQ
bHVnaW5Jbml0aWFsaXphdGlvbkVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1Jl
ZiwgYm9vbCBlbmFibGVkKQordm9pZCBXS1ByZWZlcmVuY2VzU2V0QXN5bmNocm9ub3VzUGx1Z2lu
SW5pdGlhbGl6YXRpb25FbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYsIGJvb2wpCiB7Ci0gICAgdG9J
bXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0QXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRpb25F
bmFibGVkKGVuYWJsZWQpOwogfQogCi1ib29sIFdLUHJlZmVyZW5jZXNHZXRBc3luY2hyb25vdXNQ
bHVnaW5Jbml0aWFsaXphdGlvbkVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1Jl
ZikKK2Jvb2wgV0tQcmVmZXJlbmNlc0dldEFzeW5jaHJvbm91c1BsdWdpbkluaXRpYWxpemF0aW9u
RW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmKQogewotICAgIHJldHVybiB0b0ltcGwocHJlZmVyZW5j
ZXNSZWYpLT5hc3luY2hyb25vdXNQbHVnaW5Jbml0aWFsaXphdGlvbkVuYWJsZWQoKTsKKyAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgV0tQcmVmZXJlbmNlc1NldEFzeW5jaHJvbm91c1BsdWdp
bkluaXRpYWxpemF0aW9uRW5hYmxlZEZvckFsbFBsdWdpbnMoV0tQcmVmZXJlbmNlc1JlZiBwcmVm
ZXJlbmNlc1JlZiwgYm9vbCBlbmFibGVkKQordm9pZCBXS1ByZWZlcmVuY2VzU2V0QXN5bmNocm9u
b3VzUGx1Z2luSW5pdGlhbGl6YXRpb25FbmFibGVkRm9yQWxsUGx1Z2lucyhXS1ByZWZlcmVuY2Vz
UmVmLCBib29sKQogewotICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldEFzeW5jaHJvbm91
c1BsdWdpbkluaXRpYWxpemF0aW9uRW5hYmxlZEZvckFsbFBsdWdpbnMoZW5hYmxlZCk7CiB9CiAK
LWJvb2wgV0tQcmVmZXJlbmNlc0dldEFzeW5jaHJvbm91c1BsdWdpbkluaXRpYWxpemF0aW9uRW5h
YmxlZEZvckFsbFBsdWdpbnMoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKK2Jvb2wg
V0tQcmVmZXJlbmNlc0dldEFzeW5jaHJvbm91c1BsdWdpbkluaXRpYWxpemF0aW9uRW5hYmxlZEZv
ckFsbFBsdWdpbnMoV0tQcmVmZXJlbmNlc1JlZikKIHsKLSAgICByZXR1cm4gdG9JbXBsKHByZWZl
cmVuY2VzUmVmKS0+YXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRpb25FbmFibGVkRm9yQWxs
UGx1Z2lucygpOworICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBXS1ByZWZlcmVuY2VzU2V0
QXJ0aWZpY2lhbFBsdWdpbkluaXRpYWxpemF0aW9uRGVsYXlFbmFibGVkKFdLUHJlZmVyZW5jZXNS
ZWYgcHJlZmVyZW5jZXNSZWYsIGJvb2wgZW5hYmxlZCkKK3ZvaWQgV0tQcmVmZXJlbmNlc1NldEFy
dGlmaWNpYWxQbHVnaW5Jbml0aWFsaXphdGlvbkRlbGF5RW5hYmxlZChXS1ByZWZlcmVuY2VzUmVm
LCBib29sKQogewotICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldEFydGlmaWNpYWxQbHVn
aW5Jbml0aWFsaXphdGlvbkRlbGF5RW5hYmxlZChlbmFibGVkKTsKIH0KIAotYm9vbCBXS1ByZWZl
cmVuY2VzR2V0QXJ0aWZpY2lhbFBsdWdpbkluaXRpYWxpemF0aW9uRGVsYXlFbmFibGVkKFdLUHJl
ZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpCitib29sIFdLUHJlZmVyZW5jZXNHZXRBcnRpZmlj
aWFsUGx1Z2luSW5pdGlhbGl6YXRpb25EZWxheUVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZikKIHsK
LSAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+YXJ0aWZpY2lhbFBsdWdpbkluaXRp
YWxpemF0aW9uRGVsYXlFbmFibGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiB2b2lkIFdL
UHJlZmVyZW5jZXNTZXRJbnRlcmFjdGl2ZUZvcm1WYWxpZGF0aW9uRW5hYmxlZChXS1ByZWZlcmVu
Y2VzUmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGVuYWJsZWQpCkBAIC0xMDY0LDE0ICsxMDYwLDEz
IEBAIGJvb2wgV0tQcmVmZXJlbmNlc0dldFBsdWdJblNuYXBzaG90dGluZ0VuYWJsZWQoV0tQcmVm
ZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQg
V0tQcmVmZXJlbmNlc1NldFBsdWdpblNhbmRib3hQcm9maWxlc0VuYWJsZWRGb3JBbGxQbHVnaW5z
KFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJvb2wgZW5hYmxlZCkKK3ZvaWQgV0tQ
cmVmZXJlbmNlc1NldFBsdWdpblNhbmRib3hQcm9maWxlc0VuYWJsZWRGb3JBbGxQbHVnaW5zKFdL
UHJlZmVyZW5jZXNSZWYsIGJvb2wpCiB7Ci0gICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0
RXhwZXJpbWVudGFsUGx1Z0luU2FuZGJveFByb2ZpbGVzRW5hYmxlZChlbmFibGVkKTsKIH0KIAot
Ym9vbCBXS1ByZWZlcmVuY2VzR2V0UGx1Z2luU2FuZGJveFByb2ZpbGVzRW5hYmxlZEZvckFsbFBs
dWdpbnMoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKK2Jvb2wgV0tQcmVmZXJlbmNl
c0dldFBsdWdpblNhbmRib3hQcm9maWxlc0VuYWJsZWRGb3JBbGxQbHVnaW5zKFdLUHJlZmVyZW5j
ZXNSZWYpCiB7Ci0gICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPmV4cGVyaW1lbnRh
bFBsdWdJblNhbmRib3hQcm9maWxlc0VuYWJsZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7CiB9CiAK
IHZvaWQgV0tQcmVmZXJlbmNlc1NldFNuYXBzaG90QWxsUGx1Z0lucyhXS1ByZWZlcmVuY2VzUmVm
LCBib29sKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVm
ZXJlbmNlcy5tbQppbmRleCBkMGVlMWY5Njc4ZDU4YjA1ZmNlOWQ1NGExNTg3ODRlZjdlYzY5YzMz
Li45YzVmOGRhYzU4ZmY5ZTU3NmU1OTUwZTZkNzk1YTAzZGZmNTNjNzQwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQpAQCAtMTAz
NiwxMiArMTAzNiwxMSBAQCBzdGF0aWMgV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3IgdG9F
ZGl0YWJsZUxpbmtCZWhhdmlvcihfV0tFZGl0YWJsZUxpbmtCZWhhdgogCiAtICh2b2lkKV9zZXRQ
YWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnM6KEJPT0wpZW5hYmxlZAogewotICAgIF9wcmVmZXJlbmNl
cy0+c2V0QmFja0ZvcndhcmRDYWNoZVN1cHBvcnRzUGx1Z2lucyhlbmFibGVkKTsKIH0KIAogLSAo
Qk9PTClfcGFnZUNhY2hlU3VwcG9ydHNQbHVnaW5zCiB7Ci0gICAgcmV0dXJuIF9wcmVmZXJlbmNl
cy0+YmFja0ZvcndhcmRDYWNoZVN1cHBvcnRzUGx1Z2lucygpOworICAgIHJldHVybiBOTzsKIH0K
IAogLSAodm9pZClfc2V0U2hvdWxkUHJpbnRCYWNrZ3JvdW5kczooQk9PTCllbmFibGVkCkBAIC0x
MDk2LDMyICsxMDk1LDI5IEBAIHN0YXRpYyBXZWJDb3JlOjpFZGl0YWJsZUxpbmtCZWhhdmlvciB0
b0VkaXRhYmxlTGlua0JlaGF2aW9yKF9XS0VkaXRhYmxlTGlua0JlaGF2CiAKIC0gKHZvaWQpX3Nl
dEFzeW5jaHJvbm91c1BsdWdpbkluaXRpYWxpemF0aW9uRW5hYmxlZDooQk9PTCllbmFibGVkCiB7
Ci0gICAgX3ByZWZlcmVuY2VzLT5zZXRBc3luY2hyb25vdXNQbHVnaW5Jbml0aWFsaXphdGlvbkVu
YWJsZWQoZW5hYmxlZCk7CiB9CiAKIC0gKEJPT0wpX2FzeW5jaHJvbm91c1BsdWdpbkluaXRpYWxp
emF0aW9uRW5hYmxlZAogewotICAgIHJldHVybiBfcHJlZmVyZW5jZXMtPmFzeW5jaHJvbm91c1Bs
dWdpbkluaXRpYWxpemF0aW9uRW5hYmxlZCgpOworICAgIHJldHVybiBOTzsKIH0KIAogLSAodm9p
ZClfc2V0QXJ0aWZpY2lhbFBsdWdpbkluaXRpYWxpemF0aW9uRGVsYXlFbmFibGVkOihCT09MKWVu
YWJsZWQKIHsKLSAgICBfcHJlZmVyZW5jZXMtPnNldEFydGlmaWNpYWxQbHVnaW5Jbml0aWFsaXph
dGlvbkRlbGF5RW5hYmxlZChlbmFibGVkKTsKIH0KIAogLSAoQk9PTClfYXJ0aWZpY2lhbFBsdWdp
bkluaXRpYWxpemF0aW9uRGVsYXlFbmFibGVkCiB7Ci0gICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+
YXJ0aWZpY2lhbFBsdWdpbkluaXRpYWxpemF0aW9uRGVsYXlFbmFibGVkKCk7CisgICAgcmV0dXJu
IE5POwogfQogCiAtICh2b2lkKV9zZXRFeHBlcmltZW50YWxQbHVnSW5TYW5kYm94UHJvZmlsZXNF
bmFibGVkOihCT09MKWVuYWJsZWQKIHsKLSAgICBfcHJlZmVyZW5jZXMtPnNldEV4cGVyaW1lbnRh
bFBsdWdJblNhbmRib3hQcm9maWxlc0VuYWJsZWQoZW5hYmxlZCk7CiB9CiAKIC0gKEJPT0wpX2V4
cGVyaW1lbnRhbFBsdWdJblNhbmRib3hQcm9maWxlc0VuYWJsZWQKIHsKLSAgICByZXR1cm4gX3By
ZWZlcmVuY2VzLT5leHBlcmltZW50YWxQbHVnSW5TYW5kYm94UHJvZmlsZXNFbmFibGVkKCk7Cisg
ICAgcmV0dXJuIE5POwogfQogCiAtICh2b2lkKV9zZXRDb29raWVFbmFibGVkOihCT09MKWVuYWJs
ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQ
bHVnaW4uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4u
aAppbmRleCBhN2Y0NWM4NDAxYjJmZDJmODcwZTM2NzhjNThmYzMxMGMyZTFmMjQwLi5mOTJlNjE3
NmNiMGM2NGMzZDY2MTk1YzJhNzNjNWFkNDMzYTU2YTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5oCkBAIC0xOTQsNyArMTk0LDYgQEAg
cHJpdmF0ZToKICAgICBib29sIGhhbmRsZXNQYWdlU2NhbGVGYWN0b3IoKSBjb25zdCBmaW5hbDsK
ICAgICBib29sIHJlcXVpcmVzVW5pZmllZFNjYWxlRmFjdG9yKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gdHJ1ZTsgfQogICAgIHZvaWQgc2V0Rm9jdXMoYm9vbCkgZmluYWwgeyB9Ci0gICAgTlBPYmpl
Y3QqIHBsdWdpblNjcmlwdGFibGVOUE9iamVjdCgpIGZpbmFsIHsgcmV0dXJuIG51bGxwdHI7IH0K
ICAgICB2b2lkIHdpbmRvd0ZvY3VzQ2hhbmdlZChib29sKSBmaW5hbCB7IH0KICAgICB2b2lkIHdp
bmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHdpbmRvd0Zy
YW1lSW5TY3JlZW5Db29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdmlld0ZyYW1l
SW5XaW5kb3dDb29yZGluYXRlcykgZmluYWwgeyB9CiAgICAgdm9pZCB3aW5kb3dWaXNpYmlsaXR5
Q2hhbmdlZChib29sKSBmaW5hbCB7IH0KQEAgLTIyNCw3ICsyMjMsNiBAQCBwcml2YXRlOgogCiAg
ICAgYm9vbCBwZXJmb3JtRGljdGlvbmFyeUxvb2t1cEF0TG9jYXRpb24oY29uc3QgV2ViQ29yZTo6
RmxvYXRQb2ludCYpIGZpbmFsOwogICAgIFN0cmluZyBnZXRTZWxlY3Rpb25TdHJpbmcoKSBjb25z
dCBmaW5hbDsKLSAgICBTdHJpbmcgZ2V0U2VsZWN0aW9uRm9yV29yZEF0UG9pbnQoY29uc3QgV2Vi
Q29yZTo6RmxvYXRQb2ludCYpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgZXhpc3RpbmdTZWxlY3Rp
b25Db250YWluc1BvaW50KGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmKSBjb25zdCBmaW5hbDsK
IAogICAgIGJvb2wgc2hvdWxkQWxsb3dTY3JpcHRpbmcoKSBmaW5hbCB7IHJldHVybiBmYWxzZTsg
fQpAQCAtNDM2LDcgKzQzNCw3IEBAIHByaXZhdGU6CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAog
U1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJLaXQ6OlBERlBsdWdpbikKLSAgICBzdGF0
aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViS2l0OjpQbHVnaW4mIHBsdWdpbikgeyByZXR1cm4gcGx1
Z2luLmlzUERGUGx1Z2luKCk7IH0KKyAgICBzdGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViS2l0
OjpQbHVnaW4mKSB7IHJldHVybiB0cnVlOyB9IC8vIEZJWE1FOiBDb25zb2xpZGF0ZSBQREZQbHVn
aW4gYW5kIFBsdWdpbiBpbnRvIG9uZSBjbGFzcy4KICAgICBzdGF0aWMgYm9vbCBpc1R5cGUoY29u
c3QgV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWEmIGFyZWEpIHsgcmV0dXJuIGFyZWEuaXNQREZQbHVn
aW4oKTsgfQogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQppbmRleCBkNDdmMzJiN2Q0
OTE5NTZiZGNlNzdiZmU2ZjE1Y2E3ODY1YmZkMTllLi5iNGViMTRmZjU3ZDkyNWJmNzBkOGE1YWRk
MGViNTdhNzA5MTM4NWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1
Z2lucy9QREYvUERGUGx1Z2luLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BERi9QREZQbHVnaW4ubW0KQEAgLTYzMyw4ICs2MzMsNyBAQCBSZWY8UERGUGx1Z2luPiBQ
REZQbHVnaW46OmNyZWF0ZShXZWJGcmFtZSYgZnJhbWUsIEhUTUxQbHVnSW5FbGVtZW50KiBwbHVn
aW5FbGVtZQogfQogCiBpbmxpbmUgUERGUGx1Z2luOjpQREZQbHVnaW4oV2ViRnJhbWUmIGZyYW1l
LCBIVE1MUGx1Z0luRWxlbWVudCogcGx1Z2luRWxlbWVudCkKLSAgICA6IFBsdWdpbihQREZQbHVn
aW5UeXBlKQotICAgICwgbV9mcmFtZShmcmFtZSkKKyAgICA6IG1fZnJhbWUoZnJhbWUpCiAgICAg
LCBtX2NvbnRhaW5lckxheWVyKGFkb3B0TlMoW1tDQUxheWVyIGFsbG9jXSBpbml0XSkpCiAgICAg
LCBtX2NvbnRlbnRMYXllcihhZG9wdE5TKFtbQ0FMYXllciBhbGxvY10gaW5pdF0pKQogICAgICwg
bV9zY3JvbGxDb3JuZXJMYXllcihhZG9wdE5TKFtbV0tQREZQbHVnaW5TY3JvbGxiYXJMYXllciBh
bGxvY10gaW5pdFdpdGhQREZQbHVnaW46dGhpc10pKQpAQCAtMjgzOCwxNCArMjgzNyw2IEBAIFN0
cmluZyBQREZQbHVnaW46OmdldFNlbGVjdGlvblN0cmluZygpIGNvbnN0CiAgICAgcmV0dXJuIFtb
bV9wZGZMYXllckNvbnRyb2xsZXIgY3VycmVudFNlbGVjdGlvbl0gc3RyaW5nXTsKIH0KIAotU3Ry
aW5nIFBERlBsdWdpbjo6Z2V0U2VsZWN0aW9uRm9yV29yZEF0UG9pbnQoY29uc3QgV2ViQ29yZTo6
RmxvYXRQb2ludCYgcG9pbnQpIGNvbnN0Ci17Ci0gICAgSW50UG9pbnQgcG9pbnRJblZpZXcgPSBj
b252ZXJ0RnJvbVBsdWdpblRvUERGVmlldyhjb252ZXJ0RnJvbVJvb3RWaWV3VG9QbHVnaW4ocm91
bmRlZEludFBvaW50KHBvaW50KSkpOwotICAgIFBERlNlbGVjdGlvbiAqc2VsZWN0aW9uRm9yV29y
ZCA9IFttX3BkZkxheWVyQ29udHJvbGxlciBnZXRTZWxlY3Rpb25Gb3JXb3JkQXRQb2ludDpwb2lu
dEluVmlld107Ci0gICAgW21fcGRmTGF5ZXJDb250cm9sbGVyIHNldEN1cnJlbnRTZWxlY3Rpb246
c2VsZWN0aW9uRm9yV29yZF07Ci0gICAgcmV0dXJuIFtzZWxlY3Rpb25Gb3JXb3JkIHN0cmluZ107
Ci19Ci0KIGJvb2wgUERGUGx1Z2luOjpleGlzdGluZ1NlbGVjdGlvbkNvbnRhaW5zUG9pbnQoY29u
c3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgbG9jYXRpb25JblZpZXdDb29yZGluYXRlcykgY29uc3QK
IHsKICAgICBQREZTZWxlY3Rpb24gKmN1cnJlbnRTZWxlY3Rpb24gPSBbbV9wZGZMYXllckNvbnRy
b2xsZXIgY3VycmVudFNlbGVjdGlvbl07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW4uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luLmNwcAppbmRleCAxNDg4OTM5YWE2NDM2ZWJkOTFmMDU2YWQ5ZGIxNDA5YjJhNTU0
YmY0Li45ZGY0YzcwYTQzMTkyYjk3YmYxYTNmYjQyZmE5YzMxNzM0NGZjMGE1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5jcHAKQEAgLTc5LDExICs3OSw3IEBA
IGJvb2wgUGx1Z2luOjpQYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBQ
YXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogICAgIHJldHVybiB0cnVlOwogfQogCi1QbHVnaW46OlBs
dWdpbihQbHVnaW5UeXBlIHR5cGUpCi0gICAgOiBtX3R5cGUodHlwZSkKLXsKLX0KLQorUGx1Z2lu
OjpQbHVnaW4oKSA9IGRlZmF1bHQ7CiBQbHVnaW46On5QbHVnaW4oKSA9IGRlZmF1bHQ7CiAKIGJv
b2wgUGx1Z2luOjppbml0aWFsaXplKFBsdWdpbkNvbnRyb2xsZXImIHBsdWdpbkNvbnRyb2xsZXIs
IGNvbnN0IFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpbi5oCmluZGV4IDU4ZDcwYTM5YTE2ZDZhNGMwZThiMGNhOWQwM2FjM2QzN2Fl
ZGZjZTAuLmZiMmQxNGQ0MTliZTZmMzUyNWI3YmQ2YWQwNzEwYmI1ZmY5MjZkYzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5oCkBAIC00NCw4ICs0NCw2IEBAIE9C
SkNfQ0xBU1MgUERGRG9jdW1lbnQ7CiBPQkpDX0NMQVNTIFBERlNlbGVjdGlvbjsKICNlbmRpZgog
Ci1zdHJ1Y3QgTlBPYmplY3Q7Ci0KIG5hbWVzcGFjZSBJUEMgewogY2xhc3MgRW5jb2RlcjsKIGNs
YXNzIERlY29kZXI7CkBAIC03MywxMiArNzEsNiBAQCBjbGFzcyBXZWJXaGVlbEV2ZW50OwogICAg
IAogY2xhc3MgUGx1Z2luQ29udHJvbGxlcjsKIAotZW51bSBQbHVnaW5UeXBlIHsKLSAgICBQbHVn
aW5Qcm94eVR5cGUsCi0gICAgTmV0c2NhcGVQbHVnaW5UeXBlLAotICAgIFBERlBsdWdpblR5cGUs
Ci19OwotCiBlbnVtIGNsYXNzIExheWVySG9zdGluZ01vZGUgOiB1aW50OF90OwogCiBjbGFzcyBQ
bHVnaW4gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UGx1Z2luPiB7CkBAIC0xMDksMTIg
KzEwMSw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgflBsdWdpbigpOwogCi0gICAgUGx1Z2lu
VHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9Ci0KLSAgICBib29sIGlzUGx1Z2lu
UHJveHkoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gUGx1Z2luUHJveHlUeXBlOyB9Ci0gICAg
Ym9vbCBpc05ldHNjYXBlUGx1Z2luKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IE5ldHNjYXBl
UGx1Z2luVHlwZTsgfQotICAgIGJvb2wgaXNQREZQbHVnaW4oKSBjb25zdCB7IHJldHVybiBtX3R5
cGUgPT0gUERGUGx1Z2luVHlwZTsgfQotCiBwcml2YXRlOgogICAgIC8vIEluaXRpYWxpemVzIHRo
ZSBwbHVnLWluLiBJZiB0aGUgcGx1Zy1pbiBmYWlscyB0byBpbml0aWFsaXplIHRoaXMgc2hvdWxk
IHJldHVybiBmYWxzZS4KICAgICAvLyBUaGlzIGlzIG9ubHkgY2FsbGVkIGJ5IHRoZSBvdGhlciBp
bml0aWFsaXplIG92ZXJsb2FkIHNvIGl0IGNhbiBiZSBtYWRlIHByaXZhdGUuCkBAIC0yMzEsOSAr
MjE3LDYgQEAgcHVibGljOgogICAgIC8vIFRlbGxzIHRoZSBwbHVnLWluIGFib3V0IGZvY3VzIGNo
YW5nZXMuCiAgICAgdmlydHVhbCB2b2lkIHNldEZvY3VzKGJvb2wpID0gMDsKIAotICAgIC8vIEdl
dCB0aGUgTlBPYmplY3QgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUgcGx1Zy1pbidzIHNjcmlwdGFi
bGUgb2JqZWN0LiBSZXR1cm5zIGEgcmV0YWluZWQgb2JqZWN0LgotICAgIHZpcnR1YWwgTlBPYmpl
Y3QqIHBsdWdpblNjcmlwdGFibGVOUE9iamVjdCgpID0gMDsKLQogICAgIC8vIFRlbGxzIHRoZSBw
bHVnLWluIGFib3V0IHdpbmRvdyBmb2N1cyBjaGFuZ2VzLgogICAgIHZpcnR1YWwgdm9pZCB3aW5k
b3dGb2N1c0NoYW5nZWQoYm9vbCkgPSAwOwogICAgIApAQCAtMjkzLDcgKzI3Niw2IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIGJvb2wgcGVyZm9ybURpY3Rpb25hcnlMb29rdXBBdExvY2F0aW9uKGNv
bnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmKSA9IDA7CiAKICAgICB2aXJ0dWFsIFN0cmluZyBnZXRT
ZWxlY3Rpb25TdHJpbmcoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgZ2V0U2VsZWN0
aW9uRm9yV29yZEF0UG9pbnQoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpIGNvbnN0ID0gMDsK
ICAgICB2aXJ0dWFsIGJvb2wgZXhpc3RpbmdTZWxlY3Rpb25Db250YWluc1BvaW50KGNvbnN0IFdl
YkNvcmU6OkZsb2F0UG9pbnQmKSBjb25zdCA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgbXV0ZWRT
dGF0ZUNoYW5nZWQoYm9vbCkgeyB9CkBAIC0zMDcsOSArMjg5LDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgYm9vbCBwbHVnaW5IYW5kbGVzQ29udGVudE9mZnNldEZvckFjY2Vzc2liaWxpdHlIaXRU
ZXN0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogcHJvdGVjdGVkOgotICAgIFBsdWdpbihQ
bHVnaW5UeXBlKTsKLQotICAgIFBsdWdpblR5cGUgbV90eXBlOworICAgIFBsdWdpbigpOwogCiAg
ICAgYm9vbCBtX2lzQmVpbmdEZXN0cm95ZWQgeyBmYWxzZSB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Db250cm9sbGVyLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Db250cm9sbGVyLmgKaW5kZXggNzc0MmM4
MmVlMDY2NWU0ZTYyZTliZDQwNWQ2MDNjMDI5NTgwZjM3Ny4uOTllNDVmZWIyMmM0YjE1NTUyNjYy
NjM4OTY2NTRjMzU0N2FjYmU3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpbkNvbnRyb2xsZXIuaApAQCAtMjgsMTQgKzI4LDYgQEAKICNpbmNsdWRl
IDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKLXN0cnVjdCBOUE9i
amVjdDsKLXR5cGVkZWYgc3RydWN0IF9OUFZhcmlhbnQgTlBWYXJpYW50OwotdHlwZWRlZiB2b2lk
KiBOUElkZW50aWZpZXI7Ci0KLW5hbWVzcGFjZSBXVEYgewotY2xhc3MgTWFjaFNlbmRSaWdodDsK
LX0KLQogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgSFRUUEhlYWRlck1hcDsKIGNsYXNzIElu
dFJlY3Q7CkBAIC00NiwxMiArMzgsNiBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgUGx1
Z2luQ29udHJvbGxlciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxQbHVnaW5Db250cm9sbGVyPiB7
CiBwdWJsaWM6Ci0gICAgLy8gVGVsbHMgdGhlIGNvbnRyb2xsZXIgdGhhdCB0aGUgcGx1Zy1pbiB3
YW50cyB0aGUgZ2l2ZW4gcmVjdCB0byBiZSByZXBhaW50ZWQuIFRoZSByZWN0IGlzIGluIHRoZSBw
bHVnLWluJ3MgY29vcmRpbmF0ZSBzeXN0ZW0uCi0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGUo
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYpID0gMDsKLQotICAgIC8vIFJldHVybnMgdGhlIHVzZXIg
YWdlbnQgc3RyaW5nLgotICAgIHZpcnR1YWwgU3RyaW5nIHVzZXJBZ2VudCgpID0gMDsKLQogICAg
IC8vIExvYWRzIHRoZSBnaXZlbiBVUkwgYW5kIGFzc29jaWF0ZXMgaXQgd2l0aCB0aGUgcmVxdWVz
dCBJRC4KICAgICAvLyAKICAgICAvLyBJZiBhIHRhcmdldCBpcyBzcGVjaWZpZWQsIHRoZW4gdGhl
IFVSTCB3aWxsIGJlIGxvYWRlZCBpbiB0aGUgd2luZG93IG9yIGZyYW1lIHRoYXQgdGhlIHRhcmdl
dCByZWZlcnMgdG8uCkBAIC02Miw3OCArNDgsMTcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBsb2FkVVJMKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgU3RyaW5nJiBtZXRob2QsIGNvbnN0
IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRhcmdldCwgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCYgaGVhZGVyRmllbGRzLCBj
b25zdCBWZWN0b3I8dWludDhfdD4mIGh0dHBCb2R5LCBib29sIGFsbG93UG9wdXBzKSA9IDA7CiAK
LSAgICAvLyBDb250aW51ZXMgdGhlIGxvYWQgb2YgYSBzdHJlYW0gdGhhdCB3YXMgcmVxdWVzdGVk
IGJ5IGxvYWRVUkwuCi0gICAgdmlydHVhbCB2b2lkIGNvbnRpbnVlU3RyZWFtTG9hZCh1aW50NjRf
dCBzdHJlYW1JRCkgPSAwOwotCi0gICAgLy8gQ2FuY2VscyB0aGUgbG9hZCBvZiBhIHN0cmVhbSB0
aGF0IHdhcyByZXF1ZXN0ZWQgYnkgbG9hZFVSTC4KLSAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsU3Ry
ZWFtTG9hZCh1aW50NjRfdCBzdHJlYW1JRCkgPSAwOwotCi0gICAgLy8gQ2FuY2VscyB0aGUgbG9h
ZCBvZiB0aGUgbWFudWFsIHN0cmVhbS4KLSAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsTWFudWFsU3Ry
ZWFtTG9hZCgpID0gMDsKLQotICAgIC8vIFNldCB0aGUgc3RhdHVzYmFyIHRleHQuCi0gICAgdmly
dHVhbCB2b2lkIHNldFN0YXR1c2JhclRleHQoY29uc3QgU3RyaW5nJikgPSAwOwotCi0gICAgLy8g
UmV0dXJuIHdoZXRoZXIgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgaXMgZW5hYmxlZC4KLSAgICB2
aXJ0dWFsIGJvb2wgaXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCgpID0gMDsKLQogI2lm
IFBMQVRGT1JNKENPQ09BKQogICAgIC8vIFRlbGxzIHRoZSBjb250cm9sbGVyIHRoYXQgdGhlIHBs
dWctaW4gZm9jdXMgb3Igd2luZG93IGZvY3VzIGRpZCBjaGFuZ2UuCiAgICAgdmlydHVhbCB2b2lk
IHBsdWdpbkZvY3VzT3JXaW5kb3dGb2N1c0NoYW5nZWQoYm9vbCkgPSAwOwotCi0gICAgLy8gUmV0
dXJucyB0aGUgbWFjaCBwb3J0IG9mIHRoZSBjb21wb3NpdGluZyByZW5kZXIgc2VydmVyLgotICAg
IHZpcnR1YWwgY29uc3QgV1RGOjpNYWNoU2VuZFJpZ2h0JiBjb21wb3NpdGluZ1JlbmRlclNlcnZl
clBvcnQoKSA9IDA7CiAjZW5kaWYKIAogICAgIC8vIFJldHVybnMgdGhlIGNvbnRlbnRzIHNjYWxl
IGZhY3Rvci4KICAgICB2aXJ0dWFsIGZsb2F0IGNvbnRlbnRzU2NhbGVGYWN0b3IoKSA9IDA7CiAK
LSAgICAvLyBHZXQgYXV0aGVudGljYXRpb24gY3JlZGVudGlhbHMgZm9yIHRoZSBnaXZlbiBwcm90
ZWN0aW9uIHNwYWNlLgotICAgIHZpcnR1YWwgYm9vbCBnZXRBdXRoZW50aWNhdGlvbkluZm8oY29u
c3QgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlJiwgU3RyaW5nJiB1c2VybmFtZSwgU3RyaW5nJiBw
YXNzd29yZCkgPSAwOwotCi0gICAgLy8gUmV0dXJucyB3aGV0aGVyIHByaXZhdGUgYnJvd3Npbmcg
aXMgZW5hYmxlZC4KLSAgICB2aXJ0dWFsIGJvb2wgaXNQcml2YXRlQnJvd3NpbmdFbmFibGVkKCkg
PSAwOwotICAgIAotICAgIC8vIFJldHVybnMgd2hldGhlciBvciBub3QgYXN5bmNocm9ub3VzIHBs
dWdpbiBpbml0aWFsaXphdGlvbiBpcyBlbmFibGVkLgotICAgIHZpcnR1YWwgYm9vbCBhc3luY2hy
b25vdXNQbHVnaW5Jbml0aWFsaXphdGlvbkVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQotICAgIAotICAgIC8vIFJldHVybnMgd2hldGhlciBvciBub3QgYXN5bmNocm9ub3VzIHBsdWdp
biBpbml0aWFsaXphdGlvbiBzaG91bGQgYmUgYXR0ZW1wdGVkIGZvciBhbGwgcGx1Z2lucy4KLSAg
ICB2aXJ0dWFsIGJvb2wgYXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRpb25FbmFibGVkRm9y
QWxsUGx1Z2lucygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgCi0gICAgLy8gUmV0dXJu
cyB0aGUgYXJ0aWNpZmljYWwgcGx1Z2luIGRlbGF5IHRvIHVzZSBmb3IgdGVzdGluZyBvZiBhc3lu
Y2hyb25vdXMgcGx1Z2luIGluaXRpYWxpemF0aW9uLgotICAgIHZpcnR1YWwgYm9vbCBhcnRpZmlj
aWFsUGx1Z2luSW5pdGlhbGl6YXRpb25EZWxheUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQotCi0gICAgLy8gSW5jcmVtZW50cyBhIGNvdW50ZXIgdGhhdCBwcmV2ZW50cyB0aGUgcGx1
Zy1pbiBmcm9tIGJlaW5nIGRlc3Ryb3llZC4KLSAgICB2aXJ0dWFsIHZvaWQgcHJvdGVjdFBsdWdp
bkZyb21EZXN0cnVjdGlvbigpID0gMDsKLQotICAgIC8vIERlY3JlbWVudHMgYSBjb3VudGVyIHRo
YXQsIHdoZW4gaXQgcmVhY2hlcyAwLCBzdG9wcyBwcmV2ZW50aW5nIHRoZSBwbHVnLWluIGZyb20g
YmVpbmcgZGVzdHJveWVkLgotICAgIHZpcnR1YWwgdm9pZCB1bnByb3RlY3RQbHVnaW5Gcm9tRGVz
dHJ1Y3Rpb24oKSA9IDA7Ci0KICAgICAvLyBDYWxsZWQgd2hlbiB0aGUgYSBwbHVnLWluIGluc3Rh
bmNlIGlzIHN1Y2Nlc3NmdWxseSBpbml0aWFsaXplZCwgZWl0aGVyIHN5bmNocm9ub3VzbHkgb3Ig
YXN5bmNocm9ub3VzbHkuCiAgICAgdmlydHVhbCB2b2lkIGRpZEluaXRpYWxpemVQbHVnaW4oKSA9
IDA7CiAgICAgCi0gICAgLy8gQ2FsbGVkIHdoZW4gdGhlIGEgcGx1Zy1pbiBpbnN0YW5jZSBmYWls
cyB0byBpbml0aWFsaXplZCwgZWl0aGVyIHN5bmNocm9ub3VzbHkgb3IgYXN5bmNocm9ub3VzbHku
Ci0gICAgdmlydHVhbCB2b2lkIGRpZEZhaWxUb0luaXRpYWxpemVQbHVnaW4oKSA9IDA7Ci0KLSAg
ICAvLyBIZWxwZXIgY2xhc3MgZm9yIGRlbGF5aW5nIGRlc3RydWN0aW9uIG9mIGEgcGx1Zy1pbi4K
LSAgICBjbGFzcyBQbHVnaW5EZXN0cnVjdGlvblByb3RlY3RvciB7Ci0gICAgICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwotICAgIHB1YmxpYzoKLSAgICAgICAgZXhwbGljaXQgUGx1Z2luRGVz
dHJ1Y3Rpb25Qcm90ZWN0b3IoUGx1Z2luQ29udHJvbGxlciogcGx1Z2luQ29udHJvbGxlcikKLSAg
ICAgICAgICAgIDogbV9wbHVnaW5Db250cm9sbGVyKHBsdWdpbkNvbnRyb2xsZXIpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIG1fcGx1Z2luQ29udHJvbGxlci0+cHJvdGVjdFBsdWdpbkZyb21EZXN0
cnVjdGlvbigpOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICB+UGx1Z2luRGVzdHJ1Y3Rp
b25Qcm90ZWN0b3IoKQotICAgICAgICB7Ci0gICAgICAgICAgICBtX3BsdWdpbkNvbnRyb2xsZXIt
PnVucHJvdGVjdFBsdWdpbkZyb21EZXN0cnVjdGlvbigpOwotICAgICAgICB9Ci0gICAgICAgIAot
ICAgIHByaXZhdGU6Ci0gICAgICAgIFBsdWdpbkNvbnRyb2xsZXIqIG1fcGx1Z2luQ29udHJvbGxl
cjsKLSAgICB9OwotICAgIAogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgflBsdWdpbkNvbnRyb2xs
ZXIoKSB7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5WaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blZpZXcuY3BwCmluZGV4IDA2Yzg5YTY5MDdhZGUwNWY2ODMzN2FjMGYzYzE1NTZkM2ZkMjE5MjYu
LjdmOWEzODc5NmM3MGY4NjcyYzYwNWM4OGYyMmNhMzY5NTg2MjkxZDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCkBAIC0zMzMsMjEgKzMz
Myw2IEBAIHZvaWQgUGx1Z2luVmlldzo6ZGVzdHJveVBsdWdpbkFuZFJlc2V0KCkKICAgICBjYW5j
ZWxBbGxTdHJlYW1zKCk7CiB9CiAKLXZvaWQgUGx1Z2luVmlldzo6cmVjcmVhdGVBbmRJbml0aWFs
aXplKFJlZjxQbHVnaW4+JiYgcGx1Z2luKQotewotICAgIGlmIChtX3BsdWdpbikKLSAgICAgICAg
ZGVzdHJveVBsdWdpbkFuZFJlc2V0KCk7Ci0KLSAgICBtX3BsdWdpbiA9IFdURk1vdmUocGx1Z2lu
KTsKLSAgICBtX2lzSW5pdGlhbGl6ZWQgPSBmYWxzZTsKLSAgICBtX2lzV2FpdGluZ0ZvclN5bmNo
cm9ub3VzSW5pdGlhbGl6YXRpb24gPSBmYWxzZTsKLSAgICBtX2lzV2FpdGluZ1VudGlsTWVkaWFD
YW5TdGFydCA9IGZhbHNlOwotICAgIG1fbWFudWFsU3RyZWFtU3RhdGUgPSBNYW51YWxTdHJlYW1T
dGF0ZTo6SW5pdGlhbDsKLSAgICBtX3RyYW5zaWVudFBhaW50aW5nU25hcHNob3QgPSBudWxscHRy
OwotCi0gICAgaW5pdGlhbGl6ZVBsdWdpbigpOwotfQotCiB2b2lkIFBsdWdpblZpZXc6OnNldExh
eWVySG9zdGluZ01vZGUoTGF5ZXJIb3N0aW5nTW9kZSBsYXllckhvc3RpbmdNb2RlKQogewogI2lm
IEhBVkUoT1VUX09GX1BST0NFU1NfTEFZRVJfSE9TVElORykKQEAgLTU3MCwxMiArNTU1LDcgQEAg
dm9pZCBQbHVnaW5WaWV3Ojppbml0aWFsaXplUGx1Z2luKCkKIAogICAgIG1fcGx1Z2luLT5pbml0
aWFsaXplKCp0aGlzLCBtX3BhcmFtZXRlcnMpOwogICAgIAotICAgIC8vIFBsdWctaW4gaW5pdGlh
bGl6YXRpb24gY29udGludWVkIGluIGRpZEZhaWxUb0luaXRpYWxpemVQbHVnaW4oKSBvciBkaWRJ
bml0aWFsaXplUGx1Z2luKCkuCi19Ci0KLXZvaWQgUGx1Z2luVmlldzo6ZGlkRmFpbFRvSW5pdGlh
bGl6ZVBsdWdpbigpCi17Ci0gICAgbV9wbHVnaW4gPSBudWxscHRyOworICAgIC8vIFBsdWctaW4g
aW5pdGlhbGl6YXRpb24gY29udGludWVkIGluIGRpZEluaXRpYWxpemVQbHVnaW4oKS4KIH0KIAog
dm9pZCBQbHVnaW5WaWV3OjpkaWRJbml0aWFsaXplUGx1Z2luKCkKQEAgLTk0MywxNCArOTIzLDYg
QEAgYm9vbCBQbHVnaW5WaWV3OjpwZXJmb3JtRGljdGlvbmFyeUxvb2t1cEF0TG9jYXRpb24oY29u
c3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgcG8KICAgICByZXR1cm4gbV9wbHVnaW4tPnBlcmZvcm1E
aWN0aW9uYXJ5TG9va3VwQXRMb2NhdGlvbihwb2ludCk7CiB9CiAKLVN0cmluZyBQbHVnaW5WaWV3
OjpnZXRTZWxlY3Rpb25Gb3JXb3JkQXRQb2ludChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBw
b2ludCkgY29uc3QKLXsKLSAgICBpZiAoIW1faXNJbml0aWFsaXplZCB8fCAhbV9wbHVnaW4pCi0g
ICAgICAgIHJldHVybiBTdHJpbmcoKTsKLSAgICAKLSAgICByZXR1cm4gbV9wbHVnaW4tPmdldFNl
bGVjdGlvbkZvcldvcmRBdFBvaW50KHBvaW50KTsKLX0KLQogYm9vbCBQbHVnaW5WaWV3OjpleGlz
dGluZ1NlbGVjdGlvbkNvbnRhaW5zUG9pbnQoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgcG9p
bnQpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2lzSW5pdGlhbGl6ZWQgfHwgIW1fcGx1Z2luKQpAQCAt
MTI5MSwyMCArMTI2Myw2IEBAIHZvaWQgUGx1Z2luVmlldzo6cGFnZU11dGVkU3RhdGVEaWRDaGFu
Z2UoKQogewogfQogCi12b2lkIFBsdWdpblZpZXc6OmludmFsaWRhdGUoY29uc3QgSW50UmVjdCYg
ZGlydHlSZWN0KQotewotICAgIGludmFsaWRhdGVSZWN0KGRpcnR5UmVjdCk7Ci19Ci0KLVN0cmlu
ZyBQbHVnaW5WaWV3Ojp1c2VyQWdlbnQoKQotewotICAgIEZyYW1lKiBmcmFtZSA9IG1fcGx1Z2lu
RWxlbWVudC0+ZG9jdW1lbnQoKS5mcmFtZSgpOwotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJl
dHVybiBTdHJpbmcoKTsKLSAgICAKLSAgICByZXR1cm4gZnJhbWUtPmxvYWRlcigpLmNsaWVudCgp
LnVzZXJBZ2VudChVUkwoKSk7Ci19Ci0KIHZvaWQgUGx1Z2luVmlldzo6bG9hZFVSTCh1aW50NjRf
dCByZXF1ZXN0SUQsIGNvbnN0IFN0cmluZyYgbWV0aG9kLCBjb25zdCBTdHJpbmcmIHVybFN0cmlu
ZywgY29uc3QgU3RyaW5nJiB0YXJnZXQsIGNvbnN0IEhUVFBIZWFkZXJNYXAmIGhlYWRlckZpZWxk
cywgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBodHRwQm9keSwgYm9vbCBhbGxvd1BvcHVwcykKIHsK
ICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lTG9hZFJlcXVlc3QgeyBtX3BsdWdpbkVsZW1lbnQt
PmRvY3VtZW50KCksIG1fcGx1Z2luRWxlbWVudC0+ZG9jdW1lbnQoKS5zZWN1cml0eU9yaWdpbigp
LCB7IH0sIHRhcmdldCwgSW5pdGlhdGVkQnlNYWluRnJhbWU6OlVua25vd24gfTsKQEAgLTEzMjUs
NzEgKzEyODMsMTIgQEAgdm9pZCBQbHVnaW5WaWV3Ojpsb2FkVVJMKHVpbnQ2NF90IHJlcXVlc3RJ
RCwgY29uc3QgU3RyaW5nJiBtZXRob2QsIGNvbnN0IFN0cmluZyYKICAgICBtX3BlbmRpbmdVUkxS
ZXF1ZXN0c1RpbWVyLnN0YXJ0T25lU2hvdCgwX3MpOwogfQogCi12b2lkIFBsdWdpblZpZXc6OmNh
bmNlbFN0cmVhbUxvYWQodWludDY0X3Qgc3RyZWFtSUQpCi17Ci0gICAgLy8gS2VlcCBhIHJlZmVy
ZW5jZSB0byB0aGUgc3RyZWFtLiBTdHJlYW06OmNhbmNlbCBtaWdodCByZW1vdmUgdGhlIHN0cmVh
bSBmcm9tIHRoZSBtYXAsIGFuZCB0aHVzCi0gICAgLy8gcmVsZWFzaW5nIGl0cyBsYXN0IHJlZmVy
ZW5jZS4KLSAgICBSZWZQdHI8U3RyZWFtPiBzdHJlYW0gPSBtX3N0cmVhbXMuZ2V0KHN0cmVhbUlE
KTsKLSAgICBpZiAoIXN0cmVhbSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgLy8gQ2FuY2VsbGlu
ZyB0aGUgc3RyZWFtIGhlcmUgd2lsbCByZW1vdmUgaXQgZnJvbSB0aGUgbWFwLgotICAgIHN0cmVh
bS0+Y2FuY2VsKCk7Ci0gICAgQVNTRVJUKCFtX3N0cmVhbXMuY29udGFpbnMoc3RyZWFtSUQpKTsK
LX0KLQotdm9pZCBQbHVnaW5WaWV3Ojpjb250aW51ZVN0cmVhbUxvYWQodWludDY0X3Qgc3RyZWFt
SUQpCi17Ci0gICAgUmVmUHRyPFN0cmVhbT4gc3RyZWFtID0gbV9zdHJlYW1zLmdldChzdHJlYW1J
RCk7Ci0gICAgaWYgKCFzdHJlYW0pCi0gICAgICAgIHJldHVybjsKLQotICAgIHN0cmVhbS0+Y29u
dGludWVMb2FkKCk7Ci19Ci0KLXZvaWQgUGx1Z2luVmlldzo6Y2FuY2VsTWFudWFsU3RyZWFtTG9h
ZCgpCi17Ci0gICAgaWYgKCFmcmFtZSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBEb2N1bWVu
dExvYWRlciogZG9jdW1lbnRMb2FkZXIgPSBmcmFtZSgpLT5sb2FkZXIoKS5hY3RpdmVEb2N1bWVu
dExvYWRlcigpOwotICAgIEFTU0VSVChkb2N1bWVudExvYWRlcik7Ci0gICAgaWYgKGRvY3VtZW50
TG9hZGVyICYmIGRvY3VtZW50TG9hZGVyLT5pc0xvYWRpbmdNYWluUmVzb3VyY2UoKSkKLSAgICAg
ICAgZG9jdW1lbnRMb2FkZXItPmNhbmNlbE1haW5SZXNvdXJjZUxvYWQoZnJhbWUoKS0+bG9hZGVy
KCkuY2FuY2VsbGVkRXJyb3IobV9wYXJhbWV0ZXJzLnVybCkpOwotfQotCi12b2lkIFBsdWdpblZp
ZXc6OnNldFN0YXR1c2JhclRleHQoY29uc3QgU3RyaW5nJiBzdGF0dXNiYXJUZXh0KQotewotICAg
IGlmICghZnJhbWUoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAgIFBhZ2UqIHBhZ2UgPSBm
cmFtZSgpLT5wYWdlKCk7Ci0gICAgaWYgKCFwYWdlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBw
YWdlLT5jaHJvbWUoKS5zZXRTdGF0dXNiYXJUZXh0KCpmcmFtZSgpLCBzdGF0dXNiYXJUZXh0KTsK
LX0KLQotYm9vbCBQbHVnaW5WaWV3Ojppc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKCkK
LXsKLSAgICBpZiAoIWZyYW1lKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICBy
ZXR1cm4gZnJhbWUoKS0+c2V0dGluZ3MoKS5hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCgp
OwotfQotCiAjaWYgUExBVEZPUk0oQ09DT0EpCiB2b2lkIFBsdWdpblZpZXc6OnBsdWdpbkZvY3Vz
T3JXaW5kb3dGb2N1c0NoYW5nZWQoYm9vbCBwbHVnaW5IYXNGb2N1c0FuZFdpbmRvd0hhc0ZvY3Vz
KQogewogICAgIGlmIChtX3dlYlBhZ2UpCiAgICAgICAgIG1fd2ViUGFnZS0+c2VuZChNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpQbHVnaW5Gb2N1c09yV2luZG93Rm9jdXNDaGFuZ2VkKG1fcGx1Z2lu
LT5wbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcigpLCBwbHVnaW5IYXNGb2N1c0FuZFdp
bmRvd0hhc0ZvY3VzKSk7CiB9Ci0KLWNvbnN0IE1hY2hTZW5kUmlnaHQmIFBsdWdpblZpZXc6OmNv
bXBvc2l0aW5nUmVuZGVyU2VydmVyUG9ydCgpCi17Ci0gICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLmNvbXBvc2l0aW5nUmVuZGVyU2VydmVyUG9ydCgpOwotfQotCiAjZW5kaWYKIAog
ZmxvYXQgUGx1Z2luVmlldzo6Y29udGVudHNTY2FsZUZhY3RvcigpCkBAIC0xNDAwLDc0ICsxMjk5
LDYgQEAgZmxvYXQgUGx1Z2luVmlldzo6Y29udGVudHNTY2FsZUZhY3RvcigpCiAgICAgcmV0dXJu
IDE7CiB9CiAKLWJvb2wgUGx1Z2luVmlldzo6Z2V0QXV0aGVudGljYXRpb25JbmZvKGNvbnN0IFBy
b3RlY3Rpb25TcGFjZSYgcHJvdGVjdGlvblNwYWNlLCBTdHJpbmcmIHVzZXJuYW1lLCBTdHJpbmcm
IHBhc3N3b3JkKQotewotICAgIGF1dG8qIGNvbnRlbnREb2N1bWVudCA9IG1fcGx1Z2luRWxlbWVu
dC0+Y29udGVudERvY3VtZW50KCk7Ci0gICAgaWYgKCFjb250ZW50RG9jdW1lbnQpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKLQotICAgIGF1dG8gY3JlZGVudGlhbCA9IENyZWRlbnRpYWxTdG9yYWdl
OjpnZXRGcm9tUGVyc2lzdGVudFN0b3JhZ2UocHJvdGVjdGlvblNwYWNlKTsKLSAgICBpZiAoIWNy
ZWRlbnRpYWwuaGFzUGFzc3dvcmQoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgdXNl
cm5hbWUgPSBjcmVkZW50aWFsLnVzZXIoKTsKLSAgICBwYXNzd29yZCA9IGNyZWRlbnRpYWwucGFz
c3dvcmQoKTsKLQotICAgIHJldHVybiB0cnVlOwotfQotCi1ib29sIFBsdWdpblZpZXc6OmlzUHJp
dmF0ZUJyb3dzaW5nRW5hYmxlZCgpCi17Ci0gICAgLy8gSWYgd2UgY2FuJ3QgZ2V0IHRoZSByZWFs
IHNldHRpbmcsIHdlJ2xsIGFzc3VtZSB0aGF0IHByaXZhdGUgYnJvd3NpbmcgaXMgZW5hYmxlZC4K
LSAgICBpZiAoIWZyYW1lKCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgaWYgKCFmcmFt
ZSgpLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLmNhbkFjY2Vzc1BsdWdpblN0b3JhZ2Uo
ZnJhbWUoKS0+ZG9jdW1lbnQoKS0+dG9wT3JpZ2luKCkpKQotICAgICAgICByZXR1cm4gdHJ1ZTsK
LQotICAgIHJldHVybiBmcmFtZSgpLT5wYWdlKCktPnVzZXNFcGhlbWVyYWxTZXNzaW9uKCk7Ci19
Ci0KLWJvb2wgUGx1Z2luVmlldzo6YXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRpb25FbmFi
bGVkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV93ZWJQYWdlLT5hc3luY2hyb25vdXNQbHVnaW5J
bml0aWFsaXphdGlvbkVuYWJsZWQoKTsKLX0KLQotYm9vbCBQbHVnaW5WaWV3Ojphc3luY2hyb25v
dXNQbHVnaW5Jbml0aWFsaXphdGlvbkVuYWJsZWRGb3JBbGxQbHVnaW5zKCkgY29uc3QKLXsKLSAg
ICByZXR1cm4gbV93ZWJQYWdlLT5hc3luY2hyb25vdXNQbHVnaW5Jbml0aWFsaXphdGlvbkVuYWJs
ZWRGb3JBbGxQbHVnaW5zKCk7Ci19Ci0KLWJvb2wgUGx1Z2luVmlldzo6YXJ0aWZpY2lhbFBsdWdp
bkluaXRpYWxpemF0aW9uRGVsYXlFbmFibGVkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV93ZWJQ
YWdlLT5hcnRpZmljaWFsUGx1Z2luSW5pdGlhbGl6YXRpb25EZWxheUVuYWJsZWQoKTsKLX0KLQot
dm9pZCBQbHVnaW5WaWV3Ojpwcm90ZWN0UGx1Z2luRnJvbURlc3RydWN0aW9uKCkKLXsKLSAgICBp
ZiAobV9wbHVnaW4gJiYgIW1fcGx1Z2luLT5pc0JlaW5nRGVzdHJveWVkKCkpCi0gICAgICAgIHJl
ZigpOwotfQotCi12b2lkIFBsdWdpblZpZXc6OnVucHJvdGVjdFBsdWdpbkZyb21EZXN0cnVjdGlv
bigpCi17Ci0gICAgaWYgKCFtX3BsdWdpbiB8fCBtX3BsdWdpbi0+aXNCZWluZ0Rlc3Ryb3llZCgp
KQotICAgICAgICByZXR1cm47Ci0KLSAgICAvLyBBIHBsdWctaW4gbWF5IGFzayB1cyB0byBldmFs
dWF0ZSBKYXZhU2NyaXB0IHRoYXQgcmVtb3ZlcyB0aGUgcGx1Zy1pbiBmcm9tIHRoZQotICAgIC8v
IHBhZ2UsIGJ1dCBleHBlY3QgdGhlIG9iamVjdCB0byBzdGlsbCBiZSBhbGl2ZSB3aGVuIHRoZSBj
YWxsIGNvbXBsZXRlcy4gRmxhc2gsCi0gICAgLy8gZm9yIGV4YW1wbGUsIG1heSBjcmFzaCBpZiB0
aGUgcGx1Zy1pbiBpcyBkZXN0cm95ZWQgYW5kIHdlIHJldHVybiB0byBjb2RlIGZvcgotICAgIC8v
IHRoZSBkZXN0cm95ZWQgb2JqZWN0IGhpZ2hlciBvbiB0aGUgc3RhY2suIFRvIHByZXZlbnQgdGhp
cywgaWYgdGhlIHBsdWctaW4gaGFzCi0gICAgLy8gb25seSBvbmUgcmVtYWluaW5nIHJlZmVyZW5j
ZSwgY2FsbCBkZXJlZigpIGFzeW5jaHJvbm91c2x5LgotICAgIGlmIChoYXNPbmVSZWYoKSkgewot
ICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW2xhc3RSZWYgPSBhZG9wdFJlZigqdGhp
cyldIHsKLSAgICAgICAgfSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBkZXJlZigp
OwotfQotCiB2b2lkIFBsdWdpblZpZXc6OmRpZEZpbmlzaExvYWQoV2ViRnJhbWUqIHdlYkZyYW1l
KQogewogICAgIFJlZlB0cjxVUkxSZXF1ZXN0PiByZXF1ZXN0ID0gbV9wZW5kaW5nRnJhbWVMb2Fk
cy50YWtlKHdlYkZyYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpblZpZXcuaAppbmRleCA2ODRjNTc0OTczMjE4Mjg4MmZjZGNiNjFlOTE5YjRlNjA4MmZkMmU5
Li5iZmFlMWNjODQ4OGI0NTNhOTM2MWVjMjdlYmExM2NlYzdkNmFlYjQ4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCkBAIC02OCw4ICs2OCw2IEBA
IGNsYXNzIFBsdWdpblZpZXcgOiBwdWJsaWMgV2ViQ29yZTo6UGx1Z2luVmlld0Jhc2UsIHB1Ymxp
YyBQbHVnaW5Db250cm9sbGVyLCBwcml2CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxQbHVnaW5W
aWV3PiBjcmVhdGUoV2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQmLCBSZWY8UGx1Z2luPiYmLCBj
b25zdCBQbHVnaW46OlBhcmFtZXRlcnMmKTsKIAotICAgIHZvaWQgcmVjcmVhdGVBbmRJbml0aWFs
aXplKFJlZjxQbHVnaW4+JiYpOwotCiAgICAgV2ViQ29yZTo6RnJhbWUqIGZyYW1lKCkgY29uc3Q7
CiAKICAgICBib29sIGlzQmVpbmdEZXN0cm95ZWQoKSBjb25zdCB7IHJldHVybiAhbV9wbHVnaW4g
fHwgbV9wbHVnaW4tPmlzQmVpbmdEZXN0cm95ZWQoKTsgfQpAQCAtMTE4LDcgKzExNiw2IEBAIHB1
YmxpYzoKIAogICAgIFJlZlB0cjxXZWJDb3JlOjpGcmFnbWVudGVkU2hhcmVkQnVmZmVyPiBsaXZl
UmVzb3VyY2VEYXRhKCkgY29uc3Q7CiAgICAgYm9vbCBwZXJmb3JtRGljdGlvbmFyeUxvb2t1cEF0
TG9jYXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpOwotICAgIFN0cmluZyBnZXRTZWxl
Y3Rpb25Gb3JXb3JkQXRQb2ludChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JikgY29uc3Q7CiAg
ICAgYm9vbCBleGlzdGluZ1NlbGVjdGlvbkNvbnRhaW5zUG9pbnQoY29uc3QgV2ViQ29yZTo6Rmxv
YXRQb2ludCYpIGNvbnN0OwogCiBwcml2YXRlOgpAQCAtMTkwLDI5ICsxODcsMTMgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHBhZ2VNdXRlZFN0YXRlRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7CiAKICAgICAv
LyBQbHVnaW5Db250cm9sbGVyCi0gICAgdm9pZCBpbnZhbGlkYXRlKGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmKSBvdmVycmlkZTsKLSAgICBTdHJpbmcgdXNlckFnZW50KCkgb3ZlcnJpZGU7CiAgICAg
dm9pZCBsb2FkVVJMKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgU3RyaW5nJiBtZXRob2QsIGNv
bnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRhcmdldCwgY29uc3QgV2ViQ29y
ZTo6SFRUUEhlYWRlck1hcCYgaGVhZGVyRmllbGRzLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGh0
dHBCb2R5LCBib29sIGFsbG93UG9wdXBzKSBvdmVycmlkZTsKLSAgICB2b2lkIGNhbmNlbFN0cmVh
bUxvYWQodWludDY0X3Qgc3RyZWFtSUQpIG92ZXJyaWRlOwotICAgIHZvaWQgY29udGludWVTdHJl
YW1Mb2FkKHVpbnQ2NF90IHN0cmVhbUlEKSBvdmVycmlkZTsKLSAgICB2b2lkIGNhbmNlbE1hbnVh
bFN0cmVhbUxvYWQoKSBvdmVycmlkZTsKLSAgICB2b2lkIHNldFN0YXR1c2JhclRleHQoY29uc3Qg
U3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgYm9vbCBpc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFi
bGVkKCkgb3ZlcnJpZGU7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdm9pZCBwbHVnaW5Gb2N1
c09yV2luZG93Rm9jdXNDaGFuZ2VkKGJvb2wgcGx1Z2luSGFzRm9jdXNBbmRXaW5kb3dIYXNGb2N1
cykgb3ZlcnJpZGU7Ci0gICAgY29uc3QgV1RGOjpNYWNoU2VuZFJpZ2h0JiBjb21wb3NpdGluZ1Jl
bmRlclNlcnZlclBvcnQoKSBvdmVycmlkZTsKICNlbmRpZgogICAgIGZsb2F0IGNvbnRlbnRzU2Nh
bGVGYWN0b3IoKSBvdmVycmlkZTsKLSAgICBib29sIGdldEF1dGhlbnRpY2F0aW9uSW5mbyhjb25z
dCBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2UmLCBTdHJpbmcmIHVzZXJuYW1lLCBTdHJpbmcmIHBh
c3N3b3JkKSBvdmVycmlkZTsKLSAgICBib29sIGlzUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpIG92
ZXJyaWRlOwotICAgIGJvb2wgYXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRpb25FbmFibGVk
KCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgYm9vbCBhc3luY2hyb25vdXNQbHVnaW5Jbml0aWFsaXph
dGlvbkVuYWJsZWRGb3JBbGxQbHVnaW5zKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgYm9vbCBhcnRp
ZmljaWFsUGx1Z2luSW5pdGlhbGl6YXRpb25EZWxheUVuYWJsZWQoKSBjb25zdCBvdmVycmlkZTsK
LSAgICB2b2lkIHByb3RlY3RQbHVnaW5Gcm9tRGVzdHJ1Y3Rpb24oKSBvdmVycmlkZTsKLSAgICB2
b2lkIHVucHJvdGVjdFBsdWdpbkZyb21EZXN0cnVjdGlvbigpIG92ZXJyaWRlOwogCiAgICAgdm9p
ZCBkaWRJbml0aWFsaXplUGx1Z2luKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRGYWlsVG9Jbml0
aWFsaXplUGx1Z2luKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkZXN0cm95UGx1Z2luQW5kUmVzZXQo
KTsKIAogICAgIC8vIFdlYkZyYW1lOjpMb2FkTGlzdGVuZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggNjMyMGMzNThlMWNkMjYwMzA2ZjM1MzQy
YTkwZGNhMmVmODRjMDg4OC4uOTQyZWRjNjIzYTRlNjUzYmIxODhhZWUwNTA2NDRhM2Y0YTAzMmU4
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAg
LTM5NzgsOSArMzk3OCw2IEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3Qg
V2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCiAgICAgRGF0YWJhc2VNYW5hZ2VyOjpzaW5nbGV0
b24oKS5zZXRJc0F2YWlsYWJsZShzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5j
ZXNLZXk6OmRhdGFiYXNlc0VuYWJsZWRLZXkoKSkpOwogCiAgICAgbV90YWJUb0xpbmtzID0gc3Rv
cmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojp0YWJzVG9MaW5rc0tleSgp
KTsKLSAgICBtX2FzeW5jaHJvbm91c1BsdWdpbkluaXRpYWxpemF0aW9uRW5hYmxlZCA9IHN0b3Jl
LmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6YXN5bmNocm9ub3VzUGx1Z2lu
SW5pdGlhbGl6YXRpb25FbmFibGVkS2V5KCkpOwotICAgIG1fYXN5bmNocm9ub3VzUGx1Z2luSW5p
dGlhbGl6YXRpb25FbmFibGVkRm9yQWxsUGx1Z2lucyA9IHN0b3JlLmdldEJvb2xWYWx1ZUZvcktl
eShXZWJQcmVmZXJlbmNlc0tleTo6YXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRpb25FbmFi
bGVkRm9yQWxsUGx1Z2luc0tleSgpKTsKLSAgICBtX2FydGlmaWNpYWxQbHVnaW5Jbml0aWFsaXph
dGlvbkRlbGF5RW5hYmxlZCA9IHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNl
c0tleTo6YXJ0aWZpY2lhbFBsdWdpbkluaXRpYWxpemF0aW9uRGVsYXlFbmFibGVkS2V5KCkpOwog
CiAgICAgYm9vbCBpc0FwcE5hcEVuYWJsZWQgPSBzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2Vi
UHJlZmVyZW5jZXNLZXk6OnBhZ2VWaXNpYmlsaXR5QmFzZWRQcm9jZXNzU3VwcHJlc3Npb25FbmFi
bGVkS2V5KCkpOwogICAgIGlmIChtX2lzQXBwTmFwRW5hYmxlZCAhPSBpc0FwcE5hcEVuYWJsZWQp
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA2YmZh
NDA4NGJjOGY1NzhjMjY4MDU5YWYxMGNiZmUxOTcxZGJiMzhiLi5iNDU3YzYzOThjODZjNmRiMTk1
ODUyNzQxZGJiN2MyOTFlZDAxZWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCkBAIC0xMTMxLDEzICsxMTMxLDYgQEAgcHVibGljOgogCiAgICAgYm9vbCBz
aG91bGRVc2VDdXN0b21Db250ZW50UHJvdmlkZXJGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJik7CiAKLSAgICBib29sIGFzeW5jaHJvbm91c1BsdWdpbkluaXRpYWxp
emF0aW9uRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYXN5bmNocm9ub3VzUGx1Z2luSW5pdGlh
bGl6YXRpb25FbmFibGVkOyB9Ci0gICAgdm9pZCBzZXRBc3luY2hyb25vdXNQbHVnaW5Jbml0aWFs
aXphdGlvbkVuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fYXN5bmNocm9ub3VzUGx1Z2luSW5pdGlh
bGl6YXRpb25FbmFibGVkID0gZW5hYmxlZDsgfQotICAgIGJvb2wgYXN5bmNocm9ub3VzUGx1Z2lu
SW5pdGlhbGl6YXRpb25FbmFibGVkRm9yQWxsUGx1Z2lucygpIGNvbnN0IHsgcmV0dXJuIG1fYXN5
bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRpb25FbmFibGVkRm9yQWxsUGx1Z2luczsgfQotICAg
IHZvaWQgc2V0QXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRpb25FbmFibGVkRm9yQWxsUGx1
Z2lucyhib29sIGVuYWJsZWQpIHsgbV9hc3luY2hyb25vdXNQbHVnaW5Jbml0aWFsaXphdGlvbkVu
YWJsZWRGb3JBbGxQbHVnaW5zID0gZW5hYmxlZDsgfQotICAgIGJvb2wgYXJ0aWZpY2lhbFBsdWdp
bkluaXRpYWxpemF0aW9uRGVsYXlFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9hcnRpZmljaWFs
UGx1Z2luSW5pdGlhbGl6YXRpb25EZWxheUVuYWJsZWQ7IH0KLSAgICB2b2lkIHNldEFydGlmaWNp
YWxQbHVnaW5Jbml0aWFsaXphdGlvbkRlbGF5RW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9hcnRp
ZmljaWFsUGx1Z2luSW5pdGlhbGl6YXRpb25EZWxheUVuYWJsZWQgPSBlbmFibGVkOyB9Ci0KICNp
ZiBQTEFURk9STShDT0NPQSkKICAgICBib29sIHBkZlBsdWdpbkVuYWJsZWQoKSBjb25zdCB7IHJl
dHVybiBtX3BkZlBsdWdpbkVuYWJsZWQ7IH0KICAgICB2b2lkIHNldFBERlBsdWdpbkVuYWJsZWQo
Ym9vbCBlbmFibGVkKSB7IG1fcGRmUGx1Z2luRW5hYmxlZCA9IGVuYWJsZWQ7IH0KQEAgLTE5ODEs
OSArMTk3NCw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzQ2xvc2VkIHsgZmFsc2UgfTsKICAg
ICBib29sIG1fdGFiVG9MaW5rcyB7IGZhbHNlIH07CiAgICAgCi0gICAgYm9vbCBtX2FzeW5jaHJv
bm91c1BsdWdpbkluaXRpYWxpemF0aW9uRW5hYmxlZCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2Fz
eW5jaHJvbm91c1BsdWdpbkluaXRpYWxpemF0aW9uRW5hYmxlZEZvckFsbFBsdWdpbnMgeyBmYWxz
ZSB9OwotICAgIGJvb2wgbV9hcnRpZmljaWFsUGx1Z2luSW5pdGlhbGl6YXRpb25EZWxheUVuYWJs
ZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9tYWluRnJhbWVJc1Njcm9sbGFibGUgeyB0cnVlIH07
CiAKICAgICBib29sIG1fYWx3YXlzU2hvd3NIb3Jpem9udGFsU2Nyb2xsZXIgeyBmYWxzZSB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447294</attachid>
            <date>2021-12-15 15:44:06 -0800</date>
            <delta_ts>2021-12-15 16:29:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234365-20211215154405.patch</filename>
            <type>text/plain</type>
            <size>50467</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MDkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDc0NzEyMDI4ZDI4OTc0MTFjNmJkYjRk
NjAyOWNhYTM4N2EzYTg2ZTEuLmM0MDViNGE4OTU0NWRjN2M1MjJhMzMwOTY0NjI4ZWY3NmJlNWIw
NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMTItMTUgIEFsZXggQ2hyaXN0ZW5zZW4gIDxh
Y2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZW1vdmUgdW5yZWFjaGFibGUgY29k
ZSBpbiBQbHVnaW4gYW5kIFBsdWdpbkNvbnRyb2xsZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDM2NQorCisgICAgICAgIFJldmlld2VkIGJ5IEdl
b2ZmIEdhcmVuLgorCisgICAgICAgICogU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNl
cy55YW1sOgorICAgICAgICAqIFNjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRl
cm5hbC55YW1sOgorCiAyMDIxLTEyLTE1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgTW92ZSBTV1NlcnZlcnMgZnJvbSBOZXR3b3JrUHJvY2VzcyB0byBOZXR3b3Jr
U2Vzc2lvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IDJlOGEyMjQ3MDhhY2JhMTMzYjY0YWI5YTJlZDc4NDM2YmEx
NzkzNmYuLmRlYWI5Njk1YWExMDA3YWYwYzU4OTk2NmE0MzdhMWJhZjViN2FkODAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMS0xMi0xNSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJp
c3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIFJlbW92ZSB1bnJlYWNoYWJsZSBjb2RlIGlu
IFBsdWdpbiBhbmQgUGx1Z2luQ29udHJvbGxlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0MzY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmYg
R2FyZW4uCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmg6CisgICAg
ICAgICogYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKiBoaXN0
b3J5L0JhY2tGb3J3YXJkQ2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2FuQ2FjaGVGcmFt
ZSk6CisgICAgICAgICogcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg6CisgICAgICAgIChX
ZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzZXRFeHBlcmltZW50YWxQbHVnSW5TYW5k
Ym94UHJvZmlsZXNFbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OmV4cGVyaW1lbnRhbFBsdWdJblNhbmRib3hQcm9maWxlc0VuYWJsZWQg
Y29uc3QpOiBEZWxldGVkLgorCiAyMDIxLTEyLTE1ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlz
dGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTW9yZSBjbGVhbnVwIGFmdGVyIFBsdWdpblBy
b2Nlc3MgcmVtb3ZhbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBiNWRmNjAxMjdmMzA3ZjY2NmViM2MzOTgwMGY3NDJl
YTgzN2M3MDkyLi4zYmJmYjU2NjdiZjBjYWE0MjRjMGFlNTE5NjVlYzRkM2UyNDE0MWE2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDc3IEBACisyMDIxLTEyLTE1ICBBbGV4IENocmlzdGVuc2VuICA8YWNo
cmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIHVucmVhY2hhYmxlIGNvZGUg
aW4gUGx1Z2luIGFuZCBQbHVnaW5Db250cm9sbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQzNjUKKworICAgICAgICBSZXZpZXdlZCBieSBHZW9m
ZiBHYXJlbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcDoK
KyAgICAgICAgKFdLUHJlZmVyZW5jZXNTZXRQYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnMpOgorICAg
ICAgICAoV0tQcmVmZXJlbmNlc0dldFBhZ2VDYWNoZVN1cHBvcnRzUGx1Z2lucyk6CisgICAgICAg
IChXS1ByZWZlcmVuY2VzU2V0QXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRpb25FbmFibGVk
KToKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNHZXRBc3luY2hyb25vdXNQbHVnaW5Jbml0aWFsaXph
dGlvbkVuYWJsZWQpOgorICAgICAgICAoV0tQcmVmZXJlbmNlc1NldEFzeW5jaHJvbm91c1BsdWdp
bkluaXRpYWxpemF0aW9uRW5hYmxlZEZvckFsbFBsdWdpbnMpOgorICAgICAgICAoV0tQcmVmZXJl
bmNlc0dldEFzeW5jaHJvbm91c1BsdWdpbkluaXRpYWxpemF0aW9uRW5hYmxlZEZvckFsbFBsdWdp
bnMpOgorICAgICAgICAoV0tQcmVmZXJlbmNlc1NldEFydGlmaWNpYWxQbHVnaW5Jbml0aWFsaXph
dGlvbkRlbGF5RW5hYmxlZCk6CisgICAgICAgIChXS1ByZWZlcmVuY2VzR2V0QXJ0aWZpY2lhbFBs
dWdpbkluaXRpYWxpemF0aW9uRGVsYXlFbmFibGVkKToKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNT
ZXRQbHVnaW5TYW5kYm94UHJvZmlsZXNFbmFibGVkRm9yQWxsUGx1Z2lucyk6CisgICAgICAgIChX
S1ByZWZlcmVuY2VzR2V0UGx1Z2luU2FuZGJveFByb2ZpbGVzRW5hYmxlZEZvckFsbFBsdWdpbnMp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbToKKyAgICAg
ICAgKC1bV0tQcmVmZXJlbmNlcyBfc2V0UGFnZUNhY2hlU3VwcG9ydHNQbHVnaW5zOl0pOgorICAg
ICAgICAoLVtXS1ByZWZlcmVuY2VzIF9wYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnNdKToKKyAgICAg
ICAgKC1bV0tQcmVmZXJlbmNlcyBfc2V0QXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRpb25F
bmFibGVkOl0pOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIF9hc3luY2hyb25vdXNQbHVnaW5J
bml0aWFsaXphdGlvbkVuYWJsZWRdKToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBfc2V0QXJ0
aWZpY2lhbFBsdWdpbkluaXRpYWxpemF0aW9uRGVsYXlFbmFibGVkOl0pOgorICAgICAgICAoLVtX
S1ByZWZlcmVuY2VzIF9hcnRpZmljaWFsUGx1Z2luSW5pdGlhbGl6YXRpb25EZWxheUVuYWJsZWRd
KToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBfc2V0RXhwZXJpbWVudGFsUGx1Z0luU2FuZGJv
eFByb2ZpbGVzRW5hYmxlZDpdKToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBfZXhwZXJpbWVu
dGFsUGx1Z0luU2FuZGJveFByb2ZpbGVzRW5hYmxlZF0pOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
UGx1Z2lucy9QREYvUERGUGx1Z2luLmg6CisgICAgICAgIChpc1R5cGUpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tOgorICAgICAgICAoV2ViS2l0OjpQREZQ
bHVnaW46OlBERlBsdWdpbik6CisgICAgICAgIChXZWJLaXQ6OlBERlBsdWdpbjo6Z2V0U2VsZWN0
aW9uRm9yV29yZEF0UG9pbnQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW4uY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW46OlBsdWdpbik6IERl
bGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5oOgorICAgICAgICAo
V2ViS2l0OjpQbHVnaW46OnR5cGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQ
bHVnaW46OmlzUGx1Z2luUHJveHkgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQ
bHVnaW46OmlzTmV0c2NhcGVQbHVnaW4gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0
OjpQbHVnaW46OmlzUERGUGx1Z2luIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luQ29udHJvbGxlci5oOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5D
b250cm9sbGVyOjphc3luY2hyb25vdXNQbHVnaW5Jbml0aWFsaXphdGlvbkVuYWJsZWQgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Db250cm9sbGVyOjphc3luY2hyb25v
dXNQbHVnaW5Jbml0aWFsaXphdGlvbkVuYWJsZWRGb3JBbGxQbHVnaW5zIGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6UGx1Z2luQ29udHJvbGxlcjo6YXJ0aWZpY2lhbFBsdWdpbklu
aXRpYWxpemF0aW9uRGVsYXlFbmFibGVkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktp
dDo6UGx1Z2luQ29udHJvbGxlcjo6UGx1Z2luRGVzdHJ1Y3Rpb25Qcm90ZWN0b3I6OlBsdWdpbkRl
c3RydWN0aW9uUHJvdGVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UGx1Z2luQ29u
dHJvbGxlcjo6UGx1Z2luRGVzdHJ1Y3Rpb25Qcm90ZWN0b3I6On5QbHVnaW5EZXN0cnVjdGlvblBy
b3RlY3Rvcik6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZp
ZXcuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5WaWV3Ojppbml0aWFsaXplUGx1Z2luKToK
KyAgICAgICAgKFdlYktpdDo6UGx1Z2luVmlldzo6cGx1Z2luRm9jdXNPcldpbmRvd0ZvY3VzQ2hh
bmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblZpZXc6OmRpZEZhaWxUb0luaXRpYWxpemVQ
bHVnaW4pOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5WaWV3OjpnZXRTZWxlY3Rp
b25Gb3JXb3JkQXRQb2ludCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlBsdWdp
blZpZXc6OmludmFsaWRhdGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5WaWV3
Ojp1c2VyQWdlbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5WaWV3OjpjYW5j
ZWxTdHJlYW1Mb2FkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UGx1Z2luVmlldzo6Y29u
dGludWVTdHJlYW1Mb2FkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UGx1Z2luVmlldzo6
Y2FuY2VsTWFudWFsU3RyZWFtTG9hZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlBsdWdp
blZpZXc6OnNldFN0YXR1c2JhclRleHQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQbHVn
aW5WaWV3Ojppc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6UGx1Z2luVmlldzo6Y29tcG9zaXRpbmdSZW5kZXJTZXJ2ZXJQb3J0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UGx1Z2luVmlldzo6Z2V0QXV0aGVudGljYXRpb25JbmZv
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UGx1Z2luVmlldzo6aXNQcml2YXRlQnJvd3Np
bmdFbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UGx1Z2luVmlldzo6YXN5bmNo
cm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRpb25FbmFibGVkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6UGx1Z2luVmlldzo6YXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRpb25F
bmFibGVkRm9yQWxsUGx1Z2lucyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlBs
dWdpblZpZXc6OmFydGlmaWNpYWxQbHVnaW5Jbml0aWFsaXphdGlvbkRlbGF5RW5hYmxlZCBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlBsdWdpblZpZXc6OnByb3RlY3RQbHVnaW5G
cm9tRGVzdHJ1Y3Rpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5WaWV3Ojp1
bnByb3RlY3RQbHVnaW5Gcm9tRGVzdHJ1Y3Rpb24pOiBEZWxldGVkLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6YXN5bmNocm9ub3VzUGx1Z2lu
SW5pdGlhbGl6YXRpb25FbmFibGVkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6c2V0QXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRpb25FbmFibGVkKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6YXN5bmNocm9ub3VzUGx1Z2luSW5pdGlh
bGl6YXRpb25FbmFibGVkRm9yQWxsUGx1Z2lucyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OnNldEFzeW5jaHJvbm91c1BsdWdpbkluaXRpYWxpemF0aW9uRW5hYmxl
ZEZvckFsbFBsdWdpbnMpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjphcnRp
ZmljaWFsUGx1Z2luSW5pdGlhbGl6YXRpb25EZWxheUVuYWJsZWQgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZXRBcnRpZmljaWFsUGx1Z2luSW5pdGlhbGl6YXRp
b25EZWxheUVuYWJsZWQpOiBEZWxldGVkLgorCiAyMDIxLTEyLTE1ICBBbGV4IENocmlzdGVuc2Vu
ICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTW9yZSBjbGVhbnVwIGFmdGVy
IFBsdWdpblByb2Nlc3MgcmVtb3ZhbApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1By
ZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVy
ZW5jZXMvV2ViUHJlZmVyZW5jZXMueWFtbAppbmRleCA2NDc1YWEwM2RkNjQzZmJiOGM1N2M5MzM3
NTBlMmU1MzQ2OTQ0NGQxLi5mYWU0ZjJmZTE0ZmM5MDBkMzc0MWJmNGNkMWVkZGFjZTFkYzY1MDQ5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5j
ZXMueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5j
ZXMueWFtbApAQCAtMzEyLDMwICszMTIsNiBAQCBBcHBsZVBheUVuYWJsZWQ6CiAgICAgICAiRU5B
QkxFKEFQUExFX1BBWV9SRU1PVEVfVUkpIjogdHJ1ZQogICAgICAgZGVmYXVsdDogZmFsc2UKIAot
QXJ0aWZpY2lhbFBsdWdpbkluaXRpYWxpemF0aW9uRGVsYXlFbmFibGVkOgotICB0eXBlOiBib29s
Ci0gIHdlYmNvcmVCaW5kaW5nOiBub25lCi0gIGV4cG9zZWQ6IFsgV2ViS2l0IF0KLSAgZGVmYXVs
dFZhbHVlOgotICAgIFdlYktpdDoKLSAgICAgIGRlZmF1bHQ6IGZhbHNlCi0KLUFzeW5jaHJvbm91
c1BsdWdpbkluaXRpYWxpemF0aW9uRW5hYmxlZDoKLSAgdHlwZTogYm9vbAotICB3ZWJjb3JlQmlu
ZGluZzogbm9uZQotICBleHBvc2VkOiBbIFdlYktpdCBdCi0gIGRlZmF1bHRWYWx1ZToKLSAgICBX
ZWJLaXQ6Ci0gICAgICBkZWZhdWx0OiBmYWxzZQotCi1Bc3luY2hyb25vdXNQbHVnaW5Jbml0aWFs
aXphdGlvbkVuYWJsZWRGb3JBbGxQbHVnaW5zOgotICB0eXBlOiBib29sCi0gIHdlYmNvcmVCaW5k
aW5nOiBub25lCi0gIGV4cG9zZWQ6IFsgV2ViS2l0IF0KLSAgZGVmYXVsdFZhbHVlOgotICAgIFdl
YktpdDoKLSAgICAgIGRlZmF1bHQ6IGZhbHNlCi0KIEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdF
bmFibGVkOgogICB0eXBlOiBib29sCiAgIGRlZmF1bHRWYWx1ZToKQEAgLTM2OSwxNyArMzQ1LDYg
QEAgQXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQ6CiAgICAgV2ViQ29yZToKICAgICAgIGRlZmF1
bHQ6IHRydWUKIAotQmFja0ZvcndhcmRDYWNoZVN1cHBvcnRzUGx1Z2luczoKLSAgdHlwZTogYm9v
bAotICB3ZWJLaXRMZWdhY3lQcmVmZXJlbmNlS2V5OiBXZWJLaXRQYWdlQ2FjaGVTdXBwb3J0c1Bs
dWdpbnNQcmVmZXJlbmNlS2V5Ci0gIGRlZmF1bHRWYWx1ZToKLSAgICBXZWJLaXRMZWdhY3k6Ci0g
ICAgICBkZWZhdWx0OiB0cnVlCi0gICAgV2ViS2l0OgotICAgICAgZGVmYXVsdDogdHJ1ZQotICAg
IFdlYkNvcmU6Ci0gICAgICBkZWZhdWx0OiBmYWxzZQotCiBCYWNrc3BhY2VLZXlOYXZpZ2F0aW9u
RW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBkZWZhdWx0VmFsdWU6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1sIGIv
U291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFt
bAppbmRleCBlMWJhZmZjMzc4NDI4ZGFhZmFmMmE4YTI1OWM3NWM1YjEyYzFmY2M1Li44ZTMxMzEw
MjJiYzA3MDg0OWJhYjUxMTEzMjc0NTQ0YmRhMGIwZDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1sCisrKyBiL1Nv
dXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0ludGVybmFsLnlhbWwK
QEAgLTI1NiwxOCArMjU2LDYgQEAgRXZlbnRIYW5kbGVyRHJpdmVuU21vb3RoS2V5Ym9hcmRTY3Jv
bGxpbmdFbmFibGVkOgogICBXZWJDb3JlOgogICAgZGVmYXVsdDogZmFsc2UKIAotIyBGSVhNRTog
VGhpcyBpcyBub3QgcmVsZXZlbnQgZm9yIFdlYktpdExlZ2FjeSwgc28gc2hvdWxkIGJlIGV4Y2x1
ZGVkIGZyb20gV2ViS2l0TGVnYWN5IGVudGlyZWx5LgotRXhwZXJpbWVudGFsUGx1Z0luU2FuZGJv
eFByb2ZpbGVzRW5hYmxlZDoKLSAgdHlwZTogYm9vbAotICBodW1hblJlYWRhYmxlTmFtZTogIlNh
bmRib3ggUGx1Zy1JbnMiCi0gIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkVuYWJsZSBQbHVn
LUluIHNhbmRib3hpbmciCi0gIHdlYmNvcmVCaW5kaW5nOiBSdW50aW1lRW5hYmxlZEZlYXR1cmVz
Ci0gIGRlZmF1bHRWYWx1ZToKLSAgICBXZWJLaXRMZWdhY3k6Ci0gICAgICBkZWZhdWx0OiBmYWxz
ZQotICAgIFdlYktpdDoKLSAgICAgIGRlZmF1bHQ6IGZhbHNlCi0KIEZhc3RlckNsaWNrc0VuYWJs
ZWQ6CiAgIHR5cGU6IGJvb2wKICAgaHVtYW5SZWFkYWJsZU5hbWU6ICJGYXN0IGNsaWNrcyIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaAppbmRleCAwMTFl
YmU3MjVmYzdkMmI2YTk4NTc2MTk2YzE3OTY1YzExNGY5ZDAyLi5mYzc1ZWM2Y2MzNTk1YTQzOWI4
NWEzN2Q3MzczODg1NTkxNDc4ODRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY3JpcHRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0Q29udHJvbGxlci5oCkBAIC0zOCw4ICszOCw2IEBAIE9CSkNfQ0xBU1MgSlNDb250ZXh0
OwogT0JKQ19DTEFTUyBXZWJTY3JpcHRPYmplY3Q7CiAjZW5kaWYKIAotc3RydWN0IE5QT2JqZWN0
OwotCiBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIENhbGxGcmFtZTsKIGNsYXNzIEpTR2xvYmFsT2Jq
ZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJv
bGxlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXJN
YWMubW0KaW5kZXggYzY5M2FmNDdmZjI2ZTg4NTMxMjA4MWU3M2EwNTZhOTgwYmQ4YWIzMS4uM2Y3
MWZkZWQyNDViOTU3NGFiNjk1ZGIyYmY0MjFjN2FlY2QzOThmZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlck1hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyTWFjLm1tCkBAIC00Niw3ICs0Niw2
IEBACiAKIEBpbnRlcmZhY2UgTlNPYmplY3QgKFdlYlBsdWdpbikKIC0gKGlkKW9iamVjdEZvcldl
YlNjcmlwdDsKLS0gKE5QT2JqZWN0ICopY3JlYXRlUGx1Z2luU2NyaXB0YWJsZU9iamVjdDsKIC0g
KFJlZlB0cjxKU0M6OkJpbmRpbmdzOjpJbnN0YW5jZT4pY3JlYXRlUGx1Z2luQmluZGluZ3NJbnN0
YW5jZTooUmVmPEpTQzo6QmluZGluZ3M6OlJvb3RPYmplY3Q+JiYpcm9vdE9iamVjdDsKIEBlbmQK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9CYWNrRm9yd2FyZENhY2hlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQmFja0ZvcndhcmRDYWNoZS5jcHAKaW5kZXggNDg0
MDBhMzEwZWNlMjRmNDlmOGMwMjgwZTAxODE0MDQ2YWM4NzQ0ZC4uMzQ0N2FhMzBmNWM3ZGVhMmNm
ZjRmMGRiM2ZjZTgyMDYzZTE0NjJjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaGlzdG9y
eS9CYWNrRm9yd2FyZENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0JhY2tG
b3J3YXJkQ2FjaGUuY3BwCkBAIC0xMzUsMTAgKzEzNSw2IEBAIHN0YXRpYyBib29sIGNhbkNhY2hl
RnJhbWUoRnJhbWUmIGZyYW1lLCBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCYgZGlhZ25vc3RpY0xv
Z2dpCiAgICAgICAgIGxvZ0JhY2tGb3J3YXJkQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2Uo
ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6aXNFcnJvclBh
Z2VLZXkoKSk7CiAgICAgICAgIGlzQ2FjaGVhYmxlID0gZmFsc2U7CiAgICAgfQotICAgIGlmIChm
cmFtZUxvYWRlci5zdWJmcmFtZUxvYWRlcigpLmNvbnRhaW5zUGx1Z2lucygpICYmICFmcmFtZS5w
YWdlKCktPnNldHRpbmdzKCkuYmFja0ZvcndhcmRDYWNoZVN1cHBvcnRzUGx1Z2lucygpKSB7Ci0g
ICAgICAgIFBDTE9HKCIgICAtRnJhbWUgY29udGFpbnMgcGx1Z2lucyIpOwotICAgICAgICBpc0Nh
Y2hlYWJsZSA9IGZhbHNlOwotICAgIH0KICAgICBpZiAoZnJhbWUuaXNNYWluRnJhbWUoKSAmJiBm
cmFtZS5kb2N1bWVudCgpICYmIGZyYW1lLmRvY3VtZW50KCktPnVybCgpLnByb3RvY29sSXMoImh0
dHBzIikgJiYgZG9jdW1lbnRMb2FkZXItPnJlc3BvbnNlKCkuY2FjaGVDb250cm9sQ29udGFpbnNO
b1N0b3JlKCkpIHsKICAgICAgICAgUENMT0coIiAgIC1GcmFtZSBpcyBIVFRQUywgYW5kIGNhY2hl
IGNvbnRyb2wgcHJvaGliaXRzIHN0b3JpbmciKTsKICAgICAgICAgbG9nQmFja0ZvcndhcmRDYWNo
ZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25v
c3RpY0xvZ2dpbmdLZXlzOjpodHRwc05vU3RvcmVLZXkoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCmluZGV4IDYyNThjMDE2N2QxZjJjOWY3ODExZjc2
MDY3ODdhMmVmN2Y3NmEyZjQuLjBhNjIzZDQxMjNmYTYxZTc2OGFlYmJlMzJhMTJhNDQ2Y2RjNzg4
ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJl
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCkBA
IC0xMDEsOSArMTAxLDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2VydmVyVGltaW5nRW5hYmxl
ZChib29sIGlzRW5hYmxlZCkgeyBtX2lzU2VydmVyVGltaW5nRW5hYmxlZCA9IGlzRW5hYmxlZDsg
fQogICAgIGJvb2wgc2VydmVyVGltaW5nRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNTZXJ2
ZXJUaW1pbmdFbmFibGVkOyB9CiAKLSAgICB2b2lkIHNldEV4cGVyaW1lbnRhbFBsdWdJblNhbmRi
b3hQcm9maWxlc0VuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgbV9leHBlcmltZW50YWxQbHVnSW5T
YW5kYm94UHJvZmlsZXNFbmFibGVkID0gaXNFbmFibGVkOyB9Ci0gICAgYm9vbCBleHBlcmltZW50
YWxQbHVnSW5TYW5kYm94UHJvZmlsZXNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9leHBlcmlt
ZW50YWxQbHVnSW5TYW5kYm94UHJvZmlsZXNFbmFibGVkOyB9Ci0KICAgICB2b2lkIHNldEF0dHJT
dHlsZUVuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgbV9hdHRyU3R5bGVFbmFibGVkID0gaXNFbmFi
bGVkOyB9CiAgICAgYm9vbCBhdHRyU3R5bGVFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9hdHRy
U3R5bGVFbmFibGVkOyB9CiAKQEAgLTI4OCw3ICsyODUsNiBAQCBwcml2YXRlOgogICAgIGJvb2wg
bV9pdHBEZWJ1Z01vZGUgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc1Jlc3RyaWN0ZWRIVFRQUmVz
cG9uc2VBY2Nlc3MgeyB0cnVlIH07CiAgICAgYm9vbCBtX2lzU2VydmVyVGltaW5nRW5hYmxlZCB7
IGZhbHNlIH07Ci0gICAgYm9vbCBtX2V4cGVyaW1lbnRhbFBsdWdJblNhbmRib3hQcm9maWxlc0Vu
YWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9hdHRyU3R5bGVFbmFibGVkIHsgZmFsc2UgfTsK
ICAgICBib29sIG1fd2ViQVBJU3RhdGlzdGljc0VuYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wg
bV9zeW50aGV0aWNFZGl0aW5nQ29tbWFuZHNFbmFibGVkIHsgdHJ1ZSB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAppbmRleCA5MGRkMzJiYWNi
MDMzYjcxNzM1MjlmMmY1ZDI5OWEyMGNjZTMyMGRlLi5lYTdkNzYxMWViNGQ2YTkwODlkMmQyYTky
NTliYmQ5MGE5YTA2Nzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS1ByZWZlcmVuY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1ByZWZlcmVuY2VzLmNwcApAQCAtNjA1LDE0ICs2MDUsMTMgQEAgYm9vbCBXS1ByZWZlcmVuY2Vz
R2V0UGFnZUNhY2hlRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKQogICAg
IHJldHVybiB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT51c2VzQmFja0ZvcndhcmRDYWNoZSgpOwog
fQogCi12b2lkIFdLUHJlZmVyZW5jZXNTZXRQYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnMoV0tQcmVm
ZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBiYWNrRm9yd2FyZENhY2hlU3VwcG9ydHNQ
bHVnaW5zKQordm9pZCBXS1ByZWZlcmVuY2VzU2V0UGFnZUNhY2hlU3VwcG9ydHNQbHVnaW5zKFdL
UHJlZmVyZW5jZXNSZWYsIGJvb2wpCiB7Ci0gICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0
QmFja0ZvcndhcmRDYWNoZVN1cHBvcnRzUGx1Z2lucyhiYWNrRm9yd2FyZENhY2hlU3VwcG9ydHNQ
bHVnaW5zKTsKIH0KIAotYm9vbCBXS1ByZWZlcmVuY2VzR2V0UGFnZUNhY2hlU3VwcG9ydHNQbHVn
aW5zKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpCitib29sIFdLUHJlZmVyZW5jZXNH
ZXRQYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnMoV0tQcmVmZXJlbmNlc1JlZikKIHsKLSAgICByZXR1
cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+YmFja0ZvcndhcmRDYWNoZVN1cHBvcnRzUGx1Z2lu
cygpOworICAgIHJldHVybiBmYWxzZTsKIH0KIAogdm9pZCBXS1ByZWZlcmVuY2VzU2V0UGFnaW5h
dGVEdXJpbmdMYXlvdXRFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJv
b2wgZW5hYmxlZCkKQEAgLTEwMDUsMzQgKzEwMDQsMzEgQEAgYm9vbCBXS1ByZWZlcmVuY2VzR2V0
RGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYp
CiAgICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPmRpYWdub3N0aWNMb2dnaW5nRW5h
YmxlZCgpOwogfQogCi12b2lkIFdLUHJlZmVyZW5jZXNTZXRBc3luY2hyb25vdXNQbHVnaW5Jbml0
aWFsaXphdGlvbkVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBl
bmFibGVkKQordm9pZCBXS1ByZWZlcmVuY2VzU2V0QXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6
YXRpb25FbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYsIGJvb2wpCiB7Ci0gICAgdG9JbXBsKHByZWZl
cmVuY2VzUmVmKS0+c2V0QXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRpb25FbmFibGVkKGVu
YWJsZWQpOwogfQogCi1ib29sIFdLUHJlZmVyZW5jZXNHZXRBc3luY2hyb25vdXNQbHVnaW5Jbml0
aWFsaXphdGlvbkVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKK2Jvb2wg
V0tQcmVmZXJlbmNlc0dldEFzeW5jaHJvbm91c1BsdWdpbkluaXRpYWxpemF0aW9uRW5hYmxlZChX
S1ByZWZlcmVuY2VzUmVmKQogewotICAgIHJldHVybiB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5h
c3luY2hyb25vdXNQbHVnaW5Jbml0aWFsaXphdGlvbkVuYWJsZWQoKTsKKyAgICByZXR1cm4gZmFs
c2U7CiB9CiAKLXZvaWQgV0tQcmVmZXJlbmNlc1NldEFzeW5jaHJvbm91c1BsdWdpbkluaXRpYWxp
emF0aW9uRW5hYmxlZEZvckFsbFBsdWdpbnMoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1Jl
ZiwgYm9vbCBlbmFibGVkKQordm9pZCBXS1ByZWZlcmVuY2VzU2V0QXN5bmNocm9ub3VzUGx1Z2lu
SW5pdGlhbGl6YXRpb25FbmFibGVkRm9yQWxsUGx1Z2lucyhXS1ByZWZlcmVuY2VzUmVmLCBib29s
KQogewotICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldEFzeW5jaHJvbm91c1BsdWdpbklu
aXRpYWxpemF0aW9uRW5hYmxlZEZvckFsbFBsdWdpbnMoZW5hYmxlZCk7CiB9CiAKLWJvb2wgV0tQ
cmVmZXJlbmNlc0dldEFzeW5jaHJvbm91c1BsdWdpbkluaXRpYWxpemF0aW9uRW5hYmxlZEZvckFs
bFBsdWdpbnMoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKK2Jvb2wgV0tQcmVmZXJl
bmNlc0dldEFzeW5jaHJvbm91c1BsdWdpbkluaXRpYWxpemF0aW9uRW5hYmxlZEZvckFsbFBsdWdp
bnMoV0tQcmVmZXJlbmNlc1JlZikKIHsKLSAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVm
KS0+YXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRpb25FbmFibGVkRm9yQWxsUGx1Z2lucygp
OworICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBXS1ByZWZlcmVuY2VzU2V0QXJ0aWZpY2lh
bFBsdWdpbkluaXRpYWxpemF0aW9uRGVsYXlFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVy
ZW5jZXNSZWYsIGJvb2wgZW5hYmxlZCkKK3ZvaWQgV0tQcmVmZXJlbmNlc1NldEFydGlmaWNpYWxQ
bHVnaW5Jbml0aWFsaXphdGlvbkRlbGF5RW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmLCBib29sKQog
ewotICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldEFydGlmaWNpYWxQbHVnaW5Jbml0aWFs
aXphdGlvbkRlbGF5RW5hYmxlZChlbmFibGVkKTsKIH0KIAotYm9vbCBXS1ByZWZlcmVuY2VzR2V0
QXJ0aWZpY2lhbFBsdWdpbkluaXRpYWxpemF0aW9uRGVsYXlFbmFibGVkKFdLUHJlZmVyZW5jZXNS
ZWYgcHJlZmVyZW5jZXNSZWYpCitib29sIFdLUHJlZmVyZW5jZXNHZXRBcnRpZmljaWFsUGx1Z2lu
SW5pdGlhbGl6YXRpb25EZWxheUVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZikKIHsKLSAgICByZXR1
cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+YXJ0aWZpY2lhbFBsdWdpbkluaXRpYWxpemF0aW9u
RGVsYXlFbmFibGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiB2b2lkIFdLUHJlZmVyZW5j
ZXNTZXRJbnRlcmFjdGl2ZUZvcm1WYWxpZGF0aW9uRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHBy
ZWZlcmVuY2VzUmVmLCBib29sIGVuYWJsZWQpCkBAIC0xMDY0LDE0ICsxMDYwLDEzIEBAIGJvb2wg
V0tQcmVmZXJlbmNlc0dldFBsdWdJblNuYXBzaG90dGluZ0VuYWJsZWQoV0tQcmVmZXJlbmNlc1Jl
ZiBwcmVmZXJlbmNlc1JlZikKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgV0tQcmVmZXJl
bmNlc1NldFBsdWdpblNhbmRib3hQcm9maWxlc0VuYWJsZWRGb3JBbGxQbHVnaW5zKFdLUHJlZmVy
ZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJvb2wgZW5hYmxlZCkKK3ZvaWQgV0tQcmVmZXJlbmNl
c1NldFBsdWdpblNhbmRib3hQcm9maWxlc0VuYWJsZWRGb3JBbGxQbHVnaW5zKFdLUHJlZmVyZW5j
ZXNSZWYsIGJvb2wpCiB7Ci0gICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0RXhwZXJpbWVu
dGFsUGx1Z0luU2FuZGJveFByb2ZpbGVzRW5hYmxlZChlbmFibGVkKTsKIH0KIAotYm9vbCBXS1By
ZWZlcmVuY2VzR2V0UGx1Z2luU2FuZGJveFByb2ZpbGVzRW5hYmxlZEZvckFsbFBsdWdpbnMoV0tQ
cmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKK2Jvb2wgV0tQcmVmZXJlbmNlc0dldFBsdWdp
blNhbmRib3hQcm9maWxlc0VuYWJsZWRGb3JBbGxQbHVnaW5zKFdLUHJlZmVyZW5jZXNSZWYpCiB7
Ci0gICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPmV4cGVyaW1lbnRhbFBsdWdJblNh
bmRib3hQcm9maWxlc0VuYWJsZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIHZvaWQgV0tQ
cmVmZXJlbmNlc1NldFNuYXBzaG90QWxsUGx1Z0lucyhXS1ByZWZlcmVuY2VzUmVmLCBib29sKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5j
ZXMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5t
bQppbmRleCBkMGVlMWY5Njc4ZDU4YjA1ZmNlOWQ1NGExNTg3ODRlZjdlYzY5YzMzLi45YzVmOGRh
YzU4ZmY5ZTU3NmU1OTUwZTZkNzk1YTAzZGZmNTNjNzQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQpAQCAtMTAzNiwxMiArMTAz
NiwxMSBAQCBzdGF0aWMgV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3IgdG9FZGl0YWJsZUxp
bmtCZWhhdmlvcihfV0tFZGl0YWJsZUxpbmtCZWhhdgogCiAtICh2b2lkKV9zZXRQYWdlQ2FjaGVT
dXBwb3J0c1BsdWdpbnM6KEJPT0wpZW5hYmxlZAogewotICAgIF9wcmVmZXJlbmNlcy0+c2V0QmFj
a0ZvcndhcmRDYWNoZVN1cHBvcnRzUGx1Z2lucyhlbmFibGVkKTsKIH0KIAogLSAoQk9PTClfcGFn
ZUNhY2hlU3VwcG9ydHNQbHVnaW5zCiB7Ci0gICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+YmFja0Zv
cndhcmRDYWNoZVN1cHBvcnRzUGx1Z2lucygpOworICAgIHJldHVybiBOTzsKIH0KIAogLSAodm9p
ZClfc2V0U2hvdWxkUHJpbnRCYWNrZ3JvdW5kczooQk9PTCllbmFibGVkCkBAIC0xMDk2LDMyICsx
MDk1LDI5IEBAIHN0YXRpYyBXZWJDb3JlOjpFZGl0YWJsZUxpbmtCZWhhdmlvciB0b0VkaXRhYmxl
TGlua0JlaGF2aW9yKF9XS0VkaXRhYmxlTGlua0JlaGF2CiAKIC0gKHZvaWQpX3NldEFzeW5jaHJv
bm91c1BsdWdpbkluaXRpYWxpemF0aW9uRW5hYmxlZDooQk9PTCllbmFibGVkCiB7Ci0gICAgX3By
ZWZlcmVuY2VzLT5zZXRBc3luY2hyb25vdXNQbHVnaW5Jbml0aWFsaXphdGlvbkVuYWJsZWQoZW5h
YmxlZCk7CiB9CiAKIC0gKEJPT0wpX2FzeW5jaHJvbm91c1BsdWdpbkluaXRpYWxpemF0aW9uRW5h
YmxlZAogewotICAgIHJldHVybiBfcHJlZmVyZW5jZXMtPmFzeW5jaHJvbm91c1BsdWdpbkluaXRp
YWxpemF0aW9uRW5hYmxlZCgpOworICAgIHJldHVybiBOTzsKIH0KIAogLSAodm9pZClfc2V0QXJ0
aWZpY2lhbFBsdWdpbkluaXRpYWxpemF0aW9uRGVsYXlFbmFibGVkOihCT09MKWVuYWJsZWQKIHsK
LSAgICBfcHJlZmVyZW5jZXMtPnNldEFydGlmaWNpYWxQbHVnaW5Jbml0aWFsaXphdGlvbkRlbGF5
RW5hYmxlZChlbmFibGVkKTsKIH0KIAogLSAoQk9PTClfYXJ0aWZpY2lhbFBsdWdpbkluaXRpYWxp
emF0aW9uRGVsYXlFbmFibGVkCiB7Ci0gICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+YXJ0aWZpY2lh
bFBsdWdpbkluaXRpYWxpemF0aW9uRGVsYXlFbmFibGVkKCk7CisgICAgcmV0dXJuIE5POwogfQog
CiAtICh2b2lkKV9zZXRFeHBlcmltZW50YWxQbHVnSW5TYW5kYm94UHJvZmlsZXNFbmFibGVkOihC
T09MKWVuYWJsZWQKIHsKLSAgICBfcHJlZmVyZW5jZXMtPnNldEV4cGVyaW1lbnRhbFBsdWdJblNh
bmRib3hQcm9maWxlc0VuYWJsZWQoZW5hYmxlZCk7CiB9CiAKIC0gKEJPT0wpX2V4cGVyaW1lbnRh
bFBsdWdJblNhbmRib3hQcm9maWxlc0VuYWJsZWQKIHsKLSAgICByZXR1cm4gX3ByZWZlcmVuY2Vz
LT5leHBlcmltZW50YWxQbHVnSW5TYW5kYm94UHJvZmlsZXNFbmFibGVkKCk7CisgICAgcmV0dXJu
IE5POwogfQogCiAtICh2b2lkKV9zZXRDb29raWVFbmFibGVkOihCT09MKWVuYWJsZWQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4uaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4uaAppbmRleCBh
N2Y0NWM4NDAxYjJmZDJmODcwZTM2NzhjNThmYzMxMGMyZTFmMjQwLi5mOTJlNjE3NmNiMGM2NGMz
ZDY2MTk1YzJhNzNjNWFkNDMzYTU2YTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5oCkBAIC0xOTQsNyArMTk0LDYgQEAgcHJpdmF0ZToK
ICAgICBib29sIGhhbmRsZXNQYWdlU2NhbGVGYWN0b3IoKSBjb25zdCBmaW5hbDsKICAgICBib29s
IHJlcXVpcmVzVW5pZmllZFNjYWxlRmFjdG9yKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsg
fQogICAgIHZvaWQgc2V0Rm9jdXMoYm9vbCkgZmluYWwgeyB9Ci0gICAgTlBPYmplY3QqIHBsdWdp
blNjcmlwdGFibGVOUE9iamVjdCgpIGZpbmFsIHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2b2lk
IHdpbmRvd0ZvY3VzQ2hhbmdlZChib29sKSBmaW5hbCB7IH0KICAgICB2b2lkIHdpbmRvd0FuZFZp
ZXdGcmFtZXNDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHdpbmRvd0ZyYW1lSW5TY3Jl
ZW5Db29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdmlld0ZyYW1lSW5XaW5kb3dD
b29yZGluYXRlcykgZmluYWwgeyB9CiAgICAgdm9pZCB3aW5kb3dWaXNpYmlsaXR5Q2hhbmdlZChi
b29sKSBmaW5hbCB7IH0KQEAgLTIyNCw3ICsyMjMsNiBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBw
ZXJmb3JtRGljdGlvbmFyeUxvb2t1cEF0TG9jYXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2lu
dCYpIGZpbmFsOwogICAgIFN0cmluZyBnZXRTZWxlY3Rpb25TdHJpbmcoKSBjb25zdCBmaW5hbDsK
LSAgICBTdHJpbmcgZ2V0U2VsZWN0aW9uRm9yV29yZEF0UG9pbnQoY29uc3QgV2ViQ29yZTo6Rmxv
YXRQb2ludCYpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgZXhpc3RpbmdTZWxlY3Rpb25Db250YWlu
c1BvaW50KGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmKSBjb25zdCBmaW5hbDsKIAogICAgIGJv
b2wgc2hvdWxkQWxsb3dTY3JpcHRpbmcoKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQpAQCAtNDM2
LDcgKzQzNCw3IEBAIHByaXZhdGU6CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogU1BFQ0lBTEla
RV9UWVBFX1RSQUlUU19CRUdJTihXZWJLaXQ6OlBERlBsdWdpbikKLSAgICBzdGF0aWMgYm9vbCBp
c1R5cGUoY29uc3QgV2ViS2l0OjpQbHVnaW4mIHBsdWdpbikgeyByZXR1cm4gcGx1Z2luLmlzUERG
UGx1Z2luKCk7IH0KKyAgICBzdGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViS2l0OjpQbHVnaW4m
KSB7IHJldHVybiB0cnVlOyB9IC8vIEZJWE1FOiBDb25zb2xpZGF0ZSBQREZQbHVnaW4gYW5kIFBs
dWdpbiBpbnRvIG9uZSBjbGFzcy4KICAgICBzdGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29y
ZTo6U2Nyb2xsYWJsZUFyZWEmIGFyZWEpIHsgcmV0dXJuIGFyZWEuaXNQREZQbHVnaW4oKTsgfQog
U1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQppbmRleCBkNDdmMzJiN2Q0OTE5NTZiZGNl
NzdiZmU2ZjE1Y2E3ODY1YmZkMTllLi5iNGViMTRmZjU3ZDkyNWJmNzBkOGE1YWRkMGViNTdhNzA5
MTM4NWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYv
UERGUGx1Z2luLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9Q
REZQbHVnaW4ubW0KQEAgLTYzMyw4ICs2MzMsNyBAQCBSZWY8UERGUGx1Z2luPiBQREZQbHVnaW46
OmNyZWF0ZShXZWJGcmFtZSYgZnJhbWUsIEhUTUxQbHVnSW5FbGVtZW50KiBwbHVnaW5FbGVtZQog
fQogCiBpbmxpbmUgUERGUGx1Z2luOjpQREZQbHVnaW4oV2ViRnJhbWUmIGZyYW1lLCBIVE1MUGx1
Z0luRWxlbWVudCogcGx1Z2luRWxlbWVudCkKLSAgICA6IFBsdWdpbihQREZQbHVnaW5UeXBlKQot
ICAgICwgbV9mcmFtZShmcmFtZSkKKyAgICA6IG1fZnJhbWUoZnJhbWUpCiAgICAgLCBtX2NvbnRh
aW5lckxheWVyKGFkb3B0TlMoW1tDQUxheWVyIGFsbG9jXSBpbml0XSkpCiAgICAgLCBtX2NvbnRl
bnRMYXllcihhZG9wdE5TKFtbQ0FMYXllciBhbGxvY10gaW5pdF0pKQogICAgICwgbV9zY3JvbGxD
b3JuZXJMYXllcihhZG9wdE5TKFtbV0tQREZQbHVnaW5TY3JvbGxiYXJMYXllciBhbGxvY10gaW5p
dFdpdGhQREZQbHVnaW46dGhpc10pKQpAQCAtMjgzOCwxNCArMjgzNyw2IEBAIFN0cmluZyBQREZQ
bHVnaW46OmdldFNlbGVjdGlvblN0cmluZygpIGNvbnN0CiAgICAgcmV0dXJuIFtbbV9wZGZMYXll
ckNvbnRyb2xsZXIgY3VycmVudFNlbGVjdGlvbl0gc3RyaW5nXTsKIH0KIAotU3RyaW5nIFBERlBs
dWdpbjo6Z2V0U2VsZWN0aW9uRm9yV29yZEF0UG9pbnQoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2lu
dCYgcG9pbnQpIGNvbnN0Ci17Ci0gICAgSW50UG9pbnQgcG9pbnRJblZpZXcgPSBjb252ZXJ0RnJv
bVBsdWdpblRvUERGVmlldyhjb252ZXJ0RnJvbVJvb3RWaWV3VG9QbHVnaW4ocm91bmRlZEludFBv
aW50KHBvaW50KSkpOwotICAgIFBERlNlbGVjdGlvbiAqc2VsZWN0aW9uRm9yV29yZCA9IFttX3Bk
ZkxheWVyQ29udHJvbGxlciBnZXRTZWxlY3Rpb25Gb3JXb3JkQXRQb2ludDpwb2ludEluVmlld107
Ci0gICAgW21fcGRmTGF5ZXJDb250cm9sbGVyIHNldEN1cnJlbnRTZWxlY3Rpb246c2VsZWN0aW9u
Rm9yV29yZF07Ci0gICAgcmV0dXJuIFtzZWxlY3Rpb25Gb3JXb3JkIHN0cmluZ107Ci19Ci0KIGJv
b2wgUERGUGx1Z2luOjpleGlzdGluZ1NlbGVjdGlvbkNvbnRhaW5zUG9pbnQoY29uc3QgV2ViQ29y
ZTo6RmxvYXRQb2ludCYgbG9jYXRpb25JblZpZXdDb29yZGluYXRlcykgY29uc3QKIHsKICAgICBQ
REZTZWxlY3Rpb24gKmN1cnJlbnRTZWxlY3Rpb24gPSBbbV9wZGZMYXllckNvbnRyb2xsZXIgY3Vy
cmVudFNlbGVjdGlvbl07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1
Z2lucy9QbHVnaW4uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
LmNwcAppbmRleCAxNDg4OTM5YWE2NDM2ZWJkOTFmMDU2YWQ5ZGIxNDA5YjJhNTU0YmY0Li45ZGY0
YzcwYTQzMTkyYjk3YmYxYTNmYjQyZmE5YzMxNzM0NGZjMGE1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5jcHAKQEAgLTc5LDExICs3OSw3IEBAIGJvb2wgUGx1
Z2luOjpQYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBQYXJhbWV0ZXJz
JiBwYXJhbWV0ZXJzKQogICAgIHJldHVybiB0cnVlOwogfQogCi1QbHVnaW46OlBsdWdpbihQbHVn
aW5UeXBlIHR5cGUpCi0gICAgOiBtX3R5cGUodHlwZSkKLXsKLX0KLQorUGx1Z2luOjpQbHVnaW4o
KSA9IGRlZmF1bHQ7CiBQbHVnaW46On5QbHVnaW4oKSA9IGRlZmF1bHQ7CiAKIGJvb2wgUGx1Z2lu
Ojppbml0aWFsaXplKFBsdWdpbkNvbnRyb2xsZXImIHBsdWdpbkNvbnRyb2xsZXIsIGNvbnN0IFBh
cmFtZXRlcnMmIHBhcmFtZXRlcnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvUGx1Z2lucy9QbHVnaW4uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpbi5oCmluZGV4IDU4ZDcwYTM5YTE2ZDZhNGMwZThiMGNhOWQwM2FjM2QzN2FlZGZjZTAuLmZi
MmQxNGQ0MTliZTZmMzUyNWI3YmQ2YWQwNzEwYmI1ZmY5MjZkYzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5oCkBAIC00NCw4ICs0NCw2IEBAIE9CSkNfQ0xBU1Mg
UERGRG9jdW1lbnQ7CiBPQkpDX0NMQVNTIFBERlNlbGVjdGlvbjsKICNlbmRpZgogCi1zdHJ1Y3Qg
TlBPYmplY3Q7Ci0KIG5hbWVzcGFjZSBJUEMgewogY2xhc3MgRW5jb2RlcjsKIGNsYXNzIERlY29k
ZXI7CkBAIC03MywxMiArNzEsNiBAQCBjbGFzcyBXZWJXaGVlbEV2ZW50OwogICAgIAogY2xhc3Mg
UGx1Z2luQ29udHJvbGxlcjsKIAotZW51bSBQbHVnaW5UeXBlIHsKLSAgICBQbHVnaW5Qcm94eVR5
cGUsCi0gICAgTmV0c2NhcGVQbHVnaW5UeXBlLAotICAgIFBERlBsdWdpblR5cGUsCi19OwotCiBl
bnVtIGNsYXNzIExheWVySG9zdGluZ01vZGUgOiB1aW50OF90OwogCiBjbGFzcyBQbHVnaW4gOiBw
dWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UGx1Z2luPiB7CkBAIC0xMDksMTIgKzEwMSw2IEBA
IHB1YmxpYzoKIAogICAgIHZpcnR1YWwgflBsdWdpbigpOwogCi0gICAgUGx1Z2luVHlwZSB0eXBl
KCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9Ci0KLSAgICBib29sIGlzUGx1Z2luUHJveHkoKSBj
b25zdCB7IHJldHVybiBtX3R5cGUgPT0gUGx1Z2luUHJveHlUeXBlOyB9Ci0gICAgYm9vbCBpc05l
dHNjYXBlUGx1Z2luKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IE5ldHNjYXBlUGx1Z2luVHlw
ZTsgfQotICAgIGJvb2wgaXNQREZQbHVnaW4oKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gUERG
UGx1Z2luVHlwZTsgfQotCiBwcml2YXRlOgogICAgIC8vIEluaXRpYWxpemVzIHRoZSBwbHVnLWlu
LiBJZiB0aGUgcGx1Zy1pbiBmYWlscyB0byBpbml0aWFsaXplIHRoaXMgc2hvdWxkIHJldHVybiBm
YWxzZS4KICAgICAvLyBUaGlzIGlzIG9ubHkgY2FsbGVkIGJ5IHRoZSBvdGhlciBpbml0aWFsaXpl
IG92ZXJsb2FkIHNvIGl0IGNhbiBiZSBtYWRlIHByaXZhdGUuCkBAIC0yMzEsOSArMjE3LDYgQEAg
cHVibGljOgogICAgIC8vIFRlbGxzIHRoZSBwbHVnLWluIGFib3V0IGZvY3VzIGNoYW5nZXMuCiAg
ICAgdmlydHVhbCB2b2lkIHNldEZvY3VzKGJvb2wpID0gMDsKIAotICAgIC8vIEdldCB0aGUgTlBP
YmplY3QgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUgcGx1Zy1pbidzIHNjcmlwdGFibGUgb2JqZWN0
LiBSZXR1cm5zIGEgcmV0YWluZWQgb2JqZWN0LgotICAgIHZpcnR1YWwgTlBPYmplY3QqIHBsdWdp
blNjcmlwdGFibGVOUE9iamVjdCgpID0gMDsKLQogICAgIC8vIFRlbGxzIHRoZSBwbHVnLWluIGFi
b3V0IHdpbmRvdyBmb2N1cyBjaGFuZ2VzLgogICAgIHZpcnR1YWwgdm9pZCB3aW5kb3dGb2N1c0No
YW5nZWQoYm9vbCkgPSAwOwogICAgIApAQCAtMjkzLDcgKzI3Niw2IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIGJvb2wgcGVyZm9ybURpY3Rpb25hcnlMb29rdXBBdExvY2F0aW9uKGNvbnN0IFdlYkNv
cmU6OkZsb2F0UG9pbnQmKSA9IDA7CiAKICAgICB2aXJ0dWFsIFN0cmluZyBnZXRTZWxlY3Rpb25T
dHJpbmcoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgZ2V0U2VsZWN0aW9uRm9yV29y
ZEF0UG9pbnQoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpIGNvbnN0ID0gMDsKICAgICB2aXJ0
dWFsIGJvb2wgZXhpc3RpbmdTZWxlY3Rpb25Db250YWluc1BvaW50KGNvbnN0IFdlYkNvcmU6OkZs
b2F0UG9pbnQmKSBjb25zdCA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgbXV0ZWRTdGF0ZUNoYW5n
ZWQoYm9vbCkgeyB9CkBAIC0zMDcsOSArMjg5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9v
bCBwbHVnaW5IYW5kbGVzQ29udGVudE9mZnNldEZvckFjY2Vzc2liaWxpdHlIaXRUZXN0KCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KIAogcHJvdGVjdGVkOgotICAgIFBsdWdpbihQbHVnaW5UeXBl
KTsKLQotICAgIFBsdWdpblR5cGUgbV90eXBlOworICAgIFBsdWdpbigpOwogCiAgICAgYm9vbCBt
X2lzQmVpbmdEZXN0cm95ZWQgeyBmYWxzZSB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Db250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Db250cm9sbGVyLmgKaW5kZXggNzc0MmM4MmVlMDY2NWU0
ZTYyZTliZDQwNWQ2MDNjMDI5NTgwZjM3Ny4uOTllNDVmZWIyMmM0YjE1NTUyNjYyNjM4OTY2NTRj
MzU0N2FjYmU3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpbkNvbnRyb2xsZXIuaApAQCAtMjgsMTQgKzI4LDYgQEAKICNpbmNsdWRlIDx3dGYvRm9y
d2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKLXN0cnVjdCBOUE9iamVjdDsKLXR5
cGVkZWYgc3RydWN0IF9OUFZhcmlhbnQgTlBWYXJpYW50OwotdHlwZWRlZiB2b2lkKiBOUElkZW50
aWZpZXI7Ci0KLW5hbWVzcGFjZSBXVEYgewotY2xhc3MgTWFjaFNlbmRSaWdodDsKLX0KLQogbmFt
ZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgSFRUUEhlYWRlck1hcDsKIGNsYXNzIEludFJlY3Q7CkBA
IC00NiwxMiArMzgsNiBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgUGx1Z2luQ29udHJv
bGxlciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxQbHVnaW5Db250cm9sbGVyPiB7CiBwdWJsaWM6
Ci0gICAgLy8gVGVsbHMgdGhlIGNvbnRyb2xsZXIgdGhhdCB0aGUgcGx1Zy1pbiB3YW50cyB0aGUg
Z2l2ZW4gcmVjdCB0byBiZSByZXBhaW50ZWQuIFRoZSByZWN0IGlzIGluIHRoZSBwbHVnLWluJ3Mg
Y29vcmRpbmF0ZSBzeXN0ZW0uCi0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGUoY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYpID0gMDsKLQotICAgIC8vIFJldHVybnMgdGhlIHVzZXIgYWdlbnQgc3Ry
aW5nLgotICAgIHZpcnR1YWwgU3RyaW5nIHVzZXJBZ2VudCgpID0gMDsKLQogICAgIC8vIExvYWRz
IHRoZSBnaXZlbiBVUkwgYW5kIGFzc29jaWF0ZXMgaXQgd2l0aCB0aGUgcmVxdWVzdCBJRC4KICAg
ICAvLyAKICAgICAvLyBJZiBhIHRhcmdldCBpcyBzcGVjaWZpZWQsIHRoZW4gdGhlIFVSTCB3aWxs
IGJlIGxvYWRlZCBpbiB0aGUgd2luZG93IG9yIGZyYW1lIHRoYXQgdGhlIHRhcmdldCByZWZlcnMg
dG8uCkBAIC02Miw3OCArNDgsMTcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBsb2FkVVJM
KHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgU3RyaW5nJiBtZXRob2QsIGNvbnN0IFN0cmluZyYg
dXJsU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRhcmdldCwgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCYgaGVhZGVyRmllbGRzLCBjb25zdCBWZWN0
b3I8dWludDhfdD4mIGh0dHBCb2R5LCBib29sIGFsbG93UG9wdXBzKSA9IDA7CiAKLSAgICAvLyBD
b250aW51ZXMgdGhlIGxvYWQgb2YgYSBzdHJlYW0gdGhhdCB3YXMgcmVxdWVzdGVkIGJ5IGxvYWRV
UkwuCi0gICAgdmlydHVhbCB2b2lkIGNvbnRpbnVlU3RyZWFtTG9hZCh1aW50NjRfdCBzdHJlYW1J
RCkgPSAwOwotCi0gICAgLy8gQ2FuY2VscyB0aGUgbG9hZCBvZiBhIHN0cmVhbSB0aGF0IHdhcyBy
ZXF1ZXN0ZWQgYnkgbG9hZFVSTC4KLSAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsU3RyZWFtTG9hZCh1
aW50NjRfdCBzdHJlYW1JRCkgPSAwOwotCi0gICAgLy8gQ2FuY2VscyB0aGUgbG9hZCBvZiB0aGUg
bWFudWFsIHN0cmVhbS4KLSAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsTWFudWFsU3RyZWFtTG9hZCgp
ID0gMDsKLQotICAgIC8vIFNldCB0aGUgc3RhdHVzYmFyIHRleHQuCi0gICAgdmlydHVhbCB2b2lk
IHNldFN0YXR1c2JhclRleHQoY29uc3QgU3RyaW5nJikgPSAwOwotCi0gICAgLy8gUmV0dXJuIHdo
ZXRoZXIgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgaXMgZW5hYmxlZC4KLSAgICB2aXJ0dWFsIGJv
b2wgaXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCgpID0gMDsKLQogI2lmIFBMQVRGT1JN
KENPQ09BKQogICAgIC8vIFRlbGxzIHRoZSBjb250cm9sbGVyIHRoYXQgdGhlIHBsdWctaW4gZm9j
dXMgb3Igd2luZG93IGZvY3VzIGRpZCBjaGFuZ2UuCiAgICAgdmlydHVhbCB2b2lkIHBsdWdpbkZv
Y3VzT3JXaW5kb3dGb2N1c0NoYW5nZWQoYm9vbCkgPSAwOwotCi0gICAgLy8gUmV0dXJucyB0aGUg
bWFjaCBwb3J0IG9mIHRoZSBjb21wb3NpdGluZyByZW5kZXIgc2VydmVyLgotICAgIHZpcnR1YWwg
Y29uc3QgV1RGOjpNYWNoU2VuZFJpZ2h0JiBjb21wb3NpdGluZ1JlbmRlclNlcnZlclBvcnQoKSA9
IDA7CiAjZW5kaWYKIAogICAgIC8vIFJldHVybnMgdGhlIGNvbnRlbnRzIHNjYWxlIGZhY3Rvci4K
ICAgICB2aXJ0dWFsIGZsb2F0IGNvbnRlbnRzU2NhbGVGYWN0b3IoKSA9IDA7CiAKLSAgICAvLyBH
ZXQgYXV0aGVudGljYXRpb24gY3JlZGVudGlhbHMgZm9yIHRoZSBnaXZlbiBwcm90ZWN0aW9uIHNw
YWNlLgotICAgIHZpcnR1YWwgYm9vbCBnZXRBdXRoZW50aWNhdGlvbkluZm8oY29uc3QgV2ViQ29y
ZTo6UHJvdGVjdGlvblNwYWNlJiwgU3RyaW5nJiB1c2VybmFtZSwgU3RyaW5nJiBwYXNzd29yZCkg
PSAwOwotCi0gICAgLy8gUmV0dXJucyB3aGV0aGVyIHByaXZhdGUgYnJvd3NpbmcgaXMgZW5hYmxl
ZC4KLSAgICB2aXJ0dWFsIGJvb2wgaXNQcml2YXRlQnJvd3NpbmdFbmFibGVkKCkgPSAwOwotICAg
IAotICAgIC8vIFJldHVybnMgd2hldGhlciBvciBub3QgYXN5bmNocm9ub3VzIHBsdWdpbiBpbml0
aWFsaXphdGlvbiBpcyBlbmFibGVkLgotICAgIHZpcnR1YWwgYm9vbCBhc3luY2hyb25vdXNQbHVn
aW5Jbml0aWFsaXphdGlvbkVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIAot
ICAgIC8vIFJldHVybnMgd2hldGhlciBvciBub3QgYXN5bmNocm9ub3VzIHBsdWdpbiBpbml0aWFs
aXphdGlvbiBzaG91bGQgYmUgYXR0ZW1wdGVkIGZvciBhbGwgcGx1Z2lucy4KLSAgICB2aXJ0dWFs
IGJvb2wgYXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRpb25FbmFibGVkRm9yQWxsUGx1Z2lu
cygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgCi0gICAgLy8gUmV0dXJucyB0aGUgYXJ0
aWNpZmljYWwgcGx1Z2luIGRlbGF5IHRvIHVzZSBmb3IgdGVzdGluZyBvZiBhc3luY2hyb25vdXMg
cGx1Z2luIGluaXRpYWxpemF0aW9uLgotICAgIHZpcnR1YWwgYm9vbCBhcnRpZmljaWFsUGx1Z2lu
SW5pdGlhbGl6YXRpb25EZWxheUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotCi0g
ICAgLy8gSW5jcmVtZW50cyBhIGNvdW50ZXIgdGhhdCBwcmV2ZW50cyB0aGUgcGx1Zy1pbiBmcm9t
IGJlaW5nIGRlc3Ryb3llZC4KLSAgICB2aXJ0dWFsIHZvaWQgcHJvdGVjdFBsdWdpbkZyb21EZXN0
cnVjdGlvbigpID0gMDsKLQotICAgIC8vIERlY3JlbWVudHMgYSBjb3VudGVyIHRoYXQsIHdoZW4g
aXQgcmVhY2hlcyAwLCBzdG9wcyBwcmV2ZW50aW5nIHRoZSBwbHVnLWluIGZyb20gYmVpbmcgZGVz
dHJveWVkLgotICAgIHZpcnR1YWwgdm9pZCB1bnByb3RlY3RQbHVnaW5Gcm9tRGVzdHJ1Y3Rpb24o
KSA9IDA7Ci0KICAgICAvLyBDYWxsZWQgd2hlbiB0aGUgYSBwbHVnLWluIGluc3RhbmNlIGlzIHN1
Y2Nlc3NmdWxseSBpbml0aWFsaXplZCwgZWl0aGVyIHN5bmNocm9ub3VzbHkgb3IgYXN5bmNocm9u
b3VzbHkuCiAgICAgdmlydHVhbCB2b2lkIGRpZEluaXRpYWxpemVQbHVnaW4oKSA9IDA7CiAgICAg
Ci0gICAgLy8gQ2FsbGVkIHdoZW4gdGhlIGEgcGx1Zy1pbiBpbnN0YW5jZSBmYWlscyB0byBpbml0
aWFsaXplZCwgZWl0aGVyIHN5bmNocm9ub3VzbHkgb3IgYXN5bmNocm9ub3VzbHkuCi0gICAgdmly
dHVhbCB2b2lkIGRpZEZhaWxUb0luaXRpYWxpemVQbHVnaW4oKSA9IDA7Ci0KLSAgICAvLyBIZWxw
ZXIgY2xhc3MgZm9yIGRlbGF5aW5nIGRlc3RydWN0aW9uIG9mIGEgcGx1Zy1pbi4KLSAgICBjbGFz
cyBQbHVnaW5EZXN0cnVjdGlvblByb3RlY3RvciB7Ci0gICAgICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwotICAgIHB1YmxpYzoKLSAgICAgICAgZXhwbGljaXQgUGx1Z2luRGVzdHJ1Y3Rpb25Q
cm90ZWN0b3IoUGx1Z2luQ29udHJvbGxlciogcGx1Z2luQ29udHJvbGxlcikKLSAgICAgICAgICAg
IDogbV9wbHVnaW5Db250cm9sbGVyKHBsdWdpbkNvbnRyb2xsZXIpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIG1fcGx1Z2luQ29udHJvbGxlci0+cHJvdGVjdFBsdWdpbkZyb21EZXN0cnVjdGlvbigp
OwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICB+UGx1Z2luRGVzdHJ1Y3Rpb25Qcm90ZWN0
b3IoKQotICAgICAgICB7Ci0gICAgICAgICAgICBtX3BsdWdpbkNvbnRyb2xsZXItPnVucHJvdGVj
dFBsdWdpbkZyb21EZXN0cnVjdGlvbigpOwotICAgICAgICB9Ci0gICAgICAgIAotICAgIHByaXZh
dGU6Ci0gICAgICAgIFBsdWdpbkNvbnRyb2xsZXIqIG1fcGx1Z2luQ29udHJvbGxlcjsKLSAgICB9
OwotICAgIAogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgflBsdWdpbkNvbnRyb2xsZXIoKSB7IH0K
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5W
aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3Bw
CmluZGV4IDA2Yzg5YTY5MDdhZGUwNWY2ODMzN2FjMGYzYzE1NTZkM2ZkMjE5MjYuLjdmOWEzODc5
NmM3MGY4NjcyYzYwNWM4OGYyMmNhMzY5NTg2MjkxZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCkBAIC0zMzMsMjEgKzMzMyw2IEBAIHZv
aWQgUGx1Z2luVmlldzo6ZGVzdHJveVBsdWdpbkFuZFJlc2V0KCkKICAgICBjYW5jZWxBbGxTdHJl
YW1zKCk7CiB9CiAKLXZvaWQgUGx1Z2luVmlldzo6cmVjcmVhdGVBbmRJbml0aWFsaXplKFJlZjxQ
bHVnaW4+JiYgcGx1Z2luKQotewotICAgIGlmIChtX3BsdWdpbikKLSAgICAgICAgZGVzdHJveVBs
dWdpbkFuZFJlc2V0KCk7Ci0KLSAgICBtX3BsdWdpbiA9IFdURk1vdmUocGx1Z2luKTsKLSAgICBt
X2lzSW5pdGlhbGl6ZWQgPSBmYWxzZTsKLSAgICBtX2lzV2FpdGluZ0ZvclN5bmNocm9ub3VzSW5p
dGlhbGl6YXRpb24gPSBmYWxzZTsKLSAgICBtX2lzV2FpdGluZ1VudGlsTWVkaWFDYW5TdGFydCA9
IGZhbHNlOwotICAgIG1fbWFudWFsU3RyZWFtU3RhdGUgPSBNYW51YWxTdHJlYW1TdGF0ZTo6SW5p
dGlhbDsKLSAgICBtX3RyYW5zaWVudFBhaW50aW5nU25hcHNob3QgPSBudWxscHRyOwotCi0gICAg
aW5pdGlhbGl6ZVBsdWdpbigpOwotfQotCiB2b2lkIFBsdWdpblZpZXc6OnNldExheWVySG9zdGlu
Z01vZGUoTGF5ZXJIb3N0aW5nTW9kZSBsYXllckhvc3RpbmdNb2RlKQogewogI2lmIEhBVkUoT1VU
X09GX1BST0NFU1NfTEFZRVJfSE9TVElORykKQEAgLTU3MCwxMiArNTU1LDcgQEAgdm9pZCBQbHVn
aW5WaWV3Ojppbml0aWFsaXplUGx1Z2luKCkKIAogICAgIG1fcGx1Z2luLT5pbml0aWFsaXplKCp0
aGlzLCBtX3BhcmFtZXRlcnMpOwogICAgIAotICAgIC8vIFBsdWctaW4gaW5pdGlhbGl6YXRpb24g
Y29udGludWVkIGluIGRpZEZhaWxUb0luaXRpYWxpemVQbHVnaW4oKSBvciBkaWRJbml0aWFsaXpl
UGx1Z2luKCkuCi19Ci0KLXZvaWQgUGx1Z2luVmlldzo6ZGlkRmFpbFRvSW5pdGlhbGl6ZVBsdWdp
bigpCi17Ci0gICAgbV9wbHVnaW4gPSBudWxscHRyOworICAgIC8vIFBsdWctaW4gaW5pdGlhbGl6
YXRpb24gY29udGludWVkIGluIGRpZEluaXRpYWxpemVQbHVnaW4oKS4KIH0KIAogdm9pZCBQbHVn
aW5WaWV3OjpkaWRJbml0aWFsaXplUGx1Z2luKCkKQEAgLTk0MywxNCArOTIzLDYgQEAgYm9vbCBQ
bHVnaW5WaWV3OjpwZXJmb3JtRGljdGlvbmFyeUxvb2t1cEF0TG9jYXRpb24oY29uc3QgV2ViQ29y
ZTo6RmxvYXRQb2ludCYgcG8KICAgICByZXR1cm4gbV9wbHVnaW4tPnBlcmZvcm1EaWN0aW9uYXJ5
TG9va3VwQXRMb2NhdGlvbihwb2ludCk7CiB9CiAKLVN0cmluZyBQbHVnaW5WaWV3OjpnZXRTZWxl
Y3Rpb25Gb3JXb3JkQXRQb2ludChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBwb2ludCkgY29u
c3QKLXsKLSAgICBpZiAoIW1faXNJbml0aWFsaXplZCB8fCAhbV9wbHVnaW4pCi0gICAgICAgIHJl
dHVybiBTdHJpbmcoKTsKLSAgICAKLSAgICByZXR1cm4gbV9wbHVnaW4tPmdldFNlbGVjdGlvbkZv
cldvcmRBdFBvaW50KHBvaW50KTsKLX0KLQogYm9vbCBQbHVnaW5WaWV3OjpleGlzdGluZ1NlbGVj
dGlvbkNvbnRhaW5zUG9pbnQoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgcG9pbnQpIGNvbnN0
CiB7CiAgICAgaWYgKCFtX2lzSW5pdGlhbGl6ZWQgfHwgIW1fcGx1Z2luKQpAQCAtMTI5MSwyMCAr
MTI2Myw2IEBAIHZvaWQgUGx1Z2luVmlldzo6cGFnZU11dGVkU3RhdGVEaWRDaGFuZ2UoKQogewog
fQogCi12b2lkIFBsdWdpblZpZXc6OmludmFsaWRhdGUoY29uc3QgSW50UmVjdCYgZGlydHlSZWN0
KQotewotICAgIGludmFsaWRhdGVSZWN0KGRpcnR5UmVjdCk7Ci19Ci0KLVN0cmluZyBQbHVnaW5W
aWV3Ojp1c2VyQWdlbnQoKQotewotICAgIEZyYW1lKiBmcmFtZSA9IG1fcGx1Z2luRWxlbWVudC0+
ZG9jdW1lbnQoKS5mcmFtZSgpOwotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybiBTdHJp
bmcoKTsKLSAgICAKLSAgICByZXR1cm4gZnJhbWUtPmxvYWRlcigpLmNsaWVudCgpLnVzZXJBZ2Vu
dChVUkwoKSk7Ci19Ci0KIHZvaWQgUGx1Z2luVmlldzo6bG9hZFVSTCh1aW50NjRfdCByZXF1ZXN0
SUQsIGNvbnN0IFN0cmluZyYgbWV0aG9kLCBjb25zdCBTdHJpbmcmIHVybFN0cmluZywgY29uc3Qg
U3RyaW5nJiB0YXJnZXQsIGNvbnN0IEhUVFBIZWFkZXJNYXAmIGhlYWRlckZpZWxkcywgY29uc3Qg
VmVjdG9yPHVpbnQ4X3Q+JiBodHRwQm9keSwgYm9vbCBhbGxvd1BvcHVwcykKIHsKICAgICBGcmFt
ZUxvYWRSZXF1ZXN0IGZyYW1lTG9hZFJlcXVlc3QgeyBtX3BsdWdpbkVsZW1lbnQtPmRvY3VtZW50
KCksIG1fcGx1Z2luRWxlbWVudC0+ZG9jdW1lbnQoKS5zZWN1cml0eU9yaWdpbigpLCB7IH0sIHRh
cmdldCwgSW5pdGlhdGVkQnlNYWluRnJhbWU6OlVua25vd24gfTsKQEAgLTEzMjUsNzEgKzEyODMs
MTIgQEAgdm9pZCBQbHVnaW5WaWV3Ojpsb2FkVVJMKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3Qg
U3RyaW5nJiBtZXRob2QsIGNvbnN0IFN0cmluZyYKICAgICBtX3BlbmRpbmdVUkxSZXF1ZXN0c1Rp
bWVyLnN0YXJ0T25lU2hvdCgwX3MpOwogfQogCi12b2lkIFBsdWdpblZpZXc6OmNhbmNlbFN0cmVh
bUxvYWQodWludDY0X3Qgc3RyZWFtSUQpCi17Ci0gICAgLy8gS2VlcCBhIHJlZmVyZW5jZSB0byB0
aGUgc3RyZWFtLiBTdHJlYW06OmNhbmNlbCBtaWdodCByZW1vdmUgdGhlIHN0cmVhbSBmcm9tIHRo
ZSBtYXAsIGFuZCB0aHVzCi0gICAgLy8gcmVsZWFzaW5nIGl0cyBsYXN0IHJlZmVyZW5jZS4KLSAg
ICBSZWZQdHI8U3RyZWFtPiBzdHJlYW0gPSBtX3N0cmVhbXMuZ2V0KHN0cmVhbUlEKTsKLSAgICBp
ZiAoIXN0cmVhbSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgLy8gQ2FuY2VsbGluZyB0aGUgc3Ry
ZWFtIGhlcmUgd2lsbCByZW1vdmUgaXQgZnJvbSB0aGUgbWFwLgotICAgIHN0cmVhbS0+Y2FuY2Vs
KCk7Ci0gICAgQVNTRVJUKCFtX3N0cmVhbXMuY29udGFpbnMoc3RyZWFtSUQpKTsKLX0KLQotdm9p
ZCBQbHVnaW5WaWV3Ojpjb250aW51ZVN0cmVhbUxvYWQodWludDY0X3Qgc3RyZWFtSUQpCi17Ci0g
ICAgUmVmUHRyPFN0cmVhbT4gc3RyZWFtID0gbV9zdHJlYW1zLmdldChzdHJlYW1JRCk7Ci0gICAg
aWYgKCFzdHJlYW0pCi0gICAgICAgIHJldHVybjsKLQotICAgIHN0cmVhbS0+Y29udGludWVMb2Fk
KCk7Ci19Ci0KLXZvaWQgUGx1Z2luVmlldzo6Y2FuY2VsTWFudWFsU3RyZWFtTG9hZCgpCi17Ci0g
ICAgaWYgKCFmcmFtZSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBEb2N1bWVudExvYWRlciog
ZG9jdW1lbnRMb2FkZXIgPSBmcmFtZSgpLT5sb2FkZXIoKS5hY3RpdmVEb2N1bWVudExvYWRlcigp
OwotICAgIEFTU0VSVChkb2N1bWVudExvYWRlcik7Ci0gICAgaWYgKGRvY3VtZW50TG9hZGVyICYm
IGRvY3VtZW50TG9hZGVyLT5pc0xvYWRpbmdNYWluUmVzb3VyY2UoKSkKLSAgICAgICAgZG9jdW1l
bnRMb2FkZXItPmNhbmNlbE1haW5SZXNvdXJjZUxvYWQoZnJhbWUoKS0+bG9hZGVyKCkuY2FuY2Vs
bGVkRXJyb3IobV9wYXJhbWV0ZXJzLnVybCkpOwotfQotCi12b2lkIFBsdWdpblZpZXc6OnNldFN0
YXR1c2JhclRleHQoY29uc3QgU3RyaW5nJiBzdGF0dXNiYXJUZXh0KQotewotICAgIGlmICghZnJh
bWUoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZSgpLT5w
YWdlKCk7Ci0gICAgaWYgKCFwYWdlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBwYWdlLT5jaHJv
bWUoKS5zZXRTdGF0dXNiYXJUZXh0KCpmcmFtZSgpLCBzdGF0dXNiYXJUZXh0KTsKLX0KLQotYm9v
bCBQbHVnaW5WaWV3Ojppc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKCkKLXsKLSAgICBp
ZiAoIWZyYW1lKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICByZXR1cm4gZnJh
bWUoKS0+c2V0dGluZ3MoKS5hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCgpOwotfQotCiAj
aWYgUExBVEZPUk0oQ09DT0EpCiB2b2lkIFBsdWdpblZpZXc6OnBsdWdpbkZvY3VzT3JXaW5kb3dG
b2N1c0NoYW5nZWQoYm9vbCBwbHVnaW5IYXNGb2N1c0FuZFdpbmRvd0hhc0ZvY3VzKQogewogICAg
IGlmIChtX3dlYlBhZ2UpCiAgICAgICAgIG1fd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpQbHVnaW5Gb2N1c09yV2luZG93Rm9jdXNDaGFuZ2VkKG1fcGx1Z2luLT5wbHVnaW5D
b21wbGV4VGV4dElucHV0SWRlbnRpZmllcigpLCBwbHVnaW5IYXNGb2N1c0FuZFdpbmRvd0hhc0Zv
Y3VzKSk7CiB9Ci0KLWNvbnN0IE1hY2hTZW5kUmlnaHQmIFBsdWdpblZpZXc6OmNvbXBvc2l0aW5n
UmVuZGVyU2VydmVyUG9ydCgpCi17Ci0gICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LmNvbXBvc2l0aW5nUmVuZGVyU2VydmVyUG9ydCgpOwotfQotCiAjZW5kaWYKIAogZmxvYXQgUGx1
Z2luVmlldzo6Y29udGVudHNTY2FsZUZhY3RvcigpCkBAIC0xNDAwLDc0ICsxMjk5LDYgQEAgZmxv
YXQgUGx1Z2luVmlldzo6Y29udGVudHNTY2FsZUZhY3RvcigpCiAgICAgcmV0dXJuIDE7CiB9CiAK
LWJvb2wgUGx1Z2luVmlldzo6Z2V0QXV0aGVudGljYXRpb25JbmZvKGNvbnN0IFByb3RlY3Rpb25T
cGFjZSYgcHJvdGVjdGlvblNwYWNlLCBTdHJpbmcmIHVzZXJuYW1lLCBTdHJpbmcmIHBhc3N3b3Jk
KQotewotICAgIGF1dG8qIGNvbnRlbnREb2N1bWVudCA9IG1fcGx1Z2luRWxlbWVudC0+Y29udGVu
dERvY3VtZW50KCk7Ci0gICAgaWYgKCFjb250ZW50RG9jdW1lbnQpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLQotICAgIGF1dG8gY3JlZGVudGlhbCA9IENyZWRlbnRpYWxTdG9yYWdlOjpnZXRGcm9t
UGVyc2lzdGVudFN0b3JhZ2UocHJvdGVjdGlvblNwYWNlKTsKLSAgICBpZiAoIWNyZWRlbnRpYWwu
aGFzUGFzc3dvcmQoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgdXNlcm5hbWUgPSBj
cmVkZW50aWFsLnVzZXIoKTsKLSAgICBwYXNzd29yZCA9IGNyZWRlbnRpYWwucGFzc3dvcmQoKTsK
LQotICAgIHJldHVybiB0cnVlOwotfQotCi1ib29sIFBsdWdpblZpZXc6OmlzUHJpdmF0ZUJyb3dz
aW5nRW5hYmxlZCgpCi17Ci0gICAgLy8gSWYgd2UgY2FuJ3QgZ2V0IHRoZSByZWFsIHNldHRpbmcs
IHdlJ2xsIGFzc3VtZSB0aGF0IHByaXZhdGUgYnJvd3NpbmcgaXMgZW5hYmxlZC4KLSAgICBpZiAo
IWZyYW1lKCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgaWYgKCFmcmFtZSgpLT5kb2N1
bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLmNhbkFjY2Vzc1BsdWdpblN0b3JhZ2UoZnJhbWUoKS0+
ZG9jdW1lbnQoKS0+dG9wT3JpZ2luKCkpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIHJl
dHVybiBmcmFtZSgpLT5wYWdlKCktPnVzZXNFcGhlbWVyYWxTZXNzaW9uKCk7Ci19Ci0KLWJvb2wg
UGx1Z2luVmlldzo6YXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRpb25FbmFibGVkKCkgY29u
c3QKLXsKLSAgICByZXR1cm4gbV93ZWJQYWdlLT5hc3luY2hyb25vdXNQbHVnaW5Jbml0aWFsaXph
dGlvbkVuYWJsZWQoKTsKLX0KLQotYm9vbCBQbHVnaW5WaWV3Ojphc3luY2hyb25vdXNQbHVnaW5J
bml0aWFsaXphdGlvbkVuYWJsZWRGb3JBbGxQbHVnaW5zKCkgY29uc3QKLXsKLSAgICByZXR1cm4g
bV93ZWJQYWdlLT5hc3luY2hyb25vdXNQbHVnaW5Jbml0aWFsaXphdGlvbkVuYWJsZWRGb3JBbGxQ
bHVnaW5zKCk7Ci19Ci0KLWJvb2wgUGx1Z2luVmlldzo6YXJ0aWZpY2lhbFBsdWdpbkluaXRpYWxp
emF0aW9uRGVsYXlFbmFibGVkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV93ZWJQYWdlLT5hcnRp
ZmljaWFsUGx1Z2luSW5pdGlhbGl6YXRpb25EZWxheUVuYWJsZWQoKTsKLX0KLQotdm9pZCBQbHVn
aW5WaWV3Ojpwcm90ZWN0UGx1Z2luRnJvbURlc3RydWN0aW9uKCkKLXsKLSAgICBpZiAobV9wbHVn
aW4gJiYgIW1fcGx1Z2luLT5pc0JlaW5nRGVzdHJveWVkKCkpCi0gICAgICAgIHJlZigpOwotfQot
Ci12b2lkIFBsdWdpblZpZXc6OnVucHJvdGVjdFBsdWdpbkZyb21EZXN0cnVjdGlvbigpCi17Ci0g
ICAgaWYgKCFtX3BsdWdpbiB8fCBtX3BsdWdpbi0+aXNCZWluZ0Rlc3Ryb3llZCgpKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICAvLyBBIHBsdWctaW4gbWF5IGFzayB1cyB0byBldmFsdWF0ZSBKYXZh
U2NyaXB0IHRoYXQgcmVtb3ZlcyB0aGUgcGx1Zy1pbiBmcm9tIHRoZQotICAgIC8vIHBhZ2UsIGJ1
dCBleHBlY3QgdGhlIG9iamVjdCB0byBzdGlsbCBiZSBhbGl2ZSB3aGVuIHRoZSBjYWxsIGNvbXBs
ZXRlcy4gRmxhc2gsCi0gICAgLy8gZm9yIGV4YW1wbGUsIG1heSBjcmFzaCBpZiB0aGUgcGx1Zy1p
biBpcyBkZXN0cm95ZWQgYW5kIHdlIHJldHVybiB0byBjb2RlIGZvcgotICAgIC8vIHRoZSBkZXN0
cm95ZWQgb2JqZWN0IGhpZ2hlciBvbiB0aGUgc3RhY2suIFRvIHByZXZlbnQgdGhpcywgaWYgdGhl
IHBsdWctaW4gaGFzCi0gICAgLy8gb25seSBvbmUgcmVtYWluaW5nIHJlZmVyZW5jZSwgY2FsbCBk
ZXJlZigpIGFzeW5jaHJvbm91c2x5LgotICAgIGlmIChoYXNPbmVSZWYoKSkgewotICAgICAgICBS
dW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW2xhc3RSZWYgPSBhZG9wdFJlZigqdGhpcyldIHsKLSAg
ICAgICAgfSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBkZXJlZigpOwotfQotCiB2
b2lkIFBsdWdpblZpZXc6OmRpZEZpbmlzaExvYWQoV2ViRnJhbWUqIHdlYkZyYW1lKQogewogICAg
IFJlZlB0cjxVUkxSZXF1ZXN0PiByZXF1ZXN0ID0gbV9wZW5kaW5nRnJhbWVMb2Fkcy50YWtlKHdl
YkZyYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpblZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcu
aAppbmRleCA2ODRjNTc0OTczMjE4Mjg4MmZjZGNiNjFlOTE5YjRlNjA4MmZkMmU5Li5iZmFlMWNj
ODQ4OGI0NTNhOTM2MWVjMjdlYmExM2NlYzdkNmFlYjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCkBAIC02OCw4ICs2OCw2IEBAIGNsYXNzIFBs
dWdpblZpZXcgOiBwdWJsaWMgV2ViQ29yZTo6UGx1Z2luVmlld0Jhc2UsIHB1YmxpYyBQbHVnaW5D
b250cm9sbGVyLCBwcml2CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxQbHVnaW5WaWV3PiBjcmVh
dGUoV2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQmLCBSZWY8UGx1Z2luPiYmLCBjb25zdCBQbHVn
aW46OlBhcmFtZXRlcnMmKTsKIAotICAgIHZvaWQgcmVjcmVhdGVBbmRJbml0aWFsaXplKFJlZjxQ
bHVnaW4+JiYpOwotCiAgICAgV2ViQ29yZTo6RnJhbWUqIGZyYW1lKCkgY29uc3Q7CiAKICAgICBi
b29sIGlzQmVpbmdEZXN0cm95ZWQoKSBjb25zdCB7IHJldHVybiAhbV9wbHVnaW4gfHwgbV9wbHVn
aW4tPmlzQmVpbmdEZXN0cm95ZWQoKTsgfQpAQCAtMTE4LDcgKzExNiw2IEBAIHB1YmxpYzoKIAog
ICAgIFJlZlB0cjxXZWJDb3JlOjpGcmFnbWVudGVkU2hhcmVkQnVmZmVyPiBsaXZlUmVzb3VyY2VE
YXRhKCkgY29uc3Q7CiAgICAgYm9vbCBwZXJmb3JtRGljdGlvbmFyeUxvb2t1cEF0TG9jYXRpb24o
Y29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpOwotICAgIFN0cmluZyBnZXRTZWxlY3Rpb25Gb3JX
b3JkQXRQb2ludChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JikgY29uc3Q7CiAgICAgYm9vbCBl
eGlzdGluZ1NlbGVjdGlvbkNvbnRhaW5zUG9pbnQoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYp
IGNvbnN0OwogCiBwcml2YXRlOgpAQCAtMTkwLDI5ICsxODcsMTMgQEAgcHJpdmF0ZToKICAgICB2
b2lkIHBhZ2VNdXRlZFN0YXRlRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7CiAKICAgICAvLyBQbHVnaW5D
b250cm9sbGVyCi0gICAgdm9pZCBpbnZhbGlkYXRlKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBv
dmVycmlkZTsKLSAgICBTdHJpbmcgdXNlckFnZW50KCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBsb2Fk
VVJMKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgU3RyaW5nJiBtZXRob2QsIGNvbnN0IFN0cmlu
ZyYgdXJsU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRhcmdldCwgY29uc3QgV2ViQ29yZTo6SFRUUEhl
YWRlck1hcCYgaGVhZGVyRmllbGRzLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGh0dHBCb2R5LCBi
b29sIGFsbG93UG9wdXBzKSBvdmVycmlkZTsKLSAgICB2b2lkIGNhbmNlbFN0cmVhbUxvYWQodWlu
dDY0X3Qgc3RyZWFtSUQpIG92ZXJyaWRlOwotICAgIHZvaWQgY29udGludWVTdHJlYW1Mb2FkKHVp
bnQ2NF90IHN0cmVhbUlEKSBvdmVycmlkZTsKLSAgICB2b2lkIGNhbmNlbE1hbnVhbFN0cmVhbUxv
YWQoKSBvdmVycmlkZTsKLSAgICB2b2lkIHNldFN0YXR1c2JhclRleHQoY29uc3QgU3RyaW5nJikg
b3ZlcnJpZGU7Ci0gICAgYm9vbCBpc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKCkgb3Zl
cnJpZGU7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdm9pZCBwbHVnaW5Gb2N1c09yV2luZG93
Rm9jdXNDaGFuZ2VkKGJvb2wgcGx1Z2luSGFzRm9jdXNBbmRXaW5kb3dIYXNGb2N1cykgb3ZlcnJp
ZGU7Ci0gICAgY29uc3QgV1RGOjpNYWNoU2VuZFJpZ2h0JiBjb21wb3NpdGluZ1JlbmRlclNlcnZl
clBvcnQoKSBvdmVycmlkZTsKICNlbmRpZgogICAgIGZsb2F0IGNvbnRlbnRzU2NhbGVGYWN0b3Io
KSBvdmVycmlkZTsKLSAgICBib29sIGdldEF1dGhlbnRpY2F0aW9uSW5mbyhjb25zdCBXZWJDb3Jl
OjpQcm90ZWN0aW9uU3BhY2UmLCBTdHJpbmcmIHVzZXJuYW1lLCBTdHJpbmcmIHBhc3N3b3JkKSBv
dmVycmlkZTsKLSAgICBib29sIGlzUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpIG92ZXJyaWRlOwot
ICAgIGJvb2wgYXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRpb25FbmFibGVkKCkgY29uc3Qg
b3ZlcnJpZGU7Ci0gICAgYm9vbCBhc3luY2hyb25vdXNQbHVnaW5Jbml0aWFsaXphdGlvbkVuYWJs
ZWRGb3JBbGxQbHVnaW5zKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgYm9vbCBhcnRpZmljaWFsUGx1
Z2luSW5pdGlhbGl6YXRpb25EZWxheUVuYWJsZWQoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lk
IHByb3RlY3RQbHVnaW5Gcm9tRGVzdHJ1Y3Rpb24oKSBvdmVycmlkZTsKLSAgICB2b2lkIHVucHJv
dGVjdFBsdWdpbkZyb21EZXN0cnVjdGlvbigpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBkaWRJbml0
aWFsaXplUGx1Z2luKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRGYWlsVG9Jbml0aWFsaXplUGx1
Z2luKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkZXN0cm95UGx1Z2luQW5kUmVzZXQoKTsKIAogICAg
IC8vIFdlYkZyYW1lOjpMb2FkTGlzdGVuZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggNjMyMGMzNThlMWNkMjYwMzA2ZjM1MzQyYTkwZGNhMmVm
ODRjMDg4OC4uOTQyZWRjNjIzYTRlNjUzYmIxODhhZWUwNTA2NDRhM2Y0YTAzMmU4OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTM5NzgsOSAr
Mzk3OCw2IEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVy
ZW5jZXNTdG9yZSYgc3RvcmUpCiAgICAgRGF0YWJhc2VNYW5hZ2VyOjpzaW5nbGV0b24oKS5zZXRJ
c0F2YWlsYWJsZShzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmRh
dGFiYXNlc0VuYWJsZWRLZXkoKSkpOwogCiAgICAgbV90YWJUb0xpbmtzID0gc3RvcmUuZ2V0Qm9v
bFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojp0YWJzVG9MaW5rc0tleSgpKTsKLSAgICBt
X2FzeW5jaHJvbm91c1BsdWdpbkluaXRpYWxpemF0aW9uRW5hYmxlZCA9IHN0b3JlLmdldEJvb2xW
YWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6YXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6
YXRpb25FbmFibGVkS2V5KCkpOwotICAgIG1fYXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRp
b25FbmFibGVkRm9yQWxsUGx1Z2lucyA9IHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVm
ZXJlbmNlc0tleTo6YXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRpb25FbmFibGVkRm9yQWxs
UGx1Z2luc0tleSgpKTsKLSAgICBtX2FydGlmaWNpYWxQbHVnaW5Jbml0aWFsaXphdGlvbkRlbGF5
RW5hYmxlZCA9IHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6YXJ0
aWZpY2lhbFBsdWdpbkluaXRpYWxpemF0aW9uRGVsYXlFbmFibGVkS2V5KCkpOwogCiAgICAgYm9v
bCBpc0FwcE5hcEVuYWJsZWQgPSBzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5j
ZXNLZXk6OnBhZ2VWaXNpYmlsaXR5QmFzZWRQcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkS2V5KCkp
OwogICAgIGlmIChtX2lzQXBwTmFwRW5hYmxlZCAhPSBpc0FwcE5hcEVuYWJsZWQpIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA2YmZhNDA4NGJjOGY1
NzhjMjY4MDU5YWYxMGNiZmUxOTcxZGJiMzhiLi5iNDU3YzYzOThjODZjNmRiMTk1ODUyNzQxZGJi
N2MyOTFlZDAxZWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCkBAIC0xMTMxLDEzICsxMTMxLDYgQEAgcHVibGljOgogCiAgICAgYm9vbCBzaG91bGRVc2VD
dXN0b21Db250ZW50UHJvdmlkZXJGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJik7CiAKLSAgICBib29sIGFzeW5jaHJvbm91c1BsdWdpbkluaXRpYWxpemF0aW9uRW5h
YmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRpb25F
bmFibGVkOyB9Ci0gICAgdm9pZCBzZXRBc3luY2hyb25vdXNQbHVnaW5Jbml0aWFsaXphdGlvbkVu
YWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fYXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRpb25F
bmFibGVkID0gZW5hYmxlZDsgfQotICAgIGJvb2wgYXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6
YXRpb25FbmFibGVkRm9yQWxsUGx1Z2lucygpIGNvbnN0IHsgcmV0dXJuIG1fYXN5bmNocm9ub3Vz
UGx1Z2luSW5pdGlhbGl6YXRpb25FbmFibGVkRm9yQWxsUGx1Z2luczsgfQotICAgIHZvaWQgc2V0
QXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRpb25FbmFibGVkRm9yQWxsUGx1Z2lucyhib29s
IGVuYWJsZWQpIHsgbV9hc3luY2hyb25vdXNQbHVnaW5Jbml0aWFsaXphdGlvbkVuYWJsZWRGb3JB
bGxQbHVnaW5zID0gZW5hYmxlZDsgfQotICAgIGJvb2wgYXJ0aWZpY2lhbFBsdWdpbkluaXRpYWxp
emF0aW9uRGVsYXlFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9hcnRpZmljaWFsUGx1Z2luSW5p
dGlhbGl6YXRpb25EZWxheUVuYWJsZWQ7IH0KLSAgICB2b2lkIHNldEFydGlmaWNpYWxQbHVnaW5J
bml0aWFsaXphdGlvbkRlbGF5RW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9hcnRpZmljaWFsUGx1
Z2luSW5pdGlhbGl6YXRpb25EZWxheUVuYWJsZWQgPSBlbmFibGVkOyB9Ci0KICNpZiBQTEFURk9S
TShDT0NPQSkKICAgICBib29sIHBkZlBsdWdpbkVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3Bk
ZlBsdWdpbkVuYWJsZWQ7IH0KICAgICB2b2lkIHNldFBERlBsdWdpbkVuYWJsZWQoYm9vbCBlbmFi
bGVkKSB7IG1fcGRmUGx1Z2luRW5hYmxlZCA9IGVuYWJsZWQ7IH0KQEAgLTE5ODEsOSArMTk3NCw2
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzQ2xvc2VkIHsgZmFsc2UgfTsKICAgICBib29sIG1f
dGFiVG9MaW5rcyB7IGZhbHNlIH07CiAgICAgCi0gICAgYm9vbCBtX2FzeW5jaHJvbm91c1BsdWdp
bkluaXRpYWxpemF0aW9uRW5hYmxlZCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2FzeW5jaHJvbm91
c1BsdWdpbkluaXRpYWxpemF0aW9uRW5hYmxlZEZvckFsbFBsdWdpbnMgeyBmYWxzZSB9OwotICAg
IGJvb2wgbV9hcnRpZmljaWFsUGx1Z2luSW5pdGlhbGl6YXRpb25EZWxheUVuYWJsZWQgeyBmYWxz
ZSB9OwogICAgIGJvb2wgbV9tYWluRnJhbWVJc1Njcm9sbGFibGUgeyB0cnVlIH07CiAKICAgICBi
b29sIG1fYWx3YXlzU2hvd3NIb3Jpem9udGFsU2Nyb2xsZXIgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGU4
MjQ5YzVmNzNiYTE5NWQ0OTE2MWZhYzczNTEyZTFhY2MwMzIzMmEuLmY2ZTMyNjZmNDcwNmYwODc1
YzQ1OWFiYzMyMmQwMmZiN2UwNmUzMWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0xMi0x
NSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAg
IFJlbW92ZSB1bnJlYWNoYWJsZSBjb2RlIGluIFBsdWdpbiBhbmQgUGx1Z2luQ29udHJvbGxlcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0MzY1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmYgR2FyZW4uCisKKyAgICAgICAgKiBmYXN0L2ZyYW1l
cy9yZXN0b3JpbmctcGFnZS1jYWNoZS1zaG91bGQtbm90LXJ1bi1zY3JpcHRzLXZpYS1zdHlsZS11
cGRhdGUuaHRtbDoKKyAgICAgICAgKiBtZWRpYS9jcmFzaC1jbG9zaW5nLXBhZ2Utd2l0aC1tZWRp
YS1hcy1wbHVnaW4tZmFsbGJhY2suaHRtbDoKKyAgICAgICAgKiBwbHVnaW5zL2NyYXNoLXJlc3Rv
cmluZy1wbHVnaW4tcGFnZS1mcm9tLXBhZ2UtY2FjaGUuaHRtbDoKKyAgICAgICAgKiBwbHVnaW5z
L2ZyYW1lc2V0LXdpdGgtcGx1Z2luLWZyYW1lLmh0bWw6CisgICAgICAgICogcGx1Z2lucy9uZXRz
Y2FwZS1wbHVnaW4tcGFnZS1jYWNoZS13b3Jrcy5odG1sOgorICAgICAgICAqIHBsdWdpbnMvbmV0
c2NhcGUtcGx1Z2luLXBhZ2UtY2FjaGUtd29ya3MtZXhwZWN0ZWQuaHRtbDogUmVtb3ZlIHRlc3Qg
Zm9yIG5vLWxvbmdlci1yZWFjaGFibGUgY29uZmlndXJhdGlvbi4KKwogMjAyMS0xMi0xNSAgQWxl
eGV5IFNodmF5a2EgIDxhc2h2YXlrYUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYklETF0gb25z
ZWxlY3Rpb25jaGFuZ2UgSURMIGF0dHJpYnV0ZSBzaG91bGQgbm90IERvY3VtZW50LXJlZmxlY3Qg
ZXZlbnQgbGlzdGVuZXJzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9yZXN0
b3JpbmctcGFnZS1jYWNoZS1zaG91bGQtbm90LXJ1bi1zY3JpcHRzLXZpYS1zdHlsZS11cGRhdGUu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3Jlc3RvcmluZy1wYWdlLWNhY2hlLXNob3Vs
ZC1ub3QtcnVuLXNjcmlwdHMtdmlhLXN0eWxlLXVwZGF0ZS5odG1sCmluZGV4IGJkNzZhMzg2Nzhm
MGRkM2E0ZDFmYjlhZDU5ODNmMzFhNGEyODAyNTguLjA1MzlmOThiZTg5YzNhNWI2ZjczNDg2ODgy
MGNkYTFkYjBmMTM4ZjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3Jlc3Rv
cmluZy1wYWdlLWNhY2hlLXNob3VsZC1ub3QtcnVuLXNjcmlwdHMtdmlhLXN0eWxlLXVwZGF0ZS5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3Jlc3RvcmluZy1wYWdlLWNhY2hlLXNo
b3VsZC1ub3QtcnVuLXNjcmlwdHMtdmlhLXN0eWxlLXVwZGF0ZS5odG1sCkBAIC05LDcgKzksNiBA
QAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7
CiAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgaW50ZXJuYWxzLnNldHRpbmdz
LnNldEJhY2tGb3J3YXJkQ2FjaGVTdXBwb3J0c1BsdWdpbnModHJ1ZSk7CiB9CiAKIGxldCBuZXdX
aW5kb3c7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9jcmFzaC1jbG9zaW5nLXBhZ2Ut
d2l0aC1tZWRpYS1hcy1wbHVnaW4tZmFsbGJhY2suaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL2Ny
YXNoLWNsb3NpbmctcGFnZS13aXRoLW1lZGlhLWFzLXBsdWdpbi1mYWxsYmFjay5odG1sCmluZGV4
IDAzZTk0YmEzYTI0MThiMmFkNjE3YzRjN2ZkYWYwMGNkOGIyMWM4Y2YuLjJmNzJjYjBiYTI4M2Ji
YzcyZTQ4NmFlNTAzODRkMGU5NGJjMDQ5M2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlh
L2NyYXNoLWNsb3NpbmctcGFnZS13aXRoLW1lZGlhLWFzLXBsdWdpbi1mYWxsYmFjay5odG1sCisr
KyBiL0xheW91dFRlc3RzL21lZGlhL2NyYXNoLWNsb3NpbmctcGFnZS13aXRoLW1lZGlhLWFzLXBs
dWdpbi1mYWxsYmFjay5odG1sCkBAIC0xMyw3ICsxMyw2IEBAIElmIGl0IGRvZXNuJ3QgY3Jhc2gs
IGl0IHBhc3Nlcy48YnI+CiBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFs
cykgewogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOwotICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRCYWNrRm9yd2FyZENhY2hlU3Vw
cG9ydHNQbHVnaW5zKHRydWUpOwogICAgIHZhciBidXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiYnV0dG9uIik7CiAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oYnV0dG9uLm9mZnNl
dFBhcmVudC5vZmZzZXRMZWZ0ICsgYnV0dG9uLm9mZnNldExlZnQgKyBidXR0b24ub2Zmc2V0V2lk
dGggLyAyLCBidXR0b24ub2Zmc2V0UGFyZW50Lm9mZnNldFRvcCArICBidXR0b24ub2Zmc2V0VG9w
ICsgYnV0dG9uLm9mZnNldEhlaWdodCAvIDIpOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwppbmRleCA3NjZkNzBm
MmQ5NDg4NDE1NjE3YzMwZjA3ZjIyNjhhYWFjMGZmYjFjLi5kMDczMDBiMDUzMjM1ZjM5NTgzN2Fm
MWMwOTljZWYzOTU2NDY5MmI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4v
VGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVj
dGF0aW9ucwpAQCAtNzg0LDcgKzc4NCw2IEBAIHdlYmtpdC5vcmcvYi84ODEwNyBwbGF0Zm9ybS93
aW4vcGx1Z2lucy9pZnJhbWUtaW5zaWRlLW92ZXJmbG93Lmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5v
cmcvYi84ODEwNyBwbGF0Zm9ybS93aW4vcGx1Z2lucy93aW5kb3ctcmVnaW9uLWlzLXNldC10by1j
bGlwLXJlY3QuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzg4MTA3IHBsdWdpbnMvY3Jhc2gt
cmVzdG9yaW5nLXBsdWdpbi1wYWdlLWZyb20tcGFnZS1jYWNoZS5odG1sIFsgU2tpcCBdCiB3ZWJr
aXQub3JnL2IvODgxMDcgcGx1Z2lucy9mdWxsc2NyZWVuLXBsdWdpbnMtZG9udC1yZWxvYWQuaHRt
bCBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzg4MTA3IHBsdWdpbnMvbmV0c2NhcGUtcGx1Z2luLXBh
Z2UtY2FjaGUtd29ya3MuaHRtbCBbIFNraXAgXQogIyBUaGlzIHRlc3QgY2F1c2VzIGFueSBmb2xs
b3dpbmcgcGx1Z2lucyB0ZXN0IHRvIGNyYXNoCiBwbHVnaW5zL25lc3RlZC1wbHVnaW4tb2JqZWN0
cy5odG1sIFsgU2tpcCBdCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsdWdpbnMvY3Jhc2gt
cmVzdG9yaW5nLXBsdWdpbi1wYWdlLWZyb20tcGFnZS1jYWNoZS5odG1sIGIvTGF5b3V0VGVzdHMv
cGx1Z2lucy9jcmFzaC1yZXN0b3JpbmctcGx1Z2luLXBhZ2UtZnJvbS1wYWdlLWNhY2hlLmh0bWwK
aW5kZXggZjBjZGRiYTdmNzcyMjhkZjM2YWI1YmZhZTkxNTE3OWIyNTY1OGIyNy4uYWNlNTg2YzMx
ZmJkOTA1OGY1OTcyZTZlN2E4NmEzMDQ0YzIxNjU5NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGx1Z2lucy9jcmFzaC1yZXN0b3JpbmctcGx1Z2luLXBhZ2UtZnJvbS1wYWdlLWNhY2hlLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvcGx1Z2lucy9jcmFzaC1yZXN0b3JpbmctcGx1Z2luLXBhZ2UtZnJv
bS1wYWdlLWNhY2hlLmh0bWwKQEAgLTQsNyArNCw2IEBACiBpZiAod2luZG93LnRlc3RSdW5uZXIg
JiYgd2luZG93LmludGVybmFscykgewogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAg
IHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRC
YWNrRm9yd2FyZENhY2hlU3VwcG9ydHNQbHVnaW5zKHRydWUpOwogfQogCiBmdW5jdGlvbiBwYWdl
U2hvd24oKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbHVnaW5zL2ZyYW1lc2V0LXdpdGgt
cGx1Z2luLWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9wbHVnaW5zL2ZyYW1lc2V0LXdpdGgtcGx1
Z2luLWZyYW1lLmh0bWwKaW5kZXggN2JlMzgxYTIxMTJhMzg2MzNkNTU5N2YyM2FlZGQ2ZWVmODlm
NzBiMS4uZjM1ZjhmNjI5N2QyZDkzNTgxZDEyZmYwODlkYTdmYTBiN2MwY2M0ZSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGx1Z2lucy9mcmFtZXNldC13aXRoLXBsdWdpbi1mcmFtZS5odG1sCisr
KyBiL0xheW91dFRlc3RzL3BsdWdpbnMvZnJhbWVzZXQtd2l0aC1wbHVnaW4tZnJhbWUuaHRtbApA
QCAtNSw3ICs1LDYgQEAKICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAg
IHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0RnJhbWVGbGF0dGVuaW5nKCJGdWxseUVuYWJsZWQiKQotICAgICAgICBpbnRlcm5hbHMuc2V0
dGluZ3Muc2V0QmFja0ZvcndhcmRDYWNoZVN1cHBvcnRzUGx1Z2lucyh0cnVlKTsKICAgICB9CiA8
L3NjcmlwdD4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGx1Z2lucy9uZXRzY2FwZS1wbHVn
aW4tcGFnZS1jYWNoZS13b3Jrcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbHVnaW5zL25l
dHNjYXBlLXBsdWdpbi1wYWdlLWNhY2hlLXdvcmtzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYTk5ZmFlMGU1MDk2MDk1MGU4YTg2ZTAyNDdhMTc2OTU2NzI5YmYw
Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9wbHVnaW5zL25ldHNjYXBlLXBsdWdpbi1wYWdlLWNhY2hlLXdvcmtzLWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLVRoaXMgdGVzdHMgdGhhdCBwYWdlcyB3
aXRoIHBsdWdpbnMgYmVoYXZlIHByb3Blcmx5IHdpdGggdGhlIHBhZ2UgY2FjaGUuIFRoaXMgaW5j
bHVkZXM6Ci0tVGhlIHBsdWdpbiBiZWluZyBkZXN0cm95ZWQgdXBvbiBuYXZpZ2F0aW9uIGF3YXkg
ZnJvbSB0aGUgcGFnZS4KLS1UaGUgcGx1Z2luIGJlaW5nIHJlY3JlYXRlZCB1cG9uIHJlc3Rvcmlu
ZyB0aGUgcGFnZSBmcm9tIHRoZSBwYWdlIGNhY2hlLgotLVBsdWdpbiBzY3JpcHQgb2JqZWN0cyBh
Y2Nlc3NlZCB0aGUgZmlyc3QgdGltZSB0aGUgcGx1Z2luIHdhcyBjcmVhdGVkIGFyZSBhcHByb3By
aWF0ZWx5IGludmFsaWRhdGVkIGFmdGVyIHRoZSBwYWdlIGhhcyBiZWVuIHJlc3RvcmVkIGZyb20g
dGhlIHBhZ2UgY2FjaGUuCi0KLVVuZm9ydHVuYXRlbHkgdGhlcmUgaXMgbm8gcmVsaWFibGUgd2F5
IHRvIGdldCBhZmZpcm1hdGl2ZSBjb25maXJtYXRpb24gdGhhdCB0aGUgcGx1Z2luIHdhcyBkZXN0
cm95ZWQgdXBvbiBuYXZpZ2F0aW9uIGF3YXkgZnJvbSB0aGUgcGFnZS4gRm9yIG5vdyB3ZSdsbCBh
c3N1bWUgcmVjcmVhdGlvbiBtZWFucyBpdCBoYWQgc3VjY2Vzc2Z1bGx5IGJlZW4gZGVzdHJveWVk
LgotCi1Jbml0aWFsIGxvYWQ6IFBhZ2UgbG9hZGVkCi1Jbml0aWFsIGxvYWQ6IFBhZ2Ugc2hvd24K
LUluaXRpYWwgbG9hZDogUGx1Z2luIGNyZWF0ZWQKLUluaXRpYWwgbG9hZDogQWNjZXNzaW5nIHRl
c3RPYmplY3QucHJvcGVydHkKLUluaXRpYWwgbG9hZDogQWNjZXNzZWQgdGVzdE9iamVjdC5wcm9w
ZXJ0eSB3aXRob3V0IGV4Y2VwdGlvbgotSW5pdGlhbCBsb2FkOiBBc3NpZ25pbmcgdG8gdGVzdE9i
amVjdC5wcm9wZXJ0eQotSW5pdGlhbCBsb2FkOiBBc3NpZ25lZCB0byB0ZXN0T2JqZWN0LnByb3Bl
cnR5IHdpdGhvdXQgZXhjZXB0aW9uCi1Jbml0aWFsIGxvYWQ6IFBhZ2UgaGlkZGVuCi1SZXN0b3Jl
ZCBmcm9tIHBhZ2UgY2FjaGU6IFBhZ2Ugc2hvd24KLVJlc3RvcmVkIGZyb20gcGFnZSBjYWNoZTog
UGx1Z2luIGNyZWF0ZWQKLVJlc3RvcmVkIGZyb20gcGFnZSBjYWNoZTogQWNjZXNzaW5nIHRlc3RP
YmplY3QucHJvcGVydHkKLVJlc3RvcmVkIGZyb20gcGFnZSBjYWNoZTogV2hpbGUgYWNjZXNzaW5n
IHRlc3RPYmplY3QucHJvcGVydHk6IFJlZmVyZW5jZUVycm9yOiBUcnlpbmcgdG8gYWNjZXNzIG9i
amVjdCBmcm9tIGRlc3Ryb3llZCBwbHVnLWluLgotUmVzdG9yZWQgZnJvbSBwYWdlIGNhY2hlOiBB
c3NpZ25pbmcgdG8gdGVzdE9iamVjdC5wcm9wZXJ0eQotUmVzdG9yZWQgZnJvbSBwYWdlIGNhY2hl
OiBXaGlsZSBhc3NpZ25pbmcgdG8gdGVzdE9iamVjdC5wcm9wZXJ0eTogUmVmZXJlbmNlRXJyb3I6
IFRyeWluZyB0byBhY2Nlc3Mgb2JqZWN0IGZyb20gZGVzdHJveWVkIHBsdWctaW4uCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsdWdpbnMvbmV0c2NhcGUtcGx1Z2luLXBhZ2UtY2FjaGUtd29y
a3MuaHRtbCBiL0xheW91dFRlc3RzL3BsdWdpbnMvbmV0c2NhcGUtcGx1Z2luLXBhZ2UtY2FjaGUt
d29ya3MuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWJiMmU4ZWUyMGQ3YzAz
ZTU1YjBiNzlmZTNhNzk2OWU0NmVlZWM3ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbHVnaW5zL25ldHNjYXBlLXBsdWdpbi1wYWdl
LWNhY2hlLXdvcmtzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4MyArMCwwIEBACi08IS0tIHdl
YmtpdC10ZXN0LXJ1bm5lciBbIFVzZXNCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KLTxodG1s
PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7
Ci0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7Ci0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEJhY2tGb3J3YXJkQ2FjaGVTdXBwb3J0
c1BsdWdpbnModHJ1ZSk7Ci19Ci0KLXZhciBzYXZlZFRlc3RPYmplY3QgPSBudWxsOwotdmFyIGN1
cnJlbnRUZXN0U3RhZ2UgPSBudWxsOwotdmFyIGhhc0hpZGRlbiA9IGZhbHNlOwotCi1mdW5jdGlv
biBydW5UZXN0KCkKLXsKLSAgICB2YXIgcGx1Z2luID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InRlc3RQbHVnaW4iKTsKLSAgICAKLSAgICBpZiAoIXNhdmVkVGVzdE9iamVjdCkKLSAgICAgICAg
c2F2ZWRUZXN0T2JqZWN0ID0gcGx1Z2luLnRlc3RPYmplY3Q7Ci0KLSAgICB0cnkgewotICAgICAg
ICBsb2coIkFjY2Vzc2luZyB0ZXN0T2JqZWN0LnByb3BlcnR5Iik7Ci0gICAgICAgIHNhdmVkVGVz
dE9iamVjdC5wcm9wZXJ0eTsKLSAgICAgICAgbG9nKCJBY2Nlc3NlZCB0ZXN0T2JqZWN0LnByb3Bl
cnR5IHdpdGhvdXQgZXhjZXB0aW9uIik7Ci0gICAgfSBjYXRjaCAoZSkgewotICAgICAgICBsb2co
IldoaWxlIGFjY2Vzc2luZyB0ZXN0T2JqZWN0LnByb3BlcnR5OiAiICsgZSk7Ci0gICAgfQotCi0g
ICAgdHJ5IHsKLSAgICAgICAgbG9nKCJBc3NpZ25pbmcgdG8gdGVzdE9iamVjdC5wcm9wZXJ0eSIp
OwotICAgICAgICBzYXZlZFRlc3RPYmplY3QucHJvcGVydHkgPSAnaGVsbG8nOwotICAgICAgICBs
b2coIkFzc2lnbmVkIHRvIHRlc3RPYmplY3QucHJvcGVydHkgd2l0aG91dCBleGNlcHRpb24iKTsK
LSAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIGxvZygiV2hpbGUgYXNzaWduaW5nIHRvIHRlc3RP
YmplY3QucHJvcGVydHk6ICIgKyBlKTsKLSAgICB9Ci0gICAgCi0gICAgaWYgKCFoYXNIaWRkZW4p
Ci0gICAgICAgIHNldFRpbWVvdXQoIndpbmRvdy5sb2NhdGlvbi5ocmVmID0gJ3Jlc291cmNlcy9n
by1iYWNrLmh0bWwnIiwgMCk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKLSAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotICAgIH0KLSAgICAK
LX0KLQotZnVuY3Rpb24gbG9hZGVkKCkgewotICAgIGN1cnJlbnRUZXN0U3RhZ2UgPSAiSW5pdGlh
bCBsb2FkIjsKLSAgICBsb2coIlBhZ2UgbG9hZGVkIik7Ci19Ci0KLWZ1bmN0aW9uIGhpZGRlbigp
IHsKLSAgICBsb2coIlBhZ2UgaGlkZGVuIik7Ci0gICAgaGFzSGlkZGVuID0gdHJ1ZTsKLX0KLQot
ZnVuY3Rpb24gc2hvd24oKSB7Ci0gICAgaWYgKGhhc0hpZGRlbikKLSAgICAgICAgY3VycmVudFRl
c3RTdGFnZSA9ICJSZXN0b3JlZCBmcm9tIHBhZ2UgY2FjaGUiCi0gICAgbG9nKCJQYWdlIHNob3du
Iik7Ci19Ci0KLWZ1bmN0aW9uIHBsdWdpbkNyZWF0ZWQoKQotewotICAgIGxvZygiUGx1Z2luIGNy
ZWF0ZWQiKTsKLSAgICBzZXRUaW1lb3V0KCJydW5UZXN0KCkiLCAwKTsKLX0KLQotZnVuY3Rpb24g
bG9nKG1lc3NhZ2UpCi17Ci0gICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nZ2luZyIpLmlu
bmVySFRNTCArPSBjdXJyZW50VGVzdFN0YWdlICsgIjogIiArIG1lc3NhZ2UgKyAiPGJyPiI7Ci19
Ci08L3NjcmlwdD4KLQotPGJvZHkgb25sb2FkPSJsb2FkZWQoKSIgb25wYWdlaGlkZT0iaGlkZGVu
KCk7IiBvbnBhZ2VzaG93PSJzaG93bigpOyI+Ci1UaGlzIHRlc3RzIHRoYXQgcGFnZXMgd2l0aCBw
bHVnaW5zIGJlaGF2ZSBwcm9wZXJseSB3aXRoIHRoZSBwYWdlIGNhY2hlLiAgVGhpcyBpbmNsdWRl
czo8YnI+Ci0tVGhlIHBsdWdpbiBiZWluZyBkZXN0cm95ZWQgdXBvbiBuYXZpZ2F0aW9uIGF3YXkg
ZnJvbSB0aGUgcGFnZS48YnI+Ci0tVGhlIHBsdWdpbiBiZWluZyByZWNyZWF0ZWQgdXBvbiByZXN0
b3JpbmcgdGhlIHBhZ2UgZnJvbSB0aGUgcGFnZSBjYWNoZS48YnI+Ci0tUGx1Z2luIHNjcmlwdCBv
YmplY3RzIGFjY2Vzc2VkIHRoZSBmaXJzdCB0aW1lIHRoZSBwbHVnaW4gd2FzIGNyZWF0ZWQgYXJl
IGFwcHJvcHJpYXRlbHkgaW52YWxpZGF0ZWQgYWZ0ZXIgdGhlIHBhZ2UgaGFzIGJlZW4gcmVzdG9y
ZWQgZnJvbSB0aGUgcGFnZSBjYWNoZS48YnI+PGJyPgotVW5mb3J0dW5hdGVseSB0aGVyZSBpcyBu
byByZWxpYWJsZSB3YXkgdG8gZ2V0IGFmZmlybWF0aXZlIGNvbmZpcm1hdGlvbiB0aGF0IHRoZSBw
bHVnaW4gd2FzIGRlc3Ryb3llZCB1cG9uIG5hdmlnYXRpb24gYXdheSBmcm9tIHRoZSBwYWdlLiAg
Rm9yIG5vdyB3ZSdsbCBhc3N1bWUgcmVjcmVhdGlvbiBtZWFucyBpdCBoYWQgc3VjY2Vzc2Z1bGx5
IGJlZW4gZGVzdHJveWVkLjxicj4KLTxlbWJlZCBpZD0idGVzdFBsdWdpbiIgdHlwZT0iYXBwbGlj
YXRpb24veC13ZWJraXQtdGVzdC1uZXRzY2FwZSIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiIG9u
TmV3PSJwbHVnaW5DcmVhdGVkKCkiPjwvZW1iZWQ+PGJyPgotPGRpdiBpZD0ibG9nZ2luZyI+PC9k
aXY+Ci08L2JvZHk+Ci08L2h0bWw+Cg==
</data>
<flag name="review"
          id="472891"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>