<?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>128928</bug_id>
          
          <creation_ts>2014-02-17 12:17:09 -0800</creation_ts>
          <short_desc>Improve GDB backtrace generation for GTK/EFL</short_desc>
          <delta_ts>2016-08-16 18:10:16 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Linux</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>
          <dependson>160927</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Alberto Lopez Perez">clopez</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abrhm</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>glenn</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>ossy</cc>
    
    <cc>pnormand</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>981613</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2014-02-17 12:17:09 -0800</bug_when>
    <thetext>To current GDB backtrace generation (see https://bugs.webkit.org/show_bug.cgi?id=119338 )
uses the Linux kernel sysctl core_pattern variable to generate the core dumps with a specific name.

  echo &quot;/path/to/cores/core-pid_%p-_-process_%e&quot; &gt; /proc/sys/kernel/core_pattern

The problem is that the executable filename (variable &quot;%e&quot;) used in core_pattern
has a limit of 16 characters. See comm variable defined on task_struct at include/linux/sched.h

This causes most of the times that cores generated have a filename on disk
different than the one expected:

Ex: 
core-pid_25409-_-process_WebKitTestRunne
core-pid_25411-_-process_WebKitWebProces
core-pid_25461-_-process_testwebinspecto

                              ^ notice the cut

This causes that the script that launches gdb when a test crashes is unable to find the core.
See for example our current GTK Linux 64-bit Release bot:
http://build.webkit.org/results/GTK%20Linux%2064-bit%20Release/r164108%20%2844874%29/fast/dom/Geolocation/not-enough-arguments-crash-log.txt

In order to fix this the variable &quot;%E&quot; could be used (introduced on https://git.kernel.org/linus/57cc083ad ),
but a more interesting approach is to set core_pattern to pipe to a program
(introduced on https://git.kernel.org/linus/d025c9d ).

This approach of piping the core to a program have some extra benefits:

This program can have much more information about the crashed process since
the /proc/$pid structures are still available when this helper program is executed.
So it can extract easily more information about the crashed program.

Also the tests can set a WEBKIT_CURRENT_TEST=&quot;name_test&quot; environment variable
that this program can check (/proc/$pid/environ) in order to detect without
doubt which test was the one that crashed.
This avoid the problem that we currently have when the crashing process
is a child and we don&apos;t know its pid. What the current code does is to
just pick the most recent core matching the executable filename. This is
not deterministic in a context where the tests are ran in parallel.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>981785</commentid>
    <comment_count>1</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-02-17 21:48:05 -0800</bug_when>
    <thetext>Nice investigation Carlos!

So I suppose this broke since we moved the debug bot to WK2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>981876</commentid>
    <comment_count>2</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2014-02-18 03:51:37 -0800</bug_when>
    <thetext>&gt; So I suppose this broke since we moved the debug bot to WK2.

Yes, this affects mainly WK2, because with WK1 the process that crashes is most of the times &quot;DumpRenderTree&quot; which fits the 15 char limit.

I&apos;m going to start working on a patch to implement this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047522</commentid>
    <comment_count>3</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-11-10 05:14:01 -0800</bug_when>
    <thetext>I plan to upload a non-intrusive patch in Bug 138564 but this bug should be also fixed in the mid-term :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150920</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-12-22 11:15:21 -0800</bug_when>
    <thetext>Nice investigation indeed.

The right thing to do is to get cores from coredumpctl so we don&apos;t have to mess around with changing the core_pattern. I&apos;d be interested in working on this eventually (for some large value of eventually).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151057</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2015-12-23 05:07:02 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; Nice investigation indeed.
&gt; 
&gt; The right thing to do is to get cores from coredumpctl so we don&apos;t have to
&gt; mess around with changing the core_pattern. I&apos;d be interested in working on
&gt; this eventually (for some large value of eventually).

I guess that would require the users to run systemd. This can be problematic on the bots (they run on unprivileged containers, and systemd don&apos;t plays nice there)


Also I&apos;m not sure if it will solve the main problem, that is:

 * Due to WebKit multiprocess model, our tooling for the tests can only know the pid of WebKitTestRunner, but not the pid of any of the childs (WebKitWebProcess, WebKitNetworkProcess, etc).

So, when you get a coredump for WebKitWebProcess (for example) with pid NNNN you can&apos;t tell which test caused the crash.

The only reasonable way of solving this that I see is setting an environment variable (that the childs will inherit) with the test name.

When it crashes, the program invoked via the pipe in core_pattern will have access to /proc/$pid/environ and can read this.

With coredumpctl, such program will be systemd-coredump.

So...  the main question.... is coredumpctl able to get and print the environ variables that a program had defined when it crashed for a given coredump? If is not, I don&apos;t think it will be of any help here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151061</commentid>
    <comment_count>6</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-12-23 06:08:20 -0800</bug_when>
    <thetext>coredumpctl is not useful for bots -- anything that makes coredumps display in the web interface would be a great solution there -- but for humans running tests manually, we should try to figure out a solution that doesn&apos;t require editing core_pattern to disable it.

(In reply to comment #5)
&gt; I guess that would require the users to run systemd. This can be problematic
&gt; on the bots (they run on unprivileged containers, and systemd don&apos;t plays
&gt; nice there)

Huh, I didn&apos;t realize that. I thought all Linux except Gentoo was using systemd nowadays (certainly it&apos;s installed on the bots I used yesterday), and that it was designed to handle unprivileged containers nicely -- that&apos;s the whole point of machinectl, right? but I&apos;ve hardly used containers myself.

&gt; So...  the main question.... is coredumpctl able to get and print the
&gt; environ variables that a program had defined when it crashed for a given
&gt; coredump? If is not, I don&apos;t think it will be of any help here.

Hm, I don&apos;t think so. You can match on an awful lot, anything listed in systemd.journal-fields(7), but not environment variables. It&apos;d be easy to add though, since it has access to /proc/$pid/environ as you say, we&apos;d just need to make it save the environment as a journal field. This is how the abrt coredumpctl integration was written -- abrt needed more info on the coredumps, so they modified coredumpctl to save it in journal fields. But that is a lot more work....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151066</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2015-12-23 06:42:51 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; coredumpctl is not useful for bots -- anything that makes coredumps display
&gt; in the web interface would be a great solution there -- but for humans
&gt; running tests manually, we should try to figure out a solution that doesn&apos;t
&gt; require editing core_pattern to disable it.
&gt; 

Humans running tests can already match a coredump with a test name. Is a matter of running only one test at a time and picking the last coredump. 

The main use case here is for the bots. The bots runs thousands of tests in parallel, and they need a way to match the coredump with the test name. Otherwise is not possible to show the backtrace/crash log on the results page that the bot published.

For example: https://build.webkit.org/results/GTK%20Linux%2064-bit%20Release%20%28Tests%29/r189464%20%2810899%29/results.html

Notice the empty crash logs on that html page published by the bot? That&apos;s what we are trying to fix here.

&gt; (In reply to comment #5)
&gt; &gt; I guess that would require the users to run systemd. This can be problematic
&gt; &gt; on the bots (they run on unprivileged containers, and systemd don&apos;t plays
&gt; &gt; nice there)
&gt; 
&gt; Huh, I didn&apos;t realize that. I thought all Linux except Gentoo was using
&gt; systemd nowadays (certainly it&apos;s installed on the bots I used yesterday),
&gt; and that it was designed to handle unprivileged containers nicely -- that&apos;s
&gt; the whole point of machinectl, right? but I&apos;ve hardly used containers myself.
&gt; 

Well, Ubuntu is still using upstart (the switch to systemd still didn&apos;t happened.. I guess that by 16.04 maybe).

And with unprivileged containers I mean LXC namespace based containers, and systemd is not running correctly inside there.

I think i read that in the latest releases of systemd this was somehow fixed, but I didn&apos;t tested it. So I remain cautious about the possibility of using something like coredumpctl inside a LXC namespace based container until I test it and see it working.

&gt; &gt; So...  the main question.... is coredumpctl able to get and print the
&gt; &gt; environ variables that a program had defined when it crashed for a given
&gt; &gt; coredump? If is not, I don&apos;t think it will be of any help here.
&gt; 
&gt; Hm, I don&apos;t think so. You can match on an awful lot, anything listed in
&gt; systemd.journal-fields(7), but not environment variables. It&apos;d be easy to
&gt; add though, since it has access to /proc/$pid/environ as you say, we&apos;d just
&gt; need to make it save the environment as a journal field. This is how the
&gt; abrt coredumpctl integration was written -- abrt needed more info on the
&gt; coredumps, so they modified coredumpctl to save it in journal fields. But
&gt; that is a lot more work....

If you are interested on adding this to systemd please go ahead.. 

But take into account that because of the release cycles of the distributions, the time it will take to reach the systemd used by all our developers (debian/ubuntu/fedora/etc) will be measured in years.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151067</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2015-12-23 06:45:50 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; Well, Ubuntu is still using upstart (the switch to systemd still didn&apos;t
&gt; happened.. I guess that by 16.04 maybe).

Correction: they switched to systemd on 15.04 according to this wiki https://wiki.ubuntu.com/SystemdForUpstartUsers#System_Init_Daemon</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208673</commentid>
    <comment_count>9</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2016-07-07 10:51:11 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; Nice investigation indeed.
&gt; &gt; 
&gt; &gt; The right thing to do is to get cores from coredumpctl so we don&apos;t have to
&gt; &gt; mess around with changing the core_pattern. I&apos;d be interested in working on
&gt; &gt; this eventually (for some large value of eventually).
&gt; 
&gt; I guess that would require the users to run systemd. This can be problematic
&gt; on the bots (they run on unprivileged containers, and systemd don&apos;t plays
&gt; nice there)
&gt; 
&gt; 
&gt; Also I&apos;m not sure if it will solve the main problem, that is:
&gt; 
&gt;  * Due to WebKit multiprocess model, our tooling for the tests can only know
&gt; the pid of WebKitTestRunner, but not the pid of any of the childs
&gt; (WebKitWebProcess, WebKitNetworkProcess, etc).

This can be solved by implementing private C APIs for WKContext and WKPage, like on Mac. I started a patch...

Also changing the crash log analisys as advised in the initial description of the bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1210999</commentid>
    <comment_count>10</comment_count>
      <attachid>283646</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2016-07-14 08:36:11 -0700</bug_when>
    <thetext>Created attachment 283646
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1211000</commentid>
    <comment_count>11</comment_count>
      <attachid>283647</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2016-07-14 08:37:43 -0700</bug_when>
    <thetext>Created attachment 283647
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1211761</commentid>
    <comment_count>12</comment_count>
      <attachid>283647</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-07-16 04:11:23 -0700</bug_when>
    <thetext>Comment on attachment 283647
patch

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

&gt; Source/WebKit2/UIProcess/API/C/gtk/WKContextPrivateGtk.cpp:41
&gt; +pid_t WKContextGetNetworkProcessIdentifier(WKContextRef contextRef)
&gt; +{
&gt; +    return toImpl(contextRef)-&gt;networkProcessIdentifier();
&gt; +}
&gt; +
&gt; +pid_t WKContextGetDatabaseProcessIdentifier(WKContextRef contextRef)
&gt; +{
&gt; +    return toImpl(contextRef)-&gt;databaseProcessIdentifier();

Why is this specific to GTK+? Why don&apos;t we add this to WKContext.cpp and WKContextPrivate.h?

&gt; Source/WebKit2/UIProcess/API/C/gtk/WKPagePrivateGtk.cpp:37
&gt; +pid_t WKPageGetProcessIdentifier(WKPageRef pageRef)
&gt; +{
&gt; +    return toImpl(pageRef)-&gt;processIdentifier();
&gt; +}

Ditto, this could be added to WKPage.cpp and WKPagePrivate.h, since this is exposing cross-platform API

&gt; Tools/Scripts/process-linux-coredump:26
&gt; +    full_path = os.path.join(destination_directory, &apos;core-pid_%d.dump&apos;  % int(pid))

Why do you need to convert the pid to int? Why not just use %s instead? Or the script could receive the path already built no?

&gt; Tools/Scripts/webkitpy/port/linux_get_crash_log_unittest.py:49
&gt;          core_pattern = os.path.join(core_directory, &quot;core-pid_%p-_-process_%E&quot;)
&gt; +        core_pattern = &quot;|%s %%p /path/to/coredumps&quot; % process_coredump_script_path

Shouldn&apos;t you remove the previous core_pattern assignation?

&gt; Tools/WebKitTestRunner/TestController.cpp:1487
&gt;      pid_t pid = WKContextGetNetworkProcessIdentifier(m_context.get());

Ah, mac already has an impl of this. In that case it should be moved to the cross-platform files, I think, instead of duplicating it in GTK specific files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213508</commentid>
    <comment_count>13</comment_count>
      <attachid>283647</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2016-07-22 00:04:27 -0700</bug_when>
    <thetext>Comment on attachment 283647
patch

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

&gt;&gt; Tools/Scripts/process-linux-coredump:26
&gt;&gt; +    full_path = os.path.join(destination_directory, &apos;core-pid_%d.dump&apos;  % int(pid))
&gt; 
&gt; Why do you need to convert the pid to int? Why not just use %s instead? Or the script could receive the path already built no?

No strong reason for the conversion. The script cannot receive the full path already built because the script invocation is hardcoded in the core_pattern.

&gt;&gt; Tools/Scripts/webkitpy/port/linux_get_crash_log_unittest.py:49
&gt;&gt; +        core_pattern = &quot;|%s %%p /path/to/coredumps&quot; % process_coredump_script_path
&gt; 
&gt; Shouldn&apos;t you remove the previous core_pattern assignation?

oops

&gt;&gt; Tools/WebKitTestRunner/TestController.cpp:1487
&gt;&gt;      pid_t pid = WKContextGetNetworkProcessIdentifier(m_context.get());
&gt; 
&gt; Ah, mac already has an impl of this. In that case it should be moved to the cross-platform files, I think, instead of duplicating it in GTK specific files.

Ok I can try this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213514</commentid>
    <comment_count>14</comment_count>
      <attachid>284313</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2016-07-22 00:36:06 -0700</bug_when>
    <thetext>Created attachment 284313
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213516</commentid>
    <comment_count>15</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2016-07-22 00:41:39 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; Comment on attachment 283647 [details]
&gt; patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=283647&amp;action=review
&gt; 
&gt; &gt;&gt; Tools/Scripts/process-linux-coredump:26
&gt; &gt;&gt; +    full_path = os.path.join(destination_directory, &apos;core-pid_%d.dump&apos;  % int(pid))
&gt; &gt; 
&gt; &gt; Why do you need to convert the pid to int? Why not just use %s instead? Or the script could receive the path already built no?
&gt; 
&gt; No strong reason for the conversion. The script cannot receive the full path
&gt; already built because the script invocation is hardcoded in the core_pattern.
&gt; 

Ah sorry this can be improved indeed. I&apos;ll update the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213518</commentid>
    <comment_count>16</comment_count>
      <attachid>284314</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2016-07-22 00:50:27 -0700</bug_when>
    <thetext>Created attachment 284314
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213521</commentid>
    <comment_count>17</comment_count>
      <attachid>284314</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-07-22 01:14:54 -0700</bug_when>
    <thetext>Comment on attachment 284314
patch

Patch looks good to me, you just need to fix mac builds (update the header includes), so please submit a new patch and wait for EWS before landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213537</commentid>
    <comment_count>18</comment_count>
      <attachid>284321</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2016-07-22 03:14:16 -0700</bug_when>
    <thetext>Created attachment 284321
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213539</commentid>
    <comment_count>19</comment_count>
      <attachid>284322</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2016-07-22 03:38:27 -0700</bug_when>
    <thetext>Created attachment 284322
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1214107</commentid>
    <comment_count>20</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2016-07-24 23:09:02 -0700</bug_when>
    <thetext>Committed r203674: &lt;http://trac.webkit.org/changeset/203674&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1214167</commentid>
    <comment_count>21</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-07-25 07:25:30 -0700</bug_when>
    <thetext>It broke a thing:
                                                                                                  [692/1454] webkitpy.port.linux_get_crash_log_unittest.GDBCrashLogGeneratorTest.test_generate_crash_log failed:
  Traceback (most recent call last):
    File &quot;/home/slave/webkitgtk/gtk-linux-64-release-tests/build/Tools/Scripts/webkitpy/port/linux_get_crash_log_unittest.py&quot;, line 67, in test_generate_crash_log
      self.assertMultiLineEqual(log, mock_empty_crash_log)
  AssertionError: &apos;crash log for DumpRenderTree (pid 28529):\n\nCoredump core-pid_28529.dump not f [truncated]... != &apos;crash log for DumpRenderTree (pid 28529):\n\nCoredump core-pid_28529.dump not f [truncated]...
  Diff is 822 characters long. Set self.maxDiff to None to see it.

Could you investigate please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1214210</commentid>
    <comment_count>22</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2016-07-25 09:32:47 -0700</bug_when>
    <thetext>Thanks, follow-up in r203685</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283646</attachid>
            <date>2016-07-14 08:36:11 -0700</date>
            <delta_ts>2016-07-14 08:37:43 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.patch</filename>
            <type>text/plain</type>
            <size>21572</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSAxOTdmYzI2NTQ1YTMwMWRmODI2NTg3ZTYwY2E3Y2RlMGNjNzRmYTUzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBNb24sIDExIEp1bCAyMDE2IDE2OjMxOjQ4ICswMjAwClN1YmplY3Q6IFtQQVRDSF0g
cGF0Y2gKCi0tLQogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAxOCArKysrKysrKysKIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlICAg
ICAgICAgICAgICAgICAgIHwgIDIgKwogLi4uL1VJUHJvY2Vzcy9BUEkvQy9ndGsvV0tDb250ZXh0
UHJpdmF0ZUd0ay5jcHAgICAgfCA0MiArKysrKysrKysrKysrKysrKysrKysKIC4uLi9VSVByb2Nl
c3MvQVBJL0MvZ3RrL1dLQ29udGV4dFByaXZhdGVHdGsuaCAgICAgIHwgNDMgKysrKysrKysrKysr
KysrKysrKysrKwogLi4uL1VJUHJvY2Vzcy9BUEkvQy9ndGsvV0tQYWdlUHJpdmF0ZUd0ay5jcHAg
ICAgICAgfCAzNyArKysrKysrKysrKysrKysrKysrCiAuLi4vV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvZ3RrL1dLUGFnZVByaXZhdGVHdGsuaCB8IDQyICsrKysrKysrKysrKysrKysrKysrKwogVG9v
bHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAzMCArKysr
KysrKysrKysrKysKIFRvb2xzL1NjcmlwdHMvcHJvY2Vzcy1saW51eC1jb3JlZHVtcCAgICAgICAg
ICAgICAgIHwgMzcgKysrKysrKysrKysrKysrKysrKwogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9w
b3J0L2VmbC5weSAgICAgICAgICAgICAgICAgfCAgMiArLQogVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9wb3J0L2d0ay5weSAgICAgICAgICAgICAgICAgfCAgMiArLQogVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9wb3J0L2xpbnV4X2dldF9jcmFzaF9sb2cucHkgfCAxMCArKy0tLQogLi4uL3dlYmtpdHB5
L3BvcnQvbGludXhfZ2V0X2NyYXNoX2xvZ191bml0dGVzdC5weSAgfCAgNiArKy0KIFRvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwICAgICAgICAgIHwgMTEgKysrKy0tCiAx
MyBmaWxlcyBjaGFuZ2VkLCAyNzAgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pCiBjcmVh
dGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2d0ay9XS0NvbnRl
eHRQcml2YXRlR3RrLmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9ndGsvV0tDb250ZXh0UHJpdmF0ZUd0ay5oCiBjcmVhdGUgbW9kZSAxMDA2NDQg
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2d0ay9XS1BhZ2VQcml2YXRlR3RrLmNwcAog
Y3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9ndGsvV0tQ
YWdlUHJpdmF0ZUd0ay5oCiBjcmVhdGUgbW9kZSAxMDA3NTUgVG9vbHMvU2NyaXB0cy9wcm9jZXNz
LWxpbnV4LWNvcmVkdW1wCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDJhNTdiNWIuLjgyNjdmMGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyMSBAQAorMjAxNi0wNy0xNCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3Jt
YW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgSW1wcm92ZSBHREIgYmFja3RyYWNlIGdlbmVyYXRp
b24gZm9yIEdUSy9FRkwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEyODkyOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFByaXZhdGUgR1RLIEMgQVBJIHRvIHJldHJpZXZlIHRoZSBQSUQgb2YgdGhlIERhdGFi
YXNlLCBXZWIgYW5kIE5ldHdvcmsgcHJvY2Vzc2VzLgorCisgICAgICAgICogUGxhdGZvcm1HVEsu
Y21ha2U6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL2d0ay9XS0NvbnRleHRQcml2YXRlR3Rr
LmNwcDogQWRkZWQuCisgICAgICAgIChXS0NvbnRleHRHZXROZXR3b3JrUHJvY2Vzc0lkZW50aWZp
ZXIpOgorICAgICAgICAoV0tDb250ZXh0R2V0RGF0YWJhc2VQcm9jZXNzSWRlbnRpZmllcik6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9DL2d0ay9XS0NvbnRleHRQcml2YXRlR3RrLmg6IEFkZGVk
LgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9ndGsvV0tQYWdlUHJpdmF0ZUd0ay5jcHA6IEFk
ZGVkLgorICAgICAgICAoV0tQYWdlR2V0UHJvY2Vzc0lkZW50aWZpZXIpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQy9ndGsvV0tQYWdlUHJpdmF0ZUd0ay5oOiBBZGRlZC4KKwogMjAxNi0wNy0x
MyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAg
IE1vZGVybml6ZSBXZWJTb2NrZXQgaGFuZGxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybUdUSy5jbWFrZSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4
IGIzYzJhZGIuLjc2NzUxZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RL
LmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC04OCw4ICs4
OCwxMCBAQCBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKIAogICAgIFVJUHJvY2Vzcy9BUEkv
Qy9jYWlyby9XS0ljb25EYXRhYmFzZUNhaXJvLmNwcAogCisgICAgVUlQcm9jZXNzL0FQSS9DL2d0
ay9XS0NvbnRleHRQcml2YXRlR3RrLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9ndGsvV0tGdWxs
U2NyZWVuQ2xpZW50R3RrLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9ndGsvV0tJbnNwZWN0b3JD
bGllbnRHdGsuY3BwCisgICAgVUlQcm9jZXNzL0FQSS9DL2d0ay9XS1BhZ2VQcml2YXRlR3RrLmNw
cAogICAgIFVJUHJvY2Vzcy9BUEkvQy9ndGsvV0tUZXh0Q2hlY2tlckd0ay5jcHAKICAgICBVSVBy
b2Nlc3MvQVBJL0MvZ3RrL1dLVmlldy5jcHAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL2d0ay9XS0NvbnRleHRQcml2YXRlR3RrLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9ndGsvV0tDb250ZXh0UHJpdmF0ZUd0ay5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjdlYjMyYwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9ndGsvV0tDb250ZXh0UHJpdmF0ZUd0ay5jcHAK
QEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBJZ2FsaWEgUy5MCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXS0NvbnRleHRQcml2YXRl
R3RrLmgiCisKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUG9v
bC5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitwaWRfdCBXS0NvbnRleHRHZXROZXR3
b3JrUHJvY2Vzc0lkZW50aWZpZXIoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYpCit7CisgICAgcmV0
dXJuIHRvSW1wbChjb250ZXh0UmVmKS0+bmV0d29ya1Byb2Nlc3NJZGVudGlmaWVyKCk7Cit9CisK
K3BpZF90IFdLQ29udGV4dEdldERhdGFiYXNlUHJvY2Vzc0lkZW50aWZpZXIoV0tDb250ZXh0UmVm
IGNvbnRleHRSZWYpCit7CisgICAgcmV0dXJuIHRvSW1wbChjb250ZXh0UmVmKS0+ZGF0YWJhc2VQ
cm9jZXNzSWRlbnRpZmllcigpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL2d0ay9XS0NvbnRleHRQcml2YXRlR3RrLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvZ3RrL1dLQ29udGV4dFByaXZhdGVHdGsuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi45MGE0Y2JiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL2d0ay9XS0NvbnRleHRQcml2YXRlR3RrLmgKQEAgLTAsMCArMSw0
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBJZ2FsaWEgUy5MCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgV0tDb250ZXh0UHJpdmF0ZUd0a19oCisjZGVmaW5lIFdLQ29udGV4dFByaXZhdGVHdGtf
aAorCisjaW5jbHVkZSA8V2ViS2l0L1dLQmFzZS5oPgorLyogI2luY2x1ZGUgPFdlYktpdC9XS1Bs
dWdpbkxvYWRQb2xpY3kuaD4gKi8KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsK
KyNlbmRpZgorCitXS19FWFBPUlQgcGlkX3QgV0tDb250ZXh0R2V0TmV0d29ya1Byb2Nlc3NJZGVu
dGlmaWVyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKK1dLX0VYUE9SVCBwaWRfdCBXS0NvbnRleHRH
ZXREYXRhYmFzZVByb2Nlc3NJZGVudGlmaWVyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKKworI2lm
ZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8qIFdLQ29udGV4dFByaXZhdGVH
dGtfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2d0ay9X
S1BhZ2VQcml2YXRlR3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9ndGsv
V0tQYWdlUHJpdmF0ZUd0ay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
NjdjNzFjYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9ndGsvV0tQYWdlUHJpdmF0ZUd0ay5jcHAKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiV0tQYWdlUHJpdmF0ZUd0ay5oIgorCisjaW5jbHVkZSAiV0tBUElDYXN0Lmgi
CisjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisK
K3BpZF90IFdLUGFnZUdldFByb2Nlc3NJZGVudGlmaWVyKFdLUGFnZVJlZiBwYWdlUmVmKQorewor
ICAgIHJldHVybiB0b0ltcGwocGFnZVJlZiktPnByb2Nlc3NJZGVudGlmaWVyKCk7Cit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZ3RrL1dLUGFnZVByaXZhdGVH
dGsuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9ndGsvV0tQYWdlUHJpdmF0ZUd0
ay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5YTZhNzAKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZ3RrL1dLUGFnZVByaXZh
dGVHdGsuaApAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IElnYWxp
YSBTLkwKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXS1BhZ2VQcml2YXRlR3RrX2gKKyNkZWZpbmUgV0tQ
YWdlUHJpdmF0ZUd0a19oCisKKyNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+CisjaW5jbHVkZSA8
c3lzL3R5cGVzLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYK
KworV0tfRVhQT1JUIHBpZF90IFdLUGFnZUdldFByb2Nlc3NJZGVudGlmaWVyKFdLUGFnZVJlZiBw
YWdlKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8qIFdLUGFn
ZVByaXZhdGVHdGtfaCAqLwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IGQxMDAzODQuLmQ4MTFkYmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxNi0wNy0xNCAgUGhp
bGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgSW1wcm92ZSBH
REIgYmFja3RyYWNlIGdlbmVyYXRpb24gZm9yIEdUSy9FRkwKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyODkyOAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBQSUQgb2YgdGhlIGNyYXNoZWQgcHJvY2Vz
cyBpcyBub3cgY29ycmVjdGx5IHN1cHBsaWVkIHRvIHRoZQorICAgICAgICBjcmFzaCBsb2cgcmVw
b3J0ZXIuIFRoZSBrZXJuZWwgY29yZV9wYXR0ZXJuIG5lZWRzIHRvIGJlIHVwZGF0ZWQKKyAgICAg
ICAgYWZ0ZXIgdGhpcyBjaGFuZ2UgdG8gc29tZXRoaW5nIGxpa2U6CisKKyAgICAgICAgZWNobyAi
fC9ob21lL3BoaWwvV2ViS2l0L1Rvb2xzL1NjcmlwdHMvcHJvY2Vzcy1saW51eC1jb3JlZHVtcCAl
cCAvdG1wLyIgPiAvcHJvYy9zeXMva2VybmVsL2NvcmVfcGF0dGVybgorCisgICAgICAgICogU2Ny
aXB0cy9wcm9jZXNzLWxpbnV4LWNvcmVkdW1wOiBBZGRlZC4KKyAgICAgICAgKG1haW4pOiBNaW5p
bWFsIHB5dGhvbiBzY3JpcHQgcmVhZGluZyBjb3JlZHVtcCBkYXRhIG9uIHN0ZGluIGFuZCB3cml0
aW5nIGl0IHRvIGEgZmlsZSBpbiAvdG1wLy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Bv
cnQvZWZsLnB5OgorICAgICAgICAoRWZsUG9ydC5fZ2V0X2NyYXNoX2xvZyk6IFN1cHBseSBwYXRo
IG9mIHRoZSBwcm9jZXNzLWxpbnV4LWNvcmVkdW1wIHNjcmlwdC4KKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L3BvcnQvZ3RrLnB5OgorICAgICAgICAoR3RrUG9ydC5fZ2V0X2NyYXNoX2xvZyk6
IERpdHRvLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9saW51eF9nZXRfY3Jhc2hf
bG9nLnB5OgorICAgICAgICAoR0RCQ3Jhc2hMb2dHZW5lcmF0b3IuX19pbml0X18pOiBOZXcgYXJn
dW1lbnQgZm9yIHN1cHBseWluZyB0aGUgcGF0aCBvZiBhIGNvcmVkdW1wIHByb2Nlc3NvciBzY3Jp
cHQuCisgICAgICAgIChHREJDcmFzaExvZ0dlbmVyYXRvci5nZW5lcmF0ZV9jcmFzaF9sb2cpOiBV
cGRhdGUgZXJyb3IgbWVzc2FnZSwgdGhlIGNvcmVfcGF0dGVybiBzaG91bGQgbm93IGJlIHNldCB0
byBwaXBlIGNvcmVkdW1wcyB0byBhIHNjcmlwdC4KKyAgICAgICAgKEdEQkNyYXNoTG9nR2VuZXJh
dG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvbGludXhfZ2V0
X2NyYXNoX2xvZ191bml0dGVzdC5weToKKyAgICAgICAgKEdEQkNyYXNoTG9nR2VuZXJhdG9yVGVz
dC50ZXN0X2dlbmVyYXRlX2NyYXNoX2xvZyk6IFVwZGF0ZSB0ZXN0IGV4cGVjdGF0aW9ucy4KKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdU
Ujo6VGVzdENvbnRyb2xsZXI6Om5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2gpOiBTdXBwbHkgUElEIG9m
IGNyYXNoIHByb2Nlc3MuCisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpkYXRhYmFzZVBy
b2Nlc3NEaWRDcmFzaCk6IERpdHRvLgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cHJv
Y2Vzc0RpZENyYXNoKTogRGl0dG8uCisKIDIwMTYtMDctMTMgIENhcmxvcyBHYXJjaWEgQ2FtcG9z
ICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFRlc3QgV1RGLlN0cmluZ1ZpZXdJdGVy
YXRvcnMgaXMgY3Jhc2hpbmcgc2luY2UgcjIwMzExOQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy9wcm9jZXNzLWxpbnV4LWNvcmVkdW1wIGIvVG9vbHMvU2NyaXB0cy9wcm9jZXNzLWxpbnV4LWNv
cmVkdW1wCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmU5YzE1YmQKLS0tIC9k
ZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3Byb2Nlc3MtbGludXgtY29yZWR1bXAKQEAgLTAs
MCArMSwzNyBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjIENvcHlyaWdodCAoQykgMjAxNiBJ
Z2FsaWEgUy5MLgorIworIyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisjIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisjIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisjIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyMgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorIyBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjEx
MC0xMzAxICBVU0EKKworaW1wb3J0IG9zCitpbXBvcnQgc3lzCisKKyMgVGhpcyBzY3JpcHQgaXMg
bWVhbnQgdG8gYmUgaW52b2tlZCBieSB0aGUga2VybmVsJ3MgY29yZV9wYXR0ZXJuIGhvb2suIEl0
CisjIHRha2VzIDIgYXJndW1lbnRzIG9uIGNvbW1hbmQtbGluZTogdGhlIHBpZCBvZiB0aGUgcHJv
Y2VzcyB3aGljaCBjcmFzaGVkIGFuZCBhCisjIGRlc3RpbmF0aW9uIGRpcmVjdG9yeSBwYXRoIHRv
IHdoaWNoIHRoZSBjb3JlZHVtcCBkYXRhIHNob3VsZCBiZSBzYXZlZC4KKworZGVmIG1haW4ocGlk
LCBkZXN0aW5hdGlvbl9kaXJlY3RvcnkpOgorICAgIGZ1bGxfcGF0aCA9IG9zLnBhdGguam9pbihk
ZXN0aW5hdGlvbl9kaXJlY3RvcnksICdjb3JlLXBpZF8lZC5kdW1wJyAgJSBpbnQocGlkKSkKKyAg
ICBjb3JlZHVtcCA9IG9wZW4oZnVsbF9wYXRoLCAnd2InKQorICAgIHdoaWxlIFRydWU6CisgICAg
ICAgIGRhdGEgPSBzeXMuc3RkaW4ucmVhZCgpCisgICAgICAgIGlmIG5vdCBkYXRhOgorICAgICAg
ICAgICAgYnJlYWsKKyAgICAgICAgY29yZWR1bXAud3JpdGUoZGF0YSkKKyAgICBjb3JlZHVtcC5j
bG9zZSgpCisgICAgcmV0dXJuIDAKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICBz
eXMuZXhpdChtYWluKCpzeXMuYXJndlsxOl0pKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9wb3J0L2VmbC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9lZmwucHkK
aW5kZXggNDE2MWFlOC4uYTkwMGIzYyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9wb3J0L2VmbC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZWZsLnB5CkBA
IC0xNDIsNyArMTQyLDcgQEAgY2xhc3MgRWZsUG9ydChQb3J0KToKICAgICAgICAgcmV0dXJuIGNv
bW1hbmQKIAogICAgIGRlZiBfZ2V0X2NyYXNoX2xvZyhzZWxmLCBuYW1lLCBwaWQsIHN0ZG91dCwg
c3RkZXJyLCBuZXdlcl90aGFuKToKLSAgICAgICAgcmV0dXJuIEdEQkNyYXNoTG9nR2VuZXJhdG9y
KG5hbWUsIHBpZCwgbmV3ZXJfdGhhbiwgc2VsZi5fZmlsZXN5c3RlbSwgc2VsZi5fcGF0aF90b19k
cml2ZXIpLmdlbmVyYXRlX2NyYXNoX2xvZyhzdGRvdXQsIHN0ZGVycikKKyAgICAgICAgcmV0dXJu
IEdEQkNyYXNoTG9nR2VuZXJhdG9yKG5hbWUsIHBpZCwgbmV3ZXJfdGhhbiwgc2VsZi5fZmlsZXN5
c3RlbSwgc2VsZi5wYXRoX3RvX3NjcmlwdCgicHJvY2Vzcy1saW51eC1jb3JlZHVtcCIpLCBzZWxm
Ll9wYXRoX3RvX2RyaXZlcikuZ2VuZXJhdGVfY3Jhc2hfbG9nKHN0ZG91dCwgc3RkZXJyKQogCiAg
ICAgZGVmIHRlc3RfZXhwZWN0YXRpb25zX2ZpbGVfcG9zaXRpb24oc2VsZik6CiAgICAgICAgICMg
RUZMIHBvcnQgYmFzZWxpbmUgc2VhcmNoIHBhdGggaXMgZWZsIC0+IHdrMiAtPiBnZW5lcmljIChh
cyBlZmwtd2syIGFuZCBlZmwgYmFzZWxpbmVzIGFyZSBtZXJnZWQpLCBzbyBwb3J0IHRlc3QgZXhw
ZWN0YXRpb25zIGZpbGUgaXMgYXQgdGhpcmQgdG8gbGFzdCBwb3NpdGlvbi4KZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9ndGsucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3BvcnQvZ3RrLnB5CmluZGV4IDI4Yjc5ZGQuLmM2MzAyZjEgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvcG9ydC9ndGsucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9wb3J0L2d0ay5weQpAQCAtMjE2LDcgKzIxNiw3IEBAIGNsYXNzIEd0a1BvcnQoUG9ydCk6CiAK
ICAgICBkZWYgX2dldF9jcmFzaF9sb2coc2VsZiwgbmFtZSwgcGlkLCBzdGRvdXQsIHN0ZGVyciwg
bmV3ZXJfdGhhbik6CiAgICAgICAgIG5hbWUgPSAiV2ViS2l0V2ViUHJvY2VzcyIgaWYgbmFtZSA9
PSAiV2ViUHJvY2VzcyIgZWxzZSBuYW1lCi0gICAgICAgIHJldHVybiBHREJDcmFzaExvZ0dlbmVy
YXRvcihuYW1lLCBwaWQsIG5ld2VyX3RoYW4sIHNlbGYuX2ZpbGVzeXN0ZW0sIHNlbGYuX3BhdGhf
dG9fZHJpdmVyKS5nZW5lcmF0ZV9jcmFzaF9sb2coc3Rkb3V0LCBzdGRlcnIpCisgICAgICAgIHJl
dHVybiBHREJDcmFzaExvZ0dlbmVyYXRvcihuYW1lLCBwaWQsIG5ld2VyX3RoYW4sIHNlbGYuX2Zp
bGVzeXN0ZW0sIHNlbGYucGF0aF90b19zY3JpcHQoInByb2Nlc3MtbGludXgtY29yZWR1bXAiKSwg
c2VsZi5fcGF0aF90b19kcml2ZXIpLmdlbmVyYXRlX2NyYXNoX2xvZyhzdGRvdXQsIHN0ZGVycikK
IAogICAgIGRlZiB0ZXN0X2V4cGVjdGF0aW9uc19maWxlX3Bvc2l0aW9uKHNlbGYpOgogICAgICAg
ICAjIEdUSyBwb3J0IGJhc2VsaW5lIHNlYXJjaCBwYXRoIGlzIGd0ayAtPiB3azIgLT4gZ2VuZXJp
YyAoYXMgZ3RrLXdrMiBhbmQgZ3RrIGJhc2VsaW5lcyBhcmUgbWVyZ2VkKSwgc28gcG9ydCB0ZXN0
IGV4cGVjdGF0aW9ucyBmaWxlIGlzIGF0IHRoaXJkIHRvIGxhc3QgcG9zaXRpb24uCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvbGludXhfZ2V0X2NyYXNoX2xvZy5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9saW51eF9nZXRfY3Jhc2hfbG9nLnB5CmluZGV4
IDAzNzZmN2MuLmI5MmZjZGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9y
dC9saW51eF9nZXRfY3Jhc2hfbG9nLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9y
dC9saW51eF9nZXRfY3Jhc2hfbG9nLnB5CkBAIC0zMCwxMyArMzAsMTMgQEAKIGltcG9ydCBzdWJw
cm9jZXNzCiBpbXBvcnQgb3MKIAotCiBjbGFzcyBHREJDcmFzaExvZ0dlbmVyYXRvcihvYmplY3Qp
OgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lLCBwaWQsIG5ld2VyX3RoYW4sIGZpbGVzeXN0
ZW0sIHBhdGhfdG9fZHJpdmVyKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSwgcGlkLCBu
ZXdlcl90aGFuLCBmaWxlc3lzdGVtLCBwcm9jZXNzX2NvcmVkdW1wX3NjcmlwdF9wYXRoLCBwYXRo
X3RvX2RyaXZlcik6CiAgICAgICAgIHNlbGYubmFtZSA9IG5hbWUKICAgICAgICAgc2VsZi5waWQg
PSBwaWQKICAgICAgICAgc2VsZi5uZXdlcl90aGFuID0gbmV3ZXJfdGhhbgogICAgICAgICBzZWxm
Ll9maWxlc3lzdGVtID0gZmlsZXN5c3RlbQorICAgICAgICBzZWxmLl9wcm9jZXNzX2NvcmVkdW1w
X3NjcmlwdF9wYXRoID0gcHJvY2Vzc19jb3JlZHVtcF9zY3JpcHRfcGF0aAogICAgICAgICBzZWxm
Ll9wYXRoX3RvX2RyaXZlciA9IHBhdGhfdG9fZHJpdmVyCiAKICAgICBkZWYgX2dldF9nZGJfb3V0
cHV0KHNlbGYsIGNvcmVkdW1wX3BhdGgpOgpAQCAtNTIsNyArNTIsNyBAQCBjbGFzcyBHREJDcmFz
aExvZ0dlbmVyYXRvcihvYmplY3QpOgogICAgICAgICBsb2dfZGlyZWN0b3J5ID0gb3MuZW52aXJv
bi5nZXQoIldFQktJVF9DT1JFX0RVTVBTX0RJUkVDVE9SWSIpCiAgICAgICAgIGVycm9ycyA9IFtd
CiAgICAgICAgIGNyYXNoX2xvZyA9ICcnCi0gICAgICAgIGV4cGVjdGVkX2NyYXNoX2R1bXBfZmls
ZW5hbWUgPSAiY29yZS1waWRfJXMtXy1wcm9jZXNzXyVzIiAlIChwaWRfcmVwcmVzZW50YXRpb24s
IHNlbGYubmFtZSkKKyAgICAgICAgZXhwZWN0ZWRfY3Jhc2hfZHVtcF9maWxlbmFtZSA9ICJjb3Jl
LXBpZF8lcy5kdW1wIiAlIHBpZF9yZXByZXNlbnRhdGlvbgogICAgICAgICBwcm9jX25hbWUgPSAi
JXMiICUgKHNlbGYubmFtZSkKIAogICAgICAgICBkZWYgbWF0Y2hfZmlsZW5hbWUoZmlsZXN5c3Rl
bSwgZGlyZWN0b3J5LCBmaWxlbmFtZSk6CkBAIC03NiwxMSArNzYsMTEgQEAgY2xhc3MgR0RCQ3Jh
c2hMb2dHZW5lcmF0b3Iob2JqZWN0KToKICAgICAgICAgaWYgbm90IGNyYXNoX2xvZzoKICAgICAg
ICAgICAgIGlmIG5vdCBsb2dfZGlyZWN0b3J5OgogICAgICAgICAgICAgICAgIGxvZ19kaXJlY3Rv
cnkgPSAiL3BhdGgvdG8vY29yZWR1bXBzIgotICAgICAgICAgICAgY29yZV9wYXR0ZXJuID0gb3Mu
cGF0aC5qb2luKGxvZ19kaXJlY3RvcnksICJjb3JlLXBpZF8lcC1fLXByb2Nlc3NfJUUiKQorICAg
ICAgICAgICAgcHJvY2Vzc19jb3JlZHVtcF9zY3JpcHRfcGF0aCA9IHNlbGYuX3Byb2Nlc3NfY29y
ZWR1bXBfc2NyaXB0X3BhdGgKICAgICAgICAgICAgIGNyYXNoX2xvZyA9ICIiIlwKIENvcmVkdW1w
ICUoZXhwZWN0ZWRfY3Jhc2hfZHVtcF9maWxlbmFtZSlzIG5vdCBmb3VuZC4gVG8gZW5hYmxlIGNy
YXNoIGxvZ3M6CiAKLS0gcnVuIHRoaXMgY29tbWFuZCBhcyBzdXBlci11c2VyOiBlY2hvICIlKGNv
cmVfcGF0dGVybilzIiA+IC9wcm9jL3N5cy9rZXJuZWwvY29yZV9wYXR0ZXJuCistIHJ1biB0aGlz
IGNvbW1hbmQgYXMgc3VwZXItdXNlcjogZWNobyAifCUocHJvY2Vzc19jb3JlZHVtcF9zY3JpcHRf
cGF0aClzICUlcCAlKGxvZ19kaXJlY3RvcnkpcyIgPiAvcHJvYy9zeXMva2VybmVsL2NvcmVfcGF0
dGVybgogLSBlbmFibGUgY29yZSBkdW1wczogdWxpbWl0IC1jIHVubGltaXRlZAogLSBzZXQgdGhl
IFdFQktJVF9DT1JFX0RVTVBTX0RJUkVDVE9SWSBlbnZpcm9ubWVudCB2YXJpYWJsZTogZXhwb3J0
IFdFQktJVF9DT1JFX0RVTVBTX0RJUkVDVE9SWT0lKGxvZ19kaXJlY3RvcnkpcwogCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvbGludXhfZ2V0X2NyYXNoX2xvZ191bml0
dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9saW51eF9nZXRfY3Jhc2hfbG9n
X3VuaXR0ZXN0LnB5CmluZGV4IGNkZjkxNWYuLmZjM2YzYmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvcG9ydC9saW51eF9nZXRfY3Jhc2hfbG9nX3VuaXR0ZXN0LnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9saW51eF9nZXRfY3Jhc2hfbG9nX3VuaXR0ZXN0
LnB5CkBAIC00MSwxNCArNDEsMTYgQEAgY2xhc3MgR0RCQ3Jhc2hMb2dHZW5lcmF0b3JUZXN0KHVu
aXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgaWYgc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoJ3dp
bicpOgogICAgICAgICAgICAgcmV0dXJuCiAKLSAgICAgICAgZ2VuZXJhdG9yID0gR0RCQ3Jhc2hM
b2dHZW5lcmF0b3IoJ0R1bXBSZW5kZXJUcmVlJywgMjg1MjksIG5ld2VyX3RoYW49Tm9uZSwgZmls
ZXN5c3RlbT1Nb2NrRmlsZVN5c3RlbSh7Jy9wYXRoL3RvL2NvcmVkdW1wcyc6ICcnfSksIHBhdGhf
dG9fZHJpdmVyPU5vbmUpCisgICAgICAgIHByb2Nlc3NfY29yZWR1bXBfc2NyaXB0X3BhdGggPSAi
L3BhdGgvdG8vY29yZWR1bXAtcHJvY2Vzc29yIgorICAgICAgICBnZW5lcmF0b3IgPSBHREJDcmFz
aExvZ0dlbmVyYXRvcignRHVtcFJlbmRlclRyZWUnLCAyODUyOSwgbmV3ZXJfdGhhbj1Ob25lLCBm
aWxlc3lzdGVtPU1vY2tGaWxlU3lzdGVtKHsnL3BhdGgvdG8vY29yZWR1bXBzJzogJyd9KSwgcHJv
Y2Vzc19jb3JlZHVtcF9zY3JpcHRfcGF0aD1wcm9jZXNzX2NvcmVkdW1wX3NjcmlwdF9wYXRoLCBw
YXRoX3RvX2RyaXZlcj1Ob25lKQogCiAgICAgICAgIGNvcmVfZGlyZWN0b3J5ID0gb3MuZW52aXJv
bi5nZXQoJ1dFQktJVF9DT1JFX0RVTVBTX0RJUkVDVE9SWScsICcvcGF0aC90by9jb3JlZHVtcHMn
KQogICAgICAgICBjb3JlX3BhdHRlcm4gPSBvcy5wYXRoLmpvaW4oY29yZV9kaXJlY3RvcnksICJj
b3JlLXBpZF8lcC1fLXByb2Nlc3NfJUUiKQorICAgICAgICBjb3JlX3BhdHRlcm4gPSAifCVzICUl
cCAvcGF0aC90by9jb3JlZHVtcHMiICUgcHJvY2Vzc19jb3JlZHVtcF9zY3JpcHRfcGF0aAogICAg
ICAgICBtb2NrX2VtcHR5X2NyYXNoX2xvZyA9ICIiIlwKIGNyYXNoIGxvZyBmb3IgRHVtcFJlbmRl
clRyZWUgKHBpZCAyODUyOSk6CiAKLUNvcmVkdW1wIGNvcmUtcGlkXzI4NTI5LV8tcHJvY2Vzc19E
dW1wUmVuZGVyVHJlZSBub3QgZm91bmQuIFRvIGVuYWJsZSBjcmFzaCBsb2dzOgorQ29yZWR1bXAg
Y29yZS1waWRfMjg1MjkuZHVtcCBub3QgZm91bmQuIFRvIGVuYWJsZSBjcmFzaCBsb2dzOgogCiAt
IHJ1biB0aGlzIGNvbW1hbmQgYXMgc3VwZXItdXNlcjogZWNobyAiJShjb3JlX3BhdHRlcm4pcyIg
PiAvcHJvYy9zeXMva2VybmVsL2NvcmVfcGF0dGVybgogLSBlbmFibGUgY29yZSBkdW1wczogdWxp
bWl0IC1jIHVubGltaXRlZApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNw
cAppbmRleCA2M2FiNjQwLi5iZGIzMTAyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmNwcApAQCAtNzksNiArNzksMTEgQEAKICNpbmNsdWRlIDxXZWJLaXQvV0tQYWdl
UHJpdmF0ZU1hYy5oPgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShHVEspCisjaW5jbHVkZSA8V2Vi
S2l0L1dLQ29udGV4dFByaXZhdGVHdGsuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tQYWdlUHJpdmF0
ZUd0ay5oPgorI2VuZGlmCisKICNpZiAhUExBVEZPUk0oQ09DT0EpCiAjaW5jbHVkZSA8V2ViS2l0
L1dLVGV4dENoZWNrZXIuaD4KICNlbmRpZgpAQCAtMTQ3OCw3ICsxNDgzLDcgQEAgV0tSZXRhaW5Q
dHI8V0tUeXBlUmVmPiBUZXN0Q29udHJvbGxlcjo6Z2V0SW5qZWN0ZWRCdW5kbGVJbml0aWFsaXph
dGlvblVzZXJEYXRhKCkKIAogdm9pZCBUZXN0Q29udHJvbGxlcjo6bmV0d29ya1Byb2Nlc3NEaWRD
cmFzaCgpCiB7Ci0jaWYgUExBVEZPUk0oQ09DT0EpCisjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBM
QVRGT1JNKEdUSykKICAgICBwaWRfdCBwaWQgPSBXS0NvbnRleHRHZXROZXR3b3JrUHJvY2Vzc0lk
ZW50aWZpZXIobV9jb250ZXh0LmdldCgpKTsKICAgICBmcHJpbnRmKHN0ZGVyciwgIiNDUkFTSEVE
IC0gJXMgKHBpZCAlbGQpXG4iLCBuZXR3b3JrUHJvY2Vzc05hbWUoKSwgc3RhdGljX2Nhc3Q8bG9u
Zz4ocGlkKSk7CiAjZWxzZQpAQCAtMTQ4OSw3ICsxNDk0LDcgQEAgdm9pZCBUZXN0Q29udHJvbGxl
cjo6bmV0d29ya1Byb2Nlc3NEaWRDcmFzaCgpCiAKIHZvaWQgVGVzdENvbnRyb2xsZXI6OmRhdGFi
YXNlUHJvY2Vzc0RpZENyYXNoKCkKIHsKLSNpZiBQTEFURk9STShDT0NPQSkKKyNpZiBQTEFURk9S
TShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKQogICAgIHBpZF90IHBpZCA9IFdLQ29udGV4dEdldERh
dGFiYXNlUHJvY2Vzc0lkZW50aWZpZXIobV9jb250ZXh0LmdldCgpKTsKICAgICBmcHJpbnRmKHN0
ZGVyciwgIiNDUkFTSEVEIC0gJXMgKHBpZCAlbGQpXG4iLCBkYXRhYmFzZVByb2Nlc3NOYW1lKCks
IHN0YXRpY19jYXN0PGxvbmc+KHBpZCkpOwogI2Vsc2UKQEAgLTE3MjEsNyArMTcyNiw3IEBAIHZv
aWQgVGVzdENvbnRyb2xsZXI6OnByb2Nlc3NEaWRDcmFzaCgpCiAgICAgLy8gVGhpcyBmdW5jdGlv
biBjYW4gYmUgY2FsbGVkIG11bHRpcGxlIHRpbWVzIHdoZW4gY3Jhc2ggbG9ncyBhcmUgYmVpbmcg
c2F2ZWQgb24gV2luZG93cywgc28KICAgICAvLyBlbnN1cmUgd2Ugb25seSBwcmludCB0aGUgY3Jh
c2hlZCBtZXNzYWdlIG9uY2UuCiAgICAgaWYgKCFtX2RpZFByaW50V2ViUHJvY2Vzc0NyYXNoZWRN
ZXNzYWdlKSB7Ci0jaWYgUExBVEZPUk0oQ09DT0EpCisjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBM
QVRGT1JNKEdUSykKICAgICAgICAgcGlkX3QgcGlkID0gV0tQYWdlR2V0UHJvY2Vzc0lkZW50aWZp
ZXIobV9tYWluV2ViVmlldy0+cGFnZSgpKTsKICAgICAgICAgZnByaW50ZihzdGRlcnIsICIjQ1JB
U0hFRCAtICVzIChwaWQgJWxkKVxuIiwgd2ViUHJvY2Vzc05hbWUoKSwgc3RhdGljX2Nhc3Q8bG9u
Zz4ocGlkKSk7CiAjZWxzZQotLSAKMi44LjE=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283647</attachid>
            <date>2016-07-14 08:37:43 -0700</date>
            <delta_ts>2016-07-22 00:36:06 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.patch</filename>
            <type>text/plain</type>
            <size>21533</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA5YTRiN2EzODkxODNiOWU2ZGRiY2YxMDUxODc2ODU3OWMwNzlhMjM0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBNb24sIDExIEp1bCAyMDE2IDE2OjMxOjQ4ICswMjAwClN1YmplY3Q6IFtQQVRDSF0g
cGF0Y2gKCi0tLQogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAxOCArKysrKysrKysrCiBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUdUSy5jbWFrZSAg
ICAgICAgICAgICAgICAgICB8ICAyICsrCiAuLi4vVUlQcm9jZXNzL0FQSS9DL2d0ay9XS0NvbnRl
eHRQcml2YXRlR3RrLmNwcCAgICB8IDQyICsrKysrKysrKysrKysrKysrKysrKysKIC4uLi9VSVBy
b2Nlc3MvQVBJL0MvZ3RrL1dLQ29udGV4dFByaXZhdGVHdGsuaCAgICAgIHwgNDIgKysrKysrKysr
KysrKysrKysrKysrKwogLi4uL1VJUHJvY2Vzcy9BUEkvQy9ndGsvV0tQYWdlUHJpdmF0ZUd0ay5j
cHAgICAgICAgfCAzNyArKysrKysrKysrKysrKysrKysrCiAuLi4vV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvZ3RrL1dLUGFnZVByaXZhdGVHdGsuaCB8IDQyICsrKysrKysrKysrKysrKysrKysrKysK
IFRvb2xzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMzAg
KysrKysrKysrKysrKysrKwogVG9vbHMvU2NyaXB0cy9wcm9jZXNzLWxpbnV4LWNvcmVkdW1wICAg
ICAgICAgICAgICAgfCAzNyArKysrKysrKysrKysrKysrKysrCiBUb29scy9TY3JpcHRzL3dlYmtp
dHB5L3BvcnQvZWZsLnB5ICAgICAgICAgICAgICAgICB8ICAyICstCiBUb29scy9TY3JpcHRzL3dl
YmtpdHB5L3BvcnQvZ3RrLnB5ICAgICAgICAgICAgICAgICB8ICAyICstCiBUb29scy9TY3JpcHRz
L3dlYmtpdHB5L3BvcnQvbGludXhfZ2V0X2NyYXNoX2xvZy5weSB8IDEwICsrKy0tLQogLi4uL3dl
YmtpdHB5L3BvcnQvbGludXhfZ2V0X2NyYXNoX2xvZ191bml0dGVzdC5weSAgfCAgNiArKy0tCiBU
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCAgICAgICAgICB8IDExICsr
KystLQogMTMgZmlsZXMgY2hhbmdlZCwgMjY5IGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygt
KQogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9ndGsv
V0tDb250ZXh0UHJpdmF0ZUd0ay5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvZ3RrL1dLQ29udGV4dFByaXZhdGVHdGsuaAogY3JlYXRlIG1vZGUg
MTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9ndGsvV0tQYWdlUHJpdmF0ZUd0
ay5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
Z3RrL1dLUGFnZVByaXZhdGVHdGsuaAogY3JlYXRlIG1vZGUgMTAwNzU1IFRvb2xzL1NjcmlwdHMv
cHJvY2Vzcy1saW51eC1jb3JlZHVtcAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAyYTU3YjViLi44MjY3ZjBlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTYtMDctMTQgIFBoaWxpcHBlIE5vcm1hbmQg
IDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIEltcHJvdmUgR0RCIGJhY2t0cmFjZSBn
ZW5lcmF0aW9uIGZvciBHVEsvRUZMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMjg5MjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBQcml2YXRlIEdUSyBDIEFQSSB0byByZXRyaWV2ZSB0aGUgUElEIG9mIHRo
ZSBEYXRhYmFzZSwgV2ViIGFuZCBOZXR3b3JrIHByb2Nlc3Nlcy4KKworICAgICAgICAqIFBsYXRm
b3JtR1RLLmNtYWtlOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9ndGsvV0tDb250ZXh0UHJp
dmF0ZUd0ay5jcHA6IEFkZGVkLgorICAgICAgICAoV0tDb250ZXh0R2V0TmV0d29ya1Byb2Nlc3NJ
ZGVudGlmaWVyKToKKyAgICAgICAgKFdLQ29udGV4dEdldERhdGFiYXNlUHJvY2Vzc0lkZW50aWZp
ZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9ndGsvV0tDb250ZXh0UHJpdmF0ZUd0ay5o
OiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvZ3RrL1dLUGFnZVByaXZhdGVHdGsu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdLUGFnZUdldFByb2Nlc3NJZGVudGlmaWVyKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0MvZ3RrL1dLUGFnZVByaXZhdGVHdGsuaDogQWRkZWQuCisKIDIw
MTYtMDctMTMgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAog
ICAgICAgICBNb2Rlcm5pemUgV2ViU29ja2V0IGhhbmRsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvUGxhdGZvcm1HVEsuY21ha2UgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUdUSy5jbWFr
ZQppbmRleCBiM2MyYWRiLi43Njc1MWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybUdUSy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAt
ODgsOCArODgsMTAgQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAKICAgICBVSVByb2Nl
c3MvQVBJL0MvY2Fpcm8vV0tJY29uRGF0YWJhc2VDYWlyby5jcHAKIAorICAgIFVJUHJvY2Vzcy9B
UEkvQy9ndGsvV0tDb250ZXh0UHJpdmF0ZUd0ay5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvZ3Rr
L1dLRnVsbFNjcmVlbkNsaWVudEd0ay5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvZ3RrL1dLSW5z
cGVjdG9yQ2xpZW50R3RrLmNwcAorICAgIFVJUHJvY2Vzcy9BUEkvQy9ndGsvV0tQYWdlUHJpdmF0
ZUd0ay5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvZ3RrL1dLVGV4dENoZWNrZXJHdGsuY3BwCiAg
ICAgVUlQcm9jZXNzL0FQSS9DL2d0ay9XS1ZpZXcuY3BwCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9ndGsvV0tDb250ZXh0UHJpdmF0ZUd0ay5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZ3RrL1dLQ29udGV4dFByaXZhdGVHdGsuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3ZWIzMmMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZ3RrL1dLQ29udGV4dFByaXZhdGVH
dGsuY3BwCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgSWdhbGlh
IFMuTAorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV0tDb250ZXh0
UHJpdmF0ZUd0ay5oIgorCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV2ViUHJv
Y2Vzc1Bvb2wuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworcGlkX3QgV0tDb250ZXh0
R2V0TmV0d29ya1Byb2Nlc3NJZGVudGlmaWVyKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmKQorewor
ICAgIHJldHVybiB0b0ltcGwoY29udGV4dFJlZiktPm5ldHdvcmtQcm9jZXNzSWRlbnRpZmllcigp
OworfQorCitwaWRfdCBXS0NvbnRleHRHZXREYXRhYmFzZVByb2Nlc3NJZGVudGlmaWVyKFdLQ29u
dGV4dFJlZiBjb250ZXh0UmVmKQoreworICAgIHJldHVybiB0b0ltcGwoY29udGV4dFJlZiktPmRh
dGFiYXNlUHJvY2Vzc0lkZW50aWZpZXIoKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9ndGsvV0tDb250ZXh0UHJpdmF0ZUd0ay5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL2d0ay9XS0NvbnRleHRQcml2YXRlR3RrLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTIyZjUzNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9ndGsvV0tDb250ZXh0UHJpdmF0ZUd0ay5oCkBAIC0w
LDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgSWdhbGlhIFMuTAorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIFdLQ29udGV4dFByaXZhdGVHdGtfaAorI2RlZmluZSBXS0NvbnRleHRQcml2
YXRlR3RrX2gKKworI2luY2x1ZGUgPFdlYktpdC9XS0Jhc2UuaD4KKworI2lmZGVmIF9fY3BsdXNw
bHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitXS19FWFBPUlQgcGlkX3QgV0tDb250ZXh0R2V0
TmV0d29ya1Byb2Nlc3NJZGVudGlmaWVyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKK1dLX0VYUE9S
VCBwaWRfdCBXS0NvbnRleHRHZXREYXRhYmFzZVByb2Nlc3NJZGVudGlmaWVyKFdLQ29udGV4dFJl
ZiBjb250ZXh0KTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8q
IFdLQ29udGV4dFByaXZhdGVHdGtfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL2d0ay9XS1BhZ2VQcml2YXRlR3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9ndGsvV0tQYWdlUHJpdmF0ZUd0ay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uNjdjNzFjYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9ndGsvV0tQYWdlUHJpdmF0ZUd0ay5jcHAKQEAgLTAsMCArMSwz
NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV0tQYWdlUHJpdmF0ZUd0ay5oIgorCisjaW5j
bHVkZSAiV0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCisKK3VzaW5nIG5h
bWVzcGFjZSBXZWJLaXQ7CisKK3BpZF90IFdLUGFnZUdldFByb2Nlc3NJZGVudGlmaWVyKFdLUGFn
ZVJlZiBwYWdlUmVmKQoreworICAgIHJldHVybiB0b0ltcGwocGFnZVJlZiktPnByb2Nlc3NJZGVu
dGlmaWVyKCk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
Z3RrL1dLUGFnZVByaXZhdGVHdGsuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9n
dGsvV0tQYWdlUHJpdmF0ZUd0ay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
Ljk5YTZhNzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvZ3RrL1dLUGFnZVByaXZhdGVHdGsuaApAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE2IElnYWxpYSBTLkwKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXS1BhZ2VQcml2YXRl
R3RrX2gKKyNkZWZpbmUgV0tQYWdlUHJpdmF0ZUd0a19oCisKKyNpbmNsdWRlIDxXZWJLaXQvV0tC
YXNlLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0
ZXJuICJDIiB7CisjZW5kaWYKKworV0tfRVhQT1JUIHBpZF90IFdLUGFnZUdldFByb2Nlc3NJZGVu
dGlmaWVyKFdLUGFnZVJlZiBwYWdlKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYK
KworI2VuZGlmIC8qIFdLUGFnZVByaXZhdGVHdGtfaCAqLwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGQxMDAzODQuLmQ4MTFkYmYgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBA
QAorMjAxNi0wNy0xNCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisK
KyAgICAgICAgSW1wcm92ZSBHREIgYmFja3RyYWNlIGdlbmVyYXRpb24gZm9yIEdUSy9FRkwKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyODkyOAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBQSUQgb2Yg
dGhlIGNyYXNoZWQgcHJvY2VzcyBpcyBub3cgY29ycmVjdGx5IHN1cHBsaWVkIHRvIHRoZQorICAg
ICAgICBjcmFzaCBsb2cgcmVwb3J0ZXIuIFRoZSBrZXJuZWwgY29yZV9wYXR0ZXJuIG5lZWRzIHRv
IGJlIHVwZGF0ZWQKKyAgICAgICAgYWZ0ZXIgdGhpcyBjaGFuZ2UgdG8gc29tZXRoaW5nIGxpa2U6
CisKKyAgICAgICAgZWNobyAifC9ob21lL3BoaWwvV2ViS2l0L1Rvb2xzL1NjcmlwdHMvcHJvY2Vz
cy1saW51eC1jb3JlZHVtcCAlcCAvdG1wLyIgPiAvcHJvYy9zeXMva2VybmVsL2NvcmVfcGF0dGVy
bgorCisgICAgICAgICogU2NyaXB0cy9wcm9jZXNzLWxpbnV4LWNvcmVkdW1wOiBBZGRlZC4KKyAg
ICAgICAgKG1haW4pOiBNaW5pbWFsIHB5dGhvbiBzY3JpcHQgcmVhZGluZyBjb3JlZHVtcCBkYXRh
IG9uIHN0ZGluIGFuZCB3cml0aW5nIGl0IHRvIGEgZmlsZSBpbiAvdG1wLy4KKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L3BvcnQvZWZsLnB5OgorICAgICAgICAoRWZsUG9ydC5fZ2V0X2NyYXNo
X2xvZyk6IFN1cHBseSBwYXRoIG9mIHRoZSBwcm9jZXNzLWxpbnV4LWNvcmVkdW1wIHNjcmlwdC4K
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvZ3RrLnB5OgorICAgICAgICAoR3RrUG9y
dC5fZ2V0X2NyYXNoX2xvZyk6IERpdHRvLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9y
dC9saW51eF9nZXRfY3Jhc2hfbG9nLnB5OgorICAgICAgICAoR0RCQ3Jhc2hMb2dHZW5lcmF0b3Iu
X19pbml0X18pOiBOZXcgYXJndW1lbnQgZm9yIHN1cHBseWluZyB0aGUgcGF0aCBvZiBhIGNvcmVk
dW1wIHByb2Nlc3NvciBzY3JpcHQuCisgICAgICAgIChHREJDcmFzaExvZ0dlbmVyYXRvci5nZW5l
cmF0ZV9jcmFzaF9sb2cpOiBVcGRhdGUgZXJyb3IgbWVzc2FnZSwgdGhlIGNvcmVfcGF0dGVybiBz
aG91bGQgbm93IGJlIHNldCB0byBwaXBlIGNvcmVkdW1wcyB0byBhIHNjcmlwdC4KKyAgICAgICAg
KEdEQkNyYXNoTG9nR2VuZXJhdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L3BvcnQvbGludXhfZ2V0X2NyYXNoX2xvZ191bml0dGVzdC5weToKKyAgICAgICAgKEdEQkNy
YXNoTG9nR2VuZXJhdG9yVGVzdC50ZXN0X2dlbmVyYXRlX2NyYXNoX2xvZyk6IFVwZGF0ZSB0ZXN0
IGV4cGVjdGF0aW9ucy4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6Om5ldHdvcmtQcm9jZXNzRGlkQ3Jh
c2gpOiBTdXBwbHkgUElEIG9mIGNyYXNoIHByb2Nlc3MuCisgICAgICAgIChXVFI6OlRlc3RDb250
cm9sbGVyOjpkYXRhYmFzZVByb2Nlc3NEaWRDcmFzaCk6IERpdHRvLgorICAgICAgICAoV1RSOjpU
ZXN0Q29udHJvbGxlcjo6cHJvY2Vzc0RpZENyYXNoKTogRGl0dG8uCisKIDIwMTYtMDctMTMgIENh
cmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFRlc3Qg
V1RGLlN0cmluZ1ZpZXdJdGVyYXRvcnMgaXMgY3Jhc2hpbmcgc2luY2UgcjIwMzExOQpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy9wcm9jZXNzLWxpbnV4LWNvcmVkdW1wIGIvVG9vbHMvU2NyaXB0
cy9wcm9jZXNzLWxpbnV4LWNvcmVkdW1wCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAw
MDAuLmU5YzE1YmQKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3Byb2Nlc3MtbGlu
dXgtY29yZWR1bXAKQEAgLTAsMCArMSwzNyBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjIENv
cHlyaWdodCAoQykgMjAxNiBJZ2FsaWEgUy5MLgorIworIyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisjIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyMgTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisjIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisjIExlc3NlciBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyMgTGljZW5z
ZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0
d2FyZQorIyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKworaW1wb3J0IG9zCitpbXBvcnQgc3lzCisK
KyMgVGhpcyBzY3JpcHQgaXMgbWVhbnQgdG8gYmUgaW52b2tlZCBieSB0aGUga2VybmVsJ3MgY29y
ZV9wYXR0ZXJuIGhvb2suIEl0CisjIHRha2VzIDIgYXJndW1lbnRzIG9uIGNvbW1hbmQtbGluZTog
dGhlIHBpZCBvZiB0aGUgcHJvY2VzcyB3aGljaCBjcmFzaGVkIGFuZCBhCisjIGRlc3RpbmF0aW9u
IGRpcmVjdG9yeSBwYXRoIHRvIHdoaWNoIHRoZSBjb3JlZHVtcCBkYXRhIHNob3VsZCBiZSBzYXZl
ZC4KKworZGVmIG1haW4ocGlkLCBkZXN0aW5hdGlvbl9kaXJlY3RvcnkpOgorICAgIGZ1bGxfcGF0
aCA9IG9zLnBhdGguam9pbihkZXN0aW5hdGlvbl9kaXJlY3RvcnksICdjb3JlLXBpZF8lZC5kdW1w
JyAgJSBpbnQocGlkKSkKKyAgICBjb3JlZHVtcCA9IG9wZW4oZnVsbF9wYXRoLCAnd2InKQorICAg
IHdoaWxlIFRydWU6CisgICAgICAgIGRhdGEgPSBzeXMuc3RkaW4ucmVhZCgpCisgICAgICAgIGlm
IG5vdCBkYXRhOgorICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgY29yZWR1bXAud3JpdGUoZGF0
YSkKKyAgICBjb3JlZHVtcC5jbG9zZSgpCisgICAgcmV0dXJuIDAKKworaWYgX19uYW1lX18gPT0g
J19fbWFpbl9fJzoKKyAgICBzeXMuZXhpdChtYWluKCpzeXMuYXJndlsxOl0pKQpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2VmbC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvcG9ydC9lZmwucHkKaW5kZXggNDE2MWFlOC4uYTkwMGIzYyAxMDA2NDQKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2VmbC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3BvcnQvZWZsLnB5CkBAIC0xNDIsNyArMTQyLDcgQEAgY2xhc3MgRWZsUG9ydChQb3J0KToK
ICAgICAgICAgcmV0dXJuIGNvbW1hbmQKIAogICAgIGRlZiBfZ2V0X2NyYXNoX2xvZyhzZWxmLCBu
YW1lLCBwaWQsIHN0ZG91dCwgc3RkZXJyLCBuZXdlcl90aGFuKToKLSAgICAgICAgcmV0dXJuIEdE
QkNyYXNoTG9nR2VuZXJhdG9yKG5hbWUsIHBpZCwgbmV3ZXJfdGhhbiwgc2VsZi5fZmlsZXN5c3Rl
bSwgc2VsZi5fcGF0aF90b19kcml2ZXIpLmdlbmVyYXRlX2NyYXNoX2xvZyhzdGRvdXQsIHN0ZGVy
cikKKyAgICAgICAgcmV0dXJuIEdEQkNyYXNoTG9nR2VuZXJhdG9yKG5hbWUsIHBpZCwgbmV3ZXJf
dGhhbiwgc2VsZi5fZmlsZXN5c3RlbSwgc2VsZi5wYXRoX3RvX3NjcmlwdCgicHJvY2Vzcy1saW51
eC1jb3JlZHVtcCIpLCBzZWxmLl9wYXRoX3RvX2RyaXZlcikuZ2VuZXJhdGVfY3Jhc2hfbG9nKHN0
ZG91dCwgc3RkZXJyKQogCiAgICAgZGVmIHRlc3RfZXhwZWN0YXRpb25zX2ZpbGVfcG9zaXRpb24o
c2VsZik6CiAgICAgICAgICMgRUZMIHBvcnQgYmFzZWxpbmUgc2VhcmNoIHBhdGggaXMgZWZsIC0+
IHdrMiAtPiBnZW5lcmljIChhcyBlZmwtd2syIGFuZCBlZmwgYmFzZWxpbmVzIGFyZSBtZXJnZWQp
LCBzbyBwb3J0IHRlc3QgZXhwZWN0YXRpb25zIGZpbGUgaXMgYXQgdGhpcmQgdG8gbGFzdCBwb3Np
dGlvbi4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9ndGsucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZ3RrLnB5CmluZGV4IDI4Yjc5ZGQuLmM2MzAyZjEg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9ndGsucHkKKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2d0ay5weQpAQCAtMjE2LDcgKzIxNiw3IEBAIGNsYXNz
IEd0a1BvcnQoUG9ydCk6CiAKICAgICBkZWYgX2dldF9jcmFzaF9sb2coc2VsZiwgbmFtZSwgcGlk
LCBzdGRvdXQsIHN0ZGVyciwgbmV3ZXJfdGhhbik6CiAgICAgICAgIG5hbWUgPSAiV2ViS2l0V2Vi
UHJvY2VzcyIgaWYgbmFtZSA9PSAiV2ViUHJvY2VzcyIgZWxzZSBuYW1lCi0gICAgICAgIHJldHVy
biBHREJDcmFzaExvZ0dlbmVyYXRvcihuYW1lLCBwaWQsIG5ld2VyX3RoYW4sIHNlbGYuX2ZpbGVz
eXN0ZW0sIHNlbGYuX3BhdGhfdG9fZHJpdmVyKS5nZW5lcmF0ZV9jcmFzaF9sb2coc3Rkb3V0LCBz
dGRlcnIpCisgICAgICAgIHJldHVybiBHREJDcmFzaExvZ0dlbmVyYXRvcihuYW1lLCBwaWQsIG5l
d2VyX3RoYW4sIHNlbGYuX2ZpbGVzeXN0ZW0sIHNlbGYucGF0aF90b19zY3JpcHQoInByb2Nlc3Mt
bGludXgtY29yZWR1bXAiKSwgc2VsZi5fcGF0aF90b19kcml2ZXIpLmdlbmVyYXRlX2NyYXNoX2xv
ZyhzdGRvdXQsIHN0ZGVycikKIAogICAgIGRlZiB0ZXN0X2V4cGVjdGF0aW9uc19maWxlX3Bvc2l0
aW9uKHNlbGYpOgogICAgICAgICAjIEdUSyBwb3J0IGJhc2VsaW5lIHNlYXJjaCBwYXRoIGlzIGd0
ayAtPiB3azIgLT4gZ2VuZXJpYyAoYXMgZ3RrLXdrMiBhbmQgZ3RrIGJhc2VsaW5lcyBhcmUgbWVy
Z2VkKSwgc28gcG9ydCB0ZXN0IGV4cGVjdGF0aW9ucyBmaWxlIGlzIGF0IHRoaXJkIHRvIGxhc3Qg
cG9zaXRpb24uCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvbGludXhf
Z2V0X2NyYXNoX2xvZy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9saW51eF9nZXRf
Y3Jhc2hfbG9nLnB5CmluZGV4IDAzNzZmN2MuLmI5MmZjZGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvcG9ydC9saW51eF9nZXRfY3Jhc2hfbG9nLnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvcG9ydC9saW51eF9nZXRfY3Jhc2hfbG9nLnB5CkBAIC0zMCwxMyArMzAs
MTMgQEAKIGltcG9ydCBzdWJwcm9jZXNzCiBpbXBvcnQgb3MKIAotCiBjbGFzcyBHREJDcmFzaExv
Z0dlbmVyYXRvcihvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lLCBwaWQsIG5l
d2VyX3RoYW4sIGZpbGVzeXN0ZW0sIHBhdGhfdG9fZHJpdmVyKToKKyAgICBkZWYgX19pbml0X18o
c2VsZiwgbmFtZSwgcGlkLCBuZXdlcl90aGFuLCBmaWxlc3lzdGVtLCBwcm9jZXNzX2NvcmVkdW1w
X3NjcmlwdF9wYXRoLCBwYXRoX3RvX2RyaXZlcik6CiAgICAgICAgIHNlbGYubmFtZSA9IG5hbWUK
ICAgICAgICAgc2VsZi5waWQgPSBwaWQKICAgICAgICAgc2VsZi5uZXdlcl90aGFuID0gbmV3ZXJf
dGhhbgogICAgICAgICBzZWxmLl9maWxlc3lzdGVtID0gZmlsZXN5c3RlbQorICAgICAgICBzZWxm
Ll9wcm9jZXNzX2NvcmVkdW1wX3NjcmlwdF9wYXRoID0gcHJvY2Vzc19jb3JlZHVtcF9zY3JpcHRf
cGF0aAogICAgICAgICBzZWxmLl9wYXRoX3RvX2RyaXZlciA9IHBhdGhfdG9fZHJpdmVyCiAKICAg
ICBkZWYgX2dldF9nZGJfb3V0cHV0KHNlbGYsIGNvcmVkdW1wX3BhdGgpOgpAQCAtNTIsNyArNTIs
NyBAQCBjbGFzcyBHREJDcmFzaExvZ0dlbmVyYXRvcihvYmplY3QpOgogICAgICAgICBsb2dfZGly
ZWN0b3J5ID0gb3MuZW52aXJvbi5nZXQoIldFQktJVF9DT1JFX0RVTVBTX0RJUkVDVE9SWSIpCiAg
ICAgICAgIGVycm9ycyA9IFtdCiAgICAgICAgIGNyYXNoX2xvZyA9ICcnCi0gICAgICAgIGV4cGVj
dGVkX2NyYXNoX2R1bXBfZmlsZW5hbWUgPSAiY29yZS1waWRfJXMtXy1wcm9jZXNzXyVzIiAlIChw
aWRfcmVwcmVzZW50YXRpb24sIHNlbGYubmFtZSkKKyAgICAgICAgZXhwZWN0ZWRfY3Jhc2hfZHVt
cF9maWxlbmFtZSA9ICJjb3JlLXBpZF8lcy5kdW1wIiAlIHBpZF9yZXByZXNlbnRhdGlvbgogICAg
ICAgICBwcm9jX25hbWUgPSAiJXMiICUgKHNlbGYubmFtZSkKIAogICAgICAgICBkZWYgbWF0Y2hf
ZmlsZW5hbWUoZmlsZXN5c3RlbSwgZGlyZWN0b3J5LCBmaWxlbmFtZSk6CkBAIC03NiwxMSArNzYs
MTEgQEAgY2xhc3MgR0RCQ3Jhc2hMb2dHZW5lcmF0b3Iob2JqZWN0KToKICAgICAgICAgaWYgbm90
IGNyYXNoX2xvZzoKICAgICAgICAgICAgIGlmIG5vdCBsb2dfZGlyZWN0b3J5OgogICAgICAgICAg
ICAgICAgIGxvZ19kaXJlY3RvcnkgPSAiL3BhdGgvdG8vY29yZWR1bXBzIgotICAgICAgICAgICAg
Y29yZV9wYXR0ZXJuID0gb3MucGF0aC5qb2luKGxvZ19kaXJlY3RvcnksICJjb3JlLXBpZF8lcC1f
LXByb2Nlc3NfJUUiKQorICAgICAgICAgICAgcHJvY2Vzc19jb3JlZHVtcF9zY3JpcHRfcGF0aCA9
IHNlbGYuX3Byb2Nlc3NfY29yZWR1bXBfc2NyaXB0X3BhdGgKICAgICAgICAgICAgIGNyYXNoX2xv
ZyA9ICIiIlwKIENvcmVkdW1wICUoZXhwZWN0ZWRfY3Jhc2hfZHVtcF9maWxlbmFtZSlzIG5vdCBm
b3VuZC4gVG8gZW5hYmxlIGNyYXNoIGxvZ3M6CiAKLS0gcnVuIHRoaXMgY29tbWFuZCBhcyBzdXBl
ci11c2VyOiBlY2hvICIlKGNvcmVfcGF0dGVybilzIiA+IC9wcm9jL3N5cy9rZXJuZWwvY29yZV9w
YXR0ZXJuCistIHJ1biB0aGlzIGNvbW1hbmQgYXMgc3VwZXItdXNlcjogZWNobyAifCUocHJvY2Vz
c19jb3JlZHVtcF9zY3JpcHRfcGF0aClzICUlcCAlKGxvZ19kaXJlY3RvcnkpcyIgPiAvcHJvYy9z
eXMva2VybmVsL2NvcmVfcGF0dGVybgogLSBlbmFibGUgY29yZSBkdW1wczogdWxpbWl0IC1jIHVu
bGltaXRlZAogLSBzZXQgdGhlIFdFQktJVF9DT1JFX0RVTVBTX0RJUkVDVE9SWSBlbnZpcm9ubWVu
dCB2YXJpYWJsZTogZXhwb3J0IFdFQktJVF9DT1JFX0RVTVBTX0RJUkVDVE9SWT0lKGxvZ19kaXJl
Y3RvcnkpcwogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvbGludXhf
Z2V0X2NyYXNoX2xvZ191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9s
aW51eF9nZXRfY3Jhc2hfbG9nX3VuaXR0ZXN0LnB5CmluZGV4IGNkZjkxNWYuLmZjM2YzYmQgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9saW51eF9nZXRfY3Jhc2hfbG9n
X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9saW51eF9nZXRf
Y3Jhc2hfbG9nX3VuaXR0ZXN0LnB5CkBAIC00MSwxNCArNDEsMTYgQEAgY2xhc3MgR0RCQ3Jhc2hM
b2dHZW5lcmF0b3JUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgaWYgc3lzLnBsYXRm
b3JtLnN0YXJ0c3dpdGgoJ3dpbicpOgogICAgICAgICAgICAgcmV0dXJuCiAKLSAgICAgICAgZ2Vu
ZXJhdG9yID0gR0RCQ3Jhc2hMb2dHZW5lcmF0b3IoJ0R1bXBSZW5kZXJUcmVlJywgMjg1MjksIG5l
d2VyX3RoYW49Tm9uZSwgZmlsZXN5c3RlbT1Nb2NrRmlsZVN5c3RlbSh7Jy9wYXRoL3RvL2NvcmVk
dW1wcyc6ICcnfSksIHBhdGhfdG9fZHJpdmVyPU5vbmUpCisgICAgICAgIHByb2Nlc3NfY29yZWR1
bXBfc2NyaXB0X3BhdGggPSAiL3BhdGgvdG8vY29yZWR1bXAtcHJvY2Vzc29yIgorICAgICAgICBn
ZW5lcmF0b3IgPSBHREJDcmFzaExvZ0dlbmVyYXRvcignRHVtcFJlbmRlclRyZWUnLCAyODUyOSwg
bmV3ZXJfdGhhbj1Ob25lLCBmaWxlc3lzdGVtPU1vY2tGaWxlU3lzdGVtKHsnL3BhdGgvdG8vY29y
ZWR1bXBzJzogJyd9KSwgcHJvY2Vzc19jb3JlZHVtcF9zY3JpcHRfcGF0aD1wcm9jZXNzX2NvcmVk
dW1wX3NjcmlwdF9wYXRoLCBwYXRoX3RvX2RyaXZlcj1Ob25lKQogCiAgICAgICAgIGNvcmVfZGly
ZWN0b3J5ID0gb3MuZW52aXJvbi5nZXQoJ1dFQktJVF9DT1JFX0RVTVBTX0RJUkVDVE9SWScsICcv
cGF0aC90by9jb3JlZHVtcHMnKQogICAgICAgICBjb3JlX3BhdHRlcm4gPSBvcy5wYXRoLmpvaW4o
Y29yZV9kaXJlY3RvcnksICJjb3JlLXBpZF8lcC1fLXByb2Nlc3NfJUUiKQorICAgICAgICBjb3Jl
X3BhdHRlcm4gPSAifCVzICUlcCAvcGF0aC90by9jb3JlZHVtcHMiICUgcHJvY2Vzc19jb3JlZHVt
cF9zY3JpcHRfcGF0aAogICAgICAgICBtb2NrX2VtcHR5X2NyYXNoX2xvZyA9ICIiIlwKIGNyYXNo
IGxvZyBmb3IgRHVtcFJlbmRlclRyZWUgKHBpZCAyODUyOSk6CiAKLUNvcmVkdW1wIGNvcmUtcGlk
XzI4NTI5LV8tcHJvY2Vzc19EdW1wUmVuZGVyVHJlZSBub3QgZm91bmQuIFRvIGVuYWJsZSBjcmFz
aCBsb2dzOgorQ29yZWR1bXAgY29yZS1waWRfMjg1MjkuZHVtcCBub3QgZm91bmQuIFRvIGVuYWJs
ZSBjcmFzaCBsb2dzOgogCiAtIHJ1biB0aGlzIGNvbW1hbmQgYXMgc3VwZXItdXNlcjogZWNobyAi
JShjb3JlX3BhdHRlcm4pcyIgPiAvcHJvYy9zeXMva2VybmVsL2NvcmVfcGF0dGVybgogLSBlbmFi
bGUgY29yZSBkdW1wczogdWxpbWl0IC1jIHVubGltaXRlZApkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCA2M2FiNjQwLi5iZGIzMTAyIDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtNzksNiArNzksMTEgQEAKICNpbmNs
dWRlIDxXZWJLaXQvV0tQYWdlUHJpdmF0ZU1hYy5oPgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShH
VEspCisjaW5jbHVkZSA8V2ViS2l0L1dLQ29udGV4dFByaXZhdGVHdGsuaD4KKyNpbmNsdWRlIDxX
ZWJLaXQvV0tQYWdlUHJpdmF0ZUd0ay5oPgorI2VuZGlmCisKICNpZiAhUExBVEZPUk0oQ09DT0Ep
CiAjaW5jbHVkZSA8V2ViS2l0L1dLVGV4dENoZWNrZXIuaD4KICNlbmRpZgpAQCAtMTQ3OCw3ICsx
NDgzLDcgQEAgV0tSZXRhaW5QdHI8V0tUeXBlUmVmPiBUZXN0Q29udHJvbGxlcjo6Z2V0SW5qZWN0
ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhKCkKIAogdm9pZCBUZXN0Q29udHJvbGxlcjo6
bmV0d29ya1Byb2Nlc3NEaWRDcmFzaCgpCiB7Ci0jaWYgUExBVEZPUk0oQ09DT0EpCisjaWYgUExB
VEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykKICAgICBwaWRfdCBwaWQgPSBXS0NvbnRleHRH
ZXROZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIobV9jb250ZXh0LmdldCgpKTsKICAgICBmcHJpbnRm
KHN0ZGVyciwgIiNDUkFTSEVEIC0gJXMgKHBpZCAlbGQpXG4iLCBuZXR3b3JrUHJvY2Vzc05hbWUo
KSwgc3RhdGljX2Nhc3Q8bG9uZz4ocGlkKSk7CiAjZWxzZQpAQCAtMTQ4OSw3ICsxNDk0LDcgQEAg
dm9pZCBUZXN0Q29udHJvbGxlcjo6bmV0d29ya1Byb2Nlc3NEaWRDcmFzaCgpCiAKIHZvaWQgVGVz
dENvbnRyb2xsZXI6OmRhdGFiYXNlUHJvY2Vzc0RpZENyYXNoKCkKIHsKLSNpZiBQTEFURk9STShD
T0NPQSkKKyNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKQogICAgIHBpZF90IHBp
ZCA9IFdLQ29udGV4dEdldERhdGFiYXNlUHJvY2Vzc0lkZW50aWZpZXIobV9jb250ZXh0LmdldCgp
KTsKICAgICBmcHJpbnRmKHN0ZGVyciwgIiNDUkFTSEVEIC0gJXMgKHBpZCAlbGQpXG4iLCBkYXRh
YmFzZVByb2Nlc3NOYW1lKCksIHN0YXRpY19jYXN0PGxvbmc+KHBpZCkpOwogI2Vsc2UKQEAgLTE3
MjEsNyArMTcyNiw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnByb2Nlc3NEaWRDcmFzaCgpCiAg
ICAgLy8gVGhpcyBmdW5jdGlvbiBjYW4gYmUgY2FsbGVkIG11bHRpcGxlIHRpbWVzIHdoZW4gY3Jh
c2ggbG9ncyBhcmUgYmVpbmcgc2F2ZWQgb24gV2luZG93cywgc28KICAgICAvLyBlbnN1cmUgd2Ug
b25seSBwcmludCB0aGUgY3Jhc2hlZCBtZXNzYWdlIG9uY2UuCiAgICAgaWYgKCFtX2RpZFByaW50
V2ViUHJvY2Vzc0NyYXNoZWRNZXNzYWdlKSB7Ci0jaWYgUExBVEZPUk0oQ09DT0EpCisjaWYgUExB
VEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykKICAgICAgICAgcGlkX3QgcGlkID0gV0tQYWdl
R2V0UHJvY2Vzc0lkZW50aWZpZXIobV9tYWluV2ViVmlldy0+cGFnZSgpKTsKICAgICAgICAgZnBy
aW50ZihzdGRlcnIsICIjQ1JBU0hFRCAtICVzIChwaWQgJWxkKVxuIiwgd2ViUHJvY2Vzc05hbWUo
KSwgc3RhdGljX2Nhc3Q8bG9uZz4ocGlkKSk7CiAjZWxzZQotLSAKMi44LjE=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284313</attachid>
            <date>2016-07-22 00:36:06 -0700</date>
            <delta_ts>2016-07-22 00:50:27 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.patch</filename>
            <type>text/plain</type>
            <size>17910</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBiNTdlMDkwZTUwODUxZGMxOTRhODIyZWY4OWRhMTEyYWM0ODlmMTUxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBNb24sIDExIEp1bCAyMDE2IDE2OjMxOjQ4ICswMjAwClN1YmplY3Q6IFtQQVRDSF0g
cGF0Y2gKCi0tLQogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAyMiArKysrKysrKysrKysrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tDb250ZXh0LmNwcCAgICAgICB8IDEwICsrKysrKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaCAgfCAgMyArKwogU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZS5jcHAgICAgICAgICAgfCAgNSArKysKIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmggICAgIHwgIDIgKysKIC4uLi9VSVByb2Nlc3Mv
QVBJL0MvbWFjL1dLQ29udGV4dFByaXZhdGVNYWMuaCAgICAgIHwgIDMgLS0KIC4uLi9VSVByb2Nl
c3MvQVBJL0MvbWFjL1dLQ29udGV4dFByaXZhdGVNYWMubW0gICAgIHwgMTAgLS0tLS0tCiAuLi4v
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLUGFnZVByaXZhdGVNYWMuaCB8ICAxIC0KIC4u
Li9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLUGFnZVByaXZhdGVNYWMubW0gICAgICAgIHwgIDUgLS0t
CiBUb29scy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDMw
ICsrKysrKysrKysrKysrKysrKwogVG9vbHMvU2NyaXB0cy9wcm9jZXNzLWxpbnV4LWNvcmVkdW1w
ICAgICAgICAgICAgICAgfCAzNyArKysrKysrKysrKysrKysrKysrKysrCiBUb29scy9TY3JpcHRz
L3dlYmtpdHB5L3BvcnQvZWZsLnB5ICAgICAgICAgICAgICAgICB8ICAyICstCiBUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L3BvcnQvZ3RrLnB5ICAgICAgICAgICAgICAgICB8ICAyICstCiBUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L3BvcnQvbGludXhfZ2V0X2NyYXNoX2xvZy5weSB8IDEwICsrKy0tLQog
Li4uL3dlYmtpdHB5L3BvcnQvbGludXhfZ2V0X2NyYXNoX2xvZ191bml0dGVzdC5weSAgfCAgNyAr
Ky0tCiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCAgICAgICAgICB8
IDEyIC0tLS0tLS0KIDE2IGZpbGVzIGNoYW5nZWQsIDEyMCBpbnNlcnRpb25zKCspLCA0MSBkZWxl
dGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDc1NSBUb29scy9TY3JpcHRzL3Byb2Nlc3MtbGludXgt
Y29yZWR1bXAKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggM2VjZmE5MC4uMGFhNTY4NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI1IEBACisyMDE2LTA3LTIyICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdh
bGlhLmNvbT4KKworICAgICAgICBJbXByb3ZlIEdEQiBiYWNrdHJhY2UgZ2VuZXJhdGlvbiBmb3Ig
R1RLL0VGTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTI4OTI4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
TW92ZSB0aGUgV2ViLCBEYXRhYmFzZSBhbmQgTmV0d29yayBQcm9jZXNzSWRlbnRpZmllciBmdW5j
dGlvbnMgdG8KKyAgICAgICAgdGhlIGNyb3NzLXBsYXRmb3JtIFdLQ29udGV4dCBhbmQgV0tQYWdl
IGltcGxlbWVudGF0aW9ucy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQu
Y3BwOgorICAgICAgICAoV0tDb250ZXh0R2V0TmV0d29ya1Byb2Nlc3NJZGVudGlmaWVyKToKKyAg
ICAgICAgKFdLQ29udGV4dEdldERhdGFiYXNlUHJvY2Vzc0lkZW50aWZpZXIpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VHZXRQcm9jZXNzSWRlbnRpZmllcik6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0MvbWFjL1dLQ29udGV4dFByaXZhdGVNYWMuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0MvbWFjL1dLQ29udGV4dFByaXZhdGVNYWMubW06CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9DL21hYy9XS1BhZ2VQcml2YXRlTWFjLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9DL21hYy9XS1BhZ2VQcml2YXRlTWFjLm1tOgorCiAyMDE2LTA3LTIxICBNeWxlcyBDLiBNYXhm
aWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHN1cHBvcnQgZm9y
IGRlcHJlY2F0ZWQgU1BJIGlubGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0
cmlidXRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250
ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCmlu
ZGV4IDVjZjBiY2EuLjAzMTM0MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS0NvbnRleHQuY3BwCkBAIC01NzIsMyArNTcyLDEzIEBAIHZvaWQgV0tDb250ZXh0U2V0Rm9u
dFdoaXRlbGlzdChXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tBcnJheVJlZiBhcnJheVJlZikK
IHsKICAgICB0b0ltcGwoY29udGV4dFJlZiktPnNldEZvbnRXaGl0ZWxpc3QodG9JbXBsKGFycmF5
UmVmKSk7CiB9CisKK3BpZF90IFdLQ29udGV4dEdldE5ldHdvcmtQcm9jZXNzSWRlbnRpZmllcihX
S0NvbnRleHRSZWYgY29udGV4dFJlZikKK3sKKyAgICByZXR1cm4gdG9JbXBsKGNvbnRleHRSZWYp
LT5uZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIoKTsKK30KKworcGlkX3QgV0tDb250ZXh0R2V0RGF0
YWJhc2VQcm9jZXNzSWRlbnRpZmllcihXS0NvbnRleHRSZWYgY29udGV4dFJlZikKK3sKKyAgICBy
ZXR1cm4gdG9JbXBsKGNvbnRleHRSZWYpLT5kYXRhYmFzZVByb2Nlc3NJZGVudGlmaWVyKCk7Cit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0UHJp
dmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUu
aAppbmRleCBlOGM5MDUxLi42NzQyZmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tDb250ZXh0UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmgKQEAgLTk0LDYgKzk0LDkgQEAgV0tfRVhQT1JU
IHZvaWQgV0tDb250ZXh0U2V0TWVtb3J5Q2FjaGVEaXNhYmxlZChXS0NvbnRleHRSZWYsIGJvb2wg
ZGlzYWJsZWQpOwogCiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRTZXRGb250V2hpdGVsaXN0KFdL
Q29udGV4dFJlZiwgV0tBcnJheVJlZik7CiAKK1dLX0VYUE9SVCBwaWRfdCBXS0NvbnRleHRHZXRO
ZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOworV0tfRVhQT1JU
IHBpZF90IFdLQ29udGV4dEdldERhdGFiYXNlUHJvY2Vzc0lkZW50aWZpZXIoV0tDb250ZXh0UmVm
IGNvbnRleHQpOworCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCAzMWVjZDZkLi5mMzliOGQ3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtMjc1Miw2ICsyNzUy
LDExIEBAIHZvaWQgV0tQYWdlU2V0SWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1pdHMoV0tQYWdlUmVm
IHBhZ2UsIGJvb2wgaWdub3Jlc1ZpZXdwb3J0U2NhCiAjZW5kaWYKIH0KIAorcGlkX3QgV0tQYWdl
R2V0UHJvY2Vzc0lkZW50aWZpZXIoV0tQYWdlUmVmIHBhZ2UpCit7CisgICAgcmV0dXJuIHRvSW1w
bChwYWdlKS0+cHJvY2Vzc0lkZW50aWZpZXIoKTsKK30KKwogI2lmIEVOQUJMRShORVRTQ0FQRV9Q
TFVHSU5fQVBJKQogCiAvLyAtLSBERVBSRUNBVEVEIC0tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUuaAppbmRleCAxYTgzOGNhLi40OTQwZTk5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmgKQEAgLTE0
OSw2ICsxNDksOCBAQCBXS19FWFBPUlQgdm9pZCBXS1BhZ2VSZXN0b3JlRnJvbVNlc3Npb25TdGF0
ZVdpdGhvdXROYXZpZ2F0aW9uKFdLUGFnZVJlZiBwYWdlLCBXSwogCiBXS19FWFBPUlQgdm9pZCBX
S1BhZ2VTZXRJZ25vcmVzVmlld3BvcnRTY2FsZUxpbWl0cyhXS1BhZ2VSZWYgcGFnZSwgYm9vbCBp
Z25vcmVzVmlld3BvcnRTY2FsZUxpbWl0cyk7CiAKK1dLX0VYUE9SVCBwaWRfdCBXS1BhZ2VHZXRQ
cm9jZXNzSWRlbnRpZmllcihXS1BhZ2VSZWYgcGFnZSk7CisKICNpZmRlZiBfX2NwbHVzcGx1cwog
fQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvbWFj
L1dLQ29udGV4dFByaXZhdGVNYWMuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9t
YWMvV0tDb250ZXh0UHJpdmF0ZU1hYy5oCmluZGV4IDE2MTFkOTMuLmY1ZGRlZGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9tYWMvV0tDb250ZXh0UHJpdmF0ZU1h
Yy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9tYWMvV0tDb250ZXh0UHJp
dmF0ZU1hYy5oCkBAIC03Nyw5ICs3Nyw2IEBAIFdLX0VYUE9SVCBXS1N0cmluZ1JlZiBXS1BsdWdJ
bkluZm9Jc1NhbmRib3hlZEtleSgpOwogV0tfRVhQT1JUIGJvb2wgV0tDb250ZXh0U2hvdWxkQmxv
Y2tXZWJHTCgpOwogV0tfRVhQT1JUIGJvb2wgV0tDb250ZXh0U2hvdWxkU3VnZ2VzdEJsb2NrV2Vi
R0woKTsKIAotV0tfRVhQT1JUIHBpZF90IFdLQ29udGV4dEdldE5ldHdvcmtQcm9jZXNzSWRlbnRp
ZmllcihXS0NvbnRleHRSZWYgY29udGV4dCk7Ci1XS19FWFBPUlQgcGlkX3QgV0tDb250ZXh0R2V0
RGF0YWJhc2VQcm9jZXNzSWRlbnRpZmllcihXS0NvbnRleHRSZWYgY29udGV4dCk7Ci0KICNpZmRl
ZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvbWFjL1dLQ29udGV4dFByaXZhdGVNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvbWFjL1dLQ29udGV4dFByaXZhdGVNYWMubW0KaW5kZXggYTU4OTEwNC4u
YjI1ODYzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL21hYy9X
S0NvbnRleHRQcml2YXRlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9tYWMvV0tDb250ZXh0UHJpdmF0ZU1hYy5tbQpAQCAtMTYzLDEzICsxNjMsMyBAQCBib29sIFdL
Q29udGV4dFNob3VsZFN1Z2dlc3RCbG9ja1dlYkdMKCkKIHsKICAgICByZXR1cm4gV0tTaG91bGRT
dWdnZXN0QmxvY2tpbmdXZWJHTCgpOwogfQotCi1waWRfdCBXS0NvbnRleHRHZXROZXR3b3JrUHJv
Y2Vzc0lkZW50aWZpZXIoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYpCi17Ci0gICAgcmV0dXJuIHRv
SW1wbChjb250ZXh0UmVmKS0+bmV0d29ya1Byb2Nlc3NJZGVudGlmaWVyKCk7Ci19Ci0KLXBpZF90
IFdLQ29udGV4dEdldERhdGFiYXNlUHJvY2Vzc0lkZW50aWZpZXIoV0tDb250ZXh0UmVmIGNvbnRl
eHRSZWYpCi17Ci0gICAgcmV0dXJuIHRvSW1wbChjb250ZXh0UmVmKS0+ZGF0YWJhc2VQcm9jZXNz
SWRlbnRpZmllcigpOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL21hYy9XS1BhZ2VQcml2YXRlTWFjLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvbWFjL1dLUGFnZVByaXZhdGVNYWMuaAppbmRleCBhNmE1NjY3Li41MWY0NDA1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLUGFnZVByaXZhdGVNYWMu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLUGFnZVByaXZhdGVN
YWMuaApAQCAtNTYsNyArNTYsNiBAQCBXS19FWFBPUlQgX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkg
KldLUGFnZUdldE9iamVjdFJlZ2lzdHJ5KFdLUGFnZVJlZiBwYWdlKTsKIAogI2VuZGlmCiAKLVdL
X0VYUE9SVCBwaWRfdCBXS1BhZ2VHZXRQcm9jZXNzSWRlbnRpZmllcihXS1BhZ2VSZWYgcGFnZSk7
CiBXS19FWFBPUlQgYm9vbCBXS1BhZ2VJc1VSTEtub3duSFNUU0hvc3QoV0tQYWdlUmVmIHBhZ2Us
IFdLVVJMUmVmIHVybCk7CiAKICNpZiBUQVJHRVRfT1NfTUFDCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLUGFnZVByaXZhdGVNYWMubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLUGFnZVByaXZhdGVNYWMubW0KaW5kZXggNGY5
ZDJlOS4uMjdiMTY2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L21hYy9XS1BhZ2VQcml2YXRlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9tYWMvV0tQYWdlUHJpdmF0ZU1hYy5tbQpAQCAtMTE2LDExICsxMTYsNiBAQCBfV0tSZW1v
dGVPYmplY3RSZWdpc3RyeSAqV0tQYWdlR2V0T2JqZWN0UmVnaXN0cnkoV0tQYWdlUmVmIHBhZ2VS
ZWYpCiAjZW5kaWYKIH0KIAotcGlkX3QgV0tQYWdlR2V0UHJvY2Vzc0lkZW50aWZpZXIoV0tQYWdl
UmVmIHBhZ2VSZWYpCi17Ci0gICAgcmV0dXJuIHRvSW1wbChwYWdlUmVmKS0+cHJvY2Vzc0lkZW50
aWZpZXIoKTsKLX0KLQogYm9vbCBXS1BhZ2VJc1VSTEtub3duSFNUU0hvc3QoV0tQYWdlUmVmIHBh
Z2UsIFdLVVJMUmVmIHVybCkKIHsKICAgICBXZWJQYWdlUHJveHkqIHdlYlBhZ2VQcm94eSA9IHRv
SW1wbChwYWdlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCBjN2YxYzkzLi45NDQ3MzdkIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTYtMDctMjIgIFBoaWxpcHBl
IE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIEltcHJvdmUgR0RCIGJh
Y2t0cmFjZSBnZW5lcmF0aW9uIGZvciBHVEsvRUZMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjg5MjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgUElEIG9mIHRoZSBjcmFzaGVkIHByb2Nlc3MgaXMg
bm93IGNvcnJlY3RseSBzdXBwbGllZCB0byB0aGUKKyAgICAgICAgY3Jhc2ggbG9nIHJlcG9ydGVy
LiBUaGUga2VybmVsIGNvcmVfcGF0dGVybiBuZWVkcyB0byBiZSB1cGRhdGVkCisgICAgICAgIGFm
dGVyIHRoaXMgY2hhbmdlIHRvIHNvbWV0aGluZyBsaWtlOgorCisgICAgICAgIGVjaG8gInwvaG9t
ZS9waGlsL1dlYktpdC9Ub29scy9TY3JpcHRzL3Byb2Nlc3MtbGludXgtY29yZWR1bXAgJXAgL3Rt
cC8iID4gL3Byb2Mvc3lzL2tlcm5lbC9jb3JlX3BhdHRlcm4KKworICAgICAgICAqIFNjcmlwdHMv
cHJvY2Vzcy1saW51eC1jb3JlZHVtcDogQWRkZWQuCisgICAgICAgIChtYWluKTogTWluaW1hbCBw
eXRob24gc2NyaXB0IHJlYWRpbmcgY29yZWR1bXAgZGF0YSBvbiBzdGRpbiBhbmQgd3JpdGluZyBp
dCB0byBhIGZpbGUgaW4gL3RtcC8uCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L2Vm
bC5weToKKyAgICAgICAgKEVmbFBvcnQuX2dldF9jcmFzaF9sb2cpOiBTdXBwbHkgcGF0aCBvZiB0
aGUgcHJvY2Vzcy1saW51eC1jb3JlZHVtcCBzY3JpcHQuCisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9wb3J0L2d0ay5weToKKyAgICAgICAgKEd0a1BvcnQuX2dldF9jcmFzaF9sb2cpOiBEaXR0
by4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvbGludXhfZ2V0X2NyYXNoX2xvZy5w
eToKKyAgICAgICAgKEdEQkNyYXNoTG9nR2VuZXJhdG9yLl9faW5pdF9fKTogTmV3IGFyZ3VtZW50
IGZvciBzdXBwbHlpbmcgdGhlIHBhdGggb2YgYSBjb3JlZHVtcCBwcm9jZXNzb3Igc2NyaXB0Lgor
ICAgICAgICAoR0RCQ3Jhc2hMb2dHZW5lcmF0b3IuZ2VuZXJhdGVfY3Jhc2hfbG9nKTogVXBkYXRl
IGVycm9yIG1lc3NhZ2UsIHRoZSBjb3JlX3BhdHRlcm4gc2hvdWxkIG5vdyBiZSBzZXQgdG8gcGlw
ZSBjb3JlZHVtcHMgdG8gYSBzY3JpcHQuCisgICAgICAgIChHREJDcmFzaExvZ0dlbmVyYXRvcik6
IERlbGV0ZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L2xpbnV4X2dldF9jcmFz
aF9sb2dfdW5pdHRlc3QucHk6CisgICAgICAgIChHREJDcmFzaExvZ0dlbmVyYXRvclRlc3QudGVz
dF9nZW5lcmF0ZV9jcmFzaF9sb2cpOiBVcGRhdGUgdGVzdCBleHBlY3RhdGlvbnMuCisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRl
c3RDb250cm9sbGVyOjpuZXR3b3JrUHJvY2Vzc0RpZENyYXNoKTogU3VwcGx5IFBJRCBvZiBjcmFz
aCBwcm9jZXNzLgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6ZGF0YWJhc2VQcm9jZXNz
RGlkQ3Jhc2gpOiBEaXR0by4KKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnByb2Nlc3NE
aWRDcmFzaCk6IERpdHRvLgorCiAyMDE2LTA3LTIxICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBs
ZS5jb20+CiAKICAgICAgICAgW01hY10gd2Via2l0ZGlycy5wbSBjb250YWlucyB1bnVzZWQgY29k
ZSB0byBzdXBwb3J0IG91dGRhdGVkIE9TIFggYW5kIFhjb2RlIHZlcnNpb25zCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3Byb2Nlc3MtbGludXgtY29yZWR1bXAgYi9Ub29scy9TY3JpcHRzL3By
b2Nlc3MtbGludXgtY29yZWR1bXAKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4u
ZTljMTViZAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvcHJvY2Vzcy1saW51eC1j
b3JlZHVtcApAQCAtMCwwICsxLDM3IEBACisjIS91c3IvYmluL2VudiBweXRob24KKyMgQ29weXJp
Z2h0IChDKSAyMDE2IElnYWxpYSBTLkwuCisjCisjIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyMgbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworIyBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyMgdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorIworIyBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyMgTGVzc2VyIEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworIyBMaWNlbnNlIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJl
CisjIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJv
c3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorCitpbXBvcnQgb3MKK2ltcG9ydCBzeXMKKworIyBU
aGlzIHNjcmlwdCBpcyBtZWFudCB0byBiZSBpbnZva2VkIGJ5IHRoZSBrZXJuZWwncyBjb3JlX3Bh
dHRlcm4gaG9vay4gSXQKKyMgdGFrZXMgMiBhcmd1bWVudHMgb24gY29tbWFuZC1saW5lOiB0aGUg
cGlkIG9mIHRoZSBwcm9jZXNzIHdoaWNoIGNyYXNoZWQgYW5kIGEKKyMgZGVzdGluYXRpb24gZGly
ZWN0b3J5IHBhdGggdG8gd2hpY2ggdGhlIGNvcmVkdW1wIGRhdGEgc2hvdWxkIGJlIHNhdmVkLgor
CitkZWYgbWFpbihwaWQsIGRlc3RpbmF0aW9uX2RpcmVjdG9yeSk6CisgICAgZnVsbF9wYXRoID0g
b3MucGF0aC5qb2luKGRlc3RpbmF0aW9uX2RpcmVjdG9yeSwgJ2NvcmUtcGlkXyVkLmR1bXAnICAl
IGludChwaWQpKQorICAgIGNvcmVkdW1wID0gb3BlbihmdWxsX3BhdGgsICd3YicpCisgICAgd2hp
bGUgVHJ1ZToKKyAgICAgICAgZGF0YSA9IHN5cy5zdGRpbi5yZWFkKCkKKyAgICAgICAgaWYgbm90
IGRhdGE6CisgICAgICAgICAgICBicmVhaworICAgICAgICBjb3JlZHVtcC53cml0ZShkYXRhKQor
ICAgIGNvcmVkdW1wLmNsb3NlKCkKKyAgICByZXR1cm4gMAorCitpZiBfX25hbWVfXyA9PSAnX19t
YWluX18nOgorICAgIHN5cy5leGl0KG1haW4oKnN5cy5hcmd2WzE6XSkpCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZWZsLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9wb3J0L2VmbC5weQppbmRleCA0MTYxYWU4Li5hOTAwYjNjIDEwMDY0NAotLS0gYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3BvcnQvZWZsLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
cG9ydC9lZmwucHkKQEAgLTE0Miw3ICsxNDIsNyBAQCBjbGFzcyBFZmxQb3J0KFBvcnQpOgogICAg
ICAgICByZXR1cm4gY29tbWFuZAogCiAgICAgZGVmIF9nZXRfY3Jhc2hfbG9nKHNlbGYsIG5hbWUs
IHBpZCwgc3Rkb3V0LCBzdGRlcnIsIG5ld2VyX3RoYW4pOgotICAgICAgICByZXR1cm4gR0RCQ3Jh
c2hMb2dHZW5lcmF0b3IobmFtZSwgcGlkLCBuZXdlcl90aGFuLCBzZWxmLl9maWxlc3lzdGVtLCBz
ZWxmLl9wYXRoX3RvX2RyaXZlcikuZ2VuZXJhdGVfY3Jhc2hfbG9nKHN0ZG91dCwgc3RkZXJyKQor
ICAgICAgICByZXR1cm4gR0RCQ3Jhc2hMb2dHZW5lcmF0b3IobmFtZSwgcGlkLCBuZXdlcl90aGFu
LCBzZWxmLl9maWxlc3lzdGVtLCBzZWxmLnBhdGhfdG9fc2NyaXB0KCJwcm9jZXNzLWxpbnV4LWNv
cmVkdW1wIiksIHNlbGYuX3BhdGhfdG9fZHJpdmVyKS5nZW5lcmF0ZV9jcmFzaF9sb2coc3Rkb3V0
LCBzdGRlcnIpCiAKICAgICBkZWYgdGVzdF9leHBlY3RhdGlvbnNfZmlsZV9wb3NpdGlvbihzZWxm
KToKICAgICAgICAgIyBFRkwgcG9ydCBiYXNlbGluZSBzZWFyY2ggcGF0aCBpcyBlZmwgLT4gd2sy
IC0+IGdlbmVyaWMgKGFzIGVmbC13azIgYW5kIGVmbCBiYXNlbGluZXMgYXJlIG1lcmdlZCksIHNv
IHBvcnQgdGVzdCBleHBlY3RhdGlvbnMgZmlsZSBpcyBhdCB0aGlyZCB0byBsYXN0IHBvc2l0aW9u
LgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2d0ay5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvcG9ydC9ndGsucHkKaW5kZXggMjhiNzlkZC4uYzYzMDJmMSAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2d0ay5weQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3BvcnQvZ3RrLnB5CkBAIC0yMTYsNyArMjE2LDcgQEAgY2xhc3MgR3Rr
UG9ydChQb3J0KToKIAogICAgIGRlZiBfZ2V0X2NyYXNoX2xvZyhzZWxmLCBuYW1lLCBwaWQsIHN0
ZG91dCwgc3RkZXJyLCBuZXdlcl90aGFuKToKICAgICAgICAgbmFtZSA9ICJXZWJLaXRXZWJQcm9j
ZXNzIiBpZiBuYW1lID09ICJXZWJQcm9jZXNzIiBlbHNlIG5hbWUKLSAgICAgICAgcmV0dXJuIEdE
QkNyYXNoTG9nR2VuZXJhdG9yKG5hbWUsIHBpZCwgbmV3ZXJfdGhhbiwgc2VsZi5fZmlsZXN5c3Rl
bSwgc2VsZi5fcGF0aF90b19kcml2ZXIpLmdlbmVyYXRlX2NyYXNoX2xvZyhzdGRvdXQsIHN0ZGVy
cikKKyAgICAgICAgcmV0dXJuIEdEQkNyYXNoTG9nR2VuZXJhdG9yKG5hbWUsIHBpZCwgbmV3ZXJf
dGhhbiwgc2VsZi5fZmlsZXN5c3RlbSwgc2VsZi5wYXRoX3RvX3NjcmlwdCgicHJvY2Vzcy1saW51
eC1jb3JlZHVtcCIpLCBzZWxmLl9wYXRoX3RvX2RyaXZlcikuZ2VuZXJhdGVfY3Jhc2hfbG9nKHN0
ZG91dCwgc3RkZXJyKQogCiAgICAgZGVmIHRlc3RfZXhwZWN0YXRpb25zX2ZpbGVfcG9zaXRpb24o
c2VsZik6CiAgICAgICAgICMgR1RLIHBvcnQgYmFzZWxpbmUgc2VhcmNoIHBhdGggaXMgZ3RrIC0+
IHdrMiAtPiBnZW5lcmljIChhcyBndGstd2syIGFuZCBndGsgYmFzZWxpbmVzIGFyZSBtZXJnZWQp
LCBzbyBwb3J0IHRlc3QgZXhwZWN0YXRpb25zIGZpbGUgaXMgYXQgdGhpcmQgdG8gbGFzdCBwb3Np
dGlvbi4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9saW51eF9nZXRf
Y3Jhc2hfbG9nLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2xpbnV4X2dldF9jcmFz
aF9sb2cucHkKaW5kZXggMDM3NmY3Yy4uYjkyZmNkZCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9wb3J0L2xpbnV4X2dldF9jcmFzaF9sb2cucHkKKysrIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9wb3J0L2xpbnV4X2dldF9jcmFzaF9sb2cucHkKQEAgLTMwLDEzICszMCwxMyBA
QAogaW1wb3J0IHN1YnByb2Nlc3MKIGltcG9ydCBvcwogCi0KIGNsYXNzIEdEQkNyYXNoTG9nR2Vu
ZXJhdG9yKG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUsIHBpZCwgbmV3ZXJf
dGhhbiwgZmlsZXN5c3RlbSwgcGF0aF90b19kcml2ZXIpOgorICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBuYW1lLCBwaWQsIG5ld2VyX3RoYW4sIGZpbGVzeXN0ZW0sIHByb2Nlc3NfY29yZWR1bXBfc2Ny
aXB0X3BhdGgsIHBhdGhfdG9fZHJpdmVyKToKICAgICAgICAgc2VsZi5uYW1lID0gbmFtZQogICAg
ICAgICBzZWxmLnBpZCA9IHBpZAogICAgICAgICBzZWxmLm5ld2VyX3RoYW4gPSBuZXdlcl90aGFu
CiAgICAgICAgIHNlbGYuX2ZpbGVzeXN0ZW0gPSBmaWxlc3lzdGVtCisgICAgICAgIHNlbGYuX3By
b2Nlc3NfY29yZWR1bXBfc2NyaXB0X3BhdGggPSBwcm9jZXNzX2NvcmVkdW1wX3NjcmlwdF9wYXRo
CiAgICAgICAgIHNlbGYuX3BhdGhfdG9fZHJpdmVyID0gcGF0aF90b19kcml2ZXIKIAogICAgIGRl
ZiBfZ2V0X2dkYl9vdXRwdXQoc2VsZiwgY29yZWR1bXBfcGF0aCk6CkBAIC01Miw3ICs1Miw3IEBA
IGNsYXNzIEdEQkNyYXNoTG9nR2VuZXJhdG9yKG9iamVjdCk6CiAgICAgICAgIGxvZ19kaXJlY3Rv
cnkgPSBvcy5lbnZpcm9uLmdldCgiV0VCS0lUX0NPUkVfRFVNUFNfRElSRUNUT1JZIikKICAgICAg
ICAgZXJyb3JzID0gW10KICAgICAgICAgY3Jhc2hfbG9nID0gJycKLSAgICAgICAgZXhwZWN0ZWRf
Y3Jhc2hfZHVtcF9maWxlbmFtZSA9ICJjb3JlLXBpZF8lcy1fLXByb2Nlc3NfJXMiICUgKHBpZF9y
ZXByZXNlbnRhdGlvbiwgc2VsZi5uYW1lKQorICAgICAgICBleHBlY3RlZF9jcmFzaF9kdW1wX2Zp
bGVuYW1lID0gImNvcmUtcGlkXyVzLmR1bXAiICUgcGlkX3JlcHJlc2VudGF0aW9uCiAgICAgICAg
IHByb2NfbmFtZSA9ICIlcyIgJSAoc2VsZi5uYW1lKQogCiAgICAgICAgIGRlZiBtYXRjaF9maWxl
bmFtZShmaWxlc3lzdGVtLCBkaXJlY3RvcnksIGZpbGVuYW1lKToKQEAgLTc2LDExICs3NiwxMSBA
QCBjbGFzcyBHREJDcmFzaExvZ0dlbmVyYXRvcihvYmplY3QpOgogICAgICAgICBpZiBub3QgY3Jh
c2hfbG9nOgogICAgICAgICAgICAgaWYgbm90IGxvZ19kaXJlY3Rvcnk6CiAgICAgICAgICAgICAg
ICAgbG9nX2RpcmVjdG9yeSA9ICIvcGF0aC90by9jb3JlZHVtcHMiCi0gICAgICAgICAgICBjb3Jl
X3BhdHRlcm4gPSBvcy5wYXRoLmpvaW4obG9nX2RpcmVjdG9yeSwgImNvcmUtcGlkXyVwLV8tcHJv
Y2Vzc18lRSIpCisgICAgICAgICAgICBwcm9jZXNzX2NvcmVkdW1wX3NjcmlwdF9wYXRoID0gc2Vs
Zi5fcHJvY2Vzc19jb3JlZHVtcF9zY3JpcHRfcGF0aAogICAgICAgICAgICAgY3Jhc2hfbG9nID0g
IiIiXAogQ29yZWR1bXAgJShleHBlY3RlZF9jcmFzaF9kdW1wX2ZpbGVuYW1lKXMgbm90IGZvdW5k
LiBUbyBlbmFibGUgY3Jhc2ggbG9nczoKIAotLSBydW4gdGhpcyBjb21tYW5kIGFzIHN1cGVyLXVz
ZXI6IGVjaG8gIiUoY29yZV9wYXR0ZXJuKXMiID4gL3Byb2Mvc3lzL2tlcm5lbC9jb3JlX3BhdHRl
cm4KKy0gcnVuIHRoaXMgY29tbWFuZCBhcyBzdXBlci11c2VyOiBlY2hvICJ8JShwcm9jZXNzX2Nv
cmVkdW1wX3NjcmlwdF9wYXRoKXMgJSVwICUobG9nX2RpcmVjdG9yeSlzIiA+IC9wcm9jL3N5cy9r
ZXJuZWwvY29yZV9wYXR0ZXJuCiAtIGVuYWJsZSBjb3JlIGR1bXBzOiB1bGltaXQgLWMgdW5saW1p
dGVkCiAtIHNldCB0aGUgV0VCS0lUX0NPUkVfRFVNUFNfRElSRUNUT1JZIGVudmlyb25tZW50IHZh
cmlhYmxlOiBleHBvcnQgV0VCS0lUX0NPUkVfRFVNUFNfRElSRUNUT1JZPSUobG9nX2RpcmVjdG9y
eSlzCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9saW51eF9nZXRf
Y3Jhc2hfbG9nX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2xpbnV4
X2dldF9jcmFzaF9sb2dfdW5pdHRlc3QucHkKaW5kZXggY2RmOTE1Zi4uNzAwMTI2NyAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2xpbnV4X2dldF9jcmFzaF9sb2dfdW5p
dHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2xpbnV4X2dldF9jcmFz
aF9sb2dfdW5pdHRlc3QucHkKQEAgLTQxLDE0ICs0MSwxNSBAQCBjbGFzcyBHREJDcmFzaExvZ0dl
bmVyYXRvclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBpZiBzeXMucGxhdGZvcm0u
c3RhcnRzd2l0aCgnd2luJyk6CiAgICAgICAgICAgICByZXR1cm4KIAotICAgICAgICBnZW5lcmF0
b3IgPSBHREJDcmFzaExvZ0dlbmVyYXRvcignRHVtcFJlbmRlclRyZWUnLCAyODUyOSwgbmV3ZXJf
dGhhbj1Ob25lLCBmaWxlc3lzdGVtPU1vY2tGaWxlU3lzdGVtKHsnL3BhdGgvdG8vY29yZWR1bXBz
JzogJyd9KSwgcGF0aF90b19kcml2ZXI9Tm9uZSkKKyAgICAgICAgcHJvY2Vzc19jb3JlZHVtcF9z
Y3JpcHRfcGF0aCA9ICIvcGF0aC90by9jb3JlZHVtcC1wcm9jZXNzb3IiCisgICAgICAgIGdlbmVy
YXRvciA9IEdEQkNyYXNoTG9nR2VuZXJhdG9yKCdEdW1wUmVuZGVyVHJlZScsIDI4NTI5LCBuZXdl
cl90aGFuPU5vbmUsIGZpbGVzeXN0ZW09TW9ja0ZpbGVTeXN0ZW0oeycvcGF0aC90by9jb3JlZHVt
cHMnOiAnJ30pLCBwcm9jZXNzX2NvcmVkdW1wX3NjcmlwdF9wYXRoPXByb2Nlc3NfY29yZWR1bXBf
c2NyaXB0X3BhdGgsIHBhdGhfdG9fZHJpdmVyPU5vbmUpCiAKICAgICAgICAgY29yZV9kaXJlY3Rv
cnkgPSBvcy5lbnZpcm9uLmdldCgnV0VCS0lUX0NPUkVfRFVNUFNfRElSRUNUT1JZJywgJy9wYXRo
L3RvL2NvcmVkdW1wcycpCi0gICAgICAgIGNvcmVfcGF0dGVybiA9IG9zLnBhdGguam9pbihjb3Jl
X2RpcmVjdG9yeSwgImNvcmUtcGlkXyVwLV8tcHJvY2Vzc18lRSIpCisgICAgICAgIGNvcmVfcGF0
dGVybiA9ICJ8JXMgJSVwIC9wYXRoL3RvL2NvcmVkdW1wcyIgJSBwcm9jZXNzX2NvcmVkdW1wX3Nj
cmlwdF9wYXRoCiAgICAgICAgIG1vY2tfZW1wdHlfY3Jhc2hfbG9nID0gIiIiXAogY3Jhc2ggbG9n
IGZvciBEdW1wUmVuZGVyVHJlZSAocGlkIDI4NTI5KToKIAotQ29yZWR1bXAgY29yZS1waWRfMjg1
MjktXy1wcm9jZXNzX0R1bXBSZW5kZXJUcmVlIG5vdCBmb3VuZC4gVG8gZW5hYmxlIGNyYXNoIGxv
Z3M6CitDb3JlZHVtcCBjb3JlLXBpZF8yODUyOS5kdW1wIG5vdCBmb3VuZC4gVG8gZW5hYmxlIGNy
YXNoIGxvZ3M6CiAKIC0gcnVuIHRoaXMgY29tbWFuZCBhcyBzdXBlci11c2VyOiBlY2hvICIlKGNv
cmVfcGF0dGVybilzIiA+IC9wcm9jL3N5cy9rZXJuZWwvY29yZV9wYXR0ZXJuCiAtIGVuYWJsZSBj
b3JlIGR1bXBzOiB1bGltaXQgLWMgdW5saW1pdGVkCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dENvbnRyb2xsZXIuY3BwCmluZGV4IDI4NmM1MjkuLjVlNTBjNzUgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xNDc5LDIzICsxNDc5LDE1IEBAIFdLUmV0
YWluUHRyPFdLVHlwZVJlZj4gVGVzdENvbnRyb2xsZXI6OmdldEluamVjdGVkQnVuZGxlSW5pdGlh
bGl6YXRpb25Vc2VyRGF0YSgpCiAKIHZvaWQgVGVzdENvbnRyb2xsZXI6Om5ldHdvcmtQcm9jZXNz
RGlkQ3Jhc2goKQogewotI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHBpZF90IHBpZCA9IFdLQ29u
dGV4dEdldE5ldHdvcmtQcm9jZXNzSWRlbnRpZmllcihtX2NvbnRleHQuZ2V0KCkpOwogICAgIGZw
cmludGYoc3RkZXJyLCAiI0NSQVNIRUQgLSAlcyAocGlkICVsZClcbiIsIG5ldHdvcmtQcm9jZXNz
TmFtZSgpLCBzdGF0aWNfY2FzdDxsb25nPihwaWQpKTsKLSNlbHNlCi0gICAgZnByaW50ZihzdGRl
cnIsICIjQ1JBU0hFRCAtICVzXG4iLCBuZXR3b3JrUHJvY2Vzc05hbWUoKSk7Ci0jZW5kaWYKICAg
ICBleGl0KDEpOwogfQogCiB2b2lkIFRlc3RDb250cm9sbGVyOjpkYXRhYmFzZVByb2Nlc3NEaWRD
cmFzaCgpCiB7Ci0jaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgcGlkX3QgcGlkID0gV0tDb250ZXh0
R2V0RGF0YWJhc2VQcm9jZXNzSWRlbnRpZmllcihtX2NvbnRleHQuZ2V0KCkpOwogICAgIGZwcmlu
dGYoc3RkZXJyLCAiI0NSQVNIRUQgLSAlcyAocGlkICVsZClcbiIsIGRhdGFiYXNlUHJvY2Vzc05h
bWUoKSwgc3RhdGljX2Nhc3Q8bG9uZz4ocGlkKSk7Ci0jZWxzZQotICAgIGZwcmludGYoc3RkZXJy
LCAiI0NSQVNIRUQgLSAlc1xuIiwgZGF0YWJhc2VQcm9jZXNzTmFtZSgpKTsKLSNlbmRpZgogICAg
IGV4aXQoMSk7CiB9CiAKQEAgLTE3MjIsMTIgKzE3MTQsOCBAQCB2b2lkIFRlc3RDb250cm9sbGVy
Ojpwcm9jZXNzRGlkQ3Jhc2goKQogICAgIC8vIFRoaXMgZnVuY3Rpb24gY2FuIGJlIGNhbGxlZCBt
dWx0aXBsZSB0aW1lcyB3aGVuIGNyYXNoIGxvZ3MgYXJlIGJlaW5nIHNhdmVkIG9uIFdpbmRvd3Ms
IHNvCiAgICAgLy8gZW5zdXJlIHdlIG9ubHkgcHJpbnQgdGhlIGNyYXNoZWQgbWVzc2FnZSBvbmNl
LgogICAgIGlmICghbV9kaWRQcmludFdlYlByb2Nlc3NDcmFzaGVkTWVzc2FnZSkgewotI2lmIFBM
QVRGT1JNKENPQ09BKQogICAgICAgICBwaWRfdCBwaWQgPSBXS1BhZ2VHZXRQcm9jZXNzSWRlbnRp
ZmllcihtX21haW5XZWJWaWV3LT5wYWdlKCkpOwogICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiND
UkFTSEVEIC0gJXMgKHBpZCAlbGQpXG4iLCB3ZWJQcm9jZXNzTmFtZSgpLCBzdGF0aWNfY2FzdDxs
b25nPihwaWQpKTsKLSNlbHNlCi0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiI0NSQVNIRUQgLSAl
c1xuIiwgd2ViUHJvY2Vzc05hbWUoKSk7Ci0jZW5kaWYKICAgICAgICAgZmZsdXNoKHN0ZGVycik7
CiAgICAgICAgIG1fZGlkUHJpbnRXZWJQcm9jZXNzQ3Jhc2hlZE1lc3NhZ2UgPSB0cnVlOwogICAg
IH0KLS0gCjIuOC4x
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284314</attachid>
            <date>2016-07-22 00:50:27 -0700</date>
            <delta_ts>2016-07-22 03:14:16 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.patch</filename>
            <type>text/plain</type>
            <size>17804</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSAxYjA3MzIzMWI2Y2ZjZGMzOGU3NzhlYWRiNTg2ZTc5ZTM0NjlkNmQ4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBNb24sIDExIEp1bCAyMDE2IDE2OjMxOjQ4ICswMjAwClN1YmplY3Q6IFtQQVRDSF0g
cGF0Y2gKCi0tLQogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAyMiArKysrKysrKysrKysrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tDb250ZXh0LmNwcCAgICAgICB8IDEwICsrKysrKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaCAgfCAgMyArKwogU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZS5jcHAgICAgICAgICAgfCAgNSArKysKIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmggICAgIHwgIDIgKysKIC4uLi9VSVByb2Nlc3Mv
QVBJL0MvbWFjL1dLQ29udGV4dFByaXZhdGVNYWMuaCAgICAgIHwgIDMgLS0KIC4uLi9VSVByb2Nl
c3MvQVBJL0MvbWFjL1dLQ29udGV4dFByaXZhdGVNYWMubW0gICAgIHwgMTAgLS0tLS0tCiAuLi4v
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLUGFnZVByaXZhdGVNYWMuaCB8ICAxIC0KIC4u
Li9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLUGFnZVByaXZhdGVNYWMubW0gICAgICAgIHwgIDUgLS0t
CiBUb29scy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDMw
ICsrKysrKysrKysrKysrKysrKwogVG9vbHMvU2NyaXB0cy9wcm9jZXNzLWxpbnV4LWNvcmVkdW1w
ICAgICAgICAgICAgICAgfCAzNiArKysrKysrKysrKysrKysrKysrKysrCiBUb29scy9TY3JpcHRz
L3dlYmtpdHB5L3BvcnQvZWZsLnB5ICAgICAgICAgICAgICAgICB8ICAyICstCiBUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L3BvcnQvZ3RrLnB5ICAgICAgICAgICAgICAgICB8ICAyICstCiBUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L3BvcnQvbGludXhfZ2V0X2NyYXNoX2xvZy5weSB8IDEwICsrKy0tLQog
Li4uL3dlYmtpdHB5L3BvcnQvbGludXhfZ2V0X2NyYXNoX2xvZ191bml0dGVzdC5weSAgfCAgNyAr
KystLQogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgICAgICAgICAg
fCAxMiAtLS0tLS0tLQogMTYgZmlsZXMgY2hhbmdlZCwgMTE5IGluc2VydGlvbnMoKyksIDQxIGRl
bGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNzU1IFRvb2xzL1NjcmlwdHMvcHJvY2Vzcy1saW51
eC1jb3JlZHVtcAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAzZWNmYTkwLi4wYWE1Njg3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMTYtMDctMjIgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBp
Z2FsaWEuY29tPgorCisgICAgICAgIEltcHJvdmUgR0RCIGJhY2t0cmFjZSBnZW5lcmF0aW9uIGZv
ciBHVEsvRUZMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMjg5MjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBNb3ZlIHRoZSBXZWIsIERhdGFiYXNlIGFuZCBOZXR3b3JrIFByb2Nlc3NJZGVudGlmaWVyIGZ1
bmN0aW9ucyB0bworICAgICAgICB0aGUgY3Jvc3MtcGxhdGZvcm0gV0tDb250ZXh0IGFuZCBXS1Bh
Z2UgaW1wbGVtZW50YXRpb25zLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4
dC5jcHA6CisgICAgICAgIChXS0NvbnRleHRHZXROZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIpOgor
ICAgICAgICAoV0tDb250ZXh0R2V0RGF0YWJhc2VQcm9jZXNzSWRlbnRpZmllcik6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0MvV0tQYWdlLmNwcDoKKyAgICAgICAgKFdLUGFnZUdldFByb2Nlc3NJZGVudGlmaWVy
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQy9tYWMvV0tDb250ZXh0UHJpdmF0ZU1hYy5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQy9tYWMvV0tDb250ZXh0UHJpdmF0ZU1hYy5tbToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0MvbWFjL1dLUGFnZVByaXZhdGVNYWMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0MvbWFjL1dLUGFnZVByaXZhdGVNYWMubW06CisKIDIwMTYtMDctMjEgIE15bGVzIEMuIE1h
eGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgc3VwcG9ydCBm
b3IgZGVwcmVjYXRlZCBTUEkgaW5saW5lTWVkaWFQbGF5YmFja1JlcXVpcmVzUGxheXNJbmxpbmVB
dHRyaWJ1dGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0Nv
bnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAK
aW5kZXggNWNmMGJjYS4uMDMxMzQxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLQ29udGV4dC5jcHAKQEAgLTU3MiwzICs1NzIsMTMgQEAgdm9pZCBXS0NvbnRleHRTZXRG
b250V2hpdGVsaXN0KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS0FycmF5UmVmIGFycmF5UmVm
KQogewogICAgIHRvSW1wbChjb250ZXh0UmVmKS0+c2V0Rm9udFdoaXRlbGlzdCh0b0ltcGwoYXJy
YXlSZWYpKTsKIH0KKworcGlkX3QgV0tDb250ZXh0R2V0TmV0d29ya1Byb2Nlc3NJZGVudGlmaWVy
KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmKQoreworICAgIHJldHVybiB0b0ltcGwoY29udGV4dFJl
ZiktPm5ldHdvcmtQcm9jZXNzSWRlbnRpZmllcigpOworfQorCitwaWRfdCBXS0NvbnRleHRHZXRE
YXRhYmFzZVByb2Nlc3NJZGVudGlmaWVyKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmKQoreworICAg
IHJldHVybiB0b0ltcGwoY29udGV4dFJlZiktPmRhdGFiYXNlUHJvY2Vzc0lkZW50aWZpZXIoKTsK
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQ
cml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0UHJpdmF0
ZS5oCmluZGV4IGU4YzkwNTEuLjY3NDJmZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaApAQCAtOTQsNiArOTQsOSBAQCBXS19FWFBP
UlQgdm9pZCBXS0NvbnRleHRTZXRNZW1vcnlDYWNoZURpc2FibGVkKFdLQ29udGV4dFJlZiwgYm9v
bCBkaXNhYmxlZCk7CiAKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFNldEZvbnRXaGl0ZWxpc3Qo
V0tDb250ZXh0UmVmLCBXS0FycmF5UmVmKTsKIAorV0tfRVhQT1JUIHBpZF90IFdLQ29udGV4dEdl
dE5ldHdvcmtQcm9jZXNzSWRlbnRpZmllcihXS0NvbnRleHRSZWYgY29udGV4dCk7CitXS19FWFBP
UlQgcGlkX3QgV0tDb250ZXh0R2V0RGF0YWJhc2VQcm9jZXNzSWRlbnRpZmllcihXS0NvbnRleHRS
ZWYgY29udGV4dCk7CisKICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IDMxZWNkNmQuLmYzOWI4ZDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC0yNzUyLDYgKzI3
NTIsMTEgQEAgdm9pZCBXS1BhZ2VTZXRJZ25vcmVzVmlld3BvcnRTY2FsZUxpbWl0cyhXS1BhZ2VS
ZWYgcGFnZSwgYm9vbCBpZ25vcmVzVmlld3BvcnRTY2EKICNlbmRpZgogfQogCitwaWRfdCBXS1Bh
Z2VHZXRQcm9jZXNzSWRlbnRpZmllcihXS1BhZ2VSZWYgcGFnZSkKK3sKKyAgICByZXR1cm4gdG9J
bXBsKHBhZ2UpLT5wcm9jZXNzSWRlbnRpZmllcigpOworfQorCiAjaWYgRU5BQkxFKE5FVFNDQVBF
X1BMVUdJTl9BUEkpCiAKIC8vIC0tIERFUFJFQ0FURUQgLS0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oCmluZGV4IDFhODM4Y2EuLjQ5NDBlOTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUuaApAQCAt
MTQ5LDYgKzE0OSw4IEBAIFdLX0VYUE9SVCB2b2lkIFdLUGFnZVJlc3RvcmVGcm9tU2Vzc2lvblN0
YXRlV2l0aG91dE5hdmlnYXRpb24oV0tQYWdlUmVmIHBhZ2UsIFdLCiAKIFdLX0VYUE9SVCB2b2lk
IFdLUGFnZVNldElnbm9yZXNWaWV3cG9ydFNjYWxlTGltaXRzKFdLUGFnZVJlZiBwYWdlLCBib29s
IGlnbm9yZXNWaWV3cG9ydFNjYWxlTGltaXRzKTsKIAorV0tfRVhQT1JUIHBpZF90IFdLUGFnZUdl
dFByb2Nlc3NJZGVudGlmaWVyKFdLUGFnZVJlZiBwYWdlKTsKKwogI2lmZGVmIF9fY3BsdXNwbHVz
CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9t
YWMvV0tDb250ZXh0UHJpdmF0ZU1hYy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L21hYy9XS0NvbnRleHRQcml2YXRlTWFjLmgKaW5kZXggMTYxMWQ5My4uZjVkZGVkYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL21hYy9XS0NvbnRleHRQcml2YXRl
TWFjLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL21hYy9XS0NvbnRleHRQ
cml2YXRlTWFjLmgKQEAgLTc3LDkgKzc3LDYgQEAgV0tfRVhQT1JUIFdLU3RyaW5nUmVmIFdLUGx1
Z0luSW5mb0lzU2FuZGJveGVkS2V5KCk7CiBXS19FWFBPUlQgYm9vbCBXS0NvbnRleHRTaG91bGRC
bG9ja1dlYkdMKCk7CiBXS19FWFBPUlQgYm9vbCBXS0NvbnRleHRTaG91bGRTdWdnZXN0QmxvY2tX
ZWJHTCgpOwogCi1XS19FWFBPUlQgcGlkX3QgV0tDb250ZXh0R2V0TmV0d29ya1Byb2Nlc3NJZGVu
dGlmaWVyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKLVdLX0VYUE9SVCBwaWRfdCBXS0NvbnRleHRH
ZXREYXRhYmFzZVByb2Nlc3NJZGVudGlmaWVyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKLQogI2lm
ZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9tYWMvV0tDb250ZXh0UHJpdmF0ZU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9tYWMvV0tDb250ZXh0UHJpdmF0ZU1hYy5tbQppbmRleCBhNTg5MTA0
Li5iMjU4NjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvbWFj
L1dLQ29udGV4dFByaXZhdGVNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL21hYy9XS0NvbnRleHRQcml2YXRlTWFjLm1tCkBAIC0xNjMsMTMgKzE2MywzIEBAIGJvb2wg
V0tDb250ZXh0U2hvdWxkU3VnZ2VzdEJsb2NrV2ViR0woKQogewogICAgIHJldHVybiBXS1Nob3Vs
ZFN1Z2dlc3RCbG9ja2luZ1dlYkdMKCk7CiB9Ci0KLXBpZF90IFdLQ29udGV4dEdldE5ldHdvcmtQ
cm9jZXNzSWRlbnRpZmllcihXS0NvbnRleHRSZWYgY29udGV4dFJlZikKLXsKLSAgICByZXR1cm4g
dG9JbXBsKGNvbnRleHRSZWYpLT5uZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIoKTsKLX0KLQotcGlk
X3QgV0tDb250ZXh0R2V0RGF0YWJhc2VQcm9jZXNzSWRlbnRpZmllcihXS0NvbnRleHRSZWYgY29u
dGV4dFJlZikKLXsKLSAgICByZXR1cm4gdG9JbXBsKGNvbnRleHRSZWYpLT5kYXRhYmFzZVByb2Nl
c3NJZGVudGlmaWVyKCk7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvbWFjL1dLUGFnZVByaXZhdGVNYWMuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9tYWMvV0tQYWdlUHJpdmF0ZU1hYy5oCmluZGV4IGE2YTU2NjcuLjUxZjQ0MDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9tYWMvV0tQYWdlUHJpdmF0ZU1h
Yy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9tYWMvV0tQYWdlUHJpdmF0
ZU1hYy5oCkBAIC01Niw3ICs1Niw2IEBAIFdLX0VYUE9SVCBfV0tSZW1vdGVPYmplY3RSZWdpc3Ry
eSAqV0tQYWdlR2V0T2JqZWN0UmVnaXN0cnkoV0tQYWdlUmVmIHBhZ2UpOwogCiAjZW5kaWYKIAot
V0tfRVhQT1JUIHBpZF90IFdLUGFnZUdldFByb2Nlc3NJZGVudGlmaWVyKFdLUGFnZVJlZiBwYWdl
KTsKIFdLX0VYUE9SVCBib29sIFdLUGFnZUlzVVJMS25vd25IU1RTSG9zdChXS1BhZ2VSZWYgcGFn
ZSwgV0tVUkxSZWYgdXJsKTsKIAogI2lmIFRBUkdFVF9PU19NQUMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9tYWMvV0tQYWdlUHJpdmF0ZU1hYy5tbSBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9tYWMvV0tQYWdlUHJpdmF0ZU1hYy5tbQppbmRleCA0
ZjlkMmU5Li4yN2IxNjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvbWFjL1dLUGFnZVByaXZhdGVNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL21hYy9XS1BhZ2VQcml2YXRlTWFjLm1tCkBAIC0xMTYsMTEgKzExNiw2IEBAIF9XS1Jl
bW90ZU9iamVjdFJlZ2lzdHJ5ICpXS1BhZ2VHZXRPYmplY3RSZWdpc3RyeShXS1BhZ2VSZWYgcGFn
ZVJlZikKICNlbmRpZgogfQogCi1waWRfdCBXS1BhZ2VHZXRQcm9jZXNzSWRlbnRpZmllcihXS1Bh
Z2VSZWYgcGFnZVJlZikKLXsKLSAgICByZXR1cm4gdG9JbXBsKHBhZ2VSZWYpLT5wcm9jZXNzSWRl
bnRpZmllcigpOwotfQotCiBib29sIFdLUGFnZUlzVVJMS25vd25IU1RTSG9zdChXS1BhZ2VSZWYg
cGFnZSwgV0tVUkxSZWYgdXJsKQogewogICAgIFdlYlBhZ2VQcm94eSogd2ViUGFnZVByb3h5ID0g
dG9JbXBsKHBhZ2UpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IGM3ZjFjOTMuLjk0NDczN2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxNi0wNy0yMiAgUGhpbGlw
cGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgSW1wcm92ZSBHREIg
YmFja3RyYWNlIGdlbmVyYXRpb24gZm9yIEdUSy9FRkwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyODkyOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBQSUQgb2YgdGhlIGNyYXNoZWQgcHJvY2VzcyBp
cyBub3cgY29ycmVjdGx5IHN1cHBsaWVkIHRvIHRoZQorICAgICAgICBjcmFzaCBsb2cgcmVwb3J0
ZXIuIFRoZSBrZXJuZWwgY29yZV9wYXR0ZXJuIG5lZWRzIHRvIGJlIHVwZGF0ZWQKKyAgICAgICAg
YWZ0ZXIgdGhpcyBjaGFuZ2UgdG8gc29tZXRoaW5nIGxpa2U6CisKKyAgICAgICAgZWNobyAifC9o
b21lL3BoaWwvV2ViS2l0L1Rvb2xzL1NjcmlwdHMvcHJvY2Vzcy1saW51eC1jb3JlZHVtcCAlcCAv
dG1wLyIgPiAvcHJvYy9zeXMva2VybmVsL2NvcmVfcGF0dGVybgorCisgICAgICAgICogU2NyaXB0
cy9wcm9jZXNzLWxpbnV4LWNvcmVkdW1wOiBBZGRlZC4KKyAgICAgICAgKG1haW4pOiBNaW5pbWFs
IHB5dGhvbiBzY3JpcHQgcmVhZGluZyBjb3JlZHVtcCBkYXRhIG9uIHN0ZGluIGFuZCB3cml0aW5n
IGl0IHRvIGEgZmlsZSBpbiAvdG1wLy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQv
ZWZsLnB5OgorICAgICAgICAoRWZsUG9ydC5fZ2V0X2NyYXNoX2xvZyk6IFN1cHBseSBwYXRoIG9m
IHRoZSBwcm9jZXNzLWxpbnV4LWNvcmVkdW1wIHNjcmlwdC4KKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L3BvcnQvZ3RrLnB5OgorICAgICAgICAoR3RrUG9ydC5fZ2V0X2NyYXNoX2xvZyk6IERp
dHRvLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9saW51eF9nZXRfY3Jhc2hfbG9n
LnB5OgorICAgICAgICAoR0RCQ3Jhc2hMb2dHZW5lcmF0b3IuX19pbml0X18pOiBOZXcgYXJndW1l
bnQgZm9yIHN1cHBseWluZyB0aGUgcGF0aCBvZiBhIGNvcmVkdW1wIHByb2Nlc3NvciBzY3JpcHQu
CisgICAgICAgIChHREJDcmFzaExvZ0dlbmVyYXRvci5nZW5lcmF0ZV9jcmFzaF9sb2cpOiBVcGRh
dGUgZXJyb3IgbWVzc2FnZSwgdGhlIGNvcmVfcGF0dGVybiBzaG91bGQgbm93IGJlIHNldCB0byBw
aXBlIGNvcmVkdW1wcyB0byBhIHNjcmlwdC4KKyAgICAgICAgKEdEQkNyYXNoTG9nR2VuZXJhdG9y
KTogRGVsZXRlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvbGludXhfZ2V0X2Ny
YXNoX2xvZ191bml0dGVzdC5weToKKyAgICAgICAgKEdEQkNyYXNoTG9nR2VuZXJhdG9yVGVzdC50
ZXN0X2dlbmVyYXRlX2NyYXNoX2xvZyk6IFVwZGF0ZSB0ZXN0IGV4cGVjdGF0aW9ucy4KKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6
VGVzdENvbnRyb2xsZXI6Om5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2gpOiBTdXBwbHkgUElEIG9mIGNy
YXNoIHByb2Nlc3MuCisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpkYXRhYmFzZVByb2Nl
c3NEaWRDcmFzaCk6IERpdHRvLgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cHJvY2Vz
c0RpZENyYXNoKTogRGl0dG8uCisKIDIwMTYtMDctMjEgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFw
cGxlLmNvbT4KIAogICAgICAgICBbTWFjXSB3ZWJraXRkaXJzLnBtIGNvbnRhaW5zIHVudXNlZCBj
b2RlIHRvIHN1cHBvcnQgb3V0ZGF0ZWQgT1MgWCBhbmQgWGNvZGUgdmVyc2lvbnMKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvcHJvY2Vzcy1saW51eC1jb3JlZHVtcCBiL1Rvb2xzL1NjcmlwdHMv
cHJvY2Vzcy1saW51eC1jb3JlZHVtcApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAw
Li4wNTg4NTUxCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy9wcm9jZXNzLWxpbnV4
LWNvcmVkdW1wCkBAIC0wLDAgKzEsMzYgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIyBDb3B5
cmlnaHQgKEMpIDIwMTYgSWdhbGlhIFMuTC4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIyBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorIyB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisjCisjIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorIyBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2Ug
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdh
cmUKKyMgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwg
Qm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisKK2ltcG9ydCBvcworaW1wb3J0IHN5cworCisj
IFRoaXMgc2NyaXB0IGlzIG1lYW50IHRvIGJlIGludm9rZWQgYnkgdGhlIGtlcm5lbCdzIGNvcmVf
cGF0dGVybiBob29rLiBJdAorIyB0YWtlcyBvbmUgYXJndW1lbnQgb24gY29tbWFuZC1saW5lOiB0
aGUgZnVsbCBwYXRoIG9mIHRoZSBjb3JlZHVtcCBmaWxlIHRvCisjIHdoaWNoIHRoZSBjb3JlZHVt
cCBkYXRhIHNob3VsZCBiZSBzYXZlZC4KKworZGVmIG1haW4oZnVsbF9wYXRoKToKKyAgICBjb3Jl
ZHVtcCA9IG9wZW4oZnVsbF9wYXRoLCAnd2InKQorICAgIHdoaWxlIFRydWU6CisgICAgICAgIGRh
dGEgPSBzeXMuc3RkaW4ucmVhZCgpCisgICAgICAgIGlmIG5vdCBkYXRhOgorICAgICAgICAgICAg
YnJlYWsKKyAgICAgICAgY29yZWR1bXAud3JpdGUoZGF0YSkKKyAgICBjb3JlZHVtcC5jbG9zZSgp
CisgICAgcmV0dXJuIDAKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICBzeXMuZXhp
dChtYWluKCpzeXMuYXJndlsxOl0pKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9wb3J0L2VmbC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9lZmwucHkKaW5kZXgg
NDE2MWFlOC4uYTkwMGIzYyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0
L2VmbC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZWZsLnB5CkBAIC0xNDIs
NyArMTQyLDcgQEAgY2xhc3MgRWZsUG9ydChQb3J0KToKICAgICAgICAgcmV0dXJuIGNvbW1hbmQK
IAogICAgIGRlZiBfZ2V0X2NyYXNoX2xvZyhzZWxmLCBuYW1lLCBwaWQsIHN0ZG91dCwgc3RkZXJy
LCBuZXdlcl90aGFuKToKLSAgICAgICAgcmV0dXJuIEdEQkNyYXNoTG9nR2VuZXJhdG9yKG5hbWUs
IHBpZCwgbmV3ZXJfdGhhbiwgc2VsZi5fZmlsZXN5c3RlbSwgc2VsZi5fcGF0aF90b19kcml2ZXIp
LmdlbmVyYXRlX2NyYXNoX2xvZyhzdGRvdXQsIHN0ZGVycikKKyAgICAgICAgcmV0dXJuIEdEQkNy
YXNoTG9nR2VuZXJhdG9yKG5hbWUsIHBpZCwgbmV3ZXJfdGhhbiwgc2VsZi5fZmlsZXN5c3RlbSwg
c2VsZi5wYXRoX3RvX3NjcmlwdCgicHJvY2Vzcy1saW51eC1jb3JlZHVtcCIpLCBzZWxmLl9wYXRo
X3RvX2RyaXZlcikuZ2VuZXJhdGVfY3Jhc2hfbG9nKHN0ZG91dCwgc3RkZXJyKQogCiAgICAgZGVm
IHRlc3RfZXhwZWN0YXRpb25zX2ZpbGVfcG9zaXRpb24oc2VsZik6CiAgICAgICAgICMgRUZMIHBv
cnQgYmFzZWxpbmUgc2VhcmNoIHBhdGggaXMgZWZsIC0+IHdrMiAtPiBnZW5lcmljIChhcyBlZmwt
d2syIGFuZCBlZmwgYmFzZWxpbmVzIGFyZSBtZXJnZWQpLCBzbyBwb3J0IHRlc3QgZXhwZWN0YXRp
b25zIGZpbGUgaXMgYXQgdGhpcmQgdG8gbGFzdCBwb3NpdGlvbi4KZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvcG9ydC9ndGsucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Bv
cnQvZ3RrLnB5CmluZGV4IDI4Yjc5ZGQuLmM2MzAyZjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvcG9ydC9ndGsucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0
L2d0ay5weQpAQCAtMjE2LDcgKzIxNiw3IEBAIGNsYXNzIEd0a1BvcnQoUG9ydCk6CiAKICAgICBk
ZWYgX2dldF9jcmFzaF9sb2coc2VsZiwgbmFtZSwgcGlkLCBzdGRvdXQsIHN0ZGVyciwgbmV3ZXJf
dGhhbik6CiAgICAgICAgIG5hbWUgPSAiV2ViS2l0V2ViUHJvY2VzcyIgaWYgbmFtZSA9PSAiV2Vi
UHJvY2VzcyIgZWxzZSBuYW1lCi0gICAgICAgIHJldHVybiBHREJDcmFzaExvZ0dlbmVyYXRvcihu
YW1lLCBwaWQsIG5ld2VyX3RoYW4sIHNlbGYuX2ZpbGVzeXN0ZW0sIHNlbGYuX3BhdGhfdG9fZHJp
dmVyKS5nZW5lcmF0ZV9jcmFzaF9sb2coc3Rkb3V0LCBzdGRlcnIpCisgICAgICAgIHJldHVybiBH
REJDcmFzaExvZ0dlbmVyYXRvcihuYW1lLCBwaWQsIG5ld2VyX3RoYW4sIHNlbGYuX2ZpbGVzeXN0
ZW0sIHNlbGYucGF0aF90b19zY3JpcHQoInByb2Nlc3MtbGludXgtY29yZWR1bXAiKSwgc2VsZi5f
cGF0aF90b19kcml2ZXIpLmdlbmVyYXRlX2NyYXNoX2xvZyhzdGRvdXQsIHN0ZGVycikKIAogICAg
IGRlZiB0ZXN0X2V4cGVjdGF0aW9uc19maWxlX3Bvc2l0aW9uKHNlbGYpOgogICAgICAgICAjIEdU
SyBwb3J0IGJhc2VsaW5lIHNlYXJjaCBwYXRoIGlzIGd0ayAtPiB3azIgLT4gZ2VuZXJpYyAoYXMg
Z3RrLXdrMiBhbmQgZ3RrIGJhc2VsaW5lcyBhcmUgbWVyZ2VkKSwgc28gcG9ydCB0ZXN0IGV4cGVj
dGF0aW9ucyBmaWxlIGlzIGF0IHRoaXJkIHRvIGxhc3QgcG9zaXRpb24uCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvbGludXhfZ2V0X2NyYXNoX2xvZy5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvcG9ydC9saW51eF9nZXRfY3Jhc2hfbG9nLnB5CmluZGV4IDAzNzZm
N2MuLjExMGNhYzYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9saW51
eF9nZXRfY3Jhc2hfbG9nLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9saW51
eF9nZXRfY3Jhc2hfbG9nLnB5CkBAIC0zMCwxMyArMzAsMTMgQEAKIGltcG9ydCBzdWJwcm9jZXNz
CiBpbXBvcnQgb3MKIAotCiBjbGFzcyBHREJDcmFzaExvZ0dlbmVyYXRvcihvYmplY3QpOgotICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lLCBwaWQsIG5ld2VyX3RoYW4sIGZpbGVzeXN0ZW0sIHBh
dGhfdG9fZHJpdmVyKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSwgcGlkLCBuZXdlcl90
aGFuLCBmaWxlc3lzdGVtLCBwcm9jZXNzX2NvcmVkdW1wX3NjcmlwdF9wYXRoLCBwYXRoX3RvX2Ry
aXZlcik6CiAgICAgICAgIHNlbGYubmFtZSA9IG5hbWUKICAgICAgICAgc2VsZi5waWQgPSBwaWQK
ICAgICAgICAgc2VsZi5uZXdlcl90aGFuID0gbmV3ZXJfdGhhbgogICAgICAgICBzZWxmLl9maWxl
c3lzdGVtID0gZmlsZXN5c3RlbQorICAgICAgICBzZWxmLl9wcm9jZXNzX2NvcmVkdW1wX3Njcmlw
dF9wYXRoID0gcHJvY2Vzc19jb3JlZHVtcF9zY3JpcHRfcGF0aAogICAgICAgICBzZWxmLl9wYXRo
X3RvX2RyaXZlciA9IHBhdGhfdG9fZHJpdmVyCiAKICAgICBkZWYgX2dldF9nZGJfb3V0cHV0KHNl
bGYsIGNvcmVkdW1wX3BhdGgpOgpAQCAtNTIsNyArNTIsNyBAQCBjbGFzcyBHREJDcmFzaExvZ0dl
bmVyYXRvcihvYmplY3QpOgogICAgICAgICBsb2dfZGlyZWN0b3J5ID0gb3MuZW52aXJvbi5nZXQo
IldFQktJVF9DT1JFX0RVTVBTX0RJUkVDVE9SWSIpCiAgICAgICAgIGVycm9ycyA9IFtdCiAgICAg
ICAgIGNyYXNoX2xvZyA9ICcnCi0gICAgICAgIGV4cGVjdGVkX2NyYXNoX2R1bXBfZmlsZW5hbWUg
PSAiY29yZS1waWRfJXMtXy1wcm9jZXNzXyVzIiAlIChwaWRfcmVwcmVzZW50YXRpb24sIHNlbGYu
bmFtZSkKKyAgICAgICAgZXhwZWN0ZWRfY3Jhc2hfZHVtcF9maWxlbmFtZSA9ICJjb3JlLXBpZF8l
cy5kdW1wIiAlIHBpZF9yZXByZXNlbnRhdGlvbgogICAgICAgICBwcm9jX25hbWUgPSAiJXMiICUg
KHNlbGYubmFtZSkKIAogICAgICAgICBkZWYgbWF0Y2hfZmlsZW5hbWUoZmlsZXN5c3RlbSwgZGly
ZWN0b3J5LCBmaWxlbmFtZSk6CkBAIC03NiwxMSArNzYsMTEgQEAgY2xhc3MgR0RCQ3Jhc2hMb2dH
ZW5lcmF0b3Iob2JqZWN0KToKICAgICAgICAgaWYgbm90IGNyYXNoX2xvZzoKICAgICAgICAgICAg
IGlmIG5vdCBsb2dfZGlyZWN0b3J5OgogICAgICAgICAgICAgICAgIGxvZ19kaXJlY3RvcnkgPSAi
L3BhdGgvdG8vY29yZWR1bXBzIgotICAgICAgICAgICAgY29yZV9wYXR0ZXJuID0gb3MucGF0aC5q
b2luKGxvZ19kaXJlY3RvcnksICJjb3JlLXBpZF8lcC1fLXByb2Nlc3NfJUUiKQorICAgICAgICAg
ICAgcHJvY2Vzc19jb3JlZHVtcF9zY3JpcHRfcGF0aCA9IHNlbGYuX3Byb2Nlc3NfY29yZWR1bXBf
c2NyaXB0X3BhdGgKICAgICAgICAgICAgIGNyYXNoX2xvZyA9ICIiIlwKIENvcmVkdW1wICUoZXhw
ZWN0ZWRfY3Jhc2hfZHVtcF9maWxlbmFtZSlzIG5vdCBmb3VuZC4gVG8gZW5hYmxlIGNyYXNoIGxv
Z3M6CiAKLS0gcnVuIHRoaXMgY29tbWFuZCBhcyBzdXBlci11c2VyOiBlY2hvICIlKGNvcmVfcGF0
dGVybilzIiA+IC9wcm9jL3N5cy9rZXJuZWwvY29yZV9wYXR0ZXJuCistIHJ1biB0aGlzIGNvbW1h
bmQgYXMgc3VwZXItdXNlcjogZWNobyAifCUocHJvY2Vzc19jb3JlZHVtcF9zY3JpcHRfcGF0aClz
ICUobG9nX2RpcmVjdG9yeSlzL2NvcmUtcGlkXyUlcC5kdW1wIiA+IC9wcm9jL3N5cy9rZXJuZWwv
Y29yZV9wYXR0ZXJuCiAtIGVuYWJsZSBjb3JlIGR1bXBzOiB1bGltaXQgLWMgdW5saW1pdGVkCiAt
IHNldCB0aGUgV0VCS0lUX0NPUkVfRFVNUFNfRElSRUNUT1JZIGVudmlyb25tZW50IHZhcmlhYmxl
OiBleHBvcnQgV0VCS0lUX0NPUkVfRFVNUFNfRElSRUNUT1JZPSUobG9nX2RpcmVjdG9yeSlzCiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9saW51eF9nZXRfY3Jhc2hf
bG9nX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2xpbnV4X2dldF9j
cmFzaF9sb2dfdW5pdHRlc3QucHkKaW5kZXggY2RmOTE1Zi4uNzEyYmQ2MyAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2xpbnV4X2dldF9jcmFzaF9sb2dfdW5pdHRlc3Qu
cHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2xpbnV4X2dldF9jcmFzaF9sb2df
dW5pdHRlc3QucHkKQEAgLTQxLDE0ICs0MSwxNSBAQCBjbGFzcyBHREJDcmFzaExvZ0dlbmVyYXRv
clRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBpZiBzeXMucGxhdGZvcm0uc3RhcnRz
d2l0aCgnd2luJyk6CiAgICAgICAgICAgICByZXR1cm4KIAotICAgICAgICBnZW5lcmF0b3IgPSBH
REJDcmFzaExvZ0dlbmVyYXRvcignRHVtcFJlbmRlclRyZWUnLCAyODUyOSwgbmV3ZXJfdGhhbj1O
b25lLCBmaWxlc3lzdGVtPU1vY2tGaWxlU3lzdGVtKHsnL3BhdGgvdG8vY29yZWR1bXBzJzogJyd9
KSwgcGF0aF90b19kcml2ZXI9Tm9uZSkKKyAgICAgICAgcHJvY2Vzc19jb3JlZHVtcF9zY3JpcHRf
cGF0aCA9ICIvcGF0aC90by9jb3JlZHVtcC1wcm9jZXNzb3IiCisgICAgICAgIGdlbmVyYXRvciA9
IEdEQkNyYXNoTG9nR2VuZXJhdG9yKCdEdW1wUmVuZGVyVHJlZScsIDI4NTI5LCBuZXdlcl90aGFu
PU5vbmUsIGZpbGVzeXN0ZW09TW9ja0ZpbGVTeXN0ZW0oeycvcGF0aC90by9jb3JlZHVtcHMnOiAn
J30pLCBwcm9jZXNzX2NvcmVkdW1wX3NjcmlwdF9wYXRoPXByb2Nlc3NfY29yZWR1bXBfc2NyaXB0
X3BhdGgsIHBhdGhfdG9fZHJpdmVyPU5vbmUpCiAKICAgICAgICAgY29yZV9kaXJlY3RvcnkgPSBv
cy5lbnZpcm9uLmdldCgnV0VCS0lUX0NPUkVfRFVNUFNfRElSRUNUT1JZJywgJy9wYXRoL3RvL2Nv
cmVkdW1wcycpCi0gICAgICAgIGNvcmVfcGF0dGVybiA9IG9zLnBhdGguam9pbihjb3JlX2RpcmVj
dG9yeSwgImNvcmUtcGlkXyVwLV8tcHJvY2Vzc18lRSIpCisgICAgICAgIGNvcmVfcGF0dGVybiA9
ICJ8JXMgL3BhdGgvdG8vY29yZWR1bXBzL2NvcmUtcGlkXyUlcC5kdW1wIiAlIHByb2Nlc3NfY29y
ZWR1bXBfc2NyaXB0X3BhdGgKICAgICAgICAgbW9ja19lbXB0eV9jcmFzaF9sb2cgPSAiIiJcCiBj
cmFzaCBsb2cgZm9yIER1bXBSZW5kZXJUcmVlIChwaWQgMjg1MjkpOgogCi1Db3JlZHVtcCBjb3Jl
LXBpZF8yODUyOS1fLXByb2Nlc3NfRHVtcFJlbmRlclRyZWUgbm90IGZvdW5kLiBUbyBlbmFibGUg
Y3Jhc2ggbG9nczoKK0NvcmVkdW1wIGNvcmUtcGlkXzI4NTI5LmR1bXAgbm90IGZvdW5kLiBUbyBl
bmFibGUgY3Jhc2ggbG9nczoKIAogLSBydW4gdGhpcyBjb21tYW5kIGFzIHN1cGVyLXVzZXI6IGVj
aG8gIiUoY29yZV9wYXR0ZXJuKXMiID4gL3Byb2Mvc3lzL2tlcm5lbC9jb3JlX3BhdHRlcm4KIC0g
ZW5hYmxlIGNvcmUgZHVtcHM6IHVsaW1pdCAtYyB1bmxpbWl0ZWQKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggMjg2YzUyOS4uNWU1MGM3NSAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTE0NzksMjMgKzE0NzksMTUg
QEAgV0tSZXRhaW5QdHI8V0tUeXBlUmVmPiBUZXN0Q29udHJvbGxlcjo6Z2V0SW5qZWN0ZWRCdW5k
bGVJbml0aWFsaXphdGlvblVzZXJEYXRhKCkKIAogdm9pZCBUZXN0Q29udHJvbGxlcjo6bmV0d29y
a1Byb2Nlc3NEaWRDcmFzaCgpCiB7Ci0jaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgcGlkX3QgcGlk
ID0gV0tDb250ZXh0R2V0TmV0d29ya1Byb2Nlc3NJZGVudGlmaWVyKG1fY29udGV4dC5nZXQoKSk7
CiAgICAgZnByaW50ZihzdGRlcnIsICIjQ1JBU0hFRCAtICVzIChwaWQgJWxkKVxuIiwgbmV0d29y
a1Byb2Nlc3NOYW1lKCksIHN0YXRpY19jYXN0PGxvbmc+KHBpZCkpOwotI2Vsc2UKLSAgICBmcHJp
bnRmKHN0ZGVyciwgIiNDUkFTSEVEIC0gJXNcbiIsIG5ldHdvcmtQcm9jZXNzTmFtZSgpKTsKLSNl
bmRpZgogICAgIGV4aXQoMSk7CiB9CiAKIHZvaWQgVGVzdENvbnRyb2xsZXI6OmRhdGFiYXNlUHJv
Y2Vzc0RpZENyYXNoKCkKIHsKLSNpZiBQTEFURk9STShDT0NPQSkKICAgICBwaWRfdCBwaWQgPSBX
S0NvbnRleHRHZXREYXRhYmFzZVByb2Nlc3NJZGVudGlmaWVyKG1fY29udGV4dC5nZXQoKSk7CiAg
ICAgZnByaW50ZihzdGRlcnIsICIjQ1JBU0hFRCAtICVzIChwaWQgJWxkKVxuIiwgZGF0YWJhc2VQ
cm9jZXNzTmFtZSgpLCBzdGF0aWNfY2FzdDxsb25nPihwaWQpKTsKLSNlbHNlCi0gICAgZnByaW50
ZihzdGRlcnIsICIjQ1JBU0hFRCAtICVzXG4iLCBkYXRhYmFzZVByb2Nlc3NOYW1lKCkpOwotI2Vu
ZGlmCiAgICAgZXhpdCgxKTsKIH0KIApAQCAtMTcyMiwxMiArMTcxNCw4IEBAIHZvaWQgVGVzdENv
bnRyb2xsZXI6OnByb2Nlc3NEaWRDcmFzaCgpCiAgICAgLy8gVGhpcyBmdW5jdGlvbiBjYW4gYmUg
Y2FsbGVkIG11bHRpcGxlIHRpbWVzIHdoZW4gY3Jhc2ggbG9ncyBhcmUgYmVpbmcgc2F2ZWQgb24g
V2luZG93cywgc28KICAgICAvLyBlbnN1cmUgd2Ugb25seSBwcmludCB0aGUgY3Jhc2hlZCBtZXNz
YWdlIG9uY2UuCiAgICAgaWYgKCFtX2RpZFByaW50V2ViUHJvY2Vzc0NyYXNoZWRNZXNzYWdlKSB7
Ci0jaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgICAgIHBpZF90IHBpZCA9IFdLUGFnZUdldFByb2Nl
c3NJZGVudGlmaWVyKG1fbWFpbldlYlZpZXctPnBhZ2UoKSk7CiAgICAgICAgIGZwcmludGYoc3Rk
ZXJyLCAiI0NSQVNIRUQgLSAlcyAocGlkICVsZClcbiIsIHdlYlByb2Nlc3NOYW1lKCksIHN0YXRp
Y19jYXN0PGxvbmc+KHBpZCkpOwotI2Vsc2UKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICIjQ1JB
U0hFRCAtICVzXG4iLCB3ZWJQcm9jZXNzTmFtZSgpKTsKLSNlbmRpZgogICAgICAgICBmZmx1c2go
c3RkZXJyKTsKICAgICAgICAgbV9kaWRQcmludFdlYlByb2Nlc3NDcmFzaGVkTWVzc2FnZSA9IHRy
dWU7CiAgICAgfQotLSAKMi44LjE=
</data>
<flag name="review"
          id="307964"
          type_id="1"
          status="+"
          setter="cgarcia"
    />
    <flag name="commit-queue"
          id="307966"
          type_id="3"
          status="-"
          setter="cgarcia"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284321</attachid>
            <date>2016-07-22 03:14:16 -0700</date>
            <delta_ts>2016-07-22 03:38:27 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>patch-for-landing.patch</filename>
            <type>text/plain</type>
            <size>18544</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBkYTE1ODNiMWViMjc0MzM5NTM3YjAzOGMxNjQ1MTVlZDZhMWM1ODhhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBNb24sIDExIEp1bCAyMDE2IDE2OjMxOjQ4ICswMjAwClN1YmplY3Q6IFtQQVRDSF0g
cGF0Y2ggZm9yIGxhbmRpbmcKCi0tLQogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAyMiArKysrKysrKysrKysrCiBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcCAgICAgICB8IDEwICsrKysrKwogU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaCAgfCAgMyArKwogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgICAgICAgICAgfCAgNSArKysKIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmggICAgIHwgIDIgKysKIC4u
Li9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLQ29udGV4dFByaXZhdGVNYWMuaCAgICAgIHwgIDMgLS0K
IC4uLi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLQ29udGV4dFByaXZhdGVNYWMubW0gICAgIHwgMTAg
LS0tLS0tCiAuLi4vV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLUGFnZVByaXZhdGVNYWMu
aCB8ICAxIC0KIC4uLi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLUGFnZVByaXZhdGVNYWMubW0gICAg
ICAgIHwgIDUgLS0tCiBUb29scy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8IDMwICsrKysrKysrKysrKysrKysrKwogVG9vbHMvU2NyaXB0cy9wcm9jZXNzLWxp
bnV4LWNvcmVkdW1wICAgICAgICAgICAgICAgfCAzNiArKysrKysrKysrKysrKysrKysrKysrCiBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZWZsLnB5ICAgICAgICAgICAgICAgICB8ICAyICst
CiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZ3RrLnB5ICAgICAgICAgICAgICAgICB8ICAy
ICstCiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvbGludXhfZ2V0X2NyYXNoX2xvZy5weSB8
IDEwICsrKy0tLQogLi4uL3dlYmtpdHB5L3BvcnQvbGludXhfZ2V0X2NyYXNoX2xvZ191bml0dGVz
dC5weSAgfCAgNyArKystLQogLi4uL21hYy9HZXRQSURBZnRlckFib3J0ZWRQcm9jZXNzTGF1bmNo
LmNwcCAgICAgICAgfCAgNSArKy0KIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuY3BwICAgICAgICAgIHwgMTIgLS0tLS0tLS0KIDE3IGZpbGVzIGNoYW5nZWQsIDEyMyBpbnNl
cnRpb25zKCspLCA0MiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDc1NSBUb29scy9TY3Jp
cHRzL3Byb2Nlc3MtbGludXgtY29yZWR1bXAKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggM2VjZmE5MC4uMWNiNjg5
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE2LTA3LTIyICBQaGlsaXBwZSBOb3Jt
YW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBJbXByb3ZlIEdEQiBiYWNrdHJh
Y2UgZ2VuZXJhdGlvbiBmb3IgR1RLL0VGTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTI4OTI4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2FybG9zIEdh
cmNpYSBDYW1wb3MuCisKKyAgICAgICAgTW92ZSB0aGUgV2ViLCBEYXRhYmFzZSBhbmQgTmV0d29y
ayBQcm9jZXNzSWRlbnRpZmllciBmdW5jdGlvbnMgdG8KKyAgICAgICAgdGhlIGNyb3NzLXBsYXRm
b3JtIFdLQ29udGV4dCBhbmQgV0tQYWdlIGltcGxlbWVudGF0aW9ucy4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwOgorICAgICAgICAoV0tDb250ZXh0R2V0TmV0d29y
a1Byb2Nlc3NJZGVudGlmaWVyKToKKyAgICAgICAgKFdLQ29udGV4dEdldERhdGFiYXNlUHJvY2Vz
c0lkZW50aWZpZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRl
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1Bh
Z2VHZXRQcm9jZXNzSWRlbnRpZmllcik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZVByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvbWFjL1dLQ29udGV4dFByaXZh
dGVNYWMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvbWFjL1dLQ29udGV4dFByaXZhdGVN
YWMubW06CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL21hYy9XS1BhZ2VQcml2YXRlTWFjLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL21hYy9XS1BhZ2VQcml2YXRlTWFjLm1tOgorCiAy
MDE2LTA3LTIxICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmVtb3ZlIHN1cHBvcnQgZm9yIGRlcHJlY2F0ZWQgU1BJIGlubGluZU1lZGlhUGxheWJh
Y2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS0NvbnRleHQuY3BwCmluZGV4IDVjZjBiY2EuLjAzMTM0MWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCkBAIC01NzIsMyArNTcyLDEz
IEBAIHZvaWQgV0tDb250ZXh0U2V0Rm9udFdoaXRlbGlzdChXS0NvbnRleHRSZWYgY29udGV4dFJl
ZiwgV0tBcnJheVJlZiBhcnJheVJlZikKIHsKICAgICB0b0ltcGwoY29udGV4dFJlZiktPnNldEZv
bnRXaGl0ZWxpc3QodG9JbXBsKGFycmF5UmVmKSk7CiB9CisKK3BpZF90IFdLQ29udGV4dEdldE5l
dHdvcmtQcm9jZXNzSWRlbnRpZmllcihXS0NvbnRleHRSZWYgY29udGV4dFJlZikKK3sKKyAgICBy
ZXR1cm4gdG9JbXBsKGNvbnRleHRSZWYpLT5uZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIoKTsKK30K
KworcGlkX3QgV0tDb250ZXh0R2V0RGF0YWJhc2VQcm9jZXNzSWRlbnRpZmllcihXS0NvbnRleHRS
ZWYgY29udGV4dFJlZikKK3sKKyAgICByZXR1cm4gdG9JbXBsKGNvbnRleHRSZWYpLT5kYXRhYmFz
ZVByb2Nlc3NJZGVudGlmaWVyKCk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tDb250ZXh0UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaAppbmRleCBlOGM5MDUxLi42NzQyZmZiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0UHJpdmF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmgKQEAg
LTk0LDYgKzk0LDkgQEAgV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U2V0TWVtb3J5Q2FjaGVEaXNh
YmxlZChXS0NvbnRleHRSZWYsIGJvb2wgZGlzYWJsZWQpOwogCiBXS19FWFBPUlQgdm9pZCBXS0Nv
bnRleHRTZXRGb250V2hpdGVsaXN0KFdLQ29udGV4dFJlZiwgV0tBcnJheVJlZik7CiAKK1dLX0VY
UE9SVCBwaWRfdCBXS0NvbnRleHRHZXROZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIoV0tDb250ZXh0
UmVmIGNvbnRleHQpOworV0tfRVhQT1JUIHBpZF90IFdLQ29udGV4dEdldERhdGFiYXNlUHJvY2Vz
c0lkZW50aWZpZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOworCiAjaWZkZWYgX19jcGx1c3BsdXMK
IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRl
eCAzMWVjZDZkLi5mMzliOGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlLmNwcApAQCAtMjc1Miw2ICsyNzUyLDExIEBAIHZvaWQgV0tQYWdlU2V0SWdub3Jlc1ZpZXdw
b3J0U2NhbGVMaW1pdHMoV0tQYWdlUmVmIHBhZ2UsIGJvb2wgaWdub3Jlc1ZpZXdwb3J0U2NhCiAj
ZW5kaWYKIH0KIAorcGlkX3QgV0tQYWdlR2V0UHJvY2Vzc0lkZW50aWZpZXIoV0tQYWdlUmVmIHBh
Z2UpCit7CisgICAgcmV0dXJuIHRvSW1wbChwYWdlKS0+cHJvY2Vzc0lkZW50aWZpZXIoKTsKK30K
KwogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogCiAvLyAtLSBERVBSRUNBVEVEIC0t
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0
ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUuaAppbmRl
eCAxYTgzOGNhLi40OTQwZTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2VQcml2YXRlLmgKQEAgLTE0OSw2ICsxNDksOCBAQCBXS19FWFBPUlQgdm9pZCBXS1Bh
Z2VSZXN0b3JlRnJvbVNlc3Npb25TdGF0ZVdpdGhvdXROYXZpZ2F0aW9uKFdLUGFnZVJlZiBwYWdl
LCBXSwogCiBXS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRJZ25vcmVzVmlld3BvcnRTY2FsZUxpbWl0
cyhXS1BhZ2VSZWYgcGFnZSwgYm9vbCBpZ25vcmVzVmlld3BvcnRTY2FsZUxpbWl0cyk7CiAKK1dL
X0VYUE9SVCBwaWRfdCBXS1BhZ2VHZXRQcm9jZXNzSWRlbnRpZmllcihXS1BhZ2VSZWYgcGFnZSk7
CisKICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLQ29udGV4dFByaXZhdGVNYWMuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9tYWMvV0tDb250ZXh0UHJpdmF0ZU1hYy5oCmluZGV4IDE2
MTFkOTMuLmY1ZGRlZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9tYWMvV0tDb250ZXh0UHJpdmF0ZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9tYWMvV0tDb250ZXh0UHJpdmF0ZU1hYy5oCkBAIC03Nyw5ICs3Nyw2IEBAIFdLX0VY
UE9SVCBXS1N0cmluZ1JlZiBXS1BsdWdJbkluZm9Jc1NhbmRib3hlZEtleSgpOwogV0tfRVhQT1JU
IGJvb2wgV0tDb250ZXh0U2hvdWxkQmxvY2tXZWJHTCgpOwogV0tfRVhQT1JUIGJvb2wgV0tDb250
ZXh0U2hvdWxkU3VnZ2VzdEJsb2NrV2ViR0woKTsKIAotV0tfRVhQT1JUIHBpZF90IFdLQ29udGV4
dEdldE5ldHdvcmtQcm9jZXNzSWRlbnRpZmllcihXS0NvbnRleHRSZWYgY29udGV4dCk7Ci1XS19F
WFBPUlQgcGlkX3QgV0tDb250ZXh0R2V0RGF0YWJhc2VQcm9jZXNzSWRlbnRpZmllcihXS0NvbnRl
eHRSZWYgY29udGV4dCk7Ci0KICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLQ29udGV4dFByaXZhdGVN
YWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLQ29udGV4dFByaXZh
dGVNYWMubW0KaW5kZXggYTU4OTEwNC4uYjI1ODYzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL21hYy9XS0NvbnRleHRQcml2YXRlTWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9tYWMvV0tDb250ZXh0UHJpdmF0ZU1hYy5tbQpAQCAt
MTYzLDEzICsxNjMsMyBAQCBib29sIFdLQ29udGV4dFNob3VsZFN1Z2dlc3RCbG9ja1dlYkdMKCkK
IHsKICAgICByZXR1cm4gV0tTaG91bGRTdWdnZXN0QmxvY2tpbmdXZWJHTCgpOwogfQotCi1waWRf
dCBXS0NvbnRleHRHZXROZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIoV0tDb250ZXh0UmVmIGNvbnRl
eHRSZWYpCi17Ci0gICAgcmV0dXJuIHRvSW1wbChjb250ZXh0UmVmKS0+bmV0d29ya1Byb2Nlc3NJ
ZGVudGlmaWVyKCk7Ci19Ci0KLXBpZF90IFdLQ29udGV4dEdldERhdGFiYXNlUHJvY2Vzc0lkZW50
aWZpZXIoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYpCi17Ci0gICAgcmV0dXJuIHRvSW1wbChjb250
ZXh0UmVmKS0+ZGF0YWJhc2VQcm9jZXNzSWRlbnRpZmllcigpOwotfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL21hYy9XS1BhZ2VQcml2YXRlTWFjLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLUGFnZVByaXZhdGVNYWMuaAppbmRleCBh
NmE1NjY3Li41MWY0NDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvbWFjL1dLUGFnZVByaXZhdGVNYWMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvbWFjL1dLUGFnZVByaXZhdGVNYWMuaApAQCAtNTYsNyArNTYsNiBAQCBXS19FWFBPUlQg
X1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgKldLUGFnZUdldE9iamVjdFJlZ2lzdHJ5KFdLUGFnZVJl
ZiBwYWdlKTsKIAogI2VuZGlmCiAKLVdLX0VYUE9SVCBwaWRfdCBXS1BhZ2VHZXRQcm9jZXNzSWRl
bnRpZmllcihXS1BhZ2VSZWYgcGFnZSk7CiBXS19FWFBPUlQgYm9vbCBXS1BhZ2VJc1VSTEtub3du
SFNUU0hvc3QoV0tQYWdlUmVmIHBhZ2UsIFdLVVJMUmVmIHVybCk7CiAKICNpZiBUQVJHRVRfT1Nf
TUFDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLUGFn
ZVByaXZhdGVNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLUGFn
ZVByaXZhdGVNYWMubW0KaW5kZXggNGY5ZDJlOS4uMjdiMTY2ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL21hYy9XS1BhZ2VQcml2YXRlTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9tYWMvV0tQYWdlUHJpdmF0ZU1hYy5tbQpAQCAt
MTE2LDExICsxMTYsNiBAQCBfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSAqV0tQYWdlR2V0T2JqZWN0
UmVnaXN0cnkoV0tQYWdlUmVmIHBhZ2VSZWYpCiAjZW5kaWYKIH0KIAotcGlkX3QgV0tQYWdlR2V0
UHJvY2Vzc0lkZW50aWZpZXIoV0tQYWdlUmVmIHBhZ2VSZWYpCi17Ci0gICAgcmV0dXJuIHRvSW1w
bChwYWdlUmVmKS0+cHJvY2Vzc0lkZW50aWZpZXIoKTsKLX0KLQogYm9vbCBXS1BhZ2VJc1VSTEtu
b3duSFNUU0hvc3QoV0tQYWdlUmVmIHBhZ2UsIFdLVVJMUmVmIHVybCkKIHsKICAgICBXZWJQYWdl
UHJveHkqIHdlYlBhZ2VQcm94eSA9IHRvSW1wbChwYWdlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjN2YxYzkzLi4xMmRiMTg1IDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMg
QEAKKzIwMTYtMDctMjIgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgor
CisgICAgICAgIEltcHJvdmUgR0RCIGJhY2t0cmFjZSBnZW5lcmF0aW9uIGZvciBHVEsvRUZMCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjg5MjgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBDYXJsb3MgR2FyY2lhIENhbXBvcy4KKworICAgICAgICBUaGUg
UElEIG9mIHRoZSBjcmFzaGVkIHByb2Nlc3MgaXMgbm93IGNvcnJlY3RseSBzdXBwbGllZCB0byB0
aGUKKyAgICAgICAgY3Jhc2ggbG9nIHJlcG9ydGVyLiBUaGUga2VybmVsIGNvcmVfcGF0dGVybiBu
ZWVkcyB0byBiZSB1cGRhdGVkCisgICAgICAgIGFmdGVyIHRoaXMgY2hhbmdlIHRvIHNvbWV0aGlu
ZyBsaWtlOgorCisgICAgICAgIGVjaG8gInwvaG9tZS9waGlsL1dlYktpdC9Ub29scy9TY3JpcHRz
L3Byb2Nlc3MtbGludXgtY29yZWR1bXAgL3RtcC9jb3JlLXBpZF8lcC5kdW1wIiA+IC9wcm9jL3N5
cy9rZXJuZWwvY29yZV9wYXR0ZXJuCisKKyAgICAgICAgKiBTY3JpcHRzL3Byb2Nlc3MtbGludXgt
Y29yZWR1bXA6IEFkZGVkLgorICAgICAgICAobWFpbik6IE1pbmltYWwgcHl0aG9uIHNjcmlwdCBy
ZWFkaW5nIGNvcmVkdW1wIGRhdGEgb24gc3RkaW4gYW5kIHdyaXRpbmcgaXQgdG8gYSBmaWxlIGlu
IC90bXAvLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9lZmwucHk6CisgICAgICAg
IChFZmxQb3J0Ll9nZXRfY3Jhc2hfbG9nKTogU3VwcGx5IHBhdGggb2YgdGhlIHByb2Nlc3MtbGlu
dXgtY29yZWR1bXAgc2NyaXB0LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9ndGsu
cHk6CisgICAgICAgIChHdGtQb3J0Ll9nZXRfY3Jhc2hfbG9nKTogRGl0dG8uCisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9wb3J0L2xpbnV4X2dldF9jcmFzaF9sb2cucHk6CisgICAgICAgIChH
REJDcmFzaExvZ0dlbmVyYXRvci5fX2luaXRfXyk6IE5ldyBhcmd1bWVudCBmb3Igc3VwcGx5aW5n
IHRoZSBwYXRoIG9mIGEgY29yZWR1bXAgcHJvY2Vzc29yIHNjcmlwdC4KKyAgICAgICAgKEdEQkNy
YXNoTG9nR2VuZXJhdG9yLmdlbmVyYXRlX2NyYXNoX2xvZyk6IFVwZGF0ZSBlcnJvciBtZXNzYWdl
LCB0aGUgY29yZV9wYXR0ZXJuIHNob3VsZCBub3cgYmUgc2V0IHRvIHBpcGUgY29yZWR1bXBzIHRv
IGEgc2NyaXB0LgorICAgICAgICAoR0RCQ3Jhc2hMb2dHZW5lcmF0b3IpOiBEZWxldGVkLgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9saW51eF9nZXRfY3Jhc2hfbG9nX3VuaXR0ZXN0
LnB5OgorICAgICAgICAoR0RCQ3Jhc2hMb2dHZW5lcmF0b3JUZXN0LnRlc3RfZ2VuZXJhdGVfY3Jh
c2hfbG9nKTogVXBkYXRlIHRlc3QgZXhwZWN0YXRpb25zLgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6
bmV0d29ya1Byb2Nlc3NEaWRDcmFzaCk6IFN1cHBseSBQSUQgb2YgY3Jhc2ggcHJvY2Vzcy4KKyAg
ICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmRhdGFiYXNlUHJvY2Vzc0RpZENyYXNoKTogRGl0
dG8uCisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpwcm9jZXNzRGlkQ3Jhc2gpOiBEaXR0
by4KKwogMjAxNi0wNy0yMSAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtNYWNdIHdlYmtpdGRpcnMucG0gY29udGFpbnMgdW51c2VkIGNvZGUgdG8gc3VwcG9ydCBv
dXRkYXRlZCBPUyBYIGFuZCBYY29kZSB2ZXJzaW9ucwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy9wcm9jZXNzLWxpbnV4LWNvcmVkdW1wIGIvVG9vbHMvU2NyaXB0cy9wcm9jZXNzLWxpbnV4LWNv
cmVkdW1wCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjA1ODg1NTEKLS0tIC9k
ZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3Byb2Nlc3MtbGludXgtY29yZWR1bXAKQEAgLTAs
MCArMSwzNiBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjIENvcHlyaWdodCAoQykgMjAxNiBJ
Z2FsaWEgUy5MLgorIworIyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisjIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisjIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisjIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyMgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorIyBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjEx
MC0xMzAxICBVU0EKKworaW1wb3J0IG9zCitpbXBvcnQgc3lzCisKKyMgVGhpcyBzY3JpcHQgaXMg
bWVhbnQgdG8gYmUgaW52b2tlZCBieSB0aGUga2VybmVsJ3MgY29yZV9wYXR0ZXJuIGhvb2suIEl0
CisjIHRha2VzIG9uZSBhcmd1bWVudCBvbiBjb21tYW5kLWxpbmU6IHRoZSBmdWxsIHBhdGggb2Yg
dGhlIGNvcmVkdW1wIGZpbGUgdG8KKyMgd2hpY2ggdGhlIGNvcmVkdW1wIGRhdGEgc2hvdWxkIGJl
IHNhdmVkLgorCitkZWYgbWFpbihmdWxsX3BhdGgpOgorICAgIGNvcmVkdW1wID0gb3BlbihmdWxs
X3BhdGgsICd3YicpCisgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgZGF0YSA9IHN5cy5zdGRpbi5y
ZWFkKCkKKyAgICAgICAgaWYgbm90IGRhdGE6CisgICAgICAgICAgICBicmVhaworICAgICAgICBj
b3JlZHVtcC53cml0ZShkYXRhKQorICAgIGNvcmVkdW1wLmNsb3NlKCkKKyAgICByZXR1cm4gMAor
CitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIHN5cy5leGl0KG1haW4oKnN5cy5hcmd2
WzE6XSkpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZWZsLnB5IGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2VmbC5weQppbmRleCA0MTYxYWU4Li5hOTAwYjNj
IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZWZsLnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9lZmwucHkKQEAgLTE0Miw3ICsxNDIsNyBAQCBjbGFz
cyBFZmxQb3J0KFBvcnQpOgogICAgICAgICByZXR1cm4gY29tbWFuZAogCiAgICAgZGVmIF9nZXRf
Y3Jhc2hfbG9nKHNlbGYsIG5hbWUsIHBpZCwgc3Rkb3V0LCBzdGRlcnIsIG5ld2VyX3RoYW4pOgot
ICAgICAgICByZXR1cm4gR0RCQ3Jhc2hMb2dHZW5lcmF0b3IobmFtZSwgcGlkLCBuZXdlcl90aGFu
LCBzZWxmLl9maWxlc3lzdGVtLCBzZWxmLl9wYXRoX3RvX2RyaXZlcikuZ2VuZXJhdGVfY3Jhc2hf
bG9nKHN0ZG91dCwgc3RkZXJyKQorICAgICAgICByZXR1cm4gR0RCQ3Jhc2hMb2dHZW5lcmF0b3Io
bmFtZSwgcGlkLCBuZXdlcl90aGFuLCBzZWxmLl9maWxlc3lzdGVtLCBzZWxmLnBhdGhfdG9fc2Ny
aXB0KCJwcm9jZXNzLWxpbnV4LWNvcmVkdW1wIiksIHNlbGYuX3BhdGhfdG9fZHJpdmVyKS5nZW5l
cmF0ZV9jcmFzaF9sb2coc3Rkb3V0LCBzdGRlcnIpCiAKICAgICBkZWYgdGVzdF9leHBlY3RhdGlv
bnNfZmlsZV9wb3NpdGlvbihzZWxmKToKICAgICAgICAgIyBFRkwgcG9ydCBiYXNlbGluZSBzZWFy
Y2ggcGF0aCBpcyBlZmwgLT4gd2syIC0+IGdlbmVyaWMgKGFzIGVmbC13azIgYW5kIGVmbCBiYXNl
bGluZXMgYXJlIG1lcmdlZCksIHNvIHBvcnQgdGVzdCBleHBlY3RhdGlvbnMgZmlsZSBpcyBhdCB0
aGlyZCB0byBsYXN0IHBvc2l0aW9uLgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9wb3J0L2d0ay5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9ndGsucHkKaW5kZXgg
MjhiNzlkZC4uYzYzMDJmMSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0
L2d0ay5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZ3RrLnB5CkBAIC0yMTYs
NyArMjE2LDcgQEAgY2xhc3MgR3RrUG9ydChQb3J0KToKIAogICAgIGRlZiBfZ2V0X2NyYXNoX2xv
ZyhzZWxmLCBuYW1lLCBwaWQsIHN0ZG91dCwgc3RkZXJyLCBuZXdlcl90aGFuKToKICAgICAgICAg
bmFtZSA9ICJXZWJLaXRXZWJQcm9jZXNzIiBpZiBuYW1lID09ICJXZWJQcm9jZXNzIiBlbHNlIG5h
bWUKLSAgICAgICAgcmV0dXJuIEdEQkNyYXNoTG9nR2VuZXJhdG9yKG5hbWUsIHBpZCwgbmV3ZXJf
dGhhbiwgc2VsZi5fZmlsZXN5c3RlbSwgc2VsZi5fcGF0aF90b19kcml2ZXIpLmdlbmVyYXRlX2Ny
YXNoX2xvZyhzdGRvdXQsIHN0ZGVycikKKyAgICAgICAgcmV0dXJuIEdEQkNyYXNoTG9nR2VuZXJh
dG9yKG5hbWUsIHBpZCwgbmV3ZXJfdGhhbiwgc2VsZi5fZmlsZXN5c3RlbSwgc2VsZi5wYXRoX3Rv
X3NjcmlwdCgicHJvY2Vzcy1saW51eC1jb3JlZHVtcCIpLCBzZWxmLl9wYXRoX3RvX2RyaXZlciku
Z2VuZXJhdGVfY3Jhc2hfbG9nKHN0ZG91dCwgc3RkZXJyKQogCiAgICAgZGVmIHRlc3RfZXhwZWN0
YXRpb25zX2ZpbGVfcG9zaXRpb24oc2VsZik6CiAgICAgICAgICMgR1RLIHBvcnQgYmFzZWxpbmUg
c2VhcmNoIHBhdGggaXMgZ3RrIC0+IHdrMiAtPiBnZW5lcmljIChhcyBndGstd2syIGFuZCBndGsg
YmFzZWxpbmVzIGFyZSBtZXJnZWQpLCBzbyBwb3J0IHRlc3QgZXhwZWN0YXRpb25zIGZpbGUgaXMg
YXQgdGhpcmQgdG8gbGFzdCBwb3NpdGlvbi4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvcG9ydC9saW51eF9nZXRfY3Jhc2hfbG9nLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9wb3J0L2xpbnV4X2dldF9jcmFzaF9sb2cucHkKaW5kZXggMDM3NmY3Yy4uMTEwY2FjNiAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2xpbnV4X2dldF9jcmFzaF9sb2cu
cHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2xpbnV4X2dldF9jcmFzaF9sb2cu
cHkKQEAgLTMwLDEzICszMCwxMyBAQAogaW1wb3J0IHN1YnByb2Nlc3MKIGltcG9ydCBvcwogCi0K
IGNsYXNzIEdEQkNyYXNoTG9nR2VuZXJhdG9yKG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNl
bGYsIG5hbWUsIHBpZCwgbmV3ZXJfdGhhbiwgZmlsZXN5c3RlbSwgcGF0aF90b19kcml2ZXIpOgor
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lLCBwaWQsIG5ld2VyX3RoYW4sIGZpbGVzeXN0ZW0s
IHByb2Nlc3NfY29yZWR1bXBfc2NyaXB0X3BhdGgsIHBhdGhfdG9fZHJpdmVyKToKICAgICAgICAg
c2VsZi5uYW1lID0gbmFtZQogICAgICAgICBzZWxmLnBpZCA9IHBpZAogICAgICAgICBzZWxmLm5l
d2VyX3RoYW4gPSBuZXdlcl90aGFuCiAgICAgICAgIHNlbGYuX2ZpbGVzeXN0ZW0gPSBmaWxlc3lz
dGVtCisgICAgICAgIHNlbGYuX3Byb2Nlc3NfY29yZWR1bXBfc2NyaXB0X3BhdGggPSBwcm9jZXNz
X2NvcmVkdW1wX3NjcmlwdF9wYXRoCiAgICAgICAgIHNlbGYuX3BhdGhfdG9fZHJpdmVyID0gcGF0
aF90b19kcml2ZXIKIAogICAgIGRlZiBfZ2V0X2dkYl9vdXRwdXQoc2VsZiwgY29yZWR1bXBfcGF0
aCk6CkBAIC01Miw3ICs1Miw3IEBAIGNsYXNzIEdEQkNyYXNoTG9nR2VuZXJhdG9yKG9iamVjdCk6
CiAgICAgICAgIGxvZ19kaXJlY3RvcnkgPSBvcy5lbnZpcm9uLmdldCgiV0VCS0lUX0NPUkVfRFVN
UFNfRElSRUNUT1JZIikKICAgICAgICAgZXJyb3JzID0gW10KICAgICAgICAgY3Jhc2hfbG9nID0g
JycKLSAgICAgICAgZXhwZWN0ZWRfY3Jhc2hfZHVtcF9maWxlbmFtZSA9ICJjb3JlLXBpZF8lcy1f
LXByb2Nlc3NfJXMiICUgKHBpZF9yZXByZXNlbnRhdGlvbiwgc2VsZi5uYW1lKQorICAgICAgICBl
eHBlY3RlZF9jcmFzaF9kdW1wX2ZpbGVuYW1lID0gImNvcmUtcGlkXyVzLmR1bXAiICUgcGlkX3Jl
cHJlc2VudGF0aW9uCiAgICAgICAgIHByb2NfbmFtZSA9ICIlcyIgJSAoc2VsZi5uYW1lKQogCiAg
ICAgICAgIGRlZiBtYXRjaF9maWxlbmFtZShmaWxlc3lzdGVtLCBkaXJlY3RvcnksIGZpbGVuYW1l
KToKQEAgLTc2LDExICs3NiwxMSBAQCBjbGFzcyBHREJDcmFzaExvZ0dlbmVyYXRvcihvYmplY3Qp
OgogICAgICAgICBpZiBub3QgY3Jhc2hfbG9nOgogICAgICAgICAgICAgaWYgbm90IGxvZ19kaXJl
Y3Rvcnk6CiAgICAgICAgICAgICAgICAgbG9nX2RpcmVjdG9yeSA9ICIvcGF0aC90by9jb3JlZHVt
cHMiCi0gICAgICAgICAgICBjb3JlX3BhdHRlcm4gPSBvcy5wYXRoLmpvaW4obG9nX2RpcmVjdG9y
eSwgImNvcmUtcGlkXyVwLV8tcHJvY2Vzc18lRSIpCisgICAgICAgICAgICBwcm9jZXNzX2NvcmVk
dW1wX3NjcmlwdF9wYXRoID0gc2VsZi5fcHJvY2Vzc19jb3JlZHVtcF9zY3JpcHRfcGF0aAogICAg
ICAgICAgICAgY3Jhc2hfbG9nID0gIiIiXAogQ29yZWR1bXAgJShleHBlY3RlZF9jcmFzaF9kdW1w
X2ZpbGVuYW1lKXMgbm90IGZvdW5kLiBUbyBlbmFibGUgY3Jhc2ggbG9nczoKIAotLSBydW4gdGhp
cyBjb21tYW5kIGFzIHN1cGVyLXVzZXI6IGVjaG8gIiUoY29yZV9wYXR0ZXJuKXMiID4gL3Byb2Mv
c3lzL2tlcm5lbC9jb3JlX3BhdHRlcm4KKy0gcnVuIHRoaXMgY29tbWFuZCBhcyBzdXBlci11c2Vy
OiBlY2hvICJ8JShwcm9jZXNzX2NvcmVkdW1wX3NjcmlwdF9wYXRoKXMgJShsb2dfZGlyZWN0b3J5
KXMvY29yZS1waWRfJSVwLmR1bXAiID4gL3Byb2Mvc3lzL2tlcm5lbC9jb3JlX3BhdHRlcm4KIC0g
ZW5hYmxlIGNvcmUgZHVtcHM6IHVsaW1pdCAtYyB1bmxpbWl0ZWQKIC0gc2V0IHRoZSBXRUJLSVRf
Q09SRV9EVU1QU19ESVJFQ1RPUlkgZW52aXJvbm1lbnQgdmFyaWFibGU6IGV4cG9ydCBXRUJLSVRf
Q09SRV9EVU1QU19ESVJFQ1RPUlk9JShsb2dfZGlyZWN0b3J5KXMKIApkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2xpbnV4X2dldF9jcmFzaF9sb2dfdW5pdHRlc3QucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvbGludXhfZ2V0X2NyYXNoX2xvZ191bml0dGVz
dC5weQppbmRleCBjZGY5MTVmLi43MTJiZDYzIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3BvcnQvbGludXhfZ2V0X2NyYXNoX2xvZ191bml0dGVzdC5weQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3BvcnQvbGludXhfZ2V0X2NyYXNoX2xvZ191bml0dGVzdC5weQpAQCAt
NDEsMTQgKzQxLDE1IEBAIGNsYXNzIEdEQkNyYXNoTG9nR2VuZXJhdG9yVGVzdCh1bml0dGVzdC5U
ZXN0Q2FzZSk6CiAgICAgICAgIGlmIHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCd3aW4nKToKICAg
ICAgICAgICAgIHJldHVybgogCi0gICAgICAgIGdlbmVyYXRvciA9IEdEQkNyYXNoTG9nR2VuZXJh
dG9yKCdEdW1wUmVuZGVyVHJlZScsIDI4NTI5LCBuZXdlcl90aGFuPU5vbmUsIGZpbGVzeXN0ZW09
TW9ja0ZpbGVTeXN0ZW0oeycvcGF0aC90by9jb3JlZHVtcHMnOiAnJ30pLCBwYXRoX3RvX2RyaXZl
cj1Ob25lKQorICAgICAgICBwcm9jZXNzX2NvcmVkdW1wX3NjcmlwdF9wYXRoID0gIi9wYXRoL3Rv
L2NvcmVkdW1wLXByb2Nlc3NvciIKKyAgICAgICAgZ2VuZXJhdG9yID0gR0RCQ3Jhc2hMb2dHZW5l
cmF0b3IoJ0R1bXBSZW5kZXJUcmVlJywgMjg1MjksIG5ld2VyX3RoYW49Tm9uZSwgZmlsZXN5c3Rl
bT1Nb2NrRmlsZVN5c3RlbSh7Jy9wYXRoL3RvL2NvcmVkdW1wcyc6ICcnfSksIHByb2Nlc3NfY29y
ZWR1bXBfc2NyaXB0X3BhdGg9cHJvY2Vzc19jb3JlZHVtcF9zY3JpcHRfcGF0aCwgcGF0aF90b19k
cml2ZXI9Tm9uZSkKIAogICAgICAgICBjb3JlX2RpcmVjdG9yeSA9IG9zLmVudmlyb24uZ2V0KCdX
RUJLSVRfQ09SRV9EVU1QU19ESVJFQ1RPUlknLCAnL3BhdGgvdG8vY29yZWR1bXBzJykKLSAgICAg
ICAgY29yZV9wYXR0ZXJuID0gb3MucGF0aC5qb2luKGNvcmVfZGlyZWN0b3J5LCAiY29yZS1waWRf
JXAtXy1wcm9jZXNzXyVFIikKKyAgICAgICAgY29yZV9wYXR0ZXJuID0gInwlcyAvcGF0aC90by9j
b3JlZHVtcHMvY29yZS1waWRfJSVwLmR1bXAiICUgcHJvY2Vzc19jb3JlZHVtcF9zY3JpcHRfcGF0
aAogICAgICAgICBtb2NrX2VtcHR5X2NyYXNoX2xvZyA9ICIiIlwKIGNyYXNoIGxvZyBmb3IgRHVt
cFJlbmRlclRyZWUgKHBpZCAyODUyOSk6CiAKLUNvcmVkdW1wIGNvcmUtcGlkXzI4NTI5LV8tcHJv
Y2Vzc19EdW1wUmVuZGVyVHJlZSBub3QgZm91bmQuIFRvIGVuYWJsZSBjcmFzaCBsb2dzOgorQ29y
ZWR1bXAgY29yZS1waWRfMjg1MjkuZHVtcCBub3QgZm91bmQuIFRvIGVuYWJsZSBjcmFzaCBsb2dz
OgogCiAtIHJ1biB0aGlzIGNvbW1hbmQgYXMgc3VwZXItdXNlcjogZWNobyAiJShjb3JlX3BhdHRl
cm4pcyIgPiAvcHJvYy9zeXMva2VybmVsL2NvcmVfcGF0dGVybgogLSBlbmFibGUgY29yZSBkdW1w
czogdWxpbWl0IC1jIHVubGltaXRlZApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyL21hYy9HZXRQSURBZnRlckFib3J0ZWRQcm9jZXNzTGF1bmNoLmNwcCBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9tYWMvR2V0UElEQWZ0ZXJBYm9ydGVkUHJv
Y2Vzc0xhdW5jaC5jcHAKaW5kZXggN2NkNGY3Yy4uNGYyMjYxNyAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL21hYy9HZXRQSURBZnRlckFib3J0ZWRQcm9jZXNz
TGF1bmNoLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvbWFjL0dl
dFBJREFmdGVyQWJvcnRlZFByb2Nlc3NMYXVuY2guY3BwCkBAIC0yNyw4ICsyNywxMSBAQAogI2lu
Y2x1ZGUgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1XZWJWaWV3Lmgi
CiAKLSNpbmNsdWRlIDxXZWJLaXQvV0tQYWdlUHJpdmF0ZU1hYy5oPgorI2luY2x1ZGUgPFdlYktp
dC9XS0NvbnRleHQuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tDb250ZXh0UHJpdmF0ZS5oPgorI2lu
Y2x1ZGUgPFdlYktpdC9XS1BhZ2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tQYWdlUHJpdmF0ZU1h
Yy5oPgorCiAKIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIApkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCAyODZjNTI5Li41ZTUwYzc1IDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtMTQ3OSwyMyArMTQ3OSwxNSBA
QCBXS1JldGFpblB0cjxXS1R5cGVSZWY+IFRlc3RDb250cm9sbGVyOjpnZXRJbmplY3RlZEJ1bmRs
ZUluaXRpYWxpemF0aW9uVXNlckRhdGEoKQogCiB2b2lkIFRlc3RDb250cm9sbGVyOjpuZXR3b3Jr
UHJvY2Vzc0RpZENyYXNoKCkKIHsKLSNpZiBQTEFURk9STShDT0NPQSkKICAgICBwaWRfdCBwaWQg
PSBXS0NvbnRleHRHZXROZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIobV9jb250ZXh0LmdldCgpKTsK
ICAgICBmcHJpbnRmKHN0ZGVyciwgIiNDUkFTSEVEIC0gJXMgKHBpZCAlbGQpXG4iLCBuZXR3b3Jr
UHJvY2Vzc05hbWUoKSwgc3RhdGljX2Nhc3Q8bG9uZz4ocGlkKSk7Ci0jZWxzZQotICAgIGZwcmlu
dGYoc3RkZXJyLCAiI0NSQVNIRUQgLSAlc1xuIiwgbmV0d29ya1Byb2Nlc3NOYW1lKCkpOwotI2Vu
ZGlmCiAgICAgZXhpdCgxKTsKIH0KIAogdm9pZCBUZXN0Q29udHJvbGxlcjo6ZGF0YWJhc2VQcm9j
ZXNzRGlkQ3Jhc2goKQogewotI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHBpZF90IHBpZCA9IFdL
Q29udGV4dEdldERhdGFiYXNlUHJvY2Vzc0lkZW50aWZpZXIobV9jb250ZXh0LmdldCgpKTsKICAg
ICBmcHJpbnRmKHN0ZGVyciwgIiNDUkFTSEVEIC0gJXMgKHBpZCAlbGQpXG4iLCBkYXRhYmFzZVBy
b2Nlc3NOYW1lKCksIHN0YXRpY19jYXN0PGxvbmc+KHBpZCkpOwotI2Vsc2UKLSAgICBmcHJpbnRm
KHN0ZGVyciwgIiNDUkFTSEVEIC0gJXNcbiIsIGRhdGFiYXNlUHJvY2Vzc05hbWUoKSk7Ci0jZW5k
aWYKICAgICBleGl0KDEpOwogfQogCkBAIC0xNzIyLDEyICsxNzE0LDggQEAgdm9pZCBUZXN0Q29u
dHJvbGxlcjo6cHJvY2Vzc0RpZENyYXNoKCkKICAgICAvLyBUaGlzIGZ1bmN0aW9uIGNhbiBiZSBj
YWxsZWQgbXVsdGlwbGUgdGltZXMgd2hlbiBjcmFzaCBsb2dzIGFyZSBiZWluZyBzYXZlZCBvbiBX
aW5kb3dzLCBzbwogICAgIC8vIGVuc3VyZSB3ZSBvbmx5IHByaW50IHRoZSBjcmFzaGVkIG1lc3Nh
Z2Ugb25jZS4KICAgICBpZiAoIW1fZGlkUHJpbnRXZWJQcm9jZXNzQ3Jhc2hlZE1lc3NhZ2UpIHsK
LSNpZiBQTEFURk9STShDT0NPQSkKICAgICAgICAgcGlkX3QgcGlkID0gV0tQYWdlR2V0UHJvY2Vz
c0lkZW50aWZpZXIobV9tYWluV2ViVmlldy0+cGFnZSgpKTsKICAgICAgICAgZnByaW50ZihzdGRl
cnIsICIjQ1JBU0hFRCAtICVzIChwaWQgJWxkKVxuIiwgd2ViUHJvY2Vzc05hbWUoKSwgc3RhdGlj
X2Nhc3Q8bG9uZz4ocGlkKSk7Ci0jZWxzZQotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiNDUkFT
SEVEIC0gJXNcbiIsIHdlYlByb2Nlc3NOYW1lKCkpOwotI2VuZGlmCiAgICAgICAgIGZmbHVzaChz
dGRlcnIpOwogICAgICAgICBtX2RpZFByaW50V2ViUHJvY2Vzc0NyYXNoZWRNZXNzYWdlID0gdHJ1
ZTsKICAgICB9Ci0tIAoyLjguMQ==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284322</attachid>
            <date>2016-07-22 03:38:27 -0700</date>
            <delta_ts>2016-07-22 03:38:27 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>patch-for-landing.patch</filename>
            <type>text/plain</type>
            <size>18516</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBiMTExNzUwNmFhNjQ0ZmRkYjc5ZTFjZTk3YzkyN2U1MWVmMDljZGY4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBNb24sIDExIEp1bCAyMDE2IDE2OjMxOjQ4ICswMjAwClN1YmplY3Q6IFtQQVRDSF0g
cGF0Y2ggZm9yIGxhbmRpbmcKCi0tLQogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAyMiArKysrKysrKysrKysrCiBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcCAgICAgICB8IDEwICsrKysrKwogU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaCAgfCAgMyArKwogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgICAgICAgICAgfCAgNSArKysKIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmggICAgIHwgIDIgKysKIC4u
Li9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLQ29udGV4dFByaXZhdGVNYWMuaCAgICAgIHwgIDMgLS0K
IC4uLi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLQ29udGV4dFByaXZhdGVNYWMubW0gICAgIHwgMTAg
LS0tLS0tCiAuLi4vV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLUGFnZVByaXZhdGVNYWMu
aCB8ICAxIC0KIC4uLi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLUGFnZVByaXZhdGVNYWMubW0gICAg
ICAgIHwgIDUgLS0tCiBUb29scy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8IDMwICsrKysrKysrKysrKysrKysrKwogVG9vbHMvU2NyaXB0cy9wcm9jZXNzLWxp
bnV4LWNvcmVkdW1wICAgICAgICAgICAgICAgfCAzNiArKysrKysrKysrKysrKysrKysrKysrCiBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZWZsLnB5ICAgICAgICAgICAgICAgICB8ICAyICst
CiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZ3RrLnB5ICAgICAgICAgICAgICAgICB8ICAy
ICstCiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvbGludXhfZ2V0X2NyYXNoX2xvZy5weSB8
IDEwICsrKy0tLQogLi4uL3dlYmtpdHB5L3BvcnQvbGludXhfZ2V0X2NyYXNoX2xvZ191bml0dGVz
dC5weSAgfCAgNyArKystLQogLi4uL21hYy9HZXRQSURBZnRlckFib3J0ZWRQcm9jZXNzTGF1bmNo
LmNwcCAgICAgICAgfCAgMyArLQogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5jcHAgICAgICAgICAgfCAxMiAtLS0tLS0tLQogMTcgZmlsZXMgY2hhbmdlZCwgMTIxIGluc2Vy
dGlvbnMoKyksIDQyIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNzU1IFRvb2xzL1Njcmlw
dHMvcHJvY2Vzcy1saW51eC1jb3JlZHVtcAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAzZWNmYTkwLi4xY2I2ODlh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTYtMDctMjIgIFBoaWxpcHBlIE5vcm1h
bmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIEltcHJvdmUgR0RCIGJhY2t0cmFj
ZSBnZW5lcmF0aW9uIGZvciBHVEsvRUZMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjg5MjgKKworICAgICAgICBSZXZpZXdlZCBieSBDYXJsb3MgR2Fy
Y2lhIENhbXBvcy4KKworICAgICAgICBNb3ZlIHRoZSBXZWIsIERhdGFiYXNlIGFuZCBOZXR3b3Jr
IFByb2Nlc3NJZGVudGlmaWVyIGZ1bmN0aW9ucyB0bworICAgICAgICB0aGUgY3Jvc3MtcGxhdGZv
cm0gV0tDb250ZXh0IGFuZCBXS1BhZ2UgaW1wbGVtZW50YXRpb25zLgorCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHA6CisgICAgICAgIChXS0NvbnRleHRHZXROZXR3b3Jr
UHJvY2Vzc0lkZW50aWZpZXIpOgorICAgICAgICAoV0tDb250ZXh0R2V0RGF0YWJhc2VQcm9jZXNz
SWRlbnRpZmllcik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcDoKKyAgICAgICAgKFdLUGFn
ZUdldFByb2Nlc3NJZGVudGlmaWVyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdl
UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9tYWMvV0tDb250ZXh0UHJpdmF0
ZU1hYy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9tYWMvV0tDb250ZXh0UHJpdmF0ZU1h
Yy5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvbWFjL1dLUGFnZVByaXZhdGVNYWMuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvbWFjL1dLUGFnZVByaXZhdGVNYWMubW06CisKIDIw
MTYtMDctMjEgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZW1vdmUgc3VwcG9ydCBmb3IgZGVwcmVjYXRlZCBTUEkgaW5saW5lTWVkaWFQbGF5YmFj
a1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLQ29udGV4dC5jcHAKaW5kZXggNWNmMGJjYS4uMDMxMzQxYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKQEAgLTU3MiwzICs1NzIsMTMg
QEAgdm9pZCBXS0NvbnRleHRTZXRGb250V2hpdGVsaXN0KFdLQ29udGV4dFJlZiBjb250ZXh0UmVm
LCBXS0FycmF5UmVmIGFycmF5UmVmKQogewogICAgIHRvSW1wbChjb250ZXh0UmVmKS0+c2V0Rm9u
dFdoaXRlbGlzdCh0b0ltcGwoYXJyYXlSZWYpKTsKIH0KKworcGlkX3QgV0tDb250ZXh0R2V0TmV0
d29ya1Byb2Nlc3NJZGVudGlmaWVyKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmKQoreworICAgIHJl
dHVybiB0b0ltcGwoY29udGV4dFJlZiktPm5ldHdvcmtQcm9jZXNzSWRlbnRpZmllcigpOworfQor
CitwaWRfdCBXS0NvbnRleHRHZXREYXRhYmFzZVByb2Nlc3NJZGVudGlmaWVyKFdLQ29udGV4dFJl
ZiBjb250ZXh0UmVmKQoreworICAgIHJldHVybiB0b0ltcGwoY29udGV4dFJlZiktPmRhdGFiYXNl
UHJvY2Vzc0lkZW50aWZpZXIoKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tDb250ZXh0UHJpdmF0ZS5oCmluZGV4IGU4YzkwNTEuLjY3NDJmZmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaApAQCAt
OTQsNiArOTQsOSBAQCBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRTZXRNZW1vcnlDYWNoZURpc2Fi
bGVkKFdLQ29udGV4dFJlZiwgYm9vbCBkaXNhYmxlZCk7CiAKIFdLX0VYUE9SVCB2b2lkIFdLQ29u
dGV4dFNldEZvbnRXaGl0ZWxpc3QoV0tDb250ZXh0UmVmLCBXS0FycmF5UmVmKTsKIAorV0tfRVhQ
T1JUIHBpZF90IFdLQ29udGV4dEdldE5ldHdvcmtQcm9jZXNzSWRlbnRpZmllcihXS0NvbnRleHRS
ZWYgY29udGV4dCk7CitXS19FWFBPUlQgcGlkX3QgV0tDb250ZXh0R2V0RGF0YWJhc2VQcm9jZXNz
SWRlbnRpZmllcihXS0NvbnRleHRSZWYgY29udGV4dCk7CisKICNpZmRlZiBfX2NwbHVzcGx1cwog
fQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4
IDMxZWNkNmQuLmYzOWI4ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2UuY3BwCkBAIC0yNzUyLDYgKzI3NTIsMTEgQEAgdm9pZCBXS1BhZ2VTZXRJZ25vcmVzVmlld3Bv
cnRTY2FsZUxpbWl0cyhXS1BhZ2VSZWYgcGFnZSwgYm9vbCBpZ25vcmVzVmlld3BvcnRTY2EKICNl
bmRpZgogfQogCitwaWRfdCBXS1BhZ2VHZXRQcm9jZXNzSWRlbnRpZmllcihXS1BhZ2VSZWYgcGFn
ZSkKK3sKKyAgICByZXR1cm4gdG9JbXBsKHBhZ2UpLT5wcm9jZXNzSWRlbnRpZmllcigpOworfQor
CiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAKIC8vIC0tIERFUFJFQ0FURUQgLS0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRl
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oCmluZGV4
IDFhODM4Y2EuLjQ5NDBlOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2VQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZVByaXZhdGUuaApAQCAtMTQ5LDYgKzE0OSw4IEBAIFdLX0VYUE9SVCB2b2lkIFdLUGFn
ZVJlc3RvcmVGcm9tU2Vzc2lvblN0YXRlV2l0aG91dE5hdmlnYXRpb24oV0tQYWdlUmVmIHBhZ2Us
IFdLCiAKIFdLX0VYUE9SVCB2b2lkIFdLUGFnZVNldElnbm9yZXNWaWV3cG9ydFNjYWxlTGltaXRz
KFdLUGFnZVJlZiBwYWdlLCBib29sIGlnbm9yZXNWaWV3cG9ydFNjYWxlTGltaXRzKTsKIAorV0tf
RVhQT1JUIHBpZF90IFdLUGFnZUdldFByb2Nlc3NJZGVudGlmaWVyKFdLUGFnZVJlZiBwYWdlKTsK
KwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9tYWMvV0tDb250ZXh0UHJpdmF0ZU1hYy5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL21hYy9XS0NvbnRleHRQcml2YXRlTWFjLmgKaW5kZXggMTYx
MWQ5My4uZjVkZGVkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L21hYy9XS0NvbnRleHRQcml2YXRlTWFjLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL21hYy9XS0NvbnRleHRQcml2YXRlTWFjLmgKQEAgLTc3LDkgKzc3LDYgQEAgV0tfRVhQ
T1JUIFdLU3RyaW5nUmVmIFdLUGx1Z0luSW5mb0lzU2FuZGJveGVkS2V5KCk7CiBXS19FWFBPUlQg
Ym9vbCBXS0NvbnRleHRTaG91bGRCbG9ja1dlYkdMKCk7CiBXS19FWFBPUlQgYm9vbCBXS0NvbnRl
eHRTaG91bGRTdWdnZXN0QmxvY2tXZWJHTCgpOwogCi1XS19FWFBPUlQgcGlkX3QgV0tDb250ZXh0
R2V0TmV0d29ya1Byb2Nlc3NJZGVudGlmaWVyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKLVdLX0VY
UE9SVCBwaWRfdCBXS0NvbnRleHRHZXREYXRhYmFzZVByb2Nlc3NJZGVudGlmaWVyKFdLQ29udGV4
dFJlZiBjb250ZXh0KTsKLQogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9tYWMvV0tDb250ZXh0UHJpdmF0ZU1h
Yy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9tYWMvV0tDb250ZXh0UHJpdmF0
ZU1hYy5tbQppbmRleCBhNTg5MTA0Li5iMjU4NjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLQ29udGV4dFByaXZhdGVNYWMubW0KKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL21hYy9XS0NvbnRleHRQcml2YXRlTWFjLm1tCkBAIC0x
NjMsMTMgKzE2MywzIEBAIGJvb2wgV0tDb250ZXh0U2hvdWxkU3VnZ2VzdEJsb2NrV2ViR0woKQog
ewogICAgIHJldHVybiBXS1Nob3VsZFN1Z2dlc3RCbG9ja2luZ1dlYkdMKCk7CiB9Ci0KLXBpZF90
IFdLQ29udGV4dEdldE5ldHdvcmtQcm9jZXNzSWRlbnRpZmllcihXS0NvbnRleHRSZWYgY29udGV4
dFJlZikKLXsKLSAgICByZXR1cm4gdG9JbXBsKGNvbnRleHRSZWYpLT5uZXR3b3JrUHJvY2Vzc0lk
ZW50aWZpZXIoKTsKLX0KLQotcGlkX3QgV0tDb250ZXh0R2V0RGF0YWJhc2VQcm9jZXNzSWRlbnRp
ZmllcihXS0NvbnRleHRSZWYgY29udGV4dFJlZikKLXsKLSAgICByZXR1cm4gdG9JbXBsKGNvbnRl
eHRSZWYpLT5kYXRhYmFzZVByb2Nlc3NJZGVudGlmaWVyKCk7Ci19CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLUGFnZVByaXZhdGVNYWMuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9tYWMvV0tQYWdlUHJpdmF0ZU1hYy5oCmluZGV4IGE2
YTU2NjcuLjUxZjQ0MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9tYWMvV0tQYWdlUHJpdmF0ZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9tYWMvV0tQYWdlUHJpdmF0ZU1hYy5oCkBAIC01Niw3ICs1Niw2IEBAIFdLX0VYUE9SVCBf
V0tSZW1vdGVPYmplY3RSZWdpc3RyeSAqV0tQYWdlR2V0T2JqZWN0UmVnaXN0cnkoV0tQYWdlUmVm
IHBhZ2UpOwogCiAjZW5kaWYKIAotV0tfRVhQT1JUIHBpZF90IFdLUGFnZUdldFByb2Nlc3NJZGVu
dGlmaWVyKFdLUGFnZVJlZiBwYWdlKTsKIFdLX0VYUE9SVCBib29sIFdLUGFnZUlzVVJMS25vd25I
U1RTSG9zdChXS1BhZ2VSZWYgcGFnZSwgV0tVUkxSZWYgdXJsKTsKIAogI2lmIFRBUkdFVF9PU19N
QUMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9tYWMvV0tQYWdl
UHJpdmF0ZU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9tYWMvV0tQYWdl
UHJpdmF0ZU1hYy5tbQppbmRleCA0ZjlkMmU5Li4yN2IxNjZmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLUGFnZVByaXZhdGVNYWMubW0KKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL21hYy9XS1BhZ2VQcml2YXRlTWFjLm1tCkBAIC0x
MTYsMTEgKzExNiw2IEBAIF9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5ICpXS1BhZ2VHZXRPYmplY3RS
ZWdpc3RyeShXS1BhZ2VSZWYgcGFnZVJlZikKICNlbmRpZgogfQogCi1waWRfdCBXS1BhZ2VHZXRQ
cm9jZXNzSWRlbnRpZmllcihXS1BhZ2VSZWYgcGFnZVJlZikKLXsKLSAgICByZXR1cm4gdG9JbXBs
KHBhZ2VSZWYpLT5wcm9jZXNzSWRlbnRpZmllcigpOwotfQotCiBib29sIFdLUGFnZUlzVVJMS25v
d25IU1RTSG9zdChXS1BhZ2VSZWYgcGFnZSwgV0tVUkxSZWYgdXJsKQogewogICAgIFdlYlBhZ2VQ
cm94eSogd2ViUGFnZVByb3h5ID0gdG9JbXBsKHBhZ2UpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGM3ZjFjOTMuLjEyZGIxODUgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBA
QAorMjAxNi0wNy0yMiAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisK
KyAgICAgICAgSW1wcm92ZSBHREIgYmFja3RyYWNlIGdlbmVyYXRpb24gZm9yIEdUSy9FRkwKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyODkyOAorCisg
ICAgICAgIFJldmlld2VkIGJ5IENhcmxvcyBHYXJjaWEgQ2FtcG9zLgorCisgICAgICAgIFRoZSBQ
SUQgb2YgdGhlIGNyYXNoZWQgcHJvY2VzcyBpcyBub3cgY29ycmVjdGx5IHN1cHBsaWVkIHRvIHRo
ZQorICAgICAgICBjcmFzaCBsb2cgcmVwb3J0ZXIuIFRoZSBrZXJuZWwgY29yZV9wYXR0ZXJuIG5l
ZWRzIHRvIGJlIHVwZGF0ZWQKKyAgICAgICAgYWZ0ZXIgdGhpcyBjaGFuZ2UgdG8gc29tZXRoaW5n
IGxpa2U6CisKKyAgICAgICAgZWNobyAifC9ob21lL3BoaWwvV2ViS2l0L1Rvb2xzL1NjcmlwdHMv
cHJvY2Vzcy1saW51eC1jb3JlZHVtcCAvdG1wL2NvcmUtcGlkXyVwLmR1bXAiID4gL3Byb2Mvc3lz
L2tlcm5lbC9jb3JlX3BhdHRlcm4KKworICAgICAgICAqIFNjcmlwdHMvcHJvY2Vzcy1saW51eC1j
b3JlZHVtcDogQWRkZWQuCisgICAgICAgIChtYWluKTogTWluaW1hbCBweXRob24gc2NyaXB0IHJl
YWRpbmcgY29yZWR1bXAgZGF0YSBvbiBzdGRpbiBhbmQgd3JpdGluZyBpdCB0byBhIGZpbGUgaW4g
L3RtcC8uCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L2VmbC5weToKKyAgICAgICAg
KEVmbFBvcnQuX2dldF9jcmFzaF9sb2cpOiBTdXBwbHkgcGF0aCBvZiB0aGUgcHJvY2Vzcy1saW51
eC1jb3JlZHVtcCBzY3JpcHQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L2d0ay5w
eToKKyAgICAgICAgKEd0a1BvcnQuX2dldF9jcmFzaF9sb2cpOiBEaXR0by4KKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L3BvcnQvbGludXhfZ2V0X2NyYXNoX2xvZy5weToKKyAgICAgICAgKEdE
QkNyYXNoTG9nR2VuZXJhdG9yLl9faW5pdF9fKTogTmV3IGFyZ3VtZW50IGZvciBzdXBwbHlpbmcg
dGhlIHBhdGggb2YgYSBjb3JlZHVtcCBwcm9jZXNzb3Igc2NyaXB0LgorICAgICAgICAoR0RCQ3Jh
c2hMb2dHZW5lcmF0b3IuZ2VuZXJhdGVfY3Jhc2hfbG9nKTogVXBkYXRlIGVycm9yIG1lc3NhZ2Us
IHRoZSBjb3JlX3BhdHRlcm4gc2hvdWxkIG5vdyBiZSBzZXQgdG8gcGlwZSBjb3JlZHVtcHMgdG8g
YSBzY3JpcHQuCisgICAgICAgIChHREJDcmFzaExvZ0dlbmVyYXRvcik6IERlbGV0ZWQuCisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L2xpbnV4X2dldF9jcmFzaF9sb2dfdW5pdHRlc3Qu
cHk6CisgICAgICAgIChHREJDcmFzaExvZ0dlbmVyYXRvclRlc3QudGVzdF9nZW5lcmF0ZV9jcmFz
aF9sb2cpOiBVcGRhdGUgdGVzdCBleHBlY3RhdGlvbnMuCisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpu
ZXR3b3JrUHJvY2Vzc0RpZENyYXNoKTogU3VwcGx5IFBJRCBvZiBjcmFzaCBwcm9jZXNzLgorICAg
ICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6ZGF0YWJhc2VQcm9jZXNzRGlkQ3Jhc2gpOiBEaXR0
by4KKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnByb2Nlc3NEaWRDcmFzaCk6IERpdHRv
LgorCiAyMDE2LTA3LTIxICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAg
ICAgW01hY10gd2Via2l0ZGlycy5wbSBjb250YWlucyB1bnVzZWQgY29kZSB0byBzdXBwb3J0IG91
dGRhdGVkIE9TIFggYW5kIFhjb2RlIHZlcnNpb25zCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3Byb2Nlc3MtbGludXgtY29yZWR1bXAgYi9Ub29scy9TY3JpcHRzL3Byb2Nlc3MtbGludXgtY29y
ZWR1bXAKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDU4ODU1MQotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvcHJvY2Vzcy1saW51eC1jb3JlZHVtcApAQCAtMCww
ICsxLDM2IEBACisjIS91c3IvYmluL2VudiBweXRob24KKyMgQ29weXJpZ2h0IChDKSAyMDE2IEln
YWxpYSBTLkwuCisjCisjIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworIyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyMgdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyMgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KKyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworIyBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisjIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEw
LTEzMDEgIFVTQQorCitpbXBvcnQgb3MKK2ltcG9ydCBzeXMKKworIyBUaGlzIHNjcmlwdCBpcyBt
ZWFudCB0byBiZSBpbnZva2VkIGJ5IHRoZSBrZXJuZWwncyBjb3JlX3BhdHRlcm4gaG9vay4gSXQK
KyMgdGFrZXMgb25lIGFyZ3VtZW50IG9uIGNvbW1hbmQtbGluZTogdGhlIGZ1bGwgcGF0aCBvZiB0
aGUgY29yZWR1bXAgZmlsZSB0bworIyB3aGljaCB0aGUgY29yZWR1bXAgZGF0YSBzaG91bGQgYmUg
c2F2ZWQuCisKK2RlZiBtYWluKGZ1bGxfcGF0aCk6CisgICAgY29yZWR1bXAgPSBvcGVuKGZ1bGxf
cGF0aCwgJ3diJykKKyAgICB3aGlsZSBUcnVlOgorICAgICAgICBkYXRhID0gc3lzLnN0ZGluLnJl
YWQoKQorICAgICAgICBpZiBub3QgZGF0YToKKyAgICAgICAgICAgIGJyZWFrCisgICAgICAgIGNv
cmVkdW1wLndyaXRlKGRhdGEpCisgICAgY29yZWR1bXAuY2xvc2UoKQorICAgIHJldHVybiAwCisK
K2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgc3lzLmV4aXQobWFpbigqc3lzLmFyZ3Zb
MTpdKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9lZmwucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZWZsLnB5CmluZGV4IDQxNjFhZTguLmE5MDBiM2Mg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9lZmwucHkKKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2VmbC5weQpAQCAtMTQyLDcgKzE0Miw3IEBAIGNsYXNz
IEVmbFBvcnQoUG9ydCk6CiAgICAgICAgIHJldHVybiBjb21tYW5kCiAKICAgICBkZWYgX2dldF9j
cmFzaF9sb2coc2VsZiwgbmFtZSwgcGlkLCBzdGRvdXQsIHN0ZGVyciwgbmV3ZXJfdGhhbik6Ci0g
ICAgICAgIHJldHVybiBHREJDcmFzaExvZ0dlbmVyYXRvcihuYW1lLCBwaWQsIG5ld2VyX3RoYW4s
IHNlbGYuX2ZpbGVzeXN0ZW0sIHNlbGYuX3BhdGhfdG9fZHJpdmVyKS5nZW5lcmF0ZV9jcmFzaF9s
b2coc3Rkb3V0LCBzdGRlcnIpCisgICAgICAgIHJldHVybiBHREJDcmFzaExvZ0dlbmVyYXRvcihu
YW1lLCBwaWQsIG5ld2VyX3RoYW4sIHNlbGYuX2ZpbGVzeXN0ZW0sIHNlbGYucGF0aF90b19zY3Jp
cHQoInByb2Nlc3MtbGludXgtY29yZWR1bXAiKSwgc2VsZi5fcGF0aF90b19kcml2ZXIpLmdlbmVy
YXRlX2NyYXNoX2xvZyhzdGRvdXQsIHN0ZGVycikKIAogICAgIGRlZiB0ZXN0X2V4cGVjdGF0aW9u
c19maWxlX3Bvc2l0aW9uKHNlbGYpOgogICAgICAgICAjIEVGTCBwb3J0IGJhc2VsaW5lIHNlYXJj
aCBwYXRoIGlzIGVmbCAtPiB3azIgLT4gZ2VuZXJpYyAoYXMgZWZsLXdrMiBhbmQgZWZsIGJhc2Vs
aW5lcyBhcmUgbWVyZ2VkKSwgc28gcG9ydCB0ZXN0IGV4cGVjdGF0aW9ucyBmaWxlIGlzIGF0IHRo
aXJkIHRvIGxhc3QgcG9zaXRpb24uCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3BvcnQvZ3RrLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2d0ay5weQppbmRleCAy
OGI3OWRkLi5jNjMwMmYxIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQv
Z3RrLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9ndGsucHkKQEAgLTIxNiw3
ICsyMTYsNyBAQCBjbGFzcyBHdGtQb3J0KFBvcnQpOgogCiAgICAgZGVmIF9nZXRfY3Jhc2hfbG9n
KHNlbGYsIG5hbWUsIHBpZCwgc3Rkb3V0LCBzdGRlcnIsIG5ld2VyX3RoYW4pOgogICAgICAgICBu
YW1lID0gIldlYktpdFdlYlByb2Nlc3MiIGlmIG5hbWUgPT0gIldlYlByb2Nlc3MiIGVsc2UgbmFt
ZQotICAgICAgICByZXR1cm4gR0RCQ3Jhc2hMb2dHZW5lcmF0b3IobmFtZSwgcGlkLCBuZXdlcl90
aGFuLCBzZWxmLl9maWxlc3lzdGVtLCBzZWxmLl9wYXRoX3RvX2RyaXZlcikuZ2VuZXJhdGVfY3Jh
c2hfbG9nKHN0ZG91dCwgc3RkZXJyKQorICAgICAgICByZXR1cm4gR0RCQ3Jhc2hMb2dHZW5lcmF0
b3IobmFtZSwgcGlkLCBuZXdlcl90aGFuLCBzZWxmLl9maWxlc3lzdGVtLCBzZWxmLnBhdGhfdG9f
c2NyaXB0KCJwcm9jZXNzLWxpbnV4LWNvcmVkdW1wIiksIHNlbGYuX3BhdGhfdG9fZHJpdmVyKS5n
ZW5lcmF0ZV9jcmFzaF9sb2coc3Rkb3V0LCBzdGRlcnIpCiAKICAgICBkZWYgdGVzdF9leHBlY3Rh
dGlvbnNfZmlsZV9wb3NpdGlvbihzZWxmKToKICAgICAgICAgIyBHVEsgcG9ydCBiYXNlbGluZSBz
ZWFyY2ggcGF0aCBpcyBndGsgLT4gd2syIC0+IGdlbmVyaWMgKGFzIGd0ay13azIgYW5kIGd0ayBi
YXNlbGluZXMgYXJlIG1lcmdlZCksIHNvIHBvcnQgdGVzdCBleHBlY3RhdGlvbnMgZmlsZSBpcyBh
dCB0aGlyZCB0byBsYXN0IHBvc2l0aW9uLgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9wb3J0L2xpbnV4X2dldF9jcmFzaF9sb2cucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3BvcnQvbGludXhfZ2V0X2NyYXNoX2xvZy5weQppbmRleCAwMzc2ZjdjLi4xMTBjYWM2IDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvbGludXhfZ2V0X2NyYXNoX2xvZy5w
eQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvbGludXhfZ2V0X2NyYXNoX2xvZy5w
eQpAQCAtMzAsMTMgKzMwLDEzIEBACiBpbXBvcnQgc3VicHJvY2VzcwogaW1wb3J0IG9zCiAKLQog
Y2xhc3MgR0RCQ3Jhc2hMb2dHZW5lcmF0b3Iob2JqZWN0KToKLSAgICBkZWYgX19pbml0X18oc2Vs
ZiwgbmFtZSwgcGlkLCBuZXdlcl90aGFuLCBmaWxlc3lzdGVtLCBwYXRoX3RvX2RyaXZlcik6Cisg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUsIHBpZCwgbmV3ZXJfdGhhbiwgZmlsZXN5c3RlbSwg
cHJvY2Vzc19jb3JlZHVtcF9zY3JpcHRfcGF0aCwgcGF0aF90b19kcml2ZXIpOgogICAgICAgICBz
ZWxmLm5hbWUgPSBuYW1lCiAgICAgICAgIHNlbGYucGlkID0gcGlkCiAgICAgICAgIHNlbGYubmV3
ZXJfdGhhbiA9IG5ld2VyX3RoYW4KICAgICAgICAgc2VsZi5fZmlsZXN5c3RlbSA9IGZpbGVzeXN0
ZW0KKyAgICAgICAgc2VsZi5fcHJvY2Vzc19jb3JlZHVtcF9zY3JpcHRfcGF0aCA9IHByb2Nlc3Nf
Y29yZWR1bXBfc2NyaXB0X3BhdGgKICAgICAgICAgc2VsZi5fcGF0aF90b19kcml2ZXIgPSBwYXRo
X3RvX2RyaXZlcgogCiAgICAgZGVmIF9nZXRfZ2RiX291dHB1dChzZWxmLCBjb3JlZHVtcF9wYXRo
KToKQEAgLTUyLDcgKzUyLDcgQEAgY2xhc3MgR0RCQ3Jhc2hMb2dHZW5lcmF0b3Iob2JqZWN0KToK
ICAgICAgICAgbG9nX2RpcmVjdG9yeSA9IG9zLmVudmlyb24uZ2V0KCJXRUJLSVRfQ09SRV9EVU1Q
U19ESVJFQ1RPUlkiKQogICAgICAgICBlcnJvcnMgPSBbXQogICAgICAgICBjcmFzaF9sb2cgPSAn
JwotICAgICAgICBleHBlY3RlZF9jcmFzaF9kdW1wX2ZpbGVuYW1lID0gImNvcmUtcGlkXyVzLV8t
cHJvY2Vzc18lcyIgJSAocGlkX3JlcHJlc2VudGF0aW9uLCBzZWxmLm5hbWUpCisgICAgICAgIGV4
cGVjdGVkX2NyYXNoX2R1bXBfZmlsZW5hbWUgPSAiY29yZS1waWRfJXMuZHVtcCIgJSBwaWRfcmVw
cmVzZW50YXRpb24KICAgICAgICAgcHJvY19uYW1lID0gIiVzIiAlIChzZWxmLm5hbWUpCiAKICAg
ICAgICAgZGVmIG1hdGNoX2ZpbGVuYW1lKGZpbGVzeXN0ZW0sIGRpcmVjdG9yeSwgZmlsZW5hbWUp
OgpAQCAtNzYsMTEgKzc2LDExIEBAIGNsYXNzIEdEQkNyYXNoTG9nR2VuZXJhdG9yKG9iamVjdCk6
CiAgICAgICAgIGlmIG5vdCBjcmFzaF9sb2c6CiAgICAgICAgICAgICBpZiBub3QgbG9nX2RpcmVj
dG9yeToKICAgICAgICAgICAgICAgICBsb2dfZGlyZWN0b3J5ID0gIi9wYXRoL3RvL2NvcmVkdW1w
cyIKLSAgICAgICAgICAgIGNvcmVfcGF0dGVybiA9IG9zLnBhdGguam9pbihsb2dfZGlyZWN0b3J5
LCAiY29yZS1waWRfJXAtXy1wcm9jZXNzXyVFIikKKyAgICAgICAgICAgIHByb2Nlc3NfY29yZWR1
bXBfc2NyaXB0X3BhdGggPSBzZWxmLl9wcm9jZXNzX2NvcmVkdW1wX3NjcmlwdF9wYXRoCiAgICAg
ICAgICAgICBjcmFzaF9sb2cgPSAiIiJcCiBDb3JlZHVtcCAlKGV4cGVjdGVkX2NyYXNoX2R1bXBf
ZmlsZW5hbWUpcyBub3QgZm91bmQuIFRvIGVuYWJsZSBjcmFzaCBsb2dzOgogCi0tIHJ1biB0aGlz
IGNvbW1hbmQgYXMgc3VwZXItdXNlcjogZWNobyAiJShjb3JlX3BhdHRlcm4pcyIgPiAvcHJvYy9z
eXMva2VybmVsL2NvcmVfcGF0dGVybgorLSBydW4gdGhpcyBjb21tYW5kIGFzIHN1cGVyLXVzZXI6
IGVjaG8gInwlKHByb2Nlc3NfY29yZWR1bXBfc2NyaXB0X3BhdGgpcyAlKGxvZ19kaXJlY3Rvcnkp
cy9jb3JlLXBpZF8lJXAuZHVtcCIgPiAvcHJvYy9zeXMva2VybmVsL2NvcmVfcGF0dGVybgogLSBl
bmFibGUgY29yZSBkdW1wczogdWxpbWl0IC1jIHVubGltaXRlZAogLSBzZXQgdGhlIFdFQktJVF9D
T1JFX0RVTVBTX0RJUkVDVE9SWSBlbnZpcm9ubWVudCB2YXJpYWJsZTogZXhwb3J0IFdFQktJVF9D
T1JFX0RVTVBTX0RJUkVDVE9SWT0lKGxvZ19kaXJlY3RvcnkpcwogCmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvbGludXhfZ2V0X2NyYXNoX2xvZ191bml0dGVzdC5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9saW51eF9nZXRfY3Jhc2hfbG9nX3VuaXR0ZXN0
LnB5CmluZGV4IGNkZjkxNWYuLjcxMmJkNjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvcG9ydC9saW51eF9nZXRfY3Jhc2hfbG9nX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvcG9ydC9saW51eF9nZXRfY3Jhc2hfbG9nX3VuaXR0ZXN0LnB5CkBAIC00
MSwxNCArNDEsMTUgQEAgY2xhc3MgR0RCQ3Jhc2hMb2dHZW5lcmF0b3JUZXN0KHVuaXR0ZXN0LlRl
c3RDYXNlKToKICAgICAgICAgaWYgc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoJ3dpbicpOgogICAg
ICAgICAgICAgcmV0dXJuCiAKLSAgICAgICAgZ2VuZXJhdG9yID0gR0RCQ3Jhc2hMb2dHZW5lcmF0
b3IoJ0R1bXBSZW5kZXJUcmVlJywgMjg1MjksIG5ld2VyX3RoYW49Tm9uZSwgZmlsZXN5c3RlbT1N
b2NrRmlsZVN5c3RlbSh7Jy9wYXRoL3RvL2NvcmVkdW1wcyc6ICcnfSksIHBhdGhfdG9fZHJpdmVy
PU5vbmUpCisgICAgICAgIHByb2Nlc3NfY29yZWR1bXBfc2NyaXB0X3BhdGggPSAiL3BhdGgvdG8v
Y29yZWR1bXAtcHJvY2Vzc29yIgorICAgICAgICBnZW5lcmF0b3IgPSBHREJDcmFzaExvZ0dlbmVy
YXRvcignRHVtcFJlbmRlclRyZWUnLCAyODUyOSwgbmV3ZXJfdGhhbj1Ob25lLCBmaWxlc3lzdGVt
PU1vY2tGaWxlU3lzdGVtKHsnL3BhdGgvdG8vY29yZWR1bXBzJzogJyd9KSwgcHJvY2Vzc19jb3Jl
ZHVtcF9zY3JpcHRfcGF0aD1wcm9jZXNzX2NvcmVkdW1wX3NjcmlwdF9wYXRoLCBwYXRoX3RvX2Ry
aXZlcj1Ob25lKQogCiAgICAgICAgIGNvcmVfZGlyZWN0b3J5ID0gb3MuZW52aXJvbi5nZXQoJ1dF
QktJVF9DT1JFX0RVTVBTX0RJUkVDVE9SWScsICcvcGF0aC90by9jb3JlZHVtcHMnKQotICAgICAg
ICBjb3JlX3BhdHRlcm4gPSBvcy5wYXRoLmpvaW4oY29yZV9kaXJlY3RvcnksICJjb3JlLXBpZF8l
cC1fLXByb2Nlc3NfJUUiKQorICAgICAgICBjb3JlX3BhdHRlcm4gPSAifCVzIC9wYXRoL3RvL2Nv
cmVkdW1wcy9jb3JlLXBpZF8lJXAuZHVtcCIgJSBwcm9jZXNzX2NvcmVkdW1wX3NjcmlwdF9wYXRo
CiAgICAgICAgIG1vY2tfZW1wdHlfY3Jhc2hfbG9nID0gIiIiXAogY3Jhc2ggbG9nIGZvciBEdW1w
UmVuZGVyVHJlZSAocGlkIDI4NTI5KToKIAotQ29yZWR1bXAgY29yZS1waWRfMjg1MjktXy1wcm9j
ZXNzX0R1bXBSZW5kZXJUcmVlIG5vdCBmb3VuZC4gVG8gZW5hYmxlIGNyYXNoIGxvZ3M6CitDb3Jl
ZHVtcCBjb3JlLXBpZF8yODUyOS5kdW1wIG5vdCBmb3VuZC4gVG8gZW5hYmxlIGNyYXNoIGxvZ3M6
CiAKIC0gcnVuIHRoaXMgY29tbWFuZCBhcyBzdXBlci11c2VyOiBlY2hvICIlKGNvcmVfcGF0dGVy
bilzIiA+IC9wcm9jL3N5cy9rZXJuZWwvY29yZV9wYXR0ZXJuCiAtIGVuYWJsZSBjb3JlIGR1bXBz
OiB1bGltaXQgLWMgdW5saW1pdGVkCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDIvbWFjL0dldFBJREFmdGVyQWJvcnRlZFByb2Nlc3NMYXVuY2guY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL21hYy9HZXRQSURBZnRlckFib3J0ZWRQcm9j
ZXNzTGF1bmNoLmNwcAppbmRleCA3Y2Q0ZjdjLi43Y2FlZDAyIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvbWFjL0dldFBJREFmdGVyQWJvcnRlZFByb2Nlc3NM
YXVuY2guY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9tYWMvR2V0
UElEQWZ0ZXJBYm9ydGVkUHJvY2Vzc0xhdW5jaC5jcHAKQEAgLTI3LDggKzI3LDkgQEAKICNpbmNs
dWRlICJQbGF0Zm9ybVV0aWxpdGllcy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtV2ViVmlldy5oIgog
Ci0jaW5jbHVkZSA8V2ViS2l0L1dLUGFnZVByaXZhdGVNYWMuaD4KICNpbmNsdWRlIDxXZWJLaXQv
V0tDb250ZXh0UHJpdmF0ZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1BhZ2VQcml2YXRlLmg+Cisj
aW5jbHVkZSA8V2ViS2l0L1dLUGFnZVByaXZhdGVNYWMuaD4KIAogbmFtZXNwYWNlIFRlc3RXZWJL
aXRBUEkgewogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4
IDI4NmM1MjkuLjVlNTBjNzUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuY3BwCkBAIC0xNDc5LDIzICsxNDc5LDE1IEBAIFdLUmV0YWluUHRyPFdLVHlwZVJlZj4gVGVz
dENvbnRyb2xsZXI6OmdldEluamVjdGVkQnVuZGxlSW5pdGlhbGl6YXRpb25Vc2VyRGF0YSgpCiAK
IHZvaWQgVGVzdENvbnRyb2xsZXI6Om5ldHdvcmtQcm9jZXNzRGlkQ3Jhc2goKQogewotI2lmIFBM
QVRGT1JNKENPQ09BKQogICAgIHBpZF90IHBpZCA9IFdLQ29udGV4dEdldE5ldHdvcmtQcm9jZXNz
SWRlbnRpZmllcihtX2NvbnRleHQuZ2V0KCkpOwogICAgIGZwcmludGYoc3RkZXJyLCAiI0NSQVNI
RUQgLSAlcyAocGlkICVsZClcbiIsIG5ldHdvcmtQcm9jZXNzTmFtZSgpLCBzdGF0aWNfY2FzdDxs
b25nPihwaWQpKTsKLSNlbHNlCi0gICAgZnByaW50ZihzdGRlcnIsICIjQ1JBU0hFRCAtICVzXG4i
LCBuZXR3b3JrUHJvY2Vzc05hbWUoKSk7Ci0jZW5kaWYKICAgICBleGl0KDEpOwogfQogCiB2b2lk
IFRlc3RDb250cm9sbGVyOjpkYXRhYmFzZVByb2Nlc3NEaWRDcmFzaCgpCiB7Ci0jaWYgUExBVEZP
Uk0oQ09DT0EpCiAgICAgcGlkX3QgcGlkID0gV0tDb250ZXh0R2V0RGF0YWJhc2VQcm9jZXNzSWRl
bnRpZmllcihtX2NvbnRleHQuZ2V0KCkpOwogICAgIGZwcmludGYoc3RkZXJyLCAiI0NSQVNIRUQg
LSAlcyAocGlkICVsZClcbiIsIGRhdGFiYXNlUHJvY2Vzc05hbWUoKSwgc3RhdGljX2Nhc3Q8bG9u
Zz4ocGlkKSk7Ci0jZWxzZQotICAgIGZwcmludGYoc3RkZXJyLCAiI0NSQVNIRUQgLSAlc1xuIiwg
ZGF0YWJhc2VQcm9jZXNzTmFtZSgpKTsKLSNlbmRpZgogICAgIGV4aXQoMSk7CiB9CiAKQEAgLTE3
MjIsMTIgKzE3MTQsOCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpwcm9jZXNzRGlkQ3Jhc2goKQog
ICAgIC8vIFRoaXMgZnVuY3Rpb24gY2FuIGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyB3aGVuIGNy
YXNoIGxvZ3MgYXJlIGJlaW5nIHNhdmVkIG9uIFdpbmRvd3MsIHNvCiAgICAgLy8gZW5zdXJlIHdl
IG9ubHkgcHJpbnQgdGhlIGNyYXNoZWQgbWVzc2FnZSBvbmNlLgogICAgIGlmICghbV9kaWRQcmlu
dFdlYlByb2Nlc3NDcmFzaGVkTWVzc2FnZSkgewotI2lmIFBMQVRGT1JNKENPQ09BKQogICAgICAg
ICBwaWRfdCBwaWQgPSBXS1BhZ2VHZXRQcm9jZXNzSWRlbnRpZmllcihtX21haW5XZWJWaWV3LT5w
YWdlKCkpOwogICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiNDUkFTSEVEIC0gJXMgKHBpZCAlbGQp
XG4iLCB3ZWJQcm9jZXNzTmFtZSgpLCBzdGF0aWNfY2FzdDxsb25nPihwaWQpKTsKLSNlbHNlCi0g
ICAgICAgIGZwcmludGYoc3RkZXJyLCAiI0NSQVNIRUQgLSAlc1xuIiwgd2ViUHJvY2Vzc05hbWUo
KSk7Ci0jZW5kaWYKICAgICAgICAgZmZsdXNoKHN0ZGVycik7CiAgICAgICAgIG1fZGlkUHJpbnRX
ZWJQcm9jZXNzQ3Jhc2hlZE1lc3NhZ2UgPSB0cnVlOwogICAgIH0KLS0gCjIuOC4x
</data>

          </attachment>
      

    </bug>

</bugzilla>