<?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>195904</bug_id>
          
          <creation_ts>2019-03-18 13:06:15 -0700</creation_ts>
          <short_desc>Make WTFLogChannelState and WTFLogLevel enum classes</short_desc>
          <delta_ts>2019-03-19 09:47:11 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1517859</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-03-18 13:06:15 -0700</bug_when>
    <thetext>Make WTFLogChannelState and WTFLogLevel enum classes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1517863</commentid>
    <comment_count>1</comment_count>
      <attachid>365047</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-03-18 13:09:32 -0700</bug_when>
    <thetext>Created attachment 365047
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1517880</commentid>
    <comment_count>2</comment_count>
      <attachid>365047</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2019-03-18 13:31:06 -0700</bug_when>
    <thetext>Comment on attachment 365047
Patch

Thanks Alex!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1517933</commentid>
    <comment_count>3</comment_count>
      <attachid>365067</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-03-18 14:38:00 -0700</bug_when>
    <thetext>Created attachment 365067
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1517934</commentid>
    <comment_count>4</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-03-18 14:40:28 -0700</bug_when>
    <thetext>Attachment 365067 did not pass style-queue:


ERROR: Source/WTF/wtf/Assertions.h:182:  LOG_CHANNEL is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/Assertions.h:185:  LOG_CHANNEL is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 2 in 25 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>1517953</commentid>
    <comment_count>5</comment_count>
      <attachid>365075</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-03-18 15:24:27 -0700</bug_when>
    <thetext>Created attachment 365075
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1517956</commentid>
    <comment_count>6</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-03-18 15:29:15 -0700</bug_when>
    <thetext>Attachment 365075 did not pass style-queue:


ERROR: Source/WTF/wtf/Assertions.h:182:  LOG_CHANNEL is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/Assertions.h:185:  LOG_CHANNEL is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 2 in 27 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>1518155</commentid>
    <comment_count>7</comment_count>
      <attachid>365075</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-18 23:36:17 -0700</bug_when>
    <thetext>Comment on attachment 365075
Patch

Clearing flags on attachment: 365075

Committed r243132: &lt;https://trac.webkit.org/changeset/243132&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518156</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-18 23:36:19 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518157</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-03-18 23:37:42 -0700</bug_when>
    <thetext>&lt;rdar://problem/49008895&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518225</commentid>
    <comment_count>10</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-03-19 06:21:14 -0700</bug_when>
    <thetext>GTK is broken:

In file included from /usr/include/X11/Xlib.h:44,
                 from ../../Source/WebCore/plugins/npapi.h:89,
                 from ../../Tools/DumpRenderTree/TestNetscapePlugIn/ForwardingHeaders/WebKit/npapi.h:1,
                 from ../../Tools/DumpRenderTree/TestNetscapePlugIn/TestObject.h:26,
                 from ../../Tools/DumpRenderTree/TestNetscapePlugIn/TestObject.cpp:26:
../../Source/WTF/wtf/Assertions.h:153:36: error: expected identifier before numeric constant
  153 | enum class WTFLogLevel : uint8_t { Always, Error, Warning, Info, Debug };
      |                                    ^~~~~~

We won&apos;t ever be able to use the name &quot;Always&quot; because it makes Assertions.h conflict with Xlib.h, and it&apos;s not practical to ensure these headers are never included together. Xlib.h is the absolute worst (it defines a bunch of very common names without any namespace) but we&apos;re stuck with it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518227</commentid>
    <comment_count>11</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-03-19 06:24:57 -0700</bug_when>
    <thetext>I think the options are:

 (a) Rename WTFLogLevel::Always to something less-appropriate
 (b) Remain an old-style enum forever

Let&apos;s go with (b) for now, just to get the build working until we have time to bikeshed about naming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518228</commentid>
    <comment_count>12</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-03-19 06:25:21 -0700</bug_when>
    <thetext>Reverted r243132 for reason:

Broke GTK build

Committed r243135: &lt;https://trac.webkit.org/changeset/243135&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518237</commentid>
    <comment_count>13</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-03-19 07:03:29 -0700</bug_when>
    <thetext>WTFLogLevel::Always_ could work</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518262</commentid>
    <comment_count>14</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-03-19 07:59:10 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #11)
&gt; I think the options are:
&gt; 
&gt;  (a) Rename WTFLogLevel::Always to something less-appropriate
&gt;  (b) Remain an old-style enum forever
&gt; 
&gt; Let&apos;s go with (b) for now, just to get the build working until we have time
&gt; to bikeshed about naming.

Phil suggested #undef Always, so that&apos;s another option. It will fail if Assertion.h gets included before anything that actually needs to use Xlib.h&apos;s Always. I think nothing in WebKit will ever want to do that, but other external headers might... using #undef in headers is not exactly safe. Then again, nothing about unified builds is safe.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518292</commentid>
    <comment_count>15</comment_count>
      <attachid>365168</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-03-19 09:06:57 -0700</bug_when>
    <thetext>Created attachment 365168
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518294</commentid>
    <comment_count>16</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-03-19 09:09:25 -0700</bug_when>
    <thetext>Attachment 365168 did not pass style-queue:


ERROR: Source/WTF/wtf/Assertions.h:183:  LOG_CHANNEL is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/Assertions.h:186:  LOG_CHANNEL is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 2 in 27 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>1518307</commentid>
    <comment_count>17</comment_count>
      <attachid>365168</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-19 09:47:10 -0700</bug_when>
    <thetext>Comment on attachment 365168
Patch

Clearing flags on attachment: 365168

Committed r243141: &lt;https://trac.webkit.org/changeset/243141&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518308</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-19 09:47:11 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>365047</attachid>
            <date>2019-03-18 13:09:32 -0700</date>
            <delta_ts>2019-03-18 14:37:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195904-20190318130931.patch</filename>
            <type>text/plain</type>
            <size>58734</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNDI4MDMpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDE5LTAzLTE4ICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTWFrZSBXVEZMb2dDaGFubmVsU3Rh
dGUgYW5kIFdURkxvZ0xldmVsIGVudW0gY2xhc3NlcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1OTA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvQXNzZXJ0aW9ucy5jcHA6CisgICAgICAgICog
d3RmL0Fzc2VydGlvbnMuaDoKKyAgICAgICAgKiB3dGYvTG9nZ2VyLmg6CisgICAgICAgIChXVEY6
OkxvZ2dlcjo6bG9nQWx3YXlzIGNvbnN0KToKKyAgICAgICAgKFdURjo6TG9nZ2VyOjplcnJvciBj
b25zdCk6CisgICAgICAgIChXVEY6OkxvZ2dlcjo6d2FybmluZyBjb25zdCk6CisgICAgICAgIChX
VEY6OkxvZ2dlcjo6aW5mbyBjb25zdCk6CisgICAgICAgIChXVEY6OkxvZ2dlcjo6ZGVidWcgY29u
c3QpOgorICAgICAgICAoV1RGOjpMb2dnZXI6OndpbGxMb2cgY29uc3QpOgorICAgICAgICAoV1RG
OjpMb2dnZXI6OmxvZyk6CisgICAgICAgICogd3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHA6
CisgICAgICAgICogd3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5jcHA6CisKIDIwMTktMDMtMTEg
IEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBX
VEY6OkV4cGVjdGVkIHNob3VsZCB1c2Ugc3RkOjphZGRyZXNzb2YgaW5zdGVhZCBvZiBvcGVyYXRv
ciYKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuY3BwCShyZXZpc2lvbiAyNDI4MDMpCisrKyBTb3VyY2Uv
V1RGL3d0Zi9Bc3NlcnRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDA5LDE1ICs0MDksMTUg
QEAgdm9pZCBXVEZTZXRMb2dDaGFubmVsTGV2ZWwoV1RGTG9nQ2hhbm5lbAogCiBib29sIFdURldp
bGxMb2dXaXRoTGV2ZWwoV1RGTG9nQ2hhbm5lbCogY2hhbm5lbCwgV1RGTG9nTGV2ZWwgbGV2ZWwp
CiB7Ci0gICAgcmV0dXJuIGNoYW5uZWwtPmxldmVsID49IGxldmVsICYmIGNoYW5uZWwtPnN0YXRl
ICE9IFdURkxvZ0NoYW5uZWxPZmY7CisgICAgcmV0dXJuIGNoYW5uZWwtPmxldmVsID49IGxldmVs
ICYmIGNoYW5uZWwtPnN0YXRlICE9IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T2ZmOwogfQogCiB2b2lk
IFdURkxvZ1dpdGhMZXZlbChXVEZMb2dDaGFubmVsKiBjaGFubmVsLCBXVEZMb2dMZXZlbCBsZXZl
bCwgY29uc3QgY2hhciogZm9ybWF0LCAuLi4pCiB7Ci0gICAgaWYgKGxldmVsICE9IFdURkxvZ0xl
dmVsQWx3YXlzICYmIGxldmVsID4gY2hhbm5lbC0+bGV2ZWwpCisgICAgaWYgKGxldmVsICE9IFdU
RkxvZ0xldmVsOjpBbHdheXMgJiYgbGV2ZWwgPiBjaGFubmVsLT5sZXZlbCkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgaWYgKGNoYW5uZWwtPmxldmVsICE9IFdURkxvZ0xldmVsQWx3YXlzICYmIGNo
YW5uZWwtPnN0YXRlID09IFdURkxvZ0NoYW5uZWxPZmYpCisgICAgaWYgKGNoYW5uZWwtPmxldmVs
ICE9IFdURkxvZ0xldmVsOjpBbHdheXMgJiYgY2hhbm5lbC0+c3RhdGUgPT0gV1RGTG9nQ2hhbm5l
bFN0YXRlOjpPZmYpCiAgICAgICAgIHJldHVybjsKIAogICAgIHZhX2xpc3QgYXJnczsKQEAgLTQz
MiwxNSArNDMyLDE1IEBAIHZvaWQgV1RGTG9nV2l0aExldmVsKFdURkxvZ0NoYW5uZWwqIGNoYW4K
IAogc3RhdGljIHZvaWQgV1RGTG9nVmFMaXN0KFdURkxvZ0NoYW5uZWwqIGNoYW5uZWwsIGNvbnN0
IGNoYXIqIGZvcm1hdCwgdmFfbGlzdCBhcmdzKQogewotICAgIGlmIChjaGFubmVsLT5zdGF0ZSA9
PSBXVEZMb2dDaGFubmVsT2ZmKQorICAgIGlmIChjaGFubmVsLT5zdGF0ZSA9PSBXVEZMb2dDaGFu
bmVsU3RhdGU6Ok9mZikKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKGNoYW5uZWwtPnN0YXRl
ID09IFdURkxvZ0NoYW5uZWxPbikgeworICAgIGlmIChjaGFubmVsLT5zdGF0ZSA9PSBXVEZMb2dD
aGFubmVsU3RhdGU6Ok9uKSB7CiAgICAgICAgIHZwcmludGZfc3RkZXJyX3dpdGhfdHJhaWxpbmdf
bmV3bGluZShmb3JtYXQsIGFyZ3MpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgQVNT
RVJUKGNoYW5uZWwtPnN0YXRlID09IFdURkxvZ0NoYW5uZWxPbldpdGhBY2N1bXVsYXRpb24pOwor
ICAgIEFTU0VSVChjaGFubmVsLT5zdGF0ZSA9PSBXVEZMb2dDaGFubmVsU3RhdGU6Ok9uV2l0aEFj
Y3VtdWxhdGlvbik7CiAKICAgICBBTExPV19OT05MSVRFUkFMX0ZPUk1BVF9CRUdJTgogICAgIFN0
cmluZyBsb2dnaW5nU3RyaW5nID0gV1RGOjpjcmVhdGVXaXRoRm9ybWF0QW5kQXJndW1lbnRzKGZv
cm1hdCwgYXJncyk7CkBAIC00NjYsNyArNDY2LDcgQEAgdm9pZCBXVEZMb2coV1RGTG9nQ2hhbm5l
bCogY2hhbm5lbCwgY29ucwogCiB2b2lkIFdURkxvZ1ZlcmJvc2UoY29uc3QgY2hhciogZmlsZSwg
aW50IGxpbmUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uLCBXVEZMb2dDaGFubmVsKiBjaGFubmVsLCBj
b25zdCBjaGFyKiBmb3JtYXQsIC4uLikKIHsKLSAgICBpZiAoY2hhbm5lbC0+c3RhdGUgIT0gV1RG
TG9nQ2hhbm5lbE9uKQorICAgIGlmIChjaGFubmVsLT5zdGF0ZSAhPSBXVEZMb2dDaGFubmVsU3Rh
dGU6Ok9uKQogICAgICAgICByZXR1cm47CiAKICAgICB2YV9saXN0IGFyZ3M7CkBAIC01MzMsOSAr
NTMzLDkgQEAgdm9pZCBXVEZJbml0aWFsaXplTG9nQ2hhbm5lbFN0YXRlc0Zyb21TdAogICAgICAg
ICBWZWN0b3I8U3RyaW5nPiBjb21wb25lbnRJbmZvID0gbG9nTGV2ZWxDb21wb25lbnQuc3BsaXQo
Jz0nKTsKICAgICAgICAgU3RyaW5nIGNvbXBvbmVudCA9IGNvbXBvbmVudEluZm9bMF0uc3RyaXBX
aGl0ZVNwYWNlKCk7CiAKLSAgICAgICAgV1RGTG9nQ2hhbm5lbFN0YXRlIGxvZ0NoYW5uZWxTdGF0
ZSA9IFdURkxvZ0NoYW5uZWxPbjsKKyAgICAgICAgV1RGTG9nQ2hhbm5lbFN0YXRlIGxvZ0NoYW5u
ZWxTdGF0ZSA9IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T247CiAgICAgICAgIGlmIChjb21wb25lbnQu
c3RhcnRzV2l0aCgnLScpKSB7Ci0gICAgICAgICAgICBsb2dDaGFubmVsU3RhdGUgPSBXVEZMb2dD
aGFubmVsT2ZmOworICAgICAgICAgICAgbG9nQ2hhbm5lbFN0YXRlID0gV1RGTG9nQ2hhbm5lbFN0
YXRlOjpPZmY7CiAgICAgICAgICAgICBjb21wb25lbnQgPSBjb21wb25lbnQuc3Vic3RyaW5nKDEp
OwogICAgICAgICB9CiAKQEAgLTU0NCwxNyArNTQ0LDE3IEBAIHZvaWQgV1RGSW5pdGlhbGl6ZUxv
Z0NoYW5uZWxTdGF0ZXNGcm9tU3QKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAK
LSAgICAgICAgV1RGTG9nTGV2ZWwgbG9nQ2hhbm5lbExldmVsID0gV1RGTG9nTGV2ZWxFcnJvcjsK
KyAgICAgICAgV1RGTG9nTGV2ZWwgbG9nQ2hhbm5lbExldmVsID0gV1RGTG9nTGV2ZWw6OkVycm9y
OwogICAgICAgICBpZiAoY29tcG9uZW50SW5mby5zaXplKCkgPiAxKSB7CiAgICAgICAgICAgICBT
dHJpbmcgbGV2ZWwgPSBjb21wb25lbnRJbmZvWzFdLnN0cmlwV2hpdGVTcGFjZSgpOwogICAgICAg
ICAgICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGxldmVsLCAiZXJyb3IiKSkK
LSAgICAgICAgICAgICAgICBsb2dDaGFubmVsTGV2ZWwgPSBXVEZMb2dMZXZlbEVycm9yOworICAg
ICAgICAgICAgICAgIGxvZ0NoYW5uZWxMZXZlbCA9IFdURkxvZ0xldmVsOjpFcnJvcjsKICAgICAg
ICAgICAgIGVsc2UgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGxldmVsLCAid2Fy
bmluZyIpKQotICAgICAgICAgICAgICAgIGxvZ0NoYW5uZWxMZXZlbCA9IFdURkxvZ0xldmVsV2Fy
bmluZzsKKyAgICAgICAgICAgICAgICBsb2dDaGFubmVsTGV2ZWwgPSBXVEZMb2dMZXZlbDo6V2Fy
bmluZzsKICAgICAgICAgICAgIGVsc2UgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNl
KGxldmVsLCAiaW5mbyIpKQotICAgICAgICAgICAgICAgIGxvZ0NoYW5uZWxMZXZlbCA9IFdURkxv
Z0xldmVsSW5mbzsKKyAgICAgICAgICAgICAgICBsb2dDaGFubmVsTGV2ZWwgPSBXVEZMb2dMZXZl
bDo6SW5mbzsKICAgICAgICAgICAgIGVsc2UgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlD
YXNlKGxldmVsLCAiZGVidWciKSkKLSAgICAgICAgICAgICAgICBsb2dDaGFubmVsTGV2ZWwgPSBX
VEZMb2dMZXZlbERlYnVnOworICAgICAgICAgICAgICAgIGxvZ0NoYW5uZWxMZXZlbCA9IFdURkxv
Z0xldmVsOjpEZWJ1ZzsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBXVEZMb2dB
bHdheXMoIlVua25vd24gbG9nZ2luZyBsZXZlbDogJXMiLCBsZXZlbC51dGY4KCkuZGF0YSgpKTsK
ICAgICAgICAgfQpJbmRleDogU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuaAkocmV2aXNpb24gMjQyODAzKQorKysgU291
cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDgsOCArMTQ4LDkg
QEAgZXh0ZXJuICJDIiB7CiAjZGVmaW5lIE5PX1JFVFVSTl9EVUVfVE9fQ1JBU0gKICNlbmRpZgog
Ci10eXBlZGVmIGVudW0geyBXVEZMb2dDaGFubmVsT2ZmLCBXVEZMb2dDaGFubmVsT24sIFdURkxv
Z0NoYW5uZWxPbldpdGhBY2N1bXVsYXRpb24gfSBXVEZMb2dDaGFubmVsU3RhdGU7Ci10eXBlZGVm
IGVudW0geyBXVEZMb2dMZXZlbEFsd2F5cywgV1RGTG9nTGV2ZWxFcnJvciwgV1RGTG9nTGV2ZWxX
YXJuaW5nLCBXVEZMb2dMZXZlbEluZm8sIFdURkxvZ0xldmVsRGVidWcgfSBXVEZMb2dMZXZlbDsK
KyNpZmRlZiBfX2NwbHVzcGx1cworZW51bSBjbGFzcyBXVEZMb2dDaGFubmVsU3RhdGUgOiB1aW50
OF90IHsgT2ZmLCBPbiwgT25XaXRoQWNjdW11bGF0aW9uIH07CitlbnVtIGNsYXNzIFdURkxvZ0xl
dmVsIDogdWludDhfdCB7IEFsd2F5cywgRXJyb3IsIFdhcm5pbmcsIEluZm8sIERlYnVnIH07CiAK
IHR5cGVkZWYgc3RydWN0IHsKICAgICBXVEZMb2dDaGFubmVsU3RhdGUgc3RhdGU7CkBAIC0xNjAs
NiArMTYxLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgewogICAgIF9fdW5zYWZlX3VucmV0YWluZWQgb3Nf
bG9nX3Qgb3NMb2dDaGFubmVsOwogI2VuZGlmCiB9IFdURkxvZ0NoYW5uZWw7CisjZW5kaWYKIAog
I2RlZmluZSBMT0dfQ0hBTk5FTChuYW1lKSBKT0lOX0xPR19DSEFOTkVMX1dJVEhfUFJFRklYKExP
R19DSEFOTkVMX1BSRUZJWCwgbmFtZSkKICNkZWZpbmUgTE9HX0NIQU5ORUxfQUREUkVTUyhuYW1l
KSAmTE9HX0NIQU5ORUwobmFtZSksCkBAIC0xNzQsMTAgKzE3NiwxMCBAQCB0eXBlZGVmIHN0cnVj
dCB7CiAjaWYgIWRlZmluZWQoREVGSU5FX0xPR19DSEFOTkVMKQogI2lmIFJFTEVBU0VfTE9HX0RJ
U0FCTEVECiAjZGVmaW5lIERFRklORV9MT0dfQ0hBTk5FTChuYW1lLCBzdWJzeXN0ZW0pIFwKLSAg
ICBXVEZMb2dDaGFubmVsIExPR19DSEFOTkVMKG5hbWUpID0geyBXVEZMb2dDaGFubmVsT2ZmLCAj
bmFtZSwgV1RGTG9nTGV2ZWxFcnJvciB9OworICAgIFdURkxvZ0NoYW5uZWwgTE9HX0NIQU5ORUwo
bmFtZSkgPSB7IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T2ZmLCAjbmFtZSwgV1RGTG9nTGV2ZWw6OkVy
cm9yIH07CiAjZWxzZQogI2RlZmluZSBERUZJTkVfTE9HX0NIQU5ORUwobmFtZSwgc3Vic3lzdGVt
KSBcCi0gICAgV1RGTG9nQ2hhbm5lbCBMT0dfQ0hBTk5FTChuYW1lKSA9IHsgV1RGTG9nQ2hhbm5l
bE9mZiwgI25hbWUsIFdURkxvZ0xldmVsRXJyb3IsIHN1YnN5c3RlbSwgT1NfTE9HX0RFRkFVTFQg
fTsKKyAgICBXVEZMb2dDaGFubmVsIExPR19DSEFOTkVMKG5hbWUpID0geyBXVEZMb2dDaGFubmVs
U3RhdGU6Ok9mZiwgI25hbWUsIFdURkxvZ0xldmVsOjpFcnJvciwgc3Vic3lzdGVtLCBPU19MT0df
REVGQVVMVCB9OwogI2VuZGlmCiAjZW5kaWYKIApAQCAtMTg3LDIxICsxODksMjUgQEAgV1RGX0VY
UE9SVF9QUklWQVRFIHZvaWQgV1RGUmVwb3J0QXNzZXJ0aQogV1RGX0VYUE9SVF9QUklWQVRFIHZv
aWQgV1RGUmVwb3J0QXJndW1lbnRBc3NlcnRpb25GYWlsdXJlKGNvbnN0IGNoYXIqIGZpbGUsIGlu
dCBsaW5lLCBjb25zdCBjaGFyKiBmdW5jdGlvbiwgY29uc3QgY2hhciogYXJnTmFtZSwgY29uc3Qg
Y2hhciogYXNzZXJ0aW9uKTsKIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIFdURlJlcG9ydEZhdGFs
RXJyb3IoY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uLCBj
b25zdCBjaGFyKiBmb3JtYXQsIC4uLikgV1RGX0FUVFJJQlVURV9QUklOVEYoNCwgNSk7CiBXVEZf
RVhQT1JUX1BSSVZBVEUgdm9pZCBXVEZSZXBvcnRFcnJvcihjb25zdCBjaGFyKiBmaWxlLCBpbnQg
bGluZSwgY29uc3QgY2hhciogZnVuY3Rpb24sIGNvbnN0IGNoYXIqIGZvcm1hdCwgLi4uKSBXVEZf
QVRUUklCVVRFX1BSSU5URig0LCA1KTsKKyNpZmRlZiBfX2NwbHVzcGx1cwogV1RGX0VYUE9SVF9Q
UklWQVRFIHZvaWQgV1RGTG9nKFdURkxvZ0NoYW5uZWwqLCBjb25zdCBjaGFyKiBmb3JtYXQsIC4u
LikgV1RGX0FUVFJJQlVURV9QUklOVEYoMiwgMyk7CiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBX
VEZMb2dWZXJib3NlKGNvbnN0IGNoYXIqIGZpbGUsIGludCBsaW5lLCBjb25zdCBjaGFyKiBmdW5j
dGlvbiwgV1RGTG9nQ2hhbm5lbCosIGNvbnN0IGNoYXIqIGZvcm1hdCwgLi4uKSBXVEZfQVRUUklC
VVRFX1BSSU5URig1LCA2KTsKKyNlbmRpZgogV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgV1RGTG9n
QWx3YXlzVihjb25zdCBjaGFyKiBmb3JtYXQsIHZhX2xpc3QpOwogV1RGX0VYUE9SVF9QUklWQVRF
IHZvaWQgV1RGTG9nQWx3YXlzKGNvbnN0IGNoYXIqIGZvcm1hdCwgLi4uKSBXVEZfQVRUUklCVVRF
X1BSSU5URigxLCAyKTsKIFdURl9FWFBPUlRfUFJJVkFURSBOT19SRVRVUk5fRFVFX1RPX0NSQVNI
IHZvaWQgV1RGTG9nQWx3YXlzQW5kQ3Jhc2goY29uc3QgY2hhciogZm9ybWF0LCAuLi4pIFdURl9B
VFRSSUJVVEVfUFJJTlRGKDEsIDIpOworI2lmZGVmIF9fY3BsdXNwbHVzCiBXVEZfRVhQT1JUX1BS
SVZBVEUgV1RGTG9nQ2hhbm5lbCogV1RGTG9nQ2hhbm5lbEJ5TmFtZShXVEZMb2dDaGFubmVsKltd
LCBzaXplX3QgY291bnQsIGNvbnN0IGNoYXIqKTsKIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIFdU
RkluaXRpYWxpemVMb2dDaGFubmVsU3RhdGVzRnJvbVN0cmluZyhXVEZMb2dDaGFubmVsKltdLCBz
aXplX3QgY291bnQsIGNvbnN0IGNoYXIqKTsKIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIFdURkxv
Z1dpdGhMZXZlbChXVEZMb2dDaGFubmVsKiwgV1RGTG9nTGV2ZWwsIGNvbnN0IGNoYXIqIGZvcm1h
dCwgLi4uKSBXVEZfQVRUUklCVVRFX1BSSU5URigzLCA0KTsKIFdURl9FWFBPUlRfUFJJVkFURSB2
b2lkIFdURlNldExvZ0NoYW5uZWxMZXZlbChXVEZMb2dDaGFubmVsKiwgV1RGTG9nTGV2ZWwpOwog
V1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgV1RGV2lsbExvZ1dpdGhMZXZlbChXVEZMb2dDaGFubmVs
KiwgV1RGTG9nTGV2ZWwpOworI2VuZGlmCiAKIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIFdURkdl
dEJhY2t0cmFjZSh2b2lkKiogc3RhY2ssIGludCogc2l6ZSk7CiBXVEZfRVhQT1JUX1BSSVZBVEUg
dm9pZCBXVEZSZXBvcnRCYWNrdHJhY2Uodm9pZCk7CiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBX
VEZQcmludEJhY2t0cmFjZSh2b2lkKiogc3RhY2ssIGludCBzaXplKTsKLSNpZiAhUkVMRUFTRV9M
T0dfRElTQUJMRUQKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQgJiYgZGVmaW5lZCBfX2NwbHVz
cGx1cwogV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgV1RGUmVsZWFzZUxvZ1N0YWNrVHJhY2UoV1RG
TG9nQ2hhbm5lbCopOwogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL0xvZ2dlci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0xvZ2dlci5oCShyZXZpc2lvbiAyNDI4MDMpCisr
KyBTb3VyY2UvV1RGL3d0Zi9Mb2dnZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTI1LDQ3ICsxMjUs
NDcgQEAgcHVibGljOgogICAgICAgICAvLyAgb24gc29tZSBzeXN0ZW1zLCBzbyBkb24ndCBhbGxv
dyBpdC4KICAgICAgICAgVU5VU0VEX1BBUkFNKGNoYW5uZWwpOwogI2Vsc2UKLSAgICAgICAgaWYg
KCF3aWxsTG9nKGNoYW5uZWwsIFdURkxvZ0xldmVsQWx3YXlzKSkKKyAgICAgICAgaWYgKCF3aWxs
TG9nKGNoYW5uZWwsIFdURkxvZ0xldmVsOjpBbHdheXMpKQogICAgICAgICAgICAgcmV0dXJuOwog
Ci0gICAgICAgIGxvZyhjaGFubmVsLCBXVEZMb2dMZXZlbEFsd2F5cywgYXJndW1lbnRzLi4uKTsK
KyAgICAgICAgbG9nKGNoYW5uZWwsIFdURkxvZ0xldmVsOjpBbHdheXMsIGFyZ3VtZW50cy4uLik7
CiAjZW5kaWYKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudHM+CiAg
ICAgaW5saW5lIHZvaWQgZXJyb3IoV1RGTG9nQ2hhbm5lbCYgY2hhbm5lbCwgY29uc3QgQXJndW1l
bnRzJi4uLiBhcmd1bWVudHMpIGNvbnN0CiAgICAgewotICAgICAgICBpZiAoIXdpbGxMb2coY2hh
bm5lbCwgV1RGTG9nTGV2ZWxFcnJvcikpCisgICAgICAgIGlmICghd2lsbExvZyhjaGFubmVsLCBX
VEZMb2dMZXZlbDo6RXJyb3IpKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGxvZyhj
aGFubmVsLCBXVEZMb2dMZXZlbEVycm9yLCBhcmd1bWVudHMuLi4pOworICAgICAgICBsb2coY2hh
bm5lbCwgV1RGTG9nTGV2ZWw6OkVycm9yLCBhcmd1bWVudHMuLi4pOwogICAgIH0KIAogICAgIHRl
bXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KICAgICBpbmxpbmUgdm9pZCB3YXJuaW5nKFdU
RkxvZ0NoYW5uZWwmIGNoYW5uZWwsIGNvbnN0IEFyZ3VtZW50cyYuLi4gYXJndW1lbnRzKSBjb25z
dAogICAgIHsKLSAgICAgICAgaWYgKCF3aWxsTG9nKGNoYW5uZWwsIFdURkxvZ0xldmVsV2Fybmlu
ZykpCisgICAgICAgIGlmICghd2lsbExvZyhjaGFubmVsLCBXVEZMb2dMZXZlbDo6V2FybmluZykp
CiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgbG9nKGNoYW5uZWwsIFdURkxvZ0xldmVs
V2FybmluZywgYXJndW1lbnRzLi4uKTsKKyAgICAgICAgbG9nKGNoYW5uZWwsIFdURkxvZ0xldmVs
OjpXYXJuaW5nLCBhcmd1bWVudHMuLi4pOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1l
Li4uIEFyZ3VtZW50cz4KICAgICBpbmxpbmUgdm9pZCBpbmZvKFdURkxvZ0NoYW5uZWwmIGNoYW5u
ZWwsIGNvbnN0IEFyZ3VtZW50cyYuLi4gYXJndW1lbnRzKSBjb25zdAogICAgIHsKLSAgICAgICAg
aWYgKCF3aWxsTG9nKGNoYW5uZWwsIFdURkxvZ0xldmVsSW5mbykpCisgICAgICAgIGlmICghd2ls
bExvZyhjaGFubmVsLCBXVEZMb2dMZXZlbDo6SW5mbykpCiAgICAgICAgICAgICByZXR1cm47CiAK
LSAgICAgICAgbG9nKGNoYW5uZWwsIFdURkxvZ0xldmVsSW5mbywgYXJndW1lbnRzLi4uKTsKKyAg
ICAgICAgbG9nKGNoYW5uZWwsIFdURkxvZ0xldmVsOjpJbmZvLCBhcmd1bWVudHMuLi4pOwogICAg
IH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KICAgICBpbmxpbmUgdm9p
ZCBkZWJ1ZyhXVEZMb2dDaGFubmVsJiBjaGFubmVsLCBjb25zdCBBcmd1bWVudHMmLi4uIGFyZ3Vt
ZW50cykgY29uc3QKICAgICB7Ci0gICAgICAgIGlmICghd2lsbExvZyhjaGFubmVsLCBXVEZMb2dM
ZXZlbERlYnVnKSkKKyAgICAgICAgaWYgKCF3aWxsTG9nKGNoYW5uZWwsIFdURkxvZ0xldmVsOjpE
ZWJ1ZykpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgbG9nKGNoYW5uZWwsIFdURkxv
Z0xldmVsRGVidWcsIGFyZ3VtZW50cy4uLik7CisgICAgICAgIGxvZyhjaGFubmVsLCBXVEZMb2dM
ZXZlbDo6RGVidWcsIGFyZ3VtZW50cy4uLik7CiAgICAgfQogCiAgICAgaW5saW5lIGJvb2wgd2ls
bExvZyhjb25zdCBXVEZMb2dDaGFubmVsJiBjaGFubmVsLCBXVEZMb2dMZXZlbCBsZXZlbCkgY29u
c3QKQEAgLTE3MywxMCArMTczLDEwIEBAIHB1YmxpYzoKICAgICAgICAgaWYgKCFtX2VuYWJsZWQp
CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgaWYgKGxldmVsIDw9IFdURkxv
Z0xldmVsRXJyb3IpCisgICAgICAgIGlmIChsZXZlbCA8PSBXVEZMb2dMZXZlbDo6RXJyb3IpCiAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgICAgICBpZiAoY2hhbm5lbC5zdGF0ZSA9PSBX
VEZMb2dDaGFubmVsT2ZmIHx8IGxldmVsID4gY2hhbm5lbC5sZXZlbCkKKyAgICAgICAgaWYgKGNo
YW5uZWwuc3RhdGUgPT0gV1RGTG9nQ2hhbm5lbFN0YXRlOjpPZmYgfHwgbGV2ZWwgPiBjaGFubmVs
LmxldmVsKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgIHJldHVybiBtX2Vu
YWJsZWQ7CkBAIC0yMzksNyArMjM5LDcgQEAgcHJpdmF0ZToKICAgICAgICAgb3NfbG9nKGNoYW5u
ZWwub3NMb2dDaGFubmVsLCAiJXtwdWJsaWN9cyIsIGxvZ01lc3NhZ2UudXRmOCgpLmRhdGEoKSk7
CiAjZW5kaWYKIAotICAgICAgICBpZiAoY2hhbm5lbC5zdGF0ZSA9PSBXVEZMb2dDaGFubmVsT2Zm
IHx8IGxldmVsID4gY2hhbm5lbC5sZXZlbCkKKyAgICAgICAgaWYgKGNoYW5uZWwuc3RhdGUgPT0g
V1RGTG9nQ2hhbm5lbFN0YXRlOjpPZmYgfHwgbGV2ZWwgPiBjaGFubmVsLmxldmVsKQogICAgICAg
ICAgICAgcmV0dXJuOwogCiAgICAgICAgIGZvciAoT2JzZXJ2ZXImIG9ic2VydmVyIDogb2JzZXJ2
ZXJzKCkpCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAJKHJl
dmlzaW9uIDI0MjgwMykKKysrIFNvdXJjZS9XVEYvd3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDkgKzM1LDkgQEAKIG5hbWVzcGFjZSBXVEYgewogCiAj
aWYgUkVMRUFTRV9MT0dfRElTQUJMRUQKLVdURkxvZ0NoYW5uZWwgTG9nTWVtb3J5UHJlc3N1cmUg
PSB7IFdURkxvZ0NoYW5uZWxPbiwgIk1lbW9yeVByZXNzdXJlIiwgV1RGTG9nTGV2ZWxFcnJvciB9
OworV1RGTG9nQ2hhbm5lbCBMb2dNZW1vcnlQcmVzc3VyZSA9IHsgV1RGTG9nQ2hhbm5lbFN0YXRl
OjpPbiwgIk1lbW9yeVByZXNzdXJlIiwgV1RGTG9nTGV2ZWw6OkVycm9yIH07CiAjZWxzZQotV1RG
TG9nQ2hhbm5lbCBMb2dNZW1vcnlQcmVzc3VyZSA9IHsgV1RGTG9nQ2hhbm5lbE9uLCAiTWVtb3J5
UHJlc3N1cmUiLCBXVEZMb2dMZXZlbEVycm9yLCBMT0dfQ0hBTk5FTF9XRUJLSVRfU1VCU1lTVEVN
LCBPU19MT0dfREVGQVVMVCB9OworV1RGTG9nQ2hhbm5lbCBMb2dNZW1vcnlQcmVzc3VyZSA9IHsg
V1RGTG9nQ2hhbm5lbFN0YXRlOjpPbiwgIk1lbW9yeVByZXNzdXJlIiwgV1RGTG9nTGV2ZWw6OkVy
cm9yLCBMT0dfQ0hBTk5FTF9XRUJLSVRfU1VCU1lTVEVNLCBPU19MT0dfREVGQVVMVCB9OwogI2Vu
ZGlmCiAKIFdURl9FWFBPUlRfUFJJVkFURSBib29sIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6UmVs
aWVmTG9nZ2VyOjpzX2xvZ2dpbmdFbmFibGVkID0gZmFsc2U7CkluZGV4OiBTb3VyY2UvV1RGL3d0
Zi9SZWZDb3VudGVkTGVha0NvdW50ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3Rm
L1JlZkNvdW50ZWRMZWFrQ291bnRlci5jcHAJKHJldmlzaW9uIDI0MjgwMykKKysrIFNvdXJjZS9X
VEYvd3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDkg
KzQwLDkgQEAgdm9pZCBSZWZDb3VudGVkTGVha0NvdW50ZXI6OmRlY3JlbWVudCgpIAogCiAjZGVm
aW5lIExPR19DSEFOTkVMX1BSRUZJWCBMb2cKICNpZiBSRUxFQVNFX0xPR19ESVNBQkxFRAotc3Rh
dGljIFdURkxvZ0NoYW5uZWwgTG9nUmVmQ291bnRlZExlYWtzID0geyBXVEZMb2dDaGFubmVsT24s
ICJSZWZDb3VudGVkTGVha3MiLCBXVEZMb2dMZXZlbEVycm9yIH07CitzdGF0aWMgV1RGTG9nQ2hh
bm5lbCBMb2dSZWZDb3VudGVkTGVha3MgPSB7IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T24sICJSZWZD
b3VudGVkTGVha3MiLCBXVEZMb2dMZXZlbDo6RXJyb3IgfTsKICNlbHNlCi1zdGF0aWMgV1RGTG9n
Q2hhbm5lbCBMb2dSZWZDb3VudGVkTGVha3MgPSB7IFdURkxvZ0NoYW5uZWxPbiwgIlJlZkNvdW50
ZWRMZWFrcyIsIFdURkxvZ0xldmVsRXJyb3IsIExPR19DSEFOTkVMX1dFQktJVF9TVUJTWVNURU0s
IE9TX0xPR19ERUZBVUxUIH07CitzdGF0aWMgV1RGTG9nQ2hhbm5lbCBMb2dSZWZDb3VudGVkTGVh
a3MgPSB7IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T24sICJSZWZDb3VudGVkTGVha3MiLCBXVEZMb2dM
ZXZlbDo6RXJyb3IsIExPR19DSEFOTkVMX1dFQktJVF9TVUJTWVNURU0sIE9TX0xPR19ERUZBVUxU
IH07CiAjZW5kaWYKIAogdHlwZWRlZiBIYXNoQ291bnRlZFNldDxjb25zdCBjaGFyKiwgUHRySGFz
aDxjb25zdCBjaGFyKj4+IFJlYXNvblNldDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0Mjgw
MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDM5IEBACisyMDE5LTAzLTE4ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgTWFrZSBXVEZMb2dDaGFubmVsU3RhdGUgYW5kIFdURkxvZ0xldmVs
IGVudW0gY2xhc3NlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTk1OTA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpyZW1vdmVTYW1wbGVzRnJvbVRyYWNrQnVmZmVyKToKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkxpYldlYlJUQ01lZGlhRW5kcG9pbnQ6Ok9uU3RhdHNEZWxpdmVyZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRDTWVkaWFFbmRwb2ludDo6c3RhdHNMb2dJbnRlcnZh
bCBjb25zdCk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Om1lc3NhZ2VMZXZlbEZyb21XVEZMb2dMZXZlbCk6CisgICAgICAgICogaHRtbC9GVFBEaXJlY3Rv
cnlEb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGVFBEaXJlY3RvcnlEb2N1bWVudDo6
RlRQRGlyZWN0b3J5RG9jdW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZWVrVGFzayk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZWxlY3ROZXh0U291cmNlQ2hpbGQpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c291cmNlV2FzQWRkZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c291cmNlV2FzUmVtb3ZlZCk6CisgICAg
ICAgICogaW5zcGVjdG9yL2FnZW50cy9XZWJDb25zb2xlQWdlbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViQ29uc29sZUFnZW50OjpnZXRMb2dnaW5nQ2hhbm5lbHMpOgorICAgICAgICAoV2Vi
Q29yZTo6Y2hhbm5lbENvbmZpZ3VyYXRpb25Gb3JTdHJpbmcpOgorICAgICAgICAqIHBsYXRmb3Jt
L0xvZ2dpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNMb2dDaGFubmVsRW5hYmxlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpzZXRMb2dDaGFubmVsVG9BY2N1bXVsYXRlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLm1tOgorICAgICAgICAoLVtXZWJDb3JlQVZGTW92aWVPYnNlcnZlciBvYnNl
cnZlVmFsdWVGb3JLZXlQYXRoOm9mT2JqZWN0OmNoYW5nZTpjb250ZXh0Ol0pOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZW5xdWV1ZVZpZGVvU2FtcGxlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6aW5pdGlhbGl6ZVBlZXJDb25uZWN0aW9uRmFjdG9yeUFuZFRocmVhZHMpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Y29tcG9zaXRpbmdMb2dFbmFibGVkKToKKwogMjAxOS0wMy0xMiAgWmFsYW4gQnVq
dGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtTeW50aGV0aWMgQ2xpY2tdIERpc3Bh
dGNoIG1vdXNlb3V0IHNvb24gYWZ0ZXIgbW91c2V1cApJbmRleDogU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcAkocmV2aXNpb24gMjQy
ODAzKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NDEsNyArNzQxLDcgQEAgc3RhdGljIFBsYXRmb3JtVGlt
ZVJhbmdlcyByZW1vdmVTYW1wbGVzRgogICAgIHNpemVfdCBieXRlc1JlbW92ZWQgPSAwOwogICAg
IGF1dG8gbG9nSWRlbnRpZmllciA9IFdURjo6TG9nZ2VyOjpMb2dTaXRlSWRlbnRpZmllcihidWZm
ZXItPmxvZ0NsYXNzTmFtZSgpLCBsb2dQcmVmaXgsIGJ1ZmZlci0+bG9nSWRlbnRpZmllcigpKTsK
ICAgICBhdXRvJiBsb2dnZXIgPSBidWZmZXItPmxvZ2dlcigpOwotICAgIGF1dG8gd2lsbExvZyA9
IGxvZ2dlci53aWxsTG9nKGJ1ZmZlci0+bG9nQ2hhbm5lbCgpLCBXVEZMb2dMZXZlbERlYnVnKTsK
KyAgICBhdXRvIHdpbGxMb2cgPSBsb2dnZXIud2lsbExvZyhidWZmZXItPmxvZ0NoYW5uZWwoKSwg
V1RGTG9nTGV2ZWw6OkRlYnVnKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGxvZ1ByZWZpeCk7
CiAgICAgVU5VU0VEX1BBUkFNKGJ1ZmZlcik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENNZWRpYUVuZHBvaW50LmNwcAkocmV2aXNpb24gMjQyODAzKQorKysgU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTg3OSw3ICs4NzksNyBAQCB2b2lkIExpYldlYlJUQ01lZGlh
RW5kcG9pbnQ6Ok9uU3RhdHNEZWxpCiAgICAgICAgIH0KIAogICAgICAgICBmb3IgKGF1dG8gaXRl
cmF0b3IgPSByZXBvcnQtPmJlZ2luKCk7IGl0ZXJhdG9yICE9IHJlcG9ydC0+ZW5kKCk7ICsraXRl
cmF0b3IpIHsKLSAgICAgICAgICAgIGlmIChsb2dnZXIoKS53aWxsTG9nKGxvZ0NoYW5uZWwoKSwg
V1RGTG9nTGV2ZWxEZWJ1ZykpIHsKKyAgICAgICAgICAgIGlmIChsb2dnZXIoKS53aWxsTG9nKGxv
Z0NoYW5uZWwoKSwgV1RGTG9nTGV2ZWw6OkRlYnVnKSkgewogICAgICAgICAgICAgICAgIC8vIFN0
YXRzIGFyZSB2ZXJ5IHZlcmJvc2UsIGxldCdzIG9ubHkgZGlzcGxheSB0aGVtIGluIGluc3BlY3Rv
ciBjb25zb2xlIGluIHZlcmJvc2UgbW9kZS4KICAgICAgICAgICAgICAgICBsb2dnZXIoKS5kZWJ1
ZyhMb2dXZWJSVEMsCiAgICAgICAgICAgICAgICAgICAgIExvZ2dlcjo6TG9nU2l0ZUlkZW50aWZp
ZXIoIkxpYldlYlJUQ01lZGlhRW5kcG9pbnQiLCAiT25TdGF0c0RlbGl2ZXJlZCIsIGxvZ0lkZW50
aWZpZXIoKSksCkBAIC05MTgsNyArOTE4LDcgQEAgV1RGTG9nQ2hhbm5lbCYgTGliV2ViUlRDTWVk
aWFFbmRwb2ludDo6bAogCiBTZWNvbmRzIExpYldlYlJUQ01lZGlhRW5kcG9pbnQ6OnN0YXRzTG9n
SW50ZXJ2YWwoaW50NjRfdCByZXBvcnRUaW1lc3RhbXApIGNvbnN0CiB7Ci0gICAgaWYgKGxvZ2dl
cigpLndpbGxMb2cobG9nQ2hhbm5lbCgpLCBXVEZMb2dMZXZlbEluZm8pKQorICAgIGlmIChsb2dn
ZXIoKS53aWxsTG9nKGxvZ0NoYW5uZWwoKSwgV1RGTG9nTGV2ZWw6OkluZm8pKQogICAgICAgICBy
ZXR1cm4gMl9zOwogCiAgICAgaWYgKHJlcG9ydFRpbWVzdGFtcCAtIG1fc3RhdHNGaXJzdERlbGl2
ZXJlZFRpbWVzdGFtcCA+IDE1MDAwMDAwKQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCShy
ZXZpc2lvbiAyNDI4MDMpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC04NTQ5LDE4ICs4NTQ5LDE4IEBAIHN0YXRpYyBNZXNzYWdlU291cmNlIG1l
c3NhZ2VTb3VyY2VGb3JXVEYKIHN0YXRpYyBNZXNzYWdlTGV2ZWwgbWVzc2FnZUxldmVsRnJvbVdU
RkxvZ0xldmVsKFdURkxvZ0xldmVsIGxldmVsKQogewogICAgIHN3aXRjaCAobGV2ZWwpIHsKLSAg
ICBjYXNlIFdURkxvZ0xldmVsQWx3YXlzOgorICAgIGNhc2UgV1RGTG9nTGV2ZWw6OkFsd2F5czoK
ICAgICAgICAgcmV0dXJuIE1lc3NhZ2VMZXZlbDo6TG9nOwotICAgIGNhc2UgV1RGTG9nTGV2ZWxF
cnJvcjoKKyAgICBjYXNlIFdURkxvZ0xldmVsOjpFcnJvcjoKICAgICAgICAgcmV0dXJuIE1lc3Nh
Z2VMZXZlbDo6RXJyb3I7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgV1RGTG9nTGV2ZWxXYXJu
aW5nOgorICAgIGNhc2UgV1RGTG9nTGV2ZWw6Oldhcm5pbmc6CiAgICAgICAgIHJldHVybiBNZXNz
YWdlTGV2ZWw6Oldhcm5pbmc7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgV1RGTG9nTGV2ZWxJ
bmZvOgorICAgIGNhc2UgV1RGTG9nTGV2ZWw6OkluZm86CiAgICAgICAgIHJldHVybiBNZXNzYWdl
TGV2ZWw6OkluZm87CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgV1RGTG9nTGV2ZWxEZWJ1ZzoK
KyAgICBjYXNlIFdURkxvZ0xldmVsOjpEZWJ1ZzoKICAgICAgICAgcmV0dXJuIE1lc3NhZ2VMZXZl
bDo6RGVidWc7CiAgICAgICAgIGJyZWFrOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0
bWwvRlRQRGlyZWN0b3J5RG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvRlRQRGlyZWN0b3J5RG9jdW1lbnQuY3BwCShyZXZpc2lvbiAyNDI4MDMpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0ZUUERpcmVjdG9yeURvY3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNDI1LDcgKzQyNSw3IEBAIEZUUERpcmVjdG9yeURvY3VtZW50OjpGVFBEaXJlY3RvcnlEb2N1
bWUKICAgICA6IEhUTUxEb2N1bWVudChmcmFtZSwgdXJsKQogewogI2lmICFMT0dfRElTQUJMRUQK
LSAgICBMb2dGVFAuc3RhdGUgPSBXVEZMb2dDaGFubmVsT247CisgICAgTG9nRlRQLnN0YXRlID0g
V1RGTG9nQ2hhbm5lbFN0YXRlOjpPbjsKICNlbmRpZgogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAJKHJldmlzaW9uIDI0MjgwMykKKysrIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwODMs
NyArMzA4Myw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2Vla1Rhc2soKQogICAgIC8vIHRp
bWUgc2NhbGUsIHdlIHdpbGwgYXNrIHRoZSBtZWRpYSBlbmdpbmUgdG8gInNlZWsiIHRvIHRoZSBj
dXJyZW50IG1vdmllIHRpbWUsIHdoaWNoIG1heSBiZSBhIG5vb3AgYW5kCiAgICAgLy8gbm90IGdl
bmVyYXRlIGEgdGltZWNoYW5nZWQgY2FsbGJhY2suIFRoaXMgbWVhbnMgbV9zZWVraW5nIHdpbGwg
bmV2ZXIgYmUgY2xlYXJlZCBhbmQgd2Ugd2lsbCBuZXZlcgogICAgIC8vIGZpcmUgYSAnc2Vla2Vk
JyBldmVudC4KLSAgICBpZiAod2lsbExvZyhXVEZMb2dMZXZlbERlYnVnKSkgeworICAgIGlmICh3
aWxsTG9nKFdURkxvZ0xldmVsOjpEZWJ1ZykpIHsKICAgICAgICAgTWVkaWFUaW1lIG1lZGlhVGlt
ZSA9IG1fcGxheWVyLT5tZWRpYVRpbWVGb3JUaW1lVmFsdWUodGltZSk7CiAgICAgICAgIGlmICh0
aW1lICE9IG1lZGlhVGltZSkKICAgICAgICAgICAgIERFQlVHX0xPRyhMT0dJREVOVElGSUVSLCB0
aW1lLCAiIG1lZGlhIHRpbWVsaW5lIGVxdWl2YWxlbnQgaXMgIiwgbWVkaWFUaW1lKTsKQEAgLTQ2
NTksNyArNDY1OSw3IEBAIFVSTCBIVE1MTWVkaWFFbGVtZW50OjpzZWxlY3ROZXh0U291cmNlQ2gK
ICAgICBVTlVTRURfUEFSQU0oa2V5U3lzdGVtKTsKIAogICAgIC8vIERvbid0IGxvZyBpZiB0aGlz
IHdhcyBqdXN0IGNhbGxlZCB0byBmaW5kIG91dCBpZiB0aGVyZSBhcmUgYW55IHZhbGlkIDxzb3Vy
Y2U+IGVsZW1lbnRzLgotICAgIGJvb2wgc2hvdWxkTG9nID0gd2lsbExvZyhXVEZMb2dMZXZlbERl
YnVnKSAmJiBhY3Rpb25JZkludmFsaWQgIT0gRG9Ob3RoaW5nOworICAgIGJvb2wgc2hvdWxkTG9n
ID0gd2lsbExvZyhXVEZMb2dMZXZlbDo6RGVidWcpICYmIGFjdGlvbklmSW52YWxpZCAhPSBEb05v
dGhpbmc7CiAgICAgaWYgKHNob3VsZExvZykKICAgICAgICAgSU5GT19MT0coTE9HSURFTlRJRklF
Uik7CiAKQEAgLTQ3NTgsNyArNDc1OCw3IEBAIENoZWNrQWdhaW46CiAKIHZvaWQgSFRNTE1lZGlh
RWxlbWVudDo6c291cmNlV2FzQWRkZWQoSFRNTFNvdXJjZUVsZW1lbnQmIHNvdXJjZSkKIHsKLSAg
ICBpZiAod2lsbExvZyhXVEZMb2dMZXZlbEluZm8pICYmIHNvdXJjZS5oYXNUYWdOYW1lKHNvdXJj
ZVRhZykpIHsKKyAgICBpZiAod2lsbExvZyhXVEZMb2dMZXZlbDo6SW5mbykgJiYgc291cmNlLmhh
c1RhZ05hbWUoc291cmNlVGFnKSkgewogICAgICAgICBVUkwgdXJsID0gc291cmNlLmdldE5vbkVt
cHR5VVJMQXR0cmlidXRlKHNyY0F0dHIpOwogICAgICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVS
LCAiJ3NyYycgaXMgIiwgdXJsKTsKICAgICB9CkBAIC00ODEwLDcgKzQ4MTAsNyBAQCB2b2lkIEhU
TUxNZWRpYUVsZW1lbnQ6OnNvdXJjZVdhc0FkZGVkKEhUCiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6c291cmNlV2FzUmVtb3ZlZChIVE1MU291cmNlRWxlbWVudCYgc291cmNlKQogewotICAgIGlm
ICh3aWxsTG9nKFdURkxvZ0xldmVsSW5mbykgJiYgc291cmNlLmhhc1RhZ05hbWUoc291cmNlVGFn
KSkgeworICAgIGlmICh3aWxsTG9nKFdURkxvZ0xldmVsOjpJbmZvKSAmJiBzb3VyY2UuaGFzVGFn
TmFtZShzb3VyY2VUYWcpKSB7CiAgICAgICAgIFVSTCB1cmwgPSBzb3VyY2UuZ2V0Tm9uRW1wdHlV
UkxBdHRyaWJ1dGUoc3JjQXR0cik7CiAgICAgICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsICIn
c3JjJyBpcyAiLCB1cmwpOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvV2ViQ29uc29sZUFnZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL1dlYkNvbnNvbGVBZ2VudC5jcHAJKHJldmlzaW9uIDI0MjgwMykKKysr
IFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvV2ViQ29uc29sZUFnZW50LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNjgsMTUgKzY4LDE1IEBAIHZvaWQgV2ViQ29uc29sZUFnZW50OjpnZXRM
b2dnaW5nQ2hhbm5lbHMKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBhdXRvIGxldmVs
ID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6Q29uc29sZTo6Q2hhbm5lbExldmVsOjpPZmY7Ci0gICAg
ICAgIGlmIChsb2dDaGFubmVsLT5zdGF0ZSAhPSBXVEZMb2dDaGFubmVsT2ZmKSB7CisgICAgICAg
IGlmIChsb2dDaGFubmVsLT5zdGF0ZSAhPSBXVEZMb2dDaGFubmVsU3RhdGU6Ok9mZikgewogICAg
ICAgICAgICAgc3dpdGNoIChsb2dDaGFubmVsLT5sZXZlbCkgewotICAgICAgICAgICAgY2FzZSBX
VEZMb2dMZXZlbEFsd2F5czoKLSAgICAgICAgICAgIGNhc2UgV1RGTG9nTGV2ZWxFcnJvcjoKLSAg
ICAgICAgICAgIGNhc2UgV1RGTG9nTGV2ZWxXYXJuaW5nOgorICAgICAgICAgICAgY2FzZSBXVEZM
b2dMZXZlbDo6QWx3YXlzOgorICAgICAgICAgICAgY2FzZSBXVEZMb2dMZXZlbDo6RXJyb3I6Cisg
ICAgICAgICAgICBjYXNlIFdURkxvZ0xldmVsOjpXYXJuaW5nOgogICAgICAgICAgICAgICAgIGxl
dmVsID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6Q29uc29sZTo6Q2hhbm5lbExldmVsOjpCYXNpYzsK
ICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgV1RGTG9nTGV2ZWxJbmZv
OgotICAgICAgICAgICAgY2FzZSBXVEZMb2dMZXZlbERlYnVnOgorICAgICAgICAgICAgY2FzZSBX
VEZMb2dMZXZlbDo6SW5mbzoKKyAgICAgICAgICAgIGNhc2UgV1RGTG9nTGV2ZWw6OkRlYnVnOgog
ICAgICAgICAgICAgICAgIGxldmVsID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6Q29uc29sZTo6Q2hh
bm5lbExldmVsOjpWZXJib3NlOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
fQpAQCAtOTYsMTQgKzk2LDE0IEBAIHN0YXRpYyBPcHRpb25hbDxzdGQ6OnBhaXI8V1RGTG9nQ2hh
bm5lbFMKICAgICBXVEZMb2dMZXZlbCBsZXZlbDsKIAogICAgIGlmIChlcXVhbElnbm9yaW5nQVND
SUlDYXNlKGxldmVsU3RyaW5nLCAib2ZmIikpIHsKLSAgICAgICAgc3RhdGUgPSBXVEZMb2dDaGFu
bmVsT2ZmOwotICAgICAgICBsZXZlbCA9IFdURkxvZ0xldmVsRXJyb3I7CisgICAgICAgIHN0YXRl
ID0gV1RGTG9nQ2hhbm5lbFN0YXRlOjpPZmY7CisgICAgICAgIGxldmVsID0gV1RGTG9nTGV2ZWw6
OkVycm9yOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIHN0YXRlID0gV1RGTG9nQ2hhbm5lbE9uOwor
ICAgICAgICBzdGF0ZSA9IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T247CiAgICAgICAgIGlmIChlcXVh
bElnbm9yaW5nQVNDSUlDYXNlKGxldmVsU3RyaW5nLCAiYmFzaWMiKSkKLSAgICAgICAgICAgIGxl
dmVsID0gV1RGTG9nTGV2ZWxXYXJuaW5nOworICAgICAgICAgICAgbGV2ZWwgPSBXVEZMb2dMZXZl
bDo6V2FybmluZzsKICAgICAgICAgZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShsZXZl
bFN0cmluZywgInZlcmJvc2UiKSkKLSAgICAgICAgICAgIGxldmVsID0gV1RGTG9nTGV2ZWxEZWJ1
ZzsKKyAgICAgICAgICAgIGxldmVsID0gV1RGTG9nTGV2ZWw6OkRlYnVnOwogICAgICAgICBlbHNl
CiAgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIH0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0xvZ2dpbmcuY3BwCShyZXZpc2lvbiAyNDI4MDMpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Mb2dnaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTQsNyArNTQsNyBAQCBi
b29sIGlzTG9nQ2hhbm5lbEVuYWJsZWQoY29uc3QgU3RyaW5nJiBuCiAgICAgV1RGTG9nQ2hhbm5l
bCogY2hhbm5lbCA9IFdURkxvZ0NoYW5uZWxCeU5hbWUobG9nQ2hhbm5lbHMsIGxvZ0NoYW5uZWxD
b3VudCwgbmFtZS51dGY4KCkuZGF0YSgpKTsKICAgICBpZiAoIWNoYW5uZWwpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICByZXR1cm4gY2hhbm5lbC0+c3RhdGUgIT0gV1RGTG9nQ2hhbm5lbE9m
ZjsKKyAgICByZXR1cm4gY2hhbm5lbC0+c3RhdGUgIT0gV1RGTG9nQ2hhbm5lbFN0YXRlOjpPZmY7
CiB9CiAKIHN0YXRpYyBib29sIGxvZ0NoYW5uZWxzTmVlZEluaXRpYWxpemF0aW9uID0gdHJ1ZTsK
QEAgLTY1LDcgKzY1LDcgQEAgdm9pZCBzZXRMb2dDaGFubmVsVG9BY2N1bXVsYXRlKGNvbnN0IFN0
cgogICAgIGlmICghY2hhbm5lbCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgY2hhbm5lbC0+c3Rh
dGUgPSBXVEZMb2dDaGFubmVsT25XaXRoQWNjdW11bGF0aW9uOworICAgIGNoYW5uZWwtPnN0YXRl
ID0gV1RGTG9nQ2hhbm5lbFN0YXRlOjpPbldpdGhBY2N1bXVsYXRpb247CiAgICAgbG9nQ2hhbm5l
bHNOZWVkSW5pdGlhbGl6YXRpb24gPSB0cnVlOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akMubW0JKHJldmlzaW9uIDI0MjgwMykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTM1NTEsNyArMzU1MSw3IEBAIC0gKHZvaWQpb2JzZXJ2ZVZh
bHVlRm9yS2V5UGF0aDprZXlQYXRoIG8KICAgICAgICAgfQogCiAjaWYgIVJFTEVBU0VfTE9HX0RJ
U0FCTEVECi0gICAgICAgIGlmIChwbGF5ZXItPmxvZ2dlcigpLndpbGxMb2cocGxheWVyLT5sb2dD
aGFubmVsKCksIFdURkxvZ0xldmVsRGVidWcpICYmICEoW2tleVBhdGggaXNFcXVhbFRvU3RyaW5n
OkAibG9hZGVkVGltZVJhbmdlcyJdIHx8IFtrZXlQYXRoIGlzRXF1YWxUb1N0cmluZzpAInNlZWth
YmxlVGltZVJhbmdlcyJdKSkgeworICAgICAgICBpZiAocGxheWVyLT5sb2dnZXIoKS53aWxsTG9n
KHBsYXllci0+bG9nQ2hhbm5lbCgpLCBXVEZMb2dMZXZlbDo6RGVidWcpICYmICEoW2tleVBhdGgg
aXNFcXVhbFRvU3RyaW5nOkAibG9hZGVkVGltZVJhbmdlcyJdIHx8IFtrZXlQYXRoIGlzRXF1YWxU
b1N0cmluZzpAInNlZWthYmxlVGltZVJhbmdlcyJdKSkgewogICAgICAgICAgICAgYXV0byBpZGVu
dGlmaWVyID0gTG9nZ2VyOjpMb2dTaXRlSWRlbnRpZmllcigiTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uIiwgIm9ic2VydmVWYWx1ZUZvcktleVBhdGgiLCBwbGF5ZXItPmxvZ0lkZW50aWZp
ZXIoKSk7CiAKICAgICAgICAgICAgIGlmIChzaG91bGRMb2dWYWx1ZSkgewpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQy5tbQkocmV2aXNpb24gMjQyODAzKQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zODUsNyArMzg1LDcgQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iagogICAgIHNhbXBsZS5vZmZzZXRU
aW1lc3RhbXBzQnkodGltZWxpbmVPZmZzZXQpOwogICAgIERFQlVHX0xPRyhMT0dJREVOVElGSUVS
LCAidXBkYXRlZCBzYW1wbGUgPSAiLCBzYW1wbGUpOwogCi0gICAgaWYgKFdJTExfTE9HKFdURkxv
Z0xldmVsRGVidWcpKSB7CisgICAgaWYgKFdJTExfTE9HKFdURkxvZ0xldmVsOjpEZWJ1ZykpIHsK
ICAgICAgICAgTWVkaWFUaW1lIG5vdyA9IHN0cmVhbVRpbWUoKTsKICAgICAgICAgZG91YmxlIGRl
bHRhID0gKHNhbXBsZS5wcmVzZW50YXRpb25UaW1lKCkgLSBub3cpLnRvRG91YmxlKCk7CiAgICAg
ICAgIGlmIChkZWx0YSA8IDApCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRl
ci5jcHAJKHJldmlzaW9uIDI0MjgwMykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEyNiwxMiArMTI2LDEyIEBAIHN0YXRpYyB2b2lkIGluaXRpYWxpemVQZWVyQ29ubmVjdGlvbkZh
Y3QKIAogI2lmIGRlZmluZWQoTkRFQlVHKQogI2lmICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0Vf
TE9HX0RJU0FCTEVECi0gICAgcnRjOjpMb2dNZXNzYWdlOjpMb2dUb0RlYnVnKExvZ1dlYlJUQy5z
dGF0ZSAhPSBXVEZMb2dDaGFubmVsT24gPyBydGM6OkxTX05PTkUgOiBydGM6OkxTX0lORk8pOwor
ICAgIHJ0Yzo6TG9nTWVzc2FnZTo6TG9nVG9EZWJ1ZyhMb2dXZWJSVEMuc3RhdGUgIT0gV1RGTG9n
Q2hhbm5lbFN0YXRlOjpPbiA/IHJ0Yzo6TFNfTk9ORSA6IHJ0Yzo6TFNfSU5GTyk7CiAjZWxzZQog
ICAgIHJ0Yzo6TG9nTWVzc2FnZTo6TG9nVG9EZWJ1ZyhydGM6OkxTX05PTkUpOwogI2VuZGlmCiAj
ZWxzZQotICAgIHJ0Yzo6TG9nTWVzc2FnZTo6TG9nVG9EZWJ1ZyhMb2dXZWJSVEMuc3RhdGUgIT0g
V1RGTG9nQ2hhbm5lbE9uID8gcnRjOjpMU19XQVJOSU5HIDogcnRjOjpMU19JTkZPKTsKKyAgICBy
dGM6OkxvZ01lc3NhZ2U6OkxvZ1RvRGVidWcoTG9nV2ViUlRDLnN0YXRlICE9IFdURkxvZ0NoYW5u
ZWxTdGF0ZTo6T24gPyBydGM6OkxTX1dBUk5JTkcgOiBydGM6OkxTX0lORk8pOwogI2VuZGlmCiAK
ICAgICBmYWN0b3J5QW5kVGhyZWFkcy5uZXR3b3JrVGhyZWFkID0gZmFjdG9yeUFuZFRocmVhZHMu
bmV0d29ya1RocmVhZFdpdGhTb2NrZXRTZXJ2ZXIgPyBydGM6OlRocmVhZDo6Q3JlYXRlV2l0aFNv
Y2tldFNlcnZlcigpIDogcnRjOjpUaHJlYWQ6OkNyZWF0ZSgpOwpJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAJKHJldmlzaW9u
IDI0MjgwMykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0
b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNzMsNyArMjczLDcgQEAgc3RydWN0IFJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6T3ZlcmxhcEV4dAogI2lmICFMT0dfRElTQUJMRUQKIHN0YXRpYyBpbmxp
bmUgYm9vbCBjb21wb3NpdGluZ0xvZ0VuYWJsZWQoKQogewotICAgIHJldHVybiBMb2dDb21wb3Np
dGluZy5zdGF0ZSA9PSBXVEZMb2dDaGFubmVsT247CisgICAgcmV0dXJuIExvZ0NvbXBvc2l0aW5n
LnN0YXRlID09IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T247CiB9CiAjZW5kaWYKIApJbmRleDogU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cJKHJldmlzaW9uIDI0MjgwMykKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTktMDMtMTggIEFsZXggQ2hyaXN0ZW5zZW4gIDxh
Y2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBNYWtlIFdURkxvZ0NoYW5uZWxTdGF0
ZSBhbmQgV1RGTG9nTGV2ZWwgZW51bSBjbGFzc2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTU5MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNo
ZVNwZWN1bGF0aXZlTG9hZE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2Fj
aGU6OmxvZ1NwZWN1bGF0aXZlTG9hZGluZ0RpYWdub3N0aWNNZXNzYWdlKToKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpOZXR3b3JrUlRDUHJvdmlkZXIpOgorCiAyMDE5LTAz
LTEyICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFtp
T1NdIFNhbmRib3ggbXVzdCBhbGxvdyBtYWNoIGxvb2t1cCByZXF1aXJlZCB0byBjb21wcmVzcyB2
aWRlbwpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGVTcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZE1hbmFnZXIu
Y3BwCShyZXZpc2lvbiAyNDI4MDMpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nh
Y2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZE1hbmFnZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC02Nyw3ICs2Nyw3IEBAIHN0YXRpYyB2b2lkIHByaW50U3BlY3VsYXRpdmVMb2FkaW5nRGlh
Z24KIHN0YXRpYyB2b2lkIGxvZ1NwZWN1bGF0aXZlTG9hZGluZ0RpYWdub3N0aWNNZXNzYWdlKE5l
dHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgY29uc3QgR2xvYmFsRnJhbWVJRCYgZnJhbWVJ
RCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewogI2lmICFMT0dfRElTQUJMRUQKLSAgICBpZiAo
V2ViS2l0MkxvZ05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlUHJlbG9hZGluZy5zdGF0ZSA9PSBXVEZM
b2dDaGFubmVsT24pCisgICAgaWYgKFdlYktpdDJMb2dOZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZVBy
ZWxvYWRpbmcuc3RhdGUgPT0gV1RGTG9nQ2hhbm5lbFN0YXRlOjpPbikKICAgICAgICAgYWxsU3Bl
Y3VsYXRpdmVMb2FkaW5nRGlhZ25vc3RpY01lc3NhZ2VzKCkuYWRkKG1lc3NhZ2UpOwogI2VuZGlm
CiAgICAgbmV0d29ya1Byb2Nlc3MubG9nRGlhZ25vc3RpY01lc3NhZ2UoZnJhbWVJRC5maXJzdCwg
V2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpuZXR3b3JrQ2FjaGVLZXkoKSwgbWVzc2Fn
ZSwgV2ViQ29yZTo6U2hvdWxkU2FtcGxlOjpZZXMpOwpJbmRleDogU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3Bw
CShyZXZpc2lvbiAyNDI4MDMpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0
Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NSw3ICs2NSw3IEBA
IE5ldHdvcmtSVENQcm92aWRlcjo6TmV0d29ya1JUQ1Byb3ZpZGVyKE4KICNpZiBkZWZpbmVkKE5E
RUJVRykKICAgICBydGM6OkxvZ01lc3NhZ2U6OkxvZ1RvRGVidWcocnRjOjpMU19OT05FKTsKICNl
bHNlCi0gICAgaWYgKFdlYktpdDJMb2dXZWJSVEMuc3RhdGUgIT0gV1RGTG9nQ2hhbm5lbE9uKQor
ICAgIGlmIChXZWJLaXQyTG9nV2ViUlRDLnN0YXRlICE9IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T24p
CiAgICAgICAgIHJ0Yzo6TG9nTWVzc2FnZTo6TG9nVG9EZWJ1ZyhydGM6OkxTX1dBUk5JTkcpOwog
I2VuZGlmCiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZwkocmV2aXNpb24gMjQyODAzKQorKysg
U291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwx
MiBAQAorMjAxOS0wMy0xOCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQu
b3JnPgorCisgICAgICAgIE1ha2UgV1RGTG9nQ2hhbm5lbFN0YXRlIGFuZCBXVEZMb2dMZXZlbCBl
bnVtIGNsYXNzZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5NTkwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogV2ViS2l0TGVnYWN5Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTktMDMt
MDYgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBXZWJLaXRMZWdhY3kg
ZG9lcyBub3QgbmVlZCB0byBnZW5lcmF0ZSBhbiBleHBvcnQgZmlsZSBmb3IgaTM4NiBhbnltb3Jl
CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L1dlYktpdExlZ2FjeS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvV2ViS2l0TGVnYWN5
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI0MjgwMykKKysrIFNvdXJjZS9X
ZWJLaXRMZWdhY3kvV2ViS2l0TGVnYWN5Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtp
bmcgY29weSkKQEAgLTI4MCw3ICsyODAsNyBAQAogCQk5Mzk4MTBCRTA4MjRCRjAxMDA4REYwMzgg
LyogV2ViVVJMc1dpdGhUaXRsZXMubSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY1RTBBNzZGMDJCOEZFRTQwMUMxQTUyNSAvKiBXZWJVUkxzV2l0aFRpdGxl
cy5tICovOyB9OwogCQk5Mzk4MTBCRjA4MjRCRjAxMDA4REYwMzggLyogV2ViQ29yZVN0YXRpc3Rp
Y3MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlF
QUU0MTAyNTNDOERFMDE4NjM1Q0EgLyogV2ViQ29yZVN0YXRpc3RpY3MubW0gKi87IH07CiAJCTkz
OTgxMEMxMDgyNEJGMDEwMDhERjAzOCAvKiBXZWJJY29uRGF0YWJhc2UubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTI4RTNFQTAzMUU5MUFEMDFDQTJB
Q0EgLyogV2ViSWNvbkRhdGFiYXNlLm1tICovOyB9OwotCQk5Mzk4MTBDMzA4MjRCRjAxMDA4REYw
MzggLyogV2ViS2l0TG9nZ2luZy5tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTNBRUIxN0UwMzJDMTczNTAwODYzNUNFIC8qIFdlYktpdExvZ2dpbmcubSAq
LzsgfTsKKwkJOTM5ODEwQzMwODI0QkYwMTAwOERGMDM4IC8qIFdlYktpdExvZ2dpbmcubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0FFQjE3RTAzMkMx
NzM1MDA4NjM1Q0UgLyogV2ViS2l0TG9nZ2luZy5tbSAqLzsgfTsKIAkJOTM5ODEwQzQwODI0QkYw
MTAwOERGMDM4IC8qIFdlYktpdE5TU3RyaW5nRXh0cmFzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzA4MkY1NzAwMzhFQURBQTAwQTgwMTgwIC8qIFdl
YktpdE5TU3RyaW5nRXh0cmFzLm1tICovOyB9OwogCQk5Mzk4MTBDNTA4MjRCRjAxMDA4REYwMzgg
LyogV2ViS2l0U3RhdGlzdGljcy5tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjUzNDQ0Q0YwMkU4N0NCQTAxODYzNUNBIC8qIFdlYktpdFN0YXRpc3RpY3Mu
bSAqLzsgfTsKIAkJOTM5ODEwQzYwODI0QkYwMTAwOERGMDM4IC8qIFdlYk5TQ29udHJvbEV4dHJh
cy5tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0NURE
QjMwMzY1RkZEMDAwODYzNUNFIC8qIFdlYk5TQ29udHJvbEV4dHJhcy5tICovOyB9OwpAQCAtMTA2
NSw3ICsxMDY1LDcgQEAKIAkJOTM5ODExMzIwODI0QkYwMTAwOERGMDM4IC8qIEluZm8ucGxpc3Qg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQucGxpc3QueG1sOyBuYW1lID0gSW5mby5wbGlzdDsgcGF0aCA9IG1hYy9J
bmZvLnBsaXN0OyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IHRhYldpZHRoID0gODsgdXNlc1Rh
YnMgPSAxOyB9OwogCQk5Mzk4MTEzMzA4MjRCRjAxMDA4REYwMzggLyogV2ViS2l0TGVnYWN5LmZy
YW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0g
d3JhcHBlci5mcmFtZXdvcms7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IFdlYktpdExlZ2Fj
eS5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTkzQUVC
MTdEMDMyQzE3MzUwMDg2MzVDRSAvKiBXZWJLaXRMb2dnaW5nLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0TG9nZ2luZy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJOTNBRUIx
N0UwMzJDMTczNTAwODYzNUNFIC8qIFdlYktpdExvZ2dpbmcubSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLm9iamM7IHBhdGggPSBXZWJLaXRMb2dnaW5nLm07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OworCQk5M0FF
QjE3RTAzMkMxNzM1MDA4NjM1Q0UgLyogV2ViS2l0TG9nZ2luZy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViS2l0TG9nZ2luZy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07
CiAJCTkzQzZGMTQ1MDc5MjBCOTMwMDI0NDlDRCAvKiBXZWJGcmFtZVZpZXdQcml2YXRlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGgg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRnJhbWVW
aWV3UHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNU
YWJzID0gMDsgfTsKIAkJOTNEMUZFMTMwNjdFQjEwQjAwOUNFNjhBIC8qIFdlYk5TT2JqZWN0RXh0
cmFzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5k
ZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViTlNPYmplY3RFeHRyYXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4
OyB1c2VzVGFicyA9IDA7IH07CiAJCTkzRDQzNEZCMUQ1N0FCRUUwMEFCODVFQSAvKiBET00uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xNzc1LDcgKzE3NzUsNyBAQAogCQkJCTgzNzMwRjk4MDNGQjFFNjYwMDA0
NzM2RSAvKiBXZWJLaXRFcnJvcnMubSAqLywKIAkJCQk4NENBNUY3RTA0MjY4NUU4MDBDQTJBQ0Eg
LyogV2ViS2l0RXJyb3JzUHJpdmF0ZS5oICovLAogCQkJCTkzQUVCMTdEMDMyQzE3MzUwMDg2MzVD
RSAvKiBXZWJLaXRMb2dnaW5nLmggKi8sCi0JCQkJOTNBRUIxN0UwMzJDMTczNTAwODYzNUNFIC8q
IFdlYktpdExvZ2dpbmcubSAqLywKKwkJCQk5M0FFQjE3RTAzMkMxNzM1MDA4NjM1Q0UgLyogV2Vi
S2l0TG9nZ2luZy5tbSAqLywKIAkJCQk3MDgyRjU2RjAzOEVBREFBMDBBODAxODAgLyogV2ViS2l0
TlNTdHJpbmdFeHRyYXMuaCAqLywKIAkJCQk3MDgyRjU3MDAzOEVBREFBMDBBODAxODAgLyogV2Vi
S2l0TlNTdHJpbmdFeHRyYXMubW0gKi8sCiAJCQkJRjUzNDQ0Q0UwMkU4N0NCQTAxODYzNUNBIC8q
IFdlYktpdFN0YXRpc3RpY3MuaCAqLywKQEAgLTM1NDEsNyArMzU0MSw3IEBACiAJCQkJMzdEMURD
QTkxMDY1OTI4QzAwNjhGN0VGIC8qIFdlYkpTUERGRG9jLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
OTM5ODExMDMwODI0QkYwMTAwOERGMDM4IC8qIFdlYktpdEVycm9ycy5tIGluIFNvdXJjZXMgKi8s
CiAJCQkJQ0Q4QkZDRTcxNTUzMTIyNDAwNUFGQjI1IC8qIFdlYktpdEZ1bGxTY3JlZW5MaXN0ZW5l
ci5tbSBpbiBTb3VyY2VzICovLAotCQkJCTkzOTgxMEMzMDgyNEJGMDEwMDhERjAzOCAvKiBXZWJL
aXRMb2dnaW5nLm0gaW4gU291cmNlcyAqLywKKwkJCQk5Mzk4MTBDMzA4MjRCRjAxMDA4REYwMzgg
LyogV2ViS2l0TG9nZ2luZy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTkzOTgxMEM0MDgyNEJGMDEw
MDhERjAzOCAvKiBXZWJLaXROU1N0cmluZ0V4dHJhcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFB
QUY1RDBGMEVEREU3QTcwMDhEODgzRCAvKiBXZWJLaXRQbHVnaW5BZ2VudC5kZWZzIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMUFBRjVEMDAwRURERTYwNDAwOEQ4ODNEIC8qIFdlYktpdFBsdWdpbkNsaWVu
dC5kZWZzIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCShy
ZXZpc2lvbiAyNDI4MDMpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxOS0wMy0xOCAgQWxleCBDaHJpc3RlbnNl
biAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIE1ha2UgV1RGTG9nQ2hhbm5l
bFN0YXRlIGFuZCBXVEZMb2dMZXZlbCBlbnVtIGNsYXNzZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTkwNAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTWlzYy9XZWJLaXRMb2dnaW5nLm06IFJlbW92
ZWQuCisgICAgICAgICogTWlzYy9XZWJLaXRMb2dnaW5nLm1tOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYktpdExvZ2dpbmcubS4KKyAgICAgICAgKiBNaXNjL1dl
Yk5TSW1hZ2VFeHRyYXMubToKKwogMjAxOS0wMy0xMSAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFk
QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjQyNjg4LCBy
MjQyNjQzLCByMjQyNjI0LgpJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJL
aXRMb2dnaW5nLm0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9X
ZWJLaXRMb2dnaW5nLm0JKHJldmlzaW9uIDI0MjgwMykKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL01pc2MvV2ViS2l0TG9nZ2luZy5tCShub25leGlzdGVudCkKQEAgLTEsNjkgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNywgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLiAKLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLiAKLSAqIDMuICBOZWl0aGVyIHRoZSBuYW1l
IG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLiAKLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAot
ICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaW1wb3J0ICJXZWJLaXRMb2dnaW5nLmgiCi0KLSNpZiAhTE9HX0RJU0FCTEVEIHx8ICFS
RUxFQVNFX0xPR19ESVNBQkxFRAotCi0jZGVmaW5lIERFRklORV9XRUJLSVRfTE9HX0NIQU5ORUwo
bmFtZSkgREVGSU5FX0xPR19DSEFOTkVMKG5hbWUsIExPR19DSEFOTkVMX1dFQktJVF9TVUJTWVNU
RU0pCi1XRUJLSVRfTE9HX0NIQU5ORUxTKERFRklORV9XRUJLSVRfTE9HX0NIQU5ORUwpCi0KLXN0
YXRpYyBXVEZMb2dDaGFubmVsKiBsb2dDaGFubmVsc1tdID0gewotICAgIFdFQktJVF9MT0dfQ0hB
Tk5FTFMoTE9HX0NIQU5ORUxfQUREUkVTUykKLX07Ci0KLXN0YXRpYyBjb25zdCBzaXplX3QgbG9n
Q2hhbm5lbENvdW50ID0gc2l6ZW9mKGxvZ0NoYW5uZWxzKSAvIHNpemVvZihsb2dDaGFubmVsc1sw
XSk7Ci0KLQotc3RhdGljIE5TU3RyaW5nICogY29uc3QgZGVmYXVsdHNEb21haW4gPSBAIldlYktp
dExvZ2dpbmciOwotCi12b2lkIFdlYktpdEluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5
KCkKLXsKLSAgICBzdGF0aWMgYm9vbCBoYXZlSW5pdGlhbGl6ZWRMb2dnaW5nQ2hhbm5lbHMgPSBm
YWxzZTsKLSAgICBpZiAoaGF2ZUluaXRpYWxpemVkTG9nZ2luZ0NoYW5uZWxzKQotICAgICAgICBy
ZXR1cm47Ci0gICAgaGF2ZUluaXRpYWxpemVkTG9nZ2luZ0NoYW5uZWxzID0gdHJ1ZTsKLQotICAg
IE5TU3RyaW5nICpsb2dMZXZlbCA9IFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVs
dHNdIHN0cmluZ0ZvcktleTpkZWZhdWx0c0RvbWFpbl07Ci0gICAgaWYgKCFsb2dMZXZlbCkKLSAg
ICAgICAgcmV0dXJuOwotICAgIAotICAgIFdURkluaXRpYWxpemVMb2dDaGFubmVsU3RhdGVzRnJv
bVN0cmluZyhsb2dDaGFubmVscywgbG9nQ2hhbm5lbENvdW50LCBbbG9nTGV2ZWwgVVRGOFN0cmlu
Z10pOwotfQotCi0jZW5kaWYgLy8gIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJM
RUQKLQotdm9pZCBSZXBvcnREaXNjYXJkZWREZWxlZ2F0ZUV4Y2VwdGlvbihTRUwgZGVsZWdhdGVT
ZWxlY3RvciwgaWQgZXhjZXB0aW9uKQotewotICAgIGlmIChbZXhjZXB0aW9uIGlzS2luZE9mQ2xh
c3M6W05TRXhjZXB0aW9uIGNsYXNzXV0pCi0gICAgICAgIE5TTG9nKEAiKioqIFdlYktpdCBkaXNj
YXJkZWQgYW4gdW5jYXVnaHQgZXhjZXB0aW9uIGluIHRoZSAlcyBkZWxlZ2F0ZTogPCVAPiAlQCIs
Ci0gICAgICAgICAgICBzZWxfZ2V0TmFtZShkZWxlZ2F0ZVNlbGVjdG9yKSwgW2V4Y2VwdGlvbiBu
YW1lXSwgW2V4Y2VwdGlvbiByZWFzb25dKTsKLSAgICBlbHNlCi0gICAgICAgIE5TTG9nKEAiKioq
IFdlYktpdCBkaXNjYXJkZWQgYW4gdW5jYXVnaHQgZXhjZXB0aW9uIGluIHRoZSAlcyBkZWxlZ2F0
ZTogJUAiLAotICAgICAgICAgICAgc2VsX2dldE5hbWUoZGVsZWdhdGVTZWxlY3RvciksIGV4Y2Vw
dGlvbik7Ci19CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9N
aXNjL1dlYktpdExvZ2dpbmcubQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjplb2wtc3R5bGUKIyMg
LTEgKzAsMCAjIwotbmF0aXZlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6
IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViS2l0TG9nZ2luZy5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYktpdExvZ2dpbmcubW0JKHJldmlz
aW9uIDI0MjgwMykJKGZyb20gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJLaXRMb2dn
aW5nLm06MjQyODAzKQorKysgU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJLaXRMb2dn
aW5nLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDUsIDIwMDcsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4gCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4gCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgi
QXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20g
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4g
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRS
SUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiV2Vi
S2l0TG9nZ2luZy5oIgorCisjaWYgIUxPR19ESVNBQkxFRCB8fCAhUkVMRUFTRV9MT0dfRElTQUJM
RUQKKworI2RlZmluZSBERUZJTkVfV0VCS0lUX0xPR19DSEFOTkVMKG5hbWUpIERFRklORV9MT0df
Q0hBTk5FTChuYW1lLCBMT0dfQ0hBTk5FTF9XRUJLSVRfU1VCU1lTVEVNKQorV0VCS0lUX0xPR19D
SEFOTkVMUyhERUZJTkVfV0VCS0lUX0xPR19DSEFOTkVMKQorCitzdGF0aWMgV1RGTG9nQ2hhbm5l
bCogbG9nQ2hhbm5lbHNbXSA9IHsKKyAgICBXRUJLSVRfTE9HX0NIQU5ORUxTKExPR19DSEFOTkVM
X0FERFJFU1MpCit9OworCitzdGF0aWMgY29uc3Qgc2l6ZV90IGxvZ0NoYW5uZWxDb3VudCA9IHNp
emVvZihsb2dDaGFubmVscykgLyBzaXplb2YobG9nQ2hhbm5lbHNbMF0pOworCisKK3N0YXRpYyBO
U1N0cmluZyAqIGNvbnN0IGRlZmF1bHRzRG9tYWluID0gQCJXZWJLaXRMb2dnaW5nIjsKKwordm9p
ZCBXZWJLaXRJbml0aWFsaXplTG9nQ2hhbm5lbHNJZk5lY2Vzc2FyeSgpCit7CisgICAgc3RhdGlj
IGJvb2wgaGF2ZUluaXRpYWxpemVkTG9nZ2luZ0NoYW5uZWxzID0gZmFsc2U7CisgICAgaWYgKGhh
dmVJbml0aWFsaXplZExvZ2dpbmdDaGFubmVscykKKyAgICAgICAgcmV0dXJuOworICAgIGhhdmVJ
bml0aWFsaXplZExvZ2dpbmdDaGFubmVscyA9IHRydWU7CisKKyAgICBOU1N0cmluZyAqbG9nTGV2
ZWwgPSBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBzdHJpbmdGb3JLZXk6
ZGVmYXVsdHNEb21haW5dOworICAgIGlmICghbG9nTGV2ZWwpCisgICAgICAgIHJldHVybjsKKyAg
ICAKKyAgICBXVEZJbml0aWFsaXplTG9nQ2hhbm5lbFN0YXRlc0Zyb21TdHJpbmcobG9nQ2hhbm5l
bHMsIGxvZ0NoYW5uZWxDb3VudCwgW2xvZ0xldmVsIFVURjhTdHJpbmddKTsKK30KKworI2VuZGlm
IC8vICFMT0dfRElTQUJMRUQgfHwgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisKK3ZvaWQgUmVwb3J0
RGlzY2FyZGVkRGVsZWdhdGVFeGNlcHRpb24oU0VMIGRlbGVnYXRlU2VsZWN0b3IsIGlkIGV4Y2Vw
dGlvbikKK3sKKyAgICBpZiAoW2V4Y2VwdGlvbiBpc0tpbmRPZkNsYXNzOltOU0V4Y2VwdGlvbiBj
bGFzc11dKQorICAgICAgICBOU0xvZyhAIioqKiBXZWJLaXQgZGlzY2FyZGVkIGFuIHVuY2F1Z2h0
IGV4Y2VwdGlvbiBpbiB0aGUgJXMgZGVsZWdhdGU6IDwlQD4gJUAiLAorICAgICAgICAgICAgc2Vs
X2dldE5hbWUoZGVsZWdhdGVTZWxlY3RvciksIFtleGNlcHRpb24gbmFtZV0sIFtleGNlcHRpb24g
cmVhc29uXSk7CisgICAgZWxzZQorICAgICAgICBOU0xvZyhAIioqKiBXZWJLaXQgZGlzY2FyZGVk
IGFuIHVuY2F1Z2h0IGV4Y2VwdGlvbiBpbiB0aGUgJXMgZGVsZWdhdGU6ICVAIiwKKyAgICAgICAg
ICAgIHNlbF9nZXROYW1lKGRlbGVnYXRlU2VsZWN0b3IpLCBleGNlcHRpb24pOworfQoKUHJvcGVy
dHkgY2hhbmdlcyBvbjogU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJLaXRMb2dnaW5n
Lm1tCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTAsMCArMSAjIworbmF0aXZl
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL01pc2MvV2ViTlNJbWFnZUV4dHJhcy5tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL01pc2MvV2ViTlNJbWFnZUV4dHJhcy5tCShyZXZpc2lvbiAyNDI4MDMpCisr
KyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYk5TSW1hZ2VFeHRyYXMubQkod29ya2lu
ZyBjb3B5KQpAQCAtMzAsOCArMzAsNiBAQAogCiAjaW1wb3J0IDxXZWJLaXRMZWdhY3kvV2ViTlNJ
bWFnZUV4dHJhcy5oPgogCi0jaW1wb3J0IDxXZWJLaXRMZWdhY3kvV2ViS2l0TG9nZ2luZy5oPgot
CiBAaW1wbGVtZW50YXRpb24gTlNJbWFnZSAoV2ViRXh0cmFzKQogCiAtICh2b2lkKV93ZWJfc2Nh
bGVUb01heFNpemU6KE5TU2l6ZSlzaXplCkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDMwOTIpCisrKyBUb29scy9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxOS0wMy0xOCAgQWxleCBDaHJp
c3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIE1ha2UgV1RGTG9n
Q2hhbm5lbFN0YXRlIGFuZCBXVEZMb2dMZXZlbCBlbnVtIGNsYXNzZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTkwNAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL0xvZ2dpbmcuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKwog
MjAxOS0wMy0xMyAgQmFiYWsgU2hhZmllaSAgPGJzaGFmaWVpQGFwcGxlLmNvbT4KIAogICAgICAg
ICBDaGVycnktcGljayByMjQyNzM1LiByZGFyOi8vcHJvYmxlbS80ODc4MDExMgpJbmRleDogVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0xvZ2dpbmcuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Mb2dnaW5nLmNwcAkocmV2aXNpb24g
MjQyODAzKQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0xvZ2dpbmcuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC03MiwxMCArNzIsMTAgQEAgcHVibGljOgogICAgICAgICBtX3N0
ZGVyciA9IGZkb3BlbihtX2Rlc2NyaXB0b3JzWzBdLCAiciIpOwogCiAgICAgICAgIFdURkluaXRp
YWxpemVMb2dDaGFubmVsU3RhdGVzRnJvbVN0cmluZyh0ZXN0TG9nQ2hhbm5lbHMsIGxvZ0NoYW5u
ZWxDb3VudCwgImFsbCIpOwotICAgICAgICBXVEZTZXRMb2dDaGFubmVsTGV2ZWwoJlRlc3RDaGFu
bmVsMSwgV1RGTG9nTGV2ZWxFcnJvcik7Ci0gICAgICAgIFdURlNldExvZ0NoYW5uZWxMZXZlbCgm
VGVzdENoYW5uZWwyLCBXVEZMb2dMZXZlbEVycm9yKTsKLSAgICAgICAgV1RGU2V0TG9nQ2hhbm5l
bExldmVsKCZUZXN0Q2hhbm5lbDMsIFdURkxvZ0xldmVsRXJyb3IpOwotICAgICAgICBXVEZTZXRM
b2dDaGFubmVsTGV2ZWwoJlRlc3RDaGFubmVsNCwgV1RGTG9nTGV2ZWxFcnJvcik7CisgICAgICAg
IFdURlNldExvZ0NoYW5uZWxMZXZlbCgmVGVzdENoYW5uZWwxLCBXVEZMb2dMZXZlbDo6RXJyb3Ip
OworICAgICAgICBXVEZTZXRMb2dDaGFubmVsTGV2ZWwoJlRlc3RDaGFubmVsMiwgV1RGTG9nTGV2
ZWw6OkVycm9yKTsKKyAgICAgICAgV1RGU2V0TG9nQ2hhbm5lbExldmVsKCZUZXN0Q2hhbm5lbDMs
IFdURkxvZ0xldmVsOjpFcnJvcik7CisgICAgICAgIFdURlNldExvZ0NoYW5uZWxMZXZlbCgmVGVz
dENoYW5uZWw0LCBXVEZMb2dMZXZlbDo6RXJyb3IpOwogICAgIH0KIAogICAgIHZvaWQgVGVhckRv
d24oKSBvdmVycmlkZQpAQCAtMTEwLDg2ICsxMTAsODYgQEAgcHJpdmF0ZToKIAogVEVTVF9GKExv
Z2dpbmdUZXN0LCBJbml0aWFsaXphdGlvbikKIHsKLSAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWwx
LnN0YXRlLCBXVEZMb2dDaGFubmVsT24pOwotICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDIuc3Rh
dGUsIFdURkxvZ0NoYW5uZWxPbik7Ci0gICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsMy5zdGF0ZSwg
V1RGTG9nQ2hhbm5lbE9uKTsKLSAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWw0LnN0YXRlLCBXVEZM
b2dDaGFubmVsT24pOwotCi0gICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsMS5sZXZlbCwgV1RGTG9n
TGV2ZWxFcnJvcik7Ci0gICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsMi5sZXZlbCwgV1RGTG9nTGV2
ZWxFcnJvcik7Ci0gICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsMy5sZXZlbCwgV1RGTG9nTGV2ZWxF
cnJvcik7Ci0gICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsNC5sZXZlbCwgV1RGTG9nTGV2ZWxFcnJv
cik7CisgICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsMS5zdGF0ZSwgV1RGTG9nQ2hhbm5lbFN0YXRl
OjpPbik7CisgICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsMi5zdGF0ZSwgV1RGTG9nQ2hhbm5lbFN0
YXRlOjpPbik7CisgICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsMy5zdGF0ZSwgV1RGTG9nQ2hhbm5l
bFN0YXRlOjpPbik7CisgICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsNC5zdGF0ZSwgV1RGTG9nQ2hh
bm5lbFN0YXRlOjpPbik7CisKKyAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWwxLmxldmVsLCBXVEZM
b2dMZXZlbDo6RXJyb3IpOworICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDIubGV2ZWwsIFdURkxv
Z0xldmVsOjpFcnJvcik7CisgICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsMy5sZXZlbCwgV1RGTG9n
TGV2ZWw6OkVycm9yKTsKKyAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWw0LmxldmVsLCBXVEZMb2dM
ZXZlbDo6RXJyb3IpOwogCi0gICAgVGVzdENoYW5uZWwxLnN0YXRlID0gV1RGTG9nQ2hhbm5lbE9m
ZjsKKyAgICBUZXN0Q2hhbm5lbDEuc3RhdGUgPSBXVEZMb2dDaGFubmVsU3RhdGU6Ok9mZjsKICAg
ICBXVEZJbml0aWFsaXplTG9nQ2hhbm5lbFN0YXRlc0Zyb21TdHJpbmcodGVzdExvZ0NoYW5uZWxz
LCBsb2dDaGFubmVsQ291bnQsICJDaGFubmVsMSIpOwotICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5l
bDEubGV2ZWwsIFdURkxvZ0xldmVsRXJyb3IpOwotICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDEu
c3RhdGUsIFdURkxvZ0NoYW5uZWxPbik7CisgICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsMS5sZXZl
bCwgV1RGTG9nTGV2ZWw6OkVycm9yKTsKKyAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWwxLnN0YXRl
LCBXVEZMb2dDaGFubmVsU3RhdGU6Ok9uKTsKIAotICAgIFRlc3RDaGFubmVsMS5zdGF0ZSA9IFdU
RkxvZ0NoYW5uZWxPZmY7CisgICAgVGVzdENoYW5uZWwxLnN0YXRlID0gV1RGTG9nQ2hhbm5lbFN0
YXRlOjpPZmY7CiAgICAgV1RGSW5pdGlhbGl6ZUxvZ0NoYW5uZWxTdGF0ZXNGcm9tU3RyaW5nKHRl
c3RMb2dDaGFubmVscywgbG9nQ2hhbm5lbENvdW50LCAiQ2hhbm5lbDE9Zm9vIik7Ci0gICAgRVhQ
RUNUX0VRKFRlc3RDaGFubmVsMS5sZXZlbCwgV1RGTG9nTGV2ZWxFcnJvcik7CisgICAgRVhQRUNU
X0VRKFRlc3RDaGFubmVsMS5sZXZlbCwgV1RGTG9nTGV2ZWw6OkVycm9yKTsKICNpZiBURVNUX09V
VFBVVAogICAgIEVYUEVDVF9UUlVFKG91dHB1dCgpLmNvbnRhaW5zKCJVbmtub3duIGxvZ2dpbmcg
bGV2ZWw6IGZvbyIsIGZhbHNlKSk7CiAjZW5kaWYKIAogICAgIFdURkluaXRpYWxpemVMb2dDaGFu
bmVsU3RhdGVzRnJvbVN0cmluZyh0ZXN0TG9nQ2hhbm5lbHMsIGxvZ0NoYW5uZWxDb3VudCwgIkNo
YW5uZWwxPXdhcm5pbmciKTsKLSAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWwxLmxldmVsLCBXVEZM
b2dMZXZlbFdhcm5pbmcpOwotICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDIubGV2ZWwsIFdURkxv
Z0xldmVsRXJyb3IpOwotICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDMubGV2ZWwsIFdURkxvZ0xl
dmVsRXJyb3IpOwotICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDQubGV2ZWwsIFdURkxvZ0xldmVs
RXJyb3IpOworICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDEubGV2ZWwsIFdURkxvZ0xldmVsOjpX
YXJuaW5nKTsKKyAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWwyLmxldmVsLCBXVEZMb2dMZXZlbDo6
RXJyb3IpOworICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDMubGV2ZWwsIFdURkxvZ0xldmVsOjpF
cnJvcik7CisgICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsNC5sZXZlbCwgV1RGTG9nTGV2ZWw6OkVy
cm9yKTsKIAogICAgIFdURkluaXRpYWxpemVMb2dDaGFubmVsU3RhdGVzRnJvbVN0cmluZyh0ZXN0
TG9nQ2hhbm5lbHMsIGxvZ0NoYW5uZWxDb3VudCwgIkNoYW5uZWw0PSAgIGRlYnVnLCBDaGFubmVs
MyA9IGluZm8sQ2hhbm5lbDI9ZXJyb3IiKTsKLSAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWwxLmxl
dmVsLCBXVEZMb2dMZXZlbFdhcm5pbmcpOwotICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDIubGV2
ZWwsIFdURkxvZ0xldmVsRXJyb3IpOwotICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDMubGV2ZWws
IFdURkxvZ0xldmVsSW5mbyk7Ci0gICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsNC5sZXZlbCwgV1RG
TG9nTGV2ZWxEZWJ1Zyk7CisgICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsMS5sZXZlbCwgV1RGTG9n
TGV2ZWw6Oldhcm5pbmcpOworICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDIubGV2ZWwsIFdURkxv
Z0xldmVsOjpFcnJvcik7CisgICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsMy5sZXZlbCwgV1RGTG9n
TGV2ZWw6OkluZm8pOworICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDQubGV2ZWwsIFdURkxvZ0xl
dmVsOjpEZWJ1Zyk7CiAKICAgICBXVEZJbml0aWFsaXplTG9nQ2hhbm5lbFN0YXRlc0Zyb21TdHJp
bmcodGVzdExvZ0NoYW5uZWxzLCBsb2dDaGFubmVsQ291bnQsICItYWxsIik7Ci0gICAgRVhQRUNU
X0VRKFRlc3RDaGFubmVsMS5zdGF0ZSwgV1RGTG9nQ2hhbm5lbE9mZik7Ci0gICAgRVhQRUNUX0VR
KFRlc3RDaGFubmVsMi5zdGF0ZSwgV1RGTG9nQ2hhbm5lbE9mZik7Ci0gICAgRVhQRUNUX0VRKFRl
c3RDaGFubmVsMy5zdGF0ZSwgV1RGTG9nQ2hhbm5lbE9mZik7Ci0gICAgRVhQRUNUX0VRKFRlc3RD
aGFubmVsNC5zdGF0ZSwgV1RGTG9nQ2hhbm5lbE9mZik7CisgICAgRVhQRUNUX0VRKFRlc3RDaGFu
bmVsMS5zdGF0ZSwgV1RGTG9nQ2hhbm5lbFN0YXRlOjpPZmYpOworICAgIEVYUEVDVF9FUShUZXN0
Q2hhbm5lbDIuc3RhdGUsIFdURkxvZ0NoYW5uZWxTdGF0ZTo6T2ZmKTsKKyAgICBFWFBFQ1RfRVEo
VGVzdENoYW5uZWwzLnN0YXRlLCBXVEZMb2dDaGFubmVsU3RhdGU6Ok9mZik7CisgICAgRVhQRUNU
X0VRKFRlc3RDaGFubmVsNC5zdGF0ZSwgV1RGTG9nQ2hhbm5lbFN0YXRlOjpPZmYpOwogCiAgICAg
V1RGSW5pdGlhbGl6ZUxvZ0NoYW5uZWxTdGF0ZXNGcm9tU3RyaW5nKHRlc3RMb2dDaGFubmVscywg
bG9nQ2hhbm5lbENvdW50LCAiYWxsIik7Ci0gICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsMS5zdGF0
ZSwgV1RGTG9nQ2hhbm5lbE9uKTsKLSAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWwyLnN0YXRlLCBX
VEZMb2dDaGFubmVsT24pOwotICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDMuc3RhdGUsIFdURkxv
Z0NoYW5uZWxPbik7Ci0gICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsNC5zdGF0ZSwgV1RGTG9nQ2hh
bm5lbE9uKTsKKyAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWwxLnN0YXRlLCBXVEZMb2dDaGFubmVs
U3RhdGU6Ok9uKTsKKyAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWwyLnN0YXRlLCBXVEZMb2dDaGFu
bmVsU3RhdGU6Ok9uKTsKKyAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWwzLnN0YXRlLCBXVEZMb2dD
aGFubmVsU3RhdGU6Ok9uKTsKKyAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWw0LnN0YXRlLCBXVEZM
b2dDaGFubmVsU3RhdGU6Ok9uKTsKIH0KIAogVEVTVF9GKExvZ2dpbmdUZXN0LCBXVEZXaWxsTG9n
V2l0aExldmVsKQogewotICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDEuc3RhdGUsIFdURkxvZ0No
YW5uZWxPbik7Ci0gICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsMi5zdGF0ZSwgV1RGTG9nQ2hhbm5l
bE9uKTsKLSAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWwzLnN0YXRlLCBXVEZMb2dDaGFubmVsT24p
OwotICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDQuc3RhdGUsIFdURkxvZ0NoYW5uZWxPbik7Ci0K
LSAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWwxLmxldmVsLCBXVEZMb2dMZXZlbEVycm9yKTsKLSAg
ICBFWFBFQ1RfRVEoVGVzdENoYW5uZWwyLmxldmVsLCBXVEZMb2dMZXZlbEVycm9yKTsKLSAgICBF
WFBFQ1RfRVEoVGVzdENoYW5uZWwzLmxldmVsLCBXVEZMb2dMZXZlbEVycm9yKTsKLSAgICBFWFBF
Q1RfRVEoVGVzdENoYW5uZWw0LmxldmVsLCBXVEZMb2dMZXZlbEVycm9yKTsKLQotICAgIEVYUEVD
VF9UUlVFKFdURldpbGxMb2dXaXRoTGV2ZWwoJlRlc3RDaGFubmVsMSwgV1RGTG9nTGV2ZWxFcnJv
cikpOwotICAgIEVYUEVDVF9UUlVFKFdURldpbGxMb2dXaXRoTGV2ZWwoJlRlc3RDaGFubmVsMiwg
V1RGTG9nTGV2ZWxFcnJvcikpOwotICAgIEVYUEVDVF9UUlVFKFdURldpbGxMb2dXaXRoTGV2ZWwo
JlRlc3RDaGFubmVsMywgV1RGTG9nTGV2ZWxFcnJvcikpOwotICAgIEVYUEVDVF9UUlVFKFdURldp
bGxMb2dXaXRoTGV2ZWwoJlRlc3RDaGFubmVsNCwgV1RGTG9nTGV2ZWxFcnJvcikpOwotCi0gICAg
RVhQRUNUX0ZBTFNFKFdURldpbGxMb2dXaXRoTGV2ZWwoJlRlc3RDaGFubmVsMSwgV1RGTG9nTGV2
ZWxJbmZvKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFdURldpbGxMb2dXaXRoTGV2ZWwoJlRlc3RDaGFu
bmVsMiwgV1RGTG9nTGV2ZWxJbmZvKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFdURldpbGxMb2dXaXRo
TGV2ZWwoJlRlc3RDaGFubmVsMywgV1RGTG9nTGV2ZWxJbmZvKSk7Ci0gICAgRVhQRUNUX0ZBTFNF
KFdURldpbGxMb2dXaXRoTGV2ZWwoJlRlc3RDaGFubmVsNCwgV1RGTG9nTGV2ZWxJbmZvKSk7Ci0K
LSAgICBUZXN0Q2hhbm5lbDEuc3RhdGUgPSBXVEZMb2dDaGFubmVsT2ZmOwotICAgIEVYUEVDVF9G
QUxTRShXVEZXaWxsTG9nV2l0aExldmVsKCZUZXN0Q2hhbm5lbDEsIFdURkxvZ0xldmVsRXJyb3Ip
KTsKLSAgICBFWFBFQ1RfRkFMU0UoV1RGV2lsbExvZ1dpdGhMZXZlbCgmVGVzdENoYW5uZWwxLCBX
VEZMb2dMZXZlbEluZm8pKTsKLQotICAgIFRlc3RDaGFubmVsMS5zdGF0ZSA9IFdURkxvZ0NoYW5u
ZWxPbjsKLSAgICBFWFBFQ1RfVFJVRShXVEZXaWxsTG9nV2l0aExldmVsKCZUZXN0Q2hhbm5lbDEs
IFdURkxvZ0xldmVsRXJyb3IpKTsKLSAgICBFWFBFQ1RfRkFMU0UoV1RGV2lsbExvZ1dpdGhMZXZl
bCgmVGVzdENoYW5uZWwxLCBXVEZMb2dMZXZlbEluZm8pKTsKLQotICAgIFRlc3RDaGFubmVsMS5s
ZXZlbCA9IFdURkxvZ0xldmVsSW5mbzsKLSAgICBFWFBFQ1RfVFJVRShXVEZXaWxsTG9nV2l0aExl
dmVsKCZUZXN0Q2hhbm5lbDEsIFdURkxvZ0xldmVsRXJyb3IpKTsKLSAgICBFWFBFQ1RfVFJVRShX
VEZXaWxsTG9nV2l0aExldmVsKCZUZXN0Q2hhbm5lbDEsIFdURkxvZ0xldmVsSW5mbykpOworICAg
IEVYUEVDVF9FUShUZXN0Q2hhbm5lbDEuc3RhdGUsIFdURkxvZ0NoYW5uZWxTdGF0ZTo6T24pOwor
ICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDIuc3RhdGUsIFdURkxvZ0NoYW5uZWxTdGF0ZTo6T24p
OworICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDMuc3RhdGUsIFdURkxvZ0NoYW5uZWxTdGF0ZTo6
T24pOworICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDQuc3RhdGUsIFdURkxvZ0NoYW5uZWxTdGF0
ZTo6T24pOworCisgICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsMS5sZXZlbCwgV1RGTG9nTGV2ZWw6
OkVycm9yKTsKKyAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWwyLmxldmVsLCBXVEZMb2dMZXZlbDo6
RXJyb3IpOworICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDMubGV2ZWwsIFdURkxvZ0xldmVsOjpF
cnJvcik7CisgICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsNC5sZXZlbCwgV1RGTG9nTGV2ZWw6OkVy
cm9yKTsKKworICAgIEVYUEVDVF9UUlVFKFdURldpbGxMb2dXaXRoTGV2ZWwoJlRlc3RDaGFubmVs
MSwgV1RGTG9nTGV2ZWw6OkVycm9yKSk7CisgICAgRVhQRUNUX1RSVUUoV1RGV2lsbExvZ1dpdGhM
ZXZlbCgmVGVzdENoYW5uZWwyLCBXVEZMb2dMZXZlbDo6RXJyb3IpKTsKKyAgICBFWFBFQ1RfVFJV
RShXVEZXaWxsTG9nV2l0aExldmVsKCZUZXN0Q2hhbm5lbDMsIFdURkxvZ0xldmVsOjpFcnJvcikp
OworICAgIEVYUEVDVF9UUlVFKFdURldpbGxMb2dXaXRoTGV2ZWwoJlRlc3RDaGFubmVsNCwgV1RG
TG9nTGV2ZWw6OkVycm9yKSk7CisKKyAgICBFWFBFQ1RfRkFMU0UoV1RGV2lsbExvZ1dpdGhMZXZl
bCgmVGVzdENoYW5uZWwxLCBXVEZMb2dMZXZlbDo6SW5mbykpOworICAgIEVYUEVDVF9GQUxTRShX
VEZXaWxsTG9nV2l0aExldmVsKCZUZXN0Q2hhbm5lbDIsIFdURkxvZ0xldmVsOjpJbmZvKSk7Cisg
ICAgRVhQRUNUX0ZBTFNFKFdURldpbGxMb2dXaXRoTGV2ZWwoJlRlc3RDaGFubmVsMywgV1RGTG9n
TGV2ZWw6OkluZm8pKTsKKyAgICBFWFBFQ1RfRkFMU0UoV1RGV2lsbExvZ1dpdGhMZXZlbCgmVGVz
dENoYW5uZWw0LCBXVEZMb2dMZXZlbDo6SW5mbykpOworCisgICAgVGVzdENoYW5uZWwxLnN0YXRl
ID0gV1RGTG9nQ2hhbm5lbFN0YXRlOjpPZmY7CisgICAgRVhQRUNUX0ZBTFNFKFdURldpbGxMb2dX
aXRoTGV2ZWwoJlRlc3RDaGFubmVsMSwgV1RGTG9nTGV2ZWw6OkVycm9yKSk7CisgICAgRVhQRUNU
X0ZBTFNFKFdURldpbGxMb2dXaXRoTGV2ZWwoJlRlc3RDaGFubmVsMSwgV1RGTG9nTGV2ZWw6Oklu
Zm8pKTsKKworICAgIFRlc3RDaGFubmVsMS5zdGF0ZSA9IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T247
CisgICAgRVhQRUNUX1RSVUUoV1RGV2lsbExvZ1dpdGhMZXZlbCgmVGVzdENoYW5uZWwxLCBXVEZM
b2dMZXZlbDo6RXJyb3IpKTsKKyAgICBFWFBFQ1RfRkFMU0UoV1RGV2lsbExvZ1dpdGhMZXZlbCgm
VGVzdENoYW5uZWwxLCBXVEZMb2dMZXZlbDo6SW5mbykpOworCisgICAgVGVzdENoYW5uZWwxLmxl
dmVsID0gV1RGTG9nTGV2ZWw6OkluZm87CisgICAgRVhQRUNUX1RSVUUoV1RGV2lsbExvZ1dpdGhM
ZXZlbCgmVGVzdENoYW5uZWwxLCBXVEZMb2dMZXZlbDo6RXJyb3IpKTsKKyAgICBFWFBFQ1RfVFJV
RShXVEZXaWxsTG9nV2l0aExldmVsKCZUZXN0Q2hhbm5lbDEsIFdURkxvZ0xldmVsOjpJbmZvKSk7
CiB9CiAKICNpZiBURVNUX09VVFBVVApAQCAtMjAxLDIxICsyMDEsMjEgQEAgVEVTVF9GKExvZ2dp
bmdUZXN0LCBMT0cpCiAKIFRFU1RfRihMb2dnaW5nVGVzdCwgTE9HX1dJVEhfTEVWRUwpCiB7Ci0g
ICAgTE9HX1dJVEhfTEVWRUwoQ2hhbm5lbDEsIFdURkxvZ0xldmVsRXJyb3IsICJHbyBhbmQgYm9p
bCB5b3VyIGJvdHRvbXMsIHlvdSBzb25zIG9mIGEgc2lsbHkgcGVyc29uLiIpOworICAgIExPR19X
SVRIX0xFVkVMKENoYW5uZWwxLCBXVEZMb2dMZXZlbDo6RXJyb3IsICJHbyBhbmQgYm9pbCB5b3Vy
IGJvdHRvbXMsIHlvdSBzb25zIG9mIGEgc2lsbHkgcGVyc29uLiIpOwogICAgIEVYUEVDVF9UUlVF
KG91dHB1dCgpLmNvbnRhaW5zKCJzb25zIG9mIGEgc2lsbHkgcGVyc29uLiIsIGZhbHNlKSk7CiAK
LSAgICBMT0dfV0lUSF9MRVZFTChDaGFubmVsMSwgV1RGTG9nTGV2ZWxXYXJuaW5nLCAiWW91IGRv
bid0IGZyaWdodGVuIHVzLCBFbmdsaXNoIHBpZyBkb2dzLiIpOworICAgIExPR19XSVRIX0xFVkVM
KENoYW5uZWwxLCBXVEZMb2dMZXZlbDo6V2FybmluZywgIllvdSBkb24ndCBmcmlnaHRlbiB1cywg
RW5nbGlzaCBwaWcgZG9ncy4iKTsKICAgICBFWFBFQ1RfRVEoMHUsIG91dHB1dCgpLmxlbmd0aCgp
KTsKIAotICAgIFdURlNldExvZ0NoYW5uZWxMZXZlbCgmVGVzdENoYW5uZWwxLCBXVEZMb2dMZXZl
bEluZm8pOwotICAgIExPR19XSVRIX0xFVkVMKENoYW5uZWwxLCBXVEZMb2dMZXZlbFdhcm5pbmcs
ICJJJ20gRnJlbmNoLiBXaHkgZG8geW91IHRoaW5rIEkgaGF2ZSB0aGlzIG91dHJhZ2VvdXMgYWNj
ZW50LCB5b3Ugc2lsbHkga2luZz8iKTsKKyAgICBXVEZTZXRMb2dDaGFubmVsTGV2ZWwoJlRlc3RD
aGFubmVsMSwgV1RGTG9nTGV2ZWw6OkluZm8pOworICAgIExPR19XSVRIX0xFVkVMKENoYW5uZWwx
LCBXVEZMb2dMZXZlbDo6V2FybmluZywgIkknbSBGcmVuY2guIFdoeSBkbyB5b3UgdGhpbmsgSSBo
YXZlIHRoaXMgb3V0cmFnZW91cyBhY2NlbnQsIHlvdSBzaWxseSBraW5nPyIpOwogICAgIEVYUEVD
VF9UUlVFKG91dHB1dCgpLmNvbnRhaW5zKCJvdXRyYWdlb3VzIGFjY2VudCIsIGZhbHNlKSk7CiAK
LSAgICBMT0dfV0lUSF9MRVZFTChDaGFubmVsMSwgV1RGTG9nTGV2ZWxEZWJ1ZywgIllvdSBkb24n
dCBmcmlnaHRlbiB1cyB3aXRoIHlvdXIgc2lsbHkga25lZXMtYmVudCBydW5uaW5nIGFyb3VuZCBh
ZHZhbmNpbmcgYmVoYXZpb3IhIik7CisgICAgTE9HX1dJVEhfTEVWRUwoQ2hhbm5lbDEsIFdURkxv
Z0xldmVsOjpEZWJ1ZywgIllvdSBkb24ndCBmcmlnaHRlbiB1cyB3aXRoIHlvdXIgc2lsbHkga25l
ZXMtYmVudCBydW5uaW5nIGFyb3VuZCBhZHZhbmNpbmcgYmVoYXZpb3IhIik7CiAgICAgRVhQRUNU
X0VRKDB1LCBvdXRwdXQoKS5sZW5ndGgoKSk7CiAKLSAgICBXVEZTZXRMb2dDaGFubmVsTGV2ZWwo
JlRlc3RDaGFubmVsMSwgV1RGTG9nTGV2ZWxEZWJ1Zyk7Ci0gICAgTE9HX1dJVEhfTEVWRUwoQ2hh
bm5lbDEsIFdURkxvZ0xldmVsRGVidWcsICJHbyBhbmQgdGVsbCB5b3VyIG1hc3RlciB0aGF0IHdl
IGhhdmUgYmVlbiBjaGFyZ2VkIGJ5IEdvZCB3aXRoIGEgc2FjcmVkIHF1ZXN0LiIpOworICAgIFdU
RlNldExvZ0NoYW5uZWxMZXZlbCgmVGVzdENoYW5uZWwxLCBXVEZMb2dMZXZlbDo6RGVidWcpOwor
ICAgIExPR19XSVRIX0xFVkVMKENoYW5uZWwxLCBXVEZMb2dMZXZlbDo6RGVidWcsICJHbyBhbmQg
dGVsbCB5b3VyIG1hc3RlciB0aGF0IHdlIGhhdmUgYmVlbiBjaGFyZ2VkIGJ5IEdvZCB3aXRoIGEg
c2FjcmVkIHF1ZXN0LiIpOwogICAgIEVYUEVDVF9UUlVFKG91dHB1dCgpLmNvbnRhaW5zKCJzYWNy
ZWQgcXVlc3QiLCBmYWxzZSkpOwogfQogCkBAIC0yMzgsMzUgKzIzOCwzNSBAQCBURVNUX0YoTG9n
Z2luZ1Rlc3QsIFJFTEVBU0VfTE9HX0lGKQogCiBURVNUX0YoTG9nZ2luZ1Rlc3QsIFJFTEVBU0Vf
TE9HX1dJVEhfTEVWRUwpCiB7Ci0gICAgUkVMRUFTRV9MT0dfV0lUSF9MRVZFTChDaGFubmVsMSwg
V1RGTG9nTGV2ZWxFcnJvciwgIllvdSBkb24ndCBmcmlnaHRlbiB1cywgRW5nbGlzaCBwaWcgZG9n
cy4iKTsKKyAgICBSRUxFQVNFX0xPR19XSVRIX0xFVkVMKENoYW5uZWwxLCBXVEZMb2dMZXZlbDo6
RXJyb3IsICJZb3UgZG9uJ3QgZnJpZ2h0ZW4gdXMsIEVuZ2xpc2ggcGlnIGRvZ3MuIik7CiAgICAg
RVhQRUNUX1RSVUUob3V0cHV0KCkuY29udGFpbnMoInBpZyBkb2dzLiIsIGZhbHNlKSk7CiAKLSAg
ICBSRUxFQVNFX0xPR19XSVRIX0xFVkVMKENoYW5uZWwxLCBXVEZMb2dMZXZlbFdhcm5pbmcsICJH
byBhbmQgYm9pbCB5b3VyIGJvdHRvbXMsIHlvdSBzb25zIG9mIGEgc2lsbHkgcGVyc29uLiIpOwor
ICAgIFJFTEVBU0VfTE9HX1dJVEhfTEVWRUwoQ2hhbm5lbDEsIFdURkxvZ0xldmVsOjpXYXJuaW5n
LCAiR28gYW5kIGJvaWwgeW91ciBib3R0b21zLCB5b3Ugc29ucyBvZiBhIHNpbGx5IHBlcnNvbi4i
KTsKICAgICBFWFBFQ1RfRVEoMHUsIG91dHB1dCgpLmxlbmd0aCgpKTsKIAotICAgIFdURlNldExv
Z0NoYW5uZWxMZXZlbCgmVGVzdENoYW5uZWwxLCBXVEZMb2dMZXZlbEluZm8pOwotICAgIFJFTEVB
U0VfTE9HX1dJVEhfTEVWRUwoQ2hhbm5lbDEsIFdURkxvZ0xldmVsV2FybmluZywgIkknbSBGcmVu
Y2guIFdoeSBkbyB5b3UgdGhpbmsgSSBoYXZlIHRoaXMgb3V0cmFnZW91cyBhY2NlbnQsIHlvdSBz
aWxseSBraW5nPyIpOworICAgIFdURlNldExvZ0NoYW5uZWxMZXZlbCgmVGVzdENoYW5uZWwxLCBX
VEZMb2dMZXZlbDo6SW5mbyk7CisgICAgUkVMRUFTRV9MT0dfV0lUSF9MRVZFTChDaGFubmVsMSwg
V1RGTG9nTGV2ZWw6Oldhcm5pbmcsICJJJ20gRnJlbmNoLiBXaHkgZG8geW91IHRoaW5rIEkgaGF2
ZSB0aGlzIG91dHJhZ2VvdXMgYWNjZW50LCB5b3Ugc2lsbHkga2luZz8iKTsKICAgICBFWFBFQ1Rf
VFJVRShvdXRwdXQoKS5jb250YWlucygib3V0cmFnZW91cyBhY2NlbnQiLCBmYWxzZSkpOwogCi0g
ICAgUkVMRUFTRV9MT0dfV0lUSF9MRVZFTChDaGFubmVsMSwgV1RGTG9nTGV2ZWxEZWJ1ZywgIllv
dSBkb24ndCBmcmlnaHRlbiB1cyB3aXRoIHlvdXIgc2lsbHkga25lZXMtYmVudCBydW5uaW5nIGFy
b3VuZCBhZHZhbmNpbmcgYmVoYXZpb3IhIik7CisgICAgUkVMRUFTRV9MT0dfV0lUSF9MRVZFTChD
aGFubmVsMSwgV1RGTG9nTGV2ZWw6OkRlYnVnLCAiWW91IGRvbid0IGZyaWdodGVuIHVzIHdpdGgg
eW91ciBzaWxseSBrbmVlcy1iZW50IHJ1bm5pbmcgYXJvdW5kIGFkdmFuY2luZyBiZWhhdmlvciEi
KTsKICAgICBFWFBFQ1RfRVEoMHUsIG91dHB1dCgpLmxlbmd0aCgpKTsKIAotICAgIFdURlNldExv
Z0NoYW5uZWxMZXZlbCgmVGVzdENoYW5uZWwxLCBXVEZMb2dMZXZlbERlYnVnKTsKLSAgICBSRUxF
QVNFX0xPR19XSVRIX0xFVkVMKENoYW5uZWwxLCBXVEZMb2dMZXZlbERlYnVnLCAiR28gYW5kIHRl
bGwgeW91ciBtYXN0ZXIgdGhhdCB3ZSBoYXZlIGJlZW4gY2hhcmdlZCBieSBHb2Qgd2l0aCBhIHNh
Y3JlZCBxdWVzdC4iKTsKKyAgICBXVEZTZXRMb2dDaGFubmVsTGV2ZWwoJlRlc3RDaGFubmVsMSwg
V1RGTG9nTGV2ZWw6OkRlYnVnKTsKKyAgICBSRUxFQVNFX0xPR19XSVRIX0xFVkVMKENoYW5uZWwx
LCBXVEZMb2dMZXZlbDo6RGVidWcsICJHbyBhbmQgdGVsbCB5b3VyIG1hc3RlciB0aGF0IHdlIGhh
dmUgYmVlbiBjaGFyZ2VkIGJ5IEdvZCB3aXRoIGEgc2FjcmVkIHF1ZXN0LiIpOwogICAgIEVYUEVD
VF9UUlVFKG91dHB1dCgpLmNvbnRhaW5zKCJzYWNyZWQgcXVlc3QiLCBmYWxzZSkpOwogfQogCiBU
RVNUX0YoTG9nZ2luZ1Rlc3QsIFJFTEVBU0VfTE9HX1dJVEhfTEVWRUxfSUYpCiB7CiAgICAgYm9v
bCBlbmFibGVkID0gdHJ1ZTsKLSAgICBSRUxFQVNFX0xPR19XSVRIX0xFVkVMX0lGKGVuYWJsZWQs
IENoYW5uZWwxLCBXVEZMb2dMZXZlbEVycm9yLCAiSXMgdGhlcmUgc29tZW9uZSBlbHNlIHVwIHRo
ZXJlIHRoYXQgd2UgY2FuIHRhbGsgdG8/Iik7CisgICAgUkVMRUFTRV9MT0dfV0lUSF9MRVZFTF9J
RihlbmFibGVkLCBDaGFubmVsMSwgV1RGTG9nTGV2ZWw6OkVycm9yLCAiSXMgdGhlcmUgc29tZW9u
ZSBlbHNlIHVwIHRoZXJlIHRoYXQgd2UgY2FuIHRhbGsgdG8/Iik7CiAgICAgRVhQRUNUX1RSVUUo
b3V0cHV0KCkuY29udGFpbnMoInNvbWVvbmUgZWxzZSIsIGZhbHNlKSk7CiAKLSAgICBSRUxFQVNF
X0xPR19XSVRIX0xFVkVMX0lGKGVuYWJsZWQsIENoYW5uZWwxLCBXVEZMb2dMZXZlbERlYnVnLCAi
Tm8sIG5vdyBnbyBhd2F5Iik7CisgICAgUkVMRUFTRV9MT0dfV0lUSF9MRVZFTF9JRihlbmFibGVk
LCBDaGFubmVsMSwgV1RGTG9nTGV2ZWw6OkRlYnVnLCAiTm8sIG5vdyBnbyBhd2F5Iik7CiAgICAg
RVhQRUNUX0VRKDB1LCBvdXRwdXQoKS5sZW5ndGgoKSk7CiAKICAgICBlbmFibGVkID0gZmFsc2U7
Ci0gICAgUkVMRUFTRV9MT0dfV0lUSF9MRVZFTF9JRihlbmFibGVkLCBDaGFubmVsMSwgV1RGTG9n
TGV2ZWxXYXJuaW5nLCAib3IgSSBzaGFsbCB0YXVudCB5b3UgYSBzZWNvbmQgdGltZSEgJWkiLCAx
Mik7CisgICAgUkVMRUFTRV9MT0dfV0lUSF9MRVZFTF9JRihlbmFibGVkLCBDaGFubmVsMSwgV1RG
TG9nTGV2ZWw6Oldhcm5pbmcsICJvciBJIHNoYWxsIHRhdW50IHlvdSBhIHNlY29uZCB0aW1lISAl
aSIsIDEyKTsKICAgICBFWFBFQ1RfRVEoMHUsIG91dHB1dCgpLmxlbmd0aCgpKTsKIH0KIApAQCAt
Mjc1LDggKzI3NSw4IEBAIFRFU1RfRihMb2dnaW5nVGVzdCwgTG9nZ2VyKQogICAgIFJlZjxMb2dn
ZXI+IGxvZ2dlciA9IExvZ2dlcjo6Y3JlYXRlKHRoaXMpOwogICAgIEVYUEVDVF9UUlVFKGxvZ2dl
ci0+ZW5hYmxlZCgpKTsKIAotICAgIFdURlNldExvZ0NoYW5uZWxMZXZlbCgmVGVzdENoYW5uZWwx
LCBXVEZMb2dMZXZlbEVycm9yKTsKLSAgICBFWFBFQ1RfVFJVRShsb2dnZXItPndpbGxMb2coVGVz
dENoYW5uZWwxLCBXVEZMb2dMZXZlbEVycm9yKSk7CisgICAgV1RGU2V0TG9nQ2hhbm5lbExldmVs
KCZUZXN0Q2hhbm5lbDEsIFdURkxvZ0xldmVsOjpFcnJvcik7CisgICAgRVhQRUNUX1RSVUUobG9n
Z2VyLT53aWxsTG9nKFRlc3RDaGFubmVsMSwgV1RGTG9nTGV2ZWw6OkVycm9yKSk7CiAgICAgbG9n
Z2VyLT5lcnJvcihUZXN0Q2hhbm5lbDEsICJZb3UncmUgdXNpbmcgY29jb251dHMhIik7CiAgICAg
RVhQRUNUX1RSVUUob3V0cHV0KCkuY29udGFpbnMoIllvdSdyZSB1c2luZyBjb2NvbnV0cyEiLCBm
YWxzZSkpOwogICAgIGxvZ2dlci0+d2FybmluZyhUZXN0Q2hhbm5lbDEsICJZb3UncmUgdXNpbmcg
Y29jb251dHMhIik7CkBAIC0zMDUsMTUgKzMwNSwxNSBAQCBURVNUX0YoTG9nZ2luZ1Rlc3QsIExv
Z2dlcikKICAgICBsb2dnZXItPmVycm9yKFRlc3RDaGFubmVsMSwgIllvdSd2ZSBnb3QgIiwgMiwg
IiBlbXB0eSBoYWx2ZXMgb2YgIiwgImNvY29udXRzISIpOwogICAgIEVYUEVDVF9UUlVFKG91dHB1
dCgpLmNvbnRhaW5zKCJZb3UndmUgZ290IDIgZW1wdHkgaGFsdmVzIG9mIGNvY29udXRzISIsIGZh
bHNlKSk7CiAKLSAgICBXVEZTZXRMb2dDaGFubmVsTGV2ZWwoJlRlc3RDaGFubmVsMSwgV1RGTG9n
TGV2ZWxFcnJvcik7CisgICAgV1RGU2V0TG9nQ2hhbm5lbExldmVsKCZUZXN0Q2hhbm5lbDEsIFdU
RkxvZ0xldmVsOjpFcnJvcik7CiAgICAgbG9nZ2VyLT5sb2dBbHdheXMoVGVzdENoYW5uZWwxLCAi
SSBzaGFsbCB0YXVudCB5b3UgYSBzZWNvbmQgdGltZSEiKTsKICAgICBFWFBFQ1RfVFJVRShvdXRw
dXQoKS5jb250YWlucygiSSBzaGFsbCB0YXVudCB5b3UgYSBzZWNvbmQgdGltZSEiLCBmYWxzZSkp
OwogCiAgICAgbG9nZ2VyLT5zZXRFbmFibGVkKHRoaXMsIGZhbHNlKTsKLSAgICBFWFBFQ1RfRkFM
U0UobG9nZ2VyLT53aWxsTG9nKFRlc3RDaGFubmVsMSwgV1RGTG9nTGV2ZWxFcnJvcikpOwotICAg
IEVYUEVDVF9GQUxTRShsb2dnZXItPndpbGxMb2coVGVzdENoYW5uZWwxLCBXVEZMb2dMZXZlbFdh
cm5pbmcpKTsKLSAgICBFWFBFQ1RfRkFMU0UobG9nZ2VyLT53aWxsTG9nKFRlc3RDaGFubmVsMSwg
V1RGTG9nTGV2ZWxJbmZvKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKGxvZ2dlci0+d2lsbExvZyhUZXN0
Q2hhbm5lbDEsIFdURkxvZ0xldmVsRGVidWcpKTsKKyAgICBFWFBFQ1RfRkFMU0UobG9nZ2VyLT53
aWxsTG9nKFRlc3RDaGFubmVsMSwgV1RGTG9nTGV2ZWw6OkVycm9yKSk7CisgICAgRVhQRUNUX0ZB
TFNFKGxvZ2dlci0+d2lsbExvZyhUZXN0Q2hhbm5lbDEsIFdURkxvZ0xldmVsOjpXYXJuaW5nKSk7
CisgICAgRVhQRUNUX0ZBTFNFKGxvZ2dlci0+d2lsbExvZyhUZXN0Q2hhbm5lbDEsIFdURkxvZ0xl
dmVsOjpJbmZvKSk7CisgICAgRVhQRUNUX0ZBTFNFKGxvZ2dlci0+d2lsbExvZyhUZXN0Q2hhbm5l
bDEsIFdURkxvZ0xldmVsOjpEZWJ1ZykpOwogICAgIEVYUEVDVF9GQUxTRShsb2dnZXItPmVuYWJs
ZWQoKSk7CiAgICAgbG9nZ2VyLT5sb2dBbHdheXMoVGVzdENoYW5uZWwxLCAiWW91J3ZlIGdvdCB0
d28gZW1wdHkgaGFsdmVzIG9mIGNvY29udXRzIik7CiAgICAgRVhQRUNUX0VRKDB1LCBvdXRwdXQo
KS5sZW5ndGgoKSk7CkBAIC0zNDgsNyArMzQ4LDcgQEAgVEVTVF9GKExvZ2dpbmdUZXN0LCBMb2dn
ZXJIZWxwZXIpCiAgICAgRVhQRUNUX1RSVUUocmVzdWx0LmNvbnRhaW5zKHNpZ25hdHVyZSwgZmFs
c2UpKTsKICAgICBFWFBFQ1RfVFJVRShyZXN1bHQuY29udGFpbnMoInRvIHRoZSBzaG93IHRoYXQg
bmV2ZXIiLCBmYWxzZSkpOwogCi0gICAgV1RGU2V0TG9nQ2hhbm5lbExldmVsKCZUZXN0Q2hhbm5l
bDEsIFdURkxvZ0xldmVsV2FybmluZyk7CisgICAgV1RGU2V0TG9nQ2hhbm5lbExldmVsKCZUZXN0
Q2hhbm5lbDEsIFdURkxvZ0xldmVsOjpXYXJuaW5nKTsKIAogICAgIEVSUk9SX0xPRyhMT0dJREVO
VElGSUVSLCAiV2UncmUgc28gZ2xhZCB5b3UgY291bGQgYXR0ZW5kIik7CiAgICAgRVhQRUNUX1RS
VUUob3V0cHV0KCkuY29udGFpbnMoIldlJ3JlIHNvIGdsYWQgeW91IGNvdWxkIGF0dGVuZCIsIGZh
bHNlKSk7CkBAIC0zODgsNyArMzg4LDcgQEAgcHJpdmF0ZToKIAogICAgIFN0cmluZ0J1aWxkZXIg
bV9sb2dCdWZmZXI7CiAgICAgV1RGTG9nQ2hhbm5lbCBtX2xhc3RDaGFubmVsOwotICAgIFdURkxv
Z0xldmVsIG1fbGFzdExldmVsIHsgV1RGTG9nTGV2ZWxFcnJvciB9OworICAgIFdURkxvZ0xldmVs
IG1fbGFzdExldmVsIHsgV1RGTG9nTGV2ZWw6OkVycm9yIH07CiB9OwogCiAjaWYgIVJFTEVBU0Vf
TE9HX0RJU0FCTEVECkBAIC00MDMsNyArNDAzLDcgQEAgVEVTVF9GKExvZ2dpbmdUZXN0LCBMb2dP
YnNlcnZlcikKICAgICBFWFBFQ1RfVFJVRSh0aGlzLT5vdXRwdXQoKS5jb250YWlucygidGVzdGlu
ZyAxLCAyLCAzIiwgZmFsc2UpKTsKICAgICBFWFBFQ1RfVFJVRShvYnNlcnZlci5sb2coKS5jb250
YWlucygidGVzdGluZyAxLCAyLCAzIiwgZmFsc2UpKTsKICAgICBFWFBFQ1RfU1RSRVEob2JzZXJ2
ZXIuY2hhbm5lbCgpLm5hbWUsIGxvZ0NoYW5uZWwoKS5uYW1lKTsKLSAgICBFWFBFQ1RfRVEoc3Rh
dGljX2Nhc3Q8aW50PihXVEZMb2dMZXZlbEFsd2F5cyksIHN0YXRpY19jYXN0PGludD4ob2JzZXJ2
ZXIubGV2ZWwoKSkpOworICAgIEVYUEVDVF9FUShzdGF0aWNfY2FzdDxpbnQ+KFdURkxvZ0xldmVs
OjpBbHdheXMpLCBzdGF0aWNfY2FzdDxpbnQ+KG9ic2VydmVyLmxldmVsKCkpKTsKIAogICAgIGxv
Z2dlcigpLnJlbW92ZU9ic2VydmVyKG9ic2VydmVyKTsKICAgICBBTFdBWVNfTE9HKCJ0ZXN0aW5n
ICIsIDEsICIsICIsIDIsICIsIDMiKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>365067</attachid>
            <date>2019-03-18 14:38:00 -0700</date>
            <delta_ts>2019-03-18 15:24:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195904-20190318143759.patch</filename>
            <type>text/plain</type>
            <size>45611</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNDMxMDUpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDE5LTAzLTE4ICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTWFrZSBXVEZMb2dDaGFubmVsU3Rh
dGUgYW5kIFdURkxvZ0xldmVsIGVudW0gY2xhc3NlcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1OTA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJp
YyBDYXJsc29uLgorCisgICAgICAgICogd3RmL0Fzc2VydGlvbnMuY3BwOgorICAgICAgICAqIHd0
Zi9Bc3NlcnRpb25zLmg6CisgICAgICAgICogd3RmL0xvZ2dlci5oOgorICAgICAgICAoV1RGOjpM
b2dnZXI6OmxvZ0Fsd2F5cyBjb25zdCk6CisgICAgICAgIChXVEY6OkxvZ2dlcjo6ZXJyb3IgY29u
c3QpOgorICAgICAgICAoV1RGOjpMb2dnZXI6Ondhcm5pbmcgY29uc3QpOgorICAgICAgICAoV1RG
OjpMb2dnZXI6OmluZm8gY29uc3QpOgorICAgICAgICAoV1RGOjpMb2dnZXI6OmRlYnVnIGNvbnN0
KToKKyAgICAgICAgKFdURjo6TG9nZ2VyOjp3aWxsTG9nIGNvbnN0KToKKyAgICAgICAgKFdURjo6
TG9nZ2VyOjpsb2cpOgorICAgICAgICAqIHd0Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwOgor
ICAgICAgICAqIHd0Zi9SZWZDb3VudGVkTGVha0NvdW50ZXIuY3BwOgorCiAyMDE5LTAzLTE2ICBE
YXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXByb3ZlIG5vcm1hbGl6
YXRpb24gY29kZSwgaW5jbHVkaW5nIG1vdmluZyBmcm9tIHVub3JtLmggdG8gdW5vcm0yLmgKSW5k
ZXg6IFNvdXJjZS9XVEYvd3RmL0FnZ3JlZ2F0ZUxvZ2dlci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XVEYvd3RmL0FnZ3JlZ2F0ZUxvZ2dlci5oCShyZXZpc2lvbiAyNDMxMDUpCisrKyBTb3VyY2Uv
V1RGL3d0Zi9BZ2dyZWdhdGVMb2dnZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNTcsMzIgKzU3LDMy
IEBAIHB1YmxpYzoKICAgICAgICAgLy8gIG9uIHNvbWUgc3lzdGVtcywgc28gZG9uJ3QgYWxsb3cg
aXQuCiAgICAgICAgIFVOVVNFRF9QQVJBTShjaGFubmVsKTsKICNlbHNlCi0gICAgICAgIGxvZyhj
aGFubmVsLCBXVEZMb2dMZXZlbEFsd2F5cywgYXJndW1lbnRzLi4uKTsKKyAgICAgICAgbG9nKGNo
YW5uZWwsIFdURkxvZ0xldmVsOjpBbHdheXMsIGFyZ3VtZW50cy4uLik7CiAjZW5kaWYKICAgICB9
CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudHM+CiAgICAgaW5saW5lIHZvaWQg
ZXJyb3IoV1RGTG9nQ2hhbm5lbCYgY2hhbm5lbCwgY29uc3QgQXJndW1lbnRzJi4uLiBhcmd1bWVu
dHMpIGNvbnN0CiAgICAgewotICAgICAgICBsb2coY2hhbm5lbCwgV1RGTG9nTGV2ZWxFcnJvciwg
YXJndW1lbnRzLi4uKTsKKyAgICAgICAgbG9nKGNoYW5uZWwsIFdURkxvZ0xldmVsOjpFcnJvciwg
YXJndW1lbnRzLi4uKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVu
dHM+CiAgICAgaW5saW5lIHZvaWQgd2FybmluZyhXVEZMb2dDaGFubmVsJiBjaGFubmVsLCBjb25z
dCBBcmd1bWVudHMmLi4uIGFyZ3VtZW50cykgY29uc3QKICAgICB7Ci0gICAgICAgIGxvZyhjaGFu
bmVsLCBXVEZMb2dMZXZlbFdhcm5pbmcsIGFyZ3VtZW50cy4uLik7CisgICAgICAgIGxvZyhjaGFu
bmVsLCBXVEZMb2dMZXZlbDo6V2FybmluZywgYXJndW1lbnRzLi4uKTsKICAgICB9CiAKICAgICB0
ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudHM+CiAgICAgaW5saW5lIHZvaWQgaW5mbyhXVEZM
b2dDaGFubmVsJiBjaGFubmVsLCBjb25zdCBBcmd1bWVudHMmLi4uIGFyZ3VtZW50cykgY29uc3QK
ICAgICB7Ci0gICAgICAgIGxvZyhjaGFubmVsLCBXVEZMb2dMZXZlbEluZm8sIGFyZ3VtZW50cy4u
Lik7CisgICAgICAgIGxvZyhjaGFubmVsLCBXVEZMb2dMZXZlbDo6SW5mbywgYXJndW1lbnRzLi4u
KTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudHM+CiAgICAgaW5s
aW5lIHZvaWQgZGVidWcoV1RGTG9nQ2hhbm5lbCYgY2hhbm5lbCwgY29uc3QgQXJndW1lbnRzJi4u
LiBhcmd1bWVudHMpIGNvbnN0CiAgICAgewotICAgICAgICBsb2coY2hhbm5lbCwgV1RGTG9nTGV2
ZWxEZWJ1ZywgYXJndW1lbnRzLi4uKTsKKyAgICAgICAgbG9nKGNoYW5uZWwsIFdURkxvZ0xldmVs
OjpEZWJ1ZywgYXJndW1lbnRzLi4uKTsKICAgICB9CiAKICAgICBpbmxpbmUgYm9vbCB3aWxsTG9n
KGNvbnN0IFdURkxvZ0NoYW5uZWwmIGNoYW5uZWwsIFdURkxvZ0xldmVsIGxldmVsKSBjb25zdApJ
bmRleDogU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dURi93dGYvQXNzZXJ0aW9ucy5jcHAJKHJldmlzaW9uIDI0MzEwNSkKKysrIFNvdXJjZS9XVEYv
d3RmL0Fzc2VydGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MDksMTUgKzQwOSwxNSBAQCB2
b2lkIFdURlNldExvZ0NoYW5uZWxMZXZlbChXVEZMb2dDaGFubmVsCiAKIGJvb2wgV1RGV2lsbExv
Z1dpdGhMZXZlbChXVEZMb2dDaGFubmVsKiBjaGFubmVsLCBXVEZMb2dMZXZlbCBsZXZlbCkKIHsK
LSAgICByZXR1cm4gY2hhbm5lbC0+bGV2ZWwgPj0gbGV2ZWwgJiYgY2hhbm5lbC0+c3RhdGUgIT0g
V1RGTG9nQ2hhbm5lbE9mZjsKKyAgICByZXR1cm4gY2hhbm5lbC0+bGV2ZWwgPj0gbGV2ZWwgJiYg
Y2hhbm5lbC0+c3RhdGUgIT0gV1RGTG9nQ2hhbm5lbFN0YXRlOjpPZmY7CiB9CiAKIHZvaWQgV1RG
TG9nV2l0aExldmVsKFdURkxvZ0NoYW5uZWwqIGNoYW5uZWwsIFdURkxvZ0xldmVsIGxldmVsLCBj
b25zdCBjaGFyKiBmb3JtYXQsIC4uLikKIHsKLSAgICBpZiAobGV2ZWwgIT0gV1RGTG9nTGV2ZWxB
bHdheXMgJiYgbGV2ZWwgPiBjaGFubmVsLT5sZXZlbCkKKyAgICBpZiAobGV2ZWwgIT0gV1RGTG9n
TGV2ZWw6OkFsd2F5cyAmJiBsZXZlbCA+IGNoYW5uZWwtPmxldmVsKQogICAgICAgICByZXR1cm47
CiAKLSAgICBpZiAoY2hhbm5lbC0+bGV2ZWwgIT0gV1RGTG9nTGV2ZWxBbHdheXMgJiYgY2hhbm5l
bC0+c3RhdGUgPT0gV1RGTG9nQ2hhbm5lbE9mZikKKyAgICBpZiAoY2hhbm5lbC0+bGV2ZWwgIT0g
V1RGTG9nTGV2ZWw6OkFsd2F5cyAmJiBjaGFubmVsLT5zdGF0ZSA9PSBXVEZMb2dDaGFubmVsU3Rh
dGU6Ok9mZikKICAgICAgICAgcmV0dXJuOwogCiAgICAgdmFfbGlzdCBhcmdzOwpAQCAtNDMyLDE1
ICs0MzIsMTUgQEAgdm9pZCBXVEZMb2dXaXRoTGV2ZWwoV1RGTG9nQ2hhbm5lbCogY2hhbgogCiBz
dGF0aWMgdm9pZCBXVEZMb2dWYUxpc3QoV1RGTG9nQ2hhbm5lbCogY2hhbm5lbCwgY29uc3QgY2hh
ciogZm9ybWF0LCB2YV9saXN0IGFyZ3MpCiB7Ci0gICAgaWYgKGNoYW5uZWwtPnN0YXRlID09IFdU
RkxvZ0NoYW5uZWxPZmYpCisgICAgaWYgKGNoYW5uZWwtPnN0YXRlID09IFdURkxvZ0NoYW5uZWxT
dGF0ZTo6T2ZmKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoY2hhbm5lbC0+c3RhdGUgPT0g
V1RGTG9nQ2hhbm5lbE9uKSB7CisgICAgaWYgKGNoYW5uZWwtPnN0YXRlID09IFdURkxvZ0NoYW5u
ZWxTdGF0ZTo6T24pIHsKICAgICAgICAgdnByaW50Zl9zdGRlcnJfd2l0aF90cmFpbGluZ19uZXds
aW5lKGZvcm1hdCwgYXJncyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBBU1NFUlQo
Y2hhbm5lbC0+c3RhdGUgPT0gV1RGTG9nQ2hhbm5lbE9uV2l0aEFjY3VtdWxhdGlvbik7CisgICAg
QVNTRVJUKGNoYW5uZWwtPnN0YXRlID09IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T25XaXRoQWNjdW11
bGF0aW9uKTsKIAogICAgIEFMTE9XX05PTkxJVEVSQUxfRk9STUFUX0JFR0lOCiAgICAgU3RyaW5n
IGxvZ2dpbmdTdHJpbmcgPSBXVEY6OmNyZWF0ZVdpdGhGb3JtYXRBbmRBcmd1bWVudHMoZm9ybWF0
LCBhcmdzKTsKQEAgLTQ2Niw3ICs0NjYsNyBAQCB2b2lkIFdURkxvZyhXVEZMb2dDaGFubmVsKiBj
aGFubmVsLCBjb25zCiAKIHZvaWQgV1RGTG9nVmVyYm9zZShjb25zdCBjaGFyKiBmaWxlLCBpbnQg
bGluZSwgY29uc3QgY2hhciogZnVuY3Rpb24sIFdURkxvZ0NoYW5uZWwqIGNoYW5uZWwsIGNvbnN0
IGNoYXIqIGZvcm1hdCwgLi4uKQogewotICAgIGlmIChjaGFubmVsLT5zdGF0ZSAhPSBXVEZMb2dD
aGFubmVsT24pCisgICAgaWYgKGNoYW5uZWwtPnN0YXRlICE9IFdURkxvZ0NoYW5uZWxTdGF0ZTo6
T24pCiAgICAgICAgIHJldHVybjsKIAogICAgIHZhX2xpc3QgYXJnczsKQEAgLTUzMyw5ICs1MzMs
OSBAQCB2b2lkIFdURkluaXRpYWxpemVMb2dDaGFubmVsU3RhdGVzRnJvbVN0CiAgICAgICAgIFZl
Y3RvcjxTdHJpbmc+IGNvbXBvbmVudEluZm8gPSBsb2dMZXZlbENvbXBvbmVudC5zcGxpdCgnPScp
OwogICAgICAgICBTdHJpbmcgY29tcG9uZW50ID0gY29tcG9uZW50SW5mb1swXS5zdHJpcFdoaXRl
U3BhY2UoKTsKIAotICAgICAgICBXVEZMb2dDaGFubmVsU3RhdGUgbG9nQ2hhbm5lbFN0YXRlID0g
V1RGTG9nQ2hhbm5lbE9uOworICAgICAgICBXVEZMb2dDaGFubmVsU3RhdGUgbG9nQ2hhbm5lbFN0
YXRlID0gV1RGTG9nQ2hhbm5lbFN0YXRlOjpPbjsKICAgICAgICAgaWYgKGNvbXBvbmVudC5zdGFy
dHNXaXRoKCctJykpIHsKLSAgICAgICAgICAgIGxvZ0NoYW5uZWxTdGF0ZSA9IFdURkxvZ0NoYW5u
ZWxPZmY7CisgICAgICAgICAgICBsb2dDaGFubmVsU3RhdGUgPSBXVEZMb2dDaGFubmVsU3RhdGU6
Ok9mZjsKICAgICAgICAgICAgIGNvbXBvbmVudCA9IGNvbXBvbmVudC5zdWJzdHJpbmcoMSk7CiAg
ICAgICAgIH0KIApAQCAtNTQ0LDE3ICs1NDQsMTcgQEAgdm9pZCBXVEZJbml0aWFsaXplTG9nQ2hh
bm5lbFN0YXRlc0Zyb21TdAogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAotICAg
ICAgICBXVEZMb2dMZXZlbCBsb2dDaGFubmVsTGV2ZWwgPSBXVEZMb2dMZXZlbEVycm9yOworICAg
ICAgICBXVEZMb2dMZXZlbCBsb2dDaGFubmVsTGV2ZWwgPSBXVEZMb2dMZXZlbDo6RXJyb3I7CiAg
ICAgICAgIGlmIChjb21wb25lbnRJbmZvLnNpemUoKSA+IDEpIHsKICAgICAgICAgICAgIFN0cmlu
ZyBsZXZlbCA9IGNvbXBvbmVudEluZm9bMV0uc3RyaXBXaGl0ZVNwYWNlKCk7CiAgICAgICAgICAg
ICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UobGV2ZWwsICJlcnJvciIpKQotICAg
ICAgICAgICAgICAgIGxvZ0NoYW5uZWxMZXZlbCA9IFdURkxvZ0xldmVsRXJyb3I7CisgICAgICAg
ICAgICAgICAgbG9nQ2hhbm5lbExldmVsID0gV1RGTG9nTGV2ZWw6OkVycm9yOwogICAgICAgICAg
ICAgZWxzZSBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UobGV2ZWwsICJ3YXJuaW5n
IikpCi0gICAgICAgICAgICAgICAgbG9nQ2hhbm5lbExldmVsID0gV1RGTG9nTGV2ZWxXYXJuaW5n
OworICAgICAgICAgICAgICAgIGxvZ0NoYW5uZWxMZXZlbCA9IFdURkxvZ0xldmVsOjpXYXJuaW5n
OwogICAgICAgICAgICAgZWxzZSBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UobGV2
ZWwsICJpbmZvIikpCi0gICAgICAgICAgICAgICAgbG9nQ2hhbm5lbExldmVsID0gV1RGTG9nTGV2
ZWxJbmZvOworICAgICAgICAgICAgICAgIGxvZ0NoYW5uZWxMZXZlbCA9IFdURkxvZ0xldmVsOjpJ
bmZvOwogICAgICAgICAgICAgZWxzZSBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uo
bGV2ZWwsICJkZWJ1ZyIpKQotICAgICAgICAgICAgICAgIGxvZ0NoYW5uZWxMZXZlbCA9IFdURkxv
Z0xldmVsRGVidWc7CisgICAgICAgICAgICAgICAgbG9nQ2hhbm5lbExldmVsID0gV1RGTG9nTGV2
ZWw6OkRlYnVnOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIFdURkxvZ0Fsd2F5
cygiVW5rbm93biBsb2dnaW5nIGxldmVsOiAlcyIsIGxldmVsLnV0ZjgoKS5kYXRhKCkpOwogICAg
ICAgICB9CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5oCShyZXZpc2lvbiAyNDMxMDUpCisrKyBTb3VyY2Uv
V1RGL3d0Zi9Bc3NlcnRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0OCw4ICsxNDgsMTMgQEAg
ZXh0ZXJuICJDIiB7CiAjZGVmaW5lIE5PX1JFVFVSTl9EVUVfVE9fQ1JBU0gKICNlbmRpZgogCi10
eXBlZGVmIGVudW0geyBXVEZMb2dDaGFubmVsT2ZmLCBXVEZMb2dDaGFubmVsT24sIFdURkxvZ0No
YW5uZWxPbldpdGhBY2N1bXVsYXRpb24gfSBXVEZMb2dDaGFubmVsU3RhdGU7Ci10eXBlZGVmIGVu
dW0geyBXVEZMb2dMZXZlbEFsd2F5cywgV1RGTG9nTGV2ZWxFcnJvciwgV1RGTG9nTGV2ZWxXYXJu
aW5nLCBXVEZMb2dMZXZlbEluZm8sIFdURkxvZ0xldmVsRGVidWcgfSBXVEZMb2dMZXZlbDsKKyNp
ZmRlZiBfX2NwbHVzcGx1cworZW51bSBjbGFzcyBXVEZMb2dDaGFubmVsU3RhdGUgOiB1aW50OF90
IHsgT2ZmLCBPbiwgT25XaXRoQWNjdW11bGF0aW9uIH07CitlbnVtIGNsYXNzIFdURkxvZ0xldmVs
IDogdWludDhfdCB7IEFsd2F5cywgRXJyb3IsIFdhcm5pbmcsIEluZm8sIERlYnVnIH07CisjZWxz
ZQordHlwZWRlZiB1aW50OF90IFdURkxvZ0NoYW5uZWxTdGF0ZTsKK3R5cGVkZWYgdWludDhfdCBX
VEZMb2dMZXZlbDsKKyNlbmRpZgogCiB0eXBlZGVmIHN0cnVjdCB7CiAgICAgV1RGTG9nQ2hhbm5l
bFN0YXRlIHN0YXRlOwpAQCAtMTc0LDEwICsxNzksMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgewogI2lm
ICFkZWZpbmVkKERFRklORV9MT0dfQ0hBTk5FTCkKICNpZiBSRUxFQVNFX0xPR19ESVNBQkxFRAog
I2RlZmluZSBERUZJTkVfTE9HX0NIQU5ORUwobmFtZSwgc3Vic3lzdGVtKSBcCi0gICAgV1RGTG9n
Q2hhbm5lbCBMT0dfQ0hBTk5FTChuYW1lKSA9IHsgV1RGTG9nQ2hhbm5lbE9mZiwgI25hbWUsIFdU
RkxvZ0xldmVsRXJyb3IgfTsKKyAgICBXVEZMb2dDaGFubmVsIExPR19DSEFOTkVMKG5hbWUpID0g
eyBXVEZMb2dDaGFubmVsU3RhdGU6Ok9mZiwgI25hbWUsIFdURkxvZ0xldmVsOjpFcnJvciB9Owog
I2Vsc2UKICNkZWZpbmUgREVGSU5FX0xPR19DSEFOTkVMKG5hbWUsIHN1YnN5c3RlbSkgXAotICAg
IFdURkxvZ0NoYW5uZWwgTE9HX0NIQU5ORUwobmFtZSkgPSB7IFdURkxvZ0NoYW5uZWxPZmYsICNu
YW1lLCBXVEZMb2dMZXZlbEVycm9yLCBzdWJzeXN0ZW0sIE9TX0xPR19ERUZBVUxUIH07CisgICAg
V1RGTG9nQ2hhbm5lbCBMT0dfQ0hBTk5FTChuYW1lKSA9IHsgV1RGTG9nQ2hhbm5lbFN0YXRlOjpP
ZmYsICNuYW1lLCBXVEZMb2dMZXZlbDo6RXJyb3IsIHN1YnN5c3RlbSwgT1NfTE9HX0RFRkFVTFQg
fTsKICNlbmRpZgogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL0xvZ2dlci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0xvZ2dlci5oCShyZXZpc2lvbiAyNDMxMDUpCisrKyBT
b3VyY2UvV1RGL3d0Zi9Mb2dnZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTI2LDQ3ICsxMjYsNDcg
QEAgcHVibGljOgogICAgICAgICAvLyAgb24gc29tZSBzeXN0ZW1zLCBzbyBkb24ndCBhbGxvdyBp
dC4KICAgICAgICAgVU5VU0VEX1BBUkFNKGNoYW5uZWwpOwogI2Vsc2UKLSAgICAgICAgaWYgKCF3
aWxsTG9nKGNoYW5uZWwsIFdURkxvZ0xldmVsQWx3YXlzKSkKKyAgICAgICAgaWYgKCF3aWxsTG9n
KGNoYW5uZWwsIFdURkxvZ0xldmVsOjpBbHdheXMpKQogICAgICAgICAgICAgcmV0dXJuOwogCi0g
ICAgICAgIGxvZyhjaGFubmVsLCBXVEZMb2dMZXZlbEFsd2F5cywgYXJndW1lbnRzLi4uKTsKKyAg
ICAgICAgbG9nKGNoYW5uZWwsIFdURkxvZ0xldmVsOjpBbHdheXMsIGFyZ3VtZW50cy4uLik7CiAj
ZW5kaWYKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudHM+CiAgICAg
aW5saW5lIHZvaWQgZXJyb3IoV1RGTG9nQ2hhbm5lbCYgY2hhbm5lbCwgY29uc3QgQXJndW1lbnRz
Ji4uLiBhcmd1bWVudHMpIGNvbnN0CiAgICAgewotICAgICAgICBpZiAoIXdpbGxMb2coY2hhbm5l
bCwgV1RGTG9nTGV2ZWxFcnJvcikpCisgICAgICAgIGlmICghd2lsbExvZyhjaGFubmVsLCBXVEZM
b2dMZXZlbDo6RXJyb3IpKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGxvZyhjaGFu
bmVsLCBXVEZMb2dMZXZlbEVycm9yLCBhcmd1bWVudHMuLi4pOworICAgICAgICBsb2coY2hhbm5l
bCwgV1RGTG9nTGV2ZWw6OkVycm9yLCBhcmd1bWVudHMuLi4pOwogICAgIH0KIAogICAgIHRlbXBs
YXRlPHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KICAgICBpbmxpbmUgdm9pZCB3YXJuaW5nKFdURkxv
Z0NoYW5uZWwmIGNoYW5uZWwsIGNvbnN0IEFyZ3VtZW50cyYuLi4gYXJndW1lbnRzKSBjb25zdAog
ICAgIHsKLSAgICAgICAgaWYgKCF3aWxsTG9nKGNoYW5uZWwsIFdURkxvZ0xldmVsV2FybmluZykp
CisgICAgICAgIGlmICghd2lsbExvZyhjaGFubmVsLCBXVEZMb2dMZXZlbDo6V2FybmluZykpCiAg
ICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgbG9nKGNoYW5uZWwsIFdURkxvZ0xldmVsV2Fy
bmluZywgYXJndW1lbnRzLi4uKTsKKyAgICAgICAgbG9nKGNoYW5uZWwsIFdURkxvZ0xldmVsOjpX
YXJuaW5nLCBhcmd1bWVudHMuLi4pOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4u
IEFyZ3VtZW50cz4KICAgICBpbmxpbmUgdm9pZCBpbmZvKFdURkxvZ0NoYW5uZWwmIGNoYW5uZWws
IGNvbnN0IEFyZ3VtZW50cyYuLi4gYXJndW1lbnRzKSBjb25zdAogICAgIHsKLSAgICAgICAgaWYg
KCF3aWxsTG9nKGNoYW5uZWwsIFdURkxvZ0xldmVsSW5mbykpCisgICAgICAgIGlmICghd2lsbExv
ZyhjaGFubmVsLCBXVEZMb2dMZXZlbDo6SW5mbykpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAg
ICAgICAgbG9nKGNoYW5uZWwsIFdURkxvZ0xldmVsSW5mbywgYXJndW1lbnRzLi4uKTsKKyAgICAg
ICAgbG9nKGNoYW5uZWwsIFdURkxvZ0xldmVsOjpJbmZvLCBhcmd1bWVudHMuLi4pOwogICAgIH0K
IAogICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KICAgICBpbmxpbmUgdm9pZCBk
ZWJ1ZyhXVEZMb2dDaGFubmVsJiBjaGFubmVsLCBjb25zdCBBcmd1bWVudHMmLi4uIGFyZ3VtZW50
cykgY29uc3QKICAgICB7Ci0gICAgICAgIGlmICghd2lsbExvZyhjaGFubmVsLCBXVEZMb2dMZXZl
bERlYnVnKSkKKyAgICAgICAgaWYgKCF3aWxsTG9nKGNoYW5uZWwsIFdURkxvZ0xldmVsOjpEZWJ1
ZykpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgbG9nKGNoYW5uZWwsIFdURkxvZ0xl
dmVsRGVidWcsIGFyZ3VtZW50cy4uLik7CisgICAgICAgIGxvZyhjaGFubmVsLCBXVEZMb2dMZXZl
bDo6RGVidWcsIGFyZ3VtZW50cy4uLik7CiAgICAgfQogCiAgICAgaW5saW5lIGJvb2wgd2lsbExv
Zyhjb25zdCBXVEZMb2dDaGFubmVsJiBjaGFubmVsLCBXVEZMb2dMZXZlbCBsZXZlbCkgY29uc3QK
QEAgLTE3NCwxMCArMTc0LDEwIEBAIHB1YmxpYzoKICAgICAgICAgaWYgKCFtX2VuYWJsZWQpCiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgaWYgKGxldmVsIDw9IFdURkxvZ0xl
dmVsRXJyb3IpCisgICAgICAgIGlmIChsZXZlbCA8PSBXVEZMb2dMZXZlbDo6RXJyb3IpCiAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgICAgICBpZiAoY2hhbm5lbC5zdGF0ZSA9PSBXVEZM
b2dDaGFubmVsT2ZmIHx8IGxldmVsID4gY2hhbm5lbC5sZXZlbCkKKyAgICAgICAgaWYgKGNoYW5u
ZWwuc3RhdGUgPT0gV1RGTG9nQ2hhbm5lbFN0YXRlOjpPZmYgfHwgbGV2ZWwgPiBjaGFubmVsLmxl
dmVsKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgIHJldHVybiBtX2VuYWJs
ZWQ7CkBAIC0yNDIsNyArMjQyLDcgQEAgcHJpdmF0ZToKICAgICAgICAgb3NfbG9nKGNoYW5uZWwu
b3NMb2dDaGFubmVsLCAiJXtwdWJsaWN9cyIsIGxvZ01lc3NhZ2UudXRmOCgpLmRhdGEoKSk7CiAj
ZW5kaWYKIAotICAgICAgICBpZiAoY2hhbm5lbC5zdGF0ZSA9PSBXVEZMb2dDaGFubmVsT2ZmIHx8
IGxldmVsID4gY2hhbm5lbC5sZXZlbCkKKyAgICAgICAgaWYgKGNoYW5uZWwuc3RhdGUgPT0gV1RG
TG9nQ2hhbm5lbFN0YXRlOjpPZmYgfHwgbGV2ZWwgPiBjaGFubmVsLmxldmVsKQogICAgICAgICAg
ICAgcmV0dXJuOwogCiAgICAgICAgIGZvciAoT2JzZXJ2ZXImIG9ic2VydmVyIDogb2JzZXJ2ZXJz
KCkpCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAJKHJldmlz
aW9uIDI0MzEwNSkKKysrIFNvdXJjZS9XVEYvd3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM1LDkgKzM1LDkgQEAKIG5hbWVzcGFjZSBXVEYgewogCiAjaWYg
UkVMRUFTRV9MT0dfRElTQUJMRUQKLVdURkxvZ0NoYW5uZWwgTG9nTWVtb3J5UHJlc3N1cmUgPSB7
IFdURkxvZ0NoYW5uZWxPbiwgIk1lbW9yeVByZXNzdXJlIiwgV1RGTG9nTGV2ZWxFcnJvciB9Owor
V1RGTG9nQ2hhbm5lbCBMb2dNZW1vcnlQcmVzc3VyZSA9IHsgV1RGTG9nQ2hhbm5lbFN0YXRlOjpP
biwgIk1lbW9yeVByZXNzdXJlIiwgV1RGTG9nTGV2ZWw6OkVycm9yIH07CiAjZWxzZQotV1RGTG9n
Q2hhbm5lbCBMb2dNZW1vcnlQcmVzc3VyZSA9IHsgV1RGTG9nQ2hhbm5lbE9uLCAiTWVtb3J5UHJl
c3N1cmUiLCBXVEZMb2dMZXZlbEVycm9yLCBMT0dfQ0hBTk5FTF9XRUJLSVRfU1VCU1lTVEVNLCBP
U19MT0dfREVGQVVMVCB9OworV1RGTG9nQ2hhbm5lbCBMb2dNZW1vcnlQcmVzc3VyZSA9IHsgV1RG
TG9nQ2hhbm5lbFN0YXRlOjpPbiwgIk1lbW9yeVByZXNzdXJlIiwgV1RGTG9nTGV2ZWw6OkVycm9y
LCBMT0dfQ0hBTk5FTF9XRUJLSVRfU1VCU1lTVEVNLCBPU19MT0dfREVGQVVMVCB9OwogI2VuZGlm
CiAKIFdURl9FWFBPUlRfUFJJVkFURSBib29sIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6UmVsaWVm
TG9nZ2VyOjpzX2xvZ2dpbmdFbmFibGVkID0gZmFsc2U7CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9S
ZWZDb3VudGVkTGVha0NvdW50ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1Jl
ZkNvdW50ZWRMZWFrQ291bnRlci5jcHAJKHJldmlzaW9uIDI0MzEwNSkKKysrIFNvdXJjZS9XVEYv
d3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDkgKzQw
LDkgQEAgdm9pZCBSZWZDb3VudGVkTGVha0NvdW50ZXI6OmRlY3JlbWVudCgpIAogCiAjZGVmaW5l
IExPR19DSEFOTkVMX1BSRUZJWCBMb2cKICNpZiBSRUxFQVNFX0xPR19ESVNBQkxFRAotc3RhdGlj
IFdURkxvZ0NoYW5uZWwgTG9nUmVmQ291bnRlZExlYWtzID0geyBXVEZMb2dDaGFubmVsT24sICJS
ZWZDb3VudGVkTGVha3MiLCBXVEZMb2dMZXZlbEVycm9yIH07CitzdGF0aWMgV1RGTG9nQ2hhbm5l
bCBMb2dSZWZDb3VudGVkTGVha3MgPSB7IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T24sICJSZWZDb3Vu
dGVkTGVha3MiLCBXVEZMb2dMZXZlbDo6RXJyb3IgfTsKICNlbHNlCi1zdGF0aWMgV1RGTG9nQ2hh
bm5lbCBMb2dSZWZDb3VudGVkTGVha3MgPSB7IFdURkxvZ0NoYW5uZWxPbiwgIlJlZkNvdW50ZWRM
ZWFrcyIsIFdURkxvZ0xldmVsRXJyb3IsIExPR19DSEFOTkVMX1dFQktJVF9TVUJTWVNURU0sIE9T
X0xPR19ERUZBVUxUIH07CitzdGF0aWMgV1RGTG9nQ2hhbm5lbCBMb2dSZWZDb3VudGVkTGVha3Mg
PSB7IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T24sICJSZWZDb3VudGVkTGVha3MiLCBXVEZMb2dMZXZl
bDo6RXJyb3IsIExPR19DSEFOTkVMX1dFQktJVF9TVUJTWVNURU0sIE9TX0xPR19ERUZBVUxUIH07
CiAjZW5kaWYKIAogdHlwZWRlZiBIYXNoQ291bnRlZFNldDxjb25zdCBjaGFyKiwgUHRySGFzaDxj
b25zdCBjaGFyKj4+IFJlYXNvblNldDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0MzEwNSkK
KysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5
IEBACisyMDE5LTAzLTE4ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgTWFrZSBXVEZMb2dDaGFubmVsU3RhdGUgYW5kIFdURkxvZ0xldmVsIGVu
dW0gY2xhc3NlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTk1OTA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6cmVtb3ZlU2FtcGxlc0Zyb21UcmFja0J1ZmZlcik6CisgICAgICAgICogTW9kdWxlcy9tZWRp
YXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpMaWJXZWJSVENNZWRpYUVuZHBvaW50OjpPblN0YXRzRGVsaXZlcmVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkxpYldlYlJUQ01lZGlhRW5kcG9pbnQ6OnN0YXRzTG9nSW50ZXJ2YWwgY29u
c3QpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjptZXNz
YWdlTGV2ZWxGcm9tV1RGTG9nTGV2ZWwpOgorICAgICAgICAqIGh0bWwvRlRQRGlyZWN0b3J5RG9j
dW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RlRQRGlyZWN0b3J5RG9jdW1lbnQ6OkZUUERp
cmVjdG9yeURvY3VtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2Vla1Rhc2spOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2VsZWN0TmV4dFNvdXJjZUNoaWxkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNvdXJjZVdhc0FkZGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNvdXJjZVdhc1JlbW92ZWQpOgorICAgICAgICAq
IGluc3BlY3Rvci9hZ2VudHMvV2ViQ29uc29sZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OldlYkNvbnNvbGVBZ2VudDo6Z2V0TG9nZ2luZ0NoYW5uZWxzKToKKyAgICAgICAgKFdlYkNvcmU6
OmNoYW5uZWxDb25maWd1cmF0aW9uRm9yU3RyaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2dn
aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzTG9nQ2hhbm5lbEVuYWJsZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6c2V0TG9nQ2hhbm5lbFRvQWNjdW11bGF0ZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5tbToKKyAgICAgICAgKC1bV2ViQ29yZUFWRk1vdmllT2JzZXJ2ZXIgb2JzZXJ2ZVZh
bHVlRm9yS2V5UGF0aDpvZk9iamVjdDpjaGFuZ2U6Y29udGV4dDpdKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakM6OmVucXVldWVWaWRlb1NhbXBsZSk6CisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmluaXRpYWxpemVQZWVyQ29ubmVjdGlvbkZhY3RvcnlBbmRUaHJlYWRzKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmNvbXBvc2l0aW5nTG9nRW5hYmxlZCk6CisKIDIwMTktMDMtMTggIE15bGVzIEMuIE1heGZp
ZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBbV0hMU0xdIEhvb2sgdXAgdGhl
IGNvbXBpbGVyIHRvIG91ciBXZWJHUFUgaW1wbGVtZW50YXRpb24KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAJKHJldmlz
aW9uIDI0MzEwNSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNl
QnVmZmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzQxLDcgKzc0MSw3IEBAIHN0YXRpYyBQbGF0
Zm9ybVRpbWVSYW5nZXMgcmVtb3ZlU2FtcGxlc0YKICAgICBzaXplX3QgYnl0ZXNSZW1vdmVkID0g
MDsKICAgICBhdXRvIGxvZ0lkZW50aWZpZXIgPSBXVEY6OkxvZ2dlcjo6TG9nU2l0ZUlkZW50aWZp
ZXIoYnVmZmVyLT5sb2dDbGFzc05hbWUoKSwgbG9nUHJlZml4LCBidWZmZXItPmxvZ0lkZW50aWZp
ZXIoKSk7CiAgICAgYXV0byYgbG9nZ2VyID0gYnVmZmVyLT5sb2dnZXIoKTsKLSAgICBhdXRvIHdp
bGxMb2cgPSBsb2dnZXIud2lsbExvZyhidWZmZXItPmxvZ0NoYW5uZWwoKSwgV1RGTG9nTGV2ZWxE
ZWJ1Zyk7CisgICAgYXV0byB3aWxsTG9nID0gbG9nZ2VyLndpbGxMb2coYnVmZmVyLT5sb2dDaGFu
bmVsKCksIFdURkxvZ0xldmVsOjpEZWJ1Zyk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShsb2dQ
cmVmaXgpOwogICAgIFVOVVNFRF9QQVJBTShidWZmZXIpOwpJbmRleDogU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHAJKHJldmlzaW9uIDI0MzEwNSkKKysrIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5k
cG9pbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NjUsNyArODY1LDcgQEAgdm9pZCBMaWJXZWJS
VENNZWRpYUVuZHBvaW50OjpPblN0YXRzRGVsaQogICAgICAgICB9CiAKICAgICAgICAgZm9yIChh
dXRvIGl0ZXJhdG9yID0gcmVwb3J0LT5iZWdpbigpOyBpdGVyYXRvciAhPSByZXBvcnQtPmVuZCgp
OyArK2l0ZXJhdG9yKSB7Ci0gICAgICAgICAgICBpZiAobG9nZ2VyKCkud2lsbExvZyhsb2dDaGFu
bmVsKCksIFdURkxvZ0xldmVsRGVidWcpKSB7CisgICAgICAgICAgICBpZiAobG9nZ2VyKCkud2ls
bExvZyhsb2dDaGFubmVsKCksIFdURkxvZ0xldmVsOjpEZWJ1ZykpIHsKICAgICAgICAgICAgICAg
ICAvLyBTdGF0cyBhcmUgdmVyeSB2ZXJib3NlLCBsZXQncyBvbmx5IGRpc3BsYXkgdGhlbSBpbiBp
bnNwZWN0b3IgY29uc29sZSBpbiB2ZXJib3NlIG1vZGUuCiAgICAgICAgICAgICAgICAgbG9nZ2Vy
KCkuZGVidWcoTG9nV2ViUlRDLAogICAgICAgICAgICAgICAgICAgICBMb2dnZXI6OkxvZ1NpdGVJ
ZGVudGlmaWVyKCJMaWJXZWJSVENNZWRpYUVuZHBvaW50IiwgIk9uU3RhdHNEZWxpdmVyZWQiLCBs
b2dJZGVudGlmaWVyKCkpLApAQCAtOTA0LDcgKzkwNCw3IEBAIFdURkxvZ0NoYW5uZWwmIExpYldl
YlJUQ01lZGlhRW5kcG9pbnQ6OmwKIAogU2Vjb25kcyBMaWJXZWJSVENNZWRpYUVuZHBvaW50Ojpz
dGF0c0xvZ0ludGVydmFsKGludDY0X3QgcmVwb3J0VGltZXN0YW1wKSBjb25zdAogewotICAgIGlm
IChsb2dnZXIoKS53aWxsTG9nKGxvZ0NoYW5uZWwoKSwgV1RGTG9nTGV2ZWxJbmZvKSkKKyAgICBp
ZiAobG9nZ2VyKCkud2lsbExvZyhsb2dDaGFubmVsKCksIFdURkxvZ0xldmVsOjpJbmZvKSkKICAg
ICAgICAgcmV0dXJuIDJfczsKIAogICAgIGlmIChyZXBvcnRUaW1lc3RhbXAgLSBtX3N0YXRzRmly
c3REZWxpdmVyZWRUaW1lc3RhbXAgPiAxNTAwMDAwMCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAkocmV2aXNpb24gMjQzMTA1KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtODU0NywxOCArODU0NywxOCBAQCBzdGF0aWMgTWVzc2FnZVNv
dXJjZSBtZXNzYWdlU291cmNlRm9yV1RGCiBzdGF0aWMgTWVzc2FnZUxldmVsIG1lc3NhZ2VMZXZl
bEZyb21XVEZMb2dMZXZlbChXVEZMb2dMZXZlbCBsZXZlbCkKIHsKICAgICBzd2l0Y2ggKGxldmVs
KSB7Ci0gICAgY2FzZSBXVEZMb2dMZXZlbEFsd2F5czoKKyAgICBjYXNlIFdURkxvZ0xldmVsOjpB
bHdheXM6CiAgICAgICAgIHJldHVybiBNZXNzYWdlTGV2ZWw6OkxvZzsKLSAgICBjYXNlIFdURkxv
Z0xldmVsRXJyb3I6CisgICAgY2FzZSBXVEZMb2dMZXZlbDo6RXJyb3I6CiAgICAgICAgIHJldHVy
biBNZXNzYWdlTGV2ZWw6OkVycm9yOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFdURkxvZ0xl
dmVsV2FybmluZzoKKyAgICBjYXNlIFdURkxvZ0xldmVsOjpXYXJuaW5nOgogICAgICAgICByZXR1
cm4gTWVzc2FnZUxldmVsOjpXYXJuaW5nOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFdURkxv
Z0xldmVsSW5mbzoKKyAgICBjYXNlIFdURkxvZ0xldmVsOjpJbmZvOgogICAgICAgICByZXR1cm4g
TWVzc2FnZUxldmVsOjpJbmZvOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFdURkxvZ0xldmVs
RGVidWc6CisgICAgY2FzZSBXVEZMb2dMZXZlbDo6RGVidWc6CiAgICAgICAgIHJldHVybiBNZXNz
YWdlTGV2ZWw6OkRlYnVnOwogICAgICAgICBicmVhazsKICAgICB9CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9odG1sL0ZUUERpcmVjdG9yeURvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL0ZUUERpcmVjdG9yeURvY3VtZW50LmNwcAkocmV2aXNpb24gMjQzMTA1KQor
KysgU291cmNlL1dlYkNvcmUvaHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQyNSw3ICs0MjUsNyBAQCBGVFBEaXJlY3RvcnlEb2N1bWVudDo6RlRQRGlyZWN0
b3J5RG9jdW1lCiAgICAgOiBIVE1MRG9jdW1lbnQoZnJhbWUsIHVybCkKIHsKICNpZiAhTE9HX0RJ
U0FCTEVECi0gICAgTG9nRlRQLnN0YXRlID0gV1RGTG9nQ2hhbm5lbE9uOworICAgIExvZ0ZUUC5z
dGF0ZSA9IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T247CiAjZW5kaWYKIH0KIApJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCShyZXZpc2lvbiAyNDMxMDUpCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMDc1LDcgKzMwNzUsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNlZWtUYXNrKCkKICAg
ICAvLyB0aW1lIHNjYWxlLCB3ZSB3aWxsIGFzayB0aGUgbWVkaWEgZW5naW5lIHRvICJzZWVrIiB0
byB0aGUgY3VycmVudCBtb3ZpZSB0aW1lLCB3aGljaCBtYXkgYmUgYSBub29wIGFuZAogICAgIC8v
IG5vdCBnZW5lcmF0ZSBhIHRpbWVjaGFuZ2VkIGNhbGxiYWNrLiBUaGlzIG1lYW5zIG1fc2Vla2lu
ZyB3aWxsIG5ldmVyIGJlIGNsZWFyZWQgYW5kIHdlIHdpbGwgbmV2ZXIKICAgICAvLyBmaXJlIGEg
J3NlZWtlZCcgZXZlbnQuCi0gICAgaWYgKHdpbGxMb2coV1RGTG9nTGV2ZWxEZWJ1ZykpIHsKKyAg
ICBpZiAod2lsbExvZyhXVEZMb2dMZXZlbDo6RGVidWcpKSB7CiAgICAgICAgIE1lZGlhVGltZSBt
ZWRpYVRpbWUgPSBtX3BsYXllci0+bWVkaWFUaW1lRm9yVGltZVZhbHVlKHRpbWUpOwogICAgICAg
ICBpZiAodGltZSAhPSBtZWRpYVRpbWUpCiAgICAgICAgICAgICBJTkZPX0xPRyhMT0dJREVOVElG
SUVSLCB0aW1lLCAiIG1lZGlhIHRpbWVsaW5lIGVxdWl2YWxlbnQgaXMgIiwgbWVkaWFUaW1lKTsK
QEAgLTQ2NTEsNyArNDY1MSw3IEBAIFVSTCBIVE1MTWVkaWFFbGVtZW50OjpzZWxlY3ROZXh0U291
cmNlQ2gKICAgICBVTlVTRURfUEFSQU0oa2V5U3lzdGVtKTsKIAogICAgIC8vIERvbid0IGxvZyBp
ZiB0aGlzIHdhcyBqdXN0IGNhbGxlZCB0byBmaW5kIG91dCBpZiB0aGVyZSBhcmUgYW55IHZhbGlk
IDxzb3VyY2U+IGVsZW1lbnRzLgotICAgIGJvb2wgc2hvdWxkTG9nID0gd2lsbExvZyhXVEZMb2dM
ZXZlbERlYnVnKSAmJiBhY3Rpb25JZkludmFsaWQgIT0gRG9Ob3RoaW5nOworICAgIGJvb2wgc2hv
dWxkTG9nID0gd2lsbExvZyhXVEZMb2dMZXZlbDo6RGVidWcpICYmIGFjdGlvbklmSW52YWxpZCAh
PSBEb05vdGhpbmc7CiAgICAgaWYgKHNob3VsZExvZykKICAgICAgICAgSU5GT19MT0coTE9HSURF
TlRJRklFUik7CiAKQEAgLTQ3NTAsNyArNDc1MCw3IEBAIENoZWNrQWdhaW46CiAKIHZvaWQgSFRN
TE1lZGlhRWxlbWVudDo6c291cmNlV2FzQWRkZWQoSFRNTFNvdXJjZUVsZW1lbnQmIHNvdXJjZSkK
IHsKLSAgICBpZiAod2lsbExvZyhXVEZMb2dMZXZlbEluZm8pICYmIHNvdXJjZS5oYXNUYWdOYW1l
KHNvdXJjZVRhZykpIHsKKyAgICBpZiAod2lsbExvZyhXVEZMb2dMZXZlbDo6SW5mbykgJiYgc291
cmNlLmhhc1RhZ05hbWUoc291cmNlVGFnKSkgewogICAgICAgICBVUkwgdXJsID0gc291cmNlLmdl
dE5vbkVtcHR5VVJMQXR0cmlidXRlKHNyY0F0dHIpOwogICAgICAgICBJTkZPX0xPRyhMT0dJREVO
VElGSUVSLCAiJ3NyYycgaXMgIiwgdXJsKTsKICAgICB9CkBAIC00ODAyLDcgKzQ4MDIsNyBAQCB2
b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNvdXJjZVdhc0FkZGVkKEhUCiAKIHZvaWQgSFRNTE1lZGlh
RWxlbWVudDo6c291cmNlV2FzUmVtb3ZlZChIVE1MU291cmNlRWxlbWVudCYgc291cmNlKQogewot
ICAgIGlmICh3aWxsTG9nKFdURkxvZ0xldmVsSW5mbykgJiYgc291cmNlLmhhc1RhZ05hbWUoc291
cmNlVGFnKSkgeworICAgIGlmICh3aWxsTG9nKFdURkxvZ0xldmVsOjpJbmZvKSAmJiBzb3VyY2Uu
aGFzVGFnTmFtZShzb3VyY2VUYWcpKSB7CiAgICAgICAgIFVSTCB1cmwgPSBzb3VyY2UuZ2V0Tm9u
RW1wdHlVUkxBdHRyaWJ1dGUoc3JjQXR0cik7CiAgICAgICAgIElORk9fTE9HKExPR0lERU5USUZJ
RVIsICInc3JjJyBpcyAiLCB1cmwpOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvV2ViQ29uc29sZUFnZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL1dlYkNvbnNvbGVBZ2VudC5jcHAJKHJldmlzaW9uIDI0MzEw
NSkKKysrIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvV2ViQ29uc29sZUFnZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNzAsMTMgKzcwLDEzIEBAIHZvaWQgV2ViQ29uc29sZUFnZW50
OjpnZXRMb2dnaW5nQ2hhbm5lbHMKICAgICAgICAgYXV0byBsZXZlbCA9IEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkNvbnNvbGU6OkNoYW5uZWxMZXZlbDo6T2ZmOwogICAgICAgICBpZiAobG9nQ2hhbm5l
bC0+c3RhdGUgIT0gV1RGTG9nQ2hhbm5lbE9mZikgewogICAgICAgICAgICAgc3dpdGNoIChsb2dD
aGFubmVsLT5sZXZlbCkgewotICAgICAgICAgICAgY2FzZSBXVEZMb2dMZXZlbEFsd2F5czoKLSAg
ICAgICAgICAgIGNhc2UgV1RGTG9nTGV2ZWxFcnJvcjoKLSAgICAgICAgICAgIGNhc2UgV1RGTG9n
TGV2ZWxXYXJuaW5nOgotICAgICAgICAgICAgY2FzZSBXVEZMb2dMZXZlbEluZm86CisgICAgICAg
ICAgICBjYXNlIFdURkxvZ0xldmVsOjpBbHdheXM6CisgICAgICAgICAgICBjYXNlIFdURkxvZ0xl
dmVsOjpFcnJvcjoKKyAgICAgICAgICAgIGNhc2UgV1RGTG9nTGV2ZWw6Oldhcm5pbmc6CisgICAg
ICAgICAgICBjYXNlIFdURkxvZ0xldmVsOjpJbmZvOgogICAgICAgICAgICAgICAgIGxldmVsID0g
SW5zcGVjdG9yOjpQcm90b2NvbDo6Q29uc29sZTo6Q2hhbm5lbExldmVsOjpCYXNpYzsKICAgICAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgV1RGTG9nTGV2ZWxEZWJ1ZzoKKyAg
ICAgICAgICAgIGNhc2UgV1RGTG9nTGV2ZWw6OkRlYnVnOgogICAgICAgICAgICAgICAgIGxldmVs
ID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6Q29uc29sZTo6Q2hhbm5lbExldmVsOjpWZXJib3NlOwog
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpAQCAtOTYsMTQgKzk2LDE0IEBA
IHN0YXRpYyBPcHRpb25hbDxzdGQ6OnBhaXI8V1RGTG9nQ2hhbm5lbFMKICAgICBXVEZMb2dMZXZl
bCBsZXZlbDsKIAogICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGxldmVsU3RyaW5nLCAi
b2ZmIikpIHsKLSAgICAgICAgc3RhdGUgPSBXVEZMb2dDaGFubmVsT2ZmOwotICAgICAgICBsZXZl
bCA9IFdURkxvZ0xldmVsRXJyb3I7CisgICAgICAgIHN0YXRlID0gV1RGTG9nQ2hhbm5lbFN0YXRl
OjpPZmY7CisgICAgICAgIGxldmVsID0gV1RGTG9nTGV2ZWw6OkVycm9yOwogICAgIH0gZWxzZSB7
Ci0gICAgICAgIHN0YXRlID0gV1RGTG9nQ2hhbm5lbE9uOworICAgICAgICBzdGF0ZSA9IFdURkxv
Z0NoYW5uZWxTdGF0ZTo6T247CiAgICAgICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGxl
dmVsU3RyaW5nLCAiYmFzaWMiKSkKLSAgICAgICAgICAgIGxldmVsID0gV1RGTG9nTGV2ZWxXYXJu
aW5nOworICAgICAgICAgICAgbGV2ZWwgPSBXVEZMb2dMZXZlbDo6V2FybmluZzsKICAgICAgICAg
ZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShsZXZlbFN0cmluZywgInZlcmJvc2UiKSkK
LSAgICAgICAgICAgIGxldmVsID0gV1RGTG9nTGV2ZWxEZWJ1ZzsKKyAgICAgICAgICAgIGxldmVs
ID0gV1RGTG9nTGV2ZWw6OkRlYnVnOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dp
bmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuY3Bw
CShyZXZpc2lvbiAyNDMxMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNTQsNyArNTQsNyBAQCBib29sIGlzTG9nQ2hhbm5lbEVuYWJs
ZWQoY29uc3QgU3RyaW5nJiBuCiAgICAgV1RGTG9nQ2hhbm5lbCogY2hhbm5lbCA9IFdURkxvZ0No
YW5uZWxCeU5hbWUobG9nQ2hhbm5lbHMsIGxvZ0NoYW5uZWxDb3VudCwgbmFtZS51dGY4KCkuZGF0
YSgpKTsKICAgICBpZiAoIWNoYW5uZWwpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1
cm4gY2hhbm5lbC0+c3RhdGUgIT0gV1RGTG9nQ2hhbm5lbE9mZjsKKyAgICByZXR1cm4gY2hhbm5l
bC0+c3RhdGUgIT0gV1RGTG9nQ2hhbm5lbFN0YXRlOjpPZmY7CiB9CiAKIHN0YXRpYyBib29sIGxv
Z0NoYW5uZWxzTmVlZEluaXRpYWxpemF0aW9uID0gdHJ1ZTsKQEAgLTY1LDcgKzY1LDcgQEAgdm9p
ZCBzZXRMb2dDaGFubmVsVG9BY2N1bXVsYXRlKGNvbnN0IFN0cgogICAgIGlmICghY2hhbm5lbCkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgY2hhbm5lbC0+c3RhdGUgPSBXVEZMb2dDaGFubmVsT25X
aXRoQWNjdW11bGF0aW9uOworICAgIGNoYW5uZWwtPnN0YXRlID0gV1RGTG9nQ2hhbm5lbFN0YXRl
OjpPbldpdGhBY2N1bXVsYXRpb247CiAgICAgbG9nQ2hhbm5lbHNOZWVkSW5pdGlhbGl6YXRpb24g
PSB0cnVlOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0JKHJldmlzaW9uIDI0MzEw
NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0JKHdvcmtpbmcgY29weSkKQEAg
LTM1NTEsNyArMzU1MSw3IEBAIC0gKHZvaWQpb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDprZXlQYXRo
IG8KICAgICAgICAgfQogCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECi0gICAgICAgIGlmIChw
bGF5ZXItPmxvZ2dlcigpLndpbGxMb2cocGxheWVyLT5sb2dDaGFubmVsKCksIFdURkxvZ0xldmVs
RGVidWcpICYmICEoW2tleVBhdGggaXNFcXVhbFRvU3RyaW5nOkAibG9hZGVkVGltZVJhbmdlcyJd
IHx8IFtrZXlQYXRoIGlzRXF1YWxUb1N0cmluZzpAInNlZWthYmxlVGltZVJhbmdlcyJdKSkgewor
ICAgICAgICBpZiAocGxheWVyLT5sb2dnZXIoKS53aWxsTG9nKHBsYXllci0+bG9nQ2hhbm5lbCgp
LCBXVEZMb2dMZXZlbDo6RGVidWcpICYmICEoW2tleVBhdGggaXNFcXVhbFRvU3RyaW5nOkAibG9h
ZGVkVGltZVJhbmdlcyJdIHx8IFtrZXlQYXRoIGlzRXF1YWxUb1N0cmluZzpAInNlZWthYmxlVGlt
ZVJhbmdlcyJdKSkgewogICAgICAgICAgICAgYXV0byBpZGVudGlmaWVyID0gTG9nZ2VyOjpMb2dT
aXRlSWRlbnRpZmllcigiTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uIiwgIm9ic2VydmVW
YWx1ZUZvcktleVBhdGgiLCBwbGF5ZXItPmxvZ0lkZW50aWZpZXIoKSk7CiAKICAgICAgICAgICAg
IGlmIChzaG91bGRMb2dWYWx1ZSkgewpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQko
cmV2aXNpb24gMjQzMTA1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC0zODUsNyArMzg1LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iagogICAgIHNhbXBsZS5vZmZzZXRUaW1lc3RhbXBzQnkodGltZWxpbmVP
ZmZzZXQpOwogICAgIERFQlVHX0xPRyhMT0dJREVOVElGSUVSLCAidXBkYXRlZCBzYW1wbGUgPSAi
LCBzYW1wbGUpOwogCi0gICAgaWYgKFdJTExfTE9HKFdURkxvZ0xldmVsRGVidWcpKSB7CisgICAg
aWYgKFdJTExfTE9HKFdURkxvZ0xldmVsOjpEZWJ1ZykpIHsKICAgICAgICAgTWVkaWFUaW1lIG5v
dyA9IHN0cmVhbVRpbWUoKTsKICAgICAgICAgZG91YmxlIGRlbHRhID0gKHNhbXBsZS5wcmVzZW50
YXRpb25UaW1lKCkgLSBub3cpLnRvRG91YmxlKCk7CiAgICAgICAgIGlmIChkZWx0YSA8IDApCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2Vi
UlRDUHJvdmlkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAJKHJldmlzaW9uIDI0MzEw
NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENQcm92aWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0NiwxNCArMTQ2LDE0IEBAIHN0
YXRpYyBydGM6OkxvZ2dpbmdTZXZlcml0eSBjb21wdXRlTG9nTGUKICAgICAgICAgcmV0dXJuIHJ0
Yzo6TFNfRVJST1I7CiAKICAgICBzd2l0Y2ggKExvZ1dlYlJUQy5sZXZlbCkgewotICAgIGNhc2Ug
V1RGTG9nTGV2ZWxBbHdheXM6Ci0gICAgY2FzZSBXVEZMb2dMZXZlbEVycm9yOgorICAgIGNhc2Ug
V1RGTG9nTGV2ZWw6OkFsd2F5czoKKyAgICBjYXNlIFdURkxvZ0xldmVsOjpFcnJvcjoKICAgICAg
ICAgcmV0dXJuIHJ0Yzo6TFNfRVJST1I7Ci0gICAgY2FzZSBXVEZMb2dMZXZlbFdhcm5pbmc6Cisg
ICAgY2FzZSBXVEZMb2dMZXZlbDo6V2FybmluZzoKICAgICAgICAgcmV0dXJuIHJ0Yzo6TFNfV0FS
TklORzsKLSAgICBjYXNlIFdURkxvZ0xldmVsSW5mbzoKKyAgICBjYXNlIFdURkxvZ0xldmVsOjpJ
bmZvOgogICAgICAgICByZXR1cm4gcnRjOjpMU19JTkZPOwotICAgIGNhc2UgV1RGTG9nTGV2ZWxE
ZWJ1ZzoKKyAgICBjYXNlIFdURkxvZ0xldmVsOjpEZWJ1ZzoKICAgICAgICAgcmV0dXJuIHJ0Yzo6
TFNfVkVSQk9TRTsKICAgICB9CiAjZWxzZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJj
ZS5tbQkocmV2aXNpb24gMjQzMTA1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC03NDUs
NyArNzQ1LDcgQEAgLSAodm9pZClvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOmtleVBhdGggbwogICAg
IGJvb2wgd2lsbENoYW5nZSA9IFtbY2hhbmdlIHZhbHVlRm9yS2V5Ok5TS2V5VmFsdWVDaGFuZ2VO
b3RpZmljYXRpb25Jc1ByaW9yS2V5XSBib29sVmFsdWVdOwogCiAjaWYgIVJFTEVBU0VfTE9HX0RJ
U0FCTEVECi0gICAgaWYgKG1fY2FsbGJhY2stPmxvZ2dlclB0cigpICYmIG1fY2FsbGJhY2stPmxv
Z2dlcigpLndpbGxMb2cobV9jYWxsYmFjay0+bG9nQ2hhbm5lbCgpLCBXVEZMb2dMZXZlbERlYnVn
KSkgeworICAgIGlmIChtX2NhbGxiYWNrLT5sb2dnZXJQdHIoKSAmJiBtX2NhbGxiYWNrLT5sb2dn
ZXIoKS53aWxsTG9nKG1fY2FsbGJhY2stPmxvZ0NoYW5uZWwoKSwgV1RGTG9nTGV2ZWw6OkRlYnVn
KSkgewogICAgICAgICBhdXRvIGlkZW50aWZpZXIgPSBMb2dnZXI6OkxvZ1NpdGVJZGVudGlmaWVy
KCJBVlZpZGVvQ2FwdHVyZVNvdXJjZSIsICJvYnNlcnZlVmFsdWVGb3JLZXlQYXRoIiwgbV9jYWxs
YmFjay0+bG9nSWRlbnRpZmllcigpKTsKIAogICAgICAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IHZh
bHVlU3RyaW5nID0gYWRvcHROUyhbW05TU3RyaW5nIGFsbG9jXSBpbml0V2l0aEZvcm1hdDpAIiVA
IiwgbmV3VmFsdWVdKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckNvbXBvc2l0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCShyZXZpc2lvbiAyNDMxMDUpCisrKyBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjczLDcgKzI3Myw3IEBAIHN0cnVjdCBSZW5kZXJMYXllckNvbXBvc2l0b3I6Ok92ZXJsYXBF
eHQKICNpZiAhTE9HX0RJU0FCTEVECiBzdGF0aWMgaW5saW5lIGJvb2wgY29tcG9zaXRpbmdMb2dF
bmFibGVkKCkKIHsKLSAgICByZXR1cm4gTG9nQ29tcG9zaXRpbmcuc3RhdGUgPT0gV1RGTG9nQ2hh
bm5lbE9uOworICAgIHJldHVybiBMb2dDb21wb3NpdGluZy5zdGF0ZSA9PSBXVEZMb2dDaGFubmVs
U3RhdGU6Ok9uOwogfQogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDMxMDUpCisr
KyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBA
CisyMDE5LTAzLTE4ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+
CisKKyAgICAgICAgTWFrZSBXVEZMb2dDaGFubmVsU3RhdGUgYW5kIFdURkxvZ0xldmVsIGVudW0g
Y2xhc3NlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTk1OTA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkTWFuYWdlci5j
cHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6bG9nU3BlY3VsYXRpdmVMb2FkaW5n
RGlhZ25vc3RpY01lc3NhZ2UpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3
b3JrUlRDUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDUHJvdmlkZXI6
Ok5ldHdvcmtSVENQcm92aWRlcik6CisKIDIwMTktMDMtMTggIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gTmF0aXZlIHNlbGVjdGlvbiB2aWV3
cyBzb21ldGltZXMgYXBwZWFyIGluIGhpZGRlbiBlZGl0YWJsZSBhcmVhcyBhZnRlciBsb3Npbmcg
Zm9jdXMKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0Nh
Y2hlU3BlY3VsYXRpdmVMb2FkTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWRNYW5hZ2Vy
LmNwcAkocmV2aXNpb24gMjQzMTA1KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
YWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNjcsNyArNjcsNyBAQCBzdGF0aWMgdm9pZCBwcmludFNwZWN1bGF0aXZlTG9hZGluZ0Rp
YWduCiBzdGF0aWMgdm9pZCBsb2dTcGVjdWxhdGl2ZUxvYWRpbmdEaWFnbm9zdGljTWVzc2FnZShO
ZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIGNvbnN0IEdsb2JhbEZyYW1lSUQmIGZyYW1l
SUQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKICNpZiAhTE9HX0RJU0FCTEVECi0gICAgaWYg
KFdlYktpdDJMb2dOZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZVByZWxvYWRpbmcuc3RhdGUgPT0gV1RG
TG9nQ2hhbm5lbE9uKQorICAgIGlmIChXZWJLaXQyTG9nTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVQ
cmVsb2FkaW5nLnN0YXRlID09IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T24pCiAgICAgICAgIGFsbFNw
ZWN1bGF0aXZlTG9hZGluZ0RpYWdub3N0aWNNZXNzYWdlcygpLmFkZChtZXNzYWdlKTsKICNlbmRp
ZgogICAgIG5ldHdvcmtQcm9jZXNzLmxvZ0RpYWdub3N0aWNNZXNzYWdlKGZyYW1lSUQuZmlyc3Qs
IFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6bmV0d29ya0NhY2hlS2V5KCksIG1lc3Nh
Z2UsIFdlYkNvcmU6OlNob3VsZFNhbXBsZTo6WWVzKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNw
cAkocmV2aXNpb24gMjQzMTA1KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJy
dGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjUsNyArNjUsNyBA
QCBOZXR3b3JrUlRDUHJvdmlkZXI6Ok5ldHdvcmtSVENQcm92aWRlcihOCiAjaWYgZGVmaW5lZChO
REVCVUcpCiAgICAgcnRjOjpMb2dNZXNzYWdlOjpMb2dUb0RlYnVnKHJ0Yzo6TFNfTk9ORSk7CiAj
ZWxzZQotICAgIGlmIChXZWJLaXQyTG9nV2ViUlRDLnN0YXRlICE9IFdURkxvZ0NoYW5uZWxPbikK
KyAgICBpZiAoV2ViS2l0MkxvZ1dlYlJUQy5zdGF0ZSAhPSBXVEZMb2dDaGFubmVsU3RhdGU6Ok9u
KQogICAgICAgICBydGM6OkxvZ01lc3NhZ2U6OkxvZ1RvRGVidWcocnRjOjpMU19XQVJOSU5HKTsK
ICNlbmRpZgogfQpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0No
YW5nZUxvZwkocmV2aXNpb24gMjQzMTA1KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTktMDMtMTggIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hy
aXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBNYWtlIFdURkxvZ0NoYW5uZWxTdGF0ZSBh
bmQgV1RGTG9nTGV2ZWwgZW51bSBjbGFzc2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xOTU5MDQKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENh
cmxzb24uCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvTG9nZ2luZy5j
cHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorCiAyMDE5LTAzLTE4ICBLb2Nz
ZW4gQ2h1bmcgIDxrb2NzZW5fY2h1bmdAYXBwbGUuY29tPgogCiAgICAgICAgIENoZXJyeS1waWNr
IHIyNDMwMzAuIHJkYXI6Ly9wcm9ibGVtLzQ4ODk2MTgyCkluZGV4OiBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvTG9nZ2luZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL0xvZ2dpbmcuY3BwCShyZXZpc2lvbiAyNDMxMDUpCisrKyBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvTG9nZ2luZy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTcyLDEwICs3MiwxMCBAQCBwdWJsaWM6CiAgICAgICAgIG1fc3RkZXJyID0gZmRvcGVu
KG1fZGVzY3JpcHRvcnNbMF0sICJyIik7CiAKICAgICAgICAgV1RGSW5pdGlhbGl6ZUxvZ0NoYW5u
ZWxTdGF0ZXNGcm9tU3RyaW5nKHRlc3RMb2dDaGFubmVscywgbG9nQ2hhbm5lbENvdW50LCAiYWxs
Iik7Ci0gICAgICAgIFdURlNldExvZ0NoYW5uZWxMZXZlbCgmVGVzdENoYW5uZWwxLCBXVEZMb2dM
ZXZlbEVycm9yKTsKLSAgICAgICAgV1RGU2V0TG9nQ2hhbm5lbExldmVsKCZUZXN0Q2hhbm5lbDIs
IFdURkxvZ0xldmVsRXJyb3IpOwotICAgICAgICBXVEZTZXRMb2dDaGFubmVsTGV2ZWwoJlRlc3RD
aGFubmVsMywgV1RGTG9nTGV2ZWxFcnJvcik7Ci0gICAgICAgIFdURlNldExvZ0NoYW5uZWxMZXZl
bCgmVGVzdENoYW5uZWw0LCBXVEZMb2dMZXZlbEVycm9yKTsKKyAgICAgICAgV1RGU2V0TG9nQ2hh
bm5lbExldmVsKCZUZXN0Q2hhbm5lbDEsIFdURkxvZ0xldmVsOjpFcnJvcik7CisgICAgICAgIFdU
RlNldExvZ0NoYW5uZWxMZXZlbCgmVGVzdENoYW5uZWwyLCBXVEZMb2dMZXZlbDo6RXJyb3IpOwor
ICAgICAgICBXVEZTZXRMb2dDaGFubmVsTGV2ZWwoJlRlc3RDaGFubmVsMywgV1RGTG9nTGV2ZWw6
OkVycm9yKTsKKyAgICAgICAgV1RGU2V0TG9nQ2hhbm5lbExldmVsKCZUZXN0Q2hhbm5lbDQsIFdU
RkxvZ0xldmVsOjpFcnJvcik7CiAgICAgfQogCiAgICAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRl
CkBAIC0xMTAsODYgKzExMCw4NiBAQCBwcml2YXRlOgogCiBURVNUX0YoTG9nZ2luZ1Rlc3QsIElu
aXRpYWxpemF0aW9uKQogewotICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDEuc3RhdGUsIFdURkxv
Z0NoYW5uZWxPbik7Ci0gICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsMi5zdGF0ZSwgV1RGTG9nQ2hh
bm5lbE9uKTsKLSAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWwzLnN0YXRlLCBXVEZMb2dDaGFubmVs
T24pOwotICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDQuc3RhdGUsIFdURkxvZ0NoYW5uZWxPbik7
Ci0KLSAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWwxLmxldmVsLCBXVEZMb2dMZXZlbEVycm9yKTsK
LSAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWwyLmxldmVsLCBXVEZMb2dMZXZlbEVycm9yKTsKLSAg
ICBFWFBFQ1RfRVEoVGVzdENoYW5uZWwzLmxldmVsLCBXVEZMb2dMZXZlbEVycm9yKTsKLSAgICBF
WFBFQ1RfRVEoVGVzdENoYW5uZWw0LmxldmVsLCBXVEZMb2dMZXZlbEVycm9yKTsKKyAgICBFWFBF
Q1RfRVEoVGVzdENoYW5uZWwxLnN0YXRlLCBXVEZMb2dDaGFubmVsU3RhdGU6Ok9uKTsKKyAgICBF
WFBFQ1RfRVEoVGVzdENoYW5uZWwyLnN0YXRlLCBXVEZMb2dDaGFubmVsU3RhdGU6Ok9uKTsKKyAg
ICBFWFBFQ1RfRVEoVGVzdENoYW5uZWwzLnN0YXRlLCBXVEZMb2dDaGFubmVsU3RhdGU6Ok9uKTsK
KyAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWw0LnN0YXRlLCBXVEZMb2dDaGFubmVsU3RhdGU6Ok9u
KTsKKworICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDEubGV2ZWwsIFdURkxvZ0xldmVsOjpFcnJv
cik7CisgICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsMi5sZXZlbCwgV1RGTG9nTGV2ZWw6OkVycm9y
KTsKKyAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWwzLmxldmVsLCBXVEZMb2dMZXZlbDo6RXJyb3Ip
OworICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDQubGV2ZWwsIFdURkxvZ0xldmVsOjpFcnJvcik7
CiAKLSAgICBUZXN0Q2hhbm5lbDEuc3RhdGUgPSBXVEZMb2dDaGFubmVsT2ZmOworICAgIFRlc3RD
aGFubmVsMS5zdGF0ZSA9IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T2ZmOwogICAgIFdURkluaXRpYWxp
emVMb2dDaGFubmVsU3RhdGVzRnJvbVN0cmluZyh0ZXN0TG9nQ2hhbm5lbHMsIGxvZ0NoYW5uZWxD
b3VudCwgIkNoYW5uZWwxIik7Ci0gICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsMS5sZXZlbCwgV1RG
TG9nTGV2ZWxFcnJvcik7Ci0gICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsMS5zdGF0ZSwgV1RGTG9n
Q2hhbm5lbE9uKTsKKyAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWwxLmxldmVsLCBXVEZMb2dMZXZl
bDo6RXJyb3IpOworICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDEuc3RhdGUsIFdURkxvZ0NoYW5u
ZWxTdGF0ZTo6T24pOwogCi0gICAgVGVzdENoYW5uZWwxLnN0YXRlID0gV1RGTG9nQ2hhbm5lbE9m
ZjsKKyAgICBUZXN0Q2hhbm5lbDEuc3RhdGUgPSBXVEZMb2dDaGFubmVsU3RhdGU6Ok9mZjsKICAg
ICBXVEZJbml0aWFsaXplTG9nQ2hhbm5lbFN0YXRlc0Zyb21TdHJpbmcodGVzdExvZ0NoYW5uZWxz
LCBsb2dDaGFubmVsQ291bnQsICJDaGFubmVsMT1mb28iKTsKLSAgICBFWFBFQ1RfRVEoVGVzdENo
YW5uZWwxLmxldmVsLCBXVEZMb2dMZXZlbEVycm9yKTsKKyAgICBFWFBFQ1RfRVEoVGVzdENoYW5u
ZWwxLmxldmVsLCBXVEZMb2dMZXZlbDo6RXJyb3IpOwogI2lmIFRFU1RfT1VUUFVUCiAgICAgRVhQ
RUNUX1RSVUUob3V0cHV0KCkuY29udGFpbnMoIlVua25vd24gbG9nZ2luZyBsZXZlbDogZm9vIiwg
ZmFsc2UpKTsKICNlbmRpZgogCiAgICAgV1RGSW5pdGlhbGl6ZUxvZ0NoYW5uZWxTdGF0ZXNGcm9t
U3RyaW5nKHRlc3RMb2dDaGFubmVscywgbG9nQ2hhbm5lbENvdW50LCAiQ2hhbm5lbDE9d2Fybmlu
ZyIpOwotICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDEubGV2ZWwsIFdURkxvZ0xldmVsV2Fybmlu
Zyk7Ci0gICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsMi5sZXZlbCwgV1RGTG9nTGV2ZWxFcnJvcik7
Ci0gICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsMy5sZXZlbCwgV1RGTG9nTGV2ZWxFcnJvcik7Ci0g
ICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsNC5sZXZlbCwgV1RGTG9nTGV2ZWxFcnJvcik7CisgICAg
RVhQRUNUX0VRKFRlc3RDaGFubmVsMS5sZXZlbCwgV1RGTG9nTGV2ZWw6Oldhcm5pbmcpOworICAg
IEVYUEVDVF9FUShUZXN0Q2hhbm5lbDIubGV2ZWwsIFdURkxvZ0xldmVsOjpFcnJvcik7CisgICAg
RVhQRUNUX0VRKFRlc3RDaGFubmVsMy5sZXZlbCwgV1RGTG9nTGV2ZWw6OkVycm9yKTsKKyAgICBF
WFBFQ1RfRVEoVGVzdENoYW5uZWw0LmxldmVsLCBXVEZMb2dMZXZlbDo6RXJyb3IpOwogCiAgICAg
V1RGSW5pdGlhbGl6ZUxvZ0NoYW5uZWxTdGF0ZXNGcm9tU3RyaW5nKHRlc3RMb2dDaGFubmVscywg
bG9nQ2hhbm5lbENvdW50LCAiQ2hhbm5lbDQ9ICAgZGVidWcsIENoYW5uZWwzID0gaW5mbyxDaGFu
bmVsMj1lcnJvciIpOwotICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDEubGV2ZWwsIFdURkxvZ0xl
dmVsV2FybmluZyk7Ci0gICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsMi5sZXZlbCwgV1RGTG9nTGV2
ZWxFcnJvcik7Ci0gICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsMy5sZXZlbCwgV1RGTG9nTGV2ZWxJ
bmZvKTsKLSAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWw0LmxldmVsLCBXVEZMb2dMZXZlbERlYnVn
KTsKKyAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWwxLmxldmVsLCBXVEZMb2dMZXZlbDo6V2Fybmlu
Zyk7CisgICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsMi5sZXZlbCwgV1RGTG9nTGV2ZWw6OkVycm9y
KTsKKyAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWwzLmxldmVsLCBXVEZMb2dMZXZlbDo6SW5mbyk7
CisgICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsNC5sZXZlbCwgV1RGTG9nTGV2ZWw6OkRlYnVnKTsK
IAogICAgIFdURkluaXRpYWxpemVMb2dDaGFubmVsU3RhdGVzRnJvbVN0cmluZyh0ZXN0TG9nQ2hh
bm5lbHMsIGxvZ0NoYW5uZWxDb3VudCwgIi1hbGwiKTsKLSAgICBFWFBFQ1RfRVEoVGVzdENoYW5u
ZWwxLnN0YXRlLCBXVEZMb2dDaGFubmVsT2ZmKTsKLSAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWwy
LnN0YXRlLCBXVEZMb2dDaGFubmVsT2ZmKTsKLSAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWwzLnN0
YXRlLCBXVEZMb2dDaGFubmVsT2ZmKTsKLSAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWw0LnN0YXRl
LCBXVEZMb2dDaGFubmVsT2ZmKTsKKyAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWwxLnN0YXRlLCBX
VEZMb2dDaGFubmVsU3RhdGU6Ok9mZik7CisgICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsMi5zdGF0
ZSwgV1RGTG9nQ2hhbm5lbFN0YXRlOjpPZmYpOworICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDMu
c3RhdGUsIFdURkxvZ0NoYW5uZWxTdGF0ZTo6T2ZmKTsKKyAgICBFWFBFQ1RfRVEoVGVzdENoYW5u
ZWw0LnN0YXRlLCBXVEZMb2dDaGFubmVsU3RhdGU6Ok9mZik7CiAKICAgICBXVEZJbml0aWFsaXpl
TG9nQ2hhbm5lbFN0YXRlc0Zyb21TdHJpbmcodGVzdExvZ0NoYW5uZWxzLCBsb2dDaGFubmVsQ291
bnQsICJhbGwiKTsKLSAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWwxLnN0YXRlLCBXVEZMb2dDaGFu
bmVsT24pOwotICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDIuc3RhdGUsIFdURkxvZ0NoYW5uZWxP
bik7Ci0gICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsMy5zdGF0ZSwgV1RGTG9nQ2hhbm5lbE9uKTsK
LSAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWw0LnN0YXRlLCBXVEZMb2dDaGFubmVsT24pOworICAg
IEVYUEVDVF9FUShUZXN0Q2hhbm5lbDEuc3RhdGUsIFdURkxvZ0NoYW5uZWxTdGF0ZTo6T24pOwor
ICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDIuc3RhdGUsIFdURkxvZ0NoYW5uZWxTdGF0ZTo6T24p
OworICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDMuc3RhdGUsIFdURkxvZ0NoYW5uZWxTdGF0ZTo6
T24pOworICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDQuc3RhdGUsIFdURkxvZ0NoYW5uZWxTdGF0
ZTo6T24pOwogfQogCiBURVNUX0YoTG9nZ2luZ1Rlc3QsIFdURldpbGxMb2dXaXRoTGV2ZWwpCiB7
Ci0gICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsMS5zdGF0ZSwgV1RGTG9nQ2hhbm5lbE9uKTsKLSAg
ICBFWFBFQ1RfRVEoVGVzdENoYW5uZWwyLnN0YXRlLCBXVEZMb2dDaGFubmVsT24pOwotICAgIEVY
UEVDVF9FUShUZXN0Q2hhbm5lbDMuc3RhdGUsIFdURkxvZ0NoYW5uZWxPbik7Ci0gICAgRVhQRUNU
X0VRKFRlc3RDaGFubmVsNC5zdGF0ZSwgV1RGTG9nQ2hhbm5lbE9uKTsKLQotICAgIEVYUEVDVF9F
UShUZXN0Q2hhbm5lbDEubGV2ZWwsIFdURkxvZ0xldmVsRXJyb3IpOwotICAgIEVYUEVDVF9FUShU
ZXN0Q2hhbm5lbDIubGV2ZWwsIFdURkxvZ0xldmVsRXJyb3IpOwotICAgIEVYUEVDVF9FUShUZXN0
Q2hhbm5lbDMubGV2ZWwsIFdURkxvZ0xldmVsRXJyb3IpOwotICAgIEVYUEVDVF9FUShUZXN0Q2hh
bm5lbDQubGV2ZWwsIFdURkxvZ0xldmVsRXJyb3IpOwotCi0gICAgRVhQRUNUX1RSVUUoV1RGV2ls
bExvZ1dpdGhMZXZlbCgmVGVzdENoYW5uZWwxLCBXVEZMb2dMZXZlbEVycm9yKSk7Ci0gICAgRVhQ
RUNUX1RSVUUoV1RGV2lsbExvZ1dpdGhMZXZlbCgmVGVzdENoYW5uZWwyLCBXVEZMb2dMZXZlbEVy
cm9yKSk7Ci0gICAgRVhQRUNUX1RSVUUoV1RGV2lsbExvZ1dpdGhMZXZlbCgmVGVzdENoYW5uZWwz
LCBXVEZMb2dMZXZlbEVycm9yKSk7Ci0gICAgRVhQRUNUX1RSVUUoV1RGV2lsbExvZ1dpdGhMZXZl
bCgmVGVzdENoYW5uZWw0LCBXVEZMb2dMZXZlbEVycm9yKSk7Ci0KLSAgICBFWFBFQ1RfRkFMU0Uo
V1RGV2lsbExvZ1dpdGhMZXZlbCgmVGVzdENoYW5uZWwxLCBXVEZMb2dMZXZlbEluZm8pKTsKLSAg
ICBFWFBFQ1RfRkFMU0UoV1RGV2lsbExvZ1dpdGhMZXZlbCgmVGVzdENoYW5uZWwyLCBXVEZMb2dM
ZXZlbEluZm8pKTsKLSAgICBFWFBFQ1RfRkFMU0UoV1RGV2lsbExvZ1dpdGhMZXZlbCgmVGVzdENo
YW5uZWwzLCBXVEZMb2dMZXZlbEluZm8pKTsKLSAgICBFWFBFQ1RfRkFMU0UoV1RGV2lsbExvZ1dp
dGhMZXZlbCgmVGVzdENoYW5uZWw0LCBXVEZMb2dMZXZlbEluZm8pKTsKLQotICAgIFRlc3RDaGFu
bmVsMS5zdGF0ZSA9IFdURkxvZ0NoYW5uZWxPZmY7Ci0gICAgRVhQRUNUX0ZBTFNFKFdURldpbGxM
b2dXaXRoTGV2ZWwoJlRlc3RDaGFubmVsMSwgV1RGTG9nTGV2ZWxFcnJvcikpOwotICAgIEVYUEVD
VF9GQUxTRShXVEZXaWxsTG9nV2l0aExldmVsKCZUZXN0Q2hhbm5lbDEsIFdURkxvZ0xldmVsSW5m
bykpOwotCi0gICAgVGVzdENoYW5uZWwxLnN0YXRlID0gV1RGTG9nQ2hhbm5lbE9uOwotICAgIEVY
UEVDVF9UUlVFKFdURldpbGxMb2dXaXRoTGV2ZWwoJlRlc3RDaGFubmVsMSwgV1RGTG9nTGV2ZWxF
cnJvcikpOwotICAgIEVYUEVDVF9GQUxTRShXVEZXaWxsTG9nV2l0aExldmVsKCZUZXN0Q2hhbm5l
bDEsIFdURkxvZ0xldmVsSW5mbykpOwotCi0gICAgVGVzdENoYW5uZWwxLmxldmVsID0gV1RGTG9n
TGV2ZWxJbmZvOwotICAgIEVYUEVDVF9UUlVFKFdURldpbGxMb2dXaXRoTGV2ZWwoJlRlc3RDaGFu
bmVsMSwgV1RGTG9nTGV2ZWxFcnJvcikpOwotICAgIEVYUEVDVF9UUlVFKFdURldpbGxMb2dXaXRo
TGV2ZWwoJlRlc3RDaGFubmVsMSwgV1RGTG9nTGV2ZWxJbmZvKSk7CisgICAgRVhQRUNUX0VRKFRl
c3RDaGFubmVsMS5zdGF0ZSwgV1RGTG9nQ2hhbm5lbFN0YXRlOjpPbik7CisgICAgRVhQRUNUX0VR
KFRlc3RDaGFubmVsMi5zdGF0ZSwgV1RGTG9nQ2hhbm5lbFN0YXRlOjpPbik7CisgICAgRVhQRUNU
X0VRKFRlc3RDaGFubmVsMy5zdGF0ZSwgV1RGTG9nQ2hhbm5lbFN0YXRlOjpPbik7CisgICAgRVhQ
RUNUX0VRKFRlc3RDaGFubmVsNC5zdGF0ZSwgV1RGTG9nQ2hhbm5lbFN0YXRlOjpPbik7CisKKyAg
ICBFWFBFQ1RfRVEoVGVzdENoYW5uZWwxLmxldmVsLCBXVEZMb2dMZXZlbDo6RXJyb3IpOworICAg
IEVYUEVDVF9FUShUZXN0Q2hhbm5lbDIubGV2ZWwsIFdURkxvZ0xldmVsOjpFcnJvcik7CisgICAg
RVhQRUNUX0VRKFRlc3RDaGFubmVsMy5sZXZlbCwgV1RGTG9nTGV2ZWw6OkVycm9yKTsKKyAgICBF
WFBFQ1RfRVEoVGVzdENoYW5uZWw0LmxldmVsLCBXVEZMb2dMZXZlbDo6RXJyb3IpOworCisgICAg
RVhQRUNUX1RSVUUoV1RGV2lsbExvZ1dpdGhMZXZlbCgmVGVzdENoYW5uZWwxLCBXVEZMb2dMZXZl
bDo6RXJyb3IpKTsKKyAgICBFWFBFQ1RfVFJVRShXVEZXaWxsTG9nV2l0aExldmVsKCZUZXN0Q2hh
bm5lbDIsIFdURkxvZ0xldmVsOjpFcnJvcikpOworICAgIEVYUEVDVF9UUlVFKFdURldpbGxMb2dX
aXRoTGV2ZWwoJlRlc3RDaGFubmVsMywgV1RGTG9nTGV2ZWw6OkVycm9yKSk7CisgICAgRVhQRUNU
X1RSVUUoV1RGV2lsbExvZ1dpdGhMZXZlbCgmVGVzdENoYW5uZWw0LCBXVEZMb2dMZXZlbDo6RXJy
b3IpKTsKKworICAgIEVYUEVDVF9GQUxTRShXVEZXaWxsTG9nV2l0aExldmVsKCZUZXN0Q2hhbm5l
bDEsIFdURkxvZ0xldmVsOjpJbmZvKSk7CisgICAgRVhQRUNUX0ZBTFNFKFdURldpbGxMb2dXaXRo
TGV2ZWwoJlRlc3RDaGFubmVsMiwgV1RGTG9nTGV2ZWw6OkluZm8pKTsKKyAgICBFWFBFQ1RfRkFM
U0UoV1RGV2lsbExvZ1dpdGhMZXZlbCgmVGVzdENoYW5uZWwzLCBXVEZMb2dMZXZlbDo6SW5mbykp
OworICAgIEVYUEVDVF9GQUxTRShXVEZXaWxsTG9nV2l0aExldmVsKCZUZXN0Q2hhbm5lbDQsIFdU
RkxvZ0xldmVsOjpJbmZvKSk7CisKKyAgICBUZXN0Q2hhbm5lbDEuc3RhdGUgPSBXVEZMb2dDaGFu
bmVsU3RhdGU6Ok9mZjsKKyAgICBFWFBFQ1RfRkFMU0UoV1RGV2lsbExvZ1dpdGhMZXZlbCgmVGVz
dENoYW5uZWwxLCBXVEZMb2dMZXZlbDo6RXJyb3IpKTsKKyAgICBFWFBFQ1RfRkFMU0UoV1RGV2ls
bExvZ1dpdGhMZXZlbCgmVGVzdENoYW5uZWwxLCBXVEZMb2dMZXZlbDo6SW5mbykpOworCisgICAg
VGVzdENoYW5uZWwxLnN0YXRlID0gV1RGTG9nQ2hhbm5lbFN0YXRlOjpPbjsKKyAgICBFWFBFQ1Rf
VFJVRShXVEZXaWxsTG9nV2l0aExldmVsKCZUZXN0Q2hhbm5lbDEsIFdURkxvZ0xldmVsOjpFcnJv
cikpOworICAgIEVYUEVDVF9GQUxTRShXVEZXaWxsTG9nV2l0aExldmVsKCZUZXN0Q2hhbm5lbDEs
IFdURkxvZ0xldmVsOjpJbmZvKSk7CisKKyAgICBUZXN0Q2hhbm5lbDEubGV2ZWwgPSBXVEZMb2dM
ZXZlbDo6SW5mbzsKKyAgICBFWFBFQ1RfVFJVRShXVEZXaWxsTG9nV2l0aExldmVsKCZUZXN0Q2hh
bm5lbDEsIFdURkxvZ0xldmVsOjpFcnJvcikpOworICAgIEVYUEVDVF9UUlVFKFdURldpbGxMb2dX
aXRoTGV2ZWwoJlRlc3RDaGFubmVsMSwgV1RGTG9nTGV2ZWw6OkluZm8pKTsKIH0KIAogI2lmIFRF
U1RfT1VUUFVUCkBAIC0yMDEsMjEgKzIwMSwyMSBAQCBURVNUX0YoTG9nZ2luZ1Rlc3QsIExPRykK
IAogVEVTVF9GKExvZ2dpbmdUZXN0LCBMT0dfV0lUSF9MRVZFTCkKIHsKLSAgICBMT0dfV0lUSF9M
RVZFTChDaGFubmVsMSwgV1RGTG9nTGV2ZWxFcnJvciwgIkdvIGFuZCBib2lsIHlvdXIgYm90dG9t
cywgeW91IHNvbnMgb2YgYSBzaWxseSBwZXJzb24uIik7CisgICAgTE9HX1dJVEhfTEVWRUwoQ2hh
bm5lbDEsIFdURkxvZ0xldmVsOjpFcnJvciwgIkdvIGFuZCBib2lsIHlvdXIgYm90dG9tcywgeW91
IHNvbnMgb2YgYSBzaWxseSBwZXJzb24uIik7CiAgICAgRVhQRUNUX1RSVUUob3V0cHV0KCkuY29u
dGFpbnMoInNvbnMgb2YgYSBzaWxseSBwZXJzb24uIiwgZmFsc2UpKTsKIAotICAgIExPR19XSVRI
X0xFVkVMKENoYW5uZWwxLCBXVEZMb2dMZXZlbFdhcm5pbmcsICJZb3UgZG9uJ3QgZnJpZ2h0ZW4g
dXMsIEVuZ2xpc2ggcGlnIGRvZ3MuIik7CisgICAgTE9HX1dJVEhfTEVWRUwoQ2hhbm5lbDEsIFdU
RkxvZ0xldmVsOjpXYXJuaW5nLCAiWW91IGRvbid0IGZyaWdodGVuIHVzLCBFbmdsaXNoIHBpZyBk
b2dzLiIpOwogICAgIEVYUEVDVF9FUSgwdSwgb3V0cHV0KCkubGVuZ3RoKCkpOwogCi0gICAgV1RG
U2V0TG9nQ2hhbm5lbExldmVsKCZUZXN0Q2hhbm5lbDEsIFdURkxvZ0xldmVsSW5mbyk7Ci0gICAg
TE9HX1dJVEhfTEVWRUwoQ2hhbm5lbDEsIFdURkxvZ0xldmVsV2FybmluZywgIkknbSBGcmVuY2gu
IFdoeSBkbyB5b3UgdGhpbmsgSSBoYXZlIHRoaXMgb3V0cmFnZW91cyBhY2NlbnQsIHlvdSBzaWxs
eSBraW5nPyIpOworICAgIFdURlNldExvZ0NoYW5uZWxMZXZlbCgmVGVzdENoYW5uZWwxLCBXVEZM
b2dMZXZlbDo6SW5mbyk7CisgICAgTE9HX1dJVEhfTEVWRUwoQ2hhbm5lbDEsIFdURkxvZ0xldmVs
OjpXYXJuaW5nLCAiSSdtIEZyZW5jaC4gV2h5IGRvIHlvdSB0aGluayBJIGhhdmUgdGhpcyBvdXRy
YWdlb3VzIGFjY2VudCwgeW91IHNpbGx5IGtpbmc/Iik7CiAgICAgRVhQRUNUX1RSVUUob3V0cHV0
KCkuY29udGFpbnMoIm91dHJhZ2VvdXMgYWNjZW50IiwgZmFsc2UpKTsKIAotICAgIExPR19XSVRI
X0xFVkVMKENoYW5uZWwxLCBXVEZMb2dMZXZlbERlYnVnLCAiWW91IGRvbid0IGZyaWdodGVuIHVz
IHdpdGggeW91ciBzaWxseSBrbmVlcy1iZW50IHJ1bm5pbmcgYXJvdW5kIGFkdmFuY2luZyBiZWhh
dmlvciEiKTsKKyAgICBMT0dfV0lUSF9MRVZFTChDaGFubmVsMSwgV1RGTG9nTGV2ZWw6OkRlYnVn
LCAiWW91IGRvbid0IGZyaWdodGVuIHVzIHdpdGggeW91ciBzaWxseSBrbmVlcy1iZW50IHJ1bm5p
bmcgYXJvdW5kIGFkdmFuY2luZyBiZWhhdmlvciEiKTsKICAgICBFWFBFQ1RfRVEoMHUsIG91dHB1
dCgpLmxlbmd0aCgpKTsKIAotICAgIFdURlNldExvZ0NoYW5uZWxMZXZlbCgmVGVzdENoYW5uZWwx
LCBXVEZMb2dMZXZlbERlYnVnKTsKLSAgICBMT0dfV0lUSF9MRVZFTChDaGFubmVsMSwgV1RGTG9n
TGV2ZWxEZWJ1ZywgIkdvIGFuZCB0ZWxsIHlvdXIgbWFzdGVyIHRoYXQgd2UgaGF2ZSBiZWVuIGNo
YXJnZWQgYnkgR29kIHdpdGggYSBzYWNyZWQgcXVlc3QuIik7CisgICAgV1RGU2V0TG9nQ2hhbm5l
bExldmVsKCZUZXN0Q2hhbm5lbDEsIFdURkxvZ0xldmVsOjpEZWJ1Zyk7CisgICAgTE9HX1dJVEhf
TEVWRUwoQ2hhbm5lbDEsIFdURkxvZ0xldmVsOjpEZWJ1ZywgIkdvIGFuZCB0ZWxsIHlvdXIgbWFz
dGVyIHRoYXQgd2UgaGF2ZSBiZWVuIGNoYXJnZWQgYnkgR29kIHdpdGggYSBzYWNyZWQgcXVlc3Qu
Iik7CiAgICAgRVhQRUNUX1RSVUUob3V0cHV0KCkuY29udGFpbnMoInNhY3JlZCBxdWVzdCIsIGZh
bHNlKSk7CiB9CiAKQEAgLTIzOCwzNSArMjM4LDM1IEBAIFRFU1RfRihMb2dnaW5nVGVzdCwgUkVM
RUFTRV9MT0dfSUYpCiAKIFRFU1RfRihMb2dnaW5nVGVzdCwgUkVMRUFTRV9MT0dfV0lUSF9MRVZF
TCkKIHsKLSAgICBSRUxFQVNFX0xPR19XSVRIX0xFVkVMKENoYW5uZWwxLCBXVEZMb2dMZXZlbEVy
cm9yLCAiWW91IGRvbid0IGZyaWdodGVuIHVzLCBFbmdsaXNoIHBpZyBkb2dzLiIpOworICAgIFJF
TEVBU0VfTE9HX1dJVEhfTEVWRUwoQ2hhbm5lbDEsIFdURkxvZ0xldmVsOjpFcnJvciwgIllvdSBk
b24ndCBmcmlnaHRlbiB1cywgRW5nbGlzaCBwaWcgZG9ncy4iKTsKICAgICBFWFBFQ1RfVFJVRShv
dXRwdXQoKS5jb250YWlucygicGlnIGRvZ3MuIiwgZmFsc2UpKTsKIAotICAgIFJFTEVBU0VfTE9H
X1dJVEhfTEVWRUwoQ2hhbm5lbDEsIFdURkxvZ0xldmVsV2FybmluZywgIkdvIGFuZCBib2lsIHlv
dXIgYm90dG9tcywgeW91IHNvbnMgb2YgYSBzaWxseSBwZXJzb24uIik7CisgICAgUkVMRUFTRV9M
T0dfV0lUSF9MRVZFTChDaGFubmVsMSwgV1RGTG9nTGV2ZWw6Oldhcm5pbmcsICJHbyBhbmQgYm9p
bCB5b3VyIGJvdHRvbXMsIHlvdSBzb25zIG9mIGEgc2lsbHkgcGVyc29uLiIpOwogICAgIEVYUEVD
VF9FUSgwdSwgb3V0cHV0KCkubGVuZ3RoKCkpOwogCi0gICAgV1RGU2V0TG9nQ2hhbm5lbExldmVs
KCZUZXN0Q2hhbm5lbDEsIFdURkxvZ0xldmVsSW5mbyk7Ci0gICAgUkVMRUFTRV9MT0dfV0lUSF9M
RVZFTChDaGFubmVsMSwgV1RGTG9nTGV2ZWxXYXJuaW5nLCAiSSdtIEZyZW5jaC4gV2h5IGRvIHlv
dSB0aGluayBJIGhhdmUgdGhpcyBvdXRyYWdlb3VzIGFjY2VudCwgeW91IHNpbGx5IGtpbmc/Iik7
CisgICAgV1RGU2V0TG9nQ2hhbm5lbExldmVsKCZUZXN0Q2hhbm5lbDEsIFdURkxvZ0xldmVsOjpJ
bmZvKTsKKyAgICBSRUxFQVNFX0xPR19XSVRIX0xFVkVMKENoYW5uZWwxLCBXVEZMb2dMZXZlbDo6
V2FybmluZywgIkknbSBGcmVuY2guIFdoeSBkbyB5b3UgdGhpbmsgSSBoYXZlIHRoaXMgb3V0cmFn
ZW91cyBhY2NlbnQsIHlvdSBzaWxseSBraW5nPyIpOwogICAgIEVYUEVDVF9UUlVFKG91dHB1dCgp
LmNvbnRhaW5zKCJvdXRyYWdlb3VzIGFjY2VudCIsIGZhbHNlKSk7CiAKLSAgICBSRUxFQVNFX0xP
R19XSVRIX0xFVkVMKENoYW5uZWwxLCBXVEZMb2dMZXZlbERlYnVnLCAiWW91IGRvbid0IGZyaWdo
dGVuIHVzIHdpdGggeW91ciBzaWxseSBrbmVlcy1iZW50IHJ1bm5pbmcgYXJvdW5kIGFkdmFuY2lu
ZyBiZWhhdmlvciEiKTsKKyAgICBSRUxFQVNFX0xPR19XSVRIX0xFVkVMKENoYW5uZWwxLCBXVEZM
b2dMZXZlbDo6RGVidWcsICJZb3UgZG9uJ3QgZnJpZ2h0ZW4gdXMgd2l0aCB5b3VyIHNpbGx5IGtu
ZWVzLWJlbnQgcnVubmluZyBhcm91bmQgYWR2YW5jaW5nIGJlaGF2aW9yISIpOwogICAgIEVYUEVD
VF9FUSgwdSwgb3V0cHV0KCkubGVuZ3RoKCkpOwogCi0gICAgV1RGU2V0TG9nQ2hhbm5lbExldmVs
KCZUZXN0Q2hhbm5lbDEsIFdURkxvZ0xldmVsRGVidWcpOwotICAgIFJFTEVBU0VfTE9HX1dJVEhf
TEVWRUwoQ2hhbm5lbDEsIFdURkxvZ0xldmVsRGVidWcsICJHbyBhbmQgdGVsbCB5b3VyIG1hc3Rl
ciB0aGF0IHdlIGhhdmUgYmVlbiBjaGFyZ2VkIGJ5IEdvZCB3aXRoIGEgc2FjcmVkIHF1ZXN0LiIp
OworICAgIFdURlNldExvZ0NoYW5uZWxMZXZlbCgmVGVzdENoYW5uZWwxLCBXVEZMb2dMZXZlbDo6
RGVidWcpOworICAgIFJFTEVBU0VfTE9HX1dJVEhfTEVWRUwoQ2hhbm5lbDEsIFdURkxvZ0xldmVs
OjpEZWJ1ZywgIkdvIGFuZCB0ZWxsIHlvdXIgbWFzdGVyIHRoYXQgd2UgaGF2ZSBiZWVuIGNoYXJn
ZWQgYnkgR29kIHdpdGggYSBzYWNyZWQgcXVlc3QuIik7CiAgICAgRVhQRUNUX1RSVUUob3V0cHV0
KCkuY29udGFpbnMoInNhY3JlZCBxdWVzdCIsIGZhbHNlKSk7CiB9CiAKIFRFU1RfRihMb2dnaW5n
VGVzdCwgUkVMRUFTRV9MT0dfV0lUSF9MRVZFTF9JRikKIHsKICAgICBib29sIGVuYWJsZWQgPSB0
cnVlOwotICAgIFJFTEVBU0VfTE9HX1dJVEhfTEVWRUxfSUYoZW5hYmxlZCwgQ2hhbm5lbDEsIFdU
RkxvZ0xldmVsRXJyb3IsICJJcyB0aGVyZSBzb21lb25lIGVsc2UgdXAgdGhlcmUgdGhhdCB3ZSBj
YW4gdGFsayB0bz8iKTsKKyAgICBSRUxFQVNFX0xPR19XSVRIX0xFVkVMX0lGKGVuYWJsZWQsIENo
YW5uZWwxLCBXVEZMb2dMZXZlbDo6RXJyb3IsICJJcyB0aGVyZSBzb21lb25lIGVsc2UgdXAgdGhl
cmUgdGhhdCB3ZSBjYW4gdGFsayB0bz8iKTsKICAgICBFWFBFQ1RfVFJVRShvdXRwdXQoKS5jb250
YWlucygic29tZW9uZSBlbHNlIiwgZmFsc2UpKTsKIAotICAgIFJFTEVBU0VfTE9HX1dJVEhfTEVW
RUxfSUYoZW5hYmxlZCwgQ2hhbm5lbDEsIFdURkxvZ0xldmVsRGVidWcsICJObywgbm93IGdvIGF3
YXkiKTsKKyAgICBSRUxFQVNFX0xPR19XSVRIX0xFVkVMX0lGKGVuYWJsZWQsIENoYW5uZWwxLCBX
VEZMb2dMZXZlbDo6RGVidWcsICJObywgbm93IGdvIGF3YXkiKTsKICAgICBFWFBFQ1RfRVEoMHUs
IG91dHB1dCgpLmxlbmd0aCgpKTsKIAogICAgIGVuYWJsZWQgPSBmYWxzZTsKLSAgICBSRUxFQVNF
X0xPR19XSVRIX0xFVkVMX0lGKGVuYWJsZWQsIENoYW5uZWwxLCBXVEZMb2dMZXZlbFdhcm5pbmcs
ICJvciBJIHNoYWxsIHRhdW50IHlvdSBhIHNlY29uZCB0aW1lISAlaSIsIDEyKTsKKyAgICBSRUxF
QVNFX0xPR19XSVRIX0xFVkVMX0lGKGVuYWJsZWQsIENoYW5uZWwxLCBXVEZMb2dMZXZlbDo6V2Fy
bmluZywgIm9yIEkgc2hhbGwgdGF1bnQgeW91IGEgc2Vjb25kIHRpbWUhICVpIiwgMTIpOwogICAg
IEVYUEVDVF9FUSgwdSwgb3V0cHV0KCkubGVuZ3RoKCkpOwogfQogCkBAIC0yNzUsOCArMjc1LDgg
QEAgVEVTVF9GKExvZ2dpbmdUZXN0LCBMb2dnZXIpCiAgICAgUmVmPExvZ2dlcj4gbG9nZ2VyID0g
TG9nZ2VyOjpjcmVhdGUodGhpcyk7CiAgICAgRVhQRUNUX1RSVUUobG9nZ2VyLT5lbmFibGVkKCkp
OwogCi0gICAgV1RGU2V0TG9nQ2hhbm5lbExldmVsKCZUZXN0Q2hhbm5lbDEsIFdURkxvZ0xldmVs
RXJyb3IpOwotICAgIEVYUEVDVF9UUlVFKGxvZ2dlci0+d2lsbExvZyhUZXN0Q2hhbm5lbDEsIFdU
RkxvZ0xldmVsRXJyb3IpKTsKKyAgICBXVEZTZXRMb2dDaGFubmVsTGV2ZWwoJlRlc3RDaGFubmVs
MSwgV1RGTG9nTGV2ZWw6OkVycm9yKTsKKyAgICBFWFBFQ1RfVFJVRShsb2dnZXItPndpbGxMb2co
VGVzdENoYW5uZWwxLCBXVEZMb2dMZXZlbDo6RXJyb3IpKTsKICAgICBsb2dnZXItPmVycm9yKFRl
c3RDaGFubmVsMSwgIllvdSdyZSB1c2luZyBjb2NvbnV0cyEiKTsKICAgICBFWFBFQ1RfVFJVRShv
dXRwdXQoKS5jb250YWlucygiWW91J3JlIHVzaW5nIGNvY29udXRzISIsIGZhbHNlKSk7CiAgICAg
bG9nZ2VyLT53YXJuaW5nKFRlc3RDaGFubmVsMSwgIllvdSdyZSB1c2luZyBjb2NvbnV0cyEiKTsK
QEAgLTMwNSwxNSArMzA1LDE1IEBAIFRFU1RfRihMb2dnaW5nVGVzdCwgTG9nZ2VyKQogICAgIGxv
Z2dlci0+ZXJyb3IoVGVzdENoYW5uZWwxLCAiWW91J3ZlIGdvdCAiLCAyLCAiIGVtcHR5IGhhbHZl
cyBvZiAiLCAiY29jb251dHMhIik7CiAgICAgRVhQRUNUX1RSVUUob3V0cHV0KCkuY29udGFpbnMo
IllvdSd2ZSBnb3QgMiBlbXB0eSBoYWx2ZXMgb2YgY29jb251dHMhIiwgZmFsc2UpKTsKIAotICAg
IFdURlNldExvZ0NoYW5uZWxMZXZlbCgmVGVzdENoYW5uZWwxLCBXVEZMb2dMZXZlbEVycm9yKTsK
KyAgICBXVEZTZXRMb2dDaGFubmVsTGV2ZWwoJlRlc3RDaGFubmVsMSwgV1RGTG9nTGV2ZWw6OkVy
cm9yKTsKICAgICBsb2dnZXItPmxvZ0Fsd2F5cyhUZXN0Q2hhbm5lbDEsICJJIHNoYWxsIHRhdW50
IHlvdSBhIHNlY29uZCB0aW1lISIpOwogICAgIEVYUEVDVF9UUlVFKG91dHB1dCgpLmNvbnRhaW5z
KCJJIHNoYWxsIHRhdW50IHlvdSBhIHNlY29uZCB0aW1lISIsIGZhbHNlKSk7CiAKICAgICBsb2dn
ZXItPnNldEVuYWJsZWQodGhpcywgZmFsc2UpOwotICAgIEVYUEVDVF9GQUxTRShsb2dnZXItPndp
bGxMb2coVGVzdENoYW5uZWwxLCBXVEZMb2dMZXZlbEVycm9yKSk7Ci0gICAgRVhQRUNUX0ZBTFNF
KGxvZ2dlci0+d2lsbExvZyhUZXN0Q2hhbm5lbDEsIFdURkxvZ0xldmVsV2FybmluZykpOwotICAg
IEVYUEVDVF9GQUxTRShsb2dnZXItPndpbGxMb2coVGVzdENoYW5uZWwxLCBXVEZMb2dMZXZlbElu
Zm8pKTsKLSAgICBFWFBFQ1RfRkFMU0UobG9nZ2VyLT53aWxsTG9nKFRlc3RDaGFubmVsMSwgV1RG
TG9nTGV2ZWxEZWJ1ZykpOworICAgIEVYUEVDVF9GQUxTRShsb2dnZXItPndpbGxMb2coVGVzdENo
YW5uZWwxLCBXVEZMb2dMZXZlbDo6RXJyb3IpKTsKKyAgICBFWFBFQ1RfRkFMU0UobG9nZ2VyLT53
aWxsTG9nKFRlc3RDaGFubmVsMSwgV1RGTG9nTGV2ZWw6Oldhcm5pbmcpKTsKKyAgICBFWFBFQ1Rf
RkFMU0UobG9nZ2VyLT53aWxsTG9nKFRlc3RDaGFubmVsMSwgV1RGTG9nTGV2ZWw6OkluZm8pKTsK
KyAgICBFWFBFQ1RfRkFMU0UobG9nZ2VyLT53aWxsTG9nKFRlc3RDaGFubmVsMSwgV1RGTG9nTGV2
ZWw6OkRlYnVnKSk7CiAgICAgRVhQRUNUX0ZBTFNFKGxvZ2dlci0+ZW5hYmxlZCgpKTsKICAgICBs
b2dnZXItPmxvZ0Fsd2F5cyhUZXN0Q2hhbm5lbDEsICJZb3UndmUgZ290IHR3byBlbXB0eSBoYWx2
ZXMgb2YgY29jb251dHMiKTsKICAgICBFWFBFQ1RfRVEoMHUsIG91dHB1dCgpLmxlbmd0aCgpKTsK
QEAgLTM0OCw3ICszNDgsNyBAQCBURVNUX0YoTG9nZ2luZ1Rlc3QsIExvZ2dlckhlbHBlcikKICAg
ICBFWFBFQ1RfVFJVRShyZXN1bHQuY29udGFpbnMoc2lnbmF0dXJlLCBmYWxzZSkpOwogICAgIEVY
UEVDVF9UUlVFKHJlc3VsdC5jb250YWlucygidG8gdGhlIHNob3cgdGhhdCBuZXZlciIsIGZhbHNl
KSk7CiAKLSAgICBXVEZTZXRMb2dDaGFubmVsTGV2ZWwoJlRlc3RDaGFubmVsMSwgV1RGTG9nTGV2
ZWxXYXJuaW5nKTsKKyAgICBXVEZTZXRMb2dDaGFubmVsTGV2ZWwoJlRlc3RDaGFubmVsMSwgV1RG
TG9nTGV2ZWw6Oldhcm5pbmcpOwogCiAgICAgRVJST1JfTE9HKExPR0lERU5USUZJRVIsICJXZSdy
ZSBzbyBnbGFkIHlvdSBjb3VsZCBhdHRlbmQiKTsKICAgICBFWFBFQ1RfVFJVRShvdXRwdXQoKS5j
b250YWlucygiV2UncmUgc28gZ2xhZCB5b3UgY291bGQgYXR0ZW5kIiwgZmFsc2UpKTsKQEAgLTM4
OCw3ICszODgsNyBAQCBwcml2YXRlOgogCiAgICAgU3RyaW5nQnVpbGRlciBtX2xvZ0J1ZmZlcjsK
ICAgICBXVEZMb2dDaGFubmVsIG1fbGFzdENoYW5uZWw7Ci0gICAgV1RGTG9nTGV2ZWwgbV9sYXN0
TGV2ZWwgeyBXVEZMb2dMZXZlbEVycm9yIH07CisgICAgV1RGTG9nTGV2ZWwgbV9sYXN0TGV2ZWwg
eyBXVEZMb2dMZXZlbDo6RXJyb3IgfTsKIH07CiAKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQK
QEAgLTQwMyw3ICs0MDMsNyBAQCBURVNUX0YoTG9nZ2luZ1Rlc3QsIExvZ09ic2VydmVyKQogICAg
IEVYUEVDVF9UUlVFKHRoaXMtPm91dHB1dCgpLmNvbnRhaW5zKCJ0ZXN0aW5nIDEsIDIsIDMiLCBm
YWxzZSkpOwogICAgIEVYUEVDVF9UUlVFKG9ic2VydmVyLmxvZygpLmNvbnRhaW5zKCJ0ZXN0aW5n
IDEsIDIsIDMiLCBmYWxzZSkpOwogICAgIEVYUEVDVF9TVFJFUShvYnNlcnZlci5jaGFubmVsKCku
bmFtZSwgbG9nQ2hhbm5lbCgpLm5hbWUpOwotICAgIEVYUEVDVF9FUShzdGF0aWNfY2FzdDxpbnQ+
KFdURkxvZ0xldmVsQWx3YXlzKSwgc3RhdGljX2Nhc3Q8aW50PihvYnNlcnZlci5sZXZlbCgpKSk7
CisgICAgRVhQRUNUX0VRKHN0YXRpY19jYXN0PGludD4oV1RGTG9nTGV2ZWw6OkFsd2F5cyksIHN0
YXRpY19jYXN0PGludD4ob2JzZXJ2ZXIubGV2ZWwoKSkpOwogCiAgICAgbG9nZ2VyKCkucmVtb3Zl
T2JzZXJ2ZXIob2JzZXJ2ZXIpOwogICAgIEFMV0FZU19MT0coInRlc3RpbmcgIiwgMSwgIiwgIiwg
MiwgIiwgMyIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>365075</attachid>
            <date>2019-03-18 15:24:27 -0700</date>
            <delta_ts>2019-03-19 09:06:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195904-20190318152426.patch</filename>
            <type>text/plain</type>
            <size>47414</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNDMxMDUpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDE5LTAzLTE4ICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTWFrZSBXVEZMb2dDaGFubmVsU3Rh
dGUgYW5kIFdURkxvZ0xldmVsIGVudW0gY2xhc3NlcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1OTA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJp
YyBDYXJsc29uLgorCisgICAgICAgICogd3RmL0Fzc2VydGlvbnMuY3BwOgorICAgICAgICAqIHd0
Zi9Bc3NlcnRpb25zLmg6CisgICAgICAgICogd3RmL0xvZ2dlci5oOgorICAgICAgICAoV1RGOjpM
b2dnZXI6OmxvZ0Fsd2F5cyBjb25zdCk6CisgICAgICAgIChXVEY6OkxvZ2dlcjo6ZXJyb3IgY29u
c3QpOgorICAgICAgICAoV1RGOjpMb2dnZXI6Ondhcm5pbmcgY29uc3QpOgorICAgICAgICAoV1RG
OjpMb2dnZXI6OmluZm8gY29uc3QpOgorICAgICAgICAoV1RGOjpMb2dnZXI6OmRlYnVnIGNvbnN0
KToKKyAgICAgICAgKFdURjo6TG9nZ2VyOjp3aWxsTG9nIGNvbnN0KToKKyAgICAgICAgKFdURjo6
TG9nZ2VyOjpsb2cpOgorICAgICAgICAqIHd0Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwOgor
ICAgICAgICAqIHd0Zi9SZWZDb3VudGVkTGVha0NvdW50ZXIuY3BwOgorCiAyMDE5LTAzLTE2ICBE
YXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXByb3ZlIG5vcm1hbGl6
YXRpb24gY29kZSwgaW5jbHVkaW5nIG1vdmluZyBmcm9tIHVub3JtLmggdG8gdW5vcm0yLmgKSW5k
ZXg6IFNvdXJjZS9XVEYvd3RmL0FnZ3JlZ2F0ZUxvZ2dlci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XVEYvd3RmL0FnZ3JlZ2F0ZUxvZ2dlci5oCShyZXZpc2lvbiAyNDMxMDUpCisrKyBTb3VyY2Uv
V1RGL3d0Zi9BZ2dyZWdhdGVMb2dnZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNTcsMzIgKzU3LDMy
IEBAIHB1YmxpYzoKICAgICAgICAgLy8gIG9uIHNvbWUgc3lzdGVtcywgc28gZG9uJ3QgYWxsb3cg
aXQuCiAgICAgICAgIFVOVVNFRF9QQVJBTShjaGFubmVsKTsKICNlbHNlCi0gICAgICAgIGxvZyhj
aGFubmVsLCBXVEZMb2dMZXZlbEFsd2F5cywgYXJndW1lbnRzLi4uKTsKKyAgICAgICAgbG9nKGNo
YW5uZWwsIFdURkxvZ0xldmVsOjpBbHdheXMsIGFyZ3VtZW50cy4uLik7CiAjZW5kaWYKICAgICB9
CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudHM+CiAgICAgaW5saW5lIHZvaWQg
ZXJyb3IoV1RGTG9nQ2hhbm5lbCYgY2hhbm5lbCwgY29uc3QgQXJndW1lbnRzJi4uLiBhcmd1bWVu
dHMpIGNvbnN0CiAgICAgewotICAgICAgICBsb2coY2hhbm5lbCwgV1RGTG9nTGV2ZWxFcnJvciwg
YXJndW1lbnRzLi4uKTsKKyAgICAgICAgbG9nKGNoYW5uZWwsIFdURkxvZ0xldmVsOjpFcnJvciwg
YXJndW1lbnRzLi4uKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVu
dHM+CiAgICAgaW5saW5lIHZvaWQgd2FybmluZyhXVEZMb2dDaGFubmVsJiBjaGFubmVsLCBjb25z
dCBBcmd1bWVudHMmLi4uIGFyZ3VtZW50cykgY29uc3QKICAgICB7Ci0gICAgICAgIGxvZyhjaGFu
bmVsLCBXVEZMb2dMZXZlbFdhcm5pbmcsIGFyZ3VtZW50cy4uLik7CisgICAgICAgIGxvZyhjaGFu
bmVsLCBXVEZMb2dMZXZlbDo6V2FybmluZywgYXJndW1lbnRzLi4uKTsKICAgICB9CiAKICAgICB0
ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudHM+CiAgICAgaW5saW5lIHZvaWQgaW5mbyhXVEZM
b2dDaGFubmVsJiBjaGFubmVsLCBjb25zdCBBcmd1bWVudHMmLi4uIGFyZ3VtZW50cykgY29uc3QK
ICAgICB7Ci0gICAgICAgIGxvZyhjaGFubmVsLCBXVEZMb2dMZXZlbEluZm8sIGFyZ3VtZW50cy4u
Lik7CisgICAgICAgIGxvZyhjaGFubmVsLCBXVEZMb2dMZXZlbDo6SW5mbywgYXJndW1lbnRzLi4u
KTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudHM+CiAgICAgaW5s
aW5lIHZvaWQgZGVidWcoV1RGTG9nQ2hhbm5lbCYgY2hhbm5lbCwgY29uc3QgQXJndW1lbnRzJi4u
LiBhcmd1bWVudHMpIGNvbnN0CiAgICAgewotICAgICAgICBsb2coY2hhbm5lbCwgV1RGTG9nTGV2
ZWxEZWJ1ZywgYXJndW1lbnRzLi4uKTsKKyAgICAgICAgbG9nKGNoYW5uZWwsIFdURkxvZ0xldmVs
OjpEZWJ1ZywgYXJndW1lbnRzLi4uKTsKICAgICB9CiAKICAgICBpbmxpbmUgYm9vbCB3aWxsTG9n
KGNvbnN0IFdURkxvZ0NoYW5uZWwmIGNoYW5uZWwsIFdURkxvZ0xldmVsIGxldmVsKSBjb25zdApJ
bmRleDogU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dURi93dGYvQXNzZXJ0aW9ucy5jcHAJKHJldmlzaW9uIDI0MzEwNSkKKysrIFNvdXJjZS9XVEYv
d3RmL0Fzc2VydGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MDksMTUgKzQwOSwxNSBAQCB2
b2lkIFdURlNldExvZ0NoYW5uZWxMZXZlbChXVEZMb2dDaGFubmVsCiAKIGJvb2wgV1RGV2lsbExv
Z1dpdGhMZXZlbChXVEZMb2dDaGFubmVsKiBjaGFubmVsLCBXVEZMb2dMZXZlbCBsZXZlbCkKIHsK
LSAgICByZXR1cm4gY2hhbm5lbC0+bGV2ZWwgPj0gbGV2ZWwgJiYgY2hhbm5lbC0+c3RhdGUgIT0g
V1RGTG9nQ2hhbm5lbE9mZjsKKyAgICByZXR1cm4gY2hhbm5lbC0+bGV2ZWwgPj0gbGV2ZWwgJiYg
Y2hhbm5lbC0+c3RhdGUgIT0gV1RGTG9nQ2hhbm5lbFN0YXRlOjpPZmY7CiB9CiAKIHZvaWQgV1RG
TG9nV2l0aExldmVsKFdURkxvZ0NoYW5uZWwqIGNoYW5uZWwsIFdURkxvZ0xldmVsIGxldmVsLCBj
b25zdCBjaGFyKiBmb3JtYXQsIC4uLikKIHsKLSAgICBpZiAobGV2ZWwgIT0gV1RGTG9nTGV2ZWxB
bHdheXMgJiYgbGV2ZWwgPiBjaGFubmVsLT5sZXZlbCkKKyAgICBpZiAobGV2ZWwgIT0gV1RGTG9n
TGV2ZWw6OkFsd2F5cyAmJiBsZXZlbCA+IGNoYW5uZWwtPmxldmVsKQogICAgICAgICByZXR1cm47
CiAKLSAgICBpZiAoY2hhbm5lbC0+bGV2ZWwgIT0gV1RGTG9nTGV2ZWxBbHdheXMgJiYgY2hhbm5l
bC0+c3RhdGUgPT0gV1RGTG9nQ2hhbm5lbE9mZikKKyAgICBpZiAoY2hhbm5lbC0+bGV2ZWwgIT0g
V1RGTG9nTGV2ZWw6OkFsd2F5cyAmJiBjaGFubmVsLT5zdGF0ZSA9PSBXVEZMb2dDaGFubmVsU3Rh
dGU6Ok9mZikKICAgICAgICAgcmV0dXJuOwogCiAgICAgdmFfbGlzdCBhcmdzOwpAQCAtNDMyLDE1
ICs0MzIsMTUgQEAgdm9pZCBXVEZMb2dXaXRoTGV2ZWwoV1RGTG9nQ2hhbm5lbCogY2hhbgogCiBz
dGF0aWMgdm9pZCBXVEZMb2dWYUxpc3QoV1RGTG9nQ2hhbm5lbCogY2hhbm5lbCwgY29uc3QgY2hh
ciogZm9ybWF0LCB2YV9saXN0IGFyZ3MpCiB7Ci0gICAgaWYgKGNoYW5uZWwtPnN0YXRlID09IFdU
RkxvZ0NoYW5uZWxPZmYpCisgICAgaWYgKGNoYW5uZWwtPnN0YXRlID09IFdURkxvZ0NoYW5uZWxT
dGF0ZTo6T2ZmKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoY2hhbm5lbC0+c3RhdGUgPT0g
V1RGTG9nQ2hhbm5lbE9uKSB7CisgICAgaWYgKGNoYW5uZWwtPnN0YXRlID09IFdURkxvZ0NoYW5u
ZWxTdGF0ZTo6T24pIHsKICAgICAgICAgdnByaW50Zl9zdGRlcnJfd2l0aF90cmFpbGluZ19uZXds
aW5lKGZvcm1hdCwgYXJncyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBBU1NFUlQo
Y2hhbm5lbC0+c3RhdGUgPT0gV1RGTG9nQ2hhbm5lbE9uV2l0aEFjY3VtdWxhdGlvbik7CisgICAg
QVNTRVJUKGNoYW5uZWwtPnN0YXRlID09IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T25XaXRoQWNjdW11
bGF0aW9uKTsKIAogICAgIEFMTE9XX05PTkxJVEVSQUxfRk9STUFUX0JFR0lOCiAgICAgU3RyaW5n
IGxvZ2dpbmdTdHJpbmcgPSBXVEY6OmNyZWF0ZVdpdGhGb3JtYXRBbmRBcmd1bWVudHMoZm9ybWF0
LCBhcmdzKTsKQEAgLTQ2Niw3ICs0NjYsNyBAQCB2b2lkIFdURkxvZyhXVEZMb2dDaGFubmVsKiBj
aGFubmVsLCBjb25zCiAKIHZvaWQgV1RGTG9nVmVyYm9zZShjb25zdCBjaGFyKiBmaWxlLCBpbnQg
bGluZSwgY29uc3QgY2hhciogZnVuY3Rpb24sIFdURkxvZ0NoYW5uZWwqIGNoYW5uZWwsIGNvbnN0
IGNoYXIqIGZvcm1hdCwgLi4uKQogewotICAgIGlmIChjaGFubmVsLT5zdGF0ZSAhPSBXVEZMb2dD
aGFubmVsT24pCisgICAgaWYgKGNoYW5uZWwtPnN0YXRlICE9IFdURkxvZ0NoYW5uZWxTdGF0ZTo6
T24pCiAgICAgICAgIHJldHVybjsKIAogICAgIHZhX2xpc3QgYXJnczsKQEAgLTUzMyw5ICs1MzMs
OSBAQCB2b2lkIFdURkluaXRpYWxpemVMb2dDaGFubmVsU3RhdGVzRnJvbVN0CiAgICAgICAgIFZl
Y3RvcjxTdHJpbmc+IGNvbXBvbmVudEluZm8gPSBsb2dMZXZlbENvbXBvbmVudC5zcGxpdCgnPScp
OwogICAgICAgICBTdHJpbmcgY29tcG9uZW50ID0gY29tcG9uZW50SW5mb1swXS5zdHJpcFdoaXRl
U3BhY2UoKTsKIAotICAgICAgICBXVEZMb2dDaGFubmVsU3RhdGUgbG9nQ2hhbm5lbFN0YXRlID0g
V1RGTG9nQ2hhbm5lbE9uOworICAgICAgICBXVEZMb2dDaGFubmVsU3RhdGUgbG9nQ2hhbm5lbFN0
YXRlID0gV1RGTG9nQ2hhbm5lbFN0YXRlOjpPbjsKICAgICAgICAgaWYgKGNvbXBvbmVudC5zdGFy
dHNXaXRoKCctJykpIHsKLSAgICAgICAgICAgIGxvZ0NoYW5uZWxTdGF0ZSA9IFdURkxvZ0NoYW5u
ZWxPZmY7CisgICAgICAgICAgICBsb2dDaGFubmVsU3RhdGUgPSBXVEZMb2dDaGFubmVsU3RhdGU6
Ok9mZjsKICAgICAgICAgICAgIGNvbXBvbmVudCA9IGNvbXBvbmVudC5zdWJzdHJpbmcoMSk7CiAg
ICAgICAgIH0KIApAQCAtNTQ0LDE3ICs1NDQsMTcgQEAgdm9pZCBXVEZJbml0aWFsaXplTG9nQ2hh
bm5lbFN0YXRlc0Zyb21TdAogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAotICAg
ICAgICBXVEZMb2dMZXZlbCBsb2dDaGFubmVsTGV2ZWwgPSBXVEZMb2dMZXZlbEVycm9yOworICAg
ICAgICBXVEZMb2dMZXZlbCBsb2dDaGFubmVsTGV2ZWwgPSBXVEZMb2dMZXZlbDo6RXJyb3I7CiAg
ICAgICAgIGlmIChjb21wb25lbnRJbmZvLnNpemUoKSA+IDEpIHsKICAgICAgICAgICAgIFN0cmlu
ZyBsZXZlbCA9IGNvbXBvbmVudEluZm9bMV0uc3RyaXBXaGl0ZVNwYWNlKCk7CiAgICAgICAgICAg
ICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UobGV2ZWwsICJlcnJvciIpKQotICAg
ICAgICAgICAgICAgIGxvZ0NoYW5uZWxMZXZlbCA9IFdURkxvZ0xldmVsRXJyb3I7CisgICAgICAg
ICAgICAgICAgbG9nQ2hhbm5lbExldmVsID0gV1RGTG9nTGV2ZWw6OkVycm9yOwogICAgICAgICAg
ICAgZWxzZSBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UobGV2ZWwsICJ3YXJuaW5n
IikpCi0gICAgICAgICAgICAgICAgbG9nQ2hhbm5lbExldmVsID0gV1RGTG9nTGV2ZWxXYXJuaW5n
OworICAgICAgICAgICAgICAgIGxvZ0NoYW5uZWxMZXZlbCA9IFdURkxvZ0xldmVsOjpXYXJuaW5n
OwogICAgICAgICAgICAgZWxzZSBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UobGV2
ZWwsICJpbmZvIikpCi0gICAgICAgICAgICAgICAgbG9nQ2hhbm5lbExldmVsID0gV1RGTG9nTGV2
ZWxJbmZvOworICAgICAgICAgICAgICAgIGxvZ0NoYW5uZWxMZXZlbCA9IFdURkxvZ0xldmVsOjpJ
bmZvOwogICAgICAgICAgICAgZWxzZSBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uo
bGV2ZWwsICJkZWJ1ZyIpKQotICAgICAgICAgICAgICAgIGxvZ0NoYW5uZWxMZXZlbCA9IFdURkxv
Z0xldmVsRGVidWc7CisgICAgICAgICAgICAgICAgbG9nQ2hhbm5lbExldmVsID0gV1RGTG9nTGV2
ZWw6OkRlYnVnOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIFdURkxvZ0Fsd2F5
cygiVW5rbm93biBsb2dnaW5nIGxldmVsOiAlcyIsIGxldmVsLnV0ZjgoKS5kYXRhKCkpOwogICAg
ICAgICB9CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5oCShyZXZpc2lvbiAyNDMxMDUpCisrKyBTb3VyY2Uv
V1RGL3d0Zi9Bc3NlcnRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0OCw4ICsxNDgsMTMgQEAg
ZXh0ZXJuICJDIiB7CiAjZGVmaW5lIE5PX1JFVFVSTl9EVUVfVE9fQ1JBU0gKICNlbmRpZgogCi10
eXBlZGVmIGVudW0geyBXVEZMb2dDaGFubmVsT2ZmLCBXVEZMb2dDaGFubmVsT24sIFdURkxvZ0No
YW5uZWxPbldpdGhBY2N1bXVsYXRpb24gfSBXVEZMb2dDaGFubmVsU3RhdGU7Ci10eXBlZGVmIGVu
dW0geyBXVEZMb2dMZXZlbEFsd2F5cywgV1RGTG9nTGV2ZWxFcnJvciwgV1RGTG9nTGV2ZWxXYXJu
aW5nLCBXVEZMb2dMZXZlbEluZm8sIFdURkxvZ0xldmVsRGVidWcgfSBXVEZMb2dMZXZlbDsKKyNp
ZmRlZiBfX2NwbHVzcGx1cworZW51bSBjbGFzcyBXVEZMb2dDaGFubmVsU3RhdGUgOiB1aW50OF90
IHsgT2ZmLCBPbiwgT25XaXRoQWNjdW11bGF0aW9uIH07CitlbnVtIGNsYXNzIFdURkxvZ0xldmVs
IDogdWludDhfdCB7IEFsd2F5cywgRXJyb3IsIFdhcm5pbmcsIEluZm8sIERlYnVnIH07CisjZWxz
ZQordHlwZWRlZiB1aW50OF90IFdURkxvZ0NoYW5uZWxTdGF0ZTsKK3R5cGVkZWYgdWludDhfdCBX
VEZMb2dMZXZlbDsKKyNlbmRpZgogCiB0eXBlZGVmIHN0cnVjdCB7CiAgICAgV1RGTG9nQ2hhbm5l
bFN0YXRlIHN0YXRlOwpAQCAtMTc0LDEwICsxNzksMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgewogI2lm
ICFkZWZpbmVkKERFRklORV9MT0dfQ0hBTk5FTCkKICNpZiBSRUxFQVNFX0xPR19ESVNBQkxFRAog
I2RlZmluZSBERUZJTkVfTE9HX0NIQU5ORUwobmFtZSwgc3Vic3lzdGVtKSBcCi0gICAgV1RGTG9n
Q2hhbm5lbCBMT0dfQ0hBTk5FTChuYW1lKSA9IHsgV1RGTG9nQ2hhbm5lbE9mZiwgI25hbWUsIFdU
RkxvZ0xldmVsRXJyb3IgfTsKKyAgICBXVEZMb2dDaGFubmVsIExPR19DSEFOTkVMKG5hbWUpID0g
eyAoV1RGTG9nQ2hhbm5lbFN0YXRlKTAsICNuYW1lLCAoV1RGTG9nTGV2ZWwpMSB9OwogI2Vsc2UK
ICNkZWZpbmUgREVGSU5FX0xPR19DSEFOTkVMKG5hbWUsIHN1YnN5c3RlbSkgXAotICAgIFdURkxv
Z0NoYW5uZWwgTE9HX0NIQU5ORUwobmFtZSkgPSB7IFdURkxvZ0NoYW5uZWxPZmYsICNuYW1lLCBX
VEZMb2dMZXZlbEVycm9yLCBzdWJzeXN0ZW0sIE9TX0xPR19ERUZBVUxUIH07CisgICAgV1RGTG9n
Q2hhbm5lbCBMT0dfQ0hBTk5FTChuYW1lKSA9IHsgKFdURkxvZ0NoYW5uZWxTdGF0ZSkwLCAjbmFt
ZSwgKFdURkxvZ0xldmVsKTEsIHN1YnN5c3RlbSwgT1NfTE9HX0RFRkFVTFQgfTsKICNlbmRpZgog
I2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL0xvZ2dlci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XVEYvd3RmL0xvZ2dlci5oCShyZXZpc2lvbiAyNDMxMDUpCisrKyBTb3VyY2UvV1RGL3d0
Zi9Mb2dnZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTI2LDQ3ICsxMjYsNDcgQEAgcHVibGljOgog
ICAgICAgICAvLyAgb24gc29tZSBzeXN0ZW1zLCBzbyBkb24ndCBhbGxvdyBpdC4KICAgICAgICAg
VU5VU0VEX1BBUkFNKGNoYW5uZWwpOwogI2Vsc2UKLSAgICAgICAgaWYgKCF3aWxsTG9nKGNoYW5u
ZWwsIFdURkxvZ0xldmVsQWx3YXlzKSkKKyAgICAgICAgaWYgKCF3aWxsTG9nKGNoYW5uZWwsIFdU
RkxvZ0xldmVsOjpBbHdheXMpKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGxvZyhj
aGFubmVsLCBXVEZMb2dMZXZlbEFsd2F5cywgYXJndW1lbnRzLi4uKTsKKyAgICAgICAgbG9nKGNo
YW5uZWwsIFdURkxvZ0xldmVsOjpBbHdheXMsIGFyZ3VtZW50cy4uLik7CiAjZW5kaWYKICAgICB9
CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudHM+CiAgICAgaW5saW5lIHZvaWQg
ZXJyb3IoV1RGTG9nQ2hhbm5lbCYgY2hhbm5lbCwgY29uc3QgQXJndW1lbnRzJi4uLiBhcmd1bWVu
dHMpIGNvbnN0CiAgICAgewotICAgICAgICBpZiAoIXdpbGxMb2coY2hhbm5lbCwgV1RGTG9nTGV2
ZWxFcnJvcikpCisgICAgICAgIGlmICghd2lsbExvZyhjaGFubmVsLCBXVEZMb2dMZXZlbDo6RXJy
b3IpKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGxvZyhjaGFubmVsLCBXVEZMb2dM
ZXZlbEVycm9yLCBhcmd1bWVudHMuLi4pOworICAgICAgICBsb2coY2hhbm5lbCwgV1RGTG9nTGV2
ZWw6OkVycm9yLCBhcmd1bWVudHMuLi4pOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1l
Li4uIEFyZ3VtZW50cz4KICAgICBpbmxpbmUgdm9pZCB3YXJuaW5nKFdURkxvZ0NoYW5uZWwmIGNo
YW5uZWwsIGNvbnN0IEFyZ3VtZW50cyYuLi4gYXJndW1lbnRzKSBjb25zdAogICAgIHsKLSAgICAg
ICAgaWYgKCF3aWxsTG9nKGNoYW5uZWwsIFdURkxvZ0xldmVsV2FybmluZykpCisgICAgICAgIGlm
ICghd2lsbExvZyhjaGFubmVsLCBXVEZMb2dMZXZlbDo6V2FybmluZykpCiAgICAgICAgICAgICBy
ZXR1cm47CiAKLSAgICAgICAgbG9nKGNoYW5uZWwsIFdURkxvZ0xldmVsV2FybmluZywgYXJndW1l
bnRzLi4uKTsKKyAgICAgICAgbG9nKGNoYW5uZWwsIFdURkxvZ0xldmVsOjpXYXJuaW5nLCBhcmd1
bWVudHMuLi4pOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4K
ICAgICBpbmxpbmUgdm9pZCBpbmZvKFdURkxvZ0NoYW5uZWwmIGNoYW5uZWwsIGNvbnN0IEFyZ3Vt
ZW50cyYuLi4gYXJndW1lbnRzKSBjb25zdAogICAgIHsKLSAgICAgICAgaWYgKCF3aWxsTG9nKGNo
YW5uZWwsIFdURkxvZ0xldmVsSW5mbykpCisgICAgICAgIGlmICghd2lsbExvZyhjaGFubmVsLCBX
VEZMb2dMZXZlbDo6SW5mbykpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgbG9nKGNo
YW5uZWwsIFdURkxvZ0xldmVsSW5mbywgYXJndW1lbnRzLi4uKTsKKyAgICAgICAgbG9nKGNoYW5u
ZWwsIFdURkxvZ0xldmVsOjpJbmZvLCBhcmd1bWVudHMuLi4pOwogICAgIH0KIAogICAgIHRlbXBs
YXRlPHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KICAgICBpbmxpbmUgdm9pZCBkZWJ1ZyhXVEZMb2dD
aGFubmVsJiBjaGFubmVsLCBjb25zdCBBcmd1bWVudHMmLi4uIGFyZ3VtZW50cykgY29uc3QKICAg
ICB7Ci0gICAgICAgIGlmICghd2lsbExvZyhjaGFubmVsLCBXVEZMb2dMZXZlbERlYnVnKSkKKyAg
ICAgICAgaWYgKCF3aWxsTG9nKGNoYW5uZWwsIFdURkxvZ0xldmVsOjpEZWJ1ZykpCiAgICAgICAg
ICAgICByZXR1cm47CiAKLSAgICAgICAgbG9nKGNoYW5uZWwsIFdURkxvZ0xldmVsRGVidWcsIGFy
Z3VtZW50cy4uLik7CisgICAgICAgIGxvZyhjaGFubmVsLCBXVEZMb2dMZXZlbDo6RGVidWcsIGFy
Z3VtZW50cy4uLik7CiAgICAgfQogCiAgICAgaW5saW5lIGJvb2wgd2lsbExvZyhjb25zdCBXVEZM
b2dDaGFubmVsJiBjaGFubmVsLCBXVEZMb2dMZXZlbCBsZXZlbCkgY29uc3QKQEAgLTE3NCwxMCAr
MTc0LDEwIEBAIHB1YmxpYzoKICAgICAgICAgaWYgKCFtX2VuYWJsZWQpCiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgaWYgKGxldmVsIDw9IFdURkxvZ0xldmVsRXJyb3IpCisg
ICAgICAgIGlmIChsZXZlbCA8PSBXVEZMb2dMZXZlbDo6RXJyb3IpCiAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKIAotICAgICAgICBpZiAoY2hhbm5lbC5zdGF0ZSA9PSBXVEZMb2dDaGFubmVsT2Zm
IHx8IGxldmVsID4gY2hhbm5lbC5sZXZlbCkKKyAgICAgICAgaWYgKGNoYW5uZWwuc3RhdGUgPT0g
V1RGTG9nQ2hhbm5lbFN0YXRlOjpPZmYgfHwgbGV2ZWwgPiBjaGFubmVsLmxldmVsKQogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgIHJldHVybiBtX2VuYWJsZWQ7CkBAIC0yNDIs
NyArMjQyLDcgQEAgcHJpdmF0ZToKICAgICAgICAgb3NfbG9nKGNoYW5uZWwub3NMb2dDaGFubmVs
LCAiJXtwdWJsaWN9cyIsIGxvZ01lc3NhZ2UudXRmOCgpLmRhdGEoKSk7CiAjZW5kaWYKIAotICAg
ICAgICBpZiAoY2hhbm5lbC5zdGF0ZSA9PSBXVEZMb2dDaGFubmVsT2ZmIHx8IGxldmVsID4gY2hh
bm5lbC5sZXZlbCkKKyAgICAgICAgaWYgKGNoYW5uZWwuc3RhdGUgPT0gV1RGTG9nQ2hhbm5lbFN0
YXRlOjpPZmYgfHwgbGV2ZWwgPiBjaGFubmVsLmxldmVsKQogICAgICAgICAgICAgcmV0dXJuOwog
CiAgICAgICAgIGZvciAoT2JzZXJ2ZXImIG9ic2VydmVyIDogb2JzZXJ2ZXJzKCkpCkluZGV4OiBT
b3VyY2UvV1RGL3d0Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XVEYvd3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAJKHJldmlzaW9uIDI0MzEwNSkK
KysrIFNvdXJjZS9XVEYvd3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM1LDkgKzM1LDkgQEAKIG5hbWVzcGFjZSBXVEYgewogCiAjaWYgUkVMRUFTRV9MT0df
RElTQUJMRUQKLVdURkxvZ0NoYW5uZWwgTG9nTWVtb3J5UHJlc3N1cmUgPSB7IFdURkxvZ0NoYW5u
ZWxPbiwgIk1lbW9yeVByZXNzdXJlIiwgV1RGTG9nTGV2ZWxFcnJvciB9OworV1RGTG9nQ2hhbm5l
bCBMb2dNZW1vcnlQcmVzc3VyZSA9IHsgV1RGTG9nQ2hhbm5lbFN0YXRlOjpPbiwgIk1lbW9yeVBy
ZXNzdXJlIiwgV1RGTG9nTGV2ZWw6OkVycm9yIH07CiAjZWxzZQotV1RGTG9nQ2hhbm5lbCBMb2dN
ZW1vcnlQcmVzc3VyZSA9IHsgV1RGTG9nQ2hhbm5lbE9uLCAiTWVtb3J5UHJlc3N1cmUiLCBXVEZM
b2dMZXZlbEVycm9yLCBMT0dfQ0hBTk5FTF9XRUJLSVRfU1VCU1lTVEVNLCBPU19MT0dfREVGQVVM
VCB9OworV1RGTG9nQ2hhbm5lbCBMb2dNZW1vcnlQcmVzc3VyZSA9IHsgV1RGTG9nQ2hhbm5lbFN0
YXRlOjpPbiwgIk1lbW9yeVByZXNzdXJlIiwgV1RGTG9nTGV2ZWw6OkVycm9yLCBMT0dfQ0hBTk5F
TF9XRUJLSVRfU1VCU1lTVEVNLCBPU19MT0dfREVGQVVMVCB9OwogI2VuZGlmCiAKIFdURl9FWFBP
UlRfUFJJVkFURSBib29sIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6UmVsaWVmTG9nZ2VyOjpzX2xv
Z2dpbmdFbmFibGVkID0gZmFsc2U7CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9SZWZDb3VudGVkTGVh
a0NvdW50ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1JlZkNvdW50ZWRMZWFr
Q291bnRlci5jcHAJKHJldmlzaW9uIDI0MzEwNSkKKysrIFNvdXJjZS9XVEYvd3RmL1JlZkNvdW50
ZWRMZWFrQ291bnRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDkgKzQwLDkgQEAgdm9pZCBS
ZWZDb3VudGVkTGVha0NvdW50ZXI6OmRlY3JlbWVudCgpIAogCiAjZGVmaW5lIExPR19DSEFOTkVM
X1BSRUZJWCBMb2cKICNpZiBSRUxFQVNFX0xPR19ESVNBQkxFRAotc3RhdGljIFdURkxvZ0NoYW5u
ZWwgTG9nUmVmQ291bnRlZExlYWtzID0geyBXVEZMb2dDaGFubmVsT24sICJSZWZDb3VudGVkTGVh
a3MiLCBXVEZMb2dMZXZlbEVycm9yIH07CitzdGF0aWMgV1RGTG9nQ2hhbm5lbCBMb2dSZWZDb3Vu
dGVkTGVha3MgPSB7IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T24sICJSZWZDb3VudGVkTGVha3MiLCBX
VEZMb2dMZXZlbDo6RXJyb3IgfTsKICNlbHNlCi1zdGF0aWMgV1RGTG9nQ2hhbm5lbCBMb2dSZWZD
b3VudGVkTGVha3MgPSB7IFdURkxvZ0NoYW5uZWxPbiwgIlJlZkNvdW50ZWRMZWFrcyIsIFdURkxv
Z0xldmVsRXJyb3IsIExPR19DSEFOTkVMX1dFQktJVF9TVUJTWVNURU0sIE9TX0xPR19ERUZBVUxU
IH07CitzdGF0aWMgV1RGTG9nQ2hhbm5lbCBMb2dSZWZDb3VudGVkTGVha3MgPSB7IFdURkxvZ0No
YW5uZWxTdGF0ZTo6T24sICJSZWZDb3VudGVkTGVha3MiLCBXVEZMb2dMZXZlbDo6RXJyb3IsIExP
R19DSEFOTkVMX1dFQktJVF9TVUJTWVNURU0sIE9TX0xPR19ERUZBVUxUIH07CiAjZW5kaWYKIAog
dHlwZWRlZiBIYXNoQ291bnRlZFNldDxjb25zdCBjaGFyKiwgUHRySGFzaDxjb25zdCBjaGFyKj4+
IFJlYXNvblNldDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0MzEwNSkKKysrIFNvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBACisyMDE5LTAz
LTE4ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAg
ICAgTWFrZSBXVEZMb2dDaGFubmVsU3RhdGUgYW5kIFdURkxvZ0xldmVsIGVudW0gY2xhc3Nlcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1OTA0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgICogTW9kdWxlcy9t
ZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cmVtb3ZlU2Ft
cGxlc0Zyb21UcmFja0J1ZmZlcik6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaWJX
ZWJSVENNZWRpYUVuZHBvaW50OjpPblN0YXRzRGVsaXZlcmVkKToKKyAgICAgICAgKFdlYkNvcmU6
OkxpYldlYlJUQ01lZGlhRW5kcG9pbnQ6OnN0YXRzTG9nSW50ZXJ2YWwgY29uc3QpOgorICAgICAg
ICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjptZXNzYWdlTGV2ZWxGcm9t
V1RGTG9nTGV2ZWwpOgorICAgICAgICAqIGh0bWwvRlRQRGlyZWN0b3J5RG9jdW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RlRQRGlyZWN0b3J5RG9jdW1lbnQ6OkZUUERpcmVjdG9yeURvY3Vt
ZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2Vla1Rhc2spOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TE1lZGlhRWxlbWVudDo6c2VsZWN0TmV4dFNvdXJjZUNoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6OnNvdXJjZVdhc0FkZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxNZWRpYUVsZW1lbnQ6OnNvdXJjZVdhc1JlbW92ZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9h
Z2VudHMvV2ViQ29uc29sZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvbnNvbGVB
Z2VudDo6Z2V0TG9nZ2luZ0NoYW5uZWxzKToKKyAgICAgICAgKFdlYkNvcmU6OmNoYW5uZWxDb25m
aWd1cmF0aW9uRm9yU3RyaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2dnaW5nLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmlzTG9nQ2hhbm5lbEVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6
c2V0TG9nQ2hhbm5lbFRvQWNjdW11bGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToK
KyAgICAgICAgKC1bV2ViQ29yZUFWRk1vdmllT2JzZXJ2ZXIgb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0
aDpvZk9iamVjdDpjaGFuZ2U6Y29udGV4dDpdKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMu
bW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akM6OmVucXVldWVWaWRlb1NhbXBsZSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmluaXRp
YWxpemVQZWVyQ29ubmVjdGlvbkZhY3RvcnlBbmRUaHJlYWRzKToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbXBvc2l0
aW5nTG9nRW5hYmxlZCk6CisKIDIwMTktMDMtMTggIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZp
ZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBbV0hMU0xdIEhvb2sgdXAgdGhlIGNvbXBpbGVyIHRv
IG91ciBXZWJHUFUgaW1wbGVtZW50YXRpb24KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAJKHJldmlzaW9uIDI0MzEwNSkK
KysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNzQxLDcgKzc0MSw3IEBAIHN0YXRpYyBQbGF0Zm9ybVRpbWVSYW5n
ZXMgcmVtb3ZlU2FtcGxlc0YKICAgICBzaXplX3QgYnl0ZXNSZW1vdmVkID0gMDsKICAgICBhdXRv
IGxvZ0lkZW50aWZpZXIgPSBXVEY6OkxvZ2dlcjo6TG9nU2l0ZUlkZW50aWZpZXIoYnVmZmVyLT5s
b2dDbGFzc05hbWUoKSwgbG9nUHJlZml4LCBidWZmZXItPmxvZ0lkZW50aWZpZXIoKSk7CiAgICAg
YXV0byYgbG9nZ2VyID0gYnVmZmVyLT5sb2dnZXIoKTsKLSAgICBhdXRvIHdpbGxMb2cgPSBsb2dn
ZXIud2lsbExvZyhidWZmZXItPmxvZ0NoYW5uZWwoKSwgV1RGTG9nTGV2ZWxEZWJ1Zyk7CisgICAg
YXV0byB3aWxsTG9nID0gbG9nZ2VyLndpbGxMb2coYnVmZmVyLT5sb2dDaGFubmVsKCksIFdURkxv
Z0xldmVsOjpEZWJ1Zyk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShsb2dQcmVmaXgpOwogICAg
IFVOVVNFRF9QQVJBTShidWZmZXIpOwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRD
TWVkaWFFbmRwb2ludC5jcHAJKHJldmlzaW9uIDI0MzEwNSkKKysrIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC04NjUsNyArODY1LDcgQEAgdm9pZCBMaWJXZWJSVENNZWRpYUVuZHBv
aW50OjpPblN0YXRzRGVsaQogICAgICAgICB9CiAKICAgICAgICAgZm9yIChhdXRvIGl0ZXJhdG9y
ID0gcmVwb3J0LT5iZWdpbigpOyBpdGVyYXRvciAhPSByZXBvcnQtPmVuZCgpOyArK2l0ZXJhdG9y
KSB7Ci0gICAgICAgICAgICBpZiAobG9nZ2VyKCkud2lsbExvZyhsb2dDaGFubmVsKCksIFdURkxv
Z0xldmVsRGVidWcpKSB7CisgICAgICAgICAgICBpZiAobG9nZ2VyKCkud2lsbExvZyhsb2dDaGFu
bmVsKCksIFdURkxvZ0xldmVsOjpEZWJ1ZykpIHsKICAgICAgICAgICAgICAgICAvLyBTdGF0cyBh
cmUgdmVyeSB2ZXJib3NlLCBsZXQncyBvbmx5IGRpc3BsYXkgdGhlbSBpbiBpbnNwZWN0b3IgY29u
c29sZSBpbiB2ZXJib3NlIG1vZGUuCiAgICAgICAgICAgICAgICAgbG9nZ2VyKCkuZGVidWcoTG9n
V2ViUlRDLAogICAgICAgICAgICAgICAgICAgICBMb2dnZXI6OkxvZ1NpdGVJZGVudGlmaWVyKCJM
aWJXZWJSVENNZWRpYUVuZHBvaW50IiwgIk9uU3RhdHNEZWxpdmVyZWQiLCBsb2dJZGVudGlmaWVy
KCkpLApAQCAtOTA0LDcgKzkwNCw3IEBAIFdURkxvZ0NoYW5uZWwmIExpYldlYlJUQ01lZGlhRW5k
cG9pbnQ6OmwKIAogU2Vjb25kcyBMaWJXZWJSVENNZWRpYUVuZHBvaW50OjpzdGF0c0xvZ0ludGVy
dmFsKGludDY0X3QgcmVwb3J0VGltZXN0YW1wKSBjb25zdAogewotICAgIGlmIChsb2dnZXIoKS53
aWxsTG9nKGxvZ0NoYW5uZWwoKSwgV1RGTG9nTGV2ZWxJbmZvKSkKKyAgICBpZiAobG9nZ2VyKCku
d2lsbExvZyhsb2dDaGFubmVsKCksIFdURkxvZ0xldmVsOjpJbmZvKSkKICAgICAgICAgcmV0dXJu
IDJfczsKIAogICAgIGlmIChyZXBvcnRUaW1lc3RhbXAgLSBtX3N0YXRzRmlyc3REZWxpdmVyZWRU
aW1lc3RhbXAgPiAxNTAwMDAwMCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkocmV2aXNp
b24gMjQzMTA1KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtODU0NywxOCArODU0NywxOCBAQCBzdGF0aWMgTWVzc2FnZVNvdXJjZSBtZXNzYWdl
U291cmNlRm9yV1RGCiBzdGF0aWMgTWVzc2FnZUxldmVsIG1lc3NhZ2VMZXZlbEZyb21XVEZMb2dM
ZXZlbChXVEZMb2dMZXZlbCBsZXZlbCkKIHsKICAgICBzd2l0Y2ggKGxldmVsKSB7Ci0gICAgY2Fz
ZSBXVEZMb2dMZXZlbEFsd2F5czoKKyAgICBjYXNlIFdURkxvZ0xldmVsOjpBbHdheXM6CiAgICAg
ICAgIHJldHVybiBNZXNzYWdlTGV2ZWw6OkxvZzsKLSAgICBjYXNlIFdURkxvZ0xldmVsRXJyb3I6
CisgICAgY2FzZSBXVEZMb2dMZXZlbDo6RXJyb3I6CiAgICAgICAgIHJldHVybiBNZXNzYWdlTGV2
ZWw6OkVycm9yOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFdURkxvZ0xldmVsV2FybmluZzoK
KyAgICBjYXNlIFdURkxvZ0xldmVsOjpXYXJuaW5nOgogICAgICAgICByZXR1cm4gTWVzc2FnZUxl
dmVsOjpXYXJuaW5nOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFdURkxvZ0xldmVsSW5mbzoK
KyAgICBjYXNlIFdURkxvZ0xldmVsOjpJbmZvOgogICAgICAgICByZXR1cm4gTWVzc2FnZUxldmVs
OjpJbmZvOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFdURkxvZ0xldmVsRGVidWc6CisgICAg
Y2FzZSBXVEZMb2dMZXZlbDo6RGVidWc6CiAgICAgICAgIHJldHVybiBNZXNzYWdlTGV2ZWw6OkRl
YnVnOwogICAgICAgICBicmVhazsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0ZU
UERpcmVjdG9yeURvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1s
L0ZUUERpcmVjdG9yeURvY3VtZW50LmNwcAkocmV2aXNpb24gMjQzMTA1KQorKysgU291cmNlL1dl
YkNvcmUvaHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQy
NSw3ICs0MjUsNyBAQCBGVFBEaXJlY3RvcnlEb2N1bWVudDo6RlRQRGlyZWN0b3J5RG9jdW1lCiAg
ICAgOiBIVE1MRG9jdW1lbnQoZnJhbWUsIHVybCkKIHsKICNpZiAhTE9HX0RJU0FCTEVECi0gICAg
TG9nRlRQLnN0YXRlID0gV1RGTG9nQ2hhbm5lbE9uOworICAgIExvZ0ZUUC5zdGF0ZSA9IFdURkxv
Z0NoYW5uZWxTdGF0ZTo6T247CiAjZW5kaWYKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwCShyZXZpc2lvbiAyNDMxMDUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMDc1LDcgKzMw
NzUsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNlZWtUYXNrKCkKICAgICAvLyB0aW1lIHNj
YWxlLCB3ZSB3aWxsIGFzayB0aGUgbWVkaWEgZW5naW5lIHRvICJzZWVrIiB0byB0aGUgY3VycmVu
dCBtb3ZpZSB0aW1lLCB3aGljaCBtYXkgYmUgYSBub29wIGFuZAogICAgIC8vIG5vdCBnZW5lcmF0
ZSBhIHRpbWVjaGFuZ2VkIGNhbGxiYWNrLiBUaGlzIG1lYW5zIG1fc2Vla2luZyB3aWxsIG5ldmVy
IGJlIGNsZWFyZWQgYW5kIHdlIHdpbGwgbmV2ZXIKICAgICAvLyBmaXJlIGEgJ3NlZWtlZCcgZXZl
bnQuCi0gICAgaWYgKHdpbGxMb2coV1RGTG9nTGV2ZWxEZWJ1ZykpIHsKKyAgICBpZiAod2lsbExv
ZyhXVEZMb2dMZXZlbDo6RGVidWcpKSB7CiAgICAgICAgIE1lZGlhVGltZSBtZWRpYVRpbWUgPSBt
X3BsYXllci0+bWVkaWFUaW1lRm9yVGltZVZhbHVlKHRpbWUpOwogICAgICAgICBpZiAodGltZSAh
PSBtZWRpYVRpbWUpCiAgICAgICAgICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSLCB0aW1lLCAi
IG1lZGlhIHRpbWVsaW5lIGVxdWl2YWxlbnQgaXMgIiwgbWVkaWFUaW1lKTsKQEAgLTQ2NTEsNyAr
NDY1MSw3IEBAIFVSTCBIVE1MTWVkaWFFbGVtZW50OjpzZWxlY3ROZXh0U291cmNlQ2gKICAgICBV
TlVTRURfUEFSQU0oa2V5U3lzdGVtKTsKIAogICAgIC8vIERvbid0IGxvZyBpZiB0aGlzIHdhcyBq
dXN0IGNhbGxlZCB0byBmaW5kIG91dCBpZiB0aGVyZSBhcmUgYW55IHZhbGlkIDxzb3VyY2U+IGVs
ZW1lbnRzLgotICAgIGJvb2wgc2hvdWxkTG9nID0gd2lsbExvZyhXVEZMb2dMZXZlbERlYnVnKSAm
JiBhY3Rpb25JZkludmFsaWQgIT0gRG9Ob3RoaW5nOworICAgIGJvb2wgc2hvdWxkTG9nID0gd2ls
bExvZyhXVEZMb2dMZXZlbDo6RGVidWcpICYmIGFjdGlvbklmSW52YWxpZCAhPSBEb05vdGhpbmc7
CiAgICAgaWYgKHNob3VsZExvZykKICAgICAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUik7CiAK
QEAgLTQ3NTAsNyArNDc1MCw3IEBAIENoZWNrQWdhaW46CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6c291cmNlV2FzQWRkZWQoSFRNTFNvdXJjZUVsZW1lbnQmIHNvdXJjZSkKIHsKLSAgICBpZiAo
d2lsbExvZyhXVEZMb2dMZXZlbEluZm8pICYmIHNvdXJjZS5oYXNUYWdOYW1lKHNvdXJjZVRhZykp
IHsKKyAgICBpZiAod2lsbExvZyhXVEZMb2dMZXZlbDo6SW5mbykgJiYgc291cmNlLmhhc1RhZ05h
bWUoc291cmNlVGFnKSkgewogICAgICAgICBVUkwgdXJsID0gc291cmNlLmdldE5vbkVtcHR5VVJM
QXR0cmlidXRlKHNyY0F0dHIpOwogICAgICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSLCAiJ3Ny
YycgaXMgIiwgdXJsKTsKICAgICB9CkBAIC00ODAyLDcgKzQ4MDIsNyBAQCB2b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6OnNvdXJjZVdhc0FkZGVkKEhUCiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c291
cmNlV2FzUmVtb3ZlZChIVE1MU291cmNlRWxlbWVudCYgc291cmNlKQogewotICAgIGlmICh3aWxs
TG9nKFdURkxvZ0xldmVsSW5mbykgJiYgc291cmNlLmhhc1RhZ05hbWUoc291cmNlVGFnKSkgewor
ICAgIGlmICh3aWxsTG9nKFdURkxvZ0xldmVsOjpJbmZvKSAmJiBzb3VyY2UuaGFzVGFnTmFtZShz
b3VyY2VUYWcpKSB7CiAgICAgICAgIFVSTCB1cmwgPSBzb3VyY2UuZ2V0Tm9uRW1wdHlVUkxBdHRy
aWJ1dGUoc3JjQXR0cik7CiAgICAgICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsICInc3JjJyBp
cyAiLCB1cmwpOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMv
V2ViQ29uc29sZUFnZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvYWdlbnRzL1dlYkNvbnNvbGVBZ2VudC5jcHAJKHJldmlzaW9uIDI0MzEwNSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvV2ViQ29uc29sZUFnZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNjgsMTUgKzY4LDE1IEBAIHZvaWQgV2ViQ29uc29sZUFnZW50OjpnZXRMb2dnaW5n
Q2hhbm5lbHMKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBhdXRvIGxldmVsID0gSW5z
cGVjdG9yOjpQcm90b2NvbDo6Q29uc29sZTo6Q2hhbm5lbExldmVsOjpPZmY7Ci0gICAgICAgIGlm
IChsb2dDaGFubmVsLT5zdGF0ZSAhPSBXVEZMb2dDaGFubmVsT2ZmKSB7CisgICAgICAgIGlmIChs
b2dDaGFubmVsLT5zdGF0ZSAhPSBXVEZMb2dDaGFubmVsU3RhdGU6Ok9mZikgewogICAgICAgICAg
ICAgc3dpdGNoIChsb2dDaGFubmVsLT5sZXZlbCkgewotICAgICAgICAgICAgY2FzZSBXVEZMb2dM
ZXZlbEFsd2F5czoKLSAgICAgICAgICAgIGNhc2UgV1RGTG9nTGV2ZWxFcnJvcjoKLSAgICAgICAg
ICAgIGNhc2UgV1RGTG9nTGV2ZWxXYXJuaW5nOgotICAgICAgICAgICAgY2FzZSBXVEZMb2dMZXZl
bEluZm86CisgICAgICAgICAgICBjYXNlIFdURkxvZ0xldmVsOjpBbHdheXM6CisgICAgICAgICAg
ICBjYXNlIFdURkxvZ0xldmVsOjpFcnJvcjoKKyAgICAgICAgICAgIGNhc2UgV1RGTG9nTGV2ZWw6
Oldhcm5pbmc6CisgICAgICAgICAgICBjYXNlIFdURkxvZ0xldmVsOjpJbmZvOgogICAgICAgICAg
ICAgICAgIGxldmVsID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6Q29uc29sZTo6Q2hhbm5lbExldmVs
OjpCYXNpYzsKICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgV1RGTG9n
TGV2ZWxEZWJ1ZzoKKyAgICAgICAgICAgIGNhc2UgV1RGTG9nTGV2ZWw6OkRlYnVnOgogICAgICAg
ICAgICAgICAgIGxldmVsID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6Q29uc29sZTo6Q2hhbm5lbExl
dmVsOjpWZXJib3NlOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpAQCAt
OTYsMTQgKzk2LDE0IEBAIHN0YXRpYyBPcHRpb25hbDxzdGQ6OnBhaXI8V1RGTG9nQ2hhbm5lbFMK
ICAgICBXVEZMb2dMZXZlbCBsZXZlbDsKIAogICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNl
KGxldmVsU3RyaW5nLCAib2ZmIikpIHsKLSAgICAgICAgc3RhdGUgPSBXVEZMb2dDaGFubmVsT2Zm
OwotICAgICAgICBsZXZlbCA9IFdURkxvZ0xldmVsRXJyb3I7CisgICAgICAgIHN0YXRlID0gV1RG
TG9nQ2hhbm5lbFN0YXRlOjpPZmY7CisgICAgICAgIGxldmVsID0gV1RGTG9nTGV2ZWw6OkVycm9y
OwogICAgIH0gZWxzZSB7Ci0gICAgICAgIHN0YXRlID0gV1RGTG9nQ2hhbm5lbE9uOworICAgICAg
ICBzdGF0ZSA9IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T247CiAgICAgICAgIGlmIChlcXVhbElnbm9y
aW5nQVNDSUlDYXNlKGxldmVsU3RyaW5nLCAiYmFzaWMiKSkKLSAgICAgICAgICAgIGxldmVsID0g
V1RGTG9nTGV2ZWxXYXJuaW5nOworICAgICAgICAgICAgbGV2ZWwgPSBXVEZMb2dMZXZlbDo6V2Fy
bmluZzsKICAgICAgICAgZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShsZXZlbFN0cmlu
ZywgInZlcmJvc2UiKSkKLSAgICAgICAgICAgIGxldmVsID0gV1RGTG9nTGV2ZWxEZWJ1ZzsKKyAg
ICAgICAgICAgIGxldmVsID0gV1RGTG9nTGV2ZWw6OkRlYnVnOwogICAgICAgICBlbHNlCiAgICAg
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0xvZ2dpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0xvZ2dpbmcuY3BwCShyZXZpc2lvbiAyNDMxMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9Mb2dnaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTQsNyArNTQsNyBAQCBib29sIGlz
TG9nQ2hhbm5lbEVuYWJsZWQoY29uc3QgU3RyaW5nJiBuCiAgICAgV1RGTG9nQ2hhbm5lbCogY2hh
bm5lbCA9IFdURkxvZ0NoYW5uZWxCeU5hbWUobG9nQ2hhbm5lbHMsIGxvZ0NoYW5uZWxDb3VudCwg
bmFtZS51dGY4KCkuZGF0YSgpKTsKICAgICBpZiAoIWNoYW5uZWwpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICByZXR1cm4gY2hhbm5lbC0+c3RhdGUgIT0gV1RGTG9nQ2hhbm5lbE9mZjsKKyAg
ICByZXR1cm4gY2hhbm5lbC0+c3RhdGUgIT0gV1RGTG9nQ2hhbm5lbFN0YXRlOjpPZmY7CiB9CiAK
IHN0YXRpYyBib29sIGxvZ0NoYW5uZWxzTmVlZEluaXRpYWxpemF0aW9uID0gdHJ1ZTsKQEAgLTY1
LDcgKzY1LDcgQEAgdm9pZCBzZXRMb2dDaGFubmVsVG9BY2N1bXVsYXRlKGNvbnN0IFN0cgogICAg
IGlmICghY2hhbm5lbCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgY2hhbm5lbC0+c3RhdGUgPSBX
VEZMb2dDaGFubmVsT25XaXRoQWNjdW11bGF0aW9uOworICAgIGNoYW5uZWwtPnN0YXRlID0gV1RG
TG9nQ2hhbm5lbFN0YXRlOjpPbldpdGhBY2N1bXVsYXRpb247CiAgICAgbG9nQ2hhbm5lbHNOZWVk
SW5pdGlhbGl6YXRpb24gPSB0cnVlOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0J
KHJldmlzaW9uIDI0MzEwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0JKHdv
cmtpbmcgY29weSkKQEAgLTM1NTEsNyArMzU1MSw3IEBAIC0gKHZvaWQpb2JzZXJ2ZVZhbHVlRm9y
S2V5UGF0aDprZXlQYXRoIG8KICAgICAgICAgfQogCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVE
Ci0gICAgICAgIGlmIChwbGF5ZXItPmxvZ2dlcigpLndpbGxMb2cocGxheWVyLT5sb2dDaGFubmVs
KCksIFdURkxvZ0xldmVsRGVidWcpICYmICEoW2tleVBhdGggaXNFcXVhbFRvU3RyaW5nOkAibG9h
ZGVkVGltZVJhbmdlcyJdIHx8IFtrZXlQYXRoIGlzRXF1YWxUb1N0cmluZzpAInNlZWthYmxlVGlt
ZVJhbmdlcyJdKSkgeworICAgICAgICBpZiAocGxheWVyLT5sb2dnZXIoKS53aWxsTG9nKHBsYXll
ci0+bG9nQ2hhbm5lbCgpLCBXVEZMb2dMZXZlbDo6RGVidWcpICYmICEoW2tleVBhdGggaXNFcXVh
bFRvU3RyaW5nOkAibG9hZGVkVGltZVJhbmdlcyJdIHx8IFtrZXlQYXRoIGlzRXF1YWxUb1N0cmlu
ZzpAInNlZWthYmxlVGltZVJhbmdlcyJdKSkgewogICAgICAgICAgICAgYXV0byBpZGVudGlmaWVy
ID0gTG9nZ2VyOjpMb2dTaXRlSWRlbnRpZmllcigiTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uIiwgIm9ic2VydmVWYWx1ZUZvcktleVBhdGgiLCBwbGF5ZXItPmxvZ0lkZW50aWZpZXIoKSk7
CiAKICAgICAgICAgICAgIGlmIChzaG91bGRMb2dWYWx1ZSkgewpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQy5tbQkocmV2aXNpb24gMjQzMTA1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zODUsNyArMzg1LDcgQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iagogICAgIHNhbXBsZS5vZmZzZXRUaW1lc3Rh
bXBzQnkodGltZWxpbmVPZmZzZXQpOwogICAgIERFQlVHX0xPRyhMT0dJREVOVElGSUVSLCAidXBk
YXRlZCBzYW1wbGUgPSAiLCBzYW1wbGUpOwogCi0gICAgaWYgKFdJTExfTE9HKFdURkxvZ0xldmVs
RGVidWcpKSB7CisgICAgaWYgKFdJTExfTE9HKFdURkxvZ0xldmVsOjpEZWJ1ZykpIHsKICAgICAg
ICAgTWVkaWFUaW1lIG5vdyA9IHN0cmVhbVRpbWUoKTsKICAgICAgICAgZG91YmxlIGRlbHRhID0g
KHNhbXBsZS5wcmVzZW50YXRpb25UaW1lKCkgLSBub3cpLnRvRG91YmxlKCk7CiAgICAgICAgIGlm
IChkZWx0YSA8IDApCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3Jh
bS5jcHAJKHJldmlzaW9uIDI0MzEwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogc3RhdGljIGlubGluZSBib29s
IGNvbXBvc2l0aW5nTG9nRW5hYmxlZCgpCiB7CiAjaWYgIUxPR19ESVNBQkxFRAotICAgIHJldHVy
biBMb2dDb21wb3NpdGluZy5zdGF0ZSA9PSBXVEZMb2dDaGFubmVsT247CisgICAgcmV0dXJuIExv
Z0NvbXBvc2l0aW5nLnN0YXRlID09IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T247CiAjZWxzZQogICAg
IHJldHVybiBmYWxzZTsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJv
dmlkZXIuY3BwCShyZXZpc2lvbiAyNDMxMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xNDIsMjUgKzE0MiwyNSBAQCBzdGF0aWMgcnRjOjpMb2dnaW5nU2V2ZXJpdHkgY29tcHV0
ZUxvZ0xlCiB7CiAjaWYgZGVmaW5lZChOREVCVUcpCiAjaWYgIUxPR19ESVNBQkxFRCB8fCAhUkVM
RUFTRV9MT0dfRElTQUJMRUQKLSAgICBpZiAoTG9nV2ViUlRDLnN0YXRlICE9IFdURkxvZ0NoYW5u
ZWxPbikKKyAgICBpZiAoTG9nV2ViUlRDLnN0YXRlICE9IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T24p
CiAgICAgICAgIHJldHVybiBydGM6OkxTX0VSUk9SOwogCiAgICAgc3dpdGNoIChMb2dXZWJSVEMu
bGV2ZWwpIHsKLSAgICBjYXNlIFdURkxvZ0xldmVsQWx3YXlzOgotICAgIGNhc2UgV1RGTG9nTGV2
ZWxFcnJvcjoKKyAgICBjYXNlIFdURkxvZ0xldmVsOjpBbHdheXM6CisgICAgY2FzZSBXVEZMb2dM
ZXZlbDo6RXJyb3I6CiAgICAgICAgIHJldHVybiBydGM6OkxTX0VSUk9SOwotICAgIGNhc2UgV1RG
TG9nTGV2ZWxXYXJuaW5nOgorICAgIGNhc2UgV1RGTG9nTGV2ZWw6Oldhcm5pbmc6CiAgICAgICAg
IHJldHVybiBydGM6OkxTX1dBUk5JTkc7Ci0gICAgY2FzZSBXVEZMb2dMZXZlbEluZm86CisgICAg
Y2FzZSBXVEZMb2dMZXZlbDo6SW5mbzoKICAgICAgICAgcmV0dXJuIHJ0Yzo6TFNfSU5GTzsKLSAg
ICBjYXNlIFdURkxvZ0xldmVsRGVidWc6CisgICAgY2FzZSBXVEZMb2dMZXZlbDo6RGVidWc6CiAg
ICAgICAgIHJldHVybiBydGM6OkxTX1ZFUkJPU0U7CiAgICAgfQogI2Vsc2UKICAgICByZXR1cm4g
cnRjOjpMU19OT05FOwogI2VuZGlmCiAjZWxzZQotICAgIHJldHVybiAoTG9nV2ViUlRDLnN0YXRl
ICE9IFdURkxvZ0NoYW5uZWxPbikgPyBydGM6OkxTX1dBUk5JTkcgOiBydGM6OkxTX0lORk87Cisg
ICAgcmV0dXJuIChMb2dXZWJSVEMuc3RhdGUgIT0gV1RGTG9nQ2hhbm5lbFN0YXRlOjpPbikgPyBy
dGM6OkxTX1dBUk5JTkcgOiBydGM6OkxTX0lORk87CiAjZW5kaWYKIH0KIApJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9B
VlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQkocmV2aXNpb24gMjQzMTA1KQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC03NDUsNyArNzQ1LDcgQEAgLSAodm9pZClvYnNlcnZlVmFsdWVGb3JLZXlQ
YXRoOmtleVBhdGggbwogICAgIGJvb2wgd2lsbENoYW5nZSA9IFtbY2hhbmdlIHZhbHVlRm9yS2V5
Ok5TS2V5VmFsdWVDaGFuZ2VOb3RpZmljYXRpb25Jc1ByaW9yS2V5XSBib29sVmFsdWVdOwogCiAj
aWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECi0gICAgaWYgKG1fY2FsbGJhY2stPmxvZ2dlclB0cigp
ICYmIG1fY2FsbGJhY2stPmxvZ2dlcigpLndpbGxMb2cobV9jYWxsYmFjay0+bG9nQ2hhbm5lbCgp
LCBXVEZMb2dMZXZlbERlYnVnKSkgeworICAgIGlmIChtX2NhbGxiYWNrLT5sb2dnZXJQdHIoKSAm
JiBtX2NhbGxiYWNrLT5sb2dnZXIoKS53aWxsTG9nKG1fY2FsbGJhY2stPmxvZ0NoYW5uZWwoKSwg
V1RGTG9nTGV2ZWw6OkRlYnVnKSkgewogICAgICAgICBhdXRvIGlkZW50aWZpZXIgPSBMb2dnZXI6
OkxvZ1NpdGVJZGVudGlmaWVyKCJBVlZpZGVvQ2FwdHVyZVNvdXJjZSIsICJvYnNlcnZlVmFsdWVG
b3JLZXlQYXRoIiwgbV9jYWxsYmFjay0+bG9nSWRlbnRpZmllcigpKTsKIAogICAgICAgICBSZXRh
aW5QdHI8TlNTdHJpbmc+IHZhbHVlU3RyaW5nID0gYWRvcHROUyhbW05TU3RyaW5nIGFsbG9jXSBp
bml0V2l0aEZvcm1hdDpAIiVAIiwgbmV3VmFsdWVdKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvc291cC9Tb3VwTmV0d29ya1Nlc3Npb24uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Tb3VwTmV0d29ya1Nlc3Npb24u
Y3BwCShyZXZpc2lvbiAyNDMxMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L3NvdXAvU291cE5ldHdvcmtTZXNzaW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU2LDcgKzE1
Niw3IEBAIFNvdXBOZXR3b3JrU2Vzc2lvbjo6flNvdXBOZXR3b3JrU2Vzc2lvbigKIHZvaWQgU291
cE5ldHdvcmtTZXNzaW9uOjpzZXR1cExvZ2dlcigpCiB7CiAjaWYgIUxPR19ESVNBQkxFRAotICAg
IGlmIChMb2dOZXR3b3JrLnN0YXRlICE9IFdURkxvZ0NoYW5uZWxPbiB8fCBzb3VwX3Nlc3Npb25f
Z2V0X2ZlYXR1cmUobV9zb3VwU2Vzc2lvbi5nZXQoKSwgU09VUF9UWVBFX0xPR0dFUikpCisgICAg
aWYgKExvZ05ldHdvcmsuc3RhdGUgIT0gV1RGTG9nQ2hhbm5lbFN0YXRlOjpPbiB8fCBzb3VwX3Nl
c3Npb25fZ2V0X2ZlYXR1cmUobV9zb3VwU2Vzc2lvbi5nZXQoKSwgU09VUF9UWVBFX0xPR0dFUikp
CiAgICAgICAgIHJldHVybjsKIAogICAgIEdSZWZQdHI8U291cExvZ2dlcj4gbG9nZ2VyID0gYWRv
cHRHUmVmKHNvdXBfbG9nZ2VyX25ldyhTT1VQX0xPR0dFUl9MT0dfQk9EWSwgLTEpKTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3Iu
Y3BwCShyZXZpc2lvbiAyNDMxMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjczLDcgKzI3Myw3IEBAIHN0
cnVjdCBSZW5kZXJMYXllckNvbXBvc2l0b3I6Ok92ZXJsYXBFeHQKICNpZiAhTE9HX0RJU0FCTEVE
CiBzdGF0aWMgaW5saW5lIGJvb2wgY29tcG9zaXRpbmdMb2dFbmFibGVkKCkKIHsKLSAgICByZXR1
cm4gTG9nQ29tcG9zaXRpbmcuc3RhdGUgPT0gV1RGTG9nQ2hhbm5lbE9uOworICAgIHJldHVybiBM
b2dDb21wb3NpdGluZy5zdGF0ZSA9PSBXVEZMb2dDaGFubmVsU3RhdGU6Ok9uOwogfQogI2VuZGlm
CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDMxMDUpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE5LTAzLTE4ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTWFrZSBXVEZM
b2dDaGFubmVsU3RhdGUgYW5kIFdURkxvZ0xldmVsIGVudW0gY2xhc3NlcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1OTA0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUv
TmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtDYWNoZTo6bG9nU3BlY3VsYXRpdmVMb2FkaW5nRGlhZ25vc3RpY01lc3NhZ2UpOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDUHJvdmlkZXI6Ok5ldHdvcmtSVENQcm92aWRlcik6
CisKIDIwMTktMDMtMTggIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAK
ICAgICAgICAgW2lPU10gTmF0aXZlIHNlbGVjdGlvbiB2aWV3cyBzb21ldGltZXMgYXBwZWFyIGlu
IGhpZGRlbiBlZGl0YWJsZSBhcmVhcyBhZnRlciBsb3NpbmcgZm9jdXMKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkTWFu
YWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNo
ZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyLmNwcAkocmV2aXNpb24gMjQzMTA1
KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVj
dWxhdGl2ZUxvYWRNYW5hZ2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjcsNyArNjcsNyBAQCBz
dGF0aWMgdm9pZCBwcmludFNwZWN1bGF0aXZlTG9hZGluZ0RpYWduCiBzdGF0aWMgdm9pZCBsb2dT
cGVjdWxhdGl2ZUxvYWRpbmdEaWFnbm9zdGljTWVzc2FnZShOZXR3b3JrUHJvY2VzcyYgbmV0d29y
a1Byb2Nlc3MsIGNvbnN0IEdsb2JhbEZyYW1lSUQmIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSkKIHsKICNpZiAhTE9HX0RJU0FCTEVECi0gICAgaWYgKFdlYktpdDJMb2dOZXR3b3JrQ2Fj
aGVTcGVjdWxhdGl2ZVByZWxvYWRpbmcuc3RhdGUgPT0gV1RGTG9nQ2hhbm5lbE9uKQorICAgIGlm
IChXZWJLaXQyTG9nTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVQcmVsb2FkaW5nLnN0YXRlID09IFdU
RkxvZ0NoYW5uZWxTdGF0ZTo6T24pCiAgICAgICAgIGFsbFNwZWN1bGF0aXZlTG9hZGluZ0RpYWdu
b3N0aWNNZXNzYWdlcygpLmFkZChtZXNzYWdlKTsKICNlbmRpZgogICAgIG5ldHdvcmtQcm9jZXNz
LmxvZ0RpYWdub3N0aWNNZXNzYWdlKGZyYW1lSUQuZmlyc3QsIFdlYkNvcmU6OkRpYWdub3N0aWNM
b2dnaW5nS2V5czo6bmV0d29ya0NhY2hlS2V5KCksIG1lc3NhZ2UsIFdlYkNvcmU6OlNob3VsZFNh
bXBsZTo6WWVzKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05l
dHdvcmtSVENQcm92aWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcAkocmV2aXNpb24gMjQzMTA1KQor
KysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjUsNyArNjUsNyBAQCBOZXR3b3JrUlRDUHJvdmlkZXI6
Ok5ldHdvcmtSVENQcm92aWRlcihOCiAjaWYgZGVmaW5lZChOREVCVUcpCiAgICAgcnRjOjpMb2dN
ZXNzYWdlOjpMb2dUb0RlYnVnKHJ0Yzo6TFNfTk9ORSk7CiAjZWxzZQotICAgIGlmIChXZWJLaXQy
TG9nV2ViUlRDLnN0YXRlICE9IFdURkxvZ0NoYW5uZWxPbikKKyAgICBpZiAoV2ViS2l0MkxvZ1dl
YlJUQy5zdGF0ZSAhPSBXVEZMb2dDaGFubmVsU3RhdGU6Ok9uKQogICAgICAgICBydGM6OkxvZ01l
c3NhZ2U6OkxvZ1RvRGVidWcocnRjOjpMU19XQVJOSU5HKTsKICNlbmRpZgogfQpJbmRleDogVG9v
bHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjQz
MTA1KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTktMDMtMTggIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4K
KworICAgICAgICBNYWtlIFdURkxvZ0NoYW5uZWxTdGF0ZSBhbmQgV1RGTG9nTGV2ZWwgZW51bSBj
bGFzc2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTU5MDQKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvTG9nZ2luZy5jcHA6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpURVNUX0YpOgorCiAyMDE5LTAzLTE4ICBLb2NzZW4gQ2h1bmcgIDxrb2NzZW5fY2h1
bmdAYXBwbGUuY29tPgogCiAgICAgICAgIENoZXJyeS1waWNrIHIyNDMwMzAuIHJkYXI6Ly9wcm9i
bGVtLzQ4ODk2MTgyCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvTG9n
Z2luZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L0xvZ2dpbmcuY3BwCShyZXZpc2lvbiAyNDMxMDUpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvTG9nZ2luZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcyLDEwICs3MiwxMCBA
QCBwdWJsaWM6CiAgICAgICAgIG1fc3RkZXJyID0gZmRvcGVuKG1fZGVzY3JpcHRvcnNbMF0sICJy
Iik7CiAKICAgICAgICAgV1RGSW5pdGlhbGl6ZUxvZ0NoYW5uZWxTdGF0ZXNGcm9tU3RyaW5nKHRl
c3RMb2dDaGFubmVscywgbG9nQ2hhbm5lbENvdW50LCAiYWxsIik7Ci0gICAgICAgIFdURlNldExv
Z0NoYW5uZWxMZXZlbCgmVGVzdENoYW5uZWwxLCBXVEZMb2dMZXZlbEVycm9yKTsKLSAgICAgICAg
V1RGU2V0TG9nQ2hhbm5lbExldmVsKCZUZXN0Q2hhbm5lbDIsIFdURkxvZ0xldmVsRXJyb3IpOwot
ICAgICAgICBXVEZTZXRMb2dDaGFubmVsTGV2ZWwoJlRlc3RDaGFubmVsMywgV1RGTG9nTGV2ZWxF
cnJvcik7Ci0gICAgICAgIFdURlNldExvZ0NoYW5uZWxMZXZlbCgmVGVzdENoYW5uZWw0LCBXVEZM
b2dMZXZlbEVycm9yKTsKKyAgICAgICAgV1RGU2V0TG9nQ2hhbm5lbExldmVsKCZUZXN0Q2hhbm5l
bDEsIFdURkxvZ0xldmVsOjpFcnJvcik7CisgICAgICAgIFdURlNldExvZ0NoYW5uZWxMZXZlbCgm
VGVzdENoYW5uZWwyLCBXVEZMb2dMZXZlbDo6RXJyb3IpOworICAgICAgICBXVEZTZXRMb2dDaGFu
bmVsTGV2ZWwoJlRlc3RDaGFubmVsMywgV1RGTG9nTGV2ZWw6OkVycm9yKTsKKyAgICAgICAgV1RG
U2V0TG9nQ2hhbm5lbExldmVsKCZUZXN0Q2hhbm5lbDQsIFdURkxvZ0xldmVsOjpFcnJvcik7CiAg
ICAgfQogCiAgICAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlCkBAIC0xMTAsODYgKzExMCw4NiBA
QCBwcml2YXRlOgogCiBURVNUX0YoTG9nZ2luZ1Rlc3QsIEluaXRpYWxpemF0aW9uKQogewotICAg
IEVYUEVDVF9FUShUZXN0Q2hhbm5lbDEuc3RhdGUsIFdURkxvZ0NoYW5uZWxPbik7Ci0gICAgRVhQ
RUNUX0VRKFRlc3RDaGFubmVsMi5zdGF0ZSwgV1RGTG9nQ2hhbm5lbE9uKTsKLSAgICBFWFBFQ1Rf
RVEoVGVzdENoYW5uZWwzLnN0YXRlLCBXVEZMb2dDaGFubmVsT24pOwotICAgIEVYUEVDVF9FUShU
ZXN0Q2hhbm5lbDQuc3RhdGUsIFdURkxvZ0NoYW5uZWxPbik7Ci0KLSAgICBFWFBFQ1RfRVEoVGVz
dENoYW5uZWwxLmxldmVsLCBXVEZMb2dMZXZlbEVycm9yKTsKLSAgICBFWFBFQ1RfRVEoVGVzdENo
YW5uZWwyLmxldmVsLCBXVEZMb2dMZXZlbEVycm9yKTsKLSAgICBFWFBFQ1RfRVEoVGVzdENoYW5u
ZWwzLmxldmVsLCBXVEZMb2dMZXZlbEVycm9yKTsKLSAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWw0
LmxldmVsLCBXVEZMb2dMZXZlbEVycm9yKTsKKyAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWwxLnN0
YXRlLCBXVEZMb2dDaGFubmVsU3RhdGU6Ok9uKTsKKyAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWwy
LnN0YXRlLCBXVEZMb2dDaGFubmVsU3RhdGU6Ok9uKTsKKyAgICBFWFBFQ1RfRVEoVGVzdENoYW5u
ZWwzLnN0YXRlLCBXVEZMb2dDaGFubmVsU3RhdGU6Ok9uKTsKKyAgICBFWFBFQ1RfRVEoVGVzdENo
YW5uZWw0LnN0YXRlLCBXVEZMb2dDaGFubmVsU3RhdGU6Ok9uKTsKKworICAgIEVYUEVDVF9FUShU
ZXN0Q2hhbm5lbDEubGV2ZWwsIFdURkxvZ0xldmVsOjpFcnJvcik7CisgICAgRVhQRUNUX0VRKFRl
c3RDaGFubmVsMi5sZXZlbCwgV1RGTG9nTGV2ZWw6OkVycm9yKTsKKyAgICBFWFBFQ1RfRVEoVGVz
dENoYW5uZWwzLmxldmVsLCBXVEZMb2dMZXZlbDo6RXJyb3IpOworICAgIEVYUEVDVF9FUShUZXN0
Q2hhbm5lbDQubGV2ZWwsIFdURkxvZ0xldmVsOjpFcnJvcik7CiAKLSAgICBUZXN0Q2hhbm5lbDEu
c3RhdGUgPSBXVEZMb2dDaGFubmVsT2ZmOworICAgIFRlc3RDaGFubmVsMS5zdGF0ZSA9IFdURkxv
Z0NoYW5uZWxTdGF0ZTo6T2ZmOwogICAgIFdURkluaXRpYWxpemVMb2dDaGFubmVsU3RhdGVzRnJv
bVN0cmluZyh0ZXN0TG9nQ2hhbm5lbHMsIGxvZ0NoYW5uZWxDb3VudCwgIkNoYW5uZWwxIik7Ci0g
ICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsMS5sZXZlbCwgV1RGTG9nTGV2ZWxFcnJvcik7Ci0gICAg
RVhQRUNUX0VRKFRlc3RDaGFubmVsMS5zdGF0ZSwgV1RGTG9nQ2hhbm5lbE9uKTsKKyAgICBFWFBF
Q1RfRVEoVGVzdENoYW5uZWwxLmxldmVsLCBXVEZMb2dMZXZlbDo6RXJyb3IpOworICAgIEVYUEVD
VF9FUShUZXN0Q2hhbm5lbDEuc3RhdGUsIFdURkxvZ0NoYW5uZWxTdGF0ZTo6T24pOwogCi0gICAg
VGVzdENoYW5uZWwxLnN0YXRlID0gV1RGTG9nQ2hhbm5lbE9mZjsKKyAgICBUZXN0Q2hhbm5lbDEu
c3RhdGUgPSBXVEZMb2dDaGFubmVsU3RhdGU6Ok9mZjsKICAgICBXVEZJbml0aWFsaXplTG9nQ2hh
bm5lbFN0YXRlc0Zyb21TdHJpbmcodGVzdExvZ0NoYW5uZWxzLCBsb2dDaGFubmVsQ291bnQsICJD
aGFubmVsMT1mb28iKTsKLSAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWwxLmxldmVsLCBXVEZMb2dM
ZXZlbEVycm9yKTsKKyAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWwxLmxldmVsLCBXVEZMb2dMZXZl
bDo6RXJyb3IpOwogI2lmIFRFU1RfT1VUUFVUCiAgICAgRVhQRUNUX1RSVUUob3V0cHV0KCkuY29u
dGFpbnMoIlVua25vd24gbG9nZ2luZyBsZXZlbDogZm9vIiwgZmFsc2UpKTsKICNlbmRpZgogCiAg
ICAgV1RGSW5pdGlhbGl6ZUxvZ0NoYW5uZWxTdGF0ZXNGcm9tU3RyaW5nKHRlc3RMb2dDaGFubmVs
cywgbG9nQ2hhbm5lbENvdW50LCAiQ2hhbm5lbDE9d2FybmluZyIpOwotICAgIEVYUEVDVF9FUShU
ZXN0Q2hhbm5lbDEubGV2ZWwsIFdURkxvZ0xldmVsV2FybmluZyk7Ci0gICAgRVhQRUNUX0VRKFRl
c3RDaGFubmVsMi5sZXZlbCwgV1RGTG9nTGV2ZWxFcnJvcik7Ci0gICAgRVhQRUNUX0VRKFRlc3RD
aGFubmVsMy5sZXZlbCwgV1RGTG9nTGV2ZWxFcnJvcik7Ci0gICAgRVhQRUNUX0VRKFRlc3RDaGFu
bmVsNC5sZXZlbCwgV1RGTG9nTGV2ZWxFcnJvcik7CisgICAgRVhQRUNUX0VRKFRlc3RDaGFubmVs
MS5sZXZlbCwgV1RGTG9nTGV2ZWw6Oldhcm5pbmcpOworICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5l
bDIubGV2ZWwsIFdURkxvZ0xldmVsOjpFcnJvcik7CisgICAgRVhQRUNUX0VRKFRlc3RDaGFubmVs
My5sZXZlbCwgV1RGTG9nTGV2ZWw6OkVycm9yKTsKKyAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWw0
LmxldmVsLCBXVEZMb2dMZXZlbDo6RXJyb3IpOwogCiAgICAgV1RGSW5pdGlhbGl6ZUxvZ0NoYW5u
ZWxTdGF0ZXNGcm9tU3RyaW5nKHRlc3RMb2dDaGFubmVscywgbG9nQ2hhbm5lbENvdW50LCAiQ2hh
bm5lbDQ9ICAgZGVidWcsIENoYW5uZWwzID0gaW5mbyxDaGFubmVsMj1lcnJvciIpOwotICAgIEVY
UEVDVF9FUShUZXN0Q2hhbm5lbDEubGV2ZWwsIFdURkxvZ0xldmVsV2FybmluZyk7Ci0gICAgRVhQ
RUNUX0VRKFRlc3RDaGFubmVsMi5sZXZlbCwgV1RGTG9nTGV2ZWxFcnJvcik7Ci0gICAgRVhQRUNU
X0VRKFRlc3RDaGFubmVsMy5sZXZlbCwgV1RGTG9nTGV2ZWxJbmZvKTsKLSAgICBFWFBFQ1RfRVEo
VGVzdENoYW5uZWw0LmxldmVsLCBXVEZMb2dMZXZlbERlYnVnKTsKKyAgICBFWFBFQ1RfRVEoVGVz
dENoYW5uZWwxLmxldmVsLCBXVEZMb2dMZXZlbDo6V2FybmluZyk7CisgICAgRVhQRUNUX0VRKFRl
c3RDaGFubmVsMi5sZXZlbCwgV1RGTG9nTGV2ZWw6OkVycm9yKTsKKyAgICBFWFBFQ1RfRVEoVGVz
dENoYW5uZWwzLmxldmVsLCBXVEZMb2dMZXZlbDo6SW5mbyk7CisgICAgRVhQRUNUX0VRKFRlc3RD
aGFubmVsNC5sZXZlbCwgV1RGTG9nTGV2ZWw6OkRlYnVnKTsKIAogICAgIFdURkluaXRpYWxpemVM
b2dDaGFubmVsU3RhdGVzRnJvbVN0cmluZyh0ZXN0TG9nQ2hhbm5lbHMsIGxvZ0NoYW5uZWxDb3Vu
dCwgIi1hbGwiKTsKLSAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWwxLnN0YXRlLCBXVEZMb2dDaGFu
bmVsT2ZmKTsKLSAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWwyLnN0YXRlLCBXVEZMb2dDaGFubmVs
T2ZmKTsKLSAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWwzLnN0YXRlLCBXVEZMb2dDaGFubmVsT2Zm
KTsKLSAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWw0LnN0YXRlLCBXVEZMb2dDaGFubmVsT2ZmKTsK
KyAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWwxLnN0YXRlLCBXVEZMb2dDaGFubmVsU3RhdGU6Ok9m
Zik7CisgICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsMi5zdGF0ZSwgV1RGTG9nQ2hhbm5lbFN0YXRl
OjpPZmYpOworICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDMuc3RhdGUsIFdURkxvZ0NoYW5uZWxT
dGF0ZTo6T2ZmKTsKKyAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWw0LnN0YXRlLCBXVEZMb2dDaGFu
bmVsU3RhdGU6Ok9mZik7CiAKICAgICBXVEZJbml0aWFsaXplTG9nQ2hhbm5lbFN0YXRlc0Zyb21T
dHJpbmcodGVzdExvZ0NoYW5uZWxzLCBsb2dDaGFubmVsQ291bnQsICJhbGwiKTsKLSAgICBFWFBF
Q1RfRVEoVGVzdENoYW5uZWwxLnN0YXRlLCBXVEZMb2dDaGFubmVsT24pOwotICAgIEVYUEVDVF9F
UShUZXN0Q2hhbm5lbDIuc3RhdGUsIFdURkxvZ0NoYW5uZWxPbik7Ci0gICAgRVhQRUNUX0VRKFRl
c3RDaGFubmVsMy5zdGF0ZSwgV1RGTG9nQ2hhbm5lbE9uKTsKLSAgICBFWFBFQ1RfRVEoVGVzdENo
YW5uZWw0LnN0YXRlLCBXVEZMb2dDaGFubmVsT24pOworICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5l
bDEuc3RhdGUsIFdURkxvZ0NoYW5uZWxTdGF0ZTo6T24pOworICAgIEVYUEVDVF9FUShUZXN0Q2hh
bm5lbDIuc3RhdGUsIFdURkxvZ0NoYW5uZWxTdGF0ZTo6T24pOworICAgIEVYUEVDVF9FUShUZXN0
Q2hhbm5lbDMuc3RhdGUsIFdURkxvZ0NoYW5uZWxTdGF0ZTo6T24pOworICAgIEVYUEVDVF9FUShU
ZXN0Q2hhbm5lbDQuc3RhdGUsIFdURkxvZ0NoYW5uZWxTdGF0ZTo6T24pOwogfQogCiBURVNUX0Yo
TG9nZ2luZ1Rlc3QsIFdURldpbGxMb2dXaXRoTGV2ZWwpCiB7Ci0gICAgRVhQRUNUX0VRKFRlc3RD
aGFubmVsMS5zdGF0ZSwgV1RGTG9nQ2hhbm5lbE9uKTsKLSAgICBFWFBFQ1RfRVEoVGVzdENoYW5u
ZWwyLnN0YXRlLCBXVEZMb2dDaGFubmVsT24pOwotICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDMu
c3RhdGUsIFdURkxvZ0NoYW5uZWxPbik7Ci0gICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsNC5zdGF0
ZSwgV1RGTG9nQ2hhbm5lbE9uKTsKLQotICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDEubGV2ZWws
IFdURkxvZ0xldmVsRXJyb3IpOwotICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDIubGV2ZWwsIFdU
RkxvZ0xldmVsRXJyb3IpOwotICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDMubGV2ZWwsIFdURkxv
Z0xldmVsRXJyb3IpOwotICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDQubGV2ZWwsIFdURkxvZ0xl
dmVsRXJyb3IpOwotCi0gICAgRVhQRUNUX1RSVUUoV1RGV2lsbExvZ1dpdGhMZXZlbCgmVGVzdENo
YW5uZWwxLCBXVEZMb2dMZXZlbEVycm9yKSk7Ci0gICAgRVhQRUNUX1RSVUUoV1RGV2lsbExvZ1dp
dGhMZXZlbCgmVGVzdENoYW5uZWwyLCBXVEZMb2dMZXZlbEVycm9yKSk7Ci0gICAgRVhQRUNUX1RS
VUUoV1RGV2lsbExvZ1dpdGhMZXZlbCgmVGVzdENoYW5uZWwzLCBXVEZMb2dMZXZlbEVycm9yKSk7
Ci0gICAgRVhQRUNUX1RSVUUoV1RGV2lsbExvZ1dpdGhMZXZlbCgmVGVzdENoYW5uZWw0LCBXVEZM
b2dMZXZlbEVycm9yKSk7Ci0KLSAgICBFWFBFQ1RfRkFMU0UoV1RGV2lsbExvZ1dpdGhMZXZlbCgm
VGVzdENoYW5uZWwxLCBXVEZMb2dMZXZlbEluZm8pKTsKLSAgICBFWFBFQ1RfRkFMU0UoV1RGV2ls
bExvZ1dpdGhMZXZlbCgmVGVzdENoYW5uZWwyLCBXVEZMb2dMZXZlbEluZm8pKTsKLSAgICBFWFBF
Q1RfRkFMU0UoV1RGV2lsbExvZ1dpdGhMZXZlbCgmVGVzdENoYW5uZWwzLCBXVEZMb2dMZXZlbElu
Zm8pKTsKLSAgICBFWFBFQ1RfRkFMU0UoV1RGV2lsbExvZ1dpdGhMZXZlbCgmVGVzdENoYW5uZWw0
LCBXVEZMb2dMZXZlbEluZm8pKTsKLQotICAgIFRlc3RDaGFubmVsMS5zdGF0ZSA9IFdURkxvZ0No
YW5uZWxPZmY7Ci0gICAgRVhQRUNUX0ZBTFNFKFdURldpbGxMb2dXaXRoTGV2ZWwoJlRlc3RDaGFu
bmVsMSwgV1RGTG9nTGV2ZWxFcnJvcikpOwotICAgIEVYUEVDVF9GQUxTRShXVEZXaWxsTG9nV2l0
aExldmVsKCZUZXN0Q2hhbm5lbDEsIFdURkxvZ0xldmVsSW5mbykpOwotCi0gICAgVGVzdENoYW5u
ZWwxLnN0YXRlID0gV1RGTG9nQ2hhbm5lbE9uOwotICAgIEVYUEVDVF9UUlVFKFdURldpbGxMb2dX
aXRoTGV2ZWwoJlRlc3RDaGFubmVsMSwgV1RGTG9nTGV2ZWxFcnJvcikpOwotICAgIEVYUEVDVF9G
QUxTRShXVEZXaWxsTG9nV2l0aExldmVsKCZUZXN0Q2hhbm5lbDEsIFdURkxvZ0xldmVsSW5mbykp
OwotCi0gICAgVGVzdENoYW5uZWwxLmxldmVsID0gV1RGTG9nTGV2ZWxJbmZvOwotICAgIEVYUEVD
VF9UUlVFKFdURldpbGxMb2dXaXRoTGV2ZWwoJlRlc3RDaGFubmVsMSwgV1RGTG9nTGV2ZWxFcnJv
cikpOwotICAgIEVYUEVDVF9UUlVFKFdURldpbGxMb2dXaXRoTGV2ZWwoJlRlc3RDaGFubmVsMSwg
V1RGTG9nTGV2ZWxJbmZvKSk7CisgICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsMS5zdGF0ZSwgV1RG
TG9nQ2hhbm5lbFN0YXRlOjpPbik7CisgICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsMi5zdGF0ZSwg
V1RGTG9nQ2hhbm5lbFN0YXRlOjpPbik7CisgICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsMy5zdGF0
ZSwgV1RGTG9nQ2hhbm5lbFN0YXRlOjpPbik7CisgICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsNC5z
dGF0ZSwgV1RGTG9nQ2hhbm5lbFN0YXRlOjpPbik7CisKKyAgICBFWFBFQ1RfRVEoVGVzdENoYW5u
ZWwxLmxldmVsLCBXVEZMb2dMZXZlbDo6RXJyb3IpOworICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5l
bDIubGV2ZWwsIFdURkxvZ0xldmVsOjpFcnJvcik7CisgICAgRVhQRUNUX0VRKFRlc3RDaGFubmVs
My5sZXZlbCwgV1RGTG9nTGV2ZWw6OkVycm9yKTsKKyAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWw0
LmxldmVsLCBXVEZMb2dMZXZlbDo6RXJyb3IpOworCisgICAgRVhQRUNUX1RSVUUoV1RGV2lsbExv
Z1dpdGhMZXZlbCgmVGVzdENoYW5uZWwxLCBXVEZMb2dMZXZlbDo6RXJyb3IpKTsKKyAgICBFWFBF
Q1RfVFJVRShXVEZXaWxsTG9nV2l0aExldmVsKCZUZXN0Q2hhbm5lbDIsIFdURkxvZ0xldmVsOjpF
cnJvcikpOworICAgIEVYUEVDVF9UUlVFKFdURldpbGxMb2dXaXRoTGV2ZWwoJlRlc3RDaGFubmVs
MywgV1RGTG9nTGV2ZWw6OkVycm9yKSk7CisgICAgRVhQRUNUX1RSVUUoV1RGV2lsbExvZ1dpdGhM
ZXZlbCgmVGVzdENoYW5uZWw0LCBXVEZMb2dMZXZlbDo6RXJyb3IpKTsKKworICAgIEVYUEVDVF9G
QUxTRShXVEZXaWxsTG9nV2l0aExldmVsKCZUZXN0Q2hhbm5lbDEsIFdURkxvZ0xldmVsOjpJbmZv
KSk7CisgICAgRVhQRUNUX0ZBTFNFKFdURldpbGxMb2dXaXRoTGV2ZWwoJlRlc3RDaGFubmVsMiwg
V1RGTG9nTGV2ZWw6OkluZm8pKTsKKyAgICBFWFBFQ1RfRkFMU0UoV1RGV2lsbExvZ1dpdGhMZXZl
bCgmVGVzdENoYW5uZWwzLCBXVEZMb2dMZXZlbDo6SW5mbykpOworICAgIEVYUEVDVF9GQUxTRShX
VEZXaWxsTG9nV2l0aExldmVsKCZUZXN0Q2hhbm5lbDQsIFdURkxvZ0xldmVsOjpJbmZvKSk7CisK
KyAgICBUZXN0Q2hhbm5lbDEuc3RhdGUgPSBXVEZMb2dDaGFubmVsU3RhdGU6Ok9mZjsKKyAgICBF
WFBFQ1RfRkFMU0UoV1RGV2lsbExvZ1dpdGhMZXZlbCgmVGVzdENoYW5uZWwxLCBXVEZMb2dMZXZl
bDo6RXJyb3IpKTsKKyAgICBFWFBFQ1RfRkFMU0UoV1RGV2lsbExvZ1dpdGhMZXZlbCgmVGVzdENo
YW5uZWwxLCBXVEZMb2dMZXZlbDo6SW5mbykpOworCisgICAgVGVzdENoYW5uZWwxLnN0YXRlID0g
V1RGTG9nQ2hhbm5lbFN0YXRlOjpPbjsKKyAgICBFWFBFQ1RfVFJVRShXVEZXaWxsTG9nV2l0aExl
dmVsKCZUZXN0Q2hhbm5lbDEsIFdURkxvZ0xldmVsOjpFcnJvcikpOworICAgIEVYUEVDVF9GQUxT
RShXVEZXaWxsTG9nV2l0aExldmVsKCZUZXN0Q2hhbm5lbDEsIFdURkxvZ0xldmVsOjpJbmZvKSk7
CisKKyAgICBUZXN0Q2hhbm5lbDEubGV2ZWwgPSBXVEZMb2dMZXZlbDo6SW5mbzsKKyAgICBFWFBF
Q1RfVFJVRShXVEZXaWxsTG9nV2l0aExldmVsKCZUZXN0Q2hhbm5lbDEsIFdURkxvZ0xldmVsOjpF
cnJvcikpOworICAgIEVYUEVDVF9UUlVFKFdURldpbGxMb2dXaXRoTGV2ZWwoJlRlc3RDaGFubmVs
MSwgV1RGTG9nTGV2ZWw6OkluZm8pKTsKIH0KIAogI2lmIFRFU1RfT1VUUFVUCkBAIC0yMDEsMjEg
KzIwMSwyMSBAQCBURVNUX0YoTG9nZ2luZ1Rlc3QsIExPRykKIAogVEVTVF9GKExvZ2dpbmdUZXN0
LCBMT0dfV0lUSF9MRVZFTCkKIHsKLSAgICBMT0dfV0lUSF9MRVZFTChDaGFubmVsMSwgV1RGTG9n
TGV2ZWxFcnJvciwgIkdvIGFuZCBib2lsIHlvdXIgYm90dG9tcywgeW91IHNvbnMgb2YgYSBzaWxs
eSBwZXJzb24uIik7CisgICAgTE9HX1dJVEhfTEVWRUwoQ2hhbm5lbDEsIFdURkxvZ0xldmVsOjpF
cnJvciwgIkdvIGFuZCBib2lsIHlvdXIgYm90dG9tcywgeW91IHNvbnMgb2YgYSBzaWxseSBwZXJz
b24uIik7CiAgICAgRVhQRUNUX1RSVUUob3V0cHV0KCkuY29udGFpbnMoInNvbnMgb2YgYSBzaWxs
eSBwZXJzb24uIiwgZmFsc2UpKTsKIAotICAgIExPR19XSVRIX0xFVkVMKENoYW5uZWwxLCBXVEZM
b2dMZXZlbFdhcm5pbmcsICJZb3UgZG9uJ3QgZnJpZ2h0ZW4gdXMsIEVuZ2xpc2ggcGlnIGRvZ3Mu
Iik7CisgICAgTE9HX1dJVEhfTEVWRUwoQ2hhbm5lbDEsIFdURkxvZ0xldmVsOjpXYXJuaW5nLCAi
WW91IGRvbid0IGZyaWdodGVuIHVzLCBFbmdsaXNoIHBpZyBkb2dzLiIpOwogICAgIEVYUEVDVF9F
USgwdSwgb3V0cHV0KCkubGVuZ3RoKCkpOwogCi0gICAgV1RGU2V0TG9nQ2hhbm5lbExldmVsKCZU
ZXN0Q2hhbm5lbDEsIFdURkxvZ0xldmVsSW5mbyk7Ci0gICAgTE9HX1dJVEhfTEVWRUwoQ2hhbm5l
bDEsIFdURkxvZ0xldmVsV2FybmluZywgIkknbSBGcmVuY2guIFdoeSBkbyB5b3UgdGhpbmsgSSBo
YXZlIHRoaXMgb3V0cmFnZW91cyBhY2NlbnQsIHlvdSBzaWxseSBraW5nPyIpOworICAgIFdURlNl
dExvZ0NoYW5uZWxMZXZlbCgmVGVzdENoYW5uZWwxLCBXVEZMb2dMZXZlbDo6SW5mbyk7CisgICAg
TE9HX1dJVEhfTEVWRUwoQ2hhbm5lbDEsIFdURkxvZ0xldmVsOjpXYXJuaW5nLCAiSSdtIEZyZW5j
aC4gV2h5IGRvIHlvdSB0aGluayBJIGhhdmUgdGhpcyBvdXRyYWdlb3VzIGFjY2VudCwgeW91IHNp
bGx5IGtpbmc/Iik7CiAgICAgRVhQRUNUX1RSVUUob3V0cHV0KCkuY29udGFpbnMoIm91dHJhZ2Vv
dXMgYWNjZW50IiwgZmFsc2UpKTsKIAotICAgIExPR19XSVRIX0xFVkVMKENoYW5uZWwxLCBXVEZM
b2dMZXZlbERlYnVnLCAiWW91IGRvbid0IGZyaWdodGVuIHVzIHdpdGggeW91ciBzaWxseSBrbmVl
cy1iZW50IHJ1bm5pbmcgYXJvdW5kIGFkdmFuY2luZyBiZWhhdmlvciEiKTsKKyAgICBMT0dfV0lU
SF9MRVZFTChDaGFubmVsMSwgV1RGTG9nTGV2ZWw6OkRlYnVnLCAiWW91IGRvbid0IGZyaWdodGVu
IHVzIHdpdGggeW91ciBzaWxseSBrbmVlcy1iZW50IHJ1bm5pbmcgYXJvdW5kIGFkdmFuY2luZyBi
ZWhhdmlvciEiKTsKICAgICBFWFBFQ1RfRVEoMHUsIG91dHB1dCgpLmxlbmd0aCgpKTsKIAotICAg
IFdURlNldExvZ0NoYW5uZWxMZXZlbCgmVGVzdENoYW5uZWwxLCBXVEZMb2dMZXZlbERlYnVnKTsK
LSAgICBMT0dfV0lUSF9MRVZFTChDaGFubmVsMSwgV1RGTG9nTGV2ZWxEZWJ1ZywgIkdvIGFuZCB0
ZWxsIHlvdXIgbWFzdGVyIHRoYXQgd2UgaGF2ZSBiZWVuIGNoYXJnZWQgYnkgR29kIHdpdGggYSBz
YWNyZWQgcXVlc3QuIik7CisgICAgV1RGU2V0TG9nQ2hhbm5lbExldmVsKCZUZXN0Q2hhbm5lbDEs
IFdURkxvZ0xldmVsOjpEZWJ1Zyk7CisgICAgTE9HX1dJVEhfTEVWRUwoQ2hhbm5lbDEsIFdURkxv
Z0xldmVsOjpEZWJ1ZywgIkdvIGFuZCB0ZWxsIHlvdXIgbWFzdGVyIHRoYXQgd2UgaGF2ZSBiZWVu
IGNoYXJnZWQgYnkgR29kIHdpdGggYSBzYWNyZWQgcXVlc3QuIik7CiAgICAgRVhQRUNUX1RSVUUo
b3V0cHV0KCkuY29udGFpbnMoInNhY3JlZCBxdWVzdCIsIGZhbHNlKSk7CiB9CiAKQEAgLTIzOCwz
NSArMjM4LDM1IEBAIFRFU1RfRihMb2dnaW5nVGVzdCwgUkVMRUFTRV9MT0dfSUYpCiAKIFRFU1Rf
RihMb2dnaW5nVGVzdCwgUkVMRUFTRV9MT0dfV0lUSF9MRVZFTCkKIHsKLSAgICBSRUxFQVNFX0xP
R19XSVRIX0xFVkVMKENoYW5uZWwxLCBXVEZMb2dMZXZlbEVycm9yLCAiWW91IGRvbid0IGZyaWdo
dGVuIHVzLCBFbmdsaXNoIHBpZyBkb2dzLiIpOworICAgIFJFTEVBU0VfTE9HX1dJVEhfTEVWRUwo
Q2hhbm5lbDEsIFdURkxvZ0xldmVsOjpFcnJvciwgIllvdSBkb24ndCBmcmlnaHRlbiB1cywgRW5n
bGlzaCBwaWcgZG9ncy4iKTsKICAgICBFWFBFQ1RfVFJVRShvdXRwdXQoKS5jb250YWlucygicGln
IGRvZ3MuIiwgZmFsc2UpKTsKIAotICAgIFJFTEVBU0VfTE9HX1dJVEhfTEVWRUwoQ2hhbm5lbDEs
IFdURkxvZ0xldmVsV2FybmluZywgIkdvIGFuZCBib2lsIHlvdXIgYm90dG9tcywgeW91IHNvbnMg
b2YgYSBzaWxseSBwZXJzb24uIik7CisgICAgUkVMRUFTRV9MT0dfV0lUSF9MRVZFTChDaGFubmVs
MSwgV1RGTG9nTGV2ZWw6Oldhcm5pbmcsICJHbyBhbmQgYm9pbCB5b3VyIGJvdHRvbXMsIHlvdSBz
b25zIG9mIGEgc2lsbHkgcGVyc29uLiIpOwogICAgIEVYUEVDVF9FUSgwdSwgb3V0cHV0KCkubGVu
Z3RoKCkpOwogCi0gICAgV1RGU2V0TG9nQ2hhbm5lbExldmVsKCZUZXN0Q2hhbm5lbDEsIFdURkxv
Z0xldmVsSW5mbyk7Ci0gICAgUkVMRUFTRV9MT0dfV0lUSF9MRVZFTChDaGFubmVsMSwgV1RGTG9n
TGV2ZWxXYXJuaW5nLCAiSSdtIEZyZW5jaC4gV2h5IGRvIHlvdSB0aGluayBJIGhhdmUgdGhpcyBv
dXRyYWdlb3VzIGFjY2VudCwgeW91IHNpbGx5IGtpbmc/Iik7CisgICAgV1RGU2V0TG9nQ2hhbm5l
bExldmVsKCZUZXN0Q2hhbm5lbDEsIFdURkxvZ0xldmVsOjpJbmZvKTsKKyAgICBSRUxFQVNFX0xP
R19XSVRIX0xFVkVMKENoYW5uZWwxLCBXVEZMb2dMZXZlbDo6V2FybmluZywgIkknbSBGcmVuY2gu
IFdoeSBkbyB5b3UgdGhpbmsgSSBoYXZlIHRoaXMgb3V0cmFnZW91cyBhY2NlbnQsIHlvdSBzaWxs
eSBraW5nPyIpOwogICAgIEVYUEVDVF9UUlVFKG91dHB1dCgpLmNvbnRhaW5zKCJvdXRyYWdlb3Vz
IGFjY2VudCIsIGZhbHNlKSk7CiAKLSAgICBSRUxFQVNFX0xPR19XSVRIX0xFVkVMKENoYW5uZWwx
LCBXVEZMb2dMZXZlbERlYnVnLCAiWW91IGRvbid0IGZyaWdodGVuIHVzIHdpdGggeW91ciBzaWxs
eSBrbmVlcy1iZW50IHJ1bm5pbmcgYXJvdW5kIGFkdmFuY2luZyBiZWhhdmlvciEiKTsKKyAgICBS
RUxFQVNFX0xPR19XSVRIX0xFVkVMKENoYW5uZWwxLCBXVEZMb2dMZXZlbDo6RGVidWcsICJZb3Ug
ZG9uJ3QgZnJpZ2h0ZW4gdXMgd2l0aCB5b3VyIHNpbGx5IGtuZWVzLWJlbnQgcnVubmluZyBhcm91
bmQgYWR2YW5jaW5nIGJlaGF2aW9yISIpOwogICAgIEVYUEVDVF9FUSgwdSwgb3V0cHV0KCkubGVu
Z3RoKCkpOwogCi0gICAgV1RGU2V0TG9nQ2hhbm5lbExldmVsKCZUZXN0Q2hhbm5lbDEsIFdURkxv
Z0xldmVsRGVidWcpOwotICAgIFJFTEVBU0VfTE9HX1dJVEhfTEVWRUwoQ2hhbm5lbDEsIFdURkxv
Z0xldmVsRGVidWcsICJHbyBhbmQgdGVsbCB5b3VyIG1hc3RlciB0aGF0IHdlIGhhdmUgYmVlbiBj
aGFyZ2VkIGJ5IEdvZCB3aXRoIGEgc2FjcmVkIHF1ZXN0LiIpOworICAgIFdURlNldExvZ0NoYW5u
ZWxMZXZlbCgmVGVzdENoYW5uZWwxLCBXVEZMb2dMZXZlbDo6RGVidWcpOworICAgIFJFTEVBU0Vf
TE9HX1dJVEhfTEVWRUwoQ2hhbm5lbDEsIFdURkxvZ0xldmVsOjpEZWJ1ZywgIkdvIGFuZCB0ZWxs
IHlvdXIgbWFzdGVyIHRoYXQgd2UgaGF2ZSBiZWVuIGNoYXJnZWQgYnkgR29kIHdpdGggYSBzYWNy
ZWQgcXVlc3QuIik7CiAgICAgRVhQRUNUX1RSVUUob3V0cHV0KCkuY29udGFpbnMoInNhY3JlZCBx
dWVzdCIsIGZhbHNlKSk7CiB9CiAKIFRFU1RfRihMb2dnaW5nVGVzdCwgUkVMRUFTRV9MT0dfV0lU
SF9MRVZFTF9JRikKIHsKICAgICBib29sIGVuYWJsZWQgPSB0cnVlOwotICAgIFJFTEVBU0VfTE9H
X1dJVEhfTEVWRUxfSUYoZW5hYmxlZCwgQ2hhbm5lbDEsIFdURkxvZ0xldmVsRXJyb3IsICJJcyB0
aGVyZSBzb21lb25lIGVsc2UgdXAgdGhlcmUgdGhhdCB3ZSBjYW4gdGFsayB0bz8iKTsKKyAgICBS
RUxFQVNFX0xPR19XSVRIX0xFVkVMX0lGKGVuYWJsZWQsIENoYW5uZWwxLCBXVEZMb2dMZXZlbDo6
RXJyb3IsICJJcyB0aGVyZSBzb21lb25lIGVsc2UgdXAgdGhlcmUgdGhhdCB3ZSBjYW4gdGFsayB0
bz8iKTsKICAgICBFWFBFQ1RfVFJVRShvdXRwdXQoKS5jb250YWlucygic29tZW9uZSBlbHNlIiwg
ZmFsc2UpKTsKIAotICAgIFJFTEVBU0VfTE9HX1dJVEhfTEVWRUxfSUYoZW5hYmxlZCwgQ2hhbm5l
bDEsIFdURkxvZ0xldmVsRGVidWcsICJObywgbm93IGdvIGF3YXkiKTsKKyAgICBSRUxFQVNFX0xP
R19XSVRIX0xFVkVMX0lGKGVuYWJsZWQsIENoYW5uZWwxLCBXVEZMb2dMZXZlbDo6RGVidWcsICJO
bywgbm93IGdvIGF3YXkiKTsKICAgICBFWFBFQ1RfRVEoMHUsIG91dHB1dCgpLmxlbmd0aCgpKTsK
IAogICAgIGVuYWJsZWQgPSBmYWxzZTsKLSAgICBSRUxFQVNFX0xPR19XSVRIX0xFVkVMX0lGKGVu
YWJsZWQsIENoYW5uZWwxLCBXVEZMb2dMZXZlbFdhcm5pbmcsICJvciBJIHNoYWxsIHRhdW50IHlv
dSBhIHNlY29uZCB0aW1lISAlaSIsIDEyKTsKKyAgICBSRUxFQVNFX0xPR19XSVRIX0xFVkVMX0lG
KGVuYWJsZWQsIENoYW5uZWwxLCBXVEZMb2dMZXZlbDo6V2FybmluZywgIm9yIEkgc2hhbGwgdGF1
bnQgeW91IGEgc2Vjb25kIHRpbWUhICVpIiwgMTIpOwogICAgIEVYUEVDVF9FUSgwdSwgb3V0cHV0
KCkubGVuZ3RoKCkpOwogfQogCkBAIC0yNzUsOCArMjc1LDggQEAgVEVTVF9GKExvZ2dpbmdUZXN0
LCBMb2dnZXIpCiAgICAgUmVmPExvZ2dlcj4gbG9nZ2VyID0gTG9nZ2VyOjpjcmVhdGUodGhpcyk7
CiAgICAgRVhQRUNUX1RSVUUobG9nZ2VyLT5lbmFibGVkKCkpOwogCi0gICAgV1RGU2V0TG9nQ2hh
bm5lbExldmVsKCZUZXN0Q2hhbm5lbDEsIFdURkxvZ0xldmVsRXJyb3IpOwotICAgIEVYUEVDVF9U
UlVFKGxvZ2dlci0+d2lsbExvZyhUZXN0Q2hhbm5lbDEsIFdURkxvZ0xldmVsRXJyb3IpKTsKKyAg
ICBXVEZTZXRMb2dDaGFubmVsTGV2ZWwoJlRlc3RDaGFubmVsMSwgV1RGTG9nTGV2ZWw6OkVycm9y
KTsKKyAgICBFWFBFQ1RfVFJVRShsb2dnZXItPndpbGxMb2coVGVzdENoYW5uZWwxLCBXVEZMb2dM
ZXZlbDo6RXJyb3IpKTsKICAgICBsb2dnZXItPmVycm9yKFRlc3RDaGFubmVsMSwgIllvdSdyZSB1
c2luZyBjb2NvbnV0cyEiKTsKICAgICBFWFBFQ1RfVFJVRShvdXRwdXQoKS5jb250YWlucygiWW91
J3JlIHVzaW5nIGNvY29udXRzISIsIGZhbHNlKSk7CiAgICAgbG9nZ2VyLT53YXJuaW5nKFRlc3RD
aGFubmVsMSwgIllvdSdyZSB1c2luZyBjb2NvbnV0cyEiKTsKQEAgLTMwNSwxNSArMzA1LDE1IEBA
IFRFU1RfRihMb2dnaW5nVGVzdCwgTG9nZ2VyKQogICAgIGxvZ2dlci0+ZXJyb3IoVGVzdENoYW5u
ZWwxLCAiWW91J3ZlIGdvdCAiLCAyLCAiIGVtcHR5IGhhbHZlcyBvZiAiLCAiY29jb251dHMhIik7
CiAgICAgRVhQRUNUX1RSVUUob3V0cHV0KCkuY29udGFpbnMoIllvdSd2ZSBnb3QgMiBlbXB0eSBo
YWx2ZXMgb2YgY29jb251dHMhIiwgZmFsc2UpKTsKIAotICAgIFdURlNldExvZ0NoYW5uZWxMZXZl
bCgmVGVzdENoYW5uZWwxLCBXVEZMb2dMZXZlbEVycm9yKTsKKyAgICBXVEZTZXRMb2dDaGFubmVs
TGV2ZWwoJlRlc3RDaGFubmVsMSwgV1RGTG9nTGV2ZWw6OkVycm9yKTsKICAgICBsb2dnZXItPmxv
Z0Fsd2F5cyhUZXN0Q2hhbm5lbDEsICJJIHNoYWxsIHRhdW50IHlvdSBhIHNlY29uZCB0aW1lISIp
OwogICAgIEVYUEVDVF9UUlVFKG91dHB1dCgpLmNvbnRhaW5zKCJJIHNoYWxsIHRhdW50IHlvdSBh
IHNlY29uZCB0aW1lISIsIGZhbHNlKSk7CiAKICAgICBsb2dnZXItPnNldEVuYWJsZWQodGhpcywg
ZmFsc2UpOwotICAgIEVYUEVDVF9GQUxTRShsb2dnZXItPndpbGxMb2coVGVzdENoYW5uZWwxLCBX
VEZMb2dMZXZlbEVycm9yKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKGxvZ2dlci0+d2lsbExvZyhUZXN0
Q2hhbm5lbDEsIFdURkxvZ0xldmVsV2FybmluZykpOwotICAgIEVYUEVDVF9GQUxTRShsb2dnZXIt
PndpbGxMb2coVGVzdENoYW5uZWwxLCBXVEZMb2dMZXZlbEluZm8pKTsKLSAgICBFWFBFQ1RfRkFM
U0UobG9nZ2VyLT53aWxsTG9nKFRlc3RDaGFubmVsMSwgV1RGTG9nTGV2ZWxEZWJ1ZykpOworICAg
IEVYUEVDVF9GQUxTRShsb2dnZXItPndpbGxMb2coVGVzdENoYW5uZWwxLCBXVEZMb2dMZXZlbDo6
RXJyb3IpKTsKKyAgICBFWFBFQ1RfRkFMU0UobG9nZ2VyLT53aWxsTG9nKFRlc3RDaGFubmVsMSwg
V1RGTG9nTGV2ZWw6Oldhcm5pbmcpKTsKKyAgICBFWFBFQ1RfRkFMU0UobG9nZ2VyLT53aWxsTG9n
KFRlc3RDaGFubmVsMSwgV1RGTG9nTGV2ZWw6OkluZm8pKTsKKyAgICBFWFBFQ1RfRkFMU0UobG9n
Z2VyLT53aWxsTG9nKFRlc3RDaGFubmVsMSwgV1RGTG9nTGV2ZWw6OkRlYnVnKSk7CiAgICAgRVhQ
RUNUX0ZBTFNFKGxvZ2dlci0+ZW5hYmxlZCgpKTsKICAgICBsb2dnZXItPmxvZ0Fsd2F5cyhUZXN0
Q2hhbm5lbDEsICJZb3UndmUgZ290IHR3byBlbXB0eSBoYWx2ZXMgb2YgY29jb251dHMiKTsKICAg
ICBFWFBFQ1RfRVEoMHUsIG91dHB1dCgpLmxlbmd0aCgpKTsKQEAgLTM0OCw3ICszNDgsNyBAQCBU
RVNUX0YoTG9nZ2luZ1Rlc3QsIExvZ2dlckhlbHBlcikKICAgICBFWFBFQ1RfVFJVRShyZXN1bHQu
Y29udGFpbnMoc2lnbmF0dXJlLCBmYWxzZSkpOwogICAgIEVYUEVDVF9UUlVFKHJlc3VsdC5jb250
YWlucygidG8gdGhlIHNob3cgdGhhdCBuZXZlciIsIGZhbHNlKSk7CiAKLSAgICBXVEZTZXRMb2dD
aGFubmVsTGV2ZWwoJlRlc3RDaGFubmVsMSwgV1RGTG9nTGV2ZWxXYXJuaW5nKTsKKyAgICBXVEZT
ZXRMb2dDaGFubmVsTGV2ZWwoJlRlc3RDaGFubmVsMSwgV1RGTG9nTGV2ZWw6Oldhcm5pbmcpOwog
CiAgICAgRVJST1JfTE9HKExPR0lERU5USUZJRVIsICJXZSdyZSBzbyBnbGFkIHlvdSBjb3VsZCBh
dHRlbmQiKTsKICAgICBFWFBFQ1RfVFJVRShvdXRwdXQoKS5jb250YWlucygiV2UncmUgc28gZ2xh
ZCB5b3UgY291bGQgYXR0ZW5kIiwgZmFsc2UpKTsKQEAgLTM4OCw3ICszODgsNyBAQCBwcml2YXRl
OgogCiAgICAgU3RyaW5nQnVpbGRlciBtX2xvZ0J1ZmZlcjsKICAgICBXVEZMb2dDaGFubmVsIG1f
bGFzdENoYW5uZWw7Ci0gICAgV1RGTG9nTGV2ZWwgbV9sYXN0TGV2ZWwgeyBXVEZMb2dMZXZlbEVy
cm9yIH07CisgICAgV1RGTG9nTGV2ZWwgbV9sYXN0TGV2ZWwgeyBXVEZMb2dMZXZlbDo6RXJyb3Ig
fTsKIH07CiAKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKQEAgLTQwMyw3ICs0MDMsNyBAQCBU
RVNUX0YoTG9nZ2luZ1Rlc3QsIExvZ09ic2VydmVyKQogICAgIEVYUEVDVF9UUlVFKHRoaXMtPm91
dHB1dCgpLmNvbnRhaW5zKCJ0ZXN0aW5nIDEsIDIsIDMiLCBmYWxzZSkpOwogICAgIEVYUEVDVF9U
UlVFKG9ic2VydmVyLmxvZygpLmNvbnRhaW5zKCJ0ZXN0aW5nIDEsIDIsIDMiLCBmYWxzZSkpOwog
ICAgIEVYUEVDVF9TVFJFUShvYnNlcnZlci5jaGFubmVsKCkubmFtZSwgbG9nQ2hhbm5lbCgpLm5h
bWUpOwotICAgIEVYUEVDVF9FUShzdGF0aWNfY2FzdDxpbnQ+KFdURkxvZ0xldmVsQWx3YXlzKSwg
c3RhdGljX2Nhc3Q8aW50PihvYnNlcnZlci5sZXZlbCgpKSk7CisgICAgRVhQRUNUX0VRKHN0YXRp
Y19jYXN0PGludD4oV1RGTG9nTGV2ZWw6OkFsd2F5cyksIHN0YXRpY19jYXN0PGludD4ob2JzZXJ2
ZXIubGV2ZWwoKSkpOwogCiAgICAgbG9nZ2VyKCkucmVtb3ZlT2JzZXJ2ZXIob2JzZXJ2ZXIpOwog
ICAgIEFMV0FZU19MT0coInRlc3RpbmcgIiwgMSwgIiwgIiwgMiwgIiwgMyIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>365168</attachid>
            <date>2019-03-19 09:06:57 -0700</date>
            <delta_ts>2019-03-19 09:47:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195904-20190319090655.patch</filename>
            <type>text/plain</type>
            <size>47374</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNDMxNDApCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDE5LTAzLTE5ICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTWFrZSBXVEZMb2dDaGFubmVsU3Rh
dGUgYW5kIFdURkxvZ0xldmVsIGVudW0gY2xhc3NlcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1OTA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJp
YyBDYXJsc29uLgorCisgICAgICAgICogd3RmL0Fzc2VydGlvbnMuY3BwOgorICAgICAgICAqIHd0
Zi9Bc3NlcnRpb25zLmg6CisgICAgICAgICogd3RmL0xvZ2dlci5oOgorICAgICAgICAoV1RGOjpM
b2dnZXI6OmxvZ0Fsd2F5cyBjb25zdCk6CisgICAgICAgIChXVEY6OkxvZ2dlcjo6ZXJyb3IgY29u
c3QpOgorICAgICAgICAoV1RGOjpMb2dnZXI6Ondhcm5pbmcgY29uc3QpOgorICAgICAgICAoV1RG
OjpMb2dnZXI6OmluZm8gY29uc3QpOgorICAgICAgICAoV1RGOjpMb2dnZXI6OmRlYnVnIGNvbnN0
KToKKyAgICAgICAgKFdURjo6TG9nZ2VyOjp3aWxsTG9nIGNvbnN0KToKKyAgICAgICAgKFdURjo6
TG9nZ2VyOjpsb2cpOgorICAgICAgICAqIHd0Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwOgor
ICAgICAgICAqIHd0Zi9SZWZDb3VudGVkTGVha0NvdW50ZXIuY3BwOgorCiAyMDE5LTAzLTE5ICBN
aWNoYWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJl
dmlld2VkLCByb2xsaW5nIG91dCByMjQzMTMyLgpJbmRleDogU291cmNlL1dURi93dGYvQWdncmVn
YXRlTG9nZ2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvQWdncmVnYXRlTG9nZ2Vy
LmgJKHJldmlzaW9uIDI0MzE0MCkKKysrIFNvdXJjZS9XVEYvd3RmL0FnZ3JlZ2F0ZUxvZ2dlci5o
CSh3b3JraW5nIGNvcHkpCkBAIC01NywzMiArNTcsMzIgQEAgcHVibGljOgogICAgICAgICAvLyAg
b24gc29tZSBzeXN0ZW1zLCBzbyBkb24ndCBhbGxvdyBpdC4KICAgICAgICAgVU5VU0VEX1BBUkFN
KGNoYW5uZWwpOwogI2Vsc2UKLSAgICAgICAgbG9nKGNoYW5uZWwsIFdURkxvZ0xldmVsQWx3YXlz
LCBhcmd1bWVudHMuLi4pOworICAgICAgICBsb2coY2hhbm5lbCwgV1RGTG9nTGV2ZWw6OkFsd2F5
cywgYXJndW1lbnRzLi4uKTsKICNlbmRpZgogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1l
Li4uIEFyZ3VtZW50cz4KICAgICBpbmxpbmUgdm9pZCBlcnJvcihXVEZMb2dDaGFubmVsJiBjaGFu
bmVsLCBjb25zdCBBcmd1bWVudHMmLi4uIGFyZ3VtZW50cykgY29uc3QKICAgICB7Ci0gICAgICAg
IGxvZyhjaGFubmVsLCBXVEZMb2dMZXZlbEVycm9yLCBhcmd1bWVudHMuLi4pOworICAgICAgICBs
b2coY2hhbm5lbCwgV1RGTG9nTGV2ZWw6OkVycm9yLCBhcmd1bWVudHMuLi4pOwogICAgIH0KIAog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KICAgICBpbmxpbmUgdm9pZCB3YXJu
aW5nKFdURkxvZ0NoYW5uZWwmIGNoYW5uZWwsIGNvbnN0IEFyZ3VtZW50cyYuLi4gYXJndW1lbnRz
KSBjb25zdAogICAgIHsKLSAgICAgICAgbG9nKGNoYW5uZWwsIFdURkxvZ0xldmVsV2FybmluZywg
YXJndW1lbnRzLi4uKTsKKyAgICAgICAgbG9nKGNoYW5uZWwsIFdURkxvZ0xldmVsOjpXYXJuaW5n
LCBhcmd1bWVudHMuLi4pOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3Vt
ZW50cz4KICAgICBpbmxpbmUgdm9pZCBpbmZvKFdURkxvZ0NoYW5uZWwmIGNoYW5uZWwsIGNvbnN0
IEFyZ3VtZW50cyYuLi4gYXJndW1lbnRzKSBjb25zdAogICAgIHsKLSAgICAgICAgbG9nKGNoYW5u
ZWwsIFdURkxvZ0xldmVsSW5mbywgYXJndW1lbnRzLi4uKTsKKyAgICAgICAgbG9nKGNoYW5uZWws
IFdURkxvZ0xldmVsOjpJbmZvLCBhcmd1bWVudHMuLi4pOwogICAgIH0KIAogICAgIHRlbXBsYXRl
PHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KICAgICBpbmxpbmUgdm9pZCBkZWJ1ZyhXVEZMb2dDaGFu
bmVsJiBjaGFubmVsLCBjb25zdCBBcmd1bWVudHMmLi4uIGFyZ3VtZW50cykgY29uc3QKICAgICB7
Ci0gICAgICAgIGxvZyhjaGFubmVsLCBXVEZMb2dMZXZlbERlYnVnLCBhcmd1bWVudHMuLi4pOwor
ICAgICAgICBsb2coY2hhbm5lbCwgV1RGTG9nTGV2ZWw6OkRlYnVnLCBhcmd1bWVudHMuLi4pOwog
ICAgIH0KIAogICAgIGlubGluZSBib29sIHdpbGxMb2coY29uc3QgV1RGTG9nQ2hhbm5lbCYgY2hh
bm5lbCwgV1RGTG9nTGV2ZWwgbGV2ZWwpIGNvbnN0CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9Bc3Nl
cnRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcAko
cmV2aXNpb24gMjQzMTQwKQorKysgU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQwOSwxNSArNDA5LDE1IEBAIHZvaWQgV1RGU2V0TG9nQ2hhbm5lbExldmVs
KFdURkxvZ0NoYW5uZWwKIAogYm9vbCBXVEZXaWxsTG9nV2l0aExldmVsKFdURkxvZ0NoYW5uZWwq
IGNoYW5uZWwsIFdURkxvZ0xldmVsIGxldmVsKQogewotICAgIHJldHVybiBjaGFubmVsLT5sZXZl
bCA+PSBsZXZlbCAmJiBjaGFubmVsLT5zdGF0ZSAhPSBXVEZMb2dDaGFubmVsT2ZmOworICAgIHJl
dHVybiBjaGFubmVsLT5sZXZlbCA+PSBsZXZlbCAmJiBjaGFubmVsLT5zdGF0ZSAhPSBXVEZMb2dD
aGFubmVsU3RhdGU6Ok9mZjsKIH0KIAogdm9pZCBXVEZMb2dXaXRoTGV2ZWwoV1RGTG9nQ2hhbm5l
bCogY2hhbm5lbCwgV1RGTG9nTGV2ZWwgbGV2ZWwsIGNvbnN0IGNoYXIqIGZvcm1hdCwgLi4uKQog
ewotICAgIGlmIChsZXZlbCAhPSBXVEZMb2dMZXZlbEFsd2F5cyAmJiBsZXZlbCA+IGNoYW5uZWwt
PmxldmVsKQorICAgIGlmIChsZXZlbCAhPSBXVEZMb2dMZXZlbDo6QWx3YXlzICYmIGxldmVsID4g
Y2hhbm5lbC0+bGV2ZWwpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChjaGFubmVsLT5sZXZl
bCAhPSBXVEZMb2dMZXZlbEFsd2F5cyAmJiBjaGFubmVsLT5zdGF0ZSA9PSBXVEZMb2dDaGFubmVs
T2ZmKQorICAgIGlmIChjaGFubmVsLT5sZXZlbCAhPSBXVEZMb2dMZXZlbDo6QWx3YXlzICYmIGNo
YW5uZWwtPnN0YXRlID09IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T2ZmKQogICAgICAgICByZXR1cm47
CiAKICAgICB2YV9saXN0IGFyZ3M7CkBAIC00MzIsMTUgKzQzMiwxNSBAQCB2b2lkIFdURkxvZ1dp
dGhMZXZlbChXVEZMb2dDaGFubmVsKiBjaGFuCiAKIHN0YXRpYyB2b2lkIFdURkxvZ1ZhTGlzdChX
VEZMb2dDaGFubmVsKiBjaGFubmVsLCBjb25zdCBjaGFyKiBmb3JtYXQsIHZhX2xpc3QgYXJncykK
IHsKLSAgICBpZiAoY2hhbm5lbC0+c3RhdGUgPT0gV1RGTG9nQ2hhbm5lbE9mZikKKyAgICBpZiAo
Y2hhbm5lbC0+c3RhdGUgPT0gV1RGTG9nQ2hhbm5lbFN0YXRlOjpPZmYpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIGlmIChjaGFubmVsLT5zdGF0ZSA9PSBXVEZMb2dDaGFubmVsT24pIHsKKyAgICBp
ZiAoY2hhbm5lbC0+c3RhdGUgPT0gV1RGTG9nQ2hhbm5lbFN0YXRlOjpPbikgewogICAgICAgICB2
cHJpbnRmX3N0ZGVycl93aXRoX3RyYWlsaW5nX25ld2xpbmUoZm9ybWF0LCBhcmdzKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIEFTU0VSVChjaGFubmVsLT5zdGF0ZSA9PSBXVEZMb2dD
aGFubmVsT25XaXRoQWNjdW11bGF0aW9uKTsKKyAgICBBU1NFUlQoY2hhbm5lbC0+c3RhdGUgPT0g
V1RGTG9nQ2hhbm5lbFN0YXRlOjpPbldpdGhBY2N1bXVsYXRpb24pOwogCiAgICAgQUxMT1dfTk9O
TElURVJBTF9GT1JNQVRfQkVHSU4KICAgICBTdHJpbmcgbG9nZ2luZ1N0cmluZyA9IFdURjo6Y3Jl
YXRlV2l0aEZvcm1hdEFuZEFyZ3VtZW50cyhmb3JtYXQsIGFyZ3MpOwpAQCAtNDY2LDcgKzQ2Niw3
IEBAIHZvaWQgV1RGTG9nKFdURkxvZ0NoYW5uZWwqIGNoYW5uZWwsIGNvbnMKIAogdm9pZCBXVEZM
b2dWZXJib3NlKGNvbnN0IGNoYXIqIGZpbGUsIGludCBsaW5lLCBjb25zdCBjaGFyKiBmdW5jdGlv
biwgV1RGTG9nQ2hhbm5lbCogY2hhbm5lbCwgY29uc3QgY2hhciogZm9ybWF0LCAuLi4pCiB7Ci0g
ICAgaWYgKGNoYW5uZWwtPnN0YXRlICE9IFdURkxvZ0NoYW5uZWxPbikKKyAgICBpZiAoY2hhbm5l
bC0+c3RhdGUgIT0gV1RGTG9nQ2hhbm5lbFN0YXRlOjpPbikKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgdmFfbGlzdCBhcmdzOwpAQCAtNTMzLDkgKzUzMyw5IEBAIHZvaWQgV1RGSW5pdGlhbGl6ZUxv
Z0NoYW5uZWxTdGF0ZXNGcm9tU3QKICAgICAgICAgVmVjdG9yPFN0cmluZz4gY29tcG9uZW50SW5m
byA9IGxvZ0xldmVsQ29tcG9uZW50LnNwbGl0KCc9Jyk7CiAgICAgICAgIFN0cmluZyBjb21wb25l
bnQgPSBjb21wb25lbnRJbmZvWzBdLnN0cmlwV2hpdGVTcGFjZSgpOwogCi0gICAgICAgIFdURkxv
Z0NoYW5uZWxTdGF0ZSBsb2dDaGFubmVsU3RhdGUgPSBXVEZMb2dDaGFubmVsT247CisgICAgICAg
IFdURkxvZ0NoYW5uZWxTdGF0ZSBsb2dDaGFubmVsU3RhdGUgPSBXVEZMb2dDaGFubmVsU3RhdGU6
Ok9uOwogICAgICAgICBpZiAoY29tcG9uZW50LnN0YXJ0c1dpdGgoJy0nKSkgewotICAgICAgICAg
ICAgbG9nQ2hhbm5lbFN0YXRlID0gV1RGTG9nQ2hhbm5lbE9mZjsKKyAgICAgICAgICAgIGxvZ0No
YW5uZWxTdGF0ZSA9IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T2ZmOwogICAgICAgICAgICAgY29tcG9u
ZW50ID0gY29tcG9uZW50LnN1YnN0cmluZygxKTsKICAgICAgICAgfQogCkBAIC01NDQsMTcgKzU0
NCwxNyBAQCB2b2lkIFdURkluaXRpYWxpemVMb2dDaGFubmVsU3RhdGVzRnJvbVN0CiAgICAgICAg
ICAgICBjb250aW51ZTsKICAgICAgICAgfQogCi0gICAgICAgIFdURkxvZ0xldmVsIGxvZ0NoYW5u
ZWxMZXZlbCA9IFdURkxvZ0xldmVsRXJyb3I7CisgICAgICAgIFdURkxvZ0xldmVsIGxvZ0NoYW5u
ZWxMZXZlbCA9IFdURkxvZ0xldmVsOjpFcnJvcjsKICAgICAgICAgaWYgKGNvbXBvbmVudEluZm8u
c2l6ZSgpID4gMSkgewogICAgICAgICAgICAgU3RyaW5nIGxldmVsID0gY29tcG9uZW50SW5mb1sx
XS5zdHJpcFdoaXRlU3BhY2UoKTsKICAgICAgICAgICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmlu
Z0FTQ0lJQ2FzZShsZXZlbCwgImVycm9yIikpCi0gICAgICAgICAgICAgICAgbG9nQ2hhbm5lbExl
dmVsID0gV1RGTG9nTGV2ZWxFcnJvcjsKKyAgICAgICAgICAgICAgICBsb2dDaGFubmVsTGV2ZWwg
PSBXVEZMb2dMZXZlbDo6RXJyb3I7CiAgICAgICAgICAgICBlbHNlIGlmIChlcXVhbExldHRlcnNJ
Z25vcmluZ0FTQ0lJQ2FzZShsZXZlbCwgIndhcm5pbmciKSkKLSAgICAgICAgICAgICAgICBsb2dD
aGFubmVsTGV2ZWwgPSBXVEZMb2dMZXZlbFdhcm5pbmc7CisgICAgICAgICAgICAgICAgbG9nQ2hh
bm5lbExldmVsID0gV1RGTG9nTGV2ZWw6Oldhcm5pbmc7CiAgICAgICAgICAgICBlbHNlIGlmIChl
cXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShsZXZlbCwgImluZm8iKSkKLSAgICAgICAgICAg
ICAgICBsb2dDaGFubmVsTGV2ZWwgPSBXVEZMb2dMZXZlbEluZm87CisgICAgICAgICAgICAgICAg
bG9nQ2hhbm5lbExldmVsID0gV1RGTG9nTGV2ZWw6OkluZm87CiAgICAgICAgICAgICBlbHNlIGlm
IChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShsZXZlbCwgImRlYnVnIikpCi0gICAgICAg
ICAgICAgICAgbG9nQ2hhbm5lbExldmVsID0gV1RGTG9nTGV2ZWxEZWJ1ZzsKKyAgICAgICAgICAg
ICAgICBsb2dDaGFubmVsTGV2ZWwgPSBXVEZMb2dMZXZlbDo6RGVidWc7CiAgICAgICAgICAgICBl
bHNlCiAgICAgICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCJVbmtub3duIGxvZ2dpbmcgbGV2ZWw6
ICVzIiwgbGV2ZWwudXRmOCgpLmRhdGEoKSk7CiAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9XVEYv
d3RmL0Fzc2VydGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25z
LmgJKHJldmlzaW9uIDI0MzE0MCkKKysrIFNvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuaAkod29y
a2luZyBjb3B5KQpAQCAtMTQ4LDggKzE0OCwxNCBAQCBleHRlcm4gIkMiIHsKICNkZWZpbmUgTk9f
UkVUVVJOX0RVRV9UT19DUkFTSAogI2VuZGlmCiAKLXR5cGVkZWYgZW51bSB7IFdURkxvZ0NoYW5u
ZWxPZmYsIFdURkxvZ0NoYW5uZWxPbiwgV1RGTG9nQ2hhbm5lbE9uV2l0aEFjY3VtdWxhdGlvbiB9
IFdURkxvZ0NoYW5uZWxTdGF0ZTsKLXR5cGVkZWYgZW51bSB7IFdURkxvZ0xldmVsQWx3YXlzLCBX
VEZMb2dMZXZlbEVycm9yLCBXVEZMb2dMZXZlbFdhcm5pbmcsIFdURkxvZ0xldmVsSW5mbywgV1RG
TG9nTGV2ZWxEZWJ1ZyB9IFdURkxvZ0xldmVsOworI2lmZGVmIF9fY3BsdXNwbHVzCitlbnVtIGNs
YXNzIFdURkxvZ0NoYW5uZWxTdGF0ZSA6IHVpbnQ4X3QgeyBPZmYsIE9uLCBPbldpdGhBY2N1bXVs
YXRpb24gfTsKKyN1bmRlZiBBbHdheXMKK2VudW0gY2xhc3MgV1RGTG9nTGV2ZWwgOiB1aW50OF90
IHsgQWx3YXlzLCBFcnJvciwgV2FybmluZywgSW5mbywgRGVidWcgfTsKKyNlbHNlCit0eXBlZGVm
IHVpbnQ4X3QgV1RGTG9nQ2hhbm5lbFN0YXRlOwordHlwZWRlZiB1aW50OF90IFdURkxvZ0xldmVs
OworI2VuZGlmCiAKIHR5cGVkZWYgc3RydWN0IHsKICAgICBXVEZMb2dDaGFubmVsU3RhdGUgc3Rh
dGU7CkBAIC0xNzQsMTAgKzE4MCwxMCBAQCB0eXBlZGVmIHN0cnVjdCB7CiAjaWYgIWRlZmluZWQo
REVGSU5FX0xPR19DSEFOTkVMKQogI2lmIFJFTEVBU0VfTE9HX0RJU0FCTEVECiAjZGVmaW5lIERF
RklORV9MT0dfQ0hBTk5FTChuYW1lLCBzdWJzeXN0ZW0pIFwKLSAgICBXVEZMb2dDaGFubmVsIExP
R19DSEFOTkVMKG5hbWUpID0geyBXVEZMb2dDaGFubmVsT2ZmLCAjbmFtZSwgV1RGTG9nTGV2ZWxF
cnJvciB9OworICAgIFdURkxvZ0NoYW5uZWwgTE9HX0NIQU5ORUwobmFtZSkgPSB7IChXVEZMb2dD
aGFubmVsU3RhdGUpMCwgI25hbWUsIChXVEZMb2dMZXZlbCkxIH07CiAjZWxzZQogI2RlZmluZSBE
RUZJTkVfTE9HX0NIQU5ORUwobmFtZSwgc3Vic3lzdGVtKSBcCi0gICAgV1RGTG9nQ2hhbm5lbCBM
T0dfQ0hBTk5FTChuYW1lKSA9IHsgV1RGTG9nQ2hhbm5lbE9mZiwgI25hbWUsIFdURkxvZ0xldmVs
RXJyb3IsIHN1YnN5c3RlbSwgT1NfTE9HX0RFRkFVTFQgfTsKKyAgICBXVEZMb2dDaGFubmVsIExP
R19DSEFOTkVMKG5hbWUpID0geyAoV1RGTG9nQ2hhbm5lbFN0YXRlKTAsICNuYW1lLCAoV1RGTG9n
TGV2ZWwpMSwgc3Vic3lzdGVtLCBPU19MT0dfREVGQVVMVCB9OwogI2VuZGlmCiAjZW5kaWYKIApJ
bmRleDogU291cmNlL1dURi93dGYvTG9nZ2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93
dGYvTG9nZ2VyLmgJKHJldmlzaW9uIDI0MzE0MCkKKysrIFNvdXJjZS9XVEYvd3RmL0xvZ2dlci5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xMjYsNDcgKzEyNiw0NyBAQCBwdWJsaWM6CiAgICAgICAgIC8v
ICBvbiBzb21lIHN5c3RlbXMsIHNvIGRvbid0IGFsbG93IGl0LgogICAgICAgICBVTlVTRURfUEFS
QU0oY2hhbm5lbCk7CiAjZWxzZQotICAgICAgICBpZiAoIXdpbGxMb2coY2hhbm5lbCwgV1RGTG9n
TGV2ZWxBbHdheXMpKQorICAgICAgICBpZiAoIXdpbGxMb2coY2hhbm5lbCwgV1RGTG9nTGV2ZWw6
OkFsd2F5cykpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgbG9nKGNoYW5uZWwsIFdU
RkxvZ0xldmVsQWx3YXlzLCBhcmd1bWVudHMuLi4pOworICAgICAgICBsb2coY2hhbm5lbCwgV1RG
TG9nTGV2ZWw6OkFsd2F5cywgYXJndW1lbnRzLi4uKTsKICNlbmRpZgogICAgIH0KIAogICAgIHRl
bXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KICAgICBpbmxpbmUgdm9pZCBlcnJvcihXVEZM
b2dDaGFubmVsJiBjaGFubmVsLCBjb25zdCBBcmd1bWVudHMmLi4uIGFyZ3VtZW50cykgY29uc3QK
ICAgICB7Ci0gICAgICAgIGlmICghd2lsbExvZyhjaGFubmVsLCBXVEZMb2dMZXZlbEVycm9yKSkK
KyAgICAgICAgaWYgKCF3aWxsTG9nKGNoYW5uZWwsIFdURkxvZ0xldmVsOjpFcnJvcikpCiAgICAg
ICAgICAgICByZXR1cm47CiAKLSAgICAgICAgbG9nKGNoYW5uZWwsIFdURkxvZ0xldmVsRXJyb3Is
IGFyZ3VtZW50cy4uLik7CisgICAgICAgIGxvZyhjaGFubmVsLCBXVEZMb2dMZXZlbDo6RXJyb3Is
IGFyZ3VtZW50cy4uLik7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJndW1l
bnRzPgogICAgIGlubGluZSB2b2lkIHdhcm5pbmcoV1RGTG9nQ2hhbm5lbCYgY2hhbm5lbCwgY29u
c3QgQXJndW1lbnRzJi4uLiBhcmd1bWVudHMpIGNvbnN0CiAgICAgewotICAgICAgICBpZiAoIXdp
bGxMb2coY2hhbm5lbCwgV1RGTG9nTGV2ZWxXYXJuaW5nKSkKKyAgICAgICAgaWYgKCF3aWxsTG9n
KGNoYW5uZWwsIFdURkxvZ0xldmVsOjpXYXJuaW5nKSkKICAgICAgICAgICAgIHJldHVybjsKIAot
ICAgICAgICBsb2coY2hhbm5lbCwgV1RGTG9nTGV2ZWxXYXJuaW5nLCBhcmd1bWVudHMuLi4pOwor
ICAgICAgICBsb2coY2hhbm5lbCwgV1RGTG9nTGV2ZWw6Oldhcm5pbmcsIGFyZ3VtZW50cy4uLik7
CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJndW1lbnRzPgogICAgIGlubGlu
ZSB2b2lkIGluZm8oV1RGTG9nQ2hhbm5lbCYgY2hhbm5lbCwgY29uc3QgQXJndW1lbnRzJi4uLiBh
cmd1bWVudHMpIGNvbnN0CiAgICAgewotICAgICAgICBpZiAoIXdpbGxMb2coY2hhbm5lbCwgV1RG
TG9nTGV2ZWxJbmZvKSkKKyAgICAgICAgaWYgKCF3aWxsTG9nKGNoYW5uZWwsIFdURkxvZ0xldmVs
OjpJbmZvKSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBsb2coY2hhbm5lbCwgV1RG
TG9nTGV2ZWxJbmZvLCBhcmd1bWVudHMuLi4pOworICAgICAgICBsb2coY2hhbm5lbCwgV1RGTG9n
TGV2ZWw6OkluZm8sIGFyZ3VtZW50cy4uLik7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5h
bWUuLi4gQXJndW1lbnRzPgogICAgIGlubGluZSB2b2lkIGRlYnVnKFdURkxvZ0NoYW5uZWwmIGNo
YW5uZWwsIGNvbnN0IEFyZ3VtZW50cyYuLi4gYXJndW1lbnRzKSBjb25zdAogICAgIHsKLSAgICAg
ICAgaWYgKCF3aWxsTG9nKGNoYW5uZWwsIFdURkxvZ0xldmVsRGVidWcpKQorICAgICAgICBpZiAo
IXdpbGxMb2coY2hhbm5lbCwgV1RGTG9nTGV2ZWw6OkRlYnVnKSkKICAgICAgICAgICAgIHJldHVy
bjsKIAotICAgICAgICBsb2coY2hhbm5lbCwgV1RGTG9nTGV2ZWxEZWJ1ZywgYXJndW1lbnRzLi4u
KTsKKyAgICAgICAgbG9nKGNoYW5uZWwsIFdURkxvZ0xldmVsOjpEZWJ1ZywgYXJndW1lbnRzLi4u
KTsKICAgICB9CiAKICAgICBpbmxpbmUgYm9vbCB3aWxsTG9nKGNvbnN0IFdURkxvZ0NoYW5uZWwm
IGNoYW5uZWwsIFdURkxvZ0xldmVsIGxldmVsKSBjb25zdApAQCAtMTc0LDEwICsxNzQsMTAgQEAg
cHVibGljOgogICAgICAgICBpZiAoIW1fZW5hYmxlZCkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAotICAgICAgICBpZiAobGV2ZWwgPD0gV1RGTG9nTGV2ZWxFcnJvcikKKyAgICAgICAgaWYg
KGxldmVsIDw9IFdURkxvZ0xldmVsOjpFcnJvcikKICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
Ci0gICAgICAgIGlmIChjaGFubmVsLnN0YXRlID09IFdURkxvZ0NoYW5uZWxPZmYgfHwgbGV2ZWwg
PiBjaGFubmVsLmxldmVsKQorICAgICAgICBpZiAoY2hhbm5lbC5zdGF0ZSA9PSBXVEZMb2dDaGFu
bmVsU3RhdGU6Ok9mZiB8fCBsZXZlbCA+IGNoYW5uZWwubGV2ZWwpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAKICAgICAgICAgcmV0dXJuIG1fZW5hYmxlZDsKQEAgLTI0Miw3ICsyNDIsNyBA
QCBwcml2YXRlOgogICAgICAgICBvc19sb2coY2hhbm5lbC5vc0xvZ0NoYW5uZWwsICIle3B1Ymxp
Y31zIiwgbG9nTWVzc2FnZS51dGY4KCkuZGF0YSgpKTsKICNlbmRpZgogCi0gICAgICAgIGlmIChj
aGFubmVsLnN0YXRlID09IFdURkxvZ0NoYW5uZWxPZmYgfHwgbGV2ZWwgPiBjaGFubmVsLmxldmVs
KQorICAgICAgICBpZiAoY2hhbm5lbC5zdGF0ZSA9PSBXVEZMb2dDaGFubmVsU3RhdGU6Ok9mZiB8
fCBsZXZlbCA+IGNoYW5uZWwubGV2ZWwpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAg
Zm9yIChPYnNlcnZlciYgb2JzZXJ2ZXIgOiBvYnNlcnZlcnMoKSkKSW5kZXg6IFNvdXJjZS9XVEYv
d3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93
dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcAkocmV2aXNpb24gMjQzMTQwKQorKysgU291cmNl
L1dURi93dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUs
OSArMzUsOSBAQAogbmFtZXNwYWNlIFdURiB7CiAKICNpZiBSRUxFQVNFX0xPR19ESVNBQkxFRAot
V1RGTG9nQ2hhbm5lbCBMb2dNZW1vcnlQcmVzc3VyZSA9IHsgV1RGTG9nQ2hhbm5lbE9uLCAiTWVt
b3J5UHJlc3N1cmUiLCBXVEZMb2dMZXZlbEVycm9yIH07CitXVEZMb2dDaGFubmVsIExvZ01lbW9y
eVByZXNzdXJlID0geyBXVEZMb2dDaGFubmVsU3RhdGU6Ok9uLCAiTWVtb3J5UHJlc3N1cmUiLCBX
VEZMb2dMZXZlbDo6RXJyb3IgfTsKICNlbHNlCi1XVEZMb2dDaGFubmVsIExvZ01lbW9yeVByZXNz
dXJlID0geyBXVEZMb2dDaGFubmVsT24sICJNZW1vcnlQcmVzc3VyZSIsIFdURkxvZ0xldmVsRXJy
b3IsIExPR19DSEFOTkVMX1dFQktJVF9TVUJTWVNURU0sIE9TX0xPR19ERUZBVUxUIH07CitXVEZM
b2dDaGFubmVsIExvZ01lbW9yeVByZXNzdXJlID0geyBXVEZMb2dDaGFubmVsU3RhdGU6Ok9uLCAi
TWVtb3J5UHJlc3N1cmUiLCBXVEZMb2dMZXZlbDo6RXJyb3IsIExPR19DSEFOTkVMX1dFQktJVF9T
VUJTWVNURU0sIE9TX0xPR19ERUZBVUxUIH07CiAjZW5kaWYKIAogV1RGX0VYUE9SVF9QUklWQVRF
IGJvb2wgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpSZWxpZWZMb2dnZXI6OnNfbG9nZ2luZ0VuYWJs
ZWQgPSBmYWxzZTsKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvUmVmQ291bnRlZExlYWtDb3VudGVyLmNw
cAkocmV2aXNpb24gMjQzMTQwKQorKysgU291cmNlL1dURi93dGYvUmVmQ291bnRlZExlYWtDb3Vu
dGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAsOSArNDAsOSBAQCB2b2lkIFJlZkNvdW50ZWRM
ZWFrQ291bnRlcjo6ZGVjcmVtZW50KCkgCiAKICNkZWZpbmUgTE9HX0NIQU5ORUxfUFJFRklYIExv
ZwogI2lmIFJFTEVBU0VfTE9HX0RJU0FCTEVECi1zdGF0aWMgV1RGTG9nQ2hhbm5lbCBMb2dSZWZD
b3VudGVkTGVha3MgPSB7IFdURkxvZ0NoYW5uZWxPbiwgIlJlZkNvdW50ZWRMZWFrcyIsIFdURkxv
Z0xldmVsRXJyb3IgfTsKK3N0YXRpYyBXVEZMb2dDaGFubmVsIExvZ1JlZkNvdW50ZWRMZWFrcyA9
IHsgV1RGTG9nQ2hhbm5lbFN0YXRlOjpPbiwgIlJlZkNvdW50ZWRMZWFrcyIsIFdURkxvZ0xldmVs
OjpFcnJvciB9OwogI2Vsc2UKLXN0YXRpYyBXVEZMb2dDaGFubmVsIExvZ1JlZkNvdW50ZWRMZWFr
cyA9IHsgV1RGTG9nQ2hhbm5lbE9uLCAiUmVmQ291bnRlZExlYWtzIiwgV1RGTG9nTGV2ZWxFcnJv
ciwgTE9HX0NIQU5ORUxfV0VCS0lUX1NVQlNZU1RFTSwgT1NfTE9HX0RFRkFVTFQgfTsKK3N0YXRp
YyBXVEZMb2dDaGFubmVsIExvZ1JlZkNvdW50ZWRMZWFrcyA9IHsgV1RGTG9nQ2hhbm5lbFN0YXRl
OjpPbiwgIlJlZkNvdW50ZWRMZWFrcyIsIFdURkxvZ0xldmVsOjpFcnJvciwgTE9HX0NIQU5ORUxf
V0VCS0lUX1NVQlNZU1RFTSwgT1NfTE9HX0RFRkFVTFQgfTsKICNlbmRpZgogCiB0eXBlZGVmIEhh
c2hDb3VudGVkU2V0PGNvbnN0IGNoYXIqLCBQdHJIYXNoPGNvbnN0IGNoYXIqPj4gUmVhc29uU2V0
OwpJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjQzMTQwKQorKysgU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTktMDMtMTkgIEFsZXgg
Q2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBNYWtlIFdU
RkxvZ0NoYW5uZWxTdGF0ZSBhbmQgV1RGTG9nTGV2ZWwgZW51bSBjbGFzc2VzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTU5MDQKKworICAgICAgICBS
ZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNl
L1NvdXJjZUJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZW1vdmVTYW1wbGVzRnJvbVRy
YWNrQnVmZmVyKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENNZWRpYUVuZHBvaW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ01lZGlh
RW5kcG9pbnQ6Ok9uU3RhdHNEZWxpdmVyZWQpOgorICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRD
TWVkaWFFbmRwb2ludDo6c3RhdHNMb2dJbnRlcnZhbCBjb25zdCk6CisgICAgICAgICogZG9tL0Rv
Y3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1lc3NhZ2VMZXZlbEZyb21XVEZMb2dMZXZl
bCk6CisgICAgICAgICogaHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGVFBEaXJlY3RvcnlEb2N1bWVudDo6RlRQRGlyZWN0b3J5RG9jdW1lbnQpOgorICAg
ICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
TWVkaWFFbGVtZW50OjpzZWVrVGFzayk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVt
ZW50OjpzZWxlY3ROZXh0U291cmNlQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudDo6c291cmNlV2FzQWRkZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxl
bWVudDo6c291cmNlV2FzUmVtb3ZlZCk6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9XZWJD
b25zb2xlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29uc29sZUFnZW50OjpnZXRM
b2dnaW5nQ2hhbm5lbHMpOgorICAgICAgICAoV2ViQ29yZTo6Y2hhbm5lbENvbmZpZ3VyYXRpb25G
b3JTdHJpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL0xvZ2dpbmcuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6aXNMb2dDaGFubmVsRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpzZXRMb2dDaGFu
bmVsVG9BY2N1bXVsYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAgICAo
LVtXZWJDb3JlQVZGTW92aWVPYnNlcnZlciBvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOm9mT2JqZWN0
OmNoYW5nZTpjb250ZXh0Ol0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZW5xdWV1
ZVZpZGVvU2FtcGxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMv
TGliV2ViUlRDUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aW5pdGlhbGl6ZVBlZXJD
b25uZWN0aW9uRmFjdG9yeUFuZFRocmVhZHMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJM
YXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29tcG9zaXRpbmdMb2dFbmFi
bGVkKToKKwogMjAxOS0wMy0xOSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5j
b20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjQzMDU4KTogW0dTdHJlYW1lcl0gMyB0ZXN0cyBu
b3cgdGltaW5nIG91dApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9T
b3VyY2VCdWZmZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcAkocmV2aXNpb24gMjQzMTQwKQorKysgU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC03NDEsNyArNzQxLDcgQEAgc3RhdGljIFBsYXRmb3JtVGltZVJhbmdlcyByZW1vdmVTYW1w
bGVzRgogICAgIHNpemVfdCBieXRlc1JlbW92ZWQgPSAwOwogICAgIGF1dG8gbG9nSWRlbnRpZmll
ciA9IFdURjo6TG9nZ2VyOjpMb2dTaXRlSWRlbnRpZmllcihidWZmZXItPmxvZ0NsYXNzTmFtZSgp
LCBsb2dQcmVmaXgsIGJ1ZmZlci0+bG9nSWRlbnRpZmllcigpKTsKICAgICBhdXRvJiBsb2dnZXIg
PSBidWZmZXItPmxvZ2dlcigpOwotICAgIGF1dG8gd2lsbExvZyA9IGxvZ2dlci53aWxsTG9nKGJ1
ZmZlci0+bG9nQ2hhbm5lbCgpLCBXVEZMb2dMZXZlbERlYnVnKTsKKyAgICBhdXRvIHdpbGxMb2cg
PSBsb2dnZXIud2lsbExvZyhidWZmZXItPmxvZ0NoYW5uZWwoKSwgV1RGTG9nTGV2ZWw6OkRlYnVn
KTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGxvZ1ByZWZpeCk7CiAgICAgVU5VU0VEX1BBUkFN
KGJ1ZmZlcik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndl
YnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50
LmNwcAkocmV2aXNpb24gMjQzMTQwKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTg2NSw3ICs4NjUsNyBAQCB2b2lkIExpYldlYlJUQ01lZGlhRW5kcG9pbnQ6Ok9uU3RhdHNE
ZWxpCiAgICAgICAgIH0KIAogICAgICAgICBmb3IgKGF1dG8gaXRlcmF0b3IgPSByZXBvcnQtPmJl
Z2luKCk7IGl0ZXJhdG9yICE9IHJlcG9ydC0+ZW5kKCk7ICsraXRlcmF0b3IpIHsKLSAgICAgICAg
ICAgIGlmIChsb2dnZXIoKS53aWxsTG9nKGxvZ0NoYW5uZWwoKSwgV1RGTG9nTGV2ZWxEZWJ1Zykp
IHsKKyAgICAgICAgICAgIGlmIChsb2dnZXIoKS53aWxsTG9nKGxvZ0NoYW5uZWwoKSwgV1RGTG9n
TGV2ZWw6OkRlYnVnKSkgewogICAgICAgICAgICAgICAgIC8vIFN0YXRzIGFyZSB2ZXJ5IHZlcmJv
c2UsIGxldCdzIG9ubHkgZGlzcGxheSB0aGVtIGluIGluc3BlY3RvciBjb25zb2xlIGluIHZlcmJv
c2UgbW9kZS4KICAgICAgICAgICAgICAgICBsb2dnZXIoKS5kZWJ1ZyhMb2dXZWJSVEMsCiAgICAg
ICAgICAgICAgICAgICAgIExvZ2dlcjo6TG9nU2l0ZUlkZW50aWZpZXIoIkxpYldlYlJUQ01lZGlh
RW5kcG9pbnQiLCAiT25TdGF0c0RlbGl2ZXJlZCIsIGxvZ0lkZW50aWZpZXIoKSksCkBAIC05MDQs
NyArOTA0LDcgQEAgV1RGTG9nQ2hhbm5lbCYgTGliV2ViUlRDTWVkaWFFbmRwb2ludDo6bAogCiBT
ZWNvbmRzIExpYldlYlJUQ01lZGlhRW5kcG9pbnQ6OnN0YXRzTG9nSW50ZXJ2YWwoaW50NjRfdCBy
ZXBvcnRUaW1lc3RhbXApIGNvbnN0CiB7Ci0gICAgaWYgKGxvZ2dlcigpLndpbGxMb2cobG9nQ2hh
bm5lbCgpLCBXVEZMb2dMZXZlbEluZm8pKQorICAgIGlmIChsb2dnZXIoKS53aWxsTG9nKGxvZ0No
YW5uZWwoKSwgV1RGTG9nTGV2ZWw6OkluZm8pKQogICAgICAgICByZXR1cm4gMl9zOwogCiAgICAg
aWYgKHJlcG9ydFRpbWVzdGFtcCAtIG1fc3RhdHNGaXJzdERlbGl2ZXJlZFRpbWVzdGFtcCA+IDE1
MDAwMDAwKQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCShyZXZpc2lvbiAyNDMxNDApCisr
KyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NTM4
LDE4ICs4NTM4LDE4IEBAIHN0YXRpYyBNZXNzYWdlU291cmNlIG1lc3NhZ2VTb3VyY2VGb3JXVEYK
IHN0YXRpYyBNZXNzYWdlTGV2ZWwgbWVzc2FnZUxldmVsRnJvbVdURkxvZ0xldmVsKFdURkxvZ0xl
dmVsIGxldmVsKQogewogICAgIHN3aXRjaCAobGV2ZWwpIHsKLSAgICBjYXNlIFdURkxvZ0xldmVs
QWx3YXlzOgorICAgIGNhc2UgV1RGTG9nTGV2ZWw6OkFsd2F5czoKICAgICAgICAgcmV0dXJuIE1l
c3NhZ2VMZXZlbDo6TG9nOwotICAgIGNhc2UgV1RGTG9nTGV2ZWxFcnJvcjoKKyAgICBjYXNlIFdU
RkxvZ0xldmVsOjpFcnJvcjoKICAgICAgICAgcmV0dXJuIE1lc3NhZ2VMZXZlbDo6RXJyb3I7CiAg
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgV1RGTG9nTGV2ZWxXYXJuaW5nOgorICAgIGNhc2UgV1RG
TG9nTGV2ZWw6Oldhcm5pbmc6CiAgICAgICAgIHJldHVybiBNZXNzYWdlTGV2ZWw6Oldhcm5pbmc7
CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgV1RGTG9nTGV2ZWxJbmZvOgorICAgIGNhc2UgV1RG
TG9nTGV2ZWw6OkluZm86CiAgICAgICAgIHJldHVybiBNZXNzYWdlTGV2ZWw6OkluZm87CiAgICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgV1RGTG9nTGV2ZWxEZWJ1ZzoKKyAgICBjYXNlIFdURkxvZ0xl
dmVsOjpEZWJ1ZzoKICAgICAgICAgcmV0dXJuIE1lc3NhZ2VMZXZlbDo6RGVidWc7CiAgICAgICAg
IGJyZWFrOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvRlRQRGlyZWN0b3J5RG9j
dW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvRlRQRGlyZWN0b3J5
RG9jdW1lbnQuY3BwCShyZXZpc2lvbiAyNDMxNDApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0ZU
UERpcmVjdG9yeURvY3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDI1LDcgKzQyNSw3IEBA
IEZUUERpcmVjdG9yeURvY3VtZW50OjpGVFBEaXJlY3RvcnlEb2N1bWUKICAgICA6IEhUTUxEb2N1
bWVudChmcmFtZSwgdXJsKQogewogI2lmICFMT0dfRElTQUJMRUQKLSAgICBMb2dGVFAuc3RhdGUg
PSBXVEZMb2dDaGFubmVsT247CisgICAgTG9nRlRQLnN0YXRlID0gV1RGTG9nQ2hhbm5lbFN0YXRl
OjpPbjsKICNlbmRpZgogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAJKHJldmlzaW9uIDI0MzE0MCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwNzUsNyArMzA3NSw3IEBAIHZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6c2Vla1Rhc2soKQogICAgIC8vIHRpbWUgc2NhbGUsIHdlIHdpbGwg
YXNrIHRoZSBtZWRpYSBlbmdpbmUgdG8gInNlZWsiIHRvIHRoZSBjdXJyZW50IG1vdmllIHRpbWUs
IHdoaWNoIG1heSBiZSBhIG5vb3AgYW5kCiAgICAgLy8gbm90IGdlbmVyYXRlIGEgdGltZWNoYW5n
ZWQgY2FsbGJhY2suIFRoaXMgbWVhbnMgbV9zZWVraW5nIHdpbGwgbmV2ZXIgYmUgY2xlYXJlZCBh
bmQgd2Ugd2lsbCBuZXZlcgogICAgIC8vIGZpcmUgYSAnc2Vla2VkJyBldmVudC4KLSAgICBpZiAo
d2lsbExvZyhXVEZMb2dMZXZlbERlYnVnKSkgeworICAgIGlmICh3aWxsTG9nKFdURkxvZ0xldmVs
OjpEZWJ1ZykpIHsKICAgICAgICAgTWVkaWFUaW1lIG1lZGlhVGltZSA9IG1fcGxheWVyLT5tZWRp
YVRpbWVGb3JUaW1lVmFsdWUodGltZSk7CiAgICAgICAgIGlmICh0aW1lICE9IG1lZGlhVGltZSkK
ICAgICAgICAgICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsIHRpbWUsICIgbWVkaWEgdGltZWxp
bmUgZXF1aXZhbGVudCBpcyAiLCBtZWRpYVRpbWUpOwpAQCAtNDY1MSw3ICs0NjUxLDcgQEAgVVJM
IEhUTUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE5leHRTb3VyY2VDaAogICAgIFVOVVNFRF9QQVJBTShr
ZXlTeXN0ZW0pOwogCiAgICAgLy8gRG9uJ3QgbG9nIGlmIHRoaXMgd2FzIGp1c3QgY2FsbGVkIHRv
IGZpbmQgb3V0IGlmIHRoZXJlIGFyZSBhbnkgdmFsaWQgPHNvdXJjZT4gZWxlbWVudHMuCi0gICAg
Ym9vbCBzaG91bGRMb2cgPSB3aWxsTG9nKFdURkxvZ0xldmVsRGVidWcpICYmIGFjdGlvbklmSW52
YWxpZCAhPSBEb05vdGhpbmc7CisgICAgYm9vbCBzaG91bGRMb2cgPSB3aWxsTG9nKFdURkxvZ0xl
dmVsOjpEZWJ1ZykgJiYgYWN0aW9uSWZJbnZhbGlkICE9IERvTm90aGluZzsKICAgICBpZiAoc2hv
dWxkTG9nKQogICAgICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSKTsKIApAQCAtNDc1MCw3ICs0
NzUwLDcgQEAgQ2hlY2tBZ2FpbjoKIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpzb3VyY2VXYXNB
ZGRlZChIVE1MU291cmNlRWxlbWVudCYgc291cmNlKQogewotICAgIGlmICh3aWxsTG9nKFdURkxv
Z0xldmVsSW5mbykgJiYgc291cmNlLmhhc1RhZ05hbWUoc291cmNlVGFnKSkgeworICAgIGlmICh3
aWxsTG9nKFdURkxvZ0xldmVsOjpJbmZvKSAmJiBzb3VyY2UuaGFzVGFnTmFtZShzb3VyY2VUYWcp
KSB7CiAgICAgICAgIFVSTCB1cmwgPSBzb3VyY2UuZ2V0Tm9uRW1wdHlVUkxBdHRyaWJ1dGUoc3Jj
QXR0cik7CiAgICAgICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsICInc3JjJyBpcyAiLCB1cmwp
OwogICAgIH0KQEAgLTQ4MDIsNyArNDgwMiw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c291
cmNlV2FzQWRkZWQoSFQKIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpzb3VyY2VXYXNSZW1vdmVk
KEhUTUxTb3VyY2VFbGVtZW50JiBzb3VyY2UpCiB7Ci0gICAgaWYgKHdpbGxMb2coV1RGTG9nTGV2
ZWxJbmZvKSAmJiBzb3VyY2UuaGFzVGFnTmFtZShzb3VyY2VUYWcpKSB7CisgICAgaWYgKHdpbGxM
b2coV1RGTG9nTGV2ZWw6OkluZm8pICYmIHNvdXJjZS5oYXNUYWdOYW1lKHNvdXJjZVRhZykpIHsK
ICAgICAgICAgVVJMIHVybCA9IHNvdXJjZS5nZXROb25FbXB0eVVSTEF0dHJpYnV0ZShzcmNBdHRy
KTsKICAgICAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwgIidzcmMnIGlzICIsIHVybCk7CiAg
ICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9XZWJDb25zb2xlQWdl
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvV2Vi
Q29uc29sZUFnZW50LmNwcAkocmV2aXNpb24gMjQzMTQwKQorKysgU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2FnZW50cy9XZWJDb25zb2xlQWdlbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02OCwx
NSArNjgsMTUgQEAgdm9pZCBXZWJDb25zb2xlQWdlbnQ6OmdldExvZ2dpbmdDaGFubmVscwogICAg
ICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIGF1dG8gbGV2ZWwgPSBJbnNwZWN0b3I6OlByb3Rv
Y29sOjpDb25zb2xlOjpDaGFubmVsTGV2ZWw6Ok9mZjsKLSAgICAgICAgaWYgKGxvZ0NoYW5uZWwt
PnN0YXRlICE9IFdURkxvZ0NoYW5uZWxPZmYpIHsKKyAgICAgICAgaWYgKGxvZ0NoYW5uZWwtPnN0
YXRlICE9IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T2ZmKSB7CiAgICAgICAgICAgICBzd2l0Y2ggKGxv
Z0NoYW5uZWwtPmxldmVsKSB7Ci0gICAgICAgICAgICBjYXNlIFdURkxvZ0xldmVsQWx3YXlzOgot
ICAgICAgICAgICAgY2FzZSBXVEZMb2dMZXZlbEVycm9yOgotICAgICAgICAgICAgY2FzZSBXVEZM
b2dMZXZlbFdhcm5pbmc6Ci0gICAgICAgICAgICBjYXNlIFdURkxvZ0xldmVsSW5mbzoKKyAgICAg
ICAgICAgIGNhc2UgV1RGTG9nTGV2ZWw6OkFsd2F5czoKKyAgICAgICAgICAgIGNhc2UgV1RGTG9n
TGV2ZWw6OkVycm9yOgorICAgICAgICAgICAgY2FzZSBXVEZMb2dMZXZlbDo6V2FybmluZzoKKyAg
ICAgICAgICAgIGNhc2UgV1RGTG9nTGV2ZWw6OkluZm86CiAgICAgICAgICAgICAgICAgbGV2ZWwg
PSBJbnNwZWN0b3I6OlByb3RvY29sOjpDb25zb2xlOjpDaGFubmVsTGV2ZWw6OkJhc2ljOwogICAg
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBXVEZMb2dMZXZlbERlYnVnOgor
ICAgICAgICAgICAgY2FzZSBXVEZMb2dMZXZlbDo6RGVidWc6CiAgICAgICAgICAgICAgICAgbGV2
ZWwgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpDb25zb2xlOjpDaGFubmVsTGV2ZWw6OlZlcmJvc2U7
CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CkBAIC05NiwxNCArOTYsMTQg
QEAgc3RhdGljIE9wdGlvbmFsPHN0ZDo6cGFpcjxXVEZMb2dDaGFubmVsUwogICAgIFdURkxvZ0xl
dmVsIGxldmVsOwogCiAgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobGV2ZWxTdHJpbmcs
ICJvZmYiKSkgewotICAgICAgICBzdGF0ZSA9IFdURkxvZ0NoYW5uZWxPZmY7Ci0gICAgICAgIGxl
dmVsID0gV1RGTG9nTGV2ZWxFcnJvcjsKKyAgICAgICAgc3RhdGUgPSBXVEZMb2dDaGFubmVsU3Rh
dGU6Ok9mZjsKKyAgICAgICAgbGV2ZWwgPSBXVEZMb2dMZXZlbDo6RXJyb3I7CiAgICAgfSBlbHNl
IHsKLSAgICAgICAgc3RhdGUgPSBXVEZMb2dDaGFubmVsT247CisgICAgICAgIHN0YXRlID0gV1RG
TG9nQ2hhbm5lbFN0YXRlOjpPbjsKICAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2Uo
bGV2ZWxTdHJpbmcsICJiYXNpYyIpKQotICAgICAgICAgICAgbGV2ZWwgPSBXVEZMb2dMZXZlbFdh
cm5pbmc7CisgICAgICAgICAgICBsZXZlbCA9IFdURkxvZ0xldmVsOjpXYXJuaW5nOwogICAgICAg
ICBlbHNlIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGxldmVsU3RyaW5nLCAidmVyYm9zZSIp
KQotICAgICAgICAgICAgbGV2ZWwgPSBXVEZMb2dMZXZlbERlYnVnOworICAgICAgICAgICAgbGV2
ZWwgPSBXVEZMb2dMZXZlbDo6RGVidWc7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9n
Z2luZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5j
cHAJKHJldmlzaW9uIDI0MzE0MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NCw3ICs1NCw3IEBAIGJvb2wgaXNMb2dDaGFubmVsRW5h
YmxlZChjb25zdCBTdHJpbmcmIG4KICAgICBXVEZMb2dDaGFubmVsKiBjaGFubmVsID0gV1RGTG9n
Q2hhbm5lbEJ5TmFtZShsb2dDaGFubmVscywgbG9nQ2hhbm5lbENvdW50LCBuYW1lLnV0ZjgoKS5k
YXRhKCkpOwogICAgIGlmICghY2hhbm5lbCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJl
dHVybiBjaGFubmVsLT5zdGF0ZSAhPSBXVEZMb2dDaGFubmVsT2ZmOworICAgIHJldHVybiBjaGFu
bmVsLT5zdGF0ZSAhPSBXVEZMb2dDaGFubmVsU3RhdGU6Ok9mZjsKIH0KIAogc3RhdGljIGJvb2wg
bG9nQ2hhbm5lbHNOZWVkSW5pdGlhbGl6YXRpb24gPSB0cnVlOwpAQCAtNjUsNyArNjUsNyBAQCB2
b2lkIHNldExvZ0NoYW5uZWxUb0FjY3VtdWxhdGUoY29uc3QgU3RyCiAgICAgaWYgKCFjaGFubmVs
KQogICAgICAgICByZXR1cm47CiAKLSAgICBjaGFubmVsLT5zdGF0ZSA9IFdURkxvZ0NoYW5uZWxP
bldpdGhBY2N1bXVsYXRpb247CisgICAgY2hhbm5lbC0+c3RhdGUgPSBXVEZMb2dDaGFubmVsU3Rh
dGU6Ok9uV2l0aEFjY3VtdWxhdGlvbjsKICAgICBsb2dDaGFubmVsc05lZWRJbml0aWFsaXphdGlv
biA9IHRydWU7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQkocmV2aXNpb24gMjQz
MTQwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQkod29ya2luZyBjb3B5KQpA
QCAtMzU1MSw3ICszNTUxLDcgQEAgLSAodm9pZClvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOmtleVBh
dGggbwogICAgICAgICB9CiAKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKLSAgICAgICAgaWYg
KHBsYXllci0+bG9nZ2VyKCkud2lsbExvZyhwbGF5ZXItPmxvZ0NoYW5uZWwoKSwgV1RGTG9nTGV2
ZWxEZWJ1ZykgJiYgIShba2V5UGF0aCBpc0VxdWFsVG9TdHJpbmc6QCJsb2FkZWRUaW1lUmFuZ2Vz
Il0gfHwgW2tleVBhdGggaXNFcXVhbFRvU3RyaW5nOkAic2Vla2FibGVUaW1lUmFuZ2VzIl0pKSB7
CisgICAgICAgIGlmIChwbGF5ZXItPmxvZ2dlcigpLndpbGxMb2cocGxheWVyLT5sb2dDaGFubmVs
KCksIFdURkxvZ0xldmVsOjpEZWJ1ZykgJiYgIShba2V5UGF0aCBpc0VxdWFsVG9TdHJpbmc6QCJs
b2FkZWRUaW1lUmFuZ2VzIl0gfHwgW2tleVBhdGggaXNFcXVhbFRvU3RyaW5nOkAic2Vla2FibGVU
aW1lUmFuZ2VzIl0pKSB7CiAgICAgICAgICAgICBhdXRvIGlkZW50aWZpZXIgPSBMb2dnZXI6Okxv
Z1NpdGVJZGVudGlmaWVyKCJNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24iLCAib2JzZXJ2
ZVZhbHVlRm9yS2V5UGF0aCIsIHBsYXllci0+bG9nSWRlbnRpZmllcigpKTsKIAogICAgICAgICAg
ICAgaWYgKHNob3VsZExvZ1ZhbHVlKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1t
CShyZXZpc2lvbiAyNDMxNDApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0J
KHdvcmtpbmcgY29weSkKQEAgLTM4NSw3ICszODUsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqCiAgICAgc2FtcGxlLm9mZnNldFRpbWVzdGFtcHNCeSh0aW1lbGlu
ZU9mZnNldCk7CiAgICAgREVCVUdfTE9HKExPR0lERU5USUZJRVIsICJ1cGRhdGVkIHNhbXBsZSA9
ICIsIHNhbXBsZSk7CiAKLSAgICBpZiAoV0lMTF9MT0coV1RGTG9nTGV2ZWxEZWJ1ZykpIHsKKyAg
ICBpZiAoV0lMTF9MT0coV1RGTG9nTGV2ZWw6OkRlYnVnKSkgewogICAgICAgICBNZWRpYVRpbWUg
bm93ID0gc3RyZWFtVGltZSgpOwogICAgICAgICBkb3VibGUgZGVsdGEgPSAoc2FtcGxlLnByZXNl
bnRhdGlvblRpbWUoKSAtIG5vdykudG9Eb3VibGUoKTsKICAgICAgICAgaWYgKGRlbHRhIDwgMCkK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyU2hhZGVyUHJvZ3JhbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmNwcAkocmV2aXNp
b24gMjQzMTQwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBzdGF0aWMgaW5saW5lIGJvb2wgY29tcG9zaXRpbmdM
b2dFbmFibGVkKCkKIHsKICNpZiAhTE9HX0RJU0FCTEVECi0gICAgcmV0dXJuIExvZ0NvbXBvc2l0
aW5nLnN0YXRlID09IFdURkxvZ0NoYW5uZWxPbjsKKyAgICByZXR1cm4gTG9nQ29tcG9zaXRpbmcu
c3RhdGUgPT0gV1RGTG9nQ2hhbm5lbFN0YXRlOjpPbjsKICNlbHNlCiAgICAgcmV0dXJuIGZhbHNl
OwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAJKHJl
dmlzaW9uIDI0MzE0MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0MiwyNSAr
MTQyLDI1IEBAIHN0YXRpYyBydGM6OkxvZ2dpbmdTZXZlcml0eSBjb21wdXRlTG9nTGUKIHsKICNp
ZiBkZWZpbmVkKE5ERUJVRykKICNpZiAhTE9HX0RJU0FCTEVEIHx8ICFSRUxFQVNFX0xPR19ESVNB
QkxFRAotICAgIGlmIChMb2dXZWJSVEMuc3RhdGUgIT0gV1RGTG9nQ2hhbm5lbE9uKQorICAgIGlm
IChMb2dXZWJSVEMuc3RhdGUgIT0gV1RGTG9nQ2hhbm5lbFN0YXRlOjpPbikKICAgICAgICAgcmV0
dXJuIHJ0Yzo6TFNfRVJST1I7CiAKICAgICBzd2l0Y2ggKExvZ1dlYlJUQy5sZXZlbCkgewotICAg
IGNhc2UgV1RGTG9nTGV2ZWxBbHdheXM6Ci0gICAgY2FzZSBXVEZMb2dMZXZlbEVycm9yOgorICAg
IGNhc2UgV1RGTG9nTGV2ZWw6OkFsd2F5czoKKyAgICBjYXNlIFdURkxvZ0xldmVsOjpFcnJvcjoK
ICAgICAgICAgcmV0dXJuIHJ0Yzo6TFNfRVJST1I7Ci0gICAgY2FzZSBXVEZMb2dMZXZlbFdhcm5p
bmc6CisgICAgY2FzZSBXVEZMb2dMZXZlbDo6V2FybmluZzoKICAgICAgICAgcmV0dXJuIHJ0Yzo6
TFNfV0FSTklORzsKLSAgICBjYXNlIFdURkxvZ0xldmVsSW5mbzoKKyAgICBjYXNlIFdURkxvZ0xl
dmVsOjpJbmZvOgogICAgICAgICByZXR1cm4gcnRjOjpMU19JTkZPOwotICAgIGNhc2UgV1RGTG9n
TGV2ZWxEZWJ1ZzoKKyAgICBjYXNlIFdURkxvZ0xldmVsOjpEZWJ1ZzoKICAgICAgICAgcmV0dXJu
IHJ0Yzo6TFNfVkVSQk9TRTsKICAgICB9CiAjZWxzZQogICAgIHJldHVybiBydGM6OkxTX05PTkU7
CiAjZW5kaWYKICNlbHNlCi0gICAgcmV0dXJuIChMb2dXZWJSVEMuc3RhdGUgIT0gV1RGTG9nQ2hh
bm5lbE9uKSA/IHJ0Yzo6TFNfV0FSTklORyA6IHJ0Yzo6TFNfSU5GTzsKKyAgICByZXR1cm4gKExv
Z1dlYlJUQy5zdGF0ZSAhPSBXVEZMb2dDaGFubmVsU3RhdGU6Ok9uKSA/IHJ0Yzo6TFNfV0FSTklO
RyA6IHJ0Yzo6TFNfSU5GTzsKICNlbmRpZgogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJl
U291cmNlLm1tCShyZXZpc2lvbiAyNDMxNDApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0JKHdvcmtpbmcgY29weSkKQEAg
LTc0NSw3ICs3NDUsNyBAQCAtICh2b2lkKW9ic2VydmVWYWx1ZUZvcktleVBhdGg6a2V5UGF0aCBv
CiAgICAgYm9vbCB3aWxsQ2hhbmdlID0gW1tjaGFuZ2UgdmFsdWVGb3JLZXk6TlNLZXlWYWx1ZUNo
YW5nZU5vdGlmaWNhdGlvbklzUHJpb3JLZXldIGJvb2xWYWx1ZV07CiAKICNpZiAhUkVMRUFTRV9M
T0dfRElTQUJMRUQKLSAgICBpZiAobV9jYWxsYmFjay0+bG9nZ2VyUHRyKCkgJiYgbV9jYWxsYmFj
ay0+bG9nZ2VyKCkud2lsbExvZyhtX2NhbGxiYWNrLT5sb2dDaGFubmVsKCksIFdURkxvZ0xldmVs
RGVidWcpKSB7CisgICAgaWYgKG1fY2FsbGJhY2stPmxvZ2dlclB0cigpICYmIG1fY2FsbGJhY2st
PmxvZ2dlcigpLndpbGxMb2cobV9jYWxsYmFjay0+bG9nQ2hhbm5lbCgpLCBXVEZMb2dMZXZlbDo6
RGVidWcpKSB7CiAgICAgICAgIGF1dG8gaWRlbnRpZmllciA9IExvZ2dlcjo6TG9nU2l0ZUlkZW50
aWZpZXIoIkFWVmlkZW9DYXB0dXJlU291cmNlIiwgIm9ic2VydmVWYWx1ZUZvcktleVBhdGgiLCBt
X2NhbGxiYWNrLT5sb2dJZGVudGlmaWVyKCkpOwogCiAgICAgICAgIFJldGFpblB0cjxOU1N0cmlu
Zz4gdmFsdWVTdHJpbmcgPSBhZG9wdE5TKFtbTlNTdHJpbmcgYWxsb2NdIGluaXRXaXRoRm9ybWF0
OkAiJUAiLCBuZXdWYWx1ZV0pOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9zb3VwL1NvdXBOZXR3b3JrU2Vzc2lvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvdXBOZXR3b3JrU2Vzc2lvbi5jcHAJKHJldmlzaW9u
IDI0MzE0MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Tb3VwTmV0
d29ya1Nlc3Npb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTYsNyArMTU2LDcgQEAgU291cE5l
dHdvcmtTZXNzaW9uOjp+U291cE5ldHdvcmtTZXNzaW9uKAogdm9pZCBTb3VwTmV0d29ya1Nlc3Np
b246OnNldHVwTG9nZ2VyKCkKIHsKICNpZiAhTE9HX0RJU0FCTEVECi0gICAgaWYgKExvZ05ldHdv
cmsuc3RhdGUgIT0gV1RGTG9nQ2hhbm5lbE9uIHx8IHNvdXBfc2Vzc2lvbl9nZXRfZmVhdHVyZSht
X3NvdXBTZXNzaW9uLmdldCgpLCBTT1VQX1RZUEVfTE9HR0VSKSkKKyAgICBpZiAoTG9nTmV0d29y
ay5zdGF0ZSAhPSBXVEZMb2dDaGFubmVsU3RhdGU6Ok9uIHx8IHNvdXBfc2Vzc2lvbl9nZXRfZmVh
dHVyZShtX3NvdXBTZXNzaW9uLmdldCgpLCBTT1VQX1RZUEVfTE9HR0VSKSkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgR1JlZlB0cjxTb3VwTG9nZ2VyPiBsb2dnZXIgPSBhZG9wdEdSZWYoc291cF9s
b2dnZXJfbmV3KFNPVVBfTE9HR0VSX0xPR19CT0RZLCAtMSkpOwpJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAJKHJldmlzaW9u
IDI0MzE0MCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0
b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNzMsNyArMjczLDcgQEAgc3RydWN0IFJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6T3ZlcmxhcEV4dAogI2lmICFMT0dfRElTQUJMRUQKIHN0YXRpYyBpbmxp
bmUgYm9vbCBjb21wb3NpdGluZ0xvZ0VuYWJsZWQoKQogewotICAgIHJldHVybiBMb2dDb21wb3Np
dGluZy5zdGF0ZSA9PSBXVEZMb2dDaGFubmVsT247CisgICAgcmV0dXJuIExvZ0NvbXBvc2l0aW5n
LnN0YXRlID09IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T247CiB9CiAjZW5kaWYKIApJbmRleDogU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cJKHJldmlzaW9uIDI0MzE0MCkKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTktMDMtMTkgIEFsZXggQ2hyaXN0ZW5zZW4gIDxh
Y2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBNYWtlIFdURkxvZ0NoYW5uZWxTdGF0
ZSBhbmQgV1RGTG9nTGV2ZWwgZW51bSBjbGFzc2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTU5MDQKKworICAgICAgICBSZXZpZXdlZCBieSBFcmlj
IENhcmxzb24uCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVT
cGVjdWxhdGl2ZUxvYWRNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hl
Ojpsb2dTcGVjdWxhdGl2ZUxvYWRpbmdEaWFnbm9zdGljTWVzc2FnZSk6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtSVENQcm92aWRlcjo6TmV0d29ya1JUQ1Byb3ZpZGVyKToKKwogMjAxOS0wMy0x
OSAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjI0MzEzMi4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkTWFuYWdlci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3Jr
Q2FjaGVTcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyLmNwcAkocmV2aXNpb24gMjQzMTQwKQorKysgU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxv
YWRNYW5hZ2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjcsNyArNjcsNyBAQCBzdGF0aWMgdm9p
ZCBwcmludFNwZWN1bGF0aXZlTG9hZGluZ0RpYWduCiBzdGF0aWMgdm9pZCBsb2dTcGVjdWxhdGl2
ZUxvYWRpbmdEaWFnbm9zdGljTWVzc2FnZShOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3Ms
IGNvbnN0IEdsb2JhbEZyYW1lSUQmIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsK
ICNpZiAhTE9HX0RJU0FCTEVECi0gICAgaWYgKFdlYktpdDJMb2dOZXR3b3JrQ2FjaGVTcGVjdWxh
dGl2ZVByZWxvYWRpbmcuc3RhdGUgPT0gV1RGTG9nQ2hhbm5lbE9uKQorICAgIGlmIChXZWJLaXQy
TG9nTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVQcmVsb2FkaW5nLnN0YXRlID09IFdURkxvZ0NoYW5u
ZWxTdGF0ZTo6T24pCiAgICAgICAgIGFsbFNwZWN1bGF0aXZlTG9hZGluZ0RpYWdub3N0aWNNZXNz
YWdlcygpLmFkZChtZXNzYWdlKTsKICNlbmRpZgogICAgIG5ldHdvcmtQcm9jZXNzLmxvZ0RpYWdu
b3N0aWNNZXNzYWdlKGZyYW1lSUQuZmlyc3QsIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5
czo6bmV0d29ya0NhY2hlS2V5KCksIG1lc3NhZ2UsIFdlYkNvcmU6OlNob3VsZFNhbXBsZTo6WWVz
KTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQ
cm92aWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93
ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcAkocmV2aXNpb24gMjQzMTQwKQorKysgU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNjUsNyArNjUsNyBAQCBOZXR3b3JrUlRDUHJvdmlkZXI6Ok5ldHdvcmtS
VENQcm92aWRlcihOCiAjaWYgZGVmaW5lZChOREVCVUcpCiAgICAgcnRjOjpMb2dNZXNzYWdlOjpM
b2dUb0RlYnVnKHJ0Yzo6TFNfTk9ORSk7CiAjZWxzZQotICAgIGlmIChXZWJLaXQyTG9nV2ViUlRD
LnN0YXRlICE9IFdURkxvZ0NoYW5uZWxPbikKKyAgICBpZiAoV2ViS2l0MkxvZ1dlYlJUQy5zdGF0
ZSAhPSBXVEZMb2dDaGFubmVsU3RhdGU6Ok9uKQogICAgICAgICBydGM6OkxvZ01lc3NhZ2U6Okxv
Z1RvRGVidWcocnRjOjpMU19XQVJOSU5HKTsKICNlbmRpZgogfQpJbmRleDogVG9vbHMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjQzMTQwKQorKysg
VG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTktMDMt
MTkgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAg
ICBNYWtlIFdURkxvZ0NoYW5uZWxTdGF0ZSBhbmQgV1RGTG9nTGV2ZWwgZW51bSBjbGFzc2VzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTU5MDQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvTG9nZ2luZy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpU
RVNUX0YpOgorCiAyMDE5LTAzLTE5ICBYYWJpZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlz
QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dTdHJlYW1lcl1bRU1FXSBCYWNrcG9ydGVkIG1zc2Rl
bXV4IHByb3RlY3Rpb24gZGF0YSBjcmFzaCBmaXgKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9Mb2dnaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvTG9nZ2luZy5jcHAJKHJldmlzaW9uIDI0MzE0MCkKKysrIFRvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Mb2dnaW5nLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNzIsMTAgKzcyLDEwIEBAIHB1YmxpYzoKICAgICAgICAgbV9zdGRlcnIgPSBmZG9wZW4obV9k
ZXNjcmlwdG9yc1swXSwgInIiKTsKIAogICAgICAgICBXVEZJbml0aWFsaXplTG9nQ2hhbm5lbFN0
YXRlc0Zyb21TdHJpbmcodGVzdExvZ0NoYW5uZWxzLCBsb2dDaGFubmVsQ291bnQsICJhbGwiKTsK
LSAgICAgICAgV1RGU2V0TG9nQ2hhbm5lbExldmVsKCZUZXN0Q2hhbm5lbDEsIFdURkxvZ0xldmVs
RXJyb3IpOwotICAgICAgICBXVEZTZXRMb2dDaGFubmVsTGV2ZWwoJlRlc3RDaGFubmVsMiwgV1RG
TG9nTGV2ZWxFcnJvcik7Ci0gICAgICAgIFdURlNldExvZ0NoYW5uZWxMZXZlbCgmVGVzdENoYW5u
ZWwzLCBXVEZMb2dMZXZlbEVycm9yKTsKLSAgICAgICAgV1RGU2V0TG9nQ2hhbm5lbExldmVsKCZU
ZXN0Q2hhbm5lbDQsIFdURkxvZ0xldmVsRXJyb3IpOworICAgICAgICBXVEZTZXRMb2dDaGFubmVs
TGV2ZWwoJlRlc3RDaGFubmVsMSwgV1RGTG9nTGV2ZWw6OkVycm9yKTsKKyAgICAgICAgV1RGU2V0
TG9nQ2hhbm5lbExldmVsKCZUZXN0Q2hhbm5lbDIsIFdURkxvZ0xldmVsOjpFcnJvcik7CisgICAg
ICAgIFdURlNldExvZ0NoYW5uZWxMZXZlbCgmVGVzdENoYW5uZWwzLCBXVEZMb2dMZXZlbDo6RXJy
b3IpOworICAgICAgICBXVEZTZXRMb2dDaGFubmVsTGV2ZWwoJlRlc3RDaGFubmVsNCwgV1RGTG9n
TGV2ZWw6OkVycm9yKTsKICAgICB9CiAKICAgICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUKQEAg
LTExMCw4NiArMTEwLDg2IEBAIHByaXZhdGU6CiAKIFRFU1RfRihMb2dnaW5nVGVzdCwgSW5pdGlh
bGl6YXRpb24pCiB7Ci0gICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsMS5zdGF0ZSwgV1RGTG9nQ2hh
bm5lbE9uKTsKLSAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWwyLnN0YXRlLCBXVEZMb2dDaGFubmVs
T24pOwotICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDMuc3RhdGUsIFdURkxvZ0NoYW5uZWxPbik7
Ci0gICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsNC5zdGF0ZSwgV1RGTG9nQ2hhbm5lbE9uKTsKLQot
ICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDEubGV2ZWwsIFdURkxvZ0xldmVsRXJyb3IpOwotICAg
IEVYUEVDVF9FUShUZXN0Q2hhbm5lbDIubGV2ZWwsIFdURkxvZ0xldmVsRXJyb3IpOwotICAgIEVY
UEVDVF9FUShUZXN0Q2hhbm5lbDMubGV2ZWwsIFdURkxvZ0xldmVsRXJyb3IpOwotICAgIEVYUEVD
VF9FUShUZXN0Q2hhbm5lbDQubGV2ZWwsIFdURkxvZ0xldmVsRXJyb3IpOworICAgIEVYUEVDVF9F
UShUZXN0Q2hhbm5lbDEuc3RhdGUsIFdURkxvZ0NoYW5uZWxTdGF0ZTo6T24pOworICAgIEVYUEVD
VF9FUShUZXN0Q2hhbm5lbDIuc3RhdGUsIFdURkxvZ0NoYW5uZWxTdGF0ZTo6T24pOworICAgIEVY
UEVDVF9FUShUZXN0Q2hhbm5lbDMuc3RhdGUsIFdURkxvZ0NoYW5uZWxTdGF0ZTo6T24pOworICAg
IEVYUEVDVF9FUShUZXN0Q2hhbm5lbDQuc3RhdGUsIFdURkxvZ0NoYW5uZWxTdGF0ZTo6T24pOwor
CisgICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsMS5sZXZlbCwgV1RGTG9nTGV2ZWw6OkVycm9yKTsK
KyAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWwyLmxldmVsLCBXVEZMb2dMZXZlbDo6RXJyb3IpOwor
ICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDMubGV2ZWwsIFdURkxvZ0xldmVsOjpFcnJvcik7Cisg
ICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsNC5sZXZlbCwgV1RGTG9nTGV2ZWw6OkVycm9yKTsKIAot
ICAgIFRlc3RDaGFubmVsMS5zdGF0ZSA9IFdURkxvZ0NoYW5uZWxPZmY7CisgICAgVGVzdENoYW5u
ZWwxLnN0YXRlID0gV1RGTG9nQ2hhbm5lbFN0YXRlOjpPZmY7CiAgICAgV1RGSW5pdGlhbGl6ZUxv
Z0NoYW5uZWxTdGF0ZXNGcm9tU3RyaW5nKHRlc3RMb2dDaGFubmVscywgbG9nQ2hhbm5lbENvdW50
LCAiQ2hhbm5lbDEiKTsKLSAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWwxLmxldmVsLCBXVEZMb2dM
ZXZlbEVycm9yKTsKLSAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWwxLnN0YXRlLCBXVEZMb2dDaGFu
bmVsT24pOworICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDEubGV2ZWwsIFdURkxvZ0xldmVsOjpF
cnJvcik7CisgICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsMS5zdGF0ZSwgV1RGTG9nQ2hhbm5lbFN0
YXRlOjpPbik7CiAKLSAgICBUZXN0Q2hhbm5lbDEuc3RhdGUgPSBXVEZMb2dDaGFubmVsT2ZmOwor
ICAgIFRlc3RDaGFubmVsMS5zdGF0ZSA9IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T2ZmOwogICAgIFdU
RkluaXRpYWxpemVMb2dDaGFubmVsU3RhdGVzRnJvbVN0cmluZyh0ZXN0TG9nQ2hhbm5lbHMsIGxv
Z0NoYW5uZWxDb3VudCwgIkNoYW5uZWwxPWZvbyIpOwotICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5l
bDEubGV2ZWwsIFdURkxvZ0xldmVsRXJyb3IpOworICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDEu
bGV2ZWwsIFdURkxvZ0xldmVsOjpFcnJvcik7CiAjaWYgVEVTVF9PVVRQVVQKICAgICBFWFBFQ1Rf
VFJVRShvdXRwdXQoKS5jb250YWlucygiVW5rbm93biBsb2dnaW5nIGxldmVsOiBmb28iLCBmYWxz
ZSkpOwogI2VuZGlmCiAKICAgICBXVEZJbml0aWFsaXplTG9nQ2hhbm5lbFN0YXRlc0Zyb21TdHJp
bmcodGVzdExvZ0NoYW5uZWxzLCBsb2dDaGFubmVsQ291bnQsICJDaGFubmVsMT13YXJuaW5nIik7
Ci0gICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsMS5sZXZlbCwgV1RGTG9nTGV2ZWxXYXJuaW5nKTsK
LSAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWwyLmxldmVsLCBXVEZMb2dMZXZlbEVycm9yKTsKLSAg
ICBFWFBFQ1RfRVEoVGVzdENoYW5uZWwzLmxldmVsLCBXVEZMb2dMZXZlbEVycm9yKTsKLSAgICBF
WFBFQ1RfRVEoVGVzdENoYW5uZWw0LmxldmVsLCBXVEZMb2dMZXZlbEVycm9yKTsKKyAgICBFWFBF
Q1RfRVEoVGVzdENoYW5uZWwxLmxldmVsLCBXVEZMb2dMZXZlbDo6V2FybmluZyk7CisgICAgRVhQ
RUNUX0VRKFRlc3RDaGFubmVsMi5sZXZlbCwgV1RGTG9nTGV2ZWw6OkVycm9yKTsKKyAgICBFWFBF
Q1RfRVEoVGVzdENoYW5uZWwzLmxldmVsLCBXVEZMb2dMZXZlbDo6RXJyb3IpOworICAgIEVYUEVD
VF9FUShUZXN0Q2hhbm5lbDQubGV2ZWwsIFdURkxvZ0xldmVsOjpFcnJvcik7CiAKICAgICBXVEZJ
bml0aWFsaXplTG9nQ2hhbm5lbFN0YXRlc0Zyb21TdHJpbmcodGVzdExvZ0NoYW5uZWxzLCBsb2dD
aGFubmVsQ291bnQsICJDaGFubmVsND0gICBkZWJ1ZywgQ2hhbm5lbDMgPSBpbmZvLENoYW5uZWwy
PWVycm9yIik7Ci0gICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsMS5sZXZlbCwgV1RGTG9nTGV2ZWxX
YXJuaW5nKTsKLSAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWwyLmxldmVsLCBXVEZMb2dMZXZlbEVy
cm9yKTsKLSAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWwzLmxldmVsLCBXVEZMb2dMZXZlbEluZm8p
OwotICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDQubGV2ZWwsIFdURkxvZ0xldmVsRGVidWcpOwor
ICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDEubGV2ZWwsIFdURkxvZ0xldmVsOjpXYXJuaW5nKTsK
KyAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWwyLmxldmVsLCBXVEZMb2dMZXZlbDo6RXJyb3IpOwor
ICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDMubGV2ZWwsIFdURkxvZ0xldmVsOjpJbmZvKTsKKyAg
ICBFWFBFQ1RfRVEoVGVzdENoYW5uZWw0LmxldmVsLCBXVEZMb2dMZXZlbDo6RGVidWcpOwogCiAg
ICAgV1RGSW5pdGlhbGl6ZUxvZ0NoYW5uZWxTdGF0ZXNGcm9tU3RyaW5nKHRlc3RMb2dDaGFubmVs
cywgbG9nQ2hhbm5lbENvdW50LCAiLWFsbCIpOwotICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDEu
c3RhdGUsIFdURkxvZ0NoYW5uZWxPZmYpOwotICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDIuc3Rh
dGUsIFdURkxvZ0NoYW5uZWxPZmYpOwotICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDMuc3RhdGUs
IFdURkxvZ0NoYW5uZWxPZmYpOwotICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDQuc3RhdGUsIFdU
RkxvZ0NoYW5uZWxPZmYpOworICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDEuc3RhdGUsIFdURkxv
Z0NoYW5uZWxTdGF0ZTo6T2ZmKTsKKyAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWwyLnN0YXRlLCBX
VEZMb2dDaGFubmVsU3RhdGU6Ok9mZik7CisgICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsMy5zdGF0
ZSwgV1RGTG9nQ2hhbm5lbFN0YXRlOjpPZmYpOworICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDQu
c3RhdGUsIFdURkxvZ0NoYW5uZWxTdGF0ZTo6T2ZmKTsKIAogICAgIFdURkluaXRpYWxpemVMb2dD
aGFubmVsU3RhdGVzRnJvbVN0cmluZyh0ZXN0TG9nQ2hhbm5lbHMsIGxvZ0NoYW5uZWxDb3VudCwg
ImFsbCIpOwotICAgIEVYUEVDVF9FUShUZXN0Q2hhbm5lbDEuc3RhdGUsIFdURkxvZ0NoYW5uZWxP
bik7Ci0gICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsMi5zdGF0ZSwgV1RGTG9nQ2hhbm5lbE9uKTsK
LSAgICBFWFBFQ1RfRVEoVGVzdENoYW5uZWwzLnN0YXRlLCBXVEZMb2dDaGFubmVsT24pOwotICAg
IEVYUEVDVF9FUShUZXN0Q2hhbm5lbDQuc3RhdGUsIFdURkxvZ0NoYW5uZWxPbik7CisgICAgRVhQ
RUNUX0VRKFRlc3RDaGFubmVsMS5zdGF0ZSwgV1RGTG9nQ2hhbm5lbFN0YXRlOjpPbik7CisgICAg
RVhQRUNUX0VRKFRlc3RDaGFubmVsMi5zdGF0ZSwgV1RGTG9nQ2hhbm5lbFN0YXRlOjpPbik7Cisg
ICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsMy5zdGF0ZSwgV1RGTG9nQ2hhbm5lbFN0YXRlOjpPbik7
CisgICAgRVhQRUNUX0VRKFRlc3RDaGFubmVsNC5zdGF0ZSwgV1RGTG9nQ2hhbm5lbFN0YXRlOjpP
bik7CiB9CiAKIFRFU1RfRihMb2dnaW5nVGVzdCwgV1RGV2lsbExvZ1dpdGhMZXZlbCkKIHsKLSAg
ICBFWFBFQ1RfRVEoVGVzdENoYW5uZWwxLnN0YXRlLCBXVEZMb2dDaGFubmVsT24pOwotICAgIEVY
UEVDVF9FUShUZXN0Q2hhbm5lbDIuc3RhdGUsIFdURkxvZ0NoYW5uZWxPbik7Ci0gICAgRVhQRUNU
X0VRKFRlc3RDaGFubmVsMy5zdGF0ZSwgV1RGTG9nQ2hhbm5lbE9uKTsKLSAgICBFWFBFQ1RfRVEo
VGVzdENoYW5uZWw0LnN0YXRlLCBXVEZMb2dDaGFubmVsT24pOwotCi0gICAgRVhQRUNUX0VRKFRl
c3RDaGFubmVsMS5sZXZlbCwgV1RGTG9nTGV2ZWxFcnJvcik7Ci0gICAgRVhQRUNUX0VRKFRlc3RD
aGFubmVsMi5sZXZlbCwgV1RGTG9nTGV2ZWxFcnJvcik7Ci0gICAgRVhQRUNUX0VRKFRlc3RDaGFu
bmVsMy5sZXZlbCwgV1RGTG9nTGV2ZWxFcnJvcik7Ci0gICAgRVhQRUNUX0VRKFRlc3RDaGFubmVs
NC5sZXZlbCwgV1RGTG9nTGV2ZWxFcnJvcik7Ci0KLSAgICBFWFBFQ1RfVFJVRShXVEZXaWxsTG9n
V2l0aExldmVsKCZUZXN0Q2hhbm5lbDEsIFdURkxvZ0xldmVsRXJyb3IpKTsKLSAgICBFWFBFQ1Rf
VFJVRShXVEZXaWxsTG9nV2l0aExldmVsKCZUZXN0Q2hhbm5lbDIsIFdURkxvZ0xldmVsRXJyb3Ip
KTsKLSAgICBFWFBFQ1RfVFJVRShXVEZXaWxsTG9nV2l0aExldmVsKCZUZXN0Q2hhbm5lbDMsIFdU
RkxvZ0xldmVsRXJyb3IpKTsKLSAgICBFWFBFQ1RfVFJVRShXVEZXaWxsTG9nV2l0aExldmVsKCZU
ZXN0Q2hhbm5lbDQsIFdURkxvZ0xldmVsRXJyb3IpKTsKLQotICAgIEVYUEVDVF9GQUxTRShXVEZX
aWxsTG9nV2l0aExldmVsKCZUZXN0Q2hhbm5lbDEsIFdURkxvZ0xldmVsSW5mbykpOwotICAgIEVY
UEVDVF9GQUxTRShXVEZXaWxsTG9nV2l0aExldmVsKCZUZXN0Q2hhbm5lbDIsIFdURkxvZ0xldmVs
SW5mbykpOwotICAgIEVYUEVDVF9GQUxTRShXVEZXaWxsTG9nV2l0aExldmVsKCZUZXN0Q2hhbm5l
bDMsIFdURkxvZ0xldmVsSW5mbykpOwotICAgIEVYUEVDVF9GQUxTRShXVEZXaWxsTG9nV2l0aExl
dmVsKCZUZXN0Q2hhbm5lbDQsIFdURkxvZ0xldmVsSW5mbykpOwotCi0gICAgVGVzdENoYW5uZWwx
LnN0YXRlID0gV1RGTG9nQ2hhbm5lbE9mZjsKLSAgICBFWFBFQ1RfRkFMU0UoV1RGV2lsbExvZ1dp
dGhMZXZlbCgmVGVzdENoYW5uZWwxLCBXVEZMb2dMZXZlbEVycm9yKSk7Ci0gICAgRVhQRUNUX0ZB
TFNFKFdURldpbGxMb2dXaXRoTGV2ZWwoJlRlc3RDaGFubmVsMSwgV1RGTG9nTGV2ZWxJbmZvKSk7
Ci0KLSAgICBUZXN0Q2hhbm5lbDEuc3RhdGUgPSBXVEZMb2dDaGFubmVsT247Ci0gICAgRVhQRUNU
X1RSVUUoV1RGV2lsbExvZ1dpdGhMZXZlbCgmVGVzdENoYW5uZWwxLCBXVEZMb2dMZXZlbEVycm9y
KSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFdURldpbGxMb2dXaXRoTGV2ZWwoJlRlc3RDaGFubmVsMSwg
V1RGTG9nTGV2ZWxJbmZvKSk7Ci0KLSAgICBUZXN0Q2hhbm5lbDEubGV2ZWwgPSBXVEZMb2dMZXZl
bEluZm87Ci0gICAgRVhQRUNUX1RSVUUoV1RGV2lsbExvZ1dpdGhMZXZlbCgmVGVzdENoYW5uZWwx
LCBXVEZMb2dMZXZlbEVycm9yKSk7Ci0gICAgRVhQRUNUX1RSVUUoV1RGV2lsbExvZ1dpdGhMZXZl
bCgmVGVzdENoYW5uZWwxLCBXVEZMb2dMZXZlbEluZm8pKTsKKyAgICBFWFBFQ1RfRVEoVGVzdENo
YW5uZWwxLnN0YXRlLCBXVEZMb2dDaGFubmVsU3RhdGU6Ok9uKTsKKyAgICBFWFBFQ1RfRVEoVGVz
dENoYW5uZWwyLnN0YXRlLCBXVEZMb2dDaGFubmVsU3RhdGU6Ok9uKTsKKyAgICBFWFBFQ1RfRVEo
VGVzdENoYW5uZWwzLnN0YXRlLCBXVEZMb2dDaGFubmVsU3RhdGU6Ok9uKTsKKyAgICBFWFBFQ1Rf
RVEoVGVzdENoYW5uZWw0LnN0YXRlLCBXVEZMb2dDaGFubmVsU3RhdGU6Ok9uKTsKKworICAgIEVY
UEVDVF9FUShUZXN0Q2hhbm5lbDEubGV2ZWwsIFdURkxvZ0xldmVsOjpFcnJvcik7CisgICAgRVhQ
RUNUX0VRKFRlc3RDaGFubmVsMi5sZXZlbCwgV1RGTG9nTGV2ZWw6OkVycm9yKTsKKyAgICBFWFBF
Q1RfRVEoVGVzdENoYW5uZWwzLmxldmVsLCBXVEZMb2dMZXZlbDo6RXJyb3IpOworICAgIEVYUEVD
VF9FUShUZXN0Q2hhbm5lbDQubGV2ZWwsIFdURkxvZ0xldmVsOjpFcnJvcik7CisKKyAgICBFWFBF
Q1RfVFJVRShXVEZXaWxsTG9nV2l0aExldmVsKCZUZXN0Q2hhbm5lbDEsIFdURkxvZ0xldmVsOjpF
cnJvcikpOworICAgIEVYUEVDVF9UUlVFKFdURldpbGxMb2dXaXRoTGV2ZWwoJlRlc3RDaGFubmVs
MiwgV1RGTG9nTGV2ZWw6OkVycm9yKSk7CisgICAgRVhQRUNUX1RSVUUoV1RGV2lsbExvZ1dpdGhM
ZXZlbCgmVGVzdENoYW5uZWwzLCBXVEZMb2dMZXZlbDo6RXJyb3IpKTsKKyAgICBFWFBFQ1RfVFJV
RShXVEZXaWxsTG9nV2l0aExldmVsKCZUZXN0Q2hhbm5lbDQsIFdURkxvZ0xldmVsOjpFcnJvcikp
OworCisgICAgRVhQRUNUX0ZBTFNFKFdURldpbGxMb2dXaXRoTGV2ZWwoJlRlc3RDaGFubmVsMSwg
V1RGTG9nTGV2ZWw6OkluZm8pKTsKKyAgICBFWFBFQ1RfRkFMU0UoV1RGV2lsbExvZ1dpdGhMZXZl
bCgmVGVzdENoYW5uZWwyLCBXVEZMb2dMZXZlbDo6SW5mbykpOworICAgIEVYUEVDVF9GQUxTRShX
VEZXaWxsTG9nV2l0aExldmVsKCZUZXN0Q2hhbm5lbDMsIFdURkxvZ0xldmVsOjpJbmZvKSk7Cisg
ICAgRVhQRUNUX0ZBTFNFKFdURldpbGxMb2dXaXRoTGV2ZWwoJlRlc3RDaGFubmVsNCwgV1RGTG9n
TGV2ZWw6OkluZm8pKTsKKworICAgIFRlc3RDaGFubmVsMS5zdGF0ZSA9IFdURkxvZ0NoYW5uZWxT
dGF0ZTo6T2ZmOworICAgIEVYUEVDVF9GQUxTRShXVEZXaWxsTG9nV2l0aExldmVsKCZUZXN0Q2hh
bm5lbDEsIFdURkxvZ0xldmVsOjpFcnJvcikpOworICAgIEVYUEVDVF9GQUxTRShXVEZXaWxsTG9n
V2l0aExldmVsKCZUZXN0Q2hhbm5lbDEsIFdURkxvZ0xldmVsOjpJbmZvKSk7CisKKyAgICBUZXN0
Q2hhbm5lbDEuc3RhdGUgPSBXVEZMb2dDaGFubmVsU3RhdGU6Ok9uOworICAgIEVYUEVDVF9UUlVF
KFdURldpbGxMb2dXaXRoTGV2ZWwoJlRlc3RDaGFubmVsMSwgV1RGTG9nTGV2ZWw6OkVycm9yKSk7
CisgICAgRVhQRUNUX0ZBTFNFKFdURldpbGxMb2dXaXRoTGV2ZWwoJlRlc3RDaGFubmVsMSwgV1RG
TG9nTGV2ZWw6OkluZm8pKTsKKworICAgIFRlc3RDaGFubmVsMS5sZXZlbCA9IFdURkxvZ0xldmVs
OjpJbmZvOworICAgIEVYUEVDVF9UUlVFKFdURldpbGxMb2dXaXRoTGV2ZWwoJlRlc3RDaGFubmVs
MSwgV1RGTG9nTGV2ZWw6OkVycm9yKSk7CisgICAgRVhQRUNUX1RSVUUoV1RGV2lsbExvZ1dpdGhM
ZXZlbCgmVGVzdENoYW5uZWwxLCBXVEZMb2dMZXZlbDo6SW5mbykpOwogfQogCiAjaWYgVEVTVF9P
VVRQVVQKQEAgLTIwMSwyMSArMjAxLDIxIEBAIFRFU1RfRihMb2dnaW5nVGVzdCwgTE9HKQogCiBU
RVNUX0YoTG9nZ2luZ1Rlc3QsIExPR19XSVRIX0xFVkVMKQogewotICAgIExPR19XSVRIX0xFVkVM
KENoYW5uZWwxLCBXVEZMb2dMZXZlbEVycm9yLCAiR28gYW5kIGJvaWwgeW91ciBib3R0b21zLCB5
b3Ugc29ucyBvZiBhIHNpbGx5IHBlcnNvbi4iKTsKKyAgICBMT0dfV0lUSF9MRVZFTChDaGFubmVs
MSwgV1RGTG9nTGV2ZWw6OkVycm9yLCAiR28gYW5kIGJvaWwgeW91ciBib3R0b21zLCB5b3Ugc29u
cyBvZiBhIHNpbGx5IHBlcnNvbi4iKTsKICAgICBFWFBFQ1RfVFJVRShvdXRwdXQoKS5jb250YWlu
cygic29ucyBvZiBhIHNpbGx5IHBlcnNvbi4iLCBmYWxzZSkpOwogCi0gICAgTE9HX1dJVEhfTEVW
RUwoQ2hhbm5lbDEsIFdURkxvZ0xldmVsV2FybmluZywgIllvdSBkb24ndCBmcmlnaHRlbiB1cywg
RW5nbGlzaCBwaWcgZG9ncy4iKTsKKyAgICBMT0dfV0lUSF9MRVZFTChDaGFubmVsMSwgV1RGTG9n
TGV2ZWw6Oldhcm5pbmcsICJZb3UgZG9uJ3QgZnJpZ2h0ZW4gdXMsIEVuZ2xpc2ggcGlnIGRvZ3Mu
Iik7CiAgICAgRVhQRUNUX0VRKDB1LCBvdXRwdXQoKS5sZW5ndGgoKSk7CiAKLSAgICBXVEZTZXRM
b2dDaGFubmVsTGV2ZWwoJlRlc3RDaGFubmVsMSwgV1RGTG9nTGV2ZWxJbmZvKTsKLSAgICBMT0df
V0lUSF9MRVZFTChDaGFubmVsMSwgV1RGTG9nTGV2ZWxXYXJuaW5nLCAiSSdtIEZyZW5jaC4gV2h5
IGRvIHlvdSB0aGluayBJIGhhdmUgdGhpcyBvdXRyYWdlb3VzIGFjY2VudCwgeW91IHNpbGx5IGtp
bmc/Iik7CisgICAgV1RGU2V0TG9nQ2hhbm5lbExldmVsKCZUZXN0Q2hhbm5lbDEsIFdURkxvZ0xl
dmVsOjpJbmZvKTsKKyAgICBMT0dfV0lUSF9MRVZFTChDaGFubmVsMSwgV1RGTG9nTGV2ZWw6Oldh
cm5pbmcsICJJJ20gRnJlbmNoLiBXaHkgZG8geW91IHRoaW5rIEkgaGF2ZSB0aGlzIG91dHJhZ2Vv
dXMgYWNjZW50LCB5b3Ugc2lsbHkga2luZz8iKTsKICAgICBFWFBFQ1RfVFJVRShvdXRwdXQoKS5j
b250YWlucygib3V0cmFnZW91cyBhY2NlbnQiLCBmYWxzZSkpOwogCi0gICAgTE9HX1dJVEhfTEVW
RUwoQ2hhbm5lbDEsIFdURkxvZ0xldmVsRGVidWcsICJZb3UgZG9uJ3QgZnJpZ2h0ZW4gdXMgd2l0
aCB5b3VyIHNpbGx5IGtuZWVzLWJlbnQgcnVubmluZyBhcm91bmQgYWR2YW5jaW5nIGJlaGF2aW9y
ISIpOworICAgIExPR19XSVRIX0xFVkVMKENoYW5uZWwxLCBXVEZMb2dMZXZlbDo6RGVidWcsICJZ
b3UgZG9uJ3QgZnJpZ2h0ZW4gdXMgd2l0aCB5b3VyIHNpbGx5IGtuZWVzLWJlbnQgcnVubmluZyBh
cm91bmQgYWR2YW5jaW5nIGJlaGF2aW9yISIpOwogICAgIEVYUEVDVF9FUSgwdSwgb3V0cHV0KCku
bGVuZ3RoKCkpOwogCi0gICAgV1RGU2V0TG9nQ2hhbm5lbExldmVsKCZUZXN0Q2hhbm5lbDEsIFdU
RkxvZ0xldmVsRGVidWcpOwotICAgIExPR19XSVRIX0xFVkVMKENoYW5uZWwxLCBXVEZMb2dMZXZl
bERlYnVnLCAiR28gYW5kIHRlbGwgeW91ciBtYXN0ZXIgdGhhdCB3ZSBoYXZlIGJlZW4gY2hhcmdl
ZCBieSBHb2Qgd2l0aCBhIHNhY3JlZCBxdWVzdC4iKTsKKyAgICBXVEZTZXRMb2dDaGFubmVsTGV2
ZWwoJlRlc3RDaGFubmVsMSwgV1RGTG9nTGV2ZWw6OkRlYnVnKTsKKyAgICBMT0dfV0lUSF9MRVZF
TChDaGFubmVsMSwgV1RGTG9nTGV2ZWw6OkRlYnVnLCAiR28gYW5kIHRlbGwgeW91ciBtYXN0ZXIg
dGhhdCB3ZSBoYXZlIGJlZW4gY2hhcmdlZCBieSBHb2Qgd2l0aCBhIHNhY3JlZCBxdWVzdC4iKTsK
ICAgICBFWFBFQ1RfVFJVRShvdXRwdXQoKS5jb250YWlucygic2FjcmVkIHF1ZXN0IiwgZmFsc2Up
KTsKIH0KIApAQCAtMjM4LDM1ICsyMzgsMzUgQEAgVEVTVF9GKExvZ2dpbmdUZXN0LCBSRUxFQVNF
X0xPR19JRikKIAogVEVTVF9GKExvZ2dpbmdUZXN0LCBSRUxFQVNFX0xPR19XSVRIX0xFVkVMKQog
ewotICAgIFJFTEVBU0VfTE9HX1dJVEhfTEVWRUwoQ2hhbm5lbDEsIFdURkxvZ0xldmVsRXJyb3Is
ICJZb3UgZG9uJ3QgZnJpZ2h0ZW4gdXMsIEVuZ2xpc2ggcGlnIGRvZ3MuIik7CisgICAgUkVMRUFT
RV9MT0dfV0lUSF9MRVZFTChDaGFubmVsMSwgV1RGTG9nTGV2ZWw6OkVycm9yLCAiWW91IGRvbid0
IGZyaWdodGVuIHVzLCBFbmdsaXNoIHBpZyBkb2dzLiIpOwogICAgIEVYUEVDVF9UUlVFKG91dHB1
dCgpLmNvbnRhaW5zKCJwaWcgZG9ncy4iLCBmYWxzZSkpOwogCi0gICAgUkVMRUFTRV9MT0dfV0lU
SF9MRVZFTChDaGFubmVsMSwgV1RGTG9nTGV2ZWxXYXJuaW5nLCAiR28gYW5kIGJvaWwgeW91ciBi
b3R0b21zLCB5b3Ugc29ucyBvZiBhIHNpbGx5IHBlcnNvbi4iKTsKKyAgICBSRUxFQVNFX0xPR19X
SVRIX0xFVkVMKENoYW5uZWwxLCBXVEZMb2dMZXZlbDo6V2FybmluZywgIkdvIGFuZCBib2lsIHlv
dXIgYm90dG9tcywgeW91IHNvbnMgb2YgYSBzaWxseSBwZXJzb24uIik7CiAgICAgRVhQRUNUX0VR
KDB1LCBvdXRwdXQoKS5sZW5ndGgoKSk7CiAKLSAgICBXVEZTZXRMb2dDaGFubmVsTGV2ZWwoJlRl
c3RDaGFubmVsMSwgV1RGTG9nTGV2ZWxJbmZvKTsKLSAgICBSRUxFQVNFX0xPR19XSVRIX0xFVkVM
KENoYW5uZWwxLCBXVEZMb2dMZXZlbFdhcm5pbmcsICJJJ20gRnJlbmNoLiBXaHkgZG8geW91IHRo
aW5rIEkgaGF2ZSB0aGlzIG91dHJhZ2VvdXMgYWNjZW50LCB5b3Ugc2lsbHkga2luZz8iKTsKKyAg
ICBXVEZTZXRMb2dDaGFubmVsTGV2ZWwoJlRlc3RDaGFubmVsMSwgV1RGTG9nTGV2ZWw6OkluZm8p
OworICAgIFJFTEVBU0VfTE9HX1dJVEhfTEVWRUwoQ2hhbm5lbDEsIFdURkxvZ0xldmVsOjpXYXJu
aW5nLCAiSSdtIEZyZW5jaC4gV2h5IGRvIHlvdSB0aGluayBJIGhhdmUgdGhpcyBvdXRyYWdlb3Vz
IGFjY2VudCwgeW91IHNpbGx5IGtpbmc/Iik7CiAgICAgRVhQRUNUX1RSVUUob3V0cHV0KCkuY29u
dGFpbnMoIm91dHJhZ2VvdXMgYWNjZW50IiwgZmFsc2UpKTsKIAotICAgIFJFTEVBU0VfTE9HX1dJ
VEhfTEVWRUwoQ2hhbm5lbDEsIFdURkxvZ0xldmVsRGVidWcsICJZb3UgZG9uJ3QgZnJpZ2h0ZW4g
dXMgd2l0aCB5b3VyIHNpbGx5IGtuZWVzLWJlbnQgcnVubmluZyBhcm91bmQgYWR2YW5jaW5nIGJl
aGF2aW9yISIpOworICAgIFJFTEVBU0VfTE9HX1dJVEhfTEVWRUwoQ2hhbm5lbDEsIFdURkxvZ0xl
dmVsOjpEZWJ1ZywgIllvdSBkb24ndCBmcmlnaHRlbiB1cyB3aXRoIHlvdXIgc2lsbHkga25lZXMt
YmVudCBydW5uaW5nIGFyb3VuZCBhZHZhbmNpbmcgYmVoYXZpb3IhIik7CiAgICAgRVhQRUNUX0VR
KDB1LCBvdXRwdXQoKS5sZW5ndGgoKSk7CiAKLSAgICBXVEZTZXRMb2dDaGFubmVsTGV2ZWwoJlRl
c3RDaGFubmVsMSwgV1RGTG9nTGV2ZWxEZWJ1Zyk7Ci0gICAgUkVMRUFTRV9MT0dfV0lUSF9MRVZF
TChDaGFubmVsMSwgV1RGTG9nTGV2ZWxEZWJ1ZywgIkdvIGFuZCB0ZWxsIHlvdXIgbWFzdGVyIHRo
YXQgd2UgaGF2ZSBiZWVuIGNoYXJnZWQgYnkgR29kIHdpdGggYSBzYWNyZWQgcXVlc3QuIik7Cisg
ICAgV1RGU2V0TG9nQ2hhbm5lbExldmVsKCZUZXN0Q2hhbm5lbDEsIFdURkxvZ0xldmVsOjpEZWJ1
Zyk7CisgICAgUkVMRUFTRV9MT0dfV0lUSF9MRVZFTChDaGFubmVsMSwgV1RGTG9nTGV2ZWw6OkRl
YnVnLCAiR28gYW5kIHRlbGwgeW91ciBtYXN0ZXIgdGhhdCB3ZSBoYXZlIGJlZW4gY2hhcmdlZCBi
eSBHb2Qgd2l0aCBhIHNhY3JlZCBxdWVzdC4iKTsKICAgICBFWFBFQ1RfVFJVRShvdXRwdXQoKS5j
b250YWlucygic2FjcmVkIHF1ZXN0IiwgZmFsc2UpKTsKIH0KIAogVEVTVF9GKExvZ2dpbmdUZXN0
LCBSRUxFQVNFX0xPR19XSVRIX0xFVkVMX0lGKQogewogICAgIGJvb2wgZW5hYmxlZCA9IHRydWU7
Ci0gICAgUkVMRUFTRV9MT0dfV0lUSF9MRVZFTF9JRihlbmFibGVkLCBDaGFubmVsMSwgV1RGTG9n
TGV2ZWxFcnJvciwgIklzIHRoZXJlIHNvbWVvbmUgZWxzZSB1cCB0aGVyZSB0aGF0IHdlIGNhbiB0
YWxrIHRvPyIpOworICAgIFJFTEVBU0VfTE9HX1dJVEhfTEVWRUxfSUYoZW5hYmxlZCwgQ2hhbm5l
bDEsIFdURkxvZ0xldmVsOjpFcnJvciwgIklzIHRoZXJlIHNvbWVvbmUgZWxzZSB1cCB0aGVyZSB0
aGF0IHdlIGNhbiB0YWxrIHRvPyIpOwogICAgIEVYUEVDVF9UUlVFKG91dHB1dCgpLmNvbnRhaW5z
KCJzb21lb25lIGVsc2UiLCBmYWxzZSkpOwogCi0gICAgUkVMRUFTRV9MT0dfV0lUSF9MRVZFTF9J
RihlbmFibGVkLCBDaGFubmVsMSwgV1RGTG9nTGV2ZWxEZWJ1ZywgIk5vLCBub3cgZ28gYXdheSIp
OworICAgIFJFTEVBU0VfTE9HX1dJVEhfTEVWRUxfSUYoZW5hYmxlZCwgQ2hhbm5lbDEsIFdURkxv
Z0xldmVsOjpEZWJ1ZywgIk5vLCBub3cgZ28gYXdheSIpOwogICAgIEVYUEVDVF9FUSgwdSwgb3V0
cHV0KCkubGVuZ3RoKCkpOwogCiAgICAgZW5hYmxlZCA9IGZhbHNlOwotICAgIFJFTEVBU0VfTE9H
X1dJVEhfTEVWRUxfSUYoZW5hYmxlZCwgQ2hhbm5lbDEsIFdURkxvZ0xldmVsV2FybmluZywgIm9y
IEkgc2hhbGwgdGF1bnQgeW91IGEgc2Vjb25kIHRpbWUhICVpIiwgMTIpOworICAgIFJFTEVBU0Vf
TE9HX1dJVEhfTEVWRUxfSUYoZW5hYmxlZCwgQ2hhbm5lbDEsIFdURkxvZ0xldmVsOjpXYXJuaW5n
LCAib3IgSSBzaGFsbCB0YXVudCB5b3UgYSBzZWNvbmQgdGltZSEgJWkiLCAxMik7CiAgICAgRVhQ
RUNUX0VRKDB1LCBvdXRwdXQoKS5sZW5ndGgoKSk7CiB9CiAKQEAgLTI3NSw4ICsyNzUsOCBAQCBU
RVNUX0YoTG9nZ2luZ1Rlc3QsIExvZ2dlcikKICAgICBSZWY8TG9nZ2VyPiBsb2dnZXIgPSBMb2dn
ZXI6OmNyZWF0ZSh0aGlzKTsKICAgICBFWFBFQ1RfVFJVRShsb2dnZXItPmVuYWJsZWQoKSk7CiAK
LSAgICBXVEZTZXRMb2dDaGFubmVsTGV2ZWwoJlRlc3RDaGFubmVsMSwgV1RGTG9nTGV2ZWxFcnJv
cik7Ci0gICAgRVhQRUNUX1RSVUUobG9nZ2VyLT53aWxsTG9nKFRlc3RDaGFubmVsMSwgV1RGTG9n
TGV2ZWxFcnJvcikpOworICAgIFdURlNldExvZ0NoYW5uZWxMZXZlbCgmVGVzdENoYW5uZWwxLCBX
VEZMb2dMZXZlbDo6RXJyb3IpOworICAgIEVYUEVDVF9UUlVFKGxvZ2dlci0+d2lsbExvZyhUZXN0
Q2hhbm5lbDEsIFdURkxvZ0xldmVsOjpFcnJvcikpOwogICAgIGxvZ2dlci0+ZXJyb3IoVGVzdENo
YW5uZWwxLCAiWW91J3JlIHVzaW5nIGNvY29udXRzISIpOwogICAgIEVYUEVDVF9UUlVFKG91dHB1
dCgpLmNvbnRhaW5zKCJZb3UncmUgdXNpbmcgY29jb251dHMhIiwgZmFsc2UpKTsKICAgICBsb2dn
ZXItPndhcm5pbmcoVGVzdENoYW5uZWwxLCAiWW91J3JlIHVzaW5nIGNvY29udXRzISIpOwpAQCAt
MzA1LDE1ICszMDUsMTUgQEAgVEVTVF9GKExvZ2dpbmdUZXN0LCBMb2dnZXIpCiAgICAgbG9nZ2Vy
LT5lcnJvcihUZXN0Q2hhbm5lbDEsICJZb3UndmUgZ290ICIsIDIsICIgZW1wdHkgaGFsdmVzIG9m
ICIsICJjb2NvbnV0cyEiKTsKICAgICBFWFBFQ1RfVFJVRShvdXRwdXQoKS5jb250YWlucygiWW91
J3ZlIGdvdCAyIGVtcHR5IGhhbHZlcyBvZiBjb2NvbnV0cyEiLCBmYWxzZSkpOwogCi0gICAgV1RG
U2V0TG9nQ2hhbm5lbExldmVsKCZUZXN0Q2hhbm5lbDEsIFdURkxvZ0xldmVsRXJyb3IpOworICAg
IFdURlNldExvZ0NoYW5uZWxMZXZlbCgmVGVzdENoYW5uZWwxLCBXVEZMb2dMZXZlbDo6RXJyb3Ip
OwogICAgIGxvZ2dlci0+bG9nQWx3YXlzKFRlc3RDaGFubmVsMSwgIkkgc2hhbGwgdGF1bnQgeW91
IGEgc2Vjb25kIHRpbWUhIik7CiAgICAgRVhQRUNUX1RSVUUob3V0cHV0KCkuY29udGFpbnMoIkkg
c2hhbGwgdGF1bnQgeW91IGEgc2Vjb25kIHRpbWUhIiwgZmFsc2UpKTsKIAogICAgIGxvZ2dlci0+
c2V0RW5hYmxlZCh0aGlzLCBmYWxzZSk7Ci0gICAgRVhQRUNUX0ZBTFNFKGxvZ2dlci0+d2lsbExv
ZyhUZXN0Q2hhbm5lbDEsIFdURkxvZ0xldmVsRXJyb3IpKTsKLSAgICBFWFBFQ1RfRkFMU0UobG9n
Z2VyLT53aWxsTG9nKFRlc3RDaGFubmVsMSwgV1RGTG9nTGV2ZWxXYXJuaW5nKSk7Ci0gICAgRVhQ
RUNUX0ZBTFNFKGxvZ2dlci0+d2lsbExvZyhUZXN0Q2hhbm5lbDEsIFdURkxvZ0xldmVsSW5mbykp
OwotICAgIEVYUEVDVF9GQUxTRShsb2dnZXItPndpbGxMb2coVGVzdENoYW5uZWwxLCBXVEZMb2dM
ZXZlbERlYnVnKSk7CisgICAgRVhQRUNUX0ZBTFNFKGxvZ2dlci0+d2lsbExvZyhUZXN0Q2hhbm5l
bDEsIFdURkxvZ0xldmVsOjpFcnJvcikpOworICAgIEVYUEVDVF9GQUxTRShsb2dnZXItPndpbGxM
b2coVGVzdENoYW5uZWwxLCBXVEZMb2dMZXZlbDo6V2FybmluZykpOworICAgIEVYUEVDVF9GQUxT
RShsb2dnZXItPndpbGxMb2coVGVzdENoYW5uZWwxLCBXVEZMb2dMZXZlbDo6SW5mbykpOworICAg
IEVYUEVDVF9GQUxTRShsb2dnZXItPndpbGxMb2coVGVzdENoYW5uZWwxLCBXVEZMb2dMZXZlbDo6
RGVidWcpKTsKICAgICBFWFBFQ1RfRkFMU0UobG9nZ2VyLT5lbmFibGVkKCkpOwogICAgIGxvZ2dl
ci0+bG9nQWx3YXlzKFRlc3RDaGFubmVsMSwgIllvdSd2ZSBnb3QgdHdvIGVtcHR5IGhhbHZlcyBv
ZiBjb2NvbnV0cyIpOwogICAgIEVYUEVDVF9FUSgwdSwgb3V0cHV0KCkubGVuZ3RoKCkpOwpAQCAt
MzQ4LDcgKzM0OCw3IEBAIFRFU1RfRihMb2dnaW5nVGVzdCwgTG9nZ2VySGVscGVyKQogICAgIEVY
UEVDVF9UUlVFKHJlc3VsdC5jb250YWlucyhzaWduYXR1cmUsIGZhbHNlKSk7CiAgICAgRVhQRUNU
X1RSVUUocmVzdWx0LmNvbnRhaW5zKCJ0byB0aGUgc2hvdyB0aGF0IG5ldmVyIiwgZmFsc2UpKTsK
IAotICAgIFdURlNldExvZ0NoYW5uZWxMZXZlbCgmVGVzdENoYW5uZWwxLCBXVEZMb2dMZXZlbFdh
cm5pbmcpOworICAgIFdURlNldExvZ0NoYW5uZWxMZXZlbCgmVGVzdENoYW5uZWwxLCBXVEZMb2dM
ZXZlbDo6V2FybmluZyk7CiAKICAgICBFUlJPUl9MT0coTE9HSURFTlRJRklFUiwgIldlJ3JlIHNv
IGdsYWQgeW91IGNvdWxkIGF0dGVuZCIpOwogICAgIEVYUEVDVF9UUlVFKG91dHB1dCgpLmNvbnRh
aW5zKCJXZSdyZSBzbyBnbGFkIHlvdSBjb3VsZCBhdHRlbmQiLCBmYWxzZSkpOwpAQCAtMzg4LDcg
KzM4OCw3IEBAIHByaXZhdGU6CiAKICAgICBTdHJpbmdCdWlsZGVyIG1fbG9nQnVmZmVyOwogICAg
IFdURkxvZ0NoYW5uZWwgbV9sYXN0Q2hhbm5lbDsKLSAgICBXVEZMb2dMZXZlbCBtX2xhc3RMZXZl
bCB7IFdURkxvZ0xldmVsRXJyb3IgfTsKKyAgICBXVEZMb2dMZXZlbCBtX2xhc3RMZXZlbCB7IFdU
RkxvZ0xldmVsOjpFcnJvciB9OwogfTsKIAogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRApAQCAt
NDAzLDcgKzQwMyw3IEBAIFRFU1RfRihMb2dnaW5nVGVzdCwgTG9nT2JzZXJ2ZXIpCiAgICAgRVhQ
RUNUX1RSVUUodGhpcy0+b3V0cHV0KCkuY29udGFpbnMoInRlc3RpbmcgMSwgMiwgMyIsIGZhbHNl
KSk7CiAgICAgRVhQRUNUX1RSVUUob2JzZXJ2ZXIubG9nKCkuY29udGFpbnMoInRlc3RpbmcgMSwg
MiwgMyIsIGZhbHNlKSk7CiAgICAgRVhQRUNUX1NUUkVRKG9ic2VydmVyLmNoYW5uZWwoKS5uYW1l
LCBsb2dDaGFubmVsKCkubmFtZSk7Ci0gICAgRVhQRUNUX0VRKHN0YXRpY19jYXN0PGludD4oV1RG
TG9nTGV2ZWxBbHdheXMpLCBzdGF0aWNfY2FzdDxpbnQ+KG9ic2VydmVyLmxldmVsKCkpKTsKKyAg
ICBFWFBFQ1RfRVEoc3RhdGljX2Nhc3Q8aW50PihXVEZMb2dMZXZlbDo6QWx3YXlzKSwgc3RhdGlj
X2Nhc3Q8aW50PihvYnNlcnZlci5sZXZlbCgpKSk7CiAKICAgICBsb2dnZXIoKS5yZW1vdmVPYnNl
cnZlcihvYnNlcnZlcik7CiAgICAgQUxXQVlTX0xPRygidGVzdGluZyAiLCAxLCAiLCAiLCAyLCAi
LCAzIik7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>