<?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>160705</bug_id>
          
          <creation_ts>2016-08-09 13:11:18 -0700</creation_ts>
          <short_desc>AX: @alt and bounds ignored when using img[src] points to an inaccessible SVG</short_desc>
          <delta_ts>2021-03-15 12:31:45 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="James Craig">jcraig</reporter>
          <assigned_to name="Andres Gonzalez">andresg_22</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>andresg_22</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>darin</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jdiggs</cc>
    
    <cc>jorge.f</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1218811</commentid>
    <comment_count>0</comment_count>
    <who name="James Craig">jcraig</who>
    <bug_when>2016-08-09 13:11:18 -0700</bug_when>
    <thetext>Test case from Deque
http://a11yideas.com/testcode/mwp/iOSsvg.html

If you link an entirely inaccessible SVG (no accessible contents), WebKit should respect the @alt attribute from the linking HTML, use the outer bounds of the SVG canvas as the image bounds, and use the AXImage role instead of AXGroup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218812</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-08-09 13:11:37 -0700</bug_when>
    <thetext>&lt;rdar://problem/27771579&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218815</commentid>
    <comment_count>2</comment_count>
    <who name="James Craig">jcraig</who>
    <bug_when>2016-08-09 13:18:28 -0700</bug_when>
    <thetext>See related discussion from bug 145263.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721715</commentid>
    <comment_count>3</comment_count>
      <attachid>418181</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-01-22 14:32:55 -0800</bug_when>
    <thetext>Created attachment 418181
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721720</commentid>
    <comment_count>4</comment_count>
      <attachid>418181</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2021-01-22 14:38:18 -0800</bug_when>
    <thetext>Comment on attachment 418181
Patch

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

&gt; Source/WebCore/accessibility/AccessibilitySVGElement.cpp:78
&gt; +    for (const auto&amp; child : childrenOfType&lt;SVGElement&gt;(element)) {

the code block worries me. it seems like it&apos;s going to be a n! algorithm. for every child, you&apos;re going to call into this same method for every descendant. and then at the next level, you&apos;ll call that same method again</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721731</commentid>
    <comment_count>5</comment_count>
      <attachid>418181</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2021-01-22 14:57:31 -0800</bug_when>
    <thetext>Comment on attachment 418181
Patch

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

&gt; Source/WebCore/accessibility/AccessibilitySVGElement.cpp:72
&gt; +    // If the role or aria-label attributes are specified, this is accessible.

are there other attributes we need to check like &quot;alt&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721759</commentid>
    <comment_count>6</comment_count>
      <attachid>418181</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-01-22 16:04:19 -0800</bug_when>
    <thetext>Comment on attachment 418181
Patch

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

&gt;&gt; Source/WebCore/accessibility/AccessibilitySVGElement.cpp:78
&gt;&gt; +    for (const auto&amp; child : childrenOfType&lt;SVGElement&gt;(element)) {
&gt; 
&gt; the code block worries me. it seems like it&apos;s going to be a n! algorithm. for every child, you&apos;re going to call into this same method for every descendant. and then at the next level, you&apos;ll call that same method again

Using descendantsOfType instead, only at the top level, should resolve that cleanly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721770</commentid>
    <comment_count>7</comment_count>
      <attachid>418181</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-01-22 16:18:17 -0800</bug_when>
    <thetext>Comment on attachment 418181
Patch

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

&gt;&gt;&gt; Source/WebCore/accessibility/AccessibilitySVGElement.cpp:78
&gt;&gt;&gt; +    for (const auto&amp; child : childrenOfType&lt;SVGElement&gt;(element)) {
&gt;&gt; 
&gt;&gt; the code block worries me. it seems like it&apos;s going to be a n! algorithm. for every child, you&apos;re going to call into this same method for every descendant. and then at the next level, you&apos;ll call that same method again
&gt; 
&gt; Using descendantsOfType instead, only at the top level, should resolve that cleanly.

But on reflection, I don’t think it will be n! or n^2; even in this code every descendant is visited only once.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721775</commentid>
    <comment_count>8</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2021-01-22 16:23:45 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #7)
&gt; Comment on attachment 418181 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=418181&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebCore/accessibility/AccessibilitySVGElement.cpp:78
&gt; &gt;&gt;&gt; +    for (const auto&amp; child : childrenOfType&lt;SVGElement&gt;(element)) {
&gt; &gt;&gt; 
&gt; &gt;&gt; the code block worries me. it seems like it&apos;s going to be a n! algorithm. for every child, you&apos;re going to call into this same method for every descendant. and then at the next level, you&apos;ll call that same method again
&gt; &gt; 
&gt; &gt; Using descendantsOfType instead, only at the top level, should resolve that cleanly.
&gt; 
&gt; But on reflection, I don’t think it will be n! or n^2; even in this code
&gt; every descendant is visited only once.

yea I was thinking if this has to be called at every level of the tree for every element, we&apos;d end up descending a lot</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721781</commentid>
    <comment_count>9</comment_count>
      <attachid>418181</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-01-22 16:29:54 -0800</bug_when>
    <thetext>Comment on attachment 418181
Patch

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

&gt;&gt;&gt;&gt;&gt; Source/WebCore/accessibility/AccessibilitySVGElement.cpp:78
&gt;&gt;&gt;&gt;&gt; +    for (const auto&amp; child : childrenOfType&lt;SVGElement&gt;(element)) {
&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt; the code block worries me. it seems like it&apos;s going to be a n! algorithm. for every child, you&apos;re going to call into this same method for every descendant. and then at the next level, you&apos;ll call that same method again
&gt;&gt;&gt; 
&gt;&gt;&gt; Using descendantsOfType instead, only at the top level, should resolve that cleanly.
&gt;&gt; 
&gt;&gt; But on reflection, I don’t think it will be n! or n^2; even in this code every descendant is visited only once.
&gt; 
&gt; yea I was thinking if this has to be called at every level of the tree for every element, we&apos;d end up descending a lot

Oh, yes this is O(descendants) and it’s *not* OK to call something like that for all elements.

Could be a real challenge to deal with that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721790</commentid>
    <comment_count>10</comment_count>
      <attachid>418181</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2021-01-22 17:19:35 -0800</bug_when>
    <thetext>Comment on attachment 418181
Patch

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

&gt;&gt;&gt;&gt;&gt;&gt; Source/WebCore/accessibility/AccessibilitySVGElement.cpp:78
&gt;&gt;&gt;&gt;&gt;&gt; +    for (const auto&amp; child : childrenOfType&lt;SVGElement&gt;(element)) {
&gt;&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt;&gt; the code block worries me. it seems like it&apos;s going to be a n! algorithm. for every child, you&apos;re going to call into this same method for every descendant. and then at the next level, you&apos;ll call that same method again
&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt; Using descendantsOfType instead, only at the top level, should resolve that cleanly.
&gt;&gt;&gt; 
&gt;&gt;&gt; But on reflection, I don’t think it will be n! or n^2; even in this code every descendant is visited only once.
&gt;&gt; 
&gt;&gt; yea I was thinking if this has to be called at every level of the tree for every element, we&apos;d end up descending a lot
&gt; 
&gt; Oh, yes this is O(descendants) and it’s *not* OK to call something like that for all elements.
&gt; 
&gt; Could be a real challenge to deal with that.

talking to Andres offline we determined this would only be called once and only on the root. he had some ideas on how to make that more clear in the code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721857</commentid>
    <comment_count>11</comment_count>
      <attachid>418229</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-01-23 11:28:10 -0800</bug_when>
    <thetext>Created attachment 418229
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721858</commentid>
    <comment_count>12</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-01-23 11:33:02 -0800</bug_when>
    <thetext>(In reply to chris fleizach from comment #10)
&gt; Comment on attachment 418181 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=418181&amp;action=review
&gt; 
&gt; &gt;&gt;&gt;&gt;&gt;&gt; Source/WebCore/accessibility/AccessibilitySVGElement.cpp:78
&gt; &gt;&gt;&gt;&gt;&gt;&gt; +    for (const auto&amp; child : childrenOfType&lt;SVGElement&gt;(element)) {
&gt; &gt;&gt;&gt;&gt;&gt; 
&gt; &gt;&gt;&gt;&gt;&gt; the code block worries me. it seems like it&apos;s going to be a n! algorithm. for every child, you&apos;re going to call into this same method for every descendant. and then at the next level, you&apos;ll call that same method again
&gt; &gt;&gt;&gt;&gt; 
&gt; &gt;&gt;&gt;&gt; Using descendantsOfType instead, only at the top level, should resolve that cleanly.
&gt; &gt;&gt;&gt; 
&gt; &gt;&gt;&gt; But on reflection, I don’t think it will be n! or n^2; even in this code every descendant is visited only once.
&gt; &gt;&gt; 
&gt; &gt;&gt; yea I was thinking if this has to be called at every level of the tree for every element, we&apos;d end up descending a lot
&gt; &gt; 
&gt; &gt; Oh, yes this is O(descendants) and it’s *not* OK to call something like that for all elements.
&gt; &gt; 
&gt; &gt; Could be a real challenge to deal with that.
&gt; 
&gt; talking to Andres offline we determined this would only be called once and
&gt; only on the root. he had some ideas on how to make that more clear in the
&gt; code

I moved the hasAccessibleContent method to the AccessibilitySVGRoot class which makes it clearer that this method would be called only on the SVG root.
Also used the descendantsOfType function suggested by Darin that makes it a lot cleaner.
Thank you both very much for the feedback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721860</commentid>
    <comment_count>13</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-01-23 11:36:16 -0800</bug_when>
    <thetext>(In reply to chris fleizach from comment #5)
&gt; Comment on attachment 418181 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=418181&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilitySVGElement.cpp:72
&gt; &gt; +    // If the role or aria-label attributes are specified, this is accessible.
&gt; 
&gt; are there other attributes we need to check like &quot;alt&quot;

Investigating this. have to consult the ARIA and SVG accessibility specs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721957</commentid>
    <comment_count>14</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2021-01-24 23:29:20 -0800</bug_when>
    <thetext>One new test failure

https://ews-build.s3-us-west-2.amazonaws.com/macOS-Mojave-Release-WK1-Tests-EWS/r418229-26105/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722075</commentid>
    <comment_count>15</comment_count>
      <attachid>418295</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-01-25 07:57:49 -0800</bug_when>
    <thetext>Created attachment 418295
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722087</commentid>
    <comment_count>16</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-01-25 08:52:57 -0800</bug_when>
    <thetext>Committed r271796: &lt;https://trac.webkit.org/changeset/271796&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 418295.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739589</commentid>
    <comment_count>17</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2021-03-15 12:31:45 -0700</bug_when>
    <thetext>*** Bug 202431 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418181</attachid>
            <date>2021-01-22 14:32:55 -0800</date>
            <delta_ts>2021-01-23 11:28:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160705-20210122173254.patch</filename>
            <type>text/plain</type>
            <size>14779</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxNjkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmU1NWVhNmI3Zjg3ZmIz
NjJjMGZlMGEyMjRmNGE0NjZmMWJiZWE0NS4uMWYxNWFhMzc2ZjQ1ZjUwZTA2NzVmOWQyZjdlOGE2
NDNmOTk3ZDJkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIxLTAxLTIyICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogQGFsdCBh
bmQgYm91bmRzIGlnbm9yZWQgd2hlbiB1c2luZyBpbWdbc3JjXSBwb2ludHMgdG8gYW4gaW5hY2Nl
c3NpYmxlIFNWRworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTYwNzA1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNzc3MTU3OT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0czogYWNjZXNzaWJpbGl0
eS9pbWctd2l0aC1zdmctc291cmNlLmh0bWwKKyAgICAgICAgICAgICAgIGFjY2Vzc2liaWxpdHkv
aW9zLXNpbXVsYXRvci9pbWctd2l0aC1zdmctc291cmNlLmh0bWwKKworICAgICAgICBUaGUgcHJv
YmxlbSB3YXMgY2F1c2VkIGJ5IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRldGVybWluZUFj
Y2Vzc2liaWxpdHlSb2xlCisgICAgICAgIHRoYXQgd2FzIHJldHVybmluZyBBY2Nlc3NpYmlsaXR5
Um9sZTo6U1ZHUm9vdCBmb3IgYWxsIGltYWdlcyB3aXRoIGEgcmVtb3RlCisgICAgICAgIFNWRyBz
b3VyY2UsIHJlZ2FyZGxlc3Mgd2hldGhlciB0aGUgU1ZHIGhpZXJhcmNoeSBjb250YWluZWQgc29t
ZSBhY2Nlc3NpYmlsaXR5CisgICAgICAgIGRhdGEgb3Igbm90LiBUaGlzIHJlc3VsdGVkIGluIFZv
aWNlT3ZlciByZWFkaW5nIHRoZSBpbWFnZSBsaWtlIGFuIGVtcHR5CisgICAgICAgIGdyb3VwIG9u
IE1hYywgb3IgY29tcGxldGVseSBpZ25vcmluZyB0aGUgaW1hZ2Ugb24gaU9TLgorICAgICAgICBU
aGUgc29sdXRpb24gaW4gdGhpcyBwYXRjaCBpcyB0byBvbmx5IHJldHVybiBBY2Nlc3NpYmlsaXR5
Um9sZTo6U1ZHUm9vdAorICAgICAgICBpZiB0aGUgU1ZHIGhhcyBzb21lIGFjY2Vzc2liaWxpdHkg
Y29udmV5YWJsZSBkYXRhLgorICAgICAgICBBZGRlZCB0aGUgbWV0aG9kIEFjY2Vzc2liaWxpdHlT
VkdFbGVtZW50OjpoYXNBY2Nlc3NpYmxlQ29udGVudCBhbmQgaGVscGVyCisgICAgICAgIGZ1bmN0
aW9uIGlzQWNjZXNzaWJsZVNWR0VsZW1lbnQgZm9yIHRoZSBhYm92ZSBwdXJwb3NlLgorCisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRldGVybWluZUFjY2Vzc2li
aWxpdHlSb2xlKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
OnJlbW90ZVNWR1Jvb3RFbGVtZW50IGNvbnN0KToKKyAgICAgICAgQ29tbWVudCB3YXMgbWlzc3Bs
YWNlZCwgbW92ZWQgaXQgdG8gdGhlIHJpZ2h0IHBsYWNlLgorICAgICAgICAoV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWRkUmVtb3RlU1ZHQ2hpbGRyZW4pOgorICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNWR0VsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6aXNBY2Nlc3NpYmxlU1ZHRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5U1ZHRWxlbWVudDo6aGFzQWNjZXNzaWJsZUNvbnRlbnQgY29uc3QpOgorICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNWR0VsZW1lbnQuaDoKKwogMjAyMS0wMS0yMSAg
Um9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIEVuc3VyZSBjcmVhdGVTdHJl
YW1zIGdldHMgdmFsaWQgSlNHbG9iYWxPYmplY3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IDQ4
NzI3MDNlM2JmOWMyN2M4ZWFhNjAxNGJkODJlZGMwZDFkMjUxN2EuLmRiZTk1MGIwNzYyODg4ZTA1
YzZkYzE4NDI0YmUyOTNjZDcwYzlkM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtMjc5Nyw4
ICsyNzk3LDEyIEBAIEFjY2Vzc2liaWxpdHlSb2xlIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
OmRldGVybWluZUFjY2Vzc2liaWxpdHlSb2xlKCkKICAgICBpZiAoY3NzQm94ICYmIGNzc0JveC0+
aXNJbWFnZSgpKSB7CiAgICAgICAgIGlmIChpczxIVE1MSW5wdXRFbGVtZW50Pihub2RlKSkKICAg
ICAgICAgICAgIHJldHVybiBoYXNQb3B1cCgpID8gQWNjZXNzaWJpbGl0eVJvbGU6OlBvcFVwQnV0
dG9uIDogQWNjZXNzaWJpbGl0eVJvbGU6OkJ1dHRvbjsKLSAgICAgICAgaWYgKGlzU1ZHSW1hZ2Uo
KSkKLSAgICAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Um9sZTo6U1ZHUm9vdDsKKworICAg
ICAgICBpZiAoYXV0byogc3ZnUm9vdCA9IHJlbW90ZVNWR1Jvb3RFbGVtZW50KENyZWF0ZSkpIHsK
KyAgICAgICAgICAgIGlmIChzdmdSb290LT5oYXNBY2Nlc3NpYmxlQ29udGVudCgpKQorICAgICAg
ICAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Um9sZTo6U1ZHUm9vdDsKKyAgICAgICAgfQor
CiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Um9sZTo6SW1hZ2U7CiAgICAgfQogICAgIApA
QCAtMzI1MCw4ICszMjU0LDYgQEAgQWNjZXNzaWJpbGl0eVNWR1Jvb3QqIEFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3Q6OnJlbW90ZVNWR1Jvb3RFbGVtZW50KENyZWF0aW9uQ2gKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogcm9vdFNWR09iamVjdCA9IGNy
ZWF0ZUlmTmVjZXNzYXJ5ID09IENyZWF0ZSA/IGNhY2hlLT5nZXRPckNyZWF0ZShyZW5kZXJlclJv
b3QpIDogY2FjaGUtPmdldChyZW5kZXJlclJvb3QpOwogCi0gICAgLy8gSW4gb3JkZXIgdG8gY29u
bmVjdCB0aGUgQVggaGllcmFyY2h5IGZyb20gdGhlIFNWRyByb290IGVsZW1lbnQgZnJvbSB0aGUg
bG9hZGVkIHJlc291cmNlCi0gICAgLy8gdGhlIHBhcmVudCBtdXN0IGJlIHNldCwgYmVjYXVzZSB0
aGVyZSdzIG5vIG90aGVyIHdheSB0byBnZXQgYmFjayB0byB3aG8gY3JlYXRlZCB0aGUgaW1hZ2Uu
CiAgICAgQVNTRVJUKCFjcmVhdGVJZk5lY2Vzc2FyeSB8fCByb290U1ZHT2JqZWN0KTsKICAgICBp
ZiAoIWlzPEFjY2Vzc2liaWxpdHlTVkdSb290Pihyb290U1ZHT2JqZWN0KSkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CkBAIC0zMjY1LDYgKzMyNjcsOCBAQCB2b2lkIEFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3Q6OmFkZFJlbW90ZVNWR0NoaWxkcmVuKCkKICAgICBpZiAoIXJvb3QpCiAgICAgICAg
IHJldHVybjsKICAgICAKKyAgICAvLyBJbiBvcmRlciB0byBjb25uZWN0IHRoZSBBWCBoaWVyYXJj
aHkgZnJvbSB0aGUgU1ZHIHJvb3QgZWxlbWVudCBmcm9tIHRoZSBsb2FkZWQgcmVzb3VyY2UKKyAg
ICAvLyB0aGUgcGFyZW50IG11c3QgYmUgc2V0LCBiZWNhdXNlIHRoZXJlJ3Mgbm8gb3RoZXIgd2F5
IHRvIGdldCBiYWNrIHRvIHdobyBjcmVhdGVkIHRoZSBpbWFnZS4KICAgICByb290LT5zZXRQYXJl
bnQodGhpcyk7CiAgICAgCiAgICAgaWYgKHJvb3QtPmFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
U1ZHRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlTVkdFbGVtZW50LmNwcAppbmRleCAyNjMwYzY3NTg1M2E0YzNmMWZiMjJjYWI4MzljY2JmMTEw
ZjFmOWVjLi5lMjAxNGE1YzY1YTY3Y2QyNDNkMjI4ZGU4ZTY4YjQ4OTg1NTE3MGEzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTVkdFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTVkdF
bGVtZW50LmNwcApAQCAtNTUsNiArNTUsNDEgQEAgUmVmPEFjY2Vzc2liaWxpdHlTVkdFbGVtZW50
PiBBY2Nlc3NpYmlsaXR5U1ZHRWxlbWVudDo6Y3JlYXRlKFJlbmRlck9iamVjdCogcmVuZGUKICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBY2Nlc3NpYmlsaXR5U1ZHRWxlbWVudChyZW5kZXJlcikp
OwogfQogCitzdGF0aWMgYm9vbCBpc0FjY2Vzc2libGVTVkdFbGVtZW50KGNvbnN0IEVsZW1lbnQm
IGVsZW1lbnQpCit7CisgICAgaWYgKCFpczxTVkdFbGVtZW50PihlbGVtZW50KSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgLy8gVGhlIHByZXNlbmNlIG9mIGFuIFNWR1RpdGxlIG9yIFNW
R0Rlc2MgZWxlbWVudCBpcyBlbm91Z2ggdG8gZGVlbSB0aGUgU1ZHIGhpZXJhcmNoeSBhcyBhY2Nl
c3NpYmxlLgorICAgIGlmIChpczxTVkdUaXRsZUVsZW1lbnQ+KGVsZW1lbnQpCisgICAgICAgIHx8
IGlzPFNWR0Rlc2NFbGVtZW50PihlbGVtZW50KSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAg
ICAvLyBUZXh0IGNvbnRlbnQgaXMgYWNjZXNzaWJsZS4KKyAgICBpZiAoZG93bmNhc3Q8U1ZHRWxl
bWVudD4oZWxlbWVudCkuaXNUZXh0Q29udGVudCgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKwor
ICAgIC8vIElmIHRoZSByb2xlIG9yIGFyaWEtbGFiZWwgYXR0cmlidXRlcyBhcmUgc3BlY2lmaWVk
LCB0aGlzIGlzIGFjY2Vzc2libGUuCisgICAgaWYgKCFlbGVtZW50LmF0dHJpYnV0ZVdpdGhvdXRT
eW5jaHJvbml6YXRpb24ocm9sZUF0dHIpLmlzRW1wdHkoKQorICAgICAgICB8fCAhZWxlbWVudC5h
dHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGFyaWFfbGFiZWxBdHRyKS5pc0VtcHR5KCkp
CisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgLy8gVGhpcyBTVkdFbGVtZW50IGlzIGFjY2Vz
c2libGUgaWYgYW55IG9mIGl0cyBjaGlsZHJlbiBpcyBhY2Nlc3NpYmxlLgorICAgIGZvciAoY29u
c3QgYXV0byYgY2hpbGQgOiBjaGlsZHJlbk9mVHlwZTxTVkdFbGVtZW50PihlbGVtZW50KSkgewor
ICAgICAgICBpZiAoaXNBY2Nlc3NpYmxlU1ZHRWxlbWVudChjaGlsZCkpCisgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNz
aWJpbGl0eVNWR0VsZW1lbnQ6Omhhc0FjY2Vzc2libGVDb250ZW50KCkgY29uc3QKK3sKKyAgICBp
ZiAoYXV0byogZWxlbWVudCA9IHRoaXMtPmVsZW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIGlzQWNj
ZXNzaWJsZVNWR0VsZW1lbnQoKmVsZW1lbnQpOworICAgIHJldHVybiBmYWxzZTsKK30KKwogQWNj
ZXNzaWJpbGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eVNWR0VsZW1lbnQ6OnRhcmdldEZvclVzZUVs
ZW1lbnQoKSBjb25zdAogewogICAgIGlmICghaXM8U1ZHVXNlRWxlbWVudD4oZWxlbWVudCgpKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNW
R0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNW
R0VsZW1lbnQuaAppbmRleCA5NjJjNDgxNTA0YWE5NGYxZWViMDE3OGJmMjM3YTNlMTE5YmRmYjA4
Li5jM2ZmYmQ0YTdiYTdjOThlZWIyNTQ1NDA0NjJkZTVlNDA1Y2ZlMDRkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTVkdFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U1ZHRWxlbWVudC5o
CkBAIC0zNyw2ICszNyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlT
VkdFbGVtZW50PiBjcmVhdGUoUmVuZGVyT2JqZWN0Kik7CiAgICAgdmlydHVhbCB+QWNjZXNzaWJp
bGl0eVNWR0VsZW1lbnQoKTsKIAorICAgIGJvb2wgaGFzQWNjZXNzaWJsZUNvbnRlbnQoKSBjb25z
dDsKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBBY2Nlc3NpYmlsaXR5U1ZHRWxlbWVudChSZW5k
ZXJPYmplY3QqKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDFkYjYyZGEyMDgwMzQ1NWM4ZGExNDRlNmViNjMwNzcyOGI0
OGNiMzAuLmMzODdlNzU0MTQxNDE4Mjc4NTFiMTAwNTFhYTNkZmFlZGU4ZDk3NjAgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNSBAQAorMjAyMS0wMS0yMiAgQW5kcmVzIEdvbnphbGV6ICA8YW5kcmVzZ18yMkBh
cHBsZS5jb20+CisKKyAgICAgICAgQVg6IEBhbHQgYW5kIGJvdW5kcyBpZ25vcmVkIHdoZW4gdXNp
bmcgaW1nW3NyY10gcG9pbnRzIHRvIGFuIGluYWNjZXNzaWJsZSBTVkcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDcwNQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pbWctd2l0
aC1zdmctc291cmNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9pbWctd2l0aC1zdmctc291cmNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvaW9zLXNpbXVsYXRvci9pbWctd2l0aC1zdmctc291cmNlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pb3Mtc2ltdWxhdG9yL2ltZy13aXRoLXN2Zy1zb3Vy
Y2UuaHRtbDogQWRkZWQuCisKIDIwMjEtMDEtMjEgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNv
bT4KIAogICAgICAgICBOdWxsIGNoZWNrIGluIFJUQ1J0cFNGcmFtZVRyYW5zZm9ybTo6Y3JlYXRl
U3RyZWFtcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pbWctd2l0aC1z
dmctc291cmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaW1nLXdp
dGgtc3ZnLXNvdXJjZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2JjYjI5ZGFkYWM5YjQ5NjAz
ZDZkNGE5ZDg5NDcwZGY5MTE2N2VhNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Fj
Y2Vzc2liaWxpdHkvaW1nLXdpdGgtc3ZnLXNvdXJjZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwy
OCBAQAorCitUaGlzIHRlc3RzIHRoYXQgaW1hZ2VzIHdpdGggU1ZHIHNvdXJjZSBhcmUgaW5kZWVk
IGV4cG9zZWQgYXMgaW1hZ2VzIGFuZCBub3QgYXMgU1ZHIGdyb3VwcywgaWYgdGhlIFNWRyBzb3Vy
Y2UgaXMgbm90IGFjY2Vzc2libGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1MgaW1h
Z2Uucm9sZSBpcyAnQVhSb2xlOiBBWEltYWdlJworQVhEZXNjcmlwdGlvbjoKK1BBU1MgaW1hZ2Uu
cm9sZSBpcyAnQVhSb2xlOiBBWEltYWdlJworQVhEZXNjcmlwdGlvbjogMi4gc3ZnIGltYWdlIHdp
dGggYWx0IHRleHQKK1BBU1MgaW1hZ2Uucm9sZSBpcyAnQVhSb2xlOiBBWEltYWdlJworQVhEZXNj
cmlwdGlvbjogMy4gc3ZnIGltYWdlIHdpdGggcm9sZSBpbWcKK1BBU1MgaW1hZ2Uucm9sZSBpcyAn
QVhSb2xlOiBBWEltYWdlJworQVhEZXNjcmlwdGlvbjogNC4gc3ZnIGltYWdlIGluIGFuIGFuY2hv
cgorUEFTUyBpbWFnZS5yb2xlIGlzICdBWFJvbGU6IEFYSW1hZ2UnCitBWERlc2NyaXB0aW9uOiA1
LiBzdmcgaW1hZ2Ugd2l0aCByb2xlIGltZyBpbiBhbiBhbmNob3IKK1BBU1MgaW1hZ2Uucm9sZSBp
cyAnQVhSb2xlOiBBWEltYWdlJworQVhEZXNjcmlwdGlvbjogNi4gc3ZnIGltYWdlIHdpdGggYXJp
YSBsYWJlbAorUEFTUyBpbWFnZS5yb2xlIGlzICdBWFJvbGU6IEFYSW1hZ2UnCitBWERlc2NyaXB0
aW9uOiA3LiBzdmcgaW1hZ2Ugd2l0aCByb2xlIGltZyBhbmQgYXJpYSBsYWJlbAorUEFTUyBpbWFn
ZS5yb2xlIGlzICdBWFJvbGU6IEFYSW1hZ2UnCitBWERlc2NyaXB0aW9uOiA4LiBzdmcgaW1hZ2Ug
d2l0aCBzaXplIHNldAorUEFTUyBpbWFnZS5yb2xlIGlzICdBWFJvbGU6IEFYSW1hZ2UnCitBWERl
c2NyaXB0aW9uOiA5LiBzdmcgaW1hZ2Ugd2l0aCByb2xlIGltZyBhbmQgc2l6ZSBzZXQKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pbWctd2l0aC1zdmctc291cmNlLmh0
bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2ltZy13aXRoLXN2Zy1zb3VyY2UuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kNGRmMDU5MjcwODgzZmQxY2Q5NzJkZTQ2Y2U5NWYyY2NiMTdmNmUzCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pbWctd2l0aC1zdmctc291
cmNlLmh0bWwKQEAgLTAsMCArMSw0MSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRG
Ly9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT5pbWcge2JhY2tncm91bmQt
Y29sb3I6ICMwMDA7fTwvc3R5bGU+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYWNjZXNzaWJpbGl0
eS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorCis8IS0tIFRoaXMgdGVzdCBtdXN0IHJ1
biB3aGVuIGFsbCByZW1vdGUgcmVzb3VyY2VzIChTVkcgaW1hZ2VzKSBhcmUgbG9hZGVkLgorICAg
IFRodXMgYWRkIGFuIG9ubG9hZCBldmVudCBsaXN0ZW5lciB0byBib2R5IGFuZCBydW4gdGhlIHRl
c3QgdGhlcmUuIC0tPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorCis8aW1nIGlkPSJpbWFn
ZTEiIHNyYz0icmVzb3VyY2VzL2FwcGxlLWxvZ28uc3ZnIj4KKzxpbWcgaWQ9ImltYWdlMiIgc3Jj
PSJyZXNvdXJjZXMvYXBwbGUtbG9nby5zdmciIGFsdD0iMi4gc3ZnIGltYWdlIHdpdGggYWx0IHRl
eHQiPgorPGltZyBpZD0iaW1hZ2UzIiByb2xlPSJpbWciIHNyYz0icmVzb3VyY2VzL2FwcGxlLWxv
Z28uc3ZnIiBhbHQ9IjMuIHN2ZyBpbWFnZSB3aXRoIHJvbGUgaW1nIiBhbmQgYWx0IHRleHQiPgor
PGEgaHJlZj0iaHR0cHM6Ly9hcHBsZS5jb20iPjxpbWcgaWQ9ImltYWdlNCIgc3JjPSJyZXNvdXJj
ZXMvYXBwbGUtbG9nby5zdmciIGFsdD0iNC4gc3ZnIGltYWdlIGluIGFuIGFuY2hvciI+PC9hPgor
PGEgaHJlZj0iaHR0cHM6Ly9hcHBsZS5jb20iPjxpbWcgaWQ9ImltYWdlNSIgcm9sZT0iaW1nIiBz
cmM9InJlc291cmNlcy9hcHBsZS1sb2dvLnN2ZyIgYWx0PSI1LiBzdmcgaW1hZ2Ugd2l0aCByb2xl
IGltZyBpbiBhbiBhbmNob3IiPjwvYT4KKzxpbWcgaWQ9ImltYWdlNiIgc3JjPSJyZXNvdXJjZXMv
YXBwbGUtbG9nby5zdmciIGFyaWEtbGFiZWw9IjYuIHN2ZyBpbWFnZSB3aXRoIGFyaWEgbGFiZWwi
PgorPGltZyBpZD0iaW1hZ2U3IiByb2xlPSJpbWciIHNyYz0icmVzb3VyY2VzL2FwcGxlLWxvZ28u
c3ZnIiBhcmlhLWxhYmVsPSI3LiBzdmcgaW1hZ2Ugd2l0aCByb2xlIGltZyBhbmQgYXJpYSBsYWJl
bCI+Cis8aW1nIGlkPSJpbWFnZTgiIHNyYz0icmVzb3VyY2VzL2FwcGxlLWxvZ28uc3ZnIiBhbHQ9
IjguIHN2ZyBpbWFnZSB3aXRoIHNpemUgc2V0IiBzdHlsZT0iaGVpZ2h0OiAyMDBweDsgd2lkdGg6
IDIwMHB4OyI+Cis8aW1nIGlkPSJpbWFnZTkiIHJvbGU9ImltZyIgc3JjPSJyZXNvdXJjZXMvYXBw
bGUtbG9nby5zdmciIGFsdD0iOS4gc3ZnIGltYWdlIHdpdGggcm9sZSBpbWcgYW5kIHNpemUgc2V0
IiBzdHlsZT0iaGVpZ2h0OiAyMDBweDsgd2lkdGg6IDIwMHB4OyI+CisKKzxwIGlkPSJkZXNjcmlw
dGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+CisgICAgZGVz
Y3JpcHRpb24oIlRoaXMgdGVzdHMgdGhhdCBpbWFnZXMgd2l0aCBTVkcgc291cmNlIGFyZSBpbmRl
ZWQgZXhwb3NlZCBhcyBpbWFnZXMgYW5kIG5vdCBhcyBTVkcgZ3JvdXBzLCBpZiB0aGUgU1ZHIHNv
dXJjZSBpcyBub3QgYWNjZXNzaWJsZS4iKTsKKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Cisg
ICAgICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAgICAgICAgICAg
IGZvciAoaSA9IDE7IGkgPCAxMDsgKytpKSB7CisgICAgICAgICAgICAgICAgaW1hZ2UgPSBhY2Nl
c3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImltYWdlIiArIGkpOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJpbWFnZS5yb2xlIiwgIidBWFJvbGU6IEFYSW1hZ2Un
Iik7CisgICAgICAgICAgICAgICAgZGVidWcoaW1hZ2UuZGVzY3JpcHRpb24pOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2lvcy1zaW11bGF0b3IvaW1nLXdpdGgtc3Zn
LXNvdXJjZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2lvcy1zaW11
bGF0b3IvaW1nLXdpdGgtc3ZnLXNvdXJjZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTJhOGU3
ZWY1YzU4YjlkNTM5ZmRmZjFkYWJiYTNjZWFiY2UwMDUxMwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaW9zLXNpbXVsYXRvci9pbWctd2l0aC1zdmctc291cmNl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE5IEBACisKK1RoaXMgdGVzdHMgdGhhdCBpbWFnZXMg
d2l0aCBTVkcgc291cmNlIGFyZSBpbmRlZWQgZXhwb3NlZCBhcyBpbWFnZXMgYW5kIG5vdCBhcyBT
VkcgZ3JvdXBzLCBpZiB0aGUgU1ZHIHNvdXJjZSBpcyBub3QgYWNjZXNzaWJsZS4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorUEFTUyBpbWFnZS50cmFpdHMgaXMgcG5nSW1hZ2UxLnRyYWl0cwor
UEFTUyBpbWFnZS50cmFpdHMgaXMgcG5nSW1hZ2UxLnRyYWl0cworUEFTUyBpbWFnZS50cmFpdHMg
aXMgcG5nSW1hZ2UxLnRyYWl0cworUEFTUyBpbWFnZS50cmFpdHMgaXMgcG5nSW1hZ2UyLnRyYWl0
cworUEFTUyBpbWFnZS50cmFpdHMgaXMgcG5nSW1hZ2UyLnRyYWl0cworUEFTUyBpbWFnZS50cmFp
dHMgaXMgcG5nSW1hZ2UxLnRyYWl0cworUEFTUyBpbWFnZS50cmFpdHMgaXMgcG5nSW1hZ2UxLnRy
YWl0cworUEFTUyBpbWFnZS50cmFpdHMgaXMgcG5nSW1hZ2UxLnRyYWl0cworUEFTUyBpbWFnZS50
cmFpdHMgaXMgcG5nSW1hZ2UxLnRyYWl0cworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L2lvcy1zaW11bGF0b3IvaW1nLXdpdGgtc3ZnLXNvdXJjZS5odG1sIGIvTGF5b3V0
VGVzdHMvYWNjZXNzaWJpbGl0eS9pb3Mtc2ltdWxhdG9yL2ltZy13aXRoLXN2Zy1zb3VyY2UuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5lMWFkMGUwNTFjNDQ0MjU5NTU4ZTQ0ZDQ2MjQxNDE5MDE5ODQyMWUwCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pb3Mtc2ltdWxhdG9y
L2ltZy13aXRoLXN2Zy1zb3VyY2UuaHRtbApAQCAtMCwwICsxLDUxIEBACis8IURPQ1RZUEUgSFRN
TCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxl
PmltZyB7YmFja2dyb3VuZC1jb2xvcjogIzAwMDt9PC9zdHlsZT4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9hY2Nlc3NpYmlsaXR5LWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+CisK
KzwhLS0gVGhpcyB0ZXN0IG11c3QgcnVuIHdoZW4gYWxsIHJlbW90ZSByZXNvdXJjZXMgKFNWRyBp
bWFnZXMpIGFyZSBsb2FkZWQuCisgICAgVGh1cyBhZGQgYW4gb25sb2FkIGV2ZW50IGxpc3RlbmVy
IHRvIGJvZHkgYW5kIHJ1biB0aGUgdGVzdCB0aGVyZS4gLS0+Cis8Ym9keSBvbmxvYWQ9InJ1blRl
c3QoKSI+CisKKzwhLS0gVXNlZCBhcyBiYXNlbGluZSBmb3IgYW4gaW1hZ2UgdHJhaXRzLiAtLT4K
KzxpbWcgaWQ9InBuZ0ltYWdlMSIgc3JjPSIuLi9yZXNvdXJjZXMvY2FrZS5wbmciIGFsdD0iMS4g
cG5nIGltYWdlIj4KKzwhLS0gVXNlZCBhcyBiYXNlbGluZSBmb3IgYW4gaW1hZ2UgaW4gYW4gYW5j
aG9yIHRyYWl0cy4gLS0+Cis8YSBocmVmPSJodHRwczovL2FwcGxlLmNvbSI+PGltZyBpZD0icG5n
SW1hZ2UyIiBzcmM9Ii4uL3Jlc291cmNlcy9jYWtlLnBuZyIgYWx0PSIyLiBwbmcgaW1hZ2UiPjwv
YT4KKworPGltZyBpZD0iaW1hZ2UxIiBzcmM9Ii4uL3Jlc291cmNlcy9hcHBsZS1sb2dvLnN2ZyI+
Cis8aW1nIGlkPSJpbWFnZTIiIHNyYz0iLi4vcmVzb3VyY2VzL2FwcGxlLWxvZ28uc3ZnIiBhbHQ9
IjIuIHN2ZyBpbWFnZSB3aXRoIGFsdCB0ZXh0Ij4KKzxpbWcgaWQ9ImltYWdlMyIgcm9sZT0iaW1n
IiBzcmM9Ii4uL3Jlc291cmNlcy9hcHBsZS1sb2dvLnN2ZyIgYWx0PSIzLiBzdmcgaW1hZ2Ugd2l0
aCByb2xlIGltZyIgYW5kIGFsdCB0ZXh0Ij4KKzxhIGhyZWY9Imh0dHBzOi8vYXBwbGUuY29tIj48
aW1nIGlkPSJpbWFnZTQiIHNyYz0iLi4vcmVzb3VyY2VzL2FwcGxlLWxvZ28uc3ZnIiBhbHQ9IjQu
IHN2ZyBpbWFnZSBpbiBhbiBhbmNob3IiPjwvYT4KKzxhIGhyZWY9Imh0dHBzOi8vYXBwbGUuY29t
Ij48aW1nIGlkPSJpbWFnZTUiIHJvbGU9ImltZyIgc3JjPSIuLi9yZXNvdXJjZXMvYXBwbGUtbG9n
by5zdmciIGFsdD0iNS4gc3ZnIGltYWdlIHdpdGggcm9sZSBpbWcgaW4gYW4gYW5jaG9yIj48L2E+
Cis8aW1nIGlkPSJpbWFnZTYiIHNyYz0iLi4vcmVzb3VyY2VzL2FwcGxlLWxvZ28uc3ZnIiBhcmlh
LWxhYmVsPSI2LiBzdmcgaW1hZ2Ugd2l0aCBhcmlhIGxhYmVsIj4KKzxpbWcgaWQ9ImltYWdlNyIg
cm9sZT0iaW1nIiBzcmM9Ii4uL3Jlc291cmNlcy9hcHBsZS1sb2dvLnN2ZyIgYXJpYS1sYWJlbD0i
Ny4gc3ZnIGltYWdlIHdpdGggcm9sZSBpbWcgYW5kIGFyaWEgbGFiZWwiPgorPGltZyBpZD0iaW1h
Z2U4IiBzcmM9Ii4uL3Jlc291cmNlcy9hcHBsZS1sb2dvLnN2ZyIgYWx0PSI4LiBzdmcgaW1hZ2Ug
d2l0aCBzaXplIHNldCIgc3R5bGU9ImhlaWdodDogMjAwcHg7IHdpZHRoOiAyMDBweDsiPgorPGlt
ZyBpZD0iaW1hZ2U5IiByb2xlPSJpbWciIHNyYz0iLi4vcmVzb3VyY2VzL2FwcGxlLWxvZ28uc3Zn
IiBhbHQ9IjkuIHN2ZyBpbWFnZSB3aXRoIHJvbGUgaW1nIGFuZCBzaXplIHNldCIgc3R5bGU9Imhl
aWdodDogMjAwcHg7IHdpZHRoOiAyMDBweDsiPgorCis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4K
KzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJU
aGlzIHRlc3RzIHRoYXQgaW1hZ2VzIHdpdGggU1ZHIHNvdXJjZSBhcmUgaW5kZWVkIGV4cG9zZWQg
YXMgaW1hZ2VzIGFuZCBub3QgYXMgU1ZHIGdyb3VwcywgaWYgdGhlIFNWRyBzb3VyY2UgaXMgbm90
IGFjY2Vzc2libGUuIik7CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAo
d2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAgICAgICAgICBwbmdJbWFnZTEg
PSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoInBuZ0ltYWdl
MSIpOworICAgICAgICAgICAgcG5nSW1hZ2UyID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNj
ZXNzaWJsZUVsZW1lbnRCeUlkKCJwbmdJbWFnZTIiKTsKKworICAgICAgICAgICAgZm9yIChpID0g
MTsgaSA8IDEwOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpbWFnZSA9IGFjY2Vzc2liaWxpdHlD
b250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiaW1hZ2UiICsgaSk7CisgICAgICAgICAg
ICAgICAgaWYgKGkgPCA0IHx8IGkgPiA1KQorICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgi
aW1hZ2UudHJhaXRzIiwgInBuZ0ltYWdlMS50cmFpdHMiKTsKKyAgICAgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJpbWFnZS50cmFpdHMiLCAicG5nSW1hZ2Uy
LnRyYWl0cyIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418229</attachid>
            <date>2021-01-23 11:28:10 -0800</date>
            <delta_ts>2021-01-25 07:57:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160705-20210123142809.patch</filename>
            <type>text/plain</type>
            <size>15310</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxNjkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmU1NWVhNmI3Zjg3ZmIz
NjJjMGZlMGEyMjRmNGE0NjZmMWJiZWE0NS4uZGU0MzNkNzUwYjQ0ZjI2NzVlN2RhZWU3MTAyOWE2
OTg5Yzk4MGM4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIxLTAxLTIzICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogQGFsdCBh
bmQgYm91bmRzIGlnbm9yZWQgd2hlbiB1c2luZyBpbWdbc3JjXSBwb2ludHMgdG8gYW4gaW5hY2Nl
c3NpYmxlIFNWRworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTYwNzA1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNzc3MTU3OT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBDaHJpcyBGbGVpemFjaCBhbmQgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgVGVz
dHM6IGFjY2Vzc2liaWxpdHkvaW1nLXdpdGgtc3ZnLXNvdXJjZS5odG1sCisgICAgICAgICAgICAg
ICBhY2Nlc3NpYmlsaXR5L2lvcy1zaW11bGF0b3IvaW1nLXdpdGgtc3ZnLXNvdXJjZS5odG1sCisK
KyAgICAgICAgVGhlIHByb2JsZW0gd2FzIGNhdXNlZCBieSBBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0OjpkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5Um9sZQorICAgICAgICB0aGF0IHdhcyByZXR1cm5p
bmcgQWNjZXNzaWJpbGl0eVJvbGU6OlNWR1Jvb3QgZm9yIGFsbCBpbWFnZXMgd2l0aCBhIHJlbW90
ZQorICAgICAgICBTVkcgc291cmNlLCByZWdhcmRsZXNzIHdoZXRoZXIgdGhlIFNWRyBoaWVyYXJj
aHkgY29udGFpbmVkIHNvbWUgYWNjZXNzaWJpbGl0eQorICAgICAgICBkYXRhIG9yIG5vdC4gVGhp
cyByZXN1bHRlZCBpbiBWb2ljZU92ZXIgcmVhZGluZyB0aGUgaW1hZ2UgbGlrZSBhbiBlbXB0eQor
ICAgICAgICBncm91cCBvbiBNYWMsIG9yIGNvbXBsZXRlbHkgaWdub3JpbmcgdGhlIGltYWdlIG9u
IGlPUy4KKyAgICAgICAgVGhlIHNvbHV0aW9uIGluIHRoaXMgcGF0Y2ggaXMgdG8gb25seSByZXR1
cm4gQWNjZXNzaWJpbGl0eVJvbGU6OlNWR1Jvb3QKKyAgICAgICAgaWYgdGhlIFNWRyBoYXMgc29t
ZSBhY2Nlc3NpYmlsaXR5IGNvbnZleWFibGUgZGF0YS4gQWRkZWQgdGhlIG1ldGhvZAorICAgICAg
ICBBY2Nlc3NpYmlsaXR5U1ZHUm9vdDo6aGFzQWNjZXNzaWJsZUNvbnRlbnQgZm9yIHRoaXMgcHVy
cG9zZS4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpkZXRl
cm1pbmVBY2Nlc3NpYmlsaXR5Um9sZSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0OjpyZW1vdGVTVkdSb290RWxlbWVudCBjb25zdCk6CisgICAgICAgIENvbW1l
bnQgd2FzIG1pc3NwbGFjZWQsIG1vdmVkIGl0IHRvIHRoZSByaWdodCBwbGFjZS4KKyAgICAgICAg
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFkZFJlbW90ZVNWR0NoaWxkcmVu
KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTVkdSb290LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlTVkdSb290OjpoYXNBY2Nlc3NpYmxlQ29udGVu
dCBjb25zdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U1ZHUm9vdC5o
OgorCiAyMDIxLTAxLTIxICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CiAKICAgICAgICAg
RW5zdXJlIGNyZWF0ZVN0cmVhbXMgZ2V0cyB2YWxpZCBKU0dsb2JhbE9iamVjdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdC5jcHAKaW5kZXggNDg3MjcwM2UzYmY5YzI3YzhlYWE2MDE0YmQ4MmVkYzBkMWQyNTE3YS4u
ZGJlOTUwYjA3NjI4ODhlMDVjNmRjMTg0MjRiZTI5M2NkNzBjOWQzYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QuY3BwCkBAIC0yNzk3LDggKzI3OTcsMTIgQEAgQWNjZXNzaWJpbGl0eVJvbGUgQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUoKQogICAgIGlmIChj
c3NCb3ggJiYgY3NzQm94LT5pc0ltYWdlKCkpIHsKICAgICAgICAgaWYgKGlzPEhUTUxJbnB1dEVs
ZW1lbnQ+KG5vZGUpKQogICAgICAgICAgICAgcmV0dXJuIGhhc1BvcHVwKCkgPyBBY2Nlc3NpYmls
aXR5Um9sZTo6UG9wVXBCdXR0b24gOiBBY2Nlc3NpYmlsaXR5Um9sZTo6QnV0dG9uOwotICAgICAg
ICBpZiAoaXNTVkdJbWFnZSgpKQotICAgICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlSb2xl
OjpTVkdSb290OworCisgICAgICAgIGlmIChhdXRvKiBzdmdSb290ID0gcmVtb3RlU1ZHUm9vdEVs
ZW1lbnQoQ3JlYXRlKSkgeworICAgICAgICAgICAgaWYgKHN2Z1Jvb3QtPmhhc0FjY2Vzc2libGVD
b250ZW50KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlSb2xlOjpTVkdS
b290OworICAgICAgICB9CisKICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlSb2xlOjpJbWFn
ZTsKICAgICB9CiAgICAgCkBAIC0zMjUwLDggKzMyNTQsNiBAQCBBY2Nlc3NpYmlsaXR5U1ZHUm9v
dCogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6cmVtb3RlU1ZHUm9vdEVsZW1lbnQoQ3JlYXRp
b25DaAogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBy
b290U1ZHT2JqZWN0ID0gY3JlYXRlSWZOZWNlc3NhcnkgPT0gQ3JlYXRlID8gY2FjaGUtPmdldE9y
Q3JlYXRlKHJlbmRlcmVyUm9vdCkgOiBjYWNoZS0+Z2V0KHJlbmRlcmVyUm9vdCk7CiAKLSAgICAv
LyBJbiBvcmRlciB0byBjb25uZWN0IHRoZSBBWCBoaWVyYXJjaHkgZnJvbSB0aGUgU1ZHIHJvb3Qg
ZWxlbWVudCBmcm9tIHRoZSBsb2FkZWQgcmVzb3VyY2UKLSAgICAvLyB0aGUgcGFyZW50IG11c3Qg
YmUgc2V0LCBiZWNhdXNlIHRoZXJlJ3Mgbm8gb3RoZXIgd2F5IHRvIGdldCBiYWNrIHRvIHdobyBj
cmVhdGVkIHRoZSBpbWFnZS4KICAgICBBU1NFUlQoIWNyZWF0ZUlmTmVjZXNzYXJ5IHx8IHJvb3RT
VkdPYmplY3QpOwogICAgIGlmICghaXM8QWNjZXNzaWJpbGl0eVNWR1Jvb3Q+KHJvb3RTVkdPYmpl
Y3QpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTMyNjUsNiArMzI2Nyw4IEBAIHZvaWQg
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWRkUmVtb3RlU1ZHQ2hpbGRyZW4oKQogICAgIGlm
ICghcm9vdCkKICAgICAgICAgcmV0dXJuOwogICAgIAorICAgIC8vIEluIG9yZGVyIHRvIGNvbm5l
Y3QgdGhlIEFYIGhpZXJhcmNoeSBmcm9tIHRoZSBTVkcgcm9vdCBlbGVtZW50IGZyb20gdGhlIGxv
YWRlZCByZXNvdXJjZQorICAgIC8vIHRoZSBwYXJlbnQgbXVzdCBiZSBzZXQsIGJlY2F1c2UgdGhl
cmUncyBubyBvdGhlciB3YXkgdG8gZ2V0IGJhY2sgdG8gd2hvIGNyZWF0ZWQgdGhlIGltYWdlLgog
ICAgIHJvb3QtPnNldFBhcmVudCh0aGlzKTsKICAgICAKICAgICBpZiAocm9vdC0+YWNjZXNzaWJp
bGl0eUlzSWdub3JlZCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlTVkdSb290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVNWR1Jvb3QuY3BwCmluZGV4IDMyMzZhZjAyMjI3MzJhNWQyNWQ1YmE4
NDI1MWQ1MWMwODFhMDNkZDMuLmI0Y2FiNzVkYTZiZTBmMzcyMzU2Mzk4NmQ4YWJjMmZlNDRjM2Ex
ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVNWR1Jvb3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVNWR1Jvb3QuY3BwCkBAIC02OCw1ICs2OCw0NCBAQCBBY2Nlc3NpYmlsaXR5Um9sZSBBY2Nl
c3NpYmlsaXR5U1ZHUm9vdDo6cm9sZVZhbHVlKCkgY29uc3QKIAogICAgIHJldHVybiBBY2Nlc3Np
YmlsaXR5Um9sZTo6R3JvdXA7CiB9Ci0gICAgCisKK2Jvb2wgQWNjZXNzaWJpbGl0eVNWR1Jvb3Q6
Omhhc0FjY2Vzc2libGVDb250ZW50KCkgY29uc3QKK3sKKyAgICBhdXRvKiByb290RWxlbWVudCA9
IHRoaXMtPmVsZW1lbnQoKTsKKyAgICBpZiAoIXJvb3RFbGVtZW50KQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBhdXRvIGlzQWNjZXNzaWJsZVNWR0VsZW1lbnQgPSBbXSAoY29uc3QgRWxl
bWVudCYgZWxlbWVudCkgLT4gYm9vbCB7CisgICAgICAgIGlmICghaXM8U1ZHRWxlbWVudD4oZWxl
bWVudCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgLy8gVGhlIHByZXNl
bmNlIG9mIGFuIFNWR1RpdGxlIG9yIFNWR0Rlc2MgZWxlbWVudCBpcyBlbm91Z2ggdG8gZGVlbSB0
aGUgU1ZHIGhpZXJhcmNoeSBhcyBhY2Nlc3NpYmxlLgorICAgICAgICBpZiAoaXM8U1ZHVGl0bGVF
bGVtZW50PihlbGVtZW50KQorICAgICAgICAgICAgfHwgaXM8U1ZHRGVzY0VsZW1lbnQ+KGVsZW1l
bnQpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAgLy8gVGV4dCBjb250ZW50
IGlzIGFjY2Vzc2libGUuCisgICAgICAgIGlmIChkb3duY2FzdDxTVkdFbGVtZW50PihlbGVtZW50
KS5pc1RleHRDb250ZW50KCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICAv
LyBJZiB0aGUgcm9sZSBvciBhcmlhLWxhYmVsIGF0dHJpYnV0ZXMgYXJlIHNwZWNpZmllZCwgdGhp
cyBpcyBhY2Nlc3NpYmxlLgorICAgICAgICBpZiAoIWVsZW1lbnQuYXR0cmlidXRlV2l0aG91dFN5
bmNocm9uaXphdGlvbihyb2xlQXR0cikuaXNFbXB0eSgpCisgICAgICAgICAgICB8fCAhZWxlbWVu
dC5hdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGFyaWFfbGFiZWxBdHRyKS5pc0VtcHR5
KCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgfTsKKworICAgIGlmIChpc0FjY2Vzc2libGVTVkdFbGVtZW50KCpyb290RWxlbWVudCkpCisg
ICAgICAgIHJldHVybiB0cnVlOworCisgICAgLy8gVGhpcyBTVkcgaGllcmFyY2h5IGlzIGFjY2Vz
c2libGUgaWYgYW55IG9mIGl0cyBkZXNjZW5kYW50cyBpcyBhY2Nlc3NpYmxlLgorICAgIGZvciAo
Y29uc3QgYXV0byYgZGVzY2VuZGFudCA6IGRlc2NlbmRhbnRzT2ZUeXBlPFNWR0VsZW1lbnQ+KCpy
b290RWxlbWVudCkpIHsKKyAgICAgICAgaWYgKGlzQWNjZXNzaWJsZVNWR0VsZW1lbnQoZGVzY2Vu
ZGFudCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNWR1Jvb3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNWR1Jvb3QuaAppbmRleCBiODE1NjM1NzYzMGEy
MWFkN2VkMTYzNzhlNzg4YTQ4MzZkMmEyOGI1Li5kMzcwODc5ZDQyNTYzNTFkYjNmZDMwYmJmYzFm
ZDBjNzFkOTkzNDdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlTVkdSb290LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5U1ZHUm9vdC5oCkBAIC0zNywxOSArMzcsMTkgQEAgY2xhc3MgQWNjZXNzaWJp
bGl0eVNWR1Jvb3QgZmluYWwgOiBwdWJsaWMgQWNjZXNzaWJpbGl0eVNWR0VsZW1lbnQgewogcHVi
bGljOgogICAgIHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0eVNWR1Jvb3Q+IGNyZWF0ZShSZW5kZXJP
YmplY3QqKTsKICAgICB2aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5U1ZHUm9vdCgpOwotICAgIAotICAg
IHZvaWQgc2V0UGFyZW50KEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QqKTsKIAorICAgIHZvaWQg
c2V0UGFyZW50KEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QqKTsKKyAgICBib29sIGhhc0FjY2Vz
c2libGVDb250ZW50KCkgY29uc3Q7CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxp
dHlTVkdSb290KFJlbmRlck9iamVjdCopOwotICAgIAorCiAgICAgQWNjZXNzaWJpbGl0eU9iamVj
dCogcGFyZW50T2JqZWN0KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc0FjY2Vzc2liaWxp
dHlTVkdSb290KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIEFjY2Vzc2li
aWxpdHlSb2xlIHJvbGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgV2Vha1B0cjxBY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0PiBtX3BhcmVudDsKLSAgICBBY2Nlc3NpYmlsaXR5Um9sZSBy
b2xlVmFsdWUoKSBjb25zdCBvdmVycmlkZTsKIH07Ci0gICAgCisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUgCiAKIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQUNDRVNTSUJJTElUWShBY2Nlc3NpYmls
aXR5U1ZHUm9vdCwgaXNBY2Nlc3NpYmlsaXR5U1ZHUm9vdCgpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDFkYjYyZGEyMDgw
MzQ1NWM4ZGExNDRlNmViNjMwNzcyOGI0OGNiMzAuLmRmNmZhNjg1YjBjZjFkNjFiOWIwOTMyN2Nm
YzUyZjg3ZTdjODYyY2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0wMS0yMyAgQW5kcmVz
IEdvbnphbGV6ICA8YW5kcmVzZ18yMkBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IEBhbHQgYW5k
IGJvdW5kcyBpZ25vcmVkIHdoZW4gdXNpbmcgaW1nW3NyY10gcG9pbnRzIHRvIGFuIGluYWNjZXNz
aWJsZSBTVkcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2MDcwNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjc3NzE1Nzk+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgQ2hyaXMgRmxlaXphY2ggYW5kIERhcmluIEFkbGVyLgorCisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9pbWctd2l0aC1zdmctc291cmNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9pbWctd2l0aC1zdmctc291cmNlLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvaW9zLXNpbXVsYXRvci9pbWctd2l0aC1zdmctc291cmNlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pb3Mtc2ltdWxhdG9y
L2ltZy13aXRoLXN2Zy1zb3VyY2UuaHRtbDogQWRkZWQuCisKIDIwMjEtMDEtMjEgIFJvYiBCdWlz
ICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBOdWxsIGNoZWNrIGluIFJUQ1J0cFNGcmFt
ZVRyYW5zZm9ybTo6Y3JlYXRlU3RyZWFtcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9pbWctd2l0aC1zdmctc291cmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Fj
Y2Vzc2liaWxpdHkvaW1nLXdpdGgtc3ZnLXNvdXJjZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
M2JjYjI5ZGFkYWM5YjQ5NjAzZDZkNGE5ZDg5NDcwZGY5MTE2N2VhNgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaW1nLXdpdGgtc3ZnLXNvdXJjZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwyOCBAQAorCitUaGlzIHRlc3RzIHRoYXQgaW1hZ2VzIHdpdGggU1ZH
IHNvdXJjZSBhcmUgaW5kZWVkIGV4cG9zZWQgYXMgaW1hZ2VzIGFuZCBub3QgYXMgU1ZHIGdyb3Vw
cywgaWYgdGhlIFNWRyBzb3VyY2UgaXMgbm90IGFjY2Vzc2libGUuCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKK1BBU1MgaW1hZ2Uucm9sZSBpcyAnQVhSb2xlOiBBWEltYWdlJworQVhEZXNjcmlw
dGlvbjoKK1BBU1MgaW1hZ2Uucm9sZSBpcyAnQVhSb2xlOiBBWEltYWdlJworQVhEZXNjcmlwdGlv
bjogMi4gc3ZnIGltYWdlIHdpdGggYWx0IHRleHQKK1BBU1MgaW1hZ2Uucm9sZSBpcyAnQVhSb2xl
OiBBWEltYWdlJworQVhEZXNjcmlwdGlvbjogMy4gc3ZnIGltYWdlIHdpdGggcm9sZSBpbWcKK1BB
U1MgaW1hZ2Uucm9sZSBpcyAnQVhSb2xlOiBBWEltYWdlJworQVhEZXNjcmlwdGlvbjogNC4gc3Zn
IGltYWdlIGluIGFuIGFuY2hvcgorUEFTUyBpbWFnZS5yb2xlIGlzICdBWFJvbGU6IEFYSW1hZ2Un
CitBWERlc2NyaXB0aW9uOiA1LiBzdmcgaW1hZ2Ugd2l0aCByb2xlIGltZyBpbiBhbiBhbmNob3IK
K1BBU1MgaW1hZ2Uucm9sZSBpcyAnQVhSb2xlOiBBWEltYWdlJworQVhEZXNjcmlwdGlvbjogNi4g
c3ZnIGltYWdlIHdpdGggYXJpYSBsYWJlbAorUEFTUyBpbWFnZS5yb2xlIGlzICdBWFJvbGU6IEFY
SW1hZ2UnCitBWERlc2NyaXB0aW9uOiA3LiBzdmcgaW1hZ2Ugd2l0aCByb2xlIGltZyBhbmQgYXJp
YSBsYWJlbAorUEFTUyBpbWFnZS5yb2xlIGlzICdBWFJvbGU6IEFYSW1hZ2UnCitBWERlc2NyaXB0
aW9uOiA4LiBzdmcgaW1hZ2Ugd2l0aCBzaXplIHNldAorUEFTUyBpbWFnZS5yb2xlIGlzICdBWFJv
bGU6IEFYSW1hZ2UnCitBWERlc2NyaXB0aW9uOiA5LiBzdmcgaW1hZ2Ugd2l0aCByb2xlIGltZyBh
bmQgc2l6ZSBzZXQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pbWct
d2l0aC1zdmctc291cmNlLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2ltZy13aXRo
LXN2Zy1zb3VyY2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNGRmMDU5MjcwODgzZmQxY2Q5NzJkZTQ2Y2U5
NWYyY2NiMTdmNmUzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0
eS9pbWctd2l0aC1zdmctc291cmNlLmh0bWwKQEAgLTAsMCArMSw0MSBAQAorPCFET0NUWVBFIEhU
TUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzdHls
ZT5pbWcge2JhY2tncm91bmQtY29sb3I6ICMwMDA7fTwvc3R5bGU+Cis8c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvYWNjZXNzaWJpbGl0eS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorCis8IS0t
IFRoaXMgdGVzdCBtdXN0IHJ1biB3aGVuIGFsbCByZW1vdGUgcmVzb3VyY2VzIChTVkcgaW1hZ2Vz
KSBhcmUgbG9hZGVkLgorICAgIFRodXMgYWRkIGFuIG9ubG9hZCBldmVudCBsaXN0ZW5lciB0byBi
b2R5IGFuZCBydW4gdGhlIHRlc3QgdGhlcmUuIC0tPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCki
PgorCis8aW1nIGlkPSJpbWFnZTEiIHNyYz0icmVzb3VyY2VzL2FwcGxlLWxvZ28uc3ZnIj4KKzxp
bWcgaWQ9ImltYWdlMiIgc3JjPSJyZXNvdXJjZXMvYXBwbGUtbG9nby5zdmciIGFsdD0iMi4gc3Zn
IGltYWdlIHdpdGggYWx0IHRleHQiPgorPGltZyBpZD0iaW1hZ2UzIiByb2xlPSJpbWciIHNyYz0i
cmVzb3VyY2VzL2FwcGxlLWxvZ28uc3ZnIiBhbHQ9IjMuIHN2ZyBpbWFnZSB3aXRoIHJvbGUgaW1n
IiBhbmQgYWx0IHRleHQiPgorPGEgaHJlZj0iaHR0cHM6Ly9hcHBsZS5jb20iPjxpbWcgaWQ9Imlt
YWdlNCIgc3JjPSJyZXNvdXJjZXMvYXBwbGUtbG9nby5zdmciIGFsdD0iNC4gc3ZnIGltYWdlIGlu
IGFuIGFuY2hvciI+PC9hPgorPGEgaHJlZj0iaHR0cHM6Ly9hcHBsZS5jb20iPjxpbWcgaWQ9Imlt
YWdlNSIgcm9sZT0iaW1nIiBzcmM9InJlc291cmNlcy9hcHBsZS1sb2dvLnN2ZyIgYWx0PSI1LiBz
dmcgaW1hZ2Ugd2l0aCByb2xlIGltZyBpbiBhbiBhbmNob3IiPjwvYT4KKzxpbWcgaWQ9ImltYWdl
NiIgc3JjPSJyZXNvdXJjZXMvYXBwbGUtbG9nby5zdmciIGFyaWEtbGFiZWw9IjYuIHN2ZyBpbWFn
ZSB3aXRoIGFyaWEgbGFiZWwiPgorPGltZyBpZD0iaW1hZ2U3IiByb2xlPSJpbWciIHNyYz0icmVz
b3VyY2VzL2FwcGxlLWxvZ28uc3ZnIiBhcmlhLWxhYmVsPSI3LiBzdmcgaW1hZ2Ugd2l0aCByb2xl
IGltZyBhbmQgYXJpYSBsYWJlbCI+Cis8aW1nIGlkPSJpbWFnZTgiIHNyYz0icmVzb3VyY2VzL2Fw
cGxlLWxvZ28uc3ZnIiBhbHQ9IjguIHN2ZyBpbWFnZSB3aXRoIHNpemUgc2V0IiBzdHlsZT0iaGVp
Z2h0OiAyMDBweDsgd2lkdGg6IDIwMHB4OyI+Cis8aW1nIGlkPSJpbWFnZTkiIHJvbGU9ImltZyIg
c3JjPSJyZXNvdXJjZXMvYXBwbGUtbG9nby5zdmciIGFsdD0iOS4gc3ZnIGltYWdlIHdpdGggcm9s
ZSBpbWcgYW5kIHNpemUgc2V0IiBzdHlsZT0iaGVpZ2h0OiAyMDBweDsgd2lkdGg6IDIwMHB4OyI+
CisKKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisK
KzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhhdCBpbWFnZXMgd2l0aCBT
Vkcgc291cmNlIGFyZSBpbmRlZWQgZXhwb3NlZCBhcyBpbWFnZXMgYW5kIG5vdCBhcyBTVkcgZ3Jv
dXBzLCBpZiB0aGUgU1ZHIHNvdXJjZSBpcyBub3QgYWNjZXNzaWJsZS4iKTsKKworICAgIGZ1bmN0
aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIpIHsKKyAgICAgICAgICAgIGZvciAoaSA9IDE7IGkgPCAxMDsgKytpKSB7CisgICAgICAgICAg
ICAgICAgaW1hZ2UgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5
SWQoImltYWdlIiArIGkpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJpbWFnZS5yb2xlIiwg
IidBWFJvbGU6IEFYSW1hZ2UnIik7CisgICAgICAgICAgICAgICAgZGVidWcoaW1hZ2UuZGVzY3Jp
cHRpb24pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2lvcy1zaW11
bGF0b3IvaW1nLXdpdGgtc3ZnLXNvdXJjZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L2lvcy1zaW11bGF0b3IvaW1nLXdpdGgtc3ZnLXNvdXJjZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOTJhOGU3ZWY1YzU4YjlkNTM5ZmRmZjFkYWJiYTNjZWFiY2UwMDUxMwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaW9zLXNpbXVsYXRvci9p
bWctd2l0aC1zdmctc291cmNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE5IEBACisKK1RoaXMg
dGVzdHMgdGhhdCBpbWFnZXMgd2l0aCBTVkcgc291cmNlIGFyZSBpbmRlZWQgZXhwb3NlZCBhcyBp
bWFnZXMgYW5kIG5vdCBhcyBTVkcgZ3JvdXBzLCBpZiB0aGUgU1ZHIHNvdXJjZSBpcyBub3QgYWNj
ZXNzaWJsZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFTUyBpbWFnZS50cmFpdHMgaXMg
cG5nSW1hZ2UxLnRyYWl0cworUEFTUyBpbWFnZS50cmFpdHMgaXMgcG5nSW1hZ2UxLnRyYWl0cwor
UEFTUyBpbWFnZS50cmFpdHMgaXMgcG5nSW1hZ2UxLnRyYWl0cworUEFTUyBpbWFnZS50cmFpdHMg
aXMgcG5nSW1hZ2UyLnRyYWl0cworUEFTUyBpbWFnZS50cmFpdHMgaXMgcG5nSW1hZ2UyLnRyYWl0
cworUEFTUyBpbWFnZS50cmFpdHMgaXMgcG5nSW1hZ2UxLnRyYWl0cworUEFTUyBpbWFnZS50cmFp
dHMgaXMgcG5nSW1hZ2UxLnRyYWl0cworUEFTUyBpbWFnZS50cmFpdHMgaXMgcG5nSW1hZ2UxLnRy
YWl0cworUEFTUyBpbWFnZS50cmFpdHMgaXMgcG5nSW1hZ2UxLnRyYWl0cworCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2lvcy1zaW11bGF0b3IvaW1nLXdpdGgtc3ZnLXNv
dXJjZS5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pb3Mtc2ltdWxhdG9yL2ltZy13
aXRoLXN2Zy1zb3VyY2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMWFkMGUwNTFjNDQ0MjU5NTU4ZTQ0ZDQ2
MjQxNDE5MDE5ODQyMWUwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS9pb3Mtc2ltdWxhdG9yL2ltZy13aXRoLXN2Zy1zb3VyY2UuaHRtbApAQCAtMCwwICsxLDUx
IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRt
bD4KKzxoZWFkPgorPHN0eWxlPmltZyB7YmFja2dyb3VuZC1jb2xvcjogIzAwMDt9PC9zdHlsZT4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9hY2Nlc3NpYmlsaXR5LWhlbHBlci5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+CisKKzwhLS0gVGhpcyB0ZXN0IG11c3QgcnVuIHdoZW4gYWxsIHJlbW90
ZSByZXNvdXJjZXMgKFNWRyBpbWFnZXMpIGFyZSBsb2FkZWQuCisgICAgVGh1cyBhZGQgYW4gb25s
b2FkIGV2ZW50IGxpc3RlbmVyIHRvIGJvZHkgYW5kIHJ1biB0aGUgdGVzdCB0aGVyZS4gLS0+Cis8
Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CisKKzwhLS0gVXNlZCBhcyBiYXNlbGluZSBmb3IgYW4g
aW1hZ2UgdHJhaXRzLiAtLT4KKzxpbWcgaWQ9InBuZ0ltYWdlMSIgc3JjPSIuLi9yZXNvdXJjZXMv
Y2FrZS5wbmciIGFsdD0iMS4gcG5nIGltYWdlIj4KKzwhLS0gVXNlZCBhcyBiYXNlbGluZSBmb3Ig
YW4gaW1hZ2UgaW4gYW4gYW5jaG9yIHRyYWl0cy4gLS0+Cis8YSBocmVmPSJodHRwczovL2FwcGxl
LmNvbSI+PGltZyBpZD0icG5nSW1hZ2UyIiBzcmM9Ii4uL3Jlc291cmNlcy9jYWtlLnBuZyIgYWx0
PSIyLiBwbmcgaW1hZ2UiPjwvYT4KKworPGltZyBpZD0iaW1hZ2UxIiBzcmM9Ii4uL3Jlc291cmNl
cy9hcHBsZS1sb2dvLnN2ZyI+Cis8aW1nIGlkPSJpbWFnZTIiIHNyYz0iLi4vcmVzb3VyY2VzL2Fw
cGxlLWxvZ28uc3ZnIiBhbHQ9IjIuIHN2ZyBpbWFnZSB3aXRoIGFsdCB0ZXh0Ij4KKzxpbWcgaWQ9
ImltYWdlMyIgcm9sZT0iaW1nIiBzcmM9Ii4uL3Jlc291cmNlcy9hcHBsZS1sb2dvLnN2ZyIgYWx0
PSIzLiBzdmcgaW1hZ2Ugd2l0aCByb2xlIGltZyIgYW5kIGFsdCB0ZXh0Ij4KKzxhIGhyZWY9Imh0
dHBzOi8vYXBwbGUuY29tIj48aW1nIGlkPSJpbWFnZTQiIHNyYz0iLi4vcmVzb3VyY2VzL2FwcGxl
LWxvZ28uc3ZnIiBhbHQ9IjQuIHN2ZyBpbWFnZSBpbiBhbiBhbmNob3IiPjwvYT4KKzxhIGhyZWY9
Imh0dHBzOi8vYXBwbGUuY29tIj48aW1nIGlkPSJpbWFnZTUiIHJvbGU9ImltZyIgc3JjPSIuLi9y
ZXNvdXJjZXMvYXBwbGUtbG9nby5zdmciIGFsdD0iNS4gc3ZnIGltYWdlIHdpdGggcm9sZSBpbWcg
aW4gYW4gYW5jaG9yIj48L2E+Cis8aW1nIGlkPSJpbWFnZTYiIHNyYz0iLi4vcmVzb3VyY2VzL2Fw
cGxlLWxvZ28uc3ZnIiBhcmlhLWxhYmVsPSI2LiBzdmcgaW1hZ2Ugd2l0aCBhcmlhIGxhYmVsIj4K
KzxpbWcgaWQ9ImltYWdlNyIgcm9sZT0iaW1nIiBzcmM9Ii4uL3Jlc291cmNlcy9hcHBsZS1sb2dv
LnN2ZyIgYXJpYS1sYWJlbD0iNy4gc3ZnIGltYWdlIHdpdGggcm9sZSBpbWcgYW5kIGFyaWEgbGFi
ZWwiPgorPGltZyBpZD0iaW1hZ2U4IiBzcmM9Ii4uL3Jlc291cmNlcy9hcHBsZS1sb2dvLnN2ZyIg
YWx0PSI4LiBzdmcgaW1hZ2Ugd2l0aCBzaXplIHNldCIgc3R5bGU9ImhlaWdodDogMjAwcHg7IHdp
ZHRoOiAyMDBweDsiPgorPGltZyBpZD0iaW1hZ2U5IiByb2xlPSJpbWciIHNyYz0iLi4vcmVzb3Vy
Y2VzL2FwcGxlLWxvZ28uc3ZnIiBhbHQ9IjkuIHN2ZyBpbWFnZSB3aXRoIHJvbGUgaW1nIGFuZCBz
aXplIHNldCIgc3R5bGU9ImhlaWdodDogMjAwcHg7IHdpZHRoOiAyMDBweDsiPgorCis8cCBpZD0i
ZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0Pgor
ICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgaW1hZ2VzIHdpdGggU1ZHIHNvdXJjZSBh
cmUgaW5kZWVkIGV4cG9zZWQgYXMgaW1hZ2VzIGFuZCBub3QgYXMgU1ZHIGdyb3VwcywgaWYgdGhl
IFNWRyBzb3VyY2UgaXMgbm90IGFjY2Vzc2libGUuIik7CisKKyAgICBmdW5jdGlvbiBydW5UZXN0
KCkgeworICAgICAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAg
ICAgICAgICBwbmdJbWFnZTEgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxl
bWVudEJ5SWQoInBuZ0ltYWdlMSIpOworICAgICAgICAgICAgcG5nSW1hZ2UyID0gYWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJwbmdJbWFnZTIiKTsKKworICAg
ICAgICAgICAgZm9yIChpID0gMTsgaSA8IDEwOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpbWFn
ZSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiaW1hZ2Ui
ICsgaSk7CisgICAgICAgICAgICAgICAgaWYgKGkgPCA0IHx8IGkgPiA1KQorICAgICAgICAgICAg
ICAgICAgICBzaG91bGRCZSgiaW1hZ2UudHJhaXRzIiwgInBuZ0ltYWdlMS50cmFpdHMiKTsKKyAg
ICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJpbWFnZS50
cmFpdHMiLCAicG5nSW1hZ2UyLnRyYWl0cyIpOworICAgICAgICAgICAgfQorICAgICAgICB9Cisg
ICAgfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418295</attachid>
            <date>2021-01-25 07:57:49 -0800</date>
            <delta_ts>2021-01-25 08:52:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160705-20210125105748.patch</filename>
            <type>text/plain</type>
            <size>17748</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxNjkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmU1NWVhNmI3Zjg3ZmIz
NjJjMGZlMGEyMjRmNGE0NjZmMWJiZWE0NS4uZGU0MzNkNzUwYjQ0ZjI2NzVlN2RhZWU3MTAyOWE2
OTg5Yzk4MGM4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIxLTAxLTIzICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogQGFsdCBh
bmQgYm91bmRzIGlnbm9yZWQgd2hlbiB1c2luZyBpbWdbc3JjXSBwb2ludHMgdG8gYW4gaW5hY2Nl
c3NpYmxlIFNWRworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTYwNzA1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNzc3MTU3OT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBDaHJpcyBGbGVpemFjaCBhbmQgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgVGVz
dHM6IGFjY2Vzc2liaWxpdHkvaW1nLXdpdGgtc3ZnLXNvdXJjZS5odG1sCisgICAgICAgICAgICAg
ICBhY2Nlc3NpYmlsaXR5L2lvcy1zaW11bGF0b3IvaW1nLXdpdGgtc3ZnLXNvdXJjZS5odG1sCisK
KyAgICAgICAgVGhlIHByb2JsZW0gd2FzIGNhdXNlZCBieSBBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0OjpkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5Um9sZQorICAgICAgICB0aGF0IHdhcyByZXR1cm5p
bmcgQWNjZXNzaWJpbGl0eVJvbGU6OlNWR1Jvb3QgZm9yIGFsbCBpbWFnZXMgd2l0aCBhIHJlbW90
ZQorICAgICAgICBTVkcgc291cmNlLCByZWdhcmRsZXNzIHdoZXRoZXIgdGhlIFNWRyBoaWVyYXJj
aHkgY29udGFpbmVkIHNvbWUgYWNjZXNzaWJpbGl0eQorICAgICAgICBkYXRhIG9yIG5vdC4gVGhp
cyByZXN1bHRlZCBpbiBWb2ljZU92ZXIgcmVhZGluZyB0aGUgaW1hZ2UgbGlrZSBhbiBlbXB0eQor
ICAgICAgICBncm91cCBvbiBNYWMsIG9yIGNvbXBsZXRlbHkgaWdub3JpbmcgdGhlIGltYWdlIG9u
IGlPUy4KKyAgICAgICAgVGhlIHNvbHV0aW9uIGluIHRoaXMgcGF0Y2ggaXMgdG8gb25seSByZXR1
cm4gQWNjZXNzaWJpbGl0eVJvbGU6OlNWR1Jvb3QKKyAgICAgICAgaWYgdGhlIFNWRyBoYXMgc29t
ZSBhY2Nlc3NpYmlsaXR5IGNvbnZleWFibGUgZGF0YS4gQWRkZWQgdGhlIG1ldGhvZAorICAgICAg
ICBBY2Nlc3NpYmlsaXR5U1ZHUm9vdDo6aGFzQWNjZXNzaWJsZUNvbnRlbnQgZm9yIHRoaXMgcHVy
cG9zZS4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpkZXRl
cm1pbmVBY2Nlc3NpYmlsaXR5Um9sZSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0OjpyZW1vdGVTVkdSb290RWxlbWVudCBjb25zdCk6CisgICAgICAgIENvbW1l
bnQgd2FzIG1pc3NwbGFjZWQsIG1vdmVkIGl0IHRvIHRoZSByaWdodCBwbGFjZS4KKyAgICAgICAg
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFkZFJlbW90ZVNWR0NoaWxkcmVu
KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTVkdSb290LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlTVkdSb290OjpoYXNBY2Nlc3NpYmxlQ29udGVu
dCBjb25zdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U1ZHUm9vdC5o
OgorCiAyMDIxLTAxLTIxICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CiAKICAgICAgICAg
RW5zdXJlIGNyZWF0ZVN0cmVhbXMgZ2V0cyB2YWxpZCBKU0dsb2JhbE9iamVjdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdC5jcHAKaW5kZXggNDg3MjcwM2UzYmY5YzI3YzhlYWE2MDE0YmQ4MmVkYzBkMWQyNTE3YS4u
ZGJlOTUwYjA3NjI4ODhlMDVjNmRjMTg0MjRiZTI5M2NkNzBjOWQzYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QuY3BwCkBAIC0yNzk3LDggKzI3OTcsMTIgQEAgQWNjZXNzaWJpbGl0eVJvbGUgQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUoKQogICAgIGlmIChj
c3NCb3ggJiYgY3NzQm94LT5pc0ltYWdlKCkpIHsKICAgICAgICAgaWYgKGlzPEhUTUxJbnB1dEVs
ZW1lbnQ+KG5vZGUpKQogICAgICAgICAgICAgcmV0dXJuIGhhc1BvcHVwKCkgPyBBY2Nlc3NpYmls
aXR5Um9sZTo6UG9wVXBCdXR0b24gOiBBY2Nlc3NpYmlsaXR5Um9sZTo6QnV0dG9uOwotICAgICAg
ICBpZiAoaXNTVkdJbWFnZSgpKQotICAgICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlSb2xl
OjpTVkdSb290OworCisgICAgICAgIGlmIChhdXRvKiBzdmdSb290ID0gcmVtb3RlU1ZHUm9vdEVs
ZW1lbnQoQ3JlYXRlKSkgeworICAgICAgICAgICAgaWYgKHN2Z1Jvb3QtPmhhc0FjY2Vzc2libGVD
b250ZW50KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlSb2xlOjpTVkdS
b290OworICAgICAgICB9CisKICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlSb2xlOjpJbWFn
ZTsKICAgICB9CiAgICAgCkBAIC0zMjUwLDggKzMyNTQsNiBAQCBBY2Nlc3NpYmlsaXR5U1ZHUm9v
dCogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6cmVtb3RlU1ZHUm9vdEVsZW1lbnQoQ3JlYXRp
b25DaAogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBy
b290U1ZHT2JqZWN0ID0gY3JlYXRlSWZOZWNlc3NhcnkgPT0gQ3JlYXRlID8gY2FjaGUtPmdldE9y
Q3JlYXRlKHJlbmRlcmVyUm9vdCkgOiBjYWNoZS0+Z2V0KHJlbmRlcmVyUm9vdCk7CiAKLSAgICAv
LyBJbiBvcmRlciB0byBjb25uZWN0IHRoZSBBWCBoaWVyYXJjaHkgZnJvbSB0aGUgU1ZHIHJvb3Qg
ZWxlbWVudCBmcm9tIHRoZSBsb2FkZWQgcmVzb3VyY2UKLSAgICAvLyB0aGUgcGFyZW50IG11c3Qg
YmUgc2V0LCBiZWNhdXNlIHRoZXJlJ3Mgbm8gb3RoZXIgd2F5IHRvIGdldCBiYWNrIHRvIHdobyBj
cmVhdGVkIHRoZSBpbWFnZS4KICAgICBBU1NFUlQoIWNyZWF0ZUlmTmVjZXNzYXJ5IHx8IHJvb3RT
VkdPYmplY3QpOwogICAgIGlmICghaXM8QWNjZXNzaWJpbGl0eVNWR1Jvb3Q+KHJvb3RTVkdPYmpl
Y3QpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTMyNjUsNiArMzI2Nyw4IEBAIHZvaWQg
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWRkUmVtb3RlU1ZHQ2hpbGRyZW4oKQogICAgIGlm
ICghcm9vdCkKICAgICAgICAgcmV0dXJuOwogICAgIAorICAgIC8vIEluIG9yZGVyIHRvIGNvbm5l
Y3QgdGhlIEFYIGhpZXJhcmNoeSBmcm9tIHRoZSBTVkcgcm9vdCBlbGVtZW50IGZyb20gdGhlIGxv
YWRlZCByZXNvdXJjZQorICAgIC8vIHRoZSBwYXJlbnQgbXVzdCBiZSBzZXQsIGJlY2F1c2UgdGhl
cmUncyBubyBvdGhlciB3YXkgdG8gZ2V0IGJhY2sgdG8gd2hvIGNyZWF0ZWQgdGhlIGltYWdlLgog
ICAgIHJvb3QtPnNldFBhcmVudCh0aGlzKTsKICAgICAKICAgICBpZiAocm9vdC0+YWNjZXNzaWJp
bGl0eUlzSWdub3JlZCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlTVkdSb290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVNWR1Jvb3QuY3BwCmluZGV4IDMyMzZhZjAyMjI3MzJhNWQyNWQ1YmE4
NDI1MWQ1MWMwODFhMDNkZDMuLmI0Y2FiNzVkYTZiZTBmMzcyMzU2Mzk4NmQ4YWJjMmZlNDRjM2Ex
ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVNWR1Jvb3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVNWR1Jvb3QuY3BwCkBAIC02OCw1ICs2OCw0NCBAQCBBY2Nlc3NpYmlsaXR5Um9sZSBBY2Nl
c3NpYmlsaXR5U1ZHUm9vdDo6cm9sZVZhbHVlKCkgY29uc3QKIAogICAgIHJldHVybiBBY2Nlc3Np
YmlsaXR5Um9sZTo6R3JvdXA7CiB9Ci0gICAgCisKK2Jvb2wgQWNjZXNzaWJpbGl0eVNWR1Jvb3Q6
Omhhc0FjY2Vzc2libGVDb250ZW50KCkgY29uc3QKK3sKKyAgICBhdXRvKiByb290RWxlbWVudCA9
IHRoaXMtPmVsZW1lbnQoKTsKKyAgICBpZiAoIXJvb3RFbGVtZW50KQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBhdXRvIGlzQWNjZXNzaWJsZVNWR0VsZW1lbnQgPSBbXSAoY29uc3QgRWxl
bWVudCYgZWxlbWVudCkgLT4gYm9vbCB7CisgICAgICAgIGlmICghaXM8U1ZHRWxlbWVudD4oZWxl
bWVudCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgLy8gVGhlIHByZXNl
bmNlIG9mIGFuIFNWR1RpdGxlIG9yIFNWR0Rlc2MgZWxlbWVudCBpcyBlbm91Z2ggdG8gZGVlbSB0
aGUgU1ZHIGhpZXJhcmNoeSBhcyBhY2Nlc3NpYmxlLgorICAgICAgICBpZiAoaXM8U1ZHVGl0bGVF
bGVtZW50PihlbGVtZW50KQorICAgICAgICAgICAgfHwgaXM8U1ZHRGVzY0VsZW1lbnQ+KGVsZW1l
bnQpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAgLy8gVGV4dCBjb250ZW50
IGlzIGFjY2Vzc2libGUuCisgICAgICAgIGlmIChkb3duY2FzdDxTVkdFbGVtZW50PihlbGVtZW50
KS5pc1RleHRDb250ZW50KCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICAv
LyBJZiB0aGUgcm9sZSBvciBhcmlhLWxhYmVsIGF0dHJpYnV0ZXMgYXJlIHNwZWNpZmllZCwgdGhp
cyBpcyBhY2Nlc3NpYmxlLgorICAgICAgICBpZiAoIWVsZW1lbnQuYXR0cmlidXRlV2l0aG91dFN5
bmNocm9uaXphdGlvbihyb2xlQXR0cikuaXNFbXB0eSgpCisgICAgICAgICAgICB8fCAhZWxlbWVu
dC5hdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGFyaWFfbGFiZWxBdHRyKS5pc0VtcHR5
KCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgfTsKKworICAgIGlmIChpc0FjY2Vzc2libGVTVkdFbGVtZW50KCpyb290RWxlbWVudCkpCisg
ICAgICAgIHJldHVybiB0cnVlOworCisgICAgLy8gVGhpcyBTVkcgaGllcmFyY2h5IGlzIGFjY2Vz
c2libGUgaWYgYW55IG9mIGl0cyBkZXNjZW5kYW50cyBpcyBhY2Nlc3NpYmxlLgorICAgIGZvciAo
Y29uc3QgYXV0byYgZGVzY2VuZGFudCA6IGRlc2NlbmRhbnRzT2ZUeXBlPFNWR0VsZW1lbnQ+KCpy
b290RWxlbWVudCkpIHsKKyAgICAgICAgaWYgKGlzQWNjZXNzaWJsZVNWR0VsZW1lbnQoZGVzY2Vu
ZGFudCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNWR1Jvb3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNWR1Jvb3QuaAppbmRleCBiODE1NjM1NzYzMGEy
MWFkN2VkMTYzNzhlNzg4YTQ4MzZkMmEyOGI1Li5kMzcwODc5ZDQyNTYzNTFkYjNmZDMwYmJmYzFm
ZDBjNzFkOTkzNDdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlTVkdSb290LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5U1ZHUm9vdC5oCkBAIC0zNywxOSArMzcsMTkgQEAgY2xhc3MgQWNjZXNzaWJp
bGl0eVNWR1Jvb3QgZmluYWwgOiBwdWJsaWMgQWNjZXNzaWJpbGl0eVNWR0VsZW1lbnQgewogcHVi
bGljOgogICAgIHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0eVNWR1Jvb3Q+IGNyZWF0ZShSZW5kZXJP
YmplY3QqKTsKICAgICB2aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5U1ZHUm9vdCgpOwotICAgIAotICAg
IHZvaWQgc2V0UGFyZW50KEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QqKTsKIAorICAgIHZvaWQg
c2V0UGFyZW50KEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QqKTsKKyAgICBib29sIGhhc0FjY2Vz
c2libGVDb250ZW50KCkgY29uc3Q7CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxp
dHlTVkdSb290KFJlbmRlck9iamVjdCopOwotICAgIAorCiAgICAgQWNjZXNzaWJpbGl0eU9iamVj
dCogcGFyZW50T2JqZWN0KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc0FjY2Vzc2liaWxp
dHlTVkdSb290KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIEFjY2Vzc2li
aWxpdHlSb2xlIHJvbGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgV2Vha1B0cjxBY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0PiBtX3BhcmVudDsKLSAgICBBY2Nlc3NpYmlsaXR5Um9sZSBy
b2xlVmFsdWUoKSBjb25zdCBvdmVycmlkZTsKIH07Ci0gICAgCisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUgCiAKIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQUNDRVNTSUJJTElUWShBY2Nlc3NpYmls
aXR5U1ZHUm9vdCwgaXNBY2Nlc3NpYmlsaXR5U1ZHUm9vdCgpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDFkYjYyZGEyMDgw
MzQ1NWM4ZGExNDRlNmViNjMwNzcyOGI0OGNiMzAuLjhjOGM5MDY1OWMxZTNhNWRmYTVmZTYyMDZk
MzYyZDU2ZmNiNjU1MWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMS0wMS0yMyAgQW5kcmVz
IEdvbnphbGV6ICA8YW5kcmVzZ18yMkBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IEBhbHQgYW5k
IGJvdW5kcyBpZ25vcmVkIHdoZW4gdXNpbmcgaW1nW3NyY10gcG9pbnRzIHRvIGFuIGluYWNjZXNz
aWJsZSBTVkcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2MDcwNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjc3NzE1Nzk+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgQ2hyaXMgRmxlaXphY2ggYW5kIERhcmluIEFkbGVyLgorCisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9pbWctd2l0aC1zdmctc291cmNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9pbWctd2l0aC1zdmctc291cmNlLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvaW9zLXNpbXVsYXRvci9pbWctd2l0aC1zdmctc291cmNlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pb3Mtc2ltdWxhdG9y
L2ltZy13aXRoLXN2Zy1zb3VyY2UuaHRtbDogQWRkZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9zdmctc2hhcGUtbGFiZWxsZWQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvc3ZnLXNoYXBlLWxhYmVsbGVkLmh0bWw6CisgICAgICAgIFJlbW92ZWQgdGhlIDxpbWc+IHRl
c3QgY2FzZXMgc2luY2UgdGhleSBhcmUgY292ZXJlZCBjb3JyZWN0bHkgaW4gdGhlIG5ldworICAg
ICAgICB0ZXN0IGltZy13aXRoLXN2Zy1zb3VyY2UuaHRtbC4KKwogMjAyMS0wMS0yMSAgUm9iIEJ1
aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIE51bGwgY2hlY2sgaW4gUlRDUnRwU0Zy
YW1lVHJhbnNmb3JtOjpjcmVhdGVTdHJlYW1zCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L2ltZy13aXRoLXN2Zy1zb3VyY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS9pbWctd2l0aC1zdmctc291cmNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zYmNiMjlkYWRhYzliNDk2MDNkNmQ0YTlkODk0NzBkZjkxMTY3ZWE2Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pbWctd2l0aC1zdmctc291cmNlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDI4IEBACisKK1RoaXMgdGVzdHMgdGhhdCBpbWFnZXMgd2l0aCBT
Vkcgc291cmNlIGFyZSBpbmRlZWQgZXhwb3NlZCBhcyBpbWFnZXMgYW5kIG5vdCBhcyBTVkcgZ3Jv
dXBzLCBpZiB0aGUgU1ZHIHNvdXJjZSBpcyBub3QgYWNjZXNzaWJsZS4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorUEFTUyBpbWFnZS5yb2xlIGlzICdBWFJvbGU6IEFYSW1hZ2UnCitBWERlc2Ny
aXB0aW9uOgorUEFTUyBpbWFnZS5yb2xlIGlzICdBWFJvbGU6IEFYSW1hZ2UnCitBWERlc2NyaXB0
aW9uOiAyLiBzdmcgaW1hZ2Ugd2l0aCBhbHQgdGV4dAorUEFTUyBpbWFnZS5yb2xlIGlzICdBWFJv
bGU6IEFYSW1hZ2UnCitBWERlc2NyaXB0aW9uOiAzLiBzdmcgaW1hZ2Ugd2l0aCByb2xlIGltZwor
UEFTUyBpbWFnZS5yb2xlIGlzICdBWFJvbGU6IEFYSW1hZ2UnCitBWERlc2NyaXB0aW9uOiA0LiBz
dmcgaW1hZ2UgaW4gYW4gYW5jaG9yCitQQVNTIGltYWdlLnJvbGUgaXMgJ0FYUm9sZTogQVhJbWFn
ZScKK0FYRGVzY3JpcHRpb246IDUuIHN2ZyBpbWFnZSB3aXRoIHJvbGUgaW1nIGluIGFuIGFuY2hv
cgorUEFTUyBpbWFnZS5yb2xlIGlzICdBWFJvbGU6IEFYSW1hZ2UnCitBWERlc2NyaXB0aW9uOiA2
LiBzdmcgaW1hZ2Ugd2l0aCBhcmlhIGxhYmVsCitQQVNTIGltYWdlLnJvbGUgaXMgJ0FYUm9sZTog
QVhJbWFnZScKK0FYRGVzY3JpcHRpb246IDcuIHN2ZyBpbWFnZSB3aXRoIHJvbGUgaW1nIGFuZCBh
cmlhIGxhYmVsCitQQVNTIGltYWdlLnJvbGUgaXMgJ0FYUm9sZTogQVhJbWFnZScKK0FYRGVzY3Jp
cHRpb246IDguIHN2ZyBpbWFnZSB3aXRoIHNpemUgc2V0CitQQVNTIGltYWdlLnJvbGUgaXMgJ0FY
Um9sZTogQVhJbWFnZScKK0FYRGVzY3JpcHRpb246IDkuIHN2ZyBpbWFnZSB3aXRoIHJvbGUgaW1n
IGFuZCBzaXplIHNldAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2lt
Zy13aXRoLXN2Zy1zb3VyY2UuaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaW1nLXdp
dGgtc3ZnLXNvdXJjZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ0ZGYwNTkyNzA4ODNmZDFjZDk3MmRlNDZj
ZTk1ZjJjY2IxN2Y2ZTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L2ltZy13aXRoLXN2Zy1zb3VyY2UuaHRtbApAQCAtMCwwICsxLDQxIEBACis8IURPQ1RZUEUg
SFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHN0
eWxlPmltZyB7YmFja2dyb3VuZC1jb2xvcjogIzAwMDt9PC9zdHlsZT4KKzxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9hY2Nlc3NpYmlsaXR5LWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzwh
LS0gVGhpcyB0ZXN0IG11c3QgcnVuIHdoZW4gYWxsIHJlbW90ZSByZXNvdXJjZXMgKFNWRyBpbWFn
ZXMpIGFyZSBsb2FkZWQuCisgICAgVGh1cyBhZGQgYW4gb25sb2FkIGV2ZW50IGxpc3RlbmVyIHRv
IGJvZHkgYW5kIHJ1biB0aGUgdGVzdCB0aGVyZS4gLS0+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3Qo
KSI+CisKKzxpbWcgaWQ9ImltYWdlMSIgc3JjPSJyZXNvdXJjZXMvYXBwbGUtbG9nby5zdmciPgor
PGltZyBpZD0iaW1hZ2UyIiBzcmM9InJlc291cmNlcy9hcHBsZS1sb2dvLnN2ZyIgYWx0PSIyLiBz
dmcgaW1hZ2Ugd2l0aCBhbHQgdGV4dCI+Cis8aW1nIGlkPSJpbWFnZTMiIHJvbGU9ImltZyIgc3Jj
PSJyZXNvdXJjZXMvYXBwbGUtbG9nby5zdmciIGFsdD0iMy4gc3ZnIGltYWdlIHdpdGggcm9sZSBp
bWciIGFuZCBhbHQgdGV4dCI+Cis8YSBocmVmPSJodHRwczovL2FwcGxlLmNvbSI+PGltZyBpZD0i
aW1hZ2U0IiBzcmM9InJlc291cmNlcy9hcHBsZS1sb2dvLnN2ZyIgYWx0PSI0LiBzdmcgaW1hZ2Ug
aW4gYW4gYW5jaG9yIj48L2E+Cis8YSBocmVmPSJodHRwczovL2FwcGxlLmNvbSI+PGltZyBpZD0i
aW1hZ2U1IiByb2xlPSJpbWciIHNyYz0icmVzb3VyY2VzL2FwcGxlLWxvZ28uc3ZnIiBhbHQ9IjUu
IHN2ZyBpbWFnZSB3aXRoIHJvbGUgaW1nIGluIGFuIGFuY2hvciI+PC9hPgorPGltZyBpZD0iaW1h
Z2U2IiBzcmM9InJlc291cmNlcy9hcHBsZS1sb2dvLnN2ZyIgYXJpYS1sYWJlbD0iNi4gc3ZnIGlt
YWdlIHdpdGggYXJpYSBsYWJlbCI+Cis8aW1nIGlkPSJpbWFnZTciIHJvbGU9ImltZyIgc3JjPSJy
ZXNvdXJjZXMvYXBwbGUtbG9nby5zdmciIGFyaWEtbGFiZWw9IjcuIHN2ZyBpbWFnZSB3aXRoIHJv
bGUgaW1nIGFuZCBhcmlhIGxhYmVsIj4KKzxpbWcgaWQ9ImltYWdlOCIgc3JjPSJyZXNvdXJjZXMv
YXBwbGUtbG9nby5zdmciIGFsdD0iOC4gc3ZnIGltYWdlIHdpdGggc2l6ZSBzZXQiIHN0eWxlPSJo
ZWlnaHQ6IDIwMHB4OyB3aWR0aDogMjAwcHg7Ij4KKzxpbWcgaWQ9ImltYWdlOSIgcm9sZT0iaW1n
IiBzcmM9InJlc291cmNlcy9hcHBsZS1sb2dvLnN2ZyIgYWx0PSI5LiBzdmcgaW1hZ2Ugd2l0aCBy
b2xlIGltZyBhbmQgc2l6ZSBzZXQiIHN0eWxlPSJoZWlnaHQ6IDIwMHB4OyB3aWR0aDogMjAwcHg7
Ij4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KworPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGF0IGltYWdlcyB3aXRo
IFNWRyBzb3VyY2UgYXJlIGluZGVlZCBleHBvc2VkIGFzIGltYWdlcyBhbmQgbm90IGFzIFNWRyBn
cm91cHMsIGlmIHRoZSBTVkcgc291cmNlIGlzIG5vdCBhY2Nlc3NpYmxlLiIpOworCisgICAgZnVu
Y3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJv
bGxlcikgeworICAgICAgICAgICAgZm9yIChpID0gMTsgaSA8IDEwOyArK2kpIHsKKyAgICAgICAg
ICAgICAgICBpbWFnZSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50
QnlJZCgiaW1hZ2UiICsgaSk7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoImltYWdlLnJvbGUi
LCAiJ0FYUm9sZTogQVhJbWFnZSciKTsKKyAgICAgICAgICAgICAgICBkZWJ1ZyhpbWFnZS5kZXNj
cmlwdGlvbik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaW9zLXNp
bXVsYXRvci9pbWctd2l0aC1zdmctc291cmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Fj
Y2Vzc2liaWxpdHkvaW9zLXNpbXVsYXRvci9pbWctd2l0aC1zdmctc291cmNlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45MmE4ZTdlZjVjNThiOWQ1MzlmZGZmMWRhYmJhM2NlYWJjZTAwNTEzCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pb3Mtc2ltdWxhdG9y
L2ltZy13aXRoLXN2Zy1zb3VyY2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTkgQEAKKworVGhp
cyB0ZXN0cyB0aGF0IGltYWdlcyB3aXRoIFNWRyBzb3VyY2UgYXJlIGluZGVlZCBleHBvc2VkIGFz
IGltYWdlcyBhbmQgbm90IGFzIFNWRyBncm91cHMsIGlmIHRoZSBTVkcgc291cmNlIGlzIG5vdCBh
Y2Nlc3NpYmxlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIGltYWdlLnRyYWl0cyBp
cyBwbmdJbWFnZTEudHJhaXRzCitQQVNTIGltYWdlLnRyYWl0cyBpcyBwbmdJbWFnZTEudHJhaXRz
CitQQVNTIGltYWdlLnRyYWl0cyBpcyBwbmdJbWFnZTEudHJhaXRzCitQQVNTIGltYWdlLnRyYWl0
cyBpcyBwbmdJbWFnZTIudHJhaXRzCitQQVNTIGltYWdlLnRyYWl0cyBpcyBwbmdJbWFnZTIudHJh
aXRzCitQQVNTIGltYWdlLnRyYWl0cyBpcyBwbmdJbWFnZTEudHJhaXRzCitQQVNTIGltYWdlLnRy
YWl0cyBpcyBwbmdJbWFnZTEudHJhaXRzCitQQVNTIGltYWdlLnRyYWl0cyBpcyBwbmdJbWFnZTEu
dHJhaXRzCitQQVNTIGltYWdlLnRyYWl0cyBpcyBwbmdJbWFnZTEudHJhaXRzCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaW9zLXNpbXVsYXRvci9pbWctd2l0aC1zdmct
c291cmNlLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2lvcy1zaW11bGF0b3IvaW1n
LXdpdGgtc3ZnLXNvdXJjZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUxYWQwZTA1MWM0NDQyNTk1NThlNDRk
NDYyNDE0MTkwMTk4NDIxZTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3Np
YmlsaXR5L2lvcy1zaW11bGF0b3IvaW1nLXdpdGgtc3ZnLXNvdXJjZS5odG1sCkBAIC0wLDAgKzEs
NTEgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxo
dG1sPgorPGhlYWQ+Cis8c3R5bGU+aW1nIHtiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO308L3N0eWxl
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2FjY2Vzc2liaWxpdHktaGVscGVyLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKworPCEtLSBUaGlzIHRlc3QgbXVzdCBydW4gd2hlbiBhbGwgcmVt
b3RlIHJlc291cmNlcyAoU1ZHIGltYWdlcykgYXJlIGxvYWRlZC4KKyAgICBUaHVzIGFkZCBhbiBv
bmxvYWQgZXZlbnQgbGlzdGVuZXIgdG8gYm9keSBhbmQgcnVuIHRoZSB0ZXN0IHRoZXJlLiAtLT4K
Kzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKworPCEtLSBVc2VkIGFzIGJhc2VsaW5lIGZvciBh
biBpbWFnZSB0cmFpdHMuIC0tPgorPGltZyBpZD0icG5nSW1hZ2UxIiBzcmM9Ii4uL3Jlc291cmNl
cy9jYWtlLnBuZyIgYWx0PSIxLiBwbmcgaW1hZ2UiPgorPCEtLSBVc2VkIGFzIGJhc2VsaW5lIGZv
ciBhbiBpbWFnZSBpbiBhbiBhbmNob3IgdHJhaXRzLiAtLT4KKzxhIGhyZWY9Imh0dHBzOi8vYXBw
bGUuY29tIj48aW1nIGlkPSJwbmdJbWFnZTIiIHNyYz0iLi4vcmVzb3VyY2VzL2Nha2UucG5nIiBh
bHQ9IjIuIHBuZyBpbWFnZSI+PC9hPgorCis8aW1nIGlkPSJpbWFnZTEiIHNyYz0iLi4vcmVzb3Vy
Y2VzL2FwcGxlLWxvZ28uc3ZnIj4KKzxpbWcgaWQ9ImltYWdlMiIgc3JjPSIuLi9yZXNvdXJjZXMv
YXBwbGUtbG9nby5zdmciIGFsdD0iMi4gc3ZnIGltYWdlIHdpdGggYWx0IHRleHQiPgorPGltZyBp
ZD0iaW1hZ2UzIiByb2xlPSJpbWciIHNyYz0iLi4vcmVzb3VyY2VzL2FwcGxlLWxvZ28uc3ZnIiBh
bHQ9IjMuIHN2ZyBpbWFnZSB3aXRoIHJvbGUgaW1nIiBhbmQgYWx0IHRleHQiPgorPGEgaHJlZj0i
aHR0cHM6Ly9hcHBsZS5jb20iPjxpbWcgaWQ9ImltYWdlNCIgc3JjPSIuLi9yZXNvdXJjZXMvYXBw
bGUtbG9nby5zdmciIGFsdD0iNC4gc3ZnIGltYWdlIGluIGFuIGFuY2hvciI+PC9hPgorPGEgaHJl
Zj0iaHR0cHM6Ly9hcHBsZS5jb20iPjxpbWcgaWQ9ImltYWdlNSIgcm9sZT0iaW1nIiBzcmM9Ii4u
L3Jlc291cmNlcy9hcHBsZS1sb2dvLnN2ZyIgYWx0PSI1LiBzdmcgaW1hZ2Ugd2l0aCByb2xlIGlt
ZyBpbiBhbiBhbmNob3IiPjwvYT4KKzxpbWcgaWQ9ImltYWdlNiIgc3JjPSIuLi9yZXNvdXJjZXMv
YXBwbGUtbG9nby5zdmciIGFyaWEtbGFiZWw9IjYuIHN2ZyBpbWFnZSB3aXRoIGFyaWEgbGFiZWwi
PgorPGltZyBpZD0iaW1hZ2U3IiByb2xlPSJpbWciIHNyYz0iLi4vcmVzb3VyY2VzL2FwcGxlLWxv
Z28uc3ZnIiBhcmlhLWxhYmVsPSI3LiBzdmcgaW1hZ2Ugd2l0aCByb2xlIGltZyBhbmQgYXJpYSBs
YWJlbCI+Cis8aW1nIGlkPSJpbWFnZTgiIHNyYz0iLi4vcmVzb3VyY2VzL2FwcGxlLWxvZ28uc3Zn
IiBhbHQ9IjguIHN2ZyBpbWFnZSB3aXRoIHNpemUgc2V0IiBzdHlsZT0iaGVpZ2h0OiAyMDBweDsg
d2lkdGg6IDIwMHB4OyI+Cis8aW1nIGlkPSJpbWFnZTkiIHJvbGU9ImltZyIgc3JjPSIuLi9yZXNv
dXJjZXMvYXBwbGUtbG9nby5zdmciIGFsdD0iOS4gc3ZnIGltYWdlIHdpdGggcm9sZSBpbWcgYW5k
IHNpemUgc2V0IiBzdHlsZT0iaGVpZ2h0OiAyMDBweDsgd2lkdGg6IDIwMHB4OyI+CisKKzxwIGlk
PSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+
CisgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhhdCBpbWFnZXMgd2l0aCBTVkcgc291cmNl
IGFyZSBpbmRlZWQgZXhwb3NlZCBhcyBpbWFnZXMgYW5kIG5vdCBhcyBTVkcgZ3JvdXBzLCBpZiB0
aGUgU1ZHIHNvdXJjZSBpcyBub3QgYWNjZXNzaWJsZS4iKTsKKworICAgIGZ1bmN0aW9uIHJ1blRl
c3QoKSB7CisgICAgICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAg
ICAgICAgICAgIHBuZ0ltYWdlMSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVF
bGVtZW50QnlJZCgicG5nSW1hZ2UxIik7CisgICAgICAgICAgICBwbmdJbWFnZTIgPSBhY2Nlc3Np
YmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoInBuZ0ltYWdlMiIpOworCisg
ICAgICAgICAgICBmb3IgKGkgPSAxOyBpIDwgMTA7ICsraSkgeworICAgICAgICAgICAgICAgIGlt
YWdlID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJpbWFn
ZSIgKyBpKTsKKyAgICAgICAgICAgICAgICBpZiAoaSA8IDQgfHwgaSA+IDUpCisgICAgICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJpbWFnZS50cmFpdHMiLCAicG5nSW1hZ2UxLnRyYWl0cyIpOwor
ICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoImltYWdl
LnRyYWl0cyIsICJwbmdJbWFnZTIudHJhaXRzIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0K
KyAgICB9Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvc3ZnLXNoYXBlLWxhYmVsbGVkLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvc3ZnLXNoYXBlLWxhYmVsbGVkLWV4cGVjdGVkLnR4dAppbmRl
eCA0ZTljZmI4NDIzOTVmMzQ4ZmQzMmVjNTk1MGQyZmU3M2M4ZjFlMjE3Li5iOGNmNDE4MGI3OTk1
NjZlOWU0YjZiMWY4NGJiOTNmYjc5NTMyNTdmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L3N2Zy1zaGFwZS1sYWJlbGxlZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9zdmctc2hhcGUtbGFiZWxsZWQtZXhwZWN0ZWQudHh0CkBAIC03LDkg
KzcsNiBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogY2lyY2xlMTogQVhSb2xlOiBBWEltYWdl
CiBjaXJjbGUyOiBBWFJvbGU6IEFYSW1hZ2UKIGNpcmNsZTM6IEVsZW1lbnQgbm90IGV4cG9zZWQK
LVBBU1MgIWltYWdlMSBpcyB0cnVlCi1QQVNTIGltYWdlMi5yb2xlIGlzICdBWFJvbGU6IEFYSW1h
Z2UnCi1QQVNTIGltYWdlMy5yb2xlIGlzICdBWFJvbGU6IEFYSW1hZ2UnCiBQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvc3ZnLXNoYXBlLWxhYmVsbGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9h
Y2Nlc3NpYmlsaXR5L3N2Zy1zaGFwZS1sYWJlbGxlZC5odG1sCmluZGV4IGFmYjJlNGMyOWRmZmMw
MDhmZDBjZTY0MTlmNDhkZTE5NTFiYjM2ODYuLmViYjk2YmNmODBiY2Y1MzJiOTY0NTdiOWM5MTdh
MjgxN2YzNmNjYTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvc3ZnLXNo
YXBlLWxhYmVsbGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9zdmctc2hh
cGUtbGFiZWxsZWQuaHRtbApAQCAtMTksMTcgKzE5LDEwIEBACiAgICAgPGNpcmNsZSBpZD0iY2ly
Y2xlMyIgY3g9IjUwIiBjeT0iNTAiIHI9IjQwIiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9
IjMiIGZpbGw9InJlZCIgLz4KIDwvc3ZnPgogCi08aW1nIGlkPSJ0ZXN0MSIgc3JjPSJyZXNvdXJj
ZXMvYXBwbGUtbG9nby5zdmciLz4KLQotPGltZyBpZD0idGVzdDIiIHNyYz0icmVzb3VyY2VzL2Fw
cGxlLWxvZ28uc3ZnIiBhbHQ9ImhlbGxvIiAvPgotCi08aW1nIGlkPSJ0ZXN0MyIgYWx0PSJBcHBs
ZSBsb2dvIiBzcmM9InJlc291cmNlcy9hcHBsZS1sb2dvLnN2ZyIgLz4KLQogPHAgaWQ9ImRlc2Ny
aXB0aW9uIj48L3A+CiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KIAogPHNjcmlwdD4KLQogICAg
IGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgU1ZHIHNoYXBlcyBhcmUgZXhwb3NlZCB0byBh
eCB0cmVlIGFzIGltYWdlcyBpZiB0aGVyZSBhcmUgbGFiZWxzIGRlc2NyaWJpbmcgdGhlbS4iKTsK
IAogICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKQEAgLTQxLDE5ICsz
NCw4IEBACiAKICAgICAgICAgdmFyIGNpcmNsZTMgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5h
Y2Nlc3NpYmxlRWxlbWVudEJ5SWQoImNpcmNsZTMiKTsKICAgICAgICAgZGVidWcoImNpcmNsZTM6
ICIgKyAoY2lyY2xlMyA/IGNpcmNsZTMucm9sZSA6ICJFbGVtZW50IG5vdCBleHBvc2VkIikpOwot
Ci0gICAgICAgIHZhciBpbWFnZTEgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxl
RWxlbWVudEJ5SWQoInRlc3QxIik7Ci0gICAgICAgIHNob3VsZEJlVHJ1ZSgiIWltYWdlMSIpOwot
Ci0gICAgICAgIHZhciBpbWFnZTIgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxl
RWxlbWVudEJ5SWQoInRlc3QyIik7Ci0gICAgICAgIHNob3VsZEJlKCJpbWFnZTIucm9sZSIsICIn
QVhSb2xlOiBBWEltYWdlJyIpOwotCi0gICAgICAgIHZhciBpbWFnZTMgPSBhY2Nlc3NpYmlsaXR5
Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoInRlc3QzIik7Ci0gICAgICAgIHNob3Vs
ZEJlKCJpbWFnZTMucm9sZSIsICInQVhSb2xlOiBBWEltYWdlJyIpOwogICAgIH0KLQogPC9zY3Jp
cHQ+Ci0KIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KIDwvYm9keT4KIDwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>