<?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>208629</bug_id>
          
          <creation_ts>2020-03-05 00:55:26 -0800</creation_ts>
          <short_desc>AX: Provide a way to run tests in isolated tree mode</short_desc>
          <delta_ts>2020-03-08 08:50:45 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="chris fleizach">cfleizach</reporter>
          <assigned_to name="chris fleizach">cfleizach</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>andresg_22</cc>
    
    <cc>apinheiro</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jbedard</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>rniwa</cc>
    
    <cc>samuel_white</cc>
    
    <cc>stephan.szabo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1625983</commentid>
    <comment_count>0</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-03-05 00:55:26 -0800</bug_when>
    <thetext>Accessibility isolated tree mode is a bit difficult to test, because it relies on specific requests entering the system on a secondary thread.

To simulate this environment, we need a new argument to pass into test runner that can set it up correctly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625984</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-03-05 00:55:36 -0800</bug_when>
    <thetext>&lt;rdar://problem/60075583&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625985</commentid>
    <comment_count>2</comment_count>
      <attachid>392544</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-03-05 01:04:05 -0800</bug_when>
    <thetext>Created attachment 392544
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625986</commentid>
    <comment_count>3</comment_count>
      <attachid>392545</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-03-05 01:09:16 -0800</bug_when>
    <thetext>Created attachment 392545
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626048</commentid>
    <comment_count>4</comment_count>
      <attachid>392545</attachid>
    <who name="Stephan Szabo">stephan.szabo</who>
    <bug_when>2020-03-05 07:34:31 -0800</bug_when>
    <thetext>Comment on attachment 392545
patch

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

&gt; Tools/WebKitTestRunner/InjectedBundle/AccessibilityController.cpp:35
&gt; +#include &lt;pal/spi/mac/HIServicesSPI.h&gt;

This appears to be breaking on GTK and WinCairo, should it be behind 
#if ENABLE(ACCESSIBILITY_ISOLATED_TREE) ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626049</commentid>
    <comment_count>5</comment_count>
      <attachid>392566</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-03-05 07:37:37 -0800</bug_when>
    <thetext>Created attachment 392566
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626059</commentid>
    <comment_count>6</comment_count>
      <attachid>392569</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-03-05 07:56:01 -0800</bug_when>
    <thetext>Created attachment 392569
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627105</commentid>
    <comment_count>7</comment_count>
      <attachid>392569</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-03-06 19:16:20 -0800</bug_when>
    <thetext>Comment on attachment 392569
patch

Seems okay to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627238</commentid>
    <comment_count>8</comment_count>
      <attachid>392569</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-07 10:35:02 -0800</bug_when>
    <thetext>Comment on attachment 392569
patch

Clearing flags on attachment: 392569

Committed r258075: &lt;https://trac.webkit.org/changeset/258075&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627239</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-07 10:35:04 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392544</attachid>
            <date>2020-03-05 01:04:05 -0800</date>
            <delta_ts>2020-03-05 01:09:16 -0800</delta_ts>
            <desc>patch</desc>
            <filename>file_208629.txt</filename>
            <type>text/plain</type>
            <size>18549</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZw0KaW5kZXggOWJhNjRkZWQzNmUuLmJkZmY2OTA2ODk3IDEwMDY0NA0KLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cNCkBA
IC0xLDMgKzEsMTYgQEANCisyMDIwLTAzLTA1ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBh
cHBsZS5jb20+DQorDQorICAgICAgICBBWDogUHJvdmlkZSBhIHdheSB0byBydW4gdGVzdHMgaW4g
aXNvbGF0ZWQgdHJlZSBtb2RlDQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA4NjI5DQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjAwNzU1ODM+DQor
DQorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4NCisNCisgICAgICAgIE5vdyB0
aGF0IHdlIGhhdmUgYSB3YXkgdG8gcnVuIHRoaXMgd2l0aCB0ZXN0cywgd2UgZG9uJ3QgbmVlZCB0
byBhbGxvdyB1c2FnZSBmb3IgYW4gdW5rbm93biBjbGllbnQuDQorDQorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHA6DQorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6Y2xpZW50U3VwcG9ydHNJc29sYXRlZFRyZWUpOg0KKw0KIDIwMjAtMDMtMDQgIEFuZHJl
cyBHb256YWxleiAgPGFuZHJlc2dfMjJAYXBwbGUuY29tPg0KIA0KICAgICAgICAgRml4IGZvciB0
ZXN0IGFjY2Vzc2liaWxpdHkvbWFjL2FyaWEtbGl2ZXJlZ2lvbnMtYWRkZWRlbGVtZW50Lmh0bWwg
aW4gSXNvbGF0ZWRUcmVlIG1vZGUuDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5jcHANCmluZGV4IDRiZjRkNzRkNDdjLi45ZjNmYmQwNzdiZSAxMDA2NDQN
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHANCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHANCkBAIC03
MjEsMTAgKzcyMSw3IEBAIGJvb2wgQVhPYmplY3RDYWNoZTo6Y2xpZW50U3VwcG9ydHNJc29sYXRl
ZFRyZWUoKQ0KICAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVz
KCkuaXNBY2Nlc3NpYmlsaXR5SXNvbGF0ZWRUcmVlRW5hYmxlZCgpKQ0KICAgICAgICAgcmV0dXJu
IGZhbHNlOw0KIA0KLSAgICBBWENsaWVudFR5cGUgdHlwZSA9IF9BWEdldENsaWVudEZvckN1cnJl
bnRSZXF1ZXN0VW50cnVzdGVkKCk7DQotICAgIC8vIEZJWE1FOiBSZW1vdmUgdW5rbm93biBjbGll
bnQgYmVmb3JlIHNldHRpbmcgaXNBY2Nlc3NpYmlsaXR5SXNvbGF0ZWRUcmVlRW5hYmxlZCBpbml0
aWFsIHZhbHVlID0gdHJ1ZS4NCi0gICAgcmV0dXJuIHR5cGUgPT0ga0FYQ2xpZW50VHlwZVZvaWNl
T3Zlcg0KLSAgICAgICAgfHwgdHlwZSA9PSBrQVhDbGllbnRUeXBlVW5rbm93bjsNCisgICAgcmV0
dXJuIF9BWEdldENsaWVudEZvckN1cnJlbnRSZXF1ZXN0VW50cnVzdGVkKCkgPT0ga0FYQ2xpZW50
VHlwZVZvaWNlT3ZlcjsNCiB9DQogI2VuZGlmDQogDQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nDQppbmRleCA1M2JlOGYwNTlmNC4uMjRhOWVmMjU5NmEgMTAw
NjQ0DQotLS0gYS9Ub29scy9DaGFuZ2VMb2cNCisrKyBiL1Rvb2xzL0NoYW5nZUxvZw0KQEAgLTEs
MyArMSw0NCBAQA0KKzIwMjAtMDMtMDUgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxl
LmNvbT4NCisNCisgICAgICAgIEFYOiBQcm92aWRlIGEgd2F5IHRvIHJ1biB0ZXN0cyBpbiBpc29s
YXRlZCB0cmVlIG1vZGUNCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDg2MjkNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MDA3NTU4Mz4NCisNCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgUHJvdmlkZSB0
aGUgYWJpbGl0eSB0byBydW4gdGVzdHMgZm9yIGFjY2Vzc2liaWxpdHkgaW4gdGhlIGlzb2xhdGVk
IHRyZWUgbW9kZS4NCisgICAgICAgIFRoaXMgc2VuZHMgYSBmbGFnIG92ZXIgdG8gdGhlIGluamVj
dGVkIGJ1bmRsZSB3aGljaCBjYWxscyB0aGUgcmlnaHQgSElTZXJ2aWNlcyBvdmVycmlkZSBzbyB0
aGF0DQorICAgICAgICB0aGUgc3lzdGVtIHRoaW5rcyBpdCBpcyBpbiBpc29sYXRlZCBtb2RlLg0K
Kw0KKyAgICAgICAgKiBTY3JpcHRzL2NvbXBhcmUtd2Via2l0LWNvbmZpZ3VyYXRpb25zOg0KKyAg
ICAgICAgKGZsYWdfZm9yX2NvbXBhcmlzb24pOg0KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5Og0KKyAgICAgICAgKHBhcnNlX2FyZ3Mp
Og0KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rl
c3RzX2ludGVncmF0aW9udGVzdC5weToNCisgICAgICAgIChwYXJzZV9hcmdzKToNCisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9wb3J0L2RyaXZlci5weToNCisgICAgICAgIChEcml2ZXIuY21k
X2xpbmUpOg0KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vz
c2liaWxpdHlDb250cm9sbGVyLmNwcDoNCisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlDb250
cm9sbGVyOjpBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcik6DQorICAgICAgICAoV1RSOjpBY2Nlc3Np
YmlsaXR5Q29udHJvbGxlcjo6c2V0QWNjZXNzaWJpbGl0eUlzb2xhdGVkVHJlZU1vZGUpOg0KKyAg
ICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnVwZGF0ZUlzb2xhdGVkVHJlZU1v
ZGUpOg0KKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmV4ZWN1dGVPbkFY
VGhyZWFkSWZQb3NzaWJsZSk6DQorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaDoNCisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6DQorICAgICAgICAoV1RSOjpJ
bmplY3RlZEJ1bmRsZTo6ZGlkUmVjZWl2ZU1lc3NhZ2VUb1BhZ2UpOg0KKyAgICAgICAgKFdUUjo6
SW5qZWN0ZWRCdW5kbGU6OmJlZ2luVGVzdGluZyk6DQorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaDoNCisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9PcHRpb25zLmNwcDoNCisgICAgICAgIChXVFI6OmhhbmRsZU9wdGlvbkFjY2Vzc2li
aWxpdHlJc29sYXRlZFRyZWVNb2RlKToNCisgICAgICAgIChXVFI6Ok9wdGlvbnNIYW5kbGVyOjpP
cHRpb25zSGFuZGxlcik6DQorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvT3B0aW9ucy5oOg0K
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoNCisgICAgICAg
IChXVFI6OlRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKToNCisgICAgICAgIChXVFI6OlRlc3RD
b250cm9sbGVyOjpyZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKToNCisgICAgICAg
IChXVFI6OlRlc3RDb250cm9sbGVyOjpyZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKToNCisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOg0KKyAgICAgICAgKFdU
Ujo6VGVzdENvbnRyb2xsZXI6OmFjY2Vzc2liaWxpdHlJc29sYXRlZFRyZWVNb2RlIGNvbnN0KToN
CisNCiAyMDIwLTAzLTA0ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPg0K
IA0KICAgICAgICAgQWRkIHN5c3RlbSB0cmFjZSBwb2ludHMgYXJvdW5kIGRpc3BsYXkgbGlzdCBy
ZXBsYXkNCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2NvbXBhcmUtd2Via2l0LWNvbmZpZ3Vy
YXRpb25zIGIvVG9vbHMvU2NyaXB0cy9jb21wYXJlLXdlYmtpdC1jb25maWd1cmF0aW9ucw0KaW5k
ZXggNzFmNDM1N2ViNjguLjAwODkyNGMxMDcxIDEwMDc1NQ0KLS0tIGEvVG9vbHMvU2NyaXB0cy9j
b21wYXJlLXdlYmtpdC1jb25maWd1cmF0aW9ucw0KKysrIGIvVG9vbHMvU2NyaXB0cy9jb21wYXJl
LXdlYmtpdC1jb25maWd1cmF0aW9ucw0KQEAgLTU4LDYgKzU4LDggQEAgZGVmIG1haW4oKToNCiBk
ZWYgZmxhZ19mb3JfY29tcGFyaXNvbihjb21wYXJpc29uX25hbWUpOg0KICAgICBpZiBjb21wYXJp
c29uX25hbWUgPT0gInJlbW90ZS1sYXllci10cmVlIjoNCiAgICAgICAgIHJldHVybiAiLS1yZW1v
dGUtbGF5ZXItdHJlZSINCisgICAgaWYgY29tcGFyaXNvbl9uYW1lID09ICJhY2Nlc3NpYmlsaXR5
LWlzb2xhdGVkLXRyZWUiOg0KKyAgICAgICAgcmV0dXJuICItLWFjY2Vzc2liaWxpdHktaXNvbGF0
ZWQtdHJlZSINCiAgICAgaWYgY29tcGFyaXNvbl9uYW1lID09ICJhY2NlbGVyYXRlZC1kcmF3aW5n
IjoNCiAgICAgICAgIHJldHVybiAiLS1hY2NlbGVyYXRlZC1kcmF3aW5nIg0KICAgICBpZiBjb21w
YXJpc29uX25hbWUgPT0gIndlYmtpdDIiOg0KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5DQppbmRleCAzNjU0ZDRlMWY4
MC4uOTMyY2RjOTFhMmMgMTAwNzU1DQotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5DQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5DQpAQCAtMzAyLDYgKzMwMiw3IEBAIGRl
ZiBwYXJzZV9hcmdzKGFyZ3MpOg0KICAgICAgICAgICAgIGhlbHA9JyJ4dmZiIjogVXNlIGEgdmly
dHVhbGl6ZWQgWDExIHNlcnZlci4gInhvcmciOiBVc2UgdGhlIGN1cnJlbnQgWDExIHNlc3Npb24u
ICcNCiAgICAgICAgICAgICAgICAgICcid2VzdG9uIjogVXNlIGEgdmlydHVhbGl6ZWQgV2VzdG9u
IHNlcnZlci4gIndheWxhbmQiOiBVc2UgdGhlIGN1cnJlbnQgd2F5bGFuZCBzZXNzaW9uLicpLA0K
ICAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oIi0td29ybGQtbGVha3MiLCBhY3Rpb249InN0
b3JlX3RydWUiLCBkZWZhdWx0PUZhbHNlLCBoZWxwPSJDaGVjayBmb3Igd29ybGQgbGVha3MgKGN1
cnJlbnRseSwgb25seSBkb2N1bWVudHMpLiBEaWZmZXJzIGZyb20gLS1sZWFrcyBpbiB0aGF0IHRo
aXMgdXNlcyBpbnRlcm5hbCBpbnN0cnVtZW50YXRpb24sIHJhdGhlciB0aGFuIGV4dGVybmFsIHRv
b2xzLiIpLA0KKyAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oIi0tYWNjZXNzaWJpbGl0eS1p
c29sYXRlZC10cmVlIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVmYXVsdD1GYWxzZSwgaGVscD0i
UnVucyB0ZXN0cyBpbiBhY2Nlc3NpYmlsaXR5IGlzb2xhdGVkIHRyZWUgbW9kZS4iKSwNCiAgICAg
XSkpDQogDQogICAgIG9wdGlvbl9ncm91cF9kZWZpbml0aW9ucy5hcHBlbmQoKCJpT1MgT3B0aW9u
cyIsIFsNCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9y
dW5fd2Via2l0X3Rlc3RzX2ludGVncmF0aW9udGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfaW50ZWdyYXRpb250ZXN0LnB5DQppbmRl
eCA1NDJkOTM3NWI2Ni4uMzA4MDJiZGJmODMgMTAwNjQ0DQotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX2ludGVncmF0aW9udGVzdC5weQ0K
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0
c19pbnRlZ3JhdGlvbnRlc3QucHkNCkBAIC02MCw2ICs2MCw5IEBAIGRlZiBwYXJzZV9hcmdzKGV4
dHJhX2FyZ3M9Tm9uZSwgdGVzdHNfaW5jbHVkZWQ9RmFsc2UsIG5ld19yZXN1bHRzPUZhbHNlLCBw
cmludF9uDQogICAgIGlmIG5vdCAnLS13b3JsZC1sZWFrcycgaW4gZXh0cmFfYXJnczoNCiAgICAg
ICAgIGFyZ3MuYXBwZW5kKCctLXdvcmxkLWxlYWtzJykNCiANCisgICAgaWYgbm90ICctLWFjY2Vz
c2liaWxpdHktaXNvbGF0ZWQtdHJlZScgaW4gZXh0cmFfYXJnczoNCisgICAgICAgIGFyZ3MuYXBw
ZW5kKCctLWFjY2Vzc2liaWxpdHktaXNvbGF0ZWQtdHJlZScpDQorDQogICAgIGFyZ3MuZXh0ZW5k
KGV4dHJhX2FyZ3MpDQogICAgIGlmIG5vdCB0ZXN0c19pbmNsdWRlZDoNCiAgICAgICAgICMgV2Ug
dXNlIHRoZSBnbG9iIHRvIHRlc3QgdGhhdCBnbG9iYmluZyB3b3Jrcy4NCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZHJpdmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9wb3J0L2RyaXZlci5weQ0KaW5kZXggNWUzM2U5ODRhMjguLjhiOGFiYmU1YWVmIDEwMDY0
NA0KLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2RyaXZlci5weQ0KKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2RyaXZlci5weQ0KQEAgLTUyMCw2ICs1MjAsOCBAQCBj
bGFzcyBEcml2ZXIob2JqZWN0KToNCiAgICAgICAgICAgICBjbWQuYXBwZW5kKCctLW5vLXRpbWVv
dXQnKQ0KICAgICAgICAgaWYgc2VsZi5fcG9ydC5nZXRfb3B0aW9uKCdzaG93X3RvdWNoZXMnKToN
CiAgICAgICAgICAgICBjbWQuYXBwZW5kKCctLXNob3ctdG91Y2hlcycpDQorICAgICAgICBpZiBz
ZWxmLl9wb3J0LmdldF9vcHRpb24oJ2FjY2Vzc2liaWxpdHlfaXNvbGF0ZWRfdHJlZScpOg0KKyAg
ICAgICAgICAgIGNtZC5hcHBlbmQoJy0tYWNjZXNzaWJpbGl0eS1pc29sYXRlZC10cmVlJykNCiAN
CiAgICAgICAgIGZvciBhbGxvd2VkX2hvc3QgaW4gc2VsZi5fcG9ydC5hbGxvd2VkX2hvc3RzKCk6
DQogICAgICAgICAgICAgY21kLmFwcGVuZCgnLS1hbGxvd2VkLWhvc3QnKQ0KZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3Np
YmlsaXR5Q29udHJvbGxlci5jcHANCmluZGV4IDY4ZDk5NTg1MDFkLi44MzM2MDQ3YWYyMSAxMDA2
NDQNCi0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIuY3BwDQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcA0KQEAgLTMzLDYgKzMzLDcgQEANCiAj
aW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVQYWdlLmgiDQogI2luY2x1ZGUgIkpTQWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIuaCINCiANCisjaW5jbHVkZSA8cGFsL3NwaS9tYWMvSElTZXJ2aWNlc1NQSS5o
Pg0KICNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGUuaD4NCiAjaW5jbHVkZSA8V2ViS2l0L1dLQnVu
ZGxlUGFnZS5oPg0KICNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdlUHJpdmF0ZS5oPg0KQEAg
LTQ2LDE1ICs0NywyNyBAQCBSZWY8QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI+IEFjY2Vzc2liaWxp
dHlDb250cm9sbGVyOjpjcmVhdGUoKQ0KIA0KIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpBY2Nl
c3NpYmlsaXR5Q29udHJvbGxlcigpDQogew0KLSNpZiBQTEFURk9STShNQUMpDQotICAgIG1fdXNl
QVhUaHJlYWQgPSBXS0FjY2Vzc2liaWxpdHlDYW5Vc2VTZWNvbmRhcnlBWFRocmVhZChJbmplY3Rl
ZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5wYWdlKCkpOw0KLSNlbmRpZg0KIH0NCiANCiBB
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6fkFjY2Vzc2liaWxpdHlDb250cm9sbGVyKCkNCiB7DQog
fQ0KIA0KKyNpZiBFTkFCTEUoQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKQ0KK3ZvaWQgQWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnNldEFjY2Vzc2liaWxpdHlJc29sYXRlZFRyZWVNb2RlKGJv
b2wgZmxhZykNCit7DQorICAgIG1fYWNjZXNzaWJpbGl0eUlzb2xhdGVkVHJlZU1vZGUgPSBmbGFn
Ow0KKyAgICB1cGRhdGVJc29sYXRlZFRyZWVNb2RlKCk7DQorfQ0KKw0KK3ZvaWQgQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXI6OnVwZGF0ZUlzb2xhdGVkVHJlZU1vZGUoKQ0KK3sNCisgICAgLy8gT3Zl
cnJpZGUgdG8gc2V0IGlkZW50aWZpZXIgdG8gVm9pY2VPdmVyIHNvIHRoYXQgcmVxdWVzdHMgYXJl
IGhhbmRsZWQgaW4gaXNvbGF0ZWQgbW9kZS4NCisgICAgX0FYU2V0Q2xpZW50SWRlbnRpZmljYXRp
b25PdmVycmlkZShtX2FjY2Vzc2liaWxpdHlJc29sYXRlZFRyZWVNb2RlID8ga0FYQ2xpZW50VHlw
ZVZvaWNlT3ZlciA6IGtBWENsaWVudFR5cGVOb0FjdGl2ZVJlcXVlc3RGb3VuZCk7DQorICAgIG1f
dXNlTW9ja0FYVGhyZWFkID0gV0tBY2Nlc3NpYmlsaXR5Q2FuVXNlU2Vjb25kYXJ5QVhUaHJlYWQo
SW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+cGFnZSgpKTsNCit9DQorI2VuZGlm
DQorDQogdm9pZCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6bWFrZVdpbmRvd09iamVjdChKU0Nv
bnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgd2luZG93T2JqZWN0LCBKU1ZhbHVlUmVmKiBl
eGNlcHRpb24pDQogew0KICAgICBzZXRQcm9wZXJ0eShjb250ZXh0LCB3aW5kb3dPYmplY3QsICJh
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlciIsIHRoaXMsIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9u
bHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUsIGV4Y2VwdGlvbik7DQpAQCAtOTMs
NyArMTA2LDggQEAgUmVmPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlDb250
cm9sbGVyOjpmb2N1c2VkRWxlbWVudCgpDQogDQogdm9pZCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxl
cjo6ZXhlY3V0ZU9uQVhUaHJlYWRJZlBvc3NpYmxlKEZ1bmN0aW9uPHZvaWQoKT4mJiBmdW5jdGlv
bikNCiB7DQotICAgIGlmIChtX3VzZUFYVGhyZWFkKSB7DQorI2lmIEVOQUJMRShBQ0NFU1NJQklM
SVRZX0lTT0xBVEVEX1RSRUUpDQorICAgIGlmIChtX3VzZU1vY2tBWFRocmVhZCkgew0KICAgICAg
ICAgQVhUaHJlYWQ6OmRpc3BhdGNoKFsmZnVuY3Rpb24sIHRoaXNdIHsNCiAgICAgICAgICAgICBm
dW5jdGlvbigpOw0KICAgICAgICAgICAgIG1fc2VtYXBob3JlLnNpZ25hbCgpOw0KQEAgLTEwNiw2
ICsxMjAsNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpleGVjdXRlT25BWFRocmVh
ZElmUG9zc2libGUoRnVuY3Rpb248dm9pZCgpPiYmIGZ1bg0KICAgICAgICAgQ0ZSdW5Mb29wUnVu
SW5Nb2RlKGtDRlJ1bkxvb3BEZWZhdWx0TW9kZSwgLjI1LCBmYWxzZSk7DQogICAgICAgICBtX3Nl
bWFwaG9yZS53YWl0KCk7DQogICAgIH0gZWxzZQ0KKyNlbmRpZg0KICAgICAgICAgZnVuY3Rpb24o
KTsNCiB9DQogI2VuZGlmDQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oDQppbmRleCBlYTRj
YTI4YmMxOC4uYTVkNThlY2MxNjIgMTAwNjQ0DQotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmgNCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaA0K
QEAgLTUxLDYgKzUxLDEwIEBAIHB1YmxpYzoNCiAgICAgLy8gRW5oYW5jZWQgYWNjZXNzaWJpbGl0
eS4NCiAgICAgdm9pZCBlbmFibGVFbmhhbmNlZEFjY2Vzc2liaWxpdHkoYm9vbCk7DQogICAgIGJv
b2wgZW5oYW5jZWRBY2Nlc3NpYmlsaXR5RW5hYmxlZCgpOw0KKw0KKyNpZiBFTkFCTEUoQUNDRVNT
SUJJTElUWV9JU09MQVRFRF9UUkVFKQ0KKyAgICB2b2lkIHNldEFjY2Vzc2liaWxpdHlJc29sYXRl
ZFRyZWVNb2RlKGJvb2wpOw0KKyNlbmRpZg0KICAgICANCiAgICAgSlNSZXRhaW5QdHI8SlNTdHJp
bmdSZWY+IHBsYXRmb3JtTmFtZSgpOw0KIA0KQEAgLTkxLDEyICs5NSwxNSBAQCBwcml2YXRlOg0K
ICAgICBSZWZQdHI8QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXI+IG1fZ2xvYmFsTm90
aWZpY2F0aW9uSGFuZGxlcjsNCiAjZW5kaWYNCiANCi0jaWYgUExBVEZPUk0oQ09DT0EpDQorI2lm
IEVOQUJMRShBQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpDQorICAgIHZvaWQgdXBkYXRlSXNv
bGF0ZWRUcmVlTW9kZSgpOw0KKyAgICANCiAgICAgLy8gX0FYVUlFbGVtZW50VXNlU2Vjb25kYXJ5
QVhUaHJlYWQgYW5kIF9BWFVJRWxlbWVudFJlcXVlc3RTZXJ2aWNlZEJ5U2Vjb25kYXJ5QVhUaHJl
YWQNCiAgICAgLy8gZG8gbm90IHdvcmsgZm9yIFdlYktpdFRlc3RSdW5uZXIgc2luY2UgdGhpcyBp
cyBjYWxsaW5nIGRpcmVjdGx5IGludG8NCiAgICAgLy8gV2ViQ29yZS9hY2Nlc3NpYmlsaXR5IHZp
YSBKYXZhU2NyaXB0IHdpdGhvdXQgZ29pbmcgdGhyb3VnaCBISVNlcnZpY2VzLg0KICAgICAvLyBU
aHVzIHRvIHNpbXVsYXRlIHRoZSBiZWhhdmlvciBvZiBISVNlcnZpY2VzLCBBY2Nlc3NpYmlsaXR5
Q29udHJvbGxlciBpcyBzcGF3bmluZyBhIHNlY29uZGFyeSB0aHJlYWQgdG8gc2VydmljZSB0aGUg
SmF2YVNjcmlwdCByZXF1ZXN0cy4NCi0gICAgYm9vbCBtX3VzZUFYVGhyZWFkIHsgZmFsc2UgfTsN
CisgICAgYm9vbCBtX3VzZU1vY2tBWFRocmVhZCB7IGZhbHNlIH07DQorICAgIGJvb2wgbV9hY2Nl
c3NpYmlsaXR5SXNvbGF0ZWRUcmVlTW9kZSB7IGZhbHNlIH07DQogICAgIEJpbmFyeVNlbWFwaG9y
ZSBtX3NlbWFwaG9yZTsNCiAjZW5kaWYNCiB9Ow0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHANCmluZGV4IDc3MGZl
MThkOWYzLi4yODRkZmU3YzAyNCAxMDA2NDQNCi0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwDQorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcA0KQEAgLTI0Miw2ICsyNDIs
MTEgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZTo6ZGlkUmVjZWl2ZU1lc3NhZ2VUb1BhZ2UoV0tCdW5k
bGVQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG0NCiAgICAgICAgIGlmIChzaG91bGRHQykNCiAg
ICAgICAgICAgICBXS0J1bmRsZUdhcmJhZ2VDb2xsZWN0SmF2YVNjcmlwdE9iamVjdHMobV9idW5k
bGUpOw0KIA0KKyNpZiBFTkFCTEUoQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKQ0KKyAgICAg
ICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGF4SXNvbGF0ZWRNb2RlS2V5ID0gYWRvcHRXSyhX
S1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiQWNjZXNzaWJpbGl0eUlzb2xhdGVkVHJlZSIp
KTsNCisgICAgICAgIG1fYWNjZXNzaWJpbGl0eUlzb2xhdGVkVHJlZU1wb2RlID0gV0tCb29sZWFu
R2V0VmFsdWUoc3RhdGljX2Nhc3Q8V0tCb29sZWFuUmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9y
S2V5KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgYXhJc29sYXRlZE1vZGVLZXkuZ2V0KCkpKSk7DQor
I2VuZGlmDQorICAgICAgICANCiAgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBhbGxv
d2VkSG9zdHNLZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJBbGxv
d2VkSG9zdHMiKSk7DQogICAgICAgICBXS1R5cGVSZWYgYWxsb3dlZEhvc3RzVmFsdWUgPSBXS0Rp
Y3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgYWxsb3dlZEhvc3Rz
S2V5LmdldCgpKTsNCiAgICAgICAgIGlmIChhbGxvd2VkSG9zdHNWYWx1ZSAmJiBXS0dldFR5cGVJ
RChhbGxvd2VkSG9zdHNWYWx1ZSkgPT0gV0tBcnJheUdldFR5cGVJRCgpKSB7DQpAQCAtNTU3LDYg
KzU2Miw5IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OmJlZ2luVGVzdGluZyhXS0RpY3Rpb25hcnlS
ZWYgc2V0dGluZ3MsIEJlZ2luZ1Rlc3RpbmdNb2RlIHRlDQogICAgIG1fdGV4dElucHV0Q29udHJv
bGxlciA9IFRleHRJbnB1dENvbnRyb2xsZXI6OmNyZWF0ZSgpOw0KICNpZiBIQVZFKEFDQ0VTU0lC
SUxJVFkpDQogICAgIG1fYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIgPSBBY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlcjo6Y3JlYXRlKCk7DQorI2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RS
RUUpDQorICAgIG1fYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXItPnNldEFjY2Vzc2liaWxpdHlJc29s
YXRlZFRyZWVNb2RlKG1fYWNjZXNzaWJpbGl0eUlzb2xhdGVkVHJlZU1wb2RlKTsNCisjZW5kaWYN
CiAjZW5kaWYNCiANCiAgICAgLy8gRG9uJ3QgY2hhbmdlIGV4cGVyaW1lbnRhbCBvciBpbnRlcm5h
bCBmZWF0dXJlcyBoZXJlOyB0aG9zZSBzaG91bGQgYmUgc2V0IGluIFRlc3RDb250cm9sbGVyOjpy
ZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKCkuDQpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oDQppbmRleCBk
Mzg0ZDRkMTE1ZS4uMDEzNThhMWY1YmQgMTAwNjQ0DQotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgNCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaA0KQEAgLTE5Nyw2ICsxOTcs
NyBAQCBwcml2YXRlOg0KICAgICBib29sIG1fdXNlV29ya1F1ZXVlIHsgZmFsc2UgfTsNCiAgICAg
Ym9vbCBtX3BpeGVsUmVzdWx0SXNQZW5kaW5nIHsgZmFsc2UgfTsNCiAgICAgYm9vbCBtX2R1bXBK
U0NvbnNvbGVMb2dJblN0ZEVyciB7IGZhbHNlIH07DQorICAgIGJvb2wgbV9hY2Nlc3NpYmlsaXR5
SXNvbGF0ZWRUcmVlTXBvZGUgeyBmYWxzZSB9Ow0KIA0KICAgICBXVEY6OlNlY29uZHMgbV90aW1l
b3V0Ow0KIA0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvT3B0aW9ucy5jcHAg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL09wdGlvbnMuY3BwDQppbmRleCA1YWU3N2Q2ZTQ3Yy4u
YjZkZjM1YmQ0NjQgMTAwNjQ0DQotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL09wdGlvbnMu
Y3BwDQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL09wdGlvbnMuY3BwDQpAQCAtOTksNiAr
OTksMTQgQEAgc3RhdGljIGJvb2wgaGFuZGxlT3B0aW9uQWxsb3dBbnlIVFRQU0NlcnRpZmljYXRl
Rm9yQWxsb3dlZEhvc3RzKE9wdGlvbnMmIG9wdGlvbnMNCiAgICAgcmV0dXJuIHRydWU7DQogfQ0K
IA0KKyNpZiBFTkFCTEUoQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKQ0KK3N0YXRpYyBib29s
IGhhbmRsZU9wdGlvbkFjY2Vzc2liaWxpdHlJc29sYXRlZFRyZWVNb2RlKE9wdGlvbnMmIG9wdGlv
bnMsIGNvbnN0IGNoYXIqLCBjb25zdCBjaGFyKikNCit7DQorICAgIG9wdGlvbnMuYWNjZXNzaWJp
bGl0eUlzb2xhdGVkVHJlZU1vZGUgPSB0cnVlOw0KKyAgICByZXR1cm4gdHJ1ZTsNCit9DQorI2Vu
ZGlmDQorDQogc3RhdGljIGJvb2wgaGFuZGxlT3B0aW9uQWxsb3dlZEhvc3QoT3B0aW9ucyYgb3B0
aW9ucywgY29uc3QgY2hhciosIGNvbnN0IGNoYXIqIGhvc3QpDQogew0KICAgICBvcHRpb25zLmFs
bG93ZWRIb3N0cy5pbnNlcnQoaG9zdCk7DQpAQCAtMTU0LDcgKzE2MiwxMCBAQCBPcHRpb25zSGFu
ZGxlcjo6T3B0aW9uc0hhbmRsZXIoT3B0aW9ucyYgbykNCiAgICAgb3B0aW9uTGlzdC5hcHBlbmQo
T3B0aW9uKCItLXdvcmxkLWxlYWtzIiwgIkNoZWNrIGZvciBsZWFrcyBvZiB3b3JsZCBvYmplY3Rz
IChjdXJyZW50bHksIGRvY3VtZW50cykiLCBoYW5kbGVPcHRpb25DaGVja0ZvcldvcmxkTGVha3Mp
KTsNCiAgICAgb3B0aW9uTGlzdC5hcHBlbmQoT3B0aW9uKCItLWV4cGVyaW1lbnRhbC1mZWF0dXJl
IiwgIkVuYWJsZSBleHBlcmltZW50YWwgZmVhdHVyZSIsIGhhbmRsZU9wdGlvbkV4cGVyaW1lbnRh
bEZlYXR1cmUsIHRydWUpKTsNCiAgICAgb3B0aW9uTGlzdC5hcHBlbmQoT3B0aW9uKCItLWludGVy
bmFsLWZlYXR1cmUiLCAiRW5hYmxlIGludGVybmFsIGZlYXR1cmUiLCBoYW5kbGVPcHRpb25JbnRl
cm5hbEZlYXR1cmUsIHRydWUpKTsNCi0NCisjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFU
RURfVFJFRSkNCisgICAgb3B0aW9uTGlzdC5hcHBlbmQoT3B0aW9uKCItLWFjY2Vzc2liaWxpdHkt
aXNvbGF0ZWQtdHJlZSIsICJFbmFibGUgYWNjZXNzaWJpbGl0eSBpc29sYXRlZCB0cmVlIG1vZGUg
Zm9yIHRlc3RzIiwgaGFuZGxlT3B0aW9uQWNjZXNzaWJpbGl0eUlzb2xhdGVkVHJlZU1vZGUpKTsN
CisjZW5kaWYNCisgICAgDQogICAgIG9wdGlvbkxpc3QuYXBwZW5kKE9wdGlvbigwLCAwLCBoYW5k
bGVPcHRpb25Vbm1hdGNoZWQpKTsNCiB9DQogDQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9PcHRpb25zLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL09wdGlvbnMuaA0KaW5k
ZXggYTU2YmZiYzY0NjAuLmMzOWNmYWRmMmU4IDEwMDY0NA0KLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9PcHRpb25zLmgNCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvT3B0aW9ucy5o
DQpAQCAtNTIsNiArNTIsOSBAQCBzdHJ1Y3QgT3B0aW9ucyB7DQogICAgIGJvb2wgc2hvdWxkU2hv
d1RvdWNoZXMgeyBmYWxzZSB9Ow0KICAgICBib29sIGNoZWNrRm9yV29ybGRMZWFrcyB7IGZhbHNl
IH07DQogICAgIGJvb2wgYWxsb3dBbnlIVFRQU0NlcnRpZmljYXRlRm9yQWxsb3dlZEhvc3RzIHsg
ZmFsc2UgfTsNCisjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkNCisgICAg
Ym9vbCBhY2Nlc3NpYmlsaXR5SXNvbGF0ZWRUcmVlTW9kZSB7IGZhbHNlIH07DQorI2VuZGlmDQog
ICAgIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBwYXRoczsNCiAgICAgc3RkOjpzZXQ8c3RkOjpz
dHJpbmc+IGFsbG93ZWRIb3N0czsNCiAgICAgSGFzaE1hcDxTdHJpbmcsIGJvb2w+IGludGVybmFs
RmVhdHVyZXM7DQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcA0KaW5k
ZXggYWVmOTZiN2FjNGQuLjRkYWMyZTY3N2YwIDEwMDY0NA0KLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHANCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuY3BwDQpAQCAtNDc2LDcgKzQ3Niw5IEBAIHZvaWQgVGVzdENvbnRyb2xs
ZXI6OmluaXRpYWxpemUoaW50IGFyZ2MsIGNvbnN0IGNoYXIqIGFyZ3ZbXSkNCiAgICAgbV9hbGxv
d0FueUhUVFBTQ2VydGlmaWNhdGVGb3JBbGxvd2VkSG9zdHMgPSBvcHRpb25zLmFsbG93QW55SFRU
UFNDZXJ0aWZpY2F0ZUZvckFsbG93ZWRIb3N0czsNCiAgICAgbV9pbnRlcm5hbEZlYXR1cmVzID0g
b3B0aW9ucy5pbnRlcm5hbEZlYXR1cmVzOw0KICAgICBtX2V4cGVyaW1lbnRhbEZlYXR1cmVzID0g
b3B0aW9ucy5leHBlcmltZW50YWxGZWF0dXJlczsNCi0NCisjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJ
VFlfSVNPTEFURURfVFJFRSkNCisgICAgbV9hY2Nlc3NpYmlsaXR5SXNvbGF0ZWRUcmVlTW9kZSA9
IG9wdGlvbnMuYWNjZXNzaWJpbGl0eUlzb2xhdGVkVHJlZU1vZGU7DQorI2VuZGlmDQogICAgIG1f
dXNpbmdTZXJ2ZXJNb2RlID0gKG1fcGF0aHMuc2l6ZSgpID09IDEgJiYgbV9wYXRoc1swXSA9PSAi
LSIpOw0KICAgICBpZiAobV91c2luZ1NlcnZlck1vZGUpDQogICAgICAgICBtX3ByaW50U2VwYXJh
dG9ycyA9IHRydWU7DQpAQCAtOTYxLDYgKzk2MywxMCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpy
ZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKGNvbnN0IFRlc3RPcHRpb25zJiBvcHRp
bw0KIA0KICAgICBXS1ByZWZlcmVuY2VzU2V0U2hvdWxkVXNlU2VydmljZVdvcmtlclNob3J0VGlt
ZW91dChwcmVmZXJlbmNlcywgb3B0aW9ucy5jb250ZXh0T3B0aW9ucy51c2VTZXJ2aWNlV29ya2Vy
U2hvcnRUaW1lb3V0KTsNCiANCisjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJF
RSkNCisgICAgV0tQcmVmZXJlbmNlc1NldElzQWNjZXNzaWJpbGl0eUlzb2xhdGVkVHJlZUVuYWJs
ZWQocHJlZmVyZW5jZXMsIGFjY2Vzc2liaWxpdHlJc29sYXRlZFRyZWVNb2RlKCkpOw0KKyNlbmRp
Zg0KKyAgICANCiAgICAgcGxhdGZvcm1SZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVz
KCk7DQogfQ0KIA0KQEAgLTk5MSw2ICs5OTcsMTIgQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6cmVz
ZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucywgUmUN
CiAgICAgfQ0KICAgICBXS0RpY3Rpb25hcnlTZXRJdGVtKHJlc2V0TWVzc2FnZUJvZHkuZ2V0KCks
IGFsbG93ZWRIb3N0c0tleS5nZXQoKSwgYWxsb3dlZEhvc3RzVmFsdWUuZ2V0KCkpOw0KIA0KKyNp
ZiBFTkFCTEUoQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKQ0KKyAgICBXS1JldGFpblB0cjxX
S1N0cmluZ1JlZj4gYXhJc29sYXRlZE1vZGVLZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0
aFVURjhDU3RyaW5nKCJBY2Nlc3NpYmlsaXR5SXNvbGF0ZWRUcmVlIikpOw0KKyAgICBXS1JldGFp
blB0cjxXS0Jvb2xlYW5SZWY+IGF4SXNvbGF0ZWRNb2RlVmFsdWUgPSBhZG9wdFdLKFdLQm9vbGVh
bkNyZWF0ZShtX2FjY2Vzc2liaWxpdHlJc29sYXRlZFRyZWVNb2RlKSk7DQorICAgIFdLRGljdGlv
bmFyeVNldEl0ZW0ocmVzZXRNZXNzYWdlQm9keS5nZXQoKSwgYXhJc29sYXRlZE1vZGVLZXkuZ2V0
KCksIGF4SXNvbGF0ZWRNb2RlVmFsdWUuZ2V0KCkpOw0KKyNlbmRpZg0KKyAgICANCiAgICAgaWYg
KG9wdGlvbnMuanNjT3B0aW9ucy5sZW5ndGgoKSkgew0KICAgICAgICAgV0tSZXRhaW5QdHI8V0tT
dHJpbmdSZWY+IGpzY09wdGlvbnNLZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhD
U3RyaW5nKCJKU0NPcHRpb25zIikpOw0KICAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+
IGpzY09wdGlvbnNWYWx1ZSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmco
b3B0aW9ucy5qc2NPcHRpb25zLmNfc3RyKCkpKTsNCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmgNCmluZGV4IGYzYWE4OGFjNjI5Li4wNzg5OTFiYWRlZSAxMDA2NDQNCi0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaA0KKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oDQpAQCAtMTMzLDYgKzEzMywxMCBAQCBwdWJs
aWM6DQogDQogICAgIHZvaWQgc2ltdWxhdGVXZWJOb3RpZmljYXRpb25DbGljayh1aW50NjRfdCBu
b3RpZmljYXRpb25JRCk7DQogDQorI2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RS
RUUpDQorICAgIGJvb2wgYWNjZXNzaWJpbGl0eUlzb2xhdGVkVHJlZU1vZGUoKSBjb25zdCB7IHJl
dHVybiBtX2FjY2Vzc2liaWxpdHlJc29sYXRlZFRyZWVNb2RlOyB9DQorI2VuZGlmDQorICAgIA0K
ICAgICAvLyBHZW9sb2NhdGlvbi4NCiAgICAgdm9pZCBzZXRHZW9sb2NhdGlvblBlcm1pc3Npb24o
Ym9vbCk7DQogICAgIHZvaWQgc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0
dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3ksIGJvb2wgcHJvdmlkZXNBbHRp
dHVkZSwgZG91YmxlIGFsdGl0dWRlLCBib29sIHByb3ZpZGVzQWx0aXR1ZGVBY2N1cmFjeSwgZG91
YmxlIGFsdGl0dWRlQWNjdXJhY3ksIGJvb2wgcHJvdmlkZXNIZWFkaW5nLCBkb3VibGUgaGVhZGlu
ZywgYm9vbCBwcm92aWRlc1NwZWVkLCBkb3VibGUgc3BlZWQsIGJvb2wgcHJvdmlkZXNGbG9vckxl
dmVsLCBkb3VibGUgZmxvb3JMZXZlbCk7DQpAQCAtNTk3LDYgKzYwMSwxMCBAQCBwcml2YXRlOg0K
IA0KICAgICBib29sIG1fYWxsb3dBbnlIVFRQU0NlcnRpZmljYXRlRm9yQWxsb3dlZEhvc3RzIHsg
ZmFsc2UgfTsNCiANCisjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkNCisg
ICAgYm9vbCBtX2FjY2Vzc2liaWxpdHlJc29sYXRlZFRyZWVNb2RlIHsgZmFsc2UgfTsNCisjZW5k
aWYNCisgICAgDQogICAgIGJvb2wgbV9zaG91bGREZWNpZGVOYXZpZ2F0aW9uUG9saWN5QWZ0ZXJE
ZWxheSB7IGZhbHNlIH07DQogICAgIGJvb2wgbV9zaG91bGREZWNpZGVSZXNwb25zZVBvbGljeUFm
dGVyRGVsYXkgeyBmYWxzZSB9Ow0KIA0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392545</attachid>
            <date>2020-03-05 01:09:16 -0800</date>
            <delta_ts>2020-03-05 07:37:37 -0800</delta_ts>
            <desc>patch</desc>
            <filename>file_208629.txt</filename>
            <type>text/plain</type>
            <size>18579</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZw0KaW5kZXggOWJhNjRkZWQzNmUuLmJkZmY2OTA2ODk3IDEwMDY0NA0KLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cNCkBA
IC0xLDMgKzEsMTYgQEANCisyMDIwLTAzLTA1ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBh
cHBsZS5jb20+DQorDQorICAgICAgICBBWDogUHJvdmlkZSBhIHdheSB0byBydW4gdGVzdHMgaW4g
aXNvbGF0ZWQgdHJlZSBtb2RlDQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA4NjI5DQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjAwNzU1ODM+DQor
DQorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4NCisNCisgICAgICAgIE5vdyB0
aGF0IHdlIGhhdmUgYSB3YXkgdG8gcnVuIHRoaXMgd2l0aCB0ZXN0cywgd2UgZG9uJ3QgbmVlZCB0
byBhbGxvdyB1c2FnZSBmb3IgYW4gdW5rbm93biBjbGllbnQuDQorDQorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHA6DQorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6Y2xpZW50U3VwcG9ydHNJc29sYXRlZFRyZWUpOg0KKw0KIDIwMjAtMDMtMDQgIEFuZHJl
cyBHb256YWxleiAgPGFuZHJlc2dfMjJAYXBwbGUuY29tPg0KIA0KICAgICAgICAgRml4IGZvciB0
ZXN0IGFjY2Vzc2liaWxpdHkvbWFjL2FyaWEtbGl2ZXJlZ2lvbnMtYWRkZWRlbGVtZW50Lmh0bWwg
aW4gSXNvbGF0ZWRUcmVlIG1vZGUuDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5jcHANCmluZGV4IDRiZjRkNzRkNDdjLi45ZjNmYmQwNzdiZSAxMDA2NDQN
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHANCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHANCkBAIC03
MjEsMTAgKzcyMSw3IEBAIGJvb2wgQVhPYmplY3RDYWNoZTo6Y2xpZW50U3VwcG9ydHNJc29sYXRl
ZFRyZWUoKQ0KICAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVz
KCkuaXNBY2Nlc3NpYmlsaXR5SXNvbGF0ZWRUcmVlRW5hYmxlZCgpKQ0KICAgICAgICAgcmV0dXJu
IGZhbHNlOw0KIA0KLSAgICBBWENsaWVudFR5cGUgdHlwZSA9IF9BWEdldENsaWVudEZvckN1cnJl
bnRSZXF1ZXN0VW50cnVzdGVkKCk7DQotICAgIC8vIEZJWE1FOiBSZW1vdmUgdW5rbm93biBjbGll
bnQgYmVmb3JlIHNldHRpbmcgaXNBY2Nlc3NpYmlsaXR5SXNvbGF0ZWRUcmVlRW5hYmxlZCBpbml0
aWFsIHZhbHVlID0gdHJ1ZS4NCi0gICAgcmV0dXJuIHR5cGUgPT0ga0FYQ2xpZW50VHlwZVZvaWNl
T3Zlcg0KLSAgICAgICAgfHwgdHlwZSA9PSBrQVhDbGllbnRUeXBlVW5rbm93bjsNCisgICAgcmV0
dXJuIF9BWEdldENsaWVudEZvckN1cnJlbnRSZXF1ZXN0VW50cnVzdGVkKCkgPT0ga0FYQ2xpZW50
VHlwZVZvaWNlT3ZlcjsNCiB9DQogI2VuZGlmDQogDQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nDQppbmRleCA1M2JlOGYwNTlmNC4uMjRhOWVmMjU5NmEgMTAw
NjQ0DQotLS0gYS9Ub29scy9DaGFuZ2VMb2cNCisrKyBiL1Rvb2xzL0NoYW5nZUxvZw0KQEAgLTEs
MyArMSw0NCBAQA0KKzIwMjAtMDMtMDUgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxl
LmNvbT4NCisNCisgICAgICAgIEFYOiBQcm92aWRlIGEgd2F5IHRvIHJ1biB0ZXN0cyBpbiBpc29s
YXRlZCB0cmVlIG1vZGUNCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDg2MjkNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MDA3NTU4Mz4NCisNCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgUHJvdmlkZSB0
aGUgYWJpbGl0eSB0byBydW4gdGVzdHMgZm9yIGFjY2Vzc2liaWxpdHkgaW4gdGhlIGlzb2xhdGVk
IHRyZWUgbW9kZS4NCisgICAgICAgIFRoaXMgc2VuZHMgYSBmbGFnIG92ZXIgdG8gdGhlIGluamVj
dGVkIGJ1bmRsZSB3aGljaCBjYWxscyB0aGUgcmlnaHQgSElTZXJ2aWNlcyBvdmVycmlkZSBzbyB0
aGF0DQorICAgICAgICB0aGUgc3lzdGVtIHRoaW5rcyBpdCBpcyBpbiBpc29sYXRlZCBtb2RlLg0K
Kw0KKyAgICAgICAgKiBTY3JpcHRzL2NvbXBhcmUtd2Via2l0LWNvbmZpZ3VyYXRpb25zOg0KKyAg
ICAgICAgKGZsYWdfZm9yX2NvbXBhcmlzb24pOg0KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5Og0KKyAgICAgICAgKHBhcnNlX2FyZ3Mp
Og0KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rl
c3RzX2ludGVncmF0aW9udGVzdC5weToNCisgICAgICAgIChwYXJzZV9hcmdzKToNCisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9wb3J0L2RyaXZlci5weToNCisgICAgICAgIChEcml2ZXIuY21k
X2xpbmUpOg0KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vz
c2liaWxpdHlDb250cm9sbGVyLmNwcDoNCisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlDb250
cm9sbGVyOjpBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcik6DQorICAgICAgICAoV1RSOjpBY2Nlc3Np
YmlsaXR5Q29udHJvbGxlcjo6c2V0QWNjZXNzaWJpbGl0eUlzb2xhdGVkVHJlZU1vZGUpOg0KKyAg
ICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnVwZGF0ZUlzb2xhdGVkVHJlZU1v
ZGUpOg0KKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmV4ZWN1dGVPbkFY
VGhyZWFkSWZQb3NzaWJsZSk6DQorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaDoNCisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6DQorICAgICAgICAoV1RSOjpJ
bmplY3RlZEJ1bmRsZTo6ZGlkUmVjZWl2ZU1lc3NhZ2VUb1BhZ2UpOg0KKyAgICAgICAgKFdUUjo6
SW5qZWN0ZWRCdW5kbGU6OmJlZ2luVGVzdGluZyk6DQorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaDoNCisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9PcHRpb25zLmNwcDoNCisgICAgICAgIChXVFI6OmhhbmRsZU9wdGlvbkFjY2Vzc2li
aWxpdHlJc29sYXRlZFRyZWVNb2RlKToNCisgICAgICAgIChXVFI6Ok9wdGlvbnNIYW5kbGVyOjpP
cHRpb25zSGFuZGxlcik6DQorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvT3B0aW9ucy5oOg0K
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoNCisgICAgICAg
IChXVFI6OlRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKToNCisgICAgICAgIChXVFI6OlRlc3RD
b250cm9sbGVyOjpyZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKToNCisgICAgICAg
IChXVFI6OlRlc3RDb250cm9sbGVyOjpyZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKToNCisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOg0KKyAgICAgICAgKFdU
Ujo6VGVzdENvbnRyb2xsZXI6OmFjY2Vzc2liaWxpdHlJc29sYXRlZFRyZWVNb2RlIGNvbnN0KToN
CisNCiAyMDIwLTAzLTA0ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPg0K
IA0KICAgICAgICAgQWRkIHN5c3RlbSB0cmFjZSBwb2ludHMgYXJvdW5kIGRpc3BsYXkgbGlzdCBy
ZXBsYXkNCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2NvbXBhcmUtd2Via2l0LWNvbmZpZ3Vy
YXRpb25zIGIvVG9vbHMvU2NyaXB0cy9jb21wYXJlLXdlYmtpdC1jb25maWd1cmF0aW9ucw0KaW5k
ZXggNzFmNDM1N2ViNjguLjAwODkyNGMxMDcxIDEwMDc1NQ0KLS0tIGEvVG9vbHMvU2NyaXB0cy9j
b21wYXJlLXdlYmtpdC1jb25maWd1cmF0aW9ucw0KKysrIGIvVG9vbHMvU2NyaXB0cy9jb21wYXJl
LXdlYmtpdC1jb25maWd1cmF0aW9ucw0KQEAgLTU4LDYgKzU4LDggQEAgZGVmIG1haW4oKToNCiBk
ZWYgZmxhZ19mb3JfY29tcGFyaXNvbihjb21wYXJpc29uX25hbWUpOg0KICAgICBpZiBjb21wYXJp
c29uX25hbWUgPT0gInJlbW90ZS1sYXllci10cmVlIjoNCiAgICAgICAgIHJldHVybiAiLS1yZW1v
dGUtbGF5ZXItdHJlZSINCisgICAgaWYgY29tcGFyaXNvbl9uYW1lID09ICJhY2Nlc3NpYmlsaXR5
LWlzb2xhdGVkLXRyZWUiOg0KKyAgICAgICAgcmV0dXJuICItLWFjY2Vzc2liaWxpdHktaXNvbGF0
ZWQtdHJlZSINCiAgICAgaWYgY29tcGFyaXNvbl9uYW1lID09ICJhY2NlbGVyYXRlZC1kcmF3aW5n
IjoNCiAgICAgICAgIHJldHVybiAiLS1hY2NlbGVyYXRlZC1kcmF3aW5nIg0KICAgICBpZiBjb21w
YXJpc29uX25hbWUgPT0gIndlYmtpdDIiOg0KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5DQppbmRleCAzNjU0ZDRlMWY4
MC4uOTMyY2RjOTFhMmMgMTAwNzU1DQotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5DQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5DQpAQCAtMzAyLDYgKzMwMiw3IEBAIGRl
ZiBwYXJzZV9hcmdzKGFyZ3MpOg0KICAgICAgICAgICAgIGhlbHA9JyJ4dmZiIjogVXNlIGEgdmly
dHVhbGl6ZWQgWDExIHNlcnZlci4gInhvcmciOiBVc2UgdGhlIGN1cnJlbnQgWDExIHNlc3Npb24u
ICcNCiAgICAgICAgICAgICAgICAgICcid2VzdG9uIjogVXNlIGEgdmlydHVhbGl6ZWQgV2VzdG9u
IHNlcnZlci4gIndheWxhbmQiOiBVc2UgdGhlIGN1cnJlbnQgd2F5bGFuZCBzZXNzaW9uLicpLA0K
ICAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oIi0td29ybGQtbGVha3MiLCBhY3Rpb249InN0
b3JlX3RydWUiLCBkZWZhdWx0PUZhbHNlLCBoZWxwPSJDaGVjayBmb3Igd29ybGQgbGVha3MgKGN1
cnJlbnRseSwgb25seSBkb2N1bWVudHMpLiBEaWZmZXJzIGZyb20gLS1sZWFrcyBpbiB0aGF0IHRo
aXMgdXNlcyBpbnRlcm5hbCBpbnN0cnVtZW50YXRpb24sIHJhdGhlciB0aGFuIGV4dGVybmFsIHRv
b2xzLiIpLA0KKyAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oIi0tYWNjZXNzaWJpbGl0eS1p
c29sYXRlZC10cmVlIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVmYXVsdD1GYWxzZSwgaGVscD0i
UnVucyB0ZXN0cyBpbiBhY2Nlc3NpYmlsaXR5IGlzb2xhdGVkIHRyZWUgbW9kZS4iKSwNCiAgICAg
XSkpDQogDQogICAgIG9wdGlvbl9ncm91cF9kZWZpbml0aW9ucy5hcHBlbmQoKCJpT1MgT3B0aW9u
cyIsIFsNCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9y
dW5fd2Via2l0X3Rlc3RzX2ludGVncmF0aW9udGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfaW50ZWdyYXRpb250ZXN0LnB5DQppbmRl
eCA1NDJkOTM3NWI2Ni4uMzA4MDJiZGJmODMgMTAwNjQ0DQotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX2ludGVncmF0aW9udGVzdC5weQ0K
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0
c19pbnRlZ3JhdGlvbnRlc3QucHkNCkBAIC02MCw2ICs2MCw5IEBAIGRlZiBwYXJzZV9hcmdzKGV4
dHJhX2FyZ3M9Tm9uZSwgdGVzdHNfaW5jbHVkZWQ9RmFsc2UsIG5ld19yZXN1bHRzPUZhbHNlLCBw
cmludF9uDQogICAgIGlmIG5vdCAnLS13b3JsZC1sZWFrcycgaW4gZXh0cmFfYXJnczoNCiAgICAg
ICAgIGFyZ3MuYXBwZW5kKCctLXdvcmxkLWxlYWtzJykNCiANCisgICAgaWYgbm90ICctLWFjY2Vz
c2liaWxpdHktaXNvbGF0ZWQtdHJlZScgaW4gZXh0cmFfYXJnczoNCisgICAgICAgIGFyZ3MuYXBw
ZW5kKCctLWFjY2Vzc2liaWxpdHktaXNvbGF0ZWQtdHJlZScpDQorDQogICAgIGFyZ3MuZXh0ZW5k
KGV4dHJhX2FyZ3MpDQogICAgIGlmIG5vdCB0ZXN0c19pbmNsdWRlZDoNCiAgICAgICAgICMgV2Ug
dXNlIHRoZSBnbG9iIHRvIHRlc3QgdGhhdCBnbG9iYmluZyB3b3Jrcy4NCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZHJpdmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9wb3J0L2RyaXZlci5weQ0KaW5kZXggNWUzM2U5ODRhMjguLjhiOGFiYmU1YWVmIDEwMDY0
NA0KLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2RyaXZlci5weQ0KKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2RyaXZlci5weQ0KQEAgLTUyMCw2ICs1MjAsOCBAQCBj
bGFzcyBEcml2ZXIob2JqZWN0KToNCiAgICAgICAgICAgICBjbWQuYXBwZW5kKCctLW5vLXRpbWVv
dXQnKQ0KICAgICAgICAgaWYgc2VsZi5fcG9ydC5nZXRfb3B0aW9uKCdzaG93X3RvdWNoZXMnKToN
CiAgICAgICAgICAgICBjbWQuYXBwZW5kKCctLXNob3ctdG91Y2hlcycpDQorICAgICAgICBpZiBz
ZWxmLl9wb3J0LmdldF9vcHRpb24oJ2FjY2Vzc2liaWxpdHlfaXNvbGF0ZWRfdHJlZScpOg0KKyAg
ICAgICAgICAgIGNtZC5hcHBlbmQoJy0tYWNjZXNzaWJpbGl0eS1pc29sYXRlZC10cmVlJykNCiAN
CiAgICAgICAgIGZvciBhbGxvd2VkX2hvc3QgaW4gc2VsZi5fcG9ydC5hbGxvd2VkX2hvc3RzKCk6
DQogICAgICAgICAgICAgY21kLmFwcGVuZCgnLS1hbGxvd2VkLWhvc3QnKQ0KZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3Np
YmlsaXR5Q29udHJvbGxlci5jcHANCmluZGV4IDY4ZDk5NTg1MDFkLi42Mjg3N2E2ODBjYiAxMDA2
NDQNCi0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIuY3BwDQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcA0KQEAgLTMyLDcgKzMyLDcgQEANCiAj
aW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGUuaCINCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVQYWdl
LmgiDQogI2luY2x1ZGUgIkpTQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaCINCi0NCisjaW5jbHVk
ZSA8cGFsL3NwaS9tYWMvSElTZXJ2aWNlc1NQSS5oPg0KICNpbmNsdWRlIDxXZWJLaXQvV0tCdW5k
bGUuaD4NCiAjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlUGFnZS5oPg0KICNpbmNsdWRlIDxXZWJL
aXQvV0tCdW5kbGVQYWdlUHJpdmF0ZS5oPg0KQEAgLTQ2LDE1ICs0NiwyNyBAQCBSZWY8QWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXI+IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpjcmVhdGUoKQ0KIA0K
IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcigpDQogew0K
LSNpZiBQTEFURk9STShNQUMpDQotICAgIG1fdXNlQVhUaHJlYWQgPSBXS0FjY2Vzc2liaWxpdHlD
YW5Vc2VTZWNvbmRhcnlBWFRocmVhZChJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgp
LT5wYWdlKCkpOw0KLSNlbmRpZg0KIH0NCiANCiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6fkFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyKCkNCiB7DQogfQ0KIA0KKyNpZiBFTkFCTEUoQUNDRVNTSUJJ
TElUWV9JU09MQVRFRF9UUkVFKQ0KK3ZvaWQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnNldEFj
Y2Vzc2liaWxpdHlJc29sYXRlZFRyZWVNb2RlKGJvb2wgZmxhZykNCit7DQorICAgIG1fYWNjZXNz
aWJpbGl0eUlzb2xhdGVkVHJlZU1vZGUgPSBmbGFnOw0KKyAgICB1cGRhdGVJc29sYXRlZFRyZWVN
b2RlKCk7DQorfQ0KKw0KK3ZvaWQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnVwZGF0ZUlzb2xh
dGVkVHJlZU1vZGUoKQ0KK3sNCisgICAgLy8gT3ZlcnJpZGUgdG8gc2V0IGlkZW50aWZpZXIgdG8g
Vm9pY2VPdmVyIHNvIHRoYXQgcmVxdWVzdHMgYXJlIGhhbmRsZWQgaW4gaXNvbGF0ZWQgbW9kZS4N
CisgICAgX0FYU2V0Q2xpZW50SWRlbnRpZmljYXRpb25PdmVycmlkZShtX2FjY2Vzc2liaWxpdHlJ
c29sYXRlZFRyZWVNb2RlID8ga0FYQ2xpZW50VHlwZVZvaWNlT3ZlciA6IGtBWENsaWVudFR5cGVO
b0FjdGl2ZVJlcXVlc3RGb3VuZCk7DQorICAgIG1fdXNlTW9ja0FYVGhyZWFkID0gV0tBY2Nlc3Np
YmlsaXR5Q2FuVXNlU2Vjb25kYXJ5QVhUaHJlYWQoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigp
LnBhZ2UoKS0+cGFnZSgpKTsNCit9DQorI2VuZGlmDQorDQogdm9pZCBBY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlcjo6bWFrZVdpbmRvd09iamVjdChKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RS
ZWYgd2luZG93T2JqZWN0LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pDQogew0KICAgICBzZXRQcm9w
ZXJ0eShjb250ZXh0LCB3aW5kb3dPYmplY3QsICJhY2Nlc3NpYmlsaXR5Q29udHJvbGxlciIsIHRo
aXMsIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURv
bnREZWxldGUsIGV4Y2VwdGlvbik7DQpAQCAtOTMsNyArMTA1LDggQEAgUmVmPEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpmb2N1c2VkRWxlbWVudCgpDQog
DQogdm9pZCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6ZXhlY3V0ZU9uQVhUaHJlYWRJZlBvc3Np
YmxlKEZ1bmN0aW9uPHZvaWQoKT4mJiBmdW5jdGlvbikNCiB7DQotICAgIGlmIChtX3VzZUFYVGhy
ZWFkKSB7DQorI2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpDQorICAgIGlm
IChtX3VzZU1vY2tBWFRocmVhZCkgew0KICAgICAgICAgQVhUaHJlYWQ6OmRpc3BhdGNoKFsmZnVu
Y3Rpb24sIHRoaXNdIHsNCiAgICAgICAgICAgICBmdW5jdGlvbigpOw0KICAgICAgICAgICAgIG1f
c2VtYXBob3JlLnNpZ25hbCgpOw0KQEAgLTEwNiw2ICsxMTksNyBAQCB2b2lkIEFjY2Vzc2liaWxp
dHlDb250cm9sbGVyOjpleGVjdXRlT25BWFRocmVhZElmUG9zc2libGUoRnVuY3Rpb248dm9pZCgp
PiYmIGZ1bg0KICAgICAgICAgQ0ZSdW5Mb29wUnVuSW5Nb2RlKGtDRlJ1bkxvb3BEZWZhdWx0TW9k
ZSwgLjI1LCBmYWxzZSk7DQogICAgICAgICBtX3NlbWFwaG9yZS53YWl0KCk7DQogICAgIH0gZWxz
ZQ0KKyNlbmRpZg0KICAgICAgICAgZnVuY3Rpb24oKTsNCiB9DQogI2VuZGlmDQpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3Np
YmlsaXR5Q29udHJvbGxlci5oDQppbmRleCBlYTRjYTI4YmMxOC4uYTVkNThlY2MxNjIgMTAwNjQ0
DQotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxp
dHlDb250cm9sbGVyLmgNCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaA0KQEAgLTUxLDYgKzUxLDEwIEBAIHB1YmxpYzoN
CiAgICAgLy8gRW5oYW5jZWQgYWNjZXNzaWJpbGl0eS4NCiAgICAgdm9pZCBlbmFibGVFbmhhbmNl
ZEFjY2Vzc2liaWxpdHkoYm9vbCk7DQogICAgIGJvb2wgZW5oYW5jZWRBY2Nlc3NpYmlsaXR5RW5h
YmxlZCgpOw0KKw0KKyNpZiBFTkFCTEUoQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKQ0KKyAg
ICB2b2lkIHNldEFjY2Vzc2liaWxpdHlJc29sYXRlZFRyZWVNb2RlKGJvb2wpOw0KKyNlbmRpZg0K
ICAgICANCiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHBsYXRmb3JtTmFtZSgpOw0KIA0K
QEAgLTkxLDEyICs5NSwxNSBAQCBwcml2YXRlOg0KICAgICBSZWZQdHI8QWNjZXNzaWJpbGl0eU5v
dGlmaWNhdGlvbkhhbmRsZXI+IG1fZ2xvYmFsTm90aWZpY2F0aW9uSGFuZGxlcjsNCiAjZW5kaWYN
CiANCi0jaWYgUExBVEZPUk0oQ09DT0EpDQorI2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZX0lTT0xB
VEVEX1RSRUUpDQorICAgIHZvaWQgdXBkYXRlSXNvbGF0ZWRUcmVlTW9kZSgpOw0KKyAgICANCiAg
ICAgLy8gX0FYVUlFbGVtZW50VXNlU2Vjb25kYXJ5QVhUaHJlYWQgYW5kIF9BWFVJRWxlbWVudFJl
cXVlc3RTZXJ2aWNlZEJ5U2Vjb25kYXJ5QVhUaHJlYWQNCiAgICAgLy8gZG8gbm90IHdvcmsgZm9y
IFdlYktpdFRlc3RSdW5uZXIgc2luY2UgdGhpcyBpcyBjYWxsaW5nIGRpcmVjdGx5IGludG8NCiAg
ICAgLy8gV2ViQ29yZS9hY2Nlc3NpYmlsaXR5IHZpYSBKYXZhU2NyaXB0IHdpdGhvdXQgZ29pbmcg
dGhyb3VnaCBISVNlcnZpY2VzLg0KICAgICAvLyBUaHVzIHRvIHNpbXVsYXRlIHRoZSBiZWhhdmlv
ciBvZiBISVNlcnZpY2VzLCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlciBpcyBzcGF3bmluZyBhIHNl
Y29uZGFyeSB0aHJlYWQgdG8gc2VydmljZSB0aGUgSmF2YVNjcmlwdCByZXF1ZXN0cy4NCi0gICAg
Ym9vbCBtX3VzZUFYVGhyZWFkIHsgZmFsc2UgfTsNCisgICAgYm9vbCBtX3VzZU1vY2tBWFRocmVh
ZCB7IGZhbHNlIH07DQorICAgIGJvb2wgbV9hY2Nlc3NpYmlsaXR5SXNvbGF0ZWRUcmVlTW9kZSB7
IGZhbHNlIH07DQogICAgIEJpbmFyeVNlbWFwaG9yZSBtX3NlbWFwaG9yZTsNCiAjZW5kaWYNCiB9
Ow0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGUuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZS5jcHANCmluZGV4IDc3MGZlMThkOWYzLi4yODRkZmU3YzAyNCAxMDA2NDQN
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGUuY3BwDQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlLmNwcA0KQEAgLTI0Miw2ICsyNDIsMTEgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZTo6
ZGlkUmVjZWl2ZU1lc3NhZ2VUb1BhZ2UoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVm
IG0NCiAgICAgICAgIGlmIChzaG91bGRHQykNCiAgICAgICAgICAgICBXS0J1bmRsZUdhcmJhZ2VD
b2xsZWN0SmF2YVNjcmlwdE9iamVjdHMobV9idW5kbGUpOw0KIA0KKyNpZiBFTkFCTEUoQUNDRVNT
SUJJTElUWV9JU09MQVRFRF9UUkVFKQ0KKyAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+
IGF4SXNvbGF0ZWRNb2RlS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmlu
ZygiQWNjZXNzaWJpbGl0eUlzb2xhdGVkVHJlZSIpKTsNCisgICAgICAgIG1fYWNjZXNzaWJpbGl0
eUlzb2xhdGVkVHJlZU1wb2RlID0gV0tCb29sZWFuR2V0VmFsdWUoc3RhdGljX2Nhc3Q8V0tCb29s
ZWFuUmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwg
YXhJc29sYXRlZE1vZGVLZXkuZ2V0KCkpKSk7DQorI2VuZGlmDQorICAgICAgICANCiAgICAgICAg
IFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBhbGxvd2VkSG9zdHNLZXkgPSBhZG9wdFdLKFdLU3Ry
aW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJBbGxvd2VkSG9zdHMiKSk7DQogICAgICAgICBXS1R5
cGVSZWYgYWxsb3dlZEhvc3RzVmFsdWUgPSBXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1lc3Nh
Z2VCb2R5RGljdGlvbmFyeSwgYWxsb3dlZEhvc3RzS2V5LmdldCgpKTsNCiAgICAgICAgIGlmIChh
bGxvd2VkSG9zdHNWYWx1ZSAmJiBXS0dldFR5cGVJRChhbGxvd2VkSG9zdHNWYWx1ZSkgPT0gV0tB
cnJheUdldFR5cGVJRCgpKSB7DQpAQCAtNTU3LDYgKzU2Miw5IEBAIHZvaWQgSW5qZWN0ZWRCdW5k
bGU6OmJlZ2luVGVzdGluZyhXS0RpY3Rpb25hcnlSZWYgc2V0dGluZ3MsIEJlZ2luZ1Rlc3RpbmdN
b2RlIHRlDQogICAgIG1fdGV4dElucHV0Q29udHJvbGxlciA9IFRleHRJbnB1dENvbnRyb2xsZXI6
OmNyZWF0ZSgpOw0KICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpDQogICAgIG1fYWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIgPSBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6Y3JlYXRlKCk7DQorI2lmIEVO
QUJMRShBQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpDQorICAgIG1fYWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXItPnNldEFjY2Vzc2liaWxpdHlJc29sYXRlZFRyZWVNb2RlKG1fYWNjZXNzaWJpbGl0
eUlzb2xhdGVkVHJlZU1wb2RlKTsNCisjZW5kaWYNCiAjZW5kaWYNCiANCiAgICAgLy8gRG9uJ3Qg
Y2hhbmdlIGV4cGVyaW1lbnRhbCBvciBpbnRlcm5hbCBmZWF0dXJlcyBoZXJlOyB0aG9zZSBzaG91
bGQgYmUgc2V0IGluIFRlc3RDb250cm9sbGVyOjpyZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50
VmFsdWVzKCkuDQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZS5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZS5oDQppbmRleCBkMzg0ZDRkMTE1ZS4uMDEzNThhMWY1YmQgMTAw
NjQ0DQotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlLmgNCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGUuaA0KQEAgLTE5Nyw2ICsxOTcsNyBAQCBwcml2YXRlOg0KICAgICBib29sIG1f
dXNlV29ya1F1ZXVlIHsgZmFsc2UgfTsNCiAgICAgYm9vbCBtX3BpeGVsUmVzdWx0SXNQZW5kaW5n
IHsgZmFsc2UgfTsNCiAgICAgYm9vbCBtX2R1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciB7IGZhbHNl
IH07DQorICAgIGJvb2wgbV9hY2Nlc3NpYmlsaXR5SXNvbGF0ZWRUcmVlTXBvZGUgeyBmYWxzZSB9
Ow0KIA0KICAgICBXVEY6OlNlY29uZHMgbV90aW1lb3V0Ow0KIA0KZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvT3B0aW9ucy5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL09w
dGlvbnMuY3BwDQppbmRleCA1YWU3N2Q2ZTQ3Yy4uYjZkZjM1YmQ0NjQgMTAwNjQ0DQotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL09wdGlvbnMuY3BwDQorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL09wdGlvbnMuY3BwDQpAQCAtOTksNiArOTksMTQgQEAgc3RhdGljIGJvb2wgaGFuZGxl
T3B0aW9uQWxsb3dBbnlIVFRQU0NlcnRpZmljYXRlRm9yQWxsb3dlZEhvc3RzKE9wdGlvbnMmIG9w
dGlvbnMNCiAgICAgcmV0dXJuIHRydWU7DQogfQ0KIA0KKyNpZiBFTkFCTEUoQUNDRVNTSUJJTElU
WV9JU09MQVRFRF9UUkVFKQ0KK3N0YXRpYyBib29sIGhhbmRsZU9wdGlvbkFjY2Vzc2liaWxpdHlJ
c29sYXRlZFRyZWVNb2RlKE9wdGlvbnMmIG9wdGlvbnMsIGNvbnN0IGNoYXIqLCBjb25zdCBjaGFy
KikNCit7DQorICAgIG9wdGlvbnMuYWNjZXNzaWJpbGl0eUlzb2xhdGVkVHJlZU1vZGUgPSB0cnVl
Ow0KKyAgICByZXR1cm4gdHJ1ZTsNCit9DQorI2VuZGlmDQorDQogc3RhdGljIGJvb2wgaGFuZGxl
T3B0aW9uQWxsb3dlZEhvc3QoT3B0aW9ucyYgb3B0aW9ucywgY29uc3QgY2hhciosIGNvbnN0IGNo
YXIqIGhvc3QpDQogew0KICAgICBvcHRpb25zLmFsbG93ZWRIb3N0cy5pbnNlcnQoaG9zdCk7DQpA
QCAtMTU0LDcgKzE2MiwxMCBAQCBPcHRpb25zSGFuZGxlcjo6T3B0aW9uc0hhbmRsZXIoT3B0aW9u
cyYgbykNCiAgICAgb3B0aW9uTGlzdC5hcHBlbmQoT3B0aW9uKCItLXdvcmxkLWxlYWtzIiwgIkNo
ZWNrIGZvciBsZWFrcyBvZiB3b3JsZCBvYmplY3RzIChjdXJyZW50bHksIGRvY3VtZW50cykiLCBo
YW5kbGVPcHRpb25DaGVja0ZvcldvcmxkTGVha3MpKTsNCiAgICAgb3B0aW9uTGlzdC5hcHBlbmQo
T3B0aW9uKCItLWV4cGVyaW1lbnRhbC1mZWF0dXJlIiwgIkVuYWJsZSBleHBlcmltZW50YWwgZmVh
dHVyZSIsIGhhbmRsZU9wdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUsIHRydWUpKTsNCiAgICAgb3B0
aW9uTGlzdC5hcHBlbmQoT3B0aW9uKCItLWludGVybmFsLWZlYXR1cmUiLCAiRW5hYmxlIGludGVy
bmFsIGZlYXR1cmUiLCBoYW5kbGVPcHRpb25JbnRlcm5hbEZlYXR1cmUsIHRydWUpKTsNCi0NCisj
aWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkNCisgICAgb3B0aW9uTGlzdC5h
cHBlbmQoT3B0aW9uKCItLWFjY2Vzc2liaWxpdHktaXNvbGF0ZWQtdHJlZSIsICJFbmFibGUgYWNj
ZXNzaWJpbGl0eSBpc29sYXRlZCB0cmVlIG1vZGUgZm9yIHRlc3RzIiwgaGFuZGxlT3B0aW9uQWNj
ZXNzaWJpbGl0eUlzb2xhdGVkVHJlZU1vZGUpKTsNCisjZW5kaWYNCisgICAgDQogICAgIG9wdGlv
bkxpc3QuYXBwZW5kKE9wdGlvbigwLCAwLCBoYW5kbGVPcHRpb25Vbm1hdGNoZWQpKTsNCiB9DQog
DQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9PcHRpb25zLmggYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL09wdGlvbnMuaA0KaW5kZXggYTU2YmZiYzY0NjAuLmMzOWNmYWRmMmU4
IDEwMDY0NA0KLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9PcHRpb25zLmgNCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvT3B0aW9ucy5oDQpAQCAtNTIsNiArNTIsOSBAQCBzdHJ1Y3Qg
T3B0aW9ucyB7DQogICAgIGJvb2wgc2hvdWxkU2hvd1RvdWNoZXMgeyBmYWxzZSB9Ow0KICAgICBi
b29sIGNoZWNrRm9yV29ybGRMZWFrcyB7IGZhbHNlIH07DQogICAgIGJvb2wgYWxsb3dBbnlIVFRQ
U0NlcnRpZmljYXRlRm9yQWxsb3dlZEhvc3RzIHsgZmFsc2UgfTsNCisjaWYgRU5BQkxFKEFDQ0VT
U0lCSUxJVFlfSVNPTEFURURfVFJFRSkNCisgICAgYm9vbCBhY2Nlc3NpYmlsaXR5SXNvbGF0ZWRU
cmVlTW9kZSB7IGZhbHNlIH07DQorI2VuZGlmDQogICAgIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5n
PiBwYXRoczsNCiAgICAgc3RkOjpzZXQ8c3RkOjpzdHJpbmc+IGFsbG93ZWRIb3N0czsNCiAgICAg
SGFzaE1hcDxTdHJpbmcsIGJvb2w+IGludGVybmFsRmVhdHVyZXM7DQpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcA0KaW5kZXggYWVmOTZiN2FjNGQuLjRkYWMyZTY3N2Yw
IDEwMDY0NA0KLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAN
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwDQpAQCAtNDc2
LDcgKzQ3Niw5IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemUoaW50IGFyZ2MsIGNv
bnN0IGNoYXIqIGFyZ3ZbXSkNCiAgICAgbV9hbGxvd0FueUhUVFBTQ2VydGlmaWNhdGVGb3JBbGxv
d2VkSG9zdHMgPSBvcHRpb25zLmFsbG93QW55SFRUUFNDZXJ0aWZpY2F0ZUZvckFsbG93ZWRIb3N0
czsNCiAgICAgbV9pbnRlcm5hbEZlYXR1cmVzID0gb3B0aW9ucy5pbnRlcm5hbEZlYXR1cmVzOw0K
ICAgICBtX2V4cGVyaW1lbnRhbEZlYXR1cmVzID0gb3B0aW9ucy5leHBlcmltZW50YWxGZWF0dXJl
czsNCi0NCisjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkNCisgICAgbV9h
Y2Nlc3NpYmlsaXR5SXNvbGF0ZWRUcmVlTW9kZSA9IG9wdGlvbnMuYWNjZXNzaWJpbGl0eUlzb2xh
dGVkVHJlZU1vZGU7DQorI2VuZGlmDQogICAgIG1fdXNpbmdTZXJ2ZXJNb2RlID0gKG1fcGF0aHMu
c2l6ZSgpID09IDEgJiYgbV9wYXRoc1swXSA9PSAiLSIpOw0KICAgICBpZiAobV91c2luZ1NlcnZl
ck1vZGUpDQogICAgICAgICBtX3ByaW50U2VwYXJhdG9ycyA9IHRydWU7DQpAQCAtOTYxLDYgKzk2
MywxMCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpyZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50
VmFsdWVzKGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpbw0KIA0KICAgICBXS1ByZWZlcmVuY2VzU2V0
U2hvdWxkVXNlU2VydmljZVdvcmtlclNob3J0VGltZW91dChwcmVmZXJlbmNlcywgb3B0aW9ucy5j
b250ZXh0T3B0aW9ucy51c2VTZXJ2aWNlV29ya2VyU2hvcnRUaW1lb3V0KTsNCiANCisjaWYgRU5B
QkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkNCisgICAgV0tQcmVmZXJlbmNlc1NldElz
QWNjZXNzaWJpbGl0eUlzb2xhdGVkVHJlZUVuYWJsZWQocHJlZmVyZW5jZXMsIGFjY2Vzc2liaWxp
dHlJc29sYXRlZFRyZWVNb2RlKCkpOw0KKyNlbmRpZg0KKyAgICANCiAgICAgcGxhdGZvcm1SZXNl
dFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKCk7DQogfQ0KIA0KQEAgLTk5MSw2ICs5OTcs
MTIgQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6cmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyhj
b25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucywgUmUNCiAgICAgfQ0KICAgICBXS0RpY3Rpb25hcnlT
ZXRJdGVtKHJlc2V0TWVzc2FnZUJvZHkuZ2V0KCksIGFsbG93ZWRIb3N0c0tleS5nZXQoKSwgYWxs
b3dlZEhvc3RzVmFsdWUuZ2V0KCkpOw0KIA0KKyNpZiBFTkFCTEUoQUNDRVNTSUJJTElUWV9JU09M
QVRFRF9UUkVFKQ0KKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gYXhJc29sYXRlZE1vZGVL
ZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJBY2Nlc3NpYmlsaXR5
SXNvbGF0ZWRUcmVlIikpOw0KKyAgICBXS1JldGFpblB0cjxXS0Jvb2xlYW5SZWY+IGF4SXNvbGF0
ZWRNb2RlVmFsdWUgPSBhZG9wdFdLKFdLQm9vbGVhbkNyZWF0ZShtX2FjY2Vzc2liaWxpdHlJc29s
YXRlZFRyZWVNb2RlKSk7DQorICAgIFdLRGljdGlvbmFyeVNldEl0ZW0ocmVzZXRNZXNzYWdlQm9k
eS5nZXQoKSwgYXhJc29sYXRlZE1vZGVLZXkuZ2V0KCksIGF4SXNvbGF0ZWRNb2RlVmFsdWUuZ2V0
KCkpOw0KKyNlbmRpZg0KKyAgICANCiAgICAgaWYgKG9wdGlvbnMuanNjT3B0aW9ucy5sZW5ndGgo
KSkgew0KICAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGpzY09wdGlvbnNLZXkgPSBh
ZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJKU0NPcHRpb25zIikpOw0KICAg
ICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGpzY09wdGlvbnNWYWx1ZSA9IGFkb3B0V0so
V0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcob3B0aW9ucy5qc2NPcHRpb25zLmNfc3RyKCkp
KTsNCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgNCmluZGV4IGYzYWE4OGFj
NjI5Li4wNzg5OTFiYWRlZSAxMDA2NDQNCi0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dENvbnRyb2xsZXIuaA0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5oDQpAQCAtMTMzLDYgKzEzMywxMCBAQCBwdWJsaWM6DQogDQogICAgIHZvaWQgc2ltdWxhdGVX
ZWJOb3RpZmljYXRpb25DbGljayh1aW50NjRfdCBub3RpZmljYXRpb25JRCk7DQogDQorI2lmIEVO
QUJMRShBQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpDQorICAgIGJvb2wgYWNjZXNzaWJpbGl0
eUlzb2xhdGVkVHJlZU1vZGUoKSBjb25zdCB7IHJldHVybiBtX2FjY2Vzc2liaWxpdHlJc29sYXRl
ZFRyZWVNb2RlOyB9DQorI2VuZGlmDQorICAgIA0KICAgICAvLyBHZW9sb2NhdGlvbi4NCiAgICAg
dm9pZCBzZXRHZW9sb2NhdGlvblBlcm1pc3Npb24oYm9vbCk7DQogICAgIHZvaWQgc2V0TW9ja0dl
b2xvY2F0aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3Vi
bGUgYWNjdXJhY3ksIGJvb2wgcHJvdmlkZXNBbHRpdHVkZSwgZG91YmxlIGFsdGl0dWRlLCBib29s
IHByb3ZpZGVzQWx0aXR1ZGVBY2N1cmFjeSwgZG91YmxlIGFsdGl0dWRlQWNjdXJhY3ksIGJvb2wg
cHJvdmlkZXNIZWFkaW5nLCBkb3VibGUgaGVhZGluZywgYm9vbCBwcm92aWRlc1NwZWVkLCBkb3Vi
bGUgc3BlZWQsIGJvb2wgcHJvdmlkZXNGbG9vckxldmVsLCBkb3VibGUgZmxvb3JMZXZlbCk7DQpA
QCAtNTk3LDYgKzYwMSwxMCBAQCBwcml2YXRlOg0KIA0KICAgICBib29sIG1fYWxsb3dBbnlIVFRQ
U0NlcnRpZmljYXRlRm9yQWxsb3dlZEhvc3RzIHsgZmFsc2UgfTsNCiANCisjaWYgRU5BQkxFKEFD
Q0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkNCisgICAgYm9vbCBtX2FjY2Vzc2liaWxpdHlJc29s
YXRlZFRyZWVNb2RlIHsgZmFsc2UgfTsNCisjZW5kaWYNCisgICAgDQogICAgIGJvb2wgbV9zaG91
bGREZWNpZGVOYXZpZ2F0aW9uUG9saWN5QWZ0ZXJEZWxheSB7IGZhbHNlIH07DQogICAgIGJvb2wg
bV9zaG91bGREZWNpZGVSZXNwb25zZVBvbGljeUFmdGVyRGVsYXkgeyBmYWxzZSB9Ow0KIA0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392566</attachid>
            <date>2020-03-05 07:37:37 -0800</date>
            <delta_ts>2020-03-05 07:56:01 -0800</delta_ts>
            <desc>patch</desc>
            <filename>file_208629.txt</filename>
            <type>text/plain</type>
            <size>18630</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZw0KaW5kZXggOWJhNjRkZWQzNmUuLmJkZmY2OTA2ODk3IDEwMDY0NA0KLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cNCkBA
IC0xLDMgKzEsMTYgQEANCisyMDIwLTAzLTA1ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBh
cHBsZS5jb20+DQorDQorICAgICAgICBBWDogUHJvdmlkZSBhIHdheSB0byBydW4gdGVzdHMgaW4g
aXNvbGF0ZWQgdHJlZSBtb2RlDQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA4NjI5DQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjAwNzU1ODM+DQor
DQorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4NCisNCisgICAgICAgIE5vdyB0
aGF0IHdlIGhhdmUgYSB3YXkgdG8gcnVuIHRoaXMgd2l0aCB0ZXN0cywgd2UgZG9uJ3QgbmVlZCB0
byBhbGxvdyB1c2FnZSBmb3IgYW4gdW5rbm93biBjbGllbnQuDQorDQorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHA6DQorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6Y2xpZW50U3VwcG9ydHNJc29sYXRlZFRyZWUpOg0KKw0KIDIwMjAtMDMtMDQgIEFuZHJl
cyBHb256YWxleiAgPGFuZHJlc2dfMjJAYXBwbGUuY29tPg0KIA0KICAgICAgICAgRml4IGZvciB0
ZXN0IGFjY2Vzc2liaWxpdHkvbWFjL2FyaWEtbGl2ZXJlZ2lvbnMtYWRkZWRlbGVtZW50Lmh0bWwg
aW4gSXNvbGF0ZWRUcmVlIG1vZGUuDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5jcHANCmluZGV4IDRiZjRkNzRkNDdjLi45ZjNmYmQwNzdiZSAxMDA2NDQN
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHANCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHANCkBAIC03
MjEsMTAgKzcyMSw3IEBAIGJvb2wgQVhPYmplY3RDYWNoZTo6Y2xpZW50U3VwcG9ydHNJc29sYXRl
ZFRyZWUoKQ0KICAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVz
KCkuaXNBY2Nlc3NpYmlsaXR5SXNvbGF0ZWRUcmVlRW5hYmxlZCgpKQ0KICAgICAgICAgcmV0dXJu
IGZhbHNlOw0KIA0KLSAgICBBWENsaWVudFR5cGUgdHlwZSA9IF9BWEdldENsaWVudEZvckN1cnJl
bnRSZXF1ZXN0VW50cnVzdGVkKCk7DQotICAgIC8vIEZJWE1FOiBSZW1vdmUgdW5rbm93biBjbGll
bnQgYmVmb3JlIHNldHRpbmcgaXNBY2Nlc3NpYmlsaXR5SXNvbGF0ZWRUcmVlRW5hYmxlZCBpbml0
aWFsIHZhbHVlID0gdHJ1ZS4NCi0gICAgcmV0dXJuIHR5cGUgPT0ga0FYQ2xpZW50VHlwZVZvaWNl
T3Zlcg0KLSAgICAgICAgfHwgdHlwZSA9PSBrQVhDbGllbnRUeXBlVW5rbm93bjsNCisgICAgcmV0
dXJuIF9BWEdldENsaWVudEZvckN1cnJlbnRSZXF1ZXN0VW50cnVzdGVkKCkgPT0ga0FYQ2xpZW50
VHlwZVZvaWNlT3ZlcjsNCiB9DQogI2VuZGlmDQogDQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nDQppbmRleCA1M2JlOGYwNTlmNC4uMjRhOWVmMjU5NmEgMTAw
NjQ0DQotLS0gYS9Ub29scy9DaGFuZ2VMb2cNCisrKyBiL1Rvb2xzL0NoYW5nZUxvZw0KQEAgLTEs
MyArMSw0NCBAQA0KKzIwMjAtMDMtMDUgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxl
LmNvbT4NCisNCisgICAgICAgIEFYOiBQcm92aWRlIGEgd2F5IHRvIHJ1biB0ZXN0cyBpbiBpc29s
YXRlZCB0cmVlIG1vZGUNCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDg2MjkNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MDA3NTU4Mz4NCisNCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgUHJvdmlkZSB0
aGUgYWJpbGl0eSB0byBydW4gdGVzdHMgZm9yIGFjY2Vzc2liaWxpdHkgaW4gdGhlIGlzb2xhdGVk
IHRyZWUgbW9kZS4NCisgICAgICAgIFRoaXMgc2VuZHMgYSBmbGFnIG92ZXIgdG8gdGhlIGluamVj
dGVkIGJ1bmRsZSB3aGljaCBjYWxscyB0aGUgcmlnaHQgSElTZXJ2aWNlcyBvdmVycmlkZSBzbyB0
aGF0DQorICAgICAgICB0aGUgc3lzdGVtIHRoaW5rcyBpdCBpcyBpbiBpc29sYXRlZCBtb2RlLg0K
Kw0KKyAgICAgICAgKiBTY3JpcHRzL2NvbXBhcmUtd2Via2l0LWNvbmZpZ3VyYXRpb25zOg0KKyAg
ICAgICAgKGZsYWdfZm9yX2NvbXBhcmlzb24pOg0KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5Og0KKyAgICAgICAgKHBhcnNlX2FyZ3Mp
Og0KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rl
c3RzX2ludGVncmF0aW9udGVzdC5weToNCisgICAgICAgIChwYXJzZV9hcmdzKToNCisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9wb3J0L2RyaXZlci5weToNCisgICAgICAgIChEcml2ZXIuY21k
X2xpbmUpOg0KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vz
c2liaWxpdHlDb250cm9sbGVyLmNwcDoNCisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlDb250
cm9sbGVyOjpBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcik6DQorICAgICAgICAoV1RSOjpBY2Nlc3Np
YmlsaXR5Q29udHJvbGxlcjo6c2V0QWNjZXNzaWJpbGl0eUlzb2xhdGVkVHJlZU1vZGUpOg0KKyAg
ICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnVwZGF0ZUlzb2xhdGVkVHJlZU1v
ZGUpOg0KKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmV4ZWN1dGVPbkFY
VGhyZWFkSWZQb3NzaWJsZSk6DQorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaDoNCisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6DQorICAgICAgICAoV1RSOjpJ
bmplY3RlZEJ1bmRsZTo6ZGlkUmVjZWl2ZU1lc3NhZ2VUb1BhZ2UpOg0KKyAgICAgICAgKFdUUjo6
SW5qZWN0ZWRCdW5kbGU6OmJlZ2luVGVzdGluZyk6DQorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaDoNCisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9PcHRpb25zLmNwcDoNCisgICAgICAgIChXVFI6OmhhbmRsZU9wdGlvbkFjY2Vzc2li
aWxpdHlJc29sYXRlZFRyZWVNb2RlKToNCisgICAgICAgIChXVFI6Ok9wdGlvbnNIYW5kbGVyOjpP
cHRpb25zSGFuZGxlcik6DQorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvT3B0aW9ucy5oOg0K
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoNCisgICAgICAg
IChXVFI6OlRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKToNCisgICAgICAgIChXVFI6OlRlc3RD
b250cm9sbGVyOjpyZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKToNCisgICAgICAg
IChXVFI6OlRlc3RDb250cm9sbGVyOjpyZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKToNCisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOg0KKyAgICAgICAgKFdU
Ujo6VGVzdENvbnRyb2xsZXI6OmFjY2Vzc2liaWxpdHlJc29sYXRlZFRyZWVNb2RlIGNvbnN0KToN
CisNCiAyMDIwLTAzLTA0ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPg0K
IA0KICAgICAgICAgQWRkIHN5c3RlbSB0cmFjZSBwb2ludHMgYXJvdW5kIGRpc3BsYXkgbGlzdCBy
ZXBsYXkNCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2NvbXBhcmUtd2Via2l0LWNvbmZpZ3Vy
YXRpb25zIGIvVG9vbHMvU2NyaXB0cy9jb21wYXJlLXdlYmtpdC1jb25maWd1cmF0aW9ucw0KaW5k
ZXggNzFmNDM1N2ViNjguLjAwODkyNGMxMDcxIDEwMDc1NQ0KLS0tIGEvVG9vbHMvU2NyaXB0cy9j
b21wYXJlLXdlYmtpdC1jb25maWd1cmF0aW9ucw0KKysrIGIvVG9vbHMvU2NyaXB0cy9jb21wYXJl
LXdlYmtpdC1jb25maWd1cmF0aW9ucw0KQEAgLTU4LDYgKzU4LDggQEAgZGVmIG1haW4oKToNCiBk
ZWYgZmxhZ19mb3JfY29tcGFyaXNvbihjb21wYXJpc29uX25hbWUpOg0KICAgICBpZiBjb21wYXJp
c29uX25hbWUgPT0gInJlbW90ZS1sYXllci10cmVlIjoNCiAgICAgICAgIHJldHVybiAiLS1yZW1v
dGUtbGF5ZXItdHJlZSINCisgICAgaWYgY29tcGFyaXNvbl9uYW1lID09ICJhY2Nlc3NpYmlsaXR5
LWlzb2xhdGVkLXRyZWUiOg0KKyAgICAgICAgcmV0dXJuICItLWFjY2Vzc2liaWxpdHktaXNvbGF0
ZWQtdHJlZSINCiAgICAgaWYgY29tcGFyaXNvbl9uYW1lID09ICJhY2NlbGVyYXRlZC1kcmF3aW5n
IjoNCiAgICAgICAgIHJldHVybiAiLS1hY2NlbGVyYXRlZC1kcmF3aW5nIg0KICAgICBpZiBjb21w
YXJpc29uX25hbWUgPT0gIndlYmtpdDIiOg0KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5DQppbmRleCAzNjU0ZDRlMWY4
MC4uOTMyY2RjOTFhMmMgMTAwNzU1DQotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5DQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5DQpAQCAtMzAyLDYgKzMwMiw3IEBAIGRl
ZiBwYXJzZV9hcmdzKGFyZ3MpOg0KICAgICAgICAgICAgIGhlbHA9JyJ4dmZiIjogVXNlIGEgdmly
dHVhbGl6ZWQgWDExIHNlcnZlci4gInhvcmciOiBVc2UgdGhlIGN1cnJlbnQgWDExIHNlc3Npb24u
ICcNCiAgICAgICAgICAgICAgICAgICcid2VzdG9uIjogVXNlIGEgdmlydHVhbGl6ZWQgV2VzdG9u
IHNlcnZlci4gIndheWxhbmQiOiBVc2UgdGhlIGN1cnJlbnQgd2F5bGFuZCBzZXNzaW9uLicpLA0K
ICAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oIi0td29ybGQtbGVha3MiLCBhY3Rpb249InN0
b3JlX3RydWUiLCBkZWZhdWx0PUZhbHNlLCBoZWxwPSJDaGVjayBmb3Igd29ybGQgbGVha3MgKGN1
cnJlbnRseSwgb25seSBkb2N1bWVudHMpLiBEaWZmZXJzIGZyb20gLS1sZWFrcyBpbiB0aGF0IHRo
aXMgdXNlcyBpbnRlcm5hbCBpbnN0cnVtZW50YXRpb24sIHJhdGhlciB0aGFuIGV4dGVybmFsIHRv
b2xzLiIpLA0KKyAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oIi0tYWNjZXNzaWJpbGl0eS1p
c29sYXRlZC10cmVlIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVmYXVsdD1GYWxzZSwgaGVscD0i
UnVucyB0ZXN0cyBpbiBhY2Nlc3NpYmlsaXR5IGlzb2xhdGVkIHRyZWUgbW9kZS4iKSwNCiAgICAg
XSkpDQogDQogICAgIG9wdGlvbl9ncm91cF9kZWZpbml0aW9ucy5hcHBlbmQoKCJpT1MgT3B0aW9u
cyIsIFsNCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9y
dW5fd2Via2l0X3Rlc3RzX2ludGVncmF0aW9udGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfaW50ZWdyYXRpb250ZXN0LnB5DQppbmRl
eCA1NDJkOTM3NWI2Ni4uMzA4MDJiZGJmODMgMTAwNjQ0DQotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX2ludGVncmF0aW9udGVzdC5weQ0K
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0
c19pbnRlZ3JhdGlvbnRlc3QucHkNCkBAIC02MCw2ICs2MCw5IEBAIGRlZiBwYXJzZV9hcmdzKGV4
dHJhX2FyZ3M9Tm9uZSwgdGVzdHNfaW5jbHVkZWQ9RmFsc2UsIG5ld19yZXN1bHRzPUZhbHNlLCBw
cmludF9uDQogICAgIGlmIG5vdCAnLS13b3JsZC1sZWFrcycgaW4gZXh0cmFfYXJnczoNCiAgICAg
ICAgIGFyZ3MuYXBwZW5kKCctLXdvcmxkLWxlYWtzJykNCiANCisgICAgaWYgbm90ICctLWFjY2Vz
c2liaWxpdHktaXNvbGF0ZWQtdHJlZScgaW4gZXh0cmFfYXJnczoNCisgICAgICAgIGFyZ3MuYXBw
ZW5kKCctLWFjY2Vzc2liaWxpdHktaXNvbGF0ZWQtdHJlZScpDQorDQogICAgIGFyZ3MuZXh0ZW5k
KGV4dHJhX2FyZ3MpDQogICAgIGlmIG5vdCB0ZXN0c19pbmNsdWRlZDoNCiAgICAgICAgICMgV2Ug
dXNlIHRoZSBnbG9iIHRvIHRlc3QgdGhhdCBnbG9iYmluZyB3b3Jrcy4NCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZHJpdmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9wb3J0L2RyaXZlci5weQ0KaW5kZXggNWUzM2U5ODRhMjguLjhiOGFiYmU1YWVmIDEwMDY0
NA0KLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2RyaXZlci5weQ0KKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2RyaXZlci5weQ0KQEAgLTUyMCw2ICs1MjAsOCBAQCBj
bGFzcyBEcml2ZXIob2JqZWN0KToNCiAgICAgICAgICAgICBjbWQuYXBwZW5kKCctLW5vLXRpbWVv
dXQnKQ0KICAgICAgICAgaWYgc2VsZi5fcG9ydC5nZXRfb3B0aW9uKCdzaG93X3RvdWNoZXMnKToN
CiAgICAgICAgICAgICBjbWQuYXBwZW5kKCctLXNob3ctdG91Y2hlcycpDQorICAgICAgICBpZiBz
ZWxmLl9wb3J0LmdldF9vcHRpb24oJ2FjY2Vzc2liaWxpdHlfaXNvbGF0ZWRfdHJlZScpOg0KKyAg
ICAgICAgICAgIGNtZC5hcHBlbmQoJy0tYWNjZXNzaWJpbGl0eS1pc29sYXRlZC10cmVlJykNCiAN
CiAgICAgICAgIGZvciBhbGxvd2VkX2hvc3QgaW4gc2VsZi5fcG9ydC5hbGxvd2VkX2hvc3RzKCk6
DQogICAgICAgICAgICAgY21kLmFwcGVuZCgnLS1hbGxvd2VkLWhvc3QnKQ0KZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3Np
YmlsaXR5Q29udHJvbGxlci5jcHANCmluZGV4IDY4ZDk5NTg1MDFkLi41YWM4MGZkMGNlNiAxMDA2
NDQNCi0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIuY3BwDQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcA0KQEAgLTMyLDcgKzMyLDkgQEANCiAj
aW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGUuaCINCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVQYWdl
LmgiDQogI2luY2x1ZGUgIkpTQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaCINCi0NCisjaWYgRU5B
QkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkNCisjaW5jbHVkZSA8cGFsL3NwaS9tYWMv
SElTZXJ2aWNlc1NQSS5oPg0KKyNlbmRpZg0KICNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGUuaD4N
CiAjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlUGFnZS5oPg0KICNpbmNsdWRlIDxXZWJLaXQvV0tC
dW5kbGVQYWdlUHJpdmF0ZS5oPg0KQEAgLTQ2LDE1ICs0OCwyNyBAQCBSZWY8QWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXI+IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpjcmVhdGUoKQ0KIA0KIEFjY2Vz
c2liaWxpdHlDb250cm9sbGVyOjpBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcigpDQogew0KLSNpZiBQ
TEFURk9STShNQUMpDQotICAgIG1fdXNlQVhUaHJlYWQgPSBXS0FjY2Vzc2liaWxpdHlDYW5Vc2VT
ZWNvbmRhcnlBWFRocmVhZChJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5wYWdl
KCkpOw0KLSNlbmRpZg0KIH0NCiANCiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6fkFjY2Vzc2li
aWxpdHlDb250cm9sbGVyKCkNCiB7DQogfQ0KIA0KKyNpZiBFTkFCTEUoQUNDRVNTSUJJTElUWV9J
U09MQVRFRF9UUkVFKQ0KK3ZvaWQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnNldEFjY2Vzc2li
aWxpdHlJc29sYXRlZFRyZWVNb2RlKGJvb2wgZmxhZykNCit7DQorICAgIG1fYWNjZXNzaWJpbGl0
eUlzb2xhdGVkVHJlZU1vZGUgPSBmbGFnOw0KKyAgICB1cGRhdGVJc29sYXRlZFRyZWVNb2RlKCk7
DQorfQ0KKw0KK3ZvaWQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnVwZGF0ZUlzb2xhdGVkVHJl
ZU1vZGUoKQ0KK3sNCisgICAgLy8gT3ZlcnJpZGUgdG8gc2V0IGlkZW50aWZpZXIgdG8gVm9pY2VP
dmVyIHNvIHRoYXQgcmVxdWVzdHMgYXJlIGhhbmRsZWQgaW4gaXNvbGF0ZWQgbW9kZS4NCisgICAg
X0FYU2V0Q2xpZW50SWRlbnRpZmljYXRpb25PdmVycmlkZShtX2FjY2Vzc2liaWxpdHlJc29sYXRl
ZFRyZWVNb2RlID8ga0FYQ2xpZW50VHlwZVZvaWNlT3ZlciA6IGtBWENsaWVudFR5cGVOb0FjdGl2
ZVJlcXVlc3RGb3VuZCk7DQorICAgIG1fdXNlTW9ja0FYVGhyZWFkID0gV0tBY2Nlc3NpYmlsaXR5
Q2FuVXNlU2Vjb25kYXJ5QVhUaHJlYWQoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2Uo
KS0+cGFnZSgpKTsNCit9DQorI2VuZGlmDQorDQogdm9pZCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxl
cjo6bWFrZVdpbmRvd09iamVjdChKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgd2lu
ZG93T2JqZWN0LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pDQogew0KICAgICBzZXRQcm9wZXJ0eShj
b250ZXh0LCB3aW5kb3dPYmplY3QsICJhY2Nlc3NpYmlsaXR5Q29udHJvbGxlciIsIHRoaXMsIGtK
U1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxl
dGUsIGV4Y2VwdGlvbik7DQpAQCAtOTMsNyArMTA3LDggQEAgUmVmPEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ+IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpmb2N1c2VkRWxlbWVudCgpDQogDQogdm9p
ZCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6ZXhlY3V0ZU9uQVhUaHJlYWRJZlBvc3NpYmxlKEZ1
bmN0aW9uPHZvaWQoKT4mJiBmdW5jdGlvbikNCiB7DQotICAgIGlmIChtX3VzZUFYVGhyZWFkKSB7
DQorI2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpDQorICAgIGlmIChtX3Vz
ZU1vY2tBWFRocmVhZCkgew0KICAgICAgICAgQVhUaHJlYWQ6OmRpc3BhdGNoKFsmZnVuY3Rpb24s
IHRoaXNdIHsNCiAgICAgICAgICAgICBmdW5jdGlvbigpOw0KICAgICAgICAgICAgIG1fc2VtYXBo
b3JlLnNpZ25hbCgpOw0KQEAgLTEwNiw2ICsxMjEsNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlDb250
cm9sbGVyOjpleGVjdXRlT25BWFRocmVhZElmUG9zc2libGUoRnVuY3Rpb248dm9pZCgpPiYmIGZ1
bg0KICAgICAgICAgQ0ZSdW5Mb29wUnVuSW5Nb2RlKGtDRlJ1bkxvb3BEZWZhdWx0TW9kZSwgLjI1
LCBmYWxzZSk7DQogICAgICAgICBtX3NlbWFwaG9yZS53YWl0KCk7DQogICAgIH0gZWxzZQ0KKyNl
bmRpZg0KICAgICAgICAgZnVuY3Rpb24oKTsNCiB9DQogI2VuZGlmDQpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxl
ci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5
Q29udHJvbGxlci5oDQppbmRleCBlYTRjYTI4YmMxOC4uYTVkNThlY2MxNjIgMTAwNjQ0DQotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250
cm9sbGVyLmgNCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIuaA0KQEAgLTUxLDYgKzUxLDEwIEBAIHB1YmxpYzoNCiAgICAg
Ly8gRW5oYW5jZWQgYWNjZXNzaWJpbGl0eS4NCiAgICAgdm9pZCBlbmFibGVFbmhhbmNlZEFjY2Vz
c2liaWxpdHkoYm9vbCk7DQogICAgIGJvb2wgZW5oYW5jZWRBY2Nlc3NpYmlsaXR5RW5hYmxlZCgp
Ow0KKw0KKyNpZiBFTkFCTEUoQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKQ0KKyAgICB2b2lk
IHNldEFjY2Vzc2liaWxpdHlJc29sYXRlZFRyZWVNb2RlKGJvb2wpOw0KKyNlbmRpZg0KICAgICAN
CiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHBsYXRmb3JtTmFtZSgpOw0KIA0KQEAgLTkx
LDEyICs5NSwxNSBAQCBwcml2YXRlOg0KICAgICBSZWZQdHI8QWNjZXNzaWJpbGl0eU5vdGlmaWNh
dGlvbkhhbmRsZXI+IG1fZ2xvYmFsTm90aWZpY2F0aW9uSGFuZGxlcjsNCiAjZW5kaWYNCiANCi0j
aWYgUExBVEZPUk0oQ09DT0EpDQorI2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RS
RUUpDQorICAgIHZvaWQgdXBkYXRlSXNvbGF0ZWRUcmVlTW9kZSgpOw0KKyAgICANCiAgICAgLy8g
X0FYVUlFbGVtZW50VXNlU2Vjb25kYXJ5QVhUaHJlYWQgYW5kIF9BWFVJRWxlbWVudFJlcXVlc3RT
ZXJ2aWNlZEJ5U2Vjb25kYXJ5QVhUaHJlYWQNCiAgICAgLy8gZG8gbm90IHdvcmsgZm9yIFdlYktp
dFRlc3RSdW5uZXIgc2luY2UgdGhpcyBpcyBjYWxsaW5nIGRpcmVjdGx5IGludG8NCiAgICAgLy8g
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5IHZpYSBKYXZhU2NyaXB0IHdpdGhvdXQgZ29pbmcgdGhyb3Vn
aCBISVNlcnZpY2VzLg0KICAgICAvLyBUaHVzIHRvIHNpbXVsYXRlIHRoZSBiZWhhdmlvciBvZiBI
SVNlcnZpY2VzLCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlciBpcyBzcGF3bmluZyBhIHNlY29uZGFy
eSB0aHJlYWQgdG8gc2VydmljZSB0aGUgSmF2YVNjcmlwdCByZXF1ZXN0cy4NCi0gICAgYm9vbCBt
X3VzZUFYVGhyZWFkIHsgZmFsc2UgfTsNCisgICAgYm9vbCBtX3VzZU1vY2tBWFRocmVhZCB7IGZh
bHNlIH07DQorICAgIGJvb2wgbV9hY2Nlc3NpYmlsaXR5SXNvbGF0ZWRUcmVlTW9kZSB7IGZhbHNl
IH07DQogICAgIEJpbmFyeVNlbWFwaG9yZSBtX3NlbWFwaG9yZTsNCiAjZW5kaWYNCiB9Ow0KZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGUuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZS5jcHANCmluZGV4IDc3MGZlMThkOWYzLi4yODRkZmU3YzAyNCAxMDA2NDQNCi0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3Bw
DQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlLmNwcA0KQEAgLTI0Miw2ICsyNDIsMTEgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZTo6ZGlkUmVj
ZWl2ZU1lc3NhZ2VUb1BhZ2UoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG0NCiAg
ICAgICAgIGlmIChzaG91bGRHQykNCiAgICAgICAgICAgICBXS0J1bmRsZUdhcmJhZ2VDb2xsZWN0
SmF2YVNjcmlwdE9iamVjdHMobV9idW5kbGUpOw0KIA0KKyNpZiBFTkFCTEUoQUNDRVNTSUJJTElU
WV9JU09MQVRFRF9UUkVFKQ0KKyAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGF4SXNv
bGF0ZWRNb2RlS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiQWNj
ZXNzaWJpbGl0eUlzb2xhdGVkVHJlZSIpKTsNCisgICAgICAgIG1fYWNjZXNzaWJpbGl0eUlzb2xh
dGVkVHJlZU1wb2RlID0gV0tCb29sZWFuR2V0VmFsdWUoc3RhdGljX2Nhc3Q8V0tCb29sZWFuUmVm
PihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgYXhJc29s
YXRlZE1vZGVLZXkuZ2V0KCkpKSk7DQorI2VuZGlmDQorICAgICAgICANCiAgICAgICAgIFdLUmV0
YWluUHRyPFdLU3RyaW5nUmVmPiBhbGxvd2VkSG9zdHNLZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKCJBbGxvd2VkSG9zdHMiKSk7DQogICAgICAgICBXS1R5cGVSZWYg
YWxsb3dlZEhvc3RzVmFsdWUgPSBXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5
RGljdGlvbmFyeSwgYWxsb3dlZEhvc3RzS2V5LmdldCgpKTsNCiAgICAgICAgIGlmIChhbGxvd2Vk
SG9zdHNWYWx1ZSAmJiBXS0dldFR5cGVJRChhbGxvd2VkSG9zdHNWYWx1ZSkgPT0gV0tBcnJheUdl
dFR5cGVJRCgpKSB7DQpAQCAtNTU3LDYgKzU2Miw5IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OmJl
Z2luVGVzdGluZyhXS0RpY3Rpb25hcnlSZWYgc2V0dGluZ3MsIEJlZ2luZ1Rlc3RpbmdNb2RlIHRl
DQogICAgIG1fdGV4dElucHV0Q29udHJvbGxlciA9IFRleHRJbnB1dENvbnRyb2xsZXI6OmNyZWF0
ZSgpOw0KICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpDQogICAgIG1fYWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIgPSBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6Y3JlYXRlKCk7DQorI2lmIEVOQUJMRShB
Q0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpDQorICAgIG1fYWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXItPnNldEFjY2Vzc2liaWxpdHlJc29sYXRlZFRyZWVNb2RlKG1fYWNjZXNzaWJpbGl0eUlzb2xh
dGVkVHJlZU1wb2RlKTsNCisjZW5kaWYNCiAjZW5kaWYNCiANCiAgICAgLy8gRG9uJ3QgY2hhbmdl
IGV4cGVyaW1lbnRhbCBvciBpbnRlcm5hbCBmZWF0dXJlcyBoZXJlOyB0aG9zZSBzaG91bGQgYmUg
c2V0IGluIFRlc3RDb250cm9sbGVyOjpyZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVz
KCkuDQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZS5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZS5oDQppbmRleCBkMzg0ZDRkMTE1ZS4uMDEzNThhMWY1YmQgMTAwNjQ0DQot
LS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
LmgNCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGUuaA0KQEAgLTE5Nyw2ICsxOTcsNyBAQCBwcml2YXRlOg0KICAgICBib29sIG1fdXNlV29y
a1F1ZXVlIHsgZmFsc2UgfTsNCiAgICAgYm9vbCBtX3BpeGVsUmVzdWx0SXNQZW5kaW5nIHsgZmFs
c2UgfTsNCiAgICAgYm9vbCBtX2R1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciB7IGZhbHNlIH07DQor
ICAgIGJvb2wgbV9hY2Nlc3NpYmlsaXR5SXNvbGF0ZWRUcmVlTXBvZGUgeyBmYWxzZSB9Ow0KIA0K
ICAgICBXVEY6OlNlY29uZHMgbV90aW1lb3V0Ow0KIA0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvT3B0aW9ucy5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL09wdGlvbnMu
Y3BwDQppbmRleCA1YWU3N2Q2ZTQ3Yy4uYjZkZjM1YmQ0NjQgMTAwNjQ0DQotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL09wdGlvbnMuY3BwDQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L09wdGlvbnMuY3BwDQpAQCAtOTksNiArOTksMTQgQEAgc3RhdGljIGJvb2wgaGFuZGxlT3B0aW9u
QWxsb3dBbnlIVFRQU0NlcnRpZmljYXRlRm9yQWxsb3dlZEhvc3RzKE9wdGlvbnMmIG9wdGlvbnMN
CiAgICAgcmV0dXJuIHRydWU7DQogfQ0KIA0KKyNpZiBFTkFCTEUoQUNDRVNTSUJJTElUWV9JU09M
QVRFRF9UUkVFKQ0KK3N0YXRpYyBib29sIGhhbmRsZU9wdGlvbkFjY2Vzc2liaWxpdHlJc29sYXRl
ZFRyZWVNb2RlKE9wdGlvbnMmIG9wdGlvbnMsIGNvbnN0IGNoYXIqLCBjb25zdCBjaGFyKikNCit7
DQorICAgIG9wdGlvbnMuYWNjZXNzaWJpbGl0eUlzb2xhdGVkVHJlZU1vZGUgPSB0cnVlOw0KKyAg
ICByZXR1cm4gdHJ1ZTsNCit9DQorI2VuZGlmDQorDQogc3RhdGljIGJvb2wgaGFuZGxlT3B0aW9u
QWxsb3dlZEhvc3QoT3B0aW9ucyYgb3B0aW9ucywgY29uc3QgY2hhciosIGNvbnN0IGNoYXIqIGhv
c3QpDQogew0KICAgICBvcHRpb25zLmFsbG93ZWRIb3N0cy5pbnNlcnQoaG9zdCk7DQpAQCAtMTU0
LDcgKzE2MiwxMCBAQCBPcHRpb25zSGFuZGxlcjo6T3B0aW9uc0hhbmRsZXIoT3B0aW9ucyYgbykN
CiAgICAgb3B0aW9uTGlzdC5hcHBlbmQoT3B0aW9uKCItLXdvcmxkLWxlYWtzIiwgIkNoZWNrIGZv
ciBsZWFrcyBvZiB3b3JsZCBvYmplY3RzIChjdXJyZW50bHksIGRvY3VtZW50cykiLCBoYW5kbGVP
cHRpb25DaGVja0ZvcldvcmxkTGVha3MpKTsNCiAgICAgb3B0aW9uTGlzdC5hcHBlbmQoT3B0aW9u
KCItLWV4cGVyaW1lbnRhbC1mZWF0dXJlIiwgIkVuYWJsZSBleHBlcmltZW50YWwgZmVhdHVyZSIs
IGhhbmRsZU9wdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUsIHRydWUpKTsNCiAgICAgb3B0aW9uTGlz
dC5hcHBlbmQoT3B0aW9uKCItLWludGVybmFsLWZlYXR1cmUiLCAiRW5hYmxlIGludGVybmFsIGZl
YXR1cmUiLCBoYW5kbGVPcHRpb25JbnRlcm5hbEZlYXR1cmUsIHRydWUpKTsNCi0NCisjaWYgRU5B
QkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkNCisgICAgb3B0aW9uTGlzdC5hcHBlbmQo
T3B0aW9uKCItLWFjY2Vzc2liaWxpdHktaXNvbGF0ZWQtdHJlZSIsICJFbmFibGUgYWNjZXNzaWJp
bGl0eSBpc29sYXRlZCB0cmVlIG1vZGUgZm9yIHRlc3RzIiwgaGFuZGxlT3B0aW9uQWNjZXNzaWJp
bGl0eUlzb2xhdGVkVHJlZU1vZGUpKTsNCisjZW5kaWYNCisgICAgDQogICAgIG9wdGlvbkxpc3Qu
YXBwZW5kKE9wdGlvbigwLCAwLCBoYW5kbGVPcHRpb25Vbm1hdGNoZWQpKTsNCiB9DQogDQpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9PcHRpb25zLmggYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL09wdGlvbnMuaA0KaW5kZXggYTU2YmZiYzY0NjAuLmMzOWNmYWRmMmU4IDEwMDY0
NA0KLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9PcHRpb25zLmgNCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvT3B0aW9ucy5oDQpAQCAtNTIsNiArNTIsOSBAQCBzdHJ1Y3QgT3B0aW9u
cyB7DQogICAgIGJvb2wgc2hvdWxkU2hvd1RvdWNoZXMgeyBmYWxzZSB9Ow0KICAgICBib29sIGNo
ZWNrRm9yV29ybGRMZWFrcyB7IGZhbHNlIH07DQogICAgIGJvb2wgYWxsb3dBbnlIVFRQU0NlcnRp
ZmljYXRlRm9yQWxsb3dlZEhvc3RzIHsgZmFsc2UgfTsNCisjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJ
VFlfSVNPTEFURURfVFJFRSkNCisgICAgYm9vbCBhY2Nlc3NpYmlsaXR5SXNvbGF0ZWRUcmVlTW9k
ZSB7IGZhbHNlIH07DQorI2VuZGlmDQogICAgIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBwYXRo
czsNCiAgICAgc3RkOjpzZXQ8c3RkOjpzdHJpbmc+IGFsbG93ZWRIb3N0czsNCiAgICAgSGFzaE1h
cDxTdHJpbmcsIGJvb2w+IGludGVybmFsRmVhdHVyZXM7DQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmNwcA0KaW5kZXggYWVmOTZiN2FjNGQuLjRkYWMyZTY3N2YwIDEwMDY0
NA0KLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHANCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwDQpAQCAtNDc2LDcgKzQ3
Niw5IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemUoaW50IGFyZ2MsIGNvbnN0IGNo
YXIqIGFyZ3ZbXSkNCiAgICAgbV9hbGxvd0FueUhUVFBTQ2VydGlmaWNhdGVGb3JBbGxvd2VkSG9z
dHMgPSBvcHRpb25zLmFsbG93QW55SFRUUFNDZXJ0aWZpY2F0ZUZvckFsbG93ZWRIb3N0czsNCiAg
ICAgbV9pbnRlcm5hbEZlYXR1cmVzID0gb3B0aW9ucy5pbnRlcm5hbEZlYXR1cmVzOw0KICAgICBt
X2V4cGVyaW1lbnRhbEZlYXR1cmVzID0gb3B0aW9ucy5leHBlcmltZW50YWxGZWF0dXJlczsNCi0N
CisjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkNCisgICAgbV9hY2Nlc3Np
YmlsaXR5SXNvbGF0ZWRUcmVlTW9kZSA9IG9wdGlvbnMuYWNjZXNzaWJpbGl0eUlzb2xhdGVkVHJl
ZU1vZGU7DQorI2VuZGlmDQogICAgIG1fdXNpbmdTZXJ2ZXJNb2RlID0gKG1fcGF0aHMuc2l6ZSgp
ID09IDEgJiYgbV9wYXRoc1swXSA9PSAiLSIpOw0KICAgICBpZiAobV91c2luZ1NlcnZlck1vZGUp
DQogICAgICAgICBtX3ByaW50U2VwYXJhdG9ycyA9IHRydWU7DQpAQCAtOTYxLDYgKzk2MywxMCBA
QCB2b2lkIFRlc3RDb250cm9sbGVyOjpyZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVz
KGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpbw0KIA0KICAgICBXS1ByZWZlcmVuY2VzU2V0U2hvdWxk
VXNlU2VydmljZVdvcmtlclNob3J0VGltZW91dChwcmVmZXJlbmNlcywgb3B0aW9ucy5jb250ZXh0
T3B0aW9ucy51c2VTZXJ2aWNlV29ya2VyU2hvcnRUaW1lb3V0KTsNCiANCisjaWYgRU5BQkxFKEFD
Q0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkNCisgICAgV0tQcmVmZXJlbmNlc1NldElzQWNjZXNz
aWJpbGl0eUlzb2xhdGVkVHJlZUVuYWJsZWQocHJlZmVyZW5jZXMsIGFjY2Vzc2liaWxpdHlJc29s
YXRlZFRyZWVNb2RlKCkpOw0KKyNlbmRpZg0KKyAgICANCiAgICAgcGxhdGZvcm1SZXNldFByZWZl
cmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKCk7DQogfQ0KIA0KQEAgLTk5MSw2ICs5OTcsMTIgQEAg
Ym9vbCBUZXN0Q29udHJvbGxlcjo6cmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyhjb25zdCBU
ZXN0T3B0aW9ucyYgb3B0aW9ucywgUmUNCiAgICAgfQ0KICAgICBXS0RpY3Rpb25hcnlTZXRJdGVt
KHJlc2V0TWVzc2FnZUJvZHkuZ2V0KCksIGFsbG93ZWRIb3N0c0tleS5nZXQoKSwgYWxsb3dlZEhv
c3RzVmFsdWUuZ2V0KCkpOw0KIA0KKyNpZiBFTkFCTEUoQUNDRVNTSUJJTElUWV9JU09MQVRFRF9U
UkVFKQ0KKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gYXhJc29sYXRlZE1vZGVLZXkgPSBh
ZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJBY2Nlc3NpYmlsaXR5SXNvbGF0
ZWRUcmVlIikpOw0KKyAgICBXS1JldGFpblB0cjxXS0Jvb2xlYW5SZWY+IGF4SXNvbGF0ZWRNb2Rl
VmFsdWUgPSBhZG9wdFdLKFdLQm9vbGVhbkNyZWF0ZShtX2FjY2Vzc2liaWxpdHlJc29sYXRlZFRy
ZWVNb2RlKSk7DQorICAgIFdLRGljdGlvbmFyeVNldEl0ZW0ocmVzZXRNZXNzYWdlQm9keS5nZXQo
KSwgYXhJc29sYXRlZE1vZGVLZXkuZ2V0KCksIGF4SXNvbGF0ZWRNb2RlVmFsdWUuZ2V0KCkpOw0K
KyNlbmRpZg0KKyAgICANCiAgICAgaWYgKG9wdGlvbnMuanNjT3B0aW9ucy5sZW5ndGgoKSkgew0K
ICAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGpzY09wdGlvbnNLZXkgPSBhZG9wdFdL
KFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJKU0NPcHRpb25zIikpOw0KICAgICAgICAg
V0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGpzY09wdGlvbnNWYWx1ZSA9IGFkb3B0V0soV0tTdHJp
bmdDcmVhdGVXaXRoVVRGOENTdHJpbmcob3B0aW9ucy5qc2NPcHRpb25zLmNfc3RyKCkpKTsNCmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgNCmluZGV4IGYzYWE4OGFjNjI5Li4w
Nzg5OTFiYWRlZSAxMDA2NDQNCi0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuaA0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oDQpA
QCAtMTMzLDYgKzEzMywxMCBAQCBwdWJsaWM6DQogDQogICAgIHZvaWQgc2ltdWxhdGVXZWJOb3Rp
ZmljYXRpb25DbGljayh1aW50NjRfdCBub3RpZmljYXRpb25JRCk7DQogDQorI2lmIEVOQUJMRShB
Q0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpDQorICAgIGJvb2wgYWNjZXNzaWJpbGl0eUlzb2xh
dGVkVHJlZU1vZGUoKSBjb25zdCB7IHJldHVybiBtX2FjY2Vzc2liaWxpdHlJc29sYXRlZFRyZWVN
b2RlOyB9DQorI2VuZGlmDQorICAgIA0KICAgICAvLyBHZW9sb2NhdGlvbi4NCiAgICAgdm9pZCBz
ZXRHZW9sb2NhdGlvblBlcm1pc3Npb24oYm9vbCk7DQogICAgIHZvaWQgc2V0TW9ja0dlb2xvY2F0
aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNj
dXJhY3ksIGJvb2wgcHJvdmlkZXNBbHRpdHVkZSwgZG91YmxlIGFsdGl0dWRlLCBib29sIHByb3Zp
ZGVzQWx0aXR1ZGVBY2N1cmFjeSwgZG91YmxlIGFsdGl0dWRlQWNjdXJhY3ksIGJvb2wgcHJvdmlk
ZXNIZWFkaW5nLCBkb3VibGUgaGVhZGluZywgYm9vbCBwcm92aWRlc1NwZWVkLCBkb3VibGUgc3Bl
ZWQsIGJvb2wgcHJvdmlkZXNGbG9vckxldmVsLCBkb3VibGUgZmxvb3JMZXZlbCk7DQpAQCAtNTk3
LDYgKzYwMSwxMCBAQCBwcml2YXRlOg0KIA0KICAgICBib29sIG1fYWxsb3dBbnlIVFRQU0NlcnRp
ZmljYXRlRm9yQWxsb3dlZEhvc3RzIHsgZmFsc2UgfTsNCiANCisjaWYgRU5BQkxFKEFDQ0VTU0lC
SUxJVFlfSVNPTEFURURfVFJFRSkNCisgICAgYm9vbCBtX2FjY2Vzc2liaWxpdHlJc29sYXRlZFRy
ZWVNb2RlIHsgZmFsc2UgfTsNCisjZW5kaWYNCisgICAgDQogICAgIGJvb2wgbV9zaG91bGREZWNp
ZGVOYXZpZ2F0aW9uUG9saWN5QWZ0ZXJEZWxheSB7IGZhbHNlIH07DQogICAgIGJvb2wgbV9zaG91
bGREZWNpZGVSZXNwb25zZVBvbGljeUFmdGVyRGVsYXkgeyBmYWxzZSB9Ow0KIA0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392569</attachid>
            <date>2020-03-05 07:56:01 -0800</date>
            <delta_ts>2020-03-08 08:50:45 -0700</delta_ts>
            <desc>patch</desc>
            <filename>file_208629.txt</filename>
            <type>text/plain</type>
            <size>18627</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZw0KaW5kZXggOWJhNjRkZWQzNmUuLmJkZmY2OTA2ODk3IDEwMDY0NA0KLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cNCkBA
IC0xLDMgKzEsMTYgQEANCisyMDIwLTAzLTA1ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBh
cHBsZS5jb20+DQorDQorICAgICAgICBBWDogUHJvdmlkZSBhIHdheSB0byBydW4gdGVzdHMgaW4g
aXNvbGF0ZWQgdHJlZSBtb2RlDQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA4NjI5DQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjAwNzU1ODM+DQor
DQorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4NCisNCisgICAgICAgIE5vdyB0
aGF0IHdlIGhhdmUgYSB3YXkgdG8gcnVuIHRoaXMgd2l0aCB0ZXN0cywgd2UgZG9uJ3QgbmVlZCB0
byBhbGxvdyB1c2FnZSBmb3IgYW4gdW5rbm93biBjbGllbnQuDQorDQorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHA6DQorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6Y2xpZW50U3VwcG9ydHNJc29sYXRlZFRyZWUpOg0KKw0KIDIwMjAtMDMtMDQgIEFuZHJl
cyBHb256YWxleiAgPGFuZHJlc2dfMjJAYXBwbGUuY29tPg0KIA0KICAgICAgICAgRml4IGZvciB0
ZXN0IGFjY2Vzc2liaWxpdHkvbWFjL2FyaWEtbGl2ZXJlZ2lvbnMtYWRkZWRlbGVtZW50Lmh0bWwg
aW4gSXNvbGF0ZWRUcmVlIG1vZGUuDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5jcHANCmluZGV4IDRiZjRkNzRkNDdjLi45ZjNmYmQwNzdiZSAxMDA2NDQN
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHANCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHANCkBAIC03
MjEsMTAgKzcyMSw3IEBAIGJvb2wgQVhPYmplY3RDYWNoZTo6Y2xpZW50U3VwcG9ydHNJc29sYXRl
ZFRyZWUoKQ0KICAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVz
KCkuaXNBY2Nlc3NpYmlsaXR5SXNvbGF0ZWRUcmVlRW5hYmxlZCgpKQ0KICAgICAgICAgcmV0dXJu
IGZhbHNlOw0KIA0KLSAgICBBWENsaWVudFR5cGUgdHlwZSA9IF9BWEdldENsaWVudEZvckN1cnJl
bnRSZXF1ZXN0VW50cnVzdGVkKCk7DQotICAgIC8vIEZJWE1FOiBSZW1vdmUgdW5rbm93biBjbGll
bnQgYmVmb3JlIHNldHRpbmcgaXNBY2Nlc3NpYmlsaXR5SXNvbGF0ZWRUcmVlRW5hYmxlZCBpbml0
aWFsIHZhbHVlID0gdHJ1ZS4NCi0gICAgcmV0dXJuIHR5cGUgPT0ga0FYQ2xpZW50VHlwZVZvaWNl
T3Zlcg0KLSAgICAgICAgfHwgdHlwZSA9PSBrQVhDbGllbnRUeXBlVW5rbm93bjsNCisgICAgcmV0
dXJuIF9BWEdldENsaWVudEZvckN1cnJlbnRSZXF1ZXN0VW50cnVzdGVkKCkgPT0ga0FYQ2xpZW50
VHlwZVZvaWNlT3ZlcjsNCiB9DQogI2VuZGlmDQogDQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nDQppbmRleCA1M2JlOGYwNTlmNC4uMjRhOWVmMjU5NmEgMTAw
NjQ0DQotLS0gYS9Ub29scy9DaGFuZ2VMb2cNCisrKyBiL1Rvb2xzL0NoYW5nZUxvZw0KQEAgLTEs
MyArMSw0NCBAQA0KKzIwMjAtMDMtMDUgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxl
LmNvbT4NCisNCisgICAgICAgIEFYOiBQcm92aWRlIGEgd2F5IHRvIHJ1biB0ZXN0cyBpbiBpc29s
YXRlZCB0cmVlIG1vZGUNCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDg2MjkNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MDA3NTU4Mz4NCisNCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgUHJvdmlkZSB0
aGUgYWJpbGl0eSB0byBydW4gdGVzdHMgZm9yIGFjY2Vzc2liaWxpdHkgaW4gdGhlIGlzb2xhdGVk
IHRyZWUgbW9kZS4NCisgICAgICAgIFRoaXMgc2VuZHMgYSBmbGFnIG92ZXIgdG8gdGhlIGluamVj
dGVkIGJ1bmRsZSB3aGljaCBjYWxscyB0aGUgcmlnaHQgSElTZXJ2aWNlcyBvdmVycmlkZSBzbyB0
aGF0DQorICAgICAgICB0aGUgc3lzdGVtIHRoaW5rcyBpdCBpcyBpbiBpc29sYXRlZCBtb2RlLg0K
Kw0KKyAgICAgICAgKiBTY3JpcHRzL2NvbXBhcmUtd2Via2l0LWNvbmZpZ3VyYXRpb25zOg0KKyAg
ICAgICAgKGZsYWdfZm9yX2NvbXBhcmlzb24pOg0KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5Og0KKyAgICAgICAgKHBhcnNlX2FyZ3Mp
Og0KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rl
c3RzX2ludGVncmF0aW9udGVzdC5weToNCisgICAgICAgIChwYXJzZV9hcmdzKToNCisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9wb3J0L2RyaXZlci5weToNCisgICAgICAgIChEcml2ZXIuY21k
X2xpbmUpOg0KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vz
c2liaWxpdHlDb250cm9sbGVyLmNwcDoNCisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlDb250
cm9sbGVyOjpBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcik6DQorICAgICAgICAoV1RSOjpBY2Nlc3Np
YmlsaXR5Q29udHJvbGxlcjo6c2V0QWNjZXNzaWJpbGl0eUlzb2xhdGVkVHJlZU1vZGUpOg0KKyAg
ICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnVwZGF0ZUlzb2xhdGVkVHJlZU1v
ZGUpOg0KKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmV4ZWN1dGVPbkFY
VGhyZWFkSWZQb3NzaWJsZSk6DQorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaDoNCisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6DQorICAgICAgICAoV1RSOjpJ
bmplY3RlZEJ1bmRsZTo6ZGlkUmVjZWl2ZU1lc3NhZ2VUb1BhZ2UpOg0KKyAgICAgICAgKFdUUjo6
SW5qZWN0ZWRCdW5kbGU6OmJlZ2luVGVzdGluZyk6DQorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaDoNCisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9PcHRpb25zLmNwcDoNCisgICAgICAgIChXVFI6OmhhbmRsZU9wdGlvbkFjY2Vzc2li
aWxpdHlJc29sYXRlZFRyZWVNb2RlKToNCisgICAgICAgIChXVFI6Ok9wdGlvbnNIYW5kbGVyOjpP
cHRpb25zSGFuZGxlcik6DQorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvT3B0aW9ucy5oOg0K
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoNCisgICAgICAg
IChXVFI6OlRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKToNCisgICAgICAgIChXVFI6OlRlc3RD
b250cm9sbGVyOjpyZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKToNCisgICAgICAg
IChXVFI6OlRlc3RDb250cm9sbGVyOjpyZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKToNCisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOg0KKyAgICAgICAgKFdU
Ujo6VGVzdENvbnRyb2xsZXI6OmFjY2Vzc2liaWxpdHlJc29sYXRlZFRyZWVNb2RlIGNvbnN0KToN
CisNCiAyMDIwLTAzLTA0ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPg0K
IA0KICAgICAgICAgQWRkIHN5c3RlbSB0cmFjZSBwb2ludHMgYXJvdW5kIGRpc3BsYXkgbGlzdCBy
ZXBsYXkNCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2NvbXBhcmUtd2Via2l0LWNvbmZpZ3Vy
YXRpb25zIGIvVG9vbHMvU2NyaXB0cy9jb21wYXJlLXdlYmtpdC1jb25maWd1cmF0aW9ucw0KaW5k
ZXggNzFmNDM1N2ViNjguLjAwODkyNGMxMDcxIDEwMDc1NQ0KLS0tIGEvVG9vbHMvU2NyaXB0cy9j
b21wYXJlLXdlYmtpdC1jb25maWd1cmF0aW9ucw0KKysrIGIvVG9vbHMvU2NyaXB0cy9jb21wYXJl
LXdlYmtpdC1jb25maWd1cmF0aW9ucw0KQEAgLTU4LDYgKzU4LDggQEAgZGVmIG1haW4oKToNCiBk
ZWYgZmxhZ19mb3JfY29tcGFyaXNvbihjb21wYXJpc29uX25hbWUpOg0KICAgICBpZiBjb21wYXJp
c29uX25hbWUgPT0gInJlbW90ZS1sYXllci10cmVlIjoNCiAgICAgICAgIHJldHVybiAiLS1yZW1v
dGUtbGF5ZXItdHJlZSINCisgICAgaWYgY29tcGFyaXNvbl9uYW1lID09ICJhY2Nlc3NpYmlsaXR5
LWlzb2xhdGVkLXRyZWUiOg0KKyAgICAgICAgcmV0dXJuICItLWFjY2Vzc2liaWxpdHktaXNvbGF0
ZWQtdHJlZSINCiAgICAgaWYgY29tcGFyaXNvbl9uYW1lID09ICJhY2NlbGVyYXRlZC1kcmF3aW5n
IjoNCiAgICAgICAgIHJldHVybiAiLS1hY2NlbGVyYXRlZC1kcmF3aW5nIg0KICAgICBpZiBjb21w
YXJpc29uX25hbWUgPT0gIndlYmtpdDIiOg0KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5DQppbmRleCAzNjU0ZDRlMWY4
MC4uOTMyY2RjOTFhMmMgMTAwNzU1DQotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5DQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5DQpAQCAtMzAyLDYgKzMwMiw3IEBAIGRl
ZiBwYXJzZV9hcmdzKGFyZ3MpOg0KICAgICAgICAgICAgIGhlbHA9JyJ4dmZiIjogVXNlIGEgdmly
dHVhbGl6ZWQgWDExIHNlcnZlci4gInhvcmciOiBVc2UgdGhlIGN1cnJlbnQgWDExIHNlc3Npb24u
ICcNCiAgICAgICAgICAgICAgICAgICcid2VzdG9uIjogVXNlIGEgdmlydHVhbGl6ZWQgV2VzdG9u
IHNlcnZlci4gIndheWxhbmQiOiBVc2UgdGhlIGN1cnJlbnQgd2F5bGFuZCBzZXNzaW9uLicpLA0K
ICAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oIi0td29ybGQtbGVha3MiLCBhY3Rpb249InN0
b3JlX3RydWUiLCBkZWZhdWx0PUZhbHNlLCBoZWxwPSJDaGVjayBmb3Igd29ybGQgbGVha3MgKGN1
cnJlbnRseSwgb25seSBkb2N1bWVudHMpLiBEaWZmZXJzIGZyb20gLS1sZWFrcyBpbiB0aGF0IHRo
aXMgdXNlcyBpbnRlcm5hbCBpbnN0cnVtZW50YXRpb24sIHJhdGhlciB0aGFuIGV4dGVybmFsIHRv
b2xzLiIpLA0KKyAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oIi0tYWNjZXNzaWJpbGl0eS1p
c29sYXRlZC10cmVlIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVmYXVsdD1GYWxzZSwgaGVscD0i
UnVucyB0ZXN0cyBpbiBhY2Nlc3NpYmlsaXR5IGlzb2xhdGVkIHRyZWUgbW9kZS4iKSwNCiAgICAg
XSkpDQogDQogICAgIG9wdGlvbl9ncm91cF9kZWZpbml0aW9ucy5hcHBlbmQoKCJpT1MgT3B0aW9u
cyIsIFsNCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9y
dW5fd2Via2l0X3Rlc3RzX2ludGVncmF0aW9udGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfaW50ZWdyYXRpb250ZXN0LnB5DQppbmRl
eCA1NDJkOTM3NWI2Ni4uMzA4MDJiZGJmODMgMTAwNjQ0DQotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX2ludGVncmF0aW9udGVzdC5weQ0K
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0
c19pbnRlZ3JhdGlvbnRlc3QucHkNCkBAIC02MCw2ICs2MCw5IEBAIGRlZiBwYXJzZV9hcmdzKGV4
dHJhX2FyZ3M9Tm9uZSwgdGVzdHNfaW5jbHVkZWQ9RmFsc2UsIG5ld19yZXN1bHRzPUZhbHNlLCBw
cmludF9uDQogICAgIGlmIG5vdCAnLS13b3JsZC1sZWFrcycgaW4gZXh0cmFfYXJnczoNCiAgICAg
ICAgIGFyZ3MuYXBwZW5kKCctLXdvcmxkLWxlYWtzJykNCiANCisgICAgaWYgbm90ICctLWFjY2Vz
c2liaWxpdHktaXNvbGF0ZWQtdHJlZScgaW4gZXh0cmFfYXJnczoNCisgICAgICAgIGFyZ3MuYXBw
ZW5kKCctLWFjY2Vzc2liaWxpdHktaXNvbGF0ZWQtdHJlZScpDQorDQogICAgIGFyZ3MuZXh0ZW5k
KGV4dHJhX2FyZ3MpDQogICAgIGlmIG5vdCB0ZXN0c19pbmNsdWRlZDoNCiAgICAgICAgICMgV2Ug
dXNlIHRoZSBnbG9iIHRvIHRlc3QgdGhhdCBnbG9iYmluZyB3b3Jrcy4NCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZHJpdmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9wb3J0L2RyaXZlci5weQ0KaW5kZXggNWUzM2U5ODRhMjguLjhiOGFiYmU1YWVmIDEwMDY0
NA0KLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2RyaXZlci5weQ0KKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2RyaXZlci5weQ0KQEAgLTUyMCw2ICs1MjAsOCBAQCBj
bGFzcyBEcml2ZXIob2JqZWN0KToNCiAgICAgICAgICAgICBjbWQuYXBwZW5kKCctLW5vLXRpbWVv
dXQnKQ0KICAgICAgICAgaWYgc2VsZi5fcG9ydC5nZXRfb3B0aW9uKCdzaG93X3RvdWNoZXMnKToN
CiAgICAgICAgICAgICBjbWQuYXBwZW5kKCctLXNob3ctdG91Y2hlcycpDQorICAgICAgICBpZiBz
ZWxmLl9wb3J0LmdldF9vcHRpb24oJ2FjY2Vzc2liaWxpdHlfaXNvbGF0ZWRfdHJlZScpOg0KKyAg
ICAgICAgICAgIGNtZC5hcHBlbmQoJy0tYWNjZXNzaWJpbGl0eS1pc29sYXRlZC10cmVlJykNCiAN
CiAgICAgICAgIGZvciBhbGxvd2VkX2hvc3QgaW4gc2VsZi5fcG9ydC5hbGxvd2VkX2hvc3RzKCk6
DQogICAgICAgICAgICAgY21kLmFwcGVuZCgnLS1hbGxvd2VkLWhvc3QnKQ0KZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3Np
YmlsaXR5Q29udHJvbGxlci5jcHANCmluZGV4IDY4ZDk5NTg1MDFkLi41YWM4MGZkMGNlNiAxMDA2
NDQNCi0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIuY3BwDQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcA0KQEAgLTMyLDcgKzMyLDkgQEANCiAj
aW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGUuaCINCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVQYWdl
LmgiDQogI2luY2x1ZGUgIkpTQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaCINCi0NCisjaWYgRU5B
QkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkNCisjaW5jbHVkZSA8cGFsL3NwaS9tYWMv
SElTZXJ2aWNlc1NQSS5oPg0KKyNlbmRpZg0KICNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGUuaD4N
CiAjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlUGFnZS5oPg0KICNpbmNsdWRlIDxXZWJLaXQvV0tC
dW5kbGVQYWdlUHJpdmF0ZS5oPg0KQEAgLTQ2LDE1ICs0OCwyNyBAQCBSZWY8QWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXI+IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpjcmVhdGUoKQ0KIA0KIEFjY2Vz
c2liaWxpdHlDb250cm9sbGVyOjpBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcigpDQogew0KLSNpZiBQ
TEFURk9STShNQUMpDQotICAgIG1fdXNlQVhUaHJlYWQgPSBXS0FjY2Vzc2liaWxpdHlDYW5Vc2VT
ZWNvbmRhcnlBWFRocmVhZChJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5wYWdl
KCkpOw0KLSNlbmRpZg0KIH0NCiANCiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6fkFjY2Vzc2li
aWxpdHlDb250cm9sbGVyKCkNCiB7DQogfQ0KIA0KKyNpZiBFTkFCTEUoQUNDRVNTSUJJTElUWV9J
U09MQVRFRF9UUkVFKQ0KK3ZvaWQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnNldEFjY2Vzc2li
aWxpdHlJc29sYXRlZFRyZWVNb2RlKGJvb2wgZmxhZykNCit7DQorICAgIG1fYWNjZXNzaWJpbGl0
eUlzb2xhdGVkVHJlZU1vZGUgPSBmbGFnOw0KKyAgICB1cGRhdGVJc29sYXRlZFRyZWVNb2RlKCk7
DQorfQ0KKw0KK3ZvaWQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnVwZGF0ZUlzb2xhdGVkVHJl
ZU1vZGUoKQ0KK3sNCisgICAgLy8gT3ZlcnJpZGUgdG8gc2V0IGlkZW50aWZpZXIgdG8gVm9pY2VP
dmVyIHNvIHRoYXQgcmVxdWVzdHMgYXJlIGhhbmRsZWQgaW4gaXNvbGF0ZWQgbW9kZS4NCisgICAg
X0FYU2V0Q2xpZW50SWRlbnRpZmljYXRpb25PdmVycmlkZShtX2FjY2Vzc2liaWxpdHlJc29sYXRl
ZFRyZWVNb2RlID8ga0FYQ2xpZW50VHlwZVZvaWNlT3ZlciA6IGtBWENsaWVudFR5cGVOb0FjdGl2
ZVJlcXVlc3RGb3VuZCk7DQorICAgIG1fdXNlTW9ja0FYVGhyZWFkID0gV0tBY2Nlc3NpYmlsaXR5
Q2FuVXNlU2Vjb25kYXJ5QVhUaHJlYWQoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2Uo
KS0+cGFnZSgpKTsNCit9DQorI2VuZGlmDQorDQogdm9pZCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxl
cjo6bWFrZVdpbmRvd09iamVjdChKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgd2lu
ZG93T2JqZWN0LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pDQogew0KICAgICBzZXRQcm9wZXJ0eShj
b250ZXh0LCB3aW5kb3dPYmplY3QsICJhY2Nlc3NpYmlsaXR5Q29udHJvbGxlciIsIHRoaXMsIGtK
U1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxl
dGUsIGV4Y2VwdGlvbik7DQpAQCAtOTMsNyArMTA3LDggQEAgUmVmPEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ+IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpmb2N1c2VkRWxlbWVudCgpDQogDQogdm9p
ZCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6ZXhlY3V0ZU9uQVhUaHJlYWRJZlBvc3NpYmxlKEZ1
bmN0aW9uPHZvaWQoKT4mJiBmdW5jdGlvbikNCiB7DQotICAgIGlmIChtX3VzZUFYVGhyZWFkKSB7
DQorI2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpDQorICAgIGlmIChtX3Vz
ZU1vY2tBWFRocmVhZCkgew0KICAgICAgICAgQVhUaHJlYWQ6OmRpc3BhdGNoKFsmZnVuY3Rpb24s
IHRoaXNdIHsNCiAgICAgICAgICAgICBmdW5jdGlvbigpOw0KICAgICAgICAgICAgIG1fc2VtYXBo
b3JlLnNpZ25hbCgpOw0KQEAgLTEwNiw2ICsxMjEsNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlDb250
cm9sbGVyOjpleGVjdXRlT25BWFRocmVhZElmUG9zc2libGUoRnVuY3Rpb248dm9pZCgpPiYmIGZ1
bg0KICAgICAgICAgQ0ZSdW5Mb29wUnVuSW5Nb2RlKGtDRlJ1bkxvb3BEZWZhdWx0TW9kZSwgLjI1
LCBmYWxzZSk7DQogICAgICAgICBtX3NlbWFwaG9yZS53YWl0KCk7DQogICAgIH0gZWxzZQ0KKyNl
bmRpZg0KICAgICAgICAgZnVuY3Rpb24oKTsNCiB9DQogI2VuZGlmDQpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxl
ci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5
Q29udHJvbGxlci5oDQppbmRleCBlYTRjYTI4YmMxOC4uYTVkNThlY2MxNjIgMTAwNjQ0DQotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250
cm9sbGVyLmgNCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIuaA0KQEAgLTUxLDYgKzUxLDEwIEBAIHB1YmxpYzoNCiAgICAg
Ly8gRW5oYW5jZWQgYWNjZXNzaWJpbGl0eS4NCiAgICAgdm9pZCBlbmFibGVFbmhhbmNlZEFjY2Vz
c2liaWxpdHkoYm9vbCk7DQogICAgIGJvb2wgZW5oYW5jZWRBY2Nlc3NpYmlsaXR5RW5hYmxlZCgp
Ow0KKw0KKyNpZiBFTkFCTEUoQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKQ0KKyAgICB2b2lk
IHNldEFjY2Vzc2liaWxpdHlJc29sYXRlZFRyZWVNb2RlKGJvb2wpOw0KKyNlbmRpZg0KICAgICAN
CiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHBsYXRmb3JtTmFtZSgpOw0KIA0KQEAgLTkx
LDEyICs5NSwxNSBAQCBwcml2YXRlOg0KICAgICBSZWZQdHI8QWNjZXNzaWJpbGl0eU5vdGlmaWNh
dGlvbkhhbmRsZXI+IG1fZ2xvYmFsTm90aWZpY2F0aW9uSGFuZGxlcjsNCiAjZW5kaWYNCiANCi0j
aWYgUExBVEZPUk0oQ09DT0EpDQorI2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RS
RUUpDQorICAgIHZvaWQgdXBkYXRlSXNvbGF0ZWRUcmVlTW9kZSgpOw0KKyAgICANCiAgICAgLy8g
X0FYVUlFbGVtZW50VXNlU2Vjb25kYXJ5QVhUaHJlYWQgYW5kIF9BWFVJRWxlbWVudFJlcXVlc3RT
ZXJ2aWNlZEJ5U2Vjb25kYXJ5QVhUaHJlYWQNCiAgICAgLy8gZG8gbm90IHdvcmsgZm9yIFdlYktp
dFRlc3RSdW5uZXIgc2luY2UgdGhpcyBpcyBjYWxsaW5nIGRpcmVjdGx5IGludG8NCiAgICAgLy8g
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5IHZpYSBKYXZhU2NyaXB0IHdpdGhvdXQgZ29pbmcgdGhyb3Vn
aCBISVNlcnZpY2VzLg0KICAgICAvLyBUaHVzIHRvIHNpbXVsYXRlIHRoZSBiZWhhdmlvciBvZiBI
SVNlcnZpY2VzLCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlciBpcyBzcGF3bmluZyBhIHNlY29uZGFy
eSB0aHJlYWQgdG8gc2VydmljZSB0aGUgSmF2YVNjcmlwdCByZXF1ZXN0cy4NCi0gICAgYm9vbCBt
X3VzZUFYVGhyZWFkIHsgZmFsc2UgfTsNCisgICAgYm9vbCBtX3VzZU1vY2tBWFRocmVhZCB7IGZh
bHNlIH07DQorICAgIGJvb2wgbV9hY2Nlc3NpYmlsaXR5SXNvbGF0ZWRUcmVlTW9kZSB7IGZhbHNl
IH07DQogICAgIEJpbmFyeVNlbWFwaG9yZSBtX3NlbWFwaG9yZTsNCiAjZW5kaWYNCiB9Ow0KZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGUuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZS5jcHANCmluZGV4IDc3MGZlMThkOWYzLi4wMGM5ZTc1MzI4NyAxMDA2NDQNCi0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3Bw
DQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlLmNwcA0KQEAgLTI0Miw2ICsyNDIsMTEgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZTo6ZGlkUmVj
ZWl2ZU1lc3NhZ2VUb1BhZ2UoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG0NCiAg
ICAgICAgIGlmIChzaG91bGRHQykNCiAgICAgICAgICAgICBXS0J1bmRsZUdhcmJhZ2VDb2xsZWN0
SmF2YVNjcmlwdE9iamVjdHMobV9idW5kbGUpOw0KIA0KKyNpZiBFTkFCTEUoQUNDRVNTSUJJTElU
WV9JU09MQVRFRF9UUkVFKQ0KKyAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGF4SXNv
bGF0ZWRNb2RlS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiQWNj
ZXNzaWJpbGl0eUlzb2xhdGVkVHJlZSIpKTsNCisgICAgICAgIG1fYWNjZXNzaWJpbGl0eUlzb2xh
dGVkVHJlZU1vZGUgPSBXS0Jvb2xlYW5HZXRWYWx1ZShzdGF0aWNfY2FzdDxXS0Jvb2xlYW5SZWY+
KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCBheElzb2xh
dGVkTW9kZUtleS5nZXQoKSkpKTsNCisjZW5kaWYNCisgICAgICAgIA0KICAgICAgICAgV0tSZXRh
aW5QdHI8V0tTdHJpbmdSZWY+IGFsbG93ZWRIb3N0c0tleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVh
dGVXaXRoVVRGOENTdHJpbmcoIkFsbG93ZWRIb3N0cyIpKTsNCiAgICAgICAgIFdLVHlwZVJlZiBh
bGxvd2VkSG9zdHNWYWx1ZSA9IFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlE
aWN0aW9uYXJ5LCBhbGxvd2VkSG9zdHNLZXkuZ2V0KCkpOw0KICAgICAgICAgaWYgKGFsbG93ZWRI
b3N0c1ZhbHVlICYmIFdLR2V0VHlwZUlEKGFsbG93ZWRIb3N0c1ZhbHVlKSA9PSBXS0FycmF5R2V0
VHlwZUlEKCkpIHsNCkBAIC01NTcsNiArNTYyLDkgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZTo6YmVn
aW5UZXN0aW5nKFdLRGljdGlvbmFyeVJlZiBzZXR0aW5ncywgQmVnaW5nVGVzdGluZ01vZGUgdGUN
CiAgICAgbV90ZXh0SW5wdXRDb250cm9sbGVyID0gVGV4dElucHV0Q29udHJvbGxlcjo6Y3JlYXRl
KCk7DQogI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkNCiAgICAgbV9hY2Nlc3NpYmlsaXR5Q29udHJv
bGxlciA9IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpjcmVhdGUoKTsNCisjaWYgRU5BQkxFKEFD
Q0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkNCisgICAgbV9hY2Nlc3NpYmlsaXR5Q29udHJvbGxl
ci0+c2V0QWNjZXNzaWJpbGl0eUlzb2xhdGVkVHJlZU1vZGUobV9hY2Nlc3NpYmlsaXR5SXNvbGF0
ZWRUcmVlTW9kZSk7DQorI2VuZGlmDQogI2VuZGlmDQogDQogICAgIC8vIERvbid0IGNoYW5nZSBl
eHBlcmltZW50YWwgb3IgaW50ZXJuYWwgZmVhdHVyZXMgaGVyZTsgdGhvc2Ugc2hvdWxkIGJlIHNl
dCBpbiBUZXN0Q29udHJvbGxlcjo6cmVzZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcygp
Lg0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGUuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGUuaA0KaW5kZXggZDM4NGQ0ZDExNWUuLmI3NjAxNDM2ZjBjIDEwMDY0NA0KLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5o
DQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlLmgNCkBAIC0xOTcsNiArMTk3LDcgQEAgcHJpdmF0ZToNCiAgICAgYm9vbCBtX3VzZVdvcmtR
dWV1ZSB7IGZhbHNlIH07DQogICAgIGJvb2wgbV9waXhlbFJlc3VsdElzUGVuZGluZyB7IGZhbHNl
IH07DQogICAgIGJvb2wgbV9kdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIgeyBmYWxzZSB9Ow0KKyAg
ICBib29sIG1fYWNjZXNzaWJpbGl0eUlzb2xhdGVkVHJlZU1vZGUgeyBmYWxzZSB9Ow0KIA0KICAg
ICBXVEY6OlNlY29uZHMgbV90aW1lb3V0Ow0KIA0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvT3B0aW9ucy5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL09wdGlvbnMuY3Bw
DQppbmRleCA1YWU3N2Q2ZTQ3Yy4uYjZkZjM1YmQ0NjQgMTAwNjQ0DQotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL09wdGlvbnMuY3BwDQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL09w
dGlvbnMuY3BwDQpAQCAtOTksNiArOTksMTQgQEAgc3RhdGljIGJvb2wgaGFuZGxlT3B0aW9uQWxs
b3dBbnlIVFRQU0NlcnRpZmljYXRlRm9yQWxsb3dlZEhvc3RzKE9wdGlvbnMmIG9wdGlvbnMNCiAg
ICAgcmV0dXJuIHRydWU7DQogfQ0KIA0KKyNpZiBFTkFCTEUoQUNDRVNTSUJJTElUWV9JU09MQVRF
RF9UUkVFKQ0KK3N0YXRpYyBib29sIGhhbmRsZU9wdGlvbkFjY2Vzc2liaWxpdHlJc29sYXRlZFRy
ZWVNb2RlKE9wdGlvbnMmIG9wdGlvbnMsIGNvbnN0IGNoYXIqLCBjb25zdCBjaGFyKikNCit7DQor
ICAgIG9wdGlvbnMuYWNjZXNzaWJpbGl0eUlzb2xhdGVkVHJlZU1vZGUgPSB0cnVlOw0KKyAgICBy
ZXR1cm4gdHJ1ZTsNCit9DQorI2VuZGlmDQorDQogc3RhdGljIGJvb2wgaGFuZGxlT3B0aW9uQWxs
b3dlZEhvc3QoT3B0aW9ucyYgb3B0aW9ucywgY29uc3QgY2hhciosIGNvbnN0IGNoYXIqIGhvc3Qp
DQogew0KICAgICBvcHRpb25zLmFsbG93ZWRIb3N0cy5pbnNlcnQoaG9zdCk7DQpAQCAtMTU0LDcg
KzE2MiwxMCBAQCBPcHRpb25zSGFuZGxlcjo6T3B0aW9uc0hhbmRsZXIoT3B0aW9ucyYgbykNCiAg
ICAgb3B0aW9uTGlzdC5hcHBlbmQoT3B0aW9uKCItLXdvcmxkLWxlYWtzIiwgIkNoZWNrIGZvciBs
ZWFrcyBvZiB3b3JsZCBvYmplY3RzIChjdXJyZW50bHksIGRvY3VtZW50cykiLCBoYW5kbGVPcHRp
b25DaGVja0ZvcldvcmxkTGVha3MpKTsNCiAgICAgb3B0aW9uTGlzdC5hcHBlbmQoT3B0aW9uKCIt
LWV4cGVyaW1lbnRhbC1mZWF0dXJlIiwgIkVuYWJsZSBleHBlcmltZW50YWwgZmVhdHVyZSIsIGhh
bmRsZU9wdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUsIHRydWUpKTsNCiAgICAgb3B0aW9uTGlzdC5h
cHBlbmQoT3B0aW9uKCItLWludGVybmFsLWZlYXR1cmUiLCAiRW5hYmxlIGludGVybmFsIGZlYXR1
cmUiLCBoYW5kbGVPcHRpb25JbnRlcm5hbEZlYXR1cmUsIHRydWUpKTsNCi0NCisjaWYgRU5BQkxF
KEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkNCisgICAgb3B0aW9uTGlzdC5hcHBlbmQoT3B0
aW9uKCItLWFjY2Vzc2liaWxpdHktaXNvbGF0ZWQtdHJlZSIsICJFbmFibGUgYWNjZXNzaWJpbGl0
eSBpc29sYXRlZCB0cmVlIG1vZGUgZm9yIHRlc3RzIiwgaGFuZGxlT3B0aW9uQWNjZXNzaWJpbGl0
eUlzb2xhdGVkVHJlZU1vZGUpKTsNCisjZW5kaWYNCisgICAgDQogICAgIG9wdGlvbkxpc3QuYXBw
ZW5kKE9wdGlvbigwLCAwLCBoYW5kbGVPcHRpb25Vbm1hdGNoZWQpKTsNCiB9DQogDQpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9PcHRpb25zLmggYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL09wdGlvbnMuaA0KaW5kZXggYTU2YmZiYzY0NjAuLmMzOWNmYWRmMmU4IDEwMDY0NA0K
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9PcHRpb25zLmgNCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvT3B0aW9ucy5oDQpAQCAtNTIsNiArNTIsOSBAQCBzdHJ1Y3QgT3B0aW9ucyB7
DQogICAgIGJvb2wgc2hvdWxkU2hvd1RvdWNoZXMgeyBmYWxzZSB9Ow0KICAgICBib29sIGNoZWNr
Rm9yV29ybGRMZWFrcyB7IGZhbHNlIH07DQogICAgIGJvb2wgYWxsb3dBbnlIVFRQU0NlcnRpZmlj
YXRlRm9yQWxsb3dlZEhvc3RzIHsgZmFsc2UgfTsNCisjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlf
SVNPTEFURURfVFJFRSkNCisgICAgYm9vbCBhY2Nlc3NpYmlsaXR5SXNvbGF0ZWRUcmVlTW9kZSB7
IGZhbHNlIH07DQorI2VuZGlmDQogICAgIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBwYXRoczsN
CiAgICAgc3RkOjpzZXQ8c3RkOjpzdHJpbmc+IGFsbG93ZWRIb3N0czsNCiAgICAgSGFzaE1hcDxT
dHJpbmcsIGJvb2w+IGludGVybmFsRmVhdHVyZXM7DQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcA0KaW5kZXggYWVmOTZiN2FjNGQuLjRkYWMyZTY3N2YwIDEwMDY0NA0K
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHANCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwDQpAQCAtNDc2LDcgKzQ3Niw5
IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemUoaW50IGFyZ2MsIGNvbnN0IGNoYXIq
IGFyZ3ZbXSkNCiAgICAgbV9hbGxvd0FueUhUVFBTQ2VydGlmaWNhdGVGb3JBbGxvd2VkSG9zdHMg
PSBvcHRpb25zLmFsbG93QW55SFRUUFNDZXJ0aWZpY2F0ZUZvckFsbG93ZWRIb3N0czsNCiAgICAg
bV9pbnRlcm5hbEZlYXR1cmVzID0gb3B0aW9ucy5pbnRlcm5hbEZlYXR1cmVzOw0KICAgICBtX2V4
cGVyaW1lbnRhbEZlYXR1cmVzID0gb3B0aW9ucy5leHBlcmltZW50YWxGZWF0dXJlczsNCi0NCisj
aWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkNCisgICAgbV9hY2Nlc3NpYmls
aXR5SXNvbGF0ZWRUcmVlTW9kZSA9IG9wdGlvbnMuYWNjZXNzaWJpbGl0eUlzb2xhdGVkVHJlZU1v
ZGU7DQorI2VuZGlmDQogICAgIG1fdXNpbmdTZXJ2ZXJNb2RlID0gKG1fcGF0aHMuc2l6ZSgpID09
IDEgJiYgbV9wYXRoc1swXSA9PSAiLSIpOw0KICAgICBpZiAobV91c2luZ1NlcnZlck1vZGUpDQog
ICAgICAgICBtX3ByaW50U2VwYXJhdG9ycyA9IHRydWU7DQpAQCAtOTYxLDYgKzk2MywxMCBAQCB2
b2lkIFRlc3RDb250cm9sbGVyOjpyZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKGNv
bnN0IFRlc3RPcHRpb25zJiBvcHRpbw0KIA0KICAgICBXS1ByZWZlcmVuY2VzU2V0U2hvdWxkVXNl
U2VydmljZVdvcmtlclNob3J0VGltZW91dChwcmVmZXJlbmNlcywgb3B0aW9ucy5jb250ZXh0T3B0
aW9ucy51c2VTZXJ2aWNlV29ya2VyU2hvcnRUaW1lb3V0KTsNCiANCisjaWYgRU5BQkxFKEFDQ0VT
U0lCSUxJVFlfSVNPTEFURURfVFJFRSkNCisgICAgV0tQcmVmZXJlbmNlc1NldElzQWNjZXNzaWJp
bGl0eUlzb2xhdGVkVHJlZUVuYWJsZWQocHJlZmVyZW5jZXMsIGFjY2Vzc2liaWxpdHlJc29sYXRl
ZFRyZWVNb2RlKCkpOw0KKyNlbmRpZg0KKyAgICANCiAgICAgcGxhdGZvcm1SZXNldFByZWZlcmVu
Y2VzVG9Db25zaXN0ZW50VmFsdWVzKCk7DQogfQ0KIA0KQEAgLTk5MSw2ICs5OTcsMTIgQEAgYm9v
bCBUZXN0Q29udHJvbGxlcjo6cmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyhjb25zdCBUZXN0
T3B0aW9ucyYgb3B0aW9ucywgUmUNCiAgICAgfQ0KICAgICBXS0RpY3Rpb25hcnlTZXRJdGVtKHJl
c2V0TWVzc2FnZUJvZHkuZ2V0KCksIGFsbG93ZWRIb3N0c0tleS5nZXQoKSwgYWxsb3dlZEhvc3Rz
VmFsdWUuZ2V0KCkpOw0KIA0KKyNpZiBFTkFCTEUoQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVF
KQ0KKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gYXhJc29sYXRlZE1vZGVLZXkgPSBhZG9w
dFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJBY2Nlc3NpYmlsaXR5SXNvbGF0ZWRU
cmVlIikpOw0KKyAgICBXS1JldGFpblB0cjxXS0Jvb2xlYW5SZWY+IGF4SXNvbGF0ZWRNb2RlVmFs
dWUgPSBhZG9wdFdLKFdLQm9vbGVhbkNyZWF0ZShtX2FjY2Vzc2liaWxpdHlJc29sYXRlZFRyZWVN
b2RlKSk7DQorICAgIFdLRGljdGlvbmFyeVNldEl0ZW0ocmVzZXRNZXNzYWdlQm9keS5nZXQoKSwg
YXhJc29sYXRlZE1vZGVLZXkuZ2V0KCksIGF4SXNvbGF0ZWRNb2RlVmFsdWUuZ2V0KCkpOw0KKyNl
bmRpZg0KKyAgICANCiAgICAgaWYgKG9wdGlvbnMuanNjT3B0aW9ucy5sZW5ndGgoKSkgew0KICAg
ICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGpzY09wdGlvbnNLZXkgPSBhZG9wdFdLKFdL
U3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJKU0NPcHRpb25zIikpOw0KICAgICAgICAgV0tS
ZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGpzY09wdGlvbnNWYWx1ZSA9IGFkb3B0V0soV0tTdHJpbmdD
cmVhdGVXaXRoVVRGOENTdHJpbmcob3B0aW9ucy5qc2NPcHRpb25zLmNfc3RyKCkpKTsNCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgNCmluZGV4IGYzYWE4OGFjNjI5Li4wNzg5
OTFiYWRlZSAxMDA2NDQNCi0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuaA0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oDQpAQCAt
MTMzLDYgKzEzMywxMCBAQCBwdWJsaWM6DQogDQogICAgIHZvaWQgc2ltdWxhdGVXZWJOb3RpZmlj
YXRpb25DbGljayh1aW50NjRfdCBub3RpZmljYXRpb25JRCk7DQogDQorI2lmIEVOQUJMRShBQ0NF
U1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpDQorICAgIGJvb2wgYWNjZXNzaWJpbGl0eUlzb2xhdGVk
VHJlZU1vZGUoKSBjb25zdCB7IHJldHVybiBtX2FjY2Vzc2liaWxpdHlJc29sYXRlZFRyZWVNb2Rl
OyB9DQorI2VuZGlmDQorICAgIA0KICAgICAvLyBHZW9sb2NhdGlvbi4NCiAgICAgdm9pZCBzZXRH
ZW9sb2NhdGlvblBlcm1pc3Npb24oYm9vbCk7DQogICAgIHZvaWQgc2V0TW9ja0dlb2xvY2F0aW9u
UG9zaXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJh
Y3ksIGJvb2wgcHJvdmlkZXNBbHRpdHVkZSwgZG91YmxlIGFsdGl0dWRlLCBib29sIHByb3ZpZGVz
QWx0aXR1ZGVBY2N1cmFjeSwgZG91YmxlIGFsdGl0dWRlQWNjdXJhY3ksIGJvb2wgcHJvdmlkZXNI
ZWFkaW5nLCBkb3VibGUgaGVhZGluZywgYm9vbCBwcm92aWRlc1NwZWVkLCBkb3VibGUgc3BlZWQs
IGJvb2wgcHJvdmlkZXNGbG9vckxldmVsLCBkb3VibGUgZmxvb3JMZXZlbCk7DQpAQCAtNTk3LDYg
KzYwMSwxMCBAQCBwcml2YXRlOg0KIA0KICAgICBib29sIG1fYWxsb3dBbnlIVFRQU0NlcnRpZmlj
YXRlRm9yQWxsb3dlZEhvc3RzIHsgZmFsc2UgfTsNCiANCisjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJ
VFlfSVNPTEFURURfVFJFRSkNCisgICAgYm9vbCBtX2FjY2Vzc2liaWxpdHlJc29sYXRlZFRyZWVN
b2RlIHsgZmFsc2UgfTsNCisjZW5kaWYNCisgICAgDQogICAgIGJvb2wgbV9zaG91bGREZWNpZGVO
YXZpZ2F0aW9uUG9saWN5QWZ0ZXJEZWxheSB7IGZhbHNlIH07DQogICAgIGJvb2wgbV9zaG91bGRE
ZWNpZGVSZXNwb25zZVBvbGljeUFmdGVyRGVsYXkgeyBmYWxzZSB9Ow0KIA0K
</data>

          </attachment>
      

    </bug>

</bugzilla>