<?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>130103</bug_id>
          
          <creation_ts>2014-03-11 17:05:20 -0700</creation_ts>
          <short_desc>Improve dom error messages</short_desc>
          <delta_ts>2014-03-14 13:12:11 -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>New Bugs</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="Oliver Hunt">oliver</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          <cc>alecflett</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jsbell</cc>
    
    <cc>kling</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>989464</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2014-03-11 17:05:20 -0700</bug_when>
    <thetext>Improve dom error messages</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989465</commentid>
    <comment_count>1</comment_count>
      <attachid>226450</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2014-03-11 17:07:23 -0700</bug_when>
    <thetext>Created attachment 226450
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989471</commentid>
    <comment_count>2</comment_count>
      <attachid>226450</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-03-11 17:27:59 -0700</bug_when>
    <thetext>Comment on attachment 226450
Patch

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

&gt; LayoutTests/svg/dom/SVGLengthList-basics-expected.txt:17
&gt; +PASS text1.x.baseVal.initialize(30) threw exception TypeError: Argument 1 (&apos;item&apos;) to impl.initialize must be an instance of SVGLength.
&gt; +PASS text1.x.baseVal.initialize(&apos;aString&apos;) threw exception TypeError: Argument 1 (&apos;item&apos;) to impl.initialize must be an instance of SVGLength.
&gt; +PASS text1.x.baseVal.initialize(text1) threw exception TypeError: Argument 1 (&apos;item&apos;) to impl.initialize must be an instance of SVGLength.

These messages don’t look so good. Where does the “impl” in “impl.initialize” come from?

&gt; LayoutTests/svg/dom/SVGMatrix-expected.txt:97
&gt; +PASS matrix.multiply(true) threw exception TypeError: Argument 1 (&apos;secondMatrix&apos;) to podImpl.multiply must be an instance of SVGMatrix.
&gt; +PASS matrix.multiply(2) threw exception TypeError: Argument 1 (&apos;secondMatrix&apos;) to podImpl.multiply must be an instance of SVGMatrix.
&gt; +PASS matrix.multiply(&apos;aString&apos;) threw exception TypeError: Argument 1 (&apos;secondMatrix&apos;) to podImpl.multiply must be an instance of SVGMatrix.
&gt; +PASS matrix.multiply(svgElement) threw exception TypeError: Argument 1 (&apos;secondMatrix&apos;) to podImpl.multiply must be an instance of SVGMatrix.

Same question about podImpl.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989474</commentid>
    <comment_count>3</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-03-11 17:37:30 -0700</bug_when>
    <thetext>This looks like it will bloat our binaries. We should have a function that builds the error messages from its unique parts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990568</commentid>
    <comment_count>4</comment_count>
      <attachid>226735</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2014-03-14 11:08:36 -0700</bug_when>
    <thetext>Created attachment 226735
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990606</commentid>
    <comment_count>5</comment_count>
      <attachid>226735</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-03-14 12:24:13 -0700</bug_when>
    <thetext>Comment on attachment 226735
Patch

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

r=me, please fix Windows build.

&gt; Source/JavaScriptCore/runtime/Error.h:73
&gt; +    inline EncodedJSValue throwVMTypeError(ExecState* exec, String errorMessage) { return JSValue::encode(throwTypeError(exec, errorMessage)); }

&apos;errorMessage&apos; will have unnecessary ref count churn here.

&gt; Source/WebCore/bindings/js/JSDOMBinding.h:651
&gt; +#define makeDOMBindingsTypeErrorString(...) makeDOMBindingsTypeErrorStringInternal(__VA_ARGS__, (const char*)0)

0-&gt;nullptr</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990625</commentid>
    <comment_count>6</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2014-03-14 13:12:11 -0700</bug_when>
    <thetext>Committed r165640: &lt;http://trac.webkit.org/changeset/165640&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226450</attachid>
            <date>2014-03-11 17:07:23 -0700</date>
            <delta_ts>2014-03-14 11:08:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-130103-20140311170651.patch</filename>
            <type>text/plain</type>
            <size>229812</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1NDUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
OGJiMmIxMjI5OTg3NWNkNWU4MDBkNDc3NjUyNDM5NzQ1Y2FmYmY3Li4yZmQ1YzUxOGFiYTQ1ZDFj
Y2UzYWU3Y2FkZjgzODAzN2M2ZmE4ZDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxNC0wMy0xMSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgor
CisgICAgICAgIEltcHJvdmUgZG9tIGVycm9yIG1lc3NhZ2VzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzAxMDMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbmV3IGhlbHBlciBmdW5jdGlvbi4KKwor
ICAgICAgICAqIHJ1bnRpbWUvRXJyb3IuaDoKKyAgICAgICAgKEpTQzo6dGhyb3dWTVR5cGVFcnJv
cik6CisKIDIwMTQtMDMtMTEgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCiAg
ICAgICAgIFN0cmVhbWxpbmUgUHJvcGVydHlUYWJsZSBmb3IgbG9va3VwLW9ubHkgYWNjZXNzLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IGE4YzJmZWZhMTZjNWMyYmI4ZThhZjExM2U3OTkzOTkyZDA3OTdjNTkuLjM2
YTE3NDlkN2ZjYjE1OTZjYjI4OWM0NDkxNjkzYTgxMjBhY2UxYTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyODIgQEAKKzIwMTQtMDMtMTEgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4K
KworICAgICAgICBJbXByb3ZlIGRvbSBlcnJvciBtZXNzYWdlcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwMTAzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSB0aGUgRE9NIGVycm9yIG1lc3NhZ2Vz
IG1vcmUgZGVzY3JpcHRpdmUsIGFuZCB1cGRhdGUgYmluZGluZ3MgdGVzdHMuCisKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRl
SW1wbGVtZW50YXRpb24pOgorICAgICAgICAoR2VuZXJhdGVQYXJhbWV0ZXJzQ2hlY2spOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0QWN0aXZlRE9NT2JqZWN0RXhjaXRpbmdBdHRyKToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEFjdGl2ZURPTU9iamVjdFByb3RvdHlwZUZ1bmN0aW9u
RXhjaXRpbmdGdW5jdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RBY3RpdmVET01PYmpl
Y3RQcm90b3R5cGVGdW5jdGlvblBvc3RNZXNzYWdlKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGVGdW5jdGlvbkFub3RoZXJGdW5jdGlv
bik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3Ry
dWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RXZlbnRDb25zdHJ1Y3RvckF0dHIx
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEV2ZW50Q29uc3RydWN0b3JBdHRyMik6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdEV2ZW50VGFyZ2V0UHJvdG90eXBlRnVuY3Rpb25JdGVtKToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEV2ZW50VGFyZ2V0UHJvdG90eXBlRnVuY3Rpb25BZGRF
dmVudExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEV2ZW50VGFyZ2V0UHJvdG90
eXBlRnVuY3Rpb25SZW1vdmVFdmVudExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dEV2ZW50VGFyZ2V0UHJvdG90eXBlRnVuY3Rpb25EaXNwYXRjaEV2ZW50KToKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdEV4Y2VwdGlvbk5hbWUpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50
ZXJmYWNlSW1wbGVtZW50c1N0cjEpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNl
SW1wbGVtZW50c1N0cjIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlSW1wbGVt
ZW50c1N0cjMpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlSW1wbGVtZW50c05v
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMSk6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIyKToKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjMpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsTm9kZSk6CisgICAgICAgIChX
ZWJDb3JlOjpzZXRKU1Rlc3RJbnRlcmZhY2VJbXBsZW1lbnRzU3RyMik6CisgICAgICAgIChXZWJD
b3JlOjpzZXRKU1Rlc3RJbnRlcmZhY2VJbXBsZW1lbnRzU3RyMyk6CisgICAgICAgIChXZWJDb3Jl
OjpzZXRKU1Rlc3RJbnRlcmZhY2VJbXBsZW1lbnRzTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpz
ZXRKU1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIyKToKKyAgICAgICAgKFdlYkNvcmU6OnNl
dEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjMpOgorICAgICAgICAoV2ViQ29yZTo6c2V0
SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbkltcGxlbWVudHNNZXRob2QxKToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uSW1wbGVtZW50c01ldGhv
ZDIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25J
bXBsZW1lbnRzTWV0aG9kMyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VQcm90
b3R5cGVGdW5jdGlvblN1cHBsZW1lbnRhbE1ldGhvZDEpOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25TdXBwbGVtZW50YWxNZXRob2QyKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uU3VwcGxlbWVudGFs
TWV0aG9kMyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lclByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kKToKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVz
dE9iakNvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU1Rlc3RPYmopOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0T2JqUmVhZE9ubHlMb25nQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpS
ZWFkT25seVN0cmluZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUmVhZE9ubHlU
ZXN0T2JqQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDb25zdHJ1Y3RvclRlc3RT
dWJPYmopOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqVGVzdFN1Yk9iakVuYWJsZWRCeVNl
dHRpbmdDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpFbnVtQXR0cik6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpCeXRlQXR0cik6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RPYmpPY3RldEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqU2hvcnRB
dHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialVuc2lnbmVkU2hvcnRBdHRyKToKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakxvbmdBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9iakxvbmdMb25nQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpVbnNpZ25l
ZExvbmdMb25nQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpTdHJpbmdBdHRyKToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialRlc3RPYmpBdHRyKToKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdE9ialhNTE9iakF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQ3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUmVmbGVjdGVkSW50ZWdyYWxBdHRyKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdE9ialJlZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyKToKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialJlZmxlY3RlZEJvb2xlYW5BdHRyKToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdE9ialJlZmxlY3RlZFVSTEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdE9ialJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdE9ialJlZmxlY3RlZEN1c3RvbVVSTEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0T2JqVHlwZWRBcnJheUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQXR0cldp
dGhHZXR0ZXJFeGNlcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQXR0cldpdGhT
ZXR0ZXJFeGNlcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqU3RyaW5nQXR0cldp
dGhHZXR0ZXJFeGNlcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqU3RyaW5nQXR0
cldpdGhTZXR0ZXJFeGNlcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQ3VzdG9t
QXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1
dGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqV2l0aFNjcmlwdFN0YXRl
QXR0cmlidXRlUmFpc2VzKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialdpdGhTY3JpcHRF
eGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGUpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRT
Y3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpX
aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlV2l0aFNwYWNlc0F0dHJpYnV0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpXaXRoU2NyaXB0QXJndW1lbnRzQW5kQ2Fs
bFN0YWNrQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakNvbmRpdGlvbmFs
QXR0cjEpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMik6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIzKToKKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjRDb25zdHJ1Y3Rvcik6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHI1Q29uc3RydWN0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNkNvbnN0cnVjdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdE9iakNhY2hlZEF0dHJpYnV0ZTEpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0T2JqQ2FjaGVkQXR0cmlidXRlMik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpB
bnlBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQ29udGVudERvY3VtZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iak11dGFibGVQb2ludCk6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RPYmpJbW11dGFibGVQb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RPYmpTdHJhd2JlcnJ5KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialN0cmljdEZsb2F0
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakRlc2NyaXB0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdE9iaklkKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakhhc2gpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUmVwbGFjZWFibGVBdHRyaWJ1dGUpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqTnVsbGFibGVEb3VibGVBdHRyaWJ1dGUpOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0T2JqTnVsbGFibGVMb25nQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdE9iak51bGxhYmxlQm9vbGVhbkF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RPYmpOdWxsYWJsZVN0cmluZ0F0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RPYmpOdWxsYWJsZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RPYmpOdWxsYWJsZVN0cmluZ1ZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dE9iakF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpBdHRyaWJ1dGVXaXRo
UmVzZXJ2ZWRFbnVtVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpUZXN0U3Vi
T2JqRW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpT
VGVzdE9iakVudW1BdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9iakJ5dGVBdHRy
KToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9iak9jdGV0QXR0cik6CisgICAgICAgIChX
ZWJDb3JlOjpzZXRKU1Rlc3RPYmpTaG9ydEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNU
ZXN0T2JqVW5zaWduZWRTaG9ydEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2Jq
TG9uZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqTG9uZ0xvbmdBdHRyKToK
KyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialVuc2lnbmVkTG9uZ0xvbmdBdHRyKToKKyAg
ICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialN0cmluZ0F0dHIpOgorICAgICAgICAoV2ViQ29y
ZTo6c2V0SlNUZXN0T2JqVGVzdE9iakF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0
T2JqWE1MT2JqQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpDcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cik6CisgICAg
ICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRJbnRlZ3JhbEF0dHIpOgorICAgICAg
ICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqUmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHIpOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqUmVmbGVjdGVkQm9vbGVhbkF0dHIpOgorICAg
ICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqUmVmbGVjdGVkVVJMQXR0cik6CisgICAgICAgIChX
ZWJDb3JlOjpzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHIpOgorICAgICAg
ICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIpOgorICAg
ICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tVVJMQXR0cik6CisgICAg
ICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpUeXBlZEFycmF5QXR0cik6CisgICAgICAgIChXZWJD
b3JlOjpzZXRKU1Rlc3RPYmpBdHRyV2l0aEdldHRlckV4Y2VwdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpzZXRKU1Rlc3RPYmpBdHRyV2l0aFNldHRlckV4Y2VwdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpzZXRKU1Rlc3RPYmpTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpTdHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpDdXN0b21BdHRyKToKKyAgICAgICAgKFdlYkNv
cmU6OnNldEpTVGVzdE9ialdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlz
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRBdHRyaWJ1dGVSYWlzZXMpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqV2l0
aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlw
dFN0YXRlQXR0cmlidXRlUmFpc2VzKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialdp
dGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVXaXRoU3BhY2VzQXR0cmlidXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialdpdGhTY3JpcHRBcmd1bWVudHNBbmRD
YWxsU3RhY2tBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqQ29uZGl0
aW9uYWxBdHRyMSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0
dHIyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjMpOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNENvbnN0cnVjdG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjVDb25zdHJ1
Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHI2Q29u
c3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqQW55QXR0cmlidXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9iak11dGFibGVQb2ludCk6CisgICAgICAgIChX
ZWJDb3JlOjpzZXRKU1Rlc3RPYmpJbW11dGFibGVQb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpz
ZXRKU1Rlc3RPYmpTdHJhd2JlcnJ5KToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialN0
cmljdEZsb2F0KToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9iaklkKToKKyAgICAgICAg
KFdlYkNvcmU6OnNldEpTVGVzdE9ialJlcGxhY2VhYmxlQXR0cmlidXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OnNldEpTVGVzdE9iak51bGxhYmxlTG9uZ1NldHRhYmxlQXR0cmlidXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNldEpTVGVzdE9iak51bGxhYmxlU3RyaW5nVmFsdWUpOgorICAgICAgICAo
V2ViQ29yZTo6c2V0SlNUZXN0T2JqQXR0cmlidXRlV2l0aFJlc2VydmVkRW51bVR5cGUpOgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Wb2lkTWV0aG9kKToKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVm9pZE1ldGhvZFdpdGhB
cmdzKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQnl0ZU1l
dGhvZCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkJ5dGVN
ZXRob2RXaXRoQXJncyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk9jdGV0TWV0aG9kKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uT2N0ZXRNZXRob2RXaXRoQXJncyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkxvbmdNZXRob2QpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25Mb25nTWV0aG9kV2l0aEFyZ3MpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PYmpNZXRob2QpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PYmpNZXRob2RXaXRoQXJncyk6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhTZXF1ZW5jZUFyZyk6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFJldHVy
bmluZ1NlcXVlbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kV2l0aEVudW1BcmcpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzKToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU2VyaWFsaXplZFZhbHVlKToKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3B0aW9uc09iamVjdCk6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhF
eGNlcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25D
dXN0b21NZXRob2QpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25DdXN0b21NZXRob2RXaXRoQXJncyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbkFkZEV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25SZW1vdmVFdmVudExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdFN0YXRlVm9pZCk6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRTdGF0ZU9i
aik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3Jp
cHRTdGF0ZVZvaWRFeGNlcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25XaXRoU2NyaXB0U3RhdGVPYmpFeGNlcHRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCk6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRF
eGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0
YXRlT2JqRXhjZXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFjZXMp
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0
QXJndW1lbnRzQW5kQ2FsbFN0YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQXJnKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kT3B0aW9u
YWxBcmcpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRUd29PcHRpb25hbEFyZ3MpOgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTdHJpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0
aW9uYWxTdHJpbmdJc1VuZGVmaW5lZCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0lzTnVsbFN0cmluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhDYWxsYmFj
a0FyZyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhOb25DYWxsYmFja0FyZ0FuZENhbGxiYWNrQXJnKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENhbGxiYWNrQW5kT3B0aW9uYWxBcmcp
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvblN0YXRpY01l
dGhvZFdpdGhDYWxsYmFja0FuZE9wdGlvbmFsQXJnKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dE9iakNvbnN0cnVjdG9yRnVuY3Rpb25TdGF0aWNNZXRob2RXaXRoQ2FsbGJhY2tBcmcpOgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbE1ldGhv
ZDEpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRp
b25hbE1ldGhvZDIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25Db25kaXRpb25hbE1ldGhvZDMpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QyKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDMpOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kNCk6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRo
b2Q1KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zlcmxv
YWRlZE1ldGhvZDYpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25PdmVybG9hZGVkTWV0aG9kNyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q4KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDkpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMTApOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMTEpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DbGFzc01ldGhvZFdp
dGhDbGFtcCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFdpdGhVbnNpZ25lZExvbmdTZXF1ZW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvblN0cmluZ0FycmF5RnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Eb21TdHJpbmdMaXN0RnVuY3Rpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25HZXRTVkdEb2N1bWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQxKToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDIpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0NCk6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQ1KToKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTXV0YWJsZVBvaW50RnVu
Y3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25JbW11
dGFibGVQb2ludEZ1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uT3JhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uU3RyaWN0RnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25TdHJpY3RGdW5jdGlvbldpdGhTZXF1ZW5jZSk6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblN0cmljdEZ1bmN0aW9uV2l0aEFycmF5KToKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVmFyaWFkaWNTdHJpbmdN
ZXRob2QpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25WYXJp
YWRpY0RvdWJsZU1ldGhvZCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvblZhcmlhZGljTm9kZU1ldGhvZCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkFueSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VWYWx1ZSk6CisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VSZWFkb25seVZh
bHVlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZUNhY2hlZFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZVBvcnRzKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNhY2hlZFJlYWRvbmx5VmFsdWUpOgorICAgICAgICAoV2Vi
Q29yZTo6c2V0SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlVmFsdWUpOgorICAg
ICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ2Fj
aGVkVmFsdWUpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBl
ZGVmcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yOjpj
b25zdHJ1Y3RKU1Rlc3RUeXBlZGVmcyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBlZGVm
c1Vuc2lnbmVkTG9uZ0xvbmdBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFR5cGVkZWZz
SW1tdXRhYmxlU2VyaWFsaXplZFNjcmlwdFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dFR5cGVkZWZzQ29uc3RydWN0b3JUZXN0U3ViT2JqKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dFR5cGVkZWZzQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0VHlwZWRlZnNBdHRyV2l0aFNldHRlckV4Y2VwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RUeXBlZGVmc1N0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdFR5cGVkZWZzU3RyaW5nQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0VHlwZWRlZnNVbnNpZ25lZExvbmdMb25nQXR0cik6Cisg
ICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RUeXBlZGVmc0ltbXV0YWJsZVNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RUeXBlZGVmc0F0dHJXaXRoR2V0
dGVyRXhjZXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdFR5cGVkZWZzQXR0cldp
dGhTZXR0ZXJFeGNlcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0VHlwZWRlZnNT
dHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rl
c3RUeXBlZGVmc1N0cmluZ0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25GdW5jKToKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25TZXRTaGFkb3cpOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhTZXF1ZW5j
ZUFyZyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9u
TnVsbGFibGVBcnJheUFyZyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBlZGVmc1Byb3Rv
dHlwZUZ1bmN0aW9uRnVuY1dpdGhDbGFtcCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBl
ZGVmc1Byb3RvdHlwZUZ1bmN0aW9uSW1tdXRhYmxlUG9pbnRGdW5jdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uU3RyaW5nQXJyYXlGdW5jdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uU3Ry
aW5nQXJyYXlGdW5jdGlvbjIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlwZWRlZnNQcm90
b3R5cGVGdW5jdGlvbkNhbGxXaXRoU2VxdWVuY2VUaGF0UmVxdWlyZXNJbmNsdWRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRXhj
ZXB0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6anNhdHRyaWJ1dGVSZWFkb25seSk6CisKIDIwMTQtMDMt
MTEgIFJ5dWFuIENob2kgIDxyeXVhbi5jaG9pQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFJlbW92
ZSB1bnVzZWQgbWV0aG9kIGZyb20gQmF0dGVyeUNvbnRyb2xsZXIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9FcnJvci5oCmluZGV4IGJlYzVkZDc1NmVmZDgyNGM0NDZkMmU3YWI3ZDczMDVkNjg0
MGI0NmIuLmNiOGNmNjQ2OTU3ZWU4OTQzNWM3ODY3MWEzM2FhMGM3ZDVhODVmMDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuaApAQCAtNzAsNyArNzAsOCBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAvLyBDb252ZW5pZW5jZSB3cmFwcGVycywgd3JhcCByZXN1bHQgYXMgYW4gRW5j
b2RlZEpTVmFsdWUuCiAgICAgaW5saW5lIEVuY29kZWRKU1ZhbHVlIHRocm93Vk1FcnJvcihFeGVj
U3RhdGUqIGV4ZWMsIEpTVmFsdWUgZXJyb3IpIHsgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShleGVj
LT52bSgpLnRocm93RXhjZXB0aW9uKGV4ZWMsIGVycm9yKSk7IH0KICAgICBpbmxpbmUgRW5jb2Rl
ZEpTVmFsdWUgdGhyb3dWTVR5cGVFcnJvcihFeGVjU3RhdGUqIGV4ZWMpIHsgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZSh0aHJvd1R5cGVFcnJvcihleGVjKSk7IH0KLQorICAgIGlubGluZSBFbmNvZGVk
SlNWYWx1ZSB0aHJvd1ZNVHlwZUVycm9yKEV4ZWNTdGF0ZSogZXhlYywgU3RyaW5nIGVycm9yTWVz
c2FnZSkgeyByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93VHlwZUVycm9yKGV4ZWMsIGVycm9y
TWVzc2FnZSkpOyB9CisgICAgCiAgICAgY2xhc3MgU3RyaWN0TW9kZVR5cGVFcnJvckZ1bmN0aW9u
IDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogICAgIHByaXZhdGU6CiAgICAgICAgIFN0cmlj
dE1vZGVUeXBlRXJyb3JGdW5jdGlvbihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDYxYTlhODE0ZTkwMDZmNzQyMGY1ZDIyOWEwZGNk
MGI3ZThmM2ExZjYuLmIyNjY5MzUwMzY5MmI1OTZlY2E3NTMzZDBiOWYyZGFjNWVjZTgxMDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCkBAIC0yMTQ0LDcgKzIxNDQsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICAgICAgc2NyaXB0RXhlY3V0
aW9uQ29udGV4dC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VM
ZXZlbDo6RXJyb3IsIFN0cmluZyhcIkRlcHJlY2F0ZWQgYXR0ZW1wdCB0byBhY2Nlc3MgcHJvcGVy
dHkgJyRuYW1lJyBvbiBhIG5vbi0kaW50ZXJmYWNlTmFtZSBvYmplY3QuXCIpKTtcbiIpOwogICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTtcbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgICAgICB9XG4iKTsKLSAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7XG4iKTsKKyAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBl
RXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKFwiVGhlICRpbnRlcmZhY2VOYW1lLiRuYW1lIGdldHRl
ciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiAkaW50ZXJmYWNlTmFtZVwiKSk7XG4i
KTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB9XG4iKTsKICAgICAg
ICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
VU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7XG4iKTsKQEAgLTI0NjAsNyArMjQ2MCw3IEBAIHN1YiBH
ZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICB9XG4iKTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMp
KSB7XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAg
IHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFs
KFwiVGhlICRpbnRlcmZhY2VOYW1lLiRuYW1lIHNldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGlu
c3RhbmNlcyBvZiAkaW50ZXJmYWNlTmFtZVwiKSk7XG4iKTsKICAgICAgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybjtcbiIpOwogICAgICAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB9XG4iKTsKICAgICAgICAgICAgICAgICB9CkBA
IC0yNTIxLDcgKzI1MjEsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAg
ICAgICAgICAgICAgICAgbXkgJGFyZ1R5cGUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGU7
CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzV3JhcHBlclR5
cGUoJGFyZ1R5cGUpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgaWYgKCF2YWx1ZS5pc1VuZGVmaW5lZE9yTnVsbCgpICYmICF2YWx1ZS5pbmhl
cml0cyhKUyR7YXJnVHlwZX06OmluZm8oKSkpIHtcbiIpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMp
O1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKFwiVGhlICR7aW50ZXJm
YWNlTmFtZX0uJG5hbWUgYXR0cmlidXRlIG11c3QgYW4gaW5zdGFuY2Ugb2YgJGFyZ1R5cGVcIikp
O1xuIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgICAgIHJldHVybjtcbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgIH07XG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KQEAgLTI2
OTMsOCArMjY5Myw5IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
SlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7XG4iKTsKICAgICAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJGNsYXNzTmFtZSogY2FzdGVkVGhp
cyA9IGpzRHluYW1pY0Nhc3Q8JGNsYXNzTmFtZSo+KHRoaXNWYWx1ZSk7XG4iKTsKKyAgICAgICAg
ICAgICAgICAgICAgbXkgJGRvbUZ1bmN0aW9uTmFtZSA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5u
YW1lOwogICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoVU5M
SUtFTFkoIWNhc3RlZFRoaXMpKVxuIik7Ci0gICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTtcbiIpOworICAg
ICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuIHRocm93
Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKFwiQ2FuIG9ubHkgY2FsbCAkY2xhc3NOYW1l
LiRkb21GdW5jdGlvbk5hbWUgb24gaW5zdGFuY2VzIG9mICRjbGFzc05hbWVcIikpO1xuIik7CiAg
ICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCAke2NsYXNzTmFtZX06Omlu
Zm8oKSk7XG4iKTsKQEAgLTMxMjAsNyArMzEyMSw4IEBAIHN1YiBHZW5lcmF0ZVBhcmFtZXRlcnND
aGVjawogICAgIG15ICRhcmdzSW5kZXggPSAwOwogICAgIG15ICRoYXNPcHRpb25hbEFyZ3VtZW50
cyA9IDA7CiAgICAgbXkgJHJhaXNlc0V4Y2VwdGlvbiA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiUmFpc2VzRXhjZXB0aW9uIn07Ci0KKyAgICAKKyAgICBteSAk
Y2xhc3NOYW1lID0gJGludGVyZmFjZS0+bmFtZTsKICAgICBteSBAYXJndW1lbnRzOwogICAgIG15
ICRmdW5jdGlvbk5hbWU7CiAgICAgbXkgJGltcGxlbWVudGVkQnkgPSAkZnVuY3Rpb24tPnNpZ25h
dHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkltcGxlbWVudGVkQnkifTsKQEAgLTMxNDIsMTAg
KzMxNDQsMTAgQEAgc3ViIEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNrCiAKICAgICAkaW1wbEluY2x1
ZGVzeyJFeGNlcHRpb25Db2RlLmgifSA9IDE7CiAgICAgJGltcGxJbmNsdWRlc3siSlNET01CaW5k
aW5nLmgifSA9IDE7Ci0KKyAgICBteSAkYXJndW1lbnRJbmRleCA9IDA7CiAgICAgZm9yZWFjaCBt
eSAkcGFyYW1ldGVyIChAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc30pIHsKICAgICAgICAgbXkgJGFy
Z1R5cGUgPSAkcGFyYW1ldGVyLT50eXBlOwotCisgICAgICAgICRhcmd1bWVudEluZGV4ID0gJGFy
Z3VtZW50SW5kZXggKyAxOwogICAgICAgICAjIE9wdGlvbmFsIGFyZ3VtZW50cyB3aXRoIFtPcHRp
b25hbF0gc2hvdWxkIGdlbmVyYXRlIGFuIGVhcmx5IGNhbGwgd2l0aCBmZXdlciBhcmd1bWVudHMu
CiAgICAgICAgICMgT3B0aW9uYWwgYXJndW1lbnRzIHdpdGggW09wdGlvbmFsPS4uLl0gc2hvdWxk
IG5vdCBnZW5lcmF0ZSB0aGUgZWFybHkgY2FsbC4KICAgICAgICAgIyBPcHRpb25hbCBEaWN0aW9u
YXJ5IGFyZ3VtZW50cyBhbHdheXMgY29uc2lkZXJlZCB0byBoYXZlIGRlZmF1bHQgb2YgZW1wdHkg
ZGljdGlvbmFyeS4KQEAgLTMxODQsNyArMzE4Niw3IEBAIHN1YiBHZW5lcmF0ZVBhcmFtZXRlcnND
aGVjawogICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBSZWZQdHI8JGFy
Z1R5cGU+ICRuYW1lO1xuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAi
ICAgIGlmICghZXhlYy0+YXJndW1lbnQoJGFyZ3NJbmRleCkuaXNVbmRlZmluZWRPck51bGwoKSkg
e1xuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICBpZiAo
IWV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KCRhcmdzSW5kZXgpLmlzRnVuY3Rpb24oKSlcbiIpOwot
ICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgICAgIHJldHVybiB0
aHJvd1ZNVHlwZUVycm9yKGV4ZWMpO1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAJG91dHB1
dEFycmF5LCAiICAgICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlM
aXRlcmFsKFwiQXJndW1lbnQgJGFyZ3VtZW50SW5kZXggKCckbmFtZScpIHRvICRjbGFzc05hbWUu
JGZ1bmN0aW9uTmFtZSBtdXN0IGJlIGEgZnVuY3Rpb25cIikpO1xuIik7CiAgICAgICAgICAgICAg
ICAgaWYgKCRmdW5jdGlvbi0+aXNTdGF0aWMpIHsKICAgICAgICAgICAgICAgICAgICAgQWRkVG9J
bXBsSW5jbHVkZXMoIkNhbGxiYWNrRnVuY3Rpb24uaCIpOwogICAgICAgICAgICAgICAgICAgICBw
dXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgICRuYW1lID0gY3JlYXRlRnVuY3Rpb25Pbmx5Q2Fs
bGJhY2s8JHtjYWxsYmFja0NsYXNzTmFtZX0+KGV4ZWMsIGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVj
dCo+KGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSksIGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50
KCRhcmdzSW5kZXgpKTtcbiIpOwpAQCAtMzE5NCw3ICszMTk2LDcgQEAgc3ViIEdlbmVyYXRlUGFy
YW1ldGVyc0NoZWNrCiAgICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIH1c
biIpOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0
QXJyYXksICIgICAgaWYgKCFleGVjLT5hcmd1bWVudCgkYXJnc0luZGV4KS5pc0Z1bmN0aW9uKCkp
XG4iKTsKLSAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpO1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAiICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxp
dGVyYWwoXCJBcmd1bWVudCAkYXJndW1lbnRJbmRleCAoJyRuYW1lJykgdG8gJGNsYXNzTmFtZS4k
ZnVuY3Rpb25OYW1lIG11c3QgYmUgYSBmdW5jdGlvblwiKSk7XG4iKTsKICAgICAgICAgICAgICAg
ICBpZiAoJGZ1bmN0aW9uLT5pc1N0YXRpYykgewogICAgICAgICAgICAgICAgICAgICBBZGRUb0lt
cGxJbmNsdWRlcygiQ2FsbGJhY2tGdW5jdGlvbi5oIik7CiAgICAgICAgICAgICAgICAgICAgIHB1
c2goQCRvdXRwdXRBcnJheSwgIiAgICBSZWZQdHI8JGFyZ1R5cGU+ICRuYW1lID0gY3JlYXRlRnVu
Y3Rpb25Pbmx5Q2FsbGJhY2s8JHtjYWxsYmFja0NsYXNzTmFtZX0+KGV4ZWMsIGpzQ2FzdDxKU0RP
TUdsb2JhbE9iamVjdCo+KGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSksIGV4ZWMtPnVuY2hl
Y2tlZEFyZ3VtZW50KCRhcmdzSW5kZXgpKTtcbiIpOwpAQCAtMzIyMiw3ICszMjI0LDcgQEAgc3Vi
IEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNrCiAgICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFy
cmF5LCAiICAgIFZlY3RvcjwkbmF0aXZlRWxlbWVudFR5cGU+ICRuYW1lO1xuIik7CiAgICAgICAg
ICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGZvciAodW5zaWduZWQgaSA9ICRhcmdz
SW5kZXgsIGNvdW50ID0gZXhlYy0+YXJndW1lbnRDb3VudCgpOyBpIDwgY291bnQ7ICsraSkge1xu
Iik7CiAgICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICBpZiAoIWV4
ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KGkpLmluaGVyaXRzKEpTJHthcmdUeXBlfTo6aW5mbygpKSlc
biIpOwotICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgICAgIHJl
dHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpO1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChA
JG91dHB1dEFycmF5LCAiICAgICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywg
QVNDSUlMaXRlcmFsKFwiVGhlIGFyZ3VtZW50cyB0byAke2NsYXNzTmFtZX0uJGZ1bmN0aW9uTmFt
ZSBtdXN0IGJlIGFuIGluc3RhbmNlIG9mICRhcmdUeXBlXCIpKTtcbiIpOwogICAgICAgICAgICAg
ICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgJG5hbWUuYXBwZW5kKHRvJGFyZ1R5cGUo
ZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoaSkpKTtcbiIpOwogICAgICAgICAgICAgICAgIHB1c2go
QCRvdXRwdXRBcnJheSwgIiAgICB9XG4iKQogICAgICAgICAgICAgfSBlbHNlIHsKQEAgLTMyNDIs
MTEgKzMyNDQsMTggQEAgc3ViIEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNrCiAKICAgICAgICAgICAg
IG15IEBlbnVtVmFsdWVzID0gJGNvZGVHZW5lcmF0b3ItPlZhbGlkRW51bVZhbHVlcygkYXJnVHlw
ZSk7CiAgICAgICAgICAgICBteSBAZW51bUNoZWNrcyA9ICgpOworICAgICAgICAgICAgbXkgJGVu
dW1zID0gMDsKICAgICAgICAgICAgIGZvcmVhY2ggbXkgJGVudW1WYWx1ZSAoQGVudW1WYWx1ZXMp
IHsKICAgICAgICAgICAgICAgICBwdXNoKEBlbnVtQ2hlY2tzLCAiJHtuYW1lfSAhPSBcIiRlbnVt
VmFsdWVcIiIpOworICAgICAgICAgICAgICAgIGlmICghJGVudW1zKSB7CisgICAgICAgICAgICAg
ICAgICAgICRlbnVtcyA9ICJcXFwiJGVudW1WYWx1ZVxcXCIiOworICAgICAgICAgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICRlbnVtcyA9ICRlbnVtcyAuICIsIFxcXCIiIC4g
JGVudW1WYWx1ZSAuICJcXFwiIjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBwdXNoIChAJG91dHB1dEFycmF5LCAiICAgIGlm
ICgiIC4gam9pbigiICYmICIsIEBlbnVtQ2hlY2tzKSAuICIpXG4iKTsKLSAgICAgICAgICAgIHB1
c2ggKEAkb3V0cHV0QXJyYXksICIgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMp
O1xuIik7CisgICAgICAgICAgICBwdXNoIChAJG91dHB1dEFycmF5LCAiICAgICAgICByZXR1cm4g
dGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoXCJBcmd1bWVudCAkYXJndW1lbnRJ
bmRleCAoJyRuYW1lJykgdG8gJGNsYXNzTmFtZS4kZnVuY3Rpb25OYW1lIG11c3QgYmUgb25lIG9m
OiAkZW51bXNcIikpO1xuIik7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAjIElmIHRo
ZSAiU3RyaWN0VHlwZUNoZWNraW5nIiBleHRlbmRlZCBhdHRyaWJ1dGUgaXMgcHJlc2VudCwgYW5k
IHRoZSBhcmd1bWVudCdzIHR5cGUgaXMgYW4KICAgICAgICAgICAgICMgaW50ZXJmYWNlIHR5cGUs
IHRoZW4gaWYgdGhlIGluY29taW5nIHZhbHVlIGRvZXMgbm90IGltcGxlbWVudCB0aGF0IGludGVy
ZmFjZSwgYSBUeXBlRXJyb3IKQEAgLTMyNTksNyArMzI2OCw3IEBAIHN1YiBHZW5lcmF0ZVBhcmFt
ZXRlcnNDaGVjawogICAgICAgICAgICAgICAgIG15ICRhcmdWYWx1ZSA9ICJleGVjLT5hcmd1bWVu
dCgkYXJnc0luZGV4KSI7CiAgICAgICAgICAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1dy
YXBwZXJUeXBlKCRhcmdUeXBlKSkgewogICAgICAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0
QXJyYXksICIgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA+ICRhcmdzSW5kZXggJiYgISR7
YXJnVmFsdWV9LmlzVW5kZWZpbmVkT3JOdWxsKCkgJiYgISR7YXJnVmFsdWV9LmluaGVyaXRzKEpT
JHthcmdUeXBlfTo6aW5mbygpKSlcbiIpOwotICAgICAgICAgICAgICAgICAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICIgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpO1xuIik7Cisg
ICAgICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKFwiQXJndW1lbnQgJGFyZ3VtZW50SW5k
ZXggKCckbmFtZScpIHRvICRmdW5jdGlvbk5hbWUgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiAkYXJn
VHlwZVwiKSk7XG4iKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3Rp
dmVET01PYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEFjdGl2ZURPTU9iamVjdC5jcHAKaW5kZXggNDBjNGI2YzJiYzNjMmIzYjM2YWMwNjE0
YTQyMzg2NmFlOTZhOWQwYi4uMzg1M2FmMmI0ZTQxY2Y4OWIwODc5Y2U2ZTIzYTMyZTEzN2ZkMWY4
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEFjdGl2ZURPTU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5jcHAKQEAgLTE0MSw3ICsxNDEsNyBA
QCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RBY3RpdmVET01PYmplY3RFeGNpdGluZ0F0dHIoRXhlY1N0
YXRlKiBleGVjLCBKU09iamVjdCogc2xvdAogICAgICAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6
RXJyb3IsIFN0cmluZygiRGVwcmVjYXRlZCBhdHRlbXB0IHRvIGFjY2VzcyBwcm9wZXJ0eSAnZXhj
aXRpbmdBdHRyJyBvbiBhIG5vbi1UZXN0QWN0aXZlRE9NT2JqZWN0IG9iamVjdC4iKSk7CiAgICAg
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAgICB9
Ci0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4g
dGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIlRoZSBUZXN0QWN0aXZlRE9NT2Jq
ZWN0LmV4Y2l0aW5nQXR0ciBnZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2Yg
VGVzdEFjdGl2ZURPTU9iamVjdCIpKTsKICAgICB9CiAgICAgaWYgKCFCaW5kaW5nU2VjdXJpdHk6
OnNob3VsZEFsbG93QWNjZXNzVG9ET01XaW5kb3coZXhlYywgY2FzdGVkVGhpcy0+aW1wbCgpKSkK
ICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKQEAgLTE3NCw3
ICsxNzQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEFjdGl2ZURPTU9i
amVjdFByb3RvdHlwZUZ1bmN0aW9uRXhjaXRpbmdGdW5jdAogICAgIEpTVmFsdWUgdGhpc1ZhbHVl
ID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdEFjdGl2ZURPTU9iamVjdCogY2Fz
dGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0QWN0aXZlRE9NT2JqZWN0Kj4odGhpc1ZhbHVl
KTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQotICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywg
QVNDSUlMaXRlcmFsKCJDYW4gb25seSBjYWxsIEpTVGVzdEFjdGl2ZURPTU9iamVjdC5leGNpdGlu
Z0Z1bmN0aW9uIG9uIGluc3RhbmNlcyBvZiBKU1Rlc3RBY3RpdmVET01PYmplY3QiKSk7CiAgICAg
QVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RBY3RpdmVET01PYmpl
Y3Q6OmluZm8oKSk7CiAgICAgaWYgKCFCaW5kaW5nU2VjdXJpdHk6OnNob3VsZEFsbG93QWNjZXNz
VG9ET01XaW5kb3coZXhlYywgY2FzdGVkVGhpcy0+aW1wbCgpKSkKICAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKQEAgLTE5Myw3ICsxOTMsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEFjdGl2ZURPTU9iamVjdFByb3RvdHlwZUZ1bmN0
aW9uUG9zdE1lc3NhZ2UoRQogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNW
YWx1ZSgpOwogICAgIEpTVGVzdEFjdGl2ZURPTU9iamVjdCogY2FzdGVkVGhpcyA9IGpzRHluYW1p
Y0Nhc3Q8SlNUZXN0QWN0aXZlRE9NT2JqZWN0Kj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtF
TFkoIWNhc3RlZFRoaXMpKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsK
KyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJDYW4g
b25seSBjYWxsIEpTVGVzdEFjdGl2ZURPTU9iamVjdC5wb3N0TWVzc2FnZSBvbiBpbnN0YW5jZXMg
b2YgSlNUZXN0QWN0aXZlRE9NT2JqZWN0IikpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJ
VFMoY2FzdGVkVGhpcywgSlNUZXN0QWN0aXZlRE9NT2JqZWN0OjppbmZvKCkpOwogICAgIFRlc3RB
Y3RpdmVET01PYmplY3QmIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgaWYgKGV4ZWMt
PmFyZ3VtZW50Q291bnQoKSA8IDEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNw
cAppbmRleCBkYTFmMGQyZThkMTdjMGRhYzQ4MWQ1MTc0MWU3MDA5YjNhNWUwODY0Li45ZWZlZDZj
NjZjYzM3YTlhYjNiYjViNDE1MjRiODcxYWFhNDFiMmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0
b21OYW1lZEdldHRlci5jcHAKQEAgLTE2NCw3ICsxNjQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdEN1c3RvbU5hbWVkR2V0dGVyUHJvdG90eXBlRnVuY3Rpb25Bbm90aGVy
RnVuYwogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwogICAg
IEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rl
c3RDdXN0b21OYW1lZEdldHRlcio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0
ZWRUaGlzKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAg
IHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiQ2FuIG9ubHkgY2Fs
bCBKU1Rlc3RDdXN0b21OYW1lZEdldHRlci5hbm90aGVyRnVuY3Rpb24gb24gaW5zdGFuY2VzIG9m
IEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyIikpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJ
VFMoY2FzdGVkVGhpcywgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI6OmluZm8oKSk7CiAgICAgVGVz
dEN1c3RvbU5hbWVkR2V0dGVyJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIGlmIChl
eGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3Iu
Y3BwCmluZGV4IGE1ZDk0ZjNkM2Y0MDlmNGVkMzNjM2QyYjEzMDg0ZjI0NTQ4NWNmNGQuLmE4NzU0
ZDhkNjEzNTI2ZTg1YmQ5ZDFhYzVjNmJkOWQ4NTcxYWZhOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZl
bnRDb25zdHJ1Y3Rvci5jcHAKQEAgLTE3Niw3ICsxNzYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RFdmVudENvbnN0cnVjdG9yQXR0cjEoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEJh
c2UsCiAgICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5hZGRDb25zb2xlTWVzc2Fn
ZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgU3RyaW5nKCJEZXByZWNh
dGVkIGF0dGVtcHQgdG8gYWNjZXNzIHByb3BlcnR5ICdhdHRyMScgb24gYSBub24tVGVzdEV2ZW50
Q29uc3RydWN0b3Igb2JqZWN0LiIpKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBl
RXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJ
TGl0ZXJhbCgiVGhlIFRlc3RFdmVudENvbnN0cnVjdG9yLmF0dHIxIGdldHRlciBjYW4gb25seSBi
ZSB1c2VkIG9uIGluc3RhbmNlcyBvZiBUZXN0RXZlbnRDb25zdHJ1Y3RvciIpKTsKICAgICB9CiAg
ICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIFRlc3RFdmVudENvbnN0cnVjdG9yJiBpbXBsID0g
Y2FzdGVkVGhpcy0+aW1wbCgpOwpAQCAtMTk1LDcgKzE5NSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpz
VGVzdEV2ZW50Q29uc3RydWN0b3JBdHRyMihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90
QmFzZSwKICAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZENvbnNvbGVNZXNz
YWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBTdHJpbmcoIkRlcHJl
Y2F0ZWQgYXR0ZW1wdCB0byBhY2Nlc3MgcHJvcGVydHkgJ2F0dHIyJyBvbiBhIG5vbi1UZXN0RXZl
bnRDb25zdHJ1Y3RvciBvYmplY3QuIikpOwogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5
cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgQVND
SUlMaXRlcmFsKCJUaGUgVGVzdEV2ZW50Q29uc3RydWN0b3IuYXR0cjIgZ2V0dGVyIGNhbiBvbmx5
IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mIFRlc3RFdmVudENvbnN0cnVjdG9yIikpOwogICAgIH0K
ICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgVGVzdEV2ZW50Q29uc3RydWN0b3ImIGltcGwg
PSBjYXN0ZWRUaGlzLT5pbXBsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcAppbmRleCBiYzhi
YzU3M2ZjZmVlMGM3YTQ4ZWVkZjUwM2ZjYjdjMGM2N2YwYWNjLi5lMDE5NmIyYjg1NzQ5MmIwNGEx
Yzc1MjE2NTBjODViZWZjYWM3ZGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAKQEAgLTE5
OCw3ICsxOTgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEV2ZW50VGFy
Z2V0UHJvdG90eXBlRnVuY3Rpb25JdGVtKEV4ZWNTdGF0ZSogZQogICAgIEpTVmFsdWUgdGhpc1Zh
bHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdEV2ZW50VGFyZ2V0KiBjYXN0
ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RFdmVudFRhcmdldCo+KHRoaXNWYWx1ZSk7CiAg
ICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBl
RXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJ
TGl0ZXJhbCgiQ2FuIG9ubHkgY2FsbCBKU1Rlc3RFdmVudFRhcmdldC5pdGVtIG9uIGluc3RhbmNl
cyBvZiBKU1Rlc3RFdmVudFRhcmdldCIpKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRT
KGNhc3RlZFRoaXMsIEpTVGVzdEV2ZW50VGFyZ2V0OjppbmZvKCkpOwogICAgIFRlc3RFdmVudFRh
cmdldCYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRD
b3VudCgpIDwgMSkKQEAgLTIyMCw3ICsyMjAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdEV2ZW50VGFyZ2V0UHJvdG90eXBlRnVuY3Rpb25BZGRFdmVudExpc3RlbmVyKAog
ICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwogICAgIEpTVGVz
dEV2ZW50VGFyZ2V0KiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RFdmVudFRhcmdl
dCo+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKLSAgICAgICAg
cmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlw
ZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiQ2FuIG9ubHkgY2FsbCBKU1Rlc3RFdmVudFRhcmdl
dC5hZGRFdmVudExpc3RlbmVyIG9uIGluc3RhbmNlcyBvZiBKU1Rlc3RFdmVudFRhcmdldCIpKTsK
ICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTVGVzdEV2ZW50VGFy
Z2V0OjppbmZvKCkpOwogICAgIFRlc3RFdmVudFRhcmdldCYgaW1wbCA9IGNhc3RlZFRoaXMtPmlt
cGwoKTsKICAgICBKU1ZhbHVlIGxpc3RlbmVyID0gZXhlYy0+YXJndW1lbnQoMSk7CkBAIC0yMzUs
NyArMjM1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RFdmVudFRhcmdl
dFByb3RvdHlwZUZ1bmN0aW9uUmVtb3ZlRXZlbnRMaXN0ZW4KICAgICBKU1ZhbHVlIHRoaXNWYWx1
ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKICAgICBKU1Rlc3RFdmVudFRhcmdldCogY2FzdGVk
VGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0RXZlbnRUYXJnZXQqPih0aGlzVmFsdWUpOwogICAg
IGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVy
cm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxp
dGVyYWwoIkNhbiBvbmx5IGNhbGwgSlNUZXN0RXZlbnRUYXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5l
ciBvbiBpbnN0YW5jZXMgb2YgSlNUZXN0RXZlbnRUYXJnZXQiKSk7CiAgICAgQVNTRVJUX0dDX09C
SkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RFdmVudFRhcmdldDo6aW5mbygpKTsKICAg
ICBUZXN0RXZlbnRUYXJnZXQmIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgSlNWYWx1
ZSBsaXN0ZW5lciA9IGV4ZWMtPmFyZ3VtZW50KDEpOwpAQCAtMjUwLDcgKzI1MCw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0RXZlbnRUYXJnZXRQcm90b3R5cGVGdW5jdGlv
bkRpc3BhdGNoRXZlbnQoRXhlCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhp
c1ZhbHVlKCk7CiAgICAgSlNUZXN0RXZlbnRUYXJnZXQqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWND
YXN0PEpTVGVzdEV2ZW50VGFyZ2V0Kj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNh
c3RlZFRoaXMpKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAg
ICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJDYW4gb25seSBj
YWxsIEpTVGVzdEV2ZW50VGFyZ2V0LmRpc3BhdGNoRXZlbnQgb24gaW5zdGFuY2VzIG9mIEpTVGVz
dEV2ZW50VGFyZ2V0IikpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhp
cywgSlNUZXN0RXZlbnRUYXJnZXQ6OmluZm8oKSk7CiAgICAgVGVzdEV2ZW50VGFyZ2V0JiBpbXBs
ID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAx
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEV4Y2VwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RXhjZXB0aW9uLmNwcAppbmRleCBkNGNmNDkzOWUzMWI4ZTk4MjFlZGMyOWY5Yzgz
OTcwNjY4MDk1NDQ4Li42MjQ1N2EzZDdmM2MzYzgyMGJkZjRjNWNhODY1OWNjMzMyYzllMGRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
RXhjZXB0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RXhjZXB0aW9uLmNwcApAQCAtMTM3LDcgKzEzNyw3IEBAIEVuY29kZWRKU1ZhbHVl
IGpzVGVzdEV4Y2VwdGlvbk5hbWUoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEJhc2Us
IEVuY29kZWRKCiAgICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5hZGRDb25zb2xl
TWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgU3RyaW5nKCJE
ZXByZWNhdGVkIGF0dGVtcHQgdG8gYWNjZXNzIHByb3BlcnR5ICduYW1lJyBvbiBhIG5vbi1UZXN0
RXhjZXB0aW9uIG9iamVjdC4iKSk7CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVy
cm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxp
dGVyYWwoIlRoZSBUZXN0RXhjZXB0aW9uLm5hbWUgZ2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24g
aW5zdGFuY2VzIG9mIFRlc3RFeGNlcHRpb24iKSk7CiAgICAgfQogICAgIFVOVVNFRF9QQVJBTShl
eGVjKTsKICAgICBUZXN0RXhjZXB0aW9uJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdElu
dGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0SW50ZXJmYWNlLmNwcAppbmRleCAwMmM3NDk5NDEyYTA4ZDY0ZmQwMTY5ZjhmYjc2NzNiYmRl
YWQ5YTcwLi45MDJhYjcwODk1YjdlNTU1YzAwYTI3OGQwNjhlOTRmZTgzOGJlODE1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJm
YWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0SW50ZXJmYWNlLmNwcApAQCAtMzA3LDcgKzMwNyw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVz
dEludGVyZmFjZUltcGxlbWVudHNTdHIxKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNsb3RC
YXNlCiAgICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5hZGRDb25zb2xlTWVzc2Fn
ZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgU3RyaW5nKCJEZXByZWNh
dGVkIGF0dGVtcHQgdG8gYWNjZXNzIHByb3BlcnR5ICdpbXBsZW1lbnRzU3RyMScgb24gYSBub24t
VGVzdEludGVyZmFjZSBvYmplY3QuIikpOwogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5
cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgQVND
SUlMaXRlcmFsKCJUaGUgVGVzdEludGVyZmFjZS5pbXBsZW1lbnRzU3RyMSBnZXR0ZXIgY2FuIG9u
bHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgVGVzdEludGVyZmFjZSIpKTsKICAgICB9CiAgICAg
VU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIFRlc3RJbnRlcmZhY2UmIGltcGwgPSBjYXN0ZWRUaGlz
LT5pbXBsKCk7CkBAIC0zMjgsNyArMzI4LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJm
YWNlSW1wbGVtZW50c1N0cjIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEJhc2UKICAg
ICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3Nh
Z2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBTdHJpbmcoIkRlcHJlY2F0ZWQgYXR0
ZW1wdCB0byBhY2Nlc3MgcHJvcGVydHkgJ2ltcGxlbWVudHNTdHIyJyBvbiBhIG5vbi1UZXN0SW50
ZXJmYWNlIG9iamVjdC4iKSk7CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
VW5kZWZpbmVkKCkpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9y
KGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVy
YWwoIlRoZSBUZXN0SW50ZXJmYWNlLmltcGxlbWVudHNTdHIyIGdldHRlciBjYW4gb25seSBiZSB1
c2VkIG9uIGluc3RhbmNlcyBvZiBUZXN0SW50ZXJmYWNlIikpOwogICAgIH0KICAgICBVTlVTRURf
UEFSQU0oZXhlYyk7CiAgICAgVGVzdEludGVyZmFjZSYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwo
KTsKQEAgLTM0OSw3ICszNDksNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VJbXBs
ZW1lbnRzU3RyMyhFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzZQogICAgICAgICAg
ICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJj
ZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIFN0cmluZygiRGVwcmVjYXRlZCBhdHRlbXB0IHRv
IGFjY2VzcyBwcm9wZXJ0eSAnaW1wbGVtZW50c1N0cjMnIG9uIGEgbm9uLVRlc3RJbnRlcmZhY2Ug
b2JqZWN0LiIpKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7
CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiVGhl
IFRlc3RJbnRlcmZhY2UuaW1wbGVtZW50c1N0cjMgZ2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24g
aW5zdGFuY2VzIG9mIFRlc3RJbnRlcmZhY2UiKSk7CiAgICAgfQogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoY2FzdGVkVGhpcy0+aW1wbGVtZW50c1N0cjMoZXhlYykpOwogfQpAQCAtMzY3LDcg
KzM2Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUltcGxlbWVudHNOb2RlKEV4
ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNsb3RCYXNlCiAgICAgICAgICAgICBzY3JpcHRFeGVj
dXRpb25Db250ZXh0LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2Fn
ZUxldmVsOjpFcnJvciwgU3RyaW5nKCJEZXByZWNhdGVkIGF0dGVtcHQgdG8gYWNjZXNzIHByb3Bl
cnR5ICdpbXBsZW1lbnRzTm9kZScgb24gYSBub24tVGVzdEludGVyZmFjZSBvYmplY3QuIikpOwog
ICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICAg
ICAgfQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0
dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJUaGUgVGVzdEludGVyZmFj
ZS5pbXBsZW1lbnRzTm9kZSBnZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2Yg
VGVzdEludGVyZmFjZSIpKTsKICAgICB9CiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIFRl
c3RJbnRlcmZhY2UmIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CkBAIC00MTIsNyArNDEyLDcg
QEAgRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMShFeGVjU3Rh
dGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmEKICAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6
OkVycm9yLCBTdHJpbmcoIkRlcHJlY2F0ZWQgYXR0ZW1wdCB0byBhY2Nlc3MgcHJvcGVydHkgJ3N1
cHBsZW1lbnRhbFN0cjEnIG9uIGEgbm9uLVRlc3RJbnRlcmZhY2Ugb2JqZWN0LiIpKTsKICAgICAg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgIH0K
LSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0
aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiVGhlIFRlc3RJbnRlcmZhY2Uuc3Vw
cGxlbWVudGFsU3RyMSBnZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgVGVz
dEludGVyZmFjZSIpKTsKICAgICB9CiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIFRlc3RJ
bnRlcmZhY2UmIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CkBAIC00MzMsNyArNDMzLDcgQEAg
RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMihFeGVjU3RhdGUq
IGV4ZWMsIEpTT2JqZWN0KiBzbG90QmEKICAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVy
cm9yLCBTdHJpbmcoIkRlcHJlY2F0ZWQgYXR0ZW1wdCB0byBhY2Nlc3MgcHJvcGVydHkgJ3N1cHBs
ZW1lbnRhbFN0cjInIG9uIGEgbm9uLVRlc3RJbnRlcmZhY2Ugb2JqZWN0LiIpKTsKICAgICAgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgIH0KLSAg
ICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJv
d1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiVGhlIFRlc3RJbnRlcmZhY2Uuc3VwcGxl
bWVudGFsU3RyMiBnZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgVGVzdElu
dGVyZmFjZSIpKTsKICAgICB9CiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIFRlc3RJbnRl
cmZhY2UmIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CkBAIC00NTQsNyArNDU0LDcgQEAgRW5j
b2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMyhFeGVjU3RhdGUqIGV4
ZWMsIEpTT2JqZWN0KiBzbG90QmEKICAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQt
PmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9y
LCBTdHJpbmcoIkRlcHJlY2F0ZWQgYXR0ZW1wdCB0byBhY2Nlc3MgcHJvcGVydHkgJ3N1cHBsZW1l
bnRhbFN0cjMnIG9uIGEgbm9uLVRlc3RJbnRlcmZhY2Ugb2JqZWN0LiIpKTsKICAgICAgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgIH0KLSAgICAg
ICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiVGhlIFRlc3RJbnRlcmZhY2Uuc3VwcGxlbWVu
dGFsU3RyMyBnZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgVGVzdEludGVy
ZmFjZSIpKTsKICAgICB9CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjYXN0ZWRUaGlzLT5z
dXBwbGVtZW50YWxTdHIzKGV4ZWMpKTsKIH0KQEAgLTQ3Miw3ICs0NzIsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxOb2RlKEV4ZWNTdGF0ZSogZXhlYywgSlNP
YmplY3QqIHNsb3RCYQogICAgICAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+YWRkQ29u
c29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIFN0cmlu
ZygiRGVwcmVjYXRlZCBhdHRlbXB0IHRvIGFjY2VzcyBwcm9wZXJ0eSAnc3VwcGxlbWVudGFsTm9k
ZScgb24gYSBub24tVGVzdEludGVyZmFjZSBvYmplY3QuIikpOwogICAgICAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICAgICAgfQotICAgICAgICByZXR1
cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJy
b3IoZXhlYywgQVNDSUlMaXRlcmFsKCJUaGUgVGVzdEludGVyZmFjZS5zdXBwbGVtZW50YWxOb2Rl
IGdldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiBUZXN0SW50ZXJmYWNlIikp
OwogICAgIH0KICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgVGVzdEludGVyZmFjZSYgaW1w
bCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTUzMiw3ICs1MzIsNyBAQCB2b2lkIHNldEpTVGVz
dEludGVyZmFjZUltcGxlbWVudHNTdHIyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIC8qIGJh
c2VPYmplY3QgKgogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBKU1Rlc3RJbnRlcmZhY2Uq
IGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEludGVyZmFjZSo+KEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7Ci0gICAg
ICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhl
YywgQVNDSUlMaXRlcmFsKCJUaGUgVGVzdEludGVyZmFjZS5pbXBsZW1lbnRzU3RyMiBzZXR0ZXIg
Y2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgVGVzdEludGVyZmFjZSIpKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KICAgICBUZXN0SW50ZXJmYWNlJiBpbXBsID0gY2FzdGVkVGhpcy0+
aW1wbCgpOwpAQCAtNTUxLDcgKzU1MSw3IEBAIHZvaWQgc2V0SlNUZXN0SW50ZXJmYWNlSW1wbGVt
ZW50c1N0cjMoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogLyogYmFzZU9iamVjdCAqCiAgICAg
VU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVzdEludGVyZmFjZSogY2FzdGVkVGhpcyA9IGpz
RHluYW1pY0Nhc3Q8SlNUZXN0SW50ZXJmYWNlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkp
OwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKLSAgICAgICAgdGhyb3dWTVR5cGVF
cnJvcihleGVjKTsKKyAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwo
IlRoZSBUZXN0SW50ZXJmYWNlLmltcGxlbWVudHNTdHIzIHNldHRlciBjYW4gb25seSBiZSB1c2Vk
IG9uIGluc3RhbmNlcyBvZiBUZXN0SW50ZXJmYWNlIikpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogICAgIGNhc3RlZFRoaXMtPnNldEltcGxlbWVudHNTdHIzKGV4ZWMsIHZhbHVlKTsKQEAgLTU2
Niw3ICs1NjYsNyBAQCB2b2lkIHNldEpTVGVzdEludGVyZmFjZUltcGxlbWVudHNOb2RlKEV4ZWNT
dGF0ZSogZXhlYywgSlNPYmplY3QqIC8qIGJhc2VPYmplY3QgKgogICAgIFVOVVNFRF9QQVJBTShl
eGVjKTsKICAgICBKU1Rlc3RJbnRlcmZhY2UqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpT
VGVzdEludGVyZmFjZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5M
SUtFTFkoIWNhc3RlZFRoaXMpKSB7Ci0gICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7Cisg
ICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJUaGUgVGVzdEludGVy
ZmFjZS5pbXBsZW1lbnRzTm9kZSBzZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMg
b2YgVGVzdEludGVyZmFjZSIpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBUZXN0SW50
ZXJmYWNlJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwpAQCAtNTk4LDcgKzU5OCw3IEBAIHZv
aWQgc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMihFeGVjU3RhdGUqIGV4ZWMsIEpT
T2JqZWN0KiAvKiBiYXNlT2JqZWN0CiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVz
dEludGVyZmFjZSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0SW50ZXJmYWNlKj4o
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhp
cykpIHsKLSAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgdGhyb3dWTVR5
cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIlRoZSBUZXN0SW50ZXJmYWNlLnN1cHBsZW1lbnRh
bFN0cjIgc2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mIFRlc3RJbnRlcmZh
Y2UiKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgVGVzdEludGVyZmFjZSYgaW1wbCA9
IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTYxNyw3ICs2MTcsNyBAQCB2b2lkIHNldEpTVGVzdElu
dGVyZmFjZVN1cHBsZW1lbnRhbFN0cjMoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogLyogYmFz
ZU9iamVjdAogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBKU1Rlc3RJbnRlcmZhY2UqIGNh
c3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEludGVyZmFjZSo+KEpTVmFsdWU6OmRlY29k
ZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7Ci0gICAgICAg
IHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYywg
QVNDSUlMaXRlcmFsKCJUaGUgVGVzdEludGVyZmFjZS5zdXBwbGVtZW50YWxTdHIzIHNldHRlciBj
YW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiBUZXN0SW50ZXJmYWNlIikpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogICAgIGNhc3RlZFRoaXMtPnNldFN1cHBsZW1lbnRhbFN0cjMoZXhl
YywgdmFsdWUpOwpAQCAtNjMyLDcgKzYzMiw3IEBAIHZvaWQgc2V0SlNUZXN0SW50ZXJmYWNlU3Vw
cGxlbWVudGFsTm9kZShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWN0CiAg
ICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVzdEludGVyZmFjZSogY2FzdGVkVGhpcyA9
IGpzRHluYW1pY0Nhc3Q8SlNUZXN0SW50ZXJmYWNlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1
ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKLSAgICAgICAgdGhyb3dWTVR5
cGVFcnJvcihleGVjKTsKKyAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVy
YWwoIlRoZSBUZXN0SW50ZXJmYWNlLnN1cHBsZW1lbnRhbE5vZGUgc2V0dGVyIGNhbiBvbmx5IGJl
IHVzZWQgb24gaW5zdGFuY2VzIG9mIFRlc3RJbnRlcmZhY2UiKSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAgICAgVGVzdEludGVyZmFjZSYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAg
LTY1NSw3ICs2NTUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEludGVy
ZmFjZVByb3RvdHlwZUZ1bmN0aW9uSW1wbGVtZW50c01ldGhvZDEoRQogICAgIEpTVmFsdWUgdGhp
c1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdEludGVyZmFjZSogY2Fz
dGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0SW50ZXJmYWNlKj4odGhpc1ZhbHVlKTsKICAg
ICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVF
cnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlM
aXRlcmFsKCJDYW4gb25seSBjYWxsIEpTVGVzdEludGVyZmFjZS5pbXBsZW1lbnRzTWV0aG9kMSBv
biBpbnN0YW5jZXMgb2YgSlNUZXN0SW50ZXJmYWNlIikpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1Rf
SU5IRVJJVFMoY2FzdGVkVGhpcywgSlNUZXN0SW50ZXJmYWNlOjppbmZvKCkpOwogICAgIFRlc3RJ
bnRlcmZhY2UmIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgaW1wbC5pbXBsZW1lbnRz
TWV0aG9kMSgpOwpAQCAtNjcwLDcgKzY3MCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25JbXBsZW1lbnRzTWV0aG9kMihFCiAg
ICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0
SW50ZXJmYWNlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RJbnRlcmZhY2UqPih0
aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCi0gICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJv
cihleGVjLCBBU0NJSUxpdGVyYWwoIkNhbiBvbmx5IGNhbGwgSlNUZXN0SW50ZXJmYWNlLmltcGxl
bWVudHNNZXRob2QyIG9uIGluc3RhbmNlcyBvZiBKU1Rlc3RJbnRlcmZhY2UiKSk7CiAgICAgQVNT
RVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RJbnRlcmZhY2U6OmluZm8o
KSk7CiAgICAgVGVzdEludGVyZmFjZSYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBp
ZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMikKQEAgLTY5OSw3ICs2OTksNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uSW1w
bGVtZW50c01ldGhvZDMoRQogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNW
YWx1ZSgpOwogICAgIEpTVGVzdEludGVyZmFjZSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8
SlNUZXN0SW50ZXJmYWNlKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRo
aXMpKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0
dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJDYW4gb25seSBjYWxsIEpT
VGVzdEludGVyZmFjZS5pbXBsZW1lbnRzTWV0aG9kMyBvbiBpbnN0YW5jZXMgb2YgSlNUZXN0SW50
ZXJmYWNlIikpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNU
ZXN0SW50ZXJmYWNlOjppbmZvKCkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2FzdGVk
VGhpcy0+aW1wbGVtZW50c01ldGhvZDMoZXhlYykpOwogfQpAQCAtNzIxLDcgKzcyMSw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rp
b25TdXBwbGVtZW50YWxNZXRob2QxCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0
VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0SW50ZXJmYWNlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWlj
Q2FzdDxKU1Rlc3RJbnRlcmZhY2UqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2Fz
dGVkVGhpcykpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAg
ICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIkNhbiBvbmx5IGNh
bGwgSlNUZXN0SW50ZXJmYWNlLnN1cHBsZW1lbnRhbE1ldGhvZDEgb24gaW5zdGFuY2VzIG9mIEpT
VGVzdEludGVyZmFjZSIpKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRo
aXMsIEpTVGVzdEludGVyZmFjZTo6aW5mbygpKTsKICAgICBUZXN0SW50ZXJmYWNlJiBpbXBsID0g
Y2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIFRlc3RTdXBwbGVtZW50YWw6OnN1cHBsZW1lbnRhbE1l
dGhvZDEoJmltcGwpOwpAQCAtNzM2LDcgKzczNiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25TdXBwbGVtZW50YWxNZXRob2Qy
CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNU
ZXN0SW50ZXJmYWNlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RJbnRlcmZhY2Uq
Pih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCi0gICAgICAgIHJl
dHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVF
cnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIkNhbiBvbmx5IGNhbGwgSlNUZXN0SW50ZXJmYWNlLnN1
cHBsZW1lbnRhbE1ldGhvZDIgb24gaW5zdGFuY2VzIG9mIEpTVGVzdEludGVyZmFjZSIpKTsKICAg
ICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTVGVzdEludGVyZmFjZTo6
aW5mbygpKTsKICAgICBUZXN0SW50ZXJmYWNlJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwog
ICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAyKQpAQCAtNzY1LDcgKzc2NSw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rp
b25TdXBwbGVtZW50YWxNZXRob2QzCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0
VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0SW50ZXJmYWNlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWlj
Q2FzdDxKU1Rlc3RJbnRlcmZhY2UqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2Fz
dGVkVGhpcykpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAg
ICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIkNhbiBvbmx5IGNh
bGwgSlNUZXN0SW50ZXJmYWNlLnN1cHBsZW1lbnRhbE1ldGhvZDMgb24gaW5zdGFuY2VzIG9mIEpT
VGVzdEludGVyZmFjZSIpKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRo
aXMsIEpTVGVzdEludGVyZmFjZTo6aW5mbygpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGNhc3RlZFRoaXMtPnN1cHBsZW1lbnRhbE1ldGhvZDMoZXhlYykpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCmluZGV4IDA5MTEzYmQ5OTNkMmE5ZWZk
M2QyOTRhNWVhZGFlOGY3MTk2NmVjYTYuLmFiYzdjM2ZjMmMwZTMwOThhYjM2YWVhNGVkNmY1MDRh
YjY5YjM3MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5j
cHAKQEAgLTE0MCwxMyArMTQwLDEzIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kCiAgICAgSlNW
YWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0TWVkaWFR
dWVyeUxpc3RMaXN0ZW5lciogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TWVkaWFR
dWVyeUxpc3RMaXN0ZW5lcio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRU
aGlzKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJl
dHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiQ2FuIG9ubHkgY2FsbCBK
U1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLm1ldGhvZCBvbiBpbnN0YW5jZXMgb2YgSlNUZXN0
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciIpKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRT
KGNhc3RlZFRoaXMsIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OmluZm8oKSk7CiAgICAg
VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXImIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAg
ICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd1ZN
RXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwogICAgIGlm
ICghZXhlYy0+YXJndW1lbnQoMCkuaXNGdW5jdGlvbigpKQotICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywg
QVNDSUlMaXRlcmFsKCJBcmd1bWVudCAxICgnbGlzdGVuZXInKSB0byBUZXN0TWVkaWFRdWVyeUxp
c3RMaXN0ZW5lci5pbXBsLm1ldGhvZCBtdXN0IGJlIGEgZnVuY3Rpb24iKSk7CiAgICAgUmVmUHRy
PE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+IGxpc3RlbmVyID0gSlNNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyOjpjcmVhdGUoYXNPYmplY3QoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpLCBjYXN0ZWRU
aGlzLT5nbG9iYWxPYmplY3QoKSk7CiAgICAgaW1wbC5tZXRob2QobGlzdGVuZXIpOwogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCmluZGV4IDIxNzYw
NGE1NTBkNzU4YzBlMzU1MTA4N2RmYWQxNzkxZTkyMzBjYzQuLjhjZmE3Yzc5ZDIwYzViOTEyYjYx
MmRkM2Q1ZDYwMTc0YTlkN2EyM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCkBAIC0xNTMsNyArMTUzLDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU1Rlc3RPYmpDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0
SlNUZXN0T2JqKEV4ZWNTdGF0ZSoKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkK
ICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVu
dHNFcnJvcihleGVjKSk7CiAgICAgaWYgKCFleGVjLT5hcmd1bWVudCgwKS5pc0Z1bmN0aW9uKCkp
Ci0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4g
dGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIkFyZ3VtZW50IDEgKCd0ZXN0Q2Fs
bGJhY2snKSB0byBUZXN0T2JqLmltcGwuY29uc3RydWN0b3JDYWxsYmFjayBtdXN0IGJlIGEgZnVu
Y3Rpb24iKSk7CiAgICAgUmVmUHRyPFRlc3RDYWxsYmFjaz4gdGVzdENhbGxiYWNrID0gSlNUZXN0
Q2FsbGJhY2s6OmNyZWF0ZShhc09iamVjdChleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSksIGNh
c3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpKTsKICAgICBSZWZQdHI8VGVzdE9iaj4gb2JqZWN0ID0g
VGVzdE9iajo6Y3JlYXRlKHRlc3RDYWxsYmFjayk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShhc09iamVjdCh0b0pTKGV4ZWMsIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBvYmplY3Qu
Z2V0KCkpKSk7CkBAIC00MDMsNyArNDAzLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVh
ZE9ubHlMb25nQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW4KICAg
ICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3Nh
Z2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBTdHJpbmcoIkRlcHJlY2F0ZWQgYXR0
ZW1wdCB0byBhY2Nlc3MgcHJvcGVydHkgJ3JlYWRPbmx5TG9uZ0F0dHInIG9uIGEgbm9uLVRlc3RP
Ymogb2JqZWN0LiIpKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhl
Yyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgi
VGhlIFRlc3RPYmoucmVhZE9ubHlMb25nQXR0ciBnZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBp
bnN0YW5jZXMgb2YgVGVzdE9iaiIpKTsKICAgICB9CiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwog
ICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CkBAIC00MjIsNyArNDIyLDcg
QEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVhZE9ubHlTdHJpbmdBdHRyKEV4ZWNTdGF0ZSog
ZXhlYywgSlNPYmplY3QqIHNsb3RCYXNlLAogICAgICAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6
RXJyb3IsIFN0cmluZygiRGVwcmVjYXRlZCBhdHRlbXB0IHRvIGFjY2VzcyBwcm9wZXJ0eSAncmVh
ZE9ubHlTdHJpbmdBdHRyJyBvbiBhIG5vbi1UZXN0T2JqIG9iamVjdC4iKSk7CiAgICAgICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAgICB9Ci0gICAg
ICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIlRoZSBUZXN0T2JqLnJlYWRPbmx5U3RyaW5n
QXR0ciBnZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgVGVzdE9iaiIpKTsK
ICAgICB9CiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0
ZWRUaGlzLT5pbXBsKCk7CkBAIC00NDEsNyArNDQxLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqUmVhZE9ubHlUZXN0T2JqQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFz
ZSwKICAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZENvbnNvbGVNZXNzYWdl
KE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBTdHJpbmcoIkRlcHJlY2F0
ZWQgYXR0ZW1wdCB0byBhY2Nlc3MgcHJvcGVydHkgJ3JlYWRPbmx5VGVzdE9iakF0dHInIG9uIGEg
bm9uLVRlc3RPYmogb2JqZWN0LiIpKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBl
RXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJ
TGl0ZXJhbCgiVGhlIFRlc3RPYmoucmVhZE9ubHlUZXN0T2JqQXR0ciBnZXR0ZXIgY2FuIG9ubHkg
YmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgVGVzdE9iaiIpKTsKICAgICB9CiAgICAgVU5VU0VEX1BB
UkFNKGV4ZWMpOwogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CkBAIC00
ODAsNyArNDgwLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0b3JUZXN0U3Vi
T2JqKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNsb3RCYXMKICAgICAgICAgICAgIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBN
ZXNzYWdlTGV2ZWw6OkVycm9yLCBTdHJpbmcoIkRlcHJlY2F0ZWQgYXR0ZW1wdCB0byBhY2Nlc3Mg
cHJvcGVydHkgJ1Rlc3RTdWJPYmonIG9uIGEgbm9uLVRlc3RPYmogb2JqZWN0LiIpKTsKICAgICAg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgIH0K
LSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0
aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiVGhlIFRlc3RPYmouVGVzdFN1Yk9i
aiBnZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgVGVzdE9iaiIpKTsKICAg
ICB9CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RTdWJPYmo6OmdldENvbnN0cnVj
dG9yKGV4ZWMtPnZtKCksIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpKSk7CiB9CkBAIC00OTYs
NyArNDk2LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqVGVzdFN1Yk9iakVuYWJsZWRCeVNl
dHRpbmdDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEoKICAgICAgICAgICAgIHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNz
YWdlTGV2ZWw6OkVycm9yLCBTdHJpbmcoIkRlcHJlY2F0ZWQgYXR0ZW1wdCB0byBhY2Nlc3MgcHJv
cGVydHkgJ1Rlc3RTdWJPYmpFbmFibGVkQnlTZXR0aW5nJyBvbiBhIG5vbi1UZXN0T2JqIG9iamVj
dC4iKSk7CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
OwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAg
ICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIlRoZSBUZXN0
T2JqLlRlc3RTdWJPYmpFbmFibGVkQnlTZXR0aW5nIGdldHRlciBjYW4gb25seSBiZSB1c2VkIG9u
IGluc3RhbmNlcyBvZiBUZXN0T2JqIikpOwogICAgIH0KICAgICBpZiAoIWNhc3RlZFRoaXMtPmlt
cGwoKS5mcmFtZSgpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwpAQCAtNTE3LDcgKzUxNyw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakVudW1BdHRy
KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWCiAgICAgICAg
ICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291
cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgU3RyaW5nKCJEZXByZWNhdGVkIGF0dGVtcHQg
dG8gYWNjZXNzIHByb3BlcnR5ICdlbnVtQXR0cicgb24gYSBub24tVGVzdE9iaiBvYmplY3QuIikp
OwogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAg
ICAgICAgfQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAg
cmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJUaGUgVGVzdE9iai5l
bnVtQXR0ciBnZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgVGVzdE9iaiIp
KTsKICAgICB9CiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIFRlc3RPYmomIGltcGwgPSBj
YXN0ZWRUaGlzLT5pbXBsKCk7CkBAIC01MzYsNyArNTM2LDcgQEAgRW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqQnl0ZUF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29k
ZWRKU1YKICAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZENvbnNvbGVNZXNz
YWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBTdHJpbmcoIkRlcHJl
Y2F0ZWQgYXR0ZW1wdCB0byBhY2Nlc3MgcHJvcGVydHkgJ2J5dGVBdHRyJyBvbiBhIG5vbi1UZXN0
T2JqIG9iamVjdC4iKSk7CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwo
IlRoZSBUZXN0T2JqLmJ5dGVBdHRyIGdldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNl
cyBvZiBUZXN0T2JqIikpOwogICAgIH0KICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgVGVz
dE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTU1NSw3ICs1NTUsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpPY3RldEF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCog
c2xvdEJhc2UsIEVuY29kZWRKUwogICAgICAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+
YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3Is
IFN0cmluZygiRGVwcmVjYXRlZCBhdHRlbXB0IHRvIGFjY2VzcyBwcm9wZXJ0eSAnb2N0ZXRBdHRy
JyBvbiBhIG5vbi1UZXN0T2JqIG9iamVjdC4iKSk7CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0aHJv
d1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVj
LCBBU0NJSUxpdGVyYWwoIlRoZSBUZXN0T2JqLm9jdGV0QXR0ciBnZXR0ZXIgY2FuIG9ubHkgYmUg
dXNlZCBvbiBpbnN0YW5jZXMgb2YgVGVzdE9iaiIpKTsKICAgICB9CiAgICAgVU5VU0VEX1BBUkFN
KGV4ZWMpOwogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CkBAIC01NzQs
NyArNTc0LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU2hvcnRBdHRyKEV4ZWNTdGF0ZSog
ZXhlYywgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlMKICAgICAgICAgICAgIHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNz
YWdlTGV2ZWw6OkVycm9yLCBTdHJpbmcoIkRlcHJlY2F0ZWQgYXR0ZW1wdCB0byBhY2Nlc3MgcHJv
cGVydHkgJ3Nob3J0QXR0cicgb24gYSBub24tVGVzdE9iaiBvYmplY3QuIikpOwogICAgICAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICAgICAgfQotICAg
ICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93
Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJUaGUgVGVzdE9iai5zaG9ydEF0dHIgZ2V0
dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mIFRlc3RPYmoiKSk7CiAgICAgfQog
ICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+
aW1wbCgpOwpAQCAtNTkzLDcgKzU5Myw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialVuc2ln
bmVkU2hvcnRBdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNsb3RCYXNlLCBFCiAgICAg
ICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdl
U291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgU3RyaW5nKCJEZXByZWNhdGVkIGF0dGVt
cHQgdG8gYWNjZXNzIHByb3BlcnR5ICd1bnNpZ25lZFNob3J0QXR0cicgb24gYSBub24tVGVzdE9i
aiBvYmplY3QuIikpOwogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVj
KTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJU
aGUgVGVzdE9iai51bnNpZ25lZFNob3J0QXR0ciBnZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBp
bnN0YW5jZXMgb2YgVGVzdE9iaiIpKTsKICAgICB9CiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwog
ICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CkBAIC02MTIsNyArNjEyLDcg
QEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTG9uZ0F0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09i
amVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1YKICAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6
OkVycm9yLCBTdHJpbmcoIkRlcHJlY2F0ZWQgYXR0ZW1wdCB0byBhY2Nlc3MgcHJvcGVydHkgJ2xv
bmdBdHRyJyBvbiBhIG5vbi1UZXN0T2JqIG9iamVjdC4iKSk7CiAgICAgICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJv
cihleGVjLCBBU0NJSUxpdGVyYWwoIlRoZSBUZXN0T2JqLmxvbmdBdHRyIGdldHRlciBjYW4gb25s
eSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiBUZXN0T2JqIikpOwogICAgIH0KICAgICBVTlVTRURf
UEFSQU0oZXhlYyk7CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAg
LTYzMSw3ICs2MzEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpMb25nTG9uZ0F0dHIoRXhl
Y1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZQogICAgICAgICAgICAgc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMs
IE1lc3NhZ2VMZXZlbDo6RXJyb3IsIFN0cmluZygiRGVwcmVjYXRlZCBhdHRlbXB0IHRvIGFjY2Vz
cyBwcm9wZXJ0eSAnbG9uZ0xvbmdBdHRyJyBvbiBhIG5vbi1UZXN0T2JqIG9iamVjdC4iKSk7CiAg
ICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAg
ICB9Ci0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1
cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIlRoZSBUZXN0T2JqLmxvbmdM
b25nQXR0ciBnZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgVGVzdE9iaiIp
KTsKICAgICB9CiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIFRlc3RPYmomIGltcGwgPSBj
YXN0ZWRUaGlzLT5pbXBsKCk7CkBAIC02NTAsNyArNjUwLDcgQEAgRW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqVW5zaWduZWRMb25nTG9uZ0F0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xv
dEJhc2UKICAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZENvbnNvbGVNZXNz
YWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBTdHJpbmcoIkRlcHJl
Y2F0ZWQgYXR0ZW1wdCB0byBhY2Nlc3MgcHJvcGVydHkgJ3Vuc2lnbmVkTG9uZ0xvbmdBdHRyJyBv
biBhIG5vbi1UZXN0T2JqIG9iamVjdC4iKSk7CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBB
U0NJSUxpdGVyYWwoIlRoZSBUZXN0T2JqLnVuc2lnbmVkTG9uZ0xvbmdBdHRyIGdldHRlciBjYW4g
b25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiBUZXN0T2JqIikpOwogICAgIH0KICAgICBVTlVT
RURfUEFSQU0oZXhlYyk7CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsK
QEAgLTY2OSw3ICs2NjksNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpbmdBdHRyKEV4
ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSgogICAgICAgICAgICAg
c2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6
SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIFN0cmluZygiRGVwcmVjYXRlZCBhdHRlbXB0IHRvIGFj
Y2VzcyBwcm9wZXJ0eSAnc3RyaW5nQXR0cicgb24gYSBub24tVGVzdE9iaiBvYmplY3QuIikpOwog
ICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICAg
ICAgfQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0
dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJUaGUgVGVzdE9iai5zdHJp
bmdBdHRyIGdldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiBUZXN0T2JqIikp
OwogICAgIH0KICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNh
c3RlZFRoaXMtPmltcGwoKTsKQEAgLTY4OCw3ICs2ODgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpUZXN0T2JqQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5j
b2RlZAogICAgICAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+YWRkQ29uc29sZU1lc3Nh
Z2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIFN0cmluZygiRGVwcmVj
YXRlZCBhdHRlbXB0IHRvIGFjY2VzcyBwcm9wZXJ0eSAndGVzdE9iakF0dHInIG9uIGEgbm9uLVRl
c3RPYmogb2JqZWN0LiIpKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Io
ZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJh
bCgiVGhlIFRlc3RPYmoudGVzdE9iakF0dHIgZ2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5z
dGFuY2VzIG9mIFRlc3RPYmoiKSk7CiAgICAgfQogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAg
ICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwpAQCAtNzA3LDcgKzcwNyw3IEBA
IEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialhNTE9iakF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09i
amVjdCogc2xvdEJhc2UsIEVuY29kZWRKCiAgICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250
ZXh0LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpF
cnJvciwgU3RyaW5nKCJEZXByZWNhdGVkIGF0dGVtcHQgdG8gYWNjZXNzIHByb3BlcnR5ICdYTUxP
YmpBdHRyJyBvbiBhIG5vbi1UZXN0T2JqIG9iamVjdC4iKSk7CiAgICAgICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJv
cihleGVjLCBBU0NJSUxpdGVyYWwoIlRoZSBUZXN0T2JqLlhNTE9iakF0dHIgZ2V0dGVyIGNhbiBv
bmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mIFRlc3RPYmoiKSk7CiAgICAgfQogICAgIFVOVVNF
RF9QQVJBTShleGVjKTsKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwpA
QCAtNzI2LDcgKzcyNiw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNyZWF0ZShFeGVjU3Rh
dGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsCiAgICAgICAgICAgICBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpK
UywgTWVzc2FnZUxldmVsOjpFcnJvciwgU3RyaW5nKCJEZXByZWNhdGVkIGF0dGVtcHQgdG8gYWNj
ZXNzIHByb3BlcnR5ICdjcmVhdGUnIG9uIGEgbm9uLVRlc3RPYmogb2JqZWN0LiIpKTsKICAgICAg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgIH0K
LSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0
aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiVGhlIFRlc3RPYmouY3JlYXRlIGdl
dHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiBUZXN0T2JqIikpOwogICAgIH0K
ICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMt
PmltcGwoKTsKQEAgLTc0NSw3ICs3NDUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZs
ZWN0ZWRTdHJpbmdBdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNsb3RCYXNlLAogICAg
ICAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIFN0cmluZygiRGVwcmVjYXRlZCBhdHRl
bXB0IHRvIGFjY2VzcyBwcm9wZXJ0eSAncmVmbGVjdGVkU3RyaW5nQXR0cicgb24gYSBub24tVGVz
dE9iaiBvYmplY3QuIikpOwogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihl
eGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFs
KCJUaGUgVGVzdE9iai5yZWZsZWN0ZWRTdHJpbmdBdHRyIGdldHRlciBjYW4gb25seSBiZSB1c2Vk
IG9uIGluc3RhbmNlcyBvZiBUZXN0T2JqIikpOwogICAgIH0KICAgICBVTlVTRURfUEFSQU0oZXhl
Yyk7CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTc2NCw3ICs3
NjQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRJbnRlZ3JhbEF0dHIoRXhl
Y1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEJhcwogICAgICAgICAgICAgc2NyaXB0RXhlY3V0
aW9uQ29udGV4dC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VM
ZXZlbDo6RXJyb3IsIFN0cmluZygiRGVwcmVjYXRlZCBhdHRlbXB0IHRvIGFjY2VzcyBwcm9wZXJ0
eSAncmVmbGVjdGVkSW50ZWdyYWxBdHRyJyBvbiBhIG5vbi1UZXN0T2JqIG9iamVjdC4iKSk7CiAg
ICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAg
ICB9Ci0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1
cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIlRoZSBUZXN0T2JqLnJlZmxl
Y3RlZEludGVncmFsQXR0ciBnZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2Yg
VGVzdE9iaiIpKTsKICAgICB9CiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIFRlc3RPYmom
IGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CkBAIC03ODMsNyArNzgzLDcgQEAgRW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqUmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHIoRXhlY1N0YXRlKiBl
eGVjLCBKU09iamVjdCoKICAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZENv
bnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBTdHJp
bmcoIkRlcHJlY2F0ZWQgYXR0ZW1wdCB0byBhY2Nlc3MgcHJvcGVydHkgJ3JlZmxlY3RlZFVuc2ln
bmVkSW50ZWdyYWxBdHRyJyBvbiBhIG5vbi1UZXN0T2JqIG9iamVjdC4iKSk7CiAgICAgICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAgICB9Ci0gICAg
ICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIlRoZSBUZXN0T2JqLnJlZmxlY3RlZFVuc2ln
bmVkSW50ZWdyYWxBdHRyIGdldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiBU
ZXN0T2JqIikpOwogICAgIH0KICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgVGVzdE9iaiYg
aW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTgwMiw3ICs4MDIsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRCb29sZWFuQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2Jq
ZWN0KiBzbG90QmFzZQogICAgICAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+YWRkQ29u
c29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIFN0cmlu
ZygiRGVwcmVjYXRlZCBhdHRlbXB0IHRvIGFjY2VzcyBwcm9wZXJ0eSAncmVmbGVjdGVkQm9vbGVh
bkF0dHInIG9uIGEgbm9uLVRlc3RPYmogb2JqZWN0LiIpKTsKICAgICAgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJu
IHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9y
KGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiVGhlIFRlc3RPYmoucmVmbGVjdGVkQm9vbGVhbkF0dHIgZ2V0
dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mIFRlc3RPYmoiKSk7CiAgICAgfQog
ICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+
aW1wbCgpOwpAQCAtODIxLDcgKzgyMSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxl
Y3RlZFVSTEF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEJhc2UsIEVuCiAgICAg
ICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdl
U291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgU3RyaW5nKCJEZXByZWNhdGVkIGF0dGVt
cHQgdG8gYWNjZXNzIHByb3BlcnR5ICdyZWZsZWN0ZWRVUkxBdHRyJyBvbiBhIG5vbi1UZXN0T2Jq
IG9iamVjdC4iKSk7CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMp
OworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIlRo
ZSBUZXN0T2JqLnJlZmxlY3RlZFVSTEF0dHIgZ2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5z
dGFuY2VzIG9mIFRlc3RPYmoiKSk7CiAgICAgfQogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAg
ICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwpAQCAtODQwLDcgKzg0MCw3IEBA
IEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIoRXhlY1N0YXRlKiBl
eGVjLCBKU09iamVjdCogc2xvdEJhc2UsCiAgICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250
ZXh0LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpF
cnJvciwgU3RyaW5nKCJEZXByZWNhdGVkIGF0dGVtcHQgdG8gYWNjZXNzIHByb3BlcnR5ICdyZWZs
ZWN0ZWRTdHJpbmdBdHRyJyBvbiBhIG5vbi1UZXN0T2JqIG9iamVjdC4iKSk7CiAgICAgICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAgICB9Ci0gICAg
ICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIlRoZSBUZXN0T2JqLnJlZmxlY3RlZFN0cmlu
Z0F0dHIgZ2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mIFRlc3RPYmoiKSk7
CiAgICAgfQogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBUZXN0T2JqJiBpbXBsID0gY2Fz
dGVkVGhpcy0+aW1wbCgpOwpAQCAtODU5LDcgKzg1OSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9ialJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0
KiBzCiAgICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5hZGRDb25zb2xlTWVzc2Fn
ZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgU3RyaW5nKCJEZXByZWNh
dGVkIGF0dGVtcHQgdG8gYWNjZXNzIHByb3BlcnR5ICdyZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0
dHInIG9uIGEgbm9uLVRlc3RPYmogb2JqZWN0LiIpKTsKICAgICAgICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMsIEFTQ0lJTGl0ZXJhbCgiVGhlIFRlc3RPYmoucmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRy
IGdldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiBUZXN0T2JqIikpOwogICAg
IH0KICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRo
aXMtPmltcGwoKTsKQEAgLTg3OCw3ICs4NzgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpS
ZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbAog
ICAgICAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVz
c2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIFN0cmluZygiRGVwcmVjYXRlZCBh
dHRlbXB0IHRvIGFjY2VzcyBwcm9wZXJ0eSAncmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHInIG9u
IGEgbm9uLVRlc3RPYmogb2JqZWN0LiIpKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRocm93Vk1U
eXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFT
Q0lJTGl0ZXJhbCgiVGhlIFRlc3RPYmoucmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIgZ2V0dGVy
IGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mIFRlc3RPYmoiKSk7CiAgICAgfQogICAg
IFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1w
bCgpOwpAQCAtODk3LDcgKzg5Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3Rl
ZEN1c3RvbVVSTEF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEJhCiAgICAgICAg
ICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291
cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgU3RyaW5nKCJEZXByZWNhdGVkIGF0dGVtcHQg
dG8gYWNjZXNzIHByb3BlcnR5ICdyZWZsZWN0ZWRDdXN0b21VUkxBdHRyJyBvbiBhIG5vbi1UZXN0
T2JqIG9iamVjdC4iKSk7CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwo
IlRoZSBUZXN0T2JqLnJlZmxlY3RlZEN1c3RvbVVSTEF0dHIgZ2V0dGVyIGNhbiBvbmx5IGJlIHVz
ZWQgb24gaW5zdGFuY2VzIG9mIFRlc3RPYmoiKSk7CiAgICAgfQogICAgIFVOVVNFRF9QQVJBTShl
eGVjKTsKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwpAQCAtOTE2LDcg
KzkxNiw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialR5cGVkQXJyYXlBdHRyKEV4ZWNTdGF0
ZSogZXhlYywgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvCiAgICAgICAgICAgICBzY3JpcHRFeGVj
dXRpb25Db250ZXh0LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2Fn
ZUxldmVsOjpFcnJvciwgU3RyaW5nKCJEZXByZWNhdGVkIGF0dGVtcHQgdG8gYWNjZXNzIHByb3Bl
cnR5ICd0eXBlZEFycmF5QXR0cicgb24gYSBub24tVGVzdE9iaiBvYmplY3QuIikpOwogICAgICAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICAgICAgfQot
ICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJUaGUgVGVzdE9iai50eXBlZEFycmF5
QXR0ciBnZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgVGVzdE9iaiIpKTsK
ICAgICB9CiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0
ZWRUaGlzLT5pbXBsKCk7CkBAIC05MzUsNyArOTM1LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xv
dEIKICAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZENvbnNvbGVNZXNzYWdl
KE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBTdHJpbmcoIkRlcHJlY2F0
ZWQgYXR0ZW1wdCB0byBhY2Nlc3MgcHJvcGVydHkgJ2F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uJyBv
biBhIG5vbi1UZXN0T2JqIG9iamVjdC4iKSk7CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBB
U0NJSUxpdGVyYWwoIlRoZSBUZXN0T2JqLmF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uIGdldHRlciBj
YW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiBUZXN0T2JqIikpOwogICAgIH0KICAgICBF
eGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1w
bCgpOwpAQCAtOTU1LDcgKzk1NSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakF0dHJXaXRo
U2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNsb3RCCiAgICAgICAg
ICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291
cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgU3RyaW5nKCJEZXByZWNhdGVkIGF0dGVtcHQg
dG8gYWNjZXNzIHByb3BlcnR5ICdhdHRyV2l0aFNldHRlckV4Y2VwdGlvbicgb24gYSBub24tVGVz
dE9iaiBvYmplY3QuIikpOwogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihl
eGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFs
KCJUaGUgVGVzdE9iai5hdHRyV2l0aFNldHRlckV4Y2VwdGlvbiBnZXR0ZXIgY2FuIG9ubHkgYmUg
dXNlZCBvbiBpbnN0YW5jZXMgb2YgVGVzdE9iaiIpKTsKICAgICB9CiAgICAgVU5VU0VEX1BBUkFN
KGV4ZWMpOwogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CkBAIC05NzQs
NyArOTc0LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU3RyaW5nQXR0cldpdGhHZXR0ZXJF
eGNlcHRpb24oRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCoKICAgICAgICAgICAgIHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNz
YWdlTGV2ZWw6OkVycm9yLCBTdHJpbmcoIkRlcHJlY2F0ZWQgYXR0ZW1wdCB0byBhY2Nlc3MgcHJv
cGVydHkgJ3N0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uJyBvbiBhIG5vbi1UZXN0T2JqIG9i
amVjdC4iKSk7CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwor
ICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIlRoZSBU
ZXN0T2JqLnN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uIGdldHRlciBjYW4gb25seSBiZSB1
c2VkIG9uIGluc3RhbmNlcyBvZiBUZXN0T2JqIikpOwogICAgIH0KICAgICBFeGNlcHRpb25Db2Rl
IGVjID0gMDsKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwpAQCAtOTk0
LDcgKzk5NCw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmluZ0F0dHJXaXRoU2V0dGVy
RXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqCiAgICAgICAgICAgICBzY3JpcHRF
eGVjdXRpb25Db250ZXh0LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVz
c2FnZUxldmVsOjpFcnJvciwgU3RyaW5nKCJEZXByZWNhdGVkIGF0dGVtcHQgdG8gYWNjZXNzIHBy
b3BlcnR5ICdzdHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbicgb24gYSBub24tVGVzdE9iaiBv
YmplY3QuIikpOwogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsK
KyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJUaGUg
VGVzdE9iai5zdHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbiBnZXR0ZXIgY2FuIG9ubHkgYmUg
dXNlZCBvbiBpbnN0YW5jZXMgb2YgVGVzdE9iaiIpKTsKICAgICB9CiAgICAgVU5VU0VEX1BBUkFN
KGV4ZWMpOwogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CkBAIC0xMDEz
LDcgKzEwMTMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDdXN0b21BdHRyKEV4ZWNTdGF0
ZSogZXhlYywgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSgogICAgICAgICAgICAgc2NyaXB0
RXhlY3V0aW9uQ29udGV4dC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1l
c3NhZ2VMZXZlbDo6RXJyb3IsIFN0cmluZygiRGVwcmVjYXRlZCBhdHRlbXB0IHRvIGFjY2VzcyBw
cm9wZXJ0eSAnY3VzdG9tQXR0cicgb24gYSBub24tVGVzdE9iaiBvYmplY3QuIikpOwogICAgICAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICAgICAgfQot
ICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJUaGUgVGVzdE9iai5jdXN0b21BdHRy
IGdldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiBUZXN0T2JqIikpOwogICAg
IH0KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNhc3RlZFRoaXMtPmN1c3RvbUF0dHIoZXhl
YykpOwogfQpAQCAtMTAyOSw3ICsxMDI5LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqV2l0
aFNjcmlwdFN0YXRlQXR0cmlidXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNsb3QKICAg
ICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3Nh
Z2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBTdHJpbmcoIkRlcHJlY2F0ZWQgYXR0
ZW1wdCB0byBhY2Nlc3MgcHJvcGVydHkgJ3dpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZScgb24gYSBu
b24tVGVzdE9iaiBvYmplY3QuIikpOwogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVF
cnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlM
aXRlcmFsKCJUaGUgVGVzdE9iai53aXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGUgZ2V0dGVyIGNhbiBv
bmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mIFRlc3RPYmoiKSk7CiAgICAgfQogICAgIFRlc3RP
YmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBqc051
bWJlcihpbXBsLndpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZShleGVjKSk7CkBAIC0xMDQ3LDcgKzEw
NDcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dEF0dHJpYnV0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTTwogICAgICAgICAgICAgc2NyaXB0RXhlY3V0
aW9uQ29udGV4dC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VM
ZXZlbDo6RXJyb3IsIFN0cmluZygiRGVwcmVjYXRlZCBhdHRlbXB0IHRvIGFjY2VzcyBwcm9wZXJ0
eSAnd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGUnIG9uIGEgbm9uLVRlc3RPYmog
b2JqZWN0LiIpKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7
CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiVGhl
IFRlc3RPYmoud2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGUgZ2V0dGVyIGNhbiBv
bmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mIFRlc3RPYmoiKSk7CiAgICAgfQogICAgIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdENvbnRleHQgPSBqc0Nhc3Q8SlNET01HbG9iYWxPYmpl
Y3QqPihleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCk7CiAgICAgaWYgKCFzY3JpcHRDb250ZXh0KQpAQCAtMTA2OCw3ICsxMDY4LDcgQEAgRW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqV2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKEV4ZWNTdGF0
ZSogZXhlYywgSlNPYmplY3QKICAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFk
ZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBT
dHJpbmcoIkRlcHJlY2F0ZWQgYXR0ZW1wdCB0byBhY2Nlc3MgcHJvcGVydHkgJ3dpdGhTY3JpcHRT
dGF0ZUF0dHJpYnV0ZVJhaXNlcycgb24gYSBub24tVGVzdE9iaiBvYmplY3QuIikpOwogICAgICAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICAgICAgfQot
ICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJUaGUgVGVzdE9iai53aXRoU2NyaXB0
U3RhdGVBdHRyaWJ1dGVSYWlzZXMgZ2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2Vz
IG9mIFRlc3RPYmoiKSk7CiAgICAgfQogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIFRl
c3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CkBAIC0xMDg4LDcgKzEwODgsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0
ZVJhaXNlcyhFeGVjU3RhdGUqIGV4ZQogICAgICAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4
dC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJy
b3IsIFN0cmluZygiRGVwcmVjYXRlZCBhdHRlbXB0IHRvIGFjY2VzcyBwcm9wZXJ0eSAnd2l0aFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMnIG9uIGEgbm9uLVRlc3RPYmogb2Jq
ZWN0LiIpKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7Cisg
ICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiVGhlIFRl
c3RPYmoud2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMgZ2V0dGVyIGNh
biBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mIFRlc3RPYmoiKSk7CiAgICAgfQogICAgIEV4
Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdENv
bnRleHQgPSBqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihleGVjLT5sZXhpY2FsR2xvYmFsT2Jq
ZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CkBAIC0xMTExLDcgKzExMTEsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlw
dFN0YXRlQXR0cmlidXRlKEV4ZWNTdAogICAgICAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4
dC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJy
b3IsIFN0cmluZygiRGVwcmVjYXRlZCBhdHRlbXB0IHRvIGFjY2VzcyBwcm9wZXJ0eSAnd2l0aFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZScgb24gYSBub24tVGVz
dE9iaiBvYmplY3QuIikpOwogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihl
eGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFs
KCJUaGUgVGVzdE9iai53aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0
cmlidXRlIGdldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiBUZXN0T2JqIikp
OwogICAgIH0KICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRDb250ZXh0ID0ganND
YXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpOwogICAgIGlmICghc2NyaXB0Q29udGV4dCkKQEAgLTExMzIs
NyArMTEzMiw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25D
b250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoCiAgICAgICAgICAgICBzY3JpcHRF
eGVjdXRpb25Db250ZXh0LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVz
c2FnZUxldmVsOjpFcnJvciwgU3RyaW5nKCJEZXByZWNhdGVkIGF0dGVtcHQgdG8gYWNjZXNzIHBy
b3BlcnR5ICd3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRl
UmFpc2VzJyBvbiBhIG5vbi1UZXN0T2JqIG9iamVjdC4iKSk7CiAgICAgICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJv
cihleGVjLCBBU0NJSUxpdGVyYWwoIlRoZSBUZXN0T2JqLndpdGhTY3JpcHRFeGVjdXRpb25Db250
ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMgZ2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQg
b24gaW5zdGFuY2VzIG9mIFRlc3RPYmoiKSk7CiAgICAgfQogICAgIEV4Y2VwdGlvbkNvZGUgZWMg
PSAwOwogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdENvbnRleHQgPSBqc0Nhc3Q8
SlNET01HbG9iYWxPYmplY3QqPihleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCk7CkBAIC0xMTU1LDcgKzExNTUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlV2l0aFNwYWNl
c0F0dHJpYgogICAgICAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+YWRkQ29uc29sZU1l
c3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIFN0cmluZygiRGVw
cmVjYXRlZCBhdHRlbXB0IHRvIGFjY2VzcyBwcm9wZXJ0eSAnd2l0aFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGUnIG9uIGEgbm9uLVRlc3RPYmog
b2JqZWN0LiIpKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7
CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiVGhl
IFRlc3RPYmoud2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFj
ZXNBdHRyaWJ1dGUgZ2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mIFRlc3RP
YmoiKSk7CiAgICAgfQogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdENvbnRleHQg
PSBqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkp
LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiAgICAgaWYgKCFzY3JpcHRDb250ZXh0KQpAQCAt
MTE3Niw3ICsxMTc2LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqV2l0aFNjcmlwdEFyZ3Vt
ZW50c0FuZENhbGxTdGFja0F0dHJpYnV0ZShFeGVjU3RhdGUqIGV4ZWMKICAgICAgICAgICAgIHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpT
LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBTdHJpbmcoIkRlcHJlY2F0ZWQgYXR0ZW1wdCB0byBhY2Nl
c3MgcHJvcGVydHkgJ3dpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2tBdHRyaWJ1dGUnIG9u
IGEgbm9uLVRlc3RPYmogb2JqZWN0LiIpKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRocm93Vk1U
eXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFT
Q0lJTGl0ZXJhbCgiVGhlIFRlc3RPYmoud2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFja0F0
dHJpYnV0ZSBnZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgVGVzdE9iaiIp
KTsKICAgICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBK
U1ZhbHVlIHJlc3VsdCA9IHRvSlMoZXhlYywgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIFdU
Rjo6Z2V0UHRyKGltcGwud2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFja0F0dHJpYnV0ZSgp
KSk7CkBAIC0xMTk1LDcgKzExOTUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRp
b25hbEF0dHIxKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNsb3RCYXNlLCBFbgogICAgICAg
ICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNv
dXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIFN0cmluZygiRGVwcmVjYXRlZCBhdHRlbXB0
IHRvIGFjY2VzcyBwcm9wZXJ0eSAnY29uZGl0aW9uYWxBdHRyMScgb24gYSBub24tVGVzdE9iaiBv
YmplY3QuIikpOwogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsK
KyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJUaGUg
VGVzdE9iai5jb25kaXRpb25hbEF0dHIxIGdldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3Rh
bmNlcyBvZiBUZXN0T2JqIikpOwogICAgIH0KICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAg
VGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTEyMTYsNyArMTIxNiw3IEBA
IEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjIoRXhlY1N0YXRlKiBleGVj
LCBKU09iamVjdCogc2xvdEJhc2UsIEVuCiAgICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250
ZXh0LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpF
cnJvciwgU3RyaW5nKCJEZXByZWNhdGVkIGF0dGVtcHQgdG8gYWNjZXNzIHByb3BlcnR5ICdjb25k
aXRpb25hbEF0dHIyJyBvbiBhIG5vbi1UZXN0T2JqIG9iamVjdC4iKSk7CiAgICAgICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAgICB9Ci0gICAgICAg
IHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5
cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIlRoZSBUZXN0T2JqLmNvbmRpdGlvbmFsQXR0cjIg
Z2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mIFRlc3RPYmoiKSk7CiAgICAg
fQogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhp
cy0+aW1wbCgpOwpAQCAtMTIzNyw3ICsxMjM3LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
Q29uZGl0aW9uYWxBdHRyMyhFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW4K
ICAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZENvbnNvbGVNZXNzYWdlKE1l
c3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBTdHJpbmcoIkRlcHJlY2F0ZWQg
YXR0ZW1wdCB0byBhY2Nlc3MgcHJvcGVydHkgJ2NvbmRpdGlvbmFsQXR0cjMnIG9uIGEgbm9uLVRl
c3RPYmogb2JqZWN0LiIpKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Io
ZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJh
bCgiVGhlIFRlc3RPYmouY29uZGl0aW9uYWxBdHRyMyBnZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBv
biBpbnN0YW5jZXMgb2YgVGVzdE9iaiIpKTsKICAgICB9CiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMp
OwogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CkBAIC0xMjU4LDcgKzEy
NTgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHI0Q29uc3RydWN0
b3IoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogcwogICAgICAgICAgICAgc2NyaXB0RXhlY3V0
aW9uQ29udGV4dC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VM
ZXZlbDo6RXJyb3IsIFN0cmluZygiRGVwcmVjYXRlZCBhdHRlbXB0IHRvIGFjY2VzcyBwcm9wZXJ0
eSAnY29uZGl0aW9uYWxBdHRyNCcgb24gYSBub24tVGVzdE9iaiBvYmplY3QuIikpOwogICAgICAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICAgICAgfQot
ICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJUaGUgVGVzdE9iai5jb25kaXRpb25h
bEF0dHI0IGdldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiBUZXN0T2JqIikp
OwogICAgIH0KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE9iamVjdEE6OmdldENv
bnN0cnVjdG9yKGV4ZWMtPnZtKCksIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpKSk7CiB9CkBA
IC0xMjc2LDcgKzEyNzYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0
dHI1Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogcwogICAgICAgICAgICAg
c2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6
SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIFN0cmluZygiRGVwcmVjYXRlZCBhdHRlbXB0IHRvIGFj
Y2VzcyBwcm9wZXJ0eSAnY29uZGl0aW9uYWxBdHRyNScgb24gYSBub24tVGVzdE9iaiBvYmplY3Qu
IikpOwogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
ICAgICAgICAgfQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAg
ICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJUaGUgVGVzdE9i
ai5jb25kaXRpb25hbEF0dHI1IGdldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBv
ZiBUZXN0T2JqIikpOwogICAgIH0KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE9i
amVjdEI6OmdldENvbnN0cnVjdG9yKGV4ZWMtPnZtKCksIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVj
dCgpKSk7CiB9CkBAIC0xMjk0LDcgKzEyOTQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpD
b25kaXRpb25hbEF0dHI2Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogcwog
ICAgICAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVz
c2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIFN0cmluZygiRGVwcmVjYXRlZCBh
dHRlbXB0IHRvIGFjY2VzcyBwcm9wZXJ0eSAnY29uZGl0aW9uYWxBdHRyNicgb24gYSBub24tVGVz
dE9iaiBvYmplY3QuIikpOwogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihl
eGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFs
KCJUaGUgVGVzdE9iai5jb25kaXRpb25hbEF0dHI2IGdldHRlciBjYW4gb25seSBiZSB1c2VkIG9u
IGluc3RhbmNlcyBvZiBUZXN0T2JqIikpOwogICAgIH0KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKEpTVGVzdE9iamVjdEM6OmdldENvbnN0cnVjdG9yKGV4ZWMtPnZtKCksIGNhc3RlZFRoaXMt
Pmdsb2JhbE9iamVjdCgpKSk7CiB9CkBAIC0xMzExLDcgKzEzMTEsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUxKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNs
b3RCYXNlLCBFbgogICAgICAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+YWRkQ29uc29s
ZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIFN0cmluZygi
RGVwcmVjYXRlZCBhdHRlbXB0IHRvIGFjY2VzcyBwcm9wZXJ0eSAnY2FjaGVkQXR0cmlidXRlMScg
b24gYSBub24tVGVzdE9iaiBvYmplY3QuIikpOwogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywg
QVNDSUlMaXRlcmFsKCJUaGUgVGVzdE9iai5jYWNoZWRBdHRyaWJ1dGUxIGdldHRlciBjYW4gb25s
eSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiBUZXN0T2JqIikpOwogICAgIH0KICAgICBVTlVTRURf
UEFSQU0oZXhlYyk7CiAgICAgaWYgKEpTVmFsdWUgY2FjaGVkVmFsdWUgPSBjYXN0ZWRUaGlzLT5t
X2NhY2hlZEF0dHJpYnV0ZTEuZ2V0KCkpCkBAIC0xMzMzLDcgKzEzMzMsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3Qq
IHNsb3RCYXNlLCBFbgogICAgICAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+YWRkQ29u
c29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIFN0cmlu
ZygiRGVwcmVjYXRlZCBhdHRlbXB0IHRvIGFjY2VzcyBwcm9wZXJ0eSAnY2FjaGVkQXR0cmlidXRl
Micgb24gYSBub24tVGVzdE9iaiBvYmplY3QuIikpOwogICAgICAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gdGhy
b3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhl
YywgQVNDSUlMaXRlcmFsKCJUaGUgVGVzdE9iai5jYWNoZWRBdHRyaWJ1dGUyIGdldHRlciBjYW4g
b25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiBUZXN0T2JqIikpOwogICAgIH0KICAgICBVTlVT
RURfUEFSQU0oZXhlYyk7CiAgICAgaWYgKEpTVmFsdWUgY2FjaGVkVmFsdWUgPSBjYXN0ZWRUaGlz
LT5tX2NhY2hlZEF0dHJpYnV0ZTIuZ2V0KCkpCkBAIC0xMzU1LDcgKzEzNTUsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpBbnlBdHRyaWJ1dGUoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCog
c2xvdEJhc2UsIEVuY29kZQogICAgICAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+YWRk
Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIFN0
cmluZygiRGVwcmVjYXRlZCBhdHRlbXB0IHRvIGFjY2VzcyBwcm9wZXJ0eSAnYW55QXR0cmlidXRl
JyBvbiBhIG5vbi1UZXN0T2JqIG9iamVjdC4iKSk7CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0aHJv
d1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVj
LCBBU0NJSUxpdGVyYWwoIlRoZSBUZXN0T2JqLmFueUF0dHJpYnV0ZSBnZXR0ZXIgY2FuIG9ubHkg
YmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgVGVzdE9iaiIpKTsKICAgICB9CiAgICAgVU5VU0VEX1BB
UkFNKGV4ZWMpOwogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CkBAIC0x
Mzc0LDcgKzEzNzQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb250ZW50RG9jdW1lbnQo
RXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEJhc2UsIEVuYwogICAgICAgICAgICAgc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMs
IE1lc3NhZ2VMZXZlbDo6RXJyb3IsIFN0cmluZygiRGVwcmVjYXRlZCBhdHRlbXB0IHRvIGFjY2Vz
cyBwcm9wZXJ0eSAnY29udGVudERvY3VtZW50JyBvbiBhIG5vbi1UZXN0T2JqIG9iamVjdC4iKSk7
CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAg
ICAgICB9Ci0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIlRoZSBUZXN0T2JqLmNv
bnRlbnREb2N1bWVudCBnZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgVGVz
dE9iaiIpKTsKICAgICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHNob3VsZEFsbG93QWNjZXNzVG9Ob2RlKGV4ZWMs
IGltcGwuY29udGVudERvY3VtZW50KCkpID8gdG9KUyhleGVjLCBjYXN0ZWRUaGlzLT5nbG9iYWxP
YmplY3QoKSwgV1RGOjpnZXRQdHIoaW1wbC5jb250ZW50RG9jdW1lbnQoKSkpIDoganNOdWxsKCkp
OwpAQCAtMTM5MSw3ICsxMzkxLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTXV0YWJsZVBv
aW50KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGUKICAgICAgICAg
ICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3Vy
Y2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBTdHJpbmcoIkRlcHJlY2F0ZWQgYXR0ZW1wdCB0
byBhY2Nlc3MgcHJvcGVydHkgJ211dGFibGVQb2ludCcgb24gYSBub24tVGVzdE9iaiBvYmplY3Qu
IikpOwogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
ICAgICAgICAgfQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAg
ICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJUaGUgVGVzdE9i
ai5tdXRhYmxlUG9pbnQgZ2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mIFRl
c3RPYmoiKSk7CiAgICAgfQogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBUZXN0T2JqJiBp
bXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwpAQCAtMTQxMCw3ICsxNDEwLDcgQEAgRW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqSW1tdXRhYmxlUG9pbnQoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCog
c2xvdEJhc2UsIEVuY28KICAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZENv
bnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBTdHJp
bmcoIkRlcHJlY2F0ZWQgYXR0ZW1wdCB0byBhY2Nlc3MgcHJvcGVydHkgJ2ltbXV0YWJsZVBvaW50
JyBvbiBhIG5vbi1UZXN0T2JqIG9iamVjdC4iKSk7CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0aHJv
d1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVj
LCBBU0NJSUxpdGVyYWwoIlRoZSBUZXN0T2JqLmltbXV0YWJsZVBvaW50IGdldHRlciBjYW4gb25s
eSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiBUZXN0T2JqIikpOwogICAgIH0KICAgICBVTlVTRURf
UEFSQU0oZXhlYyk7CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAg
LTE0MjksNyArMTQyOSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmF3YmVycnkoRXhl
Y1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKCiAgICAgICAgICAgICBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpK
UywgTWVzc2FnZUxldmVsOjpFcnJvciwgU3RyaW5nKCJEZXByZWNhdGVkIGF0dGVtcHQgdG8gYWNj
ZXNzIHByb3BlcnR5ICdzdHJhd2JlcnJ5JyBvbiBhIG5vbi1UZXN0T2JqIG9iamVjdC4iKSk7CiAg
ICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAg
ICB9Ci0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1
cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIlRoZSBUZXN0T2JqLnN0cmF3
YmVycnkgZ2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mIFRlc3RPYmoiKSk7
CiAgICAgfQogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBUZXN0T2JqJiBpbXBsID0gY2Fz
dGVkVGhpcy0+aW1wbCgpOwpAQCAtMTQ0OCw3ICsxNDQ4LDcgQEAgRW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqU3RyaWN0RmxvYXQoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEJhc2UsIEVu
Y29kZWQKICAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZENvbnNvbGVNZXNz
YWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBTdHJpbmcoIkRlcHJl
Y2F0ZWQgYXR0ZW1wdCB0byBhY2Nlc3MgcHJvcGVydHkgJ3N0cmljdEZsb2F0JyBvbiBhIG5vbi1U
ZXN0T2JqIG9iamVjdC4iKSk7CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
VW5kZWZpbmVkKCkpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9y
KGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVy
YWwoIlRoZSBUZXN0T2JqLnN0cmljdEZsb2F0IGdldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGlu
c3RhbmNlcyBvZiBUZXN0T2JqIikpOwogICAgIH0KICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAg
ICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTE0NjcsNyArMTQ2Nyw3
IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakRlc2NyaXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywg
SlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkCiAgICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25D
b250ZXh0LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVs
OjpFcnJvciwgU3RyaW5nKCJEZXByZWNhdGVkIGF0dGVtcHQgdG8gYWNjZXNzIHByb3BlcnR5ICdk
ZXNjcmlwdGlvbicgb24gYSBub24tVGVzdE9iaiBvYmplY3QuIikpOwogICAgICAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICAgICAgfQotICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBl
RXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJUaGUgVGVzdE9iai5kZXNjcmlwdGlvbiBnZXR0ZXIg
Y2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgVGVzdE9iaiIpKTsKICAgICB9CiAgICAg
VU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBs
KCk7CkBAIC0xNDg2LDcgKzE0ODYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpJZChFeGVj
U3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdAogICAgICAg
ICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNv
dXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIFN0cmluZygiRGVwcmVjYXRlZCBhdHRlbXB0
IHRvIGFjY2VzcyBwcm9wZXJ0eSAnaWQnIG9uIGEgbm9uLVRlc3RPYmogb2JqZWN0LiIpKTsKICAg
ICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAg
IH0KLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiVGhlIFRlc3RPYmouaWQgZ2V0
dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mIFRlc3RPYmoiKSk7CiAgICAgfQog
ICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+
aW1wbCgpOwpAQCAtMTUwNSw3ICsxNTA1LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqSGFz
aChFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUKICAg
ICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3Nh
Z2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBTdHJpbmcoIkRlcHJlY2F0ZWQgYXR0
ZW1wdCB0byBhY2Nlc3MgcHJvcGVydHkgJ2hhc2gnIG9uIGEgbm9uLVRlc3RPYmogb2JqZWN0LiIp
KTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAg
ICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAg
IHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiVGhlIFRlc3RPYmou
aGFzaCBnZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgVGVzdE9iaiIpKTsK
ICAgICB9CiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0
ZWRUaGlzLT5pbXBsKCk7CkBAIC0xNTI0LDcgKzE1MjQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpSZXBsYWNlYWJsZUF0dHJpYnV0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90
QmFzZQogICAgICAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+YWRkQ29uc29sZU1lc3Nh
Z2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIFN0cmluZygiRGVwcmVj
YXRlZCBhdHRlbXB0IHRvIGFjY2VzcyBwcm9wZXJ0eSAncmVwbGFjZWFibGVBdHRyaWJ1dGUnIG9u
IGEgbm9uLVRlc3RPYmogb2JqZWN0LiIpKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRocm93Vk1U
eXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFT
Q0lJTGl0ZXJhbCgiVGhlIFRlc3RPYmoucmVwbGFjZWFibGVBdHRyaWJ1dGUgZ2V0dGVyIGNhbiBv
bmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mIFRlc3RPYmoiKSk7CiAgICAgfQogICAgIFVOVVNF
RF9QQVJBTShleGVjKTsKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwpA
QCAtMTU0Myw3ICsxNTQzLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVEb3Vi
bGVBdHRyaWJ1dGUoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEIKICAgICAgICAgICAg
IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6
OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBTdHJpbmcoIkRlcHJlY2F0ZWQgYXR0ZW1wdCB0byBh
Y2Nlc3MgcHJvcGVydHkgJ251bGxhYmxlRG91YmxlQXR0cmlidXRlJyBvbiBhIG5vbi1UZXN0T2Jq
IG9iamVjdC4iKSk7CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMp
OworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIlRo
ZSBUZXN0T2JqLm51bGxhYmxlRG91YmxlQXR0cmlidXRlIGdldHRlciBjYW4gb25seSBiZSB1c2Vk
IG9uIGluc3RhbmNlcyBvZiBUZXN0T2JqIikpOwogICAgIH0KICAgICBVTlVTRURfUEFSQU0oZXhl
Yyk7CiAgICAgYm9vbCBpc051bGwgPSBmYWxzZTsKQEAgLTE1NjUsNyArMTU2NSw3IEBAIEVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlTG9uZ0F0dHJpYnV0ZShFeGVjU3RhdGUqIGV4ZWMs
IEpTT2JqZWN0KiBzbG90QmFzCiAgICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5h
ZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwg
U3RyaW5nKCJEZXByZWNhdGVkIGF0dGVtcHQgdG8gYWNjZXNzIHByb3BlcnR5ICdudWxsYWJsZUxv
bmdBdHRyaWJ1dGUnIG9uIGEgbm9uLVRlc3RPYmogb2JqZWN0LiIpKTsKICAgICAgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgIH0KLSAgICAgICAg
cmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlw
ZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiVGhlIFRlc3RPYmoubnVsbGFibGVMb25nQXR0cmli
dXRlIGdldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiBUZXN0T2JqIikpOwog
ICAgIH0KICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgYm9vbCBpc051bGwgPSBmYWxzZTsK
QEAgLTE1ODcsNyArMTU4Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlQm9v
bGVhbkF0dHJpYnV0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90CiAgICAgICAgICAg
ICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNl
OjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgU3RyaW5nKCJEZXByZWNhdGVkIGF0dGVtcHQgdG8g
YWNjZXNzIHByb3BlcnR5ICdudWxsYWJsZUJvb2xlYW5BdHRyaWJ1dGUnIG9uIGEgbm9uLVRlc3RP
Ymogb2JqZWN0LiIpKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhl
Yyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgi
VGhlIFRlc3RPYmoubnVsbGFibGVCb29sZWFuQXR0cmlidXRlIGdldHRlciBjYW4gb25seSBiZSB1
c2VkIG9uIGluc3RhbmNlcyBvZiBUZXN0T2JqIikpOwogICAgIH0KICAgICBVTlVTRURfUEFSQU0o
ZXhlYyk7CiAgICAgYm9vbCBpc051bGwgPSBmYWxzZTsKQEAgLTE2MDksNyArMTYwOSw3IEBAIEVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlU3RyaW5nQXR0cmlidXRlKEV4ZWNTdGF0ZSog
ZXhlYywgSlNPYmplY3QqIHNsb3RCCiAgICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0
LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJv
ciwgU3RyaW5nKCJEZXByZWNhdGVkIGF0dGVtcHQgdG8gYWNjZXNzIHByb3BlcnR5ICdudWxsYWJs
ZVN0cmluZ0F0dHJpYnV0ZScgb24gYSBub24tVGVzdE9iaiBvYmplY3QuIikpOwogICAgICAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICAgICAgfQotICAg
ICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93
Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJUaGUgVGVzdE9iai5udWxsYWJsZVN0cmlu
Z0F0dHJpYnV0ZSBnZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgVGVzdE9i
aiIpKTsKICAgICB9CiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIGJvb2wgaXNOdWxsID0g
ZmFsc2U7CkBAIC0xNjMxLDcgKzE2MzEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxs
YWJsZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KgogICAg
ICAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIFN0cmluZygiRGVwcmVjYXRlZCBhdHRl
bXB0IHRvIGFjY2VzcyBwcm9wZXJ0eSAnbnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGUnIG9u
IGEgbm9uLVRlc3RPYmogb2JqZWN0LiIpKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRocm93Vk1U
eXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFT
Q0lJTGl0ZXJhbCgiVGhlIFRlc3RPYmoubnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGUgZ2V0
dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mIFRlc3RPYmoiKSk7CiAgICAgfQog
ICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBib29sIGlzTnVsbCA9IGZhbHNlOwpAQCAtMTY1
Myw3ICsxNjUzLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVTdHJpbmdWYWx1
ZShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwKICAgICAgICAgICAgIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBN
ZXNzYWdlTGV2ZWw6OkVycm9yLCBTdHJpbmcoIkRlcHJlY2F0ZWQgYXR0ZW1wdCB0byBhY2Nlc3Mg
cHJvcGVydHkgJ251bGxhYmxlU3RyaW5nVmFsdWUnIG9uIGEgbm9uLVRlc3RPYmogb2JqZWN0LiIp
KTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAg
ICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAg
IHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiVGhlIFRlc3RPYmou
bnVsbGFibGVTdHJpbmdWYWx1ZSBnZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMg
b2YgVGVzdE9iaiIpKTsKICAgICB9CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgYm9v
bCBpc051bGwgPSBmYWxzZTsKQEAgLTE2NzYsNyArMTY3Niw3IEBAIEVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9iakF0dHJpYnV0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5j
b2RlZEpTCiAgICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5hZGRDb25zb2xlTWVz
c2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgU3RyaW5nKCJEZXBy
ZWNhdGVkIGF0dGVtcHQgdG8gYWNjZXNzIHByb3BlcnR5ICdhdHRyaWJ1dGUnIG9uIGEgbm9uLVRl
c3RPYmogb2JqZWN0LiIpKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Io
ZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJh
bCgiVGhlIFRlc3RPYmouYXR0cmlidXRlIGdldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3Rh
bmNlcyBvZiBUZXN0T2JqIikpOwogICAgIH0KICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAg
VGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTE2OTUsNyArMTY5NSw3IEBA
IEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakF0dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBlKEV4
ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqCiAgICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250
ZXh0LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpF
cnJvciwgU3RyaW5nKCJEZXByZWNhdGVkIGF0dGVtcHQgdG8gYWNjZXNzIHByb3BlcnR5ICdhdHRy
aWJ1dGVXaXRoUmVzZXJ2ZWRFbnVtVHlwZScgb24gYSBub24tVGVzdE9iaiBvYmplY3QuIikpOwog
ICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICAg
ICAgfQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0
dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJUaGUgVGVzdE9iai5hdHRy
aWJ1dGVXaXRoUmVzZXJ2ZWRFbnVtVHlwZSBnZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0
YW5jZXMgb2YgVGVzdE9iaiIpKTsKICAgICB9CiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAg
IFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CkBAIC0xNzMxLDcgKzE3MzEsNyBA
QCB2b2lkIHNldEpTVGVzdE9ialRlc3RTdWJPYmpFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3Io
RXhlY1N0YXRlKiBleGVjLCBKU09iamVjdAogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBK
U1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6
OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7Ci0g
ICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHRocm93Vk1UeXBlRXJyb3Io
ZXhlYywgQVNDSUlMaXRlcmFsKCJUaGUgVGVzdE9iai5UZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGlu
ZyBzZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgVGVzdE9iaiIpKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KICAgICAvLyBTaGFkb3dpbmcgYSBidWlsdC1pbiBjb25zdHJ1
Y3RvcgpAQCAtMTc0NSw3ICsxNzQ1LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpFbnVtQXR0cihFeGVj
U3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWN0ICovLCBFbmNvZGVkSlMKICAgICBV
TlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWlj
Q2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVO
TElLRUxZKCFjYXN0ZWRUaGlzKSkgewotICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwor
ICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiVGhlIFRlc3RPYmou
ZW51bUF0dHIgc2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mIFRlc3RPYmoi
KSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRo
aXMtPmltcGwoKTsKQEAgLTE3NjQsNyArMTc2NCw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqQnl0ZUF0
dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogLyogYmFzZU9iamVjdCAqLywgRW5jb2RlZEpT
CiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpz
RHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAg
IGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKLSAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihl
eGVjKTsKKyAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIlRoZSBU
ZXN0T2JqLmJ5dGVBdHRyIHNldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiBU
ZXN0T2JqIikpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIFRlc3RPYmomIGltcGwgPSBj
YXN0ZWRUaGlzLT5pbXBsKCk7CkBAIC0xNzgxLDcgKzE3ODEsNyBAQCB2b2lkIHNldEpTVGVzdE9i
ak9jdGV0QXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWN0ICovLCBF
bmNvZGVkSgogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRo
aXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUp
KTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7Ci0gICAgICAgIHRocm93Vk1UeXBl
RXJyb3IoZXhlYyk7CisgICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFs
KCJUaGUgVGVzdE9iai5vY3RldEF0dHIgc2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFu
Y2VzIG9mIFRlc3RPYmoiKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgVGVzdE9iaiYg
aW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTE3OTgsNyArMTc5OCw3IEBAIHZvaWQgc2V0
SlNUZXN0T2JqU2hvcnRBdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIC8qIGJhc2VPYmpl
Y3QgKi8sIEVuY29kZWRKCiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVzdE9iaiog
Y2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRo
aXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKLSAgICAgICAgdGhy
b3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJ
SUxpdGVyYWwoIlRoZSBUZXN0T2JqLnNob3J0QXR0ciBzZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBv
biBpbnN0YW5jZXMgb2YgVGVzdE9iaiIpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBU
ZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwpAQCAtMTgxNSw3ICsxODE1LDcgQEAg
dm9pZCBzZXRKU1Rlc3RPYmpVbnNpZ25lZFNob3J0QXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2Jq
ZWN0KiAvKiBiYXNlT2JqZWN0ICovLAogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBKU1Rl
c3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7Ci0gICAg
ICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhl
YywgQVNDSUlMaXRlcmFsKCJUaGUgVGVzdE9iai51bnNpZ25lZFNob3J0QXR0ciBzZXR0ZXIgY2Fu
IG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgVGVzdE9iaiIpKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwpAQCAtMTgz
Miw3ICsxODMyLDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpMb25nQXR0cihFeGVjU3RhdGUqIGV4ZWMs
IEpTT2JqZWN0KiAvKiBiYXNlT2JqZWN0ICovLCBFbmNvZGVkSlMKICAgICBVTlVTRURfUEFSQU0o
ZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RP
YmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0
ZWRUaGlzKSkgewotICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICB0aHJv
d1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiVGhlIFRlc3RPYmoubG9uZ0F0dHIgc2V0
dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mIFRlc3RPYmoiKSk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsK
QEAgLTE4NDksNyArMTg0OSw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqTG9uZ0xvbmdBdHRyKEV4ZWNT
dGF0ZSogZXhlYywgSlNPYmplY3QqIC8qIGJhc2VPYmplY3QgKi8sIEVuY29kCiAgICAgVU5VU0VE
X1BBUkFNKGV4ZWMpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8
SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VM
WSghY2FzdGVkVGhpcykpIHsKLSAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAg
ICAgdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIlRoZSBUZXN0T2JqLmxvbmdM
b25nQXR0ciBzZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgVGVzdE9iaiIp
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhp
cy0+aW1wbCgpOwpAQCAtMTg2Niw3ICsxODY2LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpVbnNpZ25l
ZExvbmdMb25nQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWN0ICoK
ICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNE
eW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAg
aWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewotICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMpOworICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiVGhlIFRl
c3RPYmoudW5zaWduZWRMb25nTG9uZ0F0dHIgc2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5z
dGFuY2VzIG9mIFRlc3RPYmoiKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgVGVzdE9i
aiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTE4ODMsNyArMTg4Myw3IEBAIHZvaWQg
c2V0SlNUZXN0T2JqU3RyaW5nQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNl
T2JqZWN0ICovLCBFbmNvZGVkCiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVzdE9i
aiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKLSAgICAgICAg
dGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjLCBB
U0NJSUxpdGVyYWwoIlRoZSBUZXN0T2JqLnN0cmluZ0F0dHIgc2V0dGVyIGNhbiBvbmx5IGJlIHVz
ZWQgb24gaW5zdGFuY2VzIG9mIFRlc3RPYmoiKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAg
ICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTE5MDAsNyArMTkwMCw3
IEBAIHZvaWQgc2V0SlNUZXN0T2JqVGVzdE9iakF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVj
dCogLyogYmFzZU9iamVjdCAqLywgRW5jb2RlCiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAg
IEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1
ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsK
LSAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgdGhyb3dWTVR5cGVFcnJv
cihleGVjLCBBU0NJSUxpdGVyYWwoIlRoZSBUZXN0T2JqLnRlc3RPYmpBdHRyIHNldHRlciBjYW4g
b25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiBUZXN0T2JqIikpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CkBAIC0xOTE3
LDcgKzE5MTcsNyBAQCB2b2lkIHNldEpTVGVzdE9ialhNTE9iakF0dHIoRXhlY1N0YXRlKiBleGVj
LCBKU09iamVjdCogLyogYmFzZU9iamVjdCAqLywgRW5jb2RlZAogICAgIFVOVVNFRF9QQVJBTShl
eGVjKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9i
aio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3Rl
ZFRoaXMpKSB7Ci0gICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHRocm93
Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJUaGUgVGVzdE9iai5YTUxPYmpBdHRyIHNl
dHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiBUZXN0T2JqIikpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7
CkBAIC0xOTM0LDcgKzE5MzQsNyBAQCB2b2lkIHNldEpTVGVzdE9iakNyZWF0ZShFeGVjU3RhdGUq
IGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWN0ICovLCBFbmNvZGVkSlNWYQogICAgIFVOVVNF
RF9QQVJBTShleGVjKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0
PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtF
TFkoIWNhc3RlZFRoaXMpKSB7Ci0gICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAg
ICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJUaGUgVGVzdE9iai5jcmVh
dGUgc2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mIFRlc3RPYmoiKSk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmlt
cGwoKTsKQEAgLTE5NTEsNyArMTk1MSw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkU3Ry
aW5nQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWN0ICovCiAgICAg
VU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1p
Y0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChV
TkxJS0VMWSghY2FzdGVkVGhpcykpIHsKLSAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjKTsK
KyAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIlRoZSBUZXN0T2Jq
LnJlZmxlY3RlZFN0cmluZ0F0dHIgc2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2Vz
IG9mIFRlc3RPYmoiKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgVGVzdE9iaiYgaW1w
bCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTE5NjgsNyArMTk2OCw3IEBAIHZvaWQgc2V0SlNU
ZXN0T2JqUmVmbGVjdGVkSW50ZWdyYWxBdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIC8q
IGJhc2VPYmplY3QKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0
ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1Zh
bHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewotICAgICAgICB0aHJvd1ZN
VHlwZUVycm9yKGV4ZWMpOworICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0
ZXJhbCgiVGhlIFRlc3RPYmoucmVmbGVjdGVkSW50ZWdyYWxBdHRyIHNldHRlciBjYW4gb25seSBi
ZSB1c2VkIG9uIGluc3RhbmNlcyBvZiBUZXN0T2JqIikpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CkBAIC0xOTg1LDcgKzE5
ODUsNyBAQCB2b2lkIHNldEpTVGVzdE9ialJlZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyKEV4
ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIC8qIGJhcwogICAgIFVOVVNFRF9QQVJBTShleGVjKTsK
ICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpT
VmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMp
KSB7Ci0gICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHRocm93Vk1UeXBl
RXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJUaGUgVGVzdE9iai5yZWZsZWN0ZWRVbnNpZ25lZElu
dGVncmFsQXR0ciBzZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgVGVzdE9i
aiIpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVk
VGhpcy0+aW1wbCgpOwpAQCAtMjAwMiw3ICsyMDAyLDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpSZWZs
ZWN0ZWRCb29sZWFuQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWN0
ICoKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0g
anNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAg
ICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewotICAgICAgICB0aHJvd1ZNVHlwZUVycm9y
KGV4ZWMpOworICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiVGhl
IFRlc3RPYmoucmVmbGVjdGVkQm9vbGVhbkF0dHIgc2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24g
aW5zdGFuY2VzIG9mIFRlc3RPYmoiKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgVGVz
dE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTIwMTksNyArMjAxOSw3IEBAIHZv
aWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkVVJMQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0
KiAvKiBiYXNlT2JqZWN0ICovLCBFCiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVz
dE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKLSAgICAg
ICAgdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVj
LCBBU0NJSUxpdGVyYWwoIlRoZSBUZXN0T2JqLnJlZmxlY3RlZFVSTEF0dHIgc2V0dGVyIGNhbiBv
bmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mIFRlc3RPYmoiKSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTIwMzYs
NyArMjAzNiw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cihFeGVjU3Rh
dGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWN0ICovCiAgICAgVU5VU0VEX1BBUkFNKGV4
ZWMpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2Jq
Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVk
VGhpcykpIHsKLSAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgdGhyb3dW
TVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIlRoZSBUZXN0T2JqLnJlZmxlY3RlZFN0cmlu
Z0F0dHIgc2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mIFRlc3RPYmoiKSk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMt
PmltcGwoKTsKQEAgLTIwNTMsNyArMjA1Myw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVk
Q3VzdG9tSW50ZWdyYWxBdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIC8qIGJhc2VPCiAg
ICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlm
IChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKLSAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVj
KTsKKyAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIlRoZSBUZXN0
T2JqLnJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0ciBzZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBv
biBpbnN0YW5jZXMgb2YgVGVzdE9iaiIpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBU
ZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwpAQCAtMjA3MCw3ICsyMDcwLDcgQEAg
dm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0cihFeGVjU3RhdGUqIGV4
ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2IKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNU
ZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpk
ZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewotICAg
ICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMsIEFTQ0lJTGl0ZXJhbCgiVGhlIFRlc3RPYmoucmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIg
c2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mIFRlc3RPYmoiKSk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwo
KTsKQEAgLTIwODcsNyArMjA4Nyw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9t
VVJMQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWN0CiAgICAgVU5V
U0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nh
c3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJ
S0VMWSghY2FzdGVkVGhpcykpIHsKLSAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAg
ICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIlRoZSBUZXN0T2JqLnJl
ZmxlY3RlZEN1c3RvbVVSTEF0dHIgc2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2Vz
IG9mIFRlc3RPYmoiKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgVGVzdE9iaiYgaW1w
bCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTIxMDQsNyArMjEwNCw3IEBAIHZvaWQgc2V0SlNU
ZXN0T2JqVHlwZWRBcnJheUF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogLyogYmFzZU9i
amVjdCAqLywgRW5jCiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVzdE9iaiogY2Fz
dGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNW
YWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKLSAgICAgICAgdGhyb3dW
TVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxp
dGVyYWwoIlRoZSBUZXN0T2JqLnR5cGVkQXJyYXlBdHRyIHNldHRlciBjYW4gb25seSBiZSB1c2Vk
IG9uIGluc3RhbmNlcyBvZiBUZXN0T2JqIikpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAg
IFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CkBAIC0yMTIxLDcgKzIxMjEsNyBA
QCB2b2lkIHNldEpTVGVzdE9iakF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhl
YywgSlNPYmplY3QqIC8qIGJhc2VPYmplYwogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBK
U1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6
OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7Ci0g
ICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHRocm93Vk1UeXBlRXJyb3Io
ZXhlYywgQVNDSUlMaXRlcmFsKCJUaGUgVGVzdE9iai5hdHRyV2l0aEdldHRlckV4Y2VwdGlvbiBz
ZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgVGVzdE9iaiIpKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgp
OwpAQCAtMjEzOCw3ICsyMTM4LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpBdHRyV2l0aFNldHRlckV4
Y2VwdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWMKICAgICBVTlVT
RURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2Fz
dDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElL
RUxZKCFjYXN0ZWRUaGlzKSkgewotICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAg
ICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiVGhlIFRlc3RPYmouYXR0
cldpdGhTZXR0ZXJFeGNlcHRpb24gc2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2Vz
IG9mIFRlc3RPYmoiKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgVGVzdE9iaiYgaW1w
bCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTIxNTcsNyArMjE1Nyw3IEBAIHZvaWQgc2V0SlNU
ZXN0T2JqU3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oRXhlY1N0YXRlKiBleGVjLCBKU09i
amVjdCogLyogYmFzCiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVzdE9iaiogY2Fz
dGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNW
YWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKLSAgICAgICAgdGhyb3dW
TVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxp
dGVyYWwoIlRoZSBUZXN0T2JqLnN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uIHNldHRlciBj
YW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiBUZXN0T2JqIikpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CkBAIC0y
MTc0LDcgKzIxNzQsNyBAQCB2b2lkIHNldEpTVGVzdE9ialN0cmluZ0F0dHJXaXRoU2V0dGVyRXhj
ZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIC8qIGJhcwogICAgIFVOVVNFRF9QQVJB
TShleGVjKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVz
dE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNh
c3RlZFRoaXMpKSB7Ci0gICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHRo
cm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJUaGUgVGVzdE9iai5zdHJpbmdBdHRy
V2l0aFNldHRlckV4Y2VwdGlvbiBzZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMg
b2YgVGVzdE9iaiIpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBUZXN0T2JqJiBpbXBs
ID0gY2FzdGVkVGhpcy0+aW1wbCgpOwpAQCAtMjE5Myw3ICsyMTkzLDcgQEAgdm9pZCBzZXRKU1Rl
c3RPYmpDdXN0b21BdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIC8qIGJhc2VPYmplY3Qg
Ki8sIEVuY29kZWQKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0
ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1Zh
bHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewotICAgICAgICB0aHJvd1ZN
VHlwZUVycm9yKGV4ZWMpOworICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0
ZXJhbCgiVGhlIFRlc3RPYmouY3VzdG9tQXR0ciBzZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBp
bnN0YW5jZXMgb2YgVGVzdE9iaiIpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBjYXN0
ZWRUaGlzLT5zZXRDdXN0b21BdHRyKGV4ZWMsIHZhbHVlKTsKQEAgLTIyMDYsNyArMjIwNiw3IEBA
IHZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlKEV4ZWNTdGF0ZSogZXhl
YywgSlNPYmplY3QqIC8qIGJhc2VPYmplCiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpT
VGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6
ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKLSAg
ICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihl
eGVjLCBBU0NJSUxpdGVyYWwoIlRoZSBUZXN0T2JqLndpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZSBz
ZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgVGVzdE9iaiIpKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgp
OwpAQCAtMjIyMyw3ICsyMjIzLDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dEF0dHJpYnV0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KgogICAgIFVOVVNF
RF9QQVJBTShleGVjKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0
PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtF
TFkoIWNhc3RlZFRoaXMpKSB7Ci0gICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAg
ICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJUaGUgVGVzdE9iai53aXRo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZSBzZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBv
biBpbnN0YW5jZXMgb2YgVGVzdE9iaiIpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBU
ZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwpAQCAtMjI0Myw3ICsyMjQzLDcgQEAg
dm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoRXhlY1N0YXRl
KiBleGVjLCBKU09iamVjdCogLyogYmEKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNU
ZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpk
ZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewotICAg
ICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMsIEFTQ0lJTGl0ZXJhbCgiVGhlIFRlc3RPYmoud2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFp
c2VzIHNldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiBUZXN0T2JqIikpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5p
bXBsKCk7CkBAIC0yMjYwLDcgKzIyNjAsNyBAQCB2b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRF
eGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzKEV4ZWNTdGF0ZSogZXhlYywgSlNPYgogICAg
IFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFt
aWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAo
VU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7Ci0gICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7
CisgICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJUaGUgVGVzdE9i
ai53aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcyBzZXR0ZXIgY2FuIG9u
bHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgVGVzdE9iaiIpKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwpAQCAtMjI4MCw3
ICsyMjgwLDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFu
ZFNjcmlwdFN0YXRlQXR0cmlidXRlKEV4ZWNTdGF0ZSogZXgKICAgICBVTlVTRURfUEFSQU0oZXhl
Yyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoq
PihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRU
aGlzKSkgewotICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICB0aHJvd1ZN
VHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiVGhlIFRlc3RPYmoud2l0aFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZSBzZXR0ZXIgY2FuIG9ubHkgYmUgdXNl
ZCBvbiBpbnN0YW5jZXMgb2YgVGVzdE9iaiIpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAg
ICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwpAQCAtMjMwMCw3ICsyMzAwLDcg
QEAgdm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0
YXRlQXR0cmlidXRlUmFpc2VzKEV4ZWNTdGEKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAg
SlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewot
ICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICB0aHJvd1ZNVHlwZUVycm9y
KGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiVGhlIFRlc3RPYmoud2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyBzZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBv
biBpbnN0YW5jZXMgb2YgVGVzdE9iaiIpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBU
ZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwpAQCAtMjMyMCw3ICsyMzIwLDcgQEAg
dm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRl
V2l0aFNwYWNlc0F0dHJpYnV0ZShFeGUKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNU
ZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpk
ZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewotICAg
ICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMsIEFTQ0lJTGl0ZXJhbCgiVGhlIFRlc3RPYmoud2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRB
bmRTY3JpcHRTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGUgc2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQg
b24gaW5zdGFuY2VzIG9mIFRlc3RPYmoiKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAg
VGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTIzNDAsNyArMjM0MCw3IEBA
IHZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFja0F0dHJpYnV0
ZShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqCiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpT
VGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6
ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKLSAg
ICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihl
eGVjLCBBU0NJSUxpdGVyYWwoIlRoZSBUZXN0T2JqLndpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxs
U3RhY2tBdHRyaWJ1dGUgc2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mIFRl
c3RPYmoiKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNh
c3RlZFRoaXMtPmltcGwoKTsKQEAgLTIzNTgsNyArMjM1OCw3IEBAIHZvaWQgc2V0SlNUZXN0T2Jq
Q29uZGl0aW9uYWxBdHRyMShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWN0
ICovLCBFCiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhp
cyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkp
OwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKLSAgICAgICAgdGhyb3dWTVR5cGVF
cnJvcihleGVjKTsKKyAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwo
IlRoZSBUZXN0T2JqLmNvbmRpdGlvbmFsQXR0cjEgc2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24g
aW5zdGFuY2VzIG9mIFRlc3RPYmoiKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgVGVz
dE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTIzNzcsNyArMjM3Nyw3IEBAIHZv
aWQgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0
KiAvKiBiYXNlT2JqZWN0ICovLCBFCiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVz
dE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKLSAgICAg
ICAgdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVj
LCBBU0NJSUxpdGVyYWwoIlRoZSBUZXN0T2JqLmNvbmRpdGlvbmFsQXR0cjIgc2V0dGVyIGNhbiBv
bmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mIFRlc3RPYmoiKSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTIzOTYs
NyArMjM5Niw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMyhFeGVjU3RhdGUq
IGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWN0ICovLCBFCiAgICAgVU5VU0VEX1BBUkFNKGV4
ZWMpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2Jq
Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVk
VGhpcykpIHsKLSAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgdGhyb3dW
TVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIlRoZSBUZXN0T2JqLmNvbmRpdGlvbmFsQXR0
cjMgc2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mIFRlc3RPYmoiKSk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmlt
cGwoKTsKQEAgLTI0MTUsNyArMjQxNSw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxB
dHRyNENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIC8qIGJhc2VPCiAgICAg
VU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1p
Y0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChV
TkxJS0VMWSghY2FzdGVkVGhpcykpIHsKLSAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjKTsK
KyAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIlRoZSBUZXN0T2Jq
LmNvbmRpdGlvbmFsQXR0cjQgc2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9m
IFRlc3RPYmoiKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgLy8gU2hhZG93aW5nIGEg
YnVpbHQtaW4gY29uc3RydWN0b3IKQEAgLTI0MzEsNyArMjQzMSw3IEBAIHZvaWQgc2V0SlNUZXN0
T2JqQ29uZGl0aW9uYWxBdHRyNUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3Qq
IC8qIGJhc2VPCiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVzdE9iaiogY2FzdGVk
VGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1
ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKLSAgICAgICAgdGhyb3dWTVR5
cGVFcnJvcihleGVjKTsKKyAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVy
YWwoIlRoZSBUZXN0T2JqLmNvbmRpdGlvbmFsQXR0cjUgc2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQg
b24gaW5zdGFuY2VzIG9mIFRlc3RPYmoiKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAg
Ly8gU2hhZG93aW5nIGEgYnVpbHQtaW4gY29uc3RydWN0b3IKQEAgLTI0NDcsNyArMjQ0Nyw3IEBA
IHZvaWQgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSog
ZXhlYywgSlNPYmplY3QqIC8qIGJhc2VPCiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpT
VGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6
ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKLSAg
ICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihl
eGVjLCBBU0NJSUxpdGVyYWwoIlRoZSBUZXN0T2JqLmNvbmRpdGlvbmFsQXR0cjYgc2V0dGVyIGNh
biBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mIFRlc3RPYmoiKSk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAgICAgLy8gU2hhZG93aW5nIGEgYnVpbHQtaW4gY29uc3RydWN0b3IKQEAgLTI0
NjIsNyArMjQ2Miw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqQW55QXR0cmlidXRlKEV4ZWNTdGF0ZSog
ZXhlYywgSlNPYmplY3QqIC8qIGJhc2VPYmplY3QgKi8sIEVuY29kCiAgICAgVU5VU0VEX1BBUkFN
KGV4ZWMpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0
T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2Fz
dGVkVGhpcykpIHsKLSAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgdGhy
b3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIlRoZSBUZXN0T2JqLmFueUF0dHJpYnV0
ZSBzZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgVGVzdE9iaiIpKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1w
bCgpOwpAQCAtMjQ3OSw3ICsyNDc5LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpNdXRhYmxlUG9pbnQo
RXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogLyogYmFzZU9iamVjdCAqLywgRW5jb2QKICAgICBV
TlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWlj
Q2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVO
TElLRUxZKCFjYXN0ZWRUaGlzKSkgewotICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwor
ICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiVGhlIFRlc3RPYmou
bXV0YWJsZVBvaW50IHNldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiBUZXN0
T2JqIikpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0
ZWRUaGlzLT5pbXBsKCk7CkBAIC0yNDk2LDcgKzI0OTYsNyBAQCB2b2lkIHNldEpTVGVzdE9iaklt
bXV0YWJsZVBvaW50KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIC8qIGJhc2VPYmplY3QgKi8s
IEVuYwogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMg
PSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsK
ICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7Ci0gICAgICAgIHRocm93Vk1UeXBlRXJy
b3IoZXhlYyk7CisgICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJU
aGUgVGVzdE9iai5pbW11dGFibGVQb2ludCBzZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0
YW5jZXMgb2YgVGVzdE9iaiIpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBUZXN0T2Jq
JiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwpAQCAtMjUxMyw3ICsyNTEzLDcgQEAgdm9pZCBz
ZXRKU1Rlc3RPYmpTdHJhd2JlcnJ5KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIC8qIGJhc2VP
YmplY3QgKi8sIEVuY29kZWQKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2Jq
KiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUo
dGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewotICAgICAgICB0
aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFT
Q0lJTGl0ZXJhbCgiVGhlIFRlc3RPYmouc3RyYXdiZXJyeSBzZXR0ZXIgY2FuIG9ubHkgYmUgdXNl
ZCBvbiBpbnN0YW5jZXMgb2YgVGVzdE9iaiIpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAg
ICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwpAQCAtMjUzMCw3ICsyNTMwLDcg
QEAgdm9pZCBzZXRKU1Rlc3RPYmpTdHJpY3RGbG9hdChFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0
KiAvKiBiYXNlT2JqZWN0ICovLCBFbmNvZGUKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAg
SlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewot
ICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICB0aHJvd1ZNVHlwZUVycm9y
KGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiVGhlIFRlc3RPYmouc3RyaWN0RmxvYXQgc2V0dGVyIGNhbiBv
bmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mIFRlc3RPYmoiKSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTI1NDcs
NyArMjU0Nyw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqSWQoRXhlY1N0YXRlKiBleGVjLCBKU09iamVj
dCogLyogYmFzZU9iamVjdCAqLywgRW5jb2RlZEpTVmFsdWUKICAgICBVTlVTRURfUEFSQU0oZXhl
Yyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoq
PihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRU
aGlzKSkgewotICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICB0aHJvd1ZN
VHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiVGhlIFRlc3RPYmouaWQgc2V0dGVyIGNhbiBv
bmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mIFRlc3RPYmoiKSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTI1NjQs
NyArMjU2NCw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqUmVwbGFjZWFibGVBdHRyaWJ1dGUoRXhlY1N0
YXRlKiBleGVjLCBKU09iamVjdCogLyogYmFzZU9iamVjdCAqCiAgICAgVU5VU0VEX1BBUkFNKGV4
ZWMpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2Jq
Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVk
VGhpcykpIHsKLSAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgdGhyb3dW
TVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIlRoZSBUZXN0T2JqLnJlcGxhY2VhYmxlQXR0
cmlidXRlIHNldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiBUZXN0T2JqIikp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIC8vIFNoYWRvd2luZyBhIGJ1aWx0LWluIG9i
amVjdApAQCAtMjU3OCw3ICsyNTc4LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpOdWxsYWJsZUxvbmdT
ZXR0YWJsZUF0dHJpYnV0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXMKICAgICBV
TlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWlj
Q2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVO
TElLRUxZKCFjYXN0ZWRUaGlzKSkgewotICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwor
ICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiVGhlIFRlc3RPYmou
bnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGUgc2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24g
aW5zdGFuY2VzIG9mIFRlc3RPYmoiKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgVGVz
dE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTI1OTUsNyArMjU5NSw3IEBAIHZv
aWQgc2V0SlNUZXN0T2JqTnVsbGFibGVTdHJpbmdWYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIEpTT2Jq
ZWN0KiAvKiBiYXNlT2JqZWN0ICovCiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVz
dE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKLSAgICAg
ICAgdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVj
LCBBU0NJSUxpdGVyYWwoIlRoZSBUZXN0T2JqLm51bGxhYmxlU3RyaW5nVmFsdWUgc2V0dGVyIGNh
biBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mIFRlc3RPYmoiKSk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTI2
MTIsNyArMjYxMiw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqQXR0cmlidXRlV2l0aFJlc2VydmVkRW51
bVR5cGUoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogLyogYmFzCiAgICAgVU5VU0VEX1BBUkFN
KGV4ZWMpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0
T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2Fz
dGVkVGhpcykpIHsKLSAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgdGhy
b3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIlRoZSBUZXN0T2JqLmF0dHJpYnV0ZVdp
dGhSZXNlcnZlZEVudW1UeXBlIHNldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBv
ZiBUZXN0T2JqIikpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIFRlc3RPYmomIGltcGwg
PSBjYXN0ZWRUaGlzLT5pbXBsKCk7CkBAIC0yNjM1LDcgKzI2MzUsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVm9pZE1ldGhvZChFeGVj
U3RhdGUqIGV4ZQogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgp
OwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4o
dGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQotICAgICAgICByZXR1
cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJy
b3IoZXhlYywgQVNDSUlMaXRlcmFsKCJDYW4gb25seSBjYWxsIEpTVGVzdE9iai52b2lkTWV0aG9k
IG9uIGluc3RhbmNlcyBvZiBKU1Rlc3RPYmoiKSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhF
UklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAgVGVzdE9iaiYgaW1wbCA9
IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpbXBsLnZvaWRNZXRob2QoKTsKQEAgLTI2NDcsNyAr
MjY0Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25Wb2lkTWV0aG9kV2l0aEFyZ3MoRXhlY1N0CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUg
PSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNE
eW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2Fz
dGVkVGhpcykpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAg
ICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIkNhbiBvbmx5IGNh
bGwgSlNUZXN0T2JqLnZvaWRNZXRob2RXaXRoQXJncyBvbiBpbnN0YW5jZXMgb2YgSlNUZXN0T2Jq
IikpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNUZXN0T2Jq
OjppbmZvKCkpOwogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAg
aWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDMpCkBAIC0yNjcwLDcgKzI2NzAsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQnl0ZU1l
dGhvZChFeGVjU3RhdGUqIGV4ZQogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRo
aXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNU
ZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQotICAg
ICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93
Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJDYW4gb25seSBjYWxsIEpTVGVzdE9iai5i
eXRlTWV0aG9kIG9uIGluc3RhbmNlcyBvZiBKU1Rlc3RPYmoiKSk7CiAgICAgQVNTRVJUX0dDX09C
SkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAgVGVzdE9i
aiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKIApAQCAtMjY4Myw3ICsyNjgzLDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkJ5dGVN
ZXRob2RXaXRoQXJncyhFeGVjU3QKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RU
aGlzVmFsdWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpT
VGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKLSAg
ICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJv
d1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiQ2FuIG9ubHkgY2FsbCBKU1Rlc3RPYmou
Ynl0ZU1ldGhvZFdpdGhBcmdzIG9uIGluc3RhbmNlcyBvZiBKU1Rlc3RPYmoiKSk7CiAgICAgQVNT
RVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAg
ICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJn
dW1lbnRDb3VudCgpIDwgMykKQEAgLTI3MDcsNyArMjcwNyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PY3RldE1ldGhvZChFeGVjU3Rh
dGUqIGV4CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAg
ICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlz
VmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCi0gICAgICAgIHJldHVybiB0
aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihl
eGVjLCBBU0NJSUxpdGVyYWwoIkNhbiBvbmx5IGNhbGwgSlNUZXN0T2JqLm9jdGV0TWV0aG9kIG9u
IGluc3RhbmNlcyBvZiBKU1Rlc3RPYmoiKSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklU
UyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNh
c3RlZFRoaXMtPmltcGwoKTsKIApAQCAtMjcyMCw3ICsyNzIwLDcgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9jdGV0TWV0aG9kV2l0aEFy
Z3MoRXhlY1MKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsK
ICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRo
aXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKLSAgICAgICAgcmV0dXJu
IHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9y
KGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiQ2FuIG9ubHkgY2FsbCBKU1Rlc3RPYmoub2N0ZXRNZXRob2RX
aXRoQXJncyBvbiBpbnN0YW5jZXMgb2YgSlNUZXN0T2JqIikpOwogICAgIEFTU0VSVF9HQ19PQkpF
Q1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNUZXN0T2JqOjppbmZvKCkpOwogICAgIFRlc3RPYmom
IGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQo
KSA8IDMpCkBAIC0yNzQ0LDcgKzI3NDQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZChFeGVjU3RhdGUqIGV4ZQogICAg
IEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9i
aiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAg
ICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVF
cnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlM
aXRlcmFsKCJDYW4gb25seSBjYWxsIEpTVGVzdE9iai5sb25nTWV0aG9kIG9uIGluc3RhbmNlcyBv
ZiBKU1Rlc3RPYmoiKSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlz
LCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmlt
cGwoKTsKIApAQCAtMjc1Nyw3ICsyNzU3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkxvbmdNZXRob2RXaXRoQXJncyhFeGVjU3QKICAg
ICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKICAgICBKU1Rlc3RP
YmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAg
ICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBl
RXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJ
TGl0ZXJhbCgiQ2FuIG9ubHkgY2FsbCBKU1Rlc3RPYmoubG9uZ01ldGhvZFdpdGhBcmdzIG9uIGlu
c3RhbmNlcyBvZiBKU1Rlc3RPYmoiKSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhj
YXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3Rl
ZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMykKQEAgLTI3
ODEsNyArMjc4MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25PYmpNZXRob2QoRXhlY1N0YXRlKiBleGVjCiAgICAgSlNWYWx1ZSB0aGlz
VmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlz
ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VM
WSghY2FzdGVkVGhpcykpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwor
ICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIkNhbiBv
bmx5IGNhbGwgSlNUZXN0T2JqLm9iak1ldGhvZCBvbiBpbnN0YW5jZXMgb2YgSlNUZXN0T2JqIikp
OwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNUZXN0T2JqOjpp
bmZvKCkpOwogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAKQEAgLTI3
OTQsNyArMjc5NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25PYmpNZXRob2RXaXRoQXJncyhFeGVjU3RhCiAgICAgSlNWYWx1ZSB0aGlz
VmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlz
ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VM
WSghY2FzdGVkVGhpcykpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwor
ICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIkNhbiBv
bmx5IGNhbGwgSlNUZXN0T2JqLm9iak1ldGhvZFdpdGhBcmdzIG9uIGluc3RhbmNlcyBvZiBKU1Rl
c3RPYmoiKSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rl
c3RPYmo6OmluZm8oKSk7CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsK
ICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMykKQEAgLTI4MTgsNyArMjgxOCw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoU2VxdWVuY2VBcmcoRXhlCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5o
b3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2Fz
dDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykp
Ci0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4g
dGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIkNhbiBvbmx5IGNhbGwgSlNUZXN0
T2JqLm1ldGhvZFdpdGhTZXF1ZW5jZUFyZyBvbiBpbnN0YW5jZXMgb2YgSlNUZXN0T2JqIikpOwog
ICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNUZXN0T2JqOjppbmZv
KCkpOwogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgaWYgKGV4
ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCkBAIC0yODM1LDcgKzI4MzUsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kUmV0dXJu
aW5nU2VxdWVuY2UoRQogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1
ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2Jq
Kj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQotICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBl
RXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJDYW4gb25seSBjYWxsIEpTVGVzdE9iai5tZXRob2RS
ZXR1cm5pbmdTZXF1ZW5jZSBvbiBpbnN0YW5jZXMgb2YgSlNUZXN0T2JqIikpOwogICAgIEFTU0VS
VF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNUZXN0T2JqOjppbmZvKCkpOwogICAg
IFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFyZ3Vt
ZW50Q291bnQoKSA8IDEpCkBAIC0yODUzLDcgKzI4NTMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEVudW1BcmcoRXhl
Y1N0YQogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwogICAg
IEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1Zh
bHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQotICAgICAgICByZXR1cm4gdGhy
b3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhl
YywgQVNDSUlMaXRlcmFsKCJDYW4gb25seSBjYWxsIEpTVGVzdE9iai5tZXRob2RXaXRoRW51bUFy
ZyBvbiBpbnN0YW5jZXMgb2YgSlNUZXN0T2JqIikpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5I
RVJJVFMoY2FzdGVkVGhpcywgSlNUZXN0T2JqOjppbmZvKCkpOwogICAgIFRlc3RPYmomIGltcGwg
PSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEp
CkBAIC0yODYyLDcgKzI4NjIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEVudW1BcmcoRXhlY1N0YQogICAgIGlmIChV
TkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgaWYgKGVudW1BcmcgIT0gIiIgJiYgZW51bUFyZyAh
PSAiRW51bVZhbHVlMSIgJiYgZW51bUFyZyAhPSAiRW51bVZhbHVlMiIgJiYgZW51bUFyZyAhPSAi
RW51bVZhbHVlMyIpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAg
ICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIkFyZ3VtZW50
IDEgKCdlbnVtQXJnJykgdG8gVGVzdE9iai5pbXBsLm1ldGhvZFdpdGhFbnVtQXJnIG11c3QgYmUg
b25lIG9mOiBcIlwiLCBcIkVudW1WYWx1ZTFcIiwgXCJFbnVtVmFsdWUyXCIsIFwiRW51bVZhbHVl
M1wiIikpOwogICAgIGltcGwubWV0aG9kV2l0aEVudW1BcmcoZW51bUFyZyk7CiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KQEAgLTI4NzIsNyArMjg3Miw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5o
b3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2Fz
dDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykp
Ci0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4g
dGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIkNhbiBvbmx5IGNhbGwgSlNUZXN0
T2JqLm1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3Mgb24gaW5zdGFuY2VzIG9mIEpT
VGVzdE9iaiIpKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpT
VGVzdE9iajo6aW5mbygpKTsKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgp
OwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAyKQpAQCAtMjg5NSw3ICsyODk1LDcg
QEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
blNlcmlhbGl6ZWRWYWx1ZShFeGVjU3RhdGUKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMt
Pmhvc3RUaGlzVmFsdWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWND
YXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlz
KSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiQ2FuIG9ubHkgY2FsbCBKU1Rl
c3RPYmouc2VyaWFsaXplZFZhbHVlIG9uIGluc3RhbmNlcyBvZiBKU1Rlc3RPYmoiKSk7CiAgICAg
QVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7
CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+
YXJndW1lbnRDb3VudCgpIDwgMSkKQEAgLTI5MTIsNyArMjkxMiw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PcHRpb25zT2JqZWN0KEV4
ZWNTdGF0ZSoKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsK
ICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRo
aXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKLSAgICAgICAgcmV0dXJu
IHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9y
KGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiQ2FuIG9ubHkgY2FsbCBKU1Rlc3RPYmoub3B0aW9uc09iamVj
dCBvbiBpbnN0YW5jZXMgb2YgSlNUZXN0T2JqIikpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5I
RVJJVFMoY2FzdGVkVGhpcywgSlNUZXN0T2JqOjppbmZvKCkpOwogICAgIFRlc3RPYmomIGltcGwg
PSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEp
CkBAIC0yOTMyLDcgKzI5MzIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEV4Y2VwdGlvbihFeGVjUwogICAgIEpTVmFs
dWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2Fz
dGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAo
VU5MSUtFTFkoIWNhc3RlZFRoaXMpKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihl
eGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFs
KCJDYW4gb25seSBjYWxsIEpTVGVzdE9iai5tZXRob2RXaXRoRXhjZXB0aW9uIG9uIGluc3RhbmNl
cyBvZiBKU1Rlc3RPYmoiKSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRU
aGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMt
PmltcGwoKTsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKQEAgLTI5NDYsNyArMjk0Niw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25D
dXN0b21NZXRob2QoRXhlY1N0YXRlKiBlCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5o
b3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2Fz
dDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykp
Ci0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4g
dGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIkNhbiBvbmx5IGNhbGwgSlNUZXN0
T2JqLmN1c3RvbU1ldGhvZCBvbiBpbnN0YW5jZXMgb2YgSlNUZXN0T2JqIikpOwogICAgIEFTU0VS
VF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNUZXN0T2JqOjppbmZvKCkpOwogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2FzdGVkVGhpcy0+Y3VzdG9tTWV0aG9kKGV4ZWMpKTsK
IH0KQEAgLTI5NTYsNyArMjk1Niw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DdXN0b21NZXRob2RXaXRoQXJncyhFeGVjCiAgICAgSlNW
YWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBj
YXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlm
IChVTkxJS0VMWSghY2FzdGVkVGhpcykpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9y
KGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVy
YWwoIkNhbiBvbmx5IGNhbGwgSlNUZXN0T2JqLmN1c3RvbU1ldGhvZFdpdGhBcmdzIG9uIGluc3Rh
bmNlcyBvZiBKU1Rlc3RPYmoiKSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0
ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShj
YXN0ZWRUaGlzLT5jdXN0b21NZXRob2RXaXRoQXJncyhleGVjKSk7CiB9CkBAIC0yOTY2LDcgKzI5
NjYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uQWRkRXZlbnRMaXN0ZW5lcihFeGVjU3RhdAogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0g
ZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3Rl
ZFRoaXMpKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAg
cmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJDYW4gb25seSBjYWxs
IEpTVGVzdE9iai5hZGRFdmVudExpc3RlbmVyIG9uIGluc3RhbmNlcyBvZiBKU1Rlc3RPYmoiKSk7
CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6Omlu
Zm8oKSk7CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBKU1Zh
bHVlIGxpc3RlbmVyID0gZXhlYy0+YXJndW1lbnQoMSk7CkBAIC0yOTgxLDcgKzI5ODEsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uUmVt
b3ZlRXZlbnRMaXN0ZW5lcihFeGVjUwogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9z
dFRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8
SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQot
ICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJDYW4gb25seSBjYWxsIEpTVGVzdE9i
ai5yZW1vdmVFdmVudExpc3RlbmVyIG9uIGluc3RhbmNlcyBvZiBKU1Rlc3RPYmoiKSk7CiAgICAg
QVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7
CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBKU1ZhbHVlIGxp
c3RlbmVyID0gZXhlYy0+YXJndW1lbnQoMSk7CkBAIC0yOTk2LDcgKzI5OTYsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlw
dFN0YXRlVm9pZChFeGVjUwogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNW
YWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0
T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQotICAgICAg
ICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1U
eXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJDYW4gb25seSBjYWxsIEpTVGVzdE9iai53aXRo
U2NyaXB0U3RhdGVWb2lkIG9uIGluc3RhbmNlcyBvZiBKU1Rlc3RPYmoiKSk7CiAgICAgQVNTRVJU
X0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAg
VGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpbXBsLndpdGhTY3JpcHRT
dGF0ZVZvaWQoZXhlYyk7CkBAIC0zMDA4LDcgKzMwMDgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdFN0YXRlT2JqKEV4
ZWNTdAogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwogICAg
IEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1Zh
bHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQotICAgICAgICByZXR1cm4gdGhy
b3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhl
YywgQVNDSUlMaXRlcmFsKCJDYW4gb25seSBjYWxsIEpTVGVzdE9iai53aXRoU2NyaXB0U3RhdGVP
Ymogb24gaW5zdGFuY2VzIG9mIEpTVGVzdE9iaiIpKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lO
SEVSSVRTKGNhc3RlZFRoaXMsIEpTVGVzdE9iajo6aW5mbygpKTsKICAgICBUZXN0T2JqJiBpbXBs
ID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogCkBAIC0zMDIzLDcgKzMwMjMsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdFN0
YXRlVm9pZEV4Y2VwdAogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1
ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2Jq
Kj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQotICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBl
RXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJDYW4gb25seSBjYWxsIEpTVGVzdE9iai53aXRoU2Ny
aXB0U3RhdGVWb2lkRXhjZXB0aW9uIG9uIGluc3RhbmNlcyBvZiBKU1Rlc3RPYmoiKSk7CiAgICAg
QVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7
CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBFeGNlcHRpb25D
b2RlIGVjID0gMDsKQEAgLTMwMzcsNyArMzAzNyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0U3RhdGVPYmpFeGNlcHRp
CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNU
ZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUp
OwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCi0gICAgICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBB
U0NJSUxpdGVyYWwoIkNhbiBvbmx5IGNhbGwgSlNUZXN0T2JqLndpdGhTY3JpcHRTdGF0ZU9iakV4
Y2VwdGlvbiBvbiBpbnN0YW5jZXMgb2YgSlNUZXN0T2JqIikpOwogICAgIEFTU0VSVF9HQ19PQkpF
Q1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNUZXN0T2JqOjppbmZvKCkpOwogICAgIFRlc3RPYmom
IGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CkBA
IC0zMDU0LDcgKzMwNTQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleAogICAgIEpTVmFsdWUg
dGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVk
VGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5M
SUtFTFkoIWNhc3RlZFRoaXMpKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVj
KTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJD
YW4gb25seSBjYWxsIEpTVGVzdE9iai53aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCBvbiBpbnN0
YW5jZXMgb2YgSlNUZXN0T2JqIikpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2Fz
dGVkVGhpcywgSlNUZXN0T2JqOjppbmZvKCkpOwogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRU
aGlzLT5pbXBsKCk7CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0Q29udGV4dCA9
IGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSkt
PnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKQEAgLTMwNjksNyArMzA2OSw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0
RXhlY3V0aW9uQ29udGV4CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1Zh
bHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RP
YmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCi0gICAgICAg
IHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5
cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIkNhbiBvbmx5IGNhbGwgSlNUZXN0T2JqLndpdGhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGUgb24gaW5zdGFuY2VzIG9mIEpTVGVz
dE9iaiIpKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTVGVz
dE9iajo6aW5mbygpKTsKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwog
ICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdENvbnRleHQgPSBqc0Nhc3Q8SlNET01H
bG9iYWxPYmplY3QqPihleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRp
b25Db250ZXh0KCk7CkBAIC0zMDg0LDcgKzMwODQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eAogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwogICAgIEpT
VGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVl
KTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQotICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywg
QVNDSUlMaXRlcmFsKCJDYW4gb25seSBjYWxsIEpTVGVzdE9iai53aXRoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dEFuZFNjcmlwdFN0YXRlT2JqRXhjZXB0aW9uIG9uIGluc3RhbmNlcyBvZiBKU1Rlc3RP
YmoiKSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RP
Ymo6OmluZm8oKSk7CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAg
ICBFeGNlcHRpb25Db2RlIGVjID0gMDsKQEAgLTMxMDQsNyArMzEwNCw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVl
KCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoq
Pih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCi0gICAgICAgIHJl
dHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVF
cnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIkNhbiBvbmx5IGNhbGwgSlNUZXN0T2JqLndpdGhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVXaXRoU3BhY2VzIG9uIGluc3RhbmNlcyBv
ZiBKU1Rlc3RPYmoiKSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlz
LCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmlt
cGwoKTsKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRDb250ZXh0ID0ganNDYXN0
PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpOwpAQCAtMzEyMiw3ICszMTIyLDcgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRBcmd1bWVu
dHNBbmRDYWwKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsK
ICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRo
aXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKLSAgICAgICAgcmV0dXJu
IHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9y
KGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiQ2FuIG9ubHkgY2FsbCBKU1Rlc3RPYmoud2l0aFNjcmlwdEFy
Z3VtZW50c0FuZENhbGxTdGFjayBvbiBpbnN0YW5jZXMgb2YgSlNUZXN0T2JqIikpOwogICAgIEFT
U0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNUZXN0T2JqOjppbmZvKCkpOwog
ICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgUmVmUHRyPEluc3Bl
Y3Rvcjo6U2NyaXB0QXJndW1lbnRzPiBzY3JpcHRBcmd1bWVudHMoSW5zcGVjdG9yOjpjcmVhdGVT
Y3JpcHRBcmd1bWVudHMoZXhlYywgMCkpOwpAQCAtMzEzNSw3ICszMTM1LDcgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhP
cHRpb25hbEFyZyhFeGUKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFs
dWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9i
aio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKLSAgICAgICAg
cmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlw
ZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiQ2FuIG9ubHkgY2FsbCBKU1Rlc3RPYmoubWV0aG9k
V2l0aE9wdGlvbmFsQXJnIG9uIGluc3RhbmNlcyBvZiBKU1Rlc3RPYmoiKSk7CiAgICAgQVNTRVJU
X0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAg
VGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKIApAQCAtMzE1Nyw3ICszMTU3LDcg
QEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0EKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMt
Pmhvc3RUaGlzVmFsdWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWND
YXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlz
KSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiQ2FuIG9ubHkgY2FsbCBKU1Rl
c3RPYmoubWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kT3B0aW9uYWxBcmcgb24gaW5zdGFuY2Vz
IG9mIEpTVGVzdE9iaiIpKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRo
aXMsIEpTVGVzdE9iajo6aW5mbygpKTsKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+
aW1wbCgpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQpAQCAtMzE4NCw3ICsz
MTg0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0EKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9
IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5
bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0
ZWRUaGlzKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAg
IHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiQ2FuIG9ubHkgY2Fs
bCBKU1Rlc3RPYmoubWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kVHdvT3B0aW9uYWxBcmdzIG9u
IGluc3RhbmNlcyBvZiBKU1Rlc3RPYmoiKSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklU
UyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNh
c3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKQEAg
LTMyMTksNyArMzIxOSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTdHJpbmcoCiAgICAgSlNWYWx1ZSB0
aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRU
aGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJ
S0VMWSghY2FzdGVkVGhpcykpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMp
OworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIkNh
biBvbmx5IGNhbGwgSlNUZXN0T2JqLm1ldGhvZFdpdGhPcHRpb25hbFN0cmluZyBvbiBpbnN0YW5j
ZXMgb2YgSlNUZXN0T2JqIikpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVk
VGhpcywgSlNUZXN0T2JqOjppbmZvKCkpOwogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlz
LT5pbXBsKCk7CiAKQEAgLTMyNDEsNyArMzI0MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJ
CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNU
ZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUp
OwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCi0gICAgICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBB
U0NJSUxpdGVyYWwoIkNhbiBvbmx5IGNhbGwgSlNUZXN0T2JqLm1ldGhvZFdpdGhPcHRpb25hbFN0
cmluZ0lzVW5kZWZpbmVkIG9uIGluc3RhbmNlcyBvZiBKU1Rlc3RPYmoiKSk7CiAgICAgQVNTRVJU
X0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAg
VGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBjb25zdCBTdHJpbmcmIHN0
cihleGVjLT5hcmd1bWVudCgwKS5pc0VtcHR5KCkgPyBTdHJpbmcoKSA6IGV4ZWMtPmFyZ3VtZW50
KDApLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSk7CkBAIC0zMjU2LDcgKzMyNTYsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0
aG9kV2l0aE9wdGlvbmFsU3RyaW5nSQogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9z
dFRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8
SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQot
ICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJDYW4gb25seSBjYWxsIEpTVGVzdE9i
ai5tZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJc051bGxTdHJpbmcgb24gaW5zdGFuY2VzIG9mIEpT
VGVzdE9iaiIpKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpT
VGVzdE9iajo6aW5mbygpKTsKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgp
OwogICAgIGNvbnN0IFN0cmluZyYgc3RyKGFyZ3VtZW50T3JOdWxsKGV4ZWMsIDApLmlzRW1wdHko
KSA/IFN0cmluZygpIDogYXJndW1lbnRPck51bGwoZXhlYywgMCkudG9TdHJpbmcoZXhlYyktPnZh
bHVlKGV4ZWMpKTsKQEAgLTMyNzEsMTMgKzMyNzEsMTMgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhDYWxsYmFja0FyZyhF
eGUKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKICAgICBK
U1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1
ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKLSAgICAgICAgcmV0dXJuIHRocm93
Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMs
IEFTQ0lJTGl0ZXJhbCgiQ2FuIG9ubHkgY2FsbCBKU1Rlc3RPYmoubWV0aG9kV2l0aENhbGxiYWNr
QXJnIG9uIGluc3RhbmNlcyBvZiBKU1Rlc3RPYmoiKSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9J
TkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAgVGVzdE9iaiYgaW1w
bCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwg
MSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1
bWVudHNFcnJvcihleGVjKSk7CiAgICAgaWYgKCFleGVjLT5hcmd1bWVudCgwKS5pc0Z1bmN0aW9u
KCkpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1
cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIkFyZ3VtZW50IDEgKCdjYWxs
YmFjaycpIHRvIFRlc3RPYmouaW1wbC5tZXRob2RXaXRoQ2FsbGJhY2tBcmcgbXVzdCBiZSBhIGZ1
bmN0aW9uIikpOwogICAgIFJlZlB0cjxUZXN0Q2FsbGJhY2s+IGNhbGxiYWNrID0gSlNUZXN0Q2Fs
bGJhY2s6OmNyZWF0ZShhc09iamVjdChleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSksIGNhc3Rl
ZFRoaXMtPmdsb2JhbE9iamVjdCgpKTsKICAgICBpbXBsLm1ldGhvZFdpdGhDYWxsYmFja0FyZyhj
YWxsYmFjayk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKQEAg
LTMyODgsNyArMzI4OCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uQ2FsbGJhY2tBcmdBCiAgICAgSlNWYWx1ZSB0
aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRU
aGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJ
S0VMWSghY2FzdGVkVGhpcykpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMp
OworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIkNh
biBvbmx5IGNhbGwgSlNUZXN0T2JqLm1ldGhvZFdpdGhOb25DYWxsYmFja0FyZ0FuZENhbGxiYWNr
QXJnIG9uIGluc3RhbmNlcyBvZiBKU1Rlc3RPYmoiKSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9J
TkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAgVGVzdE9iaiYgaW1w
bCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwg
MikKQEAgLTMyOTcsNyArMzI5Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uQ2FsbGJhY2tBcmdBCiAgICAgaWYg
KFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBpZiAoIWV4ZWMtPmFyZ3VtZW50KDEpLmlzRnVu
Y3Rpb24oKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAg
IHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiQXJndW1lbnQgMiAo
J2NhbGxiYWNrJykgdG8gVGVzdE9iai5pbXBsLm1ldGhvZFdpdGhOb25DYWxsYmFja0FyZ0FuZENh
bGxiYWNrQXJnIG11c3QgYmUgYSBmdW5jdGlvbiIpKTsKICAgICBSZWZQdHI8VGVzdENhbGxiYWNr
PiBjYWxsYmFjayA9IEpTVGVzdENhbGxiYWNrOjpjcmVhdGUoYXNPYmplY3QoZXhlYy0+dW5jaGVj
a2VkQXJndW1lbnQoMSkpLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSk7CiAgICAgaW1wbC5t
ZXRob2RXaXRoTm9uQ2FsbGJhY2tBcmdBbmRDYWxsYmFja0FyZyhub25DYWxsYmFjaywgY2FsbGJh
Y2spOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CkBAIC0zMzA4
LDEzICszMzA4LDEzIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQ2FsbGJhY2tBbmRPcHRpCiAgICAgSlNWYWx1ZSB0aGlz
VmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlz
ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VM
WSghY2FzdGVkVGhpcykpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwor
ICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIkNhbiBv
bmx5IGNhbGwgSlNUZXN0T2JqLm1ldGhvZFdpdGhDYWxsYmFja0FuZE9wdGlvbmFsQXJnIG9uIGlu
c3RhbmNlcyBvZiBKU1Rlc3RPYmoiKSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhj
YXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3Rl
ZFRoaXMtPmltcGwoKTsKICAgICBSZWZQdHI8VGVzdENhbGxiYWNrPiBjYWxsYmFjazsKICAgICBp
ZiAoIWV4ZWMtPmFyZ3VtZW50KDApLmlzVW5kZWZpbmVkT3JOdWxsKCkpIHsKICAgICAgICAgaWYg
KCFleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKS5pc0Z1bmN0aW9uKCkpCi0gICAgICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiQXJndW1lbnQgMSAoJ2NhbGxiYWNrJykgdG8g
VGVzdE9iai5pbXBsLm1ldGhvZFdpdGhDYWxsYmFja0FuZE9wdGlvbmFsQXJnIG11c3QgYmUgYSBm
dW5jdGlvbiIpKTsKICAgICAgICAgY2FsbGJhY2sgPSBKU1Rlc3RDYWxsYmFjazo6Y3JlYXRlKGFz
T2JqZWN0KGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKSwgY2FzdGVkVGhpcy0+Z2xvYmFsT2Jq
ZWN0KCkpOwogICAgIH0KICAgICBpbXBsLm1ldGhvZFdpdGhDYWxsYmFja0FuZE9wdGlvbmFsQXJn
KGNhbGxiYWNrKTsKQEAgLTMzMjYsNyArMzMyNiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvblN0YXRpY01ldGhvZFdpdGhDYWxsYmFj
CiAgICAgUmVmUHRyPFRlc3RDYWxsYmFjaz4gY2FsbGJhY2s7CiAgICAgaWYgKCFleGVjLT5hcmd1
bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVsbCgpKSB7CiAgICAgICAgIGlmICghZXhlYy0+dW5jaGVj
a2VkQXJndW1lbnQoMCkuaXNGdW5jdGlvbigpKQotICAgICAgICAgICAgcmV0dXJuIHRocm93Vk1U
eXBlRXJyb3IoZXhlYyk7CisgICAgICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVj
LCBBU0NJSUxpdGVyYWwoIkFyZ3VtZW50IDEgKCdjYWxsYmFjaycpIHRvIFRlc3RPYmouVGVzdE9i
ajo6c3RhdGljTWV0aG9kV2l0aENhbGxiYWNrQW5kT3B0aW9uYWxBcmcgbXVzdCBiZSBhIGZ1bmN0
aW9uIikpOwogICAgICAgICBjYWxsYmFjayA9IGNyZWF0ZUZ1bmN0aW9uT25seUNhbGxiYWNrPEpT
VGVzdENhbGxiYWNrPihleGVjLCBqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihleGVjLT5sZXhp
Y2FsR2xvYmFsT2JqZWN0KCkpLCBleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CiAgICAgfQog
ICAgIFRlc3RPYmo6OnN0YXRpY01ldGhvZFdpdGhDYWxsYmFja0FuZE9wdGlvbmFsQXJnKGNhbGxi
YWNrKTsKQEAgLTMzMzgsNyArMzMzOCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvblN0YXRpY01ldGhvZFdpdGhDYWxsYmFjCiAgICAg
aWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJy
b3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwogICAgIGlmICgh
ZXhlYy0+YXJndW1lbnQoMCkuaXNGdW5jdGlvbigpKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5
cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgQVND
SUlMaXRlcmFsKCJBcmd1bWVudCAxICgnY2FsbGJhY2snKSB0byBUZXN0T2JqLlRlc3RPYmo6OnN0
YXRpY01ldGhvZFdpdGhDYWxsYmFja0FyZyBtdXN0IGJlIGEgZnVuY3Rpb24iKSk7CiAgICAgUmVm
UHRyPFRlc3RDYWxsYmFjaz4gY2FsbGJhY2sgPSBjcmVhdGVGdW5jdGlvbk9ubHlDYWxsYmFjazxK
U1Rlc3RDYWxsYmFjaz4oZXhlYywganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhlYy0+bGV4
aWNhbEdsb2JhbE9iamVjdCgpKSwgZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOwogICAgIFRl
c3RPYmo6OnN0YXRpY01ldGhvZFdpdGhDYWxsYmFja0FyZyhjYWxsYmFjayk7CiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKQEAgLTMzNTAsNyArMzM1MCw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25k
aXRpb25hbE1ldGhvZDEoRXhlY1N0CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0
VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxK
U1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCi0g
ICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhy
b3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIkNhbiBvbmx5IGNhbGwgSlNUZXN0T2Jq
LmNvbmRpdGlvbmFsTWV0aG9kMSBvbiBpbnN0YW5jZXMgb2YgSlNUZXN0T2JqIikpOwogICAgIEFT
U0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNUZXN0T2JqOjppbmZvKCkpOwog
ICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAKQEAgLTMzNjYsNyArMzM2
Niw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25Db25kaXRpb25hbE1ldGhvZDIoRXhlY1N0CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBl
eGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5h
bWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVk
VGhpcykpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIkNhbiBvbmx5IGNhbGwg
SlNUZXN0T2JqLmNvbmRpdGlvbmFsTWV0aG9kMiBvbiBpbnN0YW5jZXMgb2YgSlNUZXN0T2JqIikp
OwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNUZXN0T2JqOjpp
bmZvKCkpOwogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgaW1w
bC5jb25kaXRpb25hbE1ldGhvZDIoKTsKQEAgLTMzODEsNyArMzM4MSw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbE1l
dGhvZDMoRXhlY1N0CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVl
KCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoq
Pih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCi0gICAgICAgIHJl
dHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVF
cnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIkNhbiBvbmx5IGNhbGwgSlNUZXN0T2JqLmNvbmRpdGlv
bmFsTWV0aG9kMyBvbiBpbnN0YW5jZXMgb2YgSlNUZXN0T2JqIikpOwogICAgIEFTU0VSVF9HQ19P
QkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNUZXN0T2JqOjppbmZvKCkpOwogICAgIFRlc3RP
YmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgaW1wbC5jb25kaXRpb25hbE1ldGhv
ZDMoKTsKQEAgLTMzOTUsNyArMzM5NSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDEoCiAgICAg
SlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2Jq
KiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAg
IGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVy
cm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxp
dGVyYWwoIkNhbiBvbmx5IGNhbGwgSlNUZXN0T2JqLm92ZXJsb2FkZWRNZXRob2Qgb24gaW5zdGFu
Y2VzIG9mIEpTVGVzdE9iaiIpKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3Rl
ZFRoaXMsIEpTVGVzdE9iajo6aW5mbygpKTsKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhp
cy0+aW1wbCgpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAyKQpAQCAtMzQxNSw3
ICszNDE1LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMigKICAgICBKU1ZhbHVlIHRoaXNWYWx1
ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBq
c0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFj
YXN0ZWRUaGlzKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAg
ICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiQ2FuIG9ubHkg
Y2FsbCBKU1Rlc3RPYmoub3ZlcmxvYWRlZE1ldGhvZCBvbiBpbnN0YW5jZXMgb2YgSlNUZXN0T2Jq
IikpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNUZXN0T2Jq
OjppbmZvKCkpOwogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAg
aWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCkBAIC0zNDQyLDcgKzM0NDIsNyBAQCBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk92ZXJsb2FkZWRNZXRob2QzKAogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRo
aXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNU
ZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQotICAg
ICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93
Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJDYW4gb25seSBjYWxsIEpTVGVzdE9iai5v
dmVybG9hZGVkTWV0aG9kIG9uIGluc3RhbmNlcyBvZiBKU1Rlc3RPYmoiKSk7CiAgICAgQVNTRVJU
X0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAg
VGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1l
bnRDb3VudCgpIDwgMSkKQEAgLTM0NTksNyArMzQ1OSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhv
ZDQoCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAg
SlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFs
dWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCi0gICAgICAgIHJldHVybiB0aHJv
d1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVj
LCBBU0NJSUxpdGVyYWwoIkNhbiBvbmx5IGNhbGwgSlNUZXN0T2JqLm92ZXJsb2FkZWRNZXRob2Qg
b24gaW5zdGFuY2VzIG9mIEpTVGVzdE9iaiIpKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVS
SVRTKGNhc3RlZFRoaXMsIEpTVGVzdE9iajo6aW5mbygpKTsKICAgICBUZXN0T2JqJiBpbXBsID0g
Y2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQpA
QCAtMzQ3NiwxMyArMzQ3NiwxMyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q1KAogICAgIEpTVmFs
dWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2Fz
dGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAo
VU5MSUtFTFkoIWNhc3RlZFRoaXMpKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihl
eGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFs
KCJDYW4gb25seSBjYWxsIEpTVGVzdE9iai5vdmVybG9hZGVkTWV0aG9kIG9uIGluc3RhbmNlcyBv
ZiBKU1Rlc3RPYmoiKSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlz
LCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmlt
cGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJu
IHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7
CiAgICAgaWYgKCFleGVjLT5hcmd1bWVudCgwKS5pc0Z1bmN0aW9uKCkpCi0gICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJv
cihleGVjLCBBU0NJSUxpdGVyYWwoIkFyZ3VtZW50IDEgKCdjYWxsYmFjaycpIHRvIFRlc3RPYmou
aW1wbC5vdmVybG9hZGVkTWV0aG9kIG11c3QgYmUgYSBmdW5jdGlvbiIpKTsKICAgICBSZWZQdHI8
VGVzdENhbGxiYWNrPiBjYWxsYmFjayA9IEpTVGVzdENhbGxiYWNrOjpjcmVhdGUoYXNPYmplY3Qo
ZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSk7
CiAgICAgaW1wbC5vdmVybG9hZGVkTWV0aG9kKGNhbGxiYWNrKTsKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwpAQCAtMzQ5Myw3ICszNDkzLDcgQEAgc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVy
bG9hZGVkTWV0aG9kNigKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFs
dWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9i
aio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKLSAgICAgICAg
cmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlw
ZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiQ2FuIG9ubHkgY2FsbCBKU1Rlc3RPYmoub3Zlcmxv
YWRlZE1ldGhvZCBvbiBpbnN0YW5jZXMgb2YgSlNUZXN0T2JqIikpOwogICAgIEFTU0VSVF9HQ19P
QkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNUZXN0T2JqOjppbmZvKCkpOwogICAgIFRlc3RP
YmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291
bnQoKSA8IDEpCkBAIC0zNTEwLDcgKzM1MTAsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q3KAog
ICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwogICAgIEpTVGVz
dE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsK
ICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5
cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgQVND
SUlMaXRlcmFsKCJDYW4gb25seSBjYWxsIEpTVGVzdE9iai5vdmVybG9hZGVkTWV0aG9kIG9uIGlu
c3RhbmNlcyBvZiBKU1Rlc3RPYmoiKSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhj
YXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3Rl
ZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKQEAgLTM1
MjcsNyArMzUyNyw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDgoCiAgICAgSlNWYWx1ZSB0aGlz
VmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlz
ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VM
WSghY2FzdGVkVGhpcykpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwor
ICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIkNhbiBv
bmx5IGNhbGwgSlNUZXN0T2JqLm92ZXJsb2FkZWRNZXRob2Qgb24gaW5zdGFuY2VzIG9mIEpTVGVz
dE9iaiIpKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTVGVz
dE9iajo6aW5mbygpKTsKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwog
ICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQpAQCAtMzU0NCw3ICszNTQ0LDcgQEAg
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25PdmVybG9hZGVkTWV0aG9kOSgKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhv
c3RUaGlzVmFsdWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0
PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkK
LSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0
aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiQ2FuIG9ubHkgY2FsbCBKU1Rlc3RP
Ymoub3ZlcmxvYWRlZE1ldGhvZCBvbiBpbnN0YW5jZXMgb2YgSlNUZXN0T2JqIikpOwogICAgIEFT
U0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNUZXN0T2JqOjppbmZvKCkpOwog
ICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFy
Z3VtZW50Q291bnQoKSA8IDEpCkBAIC0zNTYxLDcgKzM1NjEsNyBAQCBzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRN
ZXRob2QxMAogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwog
ICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhp
c1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQotICAgICAgICByZXR1cm4g
dGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Io
ZXhlYywgQVNDSUlMaXRlcmFsKCJDYW4gb25seSBjYWxsIEpTVGVzdE9iai5vdmVybG9hZGVkTWV0
aG9kIG9uIGluc3RhbmNlcyBvZiBKU1Rlc3RPYmoiKSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9J
TkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAgVGVzdE9iaiYgaW1w
bCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwg
MSkKQEAgLTM1NzgsNyArMzU3OCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDExCiAgICAgSlNW
YWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBj
YXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlm
IChVTkxJS0VMWSghY2FzdGVkVGhpcykpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9y
KGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVy
YWwoIkNhbiBvbmx5IGNhbGwgSlNUZXN0T2JqLm92ZXJsb2FkZWRNZXRob2Qgb24gaW5zdGFuY2Vz
IG9mIEpTVGVzdE9iaiIpKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRo
aXMsIEpTVGVzdE9iajo6aW5mbygpKTsKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+
aW1wbCgpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQpAQCAtMzcwNSw3ICsz
NzA1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbkNsYXNzTWV0aG9kV2l0aENsYW1wKEV4ZWMKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9
IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5
bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0
ZWRUaGlzKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAg
IHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiQ2FuIG9ubHkgY2Fs
bCBKU1Rlc3RPYmouY2xhc3NNZXRob2RXaXRoQ2xhbXAgb24gaW5zdGFuY2VzIG9mIEpTVGVzdE9i
aiIpKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTVGVzdE9i
ajo6aW5mbygpKTsKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAg
IGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAyKQpAQCAtMzczNSw3ICszNzM1LDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhVbnNpZ25lZExvbmdTZXEKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RU
aGlzVmFsdWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpT
VGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKLSAg
ICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJv
d1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiQ2FuIG9ubHkgY2FsbCBKU1Rlc3RPYmou
bWV0aG9kV2l0aFVuc2lnbmVkTG9uZ1NlcXVlbmNlIG9uIGluc3RhbmNlcyBvZiBKU1Rlc3RPYmoi
KSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6
OmluZm8oKSk7CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBp
ZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKQEAgLTM3NTIsNyArMzc1Miw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TdHJpbmdB
cnJheUZ1bmN0aW9uKEV4ZWNTCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhp
c1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rl
c3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCi0gICAg
ICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIkNhbiBvbmx5IGNhbGwgSlNUZXN0T2JqLnN0
cmluZ0FycmF5RnVuY3Rpb24gb24gaW5zdGFuY2VzIG9mIEpTVGVzdE9iaiIpKTsKICAgICBBU1NF
UlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTVGVzdE9iajo6aW5mbygpKTsKICAg
ICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIGlmIChleGVjLT5hcmd1
bWVudENvdW50KCkgPCAxKQpAQCAtMzc3Miw3ICszNzcyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkRvbVN0cmluZ0xpc3RGdW5jdGlv
bihFeGUKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKICAg
ICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRoaXNW
YWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKLSAgICAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMsIEFTQ0lJTGl0ZXJhbCgiQ2FuIG9ubHkgY2FsbCBKU1Rlc3RPYmouZG9tU3RyaW5nTGlzdEZ1
bmN0aW9uIG9uIGluc3RhbmNlcyBvZiBKU1Rlc3RPYmoiKSk7CiAgICAgQVNTRVJUX0dDX09CSkVD
VF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAgVGVzdE9iaiYg
aW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgp
IDwgMSkKQEAgLTM3OTIsNyArMzc5Miw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25HZXRTVkdEb2N1bWVudChFeGVjU3RhdGUqCiAgICAg
SlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2Jq
KiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAg
IGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVy
cm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxp
dGVyYWwoIkNhbiBvbmx5IGNhbGwgSlNUZXN0T2JqLmdldFNWR0RvY3VtZW50IG9uIGluc3RhbmNl
cyBvZiBKU1Rlc3RPYmoiKSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRU
aGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMt
PmltcGwoKTsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKQEAgLTM4MDksNyArMzgwOSw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25D
b252ZXJ0MShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5o
b3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2Fz
dDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykp
Ci0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4g
dGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIkNhbiBvbmx5IGNhbGwgSlNUZXN0
T2JqLmNvbnZlcnQxIG9uIGluc3RhbmNlcyBvZiBKU1Rlc3RPYmoiKSk7CiAgICAgQVNTRVJUX0dD
X09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAgVGVz
dE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRD
b3VudCgpIDwgMSkKQEAgLTM4MjYsNyArMzgyNiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0MihFeGVjU3RhdGUqIGV4ZWMp
CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNU
ZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUp
OwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCi0gICAgICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBB
U0NJSUxpdGVyYWwoIkNhbiBvbmx5IGNhbGwgSlNUZXN0T2JqLmNvbnZlcnQyIG9uIGluc3RhbmNl
cyBvZiBKU1Rlc3RPYmoiKSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRU
aGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMt
PmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKQEAgLTM4NDMsNyAr
Mzg0Myw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25Db252ZXJ0NChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUg
PSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNE
eW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2Fz
dGVkVGhpcykpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAg
ICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIkNhbiBvbmx5IGNh
bGwgSlNUZXN0T2JqLmNvbnZlcnQ0IG9uIGluc3RhbmNlcyBvZiBKU1Rlc3RPYmoiKSk7CiAgICAg
QVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7
CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+
YXJndW1lbnRDb3VudCgpIDwgMSkKQEAgLTM4NjAsNyArMzg2MCw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0NShFeGVjU3Rh
dGUqIGV4ZWMpCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7
CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0
aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCi0gICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJv
cihleGVjLCBBU0NJSUxpdGVyYWwoIkNhbiBvbmx5IGNhbGwgSlNUZXN0T2JqLmNvbnZlcnQ1IG9u
IGluc3RhbmNlcyBvZiBKU1Rlc3RPYmoiKSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklU
UyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNh
c3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKQEAg
LTM4NzcsNyArMzg3Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NdXRhYmxlUG9pbnRGdW5jdGlvbihFeGVjCiAgICAgSlNWYWx1ZSB0
aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRU
aGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJ
S0VMWSghY2FzdGVkVGhpcykpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMp
OworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIkNh
biBvbmx5IGNhbGwgSlNUZXN0T2JqLm11dGFibGVQb2ludEZ1bmN0aW9uIG9uIGluc3RhbmNlcyBv
ZiBKU1Rlc3RPYmoiKSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlz
LCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmlt
cGwoKTsKIApAQCAtMzg5MCw3ICszODkwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkltbXV0YWJsZVBvaW50RnVuY3Rpb24oRXgKICAg
ICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKICAgICBKU1Rlc3RP
YmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAg
ICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBl
RXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJ
TGl0ZXJhbCgiQ2FuIG9ubHkgY2FsbCBKU1Rlc3RPYmouaW1tdXRhYmxlUG9pbnRGdW5jdGlvbiBv
biBpbnN0YW5jZXMgb2YgSlNUZXN0T2JqIikpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJ
VFMoY2FzdGVkVGhpcywgSlNUZXN0T2JqOjppbmZvKCkpOwogICAgIFRlc3RPYmomIGltcGwgPSBj
YXN0ZWRUaGlzLT5pbXBsKCk7CiAKQEAgLTM5MDMsNyArMzkwMyw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PcmFuZ2UoRXhlY1N0YXRl
KiBleGVjKQogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwog
ICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhp
c1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQotICAgICAgICByZXR1cm4g
dGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Io
ZXhlYywgQVNDSUlMaXRlcmFsKCJDYW4gb25seSBjYWxsIEpTVGVzdE9iai5vcmFuZ2Ugb24gaW5z
dGFuY2VzIG9mIEpTVGVzdE9iaiIpKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNh
c3RlZFRoaXMsIEpTVGVzdE9iajo6aW5mbygpKTsKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVk
VGhpcy0+aW1wbCgpOwogICAgIGltcGwuYmFuYW5hKCk7CkBAIC0zOTE1LDcgKzM5MTUsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU3Ry
aWN0RnVuY3Rpb24oRXhlY1N0YXRlKgogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9z
dFRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8
SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQot
ICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJDYW4gb25seSBjYWxsIEpTVGVzdE9i
ai5zdHJpY3RGdW5jdGlvbiBvbiBpbnN0YW5jZXMgb2YgSlNUZXN0T2JqIikpOwogICAgIEFTU0VS
VF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNUZXN0T2JqOjppbmZvKCkpOwogICAg
IFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFyZ3Vt
ZW50Q291bnQoKSA8IDMpCkBAIC0zOTQxLDE0ICszOTQxLDE0IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TdHJpY3RGdW5jdGlvbldpdGhT
ZXF1ZW5jCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAg
ICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlz
VmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCi0gICAgICAgIHJldHVybiB0
aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihl
eGVjLCBBU0NJSUxpdGVyYWwoIkNhbiBvbmx5IGNhbGwgSlNUZXN0T2JqLnN0cmljdEZ1bmN0aW9u
V2l0aFNlcXVlbmNlIG9uIGluc3RhbmNlcyBvZiBKU1Rlc3RPYmoiKSk7CiAgICAgQVNTRVJUX0dD
X09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAgVGVz
dE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRD
b3VudCgpIDwgMikKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RF
bm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAg
ICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA+IDAgJiYgIWV4ZWMtPmFyZ3VtZW50KDApLmlz
VW5kZWZpbmVkT3JOdWxsKCkgJiYgIWV4ZWMtPmFyZ3VtZW50KDApLmluaGVyaXRzKEpTVGVzdE9i
ajo6aW5mbygpKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAg
ICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiQXJndW1lbnQg
MSAoJ29iakFyZycpIHRvIGltcGwuc3RyaWN0RnVuY3Rpb25XaXRoU2VxdWVuY2UgbXVzdCBiZSBh
biBpbnN0YW5jZSBvZiBUZXN0T2JqIikpOwogICAgIFRlc3RPYmoqIG9iakFyZyh0b1Rlc3RPYmoo
ZXhlYy0+YXJndW1lbnQoMCkpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9u
KCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwpAQCAt
Mzk2NiwxNCArMzk2NiwxNCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uU3RyaWN0RnVuY3Rpb25XaXRoQXJyYXkoRQogICAgIEpTVmFsdWUg
dGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVk
VGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5M
SUtFTFkoIWNhc3RlZFRoaXMpKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVj
KTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJD
YW4gb25seSBjYWxsIEpTVGVzdE9iai5zdHJpY3RGdW5jdGlvbldpdGhBcnJheSBvbiBpbnN0YW5j
ZXMgb2YgSlNUZXN0T2JqIikpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVk
VGhpcywgSlNUZXN0T2JqOjppbmZvKCkpOwogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlz
LT5pbXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDIpCiAgICAgICAgIHJl
dHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhl
YykpOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIGlmIChleGVjLT5hcmd1bWVudENv
dW50KCkgPiAwICYmICFleGVjLT5hcmd1bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVsbCgpICYmICFl
eGVjLT5hcmd1bWVudCgwKS5pbmhlcml0cyhKU1Rlc3RPYmo6OmluZm8oKSkpCi0gICAgICAgIHJl
dHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVF
cnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIkFyZ3VtZW50IDEgKCdvYmpBcmcnKSB0byBpbXBsLnN0
cmljdEZ1bmN0aW9uV2l0aEFycmF5IG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgVGVzdE9iaiIpKTsK
ICAgICBUZXN0T2JqKiBvYmpBcmcodG9UZXN0T2JqKGV4ZWMtPmFyZ3VtZW50KDApKSk7CiAgICAg
aWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKQEAgLTM5OTEsNyArMzk5MSw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25WYXJpYWRpY1N0
cmluZ01ldGhvZChFeGVjCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1Zh
bHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RP
YmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCi0gICAgICAg
IHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5
cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIkNhbiBvbmx5IGNhbGwgSlNUZXN0T2JqLnZhcmlh
ZGljU3RyaW5nTWV0aG9kIG9uIGluc3RhbmNlcyBvZiBKU1Rlc3RPYmoiKSk7CiAgICAgQVNTRVJU
X0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAg
VGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1l
bnRDb3VudCgpIDwgMSkKQEAgLTQwMTEsNyArNDAxMSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25WYXJpYWRpY0RvdWJsZU1ldGhvZChF
eGVjCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAg
SlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFs
dWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCi0gICAgICAgIHJldHVybiB0aHJv
d1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVj
LCBBU0NJSUxpdGVyYWwoIkNhbiBvbmx5IGNhbGwgSlNUZXN0T2JqLnZhcmlhZGljRG91YmxlTWV0
aG9kIG9uIGluc3RhbmNlcyBvZiBKU1Rlc3RPYmoiKSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9J
TkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAgVGVzdE9iaiYgaW1w
bCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwg
MSkKQEAgLTQwMzEsNyArNDAzMSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25WYXJpYWRpY05vZGVNZXRob2QoRXhlY1N0CiAgICAgSlNW
YWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBj
YXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlm
IChVTkxJS0VMWSghY2FzdGVkVGhpcykpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9y
KGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVy
YWwoIkNhbiBvbmx5IGNhbGwgSlNUZXN0T2JqLnZhcmlhZGljTm9kZU1ldGhvZCBvbiBpbnN0YW5j
ZXMgb2YgSlNUZXN0T2JqIikpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVk
VGhpcywgSlNUZXN0T2JqOjppbmZvKCkpOwogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlz
LT5pbXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCkBAIC00MDQyLDcg
KzQwNDIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uVmFyaWFkaWNOb2RlTWV0aG9kKEV4ZWNTdAogICAgIFZlY3RvcjxOb2RlKj4gdGFp
bDsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAxLCBjb3VudCA9IGV4ZWMtPmFyZ3VtZW50Q291bnQo
KTsgaSA8IGNvdW50OyArK2kpIHsKICAgICAgICAgaWYgKCFleGVjLT51bmNoZWNrZWRBcmd1bWVu
dChpKS5pbmhlcml0cyhKU05vZGU6OmluZm8oKSkpCi0gICAgICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMsIEFTQ0lJTGl0ZXJhbCgiVGhlIGFyZ3VtZW50cyB0byBUZXN0T2JqLmltcGwudmFyaWFkaWNO
b2RlTWV0aG9kIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgTm9kZSIpKTsKICAgICAgICAgdGFpbC5h
cHBlbmQodG9Ob2RlKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KGkpKSk7CiAgICAgfQogICAgIGlt
cGwudmFyaWFkaWNOb2RlTWV0aG9kKGhlYWQsIHRhaWwpOwpAQCAtNDA1NCw3ICs0MDU0LDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkFu
eShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhp
c1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rl
c3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCi0gICAg
ICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIkNhbiBvbmx5IGNhbGwgSlNUZXN0T2JqLmFu
eSBvbiBpbnN0YW5jZXMgb2YgSlNUZXN0T2JqIikpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5I
RVJJVFMoY2FzdGVkVGhpcywgSlNUZXN0T2JqOjppbmZvKCkpOwogICAgIFRlc3RPYmomIGltcGwg
PSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2UuY3BwCmluZGV4IGQyZjg4Yjg2YjI3Y2UxNjRiMWE2NWI1YWI0ZGRlMTViZjc5NTM1NzIuLjI4
ZDkzZjEzNTBhNWZkNDU0ZjY1ZWFjZmM2OTI1YTc0MDliNmY4NzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCkBAIC0xMzgs
NyArMTM4LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50
ZXJmYWNlVmFsdWUoRXhlY1N0YXRlKiBleGVjLCBKU09iamUKICAgICAgICAgICAgIHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNz
YWdlTGV2ZWw6OkVycm9yLCBTdHJpbmcoIkRlcHJlY2F0ZWQgYXR0ZW1wdCB0byBhY2Nlc3MgcHJv
cGVydHkgJ3ZhbHVlJyBvbiBhIG5vbi1UZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
IG9iamVjdC4iKSk7CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMp
OworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIlRo
ZSBUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLnZhbHVlIGdldHRlciBjYW4gb25s
eSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiBUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlIikpOwogICAgIH0KICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTE1
Nyw3ICsxNTcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2VSZWFkb25seVZhbHVlKEV4ZWNTdGF0ZSogZXhlYwogICAgICAgICAgICAgc2NyaXB0
RXhlY3V0aW9uQ29udGV4dC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1l
c3NhZ2VMZXZlbDo6RXJyb3IsIFN0cmluZygiRGVwcmVjYXRlZCBhdHRlbXB0IHRvIGFjY2VzcyBw
cm9wZXJ0eSAncmVhZG9ubHlWYWx1ZScgb24gYSBub24tVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZSBvYmplY3QuIikpOwogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVF
cnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlM
aXRlcmFsKCJUaGUgVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5yZWFkb25seVZh
bHVlIGdldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiBUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlIikpOwogICAgIH0KICAgICBVTlVTRURfUEFSQU0oZXhlYyk7
CiAgICAgVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSYgaW1wbCA9IGNhc3RlZFRo
aXMtPmltcGwoKTsKQEAgLTE3Niw3ICsxNzYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRWYWx1ZShFeGVjU3RhdGUqIGV4ZWMsCiAg
ICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5hZGRDb25zb2xlTWVzc2FnZShNZXNz
YWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgU3RyaW5nKCJEZXByZWNhdGVkIGF0
dGVtcHQgdG8gYWNjZXNzIHByb3BlcnR5ICdjYWNoZWRWYWx1ZScgb24gYSBub24tVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSBvYmplY3QuIikpOwogICAgICAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICAgICAgfQotICAgICAgICByZXR1
cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJy
b3IoZXhlYywgQVNDSUlMaXRlcmFsKCJUaGUgVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZS5jYWNoZWRWYWx1ZSBnZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2Yg
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSIpKTsKICAgICB9CiAgICAgVU5VU0VE
X1BBUkFNKGV4ZWMpOwogICAgIGlmIChKU1ZhbHVlIGNhY2hlZFZhbHVlID0gY2FzdGVkVGhpcy0+
bV9jYWNoZWRWYWx1ZS5nZXQoKSkKQEAgLTE5OCw3ICsxOTgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQb3J0cyhFeGVjU3RhdGUqIGV4ZWMs
IEpTT2JqZQogICAgICAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+YWRkQ29uc29sZU1l
c3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIFN0cmluZygiRGVw
cmVjYXRlZCBhdHRlbXB0IHRvIGFjY2VzcyBwcm9wZXJ0eSAncG9ydHMnIG9uIGEgbm9uLVRlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2Ugb2JqZWN0LiIpKTsKICAgICAgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgIH0KLSAgICAgICAg
cmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlw
ZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiVGhlIFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2UucG9ydHMgZ2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mIFRl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UiKSk7CiAgICAgfQogICAgIFVOVVNFRF9Q
QVJBTShleGVjKTsKICAgICBUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlJiBpbXBs
ID0gY2FzdGVkVGhpcy0+aW1wbCgpOwpAQCAtMjE3LDcgKzIxNyw3IEBAIEVuY29kZWRKU1ZhbHVl
IGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNhY2hlZFJlYWRvbmx5VmFsdWUo
RXhlY1N0YXRlCiAgICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5hZGRDb25zb2xl
TWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgU3RyaW5nKCJE
ZXByZWNhdGVkIGF0dGVtcHQgdG8gYWNjZXNzIHByb3BlcnR5ICdjYWNoZWRSZWFkb25seVZhbHVl
JyBvbiBhIG5vbi1UZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlIG9iamVjdC4iKSk7
CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAg
ICAgICB9Ci0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIlRoZSBUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNhY2hlZFJlYWRvbmx5VmFsdWUgZ2V0dGVyIGNhbiBv
bmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mIFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2UiKSk7CiAgICAgfQogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBpZiAoSlNWYWx1
ZSBjYWNoZWRWYWx1ZSA9IGNhc3RlZFRoaXMtPm1fY2FjaGVkUmVhZG9ubHlWYWx1ZS5nZXQoKSkK
QEAgLTI0NSw3ICsyNDUsNyBAQCB2b2lkIHNldEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZVZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIC8qCiAgICAgVU5VU0VEX1BB
UkFNKGV4ZWMpOwogICAgIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSogY2Fz
dGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2Fz
dGVkVGhpcykpIHsKLSAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgdGhy
b3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIlRoZSBUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlLnZhbHVlIHNldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNl
cyBvZiBUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlIikpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogICAgIFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UmIGltcGwg
PSBjYXN0ZWRUaGlzLT5pbXBsKCk7CkBAIC0yNjIsNyArMjYyLDcgQEAgdm9pZCBzZXRKU1Rlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRWYWx1ZShFeGVjU3RhdGUqIGV4ZWMs
IEpTT2JqZWMKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0U2VyaWFsaXplZFNj
cmlwdFZhbHVlSW50ZXJmYWNlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7
CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewotICAgICAgICB0aHJvd1ZNVHlwZUVy
cm9yKGV4ZWMpOworICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgi
VGhlIFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY2FjaGVkVmFsdWUgc2V0dGVy
IGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mIFRlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2UiKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBl
ZGVmcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
VHlwZWRlZnMuY3BwCmluZGV4IDI5MmIzYWY2NzQ5YWMxMDA0MzkwMDk4YmQ2M2FlYjI3YjlkMWJj
NWEuLjAyMTMwZWE2NWJmMTY0NTUwZWRiZWNlMGE1NGFlNDE1NzQwZTQ3NTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5
cGVkZWZzLmNwcApAQCAtNzAsNyArNzAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IEpTVGVzdFR5cGVkZWZzQ29uc3RydWN0b3I6OmNvbnN0cnVjdEpTVGVzdFR5cGVkZWZzKAogICAg
IGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgaWYgKCFleGVjLT5hcmd1bWVudCgxKS5p
c0Z1bmN0aW9uKCkpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAg
ICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIkFyZ3VtZW50
IDIgKCd0ZXN0Q2FsbGJhY2snKSB0byBUZXN0VHlwZWRlZnMuaW1wbC5jb25zdHJ1Y3RvckNhbGxi
YWNrIG11c3QgYmUgYSBmdW5jdGlvbiIpKTsKICAgICBSZWZQdHI8VGVzdENhbGxiYWNrPiB0ZXN0
Q2FsbGJhY2sgPSBKU1Rlc3RDYWxsYmFjazo6Y3JlYXRlKGFzT2JqZWN0KGV4ZWMtPnVuY2hlY2tl
ZEFyZ3VtZW50KDEpKSwgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCkpOwogICAgIFJlZlB0cjxU
ZXN0VHlwZWRlZnM+IG9iamVjdCA9IFRlc3RUeXBlZGVmczo6Y3JlYXRlKGhlbGxvLCB0ZXN0Q2Fs
bGJhY2spOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNPYmplY3QodG9KUyhleGVjLCBj
YXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgb2JqZWN0LmdldCgpKSkpOwpAQCAtMTg3LDcgKzE4
Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzVW5zaWduZWRMb25nTG9uZ0F0dHIo
RXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvCiAgICAgICAgICAgICBzY3JpcHRFeGVjdXRp
b25Db250ZXh0LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxl
dmVsOjpFcnJvciwgU3RyaW5nKCJEZXByZWNhdGVkIGF0dGVtcHQgdG8gYWNjZXNzIHByb3BlcnR5
ICd1bnNpZ25lZExvbmdMb25nQXR0cicgb24gYSBub24tVGVzdFR5cGVkZWZzIG9iamVjdC4iKSk7
CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAg
ICAgICB9Ci0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIlRoZSBUZXN0VHlwZWRl
ZnMudW5zaWduZWRMb25nTG9uZ0F0dHIgZ2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFu
Y2VzIG9mIFRlc3RUeXBlZGVmcyIpKTsKICAgICB9CiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwog
ICAgIFRlc3RUeXBlZGVmcyYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTIwNiw3ICsy
MDYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0ltbXV0YWJsZVNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIEpTTwogICAgICAgICAgICAgc2NyaXB0RXhlY3V0
aW9uQ29udGV4dC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VM
ZXZlbDo6RXJyb3IsIFN0cmluZygiRGVwcmVjYXRlZCBhdHRlbXB0IHRvIGFjY2VzcyBwcm9wZXJ0
eSAnaW1tdXRhYmxlU2VyaWFsaXplZFNjcmlwdFZhbHVlJyBvbiBhIG5vbi1UZXN0VHlwZWRlZnMg
b2JqZWN0LiIpKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7
CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiVGhl
IFRlc3RUeXBlZGVmcy5pbW11dGFibGVTZXJpYWxpemVkU2NyaXB0VmFsdWUgZ2V0dGVyIGNhbiBv
bmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mIFRlc3RUeXBlZGVmcyIpKTsKICAgICB9CiAgICAg
VU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIFRlc3RUeXBlZGVmcyYgaW1wbCA9IGNhc3RlZFRoaXMt
PmltcGwoKTsKQEAgLTIyNSw3ICsyMjUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVm
c0NvbnN0cnVjdG9yVGVzdFN1Yk9iaihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbAogICAg
ICAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIFN0cmluZygiRGVwcmVjYXRlZCBhdHRl
bXB0IHRvIGFjY2VzcyBwcm9wZXJ0eSAnVGVzdFN1Yk9iaicgb24gYSBub24tVGVzdFR5cGVkZWZz
IG9iamVjdC4iKSk7CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMp
OworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIlRo
ZSBUZXN0VHlwZWRlZnMuVGVzdFN1Yk9iaiBnZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0
YW5jZXMgb2YgVGVzdFR5cGVkZWZzIikpOwogICAgIH0KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKEpTVGVzdFN1Yk9iajo6Z2V0Q29uc3RydWN0b3IoZXhlYy0+dm0oKSwgY2FzdGVkVGhpcy0+
Z2xvYmFsT2JqZWN0KCkpKTsKIH0KQEAgLTI0MSw3ICsyNDEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RUeXBlZGVmc0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNP
YmplY3QqCiAgICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5hZGRDb25zb2xlTWVz
c2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgU3RyaW5nKCJEZXBy
ZWNhdGVkIGF0dGVtcHQgdG8gYWNjZXNzIHByb3BlcnR5ICdhdHRyV2l0aEdldHRlckV4Y2VwdGlv
bicgb24gYSBub24tVGVzdFR5cGVkZWZzIG9iamVjdC4iKSk7CiAgICAgICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJv
cihleGVjLCBBU0NJSUxpdGVyYWwoIlRoZSBUZXN0VHlwZWRlZnMuYXR0cldpdGhHZXR0ZXJFeGNl
cHRpb24gZ2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mIFRlc3RUeXBlZGVm
cyIpKTsKICAgICB9CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgVGVzdFR5cGVkZWZz
JiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwpAQCAtMjYxLDcgKzI2MSw3IEBAIEVuY29kZWRK
U1ZhbHVlIGpzVGVzdFR5cGVkZWZzQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24oRXhlY1N0YXRlKiBl
eGVjLCBKU09iamVjdCoKICAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZENv
bnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBTdHJp
bmcoIkRlcHJlY2F0ZWQgYXR0ZW1wdCB0byBhY2Nlc3MgcHJvcGVydHkgJ2F0dHJXaXRoU2V0dGVy
RXhjZXB0aW9uJyBvbiBhIG5vbi1UZXN0VHlwZWRlZnMgb2JqZWN0LiIpKTsKICAgICAgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgIH0KLSAgICAg
ICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiVGhlIFRlc3RUeXBlZGVmcy5hdHRyV2l0aFNl
dHRlckV4Y2VwdGlvbiBnZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgVGVz
dFR5cGVkZWZzIikpOwogICAgIH0KICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgVGVzdFR5
cGVkZWZzJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwpAQCAtMjgwLDcgKzI4MCw3IEBAIEVu
Y29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzU3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24o
RXhlY1N0YXRlKiBleGVjLCBKU09iCiAgICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0
LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJv
ciwgU3RyaW5nKCJEZXByZWNhdGVkIGF0dGVtcHQgdG8gYWNjZXNzIHByb3BlcnR5ICdzdHJpbmdB
dHRyV2l0aEdldHRlckV4Y2VwdGlvbicgb24gYSBub24tVGVzdFR5cGVkZWZzIG9iamVjdC4iKSk7
CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAg
ICAgICB9Ci0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIlRoZSBUZXN0VHlwZWRl
ZnMuc3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24gZ2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQg
b24gaW5zdGFuY2VzIG9mIFRlc3RUeXBlZGVmcyIpKTsKICAgICB9CiAgICAgRXhjZXB0aW9uQ29k
ZSBlYyA9IDA7CiAgICAgVGVzdFR5cGVkZWZzJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwpA
QCAtMzAwLDcgKzMwMCw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzU3RyaW5nQXR0
cldpdGhTZXR0ZXJFeGNlcHRpb24oRXhlY1N0YXRlKiBleGVjLCBKU09iCiAgICAgICAgICAgICBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpK
UywgTWVzc2FnZUxldmVsOjpFcnJvciwgU3RyaW5nKCJEZXByZWNhdGVkIGF0dGVtcHQgdG8gYWNj
ZXNzIHByb3BlcnR5ICdzdHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbicgb24gYSBub24tVGVz
dFR5cGVkZWZzIG9iamVjdC4iKSk7CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVy
cm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxp
dGVyYWwoIlRoZSBUZXN0VHlwZWRlZnMuc3RyaW5nQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24gZ2V0
dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mIFRlc3RUeXBlZGVmcyIpKTsKICAg
ICB9CiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIFRlc3RUeXBlZGVmcyYgaW1wbCA9IGNh
c3RlZFRoaXMtPmltcGwoKTsKQEAgLTMyNSw3ICszMjUsNyBAQCB2b2lkIHNldEpTVGVzdFR5cGVk
ZWZzVW5zaWduZWRMb25nTG9uZ0F0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogLyogYmFz
ZU9iagogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBKU1Rlc3RUeXBlZGVmcyogY2FzdGVk
VGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0VHlwZWRlZnMqPihKU1ZhbHVlOjpkZWNvZGUodGhp
c1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewotICAgICAgICB0aHJv
d1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJ
TGl0ZXJhbCgiVGhlIFRlc3RUeXBlZGVmcy51bnNpZ25lZExvbmdMb25nQXR0ciBzZXR0ZXIgY2Fu
IG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgVGVzdFR5cGVkZWZzIikpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogICAgIFRlc3RUeXBlZGVmcyYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwo
KTsKQEAgLTM0Miw3ICszNDIsNyBAQCB2b2lkIHNldEpTVGVzdFR5cGVkZWZzSW1tdXRhYmxlU2Vy
aWFsaXplZFNjcmlwdFZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqCiAgICAgVU5VU0VE
X1BBUkFNKGV4ZWMpOwogICAgIEpTVGVzdFR5cGVkZWZzKiBjYXN0ZWRUaGlzID0ganNEeW5hbWlj
Q2FzdDxKU1Rlc3RUeXBlZGVmcyo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBp
ZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7Ci0gICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhl
Yyk7CisgICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJUaGUgVGVz
dFR5cGVkZWZzLmltbXV0YWJsZVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBzZXR0ZXIgY2FuIG9ubHkg
YmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgVGVzdFR5cGVkZWZzIikpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogICAgIFRlc3RUeXBlZGVmcyYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAg
LTM1OSw3ICszNTksNyBAQCB2b2lkIHNldEpTVGVzdFR5cGVkZWZzQXR0cldpdGhHZXR0ZXJFeGNl
cHRpb24oRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogLyogYmFzZQogICAgIFVOVVNFRF9QQVJB
TShleGVjKTsKICAgICBKU1Rlc3RUeXBlZGVmcyogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8
SlNUZXN0VHlwZWRlZnMqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVO
TElLRUxZKCFjYXN0ZWRUaGlzKSkgewotICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwor
ICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiVGhlIFRlc3RUeXBl
ZGVmcy5hdHRyV2l0aEdldHRlckV4Y2VwdGlvbiBzZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBp
bnN0YW5jZXMgb2YgVGVzdFR5cGVkZWZzIikpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAg
IFRlc3RUeXBlZGVmcyYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTM3Niw3ICszNzYs
NyBAQCB2b2lkIHNldEpTVGVzdFR5cGVkZWZzQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24oRXhlY1N0
YXRlKiBleGVjLCBKU09iamVjdCogLyogYmFzZQogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAg
ICBKU1Rlc3RUeXBlZGVmcyogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0VHlwZWRl
ZnMqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0
ZWRUaGlzKSkgewotICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICB0aHJv
d1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiVGhlIFRlc3RUeXBlZGVmcy5hdHRyV2l0
aFNldHRlckV4Y2VwdGlvbiBzZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2Yg
VGVzdFR5cGVkZWZzIikpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIFRlc3RUeXBlZGVm
cyYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTM5NSw3ICszOTUsNyBAQCB2b2lkIHNl
dEpTVGVzdFR5cGVkZWZzU3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oRXhlY1N0YXRlKiBl
eGVjLCBKU09iamVjdCogLwogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBKU1Rlc3RUeXBl
ZGVmcyogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0VHlwZWRlZnMqPihKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewot
ICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICB0aHJvd1ZNVHlwZUVycm9y
KGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiVGhlIFRlc3RUeXBlZGVmcy5zdHJpbmdBdHRyV2l0aEdldHRl
ckV4Y2VwdGlvbiBzZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgVGVzdFR5
cGVkZWZzIikpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIFRlc3RUeXBlZGVmcyYgaW1w
bCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTQxMiw3ICs0MTIsNyBAQCB2b2lkIHNldEpTVGVz
dFR5cGVkZWZzU3RyaW5nQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24oRXhlY1N0YXRlKiBleGVjLCBK
U09iamVjdCogLwogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBKU1Rlc3RUeXBlZGVmcyog
Y2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0VHlwZWRlZnMqPihKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewotICAgICAg
ICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMs
IEFTQ0lJTGl0ZXJhbCgiVGhlIFRlc3RUeXBlZGVmcy5zdHJpbmdBdHRyV2l0aFNldHRlckV4Y2Vw
dGlvbiBzZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgVGVzdFR5cGVkZWZz
IikpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIFRlc3RUeXBlZGVmcyYgaW1wbCA9IGNh
c3RlZFRoaXMtPmltcGwoKTsKQEAgLTQzNSw3ICs0MzUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25GdW5jKEV4ZWNTdGF0ZSog
ZXhlYwogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwogICAg
IEpTVGVzdFR5cGVkZWZzKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RUeXBlZGVm
cyo+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKLSAgICAgICAg
cmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlw
ZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiQ2FuIG9ubHkgY2FsbCBKU1Rlc3RUeXBlZGVmcy5m
dW5jIG9uIGluc3RhbmNlcyBvZiBKU1Rlc3RUeXBlZGVmcyIpKTsKICAgICBBU1NFUlRfR0NfT0JK
RUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTVGVzdFR5cGVkZWZzOjppbmZvKCkpOwogICAgIFRl
c3RUeXBlZGVmcyYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKIApAQCAtNDU3LDcgKzQ1Nyw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0VHlwZWRlZnNQcm90b3R5cGVG
dW5jdGlvblNldFNoYWRvdyhFeGVjU3RhdGUqCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVj
LT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0VHlwZWRlZnMqIGNhc3RlZFRoaXMgPSBqc0R5
bmFtaWNDYXN0PEpTVGVzdFR5cGVkZWZzKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFko
IWNhc3RlZFRoaXMpKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAg
ICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJDYW4gb25s
eSBjYWxsIEpTVGVzdFR5cGVkZWZzLnNldFNoYWRvdyBvbiBpbnN0YW5jZXMgb2YgSlNUZXN0VHlw
ZWRlZnMiKSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rl
c3RUeXBlZGVmczo6aW5mbygpKTsKICAgICBUZXN0VHlwZWRlZnMmIGltcGwgPSBjYXN0ZWRUaGlz
LT5pbXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDMpCkBAIC00OTgsNyAr
NDk4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3Rv
dHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFNlcXVlbmNlQXIKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9
IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKICAgICBKU1Rlc3RUeXBlZGVmcyogY2FzdGVkVGhpcyA9
IGpzRHluYW1pY0Nhc3Q8SlNUZXN0VHlwZWRlZnMqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJ
S0VMWSghY2FzdGVkVGhpcykpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMp
OworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIkNh
biBvbmx5IGNhbGwgSlNUZXN0VHlwZWRlZnMubWV0aG9kV2l0aFNlcXVlbmNlQXJnIG9uIGluc3Rh
bmNlcyBvZiBKU1Rlc3RUeXBlZGVmcyIpKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRT
KGNhc3RlZFRoaXMsIEpTVGVzdFR5cGVkZWZzOjppbmZvKCkpOwogICAgIFRlc3RUeXBlZGVmcyYg
aW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgp
IDwgMSkKQEAgLTUxNiw3ICs1MTYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25OdWxsYWJsZUFycmF5QXJnKEV4ZQogICAgIEpT
VmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdFR5cGVk
ZWZzKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RUeXBlZGVmcyo+KHRoaXNWYWx1
ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKLSAgICAgICAgcmV0dXJuIHRocm93
Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMs
IEFTQ0lJTGl0ZXJhbCgiQ2FuIG9ubHkgY2FsbCBKU1Rlc3RUeXBlZGVmcy5udWxsYWJsZUFycmF5
QXJnIG9uIGluc3RhbmNlcyBvZiBKU1Rlc3RUeXBlZGVmcyIpKTsKICAgICBBU1NFUlRfR0NfT0JK
RUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTVGVzdFR5cGVkZWZzOjppbmZvKCkpOwogICAgIFRl
c3RUeXBlZGVmcyYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJn
dW1lbnRDb3VudCgpIDwgMSkKQEAgLTUzMyw3ICs1MzMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25GdW5jV2l0aENsYW1wKEV4
ZWNTdAogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwogICAg
IEpTVGVzdFR5cGVkZWZzKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RUeXBlZGVm
cyo+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKLSAgICAgICAg
cmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlw
ZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiQ2FuIG9ubHkgY2FsbCBKU1Rlc3RUeXBlZGVmcy5m
dW5jV2l0aENsYW1wIG9uIGluc3RhbmNlcyBvZiBKU1Rlc3RUeXBlZGVmcyIpKTsKICAgICBBU1NF
UlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTVGVzdFR5cGVkZWZzOjppbmZvKCkp
OwogICAgIFRlc3RUeXBlZGVmcyYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAo
ZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKQEAgLTU3MCw3ICs1NzAsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25JbW11dGFi
bGVQb2ludEZ1bmN0aQogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1
ZSgpOwogICAgIEpTVGVzdFR5cGVkZWZzKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rl
c3RUeXBlZGVmcyo+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkK
LSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0
aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiQ2FuIG9ubHkgY2FsbCBKU1Rlc3RU
eXBlZGVmcy5pbW11dGFibGVQb2ludEZ1bmN0aW9uIG9uIGluc3RhbmNlcyBvZiBKU1Rlc3RUeXBl
ZGVmcyIpKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTVGVz
dFR5cGVkZWZzOjppbmZvKCkpOwogICAgIFRlc3RUeXBlZGVmcyYgaW1wbCA9IGNhc3RlZFRoaXMt
PmltcGwoKTsKIApAQCAtNTgzLDcgKzU4Myw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblN0cmluZ0FycmF5RnVuY3Rpb24oCiAg
ICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0
VHlwZWRlZnMqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFR5cGVkZWZzKj4odGhp
c1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQotICAgICAgICByZXR1cm4g
dGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Io
ZXhlYywgQVNDSUlMaXRlcmFsKCJDYW4gb25seSBjYWxsIEpTVGVzdFR5cGVkZWZzLnN0cmluZ0Fy
cmF5RnVuY3Rpb24gb24gaW5zdGFuY2VzIG9mIEpTVGVzdFR5cGVkZWZzIikpOwogICAgIEFTU0VS
VF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNUZXN0VHlwZWRlZnM6OmluZm8oKSk7
CiAgICAgVGVzdFR5cGVkZWZzJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIGlmIChl
eGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQpAQCAtNjAzLDcgKzYwMyw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblN0cmluZ0Fy
cmF5RnVuY3Rpb24yCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVl
KCk7CiAgICAgSlNUZXN0VHlwZWRlZnMqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVz
dFR5cGVkZWZzKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQot
ICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJDYW4gb25seSBjYWxsIEpTVGVzdFR5
cGVkZWZzLnN0cmluZ0FycmF5RnVuY3Rpb24yIG9uIGluc3RhbmNlcyBvZiBKU1Rlc3RUeXBlZGVm
cyIpKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTVGVzdFR5
cGVkZWZzOjppbmZvKCkpOwogICAgIFRlc3RUeXBlZGVmcyYgaW1wbCA9IGNhc3RlZFRoaXMtPmlt
cGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKQEAgLTYyMyw3ICs2MjMs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBl
RnVuY3Rpb25DYWxsV2l0aFNlcXVlbmNlVGhhdAogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhl
Yy0+aG9zdFRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdFR5cGVkZWZzKiBjYXN0ZWRUaGlzID0ganNE
eW5hbWljQ2FzdDxKU1Rlc3RUeXBlZGVmcyo+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZ
KCFjYXN0ZWRUaGlzKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7Cisg
ICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiQ2FuIG9u
bHkgY2FsbCBKU1Rlc3RUeXBlZGVmcy5jYWxsV2l0aFNlcXVlbmNlVGhhdFJlcXVpcmVzSW5jbHVk
ZSBvbiBpbnN0YW5jZXMgb2YgSlNUZXN0VHlwZWRlZnMiKSk7CiAgICAgQVNTRVJUX0dDX09CSkVD
VF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RUeXBlZGVmczo6aW5mbygpKTsKICAgICBUZXN0
VHlwZWRlZnMmIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFyZ3Vt
ZW50Q291bnQoKSA8IDEpCkBAIC02NDEsNyArNjQxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEV4Y2VwdGlv
bigKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKICAgICBK
U1Rlc3RUeXBlZGVmcyogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0VHlwZWRlZnMq
Pih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCi0gICAgICAgIHJl
dHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVF
cnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIkNhbiBvbmx5IGNhbGwgSlNUZXN0VHlwZWRlZnMubWV0
aG9kV2l0aEV4Y2VwdGlvbiBvbiBpbnN0YW5jZXMgb2YgSlNUZXN0VHlwZWRlZnMiKSk7CiAgICAg
QVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RUeXBlZGVmczo6aW5m
bygpKTsKICAgICBUZXN0VHlwZWRlZnMmIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAg
RXhjZXB0aW9uQ29kZSBlYyA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmNwcAppbmRleCAxM2MxOTE0MjdiNDc5NzVk
ZGI0MDcxZDI0OTkxZjVmMTIzZTQzNTEzLi40MGQzODY1ODE5OGMzYjk3OTZlZjViYjFiMjY2NmRk
MzJlMzBkNjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNhdHRyaWJ1dGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5jcHAKQEAgLTEyOSw3ICsxMjksNyBAQCBFbmNvZGVkSlNW
YWx1ZSBqc2F0dHJpYnV0ZVJlYWRvbmx5KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNsb3RC
YXNlLCBFbmNvZGVkSgogICAgICAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+YWRkQ29u
c29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIFN0cmlu
ZygiRGVwcmVjYXRlZCBhdHRlbXB0IHRvIGFjY2VzcyBwcm9wZXJ0eSAncmVhZG9ubHknIG9uIGEg
bm9uLWF0dHJpYnV0ZSBvYmplY3QuIikpOwogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5
cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgQVND
SUlMaXRlcmFsKCJUaGUgYXR0cmlidXRlLnJlYWRvbmx5IGdldHRlciBjYW4gb25seSBiZSB1c2Vk
IG9uIGluc3RhbmNlcyBvZiBhdHRyaWJ1dGUiKSk7CiAgICAgfQogICAgIFVOVVNFRF9QQVJBTShl
eGVjKTsKICAgICBhdHRyaWJ1dGUmIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
MThjYzZiNTBjMGEwYzQ4MWFiYTk5MDI4OGI2YjVlMTAwMWNhY2Y4OC4uYmE0MjllMGE3MjdjNzc3
ZDk4YWMzMzhhNTM2YzgwMmQ5ZjBlMWU0MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE0LTAz
LTExICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wcm92ZSBk
b20gZXJyb3IgbWVzc2FnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEzMDEwMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFVwZGF0ZSB0ZXN0IHJlc3VsdHMgZm9yIG5ldyB0ZXh0LgorCisgICAgICAgICog
ZmFzdC9jYW52YXMvd2ViZ2wvYmFkLWFyZ3VtZW50cy10ZXN0LWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9udWxsLW9iamVjdC1iZWhhdmlvdXItZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGZhc3QvY2FudmFzL3dpbmRpbmctZW51bWVyYXRpb24tZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGZhc3Qvd29ya2Vycy9zdG9yYWdlL29wZW4tZGF0YWJhc2UtaW5wdXRzLXN5
bmMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGpzL2RvbS9kb20tYXMtcHJvdG90eXBlLWFzc2ln
bm1lbnQtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBqcy9kb20vZG9tLWF0dHJp
YnV0ZXMtb24tbWlzbWF0Y2gtdHlwZS1leHBlY3RlZC50eHQ6CisgICAgICAgICoganMvZG9tL3Rv
U3RyaW5nLWFuZC12YWx1ZU9mLW92ZXJyaWRlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdmcv
ZG9tL1NWR0xlbmd0aExpc3QtYmFzaWNzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdmcvZG9t
L1NWR01hdHJpeC1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3ZnL2RvbS9TVkdOdW1iZXJMaXN0
LWJhc2ljcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3ZnL2RvbS9TVkdQb2ludC1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogc3ZnL2RvbS9TVkdQb2ludExpc3QtYmFzaWNzLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBzdmcvZG9tL1NWR1RyYW5zZm9ybS1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogc3ZnL2RvbS9TVkdUcmFuc2Zvcm1MaXN0LWJhc2ljcy1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogc3ZnL2RvbS9TVkdUcmFuc2Zvcm1MaXN0LWV4cGVjdGVkLnR4dDoKKwogMjAxNC0wMy0xMSAg
TWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KIAogICAgICAgICBbQ1NT
IEdyaWQgTGF5b3V0XSBBZGQgbGF5b3V0IHRlc3QgZm9yIGFub255bW91cyBncmlkIGl0ZW1zCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9iYWQtYXJndW1lbnRzLXRl
c3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvYmFkLWFyZ3Vt
ZW50cy10ZXN0LWV4cGVjdGVkLnR4dAppbmRleCA3NDBkM2Y4OWM3N2FiNzI3ZmMxYjAxZTg4N2Q5
NmUyMGU4MWUzY2M1Li41Y2U0ZTMzMmIyOTY3YWQ3ZDdiNmE1NTAzYTkzMDA4ODA3ZjBhN2VjIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9iYWQtYXJndW1lbnRzLXRl
c3QtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2JhZC1h
cmd1bWVudHMtdGVzdC1leHBlY3RlZC50eHQKQEAgLTUsMjEgKzUsMjEgQEAgT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUKIFBBU1MgUHJvZ3JhbSBDb21waWxlZAogUEFTUyBTaGFkZXIgQ29tcGlsZWQK
IFBBU1MgZ2V0VW5pZm9ybUxvY2F0aW9uIHN1Y2NlZWRlZAotUEFTUyBjb250ZXh0LmNvbXBpbGVT
aGFkZXIoYXJndW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1Q
QVNTIGNvbnRleHQubGlua1Byb2dyYW0oYXJndW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IFR5cGUgZXJyb3IuCi1QQVNTIGNvbnRleHQuYXR0YWNoU2hhZGVyKHByb2dyYW0sIGFyZ3Vt
ZW50KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBjb250ZXh0
LmF0dGFjaFNoYWRlcihhcmd1bWVudCwgc2hhZGVyKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9y
OiBUeXBlIGVycm9yLgotUEFTUyBjb250ZXh0LmRldGFjaFNoYWRlcihwcm9ncmFtLCBhcmd1bWVu
dCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgY29udGV4dC5k
ZXRhY2hTaGFkZXIoYXJndW1lbnQsIHNoYWRlcikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjog
VHlwZSBlcnJvci4KLVBBU1MgY29udGV4dC51c2VQcm9ncmFtKGFyZ3VtZW50KSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBjb250ZXh0LnNoYWRlclNvdXJjZShh
cmd1bWVudCwgJ2ZvbycpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1Q
QVNTIGNvbnRleHQuYmluZEF0dHJpYkxvY2F0aW9uKGFyZ3VtZW50LCAwLCAnZm9vJykgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgY29udGV4dC5iaW5kQnVmZmVy
KGNvbnRleHQuQVJSQVlfQlVGRkVSLCBhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogVHlwZSBlcnJvci4KLVBBU1MgY29udGV4dC5iaW5kRnJhbWVidWZmZXIoY29udGV4dC5GUkFN
RUJVRkZFUiwgYXJndW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3Iu
Ci1QQVNTIGNvbnRleHQuYmluZFJlbmRlcmJ1ZmZlcihjb250ZXh0LlJFTkRFUkJVRkZFUiwgYXJn
dW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIGNvbnRl
eHQuYmluZFRleHR1cmUoY29udGV4dC5URVhUVVJFXzJELCBhcmd1bWVudCkgdGhyZXcgZXhjZXB0
aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgY29udGV4dC5mcmFtZWJ1ZmZlclJlbmRl
cmJ1ZmZlcihjb250ZXh0LkZSQU1FQlVGRkVSLCBjb250ZXh0LkRFUFRIX0FUVEFDSE1FTlQsIGNv
bnRleHQuUkVOREVSQlVGRkVSLCBhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjog
VHlwZSBlcnJvci4KLVBBU1MgY29udGV4dC5mcmFtZWJ1ZmZlclRleHR1cmUyRChjb250ZXh0LkZS
QU1FQlVGRkVSLCBjb250ZXh0LkNPTE9SX0FUVEFDSE1FTlQwLCBjb250ZXh0LlRFWFRVUkVfMkQs
IGFyZ3VtZW50LCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFT
UyBjb250ZXh0LmNvbXBpbGVTaGFkZXIoYXJndW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IEFyZ3VtZW50IDEgKCdzaGFkZXInKSB0byBpbXBsLmNvbXBpbGVTaGFkZXIgbXVzdCBiZSBh
biBpbnN0YW5jZSBvZiBXZWJHTFNoYWRlci4KK1BBU1MgY29udGV4dC5saW5rUHJvZ3JhbShhcmd1
bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ3Byb2dyYW0nKSB0
byBpbXBsLmxpbmtQcm9ncmFtIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgV2ViR0xQcm9ncmFtLgor
UEFTUyBjb250ZXh0LmF0dGFjaFNoYWRlcihwcm9ncmFtLCBhcmd1bWVudCkgdGhyZXcgZXhjZXB0
aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMiAoJ3NoYWRlcicpIHRvIGltcGwuYXR0YWNoU2hhZGVy
IG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgV2ViR0xTaGFkZXIuCitQQVNTIGNvbnRleHQuYXR0YWNo
U2hhZGVyKGFyZ3VtZW50LCBzaGFkZXIpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3Vt
ZW50IDEgKCdwcm9ncmFtJykgdG8gaW1wbC5hdHRhY2hTaGFkZXIgbXVzdCBiZSBhbiBpbnN0YW5j
ZSBvZiBXZWJHTFByb2dyYW0uCitQQVNTIGNvbnRleHQuZGV0YWNoU2hhZGVyKHByb2dyYW0sIGFy
Z3VtZW50KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAyICgnc2hhZGVyJykg
dG8gaW1wbC5kZXRhY2hTaGFkZXIgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBXZWJHTFNoYWRlci4K
K1BBU1MgY29udGV4dC5kZXRhY2hTaGFkZXIoYXJndW1lbnQsIHNoYWRlcikgdGhyZXcgZXhjZXB0
aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ3Byb2dyYW0nKSB0byBpbXBsLmRldGFjaFNoYWRl
ciBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFdlYkdMUHJvZ3JhbS4KK1BBU1MgY29udGV4dC51c2VQ
cm9ncmFtKGFyZ3VtZW50KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgn
cHJvZ3JhbScpIHRvIGltcGwudXNlUHJvZ3JhbSBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFdlYkdM
UHJvZ3JhbS4KK1BBU1MgY29udGV4dC5zaGFkZXJTb3VyY2UoYXJndW1lbnQsICdmb28nKSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnc2hhZGVyJykgdG8gaW1wbC5zaGFk
ZXJTb3VyY2UgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBXZWJHTFNoYWRlci4KK1BBU1MgY29udGV4
dC5iaW5kQXR0cmliTG9jYXRpb24oYXJndW1lbnQsIDAsICdmb28nKSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBBcmd1bWVudCAxICgncHJvZ3JhbScpIHRvIGltcGwuYmluZEF0dHJpYkxvY2F0
aW9uIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgV2ViR0xQcm9ncmFtLgorUEFTUyBjb250ZXh0LmJp
bmRCdWZmZXIoY29udGV4dC5BUlJBWV9CVUZGRVIsIGFyZ3VtZW50KSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBBcmd1bWVudCAyICgnYnVmZmVyJykgdG8gaW1wbC5iaW5kQnVmZmVyIG11c3Qg
YmUgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIuCitQQVNTIGNvbnRleHQuYmluZEZyYW1lYnVm
ZmVyKGNvbnRleHQuRlJBTUVCVUZGRVIsIGFyZ3VtZW50KSB0aHJldyBleGNlcHRpb24gVHlwZUVy
cm9yOiBBcmd1bWVudCAyICgnZnJhbWVidWZmZXInKSB0byBpbXBsLmJpbmRGcmFtZWJ1ZmZlciBt
dXN0IGJlIGFuIGluc3RhbmNlIG9mIFdlYkdMRnJhbWVidWZmZXIuCitQQVNTIGNvbnRleHQuYmlu
ZFJlbmRlcmJ1ZmZlcihjb250ZXh0LlJFTkRFUkJVRkZFUiwgYXJndW1lbnQpIHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDIgKCdyZW5kZXJidWZmZXInKSB0byBpbXBsLmJpbmRS
ZW5kZXJidWZmZXIgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBXZWJHTFJlbmRlcmJ1ZmZlci4KK1BB
U1MgY29udGV4dC5iaW5kVGV4dHVyZShjb250ZXh0LlRFWFRVUkVfMkQsIGFyZ3VtZW50KSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAyICgndGV4dHVyZScpIHRvIGltcGwuYmlu
ZFRleHR1cmUgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBXZWJHTFRleHR1cmUuCitQQVNTIGNvbnRl
eHQuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoY29udGV4dC5GUkFNRUJVRkZFUiwgY29udGV4dC5E
RVBUSF9BVFRBQ0hNRU5ULCBjb250ZXh0LlJFTkRFUkJVRkZFUiwgYXJndW1lbnQpIHRocmV3IGV4
Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDQgKCdyZW5kZXJidWZmZXInKSB0byBpbXBsLmZy
YW1lYnVmZmVyUmVuZGVyYnVmZmVyIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgV2ViR0xSZW5kZXJi
dWZmZXIuCitQQVNTIGNvbnRleHQuZnJhbWVidWZmZXJUZXh0dXJlMkQoY29udGV4dC5GUkFNRUJV
RkZFUiwgY29udGV4dC5DT0xPUl9BVFRBQ0hNRU5UMCwgY29udGV4dC5URVhUVVJFXzJELCBhcmd1
bWVudCwgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgNCAoJ3RleHR1cmUn
KSB0byBpbXBsLmZyYW1lYnVmZmVyVGV4dHVyZTJEIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgV2Vi
R0xUZXh0dXJlLgogUEFTUyBjb250ZXh0LnVuaWZvcm0yZnYoYXJndW1lbnQsIG5ldyBGbG9hdDMy
QXJyYXkoWzAuMCwgMC4wXSkpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3Iu
CiBQQVNTIGNvbnRleHQudW5pZm9ybTJpdihhcmd1bWVudCwgbmV3IEludDMyQXJyYXkoWzAsIDBd
KSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KIFBBU1MgY29udGV4dC51
bmlmb3JtTWF0cml4MmZ2KGFyZ3VtZW50LCBmYWxzZSwgbmV3IEZsb2F0MzJBcnJheShbMC4wLCAw
LjAsIDAuMCwgMC4wXSkpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCkBA
IC0yNywyNSArMjcsMjUgQEAgUEFTUyBjb250ZXh0LmdldFByb2dyYW1QYXJhbWV0ZXIoYXJndW1l
bnQsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXIKIFBBU1MgY29udGV4dC5n
ZXRTaGFkZXJQYXJhbWV0ZXIoYXJndW1lbnQsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6
IFR5cGUgZXJyb3IuCiBQQVNTIGNvbnRleHQuZ2V0VW5pZm9ybShhcmd1bWVudCwgbG9jKSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgogUEFTUyBjb250ZXh0LmdldFVuaWZv
cm0ocHJvZ3JhbSwgYXJndW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJy
b3IuCi1QQVNTIGNvbnRleHQuZ2V0VW5pZm9ybUxvY2F0aW9uKGFyZ3VtZW50LCAndV9tb2RlbFZp
ZXdQcm9qTWF0cml4JykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBB
U1MgY29udGV4dC5nZXRQcm9ncmFtSW5mb0xvZyhhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgY29udGV4dC5nZXRTaGFkZXJJbmZvTG9nKGFyZ3Vt
ZW50KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBjb250ZXh0
LmdldFNoYWRlclNvdXJjZShhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlw
ZSBlcnJvci4KLVBBU1MgY29udGV4dC5jb21waWxlU2hhZGVyKGFyZ3VtZW50KSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBjb250ZXh0LmxpbmtQcm9ncmFtKGFy
Z3VtZW50KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBjb250
ZXh0LmF0dGFjaFNoYWRlcihwcm9ncmFtLCBhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogVHlwZSBlcnJvci4KLVBBU1MgY29udGV4dC5hdHRhY2hTaGFkZXIoYXJndW1lbnQsIHNo
YWRlcikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgY29udGV4
dC5kZXRhY2hTaGFkZXIocHJvZ3JhbSwgYXJndW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IFR5cGUgZXJyb3IuCi1QQVNTIGNvbnRleHQuZGV0YWNoU2hhZGVyKGFyZ3VtZW50LCBzaGFk
ZXIpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIGNvbnRleHQu
dXNlUHJvZ3JhbShhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJv
ci4KLVBBU1MgY29udGV4dC5zaGFkZXJTb3VyY2UoYXJndW1lbnQsICdmb28nKSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBjb250ZXh0LmJpbmRBdHRyaWJMb2Nh
dGlvbihhcmd1bWVudCwgMCwgJ2ZvbycpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUg
ZXJyb3IuCi1QQVNTIGNvbnRleHQuYmluZEJ1ZmZlcihjb250ZXh0LkFSUkFZX0JVRkZFUiwgYXJn
dW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIGNvbnRl
eHQuYmluZEZyYW1lYnVmZmVyKGNvbnRleHQuRlJBTUVCVUZGRVIsIGFyZ3VtZW50KSB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBjb250ZXh0LmJpbmRSZW5kZXJi
dWZmZXIoY29udGV4dC5SRU5ERVJCVUZGRVIsIGFyZ3VtZW50KSB0aHJldyBleGNlcHRpb24gVHlw
ZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBjb250ZXh0LmJpbmRUZXh0dXJlKGNvbnRleHQuVEVY
VFVSRV8yRCwgYXJndW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3Iu
Ci1QQVNTIGNvbnRleHQuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoY29udGV4dC5GUkFNRUJVRkZF
UiwgY29udGV4dC5ERVBUSF9BVFRBQ0hNRU5ULCBjb250ZXh0LlJFTkRFUkJVRkZFUiwgYXJndW1l
bnQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIGNvbnRleHQu
ZnJhbWVidWZmZXJUZXh0dXJlMkQoY29udGV4dC5GUkFNRUJVRkZFUiwgY29udGV4dC5DT0xPUl9B
VFRBQ0hNRU5UMCwgY29udGV4dC5URVhUVVJFXzJELCBhcmd1bWVudCwgMCkgdGhyZXcgZXhjZXB0
aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgY29udGV4dC5nZXRVbmlmb3JtTG9jYXRp
b24oYXJndW1lbnQsICd1X21vZGVsVmlld1Byb2pNYXRyaXgnKSB0aHJldyBleGNlcHRpb24gVHlw
ZUVycm9yOiBBcmd1bWVudCAxICgncHJvZ3JhbScpIHRvIGltcGwuZ2V0VW5pZm9ybUxvY2F0aW9u
IG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgV2ViR0xQcm9ncmFtLgorUEFTUyBjb250ZXh0LmdldFBy
b2dyYW1JbmZvTG9nKGFyZ3VtZW50KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVu
dCAxICgncHJvZ3JhbScpIHRvIGltcGwuZ2V0UHJvZ3JhbUluZm9Mb2cgbXVzdCBiZSBhbiBpbnN0
YW5jZSBvZiBXZWJHTFByb2dyYW0uCitQQVNTIGNvbnRleHQuZ2V0U2hhZGVySW5mb0xvZyhhcmd1
bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ3NoYWRlcicpIHRv
IGltcGwuZ2V0U2hhZGVySW5mb0xvZyBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFdlYkdMU2hhZGVy
LgorUEFTUyBjb250ZXh0LmdldFNoYWRlclNvdXJjZShhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ3NoYWRlcicpIHRvIGltcGwuZ2V0U2hhZGVyU291cmNl
IG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgV2ViR0xTaGFkZXIuCitQQVNTIGNvbnRleHQuY29tcGls
ZVNoYWRlcihhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAo
J3NoYWRlcicpIHRvIGltcGwuY29tcGlsZVNoYWRlciBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFdl
YkdMU2hhZGVyLgorUEFTUyBjb250ZXh0LmxpbmtQcm9ncmFtKGFyZ3VtZW50KSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgncHJvZ3JhbScpIHRvIGltcGwubGlua1Byb2dy
YW0gbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBXZWJHTFByb2dyYW0uCitQQVNTIGNvbnRleHQuYXR0
YWNoU2hhZGVyKHByb2dyYW0sIGFyZ3VtZW50KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBB
cmd1bWVudCAyICgnc2hhZGVyJykgdG8gaW1wbC5hdHRhY2hTaGFkZXIgbXVzdCBiZSBhbiBpbnN0
YW5jZSBvZiBXZWJHTFNoYWRlci4KK1BBU1MgY29udGV4dC5hdHRhY2hTaGFkZXIoYXJndW1lbnQs
IHNoYWRlcikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ3Byb2dyYW0n
KSB0byBpbXBsLmF0dGFjaFNoYWRlciBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFdlYkdMUHJvZ3Jh
bS4KK1BBU1MgY29udGV4dC5kZXRhY2hTaGFkZXIocHJvZ3JhbSwgYXJndW1lbnQpIHRocmV3IGV4
Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDIgKCdzaGFkZXInKSB0byBpbXBsLmRldGFjaFNo
YWRlciBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFdlYkdMU2hhZGVyLgorUEFTUyBjb250ZXh0LmRl
dGFjaFNoYWRlcihhcmd1bWVudCwgc2hhZGVyKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBB
cmd1bWVudCAxICgncHJvZ3JhbScpIHRvIGltcGwuZGV0YWNoU2hhZGVyIG11c3QgYmUgYW4gaW5z
dGFuY2Ugb2YgV2ViR0xQcm9ncmFtLgorUEFTUyBjb250ZXh0LnVzZVByb2dyYW0oYXJndW1lbnQp
IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdwcm9ncmFtJykgdG8gaW1w
bC51c2VQcm9ncmFtIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgV2ViR0xQcm9ncmFtLgorUEFTUyBj
b250ZXh0LnNoYWRlclNvdXJjZShhcmd1bWVudCwgJ2ZvbycpIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IEFyZ3VtZW50IDEgKCdzaGFkZXInKSB0byBpbXBsLnNoYWRlclNvdXJjZSBtdXN0IGJl
IGFuIGluc3RhbmNlIG9mIFdlYkdMU2hhZGVyLgorUEFTUyBjb250ZXh0LmJpbmRBdHRyaWJMb2Nh
dGlvbihhcmd1bWVudCwgMCwgJ2ZvbycpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3Vt
ZW50IDEgKCdwcm9ncmFtJykgdG8gaW1wbC5iaW5kQXR0cmliTG9jYXRpb24gbXVzdCBiZSBhbiBp
bnN0YW5jZSBvZiBXZWJHTFByb2dyYW0uCitQQVNTIGNvbnRleHQuYmluZEJ1ZmZlcihjb250ZXh0
LkFSUkFZX0JVRkZFUiwgYXJndW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3Vt
ZW50IDIgKCdidWZmZXInKSB0byBpbXBsLmJpbmRCdWZmZXIgbXVzdCBiZSBhbiBpbnN0YW5jZSBv
ZiBXZWJHTEJ1ZmZlci4KK1BBU1MgY29udGV4dC5iaW5kRnJhbWVidWZmZXIoY29udGV4dC5GUkFN
RUJVRkZFUiwgYXJndW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDIg
KCdmcmFtZWJ1ZmZlcicpIHRvIGltcGwuYmluZEZyYW1lYnVmZmVyIG11c3QgYmUgYW4gaW5zdGFu
Y2Ugb2YgV2ViR0xGcmFtZWJ1ZmZlci4KK1BBU1MgY29udGV4dC5iaW5kUmVuZGVyYnVmZmVyKGNv
bnRleHQuUkVOREVSQlVGRkVSLCBhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjog
QXJndW1lbnQgMiAoJ3JlbmRlcmJ1ZmZlcicpIHRvIGltcGwuYmluZFJlbmRlcmJ1ZmZlciBtdXN0
IGJlIGFuIGluc3RhbmNlIG9mIFdlYkdMUmVuZGVyYnVmZmVyLgorUEFTUyBjb250ZXh0LmJpbmRU
ZXh0dXJlKGNvbnRleHQuVEVYVFVSRV8yRCwgYXJndW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IEFyZ3VtZW50IDIgKCd0ZXh0dXJlJykgdG8gaW1wbC5iaW5kVGV4dHVyZSBtdXN0IGJl
IGFuIGluc3RhbmNlIG9mIFdlYkdMVGV4dHVyZS4KK1BBU1MgY29udGV4dC5mcmFtZWJ1ZmZlclJl
bmRlcmJ1ZmZlcihjb250ZXh0LkZSQU1FQlVGRkVSLCBjb250ZXh0LkRFUFRIX0FUVEFDSE1FTlQs
IGNvbnRleHQuUkVOREVSQlVGRkVSLCBhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogQXJndW1lbnQgNCAoJ3JlbmRlcmJ1ZmZlcicpIHRvIGltcGwuZnJhbWVidWZmZXJSZW5kZXJi
dWZmZXIgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBXZWJHTFJlbmRlcmJ1ZmZlci4KK1BBU1MgY29u
dGV4dC5mcmFtZWJ1ZmZlclRleHR1cmUyRChjb250ZXh0LkZSQU1FQlVGRkVSLCBjb250ZXh0LkNP
TE9SX0FUVEFDSE1FTlQwLCBjb250ZXh0LlRFWFRVUkVfMkQsIGFyZ3VtZW50LCAwKSB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCA0ICgndGV4dHVyZScpIHRvIGltcGwuZnJhbWVi
dWZmZXJUZXh0dXJlMkQgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBXZWJHTFRleHR1cmUuCiBQQVNT
IGNvbnRleHQudW5pZm9ybTJmdihhcmd1bWVudCwgbmV3IEZsb2F0MzJBcnJheShbMC4wLCAwLjBd
KSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KIFBBU1MgY29udGV4dC51
bmlmb3JtMml2KGFyZ3VtZW50LCBuZXcgSW50MzJBcnJheShbMCwgMF0pKSB0aHJldyBleGNlcHRp
b24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgogUEFTUyBjb250ZXh0LnVuaWZvcm1NYXRyaXgyZnYo
YXJndW1lbnQsIGZhbHNlLCBuZXcgRmxvYXQzMkFycmF5KFswLjAsIDAuMCwgMC4wLCAwLjBdKSkg
dGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KQEAgLTUzLDEwICs1MywxMCBA
QCBQQVNTIGNvbnRleHQuZ2V0UHJvZ3JhbVBhcmFtZXRlcihhcmd1bWVudCwgMCkgdGhyZXcgZXhj
ZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcgogUEFTUyBjb250ZXh0LmdldFNoYWRlclBhcmFtZXRl
cihhcmd1bWVudCwgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KIFBB
U1MgY29udGV4dC5nZXRVbmlmb3JtKGFyZ3VtZW50LCBsb2MpIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IFR5cGUgZXJyb3IuCiBQQVNTIGNvbnRleHQuZ2V0VW5pZm9ybShwcm9ncmFtLCBhcmd1
bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgY29udGV4
dC5nZXRVbmlmb3JtTG9jYXRpb24oYXJndW1lbnQsICd1X21vZGVsVmlld1Byb2pNYXRyaXgnKSB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBjb250ZXh0LmdldFBy
b2dyYW1JbmZvTG9nKGFyZ3VtZW50KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVy
cm9yLgotUEFTUyBjb250ZXh0LmdldFNoYWRlckluZm9Mb2coYXJndW1lbnQpIHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIGNvbnRleHQuZ2V0U2hhZGVyU291cmNl
KGFyZ3VtZW50KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBj
b250ZXh0LmdldFVuaWZvcm1Mb2NhdGlvbihhcmd1bWVudCwgJ3VfbW9kZWxWaWV3UHJvak1hdHJp
eCcpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdwcm9ncmFtJykgdG8g
aW1wbC5nZXRVbmlmb3JtTG9jYXRpb24gbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBXZWJHTFByb2dy
YW0uCitQQVNTIGNvbnRleHQuZ2V0UHJvZ3JhbUluZm9Mb2coYXJndW1lbnQpIHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdwcm9ncmFtJykgdG8gaW1wbC5nZXRQcm9ncmFt
SW5mb0xvZyBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFdlYkdMUHJvZ3JhbS4KK1BBU1MgY29udGV4
dC5nZXRTaGFkZXJJbmZvTG9nKGFyZ3VtZW50KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBB
cmd1bWVudCAxICgnc2hhZGVyJykgdG8gaW1wbC5nZXRTaGFkZXJJbmZvTG9nIG11c3QgYmUgYW4g
aW5zdGFuY2Ugb2YgV2ViR0xTaGFkZXIuCitQQVNTIGNvbnRleHQuZ2V0U2hhZGVyU291cmNlKGFy
Z3VtZW50KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnc2hhZGVyJykg
dG8gaW1wbC5nZXRTaGFkZXJTb3VyY2UgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBXZWJHTFNoYWRl
ci4KIFBBU1MgY29udGV4dC5jb21waWxlU2hhZGVyKGFyZ3VtZW50KSBpcyB1bmRlZmluZWQuCiBQ
QVNTIGNvbnRleHQubGlua1Byb2dyYW0oYXJndW1lbnQpIGlzIHVuZGVmaW5lZC4KIFBBU1MgY29u
dGV4dC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgYXJndW1lbnQpIGlzIHVuZGVmaW5lZC4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL251bGwtb2JqZWN0LWJlaGF2aW91
ci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9udWxsLW9iamVj
dC1iZWhhdmlvdXItZXhwZWN0ZWQudHh0CmluZGV4IDk4YjFjMTE4ZDBmYzY0OTFiMDVlNzE3MzAz
MGZkMTlmMGUyMmI2YTQuLmViZWM2M2M2YjBjMjU5NWE1OGFlZThkOTQ3ZDZjMWY1NDNhZmJmYjYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL251bGwtb2JqZWN0LWJl
aGF2aW91ci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wv
bnVsbC1vYmplY3QtYmVoYXZpb3VyLWV4cGVjdGVkLnR4dApAQCAtMTQsMTAgKzE0LDEwIEBAIFBB
U1MgY29udGV4dC5kZXRhY2hTaGFkZXIodW5kZWZpbmVkLCBzaGFkZXIpIHdhcyBleHBlY3RlZCB2
YWx1ZTogSU5WQUxJRF9WQUxVRS4KIFBBU1MgY29udGV4dC5zaGFkZXJTb3VyY2UodW5kZWZpbmVk
LCB1bmRlZmluZWQpIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9WQUxVRS4KIFBBU1MgY29u
dGV4dC5zaGFkZXJTb3VyY2UodW5kZWZpbmVkLCAnZm9vJykgd2FzIGV4cGVjdGVkIHZhbHVlOiBJ
TlZBTElEX1ZBTFVFLgogUEFTUyBjb250ZXh0LmJpbmRBdHRyaWJMb2NhdGlvbih1bmRlZmluZWQs
IDAsICdmb28nKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfVkFMVUUuCi1QQVNTIGNvbnRl
eHQuYmluZEJ1ZmZlcihjb250ZXh0LkFSUkFZX0JVRkZFUiwgMCkgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgY29udGV4dC5iaW5kRnJhbWVidWZmZXIoY29udGV4
dC5GUkFNRUJVRkZFUiwgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4K
LVBBU1MgY29udGV4dC5iaW5kUmVuZGVyYnVmZmVyKGNvbnRleHQuUkVOREVSQlVGRkVSLCAwKSB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBjb250ZXh0LmJpbmRU
ZXh0dXJlKGNvbnRleHQuVEVYVFVSRV8yRCwgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjog
VHlwZSBlcnJvci4KK1BBU1MgY29udGV4dC5iaW5kQnVmZmVyKGNvbnRleHQuQVJSQVlfQlVGRkVS
LCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAyICgnYnVmZmVyJykgdG8g
aW1wbC5iaW5kQnVmZmVyIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIuCitQQVNT
IGNvbnRleHQuYmluZEZyYW1lYnVmZmVyKGNvbnRleHQuRlJBTUVCVUZGRVIsIDApIHRocmV3IGV4
Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDIgKCdmcmFtZWJ1ZmZlcicpIHRvIGltcGwuYmlu
ZEZyYW1lYnVmZmVyIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgV2ViR0xGcmFtZWJ1ZmZlci4KK1BB
U1MgY29udGV4dC5iaW5kUmVuZGVyYnVmZmVyKGNvbnRleHQuUkVOREVSQlVGRkVSLCAwKSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAyICgncmVuZGVyYnVmZmVyJykgdG8gaW1w
bC5iaW5kUmVuZGVyYnVmZmVyIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgV2ViR0xSZW5kZXJidWZm
ZXIuCitQQVNTIGNvbnRleHQuYmluZFRleHR1cmUoY29udGV4dC5URVhUVVJFXzJELCAwKSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAyICgndGV4dHVyZScpIHRvIGltcGwuYmlu
ZFRleHR1cmUgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBXZWJHTFRleHR1cmUuCiBQQVNTIGNvbnRl
eHQuYmluZEJ1ZmZlcihjb250ZXh0LkFSUkFZX0JVRkZFUiwgbnVsbCkgd2FzIGV4cGVjdGVkIHZh
bHVlOiBOT19FUlJPUi4KIFBBU1MgY29udGV4dC5iaW5kRnJhbWVidWZmZXIoY29udGV4dC5GUkFN
RUJVRkZFUiwgbnVsbCkgd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4KIFBBU1MgY29udGV4
dC5iaW5kUmVuZGVyYnVmZmVyKGNvbnRleHQuUkVOREVSQlVGRkVSLCBudWxsKSB3YXMgZXhwZWN0
ZWQgdmFsdWU6IE5PX0VSUk9SLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMv
d2luZGluZy1lbnVtZXJhdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZh
cy93aW5kaW5nLWVudW1lcmF0aW9uLWV4cGVjdGVkLnR4dAppbmRleCA2Zjk3M2YxMTE2ZjJhNmU0
ZGJjZDhiMzgyNTBjZmY2MTdiMWNhZTlkLi5jMzY4NjY4Y2YxMWUzMWUwMjY2NTQ1MTMyYmJiZDQ2
YTUwMzc4YzBlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93aW5kaW5nLWVu
dW1lcmF0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93aW5k
aW5nLWVudW1lcmF0aW9uLWV4cGVjdGVkLnR4dApAQCAtMSwxMiArMSwxMiBAQAogUEFTUyBjb250
ZXh0LmZpbGwoKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KIFBBU1MgY29udGV4dC5maWxsKCdu
b256ZXJvJykgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCi1QQVNTIGNvbnRleHQuZmlsbCgncmFu
ZG9tc3RyaW5nJykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1Mg
Y29udGV4dC5maWxsKCdyYW5kb21zdHJpbmcnKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBB
cmd1bWVudCAxICgnd2luZGluZycpIHRvIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pbXBsLmZp
bGwgbXVzdCBiZSBvbmUgb2Y6ICJub256ZXJvIiwgImV2ZW5vZGQiLgogUEFTUyBjb250ZXh0LmNs
aXAoKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KIFBBU1MgY29udGV4dC5jbGlwKCdub256ZXJv
JykgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCi1QQVNTIGNvbnRleHQuY2xpcCgncmFuZG9tc3Ry
aW5nJykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgY29udGV4
dC5jbGlwKCdyYW5kb21zdHJpbmcnKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVu
dCAxICgnd2luZGluZycpIHRvIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pbXBsLmNsaXAgbXVz
dCBiZSBvbmUgb2Y6ICJub256ZXJvIiwgImV2ZW5vZGQiLgogUEFTUyBjb250ZXh0LmlzUG9pbnRJ
blBhdGgoMCwgMCkgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCiBQQVNTIGNvbnRleHQuaXNQb2lu
dEluUGF0aCgwLCAwLCAnbm9uemVybycpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgotUEFTUyBj
b250ZXh0LmlzUG9pbnRJblBhdGgoMCwgMCwgJ3JhbmRvbXN0cmluZycpIHRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGNvbnRleHQuaXNQb2ludEluUGF0aCgwLCAw
LCAncmFuZG9tc3RyaW5nJykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMyAo
J3dpbmRpbmcnKSB0byBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaW1wbC5pc1BvaW50SW5QYXRo
IG11c3QgYmUgb25lIG9mOiAibm9uemVybyIsICJldmVub2RkIi4KIFBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC93b3JrZXJzL3N0b3JhZ2Uvb3Blbi1kYXRhYmFzZS1pbnB1dHMtc3luYy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc3RvcmFnZS9vcGVuLWRhdGFiYXNlLWlucHV0
cy1zeW5jLWV4cGVjdGVkLnR4dAppbmRleCA5YTU4NDIzZWY0MDI4MDJjZTdiMjFhMTEwZDFiMTdm
ODZkYmFkZmE1Li45YTA1NWY3NjAxOTRjZDMxZDczOTkxMTgxZmMxNDMzZGNlOTM1YThhIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc3RvcmFnZS9vcGVuLWRhdGFiYXNlLWlu
cHV0cy1zeW5jLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc3Rv
cmFnZS9vcGVuLWRhdGFiYXNlLWlucHV0cy1zeW5jLWV4cGVjdGVkLnR4dApAQCAtNCw3ICs0LDcg
QEAgUEFTUzogTm90IGVub3VnaCBhcmd1bWVudHMKIFBBU1M6IHVuZGVmaW5lZAogUEFTUzogdW5k
ZWZpbmVkCiBQQVNTOiB1bmRlZmluZWQKLVBBU1M6IFR5cGUgZXJyb3IKK1BBU1M6IEFyZ3VtZW50
IDUgKCdjcmVhdGlvbkNhbGxiYWNrJykgdG8gV29ya2VyR2xvYmFsU2NvcGUuV29ya2VyR2xvYmFs
U2NvcGVXZWJEYXRhYmFzZTo6b3BlbkRhdGFiYXNlU3luYyBtdXN0IGJlIGEgZnVuY3Rpb24KIFBB
U1M6IG9wZW5EYXRhYmFzZVN5bmMoKSBzdWNjZWVkZWQuCiBQQVNTOiBvcGVuRGF0YWJhc2VTeW5j
KCkgc3VjY2VlZGVkLgogUEFTUzogY2FsbGluZyBvcGVuRGF0YWJhc2VTeW5jKCkgd2l0aCBhIGNy
ZWF0aW9uIGNhbGxiYWNrIHN1Y2NlZWRlZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2Rv
bS9kb20tYXMtcHJvdG90eXBlLWFzc2lnbm1lbnQtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2pzL2RvbS9kb20tYXMtcHJvdG90eXBlLWFzc2lnbm1lbnQtZXhjZXB0aW9uLWV4
cGVjdGVkLnR4dAppbmRleCBjMjM0ZmU5YjZjMWI5ZDg5MmZkMmQ5MzU4ZDgyZTAxM2ZkYzExNGE2
Li44MGQ3YWE0YzJiZGE4YmM2NmU5MzhkMWY4OWYzNjQ1NzQwZGUwODVjIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9qcy9kb20vZG9tLWFzLXByb3RvdHlwZS1hc3NpZ25tZW50LWV4Y2VwdGlvbi1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL2RvbS1hcy1wcm90b3R5cGUtYXNz
aWdubWVudC1leGNlcHRpb24tZXhwZWN0ZWQudHh0CkBAIC02LDggKzYsOCBAQCBPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURQogCiAKIFBBU1MgdGVzdE9iamVjdC5pZCBpcyB1bmRlZmluZWQuCi1QQVNT
IHRlc3RPYmplY3QuaWQ9ImZvbyIgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJv
ci4KLVBBU1MgdGVzdE9iamVjdC5sZW5ndGggdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlw
ZSBlcnJvci4KK1BBU1MgdGVzdE9iamVjdC5pZD0iZm9vIiB0aHJldyBleGNlcHRpb24gVHlwZUVy
cm9yOiBUaGUgRWxlbWVudC5pZCBzZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMg
b2YgRWxlbWVudC4KK1BBU1MgdGVzdE9iamVjdC5sZW5ndGggdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogVGhlIE5vZGVMaXN0Lmxlbmd0aCBnZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0
YW5jZXMgb2YgTm9kZUxpc3QuCiBQQVNTIGRpdi5pZCBpcyAndGVzdCcKIFBBU1MgZGl2Lmhhc093
blByb3BlcnR5KCdpZCcpIGlzIGZhbHNlCiBQQVNTIGRpdi5fX3Byb3RvX18uaWQgaXMgdW5kZWZp
bmVkLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL2RvbS1hdHRyaWJ1dGVzLW9uLW1p
c21hdGNoLXR5cGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL2RvbS1hdHRyaWJ1
dGVzLW9uLW1pc21hdGNoLXR5cGUtZXhwZWN0ZWQudHh0CmluZGV4IGE0MzE3MWM4OGZhYjUzMzE3
MGExYzRlYWJkYzJlNDY2MTc5Y2NiM2EuLjQ2ZmMwOWMxNzk3OTBkMDc4NDJjMjhlODk3YjE5YmVi
MTE5MDc5M2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL2RvbS9kb20tYXR0cmlidXRlcy1v
bi1taXNtYXRjaC10eXBlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vZG9t
LWF0dHJpYnV0ZXMtb24tbWlzbWF0Y2gtdHlwZS1leHBlY3RlZC50eHQKQEAgLTUsMTQgKzUsMTQg
QEAgTWFrZSBzdXJlIERPTSBhdHRyaWJ1dGVzIGhhbmRsZSBkaWZmZXJlbnQgdHlwZXMgb2YgfHRo
aXN8IHByb3Blcmx5CiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyBvYmplY3RX
aXRoRG9jdW1lbnRBc1Byb3RvdHlwZS5hbGwgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlw
ZSBlcnJvci4KK1BBU1Mgb2JqZWN0V2l0aERvY3VtZW50QXNQcm90b3R5cGUuYWxsIHRocmV3IGV4
Y2VwdGlvbiBUeXBlRXJyb3I6IFRoZSBIVE1MRG9jdW1lbnQuYWxsIGdldHRlciBjYW4gb25seSBi
ZSB1c2VkIG9uIGluc3RhbmNlcyBvZiBIVE1MRG9jdW1lbnQuCiBTZWUgd2hhdCBoYXBwZW5zIGlm
IHdlIHB1dCB0aGUgYW5jaG9yIHByb3RvdHlwZSBvbiBhIGRpdgogUEFTUyB0ZXN0RGl2IGluc3Rh
bmNlb2YgSFRNTEFuY2hvckVsZW1lbnQgaXMgdHJ1ZQogUEFTUyB0ZXN0RGl2LmhyZWYgaXMgdW5k
ZWZpbmVkLgotUEFTUyB0ZXN0RGl2LmhyZWY9J2Vycm9yJyB0aHJldyBleGNlcHRpb24gVHlwZUVy
cm9yOiBUeXBlIGVycm9yLgorUEFTUyB0ZXN0RGl2LmhyZWY9J2Vycm9yJyB0aHJldyBleGNlcHRp
b24gVHlwZUVycm9yOiBUaGUgSFRNTEFuY2hvckVsZW1lbnQuaHJlZiBzZXR0ZXIgY2FuIG9ubHkg
YmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgSFRNTEFuY2hvckVsZW1lbnQuCiBQQVNTIHRlc3REaXYg
aW5zdGFuY2VvZiBIVE1MQW5jaG9yRWxlbWVudCBpcyB0cnVlCiBQQVNTIHRlc3REaXYuaHJlZiBp
cyB1bmRlZmluZWQuCi1QQVNTIHRlc3REaXYuaHJlZj0nZXJyb3InIHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIHRlc3REaXYuaHJlZj0nZXJyb3InIHRocmV3IGV4
Y2VwdGlvbiBUeXBlRXJyb3I6IFRoZSBIVE1MQW5jaG9yRWxlbWVudC5ocmVmIHNldHRlciBjYW4g
b25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiBIVE1MQW5jaG9yRWxlbWVudC4KIFBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvanMvZG9tL3RvU3RyaW5nLWFuZC12YWx1ZU9mLW92ZXJyaWRlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2pzL2RvbS90b1N0cmluZy1hbmQtdmFsdWVPZi1vdmVycmlkZS1leHBl
Y3RlZC50eHQKaW5kZXggNDg1OWI1ZjZmMmM4Nzc0OWMzYjBiMzQwMDg5ZDhiNTk5MGU1YTFiZC4u
NzQyNmNjZjE4ZDZhNTMxMTk2YzRjM2RhNTJlNmQ5OGFjNGVhYmU4OCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvanMvZG9tL3RvU3RyaW5nLWFuZC12YWx1ZU9mLW92ZXJyaWRlLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vdG9TdHJpbmctYW5kLXZhbHVlT2Ytb3ZlcnJpZGUt
ZXhwZWN0ZWQudHh0CkBAIC0zOTIsNyArMzkyLDcgQEAgU2VsZWN0aW9uIDoKIFN0cmluZyhTZWxl
Y3Rpb24pIDogCiBTdHJpbmcoW1NlbGVjdGlvbl0pIDogCiBTZWxlY3Rpb24udG9TdHJpbmcgOiBm
dW5jdGlvbiB0b1N0cmluZygpIHsgW25hdGl2ZSBjb2RlXSB9Ci1UeXBlRXJyb3I6IFR5cGUgZXJy
b3IKK1R5cGVFcnJvcjogQ2FuIG9ubHkgY2FsbCBKU0RPTVNlbGVjdGlvbi50b1N0cmluZyBvbiBp
bnN0YW5jZXMgb2YgSlNET01TZWxlY3Rpb24KIFNlbGVjdGlvbi50b1N0cmluZygpIDogCiBbU2Vs
ZWN0aW9uXS50b1N0cmluZygpIDogCiBTZWxlY3Rpb24udmFsdWVPZigpIDogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zdmcvZG9tL1NWR0xlbmd0aExpc3QtYmFzaWNzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3N2Zy9kb20vU1ZHTGVuZ3RoTGlzdC1iYXNpY3MtZXhwZWN0ZWQudHh0Cmlu
ZGV4IGY2NmU4Zjg3YTc3ODM3NWIxMGEwZmE0YjQxODY5NzhiNDFiMjczYjIuLjgwODAxNDU1NDUw
ZTA2NjAzNWRlMGZlNTIzNGU0YTdlYWEwZjVkNTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N2
Zy9kb20vU1ZHTGVuZ3RoTGlzdC1iYXNpY3MtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L3N2Zy9kb20vU1ZHTGVuZ3RoTGlzdC1iYXNpY3MtZXhwZWN0ZWQudHh0CkBAIC0xMiw5ICsxMiw5
IEBAIFBBU1MgdGV4dDEueC5iYXNlVmFsLmdldEl0ZW0oMSkudmFsdWUgaXMgMTAwMAogUEFTUyB0
ZXh0MS54LmJhc2VWYWwuZ2V0SXRlbSgyKS52YWx1ZSBpcyAxNTAwCiAKIFRlc3QgdW5jb21tb24g
YXJndW1lbnRzIGZvciBpbml0aWFsaXplKCkKLVBBU1MgdGV4dDEueC5iYXNlVmFsLmluaXRpYWxp
emUoMzApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIHRleHQx
LnguYmFzZVZhbC5pbml0aWFsaXplKCdhU3RyaW5nJykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogVHlwZSBlcnJvci4KLVBBU1MgdGV4dDEueC5iYXNlVmFsLmluaXRpYWxpemUodGV4dDEpIHRo
cmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIHRleHQxLnguYmFzZVZh
bC5pbml0aWFsaXplKDMwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgn
aXRlbScpIHRvIGltcGwuaW5pdGlhbGl6ZSBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFNWR0xlbmd0
aC4KK1BBU1MgdGV4dDEueC5iYXNlVmFsLmluaXRpYWxpemUoJ2FTdHJpbmcnKSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnaXRlbScpIHRvIGltcGwuaW5pdGlhbGl6ZSBt
dXN0IGJlIGFuIGluc3RhbmNlIG9mIFNWR0xlbmd0aC4KK1BBU1MgdGV4dDEueC5iYXNlVmFsLmlu
aXRpYWxpemUodGV4dDEpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdp
dGVtJykgdG8gaW1wbC5pbml0aWFsaXplIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgU1ZHTGVuZ3Ro
LgogUEFTUyB0ZXh0MS54LmJhc2VWYWwuaW5pdGlhbGl6ZShudWxsKSB0aHJldyBleGNlcHRpb24g
RXJyb3I6IFNWR19XUk9OR19UWVBFX0VSUjogRE9NIFNWRyBFeGNlcHRpb24gMC4KIAogVGVzdCB1
bmNvbW1vbiBhcmd1bWVudHMgZm9yIGdldEl0ZW0oKQpAQCAtNTIsOSArNTIsOSBAQCBQQVNTIHRl
eHQxLnguYmFzZVZhbC5nZXRJdGVtKDApLnZhbHVlIGlzIDUwMAogUEFTUyB0ZXh0MS54LmJhc2VW
YWwuZ2V0SXRlbSgxKS52YWx1ZSBpcyAxMDAwCiBQQVNTIHRleHQxLnguYmFzZVZhbC5nZXRJdGVt
KDIpLnZhbHVlIGlzIDE1MDAKIFBBU1MgdGV4dDEuZ2V0QXR0cmlidXRlKCd4JykgaXMgIjUwMCAx
MDAwIDE1MDAiCi1QQVNTIHRleHQxLnguYmFzZVZhbC5pbnNlcnRJdGVtQmVmb3JlKDMwLCAwKSB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyB0ZXh0MS54LmJhc2VW
YWwuaW5zZXJ0SXRlbUJlZm9yZSgnYVN0cmluZycsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IFR5cGUgZXJyb3IuCi1QQVNTIHRleHQxLnguYmFzZVZhbC5pbnNlcnRJdGVtQmVmb3JlKHRl
eHQxLCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyB0ZXh0
MS54LmJhc2VWYWwuaW5zZXJ0SXRlbUJlZm9yZSgzMCwgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogQXJndW1lbnQgMSAoJ2l0ZW0nKSB0byBpbXBsLmluc2VydEl0ZW1CZWZvcmUgbXVzdCBi
ZSBhbiBpbnN0YW5jZSBvZiBTVkdMZW5ndGguCitQQVNTIHRleHQxLnguYmFzZVZhbC5pbnNlcnRJ
dGVtQmVmb3JlKCdhU3RyaW5nJywgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1l
bnQgMSAoJ2l0ZW0nKSB0byBpbXBsLmluc2VydEl0ZW1CZWZvcmUgbXVzdCBiZSBhbiBpbnN0YW5j
ZSBvZiBTVkdMZW5ndGguCitQQVNTIHRleHQxLnguYmFzZVZhbC5pbnNlcnRJdGVtQmVmb3JlKHRl
eHQxLCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnaXRlbScpIHRv
IGltcGwuaW5zZXJ0SXRlbUJlZm9yZSBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFNWR0xlbmd0aC4K
IFBBU1MgdGV4dDEueC5iYXNlVmFsLmluc2VydEl0ZW1CZWZvcmUobnVsbCwgMCkgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBTVkdfV1JPTkdfVFlQRV9FUlI6IERPTSBTVkcgRXhjZXB0aW9uIDAuCiAK
IFNldCB4PScxIDIgMyA0JyBmb3IgdGV4dDEKQEAgLTgyLDkgKzgyLDkgQEAgUEFTUyB0ZXh0MS54
LmJhc2VWYWwucmVwbGFjZUl0ZW0oMzApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBl
bm91Z2ggYXJndW0KIFBBU1MgdGV4dDEueC5iYXNlVmFsLnJlcGxhY2VJdGVtKCdhU3RyaW5nJykg
dGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCiBQQVNTIHRl
eHQxLnguYmFzZVZhbC5yZXBsYWNlSXRlbSh0ZXh0MSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogTm90IGVub3VnaCBhcmd1bWVudHMuCiBQQVNTIHRleHQxLnguYmFzZVZhbC5yZXBsYWNlSXRl
bShudWxsKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4K
LVBBU1MgdGV4dDEueC5iYXNlVmFsLnJlcGxhY2VJdGVtKDMwLCAwKSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyB0ZXh0MS54LmJhc2VWYWwucmVwbGFjZUl0ZW0o
J2FTdHJpbmcnLCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFT
UyB0ZXh0MS54LmJhc2VWYWwucmVwbGFjZUl0ZW0odGV4dDEsIDApIHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIHRleHQxLnguYmFzZVZhbC5yZXBsYWNlSXRlbSgz
MCwgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ2l0ZW0nKSB0byBp
bXBsLnJlcGxhY2VJdGVtIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgU1ZHTGVuZ3RoLgorUEFTUyB0
ZXh0MS54LmJhc2VWYWwucmVwbGFjZUl0ZW0oJ2FTdHJpbmcnLCAwKSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBBcmd1bWVudCAxICgnaXRlbScpIHRvIGltcGwucmVwbGFjZUl0ZW0gbXVzdCBi
ZSBhbiBpbnN0YW5jZSBvZiBTVkdMZW5ndGguCitQQVNTIHRleHQxLnguYmFzZVZhbC5yZXBsYWNl
SXRlbSh0ZXh0MSwgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ2l0
ZW0nKSB0byBpbXBsLnJlcGxhY2VJdGVtIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgU1ZHTGVuZ3Ro
LgogUEFTUyB0ZXh0MS54LmJhc2VWYWwucmVwbGFjZUl0ZW0obnVsbCwgMCkgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBTVkdfV1JPTkdfVFlQRV9FUlI6IERPTSBTVkcgRXhjZXB0aW9uIDAuCiBQQVNT
IHRleHQxLnguYmFzZVZhbC5yZXBsYWNlSXRlbSh0ZXh0MS54LmJhc2VWYWwuZ2V0SXRlbSgwKSwg
MCkgaXMgdGV4dDEueC5iYXNlVmFsLmdldEl0ZW0oMCkKIFBBU1MgdGV4dDEueC5iYXNlVmFsLm51
bWJlck9mSXRlbXMgaXMgNApAQCAtMTM0LDkgKzEzNCw5IEBAIFBBU1MgdGV4dDEueC5iYXNlVmFs
LmdldEl0ZW0oMSkudmFsdWUgaXMgNAogUEFTUyB0ZXh0MS5nZXRBdHRyaWJ1dGUoJ3gnKSBpcyAi
MyA0IgogCiBUZXN0IHVuY29tbW9uIGFyZ3VtZW50cyBmb3IgYXBwZW5kSXRlbSgpCi1QQVNTIHRl
eHQxLnguYmFzZVZhbC5hcHBlbmRJdGVtKDMwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBU
eXBlIGVycm9yLgotUEFTUyB0ZXh0MS54LmJhc2VWYWwuYXBwZW5kSXRlbSgnYVN0cmluZycpIHRo
cmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIHRleHQxLnguYmFzZVZh
bC5hcHBlbmRJdGVtKHRleHQxKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9y
LgorUEFTUyB0ZXh0MS54LmJhc2VWYWwuYXBwZW5kSXRlbSgzMCkgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogQXJndW1lbnQgMSAoJ2l0ZW0nKSB0byBpbXBsLmFwcGVuZEl0ZW0gbXVzdCBiZSBh
biBpbnN0YW5jZSBvZiBTVkdMZW5ndGguCitQQVNTIHRleHQxLnguYmFzZVZhbC5hcHBlbmRJdGVt
KCdhU3RyaW5nJykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ2l0ZW0n
KSB0byBpbXBsLmFwcGVuZEl0ZW0gbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBTVkdMZW5ndGguCitQ
QVNTIHRleHQxLnguYmFzZVZhbC5hcHBlbmRJdGVtKHRleHQxKSB0aHJldyBleGNlcHRpb24gVHlw
ZUVycm9yOiBBcmd1bWVudCAxICgnaXRlbScpIHRvIGltcGwuYXBwZW5kSXRlbSBtdXN0IGJlIGFu
IGluc3RhbmNlIG9mIFNWR0xlbmd0aC4KIFBBU1MgdGV4dDEueC5iYXNlVmFsLmFwcGVuZEl0ZW0o
bnVsbCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTVkdfV1JPTkdfVFlQRV9FUlI6IERPTSBTVkcg
RXhjZXB0aW9uIDAuCiAKIFRlc3RpbmcgYW5pbVZhbCBjbGVhciB0aHJvd3MKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N2Zy9kb20vU1ZHTWF0cml4LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3N2Zy9kb20vU1ZHTWF0cml4LWV4cGVjdGVkLnR4dAppbmRleCA0MmQ3MTA2MGRkZDk0MjVkMTVj
ZjE5NTY2ZTMwNjkyZDFiZDA0OWZjLi4wMGNhYzg3MTY2Njk3ZDNlNWZhOGE3MzFkNTZmYThjODU2
NTIxMDUwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdmcvZG9tL1NWR01hdHJpeC1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2RvbS9TVkdNYXRyaXgtZXhwZWN0ZWQudHh0CkBA
IC05MSwxMCArOTEsMTAgQEAgUEFTUyBtYXRyaXguZiBpcyAwCiAKIENoZWNrIGNhbGxpbmcgJ211
bHRpcGx5JyB3aXRoIGludmFsaWQgYXJndW1lbnRzCiBQQVNTIG1hdHJpeC5tdWx0aXBseSgpIHRo
cmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgotUEFTUyBtYXRy
aXgubXVsdGlwbHkodHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4K
LVBBU1MgbWF0cml4Lm11bHRpcGx5KDIpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUg
ZXJyb3IuCi1QQVNTIG1hdHJpeC5tdWx0aXBseSgnYVN0cmluZycpIHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIG1hdHJpeC5tdWx0aXBseShzdmdFbGVtZW50KSB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBtYXRyaXgubXVsdGlw
bHkodHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ3NlY29uZE1h
dHJpeCcpIHRvIHBvZEltcGwubXVsdGlwbHkgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBTVkdNYXRy
aXguCitQQVNTIG1hdHJpeC5tdWx0aXBseSgyKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBB
cmd1bWVudCAxICgnc2Vjb25kTWF0cml4JykgdG8gcG9kSW1wbC5tdWx0aXBseSBtdXN0IGJlIGFu
IGluc3RhbmNlIG9mIFNWR01hdHJpeC4KK1BBU1MgbWF0cml4Lm11bHRpcGx5KCdhU3RyaW5nJykg
dGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ3NlY29uZE1hdHJpeCcpIHRv
IHBvZEltcGwubXVsdGlwbHkgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBTVkdNYXRyaXguCitQQVNT
IG1hdHJpeC5tdWx0aXBseShzdmdFbGVtZW50KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBB
cmd1bWVudCAxICgnc2Vjb25kTWF0cml4JykgdG8gcG9kSW1wbC5tdWx0aXBseSBtdXN0IGJlIGFu
IGluc3RhbmNlIG9mIFNWR01hdHJpeC4KIAogQ2hlY2sgY2FsbGluZyAndHJhbnNsYXRlJyB3aXRo
IGludmFsaWQgYXJndW1lbnRzCiBQQVNTIG1hdHJpeC50cmFuc2xhdGUoKSB0aHJldyBleGNlcHRp
b24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N2Zy9kb20vU1ZHTnVtYmVyTGlzdC1iYXNpY3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvc3ZnL2RvbS9TVkdOdW1iZXJMaXN0LWJhc2ljcy1leHBlY3RlZC50eHQKaW5kZXggNGQwOTBi
ZTQzMjhmYmVjZDFlMGE0YTdmNWNkZDk3MDU5ZmY3YTg2NC4uOTE0YzUyNWNkZmYxOGU4YjczNWVk
NThkODhiZjU0MTE4MjkxMjEzNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3ZnL2RvbS9TVkdO
dW1iZXJMaXN0LWJhc2ljcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2RvbS9T
VkdOdW1iZXJMaXN0LWJhc2ljcy1leHBlY3RlZC50eHQKQEAgLTksOSArOSw5IEBAIFBBU1MgdGV4
dDEucm90YXRlLmJhc2VWYWwubnVtYmVyT2ZJdGVtcyBpcyAzCiBQQVNTIHRleHQxLnJvdGF0ZS5h
bmltVmFsLm51bWJlck9mSXRlbXMgaXMgMwogCiBUZXN0IHVuY29tbW9uIGFyZ3VtZW50cyBmb3Ig
aW5pdGlhbGl6ZSgpCi1QQVNTIHRleHQxLnJvdGF0ZS5iYXNlVmFsLmluaXRpYWxpemUoMzApIHRo
cmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIHRleHQxLnJvdGF0ZS5i
YXNlVmFsLmluaXRpYWxpemUoJ2FTdHJpbmcnKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBU
eXBlIGVycm9yLgotUEFTUyB0ZXh0MS5yb3RhdGUuYmFzZVZhbC5pbml0aWFsaXplKHRleHQxKSB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyB0ZXh0MS5yb3RhdGUu
YmFzZVZhbC5pbml0aWFsaXplKDMwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVu
dCAxICgnaXRlbScpIHRvIGltcGwuaW5pdGlhbGl6ZSBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFNW
R051bWJlci4KK1BBU1MgdGV4dDEucm90YXRlLmJhc2VWYWwuaW5pdGlhbGl6ZSgnYVN0cmluZycp
IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdpdGVtJykgdG8gaW1wbC5p
bml0aWFsaXplIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgU1ZHTnVtYmVyLgorUEFTUyB0ZXh0MS5y
b3RhdGUuYmFzZVZhbC5pbml0aWFsaXplKHRleHQxKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9y
OiBBcmd1bWVudCAxICgnaXRlbScpIHRvIGltcGwuaW5pdGlhbGl6ZSBtdXN0IGJlIGFuIGluc3Rh
bmNlIG9mIFNWR051bWJlci4KIFBBU1MgdGV4dDEucm90YXRlLmJhc2VWYWwuaW5pdGlhbGl6ZShu
dWxsKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFNWR19XUk9OR19UWVBFX0VSUjogRE9NIFNWRyBF
eGNlcHRpb24gMC4KIAogVGVzdCB1bmNvbW1vbiBhcmd1bWVudHMgZm9yIGdldEl0ZW0oKQpAQCAt
NDksOSArNDksOSBAQCBQQVNTIHRleHQxLnJvdGF0ZS5iYXNlVmFsLmdldEl0ZW0oMCkudmFsdWUg
aXMgOTAKIFBBU1MgdGV4dDEucm90YXRlLmJhc2VWYWwuZ2V0SXRlbSgxKS52YWx1ZSBpcyAxODAK
IFBBU1MgdGV4dDEucm90YXRlLmJhc2VWYWwuZ2V0SXRlbSgyKS52YWx1ZSBpcyAyNzAKIFBBU1Mg
dGV4dDEuZ2V0QXR0cmlidXRlKCdyb3RhdGUnKSBpcyAiOTAgMTgwIDI3MCIKLVBBU1MgdGV4dDEu
cm90YXRlLmJhc2VWYWwuaW5zZXJ0SXRlbUJlZm9yZSgzMCwgMCkgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgdGV4dDEucm90YXRlLmJhc2VWYWwuaW5zZXJ0SXRl
bUJlZm9yZSgnYVN0cmluZycsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJy
b3IuCi1QQVNTIHRleHQxLnJvdGF0ZS5iYXNlVmFsLmluc2VydEl0ZW1CZWZvcmUodGV4dDEsIDAp
IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIHRleHQxLnJvdGF0
ZS5iYXNlVmFsLmluc2VydEl0ZW1CZWZvcmUoMzAsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IEFyZ3VtZW50IDEgKCdpdGVtJykgdG8gaW1wbC5pbnNlcnRJdGVtQmVmb3JlIG11c3QgYmUg
YW4gaW5zdGFuY2Ugb2YgU1ZHTnVtYmVyLgorUEFTUyB0ZXh0MS5yb3RhdGUuYmFzZVZhbC5pbnNl
cnRJdGVtQmVmb3JlKCdhU3RyaW5nJywgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJn
dW1lbnQgMSAoJ2l0ZW0nKSB0byBpbXBsLmluc2VydEl0ZW1CZWZvcmUgbXVzdCBiZSBhbiBpbnN0
YW5jZSBvZiBTVkdOdW1iZXIuCitQQVNTIHRleHQxLnJvdGF0ZS5iYXNlVmFsLmluc2VydEl0ZW1C
ZWZvcmUodGV4dDEsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdp
dGVtJykgdG8gaW1wbC5pbnNlcnRJdGVtQmVmb3JlIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgU1ZH
TnVtYmVyLgogUEFTUyB0ZXh0MS5yb3RhdGUuYmFzZVZhbC5pbnNlcnRJdGVtQmVmb3JlKG51bGws
IDApIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU1ZHX1dST05HX1RZUEVfRVJSOiBET00gU1ZHIEV4
Y2VwdGlvbiAwLgogCiBTZXQgcm90YXRlPScxIDIgMyA0JyBmb3IgdGV4dDEKQEAgLTY4LDkgKzY4
LDkgQEAgUEFTUyB0ZXh0MS5yb3RhdGUuYmFzZVZhbC5yZXBsYWNlSXRlbSgzMCkgdGhyZXcgZXhj
ZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaAogUEFTUyB0ZXh0MS5yb3RhdGUuYmFzZVZhbC5y
ZXBsYWNlSXRlbSgnYVN0cmluZycpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91
Z2ggYXJndW1lbnRzLgogUEFTUyB0ZXh0MS5yb3RhdGUuYmFzZVZhbC5yZXBsYWNlSXRlbSh0ZXh0
MSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCiBQQVNT
IHRleHQxLnJvdGF0ZS5iYXNlVmFsLnJlcGxhY2VJdGVtKG51bGwpIHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgotUEFTUyB0ZXh0MS5yb3RhdGUuYmFzZVZh
bC5yZXBsYWNlSXRlbSgzMCwgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJv
ci4KLVBBU1MgdGV4dDEucm90YXRlLmJhc2VWYWwucmVwbGFjZUl0ZW0oJ2FTdHJpbmcnLCAwKSB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyB0ZXh0MS5yb3RhdGUu
YmFzZVZhbC5yZXBsYWNlSXRlbSh0ZXh0MSwgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjog
VHlwZSBlcnJvci4KK1BBU1MgdGV4dDEucm90YXRlLmJhc2VWYWwucmVwbGFjZUl0ZW0oMzAsIDAp
IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdpdGVtJykgdG8gaW1wbC5y
ZXBsYWNlSXRlbSBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFNWR051bWJlci4KK1BBU1MgdGV4dDEu
cm90YXRlLmJhc2VWYWwucmVwbGFjZUl0ZW0oJ2FTdHJpbmcnLCAwKSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBBcmd1bWVudCAxICgnaXRlbScpIHRvIGltcGwucmVwbGFjZUl0ZW0gbXVzdCBi
ZSBhbiBpbnN0YW5jZSBvZiBTVkdOdW1iZXIuCitQQVNTIHRleHQxLnJvdGF0ZS5iYXNlVmFsLnJl
cGxhY2VJdGVtKHRleHQxLCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAx
ICgnaXRlbScpIHRvIGltcGwucmVwbGFjZUl0ZW0gbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBTVkdO
dW1iZXIuCiBQQVNTIHRleHQxLnJvdGF0ZS5iYXNlVmFsLnJlcGxhY2VJdGVtKG51bGwsIDApIHRo
cmV3IGV4Y2VwdGlvbiBFcnJvcjogU1ZHX1dST05HX1RZUEVfRVJSOiBET00gU1ZHIEV4Y2VwdGlv
biAwLgogUEFTUyB0ZXh0MS5yb3RhdGUuYmFzZVZhbC5yZXBsYWNlSXRlbSh0ZXh0MS5yb3RhdGUu
YmFzZVZhbC5nZXRJdGVtKDApLCAwKSBpcyB0ZXh0MS5yb3RhdGUuYmFzZVZhbC5nZXRJdGVtKDAp
CiBQQVNTIHRleHQxLnJvdGF0ZS5iYXNlVmFsLm51bWJlck9mSXRlbXMgaXMgNApAQCAtMTE1LDkg
KzExNSw5IEBAIFBBU1MgdGV4dDEucm90YXRlLmJhc2VWYWwuZ2V0SXRlbSgwKS52YWx1ZSBpcyA0
CiBQQVNTIHRleHQxLmdldEF0dHJpYnV0ZSgncm90YXRlJykgaXMgIjQiCiAKIFRlc3QgdW5jb21t
b24gYXJndW1lbnRzIGZvciBhcHBlbmRJdGVtKCkKLVBBU1MgdGV4dDEucm90YXRlLmJhc2VWYWwu
YXBwZW5kSXRlbSgzMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBB
U1MgdGV4dDEucm90YXRlLmJhc2VWYWwuYXBwZW5kSXRlbSgnYVN0cmluZycpIHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIHRleHQxLnJvdGF0ZS5iYXNlVmFsLmFw
cGVuZEl0ZW0odGV4dDEpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQ
QVNTIHRleHQxLnJvdGF0ZS5iYXNlVmFsLmFwcGVuZEl0ZW0oMzApIHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdpdGVtJykgdG8gaW1wbC5hcHBlbmRJdGVtIG11c3QgYmUg
YW4gaW5zdGFuY2Ugb2YgU1ZHTnVtYmVyLgorUEFTUyB0ZXh0MS5yb3RhdGUuYmFzZVZhbC5hcHBl
bmRJdGVtKCdhU3RyaW5nJykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAo
J2l0ZW0nKSB0byBpbXBsLmFwcGVuZEl0ZW0gbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBTVkdOdW1i
ZXIuCitQQVNTIHRleHQxLnJvdGF0ZS5iYXNlVmFsLmFwcGVuZEl0ZW0odGV4dDEpIHRocmV3IGV4
Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdpdGVtJykgdG8gaW1wbC5hcHBlbmRJdGVt
IG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgU1ZHTnVtYmVyLgogUEFTUyB0ZXh0MS5yb3RhdGUuYmFz
ZVZhbC5hcHBlbmRJdGVtKG51bGwpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU1ZHX1dST05HX1RZ
UEVfRVJSOiBET00gU1ZHIEV4Y2VwdGlvbiAwLgogCiBUZXN0aW5nIGFuaW1WYWwgY2xlYXIgdGhy
b3dzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvZG9tL1NWR1BvaW50LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3N2Zy9kb20vU1ZHUG9pbnQtZXhwZWN0ZWQudHh0CmluZGV4IGI1MjY2
NjA4ODAyYjg2NWFjMGNjNmVjZDU1OTNjNDVhN2UzYmRjOGEuLjYzYTg4MTg0ODVhMWMyMmIxMzgy
MDA3ODFmZTlhOGQxZTI2MjljMDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N2Zy9kb20vU1ZH
UG9pbnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N2Zy9kb20vU1ZHUG9pbnQtZXhw
ZWN0ZWQudHh0CkBAIC0yOSwxMSArMjksMTEgQEAgUEFTUyBuZXdQb2ludC55IGlzIDIxMAogCiBD
aGVjayBpbnZhbGlkIGFyZ3VtZW50cyBmb3IgJ21hdHJpeFRyYW5zZm9ybScKIFBBU1MgcG9pbnQu
bWF0cml4VHJhbnNmb3JtKCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBh
cmd1bWVudHMuCi1QQVNTIHBvaW50Lm1hdHJpeFRyYW5zZm9ybSgtMSkgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgcG9pbnQubWF0cml4VHJhbnNmb3JtKDUpIHRo
cmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIHBvaW50Lm1hdHJpeFRy
YW5zZm9ybSgnYVN0cmluZycpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3Iu
Ci1QQVNTIHBvaW50Lm1hdHJpeFRyYW5zZm9ybShwb2ludCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogVHlwZSBlcnJvci4KLVBBU1MgcG9pbnQubWF0cml4VHJhbnNmb3JtKHN2Z0VsZW1lbnQp
IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIHBvaW50Lm1hdHJp
eFRyYW5zZm9ybSgtMSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ21h
dHJpeCcpIHRvIHBvZEltcGwubWF0cml4VHJhbnNmb3JtIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2Yg
U1ZHTWF0cml4LgorUEFTUyBwb2ludC5tYXRyaXhUcmFuc2Zvcm0oNSkgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ21hdHJpeCcpIHRvIHBvZEltcGwubWF0cml4VHJhbnNm
b3JtIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgU1ZHTWF0cml4LgorUEFTUyBwb2ludC5tYXRyaXhU
cmFuc2Zvcm0oJ2FTdHJpbmcnKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAx
ICgnbWF0cml4JykgdG8gcG9kSW1wbC5tYXRyaXhUcmFuc2Zvcm0gbXVzdCBiZSBhbiBpbnN0YW5j
ZSBvZiBTVkdNYXRyaXguCitQQVNTIHBvaW50Lm1hdHJpeFRyYW5zZm9ybShwb2ludCkgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ21hdHJpeCcpIHRvIHBvZEltcGwubWF0
cml4VHJhbnNmb3JtIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgU1ZHTWF0cml4LgorUEFTUyBwb2lu
dC5tYXRyaXhUcmFuc2Zvcm0oc3ZnRWxlbWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjog
QXJndW1lbnQgMSAoJ21hdHJpeCcpIHRvIHBvZEltcGwubWF0cml4VHJhbnNmb3JtIG11c3QgYmUg
YW4gaW5zdGFuY2Ugb2YgU1ZHTWF0cml4LgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvZG9tL1NWR1Bv
aW50TGlzdC1iYXNpY3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3ZnL2RvbS9TVkdQb2lu
dExpc3QtYmFzaWNzLWV4cGVjdGVkLnR4dAppbmRleCA1ODRhODQxNDE5NDI0ZDA4NGZkYTI0NDNi
YjExM2I4OTE5NzkwYjgwLi42ODg1OTI2M2VjOGI3OWEwYmNkNzNjMGFkOWIxMGEyYzZkYWZjNmQ4
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdmcvZG9tL1NWR1BvaW50TGlzdC1iYXNpY3MtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N2Zy9kb20vU1ZHUG9pbnRMaXN0LWJhc2ljcy1l
eHBlY3RlZC50eHQKQEAgLTIwLDkgKzIwLDkgQEAgUEFTUyBwb2x5MS5wb2ludHMuaW5pdGlhbGl6
ZShwb2ludCkgaXMgcG9pbnQKIFBBU1MgcG9seTEucG9pbnRzLm51bWJlck9mSXRlbXMgaXMgMQog
UEFTUyBkdW1wUG9pbnQocG9seTEucG9pbnRzLmdldEl0ZW0oMCkpIGlzICJ4PTIwMCB5PTEwMCIK
IFBBU1MgcG9seTEuZ2V0QXR0cmlidXRlKCdwb2ludHMnKS5mb3JtYXRQb2ludHNBdHRyaWJ1dGUo
KSBpcyAiMjAwIDEwMCIKLVBBU1MgcG9seTEucG9pbnRzLmluaXRpYWxpemUocG9seTEpIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIHBvbHkxLnBvaW50cy5pbml0
aWFsaXplKDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIHBv
bHkxLnBvaW50cy5pbml0aWFsaXplKCdhU3RyaW5nJykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogVHlwZSBlcnJvci4KK1BBU1MgcG9seTEucG9pbnRzLmluaXRpYWxpemUocG9seTEpIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdpdGVtJykgdG8gaW1wbC5pbml0aWFs
aXplIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgU1ZHUG9pbnQuCitQQVNTIHBvbHkxLnBvaW50cy5p
bml0aWFsaXplKDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdpdGVt
JykgdG8gaW1wbC5pbml0aWFsaXplIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgU1ZHUG9pbnQuCitQ
QVNTIHBvbHkxLnBvaW50cy5pbml0aWFsaXplKCdhU3RyaW5nJykgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogQXJndW1lbnQgMSAoJ2l0ZW0nKSB0byBpbXBsLmluaXRpYWxpemUgbXVzdCBiZSBh
biBpbnN0YW5jZSBvZiBTVkdQb2ludC4KIAogUmVzZXQgcG9pbnRzIGF0dHJpYnV0ZSB0byAwIDAg
MTAwIDAgMTAwIDEwMCAwIDEwMAogUEFTUyBwb2x5MS5zZXRBdHRyaWJ1dGUoJ3BvaW50cycsICcw
IDAgMTAwIDAgMTAwIDEwMCAwIDEwMCcpIGlzIHVuZGVmaW5lZC4KQEAgLTcxLDkgKzcxLDkgQEAg
UEFTUyBkdW1wUG9pbnQocG9seTEucG9pbnRzLmdldEl0ZW0oMSkpIGlzICJ4PTEwMCB5PTAiCiBQ
QVNTIGR1bXBQb2ludChwb2x5MS5wb2ludHMuZ2V0SXRlbSgyKSkgaXMgIng9MTAwIHk9MTAwIgog
UEFTUyBkdW1wUG9pbnQocG9seTEucG9pbnRzLmdldEl0ZW0oMykpIGlzICJ4PTAgeT0xMDAiCiBQ
QVNTIHBvbHkxLmdldEF0dHJpYnV0ZSgncG9pbnRzJykuZm9ybWF0UG9pbnRzQXR0cmlidXRlKCkg
aXMgIjAgMCAxMDAgMCAxMDAgMTAwIDAgMTAwIgotUEFTUyBwb2x5MS5wb2ludHMuaW5zZXJ0SXRl
bUJlZm9yZSgzMCwgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBB
U1MgcG9seTEucG9pbnRzLmluc2VydEl0ZW1CZWZvcmUoJ2FTdHJpbmcnLCAwKSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBwb2x5MS5wb2ludHMuaW5zZXJ0SXRl
bUJlZm9yZShwb2x5MSwgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4K
K1BBU1MgcG9seTEucG9pbnRzLmluc2VydEl0ZW1CZWZvcmUoMzAsIDApIHRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdpdGVtJykgdG8gaW1wbC5pbnNlcnRJdGVtQmVmb3Jl
IG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgU1ZHUG9pbnQuCitQQVNTIHBvbHkxLnBvaW50cy5pbnNl
cnRJdGVtQmVmb3JlKCdhU3RyaW5nJywgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJn
dW1lbnQgMSAoJ2l0ZW0nKSB0byBpbXBsLmluc2VydEl0ZW1CZWZvcmUgbXVzdCBiZSBhbiBpbnN0
YW5jZSBvZiBTVkdQb2ludC4KK1BBU1MgcG9seTEucG9pbnRzLmluc2VydEl0ZW1CZWZvcmUocG9s
eTEsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdpdGVtJykgdG8g
aW1wbC5pbnNlcnRJdGVtQmVmb3JlIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgU1ZHUG9pbnQuCiBQ
QVNTIHBvbHkxLnBvaW50cy5pbnNlcnRJdGVtQmVmb3JlKG51bGwsIDApIHRocmV3IGV4Y2VwdGlv
biBFcnJvcjogU1ZHX1dST05HX1RZUEVfRVJSOiBET00gU1ZHIEV4Y2VwdGlvbiAwLgogCiBUZXN0
IHVuY29tbW9uIGFyZ3VtZW50cyBmb3IgcmVwbGFjZUl0ZW0oKQpAQCAtODEsOSArODEsOSBAQCBQ
QVNTIHBvbHkxLnBvaW50cy5yZXBsYWNlSXRlbSgzMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogTm90IGVub3VnaCBhcmd1bWVudAogUEFTUyBwb2x5MS5wb2ludHMucmVwbGFjZUl0ZW0oJ2FT
dHJpbmcnKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4K
IFBBU1MgcG9seTEucG9pbnRzLnJlcGxhY2VJdGVtKHBvbHkxKSB0aHJldyBleGNlcHRpb24gVHlw
ZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KIFBBU1MgcG9seTEucG9pbnRzLnJlcGxhY2VJ
dGVtKG51bGwsIDApIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU1ZHX1dST05HX1RZUEVfRVJSOiBE
T00gU1ZHIEV4Y2VwdGlvbiAwLgotUEFTUyBwb2x5MS5wb2ludHMucmVwbGFjZUl0ZW0oJ2FTdHJp
bmcnLCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBwb2x5
MS5wb2ludHMucmVwbGFjZUl0ZW0ocG9seTEsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6
IFR5cGUgZXJyb3IuCi1QQVNTIHBvbHkxLnBvaW50cy5yZXBsYWNlSXRlbSgxLCAwKSB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBwb2x5MS5wb2ludHMucmVwbGFj
ZUl0ZW0oJ2FTdHJpbmcnLCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAx
ICgnaXRlbScpIHRvIGltcGwucmVwbGFjZUl0ZW0gbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBTVkdQ
b2ludC4KK1BBU1MgcG9seTEucG9pbnRzLnJlcGxhY2VJdGVtKHBvbHkxLCAwKSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnaXRlbScpIHRvIGltcGwucmVwbGFjZUl0ZW0g
bXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBTVkdQb2ludC4KK1BBU1MgcG9seTEucG9pbnRzLnJlcGxh
Y2VJdGVtKDEsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdpdGVt
JykgdG8gaW1wbC5yZXBsYWNlSXRlbSBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFNWR1BvaW50Lgog
CiBUZXN0IHVuY29tbW9uIGFyZ3VtZW50cyBmb3IgcmVwbGFjZUl0ZW0oKSBhbmQgeG1sLWRvbSBz
eW5jaHJvbml6YXRpb24KIFBBU1MgcG9seTEucG9pbnRzLm51bWJlck9mSXRlbXMgaXMgNApAQCAt
MTM5LDkgKzEzOSw5IEBAIFBBU1MgZHVtcFBvaW50KHBvbHkxLnBvaW50cy5nZXRJdGVtKDApKSBp
cyAieD0wIHk9MTAwIgogUEFTUyBwb2x5MS5nZXRBdHRyaWJ1dGUoJ3BvaW50cycpLmZvcm1hdFBv
aW50c0F0dHJpYnV0ZSgpIGlzICIwIDEwMCIKIAogVGVzdCB1bmNvbW1vbiBhcmd1bWVudHMgZm9y
IGFwcGVuZEl0ZW0oKQotUEFTUyBwb2x5MS5wb2ludHMuYXBwZW5kSXRlbSgzMCkgdGhyZXcgZXhj
ZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgcG9seTEucG9pbnRzLmFwcGVuZEl0
ZW0oJ2FTdHJpbmcnKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFT
UyBwb2x5MS5wb2ludHMuYXBwZW5kSXRlbShwb2x5MSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogVHlwZSBlcnJvci4KK1BBU1MgcG9seTEucG9pbnRzLmFwcGVuZEl0ZW0oMzApIHRocmV3IGV4
Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdpdGVtJykgdG8gaW1wbC5hcHBlbmRJdGVt
IG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgU1ZHUG9pbnQuCitQQVNTIHBvbHkxLnBvaW50cy5hcHBl
bmRJdGVtKCdhU3RyaW5nJykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAo
J2l0ZW0nKSB0byBpbXBsLmFwcGVuZEl0ZW0gbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBTVkdQb2lu
dC4KK1BBU1MgcG9seTEucG9pbnRzLmFwcGVuZEl0ZW0ocG9seTEpIHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdpdGVtJykgdG8gaW1wbC5hcHBlbmRJdGVtIG11c3QgYmUg
YW4gaW5zdGFuY2Ugb2YgU1ZHUG9pbnQuCiBQQVNTIHBvbHkxLnBvaW50cy5hcHBlbmRJdGVtKG51
bGwpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU1ZHX1dST05HX1RZUEVfRVJSOiBET00gU1ZHIEV4
Y2VwdGlvbiAwLgogUEFTUyBkdW1wUG9pbnQocG9seTEucG9pbnRzLmFwcGVuZEl0ZW0ocG9pbnQp
KSBpcyAieD0yMDAgeT0xMDAiCiBQQVNTIHBvbHkxLnBvaW50cy5udW1iZXJPZkl0ZW1zIGlzIDIK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9kb20vU1ZHVHJhbnNmb3JtLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3N2Zy9kb20vU1ZHVHJhbnNmb3JtLWV4cGVjdGVkLnR4dAppbmRleCBj
MTdmYWNiYzI0MDQ5ODcyNmNjOGQyNDM0MTRhYjhlNmNjYmVhYjYxLi4xOTc1NGRhMTdkYTg0NmNj
NjhiMjU3YzViMTE5YjlhMzBiZjQ1ZjBiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdmcvZG9t
L1NWR1RyYW5zZm9ybS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2RvbS9TVkdU
cmFuc2Zvcm0tZXhwZWN0ZWQudHh0CkBAIC01MCwxMSArNTAsMTEgQEAgUEFTUyB0cmFuc2Zvcm0u
bWF0cml4LmYgaXMgMAogCiBDaGVjayBwYXNzaW5nIGludmFsaWQgYXJndW1lbnRzIHRvICdzZXRN
YXRyaXgnCiBQQVNTIHRyYW5zZm9ybS5zZXRNYXRyaXgoKSB0aHJldyBleGNlcHRpb24gVHlwZUVy
cm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KLVBBU1MgdHJhbnNmb3JtLnNldE1hdHJpeCh0cmFu
c2Zvcm0pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIHRyYW5z
Zm9ybS5zZXRNYXRyaXgoc3ZnRWxlbWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlw
ZSBlcnJvci4KLVBBU1MgdHJhbnNmb3JtLnNldE1hdHJpeCgnYVN0cmluZycpIHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIHRyYW5zZm9ybS5zZXRNYXRyaXgoMSkg
dGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgdHJhbnNmb3JtLnNl
dE1hdHJpeChmYWxzZSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BB
U1MgdHJhbnNmb3JtLnNldE1hdHJpeCh0cmFuc2Zvcm0pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IEFyZ3VtZW50IDEgKCdtYXRyaXgnKSB0byBwb2RJbXBsLnNldE1hdHJpeCBtdXN0IGJlIGFu
IGluc3RhbmNlIG9mIFNWR01hdHJpeC4KK1BBU1MgdHJhbnNmb3JtLnNldE1hdHJpeChzdmdFbGVt
ZW50KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnbWF0cml4JykgdG8g
cG9kSW1wbC5zZXRNYXRyaXggbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBTVkdNYXRyaXguCitQQVNT
IHRyYW5zZm9ybS5zZXRNYXRyaXgoJ2FTdHJpbmcnKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9y
OiBBcmd1bWVudCAxICgnbWF0cml4JykgdG8gcG9kSW1wbC5zZXRNYXRyaXggbXVzdCBiZSBhbiBp
bnN0YW5jZSBvZiBTVkdNYXRyaXguCitQQVNTIHRyYW5zZm9ybS5zZXRNYXRyaXgoMSkgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ21hdHJpeCcpIHRvIHBvZEltcGwuc2V0
TWF0cml4IG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgU1ZHTWF0cml4LgorUEFTUyB0cmFuc2Zvcm0u
c2V0TWF0cml4KGZhbHNlKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgn
bWF0cml4JykgdG8gcG9kSW1wbC5zZXRNYXRyaXggbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBTVkdN
YXRyaXguCiAKIENoZWNrIHBhc3NpbmcgaW52YWxpZCBhcmd1bWVudHMgdG8gJ3NldFRyYW5zbGF0
ZScKIFBBU1MgdHJhbnNmb3JtLnNldFRyYW5zbGF0ZSgpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2Rv
bS9TVkdUcmFuc2Zvcm1MaXN0LWJhc2ljcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdmcv
ZG9tL1NWR1RyYW5zZm9ybUxpc3QtYmFzaWNzLWV4cGVjdGVkLnR4dAppbmRleCAyMDQxMTYzMDIz
NGIxMmI3NTllZDhlNjc0ZDliNWM0MzQxODc4YTc2Li40YjM5YmE4OWUzNDFkYTc0MzRmMjAxYzE3
NWZiMDlmMzQ0YTJiZWUzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdmcvZG9tL1NWR1RyYW5z
Zm9ybUxpc3QtYmFzaWNzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdmcvZG9tL1NW
R1RyYW5zZm9ybUxpc3QtYmFzaWNzLWV4cGVjdGVkLnR4dApAQCAtMTAsOSArMTAsOSBAQCBQQVNT
IGR1bXBUcmFuc2Zvcm0oY2lyY2xlMS50cmFuc2Zvcm0uYmFzZVZhbC5nZXRJdGVtKDApKSBpcyAi
dHlwZT1TVkdfVFJBTlNGT1JNXwogUEFTUyBkdW1wVHJhbnNmb3JtKGNpcmNsZTEudHJhbnNmb3Jt
LmJhc2VWYWwuZ2V0SXRlbSgxKSkgaXMgInR5cGU9U1ZHX1RSQU5TRk9STV9UUkFOU0xBVEUgbWF0
cml4PVsxLjAgMC4wIDAuMCAxLjAgMTAuMCAxMC4wXSIKIAogVGVzdCB1bmNvbW1vbiBhcmd1bWVu
dHMgZm9yIGluaXRpYWxpemUoKQotUEFTUyBjaXJjbGUxLnRyYW5zZm9ybS5iYXNlVmFsLmluaXRp
YWxpemUoMzApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIGNp
cmNsZTEudHJhbnNmb3JtLmJhc2VWYWwuaW5pdGlhbGl6ZSgnYVN0cmluZycpIHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIGNpcmNsZTEudHJhbnNmb3JtLmJhc2VW
YWwuaW5pdGlhbGl6ZShjaXJjbGUxKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVy
cm9yLgorUEFTUyBjaXJjbGUxLnRyYW5zZm9ybS5iYXNlVmFsLmluaXRpYWxpemUoMzApIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdpdGVtJykgdG8gaW1wbC5pbml0aWFs
aXplIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgU1ZHVHJhbnNmb3JtLgorUEFTUyBjaXJjbGUxLnRy
YW5zZm9ybS5iYXNlVmFsLmluaXRpYWxpemUoJ2FTdHJpbmcnKSB0aHJldyBleGNlcHRpb24gVHlw
ZUVycm9yOiBBcmd1bWVudCAxICgnaXRlbScpIHRvIGltcGwuaW5pdGlhbGl6ZSBtdXN0IGJlIGFu
IGluc3RhbmNlIG9mIFNWR1RyYW5zZm9ybS4KK1BBU1MgY2lyY2xlMS50cmFuc2Zvcm0uYmFzZVZh
bC5pbml0aWFsaXplKGNpcmNsZTEpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50
IDEgKCdpdGVtJykgdG8gaW1wbC5pbml0aWFsaXplIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgU1ZH
VHJhbnNmb3JtLgogUEFTUyBjaXJjbGUxLnRyYW5zZm9ybS5iYXNlVmFsLmluaXRpYWxpemUobnVs
bCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTVkdfV1JPTkdfVFlQRV9FUlI6IERPTSBTVkcgRXhj
ZXB0aW9uIDAuCiAKIFRlc3QgdW5jb21tb24gYXJndW1lbnRzIGZvciBnZXRJdGVtKCkKQEAgLTQ2
LDkgKzQ2LDkgQEAgUEFTUyBjaXJjbGUxLnRyYW5zZm9ybS5iYXNlVmFsLm51bWJlck9mSXRlbXMg
aXMgMgogUEFTUyBkdW1wVHJhbnNmb3JtKGNpcmNsZTEudHJhbnNmb3JtLmJhc2VWYWwuZ2V0SXRl
bSgwKSkgaXMgInR5cGU9U1ZHX1RSQU5TRk9STV9TQ0FMRSBtYXRyaXg9WzIuMCAwLjAgMC4wIDIu
MCAwLjAgMC4wXSIKIFBBU1MgZHVtcFRyYW5zZm9ybShjaXJjbGUxLnRyYW5zZm9ybS5iYXNlVmFs
LmdldEl0ZW0oMSkpIGlzICJ0eXBlPVNWR19UUkFOU0ZPUk1fVFJBTlNMQVRFIG1hdHJpeD1bMS4w
IDAuMCAwLjAgMS4wIDEwLjAgMTAuMF0iCiBQQVNTIGNpcmNsZTEuZ2V0QXR0cmlidXRlKCd0cmFu
c2Zvcm0nKSBpcyAic2NhbGUoMiAyKSB0cmFuc2xhdGUoMTAgMTApIgotUEFTUyBjaXJjbGUxLnRy
YW5zZm9ybS5iYXNlVmFsLmluc2VydEl0ZW1CZWZvcmUoMzAsIDApIHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIGNpcmNsZTEudHJhbnNmb3JtLmJhc2VWYWwuaW5z
ZXJ0SXRlbUJlZm9yZSgnYVN0cmluZycsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5
cGUgZXJyb3IuCi1QQVNTIGNpcmNsZTEudHJhbnNmb3JtLmJhc2VWYWwuaW5zZXJ0SXRlbUJlZm9y
ZShjaXJjbGUxLCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFT
UyBjaXJjbGUxLnRyYW5zZm9ybS5iYXNlVmFsLmluc2VydEl0ZW1CZWZvcmUoMzAsIDApIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdpdGVtJykgdG8gaW1wbC5pbnNlcnRJ
dGVtQmVmb3JlIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgU1ZHVHJhbnNmb3JtLgorUEFTUyBjaXJj
bGUxLnRyYW5zZm9ybS5iYXNlVmFsLmluc2VydEl0ZW1CZWZvcmUoJ2FTdHJpbmcnLCAwKSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnaXRlbScpIHRvIGltcGwuaW5zZXJ0
SXRlbUJlZm9yZSBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFNWR1RyYW5zZm9ybS4KK1BBU1MgY2ly
Y2xlMS50cmFuc2Zvcm0uYmFzZVZhbC5pbnNlcnRJdGVtQmVmb3JlKGNpcmNsZTEsIDApIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdpdGVtJykgdG8gaW1wbC5pbnNlcnRJ
dGVtQmVmb3JlIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgU1ZHVHJhbnNmb3JtLgogUEFTUyBjaXJj
bGUxLnRyYW5zZm9ybS5iYXNlVmFsLmluc2VydEl0ZW1CZWZvcmUobnVsbCwgMCkgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBTVkdfV1JPTkdfVFlQRV9FUlI6IERPTSBTVkcgRXhjZXB0aW9uIDAuCiAK
IFNldCB0cmFuc2Zvcm09J3JvdGF0ZSg5MCkgc2NhbGUoMiAyKSB0cmFuc2xhdGUoMTAgMTApIHNr
ZXdYKDQ1KScgZm9yIGNpcmNsZTEKQEAgLTY1LDkgKzY1LDkgQEAgUEFTUyBjaXJjbGUxLnRyYW5z
Zm9ybS5iYXNlVmFsLnJlcGxhY2VJdGVtKDMwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBO
b3QgZW4KIFBBU1MgY2lyY2xlMS50cmFuc2Zvcm0uYmFzZVZhbC5yZXBsYWNlSXRlbSgnYVN0cmlu
ZycpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgogUEFT
UyBjaXJjbGUxLnRyYW5zZm9ybS5iYXNlVmFsLnJlcGxhY2VJdGVtKGNpcmNsZTEpIHRocmV3IGV4
Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgogUEFTUyBjaXJjbGUxLnRy
YW5zZm9ybS5iYXNlVmFsLnJlcGxhY2VJdGVtKG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgotUEFTUyBjaXJjbGUxLnRyYW5zZm9ybS5iYXNlVmFs
LnJlcGxhY2VJdGVtKDMwLCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9y
LgotUEFTUyBjaXJjbGUxLnRyYW5zZm9ybS5iYXNlVmFsLnJlcGxhY2VJdGVtKCdhU3RyaW5nJywg
MCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgY2lyY2xlMS50
cmFuc2Zvcm0uYmFzZVZhbC5yZXBsYWNlSXRlbShjaXJjbGUxLCAwKSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBjaXJjbGUxLnRyYW5zZm9ybS5iYXNlVmFsLnJl
cGxhY2VJdGVtKDMwLCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgn
aXRlbScpIHRvIGltcGwucmVwbGFjZUl0ZW0gbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBTVkdUcmFu
c2Zvcm0uCitQQVNTIGNpcmNsZTEudHJhbnNmb3JtLmJhc2VWYWwucmVwbGFjZUl0ZW0oJ2FTdHJp
bmcnLCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnaXRlbScpIHRv
IGltcGwucmVwbGFjZUl0ZW0gbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBTVkdUcmFuc2Zvcm0uCitQ
QVNTIGNpcmNsZTEudHJhbnNmb3JtLmJhc2VWYWwucmVwbGFjZUl0ZW0oY2lyY2xlMSwgMCkgdGhy
ZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ2l0ZW0nKSB0byBpbXBsLnJlcGxh
Y2VJdGVtIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgU1ZHVHJhbnNmb3JtLgogUEFTUyBjaXJjbGUx
LnRyYW5zZm9ybS5iYXNlVmFsLnJlcGxhY2VJdGVtKG51bGwsIDApIHRocmV3IGV4Y2VwdGlvbiBF
cnJvcjogU1ZHX1dST05HX1RZUEVfRVJSOiBET00gU1ZHIEV4Y2VwdGlvbiAwLgogUEFTUyBjaXJj
bGUxLnRyYW5zZm9ybS5iYXNlVmFsLnJlcGxhY2VJdGVtKGNpcmNsZTEudHJhbnNmb3JtLmJhc2VW
YWwuZ2V0SXRlbSgwKSwgMCkgaXMgY2lyY2xlMS50cmFuc2Zvcm0uYmFzZVZhbC5nZXRJdGVtKDAp
CiBQQVNTIGNpcmNsZTEudHJhbnNmb3JtLmJhc2VWYWwubnVtYmVyT2ZJdGVtcyBpcyA0CkBAIC0x
MTYsOSArMTE2LDkgQEAgUEFTUyBkdW1wVHJhbnNmb3JtKGNpcmNsZTEudHJhbnNmb3JtLmJhc2VW
YWwuZ2V0SXRlbSgwKSkgaXMgInR5cGU9U1ZHX1RSQU5TRk9STV8KIFBBU1MgY2lyY2xlMS5nZXRB
dHRyaWJ1dGUoJ3RyYW5zZm9ybScpIGlzICJza2V3WCg0NSkiCiAKIFRlc3QgdW5jb21tb24gYXJn
dW1lbnRzIGZvciBhcHBlbmRJdGVtKCkKLVBBU1MgY2lyY2xlMS50cmFuc2Zvcm0uYmFzZVZhbC5h
cHBlbmRJdGVtKDMwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFT
UyBjaXJjbGUxLnRyYW5zZm9ybS5iYXNlVmFsLmFwcGVuZEl0ZW0oJ2FTdHJpbmcnKSB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBjaXJjbGUxLnRyYW5zZm9ybS5i
YXNlVmFsLmFwcGVuZEl0ZW0oY2lyY2xlMSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlw
ZSBlcnJvci4KK1BBU1MgY2lyY2xlMS50cmFuc2Zvcm0uYmFzZVZhbC5hcHBlbmRJdGVtKDMwKSB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnaXRlbScpIHRvIGltcGwuYXBw
ZW5kSXRlbSBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFNWR1RyYW5zZm9ybS4KK1BBU1MgY2lyY2xl
MS50cmFuc2Zvcm0uYmFzZVZhbC5hcHBlbmRJdGVtKCdhU3RyaW5nJykgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ2l0ZW0nKSB0byBpbXBsLmFwcGVuZEl0ZW0gbXVzdCBi
ZSBhbiBpbnN0YW5jZSBvZiBTVkdUcmFuc2Zvcm0uCitQQVNTIGNpcmNsZTEudHJhbnNmb3JtLmJh
c2VWYWwuYXBwZW5kSXRlbShjaXJjbGUxKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1
bWVudCAxICgnaXRlbScpIHRvIGltcGwuYXBwZW5kSXRlbSBtdXN0IGJlIGFuIGluc3RhbmNlIG9m
IFNWR1RyYW5zZm9ybS4KIFBBU1MgY2lyY2xlMS50cmFuc2Zvcm0uYmFzZVZhbC5hcHBlbmRJdGVt
KG51bGwpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU1ZHX1dST05HX1RZUEVfRVJSOiBET00gU1ZH
IEV4Y2VwdGlvbiAwLgogCiBUZXN0aW5nIGFuaW1WYWwgY2xlYXIgdGhyb3dzCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zdmcvZG9tL1NWR1RyYW5zZm9ybUxpc3QtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvc3ZnL2RvbS9TVkdUcmFuc2Zvcm1MaXN0LWV4cGVjdGVkLnR4dAppbmRleCA5NWU3
Nzg2NmM2MjI0OTdjMjU3MzZjMjkyMGUxMzM2MjVmYjhmOWNlLi42ZDliMmFkZTI3MmVkNDIxMDU3
ODNhMTYyNjVmMThiYmY5MDg3ODRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdmcvZG9tL1NW
R1RyYW5zZm9ybUxpc3QtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N2Zy9kb20vU1ZH
VHJhbnNmb3JtTGlzdC1leHBlY3RlZC50eHQKQEAgLTYsMTEgKzYsMTEgQEAgT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUKIAogQ2hlY2sgcGFzc2luZyBpbnZhbGlkIGFyZ3VtZW50cyB0byAnY3JlYXRl
U1ZHVHJhbnNmb3JtRnJvbU1hdHJpeCcKIFBBU1MgdHJhbnNmb3JtLmNyZWF0ZVNWR1RyYW5zZm9y
bUZyb21NYXRyaXgoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3Vt
ZW50cy4KLVBBU1MgdHJhbnNmb3JtLmNyZWF0ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXgoc3ZnRWxl
bWVudC5jcmVhdGVTVkdUcmFuc2Zvcm0oKSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlw
ZSBlcnJvci4KLVBBU1MgdHJhbnNmb3JtLmNyZWF0ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXgoc3Zn
RWxlbWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgdHJh
bnNmb3JtLmNyZWF0ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXgoJ2FTdHJpbmcnKSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyB0cmFuc2Zvcm0uY3JlYXRlU1ZHVHJh
bnNmb3JtRnJvbU1hdHJpeCgxKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9y
LgotUEFTUyB0cmFuc2Zvcm0uY3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeCh0cnVlKSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyB0cmFuc2Zvcm0uY3JlYXRl
U1ZHVHJhbnNmb3JtRnJvbU1hdHJpeChzdmdFbGVtZW50LmNyZWF0ZVNWR1RyYW5zZm9ybSgpKSB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnbWF0cml4JykgdG8gaW1wbC5j
cmVhdGVTVkdUcmFuc2Zvcm1Gcm9tTWF0cml4IG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgU1ZHTWF0
cml4LgorUEFTUyB0cmFuc2Zvcm0uY3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeChzdmdFbGVt
ZW50KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnbWF0cml4JykgdG8g
aW1wbC5jcmVhdGVTVkdUcmFuc2Zvcm1Gcm9tTWF0cml4IG11c3QgYmUgYW4gaW5zdGFuY2Ugb2Yg
U1ZHTWF0cml4LgorUEFTUyB0cmFuc2Zvcm0uY3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeCgn
YVN0cmluZycpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdtYXRyaXgn
KSB0byBpbXBsLmNyZWF0ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXggbXVzdCBiZSBhbiBpbnN0YW5j
ZSBvZiBTVkdNYXRyaXguCitQQVNTIHRyYW5zZm9ybS5jcmVhdGVTVkdUcmFuc2Zvcm1Gcm9tTWF0
cml4KDEpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdtYXRyaXgnKSB0
byBpbXBsLmNyZWF0ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXggbXVzdCBiZSBhbiBpbnN0YW5jZSBv
ZiBTVkdNYXRyaXguCitQQVNTIHRyYW5zZm9ybS5jcmVhdGVTVkdUcmFuc2Zvcm1Gcm9tTWF0cml4
KHRydWUpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdtYXRyaXgnKSB0
byBpbXBsLmNyZWF0ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXggbXVzdCBiZSBhbiBpbnN0YW5jZSBv
ZiBTVkdNYXRyaXguCiBQQVNTIHRyYW5zZm9ybS5jcmVhdGVTVkdUcmFuc2Zvcm1Gcm9tTWF0cml4
KHVuZGVmaW5lZCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBUeXBlTWlzbWF0Y2hFcnJvcjogRE9N
IEV4Y2VwdGlvbiAxNy4KIFBBU1MgdHJhbnNmb3JtLmNyZWF0ZVNWR1RyYW5zZm9ybUZyb21NYXRy
aXgobnVsbCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBUeXBlTWlzbWF0Y2hFcnJvcjogRE9NIEV4
Y2VwdGlvbiAxNy4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226735</attachid>
            <date>2014-03-14 11:08:36 -0700</date>
            <delta_ts>2014-03-14 12:24:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-130103-20140314110800.patch</filename>
            <type>text/plain</type>
            <size>245256</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1NTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
YWFkMDM5NzY1N2UyMjhkNjVmNDYzZGRlMWIyN2E1ZjVhMDU5NDYzLi5mNzNkMDJlNjE0NDZmNDBl
NWY2YjU0M2EzYmI1MDM0MmYzYzdhNDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxNC0wMy0xMSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgor
CisgICAgICAgIEltcHJvdmUgZG9tIGVycm9yIG1lc3NhZ2VzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzAxMDMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbmV3IGhlbHBlciBmdW5jdGlvbi4KKwor
ICAgICAgICAqIHJ1bnRpbWUvRXJyb3IuaDoKKyAgICAgICAgKEpTQzo6dGhyb3dWTVR5cGVFcnJv
cik6CisKIDIwMTQtMDMtMTMgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAg
ICAgICBGVEwgc2hvdWxkIHN1cHBvcnQgSXNCbGFoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzNkNmYyY2QwZmU4
YjVkNWFlNTAyMzBmOGRlYzk1YjllNDU2ZWIyMS4uNGI4MTBkNmNkOWE2YjVkOTcwMTdiMzkxNjZl
ZWY4ZjU1ZjUyNjMyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4MiBAQAorMjAxNC0wMy0xMSAg
T2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgorCisgICAgICAgIEltcHJvdmUgZG9tIGVy
cm9yIG1lc3NhZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMzAxMDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBNYWtlIHRoZSBET00gZXJyb3IgbWVzc2FnZXMgbW9yZSBkZXNjcmlwdGl2ZSwgYW5kIHVw
ZGF0ZSBiaW5kaW5ncyB0ZXN0cy4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAg
IChHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjayk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RBY3RpdmVET01PYmplY3RFeGNpdGluZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25FeGNpdGluZ0Z1bmN0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdEFjdGl2ZURPTU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uUG9zdE1l
c3NhZ2UpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21O
YW1lZEdldHRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RDdXN0b21OYW1lZEdldHRl
clByb3RvdHlwZUZ1bmN0aW9uQW5vdGhlckZ1bmN0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RFdmVudENvbnN0cnVjdG9yQXR0cjEpOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0RXZlbnRDb25zdHJ1Y3RvckF0dHIyKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RXZl
bnRUYXJnZXRQcm90b3R5cGVGdW5jdGlvbkl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
RXZlbnRUYXJnZXRQcm90b3R5cGVGdW5jdGlvbkFkZEV2ZW50TGlzdGVuZXIpOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0RXZlbnRUYXJnZXRQcm90b3R5cGVGdW5jdGlvblJlbW92ZUV2ZW50TGlz
dGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RXZlbnRUYXJnZXRQcm90b3R5cGVGdW5j
dGlvbkRpc3BhdGNoRXZlbnQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RFeGNlcHRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RXhjZXB0aW9uTmFt
ZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VJbXBsZW1lbnRzU3RyMSk6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VJbXBsZW1lbnRzU3RyMik6CisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VJbXBsZW1lbnRzU3RyMyk6CisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RJbnRlcmZhY2VJbXBsZW1lbnRzTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIxKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50
ZXJmYWNlU3VwcGxlbWVudGFsU3RyMyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJbnRlcmZh
Y2VTdXBwbGVtZW50YWxOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEludGVyZmFj
ZUltcGxlbWVudHNTdHIyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEludGVyZmFjZUlt
cGxlbWVudHNTdHIzKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEludGVyZmFjZUltcGxl
bWVudHNOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1l
bnRhbFN0cjIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVu
dGFsU3RyMyk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50
YWxOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0
aW9uSW1wbGVtZW50c01ldGhvZDEpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNl
UHJvdG90eXBlRnVuY3Rpb25JbXBsZW1lbnRzTWV0aG9kMik6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbkltcGxlbWVudHNNZXRob2QzKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uU3VwcGxlbWVudGFs
TWV0aG9kMSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5j
dGlvblN1cHBsZW1lbnRhbE1ldGhvZDIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50ZXJm
YWNlUHJvdG90eXBlRnVuY3Rpb25TdXBwbGVtZW50YWxNZXRob2QzKToKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2QpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RP
YmouY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0T2JqQ29uc3RydWN0b3I6OmNvbnN0cnVj
dEpTVGVzdE9iaik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpSZWFkT25seUxvbmdBdHRy
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialJlYWRPbmx5U3RyaW5nQXR0cik6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpSZWFkT25seVRlc3RPYmpBdHRyKToKKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdE9iakNvbnN0cnVjdG9yVGVzdFN1Yk9iaik6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RPYmpUZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdE9iakVudW1BdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dE9iakJ5dGVBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iak9jdGV0QXR0cik6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpTaG9ydEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0T2JqVW5zaWduZWRTaG9ydEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
TG9uZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqTG9uZ0xvbmdBdHRyKToKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialVuc2lnbmVkTG9uZ0xvbmdBdHRyKToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdE9ialN0cmluZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
T2JqVGVzdE9iakF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqWE1MT2JqQXR0cik6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RP
YmpSZWZsZWN0ZWRJbnRlZ3JhbEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUmVm
bGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
UmVmbGVjdGVkQm9vbGVhbkF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUmVmbGVj
dGVkVVJMQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21J
bnRlZ3JhbEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9t
Qm9vbGVhbkF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9t
VVJMQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpUeXBlZEFycmF5QXR0cik6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpBdHRyV2l0aEdldHRlckV4Y2VwdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpBdHRyV2l0aFNldHRlckV4Y2VwdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3RPYmpTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpTdHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDdXN0b21BdHRyKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdE9ialdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RPYmpXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVS
YWlzZXMpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RP
YmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2Vz
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0
QW5kU2NyaXB0U3RhdGVXaXRoU3BhY2VzQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9ialdpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2tBdHRyaWJ1dGUpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMSk6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9i
akNvbmRpdGlvbmFsQXR0cjMpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQ29uZGl0aW9u
YWxBdHRyNENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakNvbmRpdGlv
bmFsQXR0cjVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDb25kaXRp
b25hbEF0dHI2Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQ2FjaGVk
QXR0cmlidXRlMSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUy
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakFueUF0dHJpYnV0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RPYmpDb250ZW50RG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0T2JqTXV0YWJsZVBvaW50KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakltbXV0YWJs
ZVBvaW50KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialN0cmF3YmVycnkpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqU3RyaWN0RmxvYXQpOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0T2JqRGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqSWQpOgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0T2JqSGFzaCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RP
YmpSZXBsYWNlYWJsZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpOdWxs
YWJsZURvdWJsZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpOdWxsYWJs
ZUxvbmdBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqTnVsbGFibGVCb29s
ZWFuQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iak51bGxhYmxlU3RyaW5n
QXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iak51bGxhYmxlTG9uZ1NldHRh
YmxlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iak51bGxhYmxlU3RyaW5n
VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQXR0cmlidXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdE9iakF0dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBlKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialRlc3RTdWJPYmpFbmFibGVkQnlTZXR0aW5nQ29uc3Ry
dWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqRW51bUF0dHIpOgorICAgICAg
ICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqQnl0ZUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0
SlNUZXN0T2JqT2N0ZXRBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialNob3J0
QXR0cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpVbnNpZ25lZFNob3J0QXR0cik6
CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpMb25nQXR0cik6CisgICAgICAgIChXZWJD
b3JlOjpzZXRKU1Rlc3RPYmpMb25nTG9uZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNU
ZXN0T2JqVW5zaWduZWRMb25nTG9uZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0
T2JqU3RyaW5nQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpUZXN0T2JqQXR0
cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpYTUxPYmpBdHRyKToKKyAgICAgICAg
KFdlYkNvcmU6OnNldEpTVGVzdE9iakNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rl
c3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9i
alJlZmxlY3RlZEludGVncmFsQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpS
ZWZsZWN0ZWRVbnNpZ25lZEludGVncmFsQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rl
c3RPYmpSZWZsZWN0ZWRCb29sZWFuQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RP
YmpSZWZsZWN0ZWRVUkxBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialJlZmxl
Y3RlZEN1c3RvbUludGVncmFsQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpS
ZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RP
YmpSZWZsZWN0ZWRDdXN0b21VUkxBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9i
alR5cGVkQXJyYXlBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9iakF0dHJXaXRo
R2V0dGVyRXhjZXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9iakF0dHJXaXRo
U2V0dGVyRXhjZXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialN0cmluZ0F0
dHJXaXRoR2V0dGVyRXhjZXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialN0
cmluZ0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVz
dE9iakN1c3RvbUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqV2l0aFNjcmlw
dFN0YXRlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialdpdGhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVz
dE9ialdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyk6CisgICAgICAgIChXZWJDb3JlOjpz
ZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFu
ZFNjcmlwdFN0YXRlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialdp
dGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRB
bmRTY3JpcHRTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0
SlNUZXN0T2JqV2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFja0F0dHJpYnV0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHIxKToKKyAgICAgICAgKFdl
YkNvcmU6OnNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjIpOgorICAgICAgICAoV2ViQ29yZTo6
c2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMyk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rl
c3RPYmpDb25kaXRpb25hbEF0dHI0Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0
SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6
OnNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjZDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJD
b3JlOjpzZXRKU1Rlc3RPYmpBbnlBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNU
ZXN0T2JqTXV0YWJsZVBvaW50KToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9iakltbXV0
YWJsZVBvaW50KToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialN0cmF3YmVycnkpOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqU3RyaWN0RmxvYXQpOgorICAgICAgICAoV2Vi
Q29yZTo6c2V0SlNUZXN0T2JqSWQpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqUmVw
bGFjZWFibGVBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqTnVsbGFi
bGVMb25nU2V0dGFibGVBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2Jq
TnVsbGFibGVTdHJpbmdWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpBdHRy
aWJ1dGVXaXRoUmVzZXJ2ZWRFbnVtVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvblZvaWRNZXRob2QpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25Wb2lkTWV0aG9kV2l0aEFyZ3MpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25CeXRlTWV0aG9kKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQnl0ZU1ldGhvZFdpdGhBcmdzKToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2N0ZXRNZXRob2QpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PY3RldE1ldGhvZFdpdGhBcmdz
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhv
ZCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkxvbmdNZXRo
b2RXaXRoQXJncyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk9iak1ldGhvZCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk9iak1ldGhvZFdpdGhBcmdzKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uTWV0aG9kV2l0aFNlcXVlbmNlQXJnKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kUmV0dXJuaW5nU2VxdWVuY2UpOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRW51bUFyZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFRoYXRSZXF1
aXJlc0FsbEFyZ3NBbmRUaHJvd3MpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25TZXJpYWxpemVkVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25PcHRpb25zT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEV4Y2VwdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkN1c3RvbU1ldGhvZCk6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkN1c3RvbU1ldGhvZFdpdGhBcmdzKToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQWRkRXZlbnRMaXN0
ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblJlbW92
ZUV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25XaXRoU2NyaXB0U3RhdGVWb2lkKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdFN0YXRlT2JqKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdFN0YXRlVm9pZEV4Y2VwdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRTdGF0
ZU9iakV4Y2VwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRT
dGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVPYmpFeGNlcHRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dEFuZFNjcmlwdFN0YXRlV2l0aFNwYWNlcyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2spOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0
aW9uYWxBcmcpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRPcHRpb25hbEFyZyk6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0FuZFR3
b09wdGlvbmFsQXJncyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk1ldGhvZFdpdGhPcHRpb25hbFN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0lzVW5kZWZpbmVkKToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9w
dGlvbmFsU3RyaW5nSXNOdWxsU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENhbGxiYWNrQXJnKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE5vbkNhbGxiYWNrQXJnQW5kQ2Fs
bGJhY2tBcmcpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoQ2FsbGJhY2tBbmRPcHRpb25hbEFyZyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uU3RhdGljTWV0aG9kV2l0aENhbGxiYWNrQW5kT3B0aW9u
YWxBcmcpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvblN0
YXRpY01ldGhvZFdpdGhDYWxsYmFja0FyZyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsTWV0aG9kMSk6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsTWV0aG9kMik6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsTWV0aG9kMyk6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRo
b2QxKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zlcmxv
YWRlZE1ldGhvZDIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25PdmVybG9hZGVkTWV0aG9kMyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q0KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDUpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kNik6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q3KToKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhv
ZDgpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9h
ZGVkTWV0aG9kOSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk92ZXJsb2FkZWRNZXRob2QxMCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QxMSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aENsYW1wKToKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFVuc2lnbmVkTG9uZ1NlcXVl
bmNlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU3RyaW5n
QXJyYXlGdW5jdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbkRvbVN0cmluZ0xpc3RGdW5jdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkdldFNWR0RvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDEpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0Mik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQ0KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NdXRhYmxlUG9pbnRGdW5jdGlvbik6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkltbXV0YWJsZVBvaW50RnVuY3Rpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PcmFuZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TdHJpY3RGdW5jdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblN0cmljdEZ1bmN0aW9u
V2l0aFNlcXVlbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uU3RyaWN0RnVuY3Rpb25XaXRoQXJyYXkpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25WYXJpYWRpY1N0cmluZ01ldGhvZCk6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZhcmlhZGljRG91YmxlTWV0aG9kKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVmFyaWFkaWNOb2RlTWV0aG9k
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQW55KToKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZh
bHVlSW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVJlYWRvbmx5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ2FjaGVkVmFsdWUpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUG9ydHMpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ2Fj
aGVkUmVhZG9ubHlWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2VWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRWYWx1ZSk6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTVGVzdFR5cGVkZWZzQ29uc3RydWN0b3I6OmNvbnN0cnVjdEpTVGVzdFR5cGVkZWZzKToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFR5cGVkZWZzVW5zaWduZWRMb25nTG9uZ0F0dHIpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlwZWRlZnNJbW11dGFibGVTZXJpYWxpemVkU2NyaXB0
VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvclRlc3RT
dWJPYmopOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlwZWRlZnNBdHRyV2l0aEdldHRlckV4
Y2VwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBlZGVmc0F0dHJXaXRoU2V0dGVy
RXhjZXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFR5cGVkZWZzU3RyaW5nQXR0cldp
dGhHZXR0ZXJFeGNlcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlwZWRlZnNTdHJp
bmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RU
eXBlZGVmc1Vuc2lnbmVkTG9uZ0xvbmdBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVz
dFR5cGVkZWZzSW1tdXRhYmxlU2VyaWFsaXplZFNjcmlwdFZhbHVlKToKKyAgICAgICAgKFdlYkNv
cmU6OnNldEpTVGVzdFR5cGVkZWZzQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6c2V0SlNUZXN0VHlwZWRlZnNBdHRyV2l0aFNldHRlckV4Y2VwdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RUeXBlZGVmc1N0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdFR5cGVkZWZzU3RyaW5nQXR0cldpdGhT
ZXR0ZXJFeGNlcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlwZWRlZnNQcm90b3R5
cGVGdW5jdGlvbkZ1bmMpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlwZWRlZnNQcm90b3R5
cGVGdW5jdGlvblNldFNoYWRvdyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBlZGVmc1By
b3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFNlcXVlbmNlQXJnKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25OdWxsYWJsZUFycmF5QXJnKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25GdW5jV2l0aENsYW1w
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25JbW11
dGFibGVQb2ludEZ1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFR5cGVkZWZzUHJv
dG90eXBlRnVuY3Rpb25TdHJpbmdBcnJheUZ1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25TdHJpbmdBcnJheUZ1bmN0aW9uMik6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uQ2FsbFdpdGhTZXF1
ZW5jZVRoYXRSZXF1aXJlc0luY2x1ZGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlwZWRl
ZnNQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhFeGNlcHRpb24pOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpq
c2F0dHJpYnV0ZVJlYWRvbmx5KToKKwogMjAxNC0wMy0wNyAgSmVyIE5vYmxlICA8amVyLm5vYmxl
QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgcmVtb3RlIGNvbnRyb2wgY29tbWFuZCBzdXBwb3J0
IHRvIE1lZGlhU2Vzc2lvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Vycm9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5oCmluZGV4
IGJlYzVkZDc1NmVmZDgyNGM0NDZkMmU3YWI3ZDczMDVkNjg0MGI0NmIuLmNiOGNmNjQ2OTU3ZWU4
OTQzNWM3ODY3MWEzM2FhMGM3ZDVhODVmMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Vycm9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RXJyb3IuaApAQCAtNzAsNyArNzAsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAvLyBDb252ZW5p
ZW5jZSB3cmFwcGVycywgd3JhcCByZXN1bHQgYXMgYW4gRW5jb2RlZEpTVmFsdWUuCiAgICAgaW5s
aW5lIEVuY29kZWRKU1ZhbHVlIHRocm93Vk1FcnJvcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUg
ZXJyb3IpIHsgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShleGVjLT52bSgpLnRocm93RXhjZXB0aW9u
KGV4ZWMsIGVycm9yKSk7IH0KICAgICBpbmxpbmUgRW5jb2RlZEpTVmFsdWUgdGhyb3dWTVR5cGVF
cnJvcihFeGVjU3RhdGUqIGV4ZWMpIHsgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd1R5cGVF
cnJvcihleGVjKSk7IH0KLQorICAgIGlubGluZSBFbmNvZGVkSlNWYWx1ZSB0aHJvd1ZNVHlwZUVy
cm9yKEV4ZWNTdGF0ZSogZXhlYywgU3RyaW5nIGVycm9yTWVzc2FnZSkgeyByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKHRocm93VHlwZUVycm9yKGV4ZWMsIGVycm9yTWVzc2FnZSkpOyB9CisgICAgCiAg
ICAgY2xhc3MgU3RyaWN0TW9kZVR5cGVFcnJvckZ1bmN0aW9uIDogcHVibGljIEludGVybmFsRnVu
Y3Rpb24gewogICAgIHByaXZhdGU6CiAgICAgICAgIFN0cmljdE1vZGVUeXBlRXJyb3JGdW5jdGlv
bihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCmluZGV4IDlmYWZkYTk2MzM4MDA5OTRiMWVmN2Y4MTZiZjZhNGViZjM2
M2I4YmEuLjM5YTdhZGQwNzIyYjJkYjgzNWE3NjRjMzk2NzNkMDhjOWNhZWNjMWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCkBAIC0yMjAwLDYgKzIyMDAsNyBAQCBfX1pON1dlYkNvcmUzNWNvbnRleHRN
ZW51SXRlbVRhZ1Nob3dTdWJzdGl0dXRpb25zRWIKIF9fWk43V2ViQ29yZTM1Y29udGV4dE1lbnVJ
dGVtVGFnU3Vic3RpdHV0aW9uc01lbnVFdgogX19aTjdXZWJDb3JlMzdjb250ZXh0TWVudUl0ZW1U
YWdUcmFuc2Zvcm1hdGlvbnNNZW51RXYKIF9fWk43V2ViQ29yZTM4Y29udGV4dE1lbnVJdGVtVGFn
V3JpdGluZ0RpcmVjdGlvbk1lbnVFdgorX19aTjdXZWJDb3JlMzhtYWtlRE9NQmluZGluZ3NUeXBl
RXJyb3JTdHJpbmdJbnRlcm5hbEVQS2N6CiBfX1pON1dlYkNvcmU0MmNvbnRleHRNZW51SXRlbVRh
Z0NoZWNrR3JhbW1hcldpdGhTcGVsbGluZ0V2CiBfX1pON1dlYkNvcmU0MmNvbnRleHRNZW51SXRl
bVRhZ0NoZWNrU3BlbGxpbmdXaGlsZVR5cGluZ0V2CiBfX1pON1dlYkNvcmU0NmNvbnRleHRNZW51
SXRlbVRhZ0NvcnJlY3RTcGVsbGluZ0F1dG9tYXRpY2FsbHlFdgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKaW5kZXggNTIxZTQzNTU3ZGMyN2U0ZTI4YjY4Mjkx
ODIwMzUxOWFiNzcxYzMyZS4uNThiNzM4NjEyNTE0ZWNiYjIzNjI2NWMyNGZkZWRjY2I1OTY4ZDFl
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCkBAIC00
Miw2ICs0Miw3IEBACiAjaW5jbHVkZSA8cnVudGltZS9FcnJvckhhbmRsaW5nU2NvcGUuaD4KICNp
bmNsdWRlIDxydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuaD4KICNpbmNsdWRlIDxydW50aW1lL0pT
RnVuY3Rpb24uaD4KKyNpbmNsdWRlIDxzdGRhcmcuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJh
cy5oPgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwpAQCAtNTI1LDUgKzUyNiwxOSBAQCBib29sIEJp
bmRpbmdTZWN1cml0eTo6c2hvdWxkQWxsb3dBY2Nlc3NUb05vZGUoSlNDOjpFeGVjU3RhdGUqIHN0
YXRlLCBOb2RlKiB0YXJnZQogewogICAgIHJldHVybiB0YXJnZXQgJiYgY2FuQWNjZXNzRG9jdW1l
bnQoc3RhdGUsICZ0YXJnZXQtPmRvY3VtZW50KCkpOwogfQotCisgICAgCitTdHJpbmcgbWFrZURP
TUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nSW50ZXJuYWwoY29uc3QgY2hhciogZmlyc3QsIC4uLikK
K3sKKyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgY29uc3QgY2hhciogc3RyID0gZmly
c3Q7CisgICAgdmFfbGlzdCBsaXN0OworICAgIHZhX3N0YXJ0KGxpc3QsIGZpcnN0KTsKKyAgICBk
byB7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHN0cik7CisgICAgICAgIHN0ciA9IHZhX2FyZyhs
aXN0LCBjaGFyKik7CisgICAgfSB3aGlsZSAoc3RyKTsKKyAgICB2YV9lbmQobGlzdCk7CisgICAg
cmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKK30KKyAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgKaW5kZXggYTYwZTY0
YWVmYjQ5YTRjZGRkMTM4MmMxMGIzMzI1MmFkNmZmYmRhNC4uNTE2NWE2NGI0Y2EzYjEyYzdmNWMz
MGYyYjEzNjY5Mjk2NTIwMGQwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01CaW5kaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01C
aW5kaW5nLmgKQEAgLTY0Niw3ICs2NDYsMTEgQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIHNo
b3VsZEFsbG93QWNjZXNzVG9ET01XaW5kb3coSlNDOjpFeGVjU3RhdGUqLCBET01XaW5kb3cmLCBT
ZWN1cml0eVJlcG9ydGluZ09wdGlvbiA9IFJlcG9ydFNlY3VyaXR5RXJyb3IpOwogICAgIHN0YXRp
YyBib29sIHNob3VsZEFsbG93QWNjZXNzVG9GcmFtZShKU0M6OkV4ZWNTdGF0ZSosIEZyYW1lKiwg
U2VjdXJpdHlSZXBvcnRpbmdPcHRpb24gPSBSZXBvcnRTZWN1cml0eUVycm9yKTsKIH07Ci0KKyAg
ICAKKyAgICAKKyNkZWZpbmUgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKC4uLikgbWFr
ZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nSW50ZXJuYWwoX19WQV9BUkdTX18sIChjb25zdCBj
aGFyKikwKQorU3RyaW5nIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZ0ludGVybmFsKGNv
bnN0IGNoYXIqLCAuLi4pOworICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYg
Ly8gSlNET01CaW5kaW5nX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggNGRjNTViYWZiOWVhZDU3YjgyZjY0ZGYxYmNlNmI1
ZmRiZGM1YjMxMi4uODFkZWVmMzhjZDZhMDNjY2ZhNTIwNDIxN2YyMjkwZjJhNzY2ODEzZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0KQEAgLTIxNDUsNyArMjE0NSw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgICAgICBzY3JpcHRFeGVjdXRp
b25Db250ZXh0LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxl
dmVsOjpFcnJvciwgU3RyaW5nKFwiRGVwcmVjYXRlZCBhdHRlbXB0IHRvIGFjY2VzcyBwcm9wZXJ0
eSAnJG5hbWUnIG9uIGEgbm9uLSRpbnRlcmZhY2VOYW1lIG9iamVjdC5cIikpO1xuIik7CiAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpO1xuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgICAgIH1cbiIpOwotICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTtcbiIpOworICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVF
cnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoXCJUaGUgXCIsIFwiJGlu
dGVyZmFjZU5hbWVcIiwgXCIuXCIsIFwiJG5hbWVcIiwgXCIgZ2V0dGVyIGNhbiBvbmx5IGJlIHVz
ZWQgb24gaW5zdGFuY2VzIG9mIFwiLCBcIiRpbnRlcmZhY2VOYW1lXCIpKTtcbiIpOwogICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIH1cbiIpOwogICAgICAgICAgICAgfSBl
bHNlIHsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBVTlVTRURfUEFS
QU0odGhpc1ZhbHVlKTtcbiIpOwpAQCAtMjQ5Niw3ICsyNDk2LDcgQEAgc3ViIEdlbmVyYXRlSW1w
bGVtZW50YXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIH1cbiIpOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHtcbiIpOwot
ICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgdGhyb3dWTVR5
cGVFcnJvcihleGVjKTtcbiIpOworICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJy
b3JTdHJpbmcoXCJUaGUgXCIsIFwiJGludGVyZmFjZU5hbWVcIiwgXCIuXCIsIFwiJG5hbWVcIiwg
XCIgc2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mIFwiLCBcIiRpbnRlcmZh
Y2VOYW1lXCIpKTtcbiIpOwogICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICAgICAgcmV0dXJuO1xuIik7CiAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIH1cbiIpOwogICAgICAgICAgICAgICAgIH0KQEAgLTI1NTcsNyArMjU1Nyw3IEBA
IHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICBteSAk
YXJnVHlwZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZTsKICAgICAgICAgICAgICAgICAg
ICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNXcmFwcGVyVHlwZSgkYXJnVHlwZSkpIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoIXZh
bHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkgJiYgIXZhbHVlLmluaGVyaXRzKEpTJHthcmdUeXBlfTo6
aW5mbygpKSkge1xuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7XG4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgdGhyb3dWTVR5cGVF
cnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoXCJUaGUgXCIsIFwiJGlu
dGVyZmFjZU5hbWVcIiwgXCIuXCIsIFwiJG5hbWVcIiwgXCIgYXR0cmlidXRlIG11c3QgYW4gaW5z
dGFuY2Ugb2YgXCIsIFwiJGFyZ1R5cGVcIikpO1xuIik7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybjtcbiIpOwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIH07XG4iKTsKICAgICAg
ICAgICAgICAgICAgICAgICAgIH0KQEAgLTI3MjksOCArMjcyOSw5IEBAIHN1YiBHZW5lcmF0ZUlt
cGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0
VGhpc1ZhbHVlKCk7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgJGNsYXNzTmFtZSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8JGNsYXNzTmFtZSo+
KHRoaXNWYWx1ZSk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgbXkgJGRvbUZ1bmN0aW9uTmFt
ZSA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lOwogICAgICAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKVxuIik7Ci0gICAg
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihleGVjKTtcbiIpOworICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRp
bmdzVHlwZUVycm9yU3RyaW5nKFwiQ2FuIG9ubHkgY2FsbCBcIiwgXCIkaW50ZXJmYWNlTmFtZVwi
LCBcIi5cIiwgXCIkZG9tRnVuY3Rpb25OYW1lXCIsIFwiIG9uIGluc3RhbmNlcyBvZiBcIiwgXCIk
aW50ZXJmYWNlTmFtZVwiKSk7XG4iKTsKICAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNh
c3RlZFRoaXMsICR7Y2xhc3NOYW1lfTo6aW5mbygpKTtcbiIpOwpAQCAtMzE1Niw3ICszMTU3LDgg
QEAgc3ViIEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNrCiAgICAgbXkgJGFyZ3NJbmRleCA9IDA7CiAg
ICAgbXkgJGhhc09wdGlvbmFsQXJndW1lbnRzID0gMDsKICAgICBteSAkcmFpc2VzRXhjZXB0aW9u
ID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSYWlzZXNFeGNl
cHRpb24ifTsKLQorICAgIAorICAgIG15ICRjbGFzc05hbWUgPSAkaW50ZXJmYWNlLT5uYW1lOwog
ICAgIG15IEBhcmd1bWVudHM7CiAgICAgbXkgJGZ1bmN0aW9uTmFtZTsKICAgICBteSAkaW1wbGVt
ZW50ZWRCeSA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSW1w
bGVtZW50ZWRCeSJ9OwpAQCAtMzE3MSwxNyArMzE3MywyMyBAQCBzdWIgR2VuZXJhdGVQYXJhbWV0
ZXJzQ2hlY2sKICAgICB9IGVsc2UgewogICAgICAgICAkZnVuY3Rpb25OYW1lID0gImltcGwuJHtm
dW5jdGlvbkltcGxlbWVudGF0aW9uTmFtZX0iOwogICAgIH0KLQorICAgIAorICAgIAorICAgIG15
ICRwcmV0dHlGdW5jdGlvbk5hbWU7CiAgICAgaWYgKCEkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnN0cnVjdG9yIn0pIHsKKyAgICAgICAgbXkgJG5hbWUgPSAk
ZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZTsKKyAgICAgICAgJHByZXR0eUZ1bmN0aW9uTmFtZSA9
ICJcIiRpbnRlcmZhY2VOYW1lXCIsIFwiLlwiLCBcIiRuYW1lXCIiOwogICAgICAgICBwdXNoKEBh
cmd1bWVudHMsIEdlbmVyYXRlQ2FsbFdpdGgoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJDYWxsV2l0aCJ9LCBcQCRvdXRwdXRBcnJheSwgIkpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKSIsICRmdW5jdGlvbikpOworICAgIH0gZWxzZSB7CisgICAgICAgICRw
cmV0dHlGdW5jdGlvbk5hbWUgPSAiXCJ0aGUgXCIsIFwiJGludGVyZmFjZU5hbWVcIiwgXCIgY29u
c3RydWN0b3JcIiI7CiAgICAgfQogCiAgICAgJGltcGxJbmNsdWRlc3siRXhjZXB0aW9uQ29kZS5o
In0gPSAxOwogICAgICRpbXBsSW5jbHVkZXN7IkpTRE9NQmluZGluZy5oIn0gPSAxOwotCisgICAg
bXkgJGFyZ3VtZW50SW5kZXggPSAwOwogICAgIGZvcmVhY2ggbXkgJHBhcmFtZXRlciAoQHskZnVu
Y3Rpb24tPnBhcmFtZXRlcnN9KSB7CiAgICAgICAgIG15ICRhcmdUeXBlID0gJHBhcmFtZXRlci0+
dHlwZTsKLQorICAgICAgICAkYXJndW1lbnRJbmRleCA9ICRhcmd1bWVudEluZGV4ICsgMTsKICAg
ICAgICAgIyBPcHRpb25hbCBhcmd1bWVudHMgd2l0aCBbT3B0aW9uYWxdIHNob3VsZCBnZW5lcmF0
ZSBhbiBlYXJseSBjYWxsIHdpdGggZmV3ZXIgYXJndW1lbnRzLgogICAgICAgICAjIE9wdGlvbmFs
IGFyZ3VtZW50cyB3aXRoIFtPcHRpb25hbD0uLi5dIHNob3VsZCBub3QgZ2VuZXJhdGUgdGhlIGVh
cmx5IGNhbGwuCiAgICAgICAgICMgT3B0aW9uYWwgRGljdGlvbmFyeSBhcmd1bWVudHMgYWx3YXlz
IGNvbnNpZGVyZWQgdG8gaGF2ZSBkZWZhdWx0IG9mIGVtcHR5IGRpY3Rpb25hcnkuCkBAIC0zMjIw
LDcgKzMyMjgsNyBAQCBzdWIgR2VuZXJhdGVQYXJhbWV0ZXJzQ2hlY2sKICAgICAgICAgICAgICAg
ICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgUmVmUHRyPCRhcmdUeXBlPiAkbmFtZTtcbiIpOwog
ICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBpZiAoIWV4ZWMtPmFyZ3Vt
ZW50KCRhcmdzSW5kZXgpLmlzVW5kZWZpbmVkT3JOdWxsKCkpIHtcbiIpOwogICAgICAgICAgICAg
ICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgaWYgKCFleGVjLT51bmNoZWNrZWRBcmd1
bWVudCgkYXJnc0luZGV4KS5pc0Z1bmN0aW9uKCkpXG4iKTsKLSAgICAgICAgICAgICAgICBwdXNo
KEAkb3V0cHV0QXJyYXksICIgICAgICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVj
KTtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgICAg
IHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0
cmluZyhcIkFyZ3VtZW50IFwiLCBcIiRhcmd1bWVudEluZGV4XCIsIFwiICgnXCIsIFwiJG5hbWVc
IiwgXCInKSB0byBcIiwgJHByZXR0eUZ1bmN0aW9uTmFtZSwgXCIgbXVzdCBiZSBhIGZ1bmN0aW9u
XCIpKTtcbiIpOwogICAgICAgICAgICAgICAgIGlmICgkZnVuY3Rpb24tPmlzU3RhdGljKSB7CiAg
ICAgICAgICAgICAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJDYWxsYmFja0Z1bmN0aW9uLmgi
KTsKICAgICAgICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICAkbmFt
ZSA9IGNyZWF0ZUZ1bmN0aW9uT25seUNhbGxiYWNrPCR7Y2FsbGJhY2tDbGFzc05hbWV9PihleGVj
LCBqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkp
LCBleGVjLT51bmNoZWNrZWRBcmd1bWVudCgkYXJnc0luZGV4KSk7XG4iKTsKQEAgLTMyMzAsNyAr
MzIzOCw3IEBAIHN1YiBHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjawogICAgICAgICAgICAgICAgIHB1
c2goQCRvdXRwdXRBcnJheSwgIiAgICB9XG4iKTsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAg
ICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGlmICghZXhlYy0+YXJndW1lbnQo
JGFyZ3NJbmRleCkuaXNGdW5jdGlvbigpKVxuIik7Ci0gICAgICAgICAgICAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAiICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTtcbiIpOwor
ICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgcmV0dXJuIHRocm93
Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKFwiQXJndW1l
bnQgXCIsIFwiJGFyZ3VtZW50SW5kZXhcIiwgXCIgKCdcIiwgXCIkbmFtZVwiLCBcIicpIHRvIFwi
LCAkcHJldHR5RnVuY3Rpb25OYW1lLCBcIiBtdXN0IGJlIGEgZnVuY3Rpb25cIikpO1xuIik7CiAg
ICAgICAgICAgICAgICAgaWYgKCRmdW5jdGlvbi0+aXNTdGF0aWMpIHsKICAgICAgICAgICAgICAg
ICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkNhbGxiYWNrRnVuY3Rpb24uaCIpOwogICAgICAgICAg
ICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgUmVmUHRyPCRhcmdUeXBlPiAkbmFt
ZSA9IGNyZWF0ZUZ1bmN0aW9uT25seUNhbGxiYWNrPCR7Y2FsbGJhY2tDbGFzc05hbWV9PihleGVj
LCBqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkp
LCBleGVjLT51bmNoZWNrZWRBcmd1bWVudCgkYXJnc0luZGV4KSk7XG4iKTsKQEAgLTMyNTgsNyAr
MzI2Niw3IEBAIHN1YiBHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjawogICAgICAgICAgICAgICAgIHB1
c2goQCRvdXRwdXRBcnJheSwgIiAgICBWZWN0b3I8JG5hdGl2ZUVsZW1lbnRUeXBlPiAkbmFtZTtc
biIpOwogICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBmb3IgKHVuc2ln
bmVkIGkgPSAkYXJnc0luZGV4LCBjb3VudCA9IGV4ZWMtPmFyZ3VtZW50Q291bnQoKTsgaSA8IGNv
dW50OyArK2kpIHtcbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAg
ICAgICAgaWYgKCFleGVjLT51bmNoZWNrZWRBcmd1bWVudChpKS5pbmhlcml0cyhKUyR7YXJnVHlw
ZX06OmluZm8oKSkpXG4iKTsKLSAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIg
ICAgICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTtcbiIpOworICAgICAgICAg
ICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlw
ZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZyhcIkFyZ3VtZW50IFwi
LCBcIiRhcmd1bWVudEluZGV4XCIsIFwiICgnXCIsIFwiJG5hbWVcIiwgXCInKSB0byBcIiwgJHBy
ZXR0eUZ1bmN0aW9uTmFtZSwgXCIgbXVzdCBiZSBhIGZ1bmN0aW9uXCIpKTtcbiIpOwogICAgICAg
ICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgJG5hbWUuYXBwZW5kKHRvJGFy
Z1R5cGUoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoaSkpKTtcbiIpOwogICAgICAgICAgICAgICAg
IHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICB9XG4iKQogICAgICAgICAgICAgfSBlbHNlIHsKQEAg
LTMyNzgsMTEgKzMyODYsMTggQEAgc3ViIEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNrCiAKICAgICAg
ICAgICAgIG15IEBlbnVtVmFsdWVzID0gJGNvZGVHZW5lcmF0b3ItPlZhbGlkRW51bVZhbHVlcygk
YXJnVHlwZSk7CiAgICAgICAgICAgICBteSBAZW51bUNoZWNrcyA9ICgpOworICAgICAgICAgICAg
bXkgJGVudW1zID0gMDsKICAgICAgICAgICAgIGZvcmVhY2ggbXkgJGVudW1WYWx1ZSAoQGVudW1W
YWx1ZXMpIHsKICAgICAgICAgICAgICAgICBwdXNoKEBlbnVtQ2hlY2tzLCAiJHtuYW1lfSAhPSBc
IiRlbnVtVmFsdWVcIiIpOworICAgICAgICAgICAgICAgIGlmICghJGVudW1zKSB7CisgICAgICAg
ICAgICAgICAgICAgICRlbnVtcyA9ICJcXFwiJGVudW1WYWx1ZVxcXCIiOworICAgICAgICAgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICRlbnVtcyA9ICRlbnVtcyAuICIsIFxc
XCIiIC4gJGVudW1WYWx1ZSAuICJcXFwiIjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBwdXNoIChAJG91dHB1dEFycmF5LCAi
ICAgIGlmICgiIC4gam9pbigiICYmICIsIEBlbnVtQ2hlY2tzKSAuICIpXG4iKTsKLSAgICAgICAg
ICAgIHB1c2ggKEAkb3V0cHV0QXJyYXksICIgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9y
KGV4ZWMpO1xuIik7CisgICAgICAgICAgICBwdXNoIChAJG91dHB1dEFycmF5LCAiICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJp
bmcoXCJBcmd1bWVudCBcIiwgXCIkYXJndW1lbnRJbmRleFwiLCBcIiAoJ1wiLCBcIiRuYW1lXCIs
IFwiJykgdG8gXCIsICRwcmV0dHlGdW5jdGlvbk5hbWUsIFwiIG11c3QgYmUgb25lIG9mOiBcIiwg
XCIkZW51bXNcIikpO1xuIik7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAjIElmIHRo
ZSAiU3RyaWN0VHlwZUNoZWNraW5nIiBleHRlbmRlZCBhdHRyaWJ1dGUgaXMgcHJlc2VudCwgYW5k
IHRoZSBhcmd1bWVudCdzIHR5cGUgaXMgYW4KICAgICAgICAgICAgICMgaW50ZXJmYWNlIHR5cGUs
IHRoZW4gaWYgdGhlIGluY29taW5nIHZhbHVlIGRvZXMgbm90IGltcGxlbWVudCB0aGF0IGludGVy
ZmFjZSwgYSBUeXBlRXJyb3IKQEAgLTMyOTUsNyArMzMxMCw3IEBAIHN1YiBHZW5lcmF0ZVBhcmFt
ZXRlcnNDaGVjawogICAgICAgICAgICAgICAgIG15ICRhcmdWYWx1ZSA9ICJleGVjLT5hcmd1bWVu
dCgkYXJnc0luZGV4KSI7CiAgICAgICAgICAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1dy
YXBwZXJUeXBlKCRhcmdUeXBlKSkgewogICAgICAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0
QXJyYXksICIgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA+ICRhcmdzSW5kZXggJiYgISR7
YXJnVmFsdWV9LmlzVW5kZWZpbmVkT3JOdWxsKCkgJiYgISR7YXJnVmFsdWV9LmluaGVyaXRzKEpT
JHthcmdUeXBlfTo6aW5mbygpKSlcbiIpOwotICAgICAgICAgICAgICAgICAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICIgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpO1xuIik7Cisg
ICAgICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKFwiQXJn
dW1lbnQgXCIsIFwiJGFyZ3VtZW50SW5kZXhcIiwgXCIgKCdcIiwgXCIkbmFtZVwiLCBcIicpIHRv
IFwiLCAkcHJldHR5RnVuY3Rpb25OYW1lLCBcIiBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFwiLCBc
IiRhcmdUeXBlXCIpKTtcbiIpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEFjdGl2ZURPTU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcAppbmRleCA0MGM0YjZjMmJjM2MyYjNiMzZh
YzA2MTRhNDIzODY2YWU5NmE5ZDBiLi42NzQ4MjY2YmU3M2Y5NjQ0NzhlNWE1YjQ4NzM3MjhjNTVl
NmI4ZWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcApAQCAtMTQxLDcgKzE0
MSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEFjdGl2ZURPTU9iamVjdEV4Y2l0aW5nQXR0cihF
eGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90CiAgICAgICAgICAgICBzY3JpcHRFeGVjdXRp
b25Db250ZXh0LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxl
dmVsOjpFcnJvciwgU3RyaW5nKCJEZXByZWNhdGVkIGF0dGVtcHQgdG8gYWNjZXNzIHByb3BlcnR5
ICdleGNpdGluZ0F0dHInIG9uIGEgbm9uLVRlc3RBY3RpdmVET01PYmplY3Qgb2JqZWN0LiIpKTsK
ICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAg
ICAgIH0KLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJl
dHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmlu
ZygiVGhlICIsICJUZXN0QWN0aXZlRE9NT2JqZWN0IiwgIi4iLCAiZXhjaXRpbmdBdHRyIiwgIiBn
ZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RBY3RpdmVET01P
YmplY3QiKSk7CiAgICAgfQogICAgIGlmICghQmluZGluZ1NlY3VyaXR5OjpzaG91bGRBbGxvd0Fj
Y2Vzc1RvRE9NV2luZG93KGV4ZWMsIGNhc3RlZFRoaXMtPmltcGwoKSkpCiAgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CkBAIC0xNzQsNyArMTc0LDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RBY3RpdmVET01PYmplY3RQcm90b3R5cGVG
dW5jdGlvbkV4Y2l0aW5nRnVuY3QKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RU
aGlzVmFsdWUoKTsKICAgICBKU1Rlc3RBY3RpdmVET01PYmplY3QqIGNhc3RlZFRoaXMgPSBqc0R5
bmFtaWNDYXN0PEpTVGVzdEFjdGl2ZURPTU9iamVjdCo+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVO
TElLRUxZKCFjYXN0ZWRUaGlzKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhl
Yyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5n
c1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdEFjdGl2ZURPTU9iamVjdCIs
ICIuIiwgImV4Y2l0aW5nRnVuY3Rpb24iLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdEFjdGl2
ZURPTU9iamVjdCIpKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMs
IEpTVGVzdEFjdGl2ZURPTU9iamVjdDo6aW5mbygpKTsKICAgICBpZiAoIUJpbmRpbmdTZWN1cml0
eTo6c2hvdWxkQWxsb3dBY2Nlc3NUb0RPTVdpbmRvdyhleGVjLCBjYXN0ZWRUaGlzLT5pbXBsKCkp
KQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwpAQCAtMTkz
LDcgKzE5Myw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0QWN0aXZlRE9N
T2JqZWN0UHJvdG90eXBlRnVuY3Rpb25Qb3N0TWVzc2FnZShFCiAgICAgSlNWYWx1ZSB0aGlzVmFs
dWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0QWN0aXZlRE9NT2JqZWN0KiBj
YXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RBY3RpdmVET01PYmplY3QqPih0aGlzVmFs
dWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCi0gICAgICAgIHJldHVybiB0aHJv
d1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVj
LCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RB
Y3RpdmVET01PYmplY3QiLCAiLiIsICJwb3N0TWVzc2FnZSIsICIgb24gaW5zdGFuY2VzIG9mICIs
ICJUZXN0QWN0aXZlRE9NT2JqZWN0IikpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMo
Y2FzdGVkVGhpcywgSlNUZXN0QWN0aXZlRE9NT2JqZWN0OjppbmZvKCkpOwogICAgIFRlc3RBY3Rp
dmVET01PYmplY3QmIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFy
Z3VtZW50Q291bnQoKSA8IDEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcApp
bmRleCBkYTFmMGQyZThkMTdjMGRhYzQ4MWQ1MTc0MWU3MDA5YjNhNWUwODY0Li4wNzYzZmY0YWI1
ZGYwZWU3YTU3MmEyODQ4OTBlMmU5NDY0YWFkZTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21O
YW1lZEdldHRlci5jcHAKQEAgLTE2NCw3ICsxNjQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdEN1c3RvbU5hbWVkR2V0dGVyUHJvdG90eXBlRnVuY3Rpb25Bbm90aGVyRnVu
YwogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwogICAgIEpT
VGVzdEN1c3RvbU5hbWVkR2V0dGVyKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RD
dXN0b21OYW1lZEdldHRlcio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRU
aGlzKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJl
dHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmlu
ZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdEN1c3RvbU5hbWVkR2V0dGVyIiwgIi4iLCAiYW5vdGhl
ckZ1bmN0aW9uIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RDdXN0b21OYW1lZEdldHRlciIp
KTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTVGVzdEN1c3Rv
bU5hbWVkR2V0dGVyOjppbmZvKCkpOwogICAgIFRlc3RDdXN0b21OYW1lZEdldHRlciYgaW1wbCA9
IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RFdmVudENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcAppbmRleCBhNWQ5NGYzZDNmNDA5ZjRl
ZDMzYzNkMmIxMzA4NGYyNDU0ODVjZjRkLi5jN2YyZmEyOTNjZTFkOTI2YTZiMGZhOWU0NTY0MzFj
ZmMzODYzYWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCkBAIC0xNzYs
NyArMTc2LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0RXZlbnRDb25zdHJ1Y3RvckF0dHIxKEV4
ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNsb3RCYXNlLAogICAgICAgICAgICAgc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3Nh
Z2VMZXZlbDo6RXJyb3IsIFN0cmluZygiRGVwcmVjYXRlZCBhdHRlbXB0IHRvIGFjY2VzcyBwcm9w
ZXJ0eSAnYXR0cjEnIG9uIGEgbm9uLVRlc3RFdmVudENvbnN0cnVjdG9yIG9iamVjdC4iKSk7CiAg
ICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAg
ICB9Ci0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1
cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmco
IlRoZSAiLCAiVGVzdEV2ZW50Q29uc3RydWN0b3IiLCAiLiIsICJhdHRyMSIsICIgZ2V0dGVyIGNh
biBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0RXZlbnRDb25zdHJ1Y3RvciIp
KTsKICAgICB9CiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIFRlc3RFdmVudENvbnN0cnVj
dG9yJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwpAQCAtMTk1LDcgKzE5NSw3IEBAIEVuY29k
ZWRKU1ZhbHVlIGpzVGVzdEV2ZW50Q29uc3RydWN0b3JBdHRyMihFeGVjU3RhdGUqIGV4ZWMsIEpT
T2JqZWN0KiBzbG90QmFzZSwKICAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFk
ZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBT
dHJpbmcoIkRlcHJlY2F0ZWQgYXR0ZW1wdCB0byBhY2Nlc3MgcHJvcGVydHkgJ2F0dHIyJyBvbiBh
IG5vbi1UZXN0RXZlbnRDb25zdHJ1Y3RvciBvYmplY3QuIikpOwogICAgICAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICAgICAgfQotICAgICAgICByZXR1
cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJy
b3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJUaGUgIiwgIlRlc3RFdmVu
dENvbnN0cnVjdG9yIiwgIi4iLCAiYXR0cjIiLCAiIGdldHRlciBjYW4gb25seSBiZSB1c2VkIG9u
IGluc3RhbmNlcyBvZiAiLCAiVGVzdEV2ZW50Q29uc3RydWN0b3IiKSk7CiAgICAgfQogICAgIFVO
VVNFRF9QQVJBTShleGVjKTsKICAgICBUZXN0RXZlbnRDb25zdHJ1Y3RvciYgaW1wbCA9IGNhc3Rl
ZFRoaXMtPmltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwCmluZGV4IDRmNGI1NjY3M2Vm
MjE5YmQ5OTk5NTI0OWVhNzk3Mjk4NmM5ZTliNDguLjgxNTA5MmQzMmY5MDg2ZTFhNGFlMWQwY2My
NTQ5ZjA1NjJhZGJhNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcApAQCAtMTk4LDcgKzE5
OCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0RXZlbnRUYXJnZXRQcm90
b3R5cGVGdW5jdGlvbkl0ZW0oRXhlY1N0YXRlKiBlCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBl
eGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0RXZlbnRUYXJnZXQqIGNhc3RlZFRoaXMg
PSBqc0R5bmFtaWNDYXN0PEpTVGVzdEV2ZW50VGFyZ2V0Kj4odGhpc1ZhbHVlKTsKICAgICBpZiAo
VU5MSUtFTFkoIWNhc3RlZFRoaXMpKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihl
eGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRp
bmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0RXZlbnRUYXJnZXQiLCAi
LiIsICJpdGVtIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RFdmVudFRhcmdldCIpKTsKICAg
ICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTVGVzdEV2ZW50VGFyZ2V0
OjppbmZvKCkpOwogICAgIFRlc3RFdmVudFRhcmdldCYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwo
KTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKQEAgLTIxOSw3ICsyMTksNyBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEV2ZW50VGFyZ2V0UHJvdG90eXBl
RnVuY3Rpb25BZGRFdmVudExpc3RlbmVyKAogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+
aG9zdFRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdEV2ZW50VGFyZ2V0KiBjYXN0ZWRUaGlzID0ganNE
eW5hbWljQ2FzdDxKU1Rlc3RFdmVudFRhcmdldCo+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElL
RUxZKCFjYXN0ZWRUaGlzKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7
CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5
cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdEV2ZW50VGFyZ2V0IiwgIi4iLCAi
YWRkRXZlbnRMaXN0ZW5lciIsICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0RXZlbnRUYXJnZXQi
KSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RFdmVu
dFRhcmdldDo6aW5mbygpKTsKICAgICBUZXN0RXZlbnRUYXJnZXQmIGltcGwgPSBjYXN0ZWRUaGlz
LT5pbXBsKCk7CiAgICAgSlNWYWx1ZSBsaXN0ZW5lciA9IGV4ZWMtPmFyZ3VtZW50KDEpOwpAQCAt
MjM0LDcgKzIzNCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0RXZlbnRU
YXJnZXRQcm90b3R5cGVGdW5jdGlvblJlbW92ZUV2ZW50TGlzdGVuCiAgICAgSlNWYWx1ZSB0aGlz
VmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0RXZlbnRUYXJnZXQqIGNh
c3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEV2ZW50VGFyZ2V0Kj4odGhpc1ZhbHVlKTsK
ICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5
cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFr
ZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0RXZlbnRU
YXJnZXQiLCAiLiIsICJyZW1vdmVFdmVudExpc3RlbmVyIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwg
IlRlc3RFdmVudFRhcmdldCIpKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3Rl
ZFRoaXMsIEpTVGVzdEV2ZW50VGFyZ2V0OjppbmZvKCkpOwogICAgIFRlc3RFdmVudFRhcmdldCYg
aW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBKU1ZhbHVlIGxpc3RlbmVyID0gZXhlYy0+
YXJndW1lbnQoMSk7CkBAIC0yNDksNyArMjQ5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RFdmVudFRhcmdldFByb3RvdHlwZUZ1bmN0aW9uRGlzcGF0Y2hFdmVudChFeGUK
ICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKICAgICBKU1Rl
c3RFdmVudFRhcmdldCogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0RXZlbnRUYXJn
ZXQqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCi0gICAgICAg
IHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5
cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNh
bGwgIiwgIlRlc3RFdmVudFRhcmdldCIsICIuIiwgImRpc3BhdGNoRXZlbnQiLCAiIG9uIGluc3Rh
bmNlcyBvZiAiLCAiVGVzdEV2ZW50VGFyZ2V0IikpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5I
RVJJVFMoY2FzdGVkVGhpcywgSlNUZXN0RXZlbnRUYXJnZXQ6OmluZm8oKSk7CiAgICAgVGVzdEV2
ZW50VGFyZ2V0JiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIGlmIChleGVjLT5hcmd1
bWVudENvdW50KCkgPCAxKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcAppbmRleCBkNGNmNDkzOWUzMWI4
ZTk4MjFlZGMyOWY5YzgzOTcwNjY4MDk1NDQ4Li5jYmIyODE0YWU1M2M5Zjc0ZWRlYTJhYjM0OGY1
Y2ExZjA5OGMwNzI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcApAQCAtMTM3LDcgKzEzNyw3IEBA
IEVuY29kZWRKU1ZhbHVlIGpzVGVzdEV4Y2VwdGlvbk5hbWUoRXhlY1N0YXRlKiBleGVjLCBKU09i
amVjdCogc2xvdEJhc2UsIEVuY29kZWRKCiAgICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250
ZXh0LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpF
cnJvciwgU3RyaW5nKCJEZXByZWNhdGVkIGF0dGVtcHQgdG8gYWNjZXNzIHByb3BlcnR5ICduYW1l
JyBvbiBhIG5vbi1UZXN0RXhjZXB0aW9uIG9iamVjdC4iKSk7CiAgICAgICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJv
cihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIlRoZSAiLCAiVGVzdEV4Y2Vw
dGlvbiIsICIuIiwgIm5hbWUiLCAiIGdldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNl
cyBvZiAiLCAiVGVzdEV4Y2VwdGlvbiIpKTsKICAgICB9CiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMp
OwogICAgIFRlc3RFeGNlcHRpb24mIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJm
YWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJ
bnRlcmZhY2UuY3BwCmluZGV4IGUzMDVkNTE3ZDljODUwOTM3YmZjOWNkNmNlYmMwOTdmMTc3N2Uw
N2IuLjJlYTM1ODY1OTVjZGVmODBiOTcxMzlhOTEyN2U2MTk3YzE2OWY4N2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJ
bnRlcmZhY2UuY3BwCkBAIC0zMDcsNyArMzA3LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0SW50
ZXJmYWNlSW1wbGVtZW50c1N0cjEoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEJhc2UK
ICAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZENvbnNvbGVNZXNzYWdlKE1l
c3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBTdHJpbmcoIkRlcHJlY2F0ZWQg
YXR0ZW1wdCB0byBhY2Nlc3MgcHJvcGVydHkgJ2ltcGxlbWVudHNTdHIxJyBvbiBhIG5vbi1UZXN0
SW50ZXJmYWNlIG9iamVjdC4iKSk7CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVy
cm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9N
QmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIlRoZSAiLCAiVGVzdEludGVyZmFjZSIsICIuIiwgImlt
cGxlbWVudHNTdHIxIiwgIiBnZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2Yg
IiwgIlRlc3RJbnRlcmZhY2UiKSk7CiAgICAgfQogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAg
ICBUZXN0SW50ZXJmYWNlJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwpAQCAtMzI4LDcgKzMy
OCw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUltcGxlbWVudHNTdHIyKEV4ZWNT
dGF0ZSogZXhlYywgSlNPYmplY3QqIHNsb3RCYXNlCiAgICAgICAgICAgICBzY3JpcHRFeGVjdXRp
b25Db250ZXh0LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxl
dmVsOjpFcnJvciwgU3RyaW5nKCJEZXByZWNhdGVkIGF0dGVtcHQgdG8gYWNjZXNzIHByb3BlcnR5
ICdpbXBsZW1lbnRzU3RyMicgb24gYSBub24tVGVzdEludGVyZmFjZSBvYmplY3QuIikpOwogICAg
ICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICAgICAg
fQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJu
IHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJU
aGUgIiwgIlRlc3RJbnRlcmZhY2UiLCAiLiIsICJpbXBsZW1lbnRzU3RyMiIsICIgZ2V0dGVyIGNh
biBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0SW50ZXJmYWNlIikpOwogICAg
IH0KICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgVGVzdEludGVyZmFjZSYgaW1wbCA9IGNh
c3RlZFRoaXMtPmltcGwoKTsKQEAgLTM0OSw3ICszNDksNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RJbnRlcmZhY2VJbXBsZW1lbnRzU3RyMyhFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90
QmFzZQogICAgICAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+YWRkQ29uc29sZU1lc3Nh
Z2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIFN0cmluZygiRGVwcmVj
YXRlZCBhdHRlbXB0IHRvIGFjY2VzcyBwcm9wZXJ0eSAnaW1wbGVtZW50c1N0cjMnIG9uIGEgbm9u
LVRlc3RJbnRlcmZhY2Ugb2JqZWN0LiIpKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRocm93Vk1U
eXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1h
a2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiVGhlICIsICJUZXN0SW50ZXJmYWNlIiwgIi4i
LCAiaW1wbGVtZW50c1N0cjMiLCAiIGdldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNl
cyBvZiAiLCAiVGVzdEludGVyZmFjZSIpKTsKICAgICB9CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShjYXN0ZWRUaGlzLT5pbXBsZW1lbnRzU3RyMyhleGVjKSk7CiB9CkBAIC0zNjcsNyArMzY3
LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlSW1wbGVtZW50c05vZGUoRXhlY1N0
YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEJhc2UKICAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2
ZWw6OkVycm9yLCBTdHJpbmcoIkRlcHJlY2F0ZWQgYXR0ZW1wdCB0byBhY2Nlc3MgcHJvcGVydHkg
J2ltcGxlbWVudHNOb2RlJyBvbiBhIG5vbi1UZXN0SW50ZXJmYWNlIG9iamVjdC4iKSk7CiAgICAg
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAgICB9
Ci0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4g
dGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIlRo
ZSAiLCAiVGVzdEludGVyZmFjZSIsICIuIiwgImltcGxlbWVudHNOb2RlIiwgIiBnZXR0ZXIgY2Fu
IG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RJbnRlcmZhY2UiKSk7CiAgICAg
fQogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBUZXN0SW50ZXJmYWNlJiBpbXBsID0gY2Fz
dGVkVGhpcy0+aW1wbCgpOwpAQCAtNDEyLDcgKzQxMiw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVz
dEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjEoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xv
dEJhCiAgICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5hZGRDb25zb2xlTWVzc2Fn
ZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgU3RyaW5nKCJEZXByZWNh
dGVkIGF0dGVtcHQgdG8gYWNjZXNzIHByb3BlcnR5ICdzdXBwbGVtZW50YWxTdHIxJyBvbiBhIG5v
bi1UZXN0SW50ZXJmYWNlIG9iamVjdC4iKSk7CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBt
YWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIlRoZSAiLCAiVGVzdEludGVyZmFjZSIsICIu
IiwgInN1cHBsZW1lbnRhbFN0cjEiLCAiIGdldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3Rh
bmNlcyBvZiAiLCAiVGVzdEludGVyZmFjZSIpKTsKICAgICB9CiAgICAgVU5VU0VEX1BBUkFNKGV4
ZWMpOwogICAgIFRlc3RJbnRlcmZhY2UmIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CkBAIC00
MzMsNyArNDMzLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFs
U3RyMihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmEKICAgICAgICAgICAgIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBN
ZXNzYWdlTGV2ZWw6OkVycm9yLCBTdHJpbmcoIkRlcHJlY2F0ZWQgYXR0ZW1wdCB0byBhY2Nlc3Mg
cHJvcGVydHkgJ3N1cHBsZW1lbnRhbFN0cjInIG9uIGEgbm9uLVRlc3RJbnRlcmZhY2Ugb2JqZWN0
LiIpKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAg
ICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJv
clN0cmluZygiVGhlICIsICJUZXN0SW50ZXJmYWNlIiwgIi4iLCAic3VwcGxlbWVudGFsU3RyMiIs
ICIgZ2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0SW50ZXJm
YWNlIikpOwogICAgIH0KICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgVGVzdEludGVyZmFj
ZSYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTQ1NCw3ICs0NTQsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIzKEV4ZWNTdGF0ZSogZXhlYywg
SlNPYmplY3QqIHNsb3RCYQogICAgICAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+YWRk
Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIFN0
cmluZygiRGVwcmVjYXRlZCBhdHRlbXB0IHRvIGFjY2VzcyBwcm9wZXJ0eSAnc3VwcGxlbWVudGFs
U3RyMycgb24gYSBub24tVGVzdEludGVyZmFjZSBvYmplY3QuIikpOwogICAgICAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICAgICAgfQotICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBl
RXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJUaGUgIiwgIlRlc3RJ
bnRlcmZhY2UiLCAiLiIsICJzdXBwbGVtZW50YWxTdHIzIiwgIiBnZXR0ZXIgY2FuIG9ubHkgYmUg
dXNlZCBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RJbnRlcmZhY2UiKSk7CiAgICAgfQogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoY2FzdGVkVGhpcy0+c3VwcGxlbWVudGFsU3RyMyhleGVjKSk7
CiB9CkBAIC00NzIsNyArNDcyLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlU3Vw
cGxlbWVudGFsTm9kZShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmEKICAgICAgICAg
ICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3Vy
Y2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBTdHJpbmcoIkRlcHJlY2F0ZWQgYXR0ZW1wdCB0
byBhY2Nlc3MgcHJvcGVydHkgJ3N1cHBsZW1lbnRhbE5vZGUnIG9uIGEgbm9uLVRlc3RJbnRlcmZh
Y2Ugb2JqZWN0LiIpKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhl
Yyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5n
c1R5cGVFcnJvclN0cmluZygiVGhlICIsICJUZXN0SW50ZXJmYWNlIiwgIi4iLCAic3VwcGxlbWVu
dGFsTm9kZSIsICIgZ2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mICIsICJU
ZXN0SW50ZXJmYWNlIikpOwogICAgIH0KICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgVGVz
dEludGVyZmFjZSYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTUzMiw3ICs1MzIsNyBA
QCB2b2lkIHNldEpTVGVzdEludGVyZmFjZUltcGxlbWVudHNTdHIyKEV4ZWNTdGF0ZSogZXhlYywg
SlNPYmplY3QqIC8qIGJhc2VPYmplY3QgKgogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBK
U1Rlc3RJbnRlcmZhY2UqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEludGVyZmFj
ZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3Rl
ZFRoaXMpKSB7Ci0gICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHRocm93
Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJUaGUgIiwg
IlRlc3RJbnRlcmZhY2UiLCAiLiIsICJpbXBsZW1lbnRzU3RyMiIsICIgc2V0dGVyIGNhbiBvbmx5
IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0SW50ZXJmYWNlIikpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogICAgIFRlc3RJbnRlcmZhY2UmIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBs
KCk7CkBAIC01NTEsNyArNTUxLDcgQEAgdm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2VJbXBsZW1lbnRz
U3RyMyhFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWN0ICoKICAgICBVTlVT
RURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0SW50ZXJmYWNlKiBjYXN0ZWRUaGlzID0ganNEeW5h
bWljQ2FzdDxKU1Rlc3RJbnRlcmZhY2UqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAg
ICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewotICAgICAgICB0aHJvd1ZNVHlwZUVycm9y
KGV4ZWMpOworICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5
cGVFcnJvclN0cmluZygiVGhlICIsICJUZXN0SW50ZXJmYWNlIiwgIi4iLCAiaW1wbGVtZW50c1N0
cjMiLCAiIHNldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdElu
dGVyZmFjZSIpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBjYXN0ZWRUaGlzLT5zZXRJ
bXBsZW1lbnRzU3RyMyhleGVjLCB2YWx1ZSk7CkBAIC01NjYsNyArNTY2LDcgQEAgdm9pZCBzZXRK
U1Rlc3RJbnRlcmZhY2VJbXBsZW1lbnRzTm9kZShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAv
KiBiYXNlT2JqZWN0ICoKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0SW50ZXJm
YWNlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RJbnRlcmZhY2UqPihKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewot
ICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICB0aHJvd1ZNVHlwZUVycm9y
KGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiVGhlICIsICJUZXN0SW50ZXJm
YWNlIiwgIi4iLCAiaW1wbGVtZW50c05vZGUiLCAiIHNldHRlciBjYW4gb25seSBiZSB1c2VkIG9u
IGluc3RhbmNlcyBvZiAiLCAiVGVzdEludGVyZmFjZSIpKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KICAgICBUZXN0SW50ZXJmYWNlJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwpAQCAtNTk4
LDcgKzU5OCw3IEBAIHZvaWQgc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMihFeGVj
U3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWN0CiAgICAgVU5VU0VEX1BBUkFNKGV4
ZWMpOwogICAgIEpTVGVzdEludGVyZmFjZSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNU
ZXN0SW50ZXJmYWNlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJ
S0VMWSghY2FzdGVkVGhpcykpIHsKLSAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAg
ICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJp
bmcoIlRoZSAiLCAiVGVzdEludGVyZmFjZSIsICIuIiwgInN1cHBsZW1lbnRhbFN0cjIiLCAiIHNl
dHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdEludGVyZmFjZSIp
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBUZXN0SW50ZXJmYWNlJiBpbXBsID0gY2Fz
dGVkVGhpcy0+aW1wbCgpOwpAQCAtNjE3LDcgKzYxNyw3IEBAIHZvaWQgc2V0SlNUZXN0SW50ZXJm
YWNlU3VwcGxlbWVudGFsU3RyMyhFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2Jq
ZWN0CiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVzdEludGVyZmFjZSogY2FzdGVk
VGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0SW50ZXJmYWNlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRo
aXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKLSAgICAgICAgdGhy
b3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtl
RE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIlRoZSAiLCAiVGVzdEludGVyZmFjZSIsICIuIiwg
InN1cHBsZW1lbnRhbFN0cjMiLCAiIHNldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNl
cyBvZiAiLCAiVGVzdEludGVyZmFjZSIpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBj
YXN0ZWRUaGlzLT5zZXRTdXBwbGVtZW50YWxTdHIzKGV4ZWMsIHZhbHVlKTsKQEAgLTYzMiw3ICs2
MzIsNyBAQCB2b2lkIHNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbE5vZGUoRXhlY1N0YXRl
KiBleGVjLCBKU09iamVjdCogLyogYmFzZU9iamVjdAogICAgIFVOVVNFRF9QQVJBTShleGVjKTsK
ICAgICBKU1Rlc3RJbnRlcmZhY2UqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdElu
dGVyZmFjZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFko
IWNhc3RlZFRoaXMpKSB7Ci0gICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAg
IHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJU
aGUgIiwgIlRlc3RJbnRlcmZhY2UiLCAiLiIsICJzdXBwbGVtZW50YWxOb2RlIiwgIiBzZXR0ZXIg
Y2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RJbnRlcmZhY2UiKSk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAgICAgVGVzdEludGVyZmFjZSYgaW1wbCA9IGNhc3RlZFRo
aXMtPmltcGwoKTsKQEAgLTY1NSw3ICs2NTUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uSW1wbGVtZW50c01ldGhvZDEoRQog
ICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwogICAgIEpTVGVz
dEludGVyZmFjZSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0SW50ZXJmYWNlKj4o
dGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQotICAgICAgICByZXR1
cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJy
b3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIs
ICJUZXN0SW50ZXJmYWNlIiwgIi4iLCAiaW1wbGVtZW50c01ldGhvZDEiLCAiIG9uIGluc3RhbmNl
cyBvZiAiLCAiVGVzdEludGVyZmFjZSIpKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRT
KGNhc3RlZFRoaXMsIEpTVGVzdEludGVyZmFjZTo6aW5mbygpKTsKICAgICBUZXN0SW50ZXJmYWNl
JiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIGltcGwuaW1wbGVtZW50c01ldGhvZDEo
KTsKQEAgLTY3MCw3ICs2NzAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uSW1wbGVtZW50c01ldGhvZDIoRQogICAgIEpTVmFs
dWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdEludGVyZmFj
ZSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0SW50ZXJmYWNlKj4odGhpc1ZhbHVl
KTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQotICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywg
bWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0SW50
ZXJmYWNlIiwgIi4iLCAiaW1wbGVtZW50c01ldGhvZDIiLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAi
VGVzdEludGVyZmFjZSIpKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRo
aXMsIEpTVGVzdEludGVyZmFjZTo6aW5mbygpKTsKICAgICBUZXN0SW50ZXJmYWNlJiBpbXBsID0g
Y2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAyKQpA
QCAtNjk5LDcgKzY5OSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SW50
ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25JbXBsZW1lbnRzTWV0aG9kMyhFCiAgICAgSlNWYWx1ZSB0
aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0SW50ZXJmYWNlKiBj
YXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RJbnRlcmZhY2UqPih0aGlzVmFsdWUpOwog
ICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlw
ZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtl
RE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RJbnRlcmZh
Y2UiLCAiLiIsICJpbXBsZW1lbnRzTWV0aG9kMyIsICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0
SW50ZXJmYWNlIikpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywg
SlNUZXN0SW50ZXJmYWNlOjppbmZvKCkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2Fz
dGVkVGhpcy0+aW1wbGVtZW50c01ldGhvZDMoZXhlYykpOwogfQpAQCAtNzIxLDcgKzcyMSw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVu
Y3Rpb25TdXBwbGVtZW50YWxNZXRob2QxCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5o
b3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0SW50ZXJmYWNlKiBjYXN0ZWRUaGlzID0ganNEeW5h
bWljQ2FzdDxKU1Rlc3RJbnRlcmZhY2UqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSgh
Y2FzdGVkVGhpcykpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAg
ICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJy
b3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RJbnRlcmZhY2UiLCAiLiIsICJzdXBwbGVt
ZW50YWxNZXRob2QxIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RJbnRlcmZhY2UiKSk7CiAg
ICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RJbnRlcmZhY2U6
OmluZm8oKSk7CiAgICAgVGVzdEludGVyZmFjZSYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsK
ICAgICBUZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50YWxNZXRob2QxKCZpbXBsKTsKQEAgLTcz
Niw3ICs3MzYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEludGVyZmFj
ZVByb3RvdHlwZUZ1bmN0aW9uU3VwcGxlbWVudGFsTWV0aG9kMgogICAgIEpTVmFsdWUgdGhpc1Zh
bHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdEludGVyZmFjZSogY2FzdGVk
VGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0SW50ZXJmYWNlKj4odGhpc1ZhbHVlKTsKICAgICBp
ZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJv
cihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJp
bmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0SW50ZXJmYWNlIiwg
Ii4iLCAic3VwcGxlbWVudGFsTWV0aG9kMiIsICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0SW50
ZXJmYWNlIikpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNU
ZXN0SW50ZXJmYWNlOjppbmZvKCkpOwogICAgIFRlc3RJbnRlcmZhY2UmIGltcGwgPSBjYXN0ZWRU
aGlzLT5pbXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDIpCkBAIC03NjUs
NyArNzY1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJbnRlcmZhY2VQ
cm90b3R5cGVGdW5jdGlvblN1cHBsZW1lbnRhbE1ldGhvZDMKICAgICBKU1ZhbHVlIHRoaXNWYWx1
ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKICAgICBKU1Rlc3RJbnRlcmZhY2UqIGNhc3RlZFRo
aXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEludGVyZmFjZSo+KHRoaXNWYWx1ZSk7CiAgICAgaWYg
KFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Io
ZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5k
aW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdEludGVyZmFjZSIsICIu
IiwgInN1cHBsZW1lbnRhbE1ldGhvZDMiLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdEludGVy
ZmFjZSIpKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTVGVz
dEludGVyZmFjZTo6aW5mbygpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNhc3RlZFRo
aXMtPnN1cHBsZW1lbnRhbE1ldGhvZDMoZXhlYykpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCmluZGV4IDA5MTEzYmQ5OTNkMmE5ZWZkM2QyOTRhNWVh
ZGFlOGY3MTk2NmVjYTYuLjUwNzgwNzIxYzZhM2YyMTdlNTNhNmMzOGYyOGE2N2VlZDY1NjkyY2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKQEAgLTE0
MCwxMyArMTQwLDEzIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TWVkaWFR
dWVyeUxpc3RMaXN0ZW5lclByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kCiAgICAgSlNWYWx1ZSB0aGlz
VmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0TWVkaWFRdWVyeUxpc3RM
aXN0ZW5lciogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TWVkaWFRdWVyeUxpc3RM
aXN0ZW5lcio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKLSAg
ICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJv
d1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9u
bHkgY2FsbCAiLCAiVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIiLCAiLiIsICJtZXRob2QiLCAi
IG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIiKSk7CiAgICAg
QVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyOjppbmZvKCkpOwogICAgIFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyJiBpbXBs
ID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAx
KQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3Vt
ZW50c0Vycm9yKGV4ZWMpKTsKICAgICBpZiAoIWV4ZWMtPmFyZ3VtZW50KDApLmlzRnVuY3Rpb24o
KSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygi
QXJndW1lbnQgIiwgIjEiLCAiICgnIiwgImxpc3RlbmVyIiwgIicpIHRvICIsICJUZXN0TWVkaWFR
dWVyeUxpc3RMaXN0ZW5lciIsICIuIiwgIm1ldGhvZCIsICIgbXVzdCBiZSBhIGZ1bmN0aW9uIikp
OwogICAgIFJlZlB0cjxNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyPiBsaXN0ZW5lciA9IEpTTWVkaWFR
dWVyeUxpc3RMaXN0ZW5lcjo6Y3JlYXRlKGFzT2JqZWN0KGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50
KDApKSwgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCkpOwogICAgIGltcGwubWV0aG9kKGxpc3Rl
bmVyKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNw
cAppbmRleCA3MWY0YmVmZjI5MWY0YjgwMjFiYjgxMWM1MDQ5MzI4Yzc1ZmQ5YWJmLi4xYmYzM2E0
MWU3Njk0NGYwOTAxZDhjZDVjZDNlMTc3ZmUzNTIzNDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcApAQCAtMTUzLDcg
KzE1Myw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNUZXN0T2JqQ29uc3RydWN0
b3I6OmNvbnN0cnVjdEpTVGVzdE9iaihFeGVjU3RhdGUqCiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50
Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90
RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwogICAgIGlmICghZXhlYy0+YXJndW1lbnQoMCku
aXNGdW5jdGlvbigpKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAg
ICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVy
cm9yU3RyaW5nKCJBcmd1bWVudCAiLCAiMSIsICIgKCciLCAidGVzdENhbGxiYWNrIiwgIicpIHRv
ICIsICJ0aGUgIiwgIlRlc3RPYmoiLCAiIGNvbnN0cnVjdG9yIiwgIiBtdXN0IGJlIGEgZnVuY3Rp
b24iKSk7CiAgICAgUmVmUHRyPFRlc3RDYWxsYmFjaz4gdGVzdENhbGxiYWNrID0gSlNUZXN0Q2Fs
bGJhY2s6OmNyZWF0ZShhc09iamVjdChleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSksIGNhc3Rl
ZFRoaXMtPmdsb2JhbE9iamVjdCgpKTsKICAgICBSZWZQdHI8VGVzdE9iaj4gb2JqZWN0ID0gVGVz
dE9iajo6Y3JlYXRlKHRlc3RDYWxsYmFjayk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShh
c09iamVjdCh0b0pTKGV4ZWMsIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBvYmplY3QuZ2V0
KCkpKSk7CkBAIC00MDMsNyArNDAzLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVhZE9u
bHlMb25nQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW4KICAgICAg
ICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VT
b3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBTdHJpbmcoIkRlcHJlY2F0ZWQgYXR0ZW1w
dCB0byBhY2Nlc3MgcHJvcGVydHkgJ3JlYWRPbmx5TG9uZ0F0dHInIG9uIGEgbm9uLVRlc3RPYmog
b2JqZWN0LiIpKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7
CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5
cGVFcnJvclN0cmluZygiVGhlICIsICJUZXN0T2JqIiwgIi4iLCAicmVhZE9ubHlMb25nQXR0ciIs
ICIgZ2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikp
OwogICAgIH0KICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNh
c3RlZFRoaXMtPmltcGwoKTsKQEAgLTQyMiw3ICs0MjIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpSZWFkT25seVN0cmluZ0F0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEJh
c2UsCiAgICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5hZGRDb25zb2xlTWVzc2Fn
ZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgU3RyaW5nKCJEZXByZWNh
dGVkIGF0dGVtcHQgdG8gYWNjZXNzIHByb3BlcnR5ICdyZWFkT25seVN0cmluZ0F0dHInIG9uIGEg
bm9uLVRlc3RPYmogb2JqZWN0LiIpKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBl
RXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VE
T01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiVGhlICIsICJUZXN0T2JqIiwgIi4iLCAicmVhZE9u
bHlTdHJpbmdBdHRyIiwgIiBnZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2Yg
IiwgIlRlc3RPYmoiKSk7CiAgICAgfQogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBUZXN0
T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwpAQCAtNDQxLDcgKzQ0MSw3IEBAIEVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9ialJlYWRPbmx5VGVzdE9iakF0dHIoRXhlY1N0YXRlKiBleGVjLCBK
U09iamVjdCogc2xvdEJhc2UsCiAgICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5h
ZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwg
U3RyaW5nKCJEZXByZWNhdGVkIGF0dGVtcHQgdG8gYWNjZXNzIHByb3BlcnR5ICdyZWFkT25seVRl
c3RPYmpBdHRyJyBvbiBhIG5vbi1UZXN0T2JqIG9iamVjdC4iKSk7CiAgICAgICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAgICB9Ci0gICAgICAgIHJl
dHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVF
cnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIlRoZSAiLCAiVGVzdE9i
aiIsICIuIiwgInJlYWRPbmx5VGVzdE9iakF0dHIiLCAiIGdldHRlciBjYW4gb25seSBiZSB1c2Vk
IG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKICAgICB9CiAgICAgVU5VU0VEX1BBUkFN
KGV4ZWMpOwogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CkBAIC00ODAs
NyArNDgwLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0b3JUZXN0U3ViT2Jq
KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNsb3RCYXMKICAgICAgICAgICAgIHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNz
YWdlTGV2ZWw6OkVycm9yLCBTdHJpbmcoIkRlcHJlY2F0ZWQgYXR0ZW1wdCB0byBhY2Nlc3MgcHJv
cGVydHkgJ1Rlc3RTdWJPYmonIG9uIGEgbm9uLVRlc3RPYmogb2JqZWN0LiIpKTsKICAgICAgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgIH0KLSAg
ICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJv
d1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiVGhlICIs
ICJUZXN0T2JqIiwgIi4iLCAiVGVzdFN1Yk9iaiIsICIgZ2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQg
b24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwogICAgIH0KICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKEpTVGVzdFN1Yk9iajo6Z2V0Q29uc3RydWN0b3IoZXhlYy0+dm0oKSwgY2FzdGVk
VGhpcy0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KQEAgLTQ5Niw3ICs0OTYsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpUZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yKEV4ZWNT
dGF0ZSogZXhlYywgSgogICAgICAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+YWRkQ29u
c29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIFN0cmlu
ZygiRGVwcmVjYXRlZCBhdHRlbXB0IHRvIGFjY2VzcyBwcm9wZXJ0eSAnVGVzdFN1Yk9iakVuYWJs
ZWRCeVNldHRpbmcnIG9uIGEgbm9uLVRlc3RPYmogb2JqZWN0LiIpKTsKICAgICAgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgIH0KLSAgICAgICAg
cmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlw
ZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiVGhlICIsICJUZXN0
T2JqIiwgIi4iLCAiVGVzdFN1Yk9iakVuYWJsZWRCeVNldHRpbmciLCAiIGdldHRlciBjYW4gb25s
eSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKICAgICB9CiAgICAgaWYg
KCFjYXN0ZWRUaGlzLT5pbXBsKCkuZnJhbWUoKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKQEAgLTUxNyw3ICs1MTcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpFbnVtQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5j
b2RlZEpTVgogICAgICAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+YWRkQ29uc29sZU1l
c3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIFN0cmluZygiRGVw
cmVjYXRlZCBhdHRlbXB0IHRvIGFjY2VzcyBwcm9wZXJ0eSAnZW51bUF0dHInIG9uIGEgbm9uLVRl
c3RPYmogb2JqZWN0LiIpKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Io
ZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5k
aW5nc1R5cGVFcnJvclN0cmluZygiVGhlICIsICJUZXN0T2JqIiwgIi4iLCAiZW51bUF0dHIiLCAi
IGdldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsK
ICAgICB9CiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0
ZWRUaGlzLT5pbXBsKCk7CkBAIC01MzYsNyArNTM2LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqQnl0ZUF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRK
U1YKICAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZENvbnNvbGVNZXNzYWdl
KE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBTdHJpbmcoIkRlcHJlY2F0
ZWQgYXR0ZW1wdCB0byBhY2Nlc3MgcHJvcGVydHkgJ2J5dGVBdHRyJyBvbiBhIG5vbi1UZXN0T2Jq
IG9iamVjdC4iKSk7CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMp
OworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NU
eXBlRXJyb3JTdHJpbmcoIlRoZSAiLCAiVGVzdE9iaiIsICIuIiwgImJ5dGVBdHRyIiwgIiBnZXR0
ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CiAgICAg
fQogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhp
cy0+aW1wbCgpOwpAQCAtNTU1LDcgKzU1NSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak9j
dGV0QXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTCiAg
ICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5hZGRDb25zb2xlTWVzc2FnZShNZXNz
YWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgU3RyaW5nKCJEZXByZWNhdGVkIGF0
dGVtcHQgdG8gYWNjZXNzIHByb3BlcnR5ICdvY3RldEF0dHInIG9uIGEgbm9uLVRlc3RPYmogb2Jq
ZWN0LiIpKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7Cisg
ICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVF
cnJvclN0cmluZygiVGhlICIsICJUZXN0T2JqIiwgIi4iLCAib2N0ZXRBdHRyIiwgIiBnZXR0ZXIg
Y2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CiAgICAgfQog
ICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+
aW1wbCgpOwpAQCAtNTc0LDcgKzU3NCw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialNob3J0
QXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTCiAgICAg
ICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdl
U291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgU3RyaW5nKCJEZXByZWNhdGVkIGF0dGVt
cHQgdG8gYWNjZXNzIHByb3BlcnR5ICdzaG9ydEF0dHInIG9uIGEgbm9uLVRlc3RPYmogb2JqZWN0
LiIpKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAg
ICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJv
clN0cmluZygiVGhlICIsICJUZXN0T2JqIiwgIi4iLCAic2hvcnRBdHRyIiwgIiBnZXR0ZXIgY2Fu
IG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CiAgICAgfQogICAg
IFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1w
bCgpOwpAQCAtNTkzLDcgKzU5Myw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialVuc2lnbmVk
U2hvcnRBdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNsb3RCYXNlLCBFCiAgICAgICAg
ICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291
cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgU3RyaW5nKCJEZXByZWNhdGVkIGF0dGVtcHQg
dG8gYWNjZXNzIHByb3BlcnR5ICd1bnNpZ25lZFNob3J0QXR0cicgb24gYSBub24tVGVzdE9iaiBv
YmplY3QuIikpOwogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsK
KyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlw
ZUVycm9yU3RyaW5nKCJUaGUgIiwgIlRlc3RPYmoiLCAiLiIsICJ1bnNpZ25lZFNob3J0QXR0ciIs
ICIgZ2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikp
OwogICAgIH0KICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNh
c3RlZFRoaXMtPmltcGwoKTsKQEAgLTYxMiw3ICs2MTIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpMb25nQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2Rl
ZEpTVgogICAgICAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+YWRkQ29uc29sZU1lc3Nh
Z2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIFN0cmluZygiRGVwcmVj
YXRlZCBhdHRlbXB0IHRvIGFjY2VzcyBwcm9wZXJ0eSAnbG9uZ0F0dHInIG9uIGEgbm9uLVRlc3RP
Ymogb2JqZWN0LiIpKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhl
Yyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5n
c1R5cGVFcnJvclN0cmluZygiVGhlICIsICJUZXN0T2JqIiwgIi4iLCAibG9uZ0F0dHIiLCAiIGdl
dHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKICAg
ICB9CiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRU
aGlzLT5pbXBsKCk7CkBAIC02MzEsNyArNjMxLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
TG9uZ0xvbmdBdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGUK
ICAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZENvbnNvbGVNZXNzYWdlKE1l
c3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBTdHJpbmcoIkRlcHJlY2F0ZWQg
YXR0ZW1wdCB0byBhY2Nlc3MgcHJvcGVydHkgJ2xvbmdMb25nQXR0cicgb24gYSBub24tVGVzdE9i
aiBvYmplY3QuIikpOwogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVj
KTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdz
VHlwZUVycm9yU3RyaW5nKCJUaGUgIiwgIlRlc3RPYmoiLCAiLiIsICJsb25nTG9uZ0F0dHIiLCAi
IGdldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsK
ICAgICB9CiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0
ZWRUaGlzLT5pbXBsKCk7CkBAIC02NTAsNyArNjUwLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqVW5zaWduZWRMb25nTG9uZ0F0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEJh
c2UKICAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZENvbnNvbGVNZXNzYWdl
KE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBTdHJpbmcoIkRlcHJlY2F0
ZWQgYXR0ZW1wdCB0byBhY2Nlc3MgcHJvcGVydHkgJ3Vuc2lnbmVkTG9uZ0xvbmdBdHRyJyBvbiBh
IG5vbi1UZXN0T2JqIG9iamVjdC4iKSk7CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlw
ZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtl
RE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIlRoZSAiLCAiVGVzdE9iaiIsICIuIiwgInVuc2ln
bmVkTG9uZ0xvbmdBdHRyIiwgIiBnZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMg
b2YgIiwgIlRlc3RPYmoiKSk7CiAgICAgfQogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBU
ZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwpAQCAtNjY5LDcgKzY2OSw3IEBAIEVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmluZ0F0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVj
dCogc2xvdEJhc2UsIEVuY29kZWRKCiAgICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0
LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJv
ciwgU3RyaW5nKCJEZXByZWNhdGVkIGF0dGVtcHQgdG8gYWNjZXNzIHByb3BlcnR5ICdzdHJpbmdB
dHRyJyBvbiBhIG5vbi1UZXN0T2JqIG9iamVjdC4iKSk7CiAgICAgICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0
aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihl
eGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIlRoZSAiLCAiVGVzdE9iaiIsICIu
IiwgInN0cmluZ0F0dHIiLCAiIGdldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBv
ZiAiLCAiVGVzdE9iaiIpKTsKICAgICB9CiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIFRl
c3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CkBAIC02ODgsNyArNjg4LDcgQEAgRW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqVGVzdE9iakF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVj
dCogc2xvdEJhc2UsIEVuY29kZWQKICAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQt
PmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9y
LCBTdHJpbmcoIkRlcHJlY2F0ZWQgYXR0ZW1wdCB0byBhY2Nlc3MgcHJvcGVydHkgJ3Rlc3RPYmpB
dHRyJyBvbiBhIG5vbi1UZXN0T2JqIG9iamVjdC4iKSk7CiAgICAgICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0
aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihl
eGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIlRoZSAiLCAiVGVzdE9iaiIsICIu
IiwgInRlc3RPYmpBdHRyIiwgIiBnZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMg
b2YgIiwgIlRlc3RPYmoiKSk7CiAgICAgfQogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBU
ZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwpAQCAtNzA3LDcgKzcwNyw3IEBAIEVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9ialhNTE9iakF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVj
dCogc2xvdEJhc2UsIEVuY29kZWRKCiAgICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0
LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJv
ciwgU3RyaW5nKCJEZXByZWNhdGVkIGF0dGVtcHQgdG8gYWNjZXNzIHByb3BlcnR5ICdYTUxPYmpB
dHRyJyBvbiBhIG5vbi1UZXN0T2JqIG9iamVjdC4iKSk7CiAgICAgICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0
aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihl
eGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIlRoZSAiLCAiVGVzdE9iaiIsICIu
IiwgIlhNTE9iakF0dHIiLCAiIGdldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBv
ZiAiLCAiVGVzdE9iaiIpKTsKICAgICB9CiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIFRl
c3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CkBAIC03MjYsNyArNzI2LDcgQEAgRW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqQ3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNs
b3RCYXNlLCBFbmNvZGVkSlNWYWwKICAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQt
PmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9y
LCBTdHJpbmcoIkRlcHJlY2F0ZWQgYXR0ZW1wdCB0byBhY2Nlc3MgcHJvcGVydHkgJ2NyZWF0ZScg
b24gYSBub24tVGVzdE9iaiBvYmplY3QuIikpOwogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywg
bWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJUaGUgIiwgIlRlc3RPYmoiLCAiLiIsICJj
cmVhdGUiLCAiIGdldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVz
dE9iaiIpKTsKICAgICB9CiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIFRlc3RPYmomIGlt
cGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CkBAIC03NDUsNyArNzQ1LDcgQEAgRW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0
KiBzbG90QmFzZSwKICAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZENvbnNv
bGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBTdHJpbmco
IkRlcHJlY2F0ZWQgYXR0ZW1wdCB0byBhY2Nlc3MgcHJvcGVydHkgJ3JlZmxlY3RlZFN0cmluZ0F0
dHInIG9uIGEgbm9uLVRlc3RPYmogb2JqZWN0LiIpKTsKICAgICAgICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiVGhlICIsICJUZXN0T2JqIiwgIi4i
LCAicmVmbGVjdGVkU3RyaW5nQXR0ciIsICIgZ2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5z
dGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwogICAgIH0KICAgICBVTlVTRURfUEFSQU0oZXhlYyk7
CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTc2NCw3ICs3NjQs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRJbnRlZ3JhbEF0dHIoRXhlY1N0
YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEJhcwogICAgICAgICAgICAgc2NyaXB0RXhlY3V0aW9u
Q29udGV4dC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZl
bDo6RXJyb3IsIFN0cmluZygiRGVwcmVjYXRlZCBhdHRlbXB0IHRvIGFjY2VzcyBwcm9wZXJ0eSAn
cmVmbGVjdGVkSW50ZWdyYWxBdHRyJyBvbiBhIG5vbi1UZXN0T2JqIG9iamVjdC4iKSk7CiAgICAg
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAgICB9
Ci0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4g
dGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIlRo
ZSAiLCAiVGVzdE9iaiIsICIuIiwgInJlZmxlY3RlZEludGVncmFsQXR0ciIsICIgZ2V0dGVyIGNh
biBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwogICAgIH0KICAg
ICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmlt
cGwoKTsKQEAgLTc4Myw3ICs3ODMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0
ZWRVbnNpZ25lZEludGVncmFsQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KgogICAgICAg
ICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNv
dXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIFN0cmluZygiRGVwcmVjYXRlZCBhdHRlbXB0
IHRvIGFjY2VzcyBwcm9wZXJ0eSAncmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHInIG9uIGEg
bm9uLVRlc3RPYmogb2JqZWN0LiIpKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBl
RXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VE
T01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiVGhlICIsICJUZXN0T2JqIiwgIi4iLCAicmVmbGVj
dGVkVW5zaWduZWRJbnRlZ3JhbEF0dHIiLCAiIGdldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGlu
c3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKICAgICB9CiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMp
OwogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CkBAIC04MDIsNyArODAy
LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkQm9vbGVhbkF0dHIoRXhlY1N0
YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEJhc2UKICAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2
ZWw6OkVycm9yLCBTdHJpbmcoIkRlcHJlY2F0ZWQgYXR0ZW1wdCB0byBhY2Nlc3MgcHJvcGVydHkg
J3JlZmxlY3RlZEJvb2xlYW5BdHRyJyBvbiBhIG5vbi1UZXN0T2JqIG9iamVjdC4iKSk7CiAgICAg
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAgICB9
Ci0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4g
dGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIlRo
ZSAiLCAiVGVzdE9iaiIsICIuIiwgInJlZmxlY3RlZEJvb2xlYW5BdHRyIiwgIiBnZXR0ZXIgY2Fu
IG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CiAgICAgfQogICAg
IFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1w
bCgpOwpAQCAtODIxLDcgKzgyMSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3Rl
ZFVSTEF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEJhc2UsIEVuCiAgICAgICAg
ICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291
cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgU3RyaW5nKCJEZXByZWNhdGVkIGF0dGVtcHQg
dG8gYWNjZXNzIHByb3BlcnR5ICdyZWZsZWN0ZWRVUkxBdHRyJyBvbiBhIG5vbi1UZXN0T2JqIG9i
amVjdC4iKSk7CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwor
ICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBl
RXJyb3JTdHJpbmcoIlRoZSAiLCAiVGVzdE9iaiIsICIuIiwgInJlZmxlY3RlZFVSTEF0dHIiLCAi
IGdldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsK
ICAgICB9CiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0
ZWRUaGlzLT5pbXBsKCk7CkBAIC04NDAsNyArODQwLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqUmVmbGVjdGVkU3RyaW5nQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFz
ZSwKICAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZENvbnNvbGVNZXNzYWdl
KE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBTdHJpbmcoIkRlcHJlY2F0
ZWQgYXR0ZW1wdCB0byBhY2Nlc3MgcHJvcGVydHkgJ3JlZmxlY3RlZFN0cmluZ0F0dHInIG9uIGEg
bm9uLVRlc3RPYmogb2JqZWN0LiIpKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBl
RXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VE
T01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiVGhlICIsICJUZXN0T2JqIiwgIi4iLCAicmVmbGVj
dGVkU3RyaW5nQXR0ciIsICIgZ2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9m
ICIsICJUZXN0T2JqIikpOwogICAgIH0KICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgVGVz
dE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTg1OSw3ICs4NTksNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHIoRXhlY1N0YXRl
KiBleGVjLCBKU09iamVjdCogcwogICAgICAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+
YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3Is
IFN0cmluZygiRGVwcmVjYXRlZCBhdHRlbXB0IHRvIGFjY2VzcyBwcm9wZXJ0eSAncmVmbGVjdGVk
Q3VzdG9tSW50ZWdyYWxBdHRyJyBvbiBhIG5vbi1UZXN0T2JqIG9iamVjdC4iKSk7CiAgICAgICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAgICB9Ci0g
ICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhy
b3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIlRoZSAi
LCAiVGVzdE9iaiIsICIuIiwgInJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0ciIsICIgZ2V0dGVy
IGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwogICAgIH0K
ICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMt
PmltcGwoKTsKQEAgLTg3OCw3ICs4NzgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZs
ZWN0ZWRDdXN0b21Cb29sZWFuQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbAogICAg
ICAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIFN0cmluZygiRGVwcmVjYXRlZCBhdHRl
bXB0IHRvIGFjY2VzcyBwcm9wZXJ0eSAncmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHInIG9uIGEg
bm9uLVRlc3RPYmogb2JqZWN0LiIpKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBl
RXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VE
T01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiVGhlICIsICJUZXN0T2JqIiwgIi4iLCAicmVmbGVj
dGVkQ3VzdG9tQm9vbGVhbkF0dHIiLCAiIGdldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3Rh
bmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKICAgICB9CiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwog
ICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CkBAIC04OTcsNyArODk3LDcg
QEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tVVJMQXR0cihFeGVjU3Rh
dGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmEKICAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6
OkVycm9yLCBTdHJpbmcoIkRlcHJlY2F0ZWQgYXR0ZW1wdCB0byBhY2Nlc3MgcHJvcGVydHkgJ3Jl
ZmxlY3RlZEN1c3RvbVVSTEF0dHInIG9uIGEgbm9uLVRlc3RPYmogb2JqZWN0LiIpKTsKICAgICAg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgIH0K
LSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0
aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiVGhl
ICIsICJUZXN0T2JqIiwgIi4iLCAicmVmbGVjdGVkQ3VzdG9tVVJMQXR0ciIsICIgZ2V0dGVyIGNh
biBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwogICAgIH0KICAg
ICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmlt
cGwoKTsKQEAgLTkxNiw3ICs5MTYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpUeXBlZEFy
cmF5QXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jbwogICAgICAg
ICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNv
dXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIFN0cmluZygiRGVwcmVjYXRlZCBhdHRlbXB0
IHRvIGFjY2VzcyBwcm9wZXJ0eSAndHlwZWRBcnJheUF0dHInIG9uIGEgbm9uLVRlc3RPYmogb2Jq
ZWN0LiIpKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7Cisg
ICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVF
cnJvclN0cmluZygiVGhlICIsICJUZXN0T2JqIiwgIi4iLCAidHlwZWRBcnJheUF0dHIiLCAiIGdl
dHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKICAg
ICB9CiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRU
aGlzLT5pbXBsKCk7CkBAIC05MzUsNyArOTM1LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEIK
ICAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZENvbnNvbGVNZXNzYWdlKE1l
c3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBTdHJpbmcoIkRlcHJlY2F0ZWQg
YXR0ZW1wdCB0byBhY2Nlc3MgcHJvcGVydHkgJ2F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uJyBvbiBh
IG5vbi1UZXN0T2JqIG9iamVjdC4iKSk7CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlw
ZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtl
RE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIlRoZSAiLCAiVGVzdE9iaiIsICIuIiwgImF0dHJX
aXRoR2V0dGVyRXhjZXB0aW9uIiwgIiBnZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5j
ZXMgb2YgIiwgIlRlc3RPYmoiKSk7CiAgICAgfQogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwog
ICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CkBAIC05NTUsNyArOTU1LDcg
QEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24oRXhlY1N0
YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEIKICAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6
OkVycm9yLCBTdHJpbmcoIkRlcHJlY2F0ZWQgYXR0ZW1wdCB0byBhY2Nlc3MgcHJvcGVydHkgJ2F0
dHJXaXRoU2V0dGVyRXhjZXB0aW9uJyBvbiBhIG5vbi1UZXN0T2JqIG9iamVjdC4iKSk7CiAgICAg
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAgICB9
Ci0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4g
dGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIlRo
ZSAiLCAiVGVzdE9iaiIsICIuIiwgImF0dHJXaXRoU2V0dGVyRXhjZXB0aW9uIiwgIiBnZXR0ZXIg
Y2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CiAgICAgfQog
ICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+
aW1wbCgpOwpAQCAtOTc0LDcgKzk3NCw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmlu
Z0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqCiAgICAg
ICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdl
U291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgU3RyaW5nKCJEZXByZWNhdGVkIGF0dGVt
cHQgdG8gYWNjZXNzIHByb3BlcnR5ICdzdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbicgb24g
YSBub24tVGVzdE9iaiBvYmplY3QuIikpOwogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5
cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFr
ZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJUaGUgIiwgIlRlc3RPYmoiLCAiLiIsICJzdHJp
bmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbiIsICIgZ2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24g
aW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwogICAgIH0KICAgICBFeGNlcHRpb25Db2RlIGVj
ID0gMDsKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwpAQCAtOTk0LDcg
Kzk5NCw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmluZ0F0dHJXaXRoU2V0dGVyRXhj
ZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqCiAgICAgICAgICAgICBzY3JpcHRFeGVj
dXRpb25Db250ZXh0LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2Fn
ZUxldmVsOjpFcnJvciwgU3RyaW5nKCJEZXByZWNhdGVkIGF0dGVtcHQgdG8gYWNjZXNzIHByb3Bl
cnR5ICdzdHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbicgb24gYSBub24tVGVzdE9iaiBvYmpl
Y3QuIikpOwogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAg
ICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVy
cm9yU3RyaW5nKCJUaGUgIiwgIlRlc3RPYmoiLCAiLiIsICJzdHJpbmdBdHRyV2l0aFNldHRlckV4
Y2VwdGlvbiIsICIgZ2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mICIsICJU
ZXN0T2JqIikpOwogICAgIH0KICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgVGVzdE9iaiYg
aW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTEwMTMsNyArMTAxMyw3IEBAIEVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9iakN1c3RvbUF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xv
dEJhc2UsIEVuY29kZWRKCiAgICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5hZGRD
b25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgU3Ry
aW5nKCJEZXByZWNhdGVkIGF0dGVtcHQgdG8gYWNjZXNzIHByb3BlcnR5ICdjdXN0b21BdHRyJyBv
biBhIG5vbi1UZXN0T2JqIG9iamVjdC4iKSk7CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBt
YWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIlRoZSAiLCAiVGVzdE9iaiIsICIuIiwgImN1
c3RvbUF0dHIiLCAiIGdldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiAiLCAi
VGVzdE9iaiIpKTsKICAgICB9CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjYXN0ZWRUaGlz
LT5jdXN0b21BdHRyKGV4ZWMpKTsKIH0KQEAgLTEwMjksNyArMTAyOSw3IEBAIEVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9ialdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZShFeGVjU3RhdGUqIGV4ZWMsIEpT
T2JqZWN0KiBzbG90CiAgICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5hZGRDb25z
b2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgU3RyaW5n
KCJEZXByZWNhdGVkIGF0dGVtcHQgdG8gYWNjZXNzIHByb3BlcnR5ICd3aXRoU2NyaXB0U3RhdGVB
dHRyaWJ1dGUnIG9uIGEgbm9uLVRlc3RPYmogb2JqZWN0LiIpKTsKICAgICAgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0
dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVy
cm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiVGhlICIsICJUZXN0T2Jq
IiwgIi4iLCAid2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlIiwgIiBnZXR0ZXIgY2FuIG9ubHkgYmUg
dXNlZCBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CiAgICAgfQogICAgIFRlc3RPYmom
IGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBqc051bWJl
cihpbXBsLndpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZShleGVjKSk7CkBAIC0xMDQ3LDcgKzEwNDcs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0
dHJpYnV0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTTwogICAgICAgICAgICAgc2NyaXB0RXhlY3V0aW9u
Q29udGV4dC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZl
bDo6RXJyb3IsIFN0cmluZygiRGVwcmVjYXRlZCBhdHRlbXB0IHRvIGFjY2VzcyBwcm9wZXJ0eSAn
d2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGUnIG9uIGEgbm9uLVRlc3RPYmogb2Jq
ZWN0LiIpKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7Cisg
ICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVF
cnJvclN0cmluZygiVGhlICIsICJUZXN0T2JqIiwgIi4iLCAid2l0aFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRBdHRyaWJ1dGUiLCAiIGdldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBv
ZiAiLCAiVGVzdE9iaiIpKTsKICAgICB9CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2Ny
aXB0Q29udGV4dCA9IGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMtPmxleGljYWxHbG9i
YWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICBpZiAoIXNjcmlwdENv
bnRleHQpCkBAIC0xMDY4LDcgKzEwNjgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpXaXRo
U2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdAogICAg
ICAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIFN0cmluZygiRGVwcmVjYXRlZCBhdHRl
bXB0IHRvIGFjY2VzcyBwcm9wZXJ0eSAnd2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzJyBv
biBhIG5vbi1UZXN0T2JqIG9iamVjdC4iKSk7CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBt
YWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIlRoZSAiLCAiVGVzdE9iaiIsICIuIiwgIndp
dGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyIsICIgZ2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQg
b24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwogICAgIH0KICAgICBFeGNlcHRpb25Db2Rl
IGVjID0gMDsKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwpAQCAtMTA4
OCw3ICsxMDg4LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMoRXhlY1N0YXRlKiBleGUKICAgICAgICAgICAgIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBN
ZXNzYWdlTGV2ZWw6OkVycm9yLCBTdHJpbmcoIkRlcHJlY2F0ZWQgYXR0ZW1wdCB0byBhY2Nlc3Mg
cHJvcGVydHkgJ3dpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzJyBvbiBh
IG5vbi1UZXN0T2JqIG9iamVjdC4iKSk7CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlw
ZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtl
RE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIlRoZSAiLCAiVGVzdE9iaiIsICIuIiwgIndpdGhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzIiwgIiBnZXR0ZXIgY2FuIG9ubHkg
YmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CiAgICAgfQogICAgIEV4Y2Vw
dGlvbkNvZGUgZWMgPSAwOwogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdENvbnRl
eHQgPSBqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0
KCkpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CkBAIC0xMTExLDcgKzExMTEsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0
YXRlQXR0cmlidXRlKEV4ZWNTdAogICAgICAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+
YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3Is
IFN0cmluZygiRGVwcmVjYXRlZCBhdHRlbXB0IHRvIGFjY2VzcyBwcm9wZXJ0eSAnd2l0aFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZScgb24gYSBub24tVGVzdE9i
aiBvYmplY3QuIikpOwogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVj
KTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdz
VHlwZUVycm9yU3RyaW5nKCJUaGUgIiwgIlRlc3RPYmoiLCAiLiIsICJ3aXRoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlIiwgIiBnZXR0ZXIgY2FuIG9ubHkgYmUg
dXNlZCBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CiAgICAgfQogICAgIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIHNjcmlwdENvbnRleHQgPSBqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3Qq
PihleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7
CiAgICAgaWYgKCFzY3JpcHRDb250ZXh0KQpAQCAtMTEzMiw3ICsxMTMyLDcgQEAgRW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0
dHJpYnV0ZVJhaXNlcygKICAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZENv
bnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBTdHJp
bmcoIkRlcHJlY2F0ZWQgYXR0ZW1wdCB0byBhY2Nlc3MgcHJvcGVydHkgJ3dpdGhTY3JpcHRFeGVj
dXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMnIG9uIGEgbm9uLVRlc3RP
Ymogb2JqZWN0LiIpKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhl
Yyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5n
c1R5cGVFcnJvclN0cmluZygiVGhlICIsICJUZXN0T2JqIiwgIi4iLCAid2l0aFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyIsICIgZ2V0dGVyIGNhbiBv
bmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwogICAgIH0KICAgICBF
eGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRD
b250ZXh0ID0ganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhlYy0+bGV4aWNhbEdsb2JhbE9i
amVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwpAQCAtMTE1NSw3ICsxMTU1LDcgQEAg
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3Jp
cHRTdGF0ZVdpdGhTcGFjZXNBdHRyaWIKICAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVy
cm9yLCBTdHJpbmcoIkRlcHJlY2F0ZWQgYXR0ZW1wdCB0byBhY2Nlc3MgcHJvcGVydHkgJ3dpdGhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVXaXRoU3BhY2VzQXR0cmlidXRlJyBv
biBhIG5vbi1UZXN0T2JqIG9iamVjdC4iKSk7CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBt
YWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIlRoZSAiLCAiVGVzdE9iaiIsICIuIiwgIndp
dGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVXaXRoU3BhY2VzQXR0cmlidXRl
IiwgIiBnZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoi
KSk7CiAgICAgfQogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdENvbnRleHQgPSBq
c0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT5z
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiAgICAgaWYgKCFzY3JpcHRDb250ZXh0KQpAQCAtMTE3
Niw3ICsxMTc2LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqV2l0aFNjcmlwdEFyZ3VtZW50
c0FuZENhbGxTdGFja0F0dHJpYnV0ZShFeGVjU3RhdGUqIGV4ZWMKICAgICAgICAgICAgIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBN
ZXNzYWdlTGV2ZWw6OkVycm9yLCBTdHJpbmcoIkRlcHJlY2F0ZWQgYXR0ZW1wdCB0byBhY2Nlc3Mg
cHJvcGVydHkgJ3dpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2tBdHRyaWJ1dGUnIG9uIGEg
bm9uLVRlc3RPYmogb2JqZWN0LiIpKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBl
RXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VE
T01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiVGhlICIsICJUZXN0T2JqIiwgIi4iLCAid2l0aFNj
cmlwdEFyZ3VtZW50c0FuZENhbGxTdGFja0F0dHJpYnV0ZSIsICIgZ2V0dGVyIGNhbiBvbmx5IGJl
IHVzZWQgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwogICAgIH0KICAgICBUZXN0T2Jq
JiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0gdG9KUyhl
eGVjLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgV1RGOjpnZXRQdHIoaW1wbC53aXRoU2Ny
aXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0cmlidXRlKCkpKTsKQEAgLTExOTUsNyArMTE5NSw3
IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjEoRXhlY1N0YXRlKiBl
eGVjLCBKU09iamVjdCogc2xvdEJhc2UsIEVuCiAgICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25D
b250ZXh0LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVs
OjpFcnJvciwgU3RyaW5nKCJEZXByZWNhdGVkIGF0dGVtcHQgdG8gYWNjZXNzIHByb3BlcnR5ICdj
b25kaXRpb25hbEF0dHIxJyBvbiBhIG5vbi1UZXN0T2JqIG9iamVjdC4iKSk7CiAgICAgICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAgICB9Ci0gICAg
ICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIlRoZSAiLCAi
VGVzdE9iaiIsICIuIiwgImNvbmRpdGlvbmFsQXR0cjEiLCAiIGdldHRlciBjYW4gb25seSBiZSB1
c2VkIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKICAgICB9CiAgICAgVU5VU0VEX1BB
UkFNKGV4ZWMpOwogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CkBAIC0x
MjE2LDcgKzEyMTYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIy
KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNsb3RCYXNlLCBFbgogICAgICAgICAgICAgc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMs
IE1lc3NhZ2VMZXZlbDo6RXJyb3IsIFN0cmluZygiRGVwcmVjYXRlZCBhdHRlbXB0IHRvIGFjY2Vz
cyBwcm9wZXJ0eSAnY29uZGl0aW9uYWxBdHRyMicgb24gYSBub24tVGVzdE9iaiBvYmplY3QuIikp
OwogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAg
ICAgICAgfQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAg
cmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3Ry
aW5nKCJUaGUgIiwgIlRlc3RPYmoiLCAiLiIsICJjb25kaXRpb25hbEF0dHIyIiwgIiBnZXR0ZXIg
Y2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CiAgICAgfQog
ICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+
aW1wbCgpOwpAQCAtMTIzNyw3ICsxMjM3LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29u
ZGl0aW9uYWxBdHRyMyhFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW4KICAg
ICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3Nh
Z2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBTdHJpbmcoIkRlcHJlY2F0ZWQgYXR0
ZW1wdCB0byBhY2Nlc3MgcHJvcGVydHkgJ2NvbmRpdGlvbmFsQXR0cjMnIG9uIGEgbm9uLVRlc3RP
Ymogb2JqZWN0LiIpKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhl
Yyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5n
c1R5cGVFcnJvclN0cmluZygiVGhlICIsICJUZXN0T2JqIiwgIi4iLCAiY29uZGl0aW9uYWxBdHRy
MyIsICIgZ2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2Jq
IikpOwogICAgIH0KICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgVGVzdE9iaiYgaW1wbCA9
IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTEyNTgsNyArMTI1OCw3IEBAIEVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjRDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpT
T2JqZWN0KiBzCiAgICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5hZGRDb25zb2xl
TWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgU3RyaW5nKCJE
ZXByZWNhdGVkIGF0dGVtcHQgdG8gYWNjZXNzIHByb3BlcnR5ICdjb25kaXRpb25hbEF0dHI0JyBv
biBhIG5vbi1UZXN0T2JqIG9iamVjdC4iKSk7CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBt
YWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIlRoZSAiLCAiVGVzdE9iaiIsICIuIiwgImNv
bmRpdGlvbmFsQXR0cjQiLCAiIGdldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBv
ZiAiLCAiVGVzdE9iaiIpKTsKICAgICB9CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rl
c3RPYmplY3RBOjpnZXRDb25zdHJ1Y3RvcihleGVjLT52bSgpLCBjYXN0ZWRUaGlzLT5nbG9iYWxP
YmplY3QoKSkpOwogfQpAQCAtMTI3Niw3ICsxMjc2LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqQ29uZGl0aW9uYWxBdHRyNUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3Qq
IHMKICAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZENvbnNvbGVNZXNzYWdl
KE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBTdHJpbmcoIkRlcHJlY2F0
ZWQgYXR0ZW1wdCB0byBhY2Nlc3MgcHJvcGVydHkgJ2NvbmRpdGlvbmFsQXR0cjUnIG9uIGEgbm9u
LVRlc3RPYmogb2JqZWN0LiIpKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJy
b3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01C
aW5kaW5nc1R5cGVFcnJvclN0cmluZygiVGhlICIsICJUZXN0T2JqIiwgIi4iLCAiY29uZGl0aW9u
YWxBdHRyNSIsICIgZ2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mICIsICJU
ZXN0T2JqIikpOwogICAgIH0KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE9iamVj
dEI6OmdldENvbnN0cnVjdG9yKGV4ZWMtPnZtKCksIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgp
KSk7CiB9CkBAIC0xMjk0LDcgKzEyOTQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25k
aXRpb25hbEF0dHI2Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogcwogICAg
ICAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIFN0cmluZygiRGVwcmVjYXRlZCBhdHRl
bXB0IHRvIGFjY2VzcyBwcm9wZXJ0eSAnY29uZGl0aW9uYWxBdHRyNicgb24gYSBub24tVGVzdE9i
aiBvYmplY3QuIikpOwogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVj
KTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdz
VHlwZUVycm9yU3RyaW5nKCJUaGUgIiwgIlRlc3RPYmoiLCAiLiIsICJjb25kaXRpb25hbEF0dHI2
IiwgIiBnZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoi
KSk7CiAgICAgfQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0T2JqZWN0Qzo6Z2V0
Q29uc3RydWN0b3IoZXhlYy0+dm0oKSwgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0K
QEAgLTEzMTEsNyArMTMxMSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNhY2hlZEF0dHJp
YnV0ZTEoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEJhc2UsIEVuCiAgICAgICAgICAg
ICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNl
OjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgU3RyaW5nKCJEZXByZWNhdGVkIGF0dGVtcHQgdG8g
YWNjZXNzIHByb3BlcnR5ICdjYWNoZWRBdHRyaWJ1dGUxJyBvbiBhIG5vbi1UZXN0T2JqIG9iamVj
dC4iKSk7CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
OwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAg
ICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJy
b3JTdHJpbmcoIlRoZSAiLCAiVGVzdE9iaiIsICIuIiwgImNhY2hlZEF0dHJpYnV0ZTEiLCAiIGdl
dHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKICAg
ICB9CiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIGlmIChKU1ZhbHVlIGNhY2hlZFZhbHVl
ID0gY2FzdGVkVGhpcy0+bV9jYWNoZWRBdHRyaWJ1dGUxLmdldCgpKQpAQCAtMTMzMyw3ICsxMzMz
LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ2FjaGVkQXR0cmlidXRlMihFeGVjU3RhdGUq
IGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW4KICAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2
ZWw6OkVycm9yLCBTdHJpbmcoIkRlcHJlY2F0ZWQgYXR0ZW1wdCB0byBhY2Nlc3MgcHJvcGVydHkg
J2NhY2hlZEF0dHJpYnV0ZTInIG9uIGEgbm9uLVRlc3RPYmogb2JqZWN0LiIpKTsKICAgICAgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgIH0KLSAg
ICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJv
d1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiVGhlICIs
ICJUZXN0T2JqIiwgIi4iLCAiY2FjaGVkQXR0cmlidXRlMiIsICIgZ2V0dGVyIGNhbiBvbmx5IGJl
IHVzZWQgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwogICAgIH0KICAgICBVTlVTRURf
UEFSQU0oZXhlYyk7CiAgICAgaWYgKEpTVmFsdWUgY2FjaGVkVmFsdWUgPSBjYXN0ZWRUaGlzLT5t
X2NhY2hlZEF0dHJpYnV0ZTIuZ2V0KCkpCkBAIC0xMzU1LDcgKzEzNTUsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpBbnlBdHRyaWJ1dGUoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xv
dEJhc2UsIEVuY29kZQogICAgICAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+YWRkQ29u
c29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIFN0cmlu
ZygiRGVwcmVjYXRlZCBhdHRlbXB0IHRvIGFjY2VzcyBwcm9wZXJ0eSAnYW55QXR0cmlidXRlJyBv
biBhIG5vbi1UZXN0T2JqIG9iamVjdC4iKSk7CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBt
YWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIlRoZSAiLCAiVGVzdE9iaiIsICIuIiwgImFu
eUF0dHJpYnV0ZSIsICIgZ2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mICIs
ICJUZXN0T2JqIikpOwogICAgIH0KICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgVGVzdE9i
aiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTEzNzQsNyArMTM3NCw3IEBAIEVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnRlbnREb2N1bWVudChFeGVjU3RhdGUqIGV4ZWMsIEpTT2Jq
ZWN0KiBzbG90QmFzZSwgRW5jCiAgICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5h
ZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwg
U3RyaW5nKCJEZXByZWNhdGVkIGF0dGVtcHQgdG8gYWNjZXNzIHByb3BlcnR5ICdjb250ZW50RG9j
dW1lbnQnIG9uIGEgbm9uLVRlc3RPYmogb2JqZWN0LiIpKTsKICAgICAgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJu
IHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9y
KGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiVGhlICIsICJUZXN0T2JqIiwg
Ii4iLCAiY29udGVudERvY3VtZW50IiwgIiBnZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0
YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CiAgICAgfQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0
ZWRUaGlzLT5pbXBsKCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShzaG91bGRBbGxvd0Fj
Y2Vzc1RvTm9kZShleGVjLCBpbXBsLmNvbnRlbnREb2N1bWVudCgpKSA/IHRvSlMoZXhlYywgY2Fz
dGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIFdURjo6Z2V0UHRyKGltcGwuY29udGVudERvY3VtZW50
KCkpKSA6IGpzTnVsbCgpKTsKQEAgLTEzOTEsNyArMTM5MSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9iak11dGFibGVQb2ludChFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwg
RW5jb2RlCiAgICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5hZGRDb25zb2xlTWVz
c2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgU3RyaW5nKCJEZXBy
ZWNhdGVkIGF0dGVtcHQgdG8gYWNjZXNzIHByb3BlcnR5ICdtdXRhYmxlUG9pbnQnIG9uIGEgbm9u
LVRlc3RPYmogb2JqZWN0LiIpKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJy
b3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01C
aW5kaW5nc1R5cGVFcnJvclN0cmluZygiVGhlICIsICJUZXN0T2JqIiwgIi4iLCAibXV0YWJsZVBv
aW50IiwgIiBnZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RP
YmoiKSk7CiAgICAgfQogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBUZXN0T2JqJiBpbXBs
ID0gY2FzdGVkVGhpcy0+aW1wbCgpOwpAQCAtMTQxMCw3ICsxNDEwLDcgQEAgRW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqSW1tdXRhYmxlUG9pbnQoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xv
dEJhc2UsIEVuY28KICAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZENvbnNv
bGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBTdHJpbmco
IkRlcHJlY2F0ZWQgYXR0ZW1wdCB0byBhY2Nlc3MgcHJvcGVydHkgJ2ltbXV0YWJsZVBvaW50JyBv
biBhIG5vbi1UZXN0T2JqIG9iamVjdC4iKSk7CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBt
YWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIlRoZSAiLCAiVGVzdE9iaiIsICIuIiwgImlt
bXV0YWJsZVBvaW50IiwgIiBnZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2Yg
IiwgIlRlc3RPYmoiKSk7CiAgICAgfQogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBUZXN0
T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwpAQCAtMTQyOSw3ICsxNDI5LDcgQEAgRW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqU3RyYXdiZXJyeShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0
KiBzbG90QmFzZSwgRW5jb2RlZEoKICAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQt
PmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9y
LCBTdHJpbmcoIkRlcHJlY2F0ZWQgYXR0ZW1wdCB0byBhY2Nlc3MgcHJvcGVydHkgJ3N0cmF3YmVy
cnknIG9uIGEgbm9uLVRlc3RPYmogb2JqZWN0LiIpKTsKICAgICAgICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiVGhlICIsICJUZXN0T2JqIiwgIi4i
LCAic3RyYXdiZXJyeSIsICIgZ2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9m
ICIsICJUZXN0T2JqIikpOwogICAgIH0KICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgVGVz
dE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTE0NDgsNyArMTQ0OCw3IEBAIEVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmljdEZsb2F0KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmpl
Y3QqIHNsb3RCYXNlLCBFbmNvZGVkCiAgICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0
LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJv
ciwgU3RyaW5nKCJEZXByZWNhdGVkIGF0dGVtcHQgdG8gYWNjZXNzIHByb3BlcnR5ICdzdHJpY3RG
bG9hdCcgb24gYSBub24tVGVzdE9iaiBvYmplY3QuIikpOwogICAgICAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4g
dGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Io
ZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJUaGUgIiwgIlRlc3RPYmoiLCAi
LiIsICJzdHJpY3RGbG9hdCIsICIgZ2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2Vz
IG9mICIsICJUZXN0T2JqIikpOwogICAgIH0KICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAg
VGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTE0NjcsNyArMTQ2Nyw3IEBA
IEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakRlc2NyaXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNP
YmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkCiAgICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250
ZXh0LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpF
cnJvciwgU3RyaW5nKCJEZXByZWNhdGVkIGF0dGVtcHQgdG8gYWNjZXNzIHByb3BlcnR5ICdkZXNj
cmlwdGlvbicgb24gYSBub24tVGVzdE9iaiBvYmplY3QuIikpOwogICAgICAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICAgICAgfQotICAgICAgICByZXR1
cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJy
b3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJUaGUgIiwgIlRlc3RPYmoi
LCAiLiIsICJkZXNjcmlwdGlvbiIsICIgZ2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFu
Y2VzIG9mICIsICJUZXN0T2JqIikpOwogICAgIH0KICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAg
ICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTE0ODYsNyArMTQ4Niw3
IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iaklkKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3Qq
IHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0CiAgICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25D
b250ZXh0LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVs
OjpFcnJvciwgU3RyaW5nKCJEZXByZWNhdGVkIGF0dGVtcHQgdG8gYWNjZXNzIHByb3BlcnR5ICdp
ZCcgb24gYSBub24tVGVzdE9iaiBvYmplY3QuIikpOwogICAgICAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gdGhy
b3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhl
YywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJUaGUgIiwgIlRlc3RPYmoiLCAiLiIs
ICJpZCIsICIgZ2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0
T2JqIikpOwogICAgIH0KICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgVGVzdE9iaiYgaW1w
bCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTE1MDUsNyArMTUwNSw3IEBAIEVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9iakhhc2goRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEJhc2UsIEVu
Y29kZWRKU1ZhbHVlCiAgICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5hZGRDb25z
b2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgU3RyaW5n
KCJEZXByZWNhdGVkIGF0dGVtcHQgdG8gYWNjZXNzIHByb3BlcnR5ICdoYXNoJyBvbiBhIG5vbi1U
ZXN0T2JqIG9iamVjdC4iKSk7CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
VW5kZWZpbmVkKCkpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9y
KGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmlu
ZGluZ3NUeXBlRXJyb3JTdHJpbmcoIlRoZSAiLCAiVGVzdE9iaiIsICIuIiwgImhhc2giLCAiIGdl
dHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKICAg
ICB9CiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRU
aGlzLT5pbXBsKCk7CkBAIC0xNTI0LDcgKzE1MjQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpSZXBsYWNlYWJsZUF0dHJpYnV0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFz
ZQogICAgICAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+YWRkQ29uc29sZU1lc3NhZ2Uo
TWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIFN0cmluZygiRGVwcmVjYXRl
ZCBhdHRlbXB0IHRvIGFjY2VzcyBwcm9wZXJ0eSAncmVwbGFjZWFibGVBdHRyaWJ1dGUnIG9uIGEg
bm9uLVRlc3RPYmogb2JqZWN0LiIpKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBl
RXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VE
T01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiVGhlICIsICJUZXN0T2JqIiwgIi4iLCAicmVwbGFj
ZWFibGVBdHRyaWJ1dGUiLCAiIGdldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBv
ZiAiLCAiVGVzdE9iaiIpKTsKICAgICB9CiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIFRl
c3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CkBAIC0xNTQzLDcgKzE1NDMsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZURvdWJsZUF0dHJpYnV0ZShFeGVjU3RhdGUq
IGV4ZWMsIEpTT2JqZWN0KiBzbG90QgogICAgICAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4
dC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJy
b3IsIFN0cmluZygiRGVwcmVjYXRlZCBhdHRlbXB0IHRvIGFjY2VzcyBwcm9wZXJ0eSAnbnVsbGFi
bGVEb3VibGVBdHRyaWJ1dGUnIG9uIGEgbm9uLVRlc3RPYmogb2JqZWN0LiIpKTsKICAgICAgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgIH0KLSAg
ICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJv
d1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiVGhlICIs
ICJUZXN0T2JqIiwgIi4iLCAibnVsbGFibGVEb3VibGVBdHRyaWJ1dGUiLCAiIGdldHRlciBjYW4g
b25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKICAgICB9CiAgICAg
VU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIGJvb2wgaXNOdWxsID0gZmFsc2U7CkBAIC0xNTY1LDcg
KzE1NjUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZUxvbmdBdHRyaWJ1dGUo
RXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEJhcwogICAgICAgICAgICAgc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3Nh
Z2VMZXZlbDo6RXJyb3IsIFN0cmluZygiRGVwcmVjYXRlZCBhdHRlbXB0IHRvIGFjY2VzcyBwcm9w
ZXJ0eSAnbnVsbGFibGVMb25nQXR0cmlidXRlJyBvbiBhIG5vbi1UZXN0T2JqIG9iamVjdC4iKSk7
CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAg
ICAgICB9Ci0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJp
bmcoIlRoZSAiLCAiVGVzdE9iaiIsICIuIiwgIm51bGxhYmxlTG9uZ0F0dHJpYnV0ZSIsICIgZ2V0
dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwogICAg
IH0KICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgYm9vbCBpc051bGwgPSBmYWxzZTsKQEAg
LTE1ODcsNyArMTU4Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlQm9vbGVh
bkF0dHJpYnV0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90CiAgICAgICAgICAgICBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpK
UywgTWVzc2FnZUxldmVsOjpFcnJvciwgU3RyaW5nKCJEZXByZWNhdGVkIGF0dGVtcHQgdG8gYWNj
ZXNzIHByb3BlcnR5ICdudWxsYWJsZUJvb2xlYW5BdHRyaWJ1dGUnIG9uIGEgbm9uLVRlc3RPYmog
b2JqZWN0LiIpKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7
CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5
cGVFcnJvclN0cmluZygiVGhlICIsICJUZXN0T2JqIiwgIi4iLCAibnVsbGFibGVCb29sZWFuQXR0
cmlidXRlIiwgIiBnZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgIiwgIlRl
c3RPYmoiKSk7CiAgICAgfQogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBib29sIGlzTnVs
bCA9IGZhbHNlOwpAQCAtMTYwOSw3ICsxNjA5LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
TnVsbGFibGVTdHJpbmdBdHRyaWJ1dGUoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEIK
ICAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZENvbnNvbGVNZXNzYWdlKE1l
c3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBTdHJpbmcoIkRlcHJlY2F0ZWQg
YXR0ZW1wdCB0byBhY2Nlc3MgcHJvcGVydHkgJ251bGxhYmxlU3RyaW5nQXR0cmlidXRlJyBvbiBh
IG5vbi1UZXN0T2JqIG9iamVjdC4iKSk7CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlw
ZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtl
RE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIlRoZSAiLCAiVGVzdE9iaiIsICIuIiwgIm51bGxh
YmxlU3RyaW5nQXR0cmlidXRlIiwgIiBnZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5j
ZXMgb2YgIiwgIlRlc3RPYmoiKSk7CiAgICAgfQogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAg
ICBib29sIGlzTnVsbCA9IGZhbHNlOwpAQCAtMTYzMSw3ICsxNjMxLDcgQEAgRW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqTnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGUoRXhlY1N0YXRlKiBleGVj
LCBKU09iamVjdCoKICAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZENvbnNv
bGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBTdHJpbmco
IkRlcHJlY2F0ZWQgYXR0ZW1wdCB0byBhY2Nlc3MgcHJvcGVydHkgJ251bGxhYmxlTG9uZ1NldHRh
YmxlQXR0cmlidXRlJyBvbiBhIG5vbi1UZXN0T2JqIG9iamVjdC4iKSk7CiAgICAgICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAgICB9Ci0gICAgICAg
IHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5
cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIlRoZSAiLCAiVGVz
dE9iaiIsICIuIiwgIm51bGxhYmxlTG9uZ1NldHRhYmxlQXR0cmlidXRlIiwgIiBnZXR0ZXIgY2Fu
IG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CiAgICAgfQogICAg
IFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBib29sIGlzTnVsbCA9IGZhbHNlOwpAQCAtMTY1Myw3
ICsxNjUzLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVTdHJpbmdWYWx1ZShF
eGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwKICAgICAgICAgICAgIHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNz
YWdlTGV2ZWw6OkVycm9yLCBTdHJpbmcoIkRlcHJlY2F0ZWQgYXR0ZW1wdCB0byBhY2Nlc3MgcHJv
cGVydHkgJ251bGxhYmxlU3RyaW5nVmFsdWUnIG9uIGEgbm9uLVRlc3RPYmogb2JqZWN0LiIpKTsK
ICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAg
ICAgIH0KLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJl
dHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmlu
ZygiVGhlICIsICJUZXN0T2JqIiwgIi4iLCAibnVsbGFibGVTdHJpbmdWYWx1ZSIsICIgZ2V0dGVy
IGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwogICAgIH0K
ICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBib29sIGlzTnVsbCA9IGZhbHNlOwpAQCAt
MTY3Niw3ICsxNjc2LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQXR0cmlidXRlKEV4ZWNT
dGF0ZSogZXhlYywgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlMKICAgICAgICAgICAgIHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpT
LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBTdHJpbmcoIkRlcHJlY2F0ZWQgYXR0ZW1wdCB0byBhY2Nl
c3MgcHJvcGVydHkgJ2F0dHJpYnV0ZScgb24gYSBub24tVGVzdE9iaiBvYmplY3QuIikpOwogICAg
ICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICAgICAg
fQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJu
IHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJU
aGUgIiwgIlRlc3RPYmoiLCAiLiIsICJhdHRyaWJ1dGUiLCAiIGdldHRlciBjYW4gb25seSBiZSB1
c2VkIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKICAgICB9CiAgICAgVU5VU0VEX1BB
UkFNKGV4ZWMpOwogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CkBAIC0x
Njk1LDcgKzE2OTUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpBdHRyaWJ1dGVXaXRoUmVz
ZXJ2ZWRFbnVtVHlwZShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KgogICAgICAgICAgICAgc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMs
IE1lc3NhZ2VMZXZlbDo6RXJyb3IsIFN0cmluZygiRGVwcmVjYXRlZCBhdHRlbXB0IHRvIGFjY2Vz
cyBwcm9wZXJ0eSAnYXR0cmlidXRlV2l0aFJlc2VydmVkRW51bVR5cGUnIG9uIGEgbm9uLVRlc3RP
Ymogb2JqZWN0LiIpKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhl
Yyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5n
c1R5cGVFcnJvclN0cmluZygiVGhlICIsICJUZXN0T2JqIiwgIi4iLCAiYXR0cmlidXRlV2l0aFJl
c2VydmVkRW51bVR5cGUiLCAiIGdldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBv
ZiAiLCAiVGVzdE9iaiIpKTsKICAgICB9CiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIFRl
c3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CkBAIC0xNzMxLDcgKzE3MzEsNyBAQCB2
b2lkIHNldEpTVGVzdE9ialRlc3RTdWJPYmpFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3IoRXhl
Y1N0YXRlKiBleGVjLCBKU09iamVjdAogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBKU1Rl
c3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7Ci0gICAg
ICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhl
YywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJUaGUgIiwgIlRlc3RPYmoiLCAiLiIs
ICJUZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGluZyIsICIgc2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQg
b24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
ICAgIC8vIFNoYWRvd2luZyBhIGJ1aWx0LWluIGNvbnN0cnVjdG9yCkBAIC0xNzQ1LDcgKzE3NDUs
NyBAQCB2b2lkIHNldEpTVGVzdE9iakVudW1BdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3Qq
IC8qIGJhc2VPYmplY3QgKi8sIEVuY29kZWRKUwogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAg
ICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFs
dWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7
Ci0gICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHRocm93Vk1UeXBlRXJy
b3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJUaGUgIiwgIlRlc3RPYmoi
LCAiLiIsICJlbnVtQXR0ciIsICIgc2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2Vz
IG9mICIsICJUZXN0T2JqIikpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIFRlc3RPYmom
IGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CkBAIC0xNzY0LDcgKzE3NjQsNyBAQCB2b2lkIHNl
dEpTVGVzdE9iakJ5dGVBdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIC8qIGJhc2VPYmpl
Y3QgKi8sIEVuY29kZWRKUwogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBKU1Rlc3RPYmoq
IGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0
aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7Ci0gICAgICAgIHRo
cm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFr
ZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJUaGUgIiwgIlRlc3RPYmoiLCAiLiIsICJieXRl
QXR0ciIsICIgc2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0
T2JqIikpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0
ZWRUaGlzLT5pbXBsKCk7CkBAIC0xNzgxLDcgKzE3ODEsNyBAQCB2b2lkIHNldEpTVGVzdE9iak9j
dGV0QXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWN0ICovLCBFbmNv
ZGVkSgogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMg
PSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsK
ICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7Ci0gICAgICAgIHRocm93Vk1UeXBlRXJy
b3IoZXhlYyk7CisgICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdz
VHlwZUVycm9yU3RyaW5nKCJUaGUgIiwgIlRlc3RPYmoiLCAiLiIsICJvY3RldEF0dHIiLCAiIHNl
dHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1w
bCgpOwpAQCAtMTc5OCw3ICsxNzk4LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpTaG9ydEF0dHIoRXhl
Y1N0YXRlKiBleGVjLCBKU09iamVjdCogLyogYmFzZU9iamVjdCAqLywgRW5jb2RlZEoKICAgICBV
TlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWlj
Q2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVO
TElLRUxZKCFjYXN0ZWRUaGlzKSkgewotICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwor
ICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0
cmluZygiVGhlICIsICJUZXN0T2JqIiwgIi4iLCAic2hvcnRBdHRyIiwgIiBzZXR0ZXIgY2FuIG9u
bHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTE4
MTUsNyArMTgxNSw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqVW5zaWduZWRTaG9ydEF0dHIoRXhlY1N0
YXRlKiBleGVjLCBKU09iamVjdCogLyogYmFzZU9iamVjdCAqLywKICAgICBVTlVTRURfUEFSQU0o
ZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RP
YmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0
ZWRUaGlzKSkgewotICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICB0aHJv
d1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiVGhlICIs
ICJUZXN0T2JqIiwgIi4iLCAidW5zaWduZWRTaG9ydEF0dHIiLCAiIHNldHRlciBjYW4gb25seSBi
ZSB1c2VkIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwpAQCAtMTgzMiw3
ICsxODMyLDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpMb25nQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpT
T2JqZWN0KiAvKiBiYXNlT2JqZWN0ICovLCBFbmNvZGVkSlMKICAgICBVTlVTRURfUEFSQU0oZXhl
Yyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoq
PihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRU
aGlzKSkgewotICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICB0aHJvd1ZN
VHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiVGhlICIsICJU
ZXN0T2JqIiwgIi4iLCAibG9uZ0F0dHIiLCAiIHNldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGlu
c3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBU
ZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwpAQCAtMTg0OSw3ICsxODQ5LDcgQEAg
dm9pZCBzZXRKU1Rlc3RPYmpMb25nTG9uZ0F0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCog
LyogYmFzZU9iamVjdCAqLywgRW5jb2QKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNU
ZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpk
ZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewotICAg
ICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiVGhlICIsICJUZXN0T2JqIiwgIi4i
LCAibG9uZ0xvbmdBdHRyIiwgIiBzZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMg
b2YgIiwgIlRlc3RPYmoiKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgVGVzdE9iaiYg
aW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTE4NjYsNyArMTg2Niw3IEBAIHZvaWQgc2V0
SlNUZXN0T2JqVW5zaWduZWRMb25nTG9uZ0F0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCog
LyogYmFzZU9iamVjdCAqCiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVzdE9iaiog
Y2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRo
aXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKLSAgICAgICAgdGhy
b3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtl
RE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIlRoZSAiLCAiVGVzdE9iaiIsICIuIiwgInVuc2ln
bmVkTG9uZ0xvbmdBdHRyIiwgIiBzZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMg
b2YgIiwgIlRlc3RPYmoiKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgVGVzdE9iaiYg
aW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTE4ODMsNyArMTg4Myw3IEBAIHZvaWQgc2V0
SlNUZXN0T2JqU3RyaW5nQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2Jq
ZWN0ICovLCBFbmNvZGVkCiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVzdE9iaiog
Y2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRo
aXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKLSAgICAgICAgdGhy
b3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtl
RE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIlRoZSAiLCAiVGVzdE9iaiIsICIuIiwgInN0cmlu
Z0F0dHIiLCAiIHNldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVz
dE9iaiIpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBUZXN0T2JqJiBpbXBsID0gY2Fz
dGVkVGhpcy0+aW1wbCgpOwpAQCAtMTkwMCw3ICsxOTAwLDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpU
ZXN0T2JqQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWN0ICovLCBF
bmNvZGUKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlz
ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7
CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewotICAgICAgICB0aHJvd1ZNVHlwZUVy
cm9yKGV4ZWMpOworICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5n
c1R5cGVFcnJvclN0cmluZygiVGhlICIsICJUZXN0T2JqIiwgIi4iLCAidGVzdE9iakF0dHIiLCAi
IHNldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+
aW1wbCgpOwpAQCAtMTkxNyw3ICsxOTE3LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpYTUxPYmpBdHRy
KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIC8qIGJhc2VPYmplY3QgKi8sIEVuY29kZWQKICAg
ICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5h
bWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYg
KFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewotICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMp
OworICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJv
clN0cmluZygiVGhlICIsICJUZXN0T2JqIiwgIi4iLCAiWE1MT2JqQXR0ciIsICIgc2V0dGVyIGNh
biBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CkBA
IC0xOTM0LDcgKzE5MzQsNyBAQCB2b2lkIHNldEpTVGVzdE9iakNyZWF0ZShFeGVjU3RhdGUqIGV4
ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWN0ICovLCBFbmNvZGVkSlNWYQogICAgIFVOVVNFRF9Q
QVJBTShleGVjKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpT
VGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFko
IWNhc3RlZFRoaXMpKSB7Ci0gICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAg
IHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJU
aGUgIiwgIlRlc3RPYmoiLCAiLiIsICJjcmVhdGUiLCAiIHNldHRlciBjYW4gb25seSBiZSB1c2Vk
IG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
ICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwpAQCAtMTk1MSw3ICsxOTUx
LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyKEV4ZWNTdGF0ZSogZXhl
YywgSlNPYmplY3QqIC8qIGJhc2VPYmplY3QgKi8KICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAg
ICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1Zh
bHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkg
ewotICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICB0aHJvd1ZNVHlwZUVy
cm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiVGhlICIsICJUZXN0T2Jq
IiwgIi4iLCAicmVmbGVjdGVkU3RyaW5nQXR0ciIsICIgc2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQg
b24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
ICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CkBAIC0xOTY4LDcgKzE5Njgs
NyBAQCB2b2lkIHNldEpTVGVzdE9ialJlZmxlY3RlZEludGVncmFsQXR0cihFeGVjU3RhdGUqIGV4
ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWN0CiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAg
IEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1
ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsK
LSAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgdGhyb3dWTVR5cGVFcnJv
cihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIlRoZSAiLCAiVGVzdE9iaiIs
ICIuIiwgInJlZmxlY3RlZEludGVncmFsQXR0ciIsICIgc2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQg
b24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
ICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CkBAIC0xOTg1LDcgKzE5ODUs
NyBAQCB2b2lkIHNldEpTVGVzdE9ialJlZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyKEV4ZWNT
dGF0ZSogZXhlYywgSlNPYmplY3QqIC8qIGJhcwogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAg
ICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFs
dWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7
Ci0gICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHRocm93Vk1UeXBlRXJy
b3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJUaGUgIiwgIlRlc3RPYmoi
LCAiLiIsICJyZWZsZWN0ZWRVbnNpZ25lZEludGVncmFsQXR0ciIsICIgc2V0dGVyIGNhbiBvbmx5
IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CkBAIC0yMDAy
LDcgKzIwMDIsNyBAQCB2b2lkIHNldEpTVGVzdE9ialJlZmxlY3RlZEJvb2xlYW5BdHRyKEV4ZWNT
dGF0ZSogZXhlYywgSlNPYmplY3QqIC8qIGJhc2VPYmplY3QgKgogICAgIFVOVVNFRF9QQVJBTShl
eGVjKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9i
aio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3Rl
ZFRoaXMpKSB7Ci0gICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHRocm93
Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJUaGUgIiwg
IlRlc3RPYmoiLCAiLiIsICJyZWZsZWN0ZWRCb29sZWFuQXR0ciIsICIgc2V0dGVyIGNhbiBvbmx5
IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CkBAIC0yMDE5
LDcgKzIwMTksNyBAQCB2b2lkIHNldEpTVGVzdE9ialJlZmxlY3RlZFVSTEF0dHIoRXhlY1N0YXRl
KiBleGVjLCBKU09iamVjdCogLyogYmFzZU9iamVjdCAqLywgRQogICAgIFVOVVNFRF9QQVJBTShl
eGVjKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9i
aio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3Rl
ZFRoaXMpKSB7Ci0gICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHRocm93
Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJUaGUgIiwg
IlRlc3RPYmoiLCAiLiIsICJyZWZsZWN0ZWRVUkxBdHRyIiwgIiBzZXR0ZXIgY2FuIG9ubHkgYmUg
dXNlZCBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTIwMzYsNyAr
MjAzNiw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cihFeGVjU3RhdGUq
IGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWN0ICovCiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMp
OwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4o
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhp
cykpIHsKLSAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgdGhyb3dWTVR5
cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIlRoZSAiLCAiVGVz
dE9iaiIsICIuIiwgInJlZmxlY3RlZFN0cmluZ0F0dHIiLCAiIHNldHRlciBjYW4gb25seSBiZSB1
c2VkIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwpAQCAtMjA1Myw3ICsy
MDUzLDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHIoRXhl
Y1N0YXRlKiBleGVjLCBKU09iamVjdCogLyogYmFzZU8KICAgICBVTlVTRURfUEFSQU0oZXhlYyk7
CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihK
U1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlz
KSkgewotICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICB0aHJvd1ZNVHlw
ZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiVGhlICIsICJUZXN0
T2JqIiwgIi4iLCAicmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyIiwgIiBzZXR0ZXIgY2FuIG9u
bHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTIw
NzAsNyArMjA3MCw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0
dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogLyogYmFzZU9iCiAgICAgVU5VU0VEX1BBUkFN
KGV4ZWMpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0
T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2Fz
dGVkVGhpcykpIHsKLSAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgdGhy
b3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIlRoZSAi
LCAiVGVzdE9iaiIsICIuIiwgInJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyIiwgIiBzZXR0ZXIg
Y2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsK
QEAgLTIwODcsNyArMjA4Nyw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tVVJM
QXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWN0CiAgICAgVU5VU0VE
X1BBUkFNKGV4ZWMpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8
SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VM
WSghY2FzdGVkVGhpcykpIHsKLSAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAg
ICAgdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmco
IlRoZSAiLCAiVGVzdE9iaiIsICIuIiwgInJlZmxlY3RlZEN1c3RvbVVSTEF0dHIiLCAiIHNldHRl
ciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgp
OwpAQCAtMjEwNCw3ICsyMTA0LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpUeXBlZEFycmF5QXR0cihF
eGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWN0ICovLCBFbmMKICAgICBVTlVT
RURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2Fz
dDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElL
RUxZKCFjYXN0ZWRUaGlzKSkgewotICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAg
ICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmlu
ZygiVGhlICIsICJUZXN0T2JqIiwgIi4iLCAidHlwZWRBcnJheUF0dHIiLCAiIHNldHRlciBjYW4g
b25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwpAQCAt
MjEyMSw3ICsyMTIxLDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpBdHRyV2l0aEdldHRlckV4Y2VwdGlv
bihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWMKICAgICBVTlVTRURfUEFS
QU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rl
c3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFj
YXN0ZWRUaGlzKSkgewotICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICB0
aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiVGhl
ICIsICJUZXN0T2JqIiwgIi4iLCAiYXR0cldpdGhHZXR0ZXJFeGNlcHRpb24iLCAiIHNldHRlciBj
YW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwpA
QCAtMjEzOCw3ICsyMTM4LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpBdHRyV2l0aFNldHRlckV4Y2Vw
dGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWMKICAgICBVTlVTRURf
UEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxK
U1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZ
KCFjYXN0ZWRUaGlzKSkgewotICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAg
ICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygi
VGhlICIsICJUZXN0T2JqIiwgIi4iLCAiYXR0cldpdGhTZXR0ZXJFeGNlcHRpb24iLCAiIHNldHRl
ciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgp
OwpAQCAtMjE1Nyw3ICsyMTU3LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpTdHJpbmdBdHRyV2l0aEdl
dHRlckV4Y2VwdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXMKICAgICBVTlVT
RURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2Fz
dDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElL
RUxZKCFjYXN0ZWRUaGlzKSkgewotICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAg
ICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmlu
ZygiVGhlICIsICJUZXN0T2JqIiwgIi4iLCAic3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24i
LCAiIHNldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIp
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhp
cy0+aW1wbCgpOwpAQCAtMjE3NCw3ICsyMTc0LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpTdHJpbmdB
dHRyV2l0aFNldHRlckV4Y2VwdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXMK
ICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNE
eW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAg
aWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewotICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMpOworICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVF
cnJvclN0cmluZygiVGhlICIsICJUZXN0T2JqIiwgIi4iLCAic3RyaW5nQXR0cldpdGhTZXR0ZXJF
eGNlcHRpb24iLCAiIHNldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiAiLCAi
VGVzdE9iaiIpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBUZXN0T2JqJiBpbXBsID0g
Y2FzdGVkVGhpcy0+aW1wbCgpOwpAQCAtMjE5Myw3ICsyMTkzLDcgQEAgdm9pZCBzZXRKU1Rlc3RP
YmpDdXN0b21BdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIC8qIGJhc2VPYmplY3QgKi8s
IEVuY29kZWQKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRU
aGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVl
KSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewotICAgICAgICB0aHJvd1ZNVHlw
ZUVycm9yKGV4ZWMpOworICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5k
aW5nc1R5cGVFcnJvclN0cmluZygiVGhlICIsICJUZXN0T2JqIiwgIi4iLCAiY3VzdG9tQXR0ciIs
ICIgc2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGNhc3RlZFRoaXMtPnNldEN1c3RvbUF0dHIo
ZXhlYywgdmFsdWUpOwpAQCAtMjIwNiw3ICsyMjA2LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpXaXRo
U2NyaXB0U3RhdGVBdHRyaWJ1dGUoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogLyogYmFzZU9i
amUKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0g
anNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAg
ICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewotICAgICAgICB0aHJvd1ZNVHlwZUVycm9y
KGV4ZWMpOworICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5
cGVFcnJvclN0cmluZygiVGhlICIsICJUZXN0T2JqIiwgIi4iLCAid2l0aFNjcmlwdFN0YXRlQXR0
cmlidXRlIiwgIiBzZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgIiwgIlRl
c3RPYmoiKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNh
c3RlZFRoaXMtPmltcGwoKTsKQEAgLTIyMjMsNyArMjIyMyw3IEBAIHZvaWQgc2V0SlNUZXN0T2Jq
V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGUoRXhlY1N0YXRlKiBleGVjLCBKU09i
amVjdCoKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlz
ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7
CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewotICAgICAgICB0aHJvd1ZNVHlwZUVy
cm9yKGV4ZWMpOworICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5n
c1R5cGVFcnJvclN0cmluZygiVGhlICIsICJUZXN0T2JqIiwgIi4iLCAid2l0aFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRBdHRyaWJ1dGUiLCAiIHNldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3Rh
bmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBUZXN0
T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwpAQCAtMjI0Myw3ICsyMjQzLDcgQEAgdm9p
ZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoRXhlY1N0YXRlKiBl
eGVjLCBKU09iamVjdCogLyogYmEKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0
T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewotICAgICAg
ICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMs
IG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiVGhlICIsICJUZXN0T2JqIiwgIi4iLCAi
d2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzIiwgIiBzZXR0ZXIgY2FuIG9ubHkgYmUgdXNl
ZCBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTIyNjAsNyArMjI2
MCw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1
dGVSYWlzZXMoRXhlY1N0YXRlKiBleGVjLCBKU09iCiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwog
ICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNW
YWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykp
IHsKLSAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgdGhyb3dWTVR5cGVF
cnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIlRoZSAiLCAiVGVzdE9i
aiIsICIuIiwgIndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzIiwgIiBz
ZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmlt
cGwoKTsKQEAgLTIyODAsNyArMjI4MCw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZShFeGVjU3RhdGUqIGV4CiAgICAg
VU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1p
Y0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChV
TkxJS0VMWSghY2FzdGVkVGhpcykpIHsKLSAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjKTsK
KyAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JT
dHJpbmcoIlRoZSAiLCAiVGVzdE9iaiIsICIuIiwgIndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0
QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGUiLCAiIHNldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGlu
c3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBU
ZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwpAQCAtMjMwMCw3ICsyMzAwLDcgQEAg
dm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRl
QXR0cmlidXRlUmFpc2VzKEV4ZWNTdGEKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNU
ZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpk
ZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewotICAg
ICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiVGhlICIsICJUZXN0T2JqIiwgIi4i
LCAid2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNl
cyIsICIgc2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2Jq
IikpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRU
aGlzLT5pbXBsKCk7CkBAIC0yMzIwLDcgKzIzMjAsNyBAQCB2b2lkIHNldEpTVGVzdE9ialdpdGhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVXaXRoU3BhY2VzQXR0cmlidXRlKEV4
ZQogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBq
c0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAg
ICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7Ci0gICAgICAgIHRocm93Vk1UeXBlRXJyb3Io
ZXhlYyk7CisgICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlw
ZUVycm9yU3RyaW5nKCJUaGUgIiwgIlRlc3RPYmoiLCAiLiIsICJ3aXRoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dEFuZFNjcmlwdFN0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZSIsICIgc2V0dGVyIGNhbiBv
bmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CkBAIC0y
MzQwLDcgKzIzNDAsNyBAQCB2b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRBcmd1bWVudHNBbmRD
YWxsU3RhY2tBdHRyaWJ1dGUoRXhlY1N0YXRlKiBleGVjLCBKU09iagogICAgIFVOVVNFRF9QQVJB
TShleGVjKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVz
dE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNh
c3RlZFRoaXMpKSB7Ci0gICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHRo
cm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJUaGUg
IiwgIlRlc3RPYmoiLCAiLiIsICJ3aXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0cmli
dXRlIiwgIiBzZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RP
YmoiKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3Rl
ZFRoaXMtPmltcGwoKTsKQEAgLTIzNTgsNyArMjM1OCw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqQ29u
ZGl0aW9uYWxBdHRyMShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlT2JqZWN0ICov
LCBFCiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9
IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwog
ICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKLSAgICAgICAgdGhyb3dWTVR5cGVFcnJv
cihleGVjKTsKKyAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NU
eXBlRXJyb3JTdHJpbmcoIlRoZSAiLCAiVGVzdE9iaiIsICIuIiwgImNvbmRpdGlvbmFsQXR0cjEi
LCAiIHNldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIp
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhp
cy0+aW1wbCgpOwpAQCAtMjM3Nyw3ICsyMzc3LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpDb25kaXRp
b25hbEF0dHIyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIC8qIGJhc2VPYmplY3QgKi8sIEUK
ICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNE
eW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAg
aWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewotICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMpOworICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVF
cnJvclN0cmluZygiVGhlICIsICJUZXN0T2JqIiwgIi4iLCAiY29uZGl0aW9uYWxBdHRyMiIsICIg
c2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5p
bXBsKCk7CkBAIC0yMzk2LDcgKzIzOTYsNyBAQCB2b2lkIHNldEpTVGVzdE9iakNvbmRpdGlvbmFs
QXR0cjMoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogLyogYmFzZU9iamVjdCAqLywgRQogICAg
IFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFt
aWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAo
VU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7Ci0gICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7
CisgICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9y
U3RyaW5nKCJUaGUgIiwgIlRlc3RPYmoiLCAiLiIsICJjb25kaXRpb25hbEF0dHIzIiwgIiBzZXR0
ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwo
KTsKQEAgLTI0MTUsNyArMjQxNSw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRy
NENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIC8qIGJhc2VPCiAgICAgVU5V
U0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nh
c3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJ
S0VMWSghY2FzdGVkVGhpcykpIHsKLSAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAg
ICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJp
bmcoIlRoZSAiLCAiVGVzdE9iaiIsICIuIiwgImNvbmRpdGlvbmFsQXR0cjQiLCAiIHNldHRlciBj
YW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KICAgICAvLyBTaGFkb3dpbmcgYSBidWlsdC1pbiBjb25zdHJ1Y3RvcgpA
QCAtMjQzMSw3ICsyNDMxLDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHI1Q29u
c3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogLyogYmFzZU8KICAgICBVTlVTRURf
UEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxK
U1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZ
KCFjYXN0ZWRUaGlzKSkgewotICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAg
ICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygi
VGhlICIsICJUZXN0T2JqIiwgIi4iLCAiY29uZGl0aW9uYWxBdHRyNSIsICIgc2V0dGVyIGNhbiBv
bmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogICAgIC8vIFNoYWRvd2luZyBhIGJ1aWx0LWluIGNvbnN0cnVjdG9yCkBAIC0y
NDQ3LDcgKzI0NDcsNyBAQCB2b2lkIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjZDb25zdHJ1
Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlTwogICAgIFVOVVNFRF9QQVJB
TShleGVjKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVz
dE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNh
c3RlZFRoaXMpKSB7Ci0gICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHRo
cm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJUaGUg
IiwgIlRlc3RPYmoiLCAiLiIsICJjb25kaXRpb25hbEF0dHI2IiwgIiBzZXR0ZXIgY2FuIG9ubHkg
YmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAgICAgLy8gU2hhZG93aW5nIGEgYnVpbHQtaW4gY29uc3RydWN0b3IKQEAgLTI0NjIs
NyArMjQ2Miw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqQW55QXR0cmlidXRlKEV4ZWNTdGF0ZSogZXhl
YywgSlNPYmplY3QqIC8qIGJhc2VPYmplY3QgKi8sIEVuY29kCiAgICAgVU5VU0VEX1BBUkFNKGV4
ZWMpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2Jq
Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVk
VGhpcykpIHsKLSAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgdGhyb3dW
TVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIlRoZSAiLCAi
VGVzdE9iaiIsICIuIiwgImFueUF0dHJpYnV0ZSIsICIgc2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQg
b24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
ICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CkBAIC0yNDc5LDcgKzI0Nzks
NyBAQCB2b2lkIHNldEpTVGVzdE9iak11dGFibGVQb2ludChFeGVjU3RhdGUqIGV4ZWMsIEpTT2Jq
ZWN0KiAvKiBiYXNlT2JqZWN0ICovLCBFbmNvZAogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAg
ICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFs
dWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7
Ci0gICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHRocm93Vk1UeXBlRXJy
b3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJUaGUgIiwgIlRlc3RPYmoi
LCAiLiIsICJtdXRhYmxlUG9pbnQiLCAiIHNldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3Rh
bmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBUZXN0
T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwpAQCAtMjQ5Niw3ICsyNDk2LDcgQEAgdm9p
ZCBzZXRKU1Rlc3RPYmpJbW11dGFibGVQb2ludChFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAv
KiBiYXNlT2JqZWN0ICovLCBFbmMKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0
T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewotICAgICAg
ICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMs
IG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiVGhlICIsICJUZXN0T2JqIiwgIi4iLCAi
aW1tdXRhYmxlUG9pbnQiLCAiIHNldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBv
ZiAiLCAiVGVzdE9iaiIpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBUZXN0T2JqJiBp
bXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwpAQCAtMjUxMyw3ICsyNTEzLDcgQEAgdm9pZCBzZXRK
U1Rlc3RPYmpTdHJhd2JlcnJ5KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIC8qIGJhc2VPYmpl
Y3QgKi8sIEVuY29kZWQKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBj
YXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhp
c1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewotICAgICAgICB0aHJv
d1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VE
T01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiVGhlICIsICJUZXN0T2JqIiwgIi4iLCAic3RyYXdi
ZXJyeSIsICIgc2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0
T2JqIikpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0
ZWRUaGlzLT5pbXBsKCk7CkBAIC0yNTMwLDcgKzI1MzAsNyBAQCB2b2lkIHNldEpTVGVzdE9ialN0
cmljdEZsb2F0KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIC8qIGJhc2VPYmplY3QgKi8sIEVu
Y29kZQogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMg
PSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsK
ICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7Ci0gICAgICAgIHRocm93Vk1UeXBlRXJy
b3IoZXhlYyk7CisgICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdz
VHlwZUVycm9yU3RyaW5nKCJUaGUgIiwgIlRlc3RPYmoiLCAiLiIsICJzdHJpY3RGbG9hdCIsICIg
c2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5p
bXBsKCk7CkBAIC0yNTQ3LDcgKzI1NDcsNyBAQCB2b2lkIHNldEpTVGVzdE9iaklkKEV4ZWNTdGF0
ZSogZXhlYywgSlNPYmplY3QqIC8qIGJhc2VPYmplY3QgKi8sIEVuY29kZWRKU1ZhbHVlCiAgICAg
VU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1p
Y0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChV
TkxJS0VMWSghY2FzdGVkVGhpcykpIHsKLSAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjKTsK
KyAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JT
dHJpbmcoIlRoZSAiLCAiVGVzdE9iaiIsICIuIiwgImlkIiwgIiBzZXR0ZXIgY2FuIG9ubHkgYmUg
dXNlZCBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTI1NjQsNyAr
MjU2NCw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqUmVwbGFjZWFibGVBdHRyaWJ1dGUoRXhlY1N0YXRl
KiBleGVjLCBKU09iamVjdCogLyogYmFzZU9iamVjdCAqCiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMp
OwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4o
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhp
cykpIHsKLSAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgdGhyb3dWTVR5
cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIlRoZSAiLCAiVGVz
dE9iaiIsICIuIiwgInJlcGxhY2VhYmxlQXR0cmlidXRlIiwgIiBzZXR0ZXIgY2FuIG9ubHkgYmUg
dXNlZCBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAgICAgLy8gU2hhZG93aW5nIGEgYnVpbHQtaW4gb2JqZWN0CkBAIC0yNTc4LDcgKzI1Nzgs
NyBAQCB2b2lkIHNldEpTVGVzdE9iak51bGxhYmxlTG9uZ1NldHRhYmxlQXR0cmlidXRlKEV4ZWNT
dGF0ZSogZXhlYywgSlNPYmplY3QqIC8qIGJhcwogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAg
ICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFs
dWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7
Ci0gICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHRocm93Vk1UeXBlRXJy
b3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJUaGUgIiwgIlRlc3RPYmoi
LCAiLiIsICJudWxsYWJsZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZSIsICIgc2V0dGVyIGNhbiBvbmx5
IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CkBAIC0yNTk1
LDcgKzI1OTUsNyBAQCB2b2lkIHNldEpTVGVzdE9iak51bGxhYmxlU3RyaW5nVmFsdWUoRXhlY1N0
YXRlKiBleGVjLCBKU09iamVjdCogLyogYmFzZU9iamVjdCAqLwogICAgIFVOVVNFRF9QQVJBTShl
eGVjKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9i
aio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3Rl
ZFRoaXMpKSB7Ci0gICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHRocm93
Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJUaGUgIiwg
IlRlc3RPYmoiLCAiLiIsICJudWxsYWJsZVN0cmluZ1ZhbHVlIiwgIiBzZXR0ZXIgY2FuIG9ubHkg
YmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTI2MTIs
NyArMjYxMiw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqQXR0cmlidXRlV2l0aFJlc2VydmVkRW51bVR5
cGUoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogLyogYmFzCiAgICAgVU5VU0VEX1BBUkFNKGV4
ZWMpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2Jq
Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVk
VGhpcykpIHsKLSAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgdGhyb3dW
TVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIlRoZSAiLCAi
VGVzdE9iaiIsICIuIiwgImF0dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBlIiwgIiBzZXR0ZXIg
Y2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsK
QEAgLTI2MzUsNyArMjYzNSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25Wb2lkTWV0aG9kKEV4ZWNTdGF0ZSogZXhlCiAgICAgSlNWYWx1
ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0
ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChV
TkxJS0VMWSghY2FzdGVkVGhpcykpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGlu
Z3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIsICJ2b2lk
TWV0aG9kIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CiAgICAgQVNTRVJUX0dD
X09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAgVGVz
dE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpbXBsLnZvaWRNZXRob2QoKTsK
QEAgLTI2NDcsNyArMjY0Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25Wb2lkTWV0aG9kV2l0aEFyZ3MoRXhlY1N0CiAgICAgSlNWYWx1
ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0
ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChV
TkxJS0VMWSghY2FzdGVkVGhpcykpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGlu
Z3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIsICJ2b2lk
TWV0aG9kV2l0aEFyZ3MiLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKICAgICBB
U1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTVGVzdE9iajo6aW5mbygpKTsK
ICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIGlmIChleGVjLT5h
cmd1bWVudENvdW50KCkgPCAzKQpAQCAtMjY3MCw3ICsyNjcwLDcgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkJ5dGVNZXRob2QoRXhlY1N0
YXRlKiBleGUKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsK
ICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRo
aXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKLSAgICAgICAgcmV0dXJu
IHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9y
KGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAi
VGVzdE9iaiIsICIuIiwgImJ5dGVNZXRob2QiLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9i
aiIpKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTVGVzdE9i
ajo6aW5mbygpKTsKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAg
IEpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoaW1wbC5ieXRlTWV0aG9kKCkpOwpAQCAtMjY4Miw3
ICsyNjgyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbkJ5dGVNZXRob2RXaXRoQXJncyhFeGVjU3QKICAgICBKU1ZhbHVlIHRoaXNWYWx1
ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBq
c0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFj
YXN0ZWRUaGlzKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAg
ICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJv
clN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9iaiIsICIuIiwgImJ5dGVNZXRob2RXaXRo
QXJncyIsICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwogICAgIEFTU0VSVF9HQ19P
QkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNUZXN0T2JqOjppbmZvKCkpOwogICAgIFRlc3RP
YmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291
bnQoKSA8IDMpCkBAIC0yNzA1LDcgKzI3MDUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2N0ZXRNZXRob2QoRXhlY1N0YXRlKiBleAog
ICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwogICAgIEpTVGVz
dE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsK
ICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5
cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFr
ZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0T2JqIiwg
Ii4iLCAib2N0ZXRNZXRob2QiLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKICAg
ICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTVGVzdE9iajo6aW5mbygp
KTsKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIEpTVmFsdWUg
cmVzdWx0ID0ganNOdW1iZXIoaW1wbC5vY3RldE1ldGhvZCgpKTsKQEAgLTI3MTcsNyArMjcxNyw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25PY3RldE1ldGhvZFdpdGhBcmdzKEV4ZWNTCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVj
LT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWlj
Q2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhp
cykpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1
cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmco
IkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIsICJvY3RldE1ldGhvZFdpdGhBcmdzIiwg
IiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9J
TkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAgVGVzdE9iaiYgaW1w
bCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwg
MykKQEAgLTI3NDAsNyArMjc0MCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Mb25nTWV0aG9kKEV4ZWNTdGF0ZSogZXhlCiAgICAgSlNW
YWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBj
YXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlm
IChVTkxJS0VMWSghY2FzdGVkVGhpcykpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9y
KGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmlu
ZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIsICJs
b25nTWV0aG9kIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CiAgICAgQVNTRVJU
X0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAg
VGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9
IGpzTnVtYmVyKGltcGwubG9uZ01ldGhvZCgpKTsKQEAgLTI3NTIsNyArMjc1Miw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Mb25nTWV0
aG9kV2l0aEFyZ3MoRXhlY1N0CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhp
c1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rl
c3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCi0gICAg
ICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5
IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIsICJsb25nTWV0aG9kV2l0aEFyZ3MiLCAiIG9uIGluc3Rh
bmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNh
c3RlZFRoaXMsIEpTVGVzdE9iajo6aW5mbygpKTsKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVk
VGhpcy0+aW1wbCgpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAzKQpAQCAtMjc3
NSw3ICsyNzc1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk9iak1ldGhvZChFeGVjU3RhdGUqIGV4ZWMKICAgICBKU1ZhbHVlIHRoaXNW
YWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMg
PSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZ
KCFjYXN0ZWRUaGlzKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7Cisg
ICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVF
cnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9iaiIsICIuIiwgIm9iak1ldGhvZCIs
ICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1Rf
SU5IRVJJVFMoY2FzdGVkVGhpcywgSlNUZXN0T2JqOjppbmZvKCkpOwogICAgIFRlc3RPYmomIGlt
cGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSB0b0pTKGV4ZWMs
IGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBXVEY6OmdldFB0cihpbXBsLm9iak1ldGhvZCgp
KSk7CkBAIC0yNzg3LDcgKzI3ODcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kV2l0aEFyZ3MoRXhlY1N0YQogICAgIEpT
VmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiog
Y2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBp
ZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJv
cihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJp
bmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0T2JqIiwgIi4iLCAi
b2JqTWV0aG9kV2l0aEFyZ3MiLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKICAg
ICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTVGVzdE9iajo6aW5mbygp
KTsKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIGlmIChleGVj
LT5hcmd1bWVudENvdW50KCkgPCAzKQpAQCAtMjgxMCw3ICsyODEwLDcgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhTZXF1
ZW5jZUFyZyhFeGUKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUo
KTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+
KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKLSAgICAgICAgcmV0
dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVy
cm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAi
LCAiVGVzdE9iaiIsICIuIiwgIm1ldGhvZFdpdGhTZXF1ZW5jZUFyZyIsICIgb24gaW5zdGFuY2Vz
IG9mICIsICJUZXN0T2JqIikpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVk
VGhpcywgSlNUZXN0T2JqOjppbmZvKCkpOwogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlz
LT5pbXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCkBAIC0yODI3LDcg
KzI4MjcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uTWV0aG9kUmV0dXJuaW5nU2VxdWVuY2UoRQogICAgIEpTVmFsdWUgdGhpc1ZhbHVl
ID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpz
RHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNh
c3RlZFRoaXMpKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAg
ICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9y
U3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0T2JqIiwgIi4iLCAibWV0aG9kUmV0dXJuaW5n
U2VxdWVuY2UiLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKICAgICBBU1NFUlRf
R0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTVGVzdE9iajo6aW5mbygpKTsKICAgICBU
ZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIGlmIChleGVjLT5hcmd1bWVu
dENvdW50KCkgPCAxKQpAQCAtMjg0NCw3ICsyODQ0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhFbnVtQXJnKEV4ZWNT
dGEKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKICAgICBK
U1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1
ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKLSAgICAgICAgcmV0dXJuIHRocm93
Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMs
IG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9i
aiIsICIuIiwgIm1ldGhvZFdpdGhFbnVtQXJnIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RP
YmoiKSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RP
Ymo6OmluZm8oKSk7CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAg
ICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKQEAgLTI4NTMsNyArMjg1Myw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RXaXRoRW51bUFyZyhFeGVjU3RhCiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlv
bigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAg
ICBpZiAoZW51bUFyZyAhPSAiIiAmJiBlbnVtQXJnICE9ICJFbnVtVmFsdWUxIiAmJiBlbnVtQXJn
ICE9ICJFbnVtVmFsdWUyIiAmJiBlbnVtQXJnICE9ICJFbnVtVmFsdWUzIikKLSAgICAgICAgcmV0
dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVy
cm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiQXJndW1lbnQgIiwgIjEi
LCAiICgnIiwgImVudW1BcmciLCAiJykgdG8gIiwgIlRlc3RPYmoiLCAiLiIsICJtZXRob2RXaXRo
RW51bUFyZyIsICIgbXVzdCBiZSBvbmUgb2Y6ICIsICJcIlwiLCBcIkVudW1WYWx1ZTFcIiwgXCJF
bnVtVmFsdWUyXCIsIFwiRW51bVZhbHVlM1wiIikpOwogICAgIGltcGwubWV0aG9kV2l0aEVudW1B
cmcoZW51bUFyZyk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
IH0KQEAgLTI4NjMsNyArMjg2Myw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzCiAgICAgSlNW
YWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBj
YXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlm
IChVTkxJS0VMWSghY2FzdGVkVGhpcykpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9y
KGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmlu
ZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIsICJt
ZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwg
IlRlc3RPYmoiKSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBK
U1Rlc3RPYmo6OmluZm8oKSk7CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwo
KTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMikKQEAgLTI4ODYsNyArMjg4Niw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25TZXJpYWxpemVkVmFsdWUoRXhlY1N0YXRlCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVj
LT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWlj
Q2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhp
cykpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1
cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmco
IkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIsICJzZXJpYWxpemVkVmFsdWUiLCAiIG9u
IGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVS
SVRTKGNhc3RlZFRoaXMsIEpTVGVzdE9iajo6aW5mbygpKTsKICAgICBUZXN0T2JqJiBpbXBsID0g
Y2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQpA
QCAtMjkwMyw3ICsyOTAzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk9wdGlvbnNPYmplY3QoRXhlY1N0YXRlKgogICAgIEpTVmFsdWUg
dGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVk
VGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5M
SUtFTFkoIWNhc3RlZFRoaXMpKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVj
KTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdz
VHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0T2JqIiwgIi4iLCAib3B0aW9u
c09iamVjdCIsICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwogICAgIEFTU0VSVF9H
Q19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNUZXN0T2JqOjppbmZvKCkpOwogICAgIFRl
c3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50
Q291bnQoKSA8IDEpCkBAIC0yOTIzLDcgKzI5MjMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEV4Y2VwdGlvbihFeGVj
UwogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwogICAgIEpT
VGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVl
KTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQotICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywg
bWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0T2Jq
IiwgIi4iLCAibWV0aG9kV2l0aEV4Y2VwdGlvbiIsICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0
T2JqIikpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNUZXN0
T2JqOjppbmZvKCkpOwogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAg
ICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CkBAIC0yOTM3LDcgKzI5MzcsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tTWV0aG9k
KEV4ZWNTdGF0ZSogZQogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1
ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2Jq
Kj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQotICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBl
RXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxs
ICIsICJUZXN0T2JqIiwgIi4iLCAiY3VzdG9tTWV0aG9kIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwg
IlRlc3RPYmoiKSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBK
U1Rlc3RPYmo6OmluZm8oKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjYXN0ZWRUaGlz
LT5jdXN0b21NZXRob2QoZXhlYykpOwogfQpAQCAtMjk0Nyw3ICsyOTQ3LDcgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkN1c3RvbU1ldGhv
ZFdpdGhBcmdzKEV4ZWMKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFs
dWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9i
aio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKLSAgICAgICAg
cmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlw
ZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2Fs
bCAiLCAiVGVzdE9iaiIsICIuIiwgImN1c3RvbU1ldGhvZFdpdGhBcmdzIiwgIiBvbiBpbnN0YW5j
ZXMgb2YgIiwgIlRlc3RPYmoiKSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0
ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShj
YXN0ZWRUaGlzLT5jdXN0b21NZXRob2RXaXRoQXJncyhleGVjKSk7CiB9CkBAIC0yOTU3LDcgKzI5
NTcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uQWRkRXZlbnRMaXN0ZW5lcihFeGVjU3RhdAogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0g
ZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3Rl
ZFRoaXMpKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAg
cmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3Ry
aW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0T2JqIiwgIi4iLCAiYWRkRXZlbnRMaXN0ZW5lciIs
ICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1Rf
SU5IRVJJVFMoY2FzdGVkVGhpcywgSlNUZXN0T2JqOjppbmZvKCkpOwogICAgIFRlc3RPYmomIGlt
cGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgSlNWYWx1ZSBsaXN0ZW5lciA9IGV4ZWMtPmFy
Z3VtZW50KDEpOwpAQCAtMjk3Miw3ICsyOTcyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblJlbW92ZUV2ZW50TGlzdGVuZXIoRXhlY1MK
ICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKICAgICBKU1Rl
c3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7
CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1U
eXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1h
a2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9iaiIs
ICIuIiwgInJlbW92ZUV2ZW50TGlzdGVuZXIiLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9i
aiIpKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTVGVzdE9i
ajo6aW5mbygpKTsKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAg
IEpTVmFsdWUgbGlzdGVuZXIgPSBleGVjLT5hcmd1bWVudCgxKTsKQEAgLTI5ODcsNyArMjk4Nyw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25XaXRoU2NyaXB0U3RhdGVWb2lkKEV4ZWNTCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVj
LT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWlj
Q2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhp
cykpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1
cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmco
IkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIsICJ3aXRoU2NyaXB0U3RhdGVWb2lkIiwg
IiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9J
TkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAgVGVzdE9iaiYgaW1w
bCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpbXBsLndpdGhTY3JpcHRTdGF0ZVZvaWQoZXhl
Yyk7CkBAIC0yOTk5LDcgKzI5OTksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdFN0YXRlT2JqKEV4ZWNTdAogICAgIEpT
VmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiog
Y2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBp
ZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJv
cihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJp
bmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0T2JqIiwgIi4iLCAi
d2l0aFNjcmlwdFN0YXRlT2JqIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CiAg
ICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8o
KSk7CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBKU1ZhbHVl
IHJlc3VsdCA9IHRvSlMoZXhlYywgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIFdURjo6Z2V0
UHRyKGltcGwud2l0aFNjcmlwdFN0YXRlT2JqKGV4ZWMpKSk7CkBAIC0zMDEzLDcgKzMwMTMsNyBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
V2l0aFNjcmlwdFN0YXRlVm9pZEV4Y2VwdAogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+
aG9zdFRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nh
c3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMp
KQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJu
IHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJD
YW4gb25seSBjYWxsICIsICJUZXN0T2JqIiwgIi4iLCAid2l0aFNjcmlwdFN0YXRlVm9pZEV4Y2Vw
dGlvbiIsICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwogICAgIEFTU0VSVF9HQ19P
QkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNUZXN0T2JqOjppbmZvKCkpOwogICAgIFRlc3RP
YmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7
CkBAIC0zMDI3LDcgKzMwMjcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdFN0YXRlT2JqRXhjZXB0aQogICAgIEpTVmFs
dWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2Fz
dGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAo
VU5MSUtFTFkoIWNhc3RlZFRoaXMpKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihl
eGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRp
bmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0T2JqIiwgIi4iLCAid2l0
aFNjcmlwdFN0YXRlT2JqRXhjZXB0aW9uIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoi
KSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6
OmluZm8oKSk7CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBF
eGNlcHRpb25Db2RlIGVjID0gMDsKQEAgLTMwNDQsNyArMzA0NCw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0RXhlY3V0
aW9uQ29udGV4CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7
CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0
aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCi0gICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJv
cihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwg
IlRlc3RPYmoiLCAiLiIsICJ3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCIsICIgb24gaW5zdGFu
Y2VzIG9mICIsICJUZXN0T2JqIikpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2Fz
dGVkVGhpcywgSlNUZXN0T2JqOjppbmZvKCkpOwogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRU
aGlzLT5pbXBsKCk7CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0Q29udGV4dCA9
IGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSkt
PnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKQEAgLTMwNTksNyArMzA1OSw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0
RXhlY3V0aW9uQ29udGV4CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1Zh
bHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RP
YmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCi0gICAgICAg
IHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5
cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNh
bGwgIiwgIlRlc3RPYmoiLCAiLiIsICJ3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlw
dFN0YXRlIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CiAgICAgQVNTRVJUX0dD
X09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAgVGVz
dE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBzY3JpcHRDb250ZXh0ID0ganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhlYy0+bGV4
aWNhbEdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwpAQCAtMzA3NCw3
ICszMDc0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXgKICAgICBKU1ZhbHVlIHRoaXNWYWx1
ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBq
c0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFj
YXN0ZWRUaGlzKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAg
ICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJv
clN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9iaiIsICIuIiwgIndpdGhTY3JpcHRFeGVj
dXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVPYmpFeGNlcHRpb24iLCAiIG9uIGluc3RhbmNlcyBv
ZiAiLCAiVGVzdE9iaiIpKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRo
aXMsIEpTVGVzdE9iajo6aW5mbygpKTsKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+
aW1wbCgpOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwpAQCAtMzA5NCw3ICszMDk0LDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldp
dGhTY3JpcHRFeGVjdXRpb25Db250ZXgKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhv
c3RUaGlzVmFsdWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0
PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkK
LSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0
aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2Fu
IG9ubHkgY2FsbCAiLCAiVGVzdE9iaiIsICIuIiwgIndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0
QW5kU2NyaXB0U3RhdGVXaXRoU3BhY2VzIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoi
KSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6
OmluZm8oKSk7CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRDb250ZXh0ID0ganNDYXN0PEpTRE9NR2xvYmFs
T2JqZWN0Kj4oZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpOwpAQCAtMzExMSw3ICszMTExLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWwKICAg
ICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKICAgICBKU1Rlc3RP
YmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAg
ICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBl
RXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VE
T01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9iaiIsICIu
IiwgIndpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2siLCAiIG9uIGluc3RhbmNlcyBvZiAi
LCAiVGVzdE9iaiIpKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMs
IEpTVGVzdE9iajo6aW5mbygpKTsKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1w
bCgpOwogICAgIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4gc2NyaXB0QXJndW1l
bnRzKEluc3BlY3Rvcjo6Y3JlYXRlU2NyaXB0QXJndW1lbnRzKGV4ZWMsIDApKTsKQEAgLTMxMjQs
NyArMzEyNCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxBcmcoRXhlCiAgICAgSlNWYWx1ZSB0aGlzVmFs
dWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0g
anNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSgh
Y2FzdGVkVGhpcykpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAg
ICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJy
b3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIsICJtZXRob2RXaXRoT3B0
aW9uYWxBcmciLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKICAgICBBU1NFUlRf
R0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTVGVzdE9iajo6aW5mbygpKTsKICAgICBU
ZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogCkBAIC0zMTQ2LDcgKzMxNDYsNyBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQQogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+
aG9zdFRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nh
c3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMp
KQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJu
IHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJD
YW4gb25seSBjYWxsICIsICJUZXN0T2JqIiwgIi4iLCAibWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJn
QW5kT3B0aW9uYWxBcmciLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKICAgICBB
U1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTVGVzdE9iajo6aW5mbygpKTsK
ICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIGlmIChleGVjLT5h
cmd1bWVudENvdW50KCkgPCAxKQpAQCAtMzE3Myw3ICszMTczLDcgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOb25PcHRp
b25hbEFyZ0EKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsK
ICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRo
aXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKLSAgICAgICAgcmV0dXJu
IHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9y
KGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAi
VGVzdE9iaiIsICIuIiwgIm1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0FuZFR3b09wdGlvbmFsQXJn
cyIsICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwogICAgIEFTU0VSVF9HQ19PQkpF
Q1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNUZXN0T2JqOjppbmZvKCkpOwogICAgIFRlc3RPYmom
IGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQo
KSA8IDEpCkBAIC0zMjA4LDcgKzMyMDgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nKAogICAg
IEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9i
aiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAg
ICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVF
cnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURP
TUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0T2JqIiwgIi4i
LCAibWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RP
YmoiKSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RP
Ymo6OmluZm8oKSk7CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKIApA
QCAtMzIzMCw3ICszMjMwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0kKICAgICBKU1ZhbHVl
IHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3Rl
ZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVO
TElLRUxZKCFjYXN0ZWRUaGlzKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhl
Yyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5n
c1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9iaiIsICIuIiwgIm1ldGhv
ZFdpdGhPcHRpb25hbFN0cmluZ0lzVW5kZWZpbmVkIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRl
c3RPYmoiKSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rl
c3RPYmo6OmluZm8oKSk7CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsK
ICAgICBjb25zdCBTdHJpbmcmIHN0cihleGVjLT5hcmd1bWVudCgwKS5pc0VtcHR5KCkgPyBTdHJp
bmcoKSA6IGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSk7CkBA
IC0zMjQ1LDcgKzMyNDUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nSQogICAgIEpTVmFsdWUg
dGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVk
VGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5M
SUtFTFkoIWNhc3RlZFRoaXMpKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVj
KTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdz
VHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0T2JqIiwgIi4iLCAibWV0aG9k
V2l0aE9wdGlvbmFsU3RyaW5nSXNOdWxsU3RyaW5nIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRl
c3RPYmoiKSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rl
c3RPYmo6OmluZm8oKSk7CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsK
ICAgICBjb25zdCBTdHJpbmcmIHN0cihhcmd1bWVudE9yTnVsbChleGVjLCAwKS5pc0VtcHR5KCkg
PyBTdHJpbmcoKSA6IGFyZ3VtZW50T3JOdWxsKGV4ZWMsIDApLnRvU3RyaW5nKGV4ZWMpLT52YWx1
ZShleGVjKSk7CkBAIC0zMjYwLDEzICszMjYwLDEzIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQ2FsbGJhY2tBcmcoRXhl
CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNU
ZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUp
OwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCi0gICAgICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBt
YWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RPYmoi
LCAiLiIsICJtZXRob2RXaXRoQ2FsbGJhY2tBcmciLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVz
dE9iaiIpKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTVGVz
dE9iajo6aW5mbygpKTsKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwog
ICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dW
TUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKICAgICBp
ZiAoIWV4ZWMtPmFyZ3VtZW50KDApLmlzRnVuY3Rpb24oKSkKLSAgICAgICAgcmV0dXJuIHRocm93
Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMs
IG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiQXJndW1lbnQgIiwgIjEiLCAiICgnIiwg
ImNhbGxiYWNrIiwgIicpIHRvICIsICJUZXN0T2JqIiwgIi4iLCAibWV0aG9kV2l0aENhbGxiYWNr
QXJnIiwgIiBtdXN0IGJlIGEgZnVuY3Rpb24iKSk7CiAgICAgUmVmUHRyPFRlc3RDYWxsYmFjaz4g
Y2FsbGJhY2sgPSBKU1Rlc3RDYWxsYmFjazo6Y3JlYXRlKGFzT2JqZWN0KGV4ZWMtPnVuY2hlY2tl
ZEFyZ3VtZW50KDApKSwgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCkpOwogICAgIGltcGwubWV0
aG9kV2l0aENhbGxiYWNrQXJnKGNhbGxiYWNrKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwpAQCAtMzI3Nyw3ICszMjc3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOb25DYWxsYmFj
a0FyZ0EKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKICAg
ICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRoaXNW
YWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKLSAgICAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVz
dE9iaiIsICIuIiwgIm1ldGhvZFdpdGhOb25DYWxsYmFja0FyZ0FuZENhbGxiYWNrQXJnIiwgIiBv
biBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhF
UklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAgVGVzdE9iaiYgaW1wbCA9
IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMikK
QEAgLTMyODYsNyArMzI4Niw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uQ2FsbGJhY2tBcmdBCiAgICAgaWYgKFVO
TElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBpZiAoIWV4ZWMtPmFyZ3VtZW50KDEpLmlzRnVuY3Rp
b24oKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJl
dHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmlu
ZygiQXJndW1lbnQgIiwgIjIiLCAiICgnIiwgImNhbGxiYWNrIiwgIicpIHRvICIsICJUZXN0T2Jq
IiwgIi4iLCAibWV0aG9kV2l0aE5vbkNhbGxiYWNrQXJnQW5kQ2FsbGJhY2tBcmciLCAiIG11c3Qg
YmUgYSBmdW5jdGlvbiIpKTsKICAgICBSZWZQdHI8VGVzdENhbGxiYWNrPiBjYWxsYmFjayA9IEpT
VGVzdENhbGxiYWNrOjpjcmVhdGUoYXNPYmplY3QoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkp
LCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSk7CiAgICAgaW1wbC5tZXRob2RXaXRoTm9uQ2Fs
bGJhY2tBcmdBbmRDYWxsYmFja0FyZyhub25DYWxsYmFjaywgY2FsbGJhY2spOwogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CkBAIC0zMjk3LDEzICszMjk3LDEzIEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoQ2FsbGJhY2tBbmRPcHRpCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5o
b3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2Fz
dDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykp
Ci0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4g
dGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNh
biBvbmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIsICJtZXRob2RXaXRoQ2FsbGJhY2tBbmRPcHRp
b25hbEFyZyIsICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwogICAgIEFTU0VSVF9H
Q19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNUZXN0T2JqOjppbmZvKCkpOwogICAgIFRl
c3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgUmVmUHRyPFRlc3RDYWxsYmFj
az4gY2FsbGJhY2s7CiAgICAgaWYgKCFleGVjLT5hcmd1bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVs
bCgpKSB7CiAgICAgICAgIGlmICghZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkuaXNGdW5jdGlv
bigpKQotICAgICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAg
ICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJy
b3JTdHJpbmcoIkFyZ3VtZW50ICIsICIxIiwgIiAoJyIsICJjYWxsYmFjayIsICInKSB0byAiLCAi
VGVzdE9iaiIsICIuIiwgIm1ldGhvZFdpdGhDYWxsYmFja0FuZE9wdGlvbmFsQXJnIiwgIiBtdXN0
IGJlIGEgZnVuY3Rpb24iKSk7CiAgICAgICAgIGNhbGxiYWNrID0gSlNUZXN0Q2FsbGJhY2s6OmNy
ZWF0ZShhc09iamVjdChleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSksIGNhc3RlZFRoaXMtPmds
b2JhbE9iamVjdCgpKTsKICAgICB9CiAgICAgaW1wbC5tZXRob2RXaXRoQ2FsbGJhY2tBbmRPcHRp
b25hbEFyZyhjYWxsYmFjayk7CkBAIC0zMzE1LDcgKzMzMTUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25TdGF0aWNNZXRob2RXaXRo
Q2FsbGJhYwogICAgIFJlZlB0cjxUZXN0Q2FsbGJhY2s+IGNhbGxiYWNrOwogICAgIGlmICghZXhl
Yy0+YXJndW1lbnQoMCkuaXNVbmRlZmluZWRPck51bGwoKSkgewogICAgICAgICBpZiAoIWV4ZWMt
PnVuY2hlY2tlZEFyZ3VtZW50KDApLmlzRnVuY3Rpb24oKSkKLSAgICAgICAgICAgIHJldHVybiB0
aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJy
b3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJBcmd1bWVudCAiLCAiMSIs
ICIgKCciLCAiY2FsbGJhY2siLCAiJykgdG8gIiwgIlRlc3RPYmoiLCAiLiIsICJzdGF0aWNNZXRo
b2RXaXRoQ2FsbGJhY2tBbmRPcHRpb25hbEFyZyIsICIgbXVzdCBiZSBhIGZ1bmN0aW9uIikpOwog
ICAgICAgICBjYWxsYmFjayA9IGNyZWF0ZUZ1bmN0aW9uT25seUNhbGxiYWNrPEpTVGVzdENhbGxi
YWNrPihleGVjLCBqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihleGVjLT5sZXhpY2FsR2xvYmFs
T2JqZWN0KCkpLCBleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CiAgICAgfQogICAgIFRlc3RP
Ymo6OnN0YXRpY01ldGhvZFdpdGhDYWxsYmFja0FuZE9wdGlvbmFsQXJnKGNhbGxiYWNrKTsKQEAg
LTMzMjcsNyArMzMyNyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
Q29uc3RydWN0b3JGdW5jdGlvblN0YXRpY01ldGhvZFdpdGhDYWxsYmFjCiAgICAgaWYgKGV4ZWMt
PmFyZ3VtZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywg
Y3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwogICAgIGlmICghZXhlYy0+YXJn
dW1lbnQoMCkuaXNGdW5jdGlvbigpKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihl
eGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRp
bmdzVHlwZUVycm9yU3RyaW5nKCJBcmd1bWVudCAiLCAiMSIsICIgKCciLCAiY2FsbGJhY2siLCAi
JykgdG8gIiwgIlRlc3RPYmoiLCAiLiIsICJzdGF0aWNNZXRob2RXaXRoQ2FsbGJhY2tBcmciLCAi
IG11c3QgYmUgYSBmdW5jdGlvbiIpKTsKICAgICBSZWZQdHI8VGVzdENhbGxiYWNrPiBjYWxsYmFj
ayA9IGNyZWF0ZUZ1bmN0aW9uT25seUNhbGxiYWNrPEpTVGVzdENhbGxiYWNrPihleGVjLCBqc0Nh
c3Q8SlNET01HbG9iYWxPYmplY3QqPihleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLCBleGVj
LT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CiAgICAgVGVzdE9iajo6c3RhdGljTWV0aG9kV2l0aENh
bGxiYWNrQXJnKGNhbGxiYWNrKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwpAQCAtMzMzOSw3ICszMzM5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsTWV0aG9kMShFeGVjU3QKICAg
ICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKICAgICBKU1Rlc3RP
YmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAg
ICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBl
RXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VE
T01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9iaiIsICIu
IiwgImNvbmRpdGlvbmFsTWV0aG9kMSIsICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikp
OwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNUZXN0T2JqOjpp
bmZvKCkpOwogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgSlNW
YWx1ZSByZXN1bHQgPSBqc1N0cmluZ1dpdGhDYWNoZShleGVjLCBpbXBsLmNvbmRpdGlvbmFsTWV0
aG9kMSgpKTsKQEAgLTMzNTQsNyArMzM1NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbE1ldGhvZDIoRXhlY1N0CiAg
ICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0
T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwog
ICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlw
ZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtl
RE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAi
LiIsICJjb25kaXRpb25hbE1ldGhvZDIiLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIp
KTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTVGVzdE9iajo6
aW5mbygpKTsKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIGlt
cGwuY29uZGl0aW9uYWxNZXRob2QyKCk7CkBAIC0zMzY5LDcgKzMzNjksNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxN
ZXRob2QzKEV4ZWNTdAogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1
ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2Jq
Kj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQotICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBl
RXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxs
ICIsICJUZXN0T2JqIiwgIi4iLCAiY29uZGl0aW9uYWxNZXRob2QzIiwgIiBvbiBpbnN0YW5jZXMg
b2YgIiwgIlRlc3RPYmoiKSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRU
aGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMt
PmltcGwoKTsKICAgICBpbXBsLmNvbmRpdGlvbmFsTWV0aG9kMygpOwpAQCAtMzM4Myw3ICszMzgz
LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMSgKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4
ZWMtPmhvc3RUaGlzVmFsdWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFt
aWNDYXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRU
aGlzKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJl
dHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmlu
ZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9iaiIsICIuIiwgIm92ZXJsb2FkZWRNZXRob2QiLCAi
IG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lO
SEVSSVRTKGNhc3RlZFRoaXMsIEpTVGVzdE9iajo6aW5mbygpKTsKICAgICBUZXN0T2JqJiBpbXBs
ID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAy
KQpAQCAtMzQwMyw3ICszNDAzLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMigKICAgICBKU1Zh
bHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKICAgICBKU1Rlc3RPYmoqIGNh
c3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAgICAgaWYg
KFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Io
ZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5k
aW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9iaiIsICIuIiwgIm92
ZXJsb2FkZWRNZXRob2QiLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKICAgICBB
U1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTVGVzdE9iajo6aW5mbygpKTsK
ICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIGlmIChleGVjLT5h
cmd1bWVudENvdW50KCkgPCAxKQpAQCAtMzQzMCw3ICszNDMwLDcgQEAgc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVk
TWV0aG9kMygKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsK
ICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRo
aXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKLSAgICAgICAgcmV0dXJu
IHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9y
KGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAi
VGVzdE9iaiIsICIuIiwgIm92ZXJsb2FkZWRNZXRob2QiLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAi
VGVzdE9iaiIpKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpT
VGVzdE9iajo6aW5mbygpKTsKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgp
OwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQpAQCAtMzQ0Nyw3ICszNDQ3LDcg
QEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kNCgKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMt
Pmhvc3RUaGlzVmFsdWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWND
YXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlz
KSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygi
Q2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9iaiIsICIuIiwgIm92ZXJsb2FkZWRNZXRob2QiLCAiIG9u
IGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVS
SVRTKGNhc3RlZFRoaXMsIEpTVGVzdE9iajo6aW5mbygpKTsKICAgICBUZXN0T2JqJiBpbXBsID0g
Y2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQpA
QCAtMzQ2NCwxMyArMzQ2NCwxMyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q1KAogICAgIEpTVmFs
dWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2Fz
dGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAo
VU5MSUtFTFkoIWNhc3RlZFRoaXMpKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihl
eGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRp
bmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0T2JqIiwgIi4iLCAib3Zl
cmxvYWRlZE1ldGhvZCIsICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwogICAgIEFT
U0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNUZXN0T2JqOjppbmZvKCkpOwog
ICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFy
Z3VtZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3Jl
YXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwogICAgIGlmICghZXhlYy0+YXJndW1l
bnQoMCkuaXNGdW5jdGlvbigpKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVj
KTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdz
VHlwZUVycm9yU3RyaW5nKCJBcmd1bWVudCAiLCAiMSIsICIgKCciLCAiY2FsbGJhY2siLCAiJykg
dG8gIiwgIlRlc3RPYmoiLCAiLiIsICJvdmVybG9hZGVkTWV0aG9kIiwgIiBtdXN0IGJlIGEgZnVu
Y3Rpb24iKSk7CiAgICAgUmVmUHRyPFRlc3RDYWxsYmFjaz4gY2FsbGJhY2sgPSBKU1Rlc3RDYWxs
YmFjazo6Y3JlYXRlKGFzT2JqZWN0KGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKSwgY2FzdGVk
VGhpcy0+Z2xvYmFsT2JqZWN0KCkpOwogICAgIGltcGwub3ZlcmxvYWRlZE1ldGhvZChjYWxsYmFj
ayk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKQEAgLTM0ODEs
NyArMzQ4MSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDYoCiAgICAgSlNWYWx1ZSB0aGlzVmFs
dWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0g
anNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSgh
Y2FzdGVkVGhpcykpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAg
ICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJy
b3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIsICJvdmVybG9hZGVkTWV0
aG9kIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CiAgICAgQVNTRVJUX0dDX09C
SkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAgVGVzdE9i
aiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3Vu
dCgpIDwgMSkKQEAgLTM0OTgsNyArMzQ5OCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDcoCiAg
ICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0
T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwog
ICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlw
ZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtl
RE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAi
LiIsICJvdmVybG9hZGVkTWV0aG9kIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7
CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6Omlu
Zm8oKSk7CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAo
ZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKQEAgLTM1MTUsNyArMzUxNSw3IEBAIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zl
cmxvYWRlZE1ldGhvZDgoCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1Zh
bHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RP
YmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCi0gICAgICAg
IHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5
cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNh
bGwgIiwgIlRlc3RPYmoiLCAiLiIsICJvdmVybG9hZGVkTWV0aG9kIiwgIiBvbiBpbnN0YW5jZXMg
b2YgIiwgIlRlc3RPYmoiKSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRU
aGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMt
PmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKQEAgLTM1MzIsNyAr
MzUzMiw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDkoCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUg
PSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNE
eW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2Fz
dGVkVGhpcykpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAg
ICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JT
dHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIsICJvdmVybG9hZGVkTWV0aG9k
IiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CiAgICAgQVNTRVJUX0dDX09CSkVD
VF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAgVGVzdE9iaiYg
aW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgp
IDwgMSkKQEAgLTM1NDksNyArMzU0OSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDEwCiAgICAg
SlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2Jq
KiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAg
IGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVy
cm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9N
QmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIs
ICJvdmVybG9hZGVkTWV0aG9kIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CiAg
ICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8o
KSk7CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhl
Yy0+YXJndW1lbnRDb3VudCgpIDwgMSkKQEAgLTM1NjYsNyArMzU2Niw3IEBAIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zlcmxv
YWRlZE1ldGhvZDExCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVl
KCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoq
Pih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCi0gICAgICAgIHJl
dHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVF
cnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwg
IiwgIlRlc3RPYmoiLCAiLiIsICJvdmVybG9hZGVkTWV0aG9kIiwgIiBvbiBpbnN0YW5jZXMgb2Yg
IiwgIlRlc3RPYmoiKSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlz
LCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmlt
cGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKQEAgLTM2OTEsNyArMzY5
MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25DbGFzc01ldGhvZFdpdGhDbGFtcChFeGVjCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBl
eGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5h
bWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVk
VGhpcykpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJp
bmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIsICJjbGFzc01ldGhvZFdpdGhDbGFt
cCIsICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwogICAgIEFTU0VSVF9HQ19PQkpF
Q1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNUZXN0T2JqOjppbmZvKCkpOwogICAgIFRlc3RPYmom
IGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQo
KSA8IDIpCkBAIC0zNzIxLDcgKzM3MjEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFVuc2lnbmVkTG9uZ1NlcQogICAg
IEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9i
aiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAg
ICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVF
cnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURP
TUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0T2JqIiwgIi4i
LCAibWV0aG9kV2l0aFVuc2lnbmVkTG9uZ1NlcXVlbmNlIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwg
IlRlc3RPYmoiKSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBK
U1Rlc3RPYmo6OmluZm8oKSk7CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwo
KTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKQEAgLTM3MzgsNyArMzczOCw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25TdHJpbmdBcnJheUZ1bmN0aW9uKEV4ZWNTCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVj
LT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWlj
Q2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhp
cykpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1
cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmco
IkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIsICJzdHJpbmdBcnJheUZ1bmN0aW9uIiwg
IiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9J
TkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAgVGVzdE9iaiYgaW1w
bCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwg
MSkKQEAgLTM3NTgsNyArMzc1OCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Eb21TdHJpbmdMaXN0RnVuY3Rpb24oRXhlCiAgICAgSlNW
YWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBj
YXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlm
IChVTkxJS0VMWSghY2FzdGVkVGhpcykpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9y
KGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmlu
ZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIsICJk
b21TdHJpbmdMaXN0RnVuY3Rpb24iLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsK
ICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTVGVzdE9iajo6aW5m
bygpKTsKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIGlmIChl
eGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQpAQCAtMzc3OCw3ICszNzc4LDcgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkdldFNWR0RvY3Vt
ZW50KEV4ZWNTdGF0ZSoKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFs
dWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9i
aio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKLSAgICAgICAg
cmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlw
ZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2Fs
bCAiLCAiVGVzdE9iaiIsICIuIiwgImdldFNWR0RvY3VtZW50IiwgIiBvbiBpbnN0YW5jZXMgb2Yg
IiwgIlRlc3RPYmoiKSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlz
LCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmlt
cGwoKTsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKQEAgLTM3OTUsNyArMzc5NSw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252
ZXJ0MShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0
VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxK
U1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCi0g
ICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhy
b3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBv
bmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIsICJjb252ZXJ0MSIsICIgb24gaW5zdGFuY2VzIG9m
ICIsICJUZXN0T2JqIikpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhp
cywgSlNUZXN0T2JqOjppbmZvKCkpOwogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5p
bXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCkBAIC0zODEyLDcgKzM4
MTIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uQ29udmVydDIoRXhlY1N0YXRlKiBleGVjKQogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0g
ZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3Rl
ZFRoaXMpKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAg
cmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3Ry
aW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0T2JqIiwgIi4iLCAiY29udmVydDIiLCAiIG9uIGlu
c3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRT
KGNhc3RlZFRoaXMsIEpTVGVzdE9iajo6aW5mbygpKTsKICAgICBUZXN0T2JqJiBpbXBsID0gY2Fz
dGVkVGhpcy0+aW1wbCgpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQpAQCAt
MzgyOSw3ICszODI5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkNvbnZlcnQ0KEV4ZWNTdGF0ZSogZXhlYykKICAgICBKU1ZhbHVlIHRo
aXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRo
aXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElL
RUxZKCFjYXN0ZWRUaGlzKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7
CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5
cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9iaiIsICIuIiwgImNvbnZlcnQ0
IiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CiAgICAgQVNTRVJUX0dDX09CSkVD
VF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAgVGVzdE9iaiYg
aW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgp
IDwgMSkKQEAgLTM4NDYsNyArMzg0Niw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0NShFeGVjU3RhdGUqIGV4ZWMpCiAgICAg
SlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2Jq
KiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAg
IGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVy
cm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9N
QmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIs
ICJjb252ZXJ0NSIsICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0T2JqIikpOwogICAgIEFTU0VS
VF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNUZXN0T2JqOjppbmZvKCkpOwogICAg
IFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFyZ3Vt
ZW50Q291bnQoKSA8IDEpCkBAIC0zODYzLDcgKzM4NjMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTXV0YWJsZVBvaW50RnVuY3Rpb24o
RXhlYwogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwogICAg
IEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1Zh
bHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQotICAgICAgICByZXR1cm4gdGhy
b3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhl
YywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0
T2JqIiwgIi4iLCAibXV0YWJsZVBvaW50RnVuY3Rpb24iLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAi
VGVzdE9iaiIpKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpT
VGVzdE9iajo6aW5mbygpKTsKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgp
OwogICAgIEpTVmFsdWUgcmVzdWx0ID0gdG9KUyhleGVjLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmpl
Y3QoKSwgV1RGOjpnZXRQdHIoU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR1BvaW50Pjo6Y3JlYXRlKGlt
cGwubXV0YWJsZVBvaW50RnVuY3Rpb24oKSkpKTsKQEAgLTM4NzUsNyArMzg3NSw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25JbW11dGFi
bGVQb2ludEZ1bmN0aW9uKEV4CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhp
c1ZhbHVlKCk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rl
c3RPYmoqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCi0gICAg
ICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5
IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIsICJpbW11dGFibGVQb2ludEZ1bmN0aW9uIiwgIiBvbiBp
bnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklU
UyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNh
c3RlZFRoaXMtPmltcGwoKTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9IHRvSlMoZXhlYywgY2FzdGVk
VGhpcy0+Z2xvYmFsT2JqZWN0KCksIFdURjo6Z2V0UHRyKFNWR1Byb3BlcnR5VGVhck9mZjxTVkdQ
b2ludD46OmNyZWF0ZShpbXBsLmltbXV0YWJsZVBvaW50RnVuY3Rpb24oKSkpKTsKQEAgLTM4ODcs
NyArMzg4Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25PcmFuZ2UoRXhlY1N0YXRlKiBleGVjKQogICAgIEpTVmFsdWUgdGhpc1ZhbHVl
ID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpz
RHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNh
c3RlZFRoaXMpKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAg
ICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9y
U3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0T2JqIiwgIi4iLCAib3JhbmdlIiwgIiBvbiBp
bnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklU
UyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNh
c3RlZFRoaXMtPmltcGwoKTsKICAgICBpbXBsLmJhbmFuYSgpOwpAQCAtMzg5OSw3ICszODk5LDcg
QEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
blN0cmljdEZ1bmN0aW9uKEV4ZWNTdGF0ZSoKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMt
Pmhvc3RUaGlzVmFsdWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWND
YXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlz
KSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygi
Q2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9iaiIsICIuIiwgInN0cmljdEZ1bmN0aW9uIiwgIiBvbiBp
bnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklU
UyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNh
c3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMykKQEAg
LTM5MjUsMTQgKzM5MjUsMTQgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvblN0cmljdEZ1bmN0aW9uV2l0aFNlcXVlbmMKICAgICBKU1ZhbHVl
IHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3Rl
ZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVO
TElLRUxZKCFjYXN0ZWRUaGlzKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhl
Yyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5n
c1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9iaiIsICIuIiwgInN0cmlj
dEZ1bmN0aW9uV2l0aFNlcXVlbmNlIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7
CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6Omlu
Zm8oKSk7CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAo
ZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMikKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihl
eGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7CiAgICAgRXhjZXB0aW9u
Q29kZSBlYyA9IDA7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA+IDAgJiYgIWV4ZWMt
PmFyZ3VtZW50KDApLmlzVW5kZWZpbmVkT3JOdWxsKCkgJiYgIWV4ZWMtPmFyZ3VtZW50KDApLmlu
aGVyaXRzKEpTVGVzdE9iajo6aW5mbygpKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJy
b3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01C
aW5kaW5nc1R5cGVFcnJvclN0cmluZygiQXJndW1lbnQgIiwgIjEiLCAiICgnIiwgIm9iakFyZyIs
ICInKSB0byAiLCAiVGVzdE9iaiIsICIuIiwgInN0cmljdEZ1bmN0aW9uV2l0aFNlcXVlbmNlIiwg
IiBtdXN0IGJlIGFuIGluc3RhbmNlIG9mICIsICJUZXN0T2JqIikpOwogICAgIFRlc3RPYmoqIG9i
akFyZyh0b1Rlc3RPYmooZXhlYy0+YXJndW1lbnQoMCkpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhl
Yy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwpAQCAtMzk1MCwxNCArMzk1MCwxNCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU3RyaWN0RnVuY3Rpb25XaXRoQXJyYXko
RQogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwogICAgIEpT
VGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVl
KTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQotICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywg
bWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0T2Jq
IiwgIi4iLCAic3RyaWN0RnVuY3Rpb25XaXRoQXJyYXkiLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAi
VGVzdE9iaiIpKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpT
VGVzdE9iajo6aW5mbygpKTsKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgp
OwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAyKQogICAgICAgICByZXR1cm4gdGhy
b3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKICAg
ICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpID4g
MCAmJiAhZXhlYy0+YXJndW1lbnQoMCkuaXNVbmRlZmluZWRPck51bGwoKSAmJiAhZXhlYy0+YXJn
dW1lbnQoMCkuaW5oZXJpdHMoSlNUZXN0T2JqOjppbmZvKCkpKQotICAgICAgICByZXR1cm4gdGhy
b3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhl
YywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJBcmd1bWVudCAiLCAiMSIsICIgKCci
LCAib2JqQXJnIiwgIicpIHRvICIsICJUZXN0T2JqIiwgIi4iLCAic3RyaWN0RnVuY3Rpb25XaXRo
QXJyYXkiLCAiIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgIiwgIlRlc3RPYmoiKSk7CiAgICAgVGVz
dE9iaiogb2JqQXJnKHRvVGVzdE9iaihleGVjLT5hcmd1bWVudCgwKSkpOwogICAgIGlmIChVTkxJ
S0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CkBAIC0zOTc1LDcgKzM5NzUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVmFyaWFkaWNTdHJpbmdNZXRo
b2QoRXhlYwogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwog
ICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhp
c1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQotICAgICAgICByZXR1cm4g
dGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Io
ZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJU
ZXN0T2JqIiwgIi4iLCAidmFyaWFkaWNTdHJpbmdNZXRob2QiLCAiIG9uIGluc3RhbmNlcyBvZiAi
LCAiVGVzdE9iaiIpKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMs
IEpTVGVzdE9iajo6aW5mbygpKTsKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1w
bCgpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQpAQCAtMzk5NSw3ICszOTk1
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvblZhcmlhZGljRG91YmxlTWV0aG9kKEV4ZWMKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4
ZWMtPmhvc3RUaGlzVmFsdWUoKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFt
aWNDYXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRU
aGlzKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJl
dHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmlu
ZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9iaiIsICIuIiwgInZhcmlhZGljRG91YmxlTWV0aG9k
IiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CiAgICAgQVNTRVJUX0dDX09CSkVD
VF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAgVGVzdE9iaiYg
aW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgp
IDwgMSkKQEAgLTQwMTUsNyArNDAxNSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25WYXJpYWRpY05vZGVNZXRob2QoRXhlY1N0CiAgICAg
SlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0T2Jq
KiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwogICAg
IGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVy
cm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9N
QmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRlc3RPYmoiLCAiLiIs
ICJ2YXJpYWRpY05vZGVNZXRob2QiLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdE9iaiIpKTsK
ICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTVGVzdE9iajo6aW5m
bygpKTsKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIGlmIChl
eGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQpAQCAtNDAyNiw3ICs0MDI2LDcgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZhcmlhZGljTm9k
ZU1ldGhvZChFeGVjU3QKICAgICBWZWN0b3I8Tm9kZSo+IHRhaWw7CiAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMSwgY291bnQgPSBleGVjLT5hcmd1bWVudENvdW50KCk7IGkgPCBjb3VudDsgKytpKSB7
CiAgICAgICAgIGlmICghZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoaSkuaW5oZXJpdHMoSlNOb2Rl
OjppbmZvKCkpKQotICAgICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7Cisg
ICAgICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NU
eXBlRXJyb3JTdHJpbmcoIkFyZ3VtZW50ICIsICIyIiwgIiAoJyIsICJ0YWlsIiwgIicpIHRvICIs
ICJUZXN0T2JqIiwgIi4iLCAidmFyaWFkaWNOb2RlTWV0aG9kIiwgIiBtdXN0IGJlIGEgZnVuY3Rp
b24iKSk7CiAgICAgICAgIHRhaWwuYXBwZW5kKHRvTm9kZShleGVjLT51bmNoZWNrZWRBcmd1bWVu
dChpKSkpOwogICAgIH0KICAgICBpbXBsLnZhcmlhZGljTm9kZU1ldGhvZChoZWFkLCB0YWlsKTsK
QEAgLTQwMzgsNyArNDAzOCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25BbnkoRXhlY1N0YXRlKiBleGVjKQogICAgIEpTVmFsdWUgdGhp
c1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhp
cyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtF
TFkoIWNhc3RlZFRoaXMpKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsK
KyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlw
ZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0T2JqIiwgIi4iLCAiYW55IiwgIiBv
biBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhF
UklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAgVGVzdE9iaiYgaW1wbCA9
IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZS5jcHAKaW5kZXggZDJmODhiODZiMjdjZTE2NGIxYTY1YjVhYjRkZGUxNWJmNzk1MzU3Mi4uZDBh
M2YxNTgzNDM0ZDQ5NDg4YzQ3OGEzZDM2NmI0Yzk5MTM3YjBiMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKQEAgLTEzOCw3
ICsxMzgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2VWYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZQogICAgICAgICAgICAgc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3Nh
Z2VMZXZlbDo6RXJyb3IsIFN0cmluZygiRGVwcmVjYXRlZCBhdHRlbXB0IHRvIGFjY2VzcyBwcm9w
ZXJ0eSAndmFsdWUnIG9uIGEgbm9uLVRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2Ug
b2JqZWN0LiIpKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7
CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5
cGVFcnJvclN0cmluZygiVGhlICIsICJUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
IiwgIi4iLCAidmFsdWUiLCAiIGdldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBv
ZiAiLCAiVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSIpKTsKICAgICB9CiAgICAg
VU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2UmIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CkBAIC0xNTcsNyArMTU3LDcgQEAgRW5jb2Rl
ZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUmVhZG9ubHlWYWx1
ZShFeGVjU3RhdGUqIGV4ZWMKICAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFk
ZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBT
dHJpbmcoIkRlcHJlY2F0ZWQgYXR0ZW1wdCB0byBhY2Nlc3MgcHJvcGVydHkgJ3JlYWRvbmx5VmFs
dWUnIG9uIGEgbm9uLVRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2Ugb2JqZWN0LiIp
KTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAg
ICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAg
IHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0
cmluZygiVGhlICIsICJUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlIiwgIi4iLCAi
cmVhZG9ubHlWYWx1ZSIsICIgZ2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9m
ICIsICJUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlIikpOwogICAgIH0KICAgICBV
TlVTRURfUEFSQU0oZXhlYyk7CiAgICAgVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZSYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTE3Niw3ICsxNzYsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRWYWx1ZShF
eGVjU3RhdGUqIGV4ZWMsCiAgICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5hZGRD
b25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgU3Ry
aW5nKCJEZXByZWNhdGVkIGF0dGVtcHQgdG8gYWNjZXNzIHByb3BlcnR5ICdjYWNoZWRWYWx1ZScg
b24gYSBub24tVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSBvYmplY3QuIikpOwog
ICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICAg
ICAgfQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0
dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5n
KCJUaGUgIiwgIlRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UiLCAiLiIsICJjYWNo
ZWRWYWx1ZSIsICIgZ2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mICIsICJU
ZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlIikpOwogICAgIH0KICAgICBVTlVTRURf
UEFSQU0oZXhlYyk7CiAgICAgaWYgKEpTVmFsdWUgY2FjaGVkVmFsdWUgPSBjYXN0ZWRUaGlzLT5t
X2NhY2hlZFZhbHVlLmdldCgpKQpAQCAtMTk4LDcgKzE5OCw3IEBAIEVuY29kZWRKU1ZhbHVlIGpz
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVBvcnRzKEV4ZWNTdGF0ZSogZXhlYywg
SlNPYmplCiAgICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5hZGRDb25zb2xlTWVz
c2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgU3RyaW5nKCJEZXBy
ZWNhdGVkIGF0dGVtcHQgdG8gYWNjZXNzIHByb3BlcnR5ICdwb3J0cycgb24gYSBub24tVGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSBvYmplY3QuIikpOwogICAgICAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICAgICAgfQotICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBl
RXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJUaGUgIiwgIlRlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UiLCAiLiIsICJwb3J0cyIsICIgZ2V0dGVyIGNh
biBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0U2VyaWFsaXplZFNjcmlwdFZh
bHVlSW50ZXJmYWNlIikpOwogICAgIH0KICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwo
KTsKQEAgLTIxNyw3ICsyMTcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRSZWFkb25seVZhbHVlKEV4ZWNTdGF0ZQogICAgICAgICAg
ICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJj
ZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIFN0cmluZygiRGVwcmVjYXRlZCBhdHRlbXB0IHRv
IGFjY2VzcyBwcm9wZXJ0eSAnY2FjaGVkUmVhZG9ubHlWYWx1ZScgb24gYSBub24tVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSBvYmplY3QuIikpOwogICAgICAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICAgICAgfQotICAgICAgICByZXR1
cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJy
b3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJUaGUgIiwgIlRlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UiLCAiLiIsICJjYWNoZWRSZWFkb25seVZhbHVlIiwg
IiBnZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2UiKSk7CiAgICAgfQogICAgIFVOVVNFRF9QQVJBTShleGVj
KTsKICAgICBpZiAoSlNWYWx1ZSBjYWNoZWRWYWx1ZSA9IGNhc3RlZFRoaXMtPm1fY2FjaGVkUmVh
ZG9ubHlWYWx1ZS5nZXQoKSkKQEAgLTI0NSw3ICsyNDUsNyBAQCB2b2lkIHNldEpTVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3Qq
IC8qCiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAg
IGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKLSAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihl
eGVjKTsKKyAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBl
RXJyb3JTdHJpbmcoIlRoZSAiLCAiVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSIs
ICIuIiwgInZhbHVlIiwgIiBzZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2Yg
IiwgIlRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UiKSk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAgICAgVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSYgaW1wbCA9
IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTI2Miw3ICsyNjIsNyBAQCB2b2lkIHNldEpTVGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNhY2hlZFZhbHVlKEV4ZWNTdGF0ZSogZXhlYywg
SlNPYmplYwogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBKU1Rlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2UqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsK
ICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7Ci0gICAgICAgIHRocm93Vk1UeXBlRXJy
b3IoZXhlYyk7CisgICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdz
VHlwZUVycm9yU3RyaW5nKCJUaGUgIiwgIlRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2UiLCAiLiIsICJjYWNoZWRWYWx1ZSIsICIgc2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5z
dGFuY2VzIG9mICIsICJUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlIikpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogICAgIFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2UmIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcAppbmRleCA0
NjllMTg4ZTljODM0Y2JlNjhhZTRhOGUwODU4ZTBhYTY0MjA1ZmFjLi43MWNiMTMxZjZiZTE1YWYy
NTAxYWMxZDhlZmJmNjk3NTA1ZGRhNjFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHAKQEAgLTcwLDcg
KzcwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU1Rlc3RUeXBlZGVmc0NvbnN0
cnVjdG9yOjpjb25zdHJ1Y3RKU1Rlc3RUeXBlZGVmcygKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+
aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwogICAgIGlmICghZXhlYy0+YXJndW1lbnQoMSkuaXNGdW5jdGlvbigpKQotICAgICAg
ICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1U
eXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJBcmd1bWVudCAi
LCAiMiIsICIgKCciLCAidGVzdENhbGxiYWNrIiwgIicpIHRvICIsICJ0aGUgIiwgIlRlc3RUeXBl
ZGVmcyIsICIgY29uc3RydWN0b3IiLCAiIG11c3QgYmUgYSBmdW5jdGlvbiIpKTsKICAgICBSZWZQ
dHI8VGVzdENhbGxiYWNrPiB0ZXN0Q2FsbGJhY2sgPSBKU1Rlc3RDYWxsYmFjazo6Y3JlYXRlKGFz
T2JqZWN0KGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpKSwgY2FzdGVkVGhpcy0+Z2xvYmFsT2Jq
ZWN0KCkpOwogICAgIFJlZlB0cjxUZXN0VHlwZWRlZnM+IG9iamVjdCA9IFRlc3RUeXBlZGVmczo6
Y3JlYXRlKGhlbGxvLCB0ZXN0Q2FsbGJhY2spOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
YXNPYmplY3QodG9KUyhleGVjLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgb2JqZWN0Lmdl
dCgpKSkpOwpAQCAtMTg3LDcgKzE4Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZz
VW5zaWduZWRMb25nTG9uZ0F0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvCiAgICAg
ICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdl
U291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgU3RyaW5nKCJEZXByZWNhdGVkIGF0dGVt
cHQgdG8gYWNjZXNzIHByb3BlcnR5ICd1bnNpZ25lZExvbmdMb25nQXR0cicgb24gYSBub24tVGVz
dFR5cGVkZWZzIG9iamVjdC4iKSk7CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVy
cm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9N
QmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIlRoZSAiLCAiVGVzdFR5cGVkZWZzIiwgIi4iLCAidW5z
aWduZWRMb25nTG9uZ0F0dHIiLCAiIGdldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNl
cyBvZiAiLCAiVGVzdFR5cGVkZWZzIikpOwogICAgIH0KICAgICBVTlVTRURfUEFSQU0oZXhlYyk7
CiAgICAgVGVzdFR5cGVkZWZzJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwpAQCAtMjA2LDcg
KzIwNiw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzSW1tdXRhYmxlU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgSlNPCiAgICAgICAgICAgICBzY3JpcHRFeGVj
dXRpb25Db250ZXh0LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2Fn
ZUxldmVsOjpFcnJvciwgU3RyaW5nKCJEZXByZWNhdGVkIGF0dGVtcHQgdG8gYWNjZXNzIHByb3Bl
cnR5ICdpbW11dGFibGVTZXJpYWxpemVkU2NyaXB0VmFsdWUnIG9uIGEgbm9uLVRlc3RUeXBlZGVm
cyBvYmplY3QuIikpOwogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVj
KTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdz
VHlwZUVycm9yU3RyaW5nKCJUaGUgIiwgIlRlc3RUeXBlZGVmcyIsICIuIiwgImltbXV0YWJsZVNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZSIsICIgZ2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFu
Y2VzIG9mICIsICJUZXN0VHlwZWRlZnMiKSk7CiAgICAgfQogICAgIFVOVVNFRF9QQVJBTShleGVj
KTsKICAgICBUZXN0VHlwZWRlZnMmIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CkBAIC0yMjUs
NyArMjI1LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvclRlc3RT
dWJPYmooRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2wKICAgICAgICAgICAgIHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNz
YWdlTGV2ZWw6OkVycm9yLCBTdHJpbmcoIkRlcHJlY2F0ZWQgYXR0ZW1wdCB0byBhY2Nlc3MgcHJv
cGVydHkgJ1Rlc3RTdWJPYmonIG9uIGEgbm9uLVRlc3RUeXBlZGVmcyBvYmplY3QuIikpOwogICAg
ICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICAgICAg
fQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJu
IHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJU
aGUgIiwgIlRlc3RUeXBlZGVmcyIsICIuIiwgIlRlc3RTdWJPYmoiLCAiIGdldHRlciBjYW4gb25s
eSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdFR5cGVkZWZzIikpOwogICAgIH0KICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdFN1Yk9iajo6Z2V0Q29uc3RydWN0b3IoZXhl
Yy0+dm0oKSwgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KQEAgLTI0MSw3ICsyNDEs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9u
KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqCiAgICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25D
b250ZXh0LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVs
OjpFcnJvciwgU3RyaW5nKCJEZXByZWNhdGVkIGF0dGVtcHQgdG8gYWNjZXNzIHByb3BlcnR5ICdh
dHRyV2l0aEdldHRlckV4Y2VwdGlvbicgb24gYSBub24tVGVzdFR5cGVkZWZzIG9iamVjdC4iKSk7
CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAg
ICAgICB9Ci0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJp
bmcoIlRoZSAiLCAiVGVzdFR5cGVkZWZzIiwgIi4iLCAiYXR0cldpdGhHZXR0ZXJFeGNlcHRpb24i
LCAiIGdldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdFR5cGVk
ZWZzIikpOwogICAgIH0KICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBUZXN0VHlwZWRl
ZnMmIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CkBAIC0yNjEsNyArMjYxLDcgQEAgRW5jb2Rl
ZEpTVmFsdWUganNUZXN0VHlwZWRlZnNBdHRyV2l0aFNldHRlckV4Y2VwdGlvbihFeGVjU3RhdGUq
IGV4ZWMsIEpTT2JqZWN0KgogICAgICAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+YWRk
Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIFN0
cmluZygiRGVwcmVjYXRlZCBhdHRlbXB0IHRvIGFjY2VzcyBwcm9wZXJ0eSAnYXR0cldpdGhTZXR0
ZXJFeGNlcHRpb24nIG9uIGEgbm9uLVRlc3RUeXBlZGVmcyBvYmplY3QuIikpOwogICAgICAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICAgICAgfQotICAg
ICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93
Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJUaGUgIiwg
IlRlc3RUeXBlZGVmcyIsICIuIiwgImF0dHJXaXRoU2V0dGVyRXhjZXB0aW9uIiwgIiBnZXR0ZXIg
Y2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RUeXBlZGVmcyIpKTsKICAg
ICB9CiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIFRlc3RUeXBlZGVmcyYgaW1wbCA9IGNh
c3RlZFRoaXMtPmltcGwoKTsKQEAgLTI4MCw3ICsyODAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RUeXBlZGVmc1N0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywg
SlNPYgogICAgICAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+YWRkQ29uc29sZU1lc3Nh
Z2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIFN0cmluZygiRGVwcmVj
YXRlZCBhdHRlbXB0IHRvIGFjY2VzcyBwcm9wZXJ0eSAnc3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNl
cHRpb24nIG9uIGEgbm9uLVRlc3RUeXBlZGVmcyBvYmplY3QuIikpOwogICAgICAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICAgICAgfQotICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBl
RXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJUaGUgIiwgIlRlc3RU
eXBlZGVmcyIsICIuIiwgInN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uIiwgIiBnZXR0ZXIg
Y2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RUeXBlZGVmcyIpKTsKICAg
ICB9CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgVGVzdFR5cGVkZWZzJiBpbXBsID0g
Y2FzdGVkVGhpcy0+aW1wbCgpOwpAQCAtMzAwLDcgKzMwMCw3IEBAIEVuY29kZWRKU1ZhbHVlIGpz
VGVzdFR5cGVkZWZzU3RyaW5nQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24oRXhlY1N0YXRlKiBleGVj
LCBKU09iCiAgICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5hZGRDb25zb2xlTWVz
c2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgU3RyaW5nKCJEZXBy
ZWNhdGVkIGF0dGVtcHQgdG8gYWNjZXNzIHByb3BlcnR5ICdzdHJpbmdBdHRyV2l0aFNldHRlckV4
Y2VwdGlvbicgb24gYSBub24tVGVzdFR5cGVkZWZzIG9iamVjdC4iKSk7CiAgICAgICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAgICB9Ci0gICAgICAg
IHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5
cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIlRoZSAiLCAiVGVz
dFR5cGVkZWZzIiwgIi4iLCAic3RyaW5nQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24iLCAiIGdldHRl
ciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdFR5cGVkZWZzIikpOwog
ICAgIH0KICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgVGVzdFR5cGVkZWZzJiBpbXBsID0g
Y2FzdGVkVGhpcy0+aW1wbCgpOwpAQCAtMzI1LDcgKzMyNSw3IEBAIHZvaWQgc2V0SlNUZXN0VHlw
ZWRlZnNVbnNpZ25lZExvbmdMb25nQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBi
YXNlT2JqCiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVzdFR5cGVkZWZzKiBjYXN0
ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RUeXBlZGVmcyo+KEpTVmFsdWU6OmRlY29kZSh0
aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7Ci0gICAgICAgIHRo
cm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFr
ZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJUaGUgIiwgIlRlc3RUeXBlZGVmcyIsICIuIiwg
InVuc2lnbmVkTG9uZ0xvbmdBdHRyIiwgIiBzZXR0ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0
YW5jZXMgb2YgIiwgIlRlc3RUeXBlZGVmcyIpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAg
ICBUZXN0VHlwZWRlZnMmIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CkBAIC0zNDIsNyArMzQy
LDcgQEAgdm9pZCBzZXRKU1Rlc3RUeXBlZGVmc0ltbXV0YWJsZVNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KgogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAg
ICBKU1Rlc3RUeXBlZGVmcyogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0VHlwZWRl
ZnMqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0
ZWRUaGlzKSkgewotICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICB0aHJv
d1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiVGhlICIs
ICJUZXN0VHlwZWRlZnMiLCAiLiIsICJpbW11dGFibGVTZXJpYWxpemVkU2NyaXB0VmFsdWUiLCAi
IHNldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdFR5cGVkZWZz
IikpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIFRlc3RUeXBlZGVmcyYgaW1wbCA9IGNh
c3RlZFRoaXMtPmltcGwoKTsKQEAgLTM1OSw3ICszNTksNyBAQCB2b2lkIHNldEpTVGVzdFR5cGVk
ZWZzQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogLyog
YmFzZQogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBKU1Rlc3RUeXBlZGVmcyogY2FzdGVk
VGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0VHlwZWRlZnMqPihKU1ZhbHVlOjpkZWNvZGUodGhp
c1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewotICAgICAgICB0aHJv
d1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VE
T01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiVGhlICIsICJUZXN0VHlwZWRlZnMiLCAiLiIsICJh
dHRyV2l0aEdldHRlckV4Y2VwdGlvbiIsICIgc2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5z
dGFuY2VzIG9mICIsICJUZXN0VHlwZWRlZnMiKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAg
ICAgVGVzdFR5cGVkZWZzJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwpAQCAtMzc2LDcgKzM3
Niw3IEBAIHZvaWQgc2V0SlNUZXN0VHlwZWRlZnNBdHRyV2l0aFNldHRlckV4Y2VwdGlvbihFeGVj
U3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiAvKiBiYXNlCiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwog
ICAgIEpTVGVzdFR5cGVkZWZzKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RUeXBl
ZGVmcyo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNh
c3RlZFRoaXMpKSB7Ci0gICAgICAgIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHRo
cm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJUaGUg
IiwgIlRlc3RUeXBlZGVmcyIsICIuIiwgImF0dHJXaXRoU2V0dGVyRXhjZXB0aW9uIiwgIiBzZXR0
ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RUeXBlZGVmcyIpKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBUZXN0VHlwZWRlZnMmIGltcGwgPSBjYXN0ZWRU
aGlzLT5pbXBsKCk7CkBAIC0zOTUsNyArMzk1LDcgQEAgdm9pZCBzZXRKU1Rlc3RUeXBlZGVmc1N0
cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIC8K
ICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0VHlwZWRlZnMqIGNhc3RlZFRoaXMg
PSBqc0R5bmFtaWNDYXN0PEpTVGVzdFR5cGVkZWZzKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1
ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKLSAgICAgICAgdGhyb3dWTVR5
cGVFcnJvcihleGVjKTsKKyAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmlu
ZGluZ3NUeXBlRXJyb3JTdHJpbmcoIlRoZSAiLCAiVGVzdFR5cGVkZWZzIiwgIi4iLCAic3RyaW5n
QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24iLCAiIHNldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGlu
c3RhbmNlcyBvZiAiLCAiVGVzdFR5cGVkZWZzIikpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
ICAgIFRlc3RUeXBlZGVmcyYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKQEAgLTQxMiw3ICs0
MTIsNyBAQCB2b2lkIHNldEpTVGVzdFR5cGVkZWZzU3RyaW5nQXR0cldpdGhTZXR0ZXJFeGNlcHRp
b24oRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogLwogICAgIFVOVVNFRF9QQVJBTShleGVjKTsK
ICAgICBKU1Rlc3RUeXBlZGVmcyogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0VHlw
ZWRlZnMqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFj
YXN0ZWRUaGlzKSkgewotICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICB0
aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiVGhl
ICIsICJUZXN0VHlwZWRlZnMiLCAiLiIsICJzdHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbiIs
ICIgc2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0VHlwZWRl
ZnMiKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgVGVzdFR5cGVkZWZzJiBpbXBsID0g
Y2FzdGVkVGhpcy0+aW1wbCgpOwpAQCAtNDM1LDcgKzQzNSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbkZ1bmMoRXhlY1N0YXRl
KiBleGVjCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAg
ICAgSlNUZXN0VHlwZWRlZnMqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFR5cGVk
ZWZzKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQotICAgICAg
ICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1U
eXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBj
YWxsICIsICJUZXN0VHlwZWRlZnMiLCAiLiIsICJmdW5jIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwg
IlRlc3RUeXBlZGVmcyIpKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRo
aXMsIEpTVGVzdFR5cGVkZWZzOjppbmZvKCkpOwogICAgIFRlc3RUeXBlZGVmcyYgaW1wbCA9IGNh
c3RlZFRoaXMtPmltcGwoKTsKIApAQCAtNDU3LDcgKzQ1Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblNldFNoYWRvdyhFeGVj
U3RhdGUqCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAg
ICAgSlNUZXN0VHlwZWRlZnMqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFR5cGVk
ZWZzKj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQotICAgICAg
ICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1U
eXBlRXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBj
YWxsICIsICJUZXN0VHlwZWRlZnMiLCAiLiIsICJzZXRTaGFkb3ciLCAiIG9uIGluc3RhbmNlcyBv
ZiAiLCAiVGVzdFR5cGVkZWZzIikpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2Fz
dGVkVGhpcywgSlNUZXN0VHlwZWRlZnM6OmluZm8oKSk7CiAgICAgVGVzdFR5cGVkZWZzJiBpbXBs
ID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAz
KQpAQCAtNDk4LDcgKzQ5OCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhTZXF1ZW5jZUFyCiAgICAgSlNWYWx1
ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0VHlwZWRlZnMq
IGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFR5cGVkZWZzKj4odGhpc1ZhbHVlKTsK
ICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5
cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFr
ZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0VHlwZWRl
ZnMiLCAiLiIsICJtZXRob2RXaXRoU2VxdWVuY2VBcmciLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAi
VGVzdFR5cGVkZWZzIikpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhp
cywgSlNUZXN0VHlwZWRlZnM6OmluZm8oKSk7CiAgICAgVGVzdFR5cGVkZWZzJiBpbXBsID0gY2Fz
dGVkVGhpcy0+aW1wbCgpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQpAQCAt
NTE1LDcgKzUxNSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0VHlwZWRl
ZnNQcm90b3R5cGVGdW5jdGlvbk51bGxhYmxlQXJyYXlBcmcoRXhlCiAgICAgSlNWYWx1ZSB0aGlz
VmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0VHlwZWRlZnMqIGNhc3Rl
ZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFR5cGVkZWZzKj4odGhpc1ZhbHVlKTsKICAgICBp
ZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJv
cihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFrZURPTUJp
bmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0VHlwZWRlZnMiLCAi
LiIsICJudWxsYWJsZUFycmF5QXJnIiwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgIlRlc3RUeXBlZGVm
cyIpKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTVGVzdFR5
cGVkZWZzOjppbmZvKCkpOwogICAgIFRlc3RUeXBlZGVmcyYgaW1wbCA9IGNhc3RlZFRoaXMtPmlt
cGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKQEAgLTUzMiw3ICs1MzIs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBl
RnVuY3Rpb25GdW5jV2l0aENsYW1wKEV4ZWNTdAogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhl
Yy0+aG9zdFRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdFR5cGVkZWZzKiBjYXN0ZWRUaGlzID0ganNE
eW5hbWljQ2FzdDxKU1Rlc3RUeXBlZGVmcyo+KHRoaXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZ
KCFjYXN0ZWRUaGlzKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7Cisg
ICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVF
cnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdFR5cGVkZWZzIiwgIi4iLCAiZnVuY1dp
dGhDbGFtcCIsICIgb24gaW5zdGFuY2VzIG9mICIsICJUZXN0VHlwZWRlZnMiKSk7CiAgICAgQVNT
RVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RUeXBlZGVmczo6aW5mbygp
KTsKICAgICBUZXN0VHlwZWRlZnMmIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgaWYg
KGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCkBAIC01NjksNyArNTY5LDcgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uSW1tdXRh
YmxlUG9pbnRGdW5jdGkKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFs
dWUoKTsKICAgICBKU1Rlc3RUeXBlZGVmcyogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNU
ZXN0VHlwZWRlZnMqPih0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykp
Ci0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4g
dGhyb3dWTVR5cGVFcnJvcihleGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNh
biBvbmx5IGNhbGwgIiwgIlRlc3RUeXBlZGVmcyIsICIuIiwgImltbXV0YWJsZVBvaW50RnVuY3Rp
b24iLCAiIG9uIGluc3RhbmNlcyBvZiAiLCAiVGVzdFR5cGVkZWZzIikpOwogICAgIEFTU0VSVF9H
Q19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNUZXN0VHlwZWRlZnM6OmluZm8oKSk7CiAg
ICAgVGVzdFR5cGVkZWZzJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIEpTVmFsdWUg
cmVzdWx0ID0gdG9KUyhleGVjLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgV1RGOjpnZXRQ
dHIoU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR1BvaW50Pjo6Y3JlYXRlKGltcGwuaW1tdXRhYmxlUG9p
bnRGdW5jdGlvbigpKSkpOwpAQCAtNTgxLDcgKzU4MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblN0cmluZ0FycmF5RnVuY3Rp
b24oCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAg
SlNUZXN0VHlwZWRlZnMqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFR5cGVkZWZz
Kj4odGhpc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQotICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBl
RXJyb3IoZXhlYywgbWFrZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxs
ICIsICJUZXN0VHlwZWRlZnMiLCAiLiIsICJzdHJpbmdBcnJheUZ1bmN0aW9uIiwgIiBvbiBpbnN0
YW5jZXMgb2YgIiwgIlRlc3RUeXBlZGVmcyIpKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVS
SVRTKGNhc3RlZFRoaXMsIEpTVGVzdFR5cGVkZWZzOjppbmZvKCkpOwogICAgIFRlc3RUeXBlZGVm
cyYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3Vu
dCgpIDwgMSkKQEAgLTYwMSw3ICs2MDEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25TdHJpbmdBcnJheUZ1bmN0aW9uMgogICAg
IEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwogICAgIEpTVGVzdFR5
cGVkZWZzKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RUeXBlZGVmcyo+KHRoaXNW
YWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKLSAgICAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVz
dFR5cGVkZWZzIiwgIi4iLCAic3RyaW5nQXJyYXlGdW5jdGlvbjIiLCAiIG9uIGluc3RhbmNlcyBv
ZiAiLCAiVGVzdFR5cGVkZWZzIikpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2Fz
dGVkVGhpcywgSlNUZXN0VHlwZWRlZnM6OmluZm8oKSk7CiAgICAgVGVzdFR5cGVkZWZzJiBpbXBs
ID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAx
KQpAQCAtNjIxLDcgKzYyMSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbkNhbGxXaXRoU2VxdWVuY2VUaGF0CiAgICAgSlNWYWx1
ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNUZXN0VHlwZWRlZnMq
IGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFR5cGVkZWZzKj4odGhpc1ZhbHVlKTsK
ICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5
cGVFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgbWFr
ZURPTUJpbmRpbmdzVHlwZUVycm9yU3RyaW5nKCJDYW4gb25seSBjYWxsICIsICJUZXN0VHlwZWRl
ZnMiLCAiLiIsICJjYWxsV2l0aFNlcXVlbmNlVGhhdFJlcXVpcmVzSW5jbHVkZSIsICIgb24gaW5z
dGFuY2VzIG9mICIsICJUZXN0VHlwZWRlZnMiKSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhF
UklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RUeXBlZGVmczo6aW5mbygpKTsKICAgICBUZXN0VHlwZWRl
ZnMmIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291
bnQoKSA8IDEpCkBAIC02MzgsNyArNjM4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEV4Y2VwdGlvbigKICAg
ICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKICAgICBKU1Rlc3RU
eXBlZGVmcyogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0VHlwZWRlZnMqPih0aGlz
VmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCi0gICAgICAgIHJldHVybiB0
aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihl
eGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRl
c3RUeXBlZGVmcyIsICIuIiwgIm1ldGhvZFdpdGhFeGNlcHRpb24iLCAiIG9uIGluc3RhbmNlcyBv
ZiAiLCAiVGVzdFR5cGVkZWZzIikpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2Fz
dGVkVGhpcywgSlNUZXN0VHlwZWRlZnM6OmluZm8oKSk7CiAgICAgVGVzdFR5cGVkZWZzJiBpbXBs
ID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0
ZS5jcHAKaW5kZXggMTNjMTkxNDI3YjQ3OTc1ZGRiNDA3MWQyNDk5MWY1ZjEyM2U0MzUxMy4uMDMy
ZjdhMzdmNDhlZmJhYWRlZGVhZWQyMzM0MTdhYmUzOTYwYzAwYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuY3BwCkBA
IC0xMjksNyArMTI5LDcgQEAgRW5jb2RlZEpTVmFsdWUganNhdHRyaWJ1dGVSZWFkb25seShFeGVj
U3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEoKICAgICAgICAgICAgIHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpT
LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBTdHJpbmcoIkRlcHJlY2F0ZWQgYXR0ZW1wdCB0byBhY2Nl
c3MgcHJvcGVydHkgJ3JlYWRvbmx5JyBvbiBhIG5vbi1hdHRyaWJ1dGUgb2JqZWN0LiIpKTsKICAg
ICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAg
IH0KLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygi
VGhlICIsICJhdHRyaWJ1dGUiLCAiLiIsICJyZWFkb25seSIsICIgZ2V0dGVyIGNhbiBvbmx5IGJl
IHVzZWQgb24gaW5zdGFuY2VzIG9mICIsICJhdHRyaWJ1dGUiKSk7CiAgICAgfQogICAgIFVOVVNF
RF9QQVJBTShleGVjKTsKICAgICBhdHRyaWJ1dGUmIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggOWVjYjcxZmE1Y2JmMGU0NDQyZjcwYTc2ZDI5ODZmMThmOWViYjQ3Mi4uODAxOTIw
YjU4MzNkZTI3MmU2ZDVhMmFkMGJhMzlkZTUxMThlNDAyNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBA
CisyMDE0LTAzLTExICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAgICAgICAg
SW1wcm92ZSBkb20gZXJyb3IgbWVzc2FnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEzMDEwMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFVwZGF0ZSB0ZXN0IHJlc3VsdHMgZm9yIG5ldyB0ZXh0LgorCisg
ICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvYmFkLWFyZ3VtZW50cy10ZXN0LWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9udWxsLW9iamVjdC1iZWhhdmlvdXItZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvY2FudmFzL3dpbmRpbmctZW51bWVyYXRpb24tZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qvd29ya2Vycy9zdG9yYWdlL29wZW4tZGF0YWJhc2Ut
aW5wdXRzLXN5bmMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGpzL2RvbS9kb20tYXMtcHJvdG90
eXBlLWFzc2lnbm1lbnQtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBqcy9kb20v
ZG9tLWF0dHJpYnV0ZXMtb24tbWlzbWF0Y2gtdHlwZS1leHBlY3RlZC50eHQ6CisgICAgICAgICog
anMvZG9tL3RvU3RyaW5nLWFuZC12YWx1ZU9mLW92ZXJyaWRlLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBzdmcvZG9tL1NWR0xlbmd0aExpc3QtYmFzaWNzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBzdmcvZG9tL1NWR01hdHJpeC1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3ZnL2RvbS9TVkdO
dW1iZXJMaXN0LWJhc2ljcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3ZnL2RvbS9TVkdQb2lu
dC1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3ZnL2RvbS9TVkdQb2ludExpc3QtYmFzaWNzLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdmcvZG9tL1NWR1RyYW5zZm9ybS1leHBlY3RlZC50eHQ6
CisgICAgICAgICogc3ZnL2RvbS9TVkdUcmFuc2Zvcm1MaXN0LWJhc2ljcy1leHBlY3RlZC50eHQ6
CisgICAgICAgICogc3ZnL2RvbS9TVkdUcmFuc2Zvcm1MaXN0LWV4cGVjdGVkLnR4dDoKKwogMjAx
NC0wMy0xMyAgQW5kcmVzIEdvbWV6ICA8YWdvbWV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE2NTUzNi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvY2FudmFzL3dlYmdsL2JhZC1hcmd1bWVudHMtdGVzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9iYWQtYXJndW1lbnRzLXRlc3QtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDc0MGQzZjg5Yzc3YWI3MjdmYzFiMDFlODg3ZDk2ZTIwZTgxZTNjYzUuLjgwMTYzOWM4MmY4
Y2UzYThkMTc3YmVkNzgzYmM5ZGY4Y2EwNTBhYzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvY2FudmFzL3dlYmdsL2JhZC1hcmd1bWVudHMtdGVzdC1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvYmFkLWFyZ3VtZW50cy10ZXN0LWV4cGVjdGVkLnR4
dApAQCAtNSwyMSArNSwyMSBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogUEFTUyBQcm9ncmFt
IENvbXBpbGVkCiBQQVNTIFNoYWRlciBDb21waWxlZAogUEFTUyBnZXRVbmlmb3JtTG9jYXRpb24g
c3VjY2VlZGVkCi1QQVNTIGNvbnRleHQuY29tcGlsZVNoYWRlcihhcmd1bWVudCkgdGhyZXcgZXhj
ZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgY29udGV4dC5saW5rUHJvZ3JhbShh
cmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgY29u
dGV4dC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgYXJndW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIGNvbnRleHQuYXR0YWNoU2hhZGVyKGFyZ3VtZW50LCBz
aGFkZXIpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIGNvbnRl
eHQuZGV0YWNoU2hhZGVyKHByb2dyYW0sIGFyZ3VtZW50KSB0aHJldyBleGNlcHRpb24gVHlwZUVy
cm9yOiBUeXBlIGVycm9yLgotUEFTUyBjb250ZXh0LmRldGFjaFNoYWRlcihhcmd1bWVudCwgc2hh
ZGVyKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBjb250ZXh0
LnVzZVByb2dyYW0oYXJndW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJy
b3IuCi1QQVNTIGNvbnRleHQuc2hhZGVyU291cmNlKGFyZ3VtZW50LCAnZm9vJykgdGhyZXcgZXhj
ZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgY29udGV4dC5iaW5kQXR0cmliTG9j
YXRpb24oYXJndW1lbnQsIDAsICdmb28nKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBl
IGVycm9yLgotUEFTUyBjb250ZXh0LmJpbmRCdWZmZXIoY29udGV4dC5BUlJBWV9CVUZGRVIsIGFy
Z3VtZW50KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBjb250
ZXh0LmJpbmRGcmFtZWJ1ZmZlcihjb250ZXh0LkZSQU1FQlVGRkVSLCBhcmd1bWVudCkgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgY29udGV4dC5iaW5kUmVuZGVy
YnVmZmVyKGNvbnRleHQuUkVOREVSQlVGRkVSLCBhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgY29udGV4dC5iaW5kVGV4dHVyZShjb250ZXh0LlRF
WFRVUkVfMkQsIGFyZ3VtZW50KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9y
LgotUEFTUyBjb250ZXh0LmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKGNvbnRleHQuRlJBTUVCVUZG
RVIsIGNvbnRleHQuREVQVEhfQVRUQUNITUVOVCwgY29udGV4dC5SRU5ERVJCVUZGRVIsIGFyZ3Vt
ZW50KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBjb250ZXh0
LmZyYW1lYnVmZmVyVGV4dHVyZTJEKGNvbnRleHQuRlJBTUVCVUZGRVIsIGNvbnRleHQuQ09MT1Jf
QVRUQUNITUVOVDAsIGNvbnRleHQuVEVYVFVSRV8yRCwgYXJndW1lbnQsIDApIHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGNvbnRleHQuY29tcGlsZVNoYWRlcihh
cmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ3NoYWRlcicp
IHRvIFdlYkdMUmVuZGVyaW5nQ29udGV4dC5jb21waWxlU2hhZGVyIG11c3QgYmUgYW4gaW5zdGFu
Y2Ugb2YgV2ViR0xTaGFkZXIuCitQQVNTIGNvbnRleHQubGlua1Byb2dyYW0oYXJndW1lbnQpIHRo
cmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdwcm9ncmFtJykgdG8gV2ViR0xS
ZW5kZXJpbmdDb250ZXh0LmxpbmtQcm9ncmFtIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgV2ViR0xQ
cm9ncmFtLgorUEFTUyBjb250ZXh0LmF0dGFjaFNoYWRlcihwcm9ncmFtLCBhcmd1bWVudCkgdGhy
ZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMiAoJ3NoYWRlcicpIHRvIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dC5hdHRhY2hTaGFkZXIgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBXZWJHTFNo
YWRlci4KK1BBU1MgY29udGV4dC5hdHRhY2hTaGFkZXIoYXJndW1lbnQsIHNoYWRlcikgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ3Byb2dyYW0nKSB0byBXZWJHTFJlbmRl
cmluZ0NvbnRleHQuYXR0YWNoU2hhZGVyIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgV2ViR0xQcm9n
cmFtLgorUEFTUyBjb250ZXh0LmRldGFjaFNoYWRlcihwcm9ncmFtLCBhcmd1bWVudCkgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMiAoJ3NoYWRlcicpIHRvIFdlYkdMUmVuZGVy
aW5nQ29udGV4dC5kZXRhY2hTaGFkZXIgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBXZWJHTFNoYWRl
ci4KK1BBU1MgY29udGV4dC5kZXRhY2hTaGFkZXIoYXJndW1lbnQsIHNoYWRlcikgdGhyZXcgZXhj
ZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ3Byb2dyYW0nKSB0byBXZWJHTFJlbmRlcmlu
Z0NvbnRleHQuZGV0YWNoU2hhZGVyIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgV2ViR0xQcm9ncmFt
LgorUEFTUyBjb250ZXh0LnVzZVByb2dyYW0oYXJndW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IEFyZ3VtZW50IDEgKCdwcm9ncmFtJykgdG8gV2ViR0xSZW5kZXJpbmdDb250ZXh0LnVz
ZVByb2dyYW0gbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBXZWJHTFByb2dyYW0uCitQQVNTIGNvbnRl
eHQuc2hhZGVyU291cmNlKGFyZ3VtZW50LCAnZm9vJykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogQXJndW1lbnQgMSAoJ3NoYWRlcicpIHRvIFdlYkdMUmVuZGVyaW5nQ29udGV4dC5zaGFkZXJT
b3VyY2UgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBXZWJHTFNoYWRlci4KK1BBU1MgY29udGV4dC5i
aW5kQXR0cmliTG9jYXRpb24oYXJndW1lbnQsIDAsICdmb28nKSB0aHJldyBleGNlcHRpb24gVHlw
ZUVycm9yOiBBcmd1bWVudCAxICgncHJvZ3JhbScpIHRvIFdlYkdMUmVuZGVyaW5nQ29udGV4dC5i
aW5kQXR0cmliTG9jYXRpb24gbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBXZWJHTFByb2dyYW0uCitQ
QVNTIGNvbnRleHQuYmluZEJ1ZmZlcihjb250ZXh0LkFSUkFZX0JVRkZFUiwgYXJndW1lbnQpIHRo
cmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDIgKCdidWZmZXInKSB0byBXZWJHTFJl
bmRlcmluZ0NvbnRleHQuYmluZEJ1ZmZlciBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVm
ZmVyLgorUEFTUyBjb250ZXh0LmJpbmRGcmFtZWJ1ZmZlcihjb250ZXh0LkZSQU1FQlVGRkVSLCBh
cmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMiAoJ2ZyYW1lYnVm
ZmVyJykgdG8gV2ViR0xSZW5kZXJpbmdDb250ZXh0LmJpbmRGcmFtZWJ1ZmZlciBtdXN0IGJlIGFu
IGluc3RhbmNlIG9mIFdlYkdMRnJhbWVidWZmZXIuCitQQVNTIGNvbnRleHQuYmluZFJlbmRlcmJ1
ZmZlcihjb250ZXh0LlJFTkRFUkJVRkZFUiwgYXJndW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IEFyZ3VtZW50IDIgKCdyZW5kZXJidWZmZXInKSB0byBXZWJHTFJlbmRlcmluZ0NvbnRl
eHQuYmluZFJlbmRlcmJ1ZmZlciBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFdlYkdMUmVuZGVyYnVm
ZmVyLgorUEFTUyBjb250ZXh0LmJpbmRUZXh0dXJlKGNvbnRleHQuVEVYVFVSRV8yRCwgYXJndW1l
bnQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDIgKCd0ZXh0dXJlJykgdG8g
V2ViR0xSZW5kZXJpbmdDb250ZXh0LmJpbmRUZXh0dXJlIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2Yg
V2ViR0xUZXh0dXJlLgorUEFTUyBjb250ZXh0LmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKGNvbnRl
eHQuRlJBTUVCVUZGRVIsIGNvbnRleHQuREVQVEhfQVRUQUNITUVOVCwgY29udGV4dC5SRU5ERVJC
VUZGRVIsIGFyZ3VtZW50KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCA0ICgn
cmVuZGVyYnVmZmVyJykgdG8gV2ViR0xSZW5kZXJpbmdDb250ZXh0LmZyYW1lYnVmZmVyUmVuZGVy
YnVmZmVyIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgV2ViR0xSZW5kZXJidWZmZXIuCitQQVNTIGNv
bnRleHQuZnJhbWVidWZmZXJUZXh0dXJlMkQoY29udGV4dC5GUkFNRUJVRkZFUiwgY29udGV4dC5D
T0xPUl9BVFRBQ0hNRU5UMCwgY29udGV4dC5URVhUVVJFXzJELCBhcmd1bWVudCwgMCkgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgNCAoJ3RleHR1cmUnKSB0byBXZWJHTFJlbmRl
cmluZ0NvbnRleHQuZnJhbWVidWZmZXJUZXh0dXJlMkQgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBX
ZWJHTFRleHR1cmUuCiBQQVNTIGNvbnRleHQudW5pZm9ybTJmdihhcmd1bWVudCwgbmV3IEZsb2F0
MzJBcnJheShbMC4wLCAwLjBdKSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJv
ci4KIFBBU1MgY29udGV4dC51bmlmb3JtMml2KGFyZ3VtZW50LCBuZXcgSW50MzJBcnJheShbMCwg
MF0pKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgogUEFTUyBjb250ZXh0
LnVuaWZvcm1NYXRyaXgyZnYoYXJndW1lbnQsIGZhbHNlLCBuZXcgRmxvYXQzMkFycmF5KFswLjAs
IDAuMCwgMC4wLCAwLjBdKSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4K
QEAgLTI3LDI1ICsyNywyNSBAQCBQQVNTIGNvbnRleHQuZ2V0UHJvZ3JhbVBhcmFtZXRlcihhcmd1
bWVudCwgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcgogUEFTUyBjb250ZXh0
LmdldFNoYWRlclBhcmFtZXRlcihhcmd1bWVudCwgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogVHlwZSBlcnJvci4KIFBBU1MgY29udGV4dC5nZXRVbmlmb3JtKGFyZ3VtZW50LCBsb2MpIHRo
cmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCiBQQVNTIGNvbnRleHQuZ2V0VW5p
Zm9ybShwcm9ncmFtLCBhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBl
cnJvci4KLVBBU1MgY29udGV4dC5nZXRVbmlmb3JtTG9jYXRpb24oYXJndW1lbnQsICd1X21vZGVs
Vmlld1Byb2pNYXRyaXgnKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgot
UEFTUyBjb250ZXh0LmdldFByb2dyYW1JbmZvTG9nKGFyZ3VtZW50KSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBjb250ZXh0LmdldFNoYWRlckluZm9Mb2coYXJn
dW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIGNvbnRl
eHQuZ2V0U2hhZGVyU291cmNlKGFyZ3VtZW50KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBU
eXBlIGVycm9yLgotUEFTUyBjb250ZXh0LmNvbXBpbGVTaGFkZXIoYXJndW1lbnQpIHRocmV3IGV4
Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIGNvbnRleHQubGlua1Byb2dyYW0o
YXJndW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIGNv
bnRleHQuYXR0YWNoU2hhZGVyKHByb2dyYW0sIGFyZ3VtZW50KSB0aHJldyBleGNlcHRpb24gVHlw
ZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBjb250ZXh0LmF0dGFjaFNoYWRlcihhcmd1bWVudCwg
c2hhZGVyKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBjb250
ZXh0LmRldGFjaFNoYWRlcihwcm9ncmFtLCBhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogVHlwZSBlcnJvci4KLVBBU1MgY29udGV4dC5kZXRhY2hTaGFkZXIoYXJndW1lbnQsIHNo
YWRlcikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgY29udGV4
dC51c2VQcm9ncmFtKGFyZ3VtZW50KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVy
cm9yLgotUEFTUyBjb250ZXh0LnNoYWRlclNvdXJjZShhcmd1bWVudCwgJ2ZvbycpIHRocmV3IGV4
Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIGNvbnRleHQuYmluZEF0dHJpYkxv
Y2F0aW9uKGFyZ3VtZW50LCAwLCAnZm9vJykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlw
ZSBlcnJvci4KLVBBU1MgY29udGV4dC5iaW5kQnVmZmVyKGNvbnRleHQuQVJSQVlfQlVGRkVSLCBh
cmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgY29u
dGV4dC5iaW5kRnJhbWVidWZmZXIoY29udGV4dC5GUkFNRUJVRkZFUiwgYXJndW1lbnQpIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIGNvbnRleHQuYmluZFJlbmRl
cmJ1ZmZlcihjb250ZXh0LlJFTkRFUkJVRkZFUiwgYXJndW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIGNvbnRleHQuYmluZFRleHR1cmUoY29udGV4dC5U
RVhUVVJFXzJELCBhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJv
ci4KLVBBU1MgY29udGV4dC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihjb250ZXh0LkZSQU1FQlVG
RkVSLCBjb250ZXh0LkRFUFRIX0FUVEFDSE1FTlQsIGNvbnRleHQuUkVOREVSQlVGRkVSLCBhcmd1
bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgY29udGV4
dC5mcmFtZWJ1ZmZlclRleHR1cmUyRChjb250ZXh0LkZSQU1FQlVGRkVSLCBjb250ZXh0LkNPTE9S
X0FUVEFDSE1FTlQwLCBjb250ZXh0LlRFWFRVUkVfMkQsIGFyZ3VtZW50LCAwKSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBjb250ZXh0LmdldFVuaWZvcm1Mb2Nh
dGlvbihhcmd1bWVudCwgJ3VfbW9kZWxWaWV3UHJvak1hdHJpeCcpIHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdwcm9ncmFtJykgdG8gV2ViR0xSZW5kZXJpbmdDb250ZXh0
LmdldFVuaWZvcm1Mb2NhdGlvbiBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFdlYkdMUHJvZ3JhbS4K
K1BBU1MgY29udGV4dC5nZXRQcm9ncmFtSW5mb0xvZyhhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ3Byb2dyYW0nKSB0byBXZWJHTFJlbmRlcmluZ0NvbnRl
eHQuZ2V0UHJvZ3JhbUluZm9Mb2cgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBXZWJHTFByb2dyYW0u
CitQQVNTIGNvbnRleHQuZ2V0U2hhZGVySW5mb0xvZyhhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ3NoYWRlcicpIHRvIFdlYkdMUmVuZGVyaW5nQ29udGV4
dC5nZXRTaGFkZXJJbmZvTG9nIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgV2ViR0xTaGFkZXIuCitQ
QVNTIGNvbnRleHQuZ2V0U2hhZGVyU291cmNlKGFyZ3VtZW50KSB0aHJldyBleGNlcHRpb24gVHlw
ZUVycm9yOiBBcmd1bWVudCAxICgnc2hhZGVyJykgdG8gV2ViR0xSZW5kZXJpbmdDb250ZXh0Lmdl
dFNoYWRlclNvdXJjZSBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFdlYkdMU2hhZGVyLgorUEFTUyBj
b250ZXh0LmNvbXBpbGVTaGFkZXIoYXJndW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6
IEFyZ3VtZW50IDEgKCdzaGFkZXInKSB0byBXZWJHTFJlbmRlcmluZ0NvbnRleHQuY29tcGlsZVNo
YWRlciBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFdlYkdMU2hhZGVyLgorUEFTUyBjb250ZXh0Lmxp
bmtQcm9ncmFtKGFyZ3VtZW50KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAx
ICgncHJvZ3JhbScpIHRvIFdlYkdMUmVuZGVyaW5nQ29udGV4dC5saW5rUHJvZ3JhbSBtdXN0IGJl
IGFuIGluc3RhbmNlIG9mIFdlYkdMUHJvZ3JhbS4KK1BBU1MgY29udGV4dC5hdHRhY2hTaGFkZXIo
cHJvZ3JhbSwgYXJndW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDIg
KCdzaGFkZXInKSB0byBXZWJHTFJlbmRlcmluZ0NvbnRleHQuYXR0YWNoU2hhZGVyIG11c3QgYmUg
YW4gaW5zdGFuY2Ugb2YgV2ViR0xTaGFkZXIuCitQQVNTIGNvbnRleHQuYXR0YWNoU2hhZGVyKGFy
Z3VtZW50LCBzaGFkZXIpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdw
cm9ncmFtJykgdG8gV2ViR0xSZW5kZXJpbmdDb250ZXh0LmF0dGFjaFNoYWRlciBtdXN0IGJlIGFu
IGluc3RhbmNlIG9mIFdlYkdMUHJvZ3JhbS4KK1BBU1MgY29udGV4dC5kZXRhY2hTaGFkZXIocHJv
Z3JhbSwgYXJndW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDIgKCdz
aGFkZXInKSB0byBXZWJHTFJlbmRlcmluZ0NvbnRleHQuZGV0YWNoU2hhZGVyIG11c3QgYmUgYW4g
aW5zdGFuY2Ugb2YgV2ViR0xTaGFkZXIuCitQQVNTIGNvbnRleHQuZGV0YWNoU2hhZGVyKGFyZ3Vt
ZW50LCBzaGFkZXIpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdwcm9n
cmFtJykgdG8gV2ViR0xSZW5kZXJpbmdDb250ZXh0LmRldGFjaFNoYWRlciBtdXN0IGJlIGFuIGlu
c3RhbmNlIG9mIFdlYkdMUHJvZ3JhbS4KK1BBU1MgY29udGV4dC51c2VQcm9ncmFtKGFyZ3VtZW50
KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgncHJvZ3JhbScpIHRvIFdl
YkdMUmVuZGVyaW5nQ29udGV4dC51c2VQcm9ncmFtIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgV2Vi
R0xQcm9ncmFtLgorUEFTUyBjb250ZXh0LnNoYWRlclNvdXJjZShhcmd1bWVudCwgJ2ZvbycpIHRo
cmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdzaGFkZXInKSB0byBXZWJHTFJl
bmRlcmluZ0NvbnRleHQuc2hhZGVyU291cmNlIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgV2ViR0xT
aGFkZXIuCitQQVNTIGNvbnRleHQuYmluZEF0dHJpYkxvY2F0aW9uKGFyZ3VtZW50LCAwLCAnZm9v
JykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ3Byb2dyYW0nKSB0byBX
ZWJHTFJlbmRlcmluZ0NvbnRleHQuYmluZEF0dHJpYkxvY2F0aW9uIG11c3QgYmUgYW4gaW5zdGFu
Y2Ugb2YgV2ViR0xQcm9ncmFtLgorUEFTUyBjb250ZXh0LmJpbmRCdWZmZXIoY29udGV4dC5BUlJB
WV9CVUZGRVIsIGFyZ3VtZW50KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAy
ICgnYnVmZmVyJykgdG8gV2ViR0xSZW5kZXJpbmdDb250ZXh0LmJpbmRCdWZmZXIgbXVzdCBiZSBh
biBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlci4KK1BBU1MgY29udGV4dC5iaW5kRnJhbWVidWZmZXIo
Y29udGV4dC5GUkFNRUJVRkZFUiwgYXJndW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6
IEFyZ3VtZW50IDIgKCdmcmFtZWJ1ZmZlcicpIHRvIFdlYkdMUmVuZGVyaW5nQ29udGV4dC5iaW5k
RnJhbWVidWZmZXIgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBXZWJHTEZyYW1lYnVmZmVyLgorUEFT
UyBjb250ZXh0LmJpbmRSZW5kZXJidWZmZXIoY29udGV4dC5SRU5ERVJCVUZGRVIsIGFyZ3VtZW50
KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAyICgncmVuZGVyYnVmZmVyJykg
dG8gV2ViR0xSZW5kZXJpbmdDb250ZXh0LmJpbmRSZW5kZXJidWZmZXIgbXVzdCBiZSBhbiBpbnN0
YW5jZSBvZiBXZWJHTFJlbmRlcmJ1ZmZlci4KK1BBU1MgY29udGV4dC5iaW5kVGV4dHVyZShjb250
ZXh0LlRFWFRVUkVfMkQsIGFyZ3VtZW50KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1
bWVudCAyICgndGV4dHVyZScpIHRvIFdlYkdMUmVuZGVyaW5nQ29udGV4dC5iaW5kVGV4dHVyZSBt
dXN0IGJlIGFuIGluc3RhbmNlIG9mIFdlYkdMVGV4dHVyZS4KK1BBU1MgY29udGV4dC5mcmFtZWJ1
ZmZlclJlbmRlcmJ1ZmZlcihjb250ZXh0LkZSQU1FQlVGRkVSLCBjb250ZXh0LkRFUFRIX0FUVEFD
SE1FTlQsIGNvbnRleHQuUkVOREVSQlVGRkVSLCBhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogQXJndW1lbnQgNCAoJ3JlbmRlcmJ1ZmZlcicpIHRvIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlciBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFdlYkdM
UmVuZGVyYnVmZmVyLgorUEFTUyBjb250ZXh0LmZyYW1lYnVmZmVyVGV4dHVyZTJEKGNvbnRleHQu
RlJBTUVCVUZGRVIsIGNvbnRleHQuQ09MT1JfQVRUQUNITUVOVDAsIGNvbnRleHQuVEVYVFVSRV8y
RCwgYXJndW1lbnQsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDQgKCd0
ZXh0dXJlJykgdG8gV2ViR0xSZW5kZXJpbmdDb250ZXh0LmZyYW1lYnVmZmVyVGV4dHVyZTJEIG11
c3QgYmUgYW4gaW5zdGFuY2Ugb2YgV2ViR0xUZXh0dXJlLgogUEFTUyBjb250ZXh0LnVuaWZvcm0y
ZnYoYXJndW1lbnQsIG5ldyBGbG9hdDMyQXJyYXkoWzAuMCwgMC4wXSkpIHRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCiBQQVNTIGNvbnRleHQudW5pZm9ybTJpdihhcmd1bWVu
dCwgbmV3IEludDMyQXJyYXkoWzAsIDBdKSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlw
ZSBlcnJvci4KIFBBU1MgY29udGV4dC51bmlmb3JtTWF0cml4MmZ2KGFyZ3VtZW50LCBmYWxzZSwg
bmV3IEZsb2F0MzJBcnJheShbMC4wLCAwLjAsIDAuMCwgMC4wXSkpIHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IFR5cGUgZXJyb3IuCkBAIC01MywxMCArNTMsMTAgQEAgUEFTUyBjb250ZXh0Lmdl
dFByb2dyYW1QYXJhbWV0ZXIoYXJndW1lbnQsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6
IFR5cGUgZXIKIFBBU1MgY29udGV4dC5nZXRTaGFkZXJQYXJhbWV0ZXIoYXJndW1lbnQsIDApIHRo
cmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCiBQQVNTIGNvbnRleHQuZ2V0VW5p
Zm9ybShhcmd1bWVudCwgbG9jKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9y
LgogUEFTUyBjb250ZXh0LmdldFVuaWZvcm0ocHJvZ3JhbSwgYXJndW1lbnQpIHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIGNvbnRleHQuZ2V0VW5pZm9ybUxvY2F0
aW9uKGFyZ3VtZW50LCAndV9tb2RlbFZpZXdQcm9qTWF0cml4JykgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgY29udGV4dC5nZXRQcm9ncmFtSW5mb0xvZyhhcmd1
bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgY29udGV4
dC5nZXRTaGFkZXJJbmZvTG9nKGFyZ3VtZW50KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBU
eXBlIGVycm9yLgotUEFTUyBjb250ZXh0LmdldFNoYWRlclNvdXJjZShhcmd1bWVudCkgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgY29udGV4dC5nZXRVbmlmb3Jt
TG9jYXRpb24oYXJndW1lbnQsICd1X21vZGVsVmlld1Byb2pNYXRyaXgnKSB0aHJldyBleGNlcHRp
b24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgncHJvZ3JhbScpIHRvIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dC5nZXRVbmlmb3JtTG9jYXRpb24gbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBXZWJHTFByb2dy
YW0uCitQQVNTIGNvbnRleHQuZ2V0UHJvZ3JhbUluZm9Mb2coYXJndW1lbnQpIHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdwcm9ncmFtJykgdG8gV2ViR0xSZW5kZXJpbmdD
b250ZXh0LmdldFByb2dyYW1JbmZvTG9nIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgV2ViR0xQcm9n
cmFtLgorUEFTUyBjb250ZXh0LmdldFNoYWRlckluZm9Mb2coYXJndW1lbnQpIHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdzaGFkZXInKSB0byBXZWJHTFJlbmRlcmluZ0Nv
bnRleHQuZ2V0U2hhZGVySW5mb0xvZyBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFdlYkdMU2hhZGVy
LgorUEFTUyBjb250ZXh0LmdldFNoYWRlclNvdXJjZShhcmd1bWVudCkgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ3NoYWRlcicpIHRvIFdlYkdMUmVuZGVyaW5nQ29udGV4
dC5nZXRTaGFkZXJTb3VyY2UgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBXZWJHTFNoYWRlci4KIFBB
U1MgY29udGV4dC5jb21waWxlU2hhZGVyKGFyZ3VtZW50KSBpcyB1bmRlZmluZWQuCiBQQVNTIGNv
bnRleHQubGlua1Byb2dyYW0oYXJndW1lbnQpIGlzIHVuZGVmaW5lZC4KIFBBU1MgY29udGV4dC5h
dHRhY2hTaGFkZXIocHJvZ3JhbSwgYXJndW1lbnQpIGlzIHVuZGVmaW5lZC4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL251bGwtb2JqZWN0LWJlaGF2aW91ci1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9udWxsLW9iamVjdC1iZWhh
dmlvdXItZXhwZWN0ZWQudHh0CmluZGV4IDk4YjFjMTE4ZDBmYzY0OTFiMDVlNzE3MzAzMGZkMTlm
MGUyMmI2YTQuLjBiMTE4ZDk4NDhhZjFkZjg2MWQwOTNiMGExZDU3YjgyM2FjMDcyODYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL251bGwtb2JqZWN0LWJlaGF2aW91
ci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvbnVsbC1v
YmplY3QtYmVoYXZpb3VyLWV4cGVjdGVkLnR4dApAQCAtMTQsMTAgKzE0LDEwIEBAIFBBU1MgY29u
dGV4dC5kZXRhY2hTaGFkZXIodW5kZWZpbmVkLCBzaGFkZXIpIHdhcyBleHBlY3RlZCB2YWx1ZTog
SU5WQUxJRF9WQUxVRS4KIFBBU1MgY29udGV4dC5zaGFkZXJTb3VyY2UodW5kZWZpbmVkLCB1bmRl
ZmluZWQpIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9WQUxVRS4KIFBBU1MgY29udGV4dC5z
aGFkZXJTb3VyY2UodW5kZWZpbmVkLCAnZm9vJykgd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElE
X1ZBTFVFLgogUEFTUyBjb250ZXh0LmJpbmRBdHRyaWJMb2NhdGlvbih1bmRlZmluZWQsIDAsICdm
b28nKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfVkFMVUUuCi1QQVNTIGNvbnRleHQuYmlu
ZEJ1ZmZlcihjb250ZXh0LkFSUkFZX0JVRkZFUiwgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogVHlwZSBlcnJvci4KLVBBU1MgY29udGV4dC5iaW5kRnJhbWVidWZmZXIoY29udGV4dC5GUkFN
RUJVRkZFUiwgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1Mg
Y29udGV4dC5iaW5kUmVuZGVyYnVmZmVyKGNvbnRleHQuUkVOREVSQlVGRkVSLCAwKSB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBjb250ZXh0LmJpbmRUZXh0dXJl
KGNvbnRleHQuVEVYVFVSRV8yRCwgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBl
cnJvci4KK1BBU1MgY29udGV4dC5iaW5kQnVmZmVyKGNvbnRleHQuQVJSQVlfQlVGRkVSLCAwKSB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAyICgnYnVmZmVyJykgdG8gV2ViR0xS
ZW5kZXJpbmdDb250ZXh0LmJpbmRCdWZmZXIgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1
ZmZlci4KK1BBU1MgY29udGV4dC5iaW5kRnJhbWVidWZmZXIoY29udGV4dC5GUkFNRUJVRkZFUiwg
MCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMiAoJ2ZyYW1lYnVmZmVyJykg
dG8gV2ViR0xSZW5kZXJpbmdDb250ZXh0LmJpbmRGcmFtZWJ1ZmZlciBtdXN0IGJlIGFuIGluc3Rh
bmNlIG9mIFdlYkdMRnJhbWVidWZmZXIuCitQQVNTIGNvbnRleHQuYmluZFJlbmRlcmJ1ZmZlcihj
b250ZXh0LlJFTkRFUkJVRkZFUiwgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1l
bnQgMiAoJ3JlbmRlcmJ1ZmZlcicpIHRvIFdlYkdMUmVuZGVyaW5nQ29udGV4dC5iaW5kUmVuZGVy
YnVmZmVyIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgV2ViR0xSZW5kZXJidWZmZXIuCitQQVNTIGNv
bnRleHQuYmluZFRleHR1cmUoY29udGV4dC5URVhUVVJFXzJELCAwKSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBBcmd1bWVudCAyICgndGV4dHVyZScpIHRvIFdlYkdMUmVuZGVyaW5nQ29udGV4
dC5iaW5kVGV4dHVyZSBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFdlYkdMVGV4dHVyZS4KIFBBU1Mg
Y29udGV4dC5iaW5kQnVmZmVyKGNvbnRleHQuQVJSQVlfQlVGRkVSLCBudWxsKSB3YXMgZXhwZWN0
ZWQgdmFsdWU6IE5PX0VSUk9SLgogUEFTUyBjb250ZXh0LmJpbmRGcmFtZWJ1ZmZlcihjb250ZXh0
LkZSQU1FQlVGRkVSLCBudWxsKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SLgogUEFTUyBj
b250ZXh0LmJpbmRSZW5kZXJidWZmZXIoY29udGV4dC5SRU5ERVJCVUZGRVIsIG51bGwpIHdhcyBl
eHBlY3RlZCB2YWx1ZTogTk9fRVJST1IuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nh
bnZhcy93aW5kaW5nLWVudW1lcmF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
Y2FudmFzL3dpbmRpbmctZW51bWVyYXRpb24tZXhwZWN0ZWQudHh0CmluZGV4IDZmOTczZjExMTZm
MmE2ZTRkYmNkOGIzODI1MGNmZjYxN2IxY2FlOWQuLmNiNmRlOTFkZTBiOGIzN2VjM2Q2N2M4MDk5
ODhhNjZlYTBhNmFjNzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dpbmRp
bmctZW51bWVyYXRpb24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFz
L3dpbmRpbmctZW51bWVyYXRpb24tZXhwZWN0ZWQudHh0CkBAIC0xLDEyICsxLDEyIEBACiBQQVNT
IGNvbnRleHQuZmlsbCgpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgogUEFTUyBjb250ZXh0LmZp
bGwoJ25vbnplcm8nKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KLVBBU1MgY29udGV4dC5maWxs
KCdyYW5kb21zdHJpbmcnKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgor
UEFTUyBjb250ZXh0LmZpbGwoJ3JhbmRvbXN0cmluZycpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IEFyZ3VtZW50IDEgKCd3aW5kaW5nJykgdG8gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmZp
bGwgbXVzdCBiZSBvbmUgb2Y6ICJub256ZXJvIiwgImV2ZW5vZGQiLgogUEFTUyBjb250ZXh0LmNs
aXAoKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KIFBBU1MgY29udGV4dC5jbGlwKCdub256ZXJv
JykgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCi1QQVNTIGNvbnRleHQuY2xpcCgncmFuZG9tc3Ry
aW5nJykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgY29udGV4
dC5jbGlwKCdyYW5kb21zdHJpbmcnKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVu
dCAxICgnd2luZGluZycpIHRvIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jbGlwIG11c3QgYmUg
b25lIG9mOiAibm9uemVybyIsICJldmVub2RkIi4KIFBBU1MgY29udGV4dC5pc1BvaW50SW5QYXRo
KDAsIDApIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgogUEFTUyBjb250ZXh0LmlzUG9pbnRJblBh
dGgoMCwgMCwgJ25vbnplcm8nKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KLVBBU1MgY29udGV4
dC5pc1BvaW50SW5QYXRoKDAsIDAsICdyYW5kb21zdHJpbmcnKSB0aHJldyBleGNlcHRpb24gVHlw
ZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBjb250ZXh0LmlzUG9pbnRJblBhdGgoMCwgMCwgJ3Jh
bmRvbXN0cmluZycpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDMgKCd3aW5k
aW5nJykgdG8gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlzUG9pbnRJblBhdGggbXVzdCBiZSBv
bmUgb2Y6ICJub256ZXJvIiwgImV2ZW5vZGQiLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtl
cnMvc3RvcmFnZS9vcGVuLWRhdGFiYXNlLWlucHV0cy1zeW5jLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3Qvd29ya2Vycy9zdG9yYWdlL29wZW4tZGF0YWJhc2UtaW5wdXRzLXN5bmMtZXhw
ZWN0ZWQudHh0CmluZGV4IDlhNTg0MjNlZjQwMjgwMmNlN2IyMWExMTBkMWIxN2Y4NmRiYWRmYTUu
LjE3OTE2ODUwZWRmYWMzODk3ZWQ2NTllYWY5OTViMWY4YWEyYmJkNjIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zdG9yYWdlL29wZW4tZGF0YWJhc2UtaW5wdXRzLXN5bmMt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zdG9yYWdlL29wZW4t
ZGF0YWJhc2UtaW5wdXRzLXN5bmMtZXhwZWN0ZWQudHh0CkBAIC00LDcgKzQsNyBAQCBQQVNTOiBO
b3QgZW5vdWdoIGFyZ3VtZW50cwogUEFTUzogdW5kZWZpbmVkCiBQQVNTOiB1bmRlZmluZWQKIFBB
U1M6IHVuZGVmaW5lZAotUEFTUzogVHlwZSBlcnJvcgorUEFTUzogQXJndW1lbnQgNSAoJ2NyZWF0
aW9uQ2FsbGJhY2snKSB0byBXb3JrZXJHbG9iYWxTY29wZS5vcGVuRGF0YWJhc2VTeW5jIG11c3Qg
YmUgYSBmdW5jdGlvbgogUEFTUzogb3BlbkRhdGFiYXNlU3luYygpIHN1Y2NlZWRlZC4KIFBBU1M6
IG9wZW5EYXRhYmFzZVN5bmMoKSBzdWNjZWVkZWQuCiBQQVNTOiBjYWxsaW5nIG9wZW5EYXRhYmFz
ZVN5bmMoKSB3aXRoIGEgY3JlYXRpb24gY2FsbGJhY2sgc3VjY2VlZGVkLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvanMvZG9tL2RvbS1hcy1wcm90b3R5cGUtYXNzaWdubWVudC1leGNlcHRpb24t
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL2RvbS1hcy1wcm90b3R5cGUtYXNzaWdu
bWVudC1leGNlcHRpb24tZXhwZWN0ZWQudHh0CmluZGV4IGMyMzRmZTliNmMxYjlkODkyZmQyZDkz
NThkODJlMDEzZmRjMTE0YTYuLjgwZDdhYTRjMmJkYThiYzY2ZTkzOGQxZjg5ZjM2NDU3NDBkZTA4
NWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL2RvbS9kb20tYXMtcHJvdG90eXBlLWFzc2ln
bm1lbnQtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vZG9t
LWFzLXByb3RvdHlwZS1hc3NpZ25tZW50LWV4Y2VwdGlvbi1leHBlY3RlZC50eHQKQEAgLTYsOCAr
Niw4IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIAogUEFTUyB0ZXN0T2JqZWN0LmlkIGlz
IHVuZGVmaW5lZC4KLVBBU1MgdGVzdE9iamVjdC5pZD0iZm9vIiB0aHJldyBleGNlcHRpb24gVHlw
ZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyB0ZXN0T2JqZWN0Lmxlbmd0aCB0aHJldyBleGNlcHRp
b24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyB0ZXN0T2JqZWN0LmlkPSJmb28iIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFRoZSBFbGVtZW50LmlkIHNldHRlciBjYW4gb25seSBiZSB1
c2VkIG9uIGluc3RhbmNlcyBvZiBFbGVtZW50LgorUEFTUyB0ZXN0T2JqZWN0Lmxlbmd0aCB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBUaGUgTm9kZUxpc3QubGVuZ3RoIGdldHRlciBjYW4gb25s
eSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiBOb2RlTGlzdC4KIFBBU1MgZGl2LmlkIGlzICd0ZXN0
JwogUEFTUyBkaXYuaGFzT3duUHJvcGVydHkoJ2lkJykgaXMgZmFsc2UKIFBBU1MgZGl2Ll9fcHJv
dG9fXy5pZCBpcyB1bmRlZmluZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vZG9t
LWF0dHJpYnV0ZXMtb24tbWlzbWF0Y2gtdHlwZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9q
cy9kb20vZG9tLWF0dHJpYnV0ZXMtb24tbWlzbWF0Y2gtdHlwZS1leHBlY3RlZC50eHQKaW5kZXgg
YTQzMTcxYzg4ZmFiNTMzMTcwYTFjNGVhYmRjMmU0NjYxNzljY2IzYS4uNDZmYzA5YzE3OTc5MGQw
Nzg0MmMyOGU4OTdiMTliZWIxMTkwNzkzYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvZG9t
L2RvbS1hdHRyaWJ1dGVzLW9uLW1pc21hdGNoLXR5cGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2pzL2RvbS9kb20tYXR0cmlidXRlcy1vbi1taXNtYXRjaC10eXBlLWV4cGVjdGVkLnR4
dApAQCAtNSwxNCArNSwxNCBAQCBNYWtlIHN1cmUgRE9NIGF0dHJpYnV0ZXMgaGFuZGxlIGRpZmZl
cmVudCB0eXBlcyBvZiB8dGhpc3wgcHJvcGVybHkKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
IAogCi1QQVNTIG9iamVjdFdpdGhEb2N1bWVudEFzUHJvdG90eXBlLmFsbCB0aHJldyBleGNlcHRp
b24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBvYmplY3RXaXRoRG9jdW1lbnRBc1Byb3Rv
dHlwZS5hbGwgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVGhlIEhUTUxEb2N1bWVudC5hbGwg
Z2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mIEhUTUxEb2N1bWVudC4KIFNl
ZSB3aGF0IGhhcHBlbnMgaWYgd2UgcHV0IHRoZSBhbmNob3IgcHJvdG90eXBlIG9uIGEgZGl2CiBQ
QVNTIHRlc3REaXYgaW5zdGFuY2VvZiBIVE1MQW5jaG9yRWxlbWVudCBpcyB0cnVlCiBQQVNTIHRl
c3REaXYuaHJlZiBpcyB1bmRlZmluZWQuCi1QQVNTIHRlc3REaXYuaHJlZj0nZXJyb3InIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIHRlc3REaXYuaHJlZj0nZXJy
b3InIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFRoZSBIVE1MQW5jaG9yRWxlbWVudC5ocmVm
IHNldHRlciBjYW4gb25seSBiZSB1c2VkIG9uIGluc3RhbmNlcyBvZiBIVE1MQW5jaG9yRWxlbWVu
dC4KIFBBU1MgdGVzdERpdiBpbnN0YW5jZW9mIEhUTUxBbmNob3JFbGVtZW50IGlzIHRydWUKIFBB
U1MgdGVzdERpdi5ocmVmIGlzIHVuZGVmaW5lZC4KLVBBU1MgdGVzdERpdi5ocmVmPSdlcnJvcicg
dGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgdGVzdERpdi5ocmVm
PSdlcnJvcicgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVGhlIEhUTUxBbmNob3JFbGVtZW50
LmhyZWYgc2V0dGVyIGNhbiBvbmx5IGJlIHVzZWQgb24gaW5zdGFuY2VzIG9mIEhUTUxBbmNob3JF
bGVtZW50LgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRF
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vdG9TdHJpbmctYW5kLXZhbHVlT2Ytb3Zl
cnJpZGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL3RvU3RyaW5nLWFuZC12YWx1
ZU9mLW92ZXJyaWRlLWV4cGVjdGVkLnR4dAppbmRleCA0ODU5YjVmNmYyYzg3NzQ5YzNiMGIzNDAw
ODlkOGI1OTkwZTVhMWJkLi5jM2E1MjA1MmMxZDU1YWVjM2VkMTExYzg3NmE1OTczOGFlNGFjMjAw
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9kb20vdG9TdHJpbmctYW5kLXZhbHVlT2Ytb3Zl
cnJpZGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS90b1N0cmluZy1hbmQt
dmFsdWVPZi1vdmVycmlkZS1leHBlY3RlZC50eHQKQEAgLTM5Miw3ICszOTIsNyBAQCBTZWxlY3Rp
b24gOgogU3RyaW5nKFNlbGVjdGlvbikgOiAKIFN0cmluZyhbU2VsZWN0aW9uXSkgOiAKIFNlbGVj
dGlvbi50b1N0cmluZyA6IGZ1bmN0aW9uIHRvU3RyaW5nKCkgeyBbbmF0aXZlIGNvZGVdIH0KLVR5
cGVFcnJvcjogVHlwZSBlcnJvcgorVHlwZUVycm9yOiBDYW4gb25seSBjYWxsIERPTVNlbGVjdGlv
bi50b1N0cmluZyBvbiBpbnN0YW5jZXMgb2YgRE9NU2VsZWN0aW9uCiBTZWxlY3Rpb24udG9TdHJp
bmcoKSA6IAogW1NlbGVjdGlvbl0udG9TdHJpbmcoKSA6IAogU2VsZWN0aW9uLnZhbHVlT2YoKSA6
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2RvbS9TVkdMZW5ndGhMaXN0LWJhc2ljcy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdmcvZG9tL1NWR0xlbmd0aExpc3QtYmFzaWNzLWV4
cGVjdGVkLnR4dAppbmRleCBmNjZlOGY4N2E3NzgzNzViMTBhMGZhNGI0MTg2OTc4YjQxYjI3M2Iy
Li41ZmFjZDBkYzc0NjdhOWQyNWJhYzBlOTY3ZDQwYWFhOTIxZDdiMTFiIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9zdmcvZG9tL1NWR0xlbmd0aExpc3QtYmFzaWNzLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9zdmcvZG9tL1NWR0xlbmd0aExpc3QtYmFzaWNzLWV4cGVjdGVkLnR4dApA
QCAtMTIsOSArMTIsOSBAQCBQQVNTIHRleHQxLnguYmFzZVZhbC5nZXRJdGVtKDEpLnZhbHVlIGlz
IDEwMDAKIFBBU1MgdGV4dDEueC5iYXNlVmFsLmdldEl0ZW0oMikudmFsdWUgaXMgMTUwMAogCiBU
ZXN0IHVuY29tbW9uIGFyZ3VtZW50cyBmb3IgaW5pdGlhbGl6ZSgpCi1QQVNTIHRleHQxLnguYmFz
ZVZhbC5pbml0aWFsaXplKDMwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9y
LgotUEFTUyB0ZXh0MS54LmJhc2VWYWwuaW5pdGlhbGl6ZSgnYVN0cmluZycpIHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIHRleHQxLnguYmFzZVZhbC5pbml0aWFs
aXplKHRleHQxKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyB0
ZXh0MS54LmJhc2VWYWwuaW5pdGlhbGl6ZSgzMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjog
QXJndW1lbnQgMSAoJ2l0ZW0nKSB0byBTVkdMZW5ndGhMaXN0LmluaXRpYWxpemUgbXVzdCBiZSBh
biBpbnN0YW5jZSBvZiBTVkdMZW5ndGguCitQQVNTIHRleHQxLnguYmFzZVZhbC5pbml0aWFsaXpl
KCdhU3RyaW5nJykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ2l0ZW0n
KSB0byBTVkdMZW5ndGhMaXN0LmluaXRpYWxpemUgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBTVkdM
ZW5ndGguCitQQVNTIHRleHQxLnguYmFzZVZhbC5pbml0aWFsaXplKHRleHQxKSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnaXRlbScpIHRvIFNWR0xlbmd0aExpc3QuaW5p
dGlhbGl6ZSBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFNWR0xlbmd0aC4KIFBBU1MgdGV4dDEueC5i
YXNlVmFsLmluaXRpYWxpemUobnVsbCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTVkdfV1JPTkdf
VFlQRV9FUlI6IERPTSBTVkcgRXhjZXB0aW9uIDAuCiAKIFRlc3QgdW5jb21tb24gYXJndW1lbnRz
IGZvciBnZXRJdGVtKCkKQEAgLTUyLDkgKzUyLDkgQEAgUEFTUyB0ZXh0MS54LmJhc2VWYWwuZ2V0
SXRlbSgwKS52YWx1ZSBpcyA1MDAKIFBBU1MgdGV4dDEueC5iYXNlVmFsLmdldEl0ZW0oMSkudmFs
dWUgaXMgMTAwMAogUEFTUyB0ZXh0MS54LmJhc2VWYWwuZ2V0SXRlbSgyKS52YWx1ZSBpcyAxNTAw
CiBQQVNTIHRleHQxLmdldEF0dHJpYnV0ZSgneCcpIGlzICI1MDAgMTAwMCAxNTAwIgotUEFTUyB0
ZXh0MS54LmJhc2VWYWwuaW5zZXJ0SXRlbUJlZm9yZSgzMCwgMCkgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgdGV4dDEueC5iYXNlVmFsLmluc2VydEl0ZW1CZWZv
cmUoJ2FTdHJpbmcnLCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgot
UEFTUyB0ZXh0MS54LmJhc2VWYWwuaW5zZXJ0SXRlbUJlZm9yZSh0ZXh0MSwgMCkgdGhyZXcgZXhj
ZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgdGV4dDEueC5iYXNlVmFsLmluc2Vy
dEl0ZW1CZWZvcmUoMzAsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEg
KCdpdGVtJykgdG8gU1ZHTGVuZ3RoTGlzdC5pbnNlcnRJdGVtQmVmb3JlIG11c3QgYmUgYW4gaW5z
dGFuY2Ugb2YgU1ZHTGVuZ3RoLgorUEFTUyB0ZXh0MS54LmJhc2VWYWwuaW5zZXJ0SXRlbUJlZm9y
ZSgnYVN0cmluZycsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdp
dGVtJykgdG8gU1ZHTGVuZ3RoTGlzdC5pbnNlcnRJdGVtQmVmb3JlIG11c3QgYmUgYW4gaW5zdGFu
Y2Ugb2YgU1ZHTGVuZ3RoLgorUEFTUyB0ZXh0MS54LmJhc2VWYWwuaW5zZXJ0SXRlbUJlZm9yZSh0
ZXh0MSwgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ2l0ZW0nKSB0
byBTVkdMZW5ndGhMaXN0Lmluc2VydEl0ZW1CZWZvcmUgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBT
VkdMZW5ndGguCiBQQVNTIHRleHQxLnguYmFzZVZhbC5pbnNlcnRJdGVtQmVmb3JlKG51bGwsIDAp
IHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU1ZHX1dST05HX1RZUEVfRVJSOiBET00gU1ZHIEV4Y2Vw
dGlvbiAwLgogCiBTZXQgeD0nMSAyIDMgNCcgZm9yIHRleHQxCkBAIC04Miw5ICs4Miw5IEBAIFBB
U1MgdGV4dDEueC5iYXNlVmFsLnJlcGxhY2VJdGVtKDMwKSB0aHJldyBleGNlcHRpb24gVHlwZUVy
cm9yOiBOb3QgZW5vdWdoIGFyZ3VtCiBQQVNTIHRleHQxLnguYmFzZVZhbC5yZXBsYWNlSXRlbSgn
YVN0cmluZycpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRz
LgogUEFTUyB0ZXh0MS54LmJhc2VWYWwucmVwbGFjZUl0ZW0odGV4dDEpIHRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgogUEFTUyB0ZXh0MS54LmJhc2VWYWwu
cmVwbGFjZUl0ZW0obnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBh
cmd1bWVudHMuCi1QQVNTIHRleHQxLnguYmFzZVZhbC5yZXBsYWNlSXRlbSgzMCwgMCkgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgdGV4dDEueC5iYXNlVmFsLnJl
cGxhY2VJdGVtKCdhU3RyaW5nJywgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBl
cnJvci4KLVBBU1MgdGV4dDEueC5iYXNlVmFsLnJlcGxhY2VJdGVtKHRleHQxLCAwKSB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyB0ZXh0MS54LmJhc2VWYWwucmVw
bGFjZUl0ZW0oMzAsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdp
dGVtJykgdG8gU1ZHTGVuZ3RoTGlzdC5yZXBsYWNlSXRlbSBtdXN0IGJlIGFuIGluc3RhbmNlIG9m
IFNWR0xlbmd0aC4KK1BBU1MgdGV4dDEueC5iYXNlVmFsLnJlcGxhY2VJdGVtKCdhU3RyaW5nJywg
MCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ2l0ZW0nKSB0byBTVkdM
ZW5ndGhMaXN0LnJlcGxhY2VJdGVtIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgU1ZHTGVuZ3RoLgor
UEFTUyB0ZXh0MS54LmJhc2VWYWwucmVwbGFjZUl0ZW0odGV4dDEsIDApIHRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdpdGVtJykgdG8gU1ZHTGVuZ3RoTGlzdC5yZXBsYWNl
SXRlbSBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFNWR0xlbmd0aC4KIFBBU1MgdGV4dDEueC5iYXNl
VmFsLnJlcGxhY2VJdGVtKG51bGwsIDApIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU1ZHX1dST05H
X1RZUEVfRVJSOiBET00gU1ZHIEV4Y2VwdGlvbiAwLgogUEFTUyB0ZXh0MS54LmJhc2VWYWwucmVw
bGFjZUl0ZW0odGV4dDEueC5iYXNlVmFsLmdldEl0ZW0oMCksIDApIGlzIHRleHQxLnguYmFzZVZh
bC5nZXRJdGVtKDApCiBQQVNTIHRleHQxLnguYmFzZVZhbC5udW1iZXJPZkl0ZW1zIGlzIDQKQEAg
LTEzNCw5ICsxMzQsOSBAQCBQQVNTIHRleHQxLnguYmFzZVZhbC5nZXRJdGVtKDEpLnZhbHVlIGlz
IDQKIFBBU1MgdGV4dDEuZ2V0QXR0cmlidXRlKCd4JykgaXMgIjMgNCIKIAogVGVzdCB1bmNvbW1v
biBhcmd1bWVudHMgZm9yIGFwcGVuZEl0ZW0oKQotUEFTUyB0ZXh0MS54LmJhc2VWYWwuYXBwZW5k
SXRlbSgzMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgdGV4
dDEueC5iYXNlVmFsLmFwcGVuZEl0ZW0oJ2FTdHJpbmcnKSB0aHJldyBleGNlcHRpb24gVHlwZUVy
cm9yOiBUeXBlIGVycm9yLgotUEFTUyB0ZXh0MS54LmJhc2VWYWwuYXBwZW5kSXRlbSh0ZXh0MSkg
dGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgdGV4dDEueC5iYXNl
VmFsLmFwcGVuZEl0ZW0oMzApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEg
KCdpdGVtJykgdG8gU1ZHTGVuZ3RoTGlzdC5hcHBlbmRJdGVtIG11c3QgYmUgYW4gaW5zdGFuY2Ug
b2YgU1ZHTGVuZ3RoLgorUEFTUyB0ZXh0MS54LmJhc2VWYWwuYXBwZW5kSXRlbSgnYVN0cmluZycp
IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdpdGVtJykgdG8gU1ZHTGVu
Z3RoTGlzdC5hcHBlbmRJdGVtIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgU1ZHTGVuZ3RoLgorUEFT
UyB0ZXh0MS54LmJhc2VWYWwuYXBwZW5kSXRlbSh0ZXh0MSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogQXJndW1lbnQgMSAoJ2l0ZW0nKSB0byBTVkdMZW5ndGhMaXN0LmFwcGVuZEl0ZW0gbXVz
dCBiZSBhbiBpbnN0YW5jZSBvZiBTVkdMZW5ndGguCiBQQVNTIHRleHQxLnguYmFzZVZhbC5hcHBl
bmRJdGVtKG51bGwpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU1ZHX1dST05HX1RZUEVfRVJSOiBE
T00gU1ZHIEV4Y2VwdGlvbiAwLgogCiBUZXN0aW5nIGFuaW1WYWwgY2xlYXIgdGhyb3dzCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvZG9tL1NWR01hdHJpeC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9zdmcvZG9tL1NWR01hdHJpeC1leHBlY3RlZC50eHQKaW5kZXggNDJkNzEwNjBkZGQ5
NDI1ZDE1Y2YxOTU2NmUzMDY5MmQxYmQwNDlmYy4uMmM4NTI2M2ZmYzU4NmJmNWMxNDZjYjM5MjA1
MWUxMjdmNjhiNjJiOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3ZnL2RvbS9TVkdNYXRyaXgt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N2Zy9kb20vU1ZHTWF0cml4LWV4cGVjdGVk
LnR4dApAQCAtOTEsMTAgKzkxLDEwIEBAIFBBU1MgbWF0cml4LmYgaXMgMAogCiBDaGVjayBjYWxs
aW5nICdtdWx0aXBseScgd2l0aCBpbnZhbGlkIGFyZ3VtZW50cwogUEFTUyBtYXRyaXgubXVsdGlw
bHkoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KLVBB
U1MgbWF0cml4Lm11bHRpcGx5KHRydWUpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUg
ZXJyb3IuCi1QQVNTIG1hdHJpeC5tdWx0aXBseSgyKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9y
OiBUeXBlIGVycm9yLgotUEFTUyBtYXRyaXgubXVsdGlwbHkoJ2FTdHJpbmcnKSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBtYXRyaXgubXVsdGlwbHkoc3ZnRWxl
bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgbWF0cml4
Lm11bHRpcGx5KHRydWUpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdz
ZWNvbmRNYXRyaXgnKSB0byBTVkdNYXRyaXgubXVsdGlwbHkgbXVzdCBiZSBhbiBpbnN0YW5jZSBv
ZiBTVkdNYXRyaXguCitQQVNTIG1hdHJpeC5tdWx0aXBseSgyKSB0aHJldyBleGNlcHRpb24gVHlw
ZUVycm9yOiBBcmd1bWVudCAxICgnc2Vjb25kTWF0cml4JykgdG8gU1ZHTWF0cml4Lm11bHRpcGx5
IG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgU1ZHTWF0cml4LgorUEFTUyBtYXRyaXgubXVsdGlwbHko
J2FTdHJpbmcnKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnc2Vjb25k
TWF0cml4JykgdG8gU1ZHTWF0cml4Lm11bHRpcGx5IG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgU1ZH
TWF0cml4LgorUEFTUyBtYXRyaXgubXVsdGlwbHkoc3ZnRWxlbWVudCkgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ3NlY29uZE1hdHJpeCcpIHRvIFNWR01hdHJpeC5tdWx0
aXBseSBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFNWR01hdHJpeC4KIAogQ2hlY2sgY2FsbGluZyAn
dHJhbnNsYXRlJyB3aXRoIGludmFsaWQgYXJndW1lbnRzCiBQQVNTIG1hdHJpeC50cmFuc2xhdGUo
KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N2Zy9kb20vU1ZHTnVtYmVyTGlzdC1iYXNpY3MtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvc3ZnL2RvbS9TVkdOdW1iZXJMaXN0LWJhc2ljcy1leHBlY3RlZC50
eHQKaW5kZXggNGQwOTBiZTQzMjhmYmVjZDFlMGE0YTdmNWNkZDk3MDU5ZmY3YTg2NC4uYTZiZjkz
NDRhOWNjYTVmNDRkYzIzMDc4ODc4YzYwNjVhM2RhYWU0NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvc3ZnL2RvbS9TVkdOdW1iZXJMaXN0LWJhc2ljcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvc3ZnL2RvbS9TVkdOdW1iZXJMaXN0LWJhc2ljcy1leHBlY3RlZC50eHQKQEAgLTksOSAr
OSw5IEBAIFBBU1MgdGV4dDEucm90YXRlLmJhc2VWYWwubnVtYmVyT2ZJdGVtcyBpcyAzCiBQQVNT
IHRleHQxLnJvdGF0ZS5hbmltVmFsLm51bWJlck9mSXRlbXMgaXMgMwogCiBUZXN0IHVuY29tbW9u
IGFyZ3VtZW50cyBmb3IgaW5pdGlhbGl6ZSgpCi1QQVNTIHRleHQxLnJvdGF0ZS5iYXNlVmFsLmlu
aXRpYWxpemUoMzApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNT
IHRleHQxLnJvdGF0ZS5iYXNlVmFsLmluaXRpYWxpemUoJ2FTdHJpbmcnKSB0aHJldyBleGNlcHRp
b24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyB0ZXh0MS5yb3RhdGUuYmFzZVZhbC5pbml0
aWFsaXplKHRleHQxKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFT
UyB0ZXh0MS5yb3RhdGUuYmFzZVZhbC5pbml0aWFsaXplKDMwKSB0aHJldyBleGNlcHRpb24gVHlw
ZUVycm9yOiBBcmd1bWVudCAxICgnaXRlbScpIHRvIFNWR051bWJlckxpc3QuaW5pdGlhbGl6ZSBt
dXN0IGJlIGFuIGluc3RhbmNlIG9mIFNWR051bWJlci4KK1BBU1MgdGV4dDEucm90YXRlLmJhc2VW
YWwuaW5pdGlhbGl6ZSgnYVN0cmluZycpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3Vt
ZW50IDEgKCdpdGVtJykgdG8gU1ZHTnVtYmVyTGlzdC5pbml0aWFsaXplIG11c3QgYmUgYW4gaW5z
dGFuY2Ugb2YgU1ZHTnVtYmVyLgorUEFTUyB0ZXh0MS5yb3RhdGUuYmFzZVZhbC5pbml0aWFsaXpl
KHRleHQxKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnaXRlbScpIHRv
IFNWR051bWJlckxpc3QuaW5pdGlhbGl6ZSBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFNWR051bWJl
ci4KIFBBU1MgdGV4dDEucm90YXRlLmJhc2VWYWwuaW5pdGlhbGl6ZShudWxsKSB0aHJldyBleGNl
cHRpb24gRXJyb3I6IFNWR19XUk9OR19UWVBFX0VSUjogRE9NIFNWRyBFeGNlcHRpb24gMC4KIAog
VGVzdCB1bmNvbW1vbiBhcmd1bWVudHMgZm9yIGdldEl0ZW0oKQpAQCAtNDksOSArNDksOSBAQCBQ
QVNTIHRleHQxLnJvdGF0ZS5iYXNlVmFsLmdldEl0ZW0oMCkudmFsdWUgaXMgOTAKIFBBU1MgdGV4
dDEucm90YXRlLmJhc2VWYWwuZ2V0SXRlbSgxKS52YWx1ZSBpcyAxODAKIFBBU1MgdGV4dDEucm90
YXRlLmJhc2VWYWwuZ2V0SXRlbSgyKS52YWx1ZSBpcyAyNzAKIFBBU1MgdGV4dDEuZ2V0QXR0cmli
dXRlKCdyb3RhdGUnKSBpcyAiOTAgMTgwIDI3MCIKLVBBU1MgdGV4dDEucm90YXRlLmJhc2VWYWwu
aW5zZXJ0SXRlbUJlZm9yZSgzMCwgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBl
cnJvci4KLVBBU1MgdGV4dDEucm90YXRlLmJhc2VWYWwuaW5zZXJ0SXRlbUJlZm9yZSgnYVN0cmlu
ZycsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIHRleHQx
LnJvdGF0ZS5iYXNlVmFsLmluc2VydEl0ZW1CZWZvcmUodGV4dDEsIDApIHRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIHRleHQxLnJvdGF0ZS5iYXNlVmFsLmluc2Vy
dEl0ZW1CZWZvcmUoMzAsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEg
KCdpdGVtJykgdG8gU1ZHTnVtYmVyTGlzdC5pbnNlcnRJdGVtQmVmb3JlIG11c3QgYmUgYW4gaW5z
dGFuY2Ugb2YgU1ZHTnVtYmVyLgorUEFTUyB0ZXh0MS5yb3RhdGUuYmFzZVZhbC5pbnNlcnRJdGVt
QmVmb3JlKCdhU3RyaW5nJywgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQg
MSAoJ2l0ZW0nKSB0byBTVkdOdW1iZXJMaXN0Lmluc2VydEl0ZW1CZWZvcmUgbXVzdCBiZSBhbiBp
bnN0YW5jZSBvZiBTVkdOdW1iZXIuCitQQVNTIHRleHQxLnJvdGF0ZS5iYXNlVmFsLmluc2VydEl0
ZW1CZWZvcmUodGV4dDEsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEg
KCdpdGVtJykgdG8gU1ZHTnVtYmVyTGlzdC5pbnNlcnRJdGVtQmVmb3JlIG11c3QgYmUgYW4gaW5z
dGFuY2Ugb2YgU1ZHTnVtYmVyLgogUEFTUyB0ZXh0MS5yb3RhdGUuYmFzZVZhbC5pbnNlcnRJdGVt
QmVmb3JlKG51bGwsIDApIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU1ZHX1dST05HX1RZUEVfRVJS
OiBET00gU1ZHIEV4Y2VwdGlvbiAwLgogCiBTZXQgcm90YXRlPScxIDIgMyA0JyBmb3IgdGV4dDEK
QEAgLTY4LDkgKzY4LDkgQEAgUEFTUyB0ZXh0MS5yb3RhdGUuYmFzZVZhbC5yZXBsYWNlSXRlbSgz
MCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaAogUEFTUyB0ZXh0MS5yb3Rh
dGUuYmFzZVZhbC5yZXBsYWNlSXRlbSgnYVN0cmluZycpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgogUEFTUyB0ZXh0MS5yb3RhdGUuYmFzZVZhbC5yZXBs
YWNlSXRlbSh0ZXh0MSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1
bWVudHMuCiBQQVNTIHRleHQxLnJvdGF0ZS5iYXNlVmFsLnJlcGxhY2VJdGVtKG51bGwpIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgotUEFTUyB0ZXh0MS5y
b3RhdGUuYmFzZVZhbC5yZXBsYWNlSXRlbSgzMCwgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogVHlwZSBlcnJvci4KLVBBU1MgdGV4dDEucm90YXRlLmJhc2VWYWwucmVwbGFjZUl0ZW0oJ2FT
dHJpbmcnLCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyB0
ZXh0MS5yb3RhdGUuYmFzZVZhbC5yZXBsYWNlSXRlbSh0ZXh0MSwgMCkgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgdGV4dDEucm90YXRlLmJhc2VWYWwucmVwbGFj
ZUl0ZW0oMzAsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdpdGVt
JykgdG8gU1ZHTnVtYmVyTGlzdC5yZXBsYWNlSXRlbSBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFNW
R051bWJlci4KK1BBU1MgdGV4dDEucm90YXRlLmJhc2VWYWwucmVwbGFjZUl0ZW0oJ2FTdHJpbmcn
LCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnaXRlbScpIHRvIFNW
R051bWJlckxpc3QucmVwbGFjZUl0ZW0gbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBTVkdOdW1iZXIu
CitQQVNTIHRleHQxLnJvdGF0ZS5iYXNlVmFsLnJlcGxhY2VJdGVtKHRleHQxLCAwKSB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnaXRlbScpIHRvIFNWR051bWJlckxpc3Qu
cmVwbGFjZUl0ZW0gbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBTVkdOdW1iZXIuCiBQQVNTIHRleHQx
LnJvdGF0ZS5iYXNlVmFsLnJlcGxhY2VJdGVtKG51bGwsIDApIHRocmV3IGV4Y2VwdGlvbiBFcnJv
cjogU1ZHX1dST05HX1RZUEVfRVJSOiBET00gU1ZHIEV4Y2VwdGlvbiAwLgogUEFTUyB0ZXh0MS5y
b3RhdGUuYmFzZVZhbC5yZXBsYWNlSXRlbSh0ZXh0MS5yb3RhdGUuYmFzZVZhbC5nZXRJdGVtKDAp
LCAwKSBpcyB0ZXh0MS5yb3RhdGUuYmFzZVZhbC5nZXRJdGVtKDApCiBQQVNTIHRleHQxLnJvdGF0
ZS5iYXNlVmFsLm51bWJlck9mSXRlbXMgaXMgNApAQCAtMTE1LDkgKzExNSw5IEBAIFBBU1MgdGV4
dDEucm90YXRlLmJhc2VWYWwuZ2V0SXRlbSgwKS52YWx1ZSBpcyA0CiBQQVNTIHRleHQxLmdldEF0
dHJpYnV0ZSgncm90YXRlJykgaXMgIjQiCiAKIFRlc3QgdW5jb21tb24gYXJndW1lbnRzIGZvciBh
cHBlbmRJdGVtKCkKLVBBU1MgdGV4dDEucm90YXRlLmJhc2VWYWwuYXBwZW5kSXRlbSgzMCkgdGhy
ZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgdGV4dDEucm90YXRlLmJh
c2VWYWwuYXBwZW5kSXRlbSgnYVN0cmluZycpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5
cGUgZXJyb3IuCi1QQVNTIHRleHQxLnJvdGF0ZS5iYXNlVmFsLmFwcGVuZEl0ZW0odGV4dDEpIHRo
cmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIHRleHQxLnJvdGF0ZS5i
YXNlVmFsLmFwcGVuZEl0ZW0oMzApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50
IDEgKCdpdGVtJykgdG8gU1ZHTnVtYmVyTGlzdC5hcHBlbmRJdGVtIG11c3QgYmUgYW4gaW5zdGFu
Y2Ugb2YgU1ZHTnVtYmVyLgorUEFTUyB0ZXh0MS5yb3RhdGUuYmFzZVZhbC5hcHBlbmRJdGVtKCdh
U3RyaW5nJykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ2l0ZW0nKSB0
byBTVkdOdW1iZXJMaXN0LmFwcGVuZEl0ZW0gbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBTVkdOdW1i
ZXIuCitQQVNTIHRleHQxLnJvdGF0ZS5iYXNlVmFsLmFwcGVuZEl0ZW0odGV4dDEpIHRocmV3IGV4
Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdpdGVtJykgdG8gU1ZHTnVtYmVyTGlzdC5h
cHBlbmRJdGVtIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgU1ZHTnVtYmVyLgogUEFTUyB0ZXh0MS5y
b3RhdGUuYmFzZVZhbC5hcHBlbmRJdGVtKG51bGwpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU1ZH
X1dST05HX1RZUEVfRVJSOiBET00gU1ZHIEV4Y2VwdGlvbiAwLgogCiBUZXN0aW5nIGFuaW1WYWwg
Y2xlYXIgdGhyb3dzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvZG9tL1NWR1BvaW50LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N2Zy9kb20vU1ZHUG9pbnQtZXhwZWN0ZWQudHh0Cmlu
ZGV4IGI1MjY2NjA4ODAyYjg2NWFjMGNjNmVjZDU1OTNjNDVhN2UzYmRjOGEuLjFjZDc4YWE3YmVm
YzE5YmYwNDE0ZjUxMTUwNWMyNDVlYzQ0ZWEyNjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N2
Zy9kb20vU1ZHUG9pbnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N2Zy9kb20vU1ZH
UG9pbnQtZXhwZWN0ZWQudHh0CkBAIC0yOSwxMSArMjksMTEgQEAgUEFTUyBuZXdQb2ludC55IGlz
IDIxMAogCiBDaGVjayBpbnZhbGlkIGFyZ3VtZW50cyBmb3IgJ21hdHJpeFRyYW5zZm9ybScKIFBB
U1MgcG9pbnQubWF0cml4VHJhbnNmb3JtKCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90
IGVub3VnaCBhcmd1bWVudHMuCi1QQVNTIHBvaW50Lm1hdHJpeFRyYW5zZm9ybSgtMSkgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgcG9pbnQubWF0cml4VHJhbnNm
b3JtKDUpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIHBvaW50
Lm1hdHJpeFRyYW5zZm9ybSgnYVN0cmluZycpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5
cGUgZXJyb3IuCi1QQVNTIHBvaW50Lm1hdHJpeFRyYW5zZm9ybShwb2ludCkgdGhyZXcgZXhjZXB0
aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgcG9pbnQubWF0cml4VHJhbnNmb3JtKHN2
Z0VsZW1lbnQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIHBv
aW50Lm1hdHJpeFRyYW5zZm9ybSgtMSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1l
bnQgMSAoJ21hdHJpeCcpIHRvIFNWR1BvaW50Lm1hdHJpeFRyYW5zZm9ybSBtdXN0IGJlIGFuIGlu
c3RhbmNlIG9mIFNWR01hdHJpeC4KK1BBU1MgcG9pbnQubWF0cml4VHJhbnNmb3JtKDUpIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdtYXRyaXgnKSB0byBTVkdQb2ludC5t
YXRyaXhUcmFuc2Zvcm0gbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBTVkdNYXRyaXguCitQQVNTIHBv
aW50Lm1hdHJpeFRyYW5zZm9ybSgnYVN0cmluZycpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6
IEFyZ3VtZW50IDEgKCdtYXRyaXgnKSB0byBTVkdQb2ludC5tYXRyaXhUcmFuc2Zvcm0gbXVzdCBi
ZSBhbiBpbnN0YW5jZSBvZiBTVkdNYXRyaXguCitQQVNTIHBvaW50Lm1hdHJpeFRyYW5zZm9ybShw
b2ludCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ21hdHJpeCcpIHRv
IFNWR1BvaW50Lm1hdHJpeFRyYW5zZm9ybSBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFNWR01hdHJp
eC4KK1BBU1MgcG9pbnQubWF0cml4VHJhbnNmb3JtKHN2Z0VsZW1lbnQpIHRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdtYXRyaXgnKSB0byBTVkdQb2ludC5tYXRyaXhUcmFu
c2Zvcm0gbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBTVkdNYXRyaXguCiBQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N2Zy9kb20vU1ZHUG9pbnRMaXN0LWJhc2ljcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9z
dmcvZG9tL1NWR1BvaW50TGlzdC1iYXNpY3MtZXhwZWN0ZWQudHh0CmluZGV4IDU4NGE4NDE0MTk0
MjRkMDg0ZmRhMjQ0M2JiMTEzYjg5MTk3OTBiODAuLmRhYmY4MmY3MjZmYWFjNmQxNTE2MzE3NDFl
ZmQ2ZWVlMDkzMTgyNWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N2Zy9kb20vU1ZHUG9pbnRM
aXN0LWJhc2ljcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2RvbS9TVkdQb2lu
dExpc3QtYmFzaWNzLWV4cGVjdGVkLnR4dApAQCAtMjAsOSArMjAsOSBAQCBQQVNTIHBvbHkxLnBv
aW50cy5pbml0aWFsaXplKHBvaW50KSBpcyBwb2ludAogUEFTUyBwb2x5MS5wb2ludHMubnVtYmVy
T2ZJdGVtcyBpcyAxCiBQQVNTIGR1bXBQb2ludChwb2x5MS5wb2ludHMuZ2V0SXRlbSgwKSkgaXMg
Ing9MjAwIHk9MTAwIgogUEFTUyBwb2x5MS5nZXRBdHRyaWJ1dGUoJ3BvaW50cycpLmZvcm1hdFBv
aW50c0F0dHJpYnV0ZSgpIGlzICIyMDAgMTAwIgotUEFTUyBwb2x5MS5wb2ludHMuaW5pdGlhbGl6
ZShwb2x5MSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgcG9s
eTEucG9pbnRzLmluaXRpYWxpemUoMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBl
cnJvci4KLVBBU1MgcG9seTEucG9pbnRzLmluaXRpYWxpemUoJ2FTdHJpbmcnKSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBwb2x5MS5wb2ludHMuaW5pdGlhbGl6
ZShwb2x5MSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ2l0ZW0nKSB0
byBTVkdQb2ludExpc3QuaW5pdGlhbGl6ZSBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFNWR1BvaW50
LgorUEFTUyBwb2x5MS5wb2ludHMuaW5pdGlhbGl6ZSgwKSB0aHJldyBleGNlcHRpb24gVHlwZUVy
cm9yOiBBcmd1bWVudCAxICgnaXRlbScpIHRvIFNWR1BvaW50TGlzdC5pbml0aWFsaXplIG11c3Qg
YmUgYW4gaW5zdGFuY2Ugb2YgU1ZHUG9pbnQuCitQQVNTIHBvbHkxLnBvaW50cy5pbml0aWFsaXpl
KCdhU3RyaW5nJykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ2l0ZW0n
KSB0byBTVkdQb2ludExpc3QuaW5pdGlhbGl6ZSBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFNWR1Bv
aW50LgogCiBSZXNldCBwb2ludHMgYXR0cmlidXRlIHRvIDAgMCAxMDAgMCAxMDAgMTAwIDAgMTAw
CiBQQVNTIHBvbHkxLnNldEF0dHJpYnV0ZSgncG9pbnRzJywgJzAgMCAxMDAgMCAxMDAgMTAwIDAg
MTAwJykgaXMgdW5kZWZpbmVkLgpAQCAtNzEsOSArNzEsOSBAQCBQQVNTIGR1bXBQb2ludChwb2x5
MS5wb2ludHMuZ2V0SXRlbSgxKSkgaXMgIng9MTAwIHk9MCIKIFBBU1MgZHVtcFBvaW50KHBvbHkx
LnBvaW50cy5nZXRJdGVtKDIpKSBpcyAieD0xMDAgeT0xMDAiCiBQQVNTIGR1bXBQb2ludChwb2x5
MS5wb2ludHMuZ2V0SXRlbSgzKSkgaXMgIng9MCB5PTEwMCIKIFBBU1MgcG9seTEuZ2V0QXR0cmli
dXRlKCdwb2ludHMnKS5mb3JtYXRQb2ludHNBdHRyaWJ1dGUoKSBpcyAiMCAwIDEwMCAwIDEwMCAx
MDAgMCAxMDAiCi1QQVNTIHBvbHkxLnBvaW50cy5pbnNlcnRJdGVtQmVmb3JlKDMwLCAwKSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBwb2x5MS5wb2ludHMuaW5z
ZXJ0SXRlbUJlZm9yZSgnYVN0cmluZycsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5
cGUgZXJyb3IuCi1QQVNTIHBvbHkxLnBvaW50cy5pbnNlcnRJdGVtQmVmb3JlKHBvbHkxLCAwKSB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBwb2x5MS5wb2ludHMu
aW5zZXJ0SXRlbUJlZm9yZSgzMCwgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1l
bnQgMSAoJ2l0ZW0nKSB0byBTVkdQb2ludExpc3QuaW5zZXJ0SXRlbUJlZm9yZSBtdXN0IGJlIGFu
IGluc3RhbmNlIG9mIFNWR1BvaW50LgorUEFTUyBwb2x5MS5wb2ludHMuaW5zZXJ0SXRlbUJlZm9y
ZSgnYVN0cmluZycsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdp
dGVtJykgdG8gU1ZHUG9pbnRMaXN0Lmluc2VydEl0ZW1CZWZvcmUgbXVzdCBiZSBhbiBpbnN0YW5j
ZSBvZiBTVkdQb2ludC4KK1BBU1MgcG9seTEucG9pbnRzLmluc2VydEl0ZW1CZWZvcmUocG9seTEs
IDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdpdGVtJykgdG8gU1ZH
UG9pbnRMaXN0Lmluc2VydEl0ZW1CZWZvcmUgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBTVkdQb2lu
dC4KIFBBU1MgcG9seTEucG9pbnRzLmluc2VydEl0ZW1CZWZvcmUobnVsbCwgMCkgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBTVkdfV1JPTkdfVFlQRV9FUlI6IERPTSBTVkcgRXhjZXB0aW9uIDAuCiAK
IFRlc3QgdW5jb21tb24gYXJndW1lbnRzIGZvciByZXBsYWNlSXRlbSgpCkBAIC04MSw5ICs4MSw5
IEBAIFBBU1MgcG9seTEucG9pbnRzLnJlcGxhY2VJdGVtKDMwKSB0aHJldyBleGNlcHRpb24gVHlw
ZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50CiBQQVNTIHBvbHkxLnBvaW50cy5yZXBsYWNlSXRl
bSgnYVN0cmluZycpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1l
bnRzLgogUEFTUyBwb2x5MS5wb2ludHMucmVwbGFjZUl0ZW0ocG9seTEpIHRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgogUEFTUyBwb2x5MS5wb2ludHMucmVw
bGFjZUl0ZW0obnVsbCwgMCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTVkdfV1JPTkdfVFlQRV9F
UlI6IERPTSBTVkcgRXhjZXB0aW9uIDAuCi1QQVNTIHBvbHkxLnBvaW50cy5yZXBsYWNlSXRlbSgn
YVN0cmluZycsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNT
IHBvbHkxLnBvaW50cy5yZXBsYWNlSXRlbShwb2x5MSwgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogVHlwZSBlcnJvci4KLVBBU1MgcG9seTEucG9pbnRzLnJlcGxhY2VJdGVtKDEsIDApIHRo
cmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIHBvbHkxLnBvaW50cy5y
ZXBsYWNlSXRlbSgnYVN0cmluZycsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3Vt
ZW50IDEgKCdpdGVtJykgdG8gU1ZHUG9pbnRMaXN0LnJlcGxhY2VJdGVtIG11c3QgYmUgYW4gaW5z
dGFuY2Ugb2YgU1ZHUG9pbnQuCitQQVNTIHBvbHkxLnBvaW50cy5yZXBsYWNlSXRlbShwb2x5MSwg
MCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ2l0ZW0nKSB0byBTVkdQ
b2ludExpc3QucmVwbGFjZUl0ZW0gbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBTVkdQb2ludC4KK1BB
U1MgcG9seTEucG9pbnRzLnJlcGxhY2VJdGVtKDEsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IEFyZ3VtZW50IDEgKCdpdGVtJykgdG8gU1ZHUG9pbnRMaXN0LnJlcGxhY2VJdGVtIG11c3Qg
YmUgYW4gaW5zdGFuY2Ugb2YgU1ZHUG9pbnQuCiAKIFRlc3QgdW5jb21tb24gYXJndW1lbnRzIGZv
ciByZXBsYWNlSXRlbSgpIGFuZCB4bWwtZG9tIHN5bmNocm9uaXphdGlvbgogUEFTUyBwb2x5MS5w
b2ludHMubnVtYmVyT2ZJdGVtcyBpcyA0CkBAIC0xMzksOSArMTM5LDkgQEAgUEFTUyBkdW1wUG9p
bnQocG9seTEucG9pbnRzLmdldEl0ZW0oMCkpIGlzICJ4PTAgeT0xMDAiCiBQQVNTIHBvbHkxLmdl
dEF0dHJpYnV0ZSgncG9pbnRzJykuZm9ybWF0UG9pbnRzQXR0cmlidXRlKCkgaXMgIjAgMTAwIgog
CiBUZXN0IHVuY29tbW9uIGFyZ3VtZW50cyBmb3IgYXBwZW5kSXRlbSgpCi1QQVNTIHBvbHkxLnBv
aW50cy5hcHBlbmRJdGVtKDMwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9y
LgotUEFTUyBwb2x5MS5wb2ludHMuYXBwZW5kSXRlbSgnYVN0cmluZycpIHRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIHBvbHkxLnBvaW50cy5hcHBlbmRJdGVtKHBv
bHkxKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBwb2x5MS5w
b2ludHMuYXBwZW5kSXRlbSgzMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQg
MSAoJ2l0ZW0nKSB0byBTVkdQb2ludExpc3QuYXBwZW5kSXRlbSBtdXN0IGJlIGFuIGluc3RhbmNl
IG9mIFNWR1BvaW50LgorUEFTUyBwb2x5MS5wb2ludHMuYXBwZW5kSXRlbSgnYVN0cmluZycpIHRo
cmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdpdGVtJykgdG8gU1ZHUG9pbnRM
aXN0LmFwcGVuZEl0ZW0gbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBTVkdQb2ludC4KK1BBU1MgcG9s
eTEucG9pbnRzLmFwcGVuZEl0ZW0ocG9seTEpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFy
Z3VtZW50IDEgKCdpdGVtJykgdG8gU1ZHUG9pbnRMaXN0LmFwcGVuZEl0ZW0gbXVzdCBiZSBhbiBp
bnN0YW5jZSBvZiBTVkdQb2ludC4KIFBBU1MgcG9seTEucG9pbnRzLmFwcGVuZEl0ZW0obnVsbCkg
dGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTVkdfV1JPTkdfVFlQRV9FUlI6IERPTSBTVkcgRXhjZXB0
aW9uIDAuCiBQQVNTIGR1bXBQb2ludChwb2x5MS5wb2ludHMuYXBwZW5kSXRlbShwb2ludCkpIGlz
ICJ4PTIwMCB5PTEwMCIKIFBBU1MgcG9seTEucG9pbnRzLm51bWJlck9mSXRlbXMgaXMgMgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2RvbS9TVkdUcmFuc2Zvcm0tZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvc3ZnL2RvbS9TVkdUcmFuc2Zvcm0tZXhwZWN0ZWQudHh0CmluZGV4IGMxN2Zh
Y2JjMjQwNDk4NzI2Y2M4ZDI0MzQxNGFiOGU2Y2NiZWFiNjEuLmU0YTc3MTIxMzFiMWRlOTUwNDAw
N2RmZGVkNmQwYzMyYWQzN2E2NzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N2Zy9kb20vU1ZH
VHJhbnNmb3JtLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdmcvZG9tL1NWR1RyYW5z
Zm9ybS1leHBlY3RlZC50eHQKQEAgLTUwLDExICs1MCwxMSBAQCBQQVNTIHRyYW5zZm9ybS5tYXRy
aXguZiBpcyAwCiAKIENoZWNrIHBhc3NpbmcgaW52YWxpZCBhcmd1bWVudHMgdG8gJ3NldE1hdHJp
eCcKIFBBU1MgdHJhbnNmb3JtLnNldE1hdHJpeCgpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6
IE5vdCBlbm91Z2ggYXJndW1lbnRzLgotUEFTUyB0cmFuc2Zvcm0uc2V0TWF0cml4KHRyYW5zZm9y
bSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgdHJhbnNmb3Jt
LnNldE1hdHJpeChzdmdFbGVtZW50KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVy
cm9yLgotUEFTUyB0cmFuc2Zvcm0uc2V0TWF0cml4KCdhU3RyaW5nJykgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgdHJhbnNmb3JtLnNldE1hdHJpeCgxKSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyB0cmFuc2Zvcm0uc2V0TWF0
cml4KGZhbHNlKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyB0
cmFuc2Zvcm0uc2V0TWF0cml4KHRyYW5zZm9ybSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjog
QXJndW1lbnQgMSAoJ21hdHJpeCcpIHRvIFNWR1RyYW5zZm9ybS5zZXRNYXRyaXggbXVzdCBiZSBh
biBpbnN0YW5jZSBvZiBTVkdNYXRyaXguCitQQVNTIHRyYW5zZm9ybS5zZXRNYXRyaXgoc3ZnRWxl
bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ21hdHJpeCcpIHRv
IFNWR1RyYW5zZm9ybS5zZXRNYXRyaXggbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBTVkdNYXRyaXgu
CitQQVNTIHRyYW5zZm9ybS5zZXRNYXRyaXgoJ2FTdHJpbmcnKSB0aHJldyBleGNlcHRpb24gVHlw
ZUVycm9yOiBBcmd1bWVudCAxICgnbWF0cml4JykgdG8gU1ZHVHJhbnNmb3JtLnNldE1hdHJpeCBt
dXN0IGJlIGFuIGluc3RhbmNlIG9mIFNWR01hdHJpeC4KK1BBU1MgdHJhbnNmb3JtLnNldE1hdHJp
eCgxKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnbWF0cml4JykgdG8g
U1ZHVHJhbnNmb3JtLnNldE1hdHJpeCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFNWR01hdHJpeC4K
K1BBU1MgdHJhbnNmb3JtLnNldE1hdHJpeChmYWxzZSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogQXJndW1lbnQgMSAoJ21hdHJpeCcpIHRvIFNWR1RyYW5zZm9ybS5zZXRNYXRyaXggbXVzdCBi
ZSBhbiBpbnN0YW5jZSBvZiBTVkdNYXRyaXguCiAKIENoZWNrIHBhc3NpbmcgaW52YWxpZCBhcmd1
bWVudHMgdG8gJ3NldFRyYW5zbGF0ZScKIFBBU1MgdHJhbnNmb3JtLnNldFRyYW5zbGF0ZSgpIHRo
cmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3ZnL2RvbS9TVkdUcmFuc2Zvcm1MaXN0LWJhc2ljcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9zdmcvZG9tL1NWR1RyYW5zZm9ybUxpc3QtYmFzaWNzLWV4cGVjdGVk
LnR4dAppbmRleCAyMDQxMTYzMDIzNGIxMmI3NTllZDhlNjc0ZDliNWM0MzQxODc4YTc2Li41NDVj
ZjdiODIxNTE3YmIyMmY3N2ViN2YyMGI5MDQ0NTBiMjhkM2QwIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9zdmcvZG9tL1NWR1RyYW5zZm9ybUxpc3QtYmFzaWNzLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9zdmcvZG9tL1NWR1RyYW5zZm9ybUxpc3QtYmFzaWNzLWV4cGVjdGVkLnR4dApA
QCAtMTAsOSArMTAsOSBAQCBQQVNTIGR1bXBUcmFuc2Zvcm0oY2lyY2xlMS50cmFuc2Zvcm0uYmFz
ZVZhbC5nZXRJdGVtKDApKSBpcyAidHlwZT1TVkdfVFJBTlNGT1JNXwogUEFTUyBkdW1wVHJhbnNm
b3JtKGNpcmNsZTEudHJhbnNmb3JtLmJhc2VWYWwuZ2V0SXRlbSgxKSkgaXMgInR5cGU9U1ZHX1RS
QU5TRk9STV9UUkFOU0xBVEUgbWF0cml4PVsxLjAgMC4wIDAuMCAxLjAgMTAuMCAxMC4wXSIKIAog
VGVzdCB1bmNvbW1vbiBhcmd1bWVudHMgZm9yIGluaXRpYWxpemUoKQotUEFTUyBjaXJjbGUxLnRy
YW5zZm9ybS5iYXNlVmFsLmluaXRpYWxpemUoMzApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6
IFR5cGUgZXJyb3IuCi1QQVNTIGNpcmNsZTEudHJhbnNmb3JtLmJhc2VWYWwuaW5pdGlhbGl6ZSgn
YVN0cmluZycpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIGNp
cmNsZTEudHJhbnNmb3JtLmJhc2VWYWwuaW5pdGlhbGl6ZShjaXJjbGUxKSB0aHJldyBleGNlcHRp
b24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBjaXJjbGUxLnRyYW5zZm9ybS5iYXNlVmFs
LmluaXRpYWxpemUoMzApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdp
dGVtJykgdG8gU1ZHVHJhbnNmb3JtTGlzdC5pbml0aWFsaXplIG11c3QgYmUgYW4gaW5zdGFuY2Ug
b2YgU1ZHVHJhbnNmb3JtLgorUEFTUyBjaXJjbGUxLnRyYW5zZm9ybS5iYXNlVmFsLmluaXRpYWxp
emUoJ2FTdHJpbmcnKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnaXRl
bScpIHRvIFNWR1RyYW5zZm9ybUxpc3QuaW5pdGlhbGl6ZSBtdXN0IGJlIGFuIGluc3RhbmNlIG9m
IFNWR1RyYW5zZm9ybS4KK1BBU1MgY2lyY2xlMS50cmFuc2Zvcm0uYmFzZVZhbC5pbml0aWFsaXpl
KGNpcmNsZTEpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdpdGVtJykg
dG8gU1ZHVHJhbnNmb3JtTGlzdC5pbml0aWFsaXplIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgU1ZH
VHJhbnNmb3JtLgogUEFTUyBjaXJjbGUxLnRyYW5zZm9ybS5iYXNlVmFsLmluaXRpYWxpemUobnVs
bCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTVkdfV1JPTkdfVFlQRV9FUlI6IERPTSBTVkcgRXhj
ZXB0aW9uIDAuCiAKIFRlc3QgdW5jb21tb24gYXJndW1lbnRzIGZvciBnZXRJdGVtKCkKQEAgLTQ2
LDkgKzQ2LDkgQEAgUEFTUyBjaXJjbGUxLnRyYW5zZm9ybS5iYXNlVmFsLm51bWJlck9mSXRlbXMg
aXMgMgogUEFTUyBkdW1wVHJhbnNmb3JtKGNpcmNsZTEudHJhbnNmb3JtLmJhc2VWYWwuZ2V0SXRl
bSgwKSkgaXMgInR5cGU9U1ZHX1RSQU5TRk9STV9TQ0FMRSBtYXRyaXg9WzIuMCAwLjAgMC4wIDIu
MCAwLjAgMC4wXSIKIFBBU1MgZHVtcFRyYW5zZm9ybShjaXJjbGUxLnRyYW5zZm9ybS5iYXNlVmFs
LmdldEl0ZW0oMSkpIGlzICJ0eXBlPVNWR19UUkFOU0ZPUk1fVFJBTlNMQVRFIG1hdHJpeD1bMS4w
IDAuMCAwLjAgMS4wIDEwLjAgMTAuMF0iCiBQQVNTIGNpcmNsZTEuZ2V0QXR0cmlidXRlKCd0cmFu
c2Zvcm0nKSBpcyAic2NhbGUoMiAyKSB0cmFuc2xhdGUoMTAgMTApIgotUEFTUyBjaXJjbGUxLnRy
YW5zZm9ybS5iYXNlVmFsLmluc2VydEl0ZW1CZWZvcmUoMzAsIDApIHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIGNpcmNsZTEudHJhbnNmb3JtLmJhc2VWYWwuaW5z
ZXJ0SXRlbUJlZm9yZSgnYVN0cmluZycsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5
cGUgZXJyb3IuCi1QQVNTIGNpcmNsZTEudHJhbnNmb3JtLmJhc2VWYWwuaW5zZXJ0SXRlbUJlZm9y
ZShjaXJjbGUxLCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFT
UyBjaXJjbGUxLnRyYW5zZm9ybS5iYXNlVmFsLmluc2VydEl0ZW1CZWZvcmUoMzAsIDApIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdpdGVtJykgdG8gU1ZHVHJhbnNmb3Jt
TGlzdC5pbnNlcnRJdGVtQmVmb3JlIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgU1ZHVHJhbnNmb3Jt
LgorUEFTUyBjaXJjbGUxLnRyYW5zZm9ybS5iYXNlVmFsLmluc2VydEl0ZW1CZWZvcmUoJ2FTdHJp
bmcnLCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnaXRlbScpIHRv
IFNWR1RyYW5zZm9ybUxpc3QuaW5zZXJ0SXRlbUJlZm9yZSBtdXN0IGJlIGFuIGluc3RhbmNlIG9m
IFNWR1RyYW5zZm9ybS4KK1BBU1MgY2lyY2xlMS50cmFuc2Zvcm0uYmFzZVZhbC5pbnNlcnRJdGVt
QmVmb3JlKGNpcmNsZTEsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEg
KCdpdGVtJykgdG8gU1ZHVHJhbnNmb3JtTGlzdC5pbnNlcnRJdGVtQmVmb3JlIG11c3QgYmUgYW4g
aW5zdGFuY2Ugb2YgU1ZHVHJhbnNmb3JtLgogUEFTUyBjaXJjbGUxLnRyYW5zZm9ybS5iYXNlVmFs
Lmluc2VydEl0ZW1CZWZvcmUobnVsbCwgMCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTVkdfV1JP
TkdfVFlQRV9FUlI6IERPTSBTVkcgRXhjZXB0aW9uIDAuCiAKIFNldCB0cmFuc2Zvcm09J3JvdGF0
ZSg5MCkgc2NhbGUoMiAyKSB0cmFuc2xhdGUoMTAgMTApIHNrZXdYKDQ1KScgZm9yIGNpcmNsZTEK
QEAgLTY1LDkgKzY1LDkgQEAgUEFTUyBjaXJjbGUxLnRyYW5zZm9ybS5iYXNlVmFsLnJlcGxhY2VJ
dGVtKDMwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW4KIFBBU1MgY2lyY2xlMS50
cmFuc2Zvcm0uYmFzZVZhbC5yZXBsYWNlSXRlbSgnYVN0cmluZycpIHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgogUEFTUyBjaXJjbGUxLnRyYW5zZm9ybS5i
YXNlVmFsLnJlcGxhY2VJdGVtKGNpcmNsZTEpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5v
dCBlbm91Z2ggYXJndW1lbnRzLgogUEFTUyBjaXJjbGUxLnRyYW5zZm9ybS5iYXNlVmFsLnJlcGxh
Y2VJdGVtKG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1l
bnRzLgotUEFTUyBjaXJjbGUxLnRyYW5zZm9ybS5iYXNlVmFsLnJlcGxhY2VJdGVtKDMwLCAwKSB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBjaXJjbGUxLnRyYW5z
Zm9ybS5iYXNlVmFsLnJlcGxhY2VJdGVtKCdhU3RyaW5nJywgMCkgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgY2lyY2xlMS50cmFuc2Zvcm0uYmFzZVZhbC5yZXBs
YWNlSXRlbShjaXJjbGUxLCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9y
LgorUEFTUyBjaXJjbGUxLnRyYW5zZm9ybS5iYXNlVmFsLnJlcGxhY2VJdGVtKDMwLCAwKSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnaXRlbScpIHRvIFNWR1RyYW5zZm9y
bUxpc3QucmVwbGFjZUl0ZW0gbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBTVkdUcmFuc2Zvcm0uCitQ
QVNTIGNpcmNsZTEudHJhbnNmb3JtLmJhc2VWYWwucmVwbGFjZUl0ZW0oJ2FTdHJpbmcnLCAwKSB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnaXRlbScpIHRvIFNWR1RyYW5z
Zm9ybUxpc3QucmVwbGFjZUl0ZW0gbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBTVkdUcmFuc2Zvcm0u
CitQQVNTIGNpcmNsZTEudHJhbnNmb3JtLmJhc2VWYWwucmVwbGFjZUl0ZW0oY2lyY2xlMSwgMCkg
dGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ2l0ZW0nKSB0byBTVkdUcmFu
c2Zvcm1MaXN0LnJlcGxhY2VJdGVtIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgU1ZHVHJhbnNmb3Jt
LgogUEFTUyBjaXJjbGUxLnRyYW5zZm9ybS5iYXNlVmFsLnJlcGxhY2VJdGVtKG51bGwsIDApIHRo
cmV3IGV4Y2VwdGlvbiBFcnJvcjogU1ZHX1dST05HX1RZUEVfRVJSOiBET00gU1ZHIEV4Y2VwdGlv
biAwLgogUEFTUyBjaXJjbGUxLnRyYW5zZm9ybS5iYXNlVmFsLnJlcGxhY2VJdGVtKGNpcmNsZTEu
dHJhbnNmb3JtLmJhc2VWYWwuZ2V0SXRlbSgwKSwgMCkgaXMgY2lyY2xlMS50cmFuc2Zvcm0uYmFz
ZVZhbC5nZXRJdGVtKDApCiBQQVNTIGNpcmNsZTEudHJhbnNmb3JtLmJhc2VWYWwubnVtYmVyT2ZJ
dGVtcyBpcyA0CkBAIC0xMTYsOSArMTE2LDkgQEAgUEFTUyBkdW1wVHJhbnNmb3JtKGNpcmNsZTEu
dHJhbnNmb3JtLmJhc2VWYWwuZ2V0SXRlbSgwKSkgaXMgInR5cGU9U1ZHX1RSQU5TRk9STV8KIFBB
U1MgY2lyY2xlMS5nZXRBdHRyaWJ1dGUoJ3RyYW5zZm9ybScpIGlzICJza2V3WCg0NSkiCiAKIFRl
c3QgdW5jb21tb24gYXJndW1lbnRzIGZvciBhcHBlbmRJdGVtKCkKLVBBU1MgY2lyY2xlMS50cmFu
c2Zvcm0uYmFzZVZhbC5hcHBlbmRJdGVtKDMwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBU
eXBlIGVycm9yLgotUEFTUyBjaXJjbGUxLnRyYW5zZm9ybS5iYXNlVmFsLmFwcGVuZEl0ZW0oJ2FT
dHJpbmcnKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBjaXJj
bGUxLnRyYW5zZm9ybS5iYXNlVmFsLmFwcGVuZEl0ZW0oY2lyY2xlMSkgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgY2lyY2xlMS50cmFuc2Zvcm0uYmFzZVZhbC5h
cHBlbmRJdGVtKDMwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnaXRl
bScpIHRvIFNWR1RyYW5zZm9ybUxpc3QuYXBwZW5kSXRlbSBtdXN0IGJlIGFuIGluc3RhbmNlIG9m
IFNWR1RyYW5zZm9ybS4KK1BBU1MgY2lyY2xlMS50cmFuc2Zvcm0uYmFzZVZhbC5hcHBlbmRJdGVt
KCdhU3RyaW5nJykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ2l0ZW0n
KSB0byBTVkdUcmFuc2Zvcm1MaXN0LmFwcGVuZEl0ZW0gbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBT
VkdUcmFuc2Zvcm0uCitQQVNTIGNpcmNsZTEudHJhbnNmb3JtLmJhc2VWYWwuYXBwZW5kSXRlbShj
aXJjbGUxKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnaXRlbScpIHRv
IFNWR1RyYW5zZm9ybUxpc3QuYXBwZW5kSXRlbSBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFNWR1Ry
YW5zZm9ybS4KIFBBU1MgY2lyY2xlMS50cmFuc2Zvcm0uYmFzZVZhbC5hcHBlbmRJdGVtKG51bGwp
IHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU1ZHX1dST05HX1RZUEVfRVJSOiBET00gU1ZHIEV4Y2Vw
dGlvbiAwLgogCiBUZXN0aW5nIGFuaW1WYWwgY2xlYXIgdGhyb3dzCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdmcvZG9tL1NWR1RyYW5zZm9ybUxpc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvc3ZnL2RvbS9TVkdUcmFuc2Zvcm1MaXN0LWV4cGVjdGVkLnR4dAppbmRleCA5NWU3Nzg2NmM2
MjI0OTdjMjU3MzZjMjkyMGUxMzM2MjVmYjhmOWNlLi5lM2Y2Yjc3YTkxOGM1MmNlYWU3OTYyNGU5
MjQzNjNiMGMzYzk3ODI0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdmcvZG9tL1NWR1RyYW5z
Zm9ybUxpc3QtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N2Zy9kb20vU1ZHVHJhbnNm
b3JtTGlzdC1leHBlY3RlZC50eHQKQEAgLTYsMTEgKzYsMTEgQEAgT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUKIAogQ2hlY2sgcGFzc2luZyBpbnZhbGlkIGFyZ3VtZW50cyB0byAnY3JlYXRlU1ZHVHJh
bnNmb3JtRnJvbU1hdHJpeCcKIFBBU1MgdHJhbnNmb3JtLmNyZWF0ZVNWR1RyYW5zZm9ybUZyb21N
YXRyaXgoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4K
LVBBU1MgdHJhbnNmb3JtLmNyZWF0ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXgoc3ZnRWxlbWVudC5j
cmVhdGVTVkdUcmFuc2Zvcm0oKSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJv
ci4KLVBBU1MgdHJhbnNmb3JtLmNyZWF0ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXgoc3ZnRWxlbWVu
dCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgdHJhbnNmb3Jt
LmNyZWF0ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXgoJ2FTdHJpbmcnKSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyB0cmFuc2Zvcm0uY3JlYXRlU1ZHVHJhbnNmb3Jt
RnJvbU1hdHJpeCgxKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFT
UyB0cmFuc2Zvcm0uY3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeCh0cnVlKSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyB0cmFuc2Zvcm0uY3JlYXRlU1ZHVHJh
bnNmb3JtRnJvbU1hdHJpeChzdmdFbGVtZW50LmNyZWF0ZVNWR1RyYW5zZm9ybSgpKSB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnbWF0cml4JykgdG8gU1ZHVHJhbnNmb3Jt
TGlzdC5jcmVhdGVTVkdUcmFuc2Zvcm1Gcm9tTWF0cml4IG11c3QgYmUgYW4gaW5zdGFuY2Ugb2Yg
U1ZHTWF0cml4LgorUEFTUyB0cmFuc2Zvcm0uY3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeChz
dmdFbGVtZW50KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnbWF0cml4
JykgdG8gU1ZHVHJhbnNmb3JtTGlzdC5jcmVhdGVTVkdUcmFuc2Zvcm1Gcm9tTWF0cml4IG11c3Qg
YmUgYW4gaW5zdGFuY2Ugb2YgU1ZHTWF0cml4LgorUEFTUyB0cmFuc2Zvcm0uY3JlYXRlU1ZHVHJh
bnNmb3JtRnJvbU1hdHJpeCgnYVN0cmluZycpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFy
Z3VtZW50IDEgKCdtYXRyaXgnKSB0byBTVkdUcmFuc2Zvcm1MaXN0LmNyZWF0ZVNWR1RyYW5zZm9y
bUZyb21NYXRyaXggbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBTVkdNYXRyaXguCitQQVNTIHRyYW5z
Zm9ybS5jcmVhdGVTVkdUcmFuc2Zvcm1Gcm9tTWF0cml4KDEpIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IEFyZ3VtZW50IDEgKCdtYXRyaXgnKSB0byBTVkdUcmFuc2Zvcm1MaXN0LmNyZWF0ZVNW
R1RyYW5zZm9ybUZyb21NYXRyaXggbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBTVkdNYXRyaXguCitQ
QVNTIHRyYW5zZm9ybS5jcmVhdGVTVkdUcmFuc2Zvcm1Gcm9tTWF0cml4KHRydWUpIHRocmV3IGV4
Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdtYXRyaXgnKSB0byBTVkdUcmFuc2Zvcm1M
aXN0LmNyZWF0ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXggbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBT
VkdNYXRyaXguCiBQQVNTIHRyYW5zZm9ybS5jcmVhdGVTVkdUcmFuc2Zvcm1Gcm9tTWF0cml4KHVu
ZGVmaW5lZCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBUeXBlTWlzbWF0Y2hFcnJvcjogRE9NIEV4
Y2VwdGlvbiAxNy4KIFBBU1MgdHJhbnNmb3JtLmNyZWF0ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXgo
bnVsbCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBUeXBlTWlzbWF0Y2hFcnJvcjogRE9NIEV4Y2Vw
dGlvbiAxNy4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
</data>
<flag name="review"
          id="250968"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>