<?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>271674</bug_id>
          
          <creation_ts>2024-03-25 14:19:44 -0700</creation_ts>
          <short_desc>AX: Mac layout tests shouldn&apos;t access attributes that aren&apos;t exposed for that element</short_desc>
          <delta_ts>2024-04-02 12:27:27 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>Safari Technology Preview</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="Dominic Mazzoni">dm_mazzoni</reporter>
          <assigned_to name="Dominic Mazzoni">dm_mazzoni</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>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2023767</commentid>
    <comment_count>0</comment_count>
    <who name="Dominic Mazzoni">dm_mazzoni</who>
    <bug_when>2024-03-25 14:19:44 -0700</bug_when>
    <thetext>AccessibilityUIElementMac accesses attributes by calling accessibilityAttributeValue on the underlying element. However, this doesn&apos;t mimic how VoiceOver and most other Mac AT actually work, they all check accessibilityAttributeNames first and don&apos;t bother querying for any attribute not contained in that list. So that leads to WebKit tests passing even though the attributes it&apos;s testing being effectively hidden from AT in practice.

By checking accessibilityAttributeNames in AccessibilityUIElementMac, we can catch these potential bugs sooner.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2023768</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2024-03-25 14:19:51 -0700</bug_when>
    <thetext>&lt;rdar://problem/125373694&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2023772</commentid>
    <comment_count>2</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2024-03-25 14:24:40 -0700</bug_when>
    <thetext>(In reply to Radar WebKit Bug Importer from comment #1)
&gt; &lt;rdar://problem/125373694&gt;

We expose a growing number of API attributes that are not to be used by AT, but instead for unit test purpose.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2023933</commentid>
    <comment_count>3</comment_count>
    <who name="Dominic Mazzoni">dm_mazzoni</who>
    <bug_when>2024-03-26 08:49:51 -0700</bug_when>
    <thetext>Yes, this could be a good opportunity to clean up these attributes too, and ensure that the ones that are intended to be internal-only really aren&apos;t exposed.

Right now some of them have a check to ensure they&apos;re only used for testing, and others appear to me to be testing-only but it isn&apos;t enforced.

There&apos;s at least one case I found of a testing-only attribute that VoiceOver is using, probably a misunderstanding.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2023943</commentid>
    <comment_count>4</comment_count>
      <attachid>470607</attachid>
    <who name="Dominic Mazzoni">dm_mazzoni</who>
    <bug_when>2024-03-26 09:34:52 -0700</bug_when>
    <thetext>Created attachment 470607
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2024163</commentid>
    <comment_count>5</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2024-03-27 07:28:44 -0700</bug_when>
    <thetext>(In reply to Dominic Mazzoni from comment #4)
&gt; Created attachment 470607 [details]
&gt; Patch

diff --git a/Source/WebCore/accessibility/AccessibilityObject.cpp b/Source/WebCore/accessibility/AccessibilityObject.cpp
index e98934f55a18..d6115806bd71 100644
--- a/Source/WebCore/accessibility/AccessibilityObject.cpp
+++ b/Source/WebCore/accessibility/AccessibilityObject.cpp
@@ -3449,6 +3449,9 @@ bool AccessibilityObject::supportsExpanded() const
     if (popoverTargetElement())
         return true;

+    if (is&lt;HTMLDetailsElement&gt;(node()))
+        return true;
+
     switch (roleValue()) {
     case AccessibilityRole::Details:
         return true;

AG: wouldn&apos;t an HTMLDetailsElement have AccessibilityRole::Details and thus be covered by the above case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2024169</commentid>
    <comment_count>6</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2024-03-27 07:51:47 -0700</bug_when>
    <thetext>(In reply to Dominic Mazzoni from comment #4)
&gt; Created attachment 470607 [details]
&gt; Patch

diff --git a/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm b/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm
index 0dc006087fe6..78674c421d2f 100644
--- a/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm
+++ b/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm
@@ -823,7 +823,8 @@ - (NSArray*)_additionalAccessibilityAttributeNames:(const RefPtr&lt;AXCoreObject&gt;&amp;)
     if (backingObject-&gt;isScrollbar()
         || backingObject-&gt;isRadioGroup()
         || backingObject-&gt;isSplitter()
-        || backingObject-&gt;isToolbar())
+        || backingObject-&gt;isToolbar()
+        || backingObject-&gt;roleValue() == AccessibilityRole::HorizontalRule)
         [additional addObject:NSAccessibilityOrientationAttribute];

     if (backingObject-&gt;supportsDragging())
@@ -905,6 +906,24 @@ - (NSArray*)_additionalAccessibilityAttributeNames:(const RefPtr&lt;AXCoreObject&gt;&amp;)
     if (backingObject-&gt;supportsExpandedTextValue())
         [additional addObject:NSAccessibilityExpandedTextValueAttribute];

+    if (!backingObject-&gt;brailleLabel().isEmpty())
+        [additional addObject:NSAccessibilityBrailleLabelAttribute];
+
+    if (!backingObject-&gt;brailleRoleDescription().isEmpty())
+        [additional addObject:NSAccessibilityBrailleRoleDescriptionAttribute];
+
+    if (backingObject-&gt;detailedByObjects().size())
+        [additional addObject:@&quot;AXDetailsElements&quot;];
+
+    if (backingObject-&gt;errorMessageObjects().size())
+        [additional addObject:@&quot;AXErrorMessageElements&quot;];
+
+    if (!backingObject-&gt;keyShortcuts().isEmpty())
+        [additional addObject:NSAccessibilityKeyShortcutsAttribute];
+
+    if (backingObject-&gt;titleUIElement())
+        [additional addObject:NSAccessibilityTitleUIElementAttribute];
+
 #if ENABLE(ACCESSIBILITY_ISOLATED_TREE)
     if (AXObjectCache::isIsolatedTreeEnabled())
         [additional addObject:NSAccessibilityRelativeFrameAttribute];
@@ -979,15 +998,6 @@ ALLOW_DEPRECATED_IMPLEMENTATIONS_END
         [tempArray addObject:NSAccessibilityLinkRelationshipTypeAttribute];
         return tempArray;
     }();
-    static NeverDestroyed&lt;RetainPtr&lt;NSArray&gt;&gt; commonMenuAttrs = @[
-        NSAccessibilityRoleAttribute,
-        NSAccessibilityRoleDescriptionAttribute,
-        NSAccessibilityChildrenAttribute,
-        NSAccessibilityParentAttribute,
-        NSAccessibilityEnabledAttribute,
-        NSAccessibilityPositionAttribute,
-        NSAccessibilitySizeAttribute,
-    ];
     static NeverDestroyed webAreaAttrs = [] {
         auto tempArray = adoptNS([[NSMutableArray alloc] initWithArray:attributes.get().get()]);
         // WebAreas should not expose AXSubrole.
@@ -1012,11 +1022,11 @@ ALLOW_DEPRECATED_IMPLEMENTATIONS_END
         [tempArray addObject:NSAccessibilitySelectedTextRangeAttribute];
         [tempArray addObject:NSAccessibilityVisibleCharacterRangeAttribute];
         [tempArray addObject:NSAccessibilityInsertionPointLineNumberAttribute];
-        [tempArray addObject:NSAccessibilityTitleUIElementAttribute];
         [tempArray addObject:NSAccessibilityAccessKeyAttribute];
         [tempArray addObject:NSAccessibilityRequiredAttribute];
         [tempArray addObject:NSAccessibilityInvalidAttribute];
         [tempArray addObject:NSAccessibilityPlaceholderValueAttribute];
+        [tempArray addObject:NSAccessibilityValueAutofillAvailableAttribute];
         return tempArray;
     }();
     static NeverDestroyed listAttrs = [] {
@@ -1024,7 +1034,6 @@ ALLOW_DEPRECATED_IMPLEMENTATIONS_END
         [tempArray addObject:NSAccessibilitySelectedChildrenAttribute];
         [tempArray addObject:NSAccessibilityVisibleChildrenAttribute];
         [tempArray addObject:NSAccessibilityOrientationAttribute];
-        [tempArray addObject:NSAccessibilityTitleUIElementAttribute];
         return tempArray;
     }();
     static NeverDestroyed listBoxAttrs = [] {
@@ -1041,25 +1050,22 @@ ALLOW_DEPRECATED_IMPLEMENTATIONS_END
         [tempArray addObject:NSAccessibilityMaxValueAttribute];
         [tempArray addObject:NSAccessibilityOrientationAttribute];
         [tempArray addObject:NSAccessibilityValueDescriptionAttribute];
-        [tempArray addObject:NSAccessibilityTitleUIElementAttribute];
         return tempArray;
     }();
     static NeverDestroyed menuBarAttrs = [] {
-        auto tempArray = adoptNS([[NSMutableArray alloc] initWithArray:commonMenuAttrs.get().get()]);
+        auto tempArray = adoptNS([[NSMutableArray alloc] initWithArray:attributes.get().get()]);
         [tempArray addObject:NSAccessibilitySelectedChildrenAttribute];
-        [tempArray addObject:NSAccessibilityTitleUIElementAttribute];
         [tempArray addObject:NSAccessibilityOrientationAttribute];
         return tempArray;
     }();
     static NeverDestroyed menuAttrs = [] {
-        auto tempArray = adoptNS([[NSMutableArray alloc] initWithArray:commonMenuAttrs.get().get()]);
+        auto tempArray = adoptNS([[NSMutableArray alloc] initWithArray:attributes.get().get()]);
         [tempArray addObject:NSAccessibilitySelectedChildrenAttribute];
-        [tempArray addObject:NSAccessibilityTitleUIElementAttribute];
         [tempArray addObject:NSAccessibilityOrientationAttribute];
         return tempArray;
     }();
     static NeverDestroyed menuItemAttrs = [] {
-        auto tempArray = adoptNS([[NSMutableArray alloc] initWithArray:commonMenuAttrs.get().get()]);
+        auto tempArray = adoptNS([[NSMutableArray alloc] initWithArray:attributes.get().get()]);
         [tempArray addObject:NSAccessibilityTitleAttribute];
         [tempArray addObject:NSAccessibilityDescriptionAttribute];
         [tempArray addObject:NSAccessibilityHelpAttribute];
@@ -1088,7 +1094,6 @@ ALLOW_DEPRECATED_IMPLEMENTATIONS_END
         NSAccessibilityChildrenAttribute,
     ];
     static NeverDestroyed&lt;RetainPtr&lt;NSArray&gt;&gt; sharedControlAttrs = @[
-        NSAccessibilityTitleUIElementAttribute,
         NSAccessibilityAccessKeyAttribute,
         NSAccessibilityRequiredAttribute,
         NSAccessibilityInvalidAttribute,
@@ -1107,8 +1112,8 @@ ALLOW_DEPRECATED_IMPLEMENTATIONS_END
         auto tempArray = adoptNS([[NSMutableArray alloc] initWithArray:attributes.get().get()]);
         // Buttons should not expose AXValue.
         [tempArray removeObject:NSAccessibilityValueAttribute];
-        [tempArray addObject:NSAccessibilityTitleUIElementAttribute];
         [tempArray addObject:NSAccessibilityAccessKeyAttribute];
+        [tempArray addObject:NSAccessibilityInvalidAttribute];
         return tempArray;
     }();
     static NeverDestroyed comboBoxAttrs = [] {
@@ -1137,6 +1142,7 @@ ALLOW_DEPRECATED_IMPLEMENTATIONS_END
         [tempArray addObject:NSAccessibilityARIAColumnCountAttribute];
         [tempArray addObject:NSAccessibilityARIARowCountAttribute];
         [tempArray addObject:NSAccessibilitySelectedCellsAttribute];
+        [tempArray addObject:@&quot;AXTableLevel&quot;];
         return tempArray;
     }();
     static NeverDestroyed tableRowAttrs = [] {
@@ -1164,7 +1170,7 @@ ALLOW_DEPRECATED_IMPLEMENTATIONS_END
     }();
     static NeverDestroyed groupAttrs = [] {
         auto tempArray = adoptNS([[NSMutableArray alloc] initWithArray:attributes.get().get()]);
-        [tempArray addObject:NSAccessibilityTitleUIElementAttribute];
+        [tempArray addObject:NSAccessibilityInlineTextAttribute];
         return tempArray;
     }();
     static NeverDestroyed inputImageAttrs = [] {
@@ -1174,7 +1180,6 @@ ALLOW_DEPRECATED_IMPLEMENTATIONS_END
     }();
     static NeverDestroyed secureFieldAttributes = [] {
         auto tempArray = adoptNS([[NSMutableArray alloc] initWithArray:attributes.get().get()]);
-        [tempArray addObject:NSAccessibilityTitleUIElementAttribute];
         [tempArray addObject:NSAccessibilityRequiredAttribute];
         [tempArray addObject:NSAccessibilityInvalidAttribute];
         [tempArray addObject:NSAccessibilityPlaceholderValueAttribute];
@@ -1185,6 +1190,7 @@ ALLOW_DEPRECATED_IMPLEMENTATIONS_END
         [tempArray addObject:NSAccessibilityTabsAttribute];
         [tempArray addObject:NSAccessibilityContentsAttribute];
         [tempArray addObject:NSAccessibilityOrientationAttribute];
+        [tempArray addObject:NSAccessibilitySelectedChildrenAttribute];
         return tempArray;
     }();
     static NeverDestroyed outlineAttrs = [] {
@@ -1193,6 +1199,7 @@ ALLOW_DEPRECATED_IMPLEMENTATIONS_END
         [tempArray addObject:NSAccessibilityRowsAttribute];
         [tempArray addObject:NSAccessibilityColumnsAttribute];
         [tempArray addObject:NSAccessibilityOrientationAttribute];
+        [tempArray addObject:NSAccessibilitySelectedChildrenAttribute];
         return tempArray;
     }();
     static NeverDestroyed outlineRowAttrs = [] {
@@ -1227,6 +1234,7 @@ ALLOW_DEPRECATED_IMPLEMENTATIONS_END
     static NeverDestroyed staticTextAttrs = [] {
         auto tempArray = adoptNS([[NSMutableArray alloc] initWithArray:attributes.get().get()]);
         [tempArray addObject:NSAccessibilityIntersectionWithSelectionRangeAttribute];
+        [tempArray addObject:NSAccessibilityVisibleCharacterRangeAttribute];
         return tempArray;
     }();

@@ -1248,7 +1256,7 @@ ALLOW_DEPRECATED_IMPLEMENTATIONS_END
         objectAttributes = anchorAttrs.get().get();
     else if (backingObject-&gt;isImage())
         objectAttributes = imageAttrs.get().get();
-    else if (backingObject-&gt;isTable() &amp;&amp; backingObject-&gt;isExposable())
+    else if ((backingObject-&gt;isTable() &amp;&amp; backingObject-&gt;isExposable()) || backingObject-&gt;isAccessibilityARIAGridInstance())

AG: isAccessibilityARIAGridInstance returns false for all isolated objects as it should. We cannot call is***Instance methods here, or equivalent is&lt;T&gt;.

         objectAttributes = tableAttrs.get().get();
     else if (backingObject-&gt;isTableColumn())
         objectAttributes = tableColAttrs.get().get();
@@ -1272,7 +1280,7 @@ ALLOW_DEPRECATED_IMPLEMENTATIONS_END
         objectAttributes = listBoxAttrs.get().get();
     else if (backingObject-&gt;isList())
         objectAttributes = listAttrs.get().get();
-    else if (backingObject-&gt;isProgressIndicator() || backingObject-&gt;isSlider())
+    else if (backingObject-&gt;isProgressIndicator() || backingObject-&gt;isSlider() || backingObject-&gt;isSplitter())
         objectAttributes = rangeAttrs.get().get();
     // These are processed in order because an input image is a button, and a button is a control.
     else if (backingObject-&gt;isInputImage())
@@ -1282,7 +1290,7 @@ ALLOW_DEPRECATED_IMPLEMENTATIONS_END
     else if (backingObject-&gt;isControl())
         objectAttributes = controlAttrs.get().get();

-    else if (backingObject-&gt;isGroup() || backingObject-&gt;isListItem())
+    else if (backingObject-&gt;isGroup() || backingObject-&gt;isListItem() || backingObject-&gt;roleValue() == AccessibilityRole::Figure)
         objectAttributes = groupAttrs.get().get();
     else if (backingObject-&gt;isTabList())
         objectAttributes = tabListAttrs.get().get();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2024171</commentid>
    <comment_count>7</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2024-03-27 08:02:48 -0700</bug_when>
    <thetext>(In reply to Dominic Mazzoni from comment #4)
&gt; Created attachment 470607 [details]
&gt; Patch

diff --git a/Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm b/Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm
index 209dc473fd36..47af3b5dd84a 100644
--- a/Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm
+++ b/Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm
@@ -162,6 +162,51 @@ static id attributeValue(id element, NSString *attribute)
     if ([attribute isEqual:NSAccessibilityFocusedUIElementAttribute] &amp;&amp; [element respondsToSelector:@selector(accessibilityFocusedUIElement)])
         return [element accessibilityFocusedUIElement];

+    // These are internal APIs used by DRT/WKTR; tests are allowed to use them but we don&apos;t want to advertise them.
+    static NeverDestroyed&lt;RetainPtr&lt;NSArray&gt;&gt; internalAttributes = @[
+        @&quot;AXARIAPressedIsPresent&quot;,
+        @&quot;AXARIARole&quot;,
+        @&quot;AXAutocompleteValue&quot;,
+        @&quot;AXClickPoint&quot;,
+        @&quot;AXControllerFor&quot;,
+        @&quot;AXControllers&quot;,
+        @&quot;AXDRTSpeechAttribute&quot;,
+        @&quot;AXDateTimeComponentsType&quot;,
+        @&quot;AXDescribedBy&quot;,
+        @&quot;AXDescriptionFor&quot;,
+        @&quot;AXDetailsFor&quot;,
+        @&quot;AXErrorMessageFor&quot;,
+        @&quot;AXFlowFrom&quot;,
+        @&quot;AXIsInCell&quot;,
+        @&quot;AXIsInDescriptionListDetail&quot;,
+        @&quot;AXIsInDescriptionListTerm&quot;,
+        @&quot;AXIsIndeterminate&quot;,
+        @&quot;AXIsMultiSelectable&quot;,
+        @&quot;AXIsOnScreen&quot;,
+        @&quot;AXLabelFor&quot;,
+        @&quot;AXLabelledBy&quot;,
+        @&quot;AXLineRectsAndText&quot;,
+        @&quot;AXOwners&quot;,
+        @&quot;AXStringValue&quot;,
+        @&quot;AXValueAutofillType&quot;,
+
+        // FIXME: these shouldn&apos;t be here, but removing one of these causes tests to fail.
+        @&quot;AXARIACurrent&quot;,
+        @&quot;AXARIALive&quot;,
+        @&quot;AXDescription&quot;,
+        @&quot;AXKeyShortcutsValue&quot;,
+        @&quot;AXOrientation&quot;,
+        @&quot;AXPopupValue&quot;,
+        @&quot;AXRequired&quot;,
+        @&quot;AXSortDirection&quot;,
+        @&quot;AXValue&quot;,
+        @&quot;AXVisibleCharacterRange&quot;,
+    ];
+
+    NSArray&lt;NSString *&gt; *supportedAttributes = [element accessibilityAttributeNames];
+    if (![supportedAttributes containsObject:attribute] &amp;&amp; ![internalAttributes.get() containsObject:attribute] &amp;&amp; ![attribute isEqualToString:NSAccessibilityRoleAttribute])

AG: shouldn&apos;t NSAccessibilityRoleAttribute be a supported attribute?

+        return nil;
+
     return [element accessibilityAttributeValue:attribute];
 }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2024173</commentid>
    <comment_count>8</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2024-03-27 08:07:34 -0700</bug_when>
    <thetext>(In reply to Dominic Mazzoni from comment #4)
&gt; Created attachment 470607 [details]
&gt; Patch

diff --git a/LayoutTests/accessibility/mac/aria-pressed-button-attributes-expected.txt b/LayoutTests/accessibility/mac/aria-pressed-button-attributes-expected.txt
index b6c2b6532c9d..a46f81d819b8 100644
--- a/LayoutTests/accessibility/mac/aria-pressed-button-attributes-expected.txt
+++ b/LayoutTests/accessibility/mac/aria-pressed-button-attributes-expected.txt
@@ -2,34 +2,34 @@ This test ensures a role=button element with aria-pressed has the right attribut

 #button1: AXRole: AXCheckBox
 #button1: AXSubrole: AXToggle
-#button1: AXValue: 1
+#button1: AXTitle: Foo
 #button1: AXARIAPressedIsPresent: true

 #button2: AXRole: AXCheckBox
 #button2: AXSubrole: AXToggle
-#button2: AXValue: 0
+#button2: AXTitle: Bar
 #button2: AXARIAPressedIsPresent: true

 #button-without-initial-press: AXRole: AXButton
 #button-without-initial-press: AXSubrole:
-#button-without-initial-press: AXValue:
+#button-without-initial-press: AXTitle: Baz
 #button-without-initial-press: AXARIAPressedIsPresent: false

 Toggling aria-pressed state on both buttons.

 #button1: AXRole: AXCheckBox
 #button1: AXSubrole: AXToggle
-#button1: AXValue: 0
+#button1: AXTitle: Foo
 #button1: AXARIAPressedIsPresent: true

 #button2: AXRole: AXCheckBox
 #button2: AXSubrole: AXToggle
-#button2: AXValue: 1
+#button2: AXTitle: Bar
 #button2: AXARIAPressedIsPresent: true

 #button-without-initial-press: AXRole: AXButton
 #button-without-initial-press: AXSubrole:
-#button-without-initial-press: AXValue:
+#button-without-initial-press: AXTitle: Baz
 #button-without-initial-press: AXARIAPressedIsPresent: true

AG: Don&apos;t we need to return AXValue for buttons any more? How does VO get the pressed state?
&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2024174</commentid>
    <comment_count>9</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2024-03-27 08:10:56 -0700</bug_when>
    <thetext>(In reply to Dominic Mazzoni from comment #4)
&gt; Created attachment 470607 [details]
&gt; Patch

diff --git a/LayoutTests/accessibility/mac/aria-pressed-button-attributes.html b/LayoutTests/accessibility/mac/aria-pressed-button-attributes.html
index 0e847151071b..3490b0e003f2 100644
--- a/LayoutTests/accessibility/mac/aria-pressed-button-attributes.html
+++ b/LayoutTests/accessibility/mac/aria-pressed-button-attributes.html
@@ -18,7 +18,7 @@
         const element = accessibilityController.accessibleElementById(id);
         testOutput += `#${id}: ${element.role}\n`;
         testOutput += `#${id}: ${element.subrole}\n`;
-        testOutput += `#${id}: ${element.stringValue}\n`;
+        testOutput += `#${id}: ${element.title}\n`;

AG: assuming that we still want value for buttons, this should be element.value instead of element.stringValue?

         testOutput += `#${id}: AXARIAPressedIsPresent: ${element.boolAttributeValue(&quot;AXARIAPressedIsPresent&quot;)}\n\n`;
     }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2024475</commentid>
    <comment_count>10</comment_count>
    <who name="Dominic Mazzoni">dm_mazzoni</who>
    <bug_when>2024-03-28 09:25:20 -0700</bug_when>
    <thetext>(In reply to Andres Gonzalez from comment #5)
&gt; +    if (is&lt;HTMLDetailsElement&gt;(node()))
&gt; +        return true;
&gt; 
&gt; AG: wouldn&apos;t an HTMLDetailsElement have AccessibilityRole::Details and thus
&gt; be covered by the above case?

No, because someone can add role=&quot;group&quot; to it. It doesn&apos;t cease to be a details element.

(In reply to Andres Gonzalez from comment #7)
&gt; +    if (![supportedAttributes containsObject:attribute] &amp;&amp;
&gt; ![internalAttributes.get() containsObject:attribute] &amp;&amp; ![attribute
&gt; isEqualToString:NSAccessibilityRoleAttribute])
&gt; 
&gt; AG: shouldn&apos;t NSAccessibilityRoleAttribute be a supported attribute?

I&apos;m having trouble with embedded PDFs, for some reason they&apos;re not exposing AXRole as an attribute name even though they obviously implement it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2024500</commentid>
    <comment_count>11</comment_count>
      <attachid>470640</attachid>
    <who name="Dominic Mazzoni">dm_mazzoni</who>
    <bug_when>2024-03-28 10:38:13 -0700</bug_when>
    <thetext>Created attachment 470640
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2024557</commentid>
    <comment_count>12</comment_count>
      <attachid>470648</attachid>
    <who name="Dominic Mazzoni">dm_mazzoni</who>
    <bug_when>2024-03-28 14:44:53 -0700</bug_when>
    <thetext>Created attachment 470648
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2024672</commentid>
    <comment_count>13</comment_count>
      <attachid>470658</attachid>
    <who name="Dominic Mazzoni">dm_mazzoni</who>
    <bug_when>2024-03-28 20:51:10 -0700</bug_when>
    <thetext>Created attachment 470658
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2024691</commentid>
    <comment_count>14</comment_count>
    <who name="Dominic Mazzoni">dm_mazzoni</who>
    <bug_when>2024-03-28 22:34:18 -0700</bug_when>
    <thetext>OK, tests pass. Any final thoughts?

Remember, I want to remove the remaining exceptions in follow-ups.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2024744</commentid>
    <comment_count>15</comment_count>
      <attachid>470662</attachid>
    <who name="Dominic Mazzoni">dm_mazzoni</who>
    <bug_when>2024-03-29 08:49:54 -0700</bug_when>
    <thetext>Created attachment 470662
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2025472</commentid>
    <comment_count>16</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2024-04-02 12:27:25 -0700</bug_when>
    <thetext>Committed 276955@main (b6b219bd567e): &lt;https://commits.webkit.org/276955@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 470662.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>470607</attachid>
            <date>2024-03-26 09:34:52 -0700</date>
            <delta_ts>2024-03-28 10:38:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-271674-20240326093451.patch</filename>
            <type>text/plain</type>
            <size>23329</size>
            <attacher name="Dominic Mazzoni">dm_mazzoni</attacher>
            
              <data encoding="base64">RnJvbSA4ZTgyOTBmYzEzMGVmMWUzZTI3ZWMyNDhmMWVkZmZhMjZjOTdhOTVmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb21pbmljIE1henpvbmkgPGRtX21henpvbmlAYXBwbGUuY29t
PgpEYXRlOiBUdWUsIDI2IE1hciAyMDI0IDA5OjIzOjAxIC0wNzAwClN1YmplY3Q6IFtQQVRDSF0g
QVg6IE1hYyBsYXlvdXQgdGVzdHMgc2hvdWxkbid0IGFjY2VzcyBhdHRyaWJ1dGVzIHRoYXQgYXJl
bid0CiBleHBvc2VkIGZvciB0aGF0IGVsZW1lbnQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTI3MTY3NAogcmRhcjovL3Byb2JsZW0vMTI1MzczNjk0CgpSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KCkNoZWNrcyBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlTmFtZXMgYmVm
b3JlIGNhbGxpbmcgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlIGluCkFjY2Vzc2liaWxpdHlV
SUVsZW1lbnRNYWMuIFJldHVybnMgbmlsIGlmIHF1ZXJ5aW5nIGZvciBhbiBhdHRyaWJ1dGUgdGhh
dCBpc24ndApmb3VuZC4KClRoYXQgbGVkIHRvIGZpbmRpbmcgbG90cyBvZiBleGFtcGxlcyBvZiBh
dHRyaWJ1dGVzIHRoYXQgb3VnaHQgdG8gYmUgZXhwb3NlZAppbiBhY2Nlc3NpYmlsaXR5QXR0cmli
dXRlTmFtZXMgYnV0IHdlcmVuJ3Qgbm93LgoKSW4gdGhpcyBwYXRjaCwgSSBhdHRlbXB0ZWQgdG8g
Zml4IHRoZSBvbmVzIHRoYXQgaGF2ZSBhIGNsZWFyLCBzdHJhaWdodGZvcndhcmQKZml4LCBhbmQg
dGhlbiBhZGRlZCBhbiBleGNlcHRpb24gZm9yIGFueXRoaW5nIHRoYXQgd2Fzbid0IHN0cmFpZ2h0
Zm9yd2FyZC4KClRoZSBpZGVhIGlzIHRvIGZvbGxvdyB1cCB1bnRpbCBhbGwgb2YgdGhlIGV4Y2Vw
dGlvbnMgYXJlIHJlbW92ZWQuCgoqIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbGlzdHMtZXhw
ZWN0ZWQudHh0OiBSZW1vdmVkLgoqIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2FyaWEt
cHJlc3NlZC1idXR0b24tYXR0cmlidXRlcy1leHBlY3RlZC50eHQ6CiogTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9tYWMvYXJpYS1wcmVzc2VkLWJ1dHRvbi1hdHRyaWJ1dGVzLmh0bWw6CiogTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS10cmVlLXdpdGgtcHJlc2VudGF0aW9uLXJv
bGUuaHRtbDoKKiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9ib3VuZHMtZm9yLXJhbmdl
LWV4cGVjdGVkLnR4dDoKKiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9pbnRlcm5hbC1s
aW5rLWFuY2hvcnMtZXhwZWN0ZWQudHh0OgoqIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGFi
bGUtd2l0aC1ydWxlcy1leHBlY3RlZC50eHQ6CiogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Fj
Y2Vzc2liaWxpdHkvbGlzdHMtZXhwZWN0ZWQudHh0OgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2Jq
ZWN0OjpzdXBwb3J0c0V4cGFuZGVkIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbToKKC1bV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXIgX2FkZGl0aW9uYWxBY2Nlc3NpYmlsaXR5QXR0cmlidXRlTmFt
ZXM6XSk6CigtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIEFMTE9XX0RFUFJFQ0FURURf
SU1QTEVNRU5UQVRJT05TX0VORF0pOgoqIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW06CihXVFI6OmF0dHJpYnV0ZVZh
bHVlKToKLS0tCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCAgICAg
fCAgMyArCiAuLi4vbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tICAgfCA1
OCArKysrKysrKysrKy0tLS0tLS0tCiAuLi4vbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMu
bW0gICAgICAgICAgfCA0NSArKysrKysrKysrKysrKwogLi4ucmlhLXByZXNzZWQtYnV0dG9uLWF0
dHJpYnV0ZXMtZXhwZWN0ZWQudHh0IHwgMTIgKystLQogLi4uL21hYy9hcmlhLXByZXNzZWQtYnV0
dG9uLWF0dHJpYnV0ZXMuaHRtbCAgIHwgIDIgKy0KIC4uLi9tYWMvYXJpYS10cmVlLXdpdGgtcHJl
c2VudGF0aW9uLXJvbGUuaHRtbCB8ICAyICstCiAuLi4vbWFjL2JvdW5kcy1mb3ItcmFuZ2UtZXhw
ZWN0ZWQudHh0ICAgICAgICAgfCAgMSArCiAuLi4vbWFjL2ludGVybmFsLWxpbmstYW5jaG9ycy1l
eHBlY3RlZC50eHQgICAgfCAgMSArCiAuLi4vdGFibGUtd2l0aC1ydWxlcy1leHBlY3RlZC50eHQg
ICAgICAgICAgICAgfCAgNyArKy0KIC4uLi9tYWMvYWNjZXNzaWJpbGl0eS9saXN0cy1leHBlY3Rl
ZC50eHQgICAgICB8IDExICsrLS0KIDEwIGZpbGVzIGNoYW5nZWQsIDEwMCBpbnNlcnRpb25zKCsp
LCA0MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAppbmRleCBlOTg5MzRmNTVhMTguLmQ2MTE1ODA2YmQ3
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlPYmplY3QuY3BwCkBAIC0zNDQ5LDYgKzM0NDksOSBAQCBib29sIEFjY2Vzc2liaWxpdHlPYmpl
Y3Q6OnN1cHBvcnRzRXhwYW5kZWQoKSBjb25zdAogICAgIGlmIChwb3BvdmVyVGFyZ2V0RWxlbWVu
dCgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAorICAgIGlmIChpczxIVE1MRGV0YWlsc0VsZW1l
bnQ+KG5vZGUoKSkpCisgICAgICAgIHJldHVybiB0cnVlOworCiAgICAgc3dpdGNoIChyb2xlVmFs
dWUoKSkgewogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRldGFpbHM6CiAgICAgICAgIHJl
dHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMv
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQppbmRleCAw
ZGMwMDYwODdmZTYuLjc4Njc0YzQyMWQyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXJNYWMubW0KQEAgLTgyMyw3ICs4MjMsOCBAQCAtIChOU0FycmF5KilfYWRkaXRpb25hbEFj
Y2Vzc2liaWxpdHlBdHRyaWJ1dGVOYW1lczooY29uc3QgUmVmUHRyPEFYQ29yZU9iamVjdD4mKQog
ICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc1Njcm9sbGJhcigpCiAgICAgICAgIHx8IGJhY2tpbmdP
YmplY3QtPmlzUmFkaW9Hcm91cCgpCiAgICAgICAgIHx8IGJhY2tpbmdPYmplY3QtPmlzU3BsaXR0
ZXIoKQotICAgICAgICB8fCBiYWNraW5nT2JqZWN0LT5pc1Rvb2xiYXIoKSkKKyAgICAgICAgfHwg
YmFja2luZ09iamVjdC0+aXNUb29sYmFyKCkKKyAgICAgICAgfHwgYmFja2luZ09iamVjdC0+cm9s
ZVZhbHVlKCkgPT0gQWNjZXNzaWJpbGl0eVJvbGU6Okhvcml6b250YWxSdWxlKQogICAgICAgICBb
YWRkaXRpb25hbCBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5T3JpZW50YXRpb25BdHRyaWJ1dGVd
OwogCiAgICAgaWYgKGJhY2tpbmdPYmplY3QtPnN1cHBvcnRzRHJhZ2dpbmcoKSkKQEAgLTkwNSw2
ICs5MDYsMjQgQEAgLSAoTlNBcnJheSopX2FkZGl0aW9uYWxBY2Nlc3NpYmlsaXR5QXR0cmlidXRl
TmFtZXM6KGNvbnN0IFJlZlB0cjxBWENvcmVPYmplY3Q+JikKICAgICBpZiAoYmFja2luZ09iamVj
dC0+c3VwcG9ydHNFeHBhbmRlZFRleHRWYWx1ZSgpKQogICAgICAgICBbYWRkaXRpb25hbCBhZGRP
YmplY3Q6TlNBY2Nlc3NpYmlsaXR5RXhwYW5kZWRUZXh0VmFsdWVBdHRyaWJ1dGVdOwogCisgICAg
aWYgKCFiYWNraW5nT2JqZWN0LT5icmFpbGxlTGFiZWwoKS5pc0VtcHR5KCkpCisgICAgICAgIFth
ZGRpdGlvbmFsIGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlCcmFpbGxlTGFiZWxBdHRyaWJ1dGVd
OworCisgICAgaWYgKCFiYWNraW5nT2JqZWN0LT5icmFpbGxlUm9sZURlc2NyaXB0aW9uKCkuaXNF
bXB0eSgpKQorICAgICAgICBbYWRkaXRpb25hbCBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5QnJh
aWxsZVJvbGVEZXNjcmlwdGlvbkF0dHJpYnV0ZV07CisKKyAgICBpZiAoYmFja2luZ09iamVjdC0+
ZGV0YWlsZWRCeU9iamVjdHMoKS5zaXplKCkpCisgICAgICAgIFthZGRpdGlvbmFsIGFkZE9iamVj
dDpAIkFYRGV0YWlsc0VsZW1lbnRzIl07CisKKyAgICBpZiAoYmFja2luZ09iamVjdC0+ZXJyb3JN
ZXNzYWdlT2JqZWN0cygpLnNpemUoKSkKKyAgICAgICAgW2FkZGl0aW9uYWwgYWRkT2JqZWN0OkAi
QVhFcnJvck1lc3NhZ2VFbGVtZW50cyJdOworCisgICAgaWYgKCFiYWNraW5nT2JqZWN0LT5rZXlT
aG9ydGN1dHMoKS5pc0VtcHR5KCkpCisgICAgICAgIFthZGRpdGlvbmFsIGFkZE9iamVjdDpOU0Fj
Y2Vzc2liaWxpdHlLZXlTaG9ydGN1dHNBdHRyaWJ1dGVdOworCisgICAgaWYgKGJhY2tpbmdPYmpl
Y3QtPnRpdGxlVUlFbGVtZW50KCkpCisgICAgICAgIFthZGRpdGlvbmFsIGFkZE9iamVjdDpOU0Fj
Y2Vzc2liaWxpdHlUaXRsZVVJRWxlbWVudEF0dHJpYnV0ZV07CisKICNpZiBFTkFCTEUoQUNDRVNT
SUJJTElUWV9JU09MQVRFRF9UUkVFKQogICAgIGlmIChBWE9iamVjdENhY2hlOjppc0lzb2xhdGVk
VHJlZUVuYWJsZWQoKSkKICAgICAgICAgW2FkZGl0aW9uYWwgYWRkT2JqZWN0Ok5TQWNjZXNzaWJp
bGl0eVJlbGF0aXZlRnJhbWVBdHRyaWJ1dGVdOwpAQCAtOTc5LDE1ICs5OTgsNiBAQCBBTExPV19E
RVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmpl
Y3Q6TlNBY2Nlc3NpYmlsaXR5TGlua1JlbGF0aW9uc2hpcFR5cGVBdHRyaWJ1dGVdOwogICAgICAg
ICByZXR1cm4gdGVtcEFycmF5OwogICAgIH0oKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
UmV0YWluUHRyPE5TQXJyYXk+PiBjb21tb25NZW51QXR0cnMgPSBAWwotICAgICAgICBOU0FjY2Vz
c2liaWxpdHlSb2xlQXR0cmlidXRlLAotICAgICAgICBOU0FjY2Vzc2liaWxpdHlSb2xlRGVzY3Jp
cHRpb25BdHRyaWJ1dGUsCi0gICAgICAgIE5TQWNjZXNzaWJpbGl0eUNoaWxkcmVuQXR0cmlidXRl
LAotICAgICAgICBOU0FjY2Vzc2liaWxpdHlQYXJlbnRBdHRyaWJ1dGUsCi0gICAgICAgIE5TQWNj
ZXNzaWJpbGl0eUVuYWJsZWRBdHRyaWJ1dGUsCi0gICAgICAgIE5TQWNjZXNzaWJpbGl0eVBvc2l0
aW9uQXR0cmlidXRlLAotICAgICAgICBOU0FjY2Vzc2liaWxpdHlTaXplQXR0cmlidXRlLAotICAg
IF07CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkIHdlYkFyZWFBdHRycyA9IFtdIHsKICAgICAg
ICAgYXV0byB0ZW1wQXJyYXkgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRX
aXRoQXJyYXk6YXR0cmlidXRlcy5nZXQoKS5nZXQoKV0pOwogICAgICAgICAvLyBXZWJBcmVhcyBz
aG91bGQgbm90IGV4cG9zZSBBWFN1YnJvbGUuCkBAIC0xMDEyLDExICsxMDIyLDExIEBAIEFMTE9X
X0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogICAgICAgICBbdGVtcEFycmF5IGFkZE9i
amVjdDpOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRSYW5nZUF0dHJpYnV0ZV07CiAgICAgICAg
IFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eVZpc2libGVDaGFyYWN0ZXJSYW5n
ZUF0dHJpYnV0ZV07CiAgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0
eUluc2VydGlvblBvaW50TGluZU51bWJlckF0dHJpYnV0ZV07Ci0gICAgICAgIFt0ZW1wQXJyYXkg
YWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eVRpdGxlVUlFbGVtZW50QXR0cmlidXRlXTsKICAgICAg
ICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5QWNjZXNzS2V5QXR0cmlidXRl
XTsKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5UmVxdWlyZWRB
dHRyaWJ1dGVdOwogICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlJ
bnZhbGlkQXR0cmlidXRlXTsKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3Np
YmlsaXR5UGxhY2Vob2xkZXJWYWx1ZUF0dHJpYnV0ZV07CisgICAgICAgIFt0ZW1wQXJyYXkgYWRk
T2JqZWN0Ok5TQWNjZXNzaWJpbGl0eVZhbHVlQXV0b2ZpbGxBdmFpbGFibGVBdHRyaWJ1dGVdOwog
ICAgICAgICByZXR1cm4gdGVtcEFycmF5OwogICAgIH0oKTsKICAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQgbGlzdEF0dHJzID0gW10gewpAQCAtMTAyNCw3ICsxMDM0LDYgQEAgQUxMT1dfREVQUkVD
QVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5T
QWNjZXNzaWJpbGl0eVNlbGVjdGVkQ2hpbGRyZW5BdHRyaWJ1dGVdOwogICAgICAgICBbdGVtcEFy
cmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlWaXNpYmxlQ2hpbGRyZW5BdHRyaWJ1dGVdOwog
ICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlPcmllbnRhdGlvbkF0
dHJpYnV0ZV07Ci0gICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eVRp
dGxlVUlFbGVtZW50QXR0cmlidXRlXTsKICAgICAgICAgcmV0dXJuIHRlbXBBcnJheTsKICAgICB9
KCk7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkIGxpc3RCb3hBdHRycyA9IFtdIHsKQEAgLTEw
NDEsMjUgKzEwNTAsMjIgQEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAg
ICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eU1heFZhbHVlQXR0cmli
dXRlXTsKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5T3JpZW50
YXRpb25BdHRyaWJ1dGVdOwogICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2li
aWxpdHlWYWx1ZURlc2NyaXB0aW9uQXR0cmlidXRlXTsKLSAgICAgICAgW3RlbXBBcnJheSBhZGRP
YmplY3Q6TlNBY2Nlc3NpYmlsaXR5VGl0bGVVSUVsZW1lbnRBdHRyaWJ1dGVdOwogICAgICAgICBy
ZXR1cm4gdGVtcEFycmF5OwogICAgIH0oKTsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQgbWVu
dUJhckF0dHJzID0gW10gewotICAgICAgICBhdXRvIHRlbXBBcnJheSA9IGFkb3B0TlMoW1tOU011
dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhBcnJheTpjb21tb25NZW51QXR0cnMuZ2V0KCkuZ2V0
KCldKTsKKyAgICAgICAgYXV0byB0ZW1wQXJyYXkgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkg
YWxsb2NdIGluaXRXaXRoQXJyYXk6YXR0cmlidXRlcy5nZXQoKS5nZXQoKV0pOwogICAgICAgICBb
dGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZENoaWxkcmVuQXR0cmli
dXRlXTsKLSAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5VGl0bGVV
SUVsZW1lbnRBdHRyaWJ1dGVdOwogICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vz
c2liaWxpdHlPcmllbnRhdGlvbkF0dHJpYnV0ZV07CiAgICAgICAgIHJldHVybiB0ZW1wQXJyYXk7
CiAgICAgfSgpOwogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZCBtZW51QXR0cnMgPSBbXSB7Ci0g
ICAgICAgIGF1dG8gdGVtcEFycmF5ID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBp
bml0V2l0aEFycmF5OmNvbW1vbk1lbnVBdHRycy5nZXQoKS5nZXQoKV0pOworICAgICAgICBhdXRv
IHRlbXBBcnJheSA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhBcnJh
eTphdHRyaWJ1dGVzLmdldCgpLmdldCgpXSk7CiAgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0
Ok5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkQ2hpbGRyZW5BdHRyaWJ1dGVdOwotICAgICAgICBbdGVt
cEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlUaXRsZVVJRWxlbWVudEF0dHJpYnV0ZV07
CiAgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eU9yaWVudGF0aW9u
QXR0cmlidXRlXTsKICAgICAgICAgcmV0dXJuIHRlbXBBcnJheTsKICAgICB9KCk7CiAgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkIG1lbnVJdGVtQXR0cnMgPSBbXSB7Ci0gICAgICAgIGF1dG8gdGVt
cEFycmF5ID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aEFycmF5OmNv
bW1vbk1lbnVBdHRycy5nZXQoKS5nZXQoKV0pOworICAgICAgICBhdXRvIHRlbXBBcnJheSA9IGFk
b3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhBcnJheTphdHRyaWJ1dGVzLmdl
dCgpLmdldCgpXSk7CiAgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0
eVRpdGxlQXR0cmlidXRlXTsKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3Np
YmlsaXR5RGVzY3JpcHRpb25BdHRyaWJ1dGVdOwogICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVj
dDpOU0FjY2Vzc2liaWxpdHlIZWxwQXR0cmlidXRlXTsKQEAgLTEwODgsNyArMTA5NCw2IEBAIEFM
TE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogICAgICAgICBOU0FjY2Vzc2liaWxp
dHlDaGlsZHJlbkF0dHJpYnV0ZSwKICAgICBdOwogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxS
ZXRhaW5QdHI8TlNBcnJheT4+IHNoYXJlZENvbnRyb2xBdHRycyA9IEBbCi0gICAgICAgIE5TQWNj
ZXNzaWJpbGl0eVRpdGxlVUlFbGVtZW50QXR0cmlidXRlLAogICAgICAgICBOU0FjY2Vzc2liaWxp
dHlBY2Nlc3NLZXlBdHRyaWJ1dGUsCiAgICAgICAgIE5TQWNjZXNzaWJpbGl0eVJlcXVpcmVkQXR0
cmlidXRlLAogICAgICAgICBOU0FjY2Vzc2liaWxpdHlJbnZhbGlkQXR0cmlidXRlLApAQCAtMTEw
Nyw4ICsxMTEyLDggQEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAgICAg
ICAgIGF1dG8gdGVtcEFycmF5ID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0
V2l0aEFycmF5OmF0dHJpYnV0ZXMuZ2V0KCkuZ2V0KCldKTsKICAgICAgICAgLy8gQnV0dG9ucyBz
aG91bGQgbm90IGV4cG9zZSBBWFZhbHVlLgogICAgICAgICBbdGVtcEFycmF5IHJlbW92ZU9iamVj
dDpOU0FjY2Vzc2liaWxpdHlWYWx1ZUF0dHJpYnV0ZV07Ci0gICAgICAgIFt0ZW1wQXJyYXkgYWRk
T2JqZWN0Ok5TQWNjZXNzaWJpbGl0eVRpdGxlVUlFbGVtZW50QXR0cmlidXRlXTsKICAgICAgICAg
W3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5QWNjZXNzS2V5QXR0cmlidXRlXTsK
KyAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5SW52YWxpZEF0dHJp
YnV0ZV07CiAgICAgICAgIHJldHVybiB0ZW1wQXJyYXk7CiAgICAgfSgpOwogICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZCBjb21ib0JveEF0dHJzID0gW10gewpAQCAtMTEzNyw2ICsxMTQyLDcgQEAg
QUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAgICAgICAgIFt0ZW1wQXJyYXkg
YWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eUFSSUFDb2x1bW5Db3VudEF0dHJpYnV0ZV07CiAgICAg
ICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eUFSSUFSb3dDb3VudEF0dHJp
YnV0ZV07CiAgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eVNlbGVj
dGVkQ2VsbHNBdHRyaWJ1dGVdOworICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpAIkFYVGFi
bGVMZXZlbCJdOwogICAgICAgICByZXR1cm4gdGVtcEFycmF5OwogICAgIH0oKTsKICAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQgdGFibGVSb3dBdHRycyA9IFtdIHsKQEAgLTExNjQsNyArMTE3MCw3
IEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogICAgIH0oKTsKICAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQgZ3JvdXBBdHRycyA9IFtdIHsKICAgICAgICAgYXV0byB0ZW1w
QXJyYXkgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoQXJyYXk6YXR0
cmlidXRlcy5nZXQoKS5nZXQoKV0pOwotICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0Fj
Y2Vzc2liaWxpdHlUaXRsZVVJRWxlbWVudEF0dHJpYnV0ZV07CisgICAgICAgIFt0ZW1wQXJyYXkg
YWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eUlubGluZVRleHRBdHRyaWJ1dGVdOwogICAgICAgICBy
ZXR1cm4gdGVtcEFycmF5OwogICAgIH0oKTsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQgaW5w
dXRJbWFnZUF0dHJzID0gW10gewpAQCAtMTE3NCw3ICsxMTgwLDYgQEAgQUxMT1dfREVQUkVDQVRF
RF9JTVBMRU1FTlRBVElPTlNfRU5ECiAgICAgfSgpOwogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZCBzZWN1cmVGaWVsZEF0dHJpYnV0ZXMgPSBbXSB7CiAgICAgICAgIGF1dG8gdGVtcEFycmF5ID0g
YWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aEFycmF5OmF0dHJpYnV0ZXMu
Z2V0KCkuZ2V0KCldKTsKLSAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmls
aXR5VGl0bGVVSUVsZW1lbnRBdHRyaWJ1dGVdOwogICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVj
dDpOU0FjY2Vzc2liaWxpdHlSZXF1aXJlZEF0dHJpYnV0ZV07CiAgICAgICAgIFt0ZW1wQXJyYXkg
YWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eUludmFsaWRBdHRyaWJ1dGVdOwogICAgICAgICBbdGVt
cEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlQbGFjZWhvbGRlclZhbHVlQXR0cmlidXRl
XTsKQEAgLTExODUsNiArMTE5MCw3IEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05T
X0VORAogICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlUYWJzQXR0
cmlidXRlXTsKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5Q29u
dGVudHNBdHRyaWJ1dGVdOwogICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2li
aWxpdHlPcmllbnRhdGlvbkF0dHJpYnV0ZV07CisgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0
Ok5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkQ2hpbGRyZW5BdHRyaWJ1dGVdOwogICAgICAgICByZXR1
cm4gdGVtcEFycmF5OwogICAgIH0oKTsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQgb3V0bGlu
ZUF0dHJzID0gW10gewpAQCAtMTE5Myw2ICsxMTk5LDcgQEAgQUxMT1dfREVQUkVDQVRFRF9JTVBM
RU1FTlRBVElPTlNfRU5ECiAgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJp
bGl0eVJvd3NBdHRyaWJ1dGVdOwogICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vz
c2liaWxpdHlDb2x1bW5zQXR0cmlidXRlXTsKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6
TlNBY2Nlc3NpYmlsaXR5T3JpZW50YXRpb25BdHRyaWJ1dGVdOworICAgICAgICBbdGVtcEFycmF5
IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZENoaWxkcmVuQXR0cmlidXRlXTsKICAg
ICAgICAgcmV0dXJuIHRlbXBBcnJheTsKICAgICB9KCk7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkIG91dGxpbmVSb3dBdHRycyA9IFtdIHsKQEAgLTEyMjcsNiArMTIzNCw3IEBAIEFMTE9XX0RF
UFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZCBz
dGF0aWNUZXh0QXR0cnMgPSBbXSB7CiAgICAgICAgIGF1dG8gdGVtcEFycmF5ID0gYWRvcHROUyhb
W05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aEFycmF5OmF0dHJpYnV0ZXMuZ2V0KCkuZ2V0
KCldKTsKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5SW50ZXJz
ZWN0aW9uV2l0aFNlbGVjdGlvblJhbmdlQXR0cmlidXRlXTsKKyAgICAgICAgW3RlbXBBcnJheSBh
ZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5VmlzaWJsZUNoYXJhY3RlclJhbmdlQXR0cmlidXRlXTsK
ICAgICAgICAgcmV0dXJuIHRlbXBBcnJheTsKICAgICB9KCk7CiAKQEAgLTEyNDgsNyArMTI1Niw3
IEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogICAgICAgICBvYmplY3RB
dHRyaWJ1dGVzID0gYW5jaG9yQXR0cnMuZ2V0KCkuZ2V0KCk7CiAgICAgZWxzZSBpZiAoYmFja2lu
Z09iamVjdC0+aXNJbWFnZSgpKQogICAgICAgICBvYmplY3RBdHRyaWJ1dGVzID0gaW1hZ2VBdHRy
cy5nZXQoKS5nZXQoKTsKLSAgICBlbHNlIGlmIChiYWNraW5nT2JqZWN0LT5pc1RhYmxlKCkgJiYg
YmFja2luZ09iamVjdC0+aXNFeHBvc2FibGUoKSkKKyAgICBlbHNlIGlmICgoYmFja2luZ09iamVj
dC0+aXNUYWJsZSgpICYmIGJhY2tpbmdPYmplY3QtPmlzRXhwb3NhYmxlKCkpIHx8IGJhY2tpbmdP
YmplY3QtPmlzQWNjZXNzaWJpbGl0eUFSSUFHcmlkSW5zdGFuY2UoKSkKICAgICAgICAgb2JqZWN0
QXR0cmlidXRlcyA9IHRhYmxlQXR0cnMuZ2V0KCkuZ2V0KCk7CiAgICAgZWxzZSBpZiAoYmFja2lu
Z09iamVjdC0+aXNUYWJsZUNvbHVtbigpKQogICAgICAgICBvYmplY3RBdHRyaWJ1dGVzID0gdGFi
bGVDb2xBdHRycy5nZXQoKS5nZXQoKTsKQEAgLTEyNzIsNyArMTI4MCw3IEBAIEFMTE9XX0RFUFJF
Q0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogICAgICAgICBvYmplY3RBdHRyaWJ1dGVzID0gbGlz
dEJveEF0dHJzLmdldCgpLmdldCgpOwogICAgIGVsc2UgaWYgKGJhY2tpbmdPYmplY3QtPmlzTGlz
dCgpKQogICAgICAgICBvYmplY3RBdHRyaWJ1dGVzID0gbGlzdEF0dHJzLmdldCgpLmdldCgpOwot
ICAgIGVsc2UgaWYgKGJhY2tpbmdPYmplY3QtPmlzUHJvZ3Jlc3NJbmRpY2F0b3IoKSB8fCBiYWNr
aW5nT2JqZWN0LT5pc1NsaWRlcigpKQorICAgIGVsc2UgaWYgKGJhY2tpbmdPYmplY3QtPmlzUHJv
Z3Jlc3NJbmRpY2F0b3IoKSB8fCBiYWNraW5nT2JqZWN0LT5pc1NsaWRlcigpIHx8IGJhY2tpbmdP
YmplY3QtPmlzU3BsaXR0ZXIoKSkKICAgICAgICAgb2JqZWN0QXR0cmlidXRlcyA9IHJhbmdlQXR0
cnMuZ2V0KCkuZ2V0KCk7CiAgICAgLy8gVGhlc2UgYXJlIHByb2Nlc3NlZCBpbiBvcmRlciBiZWNh
dXNlIGFuIGlucHV0IGltYWdlIGlzIGEgYnV0dG9uLCBhbmQgYSBidXR0b24gaXMgYSBjb250cm9s
LgogICAgIGVsc2UgaWYgKGJhY2tpbmdPYmplY3QtPmlzSW5wdXRJbWFnZSgpKQpAQCAtMTI4Miw3
ICsxMjkwLDcgQEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAgICAgZWxz
ZSBpZiAoYmFja2luZ09iamVjdC0+aXNDb250cm9sKCkpCiAgICAgICAgIG9iamVjdEF0dHJpYnV0
ZXMgPSBjb250cm9sQXR0cnMuZ2V0KCkuZ2V0KCk7CiAKLSAgICBlbHNlIGlmIChiYWNraW5nT2Jq
ZWN0LT5pc0dyb3VwKCkgfHwgYmFja2luZ09iamVjdC0+aXNMaXN0SXRlbSgpKQorICAgIGVsc2Ug
aWYgKGJhY2tpbmdPYmplY3QtPmlzR3JvdXAoKSB8fCBiYWNraW5nT2JqZWN0LT5pc0xpc3RJdGVt
KCkgfHwgYmFja2luZ09iamVjdC0+cm9sZVZhbHVlKCkgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OkZp
Z3VyZSkKICAgICAgICAgb2JqZWN0QXR0cmlidXRlcyA9IGdyb3VwQXR0cnMuZ2V0KCkuZ2V0KCk7
CiAgICAgZWxzZSBpZiAoYmFja2luZ09iamVjdC0+aXNUYWJMaXN0KCkpCiAgICAgICAgIG9iamVj
dEF0dHJpYnV0ZXMgPSB0YWJMaXN0QXR0cnMuZ2V0KCkuZ2V0KCk7CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50TWFjLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQppbmRleCAyMDlkYzQ3M2ZkMzYuLjQ3YWYzYjVkZDg0
YSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCkBAIC0xNjIs
NiArMTYyLDUxIEBAIHN0YXRpYyBpZCBhdHRyaWJ1dGVWYWx1ZShpZCBlbGVtZW50LCBOU1N0cmlu
ZyAqYXR0cmlidXRlKQogICAgIGlmIChbYXR0cmlidXRlIGlzRXF1YWw6TlNBY2Nlc3NpYmlsaXR5
Rm9jdXNlZFVJRWxlbWVudEF0dHJpYnV0ZV0gJiYgW2VsZW1lbnQgcmVzcG9uZHNUb1NlbGVjdG9y
OkBzZWxlY3RvcihhY2Nlc3NpYmlsaXR5Rm9jdXNlZFVJRWxlbWVudCldKQogICAgICAgICByZXR1
cm4gW2VsZW1lbnQgYWNjZXNzaWJpbGl0eUZvY3VzZWRVSUVsZW1lbnRdOwogCisgICAgLy8gVGhl
c2UgYXJlIGludGVybmFsIEFQSXMgdXNlZCBieSBEUlQvV0tUUjsgdGVzdHMgYXJlIGFsbG93ZWQg
dG8gdXNlIHRoZW0gYnV0IHdlIGRvbid0IHdhbnQgdG8gYWR2ZXJ0aXNlIHRoZW0uCisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPFJldGFpblB0cjxOU0FycmF5Pj4gaW50ZXJuYWxBdHRyaWJ1dGVz
ID0gQFsKKyAgICAgICAgQCJBWEFSSUFQcmVzc2VkSXNQcmVzZW50IiwKKyAgICAgICAgQCJBWEFS
SUFSb2xlIiwKKyAgICAgICAgQCJBWEF1dG9jb21wbGV0ZVZhbHVlIiwKKyAgICAgICAgQCJBWENs
aWNrUG9pbnQiLAorICAgICAgICBAIkFYQ29udHJvbGxlckZvciIsCisgICAgICAgIEAiQVhDb250
cm9sbGVycyIsCisgICAgICAgIEAiQVhEUlRTcGVlY2hBdHRyaWJ1dGUiLAorICAgICAgICBAIkFY
RGF0ZVRpbWVDb21wb25lbnRzVHlwZSIsCisgICAgICAgIEAiQVhEZXNjcmliZWRCeSIsCisgICAg
ICAgIEAiQVhEZXNjcmlwdGlvbkZvciIsCisgICAgICAgIEAiQVhEZXRhaWxzRm9yIiwKKyAgICAg
ICAgQCJBWEVycm9yTWVzc2FnZUZvciIsCisgICAgICAgIEAiQVhGbG93RnJvbSIsCisgICAgICAg
IEAiQVhJc0luQ2VsbCIsCisgICAgICAgIEAiQVhJc0luRGVzY3JpcHRpb25MaXN0RGV0YWlsIiwK
KyAgICAgICAgQCJBWElzSW5EZXNjcmlwdGlvbkxpc3RUZXJtIiwKKyAgICAgICAgQCJBWElzSW5k
ZXRlcm1pbmF0ZSIsCisgICAgICAgIEAiQVhJc011bHRpU2VsZWN0YWJsZSIsCisgICAgICAgIEAi
QVhJc09uU2NyZWVuIiwKKyAgICAgICAgQCJBWExhYmVsRm9yIiwKKyAgICAgICAgQCJBWExhYmVs
bGVkQnkiLAorICAgICAgICBAIkFYTGluZVJlY3RzQW5kVGV4dCIsCisgICAgICAgIEAiQVhPd25l
cnMiLAorICAgICAgICBAIkFYU3RyaW5nVmFsdWUiLAorICAgICAgICBAIkFYVmFsdWVBdXRvZmls
bFR5cGUiLAorCisgICAgICAgIC8vIEZJWE1FOiB0aGVzZSBzaG91bGRuJ3QgYmUgaGVyZSwgYnV0
IHJlbW92aW5nIG9uZSBvZiB0aGVzZSBjYXVzZXMgdGVzdHMgdG8gZmFpbC4KKyAgICAgICAgQCJB
WEFSSUFDdXJyZW50IiwKKyAgICAgICAgQCJBWEFSSUFMaXZlIiwKKyAgICAgICAgQCJBWERlc2Ny
aXB0aW9uIiwKKyAgICAgICAgQCJBWEtleVNob3J0Y3V0c1ZhbHVlIiwKKyAgICAgICAgQCJBWE9y
aWVudGF0aW9uIiwKKyAgICAgICAgQCJBWFBvcHVwVmFsdWUiLAorICAgICAgICBAIkFYUmVxdWly
ZWQiLAorICAgICAgICBAIkFYU29ydERpcmVjdGlvbiIsCisgICAgICAgIEAiQVhWYWx1ZSIsCisg
ICAgICAgIEAiQVhWaXNpYmxlQ2hhcmFjdGVyUmFuZ2UiLAorICAgIF07CisKKyAgICBOU0FycmF5
PE5TU3RyaW5nICo+ICpzdXBwb3J0ZWRBdHRyaWJ1dGVzID0gW2VsZW1lbnQgYWNjZXNzaWJpbGl0
eUF0dHJpYnV0ZU5hbWVzXTsKKyAgICBpZiAoIVtzdXBwb3J0ZWRBdHRyaWJ1dGVzIGNvbnRhaW5z
T2JqZWN0OmF0dHJpYnV0ZV0gJiYgIVtpbnRlcm5hbEF0dHJpYnV0ZXMuZ2V0KCkgY29udGFpbnNP
YmplY3Q6YXR0cmlidXRlXSAmJiAhW2F0dHJpYnV0ZSBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3Np
YmlsaXR5Um9sZUF0dHJpYnV0ZV0pCisgICAgICAgIHJldHVybiBuaWw7CisKICAgICByZXR1cm4g
W2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOmF0dHJpYnV0ZV07CiB9CiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2FyaWEtcHJlc3NlZC1idXR0
b24tYXR0cmlidXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21h
Yy9hcmlhLXByZXNzZWQtYnV0dG9uLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CmluZGV4IGI2YzJi
NjUzMmM5ZC4uYTQ2ZjgxZDgxOWI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L21hYy9hcmlhLXByZXNzZWQtYnV0dG9uLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2FyaWEtcHJlc3NlZC1idXR0b24tYXR0cmli
dXRlcy1leHBlY3RlZC50eHQKQEAgLTIsMzQgKzIsMzQgQEAgVGhpcyB0ZXN0IGVuc3VyZXMgYSBy
b2xlPWJ1dHRvbiBlbGVtZW50IHdpdGggYXJpYS1wcmVzc2VkIGhhcyB0aGUgcmlnaHQgYXR0cmli
dXQKIAogI2J1dHRvbjE6IEFYUm9sZTogQVhDaGVja0JveAogI2J1dHRvbjE6IEFYU3Vicm9sZTog
QVhUb2dnbGUKLSNidXR0b24xOiBBWFZhbHVlOiAxCisjYnV0dG9uMTogQVhUaXRsZTogRm9vCiAj
YnV0dG9uMTogQVhBUklBUHJlc3NlZElzUHJlc2VudDogdHJ1ZQogCiAjYnV0dG9uMjogQVhSb2xl
OiBBWENoZWNrQm94CiAjYnV0dG9uMjogQVhTdWJyb2xlOiBBWFRvZ2dsZQotI2J1dHRvbjI6IEFY
VmFsdWU6IDAKKyNidXR0b24yOiBBWFRpdGxlOiBCYXIKICNidXR0b24yOiBBWEFSSUFQcmVzc2Vk
SXNQcmVzZW50OiB0cnVlCiAKICNidXR0b24td2l0aG91dC1pbml0aWFsLXByZXNzOiBBWFJvbGU6
IEFYQnV0dG9uCiAjYnV0dG9uLXdpdGhvdXQtaW5pdGlhbC1wcmVzczogQVhTdWJyb2xlOgotI2J1
dHRvbi13aXRob3V0LWluaXRpYWwtcHJlc3M6IEFYVmFsdWU6CisjYnV0dG9uLXdpdGhvdXQtaW5p
dGlhbC1wcmVzczogQVhUaXRsZTogQmF6CiAjYnV0dG9uLXdpdGhvdXQtaW5pdGlhbC1wcmVzczog
QVhBUklBUHJlc3NlZElzUHJlc2VudDogZmFsc2UKIAogVG9nZ2xpbmcgYXJpYS1wcmVzc2VkIHN0
YXRlIG9uIGJvdGggYnV0dG9ucy4KIAogI2J1dHRvbjE6IEFYUm9sZTogQVhDaGVja0JveAogI2J1
dHRvbjE6IEFYU3Vicm9sZTogQVhUb2dnbGUKLSNidXR0b24xOiBBWFZhbHVlOiAwCisjYnV0dG9u
MTogQVhUaXRsZTogRm9vCiAjYnV0dG9uMTogQVhBUklBUHJlc3NlZElzUHJlc2VudDogdHJ1ZQog
CiAjYnV0dG9uMjogQVhSb2xlOiBBWENoZWNrQm94CiAjYnV0dG9uMjogQVhTdWJyb2xlOiBBWFRv
Z2dsZQotI2J1dHRvbjI6IEFYVmFsdWU6IDEKKyNidXR0b24yOiBBWFRpdGxlOiBCYXIKICNidXR0
b24yOiBBWEFSSUFQcmVzc2VkSXNQcmVzZW50OiB0cnVlCiAKICNidXR0b24td2l0aG91dC1pbml0
aWFsLXByZXNzOiBBWFJvbGU6IEFYQnV0dG9uCiAjYnV0dG9uLXdpdGhvdXQtaW5pdGlhbC1wcmVz
czogQVhTdWJyb2xlOgotI2J1dHRvbi13aXRob3V0LWluaXRpYWwtcHJlc3M6IEFYVmFsdWU6Cisj
YnV0dG9uLXdpdGhvdXQtaW5pdGlhbC1wcmVzczogQVhUaXRsZTogQmF6CiAjYnV0dG9uLXdpdGhv
dXQtaW5pdGlhbC1wcmVzczogQVhBUklBUHJlc3NlZElzUHJlc2VudDogdHJ1ZQogCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2FyaWEtcHJlc3NlZC1idXR0b24t
YXR0cmlidXRlcy5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1wcmVz
c2VkLWJ1dHRvbi1hdHRyaWJ1dGVzLmh0bWwKaW5kZXggMGU4NDcxNTEwNzFiLi4zNDkwYjBlMDAz
ZjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2FyaWEtcHJlc3Nl
ZC1idXR0b24tYXR0cmlidXRlcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkv
bWFjL2FyaWEtcHJlc3NlZC1idXR0b24tYXR0cmlidXRlcy5odG1sCkBAIC0xOCw3ICsxOCw3IEBA
CiAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3Np
YmxlRWxlbWVudEJ5SWQoaWQpOwogICAgICAgICB0ZXN0T3V0cHV0ICs9IGAjJHtpZH06ICR7ZWxl
bWVudC5yb2xlfVxuYDsKICAgICAgICAgdGVzdE91dHB1dCArPSBgIyR7aWR9OiAke2VsZW1lbnQu
c3Vicm9sZX1cbmA7Ci0gICAgICAgIHRlc3RPdXRwdXQgKz0gYCMke2lkfTogJHtlbGVtZW50LnN0
cmluZ1ZhbHVlfVxuYDsKKyAgICAgICAgdGVzdE91dHB1dCArPSBgIyR7aWR9OiAke2VsZW1lbnQu
dGl0bGV9XG5gOwogICAgICAgICB0ZXN0T3V0cHV0ICs9IGAjJHtpZH06IEFYQVJJQVByZXNzZWRJ
c1ByZXNlbnQ6ICR7ZWxlbWVudC5ib29sQXR0cmlidXRlVmFsdWUoIkFYQVJJQVByZXNzZWRJc1By
ZXNlbnQiKX1cblxuYDsKICAgICB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2li
aWxpdHkvbWFjL2FyaWEtdHJlZS13aXRoLXByZXNlbnRhdGlvbi1yb2xlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9hcmlhLXRyZWUtd2l0aC1wcmVzZW50YXRpb24tcm9sZS5o
dG1sCmluZGV4IGNjMzc2MTAyMTI0NS4uMGM1NjNkZWZiOWU1IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9hcmlhLXRyZWUtd2l0aC1wcmVzZW50YXRpb24tcm9sZS5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2FyaWEtdHJlZS13aXRoLXBy
ZXNlbnRhdGlvbi1yb2xlLmh0bWwKQEAgLTMzLDcgKzMzLDcgQEAKICAgICB9CiAgICAgCiAgICAg
ZnVuY3Rpb24gZHVtcEFjY2Vzc2liaWxpdHlDaGlsZHJlbihlbGVtZW50LCBsZXZlbCkgewotICAg
ICAgICBpZiAoZWxlbWVudC5zdHJpbmdWYWx1ZS5pbmRleE9mKCdFbmQgb2YgdGVzdCcpID49IDAp
CisgICAgICAgIGlmIChlbGVtZW50LnN0cmluZ1ZhbHVlICYmIGVsZW1lbnQuc3RyaW5nVmFsdWUu
aW5kZXhPZignRW5kIG9mIHRlc3QnKSA+PSAwKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgICAgIHZhciBpbmRlbnQgPSAiIjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvbWFjL2JvdW5kcy1mb3ItcmFuZ2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS9tYWMvYm91bmRzLWZvci1yYW5nZS1leHBlY3RlZC50eHQKaW5kZXggN2Jl
ODljYWNlODk2Li5lNjBhM2VjMzMxZmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2li
aWxpdHkvbWFjL2JvdW5kcy1mb3ItcmFuZ2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2FjY2Vzc2liaWxpdHkvbWFjL2JvdW5kcy1mb3ItcmFuZ2UtZXhwZWN0ZWQudHh0CkBAIC0zMCw2
ICszMCw3IEBAIEFYRm9jdXNhYmxlQW5jZXN0b3I6IDxBWFN0YXRpY1RleHQ+CiBBWEVkaXRhYmxl
QW5jZXN0b3I6IChudWxsKQogQVhIaWdoZXN0RWRpdGFibGVBbmNlc3RvcjogKG51bGwpCiBBWElu
dGVyc2VjdGlvbldpdGhTZWxlY3Rpb25SYW5nZTogKG51bGwpCitBWFZpc2libGVDaGFyYWN0ZXJS
YW5nZTogTlNSYW5nZTogezAsIDE2Mn0KIEFYRWxlbWVudEJ1c3k6IDAKIEFYUGF0aDogKG51bGwp
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2ludGVybmFsLWxp
bmstYW5jaG9ycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9p
bnRlcm5hbC1saW5rLWFuY2hvcnMtZXhwZWN0ZWQudHh0CmluZGV4IDZmZTUyZGJlY2JlOS4uNzE1
OTNlMzJkNzkzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9pbnRl
cm5hbC1saW5rLWFuY2hvcnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2li
aWxpdHkvbWFjL2ludGVybmFsLWxpbmstYW5jaG9ycy1leHBlY3RlZC50eHQKQEAgLTMxLDYgKzMx
LDcgQEAgQVhGb2N1c2FibGVBbmNlc3RvcjogPEFYU3RhdGljVGV4dD4KIEFYRWRpdGFibGVBbmNl
c3RvcjogKG51bGwpCiBBWEhpZ2hlc3RFZGl0YWJsZUFuY2VzdG9yOiAobnVsbCkKIEFYSW50ZXJz
ZWN0aW9uV2l0aFNlbGVjdGlvblJhbmdlOiAobnVsbCkKK0FYVmlzaWJsZUNoYXJhY3RlclJhbmdl
OiBOU1JhbmdlOiB7MCwgOX0KIEFYRWxlbWVudEJ1c3k6IDAKIEFYUGF0aDogKG51bGwpCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGFibGUtd2l0aC1ydWxlcy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3RhYmxlLXdpdGgtcnVsZXMtZXhw
ZWN0ZWQudHh0CmluZGV4IDllOWY4YWViZDU1Ni4uYjNjM2VhODVkMWQxIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3RhYmxlLXdpdGgtcnVsZXMtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGFibGUtd2l0aC1ydWxlcy1leHBlY3RlZC50
eHQKQEAgLTQ4LDYgKzQ4LDcgQEAgQVhSb3dDb3VudDogMQogQVhBUklBQ29sdW1uQ291bnQ6IDAK
IEFYQVJJQVJvd0NvdW50OiAwCiBBWFNlbGVjdGVkQ2VsbHM6IDxhcnJheSBvZiBzaXplIDA+CitB
WFRhYmxlTGV2ZWw6IDEKIEFYRWxlbWVudEJ1c3k6IDAKIAogCkBAIC05NCw2ICs5NSw3IEBAIEFY
Um93Q291bnQ6IDEKIEFYQVJJQUNvbHVtbkNvdW50OiAwCiBBWEFSSUFSb3dDb3VudDogMAogQVhT
ZWxlY3RlZENlbGxzOiA8YXJyYXkgb2Ygc2l6ZSAwPgorQVhUYWJsZUxldmVsOiAxCiBBWEVsZW1l
bnRCdXN5OiAwCiAKIApAQCAtMTQwLDYgKzE0Miw3IEBAIEFYUm93Q291bnQ6IDEKIEFYQVJJQUNv
bHVtbkNvdW50OiAwCiBBWEFSSUFSb3dDb3VudDogMAogQVhTZWxlY3RlZENlbGxzOiA8YXJyYXkg
b2Ygc2l6ZSAwPgorQVhUYWJsZUxldmVsOiAxCiBBWEVsZW1lbnRCdXN5OiAwCiAKIApAQCAtMTcz
LDcgKzE3Niw3IEBAIEFYRE9NQ2xhc3NMaXN0OiA8YXJyYXkgb2Ygc2l6ZSAwPgogQVhGb2N1c2Fi
bGVBbmNlc3RvcjogPEFYR3JvdXA+CiBBWEVkaXRhYmxlQW5jZXN0b3I6IChudWxsKQogQVhIaWdo
ZXN0RWRpdGFibGVBbmNlc3RvcjogKG51bGwpCi1BWFRpdGxlVUlFbGVtZW50OiAobnVsbCkKK0FY
SW5saW5lVGV4dDogMAogQVhFbGVtZW50QnVzeTogMAogCiAKQEAgLTIwNyw3ICsyMTAsNyBAQCBB
WERPTUNsYXNzTGlzdDogPGFycmF5IG9mIHNpemUgMD4KIEFYRm9jdXNhYmxlQW5jZXN0b3I6IDxB
WEdyb3VwPgogQVhFZGl0YWJsZUFuY2VzdG9yOiAobnVsbCkKIEFYSGlnaGVzdEVkaXRhYmxlQW5j
ZXN0b3I6IChudWxsKQotQVhUaXRsZVVJRWxlbWVudDogKG51bGwpCitBWElubGluZVRleHQ6IDAK
IEFYRWxlbWVudEJ1c3k6IDAKIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvYWNjZXNzaWJpbGl0eS9saXN0cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvYWNjZXNzaWJpbGl0eS9saXN0cy1leHBlY3RlZC50eHQKaW5kZXggN2QzY2MzZjJhMDI3
Li5mZDQxYjAxYTNlMDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nl
c3NpYmlsaXR5L2xpc3RzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvYWNjZXNzaWJpbGl0eS9saXN0cy1leHBlY3RlZC50eHQKQEAgLTQ0LDcgKzQ0LDYgQEAgQVhI
aWdoZXN0RWRpdGFibGVBbmNlc3RvcjogKG51bGwpCiBBWFNlbGVjdGVkQ2hpbGRyZW46IDxhcnJh
eSBvZiBzaXplIDA+CiBBWFZpc2libGVDaGlsZHJlbjogPGFycmF5IG9mIHNpemUgMj4KIEFYT3Jp
ZW50YXRpb246IEFYVmVydGljYWxPcmllbnRhdGlvbgotQVhUaXRsZVVJRWxlbWVudDogKG51bGwp
CiBBWEVsZW1lbnRCdXN5OiAwCiAKIC0tLS0tLS0tLS0tLQpAQCAtODEsNyArODAsNiBAQCBBWEhp
Z2hlc3RFZGl0YWJsZUFuY2VzdG9yOiAobnVsbCkKIEFYU2VsZWN0ZWRDaGlsZHJlbjogPGFycmF5
IG9mIHNpemUgMD4KIEFYVmlzaWJsZUNoaWxkcmVuOiA8YXJyYXkgb2Ygc2l6ZSAyPgogQVhPcmll
bnRhdGlvbjogQVhWZXJ0aWNhbE9yaWVudGF0aW9uCi1BWFRpdGxlVUlFbGVtZW50OiAobnVsbCkK
IEFYRWxlbWVudEJ1c3k6IDAKIAogLS0tLS0tLS0tLS0tCkBAIC0xMTgsNyArMTE2LDYgQEAgQVhI
aWdoZXN0RWRpdGFibGVBbmNlc3RvcjogKG51bGwpCiBBWFNlbGVjdGVkQ2hpbGRyZW46IChudWxs
KQogQVhWaXNpYmxlQ2hpbGRyZW46IDxhcnJheSBvZiBzaXplIDU+CiBBWE9yaWVudGF0aW9uOiBB
WFZlcnRpY2FsT3JpZW50YXRpb24KLUFYVGl0bGVVSUVsZW1lbnQ6IChudWxsKQogQVhFbGVtZW50
QnVzeTogMAogCiAtLS0tLS0tLS0tLS0KQEAgLTE1NCw3ICsxNTEsNyBAQCBBWERPTUNsYXNzTGlz
dDogPGFycmF5IG9mIHNpemUgMD4KIEFYRm9jdXNhYmxlQW5jZXN0b3I6IDxBWEdyb3VwPgogQVhF
ZGl0YWJsZUFuY2VzdG9yOiAobnVsbCkKIEFYSGlnaGVzdEVkaXRhYmxlQW5jZXN0b3I6IChudWxs
KQotQVhUaXRsZVVJRWxlbWVudDogKG51bGwpCitBWElubGluZVRleHQ6IDAKIEFYRWxlbWVudEJ1
c3k6IDAKIAogLS0tLS0tLS0tLS0tCkBAIC0xODgsNyArMTg1LDcgQEAgQVhET01DbGFzc0xpc3Q6
IDxhcnJheSBvZiBzaXplIDA+CiBBWEZvY3VzYWJsZUFuY2VzdG9yOiA8QVhHcm91cD4KIEFYRWRp
dGFibGVBbmNlc3RvcjogKG51bGwpCiBBWEhpZ2hlc3RFZGl0YWJsZUFuY2VzdG9yOiAobnVsbCkK
LUFYVGl0bGVVSUVsZW1lbnQ6IChudWxsKQorQVhJbmxpbmVUZXh0OiAwCiBBWEVsZW1lbnRCdXN5
OiAwCiAKIC0tLS0tLS0tLS0tLQpAQCAtMjI0LDcgKzIyMSw3IEBAIEFYRE9NQ2xhc3NMaXN0OiA8
YXJyYXkgb2Ygc2l6ZSAwPgogQVhGb2N1c2FibGVBbmNlc3RvcjogPEFYR3JvdXA+CiBBWEVkaXRh
YmxlQW5jZXN0b3I6IChudWxsKQogQVhIaWdoZXN0RWRpdGFibGVBbmNlc3RvcjogKG51bGwpCi1B
WFRpdGxlVUlFbGVtZW50OiAobnVsbCkKK0FYSW5saW5lVGV4dDogMAogQVhFbGVtZW50QnVzeTog
MAogCiAtLS0tLS0tLS0tLS0KQEAgLTI1OCw3ICsyNTUsNyBAQCBBWERPTUNsYXNzTGlzdDogPGFy
cmF5IG9mIHNpemUgMD4KIEFYRm9jdXNhYmxlQW5jZXN0b3I6IDxBWEdyb3VwPgogQVhFZGl0YWJs
ZUFuY2VzdG9yOiAobnVsbCkKIEFYSGlnaGVzdEVkaXRhYmxlQW5jZXN0b3I6IChudWxsKQotQVhU
aXRsZVVJRWxlbWVudDogKG51bGwpCitBWElubGluZVRleHQ6IDAKIEFYRWxlbWVudEJ1c3k6IDAK
IAogLS0tLS0tLS0tLS0tCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>470640</attachid>
            <date>2024-03-28 10:38:13 -0700</date>
            <delta_ts>2024-03-28 14:44:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-271674-20240328103812.patch</filename>
            <type>text/plain</type>
            <size>23432</size>
            <attacher name="Dominic Mazzoni">dm_mazzoni</attacher>
            
              <data encoding="base64">RnJvbSBhYmIzMmU4ZDNmOWE1NjJkNjIzODI1ODU5ZDNiOGM3NTcwOWNjNGZiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb21pbmljIE1henpvbmkgPGRtX21henpvbmlAYXBwbGUuY29t
PgpEYXRlOiBUdWUsIDI2IE1hciAyMDI0IDA5OjIzOjAxIC0wNzAwClN1YmplY3Q6IFtQQVRDSF0g
QVg6IE1hYyBsYXlvdXQgdGVzdHMgc2hvdWxkbid0IGFjY2VzcyBhdHRyaWJ1dGVzIHRoYXQgYXJl
bid0CiBleHBvc2VkIGZvciB0aGF0IGVsZW1lbnQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTI3MTY3NAogcmRhcjovL3Byb2JsZW0vMTI1MzczNjk0CgpSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KCkNoZWNrcyBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlTmFtZXMgYmVm
b3JlIGNhbGxpbmcgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlIGluCkFjY2Vzc2liaWxpdHlV
SUVsZW1lbnRNYWMuIFJldHVybnMgbmlsIGlmIHF1ZXJ5aW5nIGZvciBhbiBhdHRyaWJ1dGUgdGhh
dCBpc24ndApmb3VuZC4KClRoYXQgbGVkIHRvIGZpbmRpbmcgbG90cyBvZiBleGFtcGxlcyBvZiBh
dHRyaWJ1dGVzIHRoYXQgb3VnaHQgdG8gYmUgZXhwb3NlZAppbiBhY2Nlc3NpYmlsaXR5QXR0cmli
dXRlTmFtZXMgYnV0IHdlcmVuJ3Qgbm93LgoKSW4gdGhpcyBwYXRjaCwgSSBhdHRlbXB0ZWQgdG8g
Zml4IHRoZSBvbmVzIHRoYXQgaGF2ZSBhIGNsZWFyLCBzdHJhaWdodGZvcndhcmQKZml4LCBhbmQg
dGhlbiBhZGRlZCBhbiBleGNlcHRpb24gZm9yIGFueXRoaW5nIHRoYXQgd2Fzbid0IHN0cmFpZ2h0
Zm9yd2FyZC4KClRoZSBpZGVhIGlzIHRvIGZvbGxvdyB1cCB1bnRpbCBhbGwgb2YgdGhlIGV4Y2Vw
dGlvbnMgYXJlIHJlbW92ZWQuCgoqIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbGlzdHMtZXhw
ZWN0ZWQudHh0OiBSZW1vdmVkLgoqIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2FyaWEt
cHJlc3NlZC1idXR0b24tYXR0cmlidXRlcy1leHBlY3RlZC50eHQ6CiogTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9tYWMvYXJpYS1wcmVzc2VkLWJ1dHRvbi1hdHRyaWJ1dGVzLmh0bWw6CiogTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS10cmVlLXdpdGgtcHJlc2VudGF0aW9uLXJv
bGUuaHRtbDoKKiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9ib3VuZHMtZm9yLXJhbmdl
LWV4cGVjdGVkLnR4dDoKKiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9pbnRlcm5hbC1s
aW5rLWFuY2hvcnMtZXhwZWN0ZWQudHh0OgoqIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGFi
bGUtd2l0aC1ydWxlcy1leHBlY3RlZC50eHQ6CiogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Fj
Y2Vzc2liaWxpdHkvbGlzdHMtZXhwZWN0ZWQudHh0OgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2Jq
ZWN0OjpzdXBwb3J0c0V4cGFuZGVkIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbToKKC1bV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXIgX2FkZGl0aW9uYWxBY2Nlc3NpYmlsaXR5QXR0cmlidXRlTmFt
ZXM6XSk6CigtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIEFMTE9XX0RFUFJFQ0FURURf
SU1QTEVNRU5UQVRJT05TX0VORF0pOgoqIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW06CihXVFI6OmF0dHJpYnV0ZVZh
bHVlKToKLS0tCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCAgICAg
fCAgMyArCiAuLi4vbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tICAgfCA1
OSArKysrKysrKysrKy0tLS0tLS0tCiAuLi4vbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMu
bW0gICAgICAgICAgfCA0NiArKysrKysrKysrKysrKysKIC4uLnJpYS1wcmVzc2VkLWJ1dHRvbi1h
dHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCB8IDEyICsrLS0KIC4uLi9tYWMvYXJpYS1wcmVzc2VkLWJ1
dHRvbi1hdHRyaWJ1dGVzLmh0bWwgICB8ICAyICstCiAuLi4vbWFjL2FyaWEtdHJlZS13aXRoLXBy
ZXNlbnRhdGlvbi1yb2xlLmh0bWwgfCAgMiArLQogLi4uL21hYy9ib3VuZHMtZm9yLXJhbmdlLWV4
cGVjdGVkLnR4dCAgICAgICAgIHwgIDEgKwogLi4uL21hYy9pbnRlcm5hbC1saW5rLWFuY2hvcnMt
ZXhwZWN0ZWQudHh0ICAgIHwgIDEgKwogLi4uL3RhYmxlLXdpdGgtcnVsZXMtZXhwZWN0ZWQudHh0
ICAgICAgICAgICAgIHwgIDcgKystCiAuLi4vbWFjL2FjY2Vzc2liaWxpdHkvbGlzdHMtZXhwZWN0
ZWQudHh0ICAgICAgfCAxMSArKy0tCiAxMCBmaWxlcyBjaGFuZ2VkLCAxMDIgaW5zZXJ0aW9ucygr
KSwgNDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKaW5kZXggZTk4OTM0ZjU1YTE4Li5kNjExNTgwNmJk
NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5T2JqZWN0LmNwcApAQCAtMzQ0OSw2ICszNDQ5LDkgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0OjpzdXBwb3J0c0V4cGFuZGVkKCkgY29uc3QKICAgICBpZiAocG9wb3ZlclRhcmdldEVsZW1l
bnQoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKKyAgICBpZiAoaXM8SFRNTERldGFpbHNFbGVt
ZW50Pihub2RlKCkpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKwogICAgIHN3aXRjaCAocm9sZVZh
bHVlKCkpIHsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEZXRhaWxzOgogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFj
L1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KaW5kZXgg
MGRjMDA2MDg3ZmU2Li4yOTgxZmI0NTc2NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyTWFjLm1tCkBAIC04MjMsNyArODIzLDggQEAgLSAoTlNBcnJheSopX2FkZGl0aW9uYWxB
Y2Nlc3NpYmlsaXR5QXR0cmlidXRlTmFtZXM6KGNvbnN0IFJlZlB0cjxBWENvcmVPYmplY3Q+JikK
ICAgICBpZiAoYmFja2luZ09iamVjdC0+aXNTY3JvbGxiYXIoKQogICAgICAgICB8fCBiYWNraW5n
T2JqZWN0LT5pc1JhZGlvR3JvdXAoKQogICAgICAgICB8fCBiYWNraW5nT2JqZWN0LT5pc1NwbGl0
dGVyKCkKLSAgICAgICAgfHwgYmFja2luZ09iamVjdC0+aXNUb29sYmFyKCkpCisgICAgICAgIHx8
IGJhY2tpbmdPYmplY3QtPmlzVG9vbGJhcigpCisgICAgICAgIHx8IGJhY2tpbmdPYmplY3QtPnJv
bGVWYWx1ZSgpID09IEFjY2Vzc2liaWxpdHlSb2xlOjpIb3Jpem9udGFsUnVsZSkKICAgICAgICAg
W2FkZGl0aW9uYWwgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eU9yaWVudGF0aW9uQXR0cmlidXRl
XTsKIAogICAgIGlmIChiYWNraW5nT2JqZWN0LT5zdXBwb3J0c0RyYWdnaW5nKCkpCkBAIC05MDUs
NiArOTA2LDI0IEBAIC0gKE5TQXJyYXkqKV9hZGRpdGlvbmFsQWNjZXNzaWJpbGl0eUF0dHJpYnV0
ZU5hbWVzOihjb25zdCBSZWZQdHI8QVhDb3JlT2JqZWN0PiYpCiAgICAgaWYgKGJhY2tpbmdPYmpl
Y3QtPnN1cHBvcnRzRXhwYW5kZWRUZXh0VmFsdWUoKSkKICAgICAgICAgW2FkZGl0aW9uYWwgYWRk
T2JqZWN0Ok5TQWNjZXNzaWJpbGl0eUV4cGFuZGVkVGV4dFZhbHVlQXR0cmlidXRlXTsKIAorICAg
IGlmICghYmFja2luZ09iamVjdC0+YnJhaWxsZUxhYmVsKCkuaXNFbXB0eSgpKQorICAgICAgICBb
YWRkaXRpb25hbCBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5QnJhaWxsZUxhYmVsQXR0cmlidXRl
XTsKKworICAgIGlmICghYmFja2luZ09iamVjdC0+YnJhaWxsZVJvbGVEZXNjcmlwdGlvbigpLmlz
RW1wdHkoKSkKKyAgICAgICAgW2FkZGl0aW9uYWwgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eUJy
YWlsbGVSb2xlRGVzY3JpcHRpb25BdHRyaWJ1dGVdOworCisgICAgaWYgKGJhY2tpbmdPYmplY3Qt
PmRldGFpbGVkQnlPYmplY3RzKCkuc2l6ZSgpKQorICAgICAgICBbYWRkaXRpb25hbCBhZGRPYmpl
Y3Q6QCJBWERldGFpbHNFbGVtZW50cyJdOworCisgICAgaWYgKGJhY2tpbmdPYmplY3QtPmVycm9y
TWVzc2FnZU9iamVjdHMoKS5zaXplKCkpCisgICAgICAgIFthZGRpdGlvbmFsIGFkZE9iamVjdDpA
IkFYRXJyb3JNZXNzYWdlRWxlbWVudHMiXTsKKworICAgIGlmICghYmFja2luZ09iamVjdC0+a2V5
U2hvcnRjdXRzKCkuaXNFbXB0eSgpKQorICAgICAgICBbYWRkaXRpb25hbCBhZGRPYmplY3Q6TlNB
Y2Nlc3NpYmlsaXR5S2V5U2hvcnRjdXRzQXR0cmlidXRlXTsKKworICAgIGlmIChiYWNraW5nT2Jq
ZWN0LT50aXRsZVVJRWxlbWVudCgpKQorICAgICAgICBbYWRkaXRpb25hbCBhZGRPYmplY3Q6TlNB
Y2Nlc3NpYmlsaXR5VGl0bGVVSUVsZW1lbnRBdHRyaWJ1dGVdOworCiAjaWYgRU5BQkxFKEFDQ0VT
U0lCSUxJVFlfSVNPTEFURURfVFJFRSkKICAgICBpZiAoQVhPYmplY3RDYWNoZTo6aXNJc29sYXRl
ZFRyZWVFbmFibGVkKCkpCiAgICAgICAgIFthZGRpdGlvbmFsIGFkZE9iamVjdDpOU0FjY2Vzc2li
aWxpdHlSZWxhdGl2ZUZyYW1lQXR0cmlidXRlXTsKQEAgLTk3OSwxNSArOTk4LDYgQEAgQUxMT1df
REVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2Jq
ZWN0Ok5TQWNjZXNzaWJpbGl0eUxpbmtSZWxhdGlvbnNoaXBUeXBlQXR0cmlidXRlXTsKICAgICAg
ICAgcmV0dXJuIHRlbXBBcnJheTsKICAgICB9KCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PFJldGFpblB0cjxOU0FycmF5Pj4gY29tbW9uTWVudUF0dHJzID0gQFsKLSAgICAgICAgTlNBY2Nl
c3NpYmlsaXR5Um9sZUF0dHJpYnV0ZSwKLSAgICAgICAgTlNBY2Nlc3NpYmlsaXR5Um9sZURlc2Ny
aXB0aW9uQXR0cmlidXRlLAotICAgICAgICBOU0FjY2Vzc2liaWxpdHlDaGlsZHJlbkF0dHJpYnV0
ZSwKLSAgICAgICAgTlNBY2Nlc3NpYmlsaXR5UGFyZW50QXR0cmlidXRlLAotICAgICAgICBOU0Fj
Y2Vzc2liaWxpdHlFbmFibGVkQXR0cmlidXRlLAotICAgICAgICBOU0FjY2Vzc2liaWxpdHlQb3Np
dGlvbkF0dHJpYnV0ZSwKLSAgICAgICAgTlNBY2Nlc3NpYmlsaXR5U2l6ZUF0dHJpYnV0ZSwKLSAg
ICBdOwogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZCB3ZWJBcmVhQXR0cnMgPSBbXSB7CiAgICAg
ICAgIGF1dG8gdGVtcEFycmF5ID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0
V2l0aEFycmF5OmF0dHJpYnV0ZXMuZ2V0KCkuZ2V0KCldKTsKICAgICAgICAgLy8gV2ViQXJlYXMg
c2hvdWxkIG5vdCBleHBvc2UgQVhTdWJyb2xlLgpAQCAtMTAxMiwxMSArMTAyMiwxMSBAQCBBTExP
V19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQKICAgICAgICAgW3RlbXBBcnJheSBhZGRP
YmplY3Q6TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0UmFuZ2VBdHRyaWJ1dGVdOwogICAgICAg
ICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlWaXNpYmxlQ2hhcmFjdGVyUmFu
Z2VBdHRyaWJ1dGVdOwogICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxp
dHlJbnNlcnRpb25Qb2ludExpbmVOdW1iZXJBdHRyaWJ1dGVdOwotICAgICAgICBbdGVtcEFycmF5
IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlUaXRsZVVJRWxlbWVudEF0dHJpYnV0ZV07CiAgICAg
ICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eUFjY2Vzc0tleUF0dHJpYnV0
ZV07CiAgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eVJlcXVpcmVk
QXR0cmlidXRlXTsKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5
SW52YWxpZEF0dHJpYnV0ZV07CiAgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNz
aWJpbGl0eVBsYWNlaG9sZGVyVmFsdWVBdHRyaWJ1dGVdOworICAgICAgICBbdGVtcEFycmF5IGFk
ZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlWYWx1ZUF1dG9maWxsQXZhaWxhYmxlQXR0cmlidXRlXTsK
ICAgICAgICAgcmV0dXJuIHRlbXBBcnJheTsKICAgICB9KCk7CiAgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkIGxpc3RBdHRycyA9IFtdIHsKQEAgLTEwMjQsNyArMTAzNCw2IEBAIEFMTE9XX0RFUFJF
Q0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpO
U0FjY2Vzc2liaWxpdHlTZWxlY3RlZENoaWxkcmVuQXR0cmlidXRlXTsKICAgICAgICAgW3RlbXBB
cnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5VmlzaWJsZUNoaWxkcmVuQXR0cmlidXRlXTsK
ICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5T3JpZW50YXRpb25B
dHRyaWJ1dGVdOwotICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlU
aXRsZVVJRWxlbWVudEF0dHJpYnV0ZV07CiAgICAgICAgIHJldHVybiB0ZW1wQXJyYXk7CiAgICAg
fSgpOwogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZCBsaXN0Qm94QXR0cnMgPSBbXSB7CkBAIC0x
MDQxLDI1ICsxMDUwLDIyIEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORAog
ICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlNYXhWYWx1ZUF0dHJp
YnV0ZV07CiAgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eU9yaWVu
dGF0aW9uQXR0cmlidXRlXTsKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3Np
YmlsaXR5VmFsdWVEZXNjcmlwdGlvbkF0dHJpYnV0ZV07Ci0gICAgICAgIFt0ZW1wQXJyYXkgYWRk
T2JqZWN0Ok5TQWNjZXNzaWJpbGl0eVRpdGxlVUlFbGVtZW50QXR0cmlidXRlXTsKICAgICAgICAg
cmV0dXJuIHRlbXBBcnJheTsKICAgICB9KCk7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkIG1l
bnVCYXJBdHRycyA9IFtdIHsKLSAgICAgICAgYXV0byB0ZW1wQXJyYXkgPSBhZG9wdE5TKFtbTlNN
dXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoQXJyYXk6Y29tbW9uTWVudUF0dHJzLmdldCgpLmdl
dCgpXSk7CisgICAgICAgIGF1dG8gdGVtcEFycmF5ID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5
IGFsbG9jXSBpbml0V2l0aEFycmF5OmF0dHJpYnV0ZXMuZ2V0KCkuZ2V0KCldKTsKICAgICAgICAg
W3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDaGlsZHJlbkF0dHJp
YnV0ZV07Ci0gICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eVRpdGxl
VUlFbGVtZW50QXR0cmlidXRlXTsKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nl
c3NpYmlsaXR5T3JpZW50YXRpb25BdHRyaWJ1dGVdOwogICAgICAgICByZXR1cm4gdGVtcEFycmF5
OwogICAgIH0oKTsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQgbWVudUF0dHJzID0gW10gewot
ICAgICAgICBhdXRvIHRlbXBBcnJheSA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10g
aW5pdFdpdGhBcnJheTpjb21tb25NZW51QXR0cnMuZ2V0KCkuZ2V0KCldKTsKKyAgICAgICAgYXV0
byB0ZW1wQXJyYXkgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoQXJy
YXk6YXR0cmlidXRlcy5nZXQoKS5nZXQoKV0pOwogICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVj
dDpOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZENoaWxkcmVuQXR0cmlidXRlXTsKLSAgICAgICAgW3Rl
bXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5VGl0bGVVSUVsZW1lbnRBdHRyaWJ1dGVd
OwogICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlPcmllbnRhdGlv
bkF0dHJpYnV0ZV07CiAgICAgICAgIHJldHVybiB0ZW1wQXJyYXk7CiAgICAgfSgpOwogICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZCBtZW51SXRlbUF0dHJzID0gW10gewotICAgICAgICBhdXRvIHRl
bXBBcnJheSA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhBcnJheTpj
b21tb25NZW51QXR0cnMuZ2V0KCkuZ2V0KCldKTsKKyAgICAgICAgYXV0byB0ZW1wQXJyYXkgPSBh
ZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoQXJyYXk6YXR0cmlidXRlcy5n
ZXQoKS5nZXQoKV0pOwogICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxp
dHlUaXRsZUF0dHJpYnV0ZV07CiAgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNz
aWJpbGl0eURlc2NyaXB0aW9uQXR0cmlidXRlXTsKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmpl
Y3Q6TlNBY2Nlc3NpYmlsaXR5SGVscEF0dHJpYnV0ZV07CkBAIC0xMDg4LDcgKzEwOTQsNiBAQCBB
TExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQKICAgICAgICAgTlNBY2Nlc3NpYmls
aXR5Q2hpbGRyZW5BdHRyaWJ1dGUsCiAgICAgXTsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
UmV0YWluUHRyPE5TQXJyYXk+PiBzaGFyZWRDb250cm9sQXR0cnMgPSBAWwotICAgICAgICBOU0Fj
Y2Vzc2liaWxpdHlUaXRsZVVJRWxlbWVudEF0dHJpYnV0ZSwKICAgICAgICAgTlNBY2Nlc3NpYmls
aXR5QWNjZXNzS2V5QXR0cmlidXRlLAogICAgICAgICBOU0FjY2Vzc2liaWxpdHlSZXF1aXJlZEF0
dHJpYnV0ZSwKICAgICAgICAgTlNBY2Nlc3NpYmlsaXR5SW52YWxpZEF0dHJpYnV0ZSwKQEAgLTEx
MDcsOCArMTExMiw4IEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogICAg
ICAgICBhdXRvIHRlbXBBcnJheSA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5p
dFdpdGhBcnJheTphdHRyaWJ1dGVzLmdldCgpLmdldCgpXSk7CiAgICAgICAgIC8vIEJ1dHRvbnMg
c2hvdWxkIG5vdCBleHBvc2UgQVhWYWx1ZS4KICAgICAgICAgW3RlbXBBcnJheSByZW1vdmVPYmpl
Y3Q6TlNBY2Nlc3NpYmlsaXR5VmFsdWVBdHRyaWJ1dGVdOwotICAgICAgICBbdGVtcEFycmF5IGFk
ZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlUaXRsZVVJRWxlbWVudEF0dHJpYnV0ZV07CiAgICAgICAg
IFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eUFjY2Vzc0tleUF0dHJpYnV0ZV07
CisgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eUludmFsaWRBdHRy
aWJ1dGVdOwogICAgICAgICByZXR1cm4gdGVtcEFycmF5OwogICAgIH0oKTsKICAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQgY29tYm9Cb3hBdHRycyA9IFtdIHsKQEAgLTExMzcsNiArMTE0Miw4IEBA
IEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogICAgICAgICBbdGVtcEFycmF5
IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlBUklBQ29sdW1uQ291bnRBdHRyaWJ1dGVdOwogICAg
ICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlBUklBUm93Q291bnRBdHRy
aWJ1dGVdOwogICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlTZWxl
Y3RlZENlbGxzQXR0cmlidXRlXTsKKyAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nl
c3NpYmlsaXR5U2VsZWN0ZWRDaGlsZHJlbkF0dHJpYnV0ZV07CisgICAgICAgIFt0ZW1wQXJyYXkg
YWRkT2JqZWN0OkAiQVhUYWJsZUxldmVsIl07CiAgICAgICAgIHJldHVybiB0ZW1wQXJyYXk7CiAg
ICAgfSgpOwogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZCB0YWJsZVJvd0F0dHJzID0gW10gewpA
QCAtMTE2NCw3ICsxMTcxLDcgQEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5E
CiAgICAgfSgpOwogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZCBncm91cEF0dHJzID0gW10gewog
ICAgICAgICBhdXRvIHRlbXBBcnJheSA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10g
aW5pdFdpdGhBcnJheTphdHRyaWJ1dGVzLmdldCgpLmdldCgpXSk7Ci0gICAgICAgIFt0ZW1wQXJy
YXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eVRpdGxlVUlFbGVtZW50QXR0cmlidXRlXTsKKyAg
ICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5SW5saW5lVGV4dEF0dHJp
YnV0ZV07CiAgICAgICAgIHJldHVybiB0ZW1wQXJyYXk7CiAgICAgfSgpOwogICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZCBpbnB1dEltYWdlQXR0cnMgPSBbXSB7CkBAIC0xMTc0LDcgKzExODEsNiBA
QCBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQKICAgICB9KCk7CiAgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkIHNlY3VyZUZpZWxkQXR0cmlidXRlcyA9IFtdIHsKICAgICAgICAg
YXV0byB0ZW1wQXJyYXkgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRo
QXJyYXk6YXR0cmlidXRlcy5nZXQoKS5nZXQoKV0pOwotICAgICAgICBbdGVtcEFycmF5IGFkZE9i
amVjdDpOU0FjY2Vzc2liaWxpdHlUaXRsZVVJRWxlbWVudEF0dHJpYnV0ZV07CiAgICAgICAgIFt0
ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eVJlcXVpcmVkQXR0cmlidXRlXTsKICAg
ICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5SW52YWxpZEF0dHJpYnV0
ZV07CiAgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eVBsYWNlaG9s
ZGVyVmFsdWVBdHRyaWJ1dGVdOwpAQCAtMTE4NSw2ICsxMTkxLDcgQEAgQUxMT1dfREVQUkVDQVRF
RF9JTVBMRU1FTlRBVElPTlNfRU5ECiAgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNj
ZXNzaWJpbGl0eVRhYnNBdHRyaWJ1dGVdOwogICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpO
U0FjY2Vzc2liaWxpdHlDb250ZW50c0F0dHJpYnV0ZV07CiAgICAgICAgIFt0ZW1wQXJyYXkgYWRk
T2JqZWN0Ok5TQWNjZXNzaWJpbGl0eU9yaWVudGF0aW9uQXR0cmlidXRlXTsKKyAgICAgICAgW3Rl
bXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDaGlsZHJlbkF0dHJpYnV0
ZV07CiAgICAgICAgIHJldHVybiB0ZW1wQXJyYXk7CiAgICAgfSgpOwogICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZCBvdXRsaW5lQXR0cnMgPSBbXSB7CkBAIC0xMTkzLDYgKzEyMDAsNyBAQCBBTExP
V19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQKICAgICAgICAgW3RlbXBBcnJheSBhZGRP
YmplY3Q6TlNBY2Nlc3NpYmlsaXR5Um93c0F0dHJpYnV0ZV07CiAgICAgICAgIFt0ZW1wQXJyYXkg
YWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eUNvbHVtbnNBdHRyaWJ1dGVdOwogICAgICAgICBbdGVt
cEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlPcmllbnRhdGlvbkF0dHJpYnV0ZV07Cisg
ICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkQ2hpbGRy
ZW5BdHRyaWJ1dGVdOwogICAgICAgICByZXR1cm4gdGVtcEFycmF5OwogICAgIH0oKTsKICAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQgb3V0bGluZVJvd0F0dHJzID0gW10gewpAQCAtMTIyNyw2ICsx
MjM1LDcgQEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkIHN0YXRpY1RleHRBdHRycyA9IFtdIHsKICAgICAgICAgYXV0byB0ZW1w
QXJyYXkgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoQXJyYXk6YXR0
cmlidXRlcy5nZXQoKS5nZXQoKV0pOwogICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0Fj
Y2Vzc2liaWxpdHlJbnRlcnNlY3Rpb25XaXRoU2VsZWN0aW9uUmFuZ2VBdHRyaWJ1dGVdOworICAg
ICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlWaXNpYmxlQ2hhcmFjdGVy
UmFuZ2VBdHRyaWJ1dGVdOwogICAgICAgICByZXR1cm4gdGVtcEFycmF5OwogICAgIH0oKTsKIApA
QCAtMTI0OCw3ICsxMjU3LDcgQEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5E
CiAgICAgICAgIG9iamVjdEF0dHJpYnV0ZXMgPSBhbmNob3JBdHRycy5nZXQoKS5nZXQoKTsKICAg
ICBlbHNlIGlmIChiYWNraW5nT2JqZWN0LT5pc0ltYWdlKCkpCiAgICAgICAgIG9iamVjdEF0dHJp
YnV0ZXMgPSBpbWFnZUF0dHJzLmdldCgpLmdldCgpOwotICAgIGVsc2UgaWYgKGJhY2tpbmdPYmpl
Y3QtPmlzVGFibGUoKSAmJiBiYWNraW5nT2JqZWN0LT5pc0V4cG9zYWJsZSgpKQorICAgIGVsc2Ug
aWYgKChiYWNraW5nT2JqZWN0LT5pc1RhYmxlKCkgJiYgYmFja2luZ09iamVjdC0+aXNFeHBvc2Fi
bGUoKSkgfHwgYmFja2luZ09iamVjdC0+aXNBY2Nlc3NpYmlsaXR5QVJJQUdyaWRJbnN0YW5jZSgp
KQogICAgICAgICBvYmplY3RBdHRyaWJ1dGVzID0gdGFibGVBdHRycy5nZXQoKS5nZXQoKTsKICAg
ICBlbHNlIGlmIChiYWNraW5nT2JqZWN0LT5pc1RhYmxlQ29sdW1uKCkpCiAgICAgICAgIG9iamVj
dEF0dHJpYnV0ZXMgPSB0YWJsZUNvbEF0dHJzLmdldCgpLmdldCgpOwpAQCAtMTI3Miw3ICsxMjgx
LDcgQEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAgICAgICAgIG9iamVj
dEF0dHJpYnV0ZXMgPSBsaXN0Qm94QXR0cnMuZ2V0KCkuZ2V0KCk7CiAgICAgZWxzZSBpZiAoYmFj
a2luZ09iamVjdC0+aXNMaXN0KCkpCiAgICAgICAgIG9iamVjdEF0dHJpYnV0ZXMgPSBsaXN0QXR0
cnMuZ2V0KCkuZ2V0KCk7Ci0gICAgZWxzZSBpZiAoYmFja2luZ09iamVjdC0+aXNQcm9ncmVzc0lu
ZGljYXRvcigpIHx8IGJhY2tpbmdPYmplY3QtPmlzU2xpZGVyKCkpCisgICAgZWxzZSBpZiAoYmFj
a2luZ09iamVjdC0+aXNQcm9ncmVzc0luZGljYXRvcigpIHx8IGJhY2tpbmdPYmplY3QtPmlzU2xp
ZGVyKCkgfHwgYmFja2luZ09iamVjdC0+aXNTcGxpdHRlcigpKQogICAgICAgICBvYmplY3RBdHRy
aWJ1dGVzID0gcmFuZ2VBdHRycy5nZXQoKS5nZXQoKTsKICAgICAvLyBUaGVzZSBhcmUgcHJvY2Vz
c2VkIGluIG9yZGVyIGJlY2F1c2UgYW4gaW5wdXQgaW1hZ2UgaXMgYSBidXR0b24sIGFuZCBhIGJ1
dHRvbiBpcyBhIGNvbnRyb2wuCiAgICAgZWxzZSBpZiAoYmFja2luZ09iamVjdC0+aXNJbnB1dElt
YWdlKCkpCkBAIC0xMjgyLDcgKzEyOTEsNyBAQCBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFU
SU9OU19FTkQKICAgICBlbHNlIGlmIChiYWNraW5nT2JqZWN0LT5pc0NvbnRyb2woKSkKICAgICAg
ICAgb2JqZWN0QXR0cmlidXRlcyA9IGNvbnRyb2xBdHRycy5nZXQoKS5nZXQoKTsKIAotICAgIGVs
c2UgaWYgKGJhY2tpbmdPYmplY3QtPmlzR3JvdXAoKSB8fCBiYWNraW5nT2JqZWN0LT5pc0xpc3RJ
dGVtKCkpCisgICAgZWxzZSBpZiAoYmFja2luZ09iamVjdC0+aXNHcm91cCgpIHx8IGJhY2tpbmdP
YmplY3QtPmlzTGlzdEl0ZW0oKSB8fCBiYWNraW5nT2JqZWN0LT5yb2xlVmFsdWUoKSA9PSBBY2Nl
c3NpYmlsaXR5Um9sZTo6RmlndXJlKQogICAgICAgICBvYmplY3RBdHRyaWJ1dGVzID0gZ3JvdXBB
dHRycy5nZXQoKS5nZXQoKTsKICAgICBlbHNlIGlmIChiYWNraW5nT2JqZWN0LT5pc1RhYkxpc3Qo
KSkKICAgICAgICAgb2JqZWN0QXR0cmlidXRlcyA9IHRhYkxpc3RBdHRycy5nZXQoKS5nZXQoKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0Fj
Y2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCmluZGV4IDIwOWRjNDcz
ZmQzNi4uZTA3NmQ2YzYzZjMxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnRNYWMubW0KQEAgLTE2Miw2ICsxNjIsNTIgQEAgc3RhdGljIGlkIGF0dHJpYnV0ZVZhbHVlKGlk
IGVsZW1lbnQsIE5TU3RyaW5nICphdHRyaWJ1dGUpCiAgICAgaWYgKFthdHRyaWJ1dGUgaXNFcXVh
bDpOU0FjY2Vzc2liaWxpdHlGb2N1c2VkVUlFbGVtZW50QXR0cmlidXRlXSAmJiBbZWxlbWVudCBy
ZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGFjY2Vzc2liaWxpdHlGb2N1c2VkVUlFbGVtZW50
KV0pCiAgICAgICAgIHJldHVybiBbZWxlbWVudCBhY2Nlc3NpYmlsaXR5Rm9jdXNlZFVJRWxlbWVu
dF07CiAKKyAgICAvLyBUaGVzZSBhcmUgaW50ZXJuYWwgQVBJcyB1c2VkIGJ5IERSVC9XS1RSOyB0
ZXN0cyBhcmUgYWxsb3dlZCB0byB1c2UgdGhlbSBidXQgd2UgZG9uJ3Qgd2FudCB0byBhZHZlcnRp
c2UgdGhlbS4KKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UmV0YWluUHRyPE5TQXJyYXk+PiBp
bnRlcm5hbEF0dHJpYnV0ZXMgPSBAWworICAgICAgICBAIkFYQVJJQVByZXNzZWRJc1ByZXNlbnQi
LAorICAgICAgICBAIkFYQVJJQVJvbGUiLAorICAgICAgICBAIkFYQXV0b2NvbXBsZXRlVmFsdWUi
LAorICAgICAgICBAIkFYQ2xpY2tQb2ludCIsCisgICAgICAgIEAiQVhDb250cm9sbGVyRm9yIiwK
KyAgICAgICAgQCJBWENvbnRyb2xsZXJzIiwKKyAgICAgICAgQCJBWERSVFNwZWVjaEF0dHJpYnV0
ZSIsCisgICAgICAgIEAiQVhEYXRlVGltZUNvbXBvbmVudHNUeXBlIiwKKyAgICAgICAgQCJBWERl
c2NyaWJlZEJ5IiwKKyAgICAgICAgQCJBWERlc2NyaXB0aW9uRm9yIiwKKyAgICAgICAgQCJBWERl
dGFpbHNGb3IiLAorICAgICAgICBAIkFYRXJyb3JNZXNzYWdlRm9yIiwKKyAgICAgICAgQCJBWEZs
b3dGcm9tIiwKKyAgICAgICAgQCJBWElzSW5DZWxsIiwKKyAgICAgICAgQCJBWElzSW5EZXNjcmlw
dGlvbkxpc3REZXRhaWwiLAorICAgICAgICBAIkFYSXNJbkRlc2NyaXB0aW9uTGlzdFRlcm0iLAor
ICAgICAgICBAIkFYSXNJbmRldGVybWluYXRlIiwKKyAgICAgICAgQCJBWElzTXVsdGlTZWxlY3Rh
YmxlIiwKKyAgICAgICAgQCJBWElzT25TY3JlZW4iLAorICAgICAgICBAIkFYTGFiZWxGb3IiLAor
ICAgICAgICBAIkFYTGFiZWxsZWRCeSIsCisgICAgICAgIEAiQVhMaW5lUmVjdHNBbmRUZXh0IiwK
KyAgICAgICAgQCJBWE93bmVycyIsCisgICAgICAgIEAiQVhTdHJpbmdWYWx1ZSIsCisgICAgICAg
IEAiQVhWYWx1ZUF1dG9maWxsVHlwZSIsCisKKyAgICAgICAgLy8gRklYTUU6IHRoZXNlIHNob3Vs
ZG4ndCBiZSBoZXJlLCBidXQgcmVtb3Zpbmcgb25lIG9mIHRoZXNlIGNhdXNlcyB0ZXN0cyB0byBm
YWlsLgorICAgICAgICBAIkFYQVJJQUN1cnJlbnQiLAorICAgICAgICBAIkFYQVJJQUxpdmUiLAor
ICAgICAgICBAIkFYRGVzY3JpcHRpb24iLAorICAgICAgICBAIkFYS2V5U2hvcnRjdXRzVmFsdWUi
LAorICAgICAgICBAIkFYT3JpZW50YXRpb24iLAorICAgICAgICBAIkFYUG9wdXBWYWx1ZSIsCisg
ICAgICAgIEAiQVhSZWxhdGl2ZUZyYW1lIiwKKyAgICAgICAgQCJBWFJlcXVpcmVkIiwKKyAgICAg
ICAgQCJBWFNvcnREaXJlY3Rpb24iLAorICAgICAgICBAIkFYVmFsdWUiLAorICAgICAgICBAIkFY
VmlzaWJsZUNoYXJhY3RlclJhbmdlIiwKKyAgICBdOworCisgICAgTlNBcnJheTxOU1N0cmluZyAq
PiAqc3VwcG9ydGVkQXR0cmlidXRlcyA9IFtlbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVO
YW1lc107CisgICAgaWYgKCFbc3VwcG9ydGVkQXR0cmlidXRlcyBjb250YWluc09iamVjdDphdHRy
aWJ1dGVdICYmICFbaW50ZXJuYWxBdHRyaWJ1dGVzLmdldCgpIGNvbnRhaW5zT2JqZWN0OmF0dHJp
YnV0ZV0gJiYgIVthdHRyaWJ1dGUgaXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eVJvbGVB
dHRyaWJ1dGVdKQorICAgICAgICByZXR1cm4gbmlsOworCiAgICAgcmV0dXJuIFtlbGVtZW50IGFj
Y2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTphdHRyaWJ1dGVdOwogfQogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9hcmlhLXByZXNzZWQtYnV0dG9uLWF0dHJpYnV0
ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1wcmVz
c2VkLWJ1dHRvbi1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAppbmRleCBiNmMyYjY1MzJjOWQuLmE0
NmY4MWQ4MTliOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvYXJp
YS1wcmVzc2VkLWJ1dHRvbi1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9hY2Nlc3NpYmlsaXR5L21hYy9hcmlhLXByZXNzZWQtYnV0dG9uLWF0dHJpYnV0ZXMtZXhwZWN0
ZWQudHh0CkBAIC0yLDM0ICsyLDM0IEBAIFRoaXMgdGVzdCBlbnN1cmVzIGEgcm9sZT1idXR0b24g
ZWxlbWVudCB3aXRoIGFyaWEtcHJlc3NlZCBoYXMgdGhlIHJpZ2h0IGF0dHJpYnV0CiAKICNidXR0
b24xOiBBWFJvbGU6IEFYQ2hlY2tCb3gKICNidXR0b24xOiBBWFN1YnJvbGU6IEFYVG9nZ2xlCi0j
YnV0dG9uMTogQVhWYWx1ZTogMQorI2J1dHRvbjE6IEFYVGl0bGU6IEZvbwogI2J1dHRvbjE6IEFY
QVJJQVByZXNzZWRJc1ByZXNlbnQ6IHRydWUKIAogI2J1dHRvbjI6IEFYUm9sZTogQVhDaGVja0Jv
eAogI2J1dHRvbjI6IEFYU3Vicm9sZTogQVhUb2dnbGUKLSNidXR0b24yOiBBWFZhbHVlOiAwCisj
YnV0dG9uMjogQVhUaXRsZTogQmFyCiAjYnV0dG9uMjogQVhBUklBUHJlc3NlZElzUHJlc2VudDog
dHJ1ZQogCiAjYnV0dG9uLXdpdGhvdXQtaW5pdGlhbC1wcmVzczogQVhSb2xlOiBBWEJ1dHRvbgog
I2J1dHRvbi13aXRob3V0LWluaXRpYWwtcHJlc3M6IEFYU3Vicm9sZToKLSNidXR0b24td2l0aG91
dC1pbml0aWFsLXByZXNzOiBBWFZhbHVlOgorI2J1dHRvbi13aXRob3V0LWluaXRpYWwtcHJlc3M6
IEFYVGl0bGU6IEJhegogI2J1dHRvbi13aXRob3V0LWluaXRpYWwtcHJlc3M6IEFYQVJJQVByZXNz
ZWRJc1ByZXNlbnQ6IGZhbHNlCiAKIFRvZ2dsaW5nIGFyaWEtcHJlc3NlZCBzdGF0ZSBvbiBib3Ro
IGJ1dHRvbnMuCiAKICNidXR0b24xOiBBWFJvbGU6IEFYQ2hlY2tCb3gKICNidXR0b24xOiBBWFN1
YnJvbGU6IEFYVG9nZ2xlCi0jYnV0dG9uMTogQVhWYWx1ZTogMAorI2J1dHRvbjE6IEFYVGl0bGU6
IEZvbwogI2J1dHRvbjE6IEFYQVJJQVByZXNzZWRJc1ByZXNlbnQ6IHRydWUKIAogI2J1dHRvbjI6
IEFYUm9sZTogQVhDaGVja0JveAogI2J1dHRvbjI6IEFYU3Vicm9sZTogQVhUb2dnbGUKLSNidXR0
b24yOiBBWFZhbHVlOiAxCisjYnV0dG9uMjogQVhUaXRsZTogQmFyCiAjYnV0dG9uMjogQVhBUklB
UHJlc3NlZElzUHJlc2VudDogdHJ1ZQogCiAjYnV0dG9uLXdpdGhvdXQtaW5pdGlhbC1wcmVzczog
QVhSb2xlOiBBWEJ1dHRvbgogI2J1dHRvbi13aXRob3V0LWluaXRpYWwtcHJlc3M6IEFYU3Vicm9s
ZToKLSNidXR0b24td2l0aG91dC1pbml0aWFsLXByZXNzOiBBWFZhbHVlOgorI2J1dHRvbi13aXRo
b3V0LWluaXRpYWwtcHJlc3M6IEFYVGl0bGU6IEJhegogI2J1dHRvbi13aXRob3V0LWluaXRpYWwt
cHJlc3M6IEFYQVJJQVByZXNzZWRJc1ByZXNlbnQ6IHRydWUKIAogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9hcmlhLXByZXNzZWQtYnV0dG9uLWF0dHJpYnV0ZXMu
aHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2FyaWEtcHJlc3NlZC1idXR0b24t
YXR0cmlidXRlcy5odG1sCmluZGV4IDBlODQ3MTUxMDcxYi4uMzQ5MGIwZTAwM2YyIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9hcmlhLXByZXNzZWQtYnV0dG9uLWF0
dHJpYnV0ZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9hcmlhLXBy
ZXNzZWQtYnV0dG9uLWF0dHJpYnV0ZXMuaHRtbApAQCAtMTgsNyArMTgsNyBAQAogICAgICAgICBj
b25zdCBlbGVtZW50ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRC
eUlkKGlkKTsKICAgICAgICAgdGVzdE91dHB1dCArPSBgIyR7aWR9OiAke2VsZW1lbnQucm9sZX1c
bmA7CiAgICAgICAgIHRlc3RPdXRwdXQgKz0gYCMke2lkfTogJHtlbGVtZW50LnN1YnJvbGV9XG5g
OwotICAgICAgICB0ZXN0T3V0cHV0ICs9IGAjJHtpZH06ICR7ZWxlbWVudC5zdHJpbmdWYWx1ZX1c
bmA7CisgICAgICAgIHRlc3RPdXRwdXQgKz0gYCMke2lkfTogJHtlbGVtZW50LnRpdGxlfVxuYDsK
ICAgICAgICAgdGVzdE91dHB1dCArPSBgIyR7aWR9OiBBWEFSSUFQcmVzc2VkSXNQcmVzZW50OiAk
e2VsZW1lbnQuYm9vbEF0dHJpYnV0ZVZhbHVlKCJBWEFSSUFQcmVzc2VkSXNQcmVzZW50Iil9XG5c
bmA7CiAgICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9h
cmlhLXRyZWUtd2l0aC1wcmVzZW50YXRpb24tcm9sZS5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9tYWMvYXJpYS10cmVlLXdpdGgtcHJlc2VudGF0aW9uLXJvbGUuaHRtbAppbmRleCBj
YzM3NjEwMjEyNDUuLjBjNTYzZGVmYjllNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9tYWMvYXJpYS10cmVlLXdpdGgtcHJlc2VudGF0aW9uLXJvbGUuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9hcmlhLXRyZWUtd2l0aC1wcmVzZW50YXRpb24t
cm9sZS5odG1sCkBAIC0zMyw3ICszMyw3IEBACiAgICAgfQogICAgIAogICAgIGZ1bmN0aW9uIGR1
bXBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW4oZWxlbWVudCwgbGV2ZWwpIHsKLSAgICAgICAgaWYgKGVs
ZW1lbnQuc3RyaW5nVmFsdWUuaW5kZXhPZignRW5kIG9mIHRlc3QnKSA+PSAwKQorICAgICAgICBp
ZiAoZWxlbWVudC5zdHJpbmdWYWx1ZSAmJiBlbGVtZW50LnN0cmluZ1ZhbHVlLmluZGV4T2YoJ0Vu
ZCBvZiB0ZXN0JykgPj0gMCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICB2
YXIgaW5kZW50ID0gIiI7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21h
Yy9ib3VuZHMtZm9yLXJhbmdlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxp
dHkvbWFjL2JvdW5kcy1mb3ItcmFuZ2UtZXhwZWN0ZWQudHh0CmluZGV4IDdiZTg5Y2FjZTg5Ni4u
ZTYwYTNlYzMzMWZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9i
b3VuZHMtZm9yLXJhbmdlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L21hYy9ib3VuZHMtZm9yLXJhbmdlLWV4cGVjdGVkLnR4dApAQCAtMzAsNiArMzAsNyBAQCBB
WEZvY3VzYWJsZUFuY2VzdG9yOiA8QVhTdGF0aWNUZXh0PgogQVhFZGl0YWJsZUFuY2VzdG9yOiAo
bnVsbCkKIEFYSGlnaGVzdEVkaXRhYmxlQW5jZXN0b3I6IChudWxsKQogQVhJbnRlcnNlY3Rpb25X
aXRoU2VsZWN0aW9uUmFuZ2U6IChudWxsKQorQVhWaXNpYmxlQ2hhcmFjdGVyUmFuZ2U6IE5TUmFu
Z2U6IHswLCAxNjJ9CiBBWEVsZW1lbnRCdXN5OiAwCiBBWFBhdGg6IChudWxsKQogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9pbnRlcm5hbC1saW5rLWFuY2hvcnMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvaW50ZXJuYWwtbGlu
ay1hbmNob3JzLWV4cGVjdGVkLnR4dAppbmRleCA2ZmU1MmRiZWNiZTkuLjcxNTkzZTMyZDc5MyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvaW50ZXJuYWwtbGluay1h
bmNob3JzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9p
bnRlcm5hbC1saW5rLWFuY2hvcnMtZXhwZWN0ZWQudHh0CkBAIC0zMSw2ICszMSw3IEBAIEFYRm9j
dXNhYmxlQW5jZXN0b3I6IDxBWFN0YXRpY1RleHQ+CiBBWEVkaXRhYmxlQW5jZXN0b3I6IChudWxs
KQogQVhIaWdoZXN0RWRpdGFibGVBbmNlc3RvcjogKG51bGwpCiBBWEludGVyc2VjdGlvbldpdGhT
ZWxlY3Rpb25SYW5nZTogKG51bGwpCitBWFZpc2libGVDaGFyYWN0ZXJSYW5nZTogTlNSYW5nZTog
ezAsIDl9CiBBWEVsZW1lbnRCdXN5OiAwCiBBWFBhdGg6IChudWxsKQogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3RhYmxlLXdpdGgtcnVsZXMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS90YWJsZS13aXRoLXJ1bGVzLWV4cGVjdGVkLnR4dApp
bmRleCA5ZTlmOGFlYmQ1NTYuLmIzYzNlYTg1ZDFkMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS90YWJsZS13aXRoLXJ1bGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L3RhYmxlLXdpdGgtcnVsZXMtZXhwZWN0ZWQudHh0CkBAIC00OCw2
ICs0OCw3IEBAIEFYUm93Q291bnQ6IDEKIEFYQVJJQUNvbHVtbkNvdW50OiAwCiBBWEFSSUFSb3dD
b3VudDogMAogQVhTZWxlY3RlZENlbGxzOiA8YXJyYXkgb2Ygc2l6ZSAwPgorQVhUYWJsZUxldmVs
OiAxCiBBWEVsZW1lbnRCdXN5OiAwCiAKIApAQCAtOTQsNiArOTUsNyBAQCBBWFJvd0NvdW50OiAx
CiBBWEFSSUFDb2x1bW5Db3VudDogMAogQVhBUklBUm93Q291bnQ6IDAKIEFYU2VsZWN0ZWRDZWxs
czogPGFycmF5IG9mIHNpemUgMD4KK0FYVGFibGVMZXZlbDogMQogQVhFbGVtZW50QnVzeTogMAog
CiAKQEAgLTE0MCw2ICsxNDIsNyBAQCBBWFJvd0NvdW50OiAxCiBBWEFSSUFDb2x1bW5Db3VudDog
MAogQVhBUklBUm93Q291bnQ6IDAKIEFYU2VsZWN0ZWRDZWxsczogPGFycmF5IG9mIHNpemUgMD4K
K0FYVGFibGVMZXZlbDogMQogQVhFbGVtZW50QnVzeTogMAogCiAKQEAgLTE3Myw3ICsxNzYsNyBA
QCBBWERPTUNsYXNzTGlzdDogPGFycmF5IG9mIHNpemUgMD4KIEFYRm9jdXNhYmxlQW5jZXN0b3I6
IDxBWEdyb3VwPgogQVhFZGl0YWJsZUFuY2VzdG9yOiAobnVsbCkKIEFYSGlnaGVzdEVkaXRhYmxl
QW5jZXN0b3I6IChudWxsKQotQVhUaXRsZVVJRWxlbWVudDogKG51bGwpCitBWElubGluZVRleHQ6
IDAKIEFYRWxlbWVudEJ1c3k6IDAKIAogCkBAIC0yMDcsNyArMjEwLDcgQEAgQVhET01DbGFzc0xp
c3Q6IDxhcnJheSBvZiBzaXplIDA+CiBBWEZvY3VzYWJsZUFuY2VzdG9yOiA8QVhHcm91cD4KIEFY
RWRpdGFibGVBbmNlc3RvcjogKG51bGwpCiBBWEhpZ2hlc3RFZGl0YWJsZUFuY2VzdG9yOiAobnVs
bCkKLUFYVGl0bGVVSUVsZW1lbnQ6IChudWxsKQorQVhJbmxpbmVUZXh0OiAwCiBBWEVsZW1lbnRC
dXN5OiAwCiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2li
aWxpdHkvbGlzdHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vz
c2liaWxpdHkvbGlzdHMtZXhwZWN0ZWQudHh0CmluZGV4IDdkM2NjM2YyYTAyNy4uZmQ0MWIwMWEz
ZTA0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9s
aXN0cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2li
aWxpdHkvbGlzdHMtZXhwZWN0ZWQudHh0CkBAIC00NCw3ICs0NCw2IEBAIEFYSGlnaGVzdEVkaXRh
YmxlQW5jZXN0b3I6IChudWxsKQogQVhTZWxlY3RlZENoaWxkcmVuOiA8YXJyYXkgb2Ygc2l6ZSAw
PgogQVhWaXNpYmxlQ2hpbGRyZW46IDxhcnJheSBvZiBzaXplIDI+CiBBWE9yaWVudGF0aW9uOiBB
WFZlcnRpY2FsT3JpZW50YXRpb24KLUFYVGl0bGVVSUVsZW1lbnQ6IChudWxsKQogQVhFbGVtZW50
QnVzeTogMAogCiAtLS0tLS0tLS0tLS0KQEAgLTgxLDcgKzgwLDYgQEAgQVhIaWdoZXN0RWRpdGFi
bGVBbmNlc3RvcjogKG51bGwpCiBBWFNlbGVjdGVkQ2hpbGRyZW46IDxhcnJheSBvZiBzaXplIDA+
CiBBWFZpc2libGVDaGlsZHJlbjogPGFycmF5IG9mIHNpemUgMj4KIEFYT3JpZW50YXRpb246IEFY
VmVydGljYWxPcmllbnRhdGlvbgotQVhUaXRsZVVJRWxlbWVudDogKG51bGwpCiBBWEVsZW1lbnRC
dXN5OiAwCiAKIC0tLS0tLS0tLS0tLQpAQCAtMTE4LDcgKzExNiw2IEBAIEFYSGlnaGVzdEVkaXRh
YmxlQW5jZXN0b3I6IChudWxsKQogQVhTZWxlY3RlZENoaWxkcmVuOiAobnVsbCkKIEFYVmlzaWJs
ZUNoaWxkcmVuOiA8YXJyYXkgb2Ygc2l6ZSA1PgogQVhPcmllbnRhdGlvbjogQVhWZXJ0aWNhbE9y
aWVudGF0aW9uCi1BWFRpdGxlVUlFbGVtZW50OiAobnVsbCkKIEFYRWxlbWVudEJ1c3k6IDAKIAog
LS0tLS0tLS0tLS0tCkBAIC0xNTQsNyArMTUxLDcgQEAgQVhET01DbGFzc0xpc3Q6IDxhcnJheSBv
ZiBzaXplIDA+CiBBWEZvY3VzYWJsZUFuY2VzdG9yOiA8QVhHcm91cD4KIEFYRWRpdGFibGVBbmNl
c3RvcjogKG51bGwpCiBBWEhpZ2hlc3RFZGl0YWJsZUFuY2VzdG9yOiAobnVsbCkKLUFYVGl0bGVV
SUVsZW1lbnQ6IChudWxsKQorQVhJbmxpbmVUZXh0OiAwCiBBWEVsZW1lbnRCdXN5OiAwCiAKIC0t
LS0tLS0tLS0tLQpAQCAtMTg4LDcgKzE4NSw3IEBAIEFYRE9NQ2xhc3NMaXN0OiA8YXJyYXkgb2Yg
c2l6ZSAwPgogQVhGb2N1c2FibGVBbmNlc3RvcjogPEFYR3JvdXA+CiBBWEVkaXRhYmxlQW5jZXN0
b3I6IChudWxsKQogQVhIaWdoZXN0RWRpdGFibGVBbmNlc3RvcjogKG51bGwpCi1BWFRpdGxlVUlF
bGVtZW50OiAobnVsbCkKK0FYSW5saW5lVGV4dDogMAogQVhFbGVtZW50QnVzeTogMAogCiAtLS0t
LS0tLS0tLS0KQEAgLTIyNCw3ICsyMjEsNyBAQCBBWERPTUNsYXNzTGlzdDogPGFycmF5IG9mIHNp
emUgMD4KIEFYRm9jdXNhYmxlQW5jZXN0b3I6IDxBWEdyb3VwPgogQVhFZGl0YWJsZUFuY2VzdG9y
OiAobnVsbCkKIEFYSGlnaGVzdEVkaXRhYmxlQW5jZXN0b3I6IChudWxsKQotQVhUaXRsZVVJRWxl
bWVudDogKG51bGwpCitBWElubGluZVRleHQ6IDAKIEFYRWxlbWVudEJ1c3k6IDAKIAogLS0tLS0t
LS0tLS0tCkBAIC0yNTgsNyArMjU1LDcgQEAgQVhET01DbGFzc0xpc3Q6IDxhcnJheSBvZiBzaXpl
IDA+CiBBWEZvY3VzYWJsZUFuY2VzdG9yOiA8QVhHcm91cD4KIEFYRWRpdGFibGVBbmNlc3Rvcjog
KG51bGwpCiBBWEhpZ2hlc3RFZGl0YWJsZUFuY2VzdG9yOiAobnVsbCkKLUFYVGl0bGVVSUVsZW1l
bnQ6IChudWxsKQorQVhJbmxpbmVUZXh0OiAwCiBBWEVsZW1lbnRCdXN5OiAwCiAKIC0tLS0tLS0t
LS0tLQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>470648</attachid>
            <date>2024-03-28 14:44:53 -0700</date>
            <delta_ts>2024-03-28 20:51:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-271674-20240328144452.patch</filename>
            <type>text/plain</type>
            <size>23517</size>
            <attacher name="Dominic Mazzoni">dm_mazzoni</attacher>
            
              <data encoding="base64">RnJvbSBmYWI0ZTE4MTM1MGQwNzc2YzkxNWEzNTljYmNjYmE2NjE1ZGQzZjc0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb21pbmljIE1henpvbmkgPGRtX21henpvbmlAYXBwbGUuY29t
PgpEYXRlOiBUdWUsIDI2IE1hciAyMDI0IDA5OjIzOjAxIC0wNzAwClN1YmplY3Q6IFtQQVRDSF0g
QVg6IE1hYyBsYXlvdXQgdGVzdHMgc2hvdWxkbid0IGFjY2VzcyBhdHRyaWJ1dGVzIHRoYXQgYXJl
bid0CiBleHBvc2VkIGZvciB0aGF0IGVsZW1lbnQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTI3MTY3NAogcmRhcjovL3Byb2JsZW0vMTI1MzczNjk0CgpSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KCkNoZWNrcyBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlTmFtZXMgYmVm
b3JlIGNhbGxpbmcgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlIGluCkFjY2Vzc2liaWxpdHlV
SUVsZW1lbnRNYWMuIFJldHVybnMgbmlsIGlmIHF1ZXJ5aW5nIGZvciBhbiBhdHRyaWJ1dGUgdGhh
dCBpc24ndApmb3VuZC4KClRoYXQgbGVkIHRvIGZpbmRpbmcgbG90cyBvZiBleGFtcGxlcyBvZiBh
dHRyaWJ1dGVzIHRoYXQgb3VnaHQgdG8gYmUgZXhwb3NlZAppbiBhY2Nlc3NpYmlsaXR5QXR0cmli
dXRlTmFtZXMgYnV0IHdlcmVuJ3Qgbm93LgoKSW4gdGhpcyBwYXRjaCwgSSBhdHRlbXB0ZWQgdG8g
Zml4IHRoZSBvbmVzIHRoYXQgaGF2ZSBhIGNsZWFyLCBzdHJhaWdodGZvcndhcmQKZml4LCBhbmQg
dGhlbiBhZGRlZCBhbiBleGNlcHRpb24gZm9yIGFueXRoaW5nIHRoYXQgd2Fzbid0IHN0cmFpZ2h0
Zm9yd2FyZC4KClRoZSBpZGVhIGlzIHRvIGZvbGxvdyB1cCB1bnRpbCBhbGwgb2YgdGhlIGV4Y2Vw
dGlvbnMgYXJlIHJlbW92ZWQuCgoqIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbGlzdHMtZXhw
ZWN0ZWQudHh0OiBSZW1vdmVkLgoqIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2FyaWEt
cHJlc3NlZC1idXR0b24tYXR0cmlidXRlcy1leHBlY3RlZC50eHQ6CiogTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9tYWMvYXJpYS1wcmVzc2VkLWJ1dHRvbi1hdHRyaWJ1dGVzLmh0bWw6CiogTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS10cmVlLXdpdGgtcHJlc2VudGF0aW9uLXJv
bGUuaHRtbDoKKiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9ib3VuZHMtZm9yLXJhbmdl
LWV4cGVjdGVkLnR4dDoKKiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9pbnRlcm5hbC1s
aW5rLWFuY2hvcnMtZXhwZWN0ZWQudHh0OgoqIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGFi
bGUtd2l0aC1ydWxlcy1leHBlY3RlZC50eHQ6CiogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Fj
Y2Vzc2liaWxpdHkvbGlzdHMtZXhwZWN0ZWQudHh0OgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2Jq
ZWN0OjpzdXBwb3J0c0V4cGFuZGVkIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbToKKC1bV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXIgX2FkZGl0aW9uYWxBY2Nlc3NpYmlsaXR5QXR0cmlidXRlTmFt
ZXM6XSk6CigtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIEFMTE9XX0RFUFJFQ0FURURf
SU1QTEVNRU5UQVRJT05TX0VORF0pOgoqIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW06CihXVFI6OmF0dHJpYnV0ZVZh
bHVlKToKLS0tCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCAgICAg
fCAgMyArCiAuLi4vbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tICAgfCA1
OSArKysrKysrKysrKy0tLS0tLS0tCiAuLi4vbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMu
bW0gICAgICAgICAgfCA0NiArKysrKysrKysrKysrKysKIC4uLnJpYS1wcmVzc2VkLWJ1dHRvbi1h
dHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCB8IDEyICsrLS0KIC4uLi9tYWMvYXJpYS1wcmVzc2VkLWJ1
dHRvbi1hdHRyaWJ1dGVzLmh0bWwgICB8ICAyICstCiAuLi4vbWFjL2FyaWEtdHJlZS13aXRoLXBy
ZXNlbnRhdGlvbi1yb2xlLmh0bWwgfCAgMiArLQogLi4uL21hYy9ib3VuZHMtZm9yLXJhbmdlLWV4
cGVjdGVkLnR4dCAgICAgICAgIHwgIDEgKwogLi4uL21hYy9pbnRlcm5hbC1saW5rLWFuY2hvcnMt
ZXhwZWN0ZWQudHh0ICAgIHwgIDEgKwogLi4uL3RhYmxlLXdpdGgtcnVsZXMtZXhwZWN0ZWQudHh0
ICAgICAgICAgICAgIHwgMTAgKysrLQogLi4uL21hYy9hY2Nlc3NpYmlsaXR5L2xpc3RzLWV4cGVj
dGVkLnR4dCAgICAgIHwgMTEgKystLQogMTAgZmlsZXMgY2hhbmdlZCwgMTA1IGluc2VydGlvbnMo
KyksIDQyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCmluZGV4IGU5ODkzNGY1NWExOC4uZDYxMTU4MDZi
ZDcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5jcHAKQEAgLTM0NDksNiArMzQ0OSw5IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU9i
amVjdDo6c3VwcG9ydHNFeHBhbmRlZCgpIGNvbnN0CiAgICAgaWYgKHBvcG92ZXJUYXJnZXRFbGVt
ZW50KCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCisgICAgaWYgKGlzPEhUTUxEZXRhaWxzRWxl
bWVudD4obm9kZSgpKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKICAgICBzd2l0Y2ggKHJvbGVW
YWx1ZSgpKSB7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGV0YWlsczoKICAgICAgICAg
cmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21h
Yy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCmluZGV4
IDBkYzAwNjA4N2ZlNi4uMjk4MWZiNDU3NjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlck1hYy5tbQpAQCAtODIzLDcgKzgyMyw4IEBAIC0gKE5TQXJyYXkqKV9hZGRpdGlvbmFs
QWNjZXNzaWJpbGl0eUF0dHJpYnV0ZU5hbWVzOihjb25zdCBSZWZQdHI8QVhDb3JlT2JqZWN0PiYp
CiAgICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzU2Nyb2xsYmFyKCkKICAgICAgICAgfHwgYmFja2lu
Z09iamVjdC0+aXNSYWRpb0dyb3VwKCkKICAgICAgICAgfHwgYmFja2luZ09iamVjdC0+aXNTcGxp
dHRlcigpCi0gICAgICAgIHx8IGJhY2tpbmdPYmplY3QtPmlzVG9vbGJhcigpKQorICAgICAgICB8
fCBiYWNraW5nT2JqZWN0LT5pc1Rvb2xiYXIoKQorICAgICAgICB8fCBiYWNraW5nT2JqZWN0LT5y
b2xlVmFsdWUoKSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6SG9yaXpvbnRhbFJ1bGUpCiAgICAgICAg
IFthZGRpdGlvbmFsIGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlPcmllbnRhdGlvbkF0dHJpYnV0
ZV07CiAKICAgICBpZiAoYmFja2luZ09iamVjdC0+c3VwcG9ydHNEcmFnZ2luZygpKQpAQCAtOTA1
LDYgKzkwNiwyNCBAQCAtIChOU0FycmF5KilfYWRkaXRpb25hbEFjY2Vzc2liaWxpdHlBdHRyaWJ1
dGVOYW1lczooY29uc3QgUmVmUHRyPEFYQ29yZU9iamVjdD4mKQogICAgIGlmIChiYWNraW5nT2Jq
ZWN0LT5zdXBwb3J0c0V4cGFuZGVkVGV4dFZhbHVlKCkpCiAgICAgICAgIFthZGRpdGlvbmFsIGFk
ZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlFeHBhbmRlZFRleHRWYWx1ZUF0dHJpYnV0ZV07CiAKKyAg
ICBpZiAoIWJhY2tpbmdPYmplY3QtPmJyYWlsbGVMYWJlbCgpLmlzRW1wdHkoKSkKKyAgICAgICAg
W2FkZGl0aW9uYWwgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eUJyYWlsbGVMYWJlbEF0dHJpYnV0
ZV07CisKKyAgICBpZiAoIWJhY2tpbmdPYmplY3QtPmJyYWlsbGVSb2xlRGVzY3JpcHRpb24oKS5p
c0VtcHR5KCkpCisgICAgICAgIFthZGRpdGlvbmFsIGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlC
cmFpbGxlUm9sZURlc2NyaXB0aW9uQXR0cmlidXRlXTsKKworICAgIGlmIChiYWNraW5nT2JqZWN0
LT5kZXRhaWxlZEJ5T2JqZWN0cygpLnNpemUoKSkKKyAgICAgICAgW2FkZGl0aW9uYWwgYWRkT2Jq
ZWN0OkAiQVhEZXRhaWxzRWxlbWVudHMiXTsKKworICAgIGlmIChiYWNraW5nT2JqZWN0LT5lcnJv
ck1lc3NhZ2VPYmplY3RzKCkuc2l6ZSgpKQorICAgICAgICBbYWRkaXRpb25hbCBhZGRPYmplY3Q6
QCJBWEVycm9yTWVzc2FnZUVsZW1lbnRzIl07CisKKyAgICBpZiAoIWJhY2tpbmdPYmplY3QtPmtl
eVNob3J0Y3V0cygpLmlzRW1wdHkoKSkKKyAgICAgICAgW2FkZGl0aW9uYWwgYWRkT2JqZWN0Ok5T
QWNjZXNzaWJpbGl0eUtleVNob3J0Y3V0c0F0dHJpYnV0ZV07CisKKyAgICBpZiAoYmFja2luZ09i
amVjdC0+dGl0bGVVSUVsZW1lbnQoKSkKKyAgICAgICAgW2FkZGl0aW9uYWwgYWRkT2JqZWN0Ok5T
QWNjZXNzaWJpbGl0eVRpdGxlVUlFbGVtZW50QXR0cmlidXRlXTsKKwogI2lmIEVOQUJMRShBQ0NF
U1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpCiAgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmlzSXNvbGF0
ZWRUcmVlRW5hYmxlZCgpKQogICAgICAgICBbYWRkaXRpb25hbCBhZGRPYmplY3Q6TlNBY2Nlc3Np
YmlsaXR5UmVsYXRpdmVGcmFtZUF0dHJpYnV0ZV07CkBAIC05NzksMTUgKzk5OCw2IEBAIEFMTE9X
X0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogICAgICAgICBbdGVtcEFycmF5IGFkZE9i
amVjdDpOU0FjY2Vzc2liaWxpdHlMaW5rUmVsYXRpb25zaGlwVHlwZUF0dHJpYnV0ZV07CiAgICAg
ICAgIHJldHVybiB0ZW1wQXJyYXk7CiAgICAgfSgpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxSZXRhaW5QdHI8TlNBcnJheT4+IGNvbW1vbk1lbnVBdHRycyA9IEBbCi0gICAgICAgIE5TQWNj
ZXNzaWJpbGl0eVJvbGVBdHRyaWJ1dGUsCi0gICAgICAgIE5TQWNjZXNzaWJpbGl0eVJvbGVEZXNj
cmlwdGlvbkF0dHJpYnV0ZSwKLSAgICAgICAgTlNBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5BdHRyaWJ1
dGUsCi0gICAgICAgIE5TQWNjZXNzaWJpbGl0eVBhcmVudEF0dHJpYnV0ZSwKLSAgICAgICAgTlNB
Y2Nlc3NpYmlsaXR5RW5hYmxlZEF0dHJpYnV0ZSwKLSAgICAgICAgTlNBY2Nlc3NpYmlsaXR5UG9z
aXRpb25BdHRyaWJ1dGUsCi0gICAgICAgIE5TQWNjZXNzaWJpbGl0eVNpemVBdHRyaWJ1dGUsCi0g
ICAgXTsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQgd2ViQXJlYUF0dHJzID0gW10gewogICAg
ICAgICBhdXRvIHRlbXBBcnJheSA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5p
dFdpdGhBcnJheTphdHRyaWJ1dGVzLmdldCgpLmdldCgpXSk7CiAgICAgICAgIC8vIFdlYkFyZWFz
IHNob3VsZCBub3QgZXhwb3NlIEFYU3Vicm9sZS4KQEAgLTEwMTIsMTEgKzEwMjIsMTEgQEAgQUxM
T1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAgICAgICAgIFt0ZW1wQXJyYXkgYWRk
T2JqZWN0Ok5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dFJhbmdlQXR0cmlidXRlXTsKICAgICAg
ICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5VmlzaWJsZUNoYXJhY3RlclJh
bmdlQXR0cmlidXRlXTsKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmls
aXR5SW5zZXJ0aW9uUG9pbnRMaW5lTnVtYmVyQXR0cmlidXRlXTsKLSAgICAgICAgW3RlbXBBcnJh
eSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5VGl0bGVVSUVsZW1lbnRBdHRyaWJ1dGVdOwogICAg
ICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlBY2Nlc3NLZXlBdHRyaWJ1
dGVdOwogICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlSZXF1aXJl
ZEF0dHJpYnV0ZV07CiAgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0
eUludmFsaWRBdHRyaWJ1dGVdOwogICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vz
c2liaWxpdHlQbGFjZWhvbGRlclZhbHVlQXR0cmlidXRlXTsKKyAgICAgICAgW3RlbXBBcnJheSBh
ZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5VmFsdWVBdXRvZmlsbEF2YWlsYWJsZUF0dHJpYnV0ZV07
CiAgICAgICAgIHJldHVybiB0ZW1wQXJyYXk7CiAgICAgfSgpOwogICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZCBsaXN0QXR0cnMgPSBbXSB7CkBAIC0xMDI0LDcgKzEwMzQsNiBAQCBBTExPV19ERVBS
RUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6
TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDaGlsZHJlbkF0dHJpYnV0ZV07CiAgICAgICAgIFt0ZW1w
QXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eVZpc2libGVDaGlsZHJlbkF0dHJpYnV0ZV07
CiAgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eU9yaWVudGF0aW9u
QXR0cmlidXRlXTsKLSAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5
VGl0bGVVSUVsZW1lbnRBdHRyaWJ1dGVdOwogICAgICAgICByZXR1cm4gdGVtcEFycmF5OwogICAg
IH0oKTsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQgbGlzdEJveEF0dHJzID0gW10gewpAQCAt
MTA0MSwyNSArMTA1MCwyMiBAQCBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQK
ICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5TWF4VmFsdWVBdHRy
aWJ1dGVdOwogICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlPcmll
bnRhdGlvbkF0dHJpYnV0ZV07CiAgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNz
aWJpbGl0eVZhbHVlRGVzY3JpcHRpb25BdHRyaWJ1dGVdOwotICAgICAgICBbdGVtcEFycmF5IGFk
ZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlUaXRsZVVJRWxlbWVudEF0dHJpYnV0ZV07CiAgICAgICAg
IHJldHVybiB0ZW1wQXJyYXk7CiAgICAgfSgpOwogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZCBt
ZW51QmFyQXR0cnMgPSBbXSB7Ci0gICAgICAgIGF1dG8gdGVtcEFycmF5ID0gYWRvcHROUyhbW05T
TXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aEFycmF5OmNvbW1vbk1lbnVBdHRycy5nZXQoKS5n
ZXQoKV0pOworICAgICAgICBhdXRvIHRlbXBBcnJheSA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJh
eSBhbGxvY10gaW5pdFdpdGhBcnJheTphdHRyaWJ1dGVzLmdldCgpLmdldCgpXSk7CiAgICAgICAg
IFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkQ2hpbGRyZW5BdHRy
aWJ1dGVdOwotICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlUaXRs
ZVVJRWxlbWVudEF0dHJpYnV0ZV07CiAgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNj
ZXNzaWJpbGl0eU9yaWVudGF0aW9uQXR0cmlidXRlXTsKICAgICAgICAgcmV0dXJuIHRlbXBBcnJh
eTsKICAgICB9KCk7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkIG1lbnVBdHRycyA9IFtdIHsK
LSAgICAgICAgYXV0byB0ZW1wQXJyYXkgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2Nd
IGluaXRXaXRoQXJyYXk6Y29tbW9uTWVudUF0dHJzLmdldCgpLmdldCgpXSk7CisgICAgICAgIGF1
dG8gdGVtcEFycmF5ID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aEFy
cmF5OmF0dHJpYnV0ZXMuZ2V0KCkuZ2V0KCldKTsKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmpl
Y3Q6TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDaGlsZHJlbkF0dHJpYnV0ZV07Ci0gICAgICAgIFt0
ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eVRpdGxlVUlFbGVtZW50QXR0cmlidXRl
XTsKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5T3JpZW50YXRp
b25BdHRyaWJ1dGVdOwogICAgICAgICByZXR1cm4gdGVtcEFycmF5OwogICAgIH0oKTsKICAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQgbWVudUl0ZW1BdHRycyA9IFtdIHsKLSAgICAgICAgYXV0byB0
ZW1wQXJyYXkgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoQXJyYXk6
Y29tbW9uTWVudUF0dHJzLmdldCgpLmdldCgpXSk7CisgICAgICAgIGF1dG8gdGVtcEFycmF5ID0g
YWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aEFycmF5OmF0dHJpYnV0ZXMu
Z2V0KCkuZ2V0KCldKTsKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmls
aXR5VGl0bGVBdHRyaWJ1dGVdOwogICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vz
c2liaWxpdHlEZXNjcmlwdGlvbkF0dHJpYnV0ZV07CiAgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2Jq
ZWN0Ok5TQWNjZXNzaWJpbGl0eUhlbHBBdHRyaWJ1dGVdOwpAQCAtMTA4OCw3ICsxMDk0LDYgQEAg
QUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAgICAgICAgIE5TQWNjZXNzaWJp
bGl0eUNoaWxkcmVuQXR0cmlidXRlLAogICAgIF07CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PFJldGFpblB0cjxOU0FycmF5Pj4gc2hhcmVkQ29udHJvbEF0dHJzID0gQFsKLSAgICAgICAgTlNB
Y2Nlc3NpYmlsaXR5VGl0bGVVSUVsZW1lbnRBdHRyaWJ1dGUsCiAgICAgICAgIE5TQWNjZXNzaWJp
bGl0eUFjY2Vzc0tleUF0dHJpYnV0ZSwKICAgICAgICAgTlNBY2Nlc3NpYmlsaXR5UmVxdWlyZWRB
dHRyaWJ1dGUsCiAgICAgICAgIE5TQWNjZXNzaWJpbGl0eUludmFsaWRBdHRyaWJ1dGUsCkBAIC0x
MTA3LDggKzExMTIsOCBAQCBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQKICAg
ICAgICAgYXV0byB0ZW1wQXJyYXkgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGlu
aXRXaXRoQXJyYXk6YXR0cmlidXRlcy5nZXQoKS5nZXQoKV0pOwogICAgICAgICAvLyBCdXR0b25z
IHNob3VsZCBub3QgZXhwb3NlIEFYVmFsdWUuCiAgICAgICAgIFt0ZW1wQXJyYXkgcmVtb3ZlT2Jq
ZWN0Ok5TQWNjZXNzaWJpbGl0eVZhbHVlQXR0cmlidXRlXTsKLSAgICAgICAgW3RlbXBBcnJheSBh
ZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5VGl0bGVVSUVsZW1lbnRBdHRyaWJ1dGVdOwogICAgICAg
ICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlBY2Nlc3NLZXlBdHRyaWJ1dGVd
OworICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlJbnZhbGlkQXR0
cmlidXRlXTsKICAgICAgICAgcmV0dXJuIHRlbXBBcnJheTsKICAgICB9KCk7CiAgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkIGNvbWJvQm94QXR0cnMgPSBbXSB7CkBAIC0xMTM3LDYgKzExNDIsOCBA
QCBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQKICAgICAgICAgW3RlbXBBcnJh
eSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5QVJJQUNvbHVtbkNvdW50QXR0cmlidXRlXTsKICAg
ICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5QVJJQVJvd0NvdW50QXR0
cmlidXRlXTsKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5U2Vs
ZWN0ZWRDZWxsc0F0dHJpYnV0ZV07CisgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNj
ZXNzaWJpbGl0eVNlbGVjdGVkQ2hpbGRyZW5BdHRyaWJ1dGVdOworICAgICAgICBbdGVtcEFycmF5
IGFkZE9iamVjdDpAIkFYVGFibGVMZXZlbCJdOwogICAgICAgICByZXR1cm4gdGVtcEFycmF5Owog
ICAgIH0oKTsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQgdGFibGVSb3dBdHRycyA9IFtdIHsK
QEAgLTExNjQsNyArMTE3MSw3IEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VO
RAogICAgIH0oKTsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQgZ3JvdXBBdHRycyA9IFtdIHsK
ICAgICAgICAgYXV0byB0ZW1wQXJyYXkgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2Nd
IGluaXRXaXRoQXJyYXk6YXR0cmlidXRlcy5nZXQoKS5nZXQoKV0pOwotICAgICAgICBbdGVtcEFy
cmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlUaXRsZVVJRWxlbWVudEF0dHJpYnV0ZV07Cisg
ICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eUlubGluZVRleHRBdHRy
aWJ1dGVdOwogICAgICAgICByZXR1cm4gdGVtcEFycmF5OwogICAgIH0oKTsKICAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQgaW5wdXRJbWFnZUF0dHJzID0gW10gewpAQCAtMTE3NCw3ICsxMTgxLDYg
QEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAgICAgfSgpOwogICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZCBzZWN1cmVGaWVsZEF0dHJpYnV0ZXMgPSBbXSB7CiAgICAgICAg
IGF1dG8gdGVtcEFycmF5ID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0
aEFycmF5OmF0dHJpYnV0ZXMuZ2V0KCkuZ2V0KCldKTsKLSAgICAgICAgW3RlbXBBcnJheSBhZGRP
YmplY3Q6TlNBY2Nlc3NpYmlsaXR5VGl0bGVVSUVsZW1lbnRBdHRyaWJ1dGVdOwogICAgICAgICBb
dGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlSZXF1aXJlZEF0dHJpYnV0ZV07CiAg
ICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eUludmFsaWRBdHRyaWJ1
dGVdOwogICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlQbGFjZWhv
bGRlclZhbHVlQXR0cmlidXRlXTsKQEAgLTExODUsNiArMTE5MSw3IEBAIEFMTE9XX0RFUFJFQ0FU
RURfSU1QTEVNRU5UQVRJT05TX0VORAogICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0Fj
Y2Vzc2liaWxpdHlUYWJzQXR0cmlidXRlXTsKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6
TlNBY2Nlc3NpYmlsaXR5Q29udGVudHNBdHRyaWJ1dGVdOwogICAgICAgICBbdGVtcEFycmF5IGFk
ZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlPcmllbnRhdGlvbkF0dHJpYnV0ZV07CisgICAgICAgIFt0
ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkQ2hpbGRyZW5BdHRyaWJ1
dGVdOwogICAgICAgICByZXR1cm4gdGVtcEFycmF5OwogICAgIH0oKTsKICAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQgb3V0bGluZUF0dHJzID0gW10gewpAQCAtMTE5Myw2ICsxMjAwLDcgQEAgQUxM
T1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAgICAgICAgIFt0ZW1wQXJyYXkgYWRk
T2JqZWN0Ok5TQWNjZXNzaWJpbGl0eVJvd3NBdHRyaWJ1dGVdOwogICAgICAgICBbdGVtcEFycmF5
IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlDb2x1bW5zQXR0cmlidXRlXTsKICAgICAgICAgW3Rl
bXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5T3JpZW50YXRpb25BdHRyaWJ1dGVdOwor
ICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZENoaWxk
cmVuQXR0cmlidXRlXTsKICAgICAgICAgcmV0dXJuIHRlbXBBcnJheTsKICAgICB9KCk7CiAgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkIG91dGxpbmVSb3dBdHRycyA9IFtdIHsKQEAgLTEyMjcsNiAr
MTIzNSw3IEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZCBzdGF0aWNUZXh0QXR0cnMgPSBbXSB7CiAgICAgICAgIGF1dG8gdGVt
cEFycmF5ID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aEFycmF5OmF0
dHJpYnV0ZXMuZ2V0KCkuZ2V0KCldKTsKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNB
Y2Nlc3NpYmlsaXR5SW50ZXJzZWN0aW9uV2l0aFNlbGVjdGlvblJhbmdlQXR0cmlidXRlXTsKKyAg
ICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5VmlzaWJsZUNoYXJhY3Rl
clJhbmdlQXR0cmlidXRlXTsKICAgICAgICAgcmV0dXJuIHRlbXBBcnJheTsKICAgICB9KCk7CiAK
QEAgLTEyNDgsNyArMTI1Nyw3IEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VO
RAogICAgICAgICBvYmplY3RBdHRyaWJ1dGVzID0gYW5jaG9yQXR0cnMuZ2V0KCkuZ2V0KCk7CiAg
ICAgZWxzZSBpZiAoYmFja2luZ09iamVjdC0+aXNJbWFnZSgpKQogICAgICAgICBvYmplY3RBdHRy
aWJ1dGVzID0gaW1hZ2VBdHRycy5nZXQoKS5nZXQoKTsKLSAgICBlbHNlIGlmIChiYWNraW5nT2Jq
ZWN0LT5pc1RhYmxlKCkgJiYgYmFja2luZ09iamVjdC0+aXNFeHBvc2FibGUoKSkKKyAgICBlbHNl
IGlmICgoYmFja2luZ09iamVjdC0+aXNUYWJsZSgpICYmIGJhY2tpbmdPYmplY3QtPmlzRXhwb3Nh
YmxlKCkpIHx8IGJhY2tpbmdPYmplY3QtPmlzQWNjZXNzaWJpbGl0eUFSSUFHcmlkSW5zdGFuY2Uo
KSkKICAgICAgICAgb2JqZWN0QXR0cmlidXRlcyA9IHRhYmxlQXR0cnMuZ2V0KCkuZ2V0KCk7CiAg
ICAgZWxzZSBpZiAoYmFja2luZ09iamVjdC0+aXNUYWJsZUNvbHVtbigpKQogICAgICAgICBvYmpl
Y3RBdHRyaWJ1dGVzID0gdGFibGVDb2xBdHRycy5nZXQoKS5nZXQoKTsKQEAgLTEyNzIsNyArMTI4
MSw3IEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogICAgICAgICBvYmpl
Y3RBdHRyaWJ1dGVzID0gbGlzdEJveEF0dHJzLmdldCgpLmdldCgpOwogICAgIGVsc2UgaWYgKGJh
Y2tpbmdPYmplY3QtPmlzTGlzdCgpKQogICAgICAgICBvYmplY3RBdHRyaWJ1dGVzID0gbGlzdEF0
dHJzLmdldCgpLmdldCgpOwotICAgIGVsc2UgaWYgKGJhY2tpbmdPYmplY3QtPmlzUHJvZ3Jlc3NJ
bmRpY2F0b3IoKSB8fCBiYWNraW5nT2JqZWN0LT5pc1NsaWRlcigpKQorICAgIGVsc2UgaWYgKGJh
Y2tpbmdPYmplY3QtPmlzUHJvZ3Jlc3NJbmRpY2F0b3IoKSB8fCBiYWNraW5nT2JqZWN0LT5pc1Ns
aWRlcigpIHx8IGJhY2tpbmdPYmplY3QtPmlzU3BsaXR0ZXIoKSkKICAgICAgICAgb2JqZWN0QXR0
cmlidXRlcyA9IHJhbmdlQXR0cnMuZ2V0KCkuZ2V0KCk7CiAgICAgLy8gVGhlc2UgYXJlIHByb2Nl
c3NlZCBpbiBvcmRlciBiZWNhdXNlIGFuIGlucHV0IGltYWdlIGlzIGEgYnV0dG9uLCBhbmQgYSBi
dXR0b24gaXMgYSBjb250cm9sLgogICAgIGVsc2UgaWYgKGJhY2tpbmdPYmplY3QtPmlzSW5wdXRJ
bWFnZSgpKQpAQCAtMTI4Miw3ICsxMjkxLDcgQEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRB
VElPTlNfRU5ECiAgICAgZWxzZSBpZiAoYmFja2luZ09iamVjdC0+aXNDb250cm9sKCkpCiAgICAg
ICAgIG9iamVjdEF0dHJpYnV0ZXMgPSBjb250cm9sQXR0cnMuZ2V0KCkuZ2V0KCk7CiAKLSAgICBl
bHNlIGlmIChiYWNraW5nT2JqZWN0LT5pc0dyb3VwKCkgfHwgYmFja2luZ09iamVjdC0+aXNMaXN0
SXRlbSgpKQorICAgIGVsc2UgaWYgKGJhY2tpbmdPYmplY3QtPmlzR3JvdXAoKSB8fCBiYWNraW5n
T2JqZWN0LT5pc0xpc3RJdGVtKCkgfHwgYmFja2luZ09iamVjdC0+cm9sZVZhbHVlKCkgPT0gQWNj
ZXNzaWJpbGl0eVJvbGU6OkZpZ3VyZSkKICAgICAgICAgb2JqZWN0QXR0cmlidXRlcyA9IGdyb3Vw
QXR0cnMuZ2V0KCkuZ2V0KCk7CiAgICAgZWxzZSBpZiAoYmFja2luZ09iamVjdC0+aXNUYWJMaXN0
KCkpCiAgICAgICAgIG9iamVjdEF0dHJpYnV0ZXMgPSB0YWJMaXN0QXR0cnMuZ2V0KCkuZ2V0KCk7
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQppbmRleCAyMDlkYzQ3
M2ZkMzYuLmUwNzZkNmM2M2YzMSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50TWFjLm1tCkBAIC0xNjIsNiArMTYyLDUyIEBAIHN0YXRpYyBpZCBhdHRyaWJ1dGVWYWx1ZShp
ZCBlbGVtZW50LCBOU1N0cmluZyAqYXR0cmlidXRlKQogICAgIGlmIChbYXR0cmlidXRlIGlzRXF1
YWw6TlNBY2Nlc3NpYmlsaXR5Rm9jdXNlZFVJRWxlbWVudEF0dHJpYnV0ZV0gJiYgW2VsZW1lbnQg
cmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihhY2Nlc3NpYmlsaXR5Rm9jdXNlZFVJRWxlbWVu
dCldKQogICAgICAgICByZXR1cm4gW2VsZW1lbnQgYWNjZXNzaWJpbGl0eUZvY3VzZWRVSUVsZW1l
bnRdOwogCisgICAgLy8gVGhlc2UgYXJlIGludGVybmFsIEFQSXMgdXNlZCBieSBEUlQvV0tUUjsg
dGVzdHMgYXJlIGFsbG93ZWQgdG8gdXNlIHRoZW0gYnV0IHdlIGRvbid0IHdhbnQgdG8gYWR2ZXJ0
aXNlIHRoZW0uCisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJldGFpblB0cjxOU0FycmF5Pj4g
aW50ZXJuYWxBdHRyaWJ1dGVzID0gQFsKKyAgICAgICAgQCJBWEFSSUFQcmVzc2VkSXNQcmVzZW50
IiwKKyAgICAgICAgQCJBWEFSSUFSb2xlIiwKKyAgICAgICAgQCJBWEF1dG9jb21wbGV0ZVZhbHVl
IiwKKyAgICAgICAgQCJBWENsaWNrUG9pbnQiLAorICAgICAgICBAIkFYQ29udHJvbGxlckZvciIs
CisgICAgICAgIEAiQVhDb250cm9sbGVycyIsCisgICAgICAgIEAiQVhEUlRTcGVlY2hBdHRyaWJ1
dGUiLAorICAgICAgICBAIkFYRGF0ZVRpbWVDb21wb25lbnRzVHlwZSIsCisgICAgICAgIEAiQVhE
ZXNjcmliZWRCeSIsCisgICAgICAgIEAiQVhEZXNjcmlwdGlvbkZvciIsCisgICAgICAgIEAiQVhE
ZXRhaWxzRm9yIiwKKyAgICAgICAgQCJBWEVycm9yTWVzc2FnZUZvciIsCisgICAgICAgIEAiQVhG
bG93RnJvbSIsCisgICAgICAgIEAiQVhJc0luQ2VsbCIsCisgICAgICAgIEAiQVhJc0luRGVzY3Jp
cHRpb25MaXN0RGV0YWlsIiwKKyAgICAgICAgQCJBWElzSW5EZXNjcmlwdGlvbkxpc3RUZXJtIiwK
KyAgICAgICAgQCJBWElzSW5kZXRlcm1pbmF0ZSIsCisgICAgICAgIEAiQVhJc011bHRpU2VsZWN0
YWJsZSIsCisgICAgICAgIEAiQVhJc09uU2NyZWVuIiwKKyAgICAgICAgQCJBWExhYmVsRm9yIiwK
KyAgICAgICAgQCJBWExhYmVsbGVkQnkiLAorICAgICAgICBAIkFYTGluZVJlY3RzQW5kVGV4dCIs
CisgICAgICAgIEAiQVhPd25lcnMiLAorICAgICAgICBAIkFYU3RyaW5nVmFsdWUiLAorICAgICAg
ICBAIkFYVmFsdWVBdXRvZmlsbFR5cGUiLAorCisgICAgICAgIC8vIEZJWE1FOiB0aGVzZSBzaG91
bGRuJ3QgYmUgaGVyZSwgYnV0IHJlbW92aW5nIG9uZSBvZiB0aGVzZSBjYXVzZXMgdGVzdHMgdG8g
ZmFpbC4KKyAgICAgICAgQCJBWEFSSUFDdXJyZW50IiwKKyAgICAgICAgQCJBWEFSSUFMaXZlIiwK
KyAgICAgICAgQCJBWERlc2NyaXB0aW9uIiwKKyAgICAgICAgQCJBWEtleVNob3J0Y3V0c1ZhbHVl
IiwKKyAgICAgICAgQCJBWE9yaWVudGF0aW9uIiwKKyAgICAgICAgQCJBWFBvcHVwVmFsdWUiLAor
ICAgICAgICBAIkFYUmVsYXRpdmVGcmFtZSIsCisgICAgICAgIEAiQVhSZXF1aXJlZCIsCisgICAg
ICAgIEAiQVhTb3J0RGlyZWN0aW9uIiwKKyAgICAgICAgQCJBWFZhbHVlIiwKKyAgICAgICAgQCJB
WFZpc2libGVDaGFyYWN0ZXJSYW5nZSIsCisgICAgXTsKKworICAgIE5TQXJyYXk8TlNTdHJpbmcg
Kj4gKnN1cHBvcnRlZEF0dHJpYnV0ZXMgPSBbZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRl
TmFtZXNdOworICAgIGlmICghW3N1cHBvcnRlZEF0dHJpYnV0ZXMgY29udGFpbnNPYmplY3Q6YXR0
cmlidXRlXSAmJiAhW2ludGVybmFsQXR0cmlidXRlcy5nZXQoKSBjb250YWluc09iamVjdDphdHRy
aWJ1dGVdICYmICFbYXR0cmlidXRlIGlzRXF1YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlSb2xl
QXR0cmlidXRlXSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKwogICAgIHJldHVybiBbZWxlbWVudCBh
Y2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6YXR0cmlidXRlXTsKIH0KIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1wcmVzc2VkLWJ1dHRvbi1hdHRyaWJ1
dGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2FyaWEtcHJl
c3NlZC1idXR0b24tYXR0cmlidXRlcy1leHBlY3RlZC50eHQKaW5kZXggYjZjMmI2NTMyYzlkLi5h
NDZmODFkODE5YjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2Fy
aWEtcHJlc3NlZC1idXR0b24tYXR0cmlidXRlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1wcmVzc2VkLWJ1dHRvbi1hdHRyaWJ1dGVzLWV4cGVj
dGVkLnR4dApAQCAtMiwzNCArMiwzNCBAQCBUaGlzIHRlc3QgZW5zdXJlcyBhIHJvbGU9YnV0dG9u
IGVsZW1lbnQgd2l0aCBhcmlhLXByZXNzZWQgaGFzIHRoZSByaWdodCBhdHRyaWJ1dAogCiAjYnV0
dG9uMTogQVhSb2xlOiBBWENoZWNrQm94CiAjYnV0dG9uMTogQVhTdWJyb2xlOiBBWFRvZ2dsZQot
I2J1dHRvbjE6IEFYVmFsdWU6IDEKKyNidXR0b24xOiBBWFRpdGxlOiBGb28KICNidXR0b24xOiBB
WEFSSUFQcmVzc2VkSXNQcmVzZW50OiB0cnVlCiAKICNidXR0b24yOiBBWFJvbGU6IEFYQ2hlY2tC
b3gKICNidXR0b24yOiBBWFN1YnJvbGU6IEFYVG9nZ2xlCi0jYnV0dG9uMjogQVhWYWx1ZTogMAor
I2J1dHRvbjI6IEFYVGl0bGU6IEJhcgogI2J1dHRvbjI6IEFYQVJJQVByZXNzZWRJc1ByZXNlbnQ6
IHRydWUKIAogI2J1dHRvbi13aXRob3V0LWluaXRpYWwtcHJlc3M6IEFYUm9sZTogQVhCdXR0b24K
ICNidXR0b24td2l0aG91dC1pbml0aWFsLXByZXNzOiBBWFN1YnJvbGU6Ci0jYnV0dG9uLXdpdGhv
dXQtaW5pdGlhbC1wcmVzczogQVhWYWx1ZToKKyNidXR0b24td2l0aG91dC1pbml0aWFsLXByZXNz
OiBBWFRpdGxlOiBCYXoKICNidXR0b24td2l0aG91dC1pbml0aWFsLXByZXNzOiBBWEFSSUFQcmVz
c2VkSXNQcmVzZW50OiBmYWxzZQogCiBUb2dnbGluZyBhcmlhLXByZXNzZWQgc3RhdGUgb24gYm90
aCBidXR0b25zLgogCiAjYnV0dG9uMTogQVhSb2xlOiBBWENoZWNrQm94CiAjYnV0dG9uMTogQVhT
dWJyb2xlOiBBWFRvZ2dsZQotI2J1dHRvbjE6IEFYVmFsdWU6IDAKKyNidXR0b24xOiBBWFRpdGxl
OiBGb28KICNidXR0b24xOiBBWEFSSUFQcmVzc2VkSXNQcmVzZW50OiB0cnVlCiAKICNidXR0b24y
OiBBWFJvbGU6IEFYQ2hlY2tCb3gKICNidXR0b24yOiBBWFN1YnJvbGU6IEFYVG9nZ2xlCi0jYnV0
dG9uMjogQVhWYWx1ZTogMQorI2J1dHRvbjI6IEFYVGl0bGU6IEJhcgogI2J1dHRvbjI6IEFYQVJJ
QVByZXNzZWRJc1ByZXNlbnQ6IHRydWUKIAogI2J1dHRvbi13aXRob3V0LWluaXRpYWwtcHJlc3M6
IEFYUm9sZTogQVhCdXR0b24KICNidXR0b24td2l0aG91dC1pbml0aWFsLXByZXNzOiBBWFN1YnJv
bGU6Ci0jYnV0dG9uLXdpdGhvdXQtaW5pdGlhbC1wcmVzczogQVhWYWx1ZToKKyNidXR0b24td2l0
aG91dC1pbml0aWFsLXByZXNzOiBBWFRpdGxlOiBCYXoKICNidXR0b24td2l0aG91dC1pbml0aWFs
LXByZXNzOiBBWEFSSUFQcmVzc2VkSXNQcmVzZW50OiB0cnVlCiAKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1wcmVzc2VkLWJ1dHRvbi1hdHRyaWJ1dGVz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9hcmlhLXByZXNzZWQtYnV0dG9u
LWF0dHJpYnV0ZXMuaHRtbAppbmRleCAwZTg0NzE1MTA3MWIuLjM0OTBiMGUwMDNmMiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1wcmVzc2VkLWJ1dHRvbi1h
dHRyaWJ1dGVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1w
cmVzc2VkLWJ1dHRvbi1hdHRyaWJ1dGVzLmh0bWwKQEAgLTE4LDcgKzE4LDcgQEAKICAgICAgICAg
Y29uc3QgZWxlbWVudCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50
QnlJZChpZCk7CiAgICAgICAgIHRlc3RPdXRwdXQgKz0gYCMke2lkfTogJHtlbGVtZW50LnJvbGV9
XG5gOwogICAgICAgICB0ZXN0T3V0cHV0ICs9IGAjJHtpZH06ICR7ZWxlbWVudC5zdWJyb2xlfVxu
YDsKLSAgICAgICAgdGVzdE91dHB1dCArPSBgIyR7aWR9OiAke2VsZW1lbnQuc3RyaW5nVmFsdWV9
XG5gOworICAgICAgICB0ZXN0T3V0cHV0ICs9IGAjJHtpZH06ICR7ZWxlbWVudC50aXRsZX1cbmA7
CiAgICAgICAgIHRlc3RPdXRwdXQgKz0gYCMke2lkfTogQVhBUklBUHJlc3NlZElzUHJlc2VudDog
JHtlbGVtZW50LmJvb2xBdHRyaWJ1dGVWYWx1ZSgiQVhBUklBUHJlc3NlZElzUHJlc2VudCIpfVxu
XG5gOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMv
YXJpYS10cmVlLXdpdGgtcHJlc2VudGF0aW9uLXJvbGUuaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvbWFjL2FyaWEtdHJlZS13aXRoLXByZXNlbnRhdGlvbi1yb2xlLmh0bWwKaW5kZXgg
Y2MzNzYxMDIxMjQ1Li4wYzU2M2RlZmI5ZTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvbWFjL2FyaWEtdHJlZS13aXRoLXByZXNlbnRhdGlvbi1yb2xlLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS10cmVlLXdpdGgtcHJlc2VudGF0aW9u
LXJvbGUuaHRtbApAQCAtMzMsNyArMzMsNyBAQAogICAgIH0KICAgICAKICAgICBmdW5jdGlvbiBk
dW1wQWNjZXNzaWJpbGl0eUNoaWxkcmVuKGVsZW1lbnQsIGxldmVsKSB7Ci0gICAgICAgIGlmIChl
bGVtZW50LnN0cmluZ1ZhbHVlLmluZGV4T2YoJ0VuZCBvZiB0ZXN0JykgPj0gMCkKKyAgICAgICAg
aWYgKGVsZW1lbnQuc3RyaW5nVmFsdWUgJiYgZWxlbWVudC5zdHJpbmdWYWx1ZS5pbmRleE9mKCdF
bmQgb2YgdGVzdCcpID49IDApCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAg
dmFyIGluZGVudCA9ICIiOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9t
YWMvYm91bmRzLWZvci1yYW5nZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L21hYy9ib3VuZHMtZm9yLXJhbmdlLWV4cGVjdGVkLnR4dAppbmRleCA3YmU4OWNhY2U4OTYu
LmU2MGEzZWMzMzFmYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMv
Ym91bmRzLWZvci1yYW5nZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS9tYWMvYm91bmRzLWZvci1yYW5nZS1leHBlY3RlZC50eHQKQEAgLTMwLDYgKzMwLDcgQEAg
QVhGb2N1c2FibGVBbmNlc3RvcjogPEFYU3RhdGljVGV4dD4KIEFYRWRpdGFibGVBbmNlc3Rvcjog
KG51bGwpCiBBWEhpZ2hlc3RFZGl0YWJsZUFuY2VzdG9yOiAobnVsbCkKIEFYSW50ZXJzZWN0aW9u
V2l0aFNlbGVjdGlvblJhbmdlOiAobnVsbCkKK0FYVmlzaWJsZUNoYXJhY3RlclJhbmdlOiBOU1Jh
bmdlOiB7MCwgMTYyfQogQVhFbGVtZW50QnVzeTogMAogQVhQYXRoOiAobnVsbCkKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvaW50ZXJuYWwtbGluay1hbmNob3Jz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2ludGVybmFsLWxp
bmstYW5jaG9ycy1leHBlY3RlZC50eHQKaW5kZXggNmZlNTJkYmVjYmU5Li43MTU5M2UzMmQ3OTMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2ludGVybmFsLWxpbmst
YW5jaG9ycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMv
aW50ZXJuYWwtbGluay1hbmNob3JzLWV4cGVjdGVkLnR4dApAQCAtMzEsNiArMzEsNyBAQCBBWEZv
Y3VzYWJsZUFuY2VzdG9yOiA8QVhTdGF0aWNUZXh0PgogQVhFZGl0YWJsZUFuY2VzdG9yOiAobnVs
bCkKIEFYSGlnaGVzdEVkaXRhYmxlQW5jZXN0b3I6IChudWxsKQogQVhJbnRlcnNlY3Rpb25XaXRo
U2VsZWN0aW9uUmFuZ2U6IChudWxsKQorQVhWaXNpYmxlQ2hhcmFjdGVyUmFuZ2U6IE5TUmFuZ2U6
IHswLCA5fQogQVhFbGVtZW50QnVzeTogMAogQVhQYXRoOiAobnVsbCkKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS90YWJsZS13aXRoLXJ1bGVzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGFibGUtd2l0aC1ydWxlcy1leHBlY3RlZC50eHQK
aW5kZXggOWU5ZjhhZWJkNTU2Li45MmQzMWRlODAzZTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2FjY2Vzc2liaWxpdHkvdGFibGUtd2l0aC1ydWxlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvYWNjZXNzaWJpbGl0eS90YWJsZS13aXRoLXJ1bGVzLWV4cGVjdGVkLnR4dApAQCAtNDgs
NiArNDgsOCBAQCBBWFJvd0NvdW50OiAxCiBBWEFSSUFDb2x1bW5Db3VudDogMAogQVhBUklBUm93
Q291bnQ6IDAKIEFYU2VsZWN0ZWRDZWxsczogPGFycmF5IG9mIHNpemUgMD4KK0FYU2VsZWN0ZWRD
aGlsZHJlbjogKG51bGwpCitBWFRhYmxlTGV2ZWw6IDEKIEFYRWxlbWVudEJ1c3k6IDAKIAogCkBA
IC05NCw2ICs5Niw4IEBAIEFYUm93Q291bnQ6IDEKIEFYQVJJQUNvbHVtbkNvdW50OiAwCiBBWEFS
SUFSb3dDb3VudDogMAogQVhTZWxlY3RlZENlbGxzOiA8YXJyYXkgb2Ygc2l6ZSAwPgorQVhTZWxl
Y3RlZENoaWxkcmVuOiAobnVsbCkKK0FYVGFibGVMZXZlbDogMQogQVhFbGVtZW50QnVzeTogMAog
CiAKQEAgLTE0MCw2ICsxNDQsOCBAQCBBWFJvd0NvdW50OiAxCiBBWEFSSUFDb2x1bW5Db3VudDog
MAogQVhBUklBUm93Q291bnQ6IDAKIEFYU2VsZWN0ZWRDZWxsczogPGFycmF5IG9mIHNpemUgMD4K
K0FYU2VsZWN0ZWRDaGlsZHJlbjogKG51bGwpCitBWFRhYmxlTGV2ZWw6IDEKIEFYRWxlbWVudEJ1
c3k6IDAKIAogCkBAIC0xNzMsNyArMTc5LDcgQEAgQVhET01DbGFzc0xpc3Q6IDxhcnJheSBvZiBz
aXplIDA+CiBBWEZvY3VzYWJsZUFuY2VzdG9yOiA8QVhHcm91cD4KIEFYRWRpdGFibGVBbmNlc3Rv
cjogKG51bGwpCiBBWEhpZ2hlc3RFZGl0YWJsZUFuY2VzdG9yOiAobnVsbCkKLUFYVGl0bGVVSUVs
ZW1lbnQ6IChudWxsKQorQVhJbmxpbmVUZXh0OiAwCiBBWEVsZW1lbnRCdXN5OiAwCiAKIApAQCAt
MjA3LDcgKzIxMyw3IEBAIEFYRE9NQ2xhc3NMaXN0OiA8YXJyYXkgb2Ygc2l6ZSAwPgogQVhGb2N1
c2FibGVBbmNlc3RvcjogPEFYR3JvdXA+CiBBWEVkaXRhYmxlQW5jZXN0b3I6IChudWxsKQogQVhI
aWdoZXN0RWRpdGFibGVBbmNlc3RvcjogKG51bGwpCi1BWFRpdGxlVUlFbGVtZW50OiAobnVsbCkK
K0FYSW5saW5lVGV4dDogMAogQVhFbGVtZW50QnVzeTogMAogCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2xpc3RzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2xpc3RzLWV4cGVjdGVkLnR4dApp
bmRleCA3ZDNjYzNmMmEwMjcuLmZkNDFiMDFhM2UwNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvbGlzdHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2xpc3RzLWV4cGVjdGVkLnR4dApAQCAt
NDQsNyArNDQsNiBAQCBBWEhpZ2hlc3RFZGl0YWJsZUFuY2VzdG9yOiAobnVsbCkKIEFYU2VsZWN0
ZWRDaGlsZHJlbjogPGFycmF5IG9mIHNpemUgMD4KIEFYVmlzaWJsZUNoaWxkcmVuOiA8YXJyYXkg
b2Ygc2l6ZSAyPgogQVhPcmllbnRhdGlvbjogQVhWZXJ0aWNhbE9yaWVudGF0aW9uCi1BWFRpdGxl
VUlFbGVtZW50OiAobnVsbCkKIEFYRWxlbWVudEJ1c3k6IDAKIAogLS0tLS0tLS0tLS0tCkBAIC04
MSw3ICs4MCw2IEBAIEFYSGlnaGVzdEVkaXRhYmxlQW5jZXN0b3I6IChudWxsKQogQVhTZWxlY3Rl
ZENoaWxkcmVuOiA8YXJyYXkgb2Ygc2l6ZSAwPgogQVhWaXNpYmxlQ2hpbGRyZW46IDxhcnJheSBv
ZiBzaXplIDI+CiBBWE9yaWVudGF0aW9uOiBBWFZlcnRpY2FsT3JpZW50YXRpb24KLUFYVGl0bGVV
SUVsZW1lbnQ6IChudWxsKQogQVhFbGVtZW50QnVzeTogMAogCiAtLS0tLS0tLS0tLS0KQEAgLTEx
OCw3ICsxMTYsNiBAQCBBWEhpZ2hlc3RFZGl0YWJsZUFuY2VzdG9yOiAobnVsbCkKIEFYU2VsZWN0
ZWRDaGlsZHJlbjogKG51bGwpCiBBWFZpc2libGVDaGlsZHJlbjogPGFycmF5IG9mIHNpemUgNT4K
IEFYT3JpZW50YXRpb246IEFYVmVydGljYWxPcmllbnRhdGlvbgotQVhUaXRsZVVJRWxlbWVudDog
KG51bGwpCiBBWEVsZW1lbnRCdXN5OiAwCiAKIC0tLS0tLS0tLS0tLQpAQCAtMTU0LDcgKzE1MSw3
IEBAIEFYRE9NQ2xhc3NMaXN0OiA8YXJyYXkgb2Ygc2l6ZSAwPgogQVhGb2N1c2FibGVBbmNlc3Rv
cjogPEFYR3JvdXA+CiBBWEVkaXRhYmxlQW5jZXN0b3I6IChudWxsKQogQVhIaWdoZXN0RWRpdGFi
bGVBbmNlc3RvcjogKG51bGwpCi1BWFRpdGxlVUlFbGVtZW50OiAobnVsbCkKK0FYSW5saW5lVGV4
dDogMAogQVhFbGVtZW50QnVzeTogMAogCiAtLS0tLS0tLS0tLS0KQEAgLTE4OCw3ICsxODUsNyBA
QCBBWERPTUNsYXNzTGlzdDogPGFycmF5IG9mIHNpemUgMD4KIEFYRm9jdXNhYmxlQW5jZXN0b3I6
IDxBWEdyb3VwPgogQVhFZGl0YWJsZUFuY2VzdG9yOiAobnVsbCkKIEFYSGlnaGVzdEVkaXRhYmxl
QW5jZXN0b3I6IChudWxsKQotQVhUaXRsZVVJRWxlbWVudDogKG51bGwpCitBWElubGluZVRleHQ6
IDAKIEFYRWxlbWVudEJ1c3k6IDAKIAogLS0tLS0tLS0tLS0tCkBAIC0yMjQsNyArMjIxLDcgQEAg
QVhET01DbGFzc0xpc3Q6IDxhcnJheSBvZiBzaXplIDA+CiBBWEZvY3VzYWJsZUFuY2VzdG9yOiA8
QVhHcm91cD4KIEFYRWRpdGFibGVBbmNlc3RvcjogKG51bGwpCiBBWEhpZ2hlc3RFZGl0YWJsZUFu
Y2VzdG9yOiAobnVsbCkKLUFYVGl0bGVVSUVsZW1lbnQ6IChudWxsKQorQVhJbmxpbmVUZXh0OiAw
CiBBWEVsZW1lbnRCdXN5OiAwCiAKIC0tLS0tLS0tLS0tLQpAQCAtMjU4LDcgKzI1NSw3IEBAIEFY
RE9NQ2xhc3NMaXN0OiA8YXJyYXkgb2Ygc2l6ZSAwPgogQVhGb2N1c2FibGVBbmNlc3RvcjogPEFY
R3JvdXA+CiBBWEVkaXRhYmxlQW5jZXN0b3I6IChudWxsKQogQVhIaWdoZXN0RWRpdGFibGVBbmNl
c3RvcjogKG51bGwpCi1BWFRpdGxlVUlFbGVtZW50OiAobnVsbCkKK0FYSW5saW5lVGV4dDogMAog
QVhFbGVtZW50QnVzeTogMAogCiAtLS0tLS0tLS0tLS0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>470658</attachid>
            <date>2024-03-28 20:51:10 -0700</date>
            <delta_ts>2024-03-29 08:49:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-271674-20240328205109.patch</filename>
            <type>text/plain</type>
            <size>22962</size>
            <attacher name="Dominic Mazzoni">dm_mazzoni</attacher>
            
              <data encoding="base64">RnJvbSBkODEyZWQ0YmY4MjYwNGM3ZjU3NTcxNWU0ZWM5MmYyYTExZGQwMWRmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb21pbmljIE1henpvbmkgPGRtX21henpvbmlAYXBwbGUuY29t
PgpEYXRlOiBUdWUsIDI2IE1hciAyMDI0IDA5OjIzOjAxIC0wNzAwClN1YmplY3Q6IFtQQVRDSF0g
QVg6IE1hYyBsYXlvdXQgdGVzdHMgc2hvdWxkbid0IGFjY2VzcyBhdHRyaWJ1dGVzIHRoYXQgYXJl
bid0CiBleHBvc2VkIGZvciB0aGF0IGVsZW1lbnQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTI3MTY3NAogcmRhcjovL3Byb2JsZW0vMTI1MzczNjk0CgpSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KCkNoZWNrcyBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlTmFtZXMgYmVm
b3JlIGNhbGxpbmcgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlIGluCkFjY2Vzc2liaWxpdHlV
SUVsZW1lbnRNYWMuIFJldHVybnMgbmlsIGlmIHF1ZXJ5aW5nIGZvciBhbiBhdHRyaWJ1dGUgdGhh
dCBpc24ndApmb3VuZC4KClRoYXQgbGVkIHRvIGZpbmRpbmcgbG90cyBvZiBleGFtcGxlcyBvZiBh
dHRyaWJ1dGVzIHRoYXQgb3VnaHQgdG8gYmUgZXhwb3NlZAppbiBhY2Nlc3NpYmlsaXR5QXR0cmli
dXRlTmFtZXMgYnV0IHdlcmVuJ3Qgbm93LgoKSW4gdGhpcyBwYXRjaCwgSSBhdHRlbXB0ZWQgdG8g
Zml4IHRoZSBvbmVzIHRoYXQgaGF2ZSBhIGNsZWFyLCBzdHJhaWdodGZvcndhcmQKZml4LCBhbmQg
dGhlbiBhZGRlZCBhbiBleGNlcHRpb24gZm9yIGFueXRoaW5nIHRoYXQgd2Fzbid0IHN0cmFpZ2h0
Zm9yd2FyZC4KClRoZSBpZGVhIGlzIHRvIGZvbGxvdyB1cCB1bnRpbCBhbGwgb2YgdGhlIGV4Y2Vw
dGlvbnMgYXJlIHJlbW92ZWQuCgoqIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbGlzdHMtZXhw
ZWN0ZWQudHh0OiBSZW1vdmVkLgoqIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2FyaWEt
cHJlc3NlZC1idXR0b24tYXR0cmlidXRlcy1leHBlY3RlZC50eHQ6CiogTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9tYWMvYXJpYS1wcmVzc2VkLWJ1dHRvbi1hdHRyaWJ1dGVzLmh0bWw6CiogTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS10cmVlLXdpdGgtcHJlc2VudGF0aW9uLXJv
bGUuaHRtbDoKKiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9ib3VuZHMtZm9yLXJhbmdl
LWV4cGVjdGVkLnR4dDoKKiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9pbnRlcm5hbC1s
aW5rLWFuY2hvcnMtZXhwZWN0ZWQudHh0OgoqIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGFi
bGUtd2l0aC1ydWxlcy1leHBlY3RlZC50eHQ6CiogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Fj
Y2Vzc2liaWxpdHkvbGlzdHMtZXhwZWN0ZWQudHh0OgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2Jq
ZWN0OjpzdXBwb3J0c0V4cGFuZGVkIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbToKKC1bV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXIgX2FkZGl0aW9uYWxBY2Nlc3NpYmlsaXR5QXR0cmlidXRlTmFt
ZXM6XSk6CigtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIEFMTE9XX0RFUFJFQ0FURURf
SU1QTEVNRU5UQVRJT05TX0VORF0pOgoqIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW06CihXVFI6OmF0dHJpYnV0ZVZh
bHVlKToKLS0tCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCAgICAg
fCAgMyArCiAuLi4vbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tICAgfCA1
NyArKysrKysrKysrKy0tLS0tLS0tCiAuLi4vbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMu
bW0gICAgICAgICAgfCA0NiArKysrKysrKysrKysrKysKIC4uLnJpYS1wcmVzc2VkLWJ1dHRvbi1h
dHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCB8IDEyICsrLS0KIC4uLi9tYWMvYXJpYS1wcmVzc2VkLWJ1
dHRvbi1hdHRyaWJ1dGVzLmh0bWwgICB8ICAyICstCiAuLi4vbWFjL2FyaWEtdHJlZS13aXRoLXBy
ZXNlbnRhdGlvbi1yb2xlLmh0bWwgfCAgMiArLQogLi4uL21hYy9ib3VuZHMtZm9yLXJhbmdlLWV4
cGVjdGVkLnR4dCAgICAgICAgIHwgIDEgKwogLi4uL21hYy9pbnRlcm5hbC1saW5rLWFuY2hvcnMt
ZXhwZWN0ZWQudHh0ICAgIHwgIDEgKwogLi4uL3RhYmxlLXdpdGgtcnVsZXMtZXhwZWN0ZWQudHh0
ICAgICAgICAgICAgIHwgMTAgKysrLQogLi4uL21hYy9hY2Nlc3NpYmlsaXR5L2xpc3RzLWV4cGVj
dGVkLnR4dCAgICAgIHwgMTEgKystLQogMTAgZmlsZXMgY2hhbmdlZCwgMTA0IGluc2VydGlvbnMo
KyksIDQxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCmluZGV4IDZmYWI4NmViMzNjOC4uMTc3MTAzNTBm
MDdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5jcHAKQEAgLTM0NDksNiArMzQ0OSw5IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU9i
amVjdDo6c3VwcG9ydHNFeHBhbmRlZCgpIGNvbnN0CiAgICAgaWYgKHBvcG92ZXJUYXJnZXRFbGVt
ZW50KCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCisgICAgaWYgKGlzPEhUTUxEZXRhaWxzRWxl
bWVudD4obm9kZSgpKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKICAgICBzd2l0Y2ggKHJvbGVW
YWx1ZSgpKSB7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGV0YWlsczoKICAgICAgICAg
cmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21h
Yy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCmluZGV4
IDA1ODY5ZDBjNDQ2Ni4uMmU4NWZmMjQ0YmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlck1hYy5tbQpAQCAtODIzLDcgKzgyMyw4IEBAIC0gKE5TQXJyYXkqKV9hZGRpdGlvbmFs
QWNjZXNzaWJpbGl0eUF0dHJpYnV0ZU5hbWVzOihjb25zdCBSZWZQdHI8QVhDb3JlT2JqZWN0PiYp
CiAgICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzU2Nyb2xsYmFyKCkKICAgICAgICAgfHwgYmFja2lu
Z09iamVjdC0+aXNSYWRpb0dyb3VwKCkKICAgICAgICAgfHwgYmFja2luZ09iamVjdC0+aXNTcGxp
dHRlcigpCi0gICAgICAgIHx8IGJhY2tpbmdPYmplY3QtPmlzVG9vbGJhcigpKQorICAgICAgICB8
fCBiYWNraW5nT2JqZWN0LT5pc1Rvb2xiYXIoKQorICAgICAgICB8fCBiYWNraW5nT2JqZWN0LT5y
b2xlVmFsdWUoKSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6SG9yaXpvbnRhbFJ1bGUpCiAgICAgICAg
IFthZGRpdGlvbmFsIGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlPcmllbnRhdGlvbkF0dHJpYnV0
ZV07CiAKICAgICBpZiAoYmFja2luZ09iamVjdC0+c3VwcG9ydHNEcmFnZ2luZygpKQpAQCAtOTA1
LDYgKzkwNiwyNCBAQCAtIChOU0FycmF5KilfYWRkaXRpb25hbEFjY2Vzc2liaWxpdHlBdHRyaWJ1
dGVOYW1lczooY29uc3QgUmVmUHRyPEFYQ29yZU9iamVjdD4mKQogICAgIGlmIChiYWNraW5nT2Jq
ZWN0LT5zdXBwb3J0c0V4cGFuZGVkVGV4dFZhbHVlKCkpCiAgICAgICAgIFthZGRpdGlvbmFsIGFk
ZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlFeHBhbmRlZFRleHRWYWx1ZUF0dHJpYnV0ZV07CiAKKyAg
ICBpZiAoIWJhY2tpbmdPYmplY3QtPmJyYWlsbGVMYWJlbCgpLmlzRW1wdHkoKSkKKyAgICAgICAg
W2FkZGl0aW9uYWwgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eUJyYWlsbGVMYWJlbEF0dHJpYnV0
ZV07CisKKyAgICBpZiAoIWJhY2tpbmdPYmplY3QtPmJyYWlsbGVSb2xlRGVzY3JpcHRpb24oKS5p
c0VtcHR5KCkpCisgICAgICAgIFthZGRpdGlvbmFsIGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlC
cmFpbGxlUm9sZURlc2NyaXB0aW9uQXR0cmlidXRlXTsKKworICAgIGlmIChiYWNraW5nT2JqZWN0
LT5kZXRhaWxlZEJ5T2JqZWN0cygpLnNpemUoKSkKKyAgICAgICAgW2FkZGl0aW9uYWwgYWRkT2Jq
ZWN0OkAiQVhEZXRhaWxzRWxlbWVudHMiXTsKKworICAgIGlmIChiYWNraW5nT2JqZWN0LT5lcnJv
ck1lc3NhZ2VPYmplY3RzKCkuc2l6ZSgpKQorICAgICAgICBbYWRkaXRpb25hbCBhZGRPYmplY3Q6
QCJBWEVycm9yTWVzc2FnZUVsZW1lbnRzIl07CisKKyAgICBpZiAoIWJhY2tpbmdPYmplY3QtPmtl
eVNob3J0Y3V0cygpLmlzRW1wdHkoKSkKKyAgICAgICAgW2FkZGl0aW9uYWwgYWRkT2JqZWN0Ok5T
QWNjZXNzaWJpbGl0eUtleVNob3J0Y3V0c0F0dHJpYnV0ZV07CisKKyAgICBpZiAoYmFja2luZ09i
amVjdC0+dGl0bGVVSUVsZW1lbnQoKSkKKyAgICAgICAgW2FkZGl0aW9uYWwgYWRkT2JqZWN0Ok5T
QWNjZXNzaWJpbGl0eVRpdGxlVUlFbGVtZW50QXR0cmlidXRlXTsKKwogI2lmIEVOQUJMRShBQ0NF
U1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpCiAgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmlzSXNvbGF0
ZWRUcmVlRW5hYmxlZCgpKQogICAgICAgICBbYWRkaXRpb25hbCBhZGRPYmplY3Q6TlNBY2Nlc3Np
YmlsaXR5UmVsYXRpdmVGcmFtZUF0dHJpYnV0ZV07CkBAIC05NzksMTUgKzk5OCw2IEBAIEFMTE9X
X0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogICAgICAgICBbdGVtcEFycmF5IGFkZE9i
amVjdDpOU0FjY2Vzc2liaWxpdHlMaW5rUmVsYXRpb25zaGlwVHlwZUF0dHJpYnV0ZV07CiAgICAg
ICAgIHJldHVybiB0ZW1wQXJyYXk7CiAgICAgfSgpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxSZXRhaW5QdHI8TlNBcnJheT4+IGNvbW1vbk1lbnVBdHRycyA9IEBbCi0gICAgICAgIE5TQWNj
ZXNzaWJpbGl0eVJvbGVBdHRyaWJ1dGUsCi0gICAgICAgIE5TQWNjZXNzaWJpbGl0eVJvbGVEZXNj
cmlwdGlvbkF0dHJpYnV0ZSwKLSAgICAgICAgTlNBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5BdHRyaWJ1
dGUsCi0gICAgICAgIE5TQWNjZXNzaWJpbGl0eVBhcmVudEF0dHJpYnV0ZSwKLSAgICAgICAgTlNB
Y2Nlc3NpYmlsaXR5RW5hYmxlZEF0dHJpYnV0ZSwKLSAgICAgICAgTlNBY2Nlc3NpYmlsaXR5UG9z
aXRpb25BdHRyaWJ1dGUsCi0gICAgICAgIE5TQWNjZXNzaWJpbGl0eVNpemVBdHRyaWJ1dGUsCi0g
ICAgXTsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQgd2ViQXJlYUF0dHJzID0gW10gewogICAg
ICAgICBhdXRvIHRlbXBBcnJheSA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5p
dFdpdGhBcnJheTphdHRyaWJ1dGVzLmdldCgpLmdldCgpXSk7CiAgICAgICAgIC8vIFdlYkFyZWFz
IHNob3VsZCBub3QgZXhwb3NlIEFYU3Vicm9sZS4KQEAgLTEwMTIsMTEgKzEwMjIsMTEgQEAgQUxM
T1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAgICAgICAgIFt0ZW1wQXJyYXkgYWRk
T2JqZWN0Ok5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dFJhbmdlQXR0cmlidXRlXTsKICAgICAg
ICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5VmlzaWJsZUNoYXJhY3RlclJh
bmdlQXR0cmlidXRlXTsKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmls
aXR5SW5zZXJ0aW9uUG9pbnRMaW5lTnVtYmVyQXR0cmlidXRlXTsKLSAgICAgICAgW3RlbXBBcnJh
eSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5VGl0bGVVSUVsZW1lbnRBdHRyaWJ1dGVdOwogICAg
ICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlBY2Nlc3NLZXlBdHRyaWJ1
dGVdOwogICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlSZXF1aXJl
ZEF0dHJpYnV0ZV07CiAgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0
eUludmFsaWRBdHRyaWJ1dGVdOwogICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vz
c2liaWxpdHlQbGFjZWhvbGRlclZhbHVlQXR0cmlidXRlXTsKKyAgICAgICAgW3RlbXBBcnJheSBh
ZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5VmFsdWVBdXRvZmlsbEF2YWlsYWJsZUF0dHJpYnV0ZV07
CiAgICAgICAgIHJldHVybiB0ZW1wQXJyYXk7CiAgICAgfSgpOwogICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZCBsaXN0QXR0cnMgPSBbXSB7CkBAIC0xMDI0LDcgKzEwMzQsNiBAQCBBTExPV19ERVBS
RUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6
TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDaGlsZHJlbkF0dHJpYnV0ZV07CiAgICAgICAgIFt0ZW1w
QXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eVZpc2libGVDaGlsZHJlbkF0dHJpYnV0ZV07
CiAgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eU9yaWVudGF0aW9u
QXR0cmlidXRlXTsKLSAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5
VGl0bGVVSUVsZW1lbnRBdHRyaWJ1dGVdOwogICAgICAgICByZXR1cm4gdGVtcEFycmF5OwogICAg
IH0oKTsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQgbGlzdEJveEF0dHJzID0gW10gewpAQCAt
MTA0MSwyNSArMTA1MCwyMiBAQCBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQK
ICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5TWF4VmFsdWVBdHRy
aWJ1dGVdOwogICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlPcmll
bnRhdGlvbkF0dHJpYnV0ZV07CiAgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNz
aWJpbGl0eVZhbHVlRGVzY3JpcHRpb25BdHRyaWJ1dGVdOwotICAgICAgICBbdGVtcEFycmF5IGFk
ZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlUaXRsZVVJRWxlbWVudEF0dHJpYnV0ZV07CiAgICAgICAg
IHJldHVybiB0ZW1wQXJyYXk7CiAgICAgfSgpOwogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZCBt
ZW51QmFyQXR0cnMgPSBbXSB7Ci0gICAgICAgIGF1dG8gdGVtcEFycmF5ID0gYWRvcHROUyhbW05T
TXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aEFycmF5OmNvbW1vbk1lbnVBdHRycy5nZXQoKS5n
ZXQoKV0pOworICAgICAgICBhdXRvIHRlbXBBcnJheSA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJh
eSBhbGxvY10gaW5pdFdpdGhBcnJheTphdHRyaWJ1dGVzLmdldCgpLmdldCgpXSk7CiAgICAgICAg
IFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkQ2hpbGRyZW5BdHRy
aWJ1dGVdOwotICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlUaXRs
ZVVJRWxlbWVudEF0dHJpYnV0ZV07CiAgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNj
ZXNzaWJpbGl0eU9yaWVudGF0aW9uQXR0cmlidXRlXTsKICAgICAgICAgcmV0dXJuIHRlbXBBcnJh
eTsKICAgICB9KCk7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkIG1lbnVBdHRycyA9IFtdIHsK
LSAgICAgICAgYXV0byB0ZW1wQXJyYXkgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2Nd
IGluaXRXaXRoQXJyYXk6Y29tbW9uTWVudUF0dHJzLmdldCgpLmdldCgpXSk7CisgICAgICAgIGF1
dG8gdGVtcEFycmF5ID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aEFy
cmF5OmF0dHJpYnV0ZXMuZ2V0KCkuZ2V0KCldKTsKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmpl
Y3Q6TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDaGlsZHJlbkF0dHJpYnV0ZV07Ci0gICAgICAgIFt0
ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eVRpdGxlVUlFbGVtZW50QXR0cmlidXRl
XTsKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5T3JpZW50YXRp
b25BdHRyaWJ1dGVdOwogICAgICAgICByZXR1cm4gdGVtcEFycmF5OwogICAgIH0oKTsKICAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQgbWVudUl0ZW1BdHRycyA9IFtdIHsKLSAgICAgICAgYXV0byB0
ZW1wQXJyYXkgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoQXJyYXk6
Y29tbW9uTWVudUF0dHJzLmdldCgpLmdldCgpXSk7CisgICAgICAgIGF1dG8gdGVtcEFycmF5ID0g
YWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aEFycmF5OmF0dHJpYnV0ZXMu
Z2V0KCkuZ2V0KCldKTsKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmls
aXR5VGl0bGVBdHRyaWJ1dGVdOwogICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vz
c2liaWxpdHlEZXNjcmlwdGlvbkF0dHJpYnV0ZV07CiAgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2Jq
ZWN0Ok5TQWNjZXNzaWJpbGl0eUhlbHBBdHRyaWJ1dGVdOwpAQCAtMTA4OCw3ICsxMDk0LDYgQEAg
QUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAgICAgICAgIE5TQWNjZXNzaWJp
bGl0eUNoaWxkcmVuQXR0cmlidXRlLAogICAgIF07CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PFJldGFpblB0cjxOU0FycmF5Pj4gc2hhcmVkQ29udHJvbEF0dHJzID0gQFsKLSAgICAgICAgTlNB
Y2Nlc3NpYmlsaXR5VGl0bGVVSUVsZW1lbnRBdHRyaWJ1dGUsCiAgICAgICAgIE5TQWNjZXNzaWJp
bGl0eUFjY2Vzc0tleUF0dHJpYnV0ZSwKICAgICAgICAgTlNBY2Nlc3NpYmlsaXR5UmVxdWlyZWRB
dHRyaWJ1dGUsCiAgICAgICAgIE5TQWNjZXNzaWJpbGl0eUludmFsaWRBdHRyaWJ1dGUsCkBAIC0x
MTA3LDggKzExMTIsOCBAQCBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQKICAg
ICAgICAgYXV0byB0ZW1wQXJyYXkgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGlu
aXRXaXRoQXJyYXk6YXR0cmlidXRlcy5nZXQoKS5nZXQoKV0pOwogICAgICAgICAvLyBCdXR0b25z
IHNob3VsZCBub3QgZXhwb3NlIEFYVmFsdWUuCiAgICAgICAgIFt0ZW1wQXJyYXkgcmVtb3ZlT2Jq
ZWN0Ok5TQWNjZXNzaWJpbGl0eVZhbHVlQXR0cmlidXRlXTsKLSAgICAgICAgW3RlbXBBcnJheSBh
ZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5VGl0bGVVSUVsZW1lbnRBdHRyaWJ1dGVdOwogICAgICAg
ICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlBY2Nlc3NLZXlBdHRyaWJ1dGVd
OworICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlJbnZhbGlkQXR0
cmlidXRlXTsKICAgICAgICAgcmV0dXJuIHRlbXBBcnJheTsKICAgICB9KCk7CiAgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkIGNvbWJvQm94QXR0cnMgPSBbXSB7CkBAIC0xMTM3LDYgKzExNDIsOCBA
QCBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQKICAgICAgICAgW3RlbXBBcnJh
eSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5QVJJQUNvbHVtbkNvdW50QXR0cmlidXRlXTsKICAg
ICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5QVJJQVJvd0NvdW50QXR0
cmlidXRlXTsKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5U2Vs
ZWN0ZWRDZWxsc0F0dHJpYnV0ZV07CisgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNj
ZXNzaWJpbGl0eVNlbGVjdGVkQ2hpbGRyZW5BdHRyaWJ1dGVdOworICAgICAgICBbdGVtcEFycmF5
IGFkZE9iamVjdDpAIkFYVGFibGVMZXZlbCJdOwogICAgICAgICByZXR1cm4gdGVtcEFycmF5Owog
ICAgIH0oKTsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQgdGFibGVSb3dBdHRycyA9IFtdIHsK
QEAgLTExNjQsNyArMTE3MSw3IEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VO
RAogICAgIH0oKTsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQgZ3JvdXBBdHRycyA9IFtdIHsK
ICAgICAgICAgYXV0byB0ZW1wQXJyYXkgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2Nd
IGluaXRXaXRoQXJyYXk6YXR0cmlidXRlcy5nZXQoKS5nZXQoKV0pOwotICAgICAgICBbdGVtcEFy
cmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlUaXRsZVVJRWxlbWVudEF0dHJpYnV0ZV07Cisg
ICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eUlubGluZVRleHRBdHRy
aWJ1dGVdOwogICAgICAgICByZXR1cm4gdGVtcEFycmF5OwogICAgIH0oKTsKICAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQgaW5wdXRJbWFnZUF0dHJzID0gW10gewpAQCAtMTE3NCw3ICsxMTgxLDYg
QEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAgICAgfSgpOwogICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZCBzZWN1cmVGaWVsZEF0dHJpYnV0ZXMgPSBbXSB7CiAgICAgICAg
IGF1dG8gdGVtcEFycmF5ID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0
aEFycmF5OmF0dHJpYnV0ZXMuZ2V0KCkuZ2V0KCldKTsKLSAgICAgICAgW3RlbXBBcnJheSBhZGRP
YmplY3Q6TlNBY2Nlc3NpYmlsaXR5VGl0bGVVSUVsZW1lbnRBdHRyaWJ1dGVdOwogICAgICAgICBb
dGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlSZXF1aXJlZEF0dHJpYnV0ZV07CiAg
ICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eUludmFsaWRBdHRyaWJ1
dGVdOwogICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlQbGFjZWhv
bGRlclZhbHVlQXR0cmlidXRlXTsKQEAgLTExODUsNiArMTE5MSw3IEBAIEFMTE9XX0RFUFJFQ0FU
RURfSU1QTEVNRU5UQVRJT05TX0VORAogICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0Fj
Y2Vzc2liaWxpdHlUYWJzQXR0cmlidXRlXTsKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6
TlNBY2Nlc3NpYmlsaXR5Q29udGVudHNBdHRyaWJ1dGVdOwogICAgICAgICBbdGVtcEFycmF5IGFk
ZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlPcmllbnRhdGlvbkF0dHJpYnV0ZV07CisgICAgICAgIFt0
ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkQ2hpbGRyZW5BdHRyaWJ1
dGVdOwogICAgICAgICByZXR1cm4gdGVtcEFycmF5OwogICAgIH0oKTsKICAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQgb3V0bGluZUF0dHJzID0gW10gewpAQCAtMTE5Myw2ICsxMjAwLDcgQEAgQUxM
T1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAgICAgICAgIFt0ZW1wQXJyYXkgYWRk
T2JqZWN0Ok5TQWNjZXNzaWJpbGl0eVJvd3NBdHRyaWJ1dGVdOwogICAgICAgICBbdGVtcEFycmF5
IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlDb2x1bW5zQXR0cmlidXRlXTsKICAgICAgICAgW3Rl
bXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5T3JpZW50YXRpb25BdHRyaWJ1dGVdOwor
ICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZENoaWxk
cmVuQXR0cmlidXRlXTsKICAgICAgICAgcmV0dXJuIHRlbXBBcnJheTsKICAgICB9KCk7CiAgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkIG91dGxpbmVSb3dBdHRycyA9IFtdIHsKQEAgLTEyMjcsNiAr
MTIzNSw3IEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZCBzdGF0aWNUZXh0QXR0cnMgPSBbXSB7CiAgICAgICAgIGF1dG8gdGVt
cEFycmF5ID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aEFycmF5OmF0
dHJpYnV0ZXMuZ2V0KCkuZ2V0KCldKTsKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNB
Y2Nlc3NpYmlsaXR5SW50ZXJzZWN0aW9uV2l0aFNlbGVjdGlvblJhbmdlQXR0cmlidXRlXTsKKyAg
ICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5VmlzaWJsZUNoYXJhY3Rl
clJhbmdlQXR0cmlidXRlXTsKICAgICAgICAgcmV0dXJuIHRlbXBBcnJheTsKICAgICB9KCk7CiAK
QEAgLTEyNzIsNyArMTI4MSw3IEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VO
RAogICAgICAgICBvYmplY3RBdHRyaWJ1dGVzID0gbGlzdEJveEF0dHJzLmdldCgpLmdldCgpOwog
ICAgIGVsc2UgaWYgKGJhY2tpbmdPYmplY3QtPmlzTGlzdCgpKQogICAgICAgICBvYmplY3RBdHRy
aWJ1dGVzID0gbGlzdEF0dHJzLmdldCgpLmdldCgpOwotICAgIGVsc2UgaWYgKGJhY2tpbmdPYmpl
Y3QtPmlzUHJvZ3Jlc3NJbmRpY2F0b3IoKSB8fCBiYWNraW5nT2JqZWN0LT5pc1NsaWRlcigpKQor
ICAgIGVsc2UgaWYgKGJhY2tpbmdPYmplY3QtPmlzUHJvZ3Jlc3NJbmRpY2F0b3IoKSB8fCBiYWNr
aW5nT2JqZWN0LT5pc1NsaWRlcigpIHx8IGJhY2tpbmdPYmplY3QtPmlzU3BsaXR0ZXIoKSkKICAg
ICAgICAgb2JqZWN0QXR0cmlidXRlcyA9IHJhbmdlQXR0cnMuZ2V0KCkuZ2V0KCk7CiAgICAgLy8g
VGhlc2UgYXJlIHByb2Nlc3NlZCBpbiBvcmRlciBiZWNhdXNlIGFuIGlucHV0IGltYWdlIGlzIGEg
YnV0dG9uLCBhbmQgYSBidXR0b24gaXMgYSBjb250cm9sLgogICAgIGVsc2UgaWYgKGJhY2tpbmdP
YmplY3QtPmlzSW5wdXRJbWFnZSgpKQpAQCAtMTI4Miw3ICsxMjkxLDcgQEAgQUxMT1dfREVQUkVD
QVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAgICAgZWxzZSBpZiAoYmFja2luZ09iamVjdC0+aXND
b250cm9sKCkpCiAgICAgICAgIG9iamVjdEF0dHJpYnV0ZXMgPSBjb250cm9sQXR0cnMuZ2V0KCku
Z2V0KCk7CiAKLSAgICBlbHNlIGlmIChiYWNraW5nT2JqZWN0LT5pc0dyb3VwKCkgfHwgYmFja2lu
Z09iamVjdC0+aXNMaXN0SXRlbSgpKQorICAgIGVsc2UgaWYgKGJhY2tpbmdPYmplY3QtPmlzR3Jv
dXAoKSB8fCBiYWNraW5nT2JqZWN0LT5pc0xpc3RJdGVtKCkgfHwgYmFja2luZ09iamVjdC0+cm9s
ZVZhbHVlKCkgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OkZpZ3VyZSkKICAgICAgICAgb2JqZWN0QXR0
cmlidXRlcyA9IGdyb3VwQXR0cnMuZ2V0KCkuZ2V0KCk7CiAgICAgZWxzZSBpZiAoYmFja2luZ09i
amVjdC0+aXNUYWJMaXN0KCkpCiAgICAgICAgIG9iamVjdEF0dHJpYnV0ZXMgPSB0YWJMaXN0QXR0
cnMuZ2V0KCkuZ2V0KCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5t
bQppbmRleCAyMDlkYzQ3M2ZkMzYuLmUwNzZkNmM2M2YzMSAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1h
Yy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCkBAIC0xNjIsNiArMTYyLDUyIEBAIHN0YXRpYyBpZCBh
dHRyaWJ1dGVWYWx1ZShpZCBlbGVtZW50LCBOU1N0cmluZyAqYXR0cmlidXRlKQogICAgIGlmIChb
YXR0cmlidXRlIGlzRXF1YWw6TlNBY2Nlc3NpYmlsaXR5Rm9jdXNlZFVJRWxlbWVudEF0dHJpYnV0
ZV0gJiYgW2VsZW1lbnQgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihhY2Nlc3NpYmlsaXR5
Rm9jdXNlZFVJRWxlbWVudCldKQogICAgICAgICByZXR1cm4gW2VsZW1lbnQgYWNjZXNzaWJpbGl0
eUZvY3VzZWRVSUVsZW1lbnRdOwogCisgICAgLy8gVGhlc2UgYXJlIGludGVybmFsIEFQSXMgdXNl
ZCBieSBEUlQvV0tUUjsgdGVzdHMgYXJlIGFsbG93ZWQgdG8gdXNlIHRoZW0gYnV0IHdlIGRvbid0
IHdhbnQgdG8gYWR2ZXJ0aXNlIHRoZW0uCisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJldGFp
blB0cjxOU0FycmF5Pj4gaW50ZXJuYWxBdHRyaWJ1dGVzID0gQFsKKyAgICAgICAgQCJBWEFSSUFQ
cmVzc2VkSXNQcmVzZW50IiwKKyAgICAgICAgQCJBWEFSSUFSb2xlIiwKKyAgICAgICAgQCJBWEF1
dG9jb21wbGV0ZVZhbHVlIiwKKyAgICAgICAgQCJBWENsaWNrUG9pbnQiLAorICAgICAgICBAIkFY
Q29udHJvbGxlckZvciIsCisgICAgICAgIEAiQVhDb250cm9sbGVycyIsCisgICAgICAgIEAiQVhE
UlRTcGVlY2hBdHRyaWJ1dGUiLAorICAgICAgICBAIkFYRGF0ZVRpbWVDb21wb25lbnRzVHlwZSIs
CisgICAgICAgIEAiQVhEZXNjcmliZWRCeSIsCisgICAgICAgIEAiQVhEZXNjcmlwdGlvbkZvciIs
CisgICAgICAgIEAiQVhEZXRhaWxzRm9yIiwKKyAgICAgICAgQCJBWEVycm9yTWVzc2FnZUZvciIs
CisgICAgICAgIEAiQVhGbG93RnJvbSIsCisgICAgICAgIEAiQVhJc0luQ2VsbCIsCisgICAgICAg
IEAiQVhJc0luRGVzY3JpcHRpb25MaXN0RGV0YWlsIiwKKyAgICAgICAgQCJBWElzSW5EZXNjcmlw
dGlvbkxpc3RUZXJtIiwKKyAgICAgICAgQCJBWElzSW5kZXRlcm1pbmF0ZSIsCisgICAgICAgIEAi
QVhJc011bHRpU2VsZWN0YWJsZSIsCisgICAgICAgIEAiQVhJc09uU2NyZWVuIiwKKyAgICAgICAg
QCJBWExhYmVsRm9yIiwKKyAgICAgICAgQCJBWExhYmVsbGVkQnkiLAorICAgICAgICBAIkFYTGlu
ZVJlY3RzQW5kVGV4dCIsCisgICAgICAgIEAiQVhPd25lcnMiLAorICAgICAgICBAIkFYU3RyaW5n
VmFsdWUiLAorICAgICAgICBAIkFYVmFsdWVBdXRvZmlsbFR5cGUiLAorCisgICAgICAgIC8vIEZJ
WE1FOiB0aGVzZSBzaG91bGRuJ3QgYmUgaGVyZSwgYnV0IHJlbW92aW5nIG9uZSBvZiB0aGVzZSBj
YXVzZXMgdGVzdHMgdG8gZmFpbC4KKyAgICAgICAgQCJBWEFSSUFDdXJyZW50IiwKKyAgICAgICAg
QCJBWEFSSUFMaXZlIiwKKyAgICAgICAgQCJBWERlc2NyaXB0aW9uIiwKKyAgICAgICAgQCJBWEtl
eVNob3J0Y3V0c1ZhbHVlIiwKKyAgICAgICAgQCJBWE9yaWVudGF0aW9uIiwKKyAgICAgICAgQCJB
WFBvcHVwVmFsdWUiLAorICAgICAgICBAIkFYUmVsYXRpdmVGcmFtZSIsCisgICAgICAgIEAiQVhS
ZXF1aXJlZCIsCisgICAgICAgIEAiQVhTb3J0RGlyZWN0aW9uIiwKKyAgICAgICAgQCJBWFZhbHVl
IiwKKyAgICAgICAgQCJBWFZpc2libGVDaGFyYWN0ZXJSYW5nZSIsCisgICAgXTsKKworICAgIE5T
QXJyYXk8TlNTdHJpbmcgKj4gKnN1cHBvcnRlZEF0dHJpYnV0ZXMgPSBbZWxlbWVudCBhY2Nlc3Np
YmlsaXR5QXR0cmlidXRlTmFtZXNdOworICAgIGlmICghW3N1cHBvcnRlZEF0dHJpYnV0ZXMgY29u
dGFpbnNPYmplY3Q6YXR0cmlidXRlXSAmJiAhW2ludGVybmFsQXR0cmlidXRlcy5nZXQoKSBjb250
YWluc09iamVjdDphdHRyaWJ1dGVdICYmICFbYXR0cmlidXRlIGlzRXF1YWxUb1N0cmluZzpOU0Fj
Y2Vzc2liaWxpdHlSb2xlQXR0cmlidXRlXSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKwogICAgIHJl
dHVybiBbZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6YXR0cmlidXRlXTsKIH0K
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1wcmVzc2Vk
LWJ1dHRvbi1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxp
dHkvbWFjL2FyaWEtcHJlc3NlZC1idXR0b24tYXR0cmlidXRlcy1leHBlY3RlZC50eHQKaW5kZXgg
YjZjMmI2NTMyYzlkLi5hNDZmODFkODE5YjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvbWFjL2FyaWEtcHJlc3NlZC1idXR0b24tYXR0cmlidXRlcy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1wcmVzc2VkLWJ1dHRvbi1h
dHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApAQCAtMiwzNCArMiwzNCBAQCBUaGlzIHRlc3QgZW5zdXJl
cyBhIHJvbGU9YnV0dG9uIGVsZW1lbnQgd2l0aCBhcmlhLXByZXNzZWQgaGFzIHRoZSByaWdodCBh
dHRyaWJ1dAogCiAjYnV0dG9uMTogQVhSb2xlOiBBWENoZWNrQm94CiAjYnV0dG9uMTogQVhTdWJy
b2xlOiBBWFRvZ2dsZQotI2J1dHRvbjE6IEFYVmFsdWU6IDEKKyNidXR0b24xOiBBWFRpdGxlOiBG
b28KICNidXR0b24xOiBBWEFSSUFQcmVzc2VkSXNQcmVzZW50OiB0cnVlCiAKICNidXR0b24yOiBB
WFJvbGU6IEFYQ2hlY2tCb3gKICNidXR0b24yOiBBWFN1YnJvbGU6IEFYVG9nZ2xlCi0jYnV0dG9u
MjogQVhWYWx1ZTogMAorI2J1dHRvbjI6IEFYVGl0bGU6IEJhcgogI2J1dHRvbjI6IEFYQVJJQVBy
ZXNzZWRJc1ByZXNlbnQ6IHRydWUKIAogI2J1dHRvbi13aXRob3V0LWluaXRpYWwtcHJlc3M6IEFY
Um9sZTogQVhCdXR0b24KICNidXR0b24td2l0aG91dC1pbml0aWFsLXByZXNzOiBBWFN1YnJvbGU6
Ci0jYnV0dG9uLXdpdGhvdXQtaW5pdGlhbC1wcmVzczogQVhWYWx1ZToKKyNidXR0b24td2l0aG91
dC1pbml0aWFsLXByZXNzOiBBWFRpdGxlOiBCYXoKICNidXR0b24td2l0aG91dC1pbml0aWFsLXBy
ZXNzOiBBWEFSSUFQcmVzc2VkSXNQcmVzZW50OiBmYWxzZQogCiBUb2dnbGluZyBhcmlhLXByZXNz
ZWQgc3RhdGUgb24gYm90aCBidXR0b25zLgogCiAjYnV0dG9uMTogQVhSb2xlOiBBWENoZWNrQm94
CiAjYnV0dG9uMTogQVhTdWJyb2xlOiBBWFRvZ2dsZQotI2J1dHRvbjE6IEFYVmFsdWU6IDAKKyNi
dXR0b24xOiBBWFRpdGxlOiBGb28KICNidXR0b24xOiBBWEFSSUFQcmVzc2VkSXNQcmVzZW50OiB0
cnVlCiAKICNidXR0b24yOiBBWFJvbGU6IEFYQ2hlY2tCb3gKICNidXR0b24yOiBBWFN1YnJvbGU6
IEFYVG9nZ2xlCi0jYnV0dG9uMjogQVhWYWx1ZTogMQorI2J1dHRvbjI6IEFYVGl0bGU6IEJhcgog
I2J1dHRvbjI6IEFYQVJJQVByZXNzZWRJc1ByZXNlbnQ6IHRydWUKIAogI2J1dHRvbi13aXRob3V0
LWluaXRpYWwtcHJlc3M6IEFYUm9sZTogQVhCdXR0b24KICNidXR0b24td2l0aG91dC1pbml0aWFs
LXByZXNzOiBBWFN1YnJvbGU6Ci0jYnV0dG9uLXdpdGhvdXQtaW5pdGlhbC1wcmVzczogQVhWYWx1
ZToKKyNidXR0b24td2l0aG91dC1pbml0aWFsLXByZXNzOiBBWFRpdGxlOiBCYXoKICNidXR0b24t
d2l0aG91dC1pbml0aWFsLXByZXNzOiBBWEFSSUFQcmVzc2VkSXNQcmVzZW50OiB0cnVlCiAKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1wcmVzc2VkLWJ1
dHRvbi1hdHRyaWJ1dGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9hcmlh
LXByZXNzZWQtYnV0dG9uLWF0dHJpYnV0ZXMuaHRtbAppbmRleCAwZTg0NzE1MTA3MWIuLjM0OTBi
MGUwMDNmMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1w
cmVzc2VkLWJ1dHRvbi1hdHRyaWJ1dGVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS9tYWMvYXJpYS1wcmVzc2VkLWJ1dHRvbi1hdHRyaWJ1dGVzLmh0bWwKQEAgLTE4LDcgKzE4
LDcgQEAKICAgICAgICAgY29uc3QgZWxlbWVudCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFj
Y2Vzc2libGVFbGVtZW50QnlJZChpZCk7CiAgICAgICAgIHRlc3RPdXRwdXQgKz0gYCMke2lkfTog
JHtlbGVtZW50LnJvbGV9XG5gOwogICAgICAgICB0ZXN0T3V0cHV0ICs9IGAjJHtpZH06ICR7ZWxl
bWVudC5zdWJyb2xlfVxuYDsKLSAgICAgICAgdGVzdE91dHB1dCArPSBgIyR7aWR9OiAke2VsZW1l
bnQuc3RyaW5nVmFsdWV9XG5gOworICAgICAgICB0ZXN0T3V0cHV0ICs9IGAjJHtpZH06ICR7ZWxl
bWVudC50aXRsZX1cbmA7CiAgICAgICAgIHRlc3RPdXRwdXQgKz0gYCMke2lkfTogQVhBUklBUHJl
c3NlZElzUHJlc2VudDogJHtlbGVtZW50LmJvb2xBdHRyaWJ1dGVWYWx1ZSgiQVhBUklBUHJlc3Nl
ZElzUHJlc2VudCIpfVxuXG5gOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9tYWMvYXJpYS10cmVlLXdpdGgtcHJlc2VudGF0aW9uLXJvbGUuaHRtbCBiL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2FyaWEtdHJlZS13aXRoLXByZXNlbnRhdGlvbi1y
b2xlLmh0bWwKaW5kZXggY2MzNzYxMDIxMjQ1Li4wYzU2M2RlZmI5ZTUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2FyaWEtdHJlZS13aXRoLXByZXNlbnRhdGlvbi1y
b2xlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS10cmVlLXdp
dGgtcHJlc2VudGF0aW9uLXJvbGUuaHRtbApAQCAtMzMsNyArMzMsNyBAQAogICAgIH0KICAgICAK
ICAgICBmdW5jdGlvbiBkdW1wQWNjZXNzaWJpbGl0eUNoaWxkcmVuKGVsZW1lbnQsIGxldmVsKSB7
Ci0gICAgICAgIGlmIChlbGVtZW50LnN0cmluZ1ZhbHVlLmluZGV4T2YoJ0VuZCBvZiB0ZXN0Jykg
Pj0gMCkKKyAgICAgICAgaWYgKGVsZW1lbnQuc3RyaW5nVmFsdWUgJiYgZWxlbWVudC5zdHJpbmdW
YWx1ZS5pbmRleE9mKCdFbmQgb2YgdGVzdCcpID49IDApCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICAgICAgdmFyIGluZGVudCA9ICIiOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS9tYWMvYm91bmRzLWZvci1yYW5nZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9ib3VuZHMtZm9yLXJhbmdlLWV4cGVjdGVkLnR4dAppbmRl
eCA3YmU4OWNhY2U4OTYuLmU2MGEzZWMzMzFmYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9tYWMvYm91bmRzLWZvci1yYW5nZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvYm91bmRzLWZvci1yYW5nZS1leHBlY3RlZC50eHQKQEAg
LTMwLDYgKzMwLDcgQEAgQVhGb2N1c2FibGVBbmNlc3RvcjogPEFYU3RhdGljVGV4dD4KIEFYRWRp
dGFibGVBbmNlc3RvcjogKG51bGwpCiBBWEhpZ2hlc3RFZGl0YWJsZUFuY2VzdG9yOiAobnVsbCkK
IEFYSW50ZXJzZWN0aW9uV2l0aFNlbGVjdGlvblJhbmdlOiAobnVsbCkKK0FYVmlzaWJsZUNoYXJh
Y3RlclJhbmdlOiBOU1JhbmdlOiB7MCwgMTYyfQogQVhFbGVtZW50QnVzeTogMAogQVhQYXRoOiAo
bnVsbCkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvaW50ZXJu
YWwtbGluay1hbmNob3JzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkv
bWFjL2ludGVybmFsLWxpbmstYW5jaG9ycy1leHBlY3RlZC50eHQKaW5kZXggNmZlNTJkYmVjYmU5
Li43MTU5M2UzMmQ3OTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFj
L2ludGVybmFsLWxpbmstYW5jaG9ycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9tYWMvaW50ZXJuYWwtbGluay1hbmNob3JzLWV4cGVjdGVkLnR4dApAQCAtMzEs
NiArMzEsNyBAQCBBWEZvY3VzYWJsZUFuY2VzdG9yOiA8QVhTdGF0aWNUZXh0PgogQVhFZGl0YWJs
ZUFuY2VzdG9yOiAobnVsbCkKIEFYSGlnaGVzdEVkaXRhYmxlQW5jZXN0b3I6IChudWxsKQogQVhJ
bnRlcnNlY3Rpb25XaXRoU2VsZWN0aW9uUmFuZ2U6IChudWxsKQorQVhWaXNpYmxlQ2hhcmFjdGVy
UmFuZ2U6IE5TUmFuZ2U6IHswLCA5fQogQVhFbGVtZW50QnVzeTogMAogQVhQYXRoOiAobnVsbCkK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS90YWJsZS13aXRoLXJ1bGVz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGFibGUtd2l0aC1ydWxl
cy1leHBlY3RlZC50eHQKaW5kZXggOWU5ZjhhZWJkNTU2Li45MmQzMWRlODAzZTUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGFibGUtd2l0aC1ydWxlcy1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS90YWJsZS13aXRoLXJ1bGVzLWV4cGVj
dGVkLnR4dApAQCAtNDgsNiArNDgsOCBAQCBBWFJvd0NvdW50OiAxCiBBWEFSSUFDb2x1bW5Db3Vu
dDogMAogQVhBUklBUm93Q291bnQ6IDAKIEFYU2VsZWN0ZWRDZWxsczogPGFycmF5IG9mIHNpemUg
MD4KK0FYU2VsZWN0ZWRDaGlsZHJlbjogKG51bGwpCitBWFRhYmxlTGV2ZWw6IDEKIEFYRWxlbWVu
dEJ1c3k6IDAKIAogCkBAIC05NCw2ICs5Niw4IEBAIEFYUm93Q291bnQ6IDEKIEFYQVJJQUNvbHVt
bkNvdW50OiAwCiBBWEFSSUFSb3dDb3VudDogMAogQVhTZWxlY3RlZENlbGxzOiA8YXJyYXkgb2Yg
c2l6ZSAwPgorQVhTZWxlY3RlZENoaWxkcmVuOiAobnVsbCkKK0FYVGFibGVMZXZlbDogMQogQVhF
bGVtZW50QnVzeTogMAogCiAKQEAgLTE0MCw2ICsxNDQsOCBAQCBBWFJvd0NvdW50OiAxCiBBWEFS
SUFDb2x1bW5Db3VudDogMAogQVhBUklBUm93Q291bnQ6IDAKIEFYU2VsZWN0ZWRDZWxsczogPGFy
cmF5IG9mIHNpemUgMD4KK0FYU2VsZWN0ZWRDaGlsZHJlbjogKG51bGwpCitBWFRhYmxlTGV2ZWw6
IDEKIEFYRWxlbWVudEJ1c3k6IDAKIAogCkBAIC0xNzMsNyArMTc5LDcgQEAgQVhET01DbGFzc0xp
c3Q6IDxhcnJheSBvZiBzaXplIDA+CiBBWEZvY3VzYWJsZUFuY2VzdG9yOiA8QVhHcm91cD4KIEFY
RWRpdGFibGVBbmNlc3RvcjogKG51bGwpCiBBWEhpZ2hlc3RFZGl0YWJsZUFuY2VzdG9yOiAobnVs
bCkKLUFYVGl0bGVVSUVsZW1lbnQ6IChudWxsKQorQVhJbmxpbmVUZXh0OiAwCiBBWEVsZW1lbnRC
dXN5OiAwCiAKIApAQCAtMjA3LDcgKzIxMyw3IEBAIEFYRE9NQ2xhc3NMaXN0OiA8YXJyYXkgb2Yg
c2l6ZSAwPgogQVhGb2N1c2FibGVBbmNlc3RvcjogPEFYR3JvdXA+CiBBWEVkaXRhYmxlQW5jZXN0
b3I6IChudWxsKQogQVhIaWdoZXN0RWRpdGFibGVBbmNlc3RvcjogKG51bGwpCi1BWFRpdGxlVUlF
bGVtZW50OiAobnVsbCkKK0FYSW5saW5lVGV4dDogMAogQVhFbGVtZW50QnVzeTogMAogCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2xpc3RzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2xpc3Rz
LWV4cGVjdGVkLnR4dAppbmRleCA3ZDNjYzNmMmEwMjcuLmZkNDFiMDFhM2UwNCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvbGlzdHMtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2xpc3RzLWV4
cGVjdGVkLnR4dApAQCAtNDQsNyArNDQsNiBAQCBBWEhpZ2hlc3RFZGl0YWJsZUFuY2VzdG9yOiAo
bnVsbCkKIEFYU2VsZWN0ZWRDaGlsZHJlbjogPGFycmF5IG9mIHNpemUgMD4KIEFYVmlzaWJsZUNo
aWxkcmVuOiA8YXJyYXkgb2Ygc2l6ZSAyPgogQVhPcmllbnRhdGlvbjogQVhWZXJ0aWNhbE9yaWVu
dGF0aW9uCi1BWFRpdGxlVUlFbGVtZW50OiAobnVsbCkKIEFYRWxlbWVudEJ1c3k6IDAKIAogLS0t
LS0tLS0tLS0tCkBAIC04MSw3ICs4MCw2IEBAIEFYSGlnaGVzdEVkaXRhYmxlQW5jZXN0b3I6IChu
dWxsKQogQVhTZWxlY3RlZENoaWxkcmVuOiA8YXJyYXkgb2Ygc2l6ZSAwPgogQVhWaXNpYmxlQ2hp
bGRyZW46IDxhcnJheSBvZiBzaXplIDI+CiBBWE9yaWVudGF0aW9uOiBBWFZlcnRpY2FsT3JpZW50
YXRpb24KLUFYVGl0bGVVSUVsZW1lbnQ6IChudWxsKQogQVhFbGVtZW50QnVzeTogMAogCiAtLS0t
LS0tLS0tLS0KQEAgLTExOCw3ICsxMTYsNiBAQCBBWEhpZ2hlc3RFZGl0YWJsZUFuY2VzdG9yOiAo
bnVsbCkKIEFYU2VsZWN0ZWRDaGlsZHJlbjogKG51bGwpCiBBWFZpc2libGVDaGlsZHJlbjogPGFy
cmF5IG9mIHNpemUgNT4KIEFYT3JpZW50YXRpb246IEFYVmVydGljYWxPcmllbnRhdGlvbgotQVhU
aXRsZVVJRWxlbWVudDogKG51bGwpCiBBWEVsZW1lbnRCdXN5OiAwCiAKIC0tLS0tLS0tLS0tLQpA
QCAtMTU0LDcgKzE1MSw3IEBAIEFYRE9NQ2xhc3NMaXN0OiA8YXJyYXkgb2Ygc2l6ZSAwPgogQVhG
b2N1c2FibGVBbmNlc3RvcjogPEFYR3JvdXA+CiBBWEVkaXRhYmxlQW5jZXN0b3I6IChudWxsKQog
QVhIaWdoZXN0RWRpdGFibGVBbmNlc3RvcjogKG51bGwpCi1BWFRpdGxlVUlFbGVtZW50OiAobnVs
bCkKK0FYSW5saW5lVGV4dDogMAogQVhFbGVtZW50QnVzeTogMAogCiAtLS0tLS0tLS0tLS0KQEAg
LTE4OCw3ICsxODUsNyBAQCBBWERPTUNsYXNzTGlzdDogPGFycmF5IG9mIHNpemUgMD4KIEFYRm9j
dXNhYmxlQW5jZXN0b3I6IDxBWEdyb3VwPgogQVhFZGl0YWJsZUFuY2VzdG9yOiAobnVsbCkKIEFY
SGlnaGVzdEVkaXRhYmxlQW5jZXN0b3I6IChudWxsKQotQVhUaXRsZVVJRWxlbWVudDogKG51bGwp
CitBWElubGluZVRleHQ6IDAKIEFYRWxlbWVudEJ1c3k6IDAKIAogLS0tLS0tLS0tLS0tCkBAIC0y
MjQsNyArMjIxLDcgQEAgQVhET01DbGFzc0xpc3Q6IDxhcnJheSBvZiBzaXplIDA+CiBBWEZvY3Vz
YWJsZUFuY2VzdG9yOiA8QVhHcm91cD4KIEFYRWRpdGFibGVBbmNlc3RvcjogKG51bGwpCiBBWEhp
Z2hlc3RFZGl0YWJsZUFuY2VzdG9yOiAobnVsbCkKLUFYVGl0bGVVSUVsZW1lbnQ6IChudWxsKQor
QVhJbmxpbmVUZXh0OiAwCiBBWEVsZW1lbnRCdXN5OiAwCiAKIC0tLS0tLS0tLS0tLQpAQCAtMjU4
LDcgKzI1NSw3IEBAIEFYRE9NQ2xhc3NMaXN0OiA8YXJyYXkgb2Ygc2l6ZSAwPgogQVhGb2N1c2Fi
bGVBbmNlc3RvcjogPEFYR3JvdXA+CiBBWEVkaXRhYmxlQW5jZXN0b3I6IChudWxsKQogQVhIaWdo
ZXN0RWRpdGFibGVBbmNlc3RvcjogKG51bGwpCi1BWFRpdGxlVUlFbGVtZW50OiAobnVsbCkKK0FY
SW5saW5lVGV4dDogMAogQVhFbGVtZW50QnVzeTogMAogCiAtLS0tLS0tLS0tLS0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>470662</attachid>
            <date>2024-03-29 08:49:54 -0700</date>
            <delta_ts>2024-04-02 12:27:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-271674-20240329084953.patch</filename>
            <type>text/plain</type>
            <size>22982</size>
            <attacher name="Dominic Mazzoni">dm_mazzoni</attacher>
            
              <data encoding="base64">RnJvbSBlZWZmODg5ZDhkMDc4Mjk4MjM5ZmY5OWQxN2I5YWI0MjUxZDY4NThjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb21pbmljIE1henpvbmkgPGRtX21henpvbmlAYXBwbGUuY29t
PgpEYXRlOiBUdWUsIDI2IE1hciAyMDI0IDA5OjIzOjAxIC0wNzAwClN1YmplY3Q6IFtQQVRDSF0g
QVg6IE1hYyBsYXlvdXQgdGVzdHMgc2hvdWxkbid0IGFjY2VzcyBhdHRyaWJ1dGVzIHRoYXQgYXJl
bid0CiBleHBvc2VkIGZvciB0aGF0IGVsZW1lbnQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTI3MTY3NAogcmRhcjovL3Byb2JsZW0vMTI1MzczNjk0CgpSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KCkNoZWNrcyBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlTmFtZXMgYmVm
b3JlIGNhbGxpbmcgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlIGluCkFjY2Vzc2liaWxpdHlV
SUVsZW1lbnRNYWMuIFJldHVybnMgbmlsIGlmIHF1ZXJ5aW5nIGZvciBhbiBhdHRyaWJ1dGUgdGhh
dCBpc24ndApmb3VuZC4KClRoYXQgbGVkIHRvIGZpbmRpbmcgbG90cyBvZiBleGFtcGxlcyBvZiBh
dHRyaWJ1dGVzIHRoYXQgb3VnaHQgdG8gYmUgZXhwb3NlZAppbiBhY2Nlc3NpYmlsaXR5QXR0cmli
dXRlTmFtZXMgYnV0IHdlcmVuJ3Qgbm93LgoKSW4gdGhpcyBwYXRjaCwgSSBhdHRlbXB0ZWQgdG8g
Zml4IHRoZSBvbmVzIHRoYXQgaGF2ZSBhIGNsZWFyLCBzdHJhaWdodGZvcndhcmQKZml4LCBhbmQg
dGhlbiBhZGRlZCBhbiBleGNlcHRpb24gZm9yIGFueXRoaW5nIHRoYXQgd2Fzbid0IHN0cmFpZ2h0
Zm9yd2FyZC4KClRoZSBpZGVhIGlzIHRvIGZvbGxvdyB1cCB1bnRpbCBhbGwgb2YgdGhlIGV4Y2Vw
dGlvbnMgYXJlIHJlbW92ZWQuCgoqIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbGlzdHMtZXhw
ZWN0ZWQudHh0OiBSZW1vdmVkLgoqIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2FyaWEt
cHJlc3NlZC1idXR0b24tYXR0cmlidXRlcy1leHBlY3RlZC50eHQ6CiogTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9tYWMvYXJpYS1wcmVzc2VkLWJ1dHRvbi1hdHRyaWJ1dGVzLmh0bWw6CiogTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS10cmVlLXdpdGgtcHJlc2VudGF0aW9uLXJv
bGUuaHRtbDoKKiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9ib3VuZHMtZm9yLXJhbmdl
LWV4cGVjdGVkLnR4dDoKKiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9pbnRlcm5hbC1s
aW5rLWFuY2hvcnMtZXhwZWN0ZWQudHh0OgoqIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGFi
bGUtd2l0aC1ydWxlcy1leHBlY3RlZC50eHQ6CiogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Fj
Y2Vzc2liaWxpdHkvbGlzdHMtZXhwZWN0ZWQudHh0OgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2Jq
ZWN0OjpzdXBwb3J0c0V4cGFuZGVkIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbToKKC1bV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXIgX2FkZGl0aW9uYWxBY2Nlc3NpYmlsaXR5QXR0cmlidXRlTmFt
ZXM6XSk6CigtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIEFMTE9XX0RFUFJFQ0FURURf
SU1QTEVNRU5UQVRJT05TX0VORF0pOgoqIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW06CihXVFI6OmF0dHJpYnV0ZVZh
bHVlKToKLS0tCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCAgICAg
fCAgMyArCiAuLi4vbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tICAgfCA1
NyArKysrKysrKysrKy0tLS0tLS0tCiAuLi4vbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMu
bW0gICAgICAgICAgfCA0NyArKysrKysrKysrKysrKysKIC4uLnJpYS1wcmVzc2VkLWJ1dHRvbi1h
dHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCB8IDEyICsrLS0KIC4uLi9tYWMvYXJpYS1wcmVzc2VkLWJ1
dHRvbi1hdHRyaWJ1dGVzLmh0bWwgICB8ICAyICstCiAuLi4vbWFjL2FyaWEtdHJlZS13aXRoLXBy
ZXNlbnRhdGlvbi1yb2xlLmh0bWwgfCAgMiArLQogLi4uL21hYy9ib3VuZHMtZm9yLXJhbmdlLWV4
cGVjdGVkLnR4dCAgICAgICAgIHwgIDEgKwogLi4uL21hYy9pbnRlcm5hbC1saW5rLWFuY2hvcnMt
ZXhwZWN0ZWQudHh0ICAgIHwgIDEgKwogLi4uL3RhYmxlLXdpdGgtcnVsZXMtZXhwZWN0ZWQudHh0
ICAgICAgICAgICAgIHwgMTAgKysrLQogLi4uL21hYy9hY2Nlc3NpYmlsaXR5L2xpc3RzLWV4cGVj
dGVkLnR4dCAgICAgIHwgMTEgKystLQogMTAgZmlsZXMgY2hhbmdlZCwgMTA1IGluc2VydGlvbnMo
KyksIDQxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCmluZGV4IDZmYWI4NmViMzNjOC4uMTc3MTAzNTBm
MDdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5jcHAKQEAgLTM0NDksNiArMzQ0OSw5IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU9i
amVjdDo6c3VwcG9ydHNFeHBhbmRlZCgpIGNvbnN0CiAgICAgaWYgKHBvcG92ZXJUYXJnZXRFbGVt
ZW50KCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCisgICAgaWYgKGlzPEhUTUxEZXRhaWxzRWxl
bWVudD4obm9kZSgpKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKICAgICBzd2l0Y2ggKHJvbGVW
YWx1ZSgpKSB7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGV0YWlsczoKICAgICAgICAg
cmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21h
Yy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCmluZGV4
IDA1ODY5ZDBjNDQ2Ni4uMmU4NWZmMjQ0YmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlck1hYy5tbQpAQCAtODIzLDcgKzgyMyw4IEBAIC0gKE5TQXJyYXkqKV9hZGRpdGlvbmFs
QWNjZXNzaWJpbGl0eUF0dHJpYnV0ZU5hbWVzOihjb25zdCBSZWZQdHI8QVhDb3JlT2JqZWN0PiYp
CiAgICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzU2Nyb2xsYmFyKCkKICAgICAgICAgfHwgYmFja2lu
Z09iamVjdC0+aXNSYWRpb0dyb3VwKCkKICAgICAgICAgfHwgYmFja2luZ09iamVjdC0+aXNTcGxp
dHRlcigpCi0gICAgICAgIHx8IGJhY2tpbmdPYmplY3QtPmlzVG9vbGJhcigpKQorICAgICAgICB8
fCBiYWNraW5nT2JqZWN0LT5pc1Rvb2xiYXIoKQorICAgICAgICB8fCBiYWNraW5nT2JqZWN0LT5y
b2xlVmFsdWUoKSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6SG9yaXpvbnRhbFJ1bGUpCiAgICAgICAg
IFthZGRpdGlvbmFsIGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlPcmllbnRhdGlvbkF0dHJpYnV0
ZV07CiAKICAgICBpZiAoYmFja2luZ09iamVjdC0+c3VwcG9ydHNEcmFnZ2luZygpKQpAQCAtOTA1
LDYgKzkwNiwyNCBAQCAtIChOU0FycmF5KilfYWRkaXRpb25hbEFjY2Vzc2liaWxpdHlBdHRyaWJ1
dGVOYW1lczooY29uc3QgUmVmUHRyPEFYQ29yZU9iamVjdD4mKQogICAgIGlmIChiYWNraW5nT2Jq
ZWN0LT5zdXBwb3J0c0V4cGFuZGVkVGV4dFZhbHVlKCkpCiAgICAgICAgIFthZGRpdGlvbmFsIGFk
ZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlFeHBhbmRlZFRleHRWYWx1ZUF0dHJpYnV0ZV07CiAKKyAg
ICBpZiAoIWJhY2tpbmdPYmplY3QtPmJyYWlsbGVMYWJlbCgpLmlzRW1wdHkoKSkKKyAgICAgICAg
W2FkZGl0aW9uYWwgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eUJyYWlsbGVMYWJlbEF0dHJpYnV0
ZV07CisKKyAgICBpZiAoIWJhY2tpbmdPYmplY3QtPmJyYWlsbGVSb2xlRGVzY3JpcHRpb24oKS5p
c0VtcHR5KCkpCisgICAgICAgIFthZGRpdGlvbmFsIGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlC
cmFpbGxlUm9sZURlc2NyaXB0aW9uQXR0cmlidXRlXTsKKworICAgIGlmIChiYWNraW5nT2JqZWN0
LT5kZXRhaWxlZEJ5T2JqZWN0cygpLnNpemUoKSkKKyAgICAgICAgW2FkZGl0aW9uYWwgYWRkT2Jq
ZWN0OkAiQVhEZXRhaWxzRWxlbWVudHMiXTsKKworICAgIGlmIChiYWNraW5nT2JqZWN0LT5lcnJv
ck1lc3NhZ2VPYmplY3RzKCkuc2l6ZSgpKQorICAgICAgICBbYWRkaXRpb25hbCBhZGRPYmplY3Q6
QCJBWEVycm9yTWVzc2FnZUVsZW1lbnRzIl07CisKKyAgICBpZiAoIWJhY2tpbmdPYmplY3QtPmtl
eVNob3J0Y3V0cygpLmlzRW1wdHkoKSkKKyAgICAgICAgW2FkZGl0aW9uYWwgYWRkT2JqZWN0Ok5T
QWNjZXNzaWJpbGl0eUtleVNob3J0Y3V0c0F0dHJpYnV0ZV07CisKKyAgICBpZiAoYmFja2luZ09i
amVjdC0+dGl0bGVVSUVsZW1lbnQoKSkKKyAgICAgICAgW2FkZGl0aW9uYWwgYWRkT2JqZWN0Ok5T
QWNjZXNzaWJpbGl0eVRpdGxlVUlFbGVtZW50QXR0cmlidXRlXTsKKwogI2lmIEVOQUJMRShBQ0NF
U1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpCiAgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmlzSXNvbGF0
ZWRUcmVlRW5hYmxlZCgpKQogICAgICAgICBbYWRkaXRpb25hbCBhZGRPYmplY3Q6TlNBY2Nlc3Np
YmlsaXR5UmVsYXRpdmVGcmFtZUF0dHJpYnV0ZV07CkBAIC05NzksMTUgKzk5OCw2IEBAIEFMTE9X
X0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogICAgICAgICBbdGVtcEFycmF5IGFkZE9i
amVjdDpOU0FjY2Vzc2liaWxpdHlMaW5rUmVsYXRpb25zaGlwVHlwZUF0dHJpYnV0ZV07CiAgICAg
ICAgIHJldHVybiB0ZW1wQXJyYXk7CiAgICAgfSgpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxSZXRhaW5QdHI8TlNBcnJheT4+IGNvbW1vbk1lbnVBdHRycyA9IEBbCi0gICAgICAgIE5TQWNj
ZXNzaWJpbGl0eVJvbGVBdHRyaWJ1dGUsCi0gICAgICAgIE5TQWNjZXNzaWJpbGl0eVJvbGVEZXNj
cmlwdGlvbkF0dHJpYnV0ZSwKLSAgICAgICAgTlNBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5BdHRyaWJ1
dGUsCi0gICAgICAgIE5TQWNjZXNzaWJpbGl0eVBhcmVudEF0dHJpYnV0ZSwKLSAgICAgICAgTlNB
Y2Nlc3NpYmlsaXR5RW5hYmxlZEF0dHJpYnV0ZSwKLSAgICAgICAgTlNBY2Nlc3NpYmlsaXR5UG9z
aXRpb25BdHRyaWJ1dGUsCi0gICAgICAgIE5TQWNjZXNzaWJpbGl0eVNpemVBdHRyaWJ1dGUsCi0g
ICAgXTsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQgd2ViQXJlYUF0dHJzID0gW10gewogICAg
ICAgICBhdXRvIHRlbXBBcnJheSA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5p
dFdpdGhBcnJheTphdHRyaWJ1dGVzLmdldCgpLmdldCgpXSk7CiAgICAgICAgIC8vIFdlYkFyZWFz
IHNob3VsZCBub3QgZXhwb3NlIEFYU3Vicm9sZS4KQEAgLTEwMTIsMTEgKzEwMjIsMTEgQEAgQUxM
T1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAgICAgICAgIFt0ZW1wQXJyYXkgYWRk
T2JqZWN0Ok5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dFJhbmdlQXR0cmlidXRlXTsKICAgICAg
ICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5VmlzaWJsZUNoYXJhY3RlclJh
bmdlQXR0cmlidXRlXTsKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmls
aXR5SW5zZXJ0aW9uUG9pbnRMaW5lTnVtYmVyQXR0cmlidXRlXTsKLSAgICAgICAgW3RlbXBBcnJh
eSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5VGl0bGVVSUVsZW1lbnRBdHRyaWJ1dGVdOwogICAg
ICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlBY2Nlc3NLZXlBdHRyaWJ1
dGVdOwogICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlSZXF1aXJl
ZEF0dHJpYnV0ZV07CiAgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0
eUludmFsaWRBdHRyaWJ1dGVdOwogICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vz
c2liaWxpdHlQbGFjZWhvbGRlclZhbHVlQXR0cmlidXRlXTsKKyAgICAgICAgW3RlbXBBcnJheSBh
ZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5VmFsdWVBdXRvZmlsbEF2YWlsYWJsZUF0dHJpYnV0ZV07
CiAgICAgICAgIHJldHVybiB0ZW1wQXJyYXk7CiAgICAgfSgpOwogICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZCBsaXN0QXR0cnMgPSBbXSB7CkBAIC0xMDI0LDcgKzEwMzQsNiBAQCBBTExPV19ERVBS
RUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6
TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDaGlsZHJlbkF0dHJpYnV0ZV07CiAgICAgICAgIFt0ZW1w
QXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eVZpc2libGVDaGlsZHJlbkF0dHJpYnV0ZV07
CiAgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eU9yaWVudGF0aW9u
QXR0cmlidXRlXTsKLSAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5
VGl0bGVVSUVsZW1lbnRBdHRyaWJ1dGVdOwogICAgICAgICByZXR1cm4gdGVtcEFycmF5OwogICAg
IH0oKTsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQgbGlzdEJveEF0dHJzID0gW10gewpAQCAt
MTA0MSwyNSArMTA1MCwyMiBAQCBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQK
ICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5TWF4VmFsdWVBdHRy
aWJ1dGVdOwogICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlPcmll
bnRhdGlvbkF0dHJpYnV0ZV07CiAgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNz
aWJpbGl0eVZhbHVlRGVzY3JpcHRpb25BdHRyaWJ1dGVdOwotICAgICAgICBbdGVtcEFycmF5IGFk
ZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlUaXRsZVVJRWxlbWVudEF0dHJpYnV0ZV07CiAgICAgICAg
IHJldHVybiB0ZW1wQXJyYXk7CiAgICAgfSgpOwogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZCBt
ZW51QmFyQXR0cnMgPSBbXSB7Ci0gICAgICAgIGF1dG8gdGVtcEFycmF5ID0gYWRvcHROUyhbW05T
TXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aEFycmF5OmNvbW1vbk1lbnVBdHRycy5nZXQoKS5n
ZXQoKV0pOworICAgICAgICBhdXRvIHRlbXBBcnJheSA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJh
eSBhbGxvY10gaW5pdFdpdGhBcnJheTphdHRyaWJ1dGVzLmdldCgpLmdldCgpXSk7CiAgICAgICAg
IFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkQ2hpbGRyZW5BdHRy
aWJ1dGVdOwotICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlUaXRs
ZVVJRWxlbWVudEF0dHJpYnV0ZV07CiAgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNj
ZXNzaWJpbGl0eU9yaWVudGF0aW9uQXR0cmlidXRlXTsKICAgICAgICAgcmV0dXJuIHRlbXBBcnJh
eTsKICAgICB9KCk7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkIG1lbnVBdHRycyA9IFtdIHsK
LSAgICAgICAgYXV0byB0ZW1wQXJyYXkgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2Nd
IGluaXRXaXRoQXJyYXk6Y29tbW9uTWVudUF0dHJzLmdldCgpLmdldCgpXSk7CisgICAgICAgIGF1
dG8gdGVtcEFycmF5ID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aEFy
cmF5OmF0dHJpYnV0ZXMuZ2V0KCkuZ2V0KCldKTsKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmpl
Y3Q6TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRDaGlsZHJlbkF0dHJpYnV0ZV07Ci0gICAgICAgIFt0
ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eVRpdGxlVUlFbGVtZW50QXR0cmlidXRl
XTsKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5T3JpZW50YXRp
b25BdHRyaWJ1dGVdOwogICAgICAgICByZXR1cm4gdGVtcEFycmF5OwogICAgIH0oKTsKICAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQgbWVudUl0ZW1BdHRycyA9IFtdIHsKLSAgICAgICAgYXV0byB0
ZW1wQXJyYXkgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoQXJyYXk6
Y29tbW9uTWVudUF0dHJzLmdldCgpLmdldCgpXSk7CisgICAgICAgIGF1dG8gdGVtcEFycmF5ID0g
YWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aEFycmF5OmF0dHJpYnV0ZXMu
Z2V0KCkuZ2V0KCldKTsKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmls
aXR5VGl0bGVBdHRyaWJ1dGVdOwogICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vz
c2liaWxpdHlEZXNjcmlwdGlvbkF0dHJpYnV0ZV07CiAgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2Jq
ZWN0Ok5TQWNjZXNzaWJpbGl0eUhlbHBBdHRyaWJ1dGVdOwpAQCAtMTA4OCw3ICsxMDk0LDYgQEAg
QUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAgICAgICAgIE5TQWNjZXNzaWJp
bGl0eUNoaWxkcmVuQXR0cmlidXRlLAogICAgIF07CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PFJldGFpblB0cjxOU0FycmF5Pj4gc2hhcmVkQ29udHJvbEF0dHJzID0gQFsKLSAgICAgICAgTlNB
Y2Nlc3NpYmlsaXR5VGl0bGVVSUVsZW1lbnRBdHRyaWJ1dGUsCiAgICAgICAgIE5TQWNjZXNzaWJp
bGl0eUFjY2Vzc0tleUF0dHJpYnV0ZSwKICAgICAgICAgTlNBY2Nlc3NpYmlsaXR5UmVxdWlyZWRB
dHRyaWJ1dGUsCiAgICAgICAgIE5TQWNjZXNzaWJpbGl0eUludmFsaWRBdHRyaWJ1dGUsCkBAIC0x
MTA3LDggKzExMTIsOCBAQCBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQKICAg
ICAgICAgYXV0byB0ZW1wQXJyYXkgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGlu
aXRXaXRoQXJyYXk6YXR0cmlidXRlcy5nZXQoKS5nZXQoKV0pOwogICAgICAgICAvLyBCdXR0b25z
IHNob3VsZCBub3QgZXhwb3NlIEFYVmFsdWUuCiAgICAgICAgIFt0ZW1wQXJyYXkgcmVtb3ZlT2Jq
ZWN0Ok5TQWNjZXNzaWJpbGl0eVZhbHVlQXR0cmlidXRlXTsKLSAgICAgICAgW3RlbXBBcnJheSBh
ZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5VGl0bGVVSUVsZW1lbnRBdHRyaWJ1dGVdOwogICAgICAg
ICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlBY2Nlc3NLZXlBdHRyaWJ1dGVd
OworICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlJbnZhbGlkQXR0
cmlidXRlXTsKICAgICAgICAgcmV0dXJuIHRlbXBBcnJheTsKICAgICB9KCk7CiAgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkIGNvbWJvQm94QXR0cnMgPSBbXSB7CkBAIC0xMTM3LDYgKzExNDIsOCBA
QCBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQKICAgICAgICAgW3RlbXBBcnJh
eSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5QVJJQUNvbHVtbkNvdW50QXR0cmlidXRlXTsKICAg
ICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5QVJJQVJvd0NvdW50QXR0
cmlidXRlXTsKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5U2Vs
ZWN0ZWRDZWxsc0F0dHJpYnV0ZV07CisgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNj
ZXNzaWJpbGl0eVNlbGVjdGVkQ2hpbGRyZW5BdHRyaWJ1dGVdOworICAgICAgICBbdGVtcEFycmF5
IGFkZE9iamVjdDpAIkFYVGFibGVMZXZlbCJdOwogICAgICAgICByZXR1cm4gdGVtcEFycmF5Owog
ICAgIH0oKTsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQgdGFibGVSb3dBdHRycyA9IFtdIHsK
QEAgLTExNjQsNyArMTE3MSw3IEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VO
RAogICAgIH0oKTsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQgZ3JvdXBBdHRycyA9IFtdIHsK
ICAgICAgICAgYXV0byB0ZW1wQXJyYXkgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2Nd
IGluaXRXaXRoQXJyYXk6YXR0cmlidXRlcy5nZXQoKS5nZXQoKV0pOwotICAgICAgICBbdGVtcEFy
cmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlUaXRsZVVJRWxlbWVudEF0dHJpYnV0ZV07Cisg
ICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eUlubGluZVRleHRBdHRy
aWJ1dGVdOwogICAgICAgICByZXR1cm4gdGVtcEFycmF5OwogICAgIH0oKTsKICAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQgaW5wdXRJbWFnZUF0dHJzID0gW10gewpAQCAtMTE3NCw3ICsxMTgxLDYg
QEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAgICAgfSgpOwogICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZCBzZWN1cmVGaWVsZEF0dHJpYnV0ZXMgPSBbXSB7CiAgICAgICAg
IGF1dG8gdGVtcEFycmF5ID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0
aEFycmF5OmF0dHJpYnV0ZXMuZ2V0KCkuZ2V0KCldKTsKLSAgICAgICAgW3RlbXBBcnJheSBhZGRP
YmplY3Q6TlNBY2Nlc3NpYmlsaXR5VGl0bGVVSUVsZW1lbnRBdHRyaWJ1dGVdOwogICAgICAgICBb
dGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlSZXF1aXJlZEF0dHJpYnV0ZV07CiAg
ICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eUludmFsaWRBdHRyaWJ1
dGVdOwogICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlQbGFjZWhv
bGRlclZhbHVlQXR0cmlidXRlXTsKQEAgLTExODUsNiArMTE5MSw3IEBAIEFMTE9XX0RFUFJFQ0FU
RURfSU1QTEVNRU5UQVRJT05TX0VORAogICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0Fj
Y2Vzc2liaWxpdHlUYWJzQXR0cmlidXRlXTsKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6
TlNBY2Nlc3NpYmlsaXR5Q29udGVudHNBdHRyaWJ1dGVdOwogICAgICAgICBbdGVtcEFycmF5IGFk
ZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlPcmllbnRhdGlvbkF0dHJpYnV0ZV07CisgICAgICAgIFt0
ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkQ2hpbGRyZW5BdHRyaWJ1
dGVdOwogICAgICAgICByZXR1cm4gdGVtcEFycmF5OwogICAgIH0oKTsKICAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQgb3V0bGluZUF0dHJzID0gW10gewpAQCAtMTE5Myw2ICsxMjAwLDcgQEAgQUxM
T1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAgICAgICAgIFt0ZW1wQXJyYXkgYWRk
T2JqZWN0Ok5TQWNjZXNzaWJpbGl0eVJvd3NBdHRyaWJ1dGVdOwogICAgICAgICBbdGVtcEFycmF5
IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlDb2x1bW5zQXR0cmlidXRlXTsKICAgICAgICAgW3Rl
bXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5T3JpZW50YXRpb25BdHRyaWJ1dGVdOwor
ICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZENoaWxk
cmVuQXR0cmlidXRlXTsKICAgICAgICAgcmV0dXJuIHRlbXBBcnJheTsKICAgICB9KCk7CiAgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkIG91dGxpbmVSb3dBdHRycyA9IFtdIHsKQEAgLTEyMjcsNiAr
MTIzNSw3IEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZCBzdGF0aWNUZXh0QXR0cnMgPSBbXSB7CiAgICAgICAgIGF1dG8gdGVt
cEFycmF5ID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aEFycmF5OmF0
dHJpYnV0ZXMuZ2V0KCkuZ2V0KCldKTsKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNB
Y2Nlc3NpYmlsaXR5SW50ZXJzZWN0aW9uV2l0aFNlbGVjdGlvblJhbmdlQXR0cmlidXRlXTsKKyAg
ICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5VmlzaWJsZUNoYXJhY3Rl
clJhbmdlQXR0cmlidXRlXTsKICAgICAgICAgcmV0dXJuIHRlbXBBcnJheTsKICAgICB9KCk7CiAK
QEAgLTEyNzIsNyArMTI4MSw3IEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VO
RAogICAgICAgICBvYmplY3RBdHRyaWJ1dGVzID0gbGlzdEJveEF0dHJzLmdldCgpLmdldCgpOwog
ICAgIGVsc2UgaWYgKGJhY2tpbmdPYmplY3QtPmlzTGlzdCgpKQogICAgICAgICBvYmplY3RBdHRy
aWJ1dGVzID0gbGlzdEF0dHJzLmdldCgpLmdldCgpOwotICAgIGVsc2UgaWYgKGJhY2tpbmdPYmpl
Y3QtPmlzUHJvZ3Jlc3NJbmRpY2F0b3IoKSB8fCBiYWNraW5nT2JqZWN0LT5pc1NsaWRlcigpKQor
ICAgIGVsc2UgaWYgKGJhY2tpbmdPYmplY3QtPmlzUHJvZ3Jlc3NJbmRpY2F0b3IoKSB8fCBiYWNr
aW5nT2JqZWN0LT5pc1NsaWRlcigpIHx8IGJhY2tpbmdPYmplY3QtPmlzU3BsaXR0ZXIoKSkKICAg
ICAgICAgb2JqZWN0QXR0cmlidXRlcyA9IHJhbmdlQXR0cnMuZ2V0KCkuZ2V0KCk7CiAgICAgLy8g
VGhlc2UgYXJlIHByb2Nlc3NlZCBpbiBvcmRlciBiZWNhdXNlIGFuIGlucHV0IGltYWdlIGlzIGEg
YnV0dG9uLCBhbmQgYSBidXR0b24gaXMgYSBjb250cm9sLgogICAgIGVsc2UgaWYgKGJhY2tpbmdP
YmplY3QtPmlzSW5wdXRJbWFnZSgpKQpAQCAtMTI4Miw3ICsxMjkxLDcgQEAgQUxMT1dfREVQUkVD
QVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAgICAgZWxzZSBpZiAoYmFja2luZ09iamVjdC0+aXND
b250cm9sKCkpCiAgICAgICAgIG9iamVjdEF0dHJpYnV0ZXMgPSBjb250cm9sQXR0cnMuZ2V0KCku
Z2V0KCk7CiAKLSAgICBlbHNlIGlmIChiYWNraW5nT2JqZWN0LT5pc0dyb3VwKCkgfHwgYmFja2lu
Z09iamVjdC0+aXNMaXN0SXRlbSgpKQorICAgIGVsc2UgaWYgKGJhY2tpbmdPYmplY3QtPmlzR3Jv
dXAoKSB8fCBiYWNraW5nT2JqZWN0LT5pc0xpc3RJdGVtKCkgfHwgYmFja2luZ09iamVjdC0+cm9s
ZVZhbHVlKCkgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OkZpZ3VyZSkKICAgICAgICAgb2JqZWN0QXR0
cmlidXRlcyA9IGdyb3VwQXR0cnMuZ2V0KCkuZ2V0KCk7CiAgICAgZWxzZSBpZiAoYmFja2luZ09i
amVjdC0+aXNUYWJMaXN0KCkpCiAgICAgICAgIG9iamVjdEF0dHJpYnV0ZXMgPSB0YWJMaXN0QXR0
cnMuZ2V0KCkuZ2V0KCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5t
bQppbmRleCAyMDlkYzQ3M2ZkMzYuLjI4NDBmZWJmN2EwOSAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1h
Yy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCkBAIC0xNjIsNiArMTYyLDUzIEBAIHN0YXRpYyBpZCBh
dHRyaWJ1dGVWYWx1ZShpZCBlbGVtZW50LCBOU1N0cmluZyAqYXR0cmlidXRlKQogICAgIGlmIChb
YXR0cmlidXRlIGlzRXF1YWw6TlNBY2Nlc3NpYmlsaXR5Rm9jdXNlZFVJRWxlbWVudEF0dHJpYnV0
ZV0gJiYgW2VsZW1lbnQgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihhY2Nlc3NpYmlsaXR5
Rm9jdXNlZFVJRWxlbWVudCldKQogICAgICAgICByZXR1cm4gW2VsZW1lbnQgYWNjZXNzaWJpbGl0
eUZvY3VzZWRVSUVsZW1lbnRdOwogCisgICAgLy8gVGhlc2UgYXJlIGludGVybmFsIEFQSXMgdXNl
ZCBieSBEUlQvV0tUUjsgdGVzdHMgYXJlIGFsbG93ZWQgdG8gdXNlIHRoZW0gYnV0IHdlIGRvbid0
IHdhbnQgdG8gYWR2ZXJ0aXNlIHRoZW0uCisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJldGFp
blB0cjxOU0FycmF5Pj4gaW50ZXJuYWxBdHRyaWJ1dGVzID0gQFsKKyAgICAgICAgQCJBWEFSSUFQ
cmVzc2VkSXNQcmVzZW50IiwKKyAgICAgICAgQCJBWEFSSUFSb2xlIiwKKyAgICAgICAgQCJBWEF1
dG9jb21wbGV0ZVZhbHVlIiwKKyAgICAgICAgQCJBWENsaWNrUG9pbnQiLAorICAgICAgICBAIkFY
Q29udHJvbGxlckZvciIsCisgICAgICAgIEAiQVhDb250cm9sbGVycyIsCisgICAgICAgIEAiQVhE
UlRTcGVlY2hBdHRyaWJ1dGUiLAorICAgICAgICBAIkFYRGF0ZVRpbWVDb21wb25lbnRzVHlwZSIs
CisgICAgICAgIEAiQVhEZXNjcmliZWRCeSIsCisgICAgICAgIEAiQVhEZXNjcmlwdGlvbkZvciIs
CisgICAgICAgIEAiQVhEZXRhaWxzRm9yIiwKKyAgICAgICAgQCJBWEVycm9yTWVzc2FnZUZvciIs
CisgICAgICAgIEAiQVhGbG93RnJvbSIsCisgICAgICAgIEAiQVhJc0luQ2VsbCIsCisgICAgICAg
IEAiQVhJc0luRGVzY3JpcHRpb25MaXN0RGV0YWlsIiwKKyAgICAgICAgQCJBWElzSW5EZXNjcmlw
dGlvbkxpc3RUZXJtIiwKKyAgICAgICAgQCJBWElzSW5kZXRlcm1pbmF0ZSIsCisgICAgICAgIEAi
QVhJc011bHRpU2VsZWN0YWJsZSIsCisgICAgICAgIEAiQVhJc09uU2NyZWVuIiwKKyAgICAgICAg
QCJBWExhYmVsRm9yIiwKKyAgICAgICAgQCJBWExhYmVsbGVkQnkiLAorICAgICAgICBAIkFYTGlu
ZVJlY3RzQW5kVGV4dCIsCisgICAgICAgIEAiQVhPd25lcnMiLAorICAgICAgICBAIkFYU3RyaW5n
VmFsdWUiLAorICAgICAgICBAIkFYVmFsdWVBdXRvZmlsbFR5cGUiLAorCisgICAgICAgIC8vIEZJ
WE1FOiB0aGVzZSBzaG91bGRuJ3QgYmUgaGVyZSwgYnV0IHJlbW92aW5nIG9uZSBvZiB0aGVzZSBj
YXVzZXMgdGVzdHMgdG8gZmFpbC4KKyAgICAgICAgQCJBWEFSSUFDdXJyZW50IiwKKyAgICAgICAg
QCJBWEFSSUFMaXZlIiwKKyAgICAgICAgQCJBWERlc2NyaXB0aW9uIiwKKyAgICAgICAgQCJBWEtl
eVNob3J0Y3V0c1ZhbHVlIiwKKyAgICAgICAgQCJBWE9yaWVudGF0aW9uIiwKKyAgICAgICAgQCJB
WE93bnMiLAorICAgICAgICBAIkFYUG9wdXBWYWx1ZSIsCisgICAgICAgIEAiQVhSZWxhdGl2ZUZy
YW1lIiwKKyAgICAgICAgQCJBWFJlcXVpcmVkIiwKKyAgICAgICAgQCJBWFNvcnREaXJlY3Rpb24i
LAorICAgICAgICBAIkFYVmFsdWUiLAorICAgICAgICBAIkFYVmlzaWJsZUNoYXJhY3RlclJhbmdl
IiwKKyAgICBdOworCisgICAgTlNBcnJheTxOU1N0cmluZyAqPiAqc3VwcG9ydGVkQXR0cmlidXRl
cyA9IFtlbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVOYW1lc107CisgICAgaWYgKCFbc3Vw
cG9ydGVkQXR0cmlidXRlcyBjb250YWluc09iamVjdDphdHRyaWJ1dGVdICYmICFbaW50ZXJuYWxB
dHRyaWJ1dGVzLmdldCgpIGNvbnRhaW5zT2JqZWN0OmF0dHJpYnV0ZV0gJiYgIVthdHRyaWJ1dGUg
aXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eVJvbGVBdHRyaWJ1dGVdKQorICAgICAgICBy
ZXR1cm4gbmlsOworCiAgICAgcmV0dXJuIFtlbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVW
YWx1ZTphdHRyaWJ1dGVdOwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L21hYy9hcmlhLXByZXNzZWQtYnV0dG9uLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1wcmVzc2VkLWJ1dHRvbi1hdHRyaWJ1dGVz
LWV4cGVjdGVkLnR4dAppbmRleCBiNmMyYjY1MzJjOWQuLmE0NmY4MWQ4MTliOCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1wcmVzc2VkLWJ1dHRvbi1hdHRy
aWJ1dGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9h
cmlhLXByZXNzZWQtYnV0dG9uLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0yLDM0ICsyLDM0
IEBAIFRoaXMgdGVzdCBlbnN1cmVzIGEgcm9sZT1idXR0b24gZWxlbWVudCB3aXRoIGFyaWEtcHJl
c3NlZCBoYXMgdGhlIHJpZ2h0IGF0dHJpYnV0CiAKICNidXR0b24xOiBBWFJvbGU6IEFYQ2hlY2tC
b3gKICNidXR0b24xOiBBWFN1YnJvbGU6IEFYVG9nZ2xlCi0jYnV0dG9uMTogQVhWYWx1ZTogMQor
I2J1dHRvbjE6IEFYVGl0bGU6IEZvbwogI2J1dHRvbjE6IEFYQVJJQVByZXNzZWRJc1ByZXNlbnQ6
IHRydWUKIAogI2J1dHRvbjI6IEFYUm9sZTogQVhDaGVja0JveAogI2J1dHRvbjI6IEFYU3Vicm9s
ZTogQVhUb2dnbGUKLSNidXR0b24yOiBBWFZhbHVlOiAwCisjYnV0dG9uMjogQVhUaXRsZTogQmFy
CiAjYnV0dG9uMjogQVhBUklBUHJlc3NlZElzUHJlc2VudDogdHJ1ZQogCiAjYnV0dG9uLXdpdGhv
dXQtaW5pdGlhbC1wcmVzczogQVhSb2xlOiBBWEJ1dHRvbgogI2J1dHRvbi13aXRob3V0LWluaXRp
YWwtcHJlc3M6IEFYU3Vicm9sZToKLSNidXR0b24td2l0aG91dC1pbml0aWFsLXByZXNzOiBBWFZh
bHVlOgorI2J1dHRvbi13aXRob3V0LWluaXRpYWwtcHJlc3M6IEFYVGl0bGU6IEJhegogI2J1dHRv
bi13aXRob3V0LWluaXRpYWwtcHJlc3M6IEFYQVJJQVByZXNzZWRJc1ByZXNlbnQ6IGZhbHNlCiAK
IFRvZ2dsaW5nIGFyaWEtcHJlc3NlZCBzdGF0ZSBvbiBib3RoIGJ1dHRvbnMuCiAKICNidXR0b24x
OiBBWFJvbGU6IEFYQ2hlY2tCb3gKICNidXR0b24xOiBBWFN1YnJvbGU6IEFYVG9nZ2xlCi0jYnV0
dG9uMTogQVhWYWx1ZTogMAorI2J1dHRvbjE6IEFYVGl0bGU6IEZvbwogI2J1dHRvbjE6IEFYQVJJ
QVByZXNzZWRJc1ByZXNlbnQ6IHRydWUKIAogI2J1dHRvbjI6IEFYUm9sZTogQVhDaGVja0JveAog
I2J1dHRvbjI6IEFYU3Vicm9sZTogQVhUb2dnbGUKLSNidXR0b24yOiBBWFZhbHVlOiAxCisjYnV0
dG9uMjogQVhUaXRsZTogQmFyCiAjYnV0dG9uMjogQVhBUklBUHJlc3NlZElzUHJlc2VudDogdHJ1
ZQogCiAjYnV0dG9uLXdpdGhvdXQtaW5pdGlhbC1wcmVzczogQVhSb2xlOiBBWEJ1dHRvbgogI2J1
dHRvbi13aXRob3V0LWluaXRpYWwtcHJlc3M6IEFYU3Vicm9sZToKLSNidXR0b24td2l0aG91dC1p
bml0aWFsLXByZXNzOiBBWFZhbHVlOgorI2J1dHRvbi13aXRob3V0LWluaXRpYWwtcHJlc3M6IEFY
VGl0bGU6IEJhegogI2J1dHRvbi13aXRob3V0LWluaXRpYWwtcHJlc3M6IEFYQVJJQVByZXNzZWRJ
c1ByZXNlbnQ6IHRydWUKIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5
L21hYy9hcmlhLXByZXNzZWQtYnV0dG9uLWF0dHJpYnV0ZXMuaHRtbCBiL0xheW91dFRlc3RzL2Fj
Y2Vzc2liaWxpdHkvbWFjL2FyaWEtcHJlc3NlZC1idXR0b24tYXR0cmlidXRlcy5odG1sCmluZGV4
IDBlODQ3MTUxMDcxYi4uMzQ5MGIwZTAwM2YyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L21hYy9hcmlhLXByZXNzZWQtYnV0dG9uLWF0dHJpYnV0ZXMuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9hcmlhLXByZXNzZWQtYnV0dG9uLWF0dHJpYnV0
ZXMuaHRtbApAQCAtMTgsNyArMTgsNyBAQAogICAgICAgICBjb25zdCBlbGVtZW50ID0gYWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKGlkKTsKICAgICAgICAgdGVz
dE91dHB1dCArPSBgIyR7aWR9OiAke2VsZW1lbnQucm9sZX1cbmA7CiAgICAgICAgIHRlc3RPdXRw
dXQgKz0gYCMke2lkfTogJHtlbGVtZW50LnN1YnJvbGV9XG5gOwotICAgICAgICB0ZXN0T3V0cHV0
ICs9IGAjJHtpZH06ICR7ZWxlbWVudC5zdHJpbmdWYWx1ZX1cbmA7CisgICAgICAgIHRlc3RPdXRw
dXQgKz0gYCMke2lkfTogJHtlbGVtZW50LnRpdGxlfVxuYDsKICAgICAgICAgdGVzdE91dHB1dCAr
PSBgIyR7aWR9OiBBWEFSSUFQcmVzc2VkSXNQcmVzZW50OiAke2VsZW1lbnQuYm9vbEF0dHJpYnV0
ZVZhbHVlKCJBWEFSSUFQcmVzc2VkSXNQcmVzZW50Iil9XG5cbmA7CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9hcmlhLXRyZWUtd2l0aC1wcmVzZW50
YXRpb24tcm9sZS5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS10cmVl
LXdpdGgtcHJlc2VudGF0aW9uLXJvbGUuaHRtbAppbmRleCBjYzM3NjEwMjEyNDUuLjBjNTYzZGVm
YjllNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS10cmVl
LXdpdGgtcHJlc2VudGF0aW9uLXJvbGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L21hYy9hcmlhLXRyZWUtd2l0aC1wcmVzZW50YXRpb24tcm9sZS5odG1sCkBAIC0zMyw3ICsz
Myw3IEBACiAgICAgfQogICAgIAogICAgIGZ1bmN0aW9uIGR1bXBBY2Nlc3NpYmlsaXR5Q2hpbGRy
ZW4oZWxlbWVudCwgbGV2ZWwpIHsKLSAgICAgICAgaWYgKGVsZW1lbnQuc3RyaW5nVmFsdWUuaW5k
ZXhPZignRW5kIG9mIHRlc3QnKSA+PSAwKQorICAgICAgICBpZiAoZWxlbWVudC5zdHJpbmdWYWx1
ZSAmJiBlbGVtZW50LnN0cmluZ1ZhbHVlLmluZGV4T2YoJ0VuZCBvZiB0ZXN0JykgPj0gMCkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICB2YXIgaW5kZW50ID0gIiI7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9ib3VuZHMtZm9yLXJhbmdlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2JvdW5kcy1mb3ItcmFu
Z2UtZXhwZWN0ZWQudHh0CmluZGV4IDdiZTg5Y2FjZTg5Ni4uZTYwYTNlYzMzMWZiIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9ib3VuZHMtZm9yLXJhbmdlLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9ib3VuZHMtZm9yLXJh
bmdlLWV4cGVjdGVkLnR4dApAQCAtMzAsNiArMzAsNyBAQCBBWEZvY3VzYWJsZUFuY2VzdG9yOiA8
QVhTdGF0aWNUZXh0PgogQVhFZGl0YWJsZUFuY2VzdG9yOiAobnVsbCkKIEFYSGlnaGVzdEVkaXRh
YmxlQW5jZXN0b3I6IChudWxsKQogQVhJbnRlcnNlY3Rpb25XaXRoU2VsZWN0aW9uUmFuZ2U6IChu
dWxsKQorQVhWaXNpYmxlQ2hhcmFjdGVyUmFuZ2U6IE5TUmFuZ2U6IHswLCAxNjJ9CiBBWEVsZW1l
bnRCdXN5OiAwCiBBWFBhdGg6IChudWxsKQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L21hYy9pbnRlcm5hbC1saW5rLWFuY2hvcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvaW50ZXJuYWwtbGluay1hbmNob3JzLWV4cGVjdGVkLnR4
dAppbmRleCA2ZmU1MmRiZWNiZTkuLjcxNTkzZTMyZDc5MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9tYWMvaW50ZXJuYWwtbGluay1hbmNob3JzLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9pbnRlcm5hbC1saW5rLWFuY2hvcnMt
ZXhwZWN0ZWQudHh0CkBAIC0zMSw2ICszMSw3IEBAIEFYRm9jdXNhYmxlQW5jZXN0b3I6IDxBWFN0
YXRpY1RleHQ+CiBBWEVkaXRhYmxlQW5jZXN0b3I6IChudWxsKQogQVhIaWdoZXN0RWRpdGFibGVB
bmNlc3RvcjogKG51bGwpCiBBWEludGVyc2VjdGlvbldpdGhTZWxlY3Rpb25SYW5nZTogKG51bGwp
CitBWFZpc2libGVDaGFyYWN0ZXJSYW5nZTogTlNSYW5nZTogezAsIDl9CiBBWEVsZW1lbnRCdXN5
OiAwCiBBWFBhdGg6IChudWxsKQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L3RhYmxlLXdpdGgtcnVsZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS90YWJsZS13aXRoLXJ1bGVzLWV4cGVjdGVkLnR4dAppbmRleCA5ZTlmOGFlYmQ1NTYuLjky
ZDMxZGU4MDNlNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS90YWJsZS13
aXRoLXJ1bGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3Rh
YmxlLXdpdGgtcnVsZXMtZXhwZWN0ZWQudHh0CkBAIC00OCw2ICs0OCw4IEBAIEFYUm93Q291bnQ6
IDEKIEFYQVJJQUNvbHVtbkNvdW50OiAwCiBBWEFSSUFSb3dDb3VudDogMAogQVhTZWxlY3RlZENl
bGxzOiA8YXJyYXkgb2Ygc2l6ZSAwPgorQVhTZWxlY3RlZENoaWxkcmVuOiAobnVsbCkKK0FYVGFi
bGVMZXZlbDogMQogQVhFbGVtZW50QnVzeTogMAogCiAKQEAgLTk0LDYgKzk2LDggQEAgQVhSb3dD
b3VudDogMQogQVhBUklBQ29sdW1uQ291bnQ6IDAKIEFYQVJJQVJvd0NvdW50OiAwCiBBWFNlbGVj
dGVkQ2VsbHM6IDxhcnJheSBvZiBzaXplIDA+CitBWFNlbGVjdGVkQ2hpbGRyZW46IChudWxsKQor
QVhUYWJsZUxldmVsOiAxCiBBWEVsZW1lbnRCdXN5OiAwCiAKIApAQCAtMTQwLDYgKzE0NCw4IEBA
IEFYUm93Q291bnQ6IDEKIEFYQVJJQUNvbHVtbkNvdW50OiAwCiBBWEFSSUFSb3dDb3VudDogMAog
QVhTZWxlY3RlZENlbGxzOiA8YXJyYXkgb2Ygc2l6ZSAwPgorQVhTZWxlY3RlZENoaWxkcmVuOiAo
bnVsbCkKK0FYVGFibGVMZXZlbDogMQogQVhFbGVtZW50QnVzeTogMAogCiAKQEAgLTE3Myw3ICsx
NzksNyBAQCBBWERPTUNsYXNzTGlzdDogPGFycmF5IG9mIHNpemUgMD4KIEFYRm9jdXNhYmxlQW5j
ZXN0b3I6IDxBWEdyb3VwPgogQVhFZGl0YWJsZUFuY2VzdG9yOiAobnVsbCkKIEFYSGlnaGVzdEVk
aXRhYmxlQW5jZXN0b3I6IChudWxsKQotQVhUaXRsZVVJRWxlbWVudDogKG51bGwpCitBWElubGlu
ZVRleHQ6IDAKIEFYRWxlbWVudEJ1c3k6IDAKIAogCkBAIC0yMDcsNyArMjEzLDcgQEAgQVhET01D
bGFzc0xpc3Q6IDxhcnJheSBvZiBzaXplIDA+CiBBWEZvY3VzYWJsZUFuY2VzdG9yOiA8QVhHcm91
cD4KIEFYRWRpdGFibGVBbmNlc3RvcjogKG51bGwpCiBBWEhpZ2hlc3RFZGl0YWJsZUFuY2VzdG9y
OiAobnVsbCkKLUFYVGl0bGVVSUVsZW1lbnQ6IChudWxsKQorQVhJbmxpbmVUZXh0OiAwCiBBWEVs
ZW1lbnRCdXN5OiAwCiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Fj
Y2Vzc2liaWxpdHkvbGlzdHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2FjY2Vzc2liaWxpdHkvbGlzdHMtZXhwZWN0ZWQudHh0CmluZGV4IDdkM2NjM2YyYTAyNy4uZmQ0
MWIwMWEzZTA0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJp
bGl0eS9saXN0cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Fj
Y2Vzc2liaWxpdHkvbGlzdHMtZXhwZWN0ZWQudHh0CkBAIC00NCw3ICs0NCw2IEBAIEFYSGlnaGVz
dEVkaXRhYmxlQW5jZXN0b3I6IChudWxsKQogQVhTZWxlY3RlZENoaWxkcmVuOiA8YXJyYXkgb2Yg
c2l6ZSAwPgogQVhWaXNpYmxlQ2hpbGRyZW46IDxhcnJheSBvZiBzaXplIDI+CiBBWE9yaWVudGF0
aW9uOiBBWFZlcnRpY2FsT3JpZW50YXRpb24KLUFYVGl0bGVVSUVsZW1lbnQ6IChudWxsKQogQVhF
bGVtZW50QnVzeTogMAogCiAtLS0tLS0tLS0tLS0KQEAgLTgxLDcgKzgwLDYgQEAgQVhIaWdoZXN0
RWRpdGFibGVBbmNlc3RvcjogKG51bGwpCiBBWFNlbGVjdGVkQ2hpbGRyZW46IDxhcnJheSBvZiBz
aXplIDA+CiBBWFZpc2libGVDaGlsZHJlbjogPGFycmF5IG9mIHNpemUgMj4KIEFYT3JpZW50YXRp
b246IEFYVmVydGljYWxPcmllbnRhdGlvbgotQVhUaXRsZVVJRWxlbWVudDogKG51bGwpCiBBWEVs
ZW1lbnRCdXN5OiAwCiAKIC0tLS0tLS0tLS0tLQpAQCAtMTE4LDcgKzExNiw2IEBAIEFYSGlnaGVz
dEVkaXRhYmxlQW5jZXN0b3I6IChudWxsKQogQVhTZWxlY3RlZENoaWxkcmVuOiAobnVsbCkKIEFY
VmlzaWJsZUNoaWxkcmVuOiA8YXJyYXkgb2Ygc2l6ZSA1PgogQVhPcmllbnRhdGlvbjogQVhWZXJ0
aWNhbE9yaWVudGF0aW9uCi1BWFRpdGxlVUlFbGVtZW50OiAobnVsbCkKIEFYRWxlbWVudEJ1c3k6
IDAKIAogLS0tLS0tLS0tLS0tCkBAIC0xNTQsNyArMTUxLDcgQEAgQVhET01DbGFzc0xpc3Q6IDxh
cnJheSBvZiBzaXplIDA+CiBBWEZvY3VzYWJsZUFuY2VzdG9yOiA8QVhHcm91cD4KIEFYRWRpdGFi
bGVBbmNlc3RvcjogKG51bGwpCiBBWEhpZ2hlc3RFZGl0YWJsZUFuY2VzdG9yOiAobnVsbCkKLUFY
VGl0bGVVSUVsZW1lbnQ6IChudWxsKQorQVhJbmxpbmVUZXh0OiAwCiBBWEVsZW1lbnRCdXN5OiAw
CiAKIC0tLS0tLS0tLS0tLQpAQCAtMTg4LDcgKzE4NSw3IEBAIEFYRE9NQ2xhc3NMaXN0OiA8YXJy
YXkgb2Ygc2l6ZSAwPgogQVhGb2N1c2FibGVBbmNlc3RvcjogPEFYR3JvdXA+CiBBWEVkaXRhYmxl
QW5jZXN0b3I6IChudWxsKQogQVhIaWdoZXN0RWRpdGFibGVBbmNlc3RvcjogKG51bGwpCi1BWFRp
dGxlVUlFbGVtZW50OiAobnVsbCkKK0FYSW5saW5lVGV4dDogMAogQVhFbGVtZW50QnVzeTogMAog
CiAtLS0tLS0tLS0tLS0KQEAgLTIyNCw3ICsyMjEsNyBAQCBBWERPTUNsYXNzTGlzdDogPGFycmF5
IG9mIHNpemUgMD4KIEFYRm9jdXNhYmxlQW5jZXN0b3I6IDxBWEdyb3VwPgogQVhFZGl0YWJsZUFu
Y2VzdG9yOiAobnVsbCkKIEFYSGlnaGVzdEVkaXRhYmxlQW5jZXN0b3I6IChudWxsKQotQVhUaXRs
ZVVJRWxlbWVudDogKG51bGwpCitBWElubGluZVRleHQ6IDAKIEFYRWxlbWVudEJ1c3k6IDAKIAog
LS0tLS0tLS0tLS0tCkBAIC0yNTgsNyArMjU1LDcgQEAgQVhET01DbGFzc0xpc3Q6IDxhcnJheSBv
ZiBzaXplIDA+CiBBWEZvY3VzYWJsZUFuY2VzdG9yOiA8QVhHcm91cD4KIEFYRWRpdGFibGVBbmNl
c3RvcjogKG51bGwpCiBBWEhpZ2hlc3RFZGl0YWJsZUFuY2VzdG9yOiAobnVsbCkKLUFYVGl0bGVV
SUVsZW1lbnQ6IChudWxsKQorQVhJbmxpbmVUZXh0OiAwCiBBWEVsZW1lbnRCdXN5OiAwCiAKIC0t
LS0tLS0tLS0tLQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>