<?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>130895</bug_id>
          
          <creation_ts>2014-03-28 05:36:54 -0700</creation_ts>
          <short_desc>Remove hostThisRegister() and hostThisValue()</short_desc>
          <delta_ts>2014-03-31 06:34:42 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dániel Bátyai">dbatyai.u-szeged</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>995301</commentid>
    <comment_count>0</comment_count>
    <who name="Dániel Bátyai">dbatyai.u-szeged</who>
    <bug_when>2014-03-28 05:36:54 -0700</bug_when>
    <thetext>in JavaScriptCore/interpreter/CallFrame.h:268
// FIXME: Remove these.

Removed hostThisRegister() and hostThisValue() and instead use thisArgumentOffset() and thisValue() respectively.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995303</commentid>
    <comment_count>1</comment_count>
      <attachid>228044</attachid>
    <who name="Dániel Bátyai">dbatyai.u-szeged</who>
    <bug_when>2014-03-28 05:55:15 -0700</bug_when>
    <thetext>Created attachment 228044
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995338</commentid>
    <comment_count>2</comment_count>
      <attachid>228044</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-03-28 09:03:07 -0700</bug_when>
    <thetext>Comment on attachment 228044
Proposed patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995573</commentid>
    <comment_count>3</comment_count>
      <attachid>228044</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-29 08:47:55 -0700</bug_when>
    <thetext>Comment on attachment 228044
Proposed patch

Rejecting attachment 228044 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.appspot.com&apos;, &apos;--bot-id=webkit-cq-01&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 228044, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
9 succeeded at 691 (offset -6 lines).
Hunk #10 succeeded at 708 (offset -6 lines).
patching file Source/WebCore/bridge/objc/objc_runtime.mm
patching file Source/WebCore/bridge/runtime_method.cpp
patching file Source/WebKit2/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file Source/WebKit2/WebProcess/Plugins/Netscape/JSNPMethod.cpp

Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, u&apos;Geoffrey Garen&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Full output: http://webkit-queues.appspot.com/results/6003747515793408</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995800</commentid>
    <comment_count>4</comment_count>
      <attachid>228163</attachid>
    <who name="Dániel Bátyai">dbatyai.u-szeged</who>
    <bug_when>2014-03-31 03:06:34 -0700</bug_when>
    <thetext>Created attachment 228163
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995813</commentid>
    <comment_count>5</comment_count>
      <attachid>228163</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-31 03:43:48 -0700</bug_when>
    <thetext>Comment on attachment 228163
Proposed patch

Clearing flags on attachment: 228163

Committed r166493: &lt;http://trac.webkit.org/changeset/166493&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995814</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-31 03:43:54 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228044</attachid>
            <date>2014-03-28 05:55:15 -0700</date>
            <delta_ts>2014-03-31 06:34:42 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>proposedpatch.patch</filename>
            <type>text/plain</type>
            <size>143457</size>
            <attacher name="Dániel Bátyai">dbatyai.u-szeged</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvQVBJQ2FsbGJhY2tGdW5jdGlv
bi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9BUElDYWxsYmFja0Z1bmN0aW9uLmgKaW5k
ZXggNWUwNGNlNi4uOTRiMTBjNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9BUElDYWxsYmFja0Z1bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9B
UElDYWxsYmFja0Z1bmN0aW9uLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBBUElDYWxsYmFja0Z1bmN0aW9uOjpjYWxsKEV4ZWNTdGF0ZSogZXhlYykKIHsK
ICAgICBKU0NvbnRleHRSZWYgZXhlY1JlZiA9IHRvUmVmKGV4ZWMpOwogICAgIEpTT2JqZWN0UmVm
IGZ1bmN0aW9uUmVmID0gdG9SZWYoZXhlYy0+Y2FsbGVlKCkpOwotICAgIEpTT2JqZWN0UmVmIHRo
aXNPYmpSZWYgPSB0b1JlZihqc0Nhc3Q8SlNPYmplY3QqPihleGVjLT5ob3N0VGhpc1ZhbHVlKCku
dG9UaGlzKGV4ZWMsIE5vdFN0cmljdE1vZGUpKSk7CisgICAgSlNPYmplY3RSZWYgdGhpc09ialJl
ZiA9IHRvUmVmKGpzQ2FzdDxKU09iamVjdCo+KGV4ZWMtPnRoaXNWYWx1ZSgpLnRvVGhpcyhleGVj
LCBOb3RTdHJpY3RNb2RlKSkpOwogCiAgICAgaW50IGFyZ3VtZW50Q291bnQgPSBzdGF0aWNfY2Fz
dDxpbnQ+KGV4ZWMtPmFyZ3VtZW50Q291bnQoKSk7CiAgICAgVmVjdG9yPEpTVmFsdWVSZWYsIDE2
PiBhcmd1bWVudHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2Fs
bGJhY2tPYmplY3RGdW5jdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxs
YmFja09iamVjdEZ1bmN0aW9ucy5oCmluZGV4IGU3ZDdiYTIuLjU4YzRlYjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1bmN0aW9ucy5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1bmN0aW9ucy5o
CkBAIC00NzIsNyArNDcyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDYWxsYmFja09iamVjdDxQYXJl
bnQ+OjpjYWxsKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBKU0NvbnRleHRSZWYgZXhlY1JlZiA9
IHRvUmVmKGV4ZWMpOwogICAgIEpTT2JqZWN0UmVmIGZ1bmN0aW9uUmVmID0gdG9SZWYoZXhlYy0+
Y2FsbGVlKCkpOwotICAgIEpTT2JqZWN0UmVmIHRoaXNPYmpSZWYgPSB0b1JlZihqc0Nhc3Q8SlNP
YmplY3QqPihleGVjLT5ob3N0VGhpc1ZhbHVlKCkudG9UaGlzKGV4ZWMsIE5vdFN0cmljdE1vZGUp
KSk7CisgICAgSlNPYmplY3RSZWYgdGhpc09ialJlZiA9IHRvUmVmKGpzQ2FzdDxKU09iamVjdCo+
KGV4ZWMtPnRoaXNWYWx1ZSgpLnRvVGhpcyhleGVjLCBOb3RTdHJpY3RNb2RlKSkpOwogICAgIAog
ICAgIGZvciAoSlNDbGFzc1JlZiBqc0NsYXNzID0ganNDYXN0PEpTQ2FsbGJhY2tPYmplY3Q8UGFy
ZW50Pio+KHRvSlMoZnVuY3Rpb25SZWYpKS0+Y2xhc3NSZWYoKTsganNDbGFzczsganNDbGFzcyA9
IGpzQ2xhc3MtPnBhcmVudENsYXNzKSB7CiAgICAgICAgIGlmIChKU09iamVjdENhbGxBc0Z1bmN0
aW9uQ2FsbGJhY2sgY2FsbEFzRnVuY3Rpb24gPSBqc0NsYXNzLT5jYWxsQXNGdW5jdGlvbikgewpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggM2NhNGNjZS4uOTllYmQzMCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTc2IEBACisyMDE0LTAzLTI4ICBEw6FuaWVsIELDoXR5
YWkgIDxkYmF0eWFpLnUtc3plZ2VkQHBhcnRuZXIuc2Ftc3VuZy5jb20+CisKKyAgICAgICAgUmVt
b3ZlIGhvc3RUaGlzUmVnaXN0ZXIoKSBhbmQgaG9zdFRoaXNWYWx1ZSgpCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzA4OTUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmVkIGhvc3RUaGlzUmVnaXN0
ZXIoKSBhbmQgaG9zdFRoaXNWYWx1ZSgpIGFuZCBpbnN0ZWFkIHVzZSB0aGlzQXJndW1lbnRPZmZz
ZXQoKSBhbmQgdGhpc1ZhbHVlKCkgcmVzcGVjdGl2ZWx5LgorCisgICAgICAgICogQVBJL0FQSUNh
bGxiYWNrRnVuY3Rpb24uaDoKKyAgICAgICAgKEpTQzo6QVBJQ2FsbGJhY2tGdW5jdGlvbjo6Y2Fs
bCk6CisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaDoKKyAgICAgICAg
KEpTQzo6SlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpjYWxsKToKKyAgICAgICAgKiBkZmcvREZH
T1NSRW50cnkuY3BwOgorICAgICAgICAoSlNDOjpERkc6OnByZXBhcmVPU1JFbnRyeSk6CisgICAg
ICAgICogaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlLmNwcDoKKyAgICAg
ICAgKEluc3BlY3Rvcjo6anNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVBdHRyaWJ1dGVFdmFs
dWF0ZSk6CisgICAgICAgIChJbnNwZWN0b3I6OmpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBl
RnVuY3Rpb25JbnRlcm5hbENvbnN0cnVjdG9yTmFtZSk6CisgICAgICAgIChJbnNwZWN0b3I6Ompz
SW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25Jc0hUTUxBbGxDb2xsZWN0aW9uKToK
KyAgICAgICAgKEluc3BlY3Rvcjo6anNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlv
blR5cGUpOgorICAgICAgICAoSW5zcGVjdG9yOjpqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlw
ZUZ1bmN0aW9uRnVuY3Rpb25EZXRhaWxzKToKKyAgICAgICAgKEluc3BlY3Rvcjo6anNJbmplY3Rl
ZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbkdldEludGVybmFsUHJvcGVydGllcyk6CisgICAg
ICAgICogaW5zcGVjdG9yL0pTSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZS5jcHA6CisgICAg
ICAgIChJbnNwZWN0b3I6OmpzSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZUZ1bmN0aW9uRXZh
bHVhdGUpOgorICAgICAgICAoSW5zcGVjdG9yOjpqc0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5
cGVGdW5jdGlvblNjb3BlVHlwZSk6CisgICAgICAgIChJbnNwZWN0b3I6OmpzSmF2YVNjcmlwdENh
bGxGcmFtZUF0dHJpYnV0ZUNhbGxlcik6CisgICAgICAgIChJbnNwZWN0b3I6OmpzSmF2YVNjcmlw
dENhbGxGcmFtZUF0dHJpYnV0ZVNvdXJjZUlEKToKKyAgICAgICAgKEluc3BlY3Rvcjo6anNKYXZh
U2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlTGluZSk6CisgICAgICAgIChJbnNwZWN0b3I6OmpzSmF2
YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZUNvbHVtbik6CisgICAgICAgIChJbnNwZWN0b3I6Ompz
SmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZUZ1bmN0aW9uTmFtZSk6CisgICAgICAgIChJbnNw
ZWN0b3I6OmpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZVNjb3BlQ2hhaW4pOgorICAgICAg
ICAoSW5zcGVjdG9yOjpqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVUaGlzT2JqZWN0KToK
KyAgICAgICAgKEluc3BlY3Rvcjo6anNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlVHlwZSk6
CisgICAgICAgICogaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmg6CisgICAgICAgIChKU0M6OkV4ZWNT
dGF0ZTo6aG9zdFRoaXNSZWdpc3Rlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkV4ZWNTdGF0
ZTo6aG9zdFRoaXNWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9Bcmd1bWVudHMu
Y3BwOgorICAgICAgICAoSlNDOjphcmd1bWVudHNGdW5jSXRlcmF0b3IpOgorICAgICAgICAqIHJ1
bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjphcnJheVByb3RvRnVuY1Rv
U3RyaW5nKToKKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNUb0xvY2FsZVN0cmluZyk6Cisg
ICAgICAgIChKU0M6OmFycmF5UHJvdG9GdW5jSm9pbik6CisgICAgICAgIChKU0M6OmFycmF5UHJv
dG9GdW5jQ29uY2F0KToKKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNQb3ApOgorICAgICAg
ICAoSlNDOjphcnJheVByb3RvRnVuY1B1c2gpOgorICAgICAgICAoSlNDOjphcnJheVByb3RvRnVu
Y1JldmVyc2UpOgorICAgICAgICAoSlNDOjphcnJheVByb3RvRnVuY1NoaWZ0KToKKyAgICAgICAg
KEpTQzo6YXJyYXlQcm90b0Z1bmNTbGljZSk6CisgICAgICAgIChKU0M6OmFycmF5UHJvdG9GdW5j
U29ydCk6CisgICAgICAgIChKU0M6OmFycmF5UHJvdG9GdW5jU3BsaWNlKToKKyAgICAgICAgKEpT
Qzo6YXJyYXlQcm90b0Z1bmNVblNoaWZ0KToKKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNS
ZWR1Y2UpOgorICAgICAgICAoSlNDOjphcnJheVByb3RvRnVuY1JlZHVjZVJpZ2h0KToKKyAgICAg
ICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNJbmRleE9mKToKKyAgICAgICAgKEpTQzo6YXJyYXlQcm90
b0Z1bmNMYXN0SW5kZXhPZik6CisgICAgICAgIChKU0M6OmFycmF5UHJvdG9GdW5jVmFsdWVzKToK
KyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNFbnRyaWVzKToKKyAgICAgICAgKEpTQzo6YXJy
YXlQcm90b0Z1bmNLZXlzKToKKyAgICAgICAgKiBydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuY3Bw
OgorICAgICAgICAoSlNDOjpib29sZWFuUHJvdG9GdW5jVG9TdHJpbmcpOgorICAgICAgICAoSlND
Ojpib29sZWFuUHJvdG9GdW5jVmFsdWVPZik6CisgICAgICAgICogcnVudGltZS9Db25zb2xlUHJv
dG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6Y29uc29sZUxvZ1dpdGhMZXZlbCk6CisgICAgICAg
IChKU0M6OmNvbnNvbGVQcm90b0Z1bmNDbGVhcik6CisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90
b0Z1bmNEaXIpOgorICAgICAgICAoSlNDOjpjb25zb2xlUHJvdG9GdW5jRGlyWE1MKToKKyAgICAg
ICAgKEpTQzo6Y29uc29sZVByb3RvRnVuY1RhYmxlKToKKyAgICAgICAgKEpTQzo6Y29uc29sZVBy
b3RvRnVuY1RyYWNlKToKKyAgICAgICAgKEpTQzo6Y29uc29sZVByb3RvRnVuY0Fzc2VydCk6Cisg
ICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1bmNDb3VudCk6CisgICAgICAgIChKU0M6OmNvbnNv
bGVQcm90b0Z1bmNQcm9maWxlKToKKyAgICAgICAgKEpTQzo6Y29uc29sZVByb3RvRnVuY1Byb2Zp
bGVFbmQpOgorICAgICAgICAoSlNDOjpjb25zb2xlUHJvdG9GdW5jVGltZSk6CisgICAgICAgIChK
U0M6OmNvbnNvbGVQcm90b0Z1bmNUaW1lRW5kKToKKyAgICAgICAgKEpTQzo6Y29uc29sZVByb3Rv
RnVuY1RpbWVTdGFtcCk6CisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1bmNHcm91cCk6Cisg
ICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1bmNHcm91cENvbGxhcHNlZCk6CisgICAgICAgIChK
U0M6OmNvbnNvbGVQcm90b0Z1bmNHcm91cEVuZCk6CisgICAgICAgICogcnVudGltZS9EYXRlUHJv
dG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6Zm9ybWF0ZURhdGVJbnN0YW5jZSk6CisgICAgICAg
IChKU0M6OmRhdGVQcm90b0Z1bmNUb0lTT1N0cmluZyk6CisgICAgICAgIChKU0M6OmRhdGVQcm90
b0Z1bmNUb0xvY2FsZVN0cmluZyk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNUb0xvY2Fs
ZURhdGVTdHJpbmcpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jVG9Mb2NhbGVUaW1lU3Ry
aW5nKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldFRpbWUpOgorICAgICAgICAoSlND
OjpkYXRlUHJvdG9GdW5jR2V0RnVsbFllYXIpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5j
R2V0VVRDRnVsbFllYXIpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0TW9udGgpOgor
ICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0VVRDTW9udGgpOgorICAgICAgICAoSlNDOjpk
YXRlUHJvdG9GdW5jR2V0RGF0ZSk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRVVENE
YXRlKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldERheSk6CisgICAgICAgIChKU0M6
OmRhdGVQcm90b0Z1bmNHZXRVVENEYXkpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0
SG91cnMpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0VVRDSG91cnMpOgorICAgICAg
ICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0TWludXRlcyk6CisgICAgICAgIChKU0M6OmRhdGVQcm90
b0Z1bmNHZXRVVENNaW51dGVzKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldFNlY29u
ZHMpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0VVRDU2Vjb25kcyk6CisgICAgICAg
IChKU0M6OmRhdGVQcm90b0Z1bmNHZXRNaWxsaVNlY29uZHMpOgorICAgICAgICAoSlNDOjpkYXRl
UHJvdG9GdW5jR2V0VVRDTWlsbGlzZWNvbmRzKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVu
Y0dldFRpbWV6b25lT2Zmc2V0KToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY1NldFRpbWUp
OgorICAgICAgICAoSlNDOjpzZXROZXdWYWx1ZUZyb21UaW1lQXJncyk6CisgICAgICAgIChKU0M6
OnNldE5ld1ZhbHVlRnJvbURhdGVBcmdzKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY1Nl
dFllYXIpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0WWVhcik6CisgICAgICAgIChK
U0M6OmRhdGVQcm90b0Z1bmNUb0pTT04pOgorICAgICAgICAqIHJ1bnRpbWUvRXJyb3JQcm90b3R5
cGUuY3BwOgorICAgICAgICAoSlNDOjplcnJvclByb3RvRnVuY1RvU3RyaW5nKToKKyAgICAgICAg
KiBydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25Q
cm90b0Z1bmNUb1N0cmluZyk6CisgICAgICAgIChKU0M6OmZ1bmN0aW9uUHJvdG9GdW5jQmluZCk6
CisgICAgICAgICogcnVudGltZS9OYW1lUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6cHJp
dmF0ZU5hbWVQcm90b0Z1bmNUb1N0cmluZyk6CisgICAgICAgICogcnVudGltZS9OdW1iZXJQcm90
b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpudW1iZXJQcm90b0Z1bmNUb0V4cG9uZW50aWFsKToK
KyAgICAgICAgKEpTQzo6bnVtYmVyUHJvdG9GdW5jVG9GaXhlZCk6CisgICAgICAgIChKU0M6Om51
bWJlclByb3RvRnVuY1RvUHJlY2lzaW9uKToKKyAgICAgICAgKEpTQzo6bnVtYmVyUHJvdG9GdW5j
Q2x6KToKKyAgICAgICAgKEpTQzo6bnVtYmVyUHJvdG9GdW5jVG9TdHJpbmcpOgorICAgICAgICAo
SlNDOjpudW1iZXJQcm90b0Z1bmNUb0xvY2FsZVN0cmluZyk6CisgICAgICAgIChKU0M6Om51bWJl
clByb3RvRnVuY1ZhbHVlT2YpOgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNw
cDoKKyAgICAgICAgKEpTQzo6b2JqZWN0UHJvdG9GdW5jVmFsdWVPZik6CisgICAgICAgIChKU0M6
Om9iamVjdFByb3RvRnVuY0hhc093blByb3BlcnR5KToKKyAgICAgICAgKEpTQzo6b2JqZWN0UHJv
dG9GdW5jSXNQcm90b3R5cGVPZik6CisgICAgICAgIChKU0M6Om9iamVjdFByb3RvRnVuY0RlZmlu
ZUdldHRlcik6CisgICAgICAgIChKU0M6Om9iamVjdFByb3RvRnVuY0RlZmluZVNldHRlcik6Cisg
ICAgICAgIChKU0M6Om9iamVjdFByb3RvRnVuY0xvb2t1cEdldHRlcik6CisgICAgICAgIChKU0M6
Om9iamVjdFByb3RvRnVuY0xvb2t1cFNldHRlcik6CisgICAgICAgIChKU0M6Om9iamVjdFByb3Rv
RnVuY1Byb3BlcnR5SXNFbnVtZXJhYmxlKToKKyAgICAgICAgKEpTQzo6b2JqZWN0UHJvdG9GdW5j
VG9Mb2NhbGVTdHJpbmcpOgorICAgICAgICAoSlNDOjpvYmplY3RQcm90b0Z1bmNUb1N0cmluZyk6
CisgICAgICAgICogcnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpy
ZWdFeHBQcm90b0Z1bmNUZXN0KToKKyAgICAgICAgKEpTQzo6cmVnRXhwUHJvdG9GdW5jRXhlYyk6
CisgICAgICAgIChKU0M6OnJlZ0V4cFByb3RvRnVuY0NvbXBpbGUpOgorICAgICAgICAoSlNDOjpy
ZWdFeHBQcm90b0Z1bmNUb1N0cmluZyk6CisgICAgICAgICogcnVudGltZS9TdHJpbmdQcm90b3R5
cGUuY3BwOgorICAgICAgICAoSlNDOjpzdHJpbmdQcm90b0Z1bmNSZXBsYWNlKToKKyAgICAgICAg
KEpTQzo6c3RyaW5nUHJvdG9GdW5jVG9TdHJpbmcpOgorICAgICAgICAoSlNDOjpzdHJpbmdQcm90
b0Z1bmNDaGFyQXQpOgorICAgICAgICAoSlNDOjpzdHJpbmdQcm90b0Z1bmNDaGFyQ29kZUF0KToK
KyAgICAgICAgKEpTQzo6c3RyaW5nUHJvdG9GdW5jQ29uY2F0KToKKyAgICAgICAgKEpTQzo6c3Ry
aW5nUHJvdG9GdW5jSW5kZXhPZik6CisgICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY0xhc3RJ
bmRleE9mKToKKyAgICAgICAgKEpTQzo6c3RyaW5nUHJvdG9GdW5jTWF0Y2gpOgorICAgICAgICAo
SlNDOjpzdHJpbmdQcm90b0Z1bmNTZWFyY2gpOgorICAgICAgICAoSlNDOjpzdHJpbmdQcm90b0Z1
bmNTbGljZSk6CisgICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY1NwbGl0KToKKyAgICAgICAg
KEpTQzo6c3RyaW5nUHJvdG9GdW5jU3Vic3RyKToKKyAgICAgICAgKEpTQzo6c3RyaW5nUHJvdG9G
dW5jU3Vic3RyaW5nKToKKyAgICAgICAgKEpTQzo6c3RyaW5nUHJvdG9GdW5jVG9Mb3dlckNhc2Up
OgorICAgICAgICAoSlNDOjpzdHJpbmdQcm90b0Z1bmNUb1VwcGVyQ2FzZSk6CisgICAgICAgIChK
U0M6OnN0cmluZ1Byb3RvRnVuY0xvY2FsZUNvbXBhcmUpOgorICAgICAgICAoSlNDOjpzdHJpbmdQ
cm90b0Z1bmNCaWcpOgorICAgICAgICAoSlNDOjpzdHJpbmdQcm90b0Z1bmNTbWFsbCk6CisgICAg
ICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY0JsaW5rKToKKyAgICAgICAgKEpTQzo6c3RyaW5nUHJv
dG9GdW5jQm9sZCk6CisgICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY0ZpeGVkKToKKyAgICAg
ICAgKEpTQzo6c3RyaW5nUHJvdG9GdW5jSXRhbGljcyk6CisgICAgICAgIChKU0M6OnN0cmluZ1By
b3RvRnVuY1N0cmlrZSk6CisgICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY1N1Yik6CisgICAg
ICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY1N1cCk6CisgICAgICAgIChKU0M6OnN0cmluZ1Byb3Rv
RnVuY0ZvbnRjb2xvcik6CisgICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY0ZvbnRzaXplKToK
KyAgICAgICAgKEpTQzo6c3RyaW5nUHJvdG9GdW5jQW5jaG9yKToKKyAgICAgICAgKEpTQzo6c3Ry
aW5nUHJvdG9GdW5jTGluayk6CisgICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY1RyaW0pOgor
ICAgICAgICAoSlNDOjpzdHJpbmdQcm90b0Z1bmNUcmltTGVmdCk6CisgICAgICAgIChKU0M6OnN0
cmluZ1Byb3RvRnVuY1RyaW1SaWdodCk6CisKIDIwMTQtMDMtMjYgIEZpbGlwIFBpemxvICA8ZnBp
emxvQGFwcGxlLmNvbT4KIAogICAgICAgICBQYXJzZSBzdGFja21hcHMgbGl2ZU91dHMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRW50cnkuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFbnRyeS5jcHAKaW5kZXggMGRhNzkxZi4uNzRlODFk
NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFbnRyeS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFbnRyeS5jcHAKQEAgLTEzMCw3
ICsxMzAsNyBAQCB2b2lkKiBwcmVwYXJlT1NSRW50cnkoRXhlY1N0YXRlKiBleGVjLCBDb2RlQmxv
Y2sqIGNvZGVCbG9jaywgdW5zaWduZWQgYnl0ZWNvZGVJbgogICAgICAgICAKICAgICAgICAgSlNW
YWx1ZSB2YWx1ZTsKICAgICAgICAgaWYgKCFhcmd1bWVudCkKLSAgICAgICAgICAgIHZhbHVlID0g
ZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgICAgICAgICAgdmFsdWUgPSBleGVjLT50aGlzVmFs
dWUoKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgdmFsdWUgPSBleGVjLT5hcmd1bWVudChh
cmd1bWVudCAtIDEpOwogICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGUuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZS5jcHAK
aW5kZXggODcxM2NjMS4uYjA3OTcwYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZS5j
cHAKQEAgLTcxLDcgKzcxLDcgQEAgdm9pZCBKU0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZTo6
ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmEKIAogRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUF0dHJpYnV0
ZUV2YWx1YXRlKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4
ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNW
YWx1ZSgpOwogICAgIEpTSW5qZWN0ZWRTY3JpcHRIb3N0KiBjYXN0ZWRUaGlzID0ganNEeW5hbWlj
Q2FzdDxKU0luamVjdGVkU2NyaXB0SG9zdCo+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKCFjYXN0ZWRU
aGlzKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKQEAgLTgyLDcgKzgy
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFBy
b3RvdHlwZUF0dHJpYnV0ZUV2YWx1YXRlKEV4ZWMKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uSW50ZXJuYWxDb25zdHJ1
Y3Rvck5hbWUoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhl
Yy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1Zh
bHVlKCk7CiAgICAgSlNJbmplY3RlZFNjcmlwdEhvc3QqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWND
YXN0PEpTSW5qZWN0ZWRTY3JpcHRIb3N0Kj4odGhpc1ZhbHVlKTsKICAgICBpZiAoIWNhc3RlZFRo
aXMpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwpAQCAtOTMsNyArOTMs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJv
dG90eXBlRnVuY3Rpb25JbnRlcm5hbENvbnN0cgogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25Jc0hUTUxBbGxDb2xsZWN0
aW9uKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhv
c3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgp
OwogICAgIEpTSW5qZWN0ZWRTY3JpcHRIb3N0KiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxK
U0luamVjdGVkU2NyaXB0SG9zdCo+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKCFjYXN0ZWRUaGlzKQog
ICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKQEAgLTEwNCw3ICsxMDQsNyBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90
eXBlRnVuY3Rpb25Jc0hUTUxBbGxDb2xsZQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25UeXBlKEV4ZWNTdGF0ZSogZXhl
YykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAg
ICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTSW5qZWN0ZWRT
Y3JpcHRIb3N0KiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU0luamVjdGVkU2NyaXB0SG9z
dCo+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKCFjYXN0ZWRUaGlzKQogICAgICAgICByZXR1cm4gdGhy
b3dWTVR5cGVFcnJvcihleGVjKTsKQEAgLTExNSw3ICsxMTUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25UeXBlKEV4
ZWNTdGF0ZQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRI
b3N0UHJvdG90eXBlRnVuY3Rpb25GdW5jdGlvbkRldGFpbHMoRXhlY1N0YXRlKiBleGVjKQogewot
ICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFs
dWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNJbmplY3RlZFNjcmlwdEhv
c3QqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTSW5qZWN0ZWRTY3JpcHRIb3N0Kj4odGhp
c1ZhbHVlKTsKICAgICBpZiAoIWNhc3RlZFRoaXMpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlw
ZUVycm9yKGV4ZWMpOwpAQCAtMTI2LDcgKzEyNiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbkZ1bmN0aW9uRGV0YWls
CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90
b3R5cGVGdW5jdGlvbkdldEludGVybmFsUHJvcGVydGllcyhFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0g
ICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1
ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBKU0luamVjdGVkU2NyaXB0SG9z
dCogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNJbmplY3RlZFNjcmlwdEhvc3QqPih0aGlz
VmFsdWUpOwogICAgIGlmICghY2FzdGVkVGhpcykKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBl
RXJyb3IoZXhlYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L0pTSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL0pTSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZS5jcHAKaW5kZXggOTY4
ZmY4Ny4uZjdmYzIxZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9KU0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvSlNKYXZhU2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBlLmNwcApAQCAt
OTgsNyArOTgsNyBAQCB2b2lkIEpTSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZTo6ZmluaXNo
Q3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYgogCiBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZUZ1bmN0aW9uRXZhbHVh
dGUoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9z
dFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7
CiAgICAgSlNKYXZhU2NyaXB0Q2FsbEZyYW1lKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxK
U0phdmFTY3JpcHRDYWxsRnJhbWUqPih0aGlzVmFsdWUpOwogICAgIGlmICghY2FzdGVkVGhpcykK
ICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CkBAIC0xMDksNyArMTA5LDcg
QEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0phdmFTY3JpcHRDYWxsRnJhbWVQcm90
b3R5cGVGdW5jdGlvbkV2YWx1YXRlKEV4ZWMKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5cGVGdW5jdGlvblNjb3BlVHlwZShFeGVjU3Rh
dGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVl
KCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBKU0ph
dmFTY3JpcHRDYWxsRnJhbWUqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTSmF2YVNjcmlw
dENhbGxGcmFtZSo+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKCFjYXN0ZWRUaGlzKQogICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKQEAgLTEyMCw3ICsxMjAsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZUZ1bmN0
aW9uU2NvcGVUeXBlKEV4ZQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSmF2YVNj
cmlwdENhbGxGcmFtZUF0dHJpYnV0ZUNhbGxlcihFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNW
YWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlz
VmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBKU0phdmFTY3JpcHRDYWxsRnJhbWUqIGNh
c3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTSmF2YVNjcmlwdENhbGxGcmFtZSo+KHRoaXNWYWx1
ZSk7CiAgICAgaWYgKCFjYXN0ZWRUaGlzKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJv
cihleGVjKTsKQEAgLTEzMSw3ICsxMzEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZUNhbGxlcihFeGVjU3RhdGUqIGV4ZQogCiBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0
ZVNvdXJjZUlEKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4
ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNW
YWx1ZSgpOwogICAgIEpTSmF2YVNjcmlwdENhbGxGcmFtZSogY2FzdGVkVGhpcyA9IGpzRHluYW1p
Y0Nhc3Q8SlNKYXZhU2NyaXB0Q2FsbEZyYW1lKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoIWNhc3Rl
ZFRoaXMpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwpAQCAtMTQyLDcg
KzE0Miw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNKYXZhU2NyaXB0Q2FsbEZy
YW1lQXR0cmlidXRlU291cmNlSUQoRXhlY1N0YXRlKiBlCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlTGluZShFeGVjU3RhdGUqIGV4
ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7Cisg
ICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBKU0phdmFTY3Jp
cHRDYWxsRnJhbWUqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTSmF2YVNjcmlwdENhbGxG
cmFtZSo+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKCFjYXN0ZWRUaGlzKQogICAgICAgICByZXR1cm4g
dGhyb3dWTVR5cGVFcnJvcihleGVjKTsKQEAgLTE1Myw3ICsxNTMsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZUxpbmUoRXhlY1N0
YXRlKiBleGVjKQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSmF2YVNjcmlwdENh
bGxGcmFtZUF0dHJpYnV0ZUNvbHVtbihFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0
aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUg
PSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBKU0phdmFTY3JpcHRDYWxsRnJhbWUqIGNhc3RlZFRo
aXMgPSBqc0R5bmFtaWNDYXN0PEpTSmF2YVNjcmlwdENhbGxGcmFtZSo+KHRoaXNWYWx1ZSk7CiAg
ICAgaWYgKCFjYXN0ZWRUaGlzKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVj
KTsKQEAgLTE2NCw3ICsxNjQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSmF2
YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZUNvbHVtbihFeGVjU3RhdGUqIGV4ZQogCiBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZUZ1bmN0
aW9uTmFtZShFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVj
LT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFs
dWUoKTsKICAgICBKU0phdmFTY3JpcHRDYWxsRnJhbWUqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWND
YXN0PEpTSmF2YVNjcmlwdENhbGxGcmFtZSo+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKCFjYXN0ZWRU
aGlzKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKQEAgLTE3NSw3ICsx
NzUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSmF2YVNjcmlwdENhbGxGcmFt
ZUF0dHJpYnV0ZUZ1bmN0aW9uTmFtZShFeGVjU3RhdAogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZVNjb3BlQ2hhaW4oRXhlY1N0YXRl
KiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgp
OworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNKYXZh
U2NyaXB0Q2FsbEZyYW1lKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU0phdmFTY3JpcHRD
YWxsRnJhbWUqPih0aGlzVmFsdWUpOwogICAgIGlmICghY2FzdGVkVGhpcykKICAgICAgICAgcmV0
dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CkBAIC0xODYsNyArMTg2LDcgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVTY29wZUNo
YWluKEV4ZWNTdGF0ZSoKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0phdmFTY3Jp
cHRDYWxsRnJhbWVBdHRyaWJ1dGVUaGlzT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBK
U1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRo
aXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTSmF2YVNjcmlwdENhbGxGcmFtZSog
Y2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNKYXZhU2NyaXB0Q2FsbEZyYW1lKj4odGhpc1Zh
bHVlKTsKICAgICBpZiAoIWNhc3RlZFRoaXMpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVy
cm9yKGV4ZWMpOwpAQCAtMTk3LDcgKzE5Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlVGhpc09iamVjdChFeGVjU3RhdGUqCiAK
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmli
dXRlVHlwZShFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVj
LT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFs
dWUoKTsKICAgICBKU0phdmFTY3JpcHRDYWxsRnJhbWUqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWND
YXN0PEpTSmF2YVNjcmlwdENhbGxGcmFtZSo+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKCFjYXN0ZWRU
aGlzKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuaAppbmRleCA5Yzk1YWJiLi42YTc2
ZDBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZy
YW1lLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5o
CkBAIC0yNjQsMTAgKzI2NCw2IEBAIG5hbWVzcGFjZSBKU0MgIHsKIAogICAgICAgICBzdGF0aWMg
aW50IG9mZnNldEZvcihzaXplX3QgYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMpIHsgcmV0dXJu
IGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzICsgSlNTdGFjazo6VGhpc0FyZ3VtZW50IC0gMTsg
fQogCi0gICAgICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhlc2UuCi0gICAgICAgIGludCBob3N0VGhp
c1JlZ2lzdGVyKCkgeyByZXR1cm4gdGhpc0FyZ3VtZW50T2Zmc2V0KCk7IH0KLSAgICAgICAgSlNW
YWx1ZSBob3N0VGhpc1ZhbHVlKCkgeyByZXR1cm4gdGhpc1ZhbHVlKCk7IH0KLQogICAgICAgICBz
dGF0aWMgQ2FsbEZyYW1lKiBub0NhbGxlcigpIHsgcmV0dXJuIDA7IH0KIAogICAgICAgICBib29s
IGlzVk1FbnRyeVNlbnRpbmVsKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Bcmd1bWVudHMuY3BwCmluZGV4IGFmN2U2NmEuLmRhMzA1ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmNwcApAQCAtMzc3LDcgKzM3Nyw3IEBAIHZvaWQg
QXJndW1lbnRzOjp0ZWFyT2ZmKENhbGxGcmFtZSogY2FsbEZyYW1lLCBJbmxpbmVDYWxsRnJhbWUq
IGlubGluZUNhbGxGcmFtZSkKICAgICAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJn
dW1lbnRzRnVuY0l0ZXJhdG9yKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU09iamVjdCogdGhp
c09iaiA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKS50b1RoaXMoZXhlYywgU3RyaWN0TW9kZSkudG9P
YmplY3QoZXhlYyk7CisgICAgSlNPYmplY3QqIHRoaXNPYmogPSBleGVjLT50aGlzVmFsdWUoKS50
b1RoaXMoZXhlYywgU3RyaWN0TW9kZSkudG9PYmplY3QoZXhlYyk7CiAgICAgQXJndW1lbnRzKiBh
cmd1bWVudHMgPSBqc0R5bmFtaWNDYXN0PEFyZ3VtZW50cyo+KHRoaXNPYmopOwogICAgIGlmICgh
YXJndW1lbnRzKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93VHlwZUVycm9y
KGV4ZWMsICJBdHRlbXB0ZWQgdG8gdXNlIEFyZ3VtZW50cyBpdGVyYXRvciBvbiBub24tQXJndW1l
bnRzIG9iamVjdCIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0FycmF5UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5
UHJvdG90eXBlLmNwcAppbmRleCA1ZWU3YmVkLi5kNjJjMDMyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCkBAIC0yNjgsNyArMjY4LDcg
QEAgdm9pZCB1bnNoaWZ0KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHRoaXNPYmosIHVuc2ln
bmVkIGhlYWRlciwgdW5zaWduZWQgY3VycmUKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBhcnJheVByb3RvRnVuY1RvU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVl
IHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKS50b1RoaXMoZXhlYywgU3RyaWN0TW9k
ZSk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKS50b1RoaXMoZXhl
YywgU3RyaWN0TW9kZSk7CiAKICAgICAvLyAxLiBMZXQgYXJyYXkgYmUgdGhlIHJlc3VsdCBvZiBj
YWxsaW5nIFRvT2JqZWN0IG9uIHRoZSB0aGlzIHZhbHVlLgogICAgIEpTT2JqZWN0KiB0aGlzT2Jq
ZWN0ID0gdGhpc1ZhbHVlLnRvT2JqZWN0KGV4ZWMpOwpAQCAtMzI2LDcgKzMyNiw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNUb1N0cmluZyhFeGVjU3RhdGUq
IGV4ZWMpCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNUb0xv
Y2FsZVN0cmluZyhFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBl
eGVjLT5ob3N0VGhpc1ZhbHVlKCkudG9UaGlzKGV4ZWMsIFN0cmljdE1vZGUpOworICAgIEpTVmFs
dWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCkudG9UaGlzKGV4ZWMsIFN0cmljdE1vZGUp
OwogCiAgICAgSlNPYmplY3QqIHRoaXNPYmogPSB0aGlzVmFsdWUudG9PYmplY3QoZXhlYyk7CiAg
ICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQpAQCAtMzY5LDcgKzM2OSw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNUb0xvY2FsZVN0cmluZyhFeGVjU3Rh
dGUqIGV4ZWMpCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNK
b2luKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU09iamVjdCogdGhpc09iaiA9IGV4ZWMtPmhv
c3RUaGlzVmFsdWUoKS50b1RoaXMoZXhlYywgU3RyaWN0TW9kZSkudG9PYmplY3QoZXhlYyk7Cisg
ICAgSlNPYmplY3QqIHRoaXNPYmogPSBleGVjLT50aGlzVmFsdWUoKS50b1RoaXMoZXhlYywgU3Ry
aWN0TW9kZSkudG9PYmplY3QoZXhlYyk7CiAgICAgdW5zaWduZWQgbGVuZ3RoID0gdGhpc09iai0+
Z2V0KGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgpLnRvVUludDMyKGV4ZWMpOwog
ICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKQEAgLTQxNSw3ICs0MTUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jSm9pbihFeGVjU3RhdGUqIGV4ZWMpCiAKIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNDb25jYXQoRXhlY1N0YXRlKiBl
eGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpLnRv
VGhpcyhleGVjLCBTdHJpY3RNb2RlKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRo
aXNWYWx1ZSgpLnRvVGhpcyhleGVjLCBTdHJpY3RNb2RlKTsKICAgICBKU0FycmF5KiBhcnIgPSBj
b25zdHJ1Y3RFbXB0eUFycmF5KGV4ZWMsIG51bGxwdHIpOwogICAgIHVuc2lnbmVkIG4gPSAwOwog
ICAgIEpTVmFsdWUgY3VyQXJnID0gdGhpc1ZhbHVlLnRvT2JqZWN0KGV4ZWMpOwpAQCAtNDUwLDcg
KzQ1MCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNDb25j
YXQoRXhlY1N0YXRlKiBleGVjKQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5
UHJvdG9GdW5jUG9wKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9
IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKS50b1RoaXMoZXhlYywgU3RyaWN0TW9kZSk7CisgICAgSlNW
YWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKS50b1RoaXMoZXhlYywgU3RyaWN0TW9k
ZSk7CiAKICAgICBpZiAoaXNKU0FycmF5KHRoaXNWYWx1ZSkpCiAgICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoYXNBcnJheSh0aGlzVmFsdWUpLT5wb3AoZXhlYykpOwpAQCAtNDc5LDcgKzQ3
OSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNQb3AoRXhl
Y1N0YXRlKiBleGVjKQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9G
dW5jUHVzaChFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVj
LT5ob3N0VGhpc1ZhbHVlKCkudG9UaGlzKGV4ZWMsIFN0cmljdE1vZGUpOworICAgIEpTVmFsdWUg
dGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCkudG9UaGlzKGV4ZWMsIFN0cmljdE1vZGUpOwog
CiAgICAgaWYgKGlzSlNBcnJheSh0aGlzVmFsdWUpICYmIGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA9
PSAxKSB7CiAgICAgICAgIEpTQXJyYXkqIGFycmF5ID0gYXNBcnJheSh0aGlzVmFsdWUpOwpAQCAt
NTEyLDcgKzUxMiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1
bmNQdXNoKEV4ZWNTdGF0ZSogZXhlYykKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBh
cnJheVByb3RvRnVuY1JldmVyc2UoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTT2JqZWN0KiB0
aGlzT2JqID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpLnRvVGhpcyhleGVjLCBTdHJpY3RNb2RlKS50
b09iamVjdChleGVjKTsKKyAgICBKU09iamVjdCogdGhpc09iaiA9IGV4ZWMtPnRoaXNWYWx1ZSgp
LnRvVGhpcyhleGVjLCBTdHJpY3RNb2RlKS50b09iamVjdChleGVjKTsKICAgICB1bnNpZ25lZCBs
ZW5ndGggPSB0aGlzT2JqLT5nZXQoZXhlYywgZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCku
dG9VSW50MzIoZXhlYyk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwpAQCAtNTUwLDcgKzU1MCw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNSZXZlcnNlKEV4ZWNT
dGF0ZSogZXhlYykKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVu
Y1NoaWZ0KEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU09iamVjdCogdGhpc09iaiA9IGV4ZWMt
Pmhvc3RUaGlzVmFsdWUoKS50b1RoaXMoZXhlYywgU3RyaWN0TW9kZSkudG9PYmplY3QoZXhlYyk7
CisgICAgSlNPYmplY3QqIHRoaXNPYmogPSBleGVjLT50aGlzVmFsdWUoKS50b1RoaXMoZXhlYywg
U3RyaWN0TW9kZSkudG9PYmplY3QoZXhlYyk7CiAgICAgdW5zaWduZWQgbGVuZ3RoID0gdGhpc09i
ai0+Z2V0KGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgpLnRvVUludDMyKGV4ZWMp
OwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKQEAgLTU3Miw3ICs1NzIsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jU2hpZnQoRXhlY1N0YXRlKiBleGVjKQogRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY1NsaWNlKEV4ZWNTdGF0ZSog
ZXhlYykKIHsKICAgICAvLyBodHRwOi8vZGV2ZWxvcGVyLm5ldHNjYXBlLmNvbS9kb2NzL21hbnVh
bHMvanMvY2xpZW50L2pzcmVmL2FycmF5Lmh0bSMxMTkzNzEzIG9yIDE1LjQuNC4xMAotICAgIEpT
T2JqZWN0KiB0aGlzT2JqID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpLnRvVGhpcyhleGVjLCBTdHJp
Y3RNb2RlKS50b09iamVjdChleGVjKTsKKyAgICBKU09iamVjdCogdGhpc09iaiA9IGV4ZWMtPnRo
aXNWYWx1ZSgpLnRvVGhpcyhleGVjLCBTdHJpY3RNb2RlKS50b09iamVjdChleGVjKTsKICAgICB1
bnNpZ25lZCBsZW5ndGggPSB0aGlzT2JqLT5nZXQoZXhlYywgZXhlYy0+cHJvcGVydHlOYW1lcygp
Lmxlbmd0aCkudG9VSW50MzIoZXhlYyk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQog
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwpAQCAtNjgwLDcg
KzY4MCw3IEBAIHN0YXRpYyBib29sIHBlcmZvcm1TbG93U29ydChFeGVjU3RhdGUqIGV4ZWMsIEpT
T2JqZWN0KiB0aGlzT2JqLCB1bnNpZ25lZCBsZW5ndGgsCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNTb3J0KEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU09i
amVjdCogdGhpc09iaiA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKS50b1RoaXMoZXhlYywgU3RyaWN0
TW9kZSkudG9PYmplY3QoZXhlYyk7CisgICAgSlNPYmplY3QqIHRoaXNPYmogPSBleGVjLT50aGlz
VmFsdWUoKS50b1RoaXMoZXhlYywgU3RyaWN0TW9kZSkudG9PYmplY3QoZXhlYyk7CiAgICAgdW5z
aWduZWQgbGVuZ3RoID0gdGhpc09iai0+Z2V0KGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5s
ZW5ndGgpLnRvVUludDMyKGV4ZWMpOwogICAgIGlmICghbGVuZ3RoIHx8IGV4ZWMtPmhhZEV4Y2Vw
dGlvbigpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRoaXNPYmopOwpAQCAtNzU1
LDcgKzc1NSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNT
cGxpY2UoRXhlY1N0YXRlKiBleGVjKQogewogICAgIC8vIDE1LjQuNC4xMgogCi0gICAgSlNPYmpl
Y3QqIHRoaXNPYmogPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCkudG9UaGlzKGV4ZWMsIFN0cmljdE1v
ZGUpLnRvT2JqZWN0KGV4ZWMpOworICAgIEpTT2JqZWN0KiB0aGlzT2JqID0gZXhlYy0+dGhpc1Zh
bHVlKCkudG9UaGlzKGV4ZWMsIFN0cmljdE1vZGUpLnRvT2JqZWN0KGV4ZWMpOwogICAgIHVuc2ln
bmVkIGxlbmd0aCA9IHRoaXNPYmotPmdldChleGVjLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVu
Z3RoKS50b1VJbnQzMihleGVjKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CkBAIC04MTMsNyArODEz
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY1VuU2hpZnQo
RXhlY1N0YXRlKiBleGVjKQogewogICAgIC8vIDE1LjQuNC4xMwogCi0gICAgSlNPYmplY3QqIHRo
aXNPYmogPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCkudG9UaGlzKGV4ZWMsIFN0cmljdE1vZGUpLnRv
T2JqZWN0KGV4ZWMpOworICAgIEpTT2JqZWN0KiB0aGlzT2JqID0gZXhlYy0+dGhpc1ZhbHVlKCku
dG9UaGlzKGV4ZWMsIFN0cmljdE1vZGUpLnRvT2JqZWN0KGV4ZWMpOwogICAgIHVuc2lnbmVkIGxl
bmd0aCA9IHRoaXNPYmotPmdldChleGVjLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoKS50
b1VJbnQzMihleGVjKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CkBAIC04MzYsNyArODM2LDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY1VuU2hpZnQoRXhlY1N0
YXRlKiBleGVjKQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5j
UmVkdWNlKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU09iamVjdCogdGhpc09iaiA9IGV4ZWMt
Pmhvc3RUaGlzVmFsdWUoKS50b1RoaXMoZXhlYywgU3RyaWN0TW9kZSkudG9PYmplY3QoZXhlYyk7
CisgICAgSlNPYmplY3QqIHRoaXNPYmogPSBleGVjLT50aGlzVmFsdWUoKS50b1RoaXMoZXhlYywg
U3RyaWN0TW9kZSkudG9PYmplY3QoZXhlYyk7CiAgICAgdW5zaWduZWQgbGVuZ3RoID0gdGhpc09i
ai0+Z2V0KGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgpLnRvVUludDMyKGV4ZWMp
OwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKQEAgLTkxMyw3ICs5MTMsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jUmVkdWNlKEV4ZWNTdGF0ZSogZXhlYykKIAog
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY1JlZHVjZVJpZ2h0KEV4
ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU09iamVjdCogdGhpc09iaiA9IGV4ZWMtPmhvc3RUaGlz
VmFsdWUoKS50b1RoaXMoZXhlYywgU3RyaWN0TW9kZSkudG9PYmplY3QoZXhlYyk7CisgICAgSlNP
YmplY3QqIHRoaXNPYmogPSBleGVjLT50aGlzVmFsdWUoKS50b1RoaXMoZXhlYywgU3RyaWN0TW9k
ZSkudG9PYmplY3QoZXhlYyk7CiAgICAgdW5zaWduZWQgbGVuZ3RoID0gdGhpc09iai0+Z2V0KGV4
ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgpLnRvVUludDMyKGV4ZWMpOwogICAgIGlm
IChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKQEAgLTk5MCw3ICs5OTAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGFycmF5UHJvdG9GdW5jUmVkdWNlUmlnaHQoRXhlY1N0YXRlKiBleGVjKQogRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY0luZGV4T2YoRXhlY1N0YXRlKiBl
eGVjKQogewogICAgIC8vIDE1LjQuNC4xNAotICAgIEpTT2JqZWN0KiB0aGlzT2JqID0gZXhlYy0+
aG9zdFRoaXNWYWx1ZSgpLnRvVGhpcyhleGVjLCBTdHJpY3RNb2RlKS50b09iamVjdChleGVjKTsK
KyAgICBKU09iamVjdCogdGhpc09iaiA9IGV4ZWMtPnRoaXNWYWx1ZSgpLnRvVGhpcyhleGVjLCBT
dHJpY3RNb2RlKS50b09iamVjdChleGVjKTsKICAgICB1bnNpZ25lZCBsZW5ndGggPSB0aGlzT2Jq
LT5nZXQoZXhlYywgZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCkudG9VSW50MzIoZXhlYyk7
CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwpAQCAtMTAxMyw3ICsxMDEzLDcgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY0luZGV4T2YoRXhlY1N0YXRlKiBleGVjKQog
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY0xhc3RJbmRleE9mKEV4
ZWNTdGF0ZSogZXhlYykKIHsKICAgICAvLyAxNS40LjQuMTUKLSAgICBKU09iamVjdCogdGhpc09i
aiA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKS50b1RoaXMoZXhlYywgU3RyaWN0TW9kZSkudG9PYmpl
Y3QoZXhlYyk7CisgICAgSlNPYmplY3QqIHRoaXNPYmogPSBleGVjLT50aGlzVmFsdWUoKS50b1Ro
aXMoZXhlYywgU3RyaWN0TW9kZSkudG9PYmplY3QoZXhlYyk7CiAgICAgdW5zaWduZWQgbGVuZ3Ro
ID0gdGhpc09iai0+Z2V0KGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgpLnRvVUlu
dDMyKGV4ZWMpOwogICAgIGlmICghbGVuZ3RoKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzTnVtYmVyKC0xKSk7CkBAIC0xMDQ4LDE5ICsxMDQ4LDE5IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNMYXN0SW5kZXhPZihFeGVjU3RhdGUqIGV4ZWMp
CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNWYWx1ZXMoRXhl
Y1N0YXRlKiBleGVjKQogewotICAgIEpTT2JqZWN0KiB0aGlzT2JqID0gZXhlYy0+aG9zdFRoaXNW
YWx1ZSgpLnRvVGhpcyhleGVjLCBTdHJpY3RNb2RlKS50b09iamVjdChleGVjKTsKKyAgICBKU09i
amVjdCogdGhpc09iaiA9IGV4ZWMtPnRoaXNWYWx1ZSgpLnRvVGhpcyhleGVjLCBTdHJpY3RNb2Rl
KS50b09iamVjdChleGVjKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTQXJyYXlJdGVy
YXRvcjo6Y3JlYXRlKGV4ZWMsIGV4ZWMtPmNhbGxlZSgpLT5nbG9iYWxPYmplY3QoKS0+YXJyYXlJ
dGVyYXRvclN0cnVjdHVyZSgpLCBBcnJheUl0ZXJhdGVWYWx1ZSwgdGhpc09iaikpOwogfQogCiBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jRW50cmllcyhFeGVjU3Rh
dGUqIGV4ZWMpCiB7Ci0gICAgSlNPYmplY3QqIHRoaXNPYmogPSBleGVjLT5ob3N0VGhpc1ZhbHVl
KCkudG9UaGlzKGV4ZWMsIFN0cmljdE1vZGUpLnRvT2JqZWN0KGV4ZWMpOworICAgIEpTT2JqZWN0
KiB0aGlzT2JqID0gZXhlYy0+dGhpc1ZhbHVlKCkudG9UaGlzKGV4ZWMsIFN0cmljdE1vZGUpLnRv
T2JqZWN0KGV4ZWMpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNBcnJheUl0ZXJhdG9y
OjpjcmVhdGUoZXhlYywgZXhlYy0+Y2FsbGVlKCktPmdsb2JhbE9iamVjdCgpLT5hcnJheUl0ZXJh
dG9yU3RydWN0dXJlKCksIEFycmF5SXRlcmF0ZUtleVZhbHVlLCB0aGlzT2JqKSk7CiB9CiAgICAg
CiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jS2V5cyhFeGVjU3Rh
dGUqIGV4ZWMpCiB7Ci0gICAgSlNPYmplY3QqIHRoaXNPYmogPSBleGVjLT5ob3N0VGhpc1ZhbHVl
KCkudG9UaGlzKGV4ZWMsIFN0cmljdE1vZGUpLnRvT2JqZWN0KGV4ZWMpOworICAgIEpTT2JqZWN0
KiB0aGlzT2JqID0gZXhlYy0+dGhpc1ZhbHVlKCkudG9UaGlzKGV4ZWMsIFN0cmljdE1vZGUpLnRv
T2JqZWN0KGV4ZWMpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNBcnJheUl0ZXJhdG9y
OjpjcmVhdGUoZXhlYywgZXhlYy0+Y2FsbGVlKCktPmdsb2JhbE9iamVjdCgpLT5hcnJheUl0ZXJh
dG9yU3RydWN0dXJlKCksIEFycmF5SXRlcmF0ZUtleSwgdGhpc09iaikpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuY3BwCmluZGV4
IGJmYmYwZjIuLjU2MTgyYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Jvb2xlYW5Qcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Jvb2xlYW5Qcm90b3R5cGUuY3BwCkBAIC03Myw3ICs3Myw3IEBAIGJvb2wgQm9vbGVhblBy
b3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSog
ZXhlYywgUHJvCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJvb2xlYW5Qcm90b0Z1bmNU
b1N0cmluZyhFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7Ci0g
ICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1
ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBpZiAodGhpc1ZhbHVlID09IGpz
Qm9vbGVhbihmYWxzZSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodm0tPnNtYWxs
U3RyaW5ncy5mYWxzZVN0cmluZygpKTsKIApAQCAtOTIsNyArOTIsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGJvb2xlYW5Qcm90b0Z1bmNUb1N0cmluZyhFeGVjU3RhdGUqIGV4ZWMp
CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYm9vbGVhblByb3RvRnVuY1ZhbHVlT2Yo
RXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRo
aXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAg
ICAgaWYgKHRoaXNWYWx1ZS5pc0Jvb2xlYW4oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZSh0aGlzVmFsdWUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Db25zb2xlUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbnNvbGVQcm90b3R5cGUuY3BwCmluZGV4IGM1MTlmOTUuLmY3MzljNDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVQcm90b3R5cGUuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVQcm90b3R5cGUuY3BwCkBAIC05
OSw3ICs5OSw3IEBAIHN0YXRpYyBTdHJpbmcgdmFsdWVUb1N0cmluZ1dpdGhVbmRlZmluZWRPck51
bGxDaGVjayhFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsCiAKIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBjb25zb2xlTG9nV2l0aExldmVsKEV4ZWNTdGF0ZSogZXhlYywgTWVzc2FnZUxldmVsIGxl
dmVsKQogewotICAgIEpTQ29uc29sZSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNDb25z
b2xlKj4oZXhlYy0+aG9zdFRoaXNWYWx1ZSgpKTsKKyAgICBKU0NvbnNvbGUqIGNhc3RlZFRoaXMg
PSBqc0R5bmFtaWNDYXN0PEpTQ29uc29sZSo+KGV4ZWMtPnRoaXNWYWx1ZSgpKTsKICAgICBpZiAo
IWNhc3RlZFRoaXMpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogICAg
IEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNDb25zb2xlOjppbmZvKCkp
OwpAQCAtMTM0LDcgKzEzNCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGNvbnNvbGVQcm90b0Z1bmNXYXJuKEV4ZWNTdGF0ZSogZXhlYykKIAogc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0NsZWFyKEV4ZWNTdGF0ZSogZXhl
YykKIHsKLSAgICBKU0NvbnNvbGUqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTQ29uc29s
ZSo+KGV4ZWMtPmhvc3RUaGlzVmFsdWUoKSk7CisgICAgSlNDb25zb2xlKiBjYXN0ZWRUaGlzID0g
anNEeW5hbWljQ2FzdDxKU0NvbnNvbGUqPihleGVjLT50aGlzVmFsdWUoKSk7CiAgICAgaWYgKCFj
YXN0ZWRUaGlzKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKICAgICBB
U1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTQ29uc29sZTo6aW5mbygpKTsK
QEAgLTE0OSw3ICsxNDksNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBj
b25zb2xlUHJvdG9GdW5jQ2xlYXIoRXhlY1N0YXRlKiBleGVjKQogCiBzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jRGlyKEV4ZWNTdGF0ZSogZXhlYykK
IHsKLSAgICBKU0NvbnNvbGUqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTQ29uc29sZSo+
KGV4ZWMtPmhvc3RUaGlzVmFsdWUoKSk7CisgICAgSlNDb25zb2xlKiBjYXN0ZWRUaGlzID0ganNE
eW5hbWljQ2FzdDxKU0NvbnNvbGUqPihleGVjLT50aGlzVmFsdWUoKSk7CiAgICAgaWYgKCFjYXN0
ZWRUaGlzKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKICAgICBBU1NF
UlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTQ29uc29sZTo6aW5mbygpKTsKQEAg
LTE2NCw3ICsxNjQsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25z
b2xlUHJvdG9GdW5jRGlyKEV4ZWNTdGF0ZSogZXhlYykKIAogc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0RpclhNTChFeGVjU3RhdGUqIGV4ZWMpCiB7
Ci0gICAgSlNDb25zb2xlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU0NvbnNvbGUqPihl
eGVjLT5ob3N0VGhpc1ZhbHVlKCkpOworICAgIEpTQ29uc29sZSogY2FzdGVkVGhpcyA9IGpzRHlu
YW1pY0Nhc3Q8SlNDb25zb2xlKj4oZXhlYy0+dGhpc1ZhbHVlKCkpOwogICAgIGlmICghY2FzdGVk
VGhpcykKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAgICAgQVNTRVJU
X0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU0NvbnNvbGU6OmluZm8oKSk7CkBAIC0x
NzksNyArMTc5LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29s
ZVByb3RvRnVuY0RpclhNTChFeGVjU3RhdGUqIGV4ZWMpCiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNUYWJsZShFeGVjU3RhdGUqIGV4ZWMpCiB7
Ci0gICAgSlNDb25zb2xlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU0NvbnNvbGUqPihl
eGVjLT5ob3N0VGhpc1ZhbHVlKCkpOworICAgIEpTQ29uc29sZSogY2FzdGVkVGhpcyA9IGpzRHlu
YW1pY0Nhc3Q8SlNDb25zb2xlKj4oZXhlYy0+dGhpc1ZhbHVlKCkpOwogICAgIGlmICghY2FzdGVk
VGhpcykKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAgICAgQVNTRVJU
X0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU0NvbnNvbGU6OmluZm8oKSk7CkBAIC0x
OTQsNyArMTk0LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29s
ZVByb3RvRnVuY1RhYmxlKEV4ZWNTdGF0ZSogZXhlYykKIAogc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY1RyYWNlKEV4ZWNTdGF0ZSogZXhlYykKIHsK
LSAgICBKU0NvbnNvbGUqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTQ29uc29sZSo+KGV4
ZWMtPmhvc3RUaGlzVmFsdWUoKSk7CisgICAgSlNDb25zb2xlKiBjYXN0ZWRUaGlzID0ganNEeW5h
bWljQ2FzdDxKU0NvbnNvbGUqPihleGVjLT50aGlzVmFsdWUoKSk7CiAgICAgaWYgKCFjYXN0ZWRU
aGlzKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKICAgICBBU1NFUlRf
R0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTQ29uc29sZTo6aW5mbygpKTsKQEAgLTIw
OSw3ICsyMDksNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xl
UHJvdG9GdW5jVHJhY2UoRXhlY1N0YXRlKiBleGVjKQogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jQXNzZXJ0KEV4ZWNTdGF0ZSogZXhlYykKIHsK
LSAgICBKU0NvbnNvbGUqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTQ29uc29sZSo+KGV4
ZWMtPmhvc3RUaGlzVmFsdWUoKSk7CisgICAgSlNDb25zb2xlKiBjYXN0ZWRUaGlzID0ganNEeW5h
bWljQ2FzdDxKU0NvbnNvbGUqPihleGVjLT50aGlzVmFsdWUoKSk7CiAgICAgaWYgKCFjYXN0ZWRU
aGlzKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKICAgICBBU1NFUlRf
R0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTQ29uc29sZTo6aW5mbygpKTsKQEAgLTIy
OCw3ICsyMjgsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xl
UHJvdG9GdW5jQXNzZXJ0KEV4ZWNTdGF0ZSogZXhlYykKIAogc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0NvdW50KEV4ZWNTdGF0ZSogZXhlYykKIHsK
LSAgICBKU0NvbnNvbGUqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTQ29uc29sZSo+KGV4
ZWMtPmhvc3RUaGlzVmFsdWUoKSk7CisgICAgSlNDb25zb2xlKiBjYXN0ZWRUaGlzID0ganNEeW5h
bWljQ2FzdDxKU0NvbnNvbGUqPihleGVjLT50aGlzVmFsdWUoKSk7CiAgICAgaWYgKCFjYXN0ZWRU
aGlzKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKICAgICBBU1NFUlRf
R0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTQ29uc29sZTo6aW5mbygpKTsKQEAgLTI0
Myw3ICsyNDMsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xl
UHJvdG9GdW5jQ291bnQoRXhlY1N0YXRlKiBleGVjKQogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jUHJvZmlsZShFeGVjU3RhdGUqIGV4ZWMpCiB7
Ci0gICAgSlNDb25zb2xlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU0NvbnNvbGUqPihl
eGVjLT5ob3N0VGhpc1ZhbHVlKCkpOworICAgIEpTQ29uc29sZSogY2FzdGVkVGhpcyA9IGpzRHlu
YW1pY0Nhc3Q8SlNDb25zb2xlKj4oZXhlYy0+dGhpc1ZhbHVlKCkpOwogICAgIGlmICghY2FzdGVk
VGhpcykKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAgICAgQVNTRVJU
X0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU0NvbnNvbGU6OmluZm8oKSk7CkBAIC0y
NjcsNyArMjY3LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29s
ZVByb3RvRnVuY1Byb2ZpbGUoRXhlY1N0YXRlKiBleGVjKQogCiBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jUHJvZmlsZUVuZChFeGVjU3RhdGUqIGV4
ZWMpCiB7Ci0gICAgSlNDb25zb2xlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU0NvbnNv
bGUqPihleGVjLT5ob3N0VGhpc1ZhbHVlKCkpOworICAgIEpTQ29uc29sZSogY2FzdGVkVGhpcyA9
IGpzRHluYW1pY0Nhc3Q8SlNDb25zb2xlKj4oZXhlYy0+dGhpc1ZhbHVlKCkpOwogICAgIGlmICgh
Y2FzdGVkVGhpcykKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAgICAg
QVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU0NvbnNvbGU6OmluZm8oKSk7
CkBAIC0yOTEsNyArMjkxLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Y29uc29sZVByb3RvRnVuY1Byb2ZpbGVFbmQoRXhlY1N0YXRlKiBleGVjKQogCiBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jVGltZShFeGVjU3RhdGUq
IGV4ZWMpCiB7Ci0gICAgSlNDb25zb2xlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU0Nv
bnNvbGUqPihleGVjLT5ob3N0VGhpc1ZhbHVlKCkpOworICAgIEpTQ29uc29sZSogY2FzdGVkVGhp
cyA9IGpzRHluYW1pY0Nhc3Q8SlNDb25zb2xlKj4oZXhlYy0+dGhpc1ZhbHVlKCkpOwogICAgIGlm
ICghY2FzdGVkVGhpcykKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAg
ICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU0NvbnNvbGU6OmluZm8o
KSk7CkBAIC0zMTIsNyArMzEyLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY29uc29sZVByb3RvRnVuY1RpbWUoRXhlY1N0YXRlKiBleGVjKQogCiBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jVGltZUVuZChFeGVjU3RhdGUq
IGV4ZWMpCiB7Ci0gICAgSlNDb25zb2xlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU0Nv
bnNvbGUqPihleGVjLT5ob3N0VGhpc1ZhbHVlKCkpOworICAgIEpTQ29uc29sZSogY2FzdGVkVGhp
cyA9IGpzRHluYW1pY0Nhc3Q8SlNDb25zb2xlKj4oZXhlYy0+dGhpc1ZhbHVlKCkpOwogICAgIGlm
ICghY2FzdGVkVGhpcykKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAg
ICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU0NvbnNvbGU6OmluZm8o
KSk7CkBAIC0zMzMsNyArMzMzLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY29uc29sZVByb3RvRnVuY1RpbWVFbmQoRXhlY1N0YXRlKiBleGVjKQogCiBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jVGltZVN0YW1wKEV4ZWNT
dGF0ZSogZXhlYykKIHsKLSAgICBKU0NvbnNvbGUqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0
PEpTQ29uc29sZSo+KGV4ZWMtPmhvc3RUaGlzVmFsdWUoKSk7CisgICAgSlNDb25zb2xlKiBjYXN0
ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU0NvbnNvbGUqPihleGVjLT50aGlzVmFsdWUoKSk7CiAg
ICAgaWYgKCFjYXN0ZWRUaGlzKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVj
KTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTQ29uc29sZTo6
aW5mbygpKTsKQEAgLTM0OCw3ICszNDgsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jVGltZVN0YW1wKEV4ZWNTdGF0ZSogZXhlYykKIAogc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0dyb3VwKEV4
ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU0NvbnNvbGUqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWND
YXN0PEpTQ29uc29sZSo+KGV4ZWMtPmhvc3RUaGlzVmFsdWUoKSk7CisgICAgSlNDb25zb2xlKiBj
YXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU0NvbnNvbGUqPihleGVjLT50aGlzVmFsdWUoKSk7
CiAgICAgaWYgKCFjYXN0ZWRUaGlzKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihl
eGVjKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTQ29uc29s
ZTo6aW5mbygpKTsKQEAgLTM2Myw3ICszNjMsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jR3JvdXAoRXhlY1N0YXRlKiBleGVjKQogCiBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jR3JvdXBDb2xs
YXBzZWQoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTQ29uc29sZSogY2FzdGVkVGhpcyA9IGpz
RHluYW1pY0Nhc3Q8SlNDb25zb2xlKj4oZXhlYy0+aG9zdFRoaXNWYWx1ZSgpKTsKKyAgICBKU0Nv
bnNvbGUqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTQ29uc29sZSo+KGV4ZWMtPnRoaXNW
YWx1ZSgpKTsKICAgICBpZiAoIWNhc3RlZFRoaXMpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlw
ZUVycm9yKGV4ZWMpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywg
SlNDb25zb2xlOjppbmZvKCkpOwpAQCAtMzc4LDcgKzM3OCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNHcm91cENvbGxhcHNlZChFeGVjU3Rh
dGUqIGV4CiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90
b0Z1bmNHcm91cEVuZChFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNDb25zb2xlKiBjYXN0ZWRU
aGlzID0ganNEeW5hbWljQ2FzdDxKU0NvbnNvbGUqPihleGVjLT5ob3N0VGhpc1ZhbHVlKCkpOwor
ICAgIEpTQ29uc29sZSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNDb25zb2xlKj4oZXhl
Yy0+dGhpc1ZhbHVlKCkpOwogICAgIGlmICghY2FzdGVkVGhpcykKICAgICAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0
ZWRUaGlzLCBKU0NvbnNvbGU6OmluZm8oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0RhdGVQcm90b3R5cGUuY3BwCmluZGV4IDdjY2JjYzQuLjljZDczNmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwCkBAIC0zMTks
NyArMzE5LDcgQEAgc3RhdGljIEpTQ2VsbCogZm9ybWF0TG9jYWxlRGF0ZShFeGVjU3RhdGUqIGV4
ZWMsIERhdGVJbnN0YW5jZSogZGF0ZU9iamVjdCwgZG91YmwKIAogc3RhdGljIEVuY29kZWRKU1Zh
bHVlIGZvcm1hdGVEYXRlSW5zdGFuY2UoRXhlY1N0YXRlKiBleGVjLCBEYXRlVGltZUZvcm1hdCBm
b3JtYXQsIGJvb2wgYXNVVENWYXJpYW50KQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhl
Yy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1Zh
bHVlKCk7CiAgICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHMoRGF0ZUluc3RhbmNlOjppbmZvKCkp
KQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKIApAQCAtNTE0LDcgKzUx
NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1RvVVRDU3Ry
aW5nKEV4ZWNTdGF0ZSogZXhlYykKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRl
UHJvdG9GdW5jVG9JU09TdHJpbmcoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhp
c1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0g
ZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHMoRGF0ZUluc3Rh
bmNlOjppbmZvKCkpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKICAg
ICAKQEAgLTU2MCw3ICs1NjAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQ
cm90b0Z1bmNUb1RpbWVTdHJpbmcoRXhlY1N0YXRlKiBleGVjKQogCiBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNUb0xvY2FsZVN0cmluZyhFeGVjU3RhdGUqIGV4ZWMp
CiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAg
SlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBpZiAoIXRoaXNWYWx1
ZS5pbmhlcml0cyhEYXRlSW5zdGFuY2U6OmluZm8oKSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKGV4ZWMpOwogCkBAIC01NzAsNyArNTcwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcoRXhlY1N0YXRlKiBleGVjKQog
CiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNUb0xvY2FsZURhdGVT
dHJpbmcoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+
aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVl
KCk7CiAgICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHMoRGF0ZUluc3RhbmNlOjppbmZvKCkpKQog
ICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKIApAQCAtNTgwLDcgKzU4MCw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1RvTG9jYWxlRGF0
ZVN0cmluZyhFeGVjU3RhdGUqIGV4ZWMpCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZGF0ZVByb3RvRnVuY1RvTG9jYWxlVGltZVN0cmluZyhFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAg
SlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0
aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0
cyhEYXRlSW5zdGFuY2U6OmluZm8oKSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9y
KGV4ZWMpOwogCkBAIC01OTAsNyArNTkwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBkYXRlUHJvdG9GdW5jVG9Mb2NhbGVUaW1lU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykKIAogRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VGltZShFeGVjU3RhdGUq
IGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7
CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBpZiAoIXRo
aXNWYWx1ZS5pbmhlcml0cyhEYXRlSW5zdGFuY2U6OmluZm8oKSkpCiAgICAgICAgIHJldHVybiB0
aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogCkBAIC01OTksNyArNTk5LDcgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VGltZShFeGVjU3RhdGUqIGV4ZWMpCiAK
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldEZ1bGxZZWFyKEV4
ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlz
VmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAg
IGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKERhdGVJbnN0YW5jZTo6aW5mbygpKSkKICAgICAgICAg
cmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAKQEAgLTYxMyw3ICs2MTMsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRGdWxsWWVhcihFeGVjU3Rh
dGUqIGV4ZWMpCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dl
dFVUQ0Z1bGxZZWFyKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9
IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRo
aXNWYWx1ZSgpOwogICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKERhdGVJbnN0YW5jZTo6aW5m
bygpKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAKQEAgLTYzMyw3
ICs2MzMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNUb0dN
VFN0cmluZyhFeGVjU3RhdGUqIGV4ZWMpCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZGF0ZVByb3RvRnVuY0dldE1vbnRoKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRo
aXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9
IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKERhdGVJbnN0
YW5jZTo6aW5mbygpKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAK
QEAgLTY0Nyw3ICs2NDcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90
b0Z1bmNHZXRNb250aChFeGVjU3RhdGUqIGV4ZWMpCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ01vbnRoKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBK
U1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRo
aXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRz
KERhdGVJbnN0YW5jZTo6aW5mbygpKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Io
ZXhlYyk7CiAKQEAgLTY2MSw3ICs2NjEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGRhdGVQcm90b0Z1bmNHZXRVVENNb250aChFeGVjU3RhdGUqIGV4ZWMpCiAKIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldERhdGUoRXhlY1N0YXRlKiBleGVjKQog
ewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpT
VmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgaWYgKCF0aGlzVmFsdWUu
aW5oZXJpdHMoRGF0ZUluc3RhbmNlOjppbmZvKCkpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5
cGVFcnJvcihleGVjKTsKIApAQCAtNjc1LDcgKzY3NSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldERhdGUoRXhlY1N0YXRlKiBleGVjKQogCiBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRVVENEYXRlKEV4ZWNTdGF0ZSog
ZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsK
KyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIGlmICghdGhp
c1ZhbHVlLmluaGVyaXRzKERhdGVJbnN0YW5jZTo6aW5mbygpKSkKICAgICAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAKQEAgLTY4OSw3ICs2ODksNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRVVENEYXRlKEV4ZWNTdGF0ZSogZXhlYykK
IAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0RGF5KEV4ZWNT
dGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFs
dWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIGlm
ICghdGhpc1ZhbHVlLmluaGVyaXRzKERhdGVJbnN0YW5jZTo6aW5mbygpKSkKICAgICAgICAgcmV0
dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAKQEAgLTcwMyw3ICs3MDMsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXREYXkoRXhlY1N0YXRlKiBleGVj
KQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRVVENEYXko
RXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRo
aXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAg
ICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHMoRGF0ZUluc3RhbmNlOjppbmZvKCkpKQogICAgICAg
ICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKIApAQCAtNzE3LDcgKzcxNyw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ0RheShFeGVjU3Rh
dGUqIGV4ZWMpCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dl
dEhvdXJzKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMt
Pmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1
ZSgpOwogICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKERhdGVJbnN0YW5jZTo6aW5mbygpKSkK
ICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAKQEAgLTczMSw3ICs3MzEs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRIb3VycyhF
eGVjU3RhdGUqIGV4ZWMpCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3Rv
RnVuY0dldFVUQ0hvdXJzKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1
ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMt
PnRoaXNWYWx1ZSgpOwogICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKERhdGVJbnN0YW5jZTo6
aW5mbygpKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAKQEAgLTc0
NSw3ICs3NDUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNH
ZXRVVENIb3VycyhFeGVjU3RhdGUqIGV4ZWMpCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZGF0ZVByb3RvRnVuY0dldE1pbnV0ZXMoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFs
dWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1Zh
bHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHMoRGF0
ZUluc3RhbmNlOjppbmZvKCkpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVj
KTsKIApAQCAtNzU5LDcgKzc1OSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0
ZVByb3RvRnVuY0dldE1pbnV0ZXMoRXhlY1N0YXRlKiBleGVjKQogCiBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRVVENNaW51dGVzKEV4ZWNTdGF0ZSogZXhlYykK
IHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBK
U1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIGlmICghdGhpc1ZhbHVl
LmluaGVyaXRzKERhdGVJbnN0YW5jZTo6aW5mbygpKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1U
eXBlRXJyb3IoZXhlYyk7CiAKQEAgLTc3Myw3ICs3NzMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRVVENNaW51dGVzKEV4ZWNTdGF0ZSogZXhlYykKIAog
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0U2Vjb25kcyhFeGVj
U3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1Zh
bHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBp
ZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyhEYXRlSW5zdGFuY2U6OmluZm8oKSkpCiAgICAgICAgIHJl
dHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogCkBAIC03ODcsNyArNzg3LDcgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0U2Vjb25kcyhFeGVjU3RhdGUq
IGV4ZWMpCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVU
Q1NlY29uZHMoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhl
Yy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1Zh
bHVlKCk7CiAgICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHMoRGF0ZUluc3RhbmNlOjppbmZvKCkp
KQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKIApAQCAtODAxLDcgKzgw
MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ1Nl
Y29uZHMoRXhlY1N0YXRlKiBleGVjKQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRh
dGVQcm90b0Z1bmNHZXRNaWxsaVNlY29uZHMoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFs
dWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1Zh
bHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHMoRGF0
ZUluc3RhbmNlOjppbmZvKCkpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVj
KTsKIApAQCAtODE3LDcgKzgxNyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0
ZVByb3RvRnVuY0dldE1pbGxpU2Vjb25kcyhFeGVjU3RhdGUqIGV4ZWMpCiAKIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ01pbGxpc2Vjb25kcyhFeGVjU3Rh
dGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVl
KCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBpZiAo
IXRoaXNWYWx1ZS5pbmhlcml0cyhEYXRlSW5zdGFuY2U6OmluZm8oKSkpCiAgICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogCkBAIC04MzMsNyArODMzLDcgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRDTWlsbGlzZWNvbmRzKEV4ZWNT
dGF0ZSogZXhlYykKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5j
R2V0VGltZXpvbmVPZmZzZXQoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1Zh
bHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhl
Yy0+dGhpc1ZhbHVlKCk7CiAgICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHMoRGF0ZUluc3RhbmNl
OjppbmZvKCkpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKIApAQCAt
ODQ3LDcgKzg0Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVu
Y0dldFRpbWV6b25lT2Zmc2V0KEV4ZWNTdGF0ZSogZXhlYykKIAogRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jU2V0VGltZShFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAg
SlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0
aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0
cyhEYXRlSW5zdGFuY2U6OmluZm8oKSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9y
KGV4ZWMpOwogCkBAIC04NjEsNyArODYxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBkYXRlUHJvdG9GdW5jU2V0VGltZShFeGVjU3RhdGUqIGV4ZWMpCiAKIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBzZXROZXdWYWx1ZUZyb21UaW1lQXJncyhFeGVjU3RhdGUqIGV4ZWMsIGludCBudW1B
cmdzVG9Vc2UsIGJvb2wgaW5wdXRJc1VUQykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4
ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNW
YWx1ZSgpOwogICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKERhdGVJbnN0YW5jZTo6aW5mbygp
KSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAKQEAgLTg5OSw3ICs4
OTksNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgc2V0TmV3VmFsdWVGcm9tVGltZUFyZ3MoRXhl
Y1N0YXRlKiBleGVjLCBpbnQgbnVtQXJnc1RvVXNlLAogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
c2V0TmV3VmFsdWVGcm9tRGF0ZUFyZ3MoRXhlY1N0YXRlKiBleGVjLCBpbnQgbnVtQXJnc1RvVXNl
LCBib29sIGlucHV0SXNVVEMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0
VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsK
ICAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyhEYXRlSW5zdGFuY2U6OmluZm8oKSkpCiAgICAg
ICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogCkBAIC0xMDI0LDcgKzEwMjQsNyBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNTZXRVVENGdWxsWWVh
cihFeGVjU3RhdGUqIGV4ZWMpCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVBy
b3RvRnVuY1NldFllYXIoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVl
ID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+
dGhpc1ZhbHVlKCk7CiAgICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHMoRGF0ZUluc3RhbmNlOjpp
bmZvKCkpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKIApAQCAtMTA2
Niw3ICsxMDY2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5j
U2V0WWVhcihFeGVjU3RhdGUqIGV4ZWMpCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZGF0ZVByb3RvRnVuY0dldFllYXIoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhp
c1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0g
ZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHMoRGF0ZUluc3Rh
bmNlOjppbmZvKCkpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKIApA
QCAtMTA4Miw3ICsxMDgyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJv
dG9GdW5jR2V0WWVhcihFeGVjU3RhdGUqIGV4ZWMpCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZGF0ZVByb3RvRnVuY1RvSlNPTihFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1
ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFs
dWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBKU09iamVjdCogb2JqZWN0ID0ganNDYXN0PEpT
T2JqZWN0Kj4odGhpc1ZhbHVlLnRvVGhpcyhleGVjLCBOb3RTdHJpY3RNb2RlKSk7CiAgICAgaWYg
KGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
TnVsbCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9y
UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90
eXBlLmNwcAppbmRleCBkMDJkMjg2Li4wODBiOTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwCkBAIC03Miw3ICs3Miw3IEBAIGJvb2wg
RXJyb3JQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBFeGVj
U3RhdGUqIGV4ZWMsIFByb3BlCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGVycm9yUHJv
dG9GdW5jVG9TdHJpbmcoRXhlY1N0YXRlKiBleGVjKQogewogICAgIC8vIDEuIExldCBPIGJlIHRo
ZSB0aGlzIHZhbHVlLgotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1
ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAKICAgICAv
LyAyLiBJZiBUeXBlKE8pIGlzIG5vdCBPYmplY3QsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlv
bi4KICAgICBpZiAoIXRoaXNWYWx1ZS5pc09iamVjdCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwCmluZGV4IDViNjY2ZjguLmVi
NTc4NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9u
UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlv
blByb3RvdHlwZS5jcHAKQEAgLTEwMiw3ICsxMDIsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaW5z
ZXJ0U2VtaWNvbG9uSWZOZWVkZWQoU3RyaW5nJiBmdW5jdGlvbkJvZHksIGJvb2wgYm9keUluY2x1
ZAogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uUHJvdG9GdW5jVG9TdHJp
bmcoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9z
dFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7
CiAgICAgaWYgKHRoaXNWYWx1ZS5pbmhlcml0cyhKU0Z1bmN0aW9uOjppbmZvKCkpKSB7CiAgICAg
ICAgIEpTRnVuY3Rpb24qIGZ1bmN0aW9uID0ganNDYXN0PEpTRnVuY3Rpb24qPih0aGlzVmFsdWUp
OwogICAgICAgICBpZiAoZnVuY3Rpb24tPmlzSG9zdE9yQnVpbHRpbkZ1bmN0aW9uKCkpCkBAIC0x
MjcsNyArMTI3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblByb3Rv
RnVuY0JpbmQoRXhlY1N0YXRlKiBleGVjKQogICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QgPSBleGVjLT5jYWxsZWUoKS0+Z2xvYmFsT2JqZWN0KCk7CiAKICAgICAvLyBMZXQgVGFyZ2V0
IGJlIHRoZSB0aGlzIHZhbHVlLgotICAgIEpTVmFsdWUgdGFyZ2V0ID0gZXhlYy0+aG9zdFRoaXNW
YWx1ZSgpOworICAgIEpTVmFsdWUgdGFyZ2V0ID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAKICAgICAv
LyBJZiBJc0NhbGxhYmxlKFRhcmdldCkgaXMgZmFsc2UsIHRocm93IGEgVHlwZUVycm9yIGV4Y2Vw
dGlvbi4KICAgICBDYWxsRGF0YSBjYWxsRGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL05hbWVQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTmFtZVByb3RvdHlwZS5jcHAKaW5kZXggNzk5NGM3Mi4uZDAzMGZkMCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmFtZVByb3RvdHlwZS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmFtZVByb3RvdHlwZS5jcHAKQEAgLTY3
LDcgKzY3LDcgQEAgYm9vbCBOYW1lUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmpl
Y3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXIKIAogRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBwcml2YXRlTmFtZVByb3RvRnVuY1RvU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykK
IHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBK
U1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIGlmICghdGhpc1ZhbHVl
LmlzT2JqZWN0KCkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcApp
bmRleCA0YmEzNGMxLi5hYmZiZTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9OdW1iZXJQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL051bWJlclByb3RvdHlwZS5jcHAKQEAgLTM2Nyw3ICszNjcsNyBAQCBzdGF0aWMgU3Ry
aW5nIHRvU3RyaW5nV2l0aFJhZGl4KGludDMyX3QgbnVtYmVyLCB1bnNpZ25lZCByYWRpeCkKIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9GdW5jVG9FeHBvbmVudGlhbChF
eGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgZG91YmxlIHg7Ci0gICAgaWYgKCF0b1RoaXNOdW1iZXIo
ZXhlYy0+aG9zdFRoaXNWYWx1ZSgpLCB4KSkKKyAgICBpZiAoIXRvVGhpc051bWJlcihleGVjLT50
aGlzVmFsdWUoKSwgeCkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwog
CiAgICAgLy8gR2V0IHRoZSBhcmd1bWVudC4gCkBAIC0zOTgsNyArMzk4LDcgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1bmNUb0V4cG9uZW50aWFsKEV4ZWNTdGF0
ZSogZXhlYykKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9GdW5jVG9G
aXhlZChFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgZG91YmxlIHg7Ci0gICAgaWYgKCF0b1RoaXNO
dW1iZXIoZXhlYy0+aG9zdFRoaXNWYWx1ZSgpLCB4KSkKKyAgICBpZiAoIXRvVGhpc051bWJlcihl
eGVjLT50aGlzVmFsdWUoKSwgeCkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMpOwogCiAgICAgLy8gR2V0IHRoZSBhcmd1bWVudC4gCkBAIC00MzEsNyArNDMxLDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1bmNUb0ZpeGVkKEV4ZWNTdGF0
ZSogZXhlYykKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9GdW5jVG9Q
cmVjaXNpb24oRXhlY1N0YXRlKiBleGVjKQogewogICAgIGRvdWJsZSB4OwotICAgIGlmICghdG9U
aGlzTnVtYmVyKGV4ZWMtPmhvc3RUaGlzVmFsdWUoKSwgeCkpCisgICAgaWYgKCF0b1RoaXNOdW1i
ZXIoZXhlYy0+dGhpc1ZhbHVlKCksIHgpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJv
cihleGVjKTsKIAogICAgIC8vIEdldCB0aGUgYXJndW1lbnQuIApAQCAtNDY5LDcgKzQ2OSw3IEBA
IHN0YXRpYyBpbmxpbmUgaW50IGNseih1aW50MzJfdCBudW1iZXIpCiBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIG51bWJlclByb3RvRnVuY0NseihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAg
ZG91YmxlIHg7Ci0gICAgaWYgKCF0b1RoaXNOdW1iZXIoZXhlYy0+aG9zdFRoaXNWYWx1ZSgpLCB4
KSkKKyAgICBpZiAoIXRvVGhpc051bWJlcihleGVjLT50aGlzVmFsdWUoKSwgeCkpCiAgICAgICAg
IHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogCiAgICAgaWYgKCFzdGQ6OmlzZmluaXRl
KHgpKQpAQCAtNTIzLDcgKzUyMyw3IEBAIHN0YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUgaW50
ZWdlclZhbHVlVG9TdHJpbmcoRXhlY1N0YXRlKiBleGVjLCBpbnQzMl90IHJhZGl4CiBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlclByb3RvRnVuY1RvU3RyaW5nKEV4ZWNTdGF0ZSog
ZXhlYykKIHsKICAgICBkb3VibGUgZG91YmxlVmFsdWU7Ci0gICAgaWYgKCF0b1RoaXNOdW1iZXIo
ZXhlYy0+aG9zdFRoaXNWYWx1ZSgpLCBkb3VibGVWYWx1ZSkpCisgICAgaWYgKCF0b1RoaXNOdW1i
ZXIoZXhlYy0+dGhpc1ZhbHVlKCksIGRvdWJsZVZhbHVlKSkKICAgICAgICAgcmV0dXJuIHRocm93
Vk1UeXBlRXJyb3IoZXhlYyk7CiAKICAgICBpbnQzMl90IHJhZGl4ID0gZXh0cmFjdFJhZGl4RnJv
bUFyZ3MoZXhlYyk7CkBAIC01NDksNyArNTQ5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBudW1iZXJQcm90b0Z1bmNUb1N0cmluZyhFeGVjU3RhdGUqIGV4ZWMpCiBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlclByb3RvRnVuY1RvTG9jYWxlU3RyaW5nKEV4ZWNTdGF0
ZSogZXhlYykKIHsKICAgICBkb3VibGUgeDsKLSAgICBpZiAoIXRvVGhpc051bWJlcihleGVjLT5o
b3N0VGhpc1ZhbHVlKCksIHgpKQorICAgIGlmICghdG9UaGlzTnVtYmVyKGV4ZWMtPnRoaXNWYWx1
ZSgpLCB4KSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHgpLnRvU3RyaW5nKGV4ZWMpKTsKQEAgLTU1
OCw3ICs1NTgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlclByb3RvRnVu
Y1RvTG9jYWxlU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgbnVtYmVyUHJvdG9GdW5jVmFsdWVPZihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgZG91
YmxlIHg7Ci0gICAgaWYgKCF0b1RoaXNOdW1iZXIoZXhlYy0+aG9zdFRoaXNWYWx1ZSgpLCB4KSkK
KyAgICBpZiAoIXRvVGhpc051bWJlcihleGVjLT50aGlzVmFsdWUoKSwgeCkpCiAgICAgICAgIHJl
dHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNOdW1iZXIoeCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT2JqZWN0UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09i
amVjdFByb3RvdHlwZS5jcHAKaW5kZXggNjljOWY5NC4uNDc5YzkxMSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCkBAIC03OCwxOSAr
NzgsMTkgQEAgT2JqZWN0UHJvdG90eXBlKiBPYmplY3RQcm90b3R5cGU6OmNyZWF0ZShWTSYgdm0s
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFMKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBvYmplY3RQcm90b0Z1bmNWYWx1ZU9mKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBK
U1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKS50b1RoaXMoZXhlYywgU3Ry
aWN0TW9kZSk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKS50b1Ro
aXMoZXhlYywgU3RyaWN0TW9kZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aGlzVmFs
dWUudG9PYmplY3QoZXhlYykpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9i
amVjdFByb3RvRnVuY0hhc093blByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1Zh
bHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKS50b1RoaXMoZXhlYywgU3RyaWN0
TW9kZSk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKS50b1RoaXMo
ZXhlYywgU3RyaWN0TW9kZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4o
dGhpc1ZhbHVlLnRvT2JqZWN0KGV4ZWMpLT5oYXNPd25Qcm9wZXJ0eShleGVjLCBJZGVudGlmaWVy
KGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSkpKSk7
CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0UHJvdG9GdW5jSXNQcm90
b3R5cGVPZihFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVj
LT5ob3N0VGhpc1ZhbHVlKCkudG9UaGlzKGV4ZWMsIFN0cmljdE1vZGUpOworICAgIEpTVmFsdWUg
dGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCkudG9UaGlzKGV4ZWMsIFN0cmljdE1vZGUpOwog
ICAgIEpTT2JqZWN0KiB0aGlzT2JqID0gdGhpc1ZhbHVlLnRvT2JqZWN0KGV4ZWMpOwogCiAgICAg
aWYgKCFleGVjLT5hcmd1bWVudCgwKS5pc09iamVjdCgpKQpAQCAtMTA5LDcgKzEwOSw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0UHJvdG9GdW5jSXNQcm90b3R5cGVPZihF
eGVjU3RhdGUqIGV4ZWMpCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0UHJv
dG9GdW5jRGVmaW5lR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU09iamVjdCogdGhp
c09iamVjdCA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKS50b1RoaXMoZXhlYywgU3RyaWN0TW9kZSku
dG9PYmplY3QoZXhlYyk7CisgICAgSlNPYmplY3QqIHRoaXNPYmplY3QgPSBleGVjLT50aGlzVmFs
dWUoKS50b1RoaXMoZXhlYywgU3RyaWN0TW9kZSkudG9PYmplY3QoZXhlYyk7CiAgICAgaWYgKGV4
ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwogCkBAIC0xMjksNyArMTI5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBvYmplY3RQcm90b0Z1bmNEZWZpbmVHZXR0ZXIoRXhlY1N0YXRlKiBleGVjKQogCiBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByb3RvRnVuY0RlZmluZVNldHRlcihFeGVj
U3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNPYmplY3QqIHRoaXNPYmplY3QgPSBleGVjLT5ob3N0VGhp
c1ZhbHVlKCkudG9UaGlzKGV4ZWMsIFN0cmljdE1vZGUpLnRvT2JqZWN0KGV4ZWMpOworICAgIEpT
T2JqZWN0KiB0aGlzT2JqZWN0ID0gZXhlYy0+dGhpc1ZhbHVlKCkudG9UaGlzKGV4ZWMsIFN0cmlj
dE1vZGUpLnRvT2JqZWN0KGV4ZWMpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIApAQCAtMTQ5LDcg
KzE0OSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0UHJvdG9GdW5jRGVm
aW5lU2V0dGVyKEV4ZWNTdGF0ZSogZXhlYykKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBvYmplY3RQcm90b0Z1bmNMb29rdXBHZXR0ZXIoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpT
T2JqZWN0KiB0aGlzT2JqZWN0ID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpLnRvVGhpcyhleGVjLCBT
dHJpY3RNb2RlKS50b09iamVjdChleGVjKTsKKyAgICBKU09iamVjdCogdGhpc09iamVjdCA9IGV4
ZWMtPnRoaXNWYWx1ZSgpLnRvVGhpcyhleGVjLCBTdHJpY3RNb2RlKS50b09iamVjdChleGVjKTsK
ICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7CiAKQEAgLTE2NSw3ICsxNjUsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByb3RvRnVuY0xvb2t1cEdldHRlcihFeGVjU3RhdGUqIGV4
ZWMpCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0UHJvdG9GdW5jTG9va3Vw
U2V0dGVyKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU09iamVjdCogdGhpc09iamVjdCA9IGV4
ZWMtPmhvc3RUaGlzVmFsdWUoKS50b1RoaXMoZXhlYywgU3RyaWN0TW9kZSkudG9PYmplY3QoZXhl
Yyk7CisgICAgSlNPYmplY3QqIHRoaXNPYmplY3QgPSBleGVjLT50aGlzVmFsdWUoKS50b1RoaXMo
ZXhlYywgU3RyaWN0TW9kZSkudG9PYmplY3QoZXhlYyk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2Vw
dGlvbigpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwog
CkBAIC0xODEsNyArMTgxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RQ
cm90b0Z1bmNMb29rdXBTZXR0ZXIoRXhlY1N0YXRlKiBleGVjKQogCiBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIG9iamVjdFByb3RvRnVuY1Byb3BlcnR5SXNFbnVtZXJhYmxlKEV4ZWNTdGF0
ZSogZXhlYykKIHsKLSAgICBKU09iamVjdCogdGhpc09iamVjdCA9IGV4ZWMtPmhvc3RUaGlzVmFs
dWUoKS50b1RoaXMoZXhlYywgU3RyaWN0TW9kZSkudG9PYmplY3QoZXhlYyk7CisgICAgSlNPYmpl
Y3QqIHRoaXNPYmplY3QgPSBleGVjLT50aGlzVmFsdWUoKS50b1RoaXMoZXhlYywgU3RyaWN0TW9k
ZSkudG9PYmplY3QoZXhlYyk7CiAgICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUoZXhlYywgZXhl
Yy0+YXJndW1lbnQoMCkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKTsKIAogICAgIFByb3Bl
cnR5RGVzY3JpcHRvciBkZXNjcmlwdG9yOwpAQCAtMTkzLDcgKzE5Myw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0UHJvdG9GdW5jUHJvcGVydHlJc0VudW1lcmFibGUoRXhl
Y1N0YXRlKiBleGVjCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByb3RvRnVu
Y1RvTG9jYWxlU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICAvLyAxLiBMZXQgTyBiZSB0
aGUgcmVzdWx0IG9mIGNhbGxpbmcgVG9PYmplY3QgcGFzc2luZyB0aGUgdGhpcyB2YWx1ZSBhcyB0
aGUgYXJndW1lbnQuCi0gICAgSlNPYmplY3QqIG9iamVjdCA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUo
KS50b1RoaXMoZXhlYywgU3RyaWN0TW9kZSkudG9PYmplY3QoZXhlYyk7CisgICAgSlNPYmplY3Qq
IG9iamVjdCA9IGV4ZWMtPnRoaXNWYWx1ZSgpLnRvVGhpcyhleGVjLCBTdHJpY3RNb2RlKS50b09i
amVjdChleGVjKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAKQEAgLTIxMyw3ICsyMTMsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByb3RvRnVuY1RvTG9jYWxlU3RyaW5n
KEV4ZWNTdGF0ZSogZXhlYykKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0UHJv
dG9GdW5jVG9TdHJpbmcoRXhlY1N0YXRlKiBleGVjKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZt
KCk7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCkudG9UaGlz
KGV4ZWMsIFN0cmljdE1vZGUpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1Zh
bHVlKCkudG9UaGlzKGV4ZWMsIFN0cmljdE1vZGUpOwogICAgIGlmICh0aGlzVmFsdWUuaXNVbmRl
ZmluZWRPck51bGwoKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05vbnRyaXZp
YWxTdHJpbmcoJnZtLCBTdHJpbmcodGhpc1ZhbHVlLmlzVW5kZWZpbmVkKCkgPyBBU0NJSUxpdGVy
YWwoIltvYmplY3QgVW5kZWZpbmVkXSIpIDogQVNDSUlMaXRlcmFsKCJbb2JqZWN0IE51bGxdIikp
KSk7CiAgICAgSlNPYmplY3QqIHRoaXNPYmplY3QgPSB0aGlzVmFsdWUudG9PYmplY3QoZXhlYyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5
cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNw
cAppbmRleCBhYzc1M2JiLi43YWVhZmY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAKQEAgLTc0LDcgKzc0LDcgQEAgYm9vbCBSZWdF
eHBQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBFeGVjU3Rh
dGUqIGV4ZWMsIFByb3AKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90
b0Z1bmNUZXN0KEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4
ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNW
YWx1ZSgpOwogICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKFJlZ0V4cE9iamVjdDo6aW5mbygp
KSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oYXNSZWdFeHBPYmplY3QodGhpc1ZhbHVlKS0+dGVzdChl
eGVjLCBleGVjLT5hcmd1bWVudCgwKS50b1N0cmluZyhleGVjKSkpKTsKQEAgLTgyLDcgKzgyLDcg
QEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0Z1bmNUZXN0KEV4ZWNT
dGF0ZSogZXhlYykKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0Z1
bmNFeGVjKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMt
Pmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1
ZSgpOwogICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKFJlZ0V4cE9iamVjdDo6aW5mbygpKSkK
ICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShhc1JlZ0V4cE9iamVjdCh0aGlzVmFsdWUpLT5leGVjKGV4ZWMsIGV4ZWMtPmFy
Z3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpKSk7CkBAIC05MCw3ICs5MCw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9GdW5jRXhlYyhFeGVjU3RhdGUqIGV4ZWMpCiAK
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9GdW5jQ29tcGlsZShFeGVj
U3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1Zh
bHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBp
ZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyhSZWdFeHBPYmplY3Q6OmluZm8oKSkpCiAgICAgICAgIHJl
dHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogCkBAIC0xMjgsNyArMTI4LDcgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0Z1bmNDb21waWxlKEV4ZWNTdGF0ZSog
ZXhlYykKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0Z1bmNUb1N0
cmluZyhFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5o
b3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUo
KTsKICAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyhSZWdFeHBPYmplY3Q6OmluZm8oKSkpCiAg
ICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAppbmRleCAwMmQ2MzczLi5l
ZTI4ZWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQ
cm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1By
b3RvdHlwZS5jcHAKQEAgLTY2OCw3ICs2NjgsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgY2hlY2tP
YmplY3RDb2VyY2libGUoSlNWYWx1ZSB0aGlzVmFsdWUpCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jUmVwbGFjZShFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAg
SlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0
aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBpZiAoIWNoZWNrT2JqZWN0Q29lcmNp
YmxlKHRoaXNWYWx1ZSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwog
ICAgIEpTU3RyaW5nKiBzdHJpbmcgPSB0aGlzVmFsdWUudG9TdHJpbmcoZXhlYyk7CkBAIC02ODEs
NyArNjgxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNS
ZXBsYWNlKEV4ZWNTdGF0ZSogZXhlYykKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBz
dHJpbmdQcm90b0Z1bmNUb1N0cmluZyhFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0
aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUg
PSBleGVjLT50aGlzVmFsdWUoKTsKICAgICAvLyBBbHNvIHVzZWQgZm9yIHZhbHVlT2YuCiAKICAg
ICBpZiAodGhpc1ZhbHVlLmlzU3RyaW5nKCkpCkBAIC02OTUsNyArNjk1LDcgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNUb1N0cmluZyhFeGVjU3RhdGUqIGV4
ZWMpCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jQ2hhckF0
KEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RU
aGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwog
ICAgIGlmICghY2hlY2tPYmplY3RDb2VyY2libGUodGhpc1ZhbHVlKSkKICAgICAgICAgcmV0dXJu
IHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAgICAgU3RyaW5nIHMgPSB0aGlzVmFsdWUudG9TdHJp
bmcoZXhlYyktPnZhbHVlKGV4ZWMpOwpAQCAtNzE1LDcgKzcxNSw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jQ2hhckF0KEV4ZWNTdGF0ZSogZXhlYykKIAog
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNDaGFyQ29kZUF0KEV4
ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlz
VmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAg
IGlmICghY2hlY2tPYmplY3RDb2VyY2libGUodGhpc1ZhbHVlKSkKICAgICAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAgICAgU3RyaW5nIHMgPSB0aGlzVmFsdWUudG9TdHJpbmco
ZXhlYyktPnZhbHVlKGV4ZWMpOwpAQCAtNzM4LDcgKzczOCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jQ2hhckNvZGVBdChFeGVjU3RhdGUqIGV4ZWMpCiAK
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jQ29uY2F0KEV4ZWNT
dGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFs
dWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIGlm
ICh0aGlzVmFsdWUuaXNTdHJpbmcoKSAmJiBleGVjLT5hcmd1bWVudENvdW50KCkgPT0gMSkKICAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1N0cmluZyhleGVjLCBhc1N0cmluZyh0aGlz
VmFsdWUpLCBleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKS50b1N0cmluZyhleGVjKSkpOwogCkBA
IC03NDksNyArNzQ5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90
b0Z1bmNDb25jYXQoRXhlY1N0YXRlKiBleGVjKQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIHN0cmluZ1Byb3RvRnVuY0luZGV4T2YoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFs
dWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1Zh
bHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgaWYgKCFjaGVja09iamVjdENvZXJjaWJsZSh0
aGlzVmFsdWUpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKIApAQCAt
Nzg1LDcgKzc4NSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9G
dW5jSW5kZXhPZihFeGVjU3RhdGUqIGV4ZWMpCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgc3RyaW5nUHJvdG9GdW5jTGFzdEluZGV4T2YoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpT
VmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhp
c1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgaWYgKCFjaGVja09iamVjdENvZXJjaWJs
ZSh0aGlzVmFsdWUpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKIApA
QCAtODIyLDcgKzgyMiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJv
dG9GdW5jTGFzdEluZGV4T2YoRXhlY1N0YXRlKiBleGVjKQogCiBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY01hdGNoKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBK
U1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRo
aXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIGlmICghY2hlY2tPYmplY3RDb2VyY2li
bGUodGhpc1ZhbHVlKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAg
ICAgSlNTdHJpbmcqIHN0cmluZyA9IHRoaXNWYWx1ZS50b1N0cmluZyhleGVjKTsKQEAgLTg4MSw3
ICs4ODEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY01h
dGNoKEV4ZWNTdGF0ZSogZXhlYykKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJp
bmdQcm90b0Z1bmNTZWFyY2goRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1Zh
bHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhl
Yy0+dGhpc1ZhbHVlKCk7CiAgICAgaWYgKCFjaGVja09iamVjdENvZXJjaWJsZSh0aGlzVmFsdWUp
KQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKICAgICBKU1N0cmluZyog
c3RyaW5nID0gdGhpc1ZhbHVlLnRvU3RyaW5nKGV4ZWMpOwpAQCAtOTExLDcgKzkxMSw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jU2VhcmNoKEV4ZWNTdGF0
ZSogZXhlYykKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNT
bGljZShFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5o
b3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUo
KTsKICAgICBpZiAoIWNoZWNrT2JqZWN0Q29lcmNpYmxlKHRoaXNWYWx1ZSkpCiAgICAgICAgIHJl
dHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogICAgIFN0cmluZyBzID0gdGhpc1ZhbHVlLnRv
U3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKQEAgLTk2OSw3ICs5NjksNyBAQCBzdGF0aWMgQUxX
QVlTX0lOTElORSBib29sIHNwbGl0U3RyaW5nQnlPbmVDaGFyYWN0ZXJJbXBsKEV4ZWNTdGF0ZSog
ZXhlYywgSlNBcnJheQogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1
bmNTcGxpdChFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgLy8gMS4gQ2FsbCBDaGVja09iamVjdENv
ZXJjaWJsZSBwYXNzaW5nIHRoZSB0aGlzIHZhbHVlIGFzIGl0cyBhcmd1bWVudC4KLSAgICBKU1Zh
bHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNW
YWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIGlmICghY2hlY2tPYmplY3RDb2VyY2libGUo
dGhpc1ZhbHVlKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAKQEAg
LTExNzcsNyArMTE3Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJv
dG9GdW5jU3BsaXQoRXhlY1N0YXRlKiBleGVjKQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIHN0cmluZ1Byb3RvRnVuY1N1YnN0cihFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1
ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFs
dWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBpZiAoIWNoZWNrT2JqZWN0Q29lcmNpYmxlKHRo
aXNWYWx1ZSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogICAgIHVu
c2lnbmVkIGxlbjsKQEAgLTEyMTYsNyArMTIxNiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgc3RyaW5nUHJvdG9GdW5jU3Vic3RyKEV4ZWNTdGF0ZSogZXhlYykKIAogRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNTdWJzdHJpbmcoRXhlY1N0YXRlKiBl
eGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwor
ICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgaWYgKCFjaGVj
a09iamVjdENvZXJjaWJsZSh0aGlzVmFsdWUpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVF
cnJvcihleGVjKTsKIApAQCAtMTI1NSw3ICsxMjU1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNTdWJzdHJpbmcoRXhlY1N0YXRlKiBleGVjKQogCiBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1RvTG93ZXJDYXNlKEV4ZWNT
dGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFs
dWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIGlm
ICghY2hlY2tPYmplY3RDb2VyY2libGUodGhpc1ZhbHVlKSkKICAgICAgICAgcmV0dXJuIHRocm93
Vk1UeXBlRXJyb3IoZXhlYyk7CiAgICAgSlNTdHJpbmcqIHNWYWwgPSB0aGlzVmFsdWUudG9TdHJp
bmcoZXhlYyk7CkBAIC0xMjc0LDcgKzEyNzQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIHN0cmluZ1Byb3RvRnVuY1RvTG93ZXJDYXNlKEV4ZWNTdGF0ZSogZXhlYykKIAogRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNUb1VwcGVyQ2FzZShFeGVjU3Rh
dGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVl
KCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBpZiAo
IWNoZWNrT2JqZWN0Q29lcmNpYmxlKHRoaXNWYWx1ZSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKGV4ZWMpOwogICAgIEpTU3RyaW5nKiBzVmFsID0gdGhpc1ZhbHVlLnRvU3RyaW5n
KGV4ZWMpOwpAQCAtMTI5Myw3ICsxMjkzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBzdHJpbmdQcm90b0Z1bmNUb1VwcGVyQ2FzZShFeGVjU3RhdGUqIGV4ZWMpCiAKIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jTG9jYWxlQ29tcGFyZShFeGVjU3Rh
dGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVl
KCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBpZiAo
IWNoZWNrT2JqZWN0Q29lcmNpYmxlKHRoaXNWYWx1ZSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKGV4ZWMpOwogICAgIFN0cmluZyBzID0gdGhpc1ZhbHVlLnRvU3RyaW5nKGV4ZWMp
LT52YWx1ZShleGVjKTsKQEAgLTEzMDQsNyArMTMwNCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jTG9jYWxlQ29tcGFyZShFeGVjU3RhdGUqIGV4ZWMpCiAK
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jQmlnKEV4ZWNTdGF0
ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUo
KTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIGlmICgh
Y2hlY2tPYmplY3RDb2VyY2libGUodGhpc1ZhbHVlKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1U
eXBlRXJyb3IoZXhlYyk7CiAgICAgU3RyaW5nIHMgPSB0aGlzVmFsdWUudG9TdHJpbmcoZXhlYykt
PnZhbHVlKGV4ZWMpOwpAQCAtMTMxMyw3ICsxMzEzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNCaWcoRXhlY1N0YXRlKiBleGVjKQogCiBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1NtYWxsKEV4ZWNTdGF0ZSogZXhlYykK
IHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBK
U1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIGlmICghY2hlY2tPYmpl
Y3RDb2VyY2libGUodGhpc1ZhbHVlKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Io
ZXhlYyk7CiAgICAgU3RyaW5nIHMgPSB0aGlzVmFsdWUudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4
ZWMpOwpAQCAtMTMyMiw3ICsxMzIyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBz
dHJpbmdQcm90b0Z1bmNTbWFsbChFeGVjU3RhdGUqIGV4ZWMpCiAKIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jQmxpbmsoRXhlY1N0YXRlKiBleGVjKQogewotICAg
IEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUg
dGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgaWYgKCFjaGVja09iamVjdENvZXJj
aWJsZSh0aGlzVmFsdWUpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsK
ICAgICBTdHJpbmcgcyA9IHRoaXNWYWx1ZS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7CkBA
IC0xMzMxLDcgKzEzMzEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1By
b3RvRnVuY0JsaW5rKEV4ZWNTdGF0ZSogZXhlYykKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBzdHJpbmdQcm90b0Z1bmNCb2xkKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVl
IHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1
ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIGlmICghY2hlY2tPYmplY3RDb2VyY2libGUodGhp
c1ZhbHVlKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAgICAgU3Ry
aW5nIHMgPSB0aGlzVmFsdWUudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpOwpAQCAtMTM0MCw3
ICsxMzQwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNC
b2xkKEV4ZWNTdGF0ZSogZXhlYykKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJp
bmdQcm90b0Z1bmNGaXhlZChFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFs
dWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVj
LT50aGlzVmFsdWUoKTsKICAgICBpZiAoIWNoZWNrT2JqZWN0Q29lcmNpYmxlKHRoaXNWYWx1ZSkp
CiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogICAgIFN0cmluZyBzID0g
dGhpc1ZhbHVlLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKQEAgLTEzNDksNyArMTM0OSw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jRml4ZWQoRXhl
Y1N0YXRlKiBleGVjKQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3Rv
RnVuY0l0YWxpY3MoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0g
ZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhp
c1ZhbHVlKCk7CiAgICAgaWYgKCFjaGVja09iamVjdENvZXJjaWJsZSh0aGlzVmFsdWUpKQogICAg
ICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKICAgICBTdHJpbmcgcyA9IHRoaXNW
YWx1ZS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7CkBAIC0xMzU4LDcgKzEzNTgsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY0l0YWxpY3MoRXhlY1N0
YXRlKiBleGVjKQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVu
Y1N0cmlrZShFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVj
LT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFs
dWUoKTsKICAgICBpZiAoIWNoZWNrT2JqZWN0Q29lcmNpYmxlKHRoaXNWYWx1ZSkpCiAgICAgICAg
IHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogICAgIFN0cmluZyBzID0gdGhpc1ZhbHVl
LnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKQEAgLTEzNjcsNyArMTM2Nyw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jU3RyaWtlKEV4ZWNTdGF0ZSog
ZXhlYykKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNTdWIo
RXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRo
aXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAg
ICAgaWYgKCFjaGVja09iamVjdENvZXJjaWJsZSh0aGlzVmFsdWUpKQogICAgICAgICByZXR1cm4g
dGhyb3dWTVR5cGVFcnJvcihleGVjKTsKICAgICBTdHJpbmcgcyA9IHRoaXNWYWx1ZS50b1N0cmlu
ZyhleGVjKS0+dmFsdWUoZXhlYyk7CkBAIC0xMzc2LDcgKzEzNzYsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1N1YihFeGVjU3RhdGUqIGV4ZWMpCiAKIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jU3VwKEV4ZWNTdGF0ZSog
ZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsK
KyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIGlmICghY2hl
Y2tPYmplY3RDb2VyY2libGUodGhpc1ZhbHVlKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBl
RXJyb3IoZXhlYyk7CiAgICAgU3RyaW5nIHMgPSB0aGlzVmFsdWUudG9TdHJpbmcoZXhlYyktPnZh
bHVlKGV4ZWMpOwpAQCAtMTM4NSw3ICsxMzg1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBzdHJpbmdQcm90b0Z1bmNTdXAoRXhlY1N0YXRlKiBleGVjKQogCiBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY0ZvbnRjb2xvcihFeGVjU3RhdGUqIGV4ZWMp
CiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAg
SlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBpZiAoIWNoZWNrT2Jq
ZWN0Q29lcmNpYmxlKHRoaXNWYWx1ZSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9y
KGV4ZWMpOwogICAgIFN0cmluZyBzID0gdGhpc1ZhbHVlLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShl
eGVjKTsKQEAgLTEzOTgsNyArMTM5OCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
c3RyaW5nUHJvdG9GdW5jRm9udGNvbG9yKEV4ZWNTdGF0ZSogZXhlYykKIAogRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNGb250c2l6ZShFeGVjU3RhdGUqIGV4ZWMp
CiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAg
SlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBpZiAoIWNoZWNrT2Jq
ZWN0Q29lcmNpYmxlKHRoaXNWYWx1ZSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9y
KGV4ZWMpOwogICAgIFN0cmluZyBzID0gdGhpc1ZhbHVlLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShl
eGVjKTsKQEAgLTE0NDcsNyArMTQ0Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
c3RyaW5nUHJvdG9GdW5jRm9udHNpemUoRXhlY1N0YXRlKiBleGVjKQogCiBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY0FuY2hvcihFeGVjU3RhdGUqIGV4ZWMpCiB7
Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNW
YWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBpZiAoIWNoZWNrT2JqZWN0
Q29lcmNpYmxlKHRoaXNWYWx1ZSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMpOwogICAgIFN0cmluZyBzID0gdGhpc1ZhbHVlLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVj
KTsKQEAgLTE0NjAsNyArMTQ2MCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3Ry
aW5nUHJvdG9GdW5jQW5jaG9yKEV4ZWNTdGF0ZSogZXhlYykKIAogRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNMaW5rKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBK
U1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRo
aXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIGlmICghY2hlY2tPYmplY3RDb2VyY2li
bGUodGhpc1ZhbHVlKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAg
ICAgU3RyaW5nIHMgPSB0aGlzVmFsdWUudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpOwpAQCAt
MTUzMSwxOSArMTUzMSwxOSBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUgdHJpbVN0cmluZyhFeGVj
U3RhdGUqIGV4ZWMsIEpTVmFsdWUgdGhpc1ZhbHVlLCBpbnQgdHJpbUtpbgogCiBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1RyaW0oRXhlY1N0YXRlKiBleGVjKQog
ewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpT
VmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZSh0cmltU3RyaW5nKGV4ZWMsIHRoaXNWYWx1ZSwgVHJpbUxlZnQgfCBUcmltUmlnaHQp
KTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNUcmlt
TGVmdChFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5o
b3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUo
KTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRyaW1TdHJpbmcoZXhlYywgdGhpc1ZhbHVl
LCBUcmltTGVmdCkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1By
b3RvRnVuY1RyaW1SaWdodChFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFs
dWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVj
LT50aGlzVmFsdWUoKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRyaW1TdHJpbmcoZXhl
YywgdGhpc1ZhbHVlLCBUcmltUmlnaHQpKTsKIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmY2ViYThj
Li4zZDVhOTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMxIEBACisyMDE0LTAzLTI4ICBEw6Fu
aWVsIELDoXR5YWkgIDxkYmF0eWFpLnUtc3plZ2VkQHBhcnRuZXIuc2Ftc3VuZy5jb20+CisKKyAg
ICAgICAgUmVtb3ZlIGhvc3RUaGlzUmVnaXN0ZXIoKSBhbmQgaG9zdFRoaXNWYWx1ZSgpCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzA4OTUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmVkIGhvc3RU
aGlzUmVnaXN0ZXIoKSBhbmQgaG9zdFRoaXNWYWx1ZSgpIGFuZCBpbnN0ZWFkIHVzZSB0aGlzQXJn
dW1lbnRPZmZzZXQoKSBhbmQgdGhpc1ZhbHVlKCkgcmVzcGVjdGl2ZWx5LgorCisgICAgICAgIE5v
IG5ldyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdlcy4KKworICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTTmF2aWdhdG9yQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTTmF2aWdhdG9yOjp3
ZWJraXRHZXRVc2VyTWVkaWEpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVu
dEZ1bmN0aW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjYWxsUGx1Z2luKToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRl
SW1wbGVtZW50YXRpb24pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0Zs
b2F0NjRBcnJheS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc0Zsb2F0NjRBcnJheVByb3RvdHlw
ZUZ1bmN0aW9uRm9vKToKKyAgICAgICAgKFdlYkNvcmU6OmpzRmxvYXQ2NEFycmF5UHJvdG90eXBl
RnVuY3Rpb25TZXQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RB
Y3RpdmVET01PYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0QWN0aXZlRE9NT2Jq
ZWN0UHJvdG90eXBlRnVuY3Rpb25FeGNpdGluZ0Z1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdEFjdGl2ZURPTU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uUG9zdE1lc3NhZ2UpOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RDdXN0b21OYW1lZEdldHRlclByb3RvdHlwZUZ1
bmN0aW9uQW5vdGhlckZ1bmN0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RXZlbnRU
YXJnZXRQcm90b3R5cGVGdW5jdGlvbkl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RXZl
bnRUYXJnZXRQcm90b3R5cGVGdW5jdGlvbkFkZEV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0RXZlbnRUYXJnZXRQcm90b3R5cGVGdW5jdGlvblJlbW92ZUV2ZW50TGlzdGVu
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RXZlbnRUYXJnZXRQcm90b3R5cGVGdW5jdGlv
bkRpc3BhdGNoRXZlbnQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RJbnRlcmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlUHJvdG90
eXBlRnVuY3Rpb25JbXBsZW1lbnRzTWV0aG9kMSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJ
bnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbkltcGxlbWVudHNNZXRob2QyKToKKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uSW1wbGVtZW50c01ldGhvZDMp
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25TdXBw
bGVtZW50YWxNZXRob2QxKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEludGVyZmFjZVByb3Rv
dHlwZUZ1bmN0aW9uU3VwcGxlbWVudGFsTWV0aG9kMik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblN1cHBsZW1lbnRhbE1ldGhvZDMpOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90
b3R5cGVGdW5jdGlvbk1ldGhvZCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvblZvaWRNZXRob2QpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25Wb2lkTWV0aG9kV2l0aEFyZ3MpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25CeXRlTWV0aG9kKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uQnl0ZU1ldGhvZFdpdGhBcmdzKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2N0ZXRNZXRob2QpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PY3RldE1ldGhvZFdpdGhBcmdzKToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZCk6CisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkxvbmdNZXRob2RXaXRoQXJncyk6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9iak1ldGhvZCk6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9iak1ldGhvZFdp
dGhBcmdzKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0
aG9kV2l0aFNlcXVlbmNlQXJnKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uTWV0aG9kUmV0dXJuaW5nU2VxdWVuY2UpOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRW51bUFyZyk6CisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NB
bmRUaHJvd3MpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25T
ZXJpYWxpemVkVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25PcHRpb25zT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uTWV0aG9kV2l0aEV4Y2VwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbkN1c3RvbU1ldGhvZCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbkN1c3RvbU1ldGhvZFdpdGhBcmdzKToKKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQWRkRXZlbnRMaXN0ZW5lcik6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblJlbW92ZUV2ZW50TGlzdGVu
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2Ny
aXB0U3RhdGVWb2lkKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uV2l0aFNjcmlwdFN0YXRlT2JqKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uV2l0aFNjcmlwdFN0YXRlVm9pZEV4Y2VwdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRTdGF0ZU9iakV4Y2VwdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRFeGVjdXRp
b25Db250ZXh0QW5kU2NyaXB0U3RhdGVPYmpFeGNlcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNj
cmlwdFN0YXRlV2l0aFNwYWNlcyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbldpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxBcmcpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9u
T3B0aW9uYWxBcmdBbmRPcHRpb25hbEFyZyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0FuZFR3b09wdGlvbmFsQXJn
cyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhPcHRpb25hbFN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0lzVW5kZWZpbmVkKToKKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5n
SXNOdWxsU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kV2l0aENhbGxiYWNrQXJnKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE5vbkNhbGxiYWNrQXJnQW5kQ2FsbGJhY2tBcmcpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQ2Fs
bGJhY2tBbmRPcHRpb25hbEFyZyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbkNvbmRpdGlvbmFsTWV0aG9kMSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsTWV0aG9kMik6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsTWV0aG9kMyk6CisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QxKToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1l
dGhvZDIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVy
bG9hZGVkTWV0aG9kMyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk92ZXJsb2FkZWRNZXRob2Q0KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kNik6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q3KToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDgpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0
aG9kOSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJs
b2FkZWRNZXRob2QxMCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk92ZXJsb2FkZWRNZXRob2QxMSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aENsYW1wKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFVuc2lnbmVkTG9uZ1NlcXVlbmNlKToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU3RyaW5nQXJyYXlG
dW5jdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkRv
bVN0cmluZ0xpc3RGdW5jdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbkdldFNWR0RvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uQ29udmVydDEpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25Db252ZXJ0Mik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbkNvbnZlcnQ0KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uQ29udmVydDUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NdXRhYmxlUG9pbnRGdW5jdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbkltbXV0YWJsZVBvaW50RnVuY3Rpb24pOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PcmFuZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TdHJpY3RGdW5jdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblN0cmljdEZ1bmN0aW9uV2l0aFNl
cXVlbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU3Ry
aWN0RnVuY3Rpb25XaXRoQXJyYXkpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25WYXJpYWRpY1N0cmluZ01ldGhvZCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvblZhcmlhZGljRG91YmxlTWV0aG9kKToKKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVmFyaWFkaWNOb2RlTWV0aG9kKToKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQW55KToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbkZ1bmMpOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblNldFNoYWRvdyk6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFNl
cXVlbmNlQXJnKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVu
Y3Rpb25OdWxsYWJsZUFycmF5QXJnKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFR5cGVkZWZz
UHJvdG90eXBlRnVuY3Rpb25GdW5jV2l0aENsYW1wKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25JbW11dGFibGVQb2ludEZ1bmN0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25TdHJpbmdBcnJheUZ1
bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rp
b25TdHJpbmdBcnJheUZ1bmN0aW9uMik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBlZGVm
c1Byb3RvdHlwZUZ1bmN0aW9uQ2FsbFdpdGhTZXF1ZW5jZVRoYXRSZXF1aXJlc0luY2x1ZGUpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhFeGNlcHRpb24pOgorICAgICAgICAqIGJyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbToKKyAg
ICAgICAgKEpTQzo6QmluZGluZ3M6OmNhbGxPYmpDRmFsbGJhY2tPYmplY3QpOgorICAgICAgICAq
IGJyaWRnZS9ydW50aW1lX21ldGhvZC5jcHA6CisgICAgICAgIChKU0M6OmNhbGxSdW50aW1lTWV0
aG9kKToKKwogMjAxNC0wMy0yNyAgTWlobmVhIE92aWRlbmllICA8bWlobmVhQGFkb2JlLmNvbT4K
IAogICAgICAgICBbQ1NTUmVnaW9uc10gUmVuYW1lIGluTmFtZWRGbG93IGZsYWcgdG8gaXNOYW1l
ZEZsb3dDb250ZW50Tm9kZSBmbGFnCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU05hdmlnYXRvckN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U05hdmlnYXRvckN1c3RvbS5jcHAKaW5kZXggOTJjNjM2Zi4uZTUwNGRhZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOYXZpZ2F0b3JDdXN0b20uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTmF2aWdhdG9yQ3VzdG9tLmNwcApAQCAtNTksNyAr
NTksNyBAQCBKU1ZhbHVlIEpTTmF2aWdhdG9yOjp3ZWJraXRHZXRVc2VyTWVkaWEoRXhlY1N0YXRl
KiBleGVjKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICB9CiAKLSAgICBKU05h
dmlnYXRvciogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNOYXZpZ2F0b3IqPihleGVjLT5o
b3N0VGhpc1ZhbHVlKCkpOworICAgIEpTTmF2aWdhdG9yKiBjYXN0ZWRUaGlzID0ganNEeW5hbWlj
Q2FzdDxKU05hdmlnYXRvcio+KGV4ZWMtPnRoaXNWYWx1ZSgpKTsKICAgICBSZWZQdHI8TmF2aWdh
dG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjazsKICAgICBpZiAoIWV4ZWMt
PmFyZ3VtZW50KDIpLmlzVW5kZWZpbmVkT3JOdWxsKCkpIHsKICAgICAgICAgaWYgKCFleGVjLT51
bmNoZWNrZWRBcmd1bWVudCgyKS5pc0Z1bmN0aW9uKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwCmluZGV4IDUw
YmI0NjguLmQ2NTcwYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
UGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcApAQCAtMTU0LDcgKzE1NCw3IEBAIHN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxQbHVnaW4oRXhlY1N0YXRlKiBleGVj
KQogICAgIEFTU0VSVChjYWxsVHlwZSA9PSBDYWxsVHlwZUhvc3QpOwogCiAgICAgLy8gQ2FsbCB0
aGUgb2JqZWN0LgotICAgIEpTVmFsdWUgcmVzdWx0ID0gY2FsbChleGVjLCBzY3JpcHRPYmplY3Qs
IGNhbGxUeXBlLCBjYWxsRGF0YSwgZXhlYy0+aG9zdFRoaXNWYWx1ZSgpLCBhcmd1bWVudExpc3Qp
OworICAgIEpTVmFsdWUgcmVzdWx0ID0gY2FsbChleGVjLCBzY3JpcHRPYmplY3QsIGNhbGxUeXBl
LCBjYWxsRGF0YSwgZXhlYy0+dGhpc1ZhbHVlKCksIGFyZ3VtZW50TGlzdCk7CiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IGE4MTNhZGQuLjQ4NjdmYzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtCkBAIC0yNzE5LDE1ICsyNzE5LDE1IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9u
CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAg
ICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpIHsKLSAgICAgICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJGNsYXNzTmFtZSogY2FzdGVkVGhpcyA9IHRvSlNE
T01XaW5kb3coZXhlYy0+aG9zdFRoaXNWYWx1ZSgpLnRvVGhpcyhleGVjLCBOb3RTdHJpY3RNb2Rl
KSk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJGNs
YXNzTmFtZSogY2FzdGVkVGhpcyA9IHRvSlNET01XaW5kb3coZXhlYy0+dGhpc1ZhbHVlKCkudG9U
aGlzKGV4ZWMsIE5vdFN0cmljdE1vZGUpKTtcbiIpOwogICAgICAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKVxuIik7CiAgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihleGVjKTtcbiIpOwogICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRpbnRlcmZh
Y2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJXb3JrZXJHbG9iYWxTY29wZSJ9KSB7Ci0gICAgICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICRjbGFzc05hbWUqIGNhc3RlZFRo
aXMgPSB0byR7Y2xhc3NOYW1lfShleGVjLT5ob3N0VGhpc1ZhbHVlKCkudG9UaGlzKGV4ZWMsIE5v
dFN0cmljdE1vZGUpKTtcbiIpOworICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICAkY2xhc3NOYW1lKiBjYXN0ZWRUaGlzID0gdG8ke2NsYXNzTmFtZX0oZXhlYy0+dGhp
c1ZhbHVlKCkudG9UaGlzKGV4ZWMsIE5vdFN0cmljdE1vZGUpKTtcbiIpOwogICAgICAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMp
KVxuIik7CiAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTtcbiIpOwogICAgICAgICAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEpTVmFsdWUg
dGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpO1xuIik7CisgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhp
c1ZhbHVlKCk7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgJGNsYXNzTmFtZSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8JGNsYXNzTmFtZSo+KHRo
aXNWYWx1ZSk7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgbXkgJGRvbUZ1bmN0aW9uTmFtZSA9
ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lOwogICAgICAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKVxuIik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNGbG9hdDY0QXJy
YXkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTRmxvYXQ2
NEFycmF5LmNwcAppbmRleCA4NjQzMWQ1Li4xZDU5MTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNGbG9hdDY0QXJyYXkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0Zsb2F0NjRBcnJheS5jcHAK
QEAgLTI1MSw3ICsyNTEsNyBAQCBKU1ZhbHVlIEpTRmxvYXQ2NEFycmF5OjpnZXRDb25zdHJ1Y3Rv
cihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYgogCiBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzRmxvYXQ2NEFycmF5UHJvdG90eXBlRnVuY3Rpb25Gb28oRXhl
Y1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNW
YWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAg
aWYgKCF0aGlzVmFsdWUuaW5oZXJpdHMoSlNGbG9hdDY0QXJyYXk6OmluZm8oKSkpCiAgICAgICAg
IHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogICAgIEpTRmxvYXQ2NEFycmF5KiBjYXN0
ZWRUaGlzID0ganNDYXN0PEpTRmxvYXQ2NEFycmF5Kj4oYXNPYmplY3QodGhpc1ZhbHVlKSk7CkBA
IC0yNjksNyArMjY5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0Zsb2F0NjRB
cnJheVByb3RvdHlwZUZ1bmN0aW9uRm9vKEV4ZWNTdGF0ZSogZXhlYykKIAogRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc0Zsb2F0NjRBcnJheVByb3RvdHlwZUZ1bmN0aW9uU2V0KEV4ZWNT
dGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFs
dWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIGlm
ICghdGhpc1ZhbHVlLmluaGVyaXRzKEpTRmxvYXQ2NEFycmF5OjppbmZvKCkpKQogICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKICAgICBKU0Zsb2F0NjRBcnJheSogY2FzdGVk
VGhpcyA9IGpzQ2FzdDxKU0Zsb2F0NjRBcnJheSo+KGFzT2JqZWN0KHRoaXNWYWx1ZSkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFj
dGl2ZURPTU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcAppbmRleCA2YTdkMjJmLi5kYTI5Njg1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0
aXZlRE9NT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcApAQCAtMTkwLDcgKzE5MCw3IEBAIEpTVmFs
dWUgSlNUZXN0QWN0aXZlRE9NT2JqZWN0OjpnZXRDb25zdHJ1Y3RvcihWTSYgdm0sIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25FeGNpdGluZ0Z1bmN0aW9uKEV4ZWNTdGF0
ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUo
KTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTVGVz
dEFjdGl2ZURPTU9iamVjdCogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0QWN0aXZl
RE9NT2JqZWN0Kj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQog
ICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBl
RXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RBY3RpdmVET01PYmplY3QiLCAiLiIs
ICJleGNpdGluZ0Z1bmN0aW9uIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RBY3RpdmVET01P
YmplY3QiKSk7CkBAIC0yMDksNyArMjA5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RBY3RpdmVET01PYmplY3RQcm90b3R5cGVGdW5jdGlvbkV4Y2l0aW5nRnVuY3QKIAog
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RBY3RpdmVET01PYmplY3RQcm90b3R5
cGVGdW5jdGlvblBvc3RNZXNzYWdlKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRo
aXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9
IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdEFjdGl2ZURPTU9iamVjdCogY2FzdGVkVGhp
cyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0QWN0aXZlRE9NT2JqZWN0Kj4odGhpc1ZhbHVlKTsKICAg
ICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVF
cnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwg
IiwgIlRlc3RBY3RpdmVET01PYmplY3QiLCAiLiIsICJwb3N0TWVzc2FnZSIsICIgb24gaW5zdGFu
Y2VzIG9mICIsICJUZXN0QWN0aXZlRE9NT2JqZWN0IikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21O
YW1lZEdldHRlci5jcHAKaW5kZXggMDYyMmJjNi4uZWNiNTQzZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwCkBAIC0xNzYsNyArMTc2LDcgQEAgSlNWYWx1ZSBKU1Rlc3RD
dXN0b21OYW1lZEdldHRlcjo6Z2V0Q29uc3RydWN0b3IoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2IKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RDdXN0b21OYW1l
ZEdldHRlclByb3RvdHlwZUZ1bmN0aW9uQW5vdGhlckZ1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYykK
IHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBK
U1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdEN1c3RvbU5h
bWVkR2V0dGVyKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RDdXN0b21OYW1lZEdl
dHRlcio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKICAgICAg
ICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9y
U3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIiLCAiLiIsICJh
bm90aGVyRnVuY3Rpb24iLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdEN1c3RvbU5hbWVkR2V0
dGVyIikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAKaW5kZXggNzJhODNjYi4uNGFjMDE0MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEV2ZW50VGFyZ2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwCkBAIC0yMTYsNyArMjE2LDcgQEAgSlNWYWx1ZSBK
U1Rlc3RFdmVudFRhcmdldDo6Z2V0Q29uc3RydWN0b3IoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEV2ZW50
VGFyZ2V0UHJvdG90eXBlRnVuY3Rpb25JdGVtKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1Zh
bHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNW
YWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdEV2ZW50VGFyZ2V0KiBjYXN0ZWRU
aGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RFdmVudFRhcmdldCo+KHRoaXNWYWx1ZSk7CiAgICAg
aWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJy
b3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIs
ICJUZXN0RXZlbnRUYXJnZXQiLCAiLiIsICJpdGVtIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRl
c3RFdmVudFRhcmdldCIpKTsKQEAgLTIzNyw3ICsyMzcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdEV2ZW50VGFyZ2V0UHJvdG90eXBlRnVuY3Rpb25JdGVtKEV4ZWNTdGF0
ZSogZQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEV2ZW50VGFyZ2V0UHJv
dG90eXBlRnVuY3Rpb25BZGRFdmVudExpc3RlbmVyKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBK
U1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRo
aXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdEV2ZW50VGFyZ2V0KiBjYXN0
ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RFdmVudFRhcmdldCo+KHRoaXNWYWx1ZSk7CiAg
ICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBl
RXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxs
ICIsICJUZXN0RXZlbnRUYXJnZXQiLCAiLiIsICJhZGRFdmVudExpc3RlbmVyIiwgIiBvbiBpbnN0
YW5jZXMgb2YgIiwgIlRlc3RFdmVudFRhcmdldCIpKTsKQEAgLTI1Miw3ICsyNTIsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEV2ZW50VGFyZ2V0UHJvdG90eXBlRnVuY3Rp
b25BZGRFdmVudExpc3RlbmVyKAogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dEV2ZW50VGFyZ2V0UHJvdG90eXBlRnVuY3Rpb25SZW1vdmVFdmVudExpc3RlbmVyKEV4ZWNTdGF0
ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUo
KTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTVGVz
dEV2ZW50VGFyZ2V0KiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RFdmVudFRhcmdl
dCo+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKICAgICAgICAg
cmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3Ry
aW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0RXZlbnRUYXJnZXQiLCAiLiIsICJyZW1vdmVFdmVu
dExpc3RlbmVyIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RFdmVudFRhcmdldCIpKTsKQEAg
LTI2Nyw3ICsyNjcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEV2ZW50
VGFyZ2V0UHJvdG90eXBlRnVuY3Rpb25SZW1vdmVFdmVudExpc3RlbgogCiBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEV2ZW50VGFyZ2V0UHJvdG90eXBlRnVuY3Rpb25EaXNwYXRj
aEV2ZW50KEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMt
Pmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1
ZSgpOwogICAgIEpTVGVzdEV2ZW50VGFyZ2V0KiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxK
U1Rlc3RFdmVudFRhcmdldCo+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRU
aGlzKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRp
bmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0RXZlbnRUYXJnZXQiLCAi
LiIsICJkaXNwYXRjaEV2ZW50IiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RFdmVudFRhcmdl
dCIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAKaW5kZXggYmQ3ODNhYi4uYjMxMmEyZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVy
ZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEludGVyZmFjZS5jcHAKQEAgLTc5Nyw3ICs3OTcsNyBAQCBKU1ZhbHVlIEpTVGVzdEludGVy
ZmFjZTo6Z2V0Q29uc3RydWN0b3IoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
KQogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQogRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbklt
cGxlbWVudHNNZXRob2QxKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1
ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMt
PnRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdEludGVyZmFjZSogY2FzdGVkVGhpcyA9IGpzRHluYW1p
Y0Nhc3Q8SlNUZXN0SW50ZXJmYWNlKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNh
c3RlZFRoaXMpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9N
QmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RJbnRlcmZhY2Ui
LCAiLiIsICJpbXBsZW1lbnRzTWV0aG9kMSIsICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0SW50
ZXJmYWNlIikpOwpAQCAtODEyLDcgKzgxMiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25JbXBsZW1lbnRzTWV0aG9kMShFCiAj
aWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCiBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uSW1wbGVt
ZW50c01ldGhvZDIoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0g
ZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhp
c1ZhbHVlKCk7CiAgICAgSlNUZXN0SW50ZXJmYWNlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2Fz
dDxKU1Rlc3RJbnRlcmZhY2UqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVk
VGhpcykpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5k
aW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdEludGVyZmFjZSIsICIu
IiwgImltcGxlbWVudHNNZXRob2QyIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RJbnRlcmZh
Y2UiKSk7CkBAIC04NDEsNyArODQxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbkltcGxlbWVudHNNZXRob2QyKEUKICNpZiBF
TkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25JbXBsZW1lbnRz
TWV0aG9kMyhFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVj
LT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFs
dWUoKTsKICAgICBKU1Rlc3RJbnRlcmZhY2UqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpT
VGVzdEludGVyZmFjZSo+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlz
KSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdz
VHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0SW50ZXJmYWNlIiwgIi4iLCAi
aW1wbGVtZW50c01ldGhvZDMiLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdEludGVyZmFjZSIp
KTsKQEAgLTg2Myw3ICs4NjMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dEludGVyZmFjZUNvbnN0cnVjdG9yRnVuY3Rpb25JbXBsZW1lbnRzTWV0aG9kNAogI2lmIEVOQUJM
RShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQogRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblN1cHBsZW1lbnRhbE1l
dGhvZDEoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+
aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVl
KCk7CiAgICAgSlNUZXN0SW50ZXJmYWNlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rl
c3RJbnRlcmZhY2UqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykp
CiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5
cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdEludGVyZmFjZSIsICIuIiwgInN1
cHBsZW1lbnRhbE1ldGhvZDEiLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdEludGVyZmFjZSIp
KTsKQEAgLTg3OCw3ICs4NzgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uU3VwcGxlbWVudGFsTWV0aG9kMQogI2lmIEVOQUJM
RShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQogRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblN1cHBsZW1lbnRhbE1l
dGhvZDIoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+
aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVl
KCk7CiAgICAgSlNUZXN0SW50ZXJmYWNlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rl
c3RJbnRlcmZhY2UqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykp
CiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5
cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdEludGVyZmFjZSIsICIuIiwgInN1
cHBsZW1lbnRhbE1ldGhvZDIiLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdEludGVyZmFjZSIp
KTsKQEAgLTkwNyw3ICs5MDcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uU3VwcGxlbWVudGFsTWV0aG9kMgogI2lmIEVOQUJM
RShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQogRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblN1cHBsZW1lbnRhbE1l
dGhvZDMoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+
aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVl
KCk7CiAgICAgSlNUZXN0SW50ZXJmYWNlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rl
c3RJbnRlcmZhY2UqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykp
CiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5
cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdEludGVyZmFjZSIsICIuIiwgInN1
cHBsZW1lbnRhbE1ldGhvZDMiLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdEludGVyZmFjZSIp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAppbmRleCA2
OTQxMGJkLi5hNWY4ODNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXIuY3BwCkBAIC0xNDksNyArMTQ5LDcgQEAgSlNWYWx1ZSBKU1Rlc3RNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyOjpnZXRDb25zdHJ1Y3RvcihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG8KIAog
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
UHJvdG90eXBlRnVuY3Rpb25NZXRob2QoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUg
dGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVl
ID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciog
Y2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcio+
KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKICAgICAgICAgcmV0
dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5n
KCJDYW4gb25seSBjYWxsICIsICJUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciIsICIuIiwgIm1l
dGhvZCIsICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciIp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE9iai5jcHAKaW5kZXggYjgxZTIxYi4uZmU5YTg4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAgLTMyNTEs
NyArMzI1MSw3IEBAIEpTVmFsdWUgSlNUZXN0T2JqOjpnZXRDb25zdHJ1Y3RvcihWTSYgdm0sIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Wb2lkTWV0aG9kKEV4ZWNTdGF0ZSogZXhlYykK
IHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBK
U1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2Fz
dGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAo
VU5MSUtFTFkoIWNhc3RlZFRoaXMpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihl
eGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRl
c3RPYmoiLCAiLiIsICJ2b2lkTWV0aG9kIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoi
KSk7CkBAIC0zMjYzLDcgKzMyNjMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVm9pZE1ldGhvZChFeGVjU3RhdGUqIGV4ZQogCiBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVm9pZE1l
dGhvZFdpdGhBcmdzKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9
IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRo
aXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNU
ZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQogICAg
ICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJy
b3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIsICJ2b2lkTWV0aG9kV2l0
aEFyZ3MiLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKQEAgLTMyODYsNyArMzI4
Niw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25Wb2lkTWV0aG9kV2l0aEFyZ3MoRXhlY1N0CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25CeXRlTWV0aG9kKEV4ZWNTdGF0ZSogZXhl
YykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAg
ICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiog
Y2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBp
ZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJv
cihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwg
IlRlc3RPYmoiLCAiLiIsICJieXRlTWV0aG9kIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RP
YmoiKSk7CkBAIC0zMjk4LDcgKzMyOTgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQnl0ZU1ldGhvZChFeGVjU3RhdGUqIGV4ZQogCiBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQnl0
ZU1ldGhvZFdpdGhBcmdzKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1
ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMt
PnRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8
SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQog
ICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBl
RXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIsICJieXRlTWV0aG9k
V2l0aEFyZ3MiLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKQEAgLTMzMjEsNyAr
MzMyMSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25CeXRlTWV0aG9kV2l0aEFyZ3MoRXhlY1N0CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PY3RldE1ldGhvZChFeGVjU3RhdGUq
IGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7
CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBKU1Rlc3RP
YmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAg
ICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBl
RXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxs
ICIsICJUZXN0T2JqIiwgIi4iLCAib2N0ZXRNZXRob2QiLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAi
VGVzdE9iaiIpKTsKQEAgLTMzMzMsNyArMzMzMyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PY3RldE1ldGhvZChFeGVjU3RhdGUqIGV4
CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25PY3RldE1ldGhvZFdpdGhBcmdzKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRo
aXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9
IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1p
Y0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRo
aXMpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGlu
Z3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIsICJvY3Rl
dE1ldGhvZFdpdGhBcmdzIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CkBAIC0z
MzU2LDcgKzMzNTYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uT2N0ZXRNZXRob2RXaXRoQXJncyhFeGVjUwogCiBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZChFeGVj
U3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1Zh
bHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBK
U1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1
ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKICAgICAgICAgcmV0dXJuIHRocm93
Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25s
eSBjYWxsICIsICJUZXN0T2JqIiwgIi4iLCAibG9uZ01ldGhvZCIsICIgb24gaW5zdGFuY2VzIG9m
ICIsICJUZXN0T2JqIikpOwpAQCAtMzM2OCw3ICszMzY4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkxvbmdNZXRob2QoRXhlY1N0YXRl
KiBleGUKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbkxvbmdNZXRob2RXaXRoQXJncyhFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1
ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFs
dWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5
bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0
ZWRUaGlzKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJp
bmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0T2JqIiwgIi4iLCAi
bG9uZ01ldGhvZFdpdGhBcmdzIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CkBA
IC0zMzkxLDcgKzMzOTEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZFdpdGhBcmdzKEV4ZWNTdAogCiBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kKEV4
ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlz
VmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAg
IEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1Zh
bHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQogICAgICAgICByZXR1cm4gdGhy
b3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBv
bmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIsICJvYmpNZXRob2QiLCAiIG9uIGluc3RhbmNlcyBv
ZiAiLCAiVGVzdE9iaiIpKTsKQEAgLTM0MDMsNyArMzQwMyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PYmpNZXRob2QoRXhlY1N0YXRl
KiBleGVjCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25PYmpNZXRob2RXaXRoQXJncyhFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1
ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFs
dWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5
bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0
ZWRUaGlzKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJp
bmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0T2JqIiwgIi4iLCAi
b2JqTWV0aG9kV2l0aEFyZ3MiLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKQEAg
LTM0MjYsNyArMzQyNiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25PYmpNZXRob2RXaXRoQXJncyhFeGVjU3RhCiAKIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoU2Vx
dWVuY2VBcmcoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhl
Yy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1Zh
bHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RP
YmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCiAgICAgICAg
IHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0
cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9iaiIsICIuIiwgIm1ldGhvZFdpdGhTZXF1ZW5j
ZUFyZyIsICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwpAQCAtMzQ0Myw3ICszNDQz
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk1ldGhvZFdpdGhTZXF1ZW5jZUFyZyhFeGUKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFJldHVybmluZ1NlcXVlbmNlKEV4
ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlz
VmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAg
IEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1Zh
bHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQogICAgICAgICByZXR1cm4gdGhy
b3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBv
bmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIsICJtZXRob2RSZXR1cm5pbmdTZXF1ZW5jZSIsICIg
b24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwpAQCAtMzQ2MCw3ICszNDYwLDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFJldHVybmluZ1NlcXVlbmNlKEUKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhFbnVtQXJnKEV4ZWNTdGF0ZSogZXhlYykK
IHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBK
U1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2Fz
dGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAo
VU5MSUtFTFkoIWNhc3RlZFRoaXMpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihl
eGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRl
c3RPYmoiLCAiLiIsICJtZXRob2RXaXRoRW51bUFyZyIsICIgb24gaW5zdGFuY2VzIG9mICIsICJU
ZXN0T2JqIikpOwpAQCAtMzQ3OSw3ICszNDc5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhFbnVtQXJnKEV4ZWNTdGEK
IAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3MoRXhlY1N0YXRlKiBleGVjKQogewot
ICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFs
dWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRU
aGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJ
S0VMWSghY2FzdGVkVGhpcykpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMs
IG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9i
aiIsICIuIiwgIm1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3MiLCAiIG9uIGluc3Rh
bmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKQEAgLTM1MDIsNyArMzUwMiw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RUaGF0UmVx
dWlyZXNBbGxBcmdzCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25TZXJpYWxpemVkVmFsdWUoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpT
VmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhp
c1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0g
anNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSgh
Y2FzdGVkVGhpcykpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VE
T01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9iaiIsICIu
IiwgInNlcmlhbGl6ZWRWYWx1ZSIsICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwpA
QCAtMzUxOSw3ICszNTE5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvblNlcmlhbGl6ZWRWYWx1ZShFeGVjU3RhdGUKIAogRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9wdGlvbnNPYmpl
Y3QoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9z
dFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7
CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0
aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCiAgICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygi
Q2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9iaiIsICIuIiwgIm9wdGlvbnNPYmplY3QiLCAiIG9uIGlu
c3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKQEAgLTM1MzksNyArMzUzOSw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PcHRpb25zT2Jq
ZWN0KEV4ZWNTdGF0ZSoKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhFeGNlcHRpb24oRXhlY1N0YXRlKiBleGVjKQogewot
ICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFs
dWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRU
aGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJ
S0VMWSghY2FzdGVkVGhpcykpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMs
IG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9i
aiIsICIuIiwgIm1ldGhvZFdpdGhFeGNlcHRpb24iLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVz
dE9iaiIpKTsKQEAgLTM1NTMsNyArMzU1Myw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRXhjZXB0aW9uKEV4ZWNTCiAK
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25D
dXN0b21NZXRob2QoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0g
ZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhp
c1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rl
c3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCiAgICAg
ICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJv
clN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9iaiIsICIuIiwgImN1c3RvbU1ldGhvZCIs
ICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwpAQCAtMzU2Myw3ICszNTYzLDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkN1
c3RvbU1ldGhvZChFeGVjU3RhdGUqIGUKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkN1c3RvbU1ldGhvZFdpdGhBcmdzKEV4ZWNTdGF0ZSog
ZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsK
KyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9i
aiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAg
ICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVF
cnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwg
IiwgIlRlc3RPYmoiLCAiLiIsICJjdXN0b21NZXRob2RXaXRoQXJncyIsICIgb24gaW5zdGFuY2Vz
IG9mICIsICJUZXN0T2JqIikpOwpAQCAtMzU3Myw3ICszNTczLDcgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkN1c3RvbU1ldGhvZFdpdGhB
cmdzKEV4ZWMKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbkFkZEV2ZW50TGlzdGVuZXIoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFs
dWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1Zh
bHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNE
eW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2Fz
dGVkVGhpcykpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01C
aW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9iaiIsICIuIiwg
ImFkZEV2ZW50TGlzdGVuZXIiLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKQEAg
LTM1ODgsNyArMzU4OCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25BZGRFdmVudExpc3RlbmVyKEV4ZWNTdGF0CiAKIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25SZW1vdmVFdmVudExp
c3RlbmVyKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMt
Pmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1
ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2Jq
Kj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQogICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJp
bmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIsICJyZW1vdmVFdmVudExpc3RlbmVy
IiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CkBAIC0zNjAzLDcgKzM2MDMsNyBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
UmVtb3ZlRXZlbnRMaXN0ZW5lcihFeGVjUwogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdFN0YXRlVm9pZChFeGVjU3RhdGUq
IGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7
CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBKU1Rlc3RP
YmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAg
ICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBl
RXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxs
ICIsICJUZXN0T2JqIiwgIi4iLCAid2l0aFNjcmlwdFN0YXRlVm9pZCIsICIgb24gaW5zdGFuY2Vz
IG9mICIsICJUZXN0T2JqIikpOwpAQCAtMzYxNSw3ICszNjE1LDcgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRTdGF0ZVZv
aWQoRXhlY1MKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbldpdGhTY3JpcHRTdGF0ZU9iaihFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNW
YWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlz
VmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBq
c0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFj
YXN0ZWRUaGlzKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURP
TUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0T2JqIiwgIi4i
LCAid2l0aFNjcmlwdFN0YXRlT2JqIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7
CkBAIC0zNjI5LDcgKzM2MjksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdFN0YXRlT2JqKEV4ZWNTdAogCiBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlw
dFN0YXRlVm9pZEV4Y2VwdGlvbihFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlz
VmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBl
eGVjLT50aGlzVmFsdWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWND
YXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlz
KSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdz
VHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0T2JqIiwgIi4iLCAid2l0aFNj
cmlwdFN0YXRlVm9pZEV4Y2VwdGlvbiIsICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikp
OwpAQCAtMzY0Myw3ICszNjQzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRTdGF0ZVZvaWRFeGNlcHQKIAogRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3Jp
cHRTdGF0ZU9iakV4Y2VwdGlvbihFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlz
VmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBl
eGVjLT50aGlzVmFsdWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWND
YXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlz
KSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdz
VHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0T2JqIiwgIi4iLCAid2l0aFNj
cmlwdFN0YXRlT2JqRXhjZXB0aW9uIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7
CkBAIC0zNjYwLDcgKzM2NjAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdFN0YXRlT2JqRXhjZXB0aQogCiBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1Zh
bHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhl
Yy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2Fz
dDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykp
CiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5
cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9iaiIsICIuIiwgIndpdGhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0IiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CkBA
IC0zNjc1LDcgKzM2NzUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleAogCiBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZShFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNW
YWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlz
VmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBq
c0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFj
YXN0ZWRUaGlzKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURP
TUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0T2JqIiwgIi4i
LCAid2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZSIsICIgb24gaW5zdGFu
Y2VzIG9mICIsICJUZXN0T2JqIikpOwpAQCAtMzY5MCw3ICszNjkwLDcgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRFeGVj
dXRpb25Db250ZXgKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVPYmpF
eGNlcHRpb24oRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhl
Yy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1Zh
bHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RP
YmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCiAgICAgICAg
IHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0
cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9iaiIsICIuIiwgIndpdGhTY3JpcHRFeGVjdXRp
b25Db250ZXh0QW5kU2NyaXB0U3RhdGVPYmpFeGNlcHRpb24iLCAiIG9uIGluc3RhbmNlcyBvZiAi
LCAiVGVzdE9iaiIpKTsKQEAgLTM3MTAsNyArMzcxMCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25XaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlV2l0aFNwYWNlcyhF
eGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhp
c1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAg
ICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRoaXNW
YWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKICAgICAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4g
b25seSBjYWxsICIsICJUZXN0T2JqIiwgIi4iLCAid2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRB
bmRTY3JpcHRTdGF0ZVdpdGhTcGFjZXMiLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIp
KTsKQEAgLTM3MjcsNyArMzcyNyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4CiAKIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2Ny
aXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVl
IHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1
ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3Rl
ZFRoaXMpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmlu
ZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIsICJ3
aXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRl
c3RPYmoiKSk7CkBAIC0zNzQwLDcgKzM3NDAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbAog
CiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TWV0aG9kV2l0aE9wdGlvbmFsQXJnKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRo
aXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9
IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1p
Y0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRo
aXMpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGlu
Z3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIsICJtZXRo
b2RXaXRoT3B0aW9uYWxBcmciLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKQEAg
LTM3NjIsNyArMzc2Miw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxBcmcoRXhlCiAKIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9u
T3B0aW9uYWxBcmdBbmRPcHRpb25hbEFyZyhFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1
ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFs
dWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5
bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0
ZWRUaGlzKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJp
bmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0T2JqIiwgIi4iLCAi
bWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kT3B0aW9uYWxBcmciLCAiIG9uIGluc3RhbmNlcyBv
ZiAiLCAiVGVzdE9iaiIpKTsKQEAgLTM3ODksNyArMzc4OSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uT3B0aW9u
YWxBcmdBCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25NZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRUd29PcHRpb25hbEFyZ3MoRXhlY1N0
YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1
ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNU
ZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUp
OwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCiAgICAgICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkg
Y2FsbCAiLCAiVGVzdE9iaiIsICIuIiwgIm1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0FuZFR3b09w
dGlvbmFsQXJncyIsICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwpAQCAtMzgyNCw3
ICszODI0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0EKIAogRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFN0
cmluZyhFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5o
b3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUo
KTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+
KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKICAgICAgICAgcmV0
dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5n
KCJDYW4gb25seSBjYWxsICIsICJUZXN0T2JqIiwgIi4iLCAibWV0aG9kV2l0aE9wdGlvbmFsU3Ry
aW5nIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CkBAIC0zODQ2LDcgKzM4NDYs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nKAogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nSXNV
bmRlZmluZWQoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhl
Yy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1Zh
bHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RP
YmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCiAgICAgICAg
IHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0
cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9iaiIsICIuIiwgIm1ldGhvZFdpdGhPcHRpb25h
bFN0cmluZ0lzVW5kZWZpbmVkIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CkBA
IC0zODYxLDcgKzM4NjEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nSQogCiBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9w
dGlvbmFsU3RyaW5nSXNOdWxsU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVl
IHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1
ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3Rl
ZFRoaXMpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmlu
ZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIsICJt
ZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJc051bGxTdHJpbmciLCAiIG9uIGluc3RhbmNlcyBvZiAi
LCAiVGVzdE9iaiIpKTsKQEAgLTM4NzYsNyArMzg3Niw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTdHJp
bmdJCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoQ2FsbGJhY2tBcmcoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFs
dWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1Zh
bHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNE
eW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2Fz
dGVkVGhpcykpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01C
aW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9iaiIsICIuIiwg
Im1ldGhvZFdpdGhDYWxsYmFja0FyZyIsICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikp
OwpAQCAtMzg5Myw3ICszODkzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhDYWxsYmFja0FyZyhFeGUKIAogRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhOb25DYWxsYmFja0FyZ0FuZENhbGxiYWNrQXJnKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBK
U1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRo
aXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9
IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFko
IWNhc3RlZFRoaXMpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtl
RE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAi
LiIsICJtZXRob2RXaXRoTm9uQ2FsbGJhY2tBcmdBbmRDYWxsYmFja0FyZyIsICIgb24gaW5zdGFu
Y2VzIG9mICIsICJUZXN0T2JqIikpOwpAQCAtMzkxMyw3ICszOTEzLDcgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOb25D
YWxsYmFja0FyZ0EKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhDYWxsYmFja0FuZE9wdGlvbmFsQXJnKEV4ZWNTdGF0ZSog
ZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsK
KyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9i
aiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAg
ICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVF
cnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwg
IiwgIlRlc3RPYmoiLCAiLiIsICJtZXRob2RXaXRoQ2FsbGJhY2tBbmRPcHRpb25hbEFyZyIsICIg
b24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwpAQCAtMzk1NSw3ICszOTU1LDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uU3Rh
dGljTWV0aG9kV2l0aENhbGxiYWMKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkKIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbE1l
dGhvZDEoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+
aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVl
KCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoq
Pih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCiAgICAgICAgIHJl
dHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmlu
ZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9iaiIsICIuIiwgImNvbmRpdGlvbmFsTWV0aG9kMSIs
ICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwpAQCAtMzk3MCw3ICszOTcwLDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNv
bmRpdGlvbmFsTWV0aG9kMShFeGVjU3QKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkgJiYgRU5BQkxF
KENvbmRpdGlvbjIpCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxNZXRob2QyKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBK
U1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRo
aXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9
IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFko
IWNhc3RlZFRoaXMpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtl
RE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAi
LiIsICJjb25kaXRpb25hbE1ldGhvZDIiLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIp
KTsKQEAgLTM5ODUsNyArMzk4NSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbE1ldGhvZDIoRXhlY1N0CiAjaWYgRU5B
QkxFKENvbmRpdGlvbjEpIHx8IEVOQUJMRShDb25kaXRpb24yKQogRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsTWV0aG9kMyhF
eGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhp
c1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAg
ICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRoaXNW
YWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKICAgICAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4g
b25seSBjYWxsICIsICJUZXN0T2JqIiwgIi4iLCAiY29uZGl0aW9uYWxNZXRob2QzIiwgIiBvbiBp
bnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CkBAIC0zOTk5LDcgKzM5OTksNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9u
YWxNZXRob2QzKEV4ZWNTdAogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QxKEV4ZWNTdGF0ZSogZXhl
YykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAg
ICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiog
Y2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBp
ZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJv
cihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwg
IlRlc3RPYmoiLCAiLiIsICJvdmVybG9hZGVkTWV0aG9kIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwg
IlRlc3RPYmoiKSk7CkBAIC00MDE5LDcgKzQwMTksNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Qx
KAogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QyKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1Zh
bHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNW
YWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpz
RHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNh
c3RlZFRoaXMpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9N
QmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIs
ICJvdmVybG9hZGVkTWV0aG9kIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CkBA
IC00MDQ2LDcgKzQwNDYsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QyKAogCiBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJs
b2FkZWRNZXRob2QzKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9
IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRo
aXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNU
ZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQogICAg
ICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJy
b3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIsICJvdmVybG9hZGVkTWV0
aG9kIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CkBAIC00MDYzLDcgKzQwNjMs
NyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QzKAogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q0KEV4
ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlz
VmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAg
IEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1Zh
bHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQogICAgICAgICByZXR1cm4gdGhy
b3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBv
bmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIsICJvdmVybG9hZGVkTWV0aG9kIiwgIiBvbiBpbnN0
YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CkBAIC00MDgwLDcgKzQwODAsNyBAQCBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJs
b2FkZWRNZXRob2Q0KAogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q1KEV4ZWNTdGF0ZSogZXhlYykK
IHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBK
U1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2Fz
dGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAo
VU5MSUtFTFkoIWNhc3RlZFRoaXMpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihl
eGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRl
c3RPYmoiLCAiLiIsICJvdmVybG9hZGVkTWV0aG9kIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRl
c3RPYmoiKSk7CkBAIC00MDk3LDcgKzQwOTcsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q1KAog
CiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q2KEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVl
IHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1
ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3Rl
ZFRoaXMpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmlu
ZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIsICJv
dmVybG9hZGVkTWV0aG9kIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CkBAIC00
MTE0LDcgKzQxMTQsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q2KAogCiBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2Fk
ZWRNZXRob2Q3KEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4
ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNW
YWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0
T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQogICAgICAg
ICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JT
dHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIsICJvdmVybG9hZGVkTWV0aG9k
IiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CkBAIC00MTMxLDcgKzQxMzEsNyBA
QCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q3KAogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q4KEV4ZWNT
dGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFs
dWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpT
VGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVl
KTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQogICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5
IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIsICJvdmVybG9hZGVkTWV0aG9kIiwgIiBvbiBpbnN0YW5j
ZXMgb2YgIiwgIlRlc3RPYmoiKSk7CkBAIC00MTQ4LDcgKzQxNDgsNyBAQCBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2Fk
ZWRNZXRob2Q4KAogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q5KEV4ZWNTdGF0ZSogZXhlYykKIHsK
LSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1Zh
bHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVk
VGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5M
SUtFTFkoIWNhc3RlZFRoaXMpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVj
LCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RP
YmoiLCAiLiIsICJvdmVybG9hZGVkTWV0aG9kIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RP
YmoiKSk7CkBAIC00MTY1LDcgKzQxNjUsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q5KAogCiBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk92ZXJsb2FkZWRNZXRob2QxMChFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0
aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUg
PSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFt
aWNDYXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRU
aGlzKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRp
bmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0T2JqIiwgIi4iLCAib3Zl
cmxvYWRlZE1ldGhvZCIsICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwpAQCAtNDE4
Miw3ICs0MTgyLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMTAKIAogc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVk
TWV0aG9kMTEoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhl
Yy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1Zh
bHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RP
YmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCiAgICAgICAg
IHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0
cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9iaiIsICIuIiwgIm92ZXJsb2FkZWRNZXRob2Qi
LCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKQEAgLTQzMDcsNyArNDMwNyw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlv
bk92ZXJsb2FkZWRNZXRob2QxKEV4ZWNTCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DbGFzc01ldGhvZFdpdGhDbGFtcChFeGVjU3RhdGUq
IGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7
CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBKU1Rlc3RP
YmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAg
ICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBl
RXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxs
ICIsICJUZXN0T2JqIiwgIi4iLCAiY2xhc3NNZXRob2RXaXRoQ2xhbXAiLCAiIG9uIGluc3RhbmNl
cyBvZiAiLCAiVGVzdE9iaiIpKTsKQEAgLTQzMzcsNyArNDMzNyw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DbGFzc01ldGhvZFdpdGhD
bGFtcChFeGVjCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoVW5zaWduZWRMb25nU2VxdWVuY2UoRXhlY1N0YXRlKiBleGVj
KQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAg
IEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBj
YXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlm
IChVTkxJS0VMWSghY2FzdGVkVGhpcykpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9y
KGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAi
VGVzdE9iaiIsICIuIiwgIm1ldGhvZFdpdGhVbnNpZ25lZExvbmdTZXF1ZW5jZSIsICIgb24gaW5z
dGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwpAQCAtNDM1NCw3ICs0MzU0LDcgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhV
bnNpZ25lZExvbmdTZXEKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvblN0cmluZ0FycmF5RnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjKQogewot
ICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFs
dWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRU
aGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJ
S0VMWSghY2FzdGVkVGhpcykpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMs
IG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9i
aiIsICIuIiwgInN0cmluZ0FycmF5RnVuY3Rpb24iLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVz
dE9iaiIpKTsKQEAgLTQzNzQsNyArNDM3NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TdHJpbmdBcnJheUZ1bmN0aW9uKEV4ZWNTCiAK
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25E
b21TdHJpbmdMaXN0RnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhp
c1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0g
ZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWlj
Q2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhp
cykpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5n
c1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9iaiIsICIuIiwgImRvbVN0
cmluZ0xpc3RGdW5jdGlvbiIsICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwpAQCAt
NDM5NCw3ICs0Mzk0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkRvbVN0cmluZ0xpc3RGdW5jdGlvbihFeGUKIAogRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkdldFNWR0RvY3VtZW50
KEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RU
aGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwog
ICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhp
c1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQogICAgICAgICByZXR1cm4g
dGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNh
biBvbmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIsICJnZXRTVkdEb2N1bWVudCIsICIgb24gaW5z
dGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwpAQCAtNDQxMSw3ICs0NDExLDcgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkdldFNWR0RvY3Vt
ZW50KEV4ZWNTdGF0ZSoKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkNvbnZlcnQxKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVl
IHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1
ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3Rl
ZFRoaXMpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmlu
ZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIsICJj
b252ZXJ0MSIsICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwpAQCAtNDQyOCw3ICs0
NDI4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbkNvbnZlcnQxKEV4ZWNTdGF0ZSogZXhlYykKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQyKEV4ZWNTdGF0ZSogZXhl
YykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAg
ICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiog
Y2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBp
ZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJv
cihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwg
IlRlc3RPYmoiLCAiLiIsICJjb252ZXJ0MiIsICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2Jq
IikpOwpAQCAtNDQ0NSw3ICs0NDQ1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQyKEV4ZWNTdGF0ZSogZXhlYykKIAogRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZl
cnQ0KEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhv
c3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgp
OwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4o
dGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQogICAgICAgICByZXR1
cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmco
IkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIsICJjb252ZXJ0NCIsICIgb24gaW5zdGFu
Y2VzIG9mICIsICJUZXN0T2JqIikpOwpAQCAtNDQ2Miw3ICs0NDYyLDcgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQ0KEV4ZWNT
dGF0ZSogZXhlYykKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbkNvbnZlcnQ1KEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRo
aXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9
IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1p
Y0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRo
aXMpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGlu
Z3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIsICJjb252
ZXJ0NSIsICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwpAQCAtNDQ3OSw3ICs0NDc5
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbkNvbnZlcnQ1KEV4ZWNTdGF0ZSogZXhlYykKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk11dGFibGVQb2ludEZ1bmN0aW9uKEV4ZWNT
dGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFs
dWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpT
VGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVl
KTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQogICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5
IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIsICJtdXRhYmxlUG9pbnRGdW5jdGlvbiIsICIgb24gaW5z
dGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwpAQCAtNDQ5MSw3ICs0NDkxLDcgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk11dGFibGVQb2lu
dEZ1bmN0aW9uKEV4ZWMKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkltbXV0YWJsZVBvaW50RnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjKQog
ewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpT
VmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0
ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChV
TkxJS0VMWSghY2FzdGVkVGhpcykpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVz
dE9iaiIsICIuIiwgImltbXV0YWJsZVBvaW50RnVuY3Rpb24iLCAiIG9uIGluc3RhbmNlcyBvZiAi
LCAiVGVzdE9iaiIpKTsKQEAgLTQ1MDMsNyArNDUwMyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25JbW11dGFibGVQb2ludEZ1bmN0aW9u
KEV4CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25PcmFuZ2UoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0g
ZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhp
c1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rl
c3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCiAgICAg
ICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJv
clN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9iaiIsICIuIiwgIm9yYW5nZSIsICIgb24g
aW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwpAQCAtNDUxNSw3ICs0NTE1LDcgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9yYW5nZShF
eGVjU3RhdGUqIGV4ZWMpCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25TdHJpY3RGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAg
SlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0
aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMg
PSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZ
KCFjYXN0ZWRUaGlzKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFr
ZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0T2JqIiwg
Ii4iLCAic3RyaWN0RnVuY3Rpb24iLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsK
QEAgLTQ1NDEsNyArNDU0MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25TdHJpY3RGdW5jdGlvbihFeGVjU3RhdGUqCiAKIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TdHJpY3RGdW5j
dGlvbldpdGhTZXF1ZW5jZShFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFs
dWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVj
LT50aGlzVmFsdWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0
PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkK
ICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlw
ZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0T2JqIiwgIi4iLCAic3RyaWN0RnVu
Y3Rpb25XaXRoU2VxdWVuY2UiLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKQEAg
LTQ1NjYsNyArNDU2Niw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25TdHJpY3RGdW5jdGlvbldpdGhTZXF1ZW5jCiAKIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TdHJpY3RGdW5jdGlv
bldpdGhBcnJheShFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBl
eGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlz
VmFsdWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVz
dE9iaio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKICAgICAg
ICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9y
U3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0T2JqIiwgIi4iLCAic3RyaWN0RnVuY3Rpb25X
aXRoQXJyYXkiLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKQEAgLTQ1OTEsNyAr
NDU5MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25TdHJpY3RGdW5jdGlvbldpdGhBcnJheShFCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25WYXJpYWRpY1N0cmluZ01ldGhvZChF
eGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhp
c1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAg
ICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRoaXNW
YWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKICAgICAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4g
b25seSBjYWxsICIsICJUZXN0T2JqIiwgIi4iLCAidmFyaWFkaWNTdHJpbmdNZXRob2QiLCAiIG9u
IGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKQEAgLTQ2MTEsNyArNDYxMSw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25WYXJpYWRp
Y1N0cmluZ01ldGhvZChFeGVjCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25WYXJpYWRpY0RvdWJsZU1ldGhvZChFeGVjU3RhdGUqIGV4ZWMp
CiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAg
SlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBKU1Rlc3RPYmoqIGNh
c3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAgICAgaWYg
KFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Io
ZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJU
ZXN0T2JqIiwgIi4iLCAidmFyaWFkaWNEb3VibGVNZXRob2QiLCAiIG9uIGluc3RhbmNlcyBvZiAi
LCAiVGVzdE9iaiIpKTsKQEAgLTQ2MzEsNyArNDYzMSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25WYXJpYWRpY0RvdWJsZU1ldGhvZChF
eGVjCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25WYXJpYWRpY05vZGVNZXRob2QoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUg
dGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVl
ID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5h
bWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVk
VGhpcykpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5k
aW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9iaiIsICIuIiwgInZh
cmlhZGljTm9kZU1ldGhvZCIsICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwpAQCAt
NDY1NCw3ICs0NjU0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvblZhcmlhZGljTm9kZU1ldGhvZChFeGVjU3QKIAogRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkFueShFeGVjU3RhdGUq
IGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7
CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBKU1Rlc3RP
YmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAg
ICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBl
RXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxs
ICIsICJUZXN0T2JqIiwgIi4iLCAiYW55IiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoi
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0VHlwZWRlZnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdFR5cGVkZWZzLmNwcAppbmRleCAyNGEwYzE0Li4zZDk1Y2JiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RU
eXBlZGVmcy5jcHAKQEAgLTUxMSw3ICs1MTEsNyBAQCBKU1ZhbHVlIEpTVGVzdFR5cGVkZWZzOjpn
ZXRDb25zdHJ1Y3RvcihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAKIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlv
bkZ1bmMoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+
aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVl
KCk7CiAgICAgSlNUZXN0VHlwZWRlZnMqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVz
dFR5cGVkZWZzKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQog
ICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBl
RXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RUeXBlZGVmcyIsICIuIiwgImZ1bmMi
LCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdFR5cGVkZWZzIikpOwpAQCAtNTMzLDcgKzUzMyw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0VHlwZWRlZnNQcm90b3R5cGVG
dW5jdGlvbkZ1bmMoRXhlY1N0YXRlKiBleGVjCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblNldFNoYWRvdyhFeGVjU3RhdGUqIGV4
ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7Cisg
ICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBKU1Rlc3RUeXBl
ZGVmcyogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0VHlwZWRlZnMqPih0aGlzVmFs
dWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCiAgICAgICAgIHJldHVybiB0aHJv
d1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9u
bHkgY2FsbCAiLCAiVGVzdFR5cGVkZWZzIiwgIi4iLCAic2V0U2hhZG93IiwgIiBvbiBpbnN0YW5j
ZXMgb2YgIiwgIlRlc3RUeXBlZGVmcyIpKTsKQEAgLTU3NCw3ICs1NzQsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25TZXRTaGFk
b3coRXhlY1N0YXRlKgogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5cGVk
ZWZzUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoU2VxdWVuY2VBcmcoRXhlY1N0YXRlKiBleGVj
KQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAg
IEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0VHlwZWRl
ZnMqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFR5cGVkZWZzKj4odGhpc1ZhbHVl
KTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQogICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5
IGNhbGwgIiwgIlRlc3RUeXBlZGVmcyIsICIuIiwgIm1ldGhvZFdpdGhTZXF1ZW5jZUFyZyIsICIg
b24gaW5zdGFuY2VzIG9mICIsICJUZXN0VHlwZWRlZnMiKSk7CkBAIC01OTEsNyArNTkxLDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kV2l0aFNlcXVlbmNlQXIKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uTnVsbGFibGVBcnJheUFyZyhFeGVjU3RhdGUq
IGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7
CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBKU1Rlc3RU
eXBlZGVmcyogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0VHlwZWRlZnMqPih0aGlz
VmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCiAgICAgICAgIHJldHVybiB0
aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2Fu
IG9ubHkgY2FsbCAiLCAiVGVzdFR5cGVkZWZzIiwgIi4iLCAibnVsbGFibGVBcnJheUFyZyIsICIg
b24gaW5zdGFuY2VzIG9mICIsICJUZXN0VHlwZWRlZnMiKSk7CkBAIC02MDgsNyArNjA4LDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0
aW9uTnVsbGFibGVBcnJheUFyZyhFeGUKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uRnVuY1dpdGhDbGFtcChFeGVjU3RhdGUqIGV4
ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7Cisg
ICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBKU1Rlc3RUeXBl
ZGVmcyogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0VHlwZWRlZnMqPih0aGlzVmFs
dWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCiAgICAgICAgIHJldHVybiB0aHJv
d1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9u
bHkgY2FsbCAiLCAiVGVzdFR5cGVkZWZzIiwgIi4iLCAiZnVuY1dpdGhDbGFtcCIsICIgb24gaW5z
dGFuY2VzIG9mICIsICJUZXN0VHlwZWRlZnMiKSk7CkBAIC02NDUsNyArNjQ1LDcgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uRnVu
Y1dpdGhDbGFtcChFeGVjU3QKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RU
eXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uSW1tdXRhYmxlUG9pbnRGdW5jdGlvbihFeGVjU3RhdGUq
IGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7
CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBKU1Rlc3RU
eXBlZGVmcyogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0VHlwZWRlZnMqPih0aGlz
VmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCiAgICAgICAgIHJldHVybiB0
aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2Fu
IG9ubHkgY2FsbCAiLCAiVGVzdFR5cGVkZWZzIiwgIi4iLCAiaW1tdXRhYmxlUG9pbnRGdW5jdGlv
biIsICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0VHlwZWRlZnMiKSk7CkBAIC02NTcsNyArNjU3
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlw
ZUZ1bmN0aW9uSW1tdXRhYmxlUG9pbnRGdW5jdGkKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uU3RyaW5nQXJyYXlGdW5jdGlvbihF
eGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhp
c1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAg
ICBKU1Rlc3RUeXBlZGVmcyogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0VHlwZWRl
ZnMqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCiAgICAgICAg
IHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0
cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdFR5cGVkZWZzIiwgIi4iLCAic3RyaW5nQXJyYXlG
dW5jdGlvbiIsICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0VHlwZWRlZnMiKSk7CkBAIC02Nzcs
NyArNjc3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RUeXBlZGVmc1By
b3RvdHlwZUZ1bmN0aW9uU3RyaW5nQXJyYXlGdW5jdGlvbigKIAogRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uU3RyaW5nQXJyYXlGdW5j
dGlvbjIoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+
aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVl
KCk7CiAgICAgSlNUZXN0VHlwZWRlZnMqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVz
dFR5cGVkZWZzKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQog
ICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBl
RXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RUeXBlZGVmcyIsICIuIiwgInN0cmlu
Z0FycmF5RnVuY3Rpb24yIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RUeXBlZGVmcyIpKTsK
QEAgLTY5Nyw3ICs2OTcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5
cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25TdHJpbmdBcnJheUZ1bmN0aW9uMgogCiBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25DYWxsV2l0
aFNlcXVlbmNlVGhhdFJlcXVpcmVzSW5jbHVkZShFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNW
YWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlz
VmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBKU1Rlc3RUeXBlZGVmcyogY2FzdGVkVGhp
cyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0VHlwZWRlZnMqPih0aGlzVmFsdWUpOwogICAgIGlmIChV
TkxJS0VMWSghY2FzdGVkVGhpcykpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVz
dFR5cGVkZWZzIiwgIi4iLCAiY2FsbFdpdGhTZXF1ZW5jZVRoYXRSZXF1aXJlc0luY2x1ZGUiLCAi
IG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdFR5cGVkZWZzIikpOwpAQCAtNzE0LDcgKzcxNCw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5j
dGlvbkNhbGxXaXRoU2VxdWVuY2VUaGF0CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhFeGNlcHRpb24oRXhlY1N0
YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1
ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNU
ZXN0VHlwZWRlZnMqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFR5cGVkZWZzKj4o
dGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQogICAgICAgICByZXR1
cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmco
IkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RUeXBlZGVmcyIsICIuIiwgIm1ldGhvZFdpdGhFeGNlcHRp
b24iLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdFR5cGVkZWZzIikpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tIGIvU291cmNlL1dlYkNv
cmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tCmluZGV4IGFhYjFlZWQuLjM3Mjg2MjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0KQEAgLTIyMSw3ICsy
MjEsNyBAQCB2b2lkIE9iamNGYWxsYmFja09iamVjdEltcDo6cHV0KEpTQ2VsbCosIEV4ZWNTdGF0
ZSosIFByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UAogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBjYWxsT2JqQ0ZhbGxiYWNrT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykKIHsK
LSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1Zh
bHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIGlmICghdGhpc1ZhbHVlLmlu
aGVyaXRzKE9iakNSdW50aW1lT2JqZWN0OjppbmZvKCkpKQogICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihleGVjKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1
bnRpbWVfbWV0aG9kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5j
cHAKaW5kZXggY2Y5ODg0My4uNTRkMzYxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL3J1bnRpbWVfbWV0aG9kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGlt
ZV9tZXRob2QuY3BwCkBAIC04Miw3ICs4Miw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGNhbGxSdW50aW1lTWV0aG9kKEV4ZWNTdGF0ZSogZXhlYykKIAogICAgIFJlZlB0
cjxJbnN0YW5jZT4gaW5zdGFuY2U7CiAKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhv
c3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgp
OwogICAgIGlmICh0aGlzVmFsdWUuaW5oZXJpdHMoUnVudGltZU9iamVjdDo6aW5mbygpKSkgewog
ICAgICAgICBSdW50aW1lT2JqZWN0KiBydW50aW1lT2JqZWN0ID0gc3RhdGljX2Nhc3Q8UnVudGlt
ZU9iamVjdCo+KGFzT2JqZWN0KHRoaXNWYWx1ZSkpOwogICAgICAgICBpbnN0YW5jZSA9IHJ1bnRp
bWVPYmplY3QtPmdldEludGVybmFsSW5zdGFuY2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAzMzY4MjNmLi5j
ZThlMDRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTQtMDMtMjggIETDoW5pZWwg
QsOhdHlhaSAgPGRiYXR5YWkudS1zemVnZWRAcGFydG5lci5zYW1zdW5nLmNvbT4KKworICAgICAg
ICBSZW1vdmUgaG9zdFRoaXNSZWdpc3RlcigpIGFuZCBob3N0VGhpc1ZhbHVlKCkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMDg5NQorCisgICAgICAg
IFJlbW92ZWQgaG9zdFRoaXNSZWdpc3RlcigpIGFuZCBob3N0VGhpc1ZhbHVlKCkgYW5kIGluc3Rl
YWQgdXNlIHRoaXNBcmd1bWVudE9mZnNldCgpIGFuZCB0aGlzVmFsdWUoKSByZXNwZWN0aXZlbHku
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OmNhbGxNZXRob2QpOgorCiAyMDE0LTAzLTI3ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVA
d2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTY2Mjk2IGFu
ZCByMTY2MzMxLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L05ldHNjYXBlL0pTTlBNZXRob2QuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL05ldHNjYXBlL0pTTlBNZXRob2QuY3BwCmluZGV4IGQ4MTZjZGMuLjU3NmFkM2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0
aG9kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUv
SlNOUE1ldGhvZC5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgY2FsbE1ldGhvZChFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSlNOUE1ldGhv
ZCoganNOUE1ldGhvZCA9IGpzQ2FzdDxKU05QTWV0aG9kKj4oZXhlYy0+Y2FsbGVlKCkpOwogCi0g
ICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1
ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKIAogICAgIC8vIENoZWNrIGlmIHdlJ3Jl
IGNhbGxpbmcgYSBtZXRob2Qgb24gdGhlIHBsdWctaW4gc2NyaXB0IG9iamVjdC4KICAgICBpZiAo
dGhpc1ZhbHVlLmluaGVyaXRzKEpTSFRNTEVsZW1lbnQ6OmluZm8oKSkpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228163</attachid>
            <date>2014-03-31 03:06:34 -0700</date>
            <delta_ts>2014-03-31 03:43:48 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>proposedpatch.patch</filename>
            <type>text/plain</type>
            <size>143574</size>
            <attacher name="Dániel Bátyai">dbatyai.u-szeged</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvQVBJQ2FsbGJhY2tGdW5jdGlv
bi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9BUElDYWxsYmFja0Z1bmN0aW9uLmgKaW5k
ZXggNWUwNGNlNi4uOTRiMTBjNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9BUElDYWxsYmFja0Z1bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9B
UElDYWxsYmFja0Z1bmN0aW9uLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBBUElDYWxsYmFja0Z1bmN0aW9uOjpjYWxsKEV4ZWNTdGF0ZSogZXhlYykKIHsK
ICAgICBKU0NvbnRleHRSZWYgZXhlY1JlZiA9IHRvUmVmKGV4ZWMpOwogICAgIEpTT2JqZWN0UmVm
IGZ1bmN0aW9uUmVmID0gdG9SZWYoZXhlYy0+Y2FsbGVlKCkpOwotICAgIEpTT2JqZWN0UmVmIHRo
aXNPYmpSZWYgPSB0b1JlZihqc0Nhc3Q8SlNPYmplY3QqPihleGVjLT5ob3N0VGhpc1ZhbHVlKCku
dG9UaGlzKGV4ZWMsIE5vdFN0cmljdE1vZGUpKSk7CisgICAgSlNPYmplY3RSZWYgdGhpc09ialJl
ZiA9IHRvUmVmKGpzQ2FzdDxKU09iamVjdCo+KGV4ZWMtPnRoaXNWYWx1ZSgpLnRvVGhpcyhleGVj
LCBOb3RTdHJpY3RNb2RlKSkpOwogCiAgICAgaW50IGFyZ3VtZW50Q291bnQgPSBzdGF0aWNfY2Fz
dDxpbnQ+KGV4ZWMtPmFyZ3VtZW50Q291bnQoKSk7CiAgICAgVmVjdG9yPEpTVmFsdWVSZWYsIDE2
PiBhcmd1bWVudHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2Fs
bGJhY2tPYmplY3RGdW5jdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxs
YmFja09iamVjdEZ1bmN0aW9ucy5oCmluZGV4IGU3ZDdiYTIuLjU4YzRlYjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1bmN0aW9ucy5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1bmN0aW9ucy5o
CkBAIC00NzIsNyArNDcyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDYWxsYmFja09iamVjdDxQYXJl
bnQ+OjpjYWxsKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBKU0NvbnRleHRSZWYgZXhlY1JlZiA9
IHRvUmVmKGV4ZWMpOwogICAgIEpTT2JqZWN0UmVmIGZ1bmN0aW9uUmVmID0gdG9SZWYoZXhlYy0+
Y2FsbGVlKCkpOwotICAgIEpTT2JqZWN0UmVmIHRoaXNPYmpSZWYgPSB0b1JlZihqc0Nhc3Q8SlNP
YmplY3QqPihleGVjLT5ob3N0VGhpc1ZhbHVlKCkudG9UaGlzKGV4ZWMsIE5vdFN0cmljdE1vZGUp
KSk7CisgICAgSlNPYmplY3RSZWYgdGhpc09ialJlZiA9IHRvUmVmKGpzQ2FzdDxKU09iamVjdCo+
KGV4ZWMtPnRoaXNWYWx1ZSgpLnRvVGhpcyhleGVjLCBOb3RTdHJpY3RNb2RlKSkpOwogICAgIAog
ICAgIGZvciAoSlNDbGFzc1JlZiBqc0NsYXNzID0ganNDYXN0PEpTQ2FsbGJhY2tPYmplY3Q8UGFy
ZW50Pio+KHRvSlMoZnVuY3Rpb25SZWYpKS0+Y2xhc3NSZWYoKTsganNDbGFzczsganNDbGFzcyA9
IGpzQ2xhc3MtPnBhcmVudENsYXNzKSB7CiAgICAgICAgIGlmIChKU09iamVjdENhbGxBc0Z1bmN0
aW9uQ2FsbGJhY2sgY2FsbEFzRnVuY3Rpb24gPSBqc0NsYXNzLT5jYWxsQXNGdW5jdGlvbikgewpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggYzM1ODFlYy4uNjk1MDgzNCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTc2IEBACisyMDE0LTAzLTMxICBEw6FuaWVsIELDoXR5
YWkgIDxkYmF0eWFpLnUtc3plZ2VkQHBhcnRuZXIuc2Ftc3VuZy5jb20+CisKKyAgICAgICAgUmVt
b3ZlIGhvc3RUaGlzUmVnaXN0ZXIoKSBhbmQgaG9zdFRoaXNWYWx1ZSgpCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzA4OTUKKworICAgICAgICBSZXZp
ZXdlZCBieSBHZW9mZnJleSBHYXJlbi4KKworICAgICAgICBSZW1vdmVkIGhvc3RUaGlzUmVnaXN0
ZXIoKSBhbmQgaG9zdFRoaXNWYWx1ZSgpIGFuZCBpbnN0ZWFkIHVzZSB0aGlzQXJndW1lbnRPZmZz
ZXQoKSBhbmQgdGhpc1ZhbHVlKCkgcmVzcGVjdGl2ZWx5LgorCisgICAgICAgICogQVBJL0FQSUNh
bGxiYWNrRnVuY3Rpb24uaDoKKyAgICAgICAgKEpTQzo6QVBJQ2FsbGJhY2tGdW5jdGlvbjo6Y2Fs
bCk6CisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaDoKKyAgICAgICAg
KEpTQzo6SlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpjYWxsKToKKyAgICAgICAgKiBkZmcvREZH
T1NSRW50cnkuY3BwOgorICAgICAgICAoSlNDOjpERkc6OnByZXBhcmVPU1JFbnRyeSk6CisgICAg
ICAgICogaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlLmNwcDoKKyAgICAg
ICAgKEluc3BlY3Rvcjo6anNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVBdHRyaWJ1dGVFdmFs
dWF0ZSk6CisgICAgICAgIChJbnNwZWN0b3I6OmpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBl
RnVuY3Rpb25JbnRlcm5hbENvbnN0cnVjdG9yTmFtZSk6CisgICAgICAgIChJbnNwZWN0b3I6Ompz
SW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25Jc0hUTUxBbGxDb2xsZWN0aW9uKToK
KyAgICAgICAgKEluc3BlY3Rvcjo6anNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlv
blR5cGUpOgorICAgICAgICAoSW5zcGVjdG9yOjpqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlw
ZUZ1bmN0aW9uRnVuY3Rpb25EZXRhaWxzKToKKyAgICAgICAgKEluc3BlY3Rvcjo6anNJbmplY3Rl
ZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbkdldEludGVybmFsUHJvcGVydGllcyk6CisgICAg
ICAgICogaW5zcGVjdG9yL0pTSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZS5jcHA6CisgICAg
ICAgIChJbnNwZWN0b3I6OmpzSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZUZ1bmN0aW9uRXZh
bHVhdGUpOgorICAgICAgICAoSW5zcGVjdG9yOjpqc0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5
cGVGdW5jdGlvblNjb3BlVHlwZSk6CisgICAgICAgIChJbnNwZWN0b3I6OmpzSmF2YVNjcmlwdENh
bGxGcmFtZUF0dHJpYnV0ZUNhbGxlcik6CisgICAgICAgIChJbnNwZWN0b3I6OmpzSmF2YVNjcmlw
dENhbGxGcmFtZUF0dHJpYnV0ZVNvdXJjZUlEKToKKyAgICAgICAgKEluc3BlY3Rvcjo6anNKYXZh
U2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlTGluZSk6CisgICAgICAgIChJbnNwZWN0b3I6OmpzSmF2
YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZUNvbHVtbik6CisgICAgICAgIChJbnNwZWN0b3I6Ompz
SmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZUZ1bmN0aW9uTmFtZSk6CisgICAgICAgIChJbnNw
ZWN0b3I6OmpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZVNjb3BlQ2hhaW4pOgorICAgICAg
ICAoSW5zcGVjdG9yOjpqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVUaGlzT2JqZWN0KToK
KyAgICAgICAgKEluc3BlY3Rvcjo6anNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlVHlwZSk6
CisgICAgICAgICogaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmg6CisgICAgICAgIChKU0M6OkV4ZWNT
dGF0ZTo6aG9zdFRoaXNSZWdpc3Rlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkV4ZWNTdGF0
ZTo6aG9zdFRoaXNWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9Bcmd1bWVudHMu
Y3BwOgorICAgICAgICAoSlNDOjphcmd1bWVudHNGdW5jSXRlcmF0b3IpOgorICAgICAgICAqIHJ1
bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjphcnJheVByb3RvRnVuY1Rv
U3RyaW5nKToKKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNUb0xvY2FsZVN0cmluZyk6Cisg
ICAgICAgIChKU0M6OmFycmF5UHJvdG9GdW5jSm9pbik6CisgICAgICAgIChKU0M6OmFycmF5UHJv
dG9GdW5jQ29uY2F0KToKKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNQb3ApOgorICAgICAg
ICAoSlNDOjphcnJheVByb3RvRnVuY1B1c2gpOgorICAgICAgICAoSlNDOjphcnJheVByb3RvRnVu
Y1JldmVyc2UpOgorICAgICAgICAoSlNDOjphcnJheVByb3RvRnVuY1NoaWZ0KToKKyAgICAgICAg
KEpTQzo6YXJyYXlQcm90b0Z1bmNTbGljZSk6CisgICAgICAgIChKU0M6OmFycmF5UHJvdG9GdW5j
U29ydCk6CisgICAgICAgIChKU0M6OmFycmF5UHJvdG9GdW5jU3BsaWNlKToKKyAgICAgICAgKEpT
Qzo6YXJyYXlQcm90b0Z1bmNVblNoaWZ0KToKKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNS
ZWR1Y2UpOgorICAgICAgICAoSlNDOjphcnJheVByb3RvRnVuY1JlZHVjZVJpZ2h0KToKKyAgICAg
ICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNJbmRleE9mKToKKyAgICAgICAgKEpTQzo6YXJyYXlQcm90
b0Z1bmNMYXN0SW5kZXhPZik6CisgICAgICAgIChKU0M6OmFycmF5UHJvdG9GdW5jVmFsdWVzKToK
KyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNFbnRyaWVzKToKKyAgICAgICAgKEpTQzo6YXJy
YXlQcm90b0Z1bmNLZXlzKToKKyAgICAgICAgKiBydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuY3Bw
OgorICAgICAgICAoSlNDOjpib29sZWFuUHJvdG9GdW5jVG9TdHJpbmcpOgorICAgICAgICAoSlND
Ojpib29sZWFuUHJvdG9GdW5jVmFsdWVPZik6CisgICAgICAgICogcnVudGltZS9Db25zb2xlUHJv
dG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6Y29uc29sZUxvZ1dpdGhMZXZlbCk6CisgICAgICAg
IChKU0M6OmNvbnNvbGVQcm90b0Z1bmNDbGVhcik6CisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90
b0Z1bmNEaXIpOgorICAgICAgICAoSlNDOjpjb25zb2xlUHJvdG9GdW5jRGlyWE1MKToKKyAgICAg
ICAgKEpTQzo6Y29uc29sZVByb3RvRnVuY1RhYmxlKToKKyAgICAgICAgKEpTQzo6Y29uc29sZVBy
b3RvRnVuY1RyYWNlKToKKyAgICAgICAgKEpTQzo6Y29uc29sZVByb3RvRnVuY0Fzc2VydCk6Cisg
ICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1bmNDb3VudCk6CisgICAgICAgIChKU0M6OmNvbnNv
bGVQcm90b0Z1bmNQcm9maWxlKToKKyAgICAgICAgKEpTQzo6Y29uc29sZVByb3RvRnVuY1Byb2Zp
bGVFbmQpOgorICAgICAgICAoSlNDOjpjb25zb2xlUHJvdG9GdW5jVGltZSk6CisgICAgICAgIChK
U0M6OmNvbnNvbGVQcm90b0Z1bmNUaW1lRW5kKToKKyAgICAgICAgKEpTQzo6Y29uc29sZVByb3Rv
RnVuY1RpbWVTdGFtcCk6CisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1bmNHcm91cCk6Cisg
ICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1bmNHcm91cENvbGxhcHNlZCk6CisgICAgICAgIChK
U0M6OmNvbnNvbGVQcm90b0Z1bmNHcm91cEVuZCk6CisgICAgICAgICogcnVudGltZS9EYXRlUHJv
dG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6Zm9ybWF0ZURhdGVJbnN0YW5jZSk6CisgICAgICAg
IChKU0M6OmRhdGVQcm90b0Z1bmNUb0lTT1N0cmluZyk6CisgICAgICAgIChKU0M6OmRhdGVQcm90
b0Z1bmNUb0xvY2FsZVN0cmluZyk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNUb0xvY2Fs
ZURhdGVTdHJpbmcpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jVG9Mb2NhbGVUaW1lU3Ry
aW5nKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldFRpbWUpOgorICAgICAgICAoSlND
OjpkYXRlUHJvdG9GdW5jR2V0RnVsbFllYXIpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5j
R2V0VVRDRnVsbFllYXIpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0TW9udGgpOgor
ICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0VVRDTW9udGgpOgorICAgICAgICAoSlNDOjpk
YXRlUHJvdG9GdW5jR2V0RGF0ZSk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRVVENE
YXRlKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldERheSk6CisgICAgICAgIChKU0M6
OmRhdGVQcm90b0Z1bmNHZXRVVENEYXkpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0
SG91cnMpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0VVRDSG91cnMpOgorICAgICAg
ICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0TWludXRlcyk6CisgICAgICAgIChKU0M6OmRhdGVQcm90
b0Z1bmNHZXRVVENNaW51dGVzKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldFNlY29u
ZHMpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0VVRDU2Vjb25kcyk6CisgICAgICAg
IChKU0M6OmRhdGVQcm90b0Z1bmNHZXRNaWxsaVNlY29uZHMpOgorICAgICAgICAoSlNDOjpkYXRl
UHJvdG9GdW5jR2V0VVRDTWlsbGlzZWNvbmRzKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVu
Y0dldFRpbWV6b25lT2Zmc2V0KToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY1NldFRpbWUp
OgorICAgICAgICAoSlNDOjpzZXROZXdWYWx1ZUZyb21UaW1lQXJncyk6CisgICAgICAgIChKU0M6
OnNldE5ld1ZhbHVlRnJvbURhdGVBcmdzKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY1Nl
dFllYXIpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0WWVhcik6CisgICAgICAgIChK
U0M6OmRhdGVQcm90b0Z1bmNUb0pTT04pOgorICAgICAgICAqIHJ1bnRpbWUvRXJyb3JQcm90b3R5
cGUuY3BwOgorICAgICAgICAoSlNDOjplcnJvclByb3RvRnVuY1RvU3RyaW5nKToKKyAgICAgICAg
KiBydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25Q
cm90b0Z1bmNUb1N0cmluZyk6CisgICAgICAgIChKU0M6OmZ1bmN0aW9uUHJvdG9GdW5jQmluZCk6
CisgICAgICAgICogcnVudGltZS9OYW1lUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6cHJp
dmF0ZU5hbWVQcm90b0Z1bmNUb1N0cmluZyk6CisgICAgICAgICogcnVudGltZS9OdW1iZXJQcm90
b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpudW1iZXJQcm90b0Z1bmNUb0V4cG9uZW50aWFsKToK
KyAgICAgICAgKEpTQzo6bnVtYmVyUHJvdG9GdW5jVG9GaXhlZCk6CisgICAgICAgIChKU0M6Om51
bWJlclByb3RvRnVuY1RvUHJlY2lzaW9uKToKKyAgICAgICAgKEpTQzo6bnVtYmVyUHJvdG9GdW5j
Q2x6KToKKyAgICAgICAgKEpTQzo6bnVtYmVyUHJvdG9GdW5jVG9TdHJpbmcpOgorICAgICAgICAo
SlNDOjpudW1iZXJQcm90b0Z1bmNUb0xvY2FsZVN0cmluZyk6CisgICAgICAgIChKU0M6Om51bWJl
clByb3RvRnVuY1ZhbHVlT2YpOgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNw
cDoKKyAgICAgICAgKEpTQzo6b2JqZWN0UHJvdG9GdW5jVmFsdWVPZik6CisgICAgICAgIChKU0M6
Om9iamVjdFByb3RvRnVuY0hhc093blByb3BlcnR5KToKKyAgICAgICAgKEpTQzo6b2JqZWN0UHJv
dG9GdW5jSXNQcm90b3R5cGVPZik6CisgICAgICAgIChKU0M6Om9iamVjdFByb3RvRnVuY0RlZmlu
ZUdldHRlcik6CisgICAgICAgIChKU0M6Om9iamVjdFByb3RvRnVuY0RlZmluZVNldHRlcik6Cisg
ICAgICAgIChKU0M6Om9iamVjdFByb3RvRnVuY0xvb2t1cEdldHRlcik6CisgICAgICAgIChKU0M6
Om9iamVjdFByb3RvRnVuY0xvb2t1cFNldHRlcik6CisgICAgICAgIChKU0M6Om9iamVjdFByb3Rv
RnVuY1Byb3BlcnR5SXNFbnVtZXJhYmxlKToKKyAgICAgICAgKEpTQzo6b2JqZWN0UHJvdG9GdW5j
VG9Mb2NhbGVTdHJpbmcpOgorICAgICAgICAoSlNDOjpvYmplY3RQcm90b0Z1bmNUb1N0cmluZyk6
CisgICAgICAgICogcnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpy
ZWdFeHBQcm90b0Z1bmNUZXN0KToKKyAgICAgICAgKEpTQzo6cmVnRXhwUHJvdG9GdW5jRXhlYyk6
CisgICAgICAgIChKU0M6OnJlZ0V4cFByb3RvRnVuY0NvbXBpbGUpOgorICAgICAgICAoSlNDOjpy
ZWdFeHBQcm90b0Z1bmNUb1N0cmluZyk6CisgICAgICAgICogcnVudGltZS9TdHJpbmdQcm90b3R5
cGUuY3BwOgorICAgICAgICAoSlNDOjpzdHJpbmdQcm90b0Z1bmNSZXBsYWNlKToKKyAgICAgICAg
KEpTQzo6c3RyaW5nUHJvdG9GdW5jVG9TdHJpbmcpOgorICAgICAgICAoSlNDOjpzdHJpbmdQcm90
b0Z1bmNDaGFyQXQpOgorICAgICAgICAoSlNDOjpzdHJpbmdQcm90b0Z1bmNDaGFyQ29kZUF0KToK
KyAgICAgICAgKEpTQzo6c3RyaW5nUHJvdG9GdW5jQ29uY2F0KToKKyAgICAgICAgKEpTQzo6c3Ry
aW5nUHJvdG9GdW5jSW5kZXhPZik6CisgICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY0xhc3RJ
bmRleE9mKToKKyAgICAgICAgKEpTQzo6c3RyaW5nUHJvdG9GdW5jTWF0Y2gpOgorICAgICAgICAo
SlNDOjpzdHJpbmdQcm90b0Z1bmNTZWFyY2gpOgorICAgICAgICAoSlNDOjpzdHJpbmdQcm90b0Z1
bmNTbGljZSk6CisgICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY1NwbGl0KToKKyAgICAgICAg
KEpTQzo6c3RyaW5nUHJvdG9GdW5jU3Vic3RyKToKKyAgICAgICAgKEpTQzo6c3RyaW5nUHJvdG9G
dW5jU3Vic3RyaW5nKToKKyAgICAgICAgKEpTQzo6c3RyaW5nUHJvdG9GdW5jVG9Mb3dlckNhc2Up
OgorICAgICAgICAoSlNDOjpzdHJpbmdQcm90b0Z1bmNUb1VwcGVyQ2FzZSk6CisgICAgICAgIChK
U0M6OnN0cmluZ1Byb3RvRnVuY0xvY2FsZUNvbXBhcmUpOgorICAgICAgICAoSlNDOjpzdHJpbmdQ
cm90b0Z1bmNCaWcpOgorICAgICAgICAoSlNDOjpzdHJpbmdQcm90b0Z1bmNTbWFsbCk6CisgICAg
ICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY0JsaW5rKToKKyAgICAgICAgKEpTQzo6c3RyaW5nUHJv
dG9GdW5jQm9sZCk6CisgICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY0ZpeGVkKToKKyAgICAg
ICAgKEpTQzo6c3RyaW5nUHJvdG9GdW5jSXRhbGljcyk6CisgICAgICAgIChKU0M6OnN0cmluZ1By
b3RvRnVuY1N0cmlrZSk6CisgICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY1N1Yik6CisgICAg
ICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY1N1cCk6CisgICAgICAgIChKU0M6OnN0cmluZ1Byb3Rv
RnVuY0ZvbnRjb2xvcik6CisgICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY0ZvbnRzaXplKToK
KyAgICAgICAgKEpTQzo6c3RyaW5nUHJvdG9GdW5jQW5jaG9yKToKKyAgICAgICAgKEpTQzo6c3Ry
aW5nUHJvdG9GdW5jTGluayk6CisgICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY1RyaW0pOgor
ICAgICAgICAoSlNDOjpzdHJpbmdQcm90b0Z1bmNUcmltTGVmdCk6CisgICAgICAgIChKU0M6OnN0
cmluZ1Byb3RvRnVuY1RyaW1SaWdodCk6CisKIDIwMTQtMDMtMjggIEZpbGlwIFBpemxvICA8ZnBp
emxvQGFwcGxlLmNvbT4KIAogICAgICAgICBMYW5kIHRoZSBzdGFja21hcCByZWdpc3RlciBsaXZl
bmVzcyBnbHVlIHdpdGggdGhlIHVzZXMgb2YgdGhlIGxpdmVuZXNzIGRpc2FibGVkCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkVudHJ5LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRW50cnkuY3BwCmluZGV4IDBkYTc5MWYuLjc0ZTgxZDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRW50cnkuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRW50cnkuY3BwCkBAIC0xMzAsNyAr
MTMwLDcgQEAgdm9pZCogcHJlcGFyZU9TUkVudHJ5KEV4ZWNTdGF0ZSogZXhlYywgQ29kZUJsb2Nr
KiBjb2RlQmxvY2ssIHVuc2lnbmVkIGJ5dGVjb2RlSW4KICAgICAgICAgCiAgICAgICAgIEpTVmFs
dWUgdmFsdWU7CiAgICAgICAgIGlmICghYXJndW1lbnQpCi0gICAgICAgICAgICB2YWx1ZSA9IGV4
ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICAgICAgICAgIHZhbHVlID0gZXhlYy0+dGhpc1ZhbHVl
KCk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHZhbHVlID0gZXhlYy0+YXJndW1lbnQoYXJn
dW1lbnQgLSAxKTsKICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGUuY3BwCmlu
ZGV4IDg3MTNjYzEuLmIwNzk3MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGUuY3Bw
CkBAIC03MSw3ICs3MSw3IEBAIHZvaWQgSlNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGU6OmZp
bmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhCiAKIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVBdHRyaWJ1dGVF
dmFsdWF0ZShFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVj
LT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFs
dWUoKTsKICAgICBKU0luamVjdGVkU2NyaXB0SG9zdCogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nh
c3Q8SlNJbmplY3RlZFNjcmlwdEhvc3QqPih0aGlzVmFsdWUpOwogICAgIGlmICghY2FzdGVkVGhp
cykKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CkBAIC04Miw3ICs4Miw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90
b3R5cGVBdHRyaWJ1dGVFdmFsdWF0ZShFeGVjCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbkludGVybmFsQ29uc3RydWN0
b3JOYW1lKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMt
Pmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1
ZSgpOwogICAgIEpTSW5qZWN0ZWRTY3JpcHRIb3N0KiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2Fz
dDxKU0luamVjdGVkU2NyaXB0SG9zdCo+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKCFjYXN0ZWRUaGlz
KQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKQEAgLTkzLDcgKzkzLDcg
QEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3Rv
dHlwZUZ1bmN0aW9uSW50ZXJuYWxDb25zdHIKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uSXNIVE1MQWxsQ29sbGVjdGlv
bihFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0
VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsK
ICAgICBKU0luamVjdGVkU2NyaXB0SG9zdCogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNJ
bmplY3RlZFNjcmlwdEhvc3QqPih0aGlzVmFsdWUpOwogICAgIGlmICghY2FzdGVkVGhpcykKICAg
ICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CkBAIC0xMDQsNyArMTA0LDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlw
ZUZ1bmN0aW9uSXNIVE1MQWxsQ29sbGUKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uVHlwZShFeGVjU3RhdGUqIGV4ZWMp
CiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAg
SlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBKU0luamVjdGVkU2Ny
aXB0SG9zdCogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNJbmplY3RlZFNjcmlwdEhvc3Qq
Pih0aGlzVmFsdWUpOwogICAgIGlmICghY2FzdGVkVGhpcykKICAgICAgICAgcmV0dXJuIHRocm93
Vk1UeXBlRXJyb3IoZXhlYyk7CkBAIC0xMTUsNyArMTE1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uVHlwZShFeGVj
U3RhdGUKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9z
dFByb3RvdHlwZUZ1bmN0aW9uRnVuY3Rpb25EZXRhaWxzKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAg
ICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVl
IHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTSW5qZWN0ZWRTY3JpcHRIb3N0
KiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU0luamVjdGVkU2NyaXB0SG9zdCo+KHRoaXNW
YWx1ZSk7CiAgICAgaWYgKCFjYXN0ZWRUaGlzKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVF
cnJvcihleGVjKTsKQEAgLTEyNiw3ICsxMjYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25GdW5jdGlvbkRldGFpbAog
CiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90
eXBlRnVuY3Rpb25HZXRJbnRlcm5hbFByb3BlcnRpZXMoRXhlY1N0YXRlKiBleGVjKQogewotICAg
IEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUg
dGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNJbmplY3RlZFNjcmlwdEhvc3Qq
IGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTSW5qZWN0ZWRTY3JpcHRIb3N0Kj4odGhpc1Zh
bHVlKTsKICAgICBpZiAoIWNhc3RlZFRoaXMpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVy
cm9yKGV4ZWMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9K
U0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9KU0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5cGUuY3BwCmluZGV4IDk2OGZm
ODcuLmY3ZmMyMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
SlNKYXZhU2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL0pTSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZS5jcHAKQEAgLTk4
LDcgKzk4LDcgQEAgdm9pZCBKU0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5cGU6OmZpbmlzaENy
ZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2IKIAogRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5cGVGdW5jdGlvbkV2YWx1YXRl
KEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RU
aGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwog
ICAgIEpTSmF2YVNjcmlwdENhbGxGcmFtZSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNK
YXZhU2NyaXB0Q2FsbEZyYW1lKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoIWNhc3RlZFRoaXMpCiAg
ICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwpAQCAtMTA5LDcgKzEwOSw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNKYXZhU2NyaXB0Q2FsbEZyYW1lUHJvdG90
eXBlRnVuY3Rpb25FdmFsdWF0ZShFeGVjCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNKYXZhU2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBlRnVuY3Rpb25TY29wZVR5cGUoRXhlY1N0YXRl
KiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgp
OworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNKYXZh
U2NyaXB0Q2FsbEZyYW1lKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU0phdmFTY3JpcHRD
YWxsRnJhbWUqPih0aGlzVmFsdWUpOwogICAgIGlmICghY2FzdGVkVGhpcykKICAgICAgICAgcmV0
dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CkBAIC0xMjAsNyArMTIwLDcgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5cGVGdW5jdGlv
blNjb3BlVHlwZShFeGUKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0phdmFTY3Jp
cHRDYWxsRnJhbWVBdHRyaWJ1dGVDYWxsZXIoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFs
dWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1Zh
bHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNKYXZhU2NyaXB0Q2FsbEZyYW1lKiBjYXN0
ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU0phdmFTY3JpcHRDYWxsRnJhbWUqPih0aGlzVmFsdWUp
OwogICAgIGlmICghY2FzdGVkVGhpcykKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Io
ZXhlYyk7CkBAIC0xMzEsNyArMTMxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVDYWxsZXIoRXhlY1N0YXRlKiBleGUKIAogRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVT
b3VyY2VJRChFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVj
LT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFs
dWUoKTsKICAgICBKU0phdmFTY3JpcHRDYWxsRnJhbWUqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWND
YXN0PEpTSmF2YVNjcmlwdENhbGxGcmFtZSo+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKCFjYXN0ZWRU
aGlzKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKQEAgLTE0Miw3ICsx
NDIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSmF2YVNjcmlwdENhbGxGcmFt
ZUF0dHJpYnV0ZVNvdXJjZUlEKEV4ZWNTdGF0ZSogZQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZUxpbmUoRXhlY1N0YXRlKiBleGVj
KQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAg
IEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNKYXZhU2NyaXB0
Q2FsbEZyYW1lKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU0phdmFTY3JpcHRDYWxsRnJh
bWUqPih0aGlzVmFsdWUpOwogICAgIGlmICghY2FzdGVkVGhpcykKICAgICAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3IoZXhlYyk7CkBAIC0xNTMsNyArMTUzLDcgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVMaW5lKEV4ZWNTdGF0
ZSogZXhlYykKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0phdmFTY3JpcHRDYWxs
RnJhbWVBdHRyaWJ1dGVDb2x1bW4oRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhp
c1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0g
ZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNKYXZhU2NyaXB0Q2FsbEZyYW1lKiBjYXN0ZWRUaGlz
ID0ganNEeW5hbWljQ2FzdDxKU0phdmFTY3JpcHRDYWxsRnJhbWUqPih0aGlzVmFsdWUpOwogICAg
IGlmICghY2FzdGVkVGhpcykKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7
CkBAIC0xNjQsNyArMTY0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0phdmFT
Y3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVDb2x1bW4oRXhlY1N0YXRlKiBleGUKIAogRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVGdW5jdGlv
bk5hbWUoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+
aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVl
KCk7CiAgICAgSlNKYXZhU2NyaXB0Q2FsbEZyYW1lKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2Fz
dDxKU0phdmFTY3JpcHRDYWxsRnJhbWUqPih0aGlzVmFsdWUpOwogICAgIGlmICghY2FzdGVkVGhp
cykKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CkBAIC0xNzUsNyArMTc1
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0phdmFTY3JpcHRDYWxsRnJhbWVB
dHRyaWJ1dGVGdW5jdGlvbk5hbWUoRXhlY1N0YXQKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVTY29wZUNoYWluKEV4ZWNTdGF0ZSog
ZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsK
KyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTSmF2YVNj
cmlwdENhbGxGcmFtZSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNKYXZhU2NyaXB0Q2Fs
bEZyYW1lKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoIWNhc3RlZFRoaXMpCiAgICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwpAQCAtMTg2LDcgKzE4Niw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlU2NvcGVDaGFp
bihFeGVjU3RhdGUqCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNKYXZhU2NyaXB0
Q2FsbEZyYW1lQXR0cmlidXRlVGhpc09iamVjdChFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNW
YWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlz
VmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBKU0phdmFTY3JpcHRDYWxsRnJhbWUqIGNh
c3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTSmF2YVNjcmlwdENhbGxGcmFtZSo+KHRoaXNWYWx1
ZSk7CiAgICAgaWYgKCFjYXN0ZWRUaGlzKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJv
cihleGVjKTsKQEAgLTE5Nyw3ICsxOTcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZVRoaXNPYmplY3QoRXhlY1N0YXRlKgogCiBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0
ZVR5cGUoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+
aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVl
KCk7CiAgICAgSlNKYXZhU2NyaXB0Q2FsbEZyYW1lKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2Fz
dDxKU0phdmFTY3JpcHRDYWxsRnJhbWUqPih0aGlzVmFsdWUpOwogICAgIGlmICghY2FzdGVkVGhp
cykKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmgKaW5kZXggOWM5NWFiYi4uNmE3NmQw
YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFt
ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuaApA
QCAtMjY0LDEwICsyNjQsNiBAQCBuYW1lc3BhY2UgSlNDICB7CiAKICAgICAgICAgc3RhdGljIGlu
dCBvZmZzZXRGb3Ioc2l6ZV90IGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKSB7IHJldHVybiBh
cmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyArIEpTU3RhY2s6OlRoaXNBcmd1bWVudCAtIDE7IH0K
IAotICAgICAgICAvLyBGSVhNRTogUmVtb3ZlIHRoZXNlLgotICAgICAgICBpbnQgaG9zdFRoaXNS
ZWdpc3RlcigpIHsgcmV0dXJuIHRoaXNBcmd1bWVudE9mZnNldCgpOyB9Ci0gICAgICAgIEpTVmFs
dWUgaG9zdFRoaXNWYWx1ZSgpIHsgcmV0dXJuIHRoaXNWYWx1ZSgpOyB9Ci0KICAgICAgICAgc3Rh
dGljIENhbGxGcmFtZSogbm9DYWxsZXIoKSB7IHJldHVybiAwOyB9CiAKICAgICAgICAgYm9vbCBp
c1ZNRW50cnlTZW50aW5lbCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Bcmd1bWVudHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
QXJndW1lbnRzLmNwcAppbmRleCBhZjdlNjZhLi5kYTMwNWVkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5jcHAKQEAgLTM3Nyw3ICszNzcsNyBAQCB2b2lkIEFy
Z3VtZW50czo6dGVhck9mZihDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSW5saW5lQ2FsbEZyYW1lKiBp
bmxpbmVDYWxsRnJhbWUpCiAgICAgCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFyZ3Vt
ZW50c0Z1bmNJdGVyYXRvcihFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNPYmplY3QqIHRoaXNP
YmogPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCkudG9UaGlzKGV4ZWMsIFN0cmljdE1vZGUpLnRvT2Jq
ZWN0KGV4ZWMpOworICAgIEpTT2JqZWN0KiB0aGlzT2JqID0gZXhlYy0+dGhpc1ZhbHVlKCkudG9U
aGlzKGV4ZWMsIFN0cmljdE1vZGUpLnRvT2JqZWN0KGV4ZWMpOwogICAgIEFyZ3VtZW50cyogYXJn
dW1lbnRzID0ganNEeW5hbWljQ2FzdDxBcmd1bWVudHMqPih0aGlzT2JqKTsKICAgICBpZiAoIWFy
Z3VtZW50cykKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd1R5cGVFcnJvcihl
eGVjLCAiQXR0ZW1wdGVkIHRvIHVzZSBBcmd1bWVudHMgaXRlcmF0b3Igb24gbm9uLUFyZ3VtZW50
cyBvYmplY3QiKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9B
cnJheVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVBy
b3RvdHlwZS5jcHAKaW5kZXggNWVlN2JlZC4uZDYyYzAzMiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcApAQCAtMjY4LDcgKzI2OCw3IEBA
IHZvaWQgdW5zaGlmdChFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiB0aGlzT2JqLCB1bnNpZ25l
ZCBoZWFkZXIsIHVuc2lnbmVkIGN1cnJlCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
YXJyYXlQcm90b0Z1bmNUb1N0cmluZyhFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0
aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCkudG9UaGlzKGV4ZWMsIFN0cmljdE1vZGUp
OworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCkudG9UaGlzKGV4ZWMs
IFN0cmljdE1vZGUpOwogCiAgICAgLy8gMS4gTGV0IGFycmF5IGJlIHRoZSByZXN1bHQgb2YgY2Fs
bGluZyBUb09iamVjdCBvbiB0aGUgdGhpcyB2YWx1ZS4KICAgICBKU09iamVjdCogdGhpc09iamVj
dCA9IHRoaXNWYWx1ZS50b09iamVjdChleGVjKTsKQEAgLTMyNiw3ICszMjYsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jVG9TdHJpbmcoRXhlY1N0YXRlKiBl
eGVjKQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jVG9Mb2Nh
bGVTdHJpbmcoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhl
Yy0+aG9zdFRoaXNWYWx1ZSgpLnRvVGhpcyhleGVjLCBTdHJpY3RNb2RlKTsKKyAgICBKU1ZhbHVl
IHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpLnRvVGhpcyhleGVjLCBTdHJpY3RNb2RlKTsK
IAogICAgIEpTT2JqZWN0KiB0aGlzT2JqID0gdGhpc1ZhbHVlLnRvT2JqZWN0KGV4ZWMpOwogICAg
IGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKQEAgLTM2OSw3ICszNjksNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcoRXhlY1N0YXRl
KiBleGVjKQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jSm9p
bihFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNPYmplY3QqIHRoaXNPYmogPSBleGVjLT5ob3N0
VGhpc1ZhbHVlKCkudG9UaGlzKGV4ZWMsIFN0cmljdE1vZGUpLnRvT2JqZWN0KGV4ZWMpOworICAg
IEpTT2JqZWN0KiB0aGlzT2JqID0gZXhlYy0+dGhpc1ZhbHVlKCkudG9UaGlzKGV4ZWMsIFN0cmlj
dE1vZGUpLnRvT2JqZWN0KGV4ZWMpOwogICAgIHVuc2lnbmVkIGxlbmd0aCA9IHRoaXNPYmotPmdl
dChleGVjLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoKS50b1VJbnQzMihleGVjKTsKICAg
ICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CkBAIC00MTUsNyArNDE1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY0pvaW4oRXhlY1N0YXRlKiBleGVjKQogCiBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jQ29uY2F0KEV4ZWNTdGF0ZSogZXhl
YykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKS50b1Ro
aXMoZXhlYywgU3RyaWN0TW9kZSk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlz
VmFsdWUoKS50b1RoaXMoZXhlYywgU3RyaWN0TW9kZSk7CiAgICAgSlNBcnJheSogYXJyID0gY29u
c3RydWN0RW1wdHlBcnJheShleGVjLCBudWxscHRyKTsKICAgICB1bnNpZ25lZCBuID0gMDsKICAg
ICBKU1ZhbHVlIGN1ckFyZyA9IHRoaXNWYWx1ZS50b09iamVjdChleGVjKTsKQEAgLTQ1MCw3ICs0
NTAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jQ29uY2F0
KEV4ZWNTdGF0ZSogZXhlYykKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVBy
b3RvRnVuY1BvcChFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBl
eGVjLT5ob3N0VGhpc1ZhbHVlKCkudG9UaGlzKGV4ZWMsIFN0cmljdE1vZGUpOworICAgIEpTVmFs
dWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCkudG9UaGlzKGV4ZWMsIFN0cmljdE1vZGUp
OwogCiAgICAgaWYgKGlzSlNBcnJheSh0aGlzVmFsdWUpKQogICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGFzQXJyYXkodGhpc1ZhbHVlKS0+cG9wKGV4ZWMpKTsKQEAgLTQ3OSw3ICs0Nzks
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jUG9wKEV4ZWNT
dGF0ZSogZXhlYykKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVu
Y1B1c2goRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+
aG9zdFRoaXNWYWx1ZSgpLnRvVGhpcyhleGVjLCBTdHJpY3RNb2RlKTsKKyAgICBKU1ZhbHVlIHRo
aXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpLnRvVGhpcyhleGVjLCBTdHJpY3RNb2RlKTsKIAog
ICAgIGlmIChpc0pTQXJyYXkodGhpc1ZhbHVlKSAmJiBleGVjLT5hcmd1bWVudENvdW50KCkgPT0g
MSkgewogICAgICAgICBKU0FycmF5KiBhcnJheSA9IGFzQXJyYXkodGhpc1ZhbHVlKTsKQEAgLTUx
Miw3ICs1MTIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5j
UHVzaChFeGVjU3RhdGUqIGV4ZWMpCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJy
YXlQcm90b0Z1bmNSZXZlcnNlKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU09iamVjdCogdGhp
c09iaiA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKS50b1RoaXMoZXhlYywgU3RyaWN0TW9kZSkudG9P
YmplY3QoZXhlYyk7CisgICAgSlNPYmplY3QqIHRoaXNPYmogPSBleGVjLT50aGlzVmFsdWUoKS50
b1RoaXMoZXhlYywgU3RyaWN0TW9kZSkudG9PYmplY3QoZXhlYyk7CiAgICAgdW5zaWduZWQgbGVu
Z3RoID0gdGhpc09iai0+Z2V0KGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgpLnRv
VUludDMyKGV4ZWMpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKQEAgLTU1MCw3ICs1NTAsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jUmV2ZXJzZShFeGVjU3Rh
dGUqIGV4ZWMpCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNT
aGlmdChFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNPYmplY3QqIHRoaXNPYmogPSBleGVjLT5o
b3N0VGhpc1ZhbHVlKCkudG9UaGlzKGV4ZWMsIFN0cmljdE1vZGUpLnRvT2JqZWN0KGV4ZWMpOwor
ICAgIEpTT2JqZWN0KiB0aGlzT2JqID0gZXhlYy0+dGhpc1ZhbHVlKCkudG9UaGlzKGV4ZWMsIFN0
cmljdE1vZGUpLnRvT2JqZWN0KGV4ZWMpOwogICAgIHVuc2lnbmVkIGxlbmd0aCA9IHRoaXNPYmot
PmdldChleGVjLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoKS50b1VJbnQzMihleGVjKTsK
ICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7CkBAIC01NzIsNyArNTcyLDcgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY1NoaWZ0KEV4ZWNTdGF0ZSogZXhlYykKIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNTbGljZShFeGVjU3RhdGUqIGV4
ZWMpCiB7CiAgICAgLy8gaHR0cDovL2RldmVsb3Blci5uZXRzY2FwZS5jb20vZG9jcy9tYW51YWxz
L2pzL2NsaWVudC9qc3JlZi9hcnJheS5odG0jMTE5MzcxMyBvciAxNS40LjQuMTAKLSAgICBKU09i
amVjdCogdGhpc09iaiA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKS50b1RoaXMoZXhlYywgU3RyaWN0
TW9kZSkudG9PYmplY3QoZXhlYyk7CisgICAgSlNPYmplY3QqIHRoaXNPYmogPSBleGVjLT50aGlz
VmFsdWUoKS50b1RoaXMoZXhlYywgU3RyaWN0TW9kZSkudG9PYmplY3QoZXhlYyk7CiAgICAgdW5z
aWduZWQgbGVuZ3RoID0gdGhpc09iai0+Z2V0KGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5s
ZW5ndGgpLnRvVUludDMyKGV4ZWMpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKQEAgLTY4MCw3ICs2
ODAsNyBAQCBzdGF0aWMgYm9vbCBwZXJmb3JtU2xvd1NvcnQoRXhlY1N0YXRlKiBleGVjLCBKU09i
amVjdCogdGhpc09iaiwgdW5zaWduZWQgbGVuZ3RoLAogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGFycmF5UHJvdG9GdW5jU29ydChFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNPYmpl
Y3QqIHRoaXNPYmogPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCkudG9UaGlzKGV4ZWMsIFN0cmljdE1v
ZGUpLnRvT2JqZWN0KGV4ZWMpOworICAgIEpTT2JqZWN0KiB0aGlzT2JqID0gZXhlYy0+dGhpc1Zh
bHVlKCkudG9UaGlzKGV4ZWMsIFN0cmljdE1vZGUpLnRvT2JqZWN0KGV4ZWMpOwogICAgIHVuc2ln
bmVkIGxlbmd0aCA9IHRoaXNPYmotPmdldChleGVjLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVu
Z3RoKS50b1VJbnQzMihleGVjKTsKICAgICBpZiAoIWxlbmd0aCB8fCBleGVjLT5oYWRFeGNlcHRp
b24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aGlzT2JqKTsKQEAgLTc1NSw3
ICs3NTUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jU3Bs
aWNlKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICAvLyAxNS40LjQuMTIKIAotICAgIEpTT2JqZWN0
KiB0aGlzT2JqID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpLnRvVGhpcyhleGVjLCBTdHJpY3RNb2Rl
KS50b09iamVjdChleGVjKTsKKyAgICBKU09iamVjdCogdGhpc09iaiA9IGV4ZWMtPnRoaXNWYWx1
ZSgpLnRvVGhpcyhleGVjLCBTdHJpY3RNb2RlKS50b09iamVjdChleGVjKTsKICAgICB1bnNpZ25l
ZCBsZW5ndGggPSB0aGlzT2JqLT5nZXQoZXhlYywgZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0
aCkudG9VSW50MzIoZXhlYyk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwpAQCAtODEzLDcgKzgxMyw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNVblNoaWZ0KEV4
ZWNTdGF0ZSogZXhlYykKIHsKICAgICAvLyAxNS40LjQuMTMKIAotICAgIEpTT2JqZWN0KiB0aGlz
T2JqID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpLnRvVGhpcyhleGVjLCBTdHJpY3RNb2RlKS50b09i
amVjdChleGVjKTsKKyAgICBKU09iamVjdCogdGhpc09iaiA9IGV4ZWMtPnRoaXNWYWx1ZSgpLnRv
VGhpcyhleGVjLCBTdHJpY3RNb2RlKS50b09iamVjdChleGVjKTsKICAgICB1bnNpZ25lZCBsZW5n
dGggPSB0aGlzT2JqLT5nZXQoZXhlYywgZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCkudG9V
SW50MzIoZXhlYyk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwpAQCAtODM2LDcgKzgzNiw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNVblNoaWZ0KEV4ZWNTdGF0
ZSogZXhlYykKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY1Jl
ZHVjZShFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNPYmplY3QqIHRoaXNPYmogPSBleGVjLT5o
b3N0VGhpc1ZhbHVlKCkudG9UaGlzKGV4ZWMsIFN0cmljdE1vZGUpLnRvT2JqZWN0KGV4ZWMpOwor
ICAgIEpTT2JqZWN0KiB0aGlzT2JqID0gZXhlYy0+dGhpc1ZhbHVlKCkudG9UaGlzKGV4ZWMsIFN0
cmljdE1vZGUpLnRvT2JqZWN0KGV4ZWMpOwogICAgIHVuc2lnbmVkIGxlbmd0aCA9IHRoaXNPYmot
PmdldChleGVjLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoKS50b1VJbnQzMihleGVjKTsK
ICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7CkBAIC05MTMsNyArOTEzLDcgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY1JlZHVjZShFeGVjU3RhdGUqIGV4ZWMpCiAKIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNSZWR1Y2VSaWdodChFeGVj
U3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNPYmplY3QqIHRoaXNPYmogPSBleGVjLT5ob3N0VGhpc1Zh
bHVlKCkudG9UaGlzKGV4ZWMsIFN0cmljdE1vZGUpLnRvT2JqZWN0KGV4ZWMpOworICAgIEpTT2Jq
ZWN0KiB0aGlzT2JqID0gZXhlYy0+dGhpc1ZhbHVlKCkudG9UaGlzKGV4ZWMsIFN0cmljdE1vZGUp
LnRvT2JqZWN0KGV4ZWMpOwogICAgIHVuc2lnbmVkIGxlbmd0aCA9IHRoaXNPYmotPmdldChleGVj
LCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoKS50b1VJbnQzMihleGVjKTsKICAgICBpZiAo
ZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CkBAIC05OTAsNyArOTkwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBhcnJheVByb3RvRnVuY1JlZHVjZVJpZ2h0KEV4ZWNTdGF0ZSogZXhlYykKIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNJbmRleE9mKEV4ZWNTdGF0ZSogZXhl
YykKIHsKICAgICAvLyAxNS40LjQuMTQKLSAgICBKU09iamVjdCogdGhpc09iaiA9IGV4ZWMtPmhv
c3RUaGlzVmFsdWUoKS50b1RoaXMoZXhlYywgU3RyaWN0TW9kZSkudG9PYmplY3QoZXhlYyk7Cisg
ICAgSlNPYmplY3QqIHRoaXNPYmogPSBleGVjLT50aGlzVmFsdWUoKS50b1RoaXMoZXhlYywgU3Ry
aWN0TW9kZSkudG9PYmplY3QoZXhlYyk7CiAgICAgdW5zaWduZWQgbGVuZ3RoID0gdGhpc09iai0+
Z2V0KGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgpLnRvVUludDMyKGV4ZWMpOwog
ICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKQEAgLTEwMTMsNyArMTAxMyw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNJbmRleE9mKEV4ZWNTdGF0ZSogZXhlYykKIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNMYXN0SW5kZXhPZihFeGVj
U3RhdGUqIGV4ZWMpCiB7CiAgICAgLy8gMTUuNC40LjE1Ci0gICAgSlNPYmplY3QqIHRoaXNPYmog
PSBleGVjLT5ob3N0VGhpc1ZhbHVlKCkudG9UaGlzKGV4ZWMsIFN0cmljdE1vZGUpLnRvT2JqZWN0
KGV4ZWMpOworICAgIEpTT2JqZWN0KiB0aGlzT2JqID0gZXhlYy0+dGhpc1ZhbHVlKCkudG9UaGlz
KGV4ZWMsIFN0cmljdE1vZGUpLnRvT2JqZWN0KGV4ZWMpOwogICAgIHVuc2lnbmVkIGxlbmd0aCA9
IHRoaXNPYmotPmdldChleGVjLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoKS50b1VJbnQz
MihleGVjKTsKICAgICBpZiAoIWxlbmd0aCkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc051bWJlcigtMSkpOwpAQCAtMTA0OCwxOSArMTA0OCwxOSBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jTGFzdEluZGV4T2YoRXhlY1N0YXRlKiBleGVjKQog
CiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jVmFsdWVzKEV4ZWNT
dGF0ZSogZXhlYykKIHsKLSAgICBKU09iamVjdCogdGhpc09iaiA9IGV4ZWMtPmhvc3RUaGlzVmFs
dWUoKS50b1RoaXMoZXhlYywgU3RyaWN0TW9kZSkudG9PYmplY3QoZXhlYyk7CisgICAgSlNPYmpl
Y3QqIHRoaXNPYmogPSBleGVjLT50aGlzVmFsdWUoKS50b1RoaXMoZXhlYywgU3RyaWN0TW9kZSku
dG9PYmplY3QoZXhlYyk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU0FycmF5SXRlcmF0
b3I6OmNyZWF0ZShleGVjLCBleGVjLT5jYWxsZWUoKS0+Z2xvYmFsT2JqZWN0KCktPmFycmF5SXRl
cmF0b3JTdHJ1Y3R1cmUoKSwgQXJyYXlJdGVyYXRlVmFsdWUsIHRoaXNPYmopKTsKIH0KIAogRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY0VudHJpZXMoRXhlY1N0YXRl
KiBleGVjKQogewotICAgIEpTT2JqZWN0KiB0aGlzT2JqID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgp
LnRvVGhpcyhleGVjLCBTdHJpY3RNb2RlKS50b09iamVjdChleGVjKTsKKyAgICBKU09iamVjdCog
dGhpc09iaiA9IGV4ZWMtPnRoaXNWYWx1ZSgpLnRvVGhpcyhleGVjLCBTdHJpY3RNb2RlKS50b09i
amVjdChleGVjKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTQXJyYXlJdGVyYXRvcjo6
Y3JlYXRlKGV4ZWMsIGV4ZWMtPmNhbGxlZSgpLT5nbG9iYWxPYmplY3QoKS0+YXJyYXlJdGVyYXRv
clN0cnVjdHVyZSgpLCBBcnJheUl0ZXJhdGVLZXlWYWx1ZSwgdGhpc09iaikpOwogfQogICAgIAog
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY0tleXMoRXhlY1N0YXRl
KiBleGVjKQogewotICAgIEpTT2JqZWN0KiB0aGlzT2JqID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgp
LnRvVGhpcyhleGVjLCBTdHJpY3RNb2RlKS50b09iamVjdChleGVjKTsKKyAgICBKU09iamVjdCog
dGhpc09iaiA9IGV4ZWMtPnRoaXNWYWx1ZSgpLnRvVGhpcyhleGVjLCBTdHJpY3RNb2RlKS50b09i
amVjdChleGVjKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTQXJyYXlJdGVyYXRvcjo6
Y3JlYXRlKGV4ZWMsIGV4ZWMtPmNhbGxlZSgpLT5nbG9iYWxPYmplY3QoKS0+YXJyYXlJdGVyYXRv
clN0cnVjdHVyZSgpLCBBcnJheUl0ZXJhdGVLZXksIHRoaXNPYmopKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhblByb3RvdHlwZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNwcAppbmRleCBi
ZmJmMGYyLi41NjE4MmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Cb29sZWFuUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Cb29sZWFuUHJvdG90eXBlLmNwcApAQCAtNzMsNyArNzMsNyBAQCBib29sIEJvb2xlYW5Qcm90
b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4
ZWMsIFBybwogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBib29sZWFuUHJvdG9GdW5jVG9T
dHJpbmcoRXhlY1N0YXRlKiBleGVjKQogewogICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOwotICAg
IEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUg
dGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgaWYgKHRoaXNWYWx1ZSA9PSBqc0Jv
b2xlYW4oZmFsc2UpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHZtLT5zbWFsbFN0
cmluZ3MuZmFsc2VTdHJpbmcoKSk7CiAKQEAgLTkyLDcgKzkyLDcgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBib29sZWFuUHJvdG9GdW5jVG9TdHJpbmcoRXhlY1N0YXRlKiBleGVjKQog
CiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJvb2xlYW5Qcm90b0Z1bmNWYWx1ZU9mKEV4
ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlz
VmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAg
IGlmICh0aGlzVmFsdWUuaXNCb29sZWFuKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUodGhpc1ZhbHVlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQ29uc29sZVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9D
b25zb2xlUHJvdG90eXBlLmNwcAppbmRleCBhMWMyODY5Li5hMmExZWM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zb2xlUHJvdG90eXBlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zb2xlUHJvdG90eXBlLmNwcApAQCAtOTks
NyArOTksNyBAQCBzdGF0aWMgU3RyaW5nIHZhbHVlVG9TdHJpbmdXaXRoVW5kZWZpbmVkT3JOdWxs
Q2hlY2soRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbAogCiBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgY29uc29sZUxvZ1dpdGhMZXZlbChFeGVjU3RhdGUqIGV4ZWMsIE1lc3NhZ2VMZXZlbCBsZXZl
bCkKIHsKLSAgICBKU0NvbnNvbGUqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTQ29uc29s
ZSo+KGV4ZWMtPmhvc3RUaGlzVmFsdWUoKSk7CisgICAgSlNDb25zb2xlKiBjYXN0ZWRUaGlzID0g
anNEeW5hbWljQ2FzdDxKU0NvbnNvbGUqPihleGVjLT50aGlzVmFsdWUoKSk7CiAgICAgaWYgKCFj
YXN0ZWRUaGlzKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKICAgICBB
U1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTQ29uc29sZTo6aW5mbygpKTsK
QEAgLTEzNCw3ICsxMzQsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBj
b25zb2xlUHJvdG9GdW5jV2FybihFeGVjU3RhdGUqIGV4ZWMpCiAKIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNDbGVhcihFeGVjU3RhdGUqIGV4ZWMp
CiB7Ci0gICAgSlNDb25zb2xlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU0NvbnNvbGUq
PihleGVjLT5ob3N0VGhpc1ZhbHVlKCkpOworICAgIEpTQ29uc29sZSogY2FzdGVkVGhpcyA9IGpz
RHluYW1pY0Nhc3Q8SlNDb25zb2xlKj4oZXhlYy0+dGhpc1ZhbHVlKCkpOwogICAgIGlmICghY2Fz
dGVkVGhpcykKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAgICAgQVNT
RVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU0NvbnNvbGU6OmluZm8oKSk7CkBA
IC0xNDksNyArMTQ5LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29u
c29sZVByb3RvRnVuY0NsZWFyKEV4ZWNTdGF0ZSogZXhlYykKIAogc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0RpcihFeGVjU3RhdGUqIGV4ZWMpCiB7
Ci0gICAgSlNDb25zb2xlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU0NvbnNvbGUqPihl
eGVjLT5ob3N0VGhpc1ZhbHVlKCkpOworICAgIEpTQ29uc29sZSogY2FzdGVkVGhpcyA9IGpzRHlu
YW1pY0Nhc3Q8SlNDb25zb2xlKj4oZXhlYy0+dGhpc1ZhbHVlKCkpOwogICAgIGlmICghY2FzdGVk
VGhpcykKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAgICAgQVNTRVJU
X0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU0NvbnNvbGU6OmluZm8oKSk7CkBAIC0x
NjQsNyArMTY0LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29s
ZVByb3RvRnVuY0RpcihFeGVjU3RhdGUqIGV4ZWMpCiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNEaXJYTUwoRXhlY1N0YXRlKiBleGVjKQogewot
ICAgIEpTQ29uc29sZSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNDb25zb2xlKj4oZXhl
Yy0+aG9zdFRoaXNWYWx1ZSgpKTsKKyAgICBKU0NvbnNvbGUqIGNhc3RlZFRoaXMgPSBqc0R5bmFt
aWNDYXN0PEpTQ29uc29sZSo+KGV4ZWMtPnRoaXNWYWx1ZSgpKTsKICAgICBpZiAoIWNhc3RlZFRo
aXMpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogICAgIEFTU0VSVF9H
Q19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNDb25zb2xlOjppbmZvKCkpOwpAQCAtMTc5
LDcgKzE3OSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQ
cm90b0Z1bmNEaXJYTUwoRXhlY1N0YXRlKiBleGVjKQogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jVGFibGUoRXhlY1N0YXRlKiBleGVjKQogewot
ICAgIEpTQ29uc29sZSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNDb25zb2xlKj4oZXhl
Yy0+aG9zdFRoaXNWYWx1ZSgpKTsKKyAgICBKU0NvbnNvbGUqIGNhc3RlZFRoaXMgPSBqc0R5bmFt
aWNDYXN0PEpTQ29uc29sZSo+KGV4ZWMtPnRoaXNWYWx1ZSgpKTsKICAgICBpZiAoIWNhc3RlZFRo
aXMpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogICAgIEFTU0VSVF9H
Q19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNDb25zb2xlOjppbmZvKCkpOwpAQCAtMTk0
LDcgKzE5NCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQ
cm90b0Z1bmNUYWJsZShFeGVjU3RhdGUqIGV4ZWMpCiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNUcmFjZShFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0g
ICAgSlNDb25zb2xlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU0NvbnNvbGUqPihleGVj
LT5ob3N0VGhpc1ZhbHVlKCkpOworICAgIEpTQ29uc29sZSogY2FzdGVkVGhpcyA9IGpzRHluYW1p
Y0Nhc3Q8SlNDb25zb2xlKj4oZXhlYy0+dGhpc1ZhbHVlKCkpOwogICAgIGlmICghY2FzdGVkVGhp
cykKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAgICAgQVNTRVJUX0dD
X09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU0NvbnNvbGU6OmluZm8oKSk7CkBAIC0yMDks
NyArMjA5LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVBy
b3RvRnVuY1RyYWNlKEV4ZWNTdGF0ZSogZXhlYykKIAogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0Fzc2VydChFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0g
ICAgSlNDb25zb2xlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU0NvbnNvbGUqPihleGVj
LT5ob3N0VGhpc1ZhbHVlKCkpOworICAgIEpTQ29uc29sZSogY2FzdGVkVGhpcyA9IGpzRHluYW1p
Y0Nhc3Q8SlNDb25zb2xlKj4oZXhlYy0+dGhpc1ZhbHVlKCkpOwogICAgIGlmICghY2FzdGVkVGhp
cykKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAgICAgQVNTRVJUX0dD
X09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU0NvbnNvbGU6OmluZm8oKSk7CkBAIC0yMjgs
NyArMjI4LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVBy
b3RvRnVuY0Fzc2VydChFeGVjU3RhdGUqIGV4ZWMpCiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNDb3VudChFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0g
ICAgSlNDb25zb2xlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU0NvbnNvbGUqPihleGVj
LT5ob3N0VGhpc1ZhbHVlKCkpOworICAgIEpTQ29uc29sZSogY2FzdGVkVGhpcyA9IGpzRHluYW1p
Y0Nhc3Q8SlNDb25zb2xlKj4oZXhlYy0+dGhpc1ZhbHVlKCkpOwogICAgIGlmICghY2FzdGVkVGhp
cykKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAgICAgQVNTRVJUX0dD
X09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU0NvbnNvbGU6OmluZm8oKSk7CkBAIC0yNDMs
NyArMjQzLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVBy
b3RvRnVuY0NvdW50KEV4ZWNTdGF0ZSogZXhlYykKIAogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY1Byb2ZpbGUoRXhlY1N0YXRlKiBleGVjKQogewot
ICAgIEpTQ29uc29sZSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNDb25zb2xlKj4oZXhl
Yy0+aG9zdFRoaXNWYWx1ZSgpKTsKKyAgICBKU0NvbnNvbGUqIGNhc3RlZFRoaXMgPSBqc0R5bmFt
aWNDYXN0PEpTQ29uc29sZSo+KGV4ZWMtPnRoaXNWYWx1ZSgpKTsKICAgICBpZiAoIWNhc3RlZFRo
aXMpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogICAgIEFTU0VSVF9H
Q19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNDb25zb2xlOjppbmZvKCkpOwpAQCAtMjY3
LDcgKzI2Nyw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQ
cm90b0Z1bmNQcm9maWxlKEV4ZWNTdGF0ZSogZXhlYykKIAogc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY1Byb2ZpbGVFbmQoRXhlY1N0YXRlKiBleGVj
KQogewotICAgIEpTQ29uc29sZSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNDb25zb2xl
Kj4oZXhlYy0+aG9zdFRoaXNWYWx1ZSgpKTsKKyAgICBKU0NvbnNvbGUqIGNhc3RlZFRoaXMgPSBq
c0R5bmFtaWNDYXN0PEpTQ29uc29sZSo+KGV4ZWMtPnRoaXNWYWx1ZSgpKTsKICAgICBpZiAoIWNh
c3RlZFRoaXMpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogICAgIEFT
U0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNDb25zb2xlOjppbmZvKCkpOwpA
QCAtMjkxLDcgKzI5MSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNv
bnNvbGVQcm90b0Z1bmNQcm9maWxlRW5kKEV4ZWNTdGF0ZSogZXhlYykKIAogc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY1RpbWUoRXhlY1N0YXRlKiBl
eGVjKQogewotICAgIEpTQ29uc29sZSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNDb25z
b2xlKj4oZXhlYy0+aG9zdFRoaXNWYWx1ZSgpKTsKKyAgICBKU0NvbnNvbGUqIGNhc3RlZFRoaXMg
PSBqc0R5bmFtaWNDYXN0PEpTQ29uc29sZSo+KGV4ZWMtPnRoaXNWYWx1ZSgpKTsKICAgICBpZiAo
IWNhc3RlZFRoaXMpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogICAg
IEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNDb25zb2xlOjppbmZvKCkp
OwpAQCAtMzEyLDcgKzMxMiw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGNvbnNvbGVQcm90b0Z1bmNUaW1lKEV4ZWNTdGF0ZSogZXhlYykKIAogc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY1RpbWVFbmQoRXhlY1N0YXRlKiBl
eGVjKQogewotICAgIEpTQ29uc29sZSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNDb25z
b2xlKj4oZXhlYy0+aG9zdFRoaXNWYWx1ZSgpKTsKKyAgICBKU0NvbnNvbGUqIGNhc3RlZFRoaXMg
PSBqc0R5bmFtaWNDYXN0PEpTQ29uc29sZSo+KGV4ZWMtPnRoaXNWYWx1ZSgpKTsKICAgICBpZiAo
IWNhc3RlZFRoaXMpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogICAg
IEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNDb25zb2xlOjppbmZvKCkp
OwpAQCAtMzMzLDcgKzMzMyw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGNvbnNvbGVQcm90b0Z1bmNUaW1lRW5kKEV4ZWNTdGF0ZSogZXhlYykKIAogc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY1RpbWVTdGFtcChFeGVjU3Rh
dGUqIGV4ZWMpCiB7Ci0gICAgSlNDb25zb2xlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxK
U0NvbnNvbGUqPihleGVjLT5ob3N0VGhpc1ZhbHVlKCkpOworICAgIEpTQ29uc29sZSogY2FzdGVk
VGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNDb25zb2xlKj4oZXhlYy0+dGhpc1ZhbHVlKCkpOwogICAg
IGlmICghY2FzdGVkVGhpcykKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7
CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU0NvbnNvbGU6Omlu
Zm8oKSk7CkBAIC0zNDgsNyArMzQ4LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY29uc29sZVByb3RvRnVuY1RpbWVTdGFtcChFeGVjU3RhdGUqIGV4ZWMpCiAKIHN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNHcm91cChFeGVj
U3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNDb25zb2xlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2Fz
dDxKU0NvbnNvbGUqPihleGVjLT5ob3N0VGhpc1ZhbHVlKCkpOworICAgIEpTQ29uc29sZSogY2Fz
dGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNDb25zb2xlKj4oZXhlYy0+dGhpc1ZhbHVlKCkpOwog
ICAgIGlmICghY2FzdGVkVGhpcykKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhl
Yyk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU0NvbnNvbGU6
OmluZm8oKSk7CkBAIC0zNjMsNyArMzYzLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0dyb3VwKEV4ZWNTdGF0ZSogZXhlYykKIAogc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0dyb3VwQ29sbGFw
c2VkKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU0NvbnNvbGUqIGNhc3RlZFRoaXMgPSBqc0R5
bmFtaWNDYXN0PEpTQ29uc29sZSo+KGV4ZWMtPmhvc3RUaGlzVmFsdWUoKSk7CisgICAgSlNDb25z
b2xlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU0NvbnNvbGUqPihleGVjLT50aGlzVmFs
dWUoKSk7CiAgICAgaWYgKCFjYXN0ZWRUaGlzKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVF
cnJvcihleGVjKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpT
Q29uc29sZTo6aW5mbygpKTsKQEAgLTM3OCw3ICszNzgsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jR3JvdXBDb2xsYXBzZWQoRXhlY1N0YXRl
KiBleAogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9G
dW5jR3JvdXBFbmQoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTQ29uc29sZSogY2FzdGVkVGhp
cyA9IGpzRHluYW1pY0Nhc3Q8SlNDb25zb2xlKj4oZXhlYy0+aG9zdFRoaXNWYWx1ZSgpKTsKKyAg
ICBKU0NvbnNvbGUqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTQ29uc29sZSo+KGV4ZWMt
PnRoaXNWYWx1ZSgpKTsKICAgICBpZiAoIWNhc3RlZFRoaXMpCiAgICAgICAgIHJldHVybiB0aHJv
d1ZNVHlwZUVycm9yKGV4ZWMpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVk
VGhpcywgSlNDb25zb2xlOjppbmZvKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9EYXRlUHJvdG90eXBlLmNwcAppbmRleCA3Y2NiY2M0Li45Y2Q3MzZhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcApAQCAtMzE5LDcg
KzMxOSw3IEBAIHN0YXRpYyBKU0NlbGwqIGZvcm1hdExvY2FsZURhdGUoRXhlY1N0YXRlKiBleGVj
LCBEYXRlSW5zdGFuY2UqIGRhdGVPYmplY3QsIGRvdWJsCiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBmb3JtYXRlRGF0ZUluc3RhbmNlKEV4ZWNTdGF0ZSogZXhlYywgRGF0ZVRpbWVGb3JtYXQgZm9y
bWF0LCBib29sIGFzVVRDVmFyaWFudCkKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMt
Pmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1
ZSgpOwogICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKERhdGVJbnN0YW5jZTo6aW5mbygpKSkK
ICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAKQEAgLTUxNCw3ICs1MTQs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNUb1VUQ1N0cmlu
ZyhFeGVjU3RhdGUqIGV4ZWMpCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVBy
b3RvRnVuY1RvSVNPU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNW
YWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4
ZWMtPnRoaXNWYWx1ZSgpOwogICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKERhdGVJbnN0YW5j
ZTo6aW5mbygpKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAgICAg
CkBAIC01NjAsNyArNTYwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJv
dG9GdW5jVG9UaW1lU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykKIAogRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcoRXhlY1N0YXRlKiBleGVjKQog
ewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpT
VmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgaWYgKCF0aGlzVmFsdWUu
aW5oZXJpdHMoRGF0ZUluc3RhbmNlOjppbmZvKCkpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5
cGVFcnJvcihleGVjKTsKIApAQCAtNTcwLDcgKzU3MCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZGF0ZVByb3RvRnVuY1RvTG9jYWxlU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykKIAog
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jVG9Mb2NhbGVEYXRlU3Ry
aW5nKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhv
c3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgp
OwogICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKERhdGVJbnN0YW5jZTo6aW5mbygpKSkKICAg
ICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAKQEAgLTU4MCw3ICs1ODAsNyBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNUb0xvY2FsZURhdGVT
dHJpbmcoRXhlY1N0YXRlKiBleGVjKQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRh
dGVQcm90b0Z1bmNUb0xvY2FsZVRpbWVTdHJpbmcoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpT
VmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhp
c1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHMo
RGF0ZUluc3RhbmNlOjppbmZvKCkpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihl
eGVjKTsKIApAQCAtNTkwLDcgKzU5MCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZGF0ZVByb3RvRnVuY1RvTG9jYWxlVGltZVN0cmluZyhFeGVjU3RhdGUqIGV4ZWMpCiAKIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFRpbWUoRXhlY1N0YXRlKiBl
eGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwor
ICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgaWYgKCF0aGlz
VmFsdWUuaW5oZXJpdHMoRGF0ZUluc3RhbmNlOjppbmZvKCkpKQogICAgICAgICByZXR1cm4gdGhy
b3dWTVR5cGVFcnJvcihleGVjKTsKIApAQCAtNTk5LDcgKzU5OSw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFRpbWUoRXhlY1N0YXRlKiBleGVjKQogCiBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRGdWxsWWVhcihFeGVj
U3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1Zh
bHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBp
ZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyhEYXRlSW5zdGFuY2U6OmluZm8oKSkpCiAgICAgICAgIHJl
dHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogCkBAIC02MTMsNyArNjEzLDcgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0RnVsbFllYXIoRXhlY1N0YXRl
KiBleGVjKQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRV
VENGdWxsWWVhcihFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBl
eGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlz
VmFsdWUoKTsKICAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyhEYXRlSW5zdGFuY2U6OmluZm8o
KSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogCkBAIC02MzMsNyAr
NjMzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jVG9HTVRT
dHJpbmcoRXhlY1N0YXRlKiBleGVjKQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRh
dGVQcm90b0Z1bmNHZXRNb250aChFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlz
VmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBl
eGVjLT50aGlzVmFsdWUoKTsKICAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyhEYXRlSW5zdGFu
Y2U6OmluZm8oKSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogCkBA
IC02NDcsNyArNjQ3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9G
dW5jR2V0TW9udGgoRXhlY1N0YXRlKiBleGVjKQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGRhdGVQcm90b0Z1bmNHZXRVVENNb250aChFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNW
YWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlz
VmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyhE
YXRlSW5zdGFuY2U6OmluZm8oKSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMpOwogCkBAIC02NjEsNyArNjYxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBk
YXRlUHJvdG9GdW5jR2V0VVRDTW9udGgoRXhlY1N0YXRlKiBleGVjKQogCiBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXREYXRlKEV4ZWNTdGF0ZSogZXhlYykKIHsK
LSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1Zh
bHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIGlmICghdGhpc1ZhbHVlLmlu
aGVyaXRzKERhdGVJbnN0YW5jZTo6aW5mbygpKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBl
RXJyb3IoZXhlYyk7CiAKQEAgLTY3NSw3ICs2NzUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGRhdGVQcm90b0Z1bmNHZXREYXRlKEV4ZWNTdGF0ZSogZXhlYykKIAogRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRDRGF0ZShFeGVjU3RhdGUqIGV4
ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7Cisg
ICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBpZiAoIXRoaXNW
YWx1ZS5pbmhlcml0cyhEYXRlSW5zdGFuY2U6OmluZm8oKSkpCiAgICAgICAgIHJldHVybiB0aHJv
d1ZNVHlwZUVycm9yKGV4ZWMpOwogCkBAIC02ODksNyArNjg5LDcgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRDRGF0ZShFeGVjU3RhdGUqIGV4ZWMpCiAK
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldERheShFeGVjU3Rh
dGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVl
KCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBpZiAo
IXRoaXNWYWx1ZS5pbmhlcml0cyhEYXRlSW5zdGFuY2U6OmluZm8oKSkpCiAgICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogCkBAIC03MDMsNyArNzAzLDcgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0RGF5KEV4ZWNTdGF0ZSogZXhlYykK
IAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRDRGF5KEV4
ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlz
VmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAg
IGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKERhdGVJbnN0YW5jZTo6aW5mbygpKSkKICAgICAgICAg
cmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAKQEAgLTcxNyw3ICs3MTcsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRVVENEYXkoRXhlY1N0YXRl
KiBleGVjKQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRI
b3VycyhFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5o
b3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUo
KTsKICAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyhEYXRlSW5zdGFuY2U6OmluZm8oKSkpCiAg
ICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogCkBAIC03MzEsNyArNzMxLDcg
QEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0SG91cnMoRXhl
Y1N0YXRlKiBleGVjKQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1
bmNHZXRVVENIb3VycyhFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUg
PSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50
aGlzVmFsdWUoKTsKICAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyhEYXRlSW5zdGFuY2U6Omlu
Zm8oKSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogCkBAIC03NDUs
NyArNzQ1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0
VVRDSG91cnMoRXhlY1N0YXRlKiBleGVjKQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGRhdGVQcm90b0Z1bmNHZXRNaW51dGVzKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVl
IHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1
ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKERhdGVJ
bnN0YW5jZTo6aW5mbygpKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7
CiAKQEAgLTc1OSw3ICs3NTksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQ
cm90b0Z1bmNHZXRNaW51dGVzKEV4ZWNTdGF0ZSogZXhlYykKIAogRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRDTWludXRlcyhFeGVjU3RhdGUqIGV4ZWMpCiB7
Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNW
YWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBpZiAoIXRoaXNWYWx1ZS5p
bmhlcml0cyhEYXRlSW5zdGFuY2U6OmluZm8oKSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlw
ZUVycm9yKGV4ZWMpOwogCkBAIC03NzMsNyArNzczLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRDTWludXRlcyhFeGVjU3RhdGUqIGV4ZWMpCiAKIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFNlY29uZHMoRXhlY1N0
YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1
ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgaWYg
KCF0aGlzVmFsdWUuaW5oZXJpdHMoRGF0ZUluc3RhbmNlOjppbmZvKCkpKQogICAgICAgICByZXR1
cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKIApAQCAtNzg3LDcgKzc4Nyw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFNlY29uZHMoRXhlY1N0YXRlKiBl
eGVjKQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRVVENT
ZWNvbmRzKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMt
Pmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1
ZSgpOwogICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKERhdGVJbnN0YW5jZTo6aW5mbygpKSkK
ICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAKQEAgLTgwMSw3ICs4MDEs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRVVENTZWNv
bmRzKEV4ZWNTdGF0ZSogZXhlYykKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRl
UHJvdG9GdW5jR2V0TWlsbGlTZWNvbmRzKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVl
IHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1
ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKERhdGVJ
bnN0YW5jZTo6aW5mbygpKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7
CiAKQEAgLTgxNyw3ICs4MTcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQ
cm90b0Z1bmNHZXRNaWxsaVNlY29uZHMoRXhlY1N0YXRlKiBleGVjKQogCiBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRVVENNaWxsaXNlY29uZHMoRXhlY1N0YXRl
KiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgp
OworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgaWYgKCF0
aGlzVmFsdWUuaW5oZXJpdHMoRGF0ZUluc3RhbmNlOjppbmZvKCkpKQogICAgICAgICByZXR1cm4g
dGhyb3dWTVR5cGVFcnJvcihleGVjKTsKIApAQCAtODMzLDcgKzgzMyw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ01pbGxpc2Vjb25kcyhFeGVjU3Rh
dGUqIGV4ZWMpCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dl
dFRpbWV6b25lT2Zmc2V0KEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1
ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMt
PnRoaXNWYWx1ZSgpOwogICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKERhdGVJbnN0YW5jZTo6
aW5mbygpKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAKQEAgLTg0
Nyw3ICs4NDcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNH
ZXRUaW1lem9uZU9mZnNldChFeGVjU3RhdGUqIGV4ZWMpCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZGF0ZVByb3RvRnVuY1NldFRpbWUoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpT
VmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhp
c1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHMo
RGF0ZUluc3RhbmNlOjppbmZvKCkpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihl
eGVjKTsKIApAQCAtODYxLDcgKzg2MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZGF0ZVByb3RvRnVuY1NldFRpbWUoRXhlY1N0YXRlKiBleGVjKQogCiBzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgc2V0TmV3VmFsdWVGcm9tVGltZUFyZ3MoRXhlY1N0YXRlKiBleGVjLCBpbnQgbnVtQXJn
c1RvVXNlLCBib29sIGlucHV0SXNVVEMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVj
LT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFs
dWUoKTsKICAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyhEYXRlSW5zdGFuY2U6OmluZm8oKSkp
CiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogCkBAIC04OTksNyArODk5
LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIHNldE5ld1ZhbHVlRnJvbVRpbWVBcmdzKEV4ZWNT
dGF0ZSogZXhlYywgaW50IG51bUFyZ3NUb1VzZSwKIAogc3RhdGljIEVuY29kZWRKU1ZhbHVlIHNl
dE5ld1ZhbHVlRnJvbURhdGVBcmdzKEV4ZWNTdGF0ZSogZXhlYywgaW50IG51bUFyZ3NUb1VzZSwg
Ym9vbCBpbnB1dElzVVRDKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRo
aXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAg
ICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHMoRGF0ZUluc3RhbmNlOjppbmZvKCkpKQogICAgICAg
ICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKIApAQCAtMTAyNCw3ICsxMDI0LDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jU2V0VVRDRnVsbFllYXIo
RXhlY1N0YXRlKiBleGVjKQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90
b0Z1bmNTZXRZZWFyKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9
IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRo
aXNWYWx1ZSgpOwogICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKERhdGVJbnN0YW5jZTo6aW5m
bygpKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAKQEAgLTEwNjYs
NyArMTA2Niw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1Nl
dFllYXIoRXhlY1N0YXRlKiBleGVjKQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRh
dGVQcm90b0Z1bmNHZXRZZWFyKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNW
YWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4
ZWMtPnRoaXNWYWx1ZSgpOwogICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKERhdGVJbnN0YW5j
ZTo6aW5mbygpKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAKQEAg
LTEwODIsNyArMTA4Miw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3Rv
RnVuY0dldFllYXIoRXhlY1N0YXRlKiBleGVjKQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGRhdGVQcm90b0Z1bmNUb0pTT04oRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUg
dGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVl
ID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNPYmplY3QqIG9iamVjdCA9IGpzQ2FzdDxKU09i
amVjdCo+KHRoaXNWYWx1ZS50b1RoaXMoZXhlYywgTm90U3RyaWN0TW9kZSkpOwogICAgIGlmIChl
eGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051
bGwoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclBy
b3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlw
ZS5jcHAKaW5kZXggZDAyZDI4Ni4uMDgwYjk3NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcApAQCAtNzIsNyArNzIsNyBAQCBib29sIEVy
cm9yUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0
YXRlKiBleGVjLCBQcm9wZQogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBlcnJvclByb3Rv
RnVuY1RvU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICAvLyAxLiBMZXQgTyBiZSB0aGUg
dGhpcyB2YWx1ZS4KLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUo
KTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogCiAgICAgLy8g
Mi4gSWYgVHlwZShPKSBpcyBub3QgT2JqZWN0LCB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24u
CiAgICAgaWYgKCF0aGlzVmFsdWUuaXNPYmplY3QoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmNwcAppbmRleCA1YjY2NmY4Li5lYjU3
ODQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblBy
b3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Q
cm90b3R5cGUuY3BwCkBAIC0xMDIsNyArMTAyLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGluc2Vy
dFNlbWljb2xvbklmTmVlZGVkKFN0cmluZyYgZnVuY3Rpb25Cb2R5LCBib29sIGJvZHlJbmNsdWQK
IAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblByb3RvRnVuY1RvU3RyaW5n
KEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RU
aGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwog
ICAgIGlmICh0aGlzVmFsdWUuaW5oZXJpdHMoSlNGdW5jdGlvbjo6aW5mbygpKSkgewogICAgICAg
ICBKU0Z1bmN0aW9uKiBmdW5jdGlvbiA9IGpzQ2FzdDxKU0Z1bmN0aW9uKj4odGhpc1ZhbHVlKTsK
ICAgICAgICAgaWYgKGZ1bmN0aW9uLT5pc0hvc3RPckJ1aWx0aW5GdW5jdGlvbigpKQpAQCAtMTI3
LDcgKzEyNyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Qcm90b0Z1
bmNCaW5kKEV4ZWNTdGF0ZSogZXhlYykKICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
ID0gZXhlYy0+Y2FsbGVlKCktPmdsb2JhbE9iamVjdCgpOwogCiAgICAgLy8gTGV0IFRhcmdldCBi
ZSB0aGUgdGhpcyB2YWx1ZS4KLSAgICBKU1ZhbHVlIHRhcmdldCA9IGV4ZWMtPmhvc3RUaGlzVmFs
dWUoKTsKKyAgICBKU1ZhbHVlIHRhcmdldCA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogCiAgICAgLy8g
SWYgSXNDYWxsYWJsZShUYXJnZXQpIGlzIGZhbHNlLCB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRp
b24uCiAgICAgQ2FsbERhdGEgY2FsbERhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9OYW1lUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL05hbWVQcm90b3R5cGUuY3BwCmluZGV4IDc5OTRjNzIuLmQwMzBmZDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hbWVQcm90b3R5cGUuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hbWVQcm90b3R5cGUuY3BwCkBAIC02Nyw3
ICs2Nyw3IEBAIGJvb2wgTmFtZVByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0
KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVyCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgcHJpdmF0ZU5hbWVQcm90b0Z1bmNUb1N0cmluZyhFeGVjU3RhdGUqIGV4ZWMpCiB7
Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNW
YWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBpZiAoIXRoaXNWYWx1ZS5p
c09iamVjdCgpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5jcHAKaW5k
ZXggNGJhMzRjMS4uYWJmYmU2NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OdW1iZXJQcm90b3R5cGUuY3BwCkBAIC0zNjcsNyArMzY3LDcgQEAgc3RhdGljIFN0cmlu
ZyB0b1N0cmluZ1dpdGhSYWRpeChpbnQzMl90IG51bWJlciwgdW5zaWduZWQgcmFkaXgpCiBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlclByb3RvRnVuY1RvRXhwb25lbnRpYWwoRXhl
Y1N0YXRlKiBleGVjKQogewogICAgIGRvdWJsZSB4OwotICAgIGlmICghdG9UaGlzTnVtYmVyKGV4
ZWMtPmhvc3RUaGlzVmFsdWUoKSwgeCkpCisgICAgaWYgKCF0b1RoaXNOdW1iZXIoZXhlYy0+dGhp
c1ZhbHVlKCksIHgpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKIAog
ICAgIC8vIEdldCB0aGUgYXJndW1lbnQuIApAQCAtMzk4LDcgKzM5OCw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9GdW5jVG9FeHBvbmVudGlhbChFeGVjU3RhdGUq
IGV4ZWMpCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlclByb3RvRnVuY1RvRml4
ZWQoRXhlY1N0YXRlKiBleGVjKQogewogICAgIGRvdWJsZSB4OwotICAgIGlmICghdG9UaGlzTnVt
YmVyKGV4ZWMtPmhvc3RUaGlzVmFsdWUoKSwgeCkpCisgICAgaWYgKCF0b1RoaXNOdW1iZXIoZXhl
Yy0+dGhpc1ZhbHVlKCksIHgpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVj
KTsKIAogICAgIC8vIEdldCB0aGUgYXJndW1lbnQuIApAQCAtNDMxLDcgKzQzMSw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9GdW5jVG9GaXhlZChFeGVjU3RhdGUq
IGV4ZWMpCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlclByb3RvRnVuY1RvUHJl
Y2lzaW9uKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBkb3VibGUgeDsKLSAgICBpZiAoIXRvVGhp
c051bWJlcihleGVjLT5ob3N0VGhpc1ZhbHVlKCksIHgpKQorICAgIGlmICghdG9UaGlzTnVtYmVy
KGV4ZWMtPnRoaXNWYWx1ZSgpLCB4KSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Io
ZXhlYyk7CiAKICAgICAvLyBHZXQgdGhlIGFyZ3VtZW50LiAKQEAgLTQ2OSw3ICs0NjksNyBAQCBz
dGF0aWMgaW5saW5lIGludCBjbHoodWludDMyX3QgbnVtYmVyKQogRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1bmNDbHooRXhlY1N0YXRlKiBleGVjKQogewogICAgIGRv
dWJsZSB4OwotICAgIGlmICghdG9UaGlzTnVtYmVyKGV4ZWMtPmhvc3RUaGlzVmFsdWUoKSwgeCkp
CisgICAgaWYgKCF0b1RoaXNOdW1iZXIoZXhlYy0+dGhpc1ZhbHVlKCksIHgpKQogICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKIAogICAgIGlmICghc3RkOjppc2Zpbml0ZSh4
KSkKQEAgLTUyMyw3ICs1MjMsNyBAQCBzdGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGludGVn
ZXJWYWx1ZVRvU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYywgaW50MzJfdCByYWRpeAogRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1bmNUb1N0cmluZyhFeGVjU3RhdGUqIGV4
ZWMpCiB7CiAgICAgZG91YmxlIGRvdWJsZVZhbHVlOwotICAgIGlmICghdG9UaGlzTnVtYmVyKGV4
ZWMtPmhvc3RUaGlzVmFsdWUoKSwgZG91YmxlVmFsdWUpKQorICAgIGlmICghdG9UaGlzTnVtYmVy
KGV4ZWMtPnRoaXNWYWx1ZSgpLCBkb3VibGVWYWx1ZSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKGV4ZWMpOwogCiAgICAgaW50MzJfdCByYWRpeCA9IGV4dHJhY3RSYWRpeEZyb21B
cmdzKGV4ZWMpOwpAQCAtNTQ5LDcgKzU0OSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgbnVtYmVyUHJvdG9GdW5jVG9TdHJpbmcoRXhlY1N0YXRlKiBleGVjKQogRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1bmNUb0xvY2FsZVN0cmluZyhFeGVjU3RhdGUq
IGV4ZWMpCiB7CiAgICAgZG91YmxlIHg7Ci0gICAgaWYgKCF0b1RoaXNOdW1iZXIoZXhlYy0+aG9z
dFRoaXNWYWx1ZSgpLCB4KSkKKyAgICBpZiAoIXRvVGhpc051bWJlcihleGVjLT50aGlzVmFsdWUo
KSwgeCkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcih4KS50b1N0cmluZyhleGVjKSk7CkBAIC01NTgs
NyArNTU4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1bmNU
b0xvY2FsZVN0cmluZyhFeGVjU3RhdGUqIGV4ZWMpCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIG51bWJlclByb3RvRnVuY1ZhbHVlT2YoRXhlY1N0YXRlKiBleGVjKQogewogICAgIGRvdWJs
ZSB4OwotICAgIGlmICghdG9UaGlzTnVtYmVyKGV4ZWMtPmhvc3RUaGlzVmFsdWUoKSwgeCkpCisg
ICAgaWYgKCF0b1RoaXNOdW1iZXIoZXhlYy0+dGhpc1ZhbHVlKCksIHgpKQogICAgICAgICByZXR1
cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
TnVtYmVyKHgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L09iamVjdFByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmpl
Y3RQcm90b3R5cGUuY3BwCmluZGV4IDY5YzlmOTQuLjQ3OWM5MTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcApAQCAtNzgsMTkgKzc4
LDE5IEBAIE9iamVjdFByb3RvdHlwZSogT2JqZWN0UHJvdG90eXBlOjpjcmVhdGUoVk0mIHZtLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgb2JqZWN0UHJvdG9GdW5jVmFsdWVPZihFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNW
YWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCkudG9UaGlzKGV4ZWMsIFN0cmlj
dE1vZGUpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCkudG9UaGlz
KGV4ZWMsIFN0cmljdE1vZGUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhpc1ZhbHVl
LnRvT2JqZWN0KGV4ZWMpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmpl
Y3RQcm90b0Z1bmNIYXNPd25Qcm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1
ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCkudG9UaGlzKGV4ZWMsIFN0cmljdE1v
ZGUpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCkudG9UaGlzKGV4
ZWMsIFN0cmljdE1vZGUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKHRo
aXNWYWx1ZS50b09iamVjdChleGVjKS0+aGFzT3duUHJvcGVydHkoZXhlYywgSWRlbnRpZmllcihl
eGVjLCBleGVjLT5hcmd1bWVudCgwKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykpKSkpOwog
fQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByb3RvRnVuY0lzUHJvdG90
eXBlT2YoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+
aG9zdFRoaXNWYWx1ZSgpLnRvVGhpcyhleGVjLCBTdHJpY3RNb2RlKTsKKyAgICBKU1ZhbHVlIHRo
aXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpLnRvVGhpcyhleGVjLCBTdHJpY3RNb2RlKTsKICAg
ICBKU09iamVjdCogdGhpc09iaiA9IHRoaXNWYWx1ZS50b09iamVjdChleGVjKTsKIAogICAgIGlm
ICghZXhlYy0+YXJndW1lbnQoMCkuaXNPYmplY3QoKSkKQEAgLTEwOSw3ICsxMDksNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByb3RvRnVuY0lzUHJvdG90eXBlT2YoRXhl
Y1N0YXRlKiBleGVjKQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByb3Rv
RnVuY0RlZmluZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNPYmplY3QqIHRoaXNP
YmplY3QgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCkudG9UaGlzKGV4ZWMsIFN0cmljdE1vZGUpLnRv
T2JqZWN0KGV4ZWMpOworICAgIEpTT2JqZWN0KiB0aGlzT2JqZWN0ID0gZXhlYy0+dGhpc1ZhbHVl
KCkudG9UaGlzKGV4ZWMsIFN0cmljdE1vZGUpLnRvT2JqZWN0KGV4ZWMpOwogICAgIGlmIChleGVj
LT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKIApAQCAtMTI5LDcgKzEyOSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgb2JqZWN0UHJvdG9GdW5jRGVmaW5lR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYykKIAogRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RQcm90b0Z1bmNEZWZpbmVTZXR0ZXIoRXhlY1N0
YXRlKiBleGVjKQogewotICAgIEpTT2JqZWN0KiB0aGlzT2JqZWN0ID0gZXhlYy0+aG9zdFRoaXNW
YWx1ZSgpLnRvVGhpcyhleGVjLCBTdHJpY3RNb2RlKS50b09iamVjdChleGVjKTsKKyAgICBKU09i
amVjdCogdGhpc09iamVjdCA9IGV4ZWMtPnRoaXNWYWx1ZSgpLnRvVGhpcyhleGVjLCBTdHJpY3RN
b2RlKS50b09iamVjdChleGVjKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAKQEAgLTE0OSw3ICsx
NDksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByb3RvRnVuY0RlZmlu
ZVNldHRlcihFeGVjU3RhdGUqIGV4ZWMpCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
b2JqZWN0UHJvdG9GdW5jTG9va3VwR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU09i
amVjdCogdGhpc09iamVjdCA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKS50b1RoaXMoZXhlYywgU3Ry
aWN0TW9kZSkudG9PYmplY3QoZXhlYyk7CisgICAgSlNPYmplY3QqIHRoaXNPYmplY3QgPSBleGVj
LT50aGlzVmFsdWUoKS50b1RoaXMoZXhlYywgU3RyaWN0TW9kZSkudG9PYmplY3QoZXhlYyk7CiAg
ICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwogCkBAIC0xNjUsNyArMTY1LDcgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBvYmplY3RQcm90b0Z1bmNMb29rdXBHZXR0ZXIoRXhlY1N0YXRlKiBleGVj
KQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByb3RvRnVuY0xvb2t1cFNl
dHRlcihFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNPYmplY3QqIHRoaXNPYmplY3QgPSBleGVj
LT5ob3N0VGhpc1ZhbHVlKCkudG9UaGlzKGV4ZWMsIFN0cmljdE1vZGUpLnRvT2JqZWN0KGV4ZWMp
OworICAgIEpTT2JqZWN0KiB0aGlzT2JqZWN0ID0gZXhlYy0+dGhpc1ZhbHVlKCkudG9UaGlzKGV4
ZWMsIFN0cmljdE1vZGUpLnRvT2JqZWN0KGV4ZWMpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRp
b24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIApA
QCAtMTgxLDcgKzE4MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0UHJv
dG9GdW5jTG9va3VwU2V0dGVyKEV4ZWNTdGF0ZSogZXhlYykKIAogRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBvYmplY3RQcm90b0Z1bmNQcm9wZXJ0eUlzRW51bWVyYWJsZShFeGVjU3RhdGUq
IGV4ZWMpCiB7Ci0gICAgSlNPYmplY3QqIHRoaXNPYmplY3QgPSBleGVjLT5ob3N0VGhpc1ZhbHVl
KCkudG9UaGlzKGV4ZWMsIFN0cmljdE1vZGUpLnRvT2JqZWN0KGV4ZWMpOworICAgIEpTT2JqZWN0
KiB0aGlzT2JqZWN0ID0gZXhlYy0+dGhpc1ZhbHVlKCkudG9UaGlzKGV4ZWMsIFN0cmljdE1vZGUp
LnRvT2JqZWN0KGV4ZWMpOwogICAgIElkZW50aWZpZXIgcHJvcGVydHlOYW1lKGV4ZWMsIGV4ZWMt
PmFyZ3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSk7CiAKICAgICBQcm9wZXJ0
eURlc2NyaXB0b3IgZGVzY3JpcHRvcjsKQEAgLTE5Myw3ICsxOTMsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByb3RvRnVuY1Byb3BlcnR5SXNFbnVtZXJhYmxlKEV4ZWNT
dGF0ZSogZXhlYwogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RQcm90b0Z1bmNU
b0xvY2FsZVN0cmluZyhFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgLy8gMS4gTGV0IE8gYmUgdGhl
IHJlc3VsdCBvZiBjYWxsaW5nIFRvT2JqZWN0IHBhc3NpbmcgdGhlIHRoaXMgdmFsdWUgYXMgdGhl
IGFyZ3VtZW50LgotICAgIEpTT2JqZWN0KiBvYmplY3QgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCku
dG9UaGlzKGV4ZWMsIFN0cmljdE1vZGUpLnRvT2JqZWN0KGV4ZWMpOworICAgIEpTT2JqZWN0KiBv
YmplY3QgPSBleGVjLT50aGlzVmFsdWUoKS50b1RoaXMoZXhlYywgU3RyaWN0TW9kZSkudG9PYmpl
Y3QoZXhlYyk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogCkBAIC0yMTMsNyArMjEzLDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RQcm90b0Z1bmNUb0xvY2FsZVN0cmluZyhF
eGVjU3RhdGUqIGV4ZWMpCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByb3Rv
RnVuY1RvU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgp
OwotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpLnRvVGhpcyhl
eGVjLCBTdHJpY3RNb2RlKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1
ZSgpLnRvVGhpcyhleGVjLCBTdHJpY3RNb2RlKTsKICAgICBpZiAodGhpc1ZhbHVlLmlzVW5kZWZp
bmVkT3JOdWxsKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOb250cml2aWFs
U3RyaW5nKCZ2bSwgU3RyaW5nKHRoaXNWYWx1ZS5pc1VuZGVmaW5lZCgpID8gQVNDSUlMaXRlcmFs
KCJbb2JqZWN0IFVuZGVmaW5lZF0iKSA6IEFTQ0lJTGl0ZXJhbCgiW29iamVjdCBOdWxsXSIpKSkp
OwogICAgIEpTT2JqZWN0KiB0aGlzT2JqZWN0ID0gdGhpc1ZhbHVlLnRvT2JqZWN0KGV4ZWMpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAK
aW5kZXggYWM3NTNiYi4uN2FlYWZmNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwCkBAIC03NCw3ICs3NCw3IEBAIGJvb2wgUmVnRXhw
UHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRl
KiBleGVjLCBQcm9wCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9G
dW5jVGVzdChFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVj
LT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFs
dWUoKTsKICAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyhSZWdFeHBPYmplY3Q6OmluZm8oKSkp
CiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNCb29sZWFuKGFzUmVnRXhwT2JqZWN0KHRoaXNWYWx1ZSktPnRlc3QoZXhl
YywgZXhlYy0+YXJndW1lbnQoMCkudG9TdHJpbmcoZXhlYykpKSk7CkBAIC04Miw3ICs4Miw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9GdW5jVGVzdChFeGVjU3Rh
dGUqIGV4ZWMpCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9GdW5j
RXhlYyhFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5o
b3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUo
KTsKICAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyhSZWdFeHBPYmplY3Q6OmluZm8oKSkpCiAg
ICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoYXNSZWdFeHBPYmplY3QodGhpc1ZhbHVlKS0+ZXhlYyhleGVjLCBleGVjLT5hcmd1
bWVudCgwKS50b1N0cmluZyhleGVjKSkpOwpAQCAtOTAsNyArOTAsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvRnVuY0V4ZWMoRXhlY1N0YXRlKiBleGVjKQogCiBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvRnVuY0NvbXBpbGUoRXhlY1N0
YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1
ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgaWYg
KCF0aGlzVmFsdWUuaW5oZXJpdHMoUmVnRXhwT2JqZWN0OjppbmZvKCkpKQogICAgICAgICByZXR1
cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKIApAQCAtMTI4LDcgKzEyOCw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9GdW5jQ29tcGlsZShFeGVjU3RhdGUqIGV4
ZWMpCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9GdW5jVG9TdHJp
bmcoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9z
dFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7
CiAgICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHMoUmVnRXhwT2JqZWN0OjppbmZvKCkpKQogICAg
ICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKaW5kZXggMDJkNjM3My4uZWUy
OGVhMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJv
dG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90
b3R5cGUuY3BwCkBAIC02NjgsNyArNjY4LDcgQEAgc3RhdGljIGlubGluZSBib29sIGNoZWNrT2Jq
ZWN0Q29lcmNpYmxlKEpTVmFsdWUgdGhpc1ZhbHVlKQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIHN0cmluZ1Byb3RvRnVuY1JlcGxhY2UoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpT
VmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhp
c1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgaWYgKCFjaGVja09iamVjdENvZXJjaWJs
ZSh0aGlzVmFsdWUpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKICAg
ICBKU1N0cmluZyogc3RyaW5nID0gdGhpc1ZhbHVlLnRvU3RyaW5nKGV4ZWMpOwpAQCAtNjgxLDcg
KzY4MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jUmVw
bGFjZShFeGVjU3RhdGUqIGV4ZWMpCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3Ry
aW5nUHJvdG9GdW5jVG9TdHJpbmcoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhp
c1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0g
ZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgLy8gQWxzbyB1c2VkIGZvciB2YWx1ZU9mLgogCiAgICAg
aWYgKHRoaXNWYWx1ZS5pc1N0cmluZygpKQpAQCAtNjk1LDcgKzY5NSw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jVG9TdHJpbmcoRXhlY1N0YXRlKiBleGVj
KQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY0NoYXJBdChF
eGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhp
c1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAg
ICBpZiAoIWNoZWNrT2JqZWN0Q29lcmNpYmxlKHRoaXNWYWx1ZSkpCiAgICAgICAgIHJldHVybiB0
aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogICAgIFN0cmluZyBzID0gdGhpc1ZhbHVlLnRvU3RyaW5n
KGV4ZWMpLT52YWx1ZShleGVjKTsKQEAgLTcxNSw3ICs3MTUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY0NoYXJBdChFeGVjU3RhdGUqIGV4ZWMpCiAKIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jQ2hhckNvZGVBdChFeGVj
U3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1Zh
bHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBp
ZiAoIWNoZWNrT2JqZWN0Q29lcmNpYmxlKHRoaXNWYWx1ZSkpCiAgICAgICAgIHJldHVybiB0aHJv
d1ZNVHlwZUVycm9yKGV4ZWMpOwogICAgIFN0cmluZyBzID0gdGhpc1ZhbHVlLnRvU3RyaW5nKGV4
ZWMpLT52YWx1ZShleGVjKTsKQEAgLTczOCw3ICs3MzgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY0NoYXJDb2RlQXQoRXhlY1N0YXRlKiBleGVjKQogCiBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY0NvbmNhdChFeGVjU3Rh
dGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVl
KCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBpZiAo
dGhpc1ZhbHVlLmlzU3RyaW5nKCkgJiYgZXhlYy0+YXJndW1lbnRDb3VudCgpID09IDEpCiAgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmcoZXhlYywgYXNTdHJpbmcodGhpc1Zh
bHVlKSwgZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkudG9TdHJpbmcoZXhlYykpKTsKIApAQCAt
NzQ5LDcgKzc0OSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9G
dW5jQ29uY2F0KEV4ZWNTdGF0ZSogZXhlYykKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBzdHJpbmdQcm90b0Z1bmNJbmRleE9mKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVl
IHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1
ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIGlmICghY2hlY2tPYmplY3RDb2VyY2libGUodGhp
c1ZhbHVlKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAKQEAgLTc4
NSw3ICs3ODUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVu
Y0luZGV4T2YoRXhlY1N0YXRlKiBleGVjKQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IHN0cmluZ1Byb3RvRnVuY0xhc3RJbmRleE9mKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1Zh
bHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNW
YWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIGlmICghY2hlY2tPYmplY3RDb2VyY2libGUo
dGhpc1ZhbHVlKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAKQEAg
LTgyMiw3ICs4MjIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3Rv
RnVuY0xhc3RJbmRleE9mKEV4ZWNTdGF0ZSogZXhlYykKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNNYXRjaChFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNW
YWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlz
VmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBpZiAoIWNoZWNrT2JqZWN0Q29lcmNpYmxl
KHRoaXNWYWx1ZSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogICAg
IEpTU3RyaW5nKiBzdHJpbmcgPSB0aGlzVmFsdWUudG9TdHJpbmcoZXhlYyk7CkBAIC04ODEsNyAr
ODgxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNNYXRj
aChFeGVjU3RhdGUqIGV4ZWMpCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5n
UHJvdG9GdW5jU2VhcmNoKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1
ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMt
PnRoaXNWYWx1ZSgpOwogICAgIGlmICghY2hlY2tPYmplY3RDb2VyY2libGUodGhpc1ZhbHVlKSkK
ICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAgICAgSlNTdHJpbmcqIHN0
cmluZyA9IHRoaXNWYWx1ZS50b1N0cmluZyhleGVjKTsKQEAgLTkxMSw3ICs5MTEsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1NlYXJjaChFeGVjU3RhdGUq
IGV4ZWMpCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jU2xp
Y2UoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9z
dFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7
CiAgICAgaWYgKCFjaGVja09iamVjdENvZXJjaWJsZSh0aGlzVmFsdWUpKQogICAgICAgICByZXR1
cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKICAgICBTdHJpbmcgcyA9IHRoaXNWYWx1ZS50b1N0
cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7CkBAIC05NjksNyArOTY5LDcgQEAgc3RhdGljIEFMV0FZ
U19JTkxJTkUgYm9vbCBzcGxpdFN0cmluZ0J5T25lQ2hhcmFjdGVySW1wbChFeGVjU3RhdGUqIGV4
ZWMsIEpTQXJyYXkKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5j
U3BsaXQoRXhlY1N0YXRlKiBleGVjKQogewogICAgIC8vIDEuIENhbGwgQ2hlY2tPYmplY3RDb2Vy
Y2libGUgcGFzc2luZyB0aGUgdGhpcyB2YWx1ZSBhcyBpdHMgYXJndW1lbnQuCi0gICAgSlNWYWx1
ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFs
dWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBpZiAoIWNoZWNrT2JqZWN0Q29lcmNpYmxlKHRo
aXNWYWx1ZSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogCkBAIC0x
MTc3LDcgKzExNzcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3Rv
RnVuY1NwbGl0KEV4ZWNTdGF0ZSogZXhlYykKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBzdHJpbmdQcm90b0Z1bmNTdWJzdHIoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUg
dGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVl
ID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgaWYgKCFjaGVja09iamVjdENvZXJjaWJsZSh0aGlz
VmFsdWUpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKICAgICB1bnNp
Z25lZCBsZW47CkBAIC0xMjE2LDcgKzEyMTYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIHN0cmluZ1Byb3RvRnVuY1N1YnN0cihFeGVjU3RhdGUqIGV4ZWMpCiAKIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jU3Vic3RyaW5nKEV4ZWNTdGF0ZSogZXhl
YykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAg
ICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIGlmICghY2hlY2tP
YmplY3RDb2VyY2libGUodGhpc1ZhbHVlKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJy
b3IoZXhlYyk7CiAKQEAgLTEyNTUsNyArMTI1NSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgc3RyaW5nUHJvdG9GdW5jU3Vic3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykKIAogRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNUb0xvd2VyQ2FzZShFeGVjU3Rh
dGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVl
KCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBpZiAo
IWNoZWNrT2JqZWN0Q29lcmNpYmxlKHRoaXNWYWx1ZSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKGV4ZWMpOwogICAgIEpTU3RyaW5nKiBzVmFsID0gdGhpc1ZhbHVlLnRvU3RyaW5n
KGV4ZWMpOwpAQCAtMTI3NCw3ICsxMjc0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBzdHJpbmdQcm90b0Z1bmNUb0xvd2VyQ2FzZShFeGVjU3RhdGUqIGV4ZWMpCiAKIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jVG9VcHBlckNhc2UoRXhlY1N0YXRl
KiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgp
OworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgaWYgKCFj
aGVja09iamVjdENvZXJjaWJsZSh0aGlzVmFsdWUpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5
cGVFcnJvcihleGVjKTsKICAgICBKU1N0cmluZyogc1ZhbCA9IHRoaXNWYWx1ZS50b1N0cmluZyhl
eGVjKTsKQEAgLTEyOTMsNyArMTI5Myw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
c3RyaW5nUHJvdG9GdW5jVG9VcHBlckNhc2UoRXhlY1N0YXRlKiBleGVjKQogCiBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY0xvY2FsZUNvbXBhcmUoRXhlY1N0YXRl
KiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgp
OworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgaWYgKCFj
aGVja09iamVjdENvZXJjaWJsZSh0aGlzVmFsdWUpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5
cGVFcnJvcihleGVjKTsKICAgICBTdHJpbmcgcyA9IHRoaXNWYWx1ZS50b1N0cmluZyhleGVjKS0+
dmFsdWUoZXhlYyk7CkBAIC0xMzA0LDcgKzEzMDQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIHN0cmluZ1Byb3RvRnVuY0xvY2FsZUNvbXBhcmUoRXhlY1N0YXRlKiBleGVjKQogCiBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY0JpZyhFeGVjU3RhdGUq
IGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7
CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBpZiAoIWNo
ZWNrT2JqZWN0Q29lcmNpYmxlKHRoaXNWYWx1ZSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlw
ZUVycm9yKGV4ZWMpOwogICAgIFN0cmluZyBzID0gdGhpc1ZhbHVlLnRvU3RyaW5nKGV4ZWMpLT52
YWx1ZShleGVjKTsKQEAgLTEzMTMsNyArMTMxMyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgc3RyaW5nUHJvdG9GdW5jQmlnKEV4ZWNTdGF0ZSogZXhlYykKIAogRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNTbWFsbChFeGVjU3RhdGUqIGV4ZWMpCiB7
Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNW
YWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBpZiAoIWNoZWNrT2JqZWN0
Q29lcmNpYmxlKHRoaXNWYWx1ZSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMpOwogICAgIFN0cmluZyBzID0gdGhpc1ZhbHVlLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVj
KTsKQEAgLTEzMjIsNyArMTMyMiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3Ry
aW5nUHJvdG9GdW5jU21hbGwoRXhlY1N0YXRlKiBleGVjKQogCiBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY0JsaW5rKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBK
U1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRo
aXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIGlmICghY2hlY2tPYmplY3RDb2VyY2li
bGUodGhpc1ZhbHVlKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAg
ICAgU3RyaW5nIHMgPSB0aGlzVmFsdWUudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpOwpAQCAt
MTMzMSw3ICsxMzMxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90
b0Z1bmNCbGluayhFeGVjU3RhdGUqIGV4ZWMpCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgc3RyaW5nUHJvdG9GdW5jQm9sZChFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0
aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUg
PSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBpZiAoIWNoZWNrT2JqZWN0Q29lcmNpYmxlKHRoaXNW
YWx1ZSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogICAgIFN0cmlu
ZyBzID0gdGhpc1ZhbHVlLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKQEAgLTEzNDAsNyAr
MTM0MCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jQm9s
ZChFeGVjU3RhdGUqIGV4ZWMpCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5n
UHJvdG9GdW5jRml4ZWQoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVl
ID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+
dGhpc1ZhbHVlKCk7CiAgICAgaWYgKCFjaGVja09iamVjdENvZXJjaWJsZSh0aGlzVmFsdWUpKQog
ICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKICAgICBTdHJpbmcgcyA9IHRo
aXNWYWx1ZS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7CkBAIC0xMzQ5LDcgKzEzNDksNyBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY0ZpeGVkKEV4ZWNT
dGF0ZSogZXhlYykKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1
bmNJdGFsaWNzKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4
ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNW
YWx1ZSgpOwogICAgIGlmICghY2hlY2tPYmplY3RDb2VyY2libGUodGhpc1ZhbHVlKSkKICAgICAg
ICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAgICAgU3RyaW5nIHMgPSB0aGlzVmFs
dWUudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpOwpAQCAtMTM1OCw3ICsxMzU4LDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNJdGFsaWNzKEV4ZWNTdGF0
ZSogZXhlYykKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNT
dHJpa2UoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+
aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVl
KCk7CiAgICAgaWYgKCFjaGVja09iamVjdENvZXJjaWJsZSh0aGlzVmFsdWUpKQogICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKICAgICBTdHJpbmcgcyA9IHRoaXNWYWx1ZS50
b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7CkBAIC0xMzY3LDcgKzEzNjcsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1N0cmlrZShFeGVjU3RhdGUqIGV4
ZWMpCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jU3ViKEV4
ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlz
VmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAg
IGlmICghY2hlY2tPYmplY3RDb2VyY2libGUodGhpc1ZhbHVlKSkKICAgICAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAgICAgU3RyaW5nIHMgPSB0aGlzVmFsdWUudG9TdHJpbmco
ZXhlYyktPnZhbHVlKGV4ZWMpOwpAQCAtMTM3Niw3ICsxMzc2LDcgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNTdWIoRXhlY1N0YXRlKiBleGVjKQogCiBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1N1cChFeGVjU3RhdGUqIGV4
ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7Cisg
ICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBpZiAoIWNoZWNr
T2JqZWN0Q29lcmNpYmxlKHRoaXNWYWx1ZSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVy
cm9yKGV4ZWMpOwogICAgIFN0cmluZyBzID0gdGhpc1ZhbHVlLnRvU3RyaW5nKGV4ZWMpLT52YWx1
ZShleGVjKTsKQEAgLTEzODUsNyArMTM4NSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgc3RyaW5nUHJvdG9GdW5jU3VwKEV4ZWNTdGF0ZSogZXhlYykKIAogRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNGb250Y29sb3IoRXhlY1N0YXRlKiBleGVjKQog
ewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpT
VmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgaWYgKCFjaGVja09iamVj
dENvZXJjaWJsZSh0aGlzVmFsdWUpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihl
eGVjKTsKICAgICBTdHJpbmcgcyA9IHRoaXNWYWx1ZS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhl
Yyk7CkBAIC0xMzk4LDcgKzEzOTgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0
cmluZ1Byb3RvRnVuY0ZvbnRjb2xvcihFeGVjU3RhdGUqIGV4ZWMpCiAKIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jRm9udHNpemUoRXhlY1N0YXRlKiBleGVjKQog
ewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpT
VmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgaWYgKCFjaGVja09iamVj
dENvZXJjaWJsZSh0aGlzVmFsdWUpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihl
eGVjKTsKICAgICBTdHJpbmcgcyA9IHRoaXNWYWx1ZS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhl
Yyk7CkBAIC0xNDQ3LDcgKzE0NDcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0
cmluZ1Byb3RvRnVuY0ZvbnRzaXplKEV4ZWNTdGF0ZSogZXhlYykKIAogRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNBbmNob3IoRXhlY1N0YXRlKiBleGVjKQogewot
ICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFs
dWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgaWYgKCFjaGVja09iamVjdENv
ZXJjaWJsZSh0aGlzVmFsdWUpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVj
KTsKICAgICBTdHJpbmcgcyA9IHRoaXNWYWx1ZS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7
CkBAIC0xNDYwLDcgKzE0NjAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmlu
Z1Byb3RvRnVuY0FuY2hvcihFeGVjU3RhdGUqIGV4ZWMpCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jTGluayhFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNW
YWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlz
VmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBpZiAoIWNoZWNrT2JqZWN0Q29lcmNpYmxl
KHRoaXNWYWx1ZSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogICAg
IFN0cmluZyBzID0gdGhpc1ZhbHVlLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKQEAgLTE1
MzEsMTkgKzE1MzEsMTkgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIHRyaW1TdHJpbmcoRXhlY1N0
YXRlKiBleGVjLCBKU1ZhbHVlIHRoaXNWYWx1ZSwgaW50IHRyaW1LaW4KIAogRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNUcmltKEV4ZWNTdGF0ZSogZXhlYykKIHsK
LSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1Zh
bHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUodHJpbVN0cmluZyhleGVjLCB0aGlzVmFsdWUsIFRyaW1MZWZ0IHwgVHJpbVJpZ2h0KSk7
CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jVHJpbUxl
ZnQoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9z
dFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0cmltU3RyaW5nKGV4ZWMsIHRoaXNWYWx1ZSwg
VHJpbUxlZnQpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90
b0Z1bmNUcmltUmlnaHQoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVl
ID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+
dGhpc1ZhbHVlKCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0cmltU3RyaW5nKGV4ZWMs
IHRoaXNWYWx1ZSwgVHJpbVJpZ2h0KSk7CiB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWE2M2E4OS4u
YjMyODQzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzMSBAQAorMjAxNC0wMy0zMSAgRMOhbmll
bCBCw6F0eWFpICA8ZGJhdHlhaS51LXN6ZWdlZEBwYXJ0bmVyLnNhbXN1bmcuY29tPgorCisgICAg
ICAgIFJlbW92ZSBob3N0VGhpc1JlZ2lzdGVyKCkgYW5kIGhvc3RUaGlzVmFsdWUoKQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwODk1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgR2VvZmZyZXkgR2FyZW4uCisKKyAgICAgICAgUmVtb3ZlZCBob3N0VGhp
c1JlZ2lzdGVyKCkgYW5kIGhvc3RUaGlzVmFsdWUoKSBhbmQgaW5zdGVhZCB1c2UgdGhpc0FyZ3Vt
ZW50T2Zmc2V0KCkgYW5kIHRoaXNWYWx1ZSgpIHJlc3BlY3RpdmVseS4KKworICAgICAgICBObyBu
ZXcgdGVzdHMsIG5vIGJlaGF2aW9yIGNoYW5nZXMuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U05hdmlnYXRvckN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU05hdmlnYXRvcjo6d2Vi
a2l0R2V0VXNlck1lZGlhKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRG
dW5jdGlvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2FsbFBsdWdpbik6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZUlt
cGxlbWVudGF0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNGbG9h
dDY0QXJyYXkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNGbG9hdDY0QXJyYXlQcm90b3R5cGVG
dW5jdGlvbkZvbyk6CisgICAgICAgIChXZWJDb3JlOjpqc0Zsb2F0NjRBcnJheVByb3RvdHlwZUZ1
bmN0aW9uU2V0KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0
aXZlRE9NT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEFjdGl2ZURPTU9iamVj
dFByb3RvdHlwZUZ1bmN0aW9uRXhjaXRpbmdGdW5jdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RBY3RpdmVET01PYmplY3RQcm90b3R5cGVGdW5jdGlvblBvc3RNZXNzYWdlKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGVGdW5j
dGlvbkFub3RoZXJGdW5jdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEV2ZW50VGFyZ2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEV2ZW50VGFy
Z2V0UHJvdG90eXBlRnVuY3Rpb25JdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEV2ZW50
VGFyZ2V0UHJvdG90eXBlRnVuY3Rpb25BZGRFdmVudExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdEV2ZW50VGFyZ2V0UHJvdG90eXBlRnVuY3Rpb25SZW1vdmVFdmVudExpc3RlbmVy
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEV2ZW50VGFyZ2V0UHJvdG90eXBlRnVuY3Rpb25E
aXNwYXRjaEV2ZW50KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
SW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEludGVyZmFjZVByb3RvdHlw
ZUZ1bmN0aW9uSW1wbGVtZW50c01ldGhvZDEpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50
ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25JbXBsZW1lbnRzTWV0aG9kMik6CisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbkltcGxlbWVudHNNZXRob2QzKToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uU3VwcGxl
bWVudGFsTWV0aG9kMSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VQcm90b3R5
cGVGdW5jdGlvblN1cHBsZW1lbnRhbE1ldGhvZDIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25TdXBwbGVtZW50YWxNZXRob2QzKToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90
eXBlRnVuY3Rpb25NZXRob2QpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPYmouY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25Wb2lkTWV0aG9kKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uVm9pZE1ldGhvZFdpdGhBcmdzKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uQnl0ZU1ldGhvZCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbkJ5dGVNZXRob2RXaXRoQXJncyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk9jdGV0TWV0aG9kKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2N0ZXRNZXRob2RXaXRoQXJncyk6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkxvbmdNZXRob2QpOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Mb25nTWV0aG9kV2l0aEFyZ3MpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PYmpNZXRob2QpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PYmpNZXRob2RXaXRo
QXJncyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhTZXF1ZW5jZUFyZyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk1ldGhvZFJldHVybmluZ1NlcXVlbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEVudW1BcmcpOgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5k
VGhyb3dzKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU2Vy
aWFsaXplZFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uT3B0aW9uc09iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk1ldGhvZFdpdGhFeGNlcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25DdXN0b21NZXRob2QpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25DdXN0b21NZXRob2RXaXRoQXJncyk6CisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkFkZEV2ZW50TGlzdGVuZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25SZW1vdmVFdmVudExpc3RlbmVy
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlw
dFN0YXRlVm9pZCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bldpdGhTY3JpcHRTdGF0ZU9iaik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbldpdGhTY3JpcHRTdGF0ZVZvaWRFeGNlcHRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0U3RhdGVPYmpFeGNlcHRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dEFuZFNjcmlwdFN0YXRlT2JqRXhjZXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3Jp
cHRTdGF0ZVdpdGhTcGFjZXMpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25XaXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrKToKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQXJnKToKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE5vbk9w
dGlvbmFsQXJnQW5kT3B0aW9uYWxBcmcpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRUd29PcHRpb25hbEFyZ3Mp
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
T3B0aW9uYWxTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJc1VuZGVmaW5lZCk6CisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0lz
TnVsbFN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhDYWxsYmFja0FyZyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOb25DYWxsYmFja0FyZ0FuZENhbGxiYWNrQXJnKToKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENhbGxi
YWNrQW5kT3B0aW9uYWxBcmcpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25Db25kaXRpb25hbE1ldGhvZDEpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbE1ldGhvZDIpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbE1ldGhvZDMpOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMSk6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRo
b2QyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zlcmxv
YWRlZE1ldGhvZDMpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25PdmVybG9hZGVkTWV0aG9kNCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q1KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDYpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kNyk6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q4KToKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhv
ZDkpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9h
ZGVkTWV0aG9kMTApOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25PdmVybG9hZGVkTWV0aG9kMTEpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25DbGFzc01ldGhvZFdpdGhDbGFtcCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhVbnNpZ25lZExvbmdTZXF1ZW5jZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblN0cmluZ0FycmF5RnVu
Y3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Eb21T
dHJpbmdMaXN0RnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25HZXRTVkdEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbkNvbnZlcnQxKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uQ29udmVydDIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25Db252ZXJ0NCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbkNvbnZlcnQ1KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uTXV0YWJsZVBvaW50RnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25JbW11dGFibGVQb2ludEZ1bmN0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3JhbmdlKToKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU3RyaWN0RnVuY3Rpb24pOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TdHJpY3RGdW5jdGlvbldpdGhTZXF1
ZW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblN0cmlj
dEZ1bmN0aW9uV2l0aEFycmF5KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uVmFyaWFkaWNTdHJpbmdNZXRob2QpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25WYXJpYWRpY0RvdWJsZU1ldGhvZCk6CisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZhcmlhZGljTm9kZU1ldGhvZCk6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkFueSk6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25GdW5jKToKKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25TZXRTaGFkb3cpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhTZXF1
ZW5jZUFyZyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0
aW9uTnVsbGFibGVBcnJheUFyZyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBlZGVmc1By
b3RvdHlwZUZ1bmN0aW9uRnVuY1dpdGhDbGFtcCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RU
eXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uSW1tdXRhYmxlUG9pbnRGdW5jdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uU3RyaW5nQXJyYXlGdW5j
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9u
U3RyaW5nQXJyYXlGdW5jdGlvbjIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlwZWRlZnNQ
cm90b3R5cGVGdW5jdGlvbkNhbGxXaXRoU2VxdWVuY2VUaGF0UmVxdWlyZXNJbmNsdWRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
RXhjZXB0aW9uKToKKyAgICAgICAgKiBicmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW06CisgICAg
ICAgIChKU0M6OkJpbmRpbmdzOjpjYWxsT2JqQ0ZhbGxiYWNrT2JqZWN0KToKKyAgICAgICAgKiBi
cmlkZ2UvcnVudGltZV9tZXRob2QuY3BwOgorICAgICAgICAoSlNDOjpjYWxsUnVudGltZU1ldGhv
ZCk6CisKIDIwMTQtMDMtMzAgIFhhYmllciBSb2RyaWd1ZXogQ2FsdmFyICA8Y2FsdmFyaXNAaWdh
bGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBbVGV4dHVyZU1hcHBlcl0gV2VpcmQgYnJpZ2h0bmVz
cyB3aXRoIHNvbWUgdmlkZW9zIHdpdGggYWNjZWxldGFyZWQgY29tcG9zaXRpbmcKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTmF2aWdhdG9yQ3VzdG9tLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTmF2aWdhdG9yQ3VzdG9tLmNwcAppbmRleCA5MmM2
MzZmLi5lNTA0ZGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05h
dmlnYXRvckN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOYXZp
Z2F0b3JDdXN0b20uY3BwCkBAIC01OSw3ICs1OSw3IEBAIEpTVmFsdWUgSlNOYXZpZ2F0b3I6Ondl
YmtpdEdldFVzZXJNZWRpYShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIHJldHVybiBqc1VuZGVm
aW5lZCgpOwogICAgIH0KIAotICAgIEpTTmF2aWdhdG9yKiBjYXN0ZWRUaGlzID0ganNEeW5hbWlj
Q2FzdDxKU05hdmlnYXRvcio+KGV4ZWMtPmhvc3RUaGlzVmFsdWUoKSk7CisgICAgSlNOYXZpZ2F0
b3IqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTTmF2aWdhdG9yKj4oZXhlYy0+dGhpc1Zh
bHVlKCkpOwogICAgIFJlZlB0cjxOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrPiBlcnJv
ckNhbGxiYWNrOwogICAgIGlmICghZXhlYy0+YXJndW1lbnQoMikuaXNVbmRlZmluZWRPck51bGwo
KSkgewogICAgICAgICBpZiAoIWV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDIpLmlzRnVuY3Rpb24o
KSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5FbGVt
ZW50RnVuY3Rpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxl
bWVudEZ1bmN0aW9ucy5jcHAKaW5kZXggNTBiYjQ2OC4uZDY1NzBiYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3Bw
CkBAIC0xNTQsNyArMTU0LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Y2FsbFBsdWdpbihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgQVNTRVJUKGNhbGxUeXBlID09IENhbGxU
eXBlSG9zdCk7CiAKICAgICAvLyBDYWxsIHRoZSBvYmplY3QuCi0gICAgSlNWYWx1ZSByZXN1bHQg
PSBjYWxsKGV4ZWMsIHNjcmlwdE9iamVjdCwgY2FsbFR5cGUsIGNhbGxEYXRhLCBleGVjLT5ob3N0
VGhpc1ZhbHVlKCksIGFyZ3VtZW50TGlzdCk7CisgICAgSlNWYWx1ZSByZXN1bHQgPSBjYWxsKGV4
ZWMsIHNjcmlwdE9iamVjdCwgY2FsbFR5cGUsIGNhbGxEYXRhLCBleGVjLT50aGlzVmFsdWUoKSwg
YXJndW1lbnRMaXN0KTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0KaW5kZXggNGE5YzEyYy4uZDE5M2Y3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTI3MDYsMTUgKzI3MDYsMTUgQEAg
c3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICB9IGVsc2UgewogICAgICAgICAgICAgICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiQ3VzdG9tUHJveHlUb0pTT2JqZWN0In0pIHsKLSAgICAgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgJGNsYXNzTmFtZSogY2FzdGVkVGhpcyA9IHRvJHtjbGFz
c05hbWV9KGV4ZWMtPmhvc3RUaGlzVmFsdWUoKS50b1RoaXMoZXhlYywgTm90U3RyaWN0TW9kZSkp
O1xuIik7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICRjbGFz
c05hbWUqIGNhc3RlZFRoaXMgPSB0byR7Y2xhc3NOYW1lfShleGVjLT50aGlzVmFsdWUoKS50b1Ro
aXMoZXhlYywgTm90U3RyaWN0TW9kZSkpO1xuIik7CiAgICAgICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpXG4iKTsKICAgICAg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKGV4ZWMpO1xuIik7CiAgICAgICAgICAgICAgICAgfSBlbHNpZiAoJGludGVyZmFj
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ildvcmtlckdsb2JhbFNjb3BlIn0pIHsKLSAgICAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJGNsYXNzTmFtZSogY2FzdGVkVGhp
cyA9IHRvJHtjbGFzc05hbWV9KGV4ZWMtPmhvc3RUaGlzVmFsdWUoKS50b1RoaXMoZXhlYywgTm90
U3RyaWN0TW9kZSkpO1xuIik7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgICRjbGFzc05hbWUqIGNhc3RlZFRoaXMgPSB0byR7Y2xhc3NOYW1lfShleGVjLT50aGlz
VmFsdWUoKS50b1RoaXMoZXhlYywgTm90U3RyaWN0TW9kZSkpO1xuIik7CiAgICAgICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykp
XG4iKTsKICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJl
dHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpO1xuIik7CiAgICAgICAgICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgSlNWYWx1ZSB0
aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7XG4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlz
VmFsdWUoKTtcbiIpOwogICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICAkY2xhc3NOYW1lKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDwkY2xhc3NOYW1lKj4odGhp
c1ZhbHVlKTtcbiIpOwogICAgICAgICAgICAgICAgICAgICBteSAkZG9tRnVuY3Rpb25OYW1lID0g
JGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWU7CiAgICAgICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpXG4iKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0Zsb2F0NjRBcnJh
eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNGbG9hdDY0
QXJyYXkuY3BwCmluZGV4IDg2NDMxZDUuLjFkNTkxODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0Zsb2F0NjRBcnJheS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTRmxvYXQ2NEFycmF5LmNwcApA
QCAtMjUxLDcgKzI1MSw3IEBAIEpTVmFsdWUgSlNGbG9hdDY0QXJyYXk6OmdldENvbnN0cnVjdG9y
KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiAKIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNGbG9hdDY0QXJyYXlQcm90b3R5cGVGdW5jdGlvbkZvbyhFeGVj
U3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1Zh
bHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBp
ZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyhKU0Zsb2F0NjRBcnJheTo6aW5mbygpKSkKICAgICAgICAg
cmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAgICAgSlNGbG9hdDY0QXJyYXkqIGNhc3Rl
ZFRoaXMgPSBqc0Nhc3Q8SlNGbG9hdDY0QXJyYXkqPihhc09iamVjdCh0aGlzVmFsdWUpKTsKQEAg
LTI2OSw3ICsyNjksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzRmxvYXQ2NEFy
cmF5UHJvdG90eXBlRnVuY3Rpb25Gb28oRXhlY1N0YXRlKiBleGVjKQogCiBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzRmxvYXQ2NEFycmF5UHJvdG90eXBlRnVuY3Rpb25TZXQoRXhlY1N0
YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1
ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgaWYg
KCF0aGlzVmFsdWUuaW5oZXJpdHMoSlNGbG9hdDY0QXJyYXk6OmluZm8oKSkpCiAgICAgICAgIHJl
dHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogICAgIEpTRmxvYXQ2NEFycmF5KiBjYXN0ZWRU
aGlzID0ganNDYXN0PEpTRmxvYXQ2NEFycmF5Kj4oYXNPYmplY3QodGhpc1ZhbHVlKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0
aXZlRE9NT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwCmluZGV4IDU0NGI0MGQuLmYyMDMzNjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3Rp
dmVET01PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwCkBAIC0xODQsNyArMTg0LDcgQEAgSlNWYWx1
ZSBKU1Rlc3RBY3RpdmVET01PYmplY3Q6OmdldENvbnN0cnVjdG9yKFZNJiB2bSwgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamUKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RB
Y3RpdmVET01PYmplY3RQcm90b3R5cGVGdW5jdGlvbkV4Y2l0aW5nRnVuY3Rpb24oRXhlY1N0YXRl
KiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgp
OworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0
QWN0aXZlRE9NT2JqZWN0KiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RBY3RpdmVE
T01PYmplY3QqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCiAg
ICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVF
cnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdEFjdGl2ZURPTU9iamVjdCIsICIuIiwg
ImV4Y2l0aW5nRnVuY3Rpb24iLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdEFjdGl2ZURPTU9i
amVjdCIpKTsKQEAgLTIwMyw3ICsyMDMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdEFjdGl2ZURPTU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uRXhjaXRpbmdGdW5jdAogCiBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEFjdGl2ZURPTU9iamVjdFByb3RvdHlw
ZUZ1bmN0aW9uUG9zdE1lc3NhZ2UoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhp
c1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0g
ZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0QWN0aXZlRE9NT2JqZWN0KiBjYXN0ZWRUaGlz
ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RBY3RpdmVET01PYmplY3QqPih0aGlzVmFsdWUpOwogICAg
IGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVy
cm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAi
LCAiVGVzdEFjdGl2ZURPTU9iamVjdCIsICIuIiwgInBvc3RNZXNzYWdlIiwgIiBvbiBpbnN0YW5j
ZXMgb2YgIiwgIlRlc3RBY3RpdmVET01PYmplY3QiKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5h
bWVkR2V0dGVyLmNwcAppbmRleCA3ZWVmNjMyLi5hMDIwNDg1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RD
dXN0b21OYW1lZEdldHRlci5jcHAKQEAgLTE3MCw3ICsxNzAsNyBAQCBKU1ZhbHVlIEpTVGVzdEN1
c3RvbU5hbWVkR2V0dGVyOjpnZXRDb25zdHJ1Y3RvcihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYgogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEN1c3RvbU5hbWVk
R2V0dGVyUHJvdG90eXBlRnVuY3Rpb25Bbm90aGVyRnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjKQog
ewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpT
VmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0Q3VzdG9tTmFt
ZWRHZXR0ZXIqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEN1c3RvbU5hbWVkR2V0
dGVyKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQogICAgICAg
ICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JT
dHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RDdXN0b21OYW1lZEdldHRlciIsICIuIiwgImFu
b3RoZXJGdW5jdGlvbiIsICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0Q3VzdG9tTmFtZWRHZXR0
ZXIiKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcAppbmRleCAwMjFjMjM3Li45NjllYmNhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
RXZlbnRUYXJnZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAKQEAgLTIxMCw3ICsyMTAsNyBAQCBKU1ZhbHVlIEpT
VGVzdEV2ZW50VGFyZ2V0OjpnZXRDb25zdHJ1Y3RvcihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QpCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0RXZlbnRU
YXJnZXRQcm90b3R5cGVGdW5jdGlvbkl0ZW0oRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFs
dWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1Zh
bHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0RXZlbnRUYXJnZXQqIGNhc3RlZFRo
aXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEV2ZW50VGFyZ2V0Kj4odGhpc1ZhbHVlKTsKICAgICBp
ZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJv
cihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwg
IlRlc3RFdmVudFRhcmdldCIsICIuIiwgIml0ZW0iLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVz
dEV2ZW50VGFyZ2V0IikpOwpAQCAtMjMxLDcgKzIzMSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0RXZlbnRUYXJnZXRQcm90b3R5cGVGdW5jdGlvbkl0ZW0oRXhlY1N0YXRl
KiBlCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0RXZlbnRUYXJnZXRQcm90
b3R5cGVGdW5jdGlvbkFkZEV2ZW50TGlzdGVuZXIoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpT
VmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhp
c1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0RXZlbnRUYXJnZXQqIGNhc3Rl
ZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEV2ZW50VGFyZ2V0Kj4odGhpc1ZhbHVlKTsKICAg
ICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVF
cnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwg
IiwgIlRlc3RFdmVudFRhcmdldCIsICIuIiwgImFkZEV2ZW50TGlzdGVuZXIiLCAiIG9uIGluc3Rh
bmNlcyBvZiAiLCAiVGVzdEV2ZW50VGFyZ2V0IikpOwpAQCAtMjQ2LDcgKzI0Niw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0RXZlbnRUYXJnZXRQcm90b3R5cGVGdW5jdGlv
bkFkZEV2ZW50TGlzdGVuZXIoCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
RXZlbnRUYXJnZXRQcm90b3R5cGVGdW5jdGlvblJlbW92ZUV2ZW50TGlzdGVuZXIoRXhlY1N0YXRl
KiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgp
OworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0
RXZlbnRUYXJnZXQqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEV2ZW50VGFyZ2V0
Kj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQogICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJp
bmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RFdmVudFRhcmdldCIsICIuIiwgInJlbW92ZUV2ZW50
TGlzdGVuZXIiLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdEV2ZW50VGFyZ2V0IikpOwpAQCAt
MjYxLDcgKzI2MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0RXZlbnRU
YXJnZXRQcm90b3R5cGVGdW5jdGlvblJlbW92ZUV2ZW50TGlzdGVuCiAKIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0RXZlbnRUYXJnZXRQcm90b3R5cGVGdW5jdGlvbkRpc3BhdGNo
RXZlbnQoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+
aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVl
KCk7CiAgICAgSlNUZXN0RXZlbnRUYXJnZXQqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpT
VGVzdEV2ZW50VGFyZ2V0Kj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRo
aXMpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGlu
Z3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RFdmVudFRhcmdldCIsICIu
IiwgImRpc3BhdGNoRXZlbnQiLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdEV2ZW50VGFyZ2V0
IikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEludGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAppbmRleCA4ZmVlMjgxLi40NzU2OTMxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJm
YWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0SW50ZXJmYWNlLmNwcApAQCAtNzkxLDcgKzc5MSw3IEBAIEpTVmFsdWUgSlNUZXN0SW50ZXJm
YWNlOjpnZXRDb25zdHJ1Y3RvcihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qp
CiAjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCiBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uSW1w
bGVtZW50c01ldGhvZDEoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVl
ID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+
dGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0SW50ZXJmYWNlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWlj
Q2FzdDxKU1Rlc3RJbnRlcmZhY2UqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2Fz
dGVkVGhpcykpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01C
aW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdEludGVyZmFjZSIs
ICIuIiwgImltcGxlbWVudHNNZXRob2QxIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RJbnRl
cmZhY2UiKSk7CkBAIC04MDYsNyArODA2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbkltcGxlbWVudHNNZXRob2QxKEUKICNp
ZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25JbXBsZW1l
bnRzTWV0aG9kMihFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBl
eGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlz
VmFsdWUoKTsKICAgICBKU1Rlc3RJbnRlcmZhY2UqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0
PEpTVGVzdEludGVyZmFjZSo+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRU
aGlzKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRp
bmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0SW50ZXJmYWNlIiwgIi4i
LCAiaW1wbGVtZW50c01ldGhvZDIiLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdEludGVyZmFj
ZSIpKTsKQEAgLTgzNSw3ICs4MzUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uSW1wbGVtZW50c01ldGhvZDIoRQogI2lmIEVO
QUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQogRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbkltcGxlbWVudHNN
ZXRob2QzKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMt
Pmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1
ZSgpOwogICAgIEpTVGVzdEludGVyZmFjZSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNU
ZXN0SW50ZXJmYWNlKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMp
KQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NU
eXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RJbnRlcmZhY2UiLCAiLiIsICJp
bXBsZW1lbnRzTWV0aG9kMyIsICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0SW50ZXJmYWNlIikp
OwpAQCAtODU3LDcgKzg1Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
SW50ZXJmYWNlQ29uc3RydWN0b3JGdW5jdGlvbkltcGxlbWVudHNNZXRob2Q0CiAjaWYgRU5BQkxF
KENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCiBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uU3VwcGxlbWVudGFsTWV0
aG9kMShFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5o
b3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUo
KTsKICAgICBKU1Rlc3RJbnRlcmZhY2UqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVz
dEludGVyZmFjZSo+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkK
ICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlw
ZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0SW50ZXJmYWNlIiwgIi4iLCAic3Vw
cGxlbWVudGFsTWV0aG9kMSIsICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0SW50ZXJmYWNlIikp
OwpAQCAtODcyLDcgKzg3Miw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25TdXBwbGVtZW50YWxNZXRob2QxCiAjaWYgRU5BQkxF
KENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCiBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uU3VwcGxlbWVudGFsTWV0
aG9kMihFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5o
b3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUo
KTsKICAgICBKU1Rlc3RJbnRlcmZhY2UqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVz
dEludGVyZmFjZSo+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkK
ICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlw
ZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0SW50ZXJmYWNlIiwgIi4iLCAic3Vw
cGxlbWVudGFsTWV0aG9kMiIsICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0SW50ZXJmYWNlIikp
OwpAQCAtOTAxLDcgKzkwMSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25TdXBwbGVtZW50YWxNZXRob2QyCiAjaWYgRU5BQkxF
KENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCiBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uU3VwcGxlbWVudGFsTWV0
aG9kMyhFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5o
b3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUo
KTsKICAgICBKU1Rlc3RJbnRlcmZhY2UqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVz
dEludGVyZmFjZSo+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkK
ICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlw
ZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0SW50ZXJmYWNlIiwgIi4iLCAic3Vw
cGxlbWVudGFsTWV0aG9kMyIsICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0SW50ZXJmYWNlIikp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCmluZGV4IDE1
NWM4MGMuLmE1M2NiNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lci5jcHAKQEAgLTE0Myw3ICsxNDMsNyBAQCBKU1ZhbHVlIEpTVGVzdE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXI6OmdldENvbnN0cnVjdG9yKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsbwogCiBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQ
cm90b3R5cGVGdW5jdGlvbk1ldGhvZChFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0
aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUg
PSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKiBj
YXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKj4o
dGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQogICAgICAgICByZXR1
cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmco
IkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIiwgIi4iLCAibWV0
aG9kIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIikp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T2JqLmNwcAppbmRleCA4MDBjMTY1Li4yYjZiOWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcApAQCAtMzI0NSw3
ICszMjQ1LDcgQEAgSlNWYWx1ZSBKU1Rlc3RPYmo6OmdldENvbnN0cnVjdG9yKFZNJiB2bSwgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZvaWRNZXRob2QoRXhlY1N0YXRlKiBleGVjKQog
ewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpT
VmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0
ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChV
TkxJS0VMWSghY2FzdGVkVGhpcykpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVz
dE9iaiIsICIuIiwgInZvaWRNZXRob2QiLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIp
KTsKQEAgLTMyNTcsNyArMzI1Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Wb2lkTWV0aG9kKEV4ZWNTdGF0ZSogZXhlCiAKIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Wb2lkTWV0
aG9kV2l0aEFyZ3MoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0g
ZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhp
c1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rl
c3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCiAgICAg
ICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJv
clN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9iaiIsICIuIiwgInZvaWRNZXRob2RXaXRo
QXJncyIsICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwpAQCAtMzI4MCw3ICszMjgw
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvblZvaWRNZXRob2RXaXRoQXJncyhFeGVjU3QKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkJ5dGVNZXRob2QoRXhlY1N0YXRlKiBleGVj
KQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAg
IEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBj
YXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlm
IChVTkxJS0VMWSghY2FzdGVkVGhpcykpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9y
KGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAi
VGVzdE9iaiIsICIuIiwgImJ5dGVNZXRob2QiLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9i
aiIpKTsKQEAgLTMyOTIsNyArMzI5Miw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25CeXRlTWV0aG9kKEV4ZWNTdGF0ZSogZXhlCiAKIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25CeXRl
TWV0aG9kV2l0aEFyZ3MoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVl
ID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+
dGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxK
U1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCiAg
ICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVF
cnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9iaiIsICIuIiwgImJ5dGVNZXRob2RX
aXRoQXJncyIsICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwpAQCAtMzMxNSw3ICsz
MzE1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbkJ5dGVNZXRob2RXaXRoQXJncyhFeGVjU3QKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9jdGV0TWV0aG9kKEV4ZWNTdGF0ZSog
ZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsK
KyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9i
aiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAg
ICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVF
cnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwg
IiwgIlRlc3RPYmoiLCAiLiIsICJvY3RldE1ldGhvZCIsICIgb24gaW5zdGFuY2VzIG9mICIsICJU
ZXN0T2JqIikpOwpAQCAtMzMyNyw3ICszMzI3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9jdGV0TWV0aG9kKEV4ZWNTdGF0ZSogZXgK
IAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk9jdGV0TWV0aG9kV2l0aEFyZ3MoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhp
c1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0g
ZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWlj
Q2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhp
cykpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5n
c1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9iaiIsICIuIiwgIm9jdGV0
TWV0aG9kV2l0aEFyZ3MiLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKQEAgLTMz
NTAsNyArMzM1MCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25PY3RldE1ldGhvZFdpdGhBcmdzKEV4ZWNTCiAKIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Mb25nTWV0aG9kKEV4ZWNT
dGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFs
dWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpT
VGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVl
KTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQogICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5
IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIsICJsb25nTWV0aG9kIiwgIiBvbiBpbnN0YW5jZXMgb2Yg
IiwgIlRlc3RPYmoiKSk7CkBAIC0zMzYyLDcgKzMzNjIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZChFeGVjU3RhdGUq
IGV4ZQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uTG9uZ01ldGhvZFdpdGhBcmdzKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVl
IHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1
ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3Rl
ZFRoaXMpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmlu
ZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIsICJs
b25nTWV0aG9kV2l0aEFyZ3MiLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKQEAg
LTMzODUsNyArMzM4NSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25Mb25nTWV0aG9kV2l0aEFyZ3MoRXhlY1N0CiAKIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PYmpNZXRob2QoRXhl
Y1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNW
YWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAg
SlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFs
dWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCiAgICAgICAgIHJldHVybiB0aHJv
d1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9u
bHkgY2FsbCAiLCAiVGVzdE9iaiIsICIuIiwgIm9iak1ldGhvZCIsICIgb24gaW5zdGFuY2VzIG9m
ICIsICJUZXN0T2JqIikpOwpAQCAtMzM5Nyw3ICszMzk3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9iak1ldGhvZChFeGVjU3RhdGUq
IGV4ZWMKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk9iak1ldGhvZFdpdGhBcmdzKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVl
IHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1
ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3Rl
ZFRoaXMpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmlu
ZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIsICJv
YmpNZXRob2RXaXRoQXJncyIsICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwpAQCAt
MzQyMCw3ICszNDIwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk9iak1ldGhvZFdpdGhBcmdzKEV4ZWNTdGEKIAogRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhTZXF1
ZW5jZUFyZyhFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVj
LT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFs
dWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9i
aio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKICAgICAgICAg
cmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3Ry
aW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0T2JqIiwgIi4iLCAibWV0aG9kV2l0aFNlcXVlbmNl
QXJnIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CkBAIC0zNDM3LDcgKzM0Mzcs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kV2l0aFNlcXVlbmNlQXJnKEV4ZQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kUmV0dXJuaW5nU2VxdWVuY2UoRXhl
Y1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNW
YWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAg
SlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFs
dWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCiAgICAgICAgIHJldHVybiB0aHJv
d1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9u
bHkgY2FsbCAiLCAiVGVzdE9iaiIsICIuIiwgIm1ldGhvZFJldHVybmluZ1NlcXVlbmNlIiwgIiBv
biBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CkBAIC0zNDU0LDcgKzM0NTQsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9k
UmV0dXJuaW5nU2VxdWVuY2UoRQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEVudW1BcmcoRXhlY1N0YXRlKiBleGVjKQog
ewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpT
VmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0
ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChV
TkxJS0VMWSghY2FzdGVkVGhpcykpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVz
dE9iaiIsICIuIiwgIm1ldGhvZFdpdGhFbnVtQXJnIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRl
c3RPYmoiKSk7CkBAIC0zNDczLDcgKzM0NzMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEVudW1BcmcoRXhlY1N0YQog
CiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93cyhFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0g
ICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1
ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRo
aXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElL
RUxZKCFjYXN0ZWRUaGlzKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywg
bWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0T2Jq
IiwgIi4iLCAibWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93cyIsICIgb24gaW5zdGFu
Y2VzIG9mICIsICJUZXN0T2JqIikpOwpAQCAtMzQ5Niw3ICszNDk2LDcgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFRoYXRSZXF1
aXJlc0FsbEFyZ3MKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvblNlcmlhbGl6ZWRWYWx1ZShFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNW
YWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlz
VmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBq
c0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFj
YXN0ZWRUaGlzKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURP
TUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0T2JqIiwgIi4i
LCAic2VyaWFsaXplZFZhbHVlIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CkBA
IC0zNTEzLDcgKzM1MTMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uU2VyaWFsaXplZFZhbHVlKEV4ZWNTdGF0ZQogCiBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3B0aW9uc09iamVj
dChFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0
VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsK
ICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRo
aXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKICAgICAgICAgcmV0dXJu
IHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJD
YW4gb25seSBjYWxsICIsICJUZXN0T2JqIiwgIi4iLCAib3B0aW9uc09iamVjdCIsICIgb24gaW5z
dGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwpAQCAtMzUzMyw3ICszNTMzLDcgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9wdGlvbnNPYmpl
Y3QoRXhlY1N0YXRlKgogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEV4Y2VwdGlvbihFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0g
ICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1
ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRo
aXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElL
RUxZKCFjYXN0ZWRUaGlzKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywg
bWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0T2Jq
IiwgIi4iLCAibWV0aG9kV2l0aEV4Y2VwdGlvbiIsICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0
T2JqIikpOwpAQCAtMzU0Nyw3ICszNTQ3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhFeGNlcHRpb24oRXhlY1MKIAog
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkN1
c3RvbU1ldGhvZChFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBl
eGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlz
VmFsdWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVz
dE9iaio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKICAgICAg
ICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9y
U3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0T2JqIiwgIi4iLCAiY3VzdG9tTWV0aG9kIiwg
IiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CkBAIC0zNTU3LDcgKzM1NTcsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ3Vz
dG9tTWV0aG9kKEV4ZWNTdGF0ZSogZQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tTWV0aG9kV2l0aEFyZ3MoRXhlY1N0YXRlKiBl
eGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwor
ICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2Jq
KiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAg
IGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVy
cm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAi
LCAiVGVzdE9iaiIsICIuIiwgImN1c3RvbU1ldGhvZFdpdGhBcmdzIiwgIiBvbiBpbnN0YW5jZXMg
b2YgIiwgIlRlc3RPYmoiKSk7CkBAIC0zNTY3LDcgKzM1NjcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tTWV0aG9kV2l0aEFy
Z3MoRXhlYwogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uQWRkRXZlbnRMaXN0ZW5lcihFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1
ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFs
dWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5
bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0
ZWRUaGlzKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJp
bmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0T2JqIiwgIi4iLCAi
YWRkRXZlbnRMaXN0ZW5lciIsICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwpAQCAt
MzU4Miw3ICszNTgyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkFkZEV2ZW50TGlzdGVuZXIoRXhlY1N0YXQKIAogRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblJlbW92ZUV2ZW50TGlz
dGVuZXIoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+
aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVl
KCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoq
Pih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCiAgICAgICAgIHJl
dHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmlu
ZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9iaiIsICIuIiwgInJlbW92ZUV2ZW50TGlzdGVuZXIi
LCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKQEAgLTM1OTcsNyArMzU5Nyw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25S
ZW1vdmVFdmVudExpc3RlbmVyKEV4ZWNTCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0U3RhdGVWb2lkKEV4ZWNTdGF0ZSog
ZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsK
KyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9i
aiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAg
ICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVF
cnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwg
IiwgIlRlc3RPYmoiLCAiLiIsICJ3aXRoU2NyaXB0U3RhdGVWb2lkIiwgIiBvbiBpbnN0YW5jZXMg
b2YgIiwgIlRlc3RPYmoiKSk7CkBAIC0zNjA5LDcgKzM2MDksNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdFN0YXRlVm9p
ZChFeGVjUwogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uV2l0aFNjcmlwdFN0YXRlT2JqKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1Zh
bHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNW
YWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpz
RHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNh
c3RlZFRoaXMpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9N
QmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIs
ICJ3aXRoU2NyaXB0U3RhdGVPYmoiLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsK
QEAgLTM2MjMsNyArMzYyMyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0U3RhdGVPYmooRXhlY1N0CiAKIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0
U3RhdGVWb2lkRXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNW
YWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4
ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nh
c3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMp
KQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NU
eXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIsICJ3aXRoU2Ny
aXB0U3RhdGVWb2lkRXhjZXB0aW9uIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7
CkBAIC0zNjM3LDcgKzM2MzcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdFN0YXRlVm9pZEV4Y2VwdAogCiBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlw
dFN0YXRlT2JqRXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNW
YWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4
ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nh
c3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMp
KQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NU
eXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIsICJ3aXRoU2Ny
aXB0U3RhdGVPYmpFeGNlcHRpb24iLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsK
QEAgLTM2NTQsNyArMzY1NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0U3RhdGVPYmpFeGNlcHRpCiAKIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dChFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFs
dWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVj
LT50aGlzVmFsdWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0
PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkK
ICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlw
ZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0T2JqIiwgIi4iLCAid2l0aFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQiLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKQEAg
LTM2NjksNyArMzY2OSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4CiAKIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1Zh
bHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNW
YWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpz
RHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNh
c3RlZFRoaXMpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9N
QmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIs
ICJ3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlIiwgIiBvbiBpbnN0YW5j
ZXMgb2YgIiwgIlRlc3RPYmoiKSk7CkBAIC0zNjg0LDcgKzM2ODQsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdEV4ZWN1
dGlvbkNvbnRleAogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZU9iakV4
Y2VwdGlvbihFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVj
LT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFs
dWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9i
aio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKICAgICAgICAg
cmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3Ry
aW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0T2JqIiwgIi4iLCAid2l0aFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRBbmRTY3JpcHRTdGF0ZU9iakV4Y2VwdGlvbiIsICIgb24gaW5zdGFuY2VzIG9mICIs
ICJUZXN0T2JqIikpOwpAQCAtMzcwNCw3ICszNzA0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRFeGVjdXRpb25Db250
ZXgKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVXaXRoU3BhY2VzKEV4
ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlz
VmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAg
IEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1Zh
bHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQogICAgICAgICByZXR1cm4gdGhy
b3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBv
bmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIsICJ3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFu
ZFNjcmlwdFN0YXRlV2l0aFNwYWNlcyIsICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikp
OwpAQCAtMzcyMSw3ICszNzIxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXgKIAogRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3Jp
cHRBcmd1bWVudHNBbmRDYWxsU3RhY2soRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUg
dGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVl
ID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5h
bWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVk
VGhpcykpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5k
aW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9iaiIsICIuIiwgIndp
dGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2siLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVz
dE9iaiIpKTsKQEAgLTM3MzQsNyArMzczNCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsCiAK
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoT3B0aW9uYWxBcmcoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhp
c1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0g
ZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWlj
Q2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhp
cykpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5n
c1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9iaiIsICIuIiwgIm1ldGhv
ZFdpdGhPcHRpb25hbEFyZyIsICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwpAQCAt
Mzc1Niw3ICszNzU2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEFyZyhFeGUKIAogRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOb25P
cHRpb25hbEFyZ0FuZE9wdGlvbmFsQXJnKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVl
IHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1
ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3Rl
ZFRoaXMpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmlu
ZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIsICJt
ZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRPcHRpb25hbEFyZyIsICIgb24gaW5zdGFuY2VzIG9m
ICIsICJUZXN0T2JqIikpOwpAQCAtMzc4Myw3ICszNzgzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOb25PcHRpb25h
bEFyZ0EKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0FuZFR3b09wdGlvbmFsQXJncyhFeGVjU3Rh
dGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVl
KCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBKU1Rl
c3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7
CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1U
eXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBj
YWxsICIsICJUZXN0T2JqIiwgIi4iLCAibWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kVHdvT3B0
aW9uYWxBcmdzIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CkBAIC0zODE4LDcg
KzM4MTgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uTWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQQogCiBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU3Ry
aW5nKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhv
c3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgp
OwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4o
dGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQogICAgICAgICByZXR1
cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmco
IkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIsICJtZXRob2RXaXRoT3B0aW9uYWxTdHJp
bmciLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKQEAgLTM4NDAsNyArMzg0MCw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoT3B0aW9uYWxTdHJpbmcoCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJc1Vu
ZGVmaW5lZChFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVj
LT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFs
dWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9i
aio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKICAgICAgICAg
cmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3Ry
aW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0T2JqIiwgIi4iLCAibWV0aG9kV2l0aE9wdGlvbmFs
U3RyaW5nSXNVbmRlZmluZWQiLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKQEAg
LTM4NTUsNyArMzg1NSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJCiAKIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0
aW9uYWxTdHJpbmdJc051bGxTdHJpbmcoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUg
dGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVl
ID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5h
bWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVk
VGhpcykpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5k
aW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9iaiIsICIuIiwgIm1l
dGhvZFdpdGhPcHRpb25hbFN0cmluZ0lzTnVsbFN0cmluZyIsICIgb24gaW5zdGFuY2VzIG9mICIs
ICJUZXN0T2JqIikpOwpAQCAtMzg3MCw3ICszODcwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFN0cmlu
Z0kKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk1ldGhvZFdpdGhDYWxsYmFja0FyZyhFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1
ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFs
dWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5
bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0
ZWRUaGlzKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJp
bmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0T2JqIiwgIi4iLCAi
bWV0aG9kV2l0aENhbGxiYWNrQXJnIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7
CkBAIC0zODg3LDcgKzM4ODcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENhbGxiYWNrQXJnKEV4ZQogCiBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0
aE5vbkNhbGxiYWNrQXJnQW5kQ2FsbGJhY2tBcmcoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpT
VmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhp
c1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0g
anNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSgh
Y2FzdGVkVGhpcykpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VE
T01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9iaiIsICIu
IiwgIm1ldGhvZFdpdGhOb25DYWxsYmFja0FyZ0FuZENhbGxiYWNrQXJnIiwgIiBvbiBpbnN0YW5j
ZXMgb2YgIiwgIlRlc3RPYmoiKSk7CkBAIC0zOTA3LDcgKzM5MDcsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE5vbkNh
bGxiYWNrQXJnQQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENhbGxiYWNrQW5kT3B0aW9uYWxBcmcoRXhlY1N0YXRlKiBl
eGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwor
ICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2Jq
KiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAg
IGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVy
cm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAi
LCAiVGVzdE9iaiIsICIuIiwgIm1ldGhvZFdpdGhDYWxsYmFja0FuZE9wdGlvbmFsQXJnIiwgIiBv
biBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CkBAIC0zOTQ5LDcgKzM5NDksNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25TdGF0
aWNNZXRob2RXaXRoQ2FsbGJhYwogI2lmIEVOQUJMRShDb25kaXRpb24xKQogRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsTWV0
aG9kMShFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5o
b3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUo
KTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+
KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKICAgICAgICAgcmV0
dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5n
KCJDYW4gb25seSBjYWxsICIsICJUZXN0T2JqIiwgIi4iLCAiY29uZGl0aW9uYWxNZXRob2QxIiwg
IiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CkBAIC0zOTY0LDcgKzM5NjQsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29u
ZGl0aW9uYWxNZXRob2QxKEV4ZWNTdAogI2lmIEVOQUJMRShDb25kaXRpb24xKSAmJiBFTkFCTEUo
Q29uZGl0aW9uMikKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25Db25kaXRpb25hbE1ldGhvZDIoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpT
VmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhp
c1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0g
anNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSgh
Y2FzdGVkVGhpcykpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VE
T01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9iaiIsICIu
IiwgImNvbmRpdGlvbmFsTWV0aG9kMiIsICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikp
OwpAQCAtMzk3OSw3ICszOTc5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsTWV0aG9kMihFeGVjU3QKICNpZiBFTkFC
TEUoQ29uZGl0aW9uMSkgfHwgRU5BQkxFKENvbmRpdGlvbjIpCiBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxNZXRob2QzKEV4
ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlz
VmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAg
IEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1Zh
bHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQogICAgICAgICByZXR1cm4gdGhy
b3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBv
bmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIsICJjb25kaXRpb25hbE1ldGhvZDMiLCAiIG9uIGlu
c3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKQEAgLTM5OTMsNyArMzk5Myw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25h
bE1ldGhvZDMoRXhlY1N0CiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDEoRXhlY1N0YXRlKiBleGVj
KQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAg
IEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBj
YXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlm
IChVTkxJS0VMWSghY2FzdGVkVGhpcykpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9y
KGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAi
VGVzdE9iaiIsICIuIiwgIm92ZXJsb2FkZWRNZXRob2QiLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAi
VGVzdE9iaiIpKTsKQEAgLTQwMTMsNyArNDAxMyw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDEo
CiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDIoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFs
dWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1Zh
bHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNE
eW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2Fz
dGVkVGhpcykpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01C
aW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9iaiIsICIuIiwg
Im92ZXJsb2FkZWRNZXRob2QiLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKQEAg
LTQwNDAsNyArNDA0MCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDIoCiAKIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zlcmxv
YWRlZE1ldGhvZDMoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0g
ZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhp
c1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rl
c3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCiAgICAg
ICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJv
clN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9iaiIsICIuIiwgIm92ZXJsb2FkZWRNZXRo
b2QiLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKQEAgLTQwNTcsNyArNDA1Nyw3
IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDMoCiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDQoRXhl
Y1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNW
YWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAg
SlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFs
dWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCiAgICAgICAgIHJldHVybiB0aHJv
d1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9u
bHkgY2FsbCAiLCAiVGVzdE9iaiIsICIuIiwgIm92ZXJsb2FkZWRNZXRob2QiLCAiIG9uIGluc3Rh
bmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKQEAgLTQwNzQsNyArNDA3NCw3IEBAIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zlcmxv
YWRlZE1ldGhvZDQoCiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDUoRXhlY1N0YXRlKiBleGVjKQog
ewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpT
VmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0
ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChV
TkxJS0VMWSghY2FzdGVkVGhpcykpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVz
dE9iaiIsICIuIiwgIm92ZXJsb2FkZWRNZXRob2QiLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVz
dE9iaiIpKTsKQEAgLTQwOTEsNyArNDA5MSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDUoCiAK
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDYoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUg
dGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVl
ID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5h
bWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVk
VGhpcykpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5k
aW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9iaiIsICIuIiwgIm92
ZXJsb2FkZWRNZXRob2QiLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKQEAgLTQx
MDgsNyArNDEwOCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDYoCiAKIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRl
ZE1ldGhvZDcoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhl
Yy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1Zh
bHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RP
YmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCiAgICAgICAg
IHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0
cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9iaiIsICIuIiwgIm92ZXJsb2FkZWRNZXRob2Qi
LCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKQEAgLTQxMjUsNyArNDEyNSw3IEBA
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDcoCiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDgoRXhlY1N0
YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1
ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNU
ZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUp
OwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCiAgICAgICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkg
Y2FsbCAiLCAiVGVzdE9iaiIsICIuIiwgIm92ZXJsb2FkZWRNZXRob2QiLCAiIG9uIGluc3RhbmNl
cyBvZiAiLCAiVGVzdE9iaiIpKTsKQEAgLTQxNDIsNyArNDE0Miw3IEBAIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRl
ZE1ldGhvZDgoCiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDkoRXhlY1N0YXRlKiBleGVjKQogewot
ICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFs
dWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRU
aGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJ
S0VMWSghY2FzdGVkVGhpcykpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMs
IG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9i
aiIsICIuIiwgIm92ZXJsb2FkZWRNZXRob2QiLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9i
aiIpKTsKQEAgLTQxNTksNyArNDE1OSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDkoCiAKIHN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uT3ZlcmxvYWRlZE1ldGhvZDEwKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRo
aXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9
IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1p
Y0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRo
aXMpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGlu
Z3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIsICJvdmVy
bG9hZGVkTWV0aG9kIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CkBAIC00MTc2
LDcgKzQxNzYsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QxMAogCiBzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRN
ZXRob2QxMShFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVj
LT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFs
dWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9i
aio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKICAgICAgICAg
cmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3Ry
aW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0T2JqIiwgIi4iLCAib3ZlcmxvYWRlZE1ldGhvZCIs
ICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwpAQCAtNDMwMSw3ICs0MzAxLDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9u
T3ZlcmxvYWRlZE1ldGhvZDEoRXhlY1MKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aENsYW1wKEV4ZWNTdGF0ZSog
ZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsK
KyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9i
aiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAg
ICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVF
cnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwg
IiwgIlRlc3RPYmoiLCAiLiIsICJjbGFzc01ldGhvZFdpdGhDbGFtcCIsICIgb24gaW5zdGFuY2Vz
IG9mICIsICJUZXN0T2JqIikpOwpAQCAtNDMzMSw3ICs0MzMxLDcgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aENs
YW1wKEV4ZWMKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk1ldGhvZFdpdGhVbnNpZ25lZExvbmdTZXF1ZW5jZShFeGVjU3RhdGUqIGV4ZWMp
CiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAg
SlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBKU1Rlc3RPYmoqIGNh
c3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAgICAgaWYg
KFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Io
ZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJU
ZXN0T2JqIiwgIi4iLCAibWV0aG9kV2l0aFVuc2lnbmVkTG9uZ1NlcXVlbmNlIiwgIiBvbiBpbnN0
YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CkBAIC00MzQ4LDcgKzQzNDgsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFVu
c2lnbmVkTG9uZ1NlcQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uU3RyaW5nQXJyYXlGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0g
ICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1
ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRo
aXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElL
RUxZKCFjYXN0ZWRUaGlzKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywg
bWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0T2Jq
IiwgIi4iLCAic3RyaW5nQXJyYXlGdW5jdGlvbiIsICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0
T2JqIikpOwpAQCAtNDM2OCw3ICs0MzY4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblN0cmluZ0FycmF5RnVuY3Rpb24oRXhlY1MKIAog
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkRv
bVN0cmluZ0xpc3RGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlz
VmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBl
eGVjLT50aGlzVmFsdWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWND
YXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlz
KSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdz
VHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0T2JqIiwgIi4iLCAiZG9tU3Ry
aW5nTGlzdEZ1bmN0aW9uIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CkBAIC00
Mzg4LDcgKzQzODgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uRG9tU3RyaW5nTGlzdEZ1bmN0aW9uKEV4ZQogCiBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uR2V0U1ZHRG9jdW1lbnQo
RXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRo
aXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAg
ICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlz
VmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCiAgICAgICAgIHJldHVybiB0
aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2Fu
IG9ubHkgY2FsbCAiLCAiVGVzdE9iaiIsICIuIiwgImdldFNWR0RvY3VtZW50IiwgIiBvbiBpbnN0
YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CkBAIC00NDA1LDcgKzQ0MDUsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uR2V0U1ZHRG9jdW1l
bnQoRXhlY1N0YXRlKgogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uQ29udmVydDEoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUg
dGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVl
ID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5h
bWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVk
VGhpcykpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5k
aW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9iaiIsICIuIiwgImNv
bnZlcnQxIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CkBAIC00NDIyLDcgKzQ0
MjIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uQ29udmVydDEoRXhlY1N0YXRlKiBleGVjKQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDIoRXhlY1N0YXRlKiBleGVj
KQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAg
IEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBj
YXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlm
IChVTkxJS0VMWSghY2FzdGVkVGhpcykpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9y
KGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAi
VGVzdE9iaiIsICIuIiwgImNvbnZlcnQyIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoi
KSk7CkBAIC00NDM5LDcgKzQ0MzksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDIoRXhlY1N0YXRlKiBleGVjKQogCiBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVy
dDQoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9z
dFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7
CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0
aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCiAgICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygi
Q2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9iaiIsICIuIiwgImNvbnZlcnQ0IiwgIiBvbiBpbnN0YW5j
ZXMgb2YgIiwgIlRlc3RPYmoiKSk7CkBAIC00NDU2LDcgKzQ0NTYsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDQoRXhlY1N0
YXRlKiBleGVjKQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uQ29udmVydDUoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhp
c1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0g
ZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWlj
Q2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhp
cykpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5n
c1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9iaiIsICIuIiwgImNvbnZl
cnQ1IiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CkBAIC00NDczLDcgKzQ0NzMs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uQ29udmVydDUoRXhlY1N0YXRlKiBleGVjKQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTXV0YWJsZVBvaW50RnVuY3Rpb24oRXhlY1N0
YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1
ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgSlNU
ZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUp
OwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCiAgICAgICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkg
Y2FsbCAiLCAiVGVzdE9iaiIsICIuIiwgIm11dGFibGVQb2ludEZ1bmN0aW9uIiwgIiBvbiBpbnN0
YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CkBAIC00NDg1LDcgKzQ0ODUsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTXV0YWJsZVBvaW50
RnVuY3Rpb24oRXhlYwogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uSW1tdXRhYmxlUG9pbnRGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMpCiB7
Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNW
YWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3Rl
ZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVO
TElLRUxZKCFjYXN0ZWRUaGlzKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhl
YywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0
T2JqIiwgIi4iLCAiaW1tdXRhYmxlUG9pbnRGdW5jdGlvbiIsICIgb24gaW5zdGFuY2VzIG9mICIs
ICJUZXN0T2JqIikpOwpAQCAtNDQ5Nyw3ICs0NDk3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkltbXV0YWJsZVBvaW50RnVuY3Rpb24o
RXgKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk9yYW5nZShFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBl
eGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlz
VmFsdWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVz
dE9iaio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKICAgICAg
ICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9y
U3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0T2JqIiwgIi4iLCAib3JhbmdlIiwgIiBvbiBp
bnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CkBAIC00NTA5LDcgKzQ1MDksNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3JhbmdlKEV4
ZWNTdGF0ZSogZXhlYykKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvblN0cmljdEZ1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBK
U1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRo
aXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9
IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFko
IWNhc3RlZFRoaXMpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtl
RE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAi
LiIsICJzdHJpY3RGdW5jdGlvbiIsICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwpA
QCAtNDUzNSw3ICs0NTM1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvblN0cmljdEZ1bmN0aW9uKEV4ZWNTdGF0ZSoKIAogRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblN0cmljdEZ1bmN0
aW9uV2l0aFNlcXVlbmNlKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1
ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMt
PnRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8
SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQog
ICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBl
RXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIsICJzdHJpY3RGdW5j
dGlvbldpdGhTZXF1ZW5jZSIsICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwpAQCAt
NDU2MCw3ICs0NTYwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvblN0cmljdEZ1bmN0aW9uV2l0aFNlcXVlbmMKIAogRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblN0cmljdEZ1bmN0aW9u
V2l0aEFycmF5KEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4
ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNW
YWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0
T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQogICAgICAg
ICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JT
dHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIsICJzdHJpY3RGdW5jdGlvbldp
dGhBcnJheSIsICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwpAQCAtNDU4NSw3ICs0
NTg1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvblN0cmljdEZ1bmN0aW9uV2l0aEFycmF5KEUKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZhcmlhZGljU3RyaW5nTWV0aG9kKEV4
ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlz
VmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAg
IEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1Zh
bHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQogICAgICAgICByZXR1cm4gdGhy
b3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBv
bmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIsICJ2YXJpYWRpY1N0cmluZ01ldGhvZCIsICIgb24g
aW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwpAQCAtNDYwNSw3ICs0NjA1LDcgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZhcmlhZGlj
U3RyaW5nTWV0aG9kKEV4ZWMKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvblZhcmlhZGljRG91YmxlTWV0aG9kKEV4ZWNTdGF0ZSogZXhlYykK
IHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBK
U1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2Fz
dGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAo
VU5MSUtFTFkoIWNhc3RlZFRoaXMpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihl
eGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRl
c3RPYmoiLCAiLiIsICJ2YXJpYWRpY0RvdWJsZU1ldGhvZCIsICIgb24gaW5zdGFuY2VzIG9mICIs
ICJUZXN0T2JqIikpOwpAQCAtNDYyNSw3ICs0NjI1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZhcmlhZGljRG91YmxlTWV0aG9kKEV4
ZWMKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvblZhcmlhZGljTm9kZU1ldGhvZChFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0
aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUg
PSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFt
aWNDYXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRU
aGlzKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRp
bmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0T2JqIiwgIi4iLCAidmFy
aWFkaWNOb2RlTWV0aG9kIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CkBAIC00
NjQ4LDcgKzQ2NDgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uVmFyaWFkaWNOb2RlTWV0aG9kKEV4ZWNTdAogCiBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQW55KEV4ZWNTdGF0ZSog
ZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsK
KyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9i
aiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAg
ICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVF
cnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwg
IiwgIlRlc3RPYmoiLCAiLiIsICJhbnkiLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RUeXBlZGVmcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0VHlwZWRlZnMuY3BwCmluZGV4IDk0MzBmYzkuLmJhYWE1MzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5
cGVkZWZzLmNwcApAQCAtNTA1LDcgKzUwNSw3IEBAIEpTVmFsdWUgSlNUZXN0VHlwZWRlZnM6Omdl
dENvbnN0cnVjdG9yKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIAogRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9u
RnVuYyhFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5o
b3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUo
KTsKICAgICBKU1Rlc3RUeXBlZGVmcyogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0
VHlwZWRlZnMqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCiAg
ICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVF
cnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdFR5cGVkZWZzIiwgIi4iLCAiZnVuYyIs
ICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0VHlwZWRlZnMiKSk7CkBAIC01MjcsNyArNTI3LDcg
QEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1
bmN0aW9uRnVuYyhFeGVjU3RhdGUqIGV4ZWMKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uU2V0U2hhZG93KEV4ZWNTdGF0ZSogZXhl
YykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAg
ICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdFR5cGVk
ZWZzKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RUeXBlZGVmcyo+KHRoaXNWYWx1
ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKICAgICAgICAgcmV0dXJuIHRocm93
Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25s
eSBjYWxsICIsICJUZXN0VHlwZWRlZnMiLCAiLiIsICJzZXRTaGFkb3ciLCAiIG9uIGluc3RhbmNl
cyBvZiAiLCAiVGVzdFR5cGVkZWZzIikpOwpAQCAtNTY4LDcgKzU2OCw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblNldFNoYWRv
dyhFeGVjU3RhdGUqCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0VHlwZWRl
ZnNQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhTZXF1ZW5jZUFyZyhFeGVjU3RhdGUqIGV4ZWMp
CiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAg
SlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBKU1Rlc3RUeXBlZGVm
cyogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0VHlwZWRlZnMqPih0aGlzVmFsdWUp
OwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCiAgICAgICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkg
Y2FsbCAiLCAiVGVzdFR5cGVkZWZzIiwgIi4iLCAibWV0aG9kV2l0aFNlcXVlbmNlQXJnIiwgIiBv
biBpbnN0YW5jZXMgb2YgIiwgIlRlc3RUeXBlZGVmcyIpKTsKQEAgLTU4NSw3ICs1ODUsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoU2VxdWVuY2VBcgogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25OdWxsYWJsZUFycmF5QXJnKEV4ZWNTdGF0ZSog
ZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsK
KyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdFR5
cGVkZWZzKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RUeXBlZGVmcyo+KHRoaXNW
YWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKICAgICAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4g
b25seSBjYWxsICIsICJUZXN0VHlwZWRlZnMiLCAiLiIsICJudWxsYWJsZUFycmF5QXJnIiwgIiBv
biBpbnN0YW5jZXMgb2YgIiwgIlRlc3RUeXBlZGVmcyIpKTsKQEAgLTYwMiw3ICs2MDIsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rp
b25OdWxsYWJsZUFycmF5QXJnKEV4ZQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25GdW5jV2l0aENsYW1wKEV4ZWNTdGF0ZSogZXhl
YykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAg
ICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdFR5cGVk
ZWZzKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RUeXBlZGVmcyo+KHRoaXNWYWx1
ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKICAgICAgICAgcmV0dXJuIHRocm93
Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25s
eSBjYWxsICIsICJUZXN0VHlwZWRlZnMiLCAiLiIsICJmdW5jV2l0aENsYW1wIiwgIiBvbiBpbnN0
YW5jZXMgb2YgIiwgIlRlc3RUeXBlZGVmcyIpKTsKQEAgLTYzOSw3ICs2MzksNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25GdW5j
V2l0aENsYW1wKEV4ZWNTdAogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5
cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25JbW11dGFibGVQb2ludEZ1bmN0aW9uKEV4ZWNTdGF0ZSog
ZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsK
KyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdFR5
cGVkZWZzKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RUeXBlZGVmcyo+KHRoaXNW
YWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKICAgICAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4g
b25seSBjYWxsICIsICJUZXN0VHlwZWRlZnMiLCAiLiIsICJpbW11dGFibGVQb2ludEZ1bmN0aW9u
IiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RUeXBlZGVmcyIpKTsKQEAgLTY1MSw3ICs2NTEs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBl
RnVuY3Rpb25JbW11dGFibGVQb2ludEZ1bmN0aQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25TdHJpbmdBcnJheUZ1bmN0aW9uKEV4
ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlz
VmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAg
IEpTVGVzdFR5cGVkZWZzKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RUeXBlZGVm
cyo+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKICAgICAgICAg
cmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3Ry
aW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0VHlwZWRlZnMiLCAiLiIsICJzdHJpbmdBcnJheUZ1
bmN0aW9uIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RUeXBlZGVmcyIpKTsKQEAgLTY3MSw3
ICs2NzEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5cGVkZWZzUHJv
dG90eXBlRnVuY3Rpb25TdHJpbmdBcnJheUZ1bmN0aW9uKAogCiBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25TdHJpbmdBcnJheUZ1bmN0
aW9uMihFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5o
b3N0VGhpc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUo
KTsKICAgICBKU1Rlc3RUeXBlZGVmcyogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0
VHlwZWRlZnMqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCiAg
ICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVF
cnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdFR5cGVkZWZzIiwgIi4iLCAic3RyaW5n
QXJyYXlGdW5jdGlvbjIiLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdFR5cGVkZWZzIikpOwpA
QCAtNjkxLDcgKzY5MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0VHlw
ZWRlZnNQcm90b3R5cGVGdW5jdGlvblN0cmluZ0FycmF5RnVuY3Rpb24yCiAKIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbkNhbGxXaXRo
U2VxdWVuY2VUaGF0UmVxdWlyZXNJbmNsdWRlKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1Zh
bHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIHRoaXNW
YWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdFR5cGVkZWZzKiBjYXN0ZWRUaGlz
ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RUeXBlZGVmcyo+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVO
TElLRUxZKCFjYXN0ZWRUaGlzKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhl
YywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0
VHlwZWRlZnMiLCAiLiIsICJjYWxsV2l0aFNlcXVlbmNlVGhhdFJlcXVpcmVzSW5jbHVkZSIsICIg
b24gaW5zdGFuY2VzIG9mICIsICJUZXN0VHlwZWRlZnMiKSk7CkBAIC03MDgsNyArNzA4LDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0
aW9uQ2FsbFdpdGhTZXF1ZW5jZVRoYXQKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEV4Y2VwdGlvbihFeGVjU3Rh
dGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVl
KCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBKU1Rl
c3RUeXBlZGVmcyogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0VHlwZWRlZnMqPih0
aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCiAgICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygi
Q2FuIG9ubHkgY2FsbCAiLCAiVGVzdFR5cGVkZWZzIiwgIi4iLCAibWV0aG9kV2l0aEV4Y2VwdGlv
biIsICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0VHlwZWRlZnMiKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0KaW5kZXggYWFiMWVlZC4uMzcyODYyMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbQpAQCAtMjIxLDcgKzIy
MSw3IEBAIHZvaWQgT2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpwdXQoSlNDZWxsKiwgRXhlY1N0YXRl
KiwgUHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQCiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNhbGxPYmpDRmFsbGJhY2tPYmplY3QoRXhlY1N0YXRlKiBleGVjKQogewot
ICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIEpTVmFs
dWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgaWYgKCF0aGlzVmFsdWUuaW5o
ZXJpdHMoT2JqQ1J1bnRpbWVPYmplY3Q6OmluZm8oKSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKGV4ZWMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVu
dGltZV9tZXRob2QuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNw
cAppbmRleCBjZjk4ODQzLi41NGQzNjEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcnVudGltZV9tZXRob2QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1l
X21ldGhvZC5jcHAKQEAgLTgyLDcgKzgyLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY2FsbFJ1bnRpbWVNZXRob2QoRXhlY1N0YXRlKiBleGVjKQogCiAgICAgUmVmUHRy
PEluc3RhbmNlPiBpbnN0YW5jZTsKIAotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9z
dFRoaXNWYWx1ZSgpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7
CiAgICAgaWYgKHRoaXNWYWx1ZS5pbmhlcml0cyhSdW50aW1lT2JqZWN0OjppbmZvKCkpKSB7CiAg
ICAgICAgIFJ1bnRpbWVPYmplY3QqIHJ1bnRpbWVPYmplY3QgPSBzdGF0aWNfY2FzdDxSdW50aW1l
T2JqZWN0Kj4oYXNPYmplY3QodGhpc1ZhbHVlKSk7CiAgICAgICAgIGluc3RhbmNlID0gcnVudGlt
ZU9iamVjdC0+Z2V0SW50ZXJuYWxJbnN0YW5jZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGM0OGZkZTUuLjli
NmFlNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxNC0wMy0zMSAgRMOhbmllbCBC
w6F0eWFpICA8ZGJhdHlhaS51LXN6ZWdlZEBwYXJ0bmVyLnNhbXN1bmcuY29tPgorCisgICAgICAg
IFJlbW92ZSBob3N0VGhpc1JlZ2lzdGVyKCkgYW5kIGhvc3RUaGlzVmFsdWUoKQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwODk1CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgR2VvZmZyZXkgR2FyZW4uCisKKyAgICAgICAgUmVtb3ZlZCBob3N0VGhpc1Jl
Z2lzdGVyKCkgYW5kIGhvc3RUaGlzVmFsdWUoKSBhbmQgaW5zdGVhZCB1c2UgdGhpc0FyZ3VtZW50
T2Zmc2V0KCkgYW5kIHRoaXNWYWx1ZSgpIHJlc3BlY3RpdmVseS4KKworICAgICAgICAqIFdlYlBy
b2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
Y2FsbE1ldGhvZCk6CisKIDIwMTQtMDMtMzAgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29t
PgogCiAgICAgICAgIFtDb2NvYV0gQWRkIGFuIG9yaWdpbmF0aW5nV2ViVmlldyBwcm9wZXJ0eSB0
byBfV0tEb3dubG9hZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL05ldHNjYXBlL0pTTlBNZXRob2QuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuY3BwCmluZGV4IGQ4MTZjZGMuLjU3NmFkM2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05Q
TWV0aG9kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvSlNOUE1ldGhvZC5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY2FsbE1ldGhvZChFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSlNOUE1l
dGhvZCoganNOUE1ldGhvZCA9IGpzQ2FzdDxKU05QTWV0aG9kKj4oZXhlYy0+Y2FsbGVlKCkpOwog
Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgSlNW
YWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKIAogICAgIC8vIENoZWNrIGlmIHdl
J3JlIGNhbGxpbmcgYSBtZXRob2Qgb24gdGhlIHBsdWctaW4gc2NyaXB0IG9iamVjdC4KICAgICBp
ZiAodGhpc1ZhbHVlLmluaGVyaXRzKEpTSFRNTEVsZW1lbnQ6OmluZm8oKSkpIHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>