<?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>220318</bug_id>
          
          <creation_ts>2021-01-05 03:19:03 -0800</creation_ts>
          <short_desc>WebKit IPC builtin messages should be part of the model</short_desc>
          <delta_ts>2021-01-07 09:05:19 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          <dependson>220236</dependson>
          <blocked>217211</blocked>
    
    <blocked>220319</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kimmo Kinnunen">kkinnunen</reporter>
          <assigned_to name="Kimmo Kinnunen">kkinnunen</assigned_to>
          <cc>cdumez</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1717265</commentid>
    <comment_count>0</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-01-05 03:19:03 -0800</bug_when>
    <thetext>WebKit IPC builtin messages should be part of the model

This way the generator can operate on all the messages, not just all non-builtin messages</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717268</commentid>
    <comment_count>1</comment_count>
      <attachid>416987</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-01-05 03:23:53 -0800</bug_when>
    <thetext>Created attachment 416987
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717276</commentid>
    <comment_count>2</comment_count>
      <attachid>416991</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-01-05 04:38:43 -0800</bug_when>
    <thetext>Created attachment 416991
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717644</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-01-06 07:31:38 -0800</bug_when>
    <thetext>This seems to be failing the tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717911</commentid>
    <comment_count>4</comment_count>
      <attachid>417170</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-01-07 01:52:53 -0800</bug_when>
    <thetext>Created attachment 417170
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717947</commentid>
    <comment_count>5</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-01-07 08:01:31 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #3)
&gt; This seems to be failing the tests.

Sorry, updated and added some tests around the issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717967</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-01-07 09:04:26 -0800</bug_when>
    <thetext>Committed r271237: &lt;https://trac.webkit.org/changeset/271237&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 417170.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717968</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-01-07 09:05:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/72891299&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416987</attachid>
            <date>2021-01-05 03:23:53 -0800</date>
            <delta_ts>2021-01-05 04:38:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220318-20210105132351.patch</filename>
            <type>text/plain</type>
            <size>38051</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY4Y2ZmMWM1ZjJhMDIyZWNj
Nzg2MTg0YzRhZjMxZDg0ZGE4MzhkN2EuLjBjMmQyYjZiOWNiN2ExNDJmNzA1YzJiZThmNWIwNGZk
ZGE3OTExZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjEtMDEtMDUgIEtpbW1vIEtp
bm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBXZWJLaXQgSVBDIGJ1aWx0
aW4gbWVzc2FnZXMgc2hvdWxkIGJlIHBhcnQgb2YgdGhlIG1vZGVsCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjAzMTgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgSVBDIGFuZCBBc3luY1JlcGx5IG1l
c3NhZ2UgcmVjZWl2ZXJzIHRvIHRoZSBJUEMgbW9kZWwKKyAgICAgICAgc28gdGhhdCB0aGVpciBt
ZXNzYWdlcyBjYW4gYmUgcGFydCBvZiB0aGUgZ2VuZXJhdG9yIGR5bmFtaWMgbG9naWMgaW5zdGVh
ZCBvZgorICAgICAgICBiZWluZyBwYXJ0IG9mIHRoZSBzdGF0aWMgdGV4dHVhbCB0ZW1wbGF0ZXMu
CisKKyAgICAgICAgVGhpcyBoZWxwcyB0byByZWZpbmUgZmVhdHVyZXMgc3VjaCBhcyAiaXMgbWVz
c2FnZSBhc3luY2hyb25vdXMiIG1vcmUgZWFzaWx5LgorCisgICAgICAgICogU2NyaXB0cy9nZW5l
cmF0ZS1tZXNzYWdlLXJlY2VpdmVyLnB5OgorICAgICAgICAobWFpbik6CisgICAgICAgICogU2Ny
aXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbW9kZWwu
cHk6CisgICAgICAgIChjaGVja19nbG9iYWxfbW9kZWxfaW5wdXRzKToKKyAgICAgICAgKGdlbmVy
YXRlX2dsb2JhbF9tb2RlbCk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbW9kZWxfdW5pdHRl
c3QucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvdGVzdHMvTWVzc2FnZU5hbWVzLmNwcDoK
KyAgICAgICAgKElQQzo6ZGVzY3JpcHRpb24pOgorICAgICAgICAoSVBDOjpyZWNlaXZlck5hbWUp
OgorICAgICAgICAoSVBDOjppc1ZhbGlkTWVzc2FnZU5hbWUpOgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0L3Rlc3RzL01lc3NhZ2VOYW1lcy5oOgorCiAyMDIxLTAxLTA0ICBLaW1tbyBLaW5udW5l
biAgPGtraW5udW5lbkBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViS2l0IElQQyBnZW5lcmF0b3Ig
dGVzdHMgaGF2ZSBkdXBsaWNhdGUgcmVjZWl2ZXIgbmFtZXMsIGxpbWl0aW5nIHRoZSBpbXBsZW1l
bnRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL2dlbmVyYXRlLW1lc3Nh
Z2UtcmVjZWl2ZXIucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvZ2VuZXJhdGUtbWVzc2FnZS1y
ZWNlaXZlci5weQppbmRleCBhMWJhYWNhMDVjNGQwMjBjNmU5OTNhNmZiYWMxNjEwMTI1MGMwMjBl
Li4zY2IzNjYxYmNmYTcwNTY1ODc3ZTE3ZTliYjgzMWZlZDUzNzVkNDE2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvZ2VuZXJhdGUtbWVzc2FnZS1yZWNlaXZlci5weQorKysgYi9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvZ2VuZXJhdGUtbWVzc2FnZS1yZWNlaXZlci5weQpAQCAtNTQs
MTMgKzU0LDE3IEBAIGRlZiBtYWluKGFyZ3YpOgogICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0
ZSgiRXJyb3I6ICVzIGRlZmluZWQgaW4gZmlsZSAlcy8lcy5tZXNzYWdlcy5pbiBpbnN0ZWFkIG9m
ICVzLm1lc3NhZ2VzLmluXG4iICUgKHJlY2VpdmVyLm5hbWUsIGJhc2VfZGlyLCBwYXJhbWV0ZXIs
IHJlY2VpdmVyLm5hbWUpKQogICAgICAgICAgICAgc3lzLmV4aXQoMSkKIAotICAgIGVycm9ycyA9
IHdlYmtpdC5tb2RlbC5jaGVja19nbG9iYWxfbW9kZWwocmVjZWl2ZXJzKQorICAgIGVycm9ycyA9
IHdlYmtpdC5tb2RlbC5jaGVja19nbG9iYWxfbW9kZWxfaW5wdXRzKHJlY2VpdmVycykKICAgICBp
ZiBlcnJvcnM6CiAgICAgICAgIGZvciBlIGluIGVycm9yczoKICAgICAgICAgICAgIHN5cy5zdGRl
cnIud3JpdGUoIkVycm9yOiAlc1xuIiAlIGUpCiAgICAgICAgIHN5cy5leGl0KDEpCiAKKyAgICBy
ZWNlaXZlcnMgPSB3ZWJraXQubW9kZWwuZ2VuZXJhdGVfZ2xvYmFsX21vZGVsKHJlY2VpdmVycykK
KwogICAgIGZvciByZWNlaXZlciBpbiByZWNlaXZlcnM6CisgICAgICAgIGlmIHJlY2VpdmVyLmhh
c19hdHRyaWJ1dGUod2Via2l0Lm1vZGVsLkJVSUxUSU5fQVRUUklCVVRFKToKKyAgICAgICAgICAg
IGNvbnRpbnVlCiAgICAgICAgIHdpdGggb3BlbignJXNNZXNzYWdlUmVjZWl2ZXIuY3BwJyAlIHJl
Y2VpdmVyLm5hbWUsICJ3KyIpIGFzIGltcGxlbWVudGF0aW9uX291dHB1dDoKICAgICAgICAgICAg
IGltcGxlbWVudGF0aW9uX291dHB1dC53cml0ZSh3ZWJraXQubWVzc2FnZXMuZ2VuZXJhdGVfbWVz
c2FnZV9oYW5kbGVyKHJlY2VpdmVyKSkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3Jp
cHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVz
c2FnZXMucHkKaW5kZXggNDM3MDM3NTZhNTZiMDg1ZGRjMTE5M2FiOWU2ZjcwNWExMjUzNjRmYi4u
YmJiMmI5YTVkNzE2NGU2NjEzM2UzOGFlZDQ2NTQwZjU4NTEzZWRmNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0
L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0yNSw2ICsyNSw3IEBAIGltcG9ydCByZQog
aW1wb3J0IHN5cwogCiBmcm9tIHdlYmtpdCBpbXBvcnQgcGFyc2VyCitmcm9tIHdlYmtpdC5tb2Rl
bCBpbXBvcnQgQlVJTFRJTl9BVFRSSUJVVEUsIEFTWU5DX0FUVFJJQlVURQogCiBfbGljZW5zZV9o
ZWFkZXIgPSAiIiIvKgogICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgpAQCAtNTgsNyArNTksNTEgQEAgV0FOVFNfQVNZTkNfRElTUEFUQ0hf
TUVTU0FHRV9BVFRSSUJVVEUgPSAnV2FudHNBc3luY0Rpc3BhdGNoTWVzc2FnZScKIExFR0FDWV9S
RUNFSVZFUl9BVFRSSUJVVEUgPSAnTGVnYWN5UmVjZWl2ZXInCiBOT1RfUkVGQ09VTlRFRF9SRUNF
SVZFUl9BVFRSSUJVVEUgPSAnTm90UmVmQ291bnRlZCcKIFNZTkNIUk9OT1VTX0FUVFJJQlVURSA9
ICdTeW5jaHJvbm91cycKLUFTWU5DX0FUVFJJQlVURSA9ICdBc3luYycKKworCitkZWYgcmVjZWl2
ZXJfZW51bWVyYXRvcl9vcmRlcl9rZXkocmVjZWl2ZXJfbmFtZSk6CisgICAgaWYgcmVjZWl2ZXJf
bmFtZSA9PSAnSVBDJzoKKyAgICAgICAgcmV0dXJuIDEKKyAgICBlbGlmIHJlY2VpdmVyX25hbWUg
PT0gJ0FzeW5jUmVwbHknOgorICAgICAgICByZXR1cm4gMgorICAgIHJldHVybiAwCisKKworY2xh
c3MgTWVzc2FnZUVudW1lcmF0b3Iob2JqZWN0KToKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBy
ZWNlaXZlciwgbWVzc2FnZXMpOgorICAgICAgICBzZWxmLnJlY2VpdmVyID0gcmVjZWl2ZXIKKyAg
ICAgICAgc2VsZi5tZXNzYWdlcyA9IG1lc3NhZ2VzCisKKyAgICBkZWYgX19zdHJfXyhzZWxmKToK
KyAgICAgICAgaWYgc2VsZi5tZXNzYWdlc1swXS5oYXNfYXR0cmlidXRlKEJVSUxUSU5fQVRUUklC
VVRFKToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLm1lc3NhZ2VzWzBdLm5hbWUKKyAgICAgICAg
aWYgc2VsZi5yZWNlaXZlci5uYW1lID09ICdBc3luY1JlcGx5JzoKKyAgICAgICAgICAgIHJldHVy
biBzZWxmLm1lc3NhZ2VzWzBdLm5hbWUKKyAgICAgICAgcmV0dXJuICclc18lcycgJSAoc2VsZi5y
ZWNlaXZlci5uYW1lLCBzZWxmLm1lc3NhZ2VzWzBdLm5hbWUpCisKKyAgICBAY2xhc3NtZXRob2QK
KyAgICBkZWYgc29ydF9rZXkoY2xzLCBvYmopOgorICAgICAgICByZXR1cm4gcmVjZWl2ZXJfZW51
bWVyYXRvcl9vcmRlcl9rZXkob2JqLnJlY2VpdmVyLm5hbWUpLCBzdHIob2JqKQorCisKK2RlZiBn
ZXRfbWVzc2FnZV9lbnVtZXJhdG9ycyhyZWNlaXZlcnMpOgorICAgIGVudW1lcmF0b3JzID0gW10K
KyAgICBmb3IgcmVjZWl2ZXIgaW4gcmVjZWl2ZXJzOgorICAgICAgICByZWNlaXZlcl9lbnVtZXJh
dG9ycyA9IHt9CisgICAgICAgIGZvciBtZXNzYWdlIGluIHJlY2VpdmVyLm1lc3NhZ2VzOgorICAg
ICAgICAgICAgaWYgbWVzc2FnZS5uYW1lIG5vdCBpbiBlbnVtZXJhdG9yczoKKyAgICAgICAgICAg
ICAgICByZWNlaXZlcl9lbnVtZXJhdG9yc1ttZXNzYWdlLm5hbWVdID0gTWVzc2FnZUVudW1lcmF0
b3IocmVjZWl2ZXIsIG1lc3NhZ2VzPVttZXNzYWdlXSkKKyAgICAgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICAgICAgcmVjZWl2ZXJfZW51bWVyYXRvcnNbbWVzc2FnZS5uYW1lXS5tZXNzYWdlcy5h
cHBlbmQobWVzc2FnZSkKKyAgICAgICAgZW51bWVyYXRvcnMgKz0gcmVjZWl2ZXJfZW51bWVyYXRv
cnMudmFsdWVzKCkKKyAgICBhc3NlcnQobGVuKGVudW1lcmF0b3JzKSA9PSBsZW4oc2V0KGVudW1l
cmF0b3JzKSkpCisgICAgcmV0dXJuIHNvcnRlZChlbnVtZXJhdG9ycywga2V5PU1lc3NhZ2VFbnVt
ZXJhdG9yLnNvcnRfa2V5KQorCisKK2RlZiBnZXRfcmVjZWl2ZXJfZW51bWVyYXRvcnMocmVjZWl2
ZXJzKToKKyAgICByZXR1cm4gc29ydGVkKChyLm5hbWUgZm9yIHIgaW4gcmVjZWl2ZXJzKSwga2V5
PWxhbWJkYSBuOiAocmVjZWl2ZXJfZW51bWVyYXRvcl9vcmRlcl9rZXkobiksIG4pKQorCiAKIGRl
ZiBtZXNzYWdlc19oZWFkZXJfZmlsZW5hbWUocmVjZWl2ZXIpOgogICAgIHJldHVybiAnJXNNZXNz
YWdlcy5oJyAlIHJlY2VpdmVyLm5hbWUKQEAgLTkxMSw0NSArOTU2LDE5IEBAIGRlZiBnZW5lcmF0
ZV9tZXNzYWdlX25hbWVzX2hlYWRlcihyZWNlaXZlcnMpOgogICAgIHJlc3VsdC5hcHBlbmQoJ25h
bWVzcGFjZSBJUEMge1xuJykKICAgICByZXN1bHQuYXBwZW5kKCdcbicpCiAgICAgcmVzdWx0LmFw
cGVuZCgnZW51bSBjbGFzcyBSZWNlaXZlck5hbWUgOiB1aW50OF90IHsnKQotCi0gICAgZW51bV92
YWx1ZSA9IDEKLSAgICBmaXJzdF9yZWNlaXZlciA9IFRydWUKLSAgICBmb3IgcmVjZWl2ZXIgaW4g
cmVjZWl2ZXJzOgotICAgICAgICByZXN1bHQuYXBwZW5kKCdcbicpCi0gICAgICAgIHJlc3VsdC5h
cHBlbmQoJyAgICAnKQotICAgICAgICBpZiBub3QgZmlyc3RfcmVjZWl2ZXI6Ci0gICAgICAgICAg
ICByZXN1bHQuYXBwZW5kKCcsICcpCi0gICAgICAgIGZpcnN0X3JlY2VpdmVyID0gRmFsc2UKLSAg
ICAgICAgcmVzdWx0LmFwcGVuZCgnJXMgPSAlZCcgJSAocmVjZWl2ZXIubmFtZSwgZW51bV92YWx1
ZSkpCi0gICAgICAgIGVudW1fdmFsdWUgPSBlbnVtX3ZhbHVlICsgMQotICAgIHJlc3VsdC5hcHBl
bmQoJ1xuICAgICwgSVBDID0gJWQnICUgZW51bV92YWx1ZSkKLSAgICBlbnVtX3ZhbHVlID0gZW51
bV92YWx1ZSArIDEKLSAgICByZXN1bHQuYXBwZW5kKCdcbiAgICAsIEFzeW5jUmVwbHkgPSAlZCcg
JSBlbnVtX3ZhbHVlKQotICAgIGVudW1fdmFsdWUgPSBlbnVtX3ZhbHVlICsgMQotICAgIHJlc3Vs
dC5hcHBlbmQoJ1xuICAgICwgSW52YWxpZCA9ICVkJyAlIGVudW1fdmFsdWUpCisgICAgcmVzdWx0
LmFwcGVuZCgnXG4gICAgJykKKyAgICBlbnVtcyA9IFsnJXMgPSAlZCcgJSAoZSwgdikgZm9yIHYs
IGUgaW4gZW51bWVyYXRlKGdldF9yZWNlaXZlcl9lbnVtZXJhdG9ycyhyZWNlaXZlcnMpLCAxKV0K
KyAgICByZXN1bHQuYXBwZW5kKCdcbiAgICAsICcuam9pbihlbnVtcykpCisgICAgcmVzdWx0LmFw
cGVuZCgnXG4gICAgLCBJbnZhbGlkID0gJWQnICUgKGxlbihlbnVtcykgKyAxKSkKICAgICByZXN1
bHQuYXBwZW5kKCdcbn07XG4nKQogICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykKLSAgICByZXN1bHQu
YXBwZW5kKCdlbnVtIGNsYXNzIE1lc3NhZ2VOYW1lIDogdWludDE2X3QgeycpCiAKLSAgICBlbnVt
X3ZhbHVlcyA9IHNldCgpCi0gICAgZm9yIHJlY2VpdmVyIGluIHJlY2VpdmVyczoKLSAgICAgICAg
Zm9yIG1lc3NhZ2UgaW4gcmVjZWl2ZXIubWVzc2FnZXM6Ci0gICAgICAgICAgICBlbnVtX3ZhbHVl
cy5hZGQoJyVzXyVzJyAlIChyZWNlaXZlci5uYW1lLCBtZXNzYWdlLm5hbWUpKQotICAgICAgICAg
ICAgaWYgbWVzc2FnZS5oYXNfYXR0cmlidXRlKEFTWU5DX0FUVFJJQlVURSk6Ci0gICAgICAgICAg
ICAgICAgZW51bV92YWx1ZXMuYWRkKCclc18lc1JlcGx5JyAlIChyZWNlaXZlci5uYW1lLCBtZXNz
YWdlLm5hbWUpKQotCi0gICAgZmlyc3RfbWVzc2FnZSA9IFRydWUKLSAgICBmb3IgZW51bV92YWx1
ZSBpbiBzb3J0ZWQoZW51bV92YWx1ZXMpOgotICAgICAgICByZXN1bHQuYXBwZW5kKCdcbiAgICAn
KQotICAgICAgICBpZiBub3QgZmlyc3RfbWVzc2FnZToKLSAgICAgICAgICAgIHJlc3VsdC5hcHBl
bmQoJywgJykKLSAgICAgICAgZmlyc3RfbWVzc2FnZSA9IEZhbHNlCi0gICAgICAgIHJlc3VsdC5h
cHBlbmQoZW51bV92YWx1ZSkKLSAgICByZXN1bHQuYXBwZW5kKCdcbiAgICAsIFdyYXBwZWRBc3lu
Y01lc3NhZ2VGb3JUZXN0aW5nJykKLSAgICByZXN1bHQuYXBwZW5kKCdcbiAgICAsIFN5bmNNZXNz
YWdlUmVwbHknKQotICAgIHJlc3VsdC5hcHBlbmQoJ1xuICAgICwgSW5pdGlhbGl6ZUNvbm5lY3Rp
b24nKQotICAgIHJlc3VsdC5hcHBlbmQoJ1xuICAgICwgTGVnYWN5U2Vzc2lvblN0YXRlJykKLSAg
ICByZXN1bHQuYXBwZW5kKCdcbiAgICAsIExhc3QgPSBMZWdhY3lTZXNzaW9uU3RhdGUnKQorICAg
IG1lc3NhZ2VfZW51bWVyYXRvcnMgPSBnZXRfbWVzc2FnZV9lbnVtZXJhdG9ycyhyZWNlaXZlcnMp
CisKKyAgICByZXN1bHQuYXBwZW5kKCdlbnVtIGNsYXNzIE1lc3NhZ2VOYW1lIDogdWludDE2X3Qg
eycpCisgICAgcmVzdWx0LmFwcGVuZCgnXG4gICAgJykKKyAgICByZXN1bHQuYXBwZW5kKCdcbiAg
ICAsICcuam9pbihzdHIoZSkgZm9yIGUgaW4gbWVzc2FnZV9lbnVtZXJhdG9ycykpCisgICAgcmVz
dWx0LmFwcGVuZCgnXG4gICAgLCBMYXN0ID0gJXMnICUgbWVzc2FnZV9lbnVtZXJhdG9yc1stMV0p
CiAgICAgcmVzdWx0LmFwcGVuZCgnXG59O1xuJykKICAgICByZXN1bHQuYXBwZW5kKCdcbicpCiAg
ICAgcmVzdWx0LmFwcGVuZCgnUmVjZWl2ZXJOYW1lIHJlY2VpdmVyTmFtZShNZXNzYWdlTmFtZSk7
XG4nKQpAQCAtOTg3LDI0ICsxMDA2LDExIEBAIGRlZiBnZW5lcmF0ZV9tZXNzYWdlX25hbWVzX2lt
cGxlbWVudGF0aW9uKHJlY2VpdmVycyk6CiAgICAgcmVzdWx0LmFwcGVuZCgnY29uc3QgY2hhciog
ZGVzY3JpcHRpb24oTWVzc2FnZU5hbWUgbmFtZSlcbicpCiAgICAgcmVzdWx0LmFwcGVuZCgne1xu
JykKICAgICByZXN1bHQuYXBwZW5kKCcgICAgc3dpdGNoIChuYW1lKSB7XG4nKQotICAgIGVudW1f
dmFsdWVzID0gc2V0KCkKLSAgICBmb3IgcmVjZWl2ZXIgaW4gcmVjZWl2ZXJzOgotICAgICAgICBm
b3IgbWVzc2FnZSBpbiByZWNlaXZlci5tZXNzYWdlczoKLSAgICAgICAgICAgIGVudW1fdmFsdWVz
LmFkZCgnJXNfJXMnICUgKHJlY2VpdmVyLm5hbWUsIG1lc3NhZ2UubmFtZSkpCi0gICAgICAgICAg
ICBpZiBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoQVNZTkNfQVRUUklCVVRFKToKLSAgICAgICAgICAg
ICAgICBlbnVtX3ZhbHVlcy5hZGQoJyVzXyVzUmVwbHknICUgKHJlY2VpdmVyLm5hbWUsIG1lc3Nh
Z2UubmFtZSkpCi0KLSAgICBmb3IgZW51bV92YWx1ZSBpbiBzb3J0ZWQoZW51bV92YWx1ZXMpOgot
ICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgY2FzZSBNZXNzYWdlTmFtZTo6JXM6XG4nICUgZW51
bV92YWx1ZSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgICAgICByZXR1cm4gIiVzIjtcbicg
JSBlbnVtX3ZhbHVlKQotICAgIHJlc3VsdC5hcHBlbmQoJyAgICBjYXNlIE1lc3NhZ2VOYW1lOjpX
cmFwcGVkQXN5bmNNZXNzYWdlRm9yVGVzdGluZzpcbicpCi0gICAgcmVzdWx0LmFwcGVuZCgnICAg
ICAgICByZXR1cm4gIklQQzo6V3JhcHBlZEFzeW5jTWVzc2FnZUZvclRlc3RpbmciO1xuJykKLSAg
ICByZXN1bHQuYXBwZW5kKCcgICAgY2FzZSBNZXNzYWdlTmFtZTo6U3luY01lc3NhZ2VSZXBseTpc
bicpCi0gICAgcmVzdWx0LmFwcGVuZCgnICAgICAgICByZXR1cm4gIklQQzo6U3luY01lc3NhZ2VS
ZXBseSI7XG4nKQotICAgIHJlc3VsdC5hcHBlbmQoJyAgICBjYXNlIE1lc3NhZ2VOYW1lOjpJbml0
aWFsaXplQ29ubmVjdGlvbjpcbicpCi0gICAgcmVzdWx0LmFwcGVuZCgnICAgICAgICByZXR1cm4g
IklQQzo6SW5pdGlhbGl6ZUNvbm5lY3Rpb24iO1xuJykKLSAgICByZXN1bHQuYXBwZW5kKCcgICAg
Y2FzZSBNZXNzYWdlTmFtZTo6TGVnYWN5U2Vzc2lvblN0YXRlOlxuJykKLSAgICByZXN1bHQuYXBw
ZW5kKCcgICAgICAgIHJldHVybiAiSVBDOjpMZWdhY3lTZXNzaW9uU3RhdGUiO1xuJykKKworICAg
IG1lc3NhZ2VfZW51bWVyYXRvcnMgPSBnZXRfbWVzc2FnZV9lbnVtZXJhdG9ycyhyZWNlaXZlcnMp
CisgICAgZm9yIGVudW1lcmF0b3IgaW4gbWVzc2FnZV9lbnVtZXJhdG9yczoKKyAgICAgICAgcmVz
dWx0LmFwcGVuZCgnICAgIGNhc2UgTWVzc2FnZU5hbWU6OiVzOlxuJyAlIGVudW1lcmF0b3IpCisg
ICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICAgICAgcmV0dXJuICIlcyI7XG4nICUgZW51bWVyYXRv
cikKICAgICByZXN1bHQuYXBwZW5kKCcgICAgfVxuJykKICAgICByZXN1bHQuYXBwZW5kKCcgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7XG4nKQogICAgIHJlc3VsdC5hcHBlbmQoJyAgICByZXR1cm4g
IjxpbnZhbGlkIG1lc3NhZ2UgbmFtZT4iO1xuJykKQEAgLTEwMTMsMzAgKzEwMTksMTQgQEAgZGVm
IGdlbmVyYXRlX21lc3NhZ2VfbmFtZXNfaW1wbGVtZW50YXRpb24ocmVjZWl2ZXJzKToKICAgICBy
ZXN1bHQuYXBwZW5kKCdSZWNlaXZlck5hbWUgcmVjZWl2ZXJOYW1lKE1lc3NhZ2VOYW1lIG1lc3Nh
Z2VOYW1lKVxuJykKICAgICByZXN1bHQuYXBwZW5kKCd7XG4nKQogICAgIHJlc3VsdC5hcHBlbmQo
JyAgICBzd2l0Y2ggKG1lc3NhZ2VOYW1lKSB7XG4nKQotICAgIG1lc3NhZ2VfcmVjZWl2ZXJfbWFw
ID0gZGljdCgpCi0gICAgYXN5bmNfcmVwbHlfbWVzc2FnZXMgPSBzZXQoKQotICAgIGZvciByZWNl
aXZlciBpbiByZWNlaXZlcnM6Ci0gICAgICAgIG1lc3NhZ2VzID0gc2V0KCkKLSAgICAgICAgZm9y
IG1lc3NhZ2UgaW4gcmVjZWl2ZXIubWVzc2FnZXM6Ci0gICAgICAgICAgICBtZXNzYWdlcy5hZGQo
JyVzXyVzJyAlIChyZWNlaXZlci5uYW1lLCBtZXNzYWdlLm5hbWUpKQotICAgICAgICAgICAgaWYg
bWVzc2FnZS5oYXNfYXR0cmlidXRlKEFTWU5DX0FUVFJJQlVURSk6Ci0gICAgICAgICAgICAgICAg
YXN5bmNfcmVwbHlfbWVzc2FnZXMuYWRkKCclc18lc1JlcGx5JyAlIChyZWNlaXZlci5uYW1lLCBt
ZXNzYWdlLm5hbWUpKQotICAgICAgICBpZiBsZW4obWVzc2FnZXMpOgotICAgICAgICAgICAgbWVz
c2FnZV9yZWNlaXZlcl9tYXBbcmVjZWl2ZXIubmFtZV0gPSBtZXNzYWdlcwotCi0gICAgZm9yIHJl
Y2VpdmVyX25hbWUsIG1lc3NhZ2VfbmFtZXMgaW4gbWVzc2FnZV9yZWNlaXZlcl9tYXAuaXRlbXMo
KToKLSAgICAgICAgZm9yIG1lc3NhZ2VfbmFtZSBpbiBzb3J0ZWQobWVzc2FnZV9uYW1lcyk6Ci0g
ICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgY2FzZSBNZXNzYWdlTmFtZTo6JXM6XG4nICUg
bWVzc2FnZV9uYW1lKQotICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgICAgIHJldHVybiBSZWNl
aXZlck5hbWU6OiVzO1xuJyAlIHJlY2VpdmVyX25hbWUpCi0KLSAgICBmb3IgYXN5bmNfcmVwbHlf
bWVzc2FnZSBpbiBzb3J0ZWQoYXN5bmNfcmVwbHlfbWVzc2FnZXMpOgotICAgICAgICByZXN1bHQu
YXBwZW5kKCcgICAgY2FzZSBNZXNzYWdlTmFtZTo6JXM6XG4nICUgYXN5bmNfcmVwbHlfbWVzc2Fn
ZSkKLSAgICByZXN1bHQuYXBwZW5kKCcgICAgICAgIHJldHVybiBSZWNlaXZlck5hbWU6OkFzeW5j
UmVwbHk7XG4nKQotICAgIHJlc3VsdC5hcHBlbmQoJyAgICBjYXNlIE1lc3NhZ2VOYW1lOjpXcmFw
cGVkQXN5bmNNZXNzYWdlRm9yVGVzdGluZzpcbicpCi0gICAgcmVzdWx0LmFwcGVuZCgnICAgIGNh
c2UgTWVzc2FnZU5hbWU6OlN5bmNNZXNzYWdlUmVwbHk6XG4nKQotICAgIHJlc3VsdC5hcHBlbmQo
JyAgICBjYXNlIE1lc3NhZ2VOYW1lOjpJbml0aWFsaXplQ29ubmVjdGlvbjpcbicpCi0gICAgcmVz
dWx0LmFwcGVuZCgnICAgIGNhc2UgTWVzc2FnZU5hbWU6OkxlZ2FjeVNlc3Npb25TdGF0ZTpcbicp
Ci0gICAgcmVzdWx0LmFwcGVuZCgnICAgICAgICByZXR1cm4gUmVjZWl2ZXJOYW1lOjpJUEM7XG4n
KQorICAgIHByZXZfZW51bWVyYXRvciA9IE5vbmUKKyAgICBmb3IgZW51bWVyYXRvciBpbiBtZXNz
YWdlX2VudW1lcmF0b3JzOgorICAgICAgICBpZiBwcmV2X2VudW1lcmF0b3IgYW5kIHByZXZfZW51
bWVyYXRvci5yZWNlaXZlciAhPSBlbnVtZXJhdG9yLnJlY2VpdmVyOgorICAgICAgICAgICAgcmVz
dWx0LmFwcGVuZCgnICAgICAgICByZXR1cm4gUmVjZWl2ZXJOYW1lOjolcztcbicgJSBwcmV2X2Vu
dW1lcmF0b3IucmVjZWl2ZXIubmFtZSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIGNhc2Ug
TWVzc2FnZU5hbWU6OiVzOlxuJyAlIGVudW1lcmF0b3IpCisgICAgICAgIHByZXZfZW51bWVyYXRv
ciA9IGVudW1lcmF0b3IKKyAgICBpZiBwcmV2X2VudW1lcmF0b3I6CisgICAgICAgIHJlc3VsdC5h
cHBlbmQoJyAgICAgICAgcmV0dXJuIFJlY2VpdmVyTmFtZTo6JXM7XG4nICUgcHJldl9lbnVtZXJh
dG9yLnJlY2VpdmVyLm5hbWUpCiAgICAgcmVzdWx0LmFwcGVuZCgnICAgIH1cbicpCiAgICAgcmVz
dWx0LmFwcGVuZCgnICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpO1xuJykKICAgICByZXN1bHQuYXBw
ZW5kKCcgICAgcmV0dXJuIFJlY2VpdmVyTmFtZTo6SW52YWxpZDtcbicpCkBAIC0xMDQ0LDI1ICsx
MDM0LDE0IEBAIGRlZiBnZW5lcmF0ZV9tZXNzYWdlX25hbWVzX2ltcGxlbWVudGF0aW9uKHJlY2Vp
dmVycyk6CiAgICAgcmVzdWx0LmFwcGVuZCgnXG4nKQogICAgIHJlc3VsdC5hcHBlbmQoJ2Jvb2wg
aXNWYWxpZE1lc3NhZ2VOYW1lKE1lc3NhZ2VOYW1lIG1lc3NhZ2VOYW1lKVxuJykKICAgICByZXN1
bHQuYXBwZW5kKCd7XG4nKQotICAgIGZvciByZWNlaXZlciBpbiByZWNlaXZlcnM6Ci0gICAgICAg
IGZvciBtZXNzYWdlIGluIHJlY2VpdmVyLm1lc3NhZ2VzOgorICAgIGZvciBlbnVtZXJhdG9yIGlu
IG1lc3NhZ2VfZW51bWVyYXRvcnM6CisgICAgICAgIGZvciBtZXNzYWdlIGluIGVudW1lcmF0b3Iu
bWVzc2FnZXM6CiAgICAgICAgICAgICBpZiBtZXNzYWdlLmNvbmRpdGlvbjoKICAgICAgICAgICAg
ICAgICByZXN1bHQuYXBwZW5kKCcjaWYgJXNcbicgJSBtZXNzYWdlLmNvbmRpdGlvbikKLSAgICAg
ICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdl
TmFtZTo6JXNfJXMpXG4nICUgKHJlY2VpdmVyLm5hbWUsIG1lc3NhZ2UubmFtZSkpCisgICAgICAg
ICAgICByZXN1bHQuYXBwZW5kKCcgICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5h
bWU6OiVzKVxuJyAlIGVudW1lcmF0b3IpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAg
ICAgIHJldHVybiB0cnVlO1xuJykKLSAgICAgICAgICAgIGlmIG1lc3NhZ2UuaGFzX2F0dHJpYnV0
ZShBU1lOQ19BVFRSSUJVVEUpOgotICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBp
ZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6JXNfJXNSZXBseSlcbicgJSAocmVj
ZWl2ZXIubmFtZSwgbWVzc2FnZS5uYW1lKSkKLSAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5k
KCcgICAgICAgIHJldHVybiB0cnVlO1xuJykKICAgICAgICAgICAgIGlmIG1lc3NhZ2UuY29uZGl0
aW9uOgogICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyNlbmRpZlxuJykKLSAgICByZXN1
bHQuYXBwZW5kKCcgICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OldyYXBw
ZWRBc3luY01lc3NhZ2VGb3JUZXN0aW5nKVxuJykKLSAgICByZXN1bHQuYXBwZW5kKCcgICAgICAg
IHJldHVybiB0cnVlO1xuJykKLSAgICByZXN1bHQuYXBwZW5kKCcgICAgaWYgKG1lc3NhZ2VOYW1l
ID09IElQQzo6TWVzc2FnZU5hbWU6OlN5bmNNZXNzYWdlUmVwbHkpXG4nKQotICAgIHJlc3VsdC5h
cHBlbmQoJyAgICAgICAgcmV0dXJuIHRydWU7XG4nKQotICAgIHJlc3VsdC5hcHBlbmQoJyAgICBp
ZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6SW5pdGlhbGl6ZUNvbm5lY3Rpb24p
XG4nKQotICAgIHJlc3VsdC5hcHBlbmQoJyAgICAgICAgcmV0dXJuIHRydWU7XG4nKQotICAgIHJl
c3VsdC5hcHBlbmQoJyAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6TGVn
YWN5U2Vzc2lvblN0YXRlKVxuJykKLSAgICByZXN1bHQuYXBwZW5kKCcgICAgICAgIHJldHVybiB0
cnVlO1xuJykKICAgICByZXN1bHQuYXBwZW5kKCcgICAgcmV0dXJuIGZhbHNlO1xuJykKICAgICBy
ZXN1bHQuYXBwZW5kKCd9O1xuJykKICAgICByZXN1bHQuYXBwZW5kKCdcbicpCkBAIC0xMDc1LDYg
KzEwNTQsOCBAQCBkZWYgZ2VuZXJhdGVfanNfdmFsdWVfY29udmVyc2lvbl9mdW5jdGlvbihyZXN1
bHQsIHJlY2VpdmVycywgZnVuY3Rpb25fbmFtZSwgYXJndQogICAgIHJlc3VsdC5hcHBlbmQoJ3tc
bicpCiAgICAgcmVzdWx0LmFwcGVuZCgnICAgIHN3aXRjaCAobmFtZSkge1xuJykKICAgICBmb3Ig
cmVjZWl2ZXIgaW4gcmVjZWl2ZXJzOgorICAgICAgICBpZiByZWNlaXZlci5oYXNfYXR0cmlidXRl
KEJVSUxUSU5fQVRUUklCVVRFKToKKyAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgIGlmIHJl
Y2VpdmVyLmNvbmRpdGlvbjoKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyNpZiAlc1xuJyAl
IHJlY2VpdmVyLmNvbmRpdGlvbikKICAgICAgICAgcHJldmlvdXNfbWVzc2FnZV9jb25kaXRpb24g
PSBOb25lCkBAIC0xMTA2LDEwICsxMDg3LDE0IEBAIGRlZiBnZW5lcmF0ZV9qc19hcmd1bWVudF9k
ZXNjcmlwdGlvbnMocmVjZWl2ZXJzLCBmdW5jdGlvbl9uYW1lLCBhcmd1bWVudHNfZnJvbV9tCiAg
ICAgcmVzdWx0LmFwcGVuZCgne1xuJykKICAgICByZXN1bHQuYXBwZW5kKCcgICAgc3dpdGNoIChu
YW1lKSB7XG4nKQogICAgIGZvciByZWNlaXZlciBpbiByZWNlaXZlcnM6CisgICAgICAgIGlmIHJl
Y2VpdmVyLmhhc19hdHRyaWJ1dGUoQlVJTFRJTl9BVFRSSUJVVEUpOgorICAgICAgICAgICAgY29u
dGludWUKICAgICAgICAgaWYgcmVjZWl2ZXIuY29uZGl0aW9uOgogICAgICAgICAgICAgcmVzdWx0
LmFwcGVuZCgnI2lmICVzXG4nICUgcmVjZWl2ZXIuY29uZGl0aW9uKQogICAgICAgICBwcmV2aW91
c19tZXNzYWdlX2NvbmRpdGlvbiA9IE5vbmUKICAgICAgICAgZm9yIG1lc3NhZ2UgaW4gcmVjZWl2
ZXIubWVzc2FnZXM6CisgICAgICAgICAgICBpZiBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoQlVJTFRJ
Tl9BVFRSSUJVVEUpOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgICBhcmd1
bWVudF9saXN0ID0gYXJndW1lbnRzX2Zyb21fbWVzc2FnZShtZXNzYWdlKQogICAgICAgICAgICAg
aWYgYXJndW1lbnRfbGlzdCBpcyBOb25lOgogICAgICAgICAgICAgICAgIGNvbnRpbnVlCkBAIC0x
MTU1LDYgKzExNDAsOCBAQCBkZWYgZ2VuZXJhdGVfbWVzc2FnZV9hcmd1bWVudF9kZXNjcmlwdGlv
bl9pbXBsZW1lbnRhdGlvbihyZWNlaXZlcnMsIHJlY2VpdmVyX2hlYQogICAgICAgICAnIkpTSVBD
QmluZGluZy5oIic6IFtOb25lXQogICAgIH0KICAgICBmb3IgcmVjZWl2ZXIgaW4gcmVjZWl2ZXJz
OgorICAgICAgICBpZiByZWNlaXZlci5oYXNfYXR0cmlidXRlKEJVSUxUSU5fQVRUUklCVVRFKToK
KyAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgIGhlYWRlcl9jb25kaXRpb25zWyciJXMiJyAl
IG1lc3NhZ2VzX2hlYWRlcl9maWxlbmFtZShyZWNlaXZlcildID0gW05vbmVdCiAgICAgICAgIGNv
bGxlY3RfaGVhZGVyX2NvbmRpdGlvbnNfZm9yX3JlY2VpdmVyKHJlY2VpdmVyLCBoZWFkZXJfY29u
ZGl0aW9ucykKIApAQCAtMTIwNCw3ICsxMTkxLDcgQEAgZGVmIGdlbmVyYXRlX21lc3NhZ2VfYXJn
dW1lbnRfZGVzY3JpcHRpb25faW1wbGVtZW50YXRpb24ocmVjZWl2ZXJzLCByZWNlaXZlcl9oZWEK
ICAgICAgICAgICAgICAgICBpZiBtZXNzYWdlLmNvbmRpdGlvbjoKICAgICAgICAgICAgICAgICAg
ICAgcmVzdWx0LmFwcGVuZCgnI2lmICVzXG4nICUgbWVzc2FnZS5jb25kaXRpb24pCiAgICAgICAg
ICAgICBwcmV2aW91c19tZXNzYWdlX2NvbmRpdGlvbiA9IG1lc3NhZ2UuY29uZGl0aW9uCi0gICAg
ICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgY2FzZSBNZXNzYWdlTmFtZTo6JXNfJXM6XG4nICUg
KHJlY2VpdmVyLm5hbWUsIG1lc3NhZ2UubmFtZSkpCisgICAgICAgICAgICByZXN1bHQuYXBwZW5k
KCcgICAgY2FzZSBNZXNzYWdlTmFtZTo6JXM6XG4nICUgTWVzc2FnZUVudW1lcmF0b3IocmVjZWl2
ZXIsIFttZXNzYWdlXSkpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgICAgIHJldHVy
biB0cnVlO1xuJykKICAgICAgICAgaWYgcHJldmlvdXNfbWVzc2FnZV9jb25kaXRpb246CiAgICAg
ICAgICAgICByZXN1bHQuYXBwZW5kKCcjZW5kaWZcbicpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NjcmlwdHMvd2Via2l0L21vZGVsLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtp
dC9tb2RlbC5weQppbmRleCBjNzBjMjI2NzE1ZDU2MGViZGUwNzMzMTYyOWNjYzI2YTNlZWQ5NmU5
Li4xZmUzMTQzZDYxY2FhNzNiYTI2M2ZjYjgxMzIxYTVmODQ4OTg5ODY4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21vZGVsLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQv
U2NyaXB0cy93ZWJraXQvbW9kZWwucHkKQEAgLTI0LDYgKzI0LDkgQEAgaW1wb3J0IGl0ZXJ0b29s
cwogCiBmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBDb3VudGVyCiAKK0JVSUxUSU5fQVRUUklCVVRF
ID0gIkJ1aWx0aW4iCitBU1lOQ19BVFRSSUJVVEUgPSAiQXN5bmMiCisKIGNsYXNzIE1lc3NhZ2VS
ZWNlaXZlcihvYmplY3QpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lLCBzdXBlcmNsYXNz
LCBhdHRyaWJ1dGVzLCBtZXNzYWdlcywgY29uZGl0aW9uKToKICAgICAgICAgc2VsZi5uYW1lID0g
bmFtZQpAQCAtNjQsNyArNjcsMTUgQEAgY2xhc3MgUGFyYW1ldGVyKG9iamVjdCk6CiAgICAgICAg
IHJldHVybiBhdHRyaWJ1dGUgaW4gc2VsZi5hdHRyaWJ1dGVzCiAKIAotZGVmIGNoZWNrX2dsb2Jh
bF9tb2RlbChyZWNlaXZlcnMpOgoraXBjX3JlY2VpdmVyID0gTWVzc2FnZVJlY2VpdmVyKG5hbWU9
IklQQyIsIHN1cGVyY2xhc3M9Tm9uZSwgYXR0cmlidXRlcz1bQlVJTFRJTl9BVFRSSUJVVEVdLCBt
ZXNzYWdlcz1bCisgICAgTWVzc2FnZSgnV3JhcHBlZEFzeW5jTWVzc2FnZUZvclRlc3RpbmcnLCBb
XSwgW10sIGF0dHJpYnV0ZXM9W0JVSUxUSU5fQVRUUklCVVRFXSwgY29uZGl0aW9uPU5vbmUpLAor
ICAgIE1lc3NhZ2UoJ1N5bmNNZXNzYWdlUmVwbHknLCBbXSwgW10sIGF0dHJpYnV0ZXM9W0JVSUxU
SU5fQVRUUklCVVRFXSwgY29uZGl0aW9uPU5vbmUpLAorICAgIE1lc3NhZ2UoJ0luaXRpYWxpemVD
b25uZWN0aW9uJywgW10sIFtdLCBhdHRyaWJ1dGVzPVtCVUlMVElOX0FUVFJJQlVURV0sIGNvbmRp
dGlvbj0iVVNFKENPQ09BKSIpLAorICAgIE1lc3NhZ2UoJ0xlZ2FjeVNlc3Npb25TdGF0ZScsIFtd
LCBbXSwgYXR0cmlidXRlcz1bQlVJTFRJTl9BVFRSSUJVVEVdLCBjb25kaXRpb249Tm9uZSkKK10s
IGNvbmRpdGlvbj1Ob25lKQorCisKK2RlZiBjaGVja19nbG9iYWxfbW9kZWxfaW5wdXRzKHJlY2Vp
dmVycyk6CiAgICAgZXJyb3JzID0gW10KICAgICByZWNlaXZlcl9jb3VudHMgPSBDb3VudGVyKFty
Lm5hbWUgZm9yIHIgaW4gcmVjZWl2ZXJzXSkKICAgICByZWNlaXZlcl9kdXBsaWNhdGVzID0gW24g
Zm9yIG4sIGMgaW4gcmVjZWl2ZXJfY291bnRzLml0ZW1zKCkgaWYgYyA+IDFdCkBAIC03MiwzICs4
MywxMyBAQCBkZWYgY2hlY2tfZ2xvYmFsX21vZGVsKHJlY2VpdmVycyk6CiAgICAgICAgIGVycm9y
cy5hcHBlbmQoJ0R1cGxpY2F0ZSBtZXNzYWdlIHJlY2VpdmVyIG5hbWVzOiAlcycgJSAoJywgJy5q
b2luKHJlY2VpdmVyX2R1cGxpY2F0ZXMpKSkKIAogICAgIHJldHVybiBlcnJvcnMKKworCitkZWYg
Z2VuZXJhdGVfZ2xvYmFsX21vZGVsKHJlY2VpdmVycyk6CisgICAgYXN5bmNfcmVwbHlfbWVzc2Fn
ZXMgPSBbXQorICAgIGZvciByZWNlaXZlciBpbiByZWNlaXZlcnM6CisgICAgICAgIGZvciBtZXNz
YWdlIGluIHJlY2VpdmVyLm1lc3NhZ2VzOgorICAgICAgICAgICAgaWYgbWVzc2FnZS5oYXNfYXR0
cmlidXRlKEFTWU5DX0FUVFJJQlVURSk6CisgICAgICAgICAgICAgICAgYXN5bmNfcmVwbHlfbWVz
c2FnZXMuYXBwZW5kKE1lc3NhZ2UobmFtZT0nJXNfJXNSZXBseScgJSAocmVjZWl2ZXIubmFtZSwg
bWVzc2FnZS5uYW1lKSwgcGFyYW1ldGVycz1tZXNzYWdlLnJlcGx5X3BhcmFtZXRlcnMsIHJlcGx5
X3BhcmFtZXRlcnM9W10sIGF0dHJpYnV0ZXM9Tm9uZSwgY29uZGl0aW9uPW1lc3NhZ2UuY29uZGl0
aW9uKSkKKyAgICBhc3luY19yZXBseV9yZWNlaXZlciA9IE1lc3NhZ2VSZWNlaXZlcihuYW1lPSdB
c3luY1JlcGx5Jywgc3VwZXJjbGFzcz0nTm9uZScsIGF0dHJpYnV0ZXM9W0JVSUxUSU5fQVRUUklC
VVRFXSwgbWVzc2FnZXM9YXN5bmNfcmVwbHlfbWVzc2FnZXMsIGNvbmRpdGlvbj1Ob25lKQorICAg
IHJldHVybiBbaXBjX3JlY2VpdmVyLCBhc3luY19yZXBseV9yZWNlaXZlcl0gKyByZWNlaXZlcnMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbW9kZWxfdW5pdHRlc3Qu
cHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21vZGVsX3VuaXR0ZXN0LnB5CmluZGV4
IDIxOGFiNmJkMGMyMDJhMjIxOTg1NjY1ODNlOWZhZDRlZTUzMDJhYTguLjI1NjI1N2E5Nzg3YWNh
OTg0NzBkMDg0YTUxYzNjM2JiMzVkNjc3ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvbW9kZWxfdW5pdHRlc3QucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRz
L3dlYmtpdC9tb2RlbF91bml0dGVzdC5weQpAQCAtNTksNyArNTksNyBAQCBtZXNzYWdlcyAtPiBX
ZWJQYWdlIHsKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMob3RoZXJfcmVjZWl2ZXIubmFtZSwg
J1dlYlBhZ2UnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhvdGhlcl9yZWNlaXZlci5tZXNz
YWdlc1swXS5uYW1lLCAnTG9hZFVSTCcpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKG90aGVy
X3JlY2VpdmVyLm1lc3NhZ2VzWzFdLm5hbWUsICdMb2FkVVJMMicpCi0gICAgICAgIGVycm9ycyA9
IG1vZGVsLmNoZWNrX2dsb2JhbF9tb2RlbChbcmVjZWl2ZXIsIG90aGVyX3JlY2VpdmVyXSkKKyAg
ICAgICAgZXJyb3JzID0gbW9kZWwuY2hlY2tfZ2xvYmFsX21vZGVsX2lucHV0cyhbcmVjZWl2ZXIs
IG90aGVyX3JlY2VpdmVyXSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMobGVuKGVycm9ycyks
IDEpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgiRHVwbGljYXRlIiBpbiBlcnJvcnNbMF0pCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvTWVzc2FnZU5h
bWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvTWVzc2FnZU5hbWVz
LmNwcAppbmRleCBiMWJmOTYzNDk4OGFmMjc2MzZjZDU2OTJjN2EzNTE3ZjYyOTg2Nzc5Li5kYmNj
ZmI1NzdiOGM1NTE2Y2U1NWIxZTEzOTg0OWU0NGM2NWZjZTk5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL01lc3NhZ2VOYW1lcy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9NZXNzYWdlTmFtZXMuY3BwCkBAIC03OCwyMCAr
NzgsMTIgQEAgY29uc3QgY2hhciogZGVzY3JpcHRpb24oTWVzc2FnZU5hbWUgbmFtZSkKICAgICAg
ICAgcmV0dXJuICJUZXN0V2l0aFN1cGVyY2xhc3NfTG9hZFVSTCI7CiAgICAgY2FzZSBNZXNzYWdl
TmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2U6CiAgICAgICAgIHJldHVy
biAiVGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2UiOwotICAgIGNhc2UgTWVzc2Fn
ZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlUmVwbHk6Ci0gICAgICAg
IHJldHVybiAiVGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VSZXBseSI7CiAgICAg
Y2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRo
Q29ubmVjdGlvbjoKICAgICAgICAgcmV0dXJuICJUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5j
TWVzc2FnZVdpdGhDb25uZWN0aW9uIjsKLSAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1
cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhDb25uZWN0aW9uUmVwbHk6Ci0gICAgICAgIHJl
dHVybiAiVGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoQ29ubmVjdGlvblJl
cGx5IjsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5j
TWVzc2FnZVdpdGhNdWx0aXBsZUFyZ3VtZW50czoKICAgICAgICAgcmV0dXJuICJUZXN0V2l0aFN1
cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhNdWx0aXBsZUFyZ3VtZW50cyI7Ci0gICAgY2Fz
ZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoTXVs
dGlwbGVBcmd1bWVudHNSZXBseToKLSAgICAgICAgcmV0dXJuICJUZXN0V2l0aFN1cGVyY2xhc3Nf
VGVzdEFzeW5jTWVzc2FnZVdpdGhNdWx0aXBsZUFyZ3VtZW50c1JlcGx5IjsKICAgICBjYXNlIE1l
c3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhOb0FyZ3Vt
ZW50czoKICAgICAgICAgcmV0dXJuICJUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2Fn
ZVdpdGhOb0FyZ3VtZW50cyI7Ci0gICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNs
YXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoTm9Bcmd1bWVudHNSZXBseToKLSAgICAgICAgcmV0dXJu
ICJUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhOb0FyZ3VtZW50c1JlcGx5
IjsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdFN5bmNNZXNz
YWdlOgogICAgICAgICByZXR1cm4gIlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0U3luY01lc3NhZ2Ui
OwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0U3luY2hyb25v
dXNNZXNzYWdlOgpAQCAtMTQwLDE0ICsxMzIsMjIgQEAgY29uc3QgY2hhciogZGVzY3JpcHRpb24o
TWVzc2FnZU5hbWUgbmFtZSkKICAgICAgICAgcmV0dXJuICJUZXN0V2l0aG91dEF0dHJpYnV0ZXNf
VGVzdFBhcmFtZXRlckF0dHJpYnV0ZXMiOwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRo
b3V0QXR0cmlidXRlc19Ub3VjaEV2ZW50OgogICAgICAgICByZXR1cm4gIlRlc3RXaXRob3V0QXR0
cmlidXRlc19Ub3VjaEV2ZW50IjsKLSAgICBjYXNlIE1lc3NhZ2VOYW1lOjpXcmFwcGVkQXN5bmNN
ZXNzYWdlRm9yVGVzdGluZzoKLSAgICAgICAgcmV0dXJuICJJUEM6OldyYXBwZWRBc3luY01lc3Nh
Z2VGb3JUZXN0aW5nIjsKLSAgICBjYXNlIE1lc3NhZ2VOYW1lOjpTeW5jTWVzc2FnZVJlcGx5Ogot
ICAgICAgICByZXR1cm4gIklQQzo6U3luY01lc3NhZ2VSZXBseSI7CiAgICAgY2FzZSBNZXNzYWdl
TmFtZTo6SW5pdGlhbGl6ZUNvbm5lY3Rpb246Ci0gICAgICAgIHJldHVybiAiSVBDOjpJbml0aWFs
aXplQ29ubmVjdGlvbiI7CisgICAgICAgIHJldHVybiAiSW5pdGlhbGl6ZUNvbm5lY3Rpb24iOwog
ICAgIGNhc2UgTWVzc2FnZU5hbWU6OkxlZ2FjeVNlc3Npb25TdGF0ZToKLSAgICAgICAgcmV0dXJu
ICJJUEM6OkxlZ2FjeVNlc3Npb25TdGF0ZSI7CisgICAgICAgIHJldHVybiAiTGVnYWN5U2Vzc2lv
blN0YXRlIjsKKyAgICBjYXNlIE1lc3NhZ2VOYW1lOjpTeW5jTWVzc2FnZVJlcGx5OgorICAgICAg
ICByZXR1cm4gIlN5bmNNZXNzYWdlUmVwbHkiOworICAgIGNhc2UgTWVzc2FnZU5hbWU6OldyYXBw
ZWRBc3luY01lc3NhZ2VGb3JUZXN0aW5nOgorICAgICAgICByZXR1cm4gIldyYXBwZWRBc3luY01l
c3NhZ2VGb3JUZXN0aW5nIjsKKyAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xh
c3NfVGVzdEFzeW5jTWVzc2FnZVJlcGx5OgorICAgICAgICByZXR1cm4gIlRlc3RXaXRoU3VwZXJj
bGFzc19UZXN0QXN5bmNNZXNzYWdlUmVwbHkiOworICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RX
aXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aENvbm5lY3Rpb25SZXBseToKKyAgICAg
ICAgcmV0dXJuICJUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhDb25uZWN0
aW9uUmVwbHkiOworICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0
QXN5bmNNZXNzYWdlV2l0aE11bHRpcGxlQXJndW1lbnRzUmVwbHk6CisgICAgICAgIHJldHVybiAi
VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoTXVsdGlwbGVBcmd1bWVudHNS
ZXBseSI7CisgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3lu
Y01lc3NhZ2VXaXRoTm9Bcmd1bWVudHNSZXBseToKKyAgICAgICAgcmV0dXJuICJUZXN0V2l0aFN1
cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhOb0FyZ3VtZW50c1JlcGx5IjsKICAgICB9CiAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuICI8aW52YWxpZCBtZXNzYWdlIG5h
bWU+IjsKQEAgLTE1NiwxNCArMTU2LDYgQEAgY29uc3QgY2hhciogZGVzY3JpcHRpb24oTWVzc2Fn
ZU5hbWUgbmFtZSkKIFJlY2VpdmVyTmFtZSByZWNlaXZlck5hbWUoTWVzc2FnZU5hbWUgbWVzc2Fn
ZU5hbWUpCiB7CiAgICAgc3dpdGNoIChtZXNzYWdlTmFtZSkgewotICAgIGNhc2UgTWVzc2FnZU5h
bWU6OlRlc3RXaXRoU3VwZXJjbGFzc19Mb2FkVVJMOgotICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRl
c3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlOgotICAgIGNhc2UgTWVzc2FnZU5hbWU6
OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aENvbm5lY3Rpb246Ci0gICAg
Y2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRo
TXVsdGlwbGVBcmd1bWVudHM6Ci0gICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNs
YXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoTm9Bcmd1bWVudHM6Ci0gICAgY2FzZSBNZXNzYWdlTmFt
ZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RTeW5jTWVzc2FnZToKLSAgICBjYXNlIE1lc3NhZ2VO
YW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdFN5bmNocm9ub3VzTWVzc2FnZToKLSAgICAgICAg
cmV0dXJuIFJlY2VpdmVyTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzOwogICAgIGNhc2UgTWVzc2Fn
ZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfQWRkRXZlbnQ6CiAgICAgY2FzZSBNZXNzYWdl
TmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9DbG9zZToKICAgICBjYXNlIE1lc3NhZ2VOYW1l
OjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0NyZWF0ZVBsdWdpbjoKQEAgLTE4Nyw2ICsxNzksMTQg
QEAgUmVjZWl2ZXJOYW1lIHJlY2VpdmVyTmFtZShNZXNzYWdlTmFtZSBtZXNzYWdlTmFtZSkKICAg
ICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1Rlc3RQYXJhbWV0ZXJB
dHRyaWJ1dGVzOgogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJf
VG91Y2hFdmVudDoKICAgICAgICAgcmV0dXJuIFJlY2VpdmVyTmFtZTo6VGVzdFdpdGhMZWdhY3lS
ZWNlaXZlcjsKKyAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfTG9hZFVS
TDoKKyAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVz
c2FnZToKKyAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5j
TWVzc2FnZVdpdGhDb25uZWN0aW9uOgorICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoU3Vw
ZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aE11bHRpcGxlQXJndW1lbnRzOgorICAgIGNhc2Ug
TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aE5vQXJn
dW1lbnRzOgorICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0U3lu
Y01lc3NhZ2U6CisgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RT
eW5jaHJvbm91c01lc3NhZ2U6CisgICAgICAgIHJldHVybiBSZWNlaXZlck5hbWU6OlRlc3RXaXRo
U3VwZXJjbGFzczsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNf
QWRkRXZlbnQ6CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0Ns
b3NlOgogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19DcmVhdGVQ
bHVnaW46CkBAIC0yMTAsMTYgKzIxMCwxNiBAQCBSZWNlaXZlck5hbWUgcmVjZWl2ZXJOYW1lKE1l
c3NhZ2VOYW1lIG1lc3NhZ2VOYW1lKQogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0
QXR0cmlidXRlc19UZXN0UGFyYW1ldGVyQXR0cmlidXRlczoKICAgICBjYXNlIE1lc3NhZ2VOYW1l
OjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfVG91Y2hFdmVudDoKICAgICAgICAgcmV0dXJuIFJlY2Vp
dmVyTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzOworICAgIGNhc2UgTWVzc2FnZU5hbWU6Oklu
aXRpYWxpemVDb25uZWN0aW9uOgorICAgIGNhc2UgTWVzc2FnZU5hbWU6OkxlZ2FjeVNlc3Npb25T
dGF0ZToKKyAgICBjYXNlIE1lc3NhZ2VOYW1lOjpTeW5jTWVzc2FnZVJlcGx5OgorICAgIGNhc2Ug
TWVzc2FnZU5hbWU6OldyYXBwZWRBc3luY01lc3NhZ2VGb3JUZXN0aW5nOgorICAgICAgICByZXR1
cm4gUmVjZWl2ZXJOYW1lOjpJUEM7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBl
cmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VSZXBseToKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0
V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhDb25uZWN0aW9uUmVwbHk6CiAgICAg
Y2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRo
TXVsdGlwbGVBcmd1bWVudHNSZXBseToKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1
cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhOb0FyZ3VtZW50c1JlcGx5OgogICAgICAgICBy
ZXR1cm4gUmVjZWl2ZXJOYW1lOjpBc3luY1JlcGx5OwotICAgIGNhc2UgTWVzc2FnZU5hbWU6Oldy
YXBwZWRBc3luY01lc3NhZ2VGb3JUZXN0aW5nOgotICAgIGNhc2UgTWVzc2FnZU5hbWU6OlN5bmNN
ZXNzYWdlUmVwbHk6Ci0gICAgY2FzZSBNZXNzYWdlTmFtZTo6SW5pdGlhbGl6ZUNvbm5lY3Rpb246
Ci0gICAgY2FzZSBNZXNzYWdlTmFtZTo6TGVnYWN5U2Vzc2lvblN0YXRlOgotICAgICAgICByZXR1
cm4gUmVjZWl2ZXJOYW1lOjpJUEM7CiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
ICAgIHJldHVybiBSZWNlaXZlck5hbWU6OkludmFsaWQ7CkBAIC0yMjcsMTY0ICsyMjcsMTc0IEBA
IFJlY2VpdmVyTmFtZSByZWNlaXZlck5hbWUoTWVzc2FnZU5hbWUgbWVzc2FnZU5hbWUpCiAKIGJv
b2wgaXNWYWxpZE1lc3NhZ2VOYW1lKE1lc3NhZ2VOYW1lIG1lc3NhZ2VOYW1lKQogewotICAgIGlm
IChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfTG9h
ZFVSTCkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0jaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKLSAg
ICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNz
X1Rlc3RBc3luY01lc3NhZ2UpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIGlmIChtZXNzYWdl
TmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVz
c2FnZVJlcGx5KQorI2lmIChFTkFCTEUoVE9VQ0hfRVZFTlRTKSAmJiAoTkVTVEVEX01FU1NBR0Vf
Q09ORElUSU9OICYmIFNPTUVfT1RIRVJfTUVTU0FHRV9DT05ESVRJT04pKQorICAgIGlmIChtZXNz
YWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0FkZEV2
ZW50KQogICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgotI2lmIEVOQUJMRShURVNUX0ZFQVRV
UkUpCi0gICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3Vw
ZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aE5vQXJndW1lbnRzKQorICAgIGlmIChtZXNzYWdl
TmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0Nsb3NlKQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdl
TmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoTm9Bcmd1bWVudHNS
ZXBseSkKKyAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhM
ZWdhY3lSZWNlaXZlcl9DcmVhdGVQbHVnaW4pCiAgICAgICAgIHJldHVybiB0cnVlOwotI2VuZGlm
Ci0jaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKLSAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpN
ZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoTXVsdGlw
bGVBcmd1bWVudHMpCisjaWYgRU5BQkxFKERFUFJFQ0FURURfRkVBVFVSRSkKKyAgICBpZiAobWVz
c2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9EZXBy
ZWNhdGVkT3BlcmF0aW9uKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBpZiAobWVzc2FnZU5h
bWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3Nh
Z2VXaXRoTXVsdGlwbGVBcmd1bWVudHNSZXBseSkKKyNlbmRpZgorI2lmIFBMQVRGT1JNKE1BQykK
KyAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lS
ZWNlaXZlcl9EaWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbikKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAjZW5kaWYKLSNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQotICAgIGlmIChtZXNzYWdlTmFt
ZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2Fn
ZVdpdGhDb25uZWN0aW9uKQorICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1l
OjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0RpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbikKICAgICAg
ICAgcmV0dXJuIHRydWU7Ci0gICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6
OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aENvbm5lY3Rpb25SZXBseSkK
KyNpZiBFTkFCTEUoRVhQRVJJTUVOVEFMX0ZFQVRVUkUpCisgICAgaWYgKG1lc3NhZ2VOYW1lID09
IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfRXhwZXJpbWVudGFsT3Bl
cmF0aW9uKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgotICAgIGlmIChtZXNzYWdlTmFt
ZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdFN5bmNNZXNzYWdl
KQorICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2Fj
eVJlY2VpdmVyX0dldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKQogICAgICAgICByZXR1cm4gdHJ1
ZTsKLSAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBl
cmNsYXNzX1Rlc3RTeW5jaHJvbm91c01lc3NhZ2UpCisgICAgaWYgKG1lc3NhZ2VOYW1lID09IElQ
Qzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfR2V0UGx1Z2lucykKICAgICAg
ICAgcmV0dXJuIHRydWU7Ci0gICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6
OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfTG9hZFVSTCkKKyNpZiBQTEFURk9STShNQUMpCisgICAg
aWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2
ZXJfSW50ZXJwcmV0S2V5RXZlbnQpCiAgICAgICAgIHJldHVybiB0cnVlOworI2VuZGlmCiAjaWYg
RU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdl
TmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9Mb2FkU29tZXRoaW5nKQogICAgICAgICByZXR1
cm4gdHJ1ZTsKICNlbmRpZgotI2lmIChFTkFCTEUoVE9VQ0hfRVZFTlRTKSAmJiAoTkVTVEVEX01F
U1NBR0VfQ09ORElUSU9OIHx8IFNPTUVfT1RIRVJfTUVTU0FHRV9DT05ESVRJT04pKQotICAgIGlm
IChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVy
X1RvdWNoRXZlbnQpCi0gICAgICAgIHJldHVybiB0cnVlOwotI2VuZGlmCi0jaWYgKEVOQUJMRShU
T1VDSF9FVkVOVFMpICYmIChORVNURURfTUVTU0FHRV9DT05ESVRJT04gJiYgU09NRV9PVEhFUl9N
RVNTQUdFX0NPTkRJVElPTikpCi0gICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5h
bWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfQWRkRXZlbnQpCi0gICAgICAgIHJldHVybiB0cnVl
OwotI2VuZGlmCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICBpZiAobWVzc2FnZU5hbWUg
PT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9Mb2FkU29tZXRoaW5n
RWxzZSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKLSAgICBpZiAobWVzc2FnZU5hbWUg
PT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9EaWRSZWNlaXZlUG9s
aWN5RGVjaXNpb24pCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIGlmIChtZXNzYWdlTmFtZSA9
PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0Nsb3NlKQorICAgIGlm
IChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVy
X0xvYWRVUkwpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJ
UEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1ByZWZlcmVuY2VzRGlkQ2hh
bmdlKQogICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpN
ZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9SdW5KYXZhU2NyaXB0QWxlcnQpCisg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VO
YW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1NlbmREb3VibGVBbmRGbG9hdCkKICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRl
c3RXaXRoTGVnYWN5UmVjZWl2ZXJfU2VuZEludHMpCiAgICAgICAgIHJldHVybiB0cnVlOwotICAg
IGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2Vp
dmVyX0NyZWF0ZVBsdWdpbikKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgaWYgKG1lc3NhZ2VO
YW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfUnVuSmF2YVNj
cmlwdEFsZXJ0KQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBpZiAobWVzc2FnZU5hbWUgPT0g
SVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9HZXRQbHVnaW5zKQorICAg
IGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2Vp
dmVyX1NldFZpZGVvTGF5ZXJJRCkKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgaWYgKG1lc3Nh
Z2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfR2V0UGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb24pCisgICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2Fn
ZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfVGVtcGxhdGVUZXN0KQogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdp
dGhMZWdhY3lSZWNlaXZlcl9UZXN0TXVsdGlwbGVBdHRyaWJ1dGVzKQogICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhM
ZWdhY3lSZWNlaXZlcl9UZXN0UGFyYW1ldGVyQXR0cmlidXRlcykKICAgICAgICAgcmV0dXJuIHRy
dWU7Ci0gICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVn
YWN5UmVjZWl2ZXJfVGVtcGxhdGVUZXN0KQorI2lmIChFTkFCTEUoVE9VQ0hfRVZFTlRTKSAmJiAo
TkVTVEVEX01FU1NBR0VfQ09ORElUSU9OIHx8IFNPTUVfT1RIRVJfTUVTU0FHRV9DT05ESVRJT04p
KQorICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2Fj
eVJlY2VpdmVyX1RvdWNoRXZlbnQpCiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIGlmIChtZXNz
YWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1NldFZp
ZGVvTGF5ZXJJRCkKKyNlbmRpZgorICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VO
YW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfTG9hZFVSTCkKICAgICAgICAgcmV0dXJuIHRydWU7Ci0j
aWYgUExBVEZPUk0oTUFDKQotICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1l
OjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0RpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uKQor
I2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCisgICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVz
c2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlKQogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICNlbmRpZgotI2lmIFBMQVRGT1JNKE1BQykKLSAgICBpZiAobWVzc2FnZU5h
bWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9JbnRlcnByZXRL
ZXlFdmVudCkKKyNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQorICAgIGlmIChtZXNzYWdlTmFtZSA9
PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdp
dGhDb25uZWN0aW9uKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgorI2lmIEVOQUJMRShU
RVNUX0ZFQVRVUkUpCisgICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRl
c3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aE11bHRpcGxlQXJndW1lbnRzKQor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgorI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCisg
ICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFz
c19UZXN0QXN5bmNNZXNzYWdlV2l0aE5vQXJndW1lbnRzKQorICAgICAgICByZXR1cm4gdHJ1ZTsK
KyNlbmRpZgorICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0
aFN1cGVyY2xhc3NfVGVzdFN5bmNNZXNzYWdlKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBp
ZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rl
c3RTeW5jaHJvbm91c01lc3NhZ2UpCisgICAgICAgIHJldHVybiB0cnVlOworI2lmIChFTkFCTEUo
VE9VQ0hfRVZFTlRTKSAmJiAoTkVTVEVEX01FU1NBR0VfQ09ORElUSU9OICYmIFNPTUVfT1RIRVJf
TUVTU0FHRV9DT05ESVRJT04pKQorICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VO
YW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfQWRkRXZlbnQpCisgICAgICAgIHJldHVybiB0cnVl
OworI2VuZGlmCisgICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RX
aXRob3V0QXR0cmlidXRlc19DbG9zZSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKG1l
c3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19DcmVh
dGVQbHVnaW4pCisgICAgICAgIHJldHVybiB0cnVlOwogI2lmIEVOQUJMRShERVBSRUNBVEVEX0ZF
QVRVUkUpCi0gICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRo
TGVnYWN5UmVjZWl2ZXJfRGVwcmVjYXRlZE9wZXJhdGlvbikKKyAgICBpZiAobWVzc2FnZU5hbWUg
PT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0RlcHJlY2F0ZWRPcGVy
YXRpb24pCiAgICAgICAgIHJldHVybiB0cnVlOwogI2VuZGlmCi0jaWYgRU5BQkxFKEVYUEVSSU1F
TlRBTF9GRUFUVVJFKQotICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpU
ZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0V4cGVyaW1lbnRhbE9wZXJhdGlvbikKKyNpZiBQTEFURk9S
TShNQUMpCisgICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRo
b3V0QXR0cmlidXRlc19EaWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbikKICAgICAgICAgcmV0
dXJuIHRydWU7CiAjZW5kaWYKLSAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFt
ZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0xvYWRVUkwpCisgICAgaWYgKG1lc3NhZ2VOYW1lID09
IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19EaWRSZWNlaXZlUG9saWN5
RGVjaXNpb24pCiAgICAgICAgIHJldHVybiB0cnVlOwotI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMp
Ci0gICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0
cmlidXRlc19Mb2FkU29tZXRoaW5nKQorI2lmIEVOQUJMRShFWFBFUklNRU5UQUxfRkVBVFVSRSkK
KyAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRy
aWJ1dGVzX0V4cGVyaW1lbnRhbE9wZXJhdGlvbikKICAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5k
aWYKLSNpZiAoRU5BQkxFKFRPVUNIX0VWRU5UUykgJiYgKE5FU1RFRF9NRVNTQUdFX0NPTkRJVElP
TiB8fCBTT01FX09USEVSX01FU1NBR0VfQ09ORElUSU9OKSkKLSAgICBpZiAobWVzc2FnZU5hbWUg
PT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1RvdWNoRXZlbnQpCisg
ICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmli
dXRlc19HZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmli
dXRlc19HZXRQbHVnaW5zKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyNpZiBQTEFURk9STShNQUMp
CisgICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0
cmlidXRlc19JbnRlcnByZXRLZXlFdmVudCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYK
LSNpZiAoRU5BQkxFKFRPVUNIX0VWRU5UUykgJiYgKE5FU1RFRF9NRVNTQUdFX0NPTkRJVElPTiAm
JiBTT01FX09USEVSX01FU1NBR0VfQ09ORElUSU9OKSkKLSAgICBpZiAobWVzc2FnZU5hbWUgPT0g
SVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0FkZEV2ZW50KQorI2lmIEVO
QUJMRShUT1VDSF9FVkVOVFMpCisgICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5h
bWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19Mb2FkU29tZXRoaW5nKQogICAgICAgICByZXR1cm4g
dHJ1ZTsKICNlbmRpZgogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgaWYgKG1lc3NhZ2VO
YW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19Mb2FkU29tZXRo
aW5nRWxzZSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKLSAgICBpZiAobWVzc2FnZU5h
bWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0RpZFJlY2VpdmVQ
b2xpY3lEZWNpc2lvbikKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgaWYgKG1lc3NhZ2VOYW1l
ID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19DbG9zZSkKKyAgICBp
ZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVz
X0xvYWRVUkwpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJ
UEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfUHJlZmVyZW5jZXNEaWRDaGFu
Z2UpCiAgICAgICAgIHJldHVybiB0cnVlOworICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1l
c3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfUnVuSmF2YVNjcmlwdEFsZXJ0KQorICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFt
ZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1NlbmREb3VibGVBbmRGbG9hdCkKICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RX
aXRob3V0QXR0cmlidXRlc19TZW5kSW50cykKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgaWYg
KG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19D
cmVhdGVQbHVnaW4pCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIGlmIChtZXNzYWdlTmFtZSA9
PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfUnVuSmF2YVNjcmlwdEFs
ZXJ0KQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpN
ZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0dldFBsdWdpbnMpCisgICAgaWYgKG1l
c3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19TZXRW
aWRlb0xheWVySUQpCiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIGlmIChtZXNzYWdlTmFtZSA9
PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfR2V0UGx1Z2luUHJvY2Vz
c0Nvbm5lY3Rpb24pCisgICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRl
c3RXaXRob3V0QXR0cmlidXRlc19UZW1wbGF0ZVRlc3QpCiAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJp
YnV0ZXNfVGVzdE11bHRpcGxlQXR0cmlidXRlcykKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
aWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRl
c19UZXN0UGFyYW1ldGVyQXR0cmlidXRlcykKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgaWYg
KG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19U
ZW1wbGF0ZVRlc3QpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIGlmIChtZXNzYWdlTmFtZSA9
PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfU2V0VmlkZW9MYXllcklE
KQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSNpZiBQTEFURk9STShNQUMpCi0gICAgaWYgKG1lc3Nh
Z2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19EaWRDcmVh
dGVXZWJQcm9jZXNzQ29ubmVjdGlvbikKKyNpZiAoRU5BQkxFKFRPVUNIX0VWRU5UUykgJiYgKE5F
U1RFRF9NRVNTQUdFX0NPTkRJVElPTiB8fCBTT01FX09USEVSX01FU1NBR0VfQ09ORElUSU9OKSkK
KyAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRy
aWJ1dGVzX1RvdWNoRXZlbnQpCiAgICAgICAgIHJldHVybiB0cnVlOwogI2VuZGlmCi0jaWYgUExB
VEZPUk0oTUFDKQotICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0
V2l0aG91dEF0dHJpYnV0ZXNfSW50ZXJwcmV0S2V5RXZlbnQpCisjaWYgVVNFKENPQ09BKQorICAg
IGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpJbml0aWFsaXplQ29ubmVjdGlv
bikKICAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKLSNpZiBFTkFCTEUoREVQUkVDQVRFRF9G
RUFUVVJFKQotICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0
aG91dEF0dHJpYnV0ZXNfRGVwcmVjYXRlZE9wZXJhdGlvbikKKyAgICBpZiAobWVzc2FnZU5hbWUg
PT0gSVBDOjpNZXNzYWdlTmFtZTo6TGVnYWN5U2Vzc2lvblN0YXRlKQogICAgICAgICByZXR1cm4g
dHJ1ZTsKLSNlbmRpZgotI2lmIEVOQUJMRShFWFBFUklNRU5UQUxfRkVBVFVSRSkKLSAgICBpZiAo
bWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0V4
cGVyaW1lbnRhbE9wZXJhdGlvbikKKyAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdl
TmFtZTo6U3luY01lc3NhZ2VSZXBseSkKICAgICAgICAgcmV0dXJuIHRydWU7Ci0jZW5kaWYKICAg
ICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6V3JhcHBlZEFzeW5jTWVzc2Fn
ZUZvclRlc3RpbmcpCiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIGlmIChtZXNzYWdlTmFtZSA9
PSBJUEM6Ok1lc3NhZ2VOYW1lOjpTeW5jTWVzc2FnZVJlcGx5KQorI2lmIEVOQUJMRShURVNUX0ZF
QVRVUkUpCisgICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRo
U3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlUmVwbHkpCiAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpJbml0aWFsaXplQ29ubmVj
dGlvbikKKyNlbmRpZgorI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCisgICAgaWYgKG1lc3NhZ2VO
YW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNz
YWdlV2l0aENvbm5lY3Rpb25SZXBseSkKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgaWYgKG1l
c3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OkxlZ2FjeVNlc3Npb25TdGF0ZSkKKyNlbmRp
ZgorI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCisgICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6
TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aE11bHRp
cGxlQXJndW1lbnRzUmVwbHkpCisgICAgICAgIHJldHVybiB0cnVlOworI2VuZGlmCisjaWYgRU5B
QkxFKFRFU1RfRkVBVFVSRSkKKyAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFt
ZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoTm9Bcmd1bWVudHNSZXBs
eSkKICAgICAgICAgcmV0dXJuIHRydWU7CisjZW5kaWYKICAgICByZXR1cm4gZmFsc2U7CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL01lc3NhZ2VO
YW1lcy5oIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9NZXNzYWdlTmFtZXMu
aAppbmRleCBmM2I5OWQ2N2VjZTY5OGE4YTg0ZjU5NTRkOWUyNjI0MDFmMjQ2YTg3Li5mNmQxZDE3
OGQ4NGI0ZTAxMTAwYTY2YWUzOTZmMDVlMmU5ZWQzMWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL01lc3NhZ2VOYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvTWVzc2FnZU5hbWVzLmgKQEAgLTI5LDggKzI5LDggQEAK
IG5hbWVzcGFjZSBJUEMgewogCiBlbnVtIGNsYXNzIFJlY2VpdmVyTmFtZSA6IHVpbnQ4X3Qgewot
ICAgIFRlc3RXaXRoU3VwZXJjbGFzcyA9IDEKLSAgICAsIFRlc3RXaXRoTGVnYWN5UmVjZWl2ZXIg
PSAyCisgICAgVGVzdFdpdGhMZWdhY3lSZWNlaXZlciA9IDEKKyAgICAsIFRlc3RXaXRoU3VwZXJj
bGFzcyA9IDIKICAgICAsIFRlc3RXaXRob3V0QXR0cmlidXRlcyA9IDMKICAgICAsIElQQyA9IDQK
ICAgICAsIEFzeW5jUmVwbHkgPSA1CkBAIC02MiwxMyArNjIsOSBAQCBlbnVtIGNsYXNzIE1lc3Nh
Z2VOYW1lIDogdWludDE2X3QgewogICAgICwgVGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9Ub3VjaEV2
ZW50CiAgICAgLCBUZXN0V2l0aFN1cGVyY2xhc3NfTG9hZFVSTAogICAgICwgVGVzdFdpdGhTdXBl
cmNsYXNzX1Rlc3RBc3luY01lc3NhZ2UKLSAgICAsIFRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5
bmNNZXNzYWdlUmVwbHkKICAgICAsIFRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdl
V2l0aENvbm5lY3Rpb24KLSAgICAsIFRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdl
V2l0aENvbm5lY3Rpb25SZXBseQogICAgICwgVGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01l
c3NhZ2VXaXRoTXVsdGlwbGVBcmd1bWVudHMKLSAgICAsIFRlc3RXaXRoU3VwZXJjbGFzc19UZXN0
QXN5bmNNZXNzYWdlV2l0aE11bHRpcGxlQXJndW1lbnRzUmVwbHkKICAgICAsIFRlc3RXaXRoU3Vw
ZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aE5vQXJndW1lbnRzCi0gICAgLCBUZXN0V2l0aFN1
cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhOb0FyZ3VtZW50c1JlcGx5CiAgICAgLCBUZXN0
V2l0aFN1cGVyY2xhc3NfVGVzdFN5bmNNZXNzYWdlCiAgICAgLCBUZXN0V2l0aFN1cGVyY2xhc3Nf
VGVzdFN5bmNocm9ub3VzTWVzc2FnZQogICAgICwgVGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0FkZEV2
ZW50CkBAIC05MywxMSArODksMTUgQEAgZW51bSBjbGFzcyBNZXNzYWdlTmFtZSA6IHVpbnQxNl90
IHsKICAgICAsIFRlc3RXaXRob3V0QXR0cmlidXRlc19UZXN0TXVsdGlwbGVBdHRyaWJ1dGVzCiAg
ICAgLCBUZXN0V2l0aG91dEF0dHJpYnV0ZXNfVGVzdFBhcmFtZXRlckF0dHJpYnV0ZXMKICAgICAs
IFRlc3RXaXRob3V0QXR0cmlidXRlc19Ub3VjaEV2ZW50Ci0gICAgLCBXcmFwcGVkQXN5bmNNZXNz
YWdlRm9yVGVzdGluZwotICAgICwgU3luY01lc3NhZ2VSZXBseQogICAgICwgSW5pdGlhbGl6ZUNv
bm5lY3Rpb24KICAgICAsIExlZ2FjeVNlc3Npb25TdGF0ZQotICAgICwgTGFzdCA9IExlZ2FjeVNl
c3Npb25TdGF0ZQorICAgICwgU3luY01lc3NhZ2VSZXBseQorICAgICwgV3JhcHBlZEFzeW5jTWVz
c2FnZUZvclRlc3RpbmcKKyAgICAsIFRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdl
UmVwbHkKKyAgICAsIFRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aENvbm5l
Y3Rpb25SZXBseQorICAgICwgVGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRo
TXVsdGlwbGVBcmd1bWVudHNSZXBseQorICAgICwgVGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3lu
Y01lc3NhZ2VXaXRoTm9Bcmd1bWVudHNSZXBseQorICAgICwgTGFzdCA9IFRlc3RXaXRoU3VwZXJj
bGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aE5vQXJndW1lbnRzUmVwbHkKIH07CiAKIFJlY2VpdmVy
TmFtZSByZWNlaXZlck5hbWUoTWVzc2FnZU5hbWUpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416991</attachid>
            <date>2021-01-05 04:38:43 -0800</date>
            <delta_ts>2021-01-07 01:52:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220318-20210105143841.patch</filename>
            <type>text/plain</type>
            <size>38061</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY4Y2ZmMWM1ZjJhMDIyZWNj
Nzg2MTg0YzRhZjMxZDg0ZGE4MzhkN2EuLjBjMmQyYjZiOWNiN2ExNDJmNzA1YzJiZThmNWIwNGZk
ZGE3OTExZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjEtMDEtMDUgIEtpbW1vIEtp
bm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBXZWJLaXQgSVBDIGJ1aWx0
aW4gbWVzc2FnZXMgc2hvdWxkIGJlIHBhcnQgb2YgdGhlIG1vZGVsCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjAzMTgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgSVBDIGFuZCBBc3luY1JlcGx5IG1l
c3NhZ2UgcmVjZWl2ZXJzIHRvIHRoZSBJUEMgbW9kZWwKKyAgICAgICAgc28gdGhhdCB0aGVpciBt
ZXNzYWdlcyBjYW4gYmUgcGFydCBvZiB0aGUgZ2VuZXJhdG9yIGR5bmFtaWMgbG9naWMgaW5zdGVh
ZCBvZgorICAgICAgICBiZWluZyBwYXJ0IG9mIHRoZSBzdGF0aWMgdGV4dHVhbCB0ZW1wbGF0ZXMu
CisKKyAgICAgICAgVGhpcyBoZWxwcyB0byByZWZpbmUgZmVhdHVyZXMgc3VjaCBhcyAiaXMgbWVz
c2FnZSBhc3luY2hyb25vdXMiIG1vcmUgZWFzaWx5LgorCisgICAgICAgICogU2NyaXB0cy9nZW5l
cmF0ZS1tZXNzYWdlLXJlY2VpdmVyLnB5OgorICAgICAgICAobWFpbik6CisgICAgICAgICogU2Ny
aXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbW9kZWwu
cHk6CisgICAgICAgIChjaGVja19nbG9iYWxfbW9kZWxfaW5wdXRzKToKKyAgICAgICAgKGdlbmVy
YXRlX2dsb2JhbF9tb2RlbCk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbW9kZWxfdW5pdHRl
c3QucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvdGVzdHMvTWVzc2FnZU5hbWVzLmNwcDoK
KyAgICAgICAgKElQQzo6ZGVzY3JpcHRpb24pOgorICAgICAgICAoSVBDOjpyZWNlaXZlck5hbWUp
OgorICAgICAgICAoSVBDOjppc1ZhbGlkTWVzc2FnZU5hbWUpOgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0L3Rlc3RzL01lc3NhZ2VOYW1lcy5oOgorCiAyMDIxLTAxLTA0ICBLaW1tbyBLaW5udW5l
biAgPGtraW5udW5lbkBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViS2l0IElQQyBnZW5lcmF0b3Ig
dGVzdHMgaGF2ZSBkdXBsaWNhdGUgcmVjZWl2ZXIgbmFtZXMsIGxpbWl0aW5nIHRoZSBpbXBsZW1l
bnRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL2dlbmVyYXRlLW1lc3Nh
Z2UtcmVjZWl2ZXIucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvZ2VuZXJhdGUtbWVzc2FnZS1y
ZWNlaXZlci5weQppbmRleCBhMWJhYWNhMDVjNGQwMjBjNmU5OTNhNmZiYWMxNjEwMTI1MGMwMjBl
Li4zY2IzNjYxYmNmYTcwNTY1ODc3ZTE3ZTliYjgzMWZlZDUzNzVkNDE2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvZ2VuZXJhdGUtbWVzc2FnZS1yZWNlaXZlci5weQorKysgYi9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvZ2VuZXJhdGUtbWVzc2FnZS1yZWNlaXZlci5weQpAQCAtNTQs
MTMgKzU0LDE3IEBAIGRlZiBtYWluKGFyZ3YpOgogICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0
ZSgiRXJyb3I6ICVzIGRlZmluZWQgaW4gZmlsZSAlcy8lcy5tZXNzYWdlcy5pbiBpbnN0ZWFkIG9m
ICVzLm1lc3NhZ2VzLmluXG4iICUgKHJlY2VpdmVyLm5hbWUsIGJhc2VfZGlyLCBwYXJhbWV0ZXIs
IHJlY2VpdmVyLm5hbWUpKQogICAgICAgICAgICAgc3lzLmV4aXQoMSkKIAotICAgIGVycm9ycyA9
IHdlYmtpdC5tb2RlbC5jaGVja19nbG9iYWxfbW9kZWwocmVjZWl2ZXJzKQorICAgIGVycm9ycyA9
IHdlYmtpdC5tb2RlbC5jaGVja19nbG9iYWxfbW9kZWxfaW5wdXRzKHJlY2VpdmVycykKICAgICBp
ZiBlcnJvcnM6CiAgICAgICAgIGZvciBlIGluIGVycm9yczoKICAgICAgICAgICAgIHN5cy5zdGRl
cnIud3JpdGUoIkVycm9yOiAlc1xuIiAlIGUpCiAgICAgICAgIHN5cy5leGl0KDEpCiAKKyAgICBy
ZWNlaXZlcnMgPSB3ZWJraXQubW9kZWwuZ2VuZXJhdGVfZ2xvYmFsX21vZGVsKHJlY2VpdmVycykK
KwogICAgIGZvciByZWNlaXZlciBpbiByZWNlaXZlcnM6CisgICAgICAgIGlmIHJlY2VpdmVyLmhh
c19hdHRyaWJ1dGUod2Via2l0Lm1vZGVsLkJVSUxUSU5fQVRUUklCVVRFKToKKyAgICAgICAgICAg
IGNvbnRpbnVlCiAgICAgICAgIHdpdGggb3BlbignJXNNZXNzYWdlUmVjZWl2ZXIuY3BwJyAlIHJl
Y2VpdmVyLm5hbWUsICJ3KyIpIGFzIGltcGxlbWVudGF0aW9uX291dHB1dDoKICAgICAgICAgICAg
IGltcGxlbWVudGF0aW9uX291dHB1dC53cml0ZSh3ZWJraXQubWVzc2FnZXMuZ2VuZXJhdGVfbWVz
c2FnZV9oYW5kbGVyKHJlY2VpdmVyKSkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3Jp
cHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVz
c2FnZXMucHkKaW5kZXggNDM3MDM3NTZhNTZiMDg1ZGRjMTE5M2FiOWU2ZjcwNWExMjUzNjRmYi4u
YmJiMmI5YTVkNzE2NGU2NjEzM2UzOGFlZDQ2NTQwZjU4NTEzZWRmNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0
L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0yNSw2ICsyNSw3IEBAIGltcG9ydCByZQog
aW1wb3J0IHN5cwogCiBmcm9tIHdlYmtpdCBpbXBvcnQgcGFyc2VyCitmcm9tIHdlYmtpdC5tb2Rl
bCBpbXBvcnQgQlVJTFRJTl9BVFRSSUJVVEUsIEFTWU5DX0FUVFJJQlVURQogCiBfbGljZW5zZV9o
ZWFkZXIgPSAiIiIvKgogICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgpAQCAtNTgsNyArNTksNTEgQEAgV0FOVFNfQVNZTkNfRElTUEFUQ0hf
TUVTU0FHRV9BVFRSSUJVVEUgPSAnV2FudHNBc3luY0Rpc3BhdGNoTWVzc2FnZScKIExFR0FDWV9S
RUNFSVZFUl9BVFRSSUJVVEUgPSAnTGVnYWN5UmVjZWl2ZXInCiBOT1RfUkVGQ09VTlRFRF9SRUNF
SVZFUl9BVFRSSUJVVEUgPSAnTm90UmVmQ291bnRlZCcKIFNZTkNIUk9OT1VTX0FUVFJJQlVURSA9
ICdTeW5jaHJvbm91cycKLUFTWU5DX0FUVFJJQlVURSA9ICdBc3luYycKKworCitkZWYgcmVjZWl2
ZXJfZW51bWVyYXRvcl9vcmRlcl9rZXkocmVjZWl2ZXJfbmFtZSk6CisgICAgaWYgcmVjZWl2ZXJf
bmFtZSA9PSAnSVBDJzoKKyAgICAgICAgcmV0dXJuIDEKKyAgICBlbGlmIHJlY2VpdmVyX25hbWUg
PT0gJ0FzeW5jUmVwbHknOgorICAgICAgICByZXR1cm4gMgorICAgIHJldHVybiAwCisKKworY2xh
c3MgTWVzc2FnZUVudW1lcmF0b3Iob2JqZWN0KToKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBy
ZWNlaXZlciwgbWVzc2FnZXMpOgorICAgICAgICBzZWxmLnJlY2VpdmVyID0gcmVjZWl2ZXIKKyAg
ICAgICAgc2VsZi5tZXNzYWdlcyA9IG1lc3NhZ2VzCisKKyAgICBkZWYgX19zdHJfXyhzZWxmKToK
KyAgICAgICAgaWYgc2VsZi5tZXNzYWdlc1swXS5oYXNfYXR0cmlidXRlKEJVSUxUSU5fQVRUUklC
VVRFKToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLm1lc3NhZ2VzWzBdLm5hbWUKKyAgICAgICAg
aWYgc2VsZi5yZWNlaXZlci5uYW1lID09ICdBc3luY1JlcGx5JzoKKyAgICAgICAgICAgIHJldHVy
biBzZWxmLm1lc3NhZ2VzWzBdLm5hbWUKKyAgICAgICAgcmV0dXJuICclc18lcycgJSAoc2VsZi5y
ZWNlaXZlci5uYW1lLCBzZWxmLm1lc3NhZ2VzWzBdLm5hbWUpCisKKyAgICBAY2xhc3NtZXRob2QK
KyAgICBkZWYgc29ydF9rZXkoY2xzLCBvYmopOgorICAgICAgICByZXR1cm4gcmVjZWl2ZXJfZW51
bWVyYXRvcl9vcmRlcl9rZXkob2JqLnJlY2VpdmVyLm5hbWUpLCBzdHIob2JqKQorCisKK2RlZiBn
ZXRfbWVzc2FnZV9lbnVtZXJhdG9ycyhyZWNlaXZlcnMpOgorICAgIGVudW1lcmF0b3JzID0gW10K
KyAgICBmb3IgcmVjZWl2ZXIgaW4gcmVjZWl2ZXJzOgorICAgICAgICByZWNlaXZlcl9lbnVtZXJh
dG9ycyA9IHt9CisgICAgICAgIGZvciBtZXNzYWdlIGluIHJlY2VpdmVyLm1lc3NhZ2VzOgorICAg
ICAgICAgICAgaWYgbWVzc2FnZS5uYW1lIG5vdCBpbiBlbnVtZXJhdG9yczoKKyAgICAgICAgICAg
ICAgICByZWNlaXZlcl9lbnVtZXJhdG9yc1ttZXNzYWdlLm5hbWVdID0gTWVzc2FnZUVudW1lcmF0
b3IocmVjZWl2ZXIsIG1lc3NhZ2VzPVttZXNzYWdlXSkKKyAgICAgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICAgICAgcmVjZWl2ZXJfZW51bWVyYXRvcnNbbWVzc2FnZS5uYW1lXS5tZXNzYWdlcy5h
cHBlbmQobWVzc2FnZSkKKyAgICAgICAgZW51bWVyYXRvcnMgKz0gcmVjZWl2ZXJfZW51bWVyYXRv
cnMudmFsdWVzKCkKKyAgICBhc3NlcnQobGVuKGVudW1lcmF0b3JzKSA9PSBsZW4oc2V0KGVudW1l
cmF0b3JzKSkpCisgICAgcmV0dXJuIHNvcnRlZChlbnVtZXJhdG9ycywga2V5PU1lc3NhZ2VFbnVt
ZXJhdG9yLnNvcnRfa2V5KQorCisKK2RlZiBnZXRfcmVjZWl2ZXJfZW51bWVyYXRvcnMocmVjZWl2
ZXJzKToKKyAgICByZXR1cm4gc29ydGVkKChyLm5hbWUgZm9yIHIgaW4gcmVjZWl2ZXJzKSwga2V5
PWxhbWJkYSBuOiAocmVjZWl2ZXJfZW51bWVyYXRvcl9vcmRlcl9rZXkobiksIG4pKQorCiAKIGRl
ZiBtZXNzYWdlc19oZWFkZXJfZmlsZW5hbWUocmVjZWl2ZXIpOgogICAgIHJldHVybiAnJXNNZXNz
YWdlcy5oJyAlIHJlY2VpdmVyLm5hbWUKQEAgLTkxMSw0NSArOTU2LDE5IEBAIGRlZiBnZW5lcmF0
ZV9tZXNzYWdlX25hbWVzX2hlYWRlcihyZWNlaXZlcnMpOgogICAgIHJlc3VsdC5hcHBlbmQoJ25h
bWVzcGFjZSBJUEMge1xuJykKICAgICByZXN1bHQuYXBwZW5kKCdcbicpCiAgICAgcmVzdWx0LmFw
cGVuZCgnZW51bSBjbGFzcyBSZWNlaXZlck5hbWUgOiB1aW50OF90IHsnKQotCi0gICAgZW51bV92
YWx1ZSA9IDEKLSAgICBmaXJzdF9yZWNlaXZlciA9IFRydWUKLSAgICBmb3IgcmVjZWl2ZXIgaW4g
cmVjZWl2ZXJzOgotICAgICAgICByZXN1bHQuYXBwZW5kKCdcbicpCi0gICAgICAgIHJlc3VsdC5h
cHBlbmQoJyAgICAnKQotICAgICAgICBpZiBub3QgZmlyc3RfcmVjZWl2ZXI6Ci0gICAgICAgICAg
ICByZXN1bHQuYXBwZW5kKCcsICcpCi0gICAgICAgIGZpcnN0X3JlY2VpdmVyID0gRmFsc2UKLSAg
ICAgICAgcmVzdWx0LmFwcGVuZCgnJXMgPSAlZCcgJSAocmVjZWl2ZXIubmFtZSwgZW51bV92YWx1
ZSkpCi0gICAgICAgIGVudW1fdmFsdWUgPSBlbnVtX3ZhbHVlICsgMQotICAgIHJlc3VsdC5hcHBl
bmQoJ1xuICAgICwgSVBDID0gJWQnICUgZW51bV92YWx1ZSkKLSAgICBlbnVtX3ZhbHVlID0gZW51
bV92YWx1ZSArIDEKLSAgICByZXN1bHQuYXBwZW5kKCdcbiAgICAsIEFzeW5jUmVwbHkgPSAlZCcg
JSBlbnVtX3ZhbHVlKQotICAgIGVudW1fdmFsdWUgPSBlbnVtX3ZhbHVlICsgMQotICAgIHJlc3Vs
dC5hcHBlbmQoJ1xuICAgICwgSW52YWxpZCA9ICVkJyAlIGVudW1fdmFsdWUpCisgICAgcmVzdWx0
LmFwcGVuZCgnXG4gICAgJykKKyAgICBlbnVtcyA9IFsnJXMgPSAlZCcgJSAoZSwgdikgZm9yIHYs
IGUgaW4gZW51bWVyYXRlKGdldF9yZWNlaXZlcl9lbnVtZXJhdG9ycyhyZWNlaXZlcnMpLCAxKV0K
KyAgICByZXN1bHQuYXBwZW5kKCdcbiAgICAsICcuam9pbihlbnVtcykpCisgICAgcmVzdWx0LmFw
cGVuZCgnXG4gICAgLCBJbnZhbGlkID0gJWQnICUgKGxlbihlbnVtcykgKyAxKSkKICAgICByZXN1
bHQuYXBwZW5kKCdcbn07XG4nKQogICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykKLSAgICByZXN1bHQu
YXBwZW5kKCdlbnVtIGNsYXNzIE1lc3NhZ2VOYW1lIDogdWludDE2X3QgeycpCiAKLSAgICBlbnVt
X3ZhbHVlcyA9IHNldCgpCi0gICAgZm9yIHJlY2VpdmVyIGluIHJlY2VpdmVyczoKLSAgICAgICAg
Zm9yIG1lc3NhZ2UgaW4gcmVjZWl2ZXIubWVzc2FnZXM6Ci0gICAgICAgICAgICBlbnVtX3ZhbHVl
cy5hZGQoJyVzXyVzJyAlIChyZWNlaXZlci5uYW1lLCBtZXNzYWdlLm5hbWUpKQotICAgICAgICAg
ICAgaWYgbWVzc2FnZS5oYXNfYXR0cmlidXRlKEFTWU5DX0FUVFJJQlVURSk6Ci0gICAgICAgICAg
ICAgICAgZW51bV92YWx1ZXMuYWRkKCclc18lc1JlcGx5JyAlIChyZWNlaXZlci5uYW1lLCBtZXNz
YWdlLm5hbWUpKQotCi0gICAgZmlyc3RfbWVzc2FnZSA9IFRydWUKLSAgICBmb3IgZW51bV92YWx1
ZSBpbiBzb3J0ZWQoZW51bV92YWx1ZXMpOgotICAgICAgICByZXN1bHQuYXBwZW5kKCdcbiAgICAn
KQotICAgICAgICBpZiBub3QgZmlyc3RfbWVzc2FnZToKLSAgICAgICAgICAgIHJlc3VsdC5hcHBl
bmQoJywgJykKLSAgICAgICAgZmlyc3RfbWVzc2FnZSA9IEZhbHNlCi0gICAgICAgIHJlc3VsdC5h
cHBlbmQoZW51bV92YWx1ZSkKLSAgICByZXN1bHQuYXBwZW5kKCdcbiAgICAsIFdyYXBwZWRBc3lu
Y01lc3NhZ2VGb3JUZXN0aW5nJykKLSAgICByZXN1bHQuYXBwZW5kKCdcbiAgICAsIFN5bmNNZXNz
YWdlUmVwbHknKQotICAgIHJlc3VsdC5hcHBlbmQoJ1xuICAgICwgSW5pdGlhbGl6ZUNvbm5lY3Rp
b24nKQotICAgIHJlc3VsdC5hcHBlbmQoJ1xuICAgICwgTGVnYWN5U2Vzc2lvblN0YXRlJykKLSAg
ICByZXN1bHQuYXBwZW5kKCdcbiAgICAsIExhc3QgPSBMZWdhY3lTZXNzaW9uU3RhdGUnKQorICAg
IG1lc3NhZ2VfZW51bWVyYXRvcnMgPSBnZXRfbWVzc2FnZV9lbnVtZXJhdG9ycyhyZWNlaXZlcnMp
CisKKyAgICByZXN1bHQuYXBwZW5kKCdlbnVtIGNsYXNzIE1lc3NhZ2VOYW1lIDogdWludDE2X3Qg
eycpCisgICAgcmVzdWx0LmFwcGVuZCgnXG4gICAgJykKKyAgICByZXN1bHQuYXBwZW5kKCdcbiAg
ICAsICcuam9pbihzdHIoZSkgZm9yIGUgaW4gbWVzc2FnZV9lbnVtZXJhdG9ycykpCisgICAgcmVz
dWx0LmFwcGVuZCgnXG4gICAgLCBMYXN0ID0gJXMnICUgbWVzc2FnZV9lbnVtZXJhdG9yc1stMV0p
CiAgICAgcmVzdWx0LmFwcGVuZCgnXG59O1xuJykKICAgICByZXN1bHQuYXBwZW5kKCdcbicpCiAg
ICAgcmVzdWx0LmFwcGVuZCgnUmVjZWl2ZXJOYW1lIHJlY2VpdmVyTmFtZShNZXNzYWdlTmFtZSk7
XG4nKQpAQCAtOTg3LDI0ICsxMDA2LDExIEBAIGRlZiBnZW5lcmF0ZV9tZXNzYWdlX25hbWVzX2lt
cGxlbWVudGF0aW9uKHJlY2VpdmVycyk6CiAgICAgcmVzdWx0LmFwcGVuZCgnY29uc3QgY2hhciog
ZGVzY3JpcHRpb24oTWVzc2FnZU5hbWUgbmFtZSlcbicpCiAgICAgcmVzdWx0LmFwcGVuZCgne1xu
JykKICAgICByZXN1bHQuYXBwZW5kKCcgICAgc3dpdGNoIChuYW1lKSB7XG4nKQotICAgIGVudW1f
dmFsdWVzID0gc2V0KCkKLSAgICBmb3IgcmVjZWl2ZXIgaW4gcmVjZWl2ZXJzOgotICAgICAgICBm
b3IgbWVzc2FnZSBpbiByZWNlaXZlci5tZXNzYWdlczoKLSAgICAgICAgICAgIGVudW1fdmFsdWVz
LmFkZCgnJXNfJXMnICUgKHJlY2VpdmVyLm5hbWUsIG1lc3NhZ2UubmFtZSkpCi0gICAgICAgICAg
ICBpZiBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoQVNZTkNfQVRUUklCVVRFKToKLSAgICAgICAgICAg
ICAgICBlbnVtX3ZhbHVlcy5hZGQoJyVzXyVzUmVwbHknICUgKHJlY2VpdmVyLm5hbWUsIG1lc3Nh
Z2UubmFtZSkpCi0KLSAgICBmb3IgZW51bV92YWx1ZSBpbiBzb3J0ZWQoZW51bV92YWx1ZXMpOgot
ICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgY2FzZSBNZXNzYWdlTmFtZTo6JXM6XG4nICUgZW51
bV92YWx1ZSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgICAgICByZXR1cm4gIiVzIjtcbicg
JSBlbnVtX3ZhbHVlKQotICAgIHJlc3VsdC5hcHBlbmQoJyAgICBjYXNlIE1lc3NhZ2VOYW1lOjpX
cmFwcGVkQXN5bmNNZXNzYWdlRm9yVGVzdGluZzpcbicpCi0gICAgcmVzdWx0LmFwcGVuZCgnICAg
ICAgICByZXR1cm4gIklQQzo6V3JhcHBlZEFzeW5jTWVzc2FnZUZvclRlc3RpbmciO1xuJykKLSAg
ICByZXN1bHQuYXBwZW5kKCcgICAgY2FzZSBNZXNzYWdlTmFtZTo6U3luY01lc3NhZ2VSZXBseTpc
bicpCi0gICAgcmVzdWx0LmFwcGVuZCgnICAgICAgICByZXR1cm4gIklQQzo6U3luY01lc3NhZ2VS
ZXBseSI7XG4nKQotICAgIHJlc3VsdC5hcHBlbmQoJyAgICBjYXNlIE1lc3NhZ2VOYW1lOjpJbml0
aWFsaXplQ29ubmVjdGlvbjpcbicpCi0gICAgcmVzdWx0LmFwcGVuZCgnICAgICAgICByZXR1cm4g
IklQQzo6SW5pdGlhbGl6ZUNvbm5lY3Rpb24iO1xuJykKLSAgICByZXN1bHQuYXBwZW5kKCcgICAg
Y2FzZSBNZXNzYWdlTmFtZTo6TGVnYWN5U2Vzc2lvblN0YXRlOlxuJykKLSAgICByZXN1bHQuYXBw
ZW5kKCcgICAgICAgIHJldHVybiAiSVBDOjpMZWdhY3lTZXNzaW9uU3RhdGUiO1xuJykKKworICAg
IG1lc3NhZ2VfZW51bWVyYXRvcnMgPSBnZXRfbWVzc2FnZV9lbnVtZXJhdG9ycyhyZWNlaXZlcnMp
CisgICAgZm9yIGVudW1lcmF0b3IgaW4gbWVzc2FnZV9lbnVtZXJhdG9yczoKKyAgICAgICAgcmVz
dWx0LmFwcGVuZCgnICAgIGNhc2UgTWVzc2FnZU5hbWU6OiVzOlxuJyAlIGVudW1lcmF0b3IpCisg
ICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICAgICAgcmV0dXJuICIlcyI7XG4nICUgZW51bWVyYXRv
cikKICAgICByZXN1bHQuYXBwZW5kKCcgICAgfVxuJykKICAgICByZXN1bHQuYXBwZW5kKCcgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7XG4nKQogICAgIHJlc3VsdC5hcHBlbmQoJyAgICByZXR1cm4g
IjxpbnZhbGlkIG1lc3NhZ2UgbmFtZT4iO1xuJykKQEAgLTEwMTMsMzAgKzEwMTksMTQgQEAgZGVm
IGdlbmVyYXRlX21lc3NhZ2VfbmFtZXNfaW1wbGVtZW50YXRpb24ocmVjZWl2ZXJzKToKICAgICBy
ZXN1bHQuYXBwZW5kKCdSZWNlaXZlck5hbWUgcmVjZWl2ZXJOYW1lKE1lc3NhZ2VOYW1lIG1lc3Nh
Z2VOYW1lKVxuJykKICAgICByZXN1bHQuYXBwZW5kKCd7XG4nKQogICAgIHJlc3VsdC5hcHBlbmQo
JyAgICBzd2l0Y2ggKG1lc3NhZ2VOYW1lKSB7XG4nKQotICAgIG1lc3NhZ2VfcmVjZWl2ZXJfbWFw
ID0gZGljdCgpCi0gICAgYXN5bmNfcmVwbHlfbWVzc2FnZXMgPSBzZXQoKQotICAgIGZvciByZWNl
aXZlciBpbiByZWNlaXZlcnM6Ci0gICAgICAgIG1lc3NhZ2VzID0gc2V0KCkKLSAgICAgICAgZm9y
IG1lc3NhZ2UgaW4gcmVjZWl2ZXIubWVzc2FnZXM6Ci0gICAgICAgICAgICBtZXNzYWdlcy5hZGQo
JyVzXyVzJyAlIChyZWNlaXZlci5uYW1lLCBtZXNzYWdlLm5hbWUpKQotICAgICAgICAgICAgaWYg
bWVzc2FnZS5oYXNfYXR0cmlidXRlKEFTWU5DX0FUVFJJQlVURSk6Ci0gICAgICAgICAgICAgICAg
YXN5bmNfcmVwbHlfbWVzc2FnZXMuYWRkKCclc18lc1JlcGx5JyAlIChyZWNlaXZlci5uYW1lLCBt
ZXNzYWdlLm5hbWUpKQotICAgICAgICBpZiBsZW4obWVzc2FnZXMpOgotICAgICAgICAgICAgbWVz
c2FnZV9yZWNlaXZlcl9tYXBbcmVjZWl2ZXIubmFtZV0gPSBtZXNzYWdlcwotCi0gICAgZm9yIHJl
Y2VpdmVyX25hbWUsIG1lc3NhZ2VfbmFtZXMgaW4gbWVzc2FnZV9yZWNlaXZlcl9tYXAuaXRlbXMo
KToKLSAgICAgICAgZm9yIG1lc3NhZ2VfbmFtZSBpbiBzb3J0ZWQobWVzc2FnZV9uYW1lcyk6Ci0g
ICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgY2FzZSBNZXNzYWdlTmFtZTo6JXM6XG4nICUg
bWVzc2FnZV9uYW1lKQotICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgICAgIHJldHVybiBSZWNl
aXZlck5hbWU6OiVzO1xuJyAlIHJlY2VpdmVyX25hbWUpCi0KLSAgICBmb3IgYXN5bmNfcmVwbHlf
bWVzc2FnZSBpbiBzb3J0ZWQoYXN5bmNfcmVwbHlfbWVzc2FnZXMpOgotICAgICAgICByZXN1bHQu
YXBwZW5kKCcgICAgY2FzZSBNZXNzYWdlTmFtZTo6JXM6XG4nICUgYXN5bmNfcmVwbHlfbWVzc2Fn
ZSkKLSAgICByZXN1bHQuYXBwZW5kKCcgICAgICAgIHJldHVybiBSZWNlaXZlck5hbWU6OkFzeW5j
UmVwbHk7XG4nKQotICAgIHJlc3VsdC5hcHBlbmQoJyAgICBjYXNlIE1lc3NhZ2VOYW1lOjpXcmFw
cGVkQXN5bmNNZXNzYWdlRm9yVGVzdGluZzpcbicpCi0gICAgcmVzdWx0LmFwcGVuZCgnICAgIGNh
c2UgTWVzc2FnZU5hbWU6OlN5bmNNZXNzYWdlUmVwbHk6XG4nKQotICAgIHJlc3VsdC5hcHBlbmQo
JyAgICBjYXNlIE1lc3NhZ2VOYW1lOjpJbml0aWFsaXplQ29ubmVjdGlvbjpcbicpCi0gICAgcmVz
dWx0LmFwcGVuZCgnICAgIGNhc2UgTWVzc2FnZU5hbWU6OkxlZ2FjeVNlc3Npb25TdGF0ZTpcbicp
Ci0gICAgcmVzdWx0LmFwcGVuZCgnICAgICAgICByZXR1cm4gUmVjZWl2ZXJOYW1lOjpJUEM7XG4n
KQorICAgIHByZXZfZW51bWVyYXRvciA9IE5vbmUKKyAgICBmb3IgZW51bWVyYXRvciBpbiBtZXNz
YWdlX2VudW1lcmF0b3JzOgorICAgICAgICBpZiBwcmV2X2VudW1lcmF0b3IgYW5kIHByZXZfZW51
bWVyYXRvci5yZWNlaXZlciAhPSBlbnVtZXJhdG9yLnJlY2VpdmVyOgorICAgICAgICAgICAgcmVz
dWx0LmFwcGVuZCgnICAgICAgICByZXR1cm4gUmVjZWl2ZXJOYW1lOjolcztcbicgJSBwcmV2X2Vu
dW1lcmF0b3IucmVjZWl2ZXIubmFtZSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIGNhc2Ug
TWVzc2FnZU5hbWU6OiVzOlxuJyAlIGVudW1lcmF0b3IpCisgICAgICAgIHByZXZfZW51bWVyYXRv
ciA9IGVudW1lcmF0b3IKKyAgICBpZiBwcmV2X2VudW1lcmF0b3I6CisgICAgICAgIHJlc3VsdC5h
cHBlbmQoJyAgICAgICAgcmV0dXJuIFJlY2VpdmVyTmFtZTo6JXM7XG4nICUgcHJldl9lbnVtZXJh
dG9yLnJlY2VpdmVyLm5hbWUpCiAgICAgcmVzdWx0LmFwcGVuZCgnICAgIH1cbicpCiAgICAgcmVz
dWx0LmFwcGVuZCgnICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpO1xuJykKICAgICByZXN1bHQuYXBw
ZW5kKCcgICAgcmV0dXJuIFJlY2VpdmVyTmFtZTo6SW52YWxpZDtcbicpCkBAIC0xMDQ0LDI1ICsx
MDM0LDE0IEBAIGRlZiBnZW5lcmF0ZV9tZXNzYWdlX25hbWVzX2ltcGxlbWVudGF0aW9uKHJlY2Vp
dmVycyk6CiAgICAgcmVzdWx0LmFwcGVuZCgnXG4nKQogICAgIHJlc3VsdC5hcHBlbmQoJ2Jvb2wg
aXNWYWxpZE1lc3NhZ2VOYW1lKE1lc3NhZ2VOYW1lIG1lc3NhZ2VOYW1lKVxuJykKICAgICByZXN1
bHQuYXBwZW5kKCd7XG4nKQotICAgIGZvciByZWNlaXZlciBpbiByZWNlaXZlcnM6Ci0gICAgICAg
IGZvciBtZXNzYWdlIGluIHJlY2VpdmVyLm1lc3NhZ2VzOgorICAgIGZvciBlbnVtZXJhdG9yIGlu
IG1lc3NhZ2VfZW51bWVyYXRvcnM6CisgICAgICAgIGZvciBtZXNzYWdlIGluIGVudW1lcmF0b3Iu
bWVzc2FnZXM6CiAgICAgICAgICAgICBpZiBtZXNzYWdlLmNvbmRpdGlvbjoKICAgICAgICAgICAg
ICAgICByZXN1bHQuYXBwZW5kKCcjaWYgJXNcbicgJSBtZXNzYWdlLmNvbmRpdGlvbikKLSAgICAg
ICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdl
TmFtZTo6JXNfJXMpXG4nICUgKHJlY2VpdmVyLm5hbWUsIG1lc3NhZ2UubmFtZSkpCisgICAgICAg
ICAgICByZXN1bHQuYXBwZW5kKCcgICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5h
bWU6OiVzKVxuJyAlIGVudW1lcmF0b3IpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAg
ICAgIHJldHVybiB0cnVlO1xuJykKLSAgICAgICAgICAgIGlmIG1lc3NhZ2UuaGFzX2F0dHJpYnV0
ZShBU1lOQ19BVFRSSUJVVEUpOgotICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBp
ZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6JXNfJXNSZXBseSlcbicgJSAocmVj
ZWl2ZXIubmFtZSwgbWVzc2FnZS5uYW1lKSkKLSAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5k
KCcgICAgICAgIHJldHVybiB0cnVlO1xuJykKICAgICAgICAgICAgIGlmIG1lc3NhZ2UuY29uZGl0
aW9uOgogICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyNlbmRpZlxuJykKLSAgICByZXN1
bHQuYXBwZW5kKCcgICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OldyYXBw
ZWRBc3luY01lc3NhZ2VGb3JUZXN0aW5nKVxuJykKLSAgICByZXN1bHQuYXBwZW5kKCcgICAgICAg
IHJldHVybiB0cnVlO1xuJykKLSAgICByZXN1bHQuYXBwZW5kKCcgICAgaWYgKG1lc3NhZ2VOYW1l
ID09IElQQzo6TWVzc2FnZU5hbWU6OlN5bmNNZXNzYWdlUmVwbHkpXG4nKQotICAgIHJlc3VsdC5h
cHBlbmQoJyAgICAgICAgcmV0dXJuIHRydWU7XG4nKQotICAgIHJlc3VsdC5hcHBlbmQoJyAgICBp
ZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6SW5pdGlhbGl6ZUNvbm5lY3Rpb24p
XG4nKQotICAgIHJlc3VsdC5hcHBlbmQoJyAgICAgICAgcmV0dXJuIHRydWU7XG4nKQotICAgIHJl
c3VsdC5hcHBlbmQoJyAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6TGVn
YWN5U2Vzc2lvblN0YXRlKVxuJykKLSAgICByZXN1bHQuYXBwZW5kKCcgICAgICAgIHJldHVybiB0
cnVlO1xuJykKICAgICByZXN1bHQuYXBwZW5kKCcgICAgcmV0dXJuIGZhbHNlO1xuJykKICAgICBy
ZXN1bHQuYXBwZW5kKCd9O1xuJykKICAgICByZXN1bHQuYXBwZW5kKCdcbicpCkBAIC0xMDc1LDYg
KzEwNTQsOCBAQCBkZWYgZ2VuZXJhdGVfanNfdmFsdWVfY29udmVyc2lvbl9mdW5jdGlvbihyZXN1
bHQsIHJlY2VpdmVycywgZnVuY3Rpb25fbmFtZSwgYXJndQogICAgIHJlc3VsdC5hcHBlbmQoJ3tc
bicpCiAgICAgcmVzdWx0LmFwcGVuZCgnICAgIHN3aXRjaCAobmFtZSkge1xuJykKICAgICBmb3Ig
cmVjZWl2ZXIgaW4gcmVjZWl2ZXJzOgorICAgICAgICBpZiByZWNlaXZlci5oYXNfYXR0cmlidXRl
KEJVSUxUSU5fQVRUUklCVVRFKToKKyAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgIGlmIHJl
Y2VpdmVyLmNvbmRpdGlvbjoKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyNpZiAlc1xuJyAl
IHJlY2VpdmVyLmNvbmRpdGlvbikKICAgICAgICAgcHJldmlvdXNfbWVzc2FnZV9jb25kaXRpb24g
PSBOb25lCkBAIC0xMTA2LDEwICsxMDg3LDE0IEBAIGRlZiBnZW5lcmF0ZV9qc19hcmd1bWVudF9k
ZXNjcmlwdGlvbnMocmVjZWl2ZXJzLCBmdW5jdGlvbl9uYW1lLCBhcmd1bWVudHNfZnJvbV9tCiAg
ICAgcmVzdWx0LmFwcGVuZCgne1xuJykKICAgICByZXN1bHQuYXBwZW5kKCcgICAgc3dpdGNoIChu
YW1lKSB7XG4nKQogICAgIGZvciByZWNlaXZlciBpbiByZWNlaXZlcnM6CisgICAgICAgIGlmIHJl
Y2VpdmVyLmhhc19hdHRyaWJ1dGUoQlVJTFRJTl9BVFRSSUJVVEUpOgorICAgICAgICAgICAgY29u
dGludWUKICAgICAgICAgaWYgcmVjZWl2ZXIuY29uZGl0aW9uOgogICAgICAgICAgICAgcmVzdWx0
LmFwcGVuZCgnI2lmICVzXG4nICUgcmVjZWl2ZXIuY29uZGl0aW9uKQogICAgICAgICBwcmV2aW91
c19tZXNzYWdlX2NvbmRpdGlvbiA9IE5vbmUKICAgICAgICAgZm9yIG1lc3NhZ2UgaW4gcmVjZWl2
ZXIubWVzc2FnZXM6CisgICAgICAgICAgICBpZiBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoQlVJTFRJ
Tl9BVFRSSUJVVEUpOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgICBhcmd1
bWVudF9saXN0ID0gYXJndW1lbnRzX2Zyb21fbWVzc2FnZShtZXNzYWdlKQogICAgICAgICAgICAg
aWYgYXJndW1lbnRfbGlzdCBpcyBOb25lOgogICAgICAgICAgICAgICAgIGNvbnRpbnVlCkBAIC0x
MTU1LDYgKzExNDAsOCBAQCBkZWYgZ2VuZXJhdGVfbWVzc2FnZV9hcmd1bWVudF9kZXNjcmlwdGlv
bl9pbXBsZW1lbnRhdGlvbihyZWNlaXZlcnMsIHJlY2VpdmVyX2hlYQogICAgICAgICAnIkpTSVBD
QmluZGluZy5oIic6IFtOb25lXQogICAgIH0KICAgICBmb3IgcmVjZWl2ZXIgaW4gcmVjZWl2ZXJz
OgorICAgICAgICBpZiByZWNlaXZlci5oYXNfYXR0cmlidXRlKEJVSUxUSU5fQVRUUklCVVRFKToK
KyAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgIGhlYWRlcl9jb25kaXRpb25zWyciJXMiJyAl
IG1lc3NhZ2VzX2hlYWRlcl9maWxlbmFtZShyZWNlaXZlcildID0gW05vbmVdCiAgICAgICAgIGNv
bGxlY3RfaGVhZGVyX2NvbmRpdGlvbnNfZm9yX3JlY2VpdmVyKHJlY2VpdmVyLCBoZWFkZXJfY29u
ZGl0aW9ucykKIApAQCAtMTIwNCw3ICsxMTkxLDcgQEAgZGVmIGdlbmVyYXRlX21lc3NhZ2VfYXJn
dW1lbnRfZGVzY3JpcHRpb25faW1wbGVtZW50YXRpb24ocmVjZWl2ZXJzLCByZWNlaXZlcl9oZWEK
ICAgICAgICAgICAgICAgICBpZiBtZXNzYWdlLmNvbmRpdGlvbjoKICAgICAgICAgICAgICAgICAg
ICAgcmVzdWx0LmFwcGVuZCgnI2lmICVzXG4nICUgbWVzc2FnZS5jb25kaXRpb24pCiAgICAgICAg
ICAgICBwcmV2aW91c19tZXNzYWdlX2NvbmRpdGlvbiA9IG1lc3NhZ2UuY29uZGl0aW9uCi0gICAg
ICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgY2FzZSBNZXNzYWdlTmFtZTo6JXNfJXM6XG4nICUg
KHJlY2VpdmVyLm5hbWUsIG1lc3NhZ2UubmFtZSkpCisgICAgICAgICAgICByZXN1bHQuYXBwZW5k
KCcgICAgY2FzZSBNZXNzYWdlTmFtZTo6JXM6XG4nICUgTWVzc2FnZUVudW1lcmF0b3IocmVjZWl2
ZXIsIFttZXNzYWdlXSkpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgICAgIHJldHVy
biB0cnVlO1xuJykKICAgICAgICAgaWYgcHJldmlvdXNfbWVzc2FnZV9jb25kaXRpb246CiAgICAg
ICAgICAgICByZXN1bHQuYXBwZW5kKCcjZW5kaWZcbicpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NjcmlwdHMvd2Via2l0L21vZGVsLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtp
dC9tb2RlbC5weQppbmRleCBjNzBjMjI2NzE1ZDU2MGViZGUwNzMzMTYyOWNjYzI2YTNlZWQ5NmU5
Li41Y2YyMjJlMDNjY2EzMzQ4Mjg3NDUxOGVhZjFmZTY0MWQ0Y2VkMWZhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21vZGVsLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQv
U2NyaXB0cy93ZWJraXQvbW9kZWwucHkKQEAgLTI0LDYgKzI0LDkgQEAgaW1wb3J0IGl0ZXJ0b29s
cwogCiBmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBDb3VudGVyCiAKK0JVSUxUSU5fQVRUUklCVVRF
ID0gIkJ1aWx0aW4iCitBU1lOQ19BVFRSSUJVVEUgPSAiQXN5bmMiCisKIGNsYXNzIE1lc3NhZ2VS
ZWNlaXZlcihvYmplY3QpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lLCBzdXBlcmNsYXNz
LCBhdHRyaWJ1dGVzLCBtZXNzYWdlcywgY29uZGl0aW9uKToKICAgICAgICAgc2VsZi5uYW1lID0g
bmFtZQpAQCAtNjQsNyArNjcsMTUgQEAgY2xhc3MgUGFyYW1ldGVyKG9iamVjdCk6CiAgICAgICAg
IHJldHVybiBhdHRyaWJ1dGUgaW4gc2VsZi5hdHRyaWJ1dGVzCiAKIAotZGVmIGNoZWNrX2dsb2Jh
bF9tb2RlbChyZWNlaXZlcnMpOgoraXBjX3JlY2VpdmVyID0gTWVzc2FnZVJlY2VpdmVyKG5hbWU9
IklQQyIsIHN1cGVyY2xhc3M9Tm9uZSwgYXR0cmlidXRlcz1bQlVJTFRJTl9BVFRSSUJVVEVdLCBt
ZXNzYWdlcz1bCisgICAgTWVzc2FnZSgnV3JhcHBlZEFzeW5jTWVzc2FnZUZvclRlc3RpbmcnLCBb
XSwgW10sIGF0dHJpYnV0ZXM9W0JVSUxUSU5fQVRUUklCVVRFXSwgY29uZGl0aW9uPU5vbmUpLAor
ICAgIE1lc3NhZ2UoJ1N5bmNNZXNzYWdlUmVwbHknLCBbXSwgW10sIGF0dHJpYnV0ZXM9W0JVSUxU
SU5fQVRUUklCVVRFXSwgY29uZGl0aW9uPU5vbmUpLAorICAgIE1lc3NhZ2UoJ0luaXRpYWxpemVD
b25uZWN0aW9uJywgW10sIFtdLCBhdHRyaWJ1dGVzPVtCVUlMVElOX0FUVFJJQlVURV0sIGNvbmRp
dGlvbj0iUExBVEZPUk0oQ09DT0EpIiksCisgICAgTWVzc2FnZSgnTGVnYWN5U2Vzc2lvblN0YXRl
JywgW10sIFtdLCBhdHRyaWJ1dGVzPVtCVUlMVElOX0FUVFJJQlVURV0sIGNvbmRpdGlvbj1Ob25l
KQorXSwgY29uZGl0aW9uPU5vbmUpCisKKworZGVmIGNoZWNrX2dsb2JhbF9tb2RlbF9pbnB1dHMo
cmVjZWl2ZXJzKToKICAgICBlcnJvcnMgPSBbXQogICAgIHJlY2VpdmVyX2NvdW50cyA9IENvdW50
ZXIoW3IubmFtZSBmb3IgciBpbiByZWNlaXZlcnNdKQogICAgIHJlY2VpdmVyX2R1cGxpY2F0ZXMg
PSBbbiBmb3IgbiwgYyBpbiByZWNlaXZlcl9jb3VudHMuaXRlbXMoKSBpZiBjID4gMV0KQEAgLTcy
LDMgKzgzLDEzIEBAIGRlZiBjaGVja19nbG9iYWxfbW9kZWwocmVjZWl2ZXJzKToKICAgICAgICAg
ZXJyb3JzLmFwcGVuZCgnRHVwbGljYXRlIG1lc3NhZ2UgcmVjZWl2ZXIgbmFtZXM6ICVzJyAlICgn
LCAnLmpvaW4ocmVjZWl2ZXJfZHVwbGljYXRlcykpKQogCiAgICAgcmV0dXJuIGVycm9ycworCisK
K2RlZiBnZW5lcmF0ZV9nbG9iYWxfbW9kZWwocmVjZWl2ZXJzKToKKyAgICBhc3luY19yZXBseV9t
ZXNzYWdlcyA9IFtdCisgICAgZm9yIHJlY2VpdmVyIGluIHJlY2VpdmVyczoKKyAgICAgICAgZm9y
IG1lc3NhZ2UgaW4gcmVjZWl2ZXIubWVzc2FnZXM6CisgICAgICAgICAgICBpZiBtZXNzYWdlLmhh
c19hdHRyaWJ1dGUoQVNZTkNfQVRUUklCVVRFKToKKyAgICAgICAgICAgICAgICBhc3luY19yZXBs
eV9tZXNzYWdlcy5hcHBlbmQoTWVzc2FnZShuYW1lPSclc18lc1JlcGx5JyAlIChyZWNlaXZlci5u
YW1lLCBtZXNzYWdlLm5hbWUpLCBwYXJhbWV0ZXJzPW1lc3NhZ2UucmVwbHlfcGFyYW1ldGVycywg
cmVwbHlfcGFyYW1ldGVycz1bXSwgYXR0cmlidXRlcz1Ob25lLCBjb25kaXRpb249bWVzc2FnZS5j
b25kaXRpb24pKQorICAgIGFzeW5jX3JlcGx5X3JlY2VpdmVyID0gTWVzc2FnZVJlY2VpdmVyKG5h
bWU9J0FzeW5jUmVwbHknLCBzdXBlcmNsYXNzPSdOb25lJywgYXR0cmlidXRlcz1bQlVJTFRJTl9B
VFRSSUJVVEVdLCBtZXNzYWdlcz1hc3luY19yZXBseV9tZXNzYWdlcywgY29uZGl0aW9uPU5vbmUp
CisgICAgcmV0dXJuIFtpcGNfcmVjZWl2ZXIsIGFzeW5jX3JlcGx5X3JlY2VpdmVyXSArIHJlY2Vp
dmVycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tb2RlbF91bml0
dGVzdC5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbW9kZWxfdW5pdHRlc3QucHkK
aW5kZXggMjE4YWI2YmQwYzIwMmEyMjE5ODU2NjU4M2U5ZmFkNGVlNTMwMmFhOC4uMjU2MjU3YTk3
ODdhY2E5ODQ3MGQwODRhNTFjM2MzYmIzNWQ2NzdlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TY3JpcHRzL3dlYmtpdC9tb2RlbF91bml0dGVzdC5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1Nj
cmlwdHMvd2Via2l0L21vZGVsX3VuaXR0ZXN0LnB5CkBAIC01OSw3ICs1OSw3IEBAIG1lc3NhZ2Vz
IC0+IFdlYlBhZ2UgewogICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhvdGhlcl9yZWNlaXZlci5u
YW1lLCAnV2ViUGFnZScpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKG90aGVyX3JlY2VpdmVy
Lm1lc3NhZ2VzWzBdLm5hbWUsICdMb2FkVVJMJykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo
b3RoZXJfcmVjZWl2ZXIubWVzc2FnZXNbMV0ubmFtZSwgJ0xvYWRVUkwyJykKLSAgICAgICAgZXJy
b3JzID0gbW9kZWwuY2hlY2tfZ2xvYmFsX21vZGVsKFtyZWNlaXZlciwgb3RoZXJfcmVjZWl2ZXJd
KQorICAgICAgICBlcnJvcnMgPSBtb2RlbC5jaGVja19nbG9iYWxfbW9kZWxfaW5wdXRzKFtyZWNl
aXZlciwgb3RoZXJfcmVjZWl2ZXJdKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhsZW4oZXJy
b3JzKSwgMSkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCJEdXBsaWNhdGUiIGluIGVycm9yc1sw
XSkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9NZXNz
YWdlTmFtZXMuY3BwIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9NZXNzYWdl
TmFtZXMuY3BwCmluZGV4IGIxYmY5NjM0OTg4YWYyNzYzNmNkNTY5MmM3YTM1MTdmNjI5ODY3Nzku
LmZmYzdmNzRlNTEwNDBlN2VjYzZiOTVmMjQ3MDAwOTY0NzQ1YjU4NjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvTWVzc2FnZU5hbWVzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL01lc3NhZ2VOYW1lcy5jcHAKQEAgLTc4
LDIwICs3OCwxMiBAQCBjb25zdCBjaGFyKiBkZXNjcmlwdGlvbihNZXNzYWdlTmFtZSBuYW1lKQog
ICAgICAgICByZXR1cm4gIlRlc3RXaXRoU3VwZXJjbGFzc19Mb2FkVVJMIjsKICAgICBjYXNlIE1l
c3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZToKICAgICAgICAg
cmV0dXJuICJUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZSI7Ci0gICAgY2FzZSBN
ZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VSZXBseToKLSAg
ICAgICAgcmV0dXJuICJUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVJlcGx5IjsK
ICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2Fn
ZVdpdGhDb25uZWN0aW9uOgogICAgICAgICByZXR1cm4gIlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0
QXN5bmNNZXNzYWdlV2l0aENvbm5lY3Rpb24iOwotICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RX
aXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aENvbm5lY3Rpb25SZXBseToKLSAgICAg
ICAgcmV0dXJuICJUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhDb25uZWN0
aW9uUmVwbHkiOwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0
QXN5bmNNZXNzYWdlV2l0aE11bHRpcGxlQXJndW1lbnRzOgogICAgICAgICByZXR1cm4gIlRlc3RX
aXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aE11bHRpcGxlQXJndW1lbnRzIjsKLSAg
ICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdp
dGhNdWx0aXBsZUFyZ3VtZW50c1JlcGx5OgotICAgICAgICByZXR1cm4gIlRlc3RXaXRoU3VwZXJj
bGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aE11bHRpcGxlQXJndW1lbnRzUmVwbHkiOwogICAgIGNh
c2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aE5v
QXJndW1lbnRzOgogICAgICAgICByZXR1cm4gIlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNN
ZXNzYWdlV2l0aE5vQXJndW1lbnRzIjsKLSAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1
cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhOb0FyZ3VtZW50c1JlcGx5OgotICAgICAgICBy
ZXR1cm4gIlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aE5vQXJndW1lbnRz
UmVwbHkiOwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0U3lu
Y01lc3NhZ2U6CiAgICAgICAgIHJldHVybiAiVGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RTeW5jTWVz
c2FnZSI7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RTeW5j
aHJvbm91c01lc3NhZ2U6CkBAIC0xNDAsMTQgKzEzMiwyMiBAQCBjb25zdCBjaGFyKiBkZXNjcmlw
dGlvbihNZXNzYWdlTmFtZSBuYW1lKQogICAgICAgICByZXR1cm4gIlRlc3RXaXRob3V0QXR0cmli
dXRlc19UZXN0UGFyYW1ldGVyQXR0cmlidXRlcyI7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVz
dFdpdGhvdXRBdHRyaWJ1dGVzX1RvdWNoRXZlbnQ6CiAgICAgICAgIHJldHVybiAiVGVzdFdpdGhv
dXRBdHRyaWJ1dGVzX1RvdWNoRXZlbnQiOwotICAgIGNhc2UgTWVzc2FnZU5hbWU6OldyYXBwZWRB
c3luY01lc3NhZ2VGb3JUZXN0aW5nOgotICAgICAgICByZXR1cm4gIklQQzo6V3JhcHBlZEFzeW5j
TWVzc2FnZUZvclRlc3RpbmciOwotICAgIGNhc2UgTWVzc2FnZU5hbWU6OlN5bmNNZXNzYWdlUmVw
bHk6Ci0gICAgICAgIHJldHVybiAiSVBDOjpTeW5jTWVzc2FnZVJlcGx5IjsKICAgICBjYXNlIE1l
c3NhZ2VOYW1lOjpJbml0aWFsaXplQ29ubmVjdGlvbjoKLSAgICAgICAgcmV0dXJuICJJUEM6Oklu
aXRpYWxpemVDb25uZWN0aW9uIjsKKyAgICAgICAgcmV0dXJuICJJbml0aWFsaXplQ29ubmVjdGlv
biI7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6TGVnYWN5U2Vzc2lvblN0YXRlOgotICAgICAgICBy
ZXR1cm4gIklQQzo6TGVnYWN5U2Vzc2lvblN0YXRlIjsKKyAgICAgICAgcmV0dXJuICJMZWdhY3lT
ZXNzaW9uU3RhdGUiOworICAgIGNhc2UgTWVzc2FnZU5hbWU6OlN5bmNNZXNzYWdlUmVwbHk6Cisg
ICAgICAgIHJldHVybiAiU3luY01lc3NhZ2VSZXBseSI7CisgICAgY2FzZSBNZXNzYWdlTmFtZTo6
V3JhcHBlZEFzeW5jTWVzc2FnZUZvclRlc3Rpbmc6CisgICAgICAgIHJldHVybiAiV3JhcHBlZEFz
eW5jTWVzc2FnZUZvclRlc3RpbmciOworICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoU3Vw
ZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlUmVwbHk6CisgICAgICAgIHJldHVybiAiVGVzdFdpdGhT
dXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VSZXBseSI7CisgICAgY2FzZSBNZXNzYWdlTmFtZTo6
VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoQ29ubmVjdGlvblJlcGx5Ogor
ICAgICAgICByZXR1cm4gIlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aENv
bm5lY3Rpb25SZXBseSI7CisgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNz
X1Rlc3RBc3luY01lc3NhZ2VXaXRoTXVsdGlwbGVBcmd1bWVudHNSZXBseToKKyAgICAgICAgcmV0
dXJuICJUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhNdWx0aXBsZUFyZ3Vt
ZW50c1JlcGx5IjsKKyAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVz
dEFzeW5jTWVzc2FnZVdpdGhOb0FyZ3VtZW50c1JlcGx5OgorICAgICAgICByZXR1cm4gIlRlc3RX
aXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aE5vQXJndW1lbnRzUmVwbHkiOwogICAg
IH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gIjxpbnZhbGlkIG1lc3Nh
Z2UgbmFtZT4iOwpAQCAtMTU2LDE0ICsxNTYsNiBAQCBjb25zdCBjaGFyKiBkZXNjcmlwdGlvbihN
ZXNzYWdlTmFtZSBuYW1lKQogUmVjZWl2ZXJOYW1lIHJlY2VpdmVyTmFtZShNZXNzYWdlTmFtZSBt
ZXNzYWdlTmFtZSkKIHsKICAgICBzd2l0Y2ggKG1lc3NhZ2VOYW1lKSB7Ci0gICAgY2FzZSBNZXNz
YWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX0xvYWRVUkw6Ci0gICAgY2FzZSBNZXNzYWdlTmFt
ZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2U6Ci0gICAgY2FzZSBNZXNzYWdl
TmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoQ29ubmVjdGlvbjoK
LSAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2Fn
ZVdpdGhNdWx0aXBsZUFyZ3VtZW50czoKLSAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1
cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhOb0FyZ3VtZW50czoKLSAgICBjYXNlIE1lc3Nh
Z2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdFN5bmNNZXNzYWdlOgotICAgIGNhc2UgTWVz
c2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0U3luY2hyb25vdXNNZXNzYWdlOgotICAg
ICAgICByZXR1cm4gUmVjZWl2ZXJOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3M7CiAgICAgY2FzZSBN
ZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9BZGRFdmVudDoKICAgICBjYXNlIE1l
c3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0Nsb3NlOgogICAgIGNhc2UgTWVzc2Fn
ZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfQ3JlYXRlUGx1Z2luOgpAQCAtMTg3LDYgKzE3
OSwxNCBAQCBSZWNlaXZlck5hbWUgcmVjZWl2ZXJOYW1lKE1lc3NhZ2VOYW1lIG1lc3NhZ2VOYW1l
KQogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfVGVzdFBhcmFt
ZXRlckF0dHJpYnV0ZXM6CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNl
aXZlcl9Ub3VjaEV2ZW50OgogICAgICAgICByZXR1cm4gUmVjZWl2ZXJOYW1lOjpUZXN0V2l0aExl
Z2FjeVJlY2VpdmVyOworICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19M
b2FkVVJMOgorICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5
bmNNZXNzYWdlOgorICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0
QXN5bmNNZXNzYWdlV2l0aENvbm5lY3Rpb246CisgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdp
dGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoTXVsdGlwbGVBcmd1bWVudHM6CisgICAg
Y2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRo
Tm9Bcmd1bWVudHM6CisgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rl
c3RTeW5jTWVzc2FnZToKKyAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3Nf
VGVzdFN5bmNocm9ub3VzTWVzc2FnZToKKyAgICAgICAgcmV0dXJuIFJlY2VpdmVyTmFtZTo6VGVz
dFdpdGhTdXBlcmNsYXNzOwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmli
dXRlc19BZGRFdmVudDoKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0
ZXNfQ2xvc2U6CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0Ny
ZWF0ZVBsdWdpbjoKQEAgLTIxMCwxNiArMjEwLDE2IEBAIFJlY2VpdmVyTmFtZSByZWNlaXZlck5h
bWUoTWVzc2FnZU5hbWUgbWVzc2FnZU5hbWUpCiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdp
dGhvdXRBdHRyaWJ1dGVzX1Rlc3RQYXJhbWV0ZXJBdHRyaWJ1dGVzOgogICAgIGNhc2UgTWVzc2Fn
ZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19Ub3VjaEV2ZW50OgogICAgICAgICByZXR1cm4g
UmVjZWl2ZXJOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXM7CisgICAgY2FzZSBNZXNzYWdlTmFt
ZTo6SW5pdGlhbGl6ZUNvbm5lY3Rpb246CisgICAgY2FzZSBNZXNzYWdlTmFtZTo6TGVnYWN5U2Vz
c2lvblN0YXRlOgorICAgIGNhc2UgTWVzc2FnZU5hbWU6OlN5bmNNZXNzYWdlUmVwbHk6CisgICAg
Y2FzZSBNZXNzYWdlTmFtZTo6V3JhcHBlZEFzeW5jTWVzc2FnZUZvclRlc3Rpbmc6CisgICAgICAg
IHJldHVybiBSZWNlaXZlck5hbWU6OklQQzsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0
aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVJlcGx5OgogICAgIGNhc2UgTWVzc2FnZU5hbWU6
OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aENvbm5lY3Rpb25SZXBseToK
ICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2Fn
ZVdpdGhNdWx0aXBsZUFyZ3VtZW50c1JlcGx5OgogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RX
aXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aE5vQXJndW1lbnRzUmVwbHk6CiAgICAg
ICAgIHJldHVybiBSZWNlaXZlck5hbWU6OkFzeW5jUmVwbHk7Ci0gICAgY2FzZSBNZXNzYWdlTmFt
ZTo6V3JhcHBlZEFzeW5jTWVzc2FnZUZvclRlc3Rpbmc6Ci0gICAgY2FzZSBNZXNzYWdlTmFtZTo6
U3luY01lc3NhZ2VSZXBseToKLSAgICBjYXNlIE1lc3NhZ2VOYW1lOjpJbml0aWFsaXplQ29ubmVj
dGlvbjoKLSAgICBjYXNlIE1lc3NhZ2VOYW1lOjpMZWdhY3lTZXNzaW9uU3RhdGU6Ci0gICAgICAg
IHJldHVybiBSZWNlaXZlck5hbWU6OklQQzsKICAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAgICAgcmV0dXJuIFJlY2VpdmVyTmFtZTo6SW52YWxpZDsKQEAgLTIyNywxNjQgKzIyNywx
NzQgQEAgUmVjZWl2ZXJOYW1lIHJlY2VpdmVyTmFtZShNZXNzYWdlTmFtZSBtZXNzYWdlTmFtZSkK
IAogYm9vbCBpc1ZhbGlkTWVzc2FnZU5hbWUoTWVzc2FnZU5hbWUgbWVzc2FnZU5hbWUpCiB7Ci0g
ICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFz
c19Mb2FkVVJMKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSNpZiBFTkFCTEUoVEVTVF9GRUFUVVJF
KQotICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVy
Y2xhc3NfVGVzdEFzeW5jTWVzc2FnZSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgaWYgKG1l
c3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5
bmNNZXNzYWdlUmVwbHkpCisjaWYgKEVOQUJMRShUT1VDSF9FVkVOVFMpICYmIChORVNURURfTUVT
U0FHRV9DT05ESVRJT04gJiYgU09NRV9PVEhFUl9NRVNTQUdFX0NPTkRJVElPTikpCisgICAgaWYg
KG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJf
QWRkRXZlbnQpCiAgICAgICAgIHJldHVybiB0cnVlOwogI2VuZGlmCi0jaWYgRU5BQkxFKFRFU1Rf
RkVBVFVSRSkKLSAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdp
dGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoTm9Bcmd1bWVudHMpCisgICAgaWYgKG1l
c3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfQ2xv
c2UpCiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1l
c3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhOb0FyZ3Vt
ZW50c1JlcGx5KQorICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0
V2l0aExlZ2FjeVJlY2VpdmVyX0NyZWF0ZVBsdWdpbikKICAgICAgICAgcmV0dXJuIHRydWU7Ci0j
ZW5kaWYKLSNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQotICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJ
UEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhN
dWx0aXBsZUFyZ3VtZW50cykKKyNpZiBFTkFCTEUoREVQUkVDQVRFRF9GRUFUVVJFKQorICAgIGlm
IChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVy
X0RlcHJlY2F0ZWRPcGVyYXRpb24pCiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIGlmIChtZXNz
YWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5j
TWVzc2FnZVdpdGhNdWx0aXBsZUFyZ3VtZW50c1JlcGx5KQorI2VuZGlmCisjaWYgUExBVEZPUk0o
TUFDKQorICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aExl
Z2FjeVJlY2VpdmVyX0RpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uKQogICAgICAgICByZXR1
cm4gdHJ1ZTsKICNlbmRpZgotI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCi0gICAgaWYgKG1lc3Nh
Z2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNN
ZXNzYWdlV2l0aENvbm5lY3Rpb24pCisgICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2Fn
ZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfRGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdl
TmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoQ29ubmVjdGlvblJl
cGx5KQorI2lmIEVOQUJMRShFWFBFUklNRU5UQUxfRkVBVFVSRSkKKyAgICBpZiAobWVzc2FnZU5h
bWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9FeHBlcmltZW50
YWxPcGVyYXRpb24pCiAgICAgICAgIHJldHVybiB0cnVlOwogI2VuZGlmCi0gICAgaWYgKG1lc3Nh
Z2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0U3luY01l
c3NhZ2UpCisgICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRo
TGVnYWN5UmVjZWl2ZXJfR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24pCiAgICAgICAgIHJldHVy
biB0cnVlOwotICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0
aFN1cGVyY2xhc3NfVGVzdFN5bmNocm9ub3VzTWVzc2FnZSkKKyAgICBpZiAobWVzc2FnZU5hbWUg
PT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9HZXRQbHVnaW5zKQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdl
TmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9Mb2FkVVJMKQorI2lmIFBMQVRGT1JNKE1BQykK
KyAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lS
ZWNlaXZlcl9JbnRlcnByZXRLZXlFdmVudCkKICAgICAgICAgcmV0dXJuIHRydWU7CisjZW5kaWYK
ICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1l
c3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0xvYWRTb21ldGhpbmcpCiAgICAgICAg
IHJldHVybiB0cnVlOwogI2VuZGlmCi0jaWYgKEVOQUJMRShUT1VDSF9FVkVOVFMpICYmIChORVNU
RURfTUVTU0FHRV9DT05ESVRJT04gfHwgU09NRV9PVEhFUl9NRVNTQUdFX0NPTkRJVElPTikpCi0g
ICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVj
ZWl2ZXJfVG91Y2hFdmVudCkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0jZW5kaWYKLSNpZiAoRU5B
QkxFKFRPVUNIX0VWRU5UUykgJiYgKE5FU1RFRF9NRVNTQUdFX0NPTkRJVElPTiAmJiBTT01FX09U
SEVSX01FU1NBR0VfQ09ORElUSU9OKSkKLSAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNz
YWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9BZGRFdmVudCkKLSAgICAgICAgcmV0dXJu
IHRydWU7Ci0jZW5kaWYKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIGlmIChtZXNzYWdl
TmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0xvYWRTb21l
dGhpbmdFbHNlKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgotICAgIGlmIChtZXNzYWdl
TmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0RpZFJlY2Vp
dmVQb2xpY3lEZWNpc2lvbikKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgaWYgKG1lc3NhZ2VO
YW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfQ2xvc2UpCisg
ICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVj
ZWl2ZXJfTG9hZFVSTCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgaWYgKG1lc3NhZ2VOYW1l
ID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfUHJlZmVyZW5jZXNE
aWRDaGFuZ2UpCiAgICAgICAgIHJldHVybiB0cnVlOworICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJ
UEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1J1bkphdmFTY3JpcHRBbGVy
dCkKKyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVz
c2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfU2VuZERvdWJsZUFuZEZsb2F0KQogICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFt
ZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9TZW5kSW50cykKICAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5
UmVjZWl2ZXJfQ3JlYXRlUGx1Z2luKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBpZiAobWVz
c2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9SdW5K
YXZhU2NyaXB0QWxlcnQpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIGlmIChtZXNzYWdlTmFt
ZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0dldFBsdWdpbnMp
CisgICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5
UmVjZWl2ZXJfU2V0VmlkZW9MYXllcklEKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBpZiAo
bWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9H
ZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbikKKyAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpN
ZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9UZW1wbGF0ZVRlc3QpCiAgICAgICAg
IHJldHVybiB0cnVlOwogICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpU
ZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1Rlc3RNdWx0aXBsZUF0dHJpYnV0ZXMpCiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0
V2l0aExlZ2FjeVJlY2VpdmVyX1Rlc3RQYXJhbWV0ZXJBdHRyaWJ1dGVzKQogICAgICAgICByZXR1
cm4gdHJ1ZTsKLSAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdp
dGhMZWdhY3lSZWNlaXZlcl9UZW1wbGF0ZVRlc3QpCisjaWYgKEVOQUJMRShUT1VDSF9FVkVOVFMp
ICYmIChORVNURURfTUVTU0FHRV9DT05ESVRJT04gfHwgU09NRV9PVEhFUl9NRVNTQUdFX0NPTkRJ
VElPTikpCisgICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRo
TGVnYWN5UmVjZWl2ZXJfVG91Y2hFdmVudCkKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgaWYg
KG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJf
U2V0VmlkZW9MYXllcklEKQorI2VuZGlmCisgICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVz
c2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19Mb2FkVVJMKQogICAgICAgICByZXR1cm4gdHJ1
ZTsKLSNpZiBQTEFURk9STShNQUMpCi0gICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2Fn
ZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfRGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rp
b24pCisjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKKyAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBD
OjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2UpCiAgICAg
ICAgIHJldHVybiB0cnVlOwogI2VuZGlmCi0jaWYgUExBVEZPUk0oTUFDKQotICAgIGlmIChtZXNz
YWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0ludGVy
cHJldEtleUV2ZW50KQorI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCisgICAgaWYgKG1lc3NhZ2VO
YW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNz
YWdlV2l0aENvbm5lY3Rpb24pCiAgICAgICAgIHJldHVybiB0cnVlOwogI2VuZGlmCisjaWYgRU5B
QkxFKFRFU1RfRkVBVFVSRSkKKyAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFt
ZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoTXVsdGlwbGVBcmd1bWVu
dHMpCisgICAgICAgIHJldHVybiB0cnVlOworI2VuZGlmCisjaWYgRU5BQkxFKFRFU1RfRkVBVFVS
RSkKKyAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBl
cmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoTm9Bcmd1bWVudHMpCisgICAgICAgIHJldHVybiB0
cnVlOworI2VuZGlmCisgICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRl
c3RXaXRoU3VwZXJjbGFzc19UZXN0U3luY01lc3NhZ2UpCisgICAgICAgIHJldHVybiB0cnVlOwor
ICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xh
c3NfVGVzdFN5bmNocm9ub3VzTWVzc2FnZSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisjaWYgKEVO
QUJMRShUT1VDSF9FVkVOVFMpICYmIChORVNURURfTUVTU0FHRV9DT05ESVRJT04gJiYgU09NRV9P
VEhFUl9NRVNTQUdFX0NPTkRJVElPTikpCisgICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVz
c2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19BZGRFdmVudCkKKyAgICAgICAgcmV0dXJu
IHRydWU7CisjZW5kaWYKKyAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6
VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0Nsb3NlKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBp
ZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVz
X0NyZWF0ZVBsdWdpbikKKyAgICAgICAgcmV0dXJuIHRydWU7CiAjaWYgRU5BQkxFKERFUFJFQ0FU
RURfRkVBVFVSRSkKLSAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVz
dFdpdGhMZWdhY3lSZWNlaXZlcl9EZXByZWNhdGVkT3BlcmF0aW9uKQorICAgIGlmIChtZXNzYWdl
TmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfRGVwcmVjYXRl
ZE9wZXJhdGlvbikKICAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKLSNpZiBFTkFCTEUoRVhQ
RVJJTUVOVEFMX0ZFQVRVUkUpCi0gICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5h
bWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfRXhwZXJpbWVudGFsT3BlcmF0aW9uKQorI2lmIFBM
QVRGT1JNKE1BQykKKyAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVz
dFdpdGhvdXRBdHRyaWJ1dGVzX0RpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uKQogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICNlbmRpZgotICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3Nh
Z2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfTG9hZFVSTCkKKyAgICBpZiAobWVzc2FnZU5h
bWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0RpZFJlY2VpdmVQ
b2xpY3lEZWNpc2lvbikKICAgICAgICAgcmV0dXJuIHRydWU7Ci0jaWYgRU5BQkxFKFRPVUNIX0VW
RU5UUykKLSAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhv
dXRBdHRyaWJ1dGVzX0xvYWRTb21ldGhpbmcpCisjaWYgRU5BQkxFKEVYUEVSSU1FTlRBTF9GRUFU
VVJFKQorICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91
dEF0dHJpYnV0ZXNfRXhwZXJpbWVudGFsT3BlcmF0aW9uKQogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICNlbmRpZgotI2lmIChFTkFCTEUoVE9VQ0hfRVZFTlRTKSAmJiAoTkVTVEVEX01FU1NBR0VfQ09O
RElUSU9OIHx8IFNPTUVfT1RIRVJfTUVTU0FHRV9DT05ESVRJT04pKQotICAgIGlmIChtZXNzYWdl
TmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfVG91Y2hFdmVu
dCkKKyAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRB
dHRyaWJ1dGVzX0dldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKQorICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRB
dHRyaWJ1dGVzX0dldFBsdWdpbnMpCisgICAgICAgIHJldHVybiB0cnVlOworI2lmIFBMQVRGT1JN
KE1BQykKKyAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhv
dXRBdHRyaWJ1dGVzX0ludGVycHJldEtleUV2ZW50KQogICAgICAgICByZXR1cm4gdHJ1ZTsKICNl
bmRpZgotI2lmIChFTkFCTEUoVE9VQ0hfRVZFTlRTKSAmJiAoTkVTVEVEX01FU1NBR0VfQ09ORElU
SU9OICYmIFNPTUVfT1RIRVJfTUVTU0FHRV9DT05ESVRJT04pKQotICAgIGlmIChtZXNzYWdlTmFt
ZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfQWRkRXZlbnQpCisj
aWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNz
YWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0xvYWRTb21ldGhpbmcpCiAgICAgICAgIHJl
dHVybiB0cnVlOwogI2VuZGlmCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICBpZiAobWVz
c2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0xvYWRT
b21ldGhpbmdFbHNlKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgotICAgIGlmIChtZXNz
YWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfRGlkUmVj
ZWl2ZVBvbGljeURlY2lzaW9uKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBpZiAobWVzc2Fn
ZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0Nsb3NlKQor
ICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJp
YnV0ZXNfTG9hZFVSTCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgaWYgKG1lc3NhZ2VOYW1l
ID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19QcmVmZXJlbmNlc0Rp
ZENoYW5nZSkKICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKG1lc3NhZ2VOYW1lID09IElQ
Qzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19SdW5KYXZhU2NyaXB0QWxlcnQp
CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3Nh
Z2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfU2VuZERvdWJsZUFuZEZsb2F0KQogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6
VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1NlbmRJbnRzKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1
dGVzX0NyZWF0ZVBsdWdpbikKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgaWYgKG1lc3NhZ2VO
YW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19SdW5KYXZhU2Ny
aXB0QWxlcnQpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJ
UEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfR2V0UGx1Z2lucykKKyAgICBp
ZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVz
X1NldFZpZGVvTGF5ZXJJRCkKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgaWYgKG1lc3NhZ2VO
YW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19HZXRQbHVnaW5Q
cm9jZXNzQ29ubmVjdGlvbikKKyAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFt
ZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1RlbXBsYXRlVGVzdCkKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0
QXR0cmlidXRlc19UZXN0TXVsdGlwbGVBdHRyaWJ1dGVzKQogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRy
aWJ1dGVzX1Rlc3RQYXJhbWV0ZXJBdHRyaWJ1dGVzKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1
dGVzX1RlbXBsYXRlVGVzdCkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgaWYgKG1lc3NhZ2VO
YW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19TZXRWaWRlb0xh
eWVySUQpCi0gICAgICAgIHJldHVybiB0cnVlOwotI2lmIFBMQVRGT1JNKE1BQykKLSAgICBpZiAo
bWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0Rp
ZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uKQorI2lmIChFTkFCTEUoVE9VQ0hfRVZFTlRTKSAm
JiAoTkVTVEVEX01FU1NBR0VfQ09ORElUSU9OIHx8IFNPTUVfT1RIRVJfTUVTU0FHRV9DT05ESVRJ
T04pKQorICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91
dEF0dHJpYnV0ZXNfVG91Y2hFdmVudCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKLSNp
ZiBQTEFURk9STShNQUMpCi0gICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6
OlRlc3RXaXRob3V0QXR0cmlidXRlc19JbnRlcnByZXRLZXlFdmVudCkKKyNpZiBQTEFURk9STShD
T0NPQSkKKyAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6SW5pdGlhbGl6
ZUNvbm5lY3Rpb24pCiAgICAgICAgIHJldHVybiB0cnVlOwogI2VuZGlmCi0jaWYgRU5BQkxFKERF
UFJFQ0FURURfRkVBVFVSRSkKLSAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFt
ZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0RlcHJlY2F0ZWRPcGVyYXRpb24pCisgICAgaWYgKG1l
c3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OkxlZ2FjeVNlc3Npb25TdGF0ZSkKICAgICAg
ICAgcmV0dXJuIHRydWU7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoRVhQRVJJTUVOVEFMX0ZFQVRVUkUp
Ci0gICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0
cmlidXRlc19FeHBlcmltZW50YWxPcGVyYXRpb24pCisgICAgaWYgKG1lc3NhZ2VOYW1lID09IElQ
Qzo6TWVzc2FnZU5hbWU6OlN5bmNNZXNzYWdlUmVwbHkpCiAgICAgICAgIHJldHVybiB0cnVlOwot
I2VuZGlmCiAgICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OldyYXBwZWRB
c3luY01lc3NhZ2VGb3JUZXN0aW5nKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBpZiAobWVz
c2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6U3luY01lc3NhZ2VSZXBseSkKKyNpZiBFTkFC
TEUoVEVTVF9GRUFUVVJFKQorICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1l
OjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVJlcGx5KQogICAgICAgICByZXR1
cm4gdHJ1ZTsKLSAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6SW5pdGlh
bGl6ZUNvbm5lY3Rpb24pCisjZW5kaWYKKyNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQorICAgIGlm
IChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVz
dEFzeW5jTWVzc2FnZVdpdGhDb25uZWN0aW9uUmVwbHkpCiAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpMZWdhY3lTZXNzaW9uU3Rh
dGUpCisjZW5kaWYKKyNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQorICAgIGlmIChtZXNzYWdlTmFt
ZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2Fn
ZVdpdGhNdWx0aXBsZUFyZ3VtZW50c1JlcGx5KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyNlbmRp
ZgorI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCisgICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6
TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aE5vQXJn
dW1lbnRzUmVwbHkpCiAgICAgICAgIHJldHVybiB0cnVlOworI2VuZGlmCiAgICAgcmV0dXJuIGZh
bHNlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0
cy9NZXNzYWdlTmFtZXMuaCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvTWVz
c2FnZU5hbWVzLmgKaW5kZXggZjNiOTlkNjdlY2U2OThhOGE4NGY1OTU0ZDllMjYyNDAxZjI0NmE4
Ny4uZjZkMWQxNzhkODRiNGUwMTEwMGE2NmFlMzk2ZjA1ZTJlOWVkMzFjZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9NZXNzYWdlTmFtZXMuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL01lc3NhZ2VOYW1lcy5oCkBAIC0yOSw4
ICsyOSw4IEBACiBuYW1lc3BhY2UgSVBDIHsKIAogZW51bSBjbGFzcyBSZWNlaXZlck5hbWUgOiB1
aW50OF90IHsKLSAgICBUZXN0V2l0aFN1cGVyY2xhc3MgPSAxCi0gICAgLCBUZXN0V2l0aExlZ2Fj
eVJlY2VpdmVyID0gMgorICAgIFRlc3RXaXRoTGVnYWN5UmVjZWl2ZXIgPSAxCisgICAgLCBUZXN0
V2l0aFN1cGVyY2xhc3MgPSAyCiAgICAgLCBUZXN0V2l0aG91dEF0dHJpYnV0ZXMgPSAzCiAgICAg
LCBJUEMgPSA0CiAgICAgLCBBc3luY1JlcGx5ID0gNQpAQCAtNjIsMTMgKzYyLDkgQEAgZW51bSBj
bGFzcyBNZXNzYWdlTmFtZSA6IHVpbnQxNl90IHsKICAgICAsIFRlc3RXaXRoTGVnYWN5UmVjZWl2
ZXJfVG91Y2hFdmVudAogICAgICwgVGVzdFdpdGhTdXBlcmNsYXNzX0xvYWRVUkwKICAgICAsIFRl
c3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlCi0gICAgLCBUZXN0V2l0aFN1cGVyY2xh
c3NfVGVzdEFzeW5jTWVzc2FnZVJlcGx5CiAgICAgLCBUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFz
eW5jTWVzc2FnZVdpdGhDb25uZWN0aW9uCi0gICAgLCBUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFz
eW5jTWVzc2FnZVdpdGhDb25uZWN0aW9uUmVwbHkKICAgICAsIFRlc3RXaXRoU3VwZXJjbGFzc19U
ZXN0QXN5bmNNZXNzYWdlV2l0aE11bHRpcGxlQXJndW1lbnRzCi0gICAgLCBUZXN0V2l0aFN1cGVy
Y2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhNdWx0aXBsZUFyZ3VtZW50c1JlcGx5CiAgICAgLCBU
ZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhOb0FyZ3VtZW50cwotICAgICwg
VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoTm9Bcmd1bWVudHNSZXBseQog
ICAgICwgVGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RTeW5jTWVzc2FnZQogICAgICwgVGVzdFdpdGhT
dXBlcmNsYXNzX1Rlc3RTeW5jaHJvbm91c01lc3NhZ2UKICAgICAsIFRlc3RXaXRob3V0QXR0cmli
dXRlc19BZGRFdmVudApAQCAtOTMsMTEgKzg5LDE1IEBAIGVudW0gY2xhc3MgTWVzc2FnZU5hbWUg
OiB1aW50MTZfdCB7CiAgICAgLCBUZXN0V2l0aG91dEF0dHJpYnV0ZXNfVGVzdE11bHRpcGxlQXR0
cmlidXRlcwogICAgICwgVGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1Rlc3RQYXJhbWV0ZXJBdHRyaWJ1
dGVzCiAgICAgLCBUZXN0V2l0aG91dEF0dHJpYnV0ZXNfVG91Y2hFdmVudAotICAgICwgV3JhcHBl
ZEFzeW5jTWVzc2FnZUZvclRlc3RpbmcKLSAgICAsIFN5bmNNZXNzYWdlUmVwbHkKICAgICAsIElu
aXRpYWxpemVDb25uZWN0aW9uCiAgICAgLCBMZWdhY3lTZXNzaW9uU3RhdGUKLSAgICAsIExhc3Qg
PSBMZWdhY3lTZXNzaW9uU3RhdGUKKyAgICAsIFN5bmNNZXNzYWdlUmVwbHkKKyAgICAsIFdyYXBw
ZWRBc3luY01lc3NhZ2VGb3JUZXN0aW5nCisgICAgLCBUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFz
eW5jTWVzc2FnZVJlcGx5CisgICAgLCBUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2Fn
ZVdpdGhDb25uZWN0aW9uUmVwbHkKKyAgICAsIFRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNN
ZXNzYWdlV2l0aE11bHRpcGxlQXJndW1lbnRzUmVwbHkKKyAgICAsIFRlc3RXaXRoU3VwZXJjbGFz
c19UZXN0QXN5bmNNZXNzYWdlV2l0aE5vQXJndW1lbnRzUmVwbHkKKyAgICAsIExhc3QgPSBUZXN0
V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhOb0FyZ3VtZW50c1JlcGx5CiB9Owog
CiBSZWNlaXZlck5hbWUgcmVjZWl2ZXJOYW1lKE1lc3NhZ2VOYW1lKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417170</attachid>
            <date>2021-01-07 01:52:53 -0800</date>
            <delta_ts>2021-01-07 09:04:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220318-20210107115250.patch</filename>
            <type>text/plain</type>
            <size>82967</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY4Y2ZmMWM1ZjJhMDIyZWNj
Nzg2MTg0YzRhZjMxZDg0ZGE4MzhkN2EuLjUyMzE3M2NkMjZiZjg4Yzk5MDIzNzUwYTI5MjExZTlj
MGE5YjgxN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMjEtMDEtMDUgIEtpbW1vIEtp
bm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBXZWJLaXQgSVBDIGJ1aWx0
aW4gbWVzc2FnZXMgc2hvdWxkIGJlIHBhcnQgb2YgdGhlIG1vZGVsCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjAzMTgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgSVBDIGFuZCBBc3luY1JlcGx5IG1l
c3NhZ2UgcmVjZWl2ZXJzIHRvIHRoZSBJUEMgbW9kZWwKKyAgICAgICAgc28gdGhhdCB0aGVpciBt
ZXNzYWdlcyBjYW4gYmUgcGFydCBvZiB0aGUgZ2VuZXJhdG9yIGR5bmFtaWMgbG9naWMgaW5zdGVh
ZCBvZgorICAgICAgICBiZWluZyBwYXJ0IG9mIHRoZSBzdGF0aWMgdGV4dHVhbCB0ZW1wbGF0ZXMu
CisgICAgICAgIAorICAgICAgICBJUEMgcmVjZWl2ZXIgaXMgYSBidWlsdC1pbiBtZXNzYWdlIHJl
Y2VpdmVyIHRoYXQgaGFzIGZldyBhc3luYyBtZXNzYWdlcy4KKworICAgICAgICBBc3luY1JlcGx5
IHJlY2VpdmVyIGlzIGEgYnVpbHQtaW4gbWVzc2FnZSByZWNlaXZlciB0aGF0IGhhcyBvbmUgYXN5
bmMgbWVzc2FnZQorICAgICAgICBmb3IgZWFjaCBtZXNzYWdlIGRlY2xhcmVkIGFzICdBc3luYycg
aW4gYW55IHJlY2VpdmVyLgorCisgICAgICAgIFRoaXMgaGVscHMgdG8gcmVmaW5lIGZlYXR1cmVz
IHN1Y2ggYXMgImlzIG1lc3NhZ2UgYXN5bmNocm9ub3VzIiBtb3JlIGVhc2lseS4KKworICAgICAg
ICBBZGRzIG5ldyB0ZXN0IGNhc2UgVGVzdFdpdGhJZk1lc3NhZ2UgdG8gY2hlY2sgYSBjYXNlIHRo
YXQgd2VudCB3cm9uZyB3aGVuCisgICAgICAgIG1ha2luZyB0aGUgY2hhbmdlLgorCisgICAgICAg
IE1vdmVzIHBhcnNpbmcgdGVzdHMgdG8gcGFyc2VyX3VuaXR0ZXN0LnB5IHNvIHRoYXQgVGVzdFdp
dGhJZk1lc3NhZ2UgZG9lcyBub3QKKyAgICAgICAgbmVlZCB0byBiZSBhZGRlZCB0byB0aGUgcGFy
c2luZyB0ZXN0cy4gVGhlIHNhaWQgdGVzdCBpcyBub3QgaW50ZW5kZWQgdG8gZXhlcmNpc2VzCisg
ICAgICAgIGFueXRoaW5nIHBhcnRpY3VsYXIgaW4gdGhlIHBhcnNpbmcuCisKKyAgICAgICAgQWRk
cyB0ZXN0IGxvZ2ljIGZvciBhc3NlcnRpbmcgTWVzc2FnZU5hbWVzLntoLGNwcH0gYW5kIE1lc3Nh
Z2VBcmd1bWVudERlc2NyaXB0aW9ucy5jcHAKKyAgICAgICAgYXJlIGFzIGV4cGVjdGVkLgorCisg
ICAgICAgICogU2NyaXB0cy9nZW5lcmF0ZS1tZXNzYWdlLXJlY2VpdmVyLnB5OgorICAgICAgICAo
bWFpbik6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXQvbW9kZWwucHk6CisgICAgICAgIChjaGVja19nbG9iYWxfbW9kZWxfaW5w
dXRzKToKKyAgICAgICAgKGdlbmVyYXRlX2dsb2JhbF9tb2RlbCk6CisgICAgICAgICogU2NyaXB0
cy93ZWJraXQvbW9kZWxfdW5pdHRlc3QucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvdGVz
dHMvTWVzc2FnZU5hbWVzLmNwcDoKKyAgICAgICAgKElQQzo6ZGVzY3JpcHRpb24pOgorICAgICAg
ICAoSVBDOjpyZWNlaXZlck5hbWUpOgorICAgICAgICAoSVBDOjppc1ZhbGlkTWVzc2FnZU5hbWUp
OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L3Rlc3RzL01lc3NhZ2VOYW1lcy5oOgorCiAyMDIx
LTAxLTA0ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CiAKICAgICAgICAg
V2ViS2l0IElQQyBnZW5lcmF0b3IgdGVzdHMgaGF2ZSBkdXBsaWNhdGUgcmVjZWl2ZXIgbmFtZXMs
IGxpbWl0aW5nIHRoZSBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
Y3JpcHRzL2dlbmVyYXRlLW1lc3NhZ2UtcmVjZWl2ZXIucHkgYi9Tb3VyY2UvV2ViS2l0L1Njcmlw
dHMvZ2VuZXJhdGUtbWVzc2FnZS1yZWNlaXZlci5weQppbmRleCBhMWJhYWNhMDVjNGQwMjBjNmU5
OTNhNmZiYWMxNjEwMTI1MGMwMjBlLi4zY2IzNjYxYmNmYTcwNTY1ODc3ZTE3ZTliYjgzMWZlZDUz
NzVkNDE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvZ2VuZXJhdGUtbWVzc2Fn
ZS1yZWNlaXZlci5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvZ2VuZXJhdGUtbWVzc2Fn
ZS1yZWNlaXZlci5weQpAQCAtNTQsMTMgKzU0LDE3IEBAIGRlZiBtYWluKGFyZ3YpOgogICAgICAg
ICAgICAgc3lzLnN0ZGVyci53cml0ZSgiRXJyb3I6ICVzIGRlZmluZWQgaW4gZmlsZSAlcy8lcy5t
ZXNzYWdlcy5pbiBpbnN0ZWFkIG9mICVzLm1lc3NhZ2VzLmluXG4iICUgKHJlY2VpdmVyLm5hbWUs
IGJhc2VfZGlyLCBwYXJhbWV0ZXIsIHJlY2VpdmVyLm5hbWUpKQogICAgICAgICAgICAgc3lzLmV4
aXQoMSkKIAotICAgIGVycm9ycyA9IHdlYmtpdC5tb2RlbC5jaGVja19nbG9iYWxfbW9kZWwocmVj
ZWl2ZXJzKQorICAgIGVycm9ycyA9IHdlYmtpdC5tb2RlbC5jaGVja19nbG9iYWxfbW9kZWxfaW5w
dXRzKHJlY2VpdmVycykKICAgICBpZiBlcnJvcnM6CiAgICAgICAgIGZvciBlIGluIGVycm9yczoK
ICAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoIkVycm9yOiAlc1xuIiAlIGUpCiAgICAgICAg
IHN5cy5leGl0KDEpCiAKKyAgICByZWNlaXZlcnMgPSB3ZWJraXQubW9kZWwuZ2VuZXJhdGVfZ2xv
YmFsX21vZGVsKHJlY2VpdmVycykKKwogICAgIGZvciByZWNlaXZlciBpbiByZWNlaXZlcnM6Cisg
ICAgICAgIGlmIHJlY2VpdmVyLmhhc19hdHRyaWJ1dGUod2Via2l0Lm1vZGVsLkJVSUxUSU5fQVRU
UklCVVRFKToKKyAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgIHdpdGggb3BlbignJXNNZXNz
YWdlUmVjZWl2ZXIuY3BwJyAlIHJlY2VpdmVyLm5hbWUsICJ3KyIpIGFzIGltcGxlbWVudGF0aW9u
X291dHB1dDoKICAgICAgICAgICAgIGltcGxlbWVudGF0aW9uX291dHB1dC53cml0ZSh3ZWJraXQu
bWVzc2FnZXMuZ2VuZXJhdGVfbWVzc2FnZV9oYW5kbGVyKHJlY2VpdmVyKSkKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJL
aXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggNDM3MDM3NTZhNTZiMDg1ZGRjMTE5
M2FiOWU2ZjcwNWExMjUzNjRmYi4uY2M2MmJhMzVlNTQ3Y2U5YTQ4MWY3MmNhZDA1ZGMwYjg0ZTZl
NDNmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5w
eQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0yNSw2
ICsyNSw3IEBAIGltcG9ydCByZQogaW1wb3J0IHN5cwogCiBmcm9tIHdlYmtpdCBpbXBvcnQgcGFy
c2VyCitmcm9tIHdlYmtpdC5tb2RlbCBpbXBvcnQgQlVJTFRJTl9BVFRSSUJVVEUsIEFTWU5DX0FU
VFJJQlVURQogCiBfbGljZW5zZV9oZWFkZXIgPSAiIiIvKgogICogQ29weXJpZ2h0IChDKSAyMDEw
LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpAQCAtNTgsNyArNTksNTEgQEAg
V0FOVFNfQVNZTkNfRElTUEFUQ0hfTUVTU0FHRV9BVFRSSUJVVEUgPSAnV2FudHNBc3luY0Rpc3Bh
dGNoTWVzc2FnZScKIExFR0FDWV9SRUNFSVZFUl9BVFRSSUJVVEUgPSAnTGVnYWN5UmVjZWl2ZXIn
CiBOT1RfUkVGQ09VTlRFRF9SRUNFSVZFUl9BVFRSSUJVVEUgPSAnTm90UmVmQ291bnRlZCcKIFNZ
TkNIUk9OT1VTX0FUVFJJQlVURSA9ICdTeW5jaHJvbm91cycKLUFTWU5DX0FUVFJJQlVURSA9ICdB
c3luYycKKworCitkZWYgcmVjZWl2ZXJfZW51bWVyYXRvcl9vcmRlcl9rZXkocmVjZWl2ZXJfbmFt
ZSk6CisgICAgaWYgcmVjZWl2ZXJfbmFtZSA9PSAnSVBDJzoKKyAgICAgICAgcmV0dXJuIDEKKyAg
ICBlbGlmIHJlY2VpdmVyX25hbWUgPT0gJ0FzeW5jUmVwbHknOgorICAgICAgICByZXR1cm4gMgor
ICAgIHJldHVybiAwCisKKworY2xhc3MgTWVzc2FnZUVudW1lcmF0b3Iob2JqZWN0KToKKworICAg
IGRlZiBfX2luaXRfXyhzZWxmLCByZWNlaXZlciwgbWVzc2FnZXMpOgorICAgICAgICBzZWxmLnJl
Y2VpdmVyID0gcmVjZWl2ZXIKKyAgICAgICAgc2VsZi5tZXNzYWdlcyA9IG1lc3NhZ2VzCisKKyAg
ICBkZWYgX19zdHJfXyhzZWxmKToKKyAgICAgICAgaWYgc2VsZi5tZXNzYWdlc1swXS5oYXNfYXR0
cmlidXRlKEJVSUxUSU5fQVRUUklCVVRFKToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLm1lc3Nh
Z2VzWzBdLm5hbWUKKyAgICAgICAgaWYgc2VsZi5yZWNlaXZlci5uYW1lID09ICdBc3luY1JlcGx5
JzoKKyAgICAgICAgICAgIHJldHVybiBzZWxmLm1lc3NhZ2VzWzBdLm5hbWUKKyAgICAgICAgcmV0
dXJuICclc18lcycgJSAoc2VsZi5yZWNlaXZlci5uYW1lLCBzZWxmLm1lc3NhZ2VzWzBdLm5hbWUp
CisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgc29ydF9rZXkoY2xzLCBvYmopOgorICAgICAg
ICByZXR1cm4gcmVjZWl2ZXJfZW51bWVyYXRvcl9vcmRlcl9rZXkob2JqLnJlY2VpdmVyLm5hbWUp
LCBzdHIob2JqKQorCisKK2RlZiBnZXRfbWVzc2FnZV9lbnVtZXJhdG9ycyhyZWNlaXZlcnMpOgor
ICAgIGVudW1lcmF0b3JzID0gW10KKyAgICBmb3IgcmVjZWl2ZXIgaW4gcmVjZWl2ZXJzOgorICAg
ICAgICByZWNlaXZlcl9lbnVtZXJhdG9ycyA9IHt9CisgICAgICAgIGZvciBtZXNzYWdlIGluIHJl
Y2VpdmVyLm1lc3NhZ2VzOgorICAgICAgICAgICAgaWYgbWVzc2FnZS5uYW1lIG5vdCBpbiByZWNl
aXZlcl9lbnVtZXJhdG9yczoKKyAgICAgICAgICAgICAgICByZWNlaXZlcl9lbnVtZXJhdG9yc1tt
ZXNzYWdlLm5hbWVdID0gTWVzc2FnZUVudW1lcmF0b3IocmVjZWl2ZXIsIG1lc3NhZ2VzPVttZXNz
YWdlXSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmVjZWl2ZXJfZW51bWVy
YXRvcnNbbWVzc2FnZS5uYW1lXS5tZXNzYWdlcy5hcHBlbmQobWVzc2FnZSkKKyAgICAgICAgZW51
bWVyYXRvcnMgKz0gcmVjZWl2ZXJfZW51bWVyYXRvcnMudmFsdWVzKCkKKyAgICBhc3NlcnQobGVu
KGVudW1lcmF0b3JzKSA9PSBsZW4oc2V0KGVudW1lcmF0b3JzKSkpCisgICAgcmV0dXJuIHNvcnRl
ZChlbnVtZXJhdG9ycywga2V5PU1lc3NhZ2VFbnVtZXJhdG9yLnNvcnRfa2V5KQorCisKK2RlZiBn
ZXRfcmVjZWl2ZXJfZW51bWVyYXRvcnMocmVjZWl2ZXJzKToKKyAgICByZXR1cm4gc29ydGVkKChy
Lm5hbWUgZm9yIHIgaW4gcmVjZWl2ZXJzKSwga2V5PWxhbWJkYSBuOiAocmVjZWl2ZXJfZW51bWVy
YXRvcl9vcmRlcl9rZXkobiksIG4pKQorCiAKIGRlZiBtZXNzYWdlc19oZWFkZXJfZmlsZW5hbWUo
cmVjZWl2ZXIpOgogICAgIHJldHVybiAnJXNNZXNzYWdlcy5oJyAlIHJlY2VpdmVyLm5hbWUKQEAg
LTkxMSw0NSArOTU2LDE5IEBAIGRlZiBnZW5lcmF0ZV9tZXNzYWdlX25hbWVzX2hlYWRlcihyZWNl
aXZlcnMpOgogICAgIHJlc3VsdC5hcHBlbmQoJ25hbWVzcGFjZSBJUEMge1xuJykKICAgICByZXN1
bHQuYXBwZW5kKCdcbicpCiAgICAgcmVzdWx0LmFwcGVuZCgnZW51bSBjbGFzcyBSZWNlaXZlck5h
bWUgOiB1aW50OF90IHsnKQotCi0gICAgZW51bV92YWx1ZSA9IDEKLSAgICBmaXJzdF9yZWNlaXZl
ciA9IFRydWUKLSAgICBmb3IgcmVjZWl2ZXIgaW4gcmVjZWl2ZXJzOgotICAgICAgICByZXN1bHQu
YXBwZW5kKCdcbicpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICAnKQotICAgICAgICBpZiBu
b3QgZmlyc3RfcmVjZWl2ZXI6Ci0gICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcsICcpCi0gICAg
ICAgIGZpcnN0X3JlY2VpdmVyID0gRmFsc2UKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgnJXMgPSAl
ZCcgJSAocmVjZWl2ZXIubmFtZSwgZW51bV92YWx1ZSkpCi0gICAgICAgIGVudW1fdmFsdWUgPSBl
bnVtX3ZhbHVlICsgMQotICAgIHJlc3VsdC5hcHBlbmQoJ1xuICAgICwgSVBDID0gJWQnICUgZW51
bV92YWx1ZSkKLSAgICBlbnVtX3ZhbHVlID0gZW51bV92YWx1ZSArIDEKLSAgICByZXN1bHQuYXBw
ZW5kKCdcbiAgICAsIEFzeW5jUmVwbHkgPSAlZCcgJSBlbnVtX3ZhbHVlKQotICAgIGVudW1fdmFs
dWUgPSBlbnVtX3ZhbHVlICsgMQotICAgIHJlc3VsdC5hcHBlbmQoJ1xuICAgICwgSW52YWxpZCA9
ICVkJyAlIGVudW1fdmFsdWUpCisgICAgcmVzdWx0LmFwcGVuZCgnXG4gICAgJykKKyAgICBlbnVt
cyA9IFsnJXMgPSAlZCcgJSAoZSwgdikgZm9yIHYsIGUgaW4gZW51bWVyYXRlKGdldF9yZWNlaXZl
cl9lbnVtZXJhdG9ycyhyZWNlaXZlcnMpLCAxKV0KKyAgICByZXN1bHQuYXBwZW5kKCdcbiAgICAs
ICcuam9pbihlbnVtcykpCisgICAgcmVzdWx0LmFwcGVuZCgnXG4gICAgLCBJbnZhbGlkID0gJWQn
ICUgKGxlbihlbnVtcykgKyAxKSkKICAgICByZXN1bHQuYXBwZW5kKCdcbn07XG4nKQogICAgIHJl
c3VsdC5hcHBlbmQoJ1xuJykKLSAgICByZXN1bHQuYXBwZW5kKCdlbnVtIGNsYXNzIE1lc3NhZ2VO
YW1lIDogdWludDE2X3QgeycpCiAKLSAgICBlbnVtX3ZhbHVlcyA9IHNldCgpCi0gICAgZm9yIHJl
Y2VpdmVyIGluIHJlY2VpdmVyczoKLSAgICAgICAgZm9yIG1lc3NhZ2UgaW4gcmVjZWl2ZXIubWVz
c2FnZXM6Ci0gICAgICAgICAgICBlbnVtX3ZhbHVlcy5hZGQoJyVzXyVzJyAlIChyZWNlaXZlci5u
YW1lLCBtZXNzYWdlLm5hbWUpKQotICAgICAgICAgICAgaWYgbWVzc2FnZS5oYXNfYXR0cmlidXRl
KEFTWU5DX0FUVFJJQlVURSk6Ci0gICAgICAgICAgICAgICAgZW51bV92YWx1ZXMuYWRkKCclc18l
c1JlcGx5JyAlIChyZWNlaXZlci5uYW1lLCBtZXNzYWdlLm5hbWUpKQotCi0gICAgZmlyc3RfbWVz
c2FnZSA9IFRydWUKLSAgICBmb3IgZW51bV92YWx1ZSBpbiBzb3J0ZWQoZW51bV92YWx1ZXMpOgot
ICAgICAgICByZXN1bHQuYXBwZW5kKCdcbiAgICAnKQotICAgICAgICBpZiBub3QgZmlyc3RfbWVz
c2FnZToKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJywgJykKLSAgICAgICAgZmlyc3RfbWVz
c2FnZSA9IEZhbHNlCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoZW51bV92YWx1ZSkKLSAgICByZXN1
bHQuYXBwZW5kKCdcbiAgICAsIFdyYXBwZWRBc3luY01lc3NhZ2VGb3JUZXN0aW5nJykKLSAgICBy
ZXN1bHQuYXBwZW5kKCdcbiAgICAsIFN5bmNNZXNzYWdlUmVwbHknKQotICAgIHJlc3VsdC5hcHBl
bmQoJ1xuICAgICwgSW5pdGlhbGl6ZUNvbm5lY3Rpb24nKQotICAgIHJlc3VsdC5hcHBlbmQoJ1xu
ICAgICwgTGVnYWN5U2Vzc2lvblN0YXRlJykKLSAgICByZXN1bHQuYXBwZW5kKCdcbiAgICAsIExh
c3QgPSBMZWdhY3lTZXNzaW9uU3RhdGUnKQorICAgIG1lc3NhZ2VfZW51bWVyYXRvcnMgPSBnZXRf
bWVzc2FnZV9lbnVtZXJhdG9ycyhyZWNlaXZlcnMpCisKKyAgICByZXN1bHQuYXBwZW5kKCdlbnVt
IGNsYXNzIE1lc3NhZ2VOYW1lIDogdWludDE2X3QgeycpCisgICAgcmVzdWx0LmFwcGVuZCgnXG4g
ICAgJykKKyAgICByZXN1bHQuYXBwZW5kKCdcbiAgICAsICcuam9pbihzdHIoZSkgZm9yIGUgaW4g
bWVzc2FnZV9lbnVtZXJhdG9ycykpCisgICAgcmVzdWx0LmFwcGVuZCgnXG4gICAgLCBMYXN0ID0g
JXMnICUgbWVzc2FnZV9lbnVtZXJhdG9yc1stMV0pCiAgICAgcmVzdWx0LmFwcGVuZCgnXG59O1xu
JykKICAgICByZXN1bHQuYXBwZW5kKCdcbicpCiAgICAgcmVzdWx0LmFwcGVuZCgnUmVjZWl2ZXJO
YW1lIHJlY2VpdmVyTmFtZShNZXNzYWdlTmFtZSk7XG4nKQpAQCAtOTg3LDI0ICsxMDA2LDExIEBA
IGRlZiBnZW5lcmF0ZV9tZXNzYWdlX25hbWVzX2ltcGxlbWVudGF0aW9uKHJlY2VpdmVycyk6CiAg
ICAgcmVzdWx0LmFwcGVuZCgnY29uc3QgY2hhciogZGVzY3JpcHRpb24oTWVzc2FnZU5hbWUgbmFt
ZSlcbicpCiAgICAgcmVzdWx0LmFwcGVuZCgne1xuJykKICAgICByZXN1bHQuYXBwZW5kKCcgICAg
c3dpdGNoIChuYW1lKSB7XG4nKQotICAgIGVudW1fdmFsdWVzID0gc2V0KCkKLSAgICBmb3IgcmVj
ZWl2ZXIgaW4gcmVjZWl2ZXJzOgotICAgICAgICBmb3IgbWVzc2FnZSBpbiByZWNlaXZlci5tZXNz
YWdlczoKLSAgICAgICAgICAgIGVudW1fdmFsdWVzLmFkZCgnJXNfJXMnICUgKHJlY2VpdmVyLm5h
bWUsIG1lc3NhZ2UubmFtZSkpCi0gICAgICAgICAgICBpZiBtZXNzYWdlLmhhc19hdHRyaWJ1dGUo
QVNZTkNfQVRUUklCVVRFKToKLSAgICAgICAgICAgICAgICBlbnVtX3ZhbHVlcy5hZGQoJyVzXyVz
UmVwbHknICUgKHJlY2VpdmVyLm5hbWUsIG1lc3NhZ2UubmFtZSkpCi0KLSAgICBmb3IgZW51bV92
YWx1ZSBpbiBzb3J0ZWQoZW51bV92YWx1ZXMpOgotICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAg
Y2FzZSBNZXNzYWdlTmFtZTo6JXM6XG4nICUgZW51bV92YWx1ZSkKLSAgICAgICAgcmVzdWx0LmFw
cGVuZCgnICAgICAgICByZXR1cm4gIiVzIjtcbicgJSBlbnVtX3ZhbHVlKQotICAgIHJlc3VsdC5h
cHBlbmQoJyAgICBjYXNlIE1lc3NhZ2VOYW1lOjpXcmFwcGVkQXN5bmNNZXNzYWdlRm9yVGVzdGlu
ZzpcbicpCi0gICAgcmVzdWx0LmFwcGVuZCgnICAgICAgICByZXR1cm4gIklQQzo6V3JhcHBlZEFz
eW5jTWVzc2FnZUZvclRlc3RpbmciO1xuJykKLSAgICByZXN1bHQuYXBwZW5kKCcgICAgY2FzZSBN
ZXNzYWdlTmFtZTo6U3luY01lc3NhZ2VSZXBseTpcbicpCi0gICAgcmVzdWx0LmFwcGVuZCgnICAg
ICAgICByZXR1cm4gIklQQzo6U3luY01lc3NhZ2VSZXBseSI7XG4nKQotICAgIHJlc3VsdC5hcHBl
bmQoJyAgICBjYXNlIE1lc3NhZ2VOYW1lOjpJbml0aWFsaXplQ29ubmVjdGlvbjpcbicpCi0gICAg
cmVzdWx0LmFwcGVuZCgnICAgICAgICByZXR1cm4gIklQQzo6SW5pdGlhbGl6ZUNvbm5lY3Rpb24i
O1xuJykKLSAgICByZXN1bHQuYXBwZW5kKCcgICAgY2FzZSBNZXNzYWdlTmFtZTo6TGVnYWN5U2Vz
c2lvblN0YXRlOlxuJykKLSAgICByZXN1bHQuYXBwZW5kKCcgICAgICAgIHJldHVybiAiSVBDOjpM
ZWdhY3lTZXNzaW9uU3RhdGUiO1xuJykKKworICAgIG1lc3NhZ2VfZW51bWVyYXRvcnMgPSBnZXRf
bWVzc2FnZV9lbnVtZXJhdG9ycyhyZWNlaXZlcnMpCisgICAgZm9yIGVudW1lcmF0b3IgaW4gbWVz
c2FnZV9lbnVtZXJhdG9yczoKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIGNhc2UgTWVzc2Fn
ZU5hbWU6OiVzOlxuJyAlIGVudW1lcmF0b3IpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICAg
ICAgcmV0dXJuICIlcyI7XG4nICUgZW51bWVyYXRvcikKICAgICByZXN1bHQuYXBwZW5kKCcgICAg
fVxuJykKICAgICByZXN1bHQuYXBwZW5kKCcgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7XG4nKQog
ICAgIHJlc3VsdC5hcHBlbmQoJyAgICByZXR1cm4gIjxpbnZhbGlkIG1lc3NhZ2UgbmFtZT4iO1xu
JykKQEAgLTEwMTMsMzAgKzEwMTksMTQgQEAgZGVmIGdlbmVyYXRlX21lc3NhZ2VfbmFtZXNfaW1w
bGVtZW50YXRpb24ocmVjZWl2ZXJzKToKICAgICByZXN1bHQuYXBwZW5kKCdSZWNlaXZlck5hbWUg
cmVjZWl2ZXJOYW1lKE1lc3NhZ2VOYW1lIG1lc3NhZ2VOYW1lKVxuJykKICAgICByZXN1bHQuYXBw
ZW5kKCd7XG4nKQogICAgIHJlc3VsdC5hcHBlbmQoJyAgICBzd2l0Y2ggKG1lc3NhZ2VOYW1lKSB7
XG4nKQotICAgIG1lc3NhZ2VfcmVjZWl2ZXJfbWFwID0gZGljdCgpCi0gICAgYXN5bmNfcmVwbHlf
bWVzc2FnZXMgPSBzZXQoKQotICAgIGZvciByZWNlaXZlciBpbiByZWNlaXZlcnM6Ci0gICAgICAg
IG1lc3NhZ2VzID0gc2V0KCkKLSAgICAgICAgZm9yIG1lc3NhZ2UgaW4gcmVjZWl2ZXIubWVzc2Fn
ZXM6Ci0gICAgICAgICAgICBtZXNzYWdlcy5hZGQoJyVzXyVzJyAlIChyZWNlaXZlci5uYW1lLCBt
ZXNzYWdlLm5hbWUpKQotICAgICAgICAgICAgaWYgbWVzc2FnZS5oYXNfYXR0cmlidXRlKEFTWU5D
X0FUVFJJQlVURSk6Ci0gICAgICAgICAgICAgICAgYXN5bmNfcmVwbHlfbWVzc2FnZXMuYWRkKCcl
c18lc1JlcGx5JyAlIChyZWNlaXZlci5uYW1lLCBtZXNzYWdlLm5hbWUpKQotICAgICAgICBpZiBs
ZW4obWVzc2FnZXMpOgotICAgICAgICAgICAgbWVzc2FnZV9yZWNlaXZlcl9tYXBbcmVjZWl2ZXIu
bmFtZV0gPSBtZXNzYWdlcwotCi0gICAgZm9yIHJlY2VpdmVyX25hbWUsIG1lc3NhZ2VfbmFtZXMg
aW4gbWVzc2FnZV9yZWNlaXZlcl9tYXAuaXRlbXMoKToKLSAgICAgICAgZm9yIG1lc3NhZ2VfbmFt
ZSBpbiBzb3J0ZWQobWVzc2FnZV9uYW1lcyk6Ci0gICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcg
ICAgY2FzZSBNZXNzYWdlTmFtZTo6JXM6XG4nICUgbWVzc2FnZV9uYW1lKQotICAgICAgICByZXN1
bHQuYXBwZW5kKCcgICAgICAgIHJldHVybiBSZWNlaXZlck5hbWU6OiVzO1xuJyAlIHJlY2VpdmVy
X25hbWUpCi0KLSAgICBmb3IgYXN5bmNfcmVwbHlfbWVzc2FnZSBpbiBzb3J0ZWQoYXN5bmNfcmVw
bHlfbWVzc2FnZXMpOgotICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgY2FzZSBNZXNzYWdlTmFt
ZTo6JXM6XG4nICUgYXN5bmNfcmVwbHlfbWVzc2FnZSkKLSAgICByZXN1bHQuYXBwZW5kKCcgICAg
ICAgIHJldHVybiBSZWNlaXZlck5hbWU6OkFzeW5jUmVwbHk7XG4nKQotICAgIHJlc3VsdC5hcHBl
bmQoJyAgICBjYXNlIE1lc3NhZ2VOYW1lOjpXcmFwcGVkQXN5bmNNZXNzYWdlRm9yVGVzdGluZzpc
bicpCi0gICAgcmVzdWx0LmFwcGVuZCgnICAgIGNhc2UgTWVzc2FnZU5hbWU6OlN5bmNNZXNzYWdl
UmVwbHk6XG4nKQotICAgIHJlc3VsdC5hcHBlbmQoJyAgICBjYXNlIE1lc3NhZ2VOYW1lOjpJbml0
aWFsaXplQ29ubmVjdGlvbjpcbicpCi0gICAgcmVzdWx0LmFwcGVuZCgnICAgIGNhc2UgTWVzc2Fn
ZU5hbWU6OkxlZ2FjeVNlc3Npb25TdGF0ZTpcbicpCi0gICAgcmVzdWx0LmFwcGVuZCgnICAgICAg
ICByZXR1cm4gUmVjZWl2ZXJOYW1lOjpJUEM7XG4nKQorICAgIHByZXZfZW51bWVyYXRvciA9IE5v
bmUKKyAgICBmb3IgZW51bWVyYXRvciBpbiBtZXNzYWdlX2VudW1lcmF0b3JzOgorICAgICAgICBp
ZiBwcmV2X2VudW1lcmF0b3IgYW5kIHByZXZfZW51bWVyYXRvci5yZWNlaXZlciAhPSBlbnVtZXJh
dG9yLnJlY2VpdmVyOgorICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgICAgICByZXR1cm4g
UmVjZWl2ZXJOYW1lOjolcztcbicgJSBwcmV2X2VudW1lcmF0b3IucmVjZWl2ZXIubmFtZSkKKyAg
ICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIGNhc2UgTWVzc2FnZU5hbWU6OiVzOlxuJyAlIGVudW1l
cmF0b3IpCisgICAgICAgIHByZXZfZW51bWVyYXRvciA9IGVudW1lcmF0b3IKKyAgICBpZiBwcmV2
X2VudW1lcmF0b3I6CisgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICAgICAgcmV0dXJuIFJlY2Vp
dmVyTmFtZTo6JXM7XG4nICUgcHJldl9lbnVtZXJhdG9yLnJlY2VpdmVyLm5hbWUpCiAgICAgcmVz
dWx0LmFwcGVuZCgnICAgIH1cbicpCiAgICAgcmVzdWx0LmFwcGVuZCgnICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpO1xuJykKICAgICByZXN1bHQuYXBwZW5kKCcgICAgcmV0dXJuIFJlY2VpdmVyTmFt
ZTo6SW52YWxpZDtcbicpCkBAIC0xMDQ0LDI1ICsxMDM0LDE0IEBAIGRlZiBnZW5lcmF0ZV9tZXNz
YWdlX25hbWVzX2ltcGxlbWVudGF0aW9uKHJlY2VpdmVycyk6CiAgICAgcmVzdWx0LmFwcGVuZCgn
XG4nKQogICAgIHJlc3VsdC5hcHBlbmQoJ2Jvb2wgaXNWYWxpZE1lc3NhZ2VOYW1lKE1lc3NhZ2VO
YW1lIG1lc3NhZ2VOYW1lKVxuJykKICAgICByZXN1bHQuYXBwZW5kKCd7XG4nKQotICAgIGZvciBy
ZWNlaXZlciBpbiByZWNlaXZlcnM6Ci0gICAgICAgIGZvciBtZXNzYWdlIGluIHJlY2VpdmVyLm1l
c3NhZ2VzOgorICAgIGZvciBlbnVtZXJhdG9yIGluIG1lc3NhZ2VfZW51bWVyYXRvcnM6CisgICAg
ICAgIGZvciBtZXNzYWdlIGluIGVudW1lcmF0b3IubWVzc2FnZXM6CiAgICAgICAgICAgICBpZiBt
ZXNzYWdlLmNvbmRpdGlvbjoKICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcjaWYgJXNc
bicgJSBtZXNzYWdlLmNvbmRpdGlvbikKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBp
ZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6JXNfJXMpXG4nICUgKHJlY2VpdmVy
Lm5hbWUsIG1lc3NhZ2UubmFtZSkpCisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgaWYg
KG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OiVzKVxuJyAlIGVudW1lcmF0b3IpCiAg
ICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgICAgIHJldHVybiB0cnVlO1xuJykKLSAgICAg
ICAgICAgIGlmIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShBU1lOQ19BVFRSSUJVVEUpOgotICAgICAg
ICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNz
YWdlTmFtZTo6JXNfJXNSZXBseSlcbicgJSAocmVjZWl2ZXIubmFtZSwgbWVzc2FnZS5uYW1lKSkK
LSAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgICAgIHJldHVybiB0cnVlO1xuJykK
ICAgICAgICAgICAgIGlmIG1lc3NhZ2UuY29uZGl0aW9uOgogICAgICAgICAgICAgICAgIHJlc3Vs
dC5hcHBlbmQoJyNlbmRpZlxuJykKLSAgICByZXN1bHQuYXBwZW5kKCcgICAgaWYgKG1lc3NhZ2VO
YW1lID09IElQQzo6TWVzc2FnZU5hbWU6OldyYXBwZWRBc3luY01lc3NhZ2VGb3JUZXN0aW5nKVxu
JykKLSAgICByZXN1bHQuYXBwZW5kKCcgICAgICAgIHJldHVybiB0cnVlO1xuJykKLSAgICByZXN1
bHQuYXBwZW5kKCcgICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlN5bmNN
ZXNzYWdlUmVwbHkpXG4nKQotICAgIHJlc3VsdC5hcHBlbmQoJyAgICAgICAgcmV0dXJuIHRydWU7
XG4nKQotICAgIHJlc3VsdC5hcHBlbmQoJyAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNz
YWdlTmFtZTo6SW5pdGlhbGl6ZUNvbm5lY3Rpb24pXG4nKQotICAgIHJlc3VsdC5hcHBlbmQoJyAg
ICAgICAgcmV0dXJuIHRydWU7XG4nKQotICAgIHJlc3VsdC5hcHBlbmQoJyAgICBpZiAobWVzc2Fn
ZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6TGVnYWN5U2Vzc2lvblN0YXRlKVxuJykKLSAgICBy
ZXN1bHQuYXBwZW5kKCcgICAgICAgIHJldHVybiB0cnVlO1xuJykKICAgICByZXN1bHQuYXBwZW5k
KCcgICAgcmV0dXJuIGZhbHNlO1xuJykKICAgICByZXN1bHQuYXBwZW5kKCd9O1xuJykKICAgICBy
ZXN1bHQuYXBwZW5kKCdcbicpCkBAIC0xMDc1LDYgKzEwNTQsOCBAQCBkZWYgZ2VuZXJhdGVfanNf
dmFsdWVfY29udmVyc2lvbl9mdW5jdGlvbihyZXN1bHQsIHJlY2VpdmVycywgZnVuY3Rpb25fbmFt
ZSwgYXJndQogICAgIHJlc3VsdC5hcHBlbmQoJ3tcbicpCiAgICAgcmVzdWx0LmFwcGVuZCgnICAg
IHN3aXRjaCAobmFtZSkge1xuJykKICAgICBmb3IgcmVjZWl2ZXIgaW4gcmVjZWl2ZXJzOgorICAg
ICAgICBpZiByZWNlaXZlci5oYXNfYXR0cmlidXRlKEJVSUxUSU5fQVRUUklCVVRFKToKKyAgICAg
ICAgICAgIGNvbnRpbnVlCiAgICAgICAgIGlmIHJlY2VpdmVyLmNvbmRpdGlvbjoKICAgICAgICAg
ICAgIHJlc3VsdC5hcHBlbmQoJyNpZiAlc1xuJyAlIHJlY2VpdmVyLmNvbmRpdGlvbikKICAgICAg
ICAgcHJldmlvdXNfbWVzc2FnZV9jb25kaXRpb24gPSBOb25lCkBAIC0xMTA2LDEwICsxMDg3LDE0
IEBAIGRlZiBnZW5lcmF0ZV9qc19hcmd1bWVudF9kZXNjcmlwdGlvbnMocmVjZWl2ZXJzLCBmdW5j
dGlvbl9uYW1lLCBhcmd1bWVudHNfZnJvbV9tCiAgICAgcmVzdWx0LmFwcGVuZCgne1xuJykKICAg
ICByZXN1bHQuYXBwZW5kKCcgICAgc3dpdGNoIChuYW1lKSB7XG4nKQogICAgIGZvciByZWNlaXZl
ciBpbiByZWNlaXZlcnM6CisgICAgICAgIGlmIHJlY2VpdmVyLmhhc19hdHRyaWJ1dGUoQlVJTFRJ
Tl9BVFRSSUJVVEUpOgorICAgICAgICAgICAgY29udGludWUKICAgICAgICAgaWYgcmVjZWl2ZXIu
Y29uZGl0aW9uOgogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnI2lmICVzXG4nICUgcmVjZWl2
ZXIuY29uZGl0aW9uKQogICAgICAgICBwcmV2aW91c19tZXNzYWdlX2NvbmRpdGlvbiA9IE5vbmUK
ICAgICAgICAgZm9yIG1lc3NhZ2UgaW4gcmVjZWl2ZXIubWVzc2FnZXM6CisgICAgICAgICAgICBp
ZiBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoQlVJTFRJTl9BVFRSSUJVVEUpOgorICAgICAgICAgICAg
ICAgIGNvbnRpbnVlCiAgICAgICAgICAgICBhcmd1bWVudF9saXN0ID0gYXJndW1lbnRzX2Zyb21f
bWVzc2FnZShtZXNzYWdlKQogICAgICAgICAgICAgaWYgYXJndW1lbnRfbGlzdCBpcyBOb25lOgog
ICAgICAgICAgICAgICAgIGNvbnRpbnVlCkBAIC0xMTU1LDYgKzExNDAsOCBAQCBkZWYgZ2VuZXJh
dGVfbWVzc2FnZV9hcmd1bWVudF9kZXNjcmlwdGlvbl9pbXBsZW1lbnRhdGlvbihyZWNlaXZlcnMs
IHJlY2VpdmVyX2hlYQogICAgICAgICAnIkpTSVBDQmluZGluZy5oIic6IFtOb25lXQogICAgIH0K
ICAgICBmb3IgcmVjZWl2ZXIgaW4gcmVjZWl2ZXJzOgorICAgICAgICBpZiByZWNlaXZlci5oYXNf
YXR0cmlidXRlKEJVSUxUSU5fQVRUUklCVVRFKToKKyAgICAgICAgICAgIGNvbnRpbnVlCiAgICAg
ICAgIGhlYWRlcl9jb25kaXRpb25zWyciJXMiJyAlIG1lc3NhZ2VzX2hlYWRlcl9maWxlbmFtZShy
ZWNlaXZlcildID0gW05vbmVdCiAgICAgICAgIGNvbGxlY3RfaGVhZGVyX2NvbmRpdGlvbnNfZm9y
X3JlY2VpdmVyKHJlY2VpdmVyLCBoZWFkZXJfY29uZGl0aW9ucykKIApAQCAtMTIwNCw3ICsxMTkx
LDcgQEAgZGVmIGdlbmVyYXRlX21lc3NhZ2VfYXJndW1lbnRfZGVzY3JpcHRpb25faW1wbGVtZW50
YXRpb24ocmVjZWl2ZXJzLCByZWNlaXZlcl9oZWEKICAgICAgICAgICAgICAgICBpZiBtZXNzYWdl
LmNvbmRpdGlvbjoKICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnI2lmICVzXG4n
ICUgbWVzc2FnZS5jb25kaXRpb24pCiAgICAgICAgICAgICBwcmV2aW91c19tZXNzYWdlX2NvbmRp
dGlvbiA9IG1lc3NhZ2UuY29uZGl0aW9uCi0gICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAg
Y2FzZSBNZXNzYWdlTmFtZTo6JXNfJXM6XG4nICUgKHJlY2VpdmVyLm5hbWUsIG1lc3NhZ2UubmFt
ZSkpCisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgY2FzZSBNZXNzYWdlTmFtZTo6JXM6
XG4nICUgTWVzc2FnZUVudW1lcmF0b3IocmVjZWl2ZXIsIFttZXNzYWdlXSkpCiAgICAgICAgICAg
ICByZXN1bHQuYXBwZW5kKCcgICAgICAgIHJldHVybiB0cnVlO1xuJykKICAgICAgICAgaWYgcHJl
dmlvdXNfbWVzc2FnZV9jb25kaXRpb246CiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcjZW5k
aWZcbicpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2Vz
X3VuaXR0ZXN0LnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlc191bml0
dGVzdC5weQppbmRleCAwYWI1MmFkNmM2YTUyNGI3MjI3YWI3MjIzY2RmNzFiMzc3NzUzNTg4Li42
ZWM2ZWI0ZGE1NTc3M2ZjZWQ2M2QzODIyMzNjMzI1ODE5YTlhM2MzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzX3VuaXR0ZXN0LnB5CisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXNfdW5pdHRlc3QucHkKQEAgLTMwLDM0NSAr
MzAsMzcgQEAgaW1wb3J0IHJlCiBpbXBvcnQgc3lzCiBpbXBvcnQgdW5pdHRlc3QKIAotaWYgc3lz
LnZlcnNpb25faW5mbyA+ICgzLCAwKToKLSAgICBmcm9tIGlvIGltcG9ydCBTdHJpbmdJTwotZWxz
ZToKLSAgICBmcm9tIFN0cmluZ0lPIGltcG9ydCBTdHJpbmdJTwotCiBtb2R1bGVfZGlyZWN0b3J5
ID0gb3MucGF0aC5kaXJuYW1lKG9zLnBhdGguYWJzcGF0aChfX2ZpbGVfXykpCiAKIHN5cy5wYXRo
LmFwcGVuZChvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKG1vZHVsZV9kaXJlY3RvcnksIG9z
LnBhdGgucGFyZGlyKSkpCi1mcm9tIHdlYmtpdCBpbXBvcnQgbWVzc2FnZXMKLWZyb20gd2Via2l0
IGltcG9ydCBwYXJzZXIKK2Zyb20gd2Via2l0IGltcG9ydCBtZXNzYWdlcywgbW9kZWwsIHBhcnNl
ciAgIyBub3FhOiBFNDAyCiAKIHRlc3RzX2RpcmVjdG9yeSA9IG9zLnBhdGguam9pbihtb2R1bGVf
ZGlyZWN0b3J5LCAndGVzdHMnKQogCiByZXNldF9yZXN1bHRzID0gRmFsc2UKIAotd2l0aCBvcGVu
KG9zLnBhdGguam9pbih0ZXN0c19kaXJlY3RvcnksICdUZXN0V2l0aG91dEF0dHJpYnV0ZXMubWVz
c2FnZXMuaW4nKSkgYXMgaW5fZmlsZToKLSAgICBfbWVzc2FnZXNfZmlsZV9jb250ZW50cyA9IGlu
X2ZpbGUucmVhZCgpCi0KLXdpdGggb3Blbihvcy5wYXRoLmpvaW4odGVzdHNfZGlyZWN0b3J5LCAn
VGVzdFdpdGhMZWdhY3lSZWNlaXZlci5tZXNzYWdlcy5pbicpKSBhcyBpbl9maWxlOgotICAgIF9s
ZWdhY3lfbWVzc2FnZXNfZmlsZV9jb250ZW50cyA9IGluX2ZpbGUucmVhZCgpCi0KLXdpdGggb3Bl
bihvcy5wYXRoLmpvaW4odGVzdHNfZGlyZWN0b3J5LCAnVGVzdFdpdGhTdXBlcmNsYXNzLm1lc3Nh
Z2VzLmluJykpIGFzIGluX2ZpbGU6Ci0gICAgX3N1cGVyY2xhc3NfbWVzc2FnZXNfZmlsZV9jb250
ZW50cyA9IGluX2ZpbGUucmVhZCgpCitfdGVzdF9yZWNlaXZlcl9uYW1lcyA9IFsnVGVzdFdpdGhT
dXBlcmNsYXNzJywgJ1Rlc3RXaXRoTGVnYWN5UmVjZWl2ZXInLCAnVGVzdFdpdGhvdXRBdHRyaWJ1
dGVzJywgJ1Rlc3RXaXRoSWZNZXNzYWdlJ10KIAotX2V4cGVjdGVkX3JlY2VpdmVyX2hlYWRlcl9m
aWxlX25hbWUgPSAnVGVzdFdpdGhvdXRBdHRyaWJ1dGVzTWVzc2FnZXMuaCcKLV9leHBlY3RlZF9s
ZWdhY3lfcmVjZWl2ZXJfaGVhZGVyX2ZpbGVfbmFtZSA9ICdUZXN0V2l0aExlZ2FjeVJlY2VpdmVy
TWVzc2FnZXMuaCcKLV9leHBlY3RlZF9zdXBlcmNsYXNzX3JlY2VpdmVyX2hlYWRlcl9maWxlX25h
bWUgPSAnVGVzdFdpdGhTdXBlcmNsYXNzTWVzc2FnZXMuaCcKIAotX2V4cGVjdGVkX3JlY2VpdmVy
X2ltcGxlbWVudGF0aW9uX2ZpbGVfbmFtZSA9ICdUZXN0V2l0aG91dEF0dHJpYnV0ZXNNZXNzYWdl
UmVjZWl2ZXIuY3BwJwotX2V4cGVjdGVkX2xlZ2FjeV9yZWNlaXZlcl9pbXBsZW1lbnRhdGlvbl9m
aWxlX25hbWUgPSAnVGVzdFdpdGhMZWdhY3lSZWNlaXZlck1lc3NhZ2VSZWNlaXZlci5jcHAnCi1f
ZXhwZWN0ZWRfc3VwZXJjbGFzc19yZWNlaXZlcl9pbXBsZW1lbnRhdGlvbl9maWxlX25hbWUgPSAn
VGVzdFdpdGhTdXBlcmNsYXNzTWVzc2FnZVJlY2VpdmVyLmNwcCcKK2RlZiByZWNlaXZlcl9oZWFk
ZXJfZmlsZV9uYW1lKHJlY2VpdmVyX25hbWUpOgorICAgIHJldHVybiAnJXNNZXNzYWdlcy5oJyAl
IHJlY2VpdmVyX25hbWUKIAotX2Jhc2VfZXhwZWN0ZWRfcmVzdWx0cyA9IHsKLSAgICAnY29uZGl0
aW9ucyc6ICgnKEVOQUJMRShXRUJLSVQyKSAmJiAoTkVTVEVEX01BU1RFUl9DT05ESVRJT04gfHwg
TUFTVEVSX09SICYmIE1BU1RFUl9BTkQpKScpLAotICAgICdtZXNzYWdlcyc6ICgKLSAgICAgICAg
ewotICAgICAgICAgICAgJ25hbWUnOiAnTG9hZFVSTCcsCi0gICAgICAgICAgICAncGFyYW1ldGVy
cyc6ICgKLSAgICAgICAgICAgICAgICAoJ1N0cmluZycsICd1cmwnKSwKLSAgICAgICAgICAgICks
Ci0gICAgICAgICAgICAnY29uZGl0aW9ucyc6IChOb25lKSwKLSAgICAgICAgfSwKLSAgICAgICAg
ewotICAgICAgICAgICAgJ25hbWUnOiAnTG9hZFNvbWV0aGluZycsCi0gICAgICAgICAgICAncGFy
YW1ldGVycyc6ICgKLSAgICAgICAgICAgICAgICAoJ1N0cmluZycsICd1cmwnKSwKLSAgICAgICAg
ICAgICksCi0gICAgICAgICAgICAnY29uZGl0aW9ucyc6ICgnRU5BQkxFKFRPVUNIX0VWRU5UUykn
KSwKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgJ25hbWUnOiAnVG91Y2hFdmVu
dCcsCi0gICAgICAgICAgICAncGFyYW1ldGVycyc6ICgKLSAgICAgICAgICAgICAgICAoJ1dlYktp
dDo6V2ViVG91Y2hFdmVudCcsICdldmVudCcpLAotICAgICAgICAgICAgKSwKLSAgICAgICAgICAg
ICdjb25kaXRpb25zJzogKCcoRU5BQkxFKFRPVUNIX0VWRU5UUykgJiYgKE5FU1RFRF9NRVNTQUdF
X0NPTkRJVElPTiB8fCBTT01FX09USEVSX01FU1NBR0VfQ09ORElUSU9OKSknKSwKLSAgICAgICAg
fSwKLSAgICAgICAgewotICAgICAgICAgICAgJ25hbWUnOiAnQWRkRXZlbnQnLAotICAgICAgICAg
ICAgJ3BhcmFtZXRlcnMnOiAoCi0gICAgICAgICAgICAgICAgKCdXZWJLaXQ6OldlYlRvdWNoRXZl
bnQnLCAnZXZlbnQnKSwKLSAgICAgICAgICAgICksCi0gICAgICAgICAgICAnY29uZGl0aW9ucyc6
ICgnKEVOQUJMRShUT1VDSF9FVkVOVFMpICYmIChORVNURURfTUVTU0FHRV9DT05ESVRJT04gJiYg
U09NRV9PVEhFUl9NRVNTQUdFX0NPTkRJVElPTikpJyksCi0gICAgICAgIH0sCi0gICAgICAgIHsK
LSAgICAgICAgICAgICduYW1lJzogJ0xvYWRTb21ldGhpbmdFbHNlJywKLSAgICAgICAgICAgICdw
YXJhbWV0ZXJzJzogKAotICAgICAgICAgICAgICAgICgnU3RyaW5nJywgJ3VybCcpLAotICAgICAg
ICAgICAgKSwKLSAgICAgICAgICAgICdjb25kaXRpb25zJzogKCdFTkFCTEUoVE9VQ0hfRVZFTlRT
KScpLAotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICAnbmFtZSc6ICdEaWRSZWNl
aXZlUG9saWN5RGVjaXNpb24nLAotICAgICAgICAgICAgJ3BhcmFtZXRlcnMnOiAoCi0gICAgICAg
ICAgICAgICAgKCd1aW50NjRfdCcsICdmcmFtZUlEJyksCi0gICAgICAgICAgICAgICAgKCd1aW50
NjRfdCcsICdsaXN0ZW5lcklEJyksCi0gICAgICAgICAgICAgICAgKCd1aW50MzJfdCcsICdwb2xp
Y3lBY3Rpb24nKSwKLSAgICAgICAgICAgICksCi0gICAgICAgICAgICAnY29uZGl0aW9ucyc6IChO
b25lKSwKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgJ25hbWUnOiAnQ2xvc2Un
LAotICAgICAgICAgICAgJ3BhcmFtZXRlcnMnOiAoKSwKLSAgICAgICAgICAgICdjb25kaXRpb25z
JzogKE5vbmUpLAotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICAnbmFtZSc6ICdQ
cmVmZXJlbmNlc0RpZENoYW5nZScsCi0gICAgICAgICAgICAncGFyYW1ldGVycyc6ICgKLSAgICAg
ICAgICAgICAgICAoJ1dlYktpdDo6V2ViUHJlZmVyZW5jZXNTdG9yZScsICdzdG9yZScpLAotICAg
ICAgICAgICAgKSwKLSAgICAgICAgICAgICdjb25kaXRpb25zJzogKE5vbmUpLAotICAgICAgICB9
LAotICAgICAgICB7Ci0gICAgICAgICAgICAnbmFtZSc6ICdTZW5kRG91YmxlQW5kRmxvYXQnLAot
ICAgICAgICAgICAgJ3BhcmFtZXRlcnMnOiAoCi0gICAgICAgICAgICAgICAgKCdkb3VibGUnLCAn
ZCcpLAotICAgICAgICAgICAgICAgICgnZmxvYXQnLCAnZicpLAotICAgICAgICAgICAgKSwKLSAg
ICAgICAgICAgICdjb25kaXRpb25zJzogKE5vbmUpLAotICAgICAgICB9LAotICAgICAgICB7Ci0g
ICAgICAgICAgICAnbmFtZSc6ICdTZW5kSW50cycsCi0gICAgICAgICAgICAncGFyYW1ldGVycyc6
ICgKLSAgICAgICAgICAgICAgICAoJ1ZlY3Rvcjx1aW50NjRfdD4nLCAnaW50cycpLAotICAgICAg
ICAgICAgICAgICgnVmVjdG9yPFZlY3Rvcjx1aW50NjRfdD4+JywgJ2ludFZlY3RvcnMnKQotICAg
ICAgICAgICAgKSwKLSAgICAgICAgICAgICdjb25kaXRpb25zJzogKE5vbmUpLAotICAgICAgICB9
LAotICAgICAgICB7Ci0gICAgICAgICAgICAnbmFtZSc6ICdDcmVhdGVQbHVnaW4nLAotICAgICAg
ICAgICAgJ3BhcmFtZXRlcnMnOiAoCi0gICAgICAgICAgICAgICAgKCd1aW50NjRfdCcsICdwbHVn
aW5JbnN0YW5jZUlEJyksCi0gICAgICAgICAgICAgICAgKCdXZWJLaXQ6OlBsdWdpbjo6UGFyYW1l
dGVycycsICdwYXJhbWV0ZXJzJykKLSAgICAgICAgICAgICksCi0gICAgICAgICAgICAncmVwbHlf
cGFyYW1ldGVycyc6ICgKLSAgICAgICAgICAgICAgICAoJ2Jvb2wnLCAncmVzdWx0JyksCi0gICAg
ICAgICAgICApLAotICAgICAgICAgICAgJ2NvbmRpdGlvbnMnOiAoTm9uZSksCi0gICAgICAgIH0s
Ci0gICAgICAgIHsKLSAgICAgICAgICAgICduYW1lJzogJ1J1bkphdmFTY3JpcHRBbGVydCcsCi0g
ICAgICAgICAgICAncGFyYW1ldGVycyc6ICgKLSAgICAgICAgICAgICAgICAoJ3VpbnQ2NF90Jywg
J2ZyYW1lSUQnKSwKLSAgICAgICAgICAgICAgICAoJ1N0cmluZycsICdtZXNzYWdlJykKLSAgICAg
ICAgICAgICksCi0gICAgICAgICAgICAncmVwbHlfcGFyYW1ldGVycyc6ICgpLAotICAgICAgICAg
ICAgJ2NvbmRpdGlvbnMnOiAoTm9uZSksCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAg
ICAgICduYW1lJzogJ0dldFBsdWdpbnMnLAotICAgICAgICAgICAgJ3BhcmFtZXRlcnMnOiAoCi0g
ICAgICAgICAgICAgICAgKCdib29sJywgJ3JlZnJlc2gnKSwKLSAgICAgICAgICAgICksCi0gICAg
ICAgICAgICAncmVwbHlfcGFyYW1ldGVycyc6ICgKLSAgICAgICAgICAgICAgICAoJ1ZlY3RvcjxX
ZWJDb3JlOjpQbHVnaW5JbmZvPicsICdwbHVnaW5zJyksCi0gICAgICAgICAgICApLAotICAgICAg
ICAgICAgJ2NvbmRpdGlvbnMnOiAoTm9uZSksCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAg
ICAgICAgICduYW1lJzogJ0dldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uJywKLSAgICAgICAgICAg
ICdwYXJhbWV0ZXJzJzogKAotICAgICAgICAgICAgICAgICgnU3RyaW5nJywgJ3BsdWdpblBhdGgn
KSwKLSAgICAgICAgICAgICksCi0gICAgICAgICAgICAncmVwbHlfcGFyYW1ldGVycyc6ICgKLSAg
ICAgICAgICAgICAgICAoJ0lQQzo6Q29ubmVjdGlvbjo6SGFuZGxlJywgJ2Nvbm5lY3Rpb25IYW5k
bGUnKSwKLSAgICAgICAgICAgICksCi0gICAgICAgICAgICAnY29uZGl0aW9ucyc6IChOb25lKSwK
LSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgJ25hbWUnOiAnVGVzdE11bHRpcGxl
QXR0cmlidXRlcycsCi0gICAgICAgICAgICAncGFyYW1ldGVycyc6ICgKLSAgICAgICAgICAgICks
Ci0gICAgICAgICAgICAncmVwbHlfcGFyYW1ldGVycyc6ICgKLSAgICAgICAgICAgICksCi0gICAg
ICAgICAgICAnY29uZGl0aW9ucyc6IChOb25lKSwKLSAgICAgICAgfSwKLSAgICAgICAgewotICAg
ICAgICAgICAgJ25hbWUnOiAnVGVzdFBhcmFtZXRlckF0dHJpYnV0ZXMnLAotICAgICAgICAgICAg
J3BhcmFtZXRlcnMnOiAoCi0gICAgICAgICAgICAgICAgKCd1aW50NjRfdCcsICdmb28nLCAoJ0F0
dHJpYnV0ZU9uZScsICdBdHRyaWJ1dGVUd28nKSksCi0gICAgICAgICAgICAgICAgKCdkb3VibGUn
LCAnYmFyJyksCi0gICAgICAgICAgICAgICAgKCdkb3VibGUnLCAnYmF6JywgKCdBdHRyaWJ1dGVU
aHJlZScsKSksCi0gICAgICAgICAgICApLAotICAgICAgICAgICAgJ2NvbmRpdGlvbnMnOiAoTm9u
ZSksCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICduYW1lJzogJ1RlbXBsYXRl
VGVzdCcsCi0gICAgICAgICAgICAncGFyYW1ldGVycyc6ICgKLSAgICAgICAgICAgICAgICAoJ0hh
c2hNYXA8U3RyaW5nLCBzdGQ6OnBhaXI8U3RyaW5nLCB1aW50NjRfdD4+JywgJ2EnKSwKLSAgICAg
ICAgICAgICksCi0gICAgICAgICAgICAnY29uZGl0aW9ucyc6IChOb25lKSwKLSAgICAgICAgfSwK
LSAgICAgICAgewotICAgICAgICAgICAgJ25hbWUnOiAnU2V0VmlkZW9MYXllcklEJywKLSAgICAg
ICAgICAgICdwYXJhbWV0ZXJzJzogKAotICAgICAgICAgICAgICAgICgnV2ViQ29yZTo6R3JhcGhp
Y3NMYXllcjo6UGxhdGZvcm1MYXllcklEJywgJ3ZpZGVvTGF5ZXJJRCcpLAotICAgICAgICAgICAg
KSwKLSAgICAgICAgICAgICdjb25kaXRpb25zJzogKE5vbmUpLAotICAgICAgICB9LAotICAgICAg
ICB7Ci0gICAgICAgICAgICAnbmFtZSc6ICdEaWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbics
Ci0gICAgICAgICAgICAncGFyYW1ldGVycyc6ICgKLSAgICAgICAgICAgICAgICAoJ0lQQzo6TWFj
aFBvcnQnLCAnY29ubmVjdGlvbklkZW50aWZpZXInKSwKLSAgICAgICAgICAgICAgICAoJ09wdGlv
blNldDxXZWJLaXQ6OlNlbGVjdGlvbkZsYWdzPicsICdmbGFncycpLAotICAgICAgICAgICAgKSwK
LSAgICAgICAgICAgICdjb25kaXRpb25zJzogKCdQTEFURk9STShNQUMpJyksCi0gICAgICAgIH0s
Ci0gICAgICAgIHsKLSAgICAgICAgICAgICduYW1lJzogJ0ludGVycHJldEtleUV2ZW50JywKLSAg
ICAgICAgICAgICdwYXJhbWV0ZXJzJzogKAotICAgICAgICAgICAgICAgICgndWludDMyX3QnLCAn
dHlwZScpLAotICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICdyZXBseV9wYXJhbWV0ZXJzJzog
KAotICAgICAgICAgICAgICAgICgnVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4nLCAn
Y29tbWFuZE5hbWUnKSwKLSAgICAgICAgICAgICksCi0gICAgICAgICAgICAnY29uZGl0aW9ucyc6
ICgnUExBVEZPUk0oTUFDKScpLAotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICAn
bmFtZSc6ICdEZXByZWNhdGVkT3BlcmF0aW9uJywKLSAgICAgICAgICAgICdwYXJhbWV0ZXJzJzog
KAotICAgICAgICAgICAgICAgICgnSVBDOjpEdW1teVR5cGUnLCAnZHVtbXknKSwKLSAgICAgICAg
ICAgICksCi0gICAgICAgICAgICAnY29uZGl0aW9ucyc6ICgnRU5BQkxFKERFUFJFQ0FURURfRkVB
VFVSRSknKSwKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgJ25hbWUnOiAnRXhw
ZXJpbWVudGFsT3BlcmF0aW9uJywKLSAgICAgICAgICAgICdwYXJhbWV0ZXJzJzogKAotICAgICAg
ICAgICAgICAgICgnSVBDOjpEdW1teVR5cGUnLCAnZHVtbXknKSwKLSAgICAgICAgICAgICksCi0g
ICAgICAgICAgICAnY29uZGl0aW9ucyc6ICgnRU5BQkxFKEVYUEVSSU1FTlRBTF9GRUFUVVJFKScp
LAotICAgICAgICB9Ci0gICAgKSwKLX0KIAotX2V4cGVjdGVkX3Jlc3VsdHMgPSBkaWN0KF9iYXNl
X2V4cGVjdGVkX3Jlc3VsdHMsIG5hbWU9J1Rlc3RXaXRob3V0QXR0cmlidXRlcycpCitkZWYgcmVj
ZWl2ZXJfaW1wbGVtZW50YXRpb25fZmlsZV9uYW1lKHJlY2VpdmVyX25hbWUpOgorICAgIHJldHVy
biAnJXNNZXNzYWdlUmVjZWl2ZXIuY3BwJyAlIHJlY2VpdmVyX25hbWUKIAotX2V4cGVjdGVkX2xl
Z2FjeV9yZXN1bHRzID0gZGljdChfYmFzZV9leHBlY3RlZF9yZXN1bHRzLCBuYW1lPSdUZXN0V2l0
aExlZ2FjeVJlY2VpdmVyJykKIAotX2V4cGVjdGVkX3N1cGVyY2xhc3NfcmVzdWx0cyA9IHsKLSAg
ICAnbmFtZSc6ICdUZXN0V2l0aFN1cGVyY2xhc3MnLAotICAgICdzdXBlcmNsYXNzJzogJ1dlYlBh
Z2VCYXNlJywKLSAgICAnY29uZGl0aW9ucyc6IE5vbmUsCi0gICAgJ21lc3NhZ2VzJzogKAotICAg
ICAgICB7Ci0gICAgICAgICAgICAnbmFtZSc6ICdMb2FkVVJMJywKLSAgICAgICAgICAgICdwYXJh
bWV0ZXJzJzogKAotICAgICAgICAgICAgICAgICgnU3RyaW5nJywgJ3VybCcpLAotICAgICAgICAg
ICAgKSwKLSAgICAgICAgICAgICdjb25kaXRpb25zJzogKE5vbmUpLAotICAgICAgICB9LAotICAg
ICAgICB7Ci0gICAgICAgICAgICAnbmFtZSc6ICdUZXN0QXN5bmNNZXNzYWdlJywKLSAgICAgICAg
ICAgICdwYXJhbWV0ZXJzJzogKAotICAgICAgICAgICAgICAgICgnV2ViS2l0OjpUZXN0VHdvU3Rh
dGVFbnVtJywgJ3R3b1N0YXRlRW51bScpLAotICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICdy
ZXBseV9wYXJhbWV0ZXJzJzogKAotICAgICAgICAgICAgICAgICgndWludDY0X3QnLCAncmVzdWx0
JyksCi0gICAgICAgICAgICApLAotICAgICAgICAgICAgJ2NvbmRpdGlvbnMnOiAoJ0VOQUJMRShU
RVNUX0ZFQVRVUkUpJyksCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICduYW1l
JzogJ1Rlc3RBc3luY01lc3NhZ2VXaXRoTm9Bcmd1bWVudHMnLAotICAgICAgICAgICAgJ3BhcmFt
ZXRlcnMnOiAoKSwKLSAgICAgICAgICAgICdyZXBseV9wYXJhbWV0ZXJzJzogKCksCi0gICAgICAg
ICAgICAnY29uZGl0aW9ucyc6ICgnRU5BQkxFKFRFU1RfRkVBVFVSRSknKSwKLSAgICAgICAgfSwK
LSAgICAgICAgewotICAgICAgICAgICAgJ25hbWUnOiAnVGVzdEFzeW5jTWVzc2FnZVdpdGhNdWx0
aXBsZUFyZ3VtZW50cycsCi0gICAgICAgICAgICAncGFyYW1ldGVycyc6ICgpLAotICAgICAgICAg
ICAgJ3JlcGx5X3BhcmFtZXRlcnMnOiAoCi0gICAgICAgICAgICAgICAgKCdib29sJywgJ2ZsYWcn
KSwKLSAgICAgICAgICAgICAgICAoJ3VpbnQ2NF90JywgJ3ZhbHVlJyksCi0gICAgICAgICAgICAp
LAotICAgICAgICAgICAgJ2NvbmRpdGlvbnMnOiAoJ0VOQUJMRShURVNUX0ZFQVRVUkUpJyksCi0g
ICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICduYW1lJzogJ1Rlc3RBc3luY01lc3Nh
Z2VXaXRoQ29ubmVjdGlvbicsCi0gICAgICAgICAgICAncGFyYW1ldGVycyc6ICgKLSAgICAgICAg
ICAgICAgICAoJ2ludCcsICd2YWx1ZScpLAotICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICdy
ZXBseV9wYXJhbWV0ZXJzJzogKAotICAgICAgICAgICAgICAgICgnYm9vbCcsICdmbGFnJyksCi0g
ICAgICAgICAgICApLAotICAgICAgICAgICAgJ2NvbmRpdGlvbnMnOiAoJ0VOQUJMRShURVNUX0ZF
QVRVUkUpJyksCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICduYW1lJzogJ1Rl
c3RTeW5jTWVzc2FnZScsCi0gICAgICAgICAgICAncGFyYW1ldGVycyc6ICgKLSAgICAgICAgICAg
ICAgICAoJ3VpbnQzMl90JywgJ3BhcmFtJyksCi0gICAgICAgICAgICApLAotICAgICAgICAgICAg
J3JlcGx5X3BhcmFtZXRlcnMnOiAoCi0gICAgICAgICAgICAgICAgKCd1aW50OF90JywgJ3JlcGx5
JyksCi0gICAgICAgICAgICApLAotICAgICAgICAgICAgJ2NvbmRpdGlvbnMnOiAoTm9uZSksCi0g
ICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICduYW1lJzogJ1Rlc3RTeW5jaHJvbm91
c01lc3NhZ2UnLAotICAgICAgICAgICAgJ3BhcmFtZXRlcnMnOiAoCi0gICAgICAgICAgICAgICAg
KCdib29sJywgJ3ZhbHVlJyksCi0gICAgICAgICAgICApLAotICAgICAgICAgICAgJ3JlcGx5X3Bh
cmFtZXRlcnMnOiAoCi0gICAgICAgICAgICAgICAgKCdPcHRpb25hbDxXZWJLaXQ6OlRlc3RDbGFz
c05hbWU+JywgJ29wdGlvbmFsUmVwbHknKSwKLSAgICAgICAgICAgICksCi0gICAgICAgICAgICAn
Y29uZGl0aW9ucyc6IChOb25lKSwKLSAgICAgICAgfSwKLSAgICApLAotfQorZGVmIHBhcnNlX3Jl
Y2VpdmVyKHJlY2VpdmVyX25hbWUpOgorICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4odGVzdHNf
ZGlyZWN0b3J5LCAne30ubWVzc2FnZXMuaW4nLmZvcm1hdChyZWNlaXZlcl9uYW1lKSkpIGFzIGlu
X2ZpbGU6CisgICAgICAgIHJldHVybiBwYXJzZXIucGFyc2UoaW5fZmlsZSkKKyAgICBhc3NlcnQo
RmFsc2UpCiAKIAotY2xhc3MgTWVzc2FnZXNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKK2NsYXNz
IEdlbmVyYXRlZEZpbGVDb250ZW50c1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiBz
ZXRVcChzZWxmKToKLSAgICAgICAgc2VsZi5yZWNlaXZlciA9IHBhcnNlci5wYXJzZShTdHJpbmdJ
TyhfbWVzc2FnZXNfZmlsZV9jb250ZW50cykpCi0gICAgICAgIHNlbGYubGVnYWN5X3JlY2VpdmVy
ID0gcGFyc2VyLnBhcnNlKFN0cmluZ0lPKF9sZWdhY3lfbWVzc2FnZXNfZmlsZV9jb250ZW50cykp
Ci0gICAgICAgIHNlbGYuc3VwZXJjbGFzc19yZWNlaXZlciA9IHBhcnNlci5wYXJzZShTdHJpbmdJ
Tyhfc3VwZXJjbGFzc19tZXNzYWdlc19maWxlX2NvbnRlbnRzKSkKLQotCi1jbGFzcyBQYXJzaW5n
VGVzdChNZXNzYWdlc1Rlc3QpOgotICAgIGRlZiBjaGVja19tZXNzYWdlKHNlbGYsIG1lc3NhZ2Us
IGV4cGVjdGVkX21lc3NhZ2UpOgotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhtZXNzYWdlLm5h
bWUsIGV4cGVjdGVkX21lc3NhZ2VbJ25hbWUnXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo
bGVuKG1lc3NhZ2UucGFyYW1ldGVycyksIGxlbihleHBlY3RlZF9tZXNzYWdlWydwYXJhbWV0ZXJz
J10pKQotICAgICAgICBmb3IgaW5kZXgsIHBhcmFtZXRlciBpbiBlbnVtZXJhdGUobWVzc2FnZS5w
YXJhbWV0ZXJzKToKLSAgICAgICAgICAgIGV4cGVjdGVkX3BhcmFtZXRlciA9IGV4cGVjdGVkX21l
c3NhZ2VbJ3BhcmFtZXRlcnMnXVtpbmRleF0KLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz
KHBhcmFtZXRlci50eXBlLCBleHBlY3RlZF9wYXJhbWV0ZXJbMF0pCi0gICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFscyhwYXJhbWV0ZXIubmFtZSwgZXhwZWN0ZWRfcGFyYW1ldGVyWzFdKQotICAg
ICAgICAgICAgaWYgbGVuKGV4cGVjdGVkX3BhcmFtZXRlcikgPiAyOgotICAgICAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWxzKHBhcmFtZXRlci5hdHRyaWJ1dGVzLCBmcm96ZW5zZXQoZXhwZWN0
ZWRfcGFyYW1ldGVyWzJdKSkKLSAgICAgICAgICAgICAgICBmb3IgYXR0cmlidXRlIGluIGV4cGVj
dGVkX3BhcmFtZXRlclsyXToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHBh
cmFtZXRlci5oYXNfYXR0cmlidXRlKGF0dHJpYnV0ZSkpCi0gICAgICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBhcmFtZXRlci5hdHRyaWJ1dGVzLCBmcm96
ZW5zZXQoKSkKLSAgICAgICAgaWYgbWVzc2FnZS5yZXBseV9wYXJhbWV0ZXJzIGlzIG5vdCBOb25l
OgotICAgICAgICAgICAgZm9yIGluZGV4LCBwYXJhbWV0ZXIgaW4gZW51bWVyYXRlKG1lc3NhZ2Uu
cmVwbHlfcGFyYW1ldGVycyk6Ci0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocGFy
YW1ldGVyLnR5cGUsIGV4cGVjdGVkX21lc3NhZ2VbJ3JlcGx5X3BhcmFtZXRlcnMnXVtpbmRleF1b
MF0pCi0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocGFyYW1ldGVyLm5hbWUsIGV4
cGVjdGVkX21lc3NhZ2VbJ3JlcGx5X3BhcmFtZXRlcnMnXVtpbmRleF1bMV0pCi0gICAgICAgIGVs
c2U6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKCdyZXBseV9wYXJhbWV0ZXJzJyBpbiBl
eHBlY3RlZF9tZXNzYWdlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhtZXNzYWdlLmNvbmRp
dGlvbiwgZXhwZWN0ZWRfbWVzc2FnZVsnY29uZGl0aW9ucyddKQotCi0gICAgZGVmIHRlc3RfcmVj
ZWl2ZXIoc2VsZik6Ci0gICAgICAgICIiIlJlY2VpdmVyIHNob3VsZCBiZSBwYXJzZWQgYXMgZXhw
ZWN0ZWQiIiIKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VsZi5yZWNlaXZlci5uYW1lLCBf
ZXhwZWN0ZWRfcmVzdWx0c1snbmFtZSddKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxm
LnJlY2VpdmVyLmNvbmRpdGlvbiwgX2V4cGVjdGVkX3Jlc3VsdHNbJ2NvbmRpdGlvbnMnXSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbHMobGVuKHNlbGYucmVjZWl2ZXIubWVzc2FnZXMpLCBsZW4o
X2V4cGVjdGVkX3Jlc3VsdHNbJ21lc3NhZ2VzJ10pKQotICAgICAgICBmb3IgaW5kZXgsIG1lc3Nh
Z2UgaW4gZW51bWVyYXRlKHNlbGYucmVjZWl2ZXIubWVzc2FnZXMpOgotICAgICAgICAgICAgc2Vs
Zi5jaGVja19tZXNzYWdlKG1lc3NhZ2UsIF9leHBlY3RlZF9yZXN1bHRzWydtZXNzYWdlcyddW2lu
ZGV4XSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLmxlZ2FjeV9yZWNlaXZlci5u
YW1lLCBfZXhwZWN0ZWRfbGVnYWN5X3Jlc3VsdHNbJ25hbWUnXSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbHMoc2VsZi5sZWdhY3lfcmVjZWl2ZXIuY29uZGl0aW9uLCBfZXhwZWN0ZWRfbGVnYWN5
X3Jlc3VsdHNbJ2NvbmRpdGlvbnMnXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMobGVuKHNl
bGYubGVnYWN5X3JlY2VpdmVyLm1lc3NhZ2VzKSwgbGVuKF9leHBlY3RlZF9sZWdhY3lfcmVzdWx0
c1snbWVzc2FnZXMnXSkpCi0gICAgICAgIGZvciBpbmRleCwgbWVzc2FnZSBpbiBlbnVtZXJhdGUo
c2VsZi5sZWdhY3lfcmVjZWl2ZXIubWVzc2FnZXMpOgotICAgICAgICAgICAgc2VsZi5jaGVja19t
ZXNzYWdlKG1lc3NhZ2UsIF9leHBlY3RlZF9sZWdhY3lfcmVzdWx0c1snbWVzc2FnZXMnXVtpbmRl
eF0pCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VsZi5zdXBlcmNsYXNzX3JlY2VpdmVy
Lm5hbWUsIF9leHBlY3RlZF9zdXBlcmNsYXNzX3Jlc3VsdHNbJ25hbWUnXSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbHMoc2VsZi5zdXBlcmNsYXNzX3JlY2VpdmVyLnN1cGVyY2xhc3MsIF9leHBl
Y3RlZF9zdXBlcmNsYXNzX3Jlc3VsdHNbJ3N1cGVyY2xhc3MnXSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbHMobGVuKHNlbGYuc3VwZXJjbGFzc19yZWNlaXZlci5tZXNzYWdlcyksIGxlbihfZXhw
ZWN0ZWRfc3VwZXJjbGFzc19yZXN1bHRzWydtZXNzYWdlcyddKSkKLSAgICAgICAgZm9yIGluZGV4
LCBtZXNzYWdlIGluIGVudW1lcmF0ZShzZWxmLnN1cGVyY2xhc3NfcmVjZWl2ZXIubWVzc2FnZXMp
OgotICAgICAgICAgICAgc2VsZi5jaGVja19tZXNzYWdlKG1lc3NhZ2UsIF9leHBlY3RlZF9zdXBl
cmNsYXNzX3Jlc3VsdHNbJ21lc3NhZ2VzJ11baW5kZXhdKQotCisgICAgICAgIHNlbGYudGVzdF9y
ZWNlaXZlcnMgPSBbcGFyc2VfcmVjZWl2ZXIocmVjZWl2ZXJfbmFtZSkgZm9yIHJlY2VpdmVyX25h
bWUgaW4gX3Rlc3RfcmVjZWl2ZXJfbmFtZXNdCisgICAgICAgIHNlbGYucmVjZWl2ZXJzID0gbW9k
ZWwuZ2VuZXJhdGVfZ2xvYmFsX21vZGVsKHNlbGYudGVzdF9yZWNlaXZlcnMpCiAKLWNsYXNzIEdl
bmVyYXRlZEZpbGVDb250ZW50c1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiBhc3Nl
cnRHZW5lcmF0ZWRGaWxlQ29udGVudHNFcXVhbChzZWxmLCBhY3R1YWxfZmlsZV9jb250ZW50cywg
ZXhwZWN0ZWRfZmlsZV9uYW1lKToKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgaWYgcmVzZXRf
cmVzdWx0czoKQEAgLTM4NSw0OCArNzcsMjcgQEAgY2xhc3MgR2VuZXJhdGVkRmlsZUNvbnRlbnRz
VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bHMoYWN0dWFsX2xpbmUsIGV4cGVjdGVkX2xpbmVfbGlzdFtpbmRleF0pCiAKICAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWxzKGxlbihhY3R1YWxfbGluZV9saXN0KSwgbGVuKGV4cGVjdGVkX2xp
bmVfbGlzdCkpCi0gICAgICAgIGV4Y2VwdDoKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKICAg
ICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoJ0luIGV4cGVjdGVkIGZpbGUgJXNcbicgJSBleHBl
Y3RlZF9maWxlX25hbWUpCiAgICAgICAgICAgICByYWlzZQogCi0gICAgZGVmIGFzc2VydEhlYWRl
ckVxdWFsKHNlbGYsIGlucHV0X21lc3NhZ2VzX2ZpbGVfY29udGVudHMsIGV4cGVjdGVkX2ZpbGVf
bmFtZSk6Ci0gICAgICAgIGFjdHVhbF9maWxlX2NvbnRlbnRzID0gbWVzc2FnZXMuZ2VuZXJhdGVf
bWVzc2FnZXNfaGVhZGVyKHBhcnNlci5wYXJzZShTdHJpbmdJTyhpbnB1dF9tZXNzYWdlc19maWxl
X2NvbnRlbnRzKSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0R2VuZXJhdGVkRmlsZUNvbnRlbnRzRXF1
YWwoYWN0dWFsX2ZpbGVfY29udGVudHMsIGV4cGVjdGVkX2ZpbGVfbmFtZSkKLQotICAgIGRlZiBh
c3NlcnRJbXBsZW1lbnRhdGlvbkVxdWFsKHNlbGYsIGlucHV0X21lc3NhZ2VzX2ZpbGVfY29udGVu
dHMsIGV4cGVjdGVkX2ZpbGVfbmFtZSk6Ci0gICAgICAgIGFjdHVhbF9maWxlX2NvbnRlbnRzID0g
bWVzc2FnZXMuZ2VuZXJhdGVfbWVzc2FnZV9oYW5kbGVyKHBhcnNlci5wYXJzZShTdHJpbmdJTyhp
bnB1dF9tZXNzYWdlc19maWxlX2NvbnRlbnRzKSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0R2VuZXJh
dGVkRmlsZUNvbnRlbnRzRXF1YWwoYWN0dWFsX2ZpbGVfY29udGVudHMsIGV4cGVjdGVkX2ZpbGVf
bmFtZSkKLQotCi1jbGFzcyBIZWFkZXJUZXN0KEdlbmVyYXRlZEZpbGVDb250ZW50c1Rlc3QpOgot
ICAgIGRlZiB0ZXN0X3JlY2VpdmVyX2hlYWRlcnMoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0
SGVhZGVyRXF1YWwoX21lc3NhZ2VzX2ZpbGVfY29udGVudHMsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgX2V4cGVjdGVkX3JlY2VpdmVyX2hlYWRlcl9maWxlX25hbWUpCi0gICAgICAg
IHNlbGYuYXNzZXJ0SGVhZGVyRXF1YWwoX2xlZ2FjeV9tZXNzYWdlc19maWxlX2NvbnRlbnRzLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9leHBlY3RlZF9sZWdhY3lfcmVjZWl2ZXJf
aGVhZGVyX2ZpbGVfbmFtZSkKLSAgICAgICAgc2VsZi5hc3NlcnRIZWFkZXJFcXVhbChfc3VwZXJj
bGFzc19tZXNzYWdlc19maWxlX2NvbnRlbnRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIF9leHBlY3RlZF9zdXBlcmNsYXNzX3JlY2VpdmVyX2hlYWRlcl9maWxlX25hbWUpCi0KLQot
Y2xhc3MgUmVjZWl2ZXJJbXBsZW1lbnRhdGlvblRlc3QoR2VuZXJhdGVkRmlsZUNvbnRlbnRzVGVz
dCk6Ci0gICAgZGVmIHRlc3RfcmVjZWl2ZXJfaW1wbGVtZW50YXRpb25zKHNlbGYpOgotICAgICAg
ICBzZWxmLmFzc2VydEltcGxlbWVudGF0aW9uRXF1YWwoX21lc3NhZ2VzX2ZpbGVfY29udGVudHMs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZXhwZWN0ZWRfcmVjZWl2
ZXJfaW1wbGVtZW50YXRpb25fZmlsZV9uYW1lKQotICAgICAgICBzZWxmLmFzc2VydEltcGxlbWVu
dGF0aW9uRXF1YWwoX2xlZ2FjeV9tZXNzYWdlc19maWxlX2NvbnRlbnRzLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgX2V4cGVjdGVkX2xlZ2FjeV9yZWNlaXZlcl9pbXBs
ZW1lbnRhdGlvbl9maWxlX25hbWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0SW1wbGVtZW50YXRpb25F
cXVhbChfc3VwZXJjbGFzc19tZXNzYWdlc19maWxlX2NvbnRlbnRzLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgX2V4cGVjdGVkX3N1cGVyY2xhc3NfcmVjZWl2ZXJfaW1w
bGVtZW50YXRpb25fZmlsZV9uYW1lKQotCi0KLWNsYXNzIFVuc3VwcG9ydGVkUHJlY29tcGlsZXJE
aXJlY3RpdmVUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICBkZWYgdGVzdF9lcnJvcl9hdF9l
bHNlKHNlbGYpOgotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXhwKEV4Y2VwdGlv
biwgciJFUlJPUjogJyNlbHNlLionIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhlIFwqXC5pbiBmaWxl
cyIpOgotICAgICAgICAgICAgbWVzc2FnZXMuZ2VuZXJhdGVfbWVzc2FnZV9oYW5kbGVyKHBhcnNl
ci5wYXJzZShTdHJpbmdJTygiYXNkXG4jZWxzZSBibGFcbmZvbyIpKSkKLQotICAgIGRlZiB0ZXN0
X2Vycm9yX2F0X2VsaWYoc2VsZik6Ci0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdl
eHAoRXhjZXB0aW9uLCByIkVSUk9SOiAnI2VsaWYuKicgaXMgbm90IHN1cHBvcnRlZCBpbiB0aGUg
XCpcLmluIGZpbGVzIik6Ci0gICAgICAgICAgICBtZXNzYWdlcy5nZW5lcmF0ZV9tZXNzYWdlX2hh
bmRsZXIocGFyc2VyLnBhcnNlKFN0cmluZ0lPKCJhc2RcbiNlbGlmIGJsYVxuZm9vIikpKQotCisg
ICAgZGVmIHRlc3RfcmVjZWl2ZXIoc2VsZik6CisgICAgICAgIGZvciByZWNlaXZlcl9uYW1lLCBy
ZWNlaXZlciBpbiB6aXAoX3Rlc3RfcmVjZWl2ZXJfbmFtZXMsIHNlbGYudGVzdF9yZWNlaXZlcnMp
OgorICAgICAgICAgICAgaGVhZGVyX2NvbnRlbnRzID0gbWVzc2FnZXMuZ2VuZXJhdGVfbWVzc2Fn
ZXNfaGVhZGVyKHJlY2VpdmVyKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRHZW5lcmF0ZWRGaWxl
Q29udGVudHNFcXVhbChoZWFkZXJfY29udGVudHMsIG9zLnBhdGguam9pbih0ZXN0c19kaXJlY3Rv
cnksICd7fU1lc3NhZ2VzLmgnLmZvcm1hdChyZWNlaXZlcl9uYW1lKSkpCisgICAgICAgICAgICBp
bXBsZW1lbnRhdGlvbl9jb250ZW50cyA9IG1lc3NhZ2VzLmdlbmVyYXRlX21lc3NhZ2VfaGFuZGxl
cihyZWNlaXZlcikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0R2VuZXJhdGVkRmlsZUNvbnRlbnRz
RXF1YWwoaW1wbGVtZW50YXRpb25fY29udGVudHMsIG9zLnBhdGguam9pbih0ZXN0c19kaXJlY3Rv
cnksICd7fU1lc3NhZ2VSZWNlaXZlci5jcHAnLmZvcm1hdChyZWNlaXZlcl9uYW1lKSkpCisKKyAg
ICBkZWYgdGVzdF9tZXNzYWdlX25hbWVzKHNlbGYpOgorICAgICAgICBoZWFkZXJfY29udGVudHMg
PSBtZXNzYWdlcy5nZW5lcmF0ZV9tZXNzYWdlX25hbWVzX2hlYWRlcihzZWxmLnJlY2VpdmVycykK
KyAgICAgICAgc2VsZi5hc3NlcnRHZW5lcmF0ZWRGaWxlQ29udGVudHNFcXVhbChoZWFkZXJfY29u
dGVudHMsIG9zLnBhdGguam9pbih0ZXN0c19kaXJlY3RvcnksICdNZXNzYWdlTmFtZXMuaCcpKQor
ICAgICAgICBpbXBsZW1lbnRhdGlvbl9jb250ZW50cyA9IG1lc3NhZ2VzLmdlbmVyYXRlX21lc3Nh
Z2VfbmFtZXNfaW1wbGVtZW50YXRpb24oc2VsZi5yZWNlaXZlcnMpCisgICAgICAgIHNlbGYuYXNz
ZXJ0R2VuZXJhdGVkRmlsZUNvbnRlbnRzRXF1YWwoaW1wbGVtZW50YXRpb25fY29udGVudHMsIG9z
LnBhdGguam9pbih0ZXN0c19kaXJlY3RvcnksICdNZXNzYWdlTmFtZXMuY3BwJykpCisKKyAgICBk
ZWYgdGVzdF9tZXNzYWdlX2FyZ3VtZW50X2Rlc2NyaXB0aW9uKHNlbGYpOgorICAgICAgICByZWNl
aXZlcl9oZWFkZXJfZmlsZXMgPSBbJ3t9TWVzc2FnZXMuaCcuZm9ybWF0KHJlY2VpdmVyLm5hbWUp
IGZvciByZWNlaXZlciBpbiBzZWxmLnJlY2VpdmVyc10KKyAgICAgICAgaW1wbGVtZW50YXRpb25f
Y29udGVudHMgPSBtZXNzYWdlcy5nZW5lcmF0ZV9tZXNzYWdlX2FyZ3VtZW50X2Rlc2NyaXB0aW9u
X2ltcGxlbWVudGF0aW9uKHNlbGYucmVjZWl2ZXJzLCByZWNlaXZlcl9oZWFkZXJfZmlsZXMpCisg
ICAgICAgIHNlbGYuYXNzZXJ0R2VuZXJhdGVkRmlsZUNvbnRlbnRzRXF1YWwoaW1wbGVtZW50YXRp
b25fY29udGVudHMsIG9zLnBhdGguam9pbih0ZXN0c19kaXJlY3RvcnksICdNZXNzYWdlQXJndW1l
bnREZXNjcmlwdGlvbnMuY3BwJykpCiAKIGRlZiBhZGRfcmVzZXRfcmVzdWx0c190b191bml0dGVz
dF9oZWxwKCk6CiAgICAgc2NyaXB0X25hbWUgPSBvcy5wYXRoLmJhc2VuYW1lKF9fZmlsZV9fKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tb2RlbC5weSBiL1NvdXJj
ZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbW9kZWwucHkKaW5kZXggYzcwYzIyNjcxNWQ1NjBlYmRl
MDczMzE2MjljY2MyNmEzZWVkOTZlOS4uNWNmMjIyZTAzY2NhMzM0ODI4NzQ1MThlYWYxZmU2NDFk
NGNlZDFmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tb2RlbC5w
eQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21vZGVsLnB5CkBAIC0yNCw2ICsy
NCw5IEBAIGltcG9ydCBpdGVydG9vbHMKIAogZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgQ291bnRl
cgogCitCVUlMVElOX0FUVFJJQlVURSA9ICJCdWlsdGluIgorQVNZTkNfQVRUUklCVVRFID0gIkFz
eW5jIgorCiBjbGFzcyBNZXNzYWdlUmVjZWl2ZXIob2JqZWN0KToKICAgICBkZWYgX19pbml0X18o
c2VsZiwgbmFtZSwgc3VwZXJjbGFzcywgYXR0cmlidXRlcywgbWVzc2FnZXMsIGNvbmRpdGlvbik6
CiAgICAgICAgIHNlbGYubmFtZSA9IG5hbWUKQEAgLTY0LDcgKzY3LDE1IEBAIGNsYXNzIFBhcmFt
ZXRlcihvYmplY3QpOgogICAgICAgICByZXR1cm4gYXR0cmlidXRlIGluIHNlbGYuYXR0cmlidXRl
cwogCiAKLWRlZiBjaGVja19nbG9iYWxfbW9kZWwocmVjZWl2ZXJzKToKK2lwY19yZWNlaXZlciA9
IE1lc3NhZ2VSZWNlaXZlcihuYW1lPSJJUEMiLCBzdXBlcmNsYXNzPU5vbmUsIGF0dHJpYnV0ZXM9
W0JVSUxUSU5fQVRUUklCVVRFXSwgbWVzc2FnZXM9WworICAgIE1lc3NhZ2UoJ1dyYXBwZWRBc3lu
Y01lc3NhZ2VGb3JUZXN0aW5nJywgW10sIFtdLCBhdHRyaWJ1dGVzPVtCVUlMVElOX0FUVFJJQlVU
RV0sIGNvbmRpdGlvbj1Ob25lKSwKKyAgICBNZXNzYWdlKCdTeW5jTWVzc2FnZVJlcGx5JywgW10s
IFtdLCBhdHRyaWJ1dGVzPVtCVUlMVElOX0FUVFJJQlVURV0sIGNvbmRpdGlvbj1Ob25lKSwKKyAg
ICBNZXNzYWdlKCdJbml0aWFsaXplQ29ubmVjdGlvbicsIFtdLCBbXSwgYXR0cmlidXRlcz1bQlVJ
TFRJTl9BVFRSSUJVVEVdLCBjb25kaXRpb249IlBMQVRGT1JNKENPQ09BKSIpLAorICAgIE1lc3Nh
Z2UoJ0xlZ2FjeVNlc3Npb25TdGF0ZScsIFtdLCBbXSwgYXR0cmlidXRlcz1bQlVJTFRJTl9BVFRS
SUJVVEVdLCBjb25kaXRpb249Tm9uZSkKK10sIGNvbmRpdGlvbj1Ob25lKQorCisKK2RlZiBjaGVj
a19nbG9iYWxfbW9kZWxfaW5wdXRzKHJlY2VpdmVycyk6CiAgICAgZXJyb3JzID0gW10KICAgICBy
ZWNlaXZlcl9jb3VudHMgPSBDb3VudGVyKFtyLm5hbWUgZm9yIHIgaW4gcmVjZWl2ZXJzXSkKICAg
ICByZWNlaXZlcl9kdXBsaWNhdGVzID0gW24gZm9yIG4sIGMgaW4gcmVjZWl2ZXJfY291bnRzLml0
ZW1zKCkgaWYgYyA+IDFdCkBAIC03MiwzICs4MywxMyBAQCBkZWYgY2hlY2tfZ2xvYmFsX21vZGVs
KHJlY2VpdmVycyk6CiAgICAgICAgIGVycm9ycy5hcHBlbmQoJ0R1cGxpY2F0ZSBtZXNzYWdlIHJl
Y2VpdmVyIG5hbWVzOiAlcycgJSAoJywgJy5qb2luKHJlY2VpdmVyX2R1cGxpY2F0ZXMpKSkKIAog
ICAgIHJldHVybiBlcnJvcnMKKworCitkZWYgZ2VuZXJhdGVfZ2xvYmFsX21vZGVsKHJlY2VpdmVy
cyk6CisgICAgYXN5bmNfcmVwbHlfbWVzc2FnZXMgPSBbXQorICAgIGZvciByZWNlaXZlciBpbiBy
ZWNlaXZlcnM6CisgICAgICAgIGZvciBtZXNzYWdlIGluIHJlY2VpdmVyLm1lc3NhZ2VzOgorICAg
ICAgICAgICAgaWYgbWVzc2FnZS5oYXNfYXR0cmlidXRlKEFTWU5DX0FUVFJJQlVURSk6CisgICAg
ICAgICAgICAgICAgYXN5bmNfcmVwbHlfbWVzc2FnZXMuYXBwZW5kKE1lc3NhZ2UobmFtZT0nJXNf
JXNSZXBseScgJSAocmVjZWl2ZXIubmFtZSwgbWVzc2FnZS5uYW1lKSwgcGFyYW1ldGVycz1tZXNz
YWdlLnJlcGx5X3BhcmFtZXRlcnMsIHJlcGx5X3BhcmFtZXRlcnM9W10sIGF0dHJpYnV0ZXM9Tm9u
ZSwgY29uZGl0aW9uPW1lc3NhZ2UuY29uZGl0aW9uKSkKKyAgICBhc3luY19yZXBseV9yZWNlaXZl
ciA9IE1lc3NhZ2VSZWNlaXZlcihuYW1lPSdBc3luY1JlcGx5Jywgc3VwZXJjbGFzcz0nTm9uZScs
IGF0dHJpYnV0ZXM9W0JVSUxUSU5fQVRUUklCVVRFXSwgbWVzc2FnZXM9YXN5bmNfcmVwbHlfbWVz
c2FnZXMsIGNvbmRpdGlvbj1Ob25lKQorICAgIHJldHVybiBbaXBjX3JlY2VpdmVyLCBhc3luY19y
ZXBseV9yZWNlaXZlcl0gKyByZWNlaXZlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvbW9kZWxfdW5pdHRlc3QucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L21vZGVsX3VuaXR0ZXN0LnB5CmluZGV4IDIxOGFiNmJkMGMyMDJhMjIxOTg1NjY1ODNlOWZh
ZDRlZTUzMDJhYTguLjI1NjI1N2E5Nzg3YWNhOTg0NzBkMDg0YTUxYzNjM2JiMzVkNjc3ZTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbW9kZWxfdW5pdHRlc3QucHkK
KysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tb2RlbF91bml0dGVzdC5weQpAQCAt
NTksNyArNTksNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIHsKICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbHMob3RoZXJfcmVjZWl2ZXIubmFtZSwgJ1dlYlBhZ2UnKQogICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFscyhvdGhlcl9yZWNlaXZlci5tZXNzYWdlc1swXS5uYW1lLCAnTG9hZFVSTCcpCiAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKG90aGVyX3JlY2VpdmVyLm1lc3NhZ2VzWzFdLm5hbWUsICdM
b2FkVVJMMicpCi0gICAgICAgIGVycm9ycyA9IG1vZGVsLmNoZWNrX2dsb2JhbF9tb2RlbChbcmVj
ZWl2ZXIsIG90aGVyX3JlY2VpdmVyXSkKKyAgICAgICAgZXJyb3JzID0gbW9kZWwuY2hlY2tfZ2xv
YmFsX21vZGVsX2lucHV0cyhbcmVjZWl2ZXIsIG90aGVyX3JlY2VpdmVyXSkKICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbHMobGVuKGVycm9ycyksIDEpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgi
RHVwbGljYXRlIiBpbiBlcnJvcnNbMF0pCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvcGFyc2VyX3VuaXR0ZXN0LnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dl
YmtpdC9wYXJzZXJfdW5pdHRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjg2ZWQ4MWQ1Yzc2OTEzMmI4ZDQ0
NDlkZDQ4MTY3YjkzZDIyMjYwNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvcGFyc2VyX3VuaXR0ZXN0LnB5CkBAIC0wLDAgKzEsMzU2IEBACisjIENvcHly
aWdodCAoQykgMjAxMC0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
IworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworIyBFeGFtcGxlcyBvZiBob3cg
dG8gcnVuOgorIyBweXRob24gU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9wYXJzZXJfdW5p
dHRlc3QucHkKKyMgY2QgU291cmNlL1dlYktpdC9TY3JpcHRzICYmIHB5dGhvbiAtbSB3ZWJraXQu
cGFyc2VyX3VuaXR0ZXN0CisjIGNkIFNvdXJjZS9XZWJLaXQvU2NyaXB0cyAmJiBweXRob24gLW0g
dW5pdHRlc3QgZGlzY292ZXIgLXAgJypfdW5pdHRlc3QucHknCisKK2ltcG9ydCBvcworaW1wb3J0
IHJlCitpbXBvcnQgc3lzCitpbXBvcnQgdW5pdHRlc3QKKworaWYgc3lzLnZlcnNpb25faW5mbyA+
ICgzLCAwKToKKyAgICBmcm9tIGlvIGltcG9ydCBTdHJpbmdJTworZWxzZToKKyAgICBmcm9tIFN0
cmluZ0lPIGltcG9ydCBTdHJpbmdJTworCittb2R1bGVfZGlyZWN0b3J5ID0gb3MucGF0aC5kaXJu
YW1lKG9zLnBhdGguYWJzcGF0aChfX2ZpbGVfXykpCisKK3N5cy5wYXRoLmFwcGVuZChvcy5wYXRo
LmFic3BhdGgob3MucGF0aC5qb2luKG1vZHVsZV9kaXJlY3RvcnksIG9zLnBhdGgucGFyZGlyKSkp
Citmcm9tIHdlYmtpdCBpbXBvcnQgcGFyc2VyICAjIG5vcWE6IEU0MDIKKwordGVzdHNfZGlyZWN0
b3J5ID0gb3MucGF0aC5qb2luKG1vZHVsZV9kaXJlY3RvcnksICd0ZXN0cycpCisKK19leHBlY3Rl
ZF9tb2RlbF9iYXNlID0geworICAgICdjb25kaXRpb25zJzogKCcoRU5BQkxFKFdFQktJVDIpICYm
IChORVNURURfTUFTVEVSX0NPTkRJVElPTiB8fCBNQVNURVJfT1IgJiYgTUFTVEVSX0FORCkpJyks
CisgICAgJ21lc3NhZ2VzJzogKAorICAgICAgICB7CisgICAgICAgICAgICAnbmFtZSc6ICdMb2Fk
VVJMJywKKyAgICAgICAgICAgICdwYXJhbWV0ZXJzJzogKAorICAgICAgICAgICAgICAgICgnU3Ry
aW5nJywgJ3VybCcpLAorICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICdjb25kaXRpb25zJzog
KE5vbmUpLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAnbmFtZSc6ICdMb2Fk
U29tZXRoaW5nJywKKyAgICAgICAgICAgICdwYXJhbWV0ZXJzJzogKAorICAgICAgICAgICAgICAg
ICgnU3RyaW5nJywgJ3VybCcpLAorICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICdjb25kaXRp
b25zJzogKCdFTkFCTEUoVE9VQ0hfRVZFTlRTKScpLAorICAgICAgICB9LAorICAgICAgICB7Cisg
ICAgICAgICAgICAnbmFtZSc6ICdUb3VjaEV2ZW50JywKKyAgICAgICAgICAgICdwYXJhbWV0ZXJz
JzogKAorICAgICAgICAgICAgICAgICgnV2ViS2l0OjpXZWJUb3VjaEV2ZW50JywgJ2V2ZW50Jyks
CisgICAgICAgICAgICApLAorICAgICAgICAgICAgJ2NvbmRpdGlvbnMnOiAoJyhFTkFCTEUoVE9V
Q0hfRVZFTlRTKSAmJiAoTkVTVEVEX01FU1NBR0VfQ09ORElUSU9OIHx8IFNPTUVfT1RIRVJfTUVT
U0FHRV9DT05ESVRJT04pKScpLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAn
bmFtZSc6ICdBZGRFdmVudCcsCisgICAgICAgICAgICAncGFyYW1ldGVycyc6ICgKKyAgICAgICAg
ICAgICAgICAoJ1dlYktpdDo6V2ViVG91Y2hFdmVudCcsICdldmVudCcpLAorICAgICAgICAgICAg
KSwKKyAgICAgICAgICAgICdjb25kaXRpb25zJzogKCcoRU5BQkxFKFRPVUNIX0VWRU5UUykgJiYg
KE5FU1RFRF9NRVNTQUdFX0NPTkRJVElPTiAmJiBTT01FX09USEVSX01FU1NBR0VfQ09ORElUSU9O
KSknKSwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ25hbWUnOiAnTG9hZFNv
bWV0aGluZ0Vsc2UnLAorICAgICAgICAgICAgJ3BhcmFtZXRlcnMnOiAoCisgICAgICAgICAgICAg
ICAgKCdTdHJpbmcnLCAndXJsJyksCisgICAgICAgICAgICApLAorICAgICAgICAgICAgJ2NvbmRp
dGlvbnMnOiAoJ0VOQUJMRShUT1VDSF9FVkVOVFMpJyksCisgICAgICAgIH0sCisgICAgICAgIHsK
KyAgICAgICAgICAgICduYW1lJzogJ0RpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbicsCisgICAgICAg
ICAgICAncGFyYW1ldGVycyc6ICgKKyAgICAgICAgICAgICAgICAoJ3VpbnQ2NF90JywgJ2ZyYW1l
SUQnKSwKKyAgICAgICAgICAgICAgICAoJ3VpbnQ2NF90JywgJ2xpc3RlbmVySUQnKSwKKyAgICAg
ICAgICAgICAgICAoJ3VpbnQzMl90JywgJ3BvbGljeUFjdGlvbicpLAorICAgICAgICAgICAgKSwK
KyAgICAgICAgICAgICdjb25kaXRpb25zJzogKE5vbmUpLAorICAgICAgICB9LAorICAgICAgICB7
CisgICAgICAgICAgICAnbmFtZSc6ICdDbG9zZScsCisgICAgICAgICAgICAncGFyYW1ldGVycyc6
ICgpLAorICAgICAgICAgICAgJ2NvbmRpdGlvbnMnOiAoTm9uZSksCisgICAgICAgIH0sCisgICAg
ICAgIHsKKyAgICAgICAgICAgICduYW1lJzogJ1ByZWZlcmVuY2VzRGlkQ2hhbmdlJywKKyAgICAg
ICAgICAgICdwYXJhbWV0ZXJzJzogKAorICAgICAgICAgICAgICAgICgnV2ViS2l0OjpXZWJQcmVm
ZXJlbmNlc1N0b3JlJywgJ3N0b3JlJyksCisgICAgICAgICAgICApLAorICAgICAgICAgICAgJ2Nv
bmRpdGlvbnMnOiAoTm9uZSksCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdu
YW1lJzogJ1NlbmREb3VibGVBbmRGbG9hdCcsCisgICAgICAgICAgICAncGFyYW1ldGVycyc6ICgK
KyAgICAgICAgICAgICAgICAoJ2RvdWJsZScsICdkJyksCisgICAgICAgICAgICAgICAgKCdmbG9h
dCcsICdmJyksCisgICAgICAgICAgICApLAorICAgICAgICAgICAgJ2NvbmRpdGlvbnMnOiAoTm9u
ZSksCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICduYW1lJzogJ1NlbmRJbnRz
JywKKyAgICAgICAgICAgICdwYXJhbWV0ZXJzJzogKAorICAgICAgICAgICAgICAgICgnVmVjdG9y
PHVpbnQ2NF90PicsICdpbnRzJyksCisgICAgICAgICAgICAgICAgKCdWZWN0b3I8VmVjdG9yPHVp
bnQ2NF90Pj4nLCAnaW50VmVjdG9ycycpCisgICAgICAgICAgICApLAorICAgICAgICAgICAgJ2Nv
bmRpdGlvbnMnOiAoTm9uZSksCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdu
YW1lJzogJ0NyZWF0ZVBsdWdpbicsCisgICAgICAgICAgICAncGFyYW1ldGVycyc6ICgKKyAgICAg
ICAgICAgICAgICAoJ3VpbnQ2NF90JywgJ3BsdWdpbkluc3RhbmNlSUQnKSwKKyAgICAgICAgICAg
ICAgICAoJ1dlYktpdDo6UGx1Z2luOjpQYXJhbWV0ZXJzJywgJ3BhcmFtZXRlcnMnKQorICAgICAg
ICAgICAgKSwKKyAgICAgICAgICAgICdyZXBseV9wYXJhbWV0ZXJzJzogKAorICAgICAgICAgICAg
ICAgICgnYm9vbCcsICdyZXN1bHQnKSwKKyAgICAgICAgICAgICksCisgICAgICAgICAgICAnY29u
ZGl0aW9ucyc6IChOb25lKSwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ25h
bWUnOiAnUnVuSmF2YVNjcmlwdEFsZXJ0JywKKyAgICAgICAgICAgICdwYXJhbWV0ZXJzJzogKAor
ICAgICAgICAgICAgICAgICgndWludDY0X3QnLCAnZnJhbWVJRCcpLAorICAgICAgICAgICAgICAg
ICgnU3RyaW5nJywgJ21lc3NhZ2UnKQorICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICdyZXBs
eV9wYXJhbWV0ZXJzJzogKCksCisgICAgICAgICAgICAnY29uZGl0aW9ucyc6IChOb25lKSwKKyAg
ICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ25hbWUnOiAnR2V0UGx1Z2lucycsCisg
ICAgICAgICAgICAncGFyYW1ldGVycyc6ICgKKyAgICAgICAgICAgICAgICAoJ2Jvb2wnLCAncmVm
cmVzaCcpLAorICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICdyZXBseV9wYXJhbWV0ZXJzJzog
KAorICAgICAgICAgICAgICAgICgnVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+JywgJ3BsdWdp
bnMnKSwKKyAgICAgICAgICAgICksCisgICAgICAgICAgICAnY29uZGl0aW9ucyc6IChOb25lKSwK
KyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ25hbWUnOiAnR2V0UGx1Z2luUHJv
Y2Vzc0Nvbm5lY3Rpb24nLAorICAgICAgICAgICAgJ3BhcmFtZXRlcnMnOiAoCisgICAgICAgICAg
ICAgICAgKCdTdHJpbmcnLCAncGx1Z2luUGF0aCcpLAorICAgICAgICAgICAgKSwKKyAgICAgICAg
ICAgICdyZXBseV9wYXJhbWV0ZXJzJzogKAorICAgICAgICAgICAgICAgICgnSVBDOjpDb25uZWN0
aW9uOjpIYW5kbGUnLCAnY29ubmVjdGlvbkhhbmRsZScpLAorICAgICAgICAgICAgKSwKKyAgICAg
ICAgICAgICdjb25kaXRpb25zJzogKE5vbmUpLAorICAgICAgICB9LAorICAgICAgICB7CisgICAg
ICAgICAgICAnbmFtZSc6ICdUZXN0TXVsdGlwbGVBdHRyaWJ1dGVzJywKKyAgICAgICAgICAgICdw
YXJhbWV0ZXJzJzogKAorICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICdyZXBseV9wYXJhbWV0
ZXJzJzogKAorICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICdjb25kaXRpb25zJzogKE5vbmUp
LAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAnbmFtZSc6ICdUZXN0UGFyYW1l
dGVyQXR0cmlidXRlcycsCisgICAgICAgICAgICAncGFyYW1ldGVycyc6ICgKKyAgICAgICAgICAg
ICAgICAoJ3VpbnQ2NF90JywgJ2ZvbycsICgnQXR0cmlidXRlT25lJywgJ0F0dHJpYnV0ZVR3bycp
KSwKKyAgICAgICAgICAgICAgICAoJ2RvdWJsZScsICdiYXInKSwKKyAgICAgICAgICAgICAgICAo
J2RvdWJsZScsICdiYXonLCAoJ0F0dHJpYnV0ZVRocmVlJywpKSwKKyAgICAgICAgICAgICksCisg
ICAgICAgICAgICAnY29uZGl0aW9ucyc6IChOb25lKSwKKyAgICAgICAgfSwKKyAgICAgICAgewor
ICAgICAgICAgICAgJ25hbWUnOiAnVGVtcGxhdGVUZXN0JywKKyAgICAgICAgICAgICdwYXJhbWV0
ZXJzJzogKAorICAgICAgICAgICAgICAgICgnSGFzaE1hcDxTdHJpbmcsIHN0ZDo6cGFpcjxTdHJp
bmcsIHVpbnQ2NF90Pj4nLCAnYScpLAorICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICdjb25k
aXRpb25zJzogKE5vbmUpLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAnbmFt
ZSc6ICdTZXRWaWRlb0xheWVySUQnLAorICAgICAgICAgICAgJ3BhcmFtZXRlcnMnOiAoCisgICAg
ICAgICAgICAgICAgKCdXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQnLCAn
dmlkZW9MYXllcklEJyksCisgICAgICAgICAgICApLAorICAgICAgICAgICAgJ2NvbmRpdGlvbnMn
OiAoTm9uZSksCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICduYW1lJzogJ0Rp
ZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uJywKKyAgICAgICAgICAgICdwYXJhbWV0ZXJzJzog
KAorICAgICAgICAgICAgICAgICgnSVBDOjpNYWNoUG9ydCcsICdjb25uZWN0aW9uSWRlbnRpZmll
cicpLAorICAgICAgICAgICAgICAgICgnT3B0aW9uU2V0PFdlYktpdDo6U2VsZWN0aW9uRmxhZ3M+
JywgJ2ZsYWdzJyksCisgICAgICAgICAgICApLAorICAgICAgICAgICAgJ2NvbmRpdGlvbnMnOiAo
J1BMQVRGT1JNKE1BQyknKSwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ25h
bWUnOiAnSW50ZXJwcmV0S2V5RXZlbnQnLAorICAgICAgICAgICAgJ3BhcmFtZXRlcnMnOiAoCisg
ICAgICAgICAgICAgICAgKCd1aW50MzJfdCcsICd0eXBlJyksCisgICAgICAgICAgICApLAorICAg
ICAgICAgICAgJ3JlcGx5X3BhcmFtZXRlcnMnOiAoCisgICAgICAgICAgICAgICAgKCdWZWN0b3I8
V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPicsICdjb21tYW5kTmFtZScpLAorICAgICAgICAgICAg
KSwKKyAgICAgICAgICAgICdjb25kaXRpb25zJzogKCdQTEFURk9STShNQUMpJyksCisgICAgICAg
IH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICduYW1lJzogJ0RlcHJlY2F0ZWRPcGVyYXRpb24n
LAorICAgICAgICAgICAgJ3BhcmFtZXRlcnMnOiAoCisgICAgICAgICAgICAgICAgKCdJUEM6OkR1
bW15VHlwZScsICdkdW1teScpLAorICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICdjb25kaXRp
b25zJzogKCdFTkFCTEUoREVQUkVDQVRFRF9GRUFUVVJFKScpLAorICAgICAgICB9LAorICAgICAg
ICB7CisgICAgICAgICAgICAnbmFtZSc6ICdFeHBlcmltZW50YWxPcGVyYXRpb24nLAorICAgICAg
ICAgICAgJ3BhcmFtZXRlcnMnOiAoCisgICAgICAgICAgICAgICAgKCdJUEM6OkR1bW15VHlwZScs
ICdkdW1teScpLAorICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICdjb25kaXRpb25zJzogKCdF
TkFCTEUoRVhQRVJJTUVOVEFMX0ZFQVRVUkUpJyksCisgICAgICAgIH0KKyAgICApLAorfQorCitf
ZXhwZWN0ZWRfbW9kZWxfdGVzdF93aXRob3V0X2F0dHJpYnV0ZXMgPSBkaWN0KF9leHBlY3RlZF9t
b2RlbF9iYXNlLCBuYW1lPSdUZXN0V2l0aG91dEF0dHJpYnV0ZXMnKQorCitfZXhwZWN0ZWRfbW9k
ZWxfdGVzdF93aXRoX2xlZ2FjeV9yZWNlaXZlciA9IGRpY3QoX2V4cGVjdGVkX21vZGVsX2Jhc2Us
IG5hbWU9J1Rlc3RXaXRoTGVnYWN5UmVjZWl2ZXInKQorCitfZXhwZWN0ZWRfbW9kZWxfdGVzdF93
aXRoX3N1cGVyY2xhc3MgPSB7CisgICAgJ25hbWUnOiAnVGVzdFdpdGhTdXBlcmNsYXNzJywKKyAg
ICAnc3VwZXJjbGFzcyc6ICdXZWJQYWdlQmFzZScsCisgICAgJ2NvbmRpdGlvbnMnOiBOb25lLAor
ICAgICdtZXNzYWdlcyc6ICgKKyAgICAgICAgeworICAgICAgICAgICAgJ25hbWUnOiAnTG9hZFVS
TCcsCisgICAgICAgICAgICAncGFyYW1ldGVycyc6ICgKKyAgICAgICAgICAgICAgICAoJ1N0cmlu
ZycsICd1cmwnKSwKKyAgICAgICAgICAgICksCisgICAgICAgICAgICAnY29uZGl0aW9ucyc6IChO
b25lKSwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ25hbWUnOiAnVGVzdEFz
eW5jTWVzc2FnZScsCisgICAgICAgICAgICAncGFyYW1ldGVycyc6ICgKKyAgICAgICAgICAgICAg
ICAoJ1dlYktpdDo6VGVzdFR3b1N0YXRlRW51bScsICd0d29TdGF0ZUVudW0nKSwKKyAgICAgICAg
ICAgICksCisgICAgICAgICAgICAncmVwbHlfcGFyYW1ldGVycyc6ICgKKyAgICAgICAgICAgICAg
ICAoJ3VpbnQ2NF90JywgJ3Jlc3VsdCcpLAorICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICdj
b25kaXRpb25zJzogKCdFTkFCTEUoVEVTVF9GRUFUVVJFKScpLAorICAgICAgICB9LAorICAgICAg
ICB7CisgICAgICAgICAgICAnbmFtZSc6ICdUZXN0QXN5bmNNZXNzYWdlV2l0aE5vQXJndW1lbnRz
JywKKyAgICAgICAgICAgICdwYXJhbWV0ZXJzJzogKCksCisgICAgICAgICAgICAncmVwbHlfcGFy
YW1ldGVycyc6ICgpLAorICAgICAgICAgICAgJ2NvbmRpdGlvbnMnOiAoJ0VOQUJMRShURVNUX0ZF
QVRVUkUpJyksCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICduYW1lJzogJ1Rl
c3RBc3luY01lc3NhZ2VXaXRoTXVsdGlwbGVBcmd1bWVudHMnLAorICAgICAgICAgICAgJ3BhcmFt
ZXRlcnMnOiAoKSwKKyAgICAgICAgICAgICdyZXBseV9wYXJhbWV0ZXJzJzogKAorICAgICAgICAg
ICAgICAgICgnYm9vbCcsICdmbGFnJyksCisgICAgICAgICAgICAgICAgKCd1aW50NjRfdCcsICd2
YWx1ZScpLAorICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICdjb25kaXRpb25zJzogKCdFTkFC
TEUoVEVTVF9GRUFUVVJFKScpLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAn
bmFtZSc6ICdUZXN0QXN5bmNNZXNzYWdlV2l0aENvbm5lY3Rpb24nLAorICAgICAgICAgICAgJ3Bh
cmFtZXRlcnMnOiAoCisgICAgICAgICAgICAgICAgKCdpbnQnLCAndmFsdWUnKSwKKyAgICAgICAg
ICAgICksCisgICAgICAgICAgICAncmVwbHlfcGFyYW1ldGVycyc6ICgKKyAgICAgICAgICAgICAg
ICAoJ2Jvb2wnLCAnZmxhZycpLAorICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICdjb25kaXRp
b25zJzogKCdFTkFCTEUoVEVTVF9GRUFUVVJFKScpLAorICAgICAgICB9LAorICAgICAgICB7Cisg
ICAgICAgICAgICAnbmFtZSc6ICdUZXN0U3luY01lc3NhZ2UnLAorICAgICAgICAgICAgJ3BhcmFt
ZXRlcnMnOiAoCisgICAgICAgICAgICAgICAgKCd1aW50MzJfdCcsICdwYXJhbScpLAorICAgICAg
ICAgICAgKSwKKyAgICAgICAgICAgICdyZXBseV9wYXJhbWV0ZXJzJzogKAorICAgICAgICAgICAg
ICAgICgndWludDhfdCcsICdyZXBseScpLAorICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICdj
b25kaXRpb25zJzogKE5vbmUpLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAn
bmFtZSc6ICdUZXN0U3luY2hyb25vdXNNZXNzYWdlJywKKyAgICAgICAgICAgICdwYXJhbWV0ZXJz
JzogKAorICAgICAgICAgICAgICAgICgnYm9vbCcsICd2YWx1ZScpLAorICAgICAgICAgICAgKSwK
KyAgICAgICAgICAgICdyZXBseV9wYXJhbWV0ZXJzJzogKAorICAgICAgICAgICAgICAgICgnT3B0
aW9uYWw8V2ViS2l0OjpUZXN0Q2xhc3NOYW1lPicsICdvcHRpb25hbFJlcGx5JyksCisgICAgICAg
ICAgICApLAorICAgICAgICAgICAgJ2NvbmRpdGlvbnMnOiAoTm9uZSksCisgICAgICAgIH0sCisg
ICAgKSwKK30KKworCitfcGFyc2luZ190ZXN0X2Nhc2VzID0gWworICAgIF9leHBlY3RlZF9tb2Rl
bF90ZXN0X3dpdGhvdXRfYXR0cmlidXRlcywKKyAgICBfZXhwZWN0ZWRfbW9kZWxfdGVzdF93aXRo
X2xlZ2FjeV9yZWNlaXZlciwKKyAgICBfZXhwZWN0ZWRfbW9kZWxfdGVzdF93aXRoX3N1cGVyY2xh
c3MKK10KKworCitkZWYgcGFyc2VfcmVjZWl2ZXIocmVjZWl2ZXJfbmFtZSk6CisgICAgd2l0aCBv
cGVuKG9zLnBhdGguam9pbih0ZXN0c19kaXJlY3RvcnksICd7fS5tZXNzYWdlcy5pbicuZm9ybWF0
KHJlY2VpdmVyX25hbWUpKSkgYXMgaW5fZmlsZToKKyAgICAgICAgcmV0dXJuIHBhcnNlci5wYXJz
ZShpbl9maWxlKQorICAgIGFzc2VydChGYWxzZSkKKworCitjbGFzcyBQYXJzaW5nVGVzdCh1bml0
dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzZWxmLnJlY2Vp
dmVycyA9IFtwYXJzZV9yZWNlaXZlcihleHBlY3RlZF9tb2RlbFsnbmFtZSddKSBmb3IgZXhwZWN0
ZWRfbW9kZWwgaW4gX3BhcnNpbmdfdGVzdF9jYXNlc10KKworICAgIGRlZiBjaGVja19tZXNzYWdl
KHNlbGYsIG1lc3NhZ2UsIGV4cGVjdGVkX21lc3NhZ2UpOgorICAgICAgICBzZWxmLmFzc2VydEVx
dWFscyhtZXNzYWdlLm5hbWUsIGV4cGVjdGVkX21lc3NhZ2VbJ25hbWUnXSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbHMobGVuKG1lc3NhZ2UucGFyYW1ldGVycyksIGxlbihleHBlY3RlZF9tZXNz
YWdlWydwYXJhbWV0ZXJzJ10pKQorICAgICAgICBmb3IgaW5kZXgsIHBhcmFtZXRlciBpbiBlbnVt
ZXJhdGUobWVzc2FnZS5wYXJhbWV0ZXJzKToKKyAgICAgICAgICAgIGV4cGVjdGVkX3BhcmFtZXRl
ciA9IGV4cGVjdGVkX21lc3NhZ2VbJ3BhcmFtZXRlcnMnXVtpbmRleF0KKyAgICAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWxzKHBhcmFtZXRlci50eXBlLCBleHBlY3RlZF9wYXJhbWV0ZXJbMF0pCisg
ICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwYXJhbWV0ZXIubmFtZSwgZXhwZWN0ZWRfcGFy
YW1ldGVyWzFdKQorICAgICAgICAgICAgaWYgbGVuKGV4cGVjdGVkX3BhcmFtZXRlcikgPiAyOgor
ICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBhcmFtZXRlci5hdHRyaWJ1dGVzLCBm
cm96ZW5zZXQoZXhwZWN0ZWRfcGFyYW1ldGVyWzJdKSkKKyAgICAgICAgICAgICAgICBmb3IgYXR0
cmlidXRlIGluIGV4cGVjdGVkX3BhcmFtZXRlclsyXToKKyAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5hc3NlcnRUcnVlKHBhcmFtZXRlci5oYXNfYXR0cmlidXRlKGF0dHJpYnV0ZSkpCisgICAgICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBhcmFtZXRlci5h
dHRyaWJ1dGVzLCBmcm96ZW5zZXQoKSkKKyAgICAgICAgaWYgbWVzc2FnZS5yZXBseV9wYXJhbWV0
ZXJzIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgZm9yIGluZGV4LCBwYXJhbWV0ZXIgaW4gZW51
bWVyYXRlKG1lc3NhZ2UucmVwbHlfcGFyYW1ldGVycyk6CisgICAgICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbHMocGFyYW1ldGVyLnR5cGUsIGV4cGVjdGVkX21lc3NhZ2VbJ3JlcGx5X3BhcmFt
ZXRlcnMnXVtpbmRleF1bMF0pCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocGFy
YW1ldGVyLm5hbWUsIGV4cGVjdGVkX21lc3NhZ2VbJ3JlcGx5X3BhcmFtZXRlcnMnXVtpbmRleF1b
MV0pCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKCdyZXBseV9w
YXJhbWV0ZXJzJyBpbiBleHBlY3RlZF9tZXNzYWdlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
cyhtZXNzYWdlLmNvbmRpdGlvbiwgZXhwZWN0ZWRfbWVzc2FnZVsnY29uZGl0aW9ucyddKQorCisg
ICAgZGVmIHRlc3RfcmVjZWl2ZXIoc2VsZik6CisgICAgICAgICIiIlJlY2VpdmVyIHNob3VsZCBi
ZSBwYXJzZWQgYXMgZXhwZWN0ZWQiIiIKKyAgICAgICAgZm9yIHJlY2VpdmVyLCBleHBlY3RlZF9t
b2RlbCBpbiB6aXAoc2VsZi5yZWNlaXZlcnMsIF9wYXJzaW5nX3Rlc3RfY2FzZXMpOgorICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVjZWl2ZXIubmFtZSwgZXhwZWN0ZWRfbW9kZWxbJ25h
bWUnXSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlY2VpdmVyLmNvbmRpdGlvbiwg
ZXhwZWN0ZWRfbW9kZWxbJ2NvbmRpdGlvbnMnXSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWxzKGxlbihyZWNlaXZlci5tZXNzYWdlcyksIGxlbihleHBlY3RlZF9tb2RlbFsnbWVzc2FnZXMn
XSkpCisgICAgICAgICAgICBmb3IgaW5kZXgsIG1lc3NhZ2UgaW4gZW51bWVyYXRlKHJlY2VpdmVy
Lm1lc3NhZ2VzKToKKyAgICAgICAgICAgICAgICBzZWxmLmNoZWNrX21lc3NhZ2UobWVzc2FnZSwg
ZXhwZWN0ZWRfbW9kZWxbJ21lc3NhZ2VzJ11baW5kZXhdKQorCisKK2NsYXNzIFVuc3VwcG9ydGVk
UHJlY29tcGlsZXJEaXJlY3RpdmVUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgdGVz
dF9lcnJvcl9hdF9lbHNlKHNlbGYpOgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVn
ZXhwKEV4Y2VwdGlvbiwgciJFUlJPUjogJyNlbHNlLionIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhl
IFwqXC5pbiBmaWxlcyIpOgorICAgICAgICAgICAgcGFyc2VyLnBhcnNlKFN0cmluZ0lPKCJhc2Rc
biNlbHNlIGJsYVxuZm9vIikpCisKKyAgICBkZWYgdGVzdF9lcnJvcl9hdF9lbGlmKHNlbGYpOgor
ICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXhwKEV4Y2VwdGlvbiwgciJFUlJPUjog
JyNlbGlmLionIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhlIFwqXC5pbiBmaWxlcyIpOgorICAgICAg
ICAgICAgcGFyc2VyLnBhcnNlKFN0cmluZ0lPKCJhc2RcbiNlbGlmIGJsYVxuZm9vIikpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL01ha2VmaWxlIGIvU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9NYWtlZmlsZQppbmRleCA3YmEyNDE4YWMw
M2VhMDMwYjZiN2IyNWM3YzkzMTEwMTJmYjM3NWYyLi44Nzk2ZmZiYzVhM2Y4N2I5MjNlZDZjOTgw
MjM5MWE4NzZiYWMzODJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0
L3Rlc3RzL01ha2VmaWxlCisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMv
TWFrZWZpbGUKQEAgLTEsMiArMSwyIEBACiBhbGw6Ci0JcHl0aG9uIC4uLy4uL2dlbmVyYXRlLW1l
c3NhZ2UtcmVjZWl2ZXIucHkgLiBUZXN0V2l0aFN1cGVyY2xhc3MgVGVzdFdpdGhMZWdhY3lSZWNl
aXZlciBUZXN0V2l0aG91dEF0dHJpYnV0ZXMKKwlweXRob24gLi4vLi4vZ2VuZXJhdGUtbWVzc2Fn
ZS1yZWNlaXZlci5weSAuIFRlc3RXaXRoU3VwZXJjbGFzcyBUZXN0V2l0aExlZ2FjeVJlY2VpdmVy
IFRlc3RXaXRob3V0QXR0cmlidXRlcyBUZXN0V2l0aElmTWVzc2FnZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9NZXNzYWdlQXJndW1lbnREZXNjcmlwdGlv
bnMuY3BwIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9NZXNzYWdlQXJndW1l
bnREZXNjcmlwdGlvbnMuY3BwCmluZGV4IDQ5ODM3MzkxYzE3MTA5OTQ4OTM2MDRjMGIyOTIzNWYz
MGI3OTI3MTcuLjk2Y2U5NTc4YzU2NTAwMjdjYWQ2ZWI4MjAzOTUyZGY1MjRiZjZmMTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvTWVzc2FnZUFyZ3VtZW50
RGVzY3JpcHRpb25zLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3Rz
L01lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9ucy5jcHAKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpZiBF
TkFCTEUoVEVTVF9GRUFUVVJFKQogI2luY2x1ZGUgIlRlc3RUd29TdGF0ZUVudW0uaCIKICNlbmRp
ZgorI2luY2x1ZGUgIlRlc3RXaXRoSWZNZXNzYWdlTWVzc2FnZXMuaCIKICNpbmNsdWRlICJUZXN0
V2l0aExlZ2FjeVJlY2VpdmVyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJUZXN0V2l0aFN1cGVyY2xh
c3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlRlc3RXaXRob3V0QXR0cmlidXRlc01lc3NhZ2VzLmgi
CkBAIC0yMDYsNiArMjA3LDE0IEBAIE9wdGlvbmFsPEpTQzo6SlNWYWx1ZT4ganNWYWx1ZUZvckFy
Z3VtZW50cyhKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIE1lCiAgICAgY2FzZSBN
ZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0V4cGVyaW1lbnRhbE9wZXJhdGlvbjoK
ICAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRzPE1lc3NhZ2VzOjpUZXN0
V2l0aG91dEF0dHJpYnV0ZXM6OkV4cGVyaW1lbnRhbE9wZXJhdGlvbjo6QXJndW1lbnRzPihnbG9i
YWxPYmplY3QsIGRlY29kZXIpOwogI2VuZGlmCisjZW5kaWYKKyNpZiBQTEFURk9STShDT0NPQSkK
KyAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aElmTWVzc2FnZV9Mb2FkVVJMOgorICAgICAg
ICByZXR1cm4ganNWYWx1ZUZvckRlY29kZWRBcmd1bWVudHM8TWVzc2FnZXM6OlRlc3RXaXRoSWZN
ZXNzYWdlOjpMb2FkVVJMOjpBcmd1bWVudHM+KGdsb2JhbE9iamVjdCwgZGVjb2Rlcik7CisjZW5k
aWYKKyNpZiBQTEFURk9STShHVEspCisgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhJZk1l
c3NhZ2VfTG9hZFVSTDoKKyAgICAgICAgcmV0dXJuIGpzVmFsdWVGb3JEZWNvZGVkQXJndW1lbnRz
PE1lc3NhZ2VzOjpUZXN0V2l0aElmTWVzc2FnZTo6TG9hZFVSTDo6QXJndW1lbnRzPihnbG9iYWxP
YmplY3QsIGRlY29kZXIpOwogI2VuZGlmCiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7CkBA
IC00OTQsNiArNTAzLDE5IEBAIE9wdGlvbmFsPFZlY3RvcjxBcmd1bWVudERlc2NyaXB0aW9uPj4g
bWVzc2FnZUFyZ3VtZW50RGVzY3JpcHRpb25zKE1lc3NhZ2VOYW1lIG5hCiAgICAgICAgICAgICB7
ImR1bW15IiwgIklQQzo6RHVtbXlUeXBlIiwgbnVsbHB0ciwgZmFsc2V9LAogICAgICAgICB9Owog
I2VuZGlmCisjZW5kaWYKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBjYXNlIE1lc3NhZ2VOYW1l
OjpUZXN0V2l0aElmTWVzc2FnZV9Mb2FkVVJMOgorICAgICAgICByZXR1cm4gVmVjdG9yPEFyZ3Vt
ZW50RGVzY3JpcHRpb24+IHsKKyAgICAgICAgICAgIHsidXJsIiwgIlN0cmluZyIsIG51bGxwdHIs
IGZhbHNlfSwKKyAgICAgICAgfTsKKyNlbmRpZgorI2lmIFBMQVRGT1JNKEdUSykKKyAgICBjYXNl
IE1lc3NhZ2VOYW1lOjpUZXN0V2l0aElmTWVzc2FnZV9Mb2FkVVJMOgorICAgICAgICByZXR1cm4g
VmVjdG9yPEFyZ3VtZW50RGVzY3JpcHRpb24+IHsKKyAgICAgICAgICAgIHsidXJsIiwgIlN0cmlu
ZyIsIG51bGxwdHIsIGZhbHNlfSwKKyAgICAgICAgICAgIHsidmFsdWUiLCAiaW50NjRfdCIsIG51
bGxwdHIsIGZhbHNlfSwKKyAgICAgICAgfTsKICNlbmRpZgogICAgIGRlZmF1bHQ6CiAgICAgICAg
IGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9N
ZXNzYWdlTmFtZXMuY3BwIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9NZXNz
YWdlTmFtZXMuY3BwCmluZGV4IGIxYmY5NjM0OTg4YWYyNzYzNmNkNTY5MmM3YTM1MTdmNjI5ODY3
NzkuLjFkZjFkYjRiNDkwZjUwY2FhZTkyN2JkYzBjYzQzM2UxZWE5N2RkZmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvTWVzc2FnZU5hbWVzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL01lc3NhZ2VOYW1lcy5jcHAKQEAg
LTMwLDYgKzMwLDggQEAgbmFtZXNwYWNlIElQQyB7CiBjb25zdCBjaGFyKiBkZXNjcmlwdGlvbihN
ZXNzYWdlTmFtZSBuYW1lKQogewogICAgIHN3aXRjaCAobmFtZSkgeworICAgIGNhc2UgTWVzc2Fn
ZU5hbWU6OlRlc3RXaXRoSWZNZXNzYWdlX0xvYWRVUkw6CisgICAgICAgIHJldHVybiAiVGVzdFdp
dGhJZk1lc3NhZ2VfTG9hZFVSTCI7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdh
Y3lSZWNlaXZlcl9BZGRFdmVudDoKICAgICAgICAgcmV0dXJuICJUZXN0V2l0aExlZ2FjeVJlY2Vp
dmVyX0FkZEV2ZW50IjsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2Vp
dmVyX0Nsb3NlOgpAQCAtNzgsMjAgKzgwLDEyIEBAIGNvbnN0IGNoYXIqIGRlc2NyaXB0aW9uKE1l
c3NhZ2VOYW1lIG5hbWUpCiAgICAgICAgIHJldHVybiAiVGVzdFdpdGhTdXBlcmNsYXNzX0xvYWRV
UkwiOwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNN
ZXNzYWdlOgogICAgICAgICByZXR1cm4gIlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNz
YWdlIjsKLSAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5j
TWVzc2FnZVJlcGx5OgotICAgICAgICByZXR1cm4gIlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5
bmNNZXNzYWdlUmVwbHkiOwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFz
c19UZXN0QXN5bmNNZXNzYWdlV2l0aENvbm5lY3Rpb246CiAgICAgICAgIHJldHVybiAiVGVzdFdp
dGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoQ29ubmVjdGlvbiI7Ci0gICAgY2FzZSBN
ZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoQ29ubmVj
dGlvblJlcGx5OgotICAgICAgICByZXR1cm4gIlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNN
ZXNzYWdlV2l0aENvbm5lY3Rpb25SZXBseSI7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdp
dGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoTXVsdGlwbGVBcmd1bWVudHM6CiAgICAg
ICAgIHJldHVybiAiVGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoTXVsdGlw
bGVBcmd1bWVudHMiOwotICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19U
ZXN0QXN5bmNNZXNzYWdlV2l0aE11bHRpcGxlQXJndW1lbnRzUmVwbHk6Ci0gICAgICAgIHJldHVy
biAiVGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoTXVsdGlwbGVBcmd1bWVu
dHNSZXBseSI7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RB
c3luY01lc3NhZ2VXaXRoTm9Bcmd1bWVudHM6CiAgICAgICAgIHJldHVybiAiVGVzdFdpdGhTdXBl
cmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoTm9Bcmd1bWVudHMiOwotICAgIGNhc2UgTWVzc2Fn
ZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aE5vQXJndW1lbnRz
UmVwbHk6Ci0gICAgICAgIHJldHVybiAiVGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3Nh
Z2VXaXRoTm9Bcmd1bWVudHNSZXBseSI7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhT
dXBlcmNsYXNzX1Rlc3RTeW5jTWVzc2FnZToKICAgICAgICAgcmV0dXJuICJUZXN0V2l0aFN1cGVy
Y2xhc3NfVGVzdFN5bmNNZXNzYWdlIjsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1
cGVyY2xhc3NfVGVzdFN5bmNocm9ub3VzTWVzc2FnZToKQEAgLTE0MCwxNCArMTM0LDIyIEBAIGNv
bnN0IGNoYXIqIGRlc2NyaXB0aW9uKE1lc3NhZ2VOYW1lIG5hbWUpCiAgICAgICAgIHJldHVybiAi
VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1Rlc3RQYXJhbWV0ZXJBdHRyaWJ1dGVzIjsKICAgICBjYXNl
IE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfVG91Y2hFdmVudDoKICAgICAgICAg
cmV0dXJuICJUZXN0V2l0aG91dEF0dHJpYnV0ZXNfVG91Y2hFdmVudCI7Ci0gICAgY2FzZSBNZXNz
YWdlTmFtZTo6V3JhcHBlZEFzeW5jTWVzc2FnZUZvclRlc3Rpbmc6Ci0gICAgICAgIHJldHVybiAi
SVBDOjpXcmFwcGVkQXN5bmNNZXNzYWdlRm9yVGVzdGluZyI7Ci0gICAgY2FzZSBNZXNzYWdlTmFt
ZTo6U3luY01lc3NhZ2VSZXBseToKLSAgICAgICAgcmV0dXJuICJJUEM6OlN5bmNNZXNzYWdlUmVw
bHkiOwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OkluaXRpYWxpemVDb25uZWN0aW9uOgotICAgICAg
ICByZXR1cm4gIklQQzo6SW5pdGlhbGl6ZUNvbm5lY3Rpb24iOworICAgICAgICByZXR1cm4gIklu
aXRpYWxpemVDb25uZWN0aW9uIjsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpMZWdhY3lTZXNzaW9u
U3RhdGU6Ci0gICAgICAgIHJldHVybiAiSVBDOjpMZWdhY3lTZXNzaW9uU3RhdGUiOworICAgICAg
ICByZXR1cm4gIkxlZ2FjeVNlc3Npb25TdGF0ZSI7CisgICAgY2FzZSBNZXNzYWdlTmFtZTo6U3lu
Y01lc3NhZ2VSZXBseToKKyAgICAgICAgcmV0dXJuICJTeW5jTWVzc2FnZVJlcGx5IjsKKyAgICBj
YXNlIE1lc3NhZ2VOYW1lOjpXcmFwcGVkQXN5bmNNZXNzYWdlRm9yVGVzdGluZzoKKyAgICAgICAg
cmV0dXJuICJXcmFwcGVkQXN5bmNNZXNzYWdlRm9yVGVzdGluZyI7CisgICAgY2FzZSBNZXNzYWdl
TmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VSZXBseToKKyAgICAgICAg
cmV0dXJuICJUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVJlcGx5IjsKKyAgICBj
YXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhD
b25uZWN0aW9uUmVwbHk6CisgICAgICAgIHJldHVybiAiVGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RB
c3luY01lc3NhZ2VXaXRoQ29ubmVjdGlvblJlcGx5IjsKKyAgICBjYXNlIE1lc3NhZ2VOYW1lOjpU
ZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhNdWx0aXBsZUFyZ3VtZW50c1Jl
cGx5OgorICAgICAgICByZXR1cm4gIlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdl
V2l0aE11bHRpcGxlQXJndW1lbnRzUmVwbHkiOworICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RX
aXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aE5vQXJndW1lbnRzUmVwbHk6CisgICAg
ICAgIHJldHVybiAiVGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoTm9Bcmd1
bWVudHNSZXBseSI7CiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVy
biAiPGludmFsaWQgbWVzc2FnZSBuYW1lPiI7CkBAIC0xNTYsMTQgKzE1OCw4IEBAIGNvbnN0IGNo
YXIqIGRlc2NyaXB0aW9uKE1lc3NhZ2VOYW1lIG5hbWUpCiBSZWNlaXZlck5hbWUgcmVjZWl2ZXJO
YW1lKE1lc3NhZ2VOYW1lIG1lc3NhZ2VOYW1lKQogewogICAgIHN3aXRjaCAobWVzc2FnZU5hbWUp
IHsKLSAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfTG9hZFVSTDoKLSAg
ICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZToK
LSAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2Fn
ZVdpdGhDb25uZWN0aW9uOgotICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFz
c19UZXN0QXN5bmNNZXNzYWdlV2l0aE11bHRpcGxlQXJndW1lbnRzOgotICAgIGNhc2UgTWVzc2Fn
ZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aE5vQXJndW1lbnRz
OgotICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0U3luY01lc3Nh
Z2U6Ci0gICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RTeW5jaHJv
bm91c01lc3NhZ2U6Ci0gICAgICAgIHJldHVybiBSZWNlaXZlck5hbWU6OlRlc3RXaXRoU3VwZXJj
bGFzczsKKyAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aElmTWVzc2FnZV9Mb2FkVVJMOgor
ICAgICAgICByZXR1cm4gUmVjZWl2ZXJOYW1lOjpUZXN0V2l0aElmTWVzc2FnZTsKICAgICBjYXNl
IE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0FkZEV2ZW50OgogICAgIGNhc2Ug
TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfQ2xvc2U6CiAgICAgY2FzZSBNZXNz
YWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9DcmVhdGVQbHVnaW46CkBAIC0xODcsNiAr
MTgzLDE0IEBAIFJlY2VpdmVyTmFtZSByZWNlaXZlck5hbWUoTWVzc2FnZU5hbWUgbWVzc2FnZU5h
bWUpCiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9UZXN0UGFy
YW1ldGVyQXR0cmlidXRlczoKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJl
Y2VpdmVyX1RvdWNoRXZlbnQ6CiAgICAgICAgIHJldHVybiBSZWNlaXZlck5hbWU6OlRlc3RXaXRo
TGVnYWN5UmVjZWl2ZXI7CisgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNz
X0xvYWRVUkw6CisgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RB
c3luY01lc3NhZ2U6CisgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rl
c3RBc3luY01lc3NhZ2VXaXRoQ29ubmVjdGlvbjoKKyAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0
V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhNdWx0aXBsZUFyZ3VtZW50czoKKyAg
ICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdp
dGhOb0FyZ3VtZW50czoKKyAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3Nf
VGVzdFN5bmNNZXNzYWdlOgorICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFz
c19UZXN0U3luY2hyb25vdXNNZXNzYWdlOgorICAgICAgICByZXR1cm4gUmVjZWl2ZXJOYW1lOjpU
ZXN0V2l0aFN1cGVyY2xhc3M7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRy
aWJ1dGVzX0FkZEV2ZW50OgogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmli
dXRlc19DbG9zZToKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNf
Q3JlYXRlUGx1Z2luOgpAQCAtMjEwLDE2ICsyMTQsMTYgQEAgUmVjZWl2ZXJOYW1lIHJlY2VpdmVy
TmFtZShNZXNzYWdlTmFtZSBtZXNzYWdlTmFtZSkKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0
V2l0aG91dEF0dHJpYnV0ZXNfVGVzdFBhcmFtZXRlckF0dHJpYnV0ZXM6CiAgICAgY2FzZSBNZXNz
YWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1RvdWNoRXZlbnQ6CiAgICAgICAgIHJldHVy
biBSZWNlaXZlck5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlczsKKyAgICBjYXNlIE1lc3NhZ2VO
YW1lOjpJbml0aWFsaXplQ29ubmVjdGlvbjoKKyAgICBjYXNlIE1lc3NhZ2VOYW1lOjpMZWdhY3lT
ZXNzaW9uU3RhdGU6CisgICAgY2FzZSBNZXNzYWdlTmFtZTo6U3luY01lc3NhZ2VSZXBseToKKyAg
ICBjYXNlIE1lc3NhZ2VOYW1lOjpXcmFwcGVkQXN5bmNNZXNzYWdlRm9yVGVzdGluZzoKKyAgICAg
ICAgcmV0dXJuIFJlY2VpdmVyTmFtZTo6SVBDOwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RX
aXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlUmVwbHk6CiAgICAgY2FzZSBNZXNzYWdlTmFt
ZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoQ29ubmVjdGlvblJlcGx5
OgogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNz
YWdlV2l0aE11bHRpcGxlQXJndW1lbnRzUmVwbHk6CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVz
dFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoTm9Bcmd1bWVudHNSZXBseToKICAg
ICAgICAgcmV0dXJuIFJlY2VpdmVyTmFtZTo6QXN5bmNSZXBseTsKLSAgICBjYXNlIE1lc3NhZ2VO
YW1lOjpXcmFwcGVkQXN5bmNNZXNzYWdlRm9yVGVzdGluZzoKLSAgICBjYXNlIE1lc3NhZ2VOYW1l
OjpTeW5jTWVzc2FnZVJlcGx5OgotICAgIGNhc2UgTWVzc2FnZU5hbWU6OkluaXRpYWxpemVDb25u
ZWN0aW9uOgotICAgIGNhc2UgTWVzc2FnZU5hbWU6OkxlZ2FjeVNlc3Npb25TdGF0ZToKLSAgICAg
ICAgcmV0dXJuIFJlY2VpdmVyTmFtZTo6SVBDOwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKICAgICByZXR1cm4gUmVjZWl2ZXJOYW1lOjpJbnZhbGlkOwpAQCAtMjI3LDE2NCArMjMx
LDE4MiBAQCBSZWNlaXZlck5hbWUgcmVjZWl2ZXJOYW1lKE1lc3NhZ2VOYW1lIG1lc3NhZ2VOYW1l
KQogCiBib29sIGlzVmFsaWRNZXNzYWdlTmFtZShNZXNzYWdlTmFtZSBtZXNzYWdlTmFtZSkKIHsK
LSAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNs
YXNzX0xvYWRVUkwpCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKG1lc3NhZ2VOYW1lID09
IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRoSWZNZXNzYWdlX0xvYWRVUkwpCiAgICAgICAgIHJl
dHVybiB0cnVlOwotI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCi0gICAgaWYgKG1lc3NhZ2VOYW1l
ID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdl
KQorI2VuZGlmCisjaWYgUExBVEZPUk0oR1RLKQorICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6
Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aElmTWVzc2FnZV9Mb2FkVVJMKQogICAgICAgICByZXR1cm4g
dHJ1ZTsKLSAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhT
dXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VSZXBseSkKKyNlbmRpZgorI2lmIChFTkFCTEUoVE9V
Q0hfRVZFTlRTKSAmJiAoTkVTVEVEX01FU1NBR0VfQ09ORElUSU9OICYmIFNPTUVfT1RIRVJfTUVT
U0FHRV9DT05ESVRJT04pKQorICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1l
OjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0FkZEV2ZW50KQogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICNlbmRpZgotI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCi0gICAgaWYgKG1lc3NhZ2VOYW1lID09
IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0
aE5vQXJndW1lbnRzKQorICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpU
ZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0Nsb3NlKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBp
ZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rl
c3RBc3luY01lc3NhZ2VXaXRoTm9Bcmd1bWVudHNSZXBseSkKKyAgICBpZiAobWVzc2FnZU5hbWUg
PT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9DcmVhdGVQbHVnaW4p
CiAgICAgICAgIHJldHVybiB0cnVlOwotI2VuZGlmCi0jaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkK
LSAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNs
YXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoTXVsdGlwbGVBcmd1bWVudHMpCisjaWYgRU5BQkxFKERF
UFJFQ0FURURfRkVBVFVSRSkKKyAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFt
ZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9EZXByZWNhdGVkT3BlcmF0aW9uKQogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLSAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVz
dFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoTXVsdGlwbGVBcmd1bWVudHNSZXBs
eSkKKyNlbmRpZgorI2lmIFBMQVRGT1JNKE1BQykKKyAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBD
OjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9EaWRDcmVhdGVXZWJQcm9jZXNz
Q29ubmVjdGlvbikKICAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKLSNpZiBFTkFCTEUoVEVT
VF9GRUFUVVJFKQotICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0
V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhDb25uZWN0aW9uKQorICAgIGlmICht
ZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0Rp
ZFJlY2VpdmVQb2xpY3lEZWNpc2lvbikKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgaWYgKG1l
c3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5
bmNNZXNzYWdlV2l0aENvbm5lY3Rpb25SZXBseSkKKyNpZiBFTkFCTEUoRVhQRVJJTUVOVEFMX0ZF
QVRVUkUpCisgICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRo
TGVnYWN5UmVjZWl2ZXJfRXhwZXJpbWVudGFsT3BlcmF0aW9uKQogICAgICAgICByZXR1cm4gdHJ1
ZTsKICNlbmRpZgotICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0
V2l0aFN1cGVyY2xhc3NfVGVzdFN5bmNNZXNzYWdlKQorICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJ
UEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0dldFBsdWdpblByb2Nlc3ND
b25uZWN0aW9uKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBpZiAobWVzc2FnZU5hbWUgPT0g
SVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RTeW5jaHJvbm91c01lc3Nh
Z2UpCisgICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVn
YWN5UmVjZWl2ZXJfR2V0UGx1Z2lucykKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgaWYgKG1l
c3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfTG9h
ZFVSTCkKKyNpZiBQTEFURk9STShNQUMpCisgICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVz
c2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfSW50ZXJwcmV0S2V5RXZlbnQpCiAgICAg
ICAgIHJldHVybiB0cnVlOworI2VuZGlmCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICBp
ZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZl
cl9Mb2FkU29tZXRoaW5nKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgotI2lmIChFTkFC
TEUoVE9VQ0hfRVZFTlRTKSAmJiAoTkVTVEVEX01FU1NBR0VfQ09ORElUSU9OIHx8IFNPTUVfT1RI
RVJfTUVTU0FHRV9DT05ESVRJT04pKQotICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3Nh
Z2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1RvdWNoRXZlbnQpCi0gICAgICAgIHJldHVy
biB0cnVlOwotI2VuZGlmCi0jaWYgKEVOQUJMRShUT1VDSF9FVkVOVFMpICYmIChORVNURURfTUVT
U0FHRV9DT05ESVRJT04gJiYgU09NRV9PVEhFUl9NRVNTQUdFX0NPTkRJVElPTikpCi0gICAgaWYg
KG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJf
QWRkRXZlbnQpCi0gICAgICAgIHJldHVybiB0cnVlOwotI2VuZGlmCiAjaWYgRU5BQkxFKFRPVUNI
X0VWRU5UUykKICAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdp
dGhMZWdhY3lSZWNlaXZlcl9Mb2FkU29tZXRoaW5nRWxzZSkKICAgICAgICAgcmV0dXJuIHRydWU7
CiAjZW5kaWYKLSAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdp
dGhMZWdhY3lSZWNlaXZlcl9EaWRSZWNlaXZlUG9saWN5RGVjaXNpb24pCi0gICAgICAgIHJldHVy
biB0cnVlOwotICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0
aExlZ2FjeVJlY2VpdmVyX0Nsb3NlKQorICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3Nh
Z2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0xvYWRVUkwpCiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aExl
Z2FjeVJlY2VpdmVyX1ByZWZlcmVuY2VzRGlkQ2hhbmdlKQogICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lS
ZWNlaXZlcl9SdW5KYXZhU2NyaXB0QWxlcnQpCisgICAgICAgIHJldHVybiB0cnVlOwogICAgIGlm
IChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVy
X1NlbmREb3VibGVBbmRGbG9hdCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgaWYgKG1lc3Nh
Z2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfU2VuZElu
dHMpCiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1l
c3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0NyZWF0ZVBsdWdpbikKLSAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRl
c3RXaXRoTGVnYWN5UmVjZWl2ZXJfUnVuSmF2YVNjcmlwdEFsZXJ0KQotICAgICAgICByZXR1cm4g
dHJ1ZTsKLSAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhM
ZWdhY3lSZWNlaXZlcl9HZXRQbHVnaW5zKQorICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1l
c3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1NldFZpZGVvTGF5ZXJJRCkKICAgICAg
ICAgcmV0dXJuIHRydWU7Ci0gICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6
OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24pCisgICAg
aWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2
ZXJfVGVtcGxhdGVUZXN0KQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBpZiAobWVzc2FnZU5h
bWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9UZXN0TXVsdGlw
bGVBdHRyaWJ1dGVzKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBpZiAobWVzc2FnZU5hbWUg
PT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcl9UZXN0UGFyYW1ldGVy
QXR0cmlidXRlcykKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgaWYgKG1lc3NhZ2VOYW1lID09
IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfVGVtcGxhdGVUZXN0KQor
I2lmIChFTkFCTEUoVE9VQ0hfRVZFTlRTKSAmJiAoTkVTVEVEX01FU1NBR0VfQ09ORElUSU9OIHx8
IFNPTUVfT1RIRVJfTUVTU0FHRV9DT05ESVRJT04pKQorICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJ
UEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1RvdWNoRXZlbnQpCiAgICAg
ICAgIHJldHVybiB0cnVlOwotICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1l
OjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX1NldFZpZGVvTGF5ZXJJRCkKKyNlbmRpZgorICAgIGlm
IChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfTG9h
ZFVSTCkKICAgICAgICAgcmV0dXJuIHRydWU7Ci0jaWYgUExBVEZPUk0oTUFDKQotICAgIGlmICht
ZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0Rp
ZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uKQorI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCisg
ICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFz
c19UZXN0QXN5bmNNZXNzYWdlKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgotI2lmIFBM
QVRGT1JNKE1BQykKLSAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVz
dFdpdGhMZWdhY3lSZWNlaXZlcl9JbnRlcnByZXRLZXlFdmVudCkKKyNpZiBFTkFCTEUoVEVTVF9G
RUFUVVJFKQorICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0
aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhDb25uZWN0aW9uKQogICAgICAgICByZXR1
cm4gdHJ1ZTsKICNlbmRpZgorI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCisgICAgaWYgKG1lc3Nh
Z2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNN
ZXNzYWdlV2l0aE11bHRpcGxlQXJndW1lbnRzKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyNlbmRp
ZgorI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCisgICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6
TWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aE5vQXJn
dW1lbnRzKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgorICAgIGlmIChtZXNzYWdlTmFt
ZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdFN5bmNNZXNzYWdl
KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNz
YWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RTeW5jaHJvbm91c01lc3NhZ2UpCisgICAg
ICAgIHJldHVybiB0cnVlOworI2lmIChFTkFCTEUoVE9VQ0hfRVZFTlRTKSAmJiAoTkVTVEVEX01F
U1NBR0VfQ09ORElUSU9OICYmIFNPTUVfT1RIRVJfTUVTU0FHRV9DT05ESVRJT04pKQorICAgIGlm
IChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNf
QWRkRXZlbnQpCisgICAgICAgIHJldHVybiB0cnVlOworI2VuZGlmCisgICAgaWYgKG1lc3NhZ2VO
YW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19DbG9zZSkKKyAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5h
bWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19DcmVhdGVQbHVnaW4pCisgICAgICAgIHJldHVybiB0
cnVlOwogI2lmIEVOQUJMRShERVBSRUNBVEVEX0ZFQVRVUkUpCi0gICAgaWYgKG1lc3NhZ2VOYW1l
ID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfRGVwcmVjYXRlZE9w
ZXJhdGlvbikKKyAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdp
dGhvdXRBdHRyaWJ1dGVzX0RlcHJlY2F0ZWRPcGVyYXRpb24pCiAgICAgICAgIHJldHVybiB0cnVl
OwogI2VuZGlmCi0jaWYgRU5BQkxFKEVYUEVSSU1FTlRBTF9GRUFUVVJFKQotICAgIGlmIChtZXNz
YWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0V4cGVy
aW1lbnRhbE9wZXJhdGlvbikKKyNpZiBQTEFURk9STShNQUMpCisgICAgaWYgKG1lc3NhZ2VOYW1l
ID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19EaWRDcmVhdGVXZWJQ
cm9jZXNzQ29ubmVjdGlvbikKICAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKLSAgICBpZiAo
bWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0xv
YWRVUkwpCisgICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRo
b3V0QXR0cmlidXRlc19EaWRSZWNlaXZlUG9saWN5RGVjaXNpb24pCiAgICAgICAgIHJldHVybiB0
cnVlOwotI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCi0gICAgaWYgKG1lc3NhZ2VOYW1lID09IElQ
Qzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19Mb2FkU29tZXRoaW5nKQorI2lm
IEVOQUJMRShFWFBFUklNRU5UQUxfRkVBVFVSRSkKKyAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBD
OjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0V4cGVyaW1lbnRhbE9wZXJhdGlv
bikKICAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKLSNpZiAoRU5BQkxFKFRPVUNIX0VWRU5U
UykgJiYgKE5FU1RFRF9NRVNTQUdFX0NPTkRJVElPTiB8fCBTT01FX09USEVSX01FU1NBR0VfQ09O
RElUSU9OKSkKLSAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdp
dGhvdXRBdHRyaWJ1dGVzX1RvdWNoRXZlbnQpCisgICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6
TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19HZXRQbHVnaW5Qcm9jZXNzQ29ubmVj
dGlvbikKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6
TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19HZXRQbHVnaW5zKQorICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyNpZiBQTEFURk9STShNQUMpCisgICAgaWYgKG1lc3NhZ2VOYW1lID09IElQ
Qzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19JbnRlcnByZXRLZXlFdmVudCkK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKLSNpZiAoRU5BQkxFKFRPVUNIX0VWRU5UUykg
JiYgKE5FU1RFRF9NRVNTQUdFX0NPTkRJVElPTiAmJiBTT01FX09USEVSX01FU1NBR0VfQ09ORElU
SU9OKSkKLSAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhv
dXRBdHRyaWJ1dGVzX0FkZEV2ZW50KQorI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisgICAgaWYg
KG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19M
b2FkU29tZXRoaW5nKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgogI2lmIEVOQUJMRShU
T1VDSF9FVkVOVFMpCiAgICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRl
c3RXaXRob3V0QXR0cmlidXRlc19Mb2FkU29tZXRoaW5nRWxzZSkKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAjZW5kaWYKLSAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVz
dFdpdGhvdXRBdHRyaWJ1dGVzX0RpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbikKLSAgICAgICAgcmV0
dXJuIHRydWU7Ci0gICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RX
aXRob3V0QXR0cmlidXRlc19DbG9zZSkKKyAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNz
YWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX0xvYWRVUkwpCiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91
dEF0dHJpYnV0ZXNfUHJlZmVyZW5jZXNEaWRDaGFuZ2UpCiAgICAgICAgIHJldHVybiB0cnVlOwor
ICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJp
YnV0ZXNfUnVuSmF2YVNjcmlwdEFsZXJ0KQorICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBpZiAo
bWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1Nl
bmREb3VibGVBbmRGbG9hdCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgaWYgKG1lc3NhZ2VO
YW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19TZW5kSW50cykK
ICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2Fn
ZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19DcmVhdGVQbHVnaW4pCi0gICAgICAgIHJldHVy
biB0cnVlOwotICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0
aG91dEF0dHJpYnV0ZXNfUnVuSmF2YVNjcmlwdEFsZXJ0KQotICAgICAgICByZXR1cm4gdHJ1ZTsK
LSAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRy
aWJ1dGVzX0dldFBsdWdpbnMpCisgICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5h
bWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19TZXRWaWRlb0xheWVySUQpCiAgICAgICAgIHJldHVy
biB0cnVlOwotICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0
aG91dEF0dHJpYnV0ZXNfR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24pCisgICAgaWYgKG1lc3Nh
Z2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19UZW1wbGF0
ZVRlc3QpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6
Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfVGVzdE11bHRpcGxlQXR0cmlidXRl
cykKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVz
c2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19UZXN0UGFyYW1ldGVyQXR0cmlidXRlcykK
ICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2Fn
ZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19UZW1wbGF0ZVRlc3QpCi0gICAgICAgIHJldHVy
biB0cnVlOwotICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0
aG91dEF0dHJpYnV0ZXNfU2V0VmlkZW9MYXllcklEKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSNp
ZiBQTEFURk9STShNQUMpCi0gICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6
OlRlc3RXaXRob3V0QXR0cmlidXRlc19EaWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbikKKyNp
ZiAoRU5BQkxFKFRPVUNIX0VWRU5UUykgJiYgKE5FU1RFRF9NRVNTQUdFX0NPTkRJVElPTiB8fCBT
T01FX09USEVSX01FU1NBR0VfQ09ORElUSU9OKSkKKyAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBD
OjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1RvdWNoRXZlbnQpCiAgICAgICAg
IHJldHVybiB0cnVlOwogI2VuZGlmCi0jaWYgUExBVEZPUk0oTUFDKQotICAgIGlmIChtZXNzYWdl
TmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfSW50ZXJwcmV0
S2V5RXZlbnQpCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKG1lc3NhZ2VOYW1lID09IElQ
Qzo6TWVzc2FnZU5hbWU6OkluaXRpYWxpemVDb25uZWN0aW9uKQogICAgICAgICByZXR1cm4gdHJ1
ZTsKICNlbmRpZgotI2lmIEVOQUJMRShERVBSRUNBVEVEX0ZFQVRVUkUpCi0gICAgaWYgKG1lc3Nh
Z2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlRlc3RXaXRob3V0QXR0cmlidXRlc19EZXByZWNh
dGVkT3BlcmF0aW9uKQorICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpM
ZWdhY3lTZXNzaW9uU3RhdGUpCiAgICAgICAgIHJldHVybiB0cnVlOwotI2VuZGlmCi0jaWYgRU5B
QkxFKEVYUEVSSU1FTlRBTF9GRUFUVVJFKQotICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1l
c3NhZ2VOYW1lOjpUZXN0V2l0aG91dEF0dHJpYnV0ZXNfRXhwZXJpbWVudGFsT3BlcmF0aW9uKQor
ICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpTeW5jTWVzc2FnZVJlcGx5
KQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSNlbmRpZgogICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJ
UEM6Ok1lc3NhZ2VOYW1lOjpXcmFwcGVkQXN5bmNNZXNzYWdlRm9yVGVzdGluZykKICAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgaWYgKG1lc3NhZ2VOYW1lID09IElQQzo6TWVzc2FnZU5hbWU6OlN5
bmNNZXNzYWdlUmVwbHkpCisjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKKyAgICBpZiAobWVzc2Fn
ZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01l
c3NhZ2VSZXBseSkKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgaWYgKG1lc3NhZ2VOYW1lID09
IElQQzo6TWVzc2FnZU5hbWU6OkluaXRpYWxpemVDb25uZWN0aW9uKQorI2VuZGlmCisjaWYgRU5B
QkxFKFRFU1RfRkVBVFVSRSkKKyAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFt
ZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoQ29ubmVjdGlvblJlcGx5
KQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNz
YWdlTmFtZTo6TGVnYWN5U2Vzc2lvblN0YXRlKQorI2VuZGlmCisjaWYgRU5BQkxFKFRFU1RfRkVB
VFVSRSkKKyAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVzdFdpdGhT
dXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoTXVsdGlwbGVBcmd1bWVudHNSZXBseSkKKyAg
ICAgICAgcmV0dXJuIHRydWU7CisjZW5kaWYKKyNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQorICAg
IGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3Nf
VGVzdEFzeW5jTWVzc2FnZVdpdGhOb0FyZ3VtZW50c1JlcGx5KQogICAgICAgICByZXR1cm4gdHJ1
ZTsKKyNlbmRpZgogICAgIHJldHVybiBmYWxzZTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvTWVzc2FnZU5hbWVzLmggYi9Tb3VyY2UvV2ViS2l0
L1NjcmlwdHMvd2Via2l0L3Rlc3RzL01lc3NhZ2VOYW1lcy5oCmluZGV4IGYzYjk5ZDY3ZWNlNjk4
YThhODRmNTk1NGQ5ZTI2MjQwMWYyNDZhODcuLjRmYjdhZTNjYjUxN2UzYzQ5ZGVmMDk3Yzg1Yjgz
MDhiMTNkZDJhY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVz
dHMvTWVzc2FnZU5hbWVzLmgKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0
cy9NZXNzYWdlTmFtZXMuaApAQCAtMjksMTYgKzI5LDE4IEBACiBuYW1lc3BhY2UgSVBDIHsKIAog
ZW51bSBjbGFzcyBSZWNlaXZlck5hbWUgOiB1aW50OF90IHsKLSAgICBUZXN0V2l0aFN1cGVyY2xh
c3MgPSAxCisgICAgVGVzdFdpdGhJZk1lc3NhZ2UgPSAxCiAgICAgLCBUZXN0V2l0aExlZ2FjeVJl
Y2VpdmVyID0gMgotICAgICwgVGVzdFdpdGhvdXRBdHRyaWJ1dGVzID0gMwotICAgICwgSVBDID0g
NAotICAgICwgQXN5bmNSZXBseSA9IDUKLSAgICAsIEludmFsaWQgPSA2CisgICAgLCBUZXN0V2l0
aFN1cGVyY2xhc3MgPSAzCisgICAgLCBUZXN0V2l0aG91dEF0dHJpYnV0ZXMgPSA0CisgICAgLCBJ
UEMgPSA1CisgICAgLCBBc3luY1JlcGx5ID0gNgorICAgICwgSW52YWxpZCA9IDcKIH07CiAKIGVu
dW0gY2xhc3MgTWVzc2FnZU5hbWUgOiB1aW50MTZfdCB7Ci0gICAgVGVzdFdpdGhMZWdhY3lSZWNl
aXZlcl9BZGRFdmVudAorICAgIFRlc3RXaXRoSWZNZXNzYWdlX0xvYWRVUkwKKyAgICAsIFRlc3RX
aXRoTGVnYWN5UmVjZWl2ZXJfQWRkRXZlbnQKICAgICAsIFRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJf
Q2xvc2UKICAgICAsIFRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJfQ3JlYXRlUGx1Z2luCiAgICAgLCBU
ZXN0V2l0aExlZ2FjeVJlY2VpdmVyX0RlcHJlY2F0ZWRPcGVyYXRpb24KQEAgLTYyLDEzICs2NCw5
IEBAIGVudW0gY2xhc3MgTWVzc2FnZU5hbWUgOiB1aW50MTZfdCB7CiAgICAgLCBUZXN0V2l0aExl
Z2FjeVJlY2VpdmVyX1RvdWNoRXZlbnQKICAgICAsIFRlc3RXaXRoU3VwZXJjbGFzc19Mb2FkVVJM
CiAgICAgLCBUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZQotICAgICwgVGVzdFdp
dGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VSZXBseQogICAgICwgVGVzdFdpdGhTdXBlcmNs
YXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoQ29ubmVjdGlvbgotICAgICwgVGVzdFdpdGhTdXBlcmNs
YXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoQ29ubmVjdGlvblJlcGx5CiAgICAgLCBUZXN0V2l0aFN1
cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhNdWx0aXBsZUFyZ3VtZW50cwotICAgICwgVGVz
dFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoTXVsdGlwbGVBcmd1bWVudHNSZXBs
eQogICAgICwgVGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoTm9Bcmd1bWVu
dHMKLSAgICAsIFRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aE5vQXJndW1l
bnRzUmVwbHkKICAgICAsIFRlc3RXaXRoU3VwZXJjbGFzc19UZXN0U3luY01lc3NhZ2UKICAgICAs
IFRlc3RXaXRoU3VwZXJjbGFzc19UZXN0U3luY2hyb25vdXNNZXNzYWdlCiAgICAgLCBUZXN0V2l0
aG91dEF0dHJpYnV0ZXNfQWRkRXZlbnQKQEAgLTkzLDExICs5MSwxNSBAQCBlbnVtIGNsYXNzIE1l
c3NhZ2VOYW1lIDogdWludDE2X3QgewogICAgICwgVGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1Rlc3RN
dWx0aXBsZUF0dHJpYnV0ZXMKICAgICAsIFRlc3RXaXRob3V0QXR0cmlidXRlc19UZXN0UGFyYW1l
dGVyQXR0cmlidXRlcwogICAgICwgVGVzdFdpdGhvdXRBdHRyaWJ1dGVzX1RvdWNoRXZlbnQKLSAg
ICAsIFdyYXBwZWRBc3luY01lc3NhZ2VGb3JUZXN0aW5nCi0gICAgLCBTeW5jTWVzc2FnZVJlcGx5
CiAgICAgLCBJbml0aWFsaXplQ29ubmVjdGlvbgogICAgICwgTGVnYWN5U2Vzc2lvblN0YXRlCi0g
ICAgLCBMYXN0ID0gTGVnYWN5U2Vzc2lvblN0YXRlCisgICAgLCBTeW5jTWVzc2FnZVJlcGx5Cisg
ICAgLCBXcmFwcGVkQXN5bmNNZXNzYWdlRm9yVGVzdGluZworICAgICwgVGVzdFdpdGhTdXBlcmNs
YXNzX1Rlc3RBc3luY01lc3NhZ2VSZXBseQorICAgICwgVGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RB
c3luY01lc3NhZ2VXaXRoQ29ubmVjdGlvblJlcGx5CisgICAgLCBUZXN0V2l0aFN1cGVyY2xhc3Nf
VGVzdEFzeW5jTWVzc2FnZVdpdGhNdWx0aXBsZUFyZ3VtZW50c1JlcGx5CisgICAgLCBUZXN0V2l0
aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhOb0FyZ3VtZW50c1JlcGx5CisgICAgLCBM
YXN0ID0gVGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoTm9Bcmd1bWVudHNS
ZXBseQogfTsKIAogUmVjZWl2ZXJOYW1lIHJlY2VpdmVyTmFtZShNZXNzYWdlTmFtZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoSWZNZXNz
YWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0
V2l0aElmTWVzc2FnZS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YzJmZmM0OGEyMmY4ZTlkODZk
ODk5NTA4YWZkZTI2MjRlMzljMTI1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9T
Y3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aElmTWVzc2FnZS5tZXNzYWdlcy5pbgpAQCAtMCww
ICsxLDMyIEBACisjIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
CisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyMgVGVz
dHMgc2NlbmFyaW8gd2hlcmUgI2lmJ2VkIG1lc3NhZ2Ugc2hvdWxkIGdlbmVyYXRlIGlzVmFsaWRN
ZXNzYWdlTmFtZSgpID09IHRydWUgZm9yCisjIGJvdGggY2FzZXMuCittZXNzYWdlcyAtPiBUZXN0
V2l0aElmTWVzc2FnZSB7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgdm9pZCBMb2FkVVJMKFN0
cmluZyB1cmwpCisjZW5kaWYKKyNpZiBQTEFURk9STShHVEspCisgICAgdm9pZCBMb2FkVVJMKFN0
cmluZyB1cmwsIGludDY0X3QgdmFsdWUpCisjZW5kaWYKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhJZk1lc3NhZ2VNZXNzYWdlUmVjZWl2
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aElmTWVz
c2FnZU1lc3NhZ2VSZWNlaXZlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTYyMzIwODM3MGQ0YjAyZjcxNTRk
ZjE0NGU2MThhYzE5ZTNkZWYyMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhJZk1lc3NhZ2VNZXNzYWdlUmVjZWl2ZXIuY3BwCkBA
IC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
IEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICog
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiVGVzdFdpdGhJZk1lc3NhZ2UuaCIKKworI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQ
TEFURk9STShHVEspCisjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKKyNlbmRpZgorI2luY2x1
ZGUgIkRlY29kZXIuaCIKKyNpbmNsdWRlICJIYW5kbGVNZXNzYWdlLmgiCisjaW5jbHVkZSAiVGVz
dFdpdGhJZk1lc3NhZ2VNZXNzYWdlcy5oIgorI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9S
TShHVEspCisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisjZW5kaWYKKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK3ZvaWQgVGVzdFdpdGhJZk1lc3NhZ2U6OmRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQorewor
ICAgIGF1dG8gcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpOworI2lmIFBMQVRGT1JNKENP
Q09BKQorICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6OlRlc3RXaXRo
SWZNZXNzYWdlOjpMb2FkVVJMOjpuYW1lKCkpIHsKKyAgICAgICAgSVBDOjpoYW5kbGVNZXNzYWdl
PE1lc3NhZ2VzOjpUZXN0V2l0aElmTWVzc2FnZTo6TG9hZFVSTD4oZGVjb2RlciwgdGhpcywgJlRl
c3RXaXRoSWZNZXNzYWdlOjpsb2FkVVJMKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRp
ZgorI2lmIFBMQVRGT1JNKEdUSykKKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlTmFtZSgpID09IE1l
c3NhZ2VzOjpUZXN0V2l0aElmTWVzc2FnZTo6TG9hZFVSTDo6bmFtZSgpKSB7CisgICAgICAgIElQ
Qzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6VGVzdFdpdGhJZk1lc3NhZ2U6OkxvYWRVUkw+KGRl
Y29kZXIsIHRoaXMsICZUZXN0V2l0aElmTWVzc2FnZTo6bG9hZFVSTCk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisjZW5kaWYKKyAgICBVTlVTRURfUEFSQU0oY29ubmVjdGlvbik7CisgICAgVU5V
U0VEX1BBUkFNKGRlY29kZXIpOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJr
aXQvdGVzdHMvVGVzdFdpdGhJZk1lc3NhZ2VNZXNzYWdlcy5oIGIvU291cmNlL1dlYktpdC9TY3Jp
cHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aElmTWVzc2FnZU1lc3NhZ2VzLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NDA3ZDMzODc3MTllMzllMjc4M2NiNDgxZTA3NmFiNDlkNjBjOTQ5OAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhJZk1lc3NhZ2VN
ZXNzYWdlcy5oCkBAIC0wLDAgKzEsOTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisg
KiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5o
IgorI2luY2x1ZGUgIk1lc3NhZ2VOYW1lcy5oIgorI2luY2x1ZGUgIlRlc3RXaXRoSWZNZXNzYWdl
TWVzc2FnZXNSZXBsaWVzLmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3
dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KKworCituYW1lc3BhY2UgTWVzc2FnZXMgeworbmFtZXNwYWNlIFRlc3RXaXRoSWZNZXNzYWdl
IHsKKworc3RhdGljIGlubGluZSBJUEM6OlJlY2VpdmVyTmFtZSBtZXNzYWdlUmVjZWl2ZXJOYW1l
KCkKK3sKKyAgICByZXR1cm4gSVBDOjpSZWNlaXZlck5hbWU6OlRlc3RXaXRoSWZNZXNzYWdlOwor
fQorCisjaWYgUExBVEZPUk0oQ09DT0EpCitjbGFzcyBMb2FkVVJMIHsKK3B1YmxpYzoKKyAgICB1
c2luZyBBcmd1bWVudHMgPSBzdGQ6OnR1cGxlPGNvbnN0IFN0cmluZyY+OworCisgICAgc3RhdGlj
IElQQzo6TWVzc2FnZU5hbWUgbmFtZSgpIHsgcmV0dXJuIElQQzo6TWVzc2FnZU5hbWU6OlRlc3RX
aXRoSWZNZXNzYWdlX0xvYWRVUkw7IH0KKyAgICBzdGF0aWMgY29uc3QgYm9vbCBpc1N5bmMgPSBm
YWxzZTsKKworICAgIGV4cGxpY2l0IExvYWRVUkwoY29uc3QgU3RyaW5nJiB1cmwpCisgICAgICAg
IDogbV9hcmd1bWVudHModXJsKQorICAgIHsKKyAgICB9CisKKyAgICBjb25zdCBBcmd1bWVudHMm
IGFyZ3VtZW50cygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9hcmd1bWVudHM7Cisg
ICAgfQorCitwcml2YXRlOgorICAgIEFyZ3VtZW50cyBtX2FyZ3VtZW50czsKK307CisjZW5kaWYK
KworI2lmIFBMQVRGT1JNKEdUSykKK2NsYXNzIExvYWRVUkwgeworcHVibGljOgorICAgIHVzaW5n
IEFyZ3VtZW50cyA9IHN0ZDo6dHVwbGU8Y29uc3QgU3RyaW5nJiwgaW50NjRfdD47CisKKyAgICBz
dGF0aWMgSVBDOjpNZXNzYWdlTmFtZSBuYW1lKCkgeyByZXR1cm4gSVBDOjpNZXNzYWdlTmFtZTo6
VGVzdFdpdGhJZk1lc3NhZ2VfTG9hZFVSTDsgfQorICAgIHN0YXRpYyBjb25zdCBib29sIGlzU3lu
YyA9IGZhbHNlOworCisgICAgTG9hZFVSTChjb25zdCBTdHJpbmcmIHVybCwgaW50NjRfdCB2YWx1
ZSkKKyAgICAgICAgOiBtX2FyZ3VtZW50cyh1cmwsIHZhbHVlKQorICAgIHsKKyAgICB9CisKKyAg
ICBjb25zdCBBcmd1bWVudHMmIGFyZ3VtZW50cygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1
cm4gbV9hcmd1bWVudHM7CisgICAgfQorCitwcml2YXRlOgorICAgIEFyZ3VtZW50cyBtX2FyZ3Vt
ZW50czsKK307CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgVGVzdFdpdGhJZk1lc3NhZ2UKK30g
Ly8gbmFtZXNwYWNlIE1lc3NhZ2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMv
d2Via2l0L3Rlc3RzL1Rlc3RXaXRoSWZNZXNzYWdlTWVzc2FnZXNSZXBsaWVzLmggYi9Tb3VyY2Uv
V2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoSWZNZXNzYWdlTWVzc2FnZXNSZXBs
aWVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZWIxNDY4NmU1OTg4Y2YxY2EzZDRmY2FhZmM2OTM0MTI2YjU4NDk1
YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMv
VGVzdFdpdGhJZk1lc3NhZ2VNZXNzYWdlc1JlcGxpZXMuaApAQCAtMCwwICsxLDM2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorICogQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisg
KiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJNZXNzYWdlTmFtZXMuaCIK
KyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCisKK25hbWVzcGFjZSBNZXNzYWdlcyB7CituYW1l
c3BhY2UgVGVzdFdpdGhJZk1lc3NhZ2UgeworCisKK30gLy8gbmFtZXNwYWNlIFRlc3RXaXRoSWZN
ZXNzYWdlCit9IC8vIG5hbWVzcGFjZSBNZXNzYWdlcwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>