<?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>268429</bug_id>
          
          <creation_ts>2024-01-30 18:01:02 -0800</creation_ts>
          <short_desc>AX: Crash in AXIsolatedTree::removeNode due to update of relations triggering a layout.</short_desc>
          <delta_ts>2024-02-02 11:15:38 -0800</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>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>2009180</commentid>
    <comment_count>0</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2024-01-30 18:01:02 -0800</bug_when>
    <thetext>frame #0: WebCore`WTFCrashWithInfo((null)=140, (null)=&quot;/Users/twilco/projects/web/OpenSource/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp&quot;, (null)=&quot;WebCore::RenderTreeBuilder::RenderTreeBuilder(RenderView &amp;)&quot;, (null)=136) at Assertions.h:778:5 [opt]
    frame #1: WebCore`WebCore::RenderTreeBuilder::RenderTreeBuilder(WebCore::RenderView&amp;) (.cold.1) at RenderTreeBuilder.cpp:140:5 [opt]
    frame #2: WebCore`WebCore::RenderTreeBuilder::RenderTreeBuilder(this=0x000000016afcd0e8, view=&lt;unavailable&gt;) at RenderTreeBuilder.cpp:140:5 [opt]
    frame #3: WebCore`WebCore::RenderTreeUpdater::RenderTreeUpdater(WebCore::Document&amp;, WebCore::Style::PostResolutionCallbackDisabler&amp;) [inlined] WebCore::RenderTreeUpdater::RenderTreeUpdater(this=0x000000016afcd0b8, document=&lt;unavailable&gt;, (null)=&lt;unavailable&gt;) at RenderTreeUpdater.cpp:82:7 [opt]
    frame #4: WebCore`WebCore::RenderTreeUpdater::RenderTreeUpdater(this=0x000000016afcd0b8, document=&lt;unavailable&gt;, (null)=&lt;unavailable&gt;) at RenderTreeUpdater.cpp:83:1 [opt]
    frame #5: WebCore`WebCore::Document::updateRenderTree(this={ origin = , url = , inMainFrame = Detached, backForwardCacheState = NotInBackForwardCache }, styleUpdate=WebCore::Style::Update @ 0x0000000290b17790) at Document.cpp:2454:31 [opt]
    frame #6: WebCore`WebCore::Document::resolveStyle(this={ origin = , url = , inMainFrame = Detached, backForwardCacheState = NotInBackForwardCache }, type=&lt;unavailable&gt;) at Document.cpp:2553:13 [opt]
    frame #7: WebCore`WebCore::Document::updateStyleIfNeeded(this={ origin = , url = , inMainFrame = Detached, backForwardCacheState = NotInBackForwardCache }) at Document.cpp:2655:5 [opt]
    frame #8: WebCore`WebCore::Document::updateLayout(this={ origin = , url = , inMainFrame = Detached, backForwardCacheState = NotInBackForwardCache }, layoutOptions={ size = 1 }, context=0x0000000000000000) at Document.cpp:2699:13 [opt]
    frame #9: WebCore`WebCore::TextIterator::TextIterator(this=0x000000016afcd6c8, range=0x000000016afcd868, behaviors=&lt;unavailable&gt;) at TextIterator.cpp:357:38 [opt]
    frame #10: WebCore`WebCore::plainText(WebCore::SimpleRange const&amp;, WTF::OptionSet&lt;WebCore::TextIteratorBehavior&gt;, bool) [inlined] WebCore::TextIterator::TextIterator(this=0x000000016afcd6c8, range=0x000000016afcd868, behaviors=&lt;unavailable&gt;) at TextIterator.cpp:356:1 [opt]
    frame #11: WebCore`WebCore::plainText(range=0x000000016afcd868, defaultBehavior=&lt;unavailable&gt;, isDisplayString=false) at TextIterator.cpp:2545:23 [opt]
  * frame #12: WebCore`WebCore::AccessibilityRenderObject::textUnderElement(this=0x00000002906a2c00, mode=AccessibilityTextUnderElementMode @ 0x0000600003fa2ac0) const at AccessibilityRenderObject.cpp:697:24 [opt]
    frame #13: WebCore`WebCore::AccessibilityNodeObject::textUnderElement(this=&lt;unavailable&gt;, mode=AccessibilityTextUnderElementMode @ 0x0000600003fa2b20) const at AccessibilityNodeObject.cpp:2327:35 [opt]
    frame #14: WebCore`WebCore::AccessibilityRenderObject::textUnderElement(this=0x00000002906a2900, mode=AccessibilityTextUnderElementMode @ 0x0000600003f804c0) const at AccessibilityRenderObject.cpp:718:37 [opt]
    frame #15: WebCore`WebCore::AccessibilityNodeObject::textUnderElement(this=&lt;unavailable&gt;, mode=AccessibilityTextUnderElementMode @ 0x0000600003f8e4e0) const at AccessibilityNodeObject.cpp:2327:35 [opt]
    frame #16: WebCore`WebCore::AccessibilityRenderObject::textUnderElement(this=0x00000002906a2a00, mode=AccessibilityTextUnderElementMode @ 0x0000600003f8e4e0) const at AccessibilityRenderObject.cpp:718:37 [opt]
    frame #17: WebCore`WebCore::AccessibilityNodeObject::textUnderElement(this=&lt;unavailable&gt;, mode=AccessibilityTextUnderElementMode @ 0x0000600003f80120) const at AccessibilityNodeObject.cpp:2327:35 [opt]
    frame #18: WebCore`WebCore::AccessibilityRenderObject::textUnderElement(this=0x00000002906a2b00, mode=AccessibilityTextUnderElementMode @ 0x0000600003f8eda0) const at AccessibilityRenderObject.cpp:718:37 [opt]
    frame #19: WebCore`WebCore::AccessibilityNodeObject::textUnderElement(this=&lt;unavailable&gt;, mode=AccessibilityTextUnderElementMode @ 0x0000600003f8dbc0) const at AccessibilityNodeObject.cpp:2327:35 [opt]
    frame #20: WebCore`WebCore::AccessibilityRenderObject::textUnderElement(this=0x0000000163cb2000, mode=AccessibilityTextUnderElementMode @ 0x0000600003f80120) const at AccessibilityRenderObject.cpp:718:37 [opt]
    frame #21: WebCore`WebCore::AccessibilityNodeObject::visibleText(this=0x0000000163cb2000, textOrder={ size = 2, capacity = 16 }) const at AccessibilityNodeObject.cpp:1934:23 [opt]
    frame #22: WebCore`WebCore::AccessibilityNodeObject::accessibilityText(this=0x0000000163cb2000, textOrder={ size = 2, capacity = 16 }) const at AccessibilityNodeObject.cpp:1984:5 [opt]
    frame #23: WebCore`WebCore::AXIsolatedObject::initializeProperties(this=0x00000002941e2680, axObject=&lt;unavailable&gt;) at AXIsolatedObject.cpp:310:12 [opt]
    frame #24: WebCore`WebCore::AXIsolatedObject::AXIsolatedObject(this=0x00000002941e2680, axObject=0x000000016afce100, tree=0x000000010d0f7c20) at AXIsolatedObject.cpp:59:5 [opt]
    frame #25: WebCore`WebCore::AXIsolatedTree::addUnconnectedNode(WTF::Ref&lt;WebCore::AccessibilityObject, WTF::RawPtrTraits&lt;WebCore::AccessibilityObject&gt;&gt;) [inlined] WebCore::AXIsolatedObject::AXIsolatedObject(this=0x00000002941e2680, axObject=0x000000016afce100, tree=0x000000010d0f7c20) at AXIsolatedObject.cpp:49:1 [opt]
    frame #26: WebCore`WebCore::AXIsolatedTree::addUnconnectedNode(WTF::Ref&lt;WebCore::AccessibilityObject, WTF::RawPtrTraits&lt;WebCore::AccessibilityObject&gt;&gt;) [inlined] WebCore::AXIsolatedObject::create(object=0x000000016afce100, tree=0x000000010d0f7c20) at AXIsolatedObject.cpp:64:26 [opt]
    frame #27: WebCore`WebCore::AXIsolatedTree::addUnconnectedNode(this=0x000000010d0f7c20, axObject=Ref&lt;WebCore::AccessibilityObject, WTF::RawPtrTraits&lt;WebCore::AccessibilityObject&gt; &gt; @ 0x000000016afce100) at AXIsolatedTree.cpp:321:19 [opt]
    frame #28: WebCore`WebCore::AXObjectCache::addRelation(this=0x000000010d241e80, origin=&lt;unavailable&gt;, target=0x0000000164df65a0, relationType=&lt;unavailable&gt;, addSymmetricRelation=Yes) at AXObjectCache.cpp:4784:23 [opt]
    frame #29: WebCore`WebCore::AXObjectCache::addRelation(this=&lt;unavailable&gt;, origin=&lt;unavailable&gt;, target=&lt;unavailable&gt;, relationType=&lt;unavailable&gt;) at AXObjectCache.cpp:4699:12 [opt] [artificial]
    frame #30: WebCore`WebCore::AXObjectCache::addRelation(this=0x000000010d241e80, origin=0x00000002906b1b00, attribute=&lt;unavailable&gt;) at AXObjectCache.cpp:4909:25 [opt]
    frame #31: WebCore`WebCore::AXObjectCache::updateRelationsForTree(this=0x000000010d241e80, rootNode={ origin = , url = , inMainFrame = Detached, backForwardCacheState = NotInBackForwardCache }) at AXObjectCache.cpp:4885:13 [opt]
    frame #32: WebCore`WebCore::AXObjectCache::relatedObjectIDsFor(WebCore::AXCoreObject const&amp;, WebCore::AXRelationType) [inlined] WebCore::AXObjectCache::updateRelationsIfNeeded(this=0x000000010d241e80) at AXObjectCache.cpp:4867:5 [opt]
    frame #33: WebCore`WebCore::AXObjectCache::relatedObjectIDsFor(this=0x000000010d241e80, object=0x00000001634c6400, relationType=LabelFor) at AXObjectCache.cpp:5012:5 [opt]
    frame #34: WebCore`WebCore::AccessibilityObject::relatedObjects(this=0x00000001634c6400, relationType=LabelFor) const at AccessibilityObject.cpp:4295:36 [opt]
    frame #35: WebCore`WebCore::AXIsolatedTree::removeNode(WebCore::AccessibilityObject const&amp;) [inlined] WebCore::AXCoreObject::labelForObjects(this=0x00000001634c6400) const at AXCoreObject.h:1024:66 [opt]
    frame #36: WebCore`WebCore::AXIsolatedTree::removeNode(WebCore::AccessibilityObject const&amp;) [inlined] WebCore::AccessibilityObject::isLabel(this=0x00000001634c6400) const at AccessibilityObject.h:129:69 [opt]
    frame #37: WebCore`WebCore::AXIsolatedTree::removeNode(this=0x000000010d0f7c20, axObject=0x00000001634c6400) at AXIsolatedTree.cpp:1021:18 [opt]
    frame #38: WebCore`WebCore::AXObjectCache::remove(this=0x000000010d241e80, axID=WebCore::AXID @ 0x000000016afce3f0) at AXObjectCache.cpp:1076:15 [opt]
    frame #39: WebCore`WebCore::AXObjectCache::remove(this=0x000000010d241e80, renderer=0x0000000154058d80) at AXObjectCache.cpp:1095:5 [opt]
    frame #40: WebCore`WebCore::RenderObject::willBeDestroyed() (.cold.1) at RenderObject.cpp:1779:16 [opt]
    frame #41: WebCore`WebCore::RenderObject::willBeDestroyed() [inlined] WTF::RawPtrTraits&lt;WebCore::Node&gt;::unwrap(ptr=0x0000000154058d98) at RawPtrTraits.h:44:69 [opt]
    frame #42: WebCore`WebCore::RenderObject::willBeDestroyed() [inlined] WTF::CheckedRef&lt;WebCore::Node, WTF::RawPtrTraits&lt;WebCore::Node&gt;&gt;::ptr(this=0x0000000154058d98) const at CheckedRef.h:129:43 [opt]
    frame #43: WebCore`WebCore::RenderObject::willBeDestroyed() [inlined] WTF::CheckedRef&lt;WebCore::Node, WTF::RawPtrTraits&lt;WebCore::Node&gt;&gt;::get(this=0x0000000154058d98) const at CheckedRef.h:130:59 [opt]
    frame #44: WebCore`WebCore::RenderObject::willBeDestroyed() [inlined] WebCore::RenderObject::document(this=0x0000000154058d80) const at RenderObject.h:738:48 [opt]
    frame #45: WebCore`WebCore::RenderObject::willBeDestroyed(this=0x0000000154058d80) at RenderObject.cpp:1778:28 [opt]
    frame #46: WebCore`WebCore::RenderElement::willBeDestroyed(this=0x0000000154058d80) at RenderElement.cpp:1106:19 [opt]
    frame #47: WebCore`WebCore::RenderObject::destroy(this=0x0000000154058d80) at RenderObject.cpp:1834:5 [opt]
    frame #48: WebCore`WebCore::RenderTreeBuilder::destroy(WebCore::RenderObject&amp;, WebCore::RenderTreeBuilder::CanCollapseAnonymousBlock) [inlined] std::__1::unique_ptr&lt;WebCore::RenderObject, WebCore::RenderObjectDeleter&gt;::reset[abi:v160006](this=0x000000016afce508, __p=0x0000000000000000) at unique_ptr.h:297:7 [opt]
    frame #49: WebCore`WebCore::RenderTreeBuilder::destroy(WebCore::RenderObject&amp;, WebCore::RenderTreeBuilder::CanCollapseAnonymousBlock) [inlined] std::__1::unique_ptr&lt;WebCore::RenderObject, WebCore::RenderObjectDeleter&gt;::~unique_ptr[abi:v160006](this=0x000000016afce508) at unique_ptr.h:263:75 [opt]
    frame #50: WebCore`WebCore::RenderTreeBuilder::destroy(WebCore::RenderObject&amp;, WebCore::RenderTreeBuilder::CanCollapseAnonymousBlock) [inlined] std::__1::unique_ptr&lt;WebCore::RenderObject, WebCore::RenderObjectDeleter&gt;::~unique_ptr[abi:v160006](this=0x000000016afce508) at unique_ptr.h:263:73 [opt]
    frame #51: WebCore`WebCore::RenderTreeBuilder::destroy(this=0x000000016afd0bd0, renderer=0x0000000154058d80, canCollapseAnonymousBlock=&lt;unavailable&gt;) at RenderTreeBuilder.cpp:188:1 [opt]
    frame #52: WebCore`WebCore::RenderTreeBuilder::destroyAndCleanUpAnonymousWrappers(this=0x000000016afd0bd0, rendererToDestroy=0x0000000154058d80) at RenderTreeBuilder.cpp:911:5 [opt]
    frame #53: WebCore`WebCore::RenderTreeUpdater::tearDownRenderers(WebCore::Element&amp;, WebCore::RenderTreeUpdater::TeardownType, WebCore::RenderTreeBuilder&amp;) at RenderTreeUpdater.cpp:746:25 [opt]
    frame #54: WebCore`WebCore::RenderTreeUpdater::tearDownRenderers(root=0x000000016c9d9800, teardownType=Full, builder=0x000000016afd0bd0) at RenderTreeUpdater.cpp:759:9 [opt]
    frame #55: WebCore`WebCore::RenderTreeUpdater::tearDownRenderers(root=0x000000016c9d9800) at RenderTreeUpdater.cpp:662:5 [opt]
    frame #56: WebCore`WebCore::ContainerNode::removeBetween(WebCore::Node*, WebCore::Node*, WebCore::Node&amp;) [inlined] WebCore::destroyRenderTreeIfNeeded(child=0x000000016c9d9800) at ContainerNode.cpp:358:9 [opt]
    frame #57: WebCore`WebCore::ContainerNode::removeBetween(this=0x0000000154031e80, previousChild=0x0000000000000000, nextChild=0x000000016cacc800, oldChild=0x000000016c9d9800) at ContainerNode.cpp:707:5 [opt]
    frame #58: WebCore`WebCore::ContainerNode::removeChild(WebCore::Node&amp;) at ContainerNode.cpp:232:9 [opt]
    frame #59: WebCore`WebCore::ContainerNode::removeChild(this=0x0000000154031e80, oldChild=0x000000016c9d9800) at ContainerNode.cpp:682:10 [opt]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2009181</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2024-01-30 18:01:13 -0800</bug_when>
    <thetext>&lt;rdar://problem/121976907&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2009183</commentid>
    <comment_count>2</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2024-01-30 18:06:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/121976907&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2009186</commentid>
    <comment_count>3</comment_count>
      <attachid>469624</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2024-01-30 18:31:56 -0800</bug_when>
    <thetext>Created attachment 469624
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2009192</commentid>
    <comment_count>4</comment_count>
      <attachid>469624</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2024-01-30 18:54:16 -0800</bug_when>
    <thetext>Comment on attachment 469624
Patch

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

&gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:1031
&gt; +    auto labeledObjectIDs = axObjectCache() ? axObjectCache()-&gt;relatedObjectIDsFor(axObject, AXRelationType::LabelFor, AXObjectCache::UpdateRelations::No) : std::nullopt;
&gt; +    if (labeledObjectIDs) {
&gt; +        // Update the labeled objects since axObject is one of their labels and it is being removed.
&gt; +        for (AXID labeledObjectID : *labeledObjectIDs) {
&gt;              // The label/title of an isolated object is computed based on its AccessibilityText propperty, thus update it.
&gt; -            queueNodeUpdate(*labeledObject, { AXPropertyName::AccessibilityText });
&gt; +            queueNodeUpdate(labeledObjectID, { AXPropertyName::AccessibilityText });

If we aren&apos;t updating relations here, and they are stale, doesn&apos;t that mean we could be making the decision to update or not update the tree based off the wrong information?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2009195</commentid>
    <comment_count>5</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2024-01-30 19:08:58 -0800</bug_when>
    <thetext>(In reply to Tyler Wilcock from comment #4)
&gt; Comment on attachment 469624 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=469624&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:1031
&gt; &gt; +    auto labeledObjectIDs = axObjectCache() ? axObjectCache()-&gt;relatedObjectIDsFor(axObject, AXRelationType::LabelFor, AXObjectCache::UpdateRelations::No) : std::nullopt;
&gt; &gt; +    if (labeledObjectIDs) {
&gt; &gt; +        // Update the labeled objects since axObject is one of their labels and it is being removed.
&gt; &gt; +        for (AXID labeledObjectID : *labeledObjectIDs) {
&gt; &gt;              // The label/title of an isolated object is computed based on its AccessibilityText propperty, thus update it.
&gt; &gt; -            queueNodeUpdate(*labeledObject, { AXPropertyName::AccessibilityText });
&gt; &gt; +            queueNodeUpdate(labeledObjectID, { AXPropertyName::AccessibilityText });
&gt; 
&gt; If we aren&apos;t updating relations here, and they are stale, doesn&apos;t that mean
&gt; we could be making the decision to update or not update the tree based off
&gt; the wrong information?

No, because the only thing we are doing here is to scheduling an update of a single property of the labeled objects of a label that is gone. We are not marking relations updated or any thing els, so next time things need update they will update.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2009341</commentid>
    <comment_count>6</comment_count>
      <attachid>469624</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2024-01-31 08:43:55 -0800</bug_when>
    <thetext>Comment on attachment 469624
Patch

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

&gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:1026
&gt; +    auto labeledObjectIDs = axObjectCache() ? axObjectCache()-&gt;relatedObjectIDsFor(axObject, AXRelationType::LabelFor, AXObjectCache::UpdateRelations::No) : std::nullopt;

If we do decide to go this route rather than changing `addUnconnectedNode` or how it&apos;s called, it might be nice to have a comment explaining why we do this rather than just calling labelForObjects(). Moot point if you aren&apos;t keeping this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2010090</commentid>
    <comment_count>7</comment_count>
      <attachid>469675</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2024-02-02 07:48:32 -0800</bug_when>
    <thetext>Created attachment 469675
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2010096</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2024-02-02 07:57:14 -0800</bug_when>
    <thetext>Commit message contains (OOPS!) and no reviewer found, blocking PR #None</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2010097</commentid>
    <comment_count>9</comment_count>
      <attachid>469676</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2024-02-02 08:00:27 -0800</bug_when>
    <thetext>Created attachment 469676
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2010186</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2024-02-02 11:15:36 -0800</bug_when>
    <thetext>Committed 274003@main (7858210211c2): &lt;https://commits.webkit.org/274003@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 469676.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>469624</attachid>
            <date>2024-01-30 18:31:56 -0800</date>
            <delta_ts>2024-02-02 07:48:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-268429-20240130212925.patch</filename>
            <type>text/plain</type>
            <size>19633</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">RnJvbSA3OTFlMGUyYzZmNjVmNzI1YjRkMGQ4ODQ1ZmIzZGQ3ODY4ODgxMzViIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXMgR29uemFsZXogPGFuZHJlc2dfMjJAYXBwbGUuY29t
PgpEYXRlOiBUdWUsIDMwIEphbiAyMDI0IDIwOjM4OjU4IC0wNTAwClN1YmplY3Q6IFtQQVRDSF0g
QVg6IENyYXNoIGluIEFYSXNvbGF0ZWRUcmVlOjpyZW1vdmVOb2RlIGR1ZSB0byB1cGRhdGUgb2YK
IHJlbGF0aW9ucyB0cmlnZ2VyaW5nIGEgbGF5b3V0LiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjY4NDI5CiA8cmRhcjovL3Byb2JsZW0vMTIxOTc2OTA3PgoKUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpUaGUgQWNjZXNzaWJpbGl0eU9iamVjdDo6aXNMYWJlbCBt
ZXRob2QgY2F1c2VzIGEgcmVsYXRpb25zIHVwZGF0ZSwgdGhhdCBpbiB0dXJuIHRyaWdnZXJzIGEg
bGF5b3V0IHVwZGF0ZSB3aGlsZSBidWlsZGluZyBpc29sYXRlZCBvYmplY3RzLCBhbmQgdGh1cyBj
YXVzaW5nIGEgY3Jhc2guIFRoaXMgcGF0Y2ggZml4ZXMgdGhlIHByb2JsZW0gYnkgZGV0ZXJtaW5p
bmcgd2hldGhlciB0aGUgb2JqZWN0IHRoYXQgaXMgYmVpbmcgcmVtb3ZlZCBpcyBhIGxhYmVsIGZv
ciBvdGhlciBvYmplY3RzIHdpdGhvdXQgdXBkYXRpbmcgdGhlIHJlbGF0aW9ucy4KCiogU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6OnVwZGF0ZUlzb2xhdGVkVHJlZSk6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp1
cGRhdGVJc29sYXRlZFRyZWUgY29uc3QpOgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cmVsYXRl
ZE9iamVjdElEc0Zvcik6CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmg6CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZFRyZWUuY3BwOgooV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnVwZGF0ZVByb3BlcnRpZXNG
b3JTZWxmQW5kRGVzY2VuZGFudHMpOgooV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnVwZGF0ZURl
cGVuZGVudFByb3BlcnRpZXMpOgooV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnJlbW92ZU5vZGUp
OgooV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnF1ZXVlTm9kZVVwZGF0ZSk6CiogU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaDoKLS0tCiAu
Li4vV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwICAgfCA4NCArKysrKysr
KysrLS0tLS0tLS0tCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
aCAgfCAgMyArLQogLi4uL2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAgICAgICAgICAg
IHwgMjQgKysrLS0tCiAuLi4vaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmggICAgICAgICAg
ICAgfCAgMiArLQogNCBmaWxlcyBjaGFuZ2VkLCA1OCBpbnNlcnRpb25zKCspLCA1NSBkZWxldGlv
bnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0
Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNw
cAppbmRleCA3OGEzMzBkYTRjNWMuLmEwOGIyNmQ4MjljMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC00MjA3LDcgKzQyMDcsNyBAQCB2
b2lkIEFYT2JqZWN0Q2FjaGU6OnVwZGF0ZUlzb2xhdGVkVHJlZShjb25zdCBWZWN0b3I8c3RkOjpw
YWlyPFJlZlB0cjxBY2Nlc3NpYmlsaQogICAgICAgICBpZiAoIXVwZGF0ZWRGaWVsZHMuY29udGFp
bnMoRmllbGQ6OkNoaWxkcmVuKSkgewogICAgICAgICAgICAgdXBkYXRlZEZpZWxkcy5hZGQoRmll
bGQ6OkNoaWxkcmVuKTsKICAgICAgICAgICAgIHVwZGF0ZWRPYmplY3RzLnNldChheE9iamVjdC0+
b2JqZWN0SUQoKSwgdXBkYXRlZEZpZWxkcyk7Ci0gICAgICAgICAgICB0cmVlLT5xdWV1ZU5vZGVV
cGRhdGUoKmF4T2JqZWN0LCBOb2RlVXBkYXRlT3B0aW9uczo6Y2hpbGRyZW5VcGRhdGUoKSk7Cisg
ICAgICAgICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUoYXhPYmplY3QtPm9iamVjdElEKCksIE5v
ZGVVcGRhdGVPcHRpb25zOjpjaGlsZHJlblVwZGF0ZSgpKTsKICAgICAgICAgfQogICAgIH07CiAg
ICAgYXV0byB1cGRhdGVEZXBlbmRlbnRQcm9wZXJ0aWVzID0gWyZdIChSZWZQdHI8QWNjZXNzaWJp
bGl0eU9iamVjdD4gYXhPYmplY3QpIHsKQEAgLTQyMjMsNyArNDIyMyw3IEBAIHZvaWQgQVhPYmpl
Y3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVlKGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8UmVmUHRy
PEFjY2Vzc2liaWxpCiAgICAgICAgIGlmICghdXBkYXRlZEZpZWxkcy5jb250YWlucyhGaWVsZDo6
Tm9kZSkpIHsKICAgICAgICAgICAgIHVwZGF0ZWRGaWVsZHMuYWRkKEZpZWxkOjpOb2RlKTsKICAg
ICAgICAgICAgIHVwZGF0ZWRPYmplY3RzLnNldChheE9iamVjdC0+b2JqZWN0SUQoKSwgdXBkYXRl
ZEZpZWxkcyk7Ci0gICAgICAgICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUoKmF4T2JqZWN0LCBO
b2RlVXBkYXRlT3B0aW9uczo6bm9kZVVwZGF0ZSgpKTsKKyAgICAgICAgICAgIHRyZWUtPnF1ZXVl
Tm9kZVVwZGF0ZShheE9iamVjdC0+b2JqZWN0SUQoKSwgTm9kZVVwZGF0ZU9wdGlvbnM6Om5vZGVV
cGRhdGUoKSk7CiAgICAgICAgIH0KICAgICB9OwogCkBAIC00MjM0LDEyMyArNDIzNCwxMjMgQEAg
dm9pZCBBWE9iamVjdENhY2hlOjp1cGRhdGVJc29sYXRlZFRyZWUoY29uc3QgVmVjdG9yPHN0ZDo6
cGFpcjxSZWZQdHI8QWNjZXNzaWJpbGkKIAogICAgICAgICBzd2l0Y2ggKG5vdGlmaWNhdGlvbi5z
ZWNvbmQpIHsKICAgICAgICAgY2FzZSBBWEFjY2Vzc0tleUNoYW5nZWQ6Ci0gICAgICAgICAgICB0
cmVlLT5xdWV1ZU5vZGVVcGRhdGUoKm5vdGlmaWNhdGlvbi5maXJzdCwgeyBBWFByb3BlcnR5TmFt
ZTo6QWNjZXNzS2V5IH0pOworICAgICAgICAgICAgdHJlZS0+cXVldWVOb2RlVXBkYXRlKG5vdGlm
aWNhdGlvbi5maXJzdC0+b2JqZWN0SUQoKSwgeyBBWFByb3BlcnR5TmFtZTo6QWNjZXNzS2V5IH0p
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQVhBdXRvZmlsbFR5cGVDaGFuZ2Vk
OgotICAgICAgICAgICAgdHJlZS0+cXVldWVOb2RlVXBkYXRlKCpub3RpZmljYXRpb24uZmlyc3Qs
IHsgQVhQcm9wZXJ0eU5hbWU6OlZhbHVlQXV0b2ZpbGxCdXR0b25UeXBlIH0pOworICAgICAgICAg
ICAgdHJlZS0+cXVldWVOb2RlVXBkYXRlKG5vdGlmaWNhdGlvbi5maXJzdC0+b2JqZWN0SUQoKSwg
eyBBWFByb3BlcnR5TmFtZTo6VmFsdWVBdXRvZmlsbEJ1dHRvblR5cGUgfSk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgY2FzZSBBWENlbGxTbG90c0NoYW5nZWQ6CiAgICAgICAgICAgICBB
U1NFUlQobm90aWZpY2F0aW9uLmZpcnN0LT5pc1RhYmxlKCkpOwotICAgICAgICAgICAgdHJlZS0+
cXVldWVOb2RlVXBkYXRlKCpub3RpZmljYXRpb24uZmlyc3QsIHsgQVhQcm9wZXJ0eU5hbWU6OkNl
bGxTbG90cyB9KTsKKyAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZShub3RpZmljYXRp
b24uZmlyc3QtPm9iamVjdElEKCksIHsgQVhQcm9wZXJ0eU5hbWU6OkNlbGxTbG90cyB9KTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFYQ2hlY2tlZFN0YXRlQ2hhbmdlZDoKLSAg
ICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZSgqbm90aWZpY2F0aW9uLmZpcnN0LCB7IEFY
UHJvcGVydHlOYW1lOjpJc0NoZWNrZWQgfSk7CisgICAgICAgICAgICB0cmVlLT5xdWV1ZU5vZGVV
cGRhdGUobm90aWZpY2F0aW9uLmZpcnN0LT5vYmplY3RJRCgpLCB7IEFYUHJvcGVydHlOYW1lOjpJ
c0NoZWNrZWQgfSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBWEN1cnJlbnRT
dGF0ZUNoYW5nZWQ6Ci0gICAgICAgICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUoKm5vdGlmaWNh
dGlvbi5maXJzdCwgeyBBWFByb3BlcnR5TmFtZTo6Q3VycmVudFN0YXRlIH0pOworICAgICAgICAg
ICAgdHJlZS0+cXVldWVOb2RlVXBkYXRlKG5vdGlmaWNhdGlvbi5maXJzdC0+b2JqZWN0SUQoKSwg
eyBBWFByb3BlcnR5TmFtZTo6Q3VycmVudFN0YXRlIH0pOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIGNhc2UgQVhDb2x1bW5Db3VudENoYW5nZWQ6Ci0gICAgICAgICAgICB0cmVlLT5xdWV1
ZU5vZGVVcGRhdGUoKm5vdGlmaWNhdGlvbi5maXJzdCwgeyBBWFByb3BlcnR5TmFtZTo6QVhDb2x1
bW5Db3VudCB9KTsKKyAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZShub3RpZmljYXRp
b24uZmlyc3QtPm9iamVjdElEKCksIHsgQVhQcm9wZXJ0eU5hbWU6OkFYQ29sdW1uQ291bnQgfSk7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBWENvbHVtbkluZGV4Q2hhbmdlZDoK
LSAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZSgqbm90aWZpY2F0aW9uLmZpcnN0LCB7
IEFYUHJvcGVydHlOYW1lOjpBWENvbHVtbkluZGV4IH0pOworICAgICAgICAgICAgdHJlZS0+cXVl
dWVOb2RlVXBkYXRlKG5vdGlmaWNhdGlvbi5maXJzdC0+b2JqZWN0SUQoKSwgeyBBWFByb3BlcnR5
TmFtZTo6QVhDb2x1bW5JbmRleCB9KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNl
IEFYQ29sdW1uU3BhbkNoYW5nZWQ6Ci0gICAgICAgICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUo
Km5vdGlmaWNhdGlvbi5maXJzdCwgeyBBWFByb3BlcnR5TmFtZTo6Q29sdW1uSW5kZXhSYW5nZSB9
KTsKKyAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZShub3RpZmljYXRpb24uZmlyc3Qt
Pm9iamVjdElEKCksIHsgQVhQcm9wZXJ0eU5hbWU6OkNvbHVtbkluZGV4UmFuZ2UgfSk7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBWENvbnRlbnRFZGl0YWJsZUF0dHJpYnV0ZUNo
YW5nZWQ6Ci0gICAgICAgICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUoKm5vdGlmaWNhdGlvbi5m
aXJzdCwgeyBBWFByb3BlcnR5TmFtZTo6SXNOb25OYXRpdmVUZXh0Q29udHJvbCB9KTsKKyAgICAg
ICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZShub3RpZmljYXRpb24uZmlyc3QtPm9iamVjdElE
KCksIHsgQVhQcm9wZXJ0eU5hbWU6OklzTm9uTmF0aXZlVGV4dENvbnRyb2wgfSk7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgY2FzZSBBWERpc2FibGVkU3RhdGVDaGFuZ2VkOgogICAgICAg
ICAgICAgdHJlZS0+dXBkYXRlUHJvcGVydGllc0ZvclNlbGZBbmREZXNjZW5kYW50cygqbm90aWZp
Y2F0aW9uLmZpcnN0LCB7IHsgQVhQcm9wZXJ0eU5hbWU6OkNhblNldEZvY3VzQXR0cmlidXRlLCBB
WFByb3BlcnR5TmFtZTo6SXNFbmFibGVkIH0gfSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgY2FzZSBBWEV4cGFuZGVkQ2hhbmdlZDoKLSAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVw
ZGF0ZSgqbm90aWZpY2F0aW9uLmZpcnN0LCB7IEFYUHJvcGVydHlOYW1lOjpJc0V4cGFuZGVkIH0p
OworICAgICAgICAgICAgdHJlZS0+cXVldWVOb2RlVXBkYXRlKG5vdGlmaWNhdGlvbi5maXJzdC0+
b2JqZWN0SUQoKSwgeyBBWFByb3BlcnR5TmFtZTo6SXNFeHBhbmRlZCB9KTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICBjYXNlIEFYRXh0ZW5kZWREZXNjcmlwdGlvbkNoYW5nZWQ6Ci0gICAg
ICAgICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUoKm5vdGlmaWNhdGlvbi5maXJzdCwgeyBBWFBy
b3BlcnR5TmFtZTo6RXh0ZW5kZWREZXNjcmlwdGlvbiB9KTsKKyAgICAgICAgICAgIHRyZWUtPnF1
ZXVlTm9kZVVwZGF0ZShub3RpZmljYXRpb24uZmlyc3QtPm9iamVjdElEKCksIHsgQVhQcm9wZXJ0
eU5hbWU6OkV4dGVuZGVkRGVzY3JpcHRpb24gfSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgY2FzZSBBWEZvY3VzYWJsZVN0YXRlQ2hhbmdlZDoKLSAgICAgICAgICAgIHRyZWUtPnF1ZXVl
Tm9kZVVwZGF0ZSgqbm90aWZpY2F0aW9uLmZpcnN0LCB7IEFYUHJvcGVydHlOYW1lOjpDYW5TZXRG
b2N1c0F0dHJpYnV0ZSB9KTsKKyAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZShub3Rp
ZmljYXRpb24uZmlyc3QtPm9iamVjdElEKCksIHsgQVhQcm9wZXJ0eU5hbWU6OkNhblNldEZvY3Vz
QXR0cmlidXRlIH0pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQVhNYXhpbXVt
VmFsdWVDaGFuZ2VkOgotICAgICAgICAgICAgdHJlZS0+cXVldWVOb2RlVXBkYXRlKCpub3RpZmlj
YXRpb24uZmlyc3QsIHsgeyBBWFByb3BlcnR5TmFtZTo6TWF4VmFsdWVGb3JSYW5nZSwgQVhQcm9w
ZXJ0eU5hbWU6OlZhbHVlRm9yUmFuZ2UgfSB9KTsKKyAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9k
ZVVwZGF0ZShub3RpZmljYXRpb24uZmlyc3QtPm9iamVjdElEKCksIHsgeyBBWFByb3BlcnR5TmFt
ZTo6TWF4VmFsdWVGb3JSYW5nZSwgQVhQcm9wZXJ0eU5hbWU6OlZhbHVlRm9yUmFuZ2UgfSB9KTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFYTWVudUxpc3RJdGVtU2VsZWN0ZWQ6
IHsKICAgICAgICAgICAgIFJlZlB0ciBhbmNlc3RvciA9IEFjY2Vzc2liaWxpdHk6OmZpbmRBbmNl
c3RvcjxBY2Nlc3NpYmlsaXR5T2JqZWN0Pigqbm90aWZpY2F0aW9uLmZpcnN0LCBmYWxzZSwgW10g
KGNvbnN0IGF1dG8mIG9iamVjdCkgewogICAgICAgICAgICAgICAgIHJldHVybiBvYmplY3QuaXNN
ZW51KCkgfHwgb2JqZWN0LmlzTWVudUJhcigpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgICAg
ICBpZiAoYW5jZXN0b3IpIHsKLSAgICAgICAgICAgICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUo
KmFuY2VzdG9yLCB7IEFYUHJvcGVydHlOYW1lOjpTZWxlY3RlZENoaWxkcmVuIH0pOwotICAgICAg
ICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZSgqbm90aWZpY2F0aW9uLmZpcnN0LCB7IEFY
UHJvcGVydHlOYW1lOjpJc1NlbGVjdGVkIH0pOworICAgICAgICAgICAgICAgIHRyZWUtPnF1ZXVl
Tm9kZVVwZGF0ZShhbmNlc3Rvci0+b2JqZWN0SUQoKSwgeyBBWFByb3BlcnR5TmFtZTo6U2VsZWN0
ZWRDaGlsZHJlbiB9KTsKKyAgICAgICAgICAgICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUobm90
aWZpY2F0aW9uLmZpcnN0LT5vYmplY3RJRCgpLCB7IEFYUHJvcGVydHlOYW1lOjpJc1NlbGVjdGVk
IH0pOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAg
ICAgY2FzZSBBWE1pbmltdW1WYWx1ZUNoYW5nZWQ6Ci0gICAgICAgICAgICB0cmVlLT5xdWV1ZU5v
ZGVVcGRhdGUoKm5vdGlmaWNhdGlvbi5maXJzdCwgeyB7IEFYUHJvcGVydHlOYW1lOjpNaW5WYWx1
ZUZvclJhbmdlLCBBWFByb3BlcnR5TmFtZTo6VmFsdWVGb3JSYW5nZSB9IH0pOworICAgICAgICAg
ICAgdHJlZS0+cXVldWVOb2RlVXBkYXRlKG5vdGlmaWNhdGlvbi5maXJzdC0+b2JqZWN0SUQoKSwg
eyB7IEFYUHJvcGVydHlOYW1lOjpNaW5WYWx1ZUZvclJhbmdlLCBBWFByb3BlcnR5TmFtZTo6VmFs
dWVGb3JSYW5nZSB9IH0pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQVhOYW1l
Q2hhbmdlZDoKLSAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZSgqbm90aWZpY2F0aW9u
LmZpcnN0LCB7IEFYUHJvcGVydHlOYW1lOjpOYW1lQXR0cmlidXRlIH0pOworICAgICAgICAgICAg
dHJlZS0+cXVldWVOb2RlVXBkYXRlKG5vdGlmaWNhdGlvbi5maXJzdC0+b2JqZWN0SUQoKSwgeyBB
WFByb3BlcnR5TmFtZTo6TmFtZUF0dHJpYnV0ZSB9KTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBjYXNlIEFYT3JpZW50YXRpb25DaGFuZ2VkOgotICAgICAgICAgICAgdHJlZS0+cXVldWVO
b2RlVXBkYXRlKCpub3RpZmljYXRpb24uZmlyc3QsIHsgQVhQcm9wZXJ0eU5hbWU6Ok9yaWVudGF0
aW9uIH0pOworICAgICAgICAgICAgdHJlZS0+cXVldWVOb2RlVXBkYXRlKG5vdGlmaWNhdGlvbi5m
aXJzdC0+b2JqZWN0SUQoKSwgeyBBWFByb3BlcnR5TmFtZTo6T3JpZW50YXRpb24gfSk7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBWFBvc2l0aW9uSW5TZXRDaGFuZ2VkOgotICAg
ICAgICAgICAgdHJlZS0+cXVldWVOb2RlVXBkYXRlKCpub3RpZmljYXRpb24uZmlyc3QsIHsgeyBB
WFByb3BlcnR5TmFtZTo6UG9zSW5TZXQsIEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0c1Bvc0luU2V0
IH0gfSk7CisgICAgICAgICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUobm90aWZpY2F0aW9uLmZp
cnN0LT5vYmplY3RJRCgpLCB7IHsgQVhQcm9wZXJ0eU5hbWU6OlBvc0luU2V0LCBBWFByb3BlcnR5
TmFtZTo6U3VwcG9ydHNQb3NJblNldCB9IH0pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGNhc2UgQVhQb3BvdmVyVGFyZ2V0Q2hhbmdlZDoKLSAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9k
ZVVwZGF0ZSgqbm90aWZpY2F0aW9uLmZpcnN0LCB7IHsgQVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRz
RXhwYW5kZWQsIEFYUHJvcGVydHlOYW1lOjpJc0V4cGFuZGVkIH0gfSk7CisgICAgICAgICAgICB0
cmVlLT5xdWV1ZU5vZGVVcGRhdGUobm90aWZpY2F0aW9uLmZpcnN0LT5vYmplY3RJRCgpLCB7IHsg
QVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRzRXhwYW5kZWQsIEFYUHJvcGVydHlOYW1lOjpJc0V4cGFu
ZGVkIH0gfSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBWFNlbGVjdGVkVGV4
dENoYW5nZWQ6Ci0gICAgICAgICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUoKm5vdGlmaWNhdGlv
bi5maXJzdCwgeyBBWFByb3BlcnR5TmFtZTo6U2VsZWN0ZWRUZXh0UmFuZ2UgfSk7CisgICAgICAg
ICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUobm90aWZpY2F0aW9uLmZpcnN0LT5vYmplY3RJRCgp
LCB7IEFYUHJvcGVydHlOYW1lOjpTZWxlY3RlZFRleHRSYW5nZSB9KTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICBjYXNlIEFYU29ydERpcmVjdGlvbkNoYW5nZWQ6Ci0gICAgICAgICAgICB0
cmVlLT5xdWV1ZU5vZGVVcGRhdGUoKm5vdGlmaWNhdGlvbi5maXJzdCwgeyBBWFByb3BlcnR5TmFt
ZTo6U29ydERpcmVjdGlvbiB9KTsKKyAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZShu
b3RpZmljYXRpb24uZmlyc3QtPm9iamVjdElEKCksIHsgQVhQcm9wZXJ0eU5hbWU6OlNvcnREaXJl
Y3Rpb24gfSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBWElkQXR0cmlidXRl
Q2hhbmdlZDoKLSAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZSgqbm90aWZpY2F0aW9u
LmZpcnN0LCB7IEFYUHJvcGVydHlOYW1lOjpJZGVudGlmaWVyQXR0cmlidXRlIH0pOworICAgICAg
ICAgICAgdHJlZS0+cXVldWVOb2RlVXBkYXRlKG5vdGlmaWNhdGlvbi5maXJzdC0+b2JqZWN0SUQo
KSwgeyBBWFByb3BlcnR5TmFtZTo6SWRlbnRpZmllckF0dHJpYnV0ZSB9KTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICBjYXNlIEFYUmVhZE9ubHlTdGF0dXNDaGFuZ2VkOgotICAgICAgICAg
ICAgdHJlZS0+cXVldWVOb2RlVXBkYXRlKCpub3RpZmljYXRpb24uZmlyc3QsIHsgQVhQcm9wZXJ0
eU5hbWU6OkNhblNldFZhbHVlQXR0cmlidXRlIH0pOworICAgICAgICAgICAgdHJlZS0+cXVldWVO
b2RlVXBkYXRlKG5vdGlmaWNhdGlvbi5maXJzdC0+b2JqZWN0SUQoKSwgeyBBWFByb3BlcnR5TmFt
ZTo6Q2FuU2V0VmFsdWVBdHRyaWJ1dGUgfSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
Y2FzZSBBWFJlcXVpcmVkU3RhdHVzQ2hhbmdlZDoKLSAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9k
ZVVwZGF0ZSgqbm90aWZpY2F0aW9uLmZpcnN0LCB7IEFYUHJvcGVydHlOYW1lOjpJc1JlcXVpcmVk
IH0pOworICAgICAgICAgICAgdHJlZS0+cXVldWVOb2RlVXBkYXRlKG5vdGlmaWNhdGlvbi5maXJz
dC0+b2JqZWN0SUQoKSwgeyBBWFByb3BlcnR5TmFtZTo6SXNSZXF1aXJlZCB9KTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFYUm9sZURlc2NyaXB0aW9uQ2hhbmdlZDoKLSAgICAg
ICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZSgqbm90aWZpY2F0aW9uLmZpcnN0LCB7IEFYUHJv
cGVydHlOYW1lOjpSb2xlRGVzY3JpcHRpb24gfSk7CisgICAgICAgICAgICB0cmVlLT5xdWV1ZU5v
ZGVVcGRhdGUobm90aWZpY2F0aW9uLmZpcnN0LT5vYmplY3RJRCgpLCB7IEFYUHJvcGVydHlOYW1l
OjpSb2xlRGVzY3JpcHRpb24gfSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBB
WFJvd0luZGV4Q2hhbmdlZDoKLSAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZSgqbm90
aWZpY2F0aW9uLmZpcnN0LCB7IEFYUHJvcGVydHlOYW1lOjpBWFJvd0luZGV4IH0pOworICAgICAg
ICAgICAgdHJlZS0+cXVldWVOb2RlVXBkYXRlKG5vdGlmaWNhdGlvbi5maXJzdC0+b2JqZWN0SUQo
KSwgeyBBWFByb3BlcnR5TmFtZTo6QVhSb3dJbmRleCB9KTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICBjYXNlIEFYUm93U3BhbkNoYW5nZWQ6Ci0gICAgICAgICAgICB0cmVlLT5xdWV1ZU5v
ZGVVcGRhdGUoKm5vdGlmaWNhdGlvbi5maXJzdCwgeyBBWFByb3BlcnR5TmFtZTo6Um93SW5kZXhS
YW5nZSB9KTsKKyAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZShub3RpZmljYXRpb24u
Zmlyc3QtPm9iamVjdElEKCksIHsgQVhQcm9wZXJ0eU5hbWU6OlJvd0luZGV4UmFuZ2UgfSk7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBWENlbGxTY29wZUNoYW5nZWQ6Ci0gICAg
ICAgICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUoKm5vdGlmaWNhdGlvbi5maXJzdCwgeyB7IEFY
UHJvcGVydHlOYW1lOjpDZWxsU2NvcGUsIEFYUHJvcGVydHlOYW1lOjpJc0NvbHVtbkhlYWRlciwg
QVhQcm9wZXJ0eU5hbWU6OklzUm93SGVhZGVyIH0gfSk7CisgICAgICAgICAgICB0cmVlLT5xdWV1
ZU5vZGVVcGRhdGUobm90aWZpY2F0aW9uLmZpcnN0LT5vYmplY3RJRCgpLCB7IHsgQVhQcm9wZXJ0
eU5hbWU6OkNlbGxTY29wZSwgQVhQcm9wZXJ0eU5hbWU6OklzQ29sdW1uSGVhZGVyLCBBWFByb3Bl
cnR5TmFtZTo6SXNSb3dIZWFkZXIgfSB9KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAv
LyAgRklYTUU6IENvbnRyYXJ5IHRvIHRoZSBuYW1lICJBWFNlbGVjdGVkQ2VsbHNDaGFuZ2VkIiwg
dGhpcyBub3RpZmljYXRpb24gY2FuIGJlIHBvc3RlZCBvbiBhIGNlbGwKICAgICAgICAgLy8gIHdo
byBoYXMgY2hhbmdlZCBzZWxlY3RlZCBzdGF0ZSwgbm90IGp1c3Qgb24gdGFibGUgb3IgZ3JpZCB3
aG8gaGFzIGNoYW5nZWQgaXRzIHNlbGVjdGVkIGNlbGxzLgogICAgICAgICBjYXNlIEFYU2VsZWN0
ZWRDZWxsc0NoYW5nZWQ6CiAgICAgICAgIGNhc2UgQVhTZWxlY3RlZFN0YXRlQ2hhbmdlZDoKLSAg
ICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZSgqbm90aWZpY2F0aW9uLmZpcnN0LCB7IEFY
UHJvcGVydHlOYW1lOjpJc1NlbGVjdGVkIH0pOworICAgICAgICAgICAgdHJlZS0+cXVldWVOb2Rl
VXBkYXRlKG5vdGlmaWNhdGlvbi5maXJzdC0+b2JqZWN0SUQoKSwgeyBBWFByb3BlcnR5TmFtZTo6
SXNTZWxlY3RlZCB9KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFYU2V0U2l6
ZUNoYW5nZWQ6Ci0gICAgICAgICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUoKm5vdGlmaWNhdGlv
bi5maXJzdCwgeyB7IEFYUHJvcGVydHlOYW1lOjpTZXRTaXplLCBBWFByb3BlcnR5TmFtZTo6U3Vw
cG9ydHNTZXRTaXplIH0gfSk7CisgICAgICAgICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUobm90
aWZpY2F0aW9uLmZpcnN0LT5vYmplY3RJRCgpLCB7IHsgQVhQcm9wZXJ0eU5hbWU6OlNldFNpemUs
IEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0c1NldFNpemUgfSB9KTsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICBjYXNlIEFYVGFibGVIZWFkZXJzQ2hhbmdlZDoKLSAgICAgICAgICAgIHRyZWUt
PnF1ZXVlTm9kZVVwZGF0ZSgqbm90aWZpY2F0aW9uLmZpcnN0LCB7IEFYUHJvcGVydHlOYW1lOjpD
b2x1bW5IZWFkZXJzIH0pOworICAgICAgICAgICAgdHJlZS0+cXVldWVOb2RlVXBkYXRlKG5vdGlm
aWNhdGlvbi5maXJzdC0+b2JqZWN0SUQoKSwgeyBBWFByb3BlcnR5TmFtZTo6Q29sdW1uSGVhZGVy
cyB9KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFYVGV4dENvbXBvc2l0aW9u
Q2hhbmdlZDoKLSAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZSgqbm90aWZpY2F0aW9u
LmZpcnN0LCB7IEFYUHJvcGVydHlOYW1lOjpUZXh0SW5wdXRNYXJrZWRUZXh0TWFya2VyUmFuZ2Ug
fSk7CisgICAgICAgICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUobm90aWZpY2F0aW9uLmZpcnN0
LT5vYmplY3RJRCgpLCB7IEFYUHJvcGVydHlOYW1lOjpUZXh0SW5wdXRNYXJrZWRUZXh0TWFya2Vy
UmFuZ2UgfSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBWFVSTENoYW5nZWQ6
Ci0gICAgICAgICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUoKm5vdGlmaWNhdGlvbi5maXJzdCwg
eyB7IEFYUHJvcGVydHlOYW1lOjpVUkwsIEFYUHJvcGVydHlOYW1lOjpJbnRlcm5hbExpbmtFbGVt
ZW50IH0gfSk7CisgICAgICAgICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUobm90aWZpY2F0aW9u
LmZpcnN0LT5vYmplY3RJRCgpLCB7IHsgQVhQcm9wZXJ0eU5hbWU6OlVSTCwgQVhQcm9wZXJ0eU5h
bWU6OkludGVybmFsTGlua0VsZW1lbnQgfSB9KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBjYXNlIEFYS2V5U2hvcnRjdXRzQ2hhbmdlZDoKLSAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9k
ZVVwZGF0ZSgqbm90aWZpY2F0aW9uLmZpcnN0LCB7IEFYUHJvcGVydHlOYW1lOjpLZXlTaG9ydGN1
dHMgfSk7CisgICAgICAgICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUobm90aWZpY2F0aW9uLmZp
cnN0LT5vYmplY3RJRCgpLCB7IEFYUHJvcGVydHlOYW1lOjpLZXlTaG9ydGN1dHMgfSk7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBWFZpc2liaWxpdHlDaGFuZ2VkOgotICAgICAg
ICAgICAgdHJlZS0+cXVldWVOb2RlVXBkYXRlKCpub3RpZmljYXRpb24uZmlyc3QsIHsgQVhQcm9w
ZXJ0eU5hbWU6OklzVmlzaWJsZSB9KTsKKyAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0
ZShub3RpZmljYXRpb24uZmlyc3QtPm9iamVjdElEKCksIHsgQVhQcm9wZXJ0eU5hbWU6OklzVmlz
aWJsZSB9KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFYQWN0aXZlRGVzY2Vu
ZGFudENoYW5nZWQ6CiAgICAgICAgIGNhc2UgQVhSb2xlQ2hhbmdlZDoKQEAgLTQ0MDQsNyArNDQw
NCw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVlKEFjY2Vzc2liaWxp
dHlPYmplY3QqIGF4T2JqZWN0LCBBWFByb3BlcnR5CiB2b2lkIEFYT2JqZWN0Q2FjaGU6OnVwZGF0
ZUlzb2xhdGVkVHJlZShBY2Nlc3NpYmlsaXR5T2JqZWN0JiBheE9iamVjdCwgQVhQcm9wZXJ0eU5h
bWUgcHJvcGVydHkpIGNvbnN0CiB7CiAgICAgaWYgKFJlZlB0ciB0cmVlID0gQVhJc29sYXRlZFRy
ZWU6OnRyZWVGb3JQYWdlSUQobV9wYWdlSUQpKQotICAgICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRh
dGUoYXhPYmplY3QsIHsgcHJvcGVydHkgfSk7CisgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0
ZShheE9iamVjdC5vYmplY3RJRCgpLCB7IHByb3BlcnR5IH0pOwogfQogCiB2b2lkIEFYT2JqZWN0
Q2FjaGU6OnN0YXJ0VXBkYXRlVHJlZVNuYXBzaG90VGltZXIoKQpAQCAtNTAxNiw5ICs1MDE2LDEx
IEBAIGJvb2wgQVhPYmplY3RDYWNoZTo6aXNEZXNjZW5kYW50T2ZSZWxhdGVkTm9kZShOb2RlJiBu
b2RlKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotc3RkOjpvcHRpb25hbDxMaXN0SGFzaFNldDxB
WElEPj4gQVhPYmplY3RDYWNoZTo6cmVsYXRlZE9iamVjdElEc0Zvcihjb25zdCBBWENvcmVPYmpl
Y3QmIG9iamVjdCwgQVhSZWxhdGlvblR5cGUgcmVsYXRpb25UeXBlKQorc3RkOjpvcHRpb25hbDxM
aXN0SGFzaFNldDxBWElEPj4gQVhPYmplY3RDYWNoZTo6cmVsYXRlZE9iamVjdElEc0Zvcihjb25z
dCBBWENvcmVPYmplY3QmIG9iamVjdCwgQVhSZWxhdGlvblR5cGUgcmVsYXRpb25UeXBlLCBVcGRh
dGVSZWxhdGlvbnMgdXBkYXRlUmVsYXRpb25zKQogewotICAgIHVwZGF0ZVJlbGF0aW9uc0lmTmVl
ZGVkKCk7CisgICAgaWYgKHVwZGF0ZVJlbGF0aW9ucyA9PSBVcGRhdGVSZWxhdGlvbnM6OlllcykK
KyAgICAgICAgdXBkYXRlUmVsYXRpb25zSWZOZWVkZWQoKTsKKwogICAgIGF1dG8gcmVsYXRpb25z
SXRlcmF0b3IgPSBtX3JlbGF0aW9ucy5maW5kKG9iamVjdC5vYmplY3RJRCgpKTsKICAgICBpZiAo
cmVsYXRpb25zSXRlcmF0b3IgPT0gbV9yZWxhdGlvbnMuZW5kKCkpCiAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
T2JqZWN0Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNo
ZS5oCmluZGV4IDNlODA2Y2IxYTg0MC4uZjUzODVkZTZkZGUwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaApAQCAtNDg2LDggKzQ4Niw5IEBAIHB1Ymxp
YzoKIAogICAgIEFYVHJlZURhdGEgdHJlZURhdGEoKTsKIAorICAgIGVudW0gY2xhc3MgVXBkYXRl
UmVsYXRpb25zIDogYm9vbCB7IE5vLCBZZXMgfTsKICAgICAvLyBSZXR1cm5zIHRoZSBJRHMgb2Yg
dGhlIG9iamVjdHMgdGhhdCByZWxhdGUgdG8gdGhlIGdpdmVuIG9iamVjdCB3aXRoIHRoZSBzcGVj
aWZpZWQgcmVsYXRpb25zaGlwLgotICAgIHN0ZDo6b3B0aW9uYWw8TGlzdEhhc2hTZXQ8QVhJRD4+
IHJlbGF0ZWRPYmplY3RJRHNGb3IoY29uc3QgQVhDb3JlT2JqZWN0JiwgQVhSZWxhdGlvblR5cGUp
OworICAgIHN0ZDo6b3B0aW9uYWw8TGlzdEhhc2hTZXQ8QVhJRD4+IHJlbGF0ZWRPYmplY3RJRHNG
b3IoY29uc3QgQVhDb3JlT2JqZWN0JiwgQVhSZWxhdGlvblR5cGUsIFVwZGF0ZVJlbGF0aW9ucyA9
IFVwZGF0ZVJlbGF0aW9uczo6WWVzKTsKICAgICB2b2lkIHVwZGF0ZVJlbGF0aW9ucyhFbGVtZW50
JiwgY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNv
bGF0ZWRUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVl
L0FYSXNvbGF0ZWRUcmVlLmNwcAppbmRleCA4Zjg2MDUyNTc4NTEuLjBjNmZmY2UwNjFiOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZFRyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0
cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcApAQCAtNTEyLDcgKzUxMiw3IEBAIHZvaWQgQVhJc29sYXRl
ZFRyZWU6OnVwZGF0ZVByb3BlcnRpZXNGb3JTZWxmQW5kRGVzY2VuZGFudHMoQWNjZXNzaWJpbGl0
eU9iamVjdCYKICAgICAgICAgcHJvcGVydHlTZXQuYWRkKHByb3BlcnR5KTsKIAogICAgIEFjY2Vz
c2liaWxpdHk6OmVudW1lcmF0ZURlc2NlbmRhbnRzPEFYQ29yZU9iamVjdD4oYXhPYmplY3QsIHRy
dWUsIFsmcHJvcGVydHlTZXQsIHRoaXNdIChhdXRvJiBkZXNjZW5kYW50KSB7Ci0gICAgICAgIHF1
ZXVlTm9kZVVwZGF0ZShkZXNjZW5kYW50LCB7IHByb3BlcnR5U2V0IH0pOworICAgICAgICBxdWV1
ZU5vZGVVcGRhdGUoZGVzY2VuZGFudC5vYmplY3RJRCgpLCB7IHByb3BlcnR5U2V0IH0pOwogICAg
IH0pOwogfQogCkBAIC03MjcsNyArNzI3LDcgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6dXBkYXRl
RGVwZW5kZW50UHJvcGVydGllcyhBY2Nlc3NpYmlsaXR5T2JqZWN0JiBheE9iamVjdCkKICAgICBi
b29sIHVwZGF0ZVRhYmxlQW5jZXN0b3JDb2x1bW5zID0gaXM8QWNjZXNzaWJpbGl0eVRhYmxlUm93
PihheE9iamVjdCk7CiAgICAgZm9yIChSZWZQdHIgYW5jZXN0b3IgPSBheE9iamVjdC5wYXJlbnRP
YmplY3QoKTsgYW5jZXN0b3I7IGFuY2VzdG9yID0gYW5jZXN0b3ItPnBhcmVudE9iamVjdCgpKSB7
CiAgICAgICAgIGlmIChhbmNlc3Rvci0+aXNUcmVlKCkpIHsKLSAgICAgICAgICAgIHF1ZXVlTm9k
ZVVwZGF0ZSgqYW5jZXN0b3IsIHsgQVhQcm9wZXJ0eU5hbWU6OkFSSUFUcmVlUm93cyB9KTsKKyAg
ICAgICAgICAgIHF1ZXVlTm9kZVVwZGF0ZShhbmNlc3Rvci0+b2JqZWN0SUQoKSwgeyBBWFByb3Bl
cnR5TmFtZTo6QVJJQVRyZWVSb3dzIH0pOwogICAgICAgICAgICAgaWYgKCF1cGRhdGVUYWJsZUFu
Y2VzdG9yQ29sdW1ucykKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtMTAy
MywxMiArMTAyMywxMiBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpyZW1vdmVOb2RlKGNvbnN0IEFj
Y2Vzc2liaWxpdHlPYmplY3QmIGF4T2JqZWN0KQogICAgIEFYTE9HKG1ha2VTdHJpbmcoIm9iamVj
dElEICIsIGF4T2JqZWN0Lm9iamVjdElEKCkubG9nZ2luZ1N0cmluZygpKSk7CiAgICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKIAotICAgIGlmIChheE9iamVjdC5pc0xhYmVsKCkpIHsKLSAgICAg
ICAgLy8gVXBkYXRlIHRoZSBsYWJlbGVkIG9iamVjdHMgc2luY2Ugb25lIG9mIHRoZWlyIGxhYmVs
cyB3YXMgcmVtb3ZlZC4KLSAgICAgICAgYXV0byBsYWJlbGVkT2JqZWN0cyA9IGF4T2JqZWN0Lmxh
YmVsRm9yT2JqZWN0cygpOwotICAgICAgICBmb3IgKGF1dG8mIGxhYmVsZWRPYmplY3QgOiBsYWJl
bGVkT2JqZWN0cykgeworICAgIGF1dG8gbGFiZWxlZE9iamVjdElEcyA9IGF4T2JqZWN0Q2FjaGUo
KSA/IGF4T2JqZWN0Q2FjaGUoKS0+cmVsYXRlZE9iamVjdElEc0ZvcihheE9iamVjdCwgQVhSZWxh
dGlvblR5cGU6OkxhYmVsRm9yLCBBWE9iamVjdENhY2hlOjpVcGRhdGVSZWxhdGlvbnM6Ok5vKSA6
IHN0ZDo6bnVsbG9wdDsKKyAgICBpZiAobGFiZWxlZE9iamVjdElEcykgeworICAgICAgICAvLyBV
cGRhdGUgdGhlIGxhYmVsZWQgb2JqZWN0cyBzaW5jZSBheE9iamVjdCBpcyBvbmUgb2YgdGhlaXIg
bGFiZWxzIGFuZCBpdCBpcyBiZWluZyByZW1vdmVkLgorICAgICAgICBmb3IgKEFYSUQgbGFiZWxl
ZE9iamVjdElEIDogKmxhYmVsZWRPYmplY3RJRHMpIHsKICAgICAgICAgICAgIC8vIFRoZSBsYWJl
bC90aXRsZSBvZiBhbiBpc29sYXRlZCBvYmplY3QgaXMgY29tcHV0ZWQgYmFzZWQgb24gaXRzIEFj
Y2Vzc2liaWxpdHlUZXh0IHByb3BwZXJ0eSwgdGh1cyB1cGRhdGUgaXQuCi0gICAgICAgICAgICBx
dWV1ZU5vZGVVcGRhdGUoKmxhYmVsZWRPYmplY3QsIHsgQVhQcm9wZXJ0eU5hbWU6OkFjY2Vzc2li
aWxpdHlUZXh0IH0pOworICAgICAgICAgICAgcXVldWVOb2RlVXBkYXRlKGxhYmVsZWRPYmplY3RJ
RCwgeyBBWFByb3BlcnR5TmFtZTo6QWNjZXNzaWJpbGl0eVRleHQgfSk7CiAgICAgICAgIH0KICAg
ICB9CiAKQEAgLTEyMzMsMjYgKzEyMzMsMjYgQEAgQVhUcmVlUHRyIGZpbmRBWFRyZWUoRnVuY3Rp
b248Ym9vbChBWFRyZWVQdHIpPiYmIG1hdGNoKQogI2VuZGlmCiB9CiAKLXZvaWQgQVhJc29sYXRl
ZFRyZWU6OnF1ZXVlTm9kZVVwZGF0ZShBWENvcmVPYmplY3QmIG9iamVjdCwgY29uc3QgTm9kZVVw
ZGF0ZU9wdGlvbnMmIG9wdGlvbnMpCit2b2lkIEFYSXNvbGF0ZWRUcmVlOjpxdWV1ZU5vZGVVcGRh
dGUoQVhJRCBvYmplY3RJRCwgY29uc3QgTm9kZVVwZGF0ZU9wdGlvbnMmIG9wdGlvbnMpCiB7CiAg
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAogICAgIGlmICghb3B0aW9ucy5zaG91bGRVcGRh
dGVOb2RlICYmIG9wdGlvbnMucHJvcGVydGllcy5zaXplKCkpIHsKICAgICAgICAgLy8gSWYgd2Un
cmUgZ29pbmcgdG8gcmVjb21wdXRlIGFsbCBwcm9wZXJ0aWVzIGZvciB0aGUgbm9kZSAoaS5lLiwg
dGhlIG5vZGUgaXMgaW4gbV9uZWVkc1VwZGF0ZU5vZGUpLAogICAgICAgICAvLyBkb24ndCBib3Ro
ZXIgcXVldWVpbmcgYW55IGluZGl2aWR1YWwgcHJvcGVydHkgdXBkYXRlcy4KLSAgICAgICAgaWYg
KG1fbmVlZHNVcGRhdGVOb2RlLmNvbnRhaW5zKG9iamVjdC5vYmplY3RJRCgpKSkKKyAgICAgICAg
aWYgKG1fbmVlZHNVcGRhdGVOb2RlLmNvbnRhaW5zKG9iamVjdElEKSkKICAgICAgICAgICAgIHJl
dHVybjsKIAotICAgICAgICBhdXRvIGFkZFJlc3VsdCA9IG1fbmVlZHNQcm9wZXJ0eVVwZGF0ZXMu
YWRkKG9iamVjdC5vYmplY3RJRCgpLCBvcHRpb25zLnByb3BlcnRpZXMpOworICAgICAgICBhdXRv
IGFkZFJlc3VsdCA9IG1fbmVlZHNQcm9wZXJ0eVVwZGF0ZXMuYWRkKG9iamVjdElELCBvcHRpb25z
LnByb3BlcnRpZXMpOwogICAgICAgICBpZiAoIWFkZFJlc3VsdC5pc05ld0VudHJ5KQogICAgICAg
ICAgICAgYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS5mb3JtVW5pb24ob3B0aW9ucy5wcm9wZXJ0
aWVzKTsKICAgICB9CiAKICAgICBpZiAob3B0aW9ucy5zaG91bGRVcGRhdGVDaGlsZHJlbikKLSAg
ICAgICAgbV9uZWVkc1VwZGF0ZUNoaWxkcmVuLmFkZChvYmplY3Qub2JqZWN0SUQoKSk7CisgICAg
ICAgIG1fbmVlZHNVcGRhdGVDaGlsZHJlbi5hZGQob2JqZWN0SUQpOwogCiAgICAgaWYgKG9wdGlv
bnMuc2hvdWxkVXBkYXRlTm9kZSkKLSAgICAgICAgbV9uZWVkc1VwZGF0ZU5vZGUuYWRkKG9iamVj
dC5vYmplY3RJRCgpKTsKKyAgICAgICAgbV9uZWVkc1VwZGF0ZU5vZGUuYWRkKG9iamVjdElEKTsK
IAogICAgIGlmIChhdXRvKiBjYWNoZSA9IGF4T2JqZWN0Q2FjaGUoKSkKICAgICAgICAgY2FjaGUt
PnN0YXJ0VXBkYXRlVHJlZVNuYXBzaG90VGltZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oCmluZGV4
IGYxYWJjZjhkNDhiOC4uMTIwMWNkOTFlMzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgKQEAgLTM4
Myw3ICszODMsNyBAQCBwdWJsaWM6CiAgICAgQVhUZXh0TWFya2VyUmFuZ2Ugc2VsZWN0ZWRUZXh0
TWFya2VyUmFuZ2UoKTsKICAgICB2b2lkIHNldFNlbGVjdGVkVGV4dE1hcmtlclJhbmdlKEFYVGV4
dE1hcmtlclJhbmdlJiYpOwogCi0gICAgdm9pZCBxdWV1ZU5vZGVVcGRhdGUoQVhDb3JlT2JqZWN0
JiwgY29uc3QgTm9kZVVwZGF0ZU9wdGlvbnMmKTsKKyAgICB2b2lkIHF1ZXVlTm9kZVVwZGF0ZShB
WElELCBjb25zdCBOb2RlVXBkYXRlT3B0aW9ucyYpOwogICAgIHZvaWQgcHJvY2Vzc1F1ZXVlZE5v
ZGVVcGRhdGVzKCk7CiAKIHByaXZhdGU6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>469675</attachid>
            <date>2024-02-02 07:48:32 -0800</date>
            <delta_ts>2024-02-02 08:00:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-268429-20240202104831.patch</filename>
            <type>text/plain</type>
            <size>19656</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">RnJvbSA1MzkyYzRiNzgwYTBlZDFhOWZhZmU2NzgyODIxYTcwNzE3Nzc5MTg3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXMgR29uemFsZXogPGFuZHJlc2dfMjJAYXBwbGUuY29t
PgpEYXRlOiBUdWUsIDMwIEphbiAyMDI0IDIwOjM4OjU4IC0wNTAwClN1YmplY3Q6IFtQQVRDSF0g
QVg6IENyYXNoIGluIEFYSXNvbGF0ZWRUcmVlOjpyZW1vdmVOb2RlIGR1ZSB0byB1cGRhdGUgb2YK
IHJlbGF0aW9ucyB0cmlnZ2VyaW5nIGEgbGF5b3V0LiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjY4NDI5CiA8cmRhcjovL3Byb2JsZW0vMTIxOTc2OTA3PgoKUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpUaGUgQWNjZXNzaWJpbGl0eU9iamVjdDo6aXNMYWJlbCBt
ZXRob2QgY2F1c2VzIGEgcmVsYXRpb25zIHVwZGF0ZSwgdGhhdCBpbiB0dXJuIHRyaWdnZXJzIGEg
bGF5b3V0IHVwZGF0ZSB3aGlsZSBidWlsZGluZyBpc29sYXRlZCBvYmplY3RzLCBhbmQgdGh1cyBj
YXVzaW5nIGEgY3Jhc2guIFRoaXMgcGF0Y2ggZml4ZXMgdGhlIHByb2JsZW0gYnkgZGV0ZXJtaW5p
bmcgd2hldGhlciB0aGUgb2JqZWN0IHRoYXQgaXMgYmVpbmcgcmVtb3ZlZCBpcyBhIGxhYmVsIGZv
ciBvdGhlciBvYmplY3RzIHdpdGhvdXQgdXBkYXRpbmcgdGhlIHJlbGF0aW9ucy4KCiogU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6OnVwZGF0ZUlzb2xhdGVkVHJlZSk6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp1
cGRhdGVJc29sYXRlZFRyZWUgY29uc3QpOgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cmVsYXRl
ZE9iamVjdElEc0Zvcik6CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmg6CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZFRyZWUuY3BwOgooV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnVwZGF0ZVByb3BlcnRpZXNG
b3JTZWxmQW5kRGVzY2VuZGFudHMpOgooV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnVwZGF0ZURl
cGVuZGVudFByb3BlcnRpZXMpOgooV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnJlbW92ZU5vZGUp
OgooV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnF1ZXVlTm9kZVVwZGF0ZSk6CiogU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaDoKLS0tCiAu
Li4vV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwICAgfCA4NCArKysrKysr
KysrLS0tLS0tLS0tCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
aCAgfCAgMyArLQogLi4uL2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAgICAgICAgICAg
IHwgMjQgKysrLS0tCiAuLi4vaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmggICAgICAgICAg
ICAgfCAgMiArLQogNCBmaWxlcyBjaGFuZ2VkLCA1OCBpbnNlcnRpb25zKCspLCA1NSBkZWxldGlv
bnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0
Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNw
cAppbmRleCBjMWVlZTMxZGU1M2QuLmJiM2ZjMTZhMzRiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC00MjE4LDcgKzQyMTgsNyBAQCB2
b2lkIEFYT2JqZWN0Q2FjaGU6OnVwZGF0ZUlzb2xhdGVkVHJlZShjb25zdCBWZWN0b3I8c3RkOjpw
YWlyPFJlZlB0cjxBY2Nlc3NpYmlsaQogICAgICAgICBpZiAoIXVwZGF0ZWRGaWVsZHMuY29udGFp
bnMoRmllbGQ6OkNoaWxkcmVuKSkgewogICAgICAgICAgICAgdXBkYXRlZEZpZWxkcy5hZGQoRmll
bGQ6OkNoaWxkcmVuKTsKICAgICAgICAgICAgIHVwZGF0ZWRPYmplY3RzLnNldChheE9iamVjdC0+
b2JqZWN0SUQoKSwgdXBkYXRlZEZpZWxkcyk7Ci0gICAgICAgICAgICB0cmVlLT5xdWV1ZU5vZGVV
cGRhdGUoKmF4T2JqZWN0LCBOb2RlVXBkYXRlT3B0aW9uczo6Y2hpbGRyZW5VcGRhdGUoKSk7Cisg
ICAgICAgICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUoYXhPYmplY3QtPm9iamVjdElEKCksIE5v
ZGVVcGRhdGVPcHRpb25zOjpjaGlsZHJlblVwZGF0ZSgpKTsKICAgICAgICAgfQogICAgIH07CiAg
ICAgYXV0byB1cGRhdGVEZXBlbmRlbnRQcm9wZXJ0aWVzID0gWyZdIChSZWZQdHI8QWNjZXNzaWJp
bGl0eU9iamVjdD4gYXhPYmplY3QpIHsKQEAgLTQyMzQsNyArNDIzNCw3IEBAIHZvaWQgQVhPYmpl
Y3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVlKGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8UmVmUHRy
PEFjY2Vzc2liaWxpCiAgICAgICAgIGlmICghdXBkYXRlZEZpZWxkcy5jb250YWlucyhGaWVsZDo6
Tm9kZSkpIHsKICAgICAgICAgICAgIHVwZGF0ZWRGaWVsZHMuYWRkKEZpZWxkOjpOb2RlKTsKICAg
ICAgICAgICAgIHVwZGF0ZWRPYmplY3RzLnNldChheE9iamVjdC0+b2JqZWN0SUQoKSwgdXBkYXRl
ZEZpZWxkcyk7Ci0gICAgICAgICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUoKmF4T2JqZWN0LCBO
b2RlVXBkYXRlT3B0aW9uczo6bm9kZVVwZGF0ZSgpKTsKKyAgICAgICAgICAgIHRyZWUtPnF1ZXVl
Tm9kZVVwZGF0ZShheE9iamVjdC0+b2JqZWN0SUQoKSwgTm9kZVVwZGF0ZU9wdGlvbnM6Om5vZGVV
cGRhdGUoKSk7CiAgICAgICAgIH0KICAgICB9OwogCkBAIC00MjQ1LDEyMyArNDI0NSwxMjMgQEAg
dm9pZCBBWE9iamVjdENhY2hlOjp1cGRhdGVJc29sYXRlZFRyZWUoY29uc3QgVmVjdG9yPHN0ZDo6
cGFpcjxSZWZQdHI8QWNjZXNzaWJpbGkKIAogICAgICAgICBzd2l0Y2ggKG5vdGlmaWNhdGlvbi5z
ZWNvbmQpIHsKICAgICAgICAgY2FzZSBBWEFjY2Vzc0tleUNoYW5nZWQ6Ci0gICAgICAgICAgICB0
cmVlLT5xdWV1ZU5vZGVVcGRhdGUoKm5vdGlmaWNhdGlvbi5maXJzdCwgeyBBWFByb3BlcnR5TmFt
ZTo6QWNjZXNzS2V5IH0pOworICAgICAgICAgICAgdHJlZS0+cXVldWVOb2RlVXBkYXRlKG5vdGlm
aWNhdGlvbi5maXJzdC0+b2JqZWN0SUQoKSwgeyBBWFByb3BlcnR5TmFtZTo6QWNjZXNzS2V5IH0p
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQVhBdXRvZmlsbFR5cGVDaGFuZ2Vk
OgotICAgICAgICAgICAgdHJlZS0+cXVldWVOb2RlVXBkYXRlKCpub3RpZmljYXRpb24uZmlyc3Qs
IHsgQVhQcm9wZXJ0eU5hbWU6OlZhbHVlQXV0b2ZpbGxCdXR0b25UeXBlIH0pOworICAgICAgICAg
ICAgdHJlZS0+cXVldWVOb2RlVXBkYXRlKG5vdGlmaWNhdGlvbi5maXJzdC0+b2JqZWN0SUQoKSwg
eyBBWFByb3BlcnR5TmFtZTo6VmFsdWVBdXRvZmlsbEJ1dHRvblR5cGUgfSk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgY2FzZSBBWENlbGxTbG90c0NoYW5nZWQ6CiAgICAgICAgICAgICBB
U1NFUlQobm90aWZpY2F0aW9uLmZpcnN0LT5pc1RhYmxlKCkpOwotICAgICAgICAgICAgdHJlZS0+
cXVldWVOb2RlVXBkYXRlKCpub3RpZmljYXRpb24uZmlyc3QsIHsgQVhQcm9wZXJ0eU5hbWU6OkNl
bGxTbG90cyB9KTsKKyAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZShub3RpZmljYXRp
b24uZmlyc3QtPm9iamVjdElEKCksIHsgQVhQcm9wZXJ0eU5hbWU6OkNlbGxTbG90cyB9KTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFYQ2hlY2tlZFN0YXRlQ2hhbmdlZDoKLSAg
ICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZSgqbm90aWZpY2F0aW9uLmZpcnN0LCB7IEFY
UHJvcGVydHlOYW1lOjpJc0NoZWNrZWQgfSk7CisgICAgICAgICAgICB0cmVlLT5xdWV1ZU5vZGVV
cGRhdGUobm90aWZpY2F0aW9uLmZpcnN0LT5vYmplY3RJRCgpLCB7IEFYUHJvcGVydHlOYW1lOjpJ
c0NoZWNrZWQgfSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBWEN1cnJlbnRT
dGF0ZUNoYW5nZWQ6Ci0gICAgICAgICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUoKm5vdGlmaWNh
dGlvbi5maXJzdCwgeyBBWFByb3BlcnR5TmFtZTo6Q3VycmVudFN0YXRlIH0pOworICAgICAgICAg
ICAgdHJlZS0+cXVldWVOb2RlVXBkYXRlKG5vdGlmaWNhdGlvbi5maXJzdC0+b2JqZWN0SUQoKSwg
eyBBWFByb3BlcnR5TmFtZTo6Q3VycmVudFN0YXRlIH0pOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIGNhc2UgQVhDb2x1bW5Db3VudENoYW5nZWQ6Ci0gICAgICAgICAgICB0cmVlLT5xdWV1
ZU5vZGVVcGRhdGUoKm5vdGlmaWNhdGlvbi5maXJzdCwgeyBBWFByb3BlcnR5TmFtZTo6QVhDb2x1
bW5Db3VudCB9KTsKKyAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZShub3RpZmljYXRp
b24uZmlyc3QtPm9iamVjdElEKCksIHsgQVhQcm9wZXJ0eU5hbWU6OkFYQ29sdW1uQ291bnQgfSk7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBWENvbHVtbkluZGV4Q2hhbmdlZDoK
LSAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZSgqbm90aWZpY2F0aW9uLmZpcnN0LCB7
IEFYUHJvcGVydHlOYW1lOjpBWENvbHVtbkluZGV4IH0pOworICAgICAgICAgICAgdHJlZS0+cXVl
dWVOb2RlVXBkYXRlKG5vdGlmaWNhdGlvbi5maXJzdC0+b2JqZWN0SUQoKSwgeyBBWFByb3BlcnR5
TmFtZTo6QVhDb2x1bW5JbmRleCB9KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNl
IEFYQ29sdW1uU3BhbkNoYW5nZWQ6Ci0gICAgICAgICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUo
Km5vdGlmaWNhdGlvbi5maXJzdCwgeyBBWFByb3BlcnR5TmFtZTo6Q29sdW1uSW5kZXhSYW5nZSB9
KTsKKyAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZShub3RpZmljYXRpb24uZmlyc3Qt
Pm9iamVjdElEKCksIHsgQVhQcm9wZXJ0eU5hbWU6OkNvbHVtbkluZGV4UmFuZ2UgfSk7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBWENvbnRlbnRFZGl0YWJsZUF0dHJpYnV0ZUNo
YW5nZWQ6Ci0gICAgICAgICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUoKm5vdGlmaWNhdGlvbi5m
aXJzdCwgeyBBWFByb3BlcnR5TmFtZTo6SXNOb25OYXRpdmVUZXh0Q29udHJvbCB9KTsKKyAgICAg
ICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZShub3RpZmljYXRpb24uZmlyc3QtPm9iamVjdElE
KCksIHsgQVhQcm9wZXJ0eU5hbWU6OklzTm9uTmF0aXZlVGV4dENvbnRyb2wgfSk7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgY2FzZSBBWERpc2FibGVkU3RhdGVDaGFuZ2VkOgogICAgICAg
ICAgICAgdHJlZS0+dXBkYXRlUHJvcGVydGllc0ZvclNlbGZBbmREZXNjZW5kYW50cygqbm90aWZp
Y2F0aW9uLmZpcnN0LCB7IHsgQVhQcm9wZXJ0eU5hbWU6OkNhblNldEZvY3VzQXR0cmlidXRlLCBB
WFByb3BlcnR5TmFtZTo6SXNFbmFibGVkIH0gfSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgY2FzZSBBWEV4cGFuZGVkQ2hhbmdlZDoKLSAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVw
ZGF0ZSgqbm90aWZpY2F0aW9uLmZpcnN0LCB7IEFYUHJvcGVydHlOYW1lOjpJc0V4cGFuZGVkIH0p
OworICAgICAgICAgICAgdHJlZS0+cXVldWVOb2RlVXBkYXRlKG5vdGlmaWNhdGlvbi5maXJzdC0+
b2JqZWN0SUQoKSwgeyBBWFByb3BlcnR5TmFtZTo6SXNFeHBhbmRlZCB9KTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICBjYXNlIEFYRXh0ZW5kZWREZXNjcmlwdGlvbkNoYW5nZWQ6Ci0gICAg
ICAgICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUoKm5vdGlmaWNhdGlvbi5maXJzdCwgeyBBWFBy
b3BlcnR5TmFtZTo6RXh0ZW5kZWREZXNjcmlwdGlvbiB9KTsKKyAgICAgICAgICAgIHRyZWUtPnF1
ZXVlTm9kZVVwZGF0ZShub3RpZmljYXRpb24uZmlyc3QtPm9iamVjdElEKCksIHsgQVhQcm9wZXJ0
eU5hbWU6OkV4dGVuZGVkRGVzY3JpcHRpb24gfSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgY2FzZSBBWEZvY3VzYWJsZVN0YXRlQ2hhbmdlZDoKLSAgICAgICAgICAgIHRyZWUtPnF1ZXVl
Tm9kZVVwZGF0ZSgqbm90aWZpY2F0aW9uLmZpcnN0LCB7IEFYUHJvcGVydHlOYW1lOjpDYW5TZXRG
b2N1c0F0dHJpYnV0ZSB9KTsKKyAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZShub3Rp
ZmljYXRpb24uZmlyc3QtPm9iamVjdElEKCksIHsgQVhQcm9wZXJ0eU5hbWU6OkNhblNldEZvY3Vz
QXR0cmlidXRlIH0pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQVhNYXhpbXVt
VmFsdWVDaGFuZ2VkOgotICAgICAgICAgICAgdHJlZS0+cXVldWVOb2RlVXBkYXRlKCpub3RpZmlj
YXRpb24uZmlyc3QsIHsgeyBBWFByb3BlcnR5TmFtZTo6TWF4VmFsdWVGb3JSYW5nZSwgQVhQcm9w
ZXJ0eU5hbWU6OlZhbHVlRm9yUmFuZ2UgfSB9KTsKKyAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9k
ZVVwZGF0ZShub3RpZmljYXRpb24uZmlyc3QtPm9iamVjdElEKCksIHsgeyBBWFByb3BlcnR5TmFt
ZTo6TWF4VmFsdWVGb3JSYW5nZSwgQVhQcm9wZXJ0eU5hbWU6OlZhbHVlRm9yUmFuZ2UgfSB9KTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFYTWVudUxpc3RJdGVtU2VsZWN0ZWQ6
IHsKICAgICAgICAgICAgIFJlZlB0ciBhbmNlc3RvciA9IEFjY2Vzc2liaWxpdHk6OmZpbmRBbmNl
c3RvcjxBY2Nlc3NpYmlsaXR5T2JqZWN0Pigqbm90aWZpY2F0aW9uLmZpcnN0LCBmYWxzZSwgW10g
KGNvbnN0IGF1dG8mIG9iamVjdCkgewogICAgICAgICAgICAgICAgIHJldHVybiBvYmplY3QuaXNN
ZW51KCkgfHwgb2JqZWN0LmlzTWVudUJhcigpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgICAg
ICBpZiAoYW5jZXN0b3IpIHsKLSAgICAgICAgICAgICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUo
KmFuY2VzdG9yLCB7IEFYUHJvcGVydHlOYW1lOjpTZWxlY3RlZENoaWxkcmVuIH0pOwotICAgICAg
ICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZSgqbm90aWZpY2F0aW9uLmZpcnN0LCB7IEFY
UHJvcGVydHlOYW1lOjpJc1NlbGVjdGVkIH0pOworICAgICAgICAgICAgICAgIHRyZWUtPnF1ZXVl
Tm9kZVVwZGF0ZShhbmNlc3Rvci0+b2JqZWN0SUQoKSwgeyBBWFByb3BlcnR5TmFtZTo6U2VsZWN0
ZWRDaGlsZHJlbiB9KTsKKyAgICAgICAgICAgICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUobm90
aWZpY2F0aW9uLmZpcnN0LT5vYmplY3RJRCgpLCB7IEFYUHJvcGVydHlOYW1lOjpJc1NlbGVjdGVk
IH0pOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAg
ICAgY2FzZSBBWE1pbmltdW1WYWx1ZUNoYW5nZWQ6Ci0gICAgICAgICAgICB0cmVlLT5xdWV1ZU5v
ZGVVcGRhdGUoKm5vdGlmaWNhdGlvbi5maXJzdCwgeyB7IEFYUHJvcGVydHlOYW1lOjpNaW5WYWx1
ZUZvclJhbmdlLCBBWFByb3BlcnR5TmFtZTo6VmFsdWVGb3JSYW5nZSB9IH0pOworICAgICAgICAg
ICAgdHJlZS0+cXVldWVOb2RlVXBkYXRlKG5vdGlmaWNhdGlvbi5maXJzdC0+b2JqZWN0SUQoKSwg
eyB7IEFYUHJvcGVydHlOYW1lOjpNaW5WYWx1ZUZvclJhbmdlLCBBWFByb3BlcnR5TmFtZTo6VmFs
dWVGb3JSYW5nZSB9IH0pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQVhOYW1l
Q2hhbmdlZDoKLSAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZSgqbm90aWZpY2F0aW9u
LmZpcnN0LCB7IEFYUHJvcGVydHlOYW1lOjpOYW1lQXR0cmlidXRlIH0pOworICAgICAgICAgICAg
dHJlZS0+cXVldWVOb2RlVXBkYXRlKG5vdGlmaWNhdGlvbi5maXJzdC0+b2JqZWN0SUQoKSwgeyBB
WFByb3BlcnR5TmFtZTo6TmFtZUF0dHJpYnV0ZSB9KTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBjYXNlIEFYT3JpZW50YXRpb25DaGFuZ2VkOgotICAgICAgICAgICAgdHJlZS0+cXVldWVO
b2RlVXBkYXRlKCpub3RpZmljYXRpb24uZmlyc3QsIHsgQVhQcm9wZXJ0eU5hbWU6Ok9yaWVudGF0
aW9uIH0pOworICAgICAgICAgICAgdHJlZS0+cXVldWVOb2RlVXBkYXRlKG5vdGlmaWNhdGlvbi5m
aXJzdC0+b2JqZWN0SUQoKSwgeyBBWFByb3BlcnR5TmFtZTo6T3JpZW50YXRpb24gfSk7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBWFBvc2l0aW9uSW5TZXRDaGFuZ2VkOgotICAg
ICAgICAgICAgdHJlZS0+cXVldWVOb2RlVXBkYXRlKCpub3RpZmljYXRpb24uZmlyc3QsIHsgeyBB
WFByb3BlcnR5TmFtZTo6UG9zSW5TZXQsIEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0c1Bvc0luU2V0
IH0gfSk7CisgICAgICAgICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUobm90aWZpY2F0aW9uLmZp
cnN0LT5vYmplY3RJRCgpLCB7IHsgQVhQcm9wZXJ0eU5hbWU6OlBvc0luU2V0LCBBWFByb3BlcnR5
TmFtZTo6U3VwcG9ydHNQb3NJblNldCB9IH0pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGNhc2UgQVhQb3BvdmVyVGFyZ2V0Q2hhbmdlZDoKLSAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9k
ZVVwZGF0ZSgqbm90aWZpY2F0aW9uLmZpcnN0LCB7IHsgQVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRz
RXhwYW5kZWQsIEFYUHJvcGVydHlOYW1lOjpJc0V4cGFuZGVkIH0gfSk7CisgICAgICAgICAgICB0
cmVlLT5xdWV1ZU5vZGVVcGRhdGUobm90aWZpY2F0aW9uLmZpcnN0LT5vYmplY3RJRCgpLCB7IHsg
QVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRzRXhwYW5kZWQsIEFYUHJvcGVydHlOYW1lOjpJc0V4cGFu
ZGVkIH0gfSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBWFNlbGVjdGVkVGV4
dENoYW5nZWQ6Ci0gICAgICAgICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUoKm5vdGlmaWNhdGlv
bi5maXJzdCwgeyBBWFByb3BlcnR5TmFtZTo6U2VsZWN0ZWRUZXh0UmFuZ2UgfSk7CisgICAgICAg
ICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUobm90aWZpY2F0aW9uLmZpcnN0LT5vYmplY3RJRCgp
LCB7IEFYUHJvcGVydHlOYW1lOjpTZWxlY3RlZFRleHRSYW5nZSB9KTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICBjYXNlIEFYU29ydERpcmVjdGlvbkNoYW5nZWQ6Ci0gICAgICAgICAgICB0
cmVlLT5xdWV1ZU5vZGVVcGRhdGUoKm5vdGlmaWNhdGlvbi5maXJzdCwgeyBBWFByb3BlcnR5TmFt
ZTo6U29ydERpcmVjdGlvbiB9KTsKKyAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZShu
b3RpZmljYXRpb24uZmlyc3QtPm9iamVjdElEKCksIHsgQVhQcm9wZXJ0eU5hbWU6OlNvcnREaXJl
Y3Rpb24gfSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBWElkQXR0cmlidXRl
Q2hhbmdlZDoKLSAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZSgqbm90aWZpY2F0aW9u
LmZpcnN0LCB7IEFYUHJvcGVydHlOYW1lOjpJZGVudGlmaWVyQXR0cmlidXRlIH0pOworICAgICAg
ICAgICAgdHJlZS0+cXVldWVOb2RlVXBkYXRlKG5vdGlmaWNhdGlvbi5maXJzdC0+b2JqZWN0SUQo
KSwgeyBBWFByb3BlcnR5TmFtZTo6SWRlbnRpZmllckF0dHJpYnV0ZSB9KTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICBjYXNlIEFYUmVhZE9ubHlTdGF0dXNDaGFuZ2VkOgotICAgICAgICAg
ICAgdHJlZS0+cXVldWVOb2RlVXBkYXRlKCpub3RpZmljYXRpb24uZmlyc3QsIHsgQVhQcm9wZXJ0
eU5hbWU6OkNhblNldFZhbHVlQXR0cmlidXRlIH0pOworICAgICAgICAgICAgdHJlZS0+cXVldWVO
b2RlVXBkYXRlKG5vdGlmaWNhdGlvbi5maXJzdC0+b2JqZWN0SUQoKSwgeyBBWFByb3BlcnR5TmFt
ZTo6Q2FuU2V0VmFsdWVBdHRyaWJ1dGUgfSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
Y2FzZSBBWFJlcXVpcmVkU3RhdHVzQ2hhbmdlZDoKLSAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9k
ZVVwZGF0ZSgqbm90aWZpY2F0aW9uLmZpcnN0LCB7IEFYUHJvcGVydHlOYW1lOjpJc1JlcXVpcmVk
IH0pOworICAgICAgICAgICAgdHJlZS0+cXVldWVOb2RlVXBkYXRlKG5vdGlmaWNhdGlvbi5maXJz
dC0+b2JqZWN0SUQoKSwgeyBBWFByb3BlcnR5TmFtZTo6SXNSZXF1aXJlZCB9KTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFYUm9sZURlc2NyaXB0aW9uQ2hhbmdlZDoKLSAgICAg
ICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZSgqbm90aWZpY2F0aW9uLmZpcnN0LCB7IEFYUHJv
cGVydHlOYW1lOjpSb2xlRGVzY3JpcHRpb24gfSk7CisgICAgICAgICAgICB0cmVlLT5xdWV1ZU5v
ZGVVcGRhdGUobm90aWZpY2F0aW9uLmZpcnN0LT5vYmplY3RJRCgpLCB7IEFYUHJvcGVydHlOYW1l
OjpSb2xlRGVzY3JpcHRpb24gfSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBB
WFJvd0luZGV4Q2hhbmdlZDoKLSAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZSgqbm90
aWZpY2F0aW9uLmZpcnN0LCB7IEFYUHJvcGVydHlOYW1lOjpBWFJvd0luZGV4IH0pOworICAgICAg
ICAgICAgdHJlZS0+cXVldWVOb2RlVXBkYXRlKG5vdGlmaWNhdGlvbi5maXJzdC0+b2JqZWN0SUQo
KSwgeyBBWFByb3BlcnR5TmFtZTo6QVhSb3dJbmRleCB9KTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICBjYXNlIEFYUm93U3BhbkNoYW5nZWQ6Ci0gICAgICAgICAgICB0cmVlLT5xdWV1ZU5v
ZGVVcGRhdGUoKm5vdGlmaWNhdGlvbi5maXJzdCwgeyBBWFByb3BlcnR5TmFtZTo6Um93SW5kZXhS
YW5nZSB9KTsKKyAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZShub3RpZmljYXRpb24u
Zmlyc3QtPm9iamVjdElEKCksIHsgQVhQcm9wZXJ0eU5hbWU6OlJvd0luZGV4UmFuZ2UgfSk7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBWENlbGxTY29wZUNoYW5nZWQ6Ci0gICAg
ICAgICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUoKm5vdGlmaWNhdGlvbi5maXJzdCwgeyB7IEFY
UHJvcGVydHlOYW1lOjpDZWxsU2NvcGUsIEFYUHJvcGVydHlOYW1lOjpJc0NvbHVtbkhlYWRlciwg
QVhQcm9wZXJ0eU5hbWU6OklzUm93SGVhZGVyIH0gfSk7CisgICAgICAgICAgICB0cmVlLT5xdWV1
ZU5vZGVVcGRhdGUobm90aWZpY2F0aW9uLmZpcnN0LT5vYmplY3RJRCgpLCB7IHsgQVhQcm9wZXJ0
eU5hbWU6OkNlbGxTY29wZSwgQVhQcm9wZXJ0eU5hbWU6OklzQ29sdW1uSGVhZGVyLCBBWFByb3Bl
cnR5TmFtZTo6SXNSb3dIZWFkZXIgfSB9KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAv
LyAgRklYTUU6IENvbnRyYXJ5IHRvIHRoZSBuYW1lICJBWFNlbGVjdGVkQ2VsbHNDaGFuZ2VkIiwg
dGhpcyBub3RpZmljYXRpb24gY2FuIGJlIHBvc3RlZCBvbiBhIGNlbGwKICAgICAgICAgLy8gIHdo
byBoYXMgY2hhbmdlZCBzZWxlY3RlZCBzdGF0ZSwgbm90IGp1c3Qgb24gdGFibGUgb3IgZ3JpZCB3
aG8gaGFzIGNoYW5nZWQgaXRzIHNlbGVjdGVkIGNlbGxzLgogICAgICAgICBjYXNlIEFYU2VsZWN0
ZWRDZWxsc0NoYW5nZWQ6CiAgICAgICAgIGNhc2UgQVhTZWxlY3RlZFN0YXRlQ2hhbmdlZDoKLSAg
ICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZSgqbm90aWZpY2F0aW9uLmZpcnN0LCB7IEFY
UHJvcGVydHlOYW1lOjpJc1NlbGVjdGVkIH0pOworICAgICAgICAgICAgdHJlZS0+cXVldWVOb2Rl
VXBkYXRlKG5vdGlmaWNhdGlvbi5maXJzdC0+b2JqZWN0SUQoKSwgeyBBWFByb3BlcnR5TmFtZTo6
SXNTZWxlY3RlZCB9KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFYU2V0U2l6
ZUNoYW5nZWQ6Ci0gICAgICAgICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUoKm5vdGlmaWNhdGlv
bi5maXJzdCwgeyB7IEFYUHJvcGVydHlOYW1lOjpTZXRTaXplLCBBWFByb3BlcnR5TmFtZTo6U3Vw
cG9ydHNTZXRTaXplIH0gfSk7CisgICAgICAgICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUobm90
aWZpY2F0aW9uLmZpcnN0LT5vYmplY3RJRCgpLCB7IHsgQVhQcm9wZXJ0eU5hbWU6OlNldFNpemUs
IEFYUHJvcGVydHlOYW1lOjpTdXBwb3J0c1NldFNpemUgfSB9KTsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICBjYXNlIEFYVGFibGVIZWFkZXJzQ2hhbmdlZDoKLSAgICAgICAgICAgIHRyZWUt
PnF1ZXVlTm9kZVVwZGF0ZSgqbm90aWZpY2F0aW9uLmZpcnN0LCB7IEFYUHJvcGVydHlOYW1lOjpD
b2x1bW5IZWFkZXJzIH0pOworICAgICAgICAgICAgdHJlZS0+cXVldWVOb2RlVXBkYXRlKG5vdGlm
aWNhdGlvbi5maXJzdC0+b2JqZWN0SUQoKSwgeyBBWFByb3BlcnR5TmFtZTo6Q29sdW1uSGVhZGVy
cyB9KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFYVGV4dENvbXBvc2l0aW9u
Q2hhbmdlZDoKLSAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZSgqbm90aWZpY2F0aW9u
LmZpcnN0LCB7IEFYUHJvcGVydHlOYW1lOjpUZXh0SW5wdXRNYXJrZWRUZXh0TWFya2VyUmFuZ2Ug
fSk7CisgICAgICAgICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUobm90aWZpY2F0aW9uLmZpcnN0
LT5vYmplY3RJRCgpLCB7IEFYUHJvcGVydHlOYW1lOjpUZXh0SW5wdXRNYXJrZWRUZXh0TWFya2Vy
UmFuZ2UgfSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBWFVSTENoYW5nZWQ6
Ci0gICAgICAgICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUoKm5vdGlmaWNhdGlvbi5maXJzdCwg
eyB7IEFYUHJvcGVydHlOYW1lOjpVUkwsIEFYUHJvcGVydHlOYW1lOjpJbnRlcm5hbExpbmtFbGVt
ZW50IH0gfSk7CisgICAgICAgICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUobm90aWZpY2F0aW9u
LmZpcnN0LT5vYmplY3RJRCgpLCB7IHsgQVhQcm9wZXJ0eU5hbWU6OlVSTCwgQVhQcm9wZXJ0eU5h
bWU6OkludGVybmFsTGlua0VsZW1lbnQgfSB9KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBjYXNlIEFYS2V5U2hvcnRjdXRzQ2hhbmdlZDoKLSAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9k
ZVVwZGF0ZSgqbm90aWZpY2F0aW9uLmZpcnN0LCB7IEFYUHJvcGVydHlOYW1lOjpLZXlTaG9ydGN1
dHMgfSk7CisgICAgICAgICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUobm90aWZpY2F0aW9uLmZp
cnN0LT5vYmplY3RJRCgpLCB7IEFYUHJvcGVydHlOYW1lOjpLZXlTaG9ydGN1dHMgfSk7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBWFZpc2liaWxpdHlDaGFuZ2VkOgotICAgICAg
ICAgICAgdHJlZS0+cXVldWVOb2RlVXBkYXRlKCpub3RpZmljYXRpb24uZmlyc3QsIHsgQVhQcm9w
ZXJ0eU5hbWU6OklzVmlzaWJsZSB9KTsKKyAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0
ZShub3RpZmljYXRpb24uZmlyc3QtPm9iamVjdElEKCksIHsgQVhQcm9wZXJ0eU5hbWU6OklzVmlz
aWJsZSB9KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFYQWN0aXZlRGVzY2Vu
ZGFudENoYW5nZWQ6CiAgICAgICAgIGNhc2UgQVhSb2xlQ2hhbmdlZDoKQEAgLTQ0MTUsNyArNDQx
NSw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVlKEFjY2Vzc2liaWxp
dHlPYmplY3QqIGF4T2JqZWN0LCBBWFByb3BlcnR5CiB2b2lkIEFYT2JqZWN0Q2FjaGU6OnVwZGF0
ZUlzb2xhdGVkVHJlZShBY2Nlc3NpYmlsaXR5T2JqZWN0JiBheE9iamVjdCwgQVhQcm9wZXJ0eU5h
bWUgcHJvcGVydHkpIGNvbnN0CiB7CiAgICAgaWYgKFJlZlB0ciB0cmVlID0gQVhJc29sYXRlZFRy
ZWU6OnRyZWVGb3JQYWdlSUQobV9wYWdlSUQpKQotICAgICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRh
dGUoYXhPYmplY3QsIHsgcHJvcGVydHkgfSk7CisgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0
ZShheE9iamVjdC5vYmplY3RJRCgpLCB7IHByb3BlcnR5IH0pOwogfQogCiB2b2lkIEFYT2JqZWN0
Q2FjaGU6OnN0YXJ0VXBkYXRlVHJlZVNuYXBzaG90VGltZXIoKQpAQCAtNTAyNyw5ICs1MDI3LDEx
IEBAIGJvb2wgQVhPYmplY3RDYWNoZTo6aXNEZXNjZW5kYW50T2ZSZWxhdGVkTm9kZShOb2RlJiBu
b2RlKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotc3RkOjpvcHRpb25hbDxMaXN0SGFzaFNldDxB
WElEPj4gQVhPYmplY3RDYWNoZTo6cmVsYXRlZE9iamVjdElEc0Zvcihjb25zdCBBWENvcmVPYmpl
Y3QmIG9iamVjdCwgQVhSZWxhdGlvblR5cGUgcmVsYXRpb25UeXBlKQorc3RkOjpvcHRpb25hbDxM
aXN0SGFzaFNldDxBWElEPj4gQVhPYmplY3RDYWNoZTo6cmVsYXRlZE9iamVjdElEc0Zvcihjb25z
dCBBWENvcmVPYmplY3QmIG9iamVjdCwgQVhSZWxhdGlvblR5cGUgcmVsYXRpb25UeXBlLCBVcGRh
dGVSZWxhdGlvbnMgdXBkYXRlUmVsYXRpb25zKQogewotICAgIHVwZGF0ZVJlbGF0aW9uc0lmTmVl
ZGVkKCk7CisgICAgaWYgKHVwZGF0ZVJlbGF0aW9ucyA9PSBVcGRhdGVSZWxhdGlvbnM6OlllcykK
KyAgICAgICAgdXBkYXRlUmVsYXRpb25zSWZOZWVkZWQoKTsKKwogICAgIGF1dG8gcmVsYXRpb25z
SXRlcmF0b3IgPSBtX3JlbGF0aW9ucy5maW5kKG9iamVjdC5vYmplY3RJRCgpKTsKICAgICBpZiAo
cmVsYXRpb25zSXRlcmF0b3IgPT0gbV9yZWxhdGlvbnMuZW5kKCkpCiAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
T2JqZWN0Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNo
ZS5oCmluZGV4IDIzNmI0YjNlNTIxZC4uNjk3MGViN2UzMzM5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaApAQCAtNDg2LDggKzQ4Niw5IEBAIHB1Ymxp
YzoKIAogICAgIEFYVHJlZURhdGEgdHJlZURhdGEoKTsKIAorICAgIGVudW0gY2xhc3MgVXBkYXRl
UmVsYXRpb25zIDogYm9vbCB7IE5vLCBZZXMgfTsKICAgICAvLyBSZXR1cm5zIHRoZSBJRHMgb2Yg
dGhlIG9iamVjdHMgdGhhdCByZWxhdGUgdG8gdGhlIGdpdmVuIG9iamVjdCB3aXRoIHRoZSBzcGVj
aWZpZWQgcmVsYXRpb25zaGlwLgotICAgIHN0ZDo6b3B0aW9uYWw8TGlzdEhhc2hTZXQ8QVhJRD4+
IHJlbGF0ZWRPYmplY3RJRHNGb3IoY29uc3QgQVhDb3JlT2JqZWN0JiwgQVhSZWxhdGlvblR5cGUp
OworICAgIHN0ZDo6b3B0aW9uYWw8TGlzdEhhc2hTZXQ8QVhJRD4+IHJlbGF0ZWRPYmplY3RJRHNG
b3IoY29uc3QgQVhDb3JlT2JqZWN0JiwgQVhSZWxhdGlvblR5cGUsIFVwZGF0ZVJlbGF0aW9ucyA9
IFVwZGF0ZVJlbGF0aW9uczo6WWVzKTsKICAgICB2b2lkIHVwZGF0ZVJlbGF0aW9ucyhFbGVtZW50
JiwgY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNv
bGF0ZWRUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVl
L0FYSXNvbGF0ZWRUcmVlLmNwcAppbmRleCAyMzhhYjkwYmQ2N2IuLmIxYmRkYmVlOWE1OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZFRyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0
cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcApAQCAtNTEyLDcgKzUxMiw3IEBAIHZvaWQgQVhJc29sYXRl
ZFRyZWU6OnVwZGF0ZVByb3BlcnRpZXNGb3JTZWxmQW5kRGVzY2VuZGFudHMoQWNjZXNzaWJpbGl0
eU9iamVjdCYKICAgICAgICAgcHJvcGVydHlTZXQuYWRkKHByb3BlcnR5KTsKIAogICAgIEFjY2Vz
c2liaWxpdHk6OmVudW1lcmF0ZURlc2NlbmRhbnRzPEFYQ29yZU9iamVjdD4oYXhPYmplY3QsIHRy
dWUsIFsmcHJvcGVydHlTZXQsIHRoaXNdIChhdXRvJiBkZXNjZW5kYW50KSB7Ci0gICAgICAgIHF1
ZXVlTm9kZVVwZGF0ZShkZXNjZW5kYW50LCB7IHByb3BlcnR5U2V0IH0pOworICAgICAgICBxdWV1
ZU5vZGVVcGRhdGUoZGVzY2VuZGFudC5vYmplY3RJRCgpLCB7IHByb3BlcnR5U2V0IH0pOwogICAg
IH0pOwogfQogCkBAIC03MzAsNyArNzMwLDcgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6dXBkYXRl
RGVwZW5kZW50UHJvcGVydGllcyhBY2Nlc3NpYmlsaXR5T2JqZWN0JiBheE9iamVjdCkKICAgICBi
b29sIHVwZGF0ZVRhYmxlQW5jZXN0b3JDb2x1bW5zID0gaXM8QWNjZXNzaWJpbGl0eVRhYmxlUm93
PihheE9iamVjdCk7CiAgICAgZm9yIChSZWZQdHIgYW5jZXN0b3IgPSBheE9iamVjdC5wYXJlbnRP
YmplY3QoKTsgYW5jZXN0b3I7IGFuY2VzdG9yID0gYW5jZXN0b3ItPnBhcmVudE9iamVjdCgpKSB7
CiAgICAgICAgIGlmIChhbmNlc3Rvci0+aXNUcmVlKCkpIHsKLSAgICAgICAgICAgIHF1ZXVlTm9k
ZVVwZGF0ZSgqYW5jZXN0b3IsIHsgQVhQcm9wZXJ0eU5hbWU6OkFSSUFUcmVlUm93cyB9KTsKKyAg
ICAgICAgICAgIHF1ZXVlTm9kZVVwZGF0ZShhbmNlc3Rvci0+b2JqZWN0SUQoKSwgeyBBWFByb3Bl
cnR5TmFtZTo6QVJJQVRyZWVSb3dzIH0pOwogICAgICAgICAgICAgaWYgKCF1cGRhdGVUYWJsZUFu
Y2VzdG9yQ29sdW1ucykKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtMTAz
OCwxMiArMTAzOCwxMiBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpyZW1vdmVOb2RlKGNvbnN0IEFj
Y2Vzc2liaWxpdHlPYmplY3QmIGF4T2JqZWN0KQogICAgIEFYTE9HKG1ha2VTdHJpbmcoIm9iamVj
dElEICIsIGF4T2JqZWN0Lm9iamVjdElEKCkubG9nZ2luZ1N0cmluZygpKSk7CiAgICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKIAotICAgIGlmIChheE9iamVjdC5pc0xhYmVsKCkpIHsKLSAgICAg
ICAgLy8gVXBkYXRlIHRoZSBsYWJlbGVkIG9iamVjdHMgc2luY2Ugb25lIG9mIHRoZWlyIGxhYmVs
cyB3YXMgcmVtb3ZlZC4KLSAgICAgICAgYXV0byBsYWJlbGVkT2JqZWN0cyA9IGF4T2JqZWN0Lmxh
YmVsRm9yT2JqZWN0cygpOwotICAgICAgICBmb3IgKGF1dG8mIGxhYmVsZWRPYmplY3QgOiBsYWJl
bGVkT2JqZWN0cykgeworICAgIGF1dG8gbGFiZWxlZE9iamVjdElEcyA9IGF4T2JqZWN0Q2FjaGUo
KSA/IGF4T2JqZWN0Q2FjaGUoKS0+cmVsYXRlZE9iamVjdElEc0ZvcihheE9iamVjdCwgQVhSZWxh
dGlvblR5cGU6OkxhYmVsRm9yLCBBWE9iamVjdENhY2hlOjpVcGRhdGVSZWxhdGlvbnM6Ok5vKSA6
IHN0ZDo6bnVsbG9wdDsKKyAgICBpZiAobGFiZWxlZE9iamVjdElEcykgeworICAgICAgICAvLyBV
cGRhdGUgdGhlIGxhYmVsZWQgb2JqZWN0cyBzaW5jZSBheE9iamVjdCBpcyBvbmUgb2YgdGhlaXIg
bGFiZWxzIGFuZCBpdCBpcyBiZWluZyByZW1vdmVkLgorICAgICAgICBmb3IgKEFYSUQgbGFiZWxl
ZE9iamVjdElEIDogKmxhYmVsZWRPYmplY3RJRHMpIHsKICAgICAgICAgICAgIC8vIFRoZSBsYWJl
bC90aXRsZSBvZiBhbiBpc29sYXRlZCBvYmplY3QgaXMgY29tcHV0ZWQgYmFzZWQgb24gaXRzIEFj
Y2Vzc2liaWxpdHlUZXh0IHByb3BwZXJ0eSwgdGh1cyB1cGRhdGUgaXQuCi0gICAgICAgICAgICBx
dWV1ZU5vZGVVcGRhdGUoKmxhYmVsZWRPYmplY3QsIHsgQVhQcm9wZXJ0eU5hbWU6OkFjY2Vzc2li
aWxpdHlUZXh0IH0pOworICAgICAgICAgICAgcXVldWVOb2RlVXBkYXRlKGxhYmVsZWRPYmplY3RJ
RCwgeyBBWFByb3BlcnR5TmFtZTo6QWNjZXNzaWJpbGl0eVRleHQgfSk7CiAgICAgICAgIH0KICAg
ICB9CiAKQEAgLTEyNDgsMjYgKzEyNDgsMjYgQEAgQVhUcmVlUHRyIGZpbmRBWFRyZWUoRnVuY3Rp
b248Ym9vbChBWFRyZWVQdHIpPiYmIG1hdGNoKQogI2VuZGlmCiB9CiAKLXZvaWQgQVhJc29sYXRl
ZFRyZWU6OnF1ZXVlTm9kZVVwZGF0ZShBWENvcmVPYmplY3QmIG9iamVjdCwgY29uc3QgTm9kZVVw
ZGF0ZU9wdGlvbnMmIG9wdGlvbnMpCit2b2lkIEFYSXNvbGF0ZWRUcmVlOjpxdWV1ZU5vZGVVcGRh
dGUoQVhJRCBvYmplY3RJRCwgY29uc3QgTm9kZVVwZGF0ZU9wdGlvbnMmIG9wdGlvbnMpCiB7CiAg
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAogICAgIGlmICghb3B0aW9ucy5zaG91bGRVcGRh
dGVOb2RlICYmIG9wdGlvbnMucHJvcGVydGllcy5zaXplKCkpIHsKICAgICAgICAgLy8gSWYgd2Un
cmUgZ29pbmcgdG8gcmVjb21wdXRlIGFsbCBwcm9wZXJ0aWVzIGZvciB0aGUgbm9kZSAoaS5lLiwg
dGhlIG5vZGUgaXMgaW4gbV9uZWVkc1VwZGF0ZU5vZGUpLAogICAgICAgICAvLyBkb24ndCBib3Ro
ZXIgcXVldWVpbmcgYW55IGluZGl2aWR1YWwgcHJvcGVydHkgdXBkYXRlcy4KLSAgICAgICAgaWYg
KG1fbmVlZHNVcGRhdGVOb2RlLmNvbnRhaW5zKG9iamVjdC5vYmplY3RJRCgpKSkKKyAgICAgICAg
aWYgKG1fbmVlZHNVcGRhdGVOb2RlLmNvbnRhaW5zKG9iamVjdElEKSkKICAgICAgICAgICAgIHJl
dHVybjsKIAotICAgICAgICBhdXRvIGFkZFJlc3VsdCA9IG1fbmVlZHNQcm9wZXJ0eVVwZGF0ZXMu
YWRkKG9iamVjdC5vYmplY3RJRCgpLCBvcHRpb25zLnByb3BlcnRpZXMpOworICAgICAgICBhdXRv
IGFkZFJlc3VsdCA9IG1fbmVlZHNQcm9wZXJ0eVVwZGF0ZXMuYWRkKG9iamVjdElELCBvcHRpb25z
LnByb3BlcnRpZXMpOwogICAgICAgICBpZiAoIWFkZFJlc3VsdC5pc05ld0VudHJ5KQogICAgICAg
ICAgICAgYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS5mb3JtVW5pb24ob3B0aW9ucy5wcm9wZXJ0
aWVzKTsKICAgICB9CiAKICAgICBpZiAob3B0aW9ucy5zaG91bGRVcGRhdGVDaGlsZHJlbikKLSAg
ICAgICAgbV9uZWVkc1VwZGF0ZUNoaWxkcmVuLmFkZChvYmplY3Qub2JqZWN0SUQoKSk7CisgICAg
ICAgIG1fbmVlZHNVcGRhdGVDaGlsZHJlbi5hZGQob2JqZWN0SUQpOwogCiAgICAgaWYgKG9wdGlv
bnMuc2hvdWxkVXBkYXRlTm9kZSkKLSAgICAgICAgbV9uZWVkc1VwZGF0ZU5vZGUuYWRkKG9iamVj
dC5vYmplY3RJRCgpKTsKKyAgICAgICAgbV9uZWVkc1VwZGF0ZU5vZGUuYWRkKG9iamVjdElEKTsK
IAogICAgIGlmIChhdXRvKiBjYWNoZSA9IGF4T2JqZWN0Q2FjaGUoKSkKICAgICAgICAgY2FjaGUt
PnN0YXJ0VXBkYXRlVHJlZVNuYXBzaG90VGltZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oCmluZGV4
IDM2NGE1NGM5NGFjMC4uYWUyYTgzYTFjMDhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgKQEAgLTM4
NCw3ICszODQsNyBAQCBwdWJsaWM6CiAgICAgQVhUZXh0TWFya2VyUmFuZ2Ugc2VsZWN0ZWRUZXh0
TWFya2VyUmFuZ2UoKTsKICAgICB2b2lkIHNldFNlbGVjdGVkVGV4dE1hcmtlclJhbmdlKEFYVGV4
dE1hcmtlclJhbmdlJiYpOwogCi0gICAgdm9pZCBxdWV1ZU5vZGVVcGRhdGUoQVhDb3JlT2JqZWN0
JiwgY29uc3QgTm9kZVVwZGF0ZU9wdGlvbnMmKTsKKyAgICB2b2lkIHF1ZXVlTm9kZVVwZGF0ZShB
WElELCBjb25zdCBOb2RlVXBkYXRlT3B0aW9ucyYpOwogICAgIHZvaWQgcHJvY2Vzc1F1ZXVlZE5v
ZGVVcGRhdGVzKCk7CiAKICNpZiBFTkFCTEUoQVhfVEhSRUFEX1RFWFRfQVBJUykK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>469676</attachid>
            <date>2024-02-02 08:00:27 -0800</date>
            <delta_ts>2024-02-02 11:15:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-268429-20240202110026.patch</filename>
            <type>text/plain</type>
            <size>19655</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">RnJvbSA2NDkxMWI2ODkyY2UwZjIzYTZkNGFjNDdkYWVkMzYwNGE0MGQ2NDI3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXMgR29uemFsZXogPGFuZHJlc2dfMjJAYXBwbGUuY29t
PgpEYXRlOiBUdWUsIDMwIEphbiAyMDI0IDIwOjM4OjU4IC0wNTAwClN1YmplY3Q6IFtQQVRDSF0g
QVg6IENyYXNoIGluIEFYSXNvbGF0ZWRUcmVlOjpyZW1vdmVOb2RlIGR1ZSB0byB1cGRhdGUgb2YK
IHJlbGF0aW9ucyB0cmlnZ2VyaW5nIGEgbGF5b3V0LiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjY4NDI5CiA8cmRhcjovL3Byb2JsZW0vMTIxOTc2OTA3PgoKUmV2aWV3
ZWQgYnkgVHlsZXIgV2lsY29jay4KClRoZSBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc0xhYmVsIG1l
dGhvZCBjYXVzZXMgYSByZWxhdGlvbnMgdXBkYXRlLCB0aGF0IGluIHR1cm4gdHJpZ2dlcnMgYSBs
YXlvdXQgdXBkYXRlIHdoaWxlIGJ1aWxkaW5nIGlzb2xhdGVkIG9iamVjdHMsIGFuZCB0aHVzIGNh
dXNpbmcgYSBjcmFzaC4gVGhpcyBwYXRjaCBmaXhlcyB0aGUgcHJvYmxlbSBieSBkZXRlcm1pbmlu
ZyB3aGV0aGVyIHRoZSBvYmplY3QgdGhhdCBpcyBiZWluZyByZW1vdmVkIGlzIGEgbGFiZWwgZm9y
IG90aGVyIG9iamVjdHMgd2l0aG91dCB1cGRhdGluZyB0aGUgcmVsYXRpb25zLgoKKiBTb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgooV2ViQ29yZTo6QVhPYmpl
Y3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVlKToKKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnVw
ZGF0ZUlzb2xhdGVkVHJlZSBjb25zdCk6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpyZWxhdGVk
T2JqZWN0SURzRm9yKToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2Fj
aGUuaDoKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xh
dGVkVHJlZS5jcHA6CihXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6dXBkYXRlUHJvcGVydGllc0Zv
clNlbGZBbmREZXNjZW5kYW50cyk6CihXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6dXBkYXRlRGVw
ZW5kZW50UHJvcGVydGllcyk6CihXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6cmVtb3ZlTm9kZSk6
CihXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6cXVldWVOb2RlVXBkYXRlKToKKiBTb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oOgotLS0KIC4u
Li9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgICB8IDg0ICsrKysrKysr
KystLS0tLS0tLS0KIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5o
ICB8ICAzICstCiAuLi4vaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcCAgICAgICAgICAg
fCAyNCArKystLS0KIC4uLi9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaCAgICAgICAgICAg
ICB8ICAyICstCiA0IGZpbGVzIGNoYW5nZWQsIDU4IGluc2VydGlvbnMoKyksIDU1IGRlbGV0aW9u
cygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RD
YWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3Bw
CmluZGV4IGMxZWVlMzFkZTUzZC4uYmIzZmMxNmEzNGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAgLTQyMTgsNyArNDIxOCw3IEBAIHZv
aWQgQVhPYmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVlKGNvbnN0IFZlY3RvcjxzdGQ6OnBh
aXI8UmVmUHRyPEFjY2Vzc2liaWxpCiAgICAgICAgIGlmICghdXBkYXRlZEZpZWxkcy5jb250YWlu
cyhGaWVsZDo6Q2hpbGRyZW4pKSB7CiAgICAgICAgICAgICB1cGRhdGVkRmllbGRzLmFkZChGaWVs
ZDo6Q2hpbGRyZW4pOwogICAgICAgICAgICAgdXBkYXRlZE9iamVjdHMuc2V0KGF4T2JqZWN0LT5v
YmplY3RJRCgpLCB1cGRhdGVkRmllbGRzKTsKLSAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVw
ZGF0ZSgqYXhPYmplY3QsIE5vZGVVcGRhdGVPcHRpb25zOjpjaGlsZHJlblVwZGF0ZSgpKTsKKyAg
ICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZShheE9iamVjdC0+b2JqZWN0SUQoKSwgTm9k
ZVVwZGF0ZU9wdGlvbnM6OmNoaWxkcmVuVXBkYXRlKCkpOwogICAgICAgICB9CiAgICAgfTsKICAg
ICBhdXRvIHVwZGF0ZURlcGVuZGVudFByb3BlcnRpZXMgPSBbJl0gKFJlZlB0cjxBY2Nlc3NpYmls
aXR5T2JqZWN0PiBheE9iamVjdCkgewpAQCAtNDIzNCw3ICs0MjM0LDcgQEAgdm9pZCBBWE9iamVj
dENhY2hlOjp1cGRhdGVJc29sYXRlZFRyZWUoY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxSZWZQdHI8
QWNjZXNzaWJpbGkKICAgICAgICAgaWYgKCF1cGRhdGVkRmllbGRzLmNvbnRhaW5zKEZpZWxkOjpO
b2RlKSkgewogICAgICAgICAgICAgdXBkYXRlZEZpZWxkcy5hZGQoRmllbGQ6Ok5vZGUpOwogICAg
ICAgICAgICAgdXBkYXRlZE9iamVjdHMuc2V0KGF4T2JqZWN0LT5vYmplY3RJRCgpLCB1cGRhdGVk
RmllbGRzKTsKLSAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZSgqYXhPYmplY3QsIE5v
ZGVVcGRhdGVPcHRpb25zOjpub2RlVXBkYXRlKCkpOworICAgICAgICAgICAgdHJlZS0+cXVldWVO
b2RlVXBkYXRlKGF4T2JqZWN0LT5vYmplY3RJRCgpLCBOb2RlVXBkYXRlT3B0aW9uczo6bm9kZVVw
ZGF0ZSgpKTsKICAgICAgICAgfQogICAgIH07CiAKQEAgLTQyNDUsMTIzICs0MjQ1LDEyMyBAQCB2
b2lkIEFYT2JqZWN0Q2FjaGU6OnVwZGF0ZUlzb2xhdGVkVHJlZShjb25zdCBWZWN0b3I8c3RkOjpw
YWlyPFJlZlB0cjxBY2Nlc3NpYmlsaQogCiAgICAgICAgIHN3aXRjaCAobm90aWZpY2F0aW9uLnNl
Y29uZCkgewogICAgICAgICBjYXNlIEFYQWNjZXNzS2V5Q2hhbmdlZDoKLSAgICAgICAgICAgIHRy
ZWUtPnF1ZXVlTm9kZVVwZGF0ZSgqbm90aWZpY2F0aW9uLmZpcnN0LCB7IEFYUHJvcGVydHlOYW1l
OjpBY2Nlc3NLZXkgfSk7CisgICAgICAgICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUobm90aWZp
Y2F0aW9uLmZpcnN0LT5vYmplY3RJRCgpLCB7IEFYUHJvcGVydHlOYW1lOjpBY2Nlc3NLZXkgfSk7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBWEF1dG9maWxsVHlwZUNoYW5nZWQ6
Ci0gICAgICAgICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUoKm5vdGlmaWNhdGlvbi5maXJzdCwg
eyBBWFByb3BlcnR5TmFtZTo6VmFsdWVBdXRvZmlsbEJ1dHRvblR5cGUgfSk7CisgICAgICAgICAg
ICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUobm90aWZpY2F0aW9uLmZpcnN0LT5vYmplY3RJRCgpLCB7
IEFYUHJvcGVydHlOYW1lOjpWYWx1ZUF1dG9maWxsQnV0dG9uVHlwZSB9KTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICBjYXNlIEFYQ2VsbFNsb3RzQ2hhbmdlZDoKICAgICAgICAgICAgIEFT
U0VSVChub3RpZmljYXRpb24uZmlyc3QtPmlzVGFibGUoKSk7Ci0gICAgICAgICAgICB0cmVlLT5x
dWV1ZU5vZGVVcGRhdGUoKm5vdGlmaWNhdGlvbi5maXJzdCwgeyBBWFByb3BlcnR5TmFtZTo6Q2Vs
bFNsb3RzIH0pOworICAgICAgICAgICAgdHJlZS0+cXVldWVOb2RlVXBkYXRlKG5vdGlmaWNhdGlv
bi5maXJzdC0+b2JqZWN0SUQoKSwgeyBBWFByb3BlcnR5TmFtZTo6Q2VsbFNsb3RzIH0pOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQVhDaGVja2VkU3RhdGVDaGFuZ2VkOgotICAg
ICAgICAgICAgdHJlZS0+cXVldWVOb2RlVXBkYXRlKCpub3RpZmljYXRpb24uZmlyc3QsIHsgQVhQ
cm9wZXJ0eU5hbWU6OklzQ2hlY2tlZCB9KTsKKyAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVw
ZGF0ZShub3RpZmljYXRpb24uZmlyc3QtPm9iamVjdElEKCksIHsgQVhQcm9wZXJ0eU5hbWU6Oklz
Q2hlY2tlZCB9KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFYQ3VycmVudFN0
YXRlQ2hhbmdlZDoKLSAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZSgqbm90aWZpY2F0
aW9uLmZpcnN0LCB7IEFYUHJvcGVydHlOYW1lOjpDdXJyZW50U3RhdGUgfSk7CisgICAgICAgICAg
ICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUobm90aWZpY2F0aW9uLmZpcnN0LT5vYmplY3RJRCgpLCB7
IEFYUHJvcGVydHlOYW1lOjpDdXJyZW50U3RhdGUgfSk7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgY2FzZSBBWENvbHVtbkNvdW50Q2hhbmdlZDoKLSAgICAgICAgICAgIHRyZWUtPnF1ZXVl
Tm9kZVVwZGF0ZSgqbm90aWZpY2F0aW9uLmZpcnN0LCB7IEFYUHJvcGVydHlOYW1lOjpBWENvbHVt
bkNvdW50IH0pOworICAgICAgICAgICAgdHJlZS0+cXVldWVOb2RlVXBkYXRlKG5vdGlmaWNhdGlv
bi5maXJzdC0+b2JqZWN0SUQoKSwgeyBBWFByb3BlcnR5TmFtZTo6QVhDb2x1bW5Db3VudCB9KTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFYQ29sdW1uSW5kZXhDaGFuZ2VkOgot
ICAgICAgICAgICAgdHJlZS0+cXVldWVOb2RlVXBkYXRlKCpub3RpZmljYXRpb24uZmlyc3QsIHsg
QVhQcm9wZXJ0eU5hbWU6OkFYQ29sdW1uSW5kZXggfSk7CisgICAgICAgICAgICB0cmVlLT5xdWV1
ZU5vZGVVcGRhdGUobm90aWZpY2F0aW9uLmZpcnN0LT5vYmplY3RJRCgpLCB7IEFYUHJvcGVydHlO
YW1lOjpBWENvbHVtbkluZGV4IH0pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Ug
QVhDb2x1bW5TcGFuQ2hhbmdlZDoKLSAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZSgq
bm90aWZpY2F0aW9uLmZpcnN0LCB7IEFYUHJvcGVydHlOYW1lOjpDb2x1bW5JbmRleFJhbmdlIH0p
OworICAgICAgICAgICAgdHJlZS0+cXVldWVOb2RlVXBkYXRlKG5vdGlmaWNhdGlvbi5maXJzdC0+
b2JqZWN0SUQoKSwgeyBBWFByb3BlcnR5TmFtZTo6Q29sdW1uSW5kZXhSYW5nZSB9KTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFYQ29udGVudEVkaXRhYmxlQXR0cmlidXRlQ2hh
bmdlZDoKLSAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZSgqbm90aWZpY2F0aW9uLmZp
cnN0LCB7IEFYUHJvcGVydHlOYW1lOjpJc05vbk5hdGl2ZVRleHRDb250cm9sIH0pOworICAgICAg
ICAgICAgdHJlZS0+cXVldWVOb2RlVXBkYXRlKG5vdGlmaWNhdGlvbi5maXJzdC0+b2JqZWN0SUQo
KSwgeyBBWFByb3BlcnR5TmFtZTo6SXNOb25OYXRpdmVUZXh0Q29udHJvbCB9KTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFYRGlzYWJsZWRTdGF0ZUNoYW5nZWQ6CiAgICAgICAg
ICAgICB0cmVlLT51cGRhdGVQcm9wZXJ0aWVzRm9yU2VsZkFuZERlc2NlbmRhbnRzKCpub3RpZmlj
YXRpb24uZmlyc3QsIHsgeyBBWFByb3BlcnR5TmFtZTo6Q2FuU2V0Rm9jdXNBdHRyaWJ1dGUsIEFY
UHJvcGVydHlOYW1lOjpJc0VuYWJsZWQgfSB9KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBjYXNlIEFYRXhwYW5kZWRDaGFuZ2VkOgotICAgICAgICAgICAgdHJlZS0+cXVldWVOb2RlVXBk
YXRlKCpub3RpZmljYXRpb24uZmlyc3QsIHsgQVhQcm9wZXJ0eU5hbWU6OklzRXhwYW5kZWQgfSk7
CisgICAgICAgICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUobm90aWZpY2F0aW9uLmZpcnN0LT5v
YmplY3RJRCgpLCB7IEFYUHJvcGVydHlOYW1lOjpJc0V4cGFuZGVkIH0pOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIGNhc2UgQVhFeHRlbmRlZERlc2NyaXB0aW9uQ2hhbmdlZDoKLSAgICAg
ICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZSgqbm90aWZpY2F0aW9uLmZpcnN0LCB7IEFYUHJv
cGVydHlOYW1lOjpFeHRlbmRlZERlc2NyaXB0aW9uIH0pOworICAgICAgICAgICAgdHJlZS0+cXVl
dWVOb2RlVXBkYXRlKG5vdGlmaWNhdGlvbi5maXJzdC0+b2JqZWN0SUQoKSwgeyBBWFByb3BlcnR5
TmFtZTo6RXh0ZW5kZWREZXNjcmlwdGlvbiB9KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBjYXNlIEFYRm9jdXNhYmxlU3RhdGVDaGFuZ2VkOgotICAgICAgICAgICAgdHJlZS0+cXVldWVO
b2RlVXBkYXRlKCpub3RpZmljYXRpb24uZmlyc3QsIHsgQVhQcm9wZXJ0eU5hbWU6OkNhblNldEZv
Y3VzQXR0cmlidXRlIH0pOworICAgICAgICAgICAgdHJlZS0+cXVldWVOb2RlVXBkYXRlKG5vdGlm
aWNhdGlvbi5maXJzdC0+b2JqZWN0SUQoKSwgeyBBWFByb3BlcnR5TmFtZTo6Q2FuU2V0Rm9jdXNB
dHRyaWJ1dGUgfSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBWE1heGltdW1W
YWx1ZUNoYW5nZWQ6Ci0gICAgICAgICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUoKm5vdGlmaWNh
dGlvbi5maXJzdCwgeyB7IEFYUHJvcGVydHlOYW1lOjpNYXhWYWx1ZUZvclJhbmdlLCBBWFByb3Bl
cnR5TmFtZTo6VmFsdWVGb3JSYW5nZSB9IH0pOworICAgICAgICAgICAgdHJlZS0+cXVldWVOb2Rl
VXBkYXRlKG5vdGlmaWNhdGlvbi5maXJzdC0+b2JqZWN0SUQoKSwgeyB7IEFYUHJvcGVydHlOYW1l
OjpNYXhWYWx1ZUZvclJhbmdlLCBBWFByb3BlcnR5TmFtZTo6VmFsdWVGb3JSYW5nZSB9IH0pOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQVhNZW51TGlzdEl0ZW1TZWxlY3RlZDog
ewogICAgICAgICAgICAgUmVmUHRyIGFuY2VzdG9yID0gQWNjZXNzaWJpbGl0eTo6ZmluZEFuY2Vz
dG9yPEFjY2Vzc2liaWxpdHlPYmplY3Q+KCpub3RpZmljYXRpb24uZmlyc3QsIGZhbHNlLCBbXSAo
Y29uc3QgYXV0byYgb2JqZWN0KSB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIG9iamVjdC5pc01l
bnUoKSB8fCBvYmplY3QuaXNNZW51QmFyKCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgICAg
IGlmIChhbmNlc3RvcikgewotICAgICAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZSgq
YW5jZXN0b3IsIHsgQVhQcm9wZXJ0eU5hbWU6OlNlbGVjdGVkQ2hpbGRyZW4gfSk7Ci0gICAgICAg
ICAgICAgICAgdHJlZS0+cXVldWVOb2RlVXBkYXRlKCpub3RpZmljYXRpb24uZmlyc3QsIHsgQVhQ
cm9wZXJ0eU5hbWU6OklzU2VsZWN0ZWQgfSk7CisgICAgICAgICAgICAgICAgdHJlZS0+cXVldWVO
b2RlVXBkYXRlKGFuY2VzdG9yLT5vYmplY3RJRCgpLCB7IEFYUHJvcGVydHlOYW1lOjpTZWxlY3Rl
ZENoaWxkcmVuIH0pOworICAgICAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZShub3Rp
ZmljYXRpb24uZmlyc3QtPm9iamVjdElEKCksIHsgQVhQcm9wZXJ0eU5hbWU6OklzU2VsZWN0ZWQg
fSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAg
ICBjYXNlIEFYTWluaW11bVZhbHVlQ2hhbmdlZDoKLSAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9k
ZVVwZGF0ZSgqbm90aWZpY2F0aW9uLmZpcnN0LCB7IHsgQVhQcm9wZXJ0eU5hbWU6Ok1pblZhbHVl
Rm9yUmFuZ2UsIEFYUHJvcGVydHlOYW1lOjpWYWx1ZUZvclJhbmdlIH0gfSk7CisgICAgICAgICAg
ICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUobm90aWZpY2F0aW9uLmZpcnN0LT5vYmplY3RJRCgpLCB7
IHsgQVhQcm9wZXJ0eU5hbWU6Ok1pblZhbHVlRm9yUmFuZ2UsIEFYUHJvcGVydHlOYW1lOjpWYWx1
ZUZvclJhbmdlIH0gfSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBWE5hbWVD
aGFuZ2VkOgotICAgICAgICAgICAgdHJlZS0+cXVldWVOb2RlVXBkYXRlKCpub3RpZmljYXRpb24u
Zmlyc3QsIHsgQVhQcm9wZXJ0eU5hbWU6Ok5hbWVBdHRyaWJ1dGUgfSk7CisgICAgICAgICAgICB0
cmVlLT5xdWV1ZU5vZGVVcGRhdGUobm90aWZpY2F0aW9uLmZpcnN0LT5vYmplY3RJRCgpLCB7IEFY
UHJvcGVydHlOYW1lOjpOYW1lQXR0cmlidXRlIH0pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIGNhc2UgQVhPcmllbnRhdGlvbkNoYW5nZWQ6Ci0gICAgICAgICAgICB0cmVlLT5xdWV1ZU5v
ZGVVcGRhdGUoKm5vdGlmaWNhdGlvbi5maXJzdCwgeyBBWFByb3BlcnR5TmFtZTo6T3JpZW50YXRp
b24gfSk7CisgICAgICAgICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUobm90aWZpY2F0aW9uLmZp
cnN0LT5vYmplY3RJRCgpLCB7IEFYUHJvcGVydHlOYW1lOjpPcmllbnRhdGlvbiB9KTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFYUG9zaXRpb25JblNldENoYW5nZWQ6Ci0gICAg
ICAgICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUoKm5vdGlmaWNhdGlvbi5maXJzdCwgeyB7IEFY
UHJvcGVydHlOYW1lOjpQb3NJblNldCwgQVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRzUG9zSW5TZXQg
fSB9KTsKKyAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZShub3RpZmljYXRpb24uZmly
c3QtPm9iamVjdElEKCksIHsgeyBBWFByb3BlcnR5TmFtZTo6UG9zSW5TZXQsIEFYUHJvcGVydHlO
YW1lOjpTdXBwb3J0c1Bvc0luU2V0IH0gfSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
Y2FzZSBBWFBvcG92ZXJUYXJnZXRDaGFuZ2VkOgotICAgICAgICAgICAgdHJlZS0+cXVldWVOb2Rl
VXBkYXRlKCpub3RpZmljYXRpb24uZmlyc3QsIHsgeyBBWFByb3BlcnR5TmFtZTo6U3VwcG9ydHNF
eHBhbmRlZCwgQVhQcm9wZXJ0eU5hbWU6OklzRXhwYW5kZWQgfSB9KTsKKyAgICAgICAgICAgIHRy
ZWUtPnF1ZXVlTm9kZVVwZGF0ZShub3RpZmljYXRpb24uZmlyc3QtPm9iamVjdElEKCksIHsgeyBB
WFByb3BlcnR5TmFtZTo6U3VwcG9ydHNFeHBhbmRlZCwgQVhQcm9wZXJ0eU5hbWU6OklzRXhwYW5k
ZWQgfSB9KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFYU2VsZWN0ZWRUZXh0
Q2hhbmdlZDoKLSAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZSgqbm90aWZpY2F0aW9u
LmZpcnN0LCB7IEFYUHJvcGVydHlOYW1lOjpTZWxlY3RlZFRleHRSYW5nZSB9KTsKKyAgICAgICAg
ICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZShub3RpZmljYXRpb24uZmlyc3QtPm9iamVjdElEKCks
IHsgQVhQcm9wZXJ0eU5hbWU6OlNlbGVjdGVkVGV4dFJhbmdlIH0pOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgQVhTb3J0RGlyZWN0aW9uQ2hhbmdlZDoKLSAgICAgICAgICAgIHRy
ZWUtPnF1ZXVlTm9kZVVwZGF0ZSgqbm90aWZpY2F0aW9uLmZpcnN0LCB7IEFYUHJvcGVydHlOYW1l
OjpTb3J0RGlyZWN0aW9uIH0pOworICAgICAgICAgICAgdHJlZS0+cXVldWVOb2RlVXBkYXRlKG5v
dGlmaWNhdGlvbi5maXJzdC0+b2JqZWN0SUQoKSwgeyBBWFByb3BlcnR5TmFtZTo6U29ydERpcmVj
dGlvbiB9KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFYSWRBdHRyaWJ1dGVD
aGFuZ2VkOgotICAgICAgICAgICAgdHJlZS0+cXVldWVOb2RlVXBkYXRlKCpub3RpZmljYXRpb24u
Zmlyc3QsIHsgQVhQcm9wZXJ0eU5hbWU6OklkZW50aWZpZXJBdHRyaWJ1dGUgfSk7CisgICAgICAg
ICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUobm90aWZpY2F0aW9uLmZpcnN0LT5vYmplY3RJRCgp
LCB7IEFYUHJvcGVydHlOYW1lOjpJZGVudGlmaWVyQXR0cmlidXRlIH0pOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIGNhc2UgQVhSZWFkT25seVN0YXR1c0NoYW5nZWQ6Ci0gICAgICAgICAg
ICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUoKm5vdGlmaWNhdGlvbi5maXJzdCwgeyBBWFByb3BlcnR5
TmFtZTo6Q2FuU2V0VmFsdWVBdHRyaWJ1dGUgfSk7CisgICAgICAgICAgICB0cmVlLT5xdWV1ZU5v
ZGVVcGRhdGUobm90aWZpY2F0aW9uLmZpcnN0LT5vYmplY3RJRCgpLCB7IEFYUHJvcGVydHlOYW1l
OjpDYW5TZXRWYWx1ZUF0dHJpYnV0ZSB9KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBj
YXNlIEFYUmVxdWlyZWRTdGF0dXNDaGFuZ2VkOgotICAgICAgICAgICAgdHJlZS0+cXVldWVOb2Rl
VXBkYXRlKCpub3RpZmljYXRpb24uZmlyc3QsIHsgQVhQcm9wZXJ0eU5hbWU6OklzUmVxdWlyZWQg
fSk7CisgICAgICAgICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUobm90aWZpY2F0aW9uLmZpcnN0
LT5vYmplY3RJRCgpLCB7IEFYUHJvcGVydHlOYW1lOjpJc1JlcXVpcmVkIH0pOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQVhSb2xlRGVzY3JpcHRpb25DaGFuZ2VkOgotICAgICAg
ICAgICAgdHJlZS0+cXVldWVOb2RlVXBkYXRlKCpub3RpZmljYXRpb24uZmlyc3QsIHsgQVhQcm9w
ZXJ0eU5hbWU6OlJvbGVEZXNjcmlwdGlvbiB9KTsKKyAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9k
ZVVwZGF0ZShub3RpZmljYXRpb24uZmlyc3QtPm9iamVjdElEKCksIHsgQVhQcm9wZXJ0eU5hbWU6
OlJvbGVEZXNjcmlwdGlvbiB9KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFY
Um93SW5kZXhDaGFuZ2VkOgotICAgICAgICAgICAgdHJlZS0+cXVldWVOb2RlVXBkYXRlKCpub3Rp
ZmljYXRpb24uZmlyc3QsIHsgQVhQcm9wZXJ0eU5hbWU6OkFYUm93SW5kZXggfSk7CisgICAgICAg
ICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUobm90aWZpY2F0aW9uLmZpcnN0LT5vYmplY3RJRCgp
LCB7IEFYUHJvcGVydHlOYW1lOjpBWFJvd0luZGV4IH0pOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIGNhc2UgQVhSb3dTcGFuQ2hhbmdlZDoKLSAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9k
ZVVwZGF0ZSgqbm90aWZpY2F0aW9uLmZpcnN0LCB7IEFYUHJvcGVydHlOYW1lOjpSb3dJbmRleFJh
bmdlIH0pOworICAgICAgICAgICAgdHJlZS0+cXVldWVOb2RlVXBkYXRlKG5vdGlmaWNhdGlvbi5m
aXJzdC0+b2JqZWN0SUQoKSwgeyBBWFByb3BlcnR5TmFtZTo6Um93SW5kZXhSYW5nZSB9KTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFYQ2VsbFNjb3BlQ2hhbmdlZDoKLSAgICAg
ICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZSgqbm90aWZpY2F0aW9uLmZpcnN0LCB7IHsgQVhQ
cm9wZXJ0eU5hbWU6OkNlbGxTY29wZSwgQVhQcm9wZXJ0eU5hbWU6OklzQ29sdW1uSGVhZGVyLCBB
WFByb3BlcnR5TmFtZTo6SXNSb3dIZWFkZXIgfSB9KTsKKyAgICAgICAgICAgIHRyZWUtPnF1ZXVl
Tm9kZVVwZGF0ZShub3RpZmljYXRpb24uZmlyc3QtPm9iamVjdElEKCksIHsgeyBBWFByb3BlcnR5
TmFtZTo6Q2VsbFNjb3BlLCBBWFByb3BlcnR5TmFtZTo6SXNDb2x1bW5IZWFkZXIsIEFYUHJvcGVy
dHlOYW1lOjpJc1Jvd0hlYWRlciB9IH0pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIC8v
ICBGSVhNRTogQ29udHJhcnkgdG8gdGhlIG5hbWUgIkFYU2VsZWN0ZWRDZWxsc0NoYW5nZWQiLCB0
aGlzIG5vdGlmaWNhdGlvbiBjYW4gYmUgcG9zdGVkIG9uIGEgY2VsbAogICAgICAgICAvLyAgd2hv
IGhhcyBjaGFuZ2VkIHNlbGVjdGVkIHN0YXRlLCBub3QganVzdCBvbiB0YWJsZSBvciBncmlkIHdo
byBoYXMgY2hhbmdlZCBpdHMgc2VsZWN0ZWQgY2VsbHMuCiAgICAgICAgIGNhc2UgQVhTZWxlY3Rl
ZENlbGxzQ2hhbmdlZDoKICAgICAgICAgY2FzZSBBWFNlbGVjdGVkU3RhdGVDaGFuZ2VkOgotICAg
ICAgICAgICAgdHJlZS0+cXVldWVOb2RlVXBkYXRlKCpub3RpZmljYXRpb24uZmlyc3QsIHsgQVhQ
cm9wZXJ0eU5hbWU6OklzU2VsZWN0ZWQgfSk7CisgICAgICAgICAgICB0cmVlLT5xdWV1ZU5vZGVV
cGRhdGUobm90aWZpY2F0aW9uLmZpcnN0LT5vYmplY3RJRCgpLCB7IEFYUHJvcGVydHlOYW1lOjpJ
c1NlbGVjdGVkIH0pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQVhTZXRTaXpl
Q2hhbmdlZDoKLSAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZSgqbm90aWZpY2F0aW9u
LmZpcnN0LCB7IHsgQVhQcm9wZXJ0eU5hbWU6OlNldFNpemUsIEFYUHJvcGVydHlOYW1lOjpTdXBw
b3J0c1NldFNpemUgfSB9KTsKKyAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZShub3Rp
ZmljYXRpb24uZmlyc3QtPm9iamVjdElEKCksIHsgeyBBWFByb3BlcnR5TmFtZTo6U2V0U2l6ZSwg
QVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRzU2V0U2l6ZSB9IH0pOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGNhc2UgQVhUYWJsZUhlYWRlcnNDaGFuZ2VkOgotICAgICAgICAgICAgdHJlZS0+
cXVldWVOb2RlVXBkYXRlKCpub3RpZmljYXRpb24uZmlyc3QsIHsgQVhQcm9wZXJ0eU5hbWU6OkNv
bHVtbkhlYWRlcnMgfSk7CisgICAgICAgICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUobm90aWZp
Y2F0aW9uLmZpcnN0LT5vYmplY3RJRCgpLCB7IEFYUHJvcGVydHlOYW1lOjpDb2x1bW5IZWFkZXJz
IH0pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQVhUZXh0Q29tcG9zaXRpb25D
aGFuZ2VkOgotICAgICAgICAgICAgdHJlZS0+cXVldWVOb2RlVXBkYXRlKCpub3RpZmljYXRpb24u
Zmlyc3QsIHsgQVhQcm9wZXJ0eU5hbWU6OlRleHRJbnB1dE1hcmtlZFRleHRNYXJrZXJSYW5nZSB9
KTsKKyAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZShub3RpZmljYXRpb24uZmlyc3Qt
Pm9iamVjdElEKCksIHsgQVhQcm9wZXJ0eU5hbWU6OlRleHRJbnB1dE1hcmtlZFRleHRNYXJrZXJS
YW5nZSB9KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFYVVJMQ2hhbmdlZDoK
LSAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZSgqbm90aWZpY2F0aW9uLmZpcnN0LCB7
IHsgQVhQcm9wZXJ0eU5hbWU6OlVSTCwgQVhQcm9wZXJ0eU5hbWU6OkludGVybmFsTGlua0VsZW1l
bnQgfSB9KTsKKyAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZShub3RpZmljYXRpb24u
Zmlyc3QtPm9iamVjdElEKCksIHsgeyBBWFByb3BlcnR5TmFtZTo6VVJMLCBBWFByb3BlcnR5TmFt
ZTo6SW50ZXJuYWxMaW5rRWxlbWVudCB9IH0pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGNhc2UgQVhLZXlTaG9ydGN1dHNDaGFuZ2VkOgotICAgICAgICAgICAgdHJlZS0+cXVldWVOb2Rl
VXBkYXRlKCpub3RpZmljYXRpb24uZmlyc3QsIHsgQVhQcm9wZXJ0eU5hbWU6OktleVNob3J0Y3V0
cyB9KTsKKyAgICAgICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0ZShub3RpZmljYXRpb24uZmly
c3QtPm9iamVjdElEKCksIHsgQVhQcm9wZXJ0eU5hbWU6OktleVNob3J0Y3V0cyB9KTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFYVmlzaWJpbGl0eUNoYW5nZWQ6Ci0gICAgICAg
ICAgICB0cmVlLT5xdWV1ZU5vZGVVcGRhdGUoKm5vdGlmaWNhdGlvbi5maXJzdCwgeyBBWFByb3Bl
cnR5TmFtZTo6SXNWaXNpYmxlIH0pOworICAgICAgICAgICAgdHJlZS0+cXVldWVOb2RlVXBkYXRl
KG5vdGlmaWNhdGlvbi5maXJzdC0+b2JqZWN0SUQoKSwgeyBBWFByb3BlcnR5TmFtZTo6SXNWaXNp
YmxlIH0pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQVhBY3RpdmVEZXNjZW5k
YW50Q2hhbmdlZDoKICAgICAgICAgY2FzZSBBWFJvbGVDaGFuZ2VkOgpAQCAtNDQxNSw3ICs0NDE1
LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjp1cGRhdGVJc29sYXRlZFRyZWUoQWNjZXNzaWJpbGl0
eU9iamVjdCogYXhPYmplY3QsIEFYUHJvcGVydHkKIHZvaWQgQVhPYmplY3RDYWNoZTo6dXBkYXRl
SXNvbGF0ZWRUcmVlKEFjY2Vzc2liaWxpdHlPYmplY3QmIGF4T2JqZWN0LCBBWFByb3BlcnR5TmFt
ZSBwcm9wZXJ0eSkgY29uc3QKIHsKICAgICBpZiAoUmVmUHRyIHRyZWUgPSBBWElzb2xhdGVkVHJl
ZTo6dHJlZUZvclBhZ2VJRChtX3BhZ2VJRCkpCi0gICAgICAgIHRyZWUtPnF1ZXVlTm9kZVVwZGF0
ZShheE9iamVjdCwgeyBwcm9wZXJ0eSB9KTsKKyAgICAgICAgdHJlZS0+cXVldWVOb2RlVXBkYXRl
KGF4T2JqZWN0Lm9iamVjdElEKCksIHsgcHJvcGVydHkgfSk7CiB9CiAKIHZvaWQgQVhPYmplY3RD
YWNoZTo6c3RhcnRVcGRhdGVUcmVlU25hcHNob3RUaW1lcigpCkBAIC01MDI3LDkgKzUwMjcsMTEg
QEAgYm9vbCBBWE9iamVjdENhY2hlOjppc0Rlc2NlbmRhbnRPZlJlbGF0ZWROb2RlKE5vZGUmIG5v
ZGUpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1zdGQ6Om9wdGlvbmFsPExpc3RIYXNoU2V0PEFY
SUQ+PiBBWE9iamVjdENhY2hlOjpyZWxhdGVkT2JqZWN0SURzRm9yKGNvbnN0IEFYQ29yZU9iamVj
dCYgb2JqZWN0LCBBWFJlbGF0aW9uVHlwZSByZWxhdGlvblR5cGUpCitzdGQ6Om9wdGlvbmFsPExp
c3RIYXNoU2V0PEFYSUQ+PiBBWE9iamVjdENhY2hlOjpyZWxhdGVkT2JqZWN0SURzRm9yKGNvbnN0
IEFYQ29yZU9iamVjdCYgb2JqZWN0LCBBWFJlbGF0aW9uVHlwZSByZWxhdGlvblR5cGUsIFVwZGF0
ZVJlbGF0aW9ucyB1cGRhdGVSZWxhdGlvbnMpCiB7Ci0gICAgdXBkYXRlUmVsYXRpb25zSWZOZWVk
ZWQoKTsKKyAgICBpZiAodXBkYXRlUmVsYXRpb25zID09IFVwZGF0ZVJlbGF0aW9uczo6WWVzKQor
ICAgICAgICB1cGRhdGVSZWxhdGlvbnNJZk5lZWRlZCgpOworCiAgICAgYXV0byByZWxhdGlvbnNJ
dGVyYXRvciA9IG1fcmVsYXRpb25zLmZpbmQob2JqZWN0Lm9iamVjdElEKCkpOwogICAgIGlmIChy
ZWxhdGlvbnNJdGVyYXRvciA9PSBtX3JlbGF0aW9ucy5lbmQoKSkKICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhP
YmplY3RDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hl
LmgKaW5kZXggMjM2YjRiM2U1MjFkLi42OTcwZWI3ZTMzMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCkBAIC00ODYsOCArNDg2LDkgQEAgcHVibGlj
OgogCiAgICAgQVhUcmVlRGF0YSB0cmVlRGF0YSgpOwogCisgICAgZW51bSBjbGFzcyBVcGRhdGVS
ZWxhdGlvbnMgOiBib29sIHsgTm8sIFllcyB9OwogICAgIC8vIFJldHVybnMgdGhlIElEcyBvZiB0
aGUgb2JqZWN0cyB0aGF0IHJlbGF0ZSB0byB0aGUgZ2l2ZW4gb2JqZWN0IHdpdGggdGhlIHNwZWNp
ZmllZCByZWxhdGlvbnNoaXAuCi0gICAgc3RkOjpvcHRpb25hbDxMaXN0SGFzaFNldDxBWElEPj4g
cmVsYXRlZE9iamVjdElEc0Zvcihjb25zdCBBWENvcmVPYmplY3QmLCBBWFJlbGF0aW9uVHlwZSk7
CisgICAgc3RkOjpvcHRpb25hbDxMaXN0SGFzaFNldDxBWElEPj4gcmVsYXRlZE9iamVjdElEc0Zv
cihjb25zdCBBWENvcmVPYmplY3QmLCBBWFJlbGF0aW9uVHlwZSwgVXBkYXRlUmVsYXRpb25zID0g
VXBkYXRlUmVsYXRpb25zOjpZZXMpOwogICAgIHZvaWQgdXBkYXRlUmVsYXRpb25zKEVsZW1lbnQm
LCBjb25zdCBRdWFsaWZpZWROYW1lJik7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZFRyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUv
QVhJc29sYXRlZFRyZWUuY3BwCmluZGV4IDIzOGFiOTBiZDY3Yi4uYjFiZGRiZWU5YTU5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xh
dGVkVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRy
ZWUvQVhJc29sYXRlZFRyZWUuY3BwCkBAIC01MTIsNyArNTEyLDcgQEAgdm9pZCBBWElzb2xhdGVk
VHJlZTo6dXBkYXRlUHJvcGVydGllc0ZvclNlbGZBbmREZXNjZW5kYW50cyhBY2Nlc3NpYmlsaXR5
T2JqZWN0JgogICAgICAgICBwcm9wZXJ0eVNldC5hZGQocHJvcGVydHkpOwogCiAgICAgQWNjZXNz
aWJpbGl0eTo6ZW51bWVyYXRlRGVzY2VuZGFudHM8QVhDb3JlT2JqZWN0PihheE9iamVjdCwgdHJ1
ZSwgWyZwcm9wZXJ0eVNldCwgdGhpc10gKGF1dG8mIGRlc2NlbmRhbnQpIHsKLSAgICAgICAgcXVl
dWVOb2RlVXBkYXRlKGRlc2NlbmRhbnQsIHsgcHJvcGVydHlTZXQgfSk7CisgICAgICAgIHF1ZXVl
Tm9kZVVwZGF0ZShkZXNjZW5kYW50Lm9iamVjdElEKCksIHsgcHJvcGVydHlTZXQgfSk7CiAgICAg
fSk7CiB9CiAKQEAgLTczMCw3ICs3MzAsNyBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVE
ZXBlbmRlbnRQcm9wZXJ0aWVzKEFjY2Vzc2liaWxpdHlPYmplY3QmIGF4T2JqZWN0KQogICAgIGJv
b2wgdXBkYXRlVGFibGVBbmNlc3RvckNvbHVtbnMgPSBpczxBY2Nlc3NpYmlsaXR5VGFibGVSb3c+
KGF4T2JqZWN0KTsKICAgICBmb3IgKFJlZlB0ciBhbmNlc3RvciA9IGF4T2JqZWN0LnBhcmVudE9i
amVjdCgpOyBhbmNlc3RvcjsgYW5jZXN0b3IgPSBhbmNlc3Rvci0+cGFyZW50T2JqZWN0KCkpIHsK
ICAgICAgICAgaWYgKGFuY2VzdG9yLT5pc1RyZWUoKSkgewotICAgICAgICAgICAgcXVldWVOb2Rl
VXBkYXRlKCphbmNlc3RvciwgeyBBWFByb3BlcnR5TmFtZTo6QVJJQVRyZWVSb3dzIH0pOworICAg
ICAgICAgICAgcXVldWVOb2RlVXBkYXRlKGFuY2VzdG9yLT5vYmplY3RJRCgpLCB7IEFYUHJvcGVy
dHlOYW1lOjpBUklBVHJlZVJvd3MgfSk7CiAgICAgICAgICAgICBpZiAoIXVwZGF0ZVRhYmxlQW5j
ZXN0b3JDb2x1bW5zKQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0xMDM4
LDEyICsxMDM4LDEyIEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OnJlbW92ZU5vZGUoY29uc3QgQWNj
ZXNzaWJpbGl0eU9iamVjdCYgYXhPYmplY3QpCiAgICAgQVhMT0cobWFrZVN0cmluZygib2JqZWN0
SUQgIiwgYXhPYmplY3Qub2JqZWN0SUQoKS5sb2dnaW5nU3RyaW5nKCkpKTsKICAgICBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpOwogCi0gICAgaWYgKGF4T2JqZWN0LmlzTGFiZWwoKSkgewotICAgICAg
ICAvLyBVcGRhdGUgdGhlIGxhYmVsZWQgb2JqZWN0cyBzaW5jZSBvbmUgb2YgdGhlaXIgbGFiZWxz
IHdhcyByZW1vdmVkLgotICAgICAgICBhdXRvIGxhYmVsZWRPYmplY3RzID0gYXhPYmplY3QubGFi
ZWxGb3JPYmplY3RzKCk7Ci0gICAgICAgIGZvciAoYXV0byYgbGFiZWxlZE9iamVjdCA6IGxhYmVs
ZWRPYmplY3RzKSB7CisgICAgYXV0byBsYWJlbGVkT2JqZWN0SURzID0gYXhPYmplY3RDYWNoZSgp
ID8gYXhPYmplY3RDYWNoZSgpLT5yZWxhdGVkT2JqZWN0SURzRm9yKGF4T2JqZWN0LCBBWFJlbGF0
aW9uVHlwZTo6TGFiZWxGb3IsIEFYT2JqZWN0Q2FjaGU6OlVwZGF0ZVJlbGF0aW9uczo6Tm8pIDog
c3RkOjpudWxsb3B0OworICAgIGlmIChsYWJlbGVkT2JqZWN0SURzKSB7CisgICAgICAgIC8vIFVw
ZGF0ZSB0aGUgbGFiZWxlZCBvYmplY3RzIHNpbmNlIGF4T2JqZWN0IGlzIG9uZSBvZiB0aGVpciBs
YWJlbHMgYW5kIGl0IGlzIGJlaW5nIHJlbW92ZWQuCisgICAgICAgIGZvciAoQVhJRCBsYWJlbGVk
T2JqZWN0SUQgOiAqbGFiZWxlZE9iamVjdElEcykgewogICAgICAgICAgICAgLy8gVGhlIGxhYmVs
L3RpdGxlIG9mIGFuIGlzb2xhdGVkIG9iamVjdCBpcyBjb21wdXRlZCBiYXNlZCBvbiBpdHMgQWNj
ZXNzaWJpbGl0eVRleHQgcHJvcHBlcnR5LCB0aHVzIHVwZGF0ZSBpdC4KLSAgICAgICAgICAgIHF1
ZXVlTm9kZVVwZGF0ZSgqbGFiZWxlZE9iamVjdCwgeyBBWFByb3BlcnR5TmFtZTo6QWNjZXNzaWJp
bGl0eVRleHQgfSk7CisgICAgICAgICAgICBxdWV1ZU5vZGVVcGRhdGUobGFiZWxlZE9iamVjdElE
LCB7IEFYUHJvcGVydHlOYW1lOjpBY2Nlc3NpYmlsaXR5VGV4dCB9KTsKICAgICAgICAgfQogICAg
IH0KIApAQCAtMTI0OCwyNiArMTI0OCwyNiBAQCBBWFRyZWVQdHIgZmluZEFYVHJlZShGdW5jdGlv
bjxib29sKEFYVHJlZVB0cik+JiYgbWF0Y2gpCiAjZW5kaWYKIH0KIAotdm9pZCBBWElzb2xhdGVk
VHJlZTo6cXVldWVOb2RlVXBkYXRlKEFYQ29yZU9iamVjdCYgb2JqZWN0LCBjb25zdCBOb2RlVXBk
YXRlT3B0aW9ucyYgb3B0aW9ucykKK3ZvaWQgQVhJc29sYXRlZFRyZWU6OnF1ZXVlTm9kZVVwZGF0
ZShBWElEIG9iamVjdElELCBjb25zdCBOb2RlVXBkYXRlT3B0aW9ucyYgb3B0aW9ucykKIHsKICAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCiAgICAgaWYgKCFvcHRpb25zLnNob3VsZFVwZGF0
ZU5vZGUgJiYgb3B0aW9ucy5wcm9wZXJ0aWVzLnNpemUoKSkgewogICAgICAgICAvLyBJZiB3ZSdy
ZSBnb2luZyB0byByZWNvbXB1dGUgYWxsIHByb3BlcnRpZXMgZm9yIHRoZSBub2RlIChpLmUuLCB0
aGUgbm9kZSBpcyBpbiBtX25lZWRzVXBkYXRlTm9kZSksCiAgICAgICAgIC8vIGRvbid0IGJvdGhl
ciBxdWV1ZWluZyBhbnkgaW5kaXZpZHVhbCBwcm9wZXJ0eSB1cGRhdGVzLgotICAgICAgICBpZiAo
bV9uZWVkc1VwZGF0ZU5vZGUuY29udGFpbnMob2JqZWN0Lm9iamVjdElEKCkpKQorICAgICAgICBp
ZiAobV9uZWVkc1VwZGF0ZU5vZGUuY29udGFpbnMob2JqZWN0SUQpKQogICAgICAgICAgICAgcmV0
dXJuOwogCi0gICAgICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9uZWVkc1Byb3BlcnR5VXBkYXRlcy5h
ZGQob2JqZWN0Lm9iamVjdElEKCksIG9wdGlvbnMucHJvcGVydGllcyk7CisgICAgICAgIGF1dG8g
YWRkUmVzdWx0ID0gbV9uZWVkc1Byb3BlcnR5VXBkYXRlcy5hZGQob2JqZWN0SUQsIG9wdGlvbnMu
cHJvcGVydGllcyk7CiAgICAgICAgIGlmICghYWRkUmVzdWx0LmlzTmV3RW50cnkpCiAgICAgICAg
ICAgICBhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlLmZvcm1VbmlvbihvcHRpb25zLnByb3BlcnRp
ZXMpOwogICAgIH0KIAogICAgIGlmIChvcHRpb25zLnNob3VsZFVwZGF0ZUNoaWxkcmVuKQotICAg
ICAgICBtX25lZWRzVXBkYXRlQ2hpbGRyZW4uYWRkKG9iamVjdC5vYmplY3RJRCgpKTsKKyAgICAg
ICAgbV9uZWVkc1VwZGF0ZUNoaWxkcmVuLmFkZChvYmplY3RJRCk7CiAKICAgICBpZiAob3B0aW9u
cy5zaG91bGRVcGRhdGVOb2RlKQotICAgICAgICBtX25lZWRzVXBkYXRlTm9kZS5hZGQob2JqZWN0
Lm9iamVjdElEKCkpOworICAgICAgICBtX25lZWRzVXBkYXRlTm9kZS5hZGQob2JqZWN0SUQpOwog
CiAgICAgaWYgKGF1dG8qIGNhY2hlID0gYXhPYmplY3RDYWNoZSgpKQogICAgICAgICBjYWNoZS0+
c3RhcnRVcGRhdGVUcmVlU25hcHNob3RUaW1lcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgKaW5kZXgg
MzY0YTU0Yzk0YWMwLi5hZTJhODNhMWMwOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaApAQCAtMzg0
LDcgKzM4NCw3IEBAIHB1YmxpYzoKICAgICBBWFRleHRNYXJrZXJSYW5nZSBzZWxlY3RlZFRleHRN
YXJrZXJSYW5nZSgpOwogICAgIHZvaWQgc2V0U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2UoQVhUZXh0
TWFya2VyUmFuZ2UmJik7CiAKLSAgICB2b2lkIHF1ZXVlTm9kZVVwZGF0ZShBWENvcmVPYmplY3Qm
LCBjb25zdCBOb2RlVXBkYXRlT3B0aW9ucyYpOworICAgIHZvaWQgcXVldWVOb2RlVXBkYXRlKEFY
SUQsIGNvbnN0IE5vZGVVcGRhdGVPcHRpb25zJik7CiAgICAgdm9pZCBwcm9jZXNzUXVldWVkTm9k
ZVVwZGF0ZXMoKTsKIAogI2lmIEVOQUJMRShBWF9USFJFQURfVEVYVF9BUElTKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>