<?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>256761</bug_id>
          
          <creation_ts>2023-05-13 12:09:58 -0700</creation_ts>
          <short_desc>AX: Avoid hitting the main thread in NSApplicationAccessibilityFocusedUIElement in isolated tree mode.</short_desc>
          <delta_ts>2023-06-08 07:33:45 -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>Accessibility</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andres Gonzalez">andresg_22</reporter>
          <assigned_to name="Andres Gonzalez">andresg_22</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>andresg_22</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>samuel_white</cc>
    
    <cc>tyler_w</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1955255</commentid>
    <comment_count>0</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2023-05-13 12:09:58 -0700</bug_when>
    <thetext>NSApplicationAccessibilityFocusedUIElement is frequently called by AT to track the focus object. Currently it has to hit the main thread every time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1955256</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2023-05-13 12:10:11 -0700</bug_when>
    <thetext>&lt;rdar://problem/109307200&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1955258</commentid>
    <comment_count>2</comment_count>
      <attachid>466345</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2023-05-13 12:32:17 -0700</bug_when>
    <thetext>Created attachment 466345
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1955260</commentid>
    <comment_count>3</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2023-05-13 13:12:17 -0700</bug_when>
    <thetext>Do we need those methods that set the focused tree when we add or update? Seems like maybe this assumption won&apos;t always be true</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1955261</commentid>
    <comment_count>4</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2023-05-13 13:12:49 -0700</bug_when>
    <thetext>Can we assert that callers to focusedTree() will not be on the main thread?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1955275</commentid>
    <comment_count>5</comment_count>
      <attachid>466345</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2023-05-13 17:13:24 -0700</bug_when>
    <thetext>Comment on attachment 466345
Patch

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

NSApplicationAccessibilityFocusedUIElement currently loops through the web process&apos; web pages to get the focused one, and then calls AXObjectCache::focusedObjectForPage, which does a few transformations that I think your patch doesn&apos;t cover now (e.g. active descendant handling, image map focus handling).

Also, I don&apos;t think we have layout tests covering NSApplicationAccessibilityFocusedUIElement, so there&apos;s no way to know our behavior is the same before and after this patch. It would be nice to have tests simulating the tricky bits here -- e.g. removing a focused tree and expecting some result, focusing different webpages within the process, etc.

&gt; Source/WebCore/accessibility/AXTreeStore.h:111
&gt; +    // Assume that if a new tree is being added to the store, this must be the focused tree.
&gt; +    setFocusedTreeID(axID);

What if we&apos;re adding a tree that has no focused element? It probably shouldn&apos;t overwrite the previously focused tree in that case.

&gt; Source/WebCore/accessibility/AXTreeStore.h:143
&gt; +    // If the tree being removed is the focused tree, make s_focusedTreeID invalid.
&gt; +    {
&gt; +        Locker locker { s_storeLock };
&gt; +        if (axID == s_focusedTreeID)
&gt; +            s_focusedTreeID = { };
&gt; +    }

In this case, shouldn&apos;t the focused tree become the second most recently focused tree and not empty? E.g., given this sequence:

1. Tree A is added
2. Element in Tree A is focused, so A is now focused tree
3. Tree B is added with a focused element, tree B is now focused tree
4. Tree B is removed, but A still has a focused element, so it should be the focused tree. But in this patch, we will have no focused tree, which is not accurate, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1955749</commentid>
    <comment_count>6</comment_count>
      <attachid>466370</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2023-05-16 13:37:18 -0700</bug_when>
    <thetext>Created attachment 466370
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1955751</commentid>
    <comment_count>7</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2023-05-16 13:40:45 -0700</bug_when>
    <thetext>(In reply to chris fleizach from comment #3)
&gt; Do we need those methods that set the focused tree when we add or update?
&gt; Seems like maybe this assumption won&apos;t always be true

Reworked the mechanism to keep track of the focused Page based on the ActivityState which is what it is used behind the scene by the Page and WebPage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1955760</commentid>
    <comment_count>8</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2023-05-16 13:50:57 -0700</bug_when>
    <thetext>(In reply to Tyler Wilcock from comment #5)
&gt; Comment on attachment 466345 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=466345&amp;action=review
&gt; 
&gt; NSApplicationAccessibilityFocusedUIElement currently loops through the web
&gt; process&apos; web pages to get the focused one, and then calls
&gt; AXObjectCache::focusedObjectForPage, which does a few transformations that I
&gt; think your patch doesn&apos;t cover now (e.g. active descendant handling, image
&gt; map focus handling).

We need to handle those special cases as a result of a notification, not here. That way the AXIsolatedTree would know the focused object at any time. That should be a separate fix if we are not doing that already.
&gt; 
&gt; Also, I don&apos;t think we have layout tests covering
&gt; NSApplicationAccessibilityFocusedUIElement, so there&apos;s no way to know our
&gt; behavior is the same before and after this patch. It would be nice to have
&gt; tests simulating the tricky bits here -- e.g. removing a focused tree and
&gt; expecting some result, focusing different webpages within the process, etc.
&gt; 
&gt; &gt; Source/WebCore/accessibility/AXTreeStore.h:111
&gt; &gt; +    // Assume that if a new tree is being added to the store, this must be the focused tree.
&gt; &gt; +    setFocusedTreeID(axID);
&gt; 
&gt; What if we&apos;re adding a tree that has no focused element? It probably
&gt; shouldn&apos;t overwrite the previously focused tree in that case.
&gt; 
&gt; &gt; Source/WebCore/accessibility/AXTreeStore.h:143
&gt; &gt; +    // If the tree being removed is the focused tree, make s_focusedTreeID invalid.
&gt; &gt; +    {
&gt; &gt; +        Locker locker { s_storeLock };
&gt; &gt; +        if (axID == s_focusedTreeID)
&gt; &gt; +            s_focusedTreeID = { };
&gt; &gt; +    }
&gt; 
&gt; In this case, shouldn&apos;t the focused tree become the second most recently
&gt; focused tree and not empty? E.g., given this sequence:
&gt; 
&gt; 1. Tree A is added
&gt; 2. Element in Tree A is focused, so A is now focused tree
&gt; 3. Tree B is added with a focused element, tree B is now focused tree
&gt; 4. Tree B is removed, but A still has a focused element, so it should be the
&gt; focused tree. But in this patch, we will have no focused tree, which is not
&gt; accurate, right?

Reworked all this to track the focused tree using the Page ActivityState.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1955769</commentid>
    <comment_count>9</comment_count>
      <attachid>466370</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2023-05-16 15:05:33 -0700</bug_when>
    <thetext>Comment on attachment 466370
Patch

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

Nice, this approach matches the existing one nicely! Is it possible to add a test for this?

&gt; Source/WebCore/accessibility/AXObjectCache.cpp:254
&gt; +        m_pageActivityState = m_document.page()-&gt;activityState();

Is it safe to unconditionally dereference page() here? Some code above null-checks page().

&gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:683
&gt; +void AXIsolatedTree::setPageActivityState(OptionSet&lt;ActivityState&gt; state)
&gt; +{
&gt; +    ASSERT(isMainThread());
&gt; +
&gt; +    Locker locker { s_storeLock };
&gt; +    m_pageActivityState = state;
&gt; +}

Nit, feel free to not address, but seems a little strange to use the s_storeLock for this purpose? Modifying this data doesn&apos;t feel related to the AXTreeStore. Maybe it makes sense to have a dedicated lock -- perhaps there&apos;s some reason that wouldn&apos;t work, though, since I think we rely on holding the lock when querying this state in the new findTree() method.

&gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:320
&gt; +    // Use only if the s_storeLock is already held.
&gt; +    OptionSet&lt;ActivityState&gt; lockedPageActivityState() const { return m_pageActivityState; }

Would it be useful to ASSERT(s_storeLock.isLocked())?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1959463</commentid>
    <comment_count>10</comment_count>
      <attachid>466566</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2023-06-01 18:19:04 -0700</bug_when>
    <thetext>Created attachment 466566
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1959465</commentid>
    <comment_count>11</comment_count>
      <attachid>466568</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2023-06-01 18:44:49 -0700</bug_when>
    <thetext>Created attachment 466568
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1959467</commentid>
    <comment_count>12</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2023-06-01 18:53:49 -0700</bug_when>
    <thetext>(In reply to Tyler Wilcock from comment #9)
&gt; Comment on attachment 466370 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=466370&amp;action=review
&gt; 
&gt; Nice, this approach matches the existing one nicely! Is it possible to add a
&gt; test for this?

Now all tests that call accessibilityController::focusedElement are using this, more than 500 calls in LayoutTests/accessibility.
&gt; 
&gt; &gt; Source/WebCore/accessibility/AXObjectCache.cpp:254
&gt; &gt; +        m_pageActivityState = m_document.page()-&gt;activityState();
&gt; 
&gt; Is it safe to unconditionally dereference page() here? Some code above
&gt; null-checks page().

The only way there is an m_pageID is if document.page() is not null
&gt; 
&gt; &gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:683
&gt; &gt; +void AXIsolatedTree::setPageActivityState(OptionSet&lt;ActivityState&gt; state)
&gt; &gt; +{
&gt; &gt; +    ASSERT(isMainThread());
&gt; &gt; +
&gt; &gt; +    Locker locker { s_storeLock };
&gt; &gt; +    m_pageActivityState = state;
&gt; &gt; +}
&gt; 
&gt; Nit, feel free to not address, but seems a little strange to use the
&gt; s_storeLock for this purpose? Modifying this data doesn&apos;t feel related to
&gt; the AXTreeStore. Maybe it makes sense to have a dedicated lock -- perhaps
&gt; there&apos;s some reason that wouldn&apos;t work, though, since I think we rely on
&gt; holding the lock when querying this state in the new findTree() method.

Yes, we need to hold the store Lock because of finding the focused tree with findAXTree.
&gt; 
&gt; &gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:320
&gt; &gt; +    // Use only if the s_storeLock is already held.
&gt; &gt; +    OptionSet&lt;ActivityState&gt; lockedPageActivityState() const { return m_pageActivityState; }
&gt; 
&gt; Would it be useful to ASSERT(s_storeLock.isLocked())?

Done. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1959569</commentid>
    <comment_count>13</comment_count>
      <attachid>466571</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2023-06-02 10:22:58 -0700</bug_when>
    <thetext>Created attachment 466571
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1959660</commentid>
    <comment_count>14</comment_count>
      <attachid>466571</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2023-06-02 19:57:31 -0700</bug_when>
    <thetext>Comment on attachment 466571
Patch

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

&gt; Source/WebCore/accessibility/AXTreeStore.h:87
&gt; -    static HashMap&lt;AXID, ThreadSafeWeakPtr&lt;AXIsolatedTree&gt;&gt;&amp; isolatedTreeMap() WTF_REQUIRES_LOCK(s_storeLock);
&gt; +    static HashMap&lt;AXID, ThreadSafeWeakPtr&lt;AXIsolatedTree&gt;&gt;&amp; isolatedTreeMap();

Why remove WTF_REQUIRES_LOCK(s_storeLock)? Seems like we still acquire the lock before calling this, right?

&gt; Source/WebCore/page/Page.cpp:2683
&gt; +    auto* localMainFrame = dynamicDowncast&lt;LocalFrame&gt;(m_mainFrame.get());

Should this be a WeakPtr / RefPtr? Seems like non-trivial work happens after we create this pointer, potentially destroying it.

&gt; Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm:242
&gt; +#if ENABLE(ACCESSIBILITY_ISOLATED_TREE)
&gt; +    if (!isMainRunLoop()) {
&gt; +        // Avoid hitting the main thread by getting the focused object from the focused isolated tree.
&gt; +        auto tree = findAXTree([] (AXTreePtr tree) -&gt; bool {
&gt; +            OptionSet&lt;ActivityState&gt; state;
&gt; +            switchOn(tree,
&gt; +                [&amp;state] (RefPtr&lt;AXIsolatedTree&gt;&amp; typedTree) {
&gt; +                    if (typedTree)
&gt; +                        state = typedTree-&gt;lockedPageActivityState();
&gt; +                }
&gt; +                , [] (auto&amp;) { }
&gt; +            );
&gt; +            return state.containsAll({ ActivityState::IsVisible, ActivityState::IsFocused, ActivityState::WindowIsActive });
&gt; +        });
&gt; +
&gt; +        RefPtr object = switchOn(tree,
&gt; +            [] (RefPtr&lt;AXIsolatedTree&gt;&amp; typedTree) -&gt; RefPtr&lt;AXIsolatedObject&gt; {
&gt; +                return typedTree ? typedTree-&gt;focusedNode() : nullptr;
&gt; +            }
&gt; +            , [] (auto&amp;) -&gt; RefPtr&lt;AXIsolatedObject&gt; {
&gt; +                return nullptr;
&gt; +            }
&gt; +        );
&gt; +        return object ? object-&gt;wrapper() : nil;
&gt; +    }
&gt; +#endif
&gt; +
&gt; +    WebPage* page = WebProcess::singleton().focusedWebPage();
&gt; +    if (!page || !page-&gt;accessibilityRemoteObject())
&gt; +        return nil;
&gt; +    return [page-&gt;accessibilityRemoteObject() accessibilityFocusedUIElement];

This new off main-thread codepath will result in different behavior because AXObjectCache::focusedObjectForPage handled two special cases:

    Element* focusedElement = document-&gt;focusedElement();
    if (is&lt;HTMLAreaElement&gt;(focusedElement))
        return focusedImageMapUIElement(downcast&lt;HTMLAreaElement&gt;(focusedElement));

and 

    if (focus-&gt;shouldFocusActiveDescendant()) {
        if (auto* descendant = focus-&gt;activeDescendant())
            focus = descendant;
    }

The former special case has a layout test (fast/events/tab-imagemap.html), but unfortunately said layout test doesn&apos;t test any accessibility state. It was added in https://github.com/WebKit/WebKit/commit/a5d019bcb572b5b60605910ee6ed3238f88848c5.

The latter special case (aria-activedescendant) does not have a layout test at all (added in 2008 with https://github.com/WebKit/WebKit/commit/eb24533a042e5e82dfad152998ac6dced1f8be39).

There&apos;s also this case at the bottom:

    // the HTML element, for example, is focusable but has an AX object that is ignored
    if (focus-&gt;accessibilityIsIgnored())
        focus = focus-&gt;parentObjectUnignored();

We&apos;ll probably need to do something here too when we compute the focused ITM node (if we don&apos;t already).

I understand these probably make sense as separate changes. But it makes me nervous to land this patch and have things be broken for an unknown amount of time until we land those follow-up fixes. What do you think is the best way forward?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1959876</commentid>
    <comment_count>15</comment_count>
      <attachid>466593</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2023-06-05 08:11:23 -0700</bug_when>
    <thetext>Created attachment 466593
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1960132</commentid>
    <comment_count>16</comment_count>
      <attachid>466606</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2023-06-06 14:09:11 -0700</bug_when>
    <thetext>Created attachment 466606
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1960133</commentid>
    <comment_count>17</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2023-06-06 14:15:00 -0700</bug_when>
    <thetext>(In reply to Tyler Wilcock from comment #14)
&gt; Comment on attachment 466571 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=466571&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/accessibility/AXTreeStore.h:87
&gt; &gt; -    static HashMap&lt;AXID, ThreadSafeWeakPtr&lt;AXIsolatedTree&gt;&gt;&amp; isolatedTreeMap() WTF_REQUIRES_LOCK(s_storeLock);
&gt; &gt; +    static HashMap&lt;AXID, ThreadSafeWeakPtr&lt;AXIsolatedTree&gt;&gt;&amp; isolatedTreeMap();
&gt; 
&gt; Why remove WTF_REQUIRES_LOCK(s_storeLock)? Seems like we still acquire the
&gt; lock before calling this, right?

Put it back, at some point it was giving me an error because it was used inside a lambda, but seems ok now.
&gt; 
&gt; &gt; Source/WebCore/page/Page.cpp:2683
&gt; &gt; +    auto* localMainFrame = dynamicDowncast&lt;LocalFrame&gt;(m_mainFrame.get());
&gt; 
&gt; Should this be a WeakPtr / RefPtr? Seems like non-trivial work happens after
&gt; we create this pointer, potentially destroying it.

Fixed.
&gt; 
&gt; &gt; Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm:242
&gt; &gt; +#if ENABLE(ACCESSIBILITY_ISOLATED_TREE)
&gt; &gt; +    if (!isMainRunLoop()) {
&gt; &gt; +        // Avoid hitting the main thread by getting the focused object from the focused isolated tree.
&gt; &gt; +        auto tree = findAXTree([] (AXTreePtr tree) -&gt; bool {
&gt; &gt; +            OptionSet&lt;ActivityState&gt; state;
&gt; &gt; +            switchOn(tree,
&gt; &gt; +                [&amp;state] (RefPtr&lt;AXIsolatedTree&gt;&amp; typedTree) {
&gt; &gt; +                    if (typedTree)
&gt; &gt; +                        state = typedTree-&gt;lockedPageActivityState();
&gt; &gt; +                }
&gt; &gt; +                , [] (auto&amp;) { }
&gt; &gt; +            );
&gt; &gt; +            return state.containsAll({ ActivityState::IsVisible, ActivityState::IsFocused, ActivityState::WindowIsActive });
&gt; &gt; +        });
&gt; &gt; +
&gt; &gt; +        RefPtr object = switchOn(tree,
&gt; &gt; +            [] (RefPtr&lt;AXIsolatedTree&gt;&amp; typedTree) -&gt; RefPtr&lt;AXIsolatedObject&gt; {
&gt; &gt; +                return typedTree ? typedTree-&gt;focusedNode() : nullptr;
&gt; &gt; +            }
&gt; &gt; +            , [] (auto&amp;) -&gt; RefPtr&lt;AXIsolatedObject&gt; {
&gt; &gt; +                return nullptr;
&gt; &gt; +            }
&gt; &gt; +        );
&gt; &gt; +        return object ? object-&gt;wrapper() : nil;
&gt; &gt; +    }
&gt; &gt; +#endif
&gt; &gt; +
&gt; &gt; +    WebPage* page = WebProcess::singleton().focusedWebPage();
&gt; &gt; +    if (!page || !page-&gt;accessibilityRemoteObject())
&gt; &gt; +        return nil;
&gt; &gt; +    return [page-&gt;accessibilityRemoteObject() accessibilityFocusedUIElement];
&gt; 
&gt; This new off main-thread codepath will result in different behavior because
&gt; AXObjectCache::focusedObjectForPage handled two special cases:
&gt; 
&gt;     Element* focusedElement = document-&gt;focusedElement();
&gt;     if (is&lt;HTMLAreaElement&gt;(focusedElement))
&gt;         return
&gt; focusedImageMapUIElement(downcast&lt;HTMLAreaElement&gt;(focusedElement));
&gt; 
&gt; and 
&gt; 
&gt;     if (focus-&gt;shouldFocusActiveDescendant()) {
&gt;         if (auto* descendant = focus-&gt;activeDescendant())
&gt;             focus = descendant;
&gt;     }
&gt; 
&gt; The former special case has a layout test (fast/events/tab-imagemap.html),
&gt; but unfortunately said layout test doesn&apos;t test any accessibility state. It
&gt; was added in
&gt; https://github.com/WebKit/WebKit/commit/
&gt; a5d019bcb572b5b60605910ee6ed3238f88848c5.
&gt; 
&gt; The latter special case (aria-activedescendant) does not have a layout test
&gt; at all (added in 2008 with
&gt; https://github.com/WebKit/WebKit/commit/
&gt; eb24533a042e5e82dfad152998ac6dced1f8be39).
&gt; 
&gt; There&apos;s also this case at the bottom:
&gt; 
&gt;     // the HTML element, for example, is focusable but has an AX object that
&gt; is ignored
&gt;     if (focus-&gt;accessibilityIsIgnored())
&gt;         focus = focus-&gt;parentObjectUnignored();
&gt; 
&gt; We&apos;ll probably need to do something here too when we compute the focused ITM
&gt; node (if we don&apos;t already).
&gt; 
&gt; I understand these probably make sense as separate changes. But it makes me
&gt; nervous to land this patch and have things be broken for an unknown amount
&gt; of time until we land those follow-up fixes. What do you think is the best
&gt; way forward?

See https://bugs.webkit.org/show_bug.cgi?id=257739. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1960146</commentid>
    <comment_count>18</comment_count>
      <attachid>466607</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2023-06-06 15:02:49 -0700</bug_when>
    <thetext>Created attachment 466607
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1960374</commentid>
    <comment_count>19</comment_count>
      <attachid>466627</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2023-06-07 11:38:54 -0700</bug_when>
    <thetext>Created attachment 466627
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1960472</commentid>
    <comment_count>20</comment_count>
      <attachid>466631</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2023-06-07 17:27:31 -0700</bug_when>
    <thetext>Created attachment 466631
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1960531</commentid>
    <comment_count>21</comment_count>
      <attachid>466635</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2023-06-08 06:07:43 -0700</bug_when>
    <thetext>Created attachment 466635
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1960548</commentid>
    <comment_count>22</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2023-06-08 07:33:43 -0700</bug_when>
    <thetext>Committed 264985@main (4ca184ab5339): &lt;https://commits.webkit.org/264985@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 466635.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>466345</attachid>
            <date>2023-05-13 12:32:17 -0700</date>
            <delta_ts>2023-05-16 13:37:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-256761-20230513153216.patch</filename>
            <type>text/plain</type>
            <size>9028</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">RnJvbSAwNTMxNzczM2UwZWVhMjQ2Y2M0MTQzMzc2NTJmMTVhMDAzNzM3NTNhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXMgR29uemFsZXogPGFuZHJlc2dfMjJAYXBwbGUuY29t
PgpEYXRlOiBTYXQsIDEzIE1heSAyMDIzIDEzOjI4OjU1IC0wNDAwClN1YmplY3Q6IFtQQVRDSF0g
QVg6IEF2b2lkIGhpdHRpbmcgdGhlIG1haW4gdGhyZWFkIGluCiBOU0FwcGxpY2F0aW9uQWNjZXNz
aWJpbGl0eUZvY3VzZWRVSUVsZW1lbnQgaW4gaXNvbGF0ZWQgdHJlZSBtb2RlLgogaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1Njc2MSA8cmRhcjovL3Byb2JsZW0vMTA5
MzA3MjAwPgoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpOU0FwcGxpY2F0aW9uQWNjZXNz
aWJpbGl0eUZvY3VzZWRVSUVsZW1lbnQgaXMgZnJlcXVlbnRseSBjYWxsZWQgYnkgQVQgdG8gdHJh
Y2sgdGhlIGZvY3VzIG9iamVjdC4gQ3VycmVudGx5IGl0IGhhcyB0byBoaXQgdGhlIG1haW4gdGhy
ZWFkIGV2ZXJ5IHRpbWUuIFRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBieSBhZGRpbmcgYSB3YXkgdG8g
a2VlcCB0cmFjayBvZiB0aGUgZm9jdXNlZCBBWCB0cmVlIGluIHRoZSBBWFRyZWVTdG9yZSBnbG9i
YWwgY2xhc3MsIGFuZCBnZXR0aW5nIHRoZSBmb2N1c2VkIG9iamVjdCBmcm9tIHRoZSBmb2N1c2Vk
IHRyZWUuCkluIGFkZGl0aW9uLCB0aGlzIHBhdGNoIGFsc28gY2FjaGVzIHRoZSBIZWxwVGV4dCBm
b3IgU2Nyb2xsVmlld3MgYW5kIFdlYkFyZWFzIGVhZ2VybHkgc2luY2UgdGhhdCdzIGFub3RoZXIg
cHJvcGVydHkgcmVxdWVzdGVkIGJ5IEFUIHdoaWxlIHRoZSBpc29sYXRlZCB0cmVlIGlzIGJlaW5n
IGJ1aWx0LgoKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3Bw
OgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6aGFuZGxlRm9jdXNlZFVJRWxlbWVudENoYW5nZWQp
OgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhUcmVlU3RvcmUuaDoKKFdlYkNvcmU6
OkFYVHJlZVN0b3JlPFQ+OjpzZXQpOgooV2ViQ29yZTo6QVhUcmVlU3RvcmU8VD46OmFkZCk6CihX
ZWJDb3JlOjpBWFRyZWVTdG9yZTxUPjo6cmVtb3ZlKToKKFdlYkNvcmU6OkFYVHJlZVN0b3JlPFQ+
OjpzZXRGb2N1c2VkVHJlZUlEKToKKFdlYkNvcmU6OkFYVHJlZVN0b3JlPFQ+Ojpmb2N1c2VkVHJl
ZUlEKToKKFdlYkNvcmU6OkFYVHJlZVN0b3JlPFQ+Ojpmb2N1c2VkVHJlZSk6CiogU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHA6CihX
ZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0Ojppbml0aWFsaXplUHJvcGVydGllcyk6CiogU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaDoKKiBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tOgooV2ViS2l0
OjpOU0FwcGxpY2F0aW9uQWNjZXNzaWJpbGl0eUZvY3VzZWRVSUVsZW1lbnQpOgotLS0KIC4uLi9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgICB8ICA2ICsrLQogU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWFRyZWVTdG9yZS5oICAgIHwgNDUgKysrKysrKysrKysr
KysrKysrKwogLi4uL2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcCAgICAgICAgIHwg
IDEgKwogLi4uL2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oICAgICAgICAgICAgIHwgIDIg
Ky0KIC4uLi9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbSAgICAgICB8IDIxICsr
KysrKysrKwogNSBmaWxlcyBjaGFuZ2VkLCA3MyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygt
KQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNo
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmlu
ZGV4IDAxNjkwYTQyOTA2Zi4uY2I0YWE3ZjYyODYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAgLTE0NzYsOSArMTQ3NiwxMyBAQCB2b2lk
IEFYT2JqZWN0Q2FjaGU6OmhhbmRsZUZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkKE5vZGUqIG9sZE5v
ZGUsIE5vZGUqIG5ld05vZGUsCiAgICAgaWYgKHVwZGF0ZU1vZGFsID09IFVwZGF0ZU1vZGFsOjpZ
ZXMpCiAgICAgICAgIHVwZGF0ZUN1cnJlbnRNb2RhbE5vZGUoKTsKICAgICBoYW5kbGVNZW51SXRl
bVNlbGVjdGVkKG5ld05vZGUpOworCisgICAgLy8gU2luY2UgdGhpcyB0cmVlIGlzIHRoZSBsYXN0
IG9uZSByZWNlaXZpbmcgZm9jdXMgY2hhbmdlIG5vdGlmaWNhdGlvbnMsIG1ha2UgaXQgdGhlIEFY
VHJlZVN0b3JlJ3MgZm9jdXNlZCB0cmVlLgorICAgIHNldEZvY3VzZWRUcmVlSUQobV9pZCk7CisK
ICAgICBwbGF0Zm9ybUhhbmRsZUZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkKG9sZE5vZGUsIG5ld05v
ZGUpOwogfQotICAgIAorCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OnNlbGVjdGVkQ2hpbGRyZW5DaGFu
Z2VkKE5vZGUqIG5vZGUpCiB7CiAgICAgcG9zdE5vdGlmaWNhdGlvbihub2RlLCBBWFNlbGVjdGVk
Q2hpbGRyZW5DaGFuZ2VkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQVhUcmVlU3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhUcmVlU3Rv
cmUuaAppbmRleCBiZjA4OThlMGE3YWIuLjM2ZTlkM2M5NzY0ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWFRyZWVTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQVhUcmVlU3RvcmUuaApAQCAtNTIsNiArNTIsOCBAQCB1c2luZyBBWFRy
ZWVXZWFrUHRyID0gc3RkOjp2YXJpYW50PFdlYWtQdHI8QVhPYmplY3RDYWNoZT4KICNlbmRpZgog
PjsKIAorQVhUcmVlUHRyIGF4VHJlZUZvcklEKEFYSUQpOworCiB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PgogY2xhc3MgQVhUcmVlU3RvcmUgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEFYVHJlZVN0
b3JlKTsKQEAgLTYzLDYgKzY1LDEwIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmUHRyPEFYSXNv
bGF0ZWRUcmVlPiBpc29sYXRlZFRyZWVGb3JJRChBWElEKTsKICNlbmRpZgogCisgICAgc3RhdGlj
IHZvaWQgc2V0Rm9jdXNlZFRyZWVJRChBWElEKTsKKyAgICBzdGF0aWMgQVhJRCBmb2N1c2VkVHJl
ZUlEKCk7CisgICAgc3RhdGljIEFYVHJlZVB0ciBmb2N1c2VkVHJlZSgpOworCiBwcm90ZWN0ZWQ6
CiAgICAgQVhUcmVlU3RvcmUoQVhJRCBheElEID0gZ2VuZXJhdGVOZXdJRCgpKQogICAgICAgICA6
IG1faWQoYXhJRCkKQEAgLTc3LDYgKzgzLDcgQEAgcHJvdGVjdGVkOgogICAgIGNvbnN0IEFYSUQg
bV9pZDsKICAgICBzdGF0aWMgTG9jayBzX3N0b3JlTG9jazsKIHByaXZhdGU6CisgICAgc3RhdGlj
IEFYSUQgc19mb2N1c2VkVHJlZUlEIFdURl9HVUFSREVEX0JZX0xPQ0soc19zdG9yZUxvY2spOwog
ICAgIHN0YXRpYyBIYXNoTWFwPEFYSUQsIFdlYWtQdHI8QVhPYmplY3RDYWNoZT4+JiBsaXZlVHJl
ZU1hcCgpOwogI2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpCiAgICAgc3Rh
dGljIEhhc2hNYXA8QVhJRCwgVGhyZWFkU2FmZVdlYWtQdHI8QVhJc29sYXRlZFRyZWU+PiYgaXNv
bGF0ZWRUcmVlTWFwKCkgV1RGX1JFUVVJUkVTX0xPQ0soc19zdG9yZUxvY2spOwpAQCAtOTksNiAr
MTA2LDkgQEAgaW5saW5lIHZvaWQgQVhUcmVlU3RvcmU8VD46OnNldChBWElEIGF4SUQsIGNvbnN0
IEFYVHJlZVdlYWtQdHImIHRyZWUpCiAgICAgICAgIH0KICNlbmRpZgogICAgICk7CisKKyAgICAv
LyBBc3N1bWUgdGhhdCBpZiBhIG5ldyB0cmVlIGlzIGJlaW5nIGFkZGVkIHRvIHRoZSBzdG9yZSwg
dGhpcyBtdXN0IGJlIHRoZSBmb2N1c2VkIHRyZWUuCisgICAgc2V0Rm9jdXNlZFRyZWVJRChheElE
KTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4KQEAgLTExNywxMSArMTI3LDIxIEBAIGlubGlu
ZSB2b2lkIEFYVHJlZVN0b3JlPFQ+OjphZGQoQVhJRCBheElELCBjb25zdCBBWFRyZWVXZWFrUHRy
JiB0cmVlKQogICAgICAgICB9CiAjZW5kaWYKICAgICApOworCisgICAgLy8gQXNzdW1lIHRoYXQg
aWYgYSBuZXcgdHJlZSBpcyBiZWluZyBhZGRlZCB0byB0aGUgc3RvcmUsIHRoaXMgbXVzdCBiZSB0
aGUgZm9jdXNlZCB0cmVlLgorICAgIHNldEZvY3VzZWRUcmVlSUQoYXhJRCk7CiB9CiAKIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+CiBpbmxpbmUgdm9pZCBBWFRyZWVTdG9yZTxUPjo6cmVtb3ZlKEFYSUQg
YXhJRCkKIHsKKyAgICAvLyBJZiB0aGUgdHJlZSBiZWluZyByZW1vdmVkIGlzIHRoZSBmb2N1c2Vk
IHRyZWUsIG1ha2Ugc19mb2N1c2VkVHJlZUlEIGludmFsaWQuCisgICAgeworICAgICAgICBMb2Nr
ZXIgbG9ja2VyIHsgc19zdG9yZUxvY2sgfTsKKyAgICAgICAgaWYgKGF4SUQgPT0gc19mb2N1c2Vk
VHJlZUlEKQorICAgICAgICAgICAgc19mb2N1c2VkVHJlZUlEID0geyB9OworICAgIH0KKwogICAg
IGlmIChpc01haW5UaHJlYWQoKSkgewogICAgICAgICBsaXZlVHJlZU1hcCgpLnJlbW92ZShheElE
KTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTU4LDYgKzE3OCwyOSBAQCBpbmxpbmUgUmVmUHRyPEFY
SXNvbGF0ZWRUcmVlPiBBWFRyZWVTdG9yZTxUPjo6aXNvbGF0ZWRUcmVlRm9ySUQoQVhJRCBheElE
KQogfQogI2VuZGlmCiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+Cit2b2lkIEFYVHJlZVN0b3JlPFQ+
OjpzZXRGb2N1c2VkVHJlZUlEKEFYSUQgYXhJRCkKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFk
KCkpOworCisgICAgTG9ja2VyIGxvY2tlciB7IHNfc3RvcmVMb2NrIH07CisgICAgc19mb2N1c2Vk
VHJlZUlEID0gYXhJRDsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK0FYSUQgQVhUcmVlU3Rv
cmU8VD46OmZvY3VzZWRUcmVlSUQoKQoreworICAgIExvY2tlciBsb2NrZXIgeyBzX3N0b3JlTG9j
ayB9OworICAgIHJldHVybiBzX2ZvY3VzZWRUcmVlSUQ7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1l
IFQ+CitpbmxpbmUgQVhUcmVlUHRyIEFYVHJlZVN0b3JlPFQ+Ojpmb2N1c2VkVHJlZSgpCit7Cisg
ICAgTG9ja2VyIGxvY2tlciB7IHNfc3RvcmVMb2NrIH07CisgICAgcmV0dXJuIHNfZm9jdXNlZFRy
ZWVJRC5pc1ZhbGlkKCkgPyBheFRyZWVGb3JJRChzX2ZvY3VzZWRUcmVlSUQpIDogbnVsbHB0cjsK
K30KKwogdGVtcGxhdGU8dHlwZW5hbWUgVD4KIGlubGluZSBIYXNoTWFwPEFYSUQsIFdlYWtQdHI8
QVhPYmplY3RDYWNoZT4+JiBBWFRyZWVTdG9yZTxUPjo6bGl2ZVRyZWVNYXAoKQogewpAQCAtMTkw
LDYgKzIzMyw4IEBAIGlubGluZSBBWElEIEFYVHJlZVN0b3JlPFQ+OjpnZW5lcmF0ZU5ld0lEKCkK
IAogdGVtcGxhdGU8dHlwZW5hbWUgVD4KIExvY2sgQVhUcmVlU3RvcmU8VD46OnNfc3RvcmVMb2Nr
OwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK0FYSUQgQVhUcmVlU3RvcmU8VD46OnNfZm9jdXNlZFRy
ZWVJRDsKIAogaW5saW5lIEFYVHJlZVB0ciBheFRyZWVGb3JJRChBWElEIGF4SUQpCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xh
dGVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVl
L0FYSXNvbGF0ZWRPYmplY3QuY3BwCmluZGV4IDBiNzQ5YTliYjRiYS4uOGY2YmQxMDFiYjAwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElz
b2xhdGVkT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xh
dGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcApAQCAtMzExLDYgKzMxMSw3IEBAIHZvaWQgQVhJ
c29sYXRlZE9iamVjdDo6aW5pdGlhbGl6ZVByb3BlcnRpZXMoY29uc3QgUmVmPEFjY2Vzc2liaWxp
dHlPYmplY3Q+JiBheE9iCiAgICAgICAgIC8vIEZvciB0aGUgU2Nyb2xsVmlldyBhbmQgV2ViQXJl
YSBvYmplY3RzLCBjYWNoZSB0aGUgVGl0bGVBdHRyaWJ1dGVWYWx1ZSBhbmQgRGVzY3JpcHRpb25B
dHRyaWJ1dGVWYWx1ZSBlYWdlcmx5IHRvIGF2b2lkIGhpdHRpbmcgdGhlIG1haW4gdGhyZWFkIGlu
IGdldE9yUmV0cmlldmVQcm9wZXJ0eVZhbHVlIGR1cmluZyB0aGUgY29uc3RydWN0aW9uIG9mIHRo
ZSBpc29sYXRlZCB0cmVlLgogICAgICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6VGl0
bGVBdHRyaWJ1dGVWYWx1ZSwgb2JqZWN0LnRpdGxlQXR0cmlidXRlVmFsdWUoKS5pc29sYXRlZENv
cHkoKSk7CiAgICAgICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpEZXNjcmlwdGlvbkF0
dHJpYnV0ZVZhbHVlLCBvYmplY3QuZGVzY3JpcHRpb25BdHRyaWJ1dGVWYWx1ZSgpLmlzb2xhdGVk
Q29weSgpKTsKKyAgICAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OkhlbHBUZXh0LCBv
YmplY3QuaGVscFRleHRBdHRyaWJ1dGVWYWx1ZSgpLmlzb2xhdGVkQ29weSgpKTsKICAgICB9CiAK
ICAgICBpZiAoaXNSb290ID09IElzUm9vdDo6WWVzKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaAppbmRl
eCA0ZDM1OTg4N2RiNzYuLmQ2MzlhMzM3NGM4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oCkBAIC0y
NjYsNyArMjY2LDcgQEAgcHVibGljOgogICAgIGNvbnN0ZXhwciBBWEdlb21ldHJ5TWFuYWdlciog
Z2VvbWV0cnlNYW5hZ2VyKCkgY29uc3QgeyByZXR1cm4gbV9nZW9tZXRyeU1hbmFnZXIuZ2V0KCk7
IH0KIAogICAgIFJlZlB0cjxBWElzb2xhdGVkT2JqZWN0PiByb290Tm9kZSgpOwotICAgIFJlZlB0
cjxBWElzb2xhdGVkT2JqZWN0PiBmb2N1c2VkTm9kZSgpOworICAgIFdFQkNPUkVfRVhQT1JUIFJl
ZlB0cjxBWElzb2xhdGVkT2JqZWN0PiBmb2N1c2VkTm9kZSgpOwogCiAgICAgUmVmUHRyPEFYSXNv
bGF0ZWRPYmplY3Q+IG9iamVjdEZvcklEKGNvbnN0IEFYSUQpIGNvbnN0OwogICAgIFZlY3RvcjxS
ZWZQdHI8QVhDb3JlT2JqZWN0Pj4gb2JqZWN0c0ZvcklEcyhjb25zdCBWZWN0b3I8QVhJRD4mKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29j
b2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1t
CmluZGV4IGY4NDBlNzgyMDg2Yy4uOGM5YmUzZTFmMDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KQEAgLTU4LDYgKzU4LDExIEBA
CiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9Db25maWdGaWxlLmg+CiAjaW1wb3J0IDxKYXZhU2Ny
aXB0Q29yZS9PcHRpb25zLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0FWQXNzZXRNSU1FVHlwZUNhY2hl
Lmg+CisKKyNpZiBFTkFCTEUoQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKQorI2ltcG9ydCA8
V2ViQ29yZS9BWElzb2xhdGVkT2JqZWN0Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0FYSXNvbGF0ZWRU
cmVlLmg+CisjZW5kaWYKICNpbXBvcnQgPFdlYkNvcmUvQVhPYmplY3RDYWNoZS5oPgogI2ltcG9y
dCA8V2ViQ29yZS9DUFVNb25pdG9yLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RlcHJlY2F0ZWRHbG9i
YWxTZXR0aW5ncy5oPgpAQCAtMjA1LDYgKzIxMCwyMiBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRm
b3JtU2V0Q2FjaGVNb2RlbChDYWNoZU1vZGVsKQogI2lmIFVTRShBUFBLSVQpCiBzdGF0aWMgaWQg
TlNBcHBsaWNhdGlvbkFjY2Vzc2liaWxpdHlGb2N1c2VkVUlFbGVtZW50KE5TQXBwbGljYXRpb24q
LCBTRUwpCiB7CisjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkKKyAgICBp
ZiAoIWlzTWFpblJ1bkxvb3AoKSkgeworICAgICAgICAvLyBBdm9pZCBoaXR0aW5nIHRoZSBtYWlu
IHRocmVhZCBieSBnZXR0aW5nIHRoZSBmb2N1c2VkIG9iamVjdCBmcm9tIHRoZSBmb2N1c2VkIGlz
b2xhdGVkIHRyZWUuCisgICAgICAgIGF1dG8gdHJlZSA9IFdlYkNvcmU6OkFYVHJlZVN0b3JlPEFY
SXNvbGF0ZWRUcmVlPjo6Zm9jdXNlZFRyZWUoKTsKKyAgICAgICAgUmVmUHRyIG9iamVjdCA9IHN3
aXRjaE9uKHRyZWUsCisgICAgICAgICAgICBbXSAoY29uc3QgUmVmUHRyPEFYSXNvbGF0ZWRUcmVl
PiYgdHlwZWRUcmVlKSAtPiBSZWZQdHI8QVhJc29sYXRlZE9iamVjdD4geworICAgICAgICAgICAg
ICAgIHJldHVybiB0eXBlZFRyZWUgPyB0eXBlZFRyZWUtPmZvY3VzZWROb2RlKCkgOiBudWxscHRy
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgLCBbXSAoYXV0byYpIC0+IFJlZlB0cjxBWElz
b2xhdGVkT2JqZWN0PiB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAg
ICAgICB9CisgICAgICAgICk7CisgICAgICAgIHJldHVybiBvYmplY3QgPyBvYmplY3QtPndyYXBw
ZXIoKSA6IG5pbDsKKyAgICB9CisjZW5kaWYKKwogICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Ojpy
ZXRyaWV2ZUF1dG9yZWxlYXNlZFZhbHVlRnJvbU1haW5UaHJlYWQ8aWQ+KFtdICgpIC0+IFJldGFp
blB0cjxpZD4gewogICAgICAgICBXZWJQYWdlKiBwYWdlID0gV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkuZm9jdXNlZFdlYlBhZ2UoKTsKICAgICAgICAgaWYgKCFwYWdlIHx8ICFwYWdlLT5hY2Nlc3Np
YmlsaXR5UmVtb3RlT2JqZWN0KCkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>466370</attachid>
            <date>2023-05-16 13:37:18 -0700</date>
            <delta_ts>2023-06-01 18:19:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-256761-20230516163718.patch</filename>
            <type>text/plain</type>
            <size>13694</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">RnJvbSA1MjYxMzVmNzgyZGVhYWJhZGEzZGIxZjZhZDc1ZmNhYTdhMTViYmM4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXMgR29uemFsZXogPGFuZHJlc2dfMjJAYXBwbGUuY29t
PgpEYXRlOiBTYXQsIDEzIE1heSAyMDIzIDEzOjI4OjU1IC0wNDAwClN1YmplY3Q6IFtQQVRDSF0g
QVg6IEF2b2lkIGhpdHRpbmcgdGhlIG1haW4gdGhyZWFkIGluCiBOU0FwcGxpY2F0aW9uQWNjZXNz
aWJpbGl0eUZvY3VzZWRVSUVsZW1lbnQgaW4gaXNvbGF0ZWQgdHJlZSBtb2RlLgogaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1Njc2MSA8cmRhcjovL3Byb2JsZW0vMTA5
MzA3MjAwPgoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpOU0FwcGxpY2F0aW9uQWNjZXNz
aWJpbGl0eUZvY3VzZWRVSUVsZW1lbnQgaXMgZnJlcXVlbnRseSBjYWxsZWQgYnkgQVQgdG8gdHJh
Y2sgdGhlIGZvY3VzIG9iamVjdC4gQ3VycmVudGx5IGl0IGhhcyB0byBoaXQgdGhlIG1haW4gdGhy
ZWFkIGV2ZXJ5IHRpbWUuClRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBieSBhZGRpbmcgYSBtZWNoYW5p
c20gdG8ga2VlcCB0cmFjayBvZiB0aGUgZm9jdXNlZCBBWCB0cmVlIGJhc2VkIG9uIHRoZSBhc3Nv
Y2lhdGVkIFBhZ2UgQWN0aXZpdHlTdGF0ZS4gVGhlbiwgdGhlIGZvY3VzZWQgb2JqZWN0IGlzIHJl
dHJpZXZlZCBmcm9tIHRoZSBmb2N1c2VkIHRyZWUgb2J0YWluZWQgdmlhIEFYVHJlZVN0b3JlOjpm
aW5kVHJlZS4KSW4gYWRkaXRpb24sIHRoaXMgcGF0Y2ggYWxzbyBjYWNoZXMgdGhlIEhlbHBUZXh0
IGZvciBTY3JvbGxWaWV3cyBhbmQgV2ViQXJlYXMgZWFnZXJseSBzaW5jZSB0aGF0J3MgYW5vdGhl
ciBwcm9wZXJ0eSByZXF1ZXN0ZWQgYnkgQVQgd2hpbGUgdGhlIGlzb2xhdGVkIHRyZWUgaXMgYmVp
bmcgYnVpbHQuCi0tLQogLi4uL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNw
cCAgIHwgMTYgKysrKysrKystCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0
Q2FjaGUuaCAgfCAgNSArKysKIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhUcmVlU3Rv
cmUuaCAgICB8IDM0ICsrKysrKysrKysrKysrKysrKysKIC4uLi9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZE9iamVjdC5jcHAgICAgICAgICB8ICAxICsKIC4uLi9pc29sYXRlZHRyZWUvQVhJc29sYXRl
ZFRyZWUuY3BwICAgICAgICAgICB8IDE1ICsrKysrKysrCiAuLi4vaXNvbGF0ZWR0cmVlL0FYSXNv
bGF0ZWRUcmVlLmggICAgICAgICAgICAgfCAgNyArKystCiBTb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwICAgICAgICAgICAgICAgICAgfCAgOCArKysrLQogU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgIHwgIDUgKy0tCiAuLi4vV2ViUHJvY2Vzcy9jb2NvYS9X
ZWJQcm9jZXNzQ29jb2EubW0gICAgICAgfCAzMiArKysrKysrKysrKysrKysrKwogOSBmaWxlcyBj
aGFuZ2VkLCAxMTYgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCAwMTY5MGE0MjkwNmYu
LjY4NmU5NGI1YjRkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
WE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2Jq
ZWN0Q2FjaGUuY3BwCkBAIC0yNTAsNiArMjUwLDggQEAgQVhPYmplY3RDYWNoZTo6QVhPYmplY3RD
YWNoZShEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgICAgIGxvYWRpbmdQcm9ncmVzcyA9IDE7CiAg
ICAgbV9sb2FkaW5nUHJvZ3Jlc3MgPSBsb2FkaW5nUHJvZ3Jlc3M7CiAKKyAgICBpZiAobV9wYWdl
SUQpCisgICAgICAgIG1fcGFnZUFjdGl2aXR5U3RhdGUgPSBtX2RvY3VtZW50LnBhZ2UoKS0+YWN0
aXZpdHlTdGF0ZSgpOwogICAgIEFYVHJlZVN0b3JlOjphZGQobV9pZCwgV2Vha1B0ciB7IHRoaXMg
fSk7CiB9CiAKQEAgLTE0MTcsNiArMTQxOSwxNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRs
ZVJvd0NvdW50Q2hhbmdlZChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBheE9iamVjdCwgRG9jdW1lbgog
ICAgIHBvc3ROb3RpZmljYXRpb24oYXhPYmplY3QsIGRvY3VtZW50LCBBWFJvd0NvdW50Q2hhbmdl
ZCk7CiB9CiAKK3ZvaWQgQVhPYmplY3RDYWNoZTo6b25QYWdlQWN0aXZpdHlTdGF0ZUNoYW5nZWQo
T3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU+IG5ld1N0YXRlKQoreworICAgIEFTU0VSVChtX3BhZ2VJ
RCk7CisKKyAgICBtX3BhZ2VBY3Rpdml0eVN0YXRlID0gbmV3U3RhdGU7CisjaWYgRU5BQkxFKEFD
Q0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkKKyAgICBpZiAoYXV0byB0cmVlID0gQVhJc29sYXRl
ZFRyZWU6OnRyZWVGb3JQYWdlSUQobV9wYWdlSUQpKQorICAgICAgICB0cmVlLT5zZXRQYWdlQWN0
aXZpdHlTdGF0ZShuZXdTdGF0ZSk7CisjZW5kaWYKK30KKwogdm9pZCBBWE9iamVjdENhY2hlOjpv
bkZvY3VzQ2hhbmdlKE5vZGUqIG9sZE5vZGUsIE5vZGUqIG5ld05vZGUpCiB7CiAgICAgaWYgKG5v
ZGVBbmRSZW5kZXJlckFyZVZhbGlkKG5ld05vZGUpICYmIHJlbmRlcmVyTmVlZHNEZWZlcnJlZFVw
ZGF0ZSgqbmV3Tm9kZS0+cmVuZGVyZXIoKSkpIHsKQEAgLTE0NzYsOSArMTQ4OSwxMCBAQCB2b2lk
IEFYT2JqZWN0Q2FjaGU6OmhhbmRsZUZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkKE5vZGUqIG9sZE5v
ZGUsIE5vZGUqIG5ld05vZGUsCiAgICAgaWYgKHVwZGF0ZU1vZGFsID09IFVwZGF0ZU1vZGFsOjpZ
ZXMpCiAgICAgICAgIHVwZGF0ZUN1cnJlbnRNb2RhbE5vZGUoKTsKICAgICBoYW5kbGVNZW51SXRl
bVNlbGVjdGVkKG5ld05vZGUpOworCiAgICAgcGxhdGZvcm1IYW5kbGVGb2N1c2VkVUlFbGVtZW50
Q2hhbmdlZChvbGROb2RlLCBuZXdOb2RlKTsKIH0KLSAgICAKKwogdm9pZCBBWE9iamVjdENhY2hl
OjpzZWxlY3RlZENoaWxkcmVuQ2hhbmdlZChOb2RlKiBub2RlKQogewogICAgIHBvc3ROb3RpZmlj
YXRpb24obm9kZSwgQVhTZWxlY3RlZENoaWxkcmVuQ2hhbmdlZCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCmluZGV4IDY2NjM1NmQ5MzhkMS4uMTEyZmEz
MzlmN2M2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0
Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
aApAQCAtMTc3LDYgKzE3NywxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgYXR0YWNoV3JhcHBlcihB
Y2Nlc3NpYmlsaXR5T2JqZWN0Kik7CiAKIHB1YmxpYzoKKyAgICB2b2lkIG9uUGFnZUFjdGl2aXR5
U3RhdGVDaGFuZ2VkKE9wdGlvblNldDxBY3Rpdml0eVN0YXRlPik7CisgICAgdm9pZCBzZXRQYWdl
QWN0aXZpdHlTdGF0ZShPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZT4gc3RhdGUpIHsgbV9wYWdlQWN0
aXZpdHlTdGF0ZSA9IHN0YXRlOyB9CisgICAgT3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU+IHBhZ2VB
Y3Rpdml0eVN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlQWN0aXZpdHlTdGF0ZTsgfQorCiAg
ICAgdm9pZCBjaGlsZHJlbkNoYW5nZWQoTm9kZSosIE5vZGUqIG5ld0NoaWxkID0gbnVsbHB0cik7
CiAgICAgdm9pZCBjaGlsZHJlbkNoYW5nZWQoUmVuZGVyT2JqZWN0KiwgUmVuZGVyT2JqZWN0KiBu
ZXdDaGlsZCA9IG51bGxwdHIpOwogICAgIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKEFjY2Vzc2liaWxp
dHlPYmplY3QqKTsKQEAgLTU3Niw2ICs1ODAsNyBAQCBwcml2YXRlOgogCiAgICAgRG9jdW1lbnQm
IG1fZG9jdW1lbnQ7CiAgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gbV9w
YWdlSUQ7IC8vIGNvbnN0YW50IGZvciBvYmplY3QncyBsaWZldGltZS4KKyAgICBPcHRpb25TZXQ8
QWN0aXZpdHlTdGF0ZT4gbV9wYWdlQWN0aXZpdHlTdGF0ZTsKICAgICBIYXNoTWFwPEFYSUQsIFJl
ZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0Pj4gbV9vYmplY3RzOwogICAgIEhhc2hNYXA8UmVuZGVy
T2JqZWN0KiwgQVhJRD4gbV9yZW5kZXJPYmplY3RNYXBwaW5nOwogICAgIEhhc2hNYXA8V2lkZ2V0
KiwgQVhJRD4gbV93aWRnZXRPYmplY3RNYXBwaW5nOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWFRyZWVTdG9yZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BWFRyZWVTdG9yZS5oCmluZGV4IGJmMDg5OGUwYTdhYi4uODEwYTdlNzliNGY3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYVHJlZVN0b3JlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWFRyZWVTdG9yZS5oCkBAIC0yNSw2ICsyNSw3
IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZh
Y2UuaCIKKyNpbmNsdWRlICJBY3Rpdml0eVN0YXRlLmgiCiAjaW5jbHVkZSA8dmFyaWFudD4KICNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CkBAIC01Miw2ICs1
Myw4IEBAIHVzaW5nIEFYVHJlZVdlYWtQdHIgPSBzdGQ6OnZhcmlhbnQ8V2Vha1B0cjxBWE9iamVj
dENhY2hlPgogI2VuZGlmCiA+OwogCitBWFRyZWVQdHIgYXhUcmVlRm9ySUQoQVhJRCk7CisKIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+CiBjbGFzcyBBWFRyZWVTdG9yZSB7CiAgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoQVhUcmVlU3RvcmUpOwpAQCAtNjMsNiArNjYsOCBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIFJlZlB0cjxBWElzb2xhdGVkVHJlZT4gaXNvbGF0ZWRUcmVlRm9ySUQoQVhJRCk7CiAjZW5k
aWYKIAorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBGPiBzdGF0aWMgQVhUcmVlUHRyIGZpbmRUcmVl
KEYmJik7CisKIHByb3RlY3RlZDoKICAgICBBWFRyZWVTdG9yZShBWElEIGF4SUQgPSBnZW5lcmF0
ZU5ld0lEKCkpCiAgICAgICAgIDogbV9pZChheElEKQpAQCAtMTU4LDYgKzE2MywzNSBAQCBpbmxp
bmUgUmVmUHRyPEFYSXNvbGF0ZWRUcmVlPiBBWFRyZWVTdG9yZTxUPjo6aXNvbGF0ZWRUcmVlRm9y
SUQoQVhJRCBheElEKQogfQogI2VuZGlmCiAKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgordGVtcGxh
dGU8dHlwZW5hbWUgRj4KK0FYVHJlZVB0ciBBWFRyZWVTdG9yZTxUPjo6ZmluZFRyZWUoRiYmIG1h
dGNoKQoreworICAgIGlmIChpc01haW5UaHJlYWQoKSkgeworICAgICAgICBmb3IgKFdlYWtQdHIg
dHJlZSA6IGxpdmVUcmVlTWFwKCkudmFsdWVzKCkpIHsKKyAgICAgICAgICAgIGlmICghdHJlZSkK
KyAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgaWYgKG1hdGNoKHRyZWUp
KQorICAgICAgICAgICAgICAgIHJldHVybiB0cmVlOworICAgICAgICB9CisgICAgICAgIHJldHVy
biBudWxscHRyOworICAgIH0KKworI2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RS
RUUpCisgICAgTG9ja2VyIGxvY2tlciB7IHNfc3RvcmVMb2NrIH07CisgICAgZm9yIChhdXRvJiBl
bnRyeSA6IGlzb2xhdGVkVHJlZU1hcCgpKSB7CisgICAgICAgIFJlZlB0ciB0cmVlID0gZW50cnku
dmFsdWUuZ2V0KCk7CisgICAgICAgIGlmICghdHJlZSkKKyAgICAgICAgICAgIGNvbnRpbnVlOwor
CisgICAgICAgIGlmIChtYXRjaCh0cmVlKSkKKyAgICAgICAgICAgIHJldHVybiB0cmVlOworICAg
IH0KKyAgICByZXR1cm4gbnVsbHB0cjsKKyNlbmRpZgorfQorCiB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PgogaW5saW5lIEhhc2hNYXA8QVhJRCwgV2Vha1B0cjxBWE9iamVjdENhY2hlPj4mIEFYVHJlZVN0
b3JlPFQ+OjpsaXZlVHJlZU1hcCgpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCmluZGV4
IDBiNzQ5YTliYjRiYS4uOGY2YmQxMDFiYjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNw
cApAQCAtMzExLDYgKzMxMSw3IEBAIHZvaWQgQVhJc29sYXRlZE9iamVjdDo6aW5pdGlhbGl6ZVBy
b3BlcnRpZXMoY29uc3QgUmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+JiBheE9iCiAgICAgICAgIC8v
IEZvciB0aGUgU2Nyb2xsVmlldyBhbmQgV2ViQXJlYSBvYmplY3RzLCBjYWNoZSB0aGUgVGl0bGVB
dHRyaWJ1dGVWYWx1ZSBhbmQgRGVzY3JpcHRpb25BdHRyaWJ1dGVWYWx1ZSBlYWdlcmx5IHRvIGF2
b2lkIGhpdHRpbmcgdGhlIG1haW4gdGhyZWFkIGluIGdldE9yUmV0cmlldmVQcm9wZXJ0eVZhbHVl
IGR1cmluZyB0aGUgY29uc3RydWN0aW9uIG9mIHRoZSBpc29sYXRlZCB0cmVlLgogICAgICAgICBz
ZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6VGl0bGVBdHRyaWJ1dGVWYWx1ZSwgb2JqZWN0LnRp
dGxlQXR0cmlidXRlVmFsdWUoKS5pc29sYXRlZENvcHkoKSk7CiAgICAgICAgIHNldFByb3BlcnR5
KEFYUHJvcGVydHlOYW1lOjpEZXNjcmlwdGlvbkF0dHJpYnV0ZVZhbHVlLCBvYmplY3QuZGVzY3Jp
cHRpb25BdHRyaWJ1dGVWYWx1ZSgpLmlzb2xhdGVkQ29weSgpKTsKKyAgICAgICAgc2V0UHJvcGVy
dHkoQVhQcm9wZXJ0eU5hbWU6OkhlbHBUZXh0LCBvYmplY3QuaGVscFRleHRBdHRyaWJ1dGVWYWx1
ZSgpLmlzb2xhdGVkQ29weSgpKTsKICAgICB9CiAKICAgICBpZiAoaXNSb290ID09IElzUm9vdDo6
WWVzKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVk
dHJlZS9BWElzb2xhdGVkVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lz
b2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAKaW5kZXggMWRlMjdmYzZiNTczLi5jOGFiYzFk
OTExMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0
cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAKQEAgLTUxLDYgKzUxLDcgQEAgQVhJc29s
YXRlZFRyZWU6OkFYSXNvbGF0ZWRUcmVlKEFYT2JqZWN0Q2FjaGUmIGF4T2JqZWN0Q2FjaGUpCiB7
CiAgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OkFYSXNvbGF0ZWRUcmVlIl9zKTsKICAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIG1fcGFnZUFjdGl2aXR5U3RhdGUgPSBheE9iamVj
dENhY2hlLm1fcGFnZUFjdGl2aXR5U3RhdGU7CiB9CiAKIEFYSXNvbGF0ZWRUcmVlOjp+QVhJc29s
YXRlZFRyZWUoKQpAQCAtNjczLDYgKzY3NCwyMCBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjp1cGRh
dGVDaGlsZHJlbihBY2Nlc3NpYmlsaXR5T2JqZWN0JiBheE9iamVjdCwgUmVzb2x2ZU5vZGVDaAog
ICAgIHVwZGF0ZU5vZGVBbmREZXBlbmRlbnRQcm9wZXJ0aWVzKCpheEFuY2VzdG9yKTsKIH0KIAor
dm9pZCBBWElzb2xhdGVkVHJlZTo6c2V0UGFnZUFjdGl2aXR5U3RhdGUoT3B0aW9uU2V0PEFjdGl2
aXR5U3RhdGU+IHN0YXRlKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisKKyAgICBM
b2NrZXIgbG9ja2VyIHsgc19zdG9yZUxvY2sgfTsKKyAgICBtX3BhZ2VBY3Rpdml0eVN0YXRlID0g
c3RhdGU7Cit9CisKK09wdGlvblNldDxBY3Rpdml0eVN0YXRlPiBBWElzb2xhdGVkVHJlZTo6cGFn
ZUFjdGl2aXR5U3RhdGUoKSBjb25zdAoreworICAgIExvY2tlciBsb2NrZXIgeyBzX3N0b3JlTG9j
ayB9OworICAgIHJldHVybiBtX3BhZ2VBY3Rpdml0eVN0YXRlOworfQorCiBSZWZQdHI8QVhJc29s
YXRlZE9iamVjdD4gQVhJc29sYXRlZFRyZWU6OmZvY3VzZWROb2RlKCkKIHsKICAgICBBWFRSQUNF
KCJBWElzb2xhdGVkVHJlZTo6Zm9jdXNlZE5vZGUiX3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgKaW5k
ZXggNGQzNTk4ODdkYjc2Li40YWNlMzQzNGJhM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaApAQCAt
MjY2LDcgKzI2Niw3IEBAIHB1YmxpYzoKICAgICBjb25zdGV4cHIgQVhHZW9tZXRyeU1hbmFnZXIq
IGdlb21ldHJ5TWFuYWdlcigpIGNvbnN0IHsgcmV0dXJuIG1fZ2VvbWV0cnlNYW5hZ2VyLmdldCgp
OyB9CiAKICAgICBSZWZQdHI8QVhJc29sYXRlZE9iamVjdD4gcm9vdE5vZGUoKTsKLSAgICBSZWZQ
dHI8QVhJc29sYXRlZE9iamVjdD4gZm9jdXNlZE5vZGUoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBS
ZWZQdHI8QVhJc29sYXRlZE9iamVjdD4gZm9jdXNlZE5vZGUoKTsKIAogICAgIFJlZlB0cjxBWElz
b2xhdGVkT2JqZWN0PiBvYmplY3RGb3JJRChjb25zdCBBWElEKSBjb25zdDsKICAgICBWZWN0b3I8
UmVmUHRyPEFYQ29yZU9iamVjdD4+IG9iamVjdHNGb3JJRHMoY29uc3QgVmVjdG9yPEFYSUQ+Jik7
CkBAIC0zMTQsNiArMzE0LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGFwcGx5UGVuZGluZ0NoYW5n
ZXMoKTsKIAogICAgIEFYSUQgdHJlZUlEKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQorICAgIHZv
aWQgc2V0UGFnZUFjdGl2aXR5U3RhdGUoT3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU+KTsKKyAgICBP
cHRpb25TZXQ8QWN0aXZpdHlTdGF0ZT4gcGFnZUFjdGl2aXR5U3RhdGUoKSBjb25zdDsKKyAgICAv
LyBVc2Ugb25seSBpZiB0aGUgc19zdG9yZUxvY2sgaXMgYWxyZWFkeSBoZWxkLgorICAgIE9wdGlv
blNldDxBY3Rpdml0eVN0YXRlPiBsb2NrZWRQYWdlQWN0aXZpdHlTdGF0ZSgpIGNvbnN0IHsgcmV0
dXJuIG1fcGFnZUFjdGl2aXR5U3RhdGU7IH0KIAogcHJpdmF0ZToKICAgICBBWElzb2xhdGVkVHJl
ZShBWE9iamVjdENhY2hlJik7CkBAIC0zMzksNiArMzQzLDcgQEAgcHJpdmF0ZToKIAogICAgIHVu
c2lnbmVkIG1fbWF4VHJlZURlcHRoIHsgMCB9OwogICAgIFdlYWtQdHI8QVhPYmplY3RDYWNoZT4g
bV9heE9iamVjdENhY2hlOworICAgIE9wdGlvblNldDxBY3Rpdml0eVN0YXRlPiBtX3BhZ2VBY3Rp
dml0eVN0YXRlOwogICAgIFJlZlB0cjxBWEdlb21ldHJ5TWFuYWdlcj4gbV9nZW9tZXRyeU1hbmFn
ZXI7CiAgICAgYm9vbCBtX3VzZWRPbkFYVGhyZWFkIHsgdHJ1ZSB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cAppbmRleCBhNTQ1MTU3NjZiNGEuLjVhNzQxNDY2YmY3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBA
IC0yNjg4LDggKzI2ODgsOSBAQCB2b2lkIFBhZ2U6OnNldEFjdGl2aXR5U3RhdGUoT3B0aW9uU2V0
PEFjdGl2aXR5U3RhdGU+IGFjdGl2aXR5U3RhdGUpCiAgICAgICAgIHNldElzSW5XaW5kb3dJbnRl
cm5hbChhY3Rpdml0eVN0YXRlLmNvbnRhaW5zKEFjdGl2aXR5U3RhdGU6OklzSW5XaW5kb3cpKTsK
ICAgICBpZiAoY2hhbmdlZCAmIEFjdGl2aXR5U3RhdGU6OklzVmlzdWFsbHlJZGxlKQogICAgICAg
ICBzZXRJc1Zpc3VhbGx5SWRsZUludGVybmFsKGFjdGl2aXR5U3RhdGUuY29udGFpbnMoQWN0aXZp
dHlTdGF0ZTo6SXNWaXN1YWxseUlkbGUpKTsKKworICAgIGF1dG8qIGxvY2FsTWFpbkZyYW1lID0g
ZHluYW1pY0Rvd25jYXN0PExvY2FsRnJhbWU+KG1fbWFpbkZyYW1lLmdldCgpKTsKICAgICBpZiAo
Y2hhbmdlZCAmIEFjdGl2aXR5U3RhdGU6OldpbmRvd0lzQWN0aXZlKSB7Ci0gICAgICAgIGF1dG8q
IGxvY2FsTWFpbkZyYW1lID0gZHluYW1pY0Rvd25jYXN0PExvY2FsRnJhbWU+KG1fbWFpbkZyYW1l
LmdldCgpKTsKICAgICAgICAgaWYgKGF1dG8qIHZpZXcgPSBsb2NhbE1haW5GcmFtZSA/IGxvY2Fs
TWFpbkZyYW1lLT52aWV3KCkgOiBudWxscHRyKQogICAgICAgICAgICAgdmlldy0+dXBkYXRlVGls
ZWRCYWNraW5nQWRhcHRpdmVTaXppbmcoKTsKICAgICB9CkBAIC0yNzA1LDYgKzI3MDYsMTEgQEAg
dm9pZCBQYWdlOjpzZXRBY3Rpdml0eVN0YXRlKE9wdGlvblNldDxBY3Rpdml0eVN0YXRlPiBhY3Rp
dml0eVN0YXRlKQogICAgICAgICBzdG9wS2V5Ym9hcmRTY3JvbGxBbmltYXRpb24oKTsKICAgICB9
CiAKKyAgICBpZiAoYXV0byogZG9jdW1lbnQgPSBsb2NhbE1haW5GcmFtZSA/IGxvY2FsTWFpbkZy
YW1lLT5kb2N1bWVudCgpIDogbnVsbHB0cikgeworICAgICAgICBpZiAoYXV0byogY2FjaGUgPSBk
b2N1bWVudC0+ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+b25Q
YWdlQWN0aXZpdHlTdGF0ZUNoYW5nZWQobV9hY3Rpdml0eVN0YXRlKTsKKyAgICB9CisKICAgICBp
ZiAobV9wZXJmb3JtYW5jZU1vbml0b3IpCiAgICAgICAgIG1fcGVyZm9ybWFuY2VNb25pdG9yLT5h
Y3Rpdml0eVN0YXRlQ2hhbmdlZChvbGRBY3Rpdml0eVN0YXRlLCBhY3Rpdml0eVN0YXRlKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggNWEz
YzNlMTZkNmQ0Li4zOWVmMDQyMmMwZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC01Njk3LDEwICs1Njk3LDcgQEAgYm9vbCBXZWJQYWdlOjp3
aW5kb3dJc0ZvY3VzZWQoKSBjb25zdAogCiBib29sIFdlYlBhZ2U6OndpbmRvd0FuZFdlYlBhZ2VB
cmVGb2N1c2VkKCkgY29uc3QKIHsKLSAgICBpZiAoIWlzVmlzaWJsZSgpKQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5pc0ZvY3Vz
ZWQoKSAmJiBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLmlzQWN0aXZlKCk7CisgICAgcmV0dXJu
IGlzVmlzaWJsZSgpICYmIG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuaXNGb2N1c2VkKCkgJiYg
bV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5pc0FjdGl2ZSgpOwogfQogCiB2b2lkIFdlYlBhZ2U6
OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNv
ZGVyJiBkZWNvZGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1dlYlByb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQ
cm9jZXNzQ29jb2EubW0KaW5kZXggZjg0MGU3ODIwODZjLi5hYTZiMzJiNWZjYmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQpAQCAt
NTgsNiArNTgsMTEgQEAKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0NvbmZpZ0ZpbGUuaD4KICNp
bXBvcnQgPEphdmFTY3JpcHRDb3JlL09wdGlvbnMuaD4KICNpbXBvcnQgPFdlYkNvcmUvQVZBc3Nl
dE1JTUVUeXBlQ2FjaGUuaD4KKworI2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RS
RUUpCisjaW1wb3J0IDxXZWJDb3JlL0FYSXNvbGF0ZWRPYmplY3QuaD4KKyNpbXBvcnQgPFdlYkNv
cmUvQVhJc29sYXRlZFRyZWUuaD4KKyNlbmRpZgogI2ltcG9ydCA8V2ViQ29yZS9BWE9iamVjdENh
Y2hlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0NQVU1vbml0b3IuaD4KICNpbXBvcnQgPFdlYkNvcmUv
RGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzLmg+CkBAIC0yMDUsNiArMjEwLDMzIEBAIHZvaWQgV2Vi
UHJvY2Vzczo6cGxhdGZvcm1TZXRDYWNoZU1vZGVsKENhY2hlTW9kZWwpCiAjaWYgVVNFKEFQUEtJ
VCkKIHN0YXRpYyBpZCBOU0FwcGxpY2F0aW9uQWNjZXNzaWJpbGl0eUZvY3VzZWRVSUVsZW1lbnQo
TlNBcHBsaWNhdGlvbiosIFNFTCkKIHsKKyNpZiBFTkFCTEUoQUNDRVNTSUJJTElUWV9JU09MQVRF
RF9UUkVFKQorICAgIGlmICghaXNNYWluUnVuTG9vcCgpKSB7CisgICAgICAgIC8vIEF2b2lkIGhp
dHRpbmcgdGhlIG1haW4gdGhyZWFkIGJ5IGdldHRpbmcgdGhlIGZvY3VzZWQgb2JqZWN0IGZyb20g
dGhlIGZvY3VzZWQgaXNvbGF0ZWQgdHJlZS4KKyAgICAgICAgYXV0byB0cmVlID0gV2ViQ29yZTo6
QVhUcmVlU3RvcmU8QVhJc29sYXRlZFRyZWU+OjpmaW5kVHJlZShbXSAoY29uc3QgQVhUcmVlUHRy
JiB0cmVlKSAtPiBib29sIHsKKyAgICAgICAgICAgIE9wdGlvblNldDxBY3Rpdml0eVN0YXRlPiBz
dGF0ZTsKKyAgICAgICAgICAgIHN3aXRjaE9uKHRyZWUsCisgICAgICAgICAgICAgICAgWyZzdGF0
ZV0gKGNvbnN0IFJlZlB0cjxBWElzb2xhdGVkVHJlZT4mIHR5cGVkVHJlZSkgeworICAgICAgICAg
ICAgICAgICAgICBpZiAodHlwZWRUcmVlKQorICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUg
PSB0eXBlZFRyZWUtPmxvY2tlZFBhZ2VBY3Rpdml0eVN0YXRlKCk7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICwgW10gKGF1dG8mKSB7IH0KKyAgICAgICAgICAgICk7CisgICAg
ICAgICAgICByZXR1cm4gc3RhdGUuY29udGFpbnNBbGwoeyBBY3Rpdml0eVN0YXRlOjpJc1Zpc2li
bGUsIEFjdGl2aXR5U3RhdGU6OklzRm9jdXNlZCwgQWN0aXZpdHlTdGF0ZTo6V2luZG93SXNBY3Rp
dmUgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIFJlZlB0ciBvYmplY3QgPSBzd2l0Y2hPbih0
cmVlLAorICAgICAgICAgICAgW10gKGNvbnN0IFJlZlB0cjxBWElzb2xhdGVkVHJlZT4mIHR5cGVk
VHJlZSkgLT4gUmVmUHRyPEFYSXNvbGF0ZWRPYmplY3Q+IHsKKyAgICAgICAgICAgICAgICByZXR1
cm4gdHlwZWRUcmVlID8gdHlwZWRUcmVlLT5mb2N1c2VkTm9kZSgpIDogbnVsbHB0cjsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICwgW10gKGF1dG8mKSAtPiBSZWZQdHI8QVhJc29sYXRlZE9i
amVjdD4geworICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICAgICAgfQor
ICAgICAgICApOworICAgICAgICByZXR1cm4gb2JqZWN0ID8gb2JqZWN0LT53cmFwcGVyKCkgOiBu
aWw7CisgICAgfQorI2VuZGlmCisKICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eTo6cmV0cmlldmVB
dXRvcmVsZWFzZWRWYWx1ZUZyb21NYWluVGhyZWFkPGlkPihbXSAoKSAtPiBSZXRhaW5QdHI8aWQ+
IHsKICAgICAgICAgV2ViUGFnZSogcGFnZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmZvY3Vz
ZWRXZWJQYWdlKCk7CiAgICAgICAgIGlmICghcGFnZSB8fCAhcGFnZS0+YWNjZXNzaWJpbGl0eVJl
bW90ZU9iamVjdCgpKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>466566</attachid>
            <date>2023-06-01 18:19:04 -0700</date>
            <delta_ts>2023-06-01 18:44:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-256761-20230601211903.patch</filename>
            <type>text/plain</type>
            <size>15554</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">RnJvbSBhMmNiMGFiNDEwMTI2YTgwYjM0NTY3YjJkNWFmOGNkZjk1ODZmZDVjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXMgR29uemFsZXogPGFuZHJlc2dfMjJAYXBwbGUuY29t
PgpEYXRlOiBTYXQsIDEzIE1heSAyMDIzIDEzOjI4OjU1IC0wNDAwClN1YmplY3Q6IFtQQVRDSF0g
QVg6IEF2b2lkIGhpdHRpbmcgdGhlIG1haW4gdGhyZWFkIGluCiBOU0FwcGxpY2F0aW9uQWNjZXNz
aWJpbGl0eUZvY3VzZWRVSUVsZW1lbnQgaW4gaXNvbGF0ZWQgdHJlZSBtb2RlLgogaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1Njc2MSA8cmRhcjovL3Byb2JsZW0vMTA5
MzA3MjAwPgoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpOU0FwcGxpY2F0aW9uQWNjZXNz
aWJpbGl0eUZvY3VzZWRVSUVsZW1lbnQgaXMgZnJlcXVlbnRseSBjYWxsZWQgYnkgQVQgdG8gdHJh
Y2sgdGhlIGZvY3VzIG9iamVjdC4gQ3VycmVudGx5IGl0IGhhcyB0byBoaXQgdGhlIG1haW4gdGhy
ZWFkIGV2ZXJ5IHRpbWUuClRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBieSBhZGRpbmcgYSBtZWNoYW5p
c20gdG8ga2VlcCB0cmFjayBvZiB0aGUgZm9jdXNlZCBBWCB0cmVlIGJhc2VkIG9uIHRoZSBhc3Nv
Y2lhdGVkIFBhZ2UgQWN0aXZpdHlTdGF0ZS4gVGhlbiwgdGhlIGZvY3VzZWQgb2JqZWN0IGlzIHJl
dHJpZXZlZCBmcm9tIHRoZSBmb2N1c2VkIHRyZWUgb2J0YWluZWQgdmlhIEFYVHJlZVN0b3JlOjpm
aW5kVHJlZS4KSW4gYWRkaXRpb24sIHRoaXMgcGF0Y2ggYWxzbyBjYWNoZXMgdGhlIEhlbHBUZXh0
IGZvciBTY3JvbGxWaWV3cyBhbmQgV2ViQXJlYXMgZWFnZXJseSBzaW5jZSB0aGF0J3MgYW5vdGhl
ciBwcm9wZXJ0eSByZXF1ZXN0ZWQgYnkgQVQgd2hpbGUgdGhlIGlzb2xhdGVkIHRyZWUgaXMgYmVp
bmcgYnVpbHQuCi0tLQogLi4uL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNw
cCAgIHwgMjEgKysrKysrKysrLQogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVj
dENhY2hlLmggIHwgIDYgKysrCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYVHJlZVN0
b3JlLmggICAgfCAgNyArKystCiAuLi4vaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3Bw
ICAgICAgICAgfCAgMSArCiAuLi4vaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcCAgICAg
ICAgICAgfCA0MiArKysrKysrKysrKysrKysrKysrCiAuLi4vaXNvbGF0ZWR0cmVlL0FYSXNvbGF0
ZWRUcmVlLmggICAgICAgICAgICAgfCAgNyArKystCiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
Y3BwICAgICAgICAgICAgICAgICAgfCAgOCArKystCiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcCAgfCAgNSArLS0KIC4uLi9XZWJQcm9jZXNzL2NvY29hL1dlYlBy
b2Nlc3NDb2NvYS5tbSAgICAgICB8IDQyICsrKysrKysrKysrKysrKystLS0KIDkgZmlsZXMgY2hh
bmdlZCwgMTI0IGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4IDU4ZjU1NjMxZTkwNi4u
M2U5YmZlNTMxNzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
T2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5jcHAKQEAgLTI1Niw2ICsyNTYsOCBAQCBBWE9iamVjdENhY2hlOjpBWE9iamVjdENh
Y2hlKERvY3VtZW50JiBkb2N1bWVudCkKICAgICAgICAgbG9hZGluZ1Byb2dyZXNzID0gMTsKICAg
ICBtX2xvYWRpbmdQcm9ncmVzcyA9IGxvYWRpbmdQcm9ncmVzczsKIAorICAgIGlmIChtX3BhZ2VJ
RCkKKyAgICAgICAgbV9wYWdlQWN0aXZpdHlTdGF0ZSA9IG1fZG9jdW1lbnQucGFnZSgpLT5hY3Rp
dml0eVN0YXRlKCk7CiAgICAgQVhUcmVlU3RvcmU6OmFkZChtX2lkLCBXZWFrUHRyIHsgdGhpcyB9
KTsKIH0KIApAQCAtMjcxLDggKzI3MywxMSBAQCBBWE9iamVjdENhY2hlOjp+QVhPYmplY3RDYWNo
ZSgpCiAgICAgICAgIG9iamVjdC0+ZGV0YWNoKEFjY2Vzc2liaWxpdHlEZXRhY2htZW50VHlwZTo6
Q2FjaGVEZXN0cm95ZWQpOwogCiAjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJF
RSkKLSAgICBpZiAobV9wYWdlSUQpCisgICAgaWYgKG1fcGFnZUlEKSB7CisgICAgICAgIGlmIChh
dXRvIHRyZWUgPSBBWElzb2xhdGVkVHJlZTo6dHJlZUZvclBhZ2VJRCgqbV9wYWdlSUQpKQorICAg
ICAgICAgICAgdHJlZS0+c2V0UGFnZUFjdGl2aXR5U3RhdGUoeyB9KTsKICAgICAgICAgQVhJc29s
YXRlZFRyZWU6OnJlbW92ZVRyZWVGb3JQYWdlSUQoKm1fcGFnZUlEKTsKKyAgICB9CiAjZW5kaWYK
IAogICAgIEFYVHJlZVN0b3JlOjpyZW1vdmUobV9pZCk7CkBAIC0xNDMzLDYgKzE0MzgsMTcgQEAg
dm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVSb3dDb3VudENoYW5nZWQoQWNjZXNzaWJpbGl0eU9i
amVjdCogYXhPYmplY3QsIERvY3VtZW4KICAgICBwb3N0Tm90aWZpY2F0aW9uKGF4T2JqZWN0LCBk
b2N1bWVudCwgQVhSb3dDb3VudENoYW5nZWQpOwogfQogCit2b2lkIEFYT2JqZWN0Q2FjaGU6Om9u
UGFnZUFjdGl2aXR5U3RhdGVDaGFuZ2UoT3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU+IG5ld1N0YXRl
KQoreworICAgIEFTU0VSVChtX3BhZ2VJRCk7CisKKyAgICBtX3BhZ2VBY3Rpdml0eVN0YXRlID0g
bmV3U3RhdGU7CisjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkKKyAgICBp
ZiAoYXV0byB0cmVlID0gQVhJc29sYXRlZFRyZWU6OnRyZWVGb3JQYWdlSUQobV9wYWdlSUQpKQor
ICAgICAgICB0cmVlLT5zZXRQYWdlQWN0aXZpdHlTdGF0ZShuZXdTdGF0ZSk7CisjZW5kaWYKK30K
Kwogdm9pZCBBWE9iamVjdENhY2hlOjpvbkZvY3VzQ2hhbmdlKE5vZGUqIG9sZE5vZGUsIE5vZGUq
IG5ld05vZGUpCiB7CiAgICAgaWYgKG5vZGVBbmRSZW5kZXJlckFyZVZhbGlkKG5ld05vZGUpICYm
IHJlbmRlcmVyTmVlZHNEZWZlcnJlZFVwZGF0ZSgqbmV3Tm9kZS0+cmVuZGVyZXIoKSkpIHsKQEAg
LTE0OTIsOSArMTUwOCwxMCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZUZvY3VzZWRVSUVs
ZW1lbnRDaGFuZ2VkKE5vZGUqIG9sZE5vZGUsIE5vZGUqIG5ld05vZGUsCiAgICAgaWYgKHVwZGF0
ZU1vZGFsID09IFVwZGF0ZU1vZGFsOjpZZXMpCiAgICAgICAgIHVwZGF0ZUN1cnJlbnRNb2RhbE5v
ZGUoKTsKICAgICBoYW5kbGVNZW51SXRlbVNlbGVjdGVkKG5ld05vZGUpOworCiAgICAgcGxhdGZv
cm1IYW5kbGVGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZChvbGROb2RlLCBuZXdOb2RlKTsKIH0KLSAg
ICAKKwogdm9pZCBBWE9iamVjdENhY2hlOjpzZWxlY3RlZENoaWxkcmVuQ2hhbmdlZChOb2RlKiBu
b2RlKQogewogICAgIHBvc3ROb3RpZmljYXRpb24obm9kZSwgQVhTZWxlY3RlZENoaWxkcmVuQ2hh
bmdlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0
Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCmlu
ZGV4IDQ4MzE2M2RmZjA0NS4uZmViMGRiYWQzYTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaApAQCAtMTc3LDYgKzE3NywxMCBAQCBwcml2YXRlOgog
ICAgIHZvaWQgYXR0YWNoV3JhcHBlcihBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7CiAKIHB1YmxpYzoK
KyAgICB2b2lkIG9uUGFnZUFjdGl2aXR5U3RhdGVDaGFuZ2UoT3B0aW9uU2V0PEFjdGl2aXR5U3Rh
dGU+KTsKKyAgICB2b2lkIHNldFBhZ2VBY3Rpdml0eVN0YXRlKE9wdGlvblNldDxBY3Rpdml0eVN0
YXRlPiBzdGF0ZSkgeyBtX3BhZ2VBY3Rpdml0eVN0YXRlID0gc3RhdGU7IH0KKyAgICBPcHRpb25T
ZXQ8QWN0aXZpdHlTdGF0ZT4gcGFnZUFjdGl2aXR5U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3Bh
Z2VBY3Rpdml0eVN0YXRlOyB9CisKICAgICB2b2lkIGNoaWxkcmVuQ2hhbmdlZChOb2RlKiwgTm9k
ZSogbmV3Q2hpbGQgPSBudWxscHRyKTsKICAgICB2b2lkIGNoaWxkcmVuQ2hhbmdlZChSZW5kZXJP
YmplY3QqLCBSZW5kZXJPYmplY3QqIG5ld0NoaWxkID0gbnVsbHB0cik7CiAgICAgdm9pZCBjaGls
ZHJlbkNoYW5nZWQoQWNjZXNzaWJpbGl0eU9iamVjdCopOwpAQCAtNTgzLDYgKzU4Nyw3IEBAIHBy
aXZhdGU6CiAKICAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKICAgICBjb25zdCBzdGQ6Om9wdGlv
bmFsPFBhZ2VJZGVudGlmaWVyPiBtX3BhZ2VJRDsgLy8gY29uc3RhbnQgZm9yIG9iamVjdCdzIGxp
ZmV0aW1lLgorICAgIE9wdGlvblNldDxBY3Rpdml0eVN0YXRlPiBtX3BhZ2VBY3Rpdml0eVN0YXRl
OwogICAgIEhhc2hNYXA8QVhJRCwgUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+PiBtX29iamVj
dHM7CiAgICAgSGFzaE1hcDxSZW5kZXJPYmplY3QqLCBBWElEPiBtX3JlbmRlck9iamVjdE1hcHBp
bmc7CiAgICAgSGFzaE1hcDxXaWRnZXQqLCBBWElEPiBtX3dpZGdldE9iamVjdE1hcHBpbmc7CkBA
IC03MTAsNiArNzE1LDcgQEAgaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6b25UaXRsZUNoYW5n
ZShEb2N1bWVudCYpIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6b25WYWxpZGl0eUNo
YW5nZShFbGVtZW50JikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjp2YWx1ZUNoYW5n
ZWQoRWxlbWVudCopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6b25Gb2N1c0NoYW5n
ZShOb2RlKiwgTm9kZSopIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6b25QYWdlQWN0
aXZpdHlTdGF0ZUNoYW5nZShPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZT4pIHsgfQogaW5saW5lIHZv
aWQgQVhPYmplY3RDYWNoZTo6ZGVmZXJSZWNvbXB1dGVJc0lnbm9yZWRJZk5lZWRlZChFbGVtZW50
KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpkZWZlclJlY29tcHV0ZUlzSWdub3Jl
ZChFbGVtZW50KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpkZWZlclRleHRDaGFu
Z2VkSWZOZWVkZWQoTm9kZSopIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWFRyZWVTdG9yZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWFRy
ZWVTdG9yZS5oCmluZGV4IGJmMDg5OGUwYTdhYi4uZTMyMmM2ZDY5MTdkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYVHJlZVN0b3JlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWFRyZWVTdG9yZS5oCkBAIC0yNSw2ICsyNSw3IEBACiAjcHJh
Z21hIG9uY2UKIAogI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaCIKKyNp
bmNsdWRlICJBY3Rpdml0eVN0YXRlLmgiCiAjaW5jbHVkZSA8dmFyaWFudD4KICNpbmNsdWRlIDx3
dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CkBAIC01MiwxMCArNTMsMTQgQEAg
dXNpbmcgQVhUcmVlV2Vha1B0ciA9IHN0ZDo6dmFyaWFudDxXZWFrUHRyPEFYT2JqZWN0Q2FjaGU+
CiAjZW5kaWYKID47CiAKK0FYVHJlZVB0ciBheFRyZWVGb3JJRChBWElEKTsKK1dFQkNPUkVfRVhQ
T1JUIEFYVHJlZVB0ciBmaW5kQVhUcmVlKEZ1bmN0aW9uPGJvb2woQVhUcmVlUHRyKT4mJik7CisK
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiBjbGFzcyBBWFRyZWVTdG9yZSB7CiAgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoQVhUcmVlU3RvcmUpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwor
ICAgIGZyaWVuZCBBWFRyZWVQdHIgZmluZEFYVHJlZShGdW5jdGlvbjxib29sKEFYVHJlZVB0cik+
JiYpOwogcHVibGljOgogICAgIEFYSUQgdHJlZUlEKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQog
ICAgIHN0YXRpYyBXZWFrUHRyPEFYT2JqZWN0Q2FjaGU+IGF4T2JqZWN0Q2FjaGVGb3JJRChBWElE
KTsKQEAgLTc5LDcgKzg0LDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICBzdGF0aWMgSGFz
aE1hcDxBWElELCBXZWFrUHRyPEFYT2JqZWN0Q2FjaGU+PiYgbGl2ZVRyZWVNYXAoKTsKICNpZiBF
TkFCTEUoQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKQotICAgIHN0YXRpYyBIYXNoTWFwPEFY
SUQsIFRocmVhZFNhZmVXZWFrUHRyPEFYSXNvbGF0ZWRUcmVlPj4mIGlzb2xhdGVkVHJlZU1hcCgp
IFdURl9SRVFVSVJFU19MT0NLKHNfc3RvcmVMb2NrKTsKKyAgICBzdGF0aWMgSGFzaE1hcDxBWElE
LCBUaHJlYWRTYWZlV2Vha1B0cjxBWElzb2xhdGVkVHJlZT4+JiBpc29sYXRlZFRyZWVNYXAoKTsK
ICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9p
c29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcAppbmRleCBjZjg5NjhmZTQw
YjAuLjE4MzdlOGQxMDI0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKQEAgLTMwOSw2
ICszMDksNyBAQCB2b2lkIEFYSXNvbGF0ZWRPYmplY3Q6OmluaXRpYWxpemVQcm9wZXJ0aWVzKGNv
bnN0IFJlZjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiYgYXhPYgogICAgICAgICAvLyBGb3IgdGhlIFNj
cm9sbFZpZXcgYW5kIFdlYkFyZWEgb2JqZWN0cywgY2FjaGUgdGhlIFRpdGxlQXR0cmlidXRlVmFs
dWUgYW5kIERlc2NyaXB0aW9uQXR0cmlidXRlVmFsdWUgZWFnZXJseSB0byBhdm9pZCBoaXR0aW5n
IHRoZSBtYWluIHRocmVhZCBpbiBnZXRPclJldHJpZXZlUHJvcGVydHlWYWx1ZSBkdXJpbmcgdGhl
IGNvbnN0cnVjdGlvbiBvZiB0aGUgaXNvbGF0ZWQgdHJlZS4KICAgICAgICAgc2V0UHJvcGVydHko
QVhQcm9wZXJ0eU5hbWU6OlRpdGxlQXR0cmlidXRlVmFsdWUsIG9iamVjdC50aXRsZUF0dHJpYnV0
ZVZhbHVlKCkuaXNvbGF0ZWRDb3B5KCkpOwogICAgICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5
TmFtZTo6RGVzY3JpcHRpb25BdHRyaWJ1dGVWYWx1ZSwgb2JqZWN0LmRlc2NyaXB0aW9uQXR0cmli
dXRlVmFsdWUoKS5pc29sYXRlZENvcHkoKSk7CisgICAgICAgIHNldFByb3BlcnR5KEFYUHJvcGVy
dHlOYW1lOjpIZWxwVGV4dCwgb2JqZWN0LmhlbHBUZXh0QXR0cmlidXRlVmFsdWUoKS5pc29sYXRl
ZENvcHkoKSk7CiAgICAgfQogCiAgICAgaWYgKGlzUm9vdCA9PSBJc1Jvb3Q6OlllcykgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZFRyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUv
QVhJc29sYXRlZFRyZWUuY3BwCmluZGV4IGE1YmRmMTVmNjQ0MS4uZDgzMWZhNGFhOTdhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xh
dGVkVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRy
ZWUvQVhJc29sYXRlZFRyZWUuY3BwCkBAIC00Niw2ICs0Niw3IEBAIEhhc2hNYXA8UGFnZUlkZW50
aWZpZXIsIFJlZjxBWElzb2xhdGVkVHJlZT4+JiBBWElzb2xhdGVkVHJlZTo6dHJlZVBhZ2VDYWNo
ZSgpCiBBWElzb2xhdGVkVHJlZTo6QVhJc29sYXRlZFRyZWUoQVhPYmplY3RDYWNoZSYgYXhPYmpl
Y3RDYWNoZSkKICAgICA6IEFYVHJlZVN0b3JlKGF4T2JqZWN0Q2FjaGUudHJlZUlEKCkpCiAgICAg
LCBtX2F4T2JqZWN0Q2FjaGUoJmF4T2JqZWN0Q2FjaGUpCisgICAgLCBtX3BhZ2VBY3Rpdml0eVN0
YXRlKGF4T2JqZWN0Q2FjaGUucGFnZUFjdGl2aXR5U3RhdGUoKSkKICAgICAsIG1fZ2VvbWV0cnlN
YW5hZ2VyKGF4T2JqZWN0Q2FjaGUubV9nZW9tZXRyeU1hbmFnZXIucHRyKCkpCiAgICAgLCBtX3Vz
ZWRPbkFYVGhyZWFkKGF4T2JqZWN0Q2FjaGUudXNlZE9uQVhUaHJlYWQoKSkKIHsKQEAgLTcxMiw2
ICs3MTMsMjAgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6dXBkYXRlQ2hpbGRyZW4oQWNjZXNzaWJp
bGl0eU9iamVjdCYgYXhPYmplY3QsIFJlc29sdmVOb2RlQ2gKICAgICB1cGRhdGVOb2RlQW5kRGVw
ZW5kZW50UHJvcGVydGllcygqYXhBbmNlc3Rvcik7CiB9CiAKK3ZvaWQgQVhJc29sYXRlZFRyZWU6
OnNldFBhZ2VBY3Rpdml0eVN0YXRlKE9wdGlvblNldDxBY3Rpdml0eVN0YXRlPiBzdGF0ZSkKK3sK
KyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworCisgICAgTG9ja2VyIGxvY2tlciB7IHNfc3Rv
cmVMb2NrIH07CisgICAgbV9wYWdlQWN0aXZpdHlTdGF0ZSA9IHN0YXRlOworfQorCitPcHRpb25T
ZXQ8QWN0aXZpdHlTdGF0ZT4gQVhJc29sYXRlZFRyZWU6OnBhZ2VBY3Rpdml0eVN0YXRlKCkgY29u
c3QKK3sKKyAgICBMb2NrZXIgbG9ja2VyIHsgc19zdG9yZUxvY2sgfTsKKyAgICByZXR1cm4gbV9w
YWdlQWN0aXZpdHlTdGF0ZTsKK30KKwogUmVmUHRyPEFYSXNvbGF0ZWRPYmplY3Q+IEFYSXNvbGF0
ZWRUcmVlOjpmb2N1c2VkTm9kZSgpCiB7CiAgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OmZv
Y3VzZWROb2RlIl9zKTsKQEAgLTk1OSw2ICs5NzQsMzMgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6
YXBwbHlQZW5kaW5nQ2hhbmdlcygpCiAgICAgbV9wZW5kaW5nUHJvcGVydHlDaGFuZ2VzLmNsZWFy
KCk7CiB9CiAKK0FYVHJlZVB0ciBmaW5kQVhUcmVlKEZ1bmN0aW9uPGJvb2woQVhUcmVlUHRyKT4m
JiBtYXRjaCkKK3sKKyAgICBpZiAoaXNNYWluVGhyZWFkKCkpIHsKKyAgICAgICAgZm9yIChXZWFr
UHRyIHRyZWUgOiBBWFRyZWVTdG9yZTxBWE9iamVjdENhY2hlPjo6bGl2ZVRyZWVNYXAoKS52YWx1
ZXMoKSkgeworICAgICAgICAgICAgaWYgKCF0cmVlKQorICAgICAgICAgICAgICAgIGNvbnRpbnVl
OworCisgICAgICAgICAgICBpZiAobWF0Y2godHJlZSkpCisgICAgICAgICAgICAgICAgcmV0dXJu
IHRyZWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisjaWYg
RU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkKKyAgICBMb2NrZXIgbG9ja2VyIHsg
QVhUcmVlU3RvcmU8QVhJc29sYXRlZFRyZWU+OjpzX3N0b3JlTG9jayB9OworICAgIGZvciAoYXV0
byBpdCA9IEFYVHJlZVN0b3JlPEFYSXNvbGF0ZWRUcmVlPjo6aXNvbGF0ZWRUcmVlTWFwKCkuYmVn
aW4oKTsgaXQgIT0gQVhUcmVlU3RvcmU8QVhJc29sYXRlZFRyZWU+Ojppc29sYXRlZFRyZWVNYXAo
KS5lbmQoKTsgKytpdCkgeworICAgICAgICBSZWZQdHIgdHJlZSA9IGl0LT52YWx1ZS5nZXQoKTsK
KyAgICAgICAgaWYgKCF0cmVlKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgaWYg
KG1hdGNoKHRyZWUpKQorICAgICAgICAgICAgcmV0dXJuIHRyZWU7CisgICAgfQorICAgIHJldHVy
biBudWxscHRyOworI2VuZGlmCit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlm
IC8vIEVOQUJMRShBQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUu
aAppbmRleCAyM2UwNjk1OGM0YzEuLmVjMWVmODQ3YzUxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5o
CkBAIC0yNjcsNyArMjY3LDcgQEAgcHVibGljOgogICAgIGNvbnN0ZXhwciBBWEdlb21ldHJ5TWFu
YWdlciogZ2VvbWV0cnlNYW5hZ2VyKCkgY29uc3QgeyByZXR1cm4gbV9nZW9tZXRyeU1hbmFnZXIu
Z2V0KCk7IH0KIAogICAgIFJlZlB0cjxBWElzb2xhdGVkT2JqZWN0PiByb290Tm9kZSgpOwotICAg
IFJlZlB0cjxBWElzb2xhdGVkT2JqZWN0PiBmb2N1c2VkTm9kZSgpOworICAgIFdFQkNPUkVfRVhQ
T1JUIFJlZlB0cjxBWElzb2xhdGVkT2JqZWN0PiBmb2N1c2VkTm9kZSgpOwogCiAgICAgUmVmUHRy
PEFYSXNvbGF0ZWRPYmplY3Q+IG9iamVjdEZvcklEKGNvbnN0IEFYSUQpIGNvbnN0OwogICAgIFZl
Y3RvcjxSZWZQdHI8QVhDb3JlT2JqZWN0Pj4gb2JqZWN0c0ZvcklEcyhjb25zdCBWZWN0b3I8QVhJ
RD4mKTsKQEAgLTMxNSw2ICszMTUsMTAgQEAgcHVibGljOgogICAgIHZvaWQgYXBwbHlQZW5kaW5n
Q2hhbmdlcygpOwogCiAgICAgQVhJRCB0cmVlSUQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9Cisg
ICAgdm9pZCBzZXRQYWdlQWN0aXZpdHlTdGF0ZShPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZT4pOwor
ICAgIE9wdGlvblNldDxBY3Rpdml0eVN0YXRlPiBwYWdlQWN0aXZpdHlTdGF0ZSgpIGNvbnN0Owor
ICAgIC8vIFVzZSBvbmx5IGlmIHRoZSBzX3N0b3JlTG9jayBpcyBhbHJlYWR5IGhlbGQuCisgICAg
T3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU+IGxvY2tlZFBhZ2VBY3Rpdml0eVN0YXRlKCkgY29uc3Qg
eyByZXR1cm4gbV9wYWdlQWN0aXZpdHlTdGF0ZTsgfQogCiBwcml2YXRlOgogICAgIEFYSXNvbGF0
ZWRUcmVlKEFYT2JqZWN0Q2FjaGUmKTsKQEAgLTM0Myw2ICszNDcsNyBAQCBwcml2YXRlOgogCiAg
ICAgdW5zaWduZWQgbV9tYXhUcmVlRGVwdGggeyAwIH07CiAgICAgV2Vha1B0cjxBWE9iamVjdENh
Y2hlPiBtX2F4T2JqZWN0Q2FjaGU7CisgICAgT3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU+IG1fcGFn
ZUFjdGl2aXR5U3RhdGU7CiAgICAgUmVmUHRyPEFYR2VvbWV0cnlNYW5hZ2VyPiBtX2dlb21ldHJ5
TWFuYWdlcjsKICAgICBib29sIG1fdXNlZE9uQVhUaHJlYWQgeyB0cnVlIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwCmluZGV4IDhiNDI2ZjJjZWE3MC4uY2FkM2YwM2MxMTEwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5j
cHAKQEAgLTI2ODcsOCArMjY4Nyw5IEBAIHZvaWQgUGFnZTo6c2V0QWN0aXZpdHlTdGF0ZShPcHRp
b25TZXQ8QWN0aXZpdHlTdGF0ZT4gYWN0aXZpdHlTdGF0ZSkKICAgICAgICAgc2V0SXNJbldpbmRv
d0ludGVybmFsKGFjdGl2aXR5U3RhdGUuY29udGFpbnMoQWN0aXZpdHlTdGF0ZTo6SXNJbldpbmRv
dykpOwogICAgIGlmIChjaGFuZ2VkICYgQWN0aXZpdHlTdGF0ZTo6SXNWaXN1YWxseUlkbGUpCiAg
ICAgICAgIHNldElzVmlzdWFsbHlJZGxlSW50ZXJuYWwoYWN0aXZpdHlTdGF0ZS5jb250YWlucyhB
Y3Rpdml0eVN0YXRlOjpJc1Zpc3VhbGx5SWRsZSkpOworCisgICAgYXV0byogbG9jYWxNYWluRnJh
bWUgPSBkeW5hbWljRG93bmNhc3Q8TG9jYWxGcmFtZT4obV9tYWluRnJhbWUuZ2V0KCkpOwogICAg
IGlmIChjaGFuZ2VkICYgQWN0aXZpdHlTdGF0ZTo6V2luZG93SXNBY3RpdmUpIHsKLSAgICAgICAg
YXV0byogbG9jYWxNYWluRnJhbWUgPSBkeW5hbWljRG93bmNhc3Q8TG9jYWxGcmFtZT4obV9tYWlu
RnJhbWUuZ2V0KCkpOwogICAgICAgICBpZiAoYXV0byogdmlldyA9IGxvY2FsTWFpbkZyYW1lID8g
bG9jYWxNYWluRnJhbWUtPnZpZXcoKSA6IG51bGxwdHIpCiAgICAgICAgICAgICB2aWV3LT51cGRh
dGVUaWxlZEJhY2tpbmdBZGFwdGl2ZVNpemluZygpOwogICAgIH0KQEAgLTI3MDQsNiArMjcwNSwx
MSBAQCB2b2lkIFBhZ2U6OnNldEFjdGl2aXR5U3RhdGUoT3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU+
IGFjdGl2aXR5U3RhdGUpCiAgICAgICAgIHN0b3BLZXlib2FyZFNjcm9sbEFuaW1hdGlvbigpOwog
ICAgIH0KIAorICAgIGlmIChhdXRvKiBkb2N1bWVudCA9IGxvY2FsTWFpbkZyYW1lID8gbG9jYWxN
YWluRnJhbWUtPmRvY3VtZW50KCkgOiBudWxscHRyKSB7CisgICAgICAgIGlmIChhdXRvKiBjYWNo
ZSA9IGRvY3VtZW50LT5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAgIGNhY2hl
LT5vblBhZ2VBY3Rpdml0eVN0YXRlQ2hhbmdlKG1fYWN0aXZpdHlTdGF0ZSk7CisgICAgfQorCiAg
ICAgaWYgKG1fcGVyZm9ybWFuY2VNb25pdG9yKQogICAgICAgICBtX3BlcmZvcm1hbmNlTW9uaXRv
ci0+YWN0aXZpdHlTdGF0ZUNoYW5nZWQob2xkQWN0aXZpdHlTdGF0ZSwgYWN0aXZpdHlTdGF0ZSk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4
IDc4MDU4NjAyZjNiZi4uZmM3NmU0MjI2NjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNTcxOSwxMCArNTcxOSw3IEBAIGJvb2wgV2ViUGFn
ZTo6d2luZG93SXNGb2N1c2VkKCkgY29uc3QKIAogYm9vbCBXZWJQYWdlOjp3aW5kb3dBbmRXZWJQ
YWdlQXJlRm9jdXNlZCgpIGNvbnN0CiB7Ci0gICAgaWYgKCFpc1Zpc2libGUoKSkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotCi0gICAgcmV0dXJuIG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuaXNG
b2N1c2VkKCkgJiYgbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5pc0FjdGl2ZSgpOworICAgIHJl
dHVybiBpc1Zpc2libGUoKSAmJiBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLmlzRm9jdXNlZCgp
ICYmIG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuaXNBY3RpdmUoKTsKIH0KIAogdm9pZCBXZWJQ
YWdlOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6
RGVjb2RlciYgZGVjb2RlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9XZWJQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
V2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4IDVhZGMyN2Q5NWQ0MS4uNTJkM2M4NTg2OGU2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0K
QEAgLTU4LDYgKzU4LDExIEBACiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9Db25maWdGaWxlLmg+
CiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9PcHRpb25zLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0FW
QXNzZXRNSU1FVHlwZUNhY2hlLmg+CisKKyNpZiBFTkFCTEUoQUNDRVNTSUJJTElUWV9JU09MQVRF
RF9UUkVFKQorI2ltcG9ydCA8V2ViQ29yZS9BWElzb2xhdGVkT2JqZWN0Lmg+CisjaW1wb3J0IDxX
ZWJDb3JlL0FYSXNvbGF0ZWRUcmVlLmg+CisjZW5kaWYKICNpbXBvcnQgPFdlYkNvcmUvQVhPYmpl
Y3RDYWNoZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9DUFVNb25pdG9yLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL0RlcHJlY2F0ZWRHbG9iYWxTZXR0aW5ncy5oPgpAQCAtMjA0LDEyICsyMDksMzcgQEAgdm9p
ZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybVNldENhY2hlTW9kZWwoQ2FjaGVNb2RlbCkKIAogaWQgV2Vi
UHJvY2Vzczo6YWNjZXNzaWJpbGl0eUZvY3VzZWRVSUVsZW1lbnQoKQogewotICAgIHJldHVybiBB
Y2Nlc3NpYmlsaXR5OjpyZXRyaWV2ZUF1dG9yZWxlYXNlZFZhbHVlRnJvbU1haW5UaHJlYWQ8aWQ+
KFtdICgpIC0+IFJldGFpblB0cjxpZD4gewotICAgICAgICBXZWJQYWdlKiBwYWdlID0gV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkuZm9jdXNlZFdlYlBhZ2UoKTsKLSAgICAgICAgaWYgKCFwYWdlIHx8
ICFwYWdlLT5hY2Nlc3NpYmlsaXR5UmVtb3RlT2JqZWN0KCkpCi0gICAgICAgICAgICByZXR1cm4g
bmlsOwotICAgICAgICByZXR1cm4gW3BhZ2UtPmFjY2Vzc2liaWxpdHlSZW1vdGVPYmplY3QoKSBh
Y2Nlc3NpYmlsaXR5Rm9jdXNlZFVJRWxlbWVudF07Ci0gICAgfSk7CisjaWYgRU5BQkxFKEFDQ0VT
U0lCSUxJVFlfSVNPTEFURURfVFJFRSkKKyAgICBpZiAoIWlzTWFpblJ1bkxvb3AoKSkgeworICAg
ICAgICAvLyBBdm9pZCBoaXR0aW5nIHRoZSBtYWluIHRocmVhZCBieSBnZXR0aW5nIHRoZSBmb2N1
c2VkIG9iamVjdCBmcm9tIHRoZSBmb2N1c2VkIGlzb2xhdGVkIHRyZWUuCisgICAgICAgIGF1dG8g
dHJlZSA9IGZpbmRBWFRyZWUoW10gKEFYVHJlZVB0ciB0cmVlKSAtPiBib29sIHsKKyAgICAgICAg
ICAgIE9wdGlvblNldDxBY3Rpdml0eVN0YXRlPiBzdGF0ZTsKKyAgICAgICAgICAgIHN3aXRjaE9u
KHRyZWUsCisgICAgICAgICAgICAgICAgWyZzdGF0ZV0gKFJlZlB0cjxBWElzb2xhdGVkVHJlZT4m
IHR5cGVkVHJlZSkgeworICAgICAgICAgICAgICAgICAgICBpZiAodHlwZWRUcmVlKQorICAgICAg
ICAgICAgICAgICAgICAgICAgc3RhdGUgPSB0eXBlZFRyZWUtPmxvY2tlZFBhZ2VBY3Rpdml0eVN0
YXRlKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICwgW10gKGF1dG8mKSB7
IH0KKyAgICAgICAgICAgICk7CisgICAgICAgICAgICByZXR1cm4gc3RhdGUuY29udGFpbnNBbGwo
eyBBY3Rpdml0eVN0YXRlOjpJc1Zpc2libGUsIEFjdGl2aXR5U3RhdGU6OklzRm9jdXNlZCwgQWN0
aXZpdHlTdGF0ZTo6V2luZG93SXNBY3RpdmUgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIFJl
ZlB0ciBvYmplY3QgPSBzd2l0Y2hPbih0cmVlLAorICAgICAgICAgICAgW10gKFJlZlB0cjxBWElz
b2xhdGVkVHJlZT4mIHR5cGVkVHJlZSkgLT4gUmVmUHRyPEFYSXNvbGF0ZWRPYmplY3Q+IHsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gdHlwZWRUcmVlID8gdHlwZWRUcmVlLT5mb2N1c2VkTm9kZSgp
IDogbnVsbHB0cjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICwgW10gKGF1dG8mKSAtPiBS
ZWZQdHI8QVhJc29sYXRlZE9iamVjdD4geworICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRy
OworICAgICAgICAgICAgfQorICAgICAgICApOworICAgICAgICByZXR1cm4gb2JqZWN0ID8gb2Jq
ZWN0LT53cmFwcGVyKCkgOiBuaWw7CisgICAgfQorI2VuZGlmCisKKyAgICBXZWJQYWdlKiBwYWdl
ID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZm9jdXNlZFdlYlBhZ2UoKTsKKyAgICBpZiAoIXBh
Z2UgfHwgIXBhZ2UtPmFjY2Vzc2liaWxpdHlSZW1vdGVPYmplY3QoKSkKKyAgICAgICAgcmV0dXJu
IG5pbDsKKyAgICByZXR1cm4gW3BhZ2UtPmFjY2Vzc2liaWxpdHlSZW1vdGVPYmplY3QoKSBhY2Nl
c3NpYmlsaXR5Rm9jdXNlZFVJRWxlbWVudF07CiB9CiAKICNpZiBVU0UoQVBQS0lUKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>466568</attachid>
            <date>2023-06-01 18:44:49 -0700</date>
            <delta_ts>2023-06-02 10:22:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-256761-20230601214448.patch</filename>
            <type>text/plain</type>
            <size>15701</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">RnJvbSA2NDdjNjIwZTQ0OTg5ZDYxOGE0MmQ3MWJjNGQ2NmE4YmY5YmZjNGQwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXMgR29uemFsZXogPGFuZHJlc2dfMjJAYXBwbGUuY29t
PgpEYXRlOiBTYXQsIDEzIE1heSAyMDIzIDEzOjI4OjU1IC0wNDAwClN1YmplY3Q6IFtQQVRDSF0g
QVg6IEF2b2lkIGhpdHRpbmcgdGhlIG1haW4gdGhyZWFkIGluCiBOU0FwcGxpY2F0aW9uQWNjZXNz
aWJpbGl0eUZvY3VzZWRVSUVsZW1lbnQgaW4gaXNvbGF0ZWQgdHJlZSBtb2RlLgogaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1Njc2MSA8cmRhcjovL3Byb2JsZW0vMTA5
MzA3MjAwPgoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpOU0FwcGxpY2F0aW9uQWNjZXNz
aWJpbGl0eUZvY3VzZWRVSUVsZW1lbnQgaXMgZnJlcXVlbnRseSBjYWxsZWQgYnkgQVQgdG8gdHJh
Y2sgdGhlIGZvY3VzIG9iamVjdC4gQ3VycmVudGx5IGl0IGhhcyB0byBoaXQgdGhlIG1haW4gdGhy
ZWFkIGV2ZXJ5IHRpbWUuClRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBieSBhZGRpbmcgYSBtZWNoYW5p
c20gdG8ga2VlcCB0cmFjayBvZiB0aGUgZm9jdXNlZCBBWCB0cmVlIGJhc2VkIG9uIHRoZSBhc3Nv
Y2lhdGVkIFBhZ2UgQWN0aXZpdHlTdGF0ZS4gVGhlbiwgdGhlIGZvY3VzZWQgb2JqZWN0IGlzIHJl
dHJpZXZlZCBmcm9tIHRoZSBmb2N1c2VkIHRyZWUgb2J0YWluZWQgdmlhIEFYVHJlZVN0b3JlOjpm
aW5kVHJlZS4KSW4gYWRkaXRpb24sIHRoaXMgcGF0Y2ggYWxzbyBjYWNoZXMgdGhlIEhlbHBUZXh0
IGZvciBTY3JvbGxWaWV3cyBhbmQgV2ViQXJlYXMgZWFnZXJseSBzaW5jZSB0aGF0J3MgYW5vdGhl
ciBwcm9wZXJ0eSByZXF1ZXN0ZWQgYnkgQVQgd2hpbGUgdGhlIGlzb2xhdGVkIHRyZWUgaXMgYmVp
bmcgYnVpbHQuCi0tLQogLi4uL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNw
cCAgIHwgMjEgKysrKysrKy0KIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RD
YWNoZS5oICB8ICA2ICsrKwogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWFRyZWVTdG9y
ZS5oICAgIHwgIDcgKystCiAuLi4vaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwICAg
ICAgICAgfCAgMSArCiAuLi4vaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcCAgICAgICAg
ICAgfCA0OCArKysrKysrKysrKysrKysrKysrCiAuLi4vaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRU
cmVlLmggICAgICAgICAgICAgfCAgNyArKy0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAg
ICAgICAgICAgICAgICAgICB8ICA4ICsrKy0KIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwICB8ICA1ICstCiAuLi4vV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNz
Q29jb2EubW0gICAgICAgfCA0MiArKysrKysrKysrKysrLS0tCiA5IGZpbGVzIGNoYW5nZWQsIDEz
MCBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCA1OGY1NTYzMWU5MDYuLjNlOWJmZTUz
MTcwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
Y3BwCkBAIC0yNTYsNiArMjU2LDggQEAgQVhPYmplY3RDYWNoZTo6QVhPYmplY3RDYWNoZShEb2N1
bWVudCYgZG9jdW1lbnQpCiAgICAgICAgIGxvYWRpbmdQcm9ncmVzcyA9IDE7CiAgICAgbV9sb2Fk
aW5nUHJvZ3Jlc3MgPSBsb2FkaW5nUHJvZ3Jlc3M7CiAKKyAgICBpZiAobV9wYWdlSUQpCisgICAg
ICAgIG1fcGFnZUFjdGl2aXR5U3RhdGUgPSBtX2RvY3VtZW50LnBhZ2UoKS0+YWN0aXZpdHlTdGF0
ZSgpOwogICAgIEFYVHJlZVN0b3JlOjphZGQobV9pZCwgV2Vha1B0ciB7IHRoaXMgfSk7CiB9CiAK
QEAgLTI3MSw4ICsyNzMsMTEgQEAgQVhPYmplY3RDYWNoZTo6fkFYT2JqZWN0Q2FjaGUoKQogICAg
ICAgICBvYmplY3QtPmRldGFjaChBY2Nlc3NpYmlsaXR5RGV0YWNobWVudFR5cGU6OkNhY2hlRGVz
dHJveWVkKTsKIAogI2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpCi0gICAg
aWYgKG1fcGFnZUlEKQorICAgIGlmIChtX3BhZ2VJRCkgeworICAgICAgICBpZiAoYXV0byB0cmVl
ID0gQVhJc29sYXRlZFRyZWU6OnRyZWVGb3JQYWdlSUQoKm1fcGFnZUlEKSkKKyAgICAgICAgICAg
IHRyZWUtPnNldFBhZ2VBY3Rpdml0eVN0YXRlKHsgfSk7CiAgICAgICAgIEFYSXNvbGF0ZWRUcmVl
OjpyZW1vdmVUcmVlRm9yUGFnZUlEKCptX3BhZ2VJRCk7CisgICAgfQogI2VuZGlmCiAKICAgICBB
WFRyZWVTdG9yZTo6cmVtb3ZlKG1faWQpOwpAQCAtMTQzMyw2ICsxNDM4LDE3IEBAIHZvaWQgQVhP
YmplY3RDYWNoZTo6aGFuZGxlUm93Q291bnRDaGFuZ2VkKEFjY2Vzc2liaWxpdHlPYmplY3QqIGF4
T2JqZWN0LCBEb2N1bWVuCiAgICAgcG9zdE5vdGlmaWNhdGlvbihheE9iamVjdCwgZG9jdW1lbnQs
IEFYUm93Q291bnRDaGFuZ2VkKTsKIH0KIAordm9pZCBBWE9iamVjdENhY2hlOjpvblBhZ2VBY3Rp
dml0eVN0YXRlQ2hhbmdlKE9wdGlvblNldDxBY3Rpdml0eVN0YXRlPiBuZXdTdGF0ZSkKK3sKKyAg
ICBBU1NFUlQobV9wYWdlSUQpOworCisgICAgbV9wYWdlQWN0aXZpdHlTdGF0ZSA9IG5ld1N0YXRl
OworI2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpCisgICAgaWYgKGF1dG8g
dHJlZSA9IEFYSXNvbGF0ZWRUcmVlOjp0cmVlRm9yUGFnZUlEKG1fcGFnZUlEKSkKKyAgICAgICAg
dHJlZS0+c2V0UGFnZUFjdGl2aXR5U3RhdGUobmV3U3RhdGUpOworI2VuZGlmCit9CisKIHZvaWQg
QVhPYmplY3RDYWNoZTo6b25Gb2N1c0NoYW5nZShOb2RlKiBvbGROb2RlLCBOb2RlKiBuZXdOb2Rl
KQogewogICAgIGlmIChub2RlQW5kUmVuZGVyZXJBcmVWYWxpZChuZXdOb2RlKSAmJiByZW5kZXJl
ck5lZWRzRGVmZXJyZWRVcGRhdGUoKm5ld05vZGUtPnJlbmRlcmVyKCkpKSB7CkBAIC0xNDkyLDkg
KzE1MDgsMTAgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVGb2N1c2VkVUlFbGVtZW50Q2hh
bmdlZChOb2RlKiBvbGROb2RlLCBOb2RlKiBuZXdOb2RlLAogICAgIGlmICh1cGRhdGVNb2RhbCA9
PSBVcGRhdGVNb2RhbDo6WWVzKQogICAgICAgICB1cGRhdGVDdXJyZW50TW9kYWxOb2RlKCk7CiAg
ICAgaGFuZGxlTWVudUl0ZW1TZWxlY3RlZChuZXdOb2RlKTsKKwogICAgIHBsYXRmb3JtSGFuZGxl
Rm9jdXNlZFVJRWxlbWVudENoYW5nZWQob2xkTm9kZSwgbmV3Tm9kZSk7CiB9Ci0gICAgCisKIHZv
aWQgQVhPYmplY3RDYWNoZTo6c2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQoTm9kZSogbm9kZSkKIHsK
ICAgICBwb3N0Tm90aWZpY2F0aW9uKG5vZGUsIEFYU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAppbmRleCA0ODMx
NjNkZmYwNDUuLmZlYjBkYmFkM2EyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmgKQEAgLTE3Nyw2ICsxNzcsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lk
IGF0dGFjaFdyYXBwZXIoQWNjZXNzaWJpbGl0eU9iamVjdCopOwogCiBwdWJsaWM6CisgICAgdm9p
ZCBvblBhZ2VBY3Rpdml0eVN0YXRlQ2hhbmdlKE9wdGlvblNldDxBY3Rpdml0eVN0YXRlPik7Cisg
ICAgdm9pZCBzZXRQYWdlQWN0aXZpdHlTdGF0ZShPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZT4gc3Rh
dGUpIHsgbV9wYWdlQWN0aXZpdHlTdGF0ZSA9IHN0YXRlOyB9CisgICAgT3B0aW9uU2V0PEFjdGl2
aXR5U3RhdGU+IHBhZ2VBY3Rpdml0eVN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlQWN0aXZp
dHlTdGF0ZTsgfQorCiAgICAgdm9pZCBjaGlsZHJlbkNoYW5nZWQoTm9kZSosIE5vZGUqIG5ld0No
aWxkID0gbnVsbHB0cik7CiAgICAgdm9pZCBjaGlsZHJlbkNoYW5nZWQoUmVuZGVyT2JqZWN0Kiwg
UmVuZGVyT2JqZWN0KiBuZXdDaGlsZCA9IG51bGxwdHIpOwogICAgIHZvaWQgY2hpbGRyZW5DaGFu
Z2VkKEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKQEAgLTU4Myw2ICs1ODcsNyBAQCBwcml2YXRlOgog
CiAgICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7CiAgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxQYWdl
SWRlbnRpZmllcj4gbV9wYWdlSUQ7IC8vIGNvbnN0YW50IGZvciBvYmplY3QncyBsaWZldGltZS4K
KyAgICBPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZT4gbV9wYWdlQWN0aXZpdHlTdGF0ZTsKICAgICBI
YXNoTWFwPEFYSUQsIFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0Pj4gbV9vYmplY3RzOwogICAg
IEhhc2hNYXA8UmVuZGVyT2JqZWN0KiwgQVhJRD4gbV9yZW5kZXJPYmplY3RNYXBwaW5nOwogICAg
IEhhc2hNYXA8V2lkZ2V0KiwgQVhJRD4gbV93aWRnZXRPYmplY3RNYXBwaW5nOwpAQCAtNzEwLDYg
KzcxNSw3IEBAIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om9uVGl0bGVDaGFuZ2UoRG9jdW1l
bnQmKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om9uVmFsaWRpdHlDaGFuZ2UoRWxl
bWVudCYpIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6dmFsdWVDaGFuZ2VkKEVsZW1l
bnQqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om9uRm9jdXNDaGFuZ2UoTm9kZSos
IE5vZGUqKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om9uUGFnZUFjdGl2aXR5U3Rh
dGVDaGFuZ2UoT3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU+KSB7IH0KIGlubGluZSB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OmRlZmVyUmVjb21wdXRlSXNJZ25vcmVkSWZOZWVkZWQoRWxlbWVudCopIHsgfQog
aW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6ZGVmZXJSZWNvbXB1dGVJc0lnbm9yZWQoRWxlbWVu
dCopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6ZGVmZXJUZXh0Q2hhbmdlZElmTmVl
ZGVkKE5vZGUqKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhUcmVlU3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhUcmVlU3RvcmUu
aAppbmRleCBiZjA4OThlMGE3YWIuLmUzMjJjNmQ2OTE3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWFRyZWVTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhUcmVlU3RvcmUuaApAQCAtMjUsNiArMjUsNyBAQAogI3ByYWdtYSBvbmNl
CiAKICNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgiCisjaW5jbHVkZSAi
QWN0aXZpdHlTdGF0ZS5oIgogI2luY2x1ZGUgPHZhcmlhbnQ+CiAjaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgpAQCAtNTIsMTAgKzUzLDE0IEBAIHVzaW5nIEFY
VHJlZVdlYWtQdHIgPSBzdGQ6OnZhcmlhbnQ8V2Vha1B0cjxBWE9iamVjdENhY2hlPgogI2VuZGlm
CiA+OwogCitBWFRyZWVQdHIgYXhUcmVlRm9ySUQoQVhJRCk7CitXRUJDT1JFX0VYUE9SVCBBWFRy
ZWVQdHIgZmluZEFYVHJlZShGdW5jdGlvbjxib29sKEFYVHJlZVB0cik+JiYpOworCiB0ZW1wbGF0
ZTx0eXBlbmFtZSBUPgogY2xhc3MgQVhUcmVlU3RvcmUgewogICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKEFYVHJlZVN0b3JlKTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICBmcmll
bmQgQVhUcmVlUHRyIGZpbmRBWFRyZWUoRnVuY3Rpb248Ym9vbChBWFRyZWVQdHIpPiYmKTsKIHB1
YmxpYzoKICAgICBBWElEIHRyZWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KICAgICBzdGF0
aWMgV2Vha1B0cjxBWE9iamVjdENhY2hlPiBheE9iamVjdENhY2hlRm9ySUQoQVhJRCk7CkBAIC03
OSw3ICs4NCw3IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgc3RhdGljIEhhc2hNYXA8QVhJ
RCwgV2Vha1B0cjxBWE9iamVjdENhY2hlPj4mIGxpdmVUcmVlTWFwKCk7CiAjaWYgRU5BQkxFKEFD
Q0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkKLSAgICBzdGF0aWMgSGFzaE1hcDxBWElELCBUaHJl
YWRTYWZlV2Vha1B0cjxBWElzb2xhdGVkVHJlZT4+JiBpc29sYXRlZFRyZWVNYXAoKSBXVEZfUkVR
VUlSRVNfTE9DSyhzX3N0b3JlTG9jayk7CisgICAgc3RhdGljIEhhc2hNYXA8QVhJRCwgVGhyZWFk
U2FmZVdlYWtQdHI8QVhJc29sYXRlZFRyZWU+PiYgaXNvbGF0ZWRUcmVlTWFwKCk7CiAjZW5kaWYK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0
cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9p
c29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKaW5kZXggY2Y4OTY4ZmU0MGIwLi4xODM3
ZThkMTAyNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0
ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCkBAIC0zMDksNiArMzA5LDcg
QEAgdm9pZCBBWElzb2xhdGVkT2JqZWN0Ojppbml0aWFsaXplUHJvcGVydGllcyhjb25zdCBSZWY8
QWNjZXNzaWJpbGl0eU9iamVjdD4mIGF4T2IKICAgICAgICAgLy8gRm9yIHRoZSBTY3JvbGxWaWV3
IGFuZCBXZWJBcmVhIG9iamVjdHMsIGNhY2hlIHRoZSBUaXRsZUF0dHJpYnV0ZVZhbHVlIGFuZCBE
ZXNjcmlwdGlvbkF0dHJpYnV0ZVZhbHVlIGVhZ2VybHkgdG8gYXZvaWQgaGl0dGluZyB0aGUgbWFp
biB0aHJlYWQgaW4gZ2V0T3JSZXRyaWV2ZVByb3BlcnR5VmFsdWUgZHVyaW5nIHRoZSBjb25zdHJ1
Y3Rpb24gb2YgdGhlIGlzb2xhdGVkIHRyZWUuCiAgICAgICAgIHNldFByb3BlcnR5KEFYUHJvcGVy
dHlOYW1lOjpUaXRsZUF0dHJpYnV0ZVZhbHVlLCBvYmplY3QudGl0bGVBdHRyaWJ1dGVWYWx1ZSgp
Lmlzb2xhdGVkQ29weSgpKTsKICAgICAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OkRl
c2NyaXB0aW9uQXR0cmlidXRlVmFsdWUsIG9iamVjdC5kZXNjcmlwdGlvbkF0dHJpYnV0ZVZhbHVl
KCkuaXNvbGF0ZWRDb3B5KCkpOworICAgICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6
SGVscFRleHQsIG9iamVjdC5oZWxwVGV4dEF0dHJpYnV0ZVZhbHVlKCkuaXNvbGF0ZWRDb3B5KCkp
OwogICAgIH0KIAogICAgIGlmIChpc1Jvb3QgPT0gSXNSb290OjpZZXMpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0
ZWRUcmVlLmNwcAppbmRleCBhNWJkZjE1ZjY0NDEuLmRlMmY1YjE3ZDNjZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNv
bGF0ZWRUcmVlLmNwcApAQCAtNDYsNiArNDYsNyBAQCBIYXNoTWFwPFBhZ2VJZGVudGlmaWVyLCBS
ZWY8QVhJc29sYXRlZFRyZWU+PiYgQVhJc29sYXRlZFRyZWU6OnRyZWVQYWdlQ2FjaGUoKQogQVhJ
c29sYXRlZFRyZWU6OkFYSXNvbGF0ZWRUcmVlKEFYT2JqZWN0Q2FjaGUmIGF4T2JqZWN0Q2FjaGUp
CiAgICAgOiBBWFRyZWVTdG9yZShheE9iamVjdENhY2hlLnRyZWVJRCgpKQogICAgICwgbV9heE9i
amVjdENhY2hlKCZheE9iamVjdENhY2hlKQorICAgICwgbV9wYWdlQWN0aXZpdHlTdGF0ZShheE9i
amVjdENhY2hlLnBhZ2VBY3Rpdml0eVN0YXRlKCkpCiAgICAgLCBtX2dlb21ldHJ5TWFuYWdlcihh
eE9iamVjdENhY2hlLm1fZ2VvbWV0cnlNYW5hZ2VyLnB0cigpKQogICAgICwgbV91c2VkT25BWFRo
cmVhZChheE9iamVjdENhY2hlLnVzZWRPbkFYVGhyZWFkKCkpCiB7CkBAIC03MTIsNiArNzEzLDI2
IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OnVwZGF0ZUNoaWxkcmVuKEFjY2Vzc2liaWxpdHlPYmpl
Y3QmIGF4T2JqZWN0LCBSZXNvbHZlTm9kZUNoCiAgICAgdXBkYXRlTm9kZUFuZERlcGVuZGVudFBy
b3BlcnRpZXMoKmF4QW5jZXN0b3IpOwogfQogCit2b2lkIEFYSXNvbGF0ZWRUcmVlOjpzZXRQYWdl
QWN0aXZpdHlTdGF0ZShPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZT4gc3RhdGUpCit7CisgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIExvY2tlciBsb2NrZXIgeyBzX3N0b3JlTG9jayB9
OworICAgIG1fcGFnZUFjdGl2aXR5U3RhdGUgPSBzdGF0ZTsKK30KKworT3B0aW9uU2V0PEFjdGl2
aXR5U3RhdGU+IEFYSXNvbGF0ZWRUcmVlOjpwYWdlQWN0aXZpdHlTdGF0ZSgpIGNvbnN0Cit7Cisg
ICAgTG9ja2VyIGxvY2tlciB7IHNfc3RvcmVMb2NrIH07CisgICAgcmV0dXJuIG1fcGFnZUFjdGl2
aXR5U3RhdGU7Cit9CisKK09wdGlvblNldDxBY3Rpdml0eVN0YXRlPiBBWElzb2xhdGVkVHJlZTo6
bG9ja2VkUGFnZUFjdGl2aXR5U3RhdGUoKSBjb25zdAoreworICAgIEFTU0VSVChzX3N0b3JlTG9j
ay5pc0xvY2tlZCgpKTsKKyAgICByZXR1cm4gbV9wYWdlQWN0aXZpdHlTdGF0ZTsKK30KKwogUmVm
UHRyPEFYSXNvbGF0ZWRPYmplY3Q+IEFYSXNvbGF0ZWRUcmVlOjpmb2N1c2VkTm9kZSgpCiB7CiAg
ICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OmZvY3VzZWROb2RlIl9zKTsKQEAgLTk1OSw2ICs5
ODAsMzMgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6YXBwbHlQZW5kaW5nQ2hhbmdlcygpCiAgICAg
bV9wZW5kaW5nUHJvcGVydHlDaGFuZ2VzLmNsZWFyKCk7CiB9CiAKK0FYVHJlZVB0ciBmaW5kQVhU
cmVlKEZ1bmN0aW9uPGJvb2woQVhUcmVlUHRyKT4mJiBtYXRjaCkKK3sKKyAgICBpZiAoaXNNYWlu
VGhyZWFkKCkpIHsKKyAgICAgICAgZm9yIChXZWFrUHRyIHRyZWUgOiBBWFRyZWVTdG9yZTxBWE9i
amVjdENhY2hlPjo6bGl2ZVRyZWVNYXAoKS52YWx1ZXMoKSkgeworICAgICAgICAgICAgaWYgKCF0
cmVlKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICBpZiAobWF0Y2go
dHJlZSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRyZWU7CisgICAgICAgIH0KKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisgICAgfQorCisjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFU
RURfVFJFRSkKKyAgICBMb2NrZXIgbG9ja2VyIHsgQVhUcmVlU3RvcmU8QVhJc29sYXRlZFRyZWU+
OjpzX3N0b3JlTG9jayB9OworICAgIGZvciAoYXV0byBpdCA9IEFYVHJlZVN0b3JlPEFYSXNvbGF0
ZWRUcmVlPjo6aXNvbGF0ZWRUcmVlTWFwKCkuYmVnaW4oKTsgaXQgIT0gQVhUcmVlU3RvcmU8QVhJ
c29sYXRlZFRyZWU+Ojppc29sYXRlZFRyZWVNYXAoKS5lbmQoKTsgKytpdCkgeworICAgICAgICBS
ZWZQdHIgdHJlZSA9IGl0LT52YWx1ZS5nZXQoKTsKKyAgICAgICAgaWYgKCF0cmVlKQorICAgICAg
ICAgICAgY29udGludWU7CisKKyAgICAgICAgaWYgKG1hdGNoKHRyZWUpKQorICAgICAgICAgICAg
cmV0dXJuIHRyZWU7CisgICAgfQorICAgIHJldHVybiBudWxscHRyOworI2VuZGlmCit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShBQ0NFU1NJQklMSVRZX0lT
T0xBVEVEX1RSRUUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lz
b2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaAppbmRleCAyM2UwNjk1OGM0YzEuLjg3ZjEx
N2MzYTc2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRl
ZHRyZWUvQVhJc29sYXRlZFRyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oCkBAIC0yNjcsNyArMjY3LDcgQEAgcHVibGlj
OgogICAgIGNvbnN0ZXhwciBBWEdlb21ldHJ5TWFuYWdlciogZ2VvbWV0cnlNYW5hZ2VyKCkgY29u
c3QgeyByZXR1cm4gbV9nZW9tZXRyeU1hbmFnZXIuZ2V0KCk7IH0KIAogICAgIFJlZlB0cjxBWElz
b2xhdGVkT2JqZWN0PiByb290Tm9kZSgpOwotICAgIFJlZlB0cjxBWElzb2xhdGVkT2JqZWN0PiBm
b2N1c2VkTm9kZSgpOworICAgIFdFQkNPUkVfRVhQT1JUIFJlZlB0cjxBWElzb2xhdGVkT2JqZWN0
PiBmb2N1c2VkTm9kZSgpOwogCiAgICAgUmVmUHRyPEFYSXNvbGF0ZWRPYmplY3Q+IG9iamVjdEZv
cklEKGNvbnN0IEFYSUQpIGNvbnN0OwogICAgIFZlY3RvcjxSZWZQdHI8QVhDb3JlT2JqZWN0Pj4g
b2JqZWN0c0ZvcklEcyhjb25zdCBWZWN0b3I8QVhJRD4mKTsKQEAgLTMxNSw2ICszMTUsMTAgQEAg
cHVibGljOgogICAgIHZvaWQgYXBwbHlQZW5kaW5nQ2hhbmdlcygpOwogCiAgICAgQVhJRCB0cmVl
SUQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9CisgICAgdm9pZCBzZXRQYWdlQWN0aXZpdHlTdGF0
ZShPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZT4pOworICAgIE9wdGlvblNldDxBY3Rpdml0eVN0YXRl
PiBwYWdlQWN0aXZpdHlTdGF0ZSgpIGNvbnN0OworICAgIC8vIFVzZSBvbmx5IGlmIHRoZSBzX3N0
b3JlTG9jayBpcyBhbHJlYWR5IGhlbGQgbGlrZSBpbiBmaW5kQVhUcmVlLgorICAgIFdFQkNPUkVf
RVhQT1JUIE9wdGlvblNldDxBY3Rpdml0eVN0YXRlPiBsb2NrZWRQYWdlQWN0aXZpdHlTdGF0ZSgp
IGNvbnN0OwogCiBwcml2YXRlOgogICAgIEFYSXNvbGF0ZWRUcmVlKEFYT2JqZWN0Q2FjaGUmKTsK
QEAgLTM0Myw2ICszNDcsNyBAQCBwcml2YXRlOgogCiAgICAgdW5zaWduZWQgbV9tYXhUcmVlRGVw
dGggeyAwIH07CiAgICAgV2Vha1B0cjxBWE9iamVjdENhY2hlPiBtX2F4T2JqZWN0Q2FjaGU7Cisg
ICAgT3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU+IG1fcGFnZUFjdGl2aXR5U3RhdGU7CiAgICAgUmVm
UHRyPEFYR2VvbWV0cnlNYW5hZ2VyPiBtX2dlb21ldHJ5TWFuYWdlcjsKICAgICBib29sIG1fdXNl
ZE9uQVhUaHJlYWQgeyB0cnVlIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDhiNDI2ZjJjZWE3
MC4uY2FkM2YwM2MxMTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTI2ODcsOCArMjY4Nyw5IEBA
IHZvaWQgUGFnZTo6c2V0QWN0aXZpdHlTdGF0ZShPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZT4gYWN0
aXZpdHlTdGF0ZSkKICAgICAgICAgc2V0SXNJbldpbmRvd0ludGVybmFsKGFjdGl2aXR5U3RhdGUu
Y29udGFpbnMoQWN0aXZpdHlTdGF0ZTo6SXNJbldpbmRvdykpOwogICAgIGlmIChjaGFuZ2VkICYg
QWN0aXZpdHlTdGF0ZTo6SXNWaXN1YWxseUlkbGUpCiAgICAgICAgIHNldElzVmlzdWFsbHlJZGxl
SW50ZXJuYWwoYWN0aXZpdHlTdGF0ZS5jb250YWlucyhBY3Rpdml0eVN0YXRlOjpJc1Zpc3VhbGx5
SWRsZSkpOworCisgICAgYXV0byogbG9jYWxNYWluRnJhbWUgPSBkeW5hbWljRG93bmNhc3Q8TG9j
YWxGcmFtZT4obV9tYWluRnJhbWUuZ2V0KCkpOwogICAgIGlmIChjaGFuZ2VkICYgQWN0aXZpdHlT
dGF0ZTo6V2luZG93SXNBY3RpdmUpIHsKLSAgICAgICAgYXV0byogbG9jYWxNYWluRnJhbWUgPSBk
eW5hbWljRG93bmNhc3Q8TG9jYWxGcmFtZT4obV9tYWluRnJhbWUuZ2V0KCkpOwogICAgICAgICBp
ZiAoYXV0byogdmlldyA9IGxvY2FsTWFpbkZyYW1lID8gbG9jYWxNYWluRnJhbWUtPnZpZXcoKSA6
IG51bGxwdHIpCiAgICAgICAgICAgICB2aWV3LT51cGRhdGVUaWxlZEJhY2tpbmdBZGFwdGl2ZVNp
emluZygpOwogICAgIH0KQEAgLTI3MDQsNiArMjcwNSwxMSBAQCB2b2lkIFBhZ2U6OnNldEFjdGl2
aXR5U3RhdGUoT3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU+IGFjdGl2aXR5U3RhdGUpCiAgICAgICAg
IHN0b3BLZXlib2FyZFNjcm9sbEFuaW1hdGlvbigpOwogICAgIH0KIAorICAgIGlmIChhdXRvKiBk
b2N1bWVudCA9IGxvY2FsTWFpbkZyYW1lID8gbG9jYWxNYWluRnJhbWUtPmRvY3VtZW50KCkgOiBu
dWxscHRyKSB7CisgICAgICAgIGlmIChhdXRvKiBjYWNoZSA9IGRvY3VtZW50LT5leGlzdGluZ0FY
T2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAgIGNhY2hlLT5vblBhZ2VBY3Rpdml0eVN0YXRlQ2hh
bmdlKG1fYWN0aXZpdHlTdGF0ZSk7CisgICAgfQorCiAgICAgaWYgKG1fcGVyZm9ybWFuY2VNb25p
dG9yKQogICAgICAgICBtX3BlcmZvcm1hbmNlTW9uaXRvci0+YWN0aXZpdHlTdGF0ZUNoYW5nZWQo
b2xkQWN0aXZpdHlTdGF0ZSwgYWN0aXZpdHlTdGF0ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDc4MDU4NjAyZjNiZi4uZmM3NmU0MjI2
NjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApA
QCAtNTcxOSwxMCArNTcxOSw3IEBAIGJvb2wgV2ViUGFnZTo6d2luZG93SXNGb2N1c2VkKCkgY29u
c3QKIAogYm9vbCBXZWJQYWdlOjp3aW5kb3dBbmRXZWJQYWdlQXJlRm9jdXNlZCgpIGNvbnN0CiB7
Ci0gICAgaWYgKCFpc1Zpc2libGUoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgcmV0
dXJuIG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuaXNGb2N1c2VkKCkgJiYgbV9wYWdlLT5mb2N1
c0NvbnRyb2xsZXIoKS5pc0FjdGl2ZSgpOworICAgIHJldHVybiBpc1Zpc2libGUoKSAmJiBtX3Bh
Z2UtPmZvY3VzQ29udHJvbGxlcigpLmlzRm9jdXNlZCgpICYmIG1fcGFnZS0+Zm9jdXNDb250cm9s
bGVyKCkuaXNBY3RpdmUoKTsKIH0KIAogdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0g
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4
IDVhZGMyN2Q5NWQ0MS4uNTJkM2M4NTg2OGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KQEAgLTU4LDYgKzU4LDExIEBACiAjaW1w
b3J0IDxKYXZhU2NyaXB0Q29yZS9Db25maWdGaWxlLmg+CiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29y
ZS9PcHRpb25zLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0FWQXNzZXRNSU1FVHlwZUNhY2hlLmg+CisK
KyNpZiBFTkFCTEUoQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKQorI2ltcG9ydCA8V2ViQ29y
ZS9BWElzb2xhdGVkT2JqZWN0Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0FYSXNvbGF0ZWRUcmVlLmg+
CisjZW5kaWYKICNpbXBvcnQgPFdlYkNvcmUvQVhPYmplY3RDYWNoZS5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9DUFVNb25pdG9yLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RlcHJlY2F0ZWRHbG9iYWxTZXR0
aW5ncy5oPgpAQCAtMjA0LDEyICsyMDksMzcgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybVNl
dENhY2hlTW9kZWwoQ2FjaGVNb2RlbCkKIAogaWQgV2ViUHJvY2Vzczo6YWNjZXNzaWJpbGl0eUZv
Y3VzZWRVSUVsZW1lbnQoKQogewotICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5OjpyZXRyaWV2ZUF1
dG9yZWxlYXNlZFZhbHVlRnJvbU1haW5UaHJlYWQ8aWQ+KFtdICgpIC0+IFJldGFpblB0cjxpZD4g
ewotICAgICAgICBXZWJQYWdlKiBwYWdlID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZm9jdXNl
ZFdlYlBhZ2UoKTsKLSAgICAgICAgaWYgKCFwYWdlIHx8ICFwYWdlLT5hY2Nlc3NpYmlsaXR5UmVt
b3RlT2JqZWN0KCkpCi0gICAgICAgICAgICByZXR1cm4gbmlsOwotICAgICAgICByZXR1cm4gW3Bh
Z2UtPmFjY2Vzc2liaWxpdHlSZW1vdGVPYmplY3QoKSBhY2Nlc3NpYmlsaXR5Rm9jdXNlZFVJRWxl
bWVudF07Ci0gICAgfSk7CisjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkK
KyAgICBpZiAoIWlzTWFpblJ1bkxvb3AoKSkgeworICAgICAgICAvLyBBdm9pZCBoaXR0aW5nIHRo
ZSBtYWluIHRocmVhZCBieSBnZXR0aW5nIHRoZSBmb2N1c2VkIG9iamVjdCBmcm9tIHRoZSBmb2N1
c2VkIGlzb2xhdGVkIHRyZWUuCisgICAgICAgIGF1dG8gdHJlZSA9IGZpbmRBWFRyZWUoW10gKEFY
VHJlZVB0ciB0cmVlKSAtPiBib29sIHsKKyAgICAgICAgICAgIE9wdGlvblNldDxBY3Rpdml0eVN0
YXRlPiBzdGF0ZTsKKyAgICAgICAgICAgIHN3aXRjaE9uKHRyZWUsCisgICAgICAgICAgICAgICAg
WyZzdGF0ZV0gKFJlZlB0cjxBWElzb2xhdGVkVHJlZT4mIHR5cGVkVHJlZSkgeworICAgICAgICAg
ICAgICAgICAgICBpZiAodHlwZWRUcmVlKQorICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUg
PSB0eXBlZFRyZWUtPmxvY2tlZFBhZ2VBY3Rpdml0eVN0YXRlKCk7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICwgW10gKGF1dG8mKSB7IH0KKyAgICAgICAgICAgICk7CisgICAg
ICAgICAgICByZXR1cm4gc3RhdGUuY29udGFpbnNBbGwoeyBBY3Rpdml0eVN0YXRlOjpJc1Zpc2li
bGUsIEFjdGl2aXR5U3RhdGU6OklzRm9jdXNlZCwgQWN0aXZpdHlTdGF0ZTo6V2luZG93SXNBY3Rp
dmUgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIFJlZlB0ciBvYmplY3QgPSBzd2l0Y2hPbih0
cmVlLAorICAgICAgICAgICAgW10gKFJlZlB0cjxBWElzb2xhdGVkVHJlZT4mIHR5cGVkVHJlZSkg
LT4gUmVmUHRyPEFYSXNvbGF0ZWRPYmplY3Q+IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHlw
ZWRUcmVlID8gdHlwZWRUcmVlLT5mb2N1c2VkTm9kZSgpIDogbnVsbHB0cjsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICwgW10gKGF1dG8mKSAtPiBSZWZQdHI8QVhJc29sYXRlZE9iamVjdD4g
eworICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICAgICAgfQorICAgICAg
ICApOworICAgICAgICByZXR1cm4gb2JqZWN0ID8gb2JqZWN0LT53cmFwcGVyKCkgOiBuaWw7Cisg
ICAgfQorI2VuZGlmCisKKyAgICBXZWJQYWdlKiBwYWdlID0gV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkuZm9jdXNlZFdlYlBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UgfHwgIXBhZ2UtPmFjY2Vzc2liaWxp
dHlSZW1vdGVPYmplY3QoKSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICByZXR1cm4gW3BhZ2Ut
PmFjY2Vzc2liaWxpdHlSZW1vdGVPYmplY3QoKSBhY2Nlc3NpYmlsaXR5Rm9jdXNlZFVJRWxlbWVu
dF07CiB9CiAKICNpZiBVU0UoQVBQS0lUKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>466571</attachid>
            <date>2023-06-02 10:22:58 -0700</date>
            <delta_ts>2023-06-05 08:11:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-256761-20230602132257.patch</filename>
            <type>text/plain</type>
            <size>15714</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">RnJvbSBkMjViZDU5NWYwMjg5NTc1OTBlOWZlNjJiMGMyYjEwNjRmY2M2NDBlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXMgR29uemFsZXogPGFuZHJlc2dfMjJAYXBwbGUuY29t
PgpEYXRlOiBTYXQsIDEzIE1heSAyMDIzIDEzOjI4OjU1IC0wNDAwClN1YmplY3Q6IFtQQVRDSF0g
QVg6IEF2b2lkIGhpdHRpbmcgdGhlIG1haW4gdGhyZWFkIGluCiBOU0FwcGxpY2F0aW9uQWNjZXNz
aWJpbGl0eUZvY3VzZWRVSUVsZW1lbnQgaW4gaXNvbGF0ZWQgdHJlZSBtb2RlLgogaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1Njc2MSA8cmRhcjovL3Byb2JsZW0vMTA5
MzA3MjAwPgoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpOU0FwcGxpY2F0aW9uQWNjZXNz
aWJpbGl0eUZvY3VzZWRVSUVsZW1lbnQgaXMgZnJlcXVlbnRseSBjYWxsZWQgYnkgQVQgdG8gdHJh
Y2sgdGhlIGZvY3VzIG9iamVjdC4gQ3VycmVudGx5IGl0IGhhcyB0byBoaXQgdGhlIG1haW4gdGhy
ZWFkIGV2ZXJ5IHRpbWUuClRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBieSBhZGRpbmcgYSBtZWNoYW5p
c20gdG8ga2VlcCB0cmFjayBvZiB0aGUgZm9jdXNlZCBBWCB0cmVlIGJhc2VkIG9uIHRoZSBhc3Nv
Y2lhdGVkIFBhZ2UgQWN0aXZpdHlTdGF0ZS4gVGhlbiwgdGhlIGZvY3VzZWQgb2JqZWN0IGlzIHJl
dHJpZXZlZCBmcm9tIHRoZSBmb2N1c2VkIHRyZWUgb2J0YWluZWQgdmlhIEFYVHJlZVN0b3JlOjpm
aW5kVHJlZS4KSW4gYWRkaXRpb24sIHRoaXMgcGF0Y2ggYWxzbyBjYWNoZXMgdGhlIEhlbHBUZXh0
IGZvciBTY3JvbGxWaWV3cyBhbmQgV2ViQXJlYXMgZWFnZXJseSBzaW5jZSB0aGF0J3MgYW5vdGhl
ciBwcm9wZXJ0eSByZXF1ZXN0ZWQgYnkgQVQgd2hpbGUgdGhlIGlzb2xhdGVkIHRyZWUgaXMgYmVp
bmcgYnVpbHQuCi0tLQogLi4uL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNw
cCAgIHwgMjEgKysrKysrKy0KIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RD
YWNoZS5oICB8ICA2ICsrKwogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWFRyZWVTdG9y
ZS5oICAgIHwgIDcgKystCiAuLi4vaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwICAg
ICAgICAgfCAgMSArCiAuLi4vaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcCAgICAgICAg
ICAgfCA0OCArKysrKysrKysrKysrKysrKysrCiAuLi4vaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRU
cmVlLmggICAgICAgICAgICAgfCAgNyArKy0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAg
ICAgICAgICAgICAgICAgICB8ICA4ICsrKy0KIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwICB8ICA1ICstCiAuLi4vV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNz
Q29jb2EubW0gICAgICAgfCA0MiArKysrKysrKysrKysrLS0tCiA5IGZpbGVzIGNoYW5nZWQsIDEz
MCBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCBiM2FjMDY0MWQzODUuLjVkNzZlYWFj
Zjk5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
Y3BwCkBAIC0yNTYsNiArMjU2LDggQEAgQVhPYmplY3RDYWNoZTo6QVhPYmplY3RDYWNoZShEb2N1
bWVudCYgZG9jdW1lbnQpCiAgICAgICAgIGxvYWRpbmdQcm9ncmVzcyA9IDE7CiAgICAgbV9sb2Fk
aW5nUHJvZ3Jlc3MgPSBsb2FkaW5nUHJvZ3Jlc3M7CiAKKyAgICBpZiAobV9wYWdlSUQpCisgICAg
ICAgIG1fcGFnZUFjdGl2aXR5U3RhdGUgPSBtX2RvY3VtZW50LnBhZ2UoKS0+YWN0aXZpdHlTdGF0
ZSgpOwogICAgIEFYVHJlZVN0b3JlOjphZGQobV9pZCwgV2Vha1B0ciB7IHRoaXMgfSk7CiB9CiAK
QEAgLTI3MSw4ICsyNzMsMTEgQEAgQVhPYmplY3RDYWNoZTo6fkFYT2JqZWN0Q2FjaGUoKQogICAg
ICAgICBvYmplY3QtPmRldGFjaChBY2Nlc3NpYmlsaXR5RGV0YWNobWVudFR5cGU6OkNhY2hlRGVz
dHJveWVkKTsKIAogI2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpCi0gICAg
aWYgKG1fcGFnZUlEKQorICAgIGlmIChtX3BhZ2VJRCkgeworICAgICAgICBpZiAoYXV0byB0cmVl
ID0gQVhJc29sYXRlZFRyZWU6OnRyZWVGb3JQYWdlSUQoKm1fcGFnZUlEKSkKKyAgICAgICAgICAg
IHRyZWUtPnNldFBhZ2VBY3Rpdml0eVN0YXRlKHsgfSk7CiAgICAgICAgIEFYSXNvbGF0ZWRUcmVl
OjpyZW1vdmVUcmVlRm9yUGFnZUlEKCptX3BhZ2VJRCk7CisgICAgfQogI2VuZGlmCiAKICAgICBB
WFRyZWVTdG9yZTo6cmVtb3ZlKG1faWQpOwpAQCAtMTQ0Nyw2ICsxNDUyLDE3IEBAIHZvaWQgQVhP
YmplY3RDYWNoZTo6aGFuZGxlUm93Q291bnRDaGFuZ2VkKEFjY2Vzc2liaWxpdHlPYmplY3QqIGF4
T2JqZWN0LCBEb2N1bWVuCiAgICAgcG9zdE5vdGlmaWNhdGlvbihheE9iamVjdCwgZG9jdW1lbnQs
IEFYUm93Q291bnRDaGFuZ2VkKTsKIH0KIAordm9pZCBBWE9iamVjdENhY2hlOjpvblBhZ2VBY3Rp
dml0eVN0YXRlQ2hhbmdlKE9wdGlvblNldDxBY3Rpdml0eVN0YXRlPiBuZXdTdGF0ZSkKK3sKKyAg
ICBBU1NFUlQobV9wYWdlSUQpOworCisgICAgbV9wYWdlQWN0aXZpdHlTdGF0ZSA9IG5ld1N0YXRl
OworI2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpCisgICAgaWYgKGF1dG8g
dHJlZSA9IEFYSXNvbGF0ZWRUcmVlOjp0cmVlRm9yUGFnZUlEKG1fcGFnZUlEKSkKKyAgICAgICAg
dHJlZS0+c2V0UGFnZUFjdGl2aXR5U3RhdGUobmV3U3RhdGUpOworI2VuZGlmCit9CisKIHZvaWQg
QVhPYmplY3RDYWNoZTo6b25Gb2N1c0NoYW5nZShOb2RlKiBvbGROb2RlLCBOb2RlKiBuZXdOb2Rl
KQogewogICAgIGlmIChub2RlQW5kUmVuZGVyZXJBcmVWYWxpZChuZXdOb2RlKSAmJiByZW5kZXJl
ck5lZWRzRGVmZXJyZWRVcGRhdGUoKm5ld05vZGUtPnJlbmRlcmVyKCkpKSB7CkBAIC0xNTA2LDkg
KzE1MjIsMTAgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVGb2N1c2VkVUlFbGVtZW50Q2hh
bmdlZChOb2RlKiBvbGROb2RlLCBOb2RlKiBuZXdOb2RlLAogICAgIGlmICh1cGRhdGVNb2RhbCA9
PSBVcGRhdGVNb2RhbDo6WWVzKQogICAgICAgICB1cGRhdGVDdXJyZW50TW9kYWxOb2RlKCk7CiAg
ICAgaGFuZGxlTWVudUl0ZW1TZWxlY3RlZChuZXdOb2RlKTsKKwogICAgIHBsYXRmb3JtSGFuZGxl
Rm9jdXNlZFVJRWxlbWVudENoYW5nZWQob2xkTm9kZSwgbmV3Tm9kZSk7CiB9Ci0gICAgCisKIHZv
aWQgQVhPYmplY3RDYWNoZTo6c2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQoTm9kZSogbm9kZSkKIHsK
ICAgICBwb3N0Tm90aWZpY2F0aW9uKG5vZGUsIEFYU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAppbmRleCA5YjJj
YWY5ZTA4N2QuLjQ2MmVjZDE2MTIxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmgKQEAgLTE3OCw2ICsxNzgsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lk
IGF0dGFjaFdyYXBwZXIoQWNjZXNzaWJpbGl0eU9iamVjdCopOwogCiBwdWJsaWM6CisgICAgdm9p
ZCBvblBhZ2VBY3Rpdml0eVN0YXRlQ2hhbmdlKE9wdGlvblNldDxBY3Rpdml0eVN0YXRlPik7Cisg
ICAgdm9pZCBzZXRQYWdlQWN0aXZpdHlTdGF0ZShPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZT4gc3Rh
dGUpIHsgbV9wYWdlQWN0aXZpdHlTdGF0ZSA9IHN0YXRlOyB9CisgICAgT3B0aW9uU2V0PEFjdGl2
aXR5U3RhdGU+IHBhZ2VBY3Rpdml0eVN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlQWN0aXZp
dHlTdGF0ZTsgfQorCiAgICAgdm9pZCBjaGlsZHJlbkNoYW5nZWQoTm9kZSosIE5vZGUqIG5ld0No
aWxkID0gbnVsbHB0cik7CiAgICAgdm9pZCBjaGlsZHJlbkNoYW5nZWQoUmVuZGVyT2JqZWN0Kiwg
UmVuZGVyT2JqZWN0KiBuZXdDaGlsZCA9IG51bGxwdHIpOwogICAgIHZvaWQgY2hpbGRyZW5DaGFu
Z2VkKEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKQEAgLTU4NCw2ICs1ODgsNyBAQCBwcml2YXRlOgog
CiAgICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7CiAgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxQYWdl
SWRlbnRpZmllcj4gbV9wYWdlSUQ7IC8vIGNvbnN0YW50IGZvciBvYmplY3QncyBsaWZldGltZS4K
KyAgICBPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZT4gbV9wYWdlQWN0aXZpdHlTdGF0ZTsKICAgICBI
YXNoTWFwPEFYSUQsIFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0Pj4gbV9vYmplY3RzOwogICAg
IEhhc2hNYXA8UmVuZGVyT2JqZWN0KiwgQVhJRD4gbV9yZW5kZXJPYmplY3RNYXBwaW5nOwogICAg
IEhhc2hNYXA8V2lkZ2V0KiwgQVhJRD4gbV93aWRnZXRPYmplY3RNYXBwaW5nOwpAQCAtNzExLDYg
KzcxNiw3IEBAIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om9uVGl0bGVDaGFuZ2UoRG9jdW1l
bnQmKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om9uVmFsaWRpdHlDaGFuZ2UoRWxl
bWVudCYpIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6dmFsdWVDaGFuZ2VkKEVsZW1l
bnQqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om9uRm9jdXNDaGFuZ2UoTm9kZSos
IE5vZGUqKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om9uUGFnZUFjdGl2aXR5U3Rh
dGVDaGFuZ2UoT3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU+KSB7IH0KIGlubGluZSB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6Om9uU2Nyb2xsYmFyRnJhbWVSZWN0Q2hhbmdlKGNvbnN0IFNjcm9sbGJhciYpIHsg
fQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6ZGVmZXJSZWNvbXB1dGVJc0lnbm9yZWRJZk5l
ZWRlZChFbGVtZW50KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpkZWZlclJlY29t
cHV0ZUlzSWdub3JlZChFbGVtZW50KikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYVHJlZVN0b3JlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FYVHJlZVN0b3JlLmgKaW5kZXggYmYwODk4ZTBhN2FiLi5lMzIyYzZkNjkxN2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhUcmVlU3RvcmUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYVHJlZVN0b3JlLmgKQEAgLTI1LDYgKzI1LDcgQEAK
ICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5o
IgorI2luY2x1ZGUgIkFjdGl2aXR5U3RhdGUuaCIKICNpbmNsdWRlIDx2YXJpYW50PgogI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KQEAgLTUyLDEwICs1Mywx
NCBAQCB1c2luZyBBWFRyZWVXZWFrUHRyID0gc3RkOjp2YXJpYW50PFdlYWtQdHI8QVhPYmplY3RD
YWNoZT4KICNlbmRpZgogPjsKIAorQVhUcmVlUHRyIGF4VHJlZUZvcklEKEFYSUQpOworV0VCQ09S
RV9FWFBPUlQgQVhUcmVlUHRyIGZpbmRBWFRyZWUoRnVuY3Rpb248Ym9vbChBWFRyZWVQdHIpPiYm
KTsKKwogdGVtcGxhdGU8dHlwZW5hbWUgVD4KIGNsYXNzIEFYVHJlZVN0b3JlIHsKICAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShBWFRyZWVTdG9yZSk7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CisgICAgZnJpZW5kIEFYVHJlZVB0ciBmaW5kQVhUcmVlKEZ1bmN0aW9uPGJvb2woQVhUcmVl
UHRyKT4mJik7CiBwdWJsaWM6CiAgICAgQVhJRCB0cmVlSUQoKSBjb25zdCB7IHJldHVybiBtX2lk
OyB9CiAgICAgc3RhdGljIFdlYWtQdHI8QVhPYmplY3RDYWNoZT4gYXhPYmplY3RDYWNoZUZvcklE
KEFYSUQpOwpAQCAtNzksNyArODQsNyBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIHN0YXRp
YyBIYXNoTWFwPEFYSUQsIFdlYWtQdHI8QVhPYmplY3RDYWNoZT4+JiBsaXZlVHJlZU1hcCgpOwog
I2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpCi0gICAgc3RhdGljIEhhc2hN
YXA8QVhJRCwgVGhyZWFkU2FmZVdlYWtQdHI8QVhJc29sYXRlZFRyZWU+PiYgaXNvbGF0ZWRUcmVl
TWFwKCkgV1RGX1JFUVVJUkVTX0xPQ0soc19zdG9yZUxvY2spOworICAgIHN0YXRpYyBIYXNoTWFw
PEFYSUQsIFRocmVhZFNhZmVXZWFrUHRyPEFYSXNvbGF0ZWRUcmVlPj4mIGlzb2xhdGVkVHJlZU1h
cCgpOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCmluZGV4IDYwNmI3
YWYzMGVlMi4uNDY1ZDRlYmExMTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcApAQCAt
MzEwLDYgKzMxMCw3IEBAIHZvaWQgQVhJc29sYXRlZE9iamVjdDo6aW5pdGlhbGl6ZVByb3BlcnRp
ZXMoY29uc3QgUmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+JiBheE9iCiAgICAgICAgIC8vIEZvciB0
aGUgU2Nyb2xsVmlldyBhbmQgV2ViQXJlYSBvYmplY3RzLCBjYWNoZSB0aGUgVGl0bGVBdHRyaWJ1
dGVWYWx1ZSBhbmQgRGVzY3JpcHRpb25BdHRyaWJ1dGVWYWx1ZSBlYWdlcmx5IHRvIGF2b2lkIGhp
dHRpbmcgdGhlIG1haW4gdGhyZWFkIGluIGdldE9yUmV0cmlldmVQcm9wZXJ0eVZhbHVlIGR1cmlu
ZyB0aGUgY29uc3RydWN0aW9uIG9mIHRoZSBpc29sYXRlZCB0cmVlLgogICAgICAgICBzZXRQcm9w
ZXJ0eShBWFByb3BlcnR5TmFtZTo6VGl0bGVBdHRyaWJ1dGVWYWx1ZSwgb2JqZWN0LnRpdGxlQXR0
cmlidXRlVmFsdWUoKS5pc29sYXRlZENvcHkoKSk7CiAgICAgICAgIHNldFByb3BlcnR5KEFYUHJv
cGVydHlOYW1lOjpEZXNjcmlwdGlvbkF0dHJpYnV0ZVZhbHVlLCBvYmplY3QuZGVzY3JpcHRpb25B
dHRyaWJ1dGVWYWx1ZSgpLmlzb2xhdGVkQ29weSgpKTsKKyAgICAgICAgc2V0UHJvcGVydHkoQVhQ
cm9wZXJ0eU5hbWU6OkhlbHBUZXh0LCBvYmplY3QuaGVscFRleHRBdHRyaWJ1dGVWYWx1ZSgpLmlz
b2xhdGVkQ29weSgpKTsKICAgICB9CiAKICAgICBpZiAoaXNSb290ID09IElzUm9vdDo6WWVzKSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9B
WElzb2xhdGVkVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVk
dHJlZS9BWElzb2xhdGVkVHJlZS5jcHAKaW5kZXggYTViZGYxNWY2NDQxLi5kZTJmNWIxN2QzY2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FY
SXNvbGF0ZWRUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xh
dGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAKQEAgLTQ2LDYgKzQ2LDcgQEAgSGFzaE1hcDxQYWdl
SWRlbnRpZmllciwgUmVmPEFYSXNvbGF0ZWRUcmVlPj4mIEFYSXNvbGF0ZWRUcmVlOjp0cmVlUGFn
ZUNhY2hlKCkKIEFYSXNvbGF0ZWRUcmVlOjpBWElzb2xhdGVkVHJlZShBWE9iamVjdENhY2hlJiBh
eE9iamVjdENhY2hlKQogICAgIDogQVhUcmVlU3RvcmUoYXhPYmplY3RDYWNoZS50cmVlSUQoKSkK
ICAgICAsIG1fYXhPYmplY3RDYWNoZSgmYXhPYmplY3RDYWNoZSkKKyAgICAsIG1fcGFnZUFjdGl2
aXR5U3RhdGUoYXhPYmplY3RDYWNoZS5wYWdlQWN0aXZpdHlTdGF0ZSgpKQogICAgICwgbV9nZW9t
ZXRyeU1hbmFnZXIoYXhPYmplY3RDYWNoZS5tX2dlb21ldHJ5TWFuYWdlci5wdHIoKSkKICAgICAs
IG1fdXNlZE9uQVhUaHJlYWQoYXhPYmplY3RDYWNoZS51c2VkT25BWFRocmVhZCgpKQogewpAQCAt
NzEyLDYgKzcxMywyNiBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVDaGlsZHJlbihBY2Nl
c3NpYmlsaXR5T2JqZWN0JiBheE9iamVjdCwgUmVzb2x2ZU5vZGVDaAogICAgIHVwZGF0ZU5vZGVB
bmREZXBlbmRlbnRQcm9wZXJ0aWVzKCpheEFuY2VzdG9yKTsKIH0KIAordm9pZCBBWElzb2xhdGVk
VHJlZTo6c2V0UGFnZUFjdGl2aXR5U3RhdGUoT3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU+IHN0YXRl
KQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisKKyAgICBMb2NrZXIgbG9ja2VyIHsg
c19zdG9yZUxvY2sgfTsKKyAgICBtX3BhZ2VBY3Rpdml0eVN0YXRlID0gc3RhdGU7Cit9CisKK09w
dGlvblNldDxBY3Rpdml0eVN0YXRlPiBBWElzb2xhdGVkVHJlZTo6cGFnZUFjdGl2aXR5U3RhdGUo
KSBjb25zdAoreworICAgIExvY2tlciBsb2NrZXIgeyBzX3N0b3JlTG9jayB9OworICAgIHJldHVy
biBtX3BhZ2VBY3Rpdml0eVN0YXRlOworfQorCitPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZT4gQVhJ
c29sYXRlZFRyZWU6OmxvY2tlZFBhZ2VBY3Rpdml0eVN0YXRlKCkgY29uc3QKK3sKKyAgICBBU1NF
UlQoc19zdG9yZUxvY2suaXNMb2NrZWQoKSk7CisgICAgcmV0dXJuIG1fcGFnZUFjdGl2aXR5U3Rh
dGU7Cit9CisKIFJlZlB0cjxBWElzb2xhdGVkT2JqZWN0PiBBWElzb2xhdGVkVHJlZTo6Zm9jdXNl
ZE5vZGUoKQogewogICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpmb2N1c2VkTm9kZSJfcyk7
CkBAIC05NTksNiArOTgwLDMzIEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OmFwcGx5UGVuZGluZ0No
YW5nZXMoKQogICAgIG1fcGVuZGluZ1Byb3BlcnR5Q2hhbmdlcy5jbGVhcigpOwogfQogCitBWFRy
ZWVQdHIgZmluZEFYVHJlZShGdW5jdGlvbjxib29sKEFYVHJlZVB0cik+JiYgbWF0Y2gpCit7Cisg
ICAgaWYgKGlzTWFpblRocmVhZCgpKSB7CisgICAgICAgIGZvciAoV2Vha1B0ciB0cmVlIDogQVhU
cmVlU3RvcmU8QVhPYmplY3RDYWNoZT46OmxpdmVUcmVlTWFwKCkudmFsdWVzKCkpIHsKKyAgICAg
ICAgICAgIGlmICghdHJlZSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAg
ICAgaWYgKG1hdGNoKHRyZWUpKQorICAgICAgICAgICAgICAgIHJldHVybiB0cmVlOworICAgICAg
ICB9CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworI2lmIEVOQUJMRShBQ0NFU1NJ
QklMSVRZX0lTT0xBVEVEX1RSRUUpCisgICAgTG9ja2VyIGxvY2tlciB7IEFYVHJlZVN0b3JlPEFY
SXNvbGF0ZWRUcmVlPjo6c19zdG9yZUxvY2sgfTsKKyAgICBmb3IgKGF1dG8gaXQgPSBBWFRyZWVT
dG9yZTxBWElzb2xhdGVkVHJlZT46Omlzb2xhdGVkVHJlZU1hcCgpLmJlZ2luKCk7IGl0ICE9IEFY
VHJlZVN0b3JlPEFYSXNvbGF0ZWRUcmVlPjo6aXNvbGF0ZWRUcmVlTWFwKCkuZW5kKCk7ICsraXQp
IHsKKyAgICAgICAgUmVmUHRyIHRyZWUgPSBpdC0+dmFsdWUuZ2V0KCk7CisgICAgICAgIGlmICgh
dHJlZSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGlmIChtYXRjaCh0cmVlKSkK
KyAgICAgICAgICAgIHJldHVybiB0cmVlOworICAgIH0KKyAgICByZXR1cm4gbnVsbHB0cjsKKyNl
bmRpZgorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoQUND
RVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgKaW5kZXggMjNlMDY5
NThjNGMxLi44N2YxMTdjM2E3NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaApAQCAtMjY3LDcgKzI2
Nyw3IEBAIHB1YmxpYzoKICAgICBjb25zdGV4cHIgQVhHZW9tZXRyeU1hbmFnZXIqIGdlb21ldHJ5
TWFuYWdlcigpIGNvbnN0IHsgcmV0dXJuIG1fZ2VvbWV0cnlNYW5hZ2VyLmdldCgpOyB9CiAKICAg
ICBSZWZQdHI8QVhJc29sYXRlZE9iamVjdD4gcm9vdE5vZGUoKTsKLSAgICBSZWZQdHI8QVhJc29s
YXRlZE9iamVjdD4gZm9jdXNlZE5vZGUoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBSZWZQdHI8QVhJ
c29sYXRlZE9iamVjdD4gZm9jdXNlZE5vZGUoKTsKIAogICAgIFJlZlB0cjxBWElzb2xhdGVkT2Jq
ZWN0PiBvYmplY3RGb3JJRChjb25zdCBBWElEKSBjb25zdDsKICAgICBWZWN0b3I8UmVmUHRyPEFY
Q29yZU9iamVjdD4+IG9iamVjdHNGb3JJRHMoY29uc3QgVmVjdG9yPEFYSUQ+Jik7CkBAIC0zMTUs
NiArMzE1LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGFwcGx5UGVuZGluZ0NoYW5nZXMoKTsKIAog
ICAgIEFYSUQgdHJlZUlEKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQorICAgIHZvaWQgc2V0UGFn
ZUFjdGl2aXR5U3RhdGUoT3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU+KTsKKyAgICBPcHRpb25TZXQ8
QWN0aXZpdHlTdGF0ZT4gcGFnZUFjdGl2aXR5U3RhdGUoKSBjb25zdDsKKyAgICAvLyBVc2Ugb25s
eSBpZiB0aGUgc19zdG9yZUxvY2sgaXMgYWxyZWFkeSBoZWxkIGxpa2UgaW4gZmluZEFYVHJlZS4K
KyAgICBXRUJDT1JFX0VYUE9SVCBPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZT4gbG9ja2VkUGFnZUFj
dGl2aXR5U3RhdGUoKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBBWElzb2xhdGVkVHJlZShBWE9i
amVjdENhY2hlJik7CkBAIC0zNDMsNiArMzQ3LDcgQEAgcHJpdmF0ZToKIAogICAgIHVuc2lnbmVk
IG1fbWF4VHJlZURlcHRoIHsgMCB9OwogICAgIFdlYWtQdHI8QVhPYmplY3RDYWNoZT4gbV9heE9i
amVjdENhY2hlOworICAgIE9wdGlvblNldDxBY3Rpdml0eVN0YXRlPiBtX3BhZ2VBY3Rpdml0eVN0
YXRlOwogICAgIFJlZlB0cjxBWEdlb21ldHJ5TWFuYWdlcj4gbV9nZW9tZXRyeU1hbmFnZXI7CiAg
ICAgYm9vbCBtX3VzZWRPbkFYVGhyZWFkIHsgdHJ1ZSB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRl
eCAwY2U1OWEzYjExYTcuLjdmYzlhYjIxOWU1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0yNjc5
LDggKzI2NzksOSBAQCB2b2lkIFBhZ2U6OnNldEFjdGl2aXR5U3RhdGUoT3B0aW9uU2V0PEFjdGl2
aXR5U3RhdGU+IGFjdGl2aXR5U3RhdGUpCiAgICAgICAgIHNldElzSW5XaW5kb3dJbnRlcm5hbChh
Y3Rpdml0eVN0YXRlLmNvbnRhaW5zKEFjdGl2aXR5U3RhdGU6OklzSW5XaW5kb3cpKTsKICAgICBp
ZiAoY2hhbmdlZCAmIEFjdGl2aXR5U3RhdGU6OklzVmlzdWFsbHlJZGxlKQogICAgICAgICBzZXRJ
c1Zpc3VhbGx5SWRsZUludGVybmFsKGFjdGl2aXR5U3RhdGUuY29udGFpbnMoQWN0aXZpdHlTdGF0
ZTo6SXNWaXN1YWxseUlkbGUpKTsKKworICAgIGF1dG8qIGxvY2FsTWFpbkZyYW1lID0gZHluYW1p
Y0Rvd25jYXN0PExvY2FsRnJhbWU+KG1fbWFpbkZyYW1lLmdldCgpKTsKICAgICBpZiAoY2hhbmdl
ZCAmIEFjdGl2aXR5U3RhdGU6OldpbmRvd0lzQWN0aXZlKSB7Ci0gICAgICAgIGF1dG8qIGxvY2Fs
TWFpbkZyYW1lID0gZHluYW1pY0Rvd25jYXN0PExvY2FsRnJhbWU+KG1fbWFpbkZyYW1lLmdldCgp
KTsKICAgICAgICAgaWYgKGF1dG8qIHZpZXcgPSBsb2NhbE1haW5GcmFtZSA/IGxvY2FsTWFpbkZy
YW1lLT52aWV3KCkgOiBudWxscHRyKQogICAgICAgICAgICAgdmlldy0+dXBkYXRlVGlsZWRCYWNr
aW5nQWRhcHRpdmVTaXppbmcoKTsKICAgICB9CkBAIC0yNjk2LDYgKzI2OTcsMTEgQEAgdm9pZCBQ
YWdlOjpzZXRBY3Rpdml0eVN0YXRlKE9wdGlvblNldDxBY3Rpdml0eVN0YXRlPiBhY3Rpdml0eVN0
YXRlKQogICAgICAgICBzdG9wS2V5Ym9hcmRTY3JvbGxBbmltYXRpb24oKTsKICAgICB9CiAKKyAg
ICBpZiAoYXV0byogZG9jdW1lbnQgPSBsb2NhbE1haW5GcmFtZSA/IGxvY2FsTWFpbkZyYW1lLT5k
b2N1bWVudCgpIDogbnVsbHB0cikgeworICAgICAgICBpZiAoYXV0byogY2FjaGUgPSBkb2N1bWVu
dC0+ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+b25QYWdlQWN0
aXZpdHlTdGF0ZUNoYW5nZShtX2FjdGl2aXR5U3RhdGUpOworICAgIH0KKwogICAgIGlmIChtX3Bl
cmZvcm1hbmNlTW9uaXRvcikKICAgICAgICAgbV9wZXJmb3JtYW5jZU1vbml0b3ItPmFjdGl2aXR5
U3RhdGVDaGFuZ2VkKG9sZEFjdGl2aXR5U3RhdGUsIGFjdGl2aXR5U3RhdGUpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA3ODA1ODYwMmYz
YmYuLmZjNzZlNDIyNjYxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKQEAgLTU3MTksMTAgKzU3MTksNyBAQCBib29sIFdlYlBhZ2U6OndpbmRvd0lz
Rm9jdXNlZCgpIGNvbnN0CiAKIGJvb2wgV2ViUGFnZTo6d2luZG93QW5kV2ViUGFnZUFyZUZvY3Vz
ZWQoKSBjb25zdAogewotICAgIGlmICghaXNWaXNpYmxlKCkpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLQotICAgIHJldHVybiBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLmlzRm9jdXNlZCgpICYm
IG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuaXNBY3RpdmUoKTsKKyAgICByZXR1cm4gaXNWaXNp
YmxlKCkgJiYgbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5pc0ZvY3VzZWQoKSAmJiBtX3BhZ2Ut
PmZvY3VzQ29udHJvbGxlcigpLmlzQWN0aXZlKCk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRl
Y29kZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJv
Y2Vzc0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3ND
b2NvYS5tbQppbmRleCA2NDY3NjE5MmQ0YmEuLmIxMWQyNWFhMGViZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCkBAIC01OCw2ICs1
OCwxMSBAQAogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvQ29uZmlnRmlsZS5oPgogI2ltcG9ydCA8
SmF2YVNjcmlwdENvcmUvT3B0aW9ucy5oPgogI2ltcG9ydCA8V2ViQ29yZS9BVkFzc2V0TUlNRVR5
cGVDYWNoZS5oPgorCisjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkKKyNp
bXBvcnQgPFdlYkNvcmUvQVhJc29sYXRlZE9iamVjdC5oPgorI2ltcG9ydCA8V2ViQ29yZS9BWElz
b2xhdGVkVHJlZS5oPgorI2VuZGlmCiAjaW1wb3J0IDxXZWJDb3JlL0FYT2JqZWN0Q2FjaGUuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvQ1BVTW9uaXRvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9EZXByZWNh
dGVkR2xvYmFsU2V0dGluZ3MuaD4KQEAgLTIwNCwxMiArMjA5LDM3IEBAIHZvaWQgV2ViUHJvY2Vz
czo6cGxhdGZvcm1TZXRDYWNoZU1vZGVsKENhY2hlTW9kZWwpCiAKIGlkIFdlYlByb2Nlc3M6OmFj
Y2Vzc2liaWxpdHlGb2N1c2VkVUlFbGVtZW50KCkKIHsKLSAgICByZXR1cm4gQWNjZXNzaWJpbGl0
eTo6cmV0cmlldmVBdXRvcmVsZWFzZWRWYWx1ZUZyb21NYWluVGhyZWFkPGlkPihbXSAoKSAtPiBS
ZXRhaW5QdHI8aWQ+IHsKLSAgICAgICAgV2ViUGFnZSogcGFnZSA9IFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLmZvY3VzZWRXZWJQYWdlKCk7Ci0gICAgICAgIGlmICghcGFnZSB8fCAhcGFnZS0+YWNj
ZXNzaWJpbGl0eVJlbW90ZU9iamVjdCgpKQotICAgICAgICAgICAgcmV0dXJuIG5pbDsKLSAgICAg
ICAgcmV0dXJuIFtwYWdlLT5hY2Nlc3NpYmlsaXR5UmVtb3RlT2JqZWN0KCkgYWNjZXNzaWJpbGl0
eUZvY3VzZWRVSUVsZW1lbnRdOwotICAgIH0pOworI2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZX0lT
T0xBVEVEX1RSRUUpCisgICAgaWYgKCFpc01haW5SdW5Mb29wKCkpIHsKKyAgICAgICAgLy8gQXZv
aWQgaGl0dGluZyB0aGUgbWFpbiB0aHJlYWQgYnkgZ2V0dGluZyB0aGUgZm9jdXNlZCBvYmplY3Qg
ZnJvbSB0aGUgZm9jdXNlZCBpc29sYXRlZCB0cmVlLgorICAgICAgICBhdXRvIHRyZWUgPSBmaW5k
QVhUcmVlKFtdIChBWFRyZWVQdHIgdHJlZSkgLT4gYm9vbCB7CisgICAgICAgICAgICBPcHRpb25T
ZXQ8QWN0aXZpdHlTdGF0ZT4gc3RhdGU7CisgICAgICAgICAgICBzd2l0Y2hPbih0cmVlLAorICAg
ICAgICAgICAgICAgIFsmc3RhdGVdIChSZWZQdHI8QVhJc29sYXRlZFRyZWU+JiB0eXBlZFRyZWUp
IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVkVHJlZSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHN0YXRlID0gdHlwZWRUcmVlLT5sb2NrZWRQYWdlQWN0aXZpdHlTdGF0ZSgpOworICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAsIFtdIChhdXRvJikgeyB9CisgICAgICAg
ICAgICApOworICAgICAgICAgICAgcmV0dXJuIHN0YXRlLmNvbnRhaW5zQWxsKHsgQWN0aXZpdHlT
dGF0ZTo6SXNWaXNpYmxlLCBBY3Rpdml0eVN0YXRlOjpJc0ZvY3VzZWQsIEFjdGl2aXR5U3RhdGU6
OldpbmRvd0lzQWN0aXZlIH0pOworICAgICAgICB9KTsKKworICAgICAgICBSZWZQdHIgb2JqZWN0
ID0gc3dpdGNoT24odHJlZSwKKyAgICAgICAgICAgIFtdIChSZWZQdHI8QVhJc29sYXRlZFRyZWU+
JiB0eXBlZFRyZWUpIC0+IFJlZlB0cjxBWElzb2xhdGVkT2JqZWN0PiB7CisgICAgICAgICAgICAg
ICAgcmV0dXJuIHR5cGVkVHJlZSA/IHR5cGVkVHJlZS0+Zm9jdXNlZE5vZGUoKSA6IG51bGxwdHI7
CisgICAgICAgICAgICB9CisgICAgICAgICAgICAsIFtdIChhdXRvJikgLT4gUmVmUHRyPEFYSXNv
bGF0ZWRPYmplY3Q+IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgKTsKKyAgICAgICAgcmV0dXJuIG9iamVjdCA/IG9iamVjdC0+d3JhcHBl
cigpIDogbmlsOworICAgIH0KKyNlbmRpZgorCisgICAgV2ViUGFnZSogcGFnZSA9IFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLmZvY3VzZWRXZWJQYWdlKCk7CisgICAgaWYgKCFwYWdlIHx8ICFwYWdl
LT5hY2Nlc3NpYmlsaXR5UmVtb3RlT2JqZWN0KCkpCisgICAgICAgIHJldHVybiBuaWw7CisgICAg
cmV0dXJuIFtwYWdlLT5hY2Nlc3NpYmlsaXR5UmVtb3RlT2JqZWN0KCkgYWNjZXNzaWJpbGl0eUZv
Y3VzZWRVSUVsZW1lbnRdOwogfQogCiAjaWYgVVNFKEFQUEtJVCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>466593</attachid>
            <date>2023-06-05 08:11:23 -0700</date>
            <delta_ts>2023-06-06 14:09:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-256761-20230605111122.patch</filename>
            <type>text/plain</type>
            <size>15729</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">RnJvbSA5YzZlYjUyNWUzMzE4ZWY4YTU0YjNhMjBlYTVjYTA3MGYzYjZhYjUxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXMgR29uemFsZXogPGFuZHJlc2dfMjJAYXBwbGUuY29t
PgpEYXRlOiBTYXQsIDEzIE1heSAyMDIzIDEzOjI4OjU1IC0wNDAwClN1YmplY3Q6IFtQQVRDSF0g
QVg6IEF2b2lkIGhpdHRpbmcgdGhlIG1haW4gdGhyZWFkIGluCiBOU0FwcGxpY2F0aW9uQWNjZXNz
aWJpbGl0eUZvY3VzZWRVSUVsZW1lbnQgaW4gaXNvbGF0ZWQgdHJlZSBtb2RlLgogaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1Njc2MSA8cmRhcjovL3Byb2JsZW0vMTA5
MzA3MjAwPgoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpOU0FwcGxpY2F0aW9uQWNjZXNz
aWJpbGl0eUZvY3VzZWRVSUVsZW1lbnQgaXMgZnJlcXVlbnRseSBjYWxsZWQgYnkgQVQgdG8gdHJh
Y2sgdGhlIGZvY3VzIG9iamVjdC4gQ3VycmVudGx5IGl0IGhhcyB0byBoaXQgdGhlIG1haW4gdGhy
ZWFkIGV2ZXJ5IHRpbWUuClRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBieSBhZGRpbmcgYSBtZWNoYW5p
c20gdG8ga2VlcCB0cmFjayBvZiB0aGUgZm9jdXNlZCBBWCB0cmVlIGJhc2VkIG9uIHRoZSBhc3Nv
Y2lhdGVkIFBhZ2UgQWN0aXZpdHlTdGF0ZS4gVGhlbiwgdGhlIGZvY3VzZWQgb2JqZWN0IGlzIHJl
dHJpZXZlZCBmcm9tIHRoZSBmb2N1c2VkIHRyZWUgb2J0YWluZWQgdmlhIEFYVHJlZVN0b3JlOjpm
aW5kVHJlZS4KSW4gYWRkaXRpb24sIHRoaXMgcGF0Y2ggYWxzbyBjYWNoZXMgdGhlIEhlbHBUZXh0
IGZvciBTY3JvbGxWaWV3cyBhbmQgV2ViQXJlYXMgZWFnZXJseSBzaW5jZSB0aGF0J3MgYW5vdGhl
ciBwcm9wZXJ0eSByZXF1ZXN0ZWQgYnkgQVQgd2hpbGUgdGhlIGlzb2xhdGVkIHRyZWUgaXMgYmVp
bmcgYnVpbHQuCi0tLQogLi4uL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNw
cCAgIHwgMjEgKysrKysrKy0KIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RD
YWNoZS5oICB8ICA2ICsrKwogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWFRyZWVTdG9y
ZS5oICAgIHwgIDcgKystCiAuLi4vaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwICAg
ICAgICAgfCAgMSArCiAuLi4vaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcCAgICAgICAg
ICAgfCA0OCArKysrKysrKysrKysrKysrKysrCiAuLi4vaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRU
cmVlLmggICAgICAgICAgICAgfCAgNyArKy0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAg
ICAgICAgICAgICAgICAgICB8ICA4ICsrKy0KIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwICB8ICA1ICstCiAuLi4vV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNz
Q29jb2EubW0gICAgICAgfCA0MiArKysrKysrKysrKysrLS0tCiA5IGZpbGVzIGNoYW5nZWQsIDEz
MCBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCBiM2FjMDY0MWQzODUuLjVkNzZlYWFj
Zjk5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
Y3BwCkBAIC0yNTYsNiArMjU2LDggQEAgQVhPYmplY3RDYWNoZTo6QVhPYmplY3RDYWNoZShEb2N1
bWVudCYgZG9jdW1lbnQpCiAgICAgICAgIGxvYWRpbmdQcm9ncmVzcyA9IDE7CiAgICAgbV9sb2Fk
aW5nUHJvZ3Jlc3MgPSBsb2FkaW5nUHJvZ3Jlc3M7CiAKKyAgICBpZiAobV9wYWdlSUQpCisgICAg
ICAgIG1fcGFnZUFjdGl2aXR5U3RhdGUgPSBtX2RvY3VtZW50LnBhZ2UoKS0+YWN0aXZpdHlTdGF0
ZSgpOwogICAgIEFYVHJlZVN0b3JlOjphZGQobV9pZCwgV2Vha1B0ciB7IHRoaXMgfSk7CiB9CiAK
QEAgLTI3MSw4ICsyNzMsMTEgQEAgQVhPYmplY3RDYWNoZTo6fkFYT2JqZWN0Q2FjaGUoKQogICAg
ICAgICBvYmplY3QtPmRldGFjaChBY2Nlc3NpYmlsaXR5RGV0YWNobWVudFR5cGU6OkNhY2hlRGVz
dHJveWVkKTsKIAogI2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpCi0gICAg
aWYgKG1fcGFnZUlEKQorICAgIGlmIChtX3BhZ2VJRCkgeworICAgICAgICBpZiAoYXV0byB0cmVl
ID0gQVhJc29sYXRlZFRyZWU6OnRyZWVGb3JQYWdlSUQoKm1fcGFnZUlEKSkKKyAgICAgICAgICAg
IHRyZWUtPnNldFBhZ2VBY3Rpdml0eVN0YXRlKHsgfSk7CiAgICAgICAgIEFYSXNvbGF0ZWRUcmVl
OjpyZW1vdmVUcmVlRm9yUGFnZUlEKCptX3BhZ2VJRCk7CisgICAgfQogI2VuZGlmCiAKICAgICBB
WFRyZWVTdG9yZTo6cmVtb3ZlKG1faWQpOwpAQCAtMTQ0Nyw2ICsxNDUyLDE3IEBAIHZvaWQgQVhP
YmplY3RDYWNoZTo6aGFuZGxlUm93Q291bnRDaGFuZ2VkKEFjY2Vzc2liaWxpdHlPYmplY3QqIGF4
T2JqZWN0LCBEb2N1bWVuCiAgICAgcG9zdE5vdGlmaWNhdGlvbihheE9iamVjdCwgZG9jdW1lbnQs
IEFYUm93Q291bnRDaGFuZ2VkKTsKIH0KIAordm9pZCBBWE9iamVjdENhY2hlOjpvblBhZ2VBY3Rp
dml0eVN0YXRlQ2hhbmdlKE9wdGlvblNldDxBY3Rpdml0eVN0YXRlPiBuZXdTdGF0ZSkKK3sKKyAg
ICBBU1NFUlQobV9wYWdlSUQpOworCisgICAgbV9wYWdlQWN0aXZpdHlTdGF0ZSA9IG5ld1N0YXRl
OworI2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpCisgICAgaWYgKGF1dG8g
dHJlZSA9IEFYSXNvbGF0ZWRUcmVlOjp0cmVlRm9yUGFnZUlEKG1fcGFnZUlEKSkKKyAgICAgICAg
dHJlZS0+c2V0UGFnZUFjdGl2aXR5U3RhdGUobmV3U3RhdGUpOworI2VuZGlmCit9CisKIHZvaWQg
QVhPYmplY3RDYWNoZTo6b25Gb2N1c0NoYW5nZShOb2RlKiBvbGROb2RlLCBOb2RlKiBuZXdOb2Rl
KQogewogICAgIGlmIChub2RlQW5kUmVuZGVyZXJBcmVWYWxpZChuZXdOb2RlKSAmJiByZW5kZXJl
ck5lZWRzRGVmZXJyZWRVcGRhdGUoKm5ld05vZGUtPnJlbmRlcmVyKCkpKSB7CkBAIC0xNTA2LDkg
KzE1MjIsMTAgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVGb2N1c2VkVUlFbGVtZW50Q2hh
bmdlZChOb2RlKiBvbGROb2RlLCBOb2RlKiBuZXdOb2RlLAogICAgIGlmICh1cGRhdGVNb2RhbCA9
PSBVcGRhdGVNb2RhbDo6WWVzKQogICAgICAgICB1cGRhdGVDdXJyZW50TW9kYWxOb2RlKCk7CiAg
ICAgaGFuZGxlTWVudUl0ZW1TZWxlY3RlZChuZXdOb2RlKTsKKwogICAgIHBsYXRmb3JtSGFuZGxl
Rm9jdXNlZFVJRWxlbWVudENoYW5nZWQob2xkTm9kZSwgbmV3Tm9kZSk7CiB9Ci0gICAgCisKIHZv
aWQgQVhPYmplY3RDYWNoZTo6c2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQoTm9kZSogbm9kZSkKIHsK
ICAgICBwb3N0Tm90aWZpY2F0aW9uKG5vZGUsIEFYU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAppbmRleCA5YjJj
YWY5ZTA4N2QuLjQ2MmVjZDE2MTIxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmgKQEAgLTE3OCw2ICsxNzgsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lk
IGF0dGFjaFdyYXBwZXIoQWNjZXNzaWJpbGl0eU9iamVjdCopOwogCiBwdWJsaWM6CisgICAgdm9p
ZCBvblBhZ2VBY3Rpdml0eVN0YXRlQ2hhbmdlKE9wdGlvblNldDxBY3Rpdml0eVN0YXRlPik7Cisg
ICAgdm9pZCBzZXRQYWdlQWN0aXZpdHlTdGF0ZShPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZT4gc3Rh
dGUpIHsgbV9wYWdlQWN0aXZpdHlTdGF0ZSA9IHN0YXRlOyB9CisgICAgT3B0aW9uU2V0PEFjdGl2
aXR5U3RhdGU+IHBhZ2VBY3Rpdml0eVN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlQWN0aXZp
dHlTdGF0ZTsgfQorCiAgICAgdm9pZCBjaGlsZHJlbkNoYW5nZWQoTm9kZSosIE5vZGUqIG5ld0No
aWxkID0gbnVsbHB0cik7CiAgICAgdm9pZCBjaGlsZHJlbkNoYW5nZWQoUmVuZGVyT2JqZWN0Kiwg
UmVuZGVyT2JqZWN0KiBuZXdDaGlsZCA9IG51bGxwdHIpOwogICAgIHZvaWQgY2hpbGRyZW5DaGFu
Z2VkKEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKQEAgLTU4NCw2ICs1ODgsNyBAQCBwcml2YXRlOgog
CiAgICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7CiAgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxQYWdl
SWRlbnRpZmllcj4gbV9wYWdlSUQ7IC8vIGNvbnN0YW50IGZvciBvYmplY3QncyBsaWZldGltZS4K
KyAgICBPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZT4gbV9wYWdlQWN0aXZpdHlTdGF0ZTsKICAgICBI
YXNoTWFwPEFYSUQsIFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0Pj4gbV9vYmplY3RzOwogICAg
IEhhc2hNYXA8UmVuZGVyT2JqZWN0KiwgQVhJRD4gbV9yZW5kZXJPYmplY3RNYXBwaW5nOwogICAg
IEhhc2hNYXA8V2lkZ2V0KiwgQVhJRD4gbV93aWRnZXRPYmplY3RNYXBwaW5nOwpAQCAtNzExLDYg
KzcxNiw3IEBAIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om9uVGl0bGVDaGFuZ2UoRG9jdW1l
bnQmKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om9uVmFsaWRpdHlDaGFuZ2UoRWxl
bWVudCYpIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6dmFsdWVDaGFuZ2VkKEVsZW1l
bnQqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om9uRm9jdXNDaGFuZ2UoTm9kZSos
IE5vZGUqKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om9uUGFnZUFjdGl2aXR5U3Rh
dGVDaGFuZ2UoT3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU+KSB7IH0KIGlubGluZSB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6Om9uU2Nyb2xsYmFyRnJhbWVSZWN0Q2hhbmdlKGNvbnN0IFNjcm9sbGJhciYpIHsg
fQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6ZGVmZXJSZWNvbXB1dGVJc0lnbm9yZWRJZk5l
ZWRlZChFbGVtZW50KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpkZWZlclJlY29t
cHV0ZUlzSWdub3JlZChFbGVtZW50KikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYVHJlZVN0b3JlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FYVHJlZVN0b3JlLmgKaW5kZXggYmYwODk4ZTBhN2FiLi5jODg3MTMxM2ZmY2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhUcmVlU3RvcmUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYVHJlZVN0b3JlLmgKQEAgLTI1LDYgKzI1LDcgQEAK
ICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5o
IgorI2luY2x1ZGUgIkFjdGl2aXR5U3RhdGUuaCIKICNpbmNsdWRlIDx2YXJpYW50PgogI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KQEAgLTUyLDEwICs1Mywx
NCBAQCB1c2luZyBBWFRyZWVXZWFrUHRyID0gc3RkOjp2YXJpYW50PFdlYWtQdHI8QVhPYmplY3RD
YWNoZT4KICNlbmRpZgogPjsKIAorQVhUcmVlUHRyIGF4VHJlZUZvcklEKEFYSUQpOworV0VCQ09S
RV9FWFBPUlQgQVhUcmVlUHRyIGZpbmRBWFRyZWUoRnVuY3Rpb248Ym9vbChBWFRyZWVQdHIpPiYm
KTsKKwogdGVtcGxhdGU8dHlwZW5hbWUgVD4KIGNsYXNzIEFYVHJlZVN0b3JlIHsKICAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShBWFRyZWVTdG9yZSk7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CisgICAgZnJpZW5kIFdFQkNPUkVfRVhQT1JUIEFYVHJlZVB0ciBmaW5kQVhUcmVlKEZ1bmN0
aW9uPGJvb2woQVhUcmVlUHRyKT4mJik7CiBwdWJsaWM6CiAgICAgQVhJRCB0cmVlSUQoKSBjb25z
dCB7IHJldHVybiBtX2lkOyB9CiAgICAgc3RhdGljIFdlYWtQdHI8QVhPYmplY3RDYWNoZT4gYXhP
YmplY3RDYWNoZUZvcklEKEFYSUQpOwpAQCAtNzksNyArODQsNyBAQCBwcm90ZWN0ZWQ6CiBwcml2
YXRlOgogICAgIHN0YXRpYyBIYXNoTWFwPEFYSUQsIFdlYWtQdHI8QVhPYmplY3RDYWNoZT4+JiBs
aXZlVHJlZU1hcCgpOwogI2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpCi0g
ICAgc3RhdGljIEhhc2hNYXA8QVhJRCwgVGhyZWFkU2FmZVdlYWtQdHI8QVhJc29sYXRlZFRyZWU+
PiYgaXNvbGF0ZWRUcmVlTWFwKCkgV1RGX1JFUVVJUkVTX0xPQ0soc19zdG9yZUxvY2spOworICAg
IHN0YXRpYyBIYXNoTWFwPEFYSUQsIFRocmVhZFNhZmVXZWFrUHRyPEFYSXNvbGF0ZWRUcmVlPj4m
IGlzb2xhdGVkVHJlZU1hcCgpOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3Qu
Y3BwCmluZGV4IDYwNmI3YWYzMGVlMi4uNDY1ZDRlYmExMTU2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVk
T2JqZWN0LmNwcApAQCAtMzEwLDYgKzMxMCw3IEBAIHZvaWQgQVhJc29sYXRlZE9iamVjdDo6aW5p
dGlhbGl6ZVByb3BlcnRpZXMoY29uc3QgUmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+JiBheE9iCiAg
ICAgICAgIC8vIEZvciB0aGUgU2Nyb2xsVmlldyBhbmQgV2ViQXJlYSBvYmplY3RzLCBjYWNoZSB0
aGUgVGl0bGVBdHRyaWJ1dGVWYWx1ZSBhbmQgRGVzY3JpcHRpb25BdHRyaWJ1dGVWYWx1ZSBlYWdl
cmx5IHRvIGF2b2lkIGhpdHRpbmcgdGhlIG1haW4gdGhyZWFkIGluIGdldE9yUmV0cmlldmVQcm9w
ZXJ0eVZhbHVlIGR1cmluZyB0aGUgY29uc3RydWN0aW9uIG9mIHRoZSBpc29sYXRlZCB0cmVlLgog
ICAgICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6VGl0bGVBdHRyaWJ1dGVWYWx1ZSwg
b2JqZWN0LnRpdGxlQXR0cmlidXRlVmFsdWUoKS5pc29sYXRlZENvcHkoKSk7CiAgICAgICAgIHNl
dFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpEZXNjcmlwdGlvbkF0dHJpYnV0ZVZhbHVlLCBvYmpl
Y3QuZGVzY3JpcHRpb25BdHRyaWJ1dGVWYWx1ZSgpLmlzb2xhdGVkQ29weSgpKTsKKyAgICAgICAg
c2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OkhlbHBUZXh0LCBvYmplY3QuaGVscFRleHRBdHRy
aWJ1dGVWYWx1ZSgpLmlzb2xhdGVkQ29weSgpKTsKICAgICB9CiAKICAgICBpZiAoaXNSb290ID09
IElzUm9vdDo6WWVzKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAKaW5kZXggYTViZGYxNWY2NDQx
Li5kZTJmNWIxN2QzY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
aXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAKQEAgLTQ2LDYgKzQ2LDcg
QEAgSGFzaE1hcDxQYWdlSWRlbnRpZmllciwgUmVmPEFYSXNvbGF0ZWRUcmVlPj4mIEFYSXNvbGF0
ZWRUcmVlOjp0cmVlUGFnZUNhY2hlKCkKIEFYSXNvbGF0ZWRUcmVlOjpBWElzb2xhdGVkVHJlZShB
WE9iamVjdENhY2hlJiBheE9iamVjdENhY2hlKQogICAgIDogQVhUcmVlU3RvcmUoYXhPYmplY3RD
YWNoZS50cmVlSUQoKSkKICAgICAsIG1fYXhPYmplY3RDYWNoZSgmYXhPYmplY3RDYWNoZSkKKyAg
ICAsIG1fcGFnZUFjdGl2aXR5U3RhdGUoYXhPYmplY3RDYWNoZS5wYWdlQWN0aXZpdHlTdGF0ZSgp
KQogICAgICwgbV9nZW9tZXRyeU1hbmFnZXIoYXhPYmplY3RDYWNoZS5tX2dlb21ldHJ5TWFuYWdl
ci5wdHIoKSkKICAgICAsIG1fdXNlZE9uQVhUaHJlYWQoYXhPYmplY3RDYWNoZS51c2VkT25BWFRo
cmVhZCgpKQogewpAQCAtNzEyLDYgKzcxMywyNiBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjp1cGRh
dGVDaGlsZHJlbihBY2Nlc3NpYmlsaXR5T2JqZWN0JiBheE9iamVjdCwgUmVzb2x2ZU5vZGVDaAog
ICAgIHVwZGF0ZU5vZGVBbmREZXBlbmRlbnRQcm9wZXJ0aWVzKCpheEFuY2VzdG9yKTsKIH0KIAor
dm9pZCBBWElzb2xhdGVkVHJlZTo6c2V0UGFnZUFjdGl2aXR5U3RhdGUoT3B0aW9uU2V0PEFjdGl2
aXR5U3RhdGU+IHN0YXRlKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisKKyAgICBM
b2NrZXIgbG9ja2VyIHsgc19zdG9yZUxvY2sgfTsKKyAgICBtX3BhZ2VBY3Rpdml0eVN0YXRlID0g
c3RhdGU7Cit9CisKK09wdGlvblNldDxBY3Rpdml0eVN0YXRlPiBBWElzb2xhdGVkVHJlZTo6cGFn
ZUFjdGl2aXR5U3RhdGUoKSBjb25zdAoreworICAgIExvY2tlciBsb2NrZXIgeyBzX3N0b3JlTG9j
ayB9OworICAgIHJldHVybiBtX3BhZ2VBY3Rpdml0eVN0YXRlOworfQorCitPcHRpb25TZXQ8QWN0
aXZpdHlTdGF0ZT4gQVhJc29sYXRlZFRyZWU6OmxvY2tlZFBhZ2VBY3Rpdml0eVN0YXRlKCkgY29u
c3QKK3sKKyAgICBBU1NFUlQoc19zdG9yZUxvY2suaXNMb2NrZWQoKSk7CisgICAgcmV0dXJuIG1f
cGFnZUFjdGl2aXR5U3RhdGU7Cit9CisKIFJlZlB0cjxBWElzb2xhdGVkT2JqZWN0PiBBWElzb2xh
dGVkVHJlZTo6Zm9jdXNlZE5vZGUoKQogewogICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpm
b2N1c2VkTm9kZSJfcyk7CkBAIC05NTksNiArOTgwLDMzIEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6
OmFwcGx5UGVuZGluZ0NoYW5nZXMoKQogICAgIG1fcGVuZGluZ1Byb3BlcnR5Q2hhbmdlcy5jbGVh
cigpOwogfQogCitBWFRyZWVQdHIgZmluZEFYVHJlZShGdW5jdGlvbjxib29sKEFYVHJlZVB0cik+
JiYgbWF0Y2gpCit7CisgICAgaWYgKGlzTWFpblRocmVhZCgpKSB7CisgICAgICAgIGZvciAoV2Vh
a1B0ciB0cmVlIDogQVhUcmVlU3RvcmU8QVhPYmplY3RDYWNoZT46OmxpdmVUcmVlTWFwKCkudmFs
dWVzKCkpIHsKKyAgICAgICAgICAgIGlmICghdHJlZSkKKyAgICAgICAgICAgICAgICBjb250aW51
ZTsKKworICAgICAgICAgICAgaWYgKG1hdGNoKHRyZWUpKQorICAgICAgICAgICAgICAgIHJldHVy
biB0cmVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworI2lm
IEVOQUJMRShBQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpCisgICAgTG9ja2VyIGxvY2tlciB7
IEFYVHJlZVN0b3JlPEFYSXNvbGF0ZWRUcmVlPjo6c19zdG9yZUxvY2sgfTsKKyAgICBmb3IgKGF1
dG8gaXQgPSBBWFRyZWVTdG9yZTxBWElzb2xhdGVkVHJlZT46Omlzb2xhdGVkVHJlZU1hcCgpLmJl
Z2luKCk7IGl0ICE9IEFYVHJlZVN0b3JlPEFYSXNvbGF0ZWRUcmVlPjo6aXNvbGF0ZWRUcmVlTWFw
KCkuZW5kKCk7ICsraXQpIHsKKyAgICAgICAgUmVmUHRyIHRyZWUgPSBpdC0+dmFsdWUuZ2V0KCk7
CisgICAgICAgIGlmICghdHJlZSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGlm
IChtYXRjaCh0cmVlKSkKKyAgICAgICAgICAgIHJldHVybiB0cmVlOworICAgIH0KKyAgICByZXR1
cm4gbnVsbHB0cjsKKyNlbmRpZgorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRp
ZiAvLyBFTkFCTEUoQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVl
LmgKaW5kZXggMjNlMDY5NThjNGMxLi44N2YxMTdjM2E3NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUu
aApAQCAtMjY3LDcgKzI2Nyw3IEBAIHB1YmxpYzoKICAgICBjb25zdGV4cHIgQVhHZW9tZXRyeU1h
bmFnZXIqIGdlb21ldHJ5TWFuYWdlcigpIGNvbnN0IHsgcmV0dXJuIG1fZ2VvbWV0cnlNYW5hZ2Vy
LmdldCgpOyB9CiAKICAgICBSZWZQdHI8QVhJc29sYXRlZE9iamVjdD4gcm9vdE5vZGUoKTsKLSAg
ICBSZWZQdHI8QVhJc29sYXRlZE9iamVjdD4gZm9jdXNlZE5vZGUoKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCBSZWZQdHI8QVhJc29sYXRlZE9iamVjdD4gZm9jdXNlZE5vZGUoKTsKIAogICAgIFJlZlB0
cjxBWElzb2xhdGVkT2JqZWN0PiBvYmplY3RGb3JJRChjb25zdCBBWElEKSBjb25zdDsKICAgICBW
ZWN0b3I8UmVmUHRyPEFYQ29yZU9iamVjdD4+IG9iamVjdHNGb3JJRHMoY29uc3QgVmVjdG9yPEFY
SUQ+Jik7CkBAIC0zMTUsNiArMzE1LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGFwcGx5UGVuZGlu
Z0NoYW5nZXMoKTsKIAogICAgIEFYSUQgdHJlZUlEKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQor
ICAgIHZvaWQgc2V0UGFnZUFjdGl2aXR5U3RhdGUoT3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU+KTsK
KyAgICBPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZT4gcGFnZUFjdGl2aXR5U3RhdGUoKSBjb25zdDsK
KyAgICAvLyBVc2Ugb25seSBpZiB0aGUgc19zdG9yZUxvY2sgaXMgYWxyZWFkeSBoZWxkIGxpa2Ug
aW4gZmluZEFYVHJlZS4KKyAgICBXRUJDT1JFX0VYUE9SVCBPcHRpb25TZXQ8QWN0aXZpdHlTdGF0
ZT4gbG9ja2VkUGFnZUFjdGl2aXR5U3RhdGUoKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBBWElz
b2xhdGVkVHJlZShBWE9iamVjdENhY2hlJik7CkBAIC0zNDMsNiArMzQ3LDcgQEAgcHJpdmF0ZToK
IAogICAgIHVuc2lnbmVkIG1fbWF4VHJlZURlcHRoIHsgMCB9OwogICAgIFdlYWtQdHI8QVhPYmpl
Y3RDYWNoZT4gbV9heE9iamVjdENhY2hlOworICAgIE9wdGlvblNldDxBY3Rpdml0eVN0YXRlPiBt
X3BhZ2VBY3Rpdml0eVN0YXRlOwogICAgIFJlZlB0cjxBWEdlb21ldHJ5TWFuYWdlcj4gbV9nZW9t
ZXRyeU1hbmFnZXI7CiAgICAgYm9vbCBtX3VzZWRPbkFYVGhyZWFkIHsgdHJ1ZSB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmNwcAppbmRleCAwY2U1OWEzYjExYTcuLjdmYzlhYjIxOWU1OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwCkBAIC0yNjc5LDggKzI2NzksOSBAQCB2b2lkIFBhZ2U6OnNldEFjdGl2aXR5U3RhdGUo
T3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU+IGFjdGl2aXR5U3RhdGUpCiAgICAgICAgIHNldElzSW5X
aW5kb3dJbnRlcm5hbChhY3Rpdml0eVN0YXRlLmNvbnRhaW5zKEFjdGl2aXR5U3RhdGU6OklzSW5X
aW5kb3cpKTsKICAgICBpZiAoY2hhbmdlZCAmIEFjdGl2aXR5U3RhdGU6OklzVmlzdWFsbHlJZGxl
KQogICAgICAgICBzZXRJc1Zpc3VhbGx5SWRsZUludGVybmFsKGFjdGl2aXR5U3RhdGUuY29udGFp
bnMoQWN0aXZpdHlTdGF0ZTo6SXNWaXN1YWxseUlkbGUpKTsKKworICAgIGF1dG8qIGxvY2FsTWFp
bkZyYW1lID0gZHluYW1pY0Rvd25jYXN0PExvY2FsRnJhbWU+KG1fbWFpbkZyYW1lLmdldCgpKTsK
ICAgICBpZiAoY2hhbmdlZCAmIEFjdGl2aXR5U3RhdGU6OldpbmRvd0lzQWN0aXZlKSB7Ci0gICAg
ICAgIGF1dG8qIGxvY2FsTWFpbkZyYW1lID0gZHluYW1pY0Rvd25jYXN0PExvY2FsRnJhbWU+KG1f
bWFpbkZyYW1lLmdldCgpKTsKICAgICAgICAgaWYgKGF1dG8qIHZpZXcgPSBsb2NhbE1haW5GcmFt
ZSA/IGxvY2FsTWFpbkZyYW1lLT52aWV3KCkgOiBudWxscHRyKQogICAgICAgICAgICAgdmlldy0+
dXBkYXRlVGlsZWRCYWNraW5nQWRhcHRpdmVTaXppbmcoKTsKICAgICB9CkBAIC0yNjk2LDYgKzI2
OTcsMTEgQEAgdm9pZCBQYWdlOjpzZXRBY3Rpdml0eVN0YXRlKE9wdGlvblNldDxBY3Rpdml0eVN0
YXRlPiBhY3Rpdml0eVN0YXRlKQogICAgICAgICBzdG9wS2V5Ym9hcmRTY3JvbGxBbmltYXRpb24o
KTsKICAgICB9CiAKKyAgICBpZiAoYXV0byogZG9jdW1lbnQgPSBsb2NhbE1haW5GcmFtZSA/IGxv
Y2FsTWFpbkZyYW1lLT5kb2N1bWVudCgpIDogbnVsbHB0cikgeworICAgICAgICBpZiAoYXV0byog
Y2FjaGUgPSBkb2N1bWVudC0+ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBj
YWNoZS0+b25QYWdlQWN0aXZpdHlTdGF0ZUNoYW5nZShtX2FjdGl2aXR5U3RhdGUpOworICAgIH0K
KwogICAgIGlmIChtX3BlcmZvcm1hbmNlTW9uaXRvcikKICAgICAgICAgbV9wZXJmb3JtYW5jZU1v
bml0b3ItPmFjdGl2aXR5U3RhdGVDaGFuZ2VkKG9sZEFjdGl2aXR5U3RhdGUsIGFjdGl2aXR5U3Rh
dGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApp
bmRleCA3ODA1ODYwMmYzYmYuLmZjNzZlNDIyNjYxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTU3MTksMTAgKzU3MTksNyBAQCBib29sIFdl
YlBhZ2U6OndpbmRvd0lzRm9jdXNlZCgpIGNvbnN0CiAKIGJvb2wgV2ViUGFnZTo6d2luZG93QW5k
V2ViUGFnZUFyZUZvY3VzZWQoKSBjb25zdAogewotICAgIGlmICghaXNWaXNpYmxlKCkpCi0gICAg
ICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigp
LmlzRm9jdXNlZCgpICYmIG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuaXNBY3RpdmUoKTsKKyAg
ICByZXR1cm4gaXNWaXNpYmxlKCkgJiYgbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5pc0ZvY3Vz
ZWQoKSAmJiBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLmlzQWN0aXZlKCk7CiB9CiAKIHZvaWQg
V2ViUGFnZTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJ
UEM6OkRlY29kZXImIGRlY29kZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1dlYlByb2Nlc3NDb2NvYS5tbQppbmRleCA2NDY3NjE5MmQ0YmEuLmIxMWQyNWFhMGViZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29h
Lm1tCkBAIC01OCw2ICs1OCwxMSBAQAogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvQ29uZmlnRmls
ZS5oPgogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvT3B0aW9ucy5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9BVkFzc2V0TUlNRVR5cGVDYWNoZS5oPgorCisjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNP
TEFURURfVFJFRSkKKyNpbXBvcnQgPFdlYkNvcmUvQVhJc29sYXRlZE9iamVjdC5oPgorI2ltcG9y
dCA8V2ViQ29yZS9BWElzb2xhdGVkVHJlZS5oPgorI2VuZGlmCiAjaW1wb3J0IDxXZWJDb3JlL0FY
T2JqZWN0Q2FjaGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ1BVTW9uaXRvci5oPgogI2ltcG9ydCA8
V2ViQ29yZS9EZXByZWNhdGVkR2xvYmFsU2V0dGluZ3MuaD4KQEAgLTIwNCwxMiArMjA5LDM3IEBA
IHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1TZXRDYWNoZU1vZGVsKENhY2hlTW9kZWwpCiAKIGlk
IFdlYlByb2Nlc3M6OmFjY2Vzc2liaWxpdHlGb2N1c2VkVUlFbGVtZW50KCkKIHsKLSAgICByZXR1
cm4gQWNjZXNzaWJpbGl0eTo6cmV0cmlldmVBdXRvcmVsZWFzZWRWYWx1ZUZyb21NYWluVGhyZWFk
PGlkPihbXSAoKSAtPiBSZXRhaW5QdHI8aWQ+IHsKLSAgICAgICAgV2ViUGFnZSogcGFnZSA9IFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLmZvY3VzZWRXZWJQYWdlKCk7Ci0gICAgICAgIGlmICghcGFn
ZSB8fCAhcGFnZS0+YWNjZXNzaWJpbGl0eVJlbW90ZU9iamVjdCgpKQotICAgICAgICAgICAgcmV0
dXJuIG5pbDsKLSAgICAgICAgcmV0dXJuIFtwYWdlLT5hY2Nlc3NpYmlsaXR5UmVtb3RlT2JqZWN0
KCkgYWNjZXNzaWJpbGl0eUZvY3VzZWRVSUVsZW1lbnRdOwotICAgIH0pOworI2lmIEVOQUJMRShB
Q0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpCisgICAgaWYgKCFpc01haW5SdW5Mb29wKCkpIHsK
KyAgICAgICAgLy8gQXZvaWQgaGl0dGluZyB0aGUgbWFpbiB0aHJlYWQgYnkgZ2V0dGluZyB0aGUg
Zm9jdXNlZCBvYmplY3QgZnJvbSB0aGUgZm9jdXNlZCBpc29sYXRlZCB0cmVlLgorICAgICAgICBh
dXRvIHRyZWUgPSBmaW5kQVhUcmVlKFtdIChBWFRyZWVQdHIgdHJlZSkgLT4gYm9vbCB7CisgICAg
ICAgICAgICBPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZT4gc3RhdGU7CisgICAgICAgICAgICBzd2l0
Y2hPbih0cmVlLAorICAgICAgICAgICAgICAgIFsmc3RhdGVdIChSZWZQdHI8QVhJc29sYXRlZFRy
ZWU+JiB0eXBlZFRyZWUpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVkVHJlZSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gdHlwZWRUcmVlLT5sb2NrZWRQYWdlQWN0aXZp
dHlTdGF0ZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAsIFtdIChhdXRv
JikgeyB9CisgICAgICAgICAgICApOworICAgICAgICAgICAgcmV0dXJuIHN0YXRlLmNvbnRhaW5z
QWxsKHsgQWN0aXZpdHlTdGF0ZTo6SXNWaXNpYmxlLCBBY3Rpdml0eVN0YXRlOjpJc0ZvY3VzZWQs
IEFjdGl2aXR5U3RhdGU6OldpbmRvd0lzQWN0aXZlIH0pOworICAgICAgICB9KTsKKworICAgICAg
ICBSZWZQdHIgb2JqZWN0ID0gc3dpdGNoT24odHJlZSwKKyAgICAgICAgICAgIFtdIChSZWZQdHI8
QVhJc29sYXRlZFRyZWU+JiB0eXBlZFRyZWUpIC0+IFJlZlB0cjxBWElzb2xhdGVkT2JqZWN0PiB7
CisgICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVkVHJlZSA/IHR5cGVkVHJlZS0+Zm9jdXNlZE5v
ZGUoKSA6IG51bGxwdHI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAsIFtdIChhdXRvJikg
LT4gUmVmUHRyPEFYSXNvbGF0ZWRPYmplY3Q+IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgKTsKKyAgICAgICAgcmV0dXJuIG9iamVjdCA/
IG9iamVjdC0+d3JhcHBlcigpIDogbmlsOworICAgIH0KKyNlbmRpZgorCisgICAgV2ViUGFnZSog
cGFnZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmZvY3VzZWRXZWJQYWdlKCk7CisgICAgaWYg
KCFwYWdlIHx8ICFwYWdlLT5hY2Nlc3NpYmlsaXR5UmVtb3RlT2JqZWN0KCkpCisgICAgICAgIHJl
dHVybiBuaWw7CisgICAgcmV0dXJuIFtwYWdlLT5hY2Nlc3NpYmlsaXR5UmVtb3RlT2JqZWN0KCkg
YWNjZXNzaWJpbGl0eUZvY3VzZWRVSUVsZW1lbnRdOwogfQogCiAjaWYgVVNFKEFQUEtJVCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>466606</attachid>
            <date>2023-06-06 14:09:11 -0700</date>
            <delta_ts>2023-06-06 15:02:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-256761-20230606170911.patch</filename>
            <type>text/plain</type>
            <size>15377</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">RnJvbSBlZGFhM2QzZjMxNzFiY2Q5MzM0ZGY0MDI0MTBjMDI2NjUzMWY4Y2RiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXMgR29uemFsZXogPGFuZHJlc2dfMjJAYXBwbGUuY29t
PgpEYXRlOiBTYXQsIDEzIE1heSAyMDIzIDEzOjI4OjU1IC0wNDAwClN1YmplY3Q6IFtQQVRDSF0g
QVg6IEF2b2lkIGhpdHRpbmcgdGhlIG1haW4gdGhyZWFkIGluCiBOU0FwcGxpY2F0aW9uQWNjZXNz
aWJpbGl0eUZvY3VzZWRVSUVsZW1lbnQgaW4gaXNvbGF0ZWQgdHJlZSBtb2RlLgogaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1Njc2MSA8cmRhcjovL3Byb2JsZW0vMTA5
MzA3MjAwPgoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpOU0FwcGxpY2F0aW9uQWNjZXNz
aWJpbGl0eUZvY3VzZWRVSUVsZW1lbnQgaXMgZnJlcXVlbnRseSBjYWxsZWQgYnkgQVQgdG8gdHJh
Y2sgdGhlIGZvY3VzIG9iamVjdC4gQ3VycmVudGx5IGl0IGhhcyB0byBoaXQgdGhlIG1haW4gdGhy
ZWFkIGV2ZXJ5IHRpbWUuClRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBieSBhZGRpbmcgYSBtZWNoYW5p
c20gdG8ga2VlcCB0cmFjayBvZiB0aGUgZm9jdXNlZCBBWCB0cmVlIGJhc2VkIG9uIHRoZSBhc3Nv
Y2lhdGVkIFBhZ2UgQWN0aXZpdHlTdGF0ZS4gVGhlbiwgdGhlIGZvY3VzZWQgb2JqZWN0IGlzIHJl
dHJpZXZlZCBmcm9tIHRoZSBmb2N1c2VkIHRyZWUgb2J0YWluZWQgdmlhIEFYVHJlZVN0b3JlOjpm
aW5kVHJlZS4KSW4gYWRkaXRpb24sIHRoaXMgcGF0Y2ggYWxzbyBjYWNoZXMgdGhlIEhlbHBUZXh0
IGZvciBTY3JvbGxWaWV3cyBhbmQgV2ViQXJlYXMgZWFnZXJseSBzaW5jZSB0aGF0J3MgYW5vdGhl
ciBwcm9wZXJ0eSByZXF1ZXN0ZWQgYnkgQVQgd2hpbGUgdGhlIGlzb2xhdGVkIHRyZWUgaXMgYmVp
bmcgYnVpbHQuCi0tLQogLi4uL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNw
cCAgIHwgMjEgKysrKysrKy0KIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RD
YWNoZS5oICB8ICA2ICsrKwogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWFRyZWVTdG9y
ZS5oICAgIHwgIDUgKysKIC4uLi9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAgICAg
ICAgICB8ICAxICsKIC4uLi9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwICAgICAgICAg
ICB8IDQ4ICsrKysrKysrKysrKysrKysrKysKIC4uLi9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRy
ZWUuaCAgICAgICAgICAgICB8ICA3ICsrLQogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCAg
ICAgICAgICAgICAgICAgIHwgIDggKysrLQogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAgIHwgIDUgKy0KIC4uLi9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3ND
b2NvYS5tbSAgICAgICB8IDQyICsrKysrKysrKysrKystLS0KIDkgZmlsZXMgY2hhbmdlZCwgMTI5
IGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4IGIzYWMwNjQxZDM4NS4uNWQ3NmVhYWNm
OTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2Fj
aGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5j
cHAKQEAgLTI1Niw2ICsyNTYsOCBAQCBBWE9iamVjdENhY2hlOjpBWE9iamVjdENhY2hlKERvY3Vt
ZW50JiBkb2N1bWVudCkKICAgICAgICAgbG9hZGluZ1Byb2dyZXNzID0gMTsKICAgICBtX2xvYWRp
bmdQcm9ncmVzcyA9IGxvYWRpbmdQcm9ncmVzczsKIAorICAgIGlmIChtX3BhZ2VJRCkKKyAgICAg
ICAgbV9wYWdlQWN0aXZpdHlTdGF0ZSA9IG1fZG9jdW1lbnQucGFnZSgpLT5hY3Rpdml0eVN0YXRl
KCk7CiAgICAgQVhUcmVlU3RvcmU6OmFkZChtX2lkLCBXZWFrUHRyIHsgdGhpcyB9KTsKIH0KIApA
QCAtMjcxLDggKzI3MywxMSBAQCBBWE9iamVjdENhY2hlOjp+QVhPYmplY3RDYWNoZSgpCiAgICAg
ICAgIG9iamVjdC0+ZGV0YWNoKEFjY2Vzc2liaWxpdHlEZXRhY2htZW50VHlwZTo6Q2FjaGVEZXN0
cm95ZWQpOwogCiAjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkKLSAgICBp
ZiAobV9wYWdlSUQpCisgICAgaWYgKG1fcGFnZUlEKSB7CisgICAgICAgIGlmIChhdXRvIHRyZWUg
PSBBWElzb2xhdGVkVHJlZTo6dHJlZUZvclBhZ2VJRCgqbV9wYWdlSUQpKQorICAgICAgICAgICAg
dHJlZS0+c2V0UGFnZUFjdGl2aXR5U3RhdGUoeyB9KTsKICAgICAgICAgQVhJc29sYXRlZFRyZWU6
OnJlbW92ZVRyZWVGb3JQYWdlSUQoKm1fcGFnZUlEKTsKKyAgICB9CiAjZW5kaWYKIAogICAgIEFY
VHJlZVN0b3JlOjpyZW1vdmUobV9pZCk7CkBAIC0xNDQ3LDYgKzE0NTIsMTcgQEAgdm9pZCBBWE9i
amVjdENhY2hlOjpoYW5kbGVSb3dDb3VudENoYW5nZWQoQWNjZXNzaWJpbGl0eU9iamVjdCogYXhP
YmplY3QsIERvY3VtZW4KICAgICBwb3N0Tm90aWZpY2F0aW9uKGF4T2JqZWN0LCBkb2N1bWVudCwg
QVhSb3dDb3VudENoYW5nZWQpOwogfQogCit2b2lkIEFYT2JqZWN0Q2FjaGU6Om9uUGFnZUFjdGl2
aXR5U3RhdGVDaGFuZ2UoT3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU+IG5ld1N0YXRlKQoreworICAg
IEFTU0VSVChtX3BhZ2VJRCk7CisKKyAgICBtX3BhZ2VBY3Rpdml0eVN0YXRlID0gbmV3U3RhdGU7
CisjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkKKyAgICBpZiAoYXV0byB0
cmVlID0gQVhJc29sYXRlZFRyZWU6OnRyZWVGb3JQYWdlSUQobV9wYWdlSUQpKQorICAgICAgICB0
cmVlLT5zZXRQYWdlQWN0aXZpdHlTdGF0ZShuZXdTdGF0ZSk7CisjZW5kaWYKK30KKwogdm9pZCBB
WE9iamVjdENhY2hlOjpvbkZvY3VzQ2hhbmdlKE5vZGUqIG9sZE5vZGUsIE5vZGUqIG5ld05vZGUp
CiB7CiAgICAgaWYgKG5vZGVBbmRSZW5kZXJlckFyZVZhbGlkKG5ld05vZGUpICYmIHJlbmRlcmVy
TmVlZHNEZWZlcnJlZFVwZGF0ZSgqbmV3Tm9kZS0+cmVuZGVyZXIoKSkpIHsKQEAgLTE1MDYsOSAr
MTUyMiwxMCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZUZvY3VzZWRVSUVsZW1lbnRDaGFu
Z2VkKE5vZGUqIG9sZE5vZGUsIE5vZGUqIG5ld05vZGUsCiAgICAgaWYgKHVwZGF0ZU1vZGFsID09
IFVwZGF0ZU1vZGFsOjpZZXMpCiAgICAgICAgIHVwZGF0ZUN1cnJlbnRNb2RhbE5vZGUoKTsKICAg
ICBoYW5kbGVNZW51SXRlbVNlbGVjdGVkKG5ld05vZGUpOworCiAgICAgcGxhdGZvcm1IYW5kbGVG
b2N1c2VkVUlFbGVtZW50Q2hhbmdlZChvbGROb2RlLCBuZXdOb2RlKTsKIH0KLSAgICAKKwogdm9p
ZCBBWE9iamVjdENhY2hlOjpzZWxlY3RlZENoaWxkcmVuQ2hhbmdlZChOb2RlKiBub2RlKQogewog
ICAgIHBvc3ROb3RpZmljYXRpb24obm9kZSwgQVhTZWxlY3RlZENoaWxkcmVuQ2hhbmdlZCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCmluZGV4IDliMmNh
ZjllMDg3ZC4uNDYyZWNkMTYxMjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FYT2JqZWN0Q2FjaGUuaApAQCAtMTc4LDYgKzE3OCwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQg
YXR0YWNoV3JhcHBlcihBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7CiAKIHB1YmxpYzoKKyAgICB2b2lk
IG9uUGFnZUFjdGl2aXR5U3RhdGVDaGFuZ2UoT3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU+KTsKKyAg
ICB2b2lkIHNldFBhZ2VBY3Rpdml0eVN0YXRlKE9wdGlvblNldDxBY3Rpdml0eVN0YXRlPiBzdGF0
ZSkgeyBtX3BhZ2VBY3Rpdml0eVN0YXRlID0gc3RhdGU7IH0KKyAgICBPcHRpb25TZXQ8QWN0aXZp
dHlTdGF0ZT4gcGFnZUFjdGl2aXR5U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VBY3Rpdml0
eVN0YXRlOyB9CisKICAgICB2b2lkIGNoaWxkcmVuQ2hhbmdlZChOb2RlKiwgTm9kZSogbmV3Q2hp
bGQgPSBudWxscHRyKTsKICAgICB2b2lkIGNoaWxkcmVuQ2hhbmdlZChSZW5kZXJPYmplY3QqLCBS
ZW5kZXJPYmplY3QqIG5ld0NoaWxkID0gbnVsbHB0cik7CiAgICAgdm9pZCBjaGlsZHJlbkNoYW5n
ZWQoQWNjZXNzaWJpbGl0eU9iamVjdCopOwpAQCAtNTg0LDYgKzU4OCw3IEBAIHByaXZhdGU6CiAK
ICAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKICAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFBhZ2VJ
ZGVudGlmaWVyPiBtX3BhZ2VJRDsgLy8gY29uc3RhbnQgZm9yIG9iamVjdCdzIGxpZmV0aW1lLgor
ICAgIE9wdGlvblNldDxBY3Rpdml0eVN0YXRlPiBtX3BhZ2VBY3Rpdml0eVN0YXRlOwogICAgIEhh
c2hNYXA8QVhJRCwgUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+PiBtX29iamVjdHM7CiAgICAg
SGFzaE1hcDxSZW5kZXJPYmplY3QqLCBBWElEPiBtX3JlbmRlck9iamVjdE1hcHBpbmc7CiAgICAg
SGFzaE1hcDxXaWRnZXQqLCBBWElEPiBtX3dpZGdldE9iamVjdE1hcHBpbmc7CkBAIC03MTEsNiAr
NzE2LDcgQEAgaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6b25UaXRsZUNoYW5nZShEb2N1bWVu
dCYpIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6b25WYWxpZGl0eUNoYW5nZShFbGVt
ZW50JikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjp2YWx1ZUNoYW5nZWQoRWxlbWVu
dCopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6b25Gb2N1c0NoYW5nZShOb2RlKiwg
Tm9kZSopIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6b25QYWdlQWN0aXZpdHlTdGF0
ZUNoYW5nZShPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZT4pIHsgfQogaW5saW5lIHZvaWQgQVhPYmpl
Y3RDYWNoZTo6b25TY3JvbGxiYXJGcmFtZVJlY3RDaGFuZ2UoY29uc3QgU2Nyb2xsYmFyJikgeyB9
CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpkZWZlclJlY29tcHV0ZUlzSWdub3JlZElmTmVl
ZGVkKEVsZW1lbnQqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmRlZmVyUmVjb21w
dXRlSXNJZ25vcmVkKEVsZW1lbnQqKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhUcmVlU3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhUcmVlU3RvcmUuaAppbmRleCBiZjA4OThlMGE3YWIuLjAwNmYwYmMzMDk4NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWFRyZWVTdG9yZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhUcmVlU3RvcmUuaApAQCAtMjUsNiArMjUsNyBAQAog
I3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgi
CisjaW5jbHVkZSAiQWN0aXZpdHlTdGF0ZS5oIgogI2luY2x1ZGUgPHZhcmlhbnQ+CiAjaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgpAQCAtNTIsMTAgKzUzLDE0
IEBAIHVzaW5nIEFYVHJlZVdlYWtQdHIgPSBzdGQ6OnZhcmlhbnQ8V2Vha1B0cjxBWE9iamVjdENh
Y2hlPgogI2VuZGlmCiA+OwogCitBWFRyZWVQdHIgYXhUcmVlRm9ySUQoQVhJRCk7CitXRUJDT1JF
X0VYUE9SVCBBWFRyZWVQdHIgZmluZEFYVHJlZShGdW5jdGlvbjxib29sKEFYVHJlZVB0cik+JiYp
OworCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogY2xhc3MgQVhUcmVlU3RvcmUgewogICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKEFYVHJlZVN0b3JlKTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKKyAgICBmcmllbmQgV0VCQ09SRV9FWFBPUlQgQVhUcmVlUHRyIGZpbmRBWFRyZWUoRnVuY3Rp
b248Ym9vbChBWFRyZWVQdHIpPiYmKTsKIHB1YmxpYzoKICAgICBBWElEIHRyZWVJRCgpIGNvbnN0
IHsgcmV0dXJuIG1faWQ7IH0KICAgICBzdGF0aWMgV2Vha1B0cjxBWE9iamVjdENhY2hlPiBheE9i
amVjdENhY2hlRm9ySUQoQVhJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCmluZGV4IDYw
NmI3YWYzMGVlMi4uNDY1ZDRlYmExMTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcApA
QCAtMzEwLDYgKzMxMCw3IEBAIHZvaWQgQVhJc29sYXRlZE9iamVjdDo6aW5pdGlhbGl6ZVByb3Bl
cnRpZXMoY29uc3QgUmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+JiBheE9iCiAgICAgICAgIC8vIEZv
ciB0aGUgU2Nyb2xsVmlldyBhbmQgV2ViQXJlYSBvYmplY3RzLCBjYWNoZSB0aGUgVGl0bGVBdHRy
aWJ1dGVWYWx1ZSBhbmQgRGVzY3JpcHRpb25BdHRyaWJ1dGVWYWx1ZSBlYWdlcmx5IHRvIGF2b2lk
IGhpdHRpbmcgdGhlIG1haW4gdGhyZWFkIGluIGdldE9yUmV0cmlldmVQcm9wZXJ0eVZhbHVlIGR1
cmluZyB0aGUgY29uc3RydWN0aW9uIG9mIHRoZSBpc29sYXRlZCB0cmVlLgogICAgICAgICBzZXRQ
cm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6VGl0bGVBdHRyaWJ1dGVWYWx1ZSwgb2JqZWN0LnRpdGxl
QXR0cmlidXRlVmFsdWUoKS5pc29sYXRlZENvcHkoKSk7CiAgICAgICAgIHNldFByb3BlcnR5KEFY
UHJvcGVydHlOYW1lOjpEZXNjcmlwdGlvbkF0dHJpYnV0ZVZhbHVlLCBvYmplY3QuZGVzY3JpcHRp
b25BdHRyaWJ1dGVWYWx1ZSgpLmlzb2xhdGVkQ29weSgpKTsKKyAgICAgICAgc2V0UHJvcGVydHko
QVhQcm9wZXJ0eU5hbWU6OkhlbHBUZXh0LCBvYmplY3QuaGVscFRleHRBdHRyaWJ1dGVWYWx1ZSgp
Lmlzb2xhdGVkQ29weSgpKTsKICAgICB9CiAKICAgICBpZiAoaXNSb290ID09IElzUm9vdDo6WWVz
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJl
ZS9BWElzb2xhdGVkVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xh
dGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAKaW5kZXggYTViZGYxNWY2NDQxLi5kZTJmNWIxN2Qz
Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVl
L0FYSXNvbGF0ZWRUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lz
b2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAKQEAgLTQ2LDYgKzQ2LDcgQEAgSGFzaE1hcDxQ
YWdlSWRlbnRpZmllciwgUmVmPEFYSXNvbGF0ZWRUcmVlPj4mIEFYSXNvbGF0ZWRUcmVlOjp0cmVl
UGFnZUNhY2hlKCkKIEFYSXNvbGF0ZWRUcmVlOjpBWElzb2xhdGVkVHJlZShBWE9iamVjdENhY2hl
JiBheE9iamVjdENhY2hlKQogICAgIDogQVhUcmVlU3RvcmUoYXhPYmplY3RDYWNoZS50cmVlSUQo
KSkKICAgICAsIG1fYXhPYmplY3RDYWNoZSgmYXhPYmplY3RDYWNoZSkKKyAgICAsIG1fcGFnZUFj
dGl2aXR5U3RhdGUoYXhPYmplY3RDYWNoZS5wYWdlQWN0aXZpdHlTdGF0ZSgpKQogICAgICwgbV9n
ZW9tZXRyeU1hbmFnZXIoYXhPYmplY3RDYWNoZS5tX2dlb21ldHJ5TWFuYWdlci5wdHIoKSkKICAg
ICAsIG1fdXNlZE9uQVhUaHJlYWQoYXhPYmplY3RDYWNoZS51c2VkT25BWFRocmVhZCgpKQogewpA
QCAtNzEyLDYgKzcxMywyNiBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVDaGlsZHJlbihB
Y2Nlc3NpYmlsaXR5T2JqZWN0JiBheE9iamVjdCwgUmVzb2x2ZU5vZGVDaAogICAgIHVwZGF0ZU5v
ZGVBbmREZXBlbmRlbnRQcm9wZXJ0aWVzKCpheEFuY2VzdG9yKTsKIH0KIAordm9pZCBBWElzb2xh
dGVkVHJlZTo6c2V0UGFnZUFjdGl2aXR5U3RhdGUoT3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU+IHN0
YXRlKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisKKyAgICBMb2NrZXIgbG9ja2Vy
IHsgc19zdG9yZUxvY2sgfTsKKyAgICBtX3BhZ2VBY3Rpdml0eVN0YXRlID0gc3RhdGU7Cit9CisK
K09wdGlvblNldDxBY3Rpdml0eVN0YXRlPiBBWElzb2xhdGVkVHJlZTo6cGFnZUFjdGl2aXR5U3Rh
dGUoKSBjb25zdAoreworICAgIExvY2tlciBsb2NrZXIgeyBzX3N0b3JlTG9jayB9OworICAgIHJl
dHVybiBtX3BhZ2VBY3Rpdml0eVN0YXRlOworfQorCitPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZT4g
QVhJc29sYXRlZFRyZWU6OmxvY2tlZFBhZ2VBY3Rpdml0eVN0YXRlKCkgY29uc3QKK3sKKyAgICBB
U1NFUlQoc19zdG9yZUxvY2suaXNMb2NrZWQoKSk7CisgICAgcmV0dXJuIG1fcGFnZUFjdGl2aXR5
U3RhdGU7Cit9CisKIFJlZlB0cjxBWElzb2xhdGVkT2JqZWN0PiBBWElzb2xhdGVkVHJlZTo6Zm9j
dXNlZE5vZGUoKQogewogICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpmb2N1c2VkTm9kZSJf
cyk7CkBAIC05NTksNiArOTgwLDMzIEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OmFwcGx5UGVuZGlu
Z0NoYW5nZXMoKQogICAgIG1fcGVuZGluZ1Byb3BlcnR5Q2hhbmdlcy5jbGVhcigpOwogfQogCitB
WFRyZWVQdHIgZmluZEFYVHJlZShGdW5jdGlvbjxib29sKEFYVHJlZVB0cik+JiYgbWF0Y2gpCit7
CisgICAgaWYgKGlzTWFpblRocmVhZCgpKSB7CisgICAgICAgIGZvciAoV2Vha1B0ciB0cmVlIDog
QVhUcmVlU3RvcmU8QVhPYmplY3RDYWNoZT46OmxpdmVUcmVlTWFwKCkudmFsdWVzKCkpIHsKKyAg
ICAgICAgICAgIGlmICghdHJlZSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAg
ICAgICAgaWYgKG1hdGNoKHRyZWUpKQorICAgICAgICAgICAgICAgIHJldHVybiB0cmVlOworICAg
ICAgICB9CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworI2lmIEVOQUJMRShBQ0NF
U1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpCisgICAgTG9ja2VyIGxvY2tlciB7IEFYVHJlZVN0b3Jl
PEFYSXNvbGF0ZWRUcmVlPjo6c19zdG9yZUxvY2sgfTsKKyAgICBmb3IgKGF1dG8gaXQgPSBBWFRy
ZWVTdG9yZTxBWElzb2xhdGVkVHJlZT46Omlzb2xhdGVkVHJlZU1hcCgpLmJlZ2luKCk7IGl0ICE9
IEFYVHJlZVN0b3JlPEFYSXNvbGF0ZWRUcmVlPjo6aXNvbGF0ZWRUcmVlTWFwKCkuZW5kKCk7ICsr
aXQpIHsKKyAgICAgICAgUmVmUHRyIHRyZWUgPSBpdC0+dmFsdWUuZ2V0KCk7CisgICAgICAgIGlm
ICghdHJlZSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGlmIChtYXRjaCh0cmVl
KSkKKyAgICAgICAgICAgIHJldHVybiB0cmVlOworICAgIH0KKyAgICByZXR1cm4gbnVsbHB0cjsK
KyNlbmRpZgorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUo
QUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgKaW5kZXggMjNl
MDY5NThjNGMxLi44N2YxMTdjM2E3NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaApAQCAtMjY3LDcg
KzI2Nyw3IEBAIHB1YmxpYzoKICAgICBjb25zdGV4cHIgQVhHZW9tZXRyeU1hbmFnZXIqIGdlb21l
dHJ5TWFuYWdlcigpIGNvbnN0IHsgcmV0dXJuIG1fZ2VvbWV0cnlNYW5hZ2VyLmdldCgpOyB9CiAK
ICAgICBSZWZQdHI8QVhJc29sYXRlZE9iamVjdD4gcm9vdE5vZGUoKTsKLSAgICBSZWZQdHI8QVhJ
c29sYXRlZE9iamVjdD4gZm9jdXNlZE5vZGUoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBSZWZQdHI8
QVhJc29sYXRlZE9iamVjdD4gZm9jdXNlZE5vZGUoKTsKIAogICAgIFJlZlB0cjxBWElzb2xhdGVk
T2JqZWN0PiBvYmplY3RGb3JJRChjb25zdCBBWElEKSBjb25zdDsKICAgICBWZWN0b3I8UmVmUHRy
PEFYQ29yZU9iamVjdD4+IG9iamVjdHNGb3JJRHMoY29uc3QgVmVjdG9yPEFYSUQ+Jik7CkBAIC0z
MTUsNiArMzE1LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGFwcGx5UGVuZGluZ0NoYW5nZXMoKTsK
IAogICAgIEFYSUQgdHJlZUlEKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQorICAgIHZvaWQgc2V0
UGFnZUFjdGl2aXR5U3RhdGUoT3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU+KTsKKyAgICBPcHRpb25T
ZXQ8QWN0aXZpdHlTdGF0ZT4gcGFnZUFjdGl2aXR5U3RhdGUoKSBjb25zdDsKKyAgICAvLyBVc2Ug
b25seSBpZiB0aGUgc19zdG9yZUxvY2sgaXMgYWxyZWFkeSBoZWxkIGxpa2UgaW4gZmluZEFYVHJl
ZS4KKyAgICBXRUJDT1JFX0VYUE9SVCBPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZT4gbG9ja2VkUGFn
ZUFjdGl2aXR5U3RhdGUoKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBBWElzb2xhdGVkVHJlZShB
WE9iamVjdENhY2hlJik7CkBAIC0zNDMsNiArMzQ3LDcgQEAgcHJpdmF0ZToKIAogICAgIHVuc2ln
bmVkIG1fbWF4VHJlZURlcHRoIHsgMCB9OwogICAgIFdlYWtQdHI8QVhPYmplY3RDYWNoZT4gbV9h
eE9iamVjdENhY2hlOworICAgIE9wdGlvblNldDxBY3Rpdml0eVN0YXRlPiBtX3BhZ2VBY3Rpdml0
eVN0YXRlOwogICAgIFJlZlB0cjxBWEdlb21ldHJ5TWFuYWdlcj4gbV9nZW9tZXRyeU1hbmFnZXI7
CiAgICAgYm9vbCBtX3VzZWRPbkFYVGhyZWFkIHsgdHJ1ZSB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApp
bmRleCAwY2U1OWEzYjExYTcuLjI2YmIyOWNhNjM5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0y
Njc5LDggKzI2NzksOSBAQCB2b2lkIFBhZ2U6OnNldEFjdGl2aXR5U3RhdGUoT3B0aW9uU2V0PEFj
dGl2aXR5U3RhdGU+IGFjdGl2aXR5U3RhdGUpCiAgICAgICAgIHNldElzSW5XaW5kb3dJbnRlcm5h
bChhY3Rpdml0eVN0YXRlLmNvbnRhaW5zKEFjdGl2aXR5U3RhdGU6OklzSW5XaW5kb3cpKTsKICAg
ICBpZiAoY2hhbmdlZCAmIEFjdGl2aXR5U3RhdGU6OklzVmlzdWFsbHlJZGxlKQogICAgICAgICBz
ZXRJc1Zpc3VhbGx5SWRsZUludGVybmFsKGFjdGl2aXR5U3RhdGUuY29udGFpbnMoQWN0aXZpdHlT
dGF0ZTo6SXNWaXN1YWxseUlkbGUpKTsKKworICAgIFdlYWtQdHIgbG9jYWxNYWluRnJhbWUgPSBk
eW5hbWljRG93bmNhc3Q8TG9jYWxGcmFtZT4obV9tYWluRnJhbWUuZ2V0KCkpOwogICAgIGlmIChj
aGFuZ2VkICYgQWN0aXZpdHlTdGF0ZTo6V2luZG93SXNBY3RpdmUpIHsKLSAgICAgICAgYXV0byog
bG9jYWxNYWluRnJhbWUgPSBkeW5hbWljRG93bmNhc3Q8TG9jYWxGcmFtZT4obV9tYWluRnJhbWUu
Z2V0KCkpOwogICAgICAgICBpZiAoYXV0byogdmlldyA9IGxvY2FsTWFpbkZyYW1lID8gbG9jYWxN
YWluRnJhbWUtPnZpZXcoKSA6IG51bGxwdHIpCiAgICAgICAgICAgICB2aWV3LT51cGRhdGVUaWxl
ZEJhY2tpbmdBZGFwdGl2ZVNpemluZygpOwogICAgIH0KQEAgLTI2OTYsNiArMjY5NywxMSBAQCB2
b2lkIFBhZ2U6OnNldEFjdGl2aXR5U3RhdGUoT3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU+IGFjdGl2
aXR5U3RhdGUpCiAgICAgICAgIHN0b3BLZXlib2FyZFNjcm9sbEFuaW1hdGlvbigpOwogICAgIH0K
IAorICAgIGlmIChhdXRvKiBkb2N1bWVudCA9IGxvY2FsTWFpbkZyYW1lID8gbG9jYWxNYWluRnJh
bWUtPmRvY3VtZW50KCkgOiBudWxscHRyKSB7CisgICAgICAgIGlmIChhdXRvKiBjYWNoZSA9IGRv
Y3VtZW50LT5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAgIGNhY2hlLT5vblBh
Z2VBY3Rpdml0eVN0YXRlQ2hhbmdlKG1fYWN0aXZpdHlTdGF0ZSk7CisgICAgfQorCiAgICAgaWYg
KG1fcGVyZm9ybWFuY2VNb25pdG9yKQogICAgICAgICBtX3BlcmZvcm1hbmNlTW9uaXRvci0+YWN0
aXZpdHlTdGF0ZUNoYW5nZWQob2xkQWN0aXZpdHlTdGF0ZSwgYWN0aXZpdHlTdGF0ZSk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDc4MDU4
NjAyZjNiZi4uZmM3NmU0MjI2NjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcApAQCAtNTcxOSwxMCArNTcxOSw3IEBAIGJvb2wgV2ViUGFnZTo6d2lu
ZG93SXNGb2N1c2VkKCkgY29uc3QKIAogYm9vbCBXZWJQYWdlOjp3aW5kb3dBbmRXZWJQYWdlQXJl
Rm9jdXNlZCgpIGNvbnN0CiB7Ci0gICAgaWYgKCFpc1Zpc2libGUoKSkKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotCi0gICAgcmV0dXJuIG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuaXNGb2N1c2Vk
KCkgJiYgbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5pc0FjdGl2ZSgpOworICAgIHJldHVybiBp
c1Zpc2libGUoKSAmJiBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLmlzRm9jdXNlZCgpICYmIG1f
cGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuaXNBY3RpdmUoKTsKIH0KIAogdm9pZCBXZWJQYWdlOjpk
aWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2Rl
ciYgZGVjb2RlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9X
ZWJQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJv
Y2Vzc0NvY29hLm1tCmluZGV4IDY0Njc2MTkyZDRiYS4uYjExZDI1YWEwZWJlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KQEAgLTU4
LDYgKzU4LDExIEBACiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9Db25maWdGaWxlLmg+CiAjaW1w
b3J0IDxKYXZhU2NyaXB0Q29yZS9PcHRpb25zLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0FWQXNzZXRN
SU1FVHlwZUNhY2hlLmg+CisKKyNpZiBFTkFCTEUoQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVF
KQorI2ltcG9ydCA8V2ViQ29yZS9BWElzb2xhdGVkT2JqZWN0Lmg+CisjaW1wb3J0IDxXZWJDb3Jl
L0FYSXNvbGF0ZWRUcmVlLmg+CisjZW5kaWYKICNpbXBvcnQgPFdlYkNvcmUvQVhPYmplY3RDYWNo
ZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9DUFVNb25pdG9yLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0Rl
cHJlY2F0ZWRHbG9iYWxTZXR0aW5ncy5oPgpAQCAtMjA0LDEyICsyMDksMzcgQEAgdm9pZCBXZWJQ
cm9jZXNzOjpwbGF0Zm9ybVNldENhY2hlTW9kZWwoQ2FjaGVNb2RlbCkKIAogaWQgV2ViUHJvY2Vz
czo6YWNjZXNzaWJpbGl0eUZvY3VzZWRVSUVsZW1lbnQoKQogewotICAgIHJldHVybiBBY2Nlc3Np
YmlsaXR5OjpyZXRyaWV2ZUF1dG9yZWxlYXNlZFZhbHVlRnJvbU1haW5UaHJlYWQ8aWQ+KFtdICgp
IC0+IFJldGFpblB0cjxpZD4gewotICAgICAgICBXZWJQYWdlKiBwYWdlID0gV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkuZm9jdXNlZFdlYlBhZ2UoKTsKLSAgICAgICAgaWYgKCFwYWdlIHx8ICFwYWdl
LT5hY2Nlc3NpYmlsaXR5UmVtb3RlT2JqZWN0KCkpCi0gICAgICAgICAgICByZXR1cm4gbmlsOwot
ICAgICAgICByZXR1cm4gW3BhZ2UtPmFjY2Vzc2liaWxpdHlSZW1vdGVPYmplY3QoKSBhY2Nlc3Np
YmlsaXR5Rm9jdXNlZFVJRWxlbWVudF07Ci0gICAgfSk7CisjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJ
VFlfSVNPTEFURURfVFJFRSkKKyAgICBpZiAoIWlzTWFpblJ1bkxvb3AoKSkgeworICAgICAgICAv
LyBBdm9pZCBoaXR0aW5nIHRoZSBtYWluIHRocmVhZCBieSBnZXR0aW5nIHRoZSBmb2N1c2VkIG9i
amVjdCBmcm9tIHRoZSBmb2N1c2VkIGlzb2xhdGVkIHRyZWUuCisgICAgICAgIGF1dG8gdHJlZSA9
IGZpbmRBWFRyZWUoW10gKEFYVHJlZVB0ciB0cmVlKSAtPiBib29sIHsKKyAgICAgICAgICAgIE9w
dGlvblNldDxBY3Rpdml0eVN0YXRlPiBzdGF0ZTsKKyAgICAgICAgICAgIHN3aXRjaE9uKHRyZWUs
CisgICAgICAgICAgICAgICAgWyZzdGF0ZV0gKFJlZlB0cjxBWElzb2xhdGVkVHJlZT4mIHR5cGVk
VHJlZSkgeworICAgICAgICAgICAgICAgICAgICBpZiAodHlwZWRUcmVlKQorICAgICAgICAgICAg
ICAgICAgICAgICAgc3RhdGUgPSB0eXBlZFRyZWUtPmxvY2tlZFBhZ2VBY3Rpdml0eVN0YXRlKCk7
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICwgW10gKGF1dG8mKSB7IH0KKyAg
ICAgICAgICAgICk7CisgICAgICAgICAgICByZXR1cm4gc3RhdGUuY29udGFpbnNBbGwoeyBBY3Rp
dml0eVN0YXRlOjpJc1Zpc2libGUsIEFjdGl2aXR5U3RhdGU6OklzRm9jdXNlZCwgQWN0aXZpdHlT
dGF0ZTo6V2luZG93SXNBY3RpdmUgfSk7CisgICAgICAgIH0pOworCisgICAgICAgIFJlZlB0ciBv
YmplY3QgPSBzd2l0Y2hPbih0cmVlLAorICAgICAgICAgICAgW10gKFJlZlB0cjxBWElzb2xhdGVk
VHJlZT4mIHR5cGVkVHJlZSkgLT4gUmVmUHRyPEFYSXNvbGF0ZWRPYmplY3Q+IHsKKyAgICAgICAg
ICAgICAgICByZXR1cm4gdHlwZWRUcmVlID8gdHlwZWRUcmVlLT5mb2N1c2VkTm9kZSgpIDogbnVs
bHB0cjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICwgW10gKGF1dG8mKSAtPiBSZWZQdHI8
QVhJc29sYXRlZE9iamVjdD4geworICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAg
ICAgICAgICAgfQorICAgICAgICApOworICAgICAgICByZXR1cm4gb2JqZWN0ID8gb2JqZWN0LT53
cmFwcGVyKCkgOiBuaWw7CisgICAgfQorI2VuZGlmCisKKyAgICBXZWJQYWdlKiBwYWdlID0gV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkuZm9jdXNlZFdlYlBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UgfHwg
IXBhZ2UtPmFjY2Vzc2liaWxpdHlSZW1vdGVPYmplY3QoKSkKKyAgICAgICAgcmV0dXJuIG5pbDsK
KyAgICByZXR1cm4gW3BhZ2UtPmFjY2Vzc2liaWxpdHlSZW1vdGVPYmplY3QoKSBhY2Nlc3NpYmls
aXR5Rm9jdXNlZFVJRWxlbWVudF07CiB9CiAKICNpZiBVU0UoQVBQS0lUKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>466607</attachid>
            <date>2023-06-06 15:02:49 -0700</date>
            <delta_ts>2023-06-07 11:38:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-256761-20230606180248.patch</filename>
            <type>text/plain</type>
            <size>15396</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">RnJvbSBlYWQzZTEyNDIzMjFjNDQxN2U0ZWE1MzJjNTdhY2MzMDE5ZWYxZjU5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXMgR29uemFsZXogPGFuZHJlc2dfMjJAYXBwbGUuY29t
PgpEYXRlOiBTYXQsIDEzIE1heSAyMDIzIDEzOjI4OjU1IC0wNDAwClN1YmplY3Q6IFtQQVRDSF0g
QVg6IEF2b2lkIGhpdHRpbmcgdGhlIG1haW4gdGhyZWFkIGluCiBOU0FwcGxpY2F0aW9uQWNjZXNz
aWJpbGl0eUZvY3VzZWRVSUVsZW1lbnQgaW4gaXNvbGF0ZWQgdHJlZSBtb2RlLgogaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1Njc2MSA8cmRhcjovL3Byb2JsZW0vMTA5
MzA3MjAwPgoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpOU0FwcGxpY2F0aW9uQWNjZXNz
aWJpbGl0eUZvY3VzZWRVSUVsZW1lbnQgaXMgZnJlcXVlbnRseSBjYWxsZWQgYnkgQVQgdG8gdHJh
Y2sgdGhlIGZvY3VzIG9iamVjdC4gQ3VycmVudGx5IGl0IGhhcyB0byBoaXQgdGhlIG1haW4gdGhy
ZWFkIGV2ZXJ5IHRpbWUuClRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBieSBhZGRpbmcgYSBtZWNoYW5p
c20gdG8ga2VlcCB0cmFjayBvZiB0aGUgZm9jdXNlZCBBWCB0cmVlIGJhc2VkIG9uIHRoZSBhc3Nv
Y2lhdGVkIFBhZ2UgQWN0aXZpdHlTdGF0ZS4gVGhlbiwgdGhlIGZvY3VzZWQgb2JqZWN0IGlzIHJl
dHJpZXZlZCBmcm9tIHRoZSBmb2N1c2VkIHRyZWUgb2J0YWluZWQgdmlhIEFYVHJlZVN0b3JlOjpm
aW5kVHJlZS4KSW4gYWRkaXRpb24sIHRoaXMgcGF0Y2ggYWxzbyBjYWNoZXMgdGhlIEhlbHBUZXh0
IGZvciBTY3JvbGxWaWV3cyBhbmQgV2ViQXJlYXMgZWFnZXJseSBzaW5jZSB0aGF0J3MgYW5vdGhl
ciBwcm9wZXJ0eSByZXF1ZXN0ZWQgYnkgQVQgd2hpbGUgdGhlIGlzb2xhdGVkIHRyZWUgaXMgYmVp
bmcgYnVpbHQuCi0tLQogLi4uL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNw
cCAgIHwgMjEgKysrKysrKy0KIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RD
YWNoZS5oICB8ICA2ICsrKwogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWFRyZWVTdG9y
ZS5oICAgIHwgIDUgKysKIC4uLi9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAgICAg
ICAgICB8ICAxICsKIC4uLi9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwICAgICAgICAg
ICB8IDQ4ICsrKysrKysrKysrKysrKysrKysKIC4uLi9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRy
ZWUuaCAgICAgICAgICAgICB8ICA3ICsrLQogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCAg
ICAgICAgICAgICAgICAgIHwgIDggKysrLQogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAgIHwgIDUgKy0KIC4uLi9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3ND
b2NvYS5tbSAgICAgICB8IDQyICsrKysrKysrKysrKystLS0KIDkgZmlsZXMgY2hhbmdlZCwgMTI5
IGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4IGFkNjYzODhhODM0NS4uNjZiMWQ4MjQx
YjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2Fj
aGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5j
cHAKQEAgLTI1Niw2ICsyNTYsOCBAQCBBWE9iamVjdENhY2hlOjpBWE9iamVjdENhY2hlKERvY3Vt
ZW50JiBkb2N1bWVudCkKICAgICAgICAgbG9hZGluZ1Byb2dyZXNzID0gMTsKICAgICBtX2xvYWRp
bmdQcm9ncmVzcyA9IGxvYWRpbmdQcm9ncmVzczsKIAorICAgIGlmIChtX3BhZ2VJRCkKKyAgICAg
ICAgbV9wYWdlQWN0aXZpdHlTdGF0ZSA9IG1fZG9jdW1lbnQucGFnZSgpLT5hY3Rpdml0eVN0YXRl
KCk7CiAgICAgQVhUcmVlU3RvcmU6OmFkZChtX2lkLCBXZWFrUHRyIHsgdGhpcyB9KTsKIH0KIApA
QCAtMjcxLDggKzI3MywxMSBAQCBBWE9iamVjdENhY2hlOjp+QVhPYmplY3RDYWNoZSgpCiAgICAg
ICAgIG9iamVjdC0+ZGV0YWNoKEFjY2Vzc2liaWxpdHlEZXRhY2htZW50VHlwZTo6Q2FjaGVEZXN0
cm95ZWQpOwogCiAjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkKLSAgICBp
ZiAobV9wYWdlSUQpCisgICAgaWYgKG1fcGFnZUlEKSB7CisgICAgICAgIGlmIChhdXRvIHRyZWUg
PSBBWElzb2xhdGVkVHJlZTo6dHJlZUZvclBhZ2VJRCgqbV9wYWdlSUQpKQorICAgICAgICAgICAg
dHJlZS0+c2V0UGFnZUFjdGl2aXR5U3RhdGUoeyB9KTsKICAgICAgICAgQVhJc29sYXRlZFRyZWU6
OnJlbW92ZVRyZWVGb3JQYWdlSUQoKm1fcGFnZUlEKTsKKyAgICB9CiAjZW5kaWYKIAogICAgIEFY
VHJlZVN0b3JlOjpyZW1vdmUobV9pZCk7CkBAIC0xNDQ3LDYgKzE0NTIsMTcgQEAgdm9pZCBBWE9i
amVjdENhY2hlOjpoYW5kbGVSb3dDb3VudENoYW5nZWQoQWNjZXNzaWJpbGl0eU9iamVjdCogYXhP
YmplY3QsIERvY3VtZW4KICAgICBwb3N0Tm90aWZpY2F0aW9uKGF4T2JqZWN0LCBkb2N1bWVudCwg
QVhSb3dDb3VudENoYW5nZWQpOwogfQogCit2b2lkIEFYT2JqZWN0Q2FjaGU6Om9uUGFnZUFjdGl2
aXR5U3RhdGVDaGFuZ2UoT3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU+IG5ld1N0YXRlKQoreworICAg
IEFTU0VSVChtX3BhZ2VJRCk7CisKKyAgICBtX3BhZ2VBY3Rpdml0eVN0YXRlID0gbmV3U3RhdGU7
CisjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkKKyAgICBpZiAoYXV0byB0
cmVlID0gQVhJc29sYXRlZFRyZWU6OnRyZWVGb3JQYWdlSUQobV9wYWdlSUQpKQorICAgICAgICB0
cmVlLT5zZXRQYWdlQWN0aXZpdHlTdGF0ZShuZXdTdGF0ZSk7CisjZW5kaWYKK30KKwogdm9pZCBB
WE9iamVjdENhY2hlOjpvbkZvY3VzQ2hhbmdlKE5vZGUqIG9sZE5vZGUsIE5vZGUqIG5ld05vZGUp
CiB7CiAgICAgaWYgKG5vZGVBbmRSZW5kZXJlckFyZVZhbGlkKG5ld05vZGUpICYmIHJlbmRlcmVy
TmVlZHNEZWZlcnJlZFVwZGF0ZSgqbmV3Tm9kZS0+cmVuZGVyZXIoKSkpIHsKQEAgLTE1MTEsOSAr
MTUyNywxMCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZUZvY3VzZWRVSUVsZW1lbnRDaGFu
Z2VkKE5vZGUqIG9sZE5vZGUsIE5vZGUqIG5ld05vZGUsCiAgICAgaWYgKHVwZGF0ZU1vZGFsID09
IFVwZGF0ZU1vZGFsOjpZZXMpCiAgICAgICAgIHVwZGF0ZUN1cnJlbnRNb2RhbE5vZGUoKTsKICAg
ICBoYW5kbGVNZW51SXRlbVNlbGVjdGVkKG5ld05vZGUpOworCiAgICAgcGxhdGZvcm1IYW5kbGVG
b2N1c2VkVUlFbGVtZW50Q2hhbmdlZChvbGROb2RlLCBuZXdOb2RlKTsKIH0KLSAgICAKKwogdm9p
ZCBBWE9iamVjdENhY2hlOjpzZWxlY3RlZENoaWxkcmVuQ2hhbmdlZChOb2RlKiBub2RlKQogewog
ICAgIHBvc3ROb3RpZmljYXRpb24obm9kZSwgQVhTZWxlY3RlZENoaWxkcmVuQ2hhbmdlZCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCmluZGV4IGZhYjAz
N2EyMTg2ZC4uZjg0NmEzM2M1Y2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FYT2JqZWN0Q2FjaGUuaApAQCAtMTc4LDYgKzE3OCwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQg
YXR0YWNoV3JhcHBlcihBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7CiAKIHB1YmxpYzoKKyAgICB2b2lk
IG9uUGFnZUFjdGl2aXR5U3RhdGVDaGFuZ2UoT3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU+KTsKKyAg
ICB2b2lkIHNldFBhZ2VBY3Rpdml0eVN0YXRlKE9wdGlvblNldDxBY3Rpdml0eVN0YXRlPiBzdGF0
ZSkgeyBtX3BhZ2VBY3Rpdml0eVN0YXRlID0gc3RhdGU7IH0KKyAgICBPcHRpb25TZXQ8QWN0aXZp
dHlTdGF0ZT4gcGFnZUFjdGl2aXR5U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VBY3Rpdml0
eVN0YXRlOyB9CisKICAgICB2b2lkIGNoaWxkcmVuQ2hhbmdlZChOb2RlKiwgTm9kZSogbmV3Q2hp
bGQgPSBudWxscHRyKTsKICAgICB2b2lkIGNoaWxkcmVuQ2hhbmdlZChSZW5kZXJPYmplY3QqLCBS
ZW5kZXJPYmplY3QqIG5ld0NoaWxkID0gbnVsbHB0cik7CiAgICAgdm9pZCBjaGlsZHJlbkNoYW5n
ZWQoQWNjZXNzaWJpbGl0eU9iamVjdCopOwpAQCAtNTg5LDYgKzU5Myw3IEBAIHByaXZhdGU6CiAK
ICAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKICAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFBhZ2VJ
ZGVudGlmaWVyPiBtX3BhZ2VJRDsgLy8gY29uc3RhbnQgZm9yIG9iamVjdCdzIGxpZmV0aW1lLgor
ICAgIE9wdGlvblNldDxBY3Rpdml0eVN0YXRlPiBtX3BhZ2VBY3Rpdml0eVN0YXRlOwogICAgIEhh
c2hNYXA8QVhJRCwgUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+PiBtX29iamVjdHM7CiAgICAg
SGFzaE1hcDxSZW5kZXJPYmplY3QqLCBBWElEPiBtX3JlbmRlck9iamVjdE1hcHBpbmc7CiAgICAg
SGFzaE1hcDxXaWRnZXQqLCBBWElEPiBtX3dpZGdldE9iamVjdE1hcHBpbmc7CkBAIC03MTYsNiAr
NzIxLDcgQEAgaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6b25UaXRsZUNoYW5nZShEb2N1bWVu
dCYpIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6b25WYWxpZGl0eUNoYW5nZShFbGVt
ZW50JikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjp2YWx1ZUNoYW5nZWQoRWxlbWVu
dCopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6b25Gb2N1c0NoYW5nZShOb2RlKiwg
Tm9kZSopIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6b25QYWdlQWN0aXZpdHlTdGF0
ZUNoYW5nZShPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZT4pIHsgfQogaW5saW5lIHZvaWQgQVhPYmpl
Y3RDYWNoZTo6b25Qb3BvdmVyVGFyZ2V0VG9nZ2xlKGNvbnN0IEhUTUxGb3JtQ29udHJvbEVsZW1l
bnQmKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om9uU2Nyb2xsYmFyRnJhbWVSZWN0
Q2hhbmdlKGNvbnN0IFNjcm9sbGJhciYpIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6
ZGVmZXJSZWNvbXB1dGVJc0lnbm9yZWRJZk5lZWRlZChFbGVtZW50KikgeyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYVHJlZVN0b3JlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYVHJlZVN0b3JlLmgKaW5kZXggYmYwODk4ZTBhN2FiLi4wMDZm
MGJjMzA5ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhUcmVl
U3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYVHJlZVN0b3JlLmgK
QEAgLTI1LDYgKzI1LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0
eU9iamVjdEludGVyZmFjZS5oIgorI2luY2x1ZGUgIkFjdGl2aXR5U3RhdGUuaCIKICNpbmNsdWRl
IDx2YXJpYW50PgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2su
aD4KQEAgLTUyLDEwICs1MywxNCBAQCB1c2luZyBBWFRyZWVXZWFrUHRyID0gc3RkOjp2YXJpYW50
PFdlYWtQdHI8QVhPYmplY3RDYWNoZT4KICNlbmRpZgogPjsKIAorQVhUcmVlUHRyIGF4VHJlZUZv
cklEKEFYSUQpOworV0VCQ09SRV9FWFBPUlQgQVhUcmVlUHRyIGZpbmRBWFRyZWUoRnVuY3Rpb248
Ym9vbChBWFRyZWVQdHIpPiYmKTsKKwogdGVtcGxhdGU8dHlwZW5hbWUgVD4KIGNsYXNzIEFYVHJl
ZVN0b3JlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBWFRyZWVTdG9yZSk7CiAgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CisgICAgZnJpZW5kIFdFQkNPUkVfRVhQT1JUIEFYVHJlZVB0
ciBmaW5kQVhUcmVlKEZ1bmN0aW9uPGJvb2woQVhUcmVlUHRyKT4mJik7CiBwdWJsaWM6CiAgICAg
QVhJRCB0cmVlSUQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9CiAgICAgc3RhdGljIFdlYWtQdHI8
QVhPYmplY3RDYWNoZT4gYXhPYmplY3RDYWNoZUZvcklEKEFYSUQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVk
T2JqZWN0LmNwcAppbmRleCA2MDZiN2FmMzBlZTIuLjQ2NWQ0ZWJhMTE1NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVj
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJ
c29sYXRlZE9iamVjdC5jcHAKQEAgLTMxMCw2ICszMTAsNyBAQCB2b2lkIEFYSXNvbGF0ZWRPYmpl
Y3Q6OmluaXRpYWxpemVQcm9wZXJ0aWVzKGNvbnN0IFJlZjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiYg
YXhPYgogICAgICAgICAvLyBGb3IgdGhlIFNjcm9sbFZpZXcgYW5kIFdlYkFyZWEgb2JqZWN0cywg
Y2FjaGUgdGhlIFRpdGxlQXR0cmlidXRlVmFsdWUgYW5kIERlc2NyaXB0aW9uQXR0cmlidXRlVmFs
dWUgZWFnZXJseSB0byBhdm9pZCBoaXR0aW5nIHRoZSBtYWluIHRocmVhZCBpbiBnZXRPclJldHJp
ZXZlUHJvcGVydHlWYWx1ZSBkdXJpbmcgdGhlIGNvbnN0cnVjdGlvbiBvZiB0aGUgaXNvbGF0ZWQg
dHJlZS4KICAgICAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlRpdGxlQXR0cmlidXRl
VmFsdWUsIG9iamVjdC50aXRsZUF0dHJpYnV0ZVZhbHVlKCkuaXNvbGF0ZWRDb3B5KCkpOwogICAg
ICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6RGVzY3JpcHRpb25BdHRyaWJ1dGVWYWx1
ZSwgb2JqZWN0LmRlc2NyaXB0aW9uQXR0cmlidXRlVmFsdWUoKS5pc29sYXRlZENvcHkoKSk7Cisg
ICAgICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpIZWxwVGV4dCwgb2JqZWN0LmhlbHBU
ZXh0QXR0cmlidXRlVmFsdWUoKS5pc29sYXRlZENvcHkoKSk7CiAgICAgfQogCiAgICAgaWYgKGlz
Um9vdCA9PSBJc1Jvb3Q6OlllcykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwCmluZGV4IGRhNWMz
MDJiNmFhNi4uYmM4NTk1MmNiMmNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwCkBAIC00Niw2
ICs0Niw3IEBAIEhhc2hNYXA8UGFnZUlkZW50aWZpZXIsIFJlZjxBWElzb2xhdGVkVHJlZT4+JiBB
WElzb2xhdGVkVHJlZTo6dHJlZVBhZ2VDYWNoZSgpCiBBWElzb2xhdGVkVHJlZTo6QVhJc29sYXRl
ZFRyZWUoQVhPYmplY3RDYWNoZSYgYXhPYmplY3RDYWNoZSkKICAgICA6IEFYVHJlZVN0b3JlKGF4
T2JqZWN0Q2FjaGUudHJlZUlEKCkpCiAgICAgLCBtX2F4T2JqZWN0Q2FjaGUoJmF4T2JqZWN0Q2Fj
aGUpCisgICAgLCBtX3BhZ2VBY3Rpdml0eVN0YXRlKGF4T2JqZWN0Q2FjaGUucGFnZUFjdGl2aXR5
U3RhdGUoKSkKICAgICAsIG1fZ2VvbWV0cnlNYW5hZ2VyKGF4T2JqZWN0Q2FjaGUubV9nZW9tZXRy
eU1hbmFnZXIucHRyKCkpCiAgICAgLCBtX3VzZWRPbkFYVGhyZWFkKGF4T2JqZWN0Q2FjaGUudXNl
ZE9uQVhUaHJlYWQoKSkKIHsKQEAgLTcxOSw2ICs3MjAsMjYgQEAgdm9pZCBBWElzb2xhdGVkVHJl
ZTo6dXBkYXRlQ2hpbGRyZW4oQWNjZXNzaWJpbGl0eU9iamVjdCYgYXhPYmplY3QsIFJlc29sdmVO
b2RlQ2gKICAgICB1cGRhdGVOb2RlQW5kRGVwZW5kZW50UHJvcGVydGllcygqYXhBbmNlc3Rvcik7
CiB9CiAKK3ZvaWQgQVhJc29sYXRlZFRyZWU6OnNldFBhZ2VBY3Rpdml0eVN0YXRlKE9wdGlvblNl
dDxBY3Rpdml0eVN0YXRlPiBzdGF0ZSkKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwor
CisgICAgTG9ja2VyIGxvY2tlciB7IHNfc3RvcmVMb2NrIH07CisgICAgbV9wYWdlQWN0aXZpdHlT
dGF0ZSA9IHN0YXRlOworfQorCitPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZT4gQVhJc29sYXRlZFRy
ZWU6OnBhZ2VBY3Rpdml0eVN0YXRlKCkgY29uc3QKK3sKKyAgICBMb2NrZXIgbG9ja2VyIHsgc19z
dG9yZUxvY2sgfTsKKyAgICByZXR1cm4gbV9wYWdlQWN0aXZpdHlTdGF0ZTsKK30KKworT3B0aW9u
U2V0PEFjdGl2aXR5U3RhdGU+IEFYSXNvbGF0ZWRUcmVlOjpsb2NrZWRQYWdlQWN0aXZpdHlTdGF0
ZSgpIGNvbnN0Cit7CisgICAgQVNTRVJUKHNfc3RvcmVMb2NrLmlzTG9ja2VkKCkpOworICAgIHJl
dHVybiBtX3BhZ2VBY3Rpdml0eVN0YXRlOworfQorCiBSZWZQdHI8QVhJc29sYXRlZE9iamVjdD4g
QVhJc29sYXRlZFRyZWU6OmZvY3VzZWROb2RlKCkKIHsKICAgICBBWFRSQUNFKCJBWElzb2xhdGVk
VHJlZTo6Zm9jdXNlZE5vZGUiX3MpOwpAQCAtOTY2LDYgKzk4NywzMyBAQCB2b2lkIEFYSXNvbGF0
ZWRUcmVlOjphcHBseVBlbmRpbmdDaGFuZ2VzKCkKICAgICBtX3BlbmRpbmdQcm9wZXJ0eUNoYW5n
ZXMuY2xlYXIoKTsKIH0KIAorQVhUcmVlUHRyIGZpbmRBWFRyZWUoRnVuY3Rpb248Ym9vbChBWFRy
ZWVQdHIpPiYmIG1hdGNoKQoreworICAgIGlmIChpc01haW5UaHJlYWQoKSkgeworICAgICAgICBm
b3IgKFdlYWtQdHIgdHJlZSA6IEFYVHJlZVN0b3JlPEFYT2JqZWN0Q2FjaGU+OjpsaXZlVHJlZU1h
cCgpLnZhbHVlcygpKSB7CisgICAgICAgICAgICBpZiAoIXRyZWUpCisgICAgICAgICAgICAgICAg
Y29udGludWU7CisKKyAgICAgICAgICAgIGlmIChtYXRjaCh0cmVlKSkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gdHJlZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9
CisKKyNpZiBFTkFCTEUoQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKQorICAgIExvY2tlciBs
b2NrZXIgeyBBWFRyZWVTdG9yZTxBWElzb2xhdGVkVHJlZT46OnNfc3RvcmVMb2NrIH07CisgICAg
Zm9yIChhdXRvIGl0ID0gQVhUcmVlU3RvcmU8QVhJc29sYXRlZFRyZWU+Ojppc29sYXRlZFRyZWVN
YXAoKS5iZWdpbigpOyBpdCAhPSBBWFRyZWVTdG9yZTxBWElzb2xhdGVkVHJlZT46Omlzb2xhdGVk
VHJlZU1hcCgpLmVuZCgpOyArK2l0KSB7CisgICAgICAgIFJlZlB0ciB0cmVlID0gaXQtPnZhbHVl
LmdldCgpOworICAgICAgICBpZiAoIXRyZWUpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAg
ICAgICBpZiAobWF0Y2godHJlZSkpCisgICAgICAgICAgICByZXR1cm4gdHJlZTsKKyAgICB9Cisg
ICAgcmV0dXJuIG51bGxwdHI7CisjZW5kaWYKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CiAjZW5kaWYgLy8gRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRU
cmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xh
dGVkVHJlZS5oCmluZGV4IGY5ZmY3MzEyZDhlMi4uYmVlNDkyMTc5NTQ0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0
ZWRUcmVlLmgKQEAgLTI2OCw3ICsyNjgsNyBAQCBwdWJsaWM6CiAgICAgY29uc3RleHByIEFYR2Vv
bWV0cnlNYW5hZ2VyKiBnZW9tZXRyeU1hbmFnZXIoKSBjb25zdCB7IHJldHVybiBtX2dlb21ldHJ5
TWFuYWdlci5nZXQoKTsgfQogCiAgICAgUmVmUHRyPEFYSXNvbGF0ZWRPYmplY3Q+IHJvb3ROb2Rl
KCk7Ci0gICAgUmVmUHRyPEFYSXNvbGF0ZWRPYmplY3Q+IGZvY3VzZWROb2RlKCk7CisgICAgV0VC
Q09SRV9FWFBPUlQgUmVmUHRyPEFYSXNvbGF0ZWRPYmplY3Q+IGZvY3VzZWROb2RlKCk7CiAKICAg
ICBSZWZQdHI8QVhJc29sYXRlZE9iamVjdD4gb2JqZWN0Rm9ySUQoY29uc3QgQVhJRCkgY29uc3Q7
CiAgICAgVmVjdG9yPFJlZlB0cjxBWENvcmVPYmplY3Q+PiBvYmplY3RzRm9ySURzKGNvbnN0IFZl
Y3RvcjxBWElEPiYpOwpAQCAtMzE2LDYgKzMxNiwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBhcHBs
eVBlbmRpbmdDaGFuZ2VzKCk7CiAKICAgICBBWElEIHRyZWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1f
aWQ7IH0KKyAgICB2b2lkIHNldFBhZ2VBY3Rpdml0eVN0YXRlKE9wdGlvblNldDxBY3Rpdml0eVN0
YXRlPik7CisgICAgT3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU+IHBhZ2VBY3Rpdml0eVN0YXRlKCkg
Y29uc3Q7CisgICAgLy8gVXNlIG9ubHkgaWYgdGhlIHNfc3RvcmVMb2NrIGlzIGFscmVhZHkgaGVs
ZCBsaWtlIGluIGZpbmRBWFRyZWUuCisgICAgV0VCQ09SRV9FWFBPUlQgT3B0aW9uU2V0PEFjdGl2
aXR5U3RhdGU+IGxvY2tlZFBhZ2VBY3Rpdml0eVN0YXRlKCkgY29uc3Q7CiAKIHByaXZhdGU6CiAg
ICAgQVhJc29sYXRlZFRyZWUoQVhPYmplY3RDYWNoZSYpOwpAQCAtMzQ0LDYgKzM0OCw3IEBAIHBy
aXZhdGU6CiAKICAgICB1bnNpZ25lZCBtX21heFRyZWVEZXB0aCB7IDAgfTsKICAgICBXZWFrUHRy
PEFYT2JqZWN0Q2FjaGU+IG1fYXhPYmplY3RDYWNoZTsKKyAgICBPcHRpb25TZXQ8QWN0aXZpdHlT
dGF0ZT4gbV9wYWdlQWN0aXZpdHlTdGF0ZTsKICAgICBSZWZQdHI8QVhHZW9tZXRyeU1hbmFnZXI+
IG1fZ2VvbWV0cnlNYW5hZ2VyOwogICAgIGJvb2wgbV91c2VkT25BWFRocmVhZCB7IHRydWUgfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggZDg0ZjI3MTg5NDM0Li42Nzc1NTU4OTQ2YTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmNwcApAQCAtMjY3OSw4ICsyNjc5LDkgQEAgdm9pZCBQYWdlOjpzZXRBY3Rpdml0
eVN0YXRlKE9wdGlvblNldDxBY3Rpdml0eVN0YXRlPiBhY3Rpdml0eVN0YXRlKQogICAgICAgICBz
ZXRJc0luV2luZG93SW50ZXJuYWwoYWN0aXZpdHlTdGF0ZS5jb250YWlucyhBY3Rpdml0eVN0YXRl
OjpJc0luV2luZG93KSk7CiAgICAgaWYgKGNoYW5nZWQgJiBBY3Rpdml0eVN0YXRlOjpJc1Zpc3Vh
bGx5SWRsZSkKICAgICAgICAgc2V0SXNWaXN1YWxseUlkbGVJbnRlcm5hbChhY3Rpdml0eVN0YXRl
LmNvbnRhaW5zKEFjdGl2aXR5U3RhdGU6OklzVmlzdWFsbHlJZGxlKSk7CisKKyAgICBXZWFrUHRy
IGxvY2FsTWFpbkZyYW1lID0gZHluYW1pY0Rvd25jYXN0PExvY2FsRnJhbWU+KG1fbWFpbkZyYW1l
LmdldCgpKTsKICAgICBpZiAoY2hhbmdlZCAmIEFjdGl2aXR5U3RhdGU6OldpbmRvd0lzQWN0aXZl
KSB7Ci0gICAgICAgIGF1dG8qIGxvY2FsTWFpbkZyYW1lID0gZHluYW1pY0Rvd25jYXN0PExvY2Fs
RnJhbWU+KG1fbWFpbkZyYW1lLmdldCgpKTsKICAgICAgICAgaWYgKGF1dG8qIHZpZXcgPSBsb2Nh
bE1haW5GcmFtZSA/IGxvY2FsTWFpbkZyYW1lLT52aWV3KCkgOiBudWxscHRyKQogICAgICAgICAg
ICAgdmlldy0+dXBkYXRlVGlsZWRCYWNraW5nQWRhcHRpdmVTaXppbmcoKTsKICAgICB9CkBAIC0y
Njk2LDYgKzI2OTcsMTEgQEAgdm9pZCBQYWdlOjpzZXRBY3Rpdml0eVN0YXRlKE9wdGlvblNldDxB
Y3Rpdml0eVN0YXRlPiBhY3Rpdml0eVN0YXRlKQogICAgICAgICBzdG9wS2V5Ym9hcmRTY3JvbGxB
bmltYXRpb24oKTsKICAgICB9CiAKKyAgICBpZiAoYXV0byogZG9jdW1lbnQgPSBsb2NhbE1haW5G
cmFtZSA/IGxvY2FsTWFpbkZyYW1lLT5kb2N1bWVudCgpIDogbnVsbHB0cikgeworICAgICAgICBp
ZiAoYXV0byogY2FjaGUgPSBkb2N1bWVudC0+ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCisgICAg
ICAgICAgICBjYWNoZS0+b25QYWdlQWN0aXZpdHlTdGF0ZUNoYW5nZShtX2FjdGl2aXR5U3RhdGUp
OworICAgIH0KKwogICAgIGlmIChtX3BlcmZvcm1hbmNlTW9uaXRvcikKICAgICAgICAgbV9wZXJm
b3JtYW5jZU1vbml0b3ItPmFjdGl2aXR5U3RhdGVDaGFuZ2VkKG9sZEFjdGl2aXR5U3RhdGUsIGFj
dGl2aXR5U3RhdGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcAppbmRleCA3ODA1ODYwMmYzYmYuLmZjNzZlNDIyNjYxYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTU3MTksMTAgKzU3MTksNyBA
QCBib29sIFdlYlBhZ2U6OndpbmRvd0lzRm9jdXNlZCgpIGNvbnN0CiAKIGJvb2wgV2ViUGFnZTo6
d2luZG93QW5kV2ViUGFnZUFyZUZvY3VzZWQoKSBjb25zdAogewotICAgIGlmICghaXNWaXNpYmxl
KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiBtX3BhZ2UtPmZvY3VzQ29u
dHJvbGxlcigpLmlzRm9jdXNlZCgpICYmIG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuaXNBY3Rp
dmUoKTsKKyAgICByZXR1cm4gaXNWaXNpYmxlKCkgJiYgbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIo
KS5pc0ZvY3VzZWQoKSAmJiBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLmlzQWN0aXZlKCk7CiB9
CiAKIHZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25u
ZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQppbmRleCBjNTJlZjgzYWQ2OTUuLjg3MzVm
NTllMGQxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlBy
b2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJv
Y2Vzc0NvY29hLm1tCkBAIC01OCw2ICs1OCwxMSBAQAogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUv
Q29uZmlnRmlsZS5oPgogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvT3B0aW9ucy5oPgogI2ltcG9y
dCA8V2ViQ29yZS9BVkFzc2V0TUlNRVR5cGVDYWNoZS5oPgorCisjaWYgRU5BQkxFKEFDQ0VTU0lC
SUxJVFlfSVNPTEFURURfVFJFRSkKKyNpbXBvcnQgPFdlYkNvcmUvQVhJc29sYXRlZE9iamVjdC5o
PgorI2ltcG9ydCA8V2ViQ29yZS9BWElzb2xhdGVkVHJlZS5oPgorI2VuZGlmCiAjaW1wb3J0IDxX
ZWJDb3JlL0FYT2JqZWN0Q2FjaGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ1BVTW9uaXRvci5oPgog
I2ltcG9ydCA8V2ViQ29yZS9EZXByZWNhdGVkR2xvYmFsU2V0dGluZ3MuaD4KQEAgLTIwNCwxMiAr
MjA5LDM3IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1TZXRDYWNoZU1vZGVsKENhY2hlTW9k
ZWwpCiAKIGlkIFdlYlByb2Nlc3M6OmFjY2Vzc2liaWxpdHlGb2N1c2VkVUlFbGVtZW50KCkKIHsK
LSAgICByZXR1cm4gQWNjZXNzaWJpbGl0eTo6cmV0cmlldmVBdXRvcmVsZWFzZWRWYWx1ZUZyb21N
YWluVGhyZWFkPGlkPihbXSAoKSAtPiBSZXRhaW5QdHI8aWQ+IHsKLSAgICAgICAgV2ViUGFnZSog
cGFnZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmZvY3VzZWRXZWJQYWdlKCk7Ci0gICAgICAg
IGlmICghcGFnZSB8fCAhcGFnZS0+YWNjZXNzaWJpbGl0eVJlbW90ZU9iamVjdCgpKQotICAgICAg
ICAgICAgcmV0dXJuIG5pbDsKLSAgICAgICAgcmV0dXJuIFtwYWdlLT5hY2Nlc3NpYmlsaXR5UmVt
b3RlT2JqZWN0KCkgYWNjZXNzaWJpbGl0eUZvY3VzZWRVSUVsZW1lbnRdOwotICAgIH0pOworI2lm
IEVOQUJMRShBQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpCisgICAgaWYgKCFpc01haW5SdW5M
b29wKCkpIHsKKyAgICAgICAgLy8gQXZvaWQgaGl0dGluZyB0aGUgbWFpbiB0aHJlYWQgYnkgZ2V0
dGluZyB0aGUgZm9jdXNlZCBvYmplY3QgZnJvbSB0aGUgZm9jdXNlZCBpc29sYXRlZCB0cmVlLgor
ICAgICAgICBhdXRvIHRyZWUgPSBmaW5kQVhUcmVlKFtdIChBWFRyZWVQdHIgdHJlZSkgLT4gYm9v
bCB7CisgICAgICAgICAgICBPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZT4gc3RhdGU7CisgICAgICAg
ICAgICBzd2l0Y2hPbih0cmVlLAorICAgICAgICAgICAgICAgIFsmc3RhdGVdIChSZWZQdHI8QVhJ
c29sYXRlZFRyZWU+JiB0eXBlZFRyZWUpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVk
VHJlZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gdHlwZWRUcmVlLT5sb2NrZWRQ
YWdlQWN0aXZpdHlTdGF0ZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAs
IFtdIChhdXRvJikgeyB9CisgICAgICAgICAgICApOworICAgICAgICAgICAgcmV0dXJuIHN0YXRl
LmNvbnRhaW5zQWxsKHsgQWN0aXZpdHlTdGF0ZTo6SXNWaXNpYmxlLCBBY3Rpdml0eVN0YXRlOjpJ
c0ZvY3VzZWQsIEFjdGl2aXR5U3RhdGU6OldpbmRvd0lzQWN0aXZlIH0pOworICAgICAgICB9KTsK
KworICAgICAgICBSZWZQdHIgb2JqZWN0ID0gc3dpdGNoT24odHJlZSwKKyAgICAgICAgICAgIFtd
IChSZWZQdHI8QVhJc29sYXRlZFRyZWU+JiB0eXBlZFRyZWUpIC0+IFJlZlB0cjxBWElzb2xhdGVk
T2JqZWN0PiB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVkVHJlZSA/IHR5cGVkVHJlZS0+
Zm9jdXNlZE5vZGUoKSA6IG51bGxwdHI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAsIFtd
IChhdXRvJikgLT4gUmVmUHRyPEFYSXNvbGF0ZWRPYmplY3Q+IHsKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgKTsKKyAgICAgICAgcmV0dXJu
IG9iamVjdCA/IG9iamVjdC0+d3JhcHBlcigpIDogbmlsOworICAgIH0KKyNlbmRpZgorCisgICAg
V2ViUGFnZSogcGFnZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmZvY3VzZWRXZWJQYWdlKCk7
CisgICAgaWYgKCFwYWdlIHx8ICFwYWdlLT5hY2Nlc3NpYmlsaXR5UmVtb3RlT2JqZWN0KCkpCisg
ICAgICAgIHJldHVybiBuaWw7CisgICAgcmV0dXJuIFtwYWdlLT5hY2Nlc3NpYmlsaXR5UmVtb3Rl
T2JqZWN0KCkgYWNjZXNzaWJpbGl0eUZvY3VzZWRVSUVsZW1lbnRdOwogfQogCiAjaWYgVVNFKEFQ
UEtJVCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>466627</attachid>
            <date>2023-06-07 11:38:54 -0700</date>
            <delta_ts>2023-06-07 17:27:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-256761-20230607143853.patch</filename>
            <type>text/plain</type>
            <size>15414</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">RnJvbSBkNGY0YTY3OWUwZGEyYzE0NDM1ZDU3NDYxNTE5NGViOTVlNGQ5ODA5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXMgR29uemFsZXogPGFuZHJlc2dfMjJAYXBwbGUuY29t
PgpEYXRlOiBTYXQsIDEzIE1heSAyMDIzIDEzOjI4OjU1IC0wNDAwClN1YmplY3Q6IFtQQVRDSF0g
QVg6IEF2b2lkIGhpdHRpbmcgdGhlIG1haW4gdGhyZWFkIGluCiBOU0FwcGxpY2F0aW9uQWNjZXNz
aWJpbGl0eUZvY3VzZWRVSUVsZW1lbnQgaW4gaXNvbGF0ZWQgdHJlZSBtb2RlLgogaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1Njc2MSA8cmRhcjovL3Byb2JsZW0vMTA5
MzA3MjAwPgoKUmV2aWV3ZWQgYnkgQ2hyaXMgRmxlaXphY2ggYW5kIFR5bGVyIFdpbGNvY2suCgpO
U0FwcGxpY2F0aW9uQWNjZXNzaWJpbGl0eUZvY3VzZWRVSUVsZW1lbnQgaXMgZnJlcXVlbnRseSBj
YWxsZWQgYnkgQVQgdG8gdHJhY2sgdGhlIGZvY3VzIG9iamVjdC4gQ3VycmVudGx5IGl0IGhhcyB0
byBoaXQgdGhlIG1haW4gdGhyZWFkIGV2ZXJ5IHRpbWUuClRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBi
eSBhZGRpbmcgYSBtZWNoYW5pc20gdG8ga2VlcCB0cmFjayBvZiB0aGUgZm9jdXNlZCBBWCB0cmVl
IGJhc2VkIG9uIHRoZSBhc3NvY2lhdGVkIFBhZ2UgQWN0aXZpdHlTdGF0ZS4gVGhlbiwgdGhlIGZv
Y3VzZWQgb2JqZWN0IGlzIHJldHJpZXZlZCBmcm9tIHRoZSBmb2N1c2VkIHRyZWUgb2J0YWluZWQg
dmlhIEFYVHJlZVN0b3JlOjpmaW5kVHJlZS4KSW4gYWRkaXRpb24sIHRoaXMgcGF0Y2ggYWxzbyBj
YWNoZXMgdGhlIEhlbHBUZXh0IGZvciBTY3JvbGxWaWV3cyBhbmQgV2ViQXJlYXMgZWFnZXJseSBz
aW5jZSB0aGF0J3MgYW5vdGhlciBwcm9wZXJ0eSByZXF1ZXN0ZWQgYnkgQVQgd2hpbGUgdGhlIGlz
b2xhdGVkIHRyZWUgaXMgYmVpbmcgYnVpbHQuCi0tLQogLi4uL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmNwcCAgIHwgMjEgKysrKysrKy0KIFNvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQVhPYmplY3RDYWNoZS5oICB8ICA2ICsrKwogU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWFRyZWVTdG9yZS5oICAgIHwgIDUgKysKIC4uLi9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZE9iamVjdC5jcHAgICAgICAgICB8ICAxICsKIC4uLi9pc29sYXRlZHRyZWUvQVhJc29sYXRl
ZFRyZWUuY3BwICAgICAgICAgICB8IDQ4ICsrKysrKysrKysrKysrKysrKysKIC4uLi9pc29sYXRl
ZHRyZWUvQVhJc29sYXRlZFRyZWUuaCAgICAgICAgICAgICB8ICA3ICsrLQogU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmNwcCAgICAgICAgICAgICAgICAgIHwgIDggKysrLQogU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgIHwgIDUgKy0KIC4uLi9XZWJQcm9jZXNz
L2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbSAgICAgICB8IDQyICsrKysrKysrKysrKystLS0KIDkg
ZmlsZXMgY2hhbmdlZCwgMTI5IGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4IGFkNjYz
ODhhODM0NS4uNjZiMWQ4MjQxYjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQVhPYmplY3RDYWNoZS5jcHAKQEAgLTI1Niw2ICsyNTYsOCBAQCBBWE9iamVjdENhY2hlOjpB
WE9iamVjdENhY2hlKERvY3VtZW50JiBkb2N1bWVudCkKICAgICAgICAgbG9hZGluZ1Byb2dyZXNz
ID0gMTsKICAgICBtX2xvYWRpbmdQcm9ncmVzcyA9IGxvYWRpbmdQcm9ncmVzczsKIAorICAgIGlm
IChtX3BhZ2VJRCkKKyAgICAgICAgbV9wYWdlQWN0aXZpdHlTdGF0ZSA9IG1fZG9jdW1lbnQucGFn
ZSgpLT5hY3Rpdml0eVN0YXRlKCk7CiAgICAgQVhUcmVlU3RvcmU6OmFkZChtX2lkLCBXZWFrUHRy
IHsgdGhpcyB9KTsKIH0KIApAQCAtMjcxLDggKzI3MywxMSBAQCBBWE9iamVjdENhY2hlOjp+QVhP
YmplY3RDYWNoZSgpCiAgICAgICAgIG9iamVjdC0+ZGV0YWNoKEFjY2Vzc2liaWxpdHlEZXRhY2ht
ZW50VHlwZTo6Q2FjaGVEZXN0cm95ZWQpOwogCiAjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNP
TEFURURfVFJFRSkKLSAgICBpZiAobV9wYWdlSUQpCisgICAgaWYgKG1fcGFnZUlEKSB7CisgICAg
ICAgIGlmIChhdXRvIHRyZWUgPSBBWElzb2xhdGVkVHJlZTo6dHJlZUZvclBhZ2VJRCgqbV9wYWdl
SUQpKQorICAgICAgICAgICAgdHJlZS0+c2V0UGFnZUFjdGl2aXR5U3RhdGUoeyB9KTsKICAgICAg
ICAgQVhJc29sYXRlZFRyZWU6OnJlbW92ZVRyZWVGb3JQYWdlSUQoKm1fcGFnZUlEKTsKKyAgICB9
CiAjZW5kaWYKIAogICAgIEFYVHJlZVN0b3JlOjpyZW1vdmUobV9pZCk7CkBAIC0xNDQ3LDYgKzE0
NTIsMTcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVSb3dDb3VudENoYW5nZWQoQWNjZXNz
aWJpbGl0eU9iamVjdCogYXhPYmplY3QsIERvY3VtZW4KICAgICBwb3N0Tm90aWZpY2F0aW9uKGF4
T2JqZWN0LCBkb2N1bWVudCwgQVhSb3dDb3VudENoYW5nZWQpOwogfQogCit2b2lkIEFYT2JqZWN0
Q2FjaGU6Om9uUGFnZUFjdGl2aXR5U3RhdGVDaGFuZ2UoT3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU+
IG5ld1N0YXRlKQoreworICAgIEFTU0VSVChtX3BhZ2VJRCk7CisKKyAgICBtX3BhZ2VBY3Rpdml0
eVN0YXRlID0gbmV3U3RhdGU7CisjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJF
RSkKKyAgICBpZiAoYXV0byB0cmVlID0gQVhJc29sYXRlZFRyZWU6OnRyZWVGb3JQYWdlSUQobV9w
YWdlSUQpKQorICAgICAgICB0cmVlLT5zZXRQYWdlQWN0aXZpdHlTdGF0ZShuZXdTdGF0ZSk7Cisj
ZW5kaWYKK30KKwogdm9pZCBBWE9iamVjdENhY2hlOjpvbkZvY3VzQ2hhbmdlKE5vZGUqIG9sZE5v
ZGUsIE5vZGUqIG5ld05vZGUpCiB7CiAgICAgaWYgKG5vZGVBbmRSZW5kZXJlckFyZVZhbGlkKG5l
d05vZGUpICYmIHJlbmRlcmVyTmVlZHNEZWZlcnJlZFVwZGF0ZSgqbmV3Tm9kZS0+cmVuZGVyZXIo
KSkpIHsKQEAgLTE1MTEsOSArMTUyNywxMCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZUZv
Y3VzZWRVSUVsZW1lbnRDaGFuZ2VkKE5vZGUqIG9sZE5vZGUsIE5vZGUqIG5ld05vZGUsCiAgICAg
aWYgKHVwZGF0ZU1vZGFsID09IFVwZGF0ZU1vZGFsOjpZZXMpCiAgICAgICAgIHVwZGF0ZUN1cnJl
bnRNb2RhbE5vZGUoKTsKICAgICBoYW5kbGVNZW51SXRlbVNlbGVjdGVkKG5ld05vZGUpOworCiAg
ICAgcGxhdGZvcm1IYW5kbGVGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZChvbGROb2RlLCBuZXdOb2Rl
KTsKIH0KLSAgICAKKwogdm9pZCBBWE9iamVjdENhY2hlOjpzZWxlY3RlZENoaWxkcmVuQ2hhbmdl
ZChOb2RlKiBub2RlKQogewogICAgIHBvc3ROb3RpZmljYXRpb24obm9kZSwgQVhTZWxlY3RlZENo
aWxkcmVuQ2hhbmdlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FYT2JqZWN0Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RD
YWNoZS5oCmluZGV4IGZhYjAzN2EyMTg2ZC4uZjg0NmEzM2M1Y2I0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaApAQCAtMTc4LDYgKzE3OCwxMCBAQCBw
cml2YXRlOgogICAgIHZvaWQgYXR0YWNoV3JhcHBlcihBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7CiAK
IHB1YmxpYzoKKyAgICB2b2lkIG9uUGFnZUFjdGl2aXR5U3RhdGVDaGFuZ2UoT3B0aW9uU2V0PEFj
dGl2aXR5U3RhdGU+KTsKKyAgICB2b2lkIHNldFBhZ2VBY3Rpdml0eVN0YXRlKE9wdGlvblNldDxB
Y3Rpdml0eVN0YXRlPiBzdGF0ZSkgeyBtX3BhZ2VBY3Rpdml0eVN0YXRlID0gc3RhdGU7IH0KKyAg
ICBPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZT4gcGFnZUFjdGl2aXR5U3RhdGUoKSBjb25zdCB7IHJl
dHVybiBtX3BhZ2VBY3Rpdml0eVN0YXRlOyB9CisKICAgICB2b2lkIGNoaWxkcmVuQ2hhbmdlZChO
b2RlKiwgTm9kZSogbmV3Q2hpbGQgPSBudWxscHRyKTsKICAgICB2b2lkIGNoaWxkcmVuQ2hhbmdl
ZChSZW5kZXJPYmplY3QqLCBSZW5kZXJPYmplY3QqIG5ld0NoaWxkID0gbnVsbHB0cik7CiAgICAg
dm9pZCBjaGlsZHJlbkNoYW5nZWQoQWNjZXNzaWJpbGl0eU9iamVjdCopOwpAQCAtNTg5LDYgKzU5
Myw3IEBAIHByaXZhdGU6CiAKICAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKICAgICBjb25zdCBz
dGQ6Om9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBtX3BhZ2VJRDsgLy8gY29uc3RhbnQgZm9yIG9i
amVjdCdzIGxpZmV0aW1lLgorICAgIE9wdGlvblNldDxBY3Rpdml0eVN0YXRlPiBtX3BhZ2VBY3Rp
dml0eVN0YXRlOwogICAgIEhhc2hNYXA8QVhJRCwgUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+
PiBtX29iamVjdHM7CiAgICAgSGFzaE1hcDxSZW5kZXJPYmplY3QqLCBBWElEPiBtX3JlbmRlck9i
amVjdE1hcHBpbmc7CiAgICAgSGFzaE1hcDxXaWRnZXQqLCBBWElEPiBtX3dpZGdldE9iamVjdE1h
cHBpbmc7CkBAIC03MTYsNiArNzIxLDcgQEAgaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6b25U
aXRsZUNoYW5nZShEb2N1bWVudCYpIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6b25W
YWxpZGl0eUNoYW5nZShFbGVtZW50JikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjp2
YWx1ZUNoYW5nZWQoRWxlbWVudCopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6b25G
b2N1c0NoYW5nZShOb2RlKiwgTm9kZSopIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6
b25QYWdlQWN0aXZpdHlTdGF0ZUNoYW5nZShPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZT4pIHsgfQog
aW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6b25Qb3BvdmVyVGFyZ2V0VG9nZ2xlKGNvbnN0IEhU
TUxGb3JtQ29udHJvbEVsZW1lbnQmKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om9u
U2Nyb2xsYmFyRnJhbWVSZWN0Q2hhbmdlKGNvbnN0IFNjcm9sbGJhciYpIHsgfQogaW5saW5lIHZv
aWQgQVhPYmplY3RDYWNoZTo6ZGVmZXJSZWNvbXB1dGVJc0lnbm9yZWRJZk5lZWRlZChFbGVtZW50
KikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYVHJlZVN0
b3JlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYVHJlZVN0b3JlLmgKaW5kZXgg
YmYwODk4ZTBhN2FiLi4wMDZmMGJjMzA5ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhUcmVlU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYVHJlZVN0b3JlLmgKQEAgLTI1LDYgKzI1LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5j
bHVkZSAiQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oIgorI2luY2x1ZGUgIkFjdGl2aXR5
U3RhdGUuaCIKICNpbmNsdWRlIDx2YXJpYW50PgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAj
aW5jbHVkZSA8d3RmL0xvY2suaD4KQEAgLTUyLDEwICs1MywxNCBAQCB1c2luZyBBWFRyZWVXZWFr
UHRyID0gc3RkOjp2YXJpYW50PFdlYWtQdHI8QVhPYmplY3RDYWNoZT4KICNlbmRpZgogPjsKIAor
QVhUcmVlUHRyIGF4VHJlZUZvcklEKEFYSUQpOworV0VCQ09SRV9FWFBPUlQgQVhUcmVlUHRyIGZp
bmRBWFRyZWUoRnVuY3Rpb248Ym9vbChBWFRyZWVQdHIpPiYmKTsKKwogdGVtcGxhdGU8dHlwZW5h
bWUgVD4KIGNsYXNzIEFYVHJlZVN0b3JlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBWFRy
ZWVTdG9yZSk7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CisgICAgZnJpZW5kIFdFQkNP
UkVfRVhQT1JUIEFYVHJlZVB0ciBmaW5kQVhUcmVlKEZ1bmN0aW9uPGJvb2woQVhUcmVlUHRyKT4m
Jik7CiBwdWJsaWM6CiAgICAgQVhJRCB0cmVlSUQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9CiAg
ICAgc3RhdGljIFdlYWtQdHI8QVhPYmplY3RDYWNoZT4gYXhPYmplY3RDYWNoZUZvcklEKEFYSUQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUv
QVhJc29sYXRlZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xh
dGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcAppbmRleCA2MDZiN2FmMzBlZTIuLjQ2NWQ0ZWJh
MTE1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRy
ZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKQEAgLTMxMCw2ICszMTAsNyBAQCB2
b2lkIEFYSXNvbGF0ZWRPYmplY3Q6OmluaXRpYWxpemVQcm9wZXJ0aWVzKGNvbnN0IFJlZjxBY2Nl
c3NpYmlsaXR5T2JqZWN0PiYgYXhPYgogICAgICAgICAvLyBGb3IgdGhlIFNjcm9sbFZpZXcgYW5k
IFdlYkFyZWEgb2JqZWN0cywgY2FjaGUgdGhlIFRpdGxlQXR0cmlidXRlVmFsdWUgYW5kIERlc2Ny
aXB0aW9uQXR0cmlidXRlVmFsdWUgZWFnZXJseSB0byBhdm9pZCBoaXR0aW5nIHRoZSBtYWluIHRo
cmVhZCBpbiBnZXRPclJldHJpZXZlUHJvcGVydHlWYWx1ZSBkdXJpbmcgdGhlIGNvbnN0cnVjdGlv
biBvZiB0aGUgaXNvbGF0ZWQgdHJlZS4KICAgICAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5h
bWU6OlRpdGxlQXR0cmlidXRlVmFsdWUsIG9iamVjdC50aXRsZUF0dHJpYnV0ZVZhbHVlKCkuaXNv
bGF0ZWRDb3B5KCkpOwogICAgICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6RGVzY3Jp
cHRpb25BdHRyaWJ1dGVWYWx1ZSwgb2JqZWN0LmRlc2NyaXB0aW9uQXR0cmlidXRlVmFsdWUoKS5p
c29sYXRlZENvcHkoKSk7CisgICAgICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpIZWxw
VGV4dCwgb2JqZWN0LmhlbHBUZXh0QXR0cmlidXRlVmFsdWUoKS5pc29sYXRlZENvcHkoKSk7CiAg
ICAgfQogCiAgICAgaWYgKGlzUm9vdCA9PSBJc1Jvb3Q6OlllcykgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRy
ZWUuY3BwCmluZGV4IGRhNWMzMDJiNmFhNi4uYmM4NTk1MmNiMmNhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRl
ZFRyZWUuY3BwCkBAIC00Niw2ICs0Niw3IEBAIEhhc2hNYXA8UGFnZUlkZW50aWZpZXIsIFJlZjxB
WElzb2xhdGVkVHJlZT4+JiBBWElzb2xhdGVkVHJlZTo6dHJlZVBhZ2VDYWNoZSgpCiBBWElzb2xh
dGVkVHJlZTo6QVhJc29sYXRlZFRyZWUoQVhPYmplY3RDYWNoZSYgYXhPYmplY3RDYWNoZSkKICAg
ICA6IEFYVHJlZVN0b3JlKGF4T2JqZWN0Q2FjaGUudHJlZUlEKCkpCiAgICAgLCBtX2F4T2JqZWN0
Q2FjaGUoJmF4T2JqZWN0Q2FjaGUpCisgICAgLCBtX3BhZ2VBY3Rpdml0eVN0YXRlKGF4T2JqZWN0
Q2FjaGUucGFnZUFjdGl2aXR5U3RhdGUoKSkKICAgICAsIG1fZ2VvbWV0cnlNYW5hZ2VyKGF4T2Jq
ZWN0Q2FjaGUubV9nZW9tZXRyeU1hbmFnZXIucHRyKCkpCiAgICAgLCBtX3VzZWRPbkFYVGhyZWFk
KGF4T2JqZWN0Q2FjaGUudXNlZE9uQVhUaHJlYWQoKSkKIHsKQEAgLTcxOSw2ICs3MjAsMjYgQEAg
dm9pZCBBWElzb2xhdGVkVHJlZTo6dXBkYXRlQ2hpbGRyZW4oQWNjZXNzaWJpbGl0eU9iamVjdCYg
YXhPYmplY3QsIFJlc29sdmVOb2RlQ2gKICAgICB1cGRhdGVOb2RlQW5kRGVwZW5kZW50UHJvcGVy
dGllcygqYXhBbmNlc3Rvcik7CiB9CiAKK3ZvaWQgQVhJc29sYXRlZFRyZWU6OnNldFBhZ2VBY3Rp
dml0eVN0YXRlKE9wdGlvblNldDxBY3Rpdml0eVN0YXRlPiBzdGF0ZSkKK3sKKyAgICBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpOworCisgICAgTG9ja2VyIGxvY2tlciB7IHNfc3RvcmVMb2NrIH07Cisg
ICAgbV9wYWdlQWN0aXZpdHlTdGF0ZSA9IHN0YXRlOworfQorCitPcHRpb25TZXQ8QWN0aXZpdHlT
dGF0ZT4gQVhJc29sYXRlZFRyZWU6OnBhZ2VBY3Rpdml0eVN0YXRlKCkgY29uc3QKK3sKKyAgICBM
b2NrZXIgbG9ja2VyIHsgc19zdG9yZUxvY2sgfTsKKyAgICByZXR1cm4gbV9wYWdlQWN0aXZpdHlT
dGF0ZTsKK30KKworT3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU+IEFYSXNvbGF0ZWRUcmVlOjpsb2Nr
ZWRQYWdlQWN0aXZpdHlTdGF0ZSgpIGNvbnN0Cit7CisgICAgQVNTRVJUKHNfc3RvcmVMb2NrLmlz
TG9ja2VkKCkpOworICAgIHJldHVybiBtX3BhZ2VBY3Rpdml0eVN0YXRlOworfQorCiBSZWZQdHI8
QVhJc29sYXRlZE9iamVjdD4gQVhJc29sYXRlZFRyZWU6OmZvY3VzZWROb2RlKCkKIHsKICAgICBB
WFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6Zm9jdXNlZE5vZGUiX3MpOwpAQCAtOTY2LDYgKzk4Nywz
MyBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjphcHBseVBlbmRpbmdDaGFuZ2VzKCkKICAgICBtX3Bl
bmRpbmdQcm9wZXJ0eUNoYW5nZXMuY2xlYXIoKTsKIH0KIAorQVhUcmVlUHRyIGZpbmRBWFRyZWUo
RnVuY3Rpb248Ym9vbChBWFRyZWVQdHIpPiYmIG1hdGNoKQoreworICAgIGlmIChpc01haW5UaHJl
YWQoKSkgeworICAgICAgICBmb3IgKFdlYWtQdHIgdHJlZSA6IEFYVHJlZVN0b3JlPEFYT2JqZWN0
Q2FjaGU+OjpsaXZlVHJlZU1hcCgpLnZhbHVlcygpKSB7CisgICAgICAgICAgICBpZiAoIXRyZWUp
CisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgIGlmIChtYXRjaCh0cmVl
KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJlZTsKKyAgICAgICAgfQorICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKyAgICB9CisKKyNpZiBFTkFCTEUoQUNDRVNTSUJJTElUWV9JU09MQVRFRF9U
UkVFKQorICAgIExvY2tlciBsb2NrZXIgeyBBWFRyZWVTdG9yZTxBWElzb2xhdGVkVHJlZT46OnNf
c3RvcmVMb2NrIH07CisgICAgZm9yIChhdXRvIGl0ID0gQVhUcmVlU3RvcmU8QVhJc29sYXRlZFRy
ZWU+Ojppc29sYXRlZFRyZWVNYXAoKS5iZWdpbigpOyBpdCAhPSBBWFRyZWVTdG9yZTxBWElzb2xh
dGVkVHJlZT46Omlzb2xhdGVkVHJlZU1hcCgpLmVuZCgpOyArK2l0KSB7CisgICAgICAgIFJlZlB0
ciB0cmVlID0gaXQtPnZhbHVlLmdldCgpOworICAgICAgICBpZiAoIXRyZWUpCisgICAgICAgICAg
ICBjb250aW51ZTsKKworICAgICAgICBpZiAobWF0Y2godHJlZSkpCisgICAgICAgICAgICByZXR1
cm4gdHJlZTsKKyAgICB9CisgICAgcmV0dXJuIG51bGxwdHI7CisjZW5kaWYKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFU
RURfVFJFRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0
ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lz
b2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oCmluZGV4IGY5ZmY3MzEyZDhlMi4uYmVlNDkyMTc5
NTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJl
ZS9BWElzb2xhdGVkVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNv
bGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgKQEAgLTI2OCw3ICsyNjgsNyBAQCBwdWJsaWM6CiAg
ICAgY29uc3RleHByIEFYR2VvbWV0cnlNYW5hZ2VyKiBnZW9tZXRyeU1hbmFnZXIoKSBjb25zdCB7
IHJldHVybiBtX2dlb21ldHJ5TWFuYWdlci5nZXQoKTsgfQogCiAgICAgUmVmUHRyPEFYSXNvbGF0
ZWRPYmplY3Q+IHJvb3ROb2RlKCk7Ci0gICAgUmVmUHRyPEFYSXNvbGF0ZWRPYmplY3Q+IGZvY3Vz
ZWROb2RlKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgUmVmUHRyPEFYSXNvbGF0ZWRPYmplY3Q+IGZv
Y3VzZWROb2RlKCk7CiAKICAgICBSZWZQdHI8QVhJc29sYXRlZE9iamVjdD4gb2JqZWN0Rm9ySUQo
Y29uc3QgQVhJRCkgY29uc3Q7CiAgICAgVmVjdG9yPFJlZlB0cjxBWENvcmVPYmplY3Q+PiBvYmpl
Y3RzRm9ySURzKGNvbnN0IFZlY3RvcjxBWElEPiYpOwpAQCAtMzE2LDYgKzMxNiwxMCBAQCBwdWJs
aWM6CiAgICAgdm9pZCBhcHBseVBlbmRpbmdDaGFuZ2VzKCk7CiAKICAgICBBWElEIHRyZWVJRCgp
IGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KKyAgICB2b2lkIHNldFBhZ2VBY3Rpdml0eVN0YXRlKE9w
dGlvblNldDxBY3Rpdml0eVN0YXRlPik7CisgICAgT3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU+IHBh
Z2VBY3Rpdml0eVN0YXRlKCkgY29uc3Q7CisgICAgLy8gVXNlIG9ubHkgaWYgdGhlIHNfc3RvcmVM
b2NrIGlzIGFscmVhZHkgaGVsZCBsaWtlIGluIGZpbmRBWFRyZWUuCisgICAgV0VCQ09SRV9FWFBP
UlQgT3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU+IGxvY2tlZFBhZ2VBY3Rpdml0eVN0YXRlKCkgY29u
c3Q7CiAKIHByaXZhdGU6CiAgICAgQVhJc29sYXRlZFRyZWUoQVhPYmplY3RDYWNoZSYpOwpAQCAt
MzQ0LDYgKzM0OCw3IEBAIHByaXZhdGU6CiAKICAgICB1bnNpZ25lZCBtX21heFRyZWVEZXB0aCB7
IDAgfTsKICAgICBXZWFrUHRyPEFYT2JqZWN0Q2FjaGU+IG1fYXhPYmplY3RDYWNoZTsKKyAgICBP
cHRpb25TZXQ8QWN0aXZpdHlTdGF0ZT4gbV9wYWdlQWN0aXZpdHlTdGF0ZTsKICAgICBSZWZQdHI8
QVhHZW9tZXRyeU1hbmFnZXI+IG1fZ2VvbWV0cnlNYW5hZ2VyOwogICAgIGJvb2wgbV91c2VkT25B
WFRocmVhZCB7IHRydWUgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggZDg0ZjI3MTg5NDM0Li42
Nzc1NTU4OTQ2YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMjY3OSw4ICsyNjc5LDkgQEAgdm9p
ZCBQYWdlOjpzZXRBY3Rpdml0eVN0YXRlKE9wdGlvblNldDxBY3Rpdml0eVN0YXRlPiBhY3Rpdml0
eVN0YXRlKQogICAgICAgICBzZXRJc0luV2luZG93SW50ZXJuYWwoYWN0aXZpdHlTdGF0ZS5jb250
YWlucyhBY3Rpdml0eVN0YXRlOjpJc0luV2luZG93KSk7CiAgICAgaWYgKGNoYW5nZWQgJiBBY3Rp
dml0eVN0YXRlOjpJc1Zpc3VhbGx5SWRsZSkKICAgICAgICAgc2V0SXNWaXN1YWxseUlkbGVJbnRl
cm5hbChhY3Rpdml0eVN0YXRlLmNvbnRhaW5zKEFjdGl2aXR5U3RhdGU6OklzVmlzdWFsbHlJZGxl
KSk7CisKKyAgICBXZWFrUHRyIGxvY2FsTWFpbkZyYW1lID0gZHluYW1pY0Rvd25jYXN0PExvY2Fs
RnJhbWU+KG1fbWFpbkZyYW1lLmdldCgpKTsKICAgICBpZiAoY2hhbmdlZCAmIEFjdGl2aXR5U3Rh
dGU6OldpbmRvd0lzQWN0aXZlKSB7Ci0gICAgICAgIGF1dG8qIGxvY2FsTWFpbkZyYW1lID0gZHlu
YW1pY0Rvd25jYXN0PExvY2FsRnJhbWU+KG1fbWFpbkZyYW1lLmdldCgpKTsKICAgICAgICAgaWYg
KGF1dG8qIHZpZXcgPSBsb2NhbE1haW5GcmFtZSA/IGxvY2FsTWFpbkZyYW1lLT52aWV3KCkgOiBu
dWxscHRyKQogICAgICAgICAgICAgdmlldy0+dXBkYXRlVGlsZWRCYWNraW5nQWRhcHRpdmVTaXpp
bmcoKTsKICAgICB9CkBAIC0yNjk2LDYgKzI2OTcsMTEgQEAgdm9pZCBQYWdlOjpzZXRBY3Rpdml0
eVN0YXRlKE9wdGlvblNldDxBY3Rpdml0eVN0YXRlPiBhY3Rpdml0eVN0YXRlKQogICAgICAgICBz
dG9wS2V5Ym9hcmRTY3JvbGxBbmltYXRpb24oKTsKICAgICB9CiAKKyAgICBpZiAoYXV0byogZG9j
dW1lbnQgPSBsb2NhbE1haW5GcmFtZSA/IGxvY2FsTWFpbkZyYW1lLT5kb2N1bWVudCgpIDogbnVs
bHB0cikgeworICAgICAgICBpZiAoYXV0byogY2FjaGUgPSBkb2N1bWVudC0+ZXhpc3RpbmdBWE9i
amVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+b25QYWdlQWN0aXZpdHlTdGF0ZUNoYW5n
ZShtX2FjdGl2aXR5U3RhdGUpOworICAgIH0KKwogICAgIGlmIChtX3BlcmZvcm1hbmNlTW9uaXRv
cikKICAgICAgICAgbV9wZXJmb3JtYW5jZU1vbml0b3ItPmFjdGl2aXR5U3RhdGVDaGFuZ2VkKG9s
ZEFjdGl2aXR5U3RhdGUsIGFjdGl2aXR5U3RhdGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA3ODA1ODYwMmYzYmYuLmZjNzZlNDIyNjYx
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAg
LTU3MTksMTAgKzU3MTksNyBAQCBib29sIFdlYlBhZ2U6OndpbmRvd0lzRm9jdXNlZCgpIGNvbnN0
CiAKIGJvb2wgV2ViUGFnZTo6d2luZG93QW5kV2ViUGFnZUFyZUZvY3VzZWQoKSBjb25zdAogewot
ICAgIGlmICghaXNWaXNpYmxlKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVy
biBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLmlzRm9jdXNlZCgpICYmIG1fcGFnZS0+Zm9jdXND
b250cm9sbGVyKCkuaXNBY3RpdmUoKTsKKyAgICByZXR1cm4gaXNWaXNpYmxlKCkgJiYgbV9wYWdl
LT5mb2N1c0NvbnRyb2xsZXIoKS5pc0ZvY3VzZWQoKSAmJiBtX3BhZ2UtPmZvY3VzQ29udHJvbGxl
cigpLmlzQWN0aXZlKCk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQppbmRleCBj
NTJlZjgzYWQ2OTUuLjg3MzVmNTllMGQxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCkBAIC01OCw2ICs1OCwxMSBAQAogI2ltcG9y
dCA8SmF2YVNjcmlwdENvcmUvQ29uZmlnRmlsZS5oPgogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUv
T3B0aW9ucy5oPgogI2ltcG9ydCA8V2ViQ29yZS9BVkFzc2V0TUlNRVR5cGVDYWNoZS5oPgorCisj
aWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkKKyNpbXBvcnQgPFdlYkNvcmUv
QVhJc29sYXRlZE9iamVjdC5oPgorI2ltcG9ydCA8V2ViQ29yZS9BWElzb2xhdGVkVHJlZS5oPgor
I2VuZGlmCiAjaW1wb3J0IDxXZWJDb3JlL0FYT2JqZWN0Q2FjaGUuaD4KICNpbXBvcnQgPFdlYkNv
cmUvQ1BVTW9uaXRvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9EZXByZWNhdGVkR2xvYmFsU2V0dGlu
Z3MuaD4KQEAgLTIwNCwxMiArMjA5LDM3IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1TZXRD
YWNoZU1vZGVsKENhY2hlTW9kZWwpCiAKIGlkIFdlYlByb2Nlc3M6OmFjY2Vzc2liaWxpdHlGb2N1
c2VkVUlFbGVtZW50KCkKIHsKLSAgICByZXR1cm4gQWNjZXNzaWJpbGl0eTo6cmV0cmlldmVBdXRv
cmVsZWFzZWRWYWx1ZUZyb21NYWluVGhyZWFkPGlkPihbXSAoKSAtPiBSZXRhaW5QdHI8aWQ+IHsK
LSAgICAgICAgV2ViUGFnZSogcGFnZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmZvY3VzZWRX
ZWJQYWdlKCk7Ci0gICAgICAgIGlmICghcGFnZSB8fCAhcGFnZS0+YWNjZXNzaWJpbGl0eVJlbW90
ZU9iamVjdCgpKQotICAgICAgICAgICAgcmV0dXJuIG5pbDsKLSAgICAgICAgcmV0dXJuIFtwYWdl
LT5hY2Nlc3NpYmlsaXR5UmVtb3RlT2JqZWN0KCkgYWNjZXNzaWJpbGl0eUZvY3VzZWRVSUVsZW1l
bnRdOwotICAgIH0pOworI2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpCisg
ICAgaWYgKCFpc01haW5SdW5Mb29wKCkpIHsKKyAgICAgICAgLy8gQXZvaWQgaGl0dGluZyB0aGUg
bWFpbiB0aHJlYWQgYnkgZ2V0dGluZyB0aGUgZm9jdXNlZCBvYmplY3QgZnJvbSB0aGUgZm9jdXNl
ZCBpc29sYXRlZCB0cmVlLgorICAgICAgICBhdXRvIHRyZWUgPSBmaW5kQVhUcmVlKFtdIChBWFRy
ZWVQdHIgdHJlZSkgLT4gYm9vbCB7CisgICAgICAgICAgICBPcHRpb25TZXQ8QWN0aXZpdHlTdGF0
ZT4gc3RhdGU7CisgICAgICAgICAgICBzd2l0Y2hPbih0cmVlLAorICAgICAgICAgICAgICAgIFsm
c3RhdGVdIChSZWZQdHI8QVhJc29sYXRlZFRyZWU+JiB0eXBlZFRyZWUpIHsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKHR5cGVkVHJlZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0g
dHlwZWRUcmVlLT5sb2NrZWRQYWdlQWN0aXZpdHlTdGF0ZSgpOworICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAsIFtdIChhdXRvJikgeyB9CisgICAgICAgICAgICApOworICAgICAg
ICAgICAgcmV0dXJuIHN0YXRlLmNvbnRhaW5zQWxsKHsgQWN0aXZpdHlTdGF0ZTo6SXNWaXNpYmxl
LCBBY3Rpdml0eVN0YXRlOjpJc0ZvY3VzZWQsIEFjdGl2aXR5U3RhdGU6OldpbmRvd0lzQWN0aXZl
IH0pOworICAgICAgICB9KTsKKworICAgICAgICBSZWZQdHIgb2JqZWN0ID0gc3dpdGNoT24odHJl
ZSwKKyAgICAgICAgICAgIFtdIChSZWZQdHI8QVhJc29sYXRlZFRyZWU+JiB0eXBlZFRyZWUpIC0+
IFJlZlB0cjxBWElzb2xhdGVkT2JqZWN0PiB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVk
VHJlZSA/IHR5cGVkVHJlZS0+Zm9jdXNlZE5vZGUoKSA6IG51bGxwdHI7CisgICAgICAgICAgICB9
CisgICAgICAgICAgICAsIFtdIChhdXRvJikgLT4gUmVmUHRyPEFYSXNvbGF0ZWRPYmplY3Q+IHsK
KyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
KTsKKyAgICAgICAgcmV0dXJuIG9iamVjdCA/IG9iamVjdC0+d3JhcHBlcigpIDogbmlsOworICAg
IH0KKyNlbmRpZgorCisgICAgV2ViUGFnZSogcGFnZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LmZvY3VzZWRXZWJQYWdlKCk7CisgICAgaWYgKCFwYWdlIHx8ICFwYWdlLT5hY2Nlc3NpYmlsaXR5
UmVtb3RlT2JqZWN0KCkpCisgICAgICAgIHJldHVybiBuaWw7CisgICAgcmV0dXJuIFtwYWdlLT5h
Y2Nlc3NpYmlsaXR5UmVtb3RlT2JqZWN0KCkgYWNjZXNzaWJpbGl0eUZvY3VzZWRVSUVsZW1lbnRd
OwogfQogCiAjaWYgVVNFKEFQUEtJVCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>466631</attachid>
            <date>2023-06-07 17:27:31 -0700</date>
            <delta_ts>2023-06-08 06:07:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-256761-20230607202730.patch</filename>
            <type>text/plain</type>
            <size>15414</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">RnJvbSBkNGY0YTY3OWUwZGEyYzE0NDM1ZDU3NDYxNTE5NGViOTVlNGQ5ODA5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXMgR29uemFsZXogPGFuZHJlc2dfMjJAYXBwbGUuY29t
PgpEYXRlOiBTYXQsIDEzIE1heSAyMDIzIDEzOjI4OjU1IC0wNDAwClN1YmplY3Q6IFtQQVRDSF0g
QVg6IEF2b2lkIGhpdHRpbmcgdGhlIG1haW4gdGhyZWFkIGluCiBOU0FwcGxpY2F0aW9uQWNjZXNz
aWJpbGl0eUZvY3VzZWRVSUVsZW1lbnQgaW4gaXNvbGF0ZWQgdHJlZSBtb2RlLgogaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1Njc2MSA8cmRhcjovL3Byb2JsZW0vMTA5
MzA3MjAwPgoKUmV2aWV3ZWQgYnkgQ2hyaXMgRmxlaXphY2ggYW5kIFR5bGVyIFdpbGNvY2suCgpO
U0FwcGxpY2F0aW9uQWNjZXNzaWJpbGl0eUZvY3VzZWRVSUVsZW1lbnQgaXMgZnJlcXVlbnRseSBj
YWxsZWQgYnkgQVQgdG8gdHJhY2sgdGhlIGZvY3VzIG9iamVjdC4gQ3VycmVudGx5IGl0IGhhcyB0
byBoaXQgdGhlIG1haW4gdGhyZWFkIGV2ZXJ5IHRpbWUuClRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBi
eSBhZGRpbmcgYSBtZWNoYW5pc20gdG8ga2VlcCB0cmFjayBvZiB0aGUgZm9jdXNlZCBBWCB0cmVl
IGJhc2VkIG9uIHRoZSBhc3NvY2lhdGVkIFBhZ2UgQWN0aXZpdHlTdGF0ZS4gVGhlbiwgdGhlIGZv
Y3VzZWQgb2JqZWN0IGlzIHJldHJpZXZlZCBmcm9tIHRoZSBmb2N1c2VkIHRyZWUgb2J0YWluZWQg
dmlhIEFYVHJlZVN0b3JlOjpmaW5kVHJlZS4KSW4gYWRkaXRpb24sIHRoaXMgcGF0Y2ggYWxzbyBj
YWNoZXMgdGhlIEhlbHBUZXh0IGZvciBTY3JvbGxWaWV3cyBhbmQgV2ViQXJlYXMgZWFnZXJseSBz
aW5jZSB0aGF0J3MgYW5vdGhlciBwcm9wZXJ0eSByZXF1ZXN0ZWQgYnkgQVQgd2hpbGUgdGhlIGlz
b2xhdGVkIHRyZWUgaXMgYmVpbmcgYnVpbHQuCi0tLQogLi4uL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmNwcCAgIHwgMjEgKysrKysrKy0KIFNvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQVhPYmplY3RDYWNoZS5oICB8ICA2ICsrKwogU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWFRyZWVTdG9yZS5oICAgIHwgIDUgKysKIC4uLi9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZE9iamVjdC5jcHAgICAgICAgICB8ICAxICsKIC4uLi9pc29sYXRlZHRyZWUvQVhJc29sYXRl
ZFRyZWUuY3BwICAgICAgICAgICB8IDQ4ICsrKysrKysrKysrKysrKysrKysKIC4uLi9pc29sYXRl
ZHRyZWUvQVhJc29sYXRlZFRyZWUuaCAgICAgICAgICAgICB8ICA3ICsrLQogU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmNwcCAgICAgICAgICAgICAgICAgIHwgIDggKysrLQogU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgIHwgIDUgKy0KIC4uLi9XZWJQcm9jZXNz
L2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbSAgICAgICB8IDQyICsrKysrKysrKysrKystLS0KIDkg
ZmlsZXMgY2hhbmdlZCwgMTI5IGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4IGFkNjYz
ODhhODM0NS4uNjZiMWQ4MjQxYjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQVhPYmplY3RDYWNoZS5jcHAKQEAgLTI1Niw2ICsyNTYsOCBAQCBBWE9iamVjdENhY2hlOjpB
WE9iamVjdENhY2hlKERvY3VtZW50JiBkb2N1bWVudCkKICAgICAgICAgbG9hZGluZ1Byb2dyZXNz
ID0gMTsKICAgICBtX2xvYWRpbmdQcm9ncmVzcyA9IGxvYWRpbmdQcm9ncmVzczsKIAorICAgIGlm
IChtX3BhZ2VJRCkKKyAgICAgICAgbV9wYWdlQWN0aXZpdHlTdGF0ZSA9IG1fZG9jdW1lbnQucGFn
ZSgpLT5hY3Rpdml0eVN0YXRlKCk7CiAgICAgQVhUcmVlU3RvcmU6OmFkZChtX2lkLCBXZWFrUHRy
IHsgdGhpcyB9KTsKIH0KIApAQCAtMjcxLDggKzI3MywxMSBAQCBBWE9iamVjdENhY2hlOjp+QVhP
YmplY3RDYWNoZSgpCiAgICAgICAgIG9iamVjdC0+ZGV0YWNoKEFjY2Vzc2liaWxpdHlEZXRhY2ht
ZW50VHlwZTo6Q2FjaGVEZXN0cm95ZWQpOwogCiAjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNP
TEFURURfVFJFRSkKLSAgICBpZiAobV9wYWdlSUQpCisgICAgaWYgKG1fcGFnZUlEKSB7CisgICAg
ICAgIGlmIChhdXRvIHRyZWUgPSBBWElzb2xhdGVkVHJlZTo6dHJlZUZvclBhZ2VJRCgqbV9wYWdl
SUQpKQorICAgICAgICAgICAgdHJlZS0+c2V0UGFnZUFjdGl2aXR5U3RhdGUoeyB9KTsKICAgICAg
ICAgQVhJc29sYXRlZFRyZWU6OnJlbW92ZVRyZWVGb3JQYWdlSUQoKm1fcGFnZUlEKTsKKyAgICB9
CiAjZW5kaWYKIAogICAgIEFYVHJlZVN0b3JlOjpyZW1vdmUobV9pZCk7CkBAIC0xNDQ3LDYgKzE0
NTIsMTcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVSb3dDb3VudENoYW5nZWQoQWNjZXNz
aWJpbGl0eU9iamVjdCogYXhPYmplY3QsIERvY3VtZW4KICAgICBwb3N0Tm90aWZpY2F0aW9uKGF4
T2JqZWN0LCBkb2N1bWVudCwgQVhSb3dDb3VudENoYW5nZWQpOwogfQogCit2b2lkIEFYT2JqZWN0
Q2FjaGU6Om9uUGFnZUFjdGl2aXR5U3RhdGVDaGFuZ2UoT3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU+
IG5ld1N0YXRlKQoreworICAgIEFTU0VSVChtX3BhZ2VJRCk7CisKKyAgICBtX3BhZ2VBY3Rpdml0
eVN0YXRlID0gbmV3U3RhdGU7CisjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJF
RSkKKyAgICBpZiAoYXV0byB0cmVlID0gQVhJc29sYXRlZFRyZWU6OnRyZWVGb3JQYWdlSUQobV9w
YWdlSUQpKQorICAgICAgICB0cmVlLT5zZXRQYWdlQWN0aXZpdHlTdGF0ZShuZXdTdGF0ZSk7Cisj
ZW5kaWYKK30KKwogdm9pZCBBWE9iamVjdENhY2hlOjpvbkZvY3VzQ2hhbmdlKE5vZGUqIG9sZE5v
ZGUsIE5vZGUqIG5ld05vZGUpCiB7CiAgICAgaWYgKG5vZGVBbmRSZW5kZXJlckFyZVZhbGlkKG5l
d05vZGUpICYmIHJlbmRlcmVyTmVlZHNEZWZlcnJlZFVwZGF0ZSgqbmV3Tm9kZS0+cmVuZGVyZXIo
KSkpIHsKQEAgLTE1MTEsOSArMTUyNywxMCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZUZv
Y3VzZWRVSUVsZW1lbnRDaGFuZ2VkKE5vZGUqIG9sZE5vZGUsIE5vZGUqIG5ld05vZGUsCiAgICAg
aWYgKHVwZGF0ZU1vZGFsID09IFVwZGF0ZU1vZGFsOjpZZXMpCiAgICAgICAgIHVwZGF0ZUN1cnJl
bnRNb2RhbE5vZGUoKTsKICAgICBoYW5kbGVNZW51SXRlbVNlbGVjdGVkKG5ld05vZGUpOworCiAg
ICAgcGxhdGZvcm1IYW5kbGVGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZChvbGROb2RlLCBuZXdOb2Rl
KTsKIH0KLSAgICAKKwogdm9pZCBBWE9iamVjdENhY2hlOjpzZWxlY3RlZENoaWxkcmVuQ2hhbmdl
ZChOb2RlKiBub2RlKQogewogICAgIHBvc3ROb3RpZmljYXRpb24obm9kZSwgQVhTZWxlY3RlZENo
aWxkcmVuQ2hhbmdlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FYT2JqZWN0Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RD
YWNoZS5oCmluZGV4IGZhYjAzN2EyMTg2ZC4uZjg0NmEzM2M1Y2I0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaApAQCAtMTc4LDYgKzE3OCwxMCBAQCBw
cml2YXRlOgogICAgIHZvaWQgYXR0YWNoV3JhcHBlcihBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7CiAK
IHB1YmxpYzoKKyAgICB2b2lkIG9uUGFnZUFjdGl2aXR5U3RhdGVDaGFuZ2UoT3B0aW9uU2V0PEFj
dGl2aXR5U3RhdGU+KTsKKyAgICB2b2lkIHNldFBhZ2VBY3Rpdml0eVN0YXRlKE9wdGlvblNldDxB
Y3Rpdml0eVN0YXRlPiBzdGF0ZSkgeyBtX3BhZ2VBY3Rpdml0eVN0YXRlID0gc3RhdGU7IH0KKyAg
ICBPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZT4gcGFnZUFjdGl2aXR5U3RhdGUoKSBjb25zdCB7IHJl
dHVybiBtX3BhZ2VBY3Rpdml0eVN0YXRlOyB9CisKICAgICB2b2lkIGNoaWxkcmVuQ2hhbmdlZChO
b2RlKiwgTm9kZSogbmV3Q2hpbGQgPSBudWxscHRyKTsKICAgICB2b2lkIGNoaWxkcmVuQ2hhbmdl
ZChSZW5kZXJPYmplY3QqLCBSZW5kZXJPYmplY3QqIG5ld0NoaWxkID0gbnVsbHB0cik7CiAgICAg
dm9pZCBjaGlsZHJlbkNoYW5nZWQoQWNjZXNzaWJpbGl0eU9iamVjdCopOwpAQCAtNTg5LDYgKzU5
Myw3IEBAIHByaXZhdGU6CiAKICAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKICAgICBjb25zdCBz
dGQ6Om9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBtX3BhZ2VJRDsgLy8gY29uc3RhbnQgZm9yIG9i
amVjdCdzIGxpZmV0aW1lLgorICAgIE9wdGlvblNldDxBY3Rpdml0eVN0YXRlPiBtX3BhZ2VBY3Rp
dml0eVN0YXRlOwogICAgIEhhc2hNYXA8QVhJRCwgUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+
PiBtX29iamVjdHM7CiAgICAgSGFzaE1hcDxSZW5kZXJPYmplY3QqLCBBWElEPiBtX3JlbmRlck9i
amVjdE1hcHBpbmc7CiAgICAgSGFzaE1hcDxXaWRnZXQqLCBBWElEPiBtX3dpZGdldE9iamVjdE1h
cHBpbmc7CkBAIC03MTYsNiArNzIxLDcgQEAgaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6b25U
aXRsZUNoYW5nZShEb2N1bWVudCYpIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6b25W
YWxpZGl0eUNoYW5nZShFbGVtZW50JikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjp2
YWx1ZUNoYW5nZWQoRWxlbWVudCopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6b25G
b2N1c0NoYW5nZShOb2RlKiwgTm9kZSopIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6
b25QYWdlQWN0aXZpdHlTdGF0ZUNoYW5nZShPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZT4pIHsgfQog
aW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6b25Qb3BvdmVyVGFyZ2V0VG9nZ2xlKGNvbnN0IEhU
TUxGb3JtQ29udHJvbEVsZW1lbnQmKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om9u
U2Nyb2xsYmFyRnJhbWVSZWN0Q2hhbmdlKGNvbnN0IFNjcm9sbGJhciYpIHsgfQogaW5saW5lIHZv
aWQgQVhPYmplY3RDYWNoZTo6ZGVmZXJSZWNvbXB1dGVJc0lnbm9yZWRJZk5lZWRlZChFbGVtZW50
KikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYVHJlZVN0
b3JlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYVHJlZVN0b3JlLmgKaW5kZXgg
YmYwODk4ZTBhN2FiLi4wMDZmMGJjMzA5ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhUcmVlU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYVHJlZVN0b3JlLmgKQEAgLTI1LDYgKzI1LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5j
bHVkZSAiQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oIgorI2luY2x1ZGUgIkFjdGl2aXR5
U3RhdGUuaCIKICNpbmNsdWRlIDx2YXJpYW50PgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAj
aW5jbHVkZSA8d3RmL0xvY2suaD4KQEAgLTUyLDEwICs1MywxNCBAQCB1c2luZyBBWFRyZWVXZWFr
UHRyID0gc3RkOjp2YXJpYW50PFdlYWtQdHI8QVhPYmplY3RDYWNoZT4KICNlbmRpZgogPjsKIAor
QVhUcmVlUHRyIGF4VHJlZUZvcklEKEFYSUQpOworV0VCQ09SRV9FWFBPUlQgQVhUcmVlUHRyIGZp
bmRBWFRyZWUoRnVuY3Rpb248Ym9vbChBWFRyZWVQdHIpPiYmKTsKKwogdGVtcGxhdGU8dHlwZW5h
bWUgVD4KIGNsYXNzIEFYVHJlZVN0b3JlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBWFRy
ZWVTdG9yZSk7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CisgICAgZnJpZW5kIFdFQkNP
UkVfRVhQT1JUIEFYVHJlZVB0ciBmaW5kQVhUcmVlKEZ1bmN0aW9uPGJvb2woQVhUcmVlUHRyKT4m
Jik7CiBwdWJsaWM6CiAgICAgQVhJRCB0cmVlSUQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9CiAg
ICAgc3RhdGljIFdlYWtQdHI8QVhPYmplY3RDYWNoZT4gYXhPYmplY3RDYWNoZUZvcklEKEFYSUQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUv
QVhJc29sYXRlZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xh
dGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcAppbmRleCA2MDZiN2FmMzBlZTIuLjQ2NWQ0ZWJh
MTE1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRy
ZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKQEAgLTMxMCw2ICszMTAsNyBAQCB2
b2lkIEFYSXNvbGF0ZWRPYmplY3Q6OmluaXRpYWxpemVQcm9wZXJ0aWVzKGNvbnN0IFJlZjxBY2Nl
c3NpYmlsaXR5T2JqZWN0PiYgYXhPYgogICAgICAgICAvLyBGb3IgdGhlIFNjcm9sbFZpZXcgYW5k
IFdlYkFyZWEgb2JqZWN0cywgY2FjaGUgdGhlIFRpdGxlQXR0cmlidXRlVmFsdWUgYW5kIERlc2Ny
aXB0aW9uQXR0cmlidXRlVmFsdWUgZWFnZXJseSB0byBhdm9pZCBoaXR0aW5nIHRoZSBtYWluIHRo
cmVhZCBpbiBnZXRPclJldHJpZXZlUHJvcGVydHlWYWx1ZSBkdXJpbmcgdGhlIGNvbnN0cnVjdGlv
biBvZiB0aGUgaXNvbGF0ZWQgdHJlZS4KICAgICAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5h
bWU6OlRpdGxlQXR0cmlidXRlVmFsdWUsIG9iamVjdC50aXRsZUF0dHJpYnV0ZVZhbHVlKCkuaXNv
bGF0ZWRDb3B5KCkpOwogICAgICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6RGVzY3Jp
cHRpb25BdHRyaWJ1dGVWYWx1ZSwgb2JqZWN0LmRlc2NyaXB0aW9uQXR0cmlidXRlVmFsdWUoKS5p
c29sYXRlZENvcHkoKSk7CisgICAgICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpIZWxw
VGV4dCwgb2JqZWN0LmhlbHBUZXh0QXR0cmlidXRlVmFsdWUoKS5pc29sYXRlZENvcHkoKSk7CiAg
ICAgfQogCiAgICAgaWYgKGlzUm9vdCA9PSBJc1Jvb3Q6OlllcykgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRy
ZWUuY3BwCmluZGV4IGRhNWMzMDJiNmFhNi4uYmM4NTk1MmNiMmNhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRl
ZFRyZWUuY3BwCkBAIC00Niw2ICs0Niw3IEBAIEhhc2hNYXA8UGFnZUlkZW50aWZpZXIsIFJlZjxB
WElzb2xhdGVkVHJlZT4+JiBBWElzb2xhdGVkVHJlZTo6dHJlZVBhZ2VDYWNoZSgpCiBBWElzb2xh
dGVkVHJlZTo6QVhJc29sYXRlZFRyZWUoQVhPYmplY3RDYWNoZSYgYXhPYmplY3RDYWNoZSkKICAg
ICA6IEFYVHJlZVN0b3JlKGF4T2JqZWN0Q2FjaGUudHJlZUlEKCkpCiAgICAgLCBtX2F4T2JqZWN0
Q2FjaGUoJmF4T2JqZWN0Q2FjaGUpCisgICAgLCBtX3BhZ2VBY3Rpdml0eVN0YXRlKGF4T2JqZWN0
Q2FjaGUucGFnZUFjdGl2aXR5U3RhdGUoKSkKICAgICAsIG1fZ2VvbWV0cnlNYW5hZ2VyKGF4T2Jq
ZWN0Q2FjaGUubV9nZW9tZXRyeU1hbmFnZXIucHRyKCkpCiAgICAgLCBtX3VzZWRPbkFYVGhyZWFk
KGF4T2JqZWN0Q2FjaGUudXNlZE9uQVhUaHJlYWQoKSkKIHsKQEAgLTcxOSw2ICs3MjAsMjYgQEAg
dm9pZCBBWElzb2xhdGVkVHJlZTo6dXBkYXRlQ2hpbGRyZW4oQWNjZXNzaWJpbGl0eU9iamVjdCYg
YXhPYmplY3QsIFJlc29sdmVOb2RlQ2gKICAgICB1cGRhdGVOb2RlQW5kRGVwZW5kZW50UHJvcGVy
dGllcygqYXhBbmNlc3Rvcik7CiB9CiAKK3ZvaWQgQVhJc29sYXRlZFRyZWU6OnNldFBhZ2VBY3Rp
dml0eVN0YXRlKE9wdGlvblNldDxBY3Rpdml0eVN0YXRlPiBzdGF0ZSkKK3sKKyAgICBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpOworCisgICAgTG9ja2VyIGxvY2tlciB7IHNfc3RvcmVMb2NrIH07Cisg
ICAgbV9wYWdlQWN0aXZpdHlTdGF0ZSA9IHN0YXRlOworfQorCitPcHRpb25TZXQ8QWN0aXZpdHlT
dGF0ZT4gQVhJc29sYXRlZFRyZWU6OnBhZ2VBY3Rpdml0eVN0YXRlKCkgY29uc3QKK3sKKyAgICBM
b2NrZXIgbG9ja2VyIHsgc19zdG9yZUxvY2sgfTsKKyAgICByZXR1cm4gbV9wYWdlQWN0aXZpdHlT
dGF0ZTsKK30KKworT3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU+IEFYSXNvbGF0ZWRUcmVlOjpsb2Nr
ZWRQYWdlQWN0aXZpdHlTdGF0ZSgpIGNvbnN0Cit7CisgICAgQVNTRVJUKHNfc3RvcmVMb2NrLmlz
TG9ja2VkKCkpOworICAgIHJldHVybiBtX3BhZ2VBY3Rpdml0eVN0YXRlOworfQorCiBSZWZQdHI8
QVhJc29sYXRlZE9iamVjdD4gQVhJc29sYXRlZFRyZWU6OmZvY3VzZWROb2RlKCkKIHsKICAgICBB
WFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6Zm9jdXNlZE5vZGUiX3MpOwpAQCAtOTY2LDYgKzk4Nywz
MyBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjphcHBseVBlbmRpbmdDaGFuZ2VzKCkKICAgICBtX3Bl
bmRpbmdQcm9wZXJ0eUNoYW5nZXMuY2xlYXIoKTsKIH0KIAorQVhUcmVlUHRyIGZpbmRBWFRyZWUo
RnVuY3Rpb248Ym9vbChBWFRyZWVQdHIpPiYmIG1hdGNoKQoreworICAgIGlmIChpc01haW5UaHJl
YWQoKSkgeworICAgICAgICBmb3IgKFdlYWtQdHIgdHJlZSA6IEFYVHJlZVN0b3JlPEFYT2JqZWN0
Q2FjaGU+OjpsaXZlVHJlZU1hcCgpLnZhbHVlcygpKSB7CisgICAgICAgICAgICBpZiAoIXRyZWUp
CisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgIGlmIChtYXRjaCh0cmVl
KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJlZTsKKyAgICAgICAgfQorICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKyAgICB9CisKKyNpZiBFTkFCTEUoQUNDRVNTSUJJTElUWV9JU09MQVRFRF9U
UkVFKQorICAgIExvY2tlciBsb2NrZXIgeyBBWFRyZWVTdG9yZTxBWElzb2xhdGVkVHJlZT46OnNf
c3RvcmVMb2NrIH07CisgICAgZm9yIChhdXRvIGl0ID0gQVhUcmVlU3RvcmU8QVhJc29sYXRlZFRy
ZWU+Ojppc29sYXRlZFRyZWVNYXAoKS5iZWdpbigpOyBpdCAhPSBBWFRyZWVTdG9yZTxBWElzb2xh
dGVkVHJlZT46Omlzb2xhdGVkVHJlZU1hcCgpLmVuZCgpOyArK2l0KSB7CisgICAgICAgIFJlZlB0
ciB0cmVlID0gaXQtPnZhbHVlLmdldCgpOworICAgICAgICBpZiAoIXRyZWUpCisgICAgICAgICAg
ICBjb250aW51ZTsKKworICAgICAgICBpZiAobWF0Y2godHJlZSkpCisgICAgICAgICAgICByZXR1
cm4gdHJlZTsKKyAgICB9CisgICAgcmV0dXJuIG51bGxwdHI7CisjZW5kaWYKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFU
RURfVFJFRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0
ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lz
b2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oCmluZGV4IGY5ZmY3MzEyZDhlMi4uYmVlNDkyMTc5
NTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJl
ZS9BWElzb2xhdGVkVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNv
bGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgKQEAgLTI2OCw3ICsyNjgsNyBAQCBwdWJsaWM6CiAg
ICAgY29uc3RleHByIEFYR2VvbWV0cnlNYW5hZ2VyKiBnZW9tZXRyeU1hbmFnZXIoKSBjb25zdCB7
IHJldHVybiBtX2dlb21ldHJ5TWFuYWdlci5nZXQoKTsgfQogCiAgICAgUmVmUHRyPEFYSXNvbGF0
ZWRPYmplY3Q+IHJvb3ROb2RlKCk7Ci0gICAgUmVmUHRyPEFYSXNvbGF0ZWRPYmplY3Q+IGZvY3Vz
ZWROb2RlKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgUmVmUHRyPEFYSXNvbGF0ZWRPYmplY3Q+IGZv
Y3VzZWROb2RlKCk7CiAKICAgICBSZWZQdHI8QVhJc29sYXRlZE9iamVjdD4gb2JqZWN0Rm9ySUQo
Y29uc3QgQVhJRCkgY29uc3Q7CiAgICAgVmVjdG9yPFJlZlB0cjxBWENvcmVPYmplY3Q+PiBvYmpl
Y3RzRm9ySURzKGNvbnN0IFZlY3RvcjxBWElEPiYpOwpAQCAtMzE2LDYgKzMxNiwxMCBAQCBwdWJs
aWM6CiAgICAgdm9pZCBhcHBseVBlbmRpbmdDaGFuZ2VzKCk7CiAKICAgICBBWElEIHRyZWVJRCgp
IGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KKyAgICB2b2lkIHNldFBhZ2VBY3Rpdml0eVN0YXRlKE9w
dGlvblNldDxBY3Rpdml0eVN0YXRlPik7CisgICAgT3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU+IHBh
Z2VBY3Rpdml0eVN0YXRlKCkgY29uc3Q7CisgICAgLy8gVXNlIG9ubHkgaWYgdGhlIHNfc3RvcmVM
b2NrIGlzIGFscmVhZHkgaGVsZCBsaWtlIGluIGZpbmRBWFRyZWUuCisgICAgV0VCQ09SRV9FWFBP
UlQgT3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU+IGxvY2tlZFBhZ2VBY3Rpdml0eVN0YXRlKCkgY29u
c3Q7CiAKIHByaXZhdGU6CiAgICAgQVhJc29sYXRlZFRyZWUoQVhPYmplY3RDYWNoZSYpOwpAQCAt
MzQ0LDYgKzM0OCw3IEBAIHByaXZhdGU6CiAKICAgICB1bnNpZ25lZCBtX21heFRyZWVEZXB0aCB7
IDAgfTsKICAgICBXZWFrUHRyPEFYT2JqZWN0Q2FjaGU+IG1fYXhPYmplY3RDYWNoZTsKKyAgICBP
cHRpb25TZXQ8QWN0aXZpdHlTdGF0ZT4gbV9wYWdlQWN0aXZpdHlTdGF0ZTsKICAgICBSZWZQdHI8
QVhHZW9tZXRyeU1hbmFnZXI+IG1fZ2VvbWV0cnlNYW5hZ2VyOwogICAgIGJvb2wgbV91c2VkT25B
WFRocmVhZCB7IHRydWUgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggZDg0ZjI3MTg5NDM0Li42
Nzc1NTU4OTQ2YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMjY3OSw4ICsyNjc5LDkgQEAgdm9p
ZCBQYWdlOjpzZXRBY3Rpdml0eVN0YXRlKE9wdGlvblNldDxBY3Rpdml0eVN0YXRlPiBhY3Rpdml0
eVN0YXRlKQogICAgICAgICBzZXRJc0luV2luZG93SW50ZXJuYWwoYWN0aXZpdHlTdGF0ZS5jb250
YWlucyhBY3Rpdml0eVN0YXRlOjpJc0luV2luZG93KSk7CiAgICAgaWYgKGNoYW5nZWQgJiBBY3Rp
dml0eVN0YXRlOjpJc1Zpc3VhbGx5SWRsZSkKICAgICAgICAgc2V0SXNWaXN1YWxseUlkbGVJbnRl
cm5hbChhY3Rpdml0eVN0YXRlLmNvbnRhaW5zKEFjdGl2aXR5U3RhdGU6OklzVmlzdWFsbHlJZGxl
KSk7CisKKyAgICBXZWFrUHRyIGxvY2FsTWFpbkZyYW1lID0gZHluYW1pY0Rvd25jYXN0PExvY2Fs
RnJhbWU+KG1fbWFpbkZyYW1lLmdldCgpKTsKICAgICBpZiAoY2hhbmdlZCAmIEFjdGl2aXR5U3Rh
dGU6OldpbmRvd0lzQWN0aXZlKSB7Ci0gICAgICAgIGF1dG8qIGxvY2FsTWFpbkZyYW1lID0gZHlu
YW1pY0Rvd25jYXN0PExvY2FsRnJhbWU+KG1fbWFpbkZyYW1lLmdldCgpKTsKICAgICAgICAgaWYg
KGF1dG8qIHZpZXcgPSBsb2NhbE1haW5GcmFtZSA/IGxvY2FsTWFpbkZyYW1lLT52aWV3KCkgOiBu
dWxscHRyKQogICAgICAgICAgICAgdmlldy0+dXBkYXRlVGlsZWRCYWNraW5nQWRhcHRpdmVTaXpp
bmcoKTsKICAgICB9CkBAIC0yNjk2LDYgKzI2OTcsMTEgQEAgdm9pZCBQYWdlOjpzZXRBY3Rpdml0
eVN0YXRlKE9wdGlvblNldDxBY3Rpdml0eVN0YXRlPiBhY3Rpdml0eVN0YXRlKQogICAgICAgICBz
dG9wS2V5Ym9hcmRTY3JvbGxBbmltYXRpb24oKTsKICAgICB9CiAKKyAgICBpZiAoYXV0byogZG9j
dW1lbnQgPSBsb2NhbE1haW5GcmFtZSA/IGxvY2FsTWFpbkZyYW1lLT5kb2N1bWVudCgpIDogbnVs
bHB0cikgeworICAgICAgICBpZiAoYXV0byogY2FjaGUgPSBkb2N1bWVudC0+ZXhpc3RpbmdBWE9i
amVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+b25QYWdlQWN0aXZpdHlTdGF0ZUNoYW5n
ZShtX2FjdGl2aXR5U3RhdGUpOworICAgIH0KKwogICAgIGlmIChtX3BlcmZvcm1hbmNlTW9uaXRv
cikKICAgICAgICAgbV9wZXJmb3JtYW5jZU1vbml0b3ItPmFjdGl2aXR5U3RhdGVDaGFuZ2VkKG9s
ZEFjdGl2aXR5U3RhdGUsIGFjdGl2aXR5U3RhdGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA3ODA1ODYwMmYzYmYuLmZjNzZlNDIyNjYx
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAg
LTU3MTksMTAgKzU3MTksNyBAQCBib29sIFdlYlBhZ2U6OndpbmRvd0lzRm9jdXNlZCgpIGNvbnN0
CiAKIGJvb2wgV2ViUGFnZTo6d2luZG93QW5kV2ViUGFnZUFyZUZvY3VzZWQoKSBjb25zdAogewot
ICAgIGlmICghaXNWaXNpYmxlKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVy
biBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLmlzRm9jdXNlZCgpICYmIG1fcGFnZS0+Zm9jdXND
b250cm9sbGVyKCkuaXNBY3RpdmUoKTsKKyAgICByZXR1cm4gaXNWaXNpYmxlKCkgJiYgbV9wYWdl
LT5mb2N1c0NvbnRyb2xsZXIoKS5pc0ZvY3VzZWQoKSAmJiBtX3BhZ2UtPmZvY3VzQ29udHJvbGxl
cigpLmlzQWN0aXZlKCk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQppbmRleCBj
NTJlZjgzYWQ2OTUuLjg3MzVmNTllMGQxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCkBAIC01OCw2ICs1OCwxMSBAQAogI2ltcG9y
dCA8SmF2YVNjcmlwdENvcmUvQ29uZmlnRmlsZS5oPgogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUv
T3B0aW9ucy5oPgogI2ltcG9ydCA8V2ViQ29yZS9BVkFzc2V0TUlNRVR5cGVDYWNoZS5oPgorCisj
aWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkKKyNpbXBvcnQgPFdlYkNvcmUv
QVhJc29sYXRlZE9iamVjdC5oPgorI2ltcG9ydCA8V2ViQ29yZS9BWElzb2xhdGVkVHJlZS5oPgor
I2VuZGlmCiAjaW1wb3J0IDxXZWJDb3JlL0FYT2JqZWN0Q2FjaGUuaD4KICNpbXBvcnQgPFdlYkNv
cmUvQ1BVTW9uaXRvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9EZXByZWNhdGVkR2xvYmFsU2V0dGlu
Z3MuaD4KQEAgLTIwNCwxMiArMjA5LDM3IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1TZXRD
YWNoZU1vZGVsKENhY2hlTW9kZWwpCiAKIGlkIFdlYlByb2Nlc3M6OmFjY2Vzc2liaWxpdHlGb2N1
c2VkVUlFbGVtZW50KCkKIHsKLSAgICByZXR1cm4gQWNjZXNzaWJpbGl0eTo6cmV0cmlldmVBdXRv
cmVsZWFzZWRWYWx1ZUZyb21NYWluVGhyZWFkPGlkPihbXSAoKSAtPiBSZXRhaW5QdHI8aWQ+IHsK
LSAgICAgICAgV2ViUGFnZSogcGFnZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmZvY3VzZWRX
ZWJQYWdlKCk7Ci0gICAgICAgIGlmICghcGFnZSB8fCAhcGFnZS0+YWNjZXNzaWJpbGl0eVJlbW90
ZU9iamVjdCgpKQotICAgICAgICAgICAgcmV0dXJuIG5pbDsKLSAgICAgICAgcmV0dXJuIFtwYWdl
LT5hY2Nlc3NpYmlsaXR5UmVtb3RlT2JqZWN0KCkgYWNjZXNzaWJpbGl0eUZvY3VzZWRVSUVsZW1l
bnRdOwotICAgIH0pOworI2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpCisg
ICAgaWYgKCFpc01haW5SdW5Mb29wKCkpIHsKKyAgICAgICAgLy8gQXZvaWQgaGl0dGluZyB0aGUg
bWFpbiB0aHJlYWQgYnkgZ2V0dGluZyB0aGUgZm9jdXNlZCBvYmplY3QgZnJvbSB0aGUgZm9jdXNl
ZCBpc29sYXRlZCB0cmVlLgorICAgICAgICBhdXRvIHRyZWUgPSBmaW5kQVhUcmVlKFtdIChBWFRy
ZWVQdHIgdHJlZSkgLT4gYm9vbCB7CisgICAgICAgICAgICBPcHRpb25TZXQ8QWN0aXZpdHlTdGF0
ZT4gc3RhdGU7CisgICAgICAgICAgICBzd2l0Y2hPbih0cmVlLAorICAgICAgICAgICAgICAgIFsm
c3RhdGVdIChSZWZQdHI8QVhJc29sYXRlZFRyZWU+JiB0eXBlZFRyZWUpIHsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKHR5cGVkVHJlZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0g
dHlwZWRUcmVlLT5sb2NrZWRQYWdlQWN0aXZpdHlTdGF0ZSgpOworICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAsIFtdIChhdXRvJikgeyB9CisgICAgICAgICAgICApOworICAgICAg
ICAgICAgcmV0dXJuIHN0YXRlLmNvbnRhaW5zQWxsKHsgQWN0aXZpdHlTdGF0ZTo6SXNWaXNpYmxl
LCBBY3Rpdml0eVN0YXRlOjpJc0ZvY3VzZWQsIEFjdGl2aXR5U3RhdGU6OldpbmRvd0lzQWN0aXZl
IH0pOworICAgICAgICB9KTsKKworICAgICAgICBSZWZQdHIgb2JqZWN0ID0gc3dpdGNoT24odHJl
ZSwKKyAgICAgICAgICAgIFtdIChSZWZQdHI8QVhJc29sYXRlZFRyZWU+JiB0eXBlZFRyZWUpIC0+
IFJlZlB0cjxBWElzb2xhdGVkT2JqZWN0PiB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVk
VHJlZSA/IHR5cGVkVHJlZS0+Zm9jdXNlZE5vZGUoKSA6IG51bGxwdHI7CisgICAgICAgICAgICB9
CisgICAgICAgICAgICAsIFtdIChhdXRvJikgLT4gUmVmUHRyPEFYSXNvbGF0ZWRPYmplY3Q+IHsK
KyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
KTsKKyAgICAgICAgcmV0dXJuIG9iamVjdCA/IG9iamVjdC0+d3JhcHBlcigpIDogbmlsOworICAg
IH0KKyNlbmRpZgorCisgICAgV2ViUGFnZSogcGFnZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LmZvY3VzZWRXZWJQYWdlKCk7CisgICAgaWYgKCFwYWdlIHx8ICFwYWdlLT5hY2Nlc3NpYmlsaXR5
UmVtb3RlT2JqZWN0KCkpCisgICAgICAgIHJldHVybiBuaWw7CisgICAgcmV0dXJuIFtwYWdlLT5h
Y2Nlc3NpYmlsaXR5UmVtb3RlT2JqZWN0KCkgYWNjZXNzaWJpbGl0eUZvY3VzZWRVSUVsZW1lbnRd
OwogfQogCiAjaWYgVVNFKEFQUEtJVCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>466635</attachid>
            <date>2023-06-08 06:07:43 -0700</date>
            <delta_ts>2023-06-08 07:33:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-256761-20230608090742.patch</filename>
            <type>text/plain</type>
            <size>15310</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">RnJvbSBmNjMyMDcwNTUwMzg3ZmUyMTZmMWExMzk0N2E2OWQyMjMzZmEwZDZhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXMgR29uemFsZXogPGFuZHJlc2dfMjJAYXBwbGUuY29t
PgpEYXRlOiBTYXQsIDEzIE1heSAyMDIzIDEzOjI4OjU1IC0wNDAwClN1YmplY3Q6IFtQQVRDSF0g
QVg6IEF2b2lkIGhpdHRpbmcgdGhlIG1haW4gdGhyZWFkIGluCiBOU0FwcGxpY2F0aW9uQWNjZXNz
aWJpbGl0eUZvY3VzZWRVSUVsZW1lbnQgaW4gaXNvbGF0ZWQgdHJlZSBtb2RlLgogaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1Njc2MSA8cmRhcjovL3Byb2JsZW0vMTA5
MzA3MjAwPgoKUmV2aWV3ZWQgYnkgQ2hyaXMgRmxlaXphY2ggYW5kIFR5bGVyIFdpbGNvY2suCgpO
U0FwcGxpY2F0aW9uQWNjZXNzaWJpbGl0eUZvY3VzZWRVSUVsZW1lbnQgaXMgZnJlcXVlbnRseSBj
YWxsZWQgYnkgQVQgdG8gdHJhY2sgdGhlIGZvY3VzIG9iamVjdC4gQ3VycmVudGx5IGl0IGhhcyB0
byBoaXQgdGhlIG1haW4gdGhyZWFkIGV2ZXJ5IHRpbWUuClRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBi
eSBhZGRpbmcgYSBtZWNoYW5pc20gdG8ga2VlcCB0cmFjayBvZiB0aGUgZm9jdXNlZCBBWCB0cmVl
IGJhc2VkIG9uIHRoZSBhc3NvY2lhdGVkIFBhZ2UgQWN0aXZpdHlTdGF0ZS4gVGhlbiwgdGhlIGZv
Y3VzZWQgb2JqZWN0IGlzIHJldHJpZXZlZCBmcm9tIHRoZSBmb2N1c2VkIHRyZWUgb2J0YWluZWQg
dmlhIEFYVHJlZVN0b3JlOjpmaW5kVHJlZS4KSW4gYWRkaXRpb24sIHRoaXMgcGF0Y2ggYWxzbyBj
YWNoZXMgdGhlIEhlbHBUZXh0IGZvciBTY3JvbGxWaWV3cyBhbmQgV2ViQXJlYXMgZWFnZXJseSBz
aW5jZSB0aGF0J3MgYW5vdGhlciBwcm9wZXJ0eSByZXF1ZXN0ZWQgYnkgQVQgd2hpbGUgdGhlIGlz
b2xhdGVkIHRyZWUgaXMgYmVpbmcgYnVpbHQuCi0tLQogLi4uL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmNwcCAgIHwgMjAgKysrKysrKy0KIFNvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQVhPYmplY3RDYWNoZS5oICB8ICA2ICsrKwogU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWFRyZWVTdG9yZS5oICAgIHwgIDUgKysKIC4uLi9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZE9iamVjdC5jcHAgICAgICAgICB8ICAxICsKIC4uLi9pc29sYXRlZHRyZWUvQVhJc29sYXRl
ZFRyZWUuY3BwICAgICAgICAgICB8IDQ4ICsrKysrKysrKysrKysrKysrKysKIC4uLi9pc29sYXRl
ZHRyZWUvQVhJc29sYXRlZFRyZWUuaCAgICAgICAgICAgICB8ICA3ICsrLQogU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmNwcCAgICAgICAgICAgICAgICAgIHwgIDggKysrLQogU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgIHwgIDUgKy0KIC4uLi9XZWJQcm9jZXNz
L2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbSAgICAgICB8IDQyICsrKysrKysrKysrKystLS0KIDkg
ZmlsZXMgY2hhbmdlZCwgMTI4IGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4IDBhYWE3
MDBlMzE1My4uYmU4ZjczMWI3YzY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQVhPYmplY3RDYWNoZS5jcHAKQEAgLTI1Niw2ICsyNTYsOCBAQCBBWE9iamVjdENhY2hlOjpB
WE9iamVjdENhY2hlKERvY3VtZW50JiBkb2N1bWVudCkKICAgICAgICAgbG9hZGluZ1Byb2dyZXNz
ID0gMTsKICAgICBtX2xvYWRpbmdQcm9ncmVzcyA9IGxvYWRpbmdQcm9ncmVzczsKIAorICAgIGlm
IChtX3BhZ2VJRCkKKyAgICAgICAgbV9wYWdlQWN0aXZpdHlTdGF0ZSA9IG1fZG9jdW1lbnQucGFn
ZSgpLT5hY3Rpdml0eVN0YXRlKCk7CiAgICAgQVhUcmVlU3RvcmU6OmFkZChtX2lkLCBXZWFrUHRy
IHsgdGhpcyB9KTsKIH0KIApAQCAtMjcxLDggKzI3MywxMSBAQCBBWE9iamVjdENhY2hlOjp+QVhP
YmplY3RDYWNoZSgpCiAgICAgICAgIG9iamVjdC0+ZGV0YWNoKEFjY2Vzc2liaWxpdHlEZXRhY2ht
ZW50VHlwZTo6Q2FjaGVEZXN0cm95ZWQpOwogCiAjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNP
TEFURURfVFJFRSkKLSAgICBpZiAobV9wYWdlSUQpCisgICAgaWYgKG1fcGFnZUlEKSB7CisgICAg
ICAgIGlmIChhdXRvIHRyZWUgPSBBWElzb2xhdGVkVHJlZTo6dHJlZUZvclBhZ2VJRCgqbV9wYWdl
SUQpKQorICAgICAgICAgICAgdHJlZS0+c2V0UGFnZUFjdGl2aXR5U3RhdGUoeyB9KTsKICAgICAg
ICAgQVhJc29sYXRlZFRyZWU6OnJlbW92ZVRyZWVGb3JQYWdlSUQoKm1fcGFnZUlEKTsKKyAgICB9
CiAjZW5kaWYKIAogICAgIEFYVHJlZVN0b3JlOjpyZW1vdmUobV9pZCk7CkBAIC0xNDQ1LDYgKzE0
NTAsMTcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVSb3dDb3VudENoYW5nZWQoQWNjZXNz
aWJpbGl0eU9iamVjdCogYXhPYmplY3QsIERvY3VtZW4KICAgICBwb3N0Tm90aWZpY2F0aW9uKGF4
T2JqZWN0LCBkb2N1bWVudCwgQVhSb3dDb3VudENoYW5nZWQpOwogfQogCit2b2lkIEFYT2JqZWN0
Q2FjaGU6Om9uUGFnZUFjdGl2aXR5U3RhdGVDaGFuZ2UoT3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU+
IG5ld1N0YXRlKQoreworICAgIEFTU0VSVChtX3BhZ2VJRCk7CisKKyAgICBtX3BhZ2VBY3Rpdml0
eVN0YXRlID0gbmV3U3RhdGU7CisjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJF
RSkKKyAgICBpZiAoYXV0byB0cmVlID0gQVhJc29sYXRlZFRyZWU6OnRyZWVGb3JQYWdlSUQobV9w
YWdlSUQpKQorICAgICAgICB0cmVlLT5zZXRQYWdlQWN0aXZpdHlTdGF0ZShuZXdTdGF0ZSk7Cisj
ZW5kaWYKK30KKwogdm9pZCBBWE9iamVjdENhY2hlOjpvbkZvY3VzQ2hhbmdlKE5vZGUqIG9sZE5v
ZGUsIE5vZGUqIG5ld05vZGUpCiB7CiAgICAgaWYgKG5vZGVBbmRSZW5kZXJlckFyZVZhbGlkKG5l
d05vZGUpICYmIHJlbmRlcmVyTmVlZHNEZWZlcnJlZFVwZGF0ZSgqbmV3Tm9kZS0+cmVuZGVyZXIo
KSkpIHsKQEAgLTE1MTAsNyArMTUyNiw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlRm9j
dXNlZFVJRWxlbWVudENoYW5nZWQoTm9kZSogb2xkTm9kZSwgTm9kZSogbmV3Tm9kZSwKICNlbmRp
ZgogICAgIHBsYXRmb3JtSGFuZGxlRm9jdXNlZFVJRWxlbWVudENoYW5nZWQob2xkTm9kZSwgbmV3
Tm9kZSk7CiB9Ci0gICAgCisKIHZvaWQgQVhPYmplY3RDYWNoZTo6c2VsZWN0ZWRDaGlsZHJlbkNo
YW5nZWQoTm9kZSogbm9kZSkKIHsKICAgICBwb3N0Tm90aWZpY2F0aW9uKG5vZGUsIEFYU2VsZWN0
ZWRDaGlsZHJlbkNoYW5nZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BWE9iamVjdENhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2Jq
ZWN0Q2FjaGUuaAppbmRleCA4YTk3OGNkNDVmMWIuLmE2ZGM1OGVmZGZhNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKQEAgLTE3OCw2ICsxNzgsMTAg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGF0dGFjaFdyYXBwZXIoQWNjZXNzaWJpbGl0eU9iamVjdCop
OwogCiBwdWJsaWM6CisgICAgdm9pZCBvblBhZ2VBY3Rpdml0eVN0YXRlQ2hhbmdlKE9wdGlvblNl
dDxBY3Rpdml0eVN0YXRlPik7CisgICAgdm9pZCBzZXRQYWdlQWN0aXZpdHlTdGF0ZShPcHRpb25T
ZXQ8QWN0aXZpdHlTdGF0ZT4gc3RhdGUpIHsgbV9wYWdlQWN0aXZpdHlTdGF0ZSA9IHN0YXRlOyB9
CisgICAgT3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU+IHBhZ2VBY3Rpdml0eVN0YXRlKCkgY29uc3Qg
eyByZXR1cm4gbV9wYWdlQWN0aXZpdHlTdGF0ZTsgfQorCiAgICAgdm9pZCBjaGlsZHJlbkNoYW5n
ZWQoTm9kZSosIE5vZGUqIG5ld0NoaWxkID0gbnVsbHB0cik7CiAgICAgdm9pZCBjaGlsZHJlbkNo
YW5nZWQoUmVuZGVyT2JqZWN0KiwgUmVuZGVyT2JqZWN0KiBuZXdDaGlsZCA9IG51bGxwdHIpOwog
ICAgIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKQEAgLTU5Miw2
ICs1OTYsNyBAQCBwcml2YXRlOgogCiAgICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7CiAgICAgY29u
c3Qgc3RkOjpvcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gbV9wYWdlSUQ7IC8vIGNvbnN0YW50IGZv
ciBvYmplY3QncyBsaWZldGltZS4KKyAgICBPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZT4gbV9wYWdl
QWN0aXZpdHlTdGF0ZTsKICAgICBIYXNoTWFwPEFYSUQsIFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2Jq
ZWN0Pj4gbV9vYmplY3RzOwogICAgIEhhc2hNYXA8UmVuZGVyT2JqZWN0KiwgQVhJRD4gbV9yZW5k
ZXJPYmplY3RNYXBwaW5nOwogICAgIEhhc2hNYXA8V2lkZ2V0KiwgQVhJRD4gbV93aWRnZXRPYmpl
Y3RNYXBwaW5nOwpAQCAtNzIwLDYgKzcyNSw3IEBAIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6
Om9uVmFsaWRpdHlDaGFuZ2UoRWxlbWVudCYpIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNo
ZTo6b25UZXh0Q29tcG9zaXRpb25DaGFuZ2UoTm9kZSYpIHsgfQogaW5saW5lIHZvaWQgQVhPYmpl
Y3RDYWNoZTo6dmFsdWVDaGFuZ2VkKEVsZW1lbnQqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0
Q2FjaGU6Om9uRm9jdXNDaGFuZ2UoTm9kZSosIE5vZGUqKSB7IH0KK2lubGluZSB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6Om9uUGFnZUFjdGl2aXR5U3RhdGVDaGFuZ2UoT3B0aW9uU2V0PEFjdGl2aXR5U3Rh
dGU+KSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om9uUG9wb3ZlclRhcmdldFRvZ2ds
ZShjb25zdCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50JikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVj
dENhY2hlOjpvblNjcm9sbGJhckZyYW1lUmVjdENoYW5nZShjb25zdCBTY3JvbGxiYXImKSB7IH0K
IGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmRlZmVyUmVjb21wdXRlSXNJZ25vcmVkSWZOZWVk
ZWQoRWxlbWVudCopIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWFRyZWVTdG9yZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWFRyZWVTdG9y
ZS5oCmluZGV4IGJmMDg5OGUwYTdhYi4uMDA2ZjBiYzMwOTg2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYVHJlZVN0b3JlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BWFRyZWVTdG9yZS5oCkBAIC0yNSw2ICsyNSw3IEBACiAjcHJhZ21hIG9u
Y2UKIAogI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaCIKKyNpbmNsdWRl
ICJBY3Rpdml0eVN0YXRlLmgiCiAjaW5jbHVkZSA8dmFyaWFudD4KICNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CkBAIC01MiwxMCArNTMsMTQgQEAgdXNpbmcg
QVhUcmVlV2Vha1B0ciA9IHN0ZDo6dmFyaWFudDxXZWFrUHRyPEFYT2JqZWN0Q2FjaGU+CiAjZW5k
aWYKID47CiAKK0FYVHJlZVB0ciBheFRyZWVGb3JJRChBWElEKTsKK1dFQkNPUkVfRVhQT1JUIEFY
VHJlZVB0ciBmaW5kQVhUcmVlKEZ1bmN0aW9uPGJvb2woQVhUcmVlUHRyKT4mJik7CisKIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+CiBjbGFzcyBBWFRyZWVTdG9yZSB7CiAgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoQVhUcmVlU3RvcmUpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworICAgIGZy
aWVuZCBXRUJDT1JFX0VYUE9SVCBBWFRyZWVQdHIgZmluZEFYVHJlZShGdW5jdGlvbjxib29sKEFY
VHJlZVB0cik+JiYpOwogcHVibGljOgogICAgIEFYSUQgdHJlZUlEKCkgY29uc3QgeyByZXR1cm4g
bV9pZDsgfQogICAgIHN0YXRpYyBXZWFrUHRyPEFYT2JqZWN0Q2FjaGU+IGF4T2JqZWN0Q2FjaGVG
b3JJRChBWElEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNv
bGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKaW5kZXggNjA2YjdhZjMwZWUy
Li40NjVkNGViYTExNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
aXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCkBAIC0zMTAsNiAr
MzEwLDcgQEAgdm9pZCBBWElzb2xhdGVkT2JqZWN0Ojppbml0aWFsaXplUHJvcGVydGllcyhjb25z
dCBSZWY8QWNjZXNzaWJpbGl0eU9iamVjdD4mIGF4T2IKICAgICAgICAgLy8gRm9yIHRoZSBTY3Jv
bGxWaWV3IGFuZCBXZWJBcmVhIG9iamVjdHMsIGNhY2hlIHRoZSBUaXRsZUF0dHJpYnV0ZVZhbHVl
IGFuZCBEZXNjcmlwdGlvbkF0dHJpYnV0ZVZhbHVlIGVhZ2VybHkgdG8gYXZvaWQgaGl0dGluZyB0
aGUgbWFpbiB0aHJlYWQgaW4gZ2V0T3JSZXRyaWV2ZVByb3BlcnR5VmFsdWUgZHVyaW5nIHRoZSBj
b25zdHJ1Y3Rpb24gb2YgdGhlIGlzb2xhdGVkIHRyZWUuCiAgICAgICAgIHNldFByb3BlcnR5KEFY
UHJvcGVydHlOYW1lOjpUaXRsZUF0dHJpYnV0ZVZhbHVlLCBvYmplY3QudGl0bGVBdHRyaWJ1dGVW
YWx1ZSgpLmlzb2xhdGVkQ29weSgpKTsKICAgICAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5h
bWU6OkRlc2NyaXB0aW9uQXR0cmlidXRlVmFsdWUsIG9iamVjdC5kZXNjcmlwdGlvbkF0dHJpYnV0
ZVZhbHVlKCkuaXNvbGF0ZWRDb3B5KCkpOworICAgICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5
TmFtZTo6SGVscFRleHQsIG9iamVjdC5oZWxwVGV4dEF0dHJpYnV0ZVZhbHVlKCkuaXNvbGF0ZWRD
b3B5KCkpOwogICAgIH0KIAogICAgIGlmIChpc1Jvb3QgPT0gSXNSb290OjpZZXMpIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0
ZWRUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FY
SXNvbGF0ZWRUcmVlLmNwcAppbmRleCBkYTVjMzAyYjZhYTYuLmJjODU5NTJjYjJjYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRl
ZFRyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVl
L0FYSXNvbGF0ZWRUcmVlLmNwcApAQCAtNDYsNiArNDYsNyBAQCBIYXNoTWFwPFBhZ2VJZGVudGlm
aWVyLCBSZWY8QVhJc29sYXRlZFRyZWU+PiYgQVhJc29sYXRlZFRyZWU6OnRyZWVQYWdlQ2FjaGUo
KQogQVhJc29sYXRlZFRyZWU6OkFYSXNvbGF0ZWRUcmVlKEFYT2JqZWN0Q2FjaGUmIGF4T2JqZWN0
Q2FjaGUpCiAgICAgOiBBWFRyZWVTdG9yZShheE9iamVjdENhY2hlLnRyZWVJRCgpKQogICAgICwg
bV9heE9iamVjdENhY2hlKCZheE9iamVjdENhY2hlKQorICAgICwgbV9wYWdlQWN0aXZpdHlTdGF0
ZShheE9iamVjdENhY2hlLnBhZ2VBY3Rpdml0eVN0YXRlKCkpCiAgICAgLCBtX2dlb21ldHJ5TWFu
YWdlcihheE9iamVjdENhY2hlLm1fZ2VvbWV0cnlNYW5hZ2VyLnB0cigpKQogICAgICwgbV91c2Vk
T25BWFRocmVhZChheE9iamVjdENhY2hlLnVzZWRPbkFYVGhyZWFkKCkpCiB7CkBAIC03MTksNiAr
NzIwLDI2IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OnVwZGF0ZUNoaWxkcmVuKEFjY2Vzc2liaWxp
dHlPYmplY3QmIGF4T2JqZWN0LCBSZXNvbHZlTm9kZUNoCiAgICAgdXBkYXRlTm9kZUFuZERlcGVu
ZGVudFByb3BlcnRpZXMoKmF4QW5jZXN0b3IpOwogfQogCit2b2lkIEFYSXNvbGF0ZWRUcmVlOjpz
ZXRQYWdlQWN0aXZpdHlTdGF0ZShPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZT4gc3RhdGUpCit7Cisg
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIExvY2tlciBsb2NrZXIgeyBzX3N0b3Jl
TG9jayB9OworICAgIG1fcGFnZUFjdGl2aXR5U3RhdGUgPSBzdGF0ZTsKK30KKworT3B0aW9uU2V0
PEFjdGl2aXR5U3RhdGU+IEFYSXNvbGF0ZWRUcmVlOjpwYWdlQWN0aXZpdHlTdGF0ZSgpIGNvbnN0
Cit7CisgICAgTG9ja2VyIGxvY2tlciB7IHNfc3RvcmVMb2NrIH07CisgICAgcmV0dXJuIG1fcGFn
ZUFjdGl2aXR5U3RhdGU7Cit9CisKK09wdGlvblNldDxBY3Rpdml0eVN0YXRlPiBBWElzb2xhdGVk
VHJlZTo6bG9ja2VkUGFnZUFjdGl2aXR5U3RhdGUoKSBjb25zdAoreworICAgIEFTU0VSVChzX3N0
b3JlTG9jay5pc0xvY2tlZCgpKTsKKyAgICByZXR1cm4gbV9wYWdlQWN0aXZpdHlTdGF0ZTsKK30K
KwogUmVmUHRyPEFYSXNvbGF0ZWRPYmplY3Q+IEFYSXNvbGF0ZWRUcmVlOjpmb2N1c2VkTm9kZSgp
CiB7CiAgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OmZvY3VzZWROb2RlIl9zKTsKQEAgLTk2
Niw2ICs5ODcsMzMgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6YXBwbHlQZW5kaW5nQ2hhbmdlcygp
CiAgICAgbV9wZW5kaW5nUHJvcGVydHlDaGFuZ2VzLmNsZWFyKCk7CiB9CiAKK0FYVHJlZVB0ciBm
aW5kQVhUcmVlKEZ1bmN0aW9uPGJvb2woQVhUcmVlUHRyKT4mJiBtYXRjaCkKK3sKKyAgICBpZiAo
aXNNYWluVGhyZWFkKCkpIHsKKyAgICAgICAgZm9yIChXZWFrUHRyIHRyZWUgOiBBWFRyZWVTdG9y
ZTxBWE9iamVjdENhY2hlPjo6bGl2ZVRyZWVNYXAoKS52YWx1ZXMoKSkgeworICAgICAgICAgICAg
aWYgKCF0cmVlKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICBpZiAo
bWF0Y2godHJlZSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRyZWU7CisgICAgICAgIH0KKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlf
SVNPTEFURURfVFJFRSkKKyAgICBMb2NrZXIgbG9ja2VyIHsgQVhUcmVlU3RvcmU8QVhJc29sYXRl
ZFRyZWU+OjpzX3N0b3JlTG9jayB9OworICAgIGZvciAoYXV0byBpdCA9IEFYVHJlZVN0b3JlPEFY
SXNvbGF0ZWRUcmVlPjo6aXNvbGF0ZWRUcmVlTWFwKCkuYmVnaW4oKTsgaXQgIT0gQVhUcmVlU3Rv
cmU8QVhJc29sYXRlZFRyZWU+Ojppc29sYXRlZFRyZWVNYXAoKS5lbmQoKTsgKytpdCkgeworICAg
ICAgICBSZWZQdHIgdHJlZSA9IGl0LT52YWx1ZS5nZXQoKTsKKyAgICAgICAgaWYgKCF0cmVlKQor
ICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgaWYgKG1hdGNoKHRyZWUpKQorICAgICAg
ICAgICAgcmV0dXJuIHRyZWU7CisgICAgfQorICAgIHJldHVybiBudWxscHRyOworI2VuZGlmCit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShBQ0NFU1NJQklM
SVRZX0lTT0xBVEVEX1RSRUUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaAppbmRleCBmOWZmNzMxMmQ4ZTIu
LmJlZTQ5MjE3OTU0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9p
c29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oCkBAIC0yNjgsNyArMjY4LDcgQEAg
cHVibGljOgogICAgIGNvbnN0ZXhwciBBWEdlb21ldHJ5TWFuYWdlciogZ2VvbWV0cnlNYW5hZ2Vy
KCkgY29uc3QgeyByZXR1cm4gbV9nZW9tZXRyeU1hbmFnZXIuZ2V0KCk7IH0KIAogICAgIFJlZlB0
cjxBWElzb2xhdGVkT2JqZWN0PiByb290Tm9kZSgpOwotICAgIFJlZlB0cjxBWElzb2xhdGVkT2Jq
ZWN0PiBmb2N1c2VkTm9kZSgpOworICAgIFdFQkNPUkVfRVhQT1JUIFJlZlB0cjxBWElzb2xhdGVk
T2JqZWN0PiBmb2N1c2VkTm9kZSgpOwogCiAgICAgUmVmUHRyPEFYSXNvbGF0ZWRPYmplY3Q+IG9i
amVjdEZvcklEKGNvbnN0IEFYSUQpIGNvbnN0OwogICAgIFZlY3RvcjxSZWZQdHI8QVhDb3JlT2Jq
ZWN0Pj4gb2JqZWN0c0ZvcklEcyhjb25zdCBWZWN0b3I8QVhJRD4mKTsKQEAgLTMxNiw2ICszMTYs
MTAgQEAgcHVibGljOgogICAgIHZvaWQgYXBwbHlQZW5kaW5nQ2hhbmdlcygpOwogCiAgICAgQVhJ
RCB0cmVlSUQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9CisgICAgdm9pZCBzZXRQYWdlQWN0aXZp
dHlTdGF0ZShPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZT4pOworICAgIE9wdGlvblNldDxBY3Rpdml0
eVN0YXRlPiBwYWdlQWN0aXZpdHlTdGF0ZSgpIGNvbnN0OworICAgIC8vIFVzZSBvbmx5IGlmIHRo
ZSBzX3N0b3JlTG9jayBpcyBhbHJlYWR5IGhlbGQgbGlrZSBpbiBmaW5kQVhUcmVlLgorICAgIFdF
QkNPUkVfRVhQT1JUIE9wdGlvblNldDxBY3Rpdml0eVN0YXRlPiBsb2NrZWRQYWdlQWN0aXZpdHlT
dGF0ZSgpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIEFYSXNvbGF0ZWRUcmVlKEFYT2JqZWN0Q2Fj
aGUmKTsKQEAgLTM0NCw2ICszNDgsNyBAQCBwcml2YXRlOgogCiAgICAgdW5zaWduZWQgbV9tYXhU
cmVlRGVwdGggeyAwIH07CiAgICAgV2Vha1B0cjxBWE9iamVjdENhY2hlPiBtX2F4T2JqZWN0Q2Fj
aGU7CisgICAgT3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU+IG1fcGFnZUFjdGl2aXR5U3RhdGU7CiAg
ICAgUmVmUHRyPEFYR2VvbWV0cnlNYW5hZ2VyPiBtX2dlb21ldHJ5TWFuYWdlcjsKICAgICBib29s
IG1fdXNlZE9uQVhUaHJlYWQgeyB0cnVlIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDBkMGE4
ZjFjNjQ4Yy4uODFiOWI4NTFiOGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTI2ODcsOCArMjY4
Nyw5IEBAIHZvaWQgUGFnZTo6c2V0QWN0aXZpdHlTdGF0ZShPcHRpb25TZXQ8QWN0aXZpdHlTdGF0
ZT4gYWN0aXZpdHlTdGF0ZSkKICAgICAgICAgc2V0SXNJbldpbmRvd0ludGVybmFsKGFjdGl2aXR5
U3RhdGUuY29udGFpbnMoQWN0aXZpdHlTdGF0ZTo6SXNJbldpbmRvdykpOwogICAgIGlmIChjaGFu
Z2VkICYgQWN0aXZpdHlTdGF0ZTo6SXNWaXN1YWxseUlkbGUpCiAgICAgICAgIHNldElzVmlzdWFs
bHlJZGxlSW50ZXJuYWwoYWN0aXZpdHlTdGF0ZS5jb250YWlucyhBY3Rpdml0eVN0YXRlOjpJc1Zp
c3VhbGx5SWRsZSkpOworCisgICAgV2Vha1B0ciBsb2NhbE1haW5GcmFtZSA9IGR5bmFtaWNEb3du
Y2FzdDxMb2NhbEZyYW1lPihtX21haW5GcmFtZS5nZXQoKSk7CiAgICAgaWYgKGNoYW5nZWQgJiBB
Y3Rpdml0eVN0YXRlOjpXaW5kb3dJc0FjdGl2ZSkgewotICAgICAgICBhdXRvKiBsb2NhbE1haW5G
cmFtZSA9IGR5bmFtaWNEb3duY2FzdDxMb2NhbEZyYW1lPihtX21haW5GcmFtZS5nZXQoKSk7CiAg
ICAgICAgIGlmIChhdXRvKiB2aWV3ID0gbG9jYWxNYWluRnJhbWUgPyBsb2NhbE1haW5GcmFtZS0+
dmlldygpIDogbnVsbHB0cikKICAgICAgICAgICAgIHZpZXctPnVwZGF0ZVRpbGVkQmFja2luZ0Fk
YXB0aXZlU2l6aW5nKCk7CiAgICAgfQpAQCAtMjcwNCw2ICsyNzA1LDExIEBAIHZvaWQgUGFnZTo6
c2V0QWN0aXZpdHlTdGF0ZShPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZT4gYWN0aXZpdHlTdGF0ZSkK
ICAgICAgICAgc3RvcEtleWJvYXJkU2Nyb2xsQW5pbWF0aW9uKCk7CiAgICAgfQogCisgICAgaWYg
KGF1dG8qIGRvY3VtZW50ID0gbG9jYWxNYWluRnJhbWUgPyBsb2NhbE1haW5GcmFtZS0+ZG9jdW1l
bnQoKSA6IG51bGxwdHIpIHsKKyAgICAgICAgaWYgKGF1dG8qIGNhY2hlID0gZG9jdW1lbnQtPmV4
aXN0aW5nQVhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgY2FjaGUtPm9uUGFnZUFjdGl2aXR5
U3RhdGVDaGFuZ2UobV9hY3Rpdml0eVN0YXRlKTsKKyAgICB9CisKICAgICBpZiAobV9wZXJmb3Jt
YW5jZU1vbml0b3IpCiAgICAgICAgIG1fcGVyZm9ybWFuY2VNb25pdG9yLT5hY3Rpdml0eVN0YXRl
Q2hhbmdlZChvbGRBY3Rpdml0eVN0YXRlLCBhY3Rpdml0eVN0YXRlKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggNDY3MmNkN2Q3MjhmLi4w
MTIxYzBhZGU5MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCkBAIC01NzE5LDEwICs1NzE5LDcgQEAgYm9vbCBXZWJQYWdlOjp3aW5kb3dJc0ZvY3Vz
ZWQoKSBjb25zdAogCiBib29sIFdlYlBhZ2U6OndpbmRvd0FuZFdlYlBhZ2VBcmVGb2N1c2VkKCkg
Y29uc3QKIHsKLSAgICBpZiAoIWlzVmlzaWJsZSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0K
LSAgICByZXR1cm4gbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5pc0ZvY3VzZWQoKSAmJiBtX3Bh
Z2UtPmZvY3VzQ29udHJvbGxlcigpLmlzQWN0aXZlKCk7CisgICAgcmV0dXJuIGlzVmlzaWJsZSgp
ICYmIG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuaXNGb2N1c2VkKCkgJiYgbV9wYWdlLT5mb2N1
c0NvbnRyb2xsZXIoKS5pc0FjdGl2ZSgpOwogfQogCiB2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVy
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3ND
b2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2Eu
bW0KaW5kZXggZjYwMGQ2YTM0OTY2Li5jNzlmZDQ2YTc4MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQpAQCAtNTgsNiArNTgsMTEg
QEAKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0NvbmZpZ0ZpbGUuaD4KICNpbXBvcnQgPEphdmFT
Y3JpcHRDb3JlL09wdGlvbnMuaD4KICNpbXBvcnQgPFdlYkNvcmUvQVZBc3NldE1JTUVUeXBlQ2Fj
aGUuaD4KKworI2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpCisjaW1wb3J0
IDxXZWJDb3JlL0FYSXNvbGF0ZWRPYmplY3QuaD4KKyNpbXBvcnQgPFdlYkNvcmUvQVhJc29sYXRl
ZFRyZWUuaD4KKyNlbmRpZgogI2ltcG9ydCA8V2ViQ29yZS9BWE9iamVjdENhY2hlLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0NQVU1vbml0b3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvRGVwcmVjYXRlZEds
b2JhbFNldHRpbmdzLmg+CkBAIC0yMDQsMTIgKzIwOSwzNyBAQCB2b2lkIFdlYlByb2Nlc3M6OnBs
YXRmb3JtU2V0Q2FjaGVNb2RlbChDYWNoZU1vZGVsKQogCiBpZCBXZWJQcm9jZXNzOjphY2Nlc3Np
YmlsaXR5Rm9jdXNlZFVJRWxlbWVudCgpCiB7Ci0gICAgcmV0dXJuIEFjY2Vzc2liaWxpdHk6OnJl
dHJpZXZlQXV0b3JlbGVhc2VkVmFsdWVGcm9tTWFpblRocmVhZDxpZD4oW10gKCkgLT4gUmV0YWlu
UHRyPGlkPiB7Ci0gICAgICAgIFdlYlBhZ2UqIHBhZ2UgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5mb2N1c2VkV2ViUGFnZSgpOwotICAgICAgICBpZiAoIXBhZ2UgfHwgIXBhZ2UtPmFjY2Vzc2li
aWxpdHlSZW1vdGVPYmplY3QoKSkKLSAgICAgICAgICAgIHJldHVybiBuaWw7Ci0gICAgICAgIHJl
dHVybiBbcGFnZS0+YWNjZXNzaWJpbGl0eVJlbW90ZU9iamVjdCgpIGFjY2Vzc2liaWxpdHlGb2N1
c2VkVUlFbGVtZW50XTsKLSAgICB9KTsKKyNpZiBFTkFCTEUoQUNDRVNTSUJJTElUWV9JU09MQVRF
RF9UUkVFKQorICAgIGlmICghaXNNYWluUnVuTG9vcCgpKSB7CisgICAgICAgIC8vIEF2b2lkIGhp
dHRpbmcgdGhlIG1haW4gdGhyZWFkIGJ5IGdldHRpbmcgdGhlIGZvY3VzZWQgb2JqZWN0IGZyb20g
dGhlIGZvY3VzZWQgaXNvbGF0ZWQgdHJlZS4KKyAgICAgICAgYXV0byB0cmVlID0gZmluZEFYVHJl
ZShbXSAoQVhUcmVlUHRyIHRyZWUpIC0+IGJvb2wgeworICAgICAgICAgICAgT3B0aW9uU2V0PEFj
dGl2aXR5U3RhdGU+IHN0YXRlOworICAgICAgICAgICAgc3dpdGNoT24odHJlZSwKKyAgICAgICAg
ICAgICAgICBbJnN0YXRlXSAoUmVmUHRyPEFYSXNvbGF0ZWRUcmVlPiYgdHlwZWRUcmVlKSB7Cisg
ICAgICAgICAgICAgICAgICAgIGlmICh0eXBlZFRyZWUpCisgICAgICAgICAgICAgICAgICAgICAg
ICBzdGF0ZSA9IHR5cGVkVHJlZS0+bG9ja2VkUGFnZUFjdGl2aXR5U3RhdGUoKTsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgLCBbXSAoYXV0byYpIHsgfQorICAgICAgICAgICAg
KTsKKyAgICAgICAgICAgIHJldHVybiBzdGF0ZS5jb250YWluc0FsbCh7IEFjdGl2aXR5U3RhdGU6
OklzVmlzaWJsZSwgQWN0aXZpdHlTdGF0ZTo6SXNGb2N1c2VkLCBBY3Rpdml0eVN0YXRlOjpXaW5k
b3dJc0FjdGl2ZSB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgUmVmUHRyIG9iamVjdCA9IHN3
aXRjaE9uKHRyZWUsCisgICAgICAgICAgICBbXSAoUmVmUHRyPEFYSXNvbGF0ZWRUcmVlPiYgdHlw
ZWRUcmVlKSAtPiBSZWZQdHI8QVhJc29sYXRlZE9iamVjdD4geworICAgICAgICAgICAgICAgIHJl
dHVybiB0eXBlZFRyZWUgPyB0eXBlZFRyZWUtPmZvY3VzZWROb2RlKCkgOiBudWxscHRyOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgLCBbXSAoYXV0byYpIC0+IFJlZlB0cjxBWElzb2xhdGVk
T2JqZWN0PiB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgICAgICB9
CisgICAgICAgICk7CisgICAgICAgIHJldHVybiBvYmplY3QgPyBvYmplY3QtPndyYXBwZXIoKSA6
IG5pbDsKKyAgICB9CisjZW5kaWYKKworICAgIFdlYlBhZ2UqIHBhZ2UgPSBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5mb2N1c2VkV2ViUGFnZSgpOworICAgIGlmICghcGFnZSB8fCAhcGFnZS0+YWNj
ZXNzaWJpbGl0eVJlbW90ZU9iamVjdCgpKQorICAgICAgICByZXR1cm4gbmlsOworICAgIHJldHVy
biBbcGFnZS0+YWNjZXNzaWJpbGl0eVJlbW90ZU9iamVjdCgpIGFjY2Vzc2liaWxpdHlGb2N1c2Vk
VUlFbGVtZW50XTsKIH0KIAogI2lmIFVTRShBUFBLSVQpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>