Return-Path: <oracle-l-bounce@freelists.org>
X-Original-To: oracle-l@orafaq.com
Delivered-To: oracle-l@orafaq.com
Received: from smtp-aa.freelists.org (smtp-aa.freelists.org [23.23.80.81])
 by malta2546.startdedicated.com (Postfix) with ESMTPS id B10B810031C85B
 for <oracle-l@orafaq.com>; Sun, 10 Oct 2021 21:44:58 +0200 (CEST)
Received: from turing.freelists.org (ip-10-0-0-164.ec2.internal [10.0.0.164])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (2048 bits))
 (No client certificate requested)
 by smtp-aa.freelists.org (Avenir Technologies Mail Multiplex) with ESMTPS id E11AF40978;
 Sun, 10 Oct 2021 19:44:57 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by turing.freelists.org (Postfix) with ESMTP id BA9613F7B9;
 Sun, 10 Oct 2021 19:44:57 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=freelists.org;
 s=turing; t=1633895097;
 bh=RwGzHEKUUZQLFc1H/TIfcYs859q+MRPOahnMNZ+zBkA=;
 h=From:Sender:Sender:From;
 b=IvAb8ZYQNuVWLy5DPYLbcDn1KqLVu3vSj3S67XrcwELH9TgnHF7C537Nx+Bp0oNhc
	 X4GZeyIyKtXsiL0N9K+8MEpiS6UZ2cD6VhmpdxAD20VduWHofI/S87wnLiYUvi7DWm
	 lgJVtWVncO3ftuOHefWS8DxRRwu5kIWO6NPzGdOw=
X-Virus-Scanned: by FreeLists at turing.freelists.org
Received: from turing.freelists.org ([127.0.0.1])
 by localhost (turing.freelists.org [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id HSKTA1zHwDb6; Sun, 10 Oct 2021 19:44:57 +0000 (UTC)
Received: from turing.freelists.org (localhost [127.0.0.1])
 by turing.freelists.org (Postfix) with ESMTP id 046B93F7BC;
 Sun, 10 Oct 2021 19:44:52 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=freelists.org;
 s=turing; t=1633895094;
 bh=RwGzHEKUUZQLFc1H/TIfcYs859q+MRPOahnMNZ+zBkA=;
 h=From:Sender:Sender:From;
 b=NxRGHVrz+36PHQEJ4X/YLumXfkI13ZshS0VlqOFA5cDB1XVPho3HOZVxnQlZvFgsf
	 OMb2LmR9/ARxfJLD5pgq+8QIjD1RyAAtgIdv5a4lhImoX4Ji83rBx/N3HBJyiQPHdx
	 ARR4AaR+cDYey0ZVI0uTwb71X+cY+SR6L1QkuCG0=
Received: with ECARTIS (v1.0.0; list oracle-l); Sun, 10 Oct 2021 19:44:50 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by turing.freelists.org (Postfix) with ESMTP id 3C3A13F7B9
 for <oracle-l@freelists.org>; Sun, 10 Oct 2021 19:44:50 +0000 (UTC)
Authentication-Results: turing.freelists.org;
 dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=f2kunZGs;
 dkim-atps=neutral
Received: from turing.freelists.org ([127.0.0.1])
 by localhost (turing.freelists.org [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id 3GrRO0BHoSGr for <oracle-l@freelists.org>;
 Sun, 10 Oct 2021 19:44:50 +0000 (UTC)
Received: from mail-vs1-f49.google.com (mail-vs1-f49.google.com [209.85.217.49])
 (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)
	 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by turing.freelists.org (Postfix) with ESMTPS id 1BFD63F5F7
 for <oracle-l@freelists.org>; Sun, 10 Oct 2021 19:44:50 +0000 (UTC)
Received: by mail-vs1-f49.google.com with SMTP id y28so16558953vsd.3
        for <oracle-l@freelists.org>; Sun, 10 Oct 2021 12:44:50 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=x-gm-message-state:mime-version:references:in-reply-to:from:date
         :message-id:subject:to:cc;
        bh=ntRPPf+jQJpuMAR9bInpa5erbso3W3tnrVHc+e91pyo=;
        b=vbjBeGpf9gpNzWsGcw4P2meh/u07NAX/FPk1Ixd1FChs3wEPWmKCzCEn7165+6vFbu
         0HbUjEmdq5Q6kBfucHQ3tOa6GebbAFOkCdMyAa0bMCXk0GocSy+QwgMxVNYQZgsVyKXh
         Mnh07JXAj1ohrQKuQkQNJ6nx613Abt14tsGzPaQicgRgbF5GEYE21+43BAkpJM9QzmNs
         JD/Q5GWVeScFFt5Ehzk39hMUMJE7P6syeiGUkFBvTazz/etp/8DnEXFU2u1VYulMdjO+
         2DXBhbtI6qYL0qfd1053dQd1EOYAS8yNrurrlK5Ey4DI9+bXzkgJ373auKMAZW6y8GVq
         h5og==
X-Gm-Message-State: AOAM531B7U6qxGZ6QCg4crmkoIDIdSohKJcpF1jN0dNOQGMJKEsaY/5X
 DGoVjO/OkeZa/1BBmNmqP0Ry5iBdJ8KQb/zOkXZVlHqllWo=
X-Google-Smtp-Source: ABdhPJz3iaHkMi1/E8Mp2zlIZjmUotSLHhBS2YSy6M4ymI2A6PGcOHhwqFGcT8/ptobL1J6rRDIPXmb3m+BpLml2IdE=
X-Received: by 2002:a67:d48a:: with SMTP id g10mr20148117vsj.3.1633895089593;
 Sun, 10 Oct 2021 12:44:49 -0700 (PDT)
MIME-Version: 1.0
References: <CAEjw_fjraKwNds2y+Ftzc5V0CjP_-SE0dVzaBEmvCcrpA4i=nQ@mail.gmail.com>
 <CAEjw_fi9J0ZO8OAcvhzZmNFKp+rUx9kvZ2vry5X8-qPkdXeUqA@mail.gmail.com>
 <CAGtsp8=TPb1Nn=C_x7_MG9wFw9NUc74LCGPgrDxZxgCpoE+4mA@mail.gmail.com>
 <CA+riqSVaqDFyabwGiVJOE7WHDbXKDaahFdQOz6-J_ZoH3sBuDA@mail.gmail.com>
 <CAEjw_fgLvtZP5zv+xCf_+zmsFUydU5DAE1rQ3WWAuzZVd+ZWbg@mail.gmail.com>
 <CAGtsp8mOX+kVxhzCj+WBcia6Wj-6TN5kXpScZZFO8M2sQJ-d7w@mail.gmail.com>
 <CAEjw_fhaB-2XFOnf=NpT5vmnFp3AJiu5KDdWvFYXhAEXs21dFw@mail.gmail.com> <CAGtsp8kBvvDidZsU_oF-6nN6H9TVKfQ28PdZYQb53inAtP-Rxg@mail.gmail.com>
In-Reply-To: <CAGtsp8kBvvDidZsU_oF-6nN6H9TVKfQ28PdZYQb53inAtP-Rxg@mail.gmail.com>
From: Pap <oracle.developer35@gmail.com>
Date: Mon, 11 Oct 2021 01:14:37 +0530
Message-ID: <CAEjw_fgsUVOO3aDHbjwm6qHwTd2N-acSOrVDntTrzetAPSwueg@mail.gmail.com>
Subject: Re: question on table access by index rowid batched
To: Jonathan Lewis <jlewisoracle@gmail.com>
Cc: Oracle L <oracle-l@freelists.org>
Content-Type: multipart/alternative; boundary="0000000000006a601505ce04d868"
X-archive-position: 81112
X-ecartis-version: Ecartis v1.0.0
Sender: oracle-l-bounce@freelists.org
Errors-to: oracle-l-bounce@freelists.org
X-original-sender: oracle.developer35@gmail.com
Precedence: normal
Reply-To: oracle.developer35@gmail.com
List-Help: <mailto:ecartis@freelists.org?Subject=help>
List-Unsubscribe: <mailto:oracle-l-request@freelists.org?Subject=unsubscribe>
List-software: Ecartis version 1.0.0
List-Id: oracle-l <oracle-l.freelists.org>
X-List-ID: oracle-l <oracle-l.freelists.org>
List-Subscribe: <mailto:oracle-l-request@freelists.org?Subject=subscribe>
List-Owner: <mailto:>
List-post: <mailto:oracle-l@freelists.org>
List-Archive: <https://www.freelists.org/archive/oracle-l>
X-list: oracle-l
--0000000000006a601505ce04d868
Content-Type: text/plain; charset="UTF-8"

Thank you Jonathan.
Do you mean to say the plan which shows actually exactly the same if we see
the first 11 steps in both cases below is not actually the case, when it's
been opted in run time. Basically all of the steps 4,5,8,9 are not opted by
both of the cases. The "nested loops outer" at step-5 and step-9 are
actually opted in runtime while optimizer_adaptive_reporting_only = true,
whereas step-8 and step-4 i.e. "hash join outer" are the ones which were
followed in run time by the optimizer while we had
optimizer_adaptive_reporting_only=false. But the sql monitor contains all
of those four combinations just because of its adaptive plan. Is this
understanding correct?

And yes, it's currently using the first_rows hint. I will check with
first_rows_100 hint rather than first_rows hint to see if the behaviour
changes.

with optimizer_adaptive_reporting_only = False

====================================================================================================================================================================================================================================
| Id |                      Operation                       |
Name              |  Rows   | Cost  |   Time    | Start  | Execs |   Rows
| Read  | Read  | Write | Write |  Mem  | Temp  | Activity | Activity
Detail |
|    |                                                      |
                | (Estim) |       | Active(s) | Active |       | (Actual) |
Reqs  | Bytes | Reqs  | Bytes | (Max) | (Max) |   (%)    |   (# samples)   |
====================================================================================================================================================================================================================================
|  0 | SELECT STATEMENT                                     |
                |         |       |       512 |   +157 |     1 |       2M |
      |       |       |       |     . |     . |          |                 |
|  1 |   FILTER                                             |
                |         |       |       512 |   +157 |     1 |       2M |
      |       |       |       |     . |     . |          |                 |
|  2 |    NESTED LOOPS OUTER                                |
                |       1 |    3M |       512 |   +157 |     1 |       2M |
      |       |       |       |     . |     . |          |                 |
|  3 |     NESTED LOOPS OUTER                               |
                |       1 |    3M |       512 |   +157 |     1 |       2M |
      |       |       |       |     . |     . |          |                 |
|  4 |      HASH JOIN OUTER                                 |
                |       1 |    3M |       538 |   +131 |     1 |       2M |
 3387 |   2GB |  3387 |   2GB | 450MB |   2GB |          |                 |
|  5 |       NESTED LOOPS OUTER                             |
                |       1 |    3M |        27 |   +131 |     1 |       2M |
      |       |       |       |     . |     . |          |                 |
|  6 |        STATISTICS COLLECTOR                          |
                |         |       |        27 |   +131 |     1 |       2M |
      |       |       |       |     . |     . |          |                 |
|  7 |         NESTED LOOPS OUTER                           |
                |       1 |    3M |        27 |   +131 |     1 |       2M |
      |       |       |       |     . |     . |          |                 |
|  8 |          HASH JOIN OUTER                             |
                |       1 |    3M |       155 |     +3 |     1 |       2M |
 3035 |   1GB |  3035 |   1GB | 309MB |   1GB |          |                 |
|  9 |           NESTED LOOPS OUTER                         |
                |       1 |    3M |       129 |     +3 |     1 |       2M |
      |       |       |       |     . |     . |          |                 |
| 10 |            STATISTICS COLLECTOR                      |
                |         |       |       129 |     +3 |     1 |       2M |
      |       |       |       |     . |     . |          |                 |
| 11 |             NESTED LOOPS OUTER                       |
                |       1 |    3M |       129 |     +3 |     1 |       2M |
      |       |       |       |     . |     . |          |                 |



optimizer_adaptive_reporting_only  =  true

SQL Plan Monitoring Details (Plan Hash Value=250668601)
============================================================================================================================================================================================================
| Id |                      Operation                       |
Name              |  Rows   | Cost  |   Time    | Start  | Execs |   Rows
| Read  | Read  |  Mem  | Activity | Activity Detail |
|    |                                                      |
                | (Estim) |       | Active(s) | Active |       | (Actual) |
Reqs  | Bytes | (Max) |   (%)    |   (# samples)   |
============================================================================================================================================================================================================
|  0 | SELECT STATEMENT                                     |
                |         |       |       279 |     +2 |     1 |       2M |
      |       |     . |          |                 |
|  1 |   FILTER                                             |
                |         |       |       279 |     +2 |     1 |       2M |
      |       |     . |          |                 |
|  2 |    NESTED LOOPS OUTER                                |
                |       1 |    3M |       279 |     +2 |     1 |       2M |
      |       |     . |          |                 |
|  3 |     NESTED LOOPS OUTER                               |
                |       1 |    3M |       279 |     +2 |     1 |       2M |
      |       |     . |          |                 |
|  4 |      HASH JOIN OUTER                                 |
                |       1 |    3M |       279 |     +2 |     1 |       2M |
      |       |     . |          |                 |
|  5 |       NESTED LOOPS OUTER                             |
                |       1 |    3M |       279 |     +2 |     1 |       2M |
      |       |     . |          |                 |
|  6 |        STATISTICS COLLECTOR                          |
                |         |       |       279 |     +2 |     1 |       2M |
      |       |     . |          |                 |
|  7 |         NESTED LOOPS OUTER                           |
                |       1 |    3M |       279 |     +2 |     1 |       2M |
      |       |     . |          |                 |
|  8 |          HASH JOIN OUTER                             |
                |       1 |    3M |       279 |     +2 |     1 |       2M |
      |       |     . |          |                 |
|  9 |           NESTED LOOPS OUTER                         |
                |       1 |    3M |       279 |     +2 |     1 |       2M |
      |       |     . |          |                 |
| 10 |            STATISTICS COLLECTOR                      |
                |         |       |       279 |     +2 |     1 |       2M |
      |       |     . |          |                 |
| 11 |             NESTED LOOPS OUTER                       |
                |       1 |    3M |       279 |     +2 |     1 |       2M |
      |       |     . |          |                 |








On Sun, Oct 10, 2021 at 11:44 PM Jonathan Lewis <jlewisoracle@gmail.com>
wrote:

> You're a little unlucky with this query, and there's a lot in the SQL
> Monitor to take in - especially since the SQL Monitor reporting has shown
> you all the possible adaptations the plan might take, and that makes it
> harder to interpret what actually happened.
>
> The key point is that when the plan is allowed to adapt there are two
> places where the optimizer had a prediction of 1 row (that's operations 7
> and 11 - the lines after the Statistics Collector lines).   In both cases
> the run-time engine found that far too many rows were being produced  (the
> counting done by the statistics collector wouldn't have taken much time, it
> would probably just have been buffering a few (hundred) rows before making
> the decision to use a hash join).
>
> With optimizer_adaptive_reporting_only = true the run-time engine has just
> carried on with the nested loop and as you can see from the "Time Start"
> column it ha actually got the first row of its response ready in the first
> two seconds.
>
> With optimizer_adaptive_report_only = false, the run-time engine has
> switched to a hash join in both cases. So operation 11 provided 2M rows
> (taking 129 seconds) to operation 8 to allow the first hash table build.
> Operation 8 called operation 42 to supply the probe table, joined it then
> passed the results up to the nested loop in operation 7 which took 27
> seconds to get the data from operations 43 and 44 to pass up to the hash
> join at operation 4 to create the build table. Operation 4 then called
> operations 47 and 49 as the second child of the nested loop - this started
> at +157 seconds (which is roughly the 131 + 27 I've mentioned).
>
> Don't be alarmed by the TABLE ACCESS STORAGE FULL FIRST ROWS at operation
> 49, it takes virtually no time (even though it happens 2M times); and a key
> detail that says that is that the first active operation of the "VIEW
> PUSHED PREDICATE" also happens at +156.
>
> The time AFTER the first 157 seconds is mostly the 661K read requests that
> accumulate from that point onwards.
>
> ==================================
>
> Bottom line - in this case the adaptive feature was unlucky. The
> cardinality estimates were very low, but the actual was very high, so the
> run-time engine switched to a pair of hash joins. The hash joins were
> unlucky and resulted in a very long latency (time to first row), but the
> fact that the order that the data passed on upwards from each hash join
> meant that your access to a critical table was randomised and resulted in
> far more I/O, adding considerably to the run time.
>
> For this query you don't AT PRESENT want an adaptive plan. If this is a
> controlled query then hinting /*+ no_adaptive_plan */ would be a nice
> workaround. (Or adding an SQL Patch if the query text is fixed). It would
> not be a good thing to change the parameter globally to address one query
> that was unlucky.
>
> Of course there is still the question of why the cardinality estimates are
> so bad, but that might be a side effect of your statement that you're
> running this query with first_rows optimisation. If that is EXACTLY what
> you are doing, rather than first_rows_1 or first_rows_10 (or 100, or 1000)
> then you shouldn't be, and changing to one of the cost-base first_rows_N
> optimisation strategies should be your first change.
>
>
> This leads to a couple of things I've noted down as something to test or
> check for my own benefit, viz:
>   Does adaptive optimization co-operate correctly with first_rows_N
> optimisation?
>   Is there a way in the call do dbms_monitor to show the used execution
> plan rather than the full adaptive path - it would be a lot easier to read
> (and I assume there is if I check the manuals or MOS.)
>
> Regards
> Jonathan Lewis
>
>
>
>
>
>
>
>
>
> On Sat, 9 Oct 2021 at 17:19, Pap <oracle.developer35@gmail.com> wrote:
>
>> Thank you Jonathan.
>>
>> There is a difference of ~350+ seconds between the run time of both the
>> plans and out of this, ~131 seconds is contributed by the statistics
>> collector which does the additional mathematics/counting to opt for the
>> best path at that moment (must be based on the runtime/actual cardinality
>> information). This query was actually a search query and running with
>> first_rows hint and customer expecting to see the result as first ~50 odd
>> rows asap on the screen but with the optimizer_adaptive_reporting_only
>> 'false' it was using another set of mathematics(or as you mentioned
>> multipasses) in this query adding significant overhead for this quick
>> query. So is it recommended to have this parameter set as 'true' mainly in
>> the oltp kind of environment ? Or should totally turn the key driver i.e.
>> optimizer_adpative_plan as false?
>>
>> Note -- Just to note, after the upgrade , I think the infra team just
>> kept it all default i.e. optimizer_adaptive_plan- true,
>> optimizer_adaptive_reporting_only- false, optimizer_adaptive_statistics-
>> false. So wondering if it's advisable/ and safe to change few to non
>> default?
>>
>> As you rightly explained, there seems to be no role of rowid batching in
>> this performance issue. Again, not much experience in reading
>> complex execution paths, but from the path initially I was interpreting, it
>> as both plans are exactly the same ,  with just the difference in 'rowid
>> batching operation. But from your explanation, I see I was completely
>> wrong.  Now, I can see in the good plan case it has read ~28million at step
>> ~46 for index TP_PK but in the bad plan case it is not noted in the sql
>> monitor. but conversely  ,  ~5GB data being read in the bad plan, at
>> step-59 with ~661k read requests and it resulted in ~770k rows there. But
>> in case of a good plan those bytes read and number of read requests are not
>> noted. So does this point to the fact that the statistics collector is
>> really playing a role in the order in which data results out from one
>> operation/step to another?
>>
>>
>> On Sat, Oct 9, 2021 at 4:49 PM Jonathan Lewis <jlewisoracle@gmail.com>
>> wrote:
>>
>>>
>>> Remember I was talking POSSIBILITIES in my previous post, not
>>> certainties.
>>>
>>> With the extra information you have now supplied I have a better
>>> hypothesis, based on the fact that you have adaptive_plans_enabled (which I
>>> should have realised in the first place), and that the plans you've
>>> supplied are different in exactly the TYPE of reason I suggested, but not
>>> for the exact reason. My basic hypothesis now is that when you enabled
>>> adaptive plans but set it to reporting only Oracle will always include the
>>> statistics collector operations, but it will not use them (i.e. not
>>> counting etc,) to make a decision about whether to take a hash join or a
>>> nested loop join. It will simply generate a path based on its first pass
>>> calculations.
>>>
>>> (You could check this with a suitable set of examples and testing with
>>> (a) adaptive plans enable (b) adaptive plans enabled but reporting only (c)
>>> adaptive plans disabled.  You'd need to set up 4 possibilities:  nlj
>>> changing to hj due to adaptive plans, hj changing to nlj due to adaptive
>>> plans, nlj not changing, hj not changing).
>>>
>>> So Looking at your SQL Monitor reports - lines 41 and 42 as a starting
>>> point:
>>>
>>> WIth reporting only = TRUE
>>>
>>> ==============================================================================================================================================================================
>>> | Id |                      Operation                       |
>>>   Name              |  Rows   | Cost  |   Time    | Start  | Execs |   Rows
>>>   | Read  | Read  |  Mem  |
>>> |    |                                                      |
>>>                     | (Estim) |       | Active(s) | Active |       |
>>> (Actual) | Reqs  | Bytes | (Max) |
>>>
>>> ===============================================================================================================================================================================
>>> | 41 |            INDEX RANGE SCAN                          | TCX_PK
>>>                    |       1 |     2 |       279 |     +2 |    2M |
>>> 2M |       |       |     . |
>>> | 42 |           INDEX RANGE SCAN                           | TCX_PK
>>>                    |       1 |     2 |           |        |       |
>>>  |       |       |     . |
>>>
>>> With reporting only = FALSE
>>>
>>> ===============================================================================================================================================================================================
>>> | Id |                      Operation                       |
>>>   Name              |  Rows   | Cost  |   Time    | Start  | Execs |   Rows
>>>   | Read  | Read  | Write | Write |  Mem  |
>>> |    |                                                      |
>>>                     | (Estim) |       | Active(s) | Active |       |
>>> (Actual) | Reqs  | Bytes | Reqs  | Bytes | (Max) |
>>>
>>> ===============================================================================================================================================================================================
>>> | 41 |            INDEX RANGE SCAN                          | TCX_PK
>>>                    |       1 |     2 |           |        |       |
>>>  |       |       |       |       |     . |
>>> | 42 |           INDEX RANGE SCAN                           | TCX_PK
>>>                    |       1 |     2 |         1 |   +131 |     1 |
>>> 976K |       |       |       |       |     . |
>>>
>>> These two lines are the options available as a result of a statistics
>>> collector further up the plan, and one plan takes operation 41, the other
>>> takes operation 42
>>>
>>> Putting them into context (adding in some parent and sibling rows)
>>>
>>> Reporting only = true ... plan based on estimates
>>>
>>> ==============================================================================================================================================================================
>>> | Id |                      Operation                       |
>>>   Name              |  Rows   | Cost  |   Time    | Start  | Execs |   Rows
>>>   | Read  | Read  |  Mem  |
>>> |    |                                                      |
>>>                     | (Estim) |       | Active(s) | Active |       |
>>> (Actual) | Reqs  | Bytes | (Max) |
>>>
>>> ===============================================================================================================================================================================
>>> |  7 |         NESTED LOOPS OUTER                           |
>>>                     |       1 |    3M |       279 |     +2 |     1 |
>>> 2M |       |       |     . |          |                 |
>>> |  8 |          HASH JOIN OUTER                             |
>>>                     |       1 |    3M |       279 |     +2 |     1 |
>>> 2M |       |       |     . |
>>> |  9 |           NESTED LOOPS OUTER                         |
>>>                     |       1 |    3M |       279 |     +2 |     1 |
>>> 2M |       |       |     . |
>>> | 10 |            STATISTICS COLLECTOR                      |
>>>                     |         |       |       279 |     +2 |     1 |
>>> 2M |       |       |     . |
>>> | 11 |             NESTED LOOPS OUTER                       |
>>>                     |       1 |    3M |       279 |     +2 |     1 |
>>> 2M |       |       |     . |
>>>
>>> ...
>>> | 41 |            INDEX RANGE SCAN                          | TCX_PK
>>>                    |       1 |     2 |       279 |     +2 |    2M |
>>> 2M |       |       |     . |
>>> | 42 |           INDEX RANGE SCAN                           | TCX_PK
>>>                    |       1 |     2 |           |        |       |
>>>  |       |       |     . |
>>> | 43 |          TABLE ACCESS BY INDEX ROWID                 | TC
>>>                    |       1 |     2 |       279 |     +2 |    2M |
>>> 2M | 16037 | 125MB |     . |          |                 |
>>>
>>>
>>> Reporting only = false ... plan adapts to counting
>>> (OPTERATION 10 dictates a HASH JOIN where the estimated stats suggested
>>> NLJ)
>>>
>>> ===============================================================================================================================================================================================
>>> | Id |                      Operation                       |
>>>   Name              |  Rows   | Cost  |   Time    | Start  | Execs |   Rows
>>>   | Read  | Read  | Write | Write |  Mem  |
>>> |    |                                                      |
>>>                     | (Estim) |       | Active(s) | Active |       |
>>> (Actual) | Reqs  | Bytes | Reqs  | Bytes | (Max) |
>>>
>>> ===============================================================================================================================================================================================
>>> |  7 |         NESTED LOOPS OUTER                           |
>>>                     |       1 |    3M |        27 |   +131 |     1 |
>>> 2M |       |       |       |       |     . |
>>> |  8 |          HASH JOIN OUTER                             |
>>>                     |       1 |    3M |       155 |     +3 |     1 |
>>> 2M |  3035 |   1GB |  3035 |   1GB | 309MB |
>>> |  9 |           NESTED LOOPS OUTER                         |
>>>                     |       1 |    3M |       129 |     +3 |     1 |
>>> 2M |       |       |       |       |     . |
>>> | 10 |            STATISTICS COLLECTOR                      |
>>>                     |         |       |       129 |     +3 |     1 |
>>> 2M |       |       |       |       |     . |
>>> | 11 |             NESTED LOOPS OUTER                       |
>>>                     |       1 |    3M |       129 |     +3 |     1 |
>>> 2M |       |       |       |       |     . |
>>> ...
>>> | 41 |            INDEX RANGE SCAN                          | TCX_PK
>>>                    |       1 |     2 |           |        |       |
>>>  |       |       |       |       |     . |
>>> | 42 |           INDEX RANGE SCAN                           | TCX_PK
>>>                    |       1 |     2 |         1 |   +131 |     1 |
>>> 976K |       |       |       |       |     . |
>>> | 43 |          TABLE ACCESS BY INDEX ROWID                 | TC
>>>                    |       1 |     2 |        27 |   +131 |    2M |
>>> 2M | 21549 | 168MB |       |       |     . |
>>>
>>>
>>> As you can see, the ability to switch plans makes a big difference to
>>> the amount of time Oracle spends working before it starts executing step 7
>>> (start time = +2 seconds vs. +131 seconds).
>>>
>>> This one extract from the plans doesn't answer the question about why
>>> "table access by index rowid batched" has appeared; nor does it explain the
>>> total difference between the two executions because you also need to look
>>> at the statistics collector at operation 6 and the impact that has on which
>>> of operation 45/46 and 47/48 get chosen. The other point that then comes up
>>> is that the order in which data appears from a hash join is (almost
>>> certainly) different from the order it appears from a nested loop join -
>>> which means that when you use the result of the join to probe other tables
>>> by index the order of the driving data from one join may be roughly in line
>>> with the indexes and data from the next table(s) in the join and benefit
>>> from a lot of "self-induced" caching, while the other join might produce
>>> data in what is effectively a randomised order resulting in "self-flushing"
>>> and more random reads - and that might explain what happens at operations
>>> 60/61
>>>
>>> What my observations suggest is a good argument for why you had such a
>>> difference in performance, and that it had nothing to do with the batching
>>> or not of the table access by rowid.
>>>
>>> I may write this up in more detail as a blog some day, but I don't have
>>> time right now.
>>>
>>> Regards
>>> Jonathan Lewis
>>>
>>>
>>>
>>>
>>>
>>> On Fri, 8 Oct 2021 at 18:34, Pap <oracle.developer35@gmail.com> wrote:
>>>
>>>>   It's fluctuating. I am now not able to reproduce the scenario for
>>>> that same small query for which I had posted here just before.  And you are
>>>> correct , I was luckily having sql monitors saved. I am attaching those
>>>> here. If you see that, the main query was showing those rowid batched
>>>> operations when we have the  optimizer_adaptive_reporting_only set as
>>>> default/false and was taking a long time to finish and also the first few
>>>> rows were also taking longer to get produced out of the query. But the
>>>> sample small query which i had posted a cursor plan for was just showing
>>>> the opposite behaviour. That is going for a rowid batched path when
>>>> optimizer_adaptive_reporting_only sets as true.
>>>>
>>>> However,  now I am seeing that same small query in both the cases
>>>> (irrespective of value of optimizer_adaptive_reporting_only) going for
>>>> 'rowid batched' execution path. Not sure if it's just stats or
>>>> anything else influencing and I am seeing different things behaviour. Just
>>>> to note we have 'optimizer_adaptive_plans' set to true ,
>>>> 'optimizer_adaptive_statistics' set  to false. The only change we made was
>>>> moving ' optimizer_adaptive_reporting_only' from false to true.
>>>>
>>>> And Jonathan when you said the optimizer_adaptive_reporting_only = true
>>>> will introduce 'statistics collector' operation, but if you see the
>>>> attached sql monitor for the main query, i am seeing 'statistics collector'
>>>> even when optimizer_adaptive_reporting_only is = false. Is that expected
>>>> behaviour?
>>>>
>>>>
>>>>
>>>
>>>
>>>

--0000000000006a601505ce04d868
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: base64

PGRpdiBkaXI9Imx0ciI+PGJyPlRoYW5rIHlvdSBKb25hdGhhbi48YnI+RG8geW91IG1lYW4gdG8g
c2F5IHRoZSBwbGFuIHdoaWNoIHNob3dzIGFjdHVhbGx5IGV4YWN0bHkgdGhlIHNhbWUgaWYgd2Ug
c2VlIHRoZSBmaXJzdCAxMSBzdGVwcyBpbiBib3RoIGNhc2VzIGJlbG93IGlzIG5vdCBhY3R1YWxs
eSB0aGUgY2FzZSwgd2hlbiBpdCYjMzk7cyBiZWVuIG9wdGVkIGluIHJ1biB0aW1lLiBCYXNpY2Fs
bHkgYWxsIG9mIHRoZSBzdGVwcyA0LDUsOCw5IGFyZSBub3Qgb3B0ZWQgYnkgYm90aCBvZiB0aGUg
Y2FzZXMuIFRoZSAmcXVvdDtuZXN0ZWQgbG9vcHMgb3V0ZXImcXVvdDsgYXQgc3RlcC01IGFuZCBz
dGVwLTkgYXJlIGFjdHVhbGx5IG9wdGVkIGluIHJ1bnRpbWUgd2hpbGUgb3B0aW1pemVyX2FkYXB0
aXZlX3JlcG9ydGluZ19vbmx5ID0gdHJ1ZSwgd2hlcmVhcyBzdGVwLTggYW5kIHN0ZXAtNCBpLmUu
ICZxdW90O2hhc2ggam9pbiBvdXRlciZxdW90OyBhcmUgdGhlIG9uZXMgd2hpY2ggd2VyZSBmb2xs
b3dlZCBpbiBydW4gdGltZSBieSB0aGUgb3B0aW1pemVyIHdoaWxlIHdlIGhhZCBvcHRpbWl6ZXJf
YWRhcHRpdmVfcmVwb3J0aW5nX29ubHk9ZmFsc2UuIEJ1dCB0aGUgc3FsIG1vbml0b3IgY29udGFp
bnMgYWxsIG9mIHRob3NlIGZvdXIgY29tYmluYXRpb25zIGp1c3QgYmVjYXVzZSBvZiBpdHMgYWRh
cHRpdmUgcGxhbi4gSXMgdGhpcyB1bmRlcnN0YW5kaW5nIGNvcnJlY3Q/PGJyPjxicj5BbmQgeWVz
LCBpdCYjMzk7cyBjdXJyZW50bHkgdXNpbmcgdGhlIGZpcnN0X3Jvd3MgaGludC4gSSB3aWxsIGNo
ZWNrIHdpdGggZmlyc3Rfcm93c18xMDAgaGludCByYXRoZXIgdGhhbiBmaXJzdF9yb3dzIGhpbnQg
dG/CoHNlZSBpZiB0aGUgYmVoYXZpb3VyIGNoYW5nZXMuPGJyPjxicj48Zm9udCBmYWNlPSJtb25v
c3BhY2UiPndpdGggb3B0aW1pemVyX2FkYXB0aXZlX3JlcG9ydGluZ19vbmx5ID0gRmFsc2U8YnI+
PGJyPj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PTxicj58IElkIHwgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBPcGVyYXRpb24g
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfCDCoCDCoCDCoCDCoCDCoCDCoCBOYW1l
IMKgIMKgIMKgIMKgIMKgIMKgIMKgfCDCoFJvd3MgwqAgfCBDb3N0IMKgfCDCoCBUaW1lIMKgIMKg
fCBTdGFydCDCoHwgRXhlY3MgfCDCoCBSb3dzIMKgIHwgUmVhZCDCoHwgUmVhZCDCoHwgV3JpdGUg
fCBXcml0ZSB8IMKgTWVtIMKgfCBUZW1wIMKgfCBBY3Rpdml0eSB8IEFjdGl2aXR5IERldGFpbCB8
PGJyPnwgwqAgwqB8IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgfCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB8IChFc3RpbSkgfCDCoCDCoCDCoCB8IEFjdGl2ZShz
KSB8IEFjdGl2ZSB8IMKgIMKgIMKgIHwgKEFjdHVhbCkgfCBSZXFzIMKgfCBCeXRlcyB8IFJlcXMg
wqB8IEJ5dGVzIHwgKE1heCkgfCAoTWF4KSB8IMKgICglKSDCoCDCoHwgwqAgKCMgc2FtcGxlcykg
wqAgfDxicj49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT08YnI+fCDCoDAgfCBTRUxFQ1QgU1RBVEVNRU5UIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHwgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfCDCoCDCoCDCoCDCoCB8IMKgIMKgIMKgIHwgwqAgwqAg
wqAgNTEyIHwgwqAgKzE1NyB8IMKgIMKgIDEgfCDCoCDCoCDCoCAyTSB8IMKgIMKgIMKgIHwgwqAg
wqAgwqAgfCDCoCDCoCDCoCB8IMKgIMKgIMKgIHwgwqAgwqAgLiB8IMKgIMKgIC4gfCDCoCDCoCDC
oCDCoCDCoHwgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfDxicj58IMKgMSB8IMKgIEZJTFRFUiDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCB8IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHwg
wqAgwqAgwqAgwqAgfCDCoCDCoCDCoCB8IMKgIMKgIMKgIDUxMiB8IMKgICsxNTcgfCDCoCDCoCAx
IHwgwqAgwqAgwqAgMk0gfCDCoCDCoCDCoCB8IMKgIMKgIMKgIHwgwqAgwqAgwqAgfCDCoCDCoCDC
oCB8IMKgIMKgIC4gfCDCoCDCoCAuIHwgwqAgwqAgwqAgwqAgwqB8IMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIHw8YnI+fCDCoDIgfCDCoCDCoE5FU1RFRCBMT09QUyBPVVRFUiDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHwgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfCDCoCDCoCDCoCAxIHwgwqAgwqAzTSB8IMKgIMKgIMKg
IDUxMiB8IMKgICsxNTcgfCDCoCDCoCAxIHwgwqAgwqAgwqAgMk0gfCDCoCDCoCDCoCB8IMKgIMKg
IMKgIHwgwqAgwqAgwqAgfCDCoCDCoCDCoCB8IMKgIMKgIC4gfCDCoCDCoCAuIHwgwqAgwqAgwqAg
wqAgwqB8IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHw8YnI+fCDCoDMgfCDCoCDCoCBORVNURUQg
TE9PUFMgT1VURVIgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
fCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB8IMKgIMKgIMKg
IDEgfCDCoCDCoDNNIHwgwqAgwqAgwqAgNTEyIHwgwqAgKzE1NyB8IMKgIMKgIDEgfCDCoCDCoCDC
oCAyTSB8IMKgIMKgIMKgIHwgwqAgwqAgwqAgfCDCoCDCoCDCoCB8IMKgIMKgIMKgIHwgwqAgwqAg
LiB8IMKgIMKgIC4gfCDCoCDCoCDCoCDCoCDCoHwgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfDxi
cj58IMKgNCB8IMKgIMKgIMKgSEFTSCBKT0lOIE9VVEVSIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHwgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgfCDCoCDCoCDCoCAxIHwgwqAgwqAzTSB8IMKgIMKgIMKgIDUzOCB8IMKg
ICsxMzEgfCDCoCDCoCAxIHwgwqAgwqAgwqAgMk0gfCDCoDMzODcgfCDCoCAyR0IgfCDCoDMzODcg
fCDCoCAyR0IgfCA0NTBNQiB8IMKgIDJHQiB8IMKgIMKgIMKgIMKgIMKgfCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCB8PGJyPnwgwqA1IHwgwqAgwqAgwqAgTkVTVEVEIExPT1BTIE9VVEVSIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHwgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfCDCoCDCoCDCoCAxIHwgwqAgwqAzTSB8IMKgIMKg
IMKgIMKgMjcgfCDCoCArMTMxIHwgwqAgwqAgMSB8IMKgIMKgIMKgIDJNIHwgwqAgwqAgwqAgfCDC
oCDCoCDCoCB8IMKgIMKgIMKgIHwgwqAgwqAgwqAgfCDCoCDCoCAuIHwgwqAgwqAgLiB8IMKgIMKg
IMKgIMKgIMKgfCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB8PGJyPnwgwqA2IHwgwqAgwqAgwqAg
wqBTVEFUSVNUSUNTIENPTExFQ1RPUiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoHwgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfCDCoCDC
oCDCoCDCoCB8IMKgIMKgIMKgIHwgwqAgwqAgwqAgwqAyNyB8IMKgICsxMzEgfCDCoCDCoCAxIHwg
wqAgwqAgwqAgMk0gfCDCoCDCoCDCoCB8IMKgIMKgIMKgIHwgwqAgwqAgwqAgfCDCoCDCoCDCoCB8
IMKgIMKgIC4gfCDCoCDCoCAuIHwgwqAgwqAgwqAgwqAgwqB8IMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIHw8YnI+fCDCoDcgfCDCoCDCoCDCoCDCoCBORVNURUQgTE9PUFMgT1VURVIgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCB8IMKgIMKgIMKgIDEgfCDCoCDCoDNNIHwgwqAgwqAgwqAgwqAy
NyB8IMKgICsxMzEgfCDCoCDCoCAxIHwgwqAgwqAgwqAgMk0gfCDCoCDCoCDCoCB8IMKgIMKgIMKg
IHwgwqAgwqAgwqAgfCDCoCDCoCDCoCB8IMKgIMKgIC4gfCDCoCDCoCAuIHwgwqAgwqAgwqAgwqAg
wqB8IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHw8YnI+fCDCoDggfCDCoCDCoCDCoCDCoCDCoEhB
U0ggSk9JTiBPVVRFUiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB8
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHwgwqAgwqAgwqAg
MSB8IMKgIMKgM00gfCDCoCDCoCDCoCAxNTUgfCDCoCDCoCArMyB8IMKgIMKgIDEgfCDCoCDCoCDC
oCAyTSB8IMKgMzAzNSB8IMKgIDFHQiB8IMKgMzAzNSB8IMKgIDFHQiB8IDMwOU1CIHwgwqAgMUdC
IHwgwqAgwqAgwqAgwqAgwqB8IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHw8YnI+fCDCoDkgfCDC
oCDCoCDCoCDCoCDCoCBORVNURUQgTE9PUFMgT1VURVIgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgfCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCB8IMKgIMKgIMKgIDEgfCDCoCDCoDNNIHwgwqAgwqAgwqAgMTI5IHwgwqAgwqAgKzMgfCDCoCDC
oCAxIHwgwqAgwqAgwqAgMk0gfCDCoCDCoCDCoCB8IMKgIMKgIMKgIHwgwqAgwqAgwqAgfCDCoCDC
oCDCoCB8IMKgIMKgIC4gfCDCoCDCoCAuIHwgwqAgwqAgwqAgwqAgwqB8IMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIHw8YnI+fCAxMCB8IMKgIMKgIMKgIMKgIMKgIMKgU1RBVElTVElDUyBDT0xMRUNU
T1IgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB8IMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHwgwqAgwqAgwqAgwqAgfCDCoCDCoCDCoCB8IMKgIMKg
IMKgIDEyOSB8IMKgIMKgICszIHwgwqAgwqAgMSB8IMKgIMKgIMKgIDJNIHwgwqAgwqAgwqAgfCDC
oCDCoCDCoCB8IMKgIMKgIMKgIHwgwqAgwqAgwqAgfCDCoCDCoCAuIHwgwqAgwqAgLiB8IMKgIMKg
IMKgIMKgIMKgfCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB8PGJyPnwgMTEgfCDCoCDCoCDCoCDC
oCDCoCDCoCBORVNURUQgTE9PUFMgT1VURVIgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgfCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB8IMKgIMKg
IMKgIDEgfCDCoCDCoDNNIHwgwqAgwqAgwqAgMTI5IHwgwqAgwqAgKzMgfCDCoCDCoCAxIHwgwqAg
wqAgwqAgMk0gfCDCoCDCoCDCoCB8IMKgIMKgIMKgIHwgwqAgwqAgwqAgfCDCoCDCoCDCoCB8IMKg
IMKgIC4gfCDCoCDCoCAuIHwgwqAgwqAgwqAgwqAgwqB8IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IHw8YnI+PGJyPjxicj48YnI+b3B0aW1pemVyX2FkYXB0aXZlX3JlcG9ydGluZ19vbmx5wqAgPcKg
IHRydWU8YnI+PGJyPlNRTCBQbGFuIE1vbml0b3JpbmcgRGV0YWlscyAoUGxhbiBIYXNoIFZhbHVl
PTI1MDY2ODYwMSk8YnI+PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PGJyPnwgSWQg
fCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoE9wZXJhdGlvbiDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCB8IMKgIMKgIMKgIMKgIMKgIMKgIE5hbWUgwqAgwqAgwqAgwqAg
wqAgwqAgwqB8IMKgUm93cyDCoCB8IENvc3QgwqB8IMKgIFRpbWUgwqAgwqB8IFN0YXJ0IMKgfCBF
eGVjcyB8IMKgIFJvd3MgwqAgfCBSZWFkIMKgfCBSZWFkIMKgfCDCoE1lbSDCoHwgQWN0aXZpdHkg
fCBBY3Rpdml0eSBEZXRhaWwgfDxicj58IMKgIMKgfCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHwg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfCAoRXN0aW0pIHwg
wqAgwqAgwqAgfCBBY3RpdmUocykgfCBBY3RpdmUgfCDCoCDCoCDCoCB8IChBY3R1YWwpIHwgUmVx
cyDCoHwgQnl0ZXMgfCAoTWF4KSB8IMKgICglKSDCoCDCoHwgwqAgKCMgc2FtcGxlcykgwqAgfDxi
cj49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT08YnI+fCDCoDAgfCBTRUxFQ1QgU1RB
VEVNRU5UIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIHwgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfCDCoCDC
oCDCoCDCoCB8IMKgIMKgIMKgIHwgwqAgwqAgwqAgMjc5IHwgwqAgwqAgKzIgfCDCoCDCoCAxIHwg
wqAgwqAgwqAgMk0gfCDCoCDCoCDCoCB8IMKgIMKgIMKgIHwgwqAgwqAgLiB8IMKgIMKgIMKgIMKg
IMKgfCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB8PGJyPnwgwqAxIHwgwqAgRklMVEVSIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIHwgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfCDCoCDC
oCDCoCDCoCB8IMKgIMKgIMKgIHwgwqAgwqAgwqAgMjc5IHwgwqAgwqAgKzIgfCDCoCDCoCAxIHwg
wqAgwqAgwqAgMk0gfCDCoCDCoCDCoCB8IMKgIMKgIMKgIHwgwqAgwqAgLiB8IMKgIMKgIMKgIMKg
IMKgfCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB8PGJyPnwgwqAyIHwgwqAgwqBORVNURUQgTE9P
UFMgT1VURVIgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB8
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHwgwqAgwqAgwqAg
MSB8IMKgIMKgM00gfCDCoCDCoCDCoCAyNzkgfCDCoCDCoCArMiB8IMKgIMKgIDEgfCDCoCDCoCDC
oCAyTSB8IMKgIMKgIMKgIHwgwqAgwqAgwqAgfCDCoCDCoCAuIHwgwqAgwqAgwqAgwqAgwqB8IMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIHw8YnI+fCDCoDMgfCDCoCDCoCBORVNURUQgTE9PUFMgT1VU
RVIgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB8IMKgIMKgIMKgIDEgfCDCoCDC
oDNNIHwgwqAgwqAgwqAgMjc5IHwgwqAgwqAgKzIgfCDCoCDCoCAxIHwgwqAgwqAgwqAgMk0gfCDC
oCDCoCDCoCB8IMKgIMKgIMKgIHwgwqAgwqAgLiB8IMKgIMKgIMKgIMKgIMKgfCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCB8PGJyPnwgwqA0IHwgwqAgwqAgwqBIQVNIIEpPSU4gT1VURVIgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB8IMKgIMKgIMKgIDEgfCDCoCDCoDNNIHwg
wqAgwqAgwqAgMjc5IHwgwqAgwqAgKzIgfCDCoCDCoCAxIHwgwqAgwqAgwqAgMk0gfCDCoCDCoCDC
oCB8IMKgIMKgIMKgIHwgwqAgwqAgLiB8IMKgIMKgIMKgIMKgIMKgfCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCB8PGJyPnwgwqA1IHwgwqAgwqAgwqAgTkVTVEVEIExPT1BTIE9VVEVSIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHwgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfCDCoCDCoCDCoCAxIHwgwqAgwqAzTSB8IMKgIMKgIMKg
IDI3OSB8IMKgIMKgICsyIHwgwqAgwqAgMSB8IMKgIMKgIMKgIDJNIHwgwqAgwqAgwqAgfCDCoCDC
oCDCoCB8IMKgIMKgIC4gfCDCoCDCoCDCoCDCoCDCoHwgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
fDxicj58IMKgNiB8IMKgIMKgIMKgIMKgU1RBVElTVElDUyBDT0xMRUNUT1IgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB8IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIHwgwqAgwqAgwqAgwqAgfCDCoCDCoCDCoCB8IMKgIMKgIMKgIDI3OSB8
IMKgIMKgICsyIHwgwqAgwqAgMSB8IMKgIMKgIMKgIDJNIHwgwqAgwqAgwqAgfCDCoCDCoCDCoCB8
IMKgIMKgIC4gfCDCoCDCoCDCoCDCoCDCoHwgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfDxicj58
IMKgNyB8IMKgIMKgIMKgIMKgIE5FU1RFRCBMT09QUyBPVVRFUiDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCB8IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIHwgwqAgwqAgwqAgMSB8IMKgIMKgM00gfCDCoCDCoCDCoCAyNzkgfCDCoCDCoCAr
MiB8IMKgIMKgIDEgfCDCoCDCoCDCoCAyTSB8IMKgIMKgIMKgIHwgwqAgwqAgwqAgfCDCoCDCoCAu
IHwgwqAgwqAgwqAgwqAgwqB8IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHw8YnI+fCDCoDggfCDC
oCDCoCDCoCDCoCDCoEhBU0ggSk9JTiBPVVRFUiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCB8IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIHwgwqAgwqAgwqAgMSB8IMKgIMKgM00gfCDCoCDCoCDCoCAyNzkgfCDCoCDCoCArMiB8IMKg
IMKgIDEgfCDCoCDCoCDCoCAyTSB8IMKgIMKgIMKgIHwgwqAgwqAgwqAgfCDCoCDCoCAuIHwgwqAg
wqAgwqAgwqAgwqB8IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHw8YnI+fCDCoDkgfCDCoCDCoCDC
oCDCoCDCoCBORVNURUQgTE9PUFMgT1VURVIgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgfCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB8IMKg
IMKgIMKgIDEgfCDCoCDCoDNNIHwgwqAgwqAgwqAgMjc5IHwgwqAgwqAgKzIgfCDCoCDCoCAxIHwg
wqAgwqAgwqAgMk0gfCDCoCDCoCDCoCB8IMKgIMKgIMKgIHwgwqAgwqAgLiB8IMKgIMKgIMKgIMKg
IMKgfCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB8PGJyPnwgMTAgfCDCoCDCoCDCoCDCoCDCoCDC
oFNUQVRJU1RJQ1MgQ09MTEVDVE9SIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgfCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB8IMKgIMKgIMKgIMKg
IHwgwqAgwqAgwqAgfCDCoCDCoCDCoCAyNzkgfCDCoCDCoCArMiB8IMKgIMKgIDEgfCDCoCDCoCDC
oCAyTSB8IMKgIMKgIMKgIHwgwqAgwqAgwqAgfCDCoCDCoCAuIHwgwqAgwqAgwqAgwqAgwqB8IMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIHw8YnI+fCAxMSB8IMKgIMKgIMKgIMKgIMKgIMKgIE5FU1RF
RCBMT09QUyBPVVRFUiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB8IMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHwgwqAgwqAgwqAgMSB8IMKgIMKg
M00gfCDCoCDCoCDCoCAyNzkgfCDCoCDCoCArMiB8IMKgIMKgIDEgfCDCoCDCoCDCoCAyTSB8IMKg
IMKgIMKgIHwgwqAgwqAgwqAgfCDCoCDCoCAuIHwgwqAgwqAgwqAgwqAgwqB8IMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIHw8YnI+PGJyPjwvZm9udD48ZGl2Pjxicj48L2Rpdj48ZGl2Pjxicj48L2Rp
dj48ZGl2Pjxicj48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2Pjxicj48
L2Rpdj48L2Rpdj48YnI+PGRpdiBjbGFzcz0iZ21haWxfcXVvdGUiPjxkaXYgZGlyPSJsdHIiIGNs
YXNzPSJnbWFpbF9hdHRyIj5PbiBTdW4sIE9jdCAxMCwgMjAyMSBhdCAxMTo0NCBQTSBKb25hdGhh
biBMZXdpcyAmbHQ7PGEgaHJlZj0ibWFpbHRvOmpsZXdpc29yYWNsZUBnbWFpbC5jb20iPmpsZXdp
c29yYWNsZUBnbWFpbC5jb208L2E+Jmd0OyB3cm90ZTo8YnI+PC9kaXY+PGJsb2NrcXVvdGUgY2xh
c3M9ImdtYWlsX3F1b3RlIiBzdHlsZT0ibWFyZ2luOjBweCAwcHggMHB4IDAuOGV4O2JvcmRlci1s
ZWZ0OjFweCBzb2xpZCByZ2IoMjA0LDIwNCwyMDQpO3BhZGRpbmctbGVmdDoxZXgiPjxkaXYgZGly
PSJsdHIiPjxkaXY+WW91JiMzOTtyZSBhIGxpdHRsZSB1bmx1Y2t5IHdpdGggdGhpcyBxdWVyeSwg
YW5kIHRoZXJlJiMzOTtzIGEgbG90IGluIHRoZSBTUUwgTW9uaXRvciB0byB0YWtlIGluIC0gZXNw
ZWNpYWxseSBzaW5jZSB0aGUgU1FMIE1vbml0b3IgcmVwb3J0aW5nIGhhcyBzaG93biB5b3UgYWxs
IHRoZSBwb3NzaWJsZSBhZGFwdGF0aW9ucyB0aGUgcGxhbiBtaWdodCB0YWtlLCBhbmQgdGhhdCBt
YWtlcyBpdCBoYXJkZXIgdG8gaW50ZXJwcmV0IHdoYXQgYWN0dWFsbHkgaGFwcGVuZWQuPC9kaXY+
PGRpdj48YnI+PC9kaXY+PGRpdj5UaGUga2V5IHBvaW50IGlzIHRoYXQgd2hlbiB0aGUgcGxhbiBp
cyBhbGxvd2VkIHRvIGFkYXB0IHRoZXJlIGFyZSB0d28gcGxhY2VzIHdoZXJlIHRoZSBvcHRpbWl6
ZXIgaGFkIGEgcHJlZGljdGlvbiBvZiAxIHJvdyAodGhhdCYjMzk7cyBvcGVyYXRpb25zIDcgYW5k
IDExIC0gdGhlIGxpbmVzIGFmdGVyIHRoZSBTdGF0aXN0aWNzIENvbGxlY3RvciBsaW5lcykuwqDC
oCBJbiBib3RoIGNhc2VzIHRoZSBydW4tdGltZSBlbmdpbmUgZm91bmQgdGhhdCBmYXIgdG9vIG1h
bnkgcm93cyB3ZXJlIGJlaW5nIHByb2R1Y2VkwqAgKHRoZSBjb3VudGluZyBkb25lIGJ5IHRoZSBz
dGF0aXN0aWNzIGNvbGxlY3RvciB3b3VsZG4mIzM5O3QgaGF2ZSB0YWtlbiBtdWNoIHRpbWUsIGl0
IHdvdWxkIA0KcHJvYmFibHkganVzdCBoYXZlIGJlZW4gYnVmZmVyaW5nIGEgZmV3IChodW5kcmVk
KSByb3dzIGJlZm9yZSBtYWtpbmcgdGhlIGRlY2lzaW9uIHRvIHVzZSBhIGhhc2ggam9pbikuPC9k
aXY+PGRpdj48YnI+PC9kaXY+PGRpdj5XaXRoIG9wdGltaXplcl9hZGFwdGl2ZV9yZXBvcnRpbmdf
b25seSA9IHRydWUgdGhlIHJ1bi10aW1lIGVuZ2luZSBoYXMganVzdCBjYXJyaWVkIG9uIHdpdGgg
dGhlIG5lc3RlZCBsb29wIGFuZCBhcyB5b3UgY2FuIHNlZSBmcm9tIHRoZSAmcXVvdDtUaW1lIFN0
YXJ0JnF1b3Q7IGNvbHVtbiBpdCBoYSBhY3R1YWxseSBnb3QgdGhlIGZpcnN0IHJvdyBvZiBpdHMg
cmVzcG9uc2UgcmVhZHkgaW4gdGhlIGZpcnN0IHR3byBzZWNvbmRzLjwvZGl2PjxkaXY+PGJyPjwv
ZGl2PjxkaXY+V2l0aCBvcHRpbWl6ZXJfYWRhcHRpdmVfcmVwb3J0X29ubHkgPSBmYWxzZSwgdGhl
IHJ1bi10aW1lIGVuZ2luZSBoYXMgc3dpdGNoZWQgdG8gYSBoYXNoIGpvaW4gaW4gYm90aCBjYXNl
cy4gU28gb3BlcmF0aW9uIDExIHByb3ZpZGVkIDJNIHJvd3MgKHRha2luZyAxMjkgc2Vjb25kcykg
dG8gb3BlcmF0aW9uIDggdG8gYWxsb3cgdGhlIGZpcnN0IGhhc2ggdGFibGUgYnVpbGQuIE9wZXJh
dGlvbiA4IGNhbGxlZCBvcGVyYXRpb24gNDIgdG8gc3VwcGx5IHRoZSBwcm9iZSB0YWJsZSwgam9p
bmVkIGl0IHRoZW4gcGFzc2VkIHRoZSByZXN1bHRzIHVwIHRvIHRoZSBuZXN0ZWQgbG9vcCBpbiBv
cGVyYXRpb24gNyB3aGljaCB0b29rIDI3IHNlY29uZHMgdG8gZ2V0IHRoZSBkYXRhIGZyb20gb3Bl
cmF0aW9ucyA0MyBhbmQgNDQgdG8gcGFzcyB1cCB0byB0aGUgaGFzaCBqb2luIGF0IG9wZXJhdGlv
biA0IHRvIGNyZWF0ZSB0aGUgYnVpbGQgdGFibGUuIE9wZXJhdGlvbiA0IHRoZW4gY2FsbGVkIG9w
ZXJhdGlvbnMgNDcgYW5kIDQ5IGFzIHRoZSBzZWNvbmQgY2hpbGQgb2YgdGhlIG5lc3RlZCBsb29w
IC0gdGhpcyBzdGFydGVkIGF0wqArMTU3IHNlY29uZHMgKHdoaWNoIGlzIHJvdWdobHkgdGhlIDEz
McKgKyAyNyBJJiMzOTt2ZSBtZW50aW9uZWQpLsKgIDxicj48L2Rpdj48ZGl2Pjxicj48L2Rpdj48
ZGl2PkRvbiYjMzk7dCBiZSBhbGFybWVkIGJ5IHRoZSBUQUJMRSBBQ0NFU1MgU1RPUkFHRSBGVUxM
IEZJUlNUIFJPV1MgYXQgb3BlcmF0aW9uIDQ5LCBpdCB0YWtlcyB2aXJ0dWFsbHkgbm8gdGltZSAo
ZXZlbiB0aG91Z2ggaXQgaGFwcGVucyAyTSB0aW1lcyk7IGFuZCBhIGtleSBkZXRhaWwgdGhhdCBz
YXlzIHRoYXQgaXMgdGhhdCB0aGUgZmlyc3QgYWN0aXZlIG9wZXJhdGlvbiBvZiB0aGUgJnF1b3Q7
VklFVyBQVVNIRUQgUFJFRElDQVRFJnF1b3Q7IGFsc28gaGFwcGVucyBhdCArMTU2LjwvZGl2Pjxk
aXY+PGJyPjwvZGl2PjxkaXY+VGhlIHRpbWUgQUZURVIgdGhlIGZpcnN0IDE1NyBzZWNvbmRzIGlz
IG1vc3RseSB0aGUgNjYxSyByZWFkIHJlcXVlc3RzIHRoYXQgYWNjdW11bGF0ZSBmcm9tIHRoYXQg
cG9pbnQgb253YXJkcy48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2Pj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT08L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PkJvdHRvbSBsaW5lIC0g
aW4gdGhpcyBjYXNlIHRoZSBhZGFwdGl2ZSBmZWF0dXJlIHdhcyB1bmx1Y2t5LiBUaGUgY2FyZGlu
YWxpdHkgZXN0aW1hdGVzIHdlcmUgdmVyeSBsb3csIGJ1dCB0aGUgYWN0dWFsIHdhcyB2ZXJ5IGhp
Z2gsIHNvIHRoZSBydW4tdGltZSBlbmdpbmUgc3dpdGNoZWQgdG8gYSBwYWlyIG9mIGhhc2ggam9p
bnMuIFRoZSBoYXNoIGpvaW5zIHdlcmUgdW5sdWNreSBhbmQgcmVzdWx0ZWQgaW4gYSB2ZXJ5IGxv
bmcgbGF0ZW5jeSAodGltZSB0byBmaXJzdCByb3cpLCBidXQgdGhlIGZhY3QgdGhhdCB0aGUgb3Jk
ZXIgdGhhdCB0aGUgZGF0YSBwYXNzZWQgb24gdXB3YXJkcyBmcm9tIGVhY2ggaGFzaCBqb2luIG1l
YW50IHRoYXQgeW91ciBhY2Nlc3MgdG8gYSBjcml0aWNhbCB0YWJsZSB3YXMgcmFuZG9taXNlZCBh
bmQgcmVzdWx0ZWQgaW4gZmFyIG1vcmUgSS9PLCBhZGRpbmcgY29uc2lkZXJhYmx5IHRvIHRoZSBy
dW4gdGltZS48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PkZvciB0aGlzIHF1ZXJ5IHlvdSBkb24m
IzM5O3QgQVQgUFJFU0VOVCB3YW50IGFuIGFkYXB0aXZlIHBsYW4uIElmIHRoaXMgaXMgYSBjb250
cm9sbGVkIHF1ZXJ5IHRoZW4gaGludGluZyAvKisgbm9fYWRhcHRpdmVfcGxhbiAqLyB3b3VsZCBi
ZSBhIG5pY2Ugd29ya2Fyb3VuZC4gKE9yIGFkZGluZyBhbiBTUUwgUGF0Y2ggaWYgdGhlIHF1ZXJ5
IHRleHQgaXMgZml4ZWQpLiBJdCB3b3VsZCBub3QgYmUgYSBnb29kIHRoaW5nIHRvIGNoYW5nZSB0
aGUgcGFyYW1ldGVyIGdsb2JhbGx5IHRvIGFkZHJlc3Mgb25lIHF1ZXJ5IHRoYXQgd2FzIHVubHVj
a3kuPC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5PZiBjb3Vyc2UgdGhlcmUgaXMgc3RpbGwgdGhl
IHF1ZXN0aW9uIG9mIHdoeSB0aGUgY2FyZGluYWxpdHkgZXN0aW1hdGVzIGFyZSBzbyBiYWQsIGJ1
dCB0aGF0IG1pZ2h0IGJlIGEgc2lkZSBlZmZlY3Qgb2YgeW91ciBzdGF0ZW1lbnQgdGhhdCB5b3Um
IzM5O3JlIHJ1bm5pbmcgdGhpcyBxdWVyeSB3aXRoIGZpcnN0X3Jvd3Mgb3B0aW1pc2F0aW9uLiBJ
ZiB0aGF0IGlzIEVYQUNUTFkgd2hhdCB5b3UgYXJlIGRvaW5nLCByYXRoZXIgdGhhbiBmaXJzdF9y
b3dzXzEgb3IgZmlyc3Rfcm93c18xMCAob3IgMTAwLCBvciAxMDAwKSB0aGVuIHlvdSBzaG91bGRu
JiMzOTt0IGJlLCBhbmQgY2hhbmdpbmcgdG8gb25lIG9mIHRoZSBjb3N0LWJhc2UgZmlyc3Rfcm93
c19OIG9wdGltaXNhdGlvbiBzdHJhdGVnaWVzIHNob3VsZCBiZSB5b3VyIGZpcnN0IGNoYW5nZS48
L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PlRoaXMgbGVhZHMgdG8gYSBj
b3VwbGUgb2YgdGhpbmdzIEkmIzM5O3ZlIG5vdGVkIGRvd24gYXMgc29tZXRoaW5nIHRvIHRlc3Qg
b3IgY2hlY2sgZm9yIG15IG93biBiZW5lZml0LCB2aXo6PC9kaXY+PGRpdj7CoCBEb2VzIGFkYXB0
aXZlIG9wdGltaXphdGlvbiBjby1vcGVyYXRlIGNvcnJlY3RseSB3aXRoIGZpcnN0X3Jvd3NfTiBv
cHRpbWlzYXRpb24/PC9kaXY+PGRpdj7CoCBJcyB0aGVyZSBhIHdheSBpbiB0aGUgY2FsbCBkbyBk
Ym1zX21vbml0b3IgdG8gc2hvdyB0aGUgdXNlZCBleGVjdXRpb24gcGxhbiByYXRoZXIgdGhhbiB0
aGUgZnVsbCBhZGFwdGl2ZSBwYXRoIC0gaXQgd291bGQgYmUgYSBsb3QgZWFzaWVyIHRvIHJlYWQg
KGFuZCBJIGFzc3VtZSB0aGVyZSBpcyBpZiBJIGNoZWNrIHRoZSBtYW51YWxzIG9yIE1PUy4pPC9k
aXY+PGRpdj48YnI+PC9kaXY+PGRpdj5SZWdhcmRzPC9kaXY+PGRpdj5Kb25hdGhhbiBMZXdpczwv
ZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+PGJy
PjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+IDxicj48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2
Pjxicj48L2Rpdj48L2Rpdj48YnI+PGRpdiBjbGFzcz0iZ21haWxfcXVvdGUiPjxkaXYgZGlyPSJs
dHIiIGNsYXNzPSJnbWFpbF9hdHRyIj5PbiBTYXQsIDkgT2N0IDIwMjEgYXQgMTc6MTksIFBhcCAm
bHQ7PGEgaHJlZj0ibWFpbHRvOm9yYWNsZS5kZXZlbG9wZXIzNUBnbWFpbC5jb20iIHRhcmdldD0i
X2JsYW5rIj5vcmFjbGUuZGV2ZWxvcGVyMzVAZ21haWwuY29tPC9hPiZndDsgd3JvdGU6PGJyPjwv
ZGl2PjxibG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9xdW90ZSIgc3R5bGU9Im1hcmdpbjowcHggMHB4
IDBweCAwLjhleDtib3JkZXItbGVmdDoxcHggc29saWQgcmdiKDIwNCwyMDQsMjA0KTtwYWRkaW5n
LWxlZnQ6MWV4Ij48ZGl2IGRpcj0ibHRyIj5UaGFuayB5b3UgSm9uYXRoYW4uwqA8ZGl2Pjxicj48
ZGl2PlRoZXJlIGlzIGEgZGlmZmVyZW5jZSBvZiB+MzUwKyBzZWNvbmRzIGJldHdlZW4gdGhlIHJ1
biB0aW1lIG9mIGJvdGggdGhlIHBsYW5zIGFuZCBvdXQgb2YgdGhpcywgfjEzMSBzZWNvbmRzIGlz
IGNvbnRyaWJ1dGVkwqBieSB0aGUgc3RhdGlzdGljcyBjb2xsZWN0b3Igd2hpY2ggZG9lcyB0aGUg
YWRkaXRpb25hbCBtYXRoZW1hdGljcy9jb3VudGluZyB0byBvcHQgZm9yIHRoZSBiZXN0IHBhdGgg
YXQgdGhhdCBtb21lbnQgKG11c3QgYmUgYmFzZWQgb24gdGhlIHJ1bnRpbWUvYWN0dWFsIGNhcmRp
bmFsaXR5IGluZm9ybWF0aW9uKS4gVGhpcyBxdWVyeSB3YXMgYWN0dWFsbHkgYSBzZWFyY2ggcXVl
cnkgYW5kIHJ1bm5pbmcgd2l0aCBmaXJzdF9yb3dzIGhpbnQgYW5kIGN1c3RvbWVyIGV4cGVjdGlu
ZyB0byBzZWUgdGhlIHJlc3VsdCBhcyBmaXJzdCB+NTAgb2RkIHJvd3MgYXNhcCBvbiB0aGUgc2Ny
ZWVuIGJ1dCB3aXRoIHRoZSBvcHRpbWl6ZXJfYWRhcHRpdmVfcmVwb3J0aW5nX29ubHkgJiMzOTtm
YWxzZSYjMzk7IGl0IHdhcyB1c2luZyBhbm90aGVyIHNldCBvZiBtYXRoZW1hdGljcyhvciBhcyB5
b3UgbWVudGlvbmVkIG11bHRpcGFzc2VzKSBpbiB0aGlzIHF1ZXJ5IGFkZGluZyBzaWduaWZpY2Fu
dCBvdmVyaGVhZCBmb3IgdGhpcyBxdWljayBxdWVyeS4gU28gaXMgaXQgcmVjb21tZW5kZWQgdG8g
aGF2ZSB0aGlzIHBhcmFtZXRlciBzZXQgYXMgJiMzOTt0cnVlJiMzOTsgbWFpbmx5IGluIHRoZSBv
bHRwIGtpbmQgb2YgZW52aXJvbm1lbnQgPyBPciBzaG91bGTCoHRvdGFsbHkgdHVybiB0aGUga2V5
IGRyaXZlciBpLmUuIG9wdGltaXplcl9hZHBhdGl2ZV9wbGFuIGFzIGZhbHNlP8KgPGRpdj48YnI+
PGRpdj5Ob3RlIC0tIEp1c3QgdG8gbm90ZSwgYWZ0ZXIgdGhlIHVwZ3JhZGUgLCBJIHRoaW5rIHRo
ZSBpbmZyYSB0ZWFtIGp1c3Qga2VwdCBpdCBhbGwgZGVmYXVsdMKgaS5lLiBvcHRpbWl6ZXJfYWRh
cHRpdmVfcGxhbi0gdHJ1ZSwgb3B0aW1pemVyX2FkYXB0aXZlX3JlcG9ydGluZ19vbmx5LSBmYWxz
ZSwgb3B0aW1pemVyX2FkYXB0aXZlX3N0YXRpc3RpY3MtIGZhbHNlLiBTbyB3b25kZXJpbmcgaWYg
aXQmIzM5O3MgYWR2aXNhYmxlLyBhbmQgc2FmZSB0byBjaGFuZ2UgZmV3IHRvIG5vbiBkZWZhdWx0
PzwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+QXMgeW91IHJpZ2h0
bHkgZXhwbGFpbmVkLCB0aGVyZSBzZWVtcyB0byBiZSBubyByb2xlIG9mIHJvd2lkIGJhdGNoaW5n
IGluIHRoaXMgcGVyZm9ybWFuY2UgaXNzdWUuIEFnYWluLCBub3QgbXVjaCBleHBlcmllbmNlIGlu
IHJlYWRpbmcgY29tcGxleMKgZXhlY3V0aW9uIHBhdGhzLCBidXQgZnJvbSB0aGUgcGF0aCBpbml0
aWFsbHkgSSB3YXMgaW50ZXJwcmV0aW5nLCBpdCBhcyBib3RoIHBsYW5zIGFyZSBleGFjdGx5IHRo
ZSBzYW1lwqAswqAgd2l0aCBqdXN0IHRoZSBkaWZmZXJlbmNlIGluICYjMzk7cm93aWQgYmF0Y2hp
bmcgb3BlcmF0aW9uLiBCdXQgZnJvbSB5b3VyIGV4cGxhbmF0aW9uLCBJIHNlZSBJIHdhc8KgY29t
cGxldGVseSB3cm9uZy7CoMKgTm93LCBJIGNhbiBzZWUgaW4gdGhlIGdvb2QgcGxhbiBjYXNlIGl0
IGhhcyByZWFkIH4yOG1pbGxpb24gYXQgc3RlcCB+NDYgZm9yIGluZGV4IFRQX1BLIGJ1dCBpbiB0
aGUgYmFkIHBsYW4gY2FzZSBpdCBpc8Kgbm90IG5vdGVkIGluIHRoZSBzcWwgbW9uaXRvci4gYnV0
IGNvbnZlcnNlbHnCoCAswqAgfjVHQiBkYXRhIGJlaW5nIHJlYWQgaW4gdGhlIGJhZCBwbGFuLCBh
dCBzdGVwLTU5IHdpdGggfjY2MWsgcmVhZCByZXF1ZXN0cyBhbmQgaXQgcmVzdWx0ZWQgaW7CoH43
NzBrIHJvd3MgdGhlcmUuIEJ1dCBpbiBjYXNlIG9mIGEgZ29vZCBwbGFuIHRob3NlIGJ5dGVzIHJl
YWQgYW5kIG51bWJlciBvZiByZWFkIHJlcXVlc3RzIGFyZSBub3Qgbm90ZWQuIFNvIGRvZXMgdGhp
cyBwb2ludCB0byB0aGUgZmFjdCB0aGF0IHRoZSBzdGF0aXN0aWNzIGNvbGxlY3RvciBpcyByZWFs
bHkgcGxheWluZyBhIHJvbGUgaW4gdGhlIG9yZGVyIGluIHdoaWNoIGRhdGEgcmVzdWx0cyBvdXQg
ZnJvbSBvbmUgb3BlcmF0aW9uL3N0ZXAgdG8gYW5vdGhlcj88L2Rpdj48ZGl2Pjxicj48L2Rpdj48
L2Rpdj48YnI+PGRpdiBjbGFzcz0iZ21haWxfcXVvdGUiPjxkaXYgZGlyPSJsdHIiIGNsYXNzPSJn
bWFpbF9hdHRyIj5PbiBTYXQsIE9jdCA5LCAyMDIxIGF0IDQ6NDkgUE0gSm9uYXRoYW4gTGV3aXMg
Jmx0OzxhIGhyZWY9Im1haWx0bzpqbGV3aXNvcmFjbGVAZ21haWwuY29tIiB0YXJnZXQ9Il9ibGFu
ayI+amxld2lzb3JhY2xlQGdtYWlsLmNvbTwvYT4mZ3Q7IHdyb3RlOjxicj48L2Rpdj48YmxvY2tx
dW90ZSBjbGFzcz0iZ21haWxfcXVvdGUiIHN0eWxlPSJtYXJnaW46MHB4IDBweCAwcHggMC44ZXg7
Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkIHJnYigyMDQsMjA0LDIwNCk7cGFkZGluZy1sZWZ0OjFleCI+
PGRpdiBkaXI9Imx0ciI+PGRpdiBkaXI9Imx0ciI+PGRpdj48YnI+PC9kaXY+PGRpdj5SZW1lbWJl
ciBJIHdhcyB0YWxraW5nIFBPU1NJQklMSVRJRVMgaW4gbXkgcHJldmlvdXMgcG9zdCwgbm90IGNl
cnRhaW50aWVzLjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+V2l0aCB0aGUgZXh0cmEgaW5mb3Jt
YXRpb24geW91IGhhdmUgbm93IHN1cHBsaWVkIEkgaGF2ZSBhIGJldHRlciBoeXBvdGhlc2lzLCBi
YXNlZCBvbiB0aGUgZmFjdCB0aGF0IHlvdSBoYXZlIGFkYXB0aXZlX3BsYW5zX2VuYWJsZWQgKHdo
aWNoIEkgc2hvdWxkIGhhdmUgcmVhbGlzZWQgaW4gdGhlIGZpcnN0IHBsYWNlKSwgYW5kIHRoYXQg
dGhlIHBsYW5zIHlvdSYjMzk7dmUgc3VwcGxpZWQgYXJlIGRpZmZlcmVudCBpbiBleGFjdGx5IHRo
ZSBUWVBFIG9mIHJlYXNvbiBJIHN1Z2dlc3RlZCwgYnV0IG5vdCBmb3IgdGhlIGV4YWN0IHJlYXNv
bi4gTXkgYmFzaWMgaHlwb3RoZXNpcyBub3cgaXMgdGhhdCB3aGVuIHlvdSBlbmFibGVkIGFkYXB0
aXZlIHBsYW5zIGJ1dCBzZXQgaXQgdG8gcmVwb3J0aW5nIG9ubHkgT3JhY2xlIHdpbGwgYWx3YXlz
IGluY2x1ZGUgdGhlIHN0YXRpc3RpY3MgY29sbGVjdG9yIG9wZXJhdGlvbnMsIGJ1dCBpdCB3aWxs
IG5vdCB1c2UgdGhlbSAoaS5lLiBub3QgY291bnRpbmcgZXRjLCkgdG8gbWFrZSBhIGRlY2lzaW9u
IGFib3V0IHdoZXRoZXIgdG8gdGFrZSBhIGhhc2ggam9pbiBvciBhIG5lc3RlZCBsb29wIGpvaW4u
IEl0IHdpbGwgc2ltcGx5IGdlbmVyYXRlIGEgcGF0aCBiYXNlZCBvbiBpdHMgZmlyc3QgcGFzcyBj
YWxjdWxhdGlvbnMuIDxicj48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PihZb3UgY291bGQgY2hl
Y2sgdGhpcyB3aXRoIGEgc3VpdGFibGUgc2V0IG9mIGV4YW1wbGVzIGFuZCB0ZXN0aW5nIHdpdGgg
KGEpIGFkYXB0aXZlIHBsYW5zIGVuYWJsZSAoYikgYWRhcHRpdmUgcGxhbnMgZW5hYmxlZCBidXQg
cmVwb3J0aW5nIG9ubHkgKGMpIGFkYXB0aXZlIHBsYW5zIGRpc2FibGVkLsKgIFlvdSYjMzk7ZCBu
ZWVkIHRvIHNldCB1cCA0IHBvc3NpYmlsaXRpZXM6wqAgbmxqIGNoYW5naW5nIHRvIGhqIGR1ZSB0
byBhZGFwdGl2ZSBwbGFucywgaGogY2hhbmdpbmcgdG8gbmxqIGR1ZSB0byBhZGFwdGl2ZSBwbGFu
cywgDQpubGogbm90IGNoYW5naW5nLCBoaiBub3QgY2hhbmdpbmcpLjxicj48L2Rpdj48ZGl2Pjxi
cj48L2Rpdj48ZGl2PlNvIExvb2tpbmcgYXQgeW91ciBTUUwgTW9uaXRvciByZXBvcnRzIC0gbGlu
ZXMgNDEgYW5kIDQyIGFzIGEgc3RhcnRpbmcgcG9pbnQ6PC9kaXY+PGRpdj48YnI+PC9kaXY+PGRp
dj5XSXRoIHJlcG9ydGluZyBvbmx5ID0gVFJVRTxicj48L2Rpdj48ZGl2Pj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PTxicj58IElkIHwg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBPcGVyYXRpb24gwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgfCDCoCDCoCDCoCDCoCDCoCDCoCBOYW1lIMKgIMKgIMKgIMKgIMKg
IMKgIMKgfCDCoFJvd3MgwqAgfCBDb3N0IMKgfCDCoCBUaW1lIMKgIMKgfCBTdGFydCDCoHwgRXhl
Y3MgfCDCoCBSb3dzIMKgIHwgUmVhZCDCoHwgUmVhZCDCoHwgwqBNZW0gwqB8PGJyPnwgwqAgwqB8
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgfCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCB8IChFc3RpbSkgfCDCoCDCoCDCoCB8IEFjdGl2ZShzKSB8IEFjdGl2ZSB8
IMKgIMKgIMKgIHwgKEFjdHVhbCkgfCBSZXFzIMKgfCBCeXRlcyB8IChNYXgpIHw8YnI+PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PTxi
cj58IDQxIHwgwqAgwqAgwqAgwqAgwqAgwqBJTkRFWCBSQU5HRSBTQ0FOIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgfCBUQ1hfUEsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqB8IMKgIMKgIMKgIDEgfCDCoCDCoCAyIHwgwqAgwqAgwqAgMjc5IHwgwqAgwqAg
KzIgfCDCoCDCoDJNIHwgwqAgwqAgwqAgMk0gfCDCoCDCoCDCoCB8IMKgIMKgIMKgIHwgwqAgwqAg
LiB8PGJyPnwgNDIgfCDCoCDCoCDCoCDCoCDCoCBJTkRFWCBSQU5HRSBTQ0FOIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHwgVENYX1BLIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgfCDCoCDCoCDCoCAxIHwgwqAgwqAgMiB8IMKgIMKgIMKgIMKgIMKgIHwg
wqAgwqAgwqAgwqB8IMKgIMKgIMKgIHwgwqAgwqAgwqAgwqAgwqB8IMKgIMKgIMKgIHwgwqAgwqAg
wqAgfCDCoCDCoCAuIHw8L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PldpdGggcmVwb3J0aW5nIG9u
bHkgPSBGQUxTRTxicj48L2Rpdj48ZGl2Pj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PGJyPnwgSWQgfCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoE9wZXJhdGlvbiDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCB8IMKgIMKgIMKgIMKgIMKgIMKgIE5hbWUgwqAgwqAgwqAgwqAgwqAg
wqAgwqB8IMKgUm93cyDCoCB8IENvc3QgwqB8IMKgIFRpbWUgwqAgwqB8IFN0YXJ0IMKgfCBFeGVj
cyB8IMKgIFJvd3MgwqAgfCBSZWFkIMKgfCBSZWFkIMKgfCBXcml0ZSB8IFdyaXRlIHwgwqBNZW0g
wqB8PGJyPnwgwqAgwqB8IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgfCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB8IChFc3RpbSkgfCDCoCDCoCDCoCB8IEFjdGl2
ZShzKSB8IEFjdGl2ZSB8IMKgIMKgIMKgIHwgKEFjdHVhbCkgfCBSZXFzIMKgfCBCeXRlcyB8IFJl
cXMgwqB8IEJ5dGVzIHwgKE1heCkgfDxicj49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PTxicj58IDQxIHwg
wqAgwqAgwqAgwqAgwqAgwqBJTkRFWCBSQU5HRSBTQ0FOIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgfCBUQ1hfUEsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqB8IMKgIMKgIMKgIDEgfCDCoCDCoCAyIHwgwqAgwqAgwqAgwqAgwqAgfCDCoCDCoCDCoCDCoHwg
wqAgwqAgwqAgfCDCoCDCoCDCoCDCoCDCoHwgwqAgwqAgwqAgfCDCoCDCoCDCoCB8IMKgIMKgIMKg
IHwgwqAgwqAgwqAgfCDCoCDCoCAuIHw8YnI+fCA0MiB8IMKgIMKgIMKgIMKgIMKgIElOREVYIFJB
TkdFIFNDQU4gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfCBUQ1hfUEsg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB8IMKgIMKgIMKgIDEgfCDCoCDCoCAy
IHwgwqAgwqAgwqAgwqAgMSB8IMKgICsxMzEgfCDCoCDCoCAxIHwgwqAgwqAgOTc2SyB8IMKgIMKg
IMKgIHwgwqAgwqAgwqAgfCDCoCDCoCDCoCB8IMKgIMKgIMKgIHwgwqAgwqAgLiB8PGJyPjwvZGl2
PjxkaXY+PGJyPjwvZGl2PlRoZXNlIHR3byBsaW5lcyBhcmUgdGhlIG9wdGlvbnMgYXZhaWxhYmxl
IGFzIGEgcmVzdWx0IG9mIGEgc3RhdGlzdGljcyBjb2xsZWN0b3IgZnVydGhlciB1cCB0aGUgcGxh
biwgYW5kIG9uZSBwbGFuIHRha2VzIG9wZXJhdGlvbiA0MSwgdGhlIG90aGVyIHRha2VzIG9wZXJh
dGlvbiA0Mjxicj48L2Rpdj48ZGl2IGRpcj0ibHRyIj48YnI+PC9kaXY+PGRpdj5QdXR0aW5nIHRo
ZW0gaW50byBjb250ZXh0IChhZGRpbmcgaW4gc29tZSBwYXJlbnQgYW5kIHNpYmxpbmcgcm93cyk8
L2Rpdj48ZGl2PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTptb25vc3BhY2UiPjxicj48L3NwYW4+
PC9kaXY+PGRpdj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6bW9ub3NwYWNlIj48c3BhbiBzdHls
ZT0iZm9udC1mYW1pbHk6YXJpYWwsc2Fucy1zZXJpZiI+UmVwb3J0aW5nIG9ubHkgPSB0cnVlIC4u
LiBwbGFuIGJhc2VkIG9uIGVzdGltYXRlczwvc3Bhbj48YnI+PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PGJyPnwgSWQgfCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoE9wZXJhdGlvbiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCB8IMKgIMKgIMKgIMKgIMKgIMKgIE5hbWUgwqAgwqAgwqAgwqAgwqAgwqAgwqB8
IMKgUm93cyDCoCB8IENvc3QgwqB8IMKgIFRpbWUgwqAgwqB8IFN0YXJ0IMKgfCBFeGVjcyB8IMKg
IFJvd3MgwqAgfCBSZWFkIMKgfCBSZWFkIMKgfCDCoE1lbSDCoHw8YnI+fCDCoCDCoHwgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqB8IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIHwgKEVzdGltKSB8IMKgIMKgIMKgIHwgQWN0aXZlKHMpIHwgQWN0aXZlIHwgwqAgwqAg
wqAgfCAoQWN0dWFsKSB8IFJlcXMgwqB8IEJ5dGVzIHwgKE1heCkgfDxicj49PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PGJyPnwgwqA3
IHwgwqAgwqAgwqAgwqAgTkVTVEVEIExPT1BTIE9VVEVSIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIHwgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgfCDCoCDCoCDCoCAxIHwgwqAgwqAzTSB8IMKgIMKgIMKgIDI3OSB8IMKgIMKgICsyIHwg
wqAgwqAgMSB8IMKgIMKgIMKgIDJNIHwgwqAgwqAgwqAgfCDCoCDCoCDCoCB8IMKgIMKgIC4gfCDC
oCDCoCDCoCDCoCDCoHwgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfDxicj58IMKgOCB8IMKgIMKg
IMKgIMKgIMKgSEFTSCBKT0lOIE9VVEVSIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIHwgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
fCDCoCDCoCDCoCAxIHwgwqAgwqAzTSB8IMKgIMKgIMKgIDI3OSB8IMKgIMKgICsyIHwgwqAgwqAg
MSB8IMKgIMKgIMKgIDJNIHwgwqAgwqAgwqAgfCDCoCDCoCDCoCB8IMKgIMKgIC4gfDxicj58IMKg
OSB8IMKgIMKgIMKgIMKgIMKgIE5FU1RFRCBMT09QUyBPVVRFUiDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCB8IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIHwgwqAgwqAgwqAgMSB8IMKgIMKgM00gfCDCoCDCoCDCoCAyNzkgfCDCoCDCoCArMiB8
IMKgIMKgIDEgfCDCoCDCoCDCoCAyTSB8IMKgIMKgIMKgIHwgwqAgwqAgwqAgfCDCoCDCoCAuIHw8
YnI+fCAxMCB8IMKgIMKgIMKgIMKgIMKgIMKgU1RBVElTVElDUyBDT0xMRUNUT1IgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB8IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIHwgwqAgwqAgwqAgwqAgfCDCoCDCoCDCoCB8IMKgIMKgIMKgIDI3OSB8IMKg
IMKgICsyIHwgwqAgwqAgMSB8IMKgIMKgIMKgIDJNIHwgwqAgwqAgwqAgfCDCoCDCoCDCoCB8IMKg
IMKgIC4gfDxicj58IDExIHwgwqAgwqAgwqAgwqAgwqAgwqAgTkVTVEVEIExPT1BTIE9VVEVSIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHwgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgfCDCoCDCoCDCoCAxIHwgwqAgwqAzTSB8IMKgIMKgIMKgIDI3
OSB8IMKgIMKgICsyIHwgwqAgwqAgMSB8IMKgIMKgIMKgIDJNIHwgwqAgwqAgwqAgfCDCoCDCoCDC
oCB8IMKgIMKgIC4gfDxicj48YnI+Li4uPGJyPnwgNDEgfCDCoCDCoCDCoCDCoCDCoCDCoElOREVY
IFJBTkdFIFNDQU4gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB8IFRDWF9Q
SyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHwgwqAgwqAgwqAgMSB8IMKgIMKg
IDIgfCDCoCDCoCDCoCAyNzkgfCDCoCDCoCArMiB8IMKgIMKgMk0gfCDCoCDCoCDCoCAyTSB8IMKg
IMKgIMKgIHwgwqAgwqAgwqAgfCDCoCDCoCAuIHw8YnI+fCA0MiB8IMKgIMKgIMKgIMKgIMKgIElO
REVYIFJBTkdFIFNDQU4gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfCBU
Q1hfUEsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB8IMKgIMKgIMKgIDEgfCDC
oCDCoCAyIHwgwqAgwqAgwqAgwqAgwqAgfCDCoCDCoCDCoCDCoHwgwqAgwqAgwqAgfCDCoCDCoCDC
oCDCoCDCoHwgwqAgwqAgwqAgfCDCoCDCoCDCoCB8IMKgIMKgIC4gfDxicj58IDQzIHwgwqAgwqAg
wqAgwqAgwqBUQUJMRSBBQ0NFU1MgQlkgSU5ERVggUk9XSUQgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgfCBUQyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHwgwqAgwqAg
wqAgMSB8IMKgIMKgIDIgfCDCoCDCoCDCoCAyNzkgfCDCoCDCoCArMiB8IMKgIMKgMk0gfCDCoCDC
oCDCoCAyTSB8IDE2MDM3IHwgMTI1TUIgfCDCoCDCoCAuIHwgwqAgwqAgwqAgwqAgwqB8IMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIHw8YnI+PGJyPjxicj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6
YXJpYWwsc2Fucy1zZXJpZiI+UmVwb3J0aW5nIG9ubHkgPSBmYWxzZSAuLi4gcGxhbiBhZGFwdHMg
dG8gY291bnRpbmc8YnI+KE9QVEVSQVRJT04gMTAgZGljdGF0ZXMgYSBIQVNIIEpPSU4gd2hlcmUg
dGhlIGVzdGltYXRlZCBzdGF0cyBzdWdnZXN0ZWQgTkxKKTwvc3Bhbj48YnI+PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT08YnI+fCBJZCB8IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgT3BlcmF0
aW9uIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHwgwqAgwqAgwqAgwqAgwqAgwqAg
TmFtZSDCoCDCoCDCoCDCoCDCoCDCoCDCoHwgwqBSb3dzIMKgIHwgQ29zdCDCoHwgwqAgVGltZSDC
oCDCoHwgU3RhcnQgwqB8IEV4ZWNzIHwgwqAgUm93cyDCoCB8IFJlYWQgwqB8IFJlYWQgwqB8IFdy
aXRlIHwgV3JpdGUgfCDCoE1lbSDCoHw8YnI+fCDCoCDCoHwgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqB8IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHwgKEVzdGlt
KSB8IMKgIMKgIMKgIHwgQWN0aXZlKHMpIHwgQWN0aXZlIHwgwqAgwqAgwqAgfCAoQWN0dWFsKSB8
IFJlcXMgwqB8IEJ5dGVzIHwgUmVxcyDCoHwgQnl0ZXMgfCAoTWF4KSB8PGJyPj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PGJyPnwgwqA3IHwgwqAgwqAgwqAgwqAgTkVTVEVEIExPT1BTIE9VVEVSIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHwgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfCDCoCDCoCDCoCAxIHwgwqAgwqAzTSB8IMKgIMKgIMKg
IMKgMjcgfCDCoCArMTMxIHwgwqAgwqAgMSB8IMKgIMKgIMKgIDJNIHwgwqAgwqAgwqAgfCDCoCDC
oCDCoCB8IMKgIMKgIMKgIHwgwqAgwqAgwqAgfCDCoCDCoCAuIHw8YnI+fCDCoDggfCDCoCDCoCDC
oCDCoCDCoEhBU0ggSk9JTiBPVVRFUiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCB8IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHwg
wqAgwqAgwqAgMSB8IMKgIMKgM00gfCDCoCDCoCDCoCAxNTUgfCDCoCDCoCArMyB8IMKgIMKgIDEg
fCDCoCDCoCDCoCAyTSB8IMKgMzAzNSB8IMKgIDFHQiB8IMKgMzAzNSB8IMKgIDFHQiB8IDMwOU1C
IHw8YnI+fCDCoDkgfCDCoCDCoCDCoCDCoCDCoCBORVNURUQgTE9PUFMgT1VURVIgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCB8IMKgIMKgIMKgIDEgfCDCoCDCoDNNIHwgwqAgwqAgwqAgMTI5IHwg
wqAgwqAgKzMgfCDCoCDCoCAxIHwgwqAgwqAgwqAgMk0gfCDCoCDCoCDCoCB8IMKgIMKgIMKgIHwg
wqAgwqAgwqAgfCDCoCDCoCDCoCB8IMKgIMKgIC4gfDxicj58IDEwIHwgwqAgwqAgwqAgwqAgwqAg
wqBTVEFUSVNUSUNTIENPTExFQ1RPUiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHwg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfCDCoCDCoCDCoCDC
oCB8IMKgIMKgIMKgIHwgwqAgwqAgwqAgMTI5IHwgwqAgwqAgKzMgfCDCoCDCoCAxIHwgwqAgwqAg
wqAgMk0gfCDCoCDCoCDCoCB8IMKgIMKgIMKgIHwgwqAgwqAgwqAgfCDCoCDCoCDCoCB8IMKgIMKg
IC4gfDxicj58IDExIHwgwqAgwqAgwqAgwqAgwqAgwqAgTkVTVEVEIExPT1BTIE9VVEVSIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHwgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgfCDCoCDCoCDCoCAxIHwgwqAgwqAzTSB8IMKgIMKgIMKgIDEyOSB8
IMKgIMKgICszIHwgwqAgwqAgMSB8IMKgIMKgIMKgIDJNIHwgwqAgwqAgwqAgfCDCoCDCoCDCoCB8
IMKgIMKgIMKgIHwgwqAgwqAgwqAgfCDCoCDCoCAuIHw8YnI+Li4uPGJyPnwgNDEgfCDCoCDCoCDC
oCDCoCDCoCDCoElOREVYIFJBTkdFIFNDQU4gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqB8IFRDWF9QSyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHwgwqAg
wqAgwqAgMSB8IMKgIMKgIDIgfCDCoCDCoCDCoCDCoCDCoCB8IMKgIMKgIMKgIMKgfCDCoCDCoCDC
oCB8IMKgIMKgIMKgIMKgIMKgfCDCoCDCoCDCoCB8IMKgIMKgIMKgIHwgwqAgwqAgwqAgfCDCoCDC
oCDCoCB8IMKgIMKgIC4gfDxicj58IDQyIHwgwqAgwqAgwqAgwqAgwqAgSU5ERVggUkFOR0UgU0NB
TiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB8IFRDWF9QSyDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHwgwqAgwqAgwqAgMSB8IMKgIMKgIDIgfCDCoCDC
oCDCoCDCoCAxIHwgwqAgKzEzMSB8IMKgIMKgIDEgfCDCoCDCoCA5NzZLIHwgwqAgwqAgwqAgfCDC
oCDCoCDCoCB8IMKgIMKgIMKgIHwgwqAgwqAgwqAgfCDCoCDCoCAuIHw8YnI+fCA0MyB8IMKgIMKg
IMKgIMKgIMKgVEFCTEUgQUNDRVNTIEJZIElOREVYIFJPV0lEIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIHwgVEMgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB8IMKgIMKg
IMKgIDEgfCDCoCDCoCAyIHwgwqAgwqAgwqAgwqAyNyB8IMKgICsxMzEgfCDCoCDCoDJNIHwgwqAg
wqAgwqAgMk0gfCAyMTU0OSB8IDE2OE1CIHwgwqAgwqAgwqAgfCDCoCDCoCDCoCB8IMKgIMKgIC4g
fDxicj48L3NwYW4+PC9kaXY+PGRpdiBkaXI9Imx0ciI+PGJyPjwvZGl2PjxkaXYgZGlyPSJsdHIi
PjxkaXY+PGJyPjwvZGl2PjxkaXY+QXMgeW91IGNhbiBzZWUsIHRoZSBhYmlsaXR5IHRvIHN3aXRj
aCBwbGFucyBtYWtlcyBhIGJpZyBkaWZmZXJlbmNlIHRvIHRoZSBhbW91bnQgb2YgdGltZSBPcmFj
bGUgc3BlbmRzIHdvcmtpbmcgYmVmb3JlIGl0IHN0YXJ0cyBleGVjdXRpbmcgc3RlcCA3IChzdGFy
dCB0aW1lID0gKzIgc2Vjb25kcyB2cy4gKzEzMSBzZWNvbmRzKS48L2Rpdj48ZGl2Pjxicj48L2Rp
dj48ZGl2PlRoaXMgb25lIGV4dHJhY3QgZnJvbSB0aGUgcGxhbnMgZG9lc24mIzM5O3QgYW5zd2Vy
IHRoZSBxdWVzdGlvbiBhYm91dCB3aHkgJnF1b3Q7dGFibGUgYWNjZXNzIGJ5IGluZGV4IHJvd2lk
IGJhdGNoZWQmcXVvdDsgaGFzIGFwcGVhcmVkOyBub3IgZG9lcyBpdCBleHBsYWluIHRoZSB0b3Rh
bCBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHR3byBleGVjdXRpb25zIGJlY2F1c2UgeW91IGFsc28g
bmVlZCB0byBsb29rIGF0IHRoZSBzdGF0aXN0aWNzIGNvbGxlY3RvciBhdCBvcGVyYXRpb24gNiBh
bmQgdGhlIGltcGFjdCB0aGF0IGhhcyBvbiB3aGljaCBvZiBvcGVyYXRpb24gNDUvNDYgYW5kIDQ3
LzQ4IGdldCBjaG9zZW4uIFRoZSBvdGhlciBwb2ludCB0aGF0IHRoZW4gY29tZXMgdXAgaXMgdGhh
dCB0aGUgb3JkZXIgaW4gd2hpY2ggZGF0YSBhcHBlYXJzIGZyb20gYSBoYXNoIGpvaW4gaXMgKGFs
bW9zdCBjZXJ0YWlubHkpIGRpZmZlcmVudCBmcm9tIHRoZSBvcmRlciBpdCBhcHBlYXJzIGZyb20g
YSBuZXN0ZWQgbG9vcCBqb2luIC0gd2hpY2ggbWVhbnMgdGhhdCB3aGVuIHlvdSB1c2UgdGhlIHJl
c3VsdCBvZiB0aGUgam9pbiB0byBwcm9iZSBvdGhlciB0YWJsZXMgYnkgaW5kZXggdGhlIG9yZGVy
IG9mIHRoZSBkcml2aW5nIGRhdGEgZnJvbSBvbmUgam9pbiBtYXkgYmUgcm91Z2hseSBpbiBsaW5l
IHdpdGggdGhlIGluZGV4ZXMgYW5kIGRhdGEgZnJvbSB0aGUgbmV4dCB0YWJsZShzKSBpbiB0aGUg
am9pbiBhbmQgYmVuZWZpdCBmcm9tIGEgbG90IG9mICZxdW90O3NlbGYtaW5kdWNlZCZxdW90OyBj
YWNoaW5nLCB3aGlsZSB0aGUgb3RoZXIgam9pbiBtaWdodCBwcm9kdWNlIGRhdGEgaW4gd2hhdCBp
cyBlZmZlY3RpdmVseSBhIHJhbmRvbWlzZWQgb3JkZXIgcmVzdWx0aW5nIGluICZxdW90O3NlbGYt
Zmx1c2hpbmcmcXVvdDsgYW5kIG1vcmUgcmFuZG9tIHJlYWRzIC0gYW5kIHRoYXQgbWlnaHQgZXhw
bGFpbiB3aGF0IGhhcHBlbnMgYXQgb3BlcmF0aW9ucyA2MC82MTwvZGl2PjxkaXY+PGJyPjwvZGl2
PjxkaXY+V2hhdCBteSBvYnNlcnZhdGlvbnMgc3VnZ2VzdCBpcyBhIGdvb2QgYXJndW1lbnQgZm9y
IHdoeSB5b3UgaGFkIHN1Y2ggYSBkaWZmZXJlbmNlIGluIHBlcmZvcm1hbmNlLCBhbmQgdGhhdCBp
dCBoYWQgbm90aGluZyB0byBkbyB3aXRoIHRoZSBiYXRjaGluZyBvciBub3Qgb2YgdGhlIHRhYmxl
IGFjY2VzcyBieSByb3dpZC48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PkkgbWF5IHdyaXRlIHRo
aXMgdXAgaW4gbW9yZSBkZXRhaWwgYXMgYSBibG9nIHNvbWUgZGF5LCBidXQgSSBkb24mIzM5O3Qg
aGF2ZSB0aW1lIHJpZ2h0IG5vdy48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PlJlZ2FyZHM8L2Rp
dj48ZGl2PkpvbmF0aGFuIExld2lzPC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj48YnI+PC9kaXY+
PGJyPjxkaXY+IDxicj48L2Rpdj48L2Rpdj48YnI+PGRpdiBjbGFzcz0iZ21haWxfcXVvdGUiPjxk
aXYgZGlyPSJsdHIiIGNsYXNzPSJnbWFpbF9hdHRyIj5PbiBGcmksIDggT2N0IDIwMjEgYXQgMTg6
MzQsIFBhcCAmbHQ7PGEgaHJlZj0ibWFpbHRvOm9yYWNsZS5kZXZlbG9wZXIzNUBnbWFpbC5jb20i
IHRhcmdldD0iX2JsYW5rIj5vcmFjbGUuZGV2ZWxvcGVyMzVAZ21haWwuY29tPC9hPiZndDsgd3Jv
dGU6PGJyPjwvZGl2PjxibG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9xdW90ZSIgc3R5bGU9Im1hcmdp
bjowcHggMHB4IDBweCAwLjhleDtib3JkZXItbGVmdDoxcHggc29saWQgcmdiKDIwNCwyMDQsMjA0
KTtwYWRkaW5nLWxlZnQ6MWV4Ij48ZGl2IGRpcj0ibHRyIj7CoCBJdCYjMzk7cyBmbHVjdHVhdGlu
Zy4gSSBhbSBub3cgbm90IGFibGUgdG8gcmVwcm9kdWNlIHRoZSBzY2VuYXJpb8KgZm9yIHRoYXQg
c2FtZSBzbWFsbCBxdWVyeSBmb3Igd2hpY2ggSSBoYWQgcG9zdGVkIGhlcmUganVzdCBiZWZvcmUu
wqAgQW5kIHlvdSBhcmUgY29ycmVjdCAsIEkgd2FzIGx1Y2tpbHkgaGF2aW5nIHNxbCBtb25pdG9y
cyBzYXZlZC4gSSBhbSBhdHRhY2hpbmcgdGhvc2UgaGVyZS7CoElmIHlvdSBzZWUgdGhhdCwgdGhl
IG1haW4gcXVlcnkgd2FzIHNob3dpbmcgdGhvc2Ugcm93aWQgYmF0Y2hlZCBvcGVyYXRpb25zIHdo
ZW4gd2UgaGF2ZSB0aGXCoA0KDQpvcHRpbWl6ZXJfYWRhcHRpdmVfcmVwb3J0aW5nX29ubHkgc2V0
IGFzIGRlZmF1bHQvZmFsc2UgYW5kIHdhcyB0YWtpbmcgYSBsb25nIHRpbWUgdG8gZmluaXNoIGFu
ZCBhbHNvIHRoZSBmaXJzdCBmZXcgcm93cyB3ZXJlIGFsc28gdGFraW5nIGxvbmdlciB0byBnZXQg
cHJvZHVjZWQgb3V0wqBvZiB0aGUgcXVlcnkuIEJ1dCB0aGUgc2FtcGxlIHNtYWxsIHF1ZXJ5IHdo
aWNoIGkgaGFkIHBvc3RlZCBhIGN1cnNvciBwbGFuIGZvciB3YXMganVzdCBzaG93aW5nIHRoZcKg
b3Bwb3NpdGUgYmVoYXZpb3VyLiBUaGF0IGlzIGdvaW5nIGZvciBhIHJvd2lkIGJhdGNoZWQgcGF0
aCB3aGVuIG9wdGltaXplcl9hZGFwdGl2ZV9yZXBvcnRpbmdfb25seSBzZXRzIGFzIHRydWUuPGRp
dj48YnI+PC9kaXY+PGRpdj5Ib3dldmVyLMKgIG5vdyBJIGFtIHNlZWluZyB0aGF0IHNhbWUgc21h
bGwgcXVlcnkgaW4gYm90aCB0aGUgY2FzZXMgKGlycmVzcGVjdGl2ZSBvZiB2YWx1ZSBvZiBvcHRp
bWl6ZXJfYWRhcHRpdmVfcmVwb3J0aW5nX29ubHkpIGdvaW5nIGZvciAmIzM5O3Jvd2lkIGJhdGNo
ZWQmIzM5OyBleGVjdXRpb24gcGF0aC4gTm90IHN1cmUgaWYgaXQmIzM5O3MganVzdCBzdGF0cyBv
ciBhbnl0aGluZ8KgZWxzZSBpbmZsdWVuY2luZyBhbmQgSSBhbcKgc2VlaW5nIGRpZmZlcmVudCB0
aGluZ3PCoGJlaGF2aW91ci4gSnVzdCB0byBub3RlIHdlIGhhdmUgJiMzOTtvcHRpbWl6ZXJfYWRh
cHRpdmVfcGxhbnMmIzM5OyBzZXQgdG8gdHJ1ZSAsICYjMzk7b3B0aW1pemVyX2FkYXB0aXZlX3N0
YXRpc3RpY3MmIzM5OyBzZXTCoCB0byBmYWxzZS4gVGhlIG9ubHkgY2hhbmdlIHdlIG1hZGUgd2Fz
IG1vdmluZyAmIzM5Ow0KDQpvcHRpbWl6ZXJfYWRhcHRpdmVfcmVwb3J0aW5nX29ubHkmIzM5OyBm
cm9tIGZhbHNlIHRvIHRydWUuPC9kaXY+PGRpdj48ZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+QW5k
IEpvbmF0aGFuIHdoZW4geW91IHNhaWQgdGhlIG9wdGltaXplcl9hZGFwdGl2ZV9yZXBvcnRpbmdf
b25seSA9IHRydWUgd2lsbCBpbnRyb2R1Y2UgJiMzOTtzdGF0aXN0aWNzIGNvbGxlY3RvciYjMzk7
IG9wZXJhdGlvbiwgYnV0IGlmIHlvdSBzZWUgdGhlIGF0dGFjaGVkIHNxbCBtb25pdG9yIGZvciB0
aGUgbWFpbiBxdWVyeSwgaSBhbSBzZWVpbmcgJiMzOTtzdGF0aXN0aWNzIGNvbGxlY3RvciYjMzk7
IGV2ZW4gd2hlbiBvcHRpbWl6ZXJfYWRhcHRpdmVfcmVwb3J0aW5nX29ubHkgaXMgPSBmYWxzZS4g
SXMgdGhhdCBleHBlY3RlZCBiZWhhdmlvdXI/wqA8L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48YnI+
PGRpdiBjbGFzcz0iZ21haWxfcXVvdGUiPjxicj48L2Rpdj4NCjwvYmxvY2txdW90ZT48L2Rpdj4N
CjxkaXY+PGJyPjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+PGJyPjwvZGl2PjwvZGl2Pg0KPC9i
bG9ja3F1b3RlPjwvZGl2Pg0KPC9ibG9ja3F1b3RlPjwvZGl2Pg0KPC9ibG9ja3F1b3RlPjwvZGl2
Pg0K
--0000000000006a601505ce04d868--
--
http://www.freelists.org/webpage/oracle-l


