<?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>238253</bug_id>
          
          <creation_ts>2022-03-23 05:52:19 -0700</creation_ts>
          <short_desc>IPC stream connection sends should fail immediately when connection closes</short_desc>
          <delta_ts>2022-05-03 07:18:06 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>239959</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kimmo Kinnunen">kkinnunen</reporter>
          <assigned_to name="Kimmo Kinnunen">kkinnunen</assigned_to>
          <cc>kkinnunen</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1854134</commentid>
    <comment_count>0</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-03-23 05:52:19 -0700</bug_when>
    <thetext>IPC stream connection sends should fail immediately when connection closes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856365</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-30 05:53:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/91039929&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1865891</commentid>
    <comment_count>2</comment_count>
      <attachid>458695</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-05-02 11:25:34 -0700</bug_when>
    <thetext>Created attachment 458695
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1865893</commentid>
    <comment_count>3</comment_count>
      <attachid>458696</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-05-02 11:31:43 -0700</bug_when>
    <thetext>Created attachment 458696
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1866053</commentid>
    <comment_count>4</comment_count>
      <attachid>458722</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-05-02 23:09:00 -0700</bug_when>
    <thetext>Created attachment 458722
For landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1866110</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-05-03 07:18:04 -0700</bug_when>
    <thetext>Committed r293723 (250211@main): &lt;https://commits.webkit.org/250211@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 458722.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458695</attachid>
            <date>2022-05-02 11:25:34 -0700</date>
            <delta_ts>2022-05-02 11:31:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238253-20220502212532.patch</filename>
            <type>text/plain</type>
            <size>42596</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzNjEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQ5ZjEwMTZmNjY4MTE1ZWUz
OWZmOTkwMjM4ZWE2YzZhZmRkZjE3NDIuLjQ5NWY5ZTcxZWE1Zjc5ODEwMDJiMTUzNjcxM2FlYzgz
NmYxZTA4OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjQgQEAKKzIwMjItMDUtMDIgIEtpbW1vIEtp
bm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBJUEMgc3RyZWFtIGNvbm5l
Y3Rpb24gc2VuZHMgc2hvdWxkIGZhaWwgaW1tZWRpYXRlbHkgd2hlbiBjb25uZWN0aW9uIGNsb3Nl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4MjUz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2VuZCB0
aGUgU3RyZWFtQ2xpZW50Q29ubmVjdGlvbiBjbGllbnQgd2FpdCBzZW1hcGhvcmUgZnJvbQorICAg
ICAgICBTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uLiBUaGlzIHdheSB0aGUgY2xpZW50IHdpbGwgZmFp
bCB0aGUgd2FpdAorICAgICAgICB3aGVuIHRoZSBzZXJ2ZXIgY3Jhc2hlcy4KKworICAgICAgICBU
ZXN0OiBpcGMvc3RyZWFtLXN5bmMtY3Jhc2gtbm8tdGltZW91dC5odG1sCisKKyAgICAgICAgKiBH
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OndvcmtRdWV1ZUluaXRpYWxpemUpOgor
ICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnN0YXJ0TGlzdGVuaW5n
Rm9ySVBDKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVHUFUu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHUFU6OndvcmtRdWV1ZUluaXRpYWxpemUpOgor
ICAgICAgICAqIFBsYXRmb3JtL0lQQy9TdHJlYW1DbGllbnRDb25uZWN0aW9uLmNwcDoKKyAgICAg
ICAgKElQQzo6U3RyZWFtQ2xpZW50Q29ubmVjdGlvbjo6c2V0U2VtYXBob3Jlcyk6CisgICAgICAg
IChJUEM6OlN0cmVhbUNsaWVudENvbm5lY3Rpb246Ondha2VVcFNlcnZlcik6CisgICAgICAgICog
UGxhdGZvcm0vSVBDL1N0cmVhbUNsaWVudENvbm5lY3Rpb24uaDoKKyAgICAgICAgKElQQzo6U3Ry
ZWFtQ2xpZW50Q29ubmVjdGlvbjo6dHJ5QWNxdWlyZSk6CisgICAgICAgIChJUEM6OlN0cmVhbUNs
aWVudENvbm5lY3Rpb246OnRyeUFjcXVpcmVBbGwpOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9T
dHJlYW1Db25uZWN0aW9uQnVmZmVyLmNwcDoKKyAgICAgICAgKElQQzo6U3RyZWFtQ29ubmVjdGlv
bkJ1ZmZlcjo6U3RyZWFtQ29ubmVjdGlvbkJ1ZmZlcik6CisgICAgICAgIChJUEM6OlN0cmVhbUNv
bm5lY3Rpb25CdWZmZXI6Om9wZXJhdG9yPSk6CisgICAgICAgIChJUEM6OlN0cmVhbUNvbm5lY3Rp
b25CdWZmZXI6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChJUEM6OlN0cmVhbUNvbm5lY3Rpb25C
dWZmZXI6OmRlY29kZSk6CisgICAgICAgICogUGxhdGZvcm0vSVBDL1N0cmVhbUNvbm5lY3Rpb25C
dWZmZXIuaDoKKyAgICAgICAgKElQQzo6U3RyZWFtQ29ubmVjdGlvbkJ1ZmZlcjo6ZGF0YVNpemUg
Y29uc3QpOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9TdHJlYW1TZXJ2ZXJDb25uZWN0aW9uLmNw
cDoKKyAgICAgICAgKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbjo6cmVsZWFzZSk6CisgICAg
ICAgIChJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb246OnJlbGVhc2VBbGwpOgorICAgICAgICAq
IFBsYXRmb3JtL0lQQy9TdHJlYW1TZXJ2ZXJDb25uZWN0aW9uLmg6CisgICAgICAgICogU2hhcmVk
L0lQQ1N0cmVhbVRlc3Rlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OklQQ1N0cmVhbVRlc3Rlcjo6
aW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJLaXQ6OklQQ1N0cmVhbVRlc3Rlcjo6c3luY0NyYXNo
T25aZXJvKToKKyAgICAgICAgKiBTaGFyZWQvSVBDU3RyZWFtVGVzdGVyLmg6CisgICAgICAgICog
U2hhcmVkL0lQQ1N0cmVhbVRlc3Rlci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBTaGFyZWQvSVBD
U3RyZWFtVGVzdGVyUHJveHkuaDoKKyAgICAgICAgKiBTaGFyZWQvSVBDU3RyZWFtVGVzdGVyUHJv
eHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMUHJveHk6Ondhc0NyZWF0ZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Lm1lc3NhZ2Vz
LmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eTo6c3RyZWFtQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eTo6ZGlkSW5pdGlhbGl6ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmlu
OgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVHUFVQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdQVVByb3h5Ojp3YXNDcmVhdGVkKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlR1BVUHJveHkuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlR1BVUHJveHku
bWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0lQQ1Rlc3RpbmdBUEku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpJUENUZXN0aW5nQVBJOjpKU0lQQ1N0cmVhbUNsaWVudENv
bm5lY3Rpb246OnNldFNlbWFwaG9yZXMpOgorICAgICAgICAoV2ViS2l0OjpJUENUZXN0aW5nQVBJ
OjpKU0lQQ1N0cmVhbUNsaWVudENvbm5lY3Rpb246OnN0YXRpY0Z1bmN0aW9ucyk6CisgICAgICAg
IChXZWJLaXQ6OklQQ1Rlc3RpbmdBUEk6OkpTSVBDU3RyZWFtQ2xpZW50Q29ubmVjdGlvbjo6c2Vu
ZElQQ1N0cmVhbVRlc3RlclN5bmNDcmFzaE9uWmVybyk6CisKIDIwMjItMDQtMjkgIERpZWdvIFBp
bm8gR2FyY2lhICA8ZHBpbm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBbbWFjT1NdIFVucmV2aWV3
ZWQsIG5vbi11bmlmaWVkIGJ1aWxkIGZpeGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcAppbmRl
eCBlNGJhNjAzMjhhYjFkZDU1OGIxYzk3MmMyY2JmNTNmZTM2NTZlOGFmLi4wMjY2NmQ0MWI0MThl
ZjM1MDY2M2ZjNzk5MmVhMWU2ZDcyZDU4NDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAK
QEAgLTEzMSw5ICsxMzEsOSBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjp3b3JrUXVl
dWVJbml0aWFsaXplKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cgogICAgICAgICBtX2Nv
bnRleHQtPnNldENsaWVudCh0aGlzKTsKICAgICAgICAgU3RyaW5nIGV4dGVuc2lvbnMgPSBtX2Nv
bnRleHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRleHRHTDo6RVhURU5TSU9OUyk7CiAgICAgICAg
IFN0cmluZyByZXF1ZXN0YWJsZUV4dGVuc2lvbnMgPSBtX2NvbnRleHQtPmdldFN0cmluZyhHcmFw
aGljc0NvbnRleHRHTDo6UkVRVUVTVEFCTEVfRVhURU5TSU9OU19BTkdMRSk7Ci0gICAgICAgIHNl
bmQoTWVzc2FnZXM6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6Oldhc0NyZWF0ZWQodHJ1
ZSwgcmVtb3RlR3JhcGhpY3NDb250ZXh0R0xTdHJlYW1Xb3JrUXVldWUoKS53YWtlVXBTZW1hcGhv
cmUoKSwgZXh0ZW5zaW9ucywgcmVxdWVzdGFibGVFeHRlbnNpb25zKSk7CisgICAgICAgIHNlbmQo
TWVzc2FnZXM6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6Oldhc0NyZWF0ZWQodHJ1ZSwg
cmVtb3RlR3JhcGhpY3NDb250ZXh0R0xTdHJlYW1Xb3JrUXVldWUoKS53YWtlVXBTZW1hcGhvcmUo
KSwgbV9zdHJlYW1Db25uZWN0aW9uLT5jbGllbnRXYWl0U2VtYXBob3JlKCksIGV4dGVuc2lvbnMs
IHJlcXVlc3RhYmxlRXh0ZW5zaW9ucykpOwogICAgIH0gZWxzZQotICAgICAgICBzZW5kKE1lc3Nh
Z2VzOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5OjpXYXNDcmVhdGVkKGZhbHNlLCBJUEM6
OlNlbWFwaG9yZSB7IH0sIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCkpKTsKKyAgICAgICAg
c2VuZChNZXNzYWdlczo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6V2FzQ3JlYXRlZChm
YWxzZSwgeyB9LCB7IH0sIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCkpKTsKIH0KIAogdm9p
ZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6d29ya1F1ZXVlVW5pbml0aWFsaXplKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdC
YWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kLmNwcAppbmRleCBkNWZhMTUzYWMyYWI1ZmUzMjM0N2FkNDIzODc3ZTE1MzNj
MDdkMmJmLi43YTMxMTc1Y2YxY2Q4MGQ4MTliMjEyMzBmYjI1MTE5Y2I1NmNlNzBiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmQuY3BwCkBAIC0xMTEsNyArMTExLDcgQEAgdm9pZCBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kOjpzdGFydExpc3RlbmluZ0ZvcklQQygpCiAgICAgfQogICAgIG1fc3RyZWFtQ29u
bmVjdGlvbi0+c3RhcnRSZWNlaXZpbmdNZXNzYWdlcygqdGhpcywgTWVzc2FnZXM6OlJlbW90ZVJl
bmRlcmluZ0JhY2tlbmQ6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9yZW5kZXJpbmdCYWNrZW5k
SWRlbnRpZmllci50b1VJbnQ2NCgpKTsKICAgICBtX3N0cmVhbUNvbm5lY3Rpb24tPm9wZW4oKTsK
LSAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OkRpZENyZWF0
ZVdha2VVcFNlbWFwaG9yZUZvckRpc3BsYXlMaXN0U3RyZWFtKG1fd29ya1F1ZXVlLT53YWtlVXBT
ZW1hcGhvcmUoKSksIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOworICAgIHNlbmQoTWVz
c2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6RGlkSW5pdGlhbGl6ZShtX3dvcmtR
dWV1ZS0+d2FrZVVwU2VtYXBob3JlKCksIG1fc3RyZWFtQ29ubmVjdGlvbi0+Y2xpZW50V2FpdFNl
bWFwaG9yZSgpKSwgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7CiB9CiAKIHZvaWQgUmVt
b3RlUmVuZGVyaW5nQmFja2VuZDo6c3RvcExpc3RlbmluZ0ZvcklQQygpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUdQVS5jcHAgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUdQVS5jcHAKaW5k
ZXggODI2YmJhNWNhZjUyNDE0NDFjMDNhZDQwYWYxNGY0NzcwNWE4ZTUwYS4uYzE0MTk5OWM5ZjJl
MTZiZWI3MGYxZDgxZDEwMjY3MjUzMDU0MDY1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVHUFUuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlR1BVLmNwcApAQCAtOTQsOSArOTQs
OSBAQCB2b2lkIFJlbW90ZUdQVTo6d29ya1F1ZXVlSW5pdGlhbGl6ZSgpCiAjZW5kaWYKICAgICBp
ZiAoYmFja2luZykgewogICAgICAgICBtX2JhY2tpbmcgPSBiYWNraW5nLnJlbGVhc2VOb25OdWxs
KCk7Ci0gICAgICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZUdQVVByb3h5OjpXYXNDcmVhdGVkKHRy
dWUsIHdvcmtRdWV1ZSgpLndha2VVcFNlbWFwaG9yZSgpKSk7CisgICAgICAgIHNlbmQoTWVzc2Fn
ZXM6OlJlbW90ZUdQVVByb3h5OjpXYXNDcmVhdGVkKHRydWUsIHdvcmtRdWV1ZSgpLndha2VVcFNl
bWFwaG9yZSgpLCBtX3N0cmVhbUNvbm5lY3Rpb24tPmNsaWVudFdhaXRTZW1hcGhvcmUoKSkpOwog
ICAgIH0gZWxzZQotICAgICAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVHUFVQcm94eTo6V2FzQ3Jl
YXRlZChmYWxzZSwgd29ya1F1ZXVlKCkud2FrZVVwU2VtYXBob3JlKCkpKTsKKyAgICAgICAgc2Vu
ZChNZXNzYWdlczo6UmVtb3RlR1BVUHJveHk6Oldhc0NyZWF0ZWQoZmFsc2UsIHsgfSwgeyB9KSk7
CiB9CiAKIHZvaWQgUmVtb3RlR1BVOjp3b3JrUXVldWVVbmluaXRpYWxpemUoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU3RyZWFtQ2xpZW50Q29ubmVjdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9TdHJlYW1DbGllbnRDb25uZWN0aW9uLmNwcApp
bmRleCA4NTA2NGU1ODZlNzg1OThiZTUxZGY2YzhmZWE0MmQ4YzFhZTE2ZmNmLi40NzE0N2Q4OTc3
NDVjMWRjZmM5ZTY4NzdiMjM2YmVmMjU3N2Q3NWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL0lQQy9TdHJlYW1DbGllbnRDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtL0lQQy9TdHJlYW1DbGllbnRDb25uZWN0aW9uLmNwcApAQCAtOTYsMTggKzk2
LDE4IEBAIHZvaWQgU3RyZWFtQ2xpZW50Q29ubmVjdGlvbjo6aW52YWxpZGF0ZSgpCiAgICAgICAg
IG1fY29ubmVjdGlvbi0+aW52YWxpZGF0ZSgpOwogfQogCi12b2lkIFN0cmVhbUNsaWVudENvbm5l
Y3Rpb246OnNldFdha2VVcFNlbWFwaG9yZShJUEM6OlNlbWFwaG9yZSYmIHNlbWFwaG9yZSkKK3Zv
aWQgU3RyZWFtQ2xpZW50Q29ubmVjdGlvbjo6c2V0U2VtYXBob3JlcyhJUEM6OlNlbWFwaG9yZSYm
IHdha2VVcCwgSVBDOjpTZW1hcGhvcmUmJiBjbGllbnRXYWl0KQogewotICAgIG1fd2FrZVVwU2Vt
YXBob3JlID0gV1RGTW92ZShzZW1hcGhvcmUpOworICAgIG1fc2VtYXBob3JlcyA9IHsgV1RGTW92
ZSh3YWtlVXApLCBXVEZNb3ZlKGNsaWVudFdhaXQpIH07CiAgICAgd2FrZVVwU2VydmVyKCk7CiB9
CiAKIHZvaWQgU3RyZWFtQ2xpZW50Q29ubmVjdGlvbjo6d2FrZVVwU2VydmVyKCkKIHsKLSAgICBp
ZiAoIW1fd2FrZVVwU2VtYXBob3JlKQorICAgIGlmICghbV9zZW1hcGhvcmVzKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBtX3dha2VVcFNlbWFwaG9yZS0+c2lnbmFsKCk7CisgICAgbV9zZW1hcGhv
cmVzLT53YWtlVXAuc2lnbmFsKCk7CiAgICAgbV9yZW1haW5pbmdNZXNzYWdlQ291bnRCZWZvcmVT
ZW5kaW5nV2FrZVVwID0gMDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9JUEMvU3RyZWFtQ2xpZW50Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9J
UEMvU3RyZWFtQ2xpZW50Q29ubmVjdGlvbi5oCmluZGV4IDRlNDIwZDRmZjYxNWI1NzBlZTBiNTIy
NjkyODliMzQ2ODAxZjc3ZmUuLmJmY2RhYzcwZjMxNmEwNjY1ODdlMzIxNmJmN2U3YTJlNGQ1Mjc0
YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1N0cmVhbUNsaWVudENv
bm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9TdHJlYW1DbGllbnRD
b25uZWN0aW9uLmgKQEAgLTgzLDggKzgzLDggQEAgcHVibGljOgogICAgIH5TdHJlYW1DbGllbnRD
b25uZWN0aW9uKCk7CiAKICAgICBTdHJlYW1Db25uZWN0aW9uQnVmZmVyJiBzdHJlYW1CdWZmZXIo
KSB7IHJldHVybiBtX2J1ZmZlcjsgfQotICAgIHZvaWQgc2V0V2FrZVVwU2VtYXBob3JlKElQQzo6
U2VtYXBob3JlJiYpOwotICAgIGJvb2wgaGFzV2FrZVVwU2VtYXBob3JlKCkgY29uc3QgeyByZXR1
cm4gbV93YWtlVXBTZW1hcGhvcmUuaGFzX3ZhbHVlKCk7IH0KKyAgICB2b2lkIHNldFNlbWFwaG9y
ZXMoSVBDOjpTZW1hcGhvcmUmJiB3YWtlVXAsIElQQzo6U2VtYXBob3JlJiYgY2xpZW50V2FpdCk7
CisgICAgYm9vbCBoYXNTZW1hcGhvcmVzKCkgY29uc3QgeyByZXR1cm4gbV9zZW1hcGhvcmVzLmhh
c192YWx1ZSgpOyB9CiAKICAgICB2b2lkIHNldFdha2VVcE1lc3NhZ2VIeXN0ZXJlc2lzKHVuc2ln
bmVkIGh5c3RlcmVzaXMpCiAgICAgewpAQCAtMTU1LDcgKzE1NSwxMSBAQCBwcml2YXRlOgogICAg
IHVpbnQ2NF90IG1fY3VycmVudERlc3RpbmF0aW9uSUQgeyAwIH07CiAgICAgc2l6ZV90IG1fY2xp
ZW50T2Zmc2V0IHsgMCB9OwogICAgIFN0cmVhbUNvbm5lY3Rpb25CdWZmZXIgbV9idWZmZXI7Ci0g
ICAgc3RkOjpvcHRpb25hbDxTZW1hcGhvcmU+IG1fd2FrZVVwU2VtYXBob3JlOworICAgIHN0cnVj
dCBTZW1hcGhvcmVzIHsKKyAgICAgICAgU2VtYXBob3JlIHdha2VVcDsKKyAgICAgICAgU2VtYXBo
b3JlIGNsaWVudFdhaXQ7CisgICAgfTsKKyAgICBzdGQ6Om9wdGlvbmFsPFNlbWFwaG9yZXM+IG1f
c2VtYXBob3JlczsKICAgICB1bnNpZ25lZCBtX3JlbWFpbmluZ01lc3NhZ2VDb3VudEJlZm9yZVNl
bmRpbmdXYWtlVXAgeyAwIH07CiAgICAgdW5zaWduZWQgbV93YWtlVXBNZXNzYWdlSHlzdGVyZXNp
cyB7IDAgfTsKIApAQCAtMzA3LDcgKzMxMSw4IEBAIGlubGluZSBzdGQ6Om9wdGlvbmFsPFN0cmVh
bUNsaWVudENvbm5lY3Rpb246OlNwYW4+IFN0cmVhbUNsaWVudENvbm5lY3Rpb246OnRyeUFjCiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgQ2xpZW50TGltaXQgb2xkQ2xpZW50TGltaXQgPSBz
aGFyZWRDbGllbnRMaW1pdCgpLmNvbXBhcmVFeGNoYW5nZVN0cm9uZyhjbGllbnRMaW1pdCwgQ2xp
ZW50TGltaXQ6OmNsaWVudElzV2FpdGluZ1RhZywgc3RkOjptZW1vcnlfb3JkZXJfYWNxX3JlbCwg
c3RkOjptZW1vcnlfb3JkZXJfYWNxX3JlbCk7CiAgICAgICAgIGlmIChjbGllbnRMaW1pdCA9PSBv
bGRDbGllbnRMaW1pdCkgewotICAgICAgICAgICAgbV9idWZmZXIuY2xpZW50V2FpdFNlbWFwaG9y
ZSgpLndhaXRGb3IodGltZW91dCk7CisgICAgICAgICAgICBpZiAoIW1fc2VtYXBob3JlcyB8fCAh
bV9zZW1hcGhvcmVzLT5jbGllbnRXYWl0LndhaXRGb3IodGltZW91dCkpCisgICAgICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgICAgIGNsaWVudExpbWl0ID0gc2hhcmVk
Q2xpZW50TGltaXQoKS5sb2FkKHN0ZDo6bWVtb3J5X29yZGVyX2FjcXVpcmUpOwogICAgICAgICB9
IGVsc2UKICAgICAgICAgICAgIGNsaWVudExpbWl0ID0gb2xkQ2xpZW50TGltaXQ7CkBAIC0zMzgs
NyArMzQzLDggQEAgaW5saW5lIHN0ZDo6b3B0aW9uYWw8U3RyZWFtQ2xpZW50Q29ubmVjdGlvbjo6
U3Bhbj4gU3RyZWFtQ2xpZW50Q29ubmVjdGlvbjo6dHJ5QWMKICAgICAgICAgaWYgKCFjbGllbnRM
aW1pdCAmJiAoY2xpZW50T2Zmc2V0ID09IENsaWVudE9mZnNldDo6c2VydmVySXNTbGVlcGluZ1Rh
ZyB8fCAhY2xpZW50T2Zmc2V0KSkKICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgIG1fYnVm
ZmVyLmNsaWVudFdhaXRTZW1hcGhvcmUoKS53YWl0Rm9yKHRpbWVvdXQpOworICAgICAgICBpZiAo
IW1fc2VtYXBob3JlcyB8fCAhbV9zZW1hcGhvcmVzLT5jbGllbnRXYWl0LndhaXRGb3IodGltZW91
dCkpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICBpZiAodGltZW91
dC5kaWRUaW1lT3V0KCkpCiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1N0cmVhbUNvbm5lY3Rpb25C
dWZmZXIuY3BwIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU3RyZWFtQ29ubmVjdGlvbkJ1
ZmZlci5jcHAKaW5kZXggNzRhMTc4NDRjODYzZTA2YWE5ZDIwM2UzMmE1MmM3ZGFhOTEwN2NiNy4u
NTljNTMzMDIxOGM0OTAyNzU4ZDU2MmJkNWNjN2E5ODU3YzQ1ODhkYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlci5jcHAKQEAg
LTQ2LDEwICs0Niw5IEBAIFN0cmVhbUNvbm5lY3Rpb25CdWZmZXI6OlN0cmVhbUNvbm5lY3Rpb25C
dWZmZXIoc2l6ZV90IG1lbW9yeVNpemUpCiAgICAgQVNTRVJUKG1fZGF0YVNpemUgPD0gbWF4aW11
bVNpemUoKSk7CiB9CiAKLVN0cmVhbUNvbm5lY3Rpb25CdWZmZXI6OlN0cmVhbUNvbm5lY3Rpb25C
dWZmZXIoUmVmPFdlYktpdDo6U2hhcmVkTWVtb3J5PiYmIG1lbW9yeSwgc2l6ZV90IG1lbW9yeVNp
emUsIFNlbWFwaG9yZSYmIGNsaWVudFdhaXRTZW1hcGhvcmUpCitTdHJlYW1Db25uZWN0aW9uQnVm
ZmVyOjpTdHJlYW1Db25uZWN0aW9uQnVmZmVyKFJlZjxXZWJLaXQ6OlNoYXJlZE1lbW9yeT4mJiBt
ZW1vcnksIHNpemVfdCBtZW1vcnlTaXplKQogICAgIDogbV9kYXRhU2l6ZShtZW1vcnlTaXplIC0g
aGVhZGVyU2l6ZSgpKQogICAgICwgbV9zaGFyZWRNZW1vcnkoV1RGTW92ZShtZW1vcnkpKQotICAg
ICwgbV9jbGllbnRXYWl0U2VtYXBob3JlKFdURk1vdmUoY2xpZW50V2FpdFNlbWFwaG9yZSkpCiB7
CiAgICAgQVNTRVJUKG1fZGF0YVNpemUgPiAwKTsKICAgICBBU1NFUlQobV9kYXRhU2l6ZSA8PSBt
YXhpbXVtU2l6ZSgpKTsKQEAgLTY0LDcgKzYzLDYgQEAgU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlciYg
U3RyZWFtQ29ubmVjdGlvbkJ1ZmZlcjo6b3BlcmF0b3I9KFN0cmVhbUNvbm5lY3Rpb25CdWZmZXIK
ICAgICBpZiAodGhpcyAhPSAmb3RoZXIpIHsKICAgICAgICAgbV9kYXRhU2l6ZSA9IG90aGVyLm1f
ZGF0YVNpemU7CiAgICAgICAgIG1fc2hhcmVkTWVtb3J5ID0gV1RGTW92ZShvdGhlci5tX3NoYXJl
ZE1lbW9yeSk7Ci0gICAgICAgIG1fY2xpZW50V2FpdFNlbWFwaG9yZSA9IFdURk1vdmUob3RoZXIu
bV9jbGllbnRXYWl0U2VtYXBob3JlKTsKICAgICB9CiAgICAgcmV0dXJuICp0aGlzOwogfQpAQCAt
NzYsNyArNzQsNiBAQCB2b2lkIFN0cmVhbUNvbm5lY3Rpb25CdWZmZXI6OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAogICAgICAgICBDUkFTSCgpOwogICAgIFdlYktpdDo6U2hhcmVkTWVt
b3J5OjpJUENIYW5kbGUgaXBjSGFuZGxlIHsgV1RGTW92ZShoYW5kbGUpLCBtX3NoYXJlZE1lbW9y
eS0+c2l6ZSgpIH07CiAgICAgZW5jb2RlciA8PCBpcGNIYW5kbGU7Ci0gICAgZW5jb2RlciA8PCBt
X2NsaWVudFdhaXRTZW1hcGhvcmU7CiB9CiAKIHN0ZDo6b3B0aW9uYWw8U3RyZWFtQ29ubmVjdGlv
bkJ1ZmZlcj4gU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlcjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIp
CkBAIC04NSwxMCArODIsNiBAQCBzdGQ6Om9wdGlvbmFsPFN0cmVhbUNvbm5lY3Rpb25CdWZmZXI+
IFN0cmVhbUNvbm5lY3Rpb25CdWZmZXI6OmRlY29kZShEZWNvZGVyJiBkZQogICAgIGRlY29kZXIg
Pj4gaXBjSGFuZGxlOwogICAgIGlmICghaXBjSGFuZGxlKQogICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwotICAgIHN0ZDo6b3B0aW9uYWw8U2VtYXBob3JlPiBzZW1hcGhvcmU7Ci0gICAgZGVj
b2RlciA+PiBzZW1hcGhvcmU7Ci0gICAgaWYgKCFzZW1hcGhvcmUpCi0gICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CiAgICAgc2l6ZV90IGRhdGFTaXplID0gc3RhdGljX2Nhc3Q8c2l6ZV90Pihp
cGNIYW5kbGUtPmRhdGFTaXplKTsKICAgICBpZiAoZGF0YVNpemUgPD0gaGVhZGVyU2l6ZSgpKQog
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwpAQCAtOTcsNyArOTAsNyBAQCBzdGQ6Om9wdGlv
bmFsPFN0cmVhbUNvbm5lY3Rpb25CdWZmZXI+IFN0cmVhbUNvbm5lY3Rpb25CdWZmZXI6OmRlY29k
ZShEZWNvZGVyJiBkZQogICAgIGF1dG8gc2hhcmVkTWVtb3J5ID0gV2ViS2l0OjpTaGFyZWRNZW1v
cnk6Om1hcChpcGNIYW5kbGUtPmhhbmRsZSwgV2ViS2l0OjpTaGFyZWRNZW1vcnk6OlByb3RlY3Rp
b246OlJlYWRXcml0ZSk7CiAgICAgaWYgKHNoYXJlZE1lbW9yeS0+c2l6ZSgpIDwgZGF0YVNpemUp
CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgcmV0dXJuIFN0cmVhbUNvbm5lY3Rp
b25CdWZmZXIgeyBzaGFyZWRNZW1vcnkucmVsZWFzZU5vbk51bGwoKSwgZGF0YVNpemUsICBXVEZN
b3ZlKCpzZW1hcGhvcmUpIH07CisgICAgcmV0dXJuIFN0cmVhbUNvbm5lY3Rpb25CdWZmZXIgeyBz
aGFyZWRNZW1vcnkucmVsZWFzZU5vbk51bGwoKSwgZGF0YVNpemUgfTsKIH0KIAogU3Bhbjx1aW50
OF90PiBTdHJlYW1Db25uZWN0aW9uQnVmZmVyOjpoZWFkZXJGb3JUZXN0aW5nKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1N0cmVhbUNvbm5lY3Rpb25CdWZmZXIuaCBi
L1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1N0cmVhbUNvbm5lY3Rpb25CdWZmZXIuaAppbmRl
eCBiZjU3MmYzZjdiYTQxODhlNzhlOWNjMGRlYTFjZDA2M2JkODY3NDIzLi41NGUzYTQyOTkxNjll
Zjc5YzA0NzgyNDE1MDI0YzIyN2MyZTQ2ZTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL0lQQy9TdHJlYW1Db25uZWN0aW9uQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9JUEMvU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlci5oCkBAIC0yNiw3ICsyNiw2IEBACiAj
cHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkRlY29kZXIuaCIKLSNpbmNsdWRlICJJUENTZW1hcGhv
cmUuaCIKICNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIKICNpbmNsdWRlIDx3dGYvQXRvbWljcy5o
PgogCkBAIC0xMDksNyArMTA4LDYgQEAgcHVibGljOgogICAgIEF0b21pYzxTZXJ2ZXJPZmZzZXQ+
JiBzZXJ2ZXJPZmZzZXQoKSB7IHJldHVybiBoZWFkZXIoKS5zZXJ2ZXJPZmZzZXQ7IH0KICAgICB1
aW50OF90KiBkYXRhKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDhfdCo+KG1fc2hh
cmVkTWVtb3J5LT5kYXRhKCkpICsgaGVhZGVyU2l6ZSgpOyB9CiAgICAgc2l6ZV90IGRhdGFTaXpl
KCkgY29uc3QgeyByZXR1cm4gbV9kYXRhU2l6ZTsgfQotICAgIFNlbWFwaG9yZSYgY2xpZW50V2Fp
dFNlbWFwaG9yZSgpIHsgcmV0dXJuIG1fY2xpZW50V2FpdFNlbWFwaG9yZTsgfQogCiAgICAgc3Rh
dGljIGNvbnN0ZXhwciBzaXplX3QgbWF4aW11bVNpemUoKSB7IHJldHVybiBzdGQ6Om1pbihzdGF0
aWNfY2FzdDxzaXplX3Q+KENsaWVudE9mZnNldDo6c2VydmVySXNTbGVlcGluZ1RhZyksIHN0YXRp
Y19jYXN0PHNpemVfdD4oQ2xpZW50T2Zmc2V0OjpzZXJ2ZXJJc1NsZWVwaW5nVGFnKSkgLSAxOyB9
CiAgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwpAQCAtMTE5LDcgKzExNyw3IEBAIHB1
YmxpYzoKICAgICBTcGFuPHVpbnQ4X3Q+IGRhdGFGb3JUZXN0aW5nKCk7CiAKIHByaXZhdGU6Ci0g
ICAgU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlcihSZWY8V2ViS2l0OjpTaGFyZWRNZW1vcnk+JiYsIHNp
emVfdCBtZW1vcnlTaXplLCBTZW1hcGhvcmUmJiBjbGllbnRXYWl0U2VtYXBob3JlKTsKKyAgICBT
dHJlYW1Db25uZWN0aW9uQnVmZmVyKFJlZjxXZWJLaXQ6OlNoYXJlZE1lbW9yeT4mJiwgc2l6ZV90
IG1lbW9yeVNpemUpOwogCiAgICAgc3RydWN0IEhlYWRlciB7CiAgICAgICAgIEF0b21pYzxTZXJ2
ZXJPZmZzZXQ+IHNlcnZlck9mZnNldDsKQEAgLTEzMiw3ICsxMzAsNiBAQCBwcml2YXRlOgogCiAg
ICAgc2l6ZV90IG1fZGF0YVNpemUgeyAwIH07CiAgICAgUmVmPFdlYktpdDo6U2hhcmVkTWVtb3J5
PiBtX3NoYXJlZE1lbW9yeTsKLSAgICBTZW1hcGhvcmUgbV9jbGllbnRXYWl0U2VtYXBob3JlOwog
fTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU3RyZWFtU2Vy
dmVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9TdHJlYW1TZXJ2
ZXJDb25uZWN0aW9uLmNwcAppbmRleCBiYTVjZjc0ZmYxNGNiMDhmNWZjM2FiNjFhNjM3YTA3NjVl
OWNjNzdkLi5kMmYxZDIyYTFkZjA5NTE4MTQ4YTI3ZDMzNmE4MzBkY2QyZTNjY2E4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9TdHJlYW1TZXJ2ZXJDb25uZWN0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9TdHJlYW1TZXJ2ZXJDb25uZWN0aW9u
LmNwcApAQCAtMTcyLDcgKzE3Miw3IEBAIHZvaWQgU3RyZWFtU2VydmVyQ29ubmVjdGlvbjo6cmVs
ZWFzZShzaXplX3QgcmVhZFNpemUpCiAgICAgU2VydmVyT2Zmc2V0IG9sZFNlcnZlck9mZnNldCA9
IHNoYXJlZFNlcnZlck9mZnNldCgpLmV4Y2hhbmdlKHNlcnZlck9mZnNldCwgc3RkOjptZW1vcnlf
b3JkZXJfYWNxX3JlbCk7CiAgICAgLy8gSWYgdGhlIGNsaWVudCB3cm90ZSBvdmVyIHNlcnZlck9m
ZnNldCwgaXQgbWVhbnMgdGhlIGNsaWVudCBpcyB3YWl0aW5nLgogICAgIGlmIChvbGRTZXJ2ZXJP
ZmZzZXQgPT0gU2VydmVyT2Zmc2V0OjpjbGllbnRJc1dhaXRpbmdUYWcpCi0gICAgICAgIG1fYnVm
ZmVyLmNsaWVudFdhaXRTZW1hcGhvcmUoKS5zaWduYWwoKTsKKyAgICAgICAgbV9jbGllbnRXYWl0
U2VtYXBob3JlLnNpZ25hbCgpOwogICAgIGVsc2UKICAgICAgICAgQVNTRVJUKCEob2xkU2VydmVy
T2Zmc2V0ICYgU2VydmVyT2Zmc2V0OjpjbGllbnRJc1dhaXRpbmdUYWcpKTsKIApAQCAtMTg1LDcg
KzE4NSw3IEBAIHZvaWQgU3RyZWFtU2VydmVyQ29ubmVjdGlvbjo6cmVsZWFzZUFsbCgpCiAgICAg
U2VydmVyT2Zmc2V0IG9sZFNlcnZlck9mZnNldCA9IHNoYXJlZFNlcnZlck9mZnNldCgpLmV4Y2hh
bmdlKHN0YXRpY19jYXN0PFNlcnZlck9mZnNldD4oMCksIHN0ZDo6bWVtb3J5X29yZGVyX2FjcV9y
ZWwpOwogICAgIC8vIElmIHRoZSBjbGllbnQgd3JvdGUgb3ZlciBzZXJ2ZXJPZmZzZXQsIGl0IG1l
YW5zIHRoZSBjbGllbnQgaXMgd2FpdGluZy4KICAgICBpZiAob2xkU2VydmVyT2Zmc2V0ID09IFNl
cnZlck9mZnNldDo6Y2xpZW50SXNXYWl0aW5nVGFnKQotICAgICAgICBtX2J1ZmZlci5jbGllbnRX
YWl0U2VtYXBob3JlKCkuc2lnbmFsKCk7CisgICAgICAgIG1fY2xpZW50V2FpdFNlbWFwaG9yZS5z
aWduYWwoKTsKICAgICBlbHNlCiAgICAgICAgIEFTU0VSVCghKG9sZFNlcnZlck9mZnNldCAmIFNl
cnZlck9mZnNldDo6Y2xpZW50SXNXYWl0aW5nVGFnKSk7CiAgICAgbV9zZXJ2ZXJPZmZzZXQgPSAw
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU3RyZWFtU2VydmVyQ29u
bmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU3RyZWFtU2VydmVyQ29ubmVj
dGlvbi5oCmluZGV4IGQ2YWQ1MGEwYjA4ZTFlMjhkMDZjNGZkNTE2YjlhZmVkZTg1NzNmODUuLmUz
ZTJhYmFiMTMyNjVhNmIwZjY0NzI4YzZhODRkOGEzYTQ2MTUwMTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1N0cmVhbVNlcnZlckNvbm5lY3Rpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9TdHJlYW1TZXJ2ZXJDb25uZWN0aW9uLmgKQEAgLTI4LDYg
KzI4LDcgQEAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiRGVjb2Rlci5oIgog
I2luY2x1ZGUgIkVuY29kZXIuaCIKKyNpbmNsdWRlICJJUENTZW1hcGhvcmUuaCIKICNpbmNsdWRl
ICJNZXNzYWdlTmFtZXMuaCIKICNpbmNsdWRlICJTdHJlYW1Db25uZWN0aW9uQnVmZmVyLmgiCiAj
aW5jbHVkZSAiU3RyZWFtQ29ubmVjdGlvbkVuY29kZXIuaCIKQEAgLTg2LDYgKzg3LDggQEAgcHVi
bGljOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KICAg
ICB2b2lkIHNlbmRTeW5jUmVwbHkoQ29ubmVjdGlvbjo6U3luY1JlcXVlc3RJRCwgQXJndW1lbnRz
JiYuLi4pOwogCisgICAgU2VtYXBob3JlJiBjbGllbnRXYWl0U2VtYXBob3JlKCkgeyByZXR1cm4g
bV9jbGllbnRXYWl0U2VtYXBob3JlOyB9CisKIHByaXZhdGU6CiAgICAgZW51bSBjbGFzcyBIYXNE
ZWRpY2F0ZWRDb25uZWN0aW9uIDogYm9vbCB7IE5vLCBZZXMgfTsKICAgICBTdHJlYW1TZXJ2ZXJD
b25uZWN0aW9uKFJlZjxDb25uZWN0aW9uPiYmLCBTdHJlYW1Db25uZWN0aW9uQnVmZmVyJiYsIFN0
cmVhbUNvbm5lY3Rpb25Xb3JrUXVldWUmLCBIYXNEZWRpY2F0ZWRDb25uZWN0aW9uKTsKQEAgLTEy
MCw2ICsxMjMsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgZGlzcGF0Y2hPdXRPZlN0cmVhbU1lc3Nh
Z2UoRGVjb2RlciYmKTsKIAogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsK
KyAgICBTZW1hcGhvcmUgbV9jbGllbnRXYWl0U2VtYXBob3JlOwogICAgIFN0cmVhbUNvbm5lY3Rp
b25Xb3JrUXVldWUmIG1fd29ya1F1ZXVlOwogCiAgICAgc2l6ZV90IG1fc2VydmVyT2Zmc2V0IHsg
MCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvSVBDU3RyZWFtVGVzdGVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0lQQ1N0cmVhbVRlc3Rlci5jcHAKaW5kZXggODIyNjdl
MjFhZGU2MmE5YjY2NzQ1ZjNkYzg3YTZjYTVjMzBiMmVmYS4uMDI4NWQwMGE0MDljYWQ1YmIyZjhk
ODAzZmFmNDU1NTRhZjBkOWU4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvSVBD
U3RyZWFtVGVzdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9JUENTdHJlYW1UZXN0
ZXIuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIHZvaWQgSVBDU3RyZWFtVGVzdGVyOjppbml0aWFsaXpl
KCkKICAgICBtX3N0cmVhbUNvbm5lY3Rpb24tPnN0YXJ0UmVjZWl2aW5nTWVzc2FnZXMoKnRoaXMs
IE1lc3NhZ2VzOjpJUENTdHJlYW1UZXN0ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pZGVu
dGlmaWVyLnRvVUludDY0KCkpOwogICAgIG1fc3RyZWFtQ29ubmVjdGlvbi0+b3BlbigpOwogICAg
IHdvcmtRdWV1ZSgpLmRpc3BhdGNoKFt0aGlzXSB7Ci0gICAgICAgIG1fc3RyZWFtQ29ubmVjdGlv
bi0+Y29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OklQQ1N0cmVhbVRlc3RlclByb3h5OjpXYXND
cmVhdGVkKHdvcmtRdWV1ZSgpLndha2VVcFNlbWFwaG9yZSgpKSwgbV9pZGVudGlmaWVyKTsKKyAg
ICAgICAgbV9zdHJlYW1Db25uZWN0aW9uLT5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6SVBD
U3RyZWFtVGVzdGVyUHJveHk6Oldhc0NyZWF0ZWQod29ya1F1ZXVlKCkud2FrZVVwU2VtYXBob3Jl
KCksIG1fc3RyZWFtQ29ubmVjdGlvbi0+Y2xpZW50V2FpdFNlbWFwaG9yZSgpKSwgbV9pZGVudGlm
aWVyKTsKICAgICB9KTsKIH0KIApAQCAtODcsNiArODcsMjAgQEAgdm9pZCBJUENTdHJlYW1UZXN0
ZXI6OnN5bmNNZXNzYWdlUmV0dXJuaW5nU2hhcmVkTWVtb3J5MSh1aW50MzJfdCBieXRlQ291bnQs
IENvbXAKICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3VsdCkpOwogfQogCit2b2lk
IElQQ1N0cmVhbVRlc3Rlcjo6c3luY0NyYXNoT25aZXJvKGludDMyX3QgdmFsdWUsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoaW50MzJfdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYg
KCF2YWx1ZSkgeworICAgICAgICAvLyBVc2UgZXhpdCBzbyB0aGF0IHdlIGRvbid0IGxlYXZlIGEg
Y3Jhc2ggcmVwb3J0LgorI2lmIE9TKFdJTkRPV1MpCisgICAgICAgIC8vIENhbGxpbmcgX2V4aXQg
aW4gbm9uLW1haW4gdGhyZWFkcyBtYXkgY2F1c2UgYSBkZWFkbG9jayBpbiBXVEY6OlRocmVhZDo6
VGhyZWFkSG9sZGVyOjp+VGhyZWFkSG9sZGVyLgorICAgICAgICBUZXJtaW5hdGVQcm9jZXNzKEdl
dEN1cnJlbnRQcm9jZXNzKCksIEVYSVRfU1VDQ0VTUyk7CisjZWxzZQorICAgICAgICBfZXhpdChF
WElUX1NVQ0NFU1MpOworI2VuZGlmCisgICAgfQorICAgIGNvbXBsZXRpb25IYW5kbGVyKHZhbHVl
KTsKK30KKwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0lQ
Q1N0cmVhbVRlc3Rlci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvSVBDU3RyZWFtVGVzdGVyLmgK
aW5kZXggMDQ0MDhkZGMzOGU3YjBmMjQ3YTkyZTZmMjI1MzdkOGMyYTk5ZWQxYS4uNjc4ZTI4NzAy
M2Q4Y2ZmOGNhNDc1ZDU2ZjZjYTAxZmE0YWUwODIwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvSVBDU3RyZWFtVGVzdGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvSVBD
U3RyZWFtVGVzdGVyLmgKQEAgLTU4LDYgKzU4LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIE1lc3Nh
Z2VzLgogICAgIHZvaWQgc3luY01lc3NhZ2VSZXR1cm5pbmdTaGFyZWRNZW1vcnkxKHVpbnQzMl90
IGJ5dGVDb3VudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTaGFyZWRNZW1vcnk6OklQQ0hhbmRs
ZSk+JiYpOworICAgIHZvaWQgc3luY0NyYXNoT25aZXJvKGludDMyX3QsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoaW50MzJfdCk+JiYpOwogCiAgICAgY29uc3QgUmVmPElQQzo6U3RyZWFtQ29ubmVj
dGlvbldvcmtRdWV1ZT4gbV93b3JrUXVldWU7CiAgICAgY29uc3QgUmVmPElQQzo6U3RyZWFtU2Vy
dmVyQ29ubmVjdGlvbj4gbV9zdHJlYW1Db25uZWN0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvSVBDU3RyZWFtVGVzdGVyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvSVBDU3RyZWFtVGVzdGVyLm1lc3NhZ2VzLmluCmluZGV4IDk0ZjYxYzA1MDFiNGRmNzhm
ZDM2MmUxYThhMTg3Y2ZkYTQ5MjdkNjUuLjNkZTUxYTNlOWNkNDFhNjIyMDk3YTFkYTNiYWIwYTlh
NTMxMmI3YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0lQQ1N0cmVhbVRlc3Rl
ci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9JUENTdHJlYW1UZXN0ZXIu
bWVzc2FnZXMuaW4KQEAgLTI0LDYgKzI0LDcgQEAKIAogbWVzc2FnZXMgLT4gSVBDU3RyZWFtVGVz
dGVyIE5vdFJlZkNvdW50ZWQgU3RyZWFtIHsKICAgICBTeW5jTWVzc2FnZVJldHVybmluZ1NoYXJl
ZE1lbW9yeTEodWludDMyX3QgYnl0ZUNvdW50KSAtPiAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6OklQ
Q0hhbmRsZSBoYW5kbGUpIFN5bmNocm9ub3VzIE5vdFN0cmVhbUVuY29kYWJsZVJlcGx5CisgICAg
U3luY0NyYXNoT25aZXJvKGludDMyX3QgdmFsdWUpIC0+IChpbnQzMl90IHNhbWVWYWx1ZSkgU3lu
Y2hyb25vdXMKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9J
UENTdHJlYW1UZXN0ZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvSVBDU3RyZWFtVGVz
dGVyUHJveHkuaAppbmRleCBlYjdjMjdjZDRkZDJhZGQxMzIxYmQzNGI0YzNiMzAxZjIyNGU5MDc2
Li4xYWJiMmJmNmJhMjFlZmE0ZjY2M2JiNjBlOWJjZDUyYjdkNGUzMzBjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9JUENTdHJlYW1UZXN0ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0lQQ1N0cmVhbVRlc3RlclByb3h5LmgKQEAgLTQ5LDcgKzQ5LDcgQEAgcHJp
dmF0ZToKICAgICB+SVBDU3RyZWFtVGVzdGVyUHJveHkoKSA9IGRlZmF1bHQ7CiAKICAgICAvLyBN
ZXNzYWdlcy4KLSAgICB2b2lkIHdhc0NyZWF0ZWQoSVBDOjpTZW1hcGhvcmUmJikgeyB9CisgICAg
dm9pZCB3YXNDcmVhdGVkKElQQzo6U2VtYXBob3JlJiYsIElQQzo6U2VtYXBob3JlJiYpIHsgfQog
fTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvSVBDU3RyZWFtVGVzdGVy
UHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9JUENTdHJlYW1UZXN0ZXJQ
cm94eS5tZXNzYWdlcy5pbgppbmRleCA2NTg4MDBhM2QzMmJkNTE0ZjQyNWE0MWJiZjcxNDA0YzJj
YTQ5YWYyLi5iNmZiMzk3MWEwZDRjZTVkOGU0Mjg4OWY3MzM4YjA4ZDk5NGIxODE5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9JUENTdHJlYW1UZXN0ZXJQcm94eS5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9JUENTdHJlYW1UZXN0ZXJQcm94eS5tZXNzYWdl
cy5pbgpAQCAtMjMsNyArMjMsNyBAQAogI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCiAKIG1l
c3NhZ2VzIC0+IElQQ1N0cmVhbVRlc3RlclByb3h5IE5vdFJlZkNvdW50ZWQgewotICAgIHZvaWQg
V2FzQ3JlYXRlZChJUEM6OlNlbWFwaG9yZSBzdHJlYW1XYWtlVXBTZW1hcGhvcmUpCisgICAgdm9p
ZCBXYXNDcmVhdGVkKElQQzo6U2VtYXBob3JlIHN0cmVhbVdha2VVcFNlbWFwaG9yZSwgSVBDOjpT
ZW1hcGhvcmUgc3RyZWFtQ2xpZW50V2FpdFNlbWFwaG9yZSkKIH0KIAogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmNwcAppbmRleCBjZmRlMGI4MGQ4YWVlZjYz
NDUxM2MwMWY5NTkxYjY1MzI1NjAyMDNiLi4yMzY5M2Q5ODRjODllOTMxMjU0YWI2ODI1YTEwMzVk
ZTYwNzUyOGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5jcHAK
QEAgLTMxNyw3ICszMTcsNyBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6Om11
bHRpRHJhd0VsZW1lbnRzSW5zdGFuY2VkQU5HTEUoR0NHTGVudW0gbW9kZQogICAgIH0KIH0KIAot
dm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Ojp3YXNDcmVhdGVkKGJvb2wgZGlkU3Vj
Y2VlZCwgSVBDOjpTZW1hcGhvcmUmJiBzZW1hcGhvcmUsIFN0cmluZyYmIGF2YWlsYWJsZUV4dGVu
c2lvbnMsIFN0cmluZyYmIHJlcXVlc3RlZEV4dGVuc2lvbnMpCit2b2lkIFJlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHk6Ondhc0NyZWF0ZWQoYm9vbCBkaWRTdWNjZWVkLCBJUEM6OlNlbWFwaG9y
ZSYmIHdha2VVcFNlbWFwaG9yZSwgSVBDOjpTZW1hcGhvcmUmJiBjbGllbnRXYWl0U2VtYXBob3Jl
LCBTdHJpbmcmJiBhdmFpbGFibGVFeHRlbnNpb25zLCBTdHJpbmcmJiByZXF1ZXN0ZWRFeHRlbnNp
b25zKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0KCkpCiAgICAgICAgIHJldHVybjsKQEAgLTMy
Niw3ICszMjYsNyBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6Ondhc0NyZWF0
ZWQoYm9vbCBkaWRTdWNjZWVkLCBJUEM6OlNlbWFwaG9yZSYmCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAgICAgQVNTRVJUKCFtX2RpZEluaXRpYWxpemUpOwotICAgIG1fc3RyZWFtQ29ubmVjdGlv
bi5zZXRXYWtlVXBTZW1hcGhvcmUoV1RGTW92ZShzZW1hcGhvcmUpKTsKKyAgICBtX3N0cmVhbUNv
bm5lY3Rpb24uc2V0U2VtYXBob3JlcyhXVEZNb3ZlKHdha2VVcFNlbWFwaG9yZSksIFdURk1vdmUo
Y2xpZW50V2FpdFNlbWFwaG9yZSkpOwogICAgIG1fZGlkSW5pdGlhbGl6ZSA9IHRydWU7CiAgICAg
aW5pdGlhbGl6ZShhdmFpbGFibGVFeHRlbnNpb25zLCByZXF1ZXN0ZWRFeHRlbnNpb25zKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmgKaW5kZXggNGI0ODcyMjY0YTg2
YjRlMWYxM2U0YTY0NDlmNDgwNTJjNDg2ZWIzMC4uYjZlNjJiMTcyYWZmNTNkYTVkMTY2YzdhNDcw
YjE4NGJlODA3ZWQ4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmgK
QEAgLTM0Niw3ICszNDYsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgR3JhcGhpY3NDb250ZXh0R0xJZGVu
dGlmaWVyIG1fZ3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyIHsgR3JhcGhpY3NDb250ZXh0R0xJ
ZGVudGlmaWVyOjpnZW5lcmF0ZSgpIH07CiBwcml2YXRlOgogICAgIC8vIE1lc3NhZ2VzIHRvIGJl
IHJlY2VpdmVkLgotICAgIHZvaWQgd2FzQ3JlYXRlZChib29sIGRpZFN1Y2NlZWQsIElQQzo6U2Vt
YXBob3JlJiYsIFN0cmluZyYmIGF2YWlsYWJsZUV4dGVuc2lvbnMsIFN0cmluZyYmIHJlcXVlc3Rl
ZEV4dGVuc2lvbnMpOworICAgIHZvaWQgd2FzQ3JlYXRlZChib29sIGRpZFN1Y2NlZWQsIElQQzo6
U2VtYXBob3JlJiYsIElQQzo6U2VtYXBob3JlJiYsIFN0cmluZyYmIGF2YWlsYWJsZUV4dGVuc2lv
bnMsIFN0cmluZyYmIHJlcXVlc3RlZEV4dGVuc2lvbnMpOwogICAgIHZvaWQgd2FzTG9zdCgpOwog
ICAgIHZvaWQgd2FzQ2hhbmdlZCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHkubWVzc2FnZXMuaW4KaW5kZXggZjQzZWMwYTJlYWEzODRlNGVkZThkZDQ0
MGQ5ZWZlMDI4YWNiN2JmZi4uOThiY2UxZTIwMDNhYzU4YWY2ZDI4NTZkNjI4YjUyNTNiYjgzY2E4
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVHcmFwaGljc0NvbnRleHRHTFByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5tZXNz
YWdlcy5pbgpAQCAtMjMsNyArMjMsNyBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5B
QkxFKFdFQkdMKQogCiBtZXNzYWdlcyAtPiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5IE5v
dFJlZkNvdW50ZWQgewotICAgIHZvaWQgV2FzQ3JlYXRlZChib29sIGRpZFN1Y2NlZWQsIElQQzo6
U2VtYXBob3JlIHN0cmVhbVdha2VVcFNlbWFwaG9yZSwgU3RyaW5nIGF2YWlsYWJsZUV4dGVuc2lv
bnMsIFN0cmluZyByZXF1ZXN0YWJsZUV4dGVuc2lvbnMpCisgICAgdm9pZCBXYXNDcmVhdGVkKGJv
b2wgZGlkU3VjY2VlZCwgSVBDOjpTZW1hcGhvcmUgc3RyZWFtV2FrZVVwU2VtYXBob3JlLCBJUEM6
OlNlbWFwaG9yZSBzdHJlYW1DbGllbnRXYWl0U2VtYXBob3JlLCBTdHJpbmcgYXZhaWxhYmxlRXh0
ZW5zaW9ucywgU3RyaW5nIHJlcXVlc3RhYmxlRXh0ZW5zaW9ucykKICAgICB2b2lkIFdhc0xvc3Qo
KQogICAgIHZvaWQgV2FzQ2hhbmdlZCgpCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eS5jcHAKaW5kZXggZmFlMjgxZTUwNjk1Mzg5ZTE0NjkyOGE2Mzc0NGJmNTIwZjU4MjJl
NC4uNTcwMzFkY2UxYzY1MTAxZWE5YjY4NmU2MDYxNWE3M2IxYzkwNDgxMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcApAQCAtNDE3LDE4ICs0MTcsMTggQEAgUmVu
ZGVyaW5nQmFja2VuZElkZW50aWZpZXIgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjplbnN1
cmVCYWNrZW5kQ3JlYXRlZCgpCiBJUEM6OlN0cmVhbUNsaWVudENvbm5lY3Rpb24mIFJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eTo6c3RyZWFtQ29ubmVjdGlvbigpCiB7CiAgICAgZW5zdXJlR1BV
UHJvY2Vzc0Nvbm5lY3Rpb24oKTsKLSAgICBpZiAoVU5MSUtFTFkoIW1fc3RyZWFtQ29ubmVjdGlv
bi0+aGFzV2FrZVVwU2VtYXBob3JlKCkpKQotICAgICAgICBtX3N0cmVhbUNvbm5lY3Rpb24tPndh
aXRGb3JBbmREaXNwYXRjaEltbWVkaWF0ZWx5PE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHk6OkRpZENyZWF0ZVdha2VVcFNlbWFwaG9yZUZvckRpc3BsYXlMaXN0U3RyZWFtPihy
ZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcigpLCAzX3MsIElQQzo6V2FpdEZvck9wdGlvbjo6SW50
ZXJydXB0V2FpdGluZ0lmU3luY01lc3NhZ2VBcnJpdmVzKTsKKyAgICBpZiAoVU5MSUtFTFkoIW1f
c3RyZWFtQ29ubmVjdGlvbi0+aGFzU2VtYXBob3JlcygpKSkKKyAgICAgICAgbV9zdHJlYW1Db25u
ZWN0aW9uLT53YWl0Rm9yQW5kRGlzcGF0Y2hJbW1lZGlhdGVseTxNZXNzYWdlczo6UmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5OjpEaWRJbml0aWFsaXplPihyZW5kZXJpbmdCYWNrZW5kSWRlbnRp
ZmllcigpLCAzX3MsIElQQzo6V2FpdEZvck9wdGlvbjo6SW50ZXJydXB0V2FpdGluZ0lmU3luY01l
c3NhZ2VBcnJpdmVzKTsKICAgICByZXR1cm4gKm1fc3RyZWFtQ29ubmVjdGlvbjsKIH0KIAotdm9p
ZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmRpZENyZWF0ZVdha2VVcFNlbWFwaG9yZUZv
ckRpc3BsYXlMaXN0U3RyZWFtKElQQzo6U2VtYXBob3JlJiYgc2VtYXBob3JlKQordm9pZCBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmRpZEluaXRpYWxpemUoSVBDOjpTZW1hcGhvcmUmJiB3
YWtlVXAsIElQQzo6U2VtYXBob3JlJiYgY2xpZW50V2FpdCkKIHsKICAgICBpZiAoIW1fc3RyZWFt
Q29ubmVjdGlvbikgewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KLSAgICBtX3N0cmVhbUNvbm5lY3Rpb24tPnNldFdha2VVcFNlbWFwaG9yZShX
VEZNb3ZlKHNlbWFwaG9yZSkpOworICAgIG1fc3RyZWFtQ29ubmVjdGlvbi0+c2V0U2VtYXBob3Jl
cyhXVEZNb3ZlKHdha2VVcCksIFdURk1vdmUoY2xpZW50V2FpdCkpOwogfQogCiBib29sIFJlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6aXNDYWNoZWQoY29uc3QgSW1hZ2VCdWZmZXImIGltYWdl
QnVmZmVyKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgKaW5kZXgg
NmYyNjI5ZTE5NDg5MzJkNTQ0ZGRlY2M3YWI1NjM1ZTM1YWRhZjgxNS4uNTU5ZDJmYWU0ODUyOTFh
Mjc4NWQwZjRmYWU0MmVkZmRiOTk1YTY1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eS5oCkBAIC0xMzEsNyArMTMxLDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc0dQVVBy
b2Nlc3NDb25uZWN0aW9uQ2xvc2VkKCkgY29uc3QgeyByZXR1cm4gIW1fZ3B1UHJvY2Vzc0Nvbm5l
Y3Rpb247IH0KIAotICAgIHZvaWQgZGlkQ3JlYXRlV2FrZVVwU2VtYXBob3JlRm9yRGlzcGxheUxp
c3RTdHJlYW0oSVBDOjpTZW1hcGhvcmUmJik7CisgICAgdm9pZCBkaWRJbml0aWFsaXplKElQQzo6
U2VtYXBob3JlJiYgd2FrZVVwU2VtYXBob3JlLCBJUEM6OlNlbWFwaG9yZSYmIGNsaWVudFdhaXRT
ZW1hcGhvcmUpOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4KICAgICB2
b2lkIHNlbmRUb1N0cmVhbShUJiYgbWVzc2FnZSwgT2JqZWN0SWRlbnRpZmllcjxVPiBpZGVudGlm
aWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdl
cy5pbgppbmRleCA3OWFiZGJlMjQyNjRiM2JhNGMzZDVhZjQyMmU5YzczZmQ4ZmFjZjMxLi4zMTYx
ZTdkMDZmNDI2NTM2MWQxYTZlOTU0ZjA2N2UwMmFlYjNkYzIxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjYsNyArMjYsNyBA
QCBtZXNzYWdlcyAtPiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkgTm90UmVmQ291bnRlZCB7
CiAgICAgRGlkQ3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKFdlYktpdDo6SW1hZ2VCdWZmZXJCYWNr
ZW5kSGFuZGxlIGhhbmRsZSwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKICAgICBEaWRGbHVzaChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHRGbHVzaElkZW50aWZpZXIgZmx1c2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQogICAgIERp
ZEZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKFdlYktpdDo6UmVuZGVyaW5nVXBkYXRlSUQgZGlkUmVu
ZGVyaW5nVXBkYXRlSUQpCi0gICAgRGlkQ3JlYXRlV2FrZVVwU2VtYXBob3JlRm9yRGlzcGxheUxp
c3RTdHJlYW0oSVBDOjpTZW1hcGhvcmUgd2FrZVVwU2VtYXBob3JlKQorICAgIERpZEluaXRpYWxp
emUoSVBDOjpTZW1hcGhvcmUgd2FrZVVwU2VtYXBob3JlLCBJUEM6OlNlbWFwaG9yZSBjbGllbnRX
YWl0U2VtYXBob3JlKQogfQogCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
R1BVUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJH
UFUvUmVtb3RlR1BVUHJveHkuY3BwCmluZGV4IGE2ZDg4MTJiYWRkN2Q5MDVkYjdjYjNkNjEwYTQ1
YjA2YmYzM2VjZjUuLjU5OTNkOTQ4ZmZlNzNlNmQ5YmM1OWJlOWYwZThjNGUzZjk2OGNjODYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1Jl
bW90ZUdQVVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1dlYkdQVS9SZW1vdGVHUFVQcm94eS5jcHAKQEAgLTc1LDEwICs3NSwxMCBAQCB2b2lkIFJl
bW90ZUdQVVByb3h5OjphYmFuZG9uR1BVUHJvY2VzcygpCiAgICAgbV9sb3N0ID0gdHJ1ZTsKIH0K
IAotdm9pZCBSZW1vdGVHUFVQcm94eTo6d2FzQ3JlYXRlZChib29sIGRpZFN1Y2NlZWQsIElQQzo6
U2VtYXBob3JlJiYgc2VtYXBob3JlKQordm9pZCBSZW1vdGVHUFVQcm94eTo6d2FzQ3JlYXRlZChi
b29sIGRpZFN1Y2NlZWQsIElQQzo6U2VtYXBob3JlJiYgd2FrZVVwU2VtYXBob3JlLCBJUEM6OlNl
bWFwaG9yZSYmIGNsaWVudFdhaXRTZW1hcGhvcmUpCiB7CiAgICAgQVNTRVJUKCFtX2RpZEluaXRp
YWxpemUpOwotICAgIG1fc3RyZWFtQ29ubmVjdGlvbi5zZXRXYWtlVXBTZW1hcGhvcmUoV1RGTW92
ZShzZW1hcGhvcmUpKTsKKyAgICBtX3N0cmVhbUNvbm5lY3Rpb24uc2V0U2VtYXBob3JlcyhXVEZN
b3ZlKHdha2VVcFNlbWFwaG9yZSksIFdURk1vdmUoY2xpZW50V2FpdFNlbWFwaG9yZSkpOwogICAg
IG1fZGlkSW5pdGlhbGl6ZSA9IHRydWU7CiAgICAgbV9sb3N0ID0gIWRpZFN1Y2NlZWQ7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9S
ZW1vdGVHUFVQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlR1BVUHJveHkuaAppbmRleCA3ODNjMDYyM2QxYzUwNDhjMmE4Yzc2NGZiMmZm
ZTdkZmQ4ZDQyYWRlLi4wNmI0Y2YzZDVmYjFlNTBiNTI2MThmMTE5OGU5YjI4ODFmZjI3YzdkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9S
ZW1vdGVHUFVQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZUdQVVByb3h5LmgKQEAgLTc2LDcgKzc2LDcgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGdwdVByb2Nlc3NDb25uZWN0aW9uRGlkQ2xvc2UoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24m
KSBmaW5hbDsKIAogICAgIC8vIE1lc3NhZ2VzIHRvIGJlIHJlY2VpdmVkLgotICAgIHZvaWQgd2Fz
Q3JlYXRlZChib29sIGRpZFN1Y2NlZWQsIElQQzo6U2VtYXBob3JlJiYpOworICAgIHZvaWQgd2Fz
Q3JlYXRlZChib29sIGRpZFN1Y2NlZWQsIElQQzo6U2VtYXBob3JlJiYgd2FrZVVwU2VtYXBob3Jl
LCBJUEM6OlNlbWFwaG9yZSYmIGNsaWVudFdhaXRTZW1hcGhvcmUpOwogCiAgICAgdm9pZCB3YWl0
VW50aWxJbml0aWFsaXplZCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVHUFVQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUdQVVByb3h5Lm1l
c3NhZ2VzLmluCmluZGV4IDAwMzVlOTU1ZTA2ZjdmZTFmNmYyOGNiY2QyY2E5ZjQ1MThhYjhiYjUu
LjZjNjVjNzdiYjYxMTFiYzM2ZDBiZWY1YWM2NjU4MmIxNmRjZjhhYzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUdQVVByb3h5
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
V2ViR1BVL1JlbW90ZUdQVVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yMyw3ICsyMyw3IEBACiAjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKQogCiBtZXNzYWdlcyAtPiBSZW1vdGVHUFVQcm94eSBOb3RSZWZD
b3VudGVkIHsKLSAgICB2b2lkIFdhc0NyZWF0ZWQoYm9vbCBkaWRTdWNjZWVkLCBJUEM6OlNlbWFw
aG9yZSBzdHJlYW1XYWtlVXBTZW1hcGhvcmUpCisgICAgdm9pZCBXYXNDcmVhdGVkKGJvb2wgZGlk
U3VjY2VlZCwgSVBDOjpTZW1hcGhvcmUgc3RyZWFtV2FrZVVwU2VtYXBob3JlLCBJUEM6OlNlbWFw
aG9yZSBzdHJlYW1DbGllbnRXYWl0U2VtYXBob3JlKQogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0lQQ1Rlc3RpbmdBUEkuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvSVBDVGVzdGluZ0FQSS5jcHAKaW5kZXggNzIy
ZmNlMjRkNTlhMGNkZTgxY2NkMTJhNmYwM2ZjMzExMDA3ZTNlNi4uYzQxNmU0MmQ1MDU1ZjY0YThk
ZDk3MzhjZjhhNGE5MzFjNzZhNjhlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvSVBDVGVzdGluZ0FQSS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvSVBDVGVzdGluZ0FQSS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRl
ICJGcmFtZUluZm9EYXRhLmgiCiAjaW5jbHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNp
bmNsdWRlICJJUENTZW1hcGhvcmUuaCIKKyNpbmNsdWRlICJJUENTdHJlYW1UZXN0ZXJNZXNzYWdl
cy5oIgogI2luY2x1ZGUgIkpTSVBDQmluZGluZy5oIgogI2luY2x1ZGUgIk1lc3NhZ2VBcmd1bWVu
dERlc2NyaXB0aW9ucy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oIgpA
QCAtMTkzLDcgKzE5NCw3IEBAIHByaXZhdGU6CiAgICAgICAgICwgbV9zdHJlYW1Db25uZWN0aW9u
IHsgY29ubmVjdGlvbiwgYnVmZmVyU2l6ZSB9CiAgICAgeyB9CiAKLSAgICB2b2lkIHNldFdha2VV
cFNlbWFwaG9yZShKU0lQQ1NlbWFwaG9yZSYganNTZW1hcGhvcmUpIHsgbV9zdHJlYW1Db25uZWN0
aW9uLnNldFdha2VVcFNlbWFwaG9yZShqc1NlbWFwaG9yZS5leGNoYW5nZSgpKTsgfQorICAgIHZv
aWQgc2V0U2VtYXBob3JlcyhKU0lQQ1NlbWFwaG9yZSYganNXYWtlVXBTZW1hcGhvcmUsIEpTSVBD
U2VtYXBob3JlJiBqc0NsaWVudFdhaXRTZW1hcGhvcmUpIHsgbV9zdHJlYW1Db25uZWN0aW9uLnNl
dFNlbWFwaG9yZXMoanNXYWtlVXBTZW1hcGhvcmUuZXhjaGFuZ2UoKSwganNDbGllbnRXYWl0U2Vt
YXBob3JlLmV4Y2hhbmdlKCkpOyB9CiAKICAgICBzdGF0aWMgSlNDbGFzc1JlZiB3cmFwcGVyQ2xh
c3MoKTsKICAgICBzdGF0aWMgSlNJUENTdHJlYW1DbGllbnRDb25uZWN0aW9uKiB1bndyYXAoSlNP
YmplY3RSZWYpOwpAQCAtMjA0LDkgKzIwNSwxMCBAQCBwcml2YXRlOgogCiAgICAgc3RhdGljIGNv
bnN0IEpTU3RhdGljRnVuY3Rpb24qIHN0YXRpY0Z1bmN0aW9ucygpOwogICAgIHN0YXRpYyBKU1Zh
bHVlUmVmIHN0cmVhbUJ1ZmZlcihKU0NvbnRleHRSZWYsIEpTT2JqZWN0UmVmLCBKU09iamVjdFJl
ZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1
bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKTsKLSAgICBzdGF0aWMgSlNWYWx1ZVJlZiBz
ZXRXYWtlVXBTZW1hcGhvcmUoSlNDb250ZXh0UmVmLCBKU09iamVjdFJlZiwgSlNPYmplY3RSZWYg
dGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1l
bnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbik7CisgICAgc3RhdGljIEpTVmFsdWVSZWYgc2V0
U2VtYXBob3JlcyhKU0NvbnRleHRSZWYsIEpTT2JqZWN0UmVmLCBKU09iamVjdFJlZiB0aGlzT2Jq
ZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwg
SlNWYWx1ZVJlZiogZXhjZXB0aW9uKTsKICAgICBzdGF0aWMgSlNWYWx1ZVJlZiBzZW5kTWVzc2Fn
ZShKU0NvbnRleHRSZWYsIEpTT2JqZWN0UmVmLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXpl
X3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJl
ZiogZXhjZXB0aW9uKTsKICAgICBzdGF0aWMgSlNWYWx1ZVJlZiBzZW5kU3luY01lc3NhZ2UoSlND
b250ZXh0UmVmLCBKU09iamVjdFJlZiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFy
Z3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4
Y2VwdGlvbik7CisgICAgc3RhdGljIEpTVmFsdWVSZWYgc2VuZElQQ1N0cmVhbVRlc3RlclN5bmND
cmFzaE9uWmVybyhKU0NvbnRleHRSZWYsIEpTT2JqZWN0UmVmLCBKU09iamVjdFJlZiB0aGlzT2Jq
ZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwg
SlNWYWx1ZVJlZiogZXhjZXB0aW9uKTsKIAogICAgIFdlYWtQdHI8SlNJUEM+IG1fanNJUEM7CiAg
ICAgSVBDOjpTdHJlYW1DbGllbnRDb25uZWN0aW9uIG1fc3RyZWFtQ29ubmVjdGlvbjsKQEAgLTg1
Myw5ICs4NTUsMTAgQEAgY29uc3QgSlNTdGF0aWNGdW5jdGlvbiogSlNJUENTdHJlYW1DbGllbnRD
b25uZWN0aW9uOjpzdGF0aWNGdW5jdGlvbnMoKQogewogICAgIHN0YXRpYyBjb25zdCBKU1N0YXRp
Y0Z1bmN0aW9uIGZ1bmN0aW9uc1tdID0gewogICAgICAgICB7ICJzdHJlYW1CdWZmZXIiLCBzdHJl
YW1CdWZmZXIsIGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB8IGtKU1Byb3BlcnR5QXR0
cmlidXRlUmVhZE9ubHkgfSwKLSAgICAgICAgeyAic2V0V2FrZVVwU2VtYXBob3JlIiwgc2V0V2Fr
ZVVwU2VtYXBob3JlLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZVJlYWRPbmx5IH0sCisgICAgICAgIHsgInNldFNlbWFwaG9yZXMiLCBzZXRTZW1h
cGhvcmVzLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZVJlYWRPbmx5IH0sCiAgICAgICAgIHsgInNlbmRNZXNzYWdlIiwgc2VuZE1lc3NhZ2UsIGtK
U1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9u
bHkgfSwKICAgICAgICAgeyAic2VuZFN5bmNNZXNzYWdlIiwgc2VuZFN5bmNNZXNzYWdlLCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5
IH0sCisgICAgICAgIHsgInNlbmRJUENTdHJlYW1UZXN0ZXJTeW5jQ3Jhc2hPblplcm8iLCBzZW5k
SVBDU3RyZWFtVGVzdGVyU3luY0NyYXNoT25aZXJvLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnRE
ZWxldGUgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IH0sCiAgICAgICAgIHsgMCwgMCwg
MCB9CiAgICAgfTsKICAgICByZXR1cm4gZnVuY3Rpb25zOwpAQCAtODc0LDcgKzg3Nyw3IEBAIEpT
VmFsdWVSZWYgSlNJUENTdHJlYW1DbGllbnRDb25uZWN0aW9uOjpzdHJlYW1CdWZmZXIoSlNDb250
ZXh0UmVmIGNvbnRleHQsIEpTT2JqCiAgICAgcmV0dXJuIEpTSVBDU3RyZWFtQ29ubmVjdGlvbkJ1
ZmZlcjo6Y3JlYXRlKCpqc1N0cmVhbUNvbm5lY3Rpb24pLT5jcmVhdGVKU1dyYXBwZXIoY29udGV4
dCk7CiB9CiAKLUpTVmFsdWVSZWYgSlNJUENTdHJlYW1DbGllbnRDb25uZWN0aW9uOjpzZXRXYWtl
VXBTZW1hcGhvcmUoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmLCBKU09iamVjdFJl
ZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1
bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQorSlNWYWx1ZVJlZiBKU0lQQ1N0cmVhbUNs
aWVudENvbm5lY3Rpb246OnNldFNlbWFwaG9yZXMoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2Jq
ZWN0UmVmLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29u
c3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAg
IGF1dG8qIGdsb2JhbE9iamVjdCA9IHRvSlMoY29udGV4dCk7CiAgICAgSlNDOjpKU0xvY2tIb2xk
ZXIgbG9jayhnbG9iYWxPYmplY3QtPnZtKCkpOwpAQCAtODg0LDE4ICs4ODcsMjQgQEAgSlNWYWx1
ZVJlZiBKU0lQQ1N0cmVhbUNsaWVudENvbm5lY3Rpb246OnNldFdha2VVcFNlbWFwaG9yZShKU0Nv
bnRleHRSZWYgY29udGV4dCwKICAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNv
bnRleHQpOwogICAgIH0KIAotICAgIGlmIChhcmd1bWVudENvdW50IDwgMSkgewotICAgICAgICAq
ZXhjZXB0aW9uID0gY3JlYXRlVHlwZUVycm9yKGNvbnRleHQsICJNdXN0IHNwZWNpZnkgYW4gSVBD
IHNlbWFwaG9yZSBhcyB0aGUgZmlyc3QgYXJndW1lbnQiX3MpOworICAgIGlmIChhcmd1bWVudENv
dW50IDwgMikgeworICAgICAgICAqZXhjZXB0aW9uID0gY3JlYXRlVHlwZUVycm9yKGNvbnRleHQs
ICJNdXN0IHNwZWNpZnkgYW4gSVBDIHNlbWFwaG9yZSBhcyB0aGUgZmlyc3QgYW5kIHNlY29uZCBh
cmd1bWVudCJfcyk7CisgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0
KTsKKyAgICB9CisKKyAgICBSZWZQdHIganNXYWtlVXBTZW1hcGhvcmUgPSBKU0lQQ1NlbWFwaG9y
ZTo6dG9XcmFwcGVkKGNvbnRleHQsIGFyZ3VtZW50c1swXSk7CisgICAgaWYgKCFqc1dha2VVcFNl
bWFwaG9yZSkgeworICAgICAgICAqZXhjZXB0aW9uID0gY3JlYXRlVHlwZUVycm9yKGNvbnRleHQs
ICJXcm9uZyB0eXBlIChleHBlY3RlZCBTZW1hcGhvcmUpIl9zKTsKICAgICAgICAgcmV0dXJuIEpT
VmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogICAgIH0KIAotICAgIFJlZlB0ciBqc1NlbWFw
aG9yZSA9IEpTSVBDU2VtYXBob3JlOjp0b1dyYXBwZWQoY29udGV4dCwgYXJndW1lbnRzWzBdKTsK
LSAgICBpZiAoIWpzU2VtYXBob3JlKSB7CisgICAgUmVmUHRyIGpzQ2xpZW50V2FpdFNlbWFwaG9y
ZSA9IEpTSVBDU2VtYXBob3JlOjp0b1dyYXBwZWQoY29udGV4dCwgYXJndW1lbnRzWzFdKTsKKyAg
ICBpZiAoIWpzQ2xpZW50V2FpdFNlbWFwaG9yZSkgewogICAgICAgICAqZXhjZXB0aW9uID0gY3Jl
YXRlVHlwZUVycm9yKGNvbnRleHQsICJXcm9uZyB0eXBlIChleHBlY3RlZCBTZW1hcGhvcmUpIl9z
KTsKICAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogICAgIH0K
IAotICAgIGpzU3RyZWFtQ29ubmVjdGlvbi0+c2V0V2FrZVVwU2VtYXBob3JlKCpqc1NlbWFwaG9y
ZSk7CisgICAganNTdHJlYW1Db25uZWN0aW9uLT5zZXRTZW1hcGhvcmVzKCpqc1dha2VVcFNlbWFw
aG9yZSwgKmpzQ2xpZW50V2FpdFNlbWFwaG9yZSk7CiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5k
ZWZpbmVkKGNvbnRleHQpOwogfQogCkBAIC0xMDE4LDYgKzEwMjcsNjEgQEAgSlNWYWx1ZVJlZiBK
U0lQQ1N0cmVhbUNsaWVudENvbm5lY3Rpb246OnNlbmRTeW5jTWVzc2FnZShKU0NvbnRleHRSZWYg
Y29udGV4dCwgSlMKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9
CiAKKy8vIEZJWE1FKGh0dHA6Ly93ZWJraXQub3JnL2IvMjM3MTk3KTogQ2Fubm90IHNlbmQgYXJi
aXRyYXJ5IG1lc3NhZ2VzLCBzbyB3ZSBoYXJkLWNvZGUgdGhpcyBvbmUgdG8gYmUgYWJsZSB0byBz
ZW5kIGl0LgorSlNWYWx1ZVJlZiBKU0lQQ1N0cmVhbUNsaWVudENvbm5lY3Rpb246OnNlbmRJUENT
dHJlYW1UZXN0ZXJTeW5jQ3Jhc2hPblplcm8oSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0
UmVmLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3Qg
SlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAgIGF1
dG8qIGdsb2JhbE9iamVjdCA9IHRvSlMoY29udGV4dCk7CisgICAgSlNDOjpKU0xvY2tIb2xkZXIg
bG9jayhnbG9iYWxPYmplY3QtPnZtKCkpOworCisgICAgUmVmUHRyIGpzU3RyZWFtQ29ubmVjdGlv
biA9IHRvV3JhcHBlZChjb250ZXh0LCB0aGlzT2JqZWN0KTsKKyAgICBpZiAoIWpzU3RyZWFtQ29u
bmVjdGlvbikgeworICAgICAgICAqZXhjZXB0aW9uID0gY3JlYXRlVHlwZUVycm9yKGNvbnRleHQs
ICJXcm9uZyB0eXBlIl9zKTsKKyAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNv
bnRleHQpOworICAgIH0KKworICAgIGlmIChhcmd1bWVudENvdW50IDwgMykgeworICAgICAgICAq
ZXhjZXB0aW9uID0gY3JlYXRlVHlwZUVycm9yKGNvbnRleHQsICJNdXN0IHNwZWNpZnkgZGVzdGlu
YXRpb24gSUQsIHZhbHVlLCBhbmQgdGltZW91dCBhcyB0aGUgZmlyc3QgdGhyZWUgYXJndW1lbnRz
Il9zKTsKKyAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworICAg
IH0KKworICAgIGF1dG8gZGVzdGluYXRpb25JRCA9IGRlc3RpbmF0aW9uSURGcm9tQXJndW1lbnQo
Z2xvYmFsT2JqZWN0LCBhcmd1bWVudHNbMF0sIGV4Y2VwdGlvbik7CisgICAgaWYgKCFkZXN0aW5h
dGlvbklEKQorICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CisK
KyAgICBpbnQzMl90IHZhbHVlOworICAgIHsKKyAgICAgICAgYXV0byBqc1ZhbHVlID0gdG9KUyhn
bG9iYWxPYmplY3QsIGFyZ3VtZW50c1sxXSk7CisgICAgICAgIGlmICghanNWYWx1ZS5pc051bWJl
cigpKSB7CisgICAgICAgICAgICAqZXhjZXB0aW9uID0gY3JlYXRlVHlwZUVycm9yKGNvbnRleHQs
ICJ2YWx1ZSBtdXN0IGJlIGEgbnVtYmVyIl9zKTsKKyAgICAgICAgICAgIHJldHVybiBKU1ZhbHVl
TWFrZVVuZGVmaW5lZChjb250ZXh0KTsKKyAgICAgICAgfQorICAgICAgICB2YWx1ZSA9IHN0YXRp
Y19jYXN0PGludDMyX3Q+KGpzVmFsdWUuYXNOdW1iZXIoKSk7CisgICAgfQorCisgICAgU2Vjb25k
cyB0aW1lb3V0RHVyYXRpb247CisgICAgeworICAgICAgICBhdXRvIGpzVmFsdWUgPSB0b0pTKGds
b2JhbE9iamVjdCwgYXJndW1lbnRzWzJdKTsKKyAgICAgICAgaWYgKCFqc1ZhbHVlLmlzTnVtYmVy
KCkpIHsKKyAgICAgICAgICAgICpleGNlcHRpb24gPSBjcmVhdGVUeXBlRXJyb3IoY29udGV4dCwg
InRpbWVvdXQgbXVzdCBiZSBhIG51bWJlciJfcyk7CisgICAgICAgICAgICByZXR1cm4gSlNWYWx1
ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CisgICAgICAgIH0KKyAgICAgICAgdGltZW91dER1cmF0
aW9uID0gU2Vjb25kcyB7IGpzVmFsdWUuYXNOdW1iZXIoKSB9OworICAgIH0KKworICAgIGF1dG8m
IHN0cmVhbUNvbm5lY3Rpb24gPSBqc1N0cmVhbUNvbm5lY3Rpb24tPmNvbm5lY3Rpb24oKTsKKyAg
ICBpbnQzMl90IHJlc3VsdFZhbHVlID0gMDsKKyAgICBlbnVtIEpTSVBDU3RyZWFtVGVzdGVySWRl
bnRpZmllclR5cGUgeyB9OworICAgIGF1dG8gZGVzdGluYXRpb24gPSBtYWtlT2JqZWN0SWRlbnRp
ZmllcjxKU0lQQ1N0cmVhbVRlc3RlcklkZW50aWZpZXJUeXBlPigqZGVzdGluYXRpb25JRCk7CisK
KyAgICBhdXRvIHJlc3VsdCA9IHN0cmVhbUNvbm5lY3Rpb24uc2VuZFN5bmMoTWVzc2FnZXM6OklQ
Q1N0cmVhbVRlc3Rlcjo6U3luY0NyYXNoT25aZXJvKHZhbHVlKSwgTWVzc2FnZXM6OklQQ1N0cmVh
bVRlc3Rlcjo6U3luY0NyYXNoT25aZXJvOjpSZXBseShyZXN1bHRWYWx1ZSksIGRlc3RpbmF0aW9u
LCB0aW1lb3V0RHVyYXRpb24pOworICAgIGlmICghcmVzdWx0KSB7CisgICAgICAgICpleGNlcHRp
b24gPSBjcmVhdGVUeXBlRXJyb3IoY29udGV4dCwgInN5bmMgc2VuZCBmYWlsZWQiX3MpOworICAg
ICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CisgICAgfQorCisgICAg
cmV0dXJuIEpTVmFsdWVNYWtlTnVtYmVyKGNvbnRleHQsIHJlc3VsdFZhbHVlKTsKK30KKwogSlNP
YmplY3RSZWYgSlNJUENTdHJlYW1Db25uZWN0aW9uQnVmZmVyOjpjcmVhdGVKU1dyYXBwZXIoSlND
b250ZXh0UmVmIGNvbnRleHQpCiB7CiAgICAgYXV0byogZ2xvYmFsT2JqZWN0ID0gdG9KUyhjb250
ZXh0KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCA0YjNjZTVmMmQxNzQ2NzFiMjE2MTM4YTlhMjUwYjQ1YzM3ZjMyMWVjLi42
YTAzYjVkN2RiMGNmM2RkNzZjYmYzNzY1NDBhYjAzZjc5OGI3ZjA4IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTQgQEAKKzIwMjItMDUtMDIgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4K
KworICAgICAgICBJUEMgc3RyZWFtIGNvbm5lY3Rpb24gc2VuZHMgc2hvdWxkIGZhaWwgaW1tZWRp
YXRlbHkgd2hlbiBjb25uZWN0aW9uIGNsb3NlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4MjUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBpcGMvc3RyZWFtLXN5bmMtY3Jhc2gtbm8tdGltZW91dC1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGlwYy9zdHJlYW0tc3luYy1jcmFzaC1uby10
aW1lb3V0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGlwYy9zdHJlYW0tc3luYy1yZXBseS1zaGFy
ZWQtbWVtb3J5Lmh0bWw6IEFkanVzdCBhZnRlciBBUEkgY2hhbmdlLgorCiAyMDIyLTA0LTI5ICBZ
b3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBIVE1MTWVkaWFFbGVt
ZW50IGNhbiBnZXQgbXVsdGlwbGUgaW50ZXJydXB0aW9ucyBmb3IgaW52aXNpYmxlIGF1dG9wbGF5
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMv
VGVzdEV4cGVjdGF0aW9ucwppbmRleCA0ZDIyNTg1YTQzZDhkZjE2MDNkNThhZWQ4MGZkNjU5MGIz
ZWIxMDAzLi5mOThhNmM5YzI1NjEyMTU1ZmY4ZmVmMTdjNDlkMDNkOWIxMzlmZDU2IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMKQEAgLTUwOTMsNiArNTA5Myw5IEBAIHdlYmtpdC5vcmcvYi8yMzMzNDQgaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvbW90aW9uL29mZnNldC1yb3RhdGUtMDAy
CiAjIElQQyB0ZXN0IGZhaWxpbmcgaW4gRGVidWcgbW9kZSBkdWUgdG8gYXNzZXJ0LgogWyBEZWJ1
ZyBdIGlwYy9zZW5kLWludmFsaWQtbWVzc2FnZS5odG1sIFsgU2tpcCBdCiAKKyMgUmVzdGFydGVk
IEdQVVAgc2VlbXMgdG8gY3Jhc2guCit3ZWJraXQub3JnL2IvMjM5OTU5IGlwYy9zdHJlYW0tc3lu
Yy1jcmFzaC1uby10aW1lb3V0Lmh0bWwgWyBTa2lwIF0KKwogIyBUaGUgdGVzdCBpbnZva2VzIHJh
bmRvbSBtZXNzYWdlcywgcG90ZW50aWFsbHkgcHJvZHVjZXMgcmFuZG9tIHJlc3VsdHMuCiBpcGMv
c3RhcnQtbWVzc2FnZS10ZXN0aW5nLmh0bWwgWyBTa2lwIF0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaXBjL3N0cmVhbS1zeW5jLWNyYXNoLW5vLXRpbWVvdXQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaXBjL3N0cmVhbS1zeW5jLWNyYXNoLW5vLXRpbWVvdXQtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmNhNTk3OTc4NzMxZTIyNDgwYjg0ZTM0NGQ4MWJmNGE4Yjk5NmVmZDkKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pcGMvc3RyZWFtLXN5bmMtY3Jhc2gtbm8tdGltZW91
dC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitDT05TT0xFIE1FU1NBR0U6IFR5cGVFcnJv
cjogQmFkIHR5cGUgbmFtZQorCitGQUlMIFRlc3QgdGhhdCBzdHJlYW0gc3luYyBtZXNzYWdlIGNy
YXNoIGlzIG5vdGljZWQgaW1tZWRpYXRlbHkgVHlwZUVycm9yOiBCYWQgdHlwZSBuYW1lCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2lwYy9zdHJlYW0tc3luYy1jcmFzaC1uby10aW1lb3V0Lmh0
bWwgYi9MYXlvdXRUZXN0cy9pcGMvc3RyZWFtLXN5bmMtY3Jhc2gtbm8tdGltZW91dC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjYwZjk3MmRlN2MxYjhiNjI3MzZjOGM0NTJlZDRmYmQ3YjJhYTAyZmIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pcGMvc3RyZWFtLXN5bmMtY3Jhc2gtbm8tdGltZW91
dC5odG1sCkBAIC0wLDAgKzEsMzcgQEAKKzwhZG9jdHlwZSBodG1sPjwhLS0gd2Via2l0LXRlc3Qt
cnVubmVyIFsgSVBDVGVzdGluZ0FQSUVuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3QgdGhh
dCBzdHJlYW0gc3luYyBtZXNzYWdlIGNyYXNoIGlzIG5vdGljZWQgaW1tZWRpYXRlbHk8L3RpdGxl
PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
Kzxib2R5PgorPHNjcmlwdD4KK3NldHVwKHsgc2luZ2xlX3Rlc3Q6IHRydWUgfSk7CitpZiAod2lu
ZG93LklQQykgeyAvLyBGb3IgY29tcGlsZXMgd2l0aCAhRU5BQkxFKElQQ19URVNUSU5HX0FQSSkK
KyAgICBjb25zdCBkZWZhdWx0VGltZW91dCA9IDEwOworICAgIGNvbnN0IGJ1ZmZlclNpemUgPSAx
MDA7CisgICAgY29uc3Qgc3RyZWFtVGVzdGVySUQgPSA0NTU3OworICAgIGZvciAoY29uc3QgcHJv
Y2Vzc1RhcmdldCBvZiBJUEMucHJvY2Vzc1RhcmdldHMpIHsKKyAgICAgICAgaWYgKHByb2Nlc3NU
YXJnZXQgPT0gIlVJIikKKyAgICAgICAgICAgIGNvbnRpbnVlOyAvLyBDcmFzaGluZyBVSSBpcyBu
b3Qgc3VwcG9ydGVkLgorICAgICAgICBjb25zdCBzdHJlYW1Db25uZWN0aW9uID0gSVBDLmNyZWF0
ZVN0cmVhbUNsaWVudENvbm5lY3Rpb24ocHJvY2Vzc1RhcmdldCwgYnVmZmVyU2l6ZSk7CisgICAg
ICAgIElQQy5zZW5kTWVzc2FnZShwcm9jZXNzVGFyZ2V0LCAwLCBJUEMubWVzc2FnZXMuSVBDVGVz
dGVyX0NyZWF0ZVN0cmVhbVRlc3Rlci5uYW1lLCBbCisgICAgICAgICAgICB7IHR5cGU6ICd1aW50
NjRfdCcsIHZhbHVlOiBzdHJlYW1UZXN0ZXJJRCB9LAorICAgICAgICAgICAgeyB0eXBlOiAnU3Ry
ZWFtQ29ubmVjdGlvbkJ1ZmZlcicsIHZhbHVlOiBzdHJlYW1Db25uZWN0aW9uLnN0cmVhbUJ1ZmZl
cigpIH0sCisgICAgICAgIF0pOworICAgICAgICBjb25zdCBhcmd1bWVudHMgPSBJUEMud2FpdEZv
ck1lc3NhZ2UocHJvY2Vzc1RhcmdldCwgc3RyZWFtVGVzdGVySUQsIElQQy5tZXNzYWdlcy5JUENT
dHJlYW1UZXN0ZXJQcm94eV9XYXNDcmVhdGVkLm5hbWUsIGRlZmF1bHRUaW1lb3V0KTsKKyAgICAg
ICAgc3RyZWFtQ29ubmVjdGlvbi5zZXRTZW1hcGhvcmVzKGFyZ3VtZW50c1swXS52YWx1ZSwgYXJn
dW1lbnRzWzFdLnZhbHVlKTsKKworICAgICAgICAvLyBUZXN0IHN0YXJ0cyBoZXJlLgorICAgICAg
ICBjb25zdCByZXN1bHQgPSBzdHJlYW1Db25uZWN0aW9uLnNlbmRJUENTdHJlYW1UZXN0ZXJTeW5j
Q3Jhc2hPblplcm8oc3RyZWFtVGVzdGVySUQsIDc4LCBkZWZhdWx0VGltZW91dCk7CisgICAgICAg
IGFzc2VydF9lcXVhbHMocmVzdWx0LCA3OCwgIGBzeW5jIG1lc3NhZ2VzIHdvcmsgZm9yICR7IHBy
b2Nlc3NUYXJnZXQgfWApOworCisgICAgICAgIGNvbnN0IHN0YXJ0ID0gRGF0ZS5ub3coKTsKKyAg
ICAgICAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsCisgICAgICAgICAgICAoKSA9PiB7IHN0
cmVhbUNvbm5lY3Rpb24uc2VuZElQQ1N0cmVhbVRlc3RlclN5bmNDcmFzaE9uWmVybyhzdHJlYW1U
ZXN0ZXJJRCwgMCwgZGVmYXVsdFRpbWVvdXQpOyB9LAorICAgICAgICAgICAgYGNyYXNoaW5nIHN5
bmMgbWVzc2FnZSBtdXN0IHJldHVybiBmYWlsdXJlIGZvciAkeyBwcm9jZXNzVGFyZ2V0IH1gKTsK
KyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihEYXRlLm5vdygpIC0gc3RhcnQsIDUwMCwgYGNyYXNo
aW5nIHN5bmMgbWVzc2FnZSBtdXN0IGNvbXBsZXRlIGluIDUwMG1zIGZvciAkeyBwcm9jZXNzVGFy
Z2V0IH1gKTsKKyAgICAgICAgY29uc29sZS5sb2coYHR0dDogJHtEYXRlLm5vdygpIC0gc3RhcnR9
YCk7CisgICAgfQorfQorZG9uZSgpOworPC9zY3JpcHQ+Cis8L2JvZHk+ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaXBjL3N0cmVhbS1zeW5jLXJl
cGx5LXNoYXJlZC1tZW1vcnkuaHRtbCBiL0xheW91dFRlc3RzL2lwYy9zdHJlYW0tc3luYy1yZXBs
eS1zaGFyZWQtbWVtb3J5Lmh0bWwKaW5kZXggZGYwMjlhZDFlMmNmZGZkN2RmOTkzYzI3ZTYyNjVj
ZGVlZmVkNDVkMi4uYTk5YTM4ZjQxN2RiZGNiNjlmNjY5MGZhZjRmMzM1OWMyNDA4ZTJmOCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaXBjL3N0cmVhbS1zeW5jLXJlcGx5LXNoYXJlZC1tZW1vcnku
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pcGMvc3RyZWFtLXN5bmMtcmVwbHktc2hhcmVkLW1lbW9y
eS5odG1sCkBAIC0xNiw3ICsxNiw3IEBAIGlmICh3aW5kb3cuSVBDKSB7IC8vIEZvciBjb21waWxl
cyB3aXRoICFFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQogICAgICAgICAgICAgeyB0eXBlOiAnU3Ry
ZWFtQ29ubmVjdGlvbkJ1ZmZlcicsIHZhbHVlOiBzdHJlYW1Db25uZWN0aW9uLnN0cmVhbUJ1ZmZl
cigpIH0sCiAgICAgICAgIF0pOwogICAgICAgICBjb25zdCBhcmd1bWVudHMgPSBJUEMud2FpdEZv
ck1lc3NhZ2UocHJvY2Vzc1RhcmdldCwgc3RyZWFtVGVzdGVySUQsIElQQy5tZXNzYWdlcy5JUENT
dHJlYW1UZXN0ZXJQcm94eV9XYXNDcmVhdGVkLm5hbWUsIGRlZmF1bHRUaW1lb3V0KTsKLSAgICAg
ICAgc3RyZWFtQ29ubmVjdGlvbi5zZXRXYWtlVXBTZW1hcGhvcmUoYXJndW1lbnRzWzBdLnZhbHVl
KTsKKyAgICAgICAgc3RyZWFtQ29ubmVjdGlvbi5zZXRTZW1hcGhvcmVzKGFyZ3VtZW50c1swXS52
YWx1ZSwgYXJndW1lbnRzWzFdLnZhbHVlKTsKIAogICAgICAgICAvLyBUZXN0IHN0YXJ0cyBoZXJl
LgogICAgICAgICB0cnkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458696</attachid>
            <date>2022-05-02 11:31:43 -0700</date>
            <delta_ts>2022-05-02 23:08:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238253-20220502213141.patch</filename>
            <type>text/plain</type>
            <size>42893</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzNjcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGFjODljOTZkOTI5ZDE0YmY4
MWUyMmJlZDI0MjExZDkwZTI4MmI5YTUuLjBkZWIwZGZiZDhiYjcyODcxZjliMjBlOGEyZjI0OGQ3
ZTQ0NTFmYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjQgQEAKKzIwMjItMDUtMDIgIEtpbW1vIEtp
bm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBJUEMgc3RyZWFtIGNvbm5l
Y3Rpb24gc2VuZHMgc2hvdWxkIGZhaWwgaW1tZWRpYXRlbHkgd2hlbiBjb25uZWN0aW9uIGNsb3Nl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4MjUz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2VuZCB0
aGUgU3RyZWFtQ2xpZW50Q29ubmVjdGlvbiBjbGllbnQgd2FpdCBzZW1hcGhvcmUgZnJvbQorICAg
ICAgICBTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uLiBUaGlzIHdheSB0aGUgY2xpZW50IHdpbGwgZmFp
bCB0aGUgd2FpdAorICAgICAgICB3aGVuIHRoZSBzZXJ2ZXIgY3Jhc2hlcy4KKworICAgICAgICBU
ZXN0OiBpcGMvc3RyZWFtLXN5bmMtY3Jhc2gtbm8tdGltZW91dC5odG1sCisKKyAgICAgICAgKiBH
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OndvcmtRdWV1ZUluaXRpYWxpemUpOgor
ICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnN0YXJ0TGlzdGVuaW5n
Rm9ySVBDKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVHUFUu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHUFU6OndvcmtRdWV1ZUluaXRpYWxpemUpOgor
ICAgICAgICAqIFBsYXRmb3JtL0lQQy9TdHJlYW1DbGllbnRDb25uZWN0aW9uLmNwcDoKKyAgICAg
ICAgKElQQzo6U3RyZWFtQ2xpZW50Q29ubmVjdGlvbjo6c2V0U2VtYXBob3Jlcyk6CisgICAgICAg
IChJUEM6OlN0cmVhbUNsaWVudENvbm5lY3Rpb246Ondha2VVcFNlcnZlcik6CisgICAgICAgICog
UGxhdGZvcm0vSVBDL1N0cmVhbUNsaWVudENvbm5lY3Rpb24uaDoKKyAgICAgICAgKElQQzo6U3Ry
ZWFtQ2xpZW50Q29ubmVjdGlvbjo6dHJ5QWNxdWlyZSk6CisgICAgICAgIChJUEM6OlN0cmVhbUNs
aWVudENvbm5lY3Rpb246OnRyeUFjcXVpcmVBbGwpOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9T
dHJlYW1Db25uZWN0aW9uQnVmZmVyLmNwcDoKKyAgICAgICAgKElQQzo6U3RyZWFtQ29ubmVjdGlv
bkJ1ZmZlcjo6U3RyZWFtQ29ubmVjdGlvbkJ1ZmZlcik6CisgICAgICAgIChJUEM6OlN0cmVhbUNv
bm5lY3Rpb25CdWZmZXI6Om9wZXJhdG9yPSk6CisgICAgICAgIChJUEM6OlN0cmVhbUNvbm5lY3Rp
b25CdWZmZXI6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChJUEM6OlN0cmVhbUNvbm5lY3Rpb25C
dWZmZXI6OmRlY29kZSk6CisgICAgICAgICogUGxhdGZvcm0vSVBDL1N0cmVhbUNvbm5lY3Rpb25C
dWZmZXIuaDoKKyAgICAgICAgKElQQzo6U3RyZWFtQ29ubmVjdGlvbkJ1ZmZlcjo6ZGF0YVNpemUg
Y29uc3QpOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9TdHJlYW1TZXJ2ZXJDb25uZWN0aW9uLmNw
cDoKKyAgICAgICAgKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbjo6cmVsZWFzZSk6CisgICAg
ICAgIChJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb246OnJlbGVhc2VBbGwpOgorICAgICAgICAq
IFBsYXRmb3JtL0lQQy9TdHJlYW1TZXJ2ZXJDb25uZWN0aW9uLmg6CisgICAgICAgICogU2hhcmVk
L0lQQ1N0cmVhbVRlc3Rlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OklQQ1N0cmVhbVRlc3Rlcjo6
aW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJLaXQ6OklQQ1N0cmVhbVRlc3Rlcjo6c3luY0NyYXNo
T25aZXJvKToKKyAgICAgICAgKiBTaGFyZWQvSVBDU3RyZWFtVGVzdGVyLmg6CisgICAgICAgICog
U2hhcmVkL0lQQ1N0cmVhbVRlc3Rlci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBTaGFyZWQvSVBD
U3RyZWFtVGVzdGVyUHJveHkuaDoKKyAgICAgICAgKiBTaGFyZWQvSVBDU3RyZWFtVGVzdGVyUHJv
eHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMUHJveHk6Ondhc0NyZWF0ZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Lm1lc3NhZ2Vz
LmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eTo6c3RyZWFtQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eTo6ZGlkSW5pdGlhbGl6ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmlu
OgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVHUFVQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdQVVByb3h5Ojp3YXNDcmVhdGVkKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlR1BVUHJveHkuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlR1BVUHJveHku
bWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0lQQ1Rlc3RpbmdBUEku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpJUENUZXN0aW5nQVBJOjpKU0lQQ1N0cmVhbUNsaWVudENv
bm5lY3Rpb246OnNldFNlbWFwaG9yZXMpOgorICAgICAgICAoV2ViS2l0OjpJUENUZXN0aW5nQVBJ
OjpKU0lQQ1N0cmVhbUNsaWVudENvbm5lY3Rpb246OnN0YXRpY0Z1bmN0aW9ucyk6CisgICAgICAg
IChXZWJLaXQ6OklQQ1Rlc3RpbmdBUEk6OkpTSVBDU3RyZWFtQ2xpZW50Q29ubmVjdGlvbjo6c2Vu
ZElQQ1N0cmVhbVRlc3RlclN5bmNDcmFzaE9uWmVybyk6CisKIDIwMjItMDUtMDIgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gQWRkIHN1cHBv
cnQgZm9yIHRoZSAiTWFya3VwIEltYWdlIiBhY3Rpb24gd2hlbiByaWdodCBjbGlja2luZyBhbiBp
bWFnZSBpbiBlZGl0YWJsZSBjb250ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcAppbmRleCBl
NGJhNjAzMjhhYjFkZDU1OGIxYzk3MmMyY2JmNTNmZTM2NTZlOGFmLi4wMjY2NmQ0MWI0MThlZjM1
MDY2M2ZjNzk5MmVhMWU2ZDcyZDU4NDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKQEAg
LTEzMSw5ICsxMzEsOSBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjp3b3JrUXVldWVJ
bml0aWFsaXplKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cgogICAgICAgICBtX2NvbnRl
eHQtPnNldENsaWVudCh0aGlzKTsKICAgICAgICAgU3RyaW5nIGV4dGVuc2lvbnMgPSBtX2NvbnRl
eHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRleHRHTDo6RVhURU5TSU9OUyk7CiAgICAgICAgIFN0
cmluZyByZXF1ZXN0YWJsZUV4dGVuc2lvbnMgPSBtX2NvbnRleHQtPmdldFN0cmluZyhHcmFwaGlj
c0NvbnRleHRHTDo6UkVRVUVTVEFCTEVfRVhURU5TSU9OU19BTkdMRSk7Ci0gICAgICAgIHNlbmQo
TWVzc2FnZXM6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6Oldhc0NyZWF0ZWQodHJ1ZSwg
cmVtb3RlR3JhcGhpY3NDb250ZXh0R0xTdHJlYW1Xb3JrUXVldWUoKS53YWtlVXBTZW1hcGhvcmUo
KSwgZXh0ZW5zaW9ucywgcmVxdWVzdGFibGVFeHRlbnNpb25zKSk7CisgICAgICAgIHNlbmQoTWVz
c2FnZXM6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6Oldhc0NyZWF0ZWQodHJ1ZSwgcmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xTdHJlYW1Xb3JrUXVldWUoKS53YWtlVXBTZW1hcGhvcmUoKSwg
bV9zdHJlYW1Db25uZWN0aW9uLT5jbGllbnRXYWl0U2VtYXBob3JlKCksIGV4dGVuc2lvbnMsIHJl
cXVlc3RhYmxlRXh0ZW5zaW9ucykpOwogICAgIH0gZWxzZQotICAgICAgICBzZW5kKE1lc3NhZ2Vz
OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5OjpXYXNDcmVhdGVkKGZhbHNlLCBJUEM6OlNl
bWFwaG9yZSB7IH0sIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCkpKTsKKyAgICAgICAgc2Vu
ZChNZXNzYWdlczo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6V2FzQ3JlYXRlZChmYWxz
ZSwgeyB9LCB7IH0sIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCkpKTsKIH0KIAogdm9pZCBS
ZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6d29ya1F1ZXVlVW5pbml0aWFsaXplKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kLmNwcAppbmRleCBmYjFiMDU2MDc2NTc2NDRkZjg1NDFmODc5NDgzOTFhNjAzZGQ5
Nzc4Li4zNTA3NzY3YmU2Mzk0M2I5ZTlmNWYyN2M3MTliNTBjOWUxOTM3YWJlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmQuY3BwCkBAIC0xMTEsNyArMTExLDcgQEAgdm9pZCBSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kOjpzdGFydExpc3RlbmluZ0ZvcklQQygpCiAgICAgfQogICAgIG1fc3RyZWFtQ29ubmVj
dGlvbi0+c3RhcnRSZWNlaXZpbmdNZXNzYWdlcygqdGhpcywgTWVzc2FnZXM6OlJlbW90ZVJlbmRl
cmluZ0JhY2tlbmQ6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9yZW5kZXJpbmdCYWNrZW5kSWRl
bnRpZmllci50b1VJbnQ2NCgpKTsKICAgICBtX3N0cmVhbUNvbm5lY3Rpb24tPm9wZW4oKTsKLSAg
ICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OkRpZENyZWF0ZVdh
a2VVcFNlbWFwaG9yZUZvckRpc3BsYXlMaXN0U3RyZWFtKG1fd29ya1F1ZXVlLT53YWtlVXBTZW1h
cGhvcmUoKSksIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOworICAgIHNlbmQoTWVzc2Fn
ZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6RGlkSW5pdGlhbGl6ZShtX3dvcmtRdWV1
ZS0+d2FrZVVwU2VtYXBob3JlKCksIG1fc3RyZWFtQ29ubmVjdGlvbi0+Y2xpZW50V2FpdFNlbWFw
aG9yZSgpKSwgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7CiB9CiAKIHZvaWQgUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZDo6c3RvcExpc3RlbmluZ0ZvcklQQygpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUdQVS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUdQVS5jcHAKaW5kZXgg
ODI2YmJhNWNhZjUyNDE0NDFjMDNhZDQwYWYxNGY0NzcwNWE4ZTUwYS4uYzE0MTk5OWM5ZjJlMTZi
ZWI3MGYxZDgxZDEwMjY3MjUzMDU0MDY1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVHUFUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlR1BVLmNwcApAQCAtOTQsOSArOTQsOSBA
QCB2b2lkIFJlbW90ZUdQVTo6d29ya1F1ZXVlSW5pdGlhbGl6ZSgpCiAjZW5kaWYKICAgICBpZiAo
YmFja2luZykgewogICAgICAgICBtX2JhY2tpbmcgPSBiYWNraW5nLnJlbGVhc2VOb25OdWxsKCk7
Ci0gICAgICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZUdQVVByb3h5OjpXYXNDcmVhdGVkKHRydWUs
IHdvcmtRdWV1ZSgpLndha2VVcFNlbWFwaG9yZSgpKSk7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6
OlJlbW90ZUdQVVByb3h5OjpXYXNDcmVhdGVkKHRydWUsIHdvcmtRdWV1ZSgpLndha2VVcFNlbWFw
aG9yZSgpLCBtX3N0cmVhbUNvbm5lY3Rpb24tPmNsaWVudFdhaXRTZW1hcGhvcmUoKSkpOwogICAg
IH0gZWxzZQotICAgICAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVHUFVQcm94eTo6V2FzQ3JlYXRl
ZChmYWxzZSwgd29ya1F1ZXVlKCkud2FrZVVwU2VtYXBob3JlKCkpKTsKKyAgICAgICAgc2VuZChN
ZXNzYWdlczo6UmVtb3RlR1BVUHJveHk6Oldhc0NyZWF0ZWQoZmFsc2UsIHsgfSwgeyB9KSk7CiB9
CiAKIHZvaWQgUmVtb3RlR1BVOjp3b3JrUXVldWVVbmluaXRpYWxpemUoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU3RyZWFtQ2xpZW50Q29ubmVjdGlvbi5jcHAgYi9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9TdHJlYW1DbGllbnRDb25uZWN0aW9uLmNwcAppbmRl
eCA4NTA2NGU1ODZlNzg1OThiZTUxZGY2YzhmZWE0MmQ4YzFhZTE2ZmNmLi40NzE0N2Q4OTc3NDVj
MWRjZmM5ZTY4NzdiMjM2YmVmMjU3N2Q3NWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL0lQQy9TdHJlYW1DbGllbnRDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL0lQQy9TdHJlYW1DbGllbnRDb25uZWN0aW9uLmNwcApAQCAtOTYsMTggKzk2LDE4
IEBAIHZvaWQgU3RyZWFtQ2xpZW50Q29ubmVjdGlvbjo6aW52YWxpZGF0ZSgpCiAgICAgICAgIG1f
Y29ubmVjdGlvbi0+aW52YWxpZGF0ZSgpOwogfQogCi12b2lkIFN0cmVhbUNsaWVudENvbm5lY3Rp
b246OnNldFdha2VVcFNlbWFwaG9yZShJUEM6OlNlbWFwaG9yZSYmIHNlbWFwaG9yZSkKK3ZvaWQg
U3RyZWFtQ2xpZW50Q29ubmVjdGlvbjo6c2V0U2VtYXBob3JlcyhJUEM6OlNlbWFwaG9yZSYmIHdh
a2VVcCwgSVBDOjpTZW1hcGhvcmUmJiBjbGllbnRXYWl0KQogewotICAgIG1fd2FrZVVwU2VtYXBo
b3JlID0gV1RGTW92ZShzZW1hcGhvcmUpOworICAgIG1fc2VtYXBob3JlcyA9IHsgV1RGTW92ZSh3
YWtlVXApLCBXVEZNb3ZlKGNsaWVudFdhaXQpIH07CiAgICAgd2FrZVVwU2VydmVyKCk7CiB9CiAK
IHZvaWQgU3RyZWFtQ2xpZW50Q29ubmVjdGlvbjo6d2FrZVVwU2VydmVyKCkKIHsKLSAgICBpZiAo
IW1fd2FrZVVwU2VtYXBob3JlKQorICAgIGlmICghbV9zZW1hcGhvcmVzKQogICAgICAgICByZXR1
cm47CiAKLSAgICBtX3dha2VVcFNlbWFwaG9yZS0+c2lnbmFsKCk7CisgICAgbV9zZW1hcGhvcmVz
LT53YWtlVXAuc2lnbmFsKCk7CiAgICAgbV9yZW1haW5pbmdNZXNzYWdlQ291bnRCZWZvcmVTZW5k
aW5nV2FrZVVwID0gMDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9J
UEMvU3RyZWFtQ2xpZW50Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMv
U3RyZWFtQ2xpZW50Q29ubmVjdGlvbi5oCmluZGV4IDRlNDIwZDRmZjYxNWI1NzBlZTBiNTIyNjky
ODliMzQ2ODAxZjc3ZmUuLmJmY2RhYzcwZjMxNmEwNjY1ODdlMzIxNmJmN2U3YTJlNGQ1Mjc0YzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1N0cmVhbUNsaWVudENvbm5l
Y3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9TdHJlYW1DbGllbnRDb25u
ZWN0aW9uLmgKQEAgLTgzLDggKzgzLDggQEAgcHVibGljOgogICAgIH5TdHJlYW1DbGllbnRDb25u
ZWN0aW9uKCk7CiAKICAgICBTdHJlYW1Db25uZWN0aW9uQnVmZmVyJiBzdHJlYW1CdWZmZXIoKSB7
IHJldHVybiBtX2J1ZmZlcjsgfQotICAgIHZvaWQgc2V0V2FrZVVwU2VtYXBob3JlKElQQzo6U2Vt
YXBob3JlJiYpOwotICAgIGJvb2wgaGFzV2FrZVVwU2VtYXBob3JlKCkgY29uc3QgeyByZXR1cm4g
bV93YWtlVXBTZW1hcGhvcmUuaGFzX3ZhbHVlKCk7IH0KKyAgICB2b2lkIHNldFNlbWFwaG9yZXMo
SVBDOjpTZW1hcGhvcmUmJiB3YWtlVXAsIElQQzo6U2VtYXBob3JlJiYgY2xpZW50V2FpdCk7Cisg
ICAgYm9vbCBoYXNTZW1hcGhvcmVzKCkgY29uc3QgeyByZXR1cm4gbV9zZW1hcGhvcmVzLmhhc192
YWx1ZSgpOyB9CiAKICAgICB2b2lkIHNldFdha2VVcE1lc3NhZ2VIeXN0ZXJlc2lzKHVuc2lnbmVk
IGh5c3RlcmVzaXMpCiAgICAgewpAQCAtMTU1LDcgKzE1NSwxMSBAQCBwcml2YXRlOgogICAgIHVp
bnQ2NF90IG1fY3VycmVudERlc3RpbmF0aW9uSUQgeyAwIH07CiAgICAgc2l6ZV90IG1fY2xpZW50
T2Zmc2V0IHsgMCB9OwogICAgIFN0cmVhbUNvbm5lY3Rpb25CdWZmZXIgbV9idWZmZXI7Ci0gICAg
c3RkOjpvcHRpb25hbDxTZW1hcGhvcmU+IG1fd2FrZVVwU2VtYXBob3JlOworICAgIHN0cnVjdCBT
ZW1hcGhvcmVzIHsKKyAgICAgICAgU2VtYXBob3JlIHdha2VVcDsKKyAgICAgICAgU2VtYXBob3Jl
IGNsaWVudFdhaXQ7CisgICAgfTsKKyAgICBzdGQ6Om9wdGlvbmFsPFNlbWFwaG9yZXM+IG1fc2Vt
YXBob3JlczsKICAgICB1bnNpZ25lZCBtX3JlbWFpbmluZ01lc3NhZ2VDb3VudEJlZm9yZVNlbmRp
bmdXYWtlVXAgeyAwIH07CiAgICAgdW5zaWduZWQgbV93YWtlVXBNZXNzYWdlSHlzdGVyZXNpcyB7
IDAgfTsKIApAQCAtMzA3LDcgKzMxMSw4IEBAIGlubGluZSBzdGQ6Om9wdGlvbmFsPFN0cmVhbUNs
aWVudENvbm5lY3Rpb246OlNwYW4+IFN0cmVhbUNsaWVudENvbm5lY3Rpb246OnRyeUFjCiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgQ2xpZW50TGltaXQgb2xkQ2xpZW50TGltaXQgPSBzaGFy
ZWRDbGllbnRMaW1pdCgpLmNvbXBhcmVFeGNoYW5nZVN0cm9uZyhjbGllbnRMaW1pdCwgQ2xpZW50
TGltaXQ6OmNsaWVudElzV2FpdGluZ1RhZywgc3RkOjptZW1vcnlfb3JkZXJfYWNxX3JlbCwgc3Rk
OjptZW1vcnlfb3JkZXJfYWNxX3JlbCk7CiAgICAgICAgIGlmIChjbGllbnRMaW1pdCA9PSBvbGRD
bGllbnRMaW1pdCkgewotICAgICAgICAgICAgbV9idWZmZXIuY2xpZW50V2FpdFNlbWFwaG9yZSgp
LndhaXRGb3IodGltZW91dCk7CisgICAgICAgICAgICBpZiAoIW1fc2VtYXBob3JlcyB8fCAhbV9z
ZW1hcGhvcmVzLT5jbGllbnRXYWl0LndhaXRGb3IodGltZW91dCkpCisgICAgICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgICAgIGNsaWVudExpbWl0ID0gc2hhcmVkQ2xp
ZW50TGltaXQoKS5sb2FkKHN0ZDo6bWVtb3J5X29yZGVyX2FjcXVpcmUpOwogICAgICAgICB9IGVs
c2UKICAgICAgICAgICAgIGNsaWVudExpbWl0ID0gb2xkQ2xpZW50TGltaXQ7CkBAIC0zMzgsNyAr
MzQzLDggQEAgaW5saW5lIHN0ZDo6b3B0aW9uYWw8U3RyZWFtQ2xpZW50Q29ubmVjdGlvbjo6U3Bh
bj4gU3RyZWFtQ2xpZW50Q29ubmVjdGlvbjo6dHJ5QWMKICAgICAgICAgaWYgKCFjbGllbnRMaW1p
dCAmJiAoY2xpZW50T2Zmc2V0ID09IENsaWVudE9mZnNldDo6c2VydmVySXNTbGVlcGluZ1RhZyB8
fCAhY2xpZW50T2Zmc2V0KSkKICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgIG1fYnVmZmVy
LmNsaWVudFdhaXRTZW1hcGhvcmUoKS53YWl0Rm9yKHRpbWVvdXQpOworICAgICAgICBpZiAoIW1f
c2VtYXBob3JlcyB8fCAhbV9zZW1hcGhvcmVzLT5jbGllbnRXYWl0LndhaXRGb3IodGltZW91dCkp
CisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICBpZiAodGltZW91dC5k
aWRUaW1lT3V0KCkpCiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1N0cmVhbUNvbm5lY3Rpb25CdWZm
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU3RyZWFtQ29ubmVjdGlvbkJ1ZmZl
ci5jcHAKaW5kZXggNzRhMTc4NDRjODYzZTA2YWE5ZDIwM2UzMmE1MmM3ZGFhOTEwN2NiNy4uNTlj
NTMzMDIxOGM0OTAyNzU4ZDU2MmJkNWNjN2E5ODU3YzQ1ODhkYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9JUEMvU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlci5jcHAKQEAgLTQ2
LDEwICs0Niw5IEBAIFN0cmVhbUNvbm5lY3Rpb25CdWZmZXI6OlN0cmVhbUNvbm5lY3Rpb25CdWZm
ZXIoc2l6ZV90IG1lbW9yeVNpemUpCiAgICAgQVNTRVJUKG1fZGF0YVNpemUgPD0gbWF4aW11bVNp
emUoKSk7CiB9CiAKLVN0cmVhbUNvbm5lY3Rpb25CdWZmZXI6OlN0cmVhbUNvbm5lY3Rpb25CdWZm
ZXIoUmVmPFdlYktpdDo6U2hhcmVkTWVtb3J5PiYmIG1lbW9yeSwgc2l6ZV90IG1lbW9yeVNpemUs
IFNlbWFwaG9yZSYmIGNsaWVudFdhaXRTZW1hcGhvcmUpCitTdHJlYW1Db25uZWN0aW9uQnVmZmVy
OjpTdHJlYW1Db25uZWN0aW9uQnVmZmVyKFJlZjxXZWJLaXQ6OlNoYXJlZE1lbW9yeT4mJiBtZW1v
cnksIHNpemVfdCBtZW1vcnlTaXplKQogICAgIDogbV9kYXRhU2l6ZShtZW1vcnlTaXplIC0gaGVh
ZGVyU2l6ZSgpKQogICAgICwgbV9zaGFyZWRNZW1vcnkoV1RGTW92ZShtZW1vcnkpKQotICAgICwg
bV9jbGllbnRXYWl0U2VtYXBob3JlKFdURk1vdmUoY2xpZW50V2FpdFNlbWFwaG9yZSkpCiB7CiAg
ICAgQVNTRVJUKG1fZGF0YVNpemUgPiAwKTsKICAgICBBU1NFUlQobV9kYXRhU2l6ZSA8PSBtYXhp
bXVtU2l6ZSgpKTsKQEAgLTY0LDcgKzYzLDYgQEAgU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlciYgU3Ry
ZWFtQ29ubmVjdGlvbkJ1ZmZlcjo6b3BlcmF0b3I9KFN0cmVhbUNvbm5lY3Rpb25CdWZmZXIKICAg
ICBpZiAodGhpcyAhPSAmb3RoZXIpIHsKICAgICAgICAgbV9kYXRhU2l6ZSA9IG90aGVyLm1fZGF0
YVNpemU7CiAgICAgICAgIG1fc2hhcmVkTWVtb3J5ID0gV1RGTW92ZShvdGhlci5tX3NoYXJlZE1l
bW9yeSk7Ci0gICAgICAgIG1fY2xpZW50V2FpdFNlbWFwaG9yZSA9IFdURk1vdmUob3RoZXIubV9j
bGllbnRXYWl0U2VtYXBob3JlKTsKICAgICB9CiAgICAgcmV0dXJuICp0aGlzOwogfQpAQCAtNzYs
NyArNzQsNiBAQCB2b2lkIFN0cmVhbUNvbm5lY3Rpb25CdWZmZXI6OmVuY29kZShFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAogICAgICAgICBDUkFTSCgpOwogICAgIFdlYktpdDo6U2hhcmVkTWVtb3J5
OjpJUENIYW5kbGUgaXBjSGFuZGxlIHsgV1RGTW92ZShoYW5kbGUpLCBtX3NoYXJlZE1lbW9yeS0+
c2l6ZSgpIH07CiAgICAgZW5jb2RlciA8PCBpcGNIYW5kbGU7Ci0gICAgZW5jb2RlciA8PCBtX2Ns
aWVudFdhaXRTZW1hcGhvcmU7CiB9CiAKIHN0ZDo6b3B0aW9uYWw8U3RyZWFtQ29ubmVjdGlvbkJ1
ZmZlcj4gU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlcjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCkBA
IC04NSwxMCArODIsNiBAQCBzdGQ6Om9wdGlvbmFsPFN0cmVhbUNvbm5lY3Rpb25CdWZmZXI+IFN0
cmVhbUNvbm5lY3Rpb25CdWZmZXI6OmRlY29kZShEZWNvZGVyJiBkZQogICAgIGRlY29kZXIgPj4g
aXBjSGFuZGxlOwogICAgIGlmICghaXBjSGFuZGxlKQogICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OwotICAgIHN0ZDo6b3B0aW9uYWw8U2VtYXBob3JlPiBzZW1hcGhvcmU7Ci0gICAgZGVjb2Rl
ciA+PiBzZW1hcGhvcmU7Ci0gICAgaWYgKCFzZW1hcGhvcmUpCi0gICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CiAgICAgc2l6ZV90IGRhdGFTaXplID0gc3RhdGljX2Nhc3Q8c2l6ZV90PihpcGNI
YW5kbGUtPmRhdGFTaXplKTsKICAgICBpZiAoZGF0YVNpemUgPD0gaGVhZGVyU2l6ZSgpKQogICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwpAQCAtOTcsNyArOTAsNyBAQCBzdGQ6Om9wdGlvbmFs
PFN0cmVhbUNvbm5lY3Rpb25CdWZmZXI+IFN0cmVhbUNvbm5lY3Rpb25CdWZmZXI6OmRlY29kZShE
ZWNvZGVyJiBkZQogICAgIGF1dG8gc2hhcmVkTWVtb3J5ID0gV2ViS2l0OjpTaGFyZWRNZW1vcnk6
Om1hcChpcGNIYW5kbGUtPmhhbmRsZSwgV2ViS2l0OjpTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246
OlJlYWRXcml0ZSk7CiAgICAgaWYgKHNoYXJlZE1lbW9yeS0+c2l6ZSgpIDwgZGF0YVNpemUpCiAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgcmV0dXJuIFN0cmVhbUNvbm5lY3Rpb25C
dWZmZXIgeyBzaGFyZWRNZW1vcnkucmVsZWFzZU5vbk51bGwoKSwgZGF0YVNpemUsICBXVEZNb3Zl
KCpzZW1hcGhvcmUpIH07CisgICAgcmV0dXJuIFN0cmVhbUNvbm5lY3Rpb25CdWZmZXIgeyBzaGFy
ZWRNZW1vcnkucmVsZWFzZU5vbk51bGwoKSwgZGF0YVNpemUgfTsKIH0KIAogU3Bhbjx1aW50OF90
PiBTdHJlYW1Db25uZWN0aW9uQnVmZmVyOjpoZWFkZXJGb3JUZXN0aW5nKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1N0cmVhbUNvbm5lY3Rpb25CdWZmZXIuaCBiL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1N0cmVhbUNvbm5lY3Rpb25CdWZmZXIuaAppbmRleCBi
ZjU3MmYzZjdiYTQxODhlNzhlOWNjMGRlYTFjZDA2M2JkODY3NDIzLi41NGUzYTQyOTkxNjllZjc5
YzA0NzgyNDE1MDI0YzIyN2MyZTQ2ZTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL0lQQy9TdHJlYW1Db25uZWN0aW9uQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9JUEMvU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlci5oCkBAIC0yNiw3ICsyNiw2IEBACiAjcHJh
Z21hIG9uY2UKIAogI2luY2x1ZGUgIkRlY29kZXIuaCIKLSNpbmNsdWRlICJJUENTZW1hcGhvcmUu
aCIKICNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIKICNpbmNsdWRlIDx3dGYvQXRvbWljcy5oPgog
CkBAIC0xMDksNyArMTA4LDYgQEAgcHVibGljOgogICAgIEF0b21pYzxTZXJ2ZXJPZmZzZXQ+JiBz
ZXJ2ZXJPZmZzZXQoKSB7IHJldHVybiBoZWFkZXIoKS5zZXJ2ZXJPZmZzZXQ7IH0KICAgICB1aW50
OF90KiBkYXRhKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDhfdCo+KG1fc2hhcmVk
TWVtb3J5LT5kYXRhKCkpICsgaGVhZGVyU2l6ZSgpOyB9CiAgICAgc2l6ZV90IGRhdGFTaXplKCkg
Y29uc3QgeyByZXR1cm4gbV9kYXRhU2l6ZTsgfQotICAgIFNlbWFwaG9yZSYgY2xpZW50V2FpdFNl
bWFwaG9yZSgpIHsgcmV0dXJuIG1fY2xpZW50V2FpdFNlbWFwaG9yZTsgfQogCiAgICAgc3RhdGlj
IGNvbnN0ZXhwciBzaXplX3QgbWF4aW11bVNpemUoKSB7IHJldHVybiBzdGQ6Om1pbihzdGF0aWNf
Y2FzdDxzaXplX3Q+KENsaWVudE9mZnNldDo6c2VydmVySXNTbGVlcGluZ1RhZyksIHN0YXRpY19j
YXN0PHNpemVfdD4oQ2xpZW50T2Zmc2V0OjpzZXJ2ZXJJc1NsZWVwaW5nVGFnKSkgLSAxOyB9CiAg
ICAgdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwpAQCAtMTE5LDcgKzExNyw3IEBAIHB1Ymxp
YzoKICAgICBTcGFuPHVpbnQ4X3Q+IGRhdGFGb3JUZXN0aW5nKCk7CiAKIHByaXZhdGU6Ci0gICAg
U3RyZWFtQ29ubmVjdGlvbkJ1ZmZlcihSZWY8V2ViS2l0OjpTaGFyZWRNZW1vcnk+JiYsIHNpemVf
dCBtZW1vcnlTaXplLCBTZW1hcGhvcmUmJiBjbGllbnRXYWl0U2VtYXBob3JlKTsKKyAgICBTdHJl
YW1Db25uZWN0aW9uQnVmZmVyKFJlZjxXZWJLaXQ6OlNoYXJlZE1lbW9yeT4mJiwgc2l6ZV90IG1l
bW9yeVNpemUpOwogCiAgICAgc3RydWN0IEhlYWRlciB7CiAgICAgICAgIEF0b21pYzxTZXJ2ZXJP
ZmZzZXQ+IHNlcnZlck9mZnNldDsKQEAgLTEzMiw3ICsxMzAsNiBAQCBwcml2YXRlOgogCiAgICAg
c2l6ZV90IG1fZGF0YVNpemUgeyAwIH07CiAgICAgUmVmPFdlYktpdDo6U2hhcmVkTWVtb3J5PiBt
X3NoYXJlZE1lbW9yeTsKLSAgICBTZW1hcGhvcmUgbV9jbGllbnRXYWl0U2VtYXBob3JlOwogfTsK
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU3RyZWFtU2VydmVy
Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9TdHJlYW1TZXJ2ZXJD
b25uZWN0aW9uLmNwcAppbmRleCBiYTVjZjc0ZmYxNGNiMDhmNWZjM2FiNjFhNjM3YTA3NjVlOWNj
NzdkLi5kMmYxZDIyYTFkZjA5NTE4MTQ4YTI3ZDMzNmE4MzBkY2QyZTNjY2E4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9TdHJlYW1TZXJ2ZXJDb25uZWN0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9TdHJlYW1TZXJ2ZXJDb25uZWN0aW9uLmNw
cApAQCAtMTcyLDcgKzE3Miw3IEBAIHZvaWQgU3RyZWFtU2VydmVyQ29ubmVjdGlvbjo6cmVsZWFz
ZShzaXplX3QgcmVhZFNpemUpCiAgICAgU2VydmVyT2Zmc2V0IG9sZFNlcnZlck9mZnNldCA9IHNo
YXJlZFNlcnZlck9mZnNldCgpLmV4Y2hhbmdlKHNlcnZlck9mZnNldCwgc3RkOjptZW1vcnlfb3Jk
ZXJfYWNxX3JlbCk7CiAgICAgLy8gSWYgdGhlIGNsaWVudCB3cm90ZSBvdmVyIHNlcnZlck9mZnNl
dCwgaXQgbWVhbnMgdGhlIGNsaWVudCBpcyB3YWl0aW5nLgogICAgIGlmIChvbGRTZXJ2ZXJPZmZz
ZXQgPT0gU2VydmVyT2Zmc2V0OjpjbGllbnRJc1dhaXRpbmdUYWcpCi0gICAgICAgIG1fYnVmZmVy
LmNsaWVudFdhaXRTZW1hcGhvcmUoKS5zaWduYWwoKTsKKyAgICAgICAgbV9jbGllbnRXYWl0U2Vt
YXBob3JlLnNpZ25hbCgpOwogICAgIGVsc2UKICAgICAgICAgQVNTRVJUKCEob2xkU2VydmVyT2Zm
c2V0ICYgU2VydmVyT2Zmc2V0OjpjbGllbnRJc1dhaXRpbmdUYWcpKTsKIApAQCAtMTg1LDcgKzE4
NSw3IEBAIHZvaWQgU3RyZWFtU2VydmVyQ29ubmVjdGlvbjo6cmVsZWFzZUFsbCgpCiAgICAgU2Vy
dmVyT2Zmc2V0IG9sZFNlcnZlck9mZnNldCA9IHNoYXJlZFNlcnZlck9mZnNldCgpLmV4Y2hhbmdl
KHN0YXRpY19jYXN0PFNlcnZlck9mZnNldD4oMCksIHN0ZDo6bWVtb3J5X29yZGVyX2FjcV9yZWwp
OwogICAgIC8vIElmIHRoZSBjbGllbnQgd3JvdGUgb3ZlciBzZXJ2ZXJPZmZzZXQsIGl0IG1lYW5z
IHRoZSBjbGllbnQgaXMgd2FpdGluZy4KICAgICBpZiAob2xkU2VydmVyT2Zmc2V0ID09IFNlcnZl
ck9mZnNldDo6Y2xpZW50SXNXYWl0aW5nVGFnKQotICAgICAgICBtX2J1ZmZlci5jbGllbnRXYWl0
U2VtYXBob3JlKCkuc2lnbmFsKCk7CisgICAgICAgIG1fY2xpZW50V2FpdFNlbWFwaG9yZS5zaWdu
YWwoKTsKICAgICBlbHNlCiAgICAgICAgIEFTU0VSVCghKG9sZFNlcnZlck9mZnNldCAmIFNlcnZl
ck9mZnNldDo6Y2xpZW50SXNXYWl0aW5nVGFnKSk7CiAgICAgbV9zZXJ2ZXJPZmZzZXQgPSAwOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU3RyZWFtU2VydmVyQ29ubmVj
dGlvbi5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU3RyZWFtU2VydmVyQ29ubmVjdGlv
bi5oCmluZGV4IGQ2YWQ1MGEwYjA4ZTFlMjhkMDZjNGZkNTE2YjlhZmVkZTg1NzNmODUuLmUzZTJh
YmFiMTMyNjVhNmIwZjY0NzI4YzZhODRkOGEzYTQ2MTUwMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vSVBDL1N0cmVhbVNlcnZlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL0lQQy9TdHJlYW1TZXJ2ZXJDb25uZWN0aW9uLmgKQEAgLTI4LDYgKzI4
LDcgQEAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiRGVjb2Rlci5oIgogI2lu
Y2x1ZGUgIkVuY29kZXIuaCIKKyNpbmNsdWRlICJJUENTZW1hcGhvcmUuaCIKICNpbmNsdWRlICJN
ZXNzYWdlTmFtZXMuaCIKICNpbmNsdWRlICJTdHJlYW1Db25uZWN0aW9uQnVmZmVyLmgiCiAjaW5j
bHVkZSAiU3RyZWFtQ29ubmVjdGlvbkVuY29kZXIuaCIKQEAgLTg2LDYgKzg3LDggQEAgcHVibGlj
OgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KICAgICB2
b2lkIHNlbmRTeW5jUmVwbHkoQ29ubmVjdGlvbjo6U3luY1JlcXVlc3RJRCwgQXJndW1lbnRzJiYu
Li4pOwogCisgICAgU2VtYXBob3JlJiBjbGllbnRXYWl0U2VtYXBob3JlKCkgeyByZXR1cm4gbV9j
bGllbnRXYWl0U2VtYXBob3JlOyB9CisKIHByaXZhdGU6CiAgICAgZW51bSBjbGFzcyBIYXNEZWRp
Y2F0ZWRDb25uZWN0aW9uIDogYm9vbCB7IE5vLCBZZXMgfTsKICAgICBTdHJlYW1TZXJ2ZXJDb25u
ZWN0aW9uKFJlZjxDb25uZWN0aW9uPiYmLCBTdHJlYW1Db25uZWN0aW9uQnVmZmVyJiYsIFN0cmVh
bUNvbm5lY3Rpb25Xb3JrUXVldWUmLCBIYXNEZWRpY2F0ZWRDb25uZWN0aW9uKTsKQEAgLTEyMCw2
ICsxMjMsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgZGlzcGF0Y2hPdXRPZlN0cmVhbU1lc3NhZ2Uo
RGVjb2RlciYmKTsKIAogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAg
ICBTZW1hcGhvcmUgbV9jbGllbnRXYWl0U2VtYXBob3JlOwogICAgIFN0cmVhbUNvbm5lY3Rpb25X
b3JrUXVldWUmIG1fd29ya1F1ZXVlOwogCiAgICAgc2l6ZV90IG1fc2VydmVyT2Zmc2V0IHsgMCB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvSVBDU3RyZWFtVGVzdGVyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0lQQ1N0cmVhbVRlc3Rlci5jcHAKaW5kZXggODIyNjdlMjFh
ZGU2MmE5YjY2NzQ1ZjNkYzg3YTZjYTVjMzBiMmVmYS4uMDI4NWQwMGE0MDljYWQ1YmIyZjhkODAz
ZmFmNDU1NTRhZjBkOWU4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvSVBDU3Ry
ZWFtVGVzdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9JUENTdHJlYW1UZXN0ZXIu
Y3BwCkBAIC01Nyw3ICs1Nyw3IEBAIHZvaWQgSVBDU3RyZWFtVGVzdGVyOjppbml0aWFsaXplKCkK
ICAgICBtX3N0cmVhbUNvbm5lY3Rpb24tPnN0YXJ0UmVjZWl2aW5nTWVzc2FnZXMoKnRoaXMsIE1l
c3NhZ2VzOjpJUENTdHJlYW1UZXN0ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pZGVudGlm
aWVyLnRvVUludDY0KCkpOwogICAgIG1fc3RyZWFtQ29ubmVjdGlvbi0+b3BlbigpOwogICAgIHdv
cmtRdWV1ZSgpLmRpc3BhdGNoKFt0aGlzXSB7Ci0gICAgICAgIG1fc3RyZWFtQ29ubmVjdGlvbi0+
Y29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OklQQ1N0cmVhbVRlc3RlclByb3h5OjpXYXNDcmVh
dGVkKHdvcmtRdWV1ZSgpLndha2VVcFNlbWFwaG9yZSgpKSwgbV9pZGVudGlmaWVyKTsKKyAgICAg
ICAgbV9zdHJlYW1Db25uZWN0aW9uLT5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6SVBDU3Ry
ZWFtVGVzdGVyUHJveHk6Oldhc0NyZWF0ZWQod29ya1F1ZXVlKCkud2FrZVVwU2VtYXBob3JlKCks
IG1fc3RyZWFtQ29ubmVjdGlvbi0+Y2xpZW50V2FpdFNlbWFwaG9yZSgpKSwgbV9pZGVudGlmaWVy
KTsKICAgICB9KTsKIH0KIApAQCAtODcsNiArODcsMjAgQEAgdm9pZCBJUENTdHJlYW1UZXN0ZXI6
OnN5bmNNZXNzYWdlUmV0dXJuaW5nU2hhcmVkTWVtb3J5MSh1aW50MzJfdCBieXRlQ291bnQsIENv
bXAKICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3VsdCkpOwogfQogCit2b2lkIElQ
Q1N0cmVhbVRlc3Rlcjo6c3luY0NyYXNoT25aZXJvKGludDMyX3QgdmFsdWUsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoaW50MzJfdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCF2
YWx1ZSkgeworICAgICAgICAvLyBVc2UgZXhpdCBzbyB0aGF0IHdlIGRvbid0IGxlYXZlIGEgY3Jh
c2ggcmVwb3J0LgorI2lmIE9TKFdJTkRPV1MpCisgICAgICAgIC8vIENhbGxpbmcgX2V4aXQgaW4g
bm9uLW1haW4gdGhyZWFkcyBtYXkgY2F1c2UgYSBkZWFkbG9jayBpbiBXVEY6OlRocmVhZDo6VGhy
ZWFkSG9sZGVyOjp+VGhyZWFkSG9sZGVyLgorICAgICAgICBUZXJtaW5hdGVQcm9jZXNzKEdldEN1
cnJlbnRQcm9jZXNzKCksIEVYSVRfU1VDQ0VTUyk7CisjZWxzZQorICAgICAgICBfZXhpdChFWElU
X1NVQ0NFU1MpOworI2VuZGlmCisgICAgfQorICAgIGNvbXBsZXRpb25IYW5kbGVyKHZhbHVlKTsK
K30KKwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0lQQ1N0
cmVhbVRlc3Rlci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvSVBDU3RyZWFtVGVzdGVyLmgKaW5k
ZXggMDQ0MDhkZGMzOGU3YjBmMjQ3YTkyZTZmMjI1MzdkOGMyYTk5ZWQxYS4uNjc4ZTI4NzAyM2Q4
Y2ZmOGNhNDc1ZDU2ZjZjYTAxZmE0YWUwODIwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvSVBDU3RyZWFtVGVzdGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvSVBDU3Ry
ZWFtVGVzdGVyLmgKQEAgLTU4LDYgKzU4LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIE1lc3NhZ2Vz
LgogICAgIHZvaWQgc3luY01lc3NhZ2VSZXR1cm5pbmdTaGFyZWRNZW1vcnkxKHVpbnQzMl90IGJ5
dGVDb3VudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSk+
JiYpOworICAgIHZvaWQgc3luY0NyYXNoT25aZXJvKGludDMyX3QsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoaW50MzJfdCk+JiYpOwogCiAgICAgY29uc3QgUmVmPElQQzo6U3RyZWFtQ29ubmVjdGlv
bldvcmtRdWV1ZT4gbV93b3JrUXVldWU7CiAgICAgY29uc3QgUmVmPElQQzo6U3RyZWFtU2VydmVy
Q29ubmVjdGlvbj4gbV9zdHJlYW1Db25uZWN0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvSVBDU3RyZWFtVGVzdGVyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvSVBDU3RyZWFtVGVzdGVyLm1lc3NhZ2VzLmluCmluZGV4IDk0ZjYxYzA1MDFiNGRmNzhmZDM2
MmUxYThhMTg3Y2ZkYTQ5MjdkNjUuLjNkZTUxYTNlOWNkNDFhNjIyMDk3YTFkYTNiYWIwYTlhNTMx
MmI3YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0lQQ1N0cmVhbVRlc3Rlci5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9JUENTdHJlYW1UZXN0ZXIubWVz
c2FnZXMuaW4KQEAgLTI0LDYgKzI0LDcgQEAKIAogbWVzc2FnZXMgLT4gSVBDU3RyZWFtVGVzdGVy
IE5vdFJlZkNvdW50ZWQgU3RyZWFtIHsKICAgICBTeW5jTWVzc2FnZVJldHVybmluZ1NoYXJlZE1l
bW9yeTEodWludDMyX3QgYnl0ZUNvdW50KSAtPiAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6OklQQ0hh
bmRsZSBoYW5kbGUpIFN5bmNocm9ub3VzIE5vdFN0cmVhbUVuY29kYWJsZVJlcGx5CisgICAgU3lu
Y0NyYXNoT25aZXJvKGludDMyX3QgdmFsdWUpIC0+IChpbnQzMl90IHNhbWVWYWx1ZSkgU3luY2hy
b25vdXMKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9JUENT
dHJlYW1UZXN0ZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvSVBDU3RyZWFtVGVzdGVy
UHJveHkuaAppbmRleCBlYjdjMjdjZDRkZDJhZGQxMzIxYmQzNGI0YzNiMzAxZjIyNGU5MDc2Li4x
YWJiMmJmNmJhMjFlZmE0ZjY2M2JiNjBlOWJjZDUyYjdkNGUzMzBjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9JUENTdHJlYW1UZXN0ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0lQQ1N0cmVhbVRlc3RlclByb3h5LmgKQEAgLTQ5LDcgKzQ5LDcgQEAgcHJpdmF0
ZToKICAgICB+SVBDU3RyZWFtVGVzdGVyUHJveHkoKSA9IGRlZmF1bHQ7CiAKICAgICAvLyBNZXNz
YWdlcy4KLSAgICB2b2lkIHdhc0NyZWF0ZWQoSVBDOjpTZW1hcGhvcmUmJikgeyB9CisgICAgdm9p
ZCB3YXNDcmVhdGVkKElQQzo6U2VtYXBob3JlJiYsIElQQzo6U2VtYXBob3JlJiYpIHsgfQogfTsK
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvSVBDU3RyZWFtVGVzdGVyUHJv
eHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9JUENTdHJlYW1UZXN0ZXJQcm94
eS5tZXNzYWdlcy5pbgppbmRleCA2NTg4MDBhM2QzMmJkNTE0ZjQyNWE0MWJiZjcxNDA0YzJjYTQ5
YWYyLi5iNmZiMzk3MWEwZDRjZTVkOGU0Mjg4OWY3MzM4YjA4ZDk5NGIxODE5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9JUENTdHJlYW1UZXN0ZXJQcm94eS5tZXNzYWdlcy5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9JUENTdHJlYW1UZXN0ZXJQcm94eS5tZXNzYWdlcy5p
bgpAQCAtMjMsNyArMjMsNyBAQAogI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCiAKIG1lc3Nh
Z2VzIC0+IElQQ1N0cmVhbVRlc3RlclByb3h5IE5vdFJlZkNvdW50ZWQgewotICAgIHZvaWQgV2Fz
Q3JlYXRlZChJUEM6OlNlbWFwaG9yZSBzdHJlYW1XYWtlVXBTZW1hcGhvcmUpCisgICAgdm9pZCBX
YXNDcmVhdGVkKElQQzo6U2VtYXBob3JlIHN0cmVhbVdha2VVcFNlbWFwaG9yZSwgSVBDOjpTZW1h
cGhvcmUgc3RyZWFtQ2xpZW50V2FpdFNlbWFwaG9yZSkKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmNwcAppbmRleCBjZmRlMGI4MGQ4YWVlZjYzNDUx
M2MwMWY5NTkxYjY1MzI1NjAyMDNiLi4yMzY5M2Q5ODRjODllOTMxMjU0YWI2ODI1YTEwMzVkZTYw
NzUyOGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5jcHAKQEAg
LTMxNyw3ICszMTcsNyBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6Om11bHRp
RHJhd0VsZW1lbnRzSW5zdGFuY2VkQU5HTEUoR0NHTGVudW0gbW9kZQogICAgIH0KIH0KIAotdm9p
ZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Ojp3YXNDcmVhdGVkKGJvb2wgZGlkU3VjY2Vl
ZCwgSVBDOjpTZW1hcGhvcmUmJiBzZW1hcGhvcmUsIFN0cmluZyYmIGF2YWlsYWJsZUV4dGVuc2lv
bnMsIFN0cmluZyYmIHJlcXVlc3RlZEV4dGVuc2lvbnMpCit2b2lkIFJlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMUHJveHk6Ondhc0NyZWF0ZWQoYm9vbCBkaWRTdWNjZWVkLCBJUEM6OlNlbWFwaG9yZSYm
IHdha2VVcFNlbWFwaG9yZSwgSVBDOjpTZW1hcGhvcmUmJiBjbGllbnRXYWl0U2VtYXBob3JlLCBT
dHJpbmcmJiBhdmFpbGFibGVFeHRlbnNpb25zLCBTdHJpbmcmJiByZXF1ZXN0ZWRFeHRlbnNpb25z
KQogewogICAgIGlmIChpc0NvbnRleHRMb3N0KCkpCiAgICAgICAgIHJldHVybjsKQEAgLTMyNiw3
ICszMjYsNyBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6Ondhc0NyZWF0ZWQo
Ym9vbCBkaWRTdWNjZWVkLCBJUEM6OlNlbWFwaG9yZSYmCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAgICAgQVNTRVJUKCFtX2RpZEluaXRpYWxpemUpOwotICAgIG1fc3RyZWFtQ29ubmVjdGlvbi5z
ZXRXYWtlVXBTZW1hcGhvcmUoV1RGTW92ZShzZW1hcGhvcmUpKTsKKyAgICBtX3N0cmVhbUNvbm5l
Y3Rpb24uc2V0U2VtYXBob3JlcyhXVEZNb3ZlKHdha2VVcFNlbWFwaG9yZSksIFdURk1vdmUoY2xp
ZW50V2FpdFNlbWFwaG9yZSkpOwogICAgIG1fZGlkSW5pdGlhbGl6ZSA9IHRydWU7CiAgICAgaW5p
dGlhbGl6ZShhdmFpbGFibGVFeHRlbnNpb25zLCByZXF1ZXN0ZWRFeHRlbnNpb25zKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0xQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmgKaW5kZXggNGI0ODcyMjY0YTg2YjRl
MWYxM2U0YTY0NDlmNDgwNTJjNDg2ZWIzMC4uYjZlNjJiMTcyYWZmNTNkYTVkMTY2YzdhNDcwYjE4
NGJlODA3ZWQ4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmgKQEAg
LTM0Niw3ICszNDYsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgR3JhcGhpY3NDb250ZXh0R0xJZGVudGlm
aWVyIG1fZ3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyIHsgR3JhcGhpY3NDb250ZXh0R0xJZGVu
dGlmaWVyOjpnZW5lcmF0ZSgpIH07CiBwcml2YXRlOgogICAgIC8vIE1lc3NhZ2VzIHRvIGJlIHJl
Y2VpdmVkLgotICAgIHZvaWQgd2FzQ3JlYXRlZChib29sIGRpZFN1Y2NlZWQsIElQQzo6U2VtYXBo
b3JlJiYsIFN0cmluZyYmIGF2YWlsYWJsZUV4dGVuc2lvbnMsIFN0cmluZyYmIHJlcXVlc3RlZEV4
dGVuc2lvbnMpOworICAgIHZvaWQgd2FzQ3JlYXRlZChib29sIGRpZFN1Y2NlZWQsIElQQzo6U2Vt
YXBob3JlJiYsIElQQzo6U2VtYXBob3JlJiYsIFN0cmluZyYmIGF2YWlsYWJsZUV4dGVuc2lvbnMs
IFN0cmluZyYmIHJlcXVlc3RlZEV4dGVuc2lvbnMpOwogICAgIHZvaWQgd2FzTG9zdCgpOwogICAg
IHZvaWQgd2FzQ2hhbmdlZCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMUHJveHkubWVzc2FnZXMuaW4KaW5kZXggZjQzZWMwYTJlYWEzODRlNGVkZThkZDQ0MGQ5
ZWZlMDI4YWNiN2JmZi4uOThiY2UxZTIwMDNhYzU4YWY2ZDI4NTZkNjI4YjUyNTNiYjgzY2E4YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVH
cmFwaGljc0NvbnRleHRHTFByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5tZXNzYWdl
cy5pbgpAQCAtMjMsNyArMjMsNyBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxF
KFdFQkdMKQogCiBtZXNzYWdlcyAtPiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5IE5vdFJl
ZkNvdW50ZWQgewotICAgIHZvaWQgV2FzQ3JlYXRlZChib29sIGRpZFN1Y2NlZWQsIElQQzo6U2Vt
YXBob3JlIHN0cmVhbVdha2VVcFNlbWFwaG9yZSwgU3RyaW5nIGF2YWlsYWJsZUV4dGVuc2lvbnMs
IFN0cmluZyByZXF1ZXN0YWJsZUV4dGVuc2lvbnMpCisgICAgdm9pZCBXYXNDcmVhdGVkKGJvb2wg
ZGlkU3VjY2VlZCwgSVBDOjpTZW1hcGhvcmUgc3RyZWFtV2FrZVVwU2VtYXBob3JlLCBJUEM6OlNl
bWFwaG9yZSBzdHJlYW1DbGllbnRXYWl0U2VtYXBob3JlLCBTdHJpbmcgYXZhaWxhYmxlRXh0ZW5z
aW9ucywgU3RyaW5nIHJlcXVlc3RhYmxlRXh0ZW5zaW9ucykKICAgICB2b2lkIFdhc0xvc3QoKQog
ICAgIHZvaWQgV2FzQ2hhbmdlZCgpCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eS5jcHAKaW5kZXggMjExNDVkNzQwYzk0Nzg5OWJjNTU5MzExYzQxNWFmNGJkNjkwZDA2YS4u
OTVlNTkwOGM0MjdjYzIwODBiMzMwZTE1MzgwODcwMjQ2OTlkMjMzYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcApAQCAtNDI4LDE4ICs0MjgsMTggQEAgUmVuZGVy
aW5nQmFja2VuZElkZW50aWZpZXIgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjplbnN1cmVC
YWNrZW5kQ3JlYXRlZCgpCiBJUEM6OlN0cmVhbUNsaWVudENvbm5lY3Rpb24mIFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eTo6c3RyZWFtQ29ubmVjdGlvbigpCiB7CiAgICAgZW5zdXJlR1BVUHJv
Y2Vzc0Nvbm5lY3Rpb24oKTsKLSAgICBpZiAoVU5MSUtFTFkoIW1fc3RyZWFtQ29ubmVjdGlvbi0+
aGFzV2FrZVVwU2VtYXBob3JlKCkpKQotICAgICAgICBtX3N0cmVhbUNvbm5lY3Rpb24tPndhaXRG
b3JBbmREaXNwYXRjaEltbWVkaWF0ZWx5PE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHk6OkRpZENyZWF0ZVdha2VVcFNlbWFwaG9yZUZvckRpc3BsYXlMaXN0U3RyZWFtPihyZW5k
ZXJpbmdCYWNrZW5kSWRlbnRpZmllcigpLCAzX3MsIElQQzo6V2FpdEZvck9wdGlvbjo6SW50ZXJy
dXB0V2FpdGluZ0lmU3luY01lc3NhZ2VBcnJpdmVzKTsKKyAgICBpZiAoVU5MSUtFTFkoIW1fc3Ry
ZWFtQ29ubmVjdGlvbi0+aGFzU2VtYXBob3JlcygpKSkKKyAgICAgICAgbV9zdHJlYW1Db25uZWN0
aW9uLT53YWl0Rm9yQW5kRGlzcGF0Y2hJbW1lZGlhdGVseTxNZXNzYWdlczo6UmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5OjpEaWRJbml0aWFsaXplPihyZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmll
cigpLCAzX3MsIElQQzo6V2FpdEZvck9wdGlvbjo6SW50ZXJydXB0V2FpdGluZ0lmU3luY01lc3Nh
Z2VBcnJpdmVzKTsKICAgICByZXR1cm4gKm1fc3RyZWFtQ29ubmVjdGlvbjsKIH0KIAotdm9pZCBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmRpZENyZWF0ZVdha2VVcFNlbWFwaG9yZUZvckRp
c3BsYXlMaXN0U3RyZWFtKElQQzo6U2VtYXBob3JlJiYgc2VtYXBob3JlKQordm9pZCBSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHk6OmRpZEluaXRpYWxpemUoSVBDOjpTZW1hcGhvcmUmJiB3YWtl
VXAsIElQQzo6U2VtYXBob3JlJiYgY2xpZW50V2FpdCkKIHsKICAgICBpZiAoIW1fc3RyZWFtQ29u
bmVjdGlvbikgewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KLSAgICBtX3N0cmVhbUNvbm5lY3Rpb24tPnNldFdha2VVcFNlbWFwaG9yZShXVEZN
b3ZlKHNlbWFwaG9yZSkpOworICAgIG1fc3RyZWFtQ29ubmVjdGlvbi0+c2V0U2VtYXBob3JlcyhX
VEZNb3ZlKHdha2VVcCksIFdURk1vdmUoY2xpZW50V2FpdCkpOwogfQogCiBib29sIFJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eTo6aXNDYWNoZWQoY29uc3QgSW1hZ2VCdWZmZXImIGltYWdlQnVm
ZmVyKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgKaW5kZXggNWUz
Mjg1MmRkNjE0ZGM3YTE1N2Y5NzJmYjAyZWRhY2QyM2NmY2IxOS4uYzA2OGNjN2FiOWZjZmZjNzE2
ZjFjOWNlZjIxZjdjMmMxMGM5MTM1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eS5oCkBAIC0xMzIsNyArMTMyLDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc0dQVVByb2Nl
c3NDb25uZWN0aW9uQ2xvc2VkKCkgY29uc3QgeyByZXR1cm4gIW1fZ3B1UHJvY2Vzc0Nvbm5lY3Rp
b247IH0KIAotICAgIHZvaWQgZGlkQ3JlYXRlV2FrZVVwU2VtYXBob3JlRm9yRGlzcGxheUxpc3RT
dHJlYW0oSVBDOjpTZW1hcGhvcmUmJik7CisgICAgdm9pZCBkaWRJbml0aWFsaXplKElQQzo6U2Vt
YXBob3JlJiYgd2FrZVVwU2VtYXBob3JlLCBJUEM6OlNlbWFwaG9yZSYmIGNsaWVudFdhaXRTZW1h
cGhvcmUpOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4KICAgICB2b2lk
IHNlbmRUb1N0cmVhbShUJiYgbWVzc2FnZSwgT2JqZWN0SWRlbnRpZmllcjxVPiBpZGVudGlmaWVy
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5p
bgppbmRleCA5Y2JlM2FmM2Y3MTlmOWNjOTRhMzk0Y2MwODUxYjVlMTJiOTRkN2NlLi5kMWRiNGUz
YmFkNjFiZTE3NzVhNzdhNDk1YzAzODUwNDJiMGVjYjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjYsNyArMjYsNyBAQCBt
ZXNzYWdlcyAtPiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkgTm90UmVmQ291bnRlZCB7CiAg
ICAgRGlkQ3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kKFdlYktpdDo6SW1hZ2VCdWZmZXJCYWNrZW5k
SGFuZGxlIGhhbmRsZSwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllcikKICAgICBEaWRGbHVzaChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHRGbHVzaElkZW50aWZpZXIgZmx1c2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQogICAgIERpZEZp
bmFsaXplUmVuZGVyaW5nVXBkYXRlKFdlYktpdDo6UmVuZGVyaW5nVXBkYXRlSUQgZGlkUmVuZGVy
aW5nVXBkYXRlSUQpCi0gICAgRGlkQ3JlYXRlV2FrZVVwU2VtYXBob3JlRm9yRGlzcGxheUxpc3RT
dHJlYW0oSVBDOjpTZW1hcGhvcmUgd2FrZVVwU2VtYXBob3JlKQorICAgIERpZEluaXRpYWxpemUo
SVBDOjpTZW1hcGhvcmUgd2FrZVVwU2VtYXBob3JlLCBJUEM6OlNlbWFwaG9yZSBjbGllbnRXYWl0
U2VtYXBob3JlKQogICAgIERpZE1hcmtMYXllcnNBc1ZvbGF0aWxlKHVpbnQ2NF90IHJlcXVlc3RJ
ZGVudGlmaWVyLCBWZWN0b3I8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiBt
YXJrZWRWb2xhdGlsZUJ1ZmZlcklkZW50aWZpZXJzLCBib29sIGRpZE1hcmtBbGxMYXllcnNBc1Zv
bGF0aWxlKQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1dlYkdQVS9SZW1vdGVHUFVQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVHUFVQcm94eS5jcHAKaW5kZXggYTZkODgxMmJh
ZGQ3ZDkwNWRiN2NiM2Q2MTBhNDViMDZiZjMzZWNmNS4uNTk5M2Q5NDhmZmU3M2U2ZDliYzU5YmU5
ZjBlOGM0ZTNmOTY4Y2M4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlR1BVUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUdQVVByb3h5LmNwcApAQCAtNzUs
MTAgKzc1LDEwIEBAIHZvaWQgUmVtb3RlR1BVUHJveHk6OmFiYW5kb25HUFVQcm9jZXNzKCkKICAg
ICBtX2xvc3QgPSB0cnVlOwogfQogCi12b2lkIFJlbW90ZUdQVVByb3h5Ojp3YXNDcmVhdGVkKGJv
b2wgZGlkU3VjY2VlZCwgSVBDOjpTZW1hcGhvcmUmJiBzZW1hcGhvcmUpCit2b2lkIFJlbW90ZUdQ
VVByb3h5Ojp3YXNDcmVhdGVkKGJvb2wgZGlkU3VjY2VlZCwgSVBDOjpTZW1hcGhvcmUmJiB3YWtl
VXBTZW1hcGhvcmUsIElQQzo6U2VtYXBob3JlJiYgY2xpZW50V2FpdFNlbWFwaG9yZSkKIHsKICAg
ICBBU1NFUlQoIW1fZGlkSW5pdGlhbGl6ZSk7Ci0gICAgbV9zdHJlYW1Db25uZWN0aW9uLnNldFdh
a2VVcFNlbWFwaG9yZShXVEZNb3ZlKHNlbWFwaG9yZSkpOworICAgIG1fc3RyZWFtQ29ubmVjdGlv
bi5zZXRTZW1hcGhvcmVzKFdURk1vdmUod2FrZVVwU2VtYXBob3JlKSwgV1RGTW92ZShjbGllbnRX
YWl0U2VtYXBob3JlKSk7CiAgICAgbV9kaWRJbml0aWFsaXplID0gdHJ1ZTsKICAgICBtX2xvc3Qg
PSAhZGlkU3VjY2VlZDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUdQVVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVHUFVQcm94eS5oCmluZGV4IDc4M2MwNjIz
ZDFjNTA0OGMyYThjNzY0ZmIyZmZlN2RmZDhkNDJhZGUuLjA2YjRjZjNkNWZiMWU1MGI1MjYxOGYx
MTk4ZTliMjg4MWZmMjdjN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUdQVVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlR1BVUHJveHkuaApAQCAtNzYsNyAr
NzYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb25EaWRDbG9zZShH
UFVQcm9jZXNzQ29ubmVjdGlvbiYpIGZpbmFsOwogCiAgICAgLy8gTWVzc2FnZXMgdG8gYmUgcmVj
ZWl2ZWQuCi0gICAgdm9pZCB3YXNDcmVhdGVkKGJvb2wgZGlkU3VjY2VlZCwgSVBDOjpTZW1hcGhv
cmUmJik7CisgICAgdm9pZCB3YXNDcmVhdGVkKGJvb2wgZGlkU3VjY2VlZCwgSVBDOjpTZW1hcGhv
cmUmJiB3YWtlVXBTZW1hcGhvcmUsIElQQzo6U2VtYXBob3JlJiYgY2xpZW50V2FpdFNlbWFwaG9y
ZSk7CiAKICAgICB2b2lkIHdhaXRVbnRpbEluaXRpYWxpemVkKCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUdQVVByb3h5
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJH
UFUvUmVtb3RlR1BVUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMDAzNWU5NTVlMDZmN2ZlMWY2ZjI4
Y2JjZDJjYTlmNDUxOGFiOGJiNS4uNmM2NWM3N2JiNjExMWJjMzZkMGJlZjVhYzY2NTgyYjE2ZGNm
OGFjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlR1BVUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlR1BVUHJveHkubWVzc2FnZXMuaW4KQEAg
LTIzLDcgKzIzLDcgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKIG1lc3NhZ2VzIC0+IFJl
bW90ZUdQVVByb3h5IE5vdFJlZkNvdW50ZWQgewotICAgIHZvaWQgV2FzQ3JlYXRlZChib29sIGRp
ZFN1Y2NlZWQsIElQQzo6U2VtYXBob3JlIHN0cmVhbVdha2VVcFNlbWFwaG9yZSkKKyAgICB2b2lk
IFdhc0NyZWF0ZWQoYm9vbCBkaWRTdWNjZWVkLCBJUEM6OlNlbWFwaG9yZSBzdHJlYW1XYWtlVXBT
ZW1hcGhvcmUsIElQQzo6U2VtYXBob3JlIHN0cmVhbUNsaWVudFdhaXRTZW1hcGhvcmUpCiB9CiAK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvSVBD
VGVzdGluZ0FQSS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9JUENUZXN0
aW5nQVBJLmNwcAppbmRleCA4NDNlOTBjOTQ0M2FkZDMzZTY5YmFiYjM3MDQ3ZmM4MTE2MzkzZGY3
Li41MmI0NjgzMTczYjI1MzA3MzM0ZWQ1ZDFmYmE5MjAyYjI3Yzc0ZDBlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9JUENUZXN0aW5nQVBJLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9JUENUZXN0aW5nQVBJLmNwcApAQCAtMzIs
NiArMzIsNyBAQAogI2luY2x1ZGUgIkZyYW1lSW5mb0RhdGEuaCIKICNpbmNsdWRlICJHUFVQcm9j
ZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIklQQ1NlbWFwaG9yZS5oIgorI2luY2x1ZGUgIklQ
Q1N0cmVhbVRlc3Rlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiSlNJUENCaW5kaW5nLmgiCiAjaW5j
bHVkZSAiTWVzc2FnZUFyZ3VtZW50RGVzY3JpcHRpb25zLmgiCiAjaW5jbHVkZSAiTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uLmgiCkBAIC0xOTMsNyArMTk0LDcgQEAgcHJpdmF0ZToKICAgICAgICAg
LCBtX3N0cmVhbUNvbm5lY3Rpb24geyBjb25uZWN0aW9uLCBidWZmZXJTaXplIH0KICAgICB7IH0K
IAotICAgIHZvaWQgc2V0V2FrZVVwU2VtYXBob3JlKEpTSVBDU2VtYXBob3JlJiBqc1NlbWFwaG9y
ZSkgeyBtX3N0cmVhbUNvbm5lY3Rpb24uc2V0V2FrZVVwU2VtYXBob3JlKGpzU2VtYXBob3JlLmV4
Y2hhbmdlKCkpOyB9CisgICAgdm9pZCBzZXRTZW1hcGhvcmVzKEpTSVBDU2VtYXBob3JlJiBqc1dh
a2VVcFNlbWFwaG9yZSwgSlNJUENTZW1hcGhvcmUmIGpzQ2xpZW50V2FpdFNlbWFwaG9yZSkgeyBt
X3N0cmVhbUNvbm5lY3Rpb24uc2V0U2VtYXBob3Jlcyhqc1dha2VVcFNlbWFwaG9yZS5leGNoYW5n
ZSgpLCBqc0NsaWVudFdhaXRTZW1hcGhvcmUuZXhjaGFuZ2UoKSk7IH0KIAogICAgIHN0YXRpYyBK
U0NsYXNzUmVmIHdyYXBwZXJDbGFzcygpOwogICAgIHN0YXRpYyBKU0lQQ1N0cmVhbUNsaWVudENv
bm5lY3Rpb24qIHVud3JhcChKU09iamVjdFJlZik7CkBAIC0yMDQsOSArMjA1LDEwIEBAIHByaXZh
dGU6CiAKICAgICBzdGF0aWMgY29uc3QgSlNTdGF0aWNGdW5jdGlvbiogc3RhdGljRnVuY3Rpb25z
KCk7CiAgICAgc3RhdGljIEpTVmFsdWVSZWYgc3RyZWFtQnVmZmVyKEpTQ29udGV4dFJlZiwgSlNP
YmplY3RSZWYsIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBj
b25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pOwotICAg
IHN0YXRpYyBKU1ZhbHVlUmVmIHNldFdha2VVcFNlbWFwaG9yZShKU0NvbnRleHRSZWYsIEpTT2Jq
ZWN0UmVmLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29u
c3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKTsKKyAgICBz
dGF0aWMgSlNWYWx1ZVJlZiBzZXRTZW1hcGhvcmVzKEpTQ29udGV4dFJlZiwgSlNPYmplY3RSZWYs
IEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1Zh
bHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pOwogICAgIHN0YXRpYyBK
U1ZhbHVlUmVmIHNlbmRNZXNzYWdlKEpTQ29udGV4dFJlZiwgSlNPYmplY3RSZWYsIEpTT2JqZWN0
UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFy
Z3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pOwogICAgIHN0YXRpYyBKU1ZhbHVlUmVm
IHNlbmRTeW5jTWVzc2FnZShKU0NvbnRleHRSZWYsIEpTT2JqZWN0UmVmLCBKU09iamVjdFJlZiB0
aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVu
dHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKTsKKyAgICBzdGF0aWMgSlNWYWx1ZVJlZiBzZW5k
SVBDU3RyZWFtVGVzdGVyU3luY0NyYXNoT25aZXJvKEpTQ29udGV4dFJlZiwgSlNPYmplY3RSZWYs
IEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1Zh
bHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pOwogCiAgICAgV2Vha1B0
cjxKU0lQQz4gbV9qc0lQQzsKICAgICBJUEM6OlN0cmVhbUNsaWVudENvbm5lY3Rpb24gbV9zdHJl
YW1Db25uZWN0aW9uOwpAQCAtODU0LDkgKzg1NiwxMCBAQCBjb25zdCBKU1N0YXRpY0Z1bmN0aW9u
KiBKU0lQQ1N0cmVhbUNsaWVudENvbm5lY3Rpb246OnN0YXRpY0Z1bmN0aW9ucygpCiB7CiAgICAg
c3RhdGljIGNvbnN0IEpTU3RhdGljRnVuY3Rpb24gZnVuY3Rpb25zW10gPSB7CiAgICAgICAgIHsg
InN0cmVhbUJ1ZmZlciIsIHN0cmVhbUJ1ZmZlciwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVs
ZXRlIHwga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB9LAotICAgICAgICB7ICJzZXRXYWtl
VXBTZW1hcGhvcmUiLCBzZXRXYWtlVXBTZW1hcGhvcmUsIGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfSwKKyAgICAgICAgeyAic2V0
U2VtYXBob3JlcyIsIHNldFNlbWFwaG9yZXMsIGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0
ZSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfSwKICAgICAgICAgeyAic2VuZE1lc3Nh
Z2UiLCBzZW5kTWVzc2FnZSwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIHwga0pTUHJv
cGVydHlBdHRyaWJ1dGVSZWFkT25seSB9LAogICAgICAgICB7ICJzZW5kU3luY01lc3NhZ2UiLCBz
ZW5kU3luY01lc3NhZ2UsIGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB8IGtKU1Byb3Bl
cnR5QXR0cmlidXRlUmVhZE9ubHkgfSwKKyAgICAgICAgeyAic2VuZElQQ1N0cmVhbVRlc3RlclN5
bmNDcmFzaE9uWmVybyIsIHNlbmRJUENTdHJlYW1UZXN0ZXJTeW5jQ3Jhc2hPblplcm8sIGtKU1By
b3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkg
fSwKICAgICAgICAgeyAwLCAwLCAwIH0KICAgICB9OwogICAgIHJldHVybiBmdW5jdGlvbnM7CkBA
IC04NzUsNyArODc4LDcgQEAgSlNWYWx1ZVJlZiBKU0lQQ1N0cmVhbUNsaWVudENvbm5lY3Rpb246
OnN0cmVhbUJ1ZmZlcihKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmoKICAgICByZXR1cm4gSlNJ
UENTdHJlYW1Db25uZWN0aW9uQnVmZmVyOjpjcmVhdGUoKmpzU3RyZWFtQ29ubmVjdGlvbiktPmNy
ZWF0ZUpTV3JhcHBlcihjb250ZXh0KTsKIH0KIAotSlNWYWx1ZVJlZiBKU0lQQ1N0cmVhbUNsaWVu
dENvbm5lY3Rpb246OnNldFdha2VVcFNlbWFwaG9yZShKU0NvbnRleHRSZWYgY29udGV4dCwgSlNP
YmplY3RSZWYsIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBj
b25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCitKU1Zh
bHVlUmVmIEpTSVBDU3RyZWFtQ2xpZW50Q29ubmVjdGlvbjo6c2V0U2VtYXBob3JlcyhKU0NvbnRl
eHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYsIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVf
dCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVm
KiBleGNlcHRpb24pCiB7CiAgICAgYXV0byogZ2xvYmFsT2JqZWN0ID0gdG9KUyhjb250ZXh0KTsK
ICAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrKGdsb2JhbE9iamVjdC0+dm0oKSk7CkBAIC04ODUs
MTggKzg4OCwyNCBAQCBKU1ZhbHVlUmVmIEpTSVBDU3RyZWFtQ2xpZW50Q29ubmVjdGlvbjo6c2V0
V2FrZVVwU2VtYXBob3JlKEpTQ29udGV4dFJlZiBjb250ZXh0LAogICAgICAgICByZXR1cm4gSlNW
YWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiAgICAgfQogCi0gICAgaWYgKGFyZ3VtZW50Q291
bnQgPCAxKSB7Ci0gICAgICAgICpleGNlcHRpb24gPSBjcmVhdGVUeXBlRXJyb3IoY29udGV4dCwg
Ik11c3Qgc3BlY2lmeSBhbiBJUEMgc2VtYXBob3JlIGFzIHRoZSBmaXJzdCBhcmd1bWVudCJfcyk7
CisgICAgaWYgKGFyZ3VtZW50Q291bnQgPCAyKSB7CisgICAgICAgICpleGNlcHRpb24gPSBjcmVh
dGVUeXBlRXJyb3IoY29udGV4dCwgIk11c3Qgc3BlY2lmeSBhbiBJUEMgc2VtYXBob3JlIGFzIHRo
ZSBmaXJzdCBhbmQgc2Vjb25kIGFyZ3VtZW50Il9zKTsKKyAgICAgICAgcmV0dXJuIEpTVmFsdWVN
YWtlVW5kZWZpbmVkKGNvbnRleHQpOworICAgIH0KKworICAgIFJlZlB0ciBqc1dha2VVcFNlbWFw
aG9yZSA9IEpTSVBDU2VtYXBob3JlOjp0b1dyYXBwZWQoY29udGV4dCwgYXJndW1lbnRzWzBdKTsK
KyAgICBpZiAoIWpzV2FrZVVwU2VtYXBob3JlKSB7CisgICAgICAgICpleGNlcHRpb24gPSBjcmVh
dGVUeXBlRXJyb3IoY29udGV4dCwgIldyb25nIHR5cGUgKGV4cGVjdGVkIFNlbWFwaG9yZSkiX3Mp
OwogICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiAgICAgfQog
Ci0gICAgUmVmUHRyIGpzU2VtYXBob3JlID0gSlNJUENTZW1hcGhvcmU6OnRvV3JhcHBlZChjb250
ZXh0LCBhcmd1bWVudHNbMF0pOwotICAgIGlmICghanNTZW1hcGhvcmUpIHsKKyAgICBSZWZQdHIg
anNDbGllbnRXYWl0U2VtYXBob3JlID0gSlNJUENTZW1hcGhvcmU6OnRvV3JhcHBlZChjb250ZXh0
LCBhcmd1bWVudHNbMV0pOworICAgIGlmICghanNDbGllbnRXYWl0U2VtYXBob3JlKSB7CiAgICAg
ICAgICpleGNlcHRpb24gPSBjcmVhdGVUeXBlRXJyb3IoY29udGV4dCwgIldyb25nIHR5cGUgKGV4
cGVjdGVkIFNlbWFwaG9yZSkiX3MpOwogICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmlu
ZWQoY29udGV4dCk7CiAgICAgfQogCi0gICAganNTdHJlYW1Db25uZWN0aW9uLT5zZXRXYWtlVXBT
ZW1hcGhvcmUoKmpzU2VtYXBob3JlKTsKKyAgICBqc1N0cmVhbUNvbm5lY3Rpb24tPnNldFNlbWFw
aG9yZXMoKmpzV2FrZVVwU2VtYXBob3JlLCAqanNDbGllbnRXYWl0U2VtYXBob3JlKTsKICAgICBy
ZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9CiAKQEAgLTEwMTksNiArMTAy
OCw2MSBAQCBKU1ZhbHVlUmVmIEpTSVBDU3RyZWFtQ2xpZW50Q29ubmVjdGlvbjo6c2VuZFN5bmNN
ZXNzYWdlKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKUwogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVu
ZGVmaW5lZChjb250ZXh0KTsKIH0KIAorLy8gRklYTUUoaHR0cDovL3dlYmtpdC5vcmcvYi8yMzcx
OTcpOiBDYW5ub3Qgc2VuZCBhcmJpdHJhcnkgbWVzc2FnZXMsIHNvIHdlIGhhcmQtY29kZSB0aGlz
IG9uZSB0byBiZSBhYmxlIHRvIHNlbmQgaXQuCitKU1ZhbHVlUmVmIEpTSVBDU3RyZWFtQ2xpZW50
Q29ubmVjdGlvbjo6c2VuZElQQ1N0cmVhbVRlc3RlclN5bmNDcmFzaE9uWmVybyhKU0NvbnRleHRS
ZWYgY29udGV4dCwgSlNPYmplY3RSZWYsIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBh
cmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBl
eGNlcHRpb24pCit7CisgICAgYXV0byogZ2xvYmFsT2JqZWN0ID0gdG9KUyhjb250ZXh0KTsKKyAg
ICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrKGdsb2JhbE9iamVjdC0+dm0oKSk7CisKKyAgICBSZWZQ
dHIganNTdHJlYW1Db25uZWN0aW9uID0gdG9XcmFwcGVkKGNvbnRleHQsIHRoaXNPYmplY3QpOwor
ICAgIGlmICghanNTdHJlYW1Db25uZWN0aW9uKSB7CisgICAgICAgICpleGNlcHRpb24gPSBjcmVh
dGVUeXBlRXJyb3IoY29udGV4dCwgIldyb25nIHR5cGUiX3MpOworICAgICAgICByZXR1cm4gSlNW
YWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CisgICAgfQorCisgICAgaWYgKGFyZ3VtZW50Q291
bnQgPCAzKSB7CisgICAgICAgICpleGNlcHRpb24gPSBjcmVhdGVUeXBlRXJyb3IoY29udGV4dCwg
Ik11c3Qgc3BlY2lmeSBkZXN0aW5hdGlvbiBJRCwgdmFsdWUsIGFuZCB0aW1lb3V0IGFzIHRoZSBm
aXJzdCB0aHJlZSBhcmd1bWVudHMiX3MpOworICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRl
ZmluZWQoY29udGV4dCk7CisgICAgfQorCisgICAgYXV0byBkZXN0aW5hdGlvbklEID0gZGVzdGlu
YXRpb25JREZyb21Bcmd1bWVudChnbG9iYWxPYmplY3QsIGFyZ3VtZW50c1swXSwgZXhjZXB0aW9u
KTsKKyAgICBpZiAoIWRlc3RpbmF0aW9uSUQpCisgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVu
ZGVmaW5lZChjb250ZXh0KTsKKworICAgIGludDMyX3QgdmFsdWU7CisgICAgeworICAgICAgICBh
dXRvIGpzVmFsdWUgPSB0b0pTKGdsb2JhbE9iamVjdCwgYXJndW1lbnRzWzFdKTsKKyAgICAgICAg
aWYgKCFqc1ZhbHVlLmlzTnVtYmVyKCkpIHsKKyAgICAgICAgICAgICpleGNlcHRpb24gPSBjcmVh
dGVUeXBlRXJyb3IoY29udGV4dCwgInZhbHVlIG11c3QgYmUgYSBudW1iZXIiX3MpOworICAgICAg
ICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworICAgICAgICB9Cisg
ICAgICAgIHZhbHVlID0gc3RhdGljX2Nhc3Q8aW50MzJfdD4oanNWYWx1ZS5hc051bWJlcigpKTsK
KyAgICB9CisKKyAgICBTZWNvbmRzIHRpbWVvdXREdXJhdGlvbjsKKyAgICB7CisgICAgICAgIGF1
dG8ganNWYWx1ZSA9IHRvSlMoZ2xvYmFsT2JqZWN0LCBhcmd1bWVudHNbMl0pOworICAgICAgICBp
ZiAoIWpzVmFsdWUuaXNOdW1iZXIoKSkgeworICAgICAgICAgICAgKmV4Y2VwdGlvbiA9IGNyZWF0
ZVR5cGVFcnJvcihjb250ZXh0LCAidGltZW91dCBtdXN0IGJlIGEgbnVtYmVyIl9zKTsKKyAgICAg
ICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKKyAgICAgICAgfQor
ICAgICAgICB0aW1lb3V0RHVyYXRpb24gPSBTZWNvbmRzIHsganNWYWx1ZS5hc051bWJlcigpIH07
CisgICAgfQorCisgICAgYXV0byYgc3RyZWFtQ29ubmVjdGlvbiA9IGpzU3RyZWFtQ29ubmVjdGlv
bi0+Y29ubmVjdGlvbigpOworICAgIGludDMyX3QgcmVzdWx0VmFsdWUgPSAwOworICAgIGVudW0g
SlNJUENTdHJlYW1UZXN0ZXJJZGVudGlmaWVyVHlwZSB7IH07CisgICAgYXV0byBkZXN0aW5hdGlv
biA9IG1ha2VPYmplY3RJZGVudGlmaWVyPEpTSVBDU3RyZWFtVGVzdGVySWRlbnRpZmllclR5cGU+
KCpkZXN0aW5hdGlvbklEKTsKKworICAgIGF1dG8gcmVzdWx0ID0gc3RyZWFtQ29ubmVjdGlvbi5z
ZW5kU3luYyhNZXNzYWdlczo6SVBDU3RyZWFtVGVzdGVyOjpTeW5jQ3Jhc2hPblplcm8odmFsdWUp
LCBNZXNzYWdlczo6SVBDU3RyZWFtVGVzdGVyOjpTeW5jQ3Jhc2hPblplcm86OlJlcGx5KHJlc3Vs
dFZhbHVlKSwgZGVzdGluYXRpb24sIHRpbWVvdXREdXJhdGlvbik7CisgICAgaWYgKCFyZXN1bHQp
IHsKKyAgICAgICAgKmV4Y2VwdGlvbiA9IGNyZWF0ZVR5cGVFcnJvcihjb250ZXh0LCAic3luYyBz
ZW5kIGZhaWxlZCJfcyk7CisgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250
ZXh0KTsKKyAgICB9CisKKyAgICByZXR1cm4gSlNWYWx1ZU1ha2VOdW1iZXIoY29udGV4dCwgcmVz
dWx0VmFsdWUpOworfQorCiBKU09iamVjdFJlZiBKU0lQQ1N0cmVhbUNvbm5lY3Rpb25CdWZmZXI6
OmNyZWF0ZUpTV3JhcHBlcihKU0NvbnRleHRSZWYgY29udGV4dCkKIHsKICAgICBhdXRvKiBnbG9i
YWxPYmplY3QgPSB0b0pTKGNvbnRleHQpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGY5ZDE2ZWI3YmU1YWVkMjBlNmZkYmRi
MmQ5MDZlMGM3ZDkwZWJjYTAuLmQwMWVlOWZkMGM0ZTE0MTJiMDY4MWY3MTIzNzZmMTNkZmZmMTBk
ZjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMi0wNS0wMiAgS2ltbW8gS2lubnVuZW4gIDxr
a2lubnVuZW5AYXBwbGUuY29tPgorCisgICAgICAgIElQQyBzdHJlYW0gY29ubmVjdGlvbiBzZW5k
cyBzaG91bGQgZmFpbCBpbW1lZGlhdGVseSB3aGVuIGNvbm5lY3Rpb24gY2xvc2VzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgyNTMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgdGVzdCB3b3JrcyBv
biBtaW5pYnJvd3NlciBidXQgR1BVUCBzdGFydHVwIGNvZGUgZmFpbHMgaW4gcnVuLXdlYmtpdC10
ZXN0cywKKyAgICAgICAgdGh1cyBkaXNhYmxlZC4KKworICAgICAgICAqIGlwYy9zdHJlYW0tc3lu
Yy1jcmFzaC1uby10aW1lb3V0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaXBjL3N0
cmVhbS1zeW5jLWNyYXNoLW5vLXRpbWVvdXQuaHRtbDogQWRkZWQuCisgICAgICAgICogaXBjL3N0
cmVhbS1zeW5jLXJlcGx5LXNoYXJlZC1tZW1vcnkuaHRtbDogQWRqdXN0IGFmdGVyIEFQSSBjaGFu
Z2UuCisKIDIwMjItMDUtMDIgIE9yaW9sIEJydWZhdSAgPG9icnVmYXVAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBbY3Nzb21dIEVudW1lcmF0ZSBhbGwgbG9naWNhbCBsb25naGFuZHMgaW4gdGhlIGNv
bXB1dGVkIHN0eWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIv
TGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA0ZDIyNTg1YTQzZDhkZjE2MDNkNThh
ZWQ4MGZkNjU5MGIzZWIxMDAzLi5mOThhNmM5YzI1NjEyMTU1ZmY4ZmVmMTdjNDlkMDNkOWIxMzlm
ZDU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91
dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTUwOTMsNiArNTA5Myw5IEBAIHdlYmtpdC5vcmcv
Yi8yMzMzNDQgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvbW90aW9uL29mZnNl
dC1yb3RhdGUtMDAyCiAjIElQQyB0ZXN0IGZhaWxpbmcgaW4gRGVidWcgbW9kZSBkdWUgdG8gYXNz
ZXJ0LgogWyBEZWJ1ZyBdIGlwYy9zZW5kLWludmFsaWQtbWVzc2FnZS5odG1sIFsgU2tpcCBdCiAK
KyMgUmVzdGFydGVkIEdQVVAgc2VlbXMgdG8gY3Jhc2guCit3ZWJraXQub3JnL2IvMjM5OTU5IGlw
Yy9zdHJlYW0tc3luYy1jcmFzaC1uby10aW1lb3V0Lmh0bWwgWyBTa2lwIF0KKwogIyBUaGUgdGVz
dCBpbnZva2VzIHJhbmRvbSBtZXNzYWdlcywgcG90ZW50aWFsbHkgcHJvZHVjZXMgcmFuZG9tIHJl
c3VsdHMuCiBpcGMvc3RhcnQtbWVzc2FnZS10ZXN0aW5nLmh0bWwgWyBTa2lwIF0KIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaXBjL3N0cmVhbS1zeW5jLWNyYXNoLW5vLXRpbWVvdXQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaXBjL3N0cmVhbS1zeW5jLWNyYXNoLW5vLXRpbWVvdXQtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNhNTk3OTc4NzMxZTIyNDgwYjg0ZTM0NGQ4MWJmNGE4Yjk5
NmVmZDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pcGMvc3RyZWFtLXN5bmMtY3Jh
c2gtbm8tdGltZW91dC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitDT05TT0xFIE1FU1NB
R0U6IFR5cGVFcnJvcjogQmFkIHR5cGUgbmFtZQorCitGQUlMIFRlc3QgdGhhdCBzdHJlYW0gc3lu
YyBtZXNzYWdlIGNyYXNoIGlzIG5vdGljZWQgaW1tZWRpYXRlbHkgVHlwZUVycm9yOiBCYWQgdHlw
ZSBuYW1lCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lwYy9zdHJlYW0tc3luYy1jcmFzaC1u
by10aW1lb3V0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pcGMvc3RyZWFtLXN5bmMtY3Jhc2gtbm8tdGlt
ZW91dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYwZjk3MmRlN2MxYjhiNjI3MzZjOGM0NTJlZDRmYmQ3YjJh
YTAyZmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pcGMvc3RyZWFtLXN5bmMtY3Jh
c2gtbm8tdGltZW91dC5odG1sCkBAIC0wLDAgKzEsMzcgQEAKKzwhZG9jdHlwZSBodG1sPjwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgSVBDVGVzdGluZ0FQSUVuYWJsZWQ9dHJ1ZSBdIC0tPgorPHRp
dGxlPlRlc3QgdGhhdCBzdHJlYW0gc3luYyBtZXNzYWdlIGNyYXNoIGlzIG5vdGljZWQgaW1tZWRp
YXRlbHk8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKzxib2R5PgorPHNjcmlwdD4KK3NldHVwKHsgc2luZ2xlX3Rlc3Q6IHRydWUg
fSk7CitpZiAod2luZG93LklQQykgeyAvLyBGb3IgY29tcGlsZXMgd2l0aCAhRU5BQkxFKElQQ19U
RVNUSU5HX0FQSSkKKyAgICBjb25zdCBkZWZhdWx0VGltZW91dCA9IDEwOworICAgIGNvbnN0IGJ1
ZmZlclNpemUgPSAxMDA7CisgICAgY29uc3Qgc3RyZWFtVGVzdGVySUQgPSA0NTU3OworICAgIGZv
ciAoY29uc3QgcHJvY2Vzc1RhcmdldCBvZiBJUEMucHJvY2Vzc1RhcmdldHMpIHsKKyAgICAgICAg
aWYgKHByb2Nlc3NUYXJnZXQgPT0gIlVJIikKKyAgICAgICAgICAgIGNvbnRpbnVlOyAvLyBDcmFz
aGluZyBVSSBpcyBub3Qgc3VwcG9ydGVkLgorICAgICAgICBjb25zdCBzdHJlYW1Db25uZWN0aW9u
ID0gSVBDLmNyZWF0ZVN0cmVhbUNsaWVudENvbm5lY3Rpb24ocHJvY2Vzc1RhcmdldCwgYnVmZmVy
U2l6ZSk7CisgICAgICAgIElQQy5zZW5kTWVzc2FnZShwcm9jZXNzVGFyZ2V0LCAwLCBJUEMubWVz
c2FnZXMuSVBDVGVzdGVyX0NyZWF0ZVN0cmVhbVRlc3Rlci5uYW1lLCBbCisgICAgICAgICAgICB7
IHR5cGU6ICd1aW50NjRfdCcsIHZhbHVlOiBzdHJlYW1UZXN0ZXJJRCB9LAorICAgICAgICAgICAg
eyB0eXBlOiAnU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlcicsIHZhbHVlOiBzdHJlYW1Db25uZWN0aW9u
LnN0cmVhbUJ1ZmZlcigpIH0sCisgICAgICAgIF0pOworICAgICAgICBjb25zdCBhcmd1bWVudHMg
PSBJUEMud2FpdEZvck1lc3NhZ2UocHJvY2Vzc1RhcmdldCwgc3RyZWFtVGVzdGVySUQsIElQQy5t
ZXNzYWdlcy5JUENTdHJlYW1UZXN0ZXJQcm94eV9XYXNDcmVhdGVkLm5hbWUsIGRlZmF1bHRUaW1l
b3V0KTsKKyAgICAgICAgc3RyZWFtQ29ubmVjdGlvbi5zZXRTZW1hcGhvcmVzKGFyZ3VtZW50c1sw
XS52YWx1ZSwgYXJndW1lbnRzWzFdLnZhbHVlKTsKKworICAgICAgICAvLyBUZXN0IHN0YXJ0cyBo
ZXJlLgorICAgICAgICBjb25zdCByZXN1bHQgPSBzdHJlYW1Db25uZWN0aW9uLnNlbmRJUENTdHJl
YW1UZXN0ZXJTeW5jQ3Jhc2hPblplcm8oc3RyZWFtVGVzdGVySUQsIDc4LCBkZWZhdWx0VGltZW91
dCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMocmVzdWx0LCA3OCwgIGBzeW5jIG1lc3NhZ2VzIHdv
cmsgZm9yICR7IHByb2Nlc3NUYXJnZXQgfWApOworCisgICAgICAgIGNvbnN0IHN0YXJ0ID0gRGF0
ZS5ub3coKTsKKyAgICAgICAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsCisgICAgICAgICAg
ICAoKSA9PiB7IHN0cmVhbUNvbm5lY3Rpb24uc2VuZElQQ1N0cmVhbVRlc3RlclN5bmNDcmFzaE9u
WmVybyhzdHJlYW1UZXN0ZXJJRCwgMCwgZGVmYXVsdFRpbWVvdXQpOyB9LAorICAgICAgICAgICAg
YGNyYXNoaW5nIHN5bmMgbWVzc2FnZSBtdXN0IHJldHVybiBmYWlsdXJlIGZvciAkeyBwcm9jZXNz
VGFyZ2V0IH1gKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihEYXRlLm5vdygpIC0gc3RhcnQs
IDUwMCwgYGNyYXNoaW5nIHN5bmMgbWVzc2FnZSBtdXN0IGNvbXBsZXRlIGluIDUwMG1zIGZvciAk
eyBwcm9jZXNzVGFyZ2V0IH1gKTsKKyAgICAgICAgY29uc29sZS5sb2coYHR0dDogJHtEYXRlLm5v
dygpIC0gc3RhcnR9YCk7CisgICAgfQorfQorZG9uZSgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaXBjL3N0
cmVhbS1zeW5jLXJlcGx5LXNoYXJlZC1tZW1vcnkuaHRtbCBiL0xheW91dFRlc3RzL2lwYy9zdHJl
YW0tc3luYy1yZXBseS1zaGFyZWQtbWVtb3J5Lmh0bWwKaW5kZXggZGYwMjlhZDFlMmNmZGZkN2Rm
OTkzYzI3ZTYyNjVjZGVlZmVkNDVkMi4uYTk5YTM4ZjQxN2RiZGNiNjlmNjY5MGZhZjRmMzM1OWMy
NDA4ZTJmOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaXBjL3N0cmVhbS1zeW5jLXJlcGx5LXNo
YXJlZC1tZW1vcnkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pcGMvc3RyZWFtLXN5bmMtcmVwbHkt
c2hhcmVkLW1lbW9yeS5odG1sCkBAIC0xNiw3ICsxNiw3IEBAIGlmICh3aW5kb3cuSVBDKSB7IC8v
IEZvciBjb21waWxlcyB3aXRoICFFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQogICAgICAgICAgICAg
eyB0eXBlOiAnU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlcicsIHZhbHVlOiBzdHJlYW1Db25uZWN0aW9u
LnN0cmVhbUJ1ZmZlcigpIH0sCiAgICAgICAgIF0pOwogICAgICAgICBjb25zdCBhcmd1bWVudHMg
PSBJUEMud2FpdEZvck1lc3NhZ2UocHJvY2Vzc1RhcmdldCwgc3RyZWFtVGVzdGVySUQsIElQQy5t
ZXNzYWdlcy5JUENTdHJlYW1UZXN0ZXJQcm94eV9XYXNDcmVhdGVkLm5hbWUsIGRlZmF1bHRUaW1l
b3V0KTsKLSAgICAgICAgc3RyZWFtQ29ubmVjdGlvbi5zZXRXYWtlVXBTZW1hcGhvcmUoYXJndW1l
bnRzWzBdLnZhbHVlKTsKKyAgICAgICAgc3RyZWFtQ29ubmVjdGlvbi5zZXRTZW1hcGhvcmVzKGFy
Z3VtZW50c1swXS52YWx1ZSwgYXJndW1lbnRzWzFdLnZhbHVlKTsKIAogICAgICAgICAvLyBUZXN0
IHN0YXJ0cyBoZXJlLgogICAgICAgICB0cnkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458722</attachid>
            <date>2022-05-02 23:09:00 -0700</date>
            <delta_ts>2022-05-03 07:18:05 -0700</delta_ts>
            <desc>For landing</desc>
            <filename>bug-238253-20220503090858.patch</filename>
            <type>text/plain</type>
            <size>42968</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzNzE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDEwZjM3MTdiYTA4NjBhZjRl
ZmVhMTMyNWU4NWU5Mzc2MzU0OGY2MTcuLjY1YmQ3M2VkZTNiOTIyNDk5NjgyNmVmMDIzZTZiNTIx
NmZiNGIwYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjQgQEAKKzIwMjItMDUtMDIgIEtpbW1vIEtp
bm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBJUEMgc3RyZWFtIGNvbm5l
Y3Rpb24gc2VuZHMgc2hvdWxkIGZhaWwgaW1tZWRpYXRlbHkgd2hlbiBjb25uZWN0aW9uIGNsb3Nl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4MjUz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIFNlbmQgdGhl
IFN0cmVhbUNsaWVudENvbm5lY3Rpb24gY2xpZW50IHdhaXQgc2VtYXBob3JlIGZyb20KKyAgICAg
ICAgU3RyZWFtU2VydmVyQ29ubmVjdGlvbi4gVGhpcyB3YXkgdGhlIGNsaWVudCB3aWxsIGZhaWwg
dGhlIHdhaXQKKyAgICAgICAgd2hlbiB0aGUgc2VydmVyIGNyYXNoZXMuCisKKyAgICAgICAgVGVz
dDogaXBjL3N0cmVhbS1zeW5jLWNyYXNoLW5vLXRpbWVvdXQuaHRtbAorCisgICAgICAgICogR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjp3b3JrUXVldWVJbml0aWFsaXplKToKKyAg
ICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpzdGFydExpc3RlbmluZ0Zv
cklQQyk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlR1BVLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR1BVOjp3b3JrUXVldWVJbml0aWFsaXplKToKKyAg
ICAgICAgKiBQbGF0Zm9ybS9JUEMvU3RyZWFtQ2xpZW50Q29ubmVjdGlvbi5jcHA6CisgICAgICAg
IChJUEM6OlN0cmVhbUNsaWVudENvbm5lY3Rpb246OnNldFNlbWFwaG9yZXMpOgorICAgICAgICAo
SVBDOjpTdHJlYW1DbGllbnRDb25uZWN0aW9uOjp3YWtlVXBTZXJ2ZXIpOgorICAgICAgICAqIFBs
YXRmb3JtL0lQQy9TdHJlYW1DbGllbnRDb25uZWN0aW9uLmg6CisgICAgICAgIChJUEM6OlN0cmVh
bUNsaWVudENvbm5lY3Rpb246OnRyeUFjcXVpcmUpOgorICAgICAgICAoSVBDOjpTdHJlYW1DbGll
bnRDb25uZWN0aW9uOjp0cnlBY3F1aXJlQWxsKToKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvU3Ry
ZWFtQ29ubmVjdGlvbkJ1ZmZlci5jcHA6CisgICAgICAgIChJUEM6OlN0cmVhbUNvbm5lY3Rpb25C
dWZmZXI6OlN0cmVhbUNvbm5lY3Rpb25CdWZmZXIpOgorICAgICAgICAoSVBDOjpTdHJlYW1Db25u
ZWN0aW9uQnVmZmVyOjpvcGVyYXRvcj0pOgorICAgICAgICAoSVBDOjpTdHJlYW1Db25uZWN0aW9u
QnVmZmVyOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoSVBDOjpTdHJlYW1Db25uZWN0aW9uQnVm
ZmVyOjpkZWNvZGUpOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9TdHJlYW1Db25uZWN0aW9uQnVm
ZmVyLmg6CisgICAgICAgIChJUEM6OlN0cmVhbUNvbm5lY3Rpb25CdWZmZXI6OmRhdGFTaXplIGNv
bnN0KToKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvU3RyZWFtU2VydmVyQ29ubmVjdGlvbi5jcHA6
CisgICAgICAgIChJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb246OnJlbGVhc2UpOgorICAgICAg
ICAoSVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uOjpyZWxlYXNlQWxsKToKKyAgICAgICAgKiBQ
bGF0Zm9ybS9JUEMvU3RyZWFtU2VydmVyQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFNoYXJlZC9J
UENTdHJlYW1UZXN0ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpJUENTdHJlYW1UZXN0ZXI6Omlu
aXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjpJUENTdHJlYW1UZXN0ZXI6OnN5bmNDcmFzaE9u
WmVybyk6CisgICAgICAgICogU2hhcmVkL0lQQ1N0cmVhbVRlc3Rlci5oOgorICAgICAgICAqIFNo
YXJlZC9JUENTdHJlYW1UZXN0ZXIubWVzc2FnZXMuaW46CisgICAgICAgICogU2hhcmVkL0lQQ1N0
cmVhbVRlc3RlclByb3h5Lmg6CisgICAgICAgICogU2hhcmVkL0lQQ1N0cmVhbVRlc3RlclByb3h5
Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdy
YXBoaWNzQ29udGV4dEdMUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGlj
c0NvbnRleHRHTFByb3h5Ojp3YXNDcmVhdGVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Lmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5tZXNzYWdlcy5p
bjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHk6OnN0cmVhbUNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHk6OmRpZEluaXRpYWxpemUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbjoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlR1BVUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHUFVQcm94eTo6d2FzQ3JlYXRlZCk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUdQVVByb3h5Lmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUdQVVByb3h5Lm1l
c3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9JUENUZXN0aW5nQVBJLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6SVBDVGVzdGluZ0FQSTo6SlNJUENTdHJlYW1DbGllbnRDb25u
ZWN0aW9uOjpzZXRTZW1hcGhvcmVzKToKKyAgICAgICAgKFdlYktpdDo6SVBDVGVzdGluZ0FQSTo6
SlNJUENTdHJlYW1DbGllbnRDb25uZWN0aW9uOjpzdGF0aWNGdW5jdGlvbnMpOgorICAgICAgICAo
V2ViS2l0OjpJUENUZXN0aW5nQVBJOjpKU0lQQ1N0cmVhbUNsaWVudENvbm5lY3Rpb246OnNlbmRJ
UENTdHJlYW1UZXN0ZXJTeW5jQ3Jhc2hPblplcm8pOgorCiAyMDIyLTA1LTAyICBUaW0gSG9ydG9u
ICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyOTIz
NTEpOiBQcm9jZXNzZXMgbm8gbG9uZ2VyIGdldCB0aGUgcmlnaHQgamV0c2FtIHByaW9yaXR5IG9u
IGlPUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZUdyYXBoaWNzQ29udGV4dEdMLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKaW5kZXggZTRiYTYwMzI4YWIxZGQ1NThiMWM5
NzJjMmNiZjUzZmUzNjU2ZThhZi4uMDI2NjZkNDFiNDE4ZWYzNTA2NjNmYzc5OTJlYTFlNmQ3MmQ1
ODQ5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZUdyYXBoaWNzQ29udGV4dEdMLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwCkBAIC0xMzEsOSArMTMxLDkgQEAgdm9p
ZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6d29ya1F1ZXVlSW5pdGlhbGl6ZShXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHRHTEF0dHIKICAgICAgICAgbV9jb250ZXh0LT5zZXRDbGllbnQodGhpcyk7
CiAgICAgICAgIFN0cmluZyBleHRlbnNpb25zID0gbV9jb250ZXh0LT5nZXRTdHJpbmcoR3JhcGhp
Y3NDb250ZXh0R0w6OkVYVEVOU0lPTlMpOwogICAgICAgICBTdHJpbmcgcmVxdWVzdGFibGVFeHRl
bnNpb25zID0gbV9jb250ZXh0LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0R0w6OlJFUVVFU1RB
QkxFX0VYVEVOU0lPTlNfQU5HTEUpOwotICAgICAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5OjpXYXNDcmVhdGVkKHRydWUsIHJlbW90ZUdyYXBoaWNzQ29udGV4
dEdMU3RyZWFtV29ya1F1ZXVlKCkud2FrZVVwU2VtYXBob3JlKCksIGV4dGVuc2lvbnMsIHJlcXVl
c3RhYmxlRXh0ZW5zaW9ucykpOworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVHcmFwaGlj
c0NvbnRleHRHTFByb3h5OjpXYXNDcmVhdGVkKHRydWUsIHJlbW90ZUdyYXBoaWNzQ29udGV4dEdM
U3RyZWFtV29ya1F1ZXVlKCkud2FrZVVwU2VtYXBob3JlKCksIG1fc3RyZWFtQ29ubmVjdGlvbi0+
Y2xpZW50V2FpdFNlbWFwaG9yZSgpLCBleHRlbnNpb25zLCByZXF1ZXN0YWJsZUV4dGVuc2lvbnMp
KTsKICAgICB9IGVsc2UKLSAgICAgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eTo6V2FzQ3JlYXRlZChmYWxzZSwgSVBDOjpTZW1hcGhvcmUgeyB9LCBlbXB0eVN0
cmluZygpLCBlbXB0eVN0cmluZygpKSk7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMUHJveHk6Oldhc0NyZWF0ZWQoZmFsc2UsIHsgfSwgeyB9LCBlbXB0eVN0
cmluZygpLCBlbXB0eVN0cmluZygpKSk7CiB9CiAKIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0w6OndvcmtRdWV1ZVVuaW5pdGlhbGl6ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKaW5kZXgg
YzJjMzM0MWRjZGM3MmIwNzFjZTg0OTE2MDRmZDkzMWQ0YTM4MWQ4ZC4uNGJlYjBhMzgyNTczOTQ5
ZDZhYTA2OTQyNDIxY2U3MWI3YmFhNzJhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcApAQCAt
MTExLDcgKzExMSw3IEBAIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6c3RhcnRMaXN0ZW5p
bmdGb3JJUEMoKQogICAgIH0KICAgICBtX3N0cmVhbUNvbm5lY3Rpb24tPnN0YXJ0UmVjZWl2aW5n
TWVzc2FnZXMoKnRoaXMsIE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjptZXNzYWdl
UmVjZWl2ZXJOYW1lKCksIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIudG9VSW50NjQoKSk7
CiAgICAgbV9zdHJlYW1Db25uZWN0aW9uLT5vcGVuKCk7Ci0gICAgc2VuZChNZXNzYWdlczo6UmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpEaWRDcmVhdGVXYWtlVXBTZW1hcGhvcmVGb3JEaXNw
bGF5TGlzdFN0cmVhbShtX3dvcmtRdWV1ZS0+d2FrZVVwU2VtYXBob3JlKCkpLCBtX3JlbmRlcmlu
Z0JhY2tlbmRJZGVudGlmaWVyKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHk6OkRpZEluaXRpYWxpemUobV93b3JrUXVldWUtPndha2VVcFNlbWFwaG9yZSgp
LCBtX3N0cmVhbUNvbm5lY3Rpb24tPmNsaWVudFdhaXRTZW1hcGhvcmUoKSksIG1fcmVuZGVyaW5n
QmFja2VuZElkZW50aWZpZXIpOwogfQogCiB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnN0
b3BMaXN0ZW5pbmdGb3JJUEMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVHUFUuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVHUFUuY3BwCmluZGV4IDgyNmJiYTVjYWY1MjQxNDQxYzAz
YWQ0MGFmMTRmNDc3MDVhOGU1MGEuLmMxNDE5OTljOWYyZTE2YmViNzBmMWQ4MWQxMDI2NzI1MzA1
NDA2NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJH
UFUvUmVtb3RlR1BVLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
V2ViR1BVL1JlbW90ZUdQVS5jcHAKQEAgLTk0LDkgKzk0LDkgQEAgdm9pZCBSZW1vdGVHUFU6Ondv
cmtRdWV1ZUluaXRpYWxpemUoKQogI2VuZGlmCiAgICAgaWYgKGJhY2tpbmcpIHsKICAgICAgICAg
bV9iYWNraW5nID0gYmFja2luZy5yZWxlYXNlTm9uTnVsbCgpOwotICAgICAgICBzZW5kKE1lc3Nh
Z2VzOjpSZW1vdGVHUFVQcm94eTo6V2FzQ3JlYXRlZCh0cnVlLCB3b3JrUXVldWUoKS53YWtlVXBT
ZW1hcGhvcmUoKSkpOworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVHUFVQcm94eTo6V2Fz
Q3JlYXRlZCh0cnVlLCB3b3JrUXVldWUoKS53YWtlVXBTZW1hcGhvcmUoKSwgbV9zdHJlYW1Db25u
ZWN0aW9uLT5jbGllbnRXYWl0U2VtYXBob3JlKCkpKTsKICAgICB9IGVsc2UKLSAgICAgICAgc2Vu
ZChNZXNzYWdlczo6UmVtb3RlR1BVUHJveHk6Oldhc0NyZWF0ZWQoZmFsc2UsIHdvcmtRdWV1ZSgp
Lndha2VVcFNlbWFwaG9yZSgpKSk7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZUdQVVBy
b3h5OjpXYXNDcmVhdGVkKGZhbHNlLCB7IH0sIHsgfSkpOwogfQogCiB2b2lkIFJlbW90ZUdQVTo6
d29ya1F1ZXVlVW5pbml0aWFsaXplKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vSVBDL1N0cmVhbUNsaWVudENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9JUEMvU3RyZWFtQ2xpZW50Q29ubmVjdGlvbi5jcHAKaW5kZXggODUwNjRlNTg2ZTc4NTk4YmU1
MWRmNmM4ZmVhNDJkOGMxYWUxNmZjZi4uNDcxNDdkODk3NzQ1YzFkY2ZjOWU2ODc3YjIzNmJlZjI1
NzdkNzVkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU3RyZWFtQ2xp
ZW50Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU3RyZWFt
Q2xpZW50Q29ubmVjdGlvbi5jcHAKQEAgLTk2LDE4ICs5NiwxOCBAQCB2b2lkIFN0cmVhbUNsaWVu
dENvbm5lY3Rpb246OmludmFsaWRhdGUoKQogICAgICAgICBtX2Nvbm5lY3Rpb24tPmludmFsaWRh
dGUoKTsKIH0KIAotdm9pZCBTdHJlYW1DbGllbnRDb25uZWN0aW9uOjpzZXRXYWtlVXBTZW1hcGhv
cmUoSVBDOjpTZW1hcGhvcmUmJiBzZW1hcGhvcmUpCit2b2lkIFN0cmVhbUNsaWVudENvbm5lY3Rp
b246OnNldFNlbWFwaG9yZXMoSVBDOjpTZW1hcGhvcmUmJiB3YWtlVXAsIElQQzo6U2VtYXBob3Jl
JiYgY2xpZW50V2FpdCkKIHsKLSAgICBtX3dha2VVcFNlbWFwaG9yZSA9IFdURk1vdmUoc2VtYXBo
b3JlKTsKKyAgICBtX3NlbWFwaG9yZXMgPSB7IFdURk1vdmUod2FrZVVwKSwgV1RGTW92ZShjbGll
bnRXYWl0KSB9OwogICAgIHdha2VVcFNlcnZlcigpOwogfQogCiB2b2lkIFN0cmVhbUNsaWVudENv
bm5lY3Rpb246Ondha2VVcFNlcnZlcigpCiB7Ci0gICAgaWYgKCFtX3dha2VVcFNlbWFwaG9yZSkK
KyAgICBpZiAoIW1fc2VtYXBob3JlcykKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV93YWtlVXBT
ZW1hcGhvcmUtPnNpZ25hbCgpOworICAgIG1fc2VtYXBob3Jlcy0+d2FrZVVwLnNpZ25hbCgpOwog
ICAgIG1fcmVtYWluaW5nTWVzc2FnZUNvdW50QmVmb3JlU2VuZGluZ1dha2VVcCA9IDA7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1N0cmVhbUNsaWVudENvbm5l
Y3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1N0cmVhbUNsaWVudENvbm5lY3Rp
b24uaAppbmRleCA0ZTQyMGQ0ZmY2MTViNTcwZWUwYjUyMjY5Mjg5YjM0NjgwMWY3N2ZlLi5iZmNk
YWM3MGYzMTZhMDY2NTg3ZTMyMTZiZjdlN2EyZTRkNTI3NGMyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL0lQQy9TdHJlYW1DbGllbnRDb25uZWN0aW9uLmgKKysrIGIvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9JUEMvU3RyZWFtQ2xpZW50Q29ubmVjdGlvbi5oCkBAIC04Myw4ICs4
Myw4IEBAIHB1YmxpYzoKICAgICB+U3RyZWFtQ2xpZW50Q29ubmVjdGlvbigpOwogCiAgICAgU3Ry
ZWFtQ29ubmVjdGlvbkJ1ZmZlciYgc3RyZWFtQnVmZmVyKCkgeyByZXR1cm4gbV9idWZmZXI7IH0K
LSAgICB2b2lkIHNldFdha2VVcFNlbWFwaG9yZShJUEM6OlNlbWFwaG9yZSYmKTsKLSAgICBib29s
IGhhc1dha2VVcFNlbWFwaG9yZSgpIGNvbnN0IHsgcmV0dXJuIG1fd2FrZVVwU2VtYXBob3JlLmhh
c192YWx1ZSgpOyB9CisgICAgdm9pZCBzZXRTZW1hcGhvcmVzKElQQzo6U2VtYXBob3JlJiYgd2Fr
ZVVwLCBJUEM6OlNlbWFwaG9yZSYmIGNsaWVudFdhaXQpOworICAgIGJvb2wgaGFzU2VtYXBob3Jl
cygpIGNvbnN0IHsgcmV0dXJuIG1fc2VtYXBob3Jlcy5oYXNfdmFsdWUoKTsgfQogCiAgICAgdm9p
ZCBzZXRXYWtlVXBNZXNzYWdlSHlzdGVyZXNpcyh1bnNpZ25lZCBoeXN0ZXJlc2lzKQogICAgIHsK
QEAgLTE1NSw3ICsxNTUsMTEgQEAgcHJpdmF0ZToKICAgICB1aW50NjRfdCBtX2N1cnJlbnREZXN0
aW5hdGlvbklEIHsgMCB9OwogICAgIHNpemVfdCBtX2NsaWVudE9mZnNldCB7IDAgfTsKICAgICBT
dHJlYW1Db25uZWN0aW9uQnVmZmVyIG1fYnVmZmVyOwotICAgIHN0ZDo6b3B0aW9uYWw8U2VtYXBo
b3JlPiBtX3dha2VVcFNlbWFwaG9yZTsKKyAgICBzdHJ1Y3QgU2VtYXBob3JlcyB7CisgICAgICAg
IFNlbWFwaG9yZSB3YWtlVXA7CisgICAgICAgIFNlbWFwaG9yZSBjbGllbnRXYWl0OworICAgIH07
CisgICAgc3RkOjpvcHRpb25hbDxTZW1hcGhvcmVzPiBtX3NlbWFwaG9yZXM7CiAgICAgdW5zaWdu
ZWQgbV9yZW1haW5pbmdNZXNzYWdlQ291bnRCZWZvcmVTZW5kaW5nV2FrZVVwIHsgMCB9OwogICAg
IHVuc2lnbmVkIG1fd2FrZVVwTWVzc2FnZUh5c3RlcmVzaXMgeyAwIH07CiAKQEAgLTMwNyw3ICsz
MTEsOCBAQCBpbmxpbmUgc3RkOjpvcHRpb25hbDxTdHJlYW1DbGllbnRDb25uZWN0aW9uOjpTcGFu
PiBTdHJlYW1DbGllbnRDb25uZWN0aW9uOjp0cnlBYwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIENsaWVudExpbWl0IG9sZENsaWVudExpbWl0ID0gc2hhcmVkQ2xpZW50TGltaXQoKS5jb21w
YXJlRXhjaGFuZ2VTdHJvbmcoY2xpZW50TGltaXQsIENsaWVudExpbWl0OjpjbGllbnRJc1dhaXRp
bmdUYWcsIHN0ZDo6bWVtb3J5X29yZGVyX2FjcV9yZWwsIHN0ZDo6bWVtb3J5X29yZGVyX2FjcV9y
ZWwpOwogICAgICAgICBpZiAoY2xpZW50TGltaXQgPT0gb2xkQ2xpZW50TGltaXQpIHsKLSAgICAg
ICAgICAgIG1fYnVmZmVyLmNsaWVudFdhaXRTZW1hcGhvcmUoKS53YWl0Rm9yKHRpbWVvdXQpOwor
ICAgICAgICAgICAgaWYgKCFtX3NlbWFwaG9yZXMgfHwgIW1fc2VtYXBob3Jlcy0+Y2xpZW50V2Fp
dC53YWl0Rm9yKHRpbWVvdXQpKQorICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CiAgICAgICAgICAgICBjbGllbnRMaW1pdCA9IHNoYXJlZENsaWVudExpbWl0KCkubG9hZChzdGQ6
Om1lbW9yeV9vcmRlcl9hY3F1aXJlKTsKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBjbGll
bnRMaW1pdCA9IG9sZENsaWVudExpbWl0OwpAQCAtMzM4LDcgKzM0Myw4IEBAIGlubGluZSBzdGQ6
Om9wdGlvbmFsPFN0cmVhbUNsaWVudENvbm5lY3Rpb246OlNwYW4+IFN0cmVhbUNsaWVudENvbm5l
Y3Rpb246OnRyeUFjCiAgICAgICAgIGlmICghY2xpZW50TGltaXQgJiYgKGNsaWVudE9mZnNldCA9
PSBDbGllbnRPZmZzZXQ6OnNlcnZlcklzU2xlZXBpbmdUYWcgfHwgIWNsaWVudE9mZnNldCkpCiAg
ICAgICAgICAgICBicmVhazsKIAotICAgICAgICBtX2J1ZmZlci5jbGllbnRXYWl0U2VtYXBob3Jl
KCkud2FpdEZvcih0aW1lb3V0KTsKKyAgICAgICAgaWYgKCFtX3NlbWFwaG9yZXMgfHwgIW1fc2Vt
YXBob3Jlcy0+Y2xpZW50V2FpdC53YWl0Rm9yKHRpbWVvdXQpKQorICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKICAgICAgICAgaWYgKHRpbWVvdXQuZGlkVGltZU91dCgpKQogICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtL0lQQy9TdHJlYW1Db25uZWN0aW9uQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vSVBDL1N0cmVhbUNvbm5lY3Rpb25CdWZmZXIuY3BwCmluZGV4IDc0YTE3ODQ0
Yzg2M2UwNmFhOWQyMDNlMzJhNTJjN2RhYTkxMDdjYjcuLjU5YzUzMzAyMThjNDkwMjc1OGQ1NjJi
ZDVjYzdhOTg1N2M0NTg4ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBD
L1N0cmVhbUNvbm5lY3Rpb25CdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0v
SVBDL1N0cmVhbUNvbm5lY3Rpb25CdWZmZXIuY3BwCkBAIC00NiwxMCArNDYsOSBAQCBTdHJlYW1D
b25uZWN0aW9uQnVmZmVyOjpTdHJlYW1Db25uZWN0aW9uQnVmZmVyKHNpemVfdCBtZW1vcnlTaXpl
KQogICAgIEFTU0VSVChtX2RhdGFTaXplIDw9IG1heGltdW1TaXplKCkpOwogfQogCi1TdHJlYW1D
b25uZWN0aW9uQnVmZmVyOjpTdHJlYW1Db25uZWN0aW9uQnVmZmVyKFJlZjxXZWJLaXQ6OlNoYXJl
ZE1lbW9yeT4mJiBtZW1vcnksIHNpemVfdCBtZW1vcnlTaXplLCBTZW1hcGhvcmUmJiBjbGllbnRX
YWl0U2VtYXBob3JlKQorU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlcjo6U3RyZWFtQ29ubmVjdGlvbkJ1
ZmZlcihSZWY8V2ViS2l0OjpTaGFyZWRNZW1vcnk+JiYgbWVtb3J5LCBzaXplX3QgbWVtb3J5U2l6
ZSkKICAgICA6IG1fZGF0YVNpemUobWVtb3J5U2l6ZSAtIGhlYWRlclNpemUoKSkKICAgICAsIG1f
c2hhcmVkTWVtb3J5KFdURk1vdmUobWVtb3J5KSkKLSAgICAsIG1fY2xpZW50V2FpdFNlbWFwaG9y
ZShXVEZNb3ZlKGNsaWVudFdhaXRTZW1hcGhvcmUpKQogewogICAgIEFTU0VSVChtX2RhdGFTaXpl
ID4gMCk7CiAgICAgQVNTRVJUKG1fZGF0YVNpemUgPD0gbWF4aW11bVNpemUoKSk7CkBAIC02NCw3
ICs2Myw2IEBAIFN0cmVhbUNvbm5lY3Rpb25CdWZmZXImIFN0cmVhbUNvbm5lY3Rpb25CdWZmZXI6
Om9wZXJhdG9yPShTdHJlYW1Db25uZWN0aW9uQnVmZmVyCiAgICAgaWYgKHRoaXMgIT0gJm90aGVy
KSB7CiAgICAgICAgIG1fZGF0YVNpemUgPSBvdGhlci5tX2RhdGFTaXplOwogICAgICAgICBtX3No
YXJlZE1lbW9yeSA9IFdURk1vdmUob3RoZXIubV9zaGFyZWRNZW1vcnkpOwotICAgICAgICBtX2Ns
aWVudFdhaXRTZW1hcGhvcmUgPSBXVEZNb3ZlKG90aGVyLm1fY2xpZW50V2FpdFNlbWFwaG9yZSk7
CiAgICAgfQogICAgIHJldHVybiAqdGhpczsKIH0KQEAgLTc2LDcgKzc0LDYgQEAgdm9pZCBTdHJl
YW1Db25uZWN0aW9uQnVmZmVyOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICAg
ICAgQ1JBU0goKTsKICAgICBXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIGlwY0hhbmRs
ZSB7IFdURk1vdmUoaGFuZGxlKSwgbV9zaGFyZWRNZW1vcnktPnNpemUoKSB9OwogICAgIGVuY29k
ZXIgPDwgaXBjSGFuZGxlOwotICAgIGVuY29kZXIgPDwgbV9jbGllbnRXYWl0U2VtYXBob3JlOwog
fQogCiBzdGQ6Om9wdGlvbmFsPFN0cmVhbUNvbm5lY3Rpb25CdWZmZXI+IFN0cmVhbUNvbm5lY3Rp
b25CdWZmZXI6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQpAQCAtODUsMTAgKzgyLDYgQEAgc3Rk
OjpvcHRpb25hbDxTdHJlYW1Db25uZWN0aW9uQnVmZmVyPiBTdHJlYW1Db25uZWN0aW9uQnVmZmVy
OjpkZWNvZGUoRGVjb2RlciYgZGUKICAgICBkZWNvZGVyID4+IGlwY0hhbmRsZTsKICAgICBpZiAo
IWlwY0hhbmRsZSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICBzdGQ6Om9wdGlv
bmFsPFNlbWFwaG9yZT4gc2VtYXBob3JlOwotICAgIGRlY29kZXIgPj4gc2VtYXBob3JlOwotICAg
IGlmICghc2VtYXBob3JlKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIHNpemVf
dCBkYXRhU2l6ZSA9IHN0YXRpY19jYXN0PHNpemVfdD4oaXBjSGFuZGxlLT5kYXRhU2l6ZSk7CiAg
ICAgaWYgKGRhdGFTaXplIDw9IGhlYWRlclNpemUoKSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKQEAgLTk3LDcgKzkwLDcgQEAgc3RkOjpvcHRpb25hbDxTdHJlYW1Db25uZWN0aW9uQnVm
ZmVyPiBTdHJlYW1Db25uZWN0aW9uQnVmZmVyOjpkZWNvZGUoRGVjb2RlciYgZGUKICAgICBhdXRv
IHNoYXJlZE1lbW9yeSA9IFdlYktpdDo6U2hhcmVkTWVtb3J5OjptYXAoaXBjSGFuZGxlLT5oYW5k
bGUsIFdlYktpdDo6U2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkV3JpdGUpOwogICAgIGlm
IChzaGFyZWRNZW1vcnktPnNpemUoKSA8IGRhdGFTaXplKQogICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwotICAgIHJldHVybiBTdHJlYW1Db25uZWN0aW9uQnVmZmVyIHsgc2hhcmVkTWVtb3J5
LnJlbGVhc2VOb25OdWxsKCksIGRhdGFTaXplLCAgV1RGTW92ZSgqc2VtYXBob3JlKSB9OworICAg
IHJldHVybiBTdHJlYW1Db25uZWN0aW9uQnVmZmVyIHsgc2hhcmVkTWVtb3J5LnJlbGVhc2VOb25O
dWxsKCksIGRhdGFTaXplIH07CiB9CiAKIFNwYW48dWludDhfdD4gU3RyZWFtQ29ubmVjdGlvbkJ1
ZmZlcjo6aGVhZGVyRm9yVGVzdGluZygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL0lQQy9TdHJlYW1Db25uZWN0aW9uQnVmZmVyLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L0lQQy9TdHJlYW1Db25uZWN0aW9uQnVmZmVyLmgKaW5kZXggYmY1NzJmM2Y3YmE0MTg4ZTc4ZTlj
YzBkZWExY2QwNjNiZDg2NzQyMy4uNTRlM2E0Mjk5MTY5ZWY3OWMwNDc4MjQxNTAyNGMyMjdjMmU0
NmUzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU3RyZWFtQ29ubmVj
dGlvbkJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1N0cmVhbUNvbm5l
Y3Rpb25CdWZmZXIuaApAQCAtMjYsNyArMjYsNiBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRl
ICJEZWNvZGVyLmgiCi0jaW5jbHVkZSAiSVBDU2VtYXBob3JlLmgiCiAjaW5jbHVkZSAiU2hhcmVk
TWVtb3J5LmgiCiAjaW5jbHVkZSA8d3RmL0F0b21pY3MuaD4KIApAQCAtMTA5LDcgKzEwOCw2IEBA
IHB1YmxpYzoKICAgICBBdG9taWM8U2VydmVyT2Zmc2V0PiYgc2VydmVyT2Zmc2V0KCkgeyByZXR1
cm4gaGVhZGVyKCkuc2VydmVyT2Zmc2V0OyB9CiAgICAgdWludDhfdCogZGF0YSgpIGNvbnN0IHsg
cmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ4X3QqPihtX3NoYXJlZE1lbW9yeS0+ZGF0YSgpKSArIGhl
YWRlclNpemUoKTsgfQogICAgIHNpemVfdCBkYXRhU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0
YVNpemU7IH0KLSAgICBTZW1hcGhvcmUmIGNsaWVudFdhaXRTZW1hcGhvcmUoKSB7IHJldHVybiBt
X2NsaWVudFdhaXRTZW1hcGhvcmU7IH0KIAogICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IG1h
eGltdW1TaXplKCkgeyByZXR1cm4gc3RkOjptaW4oc3RhdGljX2Nhc3Q8c2l6ZV90PihDbGllbnRP
ZmZzZXQ6OnNlcnZlcklzU2xlZXBpbmdUYWcpLCBzdGF0aWNfY2FzdDxzaXplX3Q+KENsaWVudE9m
ZnNldDo6c2VydmVySXNTbGVlcGluZ1RhZykpIC0gMTsgfQogICAgIHZvaWQgZW5jb2RlKEVuY29k
ZXImKSBjb25zdDsKQEAgLTExOSw3ICsxMTcsNyBAQCBwdWJsaWM6CiAgICAgU3Bhbjx1aW50OF90
PiBkYXRhRm9yVGVzdGluZygpOwogCiBwcml2YXRlOgotICAgIFN0cmVhbUNvbm5lY3Rpb25CdWZm
ZXIoUmVmPFdlYktpdDo6U2hhcmVkTWVtb3J5PiYmLCBzaXplX3QgbWVtb3J5U2l6ZSwgU2VtYXBo
b3JlJiYgY2xpZW50V2FpdFNlbWFwaG9yZSk7CisgICAgU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlcihS
ZWY8V2ViS2l0OjpTaGFyZWRNZW1vcnk+JiYsIHNpemVfdCBtZW1vcnlTaXplKTsKIAogICAgIHN0
cnVjdCBIZWFkZXIgewogICAgICAgICBBdG9taWM8U2VydmVyT2Zmc2V0PiBzZXJ2ZXJPZmZzZXQ7
CkBAIC0xMzIsNyArMTMwLDYgQEAgcHJpdmF0ZToKIAogICAgIHNpemVfdCBtX2RhdGFTaXplIHsg
MCB9OwogICAgIFJlZjxXZWJLaXQ6OlNoYXJlZE1lbW9yeT4gbV9zaGFyZWRNZW1vcnk7Ci0gICAg
U2VtYXBob3JlIG1fY2xpZW50V2FpdFNlbWFwaG9yZTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1N0cmVhbVNlcnZlckNvbm5lY3Rpb24uY3BwIGIvU291
cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU3RyZWFtU2VydmVyQ29ubmVjdGlvbi5jcHAKaW5kZXgg
YmE1Y2Y3NGZmMTRjYjA4ZjVmYzNhYjYxYTYzN2EwNzY1ZTljYzc3ZC4uZDJmMWQyMmExZGYwOTUx
ODE0OGEyN2QzMzZhODMwZGNkMmUzY2NhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9JUEMvU3RyZWFtU2VydmVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9JUEMvU3RyZWFtU2VydmVyQ29ubmVjdGlvbi5jcHAKQEAgLTE3Miw3ICsxNzIsNyBA
QCB2b2lkIFN0cmVhbVNlcnZlckNvbm5lY3Rpb246OnJlbGVhc2Uoc2l6ZV90IHJlYWRTaXplKQog
ICAgIFNlcnZlck9mZnNldCBvbGRTZXJ2ZXJPZmZzZXQgPSBzaGFyZWRTZXJ2ZXJPZmZzZXQoKS5l
eGNoYW5nZShzZXJ2ZXJPZmZzZXQsIHN0ZDo6bWVtb3J5X29yZGVyX2FjcV9yZWwpOwogICAgIC8v
IElmIHRoZSBjbGllbnQgd3JvdGUgb3ZlciBzZXJ2ZXJPZmZzZXQsIGl0IG1lYW5zIHRoZSBjbGll
bnQgaXMgd2FpdGluZy4KICAgICBpZiAob2xkU2VydmVyT2Zmc2V0ID09IFNlcnZlck9mZnNldDo6
Y2xpZW50SXNXYWl0aW5nVGFnKQotICAgICAgICBtX2J1ZmZlci5jbGllbnRXYWl0U2VtYXBob3Jl
KCkuc2lnbmFsKCk7CisgICAgICAgIG1fY2xpZW50V2FpdFNlbWFwaG9yZS5zaWduYWwoKTsKICAg
ICBlbHNlCiAgICAgICAgIEFTU0VSVCghKG9sZFNlcnZlck9mZnNldCAmIFNlcnZlck9mZnNldDo6
Y2xpZW50SXNXYWl0aW5nVGFnKSk7CiAKQEAgLTE4NSw3ICsxODUsNyBAQCB2b2lkIFN0cmVhbVNl
cnZlckNvbm5lY3Rpb246OnJlbGVhc2VBbGwoKQogICAgIFNlcnZlck9mZnNldCBvbGRTZXJ2ZXJP
ZmZzZXQgPSBzaGFyZWRTZXJ2ZXJPZmZzZXQoKS5leGNoYW5nZShzdGF0aWNfY2FzdDxTZXJ2ZXJP
ZmZzZXQ+KDApLCBzdGQ6Om1lbW9yeV9vcmRlcl9hY3FfcmVsKTsKICAgICAvLyBJZiB0aGUgY2xp
ZW50IHdyb3RlIG92ZXIgc2VydmVyT2Zmc2V0LCBpdCBtZWFucyB0aGUgY2xpZW50IGlzIHdhaXRp
bmcuCiAgICAgaWYgKG9sZFNlcnZlck9mZnNldCA9PSBTZXJ2ZXJPZmZzZXQ6OmNsaWVudElzV2Fp
dGluZ1RhZykKLSAgICAgICAgbV9idWZmZXIuY2xpZW50V2FpdFNlbWFwaG9yZSgpLnNpZ25hbCgp
OworICAgICAgICBtX2NsaWVudFdhaXRTZW1hcGhvcmUuc2lnbmFsKCk7CiAgICAgZWxzZQogICAg
ICAgICBBU1NFUlQoIShvbGRTZXJ2ZXJPZmZzZXQgJiBTZXJ2ZXJPZmZzZXQ6OmNsaWVudElzV2Fp
dGluZ1RhZykpOwogICAgIG1fc2VydmVyT2Zmc2V0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vSVBDL1N0cmVhbVNlcnZlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vSVBDL1N0cmVhbVNlcnZlckNvbm5lY3Rpb24uaAppbmRleCBkNmFkNTBhMGIw
OGUxZTI4ZDA2YzRmZDUxNmI5YWZlZGU4NTczZjg1Li5lM2UyYWJhYjEzMjY1YTZiMGY2NDcyOGM2
YTg0ZDhhM2E0NjE1MDE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9T
dHJlYW1TZXJ2ZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMv
U3RyZWFtU2VydmVyQ29ubmVjdGlvbi5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiQ29u
bmVjdGlvbi5oIgogI2luY2x1ZGUgIkRlY29kZXIuaCIKICNpbmNsdWRlICJFbmNvZGVyLmgiCisj
aW5jbHVkZSAiSVBDU2VtYXBob3JlLmgiCiAjaW5jbHVkZSAiTWVzc2FnZU5hbWVzLmgiCiAjaW5j
bHVkZSAiU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlci5oIgogI2luY2x1ZGUgIlN0cmVhbUNvbm5lY3Rp
b25FbmNvZGVyLmgiCkBAIC04Niw2ICs4Nyw4IEBAIHB1YmxpYzoKICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBULCB0eXBlbmFtZS4uLiBBcmd1bWVudHM+CiAgICAgdm9pZCBzZW5kU3luY1JlcGx5KENv
bm5lY3Rpb246OlN5bmNSZXF1ZXN0SUQsIEFyZ3VtZW50cyYmLi4uKTsKIAorICAgIFNlbWFwaG9y
ZSYgY2xpZW50V2FpdFNlbWFwaG9yZSgpIHsgcmV0dXJuIG1fY2xpZW50V2FpdFNlbWFwaG9yZTsg
fQorCiBwcml2YXRlOgogICAgIGVudW0gY2xhc3MgSGFzRGVkaWNhdGVkQ29ubmVjdGlvbiA6IGJv
b2wgeyBObywgWWVzIH07CiAgICAgU3RyZWFtU2VydmVyQ29ubmVjdGlvbihSZWY8Q29ubmVjdGlv
bj4mJiwgU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlciYmLCBTdHJlYW1Db25uZWN0aW9uV29ya1F1ZXVl
JiwgSGFzRGVkaWNhdGVkQ29ubmVjdGlvbik7CkBAIC0xMjAsNiArMTIzLDcgQEAgcHJpdmF0ZToK
ICAgICBib29sIGRpc3BhdGNoT3V0T2ZTdHJlYW1NZXNzYWdlKERlY29kZXImJik7CiAKICAgICBS
ZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisgICAgU2VtYXBob3JlIG1fY2xpZW50
V2FpdFNlbWFwaG9yZTsKICAgICBTdHJlYW1Db25uZWN0aW9uV29ya1F1ZXVlJiBtX3dvcmtRdWV1
ZTsKIAogICAgIHNpemVfdCBtX3NlcnZlck9mZnNldCB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0lQQ1N0cmVhbVRlc3Rlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9JUENTdHJlYW1UZXN0ZXIuY3BwCmluZGV4IDgyMjY3ZTIxYWRlNjJhOWI2Njc0NWYzZGM4N2E2
Y2E1YzMwYjJlZmEuLjAyODVkMDBhNDA5Y2FkNWJiMmY4ZDgwM2ZhZjQ1NTU0YWYwZDllODkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0lQQ1N0cmVhbVRlc3Rlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvSVBDU3RyZWFtVGVzdGVyLmNwcApAQCAtNTcsNyArNTcsNyBA
QCB2b2lkIElQQ1N0cmVhbVRlc3Rlcjo6aW5pdGlhbGl6ZSgpCiAgICAgbV9zdHJlYW1Db25uZWN0
aW9uLT5zdGFydFJlY2VpdmluZ01lc3NhZ2VzKCp0aGlzLCBNZXNzYWdlczo6SVBDU3RyZWFtVGVz
dGVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1faWRlbnRpZmllci50b1VJbnQ2NCgpKTsKICAg
ICBtX3N0cmVhbUNvbm5lY3Rpb24tPm9wZW4oKTsKICAgICB3b3JrUXVldWUoKS5kaXNwYXRjaChb
dGhpc10gewotICAgICAgICBtX3N0cmVhbUNvbm5lY3Rpb24tPmNvbm5lY3Rpb24oKS5zZW5kKE1l
c3NhZ2VzOjpJUENTdHJlYW1UZXN0ZXJQcm94eTo6V2FzQ3JlYXRlZCh3b3JrUXVldWUoKS53YWtl
VXBTZW1hcGhvcmUoKSksIG1faWRlbnRpZmllcik7CisgICAgICAgIG1fc3RyZWFtQ29ubmVjdGlv
bi0+Y29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OklQQ1N0cmVhbVRlc3RlclByb3h5OjpXYXND
cmVhdGVkKHdvcmtRdWV1ZSgpLndha2VVcFNlbWFwaG9yZSgpLCBtX3N0cmVhbUNvbm5lY3Rpb24t
PmNsaWVudFdhaXRTZW1hcGhvcmUoKSksIG1faWRlbnRpZmllcik7CiAgICAgfSk7CiB9CiAKQEAg
LTg3LDYgKzg3LDIwIEBAIHZvaWQgSVBDU3RyZWFtVGVzdGVyOjpzeW5jTWVzc2FnZVJldHVybmlu
Z1NoYXJlZE1lbW9yeTEodWludDMyX3QgYnl0ZUNvdW50LCBDb21wCiAgICAgY29tcGxldGlvbkhh
bmRsZXIoV1RGTW92ZShyZXN1bHQpKTsKIH0KIAordm9pZCBJUENTdHJlYW1UZXN0ZXI6OnN5bmND
cmFzaE9uWmVybyhpbnQzMl90IHZhbHVlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGludDMyX3Qp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmICghdmFsdWUpIHsKKyAgICAgICAgLy8g
VXNlIGV4aXQgc28gdGhhdCB3ZSBkb24ndCBsZWF2ZSBhIGNyYXNoIHJlcG9ydC4KKyNpZiBPUyhX
SU5ET1dTKQorICAgICAgICAvLyBDYWxsaW5nIF9leGl0IGluIG5vbi1tYWluIHRocmVhZHMgbWF5
IGNhdXNlIGEgZGVhZGxvY2sgaW4gV1RGOjpUaHJlYWQ6OlRocmVhZEhvbGRlcjo6flRocmVhZEhv
bGRlci4KKyAgICAgICAgVGVybWluYXRlUHJvY2VzcyhHZXRDdXJyZW50UHJvY2VzcygpLCBFWElU
X1NVQ0NFU1MpOworI2Vsc2UKKyAgICAgICAgX2V4aXQoRVhJVF9TVUNDRVNTKTsKKyNlbmRpZgor
ICAgIH0KKyAgICBjb21wbGV0aW9uSGFuZGxlcih2YWx1ZSk7Cit9CisKIH0KIAogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9JUENTdHJlYW1UZXN0ZXIuaCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0lQQ1N0cmVhbVRlc3Rlci5oCmluZGV4IDA0NDA4ZGRjMzhlN2IwZjI0
N2E5MmU2ZjIyNTM3ZDhjMmE5OWVkMWEuLjY3OGUyODcwMjNkOGNmZjhjYTQ3NWQ1NmY2Y2EwMWZh
NGFlMDgyMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0lQQ1N0cmVhbVRlc3Rl
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0lQQ1N0cmVhbVRlc3Rlci5oCkBAIC01OCw2
ICs1OCw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBNZXNzYWdlcy4KICAgICB2b2lkIHN5bmNNZXNz
YWdlUmV0dXJuaW5nU2hhcmVkTWVtb3J5MSh1aW50MzJfdCBieXRlQ291bnQsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUpPiYmKTsKKyAgICB2b2lkIHN5bmND
cmFzaE9uWmVybyhpbnQzMl90LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGludDMyX3QpPiYmKTsK
IAogICAgIGNvbnN0IFJlZjxJUEM6OlN0cmVhbUNvbm5lY3Rpb25Xb3JrUXVldWU+IG1fd29ya1F1
ZXVlOwogICAgIGNvbnN0IFJlZjxJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb24+IG1fc3RyZWFt
Q29ubmVjdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0lQQ1N0cmVhbVRl
c3Rlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0lQQ1N0cmVhbVRlc3Rlci5t
ZXNzYWdlcy5pbgppbmRleCA5NGY2MWMwNTAxYjRkZjc4ZmQzNjJlMWE4YTE4N2NmZGE0OTI3ZDY1
Li4zZGU1MWEzZTljZDQxYTYyMjA5N2ExZGEzYmFiMGE5YTUzMTJiN2M3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9JUENTdHJlYW1UZXN0ZXIubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvSVBDU3RyZWFtVGVzdGVyLm1lc3NhZ2VzLmluCkBAIC0yNCw2ICsy
NCw3IEBACiAKIG1lc3NhZ2VzIC0+IElQQ1N0cmVhbVRlc3RlciBOb3RSZWZDb3VudGVkIFN0cmVh
bSB7CiAgICAgU3luY01lc3NhZ2VSZXR1cm5pbmdTaGFyZWRNZW1vcnkxKHVpbnQzMl90IGJ5dGVD
b3VudCkgLT4gKFdlYktpdDo6U2hhcmVkTWVtb3J5OjpJUENIYW5kbGUgaGFuZGxlKSBTeW5jaHJv
bm91cyBOb3RTdHJlYW1FbmNvZGFibGVSZXBseQorICAgIFN5bmNDcmFzaE9uWmVybyhpbnQzMl90
IHZhbHVlKSAtPiAoaW50MzJfdCBzYW1lVmFsdWUpIFN5bmNocm9ub3VzCiB9CiAKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvSVBDU3RyZWFtVGVzdGVyUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0lQQ1N0cmVhbVRlc3RlclByb3h5LmgKaW5kZXggZWI3YzI3
Y2Q0ZGQyYWRkMTMyMWJkMzRiNGMzYjMwMWYyMjRlOTA3Ni4uMWFiYjJiZjZiYTIxZWZhNGY2NjNi
YjYwZTliY2Q1MmI3ZDRlMzMwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvSVBD
U3RyZWFtVGVzdGVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9JUENTdHJlYW1U
ZXN0ZXJQcm94eS5oCkBAIC00OSw3ICs0OSw3IEBAIHByaXZhdGU6CiAgICAgfklQQ1N0cmVhbVRl
c3RlclByb3h5KCkgPSBkZWZhdWx0OwogCiAgICAgLy8gTWVzc2FnZXMuCi0gICAgdm9pZCB3YXND
cmVhdGVkKElQQzo6U2VtYXBob3JlJiYpIHsgfQorICAgIHZvaWQgd2FzQ3JlYXRlZChJUEM6OlNl
bWFwaG9yZSYmLCBJUEM6OlNlbWFwaG9yZSYmKSB7IH0KIH07CiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0lQQ1N0cmVhbVRlc3RlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvSVBDU3RyZWFtVGVzdGVyUHJveHkubWVzc2FnZXMuaW4KaW5kZXgg
NjU4ODAwYTNkMzJiZDUxNGY0MjVhNDFiYmY3MTQwNGMyY2E0OWFmMi4uYjZmYjM5NzFhMGQ0Y2U1
ZDhlNDI4ODlmNzMzOGIwOGQ5OTRiMTgxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvSVBDU3RyZWFtVGVzdGVyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvSVBDU3RyZWFtVGVzdGVyUHJveHkubWVzc2FnZXMuaW4KQEAgLTIzLDcgKzIzLDcgQEAK
ICNpZiBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQogCiBtZXNzYWdlcyAtPiBJUENTdHJlYW1UZXN0
ZXJQcm94eSBOb3RSZWZDb3VudGVkIHsKLSAgICB2b2lkIFdhc0NyZWF0ZWQoSVBDOjpTZW1hcGhv
cmUgc3RyZWFtV2FrZVVwU2VtYXBob3JlKQorICAgIHZvaWQgV2FzQ3JlYXRlZChJUEM6OlNlbWFw
aG9yZSBzdHJlYW1XYWtlVXBTZW1hcGhvcmUsIElQQzo6U2VtYXBob3JlIHN0cmVhbUNsaWVudFdh
aXRTZW1hcGhvcmUpCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0xQcm94eS5jcHAKaW5kZXggY2ZkZTBiODBkOGFlZWY2MzQ1MTNjMDFmOTU5MWI2NTMyNTYwMjAz
Yi4uMjM2OTNkOTg0Yzg5ZTkzMTI1NGFiNjgyNWExMDM1ZGU2MDc1MjhmYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRl
eHRHTFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuY3BwCkBAIC0zMTcsNyArMzE3LDcgQEAgdm9p
ZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5OjptdWx0aURyYXdFbGVtZW50c0luc3RhbmNl
ZEFOR0xFKEdDR0xlbnVtIG1vZGUKICAgICB9CiB9CiAKLXZvaWQgUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eTo6d2FzQ3JlYXRlZChib29sIGRpZFN1Y2NlZWQsIElQQzo6U2VtYXBob3JlJiYg
c2VtYXBob3JlLCBTdHJpbmcmJiBhdmFpbGFibGVFeHRlbnNpb25zLCBTdHJpbmcmJiByZXF1ZXN0
ZWRFeHRlbnNpb25zKQordm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Ojp3YXNDcmVh
dGVkKGJvb2wgZGlkU3VjY2VlZCwgSVBDOjpTZW1hcGhvcmUmJiB3YWtlVXBTZW1hcGhvcmUsIElQ
Qzo6U2VtYXBob3JlJiYgY2xpZW50V2FpdFNlbWFwaG9yZSwgU3RyaW5nJiYgYXZhaWxhYmxlRXh0
ZW5zaW9ucywgU3RyaW5nJiYgcmVxdWVzdGVkRXh0ZW5zaW9ucykKIHsKICAgICBpZiAoaXNDb250
ZXh0TG9zdCgpKQogICAgICAgICByZXR1cm47CkBAIC0zMjYsNyArMzI2LDcgQEAgdm9pZCBSZW1v
dGVHcmFwaGljc0NvbnRleHRHTFByb3h5Ojp3YXNDcmVhdGVkKGJvb2wgZGlkU3VjY2VlZCwgSVBD
OjpTZW1hcGhvcmUmJgogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIEFTU0VSVCghbV9kaWRJ
bml0aWFsaXplKTsKLSAgICBtX3N0cmVhbUNvbm5lY3Rpb24uc2V0V2FrZVVwU2VtYXBob3JlKFdU
Rk1vdmUoc2VtYXBob3JlKSk7CisgICAgbV9zdHJlYW1Db25uZWN0aW9uLnNldFNlbWFwaG9yZXMo
V1RGTW92ZSh3YWtlVXBTZW1hcGhvcmUpLCBXVEZNb3ZlKGNsaWVudFdhaXRTZW1hcGhvcmUpKTsK
ICAgICBtX2RpZEluaXRpYWxpemUgPSB0cnVlOwogICAgIGluaXRpYWxpemUoYXZhaWxhYmxlRXh0
ZW5zaW9ucywgcmVxdWVzdGVkRXh0ZW5zaW9ucyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3ND
b250ZXh0R0xQcm94eS5oCmluZGV4IDRiNDg3MjI2NGE4NmI0ZTFmMTNlNGE2NDQ5ZjQ4MDUyYzQ4
NmViMzAuLmI2ZTYyYjE3MmFmZjUzZGE1ZDE2NmM3YTQ3MGIxODRiZTgwN2VkODIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3ND
b250ZXh0R0xQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5oCkBAIC0zNDYsNyArMzQ2LDcgQEAgcHJv
dGVjdGVkOgogICAgIEdyYXBoaWNzQ29udGV4dEdMSWRlbnRpZmllciBtX2dyYXBoaWNzQ29udGV4
dEdMSWRlbnRpZmllciB7IEdyYXBoaWNzQ29udGV4dEdMSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSB9
OwogcHJpdmF0ZToKICAgICAvLyBNZXNzYWdlcyB0byBiZSByZWNlaXZlZC4KLSAgICB2b2lkIHdh
c0NyZWF0ZWQoYm9vbCBkaWRTdWNjZWVkLCBJUEM6OlNlbWFwaG9yZSYmLCBTdHJpbmcmJiBhdmFp
bGFibGVFeHRlbnNpb25zLCBTdHJpbmcmJiByZXF1ZXN0ZWRFeHRlbnNpb25zKTsKKyAgICB2b2lk
IHdhc0NyZWF0ZWQoYm9vbCBkaWRTdWNjZWVkLCBJUEM6OlNlbWFwaG9yZSYmLCBJUEM6OlNlbWFw
aG9yZSYmLCBTdHJpbmcmJiBhdmFpbGFibGVFeHRlbnNpb25zLCBTdHJpbmcmJiByZXF1ZXN0ZWRF
eHRlbnNpb25zKTsKICAgICB2b2lkIHdhc0xvc3QoKTsKICAgICB2b2lkIHdhc0NoYW5nZWQoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVHcmFwaGljc0NvbnRleHRHTFByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5Lm1lc3NhZ2Vz
LmluCmluZGV4IGY0M2VjMGEyZWFhMzg0ZTRlZGU4ZGQ0NDBkOWVmZTAyOGFjYjdiZmYuLjk4YmNl
MWUyMDAzYWM1OGFmNmQyODU2ZDYyOGI1MjUzYmI4M2NhOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94
eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkubWVzc2FnZXMuaW4KQEAgLTIzLDcgKzIzLDcg
QEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShXRUJHTCkKIAogbWVzc2FnZXMg
LT4gUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eSBOb3RSZWZDb3VudGVkIHsKLSAgICB2b2lk
IFdhc0NyZWF0ZWQoYm9vbCBkaWRTdWNjZWVkLCBJUEM6OlNlbWFwaG9yZSBzdHJlYW1XYWtlVXBT
ZW1hcGhvcmUsIFN0cmluZyBhdmFpbGFibGVFeHRlbnNpb25zLCBTdHJpbmcgcmVxdWVzdGFibGVF
eHRlbnNpb25zKQorICAgIHZvaWQgV2FzQ3JlYXRlZChib29sIGRpZFN1Y2NlZWQsIElQQzo6U2Vt
YXBob3JlIHN0cmVhbVdha2VVcFNlbWFwaG9yZSwgSVBDOjpTZW1hcGhvcmUgc3RyZWFtQ2xpZW50
V2FpdFNlbWFwaG9yZSwgU3RyaW5nIGF2YWlsYWJsZUV4dGVuc2lvbnMsIFN0cmluZyByZXF1ZXN0
YWJsZUV4dGVuc2lvbnMpCiAgICAgdm9pZCBXYXNMb3N0KCkKICAgICB2b2lkIFdhc0NoYW5nZWQo
KQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCmluZGV4IGU1YzBk
ZDU0ZGU5MzFiY2M3MDFiZWEyODYyMzFjYmZkZThmNTQ4ODIuLmEzYjBiZWEwMGJlODdmZjgxYTM0
YWY4ZDhlMTA2Y2ZhNzg0NTEyMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eS5jcHAKQEAgLTQyNywxOCArNDI3LDE4IEBAIFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVy
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6ZW5zdXJlQmFja2VuZENyZWF0ZWQoKQogSVBD
OjpTdHJlYW1DbGllbnRDb25uZWN0aW9uJiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnN0
cmVhbUNvbm5lY3Rpb24oKQogewogICAgIGVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCk7Ci0g
ICAgaWYgKFVOTElLRUxZKCFtX3N0cmVhbUNvbm5lY3Rpb24tPmhhc1dha2VVcFNlbWFwaG9yZSgp
KSkKLSAgICAgICAgbV9zdHJlYW1Db25uZWN0aW9uLT53YWl0Rm9yQW5kRGlzcGF0Y2hJbW1lZGlh
dGVseTxNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpEaWRDcmVhdGVXYWtl
VXBTZW1hcGhvcmVGb3JEaXNwbGF5TGlzdFN0cmVhbT4ocmVuZGVyaW5nQmFja2VuZElkZW50aWZp
ZXIoKSwgM19zLCBJUEM6OldhaXRGb3JPcHRpb246OkludGVycnVwdFdhaXRpbmdJZlN5bmNNZXNz
YWdlQXJyaXZlcyk7CisgICAgaWYgKFVOTElLRUxZKCFtX3N0cmVhbUNvbm5lY3Rpb24tPmhhc1Nl
bWFwaG9yZXMoKSkpCisgICAgICAgIG1fc3RyZWFtQ29ubmVjdGlvbi0+d2FpdEZvckFuZERpc3Bh
dGNoSW1tZWRpYXRlbHk8TWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6RGlk
SW5pdGlhbGl6ZT4ocmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIoKSwgM19zLCBJUEM6OldhaXRG
b3JPcHRpb246OkludGVycnVwdFdhaXRpbmdJZlN5bmNNZXNzYWdlQXJyaXZlcyk7CiAgICAgcmV0
dXJuICptX3N0cmVhbUNvbm5lY3Rpb247CiB9CiAKLXZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5OjpkaWRDcmVhdGVXYWtlVXBTZW1hcGhvcmVGb3JEaXNwbGF5TGlzdFN0cmVhbShJUEM6
OlNlbWFwaG9yZSYmIHNlbWFwaG9yZSkKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
OjpkaWRJbml0aWFsaXplKElQQzo6U2VtYXBob3JlJiYgd2FrZVVwLCBJUEM6OlNlbWFwaG9yZSYm
IGNsaWVudFdhaXQpCiB7CiAgICAgaWYgKCFtX3N0cmVhbUNvbm5lY3Rpb24pIHsKICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgbV9zdHJl
YW1Db25uZWN0aW9uLT5zZXRXYWtlVXBTZW1hcGhvcmUoV1RGTW92ZShzZW1hcGhvcmUpKTsKKyAg
ICBtX3N0cmVhbUNvbm5lY3Rpb24tPnNldFNlbWFwaG9yZXMoV1RGTW92ZSh3YWtlVXApLCBXVEZN
b3ZlKGNsaWVudFdhaXQpKTsKIH0KIAogYm9vbCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6
OmlzQ2FjaGVkKGNvbnN0IEltYWdlQnVmZmVyJiBpbWFnZUJ1ZmZlcikgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oCmluZGV4IGQ2MGIwMTUxMzkyY2JhZWIyYzcxNmU2
MjUwOWViMjc2ODQxY2E3ZTYuLjhjZTE4YWUwNGRlOTAzMjRhMDg4MDNhYTMyMGMzZjVhYjJlYmU3
ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaApAQCAtMTMzLDcgKzEz
Myw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNHUFVQcm9jZXNzQ29ubmVjdGlvbkNsb3NlZCgp
IGNvbnN0IHsgcmV0dXJuICFtX2dwdVByb2Nlc3NDb25uZWN0aW9uOyB9CiAKLSAgICB2b2lkIGRp
ZENyZWF0ZVdha2VVcFNlbWFwaG9yZUZvckRpc3BsYXlMaXN0U3RyZWFtKElQQzo6U2VtYXBob3Jl
JiYpOworICAgIHZvaWQgZGlkSW5pdGlhbGl6ZShJUEM6OlNlbWFwaG9yZSYmIHdha2VVcFNlbWFw
aG9yZSwgSVBDOjpTZW1hcGhvcmUmJiBjbGllbnRXYWl0U2VtYXBob3JlKTsKIAogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+CiAgICAgdm9pZCBzZW5kVG9TdHJlYW0oVCYmIG1l
c3NhZ2UsIE9iamVjdElkZW50aWZpZXI8VT4gaWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkubWVzc2FnZXMuaW4KaW5kZXggYTZlNmMyNTJjMTc5
MmRhNDgyYmY0N2RmNTAyODU4Mzc5NjJiNDczYS4uMjY3N2M3NTViYmFkMTkwN2Y3ZWVmYjYwNmYy
YTkxYjQ5Mjc0YTA1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHkubWVzc2FnZXMuaW4KQEAgLTI2LDcgKzI2LDcgQEAgbWVzc2FnZXMgLT4gUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5IE5vdFJlZkNvdW50ZWQgewogICAgIERpZENyZWF0ZUltYWdlQnVm
ZmVyQmFja2VuZChXZWJLaXQ6OkltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBoYW5kbGUsIFdlYkNv
cmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIpCiAgICAgRGlkRmx1c2goV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Rmx1c2hJZGVudGlmaWVy
IGZsdXNoSWRlbnRpZmllciwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKICAgICBEaWRGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0
ZShXZWJLaXQ6OlJlbmRlcmluZ1VwZGF0ZUlEIGRpZFJlbmRlcmluZ1VwZGF0ZUlEKQotICAgIERp
ZENyZWF0ZVdha2VVcFNlbWFwaG9yZUZvckRpc3BsYXlMaXN0U3RyZWFtKElQQzo6U2VtYXBob3Jl
IHdha2VVcFNlbWFwaG9yZSkKKyAgICBEaWRJbml0aWFsaXplKElQQzo6U2VtYXBob3JlIHdha2VV
cFNlbWFwaG9yZSwgSVBDOjpTZW1hcGhvcmUgY2xpZW50V2FpdFNlbWFwaG9yZSkKICAgICBEaWRN
YXJrTGF5ZXJzQXNWb2xhdGlsZShXZWJLaXQ6Ok1hcmtTdXJmYWNlc0FzVm9sYXRpbGVSZXF1ZXN0
SWRlbnRpZmllciByZXF1ZXN0SWRlbnRpZmllciwgVmVjdG9yPFdlYkNvcmU6OlJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllcj4gbWFya2VkVm9sYXRpbGVCdWZmZXJJZGVudGlmaWVycywgYm9vbCBk
aWRNYXJrQWxsTGF5ZXJzQXNWb2xhdGlsZSkKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlR1BVUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlR1BVUHJveHku
Y3BwCmluZGV4IGE2ZDg4MTJiYWRkN2Q5MDVkYjdjYjNkNjEwYTQ1YjA2YmYzM2VjZjUuLjU5OTNk
OTQ4ZmZlNzNlNmQ5YmM1OWJlOWYwZThjNGUzZjk2OGNjODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUdQVVByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVH
UFVQcm94eS5jcHAKQEAgLTc1LDEwICs3NSwxMCBAQCB2b2lkIFJlbW90ZUdQVVByb3h5OjphYmFu
ZG9uR1BVUHJvY2VzcygpCiAgICAgbV9sb3N0ID0gdHJ1ZTsKIH0KIAotdm9pZCBSZW1vdGVHUFVQ
cm94eTo6d2FzQ3JlYXRlZChib29sIGRpZFN1Y2NlZWQsIElQQzo6U2VtYXBob3JlJiYgc2VtYXBo
b3JlKQordm9pZCBSZW1vdGVHUFVQcm94eTo6d2FzQ3JlYXRlZChib29sIGRpZFN1Y2NlZWQsIElQ
Qzo6U2VtYXBob3JlJiYgd2FrZVVwU2VtYXBob3JlLCBJUEM6OlNlbWFwaG9yZSYmIGNsaWVudFdh
aXRTZW1hcGhvcmUpCiB7CiAgICAgQVNTRVJUKCFtX2RpZEluaXRpYWxpemUpOwotICAgIG1fc3Ry
ZWFtQ29ubmVjdGlvbi5zZXRXYWtlVXBTZW1hcGhvcmUoV1RGTW92ZShzZW1hcGhvcmUpKTsKKyAg
ICBtX3N0cmVhbUNvbm5lY3Rpb24uc2V0U2VtYXBob3JlcyhXVEZNb3ZlKHdha2VVcFNlbWFwaG9y
ZSksIFdURk1vdmUoY2xpZW50V2FpdFNlbWFwaG9yZSkpOwogICAgIG1fZGlkSW5pdGlhbGl6ZSA9
IHRydWU7CiAgICAgbV9sb3N0ID0gIWRpZFN1Y2NlZWQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVHUFVQcm94eS5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlR1BVUHJv
eHkuaAppbmRleCA3ODNjMDYyM2QxYzUwNDhjMmE4Yzc2NGZiMmZmZTdkZmQ4ZDQyYWRlLi4wNmI0
Y2YzZDVmYjFlNTBiNTI2MThmMTE5OGU5YjI4ODFmZjI3YzdkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVHUFVQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUdQ
VVByb3h5LmgKQEAgLTc2LDcgKzc2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGdwdVByb2Nlc3ND
b25uZWN0aW9uRGlkQ2xvc2UoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mKSBmaW5hbDsKIAogICAgIC8v
IE1lc3NhZ2VzIHRvIGJlIHJlY2VpdmVkLgotICAgIHZvaWQgd2FzQ3JlYXRlZChib29sIGRpZFN1
Y2NlZWQsIElQQzo6U2VtYXBob3JlJiYpOworICAgIHZvaWQgd2FzQ3JlYXRlZChib29sIGRpZFN1
Y2NlZWQsIElQQzo6U2VtYXBob3JlJiYgd2FrZVVwU2VtYXBob3JlLCBJUEM6OlNlbWFwaG9yZSYm
IGNsaWVudFdhaXRTZW1hcGhvcmUpOwogCiAgICAgdm9pZCB3YWl0VW50aWxJbml0aWFsaXplZCgp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVHUFVQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUdQVVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDAw
MzVlOTU1ZTA2ZjdmZTFmNmYyOGNiY2QyY2E5ZjQ1MThhYjhiYjUuLjZjNjVjNzdiYjYxMTFiYzM2
ZDBiZWY1YWM2NjU4MmIxNmRjZjhhYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUdQVVByb3h5Lm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZUdQVVBy
b3h5Lm1lc3NhZ2VzLmluCkBAIC0yMyw3ICsyMyw3IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KQogCiBtZXNzYWdlcyAtPiBSZW1vdGVHUFVQcm94eSBOb3RSZWZDb3VudGVkIHsKLSAgICB2b2lk
IFdhc0NyZWF0ZWQoYm9vbCBkaWRTdWNjZWVkLCBJUEM6OlNlbWFwaG9yZSBzdHJlYW1XYWtlVXBT
ZW1hcGhvcmUpCisgICAgdm9pZCBXYXNDcmVhdGVkKGJvb2wgZGlkU3VjY2VlZCwgSVBDOjpTZW1h
cGhvcmUgc3RyZWFtV2FrZVVwU2VtYXBob3JlLCBJUEM6OlNlbWFwaG9yZSBzdHJlYW1DbGllbnRX
YWl0U2VtYXBob3JlKQogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0lQQ1Rlc3RpbmdBUEkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvSVBDVGVzdGluZ0FQSS5jcHAKaW5kZXggODQzZTkwYzk0NDNhZGQzM2U2OWJh
YmIzNzA0N2ZjODExNjM5M2RmNy4uNTJiNDY4MzE3M2IyNTMwNzMzNGVkNWQxZmJhOTIwMmIyN2M3
NGQwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvSVBDVGVz
dGluZ0FQSS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvSVBDVGVz
dGluZ0FQSS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJGcmFtZUluZm9EYXRhLmgi
CiAjaW5jbHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJJUENTZW1hcGhv
cmUuaCIKKyNpbmNsdWRlICJJUENTdHJlYW1UZXN0ZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIkpT
SVBDQmluZGluZy5oIgogI2luY2x1ZGUgIk1lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9ucy5oIgog
I2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oIgpAQCAtMTkzLDcgKzE5NCw3IEBA
IHByaXZhdGU6CiAgICAgICAgICwgbV9zdHJlYW1Db25uZWN0aW9uIHsgY29ubmVjdGlvbiwgYnVm
ZmVyU2l6ZSB9CiAgICAgeyB9CiAKLSAgICB2b2lkIHNldFdha2VVcFNlbWFwaG9yZShKU0lQQ1Nl
bWFwaG9yZSYganNTZW1hcGhvcmUpIHsgbV9zdHJlYW1Db25uZWN0aW9uLnNldFdha2VVcFNlbWFw
aG9yZShqc1NlbWFwaG9yZS5leGNoYW5nZSgpKTsgfQorICAgIHZvaWQgc2V0U2VtYXBob3JlcyhK
U0lQQ1NlbWFwaG9yZSYganNXYWtlVXBTZW1hcGhvcmUsIEpTSVBDU2VtYXBob3JlJiBqc0NsaWVu
dFdhaXRTZW1hcGhvcmUpIHsgbV9zdHJlYW1Db25uZWN0aW9uLnNldFNlbWFwaG9yZXMoanNXYWtl
VXBTZW1hcGhvcmUuZXhjaGFuZ2UoKSwganNDbGllbnRXYWl0U2VtYXBob3JlLmV4Y2hhbmdlKCkp
OyB9CiAKICAgICBzdGF0aWMgSlNDbGFzc1JlZiB3cmFwcGVyQ2xhc3MoKTsKICAgICBzdGF0aWMg
SlNJUENTdHJlYW1DbGllbnRDb25uZWN0aW9uKiB1bndyYXAoSlNPYmplY3RSZWYpOwpAQCAtMjA0
LDkgKzIwNSwxMCBAQCBwcml2YXRlOgogCiAgICAgc3RhdGljIGNvbnN0IEpTU3RhdGljRnVuY3Rp
b24qIHN0YXRpY0Z1bmN0aW9ucygpOwogICAgIHN0YXRpYyBKU1ZhbHVlUmVmIHN0cmVhbUJ1ZmZl
cihKU0NvbnRleHRSZWYsIEpTT2JqZWN0UmVmLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXpl
X3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJl
ZiogZXhjZXB0aW9uKTsKLSAgICBzdGF0aWMgSlNWYWx1ZVJlZiBzZXRXYWtlVXBTZW1hcGhvcmUo
SlNDb250ZXh0UmVmLCBKU09iamVjdFJlZiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90
IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYq
IGV4Y2VwdGlvbik7CisgICAgc3RhdGljIEpTVmFsdWVSZWYgc2V0U2VtYXBob3JlcyhKU0NvbnRl
eHRSZWYsIEpTT2JqZWN0UmVmLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1l
bnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0
aW9uKTsKICAgICBzdGF0aWMgSlNWYWx1ZVJlZiBzZW5kTWVzc2FnZShKU0NvbnRleHRSZWYsIEpT
T2JqZWN0UmVmLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwg
Y29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKTsKICAg
ICBzdGF0aWMgSlNWYWx1ZVJlZiBzZW5kU3luY01lc3NhZ2UoSlNDb250ZXh0UmVmLCBKU09iamVj
dFJlZiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0
IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbik7CisgICAgc3Rh
dGljIEpTVmFsdWVSZWYgc2VuZElQQ1N0cmVhbVRlc3RlclN5bmNDcmFzaE9uWmVybyhKU0NvbnRl
eHRSZWYsIEpTT2JqZWN0UmVmLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1l
bnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0
aW9uKTsKIAogICAgIFdlYWtQdHI8SlNJUEM+IG1fanNJUEM7CiAgICAgSVBDOjpTdHJlYW1DbGll
bnRDb25uZWN0aW9uIG1fc3RyZWFtQ29ubmVjdGlvbjsKQEAgLTg1NCw5ICs4NTYsMTAgQEAgY29u
c3QgSlNTdGF0aWNGdW5jdGlvbiogSlNJUENTdHJlYW1DbGllbnRDb25uZWN0aW9uOjpzdGF0aWNG
dW5jdGlvbnMoKQogewogICAgIHN0YXRpYyBjb25zdCBKU1N0YXRpY0Z1bmN0aW9uIGZ1bmN0aW9u
c1tdID0gewogICAgICAgICB7ICJzdHJlYW1CdWZmZXIiLCBzdHJlYW1CdWZmZXIsIGtKU1Byb3Bl
cnR5QXR0cmlidXRlRG9udERlbGV0ZSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfSwK
LSAgICAgICAgeyAic2V0V2FrZVVwU2VtYXBob3JlIiwgc2V0V2FrZVVwU2VtYXBob3JlLCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5
IH0sCisgICAgICAgIHsgInNldFNlbWFwaG9yZXMiLCBzZXRTZW1hcGhvcmVzLCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZURvbnREZWxldGUgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IH0sCiAg
ICAgICAgIHsgInNlbmRNZXNzYWdlIiwgc2VuZE1lc3NhZ2UsIGtKU1Byb3BlcnR5QXR0cmlidXRl
RG9udERlbGV0ZSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfSwKICAgICAgICAgeyAi
c2VuZFN5bmNNZXNzYWdlIiwgc2VuZFN5bmNNZXNzYWdlLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURv
bnREZWxldGUgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IH0sCisgICAgICAgIHsgInNl
bmRJUENTdHJlYW1UZXN0ZXJTeW5jQ3Jhc2hPblplcm8iLCBzZW5kSVBDU3RyZWFtVGVzdGVyU3lu
Y0NyYXNoT25aZXJvLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZVJlYWRPbmx5IH0sCiAgICAgICAgIHsgMCwgMCwgMCB9CiAgICAgfTsKICAgICBy
ZXR1cm4gZnVuY3Rpb25zOwpAQCAtODc1LDcgKzg3OCw3IEBAIEpTVmFsdWVSZWYgSlNJUENTdHJl
YW1DbGllbnRDb25uZWN0aW9uOjpzdHJlYW1CdWZmZXIoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpT
T2JqCiAgICAgcmV0dXJuIEpTSVBDU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlcjo6Y3JlYXRlKCpqc1N0
cmVhbUNvbm5lY3Rpb24pLT5jcmVhdGVKU1dyYXBwZXIoY29udGV4dCk7CiB9CiAKLUpTVmFsdWVS
ZWYgSlNJUENTdHJlYW1DbGllbnRDb25uZWN0aW9uOjpzZXRXYWtlVXBTZW1hcGhvcmUoSlNDb250
ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXpl
X3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJl
ZiogZXhjZXB0aW9uKQorSlNWYWx1ZVJlZiBKU0lQQ1N0cmVhbUNsaWVudENvbm5lY3Rpb246OnNl
dFNlbWFwaG9yZXMoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmLCBKU09iamVjdFJl
ZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1
bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIGF1dG8qIGdsb2JhbE9iamVj
dCA9IHRvSlMoY29udGV4dCk7CiAgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9jayhnbG9iYWxPYmpl
Y3QtPnZtKCkpOwpAQCAtODg1LDE4ICs4ODgsMjQgQEAgSlNWYWx1ZVJlZiBKU0lQQ1N0cmVhbUNs
aWVudENvbm5lY3Rpb246OnNldFdha2VVcFNlbWFwaG9yZShKU0NvbnRleHRSZWYgY29udGV4dCwK
ICAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogICAgIH0KIAot
ICAgIGlmIChhcmd1bWVudENvdW50IDwgMSkgewotICAgICAgICAqZXhjZXB0aW9uID0gY3JlYXRl
VHlwZUVycm9yKGNvbnRleHQsICJNdXN0IHNwZWNpZnkgYW4gSVBDIHNlbWFwaG9yZSBhcyB0aGUg
Zmlyc3QgYXJndW1lbnQiX3MpOworICAgIGlmIChhcmd1bWVudENvdW50IDwgMikgeworICAgICAg
ICAqZXhjZXB0aW9uID0gY3JlYXRlVHlwZUVycm9yKGNvbnRleHQsICJNdXN0IHNwZWNpZnkgYW4g
SVBDIHNlbWFwaG9yZSBhcyB0aGUgZmlyc3QgYW5kIHNlY29uZCBhcmd1bWVudCJfcyk7CisgICAg
ICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKKyAgICB9CisKKyAgICBS
ZWZQdHIganNXYWtlVXBTZW1hcGhvcmUgPSBKU0lQQ1NlbWFwaG9yZTo6dG9XcmFwcGVkKGNvbnRl
eHQsIGFyZ3VtZW50c1swXSk7CisgICAgaWYgKCFqc1dha2VVcFNlbWFwaG9yZSkgeworICAgICAg
ICAqZXhjZXB0aW9uID0gY3JlYXRlVHlwZUVycm9yKGNvbnRleHQsICJXcm9uZyB0eXBlIChleHBl
Y3RlZCBTZW1hcGhvcmUpIl9zKTsKICAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVk
KGNvbnRleHQpOwogICAgIH0KIAotICAgIFJlZlB0ciBqc1NlbWFwaG9yZSA9IEpTSVBDU2VtYXBo
b3JlOjp0b1dyYXBwZWQoY29udGV4dCwgYXJndW1lbnRzWzBdKTsKLSAgICBpZiAoIWpzU2VtYXBo
b3JlKSB7CisgICAgUmVmUHRyIGpzQ2xpZW50V2FpdFNlbWFwaG9yZSA9IEpTSVBDU2VtYXBob3Jl
Ojp0b1dyYXBwZWQoY29udGV4dCwgYXJndW1lbnRzWzFdKTsKKyAgICBpZiAoIWpzQ2xpZW50V2Fp
dFNlbWFwaG9yZSkgewogICAgICAgICAqZXhjZXB0aW9uID0gY3JlYXRlVHlwZUVycm9yKGNvbnRl
eHQsICJXcm9uZyB0eXBlIChleHBlY3RlZCBTZW1hcGhvcmUpIl9zKTsKICAgICAgICAgcmV0dXJu
IEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogICAgIH0KIAotICAgIGpzU3RyZWFtQ29u
bmVjdGlvbi0+c2V0V2FrZVVwU2VtYXBob3JlKCpqc1NlbWFwaG9yZSk7CisgICAganNTdHJlYW1D
b25uZWN0aW9uLT5zZXRTZW1hcGhvcmVzKCpqc1dha2VVcFNlbWFwaG9yZSwgKmpzQ2xpZW50V2Fp
dFNlbWFwaG9yZSk7CiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwog
fQogCkBAIC0xMDE5LDYgKzEwMjgsNjEgQEAgSlNWYWx1ZVJlZiBKU0lQQ1N0cmVhbUNsaWVudENv
bm5lY3Rpb246OnNlbmRTeW5jTWVzc2FnZShKU0NvbnRleHRSZWYgY29udGV4dCwgSlMKICAgICBy
ZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9CiAKKy8vIEZJWE1FKGh0dHA6
Ly93ZWJraXQub3JnL2IvMjM3MTk3KTogQ2Fubm90IHNlbmQgYXJiaXRyYXJ5IG1lc3NhZ2VzLCBz
byB3ZSBoYXJkLWNvZGUgdGhpcyBvbmUgdG8gYmUgYWJsZSB0byBzZW5kIGl0LgorSlNWYWx1ZVJl
ZiBKU0lQQ1N0cmVhbUNsaWVudENvbm5lY3Rpb246OnNlbmRJUENTdHJlYW1UZXN0ZXJTeW5jQ3Jh
c2hPblplcm8oSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmLCBKU09iamVjdFJlZiB0
aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVu
dHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAgIGF1dG8qIGdsb2JhbE9iamVjdCA9
IHRvSlMoY29udGV4dCk7CisgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9jayhnbG9iYWxPYmplY3Qt
PnZtKCkpOworCisgICAgUmVmUHRyIGpzU3RyZWFtQ29ubmVjdGlvbiA9IHRvV3JhcHBlZChjb250
ZXh0LCB0aGlzT2JqZWN0KTsKKyAgICBpZiAoIWpzU3RyZWFtQ29ubmVjdGlvbikgeworICAgICAg
ICAqZXhjZXB0aW9uID0gY3JlYXRlVHlwZUVycm9yKGNvbnRleHQsICJXcm9uZyB0eXBlIl9zKTsK
KyAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworICAgIH0KKwor
ICAgIGlmIChhcmd1bWVudENvdW50IDwgMykgeworICAgICAgICAqZXhjZXB0aW9uID0gY3JlYXRl
VHlwZUVycm9yKGNvbnRleHQsICJNdXN0IHNwZWNpZnkgZGVzdGluYXRpb24gSUQsIHZhbHVlLCBh
bmQgdGltZW91dCBhcyB0aGUgZmlyc3QgdGhyZWUgYXJndW1lbnRzIl9zKTsKKyAgICAgICAgcmV0
dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworICAgIH0KKworICAgIGF1dG8gZGVz
dGluYXRpb25JRCA9IGRlc3RpbmF0aW9uSURGcm9tQXJndW1lbnQoZ2xvYmFsT2JqZWN0LCBhcmd1
bWVudHNbMF0sIGV4Y2VwdGlvbik7CisgICAgaWYgKCFkZXN0aW5hdGlvbklEKQorICAgICAgICBy
ZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CisKKyAgICBpbnQzMl90IHZhbHVl
OworICAgIHsKKyAgICAgICAgYXV0byBqc1ZhbHVlID0gdG9KUyhnbG9iYWxPYmplY3QsIGFyZ3Vt
ZW50c1sxXSk7CisgICAgICAgIGlmICghanNWYWx1ZS5pc051bWJlcigpKSB7CisgICAgICAgICAg
ICAqZXhjZXB0aW9uID0gY3JlYXRlVHlwZUVycm9yKGNvbnRleHQsICJ2YWx1ZSBtdXN0IGJlIGEg
bnVtYmVyIl9zKTsKKyAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250
ZXh0KTsKKyAgICAgICAgfQorICAgICAgICB2YWx1ZSA9IHN0YXRpY19jYXN0PGludDMyX3Q+KGpz
VmFsdWUuYXNOdW1iZXIoKSk7CisgICAgfQorCisgICAgU2Vjb25kcyB0aW1lb3V0RHVyYXRpb247
CisgICAgeworICAgICAgICBhdXRvIGpzVmFsdWUgPSB0b0pTKGdsb2JhbE9iamVjdCwgYXJndW1l
bnRzWzJdKTsKKyAgICAgICAgaWYgKCFqc1ZhbHVlLmlzTnVtYmVyKCkpIHsKKyAgICAgICAgICAg
ICpleGNlcHRpb24gPSBjcmVhdGVUeXBlRXJyb3IoY29udGV4dCwgInRpbWVvdXQgbXVzdCBiZSBh
IG51bWJlciJfcyk7CisgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29u
dGV4dCk7CisgICAgICAgIH0KKyAgICAgICAgdGltZW91dER1cmF0aW9uID0gU2Vjb25kcyB7IGpz
VmFsdWUuYXNOdW1iZXIoKSB9OworICAgIH0KKworICAgIGF1dG8mIHN0cmVhbUNvbm5lY3Rpb24g
PSBqc1N0cmVhbUNvbm5lY3Rpb24tPmNvbm5lY3Rpb24oKTsKKyAgICBpbnQzMl90IHJlc3VsdFZh
bHVlID0gMDsKKyAgICBlbnVtIEpTSVBDU3RyZWFtVGVzdGVySWRlbnRpZmllclR5cGUgeyB9Owor
ICAgIGF1dG8gZGVzdGluYXRpb24gPSBtYWtlT2JqZWN0SWRlbnRpZmllcjxKU0lQQ1N0cmVhbVRl
c3RlcklkZW50aWZpZXJUeXBlPigqZGVzdGluYXRpb25JRCk7CisKKyAgICBhdXRvIHJlc3VsdCA9
IHN0cmVhbUNvbm5lY3Rpb24uc2VuZFN5bmMoTWVzc2FnZXM6OklQQ1N0cmVhbVRlc3Rlcjo6U3lu
Y0NyYXNoT25aZXJvKHZhbHVlKSwgTWVzc2FnZXM6OklQQ1N0cmVhbVRlc3Rlcjo6U3luY0NyYXNo
T25aZXJvOjpSZXBseShyZXN1bHRWYWx1ZSksIGRlc3RpbmF0aW9uLCB0aW1lb3V0RHVyYXRpb24p
OworICAgIGlmICghcmVzdWx0KSB7CisgICAgICAgICpleGNlcHRpb24gPSBjcmVhdGVUeXBlRXJy
b3IoY29udGV4dCwgInN5bmMgc2VuZCBmYWlsZWQiX3MpOworICAgICAgICByZXR1cm4gSlNWYWx1
ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CisgICAgfQorCisgICAgcmV0dXJuIEpTVmFsdWVNYWtl
TnVtYmVyKGNvbnRleHQsIHJlc3VsdFZhbHVlKTsKK30KKwogSlNPYmplY3RSZWYgSlNJUENTdHJl
YW1Db25uZWN0aW9uQnVmZmVyOjpjcmVhdGVKU1dyYXBwZXIoSlNDb250ZXh0UmVmIGNvbnRleHQp
CiB7CiAgICAgYXV0byogZ2xvYmFsT2JqZWN0ID0gdG9KUyhjb250ZXh0KTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4NTNk
NWYyZmExYzg3ZWFiOWU0ZjAwM2YwMWRlMTlhYWZmMGY3NDI4Li44MTc1MTRhNTBiZTA5YWJjOGRm
ZDlmMTVmZTYzNjU4ZmJlNWM1MTBlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjItMDUtMDIg
IEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBJUEMgc3Ry
ZWFtIGNvbm5lY3Rpb24gc2VuZHMgc2hvdWxkIGZhaWwgaW1tZWRpYXRlbHkgd2hlbiBjb25uZWN0
aW9uIGNsb3NlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjM4MjUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAg
IFRoZSB0ZXN0IHdvcmtzIG9uIG1pbmlicm93c2VyIGJ1dCBHUFVQIHN0YXJ0dXAgY29kZSBmYWls
cyBpbiBydW4td2Via2l0LXRlc3RzLAorICAgICAgICB0aHVzIGRpc2FibGVkLgorCisgICAgICAg
ICogVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBpcGMvc3RyZWFtLXN5bmMtY3Jhc2gtbm8t
dGltZW91dC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGlwYy9zdHJlYW0tc3luYy1j
cmFzaC1uby10aW1lb3V0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGlwYy9zdHJlYW0tc3luYy1y
ZXBseS1zaGFyZWQtbWVtb3J5Lmh0bWw6IEFkanVzdCBhZnRlciBBUEkgY2hhbmdlLgorCiAyMDIy
LTA1LTAyICBSb2JlcnQgSmVubmVyICA8SmVubmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBbIE1v
bnRlcmV5IHdrMSBHdWFyZE1hbGxvYyBdIGZhc3QvYm9yZGVycy9oaWRwaS0zeC1pbnB1dC1oYWly
bGluZS1ib3JkZXIuaHRtbCBpcyB0aW1pbmcgb3V0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9U
ZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA5ZDg3
NDM1ZjA5N2Y5MGQ1ZGMwM2QzZTIxOWUxZmQyOTFkMWQwMTJhLi44MThlYjc3ZTVlZWUxM2M3ZDgx
YzdlOWNkYmI3ODZiOGEyZWEzMjU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0
YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTUwOTQsNiArNTA5
NCw5IEBAIHdlYmtpdC5vcmcvYi8yMzMzNDQgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvbW90aW9uL29mZnNldC1yb3RhdGUtMDAyCiAjIElQQyB0ZXN0IGZhaWxpbmcgaW4gRGVi
dWcgbW9kZSBkdWUgdG8gYXNzZXJ0LgogWyBEZWJ1ZyBdIGlwYy9zZW5kLWludmFsaWQtbWVzc2Fn
ZS5odG1sIFsgU2tpcCBdCiAKKyMgUmVzdGFydGVkIEdQVVAgc2VlbXMgdG8gY3Jhc2guCit3ZWJr
aXQub3JnL2IvMjM5OTU5IGlwYy9zdHJlYW0tc3luYy1jcmFzaC1uby10aW1lb3V0Lmh0bWwgWyBT
a2lwIF0KKwogIyBUaGUgdGVzdCBpbnZva2VzIHJhbmRvbSBtZXNzYWdlcywgcG90ZW50aWFsbHkg
cHJvZHVjZXMgcmFuZG9tIHJlc3VsdHMuCiBpcGMvc3RhcnQtbWVzc2FnZS10ZXN0aW5nLmh0bWwg
WyBTa2lwIF0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaXBjL3N0cmVhbS1zeW5jLWNyYXNo
LW5vLXRpbWVvdXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaXBjL3N0cmVhbS1zeW5jLWNy
YXNoLW5vLXRpbWVvdXQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNhNTk3OTc4NzMxZTIyNDgw
Yjg0ZTM0NGQ4MWJmNGE4Yjk5NmVmZDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
cGMvc3RyZWFtLXN5bmMtY3Jhc2gtbm8tdGltZW91dC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0
IEBACitDT05TT0xFIE1FU1NBR0U6IFR5cGVFcnJvcjogQmFkIHR5cGUgbmFtZQorCitGQUlMIFRl
c3QgdGhhdCBzdHJlYW0gc3luYyBtZXNzYWdlIGNyYXNoIGlzIG5vdGljZWQgaW1tZWRpYXRlbHkg
VHlwZUVycm9yOiBCYWQgdHlwZSBuYW1lCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lwYy9z
dHJlYW0tc3luYy1jcmFzaC1uby10aW1lb3V0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pcGMvc3RyZWFt
LXN5bmMtY3Jhc2gtbm8tdGltZW91dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYwZjk3MmRlN2MxYjhiNjI3
MzZjOGM0NTJlZDRmYmQ3YjJhYTAyZmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
cGMvc3RyZWFtLXN5bmMtY3Jhc2gtbm8tdGltZW91dC5odG1sCkBAIC0wLDAgKzEsMzcgQEAKKzwh
ZG9jdHlwZSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgSVBDVGVzdGluZ0FQSUVuYWJs
ZWQ9dHJ1ZSBdIC0tPgorPHRpdGxlPlRlc3QgdGhhdCBzdHJlYW0gc3luYyBtZXNzYWdlIGNyYXNo
IGlzIG5vdGljZWQgaW1tZWRpYXRlbHk8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxib2R5PgorPHNjcmlwdD4KK3NldHVwKHsg
c2luZ2xlX3Rlc3Q6IHRydWUgfSk7CitpZiAod2luZG93LklQQykgeyAvLyBGb3IgY29tcGlsZXMg
d2l0aCAhRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKKyAgICBjb25zdCBkZWZhdWx0VGltZW91dCA9
IDEwOworICAgIGNvbnN0IGJ1ZmZlclNpemUgPSAxMDA7CisgICAgY29uc3Qgc3RyZWFtVGVzdGVy
SUQgPSA0NTU3OworICAgIGZvciAoY29uc3QgcHJvY2Vzc1RhcmdldCBvZiBJUEMucHJvY2Vzc1Rh
cmdldHMpIHsKKyAgICAgICAgaWYgKHByb2Nlc3NUYXJnZXQgPT0gIlVJIikKKyAgICAgICAgICAg
IGNvbnRpbnVlOyAvLyBDcmFzaGluZyBVSSBpcyBub3Qgc3VwcG9ydGVkLgorICAgICAgICBjb25z
dCBzdHJlYW1Db25uZWN0aW9uID0gSVBDLmNyZWF0ZVN0cmVhbUNsaWVudENvbm5lY3Rpb24ocHJv
Y2Vzc1RhcmdldCwgYnVmZmVyU2l6ZSk7CisgICAgICAgIElQQy5zZW5kTWVzc2FnZShwcm9jZXNz
VGFyZ2V0LCAwLCBJUEMubWVzc2FnZXMuSVBDVGVzdGVyX0NyZWF0ZVN0cmVhbVRlc3Rlci5uYW1l
LCBbCisgICAgICAgICAgICB7IHR5cGU6ICd1aW50NjRfdCcsIHZhbHVlOiBzdHJlYW1UZXN0ZXJJ
RCB9LAorICAgICAgICAgICAgeyB0eXBlOiAnU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlcicsIHZhbHVl
OiBzdHJlYW1Db25uZWN0aW9uLnN0cmVhbUJ1ZmZlcigpIH0sCisgICAgICAgIF0pOworICAgICAg
ICBjb25zdCBhcmd1bWVudHMgPSBJUEMud2FpdEZvck1lc3NhZ2UocHJvY2Vzc1RhcmdldCwgc3Ry
ZWFtVGVzdGVySUQsIElQQy5tZXNzYWdlcy5JUENTdHJlYW1UZXN0ZXJQcm94eV9XYXNDcmVhdGVk
Lm5hbWUsIGRlZmF1bHRUaW1lb3V0KTsKKyAgICAgICAgc3RyZWFtQ29ubmVjdGlvbi5zZXRTZW1h
cGhvcmVzKGFyZ3VtZW50c1swXS52YWx1ZSwgYXJndW1lbnRzWzFdLnZhbHVlKTsKKworICAgICAg
ICAvLyBUZXN0IHN0YXJ0cyBoZXJlLgorICAgICAgICBjb25zdCByZXN1bHQgPSBzdHJlYW1Db25u
ZWN0aW9uLnNlbmRJUENTdHJlYW1UZXN0ZXJTeW5jQ3Jhc2hPblplcm8oc3RyZWFtVGVzdGVySUQs
IDc4LCBkZWZhdWx0VGltZW91dCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMocmVzdWx0LCA3OCwg
IGBzeW5jIG1lc3NhZ2VzIHdvcmsgZm9yICR7IHByb2Nlc3NUYXJnZXQgfWApOworCisgICAgICAg
IGNvbnN0IHN0YXJ0ID0gRGF0ZS5ub3coKTsKKyAgICAgICAgYXNzZXJ0X3Rocm93c19qcyhUeXBl
RXJyb3IsCisgICAgICAgICAgICAoKSA9PiB7IHN0cmVhbUNvbm5lY3Rpb24uc2VuZElQQ1N0cmVh
bVRlc3RlclN5bmNDcmFzaE9uWmVybyhzdHJlYW1UZXN0ZXJJRCwgMCwgZGVmYXVsdFRpbWVvdXQp
OyB9LAorICAgICAgICAgICAgYGNyYXNoaW5nIHN5bmMgbWVzc2FnZSBtdXN0IHJldHVybiBmYWls
dXJlIGZvciAkeyBwcm9jZXNzVGFyZ2V0IH1gKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihE
YXRlLm5vdygpIC0gc3RhcnQsIDUwMCwgYGNyYXNoaW5nIHN5bmMgbWVzc2FnZSBtdXN0IGNvbXBs
ZXRlIGluIDUwMG1zIGZvciAkeyBwcm9jZXNzVGFyZ2V0IH1gKTsKKyAgICAgICAgY29uc29sZS5s
b2coYHR0dDogJHtEYXRlLm5vdygpIC0gc3RhcnR9YCk7CisgICAgfQorfQorZG9uZSgpOworPC9z
Y3JpcHQ+Cis8L2JvZHk+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaXBjL3N0cmVhbS1zeW5jLXJlcGx5LXNoYXJlZC1tZW1vcnkuaHRtbCBiL0xh
eW91dFRlc3RzL2lwYy9zdHJlYW0tc3luYy1yZXBseS1zaGFyZWQtbWVtb3J5Lmh0bWwKaW5kZXgg
ZGYwMjlhZDFlMmNmZGZkN2RmOTkzYzI3ZTYyNjVjZGVlZmVkNDVkMi4uYTk5YTM4ZjQxN2RiZGNi
NjlmNjY5MGZhZjRmMzM1OWMyNDA4ZTJmOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaXBjL3N0
cmVhbS1zeW5jLXJlcGx5LXNoYXJlZC1tZW1vcnkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pcGMv
c3RyZWFtLXN5bmMtcmVwbHktc2hhcmVkLW1lbW9yeS5odG1sCkBAIC0xNiw3ICsxNiw3IEBAIGlm
ICh3aW5kb3cuSVBDKSB7IC8vIEZvciBjb21waWxlcyB3aXRoICFFTkFCTEUoSVBDX1RFU1RJTkdf
QVBJKQogICAgICAgICAgICAgeyB0eXBlOiAnU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlcicsIHZhbHVl
OiBzdHJlYW1Db25uZWN0aW9uLnN0cmVhbUJ1ZmZlcigpIH0sCiAgICAgICAgIF0pOwogICAgICAg
ICBjb25zdCBhcmd1bWVudHMgPSBJUEMud2FpdEZvck1lc3NhZ2UocHJvY2Vzc1RhcmdldCwgc3Ry
ZWFtVGVzdGVySUQsIElQQy5tZXNzYWdlcy5JUENTdHJlYW1UZXN0ZXJQcm94eV9XYXNDcmVhdGVk
Lm5hbWUsIGRlZmF1bHRUaW1lb3V0KTsKLSAgICAgICAgc3RyZWFtQ29ubmVjdGlvbi5zZXRXYWtl
VXBTZW1hcGhvcmUoYXJndW1lbnRzWzBdLnZhbHVlKTsKKyAgICAgICAgc3RyZWFtQ29ubmVjdGlv
bi5zZXRTZW1hcGhvcmVzKGFyZ3VtZW50c1swXS52YWx1ZSwgYXJndW1lbnRzWzFdLnZhbHVlKTsK
IAogICAgICAgICAvLyBUZXN0IHN0YXJ0cyBoZXJlLgogICAgICAgICB0cnkgewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>