<?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>172103</bug_id>
          
          <creation_ts>2017-05-14 23:38:52 -0700</creation_ts>
          <short_desc>[JSC] Build testapi in non Apple ports</short_desc>
          <delta_ts>2017-05-23 09:52:07 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>achristensen</cc>
    
    <cc>buildbot</cc>
    
    <cc>cgarcia</cc>
    
    <cc>clopez</cc>
    
    <cc>fpizlo</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>ossy</cc>
    
    <cc>pvollan</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1308589</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-05-14 23:38:52 -0700</bug_when>
    <thetext>It is super useful if we can test JSC with testapi.
Especially, I&apos;m focusing on JSCOnly port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308593</commentid>
    <comment_count>1</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-05-15 00:13:31 -0700</bug_when>
    <thetext>Executing testapi in different platforms is actually useful.
I&apos;ve run testapi on Linux, and maybe I&apos;ve found a bug.

In testMarkingConstraintAndHeapFinalizers adds a constraint.
And it looks into weak refs.
But in L1205, we start releasing weak refs.
So, after that, if the markingConstraint runs, it find released weak refs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308608</commentid>
    <comment_count>2</comment_count>
      <attachid>310119</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-05-15 01:53:33 -0700</bug_when>
    <thetext>Created attachment 310119
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308609</commentid>
    <comment_count>3</comment_count>
      <attachid>310120</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-05-15 01:55:55 -0700</bug_when>
    <thetext>Created attachment 310120
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308612</commentid>
    <comment_count>4</comment_count>
      <attachid>310121</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-05-15 01:58:30 -0700</bug_when>
    <thetext>Created attachment 310121
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308613</commentid>
    <comment_count>5</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-05-15 01:59:32 -0700</bug_when>
    <thetext>Attachment 310121 did not pass style-queue:


ERROR: Source/JavaScriptCore/API/tests/testapi.c:154:  Declaration has space between * and variable name in char* buffer  [whitespace/declaration] [3]
ERROR: Source/JavaScriptCore/API/tests/testapi.c:1256:  Declaration has space between * and variable name in UniChar* buffer  [whitespace/declaration] [3]
Total errors found: 2 in 15 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>1308617</commentid>
    <comment_count>6</comment_count>
      <attachid>310123</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-05-15 02:08:50 -0700</bug_when>
    <thetext>Created attachment 310123
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308618</commentid>
    <comment_count>7</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-05-15 02:11:36 -0700</bug_when>
    <thetext>Attachment 310123 did not pass style-queue:


ERROR: Source/JavaScriptCore/API/tests/testapi.c:154:  Declaration has space between * and variable name in char* buffer  [whitespace/declaration] [3]
ERROR: Source/JavaScriptCore/API/tests/testapi.c:1256:  Declaration has space between * and variable name in UniChar* buffer  [whitespace/declaration] [3]
Total errors found: 2 in 15 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>1308761</commentid>
    <comment_count>8</comment_count>
      <attachid>310123</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-05-15 12:50:00 -0700</bug_when>
    <thetext>Comment on attachment 310123
Patch

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

This seems like a great idea.  Someone else will have to look at the testapi.c changes.

&gt; Tools/Scripts/run-javascriptcore-tests:59
&gt; -my $runTestAPI = isAppleCocoaWebKit() || isAppleWinWebKit() || isWinCairo();
&gt; +my $runTestAPI = isAppleCocoaWebKit() || isAppleWinWebKit() || isWinCairo() || isJSCOnly() || isGTK() || isWPE();

Let&apos;s just remove this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309035</commentid>
    <comment_count>9</comment_count>
      <attachid>310123</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-05-16 00:24:23 -0700</bug_when>
    <thetext>Comment on attachment 310123
Patch

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

Thanks!

&gt;&gt; Tools/Scripts/run-javascriptcore-tests:59
&gt;&gt; +my $runTestAPI = isAppleCocoaWebKit() || isAppleWinWebKit() || isWinCairo() || isJSCOnly() || isGTK() || isWPE();
&gt; 
&gt; Let&apos;s just remove this.

OK, dropped.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309040</commentid>
    <comment_count>10</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-05-16 00:27:55 -0700</bug_when>
    <thetext>Committed r216914: &lt;http://trac.webkit.org/changeset/216914&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309059</commentid>
    <comment_count>11</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2017-05-16 01:03:48 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #10)
&gt; Committed r216914: &lt;http://trac.webkit.org/changeset/216914&gt;

It broke the Apple Mac cmake build:
https://build.webkit.org/builders/Apple%20El%20Capitan%20CMake%20Debug%20%28Build%29/builds/1662</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309060</commentid>
    <comment_count>12</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2017-05-16 01:10:31 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/216914/webkit/trunk/Tools/Scripts/run-javascriptcore-tests

Running this test on JSCOnly bots won&apos;t work ever on ARM JSCOnly bots,
since they execute run-javascriptcore-tests on X86_64 with --remote-config-file
option, which means that run-jsc-stress-tests executes tests on a remote machine.

See this build:
https://build.webkit.org/builders/JSCOnly%20Linux%20ARMv7%20Thumb2%20Release/builds/588

Fortunately I found that we can disable this test with
RUN_JAVASCRIPTCORE_TESTS_TESTAPI=false environment variable.
I&apos;ll exactly do this immediately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309062</commentid>
    <comment_count>13</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2017-05-16 01:16:07 -0700</bug_when>
    <thetext>FYI, I disabled this test on the ARM JSCOnly bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309077</commentid>
    <comment_count>14</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-05-16 02:07:37 -0700</bug_when>
    <thetext>(In reply to Csaba Osztrogonác from comment #11)
&gt; (In reply to Yusuke Suzuki from comment #10)
&gt; &gt; Committed r216914: &lt;http://trac.webkit.org/changeset/216914&gt;
&gt; 
&gt; It broke the Apple Mac cmake build:
&gt; https://build.webkit.org/builders/
&gt; Apple%20El%20Capitan%20CMake%20Debug%20%28Build%29/builds/1662

I&apos;ll attempt to fix it by adding files for PlatformMac.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309085</commentid>
    <comment_count>15</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-05-16 02:41:01 -0700</bug_when>
    <thetext>Committed r216924: &lt;http://trac.webkit.org/changeset/216924&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309500</commentid>
    <comment_count>16</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2017-05-17 01:44:50 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #15)
&gt; Committed r216924: &lt;http://trac.webkit.org/changeset/216924&gt;

still broken ...

Undefined symbols for architecture x86_64:
  &quot;_testObjectiveCAPI&quot;, referenced from:
      _main in testapi.c.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [bin/testapi] Error 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309647</commentid>
    <comment_count>17</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-05-17 09:50:30 -0700</bug_when>
    <thetext>(In reply to Csaba Osztrogonác from comment #16)
&gt; (In reply to Yusuke Suzuki from comment #15)
&gt; &gt; Committed r216924: &lt;http://trac.webkit.org/changeset/216924&gt;
&gt; 
&gt; still broken ...
&gt; 
&gt; Undefined symbols for architecture x86_64:
&gt;   &quot;_testObjectiveCAPI&quot;, referenced from:
&gt;       _main in testapi.c.o
&gt; ld: symbol(s) not found for architecture x86_64
&gt; clang: error: linker command failed with exit code 1 (use -v to see
&gt; invocation)
&gt; make[2]: *** [bin/testapi] Error 1

This is weird because the call to testObjectiveCAPI is guarded by #if JSC_OBJC_API_ENABLED.  Why is JSC_OBJC_API_ENABLED set for linux?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310002</commentid>
    <comment_count>18</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2017-05-17 23:41:06 -0700</bug_when>
    <thetext>(In reply to Mark Lam from comment #17)
&gt; (In reply to Csaba Osztrogonác from comment #16)
&gt; &gt; (In reply to Yusuke Suzuki from comment #15)
&gt; &gt; &gt; Committed r216924: &lt;http://trac.webkit.org/changeset/216924&gt;
&gt; &gt; 
&gt; &gt; still broken ...
&gt; &gt; 
&gt; &gt; Undefined symbols for architecture x86_64:
&gt; &gt;   &quot;_testObjectiveCAPI&quot;, referenced from:
&gt; &gt;       _main in testapi.c.o
&gt; &gt; ld: symbol(s) not found for architecture x86_64
&gt; &gt; clang: error: linker command failed with exit code 1 (use -v to see
&gt; &gt; invocation)
&gt; &gt; make[2]: *** [bin/testapi] Error 1
&gt; 
&gt; This is weird because the call to testObjectiveCAPI is guarded by #if
&gt; JSC_OBJC_API_ENABLED.  Why is JSC_OBJC_API_ENABLED set for linux?

It&apos;s not Linux, but the official Apple Mac cmake build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1311278</commentid>
    <comment_count>19</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2017-05-22 03:42:24 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #15)
&gt; Committed r216924: &lt;http://trac.webkit.org/changeset/216924&gt;

FYI: The Apple Mac cmake build is still broken after this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1311909</commentid>
    <comment_count>20</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-05-23 09:52:07 -0700</bug_when>
    <thetext>(In reply to Csaba Osztrogonác from comment #19)
&gt; (In reply to Yusuke Suzuki from comment #15)
&gt; &gt; Committed r216924: &lt;http://trac.webkit.org/changeset/216924&gt;
&gt; 
&gt; FYI: The Apple Mac cmake build is still broken after this change.

According to Yusuke, this should have been fixed in r217182: &lt;http://trac.webkit.org/r217182&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310119</attachid>
            <date>2017-05-15 01:53:33 -0700</date>
            <delta_ts>2017-05-15 01:55:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172103-20170515175332.patch</filename>
            <type>text/plain</type>
            <size>27220</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2ODUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NTU4MDYwYTc5YjBiNjlkZDExNGVkMTQxNmE3YWJlODNkNGUzNTE2Li41NjgyZDJjNTI2MjAxMjUw
OWU0ZmJhODZmMDc4ZDdlMjMyZWY2ODVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNiBAQAorMjAxNy0wNS0xNSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbSlNDXSBCdWlsZCB0ZXN0YXBpIGluIG5vbiBBcHBsZSBwb3J0cwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcyMTAzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRj
aCBtYWtlcyBKU0MgdGVzdGFwaSBidWlsZGFibGUgaW4gbm9uLUFwcGxlIHBvcnRzLgorICAgICAg
ICBXZSBpc29sYXRlIENGIHJlbGF0ZWQgdGVzdHMgaW4gdGVzdGFwaS5jLiBJZiB3ZSBkbyBub3Qg
dXNlCisgICAgICAgIENGLCB3ZSBpbmNsdWRlIEphdmFTY3JpcHQuaCBpbnN0ZWFkIG9mIEphdmFT
Y3JpcHRDb3JlLmguCisKKyAgICAgICAgQnkgcnVubmluZyB0aGUgdGVzdGFwaSBpbiBMaW51eCwg
d2UgZm91bmQgdGhhdCBjb250cmFpbnRzCisgICAgICAgIHRlc3QgaGF2ZSBhIGJ1ZzogSWYgY29u
c3RyYWludCBtYXJrZXIgcnVucyBhZnRlciBXZWFrUmVmcworICAgICAgICBhcmUgZGVzdHJveWVk
LCBpdCBhY2Nlc3NlcyBkZXN0cm95ZWQgV2Vha1JlZi4gVGhpcyBwYXRjaAorICAgICAgICBhbHNv
IGZpeGVzIGl0LgorCisgICAgICAgICogQVBJL3Rlc3RzL0N1cnJlbnRUaGlzSW5zaWRlQmxvY2tH
ZXR0ZXJUZXN0Lmg6CisgICAgICAgICogQVBJL3Rlc3RzL0N1c3RvbUdsb2JhbE9iamVjdENsYXNz
VGVzdC5jOgorICAgICAgICAqIEFQSS90ZXN0cy9FeGVjdXRpb25UaW1lTGltaXRUZXN0LmNwcDoK
KyAgICAgICAgKiBBUEkvdGVzdHMvRnVuY3Rpb25PdmVycmlkZXNUZXN0LmNwcDoKKyAgICAgICAg
KiBBUEkvdGVzdHMvR2xvYmFsQ29udGV4dFdpdGhGaW5hbGl6ZXJUZXN0LmNwcDoKKyAgICAgICAg
KiBBUEkvdGVzdHMvSlNPYmplY3RHZXRQcm94eVRhcmdldFRlc3QuY3BwOgorICAgICAgICAqIEFQ
SS90ZXN0cy9NdWx0aXRocmVhZGVkTXVsdGlWTUV4ZWN1dGlvblRlc3QuY3BwOgorICAgICAgICAq
IEFQSS90ZXN0cy9QaW5nUG9uZ1N0YWNrT3ZlcmZsb3dUZXN0LmNwcDoKKyAgICAgICAgKiBBUEkv
dGVzdHMvVHlwZWRBcnJheUNUZXN0LmNwcDoKKyAgICAgICAgKiBBUEkvdGVzdHMvdGVzdGFwaS5j
OgorICAgICAgICAoYXNzZXJ0RXF1YWxzQXNDaGFyYWN0ZXJzUHRyKToKKyAgICAgICAgKG1hcmtp
bmdDb25zdHJhaW50KToKKyAgICAgICAgKHRlc3RNYXJraW5nQ29uc3RyYWludHNBbmRIZWFwRmlu
YWxpemVycyk6CisgICAgICAgICh0ZXN0Q0ZTdHJpbmdzKToKKyAgICAgICAgKG1haW4pOgorICAg
ICAgICAqIHNoZWxsL0NNYWtlTGlzdHMudHh0OgorCiAyMDE3LTA1LTEzICBEYXZpZCBLaWx6ZXIg
IDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgVW51c2VkIGxhbWJkYSBjYXB0dXJlIGlu
IEpTQ29udGV4dEdyb3VwQWRkTWFya2luZ0NvbnN0cmFpbnQoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9DdXJyZW50VGhpc0luc2lkZUJsb2NrR2V0dGVyVGVz
dC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9DdXJyZW50VGhpc0luc2lkZUJs
b2NrR2V0dGVyVGVzdC5oCmluZGV4IGFiNjhmODA1NzJlNjQxMjZhYzYzZWQ1ZjY0NmFmNDhjMzI3
MmUwYjkuLjQ5OGUxNWZhOTI5YzkyOGM3NmNkYmYwMDdiNWRhMTY2OGZlZjk4NTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvQ3VycmVudFRoaXNJbnNpZGVCbG9j
a0dldHRlclRlc3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL0N1cnJl
bnRUaGlzSW5zaWRlQmxvY2tHZXR0ZXJUZXN0LmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdt
YSBvbmNlCiAKLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5oPgorI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHQuaD4KIAogI2lmIEpTQ19PQkpDX0FQSV9F
TkFCTEVECiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvQ3Vz
dG9tR2xvYmFsT2JqZWN0Q2xhc3NUZXN0LmMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rl
c3RzL0N1c3RvbUdsb2JhbE9iamVjdENsYXNzVGVzdC5jCmluZGV4IDYyZTYzOTc4ZWRlNmY3MDE1
YjM2MzNjNzdlNGExNmZjNWY2ZjcyZTQuLjk3NmE4ODFiM2JiYjg3ZGQ2MWU1MzlkMDAxYzYzZTVi
YTNkMDM2ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvQ3Vz
dG9tR2xvYmFsT2JqZWN0Q2xhc3NUZXN0LmMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS90ZXN0cy9DdXN0b21HbG9iYWxPYmplY3RDbGFzc1Rlc3QuYwpAQCAtMjYsOCArMjYsMTAgQEAK
ICNpbmNsdWRlICJDdXN0b21HbG9iYWxPYmplY3RDbGFzc1Rlc3QuaCIKIAogI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0pTT2JqZWN0UmVmUHJpdmF0ZS5oPgotI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dC5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8
c3RyaW5nLmg+CiAKIGV4dGVybiBib29sIGFzc2VydFRydWUoYm9vbCB2YWx1ZSwgY29uc3QgY2hh
ciogbWVzc2FnZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVz
dHMvRXhlY3V0aW9uVGltZUxpbWl0VGVzdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L3Rlc3RzL0V4ZWN1dGlvblRpbWVMaW1pdFRlc3QuY3BwCmluZGV4IGQ1ZTUzMjQzYjc4ZGY3NTEz
NDJhZDhkMzkwYTRiMDQxM2Q5ZWVmOWUuLjg1YzI3MmM0NDM3Njc3NTczZTBlNzUwYWFhYzU2Mzll
Y2U4NDJkN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvRXhl
Y3V0aW9uVGltZUxpbWl0VGVzdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90
ZXN0cy9FeGVjdXRpb25UaW1lTGltaXRUZXN0LmNwcApAQCAtMjgsNyArMjgsNyBAQAogCiAjaW5j
bHVkZSAiSW5pdGlhbGl6ZVRocmVhZGluZy5oIgogI2luY2x1ZGUgIkpTQ29udGV4dFJlZlByaXZh
dGUuaCIKLSNpbmNsdWRlICJKYXZhU2NyaXB0Q29yZS5oIgorI2luY2x1ZGUgIkphdmFTY3JpcHQu
aCIKICNpbmNsdWRlICJPcHRpb25zLmgiCiAjaW5jbHVkZSA8Y2hyb25vPgogI2luY2x1ZGUgPHd0
Zi9DdXJyZW50VGltZS5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90
ZXN0cy9GdW5jdGlvbk92ZXJyaWRlc1Rlc3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS90ZXN0cy9GdW5jdGlvbk92ZXJyaWRlc1Rlc3QuY3BwCmluZGV4IGEzMjVmODM5M2I4YTJiNGMw
YjMxMDk3NTJhNWM4MjE2ZWVkZDQzYmYuLmNmMGQ2ZGMwNDE5ZWJhOWU1YWZjNTBhOWU2NTQxNzkx
MWE0NTBkZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvRnVu
Y3Rpb25PdmVycmlkZXNUZXN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rl
c3RzL0Z1bmN0aW9uT3ZlcnJpZGVzVGVzdC5jcHAKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRl
ICJGdW5jdGlvbk92ZXJyaWRlcy5oIgogI2luY2x1ZGUgIkluaXRpYWxpemVUaHJlYWRpbmcuaCIK
ICNpbmNsdWRlICJKU0NvbnRleHRSZWZQcml2YXRlLmgiCi0jaW5jbHVkZSAiSmF2YVNjcmlwdENv
cmUuaCIKKyNpbmNsdWRlICJKYXZhU2NyaXB0LmgiCiAjaW5jbHVkZSAiT3B0aW9ucy5oIgogI2lu
Y2x1ZGUgPHN0cmluZz4KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90
ZXN0cy9HbG9iYWxDb250ZXh0V2l0aEZpbmFsaXplclRlc3QuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS90ZXN0cy9HbG9iYWxDb250ZXh0V2l0aEZpbmFsaXplclRlc3QuY3BwCmluZGV4
IDA0ODZhMjZjMDE4YjEwZmJmYTMwN2MzM2IwMjM4OGZlYjk1OWYwNDAuLjhkZDgyYjFjZWM4Yzkw
YWExMWQ5NDE3NTcyMDRkYmY5YTFjNWFkZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvdGVzdHMvR2xvYmFsQ29udGV4dFdpdGhGaW5hbGl6ZXJUZXN0LmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL0dsb2JhbENvbnRleHRXaXRoRmluYWxpemVy
VGVzdC5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJHbG9iYWxDb250ZXh0V2l0aEZpbmFsaXplclRlc3QuaCIKIAotI2luY2x1ZGUgIkphdmFTY3Jp
cHRDb3JlLmgiCisjaW5jbHVkZSAiSmF2YVNjcmlwdC5oIgogCiBzdGF0aWMgYm9vbCBmYWlsZWQg
PSB0cnVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL0pT
T2JqZWN0R2V0UHJveHlUYXJnZXRUZXN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
dGVzdHMvSlNPYmplY3RHZXRQcm94eVRhcmdldFRlc3QuY3BwCmluZGV4IGNmMGM1MzY3YmRkN2U1
MGYxMzllMmU0ZjE3OTYyN2MyMjM5YjJiNGMuLjI4MmY3MzY2ZjcyN2FjMzFkNWUwMGYxOGMyYmYy
YzNmNWM5M2Y0NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMv
SlNPYmplY3RHZXRQcm94eVRhcmdldFRlc3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvdGVzdHMvSlNPYmplY3RHZXRQcm94eVRhcmdldFRlc3QuY3BwCkBAIC0zMSw3ICszMSw3
IEBACiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTT2JqZWN0UmVmUHJpdmF0
ZS5oIgogI2luY2x1ZGUgIkpTUHJveHkuaCIKLSNpbmNsdWRlICJKYXZhU2NyaXB0Q29yZS5oIgor
I2luY2x1ZGUgIkphdmFTY3JpcHQuaCIKICNpbmNsdWRlICJPcHRpb25zLmgiCiAjaW5jbHVkZSAi
UHJveHlPYmplY3QuaCIKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90
ZXN0cy9NdWx0aXRocmVhZGVkTXVsdGlWTUV4ZWN1dGlvblRlc3QuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS90ZXN0cy9NdWx0aXRocmVhZGVkTXVsdGlWTUV4ZWN1dGlvblRlc3QuY3Bw
CmluZGV4IGIxOTUxYTBhY2IwOTE5NWRmZjI0M2Y1ZDgyMmMwMjA2Nzc1NjdhOTUuLmI3OTMyNTg0
YjE1OGJmMjg2YWE0Y2FkNjJiMGJhNDIzNTUyNjg2ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvdGVzdHMvTXVsdGl0aHJlYWRlZE11bHRpVk1FeGVjdXRpb25UZXN0LmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL011bHRpdGhyZWFkZWRNdWx0
aVZNRXhlY3V0aW9uVGVzdC5jcHAKQEAgLTI4LDcgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkluaXRp
YWxpemVUaHJlYWRpbmcuaCIKICNpbmNsdWRlICJKU0NvbnRleHRSZWZQcml2YXRlLmgiCi0jaW5j
bHVkZSAiSmF2YVNjcmlwdENvcmUuaCIKKyNpbmNsdWRlICJKYXZhU2NyaXB0LmgiCiAjaW5jbHVk
ZSAiT3B0aW9ucy5oIgogI2luY2x1ZGUgPG11dGV4PgogI2luY2x1ZGUgPHN0cmluZz4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvUGluZ1BvbmdTdGFja092ZXJm
bG93VGVzdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL1BpbmdQb25nU3Rh
Y2tPdmVyZmxvd1Rlc3QuY3BwCmluZGV4IGVmNGI5MTRjMTFhMzk1YjViNmJmYTk1ZTMxYmE5MjFj
ODc4YzgwOTQuLjIzNWRjZWU1N2Q1OWU0NGQyOGVmM2JjMzRmMjgyNzI1ZTU3MzI1YmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvUGluZ1BvbmdTdGFja092ZXJm
bG93VGVzdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9QaW5nUG9u
Z1N0YWNrT3ZlcmZsb3dUZXN0LmNwcApAQCAtMjgsNyArMjgsNyBAQAogCiAjaW5jbHVkZSAiSW5p
dGlhbGl6ZVRocmVhZGluZy5oIgogI2luY2x1ZGUgIkpTQ29udGV4dFJlZlByaXZhdGUuaCIKLSNp
bmNsdWRlICJKYXZhU2NyaXB0Q29yZS5oIgorI2luY2x1ZGUgIkphdmFTY3JpcHQuaCIKICNpbmNs
dWRlICJPcHRpb25zLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL1R5cGVkQXJyYXlDVGVz
dC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL1R5cGVkQXJyYXlDVGVzdC5j
cHAKaW5kZXggOGVjOGNkZDVkYzJhMGE3ODY3OGQ4NGIzYzVmYjQ1MmM1ZTMxYTdlMi4uNDM4YWZl
OWE2NDMxMzE5MGJkOGFlOTY4MzNjNjBlZmIzNDkxN2IzYyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9UeXBlZEFycmF5Q1Rlc3QuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvVHlwZWRBcnJheUNUZXN0LmNwcApAQCAtMjYsNyArMjYs
OSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlR5cGVkQXJyYXlDVGVzdC5oIgog
Ci0jaW5jbHVkZSAiSmF2YVNjcmlwdENvcmUuaCIKKyNpbmNsdWRlICJKYXZhU2NyaXB0LmgiCisj
aW5jbHVkZSA8bGltaXRzLmg+CisjaW5jbHVkZSA8bWF0aC5oPgogI2luY2x1ZGUgPHd0Zi9Bc3Nl
cnRpb25zLmg+CiAKIGV4dGVybiAiQyIgdm9pZCBKU1N5bmNocm9ub3VzR2FyYmFnZUNvbGxlY3RG
b3JEZWJ1Z2dpbmcoSlNDb250ZXh0UmVmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0
cy90ZXN0YXBpLmMKaW5kZXggNDI2OGQwYzAyNGFiN2Q2ZDdiZTE3MTI0Y2Y0M2FmMjA1M2E0MDE5
Yy4uYjZhYmQ2ZDU1OWJjMDVkY2QwNThjYjc3ZGViYjI3ODU1OTViMmYwMiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLmMKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLmMKQEAgLTI1LDcgKzI1LDEyIEBACiAKICNp
bmNsdWRlIDx3dGYvUGxhdGZvcm0uaD4KIAorI2lmIFVTRShDRikKICNpbmNsdWRlICJKYXZhU2Ny
aXB0Q29yZS5oIgorI2Vsc2UKKyNpbmNsdWRlICJKYXZhU2NyaXB0LmgiCisjZW5kaWYKKwogI2lu
Y2x1ZGUgIkpTQmFzZVByaXZhdGUuaCIKICNpbmNsdWRlICJKU0NvbnRleHRSZWZQcml2YXRlLmgi
CiAjaW5jbHVkZSAiSlNIZWFwRmluYWxpemVyUHJpdmF0ZS5oIgpAQCAtMzUsNiArNDAsMTAgQEAK
ICNpbmNsdWRlICJKU1N0cmluZ1JlZlByaXZhdGUuaCIKICNpbmNsdWRlICJKU1dlYWtQcml2YXRl
LmgiCiAjaW5jbHVkZSA8bWF0aC5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3Rk
bGliLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8dGltZS5oPgogI2RlZmluZSBB
U1NFUlRfRElTQUJMRUQgMAogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAKQEAgLTExMyw2
ICsxMjIsNyBAQCBzdGF0aWMgdm9pZCBhc3NlcnRFcXVhbHNBc0NoYXJhY3RlcnNQdHIoSlNWYWx1
ZVJlZiB2YWx1ZSwgY29uc3QgY2hhciogZXhwZWN0ZWRWYQogewogICAgIEpTU3RyaW5nUmVmIHZh
bHVlQXNTdHJpbmcgPSBKU1ZhbHVlVG9TdHJpbmdDb3B5KGNvbnRleHQsIHZhbHVlLCBOVUxMKTsK
IAorI2lmIFVTRShDRikKICAgICBzaXplX3QganNMZW5ndGggPSBKU1N0cmluZ0dldExlbmd0aCh2
YWx1ZUFzU3RyaW5nKTsKICAgICBjb25zdCBKU0NoYXIqIGpzQnVmZmVyID0gSlNTdHJpbmdHZXRD
aGFyYWN0ZXJzUHRyKHZhbHVlQXNTdHJpbmcpOwogCkBAIC0xMzksNiArMTQ5LDE4IEBAIHN0YXRp
YyB2b2lkIGFzc2VydEVxdWFsc0FzQ2hhcmFjdGVyc1B0cihKU1ZhbHVlUmVmIHZhbHVlLCBjb25z
dCBjaGFyKiBleHBlY3RlZFZhCiAgICAgfQogCiAgICAgZnJlZShjZkJ1ZmZlcik7CisjZWxzZQor
ICAgIHNpemVfdCBidWZmZXJTaXplID0gSlNTdHJpbmdHZXRNYXhpbXVtVVRGOENTdHJpbmdTaXpl
KHZhbHVlQXNTdHJpbmcpOworICAgIGNoYXIqIGJ1ZmZlciA9IChjaGFyKiltYWxsb2MoYnVmZmVy
U2l6ZSk7CisgICAgSlNTdHJpbmdHZXRVVEY4Q1N0cmluZyh2YWx1ZUFzU3RyaW5nLCBidWZmZXIs
IGJ1ZmZlclNpemUpOworCisgICAgaWYgKHN0cmNtcChidWZmZXIsIGV4cGVjdGVkVmFsdWUpKSB7
CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiYXNzZXJ0RXF1YWxzQXNDaGFyYWN0ZXJzUHRyIGZh
aWxlZDoganNCdWZmZXIgIT0gY2ZCdWZmZXJcbiIpOworICAgICAgICBmYWlsZWQgPSAxOworICAg
IH0KKworICAgIGZyZWUoYnVmZmVyKTsKKyNlbmRpZgogICAgIEpTU3RyaW5nUmVsZWFzZSh2YWx1
ZUFzU3RyaW5nKTsKIH0KIApAQCAtMTEzOCw5ICsxMTYwLDEyIEBAIHN0YXRpYyB2b2lkIG1hcmtp
bmdDb25zdHJhaW50KEpTTWFya2VyUmVmIG1hcmtlciwgdm9pZCAqdXNlckRhdGEpCiAgICAgd2Vh
a1JlZnMgPSAoSlNXZWFrUmVmKil1c2VyRGF0YTsKICAgICAKICAgICBmb3IgKGkgPSAwOyBpIDwg
bnVtV2Vha1JlZnM7IGkgKz0gMikgewotICAgICAgICBKU09iamVjdFJlZiBvYmplY3QgPSBKU1dl
YWtHZXRPYmplY3Qod2Vha1JlZnNbaV0pOwotICAgICAgICBtYXJrZXItPk1hcmsobWFya2VyLCBv
YmplY3QpOwotICAgICAgICBhc3NlcnRUcnVlKG1hcmtlci0+SXNNYXJrZWQobWFya2VyLCBvYmpl
Y3QpLCAiQSBtYXJrZWQgb2JqZWN0IGlzIG1hcmtlZCIpOworICAgICAgICBKU1dlYWtSZWYgd2Vh
a1JlZiA9IHdlYWtSZWZzW2ldOworICAgICAgICBpZiAod2Vha1JlZikgeworICAgICAgICAgICAg
SlNPYmplY3RSZWYgb2JqZWN0ID0gSlNXZWFrR2V0T2JqZWN0KHdlYWtSZWZzW2ldKTsKKyAgICAg
ICAgICAgIG1hcmtlci0+TWFyayhtYXJrZXIsIG9iamVjdCk7CisgICAgICAgICAgICBhc3NlcnRU
cnVlKG1hcmtlci0+SXNNYXJrZWQobWFya2VyLCBvYmplY3QpLCAiQSBtYXJrZWQgb2JqZWN0IGlz
IG1hcmtlZCIpOworICAgICAgICB9CiAgICAgfQogfQogCkBAIC0xMTkwLDggKzEyMTUsMTEgQEAg
c3RhdGljIHZvaWQgdGVzdE1hcmtpbmdDb25zdHJhaW50c0FuZEhlYXBGaW5hbGl6ZXJzKHZvaWQp
CiAgICAgCiAgICAgYXNzZXJ0VHJ1ZShkZWFkQ291bnQgIT0gMCwgIkF0IGxlYXN0IHNvbWUgb2Jq
ZWN0cyBkaWVkIik7CiAgICAgCi0gICAgZm9yIChpID0gbnVtV2Vha1JlZnM7IGktLTspCi0gICAg
ICAgIEpTV2Vha1JlbGVhc2UoZ3JvdXAsIHdlYWtSZWZzW2ldKTsKKyAgICBmb3IgKGkgPSBudW1X
ZWFrUmVmczsgaS0tOykgeworICAgICAgICBKU1dlYWtSZWYgd2Vha1JlZiA9IHdlYWtSZWZzW2ld
OworICAgICAgICB3ZWFrUmVmc1tpXSA9IE5VTEw7CisgICAgICAgIEpTV2Vha1JlbGVhc2UoZ3Jv
dXAsIHdlYWtSZWYpOworICAgIH0KICAgICAKICAgICBkaWRSdW5IZWFwRmluYWxpemVyID0gZmFs
c2U7CiAgICAgSlNTeW5jaHJvbm91c0dhcmJhZ2VDb2xsZWN0Rm9yRGVidWdnaW5nKGNvbnRleHQp
OwpAQCAtMTIwOCw2ICsxMjM2LDEwMyBAQCBzdGF0aWMgdm9pZCB0ZXN0TWFya2luZ0NvbnN0cmFp
bnRzQW5kSGVhcEZpbmFsaXplcnModm9pZCkKICAgICBwcmludGYoIlBBU1M6IE1hcmtpbmcgQ29u
c3RyYWludHMgYW5kIEhlYXAgRmluYWxpemVycy5cbiIpOwogfQogCisjaWYgVVNFKENGKQorc3Rh
dGljIHZvaWQgdGVzdENGU3RyaW5ncyh2b2lkKQoreworICAgIEpTR2xvYmFsQ29udGV4dFJlZiBj
b250ZXh0ID0gSlNHbG9iYWxDb250ZXh0Q3JlYXRlKDApOworCisgICAgVW5pQ2hhciBzaW5nbGVV
bmlDaGFyID0gNjU7IC8vIENhcGl0YWwgQQorICAgIENGTXV0YWJsZVN0cmluZ1JlZiBjZlN0cmlu
ZyA9IENGU3RyaW5nQ3JlYXRlTXV0YWJsZVdpdGhFeHRlcm5hbENoYXJhY3RlcnNOb0NvcHkoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgJnNpbmdsZVVuaUNoYXIsIDEsIDEsIGtDRkFsbG9jYXRvck51bGwp
OworCisgICAgSlNTdHJpbmdSZWYganNDRklTdHJpbmcgPSBKU1N0cmluZ0NyZWF0ZVdpdGhDRlN0
cmluZyhjZlN0cmluZyk7CisgICAgSlNWYWx1ZVJlZiBqc0NGU3RyaW5nID0gSlNWYWx1ZU1ha2VT
dHJpbmcoY29udGV4dCwganNDRklTdHJpbmcpOworCisgICAgQ0ZTdHJpbmdSZWYgY2ZFbXB0eVN0
cmluZyA9IENGU3RyaW5nQ3JlYXRlV2l0aENTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgIiIs
IGtDRlN0cmluZ0VuY29kaW5nVVRGOCk7CisKKyAgICBKU1N0cmluZ1JlZiBqc0NGRW1wdHlJU3Ry
aW5nID0gSlNTdHJpbmdDcmVhdGVXaXRoQ0ZTdHJpbmcoY2ZFbXB0eVN0cmluZyk7CisgICAgSlNW
YWx1ZVJlZiBqc0NGRW1wdHlTdHJpbmcgPSBKU1ZhbHVlTWFrZVN0cmluZyhjb250ZXh0LCBqc0NG
RW1wdHlJU3RyaW5nKTsKKworICAgIENGSW5kZXggY2ZTdHJpbmdMZW5ndGggPSBDRlN0cmluZ0dl
dExlbmd0aChjZlN0cmluZyk7CisgICAgVW5pQ2hhciogYnVmZmVyID0gKFVuaUNoYXIqKW1hbGxv
YyhjZlN0cmluZ0xlbmd0aCAqIHNpemVvZihVbmlDaGFyKSk7CisgICAgQ0ZTdHJpbmdHZXRDaGFy
YWN0ZXJzKGNmU3RyaW5nLCBDRlJhbmdlTWFrZSgwLCBjZlN0cmluZ0xlbmd0aCksIGJ1ZmZlcik7
CisgICAgSlNTdHJpbmdSZWYganNDRklTdHJpbmdXaXRoQ2hhcmFjdGVycyA9IEpTU3RyaW5nQ3Jl
YXRlV2l0aENoYXJhY3RlcnMoKEpTQ2hhciopYnVmZmVyLCBjZlN0cmluZ0xlbmd0aCk7CisgICAg
SlNWYWx1ZVJlZiBqc0NGU3RyaW5nV2l0aENoYXJhY3RlcnMgPSBKU1ZhbHVlTWFrZVN0cmluZyhj
b250ZXh0LCBqc0NGSVN0cmluZ1dpdGhDaGFyYWN0ZXJzKTsKKworICAgIEpTU3RyaW5nUmVmIGpz
Q0ZFbXB0eUlTdHJpbmdXaXRoQ2hhcmFjdGVycyA9IEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3Rl
cnMoKEpTQ2hhciopYnVmZmVyLCBDRlN0cmluZ0dldExlbmd0aChjZkVtcHR5U3RyaW5nKSk7Cisg
ICAgZnJlZShidWZmZXIpOworICAgIEpTVmFsdWVSZWYganNDRkVtcHR5U3RyaW5nV2l0aENoYXJh
Y3RlcnMgPSBKU1ZhbHVlTWFrZVN0cmluZyhjb250ZXh0LCBqc0NGRW1wdHlJU3RyaW5nV2l0aENo
YXJhY3RlcnMpOworCisgICAgQVNTRVJUKEpTVmFsdWVHZXRUeXBlKGNvbnRleHQsIGpzQ0ZTdHJp
bmcpID09IGtKU1R5cGVTdHJpbmcpOworICAgIEFTU0VSVChKU1ZhbHVlR2V0VHlwZShjb250ZXh0
LCBqc0NGU3RyaW5nV2l0aENoYXJhY3RlcnMpID09IGtKU1R5cGVTdHJpbmcpOworICAgIEFTU0VS
VChKU1ZhbHVlR2V0VHlwZShjb250ZXh0LCBqc0NGRW1wdHlTdHJpbmcpID09IGtKU1R5cGVTdHJp
bmcpOworICAgIEFTU0VSVChKU1ZhbHVlR2V0VHlwZShjb250ZXh0LCBqc0NGRW1wdHlTdHJpbmdX
aXRoQ2hhcmFjdGVycykgPT0ga0pTVHlwZVN0cmluZyk7CisKKyAgICBKU1N0cmluZ1JlZiBlbXB0
eVN0cmluZyA9IEpTU3RyaW5nQ3JlYXRlV2l0aENGU3RyaW5nKENGU1RSKCIiKSk7CisgICAgY29u
c3QgSlNDaGFyKiBjaGFyYWN0ZXJzID0gSlNTdHJpbmdHZXRDaGFyYWN0ZXJzUHRyKGVtcHR5U3Ry
aW5nKTsKKyAgICBpZiAoIWNoYXJhY3RlcnMpIHsKKyAgICAgICAgcHJpbnRmKCJGQUlMOiBSZXR1
cm5lZCBudWxsIHdoZW4gYWNjZXNzaW5nIGNoYXJhY3RlciBwb2ludGVyIG9mIGFuIGVtcHR5IFN0
cmluZy5cbiIpOworICAgICAgICBmYWlsZWQgPSAxOworICAgIH0gZWxzZQorICAgICAgICBwcmlu
dGYoIlBBU1M6IHJldHVybmVkIGVtcHR5IHdoZW4gYWNjZXNzaW5nIGNoYXJhY3RlciBwb2ludGVy
IG9mIGFuIGVtcHR5IFN0cmluZy5cbiIpOworCisgICAgc2l6ZV90IGxlbmd0aCA9IEpTU3RyaW5n
R2V0TGVuZ3RoKGVtcHR5U3RyaW5nKTsKKyAgICBpZiAobGVuZ3RoKSB7CisgICAgICAgIHByaW50
ZigiRkFJTDogRGlkbid0IHJldHVybiAwIGxlbmd0aCBmb3IgZW1wdHkgU3RyaW5nLlxuIik7Cisg
ICAgICAgIGZhaWxlZCA9IDE7CisgICAgfSBlbHNlCisgICAgICAgIHByaW50ZigiUEFTUzogcmV0
dXJuZWQgMCBsZW5ndGggZm9yIGVtcHR5IFN0cmluZy5cbiIpOworICAgIEpTU3RyaW5nUmVsZWFz
ZShlbXB0eVN0cmluZyk7CisKKyAgICBhc3NlcnRFcXVhbHNBc0Jvb2xlYW4oanNDRlN0cmluZywg
dHJ1ZSk7CisgICAgYXNzZXJ0RXF1YWxzQXNCb29sZWFuKGpzQ0ZTdHJpbmdXaXRoQ2hhcmFjdGVy
cywgdHJ1ZSk7CisgICAgYXNzZXJ0RXF1YWxzQXNCb29sZWFuKGpzQ0ZFbXB0eVN0cmluZywgZmFs
c2UpOworICAgIGFzc2VydEVxdWFsc0FzQm9vbGVhbihqc0NGRW1wdHlTdHJpbmdXaXRoQ2hhcmFj
dGVycywgZmFsc2UpOworCisgICAgYXNzZXJ0RXF1YWxzQXNOdW1iZXIoanNDRlN0cmluZywgbmFu
KCIiKSk7CisgICAgYXNzZXJ0RXF1YWxzQXNOdW1iZXIoanNDRlN0cmluZ1dpdGhDaGFyYWN0ZXJz
LCBuYW4oIiIpKTsKKyAgICBhc3NlcnRFcXVhbHNBc051bWJlcihqc0NGRW1wdHlTdHJpbmcsIDAp
OworICAgIGFzc2VydEVxdWFsc0FzTnVtYmVyKGpzQ0ZFbXB0eVN0cmluZ1dpdGhDaGFyYWN0ZXJz
LCAwKTsKKyAgICBBU1NFUlQoc2l6ZW9mKEpTQ2hhcikgPT0gc2l6ZW9mKFVuaUNoYXIpKTsKKwor
ICAgIGFzc2VydEVxdWFsc0FzQ2hhcmFjdGVyc1B0cihqc0NGU3RyaW5nLCAiQSIpOworICAgIGFz
c2VydEVxdWFsc0FzQ2hhcmFjdGVyc1B0cihqc0NGU3RyaW5nV2l0aENoYXJhY3RlcnMsICJBIik7
CisgICAgYXNzZXJ0RXF1YWxzQXNDaGFyYWN0ZXJzUHRyKGpzQ0ZFbXB0eVN0cmluZywgIiIpOwor
ICAgIGFzc2VydEVxdWFsc0FzQ2hhcmFjdGVyc1B0cihqc0NGRW1wdHlTdHJpbmdXaXRoQ2hhcmFj
dGVycywgIiIpOworCisgICAgYXNzZXJ0RXF1YWxzQXNVVEY4U3RyaW5nKGpzQ0ZTdHJpbmcsICJB
Iik7CisgICAgYXNzZXJ0RXF1YWxzQXNVVEY4U3RyaW5nKGpzQ0ZTdHJpbmdXaXRoQ2hhcmFjdGVy
cywgIkEiKTsKKyAgICBhc3NlcnRFcXVhbHNBc1VURjhTdHJpbmcoanNDRkVtcHR5U3RyaW5nLCAi
Iik7CisgICAgYXNzZXJ0RXF1YWxzQXNVVEY4U3RyaW5nKGpzQ0ZFbXB0eVN0cmluZ1dpdGhDaGFy
YWN0ZXJzLCAiIik7CisKKyAgICBDRlN0cmluZ1JlZiBjZkpTU3RyaW5nID0gSlNTdHJpbmdDb3B5
Q0ZTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwganNDRklTdHJpbmcpOworICAgIENGU3RyaW5n
UmVmIGNmSlNFbXB0eVN0cmluZyA9IEpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIGpzQ0ZFbXB0eUlTdHJpbmcpOworICAgIEFTU0VSVChDRkVxdWFsKGNmSlNTdHJpbmcs
IGNmU3RyaW5nKSk7CisgICAgQVNTRVJUKENGRXF1YWwoY2ZKU0VtcHR5U3RyaW5nLCBjZkVtcHR5
U3RyaW5nKSk7CisgICAgQ0ZSZWxlYXNlKGNmSlNTdHJpbmcpOworICAgIENGUmVsZWFzZShjZkpT
RW1wdHlTdHJpbmcpOworCisgICAgSlNPYmplY3RSZWYgbyA9IEpTT2JqZWN0TWFrZShjb250ZXh0
LCBOVUxMLCBOVUxMKTsKKyAgICBKU09iamVjdFNldFByb3BlcnR5KGNvbnRleHQsIG8sIGpzT25l
SVN0cmluZywgSlNWYWx1ZU1ha2VOdW1iZXIoY29udGV4dCwgMSksIGtKU1Byb3BlcnR5QXR0cmli
dXRlTm9uZSwgTlVMTCk7CisgICAgSlNPYmplY3RTZXRQcm9wZXJ0eShjb250ZXh0LCBvLCBqc0NG
SVN0cmluZywgIEpTVmFsdWVNYWtlTnVtYmVyKGNvbnRleHQsIDEpLCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZURvbnRFbnVtLCBOVUxMKTsKKyAgICBKU1Byb3BlcnR5TmFtZUFycmF5UmVmIG5hbWVBcnJh
eSA9IEpTT2JqZWN0Q29weVByb3BlcnR5TmFtZXMoY29udGV4dCwgbyk7CisgICAgc2l6ZV90IGV4
cGVjdGVkQ291bnQgPSBKU1Byb3BlcnR5TmFtZUFycmF5R2V0Q291bnQobmFtZUFycmF5KTsKKyAg
ICBzaXplX3QgY291bnQ7CisgICAgZm9yIChjb3VudCA9IDA7IGNvdW50IDwgZXhwZWN0ZWRDb3Vu
dDsgKytjb3VudCkKKyAgICAgICAgSlNQcm9wZXJ0eU5hbWVBcnJheUdldE5hbWVBdEluZGV4KG5h
bWVBcnJheSwgY291bnQpOworICAgIEpTUHJvcGVydHlOYW1lQXJyYXlSZWxlYXNlKG5hbWVBcnJh
eSk7CisgICAgQVNTRVJUKGNvdW50ID09IDEpOyAvLyBqc0NGU3RyaW5nIHNob3VsZCBub3QgYmUg
ZW51bWVyYXRlZAorCisgICAgSlNTdHJpbmdSZWxlYXNlKGpzQ0ZJU3RyaW5nKTsKKyAgICBKU1N0
cmluZ1JlbGVhc2UoanNDRkVtcHR5SVN0cmluZyk7CisgICAgSlNTdHJpbmdSZWxlYXNlKGpzQ0ZJ
U3RyaW5nV2l0aENoYXJhY3RlcnMpOworICAgIEpTU3RyaW5nUmVsZWFzZShqc0NGRW1wdHlJU3Ry
aW5nV2l0aENoYXJhY3RlcnMpOworICAgIENGUmVsZWFzZShjZlN0cmluZyk7CisgICAgQ0ZSZWxl
YXNlKGNmRW1wdHlTdHJpbmcpOworCisgICAgSlNHbG9iYWxDb250ZXh0UmVsZWFzZShjb250ZXh0
KTsKK30KKyNlbmRpZgorCiBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQogewogI2lm
IE9TKFdJTkRPV1MpCkBAIC0xMjQwLDYgKzEzNjUsMTAgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNo
YXIqIGFyZ3ZbXSkKIAogICAgIHRlc3RNYXJraW5nQ29uc3RyYWludHNBbmRIZWFwRmluYWxpemVy
cygpOwogCisjaWYgVVNFKENGKQorICAgIHRlc3RDRlN0cmluZ3MoKTsKKyNlbmRpZgorCiAgICAg
SlNDbGFzc0RlZmluaXRpb24gZ2xvYmFsT2JqZWN0Q2xhc3NEZWZpbml0aW9uID0ga0pTQ2xhc3NE
ZWZpbml0aW9uRW1wdHk7CiAgICAgZ2xvYmFsT2JqZWN0Q2xhc3NEZWZpbml0aW9uLmluaXRpYWxp
emUgPSBnbG9iYWxPYmplY3RfaW5pdGlhbGl6ZTsKICAgICBnbG9iYWxPYmplY3RDbGFzc0RlZmlu
aXRpb24uc3RhdGljVmFsdWVzID0gZ2xvYmFsT2JqZWN0X3N0YXRpY1ZhbHVlczsKQEAgLTEyODUs
MzQgKzE0MTQsNiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQogICAgIEpTU3Ry
aW5nUmVmIGpzT25lSVN0cmluZyA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCIxIik7
CiAgICAgSlNWYWx1ZVJlZiBqc09uZVN0cmluZyA9IEpTVmFsdWVNYWtlU3RyaW5nKGNvbnRleHQs
IGpzT25lSVN0cmluZyk7CiAKLSAgICBVbmlDaGFyIHNpbmdsZVVuaUNoYXIgPSA2NTsgLy8gQ2Fw
aXRhbCBBCi0gICAgQ0ZNdXRhYmxlU3RyaW5nUmVmIGNmU3RyaW5nID0gCi0gICAgICAgIENGU3Ry
aW5nQ3JlYXRlTXV0YWJsZVdpdGhFeHRlcm5hbENoYXJhY3RlcnNOb0NvcHkoa0NGQWxsb2NhdG9y
RGVmYXVsdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAmc2luZ2xlVW5pQ2hhciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga0NGQWxsb2NhdG9yTnVsbCk7
Ci0KLSAgICBKU1N0cmluZ1JlZiBqc0NGSVN0cmluZyA9IEpTU3RyaW5nQ3JlYXRlV2l0aENGU3Ry
aW5nKGNmU3RyaW5nKTsKLSAgICBKU1ZhbHVlUmVmIGpzQ0ZTdHJpbmcgPSBKU1ZhbHVlTWFrZVN0
cmluZyhjb250ZXh0LCBqc0NGSVN0cmluZyk7Ci0gICAgCi0gICAgQ0ZTdHJpbmdSZWYgY2ZFbXB0
eVN0cmluZyA9IENGU3RyaW5nQ3JlYXRlV2l0aENTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwg
IiIsIGtDRlN0cmluZ0VuY29kaW5nVVRGOCk7Ci0gICAgCi0gICAgSlNTdHJpbmdSZWYganNDRkVt
cHR5SVN0cmluZyA9IEpTU3RyaW5nQ3JlYXRlV2l0aENGU3RyaW5nKGNmRW1wdHlTdHJpbmcpOwot
ICAgIEpTVmFsdWVSZWYganNDRkVtcHR5U3RyaW5nID0gSlNWYWx1ZU1ha2VTdHJpbmcoY29udGV4
dCwganNDRkVtcHR5SVN0cmluZyk7Ci0KLSAgICBDRkluZGV4IGNmU3RyaW5nTGVuZ3RoID0gQ0ZT
dHJpbmdHZXRMZW5ndGgoY2ZTdHJpbmcpOwotICAgIFVuaUNoYXIqIGJ1ZmZlciA9IChVbmlDaGFy
KiltYWxsb2MoY2ZTdHJpbmdMZW5ndGggKiBzaXplb2YoVW5pQ2hhcikpOwotICAgIENGU3RyaW5n
R2V0Q2hhcmFjdGVycyhjZlN0cmluZywgCi0gICAgICAgICAgICAgICAgICAgICAgICAgIENGUmFu
Z2VNYWtlKDAsIGNmU3RyaW5nTGVuZ3RoKSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGJ1
ZmZlcik7Ci0gICAgSlNTdHJpbmdSZWYganNDRklTdHJpbmdXaXRoQ2hhcmFjdGVycyA9IEpTU3Ry
aW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoKEpTQ2hhciopYnVmZmVyLCBjZlN0cmluZ0xlbmd0aCk7
Ci0gICAgSlNWYWx1ZVJlZiBqc0NGU3RyaW5nV2l0aENoYXJhY3RlcnMgPSBKU1ZhbHVlTWFrZVN0
cmluZyhjb250ZXh0LCBqc0NGSVN0cmluZ1dpdGhDaGFyYWN0ZXJzKTsKLSAgICAKLSAgICBKU1N0
cmluZ1JlZiBqc0NGRW1wdHlJU3RyaW5nV2l0aENoYXJhY3RlcnMgPSBKU1N0cmluZ0NyZWF0ZVdp
dGhDaGFyYWN0ZXJzKChKU0NoYXIqKWJ1ZmZlciwgQ0ZTdHJpbmdHZXRMZW5ndGgoY2ZFbXB0eVN0
cmluZykpOwotICAgIGZyZWUoYnVmZmVyKTsKLSAgICBKU1ZhbHVlUmVmIGpzQ0ZFbXB0eVN0cmlu
Z1dpdGhDaGFyYWN0ZXJzID0gSlNWYWx1ZU1ha2VTdHJpbmcoY29udGV4dCwganNDRkVtcHR5SVN0
cmluZ1dpdGhDaGFyYWN0ZXJzKTsKLQogICAgIEpTQ2hhciBjb25zdGFudFN0cmluZ1tdID0geyAn
SCcsICdlJywgJ2wnLCAnbCcsICdvJywgfTsKICAgICBKU1N0cmluZ1JlZiBjb25zdGFudFN0cmlu
Z1JlZiA9IEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnNOb0NvcHkoY29uc3RhbnRTdHJpbmcs
IHNpemVvZihjb25zdGFudFN0cmluZykgLyBzaXplb2YoY29uc3RhbnRTdHJpbmdbMF0pKTsKICAg
ICBBU1NFUlQoSlNTdHJpbmdHZXRDaGFyYWN0ZXJzUHRyKGNvbnN0YW50U3RyaW5nUmVmKSA9PSBj
b25zdGFudFN0cmluZyk7CkBAIC0xMzI4LDEwICsxNDI5LDYgQEAgaW50IG1haW4oaW50IGFyZ2Ms
IGNoYXIqIGFyZ3ZbXSkKICAgICBBU1NFUlQoSlNWYWx1ZUdldFR5cGUoY29udGV4dCwganNPbmVU
aGlyZCkgPT0ga0pTVHlwZU51bWJlcik7CiAgICAgQVNTRVJUKEpTVmFsdWVHZXRUeXBlKGNvbnRl
eHQsIGpzRW1wdHlTdHJpbmcpID09IGtKU1R5cGVTdHJpbmcpOwogICAgIEFTU0VSVChKU1ZhbHVl
R2V0VHlwZShjb250ZXh0LCBqc09uZVN0cmluZykgPT0ga0pTVHlwZVN0cmluZyk7Ci0gICAgQVNT
RVJUKEpTVmFsdWVHZXRUeXBlKGNvbnRleHQsIGpzQ0ZTdHJpbmcpID09IGtKU1R5cGVTdHJpbmcp
OwotICAgIEFTU0VSVChKU1ZhbHVlR2V0VHlwZShjb250ZXh0LCBqc0NGU3RyaW5nV2l0aENoYXJh
Y3RlcnMpID09IGtKU1R5cGVTdHJpbmcpOwotICAgIEFTU0VSVChKU1ZhbHVlR2V0VHlwZShjb250
ZXh0LCBqc0NGRW1wdHlTdHJpbmcpID09IGtKU1R5cGVTdHJpbmcpOwotICAgIEFTU0VSVChKU1Zh
bHVlR2V0VHlwZShjb250ZXh0LCBqc0NGRW1wdHlTdHJpbmdXaXRoQ2hhcmFjdGVycykgPT0ga0pT
VHlwZVN0cmluZyk7CiAKICAgICBBU1NFUlQoIUpTVmFsdWVJc0Jvb2xlYW4oY29udGV4dCwgTlVM
TCkpOwogICAgIEFTU0VSVCghSlNWYWx1ZUlzT2JqZWN0KGNvbnRleHQsIE5VTEwpKTsKQEAgLTEz
NTQsMTQgKzE0NTEsNiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQogICAgIH0g
ZWxzZQogICAgICAgICBwcmludGYoIlBBU1M6IHJldHVybmVkIG51bGwgd2hlbiBhY2Nlc3Npbmcg
Y2hhcmFjdGVyIHBvaW50ZXIgb2YgYSBudWxsIFN0cmluZy5cbiIpOwogCi0gICAgSlNTdHJpbmdS
ZWYgZW1wdHlTdHJpbmcgPSBKU1N0cmluZ0NyZWF0ZVdpdGhDRlN0cmluZyhDRlNUUigiIikpOwot
ICAgIGNoYXJhY3RlcnMgPSBKU1N0cmluZ0dldENoYXJhY3RlcnNQdHIoZW1wdHlTdHJpbmcpOwot
ICAgIGlmICghY2hhcmFjdGVycykgewotICAgICAgICBwcmludGYoIkZBSUw6IFJldHVybmVkIG51
bGwgd2hlbiBhY2Nlc3NpbmcgY2hhcmFjdGVyIHBvaW50ZXIgb2YgYW4gZW1wdHkgU3RyaW5nLlxu
Iik7Ci0gICAgICAgIGZhaWxlZCA9IDE7Ci0gICAgfSBlbHNlCi0gICAgICAgIHByaW50ZigiUEFT
UzogcmV0dXJuZWQgZW1wdHkgd2hlbiBhY2Nlc3NpbmcgY2hhcmFjdGVyIHBvaW50ZXIgb2YgYW4g
ZW1wdHkgU3RyaW5nLlxuIik7Ci0KICAgICBzaXplX3QgbGVuZ3RoID0gSlNTdHJpbmdHZXRMZW5n
dGgobnVsbFN0cmluZyk7CiAgICAgaWYgKGxlbmd0aCkgewogICAgICAgICBwcmludGYoIkZBSUw6
IERpZG4ndCByZXR1cm4gMCBsZW5ndGggZm9yIG51bGwgU3RyaW5nLlxuIik7CkBAIC0xMzcwLDE0
ICsxNDU5LDYgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKICAgICAgICAgcHJp
bnRmKCJQQVNTOiByZXR1cm5lZCAwIGxlbmd0aCBmb3IgbnVsbCBTdHJpbmcuXG4iKTsKICAgICBK
U1N0cmluZ1JlbGVhc2UobnVsbFN0cmluZyk7CiAKLSAgICBsZW5ndGggPSBKU1N0cmluZ0dldExl
bmd0aChlbXB0eVN0cmluZyk7Ci0gICAgaWYgKGxlbmd0aCkgewotICAgICAgICBwcmludGYoIkZB
SUw6IERpZG4ndCByZXR1cm4gMCBsZW5ndGggZm9yIGVtcHR5IFN0cmluZy5cbiIpOwotICAgICAg
ICBmYWlsZWQgPSAxOwotICAgIH0gZWxzZQotICAgICAgICBwcmludGYoIlBBU1M6IHJldHVybmVk
IDAgbGVuZ3RoIGZvciBlbXB0eSBTdHJpbmcuXG4iKTsKLSAgICBKU1N0cmluZ1JlbGVhc2UoZW1w
dHlTdHJpbmcpOwotCiAgICAgSlNPYmplY3RSZWYgcHJvcGVydHlDYXRjaGFsbHMgPSBKU09iamVj
dE1ha2UoY29udGV4dCwgUHJvcGVydHlDYXRjaGFsbHNfY2xhc3MoY29udGV4dCksIE5VTEwpOwog
ICAgIEpTU3RyaW5nUmVmIHByb3BlcnR5Q2F0Y2hhbGxzU3RyaW5nID0gSlNTdHJpbmdDcmVhdGVX
aXRoVVRGOENTdHJpbmcoIlByb3BlcnR5Q2F0Y2hhbGxzIik7CiAgICAgSlNPYmplY3RTZXRQcm9w
ZXJ0eShjb250ZXh0LCBnbG9iYWxPYmplY3QsIHByb3BlcnR5Q2F0Y2hhbGxzU3RyaW5nLCBwcm9w
ZXJ0eUNhdGNoYWxscywga0pTUHJvcGVydHlBdHRyaWJ1dGVOb25lLCBOVUxMKTsKQEAgLTE1NTcs
MTAgKzE2MzgsNiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQogICAgIGFzc2Vy
dEVxdWFsc0FzQm9vbGVhbihqc09uZVRoaXJkLCB0cnVlKTsKICAgICBhc3NlcnRFcXVhbHNBc0Jv
b2xlYW4oanNFbXB0eVN0cmluZywgZmFsc2UpOwogICAgIGFzc2VydEVxdWFsc0FzQm9vbGVhbihq
c09uZVN0cmluZywgdHJ1ZSk7Ci0gICAgYXNzZXJ0RXF1YWxzQXNCb29sZWFuKGpzQ0ZTdHJpbmcs
IHRydWUpOwotICAgIGFzc2VydEVxdWFsc0FzQm9vbGVhbihqc0NGU3RyaW5nV2l0aENoYXJhY3Rl
cnMsIHRydWUpOwotICAgIGFzc2VydEVxdWFsc0FzQm9vbGVhbihqc0NGRW1wdHlTdHJpbmcsIGZh
bHNlKTsKLSAgICBhc3NlcnRFcXVhbHNBc0Jvb2xlYW4oanNDRkVtcHR5U3RyaW5nV2l0aENoYXJh
Y3RlcnMsIGZhbHNlKTsKICAgICAKICAgICBhc3NlcnRFcXVhbHNBc051bWJlcihqc1VuZGVmaW5l
ZCwgbmFuKCIiKSk7CiAgICAgYXNzZXJ0RXF1YWxzQXNOdW1iZXIoanNOdWxsLCAwKTsKQEAgLTE1
NzEsMTEgKzE2NDgsNiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQogICAgIGFz
c2VydEVxdWFsc0FzTnVtYmVyKGpzT25lVGhpcmQsIDEuMCAvIDMuMCk7CiAgICAgYXNzZXJ0RXF1
YWxzQXNOdW1iZXIoanNFbXB0eVN0cmluZywgMCk7CiAgICAgYXNzZXJ0RXF1YWxzQXNOdW1iZXIo
anNPbmVTdHJpbmcsIDEpOwotICAgIGFzc2VydEVxdWFsc0FzTnVtYmVyKGpzQ0ZTdHJpbmcsIG5h
bigiIikpOwotICAgIGFzc2VydEVxdWFsc0FzTnVtYmVyKGpzQ0ZTdHJpbmdXaXRoQ2hhcmFjdGVy
cywgbmFuKCIiKSk7Ci0gICAgYXNzZXJ0RXF1YWxzQXNOdW1iZXIoanNDRkVtcHR5U3RyaW5nLCAw
KTsKLSAgICBhc3NlcnRFcXVhbHNBc051bWJlcihqc0NGRW1wdHlTdHJpbmdXaXRoQ2hhcmFjdGVy
cywgMCk7Ci0gICAgQVNTRVJUKHNpemVvZihKU0NoYXIpID09IHNpemVvZihVbmlDaGFyKSk7CiAg
ICAgCiAgICAgYXNzZXJ0RXF1YWxzQXNDaGFyYWN0ZXJzUHRyKGpzVW5kZWZpbmVkLCAidW5kZWZp
bmVkIik7CiAgICAgYXNzZXJ0RXF1YWxzQXNDaGFyYWN0ZXJzUHRyKGpzTnVsbCwgIm51bGwiKTsK
QEAgLTE1ODYsMTAgKzE2NTgsNiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQog
ICAgIGFzc2VydEVxdWFsc0FzQ2hhcmFjdGVyc1B0cihqc09uZVRoaXJkLCAiMC4zMzMzMzMzMzMz
MzMzMzMzIik7CiAgICAgYXNzZXJ0RXF1YWxzQXNDaGFyYWN0ZXJzUHRyKGpzRW1wdHlTdHJpbmcs
ICIiKTsKICAgICBhc3NlcnRFcXVhbHNBc0NoYXJhY3RlcnNQdHIoanNPbmVTdHJpbmcsICIxIik7
Ci0gICAgYXNzZXJ0RXF1YWxzQXNDaGFyYWN0ZXJzUHRyKGpzQ0ZTdHJpbmcsICJBIik7Ci0gICAg
YXNzZXJ0RXF1YWxzQXNDaGFyYWN0ZXJzUHRyKGpzQ0ZTdHJpbmdXaXRoQ2hhcmFjdGVycywgIkEi
KTsKLSAgICBhc3NlcnRFcXVhbHNBc0NoYXJhY3RlcnNQdHIoanNDRkVtcHR5U3RyaW5nLCAiIik7
Ci0gICAgYXNzZXJ0RXF1YWxzQXNDaGFyYWN0ZXJzUHRyKGpzQ0ZFbXB0eVN0cmluZ1dpdGhDaGFy
YWN0ZXJzLCAiIik7CiAgICAgCiAgICAgYXNzZXJ0RXF1YWxzQXNVVEY4U3RyaW5nKGpzVW5kZWZp
bmVkLCAidW5kZWZpbmVkIik7CiAgICAgYXNzZXJ0RXF1YWxzQXNVVEY4U3RyaW5nKGpzTnVsbCwg
Im51bGwiKTsKQEAgLTE2MDAsMTAgKzE2NjgsNiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciog
YXJndltdKQogICAgIGFzc2VydEVxdWFsc0FzVVRGOFN0cmluZyhqc09uZVRoaXJkLCAiMC4zMzMz
MzMzMzMzMzMzMzMzIik7CiAgICAgYXNzZXJ0RXF1YWxzQXNVVEY4U3RyaW5nKGpzRW1wdHlTdHJp
bmcsICIiKTsKICAgICBhc3NlcnRFcXVhbHNBc1VURjhTdHJpbmcoanNPbmVTdHJpbmcsICIxIik7
Ci0gICAgYXNzZXJ0RXF1YWxzQXNVVEY4U3RyaW5nKGpzQ0ZTdHJpbmcsICJBIik7Ci0gICAgYXNz
ZXJ0RXF1YWxzQXNVVEY4U3RyaW5nKGpzQ0ZTdHJpbmdXaXRoQ2hhcmFjdGVycywgIkEiKTsKLSAg
ICBhc3NlcnRFcXVhbHNBc1VURjhTdHJpbmcoanNDRkVtcHR5U3RyaW5nLCAiIik7Ci0gICAgYXNz
ZXJ0RXF1YWxzQXNVVEY4U3RyaW5nKGpzQ0ZFbXB0eVN0cmluZ1dpdGhDaGFyYWN0ZXJzLCAiIik7
CiAgICAgCiAgICAgY2hlY2tDb25zdG5lc3NJbkpTT2JqZWN0TmFtZXMoKTsKICAgICAKQEAgLTE2
MTMsMTYgKzE2NzcsNiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQogICAgIEFT
U0VSVChKU1ZhbHVlSXNFcXVhbChjb250ZXh0LCBqc09uZSwganNPbmVTdHJpbmcsIE5VTEwpKTsK
ICAgICBBU1NFUlQoIUpTVmFsdWVJc0VxdWFsKGNvbnRleHQsIGpzVHJ1ZSwganNGYWxzZSwgTlVM
TCkpOwogICAgIAotICAgIENGU3RyaW5nUmVmIGNmSlNTdHJpbmcgPSBKU1N0cmluZ0NvcHlDRlN0
cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBqc0NGSVN0cmluZyk7Ci0gICAgQ0ZTdHJpbmdSZWYg
Y2ZKU0VtcHR5U3RyaW5nID0gSlNTdHJpbmdDb3B5Q0ZTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVs
dCwganNDRkVtcHR5SVN0cmluZyk7Ci0gICAgQVNTRVJUKENGRXF1YWwoY2ZKU1N0cmluZywgY2ZT
dHJpbmcpKTsKLSAgICBBU1NFUlQoQ0ZFcXVhbChjZkpTRW1wdHlTdHJpbmcsIGNmRW1wdHlTdHJp
bmcpKTsKLSAgICBDRlJlbGVhc2UoY2ZKU1N0cmluZyk7Ci0gICAgQ0ZSZWxlYXNlKGNmSlNFbXB0
eVN0cmluZyk7Ci0KLSAgICBDRlJlbGVhc2UoY2ZTdHJpbmcpOwotICAgIENGUmVsZWFzZShjZkVt
cHR5U3RyaW5nKTsKLSAgICAKICAgICBqc0dsb2JhbFZhbHVlID0gSlNPYmplY3RNYWtlKGNvbnRl
eHQsIE5VTEwsIE5VTEwpOwogICAgIG1ha2VHbG9iYWxOdW1iZXJWYWx1ZShjb250ZXh0KTsKICAg
ICBKU1ZhbHVlUHJvdGVjdChjb250ZXh0LCBqc0dsb2JhbFZhbHVlKTsKQEAgLTE3NzYsMTcgKzE4
MzAsNiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQogICAgIEpTT2JqZWN0U2V0
UHJvcGVydHkoY29udGV4dCwgZ2xvYmFsT2JqZWN0LCBzdHJpbmcsIGRlcml2ZWQyQ29uc3RydWN0
b3IsIGtKU1Byb3BlcnR5QXR0cmlidXRlTm9uZSwgTlVMTCk7CiAgICAgSlNTdHJpbmdSZWxlYXNl
KHN0cmluZyk7CiAKLSAgICBvID0gSlNPYmplY3RNYWtlKGNvbnRleHQsIE5VTEwsIE5VTEwpOwot
ICAgIEpTT2JqZWN0U2V0UHJvcGVydHkoY29udGV4dCwgbywganNPbmVJU3RyaW5nLCBKU1ZhbHVl
TWFrZU51bWJlcihjb250ZXh0LCAxKSwga0pTUHJvcGVydHlBdHRyaWJ1dGVOb25lLCBOVUxMKTsK
LSAgICBKU09iamVjdFNldFByb3BlcnR5KGNvbnRleHQsIG8sIGpzQ0ZJU3RyaW5nLCAgSlNWYWx1
ZU1ha2VOdW1iZXIoY29udGV4dCwgMSksIGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udEVudW0sIE5V
TEwpOwotICAgIEpTUHJvcGVydHlOYW1lQXJyYXlSZWYgbmFtZUFycmF5ID0gSlNPYmplY3RDb3B5
UHJvcGVydHlOYW1lcyhjb250ZXh0LCBvKTsKLSAgICBzaXplX3QgZXhwZWN0ZWRDb3VudCA9IEpT
UHJvcGVydHlOYW1lQXJyYXlHZXRDb3VudChuYW1lQXJyYXkpOwotICAgIHNpemVfdCBjb3VudDsK
LSAgICBmb3IgKGNvdW50ID0gMDsgY291bnQgPCBleHBlY3RlZENvdW50OyArK2NvdW50KQotICAg
ICAgICBKU1Byb3BlcnR5TmFtZUFycmF5R2V0TmFtZUF0SW5kZXgobmFtZUFycmF5LCBjb3VudCk7
Ci0gICAgSlNQcm9wZXJ0eU5hbWVBcnJheVJlbGVhc2UobmFtZUFycmF5KTsKLSAgICBBU1NFUlQo
Y291bnQgPT0gMSk7IC8vIGpzQ0ZTdHJpbmcgc2hvdWxkIG5vdCBiZSBlbnVtZXJhdGVkCi0KICAg
ICBKU1ZhbHVlUmVmIGFyZ3VtZW50c0FycmF5VmFsdWVzW10gPSB7IEpTVmFsdWVNYWtlTnVtYmVy
KGNvbnRleHQsIDEwKSwgSlNWYWx1ZU1ha2VOdW1iZXIoY29udGV4dCwgMjApIH07CiAgICAgbyA9
IEpTT2JqZWN0TWFrZUFycmF5KGNvbnRleHQsIHNpemVvZihhcmd1bWVudHNBcnJheVZhbHVlcykg
LyBzaXplb2YoSlNWYWx1ZVJlZiksIGFyZ3VtZW50c0FycmF5VmFsdWVzLCBOVUxMKTsKICAgICBz
dHJpbmcgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygibGVuZ3RoIik7CkBAIC0xOTEw
LDkgKzE5NTMsMTEgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKICAgICAgICAg
QVNTRVJUKCghc2NyaXB0T2JqZWN0KSAhPSAoIWVycm9yTWVzc2FnZSkpOwogICAgICAgICBpZiAo
IXNjcmlwdE9iamVjdCkgewogICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiBUZXN0IHNjcmlwdCBk
aWQgbm90IHBhcnNlXG5cdCVzOiVkXG5cdCIsIHNjcmlwdFBhdGgsIGVycm9yTGluZSk7CisjaWYg
VVNFKENGKQogICAgICAgICAgICAgQ0ZTdHJpbmdSZWYgZXJyb3JDRiA9IEpTU3RyaW5nQ29weUNG
U3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIGVycm9yTWVzc2FnZSk7CiAgICAgICAgICAgICBD
RlNob3coZXJyb3JDRik7CiAgICAgICAgICAgICBDRlJlbGVhc2UoZXJyb3JDRik7CisjZW5kaWYK
ICAgICAgICAgICAgIEpTU3RyaW5nUmVsZWFzZShlcnJvck1lc3NhZ2UpOwogICAgICAgICAgICAg
ZmFpbGVkID0gMTsKICAgICAgICAgfQpAQCAtMTkyNSw5ICsxOTcwLDExIEBAIGludCBtYWluKGlu
dCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgcHJpbnRm
KCJGQUlMOiBUZXN0IHNjcmlwdCByZXR1cm5lZCB1bmV4cGVjdGVkIHZhbHVlOlxuIik7CiAgICAg
ICAgICAgICBKU1N0cmluZ1JlZiBleGNlcHRpb25JU3RyaW5nID0gSlNWYWx1ZVRvU3RyaW5nQ29w
eShjb250ZXh0LCBleGNlcHRpb24sIE5VTEwpOworI2lmIFVTRShDRikKICAgICAgICAgICAgIENG
U3RyaW5nUmVmIGV4Y2VwdGlvbkNGID0gSlNTdHJpbmdDb3B5Q0ZTdHJpbmcoa0NGQWxsb2NhdG9y
RGVmYXVsdCwgZXhjZXB0aW9uSVN0cmluZyk7CiAgICAgICAgICAgICBDRlNob3coZXhjZXB0aW9u
Q0YpOwogICAgICAgICAgICAgQ0ZSZWxlYXNlKGV4Y2VwdGlvbkNGKTsKKyNlbmRpZgogICAgICAg
ICAgICAgSlNTdHJpbmdSZWxlYXNlKGV4Y2VwdGlvbklTdHJpbmcpOwogICAgICAgICAgICAgZmFp
bGVkID0gMTsKICAgICAgICAgfQpAQCAtMTk5NiwxMCArMjA0Myw2IEBAIGludCBtYWluKGludCBh
cmdjLCBjaGFyKiBhcmd2W10pCiAKICAgICBKU1N0cmluZ1JlbGVhc2UoanNFbXB0eUlTdHJpbmcp
OwogICAgIEpTU3RyaW5nUmVsZWFzZShqc09uZUlTdHJpbmcpOwotICAgIEpTU3RyaW5nUmVsZWFz
ZShqc0NGSVN0cmluZyk7Ci0gICAgSlNTdHJpbmdSZWxlYXNlKGpzQ0ZFbXB0eUlTdHJpbmcpOwot
ICAgIEpTU3RyaW5nUmVsZWFzZShqc0NGSVN0cmluZ1dpdGhDaGFyYWN0ZXJzKTsKLSAgICBKU1N0
cmluZ1JlbGVhc2UoanNDRkVtcHR5SVN0cmluZ1dpdGhDaGFyYWN0ZXJzKTsKICAgICBKU1N0cmlu
Z1JlbGVhc2UoZ29vZFN5bnRheCk7CiAgICAgSlNTdHJpbmdSZWxlYXNlKGJhZFN5bnRheCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9zaGVsbC9DTWFrZUxpc3RzLnR4dCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9zaGVsbC9DTWFrZUxpc3RzLnR4dAppbmRleCA0OTE1MmJj
M2Q0NWM3MDJiNDk5MmQ0MzVkY2E5ZDRlZWI3ZDVjMzc2Li5iZDcwNTg1Y2U3NGYzZDc0NmRlYTZl
NWMxODgzYTY1NjhkYzFkMTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvc2hl
bGwvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3NoZWxsL0NNYWtl
TGlzdHMudHh0CkBAIC01NSw0ICs1NSwzMCBAQCBpZiAoTk9UIFdJTjMyKQogICAgIGFkZF9leGVj
dXRhYmxlKHRlc3RhaXIgJHtURVNUQUlSX1NPVVJDRVN9KQogICAgIHRhcmdldF9saW5rX2xpYnJh
cmllcyh0ZXN0YWlyICR7SlNDX0xJQlJBUklFU30pCiAKKyAgICBzZXQoVEVTVEFQSV9TT1VSQ0VT
CisgICAgICAgIC4uL0FQSS90ZXN0cy9Db21wYXJlQW5kU3dhcFRlc3QuY3BwCisgICAgICAgIC4u
L0FQSS90ZXN0cy9DdXN0b21HbG9iYWxPYmplY3RDbGFzc1Rlc3QuYworICAgICAgICAuLi9BUEkv
dGVzdHMvRXhlY3V0aW9uVGltZUxpbWl0VGVzdC5jcHAKKyAgICAgICAgLi4vQVBJL3Rlc3RzL0Z1
bmN0aW9uT3ZlcnJpZGVzVGVzdC5jcHAKKyAgICAgICAgLi4vQVBJL3Rlc3RzL0dsb2JhbENvbnRl
eHRXaXRoRmluYWxpemVyVGVzdC5jcHAKKyAgICAgICAgLi4vQVBJL3Rlc3RzL0pTT05QYXJzZVRl
c3QuY3BwCisgICAgICAgIC4uL0FQSS90ZXN0cy9KU09iamVjdEdldFByb3h5VGFyZ2V0VGVzdC5j
cHAKKyAgICAgICAgLi4vQVBJL3Rlc3RzL011bHRpdGhyZWFkZWRNdWx0aVZNRXhlY3V0aW9uVGVz
dC5jcHAKKyAgICAgICAgLi4vQVBJL3Rlc3RzL1BpbmdQb25nU3RhY2tPdmVyZmxvd1Rlc3QuY3Bw
CisgICAgICAgIC4uL0FQSS90ZXN0cy9UeXBlZEFycmF5Q1Rlc3QuY3BwCisgICAgICAgIC4uL0FQ
SS90ZXN0cy90ZXN0YXBpLmMKKyAgICApCisgICAgYWRkX2V4ZWN1dGFibGUodGVzdGFwaSAke1RF
U1RBUElfU09VUkNFU30pCisgICAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKHRlc3RhcGkgJHtKU0Nf
TElCUkFSSUVTfSkKKworICAgIGZpbGUoQ09QWQorICAgICAgICAiJHtKQVZBU0NSSVBUQ09SRV9E
SVJ9L0FQSS90ZXN0cy90ZXN0YXBpLmpzIgorICAgICAgICBERVNUSU5BVElPTgorICAgICAgICAk
e0NNQUtFX1JVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWX0KKyAgICApCisgICAgZmlsZShDT1BZCisg
ICAgICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vQVBJL3Rlc3RzL3Rlc3RhcGktZnVuY3Rpb24t
b3ZlcnJpZGVzLmpzIgorICAgICAgICBERVNUSU5BVElPTgorICAgICAgICAke0NNQUtFX1JVTlRJ
TUVfT1VUUFVUX0RJUkVDVE9SWX0KKyAgICApCiBlbmRpZiAoKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
Q2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGEzYjhjNDdhY2YzYmY4NTNhN2U5MmFl
MDA5OGU3Yjg3MWI4YzY2ODkuLjkzOTA0NjRhNDJkNTBkMzk5ZWI0YWNjOTA4Yjk4OTIyZDQ2Zjcy
N2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNCBAQAorMjAxNy0wNS0xNSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdt
YWlsLmNvbT4KKworICAgICAgICBbSlNDXSBCdWlsZCB0ZXN0YXBpIGluIG5vbiBBcHBsZSBwb3J0
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcyMTAz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm93IHRl
c3RhcGkgaXMgZHJpdmVkIGluIEpTQ09ubHksIEdUSyBhbmQgV1BFIHBvcnRzIHRvby4KKworICAg
ICAgICAqIFNjcmlwdHMvcnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzOgorCiAyMDE3LTA1LTE0ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRHJvcCBQYXNzUmVmUHRy
IGNsYXNzIGZyb20gV1RGCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0
Y29yZS10ZXN0cyBiL1Rvb2xzL1NjcmlwdHMvcnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzCmluZGV4
IDE2Mzg4MGY2ZmUxYTNhMzVmZDFkMGI4OGQxOGZkNmQ2YTZiMDQzZGIuLjgzODBlMzc5NDI0YTdh
ZjRkZWI0MmViMWI0Y2UwNjdkNjkwYzMwNzEgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvcnVu
LWphdmFzY3JpcHRjb3JlLXRlc3RzCisrKyBiL1Rvb2xzL1NjcmlwdHMvcnVuLWphdmFzY3JpcHRj
b3JlLXRlc3RzCkBAIC01Niw3ICs1Niw3IEBAIG15ICRtZW1vcnlMaW1pdGVkOwogCiBteSAkYnVp
bGRKU0MgPSAxOwogCi1teSAkcnVuVGVzdEFQSSA9IGlzQXBwbGVDb2NvYVdlYktpdCgpIHx8IGlz
QXBwbGVXaW5XZWJLaXQoKSB8fCBpc1dpbkNhaXJvKCk7CitteSAkcnVuVGVzdEFQSSA9IGlzQXBw
bGVDb2NvYVdlYktpdCgpIHx8IGlzQXBwbGVXaW5XZWJLaXQoKSB8fCBpc1dpbkNhaXJvKCkgfHwg
aXNKU0NPbmx5KCkgfHwgaXNHVEsoKSB8fCBpc1dQRSgpOwogCiBteSAkcnVuSlNDU3RyZXNzID0g
MTsKIG15ICRydW5KSVRTdHJlc3NUZXN0cyA9IDE7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310120</attachid>
            <date>2017-05-15 01:55:55 -0700</date>
            <delta_ts>2017-05-15 01:58:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172103-20170515175554.patch</filename>
            <type>text/plain</type>
            <size>27900</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2ODUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NTU4MDYwYTc5YjBiNjlkZDExNGVkMTQxNmE3YWJlODNkNGUzNTE2Li41NjgyZDJjNTI2MjAxMjUw
OWU0ZmJhODZmMDc4ZDdlMjMyZWY2ODVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNiBAQAorMjAxNy0wNS0xNSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbSlNDXSBCdWlsZCB0ZXN0YXBpIGluIG5vbiBBcHBsZSBwb3J0cwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcyMTAzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRj
aCBtYWtlcyBKU0MgdGVzdGFwaSBidWlsZGFibGUgaW4gbm9uLUFwcGxlIHBvcnRzLgorICAgICAg
ICBXZSBpc29sYXRlIENGIHJlbGF0ZWQgdGVzdHMgaW4gdGVzdGFwaS5jLiBJZiB3ZSBkbyBub3Qg
dXNlCisgICAgICAgIENGLCB3ZSBpbmNsdWRlIEphdmFTY3JpcHQuaCBpbnN0ZWFkIG9mIEphdmFT
Y3JpcHRDb3JlLmguCisKKyAgICAgICAgQnkgcnVubmluZyB0aGUgdGVzdGFwaSBpbiBMaW51eCwg
d2UgZm91bmQgdGhhdCBjb250cmFpbnRzCisgICAgICAgIHRlc3QgaGF2ZSBhIGJ1ZzogSWYgY29u
c3RyYWludCBtYXJrZXIgcnVucyBhZnRlciBXZWFrUmVmcworICAgICAgICBhcmUgZGVzdHJveWVk
LCBpdCBhY2Nlc3NlcyBkZXN0cm95ZWQgV2Vha1JlZi4gVGhpcyBwYXRjaAorICAgICAgICBhbHNv
IGZpeGVzIGl0LgorCisgICAgICAgICogQVBJL3Rlc3RzL0N1cnJlbnRUaGlzSW5zaWRlQmxvY2tH
ZXR0ZXJUZXN0Lmg6CisgICAgICAgICogQVBJL3Rlc3RzL0N1c3RvbUdsb2JhbE9iamVjdENsYXNz
VGVzdC5jOgorICAgICAgICAqIEFQSS90ZXN0cy9FeGVjdXRpb25UaW1lTGltaXRUZXN0LmNwcDoK
KyAgICAgICAgKiBBUEkvdGVzdHMvRnVuY3Rpb25PdmVycmlkZXNUZXN0LmNwcDoKKyAgICAgICAg
KiBBUEkvdGVzdHMvR2xvYmFsQ29udGV4dFdpdGhGaW5hbGl6ZXJUZXN0LmNwcDoKKyAgICAgICAg
KiBBUEkvdGVzdHMvSlNPYmplY3RHZXRQcm94eVRhcmdldFRlc3QuY3BwOgorICAgICAgICAqIEFQ
SS90ZXN0cy9NdWx0aXRocmVhZGVkTXVsdGlWTUV4ZWN1dGlvblRlc3QuY3BwOgorICAgICAgICAq
IEFQSS90ZXN0cy9QaW5nUG9uZ1N0YWNrT3ZlcmZsb3dUZXN0LmNwcDoKKyAgICAgICAgKiBBUEkv
dGVzdHMvVHlwZWRBcnJheUNUZXN0LmNwcDoKKyAgICAgICAgKiBBUEkvdGVzdHMvdGVzdGFwaS5j
OgorICAgICAgICAoYXNzZXJ0RXF1YWxzQXNDaGFyYWN0ZXJzUHRyKToKKyAgICAgICAgKG1hcmtp
bmdDb25zdHJhaW50KToKKyAgICAgICAgKHRlc3RNYXJraW5nQ29uc3RyYWludHNBbmRIZWFwRmlu
YWxpemVycyk6CisgICAgICAgICh0ZXN0Q0ZTdHJpbmdzKToKKyAgICAgICAgKG1haW4pOgorICAg
ICAgICAqIHNoZWxsL0NNYWtlTGlzdHMudHh0OgorCiAyMDE3LTA1LTEzICBEYXZpZCBLaWx6ZXIg
IDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgVW51c2VkIGxhbWJkYSBjYXB0dXJlIGlu
IEpTQ29udGV4dEdyb3VwQWRkTWFya2luZ0NvbnN0cmFpbnQoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9DdXJyZW50VGhpc0luc2lkZUJsb2NrR2V0dGVyVGVz
dC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9DdXJyZW50VGhpc0luc2lkZUJs
b2NrR2V0dGVyVGVzdC5oCmluZGV4IGFiNjhmODA1NzJlNjQxMjZhYzYzZWQ1ZjY0NmFmNDhjMzI3
MmUwYjkuLjQ5OGUxNWZhOTI5YzkyOGM3NmNkYmYwMDdiNWRhMTY2OGZlZjk4NTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvQ3VycmVudFRoaXNJbnNpZGVCbG9j
a0dldHRlclRlc3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL0N1cnJl
bnRUaGlzSW5zaWRlQmxvY2tHZXR0ZXJUZXN0LmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdt
YSBvbmNlCiAKLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5oPgorI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHQuaD4KIAogI2lmIEpTQ19PQkpDX0FQSV9F
TkFCTEVECiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvQ3Vz
dG9tR2xvYmFsT2JqZWN0Q2xhc3NUZXN0LmMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rl
c3RzL0N1c3RvbUdsb2JhbE9iamVjdENsYXNzVGVzdC5jCmluZGV4IDYyZTYzOTc4ZWRlNmY3MDE1
YjM2MzNjNzdlNGExNmZjNWY2ZjcyZTQuLjk3NmE4ODFiM2JiYjg3ZGQ2MWU1MzlkMDAxYzYzZTVi
YTNkMDM2ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvQ3Vz
dG9tR2xvYmFsT2JqZWN0Q2xhc3NUZXN0LmMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS90ZXN0cy9DdXN0b21HbG9iYWxPYmplY3RDbGFzc1Rlc3QuYwpAQCAtMjYsOCArMjYsMTAgQEAK
ICNpbmNsdWRlICJDdXN0b21HbG9iYWxPYmplY3RDbGFzc1Rlc3QuaCIKIAogI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0pTT2JqZWN0UmVmUHJpdmF0ZS5oPgotI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dC5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8
c3RyaW5nLmg+CiAKIGV4dGVybiBib29sIGFzc2VydFRydWUoYm9vbCB2YWx1ZSwgY29uc3QgY2hh
ciogbWVzc2FnZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVz
dHMvRXhlY3V0aW9uVGltZUxpbWl0VGVzdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L3Rlc3RzL0V4ZWN1dGlvblRpbWVMaW1pdFRlc3QuY3BwCmluZGV4IGQ1ZTUzMjQzYjc4ZGY3NTEz
NDJhZDhkMzkwYTRiMDQxM2Q5ZWVmOWUuLjg1YzI3MmM0NDM3Njc3NTczZTBlNzUwYWFhYzU2Mzll
Y2U4NDJkN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvRXhl
Y3V0aW9uVGltZUxpbWl0VGVzdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90
ZXN0cy9FeGVjdXRpb25UaW1lTGltaXRUZXN0LmNwcApAQCAtMjgsNyArMjgsNyBAQAogCiAjaW5j
bHVkZSAiSW5pdGlhbGl6ZVRocmVhZGluZy5oIgogI2luY2x1ZGUgIkpTQ29udGV4dFJlZlByaXZh
dGUuaCIKLSNpbmNsdWRlICJKYXZhU2NyaXB0Q29yZS5oIgorI2luY2x1ZGUgIkphdmFTY3JpcHQu
aCIKICNpbmNsdWRlICJPcHRpb25zLmgiCiAjaW5jbHVkZSA8Y2hyb25vPgogI2luY2x1ZGUgPHd0
Zi9DdXJyZW50VGltZS5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90
ZXN0cy9GdW5jdGlvbk92ZXJyaWRlc1Rlc3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS90ZXN0cy9GdW5jdGlvbk92ZXJyaWRlc1Rlc3QuY3BwCmluZGV4IGEzMjVmODM5M2I4YTJiNGMw
YjMxMDk3NTJhNWM4MjE2ZWVkZDQzYmYuLmNmMGQ2ZGMwNDE5ZWJhOWU1YWZjNTBhOWU2NTQxNzkx
MWE0NTBkZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvRnVu
Y3Rpb25PdmVycmlkZXNUZXN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rl
c3RzL0Z1bmN0aW9uT3ZlcnJpZGVzVGVzdC5jcHAKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRl
ICJGdW5jdGlvbk92ZXJyaWRlcy5oIgogI2luY2x1ZGUgIkluaXRpYWxpemVUaHJlYWRpbmcuaCIK
ICNpbmNsdWRlICJKU0NvbnRleHRSZWZQcml2YXRlLmgiCi0jaW5jbHVkZSAiSmF2YVNjcmlwdENv
cmUuaCIKKyNpbmNsdWRlICJKYXZhU2NyaXB0LmgiCiAjaW5jbHVkZSAiT3B0aW9ucy5oIgogI2lu
Y2x1ZGUgPHN0cmluZz4KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90
ZXN0cy9HbG9iYWxDb250ZXh0V2l0aEZpbmFsaXplclRlc3QuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS90ZXN0cy9HbG9iYWxDb250ZXh0V2l0aEZpbmFsaXplclRlc3QuY3BwCmluZGV4
IDA0ODZhMjZjMDE4YjEwZmJmYTMwN2MzM2IwMjM4OGZlYjk1OWYwNDAuLjhkZDgyYjFjZWM4Yzkw
YWExMWQ5NDE3NTcyMDRkYmY5YTFjNWFkZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvdGVzdHMvR2xvYmFsQ29udGV4dFdpdGhGaW5hbGl6ZXJUZXN0LmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL0dsb2JhbENvbnRleHRXaXRoRmluYWxpemVy
VGVzdC5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJHbG9iYWxDb250ZXh0V2l0aEZpbmFsaXplclRlc3QuaCIKIAotI2luY2x1ZGUgIkphdmFTY3Jp
cHRDb3JlLmgiCisjaW5jbHVkZSAiSmF2YVNjcmlwdC5oIgogCiBzdGF0aWMgYm9vbCBmYWlsZWQg
PSB0cnVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL0pT
T2JqZWN0R2V0UHJveHlUYXJnZXRUZXN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
dGVzdHMvSlNPYmplY3RHZXRQcm94eVRhcmdldFRlc3QuY3BwCmluZGV4IGNmMGM1MzY3YmRkN2U1
MGYxMzllMmU0ZjE3OTYyN2MyMjM5YjJiNGMuLjI4MmY3MzY2ZjcyN2FjMzFkNWUwMGYxOGMyYmYy
YzNmNWM5M2Y0NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMv
SlNPYmplY3RHZXRQcm94eVRhcmdldFRlc3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvdGVzdHMvSlNPYmplY3RHZXRQcm94eVRhcmdldFRlc3QuY3BwCkBAIC0zMSw3ICszMSw3
IEBACiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTT2JqZWN0UmVmUHJpdmF0
ZS5oIgogI2luY2x1ZGUgIkpTUHJveHkuaCIKLSNpbmNsdWRlICJKYXZhU2NyaXB0Q29yZS5oIgor
I2luY2x1ZGUgIkphdmFTY3JpcHQuaCIKICNpbmNsdWRlICJPcHRpb25zLmgiCiAjaW5jbHVkZSAi
UHJveHlPYmplY3QuaCIKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90
ZXN0cy9NdWx0aXRocmVhZGVkTXVsdGlWTUV4ZWN1dGlvblRlc3QuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS90ZXN0cy9NdWx0aXRocmVhZGVkTXVsdGlWTUV4ZWN1dGlvblRlc3QuY3Bw
CmluZGV4IGIxOTUxYTBhY2IwOTE5NWRmZjI0M2Y1ZDgyMmMwMjA2Nzc1NjdhOTUuLmI3OTMyNTg0
YjE1OGJmMjg2YWE0Y2FkNjJiMGJhNDIzNTUyNjg2ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvdGVzdHMvTXVsdGl0aHJlYWRlZE11bHRpVk1FeGVjdXRpb25UZXN0LmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL011bHRpdGhyZWFkZWRNdWx0
aVZNRXhlY3V0aW9uVGVzdC5jcHAKQEAgLTI4LDcgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkluaXRp
YWxpemVUaHJlYWRpbmcuaCIKICNpbmNsdWRlICJKU0NvbnRleHRSZWZQcml2YXRlLmgiCi0jaW5j
bHVkZSAiSmF2YVNjcmlwdENvcmUuaCIKKyNpbmNsdWRlICJKYXZhU2NyaXB0LmgiCiAjaW5jbHVk
ZSAiT3B0aW9ucy5oIgogI2luY2x1ZGUgPG11dGV4PgogI2luY2x1ZGUgPHN0cmluZz4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvUGluZ1BvbmdTdGFja092ZXJm
bG93VGVzdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL1BpbmdQb25nU3Rh
Y2tPdmVyZmxvd1Rlc3QuY3BwCmluZGV4IGVmNGI5MTRjMTFhMzk1YjViNmJmYTk1ZTMxYmE5MjFj
ODc4YzgwOTQuLjIzNWRjZWU1N2Q1OWU0NGQyOGVmM2JjMzRmMjgyNzI1ZTU3MzI1YmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvUGluZ1BvbmdTdGFja092ZXJm
bG93VGVzdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9QaW5nUG9u
Z1N0YWNrT3ZlcmZsb3dUZXN0LmNwcApAQCAtMjgsNyArMjgsNyBAQAogCiAjaW5jbHVkZSAiSW5p
dGlhbGl6ZVRocmVhZGluZy5oIgogI2luY2x1ZGUgIkpTQ29udGV4dFJlZlByaXZhdGUuaCIKLSNp
bmNsdWRlICJKYXZhU2NyaXB0Q29yZS5oIgorI2luY2x1ZGUgIkphdmFTY3JpcHQuaCIKICNpbmNs
dWRlICJPcHRpb25zLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL1R5cGVkQXJyYXlDVGVz
dC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL1R5cGVkQXJyYXlDVGVzdC5j
cHAKaW5kZXggOGVjOGNkZDVkYzJhMGE3ODY3OGQ4NGIzYzVmYjQ1MmM1ZTMxYTdlMi4uNDM4YWZl
OWE2NDMxMzE5MGJkOGFlOTY4MzNjNjBlZmIzNDkxN2IzYyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9UeXBlZEFycmF5Q1Rlc3QuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvVHlwZWRBcnJheUNUZXN0LmNwcApAQCAtMjYsNyArMjYs
OSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlR5cGVkQXJyYXlDVGVzdC5oIgog
Ci0jaW5jbHVkZSAiSmF2YVNjcmlwdENvcmUuaCIKKyNpbmNsdWRlICJKYXZhU2NyaXB0LmgiCisj
aW5jbHVkZSA8bGltaXRzLmg+CisjaW5jbHVkZSA8bWF0aC5oPgogI2luY2x1ZGUgPHd0Zi9Bc3Nl
cnRpb25zLmg+CiAKIGV4dGVybiAiQyIgdm9pZCBKU1N5bmNocm9ub3VzR2FyYmFnZUNvbGxlY3RG
b3JEZWJ1Z2dpbmcoSlNDb250ZXh0UmVmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0
cy90ZXN0YXBpLmMKaW5kZXggNDI2OGQwYzAyNGFiN2Q2ZDdiZTE3MTI0Y2Y0M2FmMjA1M2E0MDE5
Yy4uYjZhYmQ2ZDU1OWJjMDVkY2QwNThjYjc3ZGViYjI3ODU1OTViMmYwMiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLmMKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLmMKQEAgLTI1LDcgKzI1LDEyIEBACiAKICNp
bmNsdWRlIDx3dGYvUGxhdGZvcm0uaD4KIAorI2lmIFVTRShDRikKICNpbmNsdWRlICJKYXZhU2Ny
aXB0Q29yZS5oIgorI2Vsc2UKKyNpbmNsdWRlICJKYXZhU2NyaXB0LmgiCisjZW5kaWYKKwogI2lu
Y2x1ZGUgIkpTQmFzZVByaXZhdGUuaCIKICNpbmNsdWRlICJKU0NvbnRleHRSZWZQcml2YXRlLmgi
CiAjaW5jbHVkZSAiSlNIZWFwRmluYWxpemVyUHJpdmF0ZS5oIgpAQCAtMzUsNiArNDAsMTAgQEAK
ICNpbmNsdWRlICJKU1N0cmluZ1JlZlByaXZhdGUuaCIKICNpbmNsdWRlICJKU1dlYWtQcml2YXRl
LmgiCiAjaW5jbHVkZSA8bWF0aC5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3Rk
bGliLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8dGltZS5oPgogI2RlZmluZSBB
U1NFUlRfRElTQUJMRUQgMAogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAKQEAgLTExMyw2
ICsxMjIsNyBAQCBzdGF0aWMgdm9pZCBhc3NlcnRFcXVhbHNBc0NoYXJhY3RlcnNQdHIoSlNWYWx1
ZVJlZiB2YWx1ZSwgY29uc3QgY2hhciogZXhwZWN0ZWRWYQogewogICAgIEpTU3RyaW5nUmVmIHZh
bHVlQXNTdHJpbmcgPSBKU1ZhbHVlVG9TdHJpbmdDb3B5KGNvbnRleHQsIHZhbHVlLCBOVUxMKTsK
IAorI2lmIFVTRShDRikKICAgICBzaXplX3QganNMZW5ndGggPSBKU1N0cmluZ0dldExlbmd0aCh2
YWx1ZUFzU3RyaW5nKTsKICAgICBjb25zdCBKU0NoYXIqIGpzQnVmZmVyID0gSlNTdHJpbmdHZXRD
aGFyYWN0ZXJzUHRyKHZhbHVlQXNTdHJpbmcpOwogCkBAIC0xMzksNiArMTQ5LDE4IEBAIHN0YXRp
YyB2b2lkIGFzc2VydEVxdWFsc0FzQ2hhcmFjdGVyc1B0cihKU1ZhbHVlUmVmIHZhbHVlLCBjb25z
dCBjaGFyKiBleHBlY3RlZFZhCiAgICAgfQogCiAgICAgZnJlZShjZkJ1ZmZlcik7CisjZWxzZQor
ICAgIHNpemVfdCBidWZmZXJTaXplID0gSlNTdHJpbmdHZXRNYXhpbXVtVVRGOENTdHJpbmdTaXpl
KHZhbHVlQXNTdHJpbmcpOworICAgIGNoYXIqIGJ1ZmZlciA9IChjaGFyKiltYWxsb2MoYnVmZmVy
U2l6ZSk7CisgICAgSlNTdHJpbmdHZXRVVEY4Q1N0cmluZyh2YWx1ZUFzU3RyaW5nLCBidWZmZXIs
IGJ1ZmZlclNpemUpOworCisgICAgaWYgKHN0cmNtcChidWZmZXIsIGV4cGVjdGVkVmFsdWUpKSB7
CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiYXNzZXJ0RXF1YWxzQXNDaGFyYWN0ZXJzUHRyIGZh
aWxlZDoganNCdWZmZXIgIT0gY2ZCdWZmZXJcbiIpOworICAgICAgICBmYWlsZWQgPSAxOworICAg
IH0KKworICAgIGZyZWUoYnVmZmVyKTsKKyNlbmRpZgogICAgIEpTU3RyaW5nUmVsZWFzZSh2YWx1
ZUFzU3RyaW5nKTsKIH0KIApAQCAtMTEzOCw5ICsxMTYwLDEyIEBAIHN0YXRpYyB2b2lkIG1hcmtp
bmdDb25zdHJhaW50KEpTTWFya2VyUmVmIG1hcmtlciwgdm9pZCAqdXNlckRhdGEpCiAgICAgd2Vh
a1JlZnMgPSAoSlNXZWFrUmVmKil1c2VyRGF0YTsKICAgICAKICAgICBmb3IgKGkgPSAwOyBpIDwg
bnVtV2Vha1JlZnM7IGkgKz0gMikgewotICAgICAgICBKU09iamVjdFJlZiBvYmplY3QgPSBKU1dl
YWtHZXRPYmplY3Qod2Vha1JlZnNbaV0pOwotICAgICAgICBtYXJrZXItPk1hcmsobWFya2VyLCBv
YmplY3QpOwotICAgICAgICBhc3NlcnRUcnVlKG1hcmtlci0+SXNNYXJrZWQobWFya2VyLCBvYmpl
Y3QpLCAiQSBtYXJrZWQgb2JqZWN0IGlzIG1hcmtlZCIpOworICAgICAgICBKU1dlYWtSZWYgd2Vh
a1JlZiA9IHdlYWtSZWZzW2ldOworICAgICAgICBpZiAod2Vha1JlZikgeworICAgICAgICAgICAg
SlNPYmplY3RSZWYgb2JqZWN0ID0gSlNXZWFrR2V0T2JqZWN0KHdlYWtSZWZzW2ldKTsKKyAgICAg
ICAgICAgIG1hcmtlci0+TWFyayhtYXJrZXIsIG9iamVjdCk7CisgICAgICAgICAgICBhc3NlcnRU
cnVlKG1hcmtlci0+SXNNYXJrZWQobWFya2VyLCBvYmplY3QpLCAiQSBtYXJrZWQgb2JqZWN0IGlz
IG1hcmtlZCIpOworICAgICAgICB9CiAgICAgfQogfQogCkBAIC0xMTkwLDggKzEyMTUsMTEgQEAg
c3RhdGljIHZvaWQgdGVzdE1hcmtpbmdDb25zdHJhaW50c0FuZEhlYXBGaW5hbGl6ZXJzKHZvaWQp
CiAgICAgCiAgICAgYXNzZXJ0VHJ1ZShkZWFkQ291bnQgIT0gMCwgIkF0IGxlYXN0IHNvbWUgb2Jq
ZWN0cyBkaWVkIik7CiAgICAgCi0gICAgZm9yIChpID0gbnVtV2Vha1JlZnM7IGktLTspCi0gICAg
ICAgIEpTV2Vha1JlbGVhc2UoZ3JvdXAsIHdlYWtSZWZzW2ldKTsKKyAgICBmb3IgKGkgPSBudW1X
ZWFrUmVmczsgaS0tOykgeworICAgICAgICBKU1dlYWtSZWYgd2Vha1JlZiA9IHdlYWtSZWZzW2ld
OworICAgICAgICB3ZWFrUmVmc1tpXSA9IE5VTEw7CisgICAgICAgIEpTV2Vha1JlbGVhc2UoZ3Jv
dXAsIHdlYWtSZWYpOworICAgIH0KICAgICAKICAgICBkaWRSdW5IZWFwRmluYWxpemVyID0gZmFs
c2U7CiAgICAgSlNTeW5jaHJvbm91c0dhcmJhZ2VDb2xsZWN0Rm9yRGVidWdnaW5nKGNvbnRleHQp
OwpAQCAtMTIwOCw2ICsxMjM2LDEwMyBAQCBzdGF0aWMgdm9pZCB0ZXN0TWFya2luZ0NvbnN0cmFp
bnRzQW5kSGVhcEZpbmFsaXplcnModm9pZCkKICAgICBwcmludGYoIlBBU1M6IE1hcmtpbmcgQ29u
c3RyYWludHMgYW5kIEhlYXAgRmluYWxpemVycy5cbiIpOwogfQogCisjaWYgVVNFKENGKQorc3Rh
dGljIHZvaWQgdGVzdENGU3RyaW5ncyh2b2lkKQoreworICAgIEpTR2xvYmFsQ29udGV4dFJlZiBj
b250ZXh0ID0gSlNHbG9iYWxDb250ZXh0Q3JlYXRlKDApOworCisgICAgVW5pQ2hhciBzaW5nbGVV
bmlDaGFyID0gNjU7IC8vIENhcGl0YWwgQQorICAgIENGTXV0YWJsZVN0cmluZ1JlZiBjZlN0cmlu
ZyA9IENGU3RyaW5nQ3JlYXRlTXV0YWJsZVdpdGhFeHRlcm5hbENoYXJhY3RlcnNOb0NvcHkoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgJnNpbmdsZVVuaUNoYXIsIDEsIDEsIGtDRkFsbG9jYXRvck51bGwp
OworCisgICAgSlNTdHJpbmdSZWYganNDRklTdHJpbmcgPSBKU1N0cmluZ0NyZWF0ZVdpdGhDRlN0
cmluZyhjZlN0cmluZyk7CisgICAgSlNWYWx1ZVJlZiBqc0NGU3RyaW5nID0gSlNWYWx1ZU1ha2VT
dHJpbmcoY29udGV4dCwganNDRklTdHJpbmcpOworCisgICAgQ0ZTdHJpbmdSZWYgY2ZFbXB0eVN0
cmluZyA9IENGU3RyaW5nQ3JlYXRlV2l0aENTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgIiIs
IGtDRlN0cmluZ0VuY29kaW5nVVRGOCk7CisKKyAgICBKU1N0cmluZ1JlZiBqc0NGRW1wdHlJU3Ry
aW5nID0gSlNTdHJpbmdDcmVhdGVXaXRoQ0ZTdHJpbmcoY2ZFbXB0eVN0cmluZyk7CisgICAgSlNW
YWx1ZVJlZiBqc0NGRW1wdHlTdHJpbmcgPSBKU1ZhbHVlTWFrZVN0cmluZyhjb250ZXh0LCBqc0NG
RW1wdHlJU3RyaW5nKTsKKworICAgIENGSW5kZXggY2ZTdHJpbmdMZW5ndGggPSBDRlN0cmluZ0dl
dExlbmd0aChjZlN0cmluZyk7CisgICAgVW5pQ2hhciogYnVmZmVyID0gKFVuaUNoYXIqKW1hbGxv
YyhjZlN0cmluZ0xlbmd0aCAqIHNpemVvZihVbmlDaGFyKSk7CisgICAgQ0ZTdHJpbmdHZXRDaGFy
YWN0ZXJzKGNmU3RyaW5nLCBDRlJhbmdlTWFrZSgwLCBjZlN0cmluZ0xlbmd0aCksIGJ1ZmZlcik7
CisgICAgSlNTdHJpbmdSZWYganNDRklTdHJpbmdXaXRoQ2hhcmFjdGVycyA9IEpTU3RyaW5nQ3Jl
YXRlV2l0aENoYXJhY3RlcnMoKEpTQ2hhciopYnVmZmVyLCBjZlN0cmluZ0xlbmd0aCk7CisgICAg
SlNWYWx1ZVJlZiBqc0NGU3RyaW5nV2l0aENoYXJhY3RlcnMgPSBKU1ZhbHVlTWFrZVN0cmluZyhj
b250ZXh0LCBqc0NGSVN0cmluZ1dpdGhDaGFyYWN0ZXJzKTsKKworICAgIEpTU3RyaW5nUmVmIGpz
Q0ZFbXB0eUlTdHJpbmdXaXRoQ2hhcmFjdGVycyA9IEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3Rl
cnMoKEpTQ2hhciopYnVmZmVyLCBDRlN0cmluZ0dldExlbmd0aChjZkVtcHR5U3RyaW5nKSk7Cisg
ICAgZnJlZShidWZmZXIpOworICAgIEpTVmFsdWVSZWYganNDRkVtcHR5U3RyaW5nV2l0aENoYXJh
Y3RlcnMgPSBKU1ZhbHVlTWFrZVN0cmluZyhjb250ZXh0LCBqc0NGRW1wdHlJU3RyaW5nV2l0aENo
YXJhY3RlcnMpOworCisgICAgQVNTRVJUKEpTVmFsdWVHZXRUeXBlKGNvbnRleHQsIGpzQ0ZTdHJp
bmcpID09IGtKU1R5cGVTdHJpbmcpOworICAgIEFTU0VSVChKU1ZhbHVlR2V0VHlwZShjb250ZXh0
LCBqc0NGU3RyaW5nV2l0aENoYXJhY3RlcnMpID09IGtKU1R5cGVTdHJpbmcpOworICAgIEFTU0VS
VChKU1ZhbHVlR2V0VHlwZShjb250ZXh0LCBqc0NGRW1wdHlTdHJpbmcpID09IGtKU1R5cGVTdHJp
bmcpOworICAgIEFTU0VSVChKU1ZhbHVlR2V0VHlwZShjb250ZXh0LCBqc0NGRW1wdHlTdHJpbmdX
aXRoQ2hhcmFjdGVycykgPT0ga0pTVHlwZVN0cmluZyk7CisKKyAgICBKU1N0cmluZ1JlZiBlbXB0
eVN0cmluZyA9IEpTU3RyaW5nQ3JlYXRlV2l0aENGU3RyaW5nKENGU1RSKCIiKSk7CisgICAgY29u
c3QgSlNDaGFyKiBjaGFyYWN0ZXJzID0gSlNTdHJpbmdHZXRDaGFyYWN0ZXJzUHRyKGVtcHR5U3Ry
aW5nKTsKKyAgICBpZiAoIWNoYXJhY3RlcnMpIHsKKyAgICAgICAgcHJpbnRmKCJGQUlMOiBSZXR1
cm5lZCBudWxsIHdoZW4gYWNjZXNzaW5nIGNoYXJhY3RlciBwb2ludGVyIG9mIGFuIGVtcHR5IFN0
cmluZy5cbiIpOworICAgICAgICBmYWlsZWQgPSAxOworICAgIH0gZWxzZQorICAgICAgICBwcmlu
dGYoIlBBU1M6IHJldHVybmVkIGVtcHR5IHdoZW4gYWNjZXNzaW5nIGNoYXJhY3RlciBwb2ludGVy
IG9mIGFuIGVtcHR5IFN0cmluZy5cbiIpOworCisgICAgc2l6ZV90IGxlbmd0aCA9IEpTU3RyaW5n
R2V0TGVuZ3RoKGVtcHR5U3RyaW5nKTsKKyAgICBpZiAobGVuZ3RoKSB7CisgICAgICAgIHByaW50
ZigiRkFJTDogRGlkbid0IHJldHVybiAwIGxlbmd0aCBmb3IgZW1wdHkgU3RyaW5nLlxuIik7Cisg
ICAgICAgIGZhaWxlZCA9IDE7CisgICAgfSBlbHNlCisgICAgICAgIHByaW50ZigiUEFTUzogcmV0
dXJuZWQgMCBsZW5ndGggZm9yIGVtcHR5IFN0cmluZy5cbiIpOworICAgIEpTU3RyaW5nUmVsZWFz
ZShlbXB0eVN0cmluZyk7CisKKyAgICBhc3NlcnRFcXVhbHNBc0Jvb2xlYW4oanNDRlN0cmluZywg
dHJ1ZSk7CisgICAgYXNzZXJ0RXF1YWxzQXNCb29sZWFuKGpzQ0ZTdHJpbmdXaXRoQ2hhcmFjdGVy
cywgdHJ1ZSk7CisgICAgYXNzZXJ0RXF1YWxzQXNCb29sZWFuKGpzQ0ZFbXB0eVN0cmluZywgZmFs
c2UpOworICAgIGFzc2VydEVxdWFsc0FzQm9vbGVhbihqc0NGRW1wdHlTdHJpbmdXaXRoQ2hhcmFj
dGVycywgZmFsc2UpOworCisgICAgYXNzZXJ0RXF1YWxzQXNOdW1iZXIoanNDRlN0cmluZywgbmFu
KCIiKSk7CisgICAgYXNzZXJ0RXF1YWxzQXNOdW1iZXIoanNDRlN0cmluZ1dpdGhDaGFyYWN0ZXJz
LCBuYW4oIiIpKTsKKyAgICBhc3NlcnRFcXVhbHNBc051bWJlcihqc0NGRW1wdHlTdHJpbmcsIDAp
OworICAgIGFzc2VydEVxdWFsc0FzTnVtYmVyKGpzQ0ZFbXB0eVN0cmluZ1dpdGhDaGFyYWN0ZXJz
LCAwKTsKKyAgICBBU1NFUlQoc2l6ZW9mKEpTQ2hhcikgPT0gc2l6ZW9mKFVuaUNoYXIpKTsKKwor
ICAgIGFzc2VydEVxdWFsc0FzQ2hhcmFjdGVyc1B0cihqc0NGU3RyaW5nLCAiQSIpOworICAgIGFz
c2VydEVxdWFsc0FzQ2hhcmFjdGVyc1B0cihqc0NGU3RyaW5nV2l0aENoYXJhY3RlcnMsICJBIik7
CisgICAgYXNzZXJ0RXF1YWxzQXNDaGFyYWN0ZXJzUHRyKGpzQ0ZFbXB0eVN0cmluZywgIiIpOwor
ICAgIGFzc2VydEVxdWFsc0FzQ2hhcmFjdGVyc1B0cihqc0NGRW1wdHlTdHJpbmdXaXRoQ2hhcmFj
dGVycywgIiIpOworCisgICAgYXNzZXJ0RXF1YWxzQXNVVEY4U3RyaW5nKGpzQ0ZTdHJpbmcsICJB
Iik7CisgICAgYXNzZXJ0RXF1YWxzQXNVVEY4U3RyaW5nKGpzQ0ZTdHJpbmdXaXRoQ2hhcmFjdGVy
cywgIkEiKTsKKyAgICBhc3NlcnRFcXVhbHNBc1VURjhTdHJpbmcoanNDRkVtcHR5U3RyaW5nLCAi
Iik7CisgICAgYXNzZXJ0RXF1YWxzQXNVVEY4U3RyaW5nKGpzQ0ZFbXB0eVN0cmluZ1dpdGhDaGFy
YWN0ZXJzLCAiIik7CisKKyAgICBDRlN0cmluZ1JlZiBjZkpTU3RyaW5nID0gSlNTdHJpbmdDb3B5
Q0ZTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwganNDRklTdHJpbmcpOworICAgIENGU3RyaW5n
UmVmIGNmSlNFbXB0eVN0cmluZyA9IEpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIGpzQ0ZFbXB0eUlTdHJpbmcpOworICAgIEFTU0VSVChDRkVxdWFsKGNmSlNTdHJpbmcs
IGNmU3RyaW5nKSk7CisgICAgQVNTRVJUKENGRXF1YWwoY2ZKU0VtcHR5U3RyaW5nLCBjZkVtcHR5
U3RyaW5nKSk7CisgICAgQ0ZSZWxlYXNlKGNmSlNTdHJpbmcpOworICAgIENGUmVsZWFzZShjZkpT
RW1wdHlTdHJpbmcpOworCisgICAgSlNPYmplY3RSZWYgbyA9IEpTT2JqZWN0TWFrZShjb250ZXh0
LCBOVUxMLCBOVUxMKTsKKyAgICBKU09iamVjdFNldFByb3BlcnR5KGNvbnRleHQsIG8sIGpzT25l
SVN0cmluZywgSlNWYWx1ZU1ha2VOdW1iZXIoY29udGV4dCwgMSksIGtKU1Byb3BlcnR5QXR0cmli
dXRlTm9uZSwgTlVMTCk7CisgICAgSlNPYmplY3RTZXRQcm9wZXJ0eShjb250ZXh0LCBvLCBqc0NG
SVN0cmluZywgIEpTVmFsdWVNYWtlTnVtYmVyKGNvbnRleHQsIDEpLCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZURvbnRFbnVtLCBOVUxMKTsKKyAgICBKU1Byb3BlcnR5TmFtZUFycmF5UmVmIG5hbWVBcnJh
eSA9IEpTT2JqZWN0Q29weVByb3BlcnR5TmFtZXMoY29udGV4dCwgbyk7CisgICAgc2l6ZV90IGV4
cGVjdGVkQ291bnQgPSBKU1Byb3BlcnR5TmFtZUFycmF5R2V0Q291bnQobmFtZUFycmF5KTsKKyAg
ICBzaXplX3QgY291bnQ7CisgICAgZm9yIChjb3VudCA9IDA7IGNvdW50IDwgZXhwZWN0ZWRDb3Vu
dDsgKytjb3VudCkKKyAgICAgICAgSlNQcm9wZXJ0eU5hbWVBcnJheUdldE5hbWVBdEluZGV4KG5h
bWVBcnJheSwgY291bnQpOworICAgIEpTUHJvcGVydHlOYW1lQXJyYXlSZWxlYXNlKG5hbWVBcnJh
eSk7CisgICAgQVNTRVJUKGNvdW50ID09IDEpOyAvLyBqc0NGU3RyaW5nIHNob3VsZCBub3QgYmUg
ZW51bWVyYXRlZAorCisgICAgSlNTdHJpbmdSZWxlYXNlKGpzQ0ZJU3RyaW5nKTsKKyAgICBKU1N0
cmluZ1JlbGVhc2UoanNDRkVtcHR5SVN0cmluZyk7CisgICAgSlNTdHJpbmdSZWxlYXNlKGpzQ0ZJ
U3RyaW5nV2l0aENoYXJhY3RlcnMpOworICAgIEpTU3RyaW5nUmVsZWFzZShqc0NGRW1wdHlJU3Ry
aW5nV2l0aENoYXJhY3RlcnMpOworICAgIENGUmVsZWFzZShjZlN0cmluZyk7CisgICAgQ0ZSZWxl
YXNlKGNmRW1wdHlTdHJpbmcpOworCisgICAgSlNHbG9iYWxDb250ZXh0UmVsZWFzZShjb250ZXh0
KTsKK30KKyNlbmRpZgorCiBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQogewogI2lm
IE9TKFdJTkRPV1MpCkBAIC0xMjQwLDYgKzEzNjUsMTAgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNo
YXIqIGFyZ3ZbXSkKIAogICAgIHRlc3RNYXJraW5nQ29uc3RyYWludHNBbmRIZWFwRmluYWxpemVy
cygpOwogCisjaWYgVVNFKENGKQorICAgIHRlc3RDRlN0cmluZ3MoKTsKKyNlbmRpZgorCiAgICAg
SlNDbGFzc0RlZmluaXRpb24gZ2xvYmFsT2JqZWN0Q2xhc3NEZWZpbml0aW9uID0ga0pTQ2xhc3NE
ZWZpbml0aW9uRW1wdHk7CiAgICAgZ2xvYmFsT2JqZWN0Q2xhc3NEZWZpbml0aW9uLmluaXRpYWxp
emUgPSBnbG9iYWxPYmplY3RfaW5pdGlhbGl6ZTsKICAgICBnbG9iYWxPYmplY3RDbGFzc0RlZmlu
aXRpb24uc3RhdGljVmFsdWVzID0gZ2xvYmFsT2JqZWN0X3N0YXRpY1ZhbHVlczsKQEAgLTEyODUs
MzQgKzE0MTQsNiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQogICAgIEpTU3Ry
aW5nUmVmIGpzT25lSVN0cmluZyA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCIxIik7
CiAgICAgSlNWYWx1ZVJlZiBqc09uZVN0cmluZyA9IEpTVmFsdWVNYWtlU3RyaW5nKGNvbnRleHQs
IGpzT25lSVN0cmluZyk7CiAKLSAgICBVbmlDaGFyIHNpbmdsZVVuaUNoYXIgPSA2NTsgLy8gQ2Fw
aXRhbCBBCi0gICAgQ0ZNdXRhYmxlU3RyaW5nUmVmIGNmU3RyaW5nID0gCi0gICAgICAgIENGU3Ry
aW5nQ3JlYXRlTXV0YWJsZVdpdGhFeHRlcm5hbENoYXJhY3RlcnNOb0NvcHkoa0NGQWxsb2NhdG9y
RGVmYXVsdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAmc2luZ2xlVW5pQ2hhciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga0NGQWxsb2NhdG9yTnVsbCk7
Ci0KLSAgICBKU1N0cmluZ1JlZiBqc0NGSVN0cmluZyA9IEpTU3RyaW5nQ3JlYXRlV2l0aENGU3Ry
aW5nKGNmU3RyaW5nKTsKLSAgICBKU1ZhbHVlUmVmIGpzQ0ZTdHJpbmcgPSBKU1ZhbHVlTWFrZVN0
cmluZyhjb250ZXh0LCBqc0NGSVN0cmluZyk7Ci0gICAgCi0gICAgQ0ZTdHJpbmdSZWYgY2ZFbXB0
eVN0cmluZyA9IENGU3RyaW5nQ3JlYXRlV2l0aENTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwg
IiIsIGtDRlN0cmluZ0VuY29kaW5nVVRGOCk7Ci0gICAgCi0gICAgSlNTdHJpbmdSZWYganNDRkVt
cHR5SVN0cmluZyA9IEpTU3RyaW5nQ3JlYXRlV2l0aENGU3RyaW5nKGNmRW1wdHlTdHJpbmcpOwot
ICAgIEpTVmFsdWVSZWYganNDRkVtcHR5U3RyaW5nID0gSlNWYWx1ZU1ha2VTdHJpbmcoY29udGV4
dCwganNDRkVtcHR5SVN0cmluZyk7Ci0KLSAgICBDRkluZGV4IGNmU3RyaW5nTGVuZ3RoID0gQ0ZT
dHJpbmdHZXRMZW5ndGgoY2ZTdHJpbmcpOwotICAgIFVuaUNoYXIqIGJ1ZmZlciA9IChVbmlDaGFy
KiltYWxsb2MoY2ZTdHJpbmdMZW5ndGggKiBzaXplb2YoVW5pQ2hhcikpOwotICAgIENGU3RyaW5n
R2V0Q2hhcmFjdGVycyhjZlN0cmluZywgCi0gICAgICAgICAgICAgICAgICAgICAgICAgIENGUmFu
Z2VNYWtlKDAsIGNmU3RyaW5nTGVuZ3RoKSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGJ1
ZmZlcik7Ci0gICAgSlNTdHJpbmdSZWYganNDRklTdHJpbmdXaXRoQ2hhcmFjdGVycyA9IEpTU3Ry
aW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoKEpTQ2hhciopYnVmZmVyLCBjZlN0cmluZ0xlbmd0aCk7
Ci0gICAgSlNWYWx1ZVJlZiBqc0NGU3RyaW5nV2l0aENoYXJhY3RlcnMgPSBKU1ZhbHVlTWFrZVN0
cmluZyhjb250ZXh0LCBqc0NGSVN0cmluZ1dpdGhDaGFyYWN0ZXJzKTsKLSAgICAKLSAgICBKU1N0
cmluZ1JlZiBqc0NGRW1wdHlJU3RyaW5nV2l0aENoYXJhY3RlcnMgPSBKU1N0cmluZ0NyZWF0ZVdp
dGhDaGFyYWN0ZXJzKChKU0NoYXIqKWJ1ZmZlciwgQ0ZTdHJpbmdHZXRMZW5ndGgoY2ZFbXB0eVN0
cmluZykpOwotICAgIGZyZWUoYnVmZmVyKTsKLSAgICBKU1ZhbHVlUmVmIGpzQ0ZFbXB0eVN0cmlu
Z1dpdGhDaGFyYWN0ZXJzID0gSlNWYWx1ZU1ha2VTdHJpbmcoY29udGV4dCwganNDRkVtcHR5SVN0
cmluZ1dpdGhDaGFyYWN0ZXJzKTsKLQogICAgIEpTQ2hhciBjb25zdGFudFN0cmluZ1tdID0geyAn
SCcsICdlJywgJ2wnLCAnbCcsICdvJywgfTsKICAgICBKU1N0cmluZ1JlZiBjb25zdGFudFN0cmlu
Z1JlZiA9IEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnNOb0NvcHkoY29uc3RhbnRTdHJpbmcs
IHNpemVvZihjb25zdGFudFN0cmluZykgLyBzaXplb2YoY29uc3RhbnRTdHJpbmdbMF0pKTsKICAg
ICBBU1NFUlQoSlNTdHJpbmdHZXRDaGFyYWN0ZXJzUHRyKGNvbnN0YW50U3RyaW5nUmVmKSA9PSBj
b25zdGFudFN0cmluZyk7CkBAIC0xMzI4LDEwICsxNDI5LDYgQEAgaW50IG1haW4oaW50IGFyZ2Ms
IGNoYXIqIGFyZ3ZbXSkKICAgICBBU1NFUlQoSlNWYWx1ZUdldFR5cGUoY29udGV4dCwganNPbmVU
aGlyZCkgPT0ga0pTVHlwZU51bWJlcik7CiAgICAgQVNTRVJUKEpTVmFsdWVHZXRUeXBlKGNvbnRl
eHQsIGpzRW1wdHlTdHJpbmcpID09IGtKU1R5cGVTdHJpbmcpOwogICAgIEFTU0VSVChKU1ZhbHVl
R2V0VHlwZShjb250ZXh0LCBqc09uZVN0cmluZykgPT0ga0pTVHlwZVN0cmluZyk7Ci0gICAgQVNT
RVJUKEpTVmFsdWVHZXRUeXBlKGNvbnRleHQsIGpzQ0ZTdHJpbmcpID09IGtKU1R5cGVTdHJpbmcp
OwotICAgIEFTU0VSVChKU1ZhbHVlR2V0VHlwZShjb250ZXh0LCBqc0NGU3RyaW5nV2l0aENoYXJh
Y3RlcnMpID09IGtKU1R5cGVTdHJpbmcpOwotICAgIEFTU0VSVChKU1ZhbHVlR2V0VHlwZShjb250
ZXh0LCBqc0NGRW1wdHlTdHJpbmcpID09IGtKU1R5cGVTdHJpbmcpOwotICAgIEFTU0VSVChKU1Zh
bHVlR2V0VHlwZShjb250ZXh0LCBqc0NGRW1wdHlTdHJpbmdXaXRoQ2hhcmFjdGVycykgPT0ga0pT
VHlwZVN0cmluZyk7CiAKICAgICBBU1NFUlQoIUpTVmFsdWVJc0Jvb2xlYW4oY29udGV4dCwgTlVM
TCkpOwogICAgIEFTU0VSVCghSlNWYWx1ZUlzT2JqZWN0KGNvbnRleHQsIE5VTEwpKTsKQEAgLTEz
NTQsMTQgKzE0NTEsNiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQogICAgIH0g
ZWxzZQogICAgICAgICBwcmludGYoIlBBU1M6IHJldHVybmVkIG51bGwgd2hlbiBhY2Nlc3Npbmcg
Y2hhcmFjdGVyIHBvaW50ZXIgb2YgYSBudWxsIFN0cmluZy5cbiIpOwogCi0gICAgSlNTdHJpbmdS
ZWYgZW1wdHlTdHJpbmcgPSBKU1N0cmluZ0NyZWF0ZVdpdGhDRlN0cmluZyhDRlNUUigiIikpOwot
ICAgIGNoYXJhY3RlcnMgPSBKU1N0cmluZ0dldENoYXJhY3RlcnNQdHIoZW1wdHlTdHJpbmcpOwot
ICAgIGlmICghY2hhcmFjdGVycykgewotICAgICAgICBwcmludGYoIkZBSUw6IFJldHVybmVkIG51
bGwgd2hlbiBhY2Nlc3NpbmcgY2hhcmFjdGVyIHBvaW50ZXIgb2YgYW4gZW1wdHkgU3RyaW5nLlxu
Iik7Ci0gICAgICAgIGZhaWxlZCA9IDE7Ci0gICAgfSBlbHNlCi0gICAgICAgIHByaW50ZigiUEFT
UzogcmV0dXJuZWQgZW1wdHkgd2hlbiBhY2Nlc3NpbmcgY2hhcmFjdGVyIHBvaW50ZXIgb2YgYW4g
ZW1wdHkgU3RyaW5nLlxuIik7Ci0KICAgICBzaXplX3QgbGVuZ3RoID0gSlNTdHJpbmdHZXRMZW5n
dGgobnVsbFN0cmluZyk7CiAgICAgaWYgKGxlbmd0aCkgewogICAgICAgICBwcmludGYoIkZBSUw6
IERpZG4ndCByZXR1cm4gMCBsZW5ndGggZm9yIG51bGwgU3RyaW5nLlxuIik7CkBAIC0xMzcwLDE0
ICsxNDU5LDYgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKICAgICAgICAgcHJp
bnRmKCJQQVNTOiByZXR1cm5lZCAwIGxlbmd0aCBmb3IgbnVsbCBTdHJpbmcuXG4iKTsKICAgICBK
U1N0cmluZ1JlbGVhc2UobnVsbFN0cmluZyk7CiAKLSAgICBsZW5ndGggPSBKU1N0cmluZ0dldExl
bmd0aChlbXB0eVN0cmluZyk7Ci0gICAgaWYgKGxlbmd0aCkgewotICAgICAgICBwcmludGYoIkZB
SUw6IERpZG4ndCByZXR1cm4gMCBsZW5ndGggZm9yIGVtcHR5IFN0cmluZy5cbiIpOwotICAgICAg
ICBmYWlsZWQgPSAxOwotICAgIH0gZWxzZQotICAgICAgICBwcmludGYoIlBBU1M6IHJldHVybmVk
IDAgbGVuZ3RoIGZvciBlbXB0eSBTdHJpbmcuXG4iKTsKLSAgICBKU1N0cmluZ1JlbGVhc2UoZW1w
dHlTdHJpbmcpOwotCiAgICAgSlNPYmplY3RSZWYgcHJvcGVydHlDYXRjaGFsbHMgPSBKU09iamVj
dE1ha2UoY29udGV4dCwgUHJvcGVydHlDYXRjaGFsbHNfY2xhc3MoY29udGV4dCksIE5VTEwpOwog
ICAgIEpTU3RyaW5nUmVmIHByb3BlcnR5Q2F0Y2hhbGxzU3RyaW5nID0gSlNTdHJpbmdDcmVhdGVX
aXRoVVRGOENTdHJpbmcoIlByb3BlcnR5Q2F0Y2hhbGxzIik7CiAgICAgSlNPYmplY3RTZXRQcm9w
ZXJ0eShjb250ZXh0LCBnbG9iYWxPYmplY3QsIHByb3BlcnR5Q2F0Y2hhbGxzU3RyaW5nLCBwcm9w
ZXJ0eUNhdGNoYWxscywga0pTUHJvcGVydHlBdHRyaWJ1dGVOb25lLCBOVUxMKTsKQEAgLTE1NTcs
MTAgKzE2MzgsNiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQogICAgIGFzc2Vy
dEVxdWFsc0FzQm9vbGVhbihqc09uZVRoaXJkLCB0cnVlKTsKICAgICBhc3NlcnRFcXVhbHNBc0Jv
b2xlYW4oanNFbXB0eVN0cmluZywgZmFsc2UpOwogICAgIGFzc2VydEVxdWFsc0FzQm9vbGVhbihq
c09uZVN0cmluZywgdHJ1ZSk7Ci0gICAgYXNzZXJ0RXF1YWxzQXNCb29sZWFuKGpzQ0ZTdHJpbmcs
IHRydWUpOwotICAgIGFzc2VydEVxdWFsc0FzQm9vbGVhbihqc0NGU3RyaW5nV2l0aENoYXJhY3Rl
cnMsIHRydWUpOwotICAgIGFzc2VydEVxdWFsc0FzQm9vbGVhbihqc0NGRW1wdHlTdHJpbmcsIGZh
bHNlKTsKLSAgICBhc3NlcnRFcXVhbHNBc0Jvb2xlYW4oanNDRkVtcHR5U3RyaW5nV2l0aENoYXJh
Y3RlcnMsIGZhbHNlKTsKICAgICAKICAgICBhc3NlcnRFcXVhbHNBc051bWJlcihqc1VuZGVmaW5l
ZCwgbmFuKCIiKSk7CiAgICAgYXNzZXJ0RXF1YWxzQXNOdW1iZXIoanNOdWxsLCAwKTsKQEAgLTE1
NzEsMTEgKzE2NDgsNiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQogICAgIGFz
c2VydEVxdWFsc0FzTnVtYmVyKGpzT25lVGhpcmQsIDEuMCAvIDMuMCk7CiAgICAgYXNzZXJ0RXF1
YWxzQXNOdW1iZXIoanNFbXB0eVN0cmluZywgMCk7CiAgICAgYXNzZXJ0RXF1YWxzQXNOdW1iZXIo
anNPbmVTdHJpbmcsIDEpOwotICAgIGFzc2VydEVxdWFsc0FzTnVtYmVyKGpzQ0ZTdHJpbmcsIG5h
bigiIikpOwotICAgIGFzc2VydEVxdWFsc0FzTnVtYmVyKGpzQ0ZTdHJpbmdXaXRoQ2hhcmFjdGVy
cywgbmFuKCIiKSk7Ci0gICAgYXNzZXJ0RXF1YWxzQXNOdW1iZXIoanNDRkVtcHR5U3RyaW5nLCAw
KTsKLSAgICBhc3NlcnRFcXVhbHNBc051bWJlcihqc0NGRW1wdHlTdHJpbmdXaXRoQ2hhcmFjdGVy
cywgMCk7Ci0gICAgQVNTRVJUKHNpemVvZihKU0NoYXIpID09IHNpemVvZihVbmlDaGFyKSk7CiAg
ICAgCiAgICAgYXNzZXJ0RXF1YWxzQXNDaGFyYWN0ZXJzUHRyKGpzVW5kZWZpbmVkLCAidW5kZWZp
bmVkIik7CiAgICAgYXNzZXJ0RXF1YWxzQXNDaGFyYWN0ZXJzUHRyKGpzTnVsbCwgIm51bGwiKTsK
QEAgLTE1ODYsMTAgKzE2NTgsNiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQog
ICAgIGFzc2VydEVxdWFsc0FzQ2hhcmFjdGVyc1B0cihqc09uZVRoaXJkLCAiMC4zMzMzMzMzMzMz
MzMzMzMzIik7CiAgICAgYXNzZXJ0RXF1YWxzQXNDaGFyYWN0ZXJzUHRyKGpzRW1wdHlTdHJpbmcs
ICIiKTsKICAgICBhc3NlcnRFcXVhbHNBc0NoYXJhY3RlcnNQdHIoanNPbmVTdHJpbmcsICIxIik7
Ci0gICAgYXNzZXJ0RXF1YWxzQXNDaGFyYWN0ZXJzUHRyKGpzQ0ZTdHJpbmcsICJBIik7Ci0gICAg
YXNzZXJ0RXF1YWxzQXNDaGFyYWN0ZXJzUHRyKGpzQ0ZTdHJpbmdXaXRoQ2hhcmFjdGVycywgIkEi
KTsKLSAgICBhc3NlcnRFcXVhbHNBc0NoYXJhY3RlcnNQdHIoanNDRkVtcHR5U3RyaW5nLCAiIik7
Ci0gICAgYXNzZXJ0RXF1YWxzQXNDaGFyYWN0ZXJzUHRyKGpzQ0ZFbXB0eVN0cmluZ1dpdGhDaGFy
YWN0ZXJzLCAiIik7CiAgICAgCiAgICAgYXNzZXJ0RXF1YWxzQXNVVEY4U3RyaW5nKGpzVW5kZWZp
bmVkLCAidW5kZWZpbmVkIik7CiAgICAgYXNzZXJ0RXF1YWxzQXNVVEY4U3RyaW5nKGpzTnVsbCwg
Im51bGwiKTsKQEAgLTE2MDAsMTAgKzE2NjgsNiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciog
YXJndltdKQogICAgIGFzc2VydEVxdWFsc0FzVVRGOFN0cmluZyhqc09uZVRoaXJkLCAiMC4zMzMz
MzMzMzMzMzMzMzMzIik7CiAgICAgYXNzZXJ0RXF1YWxzQXNVVEY4U3RyaW5nKGpzRW1wdHlTdHJp
bmcsICIiKTsKICAgICBhc3NlcnRFcXVhbHNBc1VURjhTdHJpbmcoanNPbmVTdHJpbmcsICIxIik7
Ci0gICAgYXNzZXJ0RXF1YWxzQXNVVEY4U3RyaW5nKGpzQ0ZTdHJpbmcsICJBIik7Ci0gICAgYXNz
ZXJ0RXF1YWxzQXNVVEY4U3RyaW5nKGpzQ0ZTdHJpbmdXaXRoQ2hhcmFjdGVycywgIkEiKTsKLSAg
ICBhc3NlcnRFcXVhbHNBc1VURjhTdHJpbmcoanNDRkVtcHR5U3RyaW5nLCAiIik7Ci0gICAgYXNz
ZXJ0RXF1YWxzQXNVVEY4U3RyaW5nKGpzQ0ZFbXB0eVN0cmluZ1dpdGhDaGFyYWN0ZXJzLCAiIik7
CiAgICAgCiAgICAgY2hlY2tDb25zdG5lc3NJbkpTT2JqZWN0TmFtZXMoKTsKICAgICAKQEAgLTE2
MTMsMTYgKzE2NzcsNiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQogICAgIEFT
U0VSVChKU1ZhbHVlSXNFcXVhbChjb250ZXh0LCBqc09uZSwganNPbmVTdHJpbmcsIE5VTEwpKTsK
ICAgICBBU1NFUlQoIUpTVmFsdWVJc0VxdWFsKGNvbnRleHQsIGpzVHJ1ZSwganNGYWxzZSwgTlVM
TCkpOwogICAgIAotICAgIENGU3RyaW5nUmVmIGNmSlNTdHJpbmcgPSBKU1N0cmluZ0NvcHlDRlN0
cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBqc0NGSVN0cmluZyk7Ci0gICAgQ0ZTdHJpbmdSZWYg
Y2ZKU0VtcHR5U3RyaW5nID0gSlNTdHJpbmdDb3B5Q0ZTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVs
dCwganNDRkVtcHR5SVN0cmluZyk7Ci0gICAgQVNTRVJUKENGRXF1YWwoY2ZKU1N0cmluZywgY2ZT
dHJpbmcpKTsKLSAgICBBU1NFUlQoQ0ZFcXVhbChjZkpTRW1wdHlTdHJpbmcsIGNmRW1wdHlTdHJp
bmcpKTsKLSAgICBDRlJlbGVhc2UoY2ZKU1N0cmluZyk7Ci0gICAgQ0ZSZWxlYXNlKGNmSlNFbXB0
eVN0cmluZyk7Ci0KLSAgICBDRlJlbGVhc2UoY2ZTdHJpbmcpOwotICAgIENGUmVsZWFzZShjZkVt
cHR5U3RyaW5nKTsKLSAgICAKICAgICBqc0dsb2JhbFZhbHVlID0gSlNPYmplY3RNYWtlKGNvbnRl
eHQsIE5VTEwsIE5VTEwpOwogICAgIG1ha2VHbG9iYWxOdW1iZXJWYWx1ZShjb250ZXh0KTsKICAg
ICBKU1ZhbHVlUHJvdGVjdChjb250ZXh0LCBqc0dsb2JhbFZhbHVlKTsKQEAgLTE3NzYsMTcgKzE4
MzAsNiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQogICAgIEpTT2JqZWN0U2V0
UHJvcGVydHkoY29udGV4dCwgZ2xvYmFsT2JqZWN0LCBzdHJpbmcsIGRlcml2ZWQyQ29uc3RydWN0
b3IsIGtKU1Byb3BlcnR5QXR0cmlidXRlTm9uZSwgTlVMTCk7CiAgICAgSlNTdHJpbmdSZWxlYXNl
KHN0cmluZyk7CiAKLSAgICBvID0gSlNPYmplY3RNYWtlKGNvbnRleHQsIE5VTEwsIE5VTEwpOwot
ICAgIEpTT2JqZWN0U2V0UHJvcGVydHkoY29udGV4dCwgbywganNPbmVJU3RyaW5nLCBKU1ZhbHVl
TWFrZU51bWJlcihjb250ZXh0LCAxKSwga0pTUHJvcGVydHlBdHRyaWJ1dGVOb25lLCBOVUxMKTsK
LSAgICBKU09iamVjdFNldFByb3BlcnR5KGNvbnRleHQsIG8sIGpzQ0ZJU3RyaW5nLCAgSlNWYWx1
ZU1ha2VOdW1iZXIoY29udGV4dCwgMSksIGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udEVudW0sIE5V
TEwpOwotICAgIEpTUHJvcGVydHlOYW1lQXJyYXlSZWYgbmFtZUFycmF5ID0gSlNPYmplY3RDb3B5
UHJvcGVydHlOYW1lcyhjb250ZXh0LCBvKTsKLSAgICBzaXplX3QgZXhwZWN0ZWRDb3VudCA9IEpT
UHJvcGVydHlOYW1lQXJyYXlHZXRDb3VudChuYW1lQXJyYXkpOwotICAgIHNpemVfdCBjb3VudDsK
LSAgICBmb3IgKGNvdW50ID0gMDsgY291bnQgPCBleHBlY3RlZENvdW50OyArK2NvdW50KQotICAg
ICAgICBKU1Byb3BlcnR5TmFtZUFycmF5R2V0TmFtZUF0SW5kZXgobmFtZUFycmF5LCBjb3VudCk7
Ci0gICAgSlNQcm9wZXJ0eU5hbWVBcnJheVJlbGVhc2UobmFtZUFycmF5KTsKLSAgICBBU1NFUlQo
Y291bnQgPT0gMSk7IC8vIGpzQ0ZTdHJpbmcgc2hvdWxkIG5vdCBiZSBlbnVtZXJhdGVkCi0KICAg
ICBKU1ZhbHVlUmVmIGFyZ3VtZW50c0FycmF5VmFsdWVzW10gPSB7IEpTVmFsdWVNYWtlTnVtYmVy
KGNvbnRleHQsIDEwKSwgSlNWYWx1ZU1ha2VOdW1iZXIoY29udGV4dCwgMjApIH07CiAgICAgbyA9
IEpTT2JqZWN0TWFrZUFycmF5KGNvbnRleHQsIHNpemVvZihhcmd1bWVudHNBcnJheVZhbHVlcykg
LyBzaXplb2YoSlNWYWx1ZVJlZiksIGFyZ3VtZW50c0FycmF5VmFsdWVzLCBOVUxMKTsKICAgICBz
dHJpbmcgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygibGVuZ3RoIik7CkBAIC0xOTEw
LDkgKzE5NTMsMTEgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKICAgICAgICAg
QVNTRVJUKCghc2NyaXB0T2JqZWN0KSAhPSAoIWVycm9yTWVzc2FnZSkpOwogICAgICAgICBpZiAo
IXNjcmlwdE9iamVjdCkgewogICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiBUZXN0IHNjcmlwdCBk
aWQgbm90IHBhcnNlXG5cdCVzOiVkXG5cdCIsIHNjcmlwdFBhdGgsIGVycm9yTGluZSk7CisjaWYg
VVNFKENGKQogICAgICAgICAgICAgQ0ZTdHJpbmdSZWYgZXJyb3JDRiA9IEpTU3RyaW5nQ29weUNG
U3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIGVycm9yTWVzc2FnZSk7CiAgICAgICAgICAgICBD
RlNob3coZXJyb3JDRik7CiAgICAgICAgICAgICBDRlJlbGVhc2UoZXJyb3JDRik7CisjZW5kaWYK
ICAgICAgICAgICAgIEpTU3RyaW5nUmVsZWFzZShlcnJvck1lc3NhZ2UpOwogICAgICAgICAgICAg
ZmFpbGVkID0gMTsKICAgICAgICAgfQpAQCAtMTkyNSw5ICsxOTcwLDExIEBAIGludCBtYWluKGlu
dCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgcHJpbnRm
KCJGQUlMOiBUZXN0IHNjcmlwdCByZXR1cm5lZCB1bmV4cGVjdGVkIHZhbHVlOlxuIik7CiAgICAg
ICAgICAgICBKU1N0cmluZ1JlZiBleGNlcHRpb25JU3RyaW5nID0gSlNWYWx1ZVRvU3RyaW5nQ29w
eShjb250ZXh0LCBleGNlcHRpb24sIE5VTEwpOworI2lmIFVTRShDRikKICAgICAgICAgICAgIENG
U3RyaW5nUmVmIGV4Y2VwdGlvbkNGID0gSlNTdHJpbmdDb3B5Q0ZTdHJpbmcoa0NGQWxsb2NhdG9y
RGVmYXVsdCwgZXhjZXB0aW9uSVN0cmluZyk7CiAgICAgICAgICAgICBDRlNob3coZXhjZXB0aW9u
Q0YpOwogICAgICAgICAgICAgQ0ZSZWxlYXNlKGV4Y2VwdGlvbkNGKTsKKyNlbmRpZgogICAgICAg
ICAgICAgSlNTdHJpbmdSZWxlYXNlKGV4Y2VwdGlvbklTdHJpbmcpOwogICAgICAgICAgICAgZmFp
bGVkID0gMTsKICAgICAgICAgfQpAQCAtMTk5NiwxMCArMjA0Myw2IEBAIGludCBtYWluKGludCBh
cmdjLCBjaGFyKiBhcmd2W10pCiAKICAgICBKU1N0cmluZ1JlbGVhc2UoanNFbXB0eUlTdHJpbmcp
OwogICAgIEpTU3RyaW5nUmVsZWFzZShqc09uZUlTdHJpbmcpOwotICAgIEpTU3RyaW5nUmVsZWFz
ZShqc0NGSVN0cmluZyk7Ci0gICAgSlNTdHJpbmdSZWxlYXNlKGpzQ0ZFbXB0eUlTdHJpbmcpOwot
ICAgIEpTU3RyaW5nUmVsZWFzZShqc0NGSVN0cmluZ1dpdGhDaGFyYWN0ZXJzKTsKLSAgICBKU1N0
cmluZ1JlbGVhc2UoanNDRkVtcHR5SVN0cmluZ1dpdGhDaGFyYWN0ZXJzKTsKICAgICBKU1N0cmlu
Z1JlbGVhc2UoZ29vZFN5bnRheCk7CiAgICAgSlNTdHJpbmdSZWxlYXNlKGJhZFN5bnRheCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9zaGVsbC9DTWFrZUxpc3RzLnR4dCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9zaGVsbC9DTWFrZUxpc3RzLnR4dAppbmRleCA0OTE1MmJj
M2Q0NWM3MDJiNDk5MmQ0MzVkY2E5ZDRlZWI3ZDVjMzc2Li5iZDcwNTg1Y2U3NGYzZDc0NmRlYTZl
NWMxODgzYTY1NjhkYzFkMTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvc2hl
bGwvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3NoZWxsL0NNYWtl
TGlzdHMudHh0CkBAIC01NSw0ICs1NSwzMCBAQCBpZiAoTk9UIFdJTjMyKQogICAgIGFkZF9leGVj
dXRhYmxlKHRlc3RhaXIgJHtURVNUQUlSX1NPVVJDRVN9KQogICAgIHRhcmdldF9saW5rX2xpYnJh
cmllcyh0ZXN0YWlyICR7SlNDX0xJQlJBUklFU30pCiAKKyAgICBzZXQoVEVTVEFQSV9TT1VSQ0VT
CisgICAgICAgIC4uL0FQSS90ZXN0cy9Db21wYXJlQW5kU3dhcFRlc3QuY3BwCisgICAgICAgIC4u
L0FQSS90ZXN0cy9DdXN0b21HbG9iYWxPYmplY3RDbGFzc1Rlc3QuYworICAgICAgICAuLi9BUEkv
dGVzdHMvRXhlY3V0aW9uVGltZUxpbWl0VGVzdC5jcHAKKyAgICAgICAgLi4vQVBJL3Rlc3RzL0Z1
bmN0aW9uT3ZlcnJpZGVzVGVzdC5jcHAKKyAgICAgICAgLi4vQVBJL3Rlc3RzL0dsb2JhbENvbnRl
eHRXaXRoRmluYWxpemVyVGVzdC5jcHAKKyAgICAgICAgLi4vQVBJL3Rlc3RzL0pTT05QYXJzZVRl
c3QuY3BwCisgICAgICAgIC4uL0FQSS90ZXN0cy9KU09iamVjdEdldFByb3h5VGFyZ2V0VGVzdC5j
cHAKKyAgICAgICAgLi4vQVBJL3Rlc3RzL011bHRpdGhyZWFkZWRNdWx0aVZNRXhlY3V0aW9uVGVz
dC5jcHAKKyAgICAgICAgLi4vQVBJL3Rlc3RzL1BpbmdQb25nU3RhY2tPdmVyZmxvd1Rlc3QuY3Bw
CisgICAgICAgIC4uL0FQSS90ZXN0cy9UeXBlZEFycmF5Q1Rlc3QuY3BwCisgICAgICAgIC4uL0FQ
SS90ZXN0cy90ZXN0YXBpLmMKKyAgICApCisgICAgYWRkX2V4ZWN1dGFibGUodGVzdGFwaSAke1RF
U1RBUElfU09VUkNFU30pCisgICAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKHRlc3RhcGkgJHtKU0Nf
TElCUkFSSUVTfSkKKworICAgIGZpbGUoQ09QWQorICAgICAgICAiJHtKQVZBU0NSSVBUQ09SRV9E
SVJ9L0FQSS90ZXN0cy90ZXN0YXBpLmpzIgorICAgICAgICBERVNUSU5BVElPTgorICAgICAgICAk
e0NNQUtFX1JVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWX0KKyAgICApCisgICAgZmlsZShDT1BZCisg
ICAgICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vQVBJL3Rlc3RzL3Rlc3RhcGktZnVuY3Rpb24t
b3ZlcnJpZGVzLmpzIgorICAgICAgICBERVNUSU5BVElPTgorICAgICAgICAke0NNQUtFX1JVTlRJ
TUVfT1VUUFVUX0RJUkVDVE9SWX0KKyAgICApCiBlbmRpZiAoKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
Q2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGEzYjhjNDdhY2YzYmY4NTNhN2U5MmFl
MDA5OGU3Yjg3MWI4YzY2ODkuLjQxZTNiZTBjMTVmNzY0MzVmYjAzYWYwYThkZWI4NTg5MzljMTIz
MTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNSBAQAorMjAxNy0wNS0xNSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdt
YWlsLmNvbT4KKworICAgICAgICBbSlNDXSBCdWlsZCB0ZXN0YXBpIGluIG5vbiBBcHBsZSBwb3J0
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcyMTAz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm93IHRl
c3RhcGkgaXMgZHJpdmVkIGluIEpTQ09ubHksIEdUSyBhbmQgV1BFIHBvcnRzIHRvby4KKworICAg
ICAgICAqIFNjcmlwdHMvYnVpbGQtanNjOgorICAgICAgICAqIFNjcmlwdHMvcnVuLWphdmFzY3Jp
cHRjb3JlLXRlc3RzOgorCiAyMDE3LTA1LTE0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CiAKICAgICAgICAgRHJvcCBQYXNzUmVmUHRyIGNsYXNzIGZyb20gV1RGCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL2J1aWxkLWpzYyBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQtanNjCmluZGV4
IDRlMTkxN2NkNWNjNzA2NGE5OTcxZmYxNDZmZjIwNjQ4ZjAzMTg1NzAuLmEwNTE0NGM5NTAyZmIw
MzNkZDk4MTVlMzFkNjU0YWRmN2UyZjI5N2EgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvYnVp
bGQtanNjCisrKyBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQtanNjCkBAIC0xMzcsNyArMTM3LDcgQEAg
aWYgKGlzQ01ha2VCdWlsZCgpKSB7CiAgICAgdW5sZXNzIChpc0FueVdpbmRvd3MoKSkgewogICAg
ICAgICAjIEJ5IGRlZmF1bHQgd2UgYnVpbGQgdXNpbmcgYWxsIG9mIHRoZSBhdmFpbGFibGUgQ1BV
cwogICAgICAgICAkbWFrZUFyZ3MgLj0gKCRtYWtlQXJncyA/ICIgIiA6ICIiKSAuICItaiIgLiBu
dW1iZXJPZkNQVXMoKSBpZiAkbWFrZUFyZ3MgIX4gLy1qXHMqXGQrLzsKLSAgICAgICAgJGJ1aWxk
VGFyZ2V0ID0gImpzYyB0ZXN0YjMgdGVzdGFpciAkbWFrZUFyZ3MiOworICAgICAgICAkYnVpbGRU
YXJnZXQgPSAianNjIHRlc3RiMyB0ZXN0YWlyIHRlc3RhcGkgJG1ha2VBcmdzIjsKICAgICB9IGVs
c2lmIChjYW5Vc2VOaW5qYSgpKSB7CiAgICAgICAgICRidWlsZFRhcmdldCAuPSAianNjIHRlc3Rh
cGkiOwogICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvcnVuLWphdmFzY3JpcHRjb3Jl
LXRlc3RzIGIvVG9vbHMvU2NyaXB0cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMKaW5kZXggMTYz
ODgwZjZmZTFhM2EzNWZkMWQwYjg4ZDE4ZmQ2ZDZhNmIwNDNkYi4uODM4MGUzNzk0MjRhN2FmNGRl
YjQyZWIxYjRjZTA2N2Q2OTBjMzA3MSAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9ydW4tamF2
YXNjcmlwdGNvcmUtdGVzdHMKKysrIGIvVG9vbHMvU2NyaXB0cy9ydW4tamF2YXNjcmlwdGNvcmUt
dGVzdHMKQEAgLTU2LDcgKzU2LDcgQEAgbXkgJG1lbW9yeUxpbWl0ZWQ7CiAKIG15ICRidWlsZEpT
QyA9IDE7CiAKLW15ICRydW5UZXN0QVBJID0gaXNBcHBsZUNvY29hV2ViS2l0KCkgfHwgaXNBcHBs
ZVdpbldlYktpdCgpIHx8IGlzV2luQ2Fpcm8oKTsKK215ICRydW5UZXN0QVBJID0gaXNBcHBsZUNv
Y29hV2ViS2l0KCkgfHwgaXNBcHBsZVdpbldlYktpdCgpIHx8IGlzV2luQ2Fpcm8oKSB8fCBpc0pT
Q09ubHkoKSB8fCBpc0dUSygpIHx8IGlzV1BFKCk7CiAKIG15ICRydW5KU0NTdHJlc3MgPSAxOwog
bXkgJHJ1bkpJVFN0cmVzc1Rlc3RzID0gMTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310121</attachid>
            <date>2017-05-15 01:58:30 -0700</date>
            <delta_ts>2017-05-15 02:08:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172103-20170515175829.patch</filename>
            <type>text/plain</type>
            <size>28004</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2ODUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NTU4MDYwYTc5YjBiNjlkZDExNGVkMTQxNmE3YWJlODNkNGUzNTE2Li41NjgyZDJjNTI2MjAxMjUw
OWU0ZmJhODZmMDc4ZDdlMjMyZWY2ODVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNiBAQAorMjAxNy0wNS0xNSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbSlNDXSBCdWlsZCB0ZXN0YXBpIGluIG5vbiBBcHBsZSBwb3J0cwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcyMTAzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRj
aCBtYWtlcyBKU0MgdGVzdGFwaSBidWlsZGFibGUgaW4gbm9uLUFwcGxlIHBvcnRzLgorICAgICAg
ICBXZSBpc29sYXRlIENGIHJlbGF0ZWQgdGVzdHMgaW4gdGVzdGFwaS5jLiBJZiB3ZSBkbyBub3Qg
dXNlCisgICAgICAgIENGLCB3ZSBpbmNsdWRlIEphdmFTY3JpcHQuaCBpbnN0ZWFkIG9mIEphdmFT
Y3JpcHRDb3JlLmguCisKKyAgICAgICAgQnkgcnVubmluZyB0aGUgdGVzdGFwaSBpbiBMaW51eCwg
d2UgZm91bmQgdGhhdCBjb250cmFpbnRzCisgICAgICAgIHRlc3QgaGF2ZSBhIGJ1ZzogSWYgY29u
c3RyYWludCBtYXJrZXIgcnVucyBhZnRlciBXZWFrUmVmcworICAgICAgICBhcmUgZGVzdHJveWVk
LCBpdCBhY2Nlc3NlcyBkZXN0cm95ZWQgV2Vha1JlZi4gVGhpcyBwYXRjaAorICAgICAgICBhbHNv
IGZpeGVzIGl0LgorCisgICAgICAgICogQVBJL3Rlc3RzL0N1cnJlbnRUaGlzSW5zaWRlQmxvY2tH
ZXR0ZXJUZXN0Lmg6CisgICAgICAgICogQVBJL3Rlc3RzL0N1c3RvbUdsb2JhbE9iamVjdENsYXNz
VGVzdC5jOgorICAgICAgICAqIEFQSS90ZXN0cy9FeGVjdXRpb25UaW1lTGltaXRUZXN0LmNwcDoK
KyAgICAgICAgKiBBUEkvdGVzdHMvRnVuY3Rpb25PdmVycmlkZXNUZXN0LmNwcDoKKyAgICAgICAg
KiBBUEkvdGVzdHMvR2xvYmFsQ29udGV4dFdpdGhGaW5hbGl6ZXJUZXN0LmNwcDoKKyAgICAgICAg
KiBBUEkvdGVzdHMvSlNPYmplY3RHZXRQcm94eVRhcmdldFRlc3QuY3BwOgorICAgICAgICAqIEFQ
SS90ZXN0cy9NdWx0aXRocmVhZGVkTXVsdGlWTUV4ZWN1dGlvblRlc3QuY3BwOgorICAgICAgICAq
IEFQSS90ZXN0cy9QaW5nUG9uZ1N0YWNrT3ZlcmZsb3dUZXN0LmNwcDoKKyAgICAgICAgKiBBUEkv
dGVzdHMvVHlwZWRBcnJheUNUZXN0LmNwcDoKKyAgICAgICAgKiBBUEkvdGVzdHMvdGVzdGFwaS5j
OgorICAgICAgICAoYXNzZXJ0RXF1YWxzQXNDaGFyYWN0ZXJzUHRyKToKKyAgICAgICAgKG1hcmtp
bmdDb25zdHJhaW50KToKKyAgICAgICAgKHRlc3RNYXJraW5nQ29uc3RyYWludHNBbmRIZWFwRmlu
YWxpemVycyk6CisgICAgICAgICh0ZXN0Q0ZTdHJpbmdzKToKKyAgICAgICAgKG1haW4pOgorICAg
ICAgICAqIHNoZWxsL0NNYWtlTGlzdHMudHh0OgorCiAyMDE3LTA1LTEzICBEYXZpZCBLaWx6ZXIg
IDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgVW51c2VkIGxhbWJkYSBjYXB0dXJlIGlu
IEpTQ29udGV4dEdyb3VwQWRkTWFya2luZ0NvbnN0cmFpbnQoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9DdXJyZW50VGhpc0luc2lkZUJsb2NrR2V0dGVyVGVz
dC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9DdXJyZW50VGhpc0luc2lkZUJs
b2NrR2V0dGVyVGVzdC5oCmluZGV4IGFiNjhmODA1NzJlNjQxMjZhYzYzZWQ1ZjY0NmFmNDhjMzI3
MmUwYjkuLjQ5OGUxNWZhOTI5YzkyOGM3NmNkYmYwMDdiNWRhMTY2OGZlZjk4NTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvQ3VycmVudFRoaXNJbnNpZGVCbG9j
a0dldHRlclRlc3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL0N1cnJl
bnRUaGlzSW5zaWRlQmxvY2tHZXR0ZXJUZXN0LmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdt
YSBvbmNlCiAKLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5oPgorI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHQuaD4KIAogI2lmIEpTQ19PQkpDX0FQSV9F
TkFCTEVECiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvQ3Vz
dG9tR2xvYmFsT2JqZWN0Q2xhc3NUZXN0LmMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rl
c3RzL0N1c3RvbUdsb2JhbE9iamVjdENsYXNzVGVzdC5jCmluZGV4IDYyZTYzOTc4ZWRlNmY3MDE1
YjM2MzNjNzdlNGExNmZjNWY2ZjcyZTQuLjk3NmE4ODFiM2JiYjg3ZGQ2MWU1MzlkMDAxYzYzZTVi
YTNkMDM2ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvQ3Vz
dG9tR2xvYmFsT2JqZWN0Q2xhc3NUZXN0LmMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS90ZXN0cy9DdXN0b21HbG9iYWxPYmplY3RDbGFzc1Rlc3QuYwpAQCAtMjYsOCArMjYsMTAgQEAK
ICNpbmNsdWRlICJDdXN0b21HbG9iYWxPYmplY3RDbGFzc1Rlc3QuaCIKIAogI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0pTT2JqZWN0UmVmUHJpdmF0ZS5oPgotI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dC5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8
c3RyaW5nLmg+CiAKIGV4dGVybiBib29sIGFzc2VydFRydWUoYm9vbCB2YWx1ZSwgY29uc3QgY2hh
ciogbWVzc2FnZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVz
dHMvRXhlY3V0aW9uVGltZUxpbWl0VGVzdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L3Rlc3RzL0V4ZWN1dGlvblRpbWVMaW1pdFRlc3QuY3BwCmluZGV4IGQ1ZTUzMjQzYjc4ZGY3NTEz
NDJhZDhkMzkwYTRiMDQxM2Q5ZWVmOWUuLjg1YzI3MmM0NDM3Njc3NTczZTBlNzUwYWFhYzU2Mzll
Y2U4NDJkN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvRXhl
Y3V0aW9uVGltZUxpbWl0VGVzdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90
ZXN0cy9FeGVjdXRpb25UaW1lTGltaXRUZXN0LmNwcApAQCAtMjgsNyArMjgsNyBAQAogCiAjaW5j
bHVkZSAiSW5pdGlhbGl6ZVRocmVhZGluZy5oIgogI2luY2x1ZGUgIkpTQ29udGV4dFJlZlByaXZh
dGUuaCIKLSNpbmNsdWRlICJKYXZhU2NyaXB0Q29yZS5oIgorI2luY2x1ZGUgIkphdmFTY3JpcHQu
aCIKICNpbmNsdWRlICJPcHRpb25zLmgiCiAjaW5jbHVkZSA8Y2hyb25vPgogI2luY2x1ZGUgPHd0
Zi9DdXJyZW50VGltZS5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90
ZXN0cy9GdW5jdGlvbk92ZXJyaWRlc1Rlc3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS90ZXN0cy9GdW5jdGlvbk92ZXJyaWRlc1Rlc3QuY3BwCmluZGV4IGEzMjVmODM5M2I4YTJiNGMw
YjMxMDk3NTJhNWM4MjE2ZWVkZDQzYmYuLmNmMGQ2ZGMwNDE5ZWJhOWU1YWZjNTBhOWU2NTQxNzkx
MWE0NTBkZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvRnVu
Y3Rpb25PdmVycmlkZXNUZXN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rl
c3RzL0Z1bmN0aW9uT3ZlcnJpZGVzVGVzdC5jcHAKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRl
ICJGdW5jdGlvbk92ZXJyaWRlcy5oIgogI2luY2x1ZGUgIkluaXRpYWxpemVUaHJlYWRpbmcuaCIK
ICNpbmNsdWRlICJKU0NvbnRleHRSZWZQcml2YXRlLmgiCi0jaW5jbHVkZSAiSmF2YVNjcmlwdENv
cmUuaCIKKyNpbmNsdWRlICJKYXZhU2NyaXB0LmgiCiAjaW5jbHVkZSAiT3B0aW9ucy5oIgogI2lu
Y2x1ZGUgPHN0cmluZz4KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90
ZXN0cy9HbG9iYWxDb250ZXh0V2l0aEZpbmFsaXplclRlc3QuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS90ZXN0cy9HbG9iYWxDb250ZXh0V2l0aEZpbmFsaXplclRlc3QuY3BwCmluZGV4
IDA0ODZhMjZjMDE4YjEwZmJmYTMwN2MzM2IwMjM4OGZlYjk1OWYwNDAuLjhkZDgyYjFjZWM4Yzkw
YWExMWQ5NDE3NTcyMDRkYmY5YTFjNWFkZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvdGVzdHMvR2xvYmFsQ29udGV4dFdpdGhGaW5hbGl6ZXJUZXN0LmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL0dsb2JhbENvbnRleHRXaXRoRmluYWxpemVy
VGVzdC5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJHbG9iYWxDb250ZXh0V2l0aEZpbmFsaXplclRlc3QuaCIKIAotI2luY2x1ZGUgIkphdmFTY3Jp
cHRDb3JlLmgiCisjaW5jbHVkZSAiSmF2YVNjcmlwdC5oIgogCiBzdGF0aWMgYm9vbCBmYWlsZWQg
PSB0cnVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL0pT
T2JqZWN0R2V0UHJveHlUYXJnZXRUZXN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
dGVzdHMvSlNPYmplY3RHZXRQcm94eVRhcmdldFRlc3QuY3BwCmluZGV4IGNmMGM1MzY3YmRkN2U1
MGYxMzllMmU0ZjE3OTYyN2MyMjM5YjJiNGMuLjI4MmY3MzY2ZjcyN2FjMzFkNWUwMGYxOGMyYmYy
YzNmNWM5M2Y0NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMv
SlNPYmplY3RHZXRQcm94eVRhcmdldFRlc3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvdGVzdHMvSlNPYmplY3RHZXRQcm94eVRhcmdldFRlc3QuY3BwCkBAIC0zMSw3ICszMSw3
IEBACiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTT2JqZWN0UmVmUHJpdmF0
ZS5oIgogI2luY2x1ZGUgIkpTUHJveHkuaCIKLSNpbmNsdWRlICJKYXZhU2NyaXB0Q29yZS5oIgor
I2luY2x1ZGUgIkphdmFTY3JpcHQuaCIKICNpbmNsdWRlICJPcHRpb25zLmgiCiAjaW5jbHVkZSAi
UHJveHlPYmplY3QuaCIKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90
ZXN0cy9NdWx0aXRocmVhZGVkTXVsdGlWTUV4ZWN1dGlvblRlc3QuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS90ZXN0cy9NdWx0aXRocmVhZGVkTXVsdGlWTUV4ZWN1dGlvblRlc3QuY3Bw
CmluZGV4IGIxOTUxYTBhY2IwOTE5NWRmZjI0M2Y1ZDgyMmMwMjA2Nzc1NjdhOTUuLmI3OTMyNTg0
YjE1OGJmMjg2YWE0Y2FkNjJiMGJhNDIzNTUyNjg2ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvdGVzdHMvTXVsdGl0aHJlYWRlZE11bHRpVk1FeGVjdXRpb25UZXN0LmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL011bHRpdGhyZWFkZWRNdWx0
aVZNRXhlY3V0aW9uVGVzdC5jcHAKQEAgLTI4LDcgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkluaXRp
YWxpemVUaHJlYWRpbmcuaCIKICNpbmNsdWRlICJKU0NvbnRleHRSZWZQcml2YXRlLmgiCi0jaW5j
bHVkZSAiSmF2YVNjcmlwdENvcmUuaCIKKyNpbmNsdWRlICJKYXZhU2NyaXB0LmgiCiAjaW5jbHVk
ZSAiT3B0aW9ucy5oIgogI2luY2x1ZGUgPG11dGV4PgogI2luY2x1ZGUgPHN0cmluZz4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvUGluZ1BvbmdTdGFja092ZXJm
bG93VGVzdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL1BpbmdQb25nU3Rh
Y2tPdmVyZmxvd1Rlc3QuY3BwCmluZGV4IGVmNGI5MTRjMTFhMzk1YjViNmJmYTk1ZTMxYmE5MjFj
ODc4YzgwOTQuLjIzNWRjZWU1N2Q1OWU0NGQyOGVmM2JjMzRmMjgyNzI1ZTU3MzI1YmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvUGluZ1BvbmdTdGFja092ZXJm
bG93VGVzdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9QaW5nUG9u
Z1N0YWNrT3ZlcmZsb3dUZXN0LmNwcApAQCAtMjgsNyArMjgsNyBAQAogCiAjaW5jbHVkZSAiSW5p
dGlhbGl6ZVRocmVhZGluZy5oIgogI2luY2x1ZGUgIkpTQ29udGV4dFJlZlByaXZhdGUuaCIKLSNp
bmNsdWRlICJKYXZhU2NyaXB0Q29yZS5oIgorI2luY2x1ZGUgIkphdmFTY3JpcHQuaCIKICNpbmNs
dWRlICJPcHRpb25zLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL1R5cGVkQXJyYXlDVGVz
dC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL1R5cGVkQXJyYXlDVGVzdC5j
cHAKaW5kZXggOGVjOGNkZDVkYzJhMGE3ODY3OGQ4NGIzYzVmYjQ1MmM1ZTMxYTdlMi4uNDM4YWZl
OWE2NDMxMzE5MGJkOGFlOTY4MzNjNjBlZmIzNDkxN2IzYyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9UeXBlZEFycmF5Q1Rlc3QuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvVHlwZWRBcnJheUNUZXN0LmNwcApAQCAtMjYsNyArMjYs
OSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlR5cGVkQXJyYXlDVGVzdC5oIgog
Ci0jaW5jbHVkZSAiSmF2YVNjcmlwdENvcmUuaCIKKyNpbmNsdWRlICJKYXZhU2NyaXB0LmgiCisj
aW5jbHVkZSA8bGltaXRzLmg+CisjaW5jbHVkZSA8bWF0aC5oPgogI2luY2x1ZGUgPHd0Zi9Bc3Nl
cnRpb25zLmg+CiAKIGV4dGVybiAiQyIgdm9pZCBKU1N5bmNocm9ub3VzR2FyYmFnZUNvbGxlY3RG
b3JEZWJ1Z2dpbmcoSlNDb250ZXh0UmVmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0
cy90ZXN0YXBpLmMKaW5kZXggNDI2OGQwYzAyNGFiN2Q2ZDdiZTE3MTI0Y2Y0M2FmMjA1M2E0MDE5
Yy4uNDZhYTc5NjAyNjY3YTZkMzVhNTIxZjg4ZjQ4OGYwMmRkYjExZTgwNyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLmMKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLmMKQEAgLTI1LDcgKzI1LDEyIEBACiAKICNp
bmNsdWRlIDx3dGYvUGxhdGZvcm0uaD4KIAorI2lmIFVTRShDRikKICNpbmNsdWRlICJKYXZhU2Ny
aXB0Q29yZS5oIgorI2Vsc2UKKyNpbmNsdWRlICJKYXZhU2NyaXB0LmgiCisjZW5kaWYKKwogI2lu
Y2x1ZGUgIkpTQmFzZVByaXZhdGUuaCIKICNpbmNsdWRlICJKU0NvbnRleHRSZWZQcml2YXRlLmgi
CiAjaW5jbHVkZSAiSlNIZWFwRmluYWxpemVyUHJpdmF0ZS5oIgpAQCAtMzUsNiArNDAsMTAgQEAK
ICNpbmNsdWRlICJKU1N0cmluZ1JlZlByaXZhdGUuaCIKICNpbmNsdWRlICJKU1dlYWtQcml2YXRl
LmgiCiAjaW5jbHVkZSA8bWF0aC5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3Rk
bGliLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8dGltZS5oPgogI2RlZmluZSBB
U1NFUlRfRElTQUJMRUQgMAogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAKQEAgLTExMyw2
ICsxMjIsNyBAQCBzdGF0aWMgdm9pZCBhc3NlcnRFcXVhbHNBc0NoYXJhY3RlcnNQdHIoSlNWYWx1
ZVJlZiB2YWx1ZSwgY29uc3QgY2hhciogZXhwZWN0ZWRWYQogewogICAgIEpTU3RyaW5nUmVmIHZh
bHVlQXNTdHJpbmcgPSBKU1ZhbHVlVG9TdHJpbmdDb3B5KGNvbnRleHQsIHZhbHVlLCBOVUxMKTsK
IAorI2lmIFVTRShDRikKICAgICBzaXplX3QganNMZW5ndGggPSBKU1N0cmluZ0dldExlbmd0aCh2
YWx1ZUFzU3RyaW5nKTsKICAgICBjb25zdCBKU0NoYXIqIGpzQnVmZmVyID0gSlNTdHJpbmdHZXRD
aGFyYWN0ZXJzUHRyKHZhbHVlQXNTdHJpbmcpOwogCkBAIC0xMzksNiArMTQ5LDE4IEBAIHN0YXRp
YyB2b2lkIGFzc2VydEVxdWFsc0FzQ2hhcmFjdGVyc1B0cihKU1ZhbHVlUmVmIHZhbHVlLCBjb25z
dCBjaGFyKiBleHBlY3RlZFZhCiAgICAgfQogCiAgICAgZnJlZShjZkJ1ZmZlcik7CisjZWxzZQor
ICAgIHNpemVfdCBidWZmZXJTaXplID0gSlNTdHJpbmdHZXRNYXhpbXVtVVRGOENTdHJpbmdTaXpl
KHZhbHVlQXNTdHJpbmcpOworICAgIGNoYXIqIGJ1ZmZlciA9IChjaGFyKiltYWxsb2MoYnVmZmVy
U2l6ZSk7CisgICAgSlNTdHJpbmdHZXRVVEY4Q1N0cmluZyh2YWx1ZUFzU3RyaW5nLCBidWZmZXIs
IGJ1ZmZlclNpemUpOworCisgICAgaWYgKHN0cmNtcChidWZmZXIsIGV4cGVjdGVkVmFsdWUpKSB7
CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiYXNzZXJ0RXF1YWxzQXNDaGFyYWN0ZXJzUHRyIGZh
aWxlZDoganNCdWZmZXIgIT0gY2ZCdWZmZXJcbiIpOworICAgICAgICBmYWlsZWQgPSAxOworICAg
IH0KKworICAgIGZyZWUoYnVmZmVyKTsKKyNlbmRpZgogICAgIEpTU3RyaW5nUmVsZWFzZSh2YWx1
ZUFzU3RyaW5nKTsKIH0KIApAQCAtMTEzOCw5ICsxMTYwLDEyIEBAIHN0YXRpYyB2b2lkIG1hcmtp
bmdDb25zdHJhaW50KEpTTWFya2VyUmVmIG1hcmtlciwgdm9pZCAqdXNlckRhdGEpCiAgICAgd2Vh
a1JlZnMgPSAoSlNXZWFrUmVmKil1c2VyRGF0YTsKICAgICAKICAgICBmb3IgKGkgPSAwOyBpIDwg
bnVtV2Vha1JlZnM7IGkgKz0gMikgewotICAgICAgICBKU09iamVjdFJlZiBvYmplY3QgPSBKU1dl
YWtHZXRPYmplY3Qod2Vha1JlZnNbaV0pOwotICAgICAgICBtYXJrZXItPk1hcmsobWFya2VyLCBv
YmplY3QpOwotICAgICAgICBhc3NlcnRUcnVlKG1hcmtlci0+SXNNYXJrZWQobWFya2VyLCBvYmpl
Y3QpLCAiQSBtYXJrZWQgb2JqZWN0IGlzIG1hcmtlZCIpOworICAgICAgICBKU1dlYWtSZWYgd2Vh
a1JlZiA9IHdlYWtSZWZzW2ldOworICAgICAgICBpZiAod2Vha1JlZikgeworICAgICAgICAgICAg
SlNPYmplY3RSZWYgb2JqZWN0ID0gSlNXZWFrR2V0T2JqZWN0KHdlYWtSZWZzW2ldKTsKKyAgICAg
ICAgICAgIG1hcmtlci0+TWFyayhtYXJrZXIsIG9iamVjdCk7CisgICAgICAgICAgICBhc3NlcnRU
cnVlKG1hcmtlci0+SXNNYXJrZWQobWFya2VyLCBvYmplY3QpLCAiQSBtYXJrZWQgb2JqZWN0IGlz
IG1hcmtlZCIpOworICAgICAgICB9CiAgICAgfQogfQogCkBAIC0xMTkwLDggKzEyMTUsMTEgQEAg
c3RhdGljIHZvaWQgdGVzdE1hcmtpbmdDb25zdHJhaW50c0FuZEhlYXBGaW5hbGl6ZXJzKHZvaWQp
CiAgICAgCiAgICAgYXNzZXJ0VHJ1ZShkZWFkQ291bnQgIT0gMCwgIkF0IGxlYXN0IHNvbWUgb2Jq
ZWN0cyBkaWVkIik7CiAgICAgCi0gICAgZm9yIChpID0gbnVtV2Vha1JlZnM7IGktLTspCi0gICAg
ICAgIEpTV2Vha1JlbGVhc2UoZ3JvdXAsIHdlYWtSZWZzW2ldKTsKKyAgICBmb3IgKGkgPSBudW1X
ZWFrUmVmczsgaS0tOykgeworICAgICAgICBKU1dlYWtSZWYgd2Vha1JlZiA9IHdlYWtSZWZzW2ld
OworICAgICAgICB3ZWFrUmVmc1tpXSA9IE5VTEw7CisgICAgICAgIEpTV2Vha1JlbGVhc2UoZ3Jv
dXAsIHdlYWtSZWYpOworICAgIH0KICAgICAKICAgICBkaWRSdW5IZWFwRmluYWxpemVyID0gZmFs
c2U7CiAgICAgSlNTeW5jaHJvbm91c0dhcmJhZ2VDb2xsZWN0Rm9yRGVidWdnaW5nKGNvbnRleHQp
OwpAQCAtMTIwOCw2ICsxMjM2LDEwNSBAQCBzdGF0aWMgdm9pZCB0ZXN0TWFya2luZ0NvbnN0cmFp
bnRzQW5kSGVhcEZpbmFsaXplcnModm9pZCkKICAgICBwcmludGYoIlBBU1M6IE1hcmtpbmcgQ29u
c3RyYWludHMgYW5kIEhlYXAgRmluYWxpemVycy5cbiIpOwogfQogCisjaWYgVVNFKENGKQorc3Rh
dGljIHZvaWQgdGVzdENGU3RyaW5ncyh2b2lkKQoreworICAgIEpTR2xvYmFsQ29udGV4dFJlZiBj
b250ZXh0ID0gSlNHbG9iYWxDb250ZXh0Q3JlYXRlKDApOworCisgICAgVW5pQ2hhciBzaW5nbGVV
bmlDaGFyID0gNjU7IC8vIENhcGl0YWwgQQorICAgIENGTXV0YWJsZVN0cmluZ1JlZiBjZlN0cmlu
ZyA9IENGU3RyaW5nQ3JlYXRlTXV0YWJsZVdpdGhFeHRlcm5hbENoYXJhY3RlcnNOb0NvcHkoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgJnNpbmdsZVVuaUNoYXIsIDEsIDEsIGtDRkFsbG9jYXRvck51bGwp
OworCisgICAgSlNTdHJpbmdSZWYganNDRklTdHJpbmcgPSBKU1N0cmluZ0NyZWF0ZVdpdGhDRlN0
cmluZyhjZlN0cmluZyk7CisgICAgSlNWYWx1ZVJlZiBqc0NGU3RyaW5nID0gSlNWYWx1ZU1ha2VT
dHJpbmcoY29udGV4dCwganNDRklTdHJpbmcpOworCisgICAgQ0ZTdHJpbmdSZWYgY2ZFbXB0eVN0
cmluZyA9IENGU3RyaW5nQ3JlYXRlV2l0aENTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgIiIs
IGtDRlN0cmluZ0VuY29kaW5nVVRGOCk7CisKKyAgICBKU1N0cmluZ1JlZiBqc0NGRW1wdHlJU3Ry
aW5nID0gSlNTdHJpbmdDcmVhdGVXaXRoQ0ZTdHJpbmcoY2ZFbXB0eVN0cmluZyk7CisgICAgSlNW
YWx1ZVJlZiBqc0NGRW1wdHlTdHJpbmcgPSBKU1ZhbHVlTWFrZVN0cmluZyhjb250ZXh0LCBqc0NG
RW1wdHlJU3RyaW5nKTsKKworICAgIENGSW5kZXggY2ZTdHJpbmdMZW5ndGggPSBDRlN0cmluZ0dl
dExlbmd0aChjZlN0cmluZyk7CisgICAgVW5pQ2hhciogYnVmZmVyID0gKFVuaUNoYXIqKW1hbGxv
YyhjZlN0cmluZ0xlbmd0aCAqIHNpemVvZihVbmlDaGFyKSk7CisgICAgQ0ZTdHJpbmdHZXRDaGFy
YWN0ZXJzKGNmU3RyaW5nLCBDRlJhbmdlTWFrZSgwLCBjZlN0cmluZ0xlbmd0aCksIGJ1ZmZlcik7
CisgICAgSlNTdHJpbmdSZWYganNDRklTdHJpbmdXaXRoQ2hhcmFjdGVycyA9IEpTU3RyaW5nQ3Jl
YXRlV2l0aENoYXJhY3RlcnMoKEpTQ2hhciopYnVmZmVyLCBjZlN0cmluZ0xlbmd0aCk7CisgICAg
SlNWYWx1ZVJlZiBqc0NGU3RyaW5nV2l0aENoYXJhY3RlcnMgPSBKU1ZhbHVlTWFrZVN0cmluZyhj
b250ZXh0LCBqc0NGSVN0cmluZ1dpdGhDaGFyYWN0ZXJzKTsKKworICAgIEpTU3RyaW5nUmVmIGpz
Q0ZFbXB0eUlTdHJpbmdXaXRoQ2hhcmFjdGVycyA9IEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3Rl
cnMoKEpTQ2hhciopYnVmZmVyLCBDRlN0cmluZ0dldExlbmd0aChjZkVtcHR5U3RyaW5nKSk7Cisg
ICAgZnJlZShidWZmZXIpOworICAgIEpTVmFsdWVSZWYganNDRkVtcHR5U3RyaW5nV2l0aENoYXJh
Y3RlcnMgPSBKU1ZhbHVlTWFrZVN0cmluZyhjb250ZXh0LCBqc0NGRW1wdHlJU3RyaW5nV2l0aENo
YXJhY3RlcnMpOworCisgICAgQVNTRVJUKEpTVmFsdWVHZXRUeXBlKGNvbnRleHQsIGpzQ0ZTdHJp
bmcpID09IGtKU1R5cGVTdHJpbmcpOworICAgIEFTU0VSVChKU1ZhbHVlR2V0VHlwZShjb250ZXh0
LCBqc0NGU3RyaW5nV2l0aENoYXJhY3RlcnMpID09IGtKU1R5cGVTdHJpbmcpOworICAgIEFTU0VS
VChKU1ZhbHVlR2V0VHlwZShjb250ZXh0LCBqc0NGRW1wdHlTdHJpbmcpID09IGtKU1R5cGVTdHJp
bmcpOworICAgIEFTU0VSVChKU1ZhbHVlR2V0VHlwZShjb250ZXh0LCBqc0NGRW1wdHlTdHJpbmdX
aXRoQ2hhcmFjdGVycykgPT0ga0pTVHlwZVN0cmluZyk7CisKKyAgICBKU1N0cmluZ1JlZiBlbXB0
eVN0cmluZyA9IEpTU3RyaW5nQ3JlYXRlV2l0aENGU3RyaW5nKENGU1RSKCIiKSk7CisgICAgY29u
c3QgSlNDaGFyKiBjaGFyYWN0ZXJzID0gSlNTdHJpbmdHZXRDaGFyYWN0ZXJzUHRyKGVtcHR5U3Ry
aW5nKTsKKyAgICBpZiAoIWNoYXJhY3RlcnMpIHsKKyAgICAgICAgcHJpbnRmKCJGQUlMOiBSZXR1
cm5lZCBudWxsIHdoZW4gYWNjZXNzaW5nIGNoYXJhY3RlciBwb2ludGVyIG9mIGFuIGVtcHR5IFN0
cmluZy5cbiIpOworICAgICAgICBmYWlsZWQgPSAxOworICAgIH0gZWxzZQorICAgICAgICBwcmlu
dGYoIlBBU1M6IHJldHVybmVkIGVtcHR5IHdoZW4gYWNjZXNzaW5nIGNoYXJhY3RlciBwb2ludGVy
IG9mIGFuIGVtcHR5IFN0cmluZy5cbiIpOworCisgICAgc2l6ZV90IGxlbmd0aCA9IEpTU3RyaW5n
R2V0TGVuZ3RoKGVtcHR5U3RyaW5nKTsKKyAgICBpZiAobGVuZ3RoKSB7CisgICAgICAgIHByaW50
ZigiRkFJTDogRGlkbid0IHJldHVybiAwIGxlbmd0aCBmb3IgZW1wdHkgU3RyaW5nLlxuIik7Cisg
ICAgICAgIGZhaWxlZCA9IDE7CisgICAgfSBlbHNlCisgICAgICAgIHByaW50ZigiUEFTUzogcmV0
dXJuZWQgMCBsZW5ndGggZm9yIGVtcHR5IFN0cmluZy5cbiIpOworICAgIEpTU3RyaW5nUmVsZWFz
ZShlbXB0eVN0cmluZyk7CisKKyAgICBhc3NlcnRFcXVhbHNBc0Jvb2xlYW4oanNDRlN0cmluZywg
dHJ1ZSk7CisgICAgYXNzZXJ0RXF1YWxzQXNCb29sZWFuKGpzQ0ZTdHJpbmdXaXRoQ2hhcmFjdGVy
cywgdHJ1ZSk7CisgICAgYXNzZXJ0RXF1YWxzQXNCb29sZWFuKGpzQ0ZFbXB0eVN0cmluZywgZmFs
c2UpOworICAgIGFzc2VydEVxdWFsc0FzQm9vbGVhbihqc0NGRW1wdHlTdHJpbmdXaXRoQ2hhcmFj
dGVycywgZmFsc2UpOworCisgICAgYXNzZXJ0RXF1YWxzQXNOdW1iZXIoanNDRlN0cmluZywgbmFu
KCIiKSk7CisgICAgYXNzZXJ0RXF1YWxzQXNOdW1iZXIoanNDRlN0cmluZ1dpdGhDaGFyYWN0ZXJz
LCBuYW4oIiIpKTsKKyAgICBhc3NlcnRFcXVhbHNBc051bWJlcihqc0NGRW1wdHlTdHJpbmcsIDAp
OworICAgIGFzc2VydEVxdWFsc0FzTnVtYmVyKGpzQ0ZFbXB0eVN0cmluZ1dpdGhDaGFyYWN0ZXJz
LCAwKTsKKyAgICBBU1NFUlQoc2l6ZW9mKEpTQ2hhcikgPT0gc2l6ZW9mKFVuaUNoYXIpKTsKKwor
ICAgIGFzc2VydEVxdWFsc0FzQ2hhcmFjdGVyc1B0cihqc0NGU3RyaW5nLCAiQSIpOworICAgIGFz
c2VydEVxdWFsc0FzQ2hhcmFjdGVyc1B0cihqc0NGU3RyaW5nV2l0aENoYXJhY3RlcnMsICJBIik7
CisgICAgYXNzZXJ0RXF1YWxzQXNDaGFyYWN0ZXJzUHRyKGpzQ0ZFbXB0eVN0cmluZywgIiIpOwor
ICAgIGFzc2VydEVxdWFsc0FzQ2hhcmFjdGVyc1B0cihqc0NGRW1wdHlTdHJpbmdXaXRoQ2hhcmFj
dGVycywgIiIpOworCisgICAgYXNzZXJ0RXF1YWxzQXNVVEY4U3RyaW5nKGpzQ0ZTdHJpbmcsICJB
Iik7CisgICAgYXNzZXJ0RXF1YWxzQXNVVEY4U3RyaW5nKGpzQ0ZTdHJpbmdXaXRoQ2hhcmFjdGVy
cywgIkEiKTsKKyAgICBhc3NlcnRFcXVhbHNBc1VURjhTdHJpbmcoanNDRkVtcHR5U3RyaW5nLCAi
Iik7CisgICAgYXNzZXJ0RXF1YWxzQXNVVEY4U3RyaW5nKGpzQ0ZFbXB0eVN0cmluZ1dpdGhDaGFy
YWN0ZXJzLCAiIik7CisKKyAgICBDRlN0cmluZ1JlZiBjZkpTU3RyaW5nID0gSlNTdHJpbmdDb3B5
Q0ZTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwganNDRklTdHJpbmcpOworICAgIENGU3RyaW5n
UmVmIGNmSlNFbXB0eVN0cmluZyA9IEpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIGpzQ0ZFbXB0eUlTdHJpbmcpOworICAgIEFTU0VSVChDRkVxdWFsKGNmSlNTdHJpbmcs
IGNmU3RyaW5nKSk7CisgICAgQVNTRVJUKENGRXF1YWwoY2ZKU0VtcHR5U3RyaW5nLCBjZkVtcHR5
U3RyaW5nKSk7CisgICAgQ0ZSZWxlYXNlKGNmSlNTdHJpbmcpOworICAgIENGUmVsZWFzZShjZkpT
RW1wdHlTdHJpbmcpOworCisgICAgSlNPYmplY3RSZWYgbyA9IEpTT2JqZWN0TWFrZShjb250ZXh0
LCBOVUxMLCBOVUxMKTsKKyAgICBKU1N0cmluZ1JlZiBqc09uZUlTdHJpbmcgPSBKU1N0cmluZ0Ny
ZWF0ZVdpdGhVVEY4Q1N0cmluZygiMSIpOworICAgIEpTT2JqZWN0U2V0UHJvcGVydHkoY29udGV4
dCwgbywganNPbmVJU3RyaW5nLCBKU1ZhbHVlTWFrZU51bWJlcihjb250ZXh0LCAxKSwga0pTUHJv
cGVydHlBdHRyaWJ1dGVOb25lLCBOVUxMKTsKKyAgICBKU09iamVjdFNldFByb3BlcnR5KGNvbnRl
eHQsIG8sIGpzQ0ZJU3RyaW5nLCAgSlNWYWx1ZU1ha2VOdW1iZXIoY29udGV4dCwgMSksIGtKU1By
b3BlcnR5QXR0cmlidXRlRG9udEVudW0sIE5VTEwpOworICAgIEpTUHJvcGVydHlOYW1lQXJyYXlS
ZWYgbmFtZUFycmF5ID0gSlNPYmplY3RDb3B5UHJvcGVydHlOYW1lcyhjb250ZXh0LCBvKTsKKyAg
ICBzaXplX3QgZXhwZWN0ZWRDb3VudCA9IEpTUHJvcGVydHlOYW1lQXJyYXlHZXRDb3VudChuYW1l
QXJyYXkpOworICAgIHNpemVfdCBjb3VudDsKKyAgICBmb3IgKGNvdW50ID0gMDsgY291bnQgPCBl
eHBlY3RlZENvdW50OyArK2NvdW50KQorICAgICAgICBKU1Byb3BlcnR5TmFtZUFycmF5R2V0TmFt
ZUF0SW5kZXgobmFtZUFycmF5LCBjb3VudCk7CisgICAgSlNQcm9wZXJ0eU5hbWVBcnJheVJlbGVh
c2UobmFtZUFycmF5KTsKKyAgICBBU1NFUlQoY291bnQgPT0gMSk7IC8vIGpzQ0ZTdHJpbmcgc2hv
dWxkIG5vdCBiZSBlbnVtZXJhdGVkCisKKyAgICBKU1N0cmluZ1JlbGVhc2UoanNPbmVJU3RyaW5n
KTsKKyAgICBKU1N0cmluZ1JlbGVhc2UoanNDRklTdHJpbmcpOworICAgIEpTU3RyaW5nUmVsZWFz
ZShqc0NGRW1wdHlJU3RyaW5nKTsKKyAgICBKU1N0cmluZ1JlbGVhc2UoanNDRklTdHJpbmdXaXRo
Q2hhcmFjdGVycyk7CisgICAgSlNTdHJpbmdSZWxlYXNlKGpzQ0ZFbXB0eUlTdHJpbmdXaXRoQ2hh
cmFjdGVycyk7CisgICAgQ0ZSZWxlYXNlKGNmU3RyaW5nKTsKKyAgICBDRlJlbGVhc2UoY2ZFbXB0
eVN0cmluZyk7CisKKyAgICBKU0dsb2JhbENvbnRleHRSZWxlYXNlKGNvbnRleHQpOworfQorI2Vu
ZGlmCisKIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiB7CiAjaWYgT1MoV0lORE9X
UykKQEAgLTEyNDAsNiArMTM2NywxMCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltd
KQogCiAgICAgdGVzdE1hcmtpbmdDb25zdHJhaW50c0FuZEhlYXBGaW5hbGl6ZXJzKCk7CiAKKyNp
ZiBVU0UoQ0YpCisgICAgdGVzdENGU3RyaW5ncygpOworI2VuZGlmCisKICAgICBKU0NsYXNzRGVm
aW5pdGlvbiBnbG9iYWxPYmplY3RDbGFzc0RlZmluaXRpb24gPSBrSlNDbGFzc0RlZmluaXRpb25F
bXB0eTsKICAgICBnbG9iYWxPYmplY3RDbGFzc0RlZmluaXRpb24uaW5pdGlhbGl6ZSA9IGdsb2Jh
bE9iamVjdF9pbml0aWFsaXplOwogICAgIGdsb2JhbE9iamVjdENsYXNzRGVmaW5pdGlvbi5zdGF0
aWNWYWx1ZXMgPSBnbG9iYWxPYmplY3Rfc3RhdGljVmFsdWVzOwpAQCAtMTI4NSwzNCArMTQxNiw2
IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAgSlNTdHJpbmdSZWYganNP
bmVJU3RyaW5nID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIjEiKTsKICAgICBKU1Zh
bHVlUmVmIGpzT25lU3RyaW5nID0gSlNWYWx1ZU1ha2VTdHJpbmcoY29udGV4dCwganNPbmVJU3Ry
aW5nKTsKIAotICAgIFVuaUNoYXIgc2luZ2xlVW5pQ2hhciA9IDY1OyAvLyBDYXBpdGFsIEEKLSAg
ICBDRk11dGFibGVTdHJpbmdSZWYgY2ZTdHJpbmcgPSAKLSAgICAgICAgQ0ZTdHJpbmdDcmVhdGVN
dXRhYmxlV2l0aEV4dGVybmFsQ2hhcmFjdGVyc05vQ29weShrQ0ZBbGxvY2F0b3JEZWZhdWx0LAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICZzaW5nbGVVbmlDaGFyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrQ0ZBbGxvY2F0b3JOdWxsKTsKLQotICAgIEpT
U3RyaW5nUmVmIGpzQ0ZJU3RyaW5nID0gSlNTdHJpbmdDcmVhdGVXaXRoQ0ZTdHJpbmcoY2ZTdHJp
bmcpOwotICAgIEpTVmFsdWVSZWYganNDRlN0cmluZyA9IEpTVmFsdWVNYWtlU3RyaW5nKGNvbnRl
eHQsIGpzQ0ZJU3RyaW5nKTsKLSAgICAKLSAgICBDRlN0cmluZ1JlZiBjZkVtcHR5U3RyaW5nID0g
Q0ZTdHJpbmdDcmVhdGVXaXRoQ1N0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAiIiwga0NGU3Ry
aW5nRW5jb2RpbmdVVEY4KTsKLSAgICAKLSAgICBKU1N0cmluZ1JlZiBqc0NGRW1wdHlJU3RyaW5n
ID0gSlNTdHJpbmdDcmVhdGVXaXRoQ0ZTdHJpbmcoY2ZFbXB0eVN0cmluZyk7Ci0gICAgSlNWYWx1
ZVJlZiBqc0NGRW1wdHlTdHJpbmcgPSBKU1ZhbHVlTWFrZVN0cmluZyhjb250ZXh0LCBqc0NGRW1w
dHlJU3RyaW5nKTsKLQotICAgIENGSW5kZXggY2ZTdHJpbmdMZW5ndGggPSBDRlN0cmluZ0dldExl
bmd0aChjZlN0cmluZyk7Ci0gICAgVW5pQ2hhciogYnVmZmVyID0gKFVuaUNoYXIqKW1hbGxvYyhj
ZlN0cmluZ0xlbmd0aCAqIHNpemVvZihVbmlDaGFyKSk7Ci0gICAgQ0ZTdHJpbmdHZXRDaGFyYWN0
ZXJzKGNmU3RyaW5nLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgQ0ZSYW5nZU1ha2UoMCwg
Y2ZTdHJpbmdMZW5ndGgpLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyKTsKLSAg
ICBKU1N0cmluZ1JlZiBqc0NGSVN0cmluZ1dpdGhDaGFyYWN0ZXJzID0gSlNTdHJpbmdDcmVhdGVX
aXRoQ2hhcmFjdGVycygoSlNDaGFyKilidWZmZXIsIGNmU3RyaW5nTGVuZ3RoKTsKLSAgICBKU1Zh
bHVlUmVmIGpzQ0ZTdHJpbmdXaXRoQ2hhcmFjdGVycyA9IEpTVmFsdWVNYWtlU3RyaW5nKGNvbnRl
eHQsIGpzQ0ZJU3RyaW5nV2l0aENoYXJhY3RlcnMpOwotICAgIAotICAgIEpTU3RyaW5nUmVmIGpz
Q0ZFbXB0eUlTdHJpbmdXaXRoQ2hhcmFjdGVycyA9IEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3Rl
cnMoKEpTQ2hhciopYnVmZmVyLCBDRlN0cmluZ0dldExlbmd0aChjZkVtcHR5U3RyaW5nKSk7Ci0g
ICAgZnJlZShidWZmZXIpOwotICAgIEpTVmFsdWVSZWYganNDRkVtcHR5U3RyaW5nV2l0aENoYXJh
Y3RlcnMgPSBKU1ZhbHVlTWFrZVN0cmluZyhjb250ZXh0LCBqc0NGRW1wdHlJU3RyaW5nV2l0aENo
YXJhY3RlcnMpOwotCiAgICAgSlNDaGFyIGNvbnN0YW50U3RyaW5nW10gPSB7ICdIJywgJ2UnLCAn
bCcsICdsJywgJ28nLCB9OwogICAgIEpTU3RyaW5nUmVmIGNvbnN0YW50U3RyaW5nUmVmID0gSlNT
dHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVyc05vQ29weShjb25zdGFudFN0cmluZywgc2l6ZW9mKGNv
bnN0YW50U3RyaW5nKSAvIHNpemVvZihjb25zdGFudFN0cmluZ1swXSkpOwogICAgIEFTU0VSVChK
U1N0cmluZ0dldENoYXJhY3RlcnNQdHIoY29uc3RhbnRTdHJpbmdSZWYpID09IGNvbnN0YW50U3Ry
aW5nKTsKQEAgLTEzMjgsMTAgKzE0MzEsNiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJn
dltdKQogICAgIEFTU0VSVChKU1ZhbHVlR2V0VHlwZShjb250ZXh0LCBqc09uZVRoaXJkKSA9PSBr
SlNUeXBlTnVtYmVyKTsKICAgICBBU1NFUlQoSlNWYWx1ZUdldFR5cGUoY29udGV4dCwganNFbXB0
eVN0cmluZykgPT0ga0pTVHlwZVN0cmluZyk7CiAgICAgQVNTRVJUKEpTVmFsdWVHZXRUeXBlKGNv
bnRleHQsIGpzT25lU3RyaW5nKSA9PSBrSlNUeXBlU3RyaW5nKTsKLSAgICBBU1NFUlQoSlNWYWx1
ZUdldFR5cGUoY29udGV4dCwganNDRlN0cmluZykgPT0ga0pTVHlwZVN0cmluZyk7Ci0gICAgQVNT
RVJUKEpTVmFsdWVHZXRUeXBlKGNvbnRleHQsIGpzQ0ZTdHJpbmdXaXRoQ2hhcmFjdGVycykgPT0g
a0pTVHlwZVN0cmluZyk7Ci0gICAgQVNTRVJUKEpTVmFsdWVHZXRUeXBlKGNvbnRleHQsIGpzQ0ZF
bXB0eVN0cmluZykgPT0ga0pTVHlwZVN0cmluZyk7Ci0gICAgQVNTRVJUKEpTVmFsdWVHZXRUeXBl
KGNvbnRleHQsIGpzQ0ZFbXB0eVN0cmluZ1dpdGhDaGFyYWN0ZXJzKSA9PSBrSlNUeXBlU3RyaW5n
KTsKIAogICAgIEFTU0VSVCghSlNWYWx1ZUlzQm9vbGVhbihjb250ZXh0LCBOVUxMKSk7CiAgICAg
QVNTRVJUKCFKU1ZhbHVlSXNPYmplY3QoY29udGV4dCwgTlVMTCkpOwpAQCAtMTM1NCwxNCArMTQ1
Myw2IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAgfSBlbHNlCiAgICAg
ICAgIHByaW50ZigiUEFTUzogcmV0dXJuZWQgbnVsbCB3aGVuIGFjY2Vzc2luZyBjaGFyYWN0ZXIg
cG9pbnRlciBvZiBhIG51bGwgU3RyaW5nLlxuIik7CiAKLSAgICBKU1N0cmluZ1JlZiBlbXB0eVN0
cmluZyA9IEpTU3RyaW5nQ3JlYXRlV2l0aENGU3RyaW5nKENGU1RSKCIiKSk7Ci0gICAgY2hhcmFj
dGVycyA9IEpTU3RyaW5nR2V0Q2hhcmFjdGVyc1B0cihlbXB0eVN0cmluZyk7Ci0gICAgaWYgKCFj
aGFyYWN0ZXJzKSB7Ci0gICAgICAgIHByaW50ZigiRkFJTDogUmV0dXJuZWQgbnVsbCB3aGVuIGFj
Y2Vzc2luZyBjaGFyYWN0ZXIgcG9pbnRlciBvZiBhbiBlbXB0eSBTdHJpbmcuXG4iKTsKLSAgICAg
ICAgZmFpbGVkID0gMTsKLSAgICB9IGVsc2UKLSAgICAgICAgcHJpbnRmKCJQQVNTOiByZXR1cm5l
ZCBlbXB0eSB3aGVuIGFjY2Vzc2luZyBjaGFyYWN0ZXIgcG9pbnRlciBvZiBhbiBlbXB0eSBTdHJp
bmcuXG4iKTsKLQogICAgIHNpemVfdCBsZW5ndGggPSBKU1N0cmluZ0dldExlbmd0aChudWxsU3Ry
aW5nKTsKICAgICBpZiAobGVuZ3RoKSB7CiAgICAgICAgIHByaW50ZigiRkFJTDogRGlkbid0IHJl
dHVybiAwIGxlbmd0aCBmb3IgbnVsbCBTdHJpbmcuXG4iKTsKQEAgLTEzNzAsMTQgKzE0NjEsNiBA
QCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQogICAgICAgICBwcmludGYoIlBBU1M6
IHJldHVybmVkIDAgbGVuZ3RoIGZvciBudWxsIFN0cmluZy5cbiIpOwogICAgIEpTU3RyaW5nUmVs
ZWFzZShudWxsU3RyaW5nKTsKIAotICAgIGxlbmd0aCA9IEpTU3RyaW5nR2V0TGVuZ3RoKGVtcHR5
U3RyaW5nKTsKLSAgICBpZiAobGVuZ3RoKSB7Ci0gICAgICAgIHByaW50ZigiRkFJTDogRGlkbid0
IHJldHVybiAwIGxlbmd0aCBmb3IgZW1wdHkgU3RyaW5nLlxuIik7Ci0gICAgICAgIGZhaWxlZCA9
IDE7Ci0gICAgfSBlbHNlCi0gICAgICAgIHByaW50ZigiUEFTUzogcmV0dXJuZWQgMCBsZW5ndGgg
Zm9yIGVtcHR5IFN0cmluZy5cbiIpOwotICAgIEpTU3RyaW5nUmVsZWFzZShlbXB0eVN0cmluZyk7
Ci0KICAgICBKU09iamVjdFJlZiBwcm9wZXJ0eUNhdGNoYWxscyA9IEpTT2JqZWN0TWFrZShjb250
ZXh0LCBQcm9wZXJ0eUNhdGNoYWxsc19jbGFzcyhjb250ZXh0KSwgTlVMTCk7CiAgICAgSlNTdHJp
bmdSZWYgcHJvcGVydHlDYXRjaGFsbHNTdHJpbmcgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiUHJvcGVydHlDYXRjaGFsbHMiKTsKICAgICBKU09iamVjdFNldFByb3BlcnR5KGNvbnRl
eHQsIGdsb2JhbE9iamVjdCwgcHJvcGVydHlDYXRjaGFsbHNTdHJpbmcsIHByb3BlcnR5Q2F0Y2hh
bGxzLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZU5vbmUsIE5VTEwpOwpAQCAtMTU1NywxMCArMTY0MCw2
IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAgYXNzZXJ0RXF1YWxzQXNC
b29sZWFuKGpzT25lVGhpcmQsIHRydWUpOwogICAgIGFzc2VydEVxdWFsc0FzQm9vbGVhbihqc0Vt
cHR5U3RyaW5nLCBmYWxzZSk7CiAgICAgYXNzZXJ0RXF1YWxzQXNCb29sZWFuKGpzT25lU3RyaW5n
LCB0cnVlKTsKLSAgICBhc3NlcnRFcXVhbHNBc0Jvb2xlYW4oanNDRlN0cmluZywgdHJ1ZSk7Ci0g
ICAgYXNzZXJ0RXF1YWxzQXNCb29sZWFuKGpzQ0ZTdHJpbmdXaXRoQ2hhcmFjdGVycywgdHJ1ZSk7
Ci0gICAgYXNzZXJ0RXF1YWxzQXNCb29sZWFuKGpzQ0ZFbXB0eVN0cmluZywgZmFsc2UpOwotICAg
IGFzc2VydEVxdWFsc0FzQm9vbGVhbihqc0NGRW1wdHlTdHJpbmdXaXRoQ2hhcmFjdGVycywgZmFs
c2UpOwogICAgIAogICAgIGFzc2VydEVxdWFsc0FzTnVtYmVyKGpzVW5kZWZpbmVkLCBuYW4oIiIp
KTsKICAgICBhc3NlcnRFcXVhbHNBc051bWJlcihqc051bGwsIDApOwpAQCAtMTU3MSwxMSArMTY1
MCw2IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAgYXNzZXJ0RXF1YWxz
QXNOdW1iZXIoanNPbmVUaGlyZCwgMS4wIC8gMy4wKTsKICAgICBhc3NlcnRFcXVhbHNBc051bWJl
cihqc0VtcHR5U3RyaW5nLCAwKTsKICAgICBhc3NlcnRFcXVhbHNBc051bWJlcihqc09uZVN0cmlu
ZywgMSk7Ci0gICAgYXNzZXJ0RXF1YWxzQXNOdW1iZXIoanNDRlN0cmluZywgbmFuKCIiKSk7Ci0g
ICAgYXNzZXJ0RXF1YWxzQXNOdW1iZXIoanNDRlN0cmluZ1dpdGhDaGFyYWN0ZXJzLCBuYW4oIiIp
KTsKLSAgICBhc3NlcnRFcXVhbHNBc051bWJlcihqc0NGRW1wdHlTdHJpbmcsIDApOwotICAgIGFz
c2VydEVxdWFsc0FzTnVtYmVyKGpzQ0ZFbXB0eVN0cmluZ1dpdGhDaGFyYWN0ZXJzLCAwKTsKLSAg
ICBBU1NFUlQoc2l6ZW9mKEpTQ2hhcikgPT0gc2l6ZW9mKFVuaUNoYXIpKTsKICAgICAKICAgICBh
c3NlcnRFcXVhbHNBc0NoYXJhY3RlcnNQdHIoanNVbmRlZmluZWQsICJ1bmRlZmluZWQiKTsKICAg
ICBhc3NlcnRFcXVhbHNBc0NoYXJhY3RlcnNQdHIoanNOdWxsLCAibnVsbCIpOwpAQCAtMTU4Niwx
MCArMTY2MCw2IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAgYXNzZXJ0
RXF1YWxzQXNDaGFyYWN0ZXJzUHRyKGpzT25lVGhpcmQsICIwLjMzMzMzMzMzMzMzMzMzMzMiKTsK
ICAgICBhc3NlcnRFcXVhbHNBc0NoYXJhY3RlcnNQdHIoanNFbXB0eVN0cmluZywgIiIpOwogICAg
IGFzc2VydEVxdWFsc0FzQ2hhcmFjdGVyc1B0cihqc09uZVN0cmluZywgIjEiKTsKLSAgICBhc3Nl
cnRFcXVhbHNBc0NoYXJhY3RlcnNQdHIoanNDRlN0cmluZywgIkEiKTsKLSAgICBhc3NlcnRFcXVh
bHNBc0NoYXJhY3RlcnNQdHIoanNDRlN0cmluZ1dpdGhDaGFyYWN0ZXJzLCAiQSIpOwotICAgIGFz
c2VydEVxdWFsc0FzQ2hhcmFjdGVyc1B0cihqc0NGRW1wdHlTdHJpbmcsICIiKTsKLSAgICBhc3Nl
cnRFcXVhbHNBc0NoYXJhY3RlcnNQdHIoanNDRkVtcHR5U3RyaW5nV2l0aENoYXJhY3RlcnMsICIi
KTsKICAgICAKICAgICBhc3NlcnRFcXVhbHNBc1VURjhTdHJpbmcoanNVbmRlZmluZWQsICJ1bmRl
ZmluZWQiKTsKICAgICBhc3NlcnRFcXVhbHNBc1VURjhTdHJpbmcoanNOdWxsLCAibnVsbCIpOwpA
QCAtMTYwMCwxMCArMTY3MCw2IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAg
ICAgYXNzZXJ0RXF1YWxzQXNVVEY4U3RyaW5nKGpzT25lVGhpcmQsICIwLjMzMzMzMzMzMzMzMzMz
MzMiKTsKICAgICBhc3NlcnRFcXVhbHNBc1VURjhTdHJpbmcoanNFbXB0eVN0cmluZywgIiIpOwog
ICAgIGFzc2VydEVxdWFsc0FzVVRGOFN0cmluZyhqc09uZVN0cmluZywgIjEiKTsKLSAgICBhc3Nl
cnRFcXVhbHNBc1VURjhTdHJpbmcoanNDRlN0cmluZywgIkEiKTsKLSAgICBhc3NlcnRFcXVhbHNB
c1VURjhTdHJpbmcoanNDRlN0cmluZ1dpdGhDaGFyYWN0ZXJzLCAiQSIpOwotICAgIGFzc2VydEVx
dWFsc0FzVVRGOFN0cmluZyhqc0NGRW1wdHlTdHJpbmcsICIiKTsKLSAgICBhc3NlcnRFcXVhbHNB
c1VURjhTdHJpbmcoanNDRkVtcHR5U3RyaW5nV2l0aENoYXJhY3RlcnMsICIiKTsKICAgICAKICAg
ICBjaGVja0NvbnN0bmVzc0luSlNPYmplY3ROYW1lcygpOwogICAgIApAQCAtMTYxMywxNiArMTY3
OSw2IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAgQVNTRVJUKEpTVmFs
dWVJc0VxdWFsKGNvbnRleHQsIGpzT25lLCBqc09uZVN0cmluZywgTlVMTCkpOwogICAgIEFTU0VS
VCghSlNWYWx1ZUlzRXF1YWwoY29udGV4dCwganNUcnVlLCBqc0ZhbHNlLCBOVUxMKSk7CiAgICAg
Ci0gICAgQ0ZTdHJpbmdSZWYgY2ZKU1N0cmluZyA9IEpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFs
bG9jYXRvckRlZmF1bHQsIGpzQ0ZJU3RyaW5nKTsKLSAgICBDRlN0cmluZ1JlZiBjZkpTRW1wdHlT
dHJpbmcgPSBKU1N0cmluZ0NvcHlDRlN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBqc0NGRW1w
dHlJU3RyaW5nKTsKLSAgICBBU1NFUlQoQ0ZFcXVhbChjZkpTU3RyaW5nLCBjZlN0cmluZykpOwot
ICAgIEFTU0VSVChDRkVxdWFsKGNmSlNFbXB0eVN0cmluZywgY2ZFbXB0eVN0cmluZykpOwotICAg
IENGUmVsZWFzZShjZkpTU3RyaW5nKTsKLSAgICBDRlJlbGVhc2UoY2ZKU0VtcHR5U3RyaW5nKTsK
LQotICAgIENGUmVsZWFzZShjZlN0cmluZyk7Ci0gICAgQ0ZSZWxlYXNlKGNmRW1wdHlTdHJpbmcp
OwotICAgIAogICAgIGpzR2xvYmFsVmFsdWUgPSBKU09iamVjdE1ha2UoY29udGV4dCwgTlVMTCwg
TlVMTCk7CiAgICAgbWFrZUdsb2JhbE51bWJlclZhbHVlKGNvbnRleHQpOwogICAgIEpTVmFsdWVQ
cm90ZWN0KGNvbnRleHQsIGpzR2xvYmFsVmFsdWUpOwpAQCAtMTc3NiwxNyArMTgzMiw2IEBAIGlu
dCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAgSlNPYmplY3RTZXRQcm9wZXJ0eShj
b250ZXh0LCBnbG9iYWxPYmplY3QsIHN0cmluZywgZGVyaXZlZDJDb25zdHJ1Y3Rvciwga0pTUHJv
cGVydHlBdHRyaWJ1dGVOb25lLCBOVUxMKTsKICAgICBKU1N0cmluZ1JlbGVhc2Uoc3RyaW5nKTsK
IAotICAgIG8gPSBKU09iamVjdE1ha2UoY29udGV4dCwgTlVMTCwgTlVMTCk7Ci0gICAgSlNPYmpl
Y3RTZXRQcm9wZXJ0eShjb250ZXh0LCBvLCBqc09uZUlTdHJpbmcsIEpTVmFsdWVNYWtlTnVtYmVy
KGNvbnRleHQsIDEpLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZU5vbmUsIE5VTEwpOwotICAgIEpTT2Jq
ZWN0U2V0UHJvcGVydHkoY29udGV4dCwgbywganNDRklTdHJpbmcsICBKU1ZhbHVlTWFrZU51bWJl
cihjb250ZXh0LCAxKSwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RW51bSwgTlVMTCk7Ci0gICAg
SlNQcm9wZXJ0eU5hbWVBcnJheVJlZiBuYW1lQXJyYXkgPSBKU09iamVjdENvcHlQcm9wZXJ0eU5h
bWVzKGNvbnRleHQsIG8pOwotICAgIHNpemVfdCBleHBlY3RlZENvdW50ID0gSlNQcm9wZXJ0eU5h
bWVBcnJheUdldENvdW50KG5hbWVBcnJheSk7Ci0gICAgc2l6ZV90IGNvdW50OwotICAgIGZvciAo
Y291bnQgPSAwOyBjb3VudCA8IGV4cGVjdGVkQ291bnQ7ICsrY291bnQpCi0gICAgICAgIEpTUHJv
cGVydHlOYW1lQXJyYXlHZXROYW1lQXRJbmRleChuYW1lQXJyYXksIGNvdW50KTsKLSAgICBKU1By
b3BlcnR5TmFtZUFycmF5UmVsZWFzZShuYW1lQXJyYXkpOwotICAgIEFTU0VSVChjb3VudCA9PSAx
KTsgLy8ganNDRlN0cmluZyBzaG91bGQgbm90IGJlIGVudW1lcmF0ZWQKLQogICAgIEpTVmFsdWVS
ZWYgYXJndW1lbnRzQXJyYXlWYWx1ZXNbXSA9IHsgSlNWYWx1ZU1ha2VOdW1iZXIoY29udGV4dCwg
MTApLCBKU1ZhbHVlTWFrZU51bWJlcihjb250ZXh0LCAyMCkgfTsKICAgICBvID0gSlNPYmplY3RN
YWtlQXJyYXkoY29udGV4dCwgc2l6ZW9mKGFyZ3VtZW50c0FycmF5VmFsdWVzKSAvIHNpemVvZihK
U1ZhbHVlUmVmKSwgYXJndW1lbnRzQXJyYXlWYWx1ZXMsIE5VTEwpOwogICAgIHN0cmluZyA9IEpT
U3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJsZW5ndGgiKTsKQEAgLTE5MTAsOSArMTk1NSwx
MSBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQogICAgICAgICBBU1NFUlQoKCFz
Y3JpcHRPYmplY3QpICE9ICghZXJyb3JNZXNzYWdlKSk7CiAgICAgICAgIGlmICghc2NyaXB0T2Jq
ZWN0KSB7CiAgICAgICAgICAgICBwcmludGYoIkZBSUw6IFRlc3Qgc2NyaXB0IGRpZCBub3QgcGFy
c2Vcblx0JXM6JWRcblx0Iiwgc2NyaXB0UGF0aCwgZXJyb3JMaW5lKTsKKyNpZiBVU0UoQ0YpCiAg
ICAgICAgICAgICBDRlN0cmluZ1JlZiBlcnJvckNGID0gSlNTdHJpbmdDb3B5Q0ZTdHJpbmcoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgZXJyb3JNZXNzYWdlKTsKICAgICAgICAgICAgIENGU2hvdyhlcnJv
ckNGKTsKICAgICAgICAgICAgIENGUmVsZWFzZShlcnJvckNGKTsKKyNlbmRpZgogICAgICAgICAg
ICAgSlNTdHJpbmdSZWxlYXNlKGVycm9yTWVzc2FnZSk7CiAgICAgICAgICAgICBmYWlsZWQgPSAx
OwogICAgICAgICB9CkBAIC0xOTI1LDkgKzE5NzIsMTEgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNo
YXIqIGFyZ3ZbXSkKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBwcmludGYoIkZBSUw6IFRl
c3Qgc2NyaXB0IHJldHVybmVkIHVuZXhwZWN0ZWQgdmFsdWU6XG4iKTsKICAgICAgICAgICAgIEpT
U3RyaW5nUmVmIGV4Y2VwdGlvbklTdHJpbmcgPSBKU1ZhbHVlVG9TdHJpbmdDb3B5KGNvbnRleHQs
IGV4Y2VwdGlvbiwgTlVMTCk7CisjaWYgVVNFKENGKQogICAgICAgICAgICAgQ0ZTdHJpbmdSZWYg
ZXhjZXB0aW9uQ0YgPSBKU1N0cmluZ0NvcHlDRlN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBl
eGNlcHRpb25JU3RyaW5nKTsKICAgICAgICAgICAgIENGU2hvdyhleGNlcHRpb25DRik7CiAgICAg
ICAgICAgICBDRlJlbGVhc2UoZXhjZXB0aW9uQ0YpOworI2VuZGlmCiAgICAgICAgICAgICBKU1N0
cmluZ1JlbGVhc2UoZXhjZXB0aW9uSVN0cmluZyk7CiAgICAgICAgICAgICBmYWlsZWQgPSAxOwog
ICAgICAgICB9CkBAIC0xOTk2LDEwICsyMDQ1LDYgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIq
IGFyZ3ZbXSkKIAogICAgIEpTU3RyaW5nUmVsZWFzZShqc0VtcHR5SVN0cmluZyk7CiAgICAgSlNT
dHJpbmdSZWxlYXNlKGpzT25lSVN0cmluZyk7Ci0gICAgSlNTdHJpbmdSZWxlYXNlKGpzQ0ZJU3Ry
aW5nKTsKLSAgICBKU1N0cmluZ1JlbGVhc2UoanNDRkVtcHR5SVN0cmluZyk7Ci0gICAgSlNTdHJp
bmdSZWxlYXNlKGpzQ0ZJU3RyaW5nV2l0aENoYXJhY3RlcnMpOwotICAgIEpTU3RyaW5nUmVsZWFz
ZShqc0NGRW1wdHlJU3RyaW5nV2l0aENoYXJhY3RlcnMpOwogICAgIEpTU3RyaW5nUmVsZWFzZShn
b29kU3ludGF4KTsKICAgICBKU1N0cmluZ1JlbGVhc2UoYmFkU3ludGF4KTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3NoZWxsL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3NoZWxsL0NNYWtlTGlzdHMudHh0CmluZGV4IDQ5MTUyYmMzZDQ1YzcwMmI0
OTkyZDQzNWRjYTlkNGVlYjdkNWMzNzYuLmJkNzA1ODVjZTc0ZjNkNzQ2ZGVhNmU1YzE4ODNhNjU2
OGRjMWQxN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9zaGVsbC9DTWFrZUxp
c3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvc2hlbGwvQ01ha2VMaXN0cy50eHQK
QEAgLTU1LDQgKzU1LDMwIEBAIGlmIChOT1QgV0lOMzIpCiAgICAgYWRkX2V4ZWN1dGFibGUodGVz
dGFpciAke1RFU1RBSVJfU09VUkNFU30pCiAgICAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKHRlc3Rh
aXIgJHtKU0NfTElCUkFSSUVTfSkKIAorICAgIHNldChURVNUQVBJX1NPVVJDRVMKKyAgICAgICAg
Li4vQVBJL3Rlc3RzL0NvbXBhcmVBbmRTd2FwVGVzdC5jcHAKKyAgICAgICAgLi4vQVBJL3Rlc3Rz
L0N1c3RvbUdsb2JhbE9iamVjdENsYXNzVGVzdC5jCisgICAgICAgIC4uL0FQSS90ZXN0cy9FeGVj
dXRpb25UaW1lTGltaXRUZXN0LmNwcAorICAgICAgICAuLi9BUEkvdGVzdHMvRnVuY3Rpb25PdmVy
cmlkZXNUZXN0LmNwcAorICAgICAgICAuLi9BUEkvdGVzdHMvR2xvYmFsQ29udGV4dFdpdGhGaW5h
bGl6ZXJUZXN0LmNwcAorICAgICAgICAuLi9BUEkvdGVzdHMvSlNPTlBhcnNlVGVzdC5jcHAKKyAg
ICAgICAgLi4vQVBJL3Rlc3RzL0pTT2JqZWN0R2V0UHJveHlUYXJnZXRUZXN0LmNwcAorICAgICAg
ICAuLi9BUEkvdGVzdHMvTXVsdGl0aHJlYWRlZE11bHRpVk1FeGVjdXRpb25UZXN0LmNwcAorICAg
ICAgICAuLi9BUEkvdGVzdHMvUGluZ1BvbmdTdGFja092ZXJmbG93VGVzdC5jcHAKKyAgICAgICAg
Li4vQVBJL3Rlc3RzL1R5cGVkQXJyYXlDVGVzdC5jcHAKKyAgICAgICAgLi4vQVBJL3Rlc3RzL3Rl
c3RhcGkuYworICAgICkKKyAgICBhZGRfZXhlY3V0YWJsZSh0ZXN0YXBpICR7VEVTVEFQSV9TT1VS
Q0VTfSkKKyAgICB0YXJnZXRfbGlua19saWJyYXJpZXModGVzdGFwaSAke0pTQ19MSUJSQVJJRVN9
KQorCisgICAgZmlsZShDT1BZCisgICAgICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vQVBJL3Rl
c3RzL3Rlc3RhcGkuanMiCisgICAgICAgIERFU1RJTkFUSU9OCisgICAgICAgICR7Q01BS0VfUlVO
VElNRV9PVVRQVVRfRElSRUNUT1JZfQorICAgICkKKyAgICBmaWxlKENPUFkKKyAgICAgICAgIiR7
SkFWQVNDUklQVENPUkVfRElSfS9BUEkvdGVzdHMvdGVzdGFwaS1mdW5jdGlvbi1vdmVycmlkZXMu
anMiCisgICAgICAgIERFU1RJTkFUSU9OCisgICAgICAgICR7Q01BS0VfUlVOVElNRV9PVVRQVVRf
RElSRUNUT1JZfQorICAgICkKIGVuZGlmICgpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTNiOGM0N2FjZjNiZjg1M2E3ZTkyYWUwMDk4ZTdiODcx
YjhjNjY4OS4uNDFlM2JlMGMxNWY3NjQzNWZiMDNhZjBhOGRlYjg1ODkzOWMxMjMxNiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDE3LTA1LTE1ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgor
CisgICAgICAgIFtKU0NdIEJ1aWxkIHRlc3RhcGkgaW4gbm9uIEFwcGxlIHBvcnRzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzIxMDMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOb3cgdGVzdGFwaSBpcyBk
cml2ZWQgaW4gSlNDT25seSwgR1RLIGFuZCBXUEUgcG9ydHMgdG9vLgorCisgICAgICAgICogU2Ny
aXB0cy9idWlsZC1qc2M6CisgICAgICAgICogU2NyaXB0cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVz
dHM6CisKIDIwMTctMDUtMTQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBEcm9wIFBhc3NSZWZQdHIgY2xhc3MgZnJvbSBXVEYKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvYnVpbGQtanNjIGIvVG9vbHMvU2NyaXB0cy9idWlsZC1qc2MKaW5kZXggNGUxOTE3Y2Q1
Y2M3MDY0YTk5NzFmZjE0NmZmMjA2NDhmMDMxODU3MC4uYTA1MTQ0Yzk1MDJmYjAzM2RkOTgxNWUz
MWQ2NTRhZGY3ZTJmMjk3YSAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9idWlsZC1qc2MKKysr
IGIvVG9vbHMvU2NyaXB0cy9idWlsZC1qc2MKQEAgLTEzNyw3ICsxMzcsNyBAQCBpZiAoaXNDTWFr
ZUJ1aWxkKCkpIHsKICAgICB1bmxlc3MgKGlzQW55V2luZG93cygpKSB7CiAgICAgICAgICMgQnkg
ZGVmYXVsdCB3ZSBidWlsZCB1c2luZyBhbGwgb2YgdGhlIGF2YWlsYWJsZSBDUFVzCiAgICAgICAg
ICRtYWtlQXJncyAuPSAoJG1ha2VBcmdzID8gIiAiIDogIiIpIC4gIi1qIiAuIG51bWJlck9mQ1BV
cygpIGlmICRtYWtlQXJncyAhfiAvLWpccypcZCsvOwotICAgICAgICAkYnVpbGRUYXJnZXQgPSAi
anNjIHRlc3RiMyB0ZXN0YWlyICRtYWtlQXJncyI7CisgICAgICAgICRidWlsZFRhcmdldCA9ICJq
c2MgdGVzdGIzIHRlc3RhaXIgdGVzdGFwaSAkbWFrZUFyZ3MiOwogICAgIH0gZWxzaWYgKGNhblVz
ZU5pbmphKCkpIHsKICAgICAgICAgJGJ1aWxkVGFyZ2V0IC49ICJqc2MgdGVzdGFwaSI7CiAgICAg
fQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMgYi9U
b29scy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cwppbmRleCAxNjM4ODBmNmZlMWEz
YTM1ZmQxZDBiODhkMThmZDZkNmE2YjA0M2RiLi44MzgwZTM3OTQyNGE3YWY0ZGViNDJlYjFiNGNl
MDY3ZDY5MGMzMDcxIDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29y
ZS10ZXN0cworKysgYi9Ub29scy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cwpAQCAt
NTYsNyArNTYsNyBAQCBteSAkbWVtb3J5TGltaXRlZDsKIAogbXkgJGJ1aWxkSlNDID0gMTsKIAot
bXkgJHJ1blRlc3RBUEkgPSBpc0FwcGxlQ29jb2FXZWJLaXQoKSB8fCBpc0FwcGxlV2luV2ViS2l0
KCkgfHwgaXNXaW5DYWlybygpOworbXkgJHJ1blRlc3RBUEkgPSBpc0FwcGxlQ29jb2FXZWJLaXQo
KSB8fCBpc0FwcGxlV2luV2ViS2l0KCkgfHwgaXNXaW5DYWlybygpIHx8IGlzSlNDT25seSgpIHx8
IGlzR1RLKCkgfHwgaXNXUEUoKTsKIAogbXkgJHJ1bkpTQ1N0cmVzcyA9IDE7CiBteSAkcnVuSklU
U3RyZXNzVGVzdHMgPSAxOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310123</attachid>
            <date>2017-05-15 02:08:50 -0700</date>
            <delta_ts>2017-05-15 12:56:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172103-20170515180849.patch</filename>
            <type>text/plain</type>
            <size>28330</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2ODUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NTU4MDYwYTc5YjBiNjlkZDExNGVkMTQxNmE3YWJlODNkNGUzNTE2Li41NjgyZDJjNTI2MjAxMjUw
OWU0ZmJhODZmMDc4ZDdlMjMyZWY2ODVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNiBAQAorMjAxNy0wNS0xNSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbSlNDXSBCdWlsZCB0ZXN0YXBpIGluIG5vbiBBcHBsZSBwb3J0cwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcyMTAzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRj
aCBtYWtlcyBKU0MgdGVzdGFwaSBidWlsZGFibGUgaW4gbm9uLUFwcGxlIHBvcnRzLgorICAgICAg
ICBXZSBpc29sYXRlIENGIHJlbGF0ZWQgdGVzdHMgaW4gdGVzdGFwaS5jLiBJZiB3ZSBkbyBub3Qg
dXNlCisgICAgICAgIENGLCB3ZSBpbmNsdWRlIEphdmFTY3JpcHQuaCBpbnN0ZWFkIG9mIEphdmFT
Y3JpcHRDb3JlLmguCisKKyAgICAgICAgQnkgcnVubmluZyB0aGUgdGVzdGFwaSBpbiBMaW51eCwg
d2UgZm91bmQgdGhhdCBjb250cmFpbnRzCisgICAgICAgIHRlc3QgaGF2ZSBhIGJ1ZzogSWYgY29u
c3RyYWludCBtYXJrZXIgcnVucyBhZnRlciBXZWFrUmVmcworICAgICAgICBhcmUgZGVzdHJveWVk
LCBpdCBhY2Nlc3NlcyBkZXN0cm95ZWQgV2Vha1JlZi4gVGhpcyBwYXRjaAorICAgICAgICBhbHNv
IGZpeGVzIGl0LgorCisgICAgICAgICogQVBJL3Rlc3RzL0N1cnJlbnRUaGlzSW5zaWRlQmxvY2tH
ZXR0ZXJUZXN0Lmg6CisgICAgICAgICogQVBJL3Rlc3RzL0N1c3RvbUdsb2JhbE9iamVjdENsYXNz
VGVzdC5jOgorICAgICAgICAqIEFQSS90ZXN0cy9FeGVjdXRpb25UaW1lTGltaXRUZXN0LmNwcDoK
KyAgICAgICAgKiBBUEkvdGVzdHMvRnVuY3Rpb25PdmVycmlkZXNUZXN0LmNwcDoKKyAgICAgICAg
KiBBUEkvdGVzdHMvR2xvYmFsQ29udGV4dFdpdGhGaW5hbGl6ZXJUZXN0LmNwcDoKKyAgICAgICAg
KiBBUEkvdGVzdHMvSlNPYmplY3RHZXRQcm94eVRhcmdldFRlc3QuY3BwOgorICAgICAgICAqIEFQ
SS90ZXN0cy9NdWx0aXRocmVhZGVkTXVsdGlWTUV4ZWN1dGlvblRlc3QuY3BwOgorICAgICAgICAq
IEFQSS90ZXN0cy9QaW5nUG9uZ1N0YWNrT3ZlcmZsb3dUZXN0LmNwcDoKKyAgICAgICAgKiBBUEkv
dGVzdHMvVHlwZWRBcnJheUNUZXN0LmNwcDoKKyAgICAgICAgKiBBUEkvdGVzdHMvdGVzdGFwaS5j
OgorICAgICAgICAoYXNzZXJ0RXF1YWxzQXNDaGFyYWN0ZXJzUHRyKToKKyAgICAgICAgKG1hcmtp
bmdDb25zdHJhaW50KToKKyAgICAgICAgKHRlc3RNYXJraW5nQ29uc3RyYWludHNBbmRIZWFwRmlu
YWxpemVycyk6CisgICAgICAgICh0ZXN0Q0ZTdHJpbmdzKToKKyAgICAgICAgKG1haW4pOgorICAg
ICAgICAqIHNoZWxsL0NNYWtlTGlzdHMudHh0OgorCiAyMDE3LTA1LTEzICBEYXZpZCBLaWx6ZXIg
IDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgVW51c2VkIGxhbWJkYSBjYXB0dXJlIGlu
IEpTQ29udGV4dEdyb3VwQWRkTWFya2luZ0NvbnN0cmFpbnQoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9DdXJyZW50VGhpc0luc2lkZUJsb2NrR2V0dGVyVGVz
dC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9DdXJyZW50VGhpc0luc2lkZUJs
b2NrR2V0dGVyVGVzdC5oCmluZGV4IGFiNjhmODA1NzJlNjQxMjZhYzYzZWQ1ZjY0NmFmNDhjMzI3
MmUwYjkuLjQ5OGUxNWZhOTI5YzkyOGM3NmNkYmYwMDdiNWRhMTY2OGZlZjk4NTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvQ3VycmVudFRoaXNJbnNpZGVCbG9j
a0dldHRlclRlc3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL0N1cnJl
bnRUaGlzSW5zaWRlQmxvY2tHZXR0ZXJUZXN0LmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdt
YSBvbmNlCiAKLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5oPgorI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHQuaD4KIAogI2lmIEpTQ19PQkpDX0FQSV9F
TkFCTEVECiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvQ3Vz
dG9tR2xvYmFsT2JqZWN0Q2xhc3NUZXN0LmMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rl
c3RzL0N1c3RvbUdsb2JhbE9iamVjdENsYXNzVGVzdC5jCmluZGV4IDYyZTYzOTc4ZWRlNmY3MDE1
YjM2MzNjNzdlNGExNmZjNWY2ZjcyZTQuLjk3NmE4ODFiM2JiYjg3ZGQ2MWU1MzlkMDAxYzYzZTVi
YTNkMDM2ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvQ3Vz
dG9tR2xvYmFsT2JqZWN0Q2xhc3NUZXN0LmMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS90ZXN0cy9DdXN0b21HbG9iYWxPYmplY3RDbGFzc1Rlc3QuYwpAQCAtMjYsOCArMjYsMTAgQEAK
ICNpbmNsdWRlICJDdXN0b21HbG9iYWxPYmplY3RDbGFzc1Rlc3QuaCIKIAogI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0pTT2JqZWN0UmVmUHJpdmF0ZS5oPgotI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dC5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8
c3RyaW5nLmg+CiAKIGV4dGVybiBib29sIGFzc2VydFRydWUoYm9vbCB2YWx1ZSwgY29uc3QgY2hh
ciogbWVzc2FnZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVz
dHMvRXhlY3V0aW9uVGltZUxpbWl0VGVzdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L3Rlc3RzL0V4ZWN1dGlvblRpbWVMaW1pdFRlc3QuY3BwCmluZGV4IGQ1ZTUzMjQzYjc4ZGY3NTEz
NDJhZDhkMzkwYTRiMDQxM2Q5ZWVmOWUuLjg1YzI3MmM0NDM3Njc3NTczZTBlNzUwYWFhYzU2Mzll
Y2U4NDJkN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvRXhl
Y3V0aW9uVGltZUxpbWl0VGVzdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90
ZXN0cy9FeGVjdXRpb25UaW1lTGltaXRUZXN0LmNwcApAQCAtMjgsNyArMjgsNyBAQAogCiAjaW5j
bHVkZSAiSW5pdGlhbGl6ZVRocmVhZGluZy5oIgogI2luY2x1ZGUgIkpTQ29udGV4dFJlZlByaXZh
dGUuaCIKLSNpbmNsdWRlICJKYXZhU2NyaXB0Q29yZS5oIgorI2luY2x1ZGUgIkphdmFTY3JpcHQu
aCIKICNpbmNsdWRlICJPcHRpb25zLmgiCiAjaW5jbHVkZSA8Y2hyb25vPgogI2luY2x1ZGUgPHd0
Zi9DdXJyZW50VGltZS5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90
ZXN0cy9GdW5jdGlvbk92ZXJyaWRlc1Rlc3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS90ZXN0cy9GdW5jdGlvbk92ZXJyaWRlc1Rlc3QuY3BwCmluZGV4IGEzMjVmODM5M2I4YTJiNGMw
YjMxMDk3NTJhNWM4MjE2ZWVkZDQzYmYuLmNmMGQ2ZGMwNDE5ZWJhOWU1YWZjNTBhOWU2NTQxNzkx
MWE0NTBkZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvRnVu
Y3Rpb25PdmVycmlkZXNUZXN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rl
c3RzL0Z1bmN0aW9uT3ZlcnJpZGVzVGVzdC5jcHAKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRl
ICJGdW5jdGlvbk92ZXJyaWRlcy5oIgogI2luY2x1ZGUgIkluaXRpYWxpemVUaHJlYWRpbmcuaCIK
ICNpbmNsdWRlICJKU0NvbnRleHRSZWZQcml2YXRlLmgiCi0jaW5jbHVkZSAiSmF2YVNjcmlwdENv
cmUuaCIKKyNpbmNsdWRlICJKYXZhU2NyaXB0LmgiCiAjaW5jbHVkZSAiT3B0aW9ucy5oIgogI2lu
Y2x1ZGUgPHN0cmluZz4KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90
ZXN0cy9HbG9iYWxDb250ZXh0V2l0aEZpbmFsaXplclRlc3QuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS90ZXN0cy9HbG9iYWxDb250ZXh0V2l0aEZpbmFsaXplclRlc3QuY3BwCmluZGV4
IDA0ODZhMjZjMDE4YjEwZmJmYTMwN2MzM2IwMjM4OGZlYjk1OWYwNDAuLjhkZDgyYjFjZWM4Yzkw
YWExMWQ5NDE3NTcyMDRkYmY5YTFjNWFkZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvdGVzdHMvR2xvYmFsQ29udGV4dFdpdGhGaW5hbGl6ZXJUZXN0LmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL0dsb2JhbENvbnRleHRXaXRoRmluYWxpemVy
VGVzdC5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJHbG9iYWxDb250ZXh0V2l0aEZpbmFsaXplclRlc3QuaCIKIAotI2luY2x1ZGUgIkphdmFTY3Jp
cHRDb3JlLmgiCisjaW5jbHVkZSAiSmF2YVNjcmlwdC5oIgogCiBzdGF0aWMgYm9vbCBmYWlsZWQg
PSB0cnVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL0pT
T2JqZWN0R2V0UHJveHlUYXJnZXRUZXN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
dGVzdHMvSlNPYmplY3RHZXRQcm94eVRhcmdldFRlc3QuY3BwCmluZGV4IGNmMGM1MzY3YmRkN2U1
MGYxMzllMmU0ZjE3OTYyN2MyMjM5YjJiNGMuLjI4MmY3MzY2ZjcyN2FjMzFkNWUwMGYxOGMyYmYy
YzNmNWM5M2Y0NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMv
SlNPYmplY3RHZXRQcm94eVRhcmdldFRlc3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvdGVzdHMvSlNPYmplY3RHZXRQcm94eVRhcmdldFRlc3QuY3BwCkBAIC0zMSw3ICszMSw3
IEBACiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTT2JqZWN0UmVmUHJpdmF0
ZS5oIgogI2luY2x1ZGUgIkpTUHJveHkuaCIKLSNpbmNsdWRlICJKYXZhU2NyaXB0Q29yZS5oIgor
I2luY2x1ZGUgIkphdmFTY3JpcHQuaCIKICNpbmNsdWRlICJPcHRpb25zLmgiCiAjaW5jbHVkZSAi
UHJveHlPYmplY3QuaCIKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90
ZXN0cy9NdWx0aXRocmVhZGVkTXVsdGlWTUV4ZWN1dGlvblRlc3QuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS90ZXN0cy9NdWx0aXRocmVhZGVkTXVsdGlWTUV4ZWN1dGlvblRlc3QuY3Bw
CmluZGV4IGIxOTUxYTBhY2IwOTE5NWRmZjI0M2Y1ZDgyMmMwMjA2Nzc1NjdhOTUuLmI3OTMyNTg0
YjE1OGJmMjg2YWE0Y2FkNjJiMGJhNDIzNTUyNjg2ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvdGVzdHMvTXVsdGl0aHJlYWRlZE11bHRpVk1FeGVjdXRpb25UZXN0LmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL011bHRpdGhyZWFkZWRNdWx0
aVZNRXhlY3V0aW9uVGVzdC5jcHAKQEAgLTI4LDcgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkluaXRp
YWxpemVUaHJlYWRpbmcuaCIKICNpbmNsdWRlICJKU0NvbnRleHRSZWZQcml2YXRlLmgiCi0jaW5j
bHVkZSAiSmF2YVNjcmlwdENvcmUuaCIKKyNpbmNsdWRlICJKYXZhU2NyaXB0LmgiCiAjaW5jbHVk
ZSAiT3B0aW9ucy5oIgogI2luY2x1ZGUgPG11dGV4PgogI2luY2x1ZGUgPHN0cmluZz4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvUGluZ1BvbmdTdGFja092ZXJm
bG93VGVzdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL1BpbmdQb25nU3Rh
Y2tPdmVyZmxvd1Rlc3QuY3BwCmluZGV4IGVmNGI5MTRjMTFhMzk1YjViNmJmYTk1ZTMxYmE5MjFj
ODc4YzgwOTQuLjIzNWRjZWU1N2Q1OWU0NGQyOGVmM2JjMzRmMjgyNzI1ZTU3MzI1YmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvUGluZ1BvbmdTdGFja092ZXJm
bG93VGVzdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9QaW5nUG9u
Z1N0YWNrT3ZlcmZsb3dUZXN0LmNwcApAQCAtMjgsNyArMjgsNyBAQAogCiAjaW5jbHVkZSAiSW5p
dGlhbGl6ZVRocmVhZGluZy5oIgogI2luY2x1ZGUgIkpTQ29udGV4dFJlZlByaXZhdGUuaCIKLSNp
bmNsdWRlICJKYXZhU2NyaXB0Q29yZS5oIgorI2luY2x1ZGUgIkphdmFTY3JpcHQuaCIKICNpbmNs
dWRlICJPcHRpb25zLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL1R5cGVkQXJyYXlDVGVz
dC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL1R5cGVkQXJyYXlDVGVzdC5j
cHAKaW5kZXggOGVjOGNkZDVkYzJhMGE3ODY3OGQ4NGIzYzVmYjQ1MmM1ZTMxYTdlMi4uNDM4YWZl
OWE2NDMxMzE5MGJkOGFlOTY4MzNjNjBlZmIzNDkxN2IzYyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9UeXBlZEFycmF5Q1Rlc3QuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvVHlwZWRBcnJheUNUZXN0LmNwcApAQCAtMjYsNyArMjYs
OSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlR5cGVkQXJyYXlDVGVzdC5oIgog
Ci0jaW5jbHVkZSAiSmF2YVNjcmlwdENvcmUuaCIKKyNpbmNsdWRlICJKYXZhU2NyaXB0LmgiCisj
aW5jbHVkZSA8bGltaXRzLmg+CisjaW5jbHVkZSA8bWF0aC5oPgogI2luY2x1ZGUgPHd0Zi9Bc3Nl
cnRpb25zLmg+CiAKIGV4dGVybiAiQyIgdm9pZCBKU1N5bmNocm9ub3VzR2FyYmFnZUNvbGxlY3RG
b3JEZWJ1Z2dpbmcoSlNDb250ZXh0UmVmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0
cy90ZXN0YXBpLmMKaW5kZXggNDI2OGQwYzAyNGFiN2Q2ZDdiZTE3MTI0Y2Y0M2FmMjA1M2E0MDE5
Yy4uYzcxYjYwN2E2OTQ5N2ZlOTdjNDgyZjM0YjExMzAzYWY5MTE4ZWZhZiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLmMKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLmMKQEAgLTI1LDcgKzI1LDEyIEBACiAKICNp
bmNsdWRlIDx3dGYvUGxhdGZvcm0uaD4KIAorI2lmIFVTRShDRikKICNpbmNsdWRlICJKYXZhU2Ny
aXB0Q29yZS5oIgorI2Vsc2UKKyNpbmNsdWRlICJKYXZhU2NyaXB0LmgiCisjZW5kaWYKKwogI2lu
Y2x1ZGUgIkpTQmFzZVByaXZhdGUuaCIKICNpbmNsdWRlICJKU0NvbnRleHRSZWZQcml2YXRlLmgi
CiAjaW5jbHVkZSAiSlNIZWFwRmluYWxpemVyUHJpdmF0ZS5oIgpAQCAtMzUsNiArNDAsMTAgQEAK
ICNpbmNsdWRlICJKU1N0cmluZ1JlZlByaXZhdGUuaCIKICNpbmNsdWRlICJKU1dlYWtQcml2YXRl
LmgiCiAjaW5jbHVkZSA8bWF0aC5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3Rk
bGliLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8dGltZS5oPgogI2RlZmluZSBB
U1NFUlRfRElTQUJMRUQgMAogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAKQEAgLTExMyw2
ICsxMjIsNyBAQCBzdGF0aWMgdm9pZCBhc3NlcnRFcXVhbHNBc0NoYXJhY3RlcnNQdHIoSlNWYWx1
ZVJlZiB2YWx1ZSwgY29uc3QgY2hhciogZXhwZWN0ZWRWYQogewogICAgIEpTU3RyaW5nUmVmIHZh
bHVlQXNTdHJpbmcgPSBKU1ZhbHVlVG9TdHJpbmdDb3B5KGNvbnRleHQsIHZhbHVlLCBOVUxMKTsK
IAorI2lmIFVTRShDRikKICAgICBzaXplX3QganNMZW5ndGggPSBKU1N0cmluZ0dldExlbmd0aCh2
YWx1ZUFzU3RyaW5nKTsKICAgICBjb25zdCBKU0NoYXIqIGpzQnVmZmVyID0gSlNTdHJpbmdHZXRD
aGFyYWN0ZXJzUHRyKHZhbHVlQXNTdHJpbmcpOwogCkBAIC0xMzksNiArMTQ5LDE4IEBAIHN0YXRp
YyB2b2lkIGFzc2VydEVxdWFsc0FzQ2hhcmFjdGVyc1B0cihKU1ZhbHVlUmVmIHZhbHVlLCBjb25z
dCBjaGFyKiBleHBlY3RlZFZhCiAgICAgfQogCiAgICAgZnJlZShjZkJ1ZmZlcik7CisjZWxzZQor
ICAgIHNpemVfdCBidWZmZXJTaXplID0gSlNTdHJpbmdHZXRNYXhpbXVtVVRGOENTdHJpbmdTaXpl
KHZhbHVlQXNTdHJpbmcpOworICAgIGNoYXIqIGJ1ZmZlciA9IChjaGFyKiltYWxsb2MoYnVmZmVy
U2l6ZSk7CisgICAgSlNTdHJpbmdHZXRVVEY4Q1N0cmluZyh2YWx1ZUFzU3RyaW5nLCBidWZmZXIs
IGJ1ZmZlclNpemUpOworCisgICAgaWYgKHN0cmNtcChidWZmZXIsIGV4cGVjdGVkVmFsdWUpKSB7
CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiYXNzZXJ0RXF1YWxzQXNDaGFyYWN0ZXJzUHRyIGZh
aWxlZDoganNCdWZmZXIgIT0gY2ZCdWZmZXJcbiIpOworICAgICAgICBmYWlsZWQgPSAxOworICAg
IH0KKworICAgIGZyZWUoYnVmZmVyKTsKKyNlbmRpZgogICAgIEpTU3RyaW5nUmVsZWFzZSh2YWx1
ZUFzU3RyaW5nKTsKIH0KIApAQCAtMTEzOCw5ICsxMTYwLDEyIEBAIHN0YXRpYyB2b2lkIG1hcmtp
bmdDb25zdHJhaW50KEpTTWFya2VyUmVmIG1hcmtlciwgdm9pZCAqdXNlckRhdGEpCiAgICAgd2Vh
a1JlZnMgPSAoSlNXZWFrUmVmKil1c2VyRGF0YTsKICAgICAKICAgICBmb3IgKGkgPSAwOyBpIDwg
bnVtV2Vha1JlZnM7IGkgKz0gMikgewotICAgICAgICBKU09iamVjdFJlZiBvYmplY3QgPSBKU1dl
YWtHZXRPYmplY3Qod2Vha1JlZnNbaV0pOwotICAgICAgICBtYXJrZXItPk1hcmsobWFya2VyLCBv
YmplY3QpOwotICAgICAgICBhc3NlcnRUcnVlKG1hcmtlci0+SXNNYXJrZWQobWFya2VyLCBvYmpl
Y3QpLCAiQSBtYXJrZWQgb2JqZWN0IGlzIG1hcmtlZCIpOworICAgICAgICBKU1dlYWtSZWYgd2Vh
a1JlZiA9IHdlYWtSZWZzW2ldOworICAgICAgICBpZiAod2Vha1JlZikgeworICAgICAgICAgICAg
SlNPYmplY3RSZWYgb2JqZWN0ID0gSlNXZWFrR2V0T2JqZWN0KHdlYWtSZWZzW2ldKTsKKyAgICAg
ICAgICAgIG1hcmtlci0+TWFyayhtYXJrZXIsIG9iamVjdCk7CisgICAgICAgICAgICBhc3NlcnRU
cnVlKG1hcmtlci0+SXNNYXJrZWQobWFya2VyLCBvYmplY3QpLCAiQSBtYXJrZWQgb2JqZWN0IGlz
IG1hcmtlZCIpOworICAgICAgICB9CiAgICAgfQogfQogCkBAIC0xMTkwLDggKzEyMTUsMTEgQEAg
c3RhdGljIHZvaWQgdGVzdE1hcmtpbmdDb25zdHJhaW50c0FuZEhlYXBGaW5hbGl6ZXJzKHZvaWQp
CiAgICAgCiAgICAgYXNzZXJ0VHJ1ZShkZWFkQ291bnQgIT0gMCwgIkF0IGxlYXN0IHNvbWUgb2Jq
ZWN0cyBkaWVkIik7CiAgICAgCi0gICAgZm9yIChpID0gbnVtV2Vha1JlZnM7IGktLTspCi0gICAg
ICAgIEpTV2Vha1JlbGVhc2UoZ3JvdXAsIHdlYWtSZWZzW2ldKTsKKyAgICBmb3IgKGkgPSBudW1X
ZWFrUmVmczsgaS0tOykgeworICAgICAgICBKU1dlYWtSZWYgd2Vha1JlZiA9IHdlYWtSZWZzW2ld
OworICAgICAgICB3ZWFrUmVmc1tpXSA9IE5VTEw7CisgICAgICAgIEpTV2Vha1JlbGVhc2UoZ3Jv
dXAsIHdlYWtSZWYpOworICAgIH0KICAgICAKICAgICBkaWRSdW5IZWFwRmluYWxpemVyID0gZmFs
c2U7CiAgICAgSlNTeW5jaHJvbm91c0dhcmJhZ2VDb2xsZWN0Rm9yRGVidWdnaW5nKGNvbnRleHQp
OwpAQCAtMTIwOCw2ICsxMjM2LDEwNSBAQCBzdGF0aWMgdm9pZCB0ZXN0TWFya2luZ0NvbnN0cmFp
bnRzQW5kSGVhcEZpbmFsaXplcnModm9pZCkKICAgICBwcmludGYoIlBBU1M6IE1hcmtpbmcgQ29u
c3RyYWludHMgYW5kIEhlYXAgRmluYWxpemVycy5cbiIpOwogfQogCisjaWYgVVNFKENGKQorc3Rh
dGljIHZvaWQgdGVzdENGU3RyaW5ncyh2b2lkKQoreworICAgIEpTR2xvYmFsQ29udGV4dFJlZiBj
b250ZXh0ID0gSlNHbG9iYWxDb250ZXh0Q3JlYXRlKDApOworCisgICAgVW5pQ2hhciBzaW5nbGVV
bmlDaGFyID0gNjU7IC8vIENhcGl0YWwgQQorICAgIENGTXV0YWJsZVN0cmluZ1JlZiBjZlN0cmlu
ZyA9IENGU3RyaW5nQ3JlYXRlTXV0YWJsZVdpdGhFeHRlcm5hbENoYXJhY3RlcnNOb0NvcHkoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgJnNpbmdsZVVuaUNoYXIsIDEsIDEsIGtDRkFsbG9jYXRvck51bGwp
OworCisgICAgSlNTdHJpbmdSZWYganNDRklTdHJpbmcgPSBKU1N0cmluZ0NyZWF0ZVdpdGhDRlN0
cmluZyhjZlN0cmluZyk7CisgICAgSlNWYWx1ZVJlZiBqc0NGU3RyaW5nID0gSlNWYWx1ZU1ha2VT
dHJpbmcoY29udGV4dCwganNDRklTdHJpbmcpOworCisgICAgQ0ZTdHJpbmdSZWYgY2ZFbXB0eVN0
cmluZyA9IENGU3RyaW5nQ3JlYXRlV2l0aENTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgIiIs
IGtDRlN0cmluZ0VuY29kaW5nVVRGOCk7CisKKyAgICBKU1N0cmluZ1JlZiBqc0NGRW1wdHlJU3Ry
aW5nID0gSlNTdHJpbmdDcmVhdGVXaXRoQ0ZTdHJpbmcoY2ZFbXB0eVN0cmluZyk7CisgICAgSlNW
YWx1ZVJlZiBqc0NGRW1wdHlTdHJpbmcgPSBKU1ZhbHVlTWFrZVN0cmluZyhjb250ZXh0LCBqc0NG
RW1wdHlJU3RyaW5nKTsKKworICAgIENGSW5kZXggY2ZTdHJpbmdMZW5ndGggPSBDRlN0cmluZ0dl
dExlbmd0aChjZlN0cmluZyk7CisgICAgVW5pQ2hhciogYnVmZmVyID0gKFVuaUNoYXIqKW1hbGxv
YyhjZlN0cmluZ0xlbmd0aCAqIHNpemVvZihVbmlDaGFyKSk7CisgICAgQ0ZTdHJpbmdHZXRDaGFy
YWN0ZXJzKGNmU3RyaW5nLCBDRlJhbmdlTWFrZSgwLCBjZlN0cmluZ0xlbmd0aCksIGJ1ZmZlcik7
CisgICAgSlNTdHJpbmdSZWYganNDRklTdHJpbmdXaXRoQ2hhcmFjdGVycyA9IEpTU3RyaW5nQ3Jl
YXRlV2l0aENoYXJhY3RlcnMoKEpTQ2hhciopYnVmZmVyLCBjZlN0cmluZ0xlbmd0aCk7CisgICAg
SlNWYWx1ZVJlZiBqc0NGU3RyaW5nV2l0aENoYXJhY3RlcnMgPSBKU1ZhbHVlTWFrZVN0cmluZyhj
b250ZXh0LCBqc0NGSVN0cmluZ1dpdGhDaGFyYWN0ZXJzKTsKKworICAgIEpTU3RyaW5nUmVmIGpz
Q0ZFbXB0eUlTdHJpbmdXaXRoQ2hhcmFjdGVycyA9IEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3Rl
cnMoKEpTQ2hhciopYnVmZmVyLCBDRlN0cmluZ0dldExlbmd0aChjZkVtcHR5U3RyaW5nKSk7Cisg
ICAgZnJlZShidWZmZXIpOworICAgIEpTVmFsdWVSZWYganNDRkVtcHR5U3RyaW5nV2l0aENoYXJh
Y3RlcnMgPSBKU1ZhbHVlTWFrZVN0cmluZyhjb250ZXh0LCBqc0NGRW1wdHlJU3RyaW5nV2l0aENo
YXJhY3RlcnMpOworCisgICAgQVNTRVJUKEpTVmFsdWVHZXRUeXBlKGNvbnRleHQsIGpzQ0ZTdHJp
bmcpID09IGtKU1R5cGVTdHJpbmcpOworICAgIEFTU0VSVChKU1ZhbHVlR2V0VHlwZShjb250ZXh0
LCBqc0NGU3RyaW5nV2l0aENoYXJhY3RlcnMpID09IGtKU1R5cGVTdHJpbmcpOworICAgIEFTU0VS
VChKU1ZhbHVlR2V0VHlwZShjb250ZXh0LCBqc0NGRW1wdHlTdHJpbmcpID09IGtKU1R5cGVTdHJp
bmcpOworICAgIEFTU0VSVChKU1ZhbHVlR2V0VHlwZShjb250ZXh0LCBqc0NGRW1wdHlTdHJpbmdX
aXRoQ2hhcmFjdGVycykgPT0ga0pTVHlwZVN0cmluZyk7CisKKyAgICBKU1N0cmluZ1JlZiBlbXB0
eVN0cmluZyA9IEpTU3RyaW5nQ3JlYXRlV2l0aENGU3RyaW5nKENGU1RSKCIiKSk7CisgICAgY29u
c3QgSlNDaGFyKiBjaGFyYWN0ZXJzID0gSlNTdHJpbmdHZXRDaGFyYWN0ZXJzUHRyKGVtcHR5U3Ry
aW5nKTsKKyAgICBpZiAoIWNoYXJhY3RlcnMpIHsKKyAgICAgICAgcHJpbnRmKCJGQUlMOiBSZXR1
cm5lZCBudWxsIHdoZW4gYWNjZXNzaW5nIGNoYXJhY3RlciBwb2ludGVyIG9mIGFuIGVtcHR5IFN0
cmluZy5cbiIpOworICAgICAgICBmYWlsZWQgPSAxOworICAgIH0gZWxzZQorICAgICAgICBwcmlu
dGYoIlBBU1M6IHJldHVybmVkIGVtcHR5IHdoZW4gYWNjZXNzaW5nIGNoYXJhY3RlciBwb2ludGVy
IG9mIGFuIGVtcHR5IFN0cmluZy5cbiIpOworCisgICAgc2l6ZV90IGxlbmd0aCA9IEpTU3RyaW5n
R2V0TGVuZ3RoKGVtcHR5U3RyaW5nKTsKKyAgICBpZiAobGVuZ3RoKSB7CisgICAgICAgIHByaW50
ZigiRkFJTDogRGlkbid0IHJldHVybiAwIGxlbmd0aCBmb3IgZW1wdHkgU3RyaW5nLlxuIik7Cisg
ICAgICAgIGZhaWxlZCA9IDE7CisgICAgfSBlbHNlCisgICAgICAgIHByaW50ZigiUEFTUzogcmV0
dXJuZWQgMCBsZW5ndGggZm9yIGVtcHR5IFN0cmluZy5cbiIpOworICAgIEpTU3RyaW5nUmVsZWFz
ZShlbXB0eVN0cmluZyk7CisKKyAgICBhc3NlcnRFcXVhbHNBc0Jvb2xlYW4oanNDRlN0cmluZywg
dHJ1ZSk7CisgICAgYXNzZXJ0RXF1YWxzQXNCb29sZWFuKGpzQ0ZTdHJpbmdXaXRoQ2hhcmFjdGVy
cywgdHJ1ZSk7CisgICAgYXNzZXJ0RXF1YWxzQXNCb29sZWFuKGpzQ0ZFbXB0eVN0cmluZywgZmFs
c2UpOworICAgIGFzc2VydEVxdWFsc0FzQm9vbGVhbihqc0NGRW1wdHlTdHJpbmdXaXRoQ2hhcmFj
dGVycywgZmFsc2UpOworCisgICAgYXNzZXJ0RXF1YWxzQXNOdW1iZXIoanNDRlN0cmluZywgbmFu
KCIiKSk7CisgICAgYXNzZXJ0RXF1YWxzQXNOdW1iZXIoanNDRlN0cmluZ1dpdGhDaGFyYWN0ZXJz
LCBuYW4oIiIpKTsKKyAgICBhc3NlcnRFcXVhbHNBc051bWJlcihqc0NGRW1wdHlTdHJpbmcsIDAp
OworICAgIGFzc2VydEVxdWFsc0FzTnVtYmVyKGpzQ0ZFbXB0eVN0cmluZ1dpdGhDaGFyYWN0ZXJz
LCAwKTsKKyAgICBBU1NFUlQoc2l6ZW9mKEpTQ2hhcikgPT0gc2l6ZW9mKFVuaUNoYXIpKTsKKwor
ICAgIGFzc2VydEVxdWFsc0FzQ2hhcmFjdGVyc1B0cihqc0NGU3RyaW5nLCAiQSIpOworICAgIGFz
c2VydEVxdWFsc0FzQ2hhcmFjdGVyc1B0cihqc0NGU3RyaW5nV2l0aENoYXJhY3RlcnMsICJBIik7
CisgICAgYXNzZXJ0RXF1YWxzQXNDaGFyYWN0ZXJzUHRyKGpzQ0ZFbXB0eVN0cmluZywgIiIpOwor
ICAgIGFzc2VydEVxdWFsc0FzQ2hhcmFjdGVyc1B0cihqc0NGRW1wdHlTdHJpbmdXaXRoQ2hhcmFj
dGVycywgIiIpOworCisgICAgYXNzZXJ0RXF1YWxzQXNVVEY4U3RyaW5nKGpzQ0ZTdHJpbmcsICJB
Iik7CisgICAgYXNzZXJ0RXF1YWxzQXNVVEY4U3RyaW5nKGpzQ0ZTdHJpbmdXaXRoQ2hhcmFjdGVy
cywgIkEiKTsKKyAgICBhc3NlcnRFcXVhbHNBc1VURjhTdHJpbmcoanNDRkVtcHR5U3RyaW5nLCAi
Iik7CisgICAgYXNzZXJ0RXF1YWxzQXNVVEY4U3RyaW5nKGpzQ0ZFbXB0eVN0cmluZ1dpdGhDaGFy
YWN0ZXJzLCAiIik7CisKKyAgICBDRlN0cmluZ1JlZiBjZkpTU3RyaW5nID0gSlNTdHJpbmdDb3B5
Q0ZTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwganNDRklTdHJpbmcpOworICAgIENGU3RyaW5n
UmVmIGNmSlNFbXB0eVN0cmluZyA9IEpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIGpzQ0ZFbXB0eUlTdHJpbmcpOworICAgIEFTU0VSVChDRkVxdWFsKGNmSlNTdHJpbmcs
IGNmU3RyaW5nKSk7CisgICAgQVNTRVJUKENGRXF1YWwoY2ZKU0VtcHR5U3RyaW5nLCBjZkVtcHR5
U3RyaW5nKSk7CisgICAgQ0ZSZWxlYXNlKGNmSlNTdHJpbmcpOworICAgIENGUmVsZWFzZShjZkpT
RW1wdHlTdHJpbmcpOworCisgICAgSlNPYmplY3RSZWYgbyA9IEpTT2JqZWN0TWFrZShjb250ZXh0
LCBOVUxMLCBOVUxMKTsKKyAgICBKU1N0cmluZ1JlZiBqc09uZUlTdHJpbmcgPSBKU1N0cmluZ0Ny
ZWF0ZVdpdGhVVEY4Q1N0cmluZygiMSIpOworICAgIEpTT2JqZWN0U2V0UHJvcGVydHkoY29udGV4
dCwgbywganNPbmVJU3RyaW5nLCBKU1ZhbHVlTWFrZU51bWJlcihjb250ZXh0LCAxKSwga0pTUHJv
cGVydHlBdHRyaWJ1dGVOb25lLCBOVUxMKTsKKyAgICBKU09iamVjdFNldFByb3BlcnR5KGNvbnRl
eHQsIG8sIGpzQ0ZJU3RyaW5nLCAgSlNWYWx1ZU1ha2VOdW1iZXIoY29udGV4dCwgMSksIGtKU1By
b3BlcnR5QXR0cmlidXRlRG9udEVudW0sIE5VTEwpOworICAgIEpTUHJvcGVydHlOYW1lQXJyYXlS
ZWYgbmFtZUFycmF5ID0gSlNPYmplY3RDb3B5UHJvcGVydHlOYW1lcyhjb250ZXh0LCBvKTsKKyAg
ICBzaXplX3QgZXhwZWN0ZWRDb3VudCA9IEpTUHJvcGVydHlOYW1lQXJyYXlHZXRDb3VudChuYW1l
QXJyYXkpOworICAgIHNpemVfdCBjb3VudDsKKyAgICBmb3IgKGNvdW50ID0gMDsgY291bnQgPCBl
eHBlY3RlZENvdW50OyArK2NvdW50KQorICAgICAgICBKU1Byb3BlcnR5TmFtZUFycmF5R2V0TmFt
ZUF0SW5kZXgobmFtZUFycmF5LCBjb3VudCk7CisgICAgSlNQcm9wZXJ0eU5hbWVBcnJheVJlbGVh
c2UobmFtZUFycmF5KTsKKyAgICBBU1NFUlQoY291bnQgPT0gMSk7IC8vIGpzQ0ZTdHJpbmcgc2hv
dWxkIG5vdCBiZSBlbnVtZXJhdGVkCisKKyAgICBKU1N0cmluZ1JlbGVhc2UoanNPbmVJU3RyaW5n
KTsKKyAgICBKU1N0cmluZ1JlbGVhc2UoanNDRklTdHJpbmcpOworICAgIEpTU3RyaW5nUmVsZWFz
ZShqc0NGRW1wdHlJU3RyaW5nKTsKKyAgICBKU1N0cmluZ1JlbGVhc2UoanNDRklTdHJpbmdXaXRo
Q2hhcmFjdGVycyk7CisgICAgSlNTdHJpbmdSZWxlYXNlKGpzQ0ZFbXB0eUlTdHJpbmdXaXRoQ2hh
cmFjdGVycyk7CisgICAgQ0ZSZWxlYXNlKGNmU3RyaW5nKTsKKyAgICBDRlJlbGVhc2UoY2ZFbXB0
eVN0cmluZyk7CisKKyAgICBKU0dsb2JhbENvbnRleHRSZWxlYXNlKGNvbnRleHQpOworfQorI2Vu
ZGlmCisKIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiB7CiAjaWYgT1MoV0lORE9X
UykKQEAgLTEyNDAsNiArMTM2NywxMCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltd
KQogCiAgICAgdGVzdE1hcmtpbmdDb25zdHJhaW50c0FuZEhlYXBGaW5hbGl6ZXJzKCk7CiAKKyNp
ZiBVU0UoQ0YpCisgICAgdGVzdENGU3RyaW5ncygpOworI2VuZGlmCisKICAgICBKU0NsYXNzRGVm
aW5pdGlvbiBnbG9iYWxPYmplY3RDbGFzc0RlZmluaXRpb24gPSBrSlNDbGFzc0RlZmluaXRpb25F
bXB0eTsKICAgICBnbG9iYWxPYmplY3RDbGFzc0RlZmluaXRpb24uaW5pdGlhbGl6ZSA9IGdsb2Jh
bE9iamVjdF9pbml0aWFsaXplOwogICAgIGdsb2JhbE9iamVjdENsYXNzRGVmaW5pdGlvbi5zdGF0
aWNWYWx1ZXMgPSBnbG9iYWxPYmplY3Rfc3RhdGljVmFsdWVzOwpAQCAtMTI4NSwzNCArMTQxNiw2
IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAgSlNTdHJpbmdSZWYganNP
bmVJU3RyaW5nID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIjEiKTsKICAgICBKU1Zh
bHVlUmVmIGpzT25lU3RyaW5nID0gSlNWYWx1ZU1ha2VTdHJpbmcoY29udGV4dCwganNPbmVJU3Ry
aW5nKTsKIAotICAgIFVuaUNoYXIgc2luZ2xlVW5pQ2hhciA9IDY1OyAvLyBDYXBpdGFsIEEKLSAg
ICBDRk11dGFibGVTdHJpbmdSZWYgY2ZTdHJpbmcgPSAKLSAgICAgICAgQ0ZTdHJpbmdDcmVhdGVN
dXRhYmxlV2l0aEV4dGVybmFsQ2hhcmFjdGVyc05vQ29weShrQ0ZBbGxvY2F0b3JEZWZhdWx0LAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICZzaW5nbGVVbmlDaGFyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrQ0ZBbGxvY2F0b3JOdWxsKTsKLQotICAgIEpT
U3RyaW5nUmVmIGpzQ0ZJU3RyaW5nID0gSlNTdHJpbmdDcmVhdGVXaXRoQ0ZTdHJpbmcoY2ZTdHJp
bmcpOwotICAgIEpTVmFsdWVSZWYganNDRlN0cmluZyA9IEpTVmFsdWVNYWtlU3RyaW5nKGNvbnRl
eHQsIGpzQ0ZJU3RyaW5nKTsKLSAgICAKLSAgICBDRlN0cmluZ1JlZiBjZkVtcHR5U3RyaW5nID0g
Q0ZTdHJpbmdDcmVhdGVXaXRoQ1N0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAiIiwga0NGU3Ry
aW5nRW5jb2RpbmdVVEY4KTsKLSAgICAKLSAgICBKU1N0cmluZ1JlZiBqc0NGRW1wdHlJU3RyaW5n
ID0gSlNTdHJpbmdDcmVhdGVXaXRoQ0ZTdHJpbmcoY2ZFbXB0eVN0cmluZyk7Ci0gICAgSlNWYWx1
ZVJlZiBqc0NGRW1wdHlTdHJpbmcgPSBKU1ZhbHVlTWFrZVN0cmluZyhjb250ZXh0LCBqc0NGRW1w
dHlJU3RyaW5nKTsKLQotICAgIENGSW5kZXggY2ZTdHJpbmdMZW5ndGggPSBDRlN0cmluZ0dldExl
bmd0aChjZlN0cmluZyk7Ci0gICAgVW5pQ2hhciogYnVmZmVyID0gKFVuaUNoYXIqKW1hbGxvYyhj
ZlN0cmluZ0xlbmd0aCAqIHNpemVvZihVbmlDaGFyKSk7Ci0gICAgQ0ZTdHJpbmdHZXRDaGFyYWN0
ZXJzKGNmU3RyaW5nLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgQ0ZSYW5nZU1ha2UoMCwg
Y2ZTdHJpbmdMZW5ndGgpLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyKTsKLSAg
ICBKU1N0cmluZ1JlZiBqc0NGSVN0cmluZ1dpdGhDaGFyYWN0ZXJzID0gSlNTdHJpbmdDcmVhdGVX
aXRoQ2hhcmFjdGVycygoSlNDaGFyKilidWZmZXIsIGNmU3RyaW5nTGVuZ3RoKTsKLSAgICBKU1Zh
bHVlUmVmIGpzQ0ZTdHJpbmdXaXRoQ2hhcmFjdGVycyA9IEpTVmFsdWVNYWtlU3RyaW5nKGNvbnRl
eHQsIGpzQ0ZJU3RyaW5nV2l0aENoYXJhY3RlcnMpOwotICAgIAotICAgIEpTU3RyaW5nUmVmIGpz
Q0ZFbXB0eUlTdHJpbmdXaXRoQ2hhcmFjdGVycyA9IEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3Rl
cnMoKEpTQ2hhciopYnVmZmVyLCBDRlN0cmluZ0dldExlbmd0aChjZkVtcHR5U3RyaW5nKSk7Ci0g
ICAgZnJlZShidWZmZXIpOwotICAgIEpTVmFsdWVSZWYganNDRkVtcHR5U3RyaW5nV2l0aENoYXJh
Y3RlcnMgPSBKU1ZhbHVlTWFrZVN0cmluZyhjb250ZXh0LCBqc0NGRW1wdHlJU3RyaW5nV2l0aENo
YXJhY3RlcnMpOwotCiAgICAgSlNDaGFyIGNvbnN0YW50U3RyaW5nW10gPSB7ICdIJywgJ2UnLCAn
bCcsICdsJywgJ28nLCB9OwogICAgIEpTU3RyaW5nUmVmIGNvbnN0YW50U3RyaW5nUmVmID0gSlNT
dHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVyc05vQ29weShjb25zdGFudFN0cmluZywgc2l6ZW9mKGNv
bnN0YW50U3RyaW5nKSAvIHNpemVvZihjb25zdGFudFN0cmluZ1swXSkpOwogICAgIEFTU0VSVChK
U1N0cmluZ0dldENoYXJhY3RlcnNQdHIoY29uc3RhbnRTdHJpbmdSZWYpID09IGNvbnN0YW50U3Ry
aW5nKTsKQEAgLTEzMjgsMTAgKzE0MzEsNiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJn
dltdKQogICAgIEFTU0VSVChKU1ZhbHVlR2V0VHlwZShjb250ZXh0LCBqc09uZVRoaXJkKSA9PSBr
SlNUeXBlTnVtYmVyKTsKICAgICBBU1NFUlQoSlNWYWx1ZUdldFR5cGUoY29udGV4dCwganNFbXB0
eVN0cmluZykgPT0ga0pTVHlwZVN0cmluZyk7CiAgICAgQVNTRVJUKEpTVmFsdWVHZXRUeXBlKGNv
bnRleHQsIGpzT25lU3RyaW5nKSA9PSBrSlNUeXBlU3RyaW5nKTsKLSAgICBBU1NFUlQoSlNWYWx1
ZUdldFR5cGUoY29udGV4dCwganNDRlN0cmluZykgPT0ga0pTVHlwZVN0cmluZyk7Ci0gICAgQVNT
RVJUKEpTVmFsdWVHZXRUeXBlKGNvbnRleHQsIGpzQ0ZTdHJpbmdXaXRoQ2hhcmFjdGVycykgPT0g
a0pTVHlwZVN0cmluZyk7Ci0gICAgQVNTRVJUKEpTVmFsdWVHZXRUeXBlKGNvbnRleHQsIGpzQ0ZF
bXB0eVN0cmluZykgPT0ga0pTVHlwZVN0cmluZyk7Ci0gICAgQVNTRVJUKEpTVmFsdWVHZXRUeXBl
KGNvbnRleHQsIGpzQ0ZFbXB0eVN0cmluZ1dpdGhDaGFyYWN0ZXJzKSA9PSBrSlNUeXBlU3RyaW5n
KTsKIAogICAgIEFTU0VSVCghSlNWYWx1ZUlzQm9vbGVhbihjb250ZXh0LCBOVUxMKSk7CiAgICAg
QVNTRVJUKCFKU1ZhbHVlSXNPYmplY3QoY29udGV4dCwgTlVMTCkpOwpAQCAtMTM1NCwxNCArMTQ1
Myw2IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAgfSBlbHNlCiAgICAg
ICAgIHByaW50ZigiUEFTUzogcmV0dXJuZWQgbnVsbCB3aGVuIGFjY2Vzc2luZyBjaGFyYWN0ZXIg
cG9pbnRlciBvZiBhIG51bGwgU3RyaW5nLlxuIik7CiAKLSAgICBKU1N0cmluZ1JlZiBlbXB0eVN0
cmluZyA9IEpTU3RyaW5nQ3JlYXRlV2l0aENGU3RyaW5nKENGU1RSKCIiKSk7Ci0gICAgY2hhcmFj
dGVycyA9IEpTU3RyaW5nR2V0Q2hhcmFjdGVyc1B0cihlbXB0eVN0cmluZyk7Ci0gICAgaWYgKCFj
aGFyYWN0ZXJzKSB7Ci0gICAgICAgIHByaW50ZigiRkFJTDogUmV0dXJuZWQgbnVsbCB3aGVuIGFj
Y2Vzc2luZyBjaGFyYWN0ZXIgcG9pbnRlciBvZiBhbiBlbXB0eSBTdHJpbmcuXG4iKTsKLSAgICAg
ICAgZmFpbGVkID0gMTsKLSAgICB9IGVsc2UKLSAgICAgICAgcHJpbnRmKCJQQVNTOiByZXR1cm5l
ZCBlbXB0eSB3aGVuIGFjY2Vzc2luZyBjaGFyYWN0ZXIgcG9pbnRlciBvZiBhbiBlbXB0eSBTdHJp
bmcuXG4iKTsKLQogICAgIHNpemVfdCBsZW5ndGggPSBKU1N0cmluZ0dldExlbmd0aChudWxsU3Ry
aW5nKTsKICAgICBpZiAobGVuZ3RoKSB7CiAgICAgICAgIHByaW50ZigiRkFJTDogRGlkbid0IHJl
dHVybiAwIGxlbmd0aCBmb3IgbnVsbCBTdHJpbmcuXG4iKTsKQEAgLTEzNzAsMTQgKzE0NjEsNiBA
QCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQogICAgICAgICBwcmludGYoIlBBU1M6
IHJldHVybmVkIDAgbGVuZ3RoIGZvciBudWxsIFN0cmluZy5cbiIpOwogICAgIEpTU3RyaW5nUmVs
ZWFzZShudWxsU3RyaW5nKTsKIAotICAgIGxlbmd0aCA9IEpTU3RyaW5nR2V0TGVuZ3RoKGVtcHR5
U3RyaW5nKTsKLSAgICBpZiAobGVuZ3RoKSB7Ci0gICAgICAgIHByaW50ZigiRkFJTDogRGlkbid0
IHJldHVybiAwIGxlbmd0aCBmb3IgZW1wdHkgU3RyaW5nLlxuIik7Ci0gICAgICAgIGZhaWxlZCA9
IDE7Ci0gICAgfSBlbHNlCi0gICAgICAgIHByaW50ZigiUEFTUzogcmV0dXJuZWQgMCBsZW5ndGgg
Zm9yIGVtcHR5IFN0cmluZy5cbiIpOwotICAgIEpTU3RyaW5nUmVsZWFzZShlbXB0eVN0cmluZyk7
Ci0KICAgICBKU09iamVjdFJlZiBwcm9wZXJ0eUNhdGNoYWxscyA9IEpTT2JqZWN0TWFrZShjb250
ZXh0LCBQcm9wZXJ0eUNhdGNoYWxsc19jbGFzcyhjb250ZXh0KSwgTlVMTCk7CiAgICAgSlNTdHJp
bmdSZWYgcHJvcGVydHlDYXRjaGFsbHNTdHJpbmcgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiUHJvcGVydHlDYXRjaGFsbHMiKTsKICAgICBKU09iamVjdFNldFByb3BlcnR5KGNvbnRl
eHQsIGdsb2JhbE9iamVjdCwgcHJvcGVydHlDYXRjaGFsbHNTdHJpbmcsIHByb3BlcnR5Q2F0Y2hh
bGxzLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZU5vbmUsIE5VTEwpOwpAQCAtMTQzMyw3ICsxNTE2LDgg
QEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKIAogICAgIEpTR2FyYmFnZUNvbGxl
Y3QoY29udGV4dCk7CiAKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IDEwMDAwOyBpKyspCisgICAg
aW50IGk7CisgICAgZm9yIChpID0gMDsgaSA8IDEwMDAwOyBpKyspCiAgICAgICAgIEpTT2JqZWN0
TWFrZShjb250ZXh0LCAwLCAwKTsKIAogICAgIGFIZWFwUmVmID0gSlNWYWx1ZVRvT2JqZWN0KGNv
bnRleHQsIEpTT2JqZWN0R2V0UHJpdmF0ZVByb3BlcnR5KGNvbnRleHQsIG15T2JqZWN0LCBwcml2
YXRlUHJvcGVydHlOYW1lKSwgMCk7CkBAIC0xNTU3LDEwICsxNjQxLDYgQEAgaW50IG1haW4oaW50
IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKICAgICBhc3NlcnRFcXVhbHNBc0Jvb2xlYW4oanNPbmVUaGly
ZCwgdHJ1ZSk7CiAgICAgYXNzZXJ0RXF1YWxzQXNCb29sZWFuKGpzRW1wdHlTdHJpbmcsIGZhbHNl
KTsKICAgICBhc3NlcnRFcXVhbHNBc0Jvb2xlYW4oanNPbmVTdHJpbmcsIHRydWUpOwotICAgIGFz
c2VydEVxdWFsc0FzQm9vbGVhbihqc0NGU3RyaW5nLCB0cnVlKTsKLSAgICBhc3NlcnRFcXVhbHNB
c0Jvb2xlYW4oanNDRlN0cmluZ1dpdGhDaGFyYWN0ZXJzLCB0cnVlKTsKLSAgICBhc3NlcnRFcXVh
bHNBc0Jvb2xlYW4oanNDRkVtcHR5U3RyaW5nLCBmYWxzZSk7Ci0gICAgYXNzZXJ0RXF1YWxzQXNC
b29sZWFuKGpzQ0ZFbXB0eVN0cmluZ1dpdGhDaGFyYWN0ZXJzLCBmYWxzZSk7CiAgICAgCiAgICAg
YXNzZXJ0RXF1YWxzQXNOdW1iZXIoanNVbmRlZmluZWQsIG5hbigiIikpOwogICAgIGFzc2VydEVx
dWFsc0FzTnVtYmVyKGpzTnVsbCwgMCk7CkBAIC0xNTcxLDExICsxNjUxLDYgQEAgaW50IG1haW4o
aW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKICAgICBhc3NlcnRFcXVhbHNBc051bWJlcihqc09uZVRo
aXJkLCAxLjAgLyAzLjApOwogICAgIGFzc2VydEVxdWFsc0FzTnVtYmVyKGpzRW1wdHlTdHJpbmcs
IDApOwogICAgIGFzc2VydEVxdWFsc0FzTnVtYmVyKGpzT25lU3RyaW5nLCAxKTsKLSAgICBhc3Nl
cnRFcXVhbHNBc051bWJlcihqc0NGU3RyaW5nLCBuYW4oIiIpKTsKLSAgICBhc3NlcnRFcXVhbHNB
c051bWJlcihqc0NGU3RyaW5nV2l0aENoYXJhY3RlcnMsIG5hbigiIikpOwotICAgIGFzc2VydEVx
dWFsc0FzTnVtYmVyKGpzQ0ZFbXB0eVN0cmluZywgMCk7Ci0gICAgYXNzZXJ0RXF1YWxzQXNOdW1i
ZXIoanNDRkVtcHR5U3RyaW5nV2l0aENoYXJhY3RlcnMsIDApOwotICAgIEFTU0VSVChzaXplb2Yo
SlNDaGFyKSA9PSBzaXplb2YoVW5pQ2hhcikpOwogICAgIAogICAgIGFzc2VydEVxdWFsc0FzQ2hh
cmFjdGVyc1B0cihqc1VuZGVmaW5lZCwgInVuZGVmaW5lZCIpOwogICAgIGFzc2VydEVxdWFsc0Fz
Q2hhcmFjdGVyc1B0cihqc051bGwsICJudWxsIik7CkBAIC0xNTg2LDEwICsxNjYxLDYgQEAgaW50
IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKICAgICBhc3NlcnRFcXVhbHNBc0NoYXJhY3Rl
cnNQdHIoanNPbmVUaGlyZCwgIjAuMzMzMzMzMzMzMzMzMzMzMyIpOwogICAgIGFzc2VydEVxdWFs
c0FzQ2hhcmFjdGVyc1B0cihqc0VtcHR5U3RyaW5nLCAiIik7CiAgICAgYXNzZXJ0RXF1YWxzQXND
aGFyYWN0ZXJzUHRyKGpzT25lU3RyaW5nLCAiMSIpOwotICAgIGFzc2VydEVxdWFsc0FzQ2hhcmFj
dGVyc1B0cihqc0NGU3RyaW5nLCAiQSIpOwotICAgIGFzc2VydEVxdWFsc0FzQ2hhcmFjdGVyc1B0
cihqc0NGU3RyaW5nV2l0aENoYXJhY3RlcnMsICJBIik7Ci0gICAgYXNzZXJ0RXF1YWxzQXNDaGFy
YWN0ZXJzUHRyKGpzQ0ZFbXB0eVN0cmluZywgIiIpOwotICAgIGFzc2VydEVxdWFsc0FzQ2hhcmFj
dGVyc1B0cihqc0NGRW1wdHlTdHJpbmdXaXRoQ2hhcmFjdGVycywgIiIpOwogICAgIAogICAgIGFz
c2VydEVxdWFsc0FzVVRGOFN0cmluZyhqc1VuZGVmaW5lZCwgInVuZGVmaW5lZCIpOwogICAgIGFz
c2VydEVxdWFsc0FzVVRGOFN0cmluZyhqc051bGwsICJudWxsIik7CkBAIC0xNjAwLDEwICsxNjcx
LDYgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKICAgICBhc3NlcnRFcXVhbHNB
c1VURjhTdHJpbmcoanNPbmVUaGlyZCwgIjAuMzMzMzMzMzMzMzMzMzMzMyIpOwogICAgIGFzc2Vy
dEVxdWFsc0FzVVRGOFN0cmluZyhqc0VtcHR5U3RyaW5nLCAiIik7CiAgICAgYXNzZXJ0RXF1YWxz
QXNVVEY4U3RyaW5nKGpzT25lU3RyaW5nLCAiMSIpOwotICAgIGFzc2VydEVxdWFsc0FzVVRGOFN0
cmluZyhqc0NGU3RyaW5nLCAiQSIpOwotICAgIGFzc2VydEVxdWFsc0FzVVRGOFN0cmluZyhqc0NG
U3RyaW5nV2l0aENoYXJhY3RlcnMsICJBIik7Ci0gICAgYXNzZXJ0RXF1YWxzQXNVVEY4U3RyaW5n
KGpzQ0ZFbXB0eVN0cmluZywgIiIpOwotICAgIGFzc2VydEVxdWFsc0FzVVRGOFN0cmluZyhqc0NG
RW1wdHlTdHJpbmdXaXRoQ2hhcmFjdGVycywgIiIpOwogICAgIAogICAgIGNoZWNrQ29uc3RuZXNz
SW5KU09iamVjdE5hbWVzKCk7CiAgICAgCkBAIC0xNjEzLDE2ICsxNjgwLDYgQEAgaW50IG1haW4o
aW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKICAgICBBU1NFUlQoSlNWYWx1ZUlzRXF1YWwoY29udGV4
dCwganNPbmUsIGpzT25lU3RyaW5nLCBOVUxMKSk7CiAgICAgQVNTRVJUKCFKU1ZhbHVlSXNFcXVh
bChjb250ZXh0LCBqc1RydWUsIGpzRmFsc2UsIE5VTEwpKTsKICAgICAKLSAgICBDRlN0cmluZ1Jl
ZiBjZkpTU3RyaW5nID0gSlNTdHJpbmdDb3B5Q0ZTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwg
anNDRklTdHJpbmcpOwotICAgIENGU3RyaW5nUmVmIGNmSlNFbXB0eVN0cmluZyA9IEpTU3RyaW5n
Q29weUNGU3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIGpzQ0ZFbXB0eUlTdHJpbmcpOwotICAg
IEFTU0VSVChDRkVxdWFsKGNmSlNTdHJpbmcsIGNmU3RyaW5nKSk7Ci0gICAgQVNTRVJUKENGRXF1
YWwoY2ZKU0VtcHR5U3RyaW5nLCBjZkVtcHR5U3RyaW5nKSk7Ci0gICAgQ0ZSZWxlYXNlKGNmSlNT
dHJpbmcpOwotICAgIENGUmVsZWFzZShjZkpTRW1wdHlTdHJpbmcpOwotCi0gICAgQ0ZSZWxlYXNl
KGNmU3RyaW5nKTsKLSAgICBDRlJlbGVhc2UoY2ZFbXB0eVN0cmluZyk7Ci0gICAgCiAgICAganNH
bG9iYWxWYWx1ZSA9IEpTT2JqZWN0TWFrZShjb250ZXh0LCBOVUxMLCBOVUxMKTsKICAgICBtYWtl
R2xvYmFsTnVtYmVyVmFsdWUoY29udGV4dCk7CiAgICAgSlNWYWx1ZVByb3RlY3QoY29udGV4dCwg
anNHbG9iYWxWYWx1ZSk7CkBAIC0xNzc2LDE3ICsxODMzLDYgQEAgaW50IG1haW4oaW50IGFyZ2Ms
IGNoYXIqIGFyZ3ZbXSkKICAgICBKU09iamVjdFNldFByb3BlcnR5KGNvbnRleHQsIGdsb2JhbE9i
amVjdCwgc3RyaW5nLCBkZXJpdmVkMkNvbnN0cnVjdG9yLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZU5v
bmUsIE5VTEwpOwogICAgIEpTU3RyaW5nUmVsZWFzZShzdHJpbmcpOwogCi0gICAgbyA9IEpTT2Jq
ZWN0TWFrZShjb250ZXh0LCBOVUxMLCBOVUxMKTsKLSAgICBKU09iamVjdFNldFByb3BlcnR5KGNv
bnRleHQsIG8sIGpzT25lSVN0cmluZywgSlNWYWx1ZU1ha2VOdW1iZXIoY29udGV4dCwgMSksIGtK
U1Byb3BlcnR5QXR0cmlidXRlTm9uZSwgTlVMTCk7Ci0gICAgSlNPYmplY3RTZXRQcm9wZXJ0eShj
b250ZXh0LCBvLCBqc0NGSVN0cmluZywgIEpTVmFsdWVNYWtlTnVtYmVyKGNvbnRleHQsIDEpLCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnRFbnVtLCBOVUxMKTsKLSAgICBKU1Byb3BlcnR5TmFtZUFy
cmF5UmVmIG5hbWVBcnJheSA9IEpTT2JqZWN0Q29weVByb3BlcnR5TmFtZXMoY29udGV4dCwgbyk7
Ci0gICAgc2l6ZV90IGV4cGVjdGVkQ291bnQgPSBKU1Byb3BlcnR5TmFtZUFycmF5R2V0Q291bnQo
bmFtZUFycmF5KTsKLSAgICBzaXplX3QgY291bnQ7Ci0gICAgZm9yIChjb3VudCA9IDA7IGNvdW50
IDwgZXhwZWN0ZWRDb3VudDsgKytjb3VudCkKLSAgICAgICAgSlNQcm9wZXJ0eU5hbWVBcnJheUdl
dE5hbWVBdEluZGV4KG5hbWVBcnJheSwgY291bnQpOwotICAgIEpTUHJvcGVydHlOYW1lQXJyYXlS
ZWxlYXNlKG5hbWVBcnJheSk7Ci0gICAgQVNTRVJUKGNvdW50ID09IDEpOyAvLyBqc0NGU3RyaW5n
IHNob3VsZCBub3QgYmUgZW51bWVyYXRlZAotCiAgICAgSlNWYWx1ZVJlZiBhcmd1bWVudHNBcnJh
eVZhbHVlc1tdID0geyBKU1ZhbHVlTWFrZU51bWJlcihjb250ZXh0LCAxMCksIEpTVmFsdWVNYWtl
TnVtYmVyKGNvbnRleHQsIDIwKSB9OwogICAgIG8gPSBKU09iamVjdE1ha2VBcnJheShjb250ZXh0
LCBzaXplb2YoYXJndW1lbnRzQXJyYXlWYWx1ZXMpIC8gc2l6ZW9mKEpTVmFsdWVSZWYpLCBhcmd1
bWVudHNBcnJheVZhbHVlcywgTlVMTCk7CiAgICAgc3RyaW5nID0gSlNTdHJpbmdDcmVhdGVXaXRo
VVRGOENTdHJpbmcoImxlbmd0aCIpOwpAQCAtMTkxMCw5ICsxOTU2LDExIEBAIGludCBtYWluKGlu
dCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAgICAgIEFTU0VSVCgoIXNjcmlwdE9iamVjdCkgIT0g
KCFlcnJvck1lc3NhZ2UpKTsKICAgICAgICAgaWYgKCFzY3JpcHRPYmplY3QpIHsKICAgICAgICAg
ICAgIHByaW50ZigiRkFJTDogVGVzdCBzY3JpcHQgZGlkIG5vdCBwYXJzZVxuXHQlczolZFxuXHQi
LCBzY3JpcHRQYXRoLCBlcnJvckxpbmUpOworI2lmIFVTRShDRikKICAgICAgICAgICAgIENGU3Ry
aW5nUmVmIGVycm9yQ0YgPSBKU1N0cmluZ0NvcHlDRlN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCBlcnJvck1lc3NhZ2UpOwogICAgICAgICAgICAgQ0ZTaG93KGVycm9yQ0YpOwogICAgICAgICAg
ICAgQ0ZSZWxlYXNlKGVycm9yQ0YpOworI2VuZGlmCiAgICAgICAgICAgICBKU1N0cmluZ1JlbGVh
c2UoZXJyb3JNZXNzYWdlKTsKICAgICAgICAgICAgIGZhaWxlZCA9IDE7CiAgICAgICAgIH0KQEAg
LTE5MjUsOSArMTk3MywxMSBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQogICAg
ICAgICBlbHNlIHsKICAgICAgICAgICAgIHByaW50ZigiRkFJTDogVGVzdCBzY3JpcHQgcmV0dXJu
ZWQgdW5leHBlY3RlZCB2YWx1ZTpcbiIpOwogICAgICAgICAgICAgSlNTdHJpbmdSZWYgZXhjZXB0
aW9uSVN0cmluZyA9IEpTVmFsdWVUb1N0cmluZ0NvcHkoY29udGV4dCwgZXhjZXB0aW9uLCBOVUxM
KTsKKyNpZiBVU0UoQ0YpCiAgICAgICAgICAgICBDRlN0cmluZ1JlZiBleGNlcHRpb25DRiA9IEpT
U3RyaW5nQ29weUNGU3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIGV4Y2VwdGlvbklTdHJpbmcp
OwogICAgICAgICAgICAgQ0ZTaG93KGV4Y2VwdGlvbkNGKTsKICAgICAgICAgICAgIENGUmVsZWFz
ZShleGNlcHRpb25DRik7CisjZW5kaWYKICAgICAgICAgICAgIEpTU3RyaW5nUmVsZWFzZShleGNl
cHRpb25JU3RyaW5nKTsKICAgICAgICAgICAgIGZhaWxlZCA9IDE7CiAgICAgICAgIH0KQEAgLTE5
OTYsMTAgKzIwNDYsNiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQogCiAgICAg
SlNTdHJpbmdSZWxlYXNlKGpzRW1wdHlJU3RyaW5nKTsKICAgICBKU1N0cmluZ1JlbGVhc2UoanNP
bmVJU3RyaW5nKTsKLSAgICBKU1N0cmluZ1JlbGVhc2UoanNDRklTdHJpbmcpOwotICAgIEpTU3Ry
aW5nUmVsZWFzZShqc0NGRW1wdHlJU3RyaW5nKTsKLSAgICBKU1N0cmluZ1JlbGVhc2UoanNDRklT
dHJpbmdXaXRoQ2hhcmFjdGVycyk7Ci0gICAgSlNTdHJpbmdSZWxlYXNlKGpzQ0ZFbXB0eUlTdHJp
bmdXaXRoQ2hhcmFjdGVycyk7CiAgICAgSlNTdHJpbmdSZWxlYXNlKGdvb2RTeW50YXgpOwogICAg
IEpTU3RyaW5nUmVsZWFzZShiYWRTeW50YXgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvc2hlbGwvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvc2hl
bGwvQ01ha2VMaXN0cy50eHQKaW5kZXggNDkxNTJiYzNkNDVjNzAyYjQ5OTJkNDM1ZGNhOWQ0ZWVi
N2Q1YzM3Ni4uYmQ3MDU4NWNlNzRmM2Q3NDZkZWE2ZTVjMTg4M2E2NTY4ZGMxZDE3YiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3NoZWxsL0NNYWtlTGlzdHMudHh0CisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9zaGVsbC9DTWFrZUxpc3RzLnR4dApAQCAtNTUsNCArNTUsMzAg
QEAgaWYgKE5PVCBXSU4zMikKICAgICBhZGRfZXhlY3V0YWJsZSh0ZXN0YWlyICR7VEVTVEFJUl9T
T1VSQ0VTfSkKICAgICB0YXJnZXRfbGlua19saWJyYXJpZXModGVzdGFpciAke0pTQ19MSUJSQVJJ
RVN9KQogCisgICAgc2V0KFRFU1RBUElfU09VUkNFUworICAgICAgICAuLi9BUEkvdGVzdHMvQ29t
cGFyZUFuZFN3YXBUZXN0LmNwcAorICAgICAgICAuLi9BUEkvdGVzdHMvQ3VzdG9tR2xvYmFsT2Jq
ZWN0Q2xhc3NUZXN0LmMKKyAgICAgICAgLi4vQVBJL3Rlc3RzL0V4ZWN1dGlvblRpbWVMaW1pdFRl
c3QuY3BwCisgICAgICAgIC4uL0FQSS90ZXN0cy9GdW5jdGlvbk92ZXJyaWRlc1Rlc3QuY3BwCisg
ICAgICAgIC4uL0FQSS90ZXN0cy9HbG9iYWxDb250ZXh0V2l0aEZpbmFsaXplclRlc3QuY3BwCisg
ICAgICAgIC4uL0FQSS90ZXN0cy9KU09OUGFyc2VUZXN0LmNwcAorICAgICAgICAuLi9BUEkvdGVz
dHMvSlNPYmplY3RHZXRQcm94eVRhcmdldFRlc3QuY3BwCisgICAgICAgIC4uL0FQSS90ZXN0cy9N
dWx0aXRocmVhZGVkTXVsdGlWTUV4ZWN1dGlvblRlc3QuY3BwCisgICAgICAgIC4uL0FQSS90ZXN0
cy9QaW5nUG9uZ1N0YWNrT3ZlcmZsb3dUZXN0LmNwcAorICAgICAgICAuLi9BUEkvdGVzdHMvVHlw
ZWRBcnJheUNUZXN0LmNwcAorICAgICAgICAuLi9BUEkvdGVzdHMvdGVzdGFwaS5jCisgICAgKQor
ICAgIGFkZF9leGVjdXRhYmxlKHRlc3RhcGkgJHtURVNUQVBJX1NPVVJDRVN9KQorICAgIHRhcmdl
dF9saW5rX2xpYnJhcmllcyh0ZXN0YXBpICR7SlNDX0xJQlJBUklFU30pCisKKyAgICBmaWxlKENP
UFkKKyAgICAgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9BUEkvdGVzdHMvdGVzdGFwaS5qcyIK
KyAgICAgICAgREVTVElOQVRJT04KKyAgICAgICAgJHtDTUFLRV9SVU5USU1FX09VVFBVVF9ESVJF
Q1RPUll9CisgICAgKQorICAgIGZpbGUoQ09QWQorICAgICAgICAiJHtKQVZBU0NSSVBUQ09SRV9E
SVJ9L0FQSS90ZXN0cy90ZXN0YXBpLWZ1bmN0aW9uLW92ZXJyaWRlcy5qcyIKKyAgICAgICAgREVT
VElOQVRJT04KKyAgICAgICAgJHtDTUFLRV9SVU5USU1FX09VVFBVVF9ESVJFQ1RPUll9CisgICAg
KQogZW5kaWYgKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCBhM2I4YzQ3YWNmM2JmODUzYTdlOTJhZTAwOThlN2I4NzFiOGM2Njg5Li40MWUzYmUw
YzE1Zjc2NDM1ZmIwM2FmMGE4ZGViODU4OTM5YzEyMzE2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFu
Z2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTctMDUtMTUg
IFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0pTQ10g
QnVpbGQgdGVzdGFwaSBpbiBub24gQXBwbGUgcG9ydHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MjEwMworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdyB0ZXN0YXBpIGlzIGRyaXZlZCBpbiBKU0NPbmx5
LCBHVEsgYW5kIFdQRSBwb3J0cyB0b28uCisKKyAgICAgICAgKiBTY3JpcHRzL2J1aWxkLWpzYzoK
KyAgICAgICAgKiBTY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0czoKKwogMjAxNy0wNS0x
NCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIERyb3AgUGFzc1Jl
ZlB0ciBjbGFzcyBmcm9tIFdURgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9idWlsZC1qc2Mg
Yi9Ub29scy9TY3JpcHRzL2J1aWxkLWpzYwppbmRleCA0ZTE5MTdjZDVjYzcwNjRhOTk3MWZmMTQ2
ZmYyMDY0OGYwMzE4NTcwLi5hMDUxNDRjOTUwMmZiMDMzZGQ5ODE1ZTMxZDY1NGFkZjdlMmYyOTdh
IDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL2J1aWxkLWpzYworKysgYi9Ub29scy9TY3JpcHRz
L2J1aWxkLWpzYwpAQCAtMTM3LDcgKzEzNyw3IEBAIGlmIChpc0NNYWtlQnVpbGQoKSkgewogICAg
IHVubGVzcyAoaXNBbnlXaW5kb3dzKCkpIHsKICAgICAgICAgIyBCeSBkZWZhdWx0IHdlIGJ1aWxk
IHVzaW5nIGFsbCBvZiB0aGUgYXZhaWxhYmxlIENQVXMKICAgICAgICAgJG1ha2VBcmdzIC49ICgk
bWFrZUFyZ3MgPyAiICIgOiAiIikgLiAiLWoiIC4gbnVtYmVyT2ZDUFVzKCkgaWYgJG1ha2VBcmdz
ICF+IC8talxzKlxkKy87Ci0gICAgICAgICRidWlsZFRhcmdldCA9ICJqc2MgdGVzdGIzIHRlc3Rh
aXIgJG1ha2VBcmdzIjsKKyAgICAgICAgJGJ1aWxkVGFyZ2V0ID0gImpzYyB0ZXN0YjMgdGVzdGFp
ciB0ZXN0YXBpICRtYWtlQXJncyI7CiAgICAgfSBlbHNpZiAoY2FuVXNlTmluamEoKSkgewogICAg
ICAgICAkYnVpbGRUYXJnZXQgLj0gImpzYyB0ZXN0YXBpIjsKICAgICB9CmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cyBiL1Rvb2xzL1NjcmlwdHMvcnVu
LWphdmFzY3JpcHRjb3JlLXRlc3RzCmluZGV4IDE2Mzg4MGY2ZmUxYTNhMzVmZDFkMGI4OGQxOGZk
NmQ2YTZiMDQzZGIuLjgzODBlMzc5NDI0YTdhZjRkZWI0MmViMWI0Y2UwNjdkNjkwYzMwNzEgMTAw
NzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvcnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzCisrKyBiL1Rv
b2xzL1NjcmlwdHMvcnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzCkBAIC01Niw3ICs1Niw3IEBAIG15
ICRtZW1vcnlMaW1pdGVkOwogCiBteSAkYnVpbGRKU0MgPSAxOwogCi1teSAkcnVuVGVzdEFQSSA9
IGlzQXBwbGVDb2NvYVdlYktpdCgpIHx8IGlzQXBwbGVXaW5XZWJLaXQoKSB8fCBpc1dpbkNhaXJv
KCk7CitteSAkcnVuVGVzdEFQSSA9IGlzQXBwbGVDb2NvYVdlYktpdCgpIHx8IGlzQXBwbGVXaW5X
ZWJLaXQoKSB8fCBpc1dpbkNhaXJvKCkgfHwgaXNKU0NPbmx5KCkgfHwgaXNHVEsoKSB8fCBpc1dQ
RSgpOwogCiBteSAkcnVuSlNDU3RyZXNzID0gMTsKIG15ICRydW5KSVRTdHJlc3NUZXN0cyA9IDE7
Cg==
</data>
<flag name="review"
          id="331222"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>