<?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>225395</bug_id>
          
          <creation_ts>2021-05-05 09:45:45 -0700</creation_ts>
          <short_desc>AppHighlight scrolls should be smooth</short_desc>
          <delta_ts>2021-05-05 23:43:26 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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="Megan Gardner">megan_gardner</reporter>
          <assigned_to name="Megan Gardner">megan_gardner</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>hi</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mifenton</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1756963</commentid>
    <comment_count>0</comment_count>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-05-05 09:45:45 -0700</bug_when>
    <thetext>AppHighlight scrolls should be smooth</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1757010</commentid>
    <comment_count>1</comment_count>
      <attachid>427786</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-05-05 11:42:54 -0700</bug_when>
    <thetext>Created attachment 427786
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1757014</commentid>
    <comment_count>2</comment_count>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-05-05 11:44:59 -0700</bug_when>
    <thetext>rdar://77517808</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1757020</commentid>
    <comment_count>3</comment_count>
      <attachid>427786</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-05-05 11:51:17 -0700</bug_when>
    <thetext>Comment on attachment 427786
Patch

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

&gt; Source/WebCore/editing/FrameSelection.cpp:438
&gt; +    if (options &amp; SmoothScroll)
&gt; +        m_scrollBehavior = ScrollBehavior::Smooth;

What resets this? Maybe you want `m_scrollBehavior = options &amp; SmoothScroll ? ScrollBehavior::Smooth : ScrollBehavior::Instant;`? Otherwise you&apos;re going to get stuck with smooth scrolling if you do it once.

It&apos;s also kind of too bad we have to store it. The plumbing down to updateAndRevealSelection was too much?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1757023</commentid>
    <comment_count>4</comment_count>
      <attachid>427786</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-05-05 11:56:51 -0700</bug_when>
    <thetext>Comment on attachment 427786
Patch

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

&gt; Source/WebCore/Modules/highlight/AppHighlightStorage.cpp:266
&gt;          OptionSet&lt;TemporarySelectionOption&gt; temporarySelectionOptions;
&gt;          temporarySelectionOptions.add(TemporarySelectionOption::RevealSelection);
&gt; +        temporarySelectionOptions.add(TemporarySelectionOption::SmoothScroll);

NIT: you could inline this as `{ TemporarySelectionOption::RevealSelection, TemporarySelectionOption::SmoothScroll }`

&gt; Source/WebCore/editing/FrameSelection.cpp:438
&gt; +    if (options &amp; SmoothScroll)
&gt; +        m_scrollBehavior = ScrollBehavior::Smooth;

Should this have an `else` to reset it back to `ScrollBehavior::Instant`?

&gt; Source/WebCore/page/ScrollBehavior.cpp:46
&gt; -    if (!associatedElement-&gt;renderer() || !associatedElement-&gt;document().settings().CSSOMViewSmoothScrollingEnabled())
&gt; +    if (!associatedElement-&gt;renderer())

Would this also affect things like `window.scrollTo`?  If so, I don&apos;t think we want that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1757037</commentid>
    <comment_count>5</comment_count>
      <attachid>427789</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-05-05 12:37:57 -0700</bug_when>
    <thetext>Created attachment 427789
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1757054</commentid>
    <comment_count>6</comment_count>
      <attachid>427789</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-05-05 12:50:39 -0700</bug_when>
    <thetext>Comment on attachment 427789
Patch

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

&gt; Source/WebCore/page/ScrollBehavior.cpp:53
&gt; +        if (!associatedElement-&gt;document().settings().CSSOMViewSmoothScrollingEnabled())
&gt; +            return false;

This seems *right*, but it is confusing. You&apos;re using the passed-in behavior unconditionally, unless it&apos;s auto, in which case you use the element&apos;s style&apos;s behavior only if the bit is on, right? And then making sure that script doesn&apos;t pass smooth if the setting is off at that callsite? I think it&apos;s OK. Maybe want smfr to peek.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1757081</commentid>
    <comment_count>7</comment_count>
      <attachid>427789</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-05-05 13:40:47 -0700</bug_when>
    <thetext>Comment on attachment 427789
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Leveral smooth scrolling experimental feature to allow AppHighlight scrolls

Leveral? Leverage?

&gt; Source/WebCore/editing/FrameSelection.cpp:437
&gt; +    m_scrollBehavior = options &amp; SmoothScroll ? ScrollBehavior::Smooth : ScrollBehavior::Instant;

options.contains()?

&gt; Source/WebCore/editing/FrameSelection.h:340
&gt; +    ScrollBehavior m_scrollBehavior { ScrollBehavior::Instant };

It&apos;s a shame we need to store this. Can we just pass it along in parameters everywhere? Storing it here leaves us open to bugs where it gets left enabled by mistake.

&gt; Source/WebCore/page/DOMWindow.cpp:1730
&gt; +    auto scrollOptions = document()-&gt;settings().CSSOMViewSmoothScrollingEnabled() ? scrollToOptions.behavior.valueOr(ScrollBehavior::Auto) : ScrollBehavior::Auto;
&gt; +    auto animated = useSmoothScrolling(scrollOptions, document()-&gt;documentElement()) ? AnimatedScroll::Yes : AnimatedScroll::No;

This could use a changelog comment. useSmoothScrolling() consults CSSOMViewSmoothScrollingEnabled internally so it&apos;s very confusing to see that check also on the line above.

&gt;&gt; Source/WebCore/page/ScrollBehavior.cpp:53
&gt;&gt; +            return false;
&gt; 
&gt; This seems *right*, but it is confusing. You&apos;re using the passed-in behavior unconditionally, unless it&apos;s auto, in which case you use the element&apos;s style&apos;s behavior only if the bit is on, right? And then making sure that script doesn&apos;t pass smooth if the setting is off at that callsite? I think it&apos;s OK. Maybe want smfr to peek.

I&apos;m also confused since the call site also tests CSSOMViewSmoothScrollingEnabled. I think this function should be the only one to check CSSOMViewSmoothScrollingEnabled(), and should just get passed to it whatever is necessary to compute the result.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1757178</commentid>
    <comment_count>8</comment_count>
      <attachid>427823</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2021-05-05 16:56:40 -0700</bug_when>
    <thetext>Created attachment 427823
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1757257</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-05 23:43:22 -0700</bug_when>
    <thetext>Committed r277069 (237372@main): &lt;https://commits.webkit.org/237372@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 427823.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427786</attachid>
            <date>2021-05-05 11:42:54 -0700</date>
            <delta_ts>2021-05-05 12:37:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225395-20210505114253.patch</filename>
            <type>text/plain</type>
            <size>10661</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MDI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2MzNmVkOWU1NTdjMWY5
MWJjN2M2NDc2YmI0MTRlZjhmNzhlMTMxYi4uMDM2ZjdhNTdlY2QwZGVjMjYxNjM2M2RmMTFlN2Y0
ZjJhNmIxMDllMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTA1LTA1ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQXBwSGlnaGxp
Z2h0IHNjcm9sbHMgc2hvdWxkIGJlIHNtb290aAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1Mzk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTGV2ZXJhbCBzbW9vdGggc2Nyb2xsaW5nIGV4cGVyaW1lbnRh
bCBmZWF0dXJlIHRvIGFsbG93IEFwcEhpZ2hsaWdodCBzY3JvbGxzCisgICAgICAgIHRvIGJlIHNt
b290aC4KKworICAgICAgICAqIE1vZHVsZXMvaGlnaGxpZ2h0L0FwcEhpZ2hsaWdodFN0b3JhZ2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwSGlnaGxpZ2h0U3RvcmFnZTo6YXR0ZW1wdFRvUmVz
dG9yZUhpZ2hsaWdodEFuZFNjcm9sbCk6CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6VGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlOjpzZXRTZWxlY3Rpb24p
OgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmg6CisgICAgICAgICogZWRpdGluZy9GcmFtZVNl
bGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxT
ZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnJldmVhbFNlbGVj
dGlvbik6CisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oOgorICAgICAgICAqIHBh
Z2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6c2Nyb2xsVG8g
Y29uc3QpOgorICAgICAgICAqIHBhZ2UvU2Nyb2xsQmVoYXZpb3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6dXNlU21vb3RoU2Nyb2xsaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxUeXBl
cy5oOgorCiAyMDIxLTA1LTA1ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAg
ICAgICBBZGQgcHJlbGltaW5hcnkgc3VwcG9ydCBmb3Igc3BlY2lmeWluZyBhIGNvbG9yIHNwYWNl
IGZvciAyRCBjYW52YXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxp
Z2h0L0FwcEhpZ2hsaWdodFN0b3JhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdo
bGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKaW5kZXggYWFmOTYxMzg5Y2UxOTM2ZmNlNmM1
YWZkMjc3NzhiYmNmNWE2NmMzZC4uYTk4ZmY3MjZkMmUwOTE3YmRmN2FiMWJjNjM1NDJkMTA2ZjMz
NTUwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvQXBwSGln
aGxpZ2h0U3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQv
QXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKQEAgLTI2Myw2ICsyNjMsNyBAQCBib29sIEFwcEhpZ2hs
aWdodFN0b3JhZ2U6OmF0dGVtcHRUb1Jlc3RvcmVIaWdobGlnaHRBbmRTY3JvbGwoQXBwSGlnaGxp
Z2h0UmFuZ2VEYQogICAgIGlmIChzY3JvbGwgPT0gU2Nyb2xsVG9IaWdobGlnaHQ6Olllcykgewog
ICAgICAgICBPcHRpb25TZXQ8VGVtcG9yYXJ5U2VsZWN0aW9uT3B0aW9uPiB0ZW1wb3JhcnlTZWxl
Y3Rpb25PcHRpb25zOwogICAgICAgICB0ZW1wb3JhcnlTZWxlY3Rpb25PcHRpb25zLmFkZChUZW1w
b3JhcnlTZWxlY3Rpb25PcHRpb246OlJldmVhbFNlbGVjdGlvbik7CisgICAgICAgIHRlbXBvcmFy
eVNlbGVjdGlvbk9wdGlvbnMuYWRkKFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlvbjo6U21vb3RoU2Ny
b2xsKTsKICAgICAgICAgVGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlIHNlbGVjdGlvbkNoYW5nZSgq
c3Ryb25nRG9jdW1lbnQsIHsgcmFuZ2UudmFsdWUoKSB9LCB0ZW1wb3JhcnlTZWxlY3Rpb25PcHRp
b25zKTsKICAgICB9CiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAK
aW5kZXggZjBiNDUxZDlmYTY0NjE4OGU4YWJjMjYyMTRlN2RiYTY1OWQxZWMwYy4uZmZmNjUyZGYy
NWMwMmIwMDdmNDQ5OTAwMzAxNWQ5NDk4MDBjOGVlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
LmNwcApAQCAtMjY1LDYgKzI2NSw4IEBAIHZvaWQgVGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlOjpz
ZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKQogICAgICAgICBv
cHRpb25zLmFkZChGcmFtZVNlbGVjdGlvbjo6RG9Ob3RTZXRGb2N1cyk7CiAgICAgaWYgKG1fb3B0
aW9ucyAmIFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlvbjo6UmV2ZWFsU2VsZWN0aW9uKQogICAgICAg
ICBvcHRpb25zLmFkZChGcmFtZVNlbGVjdGlvbjo6UmV2ZWFsU2VsZWN0aW9uKTsKKyAgICBpZiAo
bV9vcHRpb25zICYgVGVtcG9yYXJ5U2VsZWN0aW9uT3B0aW9uOjpTbW9vdGhTY3JvbGwpCisgICAg
ICAgIG9wdGlvbnMuYWRkKEZyYW1lU2VsZWN0aW9uOjpTbW9vdGhTY3JvbGwpOwogICAgIG1fZG9j
dW1lbnQtPnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihzZWxlY3Rpb24sIG9wdGlvbnMpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuaAppbmRleCA2OGFkYmQ0M2M1N2Q4ZDBkMmNlYjgzZTk1MzM4
NDIxNzQ2NzcxMDJmLi42MDY1NGQxYzQ3YzBkNWE5YWE5MTc3OGQ3OTc2NGMxNjExZThjYWI1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKQEAgLTExOCw2ICsxMTgsOCBAQCBlbnVtIGNsYXNzIFRl
bXBvcmFyeVNlbGVjdGlvbk9wdGlvbiA6IHVpbnQ4X3QgewogCiAgICAgLy8gRm9yY2UgdGhlIHJl
bmRlciB0cmVlIHRvIHVwZGF0ZSBzZWxlY3Rpb24gc3RhdGUuIE9ubHkgcmVzcGVjdGVkIG9uIGlP
Uy4KICAgICBFbmFibGVBcHBlYXJhbmNlVXBkYXRlcyA9IDEgPDwgMywKKyAgICAKKyAgICBTbW9v
dGhTY3JvbGwgPSAxIDw8IDQsCiB9OwogCiBjbGFzcyBUZW1wb3JhcnlTZWxlY3Rpb25DaGFuZ2Ug
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAppbmRleCBiMTIyZjYx
NjU3MzUwYWY5YTNlMzgwZDk3Y2RhZjgzMzAzOGVmYmFkLi5iYzE1NmE2ZGFiMmU0YWM2YzY1Nzdh
N2UzYjQ0OTA4NGYyYTliYjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Zy
YW1lU2VsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0
aW9uLmNwcApAQCAtNDM0LDYgKzQzNCw5IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVj
dGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIE9wdGlvblNldDxTCiAgICAg
ICAgIG1fc2VsZWN0aW9uUmV2ZWFsTW9kZSA9IFNlbGVjdGlvblJldmVhbE1vZGU6OkRvTm90UmV2
ZWFsOwogICAgIG1fYWx3YXlzQWxpZ25DdXJzb3JPblNjcm9sbFdoZW5SZXZlYWxpbmdTZWxlY3Rp
b24gPSBhbGlnbiA9PSBBbGlnbkN1cnNvck9uU2Nyb2xsQWx3YXlzOwogCisgICAgaWYgKG9wdGlv
bnMgJiBTbW9vdGhTY3JvbGwpCisgICAgICAgIG1fc2Nyb2xsQmVoYXZpb3IgPSBTY3JvbGxCZWhh
dmlvcjo6U21vb3RoOworICAgIAogICAgIG1fc2VsZWN0aW9uUmV2ZWFsSW50ZW50ID0gaW50ZW50
OwogICAgIG1fcGVuZGluZ1NlbGVjdGlvblVwZGF0ZSA9IHRydWU7CiAKQEAgLTQ4OCw3ICs0OTEs
NyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oY29uc3Qg
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmIGludAogICAgICAgICBlbHNlCiAgICAgICAgICAgICBh
bGlnbm1lbnQgPSBtX2Fsd2F5c0FsaWduQ3Vyc29yT25TY3JvbGxXaGVuUmV2ZWFsaW5nU2VsZWN0
aW9uID8gU2Nyb2xsQWxpZ25tZW50OjphbGlnblRvcEFsd2F5cyA6IFNjcm9sbEFsaWdubWVudDo6
YWxpZ25Ub0VkZ2VJZk5lZWRlZDsKIAotICAgICAgICByZXZlYWxTZWxlY3Rpb24obV9zZWxlY3Rp
b25SZXZlYWxNb2RlLCBhbGlnbm1lbnQsIFJldmVhbEV4dGVudCk7CisgICAgICAgIHJldmVhbFNl
bGVjdGlvbihtX3NlbGVjdGlvblJldmVhbE1vZGUsIGFsaWdubWVudCwgUmV2ZWFsRXh0ZW50LCBt
X3Njcm9sbEJlaGF2aW9yKTsKICAgICB9CiAKICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2Vs
ZWN0aW9uQ2hhbmdlKGludGVudCk7CkBAIC0yMzc4LDcgKzIzODEsNyBAQCBIVE1MRm9ybUVsZW1l
bnQqIEZyYW1lU2VsZWN0aW9uOjpjdXJyZW50Rm9ybSgpIGNvbnN0CiAgICAgcmV0dXJuIHNjYW5G
b3JGb3JtKHN0YXJ0KTsKIH0KIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6cmV2ZWFsU2VsZWN0aW9u
KFNlbGVjdGlvblJldmVhbE1vZGUgcmV2ZWFsTW9kZSwgY29uc3QgU2Nyb2xsQWxpZ25tZW50JiBh
bGlnbm1lbnQsIFJldmVhbEV4dGVudE9wdGlvbiByZXZlYWxFeHRlbnRPcHRpb24pCit2b2lkIEZy
YW1lU2VsZWN0aW9uOjpyZXZlYWxTZWxlY3Rpb24oU2VsZWN0aW9uUmV2ZWFsTW9kZSByZXZlYWxN
b2RlLCBjb25zdCBTY3JvbGxBbGlnbm1lbnQmIGFsaWdubWVudCwgUmV2ZWFsRXh0ZW50T3B0aW9u
IHJldmVhbEV4dGVudE9wdGlvbiwgU2Nyb2xsQmVoYXZpb3Igc2Nyb2xsQmVoYXZpb3IpCiB7CiAg
ICAgaWYgKHJldmVhbE1vZGUgPT0gU2VsZWN0aW9uUmV2ZWFsTW9kZTo6RG9Ob3RSZXZlYWwpCiAg
ICAgICAgIHJldHVybjsKQEAgLTI0MDEsNyArMjQwNCw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246
OnJldmVhbFNlbGVjdGlvbihTZWxlY3Rpb25SZXZlYWxNb2RlIHJldmVhbE1vZGUsIGNvbnN0IFNj
cm9sCiAgICAgICAgICAgICBpZiAoIW1fc2Nyb2xsaW5nU3VwcHJlc3NDb3VudCkgewogICAgICAg
ICAgICAgICAgIGF1dG8qIHNjcm9sbGFibGVBcmVhID0gbGF5ZXItPmVuc3VyZUxheWVyU2Nyb2xs
YWJsZUFyZWEoKTsKICAgICAgICAgICAgICAgICBzY3JvbGxhYmxlQXJlYS0+c2V0QWRqdXN0Rm9y
SU9TQ2FyZXRXaGVuU2Nyb2xsaW5nKHRydWUpOwotICAgICAgICAgICAgICAgIGxheWVyLT5zY3Jv
bGxSZWN0VG9WaXNpYmxlKHJlY3QsIGluc2lkZUZpeGVkLCB7IHJldmVhbE1vZGUsIGFsaWdubWVu
dCwgYWxpZ25tZW50LCBTaG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5nOjpZZXMgfSk7Cisg
ICAgICAgICAgICAgICAgbGF5ZXItPnNjcm9sbFJlY3RUb1Zpc2libGUocmVjdCwgaW5zaWRlRml4
ZWQsIHsgcmV2ZWFsTW9kZSwgYWxpZ25tZW50LCBhbGlnbm1lbnQsIFNob3VsZEFsbG93Q3Jvc3NP
cmlnaW5TY3JvbGxpbmc6Olllcywgc2Nyb2xsQmVoYXZpb3J9KTsKICAgICAgICAgICAgICAgICBz
Y3JvbGxhYmxlQXJlYS0+c2V0QWRqdXN0Rm9ySU9TQ2FyZXRXaGVuU2Nyb2xsaW5nKGZhbHNlKTsK
ICAgICAgICAgICAgICAgICB1cGRhdGVBcHBlYXJhbmNlKCk7CiAgICAgICAgICAgICAgICAgaWYg
KG1fZG9jdW1lbnQtPnBhZ2UoKSkKQEAgLTI0MTIsNyArMjQxNSw3IEBAIHZvaWQgRnJhbWVTZWxl
Y3Rpb246OnJldmVhbFNlbGVjdGlvbihTZWxlY3Rpb25SZXZlYWxNb2RlIHJldmVhbE1vZGUsIGNv
bnN0IFNjcm9sCiAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGNvZGUgb25seSBoYW5kbGVzIHNjcm9s
bGluZyB0aGUgc3RhcnRDb250YWluZXIncyBsYXllciwgYnV0CiAgICAgICAgIC8vIHRoZSBzZWxl
Y3Rpb24gcmVjdCBjb3VsZCBpbnRlcnNlY3QgbW9yZSB0aGFuIGp1c3QgdGhhdC4KICAgICAgICAg
Ly8gU2VlIDxyZGFyOi8vcHJvYmxlbS80Nzk5ODk5Pi4KLSAgICAgICAgaWYgKHN0YXJ0LmRlcHJl
Y2F0ZWROb2RlKCktPnJlbmRlcmVyKCktPnNjcm9sbFJlY3RUb1Zpc2libGUocmVjdCwgaW5zaWRl
Rml4ZWQsIHsgcmV2ZWFsTW9kZSwgYWxpZ25tZW50LCBhbGlnbm1lbnQsIFNob3VsZEFsbG93Q3Jv
c3NPcmlnaW5TY3JvbGxpbmc6OlllcyB9KSkKKyAgICAgICAgaWYgKHN0YXJ0LmRlcHJlY2F0ZWRO
b2RlKCktPnJlbmRlcmVyKCktPnNjcm9sbFJlY3RUb1Zpc2libGUocmVjdCwgaW5zaWRlRml4ZWQs
IHsgcmV2ZWFsTW9kZSwgYWxpZ25tZW50LCBhbGlnbm1lbnQsIFNob3VsZEFsbG93Q3Jvc3NPcmln
aW5TY3JvbGxpbmc6Olllcywgc2Nyb2xsQmVoYXZpb3IgfSkpCiAgICAgICAgICAgICB1cGRhdGVB
cHBlYXJhbmNlKCk7CiAjZW5kaWYKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2Vs
ZWN0aW9uLmgKaW5kZXggM2QwOWFjOWFlMDE5Y2ViNDBkZjM1M2VjODZiYjYzNTViOTlkMWRlNC4u
MzliZTQ3MDA3MWJkYjFmM2I5NGI5NGY4ZmU0MGQ2ZTA5NzM1YTdhMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIklu
dFJlY3QuaCIKICNpbmNsdWRlICJMYXlvdXRSZWN0LmgiCiAjaW5jbHVkZSAiU2Nyb2xsQWxpZ25t
ZW50LmgiCisjaW5jbHVkZSAiU2Nyb2xsQmVoYXZpb3IuaCIKICNpbmNsdWRlICJUaW1lci5oIgog
I2luY2x1ZGUgIlZpc2libGVTZWxlY3Rpb24uaCIKICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUu
aD4KQEAgLTEyMiw2ICsxMjMsNyBAQCBwdWJsaWM6CiAgICAgICAgIElzVXNlclRyaWdnZXJlZCA9
IDEgPDwgNiwKICAgICAgICAgUmV2ZWFsU2VsZWN0aW9uID0gMSA8PCA3LAogICAgICAgICBSZXZl
YWxTZWxlY3Rpb25VcFRvTWFpbkZyYW1lID0gMSA8PCA4LAorICAgICAgICBTbW9vdGhTY3JvbGwg
PSAxIDw8IDksCiAgICAgfTsKICAgICBzdGF0aWMgY29uc3RleHByIE9wdGlvblNldDxTZXRTZWxl
Y3Rpb25PcHRpb24+IGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKEVVc2VyVHJpZ2dlcmVkID0g
Tm90VXNlclRyaWdnZXJlZCk7CiAKQEAgLTI0NSw3ICsyNDcsNyBAQCBwdWJsaWM6CiAKICAgICBX
RUJDT1JFX0VYUE9SVCBIVE1MRm9ybUVsZW1lbnQqIGN1cnJlbnRGb3JtKCkgY29uc3Q7CiAKLSAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJldmVhbFNlbGVjdGlvbihTZWxlY3Rpb25SZXZlYWxNb2Rl
ID0gU2VsZWN0aW9uUmV2ZWFsTW9kZTo6UmV2ZWFsLCBjb25zdCBTY3JvbGxBbGlnbm1lbnQmID0g
U2Nyb2xsQWxpZ25tZW50OjphbGlnbkNlbnRlcklmTmVlZGVkLCBSZXZlYWxFeHRlbnRPcHRpb24g
PSBEb05vdFJldmVhbEV4dGVudCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZXZlYWxTZWxl
Y3Rpb24oU2VsZWN0aW9uUmV2ZWFsTW9kZSA9IFNlbGVjdGlvblJldmVhbE1vZGU6OlJldmVhbCwg
Y29uc3QgU2Nyb2xsQWxpZ25tZW50JiA9IFNjcm9sbEFsaWdubWVudDo6YWxpZ25DZW50ZXJJZk5l
ZWRlZCwgUmV2ZWFsRXh0ZW50T3B0aW9uID0gRG9Ob3RSZXZlYWxFeHRlbnQsIFNjcm9sbEJlaGF2
aW9yID0gU2Nyb2xsQmVoYXZpb3I6Okluc3RhbnQpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
c2V0U2VsZWN0aW9uRnJvbU5vbmUoKTsKIAogICAgIGJvb2wgc2hvdWxkU2hvd0Jsb2NrQ3Vyc29y
KCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRTaG93QmxvY2tDdXJzb3I7IH0KQEAgLTMzNSw2ICsz
MzcsNyBAQCBwcml2YXRlOgogCiAgICAgU2VsZWN0aW9uUmV2ZWFsTW9kZSBtX3NlbGVjdGlvblJl
dmVhbE1vZGUgeyBTZWxlY3Rpb25SZXZlYWxNb2RlOjpEb05vdFJldmVhbCB9OwogICAgIEFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50IG1fc2VsZWN0aW9uUmV2ZWFsSW50ZW50OworICAgIFNjcm9sbEJl
aGF2aW9yIG1fc2Nyb2xsQmVoYXZpb3IgeyBTY3JvbGxCZWhhdmlvcjo6SW5zdGFudCB9OwogCiAg
ICAgYm9vbCBtX2NhcmV0SW5zaWRlUG9zaXRpb25GaXhlZCA6IDE7CiAgICAgYm9vbCBtX2Fic0Nh
cmV0Qm91bmRzRGlydHkgOiAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IGQxNDU1
YjU0ZGEwZDliZjMyNTlhMDg3OTJkMDhiOWE3YjgzYTA4ODYuLmYwMmY0YTVkMDdmOGQwNGI4ZmRl
MmFmYTQ2ZTA4ZjgzNjFlYmI0YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTE3
MjYsNyArMTcyNiw4IEBAIHZvaWQgRE9NV2luZG93OjpzY3JvbGxUbyhjb25zdCBTY3JvbGxUb09w
dGlvbnMmIG9wdGlvbnMsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nCiAKICAgICAvLyBGSVhNRTog
U2hvdWxkIHdlIHVzZSBkb2N1bWVudCgpLT5zY3JvbGxpbmdFbGVtZW50KCk/CiAgICAgLy8gU2Vl
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUwNTkKLSAgICBhdXRv
IGFuaW1hdGVkID0gdXNlU21vb3RoU2Nyb2xsaW5nKHNjcm9sbFRvT3B0aW9ucy5iZWhhdmlvci52
YWx1ZU9yKFNjcm9sbEJlaGF2aW9yOjpBdXRvKSwgZG9jdW1lbnQoKS0+ZG9jdW1lbnRFbGVtZW50
KCkpID8gQW5pbWF0ZWRTY3JvbGw6OlllcyA6IEFuaW1hdGVkU2Nyb2xsOjpObzsKKyAgICBhdXRv
IHNjcm9sbE9wdGlvbnMgPSBkb2N1bWVudCgpLT5zZXR0aW5ncygpLkNTU09NVmlld1Ntb290aFNj
cm9sbGluZ0VuYWJsZWQoKSA/IHNjcm9sbFRvT3B0aW9ucy5iZWhhdmlvci52YWx1ZU9yKFNjcm9s
bEJlaGF2aW9yOjpBdXRvKSA6IFNjcm9sbEJlaGF2aW9yOjpBdXRvOworICAgIGF1dG8gYW5pbWF0
ZWQgPSB1c2VTbW9vdGhTY3JvbGxpbmcoc2Nyb2xsT3B0aW9ucywgZG9jdW1lbnQoKS0+ZG9jdW1l
bnRFbGVtZW50KCkpID8gQW5pbWF0ZWRTY3JvbGw6OlllcyA6IEFuaW1hdGVkU2Nyb2xsOjpObzsK
ICAgICBhdXRvIHNjcm9sbFBvc2l0aW9uQ2hhbmdlT3B0aW9ucyA9IFNjcm9sbFBvc2l0aW9uQ2hh
bmdlT3B0aW9uczo6Y3JlYXRlUHJvZ3JhbW1hdGljV2l0aE9wdGlvbnMoY2xhbXBpbmcsIGFuaW1h
dGVkLCBzbmFwUG9pbnRTZWxlY3Rpb25NZXRob2QpOwogICAgIHZpZXctPnNldENvbnRlbnRzU2Ny
b2xsUG9zaXRpb24obGF5b3V0UG9zLCBzY3JvbGxQb3NpdGlvbkNoYW5nZU9wdGlvbnMpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxCZWhhdmlvci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1Njcm9sbEJlaGF2aW9yLmNwcAppbmRleCA4NTFjNThlMjVhNTVhNjVj
MjkxYTBiZDM5NDNiYjMwNmEzOWMwYTc4Li42MTNjY2E5M2Y1MWI0MjkzOWM5NWE0NzQ0NGM2N2Vm
Njc1YWJiZDAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbEJlaGF2aW9y
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbEJlaGF2aW9yLmNwcApAQCAtNDMs
MTIgKzQzLDE0IEBAIGJvb2wgdXNlU21vb3RoU2Nyb2xsaW5nKFNjcm9sbEJlaGF2aW9yIGJlaGF2
aW9yLCBFbGVtZW50KiBhc3NvY2lhdGVkRWxlbWVudCkKICAgICBpZiAoYXNzb2NpYXRlZEVsZW1l
bnQgPT0gYXNzb2NpYXRlZEVsZW1lbnQtPmRvY3VtZW50KCkuc2Nyb2xsaW5nRWxlbWVudCgpKQog
ICAgICAgICBhc3NvY2lhdGVkRWxlbWVudCA9IGFzc29jaWF0ZWRFbGVtZW50LT5kb2N1bWVudCgp
LmRvY3VtZW50RWxlbWVudCgpOwogCi0gICAgaWYgKCFhc3NvY2lhdGVkRWxlbWVudC0+cmVuZGVy
ZXIoKSB8fCAhYXNzb2NpYXRlZEVsZW1lbnQtPmRvY3VtZW50KCkuc2V0dGluZ3MoKS5DU1NPTVZp
ZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKCkpCisgICAgaWYgKCFhc3NvY2lhdGVkRWxlbWVudC0+
cmVuZGVyZXIoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8gaHR0cHM6Ly9kcmFm
dHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcvI3Njcm9sbGluZwogICAgIHN3aXRjaCAoYmVoYXZpb3Ip
IHsKICAgICBjYXNlIFNjcm9sbEJlaGF2aW9yOjpBdXRvOgorICAgICAgICBpZiAoIWFzc29jaWF0
ZWRFbGVtZW50LT5kb2N1bWVudCgpLnNldHRpbmdzKCkuQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5n
RW5hYmxlZCgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICByZXR1cm4gYXNz
b2NpYXRlZEVsZW1lbnQtPnJlbmRlcmVyKCktPnN0eWxlKCkudXNlU21vb3RoU2Nyb2xsaW5nKCk7
CiAgICAgY2FzZSBTY3JvbGxCZWhhdmlvcjo6SW5zdGFudDoKICAgICAgICAgcmV0dXJuIGZhbHNl
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427789</attachid>
            <date>2021-05-05 12:37:57 -0700</date>
            <delta_ts>2021-05-05 16:56:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225395-20210505123756.patch</filename>
            <type>text/plain</type>
            <size>10922</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MDI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2MzNmVkOWU1NTdjMWY5
MWJjN2M2NDc2YmI0MTRlZjhmNzhlMTMxYi4uMDM2ZjdhNTdlY2QwZGVjMjYxNjM2M2RmMTFlN2Y0
ZjJhNmIxMDllMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTA1LTA1ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQXBwSGlnaGxp
Z2h0IHNjcm9sbHMgc2hvdWxkIGJlIHNtb290aAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1Mzk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTGV2ZXJhbCBzbW9vdGggc2Nyb2xsaW5nIGV4cGVyaW1lbnRh
bCBmZWF0dXJlIHRvIGFsbG93IEFwcEhpZ2hsaWdodCBzY3JvbGxzCisgICAgICAgIHRvIGJlIHNt
b290aC4KKworICAgICAgICAqIE1vZHVsZXMvaGlnaGxpZ2h0L0FwcEhpZ2hsaWdodFN0b3JhZ2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwSGlnaGxpZ2h0U3RvcmFnZTo6YXR0ZW1wdFRvUmVz
dG9yZUhpZ2hsaWdodEFuZFNjcm9sbCk6CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6VGVtcG9yYXJ5U2VsZWN0aW9uQ2hhbmdlOjpzZXRTZWxlY3Rpb24p
OgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmg6CisgICAgICAgICogZWRpdGluZy9GcmFtZVNl
bGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxT
ZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnJldmVhbFNlbGVj
dGlvbik6CisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oOgorICAgICAgICAqIHBh
Z2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6c2Nyb2xsVG8g
Y29uc3QpOgorICAgICAgICAqIHBhZ2UvU2Nyb2xsQmVoYXZpb3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6dXNlU21vb3RoU2Nyb2xsaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxUeXBl
cy5oOgorCiAyMDIxLTA1LTA1ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAg
ICAgICBBZGQgcHJlbGltaW5hcnkgc3VwcG9ydCBmb3Igc3BlY2lmeWluZyBhIGNvbG9yIHNwYWNl
IGZvciAyRCBjYW52YXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxp
Z2h0L0FwcEhpZ2hsaWdodFN0b3JhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdo
bGlnaHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKaW5kZXggYWFmOTYxMzg5Y2UxOTM2ZmNlNmM1
YWZkMjc3NzhiYmNmNWE2NmMzZC4uZjhlOWJhYjc5MTRmMDM4NmZhMTcwNDY2YTk4ZDRkZjM4MWIy
ZTM3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvQXBwSGln
aGxpZ2h0U3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQv
QXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAKQEAgLTI2MCwxMSArMjYwLDkgQEAgYm9vbCBBcHBIaWdo
bGlnaHRTdG9yYWdlOjphdHRlbXB0VG9SZXN0b3JlSGlnaGxpZ2h0QW5kU2Nyb2xsKEFwcEhpZ2hs
aWdodFJhbmdlRGEKICAgICAKICAgICBzdHJvbmdEb2N1bWVudC0+YXBwSGlnaGxpZ2h0UmVnaXN0
ZXIoKS5hZGRBcHBIaWdobGlnaHQoU3RhdGljUmFuZ2U6OmNyZWF0ZSgqcmFuZ2UpKTsKICAgICAK
LSAgICBpZiAoc2Nyb2xsID09IFNjcm9sbFRvSGlnaGxpZ2h0OjpZZXMpIHsKLSAgICAgICAgT3B0
aW9uU2V0PFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlvbj4gdGVtcG9yYXJ5U2VsZWN0aW9uT3B0aW9u
czsKLSAgICAgICAgdGVtcG9yYXJ5U2VsZWN0aW9uT3B0aW9ucy5hZGQoVGVtcG9yYXJ5U2VsZWN0
aW9uT3B0aW9uOjpSZXZlYWxTZWxlY3Rpb24pOwotICAgICAgICBUZW1wb3JhcnlTZWxlY3Rpb25D
aGFuZ2Ugc2VsZWN0aW9uQ2hhbmdlKCpzdHJvbmdEb2N1bWVudCwgeyByYW5nZS52YWx1ZSgpIH0s
IHRlbXBvcmFyeVNlbGVjdGlvbk9wdGlvbnMpOwotICAgIH0KKyAgICBpZiAoc2Nyb2xsID09IFNj
cm9sbFRvSGlnaGxpZ2h0OjpZZXMpCisgICAgICAgIFRlbXBvcmFyeVNlbGVjdGlvbkNoYW5nZSBz
ZWxlY3Rpb25DaGFuZ2UoKnN0cm9uZ0RvY3VtZW50LCB7IHJhbmdlLnZhbHVlKCkgfSwgeyBUZW1w
b3JhcnlTZWxlY3Rpb25PcHRpb246OlJldmVhbFNlbGVjdGlvbiwgVGVtcG9yYXJ5U2VsZWN0aW9u
T3B0aW9uOjpTbW9vdGhTY3JvbGwgfSk7CisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IGYwYjQ1MWQ5ZmE2NDYxODhlOGFiYzI2MjE0ZTdkYmE2
NTlkMWVjMGMuLmZmZjY1MmRmMjVjMDJiMDA3ZjQ0OTkwMDMwMTVkOTQ5ODAwYzhlZTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTI2NSw2ICsyNjUsOCBAQCB2b2lkIFRlbXBvcmFy
eVNlbGVjdGlvbkNoYW5nZTo6c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNl
bGVjdGlvbikKICAgICAgICAgb3B0aW9ucy5hZGQoRnJhbWVTZWxlY3Rpb246OkRvTm90U2V0Rm9j
dXMpOwogICAgIGlmIChtX29wdGlvbnMgJiBUZW1wb3JhcnlTZWxlY3Rpb25PcHRpb246OlJldmVh
bFNlbGVjdGlvbikKICAgICAgICAgb3B0aW9ucy5hZGQoRnJhbWVTZWxlY3Rpb246OlJldmVhbFNl
bGVjdGlvbik7CisgICAgaWYgKG1fb3B0aW9ucyAmIFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlvbjo6
U21vb3RoU2Nyb2xsKQorICAgICAgICBvcHRpb25zLmFkZChGcmFtZVNlbGVjdGlvbjo6U21vb3Ro
U2Nyb2xsKTsKICAgICBtX2RvY3VtZW50LT5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24oc2VsZWN0
aW9uLCBvcHRpb25zKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5kZXggNjhhZGJkNDNj
NTdkOGQwZDJjZWI4M2U5NTMzODQyMTc0Njc3MTAyZi4uNjA2NTRkMWM0N2MwZDVhOWFhOTE3Nzhk
Nzk3NjRjMTYxMWU4Y2FiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCkBAIC0xMTgsNiArMTE4
LDggQEAgZW51bSBjbGFzcyBUZW1wb3JhcnlTZWxlY3Rpb25PcHRpb24gOiB1aW50OF90IHsKIAog
ICAgIC8vIEZvcmNlIHRoZSByZW5kZXIgdHJlZSB0byB1cGRhdGUgc2VsZWN0aW9uIHN0YXRlLiBP
bmx5IHJlc3BlY3RlZCBvbiBpT1MuCiAgICAgRW5hYmxlQXBwZWFyYW5jZVVwZGF0ZXMgPSAxIDw8
IDMsCisgICAgCisgICAgU21vb3RoU2Nyb2xsID0gMSA8PCA0LAogfTsKIAogY2xhc3MgVGVtcG9y
YXJ5U2VsZWN0aW9uQ2hhbmdlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RnJhbWVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlv
bi5jcHAKaW5kZXggYjEyMmY2MTY1NzM1MGFmOWEzZTM4MGQ5N2NkYWY4MzMwMzhlZmJhZC4uZjE0
YTdkN2Q5NTNlNjhlZmEyZjUwZmJjZWFmZjY2MjcyYTVkNDdjZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTQzNCw2ICs0MzQsOCBAQCB2b2lkIEZyYW1l
U2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9u
LCBPcHRpb25TZXQ8UwogICAgICAgICBtX3NlbGVjdGlvblJldmVhbE1vZGUgPSBTZWxlY3Rpb25S
ZXZlYWxNb2RlOjpEb05vdFJldmVhbDsKICAgICBtX2Fsd2F5c0FsaWduQ3Vyc29yT25TY3JvbGxX
aGVuUmV2ZWFsaW5nU2VsZWN0aW9uID0gYWxpZ24gPT0gQWxpZ25DdXJzb3JPblNjcm9sbEFsd2F5
czsKIAorICAgIG1fc2Nyb2xsQmVoYXZpb3IgPSBvcHRpb25zICYgU21vb3RoU2Nyb2xsID8gU2Ny
b2xsQmVoYXZpb3I6OlNtb290aCA6IFNjcm9sbEJlaGF2aW9yOjpJbnN0YW50OworICAgIAogICAg
IG1fc2VsZWN0aW9uUmV2ZWFsSW50ZW50ID0gaW50ZW50OwogICAgIG1fcGVuZGluZ1NlbGVjdGlv
blVwZGF0ZSA9IHRydWU7CiAKQEAgLTQ4OCw3ICs0OTAsNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9u
Ojp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQm
IGludAogICAgICAgICBlbHNlCiAgICAgICAgICAgICBhbGlnbm1lbnQgPSBtX2Fsd2F5c0FsaWdu
Q3Vyc29yT25TY3JvbGxXaGVuUmV2ZWFsaW5nU2VsZWN0aW9uID8gU2Nyb2xsQWxpZ25tZW50Ojph
bGlnblRvcEFsd2F5cyA6IFNjcm9sbEFsaWdubWVudDo6YWxpZ25Ub0VkZ2VJZk5lZWRlZDsKIAot
ICAgICAgICByZXZlYWxTZWxlY3Rpb24obV9zZWxlY3Rpb25SZXZlYWxNb2RlLCBhbGlnbm1lbnQs
IFJldmVhbEV4dGVudCk7CisgICAgICAgIHJldmVhbFNlbGVjdGlvbihtX3NlbGVjdGlvblJldmVh
bE1vZGUsIGFsaWdubWVudCwgUmV2ZWFsRXh0ZW50LCBtX3Njcm9sbEJlaGF2aW9yKTsKICAgICB9
CiAKICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKGludGVudCk7CkBA
IC0yMzc4LDcgKzIzODAsNyBAQCBIVE1MRm9ybUVsZW1lbnQqIEZyYW1lU2VsZWN0aW9uOjpjdXJy
ZW50Rm9ybSgpIGNvbnN0CiAgICAgcmV0dXJuIHNjYW5Gb3JGb3JtKHN0YXJ0KTsKIH0KIAotdm9p
ZCBGcmFtZVNlbGVjdGlvbjo6cmV2ZWFsU2VsZWN0aW9uKFNlbGVjdGlvblJldmVhbE1vZGUgcmV2
ZWFsTW9kZSwgY29uc3QgU2Nyb2xsQWxpZ25tZW50JiBhbGlnbm1lbnQsIFJldmVhbEV4dGVudE9w
dGlvbiByZXZlYWxFeHRlbnRPcHRpb24pCit2b2lkIEZyYW1lU2VsZWN0aW9uOjpyZXZlYWxTZWxl
Y3Rpb24oU2VsZWN0aW9uUmV2ZWFsTW9kZSByZXZlYWxNb2RlLCBjb25zdCBTY3JvbGxBbGlnbm1l
bnQmIGFsaWdubWVudCwgUmV2ZWFsRXh0ZW50T3B0aW9uIHJldmVhbEV4dGVudE9wdGlvbiwgU2Ny
b2xsQmVoYXZpb3Igc2Nyb2xsQmVoYXZpb3IpCiB7CiAgICAgaWYgKHJldmVhbE1vZGUgPT0gU2Vs
ZWN0aW9uUmV2ZWFsTW9kZTo6RG9Ob3RSZXZlYWwpCiAgICAgICAgIHJldHVybjsKQEAgLTI0MDEs
NyArMjQwMyw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnJldmVhbFNlbGVjdGlvbihTZWxlY3Rp
b25SZXZlYWxNb2RlIHJldmVhbE1vZGUsIGNvbnN0IFNjcm9sCiAgICAgICAgICAgICBpZiAoIW1f
c2Nyb2xsaW5nU3VwcHJlc3NDb3VudCkgewogICAgICAgICAgICAgICAgIGF1dG8qIHNjcm9sbGFi
bGVBcmVhID0gbGF5ZXItPmVuc3VyZUxheWVyU2Nyb2xsYWJsZUFyZWEoKTsKICAgICAgICAgICAg
ICAgICBzY3JvbGxhYmxlQXJlYS0+c2V0QWRqdXN0Rm9ySU9TQ2FyZXRXaGVuU2Nyb2xsaW5nKHRy
dWUpOwotICAgICAgICAgICAgICAgIGxheWVyLT5zY3JvbGxSZWN0VG9WaXNpYmxlKHJlY3QsIGlu
c2lkZUZpeGVkLCB7IHJldmVhbE1vZGUsIGFsaWdubWVudCwgYWxpZ25tZW50LCBTaG91bGRBbGxv
d0Nyb3NzT3JpZ2luU2Nyb2xsaW5nOjpZZXMgfSk7CisgICAgICAgICAgICAgICAgbGF5ZXItPnNj
cm9sbFJlY3RUb1Zpc2libGUocmVjdCwgaW5zaWRlRml4ZWQsIHsgcmV2ZWFsTW9kZSwgYWxpZ25t
ZW50LCBhbGlnbm1lbnQsIFNob3VsZEFsbG93Q3Jvc3NPcmlnaW5TY3JvbGxpbmc6Olllcywgc2Ny
b2xsQmVoYXZpb3J9KTsKICAgICAgICAgICAgICAgICBzY3JvbGxhYmxlQXJlYS0+c2V0QWRqdXN0
Rm9ySU9TQ2FyZXRXaGVuU2Nyb2xsaW5nKGZhbHNlKTsKICAgICAgICAgICAgICAgICB1cGRhdGVB
cHBlYXJhbmNlKCk7CiAgICAgICAgICAgICAgICAgaWYgKG1fZG9jdW1lbnQtPnBhZ2UoKSkKQEAg
LTI0MTIsNyArMjQxNCw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnJldmVhbFNlbGVjdGlvbihT
ZWxlY3Rpb25SZXZlYWxNb2RlIHJldmVhbE1vZGUsIGNvbnN0IFNjcm9sCiAgICAgICAgIC8vIEZJ
WE1FOiBUaGlzIGNvZGUgb25seSBoYW5kbGVzIHNjcm9sbGluZyB0aGUgc3RhcnRDb250YWluZXIn
cyBsYXllciwgYnV0CiAgICAgICAgIC8vIHRoZSBzZWxlY3Rpb24gcmVjdCBjb3VsZCBpbnRlcnNl
Y3QgbW9yZSB0aGFuIGp1c3QgdGhhdC4KICAgICAgICAgLy8gU2VlIDxyZGFyOi8vcHJvYmxlbS80
Nzk5ODk5Pi4KLSAgICAgICAgaWYgKHN0YXJ0LmRlcHJlY2F0ZWROb2RlKCktPnJlbmRlcmVyKCkt
PnNjcm9sbFJlY3RUb1Zpc2libGUocmVjdCwgaW5zaWRlRml4ZWQsIHsgcmV2ZWFsTW9kZSwgYWxp
Z25tZW50LCBhbGlnbm1lbnQsIFNob3VsZEFsbG93Q3Jvc3NPcmlnaW5TY3JvbGxpbmc6OlllcyB9
KSkKKyAgICAgICAgaWYgKHN0YXJ0LmRlcHJlY2F0ZWROb2RlKCktPnJlbmRlcmVyKCktPnNjcm9s
bFJlY3RUb1Zpc2libGUocmVjdCwgaW5zaWRlRml4ZWQsIHsgcmV2ZWFsTW9kZSwgYWxpZ25tZW50
LCBhbGlnbm1lbnQsIFNob3VsZEFsbG93Q3Jvc3NPcmlnaW5TY3JvbGxpbmc6Olllcywgc2Nyb2xs
QmVoYXZpb3IgfSkpCiAgICAgICAgICAgICB1cGRhdGVBcHBlYXJhbmNlKCk7CiAjZW5kaWYKICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKaW5kZXggM2QwOWFjOWFl
MDE5Y2ViNDBkZjM1M2VjODZiYjYzNTViOTlkMWRlNC4uMzliZTQ3MDA3MWJkYjFmM2I5NGI5NGY4
ZmU0MGQ2ZTA5NzM1YTdhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFt
ZVNlbGVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24u
aApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJMYXlv
dXRSZWN0LmgiCiAjaW5jbHVkZSAiU2Nyb2xsQWxpZ25tZW50LmgiCisjaW5jbHVkZSAiU2Nyb2xs
QmVoYXZpb3IuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgIlZpc2libGVTZWxlY3Rp
b24uaCIKICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KQEAgLTEyMiw2ICsxMjMsNyBAQCBw
dWJsaWM6CiAgICAgICAgIElzVXNlclRyaWdnZXJlZCA9IDEgPDwgNiwKICAgICAgICAgUmV2ZWFs
U2VsZWN0aW9uID0gMSA8PCA3LAogICAgICAgICBSZXZlYWxTZWxlY3Rpb25VcFRvTWFpbkZyYW1l
ID0gMSA8PCA4LAorICAgICAgICBTbW9vdGhTY3JvbGwgPSAxIDw8IDksCiAgICAgfTsKICAgICBz
dGF0aWMgY29uc3RleHByIE9wdGlvblNldDxTZXRTZWxlY3Rpb25PcHRpb24+IGRlZmF1bHRTZXRT
ZWxlY3Rpb25PcHRpb25zKEVVc2VyVHJpZ2dlcmVkID0gTm90VXNlclRyaWdnZXJlZCk7CiAKQEAg
LTI0NSw3ICsyNDcsNyBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCBIVE1MRm9ybUVs
ZW1lbnQqIGN1cnJlbnRGb3JtKCkgY29uc3Q7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJl
dmVhbFNlbGVjdGlvbihTZWxlY3Rpb25SZXZlYWxNb2RlID0gU2VsZWN0aW9uUmV2ZWFsTW9kZTo6
UmV2ZWFsLCBjb25zdCBTY3JvbGxBbGlnbm1lbnQmID0gU2Nyb2xsQWxpZ25tZW50OjphbGlnbkNl
bnRlcklmTmVlZGVkLCBSZXZlYWxFeHRlbnRPcHRpb24gPSBEb05vdFJldmVhbEV4dGVudCk7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZXZlYWxTZWxlY3Rpb24oU2VsZWN0aW9uUmV2ZWFsTW9k
ZSA9IFNlbGVjdGlvblJldmVhbE1vZGU6OlJldmVhbCwgY29uc3QgU2Nyb2xsQWxpZ25tZW50JiA9
IFNjcm9sbEFsaWdubWVudDo6YWxpZ25DZW50ZXJJZk5lZWRlZCwgUmV2ZWFsRXh0ZW50T3B0aW9u
ID0gRG9Ob3RSZXZlYWxFeHRlbnQsIFNjcm9sbEJlaGF2aW9yID0gU2Nyb2xsQmVoYXZpb3I6Oklu
c3RhbnQpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0aW9uRnJvbU5vbmUoKTsK
IAogICAgIGJvb2wgc2hvdWxkU2hvd0Jsb2NrQ3Vyc29yKCkgY29uc3QgeyByZXR1cm4gbV9zaG91
bGRTaG93QmxvY2tDdXJzb3I7IH0KQEAgLTMzNSw2ICszMzcsNyBAQCBwcml2YXRlOgogCiAgICAg
U2VsZWN0aW9uUmV2ZWFsTW9kZSBtX3NlbGVjdGlvblJldmVhbE1vZGUgeyBTZWxlY3Rpb25SZXZl
YWxNb2RlOjpEb05vdFJldmVhbCB9OwogICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IG1fc2Vs
ZWN0aW9uUmV2ZWFsSW50ZW50OworICAgIFNjcm9sbEJlaGF2aW9yIG1fc2Nyb2xsQmVoYXZpb3Ig
eyBTY3JvbGxCZWhhdmlvcjo6SW5zdGFudCB9OwogCiAgICAgYm9vbCBtX2NhcmV0SW5zaWRlUG9z
aXRpb25GaXhlZCA6IDE7CiAgICAgYm9vbCBtX2Fic0NhcmV0Qm91bmRzRGlydHkgOiAxOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IGQxNDU1YjU0ZGEwZDliZjMyNTlhMDg3OTJkMDhi
OWE3YjgzYTA4ODYuLmYwMmY0YTVkMDdmOGQwNGI4ZmRlMmFmYTQ2ZTA4ZjgzNjFlYmI0YTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTE3MjYsNyArMTcyNiw4IEBAIHZvaWQgRE9N
V2luZG93OjpzY3JvbGxUbyhjb25zdCBTY3JvbGxUb09wdGlvbnMmIG9wdGlvbnMsIFNjcm9sbENs
YW1waW5nIGNsYW1waW5nCiAKICAgICAvLyBGSVhNRTogU2hvdWxkIHdlIHVzZSBkb2N1bWVudCgp
LT5zY3JvbGxpbmdFbGVtZW50KCk/CiAgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDUwNTkKLSAgICBhdXRvIGFuaW1hdGVkID0gdXNlU21vb3RoU2Ny
b2xsaW5nKHNjcm9sbFRvT3B0aW9ucy5iZWhhdmlvci52YWx1ZU9yKFNjcm9sbEJlaGF2aW9yOjpB
dXRvKSwgZG9jdW1lbnQoKS0+ZG9jdW1lbnRFbGVtZW50KCkpID8gQW5pbWF0ZWRTY3JvbGw6Olll
cyA6IEFuaW1hdGVkU2Nyb2xsOjpObzsKKyAgICBhdXRvIHNjcm9sbE9wdGlvbnMgPSBkb2N1bWVu
dCgpLT5zZXR0aW5ncygpLkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQoKSA/IHNjcm9s
bFRvT3B0aW9ucy5iZWhhdmlvci52YWx1ZU9yKFNjcm9sbEJlaGF2aW9yOjpBdXRvKSA6IFNjcm9s
bEJlaGF2aW9yOjpBdXRvOworICAgIGF1dG8gYW5pbWF0ZWQgPSB1c2VTbW9vdGhTY3JvbGxpbmco
c2Nyb2xsT3B0aW9ucywgZG9jdW1lbnQoKS0+ZG9jdW1lbnRFbGVtZW50KCkpID8gQW5pbWF0ZWRT
Y3JvbGw6OlllcyA6IEFuaW1hdGVkU2Nyb2xsOjpObzsKICAgICBhdXRvIHNjcm9sbFBvc2l0aW9u
Q2hhbmdlT3B0aW9ucyA9IFNjcm9sbFBvc2l0aW9uQ2hhbmdlT3B0aW9uczo6Y3JlYXRlUHJvZ3Jh
bW1hdGljV2l0aE9wdGlvbnMoY2xhbXBpbmcsIGFuaW1hdGVkLCBzbmFwUG9pbnRTZWxlY3Rpb25N
ZXRob2QpOwogICAgIHZpZXctPnNldENvbnRlbnRzU2Nyb2xsUG9zaXRpb24obGF5b3V0UG9zLCBz
Y3JvbGxQb3NpdGlvbkNoYW5nZU9wdGlvbnMpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9TY3JvbGxCZWhhdmlvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbEJl
aGF2aW9yLmNwcAppbmRleCA4NTFjNThlMjVhNTVhNjVjMjkxYTBiZDM5NDNiYjMwNmEzOWMwYTc4
Li42MTNjY2E5M2Y1MWI0MjkzOWM5NWE0NzQ0NGM2N2VmNjc1YWJiZDAwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1Njcm9sbEJlaGF2aW9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1Njcm9sbEJlaGF2aW9yLmNwcApAQCAtNDMsMTIgKzQzLDE0IEBAIGJvb2wgdXNlU21v
b3RoU2Nyb2xsaW5nKFNjcm9sbEJlaGF2aW9yIGJlaGF2aW9yLCBFbGVtZW50KiBhc3NvY2lhdGVk
RWxlbWVudCkKICAgICBpZiAoYXNzb2NpYXRlZEVsZW1lbnQgPT0gYXNzb2NpYXRlZEVsZW1lbnQt
PmRvY3VtZW50KCkuc2Nyb2xsaW5nRWxlbWVudCgpKQogICAgICAgICBhc3NvY2lhdGVkRWxlbWVu
dCA9IGFzc29jaWF0ZWRFbGVtZW50LT5kb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpOwogCi0g
ICAgaWYgKCFhc3NvY2lhdGVkRWxlbWVudC0+cmVuZGVyZXIoKSB8fCAhYXNzb2NpYXRlZEVsZW1l
bnQtPmRvY3VtZW50KCkuc2V0dGluZ3MoKS5DU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVk
KCkpCisgICAgaWYgKCFhc3NvY2lhdGVkRWxlbWVudC0+cmVuZGVyZXIoKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCiAgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLXZpZXcv
I3Njcm9sbGluZwogICAgIHN3aXRjaCAoYmVoYXZpb3IpIHsKICAgICBjYXNlIFNjcm9sbEJlaGF2
aW9yOjpBdXRvOgorICAgICAgICBpZiAoIWFzc29jaWF0ZWRFbGVtZW50LT5kb2N1bWVudCgpLnNl
dHRpbmdzKCkuQ1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCgpKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgICAgICByZXR1cm4gYXNzb2NpYXRlZEVsZW1lbnQtPnJlbmRlcmVy
KCktPnN0eWxlKCkudXNlU21vb3RoU2Nyb2xsaW5nKCk7CiAgICAgY2FzZSBTY3JvbGxCZWhhdmlv
cjo6SW5zdGFudDoKICAgICAgICAgcmV0dXJuIGZhbHNlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427823</attachid>
            <date>2021-05-05 16:56:40 -0700</date>
            <delta_ts>2021-05-05 23:43:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225395-20210505165639.patch</filename>
            <type>text/plain</type>
            <size>14353</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MDI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2MzNmVkOWU1NTdjMWY5
MWJjN2M2NDc2YmI0MTRlZjhmNzhlMTMxYi4uMDE3YzUxMDk2ODU2NzhiZmM4NGFkNDliYjM4Y2Jj
Nzk2M2NmZTdhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTA1LTA1ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQXBwSGlnaGxp
Z2h0IHNjcm9sbHMgc2hvdWxkIGJlIHNtb290aAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1Mzk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTGV2ZXJhZ2Ugc21vb3RoIHNjcm9sbGluZyBleHBlcmltZW50
YWwgZmVhdHVyZSB0byBhbGxvdyBBcHBIaWdobGlnaHQgc2Nyb2xscworICAgICAgICB0byBiZSBz
bW9vdGguCisKKyAgICAgICAgKiBNb2R1bGVzL2hpZ2hsaWdodC9BcHBIaWdobGlnaHRTdG9yYWdl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcEhpZ2hsaWdodFN0b3JhZ2U6OmF0dGVtcHRUb1Jl
c3RvcmVIaWdobGlnaHRBbmRTY3JvbGwpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlRlbXBvcmFyeVNlbGVjdGlvbkNoYW5nZTo6c2V0U2VsZWN0aW9u
KToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5oOgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVT
ZWxlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVj
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFs
U2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpyZXZlYWxTZWxl
Y3Rpb24pOgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaDoKKyAgICAgICAgKiBw
YWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnNjcm9sbFRv
IGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1Njcm9sbEJlaGF2aW9yLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnVzZVNtb290aFNjcm9sbGluZyk6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVHlw
ZXMuaDoKKwogMjAyMS0wNS0wNSAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAg
ICAgICAgQWRkIHByZWxpbWluYXJ5IHN1cHBvcnQgZm9yIHNwZWNpZnlpbmcgYSBjb2xvciBzcGFj
ZSBmb3IgMkQgY2FudmFzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hs
aWdodC9BcHBIaWdobGlnaHRTdG9yYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGln
aGxpZ2h0L0FwcEhpZ2hsaWdodFN0b3JhZ2UuY3BwCmluZGV4IGFhZjk2MTM4OWNlMTkzNmZjZTZj
NWFmZDI3Nzc4YmJjZjVhNjZjM2QuLmI2NGVmNWZjNjNhMjQ0NGJiMDI5NmQ0ZDZlZmEzZjA5NDMw
M2ZiNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0FwcEhp
Z2hsaWdodFN0b3JhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0
L0FwcEhpZ2hsaWdodFN0b3JhZ2UuY3BwCkBAIC0yNjAsMTEgKzI2MCw5IEBAIGJvb2wgQXBwSGln
aGxpZ2h0U3RvcmFnZTo6YXR0ZW1wdFRvUmVzdG9yZUhpZ2hsaWdodEFuZFNjcm9sbChBcHBIaWdo
bGlnaHRSYW5nZURhCiAgICAgCiAgICAgc3Ryb25nRG9jdW1lbnQtPmFwcEhpZ2hsaWdodFJlZ2lz
dGVyKCkuYWRkQXBwSGlnaGxpZ2h0KFN0YXRpY1JhbmdlOjpjcmVhdGUoKnJhbmdlKSk7CiAgICAg
Ci0gICAgaWYgKHNjcm9sbCA9PSBTY3JvbGxUb0hpZ2hsaWdodDo6WWVzKSB7Ci0gICAgICAgIE9w
dGlvblNldDxUZW1wb3JhcnlTZWxlY3Rpb25PcHRpb24+IHRlbXBvcmFyeVNlbGVjdGlvbk9wdGlv
bnM7Ci0gICAgICAgIHRlbXBvcmFyeVNlbGVjdGlvbk9wdGlvbnMuYWRkKFRlbXBvcmFyeVNlbGVj
dGlvbk9wdGlvbjo6UmV2ZWFsU2VsZWN0aW9uKTsKLSAgICAgICAgVGVtcG9yYXJ5U2VsZWN0aW9u
Q2hhbmdlIHNlbGVjdGlvbkNoYW5nZSgqc3Ryb25nRG9jdW1lbnQsIHsgcmFuZ2UudmFsdWUoKSB9
LCB0ZW1wb3JhcnlTZWxlY3Rpb25PcHRpb25zKTsKLSAgICB9CisgICAgaWYgKHNjcm9sbCA9PSBT
Y3JvbGxUb0hpZ2hsaWdodDo6WWVzKQorICAgICAgICBUZW1wb3JhcnlTZWxlY3Rpb25DaGFuZ2Ug
c2VsZWN0aW9uQ2hhbmdlKCpzdHJvbmdEb2N1bWVudCwgeyByYW5nZS52YWx1ZSgpIH0sIHsgVGVt
cG9yYXJ5U2VsZWN0aW9uT3B0aW9uOjpSZXZlYWxTZWxlY3Rpb24sIFRlbXBvcmFyeVNlbGVjdGlv
bk9wdGlvbjo6U21vb3RoU2Nyb2xsLCBUZW1wb3JhcnlTZWxlY3Rpb25PcHRpb246Ok92ZXJyaWRl
U21vb3RoU2Nyb2xsRmVhdHVyZUVuYWJsbWVudCB9KTsKKwogICAgIHJldHVybiB0cnVlOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggMGVmZWQ1MjNjMGJkMDc3NDFjYjFiZWFlZGE0ODVj
MDY1YTcxNTZlYi4uNmZmNTA5YzMxNGJmYzQ2Zjk0Y2Q5ZjkyNmU2ZWY2MDJkN2FmMDI2OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmNwcApAQCAtOTM2LDcgKzkzNiw4IEBAIHZvaWQgRWxlbWVudDo6c2Ny
b2xsSW50b1ZpZXcoT3B0aW9uYWw8VmFyaWFudDxib29sLCBTY3JvbGxJbnRvVmlld09wdGlvbnM+
PiYmIGFyCiAgICAgICAgIGlzSG9yaXpvbnRhbCA/IGFsaWduWCA6IGFsaWduWSwKICAgICAgICAg
aXNIb3Jpem9udGFsID8gYWxpZ25ZIDogYWxpZ25YLAogICAgICAgICBTaG91bGRBbGxvd0Nyb3Nz
T3JpZ2luU2Nyb2xsaW5nOjpObywKLSAgICAgICAgb3B0aW9ucy5iZWhhdmlvci52YWx1ZU9yKFNj
cm9sbEJlaGF2aW9yOjpBdXRvKQorICAgICAgICBvcHRpb25zLmJlaGF2aW9yLnZhbHVlT3IoU2Ny
b2xsQmVoYXZpb3I6OkF1dG8pLAorICAgICAgICBTbW9vdGhTY3JvbGxGZWF0dXJlRW5hYmxlbWVu
dDo6RGVmYXVsdAogICAgIH07CiAgICAgcmVuZGVyZXIoKS0+c2Nyb2xsUmVjdFRvVmlzaWJsZShh
YnNvbHV0ZUJvdW5kcywgaW5zaWRlRml4ZWQsIHZpc2libGVPcHRpb25zKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmNwcAppbmRleCBmMGI0NTFkOWZhNjQ2MTg4ZThhYmMyNjIxNGU3ZGJhNjU5
ZDFlYzBjLi5jOWEzODAyODc4NDJiM2Q0MDFjYTYxZWI5MjExZTVmNDBmYjU0OGM0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC0yNjUsNiArMjY1LDEwIEBAIHZvaWQgVGVtcG9yYXJ5
U2VsZWN0aW9uQ2hhbmdlOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2Vs
ZWN0aW9uKQogICAgICAgICBvcHRpb25zLmFkZChGcmFtZVNlbGVjdGlvbjo6RG9Ob3RTZXRGb2N1
cyk7CiAgICAgaWYgKG1fb3B0aW9ucyAmIFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlvbjo6UmV2ZWFs
U2VsZWN0aW9uKQogICAgICAgICBvcHRpb25zLmFkZChGcmFtZVNlbGVjdGlvbjo6UmV2ZWFsU2Vs
ZWN0aW9uKTsKKyAgICBpZiAobV9vcHRpb25zICYgVGVtcG9yYXJ5U2VsZWN0aW9uT3B0aW9uOjpT
bW9vdGhTY3JvbGwpCisgICAgICAgIG9wdGlvbnMuYWRkKEZyYW1lU2VsZWN0aW9uOjpTbW9vdGhT
Y3JvbGwpOworICAgIGlmIChtX29wdGlvbnMgJiBUZW1wb3JhcnlTZWxlY3Rpb25PcHRpb246Ok92
ZXJyaWRlU21vb3RoU2Nyb2xsRmVhdHVyZUVuYWJsbWVudCkKKyAgICAgICAgb3B0aW9ucy5hZGQo
RnJhbWVTZWxlY3Rpb246Ok92ZXJyaWRlU21vb3RoU2Nyb2xsRmVhdHVyZUVuYWJsZW1lbnQpOwog
ICAgIG1fZG9jdW1lbnQtPnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihzZWxlY3Rpb24sIG9wdGlv
bnMpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAppbmRleCA2OGFkYmQ0M2M1N2Q4ZDBkMmNl
YjgzZTk1MzM4NDIxNzQ2NzcxMDJmLi43OGYzZWM4YWRiYjEyOWI0MzkwNGQ4Y2NjYzhkYzZlNTU4
OTljZjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKQEAgLTExOCw2ICsxMTgsMTAgQEAgZW51
bSBjbGFzcyBUZW1wb3JhcnlTZWxlY3Rpb25PcHRpb24gOiB1aW50OF90IHsKIAogICAgIC8vIEZv
cmNlIHRoZSByZW5kZXIgdHJlZSB0byB1cGRhdGUgc2VsZWN0aW9uIHN0YXRlLiBPbmx5IHJlc3Bl
Y3RlZCBvbiBpT1MuCiAgICAgRW5hYmxlQXBwZWFyYW5jZVVwZGF0ZXMgPSAxIDw8IDMsCisgICAg
CisgICAgU21vb3RoU2Nyb2xsID0gMSA8PCA0LAorICAgIAorICAgIE92ZXJyaWRlU21vb3RoU2Ny
b2xsRmVhdHVyZUVuYWJsbWVudCA9IDEgPDwgNSwKIH07CiAKIGNsYXNzIFRlbXBvcmFyeVNlbGVj
dGlvbkNoYW5nZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2Vs
ZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCmlu
ZGV4IGIxMjJmNjE2NTczNTBhZjlhM2UzODBkOTdjZGFmODMzMDM4ZWZiYWQuLjhmYjA5OTFlYWFh
ODA1N2EyNzczYzNmMDliYzIyMzMzNmRhNTFmMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RnJhbWVTZWxlY3Rpb24uY3BwCkBAIC00NDQsNyArNDQ0LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlv
bjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgT3B0aW9u
U2V0PFMKICAgICBpZiAoZnJhbWVWaWV3ICYmIGZyYW1lVmlldy0+bGF5b3V0Q29udGV4dCgpLmlz
TGF5b3V0UGVuZGluZygpKQogICAgICAgICByZXR1cm47CiAKLSAgICB1cGRhdGVBbmRSZXZlYWxT
ZWxlY3Rpb24oaW50ZW50KTsKKyAgICB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oaW50ZW50LCBv
cHRpb25zLmNvbnRhaW5zKFNtb290aFNjcm9sbCkgPyBTY3JvbGxCZWhhdmlvcjo6U21vb3RoIDog
U2Nyb2xsQmVoYXZpb3I6Okluc3RhbnQsIG9wdGlvbnMuY29udGFpbnMoT3ZlcnJpZGVTbW9vdGhT
Y3JvbGxGZWF0dXJlRW5hYmxlbWVudCkgPyBTbW9vdGhTY3JvbGxGZWF0dXJlRW5hYmxlbWVudDo6
T3ZlcnJpZGUgOiBTbW9vdGhTY3JvbGxGZWF0dXJlRW5hYmxlbWVudDo6RGVmYXVsdCk7CiAKICAg
ICBpZiAob3B0aW9ucyAmIElzVXNlclRyaWdnZXJlZCkgewogICAgICAgICBpZiAoYXV0byogY2xp
ZW50ID0gcHJvdGVjdGVkRG9jdW1lbnQtPmVkaXRvcigpLmNsaWVudCgpKQpAQCAtNDcxLDcgKzQ3
MSw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldE5lZWRzU2VsZWN0aW9uVXBkYXRlKFJldmVh
bFNlbGVjdGlvbkFmdGVyVXBkYXRlIHJldmVhbE1vCiAgICAgICAgIHZpZXctPnNlbGVjdGlvbigp
LmNsZWFyKCk7CiB9CiAKLXZvaWQgRnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNlbGVj
dGlvbihjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCYgaW50ZW50KQordm9pZCBGcmFtZVNl
bGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50JiBpbnRlbnQsIFNjcm9sbEJlaGF2aW9yIHNjcm9sbEJlaGF2aW9yLCBTbW9vdGhTY3Jv
bGxGZWF0dXJlRW5hYmxlbWVudCBvdmVyaWRlRmVhdHVyZUVuYWJsZW1lbnQpCiB7CiAgICAgaWYg
KCFtX3BlbmRpbmdTZWxlY3Rpb25VcGRhdGUpCiAgICAgICAgIHJldHVybjsKQEAgLTQ4OCw3ICs0
ODgsNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oY29u
c3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmIGludAogICAgICAgICBlbHNlCiAgICAgICAgICAg
ICBhbGlnbm1lbnQgPSBtX2Fsd2F5c0FsaWduQ3Vyc29yT25TY3JvbGxXaGVuUmV2ZWFsaW5nU2Vs
ZWN0aW9uID8gU2Nyb2xsQWxpZ25tZW50OjphbGlnblRvcEFsd2F5cyA6IFNjcm9sbEFsaWdubWVu
dDo6YWxpZ25Ub0VkZ2VJZk5lZWRlZDsKIAotICAgICAgICByZXZlYWxTZWxlY3Rpb24obV9zZWxl
Y3Rpb25SZXZlYWxNb2RlLCBhbGlnbm1lbnQsIFJldmVhbEV4dGVudCk7CisgICAgICAgIHJldmVh
bFNlbGVjdGlvbihtX3NlbGVjdGlvblJldmVhbE1vZGUsIGFsaWdubWVudCwgUmV2ZWFsRXh0ZW50
LCBzY3JvbGxCZWhhdmlvciwgb3ZlcmlkZUZlYXR1cmVFbmFibGVtZW50KTsKICAgICB9CiAKICAg
ICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKGludGVudCk7CkBAIC0yMzc4
LDcgKzIzNzgsNyBAQCBIVE1MRm9ybUVsZW1lbnQqIEZyYW1lU2VsZWN0aW9uOjpjdXJyZW50Rm9y
bSgpIGNvbnN0CiAgICAgcmV0dXJuIHNjYW5Gb3JGb3JtKHN0YXJ0KTsKIH0KIAotdm9pZCBGcmFt
ZVNlbGVjdGlvbjo6cmV2ZWFsU2VsZWN0aW9uKFNlbGVjdGlvblJldmVhbE1vZGUgcmV2ZWFsTW9k
ZSwgY29uc3QgU2Nyb2xsQWxpZ25tZW50JiBhbGlnbm1lbnQsIFJldmVhbEV4dGVudE9wdGlvbiBy
ZXZlYWxFeHRlbnRPcHRpb24pCit2b2lkIEZyYW1lU2VsZWN0aW9uOjpyZXZlYWxTZWxlY3Rpb24o
U2VsZWN0aW9uUmV2ZWFsTW9kZSByZXZlYWxNb2RlLCBjb25zdCBTY3JvbGxBbGlnbm1lbnQmIGFs
aWdubWVudCwgUmV2ZWFsRXh0ZW50T3B0aW9uIHJldmVhbEV4dGVudE9wdGlvbiwgU2Nyb2xsQmVo
YXZpb3Igc2Nyb2xsQmVoYXZpb3IsIFNtb290aFNjcm9sbEZlYXR1cmVFbmFibGVtZW50IG92ZXJy
aWRlRmVhdHVyZUVuYWJsZW1lbnQpCiB7CiAgICAgaWYgKHJldmVhbE1vZGUgPT0gU2VsZWN0aW9u
UmV2ZWFsTW9kZTo6RG9Ob3RSZXZlYWwpCiAgICAgICAgIHJldHVybjsKQEAgLTI0MDEsNyArMjQw
MSw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnJldmVhbFNlbGVjdGlvbihTZWxlY3Rpb25SZXZl
YWxNb2RlIHJldmVhbE1vZGUsIGNvbnN0IFNjcm9sCiAgICAgICAgICAgICBpZiAoIW1fc2Nyb2xs
aW5nU3VwcHJlc3NDb3VudCkgewogICAgICAgICAgICAgICAgIGF1dG8qIHNjcm9sbGFibGVBcmVh
ID0gbGF5ZXItPmVuc3VyZUxheWVyU2Nyb2xsYWJsZUFyZWEoKTsKICAgICAgICAgICAgICAgICBz
Y3JvbGxhYmxlQXJlYS0+c2V0QWRqdXN0Rm9ySU9TQ2FyZXRXaGVuU2Nyb2xsaW5nKHRydWUpOwot
ICAgICAgICAgICAgICAgIGxheWVyLT5zY3JvbGxSZWN0VG9WaXNpYmxlKHJlY3QsIGluc2lkZUZp
eGVkLCB7IHJldmVhbE1vZGUsIGFsaWdubWVudCwgYWxpZ25tZW50LCBTaG91bGRBbGxvd0Nyb3Nz
T3JpZ2luU2Nyb2xsaW5nOjpZZXMgfSk7CisgICAgICAgICAgICAgICAgbGF5ZXItPnNjcm9sbFJl
Y3RUb1Zpc2libGUocmVjdCwgaW5zaWRlRml4ZWQsIHsgcmV2ZWFsTW9kZSwgYWxpZ25tZW50LCBh
bGlnbm1lbnQsIFNob3VsZEFsbG93Q3Jvc3NPcmlnaW5TY3JvbGxpbmc6Olllcywgc2Nyb2xsQmVo
YXZpb3IsIG92ZXJyaWRlRmVhdHVyZUVuYWJsZW1lbnR9KTsKICAgICAgICAgICAgICAgICBzY3Jv
bGxhYmxlQXJlYS0+c2V0QWRqdXN0Rm9ySU9TQ2FyZXRXaGVuU2Nyb2xsaW5nKGZhbHNlKTsKICAg
ICAgICAgICAgICAgICB1cGRhdGVBcHBlYXJhbmNlKCk7CiAgICAgICAgICAgICAgICAgaWYgKG1f
ZG9jdW1lbnQtPnBhZ2UoKSkKQEAgLTI0MTIsNyArMjQxMiw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rp
b246OnJldmVhbFNlbGVjdGlvbihTZWxlY3Rpb25SZXZlYWxNb2RlIHJldmVhbE1vZGUsIGNvbnN0
IFNjcm9sCiAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGNvZGUgb25seSBoYW5kbGVzIHNjcm9sbGlu
ZyB0aGUgc3RhcnRDb250YWluZXIncyBsYXllciwgYnV0CiAgICAgICAgIC8vIHRoZSBzZWxlY3Rp
b24gcmVjdCBjb3VsZCBpbnRlcnNlY3QgbW9yZSB0aGFuIGp1c3QgdGhhdC4KICAgICAgICAgLy8g
U2VlIDxyZGFyOi8vcHJvYmxlbS80Nzk5ODk5Pi4KLSAgICAgICAgaWYgKHN0YXJ0LmRlcHJlY2F0
ZWROb2RlKCktPnJlbmRlcmVyKCktPnNjcm9sbFJlY3RUb1Zpc2libGUocmVjdCwgaW5zaWRlRml4
ZWQsIHsgcmV2ZWFsTW9kZSwgYWxpZ25tZW50LCBhbGlnbm1lbnQsIFNob3VsZEFsbG93Q3Jvc3NP
cmlnaW5TY3JvbGxpbmc6OlllcyB9KSkKKyAgICAgICAgaWYgKHN0YXJ0LmRlcHJlY2F0ZWROb2Rl
KCktPnJlbmRlcmVyKCktPnNjcm9sbFJlY3RUb1Zpc2libGUocmVjdCwgaW5zaWRlRml4ZWQsIHsg
cmV2ZWFsTW9kZSwgYWxpZ25tZW50LCBhbGlnbm1lbnQsIFNob3VsZEFsbG93Q3Jvc3NPcmlnaW5T
Y3JvbGxpbmc6Olllcywgc2Nyb2xsQmVoYXZpb3IsIG92ZXJyaWRlRmVhdHVyZUVuYWJsZW1lbnR9
KSkKICAgICAgICAgICAgIHVwZGF0ZUFwcGVhcmFuY2UoKTsKICNlbmRpZgogICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAppbmRleCAzZDA5YWM5YWUwMTljZWI0MGRm
MzUzZWM4NmJiNjM1NWI5OWQxZGU0Li42YmNhN2E4NTZkYzYxMGIwZmYzNWZlMDhiNjA3YjY3YmE5
ZDJlYWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9u
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCkBAIC0zMiw2
ICszMiw3IEBACiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIkxheW91dFJlY3QuaCIK
ICNpbmNsdWRlICJTY3JvbGxBbGlnbm1lbnQuaCIKKyNpbmNsdWRlICJTY3JvbGxCZWhhdmlvci5o
IgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVNlbGVjdGlvbi5oIgogI2lu
Y2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtMTIyLDYgKzEyMyw4IEBAIHB1YmxpYzoKICAg
ICAgICAgSXNVc2VyVHJpZ2dlcmVkID0gMSA8PCA2LAogICAgICAgICBSZXZlYWxTZWxlY3Rpb24g
PSAxIDw8IDcsCiAgICAgICAgIFJldmVhbFNlbGVjdGlvblVwVG9NYWluRnJhbWUgPSAxIDw8IDgs
CisgICAgICAgIFNtb290aFNjcm9sbCA9IDEgPDwgOSwKKyAgICAgICAgT3ZlcnJpZGVTbW9vdGhT
Y3JvbGxGZWF0dXJlRW5hYmxlbWVudCA9IDEgPDwgMTAKICAgICB9OwogICAgIHN0YXRpYyBjb25z
dGV4cHIgT3B0aW9uU2V0PFNldFNlbGVjdGlvbk9wdGlvbj4gZGVmYXVsdFNldFNlbGVjdGlvbk9w
dGlvbnMoRVVzZXJUcmlnZ2VyZWQgPSBOb3RVc2VyVHJpZ2dlcmVkKTsKIApAQCAtMjQ1LDcgKzI0
OCw3IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIEhUTUxGb3JtRWxlbWVudCogY3Vy
cmVudEZvcm0oKSBjb25zdDsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmV2ZWFsU2VsZWN0
aW9uKFNlbGVjdGlvblJldmVhbE1vZGUgPSBTZWxlY3Rpb25SZXZlYWxNb2RlOjpSZXZlYWwsIGNv
bnN0IFNjcm9sbEFsaWdubWVudCYgPSBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduQ2VudGVySWZOZWVk
ZWQsIFJldmVhbEV4dGVudE9wdGlvbiA9IERvTm90UmV2ZWFsRXh0ZW50KTsKKyAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHJldmVhbFNlbGVjdGlvbihTZWxlY3Rpb25SZXZlYWxNb2RlID0gU2VsZWN0
aW9uUmV2ZWFsTW9kZTo6UmV2ZWFsLCBjb25zdCBTY3JvbGxBbGlnbm1lbnQmID0gU2Nyb2xsQWxp
Z25tZW50OjphbGlnbkNlbnRlcklmTmVlZGVkLCBSZXZlYWxFeHRlbnRPcHRpb24gPSBEb05vdFJl
dmVhbEV4dGVudCwgU2Nyb2xsQmVoYXZpb3IgPSBTY3JvbGxCZWhhdmlvcjo6SW5zdGFudCwgU21v
b3RoU2Nyb2xsRmVhdHVyZUVuYWJsZW1lbnQgPSBTbW9vdGhTY3JvbGxGZWF0dXJlRW5hYmxlbWVu
dDo6RGVmYXVsdCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTZWxlY3Rpb25Gcm9tTm9u
ZSgpOwogCiAgICAgYm9vbCBzaG91bGRTaG93QmxvY2tDdXJzb3IoKSBjb25zdCB7IHJldHVybiBt
X3Nob3VsZFNob3dCbG9ja0N1cnNvcjsgfQpAQCAtMjYwLDcgKzI2Myw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHVwZGF0ZUZyb21Bc3NvY2lhdGVkTGl2ZVJhbmdlKCk7CiAKIHByaXZhdGU6Ci0gICAg
dm9pZCB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQmKTsKKyAgICB2b2lkIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbihjb25zdCBBWFRleHRTdGF0
ZUNoYW5nZUludGVudCYsIFNjcm9sbEJlaGF2aW9yID0gU2Nyb2xsQmVoYXZpb3I6Okluc3RhbnQs
IFNtb290aFNjcm9sbEZlYXR1cmVFbmFibGVtZW50ID0gU21vb3RoU2Nyb2xsRmVhdHVyZUVuYWJs
ZW1lbnQ6Ok92ZXJyaWRlKTsKICAgICB2b2lkIHVwZGF0ZURhdGFEZXRlY3RvcnNGb3JTZWxlY3Rp
b24oKTsKIAogICAgIGJvb2wgc2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShj
b25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgT3B0aW9uU2V0PFNldFNlbGVjdGlvbk9wdGlvbj4sIEN1
cnNvckFsaWduT25TY3JvbGwsIFRleHRHcmFudWxhcml0eSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1Njcm9sbEJlaGF2aW9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Ny
b2xsQmVoYXZpb3IuY3BwCmluZGV4IDg1MWM1OGUyNWE1NWE2NWMyOTFhMGJkMzk0M2JiMzA2YTM5
YzBhNzguLmZiZGE1MTA1MWYyMmJjN2MwOThmNTNmNTI0YTNiZGMxYmVkM2QyOGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsQmVoYXZpb3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2Nyb2xsQmVoYXZpb3IuY3BwCkBAIC0zMyw3ICszMyw3IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotYm9vbCB1c2VTbW9vdGhTY3JvbGxpbmcoU2Nyb2xsQmVoYXZpb3Ig
YmVoYXZpb3IsIEVsZW1lbnQqIGFzc29jaWF0ZWRFbGVtZW50KQorYm9vbCB1c2VTbW9vdGhTY3Jv
bGxpbmcoU2Nyb2xsQmVoYXZpb3IgYmVoYXZpb3IsIEVsZW1lbnQqIGFzc29jaWF0ZWRFbGVtZW50
LCBTbW9vdGhTY3JvbGxGZWF0dXJlRW5hYmxlbWVudCBvdmVycmlkZUZlYXR1cmVFbmFibGVtZW50
KQogewogICAgIGlmICghYXNzb2NpYXRlZEVsZW1lbnQpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
QEAgLTQzLDcgKzQzLDcgQEAgYm9vbCB1c2VTbW9vdGhTY3JvbGxpbmcoU2Nyb2xsQmVoYXZpb3Ig
YmVoYXZpb3IsIEVsZW1lbnQqIGFzc29jaWF0ZWRFbGVtZW50KQogICAgIGlmIChhc3NvY2lhdGVk
RWxlbWVudCA9PSBhc3NvY2lhdGVkRWxlbWVudC0+ZG9jdW1lbnQoKS5zY3JvbGxpbmdFbGVtZW50
KCkpCiAgICAgICAgIGFzc29jaWF0ZWRFbGVtZW50ID0gYXNzb2NpYXRlZEVsZW1lbnQtPmRvY3Vt
ZW50KCkuZG9jdW1lbnRFbGVtZW50KCk7CiAKLSAgICBpZiAoIWFzc29jaWF0ZWRFbGVtZW50LT5y
ZW5kZXJlcigpIHx8ICFhc3NvY2lhdGVkRWxlbWVudC0+ZG9jdW1lbnQoKS5zZXR0aW5ncygpLkNT
U09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQoKSkKKyAgICBpZiAoIWFzc29jaWF0ZWRFbGVt
ZW50LT5yZW5kZXJlcigpIHx8IChvdmVycmlkZUZlYXR1cmVFbmFibGVtZW50ID09IFNtb290aFNj
cm9sbEZlYXR1cmVFbmFibGVtZW50OjpEZWZhdWx0ICYmICFhc3NvY2lhdGVkRWxlbWVudC0+ZG9j
dW1lbnQoKS5zZXR0aW5ncygpLkNTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWQoKSkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9j
c3NvbS12aWV3LyNzY3JvbGxpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Ny
b2xsQmVoYXZpb3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Nyb2xsQmVoYXZpb3IuaAppbmRl
eCBlZWU4MmUzMTA4ZGRkM2FmNGE2YWVkZTAwY2Q1NjNiNzFkMTA0OWE4Li5jY2JhMzA5YzcwZWM0
YjlhYTE1MzFhOTkzODQ4YjUzOWU4YTcwY2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1Njcm9sbEJlaGF2aW9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JvbGxCZWhh
dmlvci5oCkBAIC0zNSw2ICszNSw4IEBAIGVudW0gY2xhc3MgU2Nyb2xsQmVoYXZpb3IgOiB1aW50
OF90IHsKICAgICBTbW9vdGgKIH07CiAKLWJvb2wgdXNlU21vb3RoU2Nyb2xsaW5nKFNjcm9sbEJl
aGF2aW9yLCBFbGVtZW50KiBhc3NvY2lhdGVkRWxlbWVudCk7CitlbnVtIGNsYXNzIFNtb290aFNj
cm9sbEZlYXR1cmVFbmFibGVtZW50IDogYm9vbCB7IERlZmF1bHQsIE92ZXJyaWRlIH07CisKK2Jv
b2wgdXNlU21vb3RoU2Nyb2xsaW5nKFNjcm9sbEJlaGF2aW9yLCBFbGVtZW50KiBhc3NvY2lhdGVk
RWxlbWVudCwgU21vb3RoU2Nyb2xsRmVhdHVyZUVuYWJsZW1lbnQgPSBTbW9vdGhTY3JvbGxGZWF0
dXJlRW5hYmxlbWVudDo6RGVmYXVsdCk7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IGFiODI5ZjZhYjdmMGY5Y2My
ZDI2NjVhYTRiYWVmNWZjMjI0ZjIwNjQuLjI5YzYzODY3ODQxY2FhNDI4YzE3ZWIyMTRiYTFjZGNm
ZGVkZWUwYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAt
MjQwNyw3ICsyNDA3LDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsUmVjdFRvVmlzaWJsZShj
b25zdCBMYXlvdXRSZWN0JiBhYnNvbHV0ZVJlY3QsIGJvb2wgaW5zaWQKICAgICBhdXRvIHNjcm9s
bFBvc2l0aW9uQ2hhbmdlT3B0aW9uc0ZvckVsZW1lbnQgPSBbdGhpcywgb3B0aW9uc10oRWxlbWVu
dCogZWxlbWVudCkKICAgICB7CiAgICAgICAgIGF1dG8gc2Nyb2xsUG9zaXRpb25PcHRpb25zID0g
U2Nyb2xsUG9zaXRpb25DaGFuZ2VPcHRpb25zOjpjcmVhdGVQcm9ncmFtbWF0aWMoKTsKLSAgICAg
ICAgaWYgKCFyZW5kZXJlcigpLmZyYW1lKCkuZXZlbnRIYW5kbGVyKCkuYXV0b3Njcm9sbEluUHJv
Z3Jlc3MoKSAmJiBlbGVtZW50ICYmIHVzZVNtb290aFNjcm9sbGluZyhvcHRpb25zLmJlaGF2aW9y
LCBlbGVtZW50KSkKKyAgICAgICAgaWYgKCFyZW5kZXJlcigpLmZyYW1lKCkuZXZlbnRIYW5kbGVy
KCkuYXV0b3Njcm9sbEluUHJvZ3Jlc3MoKSAmJiBlbGVtZW50ICYmIHVzZVNtb290aFNjcm9sbGlu
ZyhvcHRpb25zLmJlaGF2aW9yLCBlbGVtZW50LCBvcHRpb25zLm92ZXJyaWRlRmVhdHVyZUVuYWJs
ZW1lbnQpKQogICAgICAgICAgICAgc2Nyb2xsUG9zaXRpb25PcHRpb25zLmFuaW1hdGVkID0gQW5p
bWF0ZWRTY3JvbGw6OlllczsKICAgICAgICAgcmV0dXJuIHNjcm9sbFBvc2l0aW9uT3B0aW9uczsK
ICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRleCAxMGVhODFi
YmM0OWZiNWI5NzU2NWRhNTEwNzQ4YmM0ZDY3MDU2MTBmLi40Yjk5ZDgxMTk3MzExNjdiYmNmNzBj
Yjc3NDQyOGM3ZGVmNjgyZDY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
aApAQCAtMTQxLDYgKzE0MSw3IEBAIHN0cnVjdCBTY3JvbGxSZWN0VG9WaXNpYmxlT3B0aW9ucyB7
CiAgICAgY29uc3QgU2Nyb2xsQWxpZ25tZW50JiBhbGlnblkgeyBTY3JvbGxBbGlnbm1lbnQ6OmFs
aWduQ2VudGVySWZOZWVkZWQgfTsKICAgICBTaG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5n
IHNob3VsZEFsbG93Q3Jvc3NPcmlnaW5TY3JvbGxpbmcgeyBTaG91bGRBbGxvd0Nyb3NzT3JpZ2lu
U2Nyb2xsaW5nOjpObyB9OwogICAgIFNjcm9sbEJlaGF2aW9yIGJlaGF2aW9yIHsgU2Nyb2xsQmVo
YXZpb3I6OkF1dG8gfTsKKyAgICBTbW9vdGhTY3JvbGxGZWF0dXJlRW5hYmxlbWVudCBvdmVycmlk
ZUZlYXR1cmVFbmFibGVtZW50IHsgU21vb3RoU2Nyb2xsRmVhdHVyZUVuYWJsZW1lbnQ6OkRlZmF1
bHQgfTsKIH07CiAKIHVzaW5nIFNjcm9sbGluZ1Njb3BlID0gdWludDY0X3Q7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>