<?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>78327</bug_id>
          
          <creation_ts>2012-02-09 22:23:31 -0800</creation_ts>
          <short_desc>Replace [CustomArgumentHandling] with [CallWith=ScriptArguments|CallStack]</short_desc>
          <delta_ts>2012-02-10 04:38:51 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore JavaScript</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>
          
          <blocked>77393</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kentaro Hara">haraken</reporter>
          <assigned_to name="Kentaro Hara">haraken</assigned_to>
          <cc>abarth</cc>
    
    <cc>darin</cc>
    
    <cc>gustavo</cc>
    
    <cc>japhet</cc>
    
    <cc>ojan</cc>
    
    <cc>pnormand</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>553840</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-09 22:23:31 -0800</bug_when>
    <thetext>We can replace [CustomArgumentHandling] with [CallWith=ScriptArguments|CallStack]. At present, [CustomArgumentHandling] is used by Console.idl only.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553869</commentid>
    <comment_count>1</comment_count>
      <attachid>126461</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-09 23:12:46 -0800</bug_when>
    <thetext>Created attachment 126461
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553871</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-09 23:14:43 -0800</bug_when>
    <thetext>Attachment 126461 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:1332:  Local variables should never be PassRefPtr (see http://webkit.org/coding/RefPtr.html).  [readability/pass_ptr] [5]
Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:1345:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Total errors found: 2 in 19 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553873</commentid>
    <comment_count>3</comment_count>
      <attachid>126461</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-09 23:17:42 -0800</bug_when>
    <thetext>Comment on attachment 126461
Patch

Nice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553875</commentid>
    <comment_count>4</comment_count>
      <attachid>126461</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-09 23:20:07 -0800</bug_when>
    <thetext>Comment on attachment 126461
Patch

Let me land manually to avoid style check errors in generated code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553878</commentid>
    <comment_count>5</comment_count>
      <attachid>126461</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-02-09 23:27:09 -0800</bug_when>
    <thetext>Comment on attachment 126461
Patch

Attachment 126461 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11487624</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553883</commentid>
    <comment_count>6</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-09 23:38:40 -0800</bug_when>
    <thetext>Committed r107368: &lt;http://trac.webkit.org/changeset/107368&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553890</commentid>
    <comment_count>7</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-09 23:57:36 -0800</bug_when>
    <thetext>Reverted r107368 for reason:

break GTK build

Committed r107371: &lt;http://trac.webkit.org/changeset/107371&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553960</commentid>
    <comment_count>8</comment_count>
      <attachid>126481</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-10 02:08:55 -0800</bug_when>
    <thetext>Created attachment 126481
fixed patch to see if gtk build passes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554014</commentid>
    <comment_count>9</comment_count>
      <attachid>126481</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-10 04:38:46 -0800</bug_when>
    <thetext>Comment on attachment 126481
fixed patch to see if gtk build passes

Clearing flags on attachment: 126481

Committed r107396: &lt;http://trac.webkit.org/changeset/107396&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554015</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-10 04:38:51 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126461</attachid>
            <date>2012-02-09 23:12:46 -0800</date>
            <delta_ts>2012-02-09 23:39:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78327-20120210161244.patch</filename>
            <type>text/plain</type>
            <size>55488</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3MzE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzlkN2EwNGFmNzQwMzll
NDU0NDAzYTE0MzdhZGMwOTI5NWZhYzk1Zi4uOTY5YWExOWI2Yzg4NzdjZDM1NDU3MTE3NTA0YjBj
YTQxNDlhMDkyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDc0IEBACiAyMDEyLTAyLTA5ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAorICAgICAgICBSZXBsYWNlIFtDdXN0
b21Bcmd1bWVudEhhbmRsaW5nXSB3aXRoIFtDYWxsV2l0aD1TY3JpcHRBcmd1bWVudHN8Q2FsbFN0
YWNrXQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzgz
MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlz
IHBhdGNoIHJlcGxhY2VzIFtDdXN0b21Bcmd1bWVudEhhbmRsaW5nXSB3aXRoIFtDYWxsV2l0aD1T
Y3JpcHRBcmd1bWVudHN8Q2FsbFN0YWNrXSwKKyAgICAgICAgYW5kIHJlbW92ZXMgW0N1c3RvbUFy
Z3VtZW50SGFuZGxpbmddLgorCisgICAgICAgIFRlc3Q6IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9U
ZXN0T2JqLmlkbAorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG06IE1vZGlmaWVkIHRvIHJlcGxhY2UKKyAgICAgICAgW0N1c3RvbUFyZ3VtZW50SGFuZGxpbmdd
IHdpdGggW0NhbGxXaXRoPVNjcmlwdEFyZ3VtZW50c3xDYWxsU3RhY2tdLgorICAgICAgICAoR2Vu
ZXJhdGVDYWxsV2l0aCk6CisgICAgICAgIChHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjayk6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06IERpdHRvLgorICAgICAg
ICAoR2VuZXJhdGVDYWxsV2l0aCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yQ1BQLnBtOiBTaW1wbHkgcmVtb3ZlZCBbQ3VzdG9tQXJndW1lbnRIYW5kbGluZ10KKyAg
ICAgICAgZnJvbSB0aGUgc2tpcHBlZCBsaXN0LiBCeSB0aGlzIGZpeCwgQ29kZUdlbmVyYXRvckNQ
UC5wbSB3aWxsIGdlbmVyYXRlCisgICAgICAgIG1lYW5pbmdsZXNzIGNvZGUgZm9yIGF0dHJpYnV0
ZXMgb3IgbWV0aG9kcyB3aGljaCB3YXMgcHJldmlvdXNseSBtYXJrZWQgYXMKKyAgICAgICAgW0N1
c3RvbUFyZ3VtZW50SGFuZGxpbmddLCBidXQgdGhpcyBjaGFuZ2Ugd2lsbCBiZSBoYXJtbGVzcy4K
KyAgICAgICAgKFNob3VsZFNraXBUeXBlKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JHT2JqZWN0LnBtOiBEaXR0by4KKyAgICAgICAgKFNraXBGdW5jdGlvbik6Cisg
ICAgICAgIChHZW5lcmF0ZUZ1bmN0aW9uKToKKworICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3Rv
bS9WOENvbnNvbGVDdXN0b20uY3BwOiBDaGFuZ2VkIHRoZSBhcmd1bWVudCBvcmRlci4KKyAgICAg
ICAgKFdlYkNvcmU6OlY4Q29uc29sZTo6YXNzZXJ0Q2FsbGJhY2spOgorICAgICAgICAqIHBhZ2Uv
Q29uc29sZS5jcHA6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q29uc29sZTo6YXNzZXJ0Q29u
ZGl0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnNvbGU6OnRpbWVFbmQpOgorICAgICAgICAq
IHBhZ2UvQ29uc29sZS5oOiBEaXR0by4KKyAgICAgICAgKENvbnNvbGUpOgorCisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsOiBBZGRlZCB0ZXN0IGNhc2VzIGZvciBb
Q2FsbFdpdGg9U2NyaXB0QXJndW1lbnRzfENhbGxTdGFja10uCisKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouY3BwOiBVcGRhdGVkIHJ1bi1iaW5kaW5n
cy10ZXN0cyByZXN1bHRzLgorICAgICAgICAoV2ViRE9NVGVzdE9iajo6d2l0aFNjcmlwdEFyZ3Vt
ZW50c0FuZENhbGxTdGFja0F0dHJpYnV0ZSk6CisgICAgICAgIChXZWJET01UZXN0T2JqOjpzZXRX
aXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkRP
TVRlc3RPYmo6OndpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2spOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5oOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3BwOgorICAgICAgICAo
d2Via2l0X2RvbV90ZXN0X29ial93aXRoX3NjcmlwdF9hcmd1bWVudHNfYW5kX2NhbGxfc3RhY2sp
OgorICAgICAgICAod2Via2l0X2RvbV90ZXN0X29ial9nZXRfd2l0aF9zY3JpcHRfYXJndW1lbnRz
X2FuZF9jYWxsX3N0YWNrX2F0dHJpYnV0ZSk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2Jq
X3NldF93aXRoX3NjcmlwdF9hcmd1bWVudHNfYW5kX2NhbGxfc3RhY2tfYXR0cmlidXRlKToKKyAg
ICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3Byb3BlcnR5KToKKyAgICAgICAgKHdlYmtp
dF9kb21fdGVzdF9vYmpfY2xhc3NfaW5pdCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5oOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RPYmpXaXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0cmlidXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialdpdGhTY3JpcHRBcmd1bWVudHNBbmRD
YWxsU3RhY2tBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25XaXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrKToKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmg6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbToKKyAgICAgICAgKC1b
RE9NVGVzdE9iaiB3aXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0cmlidXRlXSk6Cisg
ICAgICAgICgtW0RPTVRlc3RPYmogc2V0V2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFja0F0
dHJpYnV0ZTpdKToKKyAgICAgICAgKC1bRE9NVGVzdE9iaiB3aXRoU2NyaXB0QXJndW1lbnRzQW5k
Q2FsbFN0YWNrXSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9i
ai5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqSW50ZXJuYWw6OndpdGhTY3JpcHRBcmd1
bWVudHNBbmRDYWxsU3RhY2tBdHRyaWJ1dGVBdHRyR2V0dGVyKToKKyAgICAgICAgKFRlc3RPYmpJ
bnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqSW50ZXJuYWw6OndpdGhTY3JpcHRB
cmd1bWVudHNBbmRDYWxsU3RhY2tBdHRyaWJ1dGVBdHRyU2V0dGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OlRlc3RPYmpJbnRlcm5hbDo6d2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFja0NhbGxi
YWNrKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q29uZmlndXJlVjhU
ZXN0T2JqVGVtcGxhdGUpOgorCisyMDEyLTAyLTA5ICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNo
cm9taXVtLm9yZz4KKwogICAgICAgICBDb2RlIGdlbmVyYXRvcnMgc2hvdWxkIHN1cHBvcnQgbXVs
dGlwbGUgdmFsdWVzIGZvciB0aGUgW0NhbGxXaXRoPV0gYXR0cmlidXRlCiAgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODIyNAogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JDUFAucG0gYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JDUFAucG0KaW5kZXggMzI5
MjhkMTljZjNlNDNmNWNhYjA2YTU0MjhjMWU3NjhhYzY4Y2IxMy4uZGNlZjc0M2FkYTM0MThjMWVi
MmIyZjEzMzk3OGQ3ZjRiNzY4MWM1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yQ1BQLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckNQUC5wbQpAQCAtMTkxLDExICsxOTEsOSBAQCBzdWIg
U2hvdWxkU2tpcFR5cGUKIHsKICAgICBteSAkdHlwZUluZm8gPSBzaGlmdDsKIAotICAgIHJldHVy
biAxIGlmICR0eXBlSW5mby0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9t
In07Ci0KLSAgICByZXR1cm4gMSBpZiAkdHlwZUluZm8tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IkN1c3RvbUFyZ3VtZW50SGFuZGxpbmcifQotICAgICAgICAgICAgIG9yICR0eXBl
SW5mby0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tR2V0dGVyIn0KLSAg
ICAgICAgICAgICBvciAkdHlwZUluZm8tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkNQUEN1c3RvbSJ9OworICAgIHJldHVybiAxIGlmICR0eXBlSW5mby0+c2lnbmF0dXJlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tIn0KKyAgICAgICAgICAgICAgICBvciAkdHlwZUluZm8t
PnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUdldHRlciJ9CisgICAgICAg
ICAgICAgICAgb3IgJHR5cGVJbmZvLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJD
UFBDdXN0b20ifTsKIAogICAgICMgRklYTUU6IFdlIGRvbid0IGdlbmVyYXRlIGJpbmRpbmdzIGZv
ciBTVkcgcmVsYXRlZCBpbnRlcmZhY2VzIHlldAogICAgIHJldHVybiAxIGlmICR0eXBlSW5mby0+
c2lnbmF0dXJlLT5uYW1lID1+IC9nZXRTVkdEb2N1bWVudC87CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQppbmRleCA4
YTZkZTE4MTg3ZjFiZjMyYWY2MzM1OTExZTEwMzU4MTBkNDkwNDFiLi40NDA5YmNlODA2ZWVmMDQy
Nzk5ODU1Yjk2Y2M5ZjM0N2YzYmNlOWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0KQEAgLTE4OCw4ICsxODgs
NyBAQCBzdWIgU2tpcEZ1bmN0aW9uIHsKICAgICBteSAkcHJlZml4ID0gc2hpZnQ7CiAKICAgICBt
eSAkZnVuY3Rpb25OYW1lID0gIndlYmtpdF9kb21fIiAuICRkZWNhbWVsaXplIC4gIl8iIC4gJHBy
ZWZpeCAuIGRlY2FtZWxpemUoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWUpOwotICAgIG15ICRp
c0N1c3RvbUZ1bmN0aW9uID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJDdXN0b20ifSB8fAotICAgICAgICAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkN1c3RvbUFyZ3VtZW50SGFuZGxpbmcifTsKKyAgICBteSAkaXNDdXN0b21G
dW5jdGlvbiA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3Vz
dG9tIn07CiAKICAgICBpZiAoJGlzQ3VzdG9tRnVuY3Rpb24gJiYKICAgICAgICAgJGZ1bmN0aW9u
TmFtZSBuZSAid2Via2l0X2RvbV9ub2RlX3JlcGxhY2VfY2hpbGQiICYmCkBAIC03MzgsMTAgKzcz
Nyw2IEBAIHN1YiBHZW5lcmF0ZUZ1bmN0aW9uIHsKIAogICAgIG15IEBjYWxsSW1wbFBhcmFtczsK
IAotICAgICMgc2tpcCBzb21lIGN1c3RvbSBmdW5jdGlvbnMgZm9yIG5vdwotICAgIG15ICRpc0N1
c3RvbUZ1bmN0aW9uID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJDdXN0b20ifSB8fAotICAgICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb24tPnNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUFyZ3VtZW50SGFuZGxpbmcifTsKLQogICAg
IGZvcmVhY2ggbXkgJHBhcmFtIChAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc30pIHsKICAgICAgICAg
bXkgJHBhcmFtSURMVHlwZSA9ICRwYXJhbS0+dHlwZTsKICAgICAgICAgaWYgKCRwYXJhbUlETFR5
cGUgZXEgIkV2ZW50TGlzdGVuZXIiIHx8ICRwYXJhbUlETFR5cGUgZXEgIk1lZGlhUXVlcnlMaXN0
TGlzdGVuZXIiKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtCmluZGV4IGNiYzE1M2FmZGQ4ZTM4ZTVhNjg4NzAxNGRkMWM5YTkzNGNj
MWZkNzguLjRiZjgzMDgwN2UyN2Y4MWE4N2EwYmY0NmZjN2ZmZjdhMjk2NTJiZGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBA
IC0yMzMyLDYgKzIzMzIsNyBAQCBzdWIgR2VuZXJhdGVDYWxsV2l0aAogICAgIHJldHVybiAoKSB1
bmxlc3MgJGNhbGxXaXRoOwogICAgIG15ICRvdXRwdXRBcnJheSA9IHNoaWZ0OwogICAgIG15ICRy
ZXR1cm5WYWx1ZSA9IHNoaWZ0OworICAgIG15ICRmdW5jdGlvbiA9IHNoaWZ0OwogCiAgICAgbXkg
QGNhbGxXaXRoQXJnczsKICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPkV4dGVuZGVkQXR0cmlidXRl
Q29udGFpbnMoJGNhbGxXaXRoLCAiU2NyaXB0U3RhdGUiKSkgewpAQCAtMjM0Myw2ICsyMzQ0LDE3
IEBAIHN1YiBHZW5lcmF0ZUNhbGxXaXRoCiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAg
ICAgICAgcmV0dXJuIiAuICgkcmV0dXJuVmFsdWUgPyAiICIgLiAkcmV0dXJuVmFsdWUgOiAiIikg
LiAiO1xuIik7CiAgICAgICAgIHB1c2goQGNhbGxXaXRoQXJncywgInNjcmlwdENvbnRleHQiKTsK
ICAgICB9CisgICAgaWYgKCRmdW5jdGlvbiBhbmQgJGNvZGVHZW5lcmF0b3ItPkV4dGVuZGVkQXR0
cmlidXRlQ29udGFpbnMoJGNhbGxXaXRoLCAiU2NyaXB0QXJndW1lbnRzIikpIHsKKyAgICAgICAg
cHVzaChAJG91dHB1dEFycmF5LCAiICAgIFJlZlB0cjxTY3JpcHRBcmd1bWVudHM+IHNjcmlwdEFy
Z3VtZW50cyhjcmVhdGVTY3JpcHRBcmd1bWVudHMoZXhlYywgIiAuIEB7JGZ1bmN0aW9uLT5wYXJh
bWV0ZXJzfSAuICIpKTtcbiIpOworICAgICAgICAkaW1wbEluY2x1ZGVzeyJTY3JpcHRBcmd1bWVu
dHMuaCJ9ID0gMTsKKyAgICAgICAgcHVzaChAY2FsbFdpdGhBcmdzLCAic2NyaXB0QXJndW1lbnRz
Iik7CisgICAgfQorICAgIGlmICgkY29kZUdlbmVyYXRvci0+RXh0ZW5kZWRBdHRyaWJ1dGVDb250
YWlucygkY2FsbFdpdGgsICJDYWxsU3RhY2siKSkgeworICAgICAgICBwdXNoKEAkb3V0cHV0QXJy
YXksICIgICAgUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKGNyZWF0ZVNjcmlwdENh
bGxTdGFja0Zvckluc3BlY3RvcihleGVjKSk7XG4iKTsKKyAgICAgICAgJGltcGxJbmNsdWRlc3si
U2NyaXB0Q2FsbFN0YWNrLmgifSA9IDE7CisgICAgICAgICRpbXBsSW5jbHVkZXN7IlNjcmlwdENh
bGxTdGFja0ZhY3RvcnkuaCJ9ID0gMTsKKyAgICAgICAgcHVzaChAY2FsbFdpdGhBcmdzLCAiY2Fs
bFN0YWNrIik7CisgICAgfQogICAgIHJldHVybiBAY2FsbFdpdGhBcmdzOwogfQogCkBAIC0yMzk3
LDE2ICsyNDA5LDggQEAgc3ViIEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNrCiAgICAgICAgICRmdW5j
dGlvbk5hbWUgPSAiaW1wbC0+JHtmdW5jdGlvbkltcGxlbWVudGF0aW9uTmFtZX0iOwogICAgIH0K
IAotICAgIGlmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1
c3RvbUFyZ3VtZW50SGFuZGxpbmcifSBhbmQgISRmdW5jdGlvbi0+aXNTdGF0aWMpIHsKLSAgICAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIFJlZlB0cjxTY3JpcHRBcmd1bWVudHM+IHNjcmlw
dEFyZ3VtZW50cyhjcmVhdGVTY3JpcHRBcmd1bWVudHMoZXhlYywgJG51bVBhcmFtZXRlcnMpKTtc
biIpOwotICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgUmVmUHRyPFNjcmlwdENhbGxT
dGFjaz4gY2FsbFN0YWNrKGNyZWF0ZVNjcmlwdENhbGxTdGFja0Zvckluc3BlY3RvcihleGVjKSk7
XG4iKTsKLSAgICAgICAgJGltcGxJbmNsdWRlc3siU2NyaXB0QXJndW1lbnRzLmgifSA9IDE7Ci0g
ICAgICAgICRpbXBsSW5jbHVkZXN7IlNjcmlwdENhbGxTdGFjay5oIn0gPSAxOwotICAgICAgICAk
aW1wbEluY2x1ZGVzeyJTY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmgifSA9IDE7Ci0gICAgfQotCiAg
ICAgaWYgKCEkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnN0
cnVjdG9yIn0pIHsKLSAgICAgICAgcHVzaChAYXJndW1lbnRzLCBHZW5lcmF0ZUNhbGxXaXRoKCRm
dW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2FsbFdpdGgifSwgXEAk
b3V0cHV0QXJyYXksICJKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSkiKSk7CisgICAgICAg
IHB1c2goQGFyZ3VtZW50cywgR2VuZXJhdGVDYWxsV2l0aCgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNhbGxXaXRoIn0sIFxAJG91dHB1dEFycmF5LCAiSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpIiwgJGZ1bmN0aW9uKSk7CiAgICAgfQogCiAgICAgJGlt
cGxJbmNsdWRlc3siRXhjZXB0aW9uQ29kZS5oIn0gPSAxOwpAQCAtMjQyNSw5ICsyNDI5LDYgQEAg
c3ViIEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNrCiAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJy
YXksICIgICAgaWYgKGFyZ3NDb3VudCA8PSAkYXJnc0luZGV4KSB7XG4iKTsKIAogICAgICAgICAg
ICAgbXkgQG9wdGlvbmFsQ2FsbGJhY2tBcmd1bWVudHMgPSBAYXJndW1lbnRzOwotICAgICAgICAg
ICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9t
QXJndW1lbnRIYW5kbGluZyJ9KSB7Ci0gICAgICAgICAgICAgICAgcHVzaCBAb3B0aW9uYWxDYWxs
YmFja0FyZ3VtZW50cywgInNjcmlwdEFyZ3VtZW50cywgY2FsbFN0YWNrIjsKLSAgICAgICAgICAg
IH0KICAgICAgICAgICAgIGlmIChAeyRmdW5jdGlvbi0+cmFpc2VzRXhjZXB0aW9uc30pIHsKICAg
ICAgICAgICAgICAgICBwdXNoIEBvcHRpb25hbENhbGxiYWNrQXJndW1lbnRzLCAiZWMiOwogICAg
ICAgICAgICAgfQpAQCAtMjUyMiw5ICsyNTIzLDYgQEAgc3ViIEdlbmVyYXRlUGFyYW1ldGVyc0No
ZWNrCiAgICAgICAgICRhcmdzSW5kZXgrKzsKICAgICB9CiAKLSAgICBpZiAoJGZ1bmN0aW9uLT5z
aWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21Bcmd1bWVudEhhbmRsaW5nIn0p
IHsKLSAgICAgICAgcHVzaCBAYXJndW1lbnRzLCAic2NyaXB0QXJndW1lbnRzLCBjYWxsU3RhY2si
OwotICAgIH0KICAgICBpZiAoQHskZnVuY3Rpb24tPnJhaXNlc0V4Y2VwdGlvbnN9KSB7CiAgICAg
ICAgIHB1c2ggQGFyZ3VtZW50cywgImVjIjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbSBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCmluZGV4IDg1NGI0OGI4MTQ5MGZm
ZWViMTJmZjk1NjcyYjljODU1NjZhOWZhZTUuLjViOWNkNWIyOTM4ZmU4NWRkNDNmMWVmMzUyODc4
YmQ1NjhiNWM4YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvclY4LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvclY4LnBtCkBAIC0xMzY0LDggKzEzNjQsNiBAQCBzdGF0aWMgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+ICR7bmFtZX1DYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQog
ICAgIElOQ19TVEFUUyhcIkRPTS4kaW1wbENsYXNzTmFtZS4kbmFtZVwiKTsKIEVORAogCi0gICAg
bXkgJG51bVBhcmFtZXRlcnMgPSBAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc307Ci0KICAgICBwdXNo
KEBpbXBsQ29udGVudERlY2xzLCBHZW5lcmF0ZUFyZ3VtZW50c0NvdW50Q2hlY2soJGZ1bmN0aW9u
LCAkZGF0YU5vZGUpKTsKIAogICAgIG15ICgkc3ZnUHJvcGVydHlUeXBlLCAkc3ZnTGlzdFByb3Bl
cnR5VHlwZSwgJHN2Z05hdGl2ZVR5cGUpID0gR2V0U1ZHUHJvcGVydHlUeXBlcygkaW1wbENsYXNz
TmFtZSk7CkBAIC0xNDIwLDE3ICsxNDE4LDYgQEAgRU5ECiAgICAgICAgICMgcmlnaHQgYmVmb3Jl
IHRoZSBsYWJlbCAnZmFpbDonLgogICAgIH0KIAotICAgIGlmICgkZnVuY3Rpb24tPnNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUFyZ3VtZW50SGFuZGxpbmcifSkgewotICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCA8PEVORCk7Ci0gICAgUmVmUHRyPFNjcmlwdEFy
Z3VtZW50cz4gc2NyaXB0QXJndW1lbnRzKGNyZWF0ZVNjcmlwdEFyZ3VtZW50cyhhcmdzLCAkbnVt
UGFyYW1ldGVycykpOwotICAgIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjayhjcmVh
dGVTY3JpcHRDYWxsU3RhY2tGb3JJbnNwZWN0b3IoKSk7Ci0gICAgaWYgKCFjYWxsU3RhY2spCi0g
ICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7Ci1FTkQKLSAgICAgICAgQWRkVG9JbXBsSW5j
bHVkZXMoIlNjcmlwdEFyZ3VtZW50cy5oIik7Ci0gICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJT
Y3JpcHRDYWxsU3RhY2suaCIpOwotICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiU2NyaXB0Q2Fs
bFN0YWNrRmFjdG9yeS5oIik7Ci0gICAgfQogICAgIGlmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNoZWNrQWNjZXNzVG9Ob2RlIn0pIHsKICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnREZWNscywgIiAgICBpZiAoIVY4QmluZGluZ1NlY3VyaXR5OjpzaG91bGRB
bGxvd0FjY2Vzc1RvTm9kZShWOEJpbmRpbmdTdGF0ZTo6T25seSgpLCBpbXAtPiIgLiAkZnVuY3Rp
b24tPnNpZ25hdHVyZS0+bmFtZSAuICIoZWMpKSlcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudERlY2xzLCAiICAgICAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7XG4iKTsK
QEAgLTE0NjIsNiArMTQ0OSw3IEBAIHN1YiBHZW5lcmF0ZUNhbGxXaXRoCiAgICAgbXkgJGluZGVu
dCA9IHNoaWZ0OwogICAgIG15ICRyZXR1cm5Wb2lkID0gc2hpZnQ7CiAgICAgbXkgJGVtcHR5Q29u
dGV4dCA9IHNoaWZ0OworICAgIG15ICRmdW5jdGlvbiA9IHNoaWZ0OwogCiAgICAgbXkgQGNhbGxX
aXRoQXJnczsKICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPkV4dGVuZGVkQXR0cmlidXRlQ29udGFp
bnMoJGNhbGxXaXRoLCAiU2NyaXB0U3RhdGUiKSkgewpAQCAtMTQ4MSw2ICsxNDY5LDE5IEBAIHN1
YiBHZW5lcmF0ZUNhbGxXaXRoCiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgJGluZGVudCAu
ICIgICAgcmV0dXJuIiAuICgkcmV0dXJuVm9pZCA/ICIiIDogIiB2ODo6VW5kZWZpbmVkKCkiKSAu
ICI7XG4iKTsKICAgICAgICAgcHVzaChAY2FsbFdpdGhBcmdzLCAic2NyaXB0Q29udGV4dCIpOwog
ICAgIH0KKyAgICBpZiAoJGZ1bmN0aW9uIGFuZCAkY29kZUdlbmVyYXRvci0+RXh0ZW5kZWRBdHRy
aWJ1dGVDb250YWlucygkY2FsbFdpdGgsICJTY3JpcHRBcmd1bWVudHMiKSkgeworICAgICAgICBw
dXNoKEAkb3V0cHV0QXJyYXksICRpbmRlbnQgLiAiUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4gc2Ny
aXB0QXJndW1lbnRzKGNyZWF0ZVNjcmlwdEFyZ3VtZW50cyhhcmdzLCAiIC4gQHskZnVuY3Rpb24t
PnBhcmFtZXRlcnN9IC4gIikpO1xuIik7CisgICAgICAgIHB1c2goQGNhbGxXaXRoQXJncywgInNj
cmlwdEFyZ3VtZW50cyIpOworICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiU2NyaXB0QXJndW1l
bnRzLmgiKTsKKyAgICB9CisgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5FeHRlbmRlZEF0dHJpYnV0
ZUNvbnRhaW5zKCRjYWxsV2l0aCwgIkNhbGxTdGFjayIpKSB7CisgICAgICAgIHB1c2goQCRvdXRw
dXRBcnJheSwgJGluZGVudCAuICJSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2soY3Jl
YXRlU2NyaXB0Q2FsbFN0YWNrRm9ySW5zcGVjdG9yKCkpO1xuIik7CisgICAgICAgIHB1c2goQCRv
dXRwdXRBcnJheSwgJGluZGVudCAuICJpZiAoIWNhbGxTdGFjaylcbiIpOworICAgICAgICBwdXNo
KEAkb3V0cHV0QXJyYXksICRpbmRlbnQgLiAiICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7XG4i
KTsKKyAgICAgICAgcHVzaChAY2FsbFdpdGhBcmdzLCAiY2FsbFN0YWNrIik7CisgICAgICAgIEFk
ZFRvSW1wbEluY2x1ZGVzKCJTY3JpcHRDYWxsU3RhY2suaCIpOworICAgICAgICBBZGRUb0ltcGxJ
bmNsdWRlcygiU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oIik7CisgICAgfQogICAgIHJldHVybiBA
Y2FsbFdpdGhBcmdzOwogfQogCkBAIC0zMTk5LDcgKzMyMDAsNyBAQCBzdWIgR2VuZXJhdGVGdW5j
dGlvbkNhbGxTdHJpbmcoKQogCiAgICAgbXkgJGNhbGxXaXRoID0gJGZ1bmN0aW9uLT5zaWduYXR1
cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDYWxsV2l0aCJ9OwogICAgIG15IEBjYWxsV2l0aE91
dHB1dCA9ICgpOwotICAgIG15IEBjYWxsV2l0aEFyZ3MgPSBHZW5lcmF0ZUNhbGxXaXRoKCRjYWxs
V2l0aCwgXEBjYWxsV2l0aE91dHB1dCwgJGluZGVudCwgMCwgMSk7CisgICAgbXkgQGNhbGxXaXRo
QXJncyA9IEdlbmVyYXRlQ2FsbFdpdGgoJGNhbGxXaXRoLCBcQGNhbGxXaXRoT3V0cHV0LCAkaW5k
ZW50LCAwLCAxLCAkZnVuY3Rpb24pOwogICAgICRyZXN1bHQgLj0gam9pbigiIiwgQGNhbGxXaXRo
T3V0cHV0KTsKICAgICBwdXNoKEBhcmd1bWVudHMsIEBjYWxsV2l0aEFyZ3MpOwogICAgICRpbmRl
eCArPSBAY2FsbFdpdGhBcmdzOwpAQCAtMzIyOCwxMCArMzIyOSw2IEBAIHN1YiBHZW5lcmF0ZUZ1
bmN0aW9uQ2FsbFN0cmluZygpCiAgICAgICAgICRpbmRleCsrOwogICAgIH0KIAotICAgIGlmICgk
ZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUFyZ3VtZW50
SGFuZGxpbmcifSkgewotICAgICAgICBwdXNoIEBhcmd1bWVudHMsICJzY3JpcHRBcmd1bWVudHMs
IGNhbGxTdGFjayI7Ci0gICAgfQotCiAgICAgaWYgKEB7JGZ1bmN0aW9uLT5yYWlzZXNFeGNlcHRp
b25zfSkgewogICAgICAgICBwdXNoIEBhcmd1bWVudHMsICJlYyI7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2Jq
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVz
dE9iai5jcHAKaW5kZXggNGY5MjZkZjI2ZmVhZjdkMTZlOTJmMWU1YTJkNWE0ZjQxYTUyOGM3Yy4u
MWM3MmU0ZjBiNWNiMWI5NDFlMDExZmFjN2YxZGQ3OWVjYzkwMDM5ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RP
YmouY3BwCkBAIC02MTQsNiArNjE0LDIyIEBAIHZvaWQgV2ViRE9NVGVzdE9iajo6c2V0V2l0aFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1CiAgICAg
aW1wbCgpLT5zZXRXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlV2l0aFNw
YWNlc0F0dHJpYnV0ZSh0b1dlYkNvcmUobmV3V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRT
Y3JpcHRTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGUpKTsKIH0KIAorV2ViRE9NVGVzdE9iaiBXZWJE
T01UZXN0T2JqOjp3aXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0cmlidXRlKCkgY29u
c3QKK3sKKyAgICBpZiAoIWltcGwoKSkKKyAgICAgICAgcmV0dXJuIFdlYkRPTVRlc3RPYmooKTsK
KworICAgIHJldHVybiB0b1dlYktpdChXVEY6OmdldFB0cihpbXBsKCktPndpdGhTY3JpcHRBcmd1
bWVudHNBbmRDYWxsU3RhY2tBdHRyaWJ1dGUoKSkpOworfQorCit2b2lkIFdlYkRPTVRlc3RPYmo6
OnNldFdpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2tBdHRyaWJ1dGUoY29uc3QgV2ViRE9N
VGVzdE9iaiYgbmV3V2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFja0F0dHJpYnV0ZSkKK3sK
KyAgICBpZiAoIWltcGwoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaW1wbCgpLT5zZXRXaXRo
U2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0cmlidXRlKHRvV2ViQ29yZShuZXdXaXRoU2Ny
aXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0cmlidXRlKSk7Cit9CisKIFdlYkRPTVN0cmluZyBX
ZWJET01UZXN0T2JqOjpzY3JpcHRTdHJpbmdBdHRyKCkgY29uc3QKIHsKICAgICBpZiAoIWltcGwo
KSkKQEAgLTk5OSw2ICsxMDE1LDE0IEBAIFdlYkRPTVRlc3RPYmogV2ViRE9NVGVzdE9iajo6d2l0
aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFjZXMoCiAgICAgcmV0
dXJuIHRvV2ViS2l0KFdURjo6Z2V0UHRyKGltcGwoKS0+d2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFjZXMoKSkpOwogfQogCit2b2lkIFdlYkRPTVRlc3RPYmo6
OndpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2soKQoreworICAgIGlmICghaW1wbCgpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBpbXBsKCktPndpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxs
U3RhY2soKTsKK30KKwogdm9pZCBXZWJET01UZXN0T2JqOjptZXRob2RXaXRoT3B0aW9uYWxBcmco
aW50IG9wdCkKIHsKICAgICBpZiAoIWltcGwoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmgKaW5kZXggNzQzOGM1
ZGM0ZDEzNzljNTU5NjIyYmIzNzNkMzY4MGQ5NDJlZjFlNy4uZWJhY2JjMjQxNzI3ZDY4ZmYwYzI1
MTBhOTdiZDg2MzA2MjIwNGQzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmgKQEAgLTEzNCw2ICsxMzQsOCBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzZXRXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlw
dFN0YXRlQXR0cmlidXRlUmFpc2VzKGNvbnN0IFdlYkRPTVRlc3RPYmomKTsKICAgICBXZWJET01U
ZXN0T2JqIHdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVXaXRoU3BhY2Vz
QXR0cmlidXRlKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dEFuZFNjcmlwdFN0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZShjb25zdCBXZWJET01UZXN0T2JqJik7
CisgICAgV2ViRE9NVGVzdE9iaiB3aXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0cmli
dXRlKCkgY29uc3Q7CisgICAgdm9pZCBzZXRXaXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNr
QXR0cmlidXRlKGNvbnN0IFdlYkRPTVRlc3RPYmomKTsKICAgICBXZWJET01TdHJpbmcgc2NyaXB0
U3RyaW5nQXR0cigpIGNvbnN0OwogI2lmIEVOQUJMRShDb25kaXRpb24xKQogICAgIGludCBjb25k
aXRpb25hbEF0dHIxKCkgY29uc3Q7CkBAIC0xOTIsNiArMTk0LDcgQEAgcHVibGljOgogICAgIHZv
aWQgd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZSgpOwogICAgIFdlYkRP
TVRlc3RPYmogd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZU9iakV4Y2Vw
dGlvbigpOwogICAgIFdlYkRPTVRlc3RPYmogd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRT
Y3JpcHRTdGF0ZVdpdGhTcGFjZXMoKTsKKyAgICB2b2lkIHdpdGhTY3JpcHRBcmd1bWVudHNBbmRD
YWxsU3RhY2soKTsKICAgICB2b2lkIG1ldGhvZFdpdGhPcHRpb25hbEFyZyhpbnQgb3B0KTsKICAg
ICB2b2lkIG1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0FuZE9wdGlvbmFsQXJnKGludCBub25PcHQs
IGludCBvcHQpOwogICAgIHZvaWQgbWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kVHdvT3B0aW9u
YWxBcmdzKGludCBub25PcHQsIGludCBvcHQxLCBpbnQgb3B0Mik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2Jq
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktp
dERPTVRlc3RPYmouY3BwCmluZGV4IGRmMmY0OTM3MjEyY2UxNThmNjg1YzVkNzAyZWYzMGFhNjVl
YTkzZTMuLmE5NmFiMTU2NzRhZGVkMDZmYWQ2NGEwY2Y0OGRhMzhhNjYxNmQyNjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERP
TVRlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9H
T2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3BwCkBAIC0zNDQsNiArMzQ0LDE1IEBAIHdlYmtpdF9k
b21fdGVzdF9vYmpfd2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYW5kX3NjcmlwdF9zdGF0
ZV93aXRoX3NwYWNlcyhXCiB9CiAKIHZvaWQKK3dlYmtpdF9kb21fdGVzdF9vYmpfd2l0aF9zY3Jp
cHRfYXJndW1lbnRzX2FuZF9jYWxsX3N0YWNrKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpCit7Cisg
ICAgZ19yZXR1cm5faWZfZmFpbChzZWxmKTsKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7CisgICAgV2ViQ29yZTo6VGVzdE9iaiAqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUo
c2VsZik7CisgICAgaXRlbS0+d2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFjaygpOworfQor
Cit2b2lkCiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX21ldGhvZF93aXRoX29wdGlvbmFsX2FyZyhXZWJL
aXRET01UZXN0T2JqKiBzZWxmLCBnbG9uZyBvcHQpCiB7CiAgICAgZ19yZXR1cm5faWZfZmFpbChz
ZWxmKTsKQEAgLTEzMTQsNiArMTMyMywzMiBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRo
X3NjcmlwdF9leGVjdXRpb25fY29udGV4dF9hbmRfc2NyaXB0X3N0YXRlX3dpdGhfc3BhYwogICAg
IGl0ZW0tPnNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVXaXRoU3Bh
Y2VzQXR0cmlidXRlKGNvbnZlcnRlZF92YWx1ZSk7CiB9CiAKK1dlYktpdERPTVRlc3RPYmoqCit3
ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF93aXRoX3NjcmlwdF9hcmd1bWVudHNfYW5kX2NhbGxfc3Rh
Y2tfYXR0cmlidXRlKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpCit7CisgICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwoc2VsZiwgMCk7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOworICAgIFdlYkNvcmU6OlRlc3RPYmogKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwor
ICAgIFBhc3NSZWZQdHI8V2ViQ29yZTo6VGVzdE9iaj4gZ19yZXMgPSBXVEY6OmdldFB0cihpdGVt
LT53aXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0cmlidXRlKCkpOworICAgIFdlYktp
dERPTVRlc3RPYmoqIHJlcyA9IFdlYktpdDo6a2l0KGdfcmVzLmdldCgpKTsKKyAgICByZXR1cm4g
cmVzOworfQorCit2b2lkCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3NjcmlwdF9hcmd1
bWVudHNfYW5kX2NhbGxfc3RhY2tfYXR0cmlidXRlKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdl
YktpdERPTVRlc3RPYmoqIHZhbHVlKQoreworICAgIGdfcmV0dXJuX2lmX2ZhaWwoc2VsZik7Cisg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIFdlYkNvcmU6OlRl
c3RPYmogKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwo
dmFsdWUpOworICAgIFdlYkNvcmU6OlRlc3RPYmogKiBjb252ZXJ0ZWRfdmFsdWUgPSBOVUxMOwor
ICAgIGlmICh2YWx1ZSAhPSBOVUxMKSB7CisgICAgICAgIGNvbnZlcnRlZF92YWx1ZSA9IFdlYktp
dDo6Y29yZSh2YWx1ZSk7CisgICAgICAgIGdfcmV0dXJuX2lmX2ZhaWwoY29udmVydGVkX3ZhbHVl
KTsKKyAgICB9CisgICAgaXRlbS0+c2V0V2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFja0F0
dHJpYnV0ZShjb252ZXJ0ZWRfdmFsdWUpOworfQorCiBnY2hhcioKIHdlYmtpdF9kb21fdGVzdF9v
YmpfZ2V0X3NjcmlwdF9zdHJpbmdfYXR0cihXZWJLaXRET01UZXN0T2JqKiBzZWxmKQogewpAQCAt
MTU3MCw2ICsxNjA1LDcgQEAgZW51bSB7CiAgICAgUFJPUF9XSVRIX1NDUklQVF9FWEVDVVRJT05f
Q09OVEVYVF9BTkRfU0NSSVBUX1NUQVRFX0FUVFJJQlVURSwKICAgICBQUk9QX1dJVEhfU0NSSVBU
X0VYRUNVVElPTl9DT05URVhUX0FORF9TQ1JJUFRfU1RBVEVfQVRUUklCVVRFX1JBSVNFUywKICAg
ICBQUk9QX1dJVEhfU0NSSVBUX0VYRUNVVElPTl9DT05URVhUX0FORF9TQ1JJUFRfU1RBVEVfV0lU
SF9TUEFDRVNfQVRUUklCVVRFLAorICAgIFBST1BfV0lUSF9TQ1JJUFRfQVJHVU1FTlRTX0FORF9D
QUxMX1NUQUNLX0FUVFJJQlVURSwKICAgICBQUk9QX1NDUklQVF9TVFJJTkdfQVRUUiwKICNpZiBF
TkFCTEUoQ29uZGl0aW9uMSkKICAgICBQUk9QX0NPTkRJVElPTkFMX0FUVFIxLApAQCAtMTkyOSw2
ICsxOTY1LDEyIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3Byb3BlcnR5
KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwgR1ZhCiAgICAgICAgIGdfdmFsdWVfc2V0
X29iamVjdCh2YWx1ZSwgV2ViS2l0OjpraXQocHRyLmdldCgpKSk7CiAgICAgICAgIGJyZWFrOwog
ICAgIH0KKyAgICBjYXNlIFBST1BfV0lUSF9TQ1JJUFRfQVJHVU1FTlRTX0FORF9DQUxMX1NUQUNL
X0FUVFJJQlVURToKKyAgICB7CisgICAgICAgIFJlZlB0cjxXZWJDb3JlOjpUZXN0T2JqPiBwdHIg
PSBjb3JlU2VsZi0+d2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFja0F0dHJpYnV0ZSgpOwor
ICAgICAgICBnX3ZhbHVlX3NldF9vYmplY3QodmFsdWUsIFdlYktpdDo6a2l0KHB0ci5nZXQoKSkp
OworICAgICAgICBicmVhazsKKyAgICB9CiAgICAgY2FzZSBQUk9QX1NDUklQVF9TVFJJTkdfQVRU
UjoKICAgICB7CiAgICAgICAgIGdfdmFsdWVfdGFrZV9zdHJpbmcodmFsdWUsIGNvbnZlcnRUb1VU
RjhTdHJpbmcoY29yZVNlbGYtPnNjcmlwdFN0cmluZ0F0dHIoKSkpOwpAQCAtMjI2NCw2ICsyMzA2
LDEzIEBAIEdfTUFYTE9ORywgLyogbWF4ICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9UWVBFX0RPTV9URVNUX09CSiwg
LyogZ29iamVjdCB0eXBlICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEV1JJVEUpKTsKICAgICBnX29i
amVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdvYmplY3RDbGFzcywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFBST1BfV0lUSF9TQ1JJUFRfQVJHVU1FTlRTX0FORF9DQUxM
X1NUQUNLX0FUVFJJQlVURSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdf
cGFyYW1fc3BlY19vYmplY3QoIndpdGgtc2NyaXB0LWFyZ3VtZW50cy1hbmQtY2FsbC1zdGFjay1h
dHRyaWJ1dGUiLCAvKiBuYW1lICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0X29ial93aXRoLXNjcmlwdC1hcmd1bWVudHMt
YW5kLWNhbGwtc3RhY2stYXR0cmlidXRlIiwgLyogc2hvcnQgZGVzY3JpcHRpb24gKi8KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJl
YWQtd3JpdGUgIFdlYktpdERPTVRlc3RPYmoqIFRlc3RPYmoud2l0aC1zY3JpcHQtYXJndW1lbnRz
LWFuZC1jYWxsLXN0YWNrLWF0dHJpYnV0ZSIsIC8qIGxvbmdlciAtIGNvdWxkIGRvIHdpdGggc29t
ZSBleHRyYSBkb2Mgc3R1ZmYgaGVyZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRfVFlQRV9ET01fVEVTVF9PQkosIC8q
IGdvYmplY3QgdHlwZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBRFdSSVRFKSk7CisgICAgZ19vYmpl
Y3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnb2JqZWN0Q2xhc3MsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBQUk9QX1NDUklQVF9TVFJJTkdfQVRUUiwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcoInNjcmlwdC1zdHJp
bmctYXR0ciIsIC8qIG5hbWUgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgInRlc3Rfb2JqX3NjcmlwdC1zdHJpbmctYXR0ciIsIC8q
IHNob3J0IGRlc2NyaXB0aW9uICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmgKaW5kZXgg
MzY3YjcxNjE1NzBhY2Q2NWEyNjQ1Njc0MzZhZDk2OWYwOGYwOTA3Ni4uYWY3MTBiYjc5NzdlMTM3
NmRiYTRiYmQwODIzNjllOTY5YzFlNDkwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmou
aApAQCAtMjU3LDYgKzI1NywxNiBAQCBXRUJLSVRfQVBJIFdlYktpdERPTVRlc3RPYmoqCiB3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2FuZF9zY3JpcHRf
c3RhdGVfd2l0aF9zcGFjZXMoV2ViS2l0RE9NVGVzdE9iaiogc2VsZik7CiAKIC8qKgorICogd2Vi
a2l0X2RvbV90ZXN0X29ial93aXRoX3NjcmlwdF9hcmd1bWVudHNfYW5kX2NhbGxfc3RhY2s6Cisg
KiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagorICoKKyAqIFJldHVybnM6CisgKgorKiovCitX
RUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9kb21fdGVzdF9vYmpfd2l0aF9zY3JpcHRfYXJndW1lbnRz
X2FuZF9jYWxsX3N0YWNrKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpOworCisvKioKICAqIHdlYmtp
dF9kb21fdGVzdF9vYmpfbWV0aG9kX3dpdGhfb3B0aW9uYWxfYXJnOgogICogQHNlbGY6IEEgI1dl
YktpdERPTVRlc3RPYmoKICAqIEBvcHQ6IEEgI2dsb25nCkBAIC0xMTQ5LDYgKzExNTksMjcgQEAg
V0VCS0lUX0FQSSB2b2lkCiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3NjcmlwdF9leGVj
dXRpb25fY29udGV4dF9hbmRfc2NyaXB0X3N0YXRlX3dpdGhfc3BhY2VzX2F0dHJpYnV0ZShXZWJL
aXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01UZXN0T2JqKiB2YWx1ZSk7CiAKIC8qKgorICog
d2Via2l0X2RvbV90ZXN0X29ial9nZXRfd2l0aF9zY3JpcHRfYXJndW1lbnRzX2FuZF9jYWxsX3N0
YWNrX2F0dHJpYnV0ZToKKyAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2JqCisgKgorICogUmV0
dXJuczogKHRyYW5zZmVyIG5vbmUpOgorICoKKyoqLworV0VCS0lUX0FQSSBXZWJLaXRET01UZXN0
T2JqKgord2Via2l0X2RvbV90ZXN0X29ial9nZXRfd2l0aF9zY3JpcHRfYXJndW1lbnRzX2FuZF9j
YWxsX3N0YWNrX2F0dHJpYnV0ZShXZWJLaXRET01UZXN0T2JqKiBzZWxmKTsKKworLyoqCisgKiB3
ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3NjcmlwdF9hcmd1bWVudHNfYW5kX2NhbGxfc3Rh
Y2tfYXR0cmlidXRlOgorICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoKKyAqIEB2YWx1ZTog
QSAjV2ViS2l0RE9NVGVzdE9iagorICoKKyAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKToKKyAq
CisqKi8KK1dFQktJVF9BUEkgdm9pZAord2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3Jp
cHRfYXJndW1lbnRzX2FuZF9jYWxsX3N0YWNrX2F0dHJpYnV0ZShXZWJLaXRET01UZXN0T2JqKiBz
ZWxmLCBXZWJLaXRET01UZXN0T2JqKiB2YWx1ZSk7CisKKy8qKgogICogd2Via2l0X2RvbV90ZXN0
X29ial9nZXRfc2NyaXB0X3N0cmluZ19hdHRyOgogICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RP
YmoKICAqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPYmouY3BwCmluZGV4IGE4NmQzMGVlN2U1YTE1ZGJmYjk2N2ViNGJkNDIxNTBmNjky
ZjhhMjkuLmZkOTE4YjAxMGE4YTRjNzc3OGFhNDhkNDhmYmMxZmQ4YzFiZDIyZGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmou
Y3BwCkBAIC00Miw3ICs0Miw2IEBACiAjaW5jbHVkZSAiSlNkLmgiCiAjaW5jbHVkZSAiSlNlLmgi
CiAjaW5jbHVkZSAiSlNpbnQuaCIKLSNpbmNsdWRlICJKU2xvZy5oIgogI2luY2x1ZGUgIktVUkwu
aCIKICNpbmNsdWRlICJTVkdEb2N1bWVudC5oIgogI2luY2x1ZGUgIlNWR1N0YXRpY1Byb3BlcnR5
VGVhck9mZi5oIgpAQCAtMTEyLDYgKzExMSw3IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1
ZSBKU1Rlc3RPYmpUYWJsZVZhbHVlc1tdID0KICAgICB7ICJ3aXRoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlIiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRp
Y19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpXaXRoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlKSwgKGludHB0cl90KXNldEpTVGVz
dE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGUsIE5v
SW50cmluc2ljIH0sCiAgICAgeyAid2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRT
dGF0ZUF0dHJpYnV0ZVJhaXNlcyIsIERvbnREZWxldGUsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQ
cm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyksIChpbnRwdHJfdClzZXRKU1Rlc3RP
YmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2Vz
LCBOb0ludHJpbnNpYyB9LAogICAgIHsgIndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2Ny
aXB0U3RhdGVXaXRoU3BhY2VzQXR0cmlidXRlIiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRp
Y19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpXaXRoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZSksIChpbnRwdHJf
dClzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlV2l0
aFNwYWNlc0F0dHJpYnV0ZSwgTm9JbnRyaW5zaWMgfSwKKyAgICB7ICJ3aXRoU2NyaXB0QXJndW1l
bnRzQW5kQ2FsbFN0YWNrQXR0cmlidXRlIiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19j
YXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpXaXRoU2NyaXB0QXJndW1l
bnRzQW5kQ2FsbFN0YWNrQXR0cmlidXRlKSwgKGludHB0cl90KXNldEpTVGVzdE9ialdpdGhTY3Jp
cHRBcmd1bWVudHNBbmRDYWxsU3RhY2tBdHRyaWJ1dGUsIE5vSW50cmluc2ljIH0sCiAgICAgeyAi
c2NyaXB0U3RyaW5nQXR0ciIsIERvbnREZWxldGUgfCBSZWFkT25seSwgKGludHB0cl90KXN0YXRp
Y19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpTY3JpcHRTdHJpbmdB
dHRyKSwgKGludHB0cl90KTAsIE5vSW50cmluc2ljIH0sCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEp
CiAgICAgeyAiY29uZGl0aW9uYWxBdHRyMSIsIERvbnREZWxldGUsIChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQ29uZGl0aW9uYWxBdHRy
MSksIChpbnRwdHJfdClzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHIxLCBOb0ludHJpbnNpYyB9
LApAQCAtMjYxLDcgKzI2MSw2IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RP
YmpQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KICAgICB7ICJtZXRob2RXaXRoRXhjZXB0aW9uIiwg
RG9udERlbGV0ZSB8IEpTQzo6RnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVG
dW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRXhjZXB0aW9uKSwg
KGludHB0cl90KTAsIE5vSW50cmluc2ljIH0sCiAgICAgeyAiY3VzdG9tTWV0aG9kIiwgRG9udERl
bGV0ZSB8IEpTQzo6RnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlv
bj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DdXN0b21NZXRob2QpLCAoaW50cHRyX3QpMCwg
Tm9JbnRyaW5zaWMgfSwKICAgICB7ICJjdXN0b21NZXRob2RXaXRoQXJncyIsIERvbnREZWxldGUg
fCBKU0M6OkZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tTWV0aG9kV2l0aEFyZ3MpLCAoaW50cHRyX3Qp
MywgTm9JbnRyaW5zaWMgfSwKLSAgICB7ICJjdXN0b21BcmdzQW5kRXhjZXB0aW9uIiwgRG9udERl
bGV0ZSB8IEpTQzo6RnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlv
bj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DdXN0b21BcmdzQW5kRXhjZXB0aW9uKSwgKGlu
dHB0cl90KTEsIE5vSW50cmluc2ljIH0sCiAgICAgeyAiYWRkRXZlbnRMaXN0ZW5lciIsIERvbnRE
ZWxldGUgfCBKU0M6OkZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rp
b24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQWRkRXZlbnRMaXN0ZW5lciksIChpbnRwdHJf
dCkzLCBOb0ludHJpbnNpYyB9LAogICAgIHsgInJlbW92ZUV2ZW50TGlzdGVuZXIiLCBEb250RGVs
ZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9u
Pihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblJlbW92ZUV2ZW50TGlzdGVuZXIpLCAoaW50cHRy
X3QpMywgTm9JbnRyaW5zaWMgfSwKICAgICB7ICJ3aXRoU2NyaXB0U3RhdGVWb2lkIiwgRG9udERl
bGV0ZSB8IEpTQzo6RnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlv
bj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0U3RhdGVWb2lkKSwgKGludHB0
cl90KTAsIE5vSW50cmluc2ljIH0sCkBAIC0yNzIsNiArMjcxLDcgQEAgc3RhdGljIGNvbnN0IEhh
c2hUYWJsZVZhbHVlIEpTVGVzdE9ialByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQogICAgIHsgIndp
dGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGUiLCBEb250RGVsZXRlIHwgSlND
OjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3Rh
dGUpLCAoaW50cHRyX3QpMCwgTm9JbnRyaW5zaWMgfSwKICAgICB7ICJ3aXRoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlT2JqRXhjZXB0aW9uIiwgRG9udERlbGV0ZSB8IEpTQzo6
RnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRl
T2JqRXhjZXB0aW9uKSwgKGludHB0cl90KTAsIE5vSW50cmluc2ljIH0sCiAgICAgeyAid2l0aFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFjZXMiLCBEb250RGVsZXRl
IHwgSlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2Ny
aXB0U3RhdGVXaXRoU3BhY2VzKSwgKGludHB0cl90KTAsIE5vSW50cmluc2ljIH0sCisgICAgeyAi
d2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFjayIsIERvbnREZWxldGUgfCBKU0M6OkZ1bmN0
aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uV2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFjayksIChpbnRwdHJfdCkw
LCBOb0ludHJpbnNpYyB9LAogICAgIHsgIm1ldGhvZFdpdGhPcHRpb25hbEFyZyIsIERvbnREZWxl
dGUgfCBKU0M6OkZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+
KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQXJnKSwgKGludHB0
cl90KTEsIE5vSW50cmluc2ljIH0sCiAgICAgeyAibWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5k
T3B0aW9uYWxBcmciLCBEb250RGVsZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRp
Y19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhOb25PcHRpb25hbEFyZ0FuZE9wdGlvbmFsQXJnKSwgKGludHB0cl90KTIsIE5vSW50cmluc2lj
IH0sCiAgICAgeyAibWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kVHdvT3B0aW9uYWxBcmdzIiwg
RG9udERlbGV0ZSB8IEpTQzo6RnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVG
dW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uT3B0aW9uYWxB
cmdBbmRUd29PcHRpb25hbEFyZ3MpLCAoaW50cHRyX3QpMywgTm9JbnRyaW5zaWMgfSwKQEAgLTMw
NCw3ICszMDQsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0T2JqUHJvdG90
eXBlVGFibGVWYWx1ZXNbXSA9CiAgICAgeyAwLCAwLCAwLCAwLCBOb0ludHJpbnNpYyB9CiB9Owog
Ci1zdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTVGVzdE9ialByb3RvdHlwZVRhYmxlID0geyAyNjUs
IDI1NSwgSlNUZXN0T2JqUHJvdG90eXBlVGFibGVWYWx1ZXMsIDAgfTsKK3N0YXRpYyBjb25zdCBI
YXNoVGFibGUgSlNUZXN0T2JqUHJvdG90eXBlVGFibGUgPSB7IDI2NiwgMjU1LCBKU1Rlc3RPYmpQ
cm90b3R5cGVUYWJsZVZhbHVlcywgMCB9OwogY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE9ialByb3Rv
dHlwZTo6c19pbmZvID0geyAiVGVzdE9ialByb3RvdHlwZSIsICZCYXNlOjpzX2luZm8sICZKU1Rl
c3RPYmpQcm90b3R5cGVUYWJsZSwgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RPYmpQcm90
b3R5cGUpIH07CiAKIEpTT2JqZWN0KiBKU1Rlc3RPYmpQcm90b3R5cGU6OnNlbGYoRXhlY1N0YXRl
KiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQpAQCAtNzA2LDYgKzcwNiwxNiBA
QCBKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3Rh
dGVXaXRoU3BhY2VzQXR0cmlidXRlKEV4ZQogfQogCiAKK0pTVmFsdWUganNUZXN0T2JqV2l0aFNj
cmlwdEFyZ3VtZW50c0FuZENhbGxTdGFja0F0dHJpYnV0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFs
dWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZpZXImKQoreworICAgIEpTVGVzdE9iaiogY2FzdGVk
VGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0KHNsb3RCYXNlKSk7CisgICAg
UmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKGNyZWF0ZVNjcmlwdENhbGxTdGFja0Zv
ckluc3BlY3RvcihleGVjKSk7CisgICAgVGVzdE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RP
YmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOworICAgIEpTVmFsdWUgcmVzdWx0ID0gdG9KUyhleGVj
LCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgV1RGOjpnZXRQdHIoaW1wbC0+d2l0aFNjcmlw
dEFyZ3VtZW50c0FuZENhbGxTdGFja0F0dHJpYnV0ZShjYWxsU3RhY2spKSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KKworCiBKU1ZhbHVlIGpzVGVzdE9ialNjcmlwdFN0cmluZ0F0dHIoRXhlY1N0
YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJikKIHsKICAgICBK
U1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdChz
bG90QmFzZSkpOwpAQCAtMTE1Myw2ICsxMTYzLDE1IEBAIHZvaWQgc2V0SlNUZXN0T2JqV2l0aFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGUoRXhl
CiB9CiAKIAordm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNr
QXR0cmlidXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHRoaXNPYmplY3QsIEpTVmFsdWUg
dmFsdWUpCit7CisgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0gc3RhdGljX2Nhc3Q8SlNUZXN0
T2JqKj4odGhpc09iamVjdCk7CisgICAgVGVzdE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RP
YmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOworICAgIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNh
bGxTdGFjayhjcmVhdGVTY3JpcHRDYWxsU3RhY2tGb3JJbnNwZWN0b3IoZXhlYykpOworICAgIGlt
cGwtPnNldFdpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2tBdHRyaWJ1dGUoY2FsbFN0YWNr
LCB0b1Rlc3RPYmoodmFsdWUpKTsKK30KKworCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpCiB2b2lk
IHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjEoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCog
dGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKQEAgLTE0NzQsMjcgKzE0OTMsNiBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9t
TWV0aG9kV2l0aEFyZ3MoRXhlYwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2FzdGVkVGhp
cy0+Y3VzdG9tTWV0aG9kV2l0aEFyZ3MoZXhlYykpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tQXJnc0FuZEV4Y2VwdGlv
bihFeGVjU3RhdGUqIGV4ZWMpCi17Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0
VGhpc1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHMoJkpTVGVzdE9iajo6c19p
bmZvKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7Ci0gICAgSlNUZXN0
T2JqKiBjYXN0ZWRUaGlzID0gc3RhdGljX2Nhc3Q8SlNUZXN0T2JqKj4oYXNPYmplY3QodGhpc1Zh
bHVlKSk7Ci0gICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCAmSlNUZXN0
T2JqOjpzX2luZm8pOwotICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4o
Y2FzdGVkVGhpcy0+aW1wbCgpKTsKLSAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkK
LSAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVUeXBlRXJyb3IoZXhlYywg
Ik5vdCBlbm91Z2ggYXJndW1lbnRzIikpOwotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAg
IFJlZlB0cjxTY3JpcHRBcmd1bWVudHM+IHNjcmlwdEFyZ3VtZW50cyhjcmVhdGVTY3JpcHRBcmd1
bWVudHMoZXhlYywgMSkpOwotICAgIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjayhj
cmVhdGVTY3JpcHRDYWxsU3RhY2tGb3JJbnNwZWN0b3IoZXhlYykpOwotICAgIGxvZyogaW50QXJn
KHRvbG9nKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERlZmF1bHRJc1VuZGVmaW5l
ZCkpKTsKLSAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgaW1wbC0+Y3VzdG9tQXJnc0FuZEV4Y2Vw
dGlvbihpbnRBcmcsIHNjcmlwdEFyZ3VtZW50cywgY2FsbFN0YWNrLCBlYyk7Ci0gICAgc2V0RE9N
RXhjZXB0aW9uKGV4ZWMsIGVjKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwotfQotCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uQWRkRXZlbnRMaXN0ZW5lcihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSlNW
YWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CkBAIC0xNjU1LDYgKzE2NTMs
MjAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXgKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KHJlc3VsdCk7CiB9CiAKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrKEV4ZWNTdGF0ZSog
ZXhlYykKK3sKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsK
KyAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cygmSlNUZXN0T2JqOjpzX2luZm8pKQorICAgICAg
ICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKKyAgICBKU1Rlc3RPYmoqIGNhc3RlZFRo
aXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdCh0aGlzVmFsdWUpKTsKKyAgICBB
U1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsICZKU1Rlc3RPYmo6OnNfaW5mbyk7
CisgICAgVGVzdE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5p
bXBsKCkpOworICAgIFJlZlB0cjxTY3JpcHRBcmd1bWVudHM+IHNjcmlwdEFyZ3VtZW50cyhjcmVh
dGVTY3JpcHRBcmd1bWVudHMoZXhlYywgMCkpOworICAgIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+
IGNhbGxTdGFjayhjcmVhdGVTY3JpcHRDYWxsU3RhY2tGb3JJbnNwZWN0b3IoZXhlYykpOworICAg
IGltcGwtPndpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2soc2NyaXB0QXJndW1lbnRzLCBj
YWxsU3RhY2spOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Cit9
CisKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoT3B0aW9uYWxBcmcoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEpTVmFsdWUg
dGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCmluZGV4IDQ3MDU5OWY5NDU1
OTU4MTZjNmZmNjQ5MjYxYjJiOWUxOGYzY2RiODkuLmQyYTYwNTIyMTg4MmUxMjUxMjVkNjgwODZj
ODIwMjA3Y2Y5NmRiNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RPYmouaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKQEAgLTE2Myw3ICsxNjMsNiBAQCBKU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PcHRpb25zT2Jq
ZWN0KEpTQzo6RQogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEV4Y2VwdGlvbihKU0M6OkV4ZWNTdGF0ZSopOwogSlND
OjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
Q3VzdG9tTWV0aG9kKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DdXN0b21NZXRob2RXaXRoQXJncyhK
U0M6OkV4ZWNTdGF0ZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tQXJnc0FuZEV4Y2VwdGlvbihKU0M6OkV4ZWNTdGF0
ZSopOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uQWRkRXZlbnRMaXN0ZW5lcihKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uUmVtb3ZlRXZl
bnRMaXN0ZW5lcihKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdFN0YXRlVm9pZChKU0M6
OkV4ZWNTdGF0ZSopOwpAQCAtMTc0LDYgKzE3Myw3IEBAIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRFeGVjdXRpb25D
CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25XaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlKEpTQzo6RXhlY1N0
YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25XaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlT2JqRXhj
ZXB0aW9uKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFu
ZFNjcmlwdFN0YXRlV2l0aFNwYWNlcyhKU0M6OkV4ZWNTdGF0ZSopOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdEFy
Z3VtZW50c0FuZENhbGxTdGFjayhKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlv
bmFsQXJnKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRP
cHRpb25hbEFyZyhKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJn
QW5kVHdvT3B0aW9uYWxBcmdzKEpTQzo6RXhlY1N0YXRlKik7CkBAIC0yNjUsNiArMjY1LDggQEAg
SlNDOjpKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0
U3RhdGVBdHRyaWJ1dGVSYWlzZXMoSlMKIHZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6SlNPYmplY3QqLCBKU0M6OkpTVmFsdWUpOwogSlNDOjpKU1ZhbHVlIGpzVGVzdE9ialdp
dGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVXaXRoU3BhY2VzQXR0cmlidXRl
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6OklkZW50aWZpZXImKTsK
IHZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0
ZVdpdGhTcGFjZXNBdHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlND
OjpKU1ZhbHVlKTsKK0pTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0QXJndW1lbnRzQW5k
Q2FsbFN0YWNrQXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBK
U0M6OklkZW50aWZpZXImKTsKK3ZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEFyZ3VtZW50c0Fu
ZENhbGxTdGFja0F0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6
OkpTVmFsdWUpOwogSlNDOjpKU1ZhbHVlIGpzVGVzdE9ialNjcmlwdFN0cmluZ0F0dHIoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYpOwogSlNDOjpK
U1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjEoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpT
VmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYpOwogdm9pZCBzZXRKU1Rlc3RPYmpDb25kaXRp
b25hbEF0dHIxKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6SlNWYWx1ZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9E
T01UZXN0T2JqLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9E
T01UZXN0T2JqLmgKaW5kZXggMzE1YWYzMjViZTcyN2EzY2NhYmRlNDI1MWViOGZlNzBjNzEyNDQ2
YS4uNThjZGNhYjhhMzY0MWQzMzExZTBlMmZlYTJiYjBkOGQ3NGJmYThiMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmou
aApAQCAtNDMsNyArNDMsNiBAQAogQGNsYXNzIERPTWM7CiBAY2xhc3MgRE9NZDsKIEBjbGFzcyBE
T01lOwotQGNsYXNzIERPTWxvZzsKIEBjbGFzcyBOU1N0cmluZzsKIEBwcm90b2NvbCBET01FdmVu
dExpc3RlbmVyOwogCkBAIC0xMjksNiArMTI4LDggQEAgZW51bSB7CiAtICh2b2lkKXNldFdpdGhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXM6KERPTVRl
c3RPYmogKiluZXdXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmli
dXRlUmFpc2VzOwogLSAoRE9NVGVzdE9iaiAqKXdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5k
U2NyaXB0U3RhdGVXaXRoU3BhY2VzQXR0cmlidXRlOwogLSAodm9pZClzZXRXaXRoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZTooRE9NVGVzdE9i
aiAqKW5ld1dpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVXaXRoU3BhY2Vz
QXR0cmlidXRlOworLSAoRE9NVGVzdE9iaiAqKXdpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3Rh
Y2tBdHRyaWJ1dGU7CistICh2b2lkKXNldFdpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2tB
dHRyaWJ1dGU6KERPTVRlc3RPYmogKiluZXdXaXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNr
QXR0cmlidXRlOwogLSAoTlNTdHJpbmcgKilzY3JpcHRTdHJpbmdBdHRyOwogI2lmIEVOQUJMRShD
b25kaXRpb24xKQogLSAoaW50KWNvbmRpdGlvbmFsQXR0cjE7CkBAIC0xNzgsNyArMTc5LDYgQEAg
ZW51bSB7CiAtICh2b2lkKW1ldGhvZFdpdGhFeGNlcHRpb247CiAtICh2b2lkKWN1c3RvbU1ldGhv
ZDsKIC0gKHZvaWQpY3VzdG9tTWV0aG9kV2l0aEFyZ3M6KGludClpbnRBcmcgc3RyQXJnOihOU1N0
cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmc7Ci0tICh2b2lkKWN1c3Rv
bUFyZ3NBbmRFeGNlcHRpb246KERPTWxvZyAqKWludEFyZzsKIC0gKHZvaWQpYWRkRXZlbnRMaXN0
ZW5lcjooTlNTdHJpbmcgKil0eXBlIGxpc3RlbmVyOihpZCA8RE9NRXZlbnRMaXN0ZW5lcj4pbGlz
dGVuZXIgdXNlQ2FwdHVyZTooQk9PTCl1c2VDYXB0dXJlOwogLSAodm9pZClyZW1vdmVFdmVudExp
c3RlbmVyOihOU1N0cmluZyAqKXR5cGUgbGlzdGVuZXI6KGlkIDxET01FdmVudExpc3RlbmVyPils
aXN0ZW5lciB1c2VDYXB0dXJlOihCT09MKXVzZUNhcHR1cmU7CiAtICh2b2lkKXdpdGhTY3JpcHRT
dGF0ZVZvaWQ7CkBAIC0xODksNiArMTg5LDcgQEAgZW51bSB7CiAtICh2b2lkKXdpdGhTY3JpcHRF
eGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGU7CiAtIChET01UZXN0T2JqICopd2l0aFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZU9iakV4Y2VwdGlvbjsKIC0gKERPTVRlc3RP
YmogKil3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlV2l0aFNwYWNlczsK
Ky0gKHZvaWQpd2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFjazsKIC0gKHZvaWQpbWV0aG9k
V2l0aE9wdGlvbmFsQXJnOihpbnQpb3B0OwogLSAodm9pZCltZXRob2RXaXRoTm9uT3B0aW9uYWxB
cmdBbmRPcHRpb25hbEFyZzooaW50KW5vbk9wdCBvcHQ6KGludClvcHQ7CiAtICh2b2lkKW1ldGhv
ZFdpdGhOb25PcHRpb25hbEFyZ0FuZFR3b09wdGlvbmFsQXJnczooaW50KW5vbk9wdCBvcHQxOihp
bnQpb3B0MSBvcHQyOihpbnQpb3B0MjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tCmluZGV4IDkzMmI0OWRkMzA4MGNk
N2E4YzZiYWU1NGQ3ZDA2ZTBlNTdjNTE5YTguLjY3MzhlNDllM2I0NTk2NDVjOTFlMTVhYzc4OWRj
ZmNjYjA2N2U3NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9PYmpDL0RPTVRlc3RPYmoubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbQpAQCAtNTAsNyArNTAsNiBAQAogI2ltcG9ydCAi
RE9NY0ludGVybmFsLmgiCiAjaW1wb3J0ICJET01kSW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTWVJ
bnRlcm5hbC5oIgotI2ltcG9ydCAiRE9NbG9nSW50ZXJuYWwuaCIKICNpbXBvcnQgIkRvY3VtZW50
LmgiCiAjaW1wb3J0ICJFdmVudExpc3RlbmVyLmgiCiAjaW1wb3J0ICJFeGNlcHRpb25IYW5kbGVy
cy5oIgpAQCAtNzYsNyArNzUsNiBAQAogI2ltcG9ydCAiYy5oIgogI2ltcG9ydCAiZC5oIgogI2lt
cG9ydCAiZS5oIgotI2ltcG9ydCAibG9nLmgiCiAjaW1wb3J0IDx3dGYvR2V0UHRyLmg+CiAKICNk
ZWZpbmUgSU1QTCByZWludGVycHJldF9jYXN0PFdlYkNvcmU6OlRlc3RPYmoqPihfaW50ZXJuYWwp
CkBAIC01MjMsNiArNTIxLDIwIEBACiAgICAgSU1QTC0+c2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGUoY29yZShuZXdXaXRoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZSkpOwogfQog
CistIChET01UZXN0T2JqICopd2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFja0F0dHJpYnV0
ZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1
cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPndpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2tB
dHRyaWJ1dGUoKSkpOworfQorCistICh2b2lkKXNldFdpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxs
U3RhY2tBdHRyaWJ1dGU6KERPTVRlc3RPYmogKiluZXdXaXRoU2NyaXB0QXJndW1lbnRzQW5kQ2Fs
bFN0YWNrQXR0cmlidXRlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOworICAgIEFTU0VSVChuZXdXaXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0cmli
dXRlKTsKKworICAgIElNUEwtPnNldFdpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2tBdHRy
aWJ1dGUoY29yZShuZXdXaXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0cmlidXRlKSk7
Cit9CisKIC0gKE5TU3RyaW5nICopc2NyaXB0U3RyaW5nQXR0cgogewogICAgIFdlYkNvcmU6OkpT
TWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKQEAgLTc3MiwxNCArNzg0LDYgQEAKICAgICBJTVBM
LT5jdXN0b21NZXRob2RXaXRoQXJncyhpbnRBcmcsIHN0ckFyZywgY29yZShvYmpBcmcpKTsKIH0K
IAotLSAodm9pZCljdXN0b21BcmdzQW5kRXhjZXB0aW9uOihET01sb2cgKilpbnRBcmcKLXsKLSAg
ICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgV2ViQ29yZTo6RXhj
ZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgSU1QTC0+Y3VzdG9tQXJnc0FuZEV4Y2VwdGlvbihjb3Jl
KGludEFyZyksIGVjKTsKLSAgICBXZWJDb3JlOjpyYWlzZU9uRE9NRXJyb3IoZWMpOwotfQotCiAt
ICh2b2lkKWFkZEV2ZW50TGlzdGVuZXI6KE5TU3RyaW5nICopdHlwZSBsaXN0ZW5lcjooaWQgPERP
TUV2ZW50TGlzdGVuZXI+KWxpc3RlbmVyIHVzZUNhcHR1cmU6KEJPT0wpdXNlQ2FwdHVyZQogewog
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKQEAgLTg1MCw2ICs4NTQs
MTIgQEAKICAgICByZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPndpdGhTY3JpcHRFeGVjdXRp
b25Db250ZXh0QW5kU2NyaXB0U3RhdGVXaXRoU3BhY2VzKCkpKTsKIH0KIAorLSAodm9pZCl3aXRo
U2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPndpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3Rh
Y2soKTsKK30KKwogLSAodm9pZCltZXRob2RXaXRoT3B0aW9uYWxBcmc6KGludClvcHQKIHsKICAg
ICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKaW5kZXggYjQ5N2U0ZjI3OTQ1
ZTkwYzY0NmIxY2EzMjhmMTY3MzBmNmI4Mzc0MC4uYmJiZjI1NjgxODkxNTMyOWYxZjViOTI1ODY1
YzZiZDlkZjI2ZDY3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Rlc3RPYmouaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9UZXN0T2JqLmlkbApAQCAtODgsOSArODgsNiBAQCBtb2R1bGUgdGVzdCB7CiAgICAgICAg
IFtDdXN0b21dIHZvaWQgY3VzdG9tTWV0aG9kKCk7CiAgICAgICAgIFtDdXN0b21dIHZvaWQgY3Vz
dG9tTWV0aG9kV2l0aEFyZ3MoaW4gbG9uZyBpbnRBcmcsIGluIERPTVN0cmluZyBzdHJBcmcsIGlu
IFRlc3RPYmogb2JqQXJnKTsKIAotICAgICAgICBbQ3VzdG9tQXJndW1lbnRIYW5kbGluZ10gdm9p
ZCBjdXN0b21BcmdzQW5kRXhjZXB0aW9uKGluIGxvZyBpbnRBcmcpCi0gICAgICAgICAgICByYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKLQogICAgICAgICB2b2lkIGFkZEV2ZW50TGlzdGVuZXIoaW4gRE9N
U3RyaW5nIHR5cGUsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gRXZlbnRMaXN0
ZW5lciBsaXN0ZW5lciwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9u
YWxdIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CkBAIC0xMTAsNiArMTA3LDcgQEAgbW9kdWxlIHRlc3Qg
ewogICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dHxTY3JpcHRTdGF0ZV0g
VGVzdE9iaiB3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlT2JqRXhjZXB0
aW9uKCkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICBbQ2FsbFdp
dGg9ICBTY3JpcHRFeGVjdXRpb25Db250ZXh0ICB8ICBTY3JpcHRTdGF0ZSAgXSBUZXN0T2JqIHdp
dGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVXaXRoU3BhY2VzKCk7CisgICAg
ICAgIFtDYWxsV2l0aD1TY3JpcHRBcmd1bWVudHN8Q2FsbFN0YWNrXSB2b2lkIHdpdGhTY3JpcHRB
cmd1bWVudHNBbmRDYWxsU3RhY2soKTsKIAogICAgICAgICBhdHRyaWJ1dGUgW0NhbGxXaXRoPVNj
cmlwdFN0YXRlXSBsb25nIHdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZTsKICAgICAgICAgYXR0cmli
dXRlIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBUZXN0T2JqIHdpdGhTY3JpcHRF
eGVjdXRpb25Db250ZXh0QXR0cmlidXRlOwpAQCAtMTIxLDYgKzExOSw3IEBAIG1vZHVsZSB0ZXN0
IHsKICAgICAgICAgYXR0cmlidXRlIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0fFNj
cmlwdFN0YXRlXSBUZXN0T2JqIHdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3Rh
dGVBdHRyaWJ1dGVSYWlzZXMKICAgICAgICAgICAgIGdldHRlciByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKICAgICAgICAgYXR0cmlidXRlIFtDYWxsV2l0aD0gIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQg
IHwgIFNjcmlwdFN0YXRlICBdIFRlc3RPYmogd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRT
Y3JpcHRTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGU7CisgICAgICAgIGF0dHJpYnV0ZSBbQ2FsbFdp
dGg9U2NyaXB0QXJndW1lbnRzfENhbGxTdGFja10gVGVzdE9iaiB3aXRoU2NyaXB0QXJndW1lbnRz
QW5kQ2FsbFN0YWNrQXR0cmlidXRlOwogCiAgICAgICAgIC8vICdPcHRpb25hbCcgZXh0ZW5kZWQg
YXR0cmlidXRlCiAgICAgICAgIHZvaWQgICAgbWV0aG9kV2l0aE9wdGlvbmFsQXJnKGluIFtPcHRp
b25hbF0gbG9uZyBvcHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcAppbmRleCAyNmNmMjYwNTE3Y2M4MzhiMjg5MGJhNmU0
YTQ5N2YxOWJmNDIwNTdlLi5lYzY2M2RjNDQ0YTU0YTA1NjA4ODBiNTI5MzU1OTc3NjYxMTIwOGQz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhU
ZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgv
VjhUZXN0T2JqLmNwcApAQCAtNTEsNyArNTEsNiBAQAogI2luY2x1ZGUgIlY4ZC5oIgogI2luY2x1
ZGUgIlY4ZS5oIgogI2luY2x1ZGUgIlY4aW50LmgiCi0jaW5jbHVkZSAiVjhsb2cuaCIKICNpbmNs
dWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CkBAIC02OTUsNiArNjk0LDI4IEBAIHN0YXRpYyB2b2lkIHdpdGhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVXaXRoU3BhY2VzQXR0cmlidXRlQXR0clNl
dHRlCiAgICAgcmV0dXJuOwogfQogCitzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHdpdGhT
Y3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2tBdHRyaWJ1dGVBdHRyR2V0dGVyKHY4OjpMb2NhbDx2
ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAgIElO
Q19TVEFUUygiRE9NLlRlc3RPYmoud2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFja0F0dHJp
YnV0ZS5fZ2V0Iik7CisgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZv
LkhvbGRlcigpKTsKKyAgICBSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2soY3JlYXRl
U2NyaXB0Q2FsbFN0YWNrRm9ySW5zcGVjdG9yKCkpOworICAgIGlmICghY2FsbFN0YWNrKQorICAg
ICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOworICAgIHJldHVybiB0b1Y4KGltcC0+d2l0aFNj
cmlwdEFyZ3VtZW50c0FuZENhbGxTdGFja0F0dHJpYnV0ZShjYWxsU3RhY2spKTsKK30KKworc3Rh
dGljIHZvaWQgd2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFja0F0dHJpYnV0ZUF0dHJTZXR0
ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVl
LCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAgIElOQ19TVEFUUygiRE9NLlRl
c3RPYmoud2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFja0F0dHJpYnV0ZS5fc2V0Iik7Cisg
ICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKKyAg
ICBUZXN0T2JqKiB2ID0gVjhUZXN0T2JqOjpIYXNJbnN0YW5jZSh2YWx1ZSkgPyBWOFRlc3RPYmo6
OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QodmFsdWUpKSA6IDA7CisgICAg
UmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKGNyZWF0ZVNjcmlwdENhbGxTdGFja0Zv
ckluc3BlY3RvcigpKTsKKyAgICBpZiAoIWNhbGxTdGFjaykKKyAgICAgICAgcmV0dXJuIHY4OjpV
bmRlZmluZWQoKTsKKyAgICBpbXAtPnNldFdpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2tB
dHRyaWJ1dGUoY2FsbFN0YWNrLCBXVEY6OmdldFB0cih2KSk7CisgICAgcmV0dXJuOworfQorCiBz
dGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHNjcmlwdFN0cmluZ0F0dHJBdHRyR2V0dGVyKHY4
OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQog
ewogICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmouc2NyaXB0U3RyaW5nQXR0ci5fZ2V0Iik7CkBA
IC0xMTA4LDI5ICsxMTI5LDYgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBtZXRob2RX
aXRoRXhjZXB0aW9uQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXIKICAgICByZXR1cm4g
djg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7CiB9CiAKLXN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gY3VzdG9tQXJnc0FuZEV4Y2VwdGlvbkNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFy
Z3MpCi17Ci0gICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5jdXN0b21BcmdzQW5kRXhjZXB0aW9u
Iik7Ci0gICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQotICAgICAgICByZXR1cm4gdGhyb3dFcnJv
cigiTm90IGVub3VnaCBhcmd1bWVudHMiLCBWOFByb3h5OjpUeXBlRXJyb3IpOwotICAgIFRlc3RP
YmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgRXhjZXB0
aW9uQ29kZSBlYyA9IDA7Ci0gICAgewotICAgIFJlZlB0cjxTY3JpcHRBcmd1bWVudHM+IHNjcmlw
dEFyZ3VtZW50cyhjcmVhdGVTY3JpcHRBcmd1bWVudHMoYXJncywgMSkpOwotICAgIFJlZlB0cjxT
Y3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjayhjcmVhdGVTY3JpcHRDYWxsU3RhY2tGb3JJbnNwZWN0
b3IoKSk7Ci0gICAgaWYgKCFjYWxsU3RhY2spCi0gICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVk
KCk7Ci0gICAgRVhDRVBUSU9OX0JMT0NLKGxvZyosIGludEFyZywgVjhsb2c6Okhhc0luc3RhbmNl
KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpID8g
Vjhsb2c6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QoTUFZQkVfTUlTU0lO
R19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpIDogMCk7Ci0gICAgaW1w
LT5jdXN0b21BcmdzQW5kRXhjZXB0aW9uKGludEFyZywgc2NyaXB0QXJndW1lbnRzLCBjYWxsU3Rh
Y2ssIGVjKTsKLSAgICBpZiAoVU5MSUtFTFkoZWMpKQotICAgICAgICBnb3RvIGZhaWw7Ci0gICAg
cmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwotICAgIH0KLSAgICBmYWlsOgotICAgIFY4
UHJveHk6OnNldERPTUV4Y2VwdGlvbihlYyk7Ci0gICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZh
bHVlPigpOwotfQotCiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGFkZEV2ZW50TGlzdGVu
ZXJDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygi
RE9NLlRlc3RPYmouYWRkRXZlbnRMaXN0ZW5lcigpIik7CkBAIC0xMjc0LDYgKzEyNzIsMTggQEAg
c3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFu
ZFNjcmlwdFN0YXRlV2l0aFNwYWNlc0MKICAgICByZXR1cm4gdG9WOChyZXN1bHQucmVsZWFzZSgp
KTsKIH0KIAorc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB3aXRoU2NyaXB0QXJndW1lbnRz
QW5kQ2FsbFN0YWNrQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3sKKyAgICBJ
TkNfU1RBVFMoIkRPTS5UZXN0T2JqLndpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2siKTsK
KyAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwor
ICAgIFJlZlB0cjxTY3JpcHRBcmd1bWVudHM+IHNjcmlwdEFyZ3VtZW50cyhjcmVhdGVTY3JpcHRB
cmd1bWVudHMoYXJncywgMCkpOworICAgIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFj
ayhjcmVhdGVTY3JpcHRDYWxsU3RhY2tGb3JJbnNwZWN0b3IoKSk7CisgICAgaWYgKCFjYWxsU3Rh
Y2spCisgICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CisgICAgaW1wLT53aXRoU2NyaXB0
QXJndW1lbnRzQW5kQ2FsbFN0YWNrKHNjcmlwdEFyZ3VtZW50cywgY2FsbFN0YWNrKTsKKyAgICBy
ZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7Cit9CisKIHN0YXRpYyB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gbWV0aG9kV2l0aE9wdGlvbmFsQXJnQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50
cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLm1ldGhvZFdpdGhPcHRpb25h
bEFyZyIpOwpAQCAtMTgwNCw2ICsxODE0LDggQEAgc3RhdGljIGNvbnN0IEJhdGNoZWRBdHRyaWJ1
dGUgVGVzdE9iakF0dHJzW10gPSB7CiAgICAgeyJ3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFu
ZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzIiwgVGVzdE9iakludGVybmFsOjp3aXRoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzQXR0ckdldHRlciwg
VGVzdE9iakludGVybmFsOjp3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRl
QXR0cmlidXRlUmFpc2VzQXR0clNldHRlciwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2
ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlB
dHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCiAgICAgLy8gQXR0cmli
dXRlICd3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlV2l0aFNwYWNlc0F0
dHJpYnV0ZScgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICdDYWxsV2l0aCcpCiAgICAgeyJ3
aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlV2l0aFNwYWNlc0F0dHJpYnV0
ZSIsIFRlc3RPYmpJbnRlcm5hbDo6d2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRT
dGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGVBdHRyR2V0dGVyLCBUZXN0T2JqSW50ZXJuYWw6OndpdGhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVXaXRoU3BhY2VzQXR0cmlidXRlQXR0
clNldHRlciwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4o
djg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25l
KSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCisgICAgLy8gQXR0cmlidXRlICd3aXRoU2NyaXB0QXJn
dW1lbnRzQW5kQ2FsbFN0YWNrQXR0cmlidXRlJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjog
J0NhbGxXaXRoJykKKyAgICB7IndpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2tBdHRyaWJ1
dGUiLCBUZXN0T2JqSW50ZXJuYWw6OndpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2tBdHRy
aWJ1dGVBdHRyR2V0dGVyLCBUZXN0T2JqSW50ZXJuYWw6OndpdGhTY3JpcHRBcmd1bWVudHNBbmRD
YWxsU3RhY2tBdHRyaWJ1dGVBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0
PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0
eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKICAgICAvLyBBdHRy
aWJ1dGUgJ3NjcmlwdFN0cmluZ0F0dHInIChUeXBlOiAncmVhZG9ubHkgYXR0cmlidXRlJyBFeHRB
dHRyOiAnQ29udmVydFNjcmlwdFN0cmluZycpCiAgICAgeyJzY3JpcHRTdHJpbmdBdHRyIiwgVGVz
dE9iakludGVybmFsOjpzY3JpcHRTdHJpbmdBdHRyQXR0ckdldHRlciwgMCwgMCAvKiBubyBkYXRh
ICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNf
Y2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAq
L30sCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpCkBAIC0xODc0LDYgKzE4ODYsNyBAQCBzdGF0aWMg
Y29uc3QgQmF0Y2hlZENhbGxiYWNrIFRlc3RPYmpDYWxsYmFja3NbXSA9IHsKICAgICB7IndpdGhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGUiLCBUZXN0T2JqSW50ZXJuYWw6Ondp
dGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVDYWxsYmFja30sCiAgICAgeyJ3
aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlT2JqRXhjZXB0aW9uIiwgVGVz
dE9iakludGVybmFsOjp3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlT2Jq
RXhjZXB0aW9uQ2FsbGJhY2t9LAogICAgIHsid2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRT
Y3JpcHRTdGF0ZVdpdGhTcGFjZXMiLCBUZXN0T2JqSW50ZXJuYWw6OndpdGhTY3JpcHRFeGVjdXRp
b25Db250ZXh0QW5kU2NyaXB0U3RhdGVXaXRoU3BhY2VzQ2FsbGJhY2t9LAorICAgIHsid2l0aFNj
cmlwdEFyZ3VtZW50c0FuZENhbGxTdGFjayIsIFRlc3RPYmpJbnRlcm5hbDo6d2l0aFNjcmlwdEFy
Z3VtZW50c0FuZENhbGxTdGFja0NhbGxiYWNrfSwKICAgICB7Im1ldGhvZFdpdGhPcHRpb25hbEFy
ZyIsIFRlc3RPYmpJbnRlcm5hbDo6bWV0aG9kV2l0aE9wdGlvbmFsQXJnQ2FsbGJhY2t9LAogICAg
IHsibWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kT3B0aW9uYWxBcmciLCBUZXN0T2JqSW50ZXJu
YWw6Om1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0FuZE9wdGlvbmFsQXJnQ2FsbGJhY2t9LAogICAg
IHsibWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kVHdvT3B0aW9uYWxBcmdzIiwgVGVzdE9iaklu
dGVybmFsOjptZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRUd29PcHRpb25hbEFyZ3NDYWxsYmFj
a30sCkBAIC0yMDA1LDEyICsyMDE4LDYgQEAgc3RhdGljIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5j
dGlvblRlbXBsYXRlPiBDb25maWd1cmVWOFRlc3RPYmpUZW1wbGF0ZSh2ODo6UGVyc2kKICAgICB2
ODo6SGFuZGxlPHY4OjpGdW5jdGlvblRlbXBsYXRlPiBtZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdz
QW5kVGhyb3dzQXJndlttZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzQXJnY10gPSB7
IHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uVGVtcGxhdGU+KCksIFY4VGVzdE9iajo6R2V0UmF3VGVt
cGxhdGUoKSB9OwogICAgIHY4OjpIYW5kbGU8djg6OlNpZ25hdHVyZT4gbWV0aG9kVGhhdFJlcXVp
cmVzQWxsQXJnc0FuZFRocm93c1NpZ25hdHVyZSA9IHY4OjpTaWduYXR1cmU6Ok5ldyhkZXNjLCBt
ZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzQXJnYywgbWV0aG9kVGhhdFJlcXVpcmVz
QWxsQXJnc0FuZFRocm93c0FyZ3YpOwogICAgIHByb3RvLT5TZXQodjg6OlN0cmluZzo6TmV3KCJt
ZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzIiksIHY4OjpGdW5jdGlvblRlbXBsYXRl
OjpOZXcoVGVzdE9iakludGVybmFsOjptZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dz
Q2FsbGJhY2ssIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpLCBtZXRob2RUaGF0UmVxdWlyZXNBbGxB
cmdzQW5kVGhyb3dzU2lnbmF0dXJlKSk7Ci0KLSAgICAvLyBDdXN0b20gU2lnbmF0dXJlICdjdXN0
b21BcmdzQW5kRXhjZXB0aW9uJwotICAgIGNvbnN0IGludCBjdXN0b21BcmdzQW5kRXhjZXB0aW9u
QXJnYyA9IDE7Ci0gICAgdjg6OkhhbmRsZTx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gY3VzdG9tQXJn
c0FuZEV4Y2VwdGlvbkFyZ3ZbY3VzdG9tQXJnc0FuZEV4Y2VwdGlvbkFyZ2NdID0geyBWOGxvZzo6
R2V0UmF3VGVtcGxhdGUoKSB9OwotICAgIHY4OjpIYW5kbGU8djg6OlNpZ25hdHVyZT4gY3VzdG9t
QXJnc0FuZEV4Y2VwdGlvblNpZ25hdHVyZSA9IHY4OjpTaWduYXR1cmU6Ok5ldyhkZXNjLCBjdXN0
b21BcmdzQW5kRXhjZXB0aW9uQXJnYywgY3VzdG9tQXJnc0FuZEV4Y2VwdGlvbkFyZ3YpOwotICAg
IHByb3RvLT5TZXQodjg6OlN0cmluZzo6TmV3KCJjdXN0b21BcmdzQW5kRXhjZXB0aW9uIiksIHY4
OjpGdW5jdGlvblRlbXBsYXRlOjpOZXcoVGVzdE9iakludGVybmFsOjpjdXN0b21BcmdzQW5kRXhj
ZXB0aW9uQ2FsbGJhY2ssIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpLCBjdXN0b21BcmdzQW5kRXhj
ZXB0aW9uU2lnbmF0dXJlKSk7CiAgICAgZGVzYy0+U2V0KHY4OjpTdHJpbmc6Ok5ldygiY2xhc3NN
ZXRob2QiKSwgdjg6OkZ1bmN0aW9uVGVtcGxhdGU6Ok5ldyhUZXN0T2JqSW50ZXJuYWw6OmNsYXNz
TWV0aG9kQ2FsbGJhY2ssIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpLCB2ODo6TG9jYWw8djg6OlNp
Z25hdHVyZT4oKSkpOwogICAgIGRlc2MtPlNldCh2ODo6U3RyaW5nOjpOZXcoImNsYXNzTWV0aG9k
V2l0aE9wdGlvbmFsIiksIHY4OjpGdW5jdGlvblRlbXBsYXRlOjpOZXcoVGVzdE9iakludGVybmFs
OjpjbGFzc01ldGhvZFdpdGhPcHRpb25hbENhbGxiYWNrLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4o
KSwgdjg6OkxvY2FsPHY4OjpTaWduYXR1cmU+KCkpKTsKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOENvbnNvbGVD
dXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q29uc29sZUN1
c3RvbS5jcHAKaW5kZXggNDBmZjJiMTQxZmQzMGZhNTBkZjY0MWE5ZGMyOGEwMDc5ODRiNzgxYi4u
N2FkZTg2ODhkN2IwNDFhMWZkMmU4MzQwY2YxYmViNTJkZTFmNzI0MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q29uc29sZUN1c3RvbS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q29uc29sZUN1c3RvbS5jcHAKQEAg
LTc5LDcgKzc5LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4Q29uc29sZTo6YXNzZXJ0Q2Fs
bGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKICAgICBSZWZQdHI8U2NyaXB0Q2FsbFN0
YWNrPiBjYWxsU3RhY2soY3JlYXRlU2NyaXB0Q2FsbFN0YWNrKFNjcmlwdENhbGxTdGFjazo6bWF4
Q2FsbFN0YWNrU2l6ZVRvQ2FwdHVyZSkpOwogICAgIGJvb2wgY29uZGl0aW9uID0gYXJnc1swXS0+
Qm9vbGVhblZhbHVlKCk7CiAgICAgUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4gc2NyaXB0QXJndW1l
bnRzKGNyZWF0ZVNjcmlwdEFyZ3VtZW50cyhhcmdzLCAxKSk7Ci0gICAgaW1wLT5hc3NlcnRDb25k
aXRpb24oY29uZGl0aW9uLCBzY3JpcHRBcmd1bWVudHMucmVsZWFzZSgpLCBjYWxsU3RhY2spOwor
ICAgIGltcC0+YXNzZXJ0Q29uZGl0aW9uKHNjcmlwdEFyZ3VtZW50cy5yZWxlYXNlKCksIGNhbGxT
dGFjaywgY29uZGl0aW9uKTsKICAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0NvbnNvbGUuY3BwCmluZGV4IDUxNWFiMzRkN2EwNmQ0YWMyMmI1M2Y0Y2Y4
ZDlmODRhZjFjNWY3NzEuLmZlMGYwYWY3YzdlZWRiNDk2YTYxMTJkZWFhOThkYTBiZjliNjQ4MTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9Db25zb2xlLmNwcApAQCAtMjM2LDcgKzIzNiw3IEBAIHZvaWQgQ29uc29s
ZTo6dHJhY2UoUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+IGFyZ3VtZW50cywgUGFzc1JlZlB0
cjxTY3JpcHRDYWxsCiAgICAgfQogfQogCi12b2lkIENvbnNvbGU6OmFzc2VydENvbmRpdGlvbihi
b29sIGNvbmRpdGlvbiwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+IGFyZ3VtZW50cywgUGFz
c1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKK3ZvaWQgQ29uc29sZTo6YXNzZXJ0
Q29uZGl0aW9uKFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMsIFBhc3NSZWZQ
dHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2ssIGJvb2wgY29uZGl0aW9uKQogewogICAgIGlm
IChjb25kaXRpb24pCiAgICAgICAgIHJldHVybjsKQEAgLTMwMyw3ICszMDMsNyBAQCB2b2lkIENv
bnNvbGU6OnRpbWUoY29uc3QgU3RyaW5nJiB0aXRsZSkKICNlbmRpZgogfQogCi12b2lkIENvbnNv
bGU6OnRpbWVFbmQoY29uc3QgU3RyaW5nJiB0aXRsZSwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVu
dHM+LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKQordm9pZCBDb25zb2xl
Ojp0aW1lRW5kKFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiwgUGFzc1JlZlB0cjxTY3JpcHRD
YWxsU3RhY2s+IGNhbGxTdGFjaywgY29uc3QgU3RyaW5nJiB0aXRsZSkKIHsKICNpZiBQTEFURk9S
TShDSFJPTUlVTSkKICAgICBUUkFDRV9FVkVOVF9DT1BZX0VORDAoIndlYmtpdCIsIHRpdGxlLnV0
ZjgoKS5kYXRhKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuaAppbmRleCBmMzBkMTkxYThjMWNkZmUxOWQz
OTU1ZjM3Y2JiYjM0MDBjMmM2ZGNkLi44OWUyOTU1ZDZjYjQ4NTUzNjQyMzc1N2Y5NmRiMGJkMjU1
YzM1YjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuaApAQCAtNjYsNyArNjYsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBkaXIoUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+LCBQYXNzUmVmUHRyPFNjcmlw
dENhbGxTdGFjaz4pOwogICAgIHZvaWQgZGlyeG1sKFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRz
PiwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKICAgICB2b2lkIHRyYWNlKFBhc3NSZWZQ
dHI8U2NyaXB0QXJndW1lbnRzPiwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKLSAgICB2
b2lkIGFzc2VydENvbmRpdGlvbihib29sIGNvbmRpdGlvbiwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1
bWVudHM+LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOworICAgIHZvaWQgYXNzZXJ0Q29u
ZGl0aW9uKFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiwgUGFzc1JlZlB0cjxTY3JpcHRDYWxs
U3RhY2s+LCBib29sIGNvbmRpdGlvbik7CiAgICAgdm9pZCBjb3VudChQYXNzUmVmUHRyPFNjcmlw
dEFyZ3VtZW50cz4sIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7CiAgICAgdm9pZCBtYXJr
VGltZWxpbmUoUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+LCBQYXNzUmVmUHRyPFNjcmlwdENh
bGxTdGFjaz4pOwogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQpAQCAtNzUsNyArNzUs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBwcm9maWxlRW5kKGNvbnN0IFN0cmluZyYsIFNjcmlwdFN0
YXRlKiwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKICNlbmRpZgogICAgIHZvaWQgdGlt
ZShjb25zdCBTdHJpbmcmKTsKLSAgICB2b2lkIHRpbWVFbmQoY29uc3QgU3RyaW5nJiwgUGFzc1Jl
ZlB0cjxTY3JpcHRBcmd1bWVudHM+LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOworICAg
IHZvaWQgdGltZUVuZChQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4sIFBhc3NSZWZQdHI8U2Ny
aXB0Q2FsbFN0YWNrPiwgY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCB0aW1lU3RhbXAoUGFzc1Jl
ZlB0cjxTY3JpcHRBcmd1bWVudHM+LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOwogICAg
IHZvaWQgZ3JvdXAoUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+LCBQYXNzUmVmUHRyPFNjcmlw
dENhbGxTdGFjaz4pOwogICAgIHZvaWQgZ3JvdXBDb2xsYXBzZWQoUGFzc1JlZlB0cjxTY3JpcHRB
cmd1bWVudHM+LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29s
ZS5pZGwKaW5kZXggNDQ0ZTE2MzY5NDZjOTM3NDg1NGMzMjFmMDkwM2E0M2M5MTE3MGFkYi4uMmRl
ZmUzMjEzYmQ0OGYwMjg4YmFmNDlkNDk1NWJiZTE2ZGE3OGMxMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9Db25zb2xlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNv
bGUuaWRsCkBAIC0zMywxNyArMzMsMTcgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIE9taXRD
b25zdHJ1Y3RvcgogICAgIF0gQ29uc29sZSB7CiAKLSAgICAgICAgW0N1c3RvbUFyZ3VtZW50SGFu
ZGxpbmddIHZvaWQgZGVidWcoKTsKLSAgICAgICAgW0N1c3RvbUFyZ3VtZW50SGFuZGxpbmddIHZv
aWQgZXJyb3IoKTsKLSAgICAgICAgW0N1c3RvbUFyZ3VtZW50SGFuZGxpbmddIHZvaWQgaW5mbygp
OwotICAgICAgICBbQ3VzdG9tQXJndW1lbnRIYW5kbGluZ10gdm9pZCBsb2coKTsKLSAgICAgICAg
W0N1c3RvbUFyZ3VtZW50SGFuZGxpbmddIHZvaWQgd2FybigpOwotICAgICAgICBbQ3VzdG9tQXJn
dW1lbnRIYW5kbGluZ10gdm9pZCBkaXIoKTsKLSAgICAgICAgW0N1c3RvbUFyZ3VtZW50SGFuZGxp
bmddIHZvaWQgZGlyeG1sKCk7Ci0gICAgICAgIFtWOEN1c3RvbSwgQ3VzdG9tQXJndW1lbnRIYW5k
bGluZ10gdm9pZCB0cmFjZSgpOwotICAgICAgICBbVjhDdXN0b20sIEN1c3RvbUFyZ3VtZW50SGFu
ZGxpbmcsIEltcGxlbWVudGVkQXM9YXNzZXJ0Q29uZGl0aW9uXSB2b2lkIGFzc2VydChpbiBib29s
ZWFuIGNvbmRpdGlvbik7Ci0gICAgICAgIFtDdXN0b21Bcmd1bWVudEhhbmRsaW5nXSB2b2lkIGNv
dW50KCk7Ci0gICAgICAgIFtDdXN0b21Bcmd1bWVudEhhbmRsaW5nXSB2b2lkIG1hcmtUaW1lbGlu
ZSgpOworICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0QXJndW1lbnRzfENhbGxTdGFja10gdm9pZCBk
ZWJ1ZygpOworICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0QXJndW1lbnRzfENhbGxTdGFja10gdm9p
ZCBlcnJvcigpOworICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0QXJndW1lbnRzfENhbGxTdGFja10g
dm9pZCBpbmZvKCk7CisgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRBcmd1bWVudHN8Q2FsbFN0YWNr
XSB2b2lkIGxvZygpOworICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0QXJndW1lbnRzfENhbGxTdGFj
a10gdm9pZCB3YXJuKCk7CisgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRBcmd1bWVudHN8Q2FsbFN0
YWNrXSB2b2lkIGRpcigpOworICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0QXJndW1lbnRzfENhbGxT
dGFja10gdm9pZCBkaXJ4bWwoKTsKKyAgICAgICAgW1Y4Q3VzdG9tLCBDYWxsV2l0aD1TY3JpcHRB
cmd1bWVudHN8Q2FsbFN0YWNrXSB2b2lkIHRyYWNlKCk7CisgICAgICAgIFtWOEN1c3RvbSwgQ2Fs
bFdpdGg9U2NyaXB0QXJndW1lbnRzfENhbGxTdGFjaywgSW1wbGVtZW50ZWRBcz1hc3NlcnRDb25k
aXRpb25dIHZvaWQgYXNzZXJ0KGluIGJvb2xlYW4gY29uZGl0aW9uKTsKKyAgICAgICAgW0NhbGxX
aXRoPVNjcmlwdEFyZ3VtZW50c3xDYWxsU3RhY2tdIHZvaWQgY291bnQoKTsKKyAgICAgICAgW0Nh
bGxXaXRoPVNjcmlwdEFyZ3VtZW50c3xDYWxsU3RhY2tdIHZvaWQgbWFya1RpbWVsaW5lKCk7CiAK
ICNpZiBkZWZpbmVkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAmJiBFTkFCTEVfSkFWQVND
UklQVF9ERUJVR0dFUgogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0N1c3RvbUdldHRlcl0g
QXJyYXkgcHJvZmlsZXM7CkBAIC01MiwxMCArNTIsMTAgQEAgbW9kdWxlIHdpbmRvdyB7CiAjZW5k
aWYKIAogICAgICAgICB2b2lkIHRpbWUoaW4gW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsIFRyZWF0
VW5kZWZpbmVkQXM9TnVsbFN0cmluZyxPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0
cmluZyB0aXRsZSk7Ci0gICAgICAgIFtDdXN0b21Bcmd1bWVudEhhbmRsaW5nXSB2b2lkIHRpbWVF
bmQoaW4gW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsIFRyZWF0VW5kZWZpbmVkQXM9TnVsbFN0cmlu
Z10gRE9NU3RyaW5nIHRpdGxlKTsKLSAgICAgICAgW0N1c3RvbUFyZ3VtZW50SGFuZGxpbmddIHZv
aWQgdGltZVN0YW1wKCk7Ci0gICAgICAgIFtDdXN0b21Bcmd1bWVudEhhbmRsaW5nXSB2b2lkIGdy
b3VwKCk7Ci0gICAgICAgIFtDdXN0b21Bcmd1bWVudEhhbmRsaW5nXSB2b2lkIGdyb3VwQ29sbGFw
c2VkKCk7CisgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRBcmd1bWVudHN8Q2FsbFN0YWNrXSB2b2lk
IHRpbWVFbmQoaW4gW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsIFRyZWF0VW5kZWZpbmVkQXM9TnVs
bFN0cmluZ10gRE9NU3RyaW5nIHRpdGxlKTsKKyAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEFyZ3Vt
ZW50c3xDYWxsU3RhY2tdIHZvaWQgdGltZVN0YW1wKCk7CisgICAgICAgIFtDYWxsV2l0aD1TY3Jp
cHRBcmd1bWVudHN8Q2FsbFN0YWNrXSB2b2lkIGdyb3VwKCk7CisgICAgICAgIFtDYWxsV2l0aD1T
Y3JpcHRBcmd1bWVudHN8Q2FsbFN0YWNrXSB2b2lkIGdyb3VwQ29sbGFwc2VkKCk7CiAgICAgICAg
IHZvaWQgZ3JvdXBFbmQoKTsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW1Y4Q3VzdG9t
R2V0dGVyXSBNZW1vcnlJbmZvIG1lbW9yeTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126481</attachid>
            <date>2012-02-10 02:08:55 -0800</date>
            <delta_ts>2012-02-10 04:38:46 -0800</delta_ts>
            <desc>fixed patch to see if gtk build passes</desc>
            <filename>bug-78327-20120210190854.patch</filename>
            <type>text/plain</type>
            <size>52367</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3MzgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmM4YzIxYWY5ZGNiZGY1
MGJjNjNiMjE5MWRlYTM3OTMzYTdhNDBkYi4uYmM3MzgwZTNjZTVhYTgwNTRlMWViMzM2MGI5Zjdh
M2MzNjBkZTQ2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDEyLTAyLTA5ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXBsYWNlIFtDdXN0
b21Bcmd1bWVudEhhbmRsaW5nXSB3aXRoIFtDYWxsV2l0aD1TY3JpcHRBcmd1bWVudHN8Q2FsbFN0
YWNrXQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzgz
MjcKKworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggcmVwbGFjZXMgW0N1c3RvbUFyZ3VtZW50SGFuZGxpbmddIHdpdGggW0NhbGxXaXRoPVNjcmlw
dEFyZ3VtZW50c3xDYWxsU3RhY2tdLAorICAgICAgICBhbmQgcmVtb3ZlcyBbQ3VzdG9tQXJndW1l
bnRIYW5kbGluZ10uCisKKyAgICAgICAgVGVzdDogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RP
YmouaWRsCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbTog
TW9kaWZpZWQgdG8gcmVwbGFjZQorICAgICAgICBbQ3VzdG9tQXJndW1lbnRIYW5kbGluZ10gd2l0
aCBbQ2FsbFdpdGg9U2NyaXB0QXJndW1lbnRzfENhbGxTdGFja10uCisgICAgICAgIChHZW5lcmF0
ZUNhbGxXaXRoKToKKyAgICAgICAgKEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNrKToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbTogRGl0dG8uCisgICAgICAgIChH
ZW5lcmF0ZUNhbGxXaXRoKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JHT2JqZWN0LnBtOiBEaXR0by4KKyAgICAgICAgKFNraXBGdW5jdGlvbik6CisgICAgICAgIChH
ZW5lcmF0ZUZ1bmN0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JDUFAucG06IFNpbXBseSByZW1vdmVkIFtDdXN0b21Bcmd1bWVudEhhbmRsaW5nXQorICAgICAg
ICBmcm9tIHRoZSBza2lwcGVkIGxpc3QuIEJ5IHRoaXMgZml4LCBDb2RlR2VuZXJhdG9yQ1BQLnBt
IHdpbGwgZ2VuZXJhdGUKKyAgICAgICAgbWVhbmluZ2xlc3MgY29kZSBmb3IgYXR0cmlidXRlcyBv
ciBtZXRob2RzIHdoaWNoIHdhcyBwcmV2aW91c2x5IG1hcmtlZCBhcworICAgICAgICBbQ3VzdG9t
QXJndW1lbnRIYW5kbGluZ10sIGJ1dCB0aGlzIGNoYW5nZSB3aWxsIGJlIGhhcm1sZXNzLgorICAg
ICAgICAoU2hvdWxkU2tpcFR5cGUpOgorCisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4
Q29uc29sZUN1c3RvbS5jcHA6IENoYW5nZWQgdGhlIGFyZ3VtZW50IG9yZGVyLgorICAgICAgICAo
V2ViQ29yZTo6VjhDb25zb2xlOjphc3NlcnRDYWxsYmFjayk6CisgICAgICAgICogcGFnZS9Db25z
b2xlLmNwcDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDb25zb2xlOjphc3NlcnRDb25kaXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6Q29uc29sZTo6dGltZUVuZCk6CisgICAgICAgICogcGFn
ZS9Db25zb2xlLmg6IERpdHRvLgorICAgICAgICAoQ29uc29sZSk6CisKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGw6IEFkZGVkIHRlc3QgY2FzZXMgZm9yIFtDYWxs
V2l0aD1TY3JpcHRBcmd1bWVudHN8Q2FsbFN0YWNrXS4KKworICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5jcHA6IFVwZGF0ZWQgcnVuLWJpbmRpbmdzLXRl
c3RzIHJlc3VsdHMuCisgICAgICAgIChXZWJET01UZXN0T2JqOjp3aXRoU2NyaXB0QXJndW1lbnRz
QW5kQ2FsbFN0YWNrQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkRPTVRlc3RPYmo6OnNldFdpdGhT
Y3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2tBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViRE9NVGVz
dE9iajo6d2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFjayk6CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmg6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5jcHA6CisgICAgICAgICh3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX3dpdGhfc2NyaXB0X2FyZ3VtZW50c19hbmRfY2FsbF9zdGFjayk6Cisg
ICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF93aXRoX3NjcmlwdF9hcmd1bWVudHNfYW5k
X2NhbGxfc3RhY2tfYXR0cmlidXRlKToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0
X3dpdGhfc2NyaXB0X2FyZ3VtZW50c19hbmRfY2FsbF9zdGFja19hdHRyaWJ1dGUpOgorICAgICAg
ICAod2Via2l0X2RvbV90ZXN0X29ial9nZXRfcHJvcGVydHkpOgorICAgICAgICAod2Via2l0X2Rv
bV90ZXN0X29ial9jbGFzc19pbml0KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
R09iamVjdC9XZWJLaXRET01UZXN0T2JqLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdE9ialdpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2tBdHRyaWJ1dGUpOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqV2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxT
dGFja0F0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbldpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2spOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaDoKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tOgorICAgICAgICAoLVtET01U
ZXN0T2JqIHdpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2tBdHRyaWJ1dGVdKToKKyAgICAg
ICAgKC1bRE9NVGVzdE9iaiBzZXRXaXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0cmli
dXRlOl0pOgorICAgICAgICAoLVtET01UZXN0T2JqIHdpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxs
U3RhY2tdKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpJbnRlcm5hbDo6d2l0aFNjcmlwdEFyZ3VtZW50
c0FuZENhbGxTdGFja0F0dHJpYnV0ZUF0dHJHZXR0ZXIpOgorICAgICAgICAoVGVzdE9iakludGVy
bmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpJbnRlcm5hbDo6d2l0aFNjcmlwdEFyZ3Vt
ZW50c0FuZENhbGxTdGFja0F0dHJpYnV0ZUF0dHJTZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6
VGVzdE9iakludGVybmFsOjp3aXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQ2FsbGJhY2sp
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDb25maWd1cmVWOFRlc3RP
YmpUZW1wbGF0ZSk6CisKIDIwMTItMDItMTAgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBnb29n
bGUuY29tPgogCiAgICAgICAgIFtRdF0gUkVHUkVTU0lPTihyMTA3MjQyKTogSXQgbWFkZSA1IGlu
c3BlY3RvciB0ZXN0cyBjcmFzaCBpbiBkZWJ1ZyBtb2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JDUFAucG0gYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JDUFAucG0KaW5kZXggMzI5MjhkMTljZjNl
NDNmNWNhYjA2YTU0MjhjMWU3NjhhYzY4Y2IxMy4uZGNlZjc0M2FkYTM0MThjMWViMmIyZjEzMzk3
OGQ3ZjRiNzY4MWM1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yQ1BQLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckNQUC5wbQpAQCAtMTkxLDExICsxOTEsOSBAQCBzdWIgU2hvdWxkU2tp
cFR5cGUKIHsKICAgICBteSAkdHlwZUluZm8gPSBzaGlmdDsKIAotICAgIHJldHVybiAxIGlmICR0
eXBlSW5mby0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tIn07Ci0KLSAg
ICByZXR1cm4gMSBpZiAkdHlwZUluZm8tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkN1c3RvbUFyZ3VtZW50SGFuZGxpbmcifQotICAgICAgICAgICAgIG9yICR0eXBlSW5mby0+c2ln
bmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tR2V0dGVyIn0KLSAgICAgICAgICAg
ICBvciAkdHlwZUluZm8tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNQUEN1c3Rv
bSJ9OworICAgIHJldHVybiAxIGlmICR0eXBlSW5mby0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiQ3VzdG9tIn0KKyAgICAgICAgICAgICAgICBvciAkdHlwZUluZm8tPnNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUdldHRlciJ9CisgICAgICAgICAgICAgICAg
b3IgJHR5cGVJbmZvLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDUFBDdXN0b20i
fTsKIAogICAgICMgRklYTUU6IFdlIGRvbid0IGdlbmVyYXRlIGJpbmRpbmdzIGZvciBTVkcgcmVs
YXRlZCBpbnRlcmZhY2VzIHlldAogICAgIHJldHVybiAxIGlmICR0eXBlSW5mby0+c2lnbmF0dXJl
LT5uYW1lID1+IC9nZXRTVkdEb2N1bWVudC87CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQppbmRleCA4YTZkZTE4MTg3
ZjFiZjMyYWY2MzM1OTExZTEwMzU4MTBkNDkwNDFiLi42N2M2YmVmZTM3N2E1ZTU5NGYyZjhlZmRk
NmY5MzJkZGNmZjIyNzFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0KQEAgLTE4OCwxMCArMTg4LDExIEBAIHN1
YiBTa2lwRnVuY3Rpb24gewogICAgIG15ICRwcmVmaXggPSBzaGlmdDsKIAogICAgIG15ICRmdW5j
dGlvbk5hbWUgPSAid2Via2l0X2RvbV8iIC4gJGRlY2FtZWxpemUgLiAiXyIgLiAkcHJlZml4IC4g
ZGVjYW1lbGl6ZSgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZSk7Ci0gICAgbXkgJGlzQ3VzdG9t
RnVuY3Rpb24gPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1
c3RvbSJ9IHx8Ci0gICAgICAgICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiQ3VzdG9tQXJndW1lbnRIYW5kbGluZyJ9OworICAgIG15ICRpc0N1c3RvbUZ1bmN0aW9u
ID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b20ifTsK
KyAgICBteSAkY2FsbFdpdGggPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkNhbGxXaXRoIn07CisgICAgbXkgJGlzVW5zdXBwb3J0ZWRDYWxsV2l0aCA9ICRjb2Rl
R2VuZXJhdG9yLT5FeHRlbmRlZEF0dHJpYnV0ZUNvbnRhaW5zKCRjYWxsV2l0aCwgIlNjcmlwdEFy
Z3VtZW50cyIpIHx8ICRjb2RlR2VuZXJhdG9yLT5FeHRlbmRlZEF0dHJpYnV0ZUNvbnRhaW5zKCRj
YWxsV2l0aCwgIkNhbGxTdGFjayIpOwogCi0gICAgaWYgKCRpc0N1c3RvbUZ1bmN0aW9uICYmCisg
ICAgaWYgKCgkaXNDdXN0b21GdW5jdGlvbiB8fCAkaXNVbnN1cHBvcnRlZENhbGxXaXRoKSAmJgog
ICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJ3ZWJraXRfZG9tX25vZGVfcmVwbGFjZV9jaGlsZCIg
JiYKICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAid2Via2l0X2RvbV9ub2RlX2luc2VydF9iZWZv
cmUiICYmCiAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgIndlYmtpdF9kb21fbm9kZV9yZW1vdmVf
Y2hpbGQiICYmCkBAIC03MzgsMTAgKzczOSw2IEBAIHN1YiBHZW5lcmF0ZUZ1bmN0aW9uIHsKIAog
ICAgIG15IEBjYWxsSW1wbFBhcmFtczsKIAotICAgICMgc2tpcCBzb21lIGN1c3RvbSBmdW5jdGlv
bnMgZm9yIG5vdwotICAgIG15ICRpc0N1c3RvbUZ1bmN0aW9uID0gJGZ1bmN0aW9uLT5zaWduYXR1
cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b20ifSB8fAotICAgICAgICAgICAgICAgICAg
ICAgICAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUFy
Z3VtZW50SGFuZGxpbmcifTsKLQogICAgIGZvcmVhY2ggbXkgJHBhcmFtIChAeyRmdW5jdGlvbi0+
cGFyYW1ldGVyc30pIHsKICAgICAgICAgbXkgJHBhcmFtSURMVHlwZSA9ICRwYXJhbS0+dHlwZTsK
ICAgICAgICAgaWYgKCRwYXJhbUlETFR5cGUgZXEgIkV2ZW50TGlzdGVuZXIiIHx8ICRwYXJhbUlE
TFR5cGUgZXEgIk1lZGlhUXVlcnlMaXN0TGlzdGVuZXIiKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IGNiYzE1M2FmZGQ4
ZTM4ZTVhNjg4NzAxNGRkMWM5YTkzNGNjMWZkNzguLjRiZjgzMDgwN2UyN2Y4MWE4N2EwYmY0NmZj
N2ZmZjdhMjk2NTJiZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC0yMzMyLDYgKzIzMzIsNyBAQCBzdWIgR2VuZXJhdGVD
YWxsV2l0aAogICAgIHJldHVybiAoKSB1bmxlc3MgJGNhbGxXaXRoOwogICAgIG15ICRvdXRwdXRB
cnJheSA9IHNoaWZ0OwogICAgIG15ICRyZXR1cm5WYWx1ZSA9IHNoaWZ0OworICAgIG15ICRmdW5j
dGlvbiA9IHNoaWZ0OwogCiAgICAgbXkgQGNhbGxXaXRoQXJnczsKICAgICBpZiAoJGNvZGVHZW5l
cmF0b3ItPkV4dGVuZGVkQXR0cmlidXRlQ29udGFpbnMoJGNhbGxXaXRoLCAiU2NyaXB0U3RhdGUi
KSkgewpAQCAtMjM0Myw2ICsyMzQ0LDE3IEBAIHN1YiBHZW5lcmF0ZUNhbGxXaXRoCiAgICAgICAg
IHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgcmV0dXJuIiAuICgkcmV0dXJuVmFsdWUgPyAi
ICIgLiAkcmV0dXJuVmFsdWUgOiAiIikgLiAiO1xuIik7CiAgICAgICAgIHB1c2goQGNhbGxXaXRo
QXJncywgInNjcmlwdENvbnRleHQiKTsKICAgICB9CisgICAgaWYgKCRmdW5jdGlvbiBhbmQgJGNv
ZGVHZW5lcmF0b3ItPkV4dGVuZGVkQXR0cmlidXRlQ29udGFpbnMoJGNhbGxXaXRoLCAiU2NyaXB0
QXJndW1lbnRzIikpIHsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIFJlZlB0cjxT
Y3JpcHRBcmd1bWVudHM+IHNjcmlwdEFyZ3VtZW50cyhjcmVhdGVTY3JpcHRBcmd1bWVudHMoZXhl
YywgIiAuIEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSAuICIpKTtcbiIpOworICAgICAgICAkaW1w
bEluY2x1ZGVzeyJTY3JpcHRBcmd1bWVudHMuaCJ9ID0gMTsKKyAgICAgICAgcHVzaChAY2FsbFdp
dGhBcmdzLCAic2NyaXB0QXJndW1lbnRzIik7CisgICAgfQorICAgIGlmICgkY29kZUdlbmVyYXRv
ci0+RXh0ZW5kZWRBdHRyaWJ1dGVDb250YWlucygkY2FsbFdpdGgsICJDYWxsU3RhY2siKSkgewor
ICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4g
Y2FsbFN0YWNrKGNyZWF0ZVNjcmlwdENhbGxTdGFja0Zvckluc3BlY3RvcihleGVjKSk7XG4iKTsK
KyAgICAgICAgJGltcGxJbmNsdWRlc3siU2NyaXB0Q2FsbFN0YWNrLmgifSA9IDE7CisgICAgICAg
ICRpbXBsSW5jbHVkZXN7IlNjcmlwdENhbGxTdGFja0ZhY3RvcnkuaCJ9ID0gMTsKKyAgICAgICAg
cHVzaChAY2FsbFdpdGhBcmdzLCAiY2FsbFN0YWNrIik7CisgICAgfQogICAgIHJldHVybiBAY2Fs
bFdpdGhBcmdzOwogfQogCkBAIC0yMzk3LDE2ICsyNDA5LDggQEAgc3ViIEdlbmVyYXRlUGFyYW1l
dGVyc0NoZWNrCiAgICAgICAgICRmdW5jdGlvbk5hbWUgPSAiaW1wbC0+JHtmdW5jdGlvbkltcGxl
bWVudGF0aW9uTmFtZX0iOwogICAgIH0KIAotICAgIGlmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUFyZ3VtZW50SGFuZGxpbmcifSBhbmQgISRmdW5j
dGlvbi0+aXNTdGF0aWMpIHsKLSAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIFJlZlB0
cjxTY3JpcHRBcmd1bWVudHM+IHNjcmlwdEFyZ3VtZW50cyhjcmVhdGVTY3JpcHRBcmd1bWVudHMo
ZXhlYywgJG51bVBhcmFtZXRlcnMpKTtcbiIpOwotICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXks
ICIgICAgUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKGNyZWF0ZVNjcmlwdENhbGxT
dGFja0Zvckluc3BlY3RvcihleGVjKSk7XG4iKTsKLSAgICAgICAgJGltcGxJbmNsdWRlc3siU2Ny
aXB0QXJndW1lbnRzLmgifSA9IDE7Ci0gICAgICAgICRpbXBsSW5jbHVkZXN7IlNjcmlwdENhbGxT
dGFjay5oIn0gPSAxOwotICAgICAgICAkaW1wbEluY2x1ZGVzeyJTY3JpcHRDYWxsU3RhY2tGYWN0
b3J5LmgifSA9IDE7Ci0gICAgfQotCiAgICAgaWYgKCEkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnN0cnVjdG9yIn0pIHsKLSAgICAgICAgcHVzaChAYXJndW1l
bnRzLCBHZW5lcmF0ZUNhbGxXaXRoKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiQ2FsbFdpdGgifSwgXEAkb3V0cHV0QXJyYXksICJKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSkiKSk7CisgICAgICAgIHB1c2goQGFyZ3VtZW50cywgR2VuZXJhdGVDYWxsV2l0
aCgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNhbGxXaXRoIn0s
IFxAJG91dHB1dEFycmF5LCAiSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpIiwgJGZ1bmN0
aW9uKSk7CiAgICAgfQogCiAgICAgJGltcGxJbmNsdWRlc3siRXhjZXB0aW9uQ29kZS5oIn0gPSAx
OwpAQCAtMjQyNSw5ICsyNDI5LDYgQEAgc3ViIEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNrCiAgICAg
ICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgaWYgKGFyZ3NDb3VudCA8PSAkYXJnc0lu
ZGV4KSB7XG4iKTsKIAogICAgICAgICAgICAgbXkgQG9wdGlvbmFsQ2FsbGJhY2tBcmd1bWVudHMg
PSBAYXJndW1lbnRzOwotICAgICAgICAgICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tQXJndW1lbnRIYW5kbGluZyJ9KSB7Ci0gICAgICAgICAg
ICAgICAgcHVzaCBAb3B0aW9uYWxDYWxsYmFja0FyZ3VtZW50cywgInNjcmlwdEFyZ3VtZW50cywg
Y2FsbFN0YWNrIjsKLSAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmIChAeyRmdW5jdGlvbi0+
cmFpc2VzRXhjZXB0aW9uc30pIHsKICAgICAgICAgICAgICAgICBwdXNoIEBvcHRpb25hbENhbGxi
YWNrQXJndW1lbnRzLCAiZWMiOwogICAgICAgICAgICAgfQpAQCAtMjUyMiw5ICsyNTIzLDYgQEAg
c3ViIEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNrCiAgICAgICAgICRhcmdzSW5kZXgrKzsKICAgICB9
CiAKLSAgICBpZiAoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJD
dXN0b21Bcmd1bWVudEhhbmRsaW5nIn0pIHsKLSAgICAgICAgcHVzaCBAYXJndW1lbnRzLCAic2Ny
aXB0QXJndW1lbnRzLCBjYWxsU3RhY2siOwotICAgIH0KICAgICBpZiAoQHskZnVuY3Rpb24tPnJh
aXNlc0V4Y2VwdGlvbnN9KSB7CiAgICAgICAgIHB1c2ggQGFyZ3VtZW50cywgImVjIjsKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JWOC5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4
LnBtCmluZGV4IDMzZDM5NmZmZmRkYjA2YmVhMzY0NjMwMGFmMTg0MzFhNDIxMzBiYTMuLjdkYTUx
NmJiYzZmZmJhNzYxOTNiYzY3NzM1NGU5NGU0YThiMDJkYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCkBAIC0xMzYxLDggKzEz
NjEsNiBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+ICR7bmFtZX1DYWxsYmFjayhjb25z
dCB2ODo6QXJndW1lbnRzJiBhcmdzKQogICAgIElOQ19TVEFUUyhcIkRPTS4kaW1wbENsYXNzTmFt
ZS4kbmFtZVwiKTsKIEVORAogCi0gICAgbXkgJG51bVBhcmFtZXRlcnMgPSBAeyRmdW5jdGlvbi0+
cGFyYW1ldGVyc307Ci0KICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCBHZW5lcmF0ZUFyZ3Vt
ZW50c0NvdW50Q2hlY2soJGZ1bmN0aW9uLCAkZGF0YU5vZGUpKTsKIAogICAgIG15ICgkc3ZnUHJv
cGVydHlUeXBlLCAkc3ZnTGlzdFByb3BlcnR5VHlwZSwgJHN2Z05hdGl2ZVR5cGUpID0gR2V0U1ZH
UHJvcGVydHlUeXBlcygkaW1wbENsYXNzTmFtZSk7CkBAIC0xNDE3LDE3ICsxNDE1LDYgQEAgRU5E
CiAgICAgICAgICMgcmlnaHQgYmVmb3JlIHRoZSBsYWJlbCAnZmFpbDonLgogICAgIH0KIAotICAg
IGlmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUFy
Z3VtZW50SGFuZGxpbmcifSkgewotICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCA8PEVO
RCk7Ci0gICAgUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4gc2NyaXB0QXJndW1lbnRzKGNyZWF0ZVNj
cmlwdEFyZ3VtZW50cyhhcmdzLCAkbnVtUGFyYW1ldGVycykpOwotICAgIFJlZlB0cjxTY3JpcHRD
YWxsU3RhY2s+IGNhbGxTdGFjayhjcmVhdGVTY3JpcHRDYWxsU3RhY2tGb3JJbnNwZWN0b3IoKSk7
Ci0gICAgaWYgKCFjYWxsU3RhY2spCi0gICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7Ci1F
TkQKLSAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIlNjcmlwdEFyZ3VtZW50cy5oIik7Ci0gICAg
ICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJTY3JpcHRDYWxsU3RhY2suaCIpOwotICAgICAgICBBZGRU
b0ltcGxJbmNsdWRlcygiU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oIik7Ci0gICAgfQogICAgIGlm
ICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNoZWNrQWNjZXNz
VG9Ob2RlIn0pIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICBpZiAoIVY4
QmluZGluZ1NlY3VyaXR5OjpzaG91bGRBbGxvd0FjY2Vzc1RvTm9kZShWOEJpbmRpbmdTdGF0ZTo6
T25seSgpLCBpbXAtPiIgLiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZSAuICIoZWMpKSlcbiIp
OwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgICAgICByZXR1cm4gdjg6Okhh
bmRsZTx2ODo6VmFsdWU+KCk7XG4iKTsKQEAgLTE0NTksNiArMTQ0Niw3IEBAIHN1YiBHZW5lcmF0
ZUNhbGxXaXRoCiAgICAgbXkgJGluZGVudCA9IHNoaWZ0OwogICAgIG15ICRyZXR1cm5Wb2lkID0g
c2hpZnQ7CiAgICAgbXkgJGVtcHR5Q29udGV4dCA9IHNoaWZ0OworICAgIG15ICRmdW5jdGlvbiA9
IHNoaWZ0OwogCiAgICAgbXkgQGNhbGxXaXRoQXJnczsKICAgICBpZiAoJGNvZGVHZW5lcmF0b3It
PkV4dGVuZGVkQXR0cmlidXRlQ29udGFpbnMoJGNhbGxXaXRoLCAiU2NyaXB0U3RhdGUiKSkgewpA
QCAtMTQ3OCw2ICsxNDY2LDE5IEBAIHN1YiBHZW5lcmF0ZUNhbGxXaXRoCiAgICAgICAgIHB1c2go
QCRvdXRwdXRBcnJheSwgJGluZGVudCAuICIgICAgcmV0dXJuIiAuICgkcmV0dXJuVm9pZCA/ICIi
IDogIiB2ODo6VW5kZWZpbmVkKCkiKSAuICI7XG4iKTsKICAgICAgICAgcHVzaChAY2FsbFdpdGhB
cmdzLCAic2NyaXB0Q29udGV4dCIpOwogICAgIH0KKyAgICBpZiAoJGZ1bmN0aW9uIGFuZCAkY29k
ZUdlbmVyYXRvci0+RXh0ZW5kZWRBdHRyaWJ1dGVDb250YWlucygkY2FsbFdpdGgsICJTY3JpcHRB
cmd1bWVudHMiKSkgeworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRpbmRlbnQgLiAiUmVm
UHRyPFNjcmlwdEFyZ3VtZW50cz4gc2NyaXB0QXJndW1lbnRzKGNyZWF0ZVNjcmlwdEFyZ3VtZW50
cyhhcmdzLCAiIC4gQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9IC4gIikpO1xuIik7CisgICAgICAg
IHB1c2goQGNhbGxXaXRoQXJncywgInNjcmlwdEFyZ3VtZW50cyIpOworICAgICAgICBBZGRUb0lt
cGxJbmNsdWRlcygiU2NyaXB0QXJndW1lbnRzLmgiKTsKKyAgICB9CisgICAgaWYgKCRjb2RlR2Vu
ZXJhdG9yLT5FeHRlbmRlZEF0dHJpYnV0ZUNvbnRhaW5zKCRjYWxsV2l0aCwgIkNhbGxTdGFjayIp
KSB7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgJGluZGVudCAuICJSZWZQdHI8U2NyaXB0
Q2FsbFN0YWNrPiBjYWxsU3RhY2soY3JlYXRlU2NyaXB0Q2FsbFN0YWNrRm9ySW5zcGVjdG9yKCkp
O1xuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgJGluZGVudCAuICJpZiAoIWNhbGxT
dGFjaylcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRpbmRlbnQgLiAiICAgIHJl
dHVybiB2ODo6VW5kZWZpbmVkKCk7XG4iKTsKKyAgICAgICAgcHVzaChAY2FsbFdpdGhBcmdzLCAi
Y2FsbFN0YWNrIik7CisgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJTY3JpcHRDYWxsU3RhY2su
aCIpOworICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5o
Iik7CisgICAgfQogICAgIHJldHVybiBAY2FsbFdpdGhBcmdzOwogfQogCkBAIC0zMTk2LDcgKzMx
OTcsNyBAQCBzdWIgR2VuZXJhdGVGdW5jdGlvbkNhbGxTdHJpbmcoKQogCiAgICAgbXkgJGNhbGxX
aXRoID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDYWxsV2l0
aCJ9OwogICAgIG15IEBjYWxsV2l0aE91dHB1dCA9ICgpOwotICAgIG15IEBjYWxsV2l0aEFyZ3Mg
PSBHZW5lcmF0ZUNhbGxXaXRoKCRjYWxsV2l0aCwgXEBjYWxsV2l0aE91dHB1dCwgJGluZGVudCwg
MCwgMSk7CisgICAgbXkgQGNhbGxXaXRoQXJncyA9IEdlbmVyYXRlQ2FsbFdpdGgoJGNhbGxXaXRo
LCBcQGNhbGxXaXRoT3V0cHV0LCAkaW5kZW50LCAwLCAxLCAkZnVuY3Rpb24pOwogICAgICRyZXN1
bHQgLj0gam9pbigiIiwgQGNhbGxXaXRoT3V0cHV0KTsKICAgICBwdXNoKEBhcmd1bWVudHMsIEBj
YWxsV2l0aEFyZ3MpOwogICAgICRpbmRleCArPSBAY2FsbFdpdGhBcmdzOwpAQCAtMzIyNSwxMCAr
MzIyNiw2IEBAIHN1YiBHZW5lcmF0ZUZ1bmN0aW9uQ2FsbFN0cmluZygpCiAgICAgICAgICRpbmRl
eCsrOwogICAgIH0KIAotICAgIGlmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IkN1c3RvbUFyZ3VtZW50SGFuZGxpbmcifSkgewotICAgICAgICBwdXNoIEBhcmd1
bWVudHMsICJzY3JpcHRBcmd1bWVudHMsIGNhbGxTdGFjayI7Ci0gICAgfQotCiAgICAgaWYgKEB7
JGZ1bmN0aW9uLT5yYWlzZXNFeGNlcHRpb25zfSkgewogICAgICAgICBwdXNoIEBhcmd1bWVudHMs
ICJlYyI7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5jcHAKaW5kZXggNGY5MjZkZjI2ZmVhZjdkMTZl
OTJmMWU1YTJkNWE0ZjQxYTUyOGM3Yy4uMWM3MmU0ZjBiNWNiMWI5NDFlMDExZmFjN2YxZGQ3OWVj
YzkwMDM5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0NQUC9XZWJET01UZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouY3BwCkBAIC02MTQsNiArNjE0LDIyIEBAIHZvaWQg
V2ViRE9NVGVzdE9iajo6c2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0
ZVdpdGhTcGFjZXNBdHRyaWJ1CiAgICAgaW1wbCgpLT5zZXRXaXRoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dEFuZFNjcmlwdFN0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZSh0b1dlYkNvcmUobmV3V2l0aFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGUpKTsK
IH0KIAorV2ViRE9NVGVzdE9iaiBXZWJET01UZXN0T2JqOjp3aXRoU2NyaXB0QXJndW1lbnRzQW5k
Q2FsbFN0YWNrQXR0cmlidXRlKCkgY29uc3QKK3sKKyAgICBpZiAoIWltcGwoKSkKKyAgICAgICAg
cmV0dXJuIFdlYkRPTVRlc3RPYmooKTsKKworICAgIHJldHVybiB0b1dlYktpdChXVEY6OmdldFB0
cihpbXBsKCktPndpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2tBdHRyaWJ1dGUoKSkpOwor
fQorCit2b2lkIFdlYkRPTVRlc3RPYmo6OnNldFdpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3Rh
Y2tBdHRyaWJ1dGUoY29uc3QgV2ViRE9NVGVzdE9iaiYgbmV3V2l0aFNjcmlwdEFyZ3VtZW50c0Fu
ZENhbGxTdGFja0F0dHJpYnV0ZSkKK3sKKyAgICBpZiAoIWltcGwoKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgaW1wbCgpLT5zZXRXaXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0cmli
dXRlKHRvV2ViQ29yZShuZXdXaXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0cmlidXRl
KSk7Cit9CisKIFdlYkRPTVN0cmluZyBXZWJET01UZXN0T2JqOjpzY3JpcHRTdHJpbmdBdHRyKCkg
Y29uc3QKIHsKICAgICBpZiAoIWltcGwoKSkKQEAgLTk5OSw2ICsxMDE1LDE0IEBAIFdlYkRPTVRl
c3RPYmogV2ViRE9NVGVzdE9iajo6d2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRT
dGF0ZVdpdGhTcGFjZXMoCiAgICAgcmV0dXJuIHRvV2ViS2l0KFdURjo6Z2V0UHRyKGltcGwoKS0+
d2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFjZXMoKSkpOwog
fQogCit2b2lkIFdlYkRPTVRlc3RPYmo6OndpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2so
KQoreworICAgIGlmICghaW1wbCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpbXBsKCktPndp
dGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2soKTsKK30KKwogdm9pZCBXZWJET01UZXN0T2Jq
OjptZXRob2RXaXRoT3B0aW9uYWxBcmcoaW50IG9wdCkKIHsKICAgICBpZiAoIWltcGwoKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9N
VGVzdE9iai5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJE
T01UZXN0T2JqLmgKaW5kZXggNzQzOGM1ZGM0ZDEzNzljNTU5NjIyYmIzNzNkMzY4MGQ5NDJlZjFl
Ny4uZWJhY2JjMjQxNzI3ZDY4ZmYwYzI1MTBhOTdiZDg2MzA2MjIwNGQzNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0
T2JqLmgKQEAgLTEzNCw2ICsxMzQsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRXaXRoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKGNvbnN0IFdlYkRP
TVRlc3RPYmomKTsKICAgICBXZWJET01UZXN0T2JqIHdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0
QW5kU2NyaXB0U3RhdGVXaXRoU3BhY2VzQXR0cmlidXRlKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRX
aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlV2l0aFNwYWNlc0F0dHJpYnV0
ZShjb25zdCBXZWJET01UZXN0T2JqJik7CisgICAgV2ViRE9NVGVzdE9iaiB3aXRoU2NyaXB0QXJn
dW1lbnRzQW5kQ2FsbFN0YWNrQXR0cmlidXRlKCkgY29uc3Q7CisgICAgdm9pZCBzZXRXaXRoU2Ny
aXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0cmlidXRlKGNvbnN0IFdlYkRPTVRlc3RPYmomKTsK
ICAgICBXZWJET01TdHJpbmcgc2NyaXB0U3RyaW5nQXR0cigpIGNvbnN0OwogI2lmIEVOQUJMRShD
b25kaXRpb24xKQogICAgIGludCBjb25kaXRpb25hbEF0dHIxKCkgY29uc3Q7CkBAIC0xOTIsNiAr
MTk0LDcgQEAgcHVibGljOgogICAgIHZvaWQgd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRT
Y3JpcHRTdGF0ZSgpOwogICAgIFdlYkRPTVRlc3RPYmogd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRBbmRTY3JpcHRTdGF0ZU9iakV4Y2VwdGlvbigpOwogICAgIFdlYkRPTVRlc3RPYmogd2l0aFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFjZXMoKTsKKyAgICB2b2lk
IHdpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2soKTsKICAgICB2b2lkIG1ldGhvZFdpdGhP
cHRpb25hbEFyZyhpbnQgb3B0KTsKICAgICB2b2lkIG1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0Fu
ZE9wdGlvbmFsQXJnKGludCBub25PcHQsIGludCBvcHQpOwogICAgIHZvaWQgbWV0aG9kV2l0aE5v
bk9wdGlvbmFsQXJnQW5kVHdvT3B0aW9uYWxBcmdzKGludCBub25PcHQsIGludCBvcHQxLCBpbnQg
b3B0Mik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
R09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3BwCmluZGV4IGRmMmY0OTM3MjEy
Y2UxNThmNjg1YzVkNzAyZWYzMGFhNjVlYTkzZTMuLjUyOWRhOTE4NzM5YTlmZTMxOGEyZTkxMTA2
NDcxMjYyNzJkYWEzZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3BwCkBAIC0x
NTcwLDYgKzE1NzAsNyBAQCBlbnVtIHsKICAgICBQUk9QX1dJVEhfU0NSSVBUX0VYRUNVVElPTl9D
T05URVhUX0FORF9TQ1JJUFRfU1RBVEVfQVRUUklCVVRFLAogICAgIFBST1BfV0lUSF9TQ1JJUFRf
RVhFQ1VUSU9OX0NPTlRFWFRfQU5EX1NDUklQVF9TVEFURV9BVFRSSUJVVEVfUkFJU0VTLAogICAg
IFBST1BfV0lUSF9TQ1JJUFRfRVhFQ1VUSU9OX0NPTlRFWFRfQU5EX1NDUklQVF9TVEFURV9XSVRI
X1NQQUNFU19BVFRSSUJVVEUsCisgICAgUFJPUF9XSVRIX1NDUklQVF9BUkdVTUVOVFNfQU5EX0NB
TExfU1RBQ0tfQVRUUklCVVRFLAogICAgIFBST1BfU0NSSVBUX1NUUklOR19BVFRSLAogI2lmIEVO
QUJMRShDb25kaXRpb24xKQogICAgIFBST1BfQ09ORElUSU9OQUxfQVRUUjEsCkBAIC0xOTI5LDYg
KzE5MzAsMTIgQEAgc3RhdGljIHZvaWQgd2Via2l0X2RvbV90ZXN0X29ial9nZXRfcHJvcGVydHko
R09iamVjdCogb2JqZWN0LCBndWludCBwcm9wX2lkLCBHVmEKICAgICAgICAgZ192YWx1ZV9zZXRf
b2JqZWN0KHZhbHVlLCBXZWJLaXQ6OmtpdChwdHIuZ2V0KCkpKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgfQorICAgIGNhc2UgUFJPUF9XSVRIX1NDUklQVF9BUkdVTUVOVFNfQU5EX0NBTExfU1RBQ0tf
QVRUUklCVVRFOgorICAgIHsKKyAgICAgICAgUmVmUHRyPFdlYkNvcmU6OlRlc3RPYmo+IHB0ciA9
IGNvcmVTZWxmLT53aXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0cmlidXRlKCk7Cisg
ICAgICAgIGdfdmFsdWVfc2V0X29iamVjdCh2YWx1ZSwgV2ViS2l0OjpraXQocHRyLmdldCgpKSk7
CisgICAgICAgIGJyZWFrOworICAgIH0KICAgICBjYXNlIFBST1BfU0NSSVBUX1NUUklOR19BVFRS
OgogICAgIHsKICAgICAgICAgZ192YWx1ZV90YWtlX3N0cmluZyh2YWx1ZSwgY29udmVydFRvVVRG
OFN0cmluZyhjb3JlU2VsZi0+c2NyaXB0U3RyaW5nQXR0cigpKSk7CkBAIC0yMjY0LDYgKzIyNzEs
MTMgQEAgR19NQVhMT05HLCAvKiBtYXggKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1RZUEVfRE9NX1RFU1RfT0JKLCAv
KiBnb2JqZWN0IHR5cGUgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURXUklURSkpOwogICAgIGdfb2Jq
ZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdENsYXNzLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgUFJPUF9XSVRIX1NDUklQVF9BUkdVTUVOVFNfQU5EX0NBTExf
U1RBQ0tfQVRUUklCVVRFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19w
YXJhbV9zcGVjX29iamVjdCgid2l0aC1zY3JpcHQtYXJndW1lbnRzLWFuZC1jYWxsLXN0YWNrLWF0
dHJpYnV0ZSIsIC8qIG5hbWUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgInRlc3Rfb2JqX3dpdGgtc2NyaXB0LWFyZ3VtZW50cy1h
bmQtY2FsbC1zdGFjay1hdHRyaWJ1dGUiLCAvKiBzaG9ydCBkZXNjcmlwdGlvbiAqLworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVh
ZC13cml0ZSAgV2ViS2l0RE9NVGVzdE9iaiogVGVzdE9iai53aXRoLXNjcmlwdC1hcmd1bWVudHMt
YW5kLWNhbGwtc3RhY2stYXR0cmlidXRlIiwgLyogbG9uZ2VyIC0gY291bGQgZG8gd2l0aCBzb21l
IGV4dHJhIGRvYyBzdHVmZiBoZXJlICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9UWVBFX0RPTV9URVNUX09CSiwgLyog
Z29iamVjdCB0eXBlICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEV1JJVEUpKTsKKyAgICBnX29iamVj
dF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdvYmplY3RDbGFzcywKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFBST1BfU0NSSVBUX1NUUklOR19BVFRSLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZygic2NyaXB0LXN0cmlu
Zy1hdHRyIiwgLyogbmFtZSAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAidGVzdF9vYmpfc2NyaXB0LXN0cmluZy1hdHRyIiwgLyog
c2hvcnQgZGVzY3JpcHRpb24gKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKaW5kZXggYTg2ZDMwZWU3ZTVhMTVkYmZiOTY3
ZWI0YmQ0MjE1MGY2OTJmOGEyOS4uZmQ5MThiMDEwYThhNGM3Nzc4YWE0OGQ0OGZiYzFmZDhjMWJk
MjJkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE9iai5jcHAKQEAgLTQyLDcgKzQyLDYgQEAKICNpbmNsdWRlICJKU2QuaCIKICNp
bmNsdWRlICJKU2UuaCIKICNpbmNsdWRlICJKU2ludC5oIgotI2luY2x1ZGUgIkpTbG9nLmgiCiAj
aW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUgIlNWR0RvY3VtZW50LmgiCiAjaW5jbHVkZSAiU1ZH
U3RhdGljUHJvcGVydHlUZWFyT2ZmLmgiCkBAIC0xMTIsNiArMTExLDcgQEAgc3RhdGljIGNvbnN0
IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialRhYmxlVmFsdWVzW10gPQogICAgIHsgIndpdGhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGUiLCBEb250RGVsZXRlLCAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9i
aldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGUpLCAoaW50
cHRyX3Qpc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0
ZUF0dHJpYnV0ZSwgTm9JbnRyaW5zaWMgfSwKICAgICB7ICJ3aXRoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzIiwgRG9udERlbGV0ZSwgKGludHB0cl90
KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpXaXRoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKSwgKGludHB0
cl90KXNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVB
dHRyaWJ1dGVSYWlzZXMsIE5vSW50cmluc2ljIH0sCiAgICAgeyAid2l0aFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGUiLCBEb250RGVsZXRlLCAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9i
aldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVXaXRoU3BhY2VzQXR0cmli
dXRlKSwgKGludHB0cl90KXNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5k
U2NyaXB0U3RhdGVXaXRoU3BhY2VzQXR0cmlidXRlLCBOb0ludHJpbnNpYyB9LAorICAgIHsgIndp
dGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2tBdHRyaWJ1dGUiLCBEb250RGVsZXRlLCAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialdp
dGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2tBdHRyaWJ1dGUpLCAoaW50cHRyX3Qpc2V0SlNU
ZXN0T2JqV2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFja0F0dHJpYnV0ZSwgTm9JbnRyaW5z
aWMgfSwKICAgICB7ICJzY3JpcHRTdHJpbmdBdHRyIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9i
alNjcmlwdFN0cmluZ0F0dHIpLCAoaW50cHRyX3QpMCwgTm9JbnRyaW5zaWMgfSwKICNpZiBFTkFC
TEUoQ29uZGl0aW9uMSkKICAgICB7ICJjb25kaXRpb25hbEF0dHIxIiwgRG9udERlbGV0ZSwgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpD
b25kaXRpb25hbEF0dHIxKSwgKGludHB0cl90KXNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjEs
IE5vSW50cmluc2ljIH0sCkBAIC0yNjEsNyArMjYxLDYgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJs
ZVZhbHVlIEpTVGVzdE9ialByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQogICAgIHsgIm1ldGhvZFdp
dGhFeGNlcHRpb24iLCBEb250RGVsZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRp
Y19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhFeGNlcHRpb24pLCAoaW50cHRyX3QpMCwgTm9JbnRyaW5zaWMgfSwKICAgICB7ICJjdXN0b21N
ZXRob2QiLCBEb250RGVsZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0
PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkN1c3RvbU1ldGhvZCks
IChpbnRwdHJfdCkwLCBOb0ludHJpbnNpYyB9LAogICAgIHsgImN1c3RvbU1ldGhvZFdpdGhBcmdz
IiwgRG9udERlbGV0ZSB8IEpTQzo6RnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRp
dmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DdXN0b21NZXRob2RXaXRoQXJn
cyksIChpbnRwdHJfdCkzLCBOb0ludHJpbnNpYyB9LAotICAgIHsgImN1c3RvbUFyZ3NBbmRFeGNl
cHRpb24iLCBEb250RGVsZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0
PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkN1c3RvbUFyZ3NBbmRF
eGNlcHRpb24pLCAoaW50cHRyX3QpMSwgTm9JbnRyaW5zaWMgfSwKICAgICB7ICJhZGRFdmVudExp
c3RlbmVyIiwgRG9udERlbGV0ZSB8IEpTQzo6RnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25BZGRFdmVudExpc3Rl
bmVyKSwgKGludHB0cl90KTMsIE5vSW50cmluc2ljIH0sCiAgICAgeyAicmVtb3ZlRXZlbnRMaXN0
ZW5lciIsIERvbnREZWxldGUgfCBKU0M6OkZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uUmVtb3ZlRXZlbnRMaXN0
ZW5lciksIChpbnRwdHJfdCkzLCBOb0ludHJpbnNpYyB9LAogICAgIHsgIndpdGhTY3JpcHRTdGF0
ZVZvaWQiLCBEb250RGVsZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0
PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRTdGF0
ZVZvaWQpLCAoaW50cHRyX3QpMCwgTm9JbnRyaW5zaWMgfSwKQEAgLTI3Miw2ICsyNzEsNyBAQCBz
dGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0T2JqUHJvdG90eXBlVGFibGVWYWx1ZXNb
XSA9CiAgICAgeyAid2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZSIsIERv
bnREZWxldGUgfCBKU0M6OkZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVu
Y3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRBbmRTY3JpcHRTdGF0ZSksIChpbnRwdHJfdCkwLCBOb0ludHJpbnNpYyB9LAogICAgIHsgIndp
dGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVPYmpFeGNlcHRpb24iLCBEb250
RGVsZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0
aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0
QW5kU2NyaXB0U3RhdGVPYmpFeGNlcHRpb24pLCAoaW50cHRyX3QpMCwgTm9JbnRyaW5zaWMgfSwK
ICAgICB7ICJ3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlV2l0aFNwYWNl
cyIsIERvbnREZWxldGUgfCBKU0M6OkZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0
aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFjZXMpLCAoaW50cHRyX3QpMCwgTm9JbnRyaW5z
aWMgfSwKKyAgICB7ICJ3aXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrIiwgRG9udERlbGV0
ZSB8IEpTQzo6RnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4o
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNr
KSwgKGludHB0cl90KTAsIE5vSW50cmluc2ljIH0sCiAgICAgeyAibWV0aG9kV2l0aE9wdGlvbmFs
QXJnIiwgRG9udERlbGV0ZSB8IEpTQzo6RnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxO
YXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9u
YWxBcmcpLCAoaW50cHRyX3QpMSwgTm9JbnRyaW5zaWMgfSwKICAgICB7ICJtZXRob2RXaXRoTm9u
T3B0aW9uYWxBcmdBbmRPcHRpb25hbEFyZyIsIERvbnREZWxldGUgfCBKU0M6OkZ1bmN0aW9uLCAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uTWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kT3B0aW9uYWxBcmcpLCAoaW50cHRyX3Qp
MiwgTm9JbnRyaW5zaWMgfSwKICAgICB7ICJtZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRUd29P
cHRpb25hbEFyZ3MiLCBEb250RGVsZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRp
Y19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhOb25PcHRpb25hbEFyZ0FuZFR3b09wdGlvbmFsQXJncyksIChpbnRwdHJfdCkzLCBOb0ludHJp
bnNpYyB9LApAQCAtMzA0LDcgKzMwNCw3IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBK
U1Rlc3RPYmpQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KICAgICB7IDAsIDAsIDAsIDAsIE5vSW50
cmluc2ljIH0KIH07CiAKLXN0YXRpYyBjb25zdCBIYXNoVGFibGUgSlNUZXN0T2JqUHJvdG90eXBl
VGFibGUgPSB7IDI2NSwgMjU1LCBKU1Rlc3RPYmpQcm90b3R5cGVUYWJsZVZhbHVlcywgMCB9Owor
c3RhdGljIGNvbnN0IEhhc2hUYWJsZSBKU1Rlc3RPYmpQcm90b3R5cGVUYWJsZSA9IHsgMjY2LCAy
NTUsIEpTVGVzdE9ialByb3RvdHlwZVRhYmxlVmFsdWVzLCAwIH07CiBjb25zdCBDbGFzc0luZm8g
SlNUZXN0T2JqUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0T2JqUHJvdG90eXBlIiwgJkJhc2U6
OnNfaW5mbywgJkpTVGVzdE9ialByb3RvdHlwZVRhYmxlLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxF
KEpTVGVzdE9ialByb3RvdHlwZSkgfTsKIAogSlNPYmplY3QqIEpTVGVzdE9ialByb3RvdHlwZTo6
c2VsZihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCkBAIC03
MDYsNiArNzA2LDE2IEBAIEpTVmFsdWUganNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGUoRXhlCiB9CiAKIAorSlNWYWx1ZSBq
c1Rlc3RPYmpXaXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0cmlidXRlKEV4ZWNTdGF0
ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmllciYpCit7CisgICAgSlNU
ZXN0T2JqKiBjYXN0ZWRUaGlzID0gc3RhdGljX2Nhc3Q8SlNUZXN0T2JqKj4oYXNPYmplY3Qoc2xv
dEJhc2UpKTsKKyAgICBSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2soY3JlYXRlU2Ny
aXB0Q2FsbFN0YWNrRm9ySW5zcGVjdG9yKGV4ZWMpKTsKKyAgICBUZXN0T2JqKiBpbXBsID0gc3Rh
dGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7CisgICAgSlNWYWx1ZSByZXN1
bHQgPSB0b0pTKGV4ZWMsIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBXVEY6OmdldFB0cihp
bXBsLT53aXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0cmlidXRlKGNhbGxTdGFjaykp
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCisKIEpTVmFsdWUganNUZXN0T2JqU2NyaXB0U3Ry
aW5nQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZp
ZXImKQogewogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdE9i
aio+KGFzT2JqZWN0KHNsb3RCYXNlKSk7CkBAIC0xMTUzLDYgKzExNjMsMTUgQEAgdm9pZCBzZXRK
U1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlV2l0aFNwYWNl
c0F0dHJpYnV0ZShFeGUKIH0KIAogCit2b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRBcmd1bWVu
dHNBbmRDYWxsU3RhY2tBdHRyaWJ1dGUoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogdGhpc09i
amVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBzdGF0
aWNfY2FzdDxKU1Rlc3RPYmoqPih0aGlzT2JqZWN0KTsKKyAgICBUZXN0T2JqKiBpbXBsID0gc3Rh
dGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7CisgICAgUmVmUHRyPFNjcmlw
dENhbGxTdGFjaz4gY2FsbFN0YWNrKGNyZWF0ZVNjcmlwdENhbGxTdGFja0Zvckluc3BlY3Rvcihl
eGVjKSk7CisgICAgaW1wbC0+c2V0V2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFja0F0dHJp
YnV0ZShjYWxsU3RhY2ssIHRvVGVzdE9iaih2YWx1ZSkpOworfQorCisKICNpZiBFTkFCTEUoQ29u
ZGl0aW9uMSkKIHZvaWQgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMShFeGVjU3RhdGUqIGV4
ZWMsIEpTT2JqZWN0KiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewpAQCAtMTQ3NCwyNyAr
MTQ5Myw2IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25DdXN0b21NZXRob2RXaXRoQXJncyhFeGVjCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShjYXN0ZWRUaGlzLT5jdXN0b21NZXRob2RXaXRoQXJncyhleGVjKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DdXN0b21B
cmdzQW5kRXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYykKLXsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1
ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKLSAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cygm
SlNUZXN0T2JqOjpzX2luZm8pKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVj
KTsKLSAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihh
c09iamVjdCh0aGlzVmFsdWUpKTsKLSAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3Rl
ZFRoaXMsICZKU1Rlc3RPYmo6OnNfaW5mbyk7Ci0gICAgVGVzdE9iaiogaW1wbCA9IHN0YXRpY19j
YXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwotICAgIGlmIChleGVjLT5hcmd1bWVu
dENvdW50KCkgPCAxKQotICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVR5
cGVFcnJvcihleGVjLCAiTm90IGVub3VnaCBhcmd1bWVudHMiKSk7Ci0gICAgRXhjZXB0aW9uQ29k
ZSBlYyA9IDA7Ci0gICAgUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4gc2NyaXB0QXJndW1lbnRzKGNy
ZWF0ZVNjcmlwdEFyZ3VtZW50cyhleGVjLCAxKSk7Ci0gICAgUmVmUHRyPFNjcmlwdENhbGxTdGFj
az4gY2FsbFN0YWNrKGNyZWF0ZVNjcmlwdENhbGxTdGFja0Zvckluc3BlY3RvcihleGVjKSk7Ci0g
ICAgbG9nKiBpbnRBcmcodG9sb2coTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMCwgRGVm
YXVsdElzVW5kZWZpbmVkKSkpOwotICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKLSAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBpbXBsLT5jdXN0
b21BcmdzQW5kRXhjZXB0aW9uKGludEFyZywgc2NyaXB0QXJndW1lbnRzLCBjYWxsU3RhY2ssIGVj
KTsKLSAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOwotICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7Ci19Ci0KIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25BZGRFdmVudExpc3RlbmVyKEV4ZWNTdGF0ZSogZXhl
YykKIHsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKQEAg
LTE2NTUsNiArMTY1MywyMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleAogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAorRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3Rh
Y2soRXhlY1N0YXRlKiBleGVjKQoreworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9z
dFRoaXNWYWx1ZSgpOworICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKCZKU1Rlc3RPYmo6OnNf
aW5mbykpCisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgIEpTVGVz
dE9iaiogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0KHRoaXNW
YWx1ZSkpOworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgJkpTVGVz
dE9iajo6c19pbmZvKTsKKyAgICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+
KGNhc3RlZFRoaXMtPmltcGwoKSk7CisgICAgUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4gc2NyaXB0
QXJndW1lbnRzKGNyZWF0ZVNjcmlwdEFyZ3VtZW50cyhleGVjLCAwKSk7CisgICAgUmVmUHRyPFNj
cmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKGNyZWF0ZVNjcmlwdENhbGxTdGFja0Zvckluc3BlY3Rv
cihleGVjKSk7CisgICAgaW1wbC0+d2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFjayhzY3Jp
cHRBcmd1bWVudHMsIGNhbGxTdGFjayk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKK30KKwogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEFyZyhFeGVjU3RhdGUqIGV4ZWMpCiB7
CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKaW5k
ZXggNDcwNTk5Zjk0NTU5NTgxNmM2ZmY2NDkyNjFiMmI5ZTE4ZjNjZGI4OS4uZDJhNjA1MjIxODgy
ZTEyNTEyNWQ2ODA4NmM4MjAyMDdjZjk2ZGI0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaApAQCAtMTYzLDcgKzE2Myw2IEBA
IEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk9wdGlvbnNPYmplY3QoSlNDOjpFCiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRXhjZXB0aW9uKEpTQzo6RXhl
Y1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25DdXN0b21NZXRob2QoSlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkN1c3RvbU1l
dGhvZFdpdGhBcmdzKEpTQzo6RXhlY1N0YXRlKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DdXN0b21BcmdzQW5kRXhjZXB0aW9u
KEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25BZGRFdmVudExpc3RlbmVyKEpTQzo6RXhlY1N0YXRlKik7
CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25SZW1vdmVFdmVudExpc3RlbmVyKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0
U3RhdGVWb2lkKEpTQzo6RXhlY1N0YXRlKik7CkBAIC0xNzQsNiArMTczLDcgQEAgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNj
cmlwdEV4ZWN1dGlvbkMKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3Rh
dGUoSlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2Ny
aXB0U3RhdGVPYmpFeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6RW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRFeGVj
dXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVXaXRoU3BhY2VzKEpTQzo6RXhlY1N0YXRlKik7CitK
U0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25XaXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6
OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoT3B0aW9uYWxBcmcoSlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6RW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOb25P
cHRpb25hbEFyZ0FuZE9wdGlvbmFsQXJnKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
Tm9uT3B0aW9uYWxBcmdBbmRUd29PcHRpb25hbEFyZ3MoSlNDOjpFeGVjU3RhdGUqKTsKQEAgLTI2
NSw2ICsyNjUsOCBAQCBKU0M6OkpTVmFsdWUganNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhKUwogdm9pZCBzZXRKU1Rlc3RPYmpX
aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6SlNWYWx1ZSk7CiBKU0M6OkpTVmFs
dWUganNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhT
cGFjZXNBdHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6
SWRlbnRpZmllciYpOwogdm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dEFuZFNjcmlwdFN0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
SlNPYmplY3QqLCBKU0M6OkpTVmFsdWUpOworSlNDOjpKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3Jp
cHRBcmd1bWVudHNBbmRDYWxsU3RhY2tBdHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpT
VmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYpOwordm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2Ny
aXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpK
U09iamVjdCosIEpTQzo6SlNWYWx1ZSk7CiBKU0M6OkpTVmFsdWUganNUZXN0T2JqU2NyaXB0U3Ry
aW5nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpJZGVudGlm
aWVyJik7CiBKU0M6OkpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMShKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7CiB2b2lkIHNldEpT
VGVzdE9iakNvbmRpdGlvbmFsQXR0cjEoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0Kiwg
SlNDOjpKU1ZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaAppbmRleCAzMTVhZjMyNWJlNzI3YTNjY2FiZGU0MjUx
ZWI4ZmU3MGM3MTI0NDZhLi41OGNkY2FiOGEzNjQxZDMzMTFlMGUyZmVhMmJiMGQ4ZDc0YmZhOGIx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9E
T01UZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09i
akMvRE9NVGVzdE9iai5oCkBAIC00Myw3ICs0Myw2IEBACiBAY2xhc3MgRE9NYzsKIEBjbGFzcyBE
T01kOwogQGNsYXNzIERPTWU7Ci1AY2xhc3MgRE9NbG9nOwogQGNsYXNzIE5TU3RyaW5nOwogQHBy
b3RvY29sIERPTUV2ZW50TGlzdGVuZXI7CiAKQEAgLTEyOSw2ICsxMjgsOCBAQCBlbnVtIHsKIC0g
KHZvaWQpc2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0
ZVJhaXNlczooRE9NVGVzdE9iaiAqKW5ld1dpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2Ny
aXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXM7CiAtIChET01UZXN0T2JqICopd2l0aFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGU7CiAtICh2b2lkKXNl
dFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVXaXRoU3BhY2VzQXR0cmli
dXRlOihET01UZXN0T2JqICopbmV3V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRT
dGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGU7CistIChET01UZXN0T2JqICopd2l0aFNjcmlwdEFyZ3Vt
ZW50c0FuZENhbGxTdGFja0F0dHJpYnV0ZTsKKy0gKHZvaWQpc2V0V2l0aFNjcmlwdEFyZ3VtZW50
c0FuZENhbGxTdGFja0F0dHJpYnV0ZTooRE9NVGVzdE9iaiAqKW5ld1dpdGhTY3JpcHRBcmd1bWVu
dHNBbmRDYWxsU3RhY2tBdHRyaWJ1dGU7CiAtIChOU1N0cmluZyAqKXNjcmlwdFN0cmluZ0F0dHI7
CiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpCiAtIChpbnQpY29uZGl0aW9uYWxBdHRyMTsKQEAgLTE3
OCw3ICsxNzksNiBAQCBlbnVtIHsKIC0gKHZvaWQpbWV0aG9kV2l0aEV4Y2VwdGlvbjsKIC0gKHZv
aWQpY3VzdG9tTWV0aG9kOwogLSAodm9pZCljdXN0b21NZXRob2RXaXRoQXJnczooaW50KWludEFy
ZyBzdHJBcmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZzsK
LS0gKHZvaWQpY3VzdG9tQXJnc0FuZEV4Y2VwdGlvbjooRE9NbG9nICopaW50QXJnOwogLSAodm9p
ZClhZGRFdmVudExpc3RlbmVyOihOU1N0cmluZyAqKXR5cGUgbGlzdGVuZXI6KGlkIDxET01FdmVu
dExpc3RlbmVyPilsaXN0ZW5lciB1c2VDYXB0dXJlOihCT09MKXVzZUNhcHR1cmU7CiAtICh2b2lk
KXJlbW92ZUV2ZW50TGlzdGVuZXI6KE5TU3RyaW5nICopdHlwZSBsaXN0ZW5lcjooaWQgPERPTUV2
ZW50TGlzdGVuZXI+KWxpc3RlbmVyIHVzZUNhcHR1cmU6KEJPT0wpdXNlQ2FwdHVyZTsKIC0gKHZv
aWQpd2l0aFNjcmlwdFN0YXRlVm9pZDsKQEAgLTE4OSw2ICsxODksNyBAQCBlbnVtIHsKIC0gKHZv
aWQpd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZTsKIC0gKERPTVRlc3RP
YmogKil3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlT2JqRXhjZXB0aW9u
OwogLSAoRE9NVGVzdE9iaiAqKXdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3Rh
dGVXaXRoU3BhY2VzOworLSAodm9pZCl3aXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrOwog
LSAodm9pZCltZXRob2RXaXRoT3B0aW9uYWxBcmc6KGludClvcHQ7CiAtICh2b2lkKW1ldGhvZFdp
dGhOb25PcHRpb25hbEFyZ0FuZE9wdGlvbmFsQXJnOihpbnQpbm9uT3B0IG9wdDooaW50KW9wdDsK
IC0gKHZvaWQpbWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kVHdvT3B0aW9uYWxBcmdzOihpbnQp
bm9uT3B0IG9wdDE6KGludClvcHQxIG9wdDI6KGludClvcHQyOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbSBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW0KaW5kZXgg
OTMyYjQ5ZGQzMDgwY2Q3YThjNmJhZTU0ZDdkMDZlMGU1N2M1MTlhOC4uNjczOGU0OWUzYjQ1OTY0
NWM5MWUxNWFjNzg5ZGNmY2NiMDY3ZTc2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tCkBAIC01MCw3ICs1MCw2
IEBACiAjaW1wb3J0ICJET01jSW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTWRJbnRlcm5hbC5oIgog
I2ltcG9ydCAiRE9NZUludGVybmFsLmgiCi0jaW1wb3J0ICJET01sb2dJbnRlcm5hbC5oIgogI2lt
cG9ydCAiRG9jdW1lbnQuaCIKICNpbXBvcnQgIkV2ZW50TGlzdGVuZXIuaCIKICNpbXBvcnQgIkV4
Y2VwdGlvbkhhbmRsZXJzLmgiCkBAIC03Niw3ICs3NSw2IEBACiAjaW1wb3J0ICJjLmgiCiAjaW1w
b3J0ICJkLmgiCiAjaW1wb3J0ICJlLmgiCi0jaW1wb3J0ICJsb2cuaCIKICNpbXBvcnQgPHd0Zi9H
ZXRQdHIuaD4KIAogI2RlZmluZSBJTVBMIHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6VGVzdE9i
aio+KF9pbnRlcm5hbCkKQEAgLTUyMyw2ICs1MjEsMjAgQEAKICAgICBJTVBMLT5zZXRXaXRoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZShjb3Jl
KG5ld1dpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVXaXRoU3BhY2VzQXR0
cmlidXRlKSk7CiB9CiAKKy0gKERPTVRlc3RPYmogKil3aXRoU2NyaXB0QXJndW1lbnRzQW5kQ2Fs
bFN0YWNrQXR0cmlidXRlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOworICAgIHJldHVybiBraXQoV1RGOjpnZXRQdHIoSU1QTC0+d2l0aFNjcmlwdEFyZ3VtZW50
c0FuZENhbGxTdGFja0F0dHJpYnV0ZSgpKSk7Cit9CisKKy0gKHZvaWQpc2V0V2l0aFNjcmlwdEFy
Z3VtZW50c0FuZENhbGxTdGFja0F0dHJpYnV0ZTooRE9NVGVzdE9iaiAqKW5ld1dpdGhTY3JpcHRB
cmd1bWVudHNBbmRDYWxsU3RhY2tBdHRyaWJ1dGUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJl
YWROdWxsU3RhdGUgc3RhdGU7CisgICAgQVNTRVJUKG5ld1dpdGhTY3JpcHRBcmd1bWVudHNBbmRD
YWxsU3RhY2tBdHRyaWJ1dGUpOworCisgICAgSU1QTC0+c2V0V2l0aFNjcmlwdEFyZ3VtZW50c0Fu
ZENhbGxTdGFja0F0dHJpYnV0ZShjb3JlKG5ld1dpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3Rh
Y2tBdHRyaWJ1dGUpKTsKK30KKwogLSAoTlNTdHJpbmcgKilzY3JpcHRTdHJpbmdBdHRyCiB7CiAg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwpAQCAtNzcyLDE0ICs3ODQs
NiBAQAogICAgIElNUEwtPmN1c3RvbU1ldGhvZFdpdGhBcmdzKGludEFyZywgc3RyQXJnLCBjb3Jl
KG9iakFyZykpOwogfQogCi0tICh2b2lkKWN1c3RvbUFyZ3NBbmRFeGNlcHRpb246KERPTWxvZyAq
KWludEFyZwotewotICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAg
ICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBJTVBMLT5jdXN0b21BcmdzQW5k
RXhjZXB0aW9uKGNvcmUoaW50QXJnKSwgZWMpOwotICAgIFdlYkNvcmU6OnJhaXNlT25ET01FcnJv
cihlYyk7Ci19Ci0KIC0gKHZvaWQpYWRkRXZlbnRMaXN0ZW5lcjooTlNTdHJpbmcgKil0eXBlIGxp
c3RlbmVyOihpZCA8RE9NRXZlbnRMaXN0ZW5lcj4pbGlzdGVuZXIgdXNlQ2FwdHVyZTooQk9PTCl1
c2VDYXB0dXJlCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwpA
QCAtODUwLDYgKzg1NCwxMiBAQAogICAgIHJldHVybiBraXQoV1RGOjpnZXRQdHIoSU1QTC0+d2l0
aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFjZXMoKSkpOwogfQog
CistICh2b2lkKXdpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2sKK3sKKyAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+d2l0aFNjcmlwdEFyZ3Vt
ZW50c0FuZENhbGxTdGFjaygpOworfQorCiAtICh2b2lkKW1ldGhvZFdpdGhPcHRpb25hbEFyZzoo
aW50KW9wdAogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbAppbmRl
eCBiNDk3ZTRmMjc5NDVlOTBjNjQ2YjFjYTMyOGYxNjczMGY2YjgzNzQwLi5iYmJmMjU2ODE4OTE1
MzI5ZjFmNWI5MjU4NjVjNmJkOWRmMjZkNjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCkBAIC04OCw5ICs4OCw2IEBAIG1vZHVsZSB0
ZXN0IHsKICAgICAgICAgW0N1c3RvbV0gdm9pZCBjdXN0b21NZXRob2QoKTsKICAgICAgICAgW0N1
c3RvbV0gdm9pZCBjdXN0b21NZXRob2RXaXRoQXJncyhpbiBsb25nIGludEFyZywgaW4gRE9NU3Ry
aW5nIHN0ckFyZywgaW4gVGVzdE9iaiBvYmpBcmcpOwogCi0gICAgICAgIFtDdXN0b21Bcmd1bWVu
dEhhbmRsaW5nXSB2b2lkIGN1c3RvbUFyZ3NBbmRFeGNlcHRpb24oaW4gbG9nIGludEFyZykKLSAg
ICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwotCiAgICAgICAgIHZvaWQgYWRkRXZlbnRM
aXN0ZW5lcihpbiBET01TdHJpbmcgdHlwZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbiBFdmVudExpc3RlbmVyIGxpc3RlbmVyLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGluIFtPcHRpb25hbF0gYm9vbGVhbiB1c2VDYXB0dXJlKTsKQEAgLTExMCw2ICsxMDcsNyBA
QCBtb2R1bGUgdGVzdCB7CiAgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0
fFNjcmlwdFN0YXRlXSBUZXN0T2JqIHdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0
U3RhdGVPYmpFeGNlcHRpb24oKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAg
ICAgICAgIFtDYWxsV2l0aD0gIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgIHwgIFNjcmlwdFN0YXRl
ICBdIFRlc3RPYmogd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhT
cGFjZXMoKTsKKyAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEFyZ3VtZW50c3xDYWxsU3RhY2tdIHZv
aWQgd2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFjaygpOwogCiAgICAgICAgIGF0dHJpYnV0
ZSBbQ2FsbFdpdGg9U2NyaXB0U3RhdGVdIGxvbmcgd2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlOwog
ICAgICAgICBhdHRyaWJ1dGUgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIFRlc3RP
Ymogd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGU7CkBAIC0xMjEsNiArMTE5LDcg
QEAgbW9kdWxlIHRlc3QgewogICAgICAgICBhdHRyaWJ1dGUgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1
dGlvbkNvbnRleHR8U2NyaXB0U3RhdGVdIFRlc3RPYmogd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcwogICAgICAgICAgICAgZ2V0dGVyIHJhaXNl
cyhET01FeGNlcHRpb24pOwogICAgICAgICBhdHRyaWJ1dGUgW0NhbGxXaXRoPSAgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCAgfCAgU2NyaXB0U3RhdGUgIF0gVGVzdE9iaiB3aXRoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZTsKKyAgICAgICAgYXR0
cmlidXRlIFtDYWxsV2l0aD1TY3JpcHRBcmd1bWVudHN8Q2FsbFN0YWNrXSBUZXN0T2JqIHdpdGhT
Y3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2tBdHRyaWJ1dGU7CiAKICAgICAgICAgLy8gJ09wdGlv
bmFsJyBleHRlbmRlZCBhdHRyaWJ1dGUKICAgICAgICAgdm9pZCAgICBtZXRob2RXaXRoT3B0aW9u
YWxBcmcoaW4gW09wdGlvbmFsXSBsb25nIG9wdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCmluZGV4IDI2Y2YyNjA1MTdj
YzgzOGIyODkwYmE2ZTRhNDk3ZjE5YmY0MjA1N2UuLmVjNjYzZGM0NDRhNTRhMDU2MDg4MGI1Mjkz
NTU5Nzc2NjExMjA4ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCkBAIC01MSw3ICs1MSw2IEBACiAjaW5jbHVkZSAi
VjhkLmgiCiAjaW5jbHVkZSAiVjhlLmgiCiAjaW5jbHVkZSAiVjhpbnQuaCIKLSNpbmNsdWRlICJW
OGxvZy5oIgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAgLTY5NSw2ICs2OTQsMjggQEAgc3RhdGlj
IHZvaWQgd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFjZXNB
dHRyaWJ1dGVBdHRyU2V0dGUKICAgICByZXR1cm47CiB9CiAKK3N0YXRpYyB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gd2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFja0F0dHJpYnV0ZUF0dHJHZXR0
ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGlu
Zm8pCit7CisgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai53aXRoU2NyaXB0QXJndW1lbnRzQW5k
Q2FsbFN0YWNrQXR0cmlidXRlLl9nZXQiKTsKKyAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6
OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOworICAgIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNh
bGxTdGFjayhjcmVhdGVTY3JpcHRDYWxsU3RhY2tGb3JJbnNwZWN0b3IoKSk7CisgICAgaWYgKCFj
YWxsU3RhY2spCisgICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CisgICAgcmV0dXJuIHRv
VjgoaW1wLT53aXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0cmlidXRlKGNhbGxTdGFj
aykpOworfQorCitzdGF0aWMgdm9pZCB3aXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0
cmlidXRlQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4
OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAgSU5D
X1NUQVRTKCJET00uVGVzdE9iai53aXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0cmli
dXRlLl9zZXQiKTsKKyAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8u
SG9sZGVyKCkpOworICAgIFRlc3RPYmoqIHYgPSBWOFRlc3RPYmo6Okhhc0luc3RhbmNlKHZhbHVl
KSA/IFY4VGVzdE9iajo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdCh2YWx1
ZSkpIDogMDsKKyAgICBSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2soY3JlYXRlU2Ny
aXB0Q2FsbFN0YWNrRm9ySW5zcGVjdG9yKCkpOworICAgIGlmICghY2FsbFN0YWNrKQorICAgICAg
ICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOworICAgIGltcC0+c2V0V2l0aFNjcmlwdEFyZ3VtZW50
c0FuZENhbGxTdGFja0F0dHJpYnV0ZShjYWxsU3RhY2ssIFdURjo6Z2V0UHRyKHYpKTsKKyAgICBy
ZXR1cm47Cit9CisKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gc2NyaXB0U3RyaW5nQXR0
ckF0dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3Nv
ckluZm8mIGluZm8pCiB7CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5zY3JpcHRTdHJpbmdB
dHRyLl9nZXQiKTsKQEAgLTExMDgsMjkgKzExMjksNiBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IG1ldGhvZFdpdGhFeGNlcHRpb25DYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBh
cgogICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKIH0KIAotc3RhdGljIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiBjdXN0b21BcmdzQW5kRXhjZXB0aW9uQ2FsbGJhY2soY29uc3Qgdjg6
OkFyZ3VtZW50cyYgYXJncykKLXsKLSAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLmN1c3RvbUFy
Z3NBbmRFeGNlcHRpb24iKTsKLSAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCi0gICAgICAgIHJl
dHVybiB0aHJvd0Vycm9yKCJOb3QgZW5vdWdoIGFyZ3VtZW50cyIsIFY4UHJveHk6OlR5cGVFcnJv
cik7Ci0gICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigp
KTsKLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICB7Ci0gICAgUmVmUHRyPFNjcmlwdEFy
Z3VtZW50cz4gc2NyaXB0QXJndW1lbnRzKGNyZWF0ZVNjcmlwdEFyZ3VtZW50cyhhcmdzLCAxKSk7
Ci0gICAgUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKGNyZWF0ZVNjcmlwdENhbGxT
dGFja0Zvckluc3BlY3RvcigpKTsKLSAgICBpZiAoIWNhbGxTdGFjaykKLSAgICAgICAgcmV0dXJu
IHY4OjpVbmRlZmluZWQoKTsKLSAgICBFWENFUFRJT05fQkxPQ0sobG9nKiwgaW50QXJnLCBWOGxv
Zzo6SGFzSW5zdGFuY2UoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElz
VW5kZWZpbmVkKSkgPyBWOGxvZzo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2Fz
dChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkg
OiAwKTsKLSAgICBpbXAtPmN1c3RvbUFyZ3NBbmRFeGNlcHRpb24oaW50QXJnLCBzY3JpcHRBcmd1
bWVudHMsIGNhbGxTdGFjaywgZWMpOwotICAgIGlmIChVTkxJS0VMWShlYykpCi0gICAgICAgIGdv
dG8gZmFpbDsKLSAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7Ci0gICAgfQotICAg
IGZhaWw6Ci0gICAgVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9uKGVjKTsKLSAgICByZXR1cm4gdjg6
OkhhbmRsZTx2ODo6VmFsdWU+KCk7Ci19Ci0KIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
YWRkRXZlbnRMaXN0ZW5lckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAg
ICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5hZGRFdmVudExpc3RlbmVyKCkiKTsKQEAgLTEyNzQs
NiArMTI3MiwxOCBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHdpdGhTY3JpcHRFeGVj
dXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVXaXRoU3BhY2VzQwogICAgIHJldHVybiB0b1Y4KHJl
c3VsdC5yZWxlYXNlKCkpOwogfQogCitzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHdpdGhT
Y3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2tDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBh
cmdzKQoreworICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoud2l0aFNjcmlwdEFyZ3VtZW50c0Fu
ZENhbGxTdGFjayIpOworICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJn
cy5Ib2xkZXIoKSk7CisgICAgUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4gc2NyaXB0QXJndW1lbnRz
KGNyZWF0ZVNjcmlwdEFyZ3VtZW50cyhhcmdzLCAwKSk7CisgICAgUmVmUHRyPFNjcmlwdENhbGxT
dGFjaz4gY2FsbFN0YWNrKGNyZWF0ZVNjcmlwdENhbGxTdGFja0Zvckluc3BlY3RvcigpKTsKKyAg
ICBpZiAoIWNhbGxTdGFjaykKKyAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKKyAgICBp
bXAtPndpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2soc2NyaXB0QXJndW1lbnRzLCBjYWxs
U3RhY2spOworICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKK30KKwogc3RhdGlj
IHY4OjpIYW5kbGU8djg6OlZhbHVlPiBtZXRob2RXaXRoT3B0aW9uYWxBcmdDYWxsYmFjayhjb25z
dCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoubWV0
aG9kV2l0aE9wdGlvbmFsQXJnIik7CkBAIC0xODA0LDYgKzE4MTQsOCBAQCBzdGF0aWMgY29uc3Qg
QmF0Y2hlZEF0dHJpYnV0ZSBUZXN0T2JqQXR0cnNbXSA9IHsKICAgICB7IndpdGhTY3JpcHRFeGVj
dXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMiLCBUZXN0T2JqSW50ZXJu
YWw6OndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlz
ZXNBdHRyR2V0dGVyLCBUZXN0T2JqSW50ZXJuYWw6OndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0
QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXNBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8s
IHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0
PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwK
ICAgICAvLyBBdHRyaWJ1dGUgJ3dpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3Rh
dGVXaXRoU3BhY2VzQXR0cmlidXRlJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJ0NhbGxX
aXRoJykKICAgICB7IndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVXaXRo
U3BhY2VzQXR0cmlidXRlIiwgVGVzdE9iakludGVybmFsOjp3aXRoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dEFuZFNjcmlwdFN0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZUF0dHJHZXR0ZXIsIFRlc3RPYmpJ
bnRlcm5hbDo6d2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFj
ZXNBdHRyaWJ1dGVBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpB
Y2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJp
YnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKKyAgICAvLyBBdHRyaWJ1dGUg
J3dpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2tBdHRyaWJ1dGUnIChUeXBlOiAnYXR0cmli
dXRlJyBFeHRBdHRyOiAnQ2FsbFdpdGgnKQorICAgIHsid2l0aFNjcmlwdEFyZ3VtZW50c0FuZENh
bGxTdGFja0F0dHJpYnV0ZSIsIFRlc3RPYmpJbnRlcm5hbDo6d2l0aFNjcmlwdEFyZ3VtZW50c0Fu
ZENhbGxTdGFja0F0dHJpYnV0ZUF0dHJHZXR0ZXIsIFRlc3RPYmpJbnRlcm5hbDo6d2l0aFNjcmlw
dEFyZ3VtZW50c0FuZENhbGxTdGFja0F0dHJpYnV0ZUF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAq
Lywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nh
c3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99
LAogICAgIC8vIEF0dHJpYnV0ZSAnc2NyaXB0U3RyaW5nQXR0cicgKFR5cGU6ICdyZWFkb25seSBh
dHRyaWJ1dGUnIEV4dEF0dHI6ICdDb252ZXJ0U2NyaXB0U3RyaW5nJykKICAgICB7InNjcmlwdFN0
cmluZ0F0dHIiLCBUZXN0T2JqSW50ZXJuYWw6OnNjcmlwdFN0cmluZ0F0dHJBdHRyR2V0dGVyLCAw
LCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVG
QVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8q
IG9uIGluc3RhbmNlICovfSwKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkKQEAgLTE4NzQsNiArMTg4
Niw3IEBAIHN0YXRpYyBjb25zdCBCYXRjaGVkQ2FsbGJhY2sgVGVzdE9iakNhbGxiYWNrc1tdID0g
ewogICAgIHsid2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZSIsIFRlc3RP
YmpJbnRlcm5hbDo6d2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUNhbGxi
YWNrfSwKICAgICB7IndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVPYmpF
eGNlcHRpb24iLCBUZXN0T2JqSW50ZXJuYWw6OndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5k
U2NyaXB0U3RhdGVPYmpFeGNlcHRpb25DYWxsYmFja30sCiAgICAgeyJ3aXRoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlV2l0aFNwYWNlcyIsIFRlc3RPYmpJbnRlcm5hbDo6d2l0
aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFjZXNDYWxsYmFja30s
CisgICAgeyJ3aXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrIiwgVGVzdE9iakludGVybmFs
Ojp3aXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQ2FsbGJhY2t9LAogICAgIHsibWV0aG9k
V2l0aE9wdGlvbmFsQXJnIiwgVGVzdE9iakludGVybmFsOjptZXRob2RXaXRoT3B0aW9uYWxBcmdD
YWxsYmFja30sCiAgICAgeyJtZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRPcHRpb25hbEFyZyIs
IFRlc3RPYmpJbnRlcm5hbDo6bWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kT3B0aW9uYWxBcmdD
YWxsYmFja30sCiAgICAgeyJtZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRUd29PcHRpb25hbEFy
Z3MiLCBUZXN0T2JqSW50ZXJuYWw6Om1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0FuZFR3b09wdGlv
bmFsQXJnc0NhbGxiYWNrfSwKQEAgLTIwMDUsMTIgKzIwMTgsNiBAQCBzdGF0aWMgdjg6OlBlcnNp
c3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IENvbmZpZ3VyZVY4VGVzdE9ialRlbXBsYXRlKHY4
OjpQZXJzaQogICAgIHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IG1ldGhvZFRoYXRS
ZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3NBcmd2W21ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRU
aHJvd3NBcmdjXSA9IHsgdjg6OkhhbmRsZTx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4oKSwgVjhUZXN0
T2JqOjpHZXRSYXdUZW1wbGF0ZSgpIH07CiAgICAgdjg6OkhhbmRsZTx2ODo6U2lnbmF0dXJlPiBt
ZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzU2lnbmF0dXJlID0gdjg6OlNpZ25hdHVy
ZTo6TmV3KGRlc2MsIG1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3NBcmdjLCBtZXRo
b2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzQXJndik7CiAgICAgcHJvdG8tPlNldCh2ODo6
U3RyaW5nOjpOZXcoIm1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3MiKSwgdjg6OkZ1
bmN0aW9uVGVtcGxhdGU6Ok5ldyhUZXN0T2JqSW50ZXJuYWw6Om1ldGhvZFRoYXRSZXF1aXJlc0Fs
bEFyZ3NBbmRUaHJvd3NDYWxsYmFjaywgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCksIG1ldGhvZFRo
YXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3NTaWduYXR1cmUpKTsKLQotICAgIC8vIEN1c3RvbSBT
aWduYXR1cmUgJ2N1c3RvbUFyZ3NBbmRFeGNlcHRpb24nCi0gICAgY29uc3QgaW50IGN1c3RvbUFy
Z3NBbmRFeGNlcHRpb25BcmdjID0gMTsKLSAgICB2ODo6SGFuZGxlPHY4OjpGdW5jdGlvblRlbXBs
YXRlPiBjdXN0b21BcmdzQW5kRXhjZXB0aW9uQXJndltjdXN0b21BcmdzQW5kRXhjZXB0aW9uQXJn
Y10gPSB7IFY4bG9nOjpHZXRSYXdUZW1wbGF0ZSgpIH07Ci0gICAgdjg6OkhhbmRsZTx2ODo6U2ln
bmF0dXJlPiBjdXN0b21BcmdzQW5kRXhjZXB0aW9uU2lnbmF0dXJlID0gdjg6OlNpZ25hdHVyZTo6
TmV3KGRlc2MsIGN1c3RvbUFyZ3NBbmRFeGNlcHRpb25BcmdjLCBjdXN0b21BcmdzQW5kRXhjZXB0
aW9uQXJndik7Ci0gICAgcHJvdG8tPlNldCh2ODo6U3RyaW5nOjpOZXcoImN1c3RvbUFyZ3NBbmRF
eGNlcHRpb24iKSwgdjg6OkZ1bmN0aW9uVGVtcGxhdGU6Ok5ldyhUZXN0T2JqSW50ZXJuYWw6OmN1
c3RvbUFyZ3NBbmRFeGNlcHRpb25DYWxsYmFjaywgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCksIGN1
c3RvbUFyZ3NBbmRFeGNlcHRpb25TaWduYXR1cmUpKTsKICAgICBkZXNjLT5TZXQodjg6OlN0cmlu
Zzo6TmV3KCJjbGFzc01ldGhvZCIpLCB2ODo6RnVuY3Rpb25UZW1wbGF0ZTo6TmV3KFRlc3RPYmpJ
bnRlcm5hbDo6Y2xhc3NNZXRob2RDYWxsYmFjaywgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCksIHY4
OjpMb2NhbDx2ODo6U2lnbmF0dXJlPigpKSk7CiAgICAgZGVzYy0+U2V0KHY4OjpTdHJpbmc6Ok5l
dygiY2xhc3NNZXRob2RXaXRoT3B0aW9uYWwiKSwgdjg6OkZ1bmN0aW9uVGVtcGxhdGU6Ok5ldyhU
ZXN0T2JqSW50ZXJuYWw6OmNsYXNzTWV0aG9kV2l0aE9wdGlvbmFsQ2FsbGJhY2ssIHY4OjpIYW5k
bGU8djg6OlZhbHVlPigpLCB2ODo6TG9jYWw8djg6OlNpZ25hdHVyZT4oKSkpOwogI2lmIEVOQUJM
RShDb25kaXRpb24xKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4Q29uc29sZUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0
b20vVjhDb25zb2xlQ3VzdG9tLmNwcAppbmRleCA0MGZmMmIxNDFmZDMwZmE1MGRmNjQxYTlkYzI4
YTAwNzk4NGI3ODFiLi43YWRlODY4OGQ3YjA0MWExZmQyZTgzNDBjZjFiZWI1MmRlMWY3MjQyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDb25zb2xlQ3Vz
dG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDb25zb2xl
Q3VzdG9tLmNwcApAQCAtNzksNyArNzksNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhDb25z
b2xlOjphc3NlcnRDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogICAgIFJlZlB0
cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjayhjcmVhdGVTY3JpcHRDYWxsU3RhY2soU2NyaXB0
Q2FsbFN0YWNrOjptYXhDYWxsU3RhY2tTaXplVG9DYXB0dXJlKSk7CiAgICAgYm9vbCBjb25kaXRp
b24gPSBhcmdzWzBdLT5Cb29sZWFuVmFsdWUoKTsKICAgICBSZWZQdHI8U2NyaXB0QXJndW1lbnRz
PiBzY3JpcHRBcmd1bWVudHMoY3JlYXRlU2NyaXB0QXJndW1lbnRzKGFyZ3MsIDEpKTsKLSAgICBp
bXAtPmFzc2VydENvbmRpdGlvbihjb25kaXRpb24sIHNjcmlwdEFyZ3VtZW50cy5yZWxlYXNlKCks
IGNhbGxTdGFjayk7CisgICAgaW1wLT5hc3NlcnRDb25kaXRpb24oc2NyaXB0QXJndW1lbnRzLnJl
bGVhc2UoKSwgY2FsbFN0YWNrLCBjb25kaXRpb24pOwogICAgIHJldHVybiB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4oKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5jcHAKaW5kZXggNTE1YWIzNGQ3YTA2
ZDRhYzIyYjUzZjRjZjhkOWY4NGFmMWM1Zjc3MS4uZmUwZjBhZjdjN2VlZGI0OTZhNjExMmRlYWE5
OGRhMGJmOWI2NDgxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuY3BwCkBAIC0yMzYsNyArMjM2LDcg
QEAgdm9pZCBDb25zb2xlOjp0cmFjZShQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4gYXJndW1l
bnRzLCBQYXNzUmVmUHRyPFNjcmlwdENhbGwKICAgICB9CiB9CiAKLXZvaWQgQ29uc29sZTo6YXNz
ZXJ0Q29uZGl0aW9uKGJvb2wgY29uZGl0aW9uLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4g
YXJndW1lbnRzLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKQordm9pZCBD
b25zb2xlOjphc3NlcnRDb25kaXRpb24oUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+IGFyZ3Vt
ZW50cywgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaywgYm9vbCBjb25kaXRp
b24pCiB7CiAgICAgaWYgKGNvbmRpdGlvbikKICAgICAgICAgcmV0dXJuOwpAQCAtMzAzLDcgKzMw
Myw3IEBAIHZvaWQgQ29uc29sZTo6dGltZShjb25zdCBTdHJpbmcmIHRpdGxlKQogI2VuZGlmCiB9
CiAKLXZvaWQgQ29uc29sZTo6dGltZUVuZChjb25zdCBTdHJpbmcmIHRpdGxlLCBQYXNzUmVmUHRy
PFNjcmlwdEFyZ3VtZW50cz4sIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2sp
Cit2b2lkIENvbnNvbGU6OnRpbWVFbmQoUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+LCBQYXNz
UmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrLCBjb25zdCBTdHJpbmcmIHRpdGxlKQog
ewogI2lmIFBMQVRGT1JNKENIUk9NSVVNKQogICAgIFRSQUNFX0VWRU5UX0NPUFlfRU5EMCgid2Vi
a2l0IiwgdGl0bGUudXRmOCgpLmRhdGEoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0NvbnNvbGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5oCmluZGV4IGYzMGQx
OTFhOGMxY2RmZTE5ZDM5NTVmMzdjYmJiMzQwMGMyYzZkY2QuLjg5ZTI5NTVkNmNiNDg1NTM2NDIz
NzU3Zjk2ZGIwYmQyNTVjMzViNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29u
c29sZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5oCkBAIC02Niw3ICs2Niw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpcihQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4sIFBh
c3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7CiAgICAgdm9pZCBkaXJ4bWwoUGFzc1JlZlB0cjxT
Y3JpcHRBcmd1bWVudHM+LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOwogICAgIHZvaWQg
dHJhY2UoUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxT
dGFjaz4pOwotICAgIHZvaWQgYXNzZXJ0Q29uZGl0aW9uKGJvb2wgY29uZGl0aW9uLCBQYXNzUmVm
UHRyPFNjcmlwdEFyZ3VtZW50cz4sIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7CisgICAg
dm9pZCBhc3NlcnRDb25kaXRpb24oUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+LCBQYXNzUmVm
UHRyPFNjcmlwdENhbGxTdGFjaz4sIGJvb2wgY29uZGl0aW9uKTsKICAgICB2b2lkIGNvdW50KFBh
c3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsK
ICAgICB2b2lkIG1hcmtUaW1lbGluZShQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4sIFBhc3NS
ZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7CiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIp
CkBAIC03NSw3ICs3NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHByb2ZpbGVFbmQoY29uc3QgU3Ry
aW5nJiwgU2NyaXB0U3RhdGUqLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOwogI2VuZGlm
CiAgICAgdm9pZCB0aW1lKGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQgdGltZUVuZChjb25zdCBT
dHJpbmcmLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4sIFBhc3NSZWZQdHI8U2NyaXB0Q2Fs
bFN0YWNrPik7CisgICAgdm9pZCB0aW1lRW5kKFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiwg
UGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+LCBjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHRp
bWVTdGFtcChQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4sIFBhc3NSZWZQdHI8U2NyaXB0Q2Fs
bFN0YWNrPik7CiAgICAgdm9pZCBncm91cChQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4sIFBh
c3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7CiAgICAgdm9pZCBncm91cENvbGxhcHNlZChQYXNz
UmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4sIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuaWRsIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9Db25zb2xlLmlkbAppbmRleCA0NDRlMTYzNjk0NmM5Mzc0ODU0YzMyMWYwOTAzYTQz
YzkxMTcwYWRiLi4yZGVmZTMyMTNiZDQ4ZjAyODhiYWY0OWQ0OTU1YmJlMTZkYTc4YzEzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ29uc29sZS5pZGwKQEAgLTMzLDE3ICszMywxNyBAQCBtb2R1bGUgd2luZG93IHsK
ICAgICAgICAgT21pdENvbnN0cnVjdG9yCiAgICAgXSBDb25zb2xlIHsKIAotICAgICAgICBbQ3Vz
dG9tQXJndW1lbnRIYW5kbGluZ10gdm9pZCBkZWJ1ZygpOwotICAgICAgICBbQ3VzdG9tQXJndW1l
bnRIYW5kbGluZ10gdm9pZCBlcnJvcigpOwotICAgICAgICBbQ3VzdG9tQXJndW1lbnRIYW5kbGlu
Z10gdm9pZCBpbmZvKCk7Ci0gICAgICAgIFtDdXN0b21Bcmd1bWVudEhhbmRsaW5nXSB2b2lkIGxv
ZygpOwotICAgICAgICBbQ3VzdG9tQXJndW1lbnRIYW5kbGluZ10gdm9pZCB3YXJuKCk7Ci0gICAg
ICAgIFtDdXN0b21Bcmd1bWVudEhhbmRsaW5nXSB2b2lkIGRpcigpOwotICAgICAgICBbQ3VzdG9t
QXJndW1lbnRIYW5kbGluZ10gdm9pZCBkaXJ4bWwoKTsKLSAgICAgICAgW1Y4Q3VzdG9tLCBDdXN0
b21Bcmd1bWVudEhhbmRsaW5nXSB2b2lkIHRyYWNlKCk7Ci0gICAgICAgIFtWOEN1c3RvbSwgQ3Vz
dG9tQXJndW1lbnRIYW5kbGluZywgSW1wbGVtZW50ZWRBcz1hc3NlcnRDb25kaXRpb25dIHZvaWQg
YXNzZXJ0KGluIGJvb2xlYW4gY29uZGl0aW9uKTsKLSAgICAgICAgW0N1c3RvbUFyZ3VtZW50SGFu
ZGxpbmddIHZvaWQgY291bnQoKTsKLSAgICAgICAgW0N1c3RvbUFyZ3VtZW50SGFuZGxpbmddIHZv
aWQgbWFya1RpbWVsaW5lKCk7CisgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRBcmd1bWVudHN8Q2Fs
bFN0YWNrXSB2b2lkIGRlYnVnKCk7CisgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRBcmd1bWVudHN8
Q2FsbFN0YWNrXSB2b2lkIGVycm9yKCk7CisgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRBcmd1bWVu
dHN8Q2FsbFN0YWNrXSB2b2lkIGluZm8oKTsKKyAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEFyZ3Vt
ZW50c3xDYWxsU3RhY2tdIHZvaWQgbG9nKCk7CisgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRBcmd1
bWVudHN8Q2FsbFN0YWNrXSB2b2lkIHdhcm4oKTsKKyAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEFy
Z3VtZW50c3xDYWxsU3RhY2tdIHZvaWQgZGlyKCk7CisgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRB
cmd1bWVudHN8Q2FsbFN0YWNrXSB2b2lkIGRpcnhtbCgpOworICAgICAgICBbVjhDdXN0b20sIENh
bGxXaXRoPVNjcmlwdEFyZ3VtZW50c3xDYWxsU3RhY2tdIHZvaWQgdHJhY2UoKTsKKyAgICAgICAg
W1Y4Q3VzdG9tLCBDYWxsV2l0aD1TY3JpcHRBcmd1bWVudHN8Q2FsbFN0YWNrLCBJbXBsZW1lbnRl
ZEFzPWFzc2VydENvbmRpdGlvbl0gdm9pZCBhc3NlcnQoaW4gYm9vbGVhbiBjb25kaXRpb24pOwor
ICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0QXJndW1lbnRzfENhbGxTdGFja10gdm9pZCBjb3VudCgp
OworICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0QXJndW1lbnRzfENhbGxTdGFja10gdm9pZCBtYXJr
VGltZWxpbmUoKTsKIAogI2lmIGRlZmluZWQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICYm
IEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBb
Q3VzdG9tR2V0dGVyXSBBcnJheSBwcm9maWxlczsKQEAgLTUyLDEwICs1MiwxMCBAQCBtb2R1bGUg
d2luZG93IHsKICNlbmRpZgogCiAgICAgICAgIHZvaWQgdGltZShpbiBbVHJlYXROdWxsQXM9TnVs
bFN0cmluZywgVHJlYXRVbmRlZmluZWRBcz1OdWxsU3RyaW5nLE9wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gRE9NU3RyaW5nIHRpdGxlKTsKLSAgICAgICAgW0N1c3RvbUFyZ3VtZW50SGFuZGxp
bmddIHZvaWQgdGltZUVuZChpbiBbVHJlYXROdWxsQXM9TnVsbFN0cmluZywgVHJlYXRVbmRlZmlu
ZWRBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcgdGl0bGUpOwotICAgICAgICBbQ3VzdG9tQXJndW1l
bnRIYW5kbGluZ10gdm9pZCB0aW1lU3RhbXAoKTsKLSAgICAgICAgW0N1c3RvbUFyZ3VtZW50SGFu
ZGxpbmddIHZvaWQgZ3JvdXAoKTsKLSAgICAgICAgW0N1c3RvbUFyZ3VtZW50SGFuZGxpbmddIHZv
aWQgZ3JvdXBDb2xsYXBzZWQoKTsKKyAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEFyZ3VtZW50c3xD
YWxsU3RhY2tdIHZvaWQgdGltZUVuZChpbiBbVHJlYXROdWxsQXM9TnVsbFN0cmluZywgVHJlYXRV
bmRlZmluZWRBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcgdGl0bGUpOworICAgICAgICBbQ2FsbFdp
dGg9U2NyaXB0QXJndW1lbnRzfENhbGxTdGFja10gdm9pZCB0aW1lU3RhbXAoKTsKKyAgICAgICAg
W0NhbGxXaXRoPVNjcmlwdEFyZ3VtZW50c3xDYWxsU3RhY2tdIHZvaWQgZ3JvdXAoKTsKKyAgICAg
ICAgW0NhbGxXaXRoPVNjcmlwdEFyZ3VtZW50c3xDYWxsU3RhY2tdIHZvaWQgZ3JvdXBDb2xsYXBz
ZWQoKTsKICAgICAgICAgdm9pZCBncm91cEVuZCgpOwogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBbVjhDdXN0b21HZXR0ZXJdIE1lbW9yeUluZm8gbWVtb3J5Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>