<?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>197372</bug_id>
          
          <creation_ts>2019-04-29 09:38:02 -0700</creation_ts>
          <short_desc>Assertion fires when animating the &apos;class&apos; attribute of an SVG element</short_desc>
          <delta_ts>2019-12-02 14:06:19 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=204766</see_also>
          <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="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dean_johnson</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1531172</commentid>
    <comment_count>0</comment_count>
      <attachid>368462</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-04-29 09:38:02 -0700</bug_when>
    <thetext>Created attachment 368462
test case

Open the attached test case in a debug build. The following assertion will fire:


0x0000000120fa93ee in ::WTFCrash() at /Volumes/Data/WebKit/OpenSource/Source/WTF/wtf/Assertions.cpp:305
0x000000010bdeb929 in WebCore::SVGAnimatedPrimitiveProperty&lt;WTF::String&gt;::currentValue() const at /Volumes/Data/WebKit/OpenSource/Source/WebCore/svg/properties/SVGAnimatedPrimitiveProperty.h:103
0x000000010d9fe692 in WebCore::SVGElement::className() const at /Volumes/Data/WebKit/OpenSource/Source/WebCore/svg/SVGElement.h:149
0x000000010d9fe572 in WebCore::SVGElement::svgAttributeChanged(WebCore::QualifiedName const&amp;) at /Volumes/Data/WebKit/OpenSource/Source/WebCore/svg/SVGElement.cpp:858
0x000000010db39d75 in WebCore::SVGGraphicsElement::svgAttributeChanged(WebCore::QualifiedName const&amp;) at /Volumes/Data/WebKit/OpenSource/Source/WebCore/svg/SVGGraphicsElement.cpp:150
0x000000010db3aea2 in WebCore::SVGGeometryElement::svgAttributeChanged(WebCore::QualifiedName const&amp;) at /Volumes/Data/WebKit/OpenSource/Source/WebCore/svg/SVGGeometryElement.cpp:116
0x000000010dbf9c38 in WebCore::SVGRectElement::svgAttributeChanged(WebCore::QualifiedName const&amp;) at /Volumes/Data/WebKit/OpenSource/Source/WebCore/svg/SVGRectElement.cpp:87
0x000000010dce07bd in WebCore::SVGAttributeAnimator::applyAnimatedPropertyChange(WebCore::SVGElement*, WebCore::QualifiedName const&amp;) at /Volumes/Data/WebKit/OpenSource/Source/WebCore/svg/properties/SVGAttributeAnimator.cpp:100
0x000000010dce09ab in WebCore::SVGAttributeAnimator::applyAnimatedPropertyChange(WebCore::SVGElement*) at /Volumes/Data/WebKit/OpenSource/Source/WebCore/svg/properties/SVGAttributeAnimator.cpp:117
0x000000010d97d6fb in WebCore::SVGAnimatedPropertyAnimator&lt;WebCore::SVGAnimatedPrimitiveProperty&lt;WTF::String&gt;, WebCore::SVGAnimationStringFunction&gt;::apply(WebCore::SVGElement*) at /Volumes/Data/WebKit/OpenSource/Source/WebCore/svg/properties/SVGAnimatedPropertyAnimator.h:80
0x000000010d968202 in WebCore::SVGAnimateElementBase::applyResultsToTarget() at /Volumes/Data/WebKit/OpenSource/Source/WebCore/svg/SVGAnimateElementBase.cpp:176
0x000000010dcb678d in WebCore::SMILTimeContainer::updateAnimations(WebCore::SMILTime, bool) at /Volumes/Data/WebKit/OpenSource/Source/WebCore/svg/animation/SMILTimeContainer.cpp:321
0x000000010dcb6020 in WebCore::SMILTimeContainer::begin() at /Volumes/Data/WebKit/OpenSource/Source/WebCore/svg/animation/SMILTimeContainer.cpp:138
0x000000010d9f5fa1 in WebCore::SVGDocumentExtensions::startAnimations() at /Volumes/Data/WebKit/OpenSource/Source/WebCore/svg/SVGDocumentExtensions.cpp:97
0x000000010c3a65ca in WebCore::Document::implicitClose() at /Volumes/Data/WebKit/OpenSource/Source/WebCore/dom/Document.cpp:3007

This is a regression of removing the SVG tear off objects. But the attached text did not work correctly before removing them also.

The assertion fires because the animated primitive property do not share the animVal with all its instances.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1531174</commentid>
    <comment_count>1</comment_count>
      <attachid>368463</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-04-29 09:50:07 -0700</bug_when>
    <thetext>Created attachment 368463
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1531175</commentid>
    <comment_count>2</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-04-29 09:52:27 -0700</bug_when>
    <thetext>&lt;rdar://problem/50225885&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541278</commentid>
    <comment_count>3</comment_count>
      <attachid>371199</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-06-03 11:42:58 -0700</bug_when>
    <thetext>Created attachment 371199
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547847</commentid>
    <comment_count>4</comment_count>
      <attachid>371199</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-06-25 15:53:00 -0700</bug_when>
    <thetext>Comment on attachment 371199
Patch

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

&gt; Source/WebCore/svg/properties/SVGAnimatedPrimitiveProperty.h:155
&gt; -    mutable Optional&lt;PropertyType&gt; m_animVal;
&gt; +    mutable std::shared_ptr&lt;PropertyType&gt; m_animVal;

We don&apos;t use shared_Ptr anywhere else in our codebase.
Can we just wrap PropertyType in some RefCounted object? Like SharedPropertyType?
e.g. class SharedPropertyType : public RefCounted&lt;SharedPropertyType&gt; public PropertyType { }
This would avoid an extra malloc for shared_ptr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549346</commentid>
    <comment_count>5</comment_count>
      <attachid>373269</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-07-01 14:51:50 -0700</bug_when>
    <thetext>Created attachment 373269
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549389</commentid>
    <comment_count>6</comment_count>
      <attachid>373269</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-07-01 16:53:11 -0700</bug_when>
    <thetext>Comment on attachment 373269
Patch

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

&gt; Source/WebCore/ChangeLog:24
&gt; +        -- Add a special case for the &apos;class&apos; attribute to invalidate the style
&gt; +           of the target element when its animVal changes.

To me, this doesn’t seem like the right solution. Knowledge about which DOM attributes have effect on style should not be concentrated in the SVGAttributeAnimator class. Instead that knowledge should live in the DOM classes themselves. I’m puzzled at the choice to add this special case here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549746</commentid>
    <comment_count>7</comment_count>
      <attachid>373365</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-07-02 15:37:50 -0700</bug_when>
    <thetext>Created attachment 373365
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549750</commentid>
    <comment_count>8</comment_count>
      <attachid>373365</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-07-02 15:40:59 -0700</bug_when>
    <thetext>Comment on attachment 373365
Patch

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

&gt; Source/WebCore/svg/properties/SVGPrimitiveProperty.h:33
&gt; +class SVGPrimitiveProperty : public SVGProperty {

Maybe SVGSharedPrimitiveProperty?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549751</commentid>
    <comment_count>9</comment_count>
      <attachid>373269</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-07-02 15:41:30 -0700</bug_when>
    <thetext>Comment on attachment 373269
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:24
&gt;&gt; +           of the target element when its animVal changes.
&gt; 
&gt; To me, this doesn’t seem like the right solution. Knowledge about which DOM attributes have effect on style should not be concentrated in the SVGAttributeAnimator class. Instead that knowledge should live in the DOM classes themselves. I’m puzzled at the choice to add this special case here.

I moved the special handling to SVGAnimatedStringAnimator because we need to check whether the attribute&apos;s name is equal to &apos;class&apos; or not. The SVGAnimatedString is not suitable because it does not know about the attribute&apos;s name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549778</commentid>
    <comment_count>10</comment_count>
      <attachid>373371</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-07-02 16:42:49 -0700</bug_when>
    <thetext>Created attachment 373371
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549792</commentid>
    <comment_count>11</comment_count>
      <attachid>373373</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-07-02 17:01:54 -0700</bug_when>
    <thetext>Created attachment 373373
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549799</commentid>
    <comment_count>12</comment_count>
      <attachid>373373</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-02 18:42:05 -0700</bug_when>
    <thetext>Comment on attachment 373373
Patch

Clearing flags on attachment: 373373

Committed r247085: &lt;https://trac.webkit.org/changeset/247085&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549800</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-02 18:42:07 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>368462</attachid>
            <date>2019-04-29 09:38:02 -0700</date>
            <delta_ts>2019-04-29 09:38:02 -0700</delta_ts>
            <desc>test case</desc>
            <filename>animated-string-class-instances.svg</filename>
            <type>image/svg+xml</type>
            <size>513</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGRlc2M+VGVzdCB0
aGF0IHRoZSBpbnN0YW5jZSBvZiB0aGUgJ2NsYXNzJyBhdHRyaWJ1dGUgaXMgYW5pbWF0ZWQgYW5k
IGl0cyByZW5kZXJlciBpcyBpbnZhbGlkYXRlZCBjb3JyZWN0bHkuPC9kZXNjPgogICAgPHN0eWxl
PgogICAgICAgIC5yZWQtZmlsbCB7CiAgICAgICAgICAgIGZpbGw6IHJlZDsKICAgICAgICB9CiAg
ICAgICAgLmdyZWVuLWZpbGwgewogICAgICAgICAgICBmaWxsOiBncmVlbjsKICAgICAgICB9CiAg
ICA8L3N0eWxlPgogICAgPGRlZj4KICAgICAgICA8cmVjdCBpZD0icmVjdCIgd2lkdGg9IjEwMCIg
aGVpZ2h0PSIxMDAiIGNsYXNzPSJyZWQtZmlsbCI+CiAgICAgICAgICAgIDxzZXQgaWQ9ImdyZWVu
IiBhdHRyaWJ1dGVOYW1lPSJjbGFzcyIgdG89ImdyZWVuLWZpbGwiIGZpbGw9ImZyZWV6ZSIvPgog
ICAgICAgIDwvcmVjdD4KICAgIDwvZGVmPgogICAgPHVzZSBocmVmPSIjcmVjdCIvPgo8L3N2Zz4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>368463</attachid>
            <date>2019-04-29 09:50:07 -0700</date>
            <delta_ts>2019-06-03 11:42:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197372-20190429095006.patch</filename>
            <type>text/plain</type>
            <size>11358</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0NDcxMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBACisyMDE5LTA0LTI2ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQXNzZXJ0aW9u
IGZpcmVzIHdoZW4gYW5pbWF0aW5nIHRoZSAnY2xhc3MnIGF0dHJpYnV0ZSBvZiBhbiBTVkcgZWxl
bWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3
MzcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWxs
IGluc3RhbmNlcyBvZiBTVkcgYW5pbWF0ZWQgcHJvcGVydGllcyBoYXZlIHRvIHNoYXJlIGEgc2lu
Z2xlIGFuaW1WYWwKKyAgICAgICAgc3VjaCB0aGF0IG9uY2UgaXRzIHZhbHVlIGlzIHByb2dyZXNz
ZWQsIGFsbCB0aGUgaW5zdGFuY2VzIHdpbGwgc2VlIHRoZQorICAgICAgICBjaGFuZ2UuIFRoaXMg
d2FzIG5vdCBoYXBwZW5pbmcgZm9yIFNWR0FuaW1hdGVkUHJpbWl0aXZlUHJvcGVydHkuIFRvIGRv
CisgICAgICAgIHRoYXQgd2UgbmVlZCB0bzoKKworICAgICAgICAtLSBPdmVycmlkZSB0aGUgdmly
dHVhbCBtZXRob2RzIGluc3RhbmNlU3RhcnRBbmltYXRpb24oKSBhbmQKKyAgICAgICAgICAgaW5z
dGFuY2VTdG9wQW5pbWF0aW9uKCkuIAorICAgICAgICAtLSBDaGFuZ2UgdGhlIHR5cGUgb2YgbV9h
bmltVmFsIGZyb20gT3B0aW9uYWwgdG8gc3RkOjpzaGFyZWRfcHRyPD4uIFNvCisgICAgICAgICAg
IHRoZSBtYXN0ZXIgcHJvcGVydHkgd2lsbCBjcmVhdGUgaXQgYW5kIGFsbCB0aGUgaW5zdGFuY2Vz
IHdpbGwgaG9sZAorICAgICAgICAgICB0aGUgc2FtZSBtYXN0ZXIgcG9pbnRlci4KKyAgICAgICAg
LS0gQWRkIGEgc3BlY2lhbCBjYXNlIGZvciB0aGUgJ2NsYXNzJyBhdHRyaWJ1dGUgdG8gaW52YWxp
ZGF0ZSB0aGUgc3R5bGUKKyAgICAgICAgICAgb2YgdGhlIHRhcmdldCBlbGVtZW50IHdoZW4gaXRz
IGFuaW1WYWwgY2hhbmdlcy4KKworICAgICAgICBUZXN0czogc3ZnL2FuaW1hdGlvbnMvYW5pbWF0
ZWQtc3RyaW5nLWNsYXNzLWluc3RhbmNlcy5zdmcKKyAgICAgICAgICAgICAgIHN2Zy9hbmltYXRp
b25zL2FuaW1hdGVkLXN0cmluZy1ocmVmLnN2ZworCisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMv
U1ZHQW5pbWF0ZWRQcmltaXRpdmVQcm9wZXJ0eS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZWRQcmltaXRpdmVQcm9wZXJ0eTo6c2V0QW5pbVZhbCk6CisgICAgICAgICogc3ZnL3Byb3Bl
cnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eUFuaW1hdG9yLmg6CisgICAgICAgICogc3ZnL3Byb3Bl
cnRpZXMvU1ZHQXR0cmlidXRlQW5pbWF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQXR0
cmlidXRlQW5pbWF0b3I6Om5lZWRJbnZhbGlkYXRlU3R5bGVBbmlhbXRvciBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdBdHRyaWJ1dGVBbmltYXRvcjo6aW52YWxpZGF0ZVN0eWxlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0F0dHJpYnV0ZUFuaW1hdG9yOjphcHBseUFuaW1hdGVkU3R5bGVQ
cm9wZXJ0eUNoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBdHRyaWJ1dGVBbmltYXRvcjo6
cmVtb3ZlQW5pbWF0ZWRTdHlsZVByb3BlcnR5KToKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9T
VkdBdHRyaWJ1dGVBbmltYXRvci5oOgorCiAyMDE5LTA0LTI2ICBDb21taXQgUXVldWUgIDxjb21t
aXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCBy
MjQ0NzA4LgpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQ
cmltaXRpdmVQcm9wZXJ0eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9w
ZXJ0aWVzL1NWR0FuaW1hdGVkUHJpbWl0aXZlUHJvcGVydHkuaAkocmV2aXNpb24gMjQ0NTAxKQor
KysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcmltaXRpdmVQcm9w
ZXJ0eS5oCSh3b3JraW5nIGNvcHkpCkBAIC02MCw4ICs2MCw4IEBAIHB1YmxpYzoKICAgICAvLyBV
c2VkIGJ5IFNWR0F0dHJpYnV0ZUFuaW1hdG9yOjpwcm9ncmVzcy4KICAgICB2b2lkIHNldEFuaW1W
YWwoY29uc3QgUHJvcGVydHlUeXBlJiBhbmltVmFsKQogICAgIHsKLSAgICAgICAgQVNTRVJUKGlz
QW5pbWF0aW5nKCkpOwotICAgICAgICBtX2FuaW1WYWwgPSBhbmltVmFsOworICAgICAgICBBU1NF
UlQoaXNBbmltYXRpbmcoKSAmJiBtX2FuaW1WYWwpOworICAgICAgICAqbV9hbmltVmFsID0gYW5p
bVZhbDsKICAgICB9CiAKICAgICBjb25zdCBQcm9wZXJ0eVR5cGUmIGFuaW1WYWwoKSBjb25zdApA
QCAtODIsNyArODIsNyBAQCBwdWJsaWM6CiAgICAgLy8gVXNlZCB0byBhcHBseSB0aGUgU1ZHQXR0
cmlidXRlQW5pbWF0b3IgY2hhbmdlIHRvIHRoZSB0YXJnZXQgZWxlbWVudC4KICAgICBTdHJpbmcg
YW5pbVZhbEFzU3RyaW5nKCkgY29uc3Qgb3ZlcnJpZGUKICAgICB7Ci0gICAgICAgIEFTU0VSVChp
c0FuaW1hdGluZygpICYmICEhbV9hbmltVmFsKTsKKyAgICAgICAgQVNTRVJUKGlzQW5pbWF0aW5n
KCkgJiYgbV9hbmltVmFsKTsKICAgICAgICAgcmV0dXJuIFNWR1Byb3BlcnR5VHJhaXRzPFByb3Bl
cnR5VHlwZT46OnRvU3RyaW5nKCptX2FuaW1WYWwpOwogICAgIH0KIApAQCAtMTA5LDcgKzEwOSw3
IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIGlmIChpc0FuaW1hdGluZygpKQogICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICBtX2FuaW1WYWwgPSBtX2Jhc2VWYWw7CisgICAgICAgIG1fYW5p
bVZhbCA9IHN0ZDo6bWFrZV9zaGFyZWQ8UHJvcGVydHlUeXBlPihtX2Jhc2VWYWwpOwogICAgICAg
ICBTVkdBbmltYXRlZFByb3BlcnR5OjpzdGFydEFuaW1hdGlvbigpOwogICAgIH0KIApAQCAtMTE3
LDEwICsxMTcsMjcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgaWYgKCFpc0FuaW1hdGluZygp
KQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBtX2FuaW1WYWwgPSBXVEY6Om51bGxvcHQ7
CisgICAgICAgIG1fYW5pbVZhbCA9IG51bGxwdHI7CiAgICAgICAgIFNWR0FuaW1hdGVkUHJvcGVy
dHk6OnN0b3BBbmltYXRpb24oKTsKICAgICB9CiAKKyAgICAvLyBDb250cm9sbGluZyB0aGUgaW5z
dGFuY2UgYW5pbWF0aW9uLgorICAgIHZvaWQgaW5zdGFuY2VTdGFydEFuaW1hdGlvbihTVkdBbmlt
YXRlZFByb3BlcnR5JiBhbmltYXRlZCkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIGlmIChpc0Fu
aW1hdGluZygpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBtX2FuaW1WYWwgPSBzdGF0
aWNfY2FzdDxTVkdBbmltYXRlZFByaW1pdGl2ZVByb3BlcnR5Jj4oYW5pbWF0ZWQpLm1fYW5pbVZh
bDsKKyAgICAgICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6aW5zdGFuY2VTdGFydEFuaW1hdGlvbihh
bmltYXRlZCk7CisgICAgfQorCisgICAgdm9pZCBpbnN0YW5jZVN0b3BBbmltYXRpb24oKSBvdmVy
cmlkZQorICAgIHsKKyAgICAgICAgaWYgKCFpc0FuaW1hdGluZygpKQorICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICBtX2FuaW1WYWwgPSBudWxscHRyOworICAgICAgICBTVkdBbmltYXRlZFBy
b3BlcnR5OjppbnN0YW5jZVN0b3BBbmltYXRpb24oKTsKKyAgICB9CisKIHByb3RlY3RlZDoKICAg
ICBTVkdBbmltYXRlZFByaW1pdGl2ZVByb3BlcnR5KFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50
KQogICAgICAgICA6IFNWR0FuaW1hdGVkUHJvcGVydHkoY29udGV4dEVsZW1lbnQpCkBAIC0xMzUs
NyArMTUyLDcgQEAgcHJvdGVjdGVkOgogICAgIH0KIAogICAgIFByb3BlcnR5VHlwZSBtX2Jhc2VW
YWw7Ci0gICAgbXV0YWJsZSBPcHRpb25hbDxQcm9wZXJ0eVR5cGU+IG1fYW5pbVZhbDsKKyAgICBt
dXRhYmxlIHN0ZDo6c2hhcmVkX3B0cjxQcm9wZXJ0eVR5cGU+IG1fYW5pbVZhbDsKICAgICBTVkdQ
cm9wZXJ0eVN0YXRlIG1fc3RhdGUgeyBTVkdQcm9wZXJ0eVN0YXRlOjpDbGVhbiB9OwogfTsKIApJ
bmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eUFu
aW1hdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZH
QW5pbWF0ZWRQcm9wZXJ0eUFuaW1hdG9yLmgJKHJldmlzaW9uIDI0NDUwMSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlBbmltYXRvci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC03Nyw2ICs3Nyw4IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIGlmIChp
c0FuaW1hdGVkU3R5bGVQcm9wZXJ0eUFuaWFtdG9yKHRhcmdldEVsZW1lbnQpKQogICAgICAgICAg
ICAgYXBwbHlBbmltYXRlZFN0eWxlUHJvcGVydHlDaGFuZ2UodGFyZ2V0RWxlbWVudCwgbV9hbmlt
YXRlZC0+YW5pbVZhbEFzU3RyaW5nKCkpOworICAgICAgICBlbHNlIGlmIChpc0FuaW1hdGVkU3R5
bGVDbGFzc0FuaWFtdG9yKCkpCisgICAgICAgICAgICBpbnZhbGlkYXRlU3R5bGUodGFyZ2V0RWxl
bWVudCk7CiAgICAgICAgIGFwcGx5QW5pbWF0ZWRQcm9wZXJ0eUNoYW5nZSh0YXJnZXRFbGVtZW50
KTsKICAgICB9CiAKQEAgLTkyLDYgKzk0LDggQEAgcHVibGljOgogICAgICAgICBhcHBseUFuaW1h
dGVkUHJvcGVydHlDaGFuZ2UodGFyZ2V0RWxlbWVudCk7CiAgICAgICAgIGlmIChpc0FuaW1hdGVk
U3R5bGVQcm9wZXJ0eUFuaWFtdG9yKHRhcmdldEVsZW1lbnQpKQogICAgICAgICAgICAgcmVtb3Zl
QW5pbWF0ZWRTdHlsZVByb3BlcnR5KHRhcmdldEVsZW1lbnQpOworICAgICAgICBlbHNlIGlmIChp
c0FuaW1hdGVkU3R5bGVDbGFzc0FuaWFtdG9yKCkpCisgICAgICAgICAgICBpbnZhbGlkYXRlU3R5
bGUodGFyZ2V0RWxlbWVudCk7CiAgICAgfQogCiAgICAgT3B0aW9uYWw8ZmxvYXQ+IGNhbGN1bGF0
ZURpc3RhbmNlKFNWR0VsZW1lbnQqIHRhcmdldEVsZW1lbnQsIGNvbnN0IFN0cmluZyYgZnJvbSwg
Y29uc3QgU3RyaW5nJiB0bykgY29uc3Qgb3ZlcnJpZGUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9wcm9wZXJ0aWVzL1NWR0F0dHJpYnV0ZUFuaW1hdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBdHRyaWJ1dGVBbmltYXRvci5jcHAJKHJldmlz
aW9uIDI0NDUwMSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0F0dHJpYnV0
ZUFuaW1hdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsMTkgKzI4LDMyIEBACiAKICNpbmNs
dWRlICJDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uaCIKICNpbmNsdWRlICJDU1NQcm9wZXJ0
eVBhcnNlci5oIgorI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIlNWR0VsZW1lbnQu
aCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitib29sIFNWR0F0dHJpYnV0ZUFuaW1hdG9yOjpp
c0FuaW1hdGVkU3R5bGVDbGFzc0FuaWFtdG9yKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9hdHRy
aWJ1dGVOYW1lLm1hdGNoZXMoSFRNTE5hbWVzOjpjbGFzc0F0dHIpOworfQorCiBib29sIFNWR0F0
dHJpYnV0ZUFuaW1hdG9yOjppc0FuaW1hdGVkU3R5bGVQcm9wZXJ0eUFuaWFtdG9yKGNvbnN0IFNW
R0VsZW1lbnQqIHRhcmdldEVsZW1lbnQpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHRhcmdldEVsZW1l
bnQtPmlzQW5pbWF0ZWRTdHlsZUF0dHJpYnV0ZShtX2F0dHJpYnV0ZU5hbWUpOwogfQogCit2b2lk
IFNWR0F0dHJpYnV0ZUFuaW1hdG9yOjppbnZhbGlkYXRlU3R5bGUoU1ZHRWxlbWVudCogdGFyZ2V0
RWxlbWVudCkKK3sKKyAgICBTVkdFbGVtZW50OjpJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1
YXJkKCp0YXJnZXRFbGVtZW50KTsKKyAgICB0YXJnZXRFbGVtZW50LT5pbnZhbGlkYXRlU1ZHUHJl
c2VudGF0aW9uQXR0cmlidXRlU3R5bGUoKTsKK30KKwogdm9pZCBTVkdBdHRyaWJ1dGVBbmltYXRv
cjo6YXBwbHlBbmltYXRlZFN0eWxlUHJvcGVydHlDaGFuZ2UoU1ZHRWxlbWVudCogZWxlbWVudCwg
Q1NTUHJvcGVydHlJRCBpZCwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBBU1NFUlQoZWxl
bWVudCk7CiAgICAgQVNTRVJUKCFlbGVtZW50LT5tX2RlbGV0aW9uSGFzQmVndW4pOworICAgIEFT
U0VSVChpZCAhPSBDU1NQcm9wZXJ0eUludmFsaWQpOwogICAgIAogICAgIGlmICghZWxlbWVudC0+
ZW5zdXJlQW5pbWF0ZWRTTUlMU3R5bGVQcm9wZXJ0aWVzKCkuc2V0UHJvcGVydHkoaWQsIHZhbHVl
LCBmYWxzZSkpCiAgICAgICAgIHJldHVybjsKQEAgLTcwLDYgKzgzLDcgQEAgdm9pZCBTVkdBdHRy
aWJ1dGVBbmltYXRvcjo6cmVtb3ZlQW5pbWF0ZQogewogICAgIEFTU0VSVChlbGVtZW50KTsKICAg
ICBBU1NFUlQoIWVsZW1lbnQtPm1fZGVsZXRpb25IYXNCZWd1bik7CisgICAgQVNTRVJUKGlkICE9
IENTU1Byb3BlcnR5SW52YWxpZCk7CiAKICAgICBlbGVtZW50LT5lbnN1cmVBbmltYXRlZFNNSUxT
dHlsZVByb3BlcnRpZXMoKS5yZW1vdmVQcm9wZXJ0eShpZCk7CiAgICAgZWxlbWVudC0+aW52YWxp
ZGF0ZVN0eWxlKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBdHRy
aWJ1dGVBbmltYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0
aWVzL1NWR0F0dHJpYnV0ZUFuaW1hdG9yLmgJKHJldmlzaW9uIDI0NDUwMSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0F0dHJpYnV0ZUFuaW1hdG9yLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTc0LDggKzc0LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIE9wdGlvbmFsPGZsb2F0
PiBjYWxjdWxhdGVEaXN0YW5jZShTVkdFbGVtZW50KiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3Ry
aW5nJikgY29uc3QgeyByZXR1cm4geyB9OyB9CiAKIHByb3RlY3RlZDoKKyAgICBib29sIGlzQW5p
bWF0ZWRTdHlsZUNsYXNzQW5pYW10b3IoKSBjb25zdDsKICAgICBib29sIGlzQW5pbWF0ZWRTdHls
ZVByb3BlcnR5QW5pYW10b3IoY29uc3QgU1ZHRWxlbWVudCopIGNvbnN0OwogCisgICAgc3RhdGlj
IHZvaWQgaW52YWxpZGF0ZVN0eWxlKFNWR0VsZW1lbnQqKTsKICAgICBzdGF0aWMgdm9pZCBhcHBs
eUFuaW1hdGVkU3R5bGVQcm9wZXJ0eUNoYW5nZShTVkdFbGVtZW50KiwgQ1NTUHJvcGVydHlJRCwg
Y29uc3QgU3RyaW5nJiB2YWx1ZSk7CiAgICAgc3RhdGljIHZvaWQgcmVtb3ZlQW5pbWF0ZWRTdHls
ZVByb3BlcnR5KFNWR0VsZW1lbnQqLCBDU1NQcm9wZXJ0eUlEKTsKICAgICBzdGF0aWMgdm9pZCBh
cHBseUFuaW1hdGVkUHJvcGVydHlDaGFuZ2UoU1ZHRWxlbWVudCosIGNvbnN0IFF1YWxpZmllZE5h
bWUmKTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0NDUwMSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE5LTA0LTI2ICBTYWlkIEFib3Ut
SGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQXNzZXJ0aW9uIGZp
cmVzIHdoZW4gYW5pbWF0aW5nIHRoZSAnY2xhc3MnIGF0dHJpYnV0ZSBvZiBhbiBTVkcgZWxlbWVu
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3Mzcy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdmcv
YW5pbWF0aW9ucy9hbmltYXRlZC1zdHJpbmctY2xhc3MtaW5zdGFuY2VzLWV4cGVjdGVkLnN2Zzog
QWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZWQtc3RyaW5nLWNsYXNzLWlu
c3RhbmNlcy5zdmc6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL2FuaW1hdGVkLXN0
cmluZy1ocmVmLWV4cGVjdGVkLnN2ZzogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMv
YW5pbWF0ZWQtc3RyaW5nLWhyZWYuc3ZnOiBBZGRlZC4KKwogMjAxOS0wNC0yMiAgQ2FybG9zIEdh
cmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihy
MjQxMjg5KTogW0dUS10gYWNjZXNzaWJpbGl0eS9yZW1vdmVkLWNvbnRpbnVhdGlvbi1lbGVtZW50
LWNhdXNlcy1jcmFzaC5odG1sIGFuZCBhY2Nlc3NpYmlsaXR5L3JlbW92ZWQtYW5vbnltb3VzLWJs
b2NrLWNoaWxkLWNhdXNlcy1jcmFzaC5odG1sIGNyYXNoZXMKSW5kZXg6IExheW91dFRlc3RzL3N2
Zy9hbmltYXRpb25zL2FuaW1hdGVkLXN0cmluZy1jbGFzcy1pbnN0YW5jZXMtZXhwZWN0ZWQuc3Zn
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGVkLXN0cmlu
Zy1jbGFzcy1pbnN0YW5jZXMtZXhwZWN0ZWQuc3ZnCShub25leGlzdGVudCkKKysrIExheW91dFRl
c3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGVkLXN0cmluZy1jbGFzcy1pbnN0YW5jZXMtZXhwZWN0
ZWQuc3ZnCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMyBAQAorPHN2ZyB4bWxucz0iaHR0cDov
L3d3dy53My5vcmcvMjAwMC9zdmciPgorICAgIDxyZWN0IHdpZHRoPSIxMDAiIGhlaWdodD0iMTAw
IiBmaWxsPSJncmVlbiIvPgorPC9zdmc+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9u
cy9hbmltYXRlZC1zdHJpbmctY2xhc3MtaW5zdGFuY2VzLnN2Zwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlZC1zdHJpbmctY2xhc3MtaW5zdGFuY2VzLnN2
Zwkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlZC1z
dHJpbmctY2xhc3MtaW5zdGFuY2VzLnN2Zwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE3IEBA
Cis8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CisgICAgPGRlc2M+VGVz
dCB0aGF0IHRoZSBpbnN0YW5jZSBvZiB0aGUgJ2NsYXNzJyBhdHRyaWJ1dGUgaXMgYW5pbWF0ZWQg
YW5kIGl0cyByZW5kZXJlciBpcyBpbnZhbGlkYXRlZCBjb3JyZWN0bHkuPC9kZXNjPgorICAgIDxz
dHlsZT4KKyAgICAgICAgLnJlZC1maWxsIHsKKyAgICAgICAgICAgIGZpbGw6IHJlZDsKKyAgICAg
ICAgfQorICAgICAgICAuZ3JlZW4tZmlsbCB7CisgICAgICAgICAgICBmaWxsOiBncmVlbjsKKyAg
ICAgICAgfQorICAgIDwvc3R5bGU+CisgICAgPGRlZj4KKyAgICAgICAgPHJlY3QgaWQ9InJlY3Qi
IHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBjbGFzcz0icmVkLWZpbGwiPgorICAgICAgICAgICAg
PHNldCBpZD0iZ3JlZW4iIGF0dHJpYnV0ZU5hbWU9ImNsYXNzIiB0bz0iZ3JlZW4tZmlsbCIgZmls
bD0iZnJlZXplIi8+CisgICAgICAgIDwvcmVjdD4KKyAgICA8L2RlZj4KKyAgICA8dXNlIGhyZWY9
IiNyZWN0Ii8+Cis8L3N2Zz4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1h
dGVkLXN0cmluZy1ocmVmLWV4cGVjdGVkLnN2Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9z
dmcvYW5pbWF0aW9ucy9hbmltYXRlZC1zdHJpbmctaHJlZi1leHBlY3RlZC5zdmcJKG5vbmV4aXN0
ZW50KQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZWQtc3RyaW5nLWhyZWYt
ZXhwZWN0ZWQuc3ZnCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMyBAQAorPHN2ZyB4bWxucz0i
aHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgorICAgIDxyZWN0IHdpZHRoPSIxMDAiIGhlaWdo
dD0iMTAwIiBmaWxsPSJncmVlbiIvPgorPC9zdmc+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5p
bWF0aW9ucy9hbmltYXRlZC1zdHJpbmctaHJlZi5zdmcKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZWQtc3RyaW5nLWhyZWYuc3ZnCShub25leGlzdGVudCkK
KysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGVkLXN0cmluZy1ocmVmLnN2Zwko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE3IEBACis8c3ZnIHhtbG5zPSJodHRwOi8vd3d3Lncz
Lm9yZy8yMDAwL3N2ZyI+CisgICAgPGRlc2M+VGVzdCB0aGF0IHRoZSAnaHJlZicgYXR0cmlidXRl
IGlzIGFuaW1hdGVkIGNvcnJlY3RseS48L2Rlc2M+CisgICAgPGRlZnM+CisgICAgICAgIDxsaW5l
YXJHcmFkaWVudCBpZD0icmVkLWZpbGwiPgorICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PSIwJSIg
IHN0b3AtY29sb3I9InJlZCIgLz4KKyAgICAgICAgICAgIDxzdG9wIG9mZnNldD0iMTAwJSIgc3Rv
cC1jb2xvcj0icmVkIiAvPgorICAgICAgICA8L2xpbmVhckdyYWRpZW50PgorICAgICAgICA8bGlu
ZWFyR3JhZGllbnQgaWQ9ImdyZWVuLWZpbGwiPgorICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PSIw
JSIgIHN0b3AtY29sb3I9ImdyZWVuIiAvPgorICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PSIxMDAl
IiBzdG9wLWNvbG9yPSJncmVlbiIgLz4KKyAgICAgICAgPC9saW5lYXJHcmFkaWVudD4KKyAgICAg
ICAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkaWVudCIgaHJlZj0iI3JlZC1maWxsIj4KKyAgICAg
ICAgICAgIDxzZXQgYXR0cmlidXRlTmFtZT0iaHJlZiIgdG89IiNncmVlbi1maWxsIiBmaWxsPSJm
cmVlemUiLz4KKyAgICAgICAgPC9saW5lYXJHcmFkaWVudD4KKyAgICA8L2RlZnM+CisgICAgPHJl
Y3QgaWQ9InJlY3QiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBmaWxsPSJ1cmwoJyNncmFkaWVu
dCcpIi8+Cis8L3N2Zz4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371199</attachid>
            <date>2019-06-03 11:42:58 -0700</date>
            <delta_ts>2019-07-01 14:51:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197372-20190603114258.patch</filename>
            <type>text/plain</type>
            <size>12739</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0NjA0MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBACisyMDE5LTA2LTAzICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQXNzZXJ0aW9u
IGZpcmVzIHdoZW4gYW5pbWF0aW5nIHRoZSAnY2xhc3MnIGF0dHJpYnV0ZSBvZiBhbiBTVkcgZWxl
bWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3
MzcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWxs
IGluc3RhbmNlcyBvZiBTVkcgYW5pbWF0ZWQgcHJvcGVydGllcyBoYXZlIHRvIHNoYXJlIGEgc2lu
Z2xlIGFuaW1WYWwKKyAgICAgICAgc3VjaCB0aGF0IG9uY2UgaXRzIHZhbHVlIGlzIHByb2dyZXNz
ZWQsIGFsbCB0aGUgaW5zdGFuY2VzIHdpbGwgc2VlIHRoZQorICAgICAgICBjaGFuZ2UuIFRoaXMg
d2FzIG5vdCBoYXBwZW5pbmcgZm9yIFNWR0FuaW1hdGVkUHJpbWl0aXZlUHJvcGVydHkuIFRvIGRv
CisgICAgICAgIHRoYXQgd2UgbmVlZCB0bzoKKworICAgICAgICAtLSBPdmVycmlkZSB0aGUgdmly
dHVhbCBtZXRob2RzIGluc3RhbmNlU3RhcnRBbmltYXRpb24oKSBhbmQKKyAgICAgICAgICAgaW5z
dGFuY2VTdG9wQW5pbWF0aW9uKCkuIAorICAgICAgICAtLSBDaGFuZ2UgdGhlIHR5cGUgb2YgbV9h
bmltVmFsIGZyb20gT3B0aW9uYWwgdG8gc3RkOjpzaGFyZWRfcHRyPD4uIFNvCisgICAgICAgICAg
IHRoZSBtYXN0ZXIgcHJvcGVydHkgd2lsbCBjcmVhdGUgaXQgYW5kIGFsbCB0aGUgaW5zdGFuY2Vz
IHdpbGwgaG9sZAorICAgICAgICAgICB0aGUgc2FtZSBtYXN0ZXIgcG9pbnRlci4KKyAgICAgICAg
LS0gQWRkIGEgc3BlY2lhbCBjYXNlIGZvciB0aGUgJ2NsYXNzJyBhdHRyaWJ1dGUgdG8gaW52YWxp
ZGF0ZSB0aGUgc3R5bGUKKyAgICAgICAgICAgb2YgdGhlIHRhcmdldCBlbGVtZW50IHdoZW4gaXRz
IGFuaW1WYWwgY2hhbmdlcy4KKworICAgICAgICBUZXN0czogc3ZnL2FuaW1hdGlvbnMvYW5pbWF0
ZWQtYm9vbC1leHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLWluc3RhbmNlcy5zdmcKKyAgICAgICAg
ICAgICAgIHN2Zy9hbmltYXRpb25zL2FuaW1hdGVkLXN0cmluZy1jbGFzcy1pbnN0YW5jZXMuc3Zn
CisgICAgICAgICAgICAgICBzdmcvYW5pbWF0aW9ucy9hbmltYXRlZC1zdHJpbmctaHJlZi5zdmcK
KworICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJpbWl0aXZlUHJvcGVydHku
aDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUHJpbWl0aXZlUHJvcGVydHk6OnNldEFu
aW1WYWwpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlBbmlt
YXRvci5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0F0dHJpYnV0ZUFuaW1hdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0F0dHJpYnV0ZUFuaW1hdG9yOjppc0FuaW1hdGVkU3R5
bGVDbGFzc0FuaWFtdG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0F0dHJpYnV0ZUFu
aW1hdG9yOjppbnZhbGlkYXRlU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQXR0cmlidXRl
QW5pbWF0b3I6OmFwcGx5QW5pbWF0ZWRTdHlsZVByb3BlcnR5Q2hhbmdlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0F0dHJpYnV0ZUFuaW1hdG9yOjpyZW1vdmVBbmltYXRlZFN0eWxlUHJvcGVydHkp
OgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0F0dHJpYnV0ZUFuaW1hdG9yLmg6CisKIDIw
MTktMDYtMDMgIERvbiBPbG1zdGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4KIAogICAgICAg
ICBbQ01ha2VdIEFkZCBXZWJLaXQ6OkphdmFTY3JpcHRDb3JlIHRhcmdldApJbmRleDogU291cmNl
L1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcmltaXRpdmVQcm9wZXJ0eS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJp
bWl0aXZlUHJvcGVydHkuaAkocmV2aXNpb24gMjQ2MDM4KQorKysgU291cmNlL1dlYkNvcmUvc3Zn
L3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcmltaXRpdmVQcm9wZXJ0eS5oCSh3b3JraW5nIGNvcHkp
CkBAIC02MCw4ICs2MCw4IEBAIHB1YmxpYzoKICAgICAvLyBVc2VkIGJ5IFNWR0F0dHJpYnV0ZUFu
aW1hdG9yOjpwcm9ncmVzcy4KICAgICB2b2lkIHNldEFuaW1WYWwoY29uc3QgUHJvcGVydHlUeXBl
JiBhbmltVmFsKQogICAgIHsKLSAgICAgICAgQVNTRVJUKGlzQW5pbWF0aW5nKCkpOwotICAgICAg
ICBtX2FuaW1WYWwgPSBhbmltVmFsOworICAgICAgICBBU1NFUlQoaXNBbmltYXRpbmcoKSAmJiBt
X2FuaW1WYWwpOworICAgICAgICAqbV9hbmltVmFsID0gYW5pbVZhbDsKICAgICB9CiAKICAgICBj
b25zdCBQcm9wZXJ0eVR5cGUmIGFuaW1WYWwoKSBjb25zdApAQCAtODIsNyArODIsNyBAQCBwdWJs
aWM6CiAgICAgLy8gVXNlZCB0byBhcHBseSB0aGUgU1ZHQXR0cmlidXRlQW5pbWF0b3IgY2hhbmdl
IHRvIHRoZSB0YXJnZXQgZWxlbWVudC4KICAgICBTdHJpbmcgYW5pbVZhbEFzU3RyaW5nKCkgY29u
c3Qgb3ZlcnJpZGUKICAgICB7Ci0gICAgICAgIEFTU0VSVChpc0FuaW1hdGluZygpICYmICEhbV9h
bmltVmFsKTsKKyAgICAgICAgQVNTRVJUKGlzQW5pbWF0aW5nKCkgJiYgbV9hbmltVmFsKTsKICAg
ICAgICAgcmV0dXJuIFNWR1Byb3BlcnR5VHJhaXRzPFByb3BlcnR5VHlwZT46OnRvU3RyaW5nKCpt
X2FuaW1WYWwpOwogICAgIH0KIApAQCAtMTA5LDcgKzEwOSw3IEBAIHB1YmxpYzoKICAgICB7CiAg
ICAgICAgIGlmIChpc0FuaW1hdGluZygpKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBt
X2FuaW1WYWwgPSBtX2Jhc2VWYWw7CisgICAgICAgIG1fYW5pbVZhbCA9IHN0ZDo6bWFrZV9zaGFy
ZWQ8UHJvcGVydHlUeXBlPihtX2Jhc2VWYWwpOwogICAgICAgICBTVkdBbmltYXRlZFByb3BlcnR5
OjpzdGFydEFuaW1hdGlvbigpOwogICAgIH0KIApAQCAtMTE3LDEwICsxMTcsMjcgQEAgcHVibGlj
OgogICAgIHsKICAgICAgICAgaWYgKCFpc0FuaW1hdGluZygpKQogICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICBtX2FuaW1WYWwgPSBXVEY6Om51bGxvcHQ7CisgICAgICAgIG1fYW5pbVZhbCA9
IG51bGxwdHI7CiAgICAgICAgIFNWR0FuaW1hdGVkUHJvcGVydHk6OnN0b3BBbmltYXRpb24oKTsK
ICAgICB9CiAKKyAgICAvLyBDb250cm9sbGluZyB0aGUgaW5zdGFuY2UgYW5pbWF0aW9uLgorICAg
IHZvaWQgaW5zdGFuY2VTdGFydEFuaW1hdGlvbihTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRl
ZCkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIGlmIChpc0FuaW1hdGluZygpKQorICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICBtX2FuaW1WYWwgPSBzdGF0aWNfY2FzdDxTVkdBbmltYXRlZFBy
aW1pdGl2ZVByb3BlcnR5Jj4oYW5pbWF0ZWQpLm1fYW5pbVZhbDsKKyAgICAgICAgU1ZHQW5pbWF0
ZWRQcm9wZXJ0eTo6aW5zdGFuY2VTdGFydEFuaW1hdGlvbihhbmltYXRlZCk7CisgICAgfQorCisg
ICAgdm9pZCBpbnN0YW5jZVN0b3BBbmltYXRpb24oKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAg
aWYgKCFpc0FuaW1hdGluZygpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBtX2FuaW1W
YWwgPSBudWxscHRyOworICAgICAgICBTVkdBbmltYXRlZFByb3BlcnR5OjppbnN0YW5jZVN0b3BB
bmltYXRpb24oKTsKKyAgICB9CisKIHByb3RlY3RlZDoKICAgICBTVkdBbmltYXRlZFByaW1pdGl2
ZVByb3BlcnR5KFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KQogICAgICAgICA6IFNWR0FuaW1h
dGVkUHJvcGVydHkoY29udGV4dEVsZW1lbnQpCkBAIC0xMzUsNyArMTUyLDcgQEAgcHJvdGVjdGVk
OgogICAgIH0KIAogICAgIFByb3BlcnR5VHlwZSBtX2Jhc2VWYWw7Ci0gICAgbXV0YWJsZSBPcHRp
b25hbDxQcm9wZXJ0eVR5cGU+IG1fYW5pbVZhbDsKKyAgICBtdXRhYmxlIHN0ZDo6c2hhcmVkX3B0
cjxQcm9wZXJ0eVR5cGU+IG1fYW5pbVZhbDsKICAgICBTVkdQcm9wZXJ0eVN0YXRlIG1fc3RhdGUg
eyBTVkdQcm9wZXJ0eVN0YXRlOjpDbGVhbiB9OwogfTsKIApJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eUFuaW1hdG9yLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eUFuaW1h
dG9yLmgJKHJldmlzaW9uIDI0NjAzOCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVz
L1NWR0FuaW1hdGVkUHJvcGVydHlBbmltYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC03Nyw2ICs3
Nyw4IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIGlmIChpc0FuaW1hdGVkU3R5bGVQcm9wZXJ0
eUFuaWFtdG9yKHRhcmdldEVsZW1lbnQpKQogICAgICAgICAgICAgYXBwbHlBbmltYXRlZFN0eWxl
UHJvcGVydHlDaGFuZ2UodGFyZ2V0RWxlbWVudCwgbV9hbmltYXRlZC0+YW5pbVZhbEFzU3RyaW5n
KCkpOworICAgICAgICBlbHNlIGlmIChpc0FuaW1hdGVkU3R5bGVDbGFzc0FuaWFtdG9yKCkpCisg
ICAgICAgICAgICBpbnZhbGlkYXRlU3R5bGUodGFyZ2V0RWxlbWVudCk7CiAgICAgICAgIGFwcGx5
QW5pbWF0ZWRQcm9wZXJ0eUNoYW5nZSh0YXJnZXRFbGVtZW50KTsKICAgICB9CiAKQEAgLTkyLDYg
Kzk0LDggQEAgcHVibGljOgogICAgICAgICBhcHBseUFuaW1hdGVkUHJvcGVydHlDaGFuZ2UodGFy
Z2V0RWxlbWVudCk7CiAgICAgICAgIGlmIChpc0FuaW1hdGVkU3R5bGVQcm9wZXJ0eUFuaWFtdG9y
KHRhcmdldEVsZW1lbnQpKQogICAgICAgICAgICAgcmVtb3ZlQW5pbWF0ZWRTdHlsZVByb3BlcnR5
KHRhcmdldEVsZW1lbnQpOworICAgICAgICBlbHNlIGlmIChpc0FuaW1hdGVkU3R5bGVDbGFzc0Fu
aWFtdG9yKCkpCisgICAgICAgICAgICBpbnZhbGlkYXRlU3R5bGUodGFyZ2V0RWxlbWVudCk7CiAg
ICAgfQogCiAgICAgT3B0aW9uYWw8ZmxvYXQ+IGNhbGN1bGF0ZURpc3RhbmNlKFNWR0VsZW1lbnQq
IHRhcmdldEVsZW1lbnQsIGNvbnN0IFN0cmluZyYgZnJvbSwgY29uc3QgU3RyaW5nJiB0bykgY29u
c3Qgb3ZlcnJpZGUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0F0dHJp
YnV0ZUFuaW1hdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVy
dGllcy9TVkdBdHRyaWJ1dGVBbmltYXRvci5jcHAJKHJldmlzaW9uIDI0NjAzOCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0F0dHJpYnV0ZUFuaW1hdG9yLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjgsMTkgKzI4LDMyIEBACiAKICNpbmNsdWRlICJDU1NDb21wdXRlZFN0eWxl
RGVjbGFyYXRpb24uaCIKICNpbmNsdWRlICJDU1NQcm9wZXJ0eVBhcnNlci5oIgorI2luY2x1ZGUg
IkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCitib29sIFNWR0F0dHJpYnV0ZUFuaW1hdG9yOjppc0FuaW1hdGVkU3R5bGVDbGFzc0Fu
aWFtdG9yKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9hdHRyaWJ1dGVOYW1lLm1hdGNoZXMoSFRN
TE5hbWVzOjpjbGFzc0F0dHIpOworfQorCiBib29sIFNWR0F0dHJpYnV0ZUFuaW1hdG9yOjppc0Fu
aW1hdGVkU3R5bGVQcm9wZXJ0eUFuaWFtdG9yKGNvbnN0IFNWR0VsZW1lbnQqIHRhcmdldEVsZW1l
bnQpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHRhcmdldEVsZW1lbnQtPmlzQW5pbWF0ZWRTdHlsZUF0
dHJpYnV0ZShtX2F0dHJpYnV0ZU5hbWUpOwogfQogCit2b2lkIFNWR0F0dHJpYnV0ZUFuaW1hdG9y
OjppbnZhbGlkYXRlU3R5bGUoU1ZHRWxlbWVudCogdGFyZ2V0RWxlbWVudCkKK3sKKyAgICBTVkdF
bGVtZW50OjpJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0YXJnZXRFbGVtZW50KTsK
KyAgICB0YXJnZXRFbGVtZW50LT5pbnZhbGlkYXRlU1ZHUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5
bGUoKTsKK30KKwogdm9pZCBTVkdBdHRyaWJ1dGVBbmltYXRvcjo6YXBwbHlBbmltYXRlZFN0eWxl
UHJvcGVydHlDaGFuZ2UoU1ZHRWxlbWVudCogZWxlbWVudCwgQ1NTUHJvcGVydHlJRCBpZCwgY29u
c3QgU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBBU1NFUlQoZWxlbWVudCk7CiAgICAgQVNTRVJUKCFl
bGVtZW50LT5tX2RlbGV0aW9uSGFzQmVndW4pOworICAgIEFTU0VSVChpZCAhPSBDU1NQcm9wZXJ0
eUludmFsaWQpOwogICAgIAogICAgIGlmICghZWxlbWVudC0+ZW5zdXJlQW5pbWF0ZWRTTUlMU3R5
bGVQcm9wZXJ0aWVzKCkuc2V0UHJvcGVydHkoaWQsIHZhbHVlLCBmYWxzZSkpCiAgICAgICAgIHJl
dHVybjsKQEAgLTcwLDYgKzgzLDcgQEAgdm9pZCBTVkdBdHRyaWJ1dGVBbmltYXRvcjo6cmVtb3Zl
QW5pbWF0ZQogewogICAgIEFTU0VSVChlbGVtZW50KTsKICAgICBBU1NFUlQoIWVsZW1lbnQtPm1f
ZGVsZXRpb25IYXNCZWd1bik7CisgICAgQVNTRVJUKGlkICE9IENTU1Byb3BlcnR5SW52YWxpZCk7
CiAKICAgICBlbGVtZW50LT5lbnN1cmVBbmltYXRlZFNNSUxTdHlsZVByb3BlcnRpZXMoKS5yZW1v
dmVQcm9wZXJ0eShpZCk7CiAgICAgZWxlbWVudC0+aW52YWxpZGF0ZVN0eWxlKCk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBdHRyaWJ1dGVBbmltYXRvci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0F0dHJpYnV0ZUFuaW1h
dG9yLmgJKHJldmlzaW9uIDI0NjAzOCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVz
L1NWR0F0dHJpYnV0ZUFuaW1hdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTc0LDggKzc0LDEwIEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIE9wdGlvbmFsPGZsb2F0PiBjYWxjdWxhdGVEaXN0YW5jZShT
VkdFbGVtZW50KiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikgY29uc3QgeyByZXR1cm4g
eyB9OyB9CiAKIHByb3RlY3RlZDoKKyAgICBib29sIGlzQW5pbWF0ZWRTdHlsZUNsYXNzQW5pYW10
b3IoKSBjb25zdDsKICAgICBib29sIGlzQW5pbWF0ZWRTdHlsZVByb3BlcnR5QW5pYW10b3IoY29u
c3QgU1ZHRWxlbWVudCopIGNvbnN0OwogCisgICAgc3RhdGljIHZvaWQgaW52YWxpZGF0ZVN0eWxl
KFNWR0VsZW1lbnQqKTsKICAgICBzdGF0aWMgdm9pZCBhcHBseUFuaW1hdGVkU3R5bGVQcm9wZXJ0
eUNoYW5nZShTVkdFbGVtZW50KiwgQ1NTUHJvcGVydHlJRCwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7
CiAgICAgc3RhdGljIHZvaWQgcmVtb3ZlQW5pbWF0ZWRTdHlsZVByb3BlcnR5KFNWR0VsZW1lbnQq
LCBDU1NQcm9wZXJ0eUlEKTsKICAgICBzdGF0aWMgdm9pZCBhcHBseUFuaW1hdGVkUHJvcGVydHlD
aGFuZ2UoU1ZHRWxlbWVudCosIGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKSW5kZXg6IExheW91dFRl
c3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlz
aW9uIDI0NjAzOCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDE3IEBACisyMDE5LTA2LTAzICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3
YUBhcHBsZS5jb20+CisKKyAgICAgICAgQXNzZXJ0aW9uIGZpcmVzIHdoZW4gYW5pbWF0aW5nIHRo
ZSAnY2xhc3MnIGF0dHJpYnV0ZSBvZiBhbiBTVkcgZWxlbWVudAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3MzcyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9hbmltYXRlZC1i
b29sLWV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQtaW5zdGFuY2VzLWV4cGVjdGVkLnN2ZzogQWRk
ZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZWQtYm9vbC1leHRlcm5hbFJlc291
cmNlc1JlcXVpcmVkLWluc3RhbmNlcy5zdmc6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRp
b25zL2FuaW1hdGVkLXN0cmluZy1jbGFzcy1pbnN0YW5jZXMtZXhwZWN0ZWQuc3ZnOiBBZGRlZC4K
KyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9hbmltYXRlZC1zdHJpbmctY2xhc3MtaW5zdGFuY2Vz
LnN2ZzogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZWQtc3RyaW5nLWhy
ZWYtZXhwZWN0ZWQuc3ZnOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9hbmltYXRl
ZC1zdHJpbmctaHJlZi5zdmc6IEFkZGVkLgorCiAyMDE5LTA2LTAzICBEZXZpbiBSb3Vzc28gIDxk
cm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBGbGFreSBUZXN0OiBpbnNwZWN0b3IvY2FudmFz
L3JlY29yZGluZy5odG1sCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRl
ZC1ib29sLWV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQtaW5zdGFuY2VzLWV4cGVjdGVkLnN2Zwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlZC1ib29sLWV4
dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQtaW5zdGFuY2VzLWV4cGVjdGVkLnN2Zwkobm9uZXhpc3Rl
bnQpCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlZC1ib29sLWV4dGVybmFs
UmVzb3VyY2VzUmVxdWlyZWQtaW5zdGFuY2VzLWV4cGVjdGVkLnN2Zwkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDMgQEAKKzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4K
KyAgICA8cmVjdCB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgZmlsbD0iZ3JlZW4iLz4KKzwvc3Zn
PgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZWQtYm9vbC1leHRlcm5h
bFJlc291cmNlc1JlcXVpcmVkLWluc3RhbmNlcy5zdmcKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZWQtYm9vbC1leHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
LWluc3RhbmNlcy5zdmcJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlv
bnMvYW5pbWF0ZWQtYm9vbC1leHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLWluc3RhbmNlcy5zdmcJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw5IEBACis8c3ZnIHhtbG5zPSJodHRwOi8vd3d3Lncz
Lm9yZy8yMDAwL3N2ZyI+CisgICAgPGRlc2M+VGVzdCB0aGF0IHRoZSBpbnN0YW5jZSBvZiB0aGUg
J2V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQnIGF0dHJpYnV0ZSBpcyBhbmltYXRlZCBjb3JyZWN0
bHkuPC9kZXNjPgorICAgIDxkZWY+CisgICAgICAgIDxyZWN0IGlkPSJyZWN0IiB3aWR0aD0iMTAw
IiBoZWlnaHQ9IjEwMCIgZmlsbD0iZ3JlZW4iPgorICAgICAgICAgICAgPHNldCBhdHRyaWJ1dGVO
YW1lPSJleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkIiB0bz0idHJ1ZSIvPgorICAgICAgICA8L3Jl
Y3Q+CisgICAgPC9kZWY+CisgICAgPHVzZSBocmVmPSIjcmVjdCIvPgorPC9zdmc+CkluZGV4OiBM
YXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlZC1zdHJpbmctY2xhc3MtaW5zdGFuY2Vz
LWV4cGVjdGVkLnN2Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9h
bmltYXRlZC1zdHJpbmctY2xhc3MtaW5zdGFuY2VzLWV4cGVjdGVkLnN2Zwkobm9uZXhpc3RlbnQp
CisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlZC1zdHJpbmctY2xhc3MtaW5z
dGFuY2VzLWV4cGVjdGVkLnN2Zwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDMgQEAKKzxzdmcg
eG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KKyAgICA8cmVjdCB3aWR0aD0iMTAw
IiBoZWlnaHQ9IjEwMCIgZmlsbD0iZ3JlZW4iLz4KKzwvc3ZnPgpJbmRleDogTGF5b3V0VGVzdHMv
c3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZWQtc3RyaW5nLWNsYXNzLWluc3RhbmNlcy5zdmcKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZWQtc3RyaW5nLWNsYXNz
LWluc3RhbmNlcy5zdmcJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlv
bnMvYW5pbWF0ZWQtc3RyaW5nLWNsYXNzLWluc3RhbmNlcy5zdmcJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwxNyBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgor
ICAgIDxkZXNjPlRlc3QgdGhhdCB0aGUgaW5zdGFuY2Ugb2YgdGhlICdjbGFzcycgYXR0cmlidXRl
IGlzIGFuaW1hdGVkIGFuZCBpdHMgcmVuZGVyZXIgaXMgaW52YWxpZGF0ZWQgY29ycmVjdGx5Ljwv
ZGVzYz4KKyAgICA8c3R5bGU+CisgICAgICAgIC5yZWQtZmlsbCB7CisgICAgICAgICAgICBmaWxs
OiByZWQ7CisgICAgICAgIH0KKyAgICAgICAgLmdyZWVuLWZpbGwgeworICAgICAgICAgICAgZmls
bDogZ3JlZW47CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxkZWY+CisgICAgICAgIDxy
ZWN0IGlkPSJyZWN0IiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgY2xhc3M9InJlZC1maWxsIj4K
KyAgICAgICAgICAgIDxzZXQgaWQ9ImdyZWVuIiBhdHRyaWJ1dGVOYW1lPSJjbGFzcyIgdG89Imdy
ZWVuLWZpbGwiIGZpbGw9ImZyZWV6ZSIvPgorICAgICAgICA8L3JlY3Q+CisgICAgPC9kZWY+Cisg
ICAgPHVzZSBocmVmPSIjcmVjdCIvPgorPC9zdmc+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5p
bWF0aW9ucy9hbmltYXRlZC1zdHJpbmctaHJlZi1leHBlY3RlZC5zdmcKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZWQtc3RyaW5nLWhyZWYtZXhwZWN0ZWQu
c3ZnCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGVk
LXN0cmluZy1ocmVmLWV4cGVjdGVkLnN2Zwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDMgQEAK
KzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KKyAgICA8cmVjdCB3aWR0
aD0iMTAwIiBoZWlnaHQ9IjEwMCIgZmlsbD0iZ3JlZW4iLz4KKzwvc3ZnPgpJbmRleDogTGF5b3V0
VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZWQtc3RyaW5nLWhyZWYuc3ZnCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGVkLXN0cmluZy1ocmVmLnN2Zwko
bm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlZC1zdHJp
bmctaHJlZi5zdmcJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNyBAQAorPHN2ZyB4bWxucz0i
aHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgorICAgIDxkZXNjPlRlc3QgdGhhdCB0aGUgJ2hy
ZWYnIGF0dHJpYnV0ZSBpcyBhbmltYXRlZCBjb3JyZWN0bHkuPC9kZXNjPgorICAgIDxkZWZzPgor
ICAgICAgICA8bGluZWFyR3JhZGllbnQgaWQ9InJlZC1maWxsIj4KKyAgICAgICAgICAgIDxzdG9w
IG9mZnNldD0iMCUiICBzdG9wLWNvbG9yPSJyZWQiIC8+CisgICAgICAgICAgICA8c3RvcCBvZmZz
ZXQ9IjEwMCUiIHN0b3AtY29sb3I9InJlZCIgLz4KKyAgICAgICAgPC9saW5lYXJHcmFkaWVudD4K
KyAgICAgICAgPGxpbmVhckdyYWRpZW50IGlkPSJncmVlbi1maWxsIj4KKyAgICAgICAgICAgIDxz
dG9wIG9mZnNldD0iMCUiICBzdG9wLWNvbG9yPSJncmVlbiIgLz4KKyAgICAgICAgICAgIDxzdG9w
IG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iZ3JlZW4iIC8+CisgICAgICAgIDwvbGluZWFyR3Jh
ZGllbnQ+CisgICAgICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iZ3JhZGllbnQiIGhyZWY9IiNyZWQt
ZmlsbCI+CisgICAgICAgICAgICA8c2V0IGF0dHJpYnV0ZU5hbWU9ImhyZWYiIHRvPSIjZ3JlZW4t
ZmlsbCIgZmlsbD0iZnJlZXplIi8+CisgICAgICAgIDwvbGluZWFyR3JhZGllbnQ+CisgICAgPC9k
ZWZzPgorICAgIDxyZWN0IGlkPSJyZWN0IiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgZmlsbD0i
dXJsKCcjZ3JhZGllbnQnKSIvPgorPC9zdmc+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>373269</attachid>
            <date>2019-07-01 14:51:50 -0700</date>
            <delta_ts>2019-07-02 15:37:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197372-20190701145149.patch</filename>
            <type>text/plain</type>
            <size>23417</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0NzAyNCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU3IEBACisyMDE5LTA3LTAxICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQXNzZXJ0aW9u
IGZpcmVzIHdoZW4gYW5pbWF0aW5nIHRoZSAnY2xhc3MnIGF0dHJpYnV0ZSBvZiBhbiBTVkcgZWxl
bWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3
MzcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWxs
IGluc3RhbmNlcyBvZiBTVkcgYW5pbWF0ZWQgcHJvcGVydGllcyBoYXZlIHRvIHNoYXJlIGEgc2lu
Z2xlIGFuaW1WYWwKKyAgICAgICAgc3VjaCB0aGF0IG9uY2UgaXRzIHZhbHVlIGlzIHByb2dyZXNz
ZWQsIGFsbCB0aGUgaW5zdGFuY2VzIHdpbGwgc2VlIHRoZQorICAgICAgICBjaGFuZ2UuIFRoaXMg
d2FzIG5vdCBoYXBwZW5pbmcgZm9yIFNWR0FuaW1hdGVkUHJpbWl0aXZlUHJvcGVydHkuIFRvIGRv
CisgICAgICAgIHRoYXQgd2UgbmVlZCB0bzoKKworICAgICAgICAtLSBJbnRyb2R1Y2UgdGhlIG5l
dyB0ZW1wbGF0ZSBjbGFzcyBTVkdQcmltaXRpdmVQcm9wZXJ0eSB3aGljaCBpcyBkZXJpdmVkCisg
ICAgICAgICAgIGZyb20gU1ZHUHJvcGVydHkuIFRoaXMgY2xhc3Mgd2lsbCBtYW5hZ2UgYSBzaW5n
bGUgcHJpbWl0aXZlIHZhbHVlLgorICAgICAgICAtLSBDaGFuZ2UgdGhlIHR5cGUgb2YgU1ZHQW5p
bWF0ZWRQcmltaXRpdmVQcm9wZXJ0eTo6bV9hbmltVmFsIHRvCisgICAgICAgICAgIFJlZlB0cjxT
VkdQcmltaXRpdmVQcm9wZXJ0eTxQcm9wZXJ0eVR5cGU+Pi4gVGhlIG1hc3RlciBwcm9wZXJ0eSB3
aWxsCisgICAgICAgICAgIGNyZWF0ZSBpdCBhbmQgYWxsIHRoZSBpbnN0YW5jZXMgd2lsbCBob2xk
IHJlZmVyZW5jZXMgdG8gdGhlIHNhbWUgcG9pbnRlci4KKyAgICAgICAgLS0gQ2hhbmdlIHRoZSB0
eXBlIG9mIFJlZjxTVkdQcmltaXRpdmVQcm9wZXJ0eTxQcm9wZXJ0eVR5cGU+PiB0bworICAgICAg
ICAgICBSZWY8U1ZHUHJpbWl0aXZlUHJvcGVydHk8UHJvcGVydHlUeXBlPj4gZm9yIHNpbXBsaWNp
dHkgYW5kIGdldCByaWQgb2YKKyAgICAgICAgICAgU1ZHQW5pbWF0ZWRQcmltaXRpdmVQcm9wZXJ0
eTo6bV9zdGF0ZS4KKyAgICAgICAgLS0gT3ZlcnJpZGUgdGhlIHZpcnR1YWwgbWV0aG9kcyBpbnN0
YW5jZVN0YXJ0QW5pbWF0aW9uKCkgYW5kCisgICAgICAgICAgIGluc3RhbmNlU3RvcEFuaW1hdGlv
bigpIG9mIFNWR0FuaW1hdGVkUHJpbWl0aXZlUHJvcGVydHkuCisgICAgICAgIC0tIEFkZCBhIHNw
ZWNpYWwgY2FzZSBmb3IgdGhlICdjbGFzcycgYXR0cmlidXRlIHRvIGludmFsaWRhdGUgdGhlIHN0
eWxlCisgICAgICAgICAgIG9mIHRoZSB0YXJnZXQgZWxlbWVudCB3aGVuIGl0cyBhbmltVmFsIGNo
YW5nZXMuCisKKyAgICAgICAgVGVzdHM6IHN2Zy9hbmltYXRpb25zL2FuaW1hdGVkLWJvb2wtZXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC1pbnN0YW5jZXMuc3ZnCisgICAgICAgICAgICAgICBzdmcv
YW5pbWF0aW9ucy9hbmltYXRlZC1zdHJpbmctY2xhc3MtaW5zdGFuY2VzLnN2ZworICAgICAgICAg
ICAgICAgc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZWQtc3RyaW5nLWhyZWYuc3ZnCisKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogc3ZnL3Byb3Bl
cnRpZXMvU1ZHQW5pbWF0ZWRQcmltaXRpdmVQcm9wZXJ0eS5oOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZWRQcmltaXRpdmVQcm9wZXJ0eTo6c2V0QmFzZVZhbCk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZFByaW1pdGl2ZVByb3BlcnR5OjpzZXRCYXNlVmFsSW50ZXJuYWwpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcmltaXRpdmVQcm9wZXJ0eTo6YmFzZVZhbCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFByaW1pdGl2ZVByb3BlcnR5Ojpz
ZXRBbmltVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUHJpbWl0aXZlUHJvcGVy
dHk6OmFuaW1WYWwgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcmltaXRp
dmVQcm9wZXJ0eTo6YW5pbVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFByaW1p
dGl2ZVByb3BlcnR5OjpjdXJyZW50VmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
QW5pbWF0ZWRQcmltaXRpdmVQcm9wZXJ0eTo6U1ZHQW5pbWF0ZWRQcmltaXRpdmVQcm9wZXJ0eSk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFByaW1pdGl2ZVByb3BlcnR5OjplbnN1cmVB
bmltVmFsKToKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5QW5p
bWF0b3IuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBdHRyaWJ1dGVBbmltYXRvci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBdHRyaWJ1dGVBbmltYXRvcjo6aXNBbmltYXRlZFN0
eWxlQ2xhc3NBbmlhbXRvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBdHRyaWJ1dGVB
bmltYXRvcjo6aW52YWxpZGF0ZVN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0F0dHJpYnV0
ZUFuaW1hdG9yOjphcHBseUFuaW1hdGVkU3R5bGVQcm9wZXJ0eUNoYW5nZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBdHRyaWJ1dGVBbmltYXRvcjo6cmVtb3ZlQW5pbWF0ZWRTdHlsZVByb3BlcnR5
KToKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBdHRyaWJ1dGVBbmltYXRvci5oOgorICAg
ICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1ByaW1pdGl2ZVByb3BlcnR5Lmg6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHUHJpbWl0aXZlUHJvcGVydHk6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdQcmltaXRpdmVQcm9wZXJ0eTo6dmFsdWUgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUHJpbWl0aXZlUHJvcGVydHk6OnZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1ByaW1pdGl2ZVByb3BlcnR5OjpzZXRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcmlt
aXRpdmVQcm9wZXJ0eTo6U1ZHUHJpbWl0aXZlUHJvcGVydHkpOgorCiAyMDE5LTA3LTAxICBUcnVp
dHQgU2F2ZWxsICA8dHNhdmVsbEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9s
bGluZyBvdXQgcjI0Njg0NC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI0NzAwOSkKKysrIFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAt
ODU3LDcgKzg1Nyw3IEBACiAJCTJFNDM0NjUxMEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXJPYmpl
Y3RQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MkU0MzQ2M0YwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlck9iamVjdFByb3h5LmggKi87IH07CiAJ
CTJFNDM0NjUzMEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXJSdW5Mb29wLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTQzNDY0MTBGNTQ2QTgyMDBCMEYx
QkEgLyogV29ya2VyUnVuTG9vcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTJFNDM0NjU1MEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXJUaHJlYWQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFNDM0NjQz
MEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXJUaHJlYWQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkyRTc1ODQxRTEyNzc5QURBMDA2MjYyOEIgLyog
RmlsZVJlYWRlckxvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMkU3NTg0MUIxMjc3OUFEQTAwNjI2MjhCIC8qIEZpbGVSZWFkZXJMb2FkZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9O307CisJCTJFNzU4NDFF
MTI3NzlBREEwMDYyNjI4QiAvKiBGaWxlUmVhZGVyTG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTc1ODQxQjEyNzc5QURBMDA2MjYyOEIgLyog
RmlsZVJlYWRlckxvYWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTJFNzU4NDFGMTI3NzlBREEwMDYyNjI4QiAvKiBGaWxlUmVhZGVyTG9hZGVy
Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
RTc1ODQxQzEyNzc5QURBMDA2MjYyOEIgLyogRmlsZVJlYWRlckxvYWRlckNsaWVudC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTJFOTRGNDNDMTE5
MjA3REEwMEI3Rjc1RCAvKiBKU0ZpbGVSZWFkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFOTRGNDNBMTE5MjA3REEwMEI3Rjc1RCAvKiBKU0ZpbGVS
ZWFkZXIuaCAqLzsgfTsKIAkJMkU5QjVEOEYxQjY2QTk0RTAwOEM2QTI0IC8qIFdoZWVsRXZlbnRE
ZWx0YUZpbHRlck1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkU5QjVEOEUxQjY2QTk0RTAwOEM2QTI0IC8qIFdoZWVsRXZlbnREZWx0YUZpbHRlck1h
Yy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC04
NTM4LDYgKzg1MzgsNyBAQAogCQk1M0VEM0ZERDE2N0E4OEU3MDA2NzYyRTYgLyogSlNJbnRlcm5h
bFNldHRpbmdzR2VuZXJhdGVkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
SW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1NTBBMEJDNzA4NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVkTmFtZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBRdWFsaWZpZWRO
YW1lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9
IDA7IH07CiAJCTU1MEEwQkM4MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRo
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFF1YWxpZmll
ZE5hbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9
IDA7IH07CisJCTU1MEY2NjQ1MjJDQTg5QkQwMDBBMzQxNyAvKiBTVkdQcmltaXRpdmVQcm9wZXJ0
eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTVkdQcmltaXRpdmVQcm9wZXJ0eS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1NTEzN0IyQzIwMzc5RTU1MDAwMTAwNEIgLyogU1ZHTWFya2VyVHlw
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHTWFya2VyVHlwZXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTU0Njc1NzcxRkQxRkMxQTAwM0IxMEIwIC8q
IEltYWdlU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEltYWdlU291cmNlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTU0Njc1NzgxRkQxRkMxQTAwM0IxMEIwIC8qIElt
YWdlU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlU291cmNlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xNjEwOSw2ICsxNjExMCw3IEBACiAJCQkJNTVFRTUzNTQyMjNCMjlF
OTAwRkJBOTQ0IC8qIFNWR01lbWJlckFjY2Vzc29yLmggKi8sCiAJCQkJNTVCRTAyNUEyMjNCMjlD
MjAwMzJGMDhBIC8qIFNWR1BvaW50ZXJNZW1iZXJBY2Nlc3Nvci5oICovLAogCQkJCTU1RENDNTI1
MjI0MDc0OUUwMEMyNkUzMiAvKiBTVkdQcmltaXRpdmVMaXN0LmggKi8sCisJCQkJNTUwRjY2NDUy
MkNBODlCRDAwMEEzNDE3IC8qIFNWR1ByaW1pdGl2ZVByb3BlcnR5LmggKi8sCiAJCQkJNzI2NkYw
MTUyMjQxQzA5ODAwODMzOTc1IC8qIFNWR1ByaW1pdGl2ZVByb3BlcnR5QW5pbWF0b3IuaCAqLywK
IAkJCQk3MjY2RjAxNDIyNDFCRkIyMDA4MzM5NzUgLyogU1ZHUHJpbWl0aXZlUHJvcGVydHlBbmlt
YXRvckltcGwuaCAqLywKIAkJCQk1NUVFNTM2MzIyM0IyQTI0MDBGQkE5NDQgLyogU1ZHUHJvcGVy
dHkuaCAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVk
UHJpbWl0aXZlUHJvcGVydHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJv
cGVydGllcy9TVkdBbmltYXRlZFByaW1pdGl2ZVByb3BlcnR5LmgJKHJldmlzaW9uIDI0NzAwOSkK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJpbWl0aXZlUHJv
cGVydHkuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlICJTVkdBbmltYXRlZFByb3BlcnR5LmgiCi0jaW5jbHVkZSAiU1ZHUHJvcGVydHku
aCIKKyNpbmNsdWRlICJTVkdQcmltaXRpdmVQcm9wZXJ0eS5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKQEAgLTQ4LDk1ICs0OCwxMTIgQEAgcHVibGljOgogICAgIC8vIFVzZWQgYnkgdGhlIERP
TS4KICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRCYXNlVmFsKGNvbnN0IFByb3BlcnR5VHlwZSYg
YmFzZVZhbCkKICAgICB7Ci0gICAgICAgIG1fYmFzZVZhbCA9IGJhc2VWYWw7CisgICAgICAgIG1f
YmFzZVZhbC0+c2V0VmFsdWUoYmFzZVZhbCk7CiAgICAgICAgIGNvbW1pdFByb3BlcnR5Q2hhbmdl
KG51bGxwdHIpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIAogICAgIC8vIFVzZWQgYnkg
U1ZHRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoKS4KLSAgICB2b2lkIHNldEJhc2VWYWxJbnRlcm5h
bChjb25zdCBQcm9wZXJ0eVR5cGUmIGJhc2VWYWwpIHsgbV9iYXNlVmFsID0gYmFzZVZhbDsgfQot
ICAgIGNvbnN0IFByb3BlcnR5VHlwZSYgYmFzZVZhbCgpIGNvbnN0IHsgcmV0dXJuIG1fYmFzZVZh
bDsgfQorICAgIHZvaWQgc2V0QmFzZVZhbEludGVybmFsKGNvbnN0IFByb3BlcnR5VHlwZSYgYmFz
ZVZhbCkgeyBtX2Jhc2VWYWwtPnNldFZhbHVlKGJhc2VWYWwpOyB9CisgICAgY29uc3QgUHJvcGVy
dHlUeXBlJiBiYXNlVmFsKCkgY29uc3QgeyByZXR1cm4gbV9iYXNlVmFsLT52YWx1ZSgpOyB9CiAK
ICAgICAvLyBVc2VkIGJ5IFNWR0F0dHJpYnV0ZUFuaW1hdG9yOjpwcm9ncmVzcy4KICAgICB2b2lk
IHNldEFuaW1WYWwoY29uc3QgUHJvcGVydHlUeXBlJiBhbmltVmFsKQogICAgIHsKLSAgICAgICAg
QVNTRVJUKGlzQW5pbWF0aW5nKCkpOwotICAgICAgICBtX2FuaW1WYWwgPSBhbmltVmFsOworICAg
ICAgICBBU1NFUlQoaXNBbmltYXRpbmcoKSAmJiBtX2FuaW1WYWwpOworICAgICAgICBtX2FuaW1W
YWwtPnNldFZhbHVlKGFuaW1WYWwpOwogICAgIH0KIAogICAgIGNvbnN0IFByb3BlcnR5VHlwZSYg
YW5pbVZhbCgpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlRfSU1QTElFUyhpc0FuaW1hdGlu
ZygpLCBtX2FuaW1WYWwpOwotICAgICAgICByZXR1cm4gaXNBbmltYXRpbmcoKSA/ICptX2FuaW1W
YWwgOiBtX2Jhc2VWYWw7CisgICAgICAgIHJldHVybiBpc0FuaW1hdGluZygpID8gbV9hbmltVmFs
LT52YWx1ZSgpIDogbV9iYXNlVmFsLT52YWx1ZSgpOwogICAgIH0KIAogICAgIFByb3BlcnR5VHlw
ZSYgYW5pbVZhbCgpCiAgICAgewogICAgICAgICBBU1NFUlRfSU1QTElFUyhpc0FuaW1hdGluZygp
LCBtX2FuaW1WYWwpOwotICAgICAgICByZXR1cm4gaXNBbmltYXRpbmcoKSA/ICptX2FuaW1WYWwg
OiBtX2Jhc2VWYWw7CisgICAgICAgIHJldHVybiBpc0FuaW1hdGluZygpID8gbV9hbmltVmFsLT52
YWx1ZSgpIDogbV9iYXNlVmFsLT52YWx1ZSgpOwogICAgIH0KIAogICAgIC8vIFVzZWQgd2hlbiBj
b21taXR0aW5nIGEgY2hhbmdlIGZyb20gdGhlIFNWR0FuaW1hdGVkUHJvcGVydHkgdG8gdGhlIGF0
dHJpYnV0ZS4KLSAgICBTdHJpbmcgYmFzZVZhbEFzU3RyaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gU1ZHUHJvcGVydHlUcmFpdHM8UHJvcGVydHlUeXBlPjo6dG9TdHJpbmcobV9iYXNlVmFs
KTsgfQorICAgIFN0cmluZyBiYXNlVmFsQXNTdHJpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBtX2Jhc2VWYWwtPnZhbHVlQXNTdHJpbmcoKTsgfQogCiAgICAgLy8gVXNlZCB0byBhcHBseSB0
aGUgU1ZHQXR0cmlidXRlQW5pbWF0b3IgY2hhbmdlIHRvIHRoZSB0YXJnZXQgZWxlbWVudC4KICAg
ICBTdHJpbmcgYW5pbVZhbEFzU3RyaW5nKCkgY29uc3Qgb3ZlcnJpZGUKICAgICB7Ci0gICAgICAg
IEFTU0VSVChpc0FuaW1hdGluZygpICYmICEhbV9hbmltVmFsKTsKLSAgICAgICAgcmV0dXJuIFNW
R1Byb3BlcnR5VHJhaXRzPFByb3BlcnR5VHlwZT46OnRvU3RyaW5nKCptX2FuaW1WYWwpOworICAg
ICAgICBBU1NFUlQoaXNBbmltYXRpbmcoKSAmJiBtX2FuaW1WYWwpOworICAgICAgICByZXR1cm4g
bV9hbmltVmFsLT52YWx1ZUFzU3RyaW5nKCk7CiAgICAgfQogCiAgICAgLy8gTWFuYWdpbmcgdGhl
IHJlbGF0aW9uc2hpcCB3aXRoIHRoZSBvd25lci4KLSAgICB2b2lkIHNldERpcnR5KCkgb3ZlcnJp
ZGUgeyBtX3N0YXRlID0gU1ZHUHJvcGVydHlTdGF0ZTo6RGlydHk7IH0KLSAgICBib29sIGlzRGly
dHkoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3N0YXRlID09IFNWR1Byb3BlcnR5U3RhdGU6
OkRpcnR5OyB9Ci0gICAgT3B0aW9uYWw8U3RyaW5nPiBzeW5jaHJvbml6ZSgpIG92ZXJyaWRlCi0g
ICAgewotICAgICAgICBpZiAobV9zdGF0ZSA9PSBTVkdQcm9wZXJ0eVN0YXRlOjpDbGVhbikKLSAg
ICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgICAgIG1fc3RhdGUgPSBTVkdQcm9w
ZXJ0eVN0YXRlOjpDbGVhbjsKLSAgICAgICAgcmV0dXJuIGJhc2VWYWxBc1N0cmluZygpOwotICAg
IH0KKyAgICB2b2lkIHNldERpcnR5KCkgb3ZlcnJpZGUgeyBtX2Jhc2VWYWwtPnNldERpcnR5KCk7
IH0KKyAgICBib29sIGlzRGlydHkoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2Jhc2VWYWwt
PmlzRGlydHkoKTsgfQorICAgIE9wdGlvbmFsPFN0cmluZz4gc3luY2hyb25pemUoKSBvdmVycmlk
ZSB7IHJldHVybiBtX2Jhc2VWYWwtPnN5bmNocm9uaXplKCk7IH0KIAogICAgIC8vIFVzZWQgYnkg
UmVuZGVyU1ZHRWxlbWVudHMgYW5kIER1bXBSZW5kZXJUcmVlLgogICAgIGNvbnN0IFByb3BlcnR5
VHlwZSYgY3VycmVudFZhbHVlKCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVF9JTVBMSUVT
KGlzQW5pbWF0aW5nKCksIG1fYW5pbVZhbCk7Ci0gICAgICAgIHJldHVybiBpc0FuaW1hdGluZygp
ID8gKm1fYW5pbVZhbCA6IG1fYmFzZVZhbDsKKyAgICAgICAgcmV0dXJuIGlzQW5pbWF0aW5nKCkg
PyBtX2FuaW1WYWwtPnZhbHVlKCkgOiBtX2Jhc2VWYWwtPnZhbHVlKCk7CiAgICAgfQogCiAgICAg
Ly8gQ29udHJvbGxpbmcgdGhlIGFuaW1hdGlvbi4KICAgICB2b2lkIHN0YXJ0QW5pbWF0aW9uKCkg
b3ZlcnJpZGUKICAgICB7Ci0gICAgICAgIGlmIChpc0FuaW1hdGluZygpKQotICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICBtX2FuaW1WYWwgPSBtX2Jhc2VWYWw7CisgICAgICAgIGlmIChtX2Fu
aW1WYWwpCisgICAgICAgICAgICBtX2FuaW1WYWwtPnNldFZhbHVlKG1fYmFzZVZhbC0+dmFsdWUo
KSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGVuc3VyZUFuaW1WYWwoKTsKICAgICAgICAg
U1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6c3RhcnRBbmltYXRpb24oKTsKICAgICB9CiAKICAgICB2b2lk
IHN0b3BBbmltYXRpb24oKSBvdmVycmlkZQogICAgIHsKKyAgICAgICAgaWYgKG1fYW5pbVZhbCkK
KyAgICAgICAgICAgIG1fYW5pbVZhbC0+c2V0VmFsdWUobV9iYXNlVmFsLT52YWx1ZSgpKTsKKyAg
ICAgICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6c3RvcEFuaW1hdGlvbigpOworICAgIH0KKworICAg
IC8vIENvbnRyb2xsaW5nIHRoZSBpbnN0YW5jZSBhbmltYXRpb24uCisgICAgdm9pZCBpbnN0YW5j
ZVN0YXJ0QW5pbWF0aW9uKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkKSBvdmVycmlkZQor
ICAgIHsKKyAgICAgICAgaWYgKGlzQW5pbWF0aW5nKCkpCisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIG1fYW5pbVZhbCA9IHN0YXRpY19jYXN0PFNWR0FuaW1hdGVkUHJpbWl0aXZlUHJvcGVy
dHkmPihhbmltYXRlZCkubV9hbmltVmFsOworICAgICAgICBTVkdBbmltYXRlZFByb3BlcnR5Ojpp
bnN0YW5jZVN0YXJ0QW5pbWF0aW9uKGFuaW1hdGVkKTsKKyAgICB9CisKKyAgICB2b2lkIGluc3Rh
bmNlU3RvcEFuaW1hdGlvbigpIG92ZXJyaWRlCisgICAgewogICAgICAgICBpZiAoIWlzQW5pbWF0
aW5nKCkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIG1fYW5pbVZhbCA9IFdURjo6bnVs
bG9wdDsKLSAgICAgICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6c3RvcEFuaW1hdGlvbigpOworICAg
ICAgICBtX2FuaW1WYWwgPSBudWxscHRyOworICAgICAgICBTVkdBbmltYXRlZFByb3BlcnR5Ojpp
bnN0YW5jZVN0b3BBbmltYXRpb24oKTsKICAgICB9CiAKIHByb3RlY3RlZDoKICAgICBTVkdBbmlt
YXRlZFByaW1pdGl2ZVByb3BlcnR5KFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KQogICAgICAg
ICA6IFNWR0FuaW1hdGVkUHJvcGVydHkoY29udGV4dEVsZW1lbnQpCi0gICAgICAgICwgbV9iYXNl
VmFsKFNWR1Byb3BlcnR5VHJhaXRzPFByb3BlcnR5VHlwZT46OmluaXRpYWxWYWx1ZSgpKQorICAg
ICAgICAsIG1fYmFzZVZhbChTVkdQcmltaXRpdmVQcm9wZXJ0eTxQcm9wZXJ0eVR5cGU+OjpjcmVh
dGUoKSkKICAgICB7CiAgICAgfQogCiAgICAgU1ZHQW5pbWF0ZWRQcmltaXRpdmVQcm9wZXJ0eShT
VkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgY29uc3QgUHJvcGVydHlUeXBlJiB2YWx1ZSkKICAg
ICAgICAgOiBTVkdBbmltYXRlZFByb3BlcnR5KGNvbnRleHRFbGVtZW50KQotICAgICAgICAsIG1f
YmFzZVZhbCh2YWx1ZSkKKyAgICAgICAgLCBtX2Jhc2VWYWwoU1ZHUHJpbWl0aXZlUHJvcGVydHk8
UHJvcGVydHlUeXBlPjo6Y3JlYXRlKHZhbHVlKSkKKyAgICB7CisgICAgfQorCisgICAgUmVmUHRy
PFNWR1ByaW1pdGl2ZVByb3BlcnR5PFByb3BlcnR5VHlwZT4+JiBlbnN1cmVBbmltVmFsKCkKICAg
ICB7CisgICAgICAgIGlmICghbV9hbmltVmFsKQorICAgICAgICAgICAgbV9hbmltVmFsID0gU1ZH
UHJpbWl0aXZlUHJvcGVydHk8UHJvcGVydHlUeXBlPjo6Y3JlYXRlKG1fYmFzZVZhbC0+dmFsdWUo
KSk7CisgICAgICAgIHJldHVybiBtX2FuaW1WYWw7CiAgICAgfQogCi0gICAgUHJvcGVydHlUeXBl
IG1fYmFzZVZhbDsKLSAgICBtdXRhYmxlIE9wdGlvbmFsPFByb3BlcnR5VHlwZT4gbV9hbmltVmFs
OwotICAgIFNWR1Byb3BlcnR5U3RhdGUgbV9zdGF0ZSB7IFNWR1Byb3BlcnR5U3RhdGU6OkNsZWFu
IH07CisgICAgUmVmPFNWR1ByaW1pdGl2ZVByb3BlcnR5PFByb3BlcnR5VHlwZT4+IG1fYmFzZVZh
bDsKKyAgICBtdXRhYmxlIFJlZlB0cjxTVkdQcmltaXRpdmVQcm9wZXJ0eTxQcm9wZXJ0eVR5cGU+
PiBtX2FuaW1WYWw7CiB9OwogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGll
cy9TVkdBbmltYXRlZFByb3BlcnR5QW5pbWF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5QW5pbWF0b3IuaAkocmV2aXNp
b24gMjQ3MDA5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQ
cm9wZXJ0eUFuaW1hdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTc3LDYgKzc3LDggQEAgcHVibGlj
OgogICAgIHsKICAgICAgICAgaWYgKGlzQW5pbWF0ZWRTdHlsZVByb3BlcnR5QW5pYW10b3IodGFy
Z2V0RWxlbWVudCkpCiAgICAgICAgICAgICBhcHBseUFuaW1hdGVkU3R5bGVQcm9wZXJ0eUNoYW5n
ZSh0YXJnZXRFbGVtZW50LCBtX2FuaW1hdGVkLT5hbmltVmFsQXNTdHJpbmcoKSk7CisgICAgICAg
IGVsc2UgaWYgKGlzQW5pbWF0ZWRTdHlsZUNsYXNzQW5pYW10b3IoKSkKKyAgICAgICAgICAgIGlu
dmFsaWRhdGVTdHlsZSh0YXJnZXRFbGVtZW50KTsKICAgICAgICAgYXBwbHlBbmltYXRlZFByb3Bl
cnR5Q2hhbmdlKHRhcmdldEVsZW1lbnQpOwogICAgIH0KIApAQCAtODgsNiArOTAsOCBAQCBwdWJs
aWM6CiAgICAgICAgIGFwcGx5QW5pbWF0ZWRQcm9wZXJ0eUNoYW5nZSh0YXJnZXRFbGVtZW50KTsK
ICAgICAgICAgaWYgKGlzQW5pbWF0ZWRTdHlsZVByb3BlcnR5QW5pYW10b3IodGFyZ2V0RWxlbWVu
dCkpCiAgICAgICAgICAgICByZW1vdmVBbmltYXRlZFN0eWxlUHJvcGVydHkodGFyZ2V0RWxlbWVu
dCk7CisgICAgICAgIGVsc2UgaWYgKGlzQW5pbWF0ZWRTdHlsZUNsYXNzQW5pYW10b3IoKSkKKyAg
ICAgICAgICAgIGludmFsaWRhdGVTdHlsZSh0YXJnZXRFbGVtZW50KTsKIAogICAgICAgICBtX2Fu
aW1hdGVkLT5zdG9wQW5pbWF0aW9uKCk7CiAgICAgICAgIGZvciAoYXV0byYgaW5zdGFuY2UgOiBt
X2FuaW1hdGVkSW5zdGFuY2VzKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMv
U1ZHQXR0cmlidXRlQW5pbWF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2
Zy9wcm9wZXJ0aWVzL1NWR0F0dHJpYnV0ZUFuaW1hdG9yLmNwcAkocmV2aXNpb24gMjQ3MDA5KQor
KysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQXR0cmlidXRlQW5pbWF0b3IuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yOCwxOSArMjgsMzIgQEAKIAogI2luY2x1ZGUgIkNTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbi5oIgogI2luY2x1ZGUgIkNTU1Byb3BlcnR5UGFyc2VyLmgiCisj
aW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHRWxlbWVudC5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKK2Jvb2wgU1ZHQXR0cmlidXRlQW5pbWF0b3I6OmlzQW5pbWF0ZWRTdHls
ZUNsYXNzQW5pYW10b3IoKSBjb25zdAoreworICAgIHJldHVybiBtX2F0dHJpYnV0ZU5hbWUubWF0
Y2hlcyhIVE1MTmFtZXM6OmNsYXNzQXR0cik7Cit9CisKIGJvb2wgU1ZHQXR0cmlidXRlQW5pbWF0
b3I6OmlzQW5pbWF0ZWRTdHlsZVByb3BlcnR5QW5pYW10b3IoY29uc3QgU1ZHRWxlbWVudCogdGFy
Z2V0RWxlbWVudCkgY29uc3QKIHsKICAgICByZXR1cm4gdGFyZ2V0RWxlbWVudC0+aXNBbmltYXRl
ZFN0eWxlQXR0cmlidXRlKG1fYXR0cmlidXRlTmFtZSk7CiB9CiAKK3ZvaWQgU1ZHQXR0cmlidXRl
QW5pbWF0b3I6OmludmFsaWRhdGVTdHlsZShTVkdFbGVtZW50KiB0YXJnZXRFbGVtZW50KQorewor
ICAgIFNWR0VsZW1lbnQ6Okluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRhcmdldEVs
ZW1lbnQpOworICAgIHRhcmdldEVsZW1lbnQtPmludmFsaWRhdGVTVkdQcmVzZW50YXRpb25BdHRy
aWJ1dGVTdHlsZSgpOworfQorCiB2b2lkIFNWR0F0dHJpYnV0ZUFuaW1hdG9yOjphcHBseUFuaW1h
dGVkU3R5bGVQcm9wZXJ0eUNoYW5nZShTVkdFbGVtZW50KiBlbGVtZW50LCBDU1NQcm9wZXJ0eUlE
IGlkLCBjb25zdCBTdHJpbmcmIHZhbHVlKQogewogICAgIEFTU0VSVChlbGVtZW50KTsKICAgICBB
U1NFUlQoIWVsZW1lbnQtPm1fZGVsZXRpb25IYXNCZWd1bik7CisgICAgQVNTRVJUKGlkICE9IENT
U1Byb3BlcnR5SW52YWxpZCk7CiAgICAgCiAgICAgaWYgKCFlbGVtZW50LT5lbnN1cmVBbmltYXRl
ZFNNSUxTdHlsZVByb3BlcnRpZXMoKS5zZXRQcm9wZXJ0eShpZCwgdmFsdWUsIGZhbHNlKSkKICAg
ICAgICAgcmV0dXJuOwpAQCAtNzAsNiArODMsNyBAQCB2b2lkIFNWR0F0dHJpYnV0ZUFuaW1hdG9y
OjpyZW1vdmVBbmltYXRlCiB7CiAgICAgQVNTRVJUKGVsZW1lbnQpOwogICAgIEFTU0VSVCghZWxl
bWVudC0+bV9kZWxldGlvbkhhc0JlZ3VuKTsKKyAgICBBU1NFUlQoaWQgIT0gQ1NTUHJvcGVydHlJ
bnZhbGlkKTsKIAogICAgIGVsZW1lbnQtPmVuc3VyZUFuaW1hdGVkU01JTFN0eWxlUHJvcGVydGll
cygpLnJlbW92ZVByb3BlcnR5KGlkKTsKICAgICBlbGVtZW50LT5pbnZhbGlkYXRlU3R5bGUoKTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0F0dHJpYnV0ZUFuaW1hdG9y
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQXR0cmli
dXRlQW5pbWF0b3IuaAkocmV2aXNpb24gMjQ3MDA5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3By
b3BlcnRpZXMvU1ZHQXR0cmlidXRlQW5pbWF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtNzQsOCAr
NzQsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgT3B0aW9uYWw8ZmxvYXQ+IGNhbGN1bGF0ZURp
c3RhbmNlKFNWR0VsZW1lbnQqLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSBjb25zdCB7
IHJldHVybiB7IH07IH0KIAogcHJvdGVjdGVkOgorICAgIGJvb2wgaXNBbmltYXRlZFN0eWxlQ2xh
c3NBbmlhbXRvcigpIGNvbnN0OwogICAgIGJvb2wgaXNBbmltYXRlZFN0eWxlUHJvcGVydHlBbmlh
bXRvcihjb25zdCBTVkdFbGVtZW50KikgY29uc3Q7CiAKKyAgICBzdGF0aWMgdm9pZCBpbnZhbGlk
YXRlU3R5bGUoU1ZHRWxlbWVudCopOwogICAgIHN0YXRpYyB2b2lkIGFwcGx5QW5pbWF0ZWRTdHls
ZVByb3BlcnR5Q2hhbmdlKFNWR0VsZW1lbnQqLCBDU1NQcm9wZXJ0eUlELCBjb25zdCBTdHJpbmcm
IHZhbHVlKTsKICAgICBzdGF0aWMgdm9pZCByZW1vdmVBbmltYXRlZFN0eWxlUHJvcGVydHkoU1ZH
RWxlbWVudCosIENTU1Byb3BlcnR5SUQpOwogICAgIHN0YXRpYyB2b2lkIGFwcGx5QW5pbWF0ZWRQ
cm9wZXJ0eUNoYW5nZShTVkdFbGVtZW50KiwgY29uc3QgUXVhbGlmaWVkTmFtZSYpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJpbWl0aXZlUHJvcGVydHkuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcmltaXRpdmVQcm9w
ZXJ0eS5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NW
R1ByaW1pdGl2ZVByb3BlcnR5LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2MSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgIlNWR1Byb3BlcnR5LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordGVt
cGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgorY2xhc3MgU1ZHUHJpbWl0aXZlUHJvcGVydHkg
OiBwdWJsaWMgU1ZHUHJvcGVydHkgeworcHVibGljOgorICAgIHVzaW5nIFZhbHVlVHlwZSA9IFBy
b3BlcnR5VHlwZTsKKworICAgIHN0YXRpYyBSZWY8U1ZHUHJpbWl0aXZlUHJvcGVydHk+IGNyZWF0
ZShjb25zdCBQcm9wZXJ0eVR5cGUmIHZhbHVlID0gU1ZHUHJvcGVydHlUcmFpdHM8UHJvcGVydHlU
eXBlPjo6aW5pdGlhbFZhbHVlKCkpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBTVkdQcmltaXRpdmVQcm9wZXJ0eSh2YWx1ZSkpOworICAgIH0KKworICAgIC8vIEdldHRlci9T
ZXR0ZXIgZm9yIHRoZSB2YWx1ZS4KKyAgICBjb25zdCBQcm9wZXJ0eVR5cGUmIHZhbHVlKCkgY29u
c3QgeyByZXR1cm4gbV92YWx1ZTsgfQorICAgIFByb3BlcnR5VHlwZSYgdmFsdWUoKSB7IHJldHVy
biBtX3ZhbHVlOyB9CisgICAgdm9pZCBzZXRWYWx1ZShjb25zdCBQcm9wZXJ0eVR5cGUmIHZhbHVl
KSB7IG1fdmFsdWUgPSB2YWx1ZTsgfQorCisgICAgU3RyaW5nIHZhbHVlQXNTdHJpbmcoKSBjb25z
dCBvdmVycmlkZQorICAgIHsKKyAgICAgICAgcmV0dXJuIFNWR1Byb3BlcnR5VHJhaXRzPFByb3Bl
cnR5VHlwZT46OnRvU3RyaW5nKG1fdmFsdWUpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBTVkdQ
cmltaXRpdmVQcm9wZXJ0eShjb25zdCBQcm9wZXJ0eVR5cGUmIHZhbHVlKQorICAgICAgICA6IG1f
dmFsdWUodmFsdWUpCisgICAgeworICAgIH0KKworICAgIFByb3BlcnR5VHlwZSBtX3ZhbHVlOwor
fTsKKworfQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjQ3MDA5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTktMDctMDEgIFNhaWQgQWJv
dS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBBc3NlcnRpb24g
ZmlyZXMgd2hlbiBhbmltYXRpbmcgdGhlICdjbGFzcycgYXR0cmlidXRlIG9mIGFuIFNWRyBlbGVt
ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTcz
NzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN2
Zy9hbmltYXRpb25zL2FuaW1hdGVkLWJvb2wtZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC1pbnN0
YW5jZXMtZXhwZWN0ZWQuc3ZnOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9hbmlt
YXRlZC1ib29sLWV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQtaW5zdGFuY2VzLnN2ZzogQWRkZWQu
CisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZWQtc3RyaW5nLWNsYXNzLWluc3RhbmNl
cy1leHBlY3RlZC5zdmc6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL2FuaW1hdGVk
LXN0cmluZy1jbGFzcy1pbnN0YW5jZXMuc3ZnOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0
aW9ucy9hbmltYXRlZC1zdHJpbmctaHJlZi1leHBlY3RlZC5zdmc6IEFkZGVkLgorICAgICAgICAq
IHN2Zy9hbmltYXRpb25zL2FuaW1hdGVkLXN0cmluZy1ocmVmLnN2ZzogQWRkZWQuCisKIDIwMTkt
MDYtMzAgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjI0Njk1OS4KSW5kZXg6IExheW91dFRlc3RzL3N2
Zy9hbmltYXRpb25zL2FuaW1hdGVkLWJvb2wtZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC1pbnN0
YW5jZXMtZXhwZWN0ZWQuc3ZnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRp
b25zL2FuaW1hdGVkLWJvb2wtZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC1pbnN0YW5jZXMtZXhw
ZWN0ZWQuc3ZnCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2Fu
aW1hdGVkLWJvb2wtZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC1pbnN0YW5jZXMtZXhwZWN0ZWQu
c3ZnCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMyBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3
dy53My5vcmcvMjAwMC9zdmciPgorICAgIDxyZWN0IHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBm
aWxsPSJncmVlbiIvPgorPC9zdmc+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9h
bmltYXRlZC1ib29sLWV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQtaW5zdGFuY2VzLnN2Zwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlZC1ib29sLWV4dGVy
bmFsUmVzb3VyY2VzUmVxdWlyZWQtaW5zdGFuY2VzLnN2Zwkobm9uZXhpc3RlbnQpCisrKyBMYXlv
dXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlZC1ib29sLWV4dGVybmFsUmVzb3VyY2VzUmVx
dWlyZWQtaW5zdGFuY2VzLnN2Zwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDkgQEAKKzxzdmcg
eG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KKyAgICA8ZGVzYz5UZXN0IHRoYXQg
dGhlIGluc3RhbmNlIG9mIHRoZSAnZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCcgYXR0cmlidXRl
IGlzIGFuaW1hdGVkIGNvcnJlY3RseS48L2Rlc2M+CisgICAgPGRlZj4KKyAgICAgICAgPHJlY3Qg
aWQ9InJlY3QiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBmaWxsPSJncmVlbiI+CisgICAgICAg
ICAgICA8c2V0IGF0dHJpYnV0ZU5hbWU9ImV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQiIHRvPSJ0
cnVlIi8+CisgICAgICAgIDwvcmVjdD4KKyAgICA8L2RlZj4KKyAgICA8dXNlIGhyZWY9IiNyZWN0
Ii8+Cis8L3N2Zz4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGVkLXN0
cmluZy1jbGFzcy1pbnN0YW5jZXMtZXhwZWN0ZWQuc3ZnCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGVkLXN0cmluZy1jbGFzcy1pbnN0YW5jZXMtZXhwZWN0
ZWQuc3ZnCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1h
dGVkLXN0cmluZy1jbGFzcy1pbnN0YW5jZXMtZXhwZWN0ZWQuc3ZnCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsMyBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgor
ICAgIDxyZWN0IHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBmaWxsPSJncmVlbiIvPgorPC9zdmc+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvYW5pbWF0ZWQtc3RyaW5nLWNsYXNzLWluc3RhbmNlcy5zdmcKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZWQtc3RyaW5nLWNsYXNzLWluc3RhbmNl
cy5zdmcJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0
ZWQtc3RyaW5nLWNsYXNzLWluc3RhbmNlcy5zdmcJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwx
NyBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgorICAgIDxkZXNj
PlRlc3QgdGhhdCB0aGUgaW5zdGFuY2Ugb2YgdGhlICdjbGFzcycgYXR0cmlidXRlIGlzIGFuaW1h
dGVkIGFuZCBpdHMgcmVuZGVyZXIgaXMgaW52YWxpZGF0ZWQgY29ycmVjdGx5LjwvZGVzYz4KKyAg
ICA8c3R5bGU+CisgICAgICAgIC5yZWQtZmlsbCB7CisgICAgICAgICAgICBmaWxsOiByZWQ7Cisg
ICAgICAgIH0KKyAgICAgICAgLmdyZWVuLWZpbGwgeworICAgICAgICAgICAgZmlsbDogZ3JlZW47
CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxkZWY+CisgICAgICAgIDxyZWN0IGlkPSJy
ZWN0IiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgY2xhc3M9InJlZC1maWxsIj4KKyAgICAgICAg
ICAgIDxzZXQgaWQ9ImdyZWVuIiBhdHRyaWJ1dGVOYW1lPSJjbGFzcyIgdG89ImdyZWVuLWZpbGwi
IGZpbGw9ImZyZWV6ZSIvPgorICAgICAgICA8L3JlY3Q+CisgICAgPC9kZWY+CisgICAgPHVzZSBo
cmVmPSIjcmVjdCIvPgorPC9zdmc+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9h
bmltYXRlZC1zdHJpbmctaHJlZi1leHBlY3RlZC5zdmcKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZWQtc3RyaW5nLWhyZWYtZXhwZWN0ZWQuc3ZnCShub25l
eGlzdGVudCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGVkLXN0cmluZy1o
cmVmLWV4cGVjdGVkLnN2Zwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDMgQEAKKzxzdmcgeG1s
bnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KKyAgICA8cmVjdCB3aWR0aD0iMTAwIiBo
ZWlnaHQ9IjEwMCIgZmlsbD0iZ3JlZW4iLz4KKzwvc3ZnPgpJbmRleDogTGF5b3V0VGVzdHMvc3Zn
L2FuaW1hdGlvbnMvYW5pbWF0ZWQtc3RyaW5nLWhyZWYuc3ZnCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGVkLXN0cmluZy1ocmVmLnN2Zwkobm9uZXhpc3Rl
bnQpCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlZC1zdHJpbmctaHJlZi5z
dmcJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNyBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3
dy53My5vcmcvMjAwMC9zdmciPgorICAgIDxkZXNjPlRlc3QgdGhhdCB0aGUgJ2hyZWYnIGF0dHJp
YnV0ZSBpcyBhbmltYXRlZCBjb3JyZWN0bHkuPC9kZXNjPgorICAgIDxkZWZzPgorICAgICAgICA8
bGluZWFyR3JhZGllbnQgaWQ9InJlZC1maWxsIj4KKyAgICAgICAgICAgIDxzdG9wIG9mZnNldD0i
MCUiICBzdG9wLWNvbG9yPSJyZWQiIC8+CisgICAgICAgICAgICA8c3RvcCBvZmZzZXQ9IjEwMCUi
IHN0b3AtY29sb3I9InJlZCIgLz4KKyAgICAgICAgPC9saW5lYXJHcmFkaWVudD4KKyAgICAgICAg
PGxpbmVhckdyYWRpZW50IGlkPSJncmVlbi1maWxsIj4KKyAgICAgICAgICAgIDxzdG9wIG9mZnNl
dD0iMCUiICBzdG9wLWNvbG9yPSJncmVlbiIgLz4KKyAgICAgICAgICAgIDxzdG9wIG9mZnNldD0i
MTAwJSIgc3RvcC1jb2xvcj0iZ3JlZW4iIC8+CisgICAgICAgIDwvbGluZWFyR3JhZGllbnQ+Cisg
ICAgICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iZ3JhZGllbnQiIGhyZWY9IiNyZWQtZmlsbCI+Cisg
ICAgICAgICAgICA8c2V0IGF0dHJpYnV0ZU5hbWU9ImhyZWYiIHRvPSIjZ3JlZW4tZmlsbCIgZmls
bD0iZnJlZXplIi8+CisgICAgICAgIDwvbGluZWFyR3JhZGllbnQ+CisgICAgPC9kZWZzPgorICAg
IDxyZWN0IGlkPSJyZWN0IiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgZmlsbD0idXJsKCcjZ3Jh
ZGllbnQnKSIvPgorPC9zdmc+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>373365</attachid>
            <date>2019-07-02 15:37:50 -0700</date>
            <delta_ts>2019-07-02 16:42:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197372-20190702153749.patch</filename>
            <type>text/plain</type>
            <size>23165</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0NzA3MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUyIEBACisyMDE5LTA3LTAyICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQXNzZXJ0aW9u
IGZpcmVzIHdoZW4gYW5pbWF0aW5nIHRoZSAnY2xhc3MnIGF0dHJpYnV0ZSBvZiBhbiBTVkcgZWxl
bWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3
MzcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWxs
IGluc3RhbmNlcyBvZiBTVkcgYW5pbWF0ZWQgcHJvcGVydGllcyBoYXZlIHRvIHNoYXJlIGEgc2lu
Z2xlIGFuaW1WYWwKKyAgICAgICAgc3VjaCB0aGF0IG9uY2UgaXRzIHZhbHVlIGlzIHByb2dyZXNz
ZWQsIGFsbCB0aGUgaW5zdGFuY2VzIHdpbGwgc2VlIHRoZQorICAgICAgICBjaGFuZ2UuIFRoaXMg
d2FzIG5vdCBoYXBwZW5pbmcgZm9yIFNWR0FuaW1hdGVkUHJpbWl0aXZlUHJvcGVydHkuIFRvIGRv
CisgICAgICAgIHRoYXQgd2UgbmVlZCB0bzoKKworICAgICAgICAtLSBJbnRyb2R1Y2UgdGhlIG5l
dyB0ZW1wbGF0ZSBjbGFzcyBTVkdQcmltaXRpdmVQcm9wZXJ0eSB3aGljaCBpcyBkZXJpdmVkCisg
ICAgICAgICAgIGZyb20gU1ZHUHJvcGVydHkuIFRoaXMgY2xhc3Mgd2lsbCBtYW5hZ2UgYSBzaW5n
bGUgcHJpbWl0aXZlIHZhbHVlLgorICAgICAgICAtLSBDaGFuZ2UgdGhlIHR5cGUgb2YgU1ZHQW5p
bWF0ZWRQcmltaXRpdmVQcm9wZXJ0eTo6bV9hbmltVmFsIHRvCisgICAgICAgICAgIFJlZlB0cjxT
VkdQcmltaXRpdmVQcm9wZXJ0eTxQcm9wZXJ0eVR5cGU+Pi4gVGhlIG1hc3RlciBwcm9wZXJ0eSB3
aWxsCisgICAgICAgICAgIGNyZWF0ZSBpdCBhbmQgYWxsIHRoZSBpbnN0YW5jZXMgd2lsbCBob2xk
IHJlZmVyZW5jZXMgdG8gdGhlIHNhbWUgcG9pbnRlci4KKyAgICAgICAgLS0gQ2hhbmdlIHRoZSB0
eXBlIG9mIFJlZjxTVkdQcmltaXRpdmVQcm9wZXJ0eTxQcm9wZXJ0eVR5cGU+PiB0bworICAgICAg
ICAgICBSZWY8U1ZHUHJpbWl0aXZlUHJvcGVydHk8UHJvcGVydHlUeXBlPj4gZm9yIHNpbXBsaWNp
dHkgYW5kIGdldCByaWQgb2YKKyAgICAgICAgICAgU1ZHQW5pbWF0ZWRQcmltaXRpdmVQcm9wZXJ0
eTo6bV9zdGF0ZS4KKyAgICAgICAgLS0gT3ZlcnJpZGUgdGhlIHZpcnR1YWwgbWV0aG9kcyBpbnN0
YW5jZVN0YXJ0QW5pbWF0aW9uKCkgYW5kCisgICAgICAgICAgIGluc3RhbmNlU3RvcEFuaW1hdGlv
bigpIG9mIFNWR0FuaW1hdGVkUHJpbWl0aXZlUHJvcGVydHkuCisgICAgICAgIC0tIFNWR0FuaW1h
dGVkU3RyaW5nQW5pbWF0b3Igc2hvdWxkIGludmFsaWRhdGUgdGhlIHN0eWxlIG9mIHRoZSB0YXJn
ZXQKKyAgICAgICAgICAgZWxlbWVudCBpZiBhdHRyaWJ1dGUgbmFtZSBpcyAnY2xhc3MnIGFuZCB3
aGVuIGl0cyBhbmltVmFsIGNoYW5nZXMuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcmlt
aXRpdmVQcm9wZXJ0eS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcmltaXRpdmVQ
cm9wZXJ0eTo6c2V0QmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFByaW1p
dGl2ZVByb3BlcnR5OjpzZXRCYXNlVmFsSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
QW5pbWF0ZWRQcmltaXRpdmVQcm9wZXJ0eTo6YmFzZVZhbCBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZFByaW1pdGl2ZVByb3BlcnR5OjpzZXRBbmltVmFsKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVkUHJpbWl0aXZlUHJvcGVydHk6OmFuaW1WYWwgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcmltaXRpdmVQcm9wZXJ0eTo6YW5pbVZhbCk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFByaW1pdGl2ZVByb3BlcnR5OjpjdXJyZW50
VmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcmltaXRpdmVQcm9w
ZXJ0eTo6U1ZHQW5pbWF0ZWRQcmltaXRpdmVQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlZFByaW1pdGl2ZVByb3BlcnR5OjplbnN1cmVBbmltVmFsKToKKyAgICAgICAgKiBz
dmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5QW5pbWF0b3JJbXBsLmg6CisgICAgICAg
ICogc3ZnL3Byb3BlcnRpZXMvU1ZHQXR0cmlidXRlQW5pbWF0b3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQXR0cmlidXRlQW5pbWF0b3I6OmludmFsaWRhdGVTdHlsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBdHRyaWJ1dGVBbmltYXRvcjo6YXBwbHlBbmltYXRlZFN0eWxlUHJvcGVydHlD
aGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQXR0cmlidXRlQW5pbWF0b3I6OnJlbW92ZUFu
aW1hdGVkU3R5bGVQcm9wZXJ0eSk6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQXR0cmli
dXRlQW5pbWF0b3IuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdQcmltaXRpdmVQcm9w
ZXJ0eS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1ByaW1pdGl2ZVByb3BlcnR5Ojpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJpbWl0aXZlUHJvcGVydHk6OnZhbHVlIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ByaW1pdGl2ZVByb3BlcnR5Ojp2YWx1ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdQcmltaXRpdmVQcm9wZXJ0eTo6c2V0VmFsdWUpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHUHJpbWl0aXZlUHJvcGVydHk6OlNWR1ByaW1pdGl2ZVByb3BlcnR5KToK
KwogMjAxOS0wNy0wMiAgQW5kcmVzIEdvbnphbGV6ICA8YW5kcmVzZ18yMkBhcHBsZS5jb20+CiAK
ICAgICAgICAgRW5oYW5jZSBzdXBwb3J0IG9mIGFyaWEtaGFzcG9wdXAgcGVyIEFSSUEgMS4xIHNw
ZWNpZmljYXRpb24uCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNDcwMDkpCisrKyBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTg1Nyw3
ICs4NTcsNyBAQAogCQkyRTQzNDY1MTBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyT2JqZWN0UHJv
eHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFNDM0
NjNGMEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXJPYmplY3RQcm94eS5oICovOyB9OwogCQkyRTQz
NDY1MzBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyUnVuTG9vcC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU0MzQ2NDEwRjU0NkE4MjAwQjBGMUJBIC8q
IFdvcmtlclJ1bkxvb3AuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQkyRTQzNDY1NTBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyVGhyZWFkLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTQzNDY0MzBGNTQ2
QTgyMDBCMEYxQkEgLyogV29ya2VyVGhyZWFkLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMkU3NTg0MUUxMjc3OUFEQTAwNjI2MjhCIC8qIEZpbGVS
ZWFkZXJMb2FkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDJFNzU4NDFCMTI3NzlBREEwMDYyNjI4QiAvKiBGaWxlUmVhZGVyTG9hZGVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTt9OworCQkyRTc1ODQxRTEyNzc5
QURBMDA2MjYyOEIgLyogRmlsZVJlYWRlckxvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU3NTg0MUIxMjc3OUFEQTAwNjI2MjhCIC8qIEZpbGVS
ZWFkZXJMb2FkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkyRTc1ODQxRjEyNzc5QURBMDA2MjYyOEIgLyogRmlsZVJlYWRlckxvYWRlckNsaWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU3NTg0
MUMxMjc3OUFEQTAwNjI2MjhCIC8qIEZpbGVSZWFkZXJMb2FkZXJDbGllbnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyRTk0RjQzQzExOTIwN0RB
MDBCN0Y3NUQgLyogSlNGaWxlUmVhZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyRTk0RjQzQTExOTIwN0RBMDBCN0Y3NUQgLyogSlNGaWxlUmVhZGVy
LmggKi87IH07CiAJCTJFOUI1RDhGMUI2NkE5NEUwMDhDNkEyNCAvKiBXaGVlbEV2ZW50RGVsdGFG
aWx0ZXJNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDJFOUI1RDhFMUI2NkE5NEUwMDhDNkEyNCAvKiBXaGVlbEV2ZW50RGVsdGFGaWx0ZXJNYWMuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtODUzOCw2
ICs4NTM4LDcgQEAKIAkJNTNFRDNGREQxNjdBODhFNzAwNjc2MkU2IC8qIEpTSW50ZXJuYWxTZXR0
aW5nc0dlbmVyYXRlZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0ludGVy
bmFsU2V0dGluZ3NHZW5lcmF0ZWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTUw
QTBCQzcwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUXVhbGlmaWVkTmFtZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9
OwogCQk1NTBBMEJDODA4NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVkTmFtZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBRdWFsaWZpZWROYW1l
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9
OworCQk1NTBGNjY0NTIyQ0E4OUJEMDAwQTM0MTcgLyogU1ZHUHJpbWl0aXZlUHJvcGVydHkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU1ZHUHJpbWl0aXZlUHJvcGVydHkuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTUxMzdCMkMyMDM3OUU1NTAwMDEwMDRCIC8qIFNWR01hcmtlclR5cGVzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR01hcmtlclR5cGVzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1NDY3NTc3MUZEMUZDMUEwMDNCMTBCMCAvKiBJbWFn
ZVNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbWFnZVNvdXJjZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1NDY3NTc4MUZEMUZDMUEwMDNCMTBCMCAvKiBJbWFnZVNv
dXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZVNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTYxMDksNiArMTYxMTAsNyBAQAogCQkJCTU1RUU1MzU0MjIzQjI5RTkwMEZC
QTk0NCAvKiBTVkdNZW1iZXJBY2Nlc3Nvci5oICovLAogCQkJCTU1QkUwMjVBMjIzQjI5QzIwMDMy
RjA4QSAvKiBTVkdQb2ludGVyTWVtYmVyQWNjZXNzb3IuaCAqLywKIAkJCQk1NURDQzUyNTIyNDA3
NDlFMDBDMjZFMzIgLyogU1ZHUHJpbWl0aXZlTGlzdC5oICovLAorCQkJCTU1MEY2NjQ1MjJDQTg5
QkQwMDBBMzQxNyAvKiBTVkdQcmltaXRpdmVQcm9wZXJ0eS5oICovLAogCQkJCTcyNjZGMDE1MjI0
MUMwOTgwMDgzMzk3NSAvKiBTVkdQcmltaXRpdmVQcm9wZXJ0eUFuaW1hdG9yLmggKi8sCiAJCQkJ
NzI2NkYwMTQyMjQxQkZCMjAwODMzOTc1IC8qIFNWR1ByaW1pdGl2ZVByb3BlcnR5QW5pbWF0b3JJ
bXBsLmggKi8sCiAJCQkJNTVFRTUzNjMyMjNCMkEyNDAwRkJBOTQ0IC8qIFNWR1Byb3BlcnR5Lmgg
Ki8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByaW1p
dGl2ZVByb3BlcnR5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRp
ZXMvU1ZHQW5pbWF0ZWRQcmltaXRpdmVQcm9wZXJ0eS5oCShyZXZpc2lvbiAyNDcwMDkpCisrKyBT
b3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByaW1pdGl2ZVByb3BlcnR5
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5j
bHVkZSAiU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oIgotI2luY2x1ZGUgIlNWR1Byb3BlcnR5LmgiCisj
aW5jbHVkZSAiU1ZHUHJpbWl0aXZlUHJvcGVydHkuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CkBAIC00OCw5NSArNDgsMTEyIEBAIHB1YmxpYzoKICAgICAvLyBVc2VkIGJ5IHRoZSBET00uCiAg
ICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0QmFzZVZhbChjb25zdCBQcm9wZXJ0eVR5cGUmIGJhc2VW
YWwpCiAgICAgewotICAgICAgICBtX2Jhc2VWYWwgPSBiYXNlVmFsOworICAgICAgICBtX2Jhc2VW
YWwtPnNldFZhbHVlKGJhc2VWYWwpOwogICAgICAgICBjb21taXRQcm9wZXJ0eUNoYW5nZShudWxs
cHRyKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKICAgICAvLyBVc2VkIGJ5IFNWR0Vs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKCkuCi0gICAgdm9pZCBzZXRCYXNlVmFsSW50ZXJuYWwoY29u
c3QgUHJvcGVydHlUeXBlJiBiYXNlVmFsKSB7IG1fYmFzZVZhbCA9IGJhc2VWYWw7IH0KLSAgICBj
b25zdCBQcm9wZXJ0eVR5cGUmIGJhc2VWYWwoKSBjb25zdCB7IHJldHVybiBtX2Jhc2VWYWw7IH0K
KyAgICB2b2lkIHNldEJhc2VWYWxJbnRlcm5hbChjb25zdCBQcm9wZXJ0eVR5cGUmIGJhc2VWYWwp
IHsgbV9iYXNlVmFsLT5zZXRWYWx1ZShiYXNlVmFsKTsgfQorICAgIGNvbnN0IFByb3BlcnR5VHlw
ZSYgYmFzZVZhbCgpIGNvbnN0IHsgcmV0dXJuIG1fYmFzZVZhbC0+dmFsdWUoKTsgfQogCiAgICAg
Ly8gVXNlZCBieSBTVkdBdHRyaWJ1dGVBbmltYXRvcjo6cHJvZ3Jlc3MuCiAgICAgdm9pZCBzZXRB
bmltVmFsKGNvbnN0IFByb3BlcnR5VHlwZSYgYW5pbVZhbCkKICAgICB7Ci0gICAgICAgIEFTU0VS
VChpc0FuaW1hdGluZygpKTsKLSAgICAgICAgbV9hbmltVmFsID0gYW5pbVZhbDsKKyAgICAgICAg
QVNTRVJUKGlzQW5pbWF0aW5nKCkgJiYgbV9hbmltVmFsKTsKKyAgICAgICAgbV9hbmltVmFsLT5z
ZXRWYWx1ZShhbmltVmFsKTsKICAgICB9CiAKICAgICBjb25zdCBQcm9wZXJ0eVR5cGUmIGFuaW1W
YWwoKSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUX0lNUExJRVMoaXNBbmltYXRpbmcoKSwg
bV9hbmltVmFsKTsKLSAgICAgICAgcmV0dXJuIGlzQW5pbWF0aW5nKCkgPyAqbV9hbmltVmFsIDog
bV9iYXNlVmFsOworICAgICAgICByZXR1cm4gaXNBbmltYXRpbmcoKSA/IG1fYW5pbVZhbC0+dmFs
dWUoKSA6IG1fYmFzZVZhbC0+dmFsdWUoKTsKICAgICB9CiAKICAgICBQcm9wZXJ0eVR5cGUmIGFu
aW1WYWwoKQogICAgIHsKICAgICAgICAgQVNTRVJUX0lNUExJRVMoaXNBbmltYXRpbmcoKSwgbV9h
bmltVmFsKTsKLSAgICAgICAgcmV0dXJuIGlzQW5pbWF0aW5nKCkgPyAqbV9hbmltVmFsIDogbV9i
YXNlVmFsOworICAgICAgICByZXR1cm4gaXNBbmltYXRpbmcoKSA/IG1fYW5pbVZhbC0+dmFsdWUo
KSA6IG1fYmFzZVZhbC0+dmFsdWUoKTsKICAgICB9CiAKICAgICAvLyBVc2VkIHdoZW4gY29tbWl0
dGluZyBhIGNoYW5nZSBmcm9tIHRoZSBTVkdBbmltYXRlZFByb3BlcnR5IHRvIHRoZSBhdHRyaWJ1
dGUuCi0gICAgU3RyaW5nIGJhc2VWYWxBc1N0cmluZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IFNWR1Byb3BlcnR5VHJhaXRzPFByb3BlcnR5VHlwZT46OnRvU3RyaW5nKG1fYmFzZVZhbCk7IH0K
KyAgICBTdHJpbmcgYmFzZVZhbEFzU3RyaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9i
YXNlVmFsLT52YWx1ZUFzU3RyaW5nKCk7IH0KIAogICAgIC8vIFVzZWQgdG8gYXBwbHkgdGhlIFNW
R0F0dHJpYnV0ZUFuaW1hdG9yIGNoYW5nZSB0byB0aGUgdGFyZ2V0IGVsZW1lbnQuCiAgICAgU3Ry
aW5nIGFuaW1WYWxBc1N0cmluZygpIGNvbnN0IG92ZXJyaWRlCiAgICAgewotICAgICAgICBBU1NF
UlQoaXNBbmltYXRpbmcoKSAmJiAhIW1fYW5pbVZhbCk7Ci0gICAgICAgIHJldHVybiBTVkdQcm9w
ZXJ0eVRyYWl0czxQcm9wZXJ0eVR5cGU+Ojp0b1N0cmluZygqbV9hbmltVmFsKTsKKyAgICAgICAg
QVNTRVJUKGlzQW5pbWF0aW5nKCkgJiYgbV9hbmltVmFsKTsKKyAgICAgICAgcmV0dXJuIG1fYW5p
bVZhbC0+dmFsdWVBc1N0cmluZygpOwogICAgIH0KIAogICAgIC8vIE1hbmFnaW5nIHRoZSByZWxh
dGlvbnNoaXAgd2l0aCB0aGUgb3duZXIuCi0gICAgdm9pZCBzZXREaXJ0eSgpIG92ZXJyaWRlIHsg
bV9zdGF0ZSA9IFNWR1Byb3BlcnR5U3RhdGU6OkRpcnR5OyB9Ci0gICAgYm9vbCBpc0RpcnR5KCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zdGF0ZSA9PSBTVkdQcm9wZXJ0eVN0YXRlOjpEaXJ0
eTsgfQotICAgIE9wdGlvbmFsPFN0cmluZz4gc3luY2hyb25pemUoKSBvdmVycmlkZQotICAgIHsK
LSAgICAgICAgaWYgKG1fc3RhdGUgPT0gU1ZHUHJvcGVydHlTdGF0ZTo6Q2xlYW4pCi0gICAgICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgICAgICBtX3N0YXRlID0gU1ZHUHJvcGVydHlT
dGF0ZTo6Q2xlYW47Ci0gICAgICAgIHJldHVybiBiYXNlVmFsQXNTdHJpbmcoKTsKLSAgICB9Cisg
ICAgdm9pZCBzZXREaXJ0eSgpIG92ZXJyaWRlIHsgbV9iYXNlVmFsLT5zZXREaXJ0eSgpOyB9Cisg
ICAgYm9vbCBpc0RpcnR5KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9iYXNlVmFsLT5pc0Rp
cnR5KCk7IH0KKyAgICBPcHRpb25hbDxTdHJpbmc+IHN5bmNocm9uaXplKCkgb3ZlcnJpZGUgeyBy
ZXR1cm4gbV9iYXNlVmFsLT5zeW5jaHJvbml6ZSgpOyB9CiAKICAgICAvLyBVc2VkIGJ5IFJlbmRl
clNWR0VsZW1lbnRzIGFuZCBEdW1wUmVuZGVyVHJlZS4KICAgICBjb25zdCBQcm9wZXJ0eVR5cGUm
IGN1cnJlbnRWYWx1ZSgpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlRfSU1QTElFUyhpc0Fu
aW1hdGluZygpLCBtX2FuaW1WYWwpOwotICAgICAgICByZXR1cm4gaXNBbmltYXRpbmcoKSA/ICpt
X2FuaW1WYWwgOiBtX2Jhc2VWYWw7CisgICAgICAgIHJldHVybiBpc0FuaW1hdGluZygpID8gbV9h
bmltVmFsLT52YWx1ZSgpIDogbV9iYXNlVmFsLT52YWx1ZSgpOwogICAgIH0KIAogICAgIC8vIENv
bnRyb2xsaW5nIHRoZSBhbmltYXRpb24uCiAgICAgdm9pZCBzdGFydEFuaW1hdGlvbigpIG92ZXJy
aWRlCiAgICAgewotICAgICAgICBpZiAoaXNBbmltYXRpbmcoKSkKLSAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgbV9hbmltVmFsID0gbV9iYXNlVmFsOworICAgICAgICBpZiAobV9hbmltVmFs
KQorICAgICAgICAgICAgbV9hbmltVmFsLT5zZXRWYWx1ZShtX2Jhc2VWYWwtPnZhbHVlKCkpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBlbnN1cmVBbmltVmFsKCk7CiAgICAgICAgIFNWR0Fu
aW1hdGVkUHJvcGVydHk6OnN0YXJ0QW5pbWF0aW9uKCk7CiAgICAgfQogCiAgICAgdm9pZCBzdG9w
QW5pbWF0aW9uKCkgb3ZlcnJpZGUKICAgICB7CisgICAgICAgIGlmIChtX2FuaW1WYWwpCisgICAg
ICAgICAgICBtX2FuaW1WYWwtPnNldFZhbHVlKG1fYmFzZVZhbC0+dmFsdWUoKSk7CisgICAgICAg
IFNWR0FuaW1hdGVkUHJvcGVydHk6OnN0b3BBbmltYXRpb24oKTsKKyAgICB9CisKKyAgICAvLyBD
b250cm9sbGluZyB0aGUgaW5zdGFuY2UgYW5pbWF0aW9uLgorICAgIHZvaWQgaW5zdGFuY2VTdGFy
dEFuaW1hdGlvbihTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZCkgb3ZlcnJpZGUKKyAgICB7
CisgICAgICAgIGlmIChpc0FuaW1hdGluZygpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICBtX2FuaW1WYWwgPSBzdGF0aWNfY2FzdDxTVkdBbmltYXRlZFByaW1pdGl2ZVByb3BlcnR5Jj4o
YW5pbWF0ZWQpLm1fYW5pbVZhbDsKKyAgICAgICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6aW5zdGFu
Y2VTdGFydEFuaW1hdGlvbihhbmltYXRlZCk7CisgICAgfQorCisgICAgdm9pZCBpbnN0YW5jZVN0
b3BBbmltYXRpb24oKSBvdmVycmlkZQorICAgIHsKICAgICAgICAgaWYgKCFpc0FuaW1hdGluZygp
KQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBtX2FuaW1WYWwgPSBXVEY6Om51bGxvcHQ7
Ci0gICAgICAgIFNWR0FuaW1hdGVkUHJvcGVydHk6OnN0b3BBbmltYXRpb24oKTsKKyAgICAgICAg
bV9hbmltVmFsID0gbnVsbHB0cjsKKyAgICAgICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6aW5zdGFu
Y2VTdG9wQW5pbWF0aW9uKCk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CiAgICAgU1ZHQW5pbWF0ZWRQ
cmltaXRpdmVQcm9wZXJ0eShTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCkKICAgICAgICAgOiBT
VkdBbmltYXRlZFByb3BlcnR5KGNvbnRleHRFbGVtZW50KQotICAgICAgICAsIG1fYmFzZVZhbChT
VkdQcm9wZXJ0eVRyYWl0czxQcm9wZXJ0eVR5cGU+Ojppbml0aWFsVmFsdWUoKSkKKyAgICAgICAg
LCBtX2Jhc2VWYWwoU1ZHUHJpbWl0aXZlUHJvcGVydHk8UHJvcGVydHlUeXBlPjo6Y3JlYXRlKCkp
CiAgICAgewogICAgIH0KIAogICAgIFNWR0FuaW1hdGVkUHJpbWl0aXZlUHJvcGVydHkoU1ZHRWxl
bWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFByb3BlcnR5VHlwZSYgdmFsdWUpCiAgICAgICAg
IDogU1ZHQW5pbWF0ZWRQcm9wZXJ0eShjb250ZXh0RWxlbWVudCkKLSAgICAgICAgLCBtX2Jhc2VW
YWwodmFsdWUpCisgICAgICAgICwgbV9iYXNlVmFsKFNWR1ByaW1pdGl2ZVByb3BlcnR5PFByb3Bl
cnR5VHlwZT46OmNyZWF0ZSh2YWx1ZSkpCisgICAgeworICAgIH0KKworICAgIFJlZlB0cjxTVkdQ
cmltaXRpdmVQcm9wZXJ0eTxQcm9wZXJ0eVR5cGU+PiYgZW5zdXJlQW5pbVZhbCgpCiAgICAgewor
ICAgICAgICBpZiAoIW1fYW5pbVZhbCkKKyAgICAgICAgICAgIG1fYW5pbVZhbCA9IFNWR1ByaW1p
dGl2ZVByb3BlcnR5PFByb3BlcnR5VHlwZT46OmNyZWF0ZShtX2Jhc2VWYWwtPnZhbHVlKCkpOwor
ICAgICAgICByZXR1cm4gbV9hbmltVmFsOwogICAgIH0KIAotICAgIFByb3BlcnR5VHlwZSBtX2Jh
c2VWYWw7Ci0gICAgbXV0YWJsZSBPcHRpb25hbDxQcm9wZXJ0eVR5cGU+IG1fYW5pbVZhbDsKLSAg
ICBTVkdQcm9wZXJ0eVN0YXRlIG1fc3RhdGUgeyBTVkdQcm9wZXJ0eVN0YXRlOjpDbGVhbiB9Owor
ICAgIFJlZjxTVkdQcmltaXRpdmVQcm9wZXJ0eTxQcm9wZXJ0eVR5cGU+PiBtX2Jhc2VWYWw7Cisg
ICAgbXV0YWJsZSBSZWZQdHI8U1ZHUHJpbWl0aXZlUHJvcGVydHk8UHJvcGVydHlUeXBlPj4gbV9h
bmltVmFsOwogfTsKIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZH
QW5pbWF0ZWRQcm9wZXJ0eUFuaW1hdG9ySW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlBbmltYXRvckltcGwuaAkocmV2
aXNpb24gMjQ3MDA5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0
ZWRQcm9wZXJ0eUFuaW1hdG9ySW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBA
CiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiU1ZH
QW5pbWF0ZWRQcm9wZXJ0eUFuaW1hdG9yLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQcm9wZXJ0
eUltcGwuaCIKICNpbmNsdWRlICJTVkdBbmltYXRpb25BZGRpdGl2ZUxpc3RGdW5jdGlvbkltcGwu
aCIKQEAgLTMwMSwxMSArMzAyLDMzIEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6CisgICAg
Ym9vbCBpc0FuaW1hdGVkU3R5bGVDbGFzc0FuaWFtdG9yKCkgY29uc3QKKyAgICB7CisgICAgICAg
IHJldHVybiBtX2F0dHJpYnV0ZU5hbWUubWF0Y2hlcyhIVE1MTmFtZXM6OmNsYXNzQXR0cik7Cisg
ICAgfQorCiAgICAgdm9pZCBhbmltYXRlKFNWR0VsZW1lbnQqIHRhcmdldEVsZW1lbnQsIGZsb2F0
IHByb2dyZXNzLCB1bnNpZ25lZCByZXBlYXRDb3VudCkgZmluYWwKICAgICB7CiAgICAgICAgIFN0
cmluZyYgYW5pbWF0ZWQgPSBtX2FuaW1hdGVkLT5hbmltVmFsKCk7CiAgICAgICAgIG1fZnVuY3Rp
b24uYW5pbWF0ZSh0YXJnZXRFbGVtZW50LCBwcm9ncmVzcywgcmVwZWF0Q291bnQsIGFuaW1hdGVk
KTsKICAgICB9CisgICAgCisgICAgdm9pZCBhcHBseShTVkdFbGVtZW50KiB0YXJnZXRFbGVtZW50
KSBmaW5hbAorICAgIHsKKyAgICAgICAgQmFzZTo6YXBwbHkodGFyZ2V0RWxlbWVudCk7CisgICAg
ICAgIGlmIChpc0FuaW1hdGVkU3R5bGVDbGFzc0FuaWFtdG9yKCkpCisgICAgICAgICAgICBpbnZh
bGlkYXRlU3R5bGUodGFyZ2V0RWxlbWVudCk7CisgICAgfQorICAgIAorICAgIHZvaWQgc3RvcChT
VkdFbGVtZW50KiB0YXJnZXRFbGVtZW50KSBmaW5hbAorICAgIHsKKyAgICAgICAgaWYgKCFtX2Fu
aW1hdGVkLT5pc0FuaW1hdGluZygpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIEJh
c2U6OnN0b3AodGFyZ2V0RWxlbWVudCk7CisgICAgICAgIGlmIChpc0FuaW1hdGVkU3R5bGVDbGFz
c0FuaWFtdG9yKCkpCisgICAgICAgICAgICBpbnZhbGlkYXRlU3R5bGUodGFyZ2V0RWxlbWVudCk7
CisgICAgfQogfTsKIAogY2xhc3MgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3IgZmlu
YWwgOiBwdWJsaWMgU1ZHQW5pbWF0ZWRQcm9wZXJ0eUFuaW1hdG9yPFNWR0FuaW1hdGVkVHJhbnNm
b3JtTGlzdCwgU1ZHQW5pbWF0aW9uVHJhbnNmb3JtTGlzdEZ1bmN0aW9uPiB7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBdHRyaWJ1dGVBbmltYXRvci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQXR0cmlidXRlQW5pbWF0
b3IuY3BwCShyZXZpc2lvbiAyNDcwMDkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGll
cy9TVkdBdHRyaWJ1dGVBbmltYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDEwICszNywx
NyBAQCBib29sIFNWR0F0dHJpYnV0ZUFuaW1hdG9yOjppc0FuaW1hdGVkU3R5CiAgICAgcmV0dXJu
IHRhcmdldEVsZW1lbnQtPmlzQW5pbWF0ZWRTdHlsZUF0dHJpYnV0ZShtX2F0dHJpYnV0ZU5hbWUp
OwogfQogCit2b2lkIFNWR0F0dHJpYnV0ZUFuaW1hdG9yOjppbnZhbGlkYXRlU3R5bGUoU1ZHRWxl
bWVudCogdGFyZ2V0RWxlbWVudCkKK3sKKyAgICBTVkdFbGVtZW50OjpJbnN0YW5jZUludmFsaWRh
dGlvbkd1YXJkIGd1YXJkKCp0YXJnZXRFbGVtZW50KTsKKyAgICB0YXJnZXRFbGVtZW50LT5pbnZh
bGlkYXRlU1ZHUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoKTsKK30KKwogdm9pZCBTVkdBdHRy
aWJ1dGVBbmltYXRvcjo6YXBwbHlBbmltYXRlZFN0eWxlUHJvcGVydHlDaGFuZ2UoU1ZHRWxlbWVu
dCogZWxlbWVudCwgQ1NTUHJvcGVydHlJRCBpZCwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKICAg
ICBBU1NFUlQoZWxlbWVudCk7CiAgICAgQVNTRVJUKCFlbGVtZW50LT5tX2RlbGV0aW9uSGFzQmVn
dW4pOworICAgIEFTU0VSVChpZCAhPSBDU1NQcm9wZXJ0eUludmFsaWQpOwogICAgIAogICAgIGlm
ICghZWxlbWVudC0+ZW5zdXJlQW5pbWF0ZWRTTUlMU3R5bGVQcm9wZXJ0aWVzKCkuc2V0UHJvcGVy
dHkoaWQsIHZhbHVlLCBmYWxzZSkpCiAgICAgICAgIHJldHVybjsKQEAgLTcwLDYgKzc3LDcgQEAg
dm9pZCBTVkdBdHRyaWJ1dGVBbmltYXRvcjo6cmVtb3ZlQW5pbWF0ZQogewogICAgIEFTU0VSVChl
bGVtZW50KTsKICAgICBBU1NFUlQoIWVsZW1lbnQtPm1fZGVsZXRpb25IYXNCZWd1bik7CisgICAg
QVNTRVJUKGlkICE9IENTU1Byb3BlcnR5SW52YWxpZCk7CiAKICAgICBlbGVtZW50LT5lbnN1cmVB
bmltYXRlZFNNSUxTdHlsZVByb3BlcnRpZXMoKS5yZW1vdmVQcm9wZXJ0eShpZCk7CiAgICAgZWxl
bWVudC0+aW52YWxpZGF0ZVN0eWxlKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVy
dGllcy9TVkdBdHRyaWJ1dGVBbmltYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9wcm9wZXJ0aWVzL1NWR0F0dHJpYnV0ZUFuaW1hdG9yLmgJKHJldmlzaW9uIDI0NzAwOSkK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0F0dHJpYnV0ZUFuaW1hdG9yLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTc2LDYgKzc2LDcgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAg
IGJvb2wgaXNBbmltYXRlZFN0eWxlUHJvcGVydHlBbmlhbXRvcihjb25zdCBTVkdFbGVtZW50Kikg
Y29uc3Q7CiAKKyAgICBzdGF0aWMgdm9pZCBpbnZhbGlkYXRlU3R5bGUoU1ZHRWxlbWVudCopOwog
ICAgIHN0YXRpYyB2b2lkIGFwcGx5QW5pbWF0ZWRTdHlsZVByb3BlcnR5Q2hhbmdlKFNWR0VsZW1l
bnQqLCBDU1NQcm9wZXJ0eUlELCBjb25zdCBTdHJpbmcmIHZhbHVlKTsKICAgICBzdGF0aWMgdm9p
ZCByZW1vdmVBbmltYXRlZFN0eWxlUHJvcGVydHkoU1ZHRWxlbWVudCosIENTU1Byb3BlcnR5SUQp
OwogICAgIHN0YXRpYyB2b2lkIGFwcGx5QW5pbWF0ZWRQcm9wZXJ0eUNoYW5nZShTVkdFbGVtZW50
KiwgY29uc3QgUXVhbGlmaWVkTmFtZSYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3Bl
cnRpZXMvU1ZHUHJpbWl0aXZlUHJvcGVydHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdQcmltaXRpdmVQcm9wZXJ0eS5oCShub25leGlzdGVudCkKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1ByaW1pdGl2ZVByb3BlcnR5LmgJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBB
cHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNWR1Byb3BlcnR5
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlU
eXBlPgorY2xhc3MgU1ZHUHJpbWl0aXZlUHJvcGVydHkgOiBwdWJsaWMgU1ZHUHJvcGVydHkgewor
cHVibGljOgorICAgIHVzaW5nIFZhbHVlVHlwZSA9IFByb3BlcnR5VHlwZTsKKworICAgIHN0YXRp
YyBSZWY8U1ZHUHJpbWl0aXZlUHJvcGVydHk+IGNyZWF0ZShjb25zdCBQcm9wZXJ0eVR5cGUmIHZh
bHVlID0gU1ZHUHJvcGVydHlUcmFpdHM8UHJvcGVydHlUeXBlPjo6aW5pdGlhbFZhbHVlKCkpCisg
ICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQcmltaXRpdmVQcm9wZXJ0eSh2
YWx1ZSkpOworICAgIH0KKworICAgIC8vIEdldHRlci9TZXR0ZXIgZm9yIHRoZSB2YWx1ZS4KKyAg
ICBjb25zdCBQcm9wZXJ0eVR5cGUmIHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZTsgfQor
ICAgIFByb3BlcnR5VHlwZSYgdmFsdWUoKSB7IHJldHVybiBtX3ZhbHVlOyB9CisgICAgdm9pZCBz
ZXRWYWx1ZShjb25zdCBQcm9wZXJ0eVR5cGUmIHZhbHVlKSB7IG1fdmFsdWUgPSB2YWx1ZTsgfQor
CisgICAgU3RyaW5nIHZhbHVlQXNTdHJpbmcoKSBjb25zdCBvdmVycmlkZQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIFNWR1Byb3BlcnR5VHJhaXRzPFByb3BlcnR5VHlwZT46OnRvU3RyaW5nKG1fdmFs
dWUpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBTVkdQcmltaXRpdmVQcm9wZXJ0eShjb25zdCBQ
cm9wZXJ0eVR5cGUmIHZhbHVlKQorICAgICAgICA6IG1fdmFsdWUodmFsdWUpCisgICAgeworICAg
IH0KKworICAgIFByb3BlcnR5VHlwZSBtX3ZhbHVlOworfTsKKworfQpJbmRleDogTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNp
b24gMjQ3MDA5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTcgQEAKKzIwMTktMDctMDIgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdh
QGFwcGxlLmNvbT4KKworICAgICAgICBBc3NlcnRpb24gZmlyZXMgd2hlbiBhbmltYXRpbmcgdGhl
ICdjbGFzcycgYXR0cmlidXRlIG9mIGFuIFNWRyBlbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTczNzIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN2Zy9hbmltYXRpb25zL2FuaW1hdGVkLWJv
b2wtZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC1pbnN0YW5jZXMtZXhwZWN0ZWQuc3ZnOiBBZGRl
ZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9hbmltYXRlZC1ib29sLWV4dGVybmFsUmVzb3Vy
Y2VzUmVxdWlyZWQtaW5zdGFuY2VzLnN2ZzogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlv
bnMvYW5pbWF0ZWQtc3RyaW5nLWNsYXNzLWluc3RhbmNlcy1leHBlY3RlZC5zdmc6IEFkZGVkLgor
ICAgICAgICAqIHN2Zy9hbmltYXRpb25zL2FuaW1hdGVkLXN0cmluZy1jbGFzcy1pbnN0YW5jZXMu
c3ZnOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9hbmltYXRlZC1zdHJpbmctaHJl
Zi1leHBlY3RlZC5zdmc6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL2FuaW1hdGVk
LXN0cmluZy1ocmVmLnN2ZzogQWRkZWQuCisKIDIwMTktMDYtMzAgIEZ1amlpIEhpcm9ub3JpICA8
SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBv
dXQgcjI0Njk1OS4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGVkLWJv
b2wtZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC1pbnN0YW5jZXMtZXhwZWN0ZWQuc3ZnCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGVkLWJvb2wtZXh0ZXJu
YWxSZXNvdXJjZXNSZXF1aXJlZC1pbnN0YW5jZXMtZXhwZWN0ZWQuc3ZnCShub25leGlzdGVudCkK
KysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGVkLWJvb2wtZXh0ZXJuYWxSZXNv
dXJjZXNSZXF1aXJlZC1pbnN0YW5jZXMtZXhwZWN0ZWQuc3ZnCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMyBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgorICAg
IDxyZWN0IHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBmaWxsPSJncmVlbiIvPgorPC9zdmc+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlZC1ib29sLWV4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWQtaW5zdGFuY2VzLnN2Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9z
dmcvYW5pbWF0aW9ucy9hbmltYXRlZC1ib29sLWV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQtaW5z
dGFuY2VzLnN2Zwkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9h
bmltYXRlZC1ib29sLWV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQtaW5zdGFuY2VzLnN2Zwkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDkgQEAKKzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3Jn
LzIwMDAvc3ZnIj4KKyAgICA8ZGVzYz5UZXN0IHRoYXQgdGhlIGluc3RhbmNlIG9mIHRoZSAnZXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCcgYXR0cmlidXRlIGlzIGFuaW1hdGVkIGNvcnJlY3RseS48
L2Rlc2M+CisgICAgPGRlZj4KKyAgICAgICAgPHJlY3QgaWQ9InJlY3QiIHdpZHRoPSIxMDAiIGhl
aWdodD0iMTAwIiBmaWxsPSJncmVlbiI+CisgICAgICAgICAgICA8c2V0IGF0dHJpYnV0ZU5hbWU9
ImV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQiIHRvPSJ0cnVlIi8+CisgICAgICAgIDwvcmVjdD4K
KyAgICA8L2RlZj4KKyAgICA8dXNlIGhyZWY9IiNyZWN0Ii8+Cis8L3N2Zz4KSW5kZXg6IExheW91
dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGVkLXN0cmluZy1jbGFzcy1pbnN0YW5jZXMtZXhw
ZWN0ZWQuc3ZnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1h
dGVkLXN0cmluZy1jbGFzcy1pbnN0YW5jZXMtZXhwZWN0ZWQuc3ZnCShub25leGlzdGVudCkKKysr
IExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGVkLXN0cmluZy1jbGFzcy1pbnN0YW5j
ZXMtZXhwZWN0ZWQuc3ZnCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMyBAQAorPHN2ZyB4bWxu
cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgorICAgIDxyZWN0IHdpZHRoPSIxMDAiIGhl
aWdodD0iMTAwIiBmaWxsPSJncmVlbiIvPgorPC9zdmc+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZWQtc3RyaW5nLWNs
YXNzLWluc3RhbmNlcy5zdmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlv
bnMvYW5pbWF0ZWQtc3RyaW5nLWNsYXNzLWluc3RhbmNlcy5zdmcJKG5vbmV4aXN0ZW50KQorKysg
TGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZWQtc3RyaW5nLWNsYXNzLWluc3RhbmNl
cy5zdmcJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNyBAQAorPHN2ZyB4bWxucz0iaHR0cDov
L3d3dy53My5vcmcvMjAwMC9zdmciPgorICAgIDxkZXNjPlRlc3QgdGhhdCB0aGUgaW5zdGFuY2Ug
b2YgdGhlICdjbGFzcycgYXR0cmlidXRlIGlzIGFuaW1hdGVkIGFuZCBpdHMgcmVuZGVyZXIgaXMg
aW52YWxpZGF0ZWQgY29ycmVjdGx5LjwvZGVzYz4KKyAgICA8c3R5bGU+CisgICAgICAgIC5yZWQt
ZmlsbCB7CisgICAgICAgICAgICBmaWxsOiByZWQ7CisgICAgICAgIH0KKyAgICAgICAgLmdyZWVu
LWZpbGwgeworICAgICAgICAgICAgZmlsbDogZ3JlZW47CisgICAgICAgIH0KKyAgICA8L3N0eWxl
PgorICAgIDxkZWY+CisgICAgICAgIDxyZWN0IGlkPSJyZWN0IiB3aWR0aD0iMTAwIiBoZWlnaHQ9
IjEwMCIgY2xhc3M9InJlZC1maWxsIj4KKyAgICAgICAgICAgIDxzZXQgaWQ9ImdyZWVuIiBhdHRy
aWJ1dGVOYW1lPSJjbGFzcyIgdG89ImdyZWVuLWZpbGwiIGZpbGw9ImZyZWV6ZSIvPgorICAgICAg
ICA8L3JlY3Q+CisgICAgPC9kZWY+CisgICAgPHVzZSBocmVmPSIjcmVjdCIvPgorPC9zdmc+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlZC1zdHJpbmctaHJlZi1leHBl
Y3RlZC5zdmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0
ZWQtc3RyaW5nLWhyZWYtZXhwZWN0ZWQuc3ZnCShub25leGlzdGVudCkKKysrIExheW91dFRlc3Rz
L3N2Zy9hbmltYXRpb25zL2FuaW1hdGVkLXN0cmluZy1ocmVmLWV4cGVjdGVkLnN2Zwkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDMgQEAKKzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIw
MDAvc3ZnIj4KKyAgICA8cmVjdCB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgZmlsbD0iZ3JlZW4i
Lz4KKzwvc3ZnPgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZWQtc3Ry
aW5nLWhyZWYuc3ZnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2Fu
aW1hdGVkLXN0cmluZy1ocmVmLnN2Zwkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9zdmcv
YW5pbWF0aW9ucy9hbmltYXRlZC1zdHJpbmctaHJlZi5zdmcJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwxNyBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgorICAg
IDxkZXNjPlRlc3QgdGhhdCB0aGUgJ2hyZWYnIGF0dHJpYnV0ZSBpcyBhbmltYXRlZCBjb3JyZWN0
bHkuPC9kZXNjPgorICAgIDxkZWZzPgorICAgICAgICA8bGluZWFyR3JhZGllbnQgaWQ9InJlZC1m
aWxsIj4KKyAgICAgICAgICAgIDxzdG9wIG9mZnNldD0iMCUiICBzdG9wLWNvbG9yPSJyZWQiIC8+
CisgICAgICAgICAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9InJlZCIgLz4KKyAg
ICAgICAgPC9saW5lYXJHcmFkaWVudD4KKyAgICAgICAgPGxpbmVhckdyYWRpZW50IGlkPSJncmVl
bi1maWxsIj4KKyAgICAgICAgICAgIDxzdG9wIG9mZnNldD0iMCUiICBzdG9wLWNvbG9yPSJncmVl
biIgLz4KKyAgICAgICAgICAgIDxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iZ3JlZW4i
IC8+CisgICAgICAgIDwvbGluZWFyR3JhZGllbnQ+CisgICAgICAgIDxsaW5lYXJHcmFkaWVudCBp
ZD0iZ3JhZGllbnQiIGhyZWY9IiNyZWQtZmlsbCI+CisgICAgICAgICAgICA8c2V0IGF0dHJpYnV0
ZU5hbWU9ImhyZWYiIHRvPSIjZ3JlZW4tZmlsbCIgZmlsbD0iZnJlZXplIi8+CisgICAgICAgIDwv
bGluZWFyR3JhZGllbnQ+CisgICAgPC9kZWZzPgorICAgIDxyZWN0IGlkPSJyZWN0IiB3aWR0aD0i
MTAwIiBoZWlnaHQ9IjEwMCIgZmlsbD0idXJsKCcjZ3JhZGllbnQnKSIvPgorPC9zdmc+ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>373371</attachid>
            <date>2019-07-02 16:42:49 -0700</date>
            <delta_ts>2019-07-02 17:01:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197372-20190702164249.patch</filename>
            <type>text/plain</type>
            <size>20745</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0NzA3MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUyIEBACisyMDE5LTA3LTAyICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQXNzZXJ0aW9u
IGZpcmVzIHdoZW4gYW5pbWF0aW5nIHRoZSAnY2xhc3MnIGF0dHJpYnV0ZSBvZiBhbiBTVkcgZWxl
bWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3
MzcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgorCisgICAgICAgIEFsbCBp
bnN0YW5jZXMgb2YgU1ZHIGFuaW1hdGVkIHByb3BlcnRpZXMgaGF2ZSB0byBzaGFyZSBhIHNpbmds
ZSBhbmltVmFsCisgICAgICAgIHN1Y2ggdGhhdCBvbmNlIGl0cyB2YWx1ZSBpcyBwcm9ncmVzc2Vk
LCBhbGwgdGhlIGluc3RhbmNlcyB3aWxsIHNlZSB0aGUKKyAgICAgICAgY2hhbmdlLiBUaGlzIHdh
cyBub3QgaGFwcGVuaW5nIGZvciBTVkdBbmltYXRlZFByaW1pdGl2ZVByb3BlcnR5LiBUbyBkbwor
ICAgICAgICB0aGF0IHdlIG5lZWQgdG86CisKKyAgICAgICAgLS0gSW50cm9kdWNlIHRoZSBuZXcg
dGVtcGxhdGUgY2xhc3MgU1ZHU2hhcmVkUHJpbWl0aXZlUHJvcGVydHkgd2hpY2ggaXMKKyAgICAg
ICAgICAgZGVyaXZlZCBmcm9tIFNWR1Byb3BlcnR5LiBUaGlzIGNsYXNzIG1hbmFnZXMgYSBzaW5n
bGUgcHJpbWl0aXZlIHZhbHVlLgorICAgICAgICAtLSBDaGFuZ2UgdGhlIHR5cGUgb2YgU1ZHQW5p
bWF0ZWRQcmltaXRpdmVQcm9wZXJ0eTo6bV9hbmltVmFsIHRvCisgICAgICAgICAgIFJlZlB0cjxT
VkdTaGFyZWRQcmltaXRpdmVQcm9wZXJ0eTxQcm9wZXJ0eVR5cGU+Pi4gVGhlIG1hc3RlciBwcm9w
ZXJ0eQorICAgICAgICAgICBjcmVhdGVzIGl0IGFuZCBhbGwgdGhlIGluc3RhbmNlcyBob2xkIHJl
ZmVyZW5jZXMgdG8gdGhlIHNhbWUgcG9pbnRlci4KKyAgICAgICAgLS0gQ2hhbmdlIHRoZSB0eXBl
IG9mIFNWR0FuaW1hdGVkUHJpbWl0aXZlUHJvcGVydHk6Om1fYmFzZVZhbCB0bworICAgICAgICAg
ICBSZWY8U1ZHU2hhcmVkUHJpbWl0aXZlUHJvcGVydHk8UHJvcGVydHlUeXBlPj4gZm9yIHNpbXBs
aWNpdHkgYW5kIGdldAorICAgICAgICAgICByaWQgb2YgU1ZHQW5pbWF0ZWRQcmltaXRpdmVQcm9w
ZXJ0eTo6bV9zdGF0ZS4KKyAgICAgICAgLS0gT3ZlcnJpZGUgdGhlIHZpcnR1YWwgbWV0aG9kcyBp
bnN0YW5jZVN0YXJ0QW5pbWF0aW9uKCkgYW5kCisgICAgICAgICAgIGluc3RhbmNlU3RvcEFuaW1h
dGlvbigpIG9mIFNWR0FuaW1hdGVkUHJpbWl0aXZlUHJvcGVydHkuCisgICAgICAgIC0tIFNWR0Fu
aW1hdGVkU3RyaW5nQW5pbWF0b3Igc2hvdWxkIGludmFsaWRhdGUgdGhlIHN0eWxlIG9mIHRoZSB0
YXJnZXQKKyAgICAgICAgICAgZWxlbWVudCBpZiBhdHRyaWJ1dGUgbmFtZSBpcyAnY2xhc3MnIGFu
ZCB3aGVuIGl0cyBhbmltVmFsIGNoYW5nZXMuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQ
cmltaXRpdmVQcm9wZXJ0eS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcmltaXRp
dmVQcm9wZXJ0eTo6c2V0QmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFBy
aW1pdGl2ZVByb3BlcnR5OjpzZXRCYXNlVmFsSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZWRQcmltaXRpdmVQcm9wZXJ0eTo6YmFzZVZhbCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZFByaW1pdGl2ZVByb3BlcnR5OjpzZXRBbmltVmFsKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUHJpbWl0aXZlUHJvcGVydHk6OmFuaW1WYWwgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcmltaXRpdmVQcm9wZXJ0eTo6YW5pbVZh
bCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFByaW1pdGl2ZVByb3BlcnR5OjpjdXJy
ZW50VmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcmltaXRpdmVQ
cm9wZXJ0eTo6U1ZHQW5pbWF0ZWRQcmltaXRpdmVQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZFByaW1pdGl2ZVByb3BlcnR5OjplbnN1cmVBbmltVmFsKToKKyAgICAgICAg
KiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5QW5pbWF0b3JJbXBsLmg6CisgICAg
ICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQXR0cmlidXRlQW5pbWF0b3IuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQXR0cmlidXRlQW5pbWF0b3I6OmludmFsaWRhdGVTdHlsZSk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdBdHRyaWJ1dGVBbmltYXRvcjo6YXBwbHlBbmltYXRlZFN0eWxlUHJvcGVy
dHlDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQXR0cmlidXRlQW5pbWF0b3I6OnJlbW92
ZUFuaW1hdGVkU3R5bGVQcm9wZXJ0eSk6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQXR0
cmlidXRlQW5pbWF0b3IuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdTaGFyZWRQcmlt
aXRpdmVQcm9wZXJ0eS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1NoYXJlZFByaW1p
dGl2ZVByb3BlcnR5OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU2hhcmVkUHJpbWl0
aXZlUHJvcGVydHk6OnZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1NoYXJlZFBy
aW1pdGl2ZVByb3BlcnR5Ojp2YWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTaGFyZWRQcmlt
aXRpdmVQcm9wZXJ0eTo6c2V0VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU2hhcmVkUHJp
bWl0aXZlUHJvcGVydHk6OlNWR1NoYXJlZFByaW1pdGl2ZVByb3BlcnR5KToKKwogMjAxOS0wNy0w
MiAgQW5kcmVzIEdvbnphbGV6ICA8YW5kcmVzZ18yMkBhcHBsZS5jb20+CiAKICAgICAgICAgRW5o
YW5jZSBzdXBwb3J0IG9mIGFyaWEtaGFzcG9wdXAgcGVyIEFSSUEgMS4xIHNwZWNpZmljYXRpb24u
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCShyZXZpc2lvbiAyNDcwMDkpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTg1Nyw3ICs4NTcsNyBAQAog
CQkyRTQzNDY1MTBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyT2JqZWN0UHJveHkuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFNDM0NjNGMEY1NDZBODIw
MEIwRjFCQSAvKiBXb3JrZXJPYmplY3RQcm94eS5oICovOyB9OwogCQkyRTQzNDY1MzBGNTQ2QTgy
MDBCMEYxQkEgLyogV29ya2VyUnVuTG9vcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMkU0MzQ2NDEwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlclJ1bkxv
b3AuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQky
RTQzNDY1NTBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyVGhyZWFkLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTQzNDY0MzBGNTQ2QTgyMDBCMEYxQkEg
LyogV29ya2VyVGhyZWFkLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKLQkJMkU3NTg0MUUxMjc3OUFEQTAwNjI2MjhCIC8qIEZpbGVSZWFkZXJMb2FkZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFNzU4NDFC
MTI3NzlBREEwMDYyNjI4QiAvKiBGaWxlUmVhZGVyTG9hZGVyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTt9OworCQkyRTc1ODQxRTEyNzc5QURBMDA2MjYyOEIg
LyogRmlsZVJlYWRlckxvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMkU3NTg0MUIxMjc3OUFEQTAwNjI2MjhCIC8qIEZpbGVSZWFkZXJMb2FkZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyRTc1
ODQxRjEyNzc5QURBMDA2MjYyOEIgLyogRmlsZVJlYWRlckxvYWRlckNsaWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU3NTg0MUMxMjc3OUFEQTAw
NjI2MjhCIC8qIEZpbGVSZWFkZXJMb2FkZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyRTk0RjQzQzExOTIwN0RBMDBCN0Y3NUQgLyog
SlNGaWxlUmVhZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyRTk0RjQzQTExOTIwN0RBMDBCN0Y3NUQgLyogSlNGaWxlUmVhZGVyLmggKi87IH07CiAJ
CTJFOUI1RDhGMUI2NkE5NEUwMDhDNkEyNCAvKiBXaGVlbEV2ZW50RGVsdGFGaWx0ZXJNYWMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFOUI1RDhFMUI2
NkE5NEUwMDhDNkEyNCAvKiBXaGVlbEV2ZW50RGVsdGFGaWx0ZXJNYWMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtODUzOCw2ICs4NTM4LDcgQEAK
IAkJNTNFRDNGREQxNjdBODhFNzAwNjc2MkU2IC8qIEpTSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRl
ZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0ludGVybmFsU2V0dGluZ3NH
ZW5lcmF0ZWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTUwQTBCQzcwODVGNjAz
OTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUXVhbGlmaWVkTmFtZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk1NTBBMEJD
ODA4NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVkTmFtZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBRdWFsaWZpZWROYW1lLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OworCQk1NTBGNjY0
NTIyQ0E4OUJEMDAwQTM0MTcgLyogU1ZHU2hhcmVkUHJpbWl0aXZlUHJvcGVydHkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU1ZHU2hhcmVkUHJpbWl0aXZlUHJvcGVydHkuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTUxMzdCMkMyMDM3OUU1NTAwMDEwMDRCIC8qIFNWR01hcmtlclR5cGVzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR01hcmtlclR5cGVzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1NDY3NTc3MUZEMUZDMUEwMDNCMTBCMCAvKiBJbWFn
ZVNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbWFnZVNvdXJjZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1NDY3NTc4MUZEMUZDMUEwMDNCMTBCMCAvKiBJbWFnZVNv
dXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZVNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTYxMjEsNiArMTYxMjIsNyBAQAogCQkJCTU1QkUwMjVDMjIzQjI5QzMwMDMy
RjA4QSAvKiBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnkuaCAqLywKIAkJCQk1NUJFMDI1NzIyM0Iy
OUMwMDAzMkYwOEEgLyogU1ZHUHJvcGVydHlSZWdpc3RyeS5oICovLAogCQkJCTA4OEEwRTAzMTI2
RUYxREIwMDk3OEY3QSAvKiBTVkdQcm9wZXJ0eVRyYWl0cy5oICovLAorCQkJCTU1MEY2NjQ1MjJD
QTg5QkQwMDBBMzQxNyAvKiBTVkdTaGFyZWRQcmltaXRpdmVQcm9wZXJ0eS5oICovLAogCQkJCTcy
MTQ0MzQ2MjI0MENBRDIwMEYxMkZGNyAvKiBTVkdWYWx1ZVByb3BlcnR5LmggKi8sCiAJCQkJNzJG
QjIzODYyMjQ5N0FENTAwN0U1QUM3IC8qIFNWR1ZhbHVlUHJvcGVydHlBbmltYXRvci5oICovLAog
CQkJCTcyRkIyMzg0MjI0OTdBRDQwMDdFNUFDNyAvKiBTVkdWYWx1ZVByb3BlcnR5QW5pbWF0b3JJ
bXBsLmggKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRl
ZFByaW1pdGl2ZVByb3BlcnR5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3By
b3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcmltaXRpdmVQcm9wZXJ0eS5oCShyZXZpc2lvbiAyNDcwMDkp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByaW1pdGl2ZVBy
b3BlcnR5LmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDcgQEAKICNwcmFnbWEgb25jZQog
CiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oIgotI2luY2x1ZGUgIlNWR1Byb3BlcnR5
LmgiCisjaW5jbHVkZSAiU1ZHU2hhcmVkUHJpbWl0aXZlUHJvcGVydHkuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCkBAIC00OCw5NSArNDgsMTEyIEBAIHB1YmxpYzoKICAgICAvLyBVc2VkIGJ5
IHRoZSBET00uCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0QmFzZVZhbChjb25zdCBQcm9wZXJ0
eVR5cGUmIGJhc2VWYWwpCiAgICAgewotICAgICAgICBtX2Jhc2VWYWwgPSBiYXNlVmFsOworICAg
ICAgICBtX2Jhc2VWYWwtPnNldFZhbHVlKGJhc2VWYWwpOwogICAgICAgICBjb21taXRQcm9wZXJ0
eUNoYW5nZShudWxscHRyKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKICAgICAvLyBV
c2VkIGJ5IFNWR0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKCkuCi0gICAgdm9pZCBzZXRCYXNlVmFs
SW50ZXJuYWwoY29uc3QgUHJvcGVydHlUeXBlJiBiYXNlVmFsKSB7IG1fYmFzZVZhbCA9IGJhc2VW
YWw7IH0KLSAgICBjb25zdCBQcm9wZXJ0eVR5cGUmIGJhc2VWYWwoKSBjb25zdCB7IHJldHVybiBt
X2Jhc2VWYWw7IH0KKyAgICB2b2lkIHNldEJhc2VWYWxJbnRlcm5hbChjb25zdCBQcm9wZXJ0eVR5
cGUmIGJhc2VWYWwpIHsgbV9iYXNlVmFsLT5zZXRWYWx1ZShiYXNlVmFsKTsgfQorICAgIGNvbnN0
IFByb3BlcnR5VHlwZSYgYmFzZVZhbCgpIGNvbnN0IHsgcmV0dXJuIG1fYmFzZVZhbC0+dmFsdWUo
KTsgfQogCiAgICAgLy8gVXNlZCBieSBTVkdBdHRyaWJ1dGVBbmltYXRvcjo6cHJvZ3Jlc3MuCiAg
ICAgdm9pZCBzZXRBbmltVmFsKGNvbnN0IFByb3BlcnR5VHlwZSYgYW5pbVZhbCkKICAgICB7Ci0g
ICAgICAgIEFTU0VSVChpc0FuaW1hdGluZygpKTsKLSAgICAgICAgbV9hbmltVmFsID0gYW5pbVZh
bDsKKyAgICAgICAgQVNTRVJUKGlzQW5pbWF0aW5nKCkgJiYgbV9hbmltVmFsKTsKKyAgICAgICAg
bV9hbmltVmFsLT5zZXRWYWx1ZShhbmltVmFsKTsKICAgICB9CiAKICAgICBjb25zdCBQcm9wZXJ0
eVR5cGUmIGFuaW1WYWwoKSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUX0lNUExJRVMoaXNB
bmltYXRpbmcoKSwgbV9hbmltVmFsKTsKLSAgICAgICAgcmV0dXJuIGlzQW5pbWF0aW5nKCkgPyAq
bV9hbmltVmFsIDogbV9iYXNlVmFsOworICAgICAgICByZXR1cm4gaXNBbmltYXRpbmcoKSA/IG1f
YW5pbVZhbC0+dmFsdWUoKSA6IG1fYmFzZVZhbC0+dmFsdWUoKTsKICAgICB9CiAKICAgICBQcm9w
ZXJ0eVR5cGUmIGFuaW1WYWwoKQogICAgIHsKICAgICAgICAgQVNTRVJUX0lNUExJRVMoaXNBbmlt
YXRpbmcoKSwgbV9hbmltVmFsKTsKLSAgICAgICAgcmV0dXJuIGlzQW5pbWF0aW5nKCkgPyAqbV9h
bmltVmFsIDogbV9iYXNlVmFsOworICAgICAgICByZXR1cm4gaXNBbmltYXRpbmcoKSA/IG1fYW5p
bVZhbC0+dmFsdWUoKSA6IG1fYmFzZVZhbC0+dmFsdWUoKTsKICAgICB9CiAKICAgICAvLyBVc2Vk
IHdoZW4gY29tbWl0dGluZyBhIGNoYW5nZSBmcm9tIHRoZSBTVkdBbmltYXRlZFByb3BlcnR5IHRv
IHRoZSBhdHRyaWJ1dGUuCi0gICAgU3RyaW5nIGJhc2VWYWxBc1N0cmluZygpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIFNWR1Byb3BlcnR5VHJhaXRzPFByb3BlcnR5VHlwZT46OnRvU3RyaW5nKG1f
YmFzZVZhbCk7IH0KKyAgICBTdHJpbmcgYmFzZVZhbEFzU3RyaW5nKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gbV9iYXNlVmFsLT52YWx1ZUFzU3RyaW5nKCk7IH0KIAogICAgIC8vIFVzZWQgdG8g
YXBwbHkgdGhlIFNWR0F0dHJpYnV0ZUFuaW1hdG9yIGNoYW5nZSB0byB0aGUgdGFyZ2V0IGVsZW1l
bnQuCiAgICAgU3RyaW5nIGFuaW1WYWxBc1N0cmluZygpIGNvbnN0IG92ZXJyaWRlCiAgICAgewot
ICAgICAgICBBU1NFUlQoaXNBbmltYXRpbmcoKSAmJiAhIW1fYW5pbVZhbCk7Ci0gICAgICAgIHJl
dHVybiBTVkdQcm9wZXJ0eVRyYWl0czxQcm9wZXJ0eVR5cGU+Ojp0b1N0cmluZygqbV9hbmltVmFs
KTsKKyAgICAgICAgQVNTRVJUKGlzQW5pbWF0aW5nKCkgJiYgbV9hbmltVmFsKTsKKyAgICAgICAg
cmV0dXJuIG1fYW5pbVZhbC0+dmFsdWVBc1N0cmluZygpOwogICAgIH0KIAogICAgIC8vIE1hbmFn
aW5nIHRoZSByZWxhdGlvbnNoaXAgd2l0aCB0aGUgb3duZXIuCi0gICAgdm9pZCBzZXREaXJ0eSgp
IG92ZXJyaWRlIHsgbV9zdGF0ZSA9IFNWR1Byb3BlcnR5U3RhdGU6OkRpcnR5OyB9Ci0gICAgYm9v
bCBpc0RpcnR5KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zdGF0ZSA9PSBTVkdQcm9wZXJ0
eVN0YXRlOjpEaXJ0eTsgfQotICAgIE9wdGlvbmFsPFN0cmluZz4gc3luY2hyb25pemUoKSBvdmVy
cmlkZQotICAgIHsKLSAgICAgICAgaWYgKG1fc3RhdGUgPT0gU1ZHUHJvcGVydHlTdGF0ZTo6Q2xl
YW4pCi0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgICAgICBtX3N0YXRlID0g
U1ZHUHJvcGVydHlTdGF0ZTo6Q2xlYW47Ci0gICAgICAgIHJldHVybiBiYXNlVmFsQXNTdHJpbmco
KTsKLSAgICB9CisgICAgdm9pZCBzZXREaXJ0eSgpIG92ZXJyaWRlIHsgbV9iYXNlVmFsLT5zZXRE
aXJ0eSgpOyB9CisgICAgYm9vbCBpc0RpcnR5KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9i
YXNlVmFsLT5pc0RpcnR5KCk7IH0KKyAgICBPcHRpb25hbDxTdHJpbmc+IHN5bmNocm9uaXplKCkg
b3ZlcnJpZGUgeyByZXR1cm4gbV9iYXNlVmFsLT5zeW5jaHJvbml6ZSgpOyB9CiAKICAgICAvLyBV
c2VkIGJ5IFJlbmRlclNWR0VsZW1lbnRzIGFuZCBEdW1wUmVuZGVyVHJlZS4KICAgICBjb25zdCBQ
cm9wZXJ0eVR5cGUmIGN1cnJlbnRWYWx1ZSgpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlRf
SU1QTElFUyhpc0FuaW1hdGluZygpLCBtX2FuaW1WYWwpOwotICAgICAgICByZXR1cm4gaXNBbmlt
YXRpbmcoKSA/ICptX2FuaW1WYWwgOiBtX2Jhc2VWYWw7CisgICAgICAgIHJldHVybiBpc0FuaW1h
dGluZygpID8gbV9hbmltVmFsLT52YWx1ZSgpIDogbV9iYXNlVmFsLT52YWx1ZSgpOwogICAgIH0K
IAogICAgIC8vIENvbnRyb2xsaW5nIHRoZSBhbmltYXRpb24uCiAgICAgdm9pZCBzdGFydEFuaW1h
dGlvbigpIG92ZXJyaWRlCiAgICAgewotICAgICAgICBpZiAoaXNBbmltYXRpbmcoKSkKLSAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgbV9hbmltVmFsID0gbV9iYXNlVmFsOworICAgICAgICBp
ZiAobV9hbmltVmFsKQorICAgICAgICAgICAgbV9hbmltVmFsLT5zZXRWYWx1ZShtX2Jhc2VWYWwt
PnZhbHVlKCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBlbnN1cmVBbmltVmFsKCk7CiAg
ICAgICAgIFNWR0FuaW1hdGVkUHJvcGVydHk6OnN0YXJ0QW5pbWF0aW9uKCk7CiAgICAgfQogCiAg
ICAgdm9pZCBzdG9wQW5pbWF0aW9uKCkgb3ZlcnJpZGUKICAgICB7CisgICAgICAgIGlmIChtX2Fu
aW1WYWwpCisgICAgICAgICAgICBtX2FuaW1WYWwtPnNldFZhbHVlKG1fYmFzZVZhbC0+dmFsdWUo
KSk7CisgICAgICAgIFNWR0FuaW1hdGVkUHJvcGVydHk6OnN0b3BBbmltYXRpb24oKTsKKyAgICB9
CisKKyAgICAvLyBDb250cm9sbGluZyB0aGUgaW5zdGFuY2UgYW5pbWF0aW9uLgorICAgIHZvaWQg
aW5zdGFuY2VTdGFydEFuaW1hdGlvbihTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZCkgb3Zl
cnJpZGUKKyAgICB7CisgICAgICAgIGlmIChpc0FuaW1hdGluZygpKQorICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICBtX2FuaW1WYWwgPSBzdGF0aWNfY2FzdDxTVkdBbmltYXRlZFByaW1pdGl2
ZVByb3BlcnR5Jj4oYW5pbWF0ZWQpLm1fYW5pbVZhbDsKKyAgICAgICAgU1ZHQW5pbWF0ZWRQcm9w
ZXJ0eTo6aW5zdGFuY2VTdGFydEFuaW1hdGlvbihhbmltYXRlZCk7CisgICAgfQorCisgICAgdm9p
ZCBpbnN0YW5jZVN0b3BBbmltYXRpb24oKSBvdmVycmlkZQorICAgIHsKICAgICAgICAgaWYgKCFp
c0FuaW1hdGluZygpKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBtX2FuaW1WYWwgPSBX
VEY6Om51bGxvcHQ7Ci0gICAgICAgIFNWR0FuaW1hdGVkUHJvcGVydHk6OnN0b3BBbmltYXRpb24o
KTsKKyAgICAgICAgbV9hbmltVmFsID0gbnVsbHB0cjsKKyAgICAgICAgU1ZHQW5pbWF0ZWRQcm9w
ZXJ0eTo6aW5zdGFuY2VTdG9wQW5pbWF0aW9uKCk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CiAgICAg
U1ZHQW5pbWF0ZWRQcmltaXRpdmVQcm9wZXJ0eShTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCkK
ICAgICAgICAgOiBTVkdBbmltYXRlZFByb3BlcnR5KGNvbnRleHRFbGVtZW50KQotICAgICAgICAs
IG1fYmFzZVZhbChTVkdQcm9wZXJ0eVRyYWl0czxQcm9wZXJ0eVR5cGU+Ojppbml0aWFsVmFsdWUo
KSkKKyAgICAgICAgLCBtX2Jhc2VWYWwoU1ZHU2hhcmVkUHJpbWl0aXZlUHJvcGVydHk8UHJvcGVy
dHlUeXBlPjo6Y3JlYXRlKCkpCiAgICAgewogICAgIH0KIAogICAgIFNWR0FuaW1hdGVkUHJpbWl0
aXZlUHJvcGVydHkoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFByb3BlcnR5VHlw
ZSYgdmFsdWUpCiAgICAgICAgIDogU1ZHQW5pbWF0ZWRQcm9wZXJ0eShjb250ZXh0RWxlbWVudCkK
LSAgICAgICAgLCBtX2Jhc2VWYWwodmFsdWUpCisgICAgICAgICwgbV9iYXNlVmFsKFNWR1NoYXJl
ZFByaW1pdGl2ZVByb3BlcnR5PFByb3BlcnR5VHlwZT46OmNyZWF0ZSh2YWx1ZSkpCisgICAgewor
ICAgIH0KKworICAgIFJlZlB0cjxTVkdTaGFyZWRQcmltaXRpdmVQcm9wZXJ0eTxQcm9wZXJ0eVR5
cGU+PiYgZW5zdXJlQW5pbVZhbCgpCiAgICAgeworICAgICAgICBpZiAoIW1fYW5pbVZhbCkKKyAg
ICAgICAgICAgIG1fYW5pbVZhbCA9IFNWR1NoYXJlZFByaW1pdGl2ZVByb3BlcnR5PFByb3BlcnR5
VHlwZT46OmNyZWF0ZShtX2Jhc2VWYWwtPnZhbHVlKCkpOworICAgICAgICByZXR1cm4gbV9hbmlt
VmFsOwogICAgIH0KIAotICAgIFByb3BlcnR5VHlwZSBtX2Jhc2VWYWw7Ci0gICAgbXV0YWJsZSBP
cHRpb25hbDxQcm9wZXJ0eVR5cGU+IG1fYW5pbVZhbDsKLSAgICBTVkdQcm9wZXJ0eVN0YXRlIG1f
c3RhdGUgeyBTVkdQcm9wZXJ0eVN0YXRlOjpDbGVhbiB9OworICAgIFJlZjxTVkdTaGFyZWRQcmlt
aXRpdmVQcm9wZXJ0eTxQcm9wZXJ0eVR5cGU+PiBtX2Jhc2VWYWw7CisgICAgbXV0YWJsZSBSZWZQ
dHI8U1ZHU2hhcmVkUHJpbWl0aXZlUHJvcGVydHk8UHJvcGVydHlUeXBlPj4gbV9hbmltVmFsOwog
fTsKIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQ
cm9wZXJ0eUFuaW1hdG9ySW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9w
cm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlBbmltYXRvckltcGwuaAkocmV2aXNpb24gMjQ3
MDA5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0
eUFuaW1hdG9ySW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFn
bWEgb25jZQogCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQ
cm9wZXJ0eUFuaW1hdG9yLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQcm9wZXJ0eUltcGwuaCIK
ICNpbmNsdWRlICJTVkdBbmltYXRpb25BZGRpdGl2ZUxpc3RGdW5jdGlvbkltcGwuaCIKQEAgLTMw
MSwxMSArMzAyLDMzIEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6CisgICAgYm9vbCBpc0Fu
aW1hdGVkU3R5bGVDbGFzc0FuaWFtdG9yKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBt
X2F0dHJpYnV0ZU5hbWUubWF0Y2hlcyhIVE1MTmFtZXM6OmNsYXNzQXR0cik7CisgICAgfQorCiAg
ICAgdm9pZCBhbmltYXRlKFNWR0VsZW1lbnQqIHRhcmdldEVsZW1lbnQsIGZsb2F0IHByb2dyZXNz
LCB1bnNpZ25lZCByZXBlYXRDb3VudCkgZmluYWwKICAgICB7CiAgICAgICAgIFN0cmluZyYgYW5p
bWF0ZWQgPSBtX2FuaW1hdGVkLT5hbmltVmFsKCk7CiAgICAgICAgIG1fZnVuY3Rpb24uYW5pbWF0
ZSh0YXJnZXRFbGVtZW50LCBwcm9ncmVzcywgcmVwZWF0Q291bnQsIGFuaW1hdGVkKTsKICAgICB9
CisgICAgCisgICAgdm9pZCBhcHBseShTVkdFbGVtZW50KiB0YXJnZXRFbGVtZW50KSBmaW5hbAor
ICAgIHsKKyAgICAgICAgQmFzZTo6YXBwbHkodGFyZ2V0RWxlbWVudCk7CisgICAgICAgIGlmIChp
c0FuaW1hdGVkU3R5bGVDbGFzc0FuaWFtdG9yKCkpCisgICAgICAgICAgICBpbnZhbGlkYXRlU3R5
bGUodGFyZ2V0RWxlbWVudCk7CisgICAgfQorICAgIAorICAgIHZvaWQgc3RvcChTVkdFbGVtZW50
KiB0YXJnZXRFbGVtZW50KSBmaW5hbAorICAgIHsKKyAgICAgICAgaWYgKCFtX2FuaW1hdGVkLT5p
c0FuaW1hdGluZygpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIEJhc2U6OnN0b3Ao
dGFyZ2V0RWxlbWVudCk7CisgICAgICAgIGlmIChpc0FuaW1hdGVkU3R5bGVDbGFzc0FuaWFtdG9y
KCkpCisgICAgICAgICAgICBpbnZhbGlkYXRlU3R5bGUodGFyZ2V0RWxlbWVudCk7CisgICAgfQog
fTsKIAogY2xhc3MgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3IgZmluYWwgOiBwdWJs
aWMgU1ZHQW5pbWF0ZWRQcm9wZXJ0eUFuaW1hdG9yPFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdCwg
U1ZHQW5pbWF0aW9uVHJhbnNmb3JtTGlzdEZ1bmN0aW9uPiB7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdBdHRyaWJ1dGVBbmltYXRvci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQXR0cmlidXRlQW5pbWF0b3IuY3BwCShy
ZXZpc2lvbiAyNDcwMDkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBdHRy
aWJ1dGVBbmltYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDEwICszNywxNyBAQCBib29s
IFNWR0F0dHJpYnV0ZUFuaW1hdG9yOjppc0FuaW1hdGVkU3R5CiAgICAgcmV0dXJuIHRhcmdldEVs
ZW1lbnQtPmlzQW5pbWF0ZWRTdHlsZUF0dHJpYnV0ZShtX2F0dHJpYnV0ZU5hbWUpOwogfQogCit2
b2lkIFNWR0F0dHJpYnV0ZUFuaW1hdG9yOjppbnZhbGlkYXRlU3R5bGUoU1ZHRWxlbWVudCogdGFy
Z2V0RWxlbWVudCkKK3sKKyAgICBTVkdFbGVtZW50OjpJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJk
IGd1YXJkKCp0YXJnZXRFbGVtZW50KTsKKyAgICB0YXJnZXRFbGVtZW50LT5pbnZhbGlkYXRlU1ZH
UHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoKTsKK30KKwogdm9pZCBTVkdBdHRyaWJ1dGVBbmlt
YXRvcjo6YXBwbHlBbmltYXRlZFN0eWxlUHJvcGVydHlDaGFuZ2UoU1ZHRWxlbWVudCogZWxlbWVu
dCwgQ1NTUHJvcGVydHlJRCBpZCwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBBU1NFUlQo
ZWxlbWVudCk7CiAgICAgQVNTRVJUKCFlbGVtZW50LT5tX2RlbGV0aW9uSGFzQmVndW4pOworICAg
IEFTU0VSVChpZCAhPSBDU1NQcm9wZXJ0eUludmFsaWQpOwogICAgIAogICAgIGlmICghZWxlbWVu
dC0+ZW5zdXJlQW5pbWF0ZWRTTUlMU3R5bGVQcm9wZXJ0aWVzKCkuc2V0UHJvcGVydHkoaWQsIHZh
bHVlLCBmYWxzZSkpCiAgICAgICAgIHJldHVybjsKQEAgLTcwLDYgKzc3LDcgQEAgdm9pZCBTVkdB
dHRyaWJ1dGVBbmltYXRvcjo6cmVtb3ZlQW5pbWF0ZQogewogICAgIEFTU0VSVChlbGVtZW50KTsK
ICAgICBBU1NFUlQoIWVsZW1lbnQtPm1fZGVsZXRpb25IYXNCZWd1bik7CisgICAgQVNTRVJUKGlk
ICE9IENTU1Byb3BlcnR5SW52YWxpZCk7CiAKICAgICBlbGVtZW50LT5lbnN1cmVBbmltYXRlZFNN
SUxTdHlsZVByb3BlcnRpZXMoKS5yZW1vdmVQcm9wZXJ0eShpZCk7CiAgICAgZWxlbWVudC0+aW52
YWxpZGF0ZVN0eWxlKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdB
dHRyaWJ1dGVBbmltYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9w
ZXJ0aWVzL1NWR0F0dHJpYnV0ZUFuaW1hdG9yLmgJKHJldmlzaW9uIDI0NzAwOSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0F0dHJpYnV0ZUFuaW1hdG9yLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTc2LDYgKzc2LDcgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIGJvb2wgaXNB
bmltYXRlZFN0eWxlUHJvcGVydHlBbmlhbXRvcihjb25zdCBTVkdFbGVtZW50KikgY29uc3Q7CiAK
KyAgICBzdGF0aWMgdm9pZCBpbnZhbGlkYXRlU3R5bGUoU1ZHRWxlbWVudCopOwogICAgIHN0YXRp
YyB2b2lkIGFwcGx5QW5pbWF0ZWRTdHlsZVByb3BlcnR5Q2hhbmdlKFNWR0VsZW1lbnQqLCBDU1NQ
cm9wZXJ0eUlELCBjb25zdCBTdHJpbmcmIHZhbHVlKTsKICAgICBzdGF0aWMgdm9pZCByZW1vdmVB
bmltYXRlZFN0eWxlUHJvcGVydHkoU1ZHRWxlbWVudCosIENTU1Byb3BlcnR5SUQpOwogICAgIHN0
YXRpYyB2b2lkIGFwcGx5QW5pbWF0ZWRQcm9wZXJ0eUNoYW5nZShTVkdFbGVtZW50KiwgY29uc3Qg
UXVhbGlmaWVkTmFtZSYpOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjQ3MDA5KQorKysgTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTktMDctMDIg
IFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBB
c3NlcnRpb24gZmlyZXMgd2hlbiBhbmltYXRpbmcgdGhlICdjbGFzcycgYXR0cmlidXRlIG9mIGFu
IFNWRyBlbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTczNzIKKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisKKyAgICAg
ICAgKiBzdmcvYW5pbWF0aW9ucy9hbmltYXRlZC1ib29sLWV4dGVybmFsUmVzb3VyY2VzUmVxdWly
ZWQtaW5zdGFuY2VzLWV4cGVjdGVkLnN2ZzogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlv
bnMvYW5pbWF0ZWQtYm9vbC1leHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLWluc3RhbmNlcy5zdmc6
IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL2FuaW1hdGVkLXN0cmluZy1jbGFzcy1p
bnN0YW5jZXMtZXhwZWN0ZWQuc3ZnOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9h
bmltYXRlZC1zdHJpbmctY2xhc3MtaW5zdGFuY2VzLnN2ZzogQWRkZWQuCisgICAgICAgICogc3Zn
L2FuaW1hdGlvbnMvYW5pbWF0ZWQtc3RyaW5nLWhyZWYtZXhwZWN0ZWQuc3ZnOiBBZGRlZC4KKyAg
ICAgICAgKiBzdmcvYW5pbWF0aW9ucy9hbmltYXRlZC1zdHJpbmctaHJlZi5zdmc6IEFkZGVkLgor
CiAyMDE5LTA2LTMwICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNDY5NTkuCkluZGV4OiBMYXlvdXRU
ZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlZC1ib29sLWV4dGVybmFsUmVzb3VyY2VzUmVxdWly
ZWQtaW5zdGFuY2VzLWV4cGVjdGVkLnN2Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcv
YW5pbWF0aW9ucy9hbmltYXRlZC1ib29sLWV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQtaW5zdGFu
Y2VzLWV4cGVjdGVkLnN2Zwkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0
aW9ucy9hbmltYXRlZC1ib29sLWV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQtaW5zdGFuY2VzLWV4
cGVjdGVkLnN2Zwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDMgQEAKKzxzdmcgeG1sbnM9Imh0
dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KKyAgICA8cmVjdCB3aWR0aD0iMTAwIiBoZWlnaHQ9
IjEwMCIgZmlsbD0iZ3JlZW4iLz4KKzwvc3ZnPgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvYW5pbWF0ZWQtYm9vbC1leHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLWluc3RhbmNlcy5z
dmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZWQtYm9v
bC1leHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLWluc3RhbmNlcy5zdmcJKG5vbmV4aXN0ZW50KQor
KysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZWQtYm9vbC1leHRlcm5hbFJlc291
cmNlc1JlcXVpcmVkLWluc3RhbmNlcy5zdmcJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw5IEBA
Cis8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CisgICAgPGRlc2M+VGVz
dCB0aGF0IHRoZSBpbnN0YW5jZSBvZiB0aGUgJ2V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQnIGF0
dHJpYnV0ZSBpcyBhbmltYXRlZCBjb3JyZWN0bHkuPC9kZXNjPgorICAgIDxkZWY+CisgICAgICAg
IDxyZWN0IGlkPSJyZWN0IiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgZmlsbD0iZ3JlZW4iPgor
ICAgICAgICAgICAgPHNldCBhdHRyaWJ1dGVOYW1lPSJleHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
IiB0bz0idHJ1ZSIvPgorICAgICAgICA8L3JlY3Q+CisgICAgPC9kZWY+CisgICAgPHVzZSBocmVm
PSIjcmVjdCIvPgorPC9zdmc+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmlt
YXRlZC1zdHJpbmctY2xhc3MtaW5zdGFuY2VzLWV4cGVjdGVkLnN2Zwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlZC1zdHJpbmctY2xhc3MtaW5zdGFuY2Vz
LWV4cGVjdGVkLnN2Zwkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9u
cy9hbmltYXRlZC1zdHJpbmctY2xhc3MtaW5zdGFuY2VzLWV4cGVjdGVkLnN2Zwkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDMgQEAKKzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAv
c3ZnIj4KKyAgICA8cmVjdCB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgZmlsbD0iZ3JlZW4iLz4K
Kzwvc3ZnPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL3N2
Zy9hbmltYXRpb25zL2FuaW1hdGVkLXN0cmluZy1jbGFzcy1pbnN0YW5jZXMuc3ZnCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGVkLXN0cmluZy1jbGFzcy1p
bnN0YW5jZXMuc3ZnCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25z
L2FuaW1hdGVkLXN0cmluZy1jbGFzcy1pbnN0YW5jZXMuc3ZnCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMTcgQEAKKzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KKyAg
ICA8ZGVzYz5UZXN0IHRoYXQgdGhlIGluc3RhbmNlIG9mIHRoZSAnY2xhc3MnIGF0dHJpYnV0ZSBp
cyBhbmltYXRlZCBhbmQgaXRzIHJlbmRlcmVyIGlzIGludmFsaWRhdGVkIGNvcnJlY3RseS48L2Rl
c2M+CisgICAgPHN0eWxlPgorICAgICAgICAucmVkLWZpbGwgeworICAgICAgICAgICAgZmlsbDog
cmVkOworICAgICAgICB9CisgICAgICAgIC5ncmVlbi1maWxsIHsKKyAgICAgICAgICAgIGZpbGw6
IGdyZWVuOworICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8ZGVmPgorICAgICAgICA8cmVj
dCBpZD0icmVjdCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGNsYXNzPSJyZWQtZmlsbCI+Cisg
ICAgICAgICAgICA8c2V0IGlkPSJncmVlbiIgYXR0cmlidXRlTmFtZT0iY2xhc3MiIHRvPSJncmVl
bi1maWxsIiBmaWxsPSJmcmVlemUiLz4KKyAgICAgICAgPC9yZWN0PgorICAgIDwvZGVmPgorICAg
IDx1c2UgaHJlZj0iI3JlY3QiLz4KKzwvc3ZnPgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvYW5pbWF0ZWQtc3RyaW5nLWhyZWYtZXhwZWN0ZWQuc3ZnCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGVkLXN0cmluZy1ocmVmLWV4cGVjdGVkLnN2
Zwkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlZC1z
dHJpbmctaHJlZi1leHBlY3RlZC5zdmcJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzIEBACis8
c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CisgICAgPHJlY3Qgd2lkdGg9
IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9ImdyZWVuIi8+Cis8L3N2Zz4KSW5kZXg6IExheW91dFRl
c3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGVkLXN0cmluZy1ocmVmLnN2Zwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlZC1zdHJpbmctaHJlZi5zdmcJKG5v
bmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZWQtc3RyaW5n
LWhyZWYuc3ZnCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTcgQEAKKzxzdmcgeG1sbnM9Imh0
dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KKyAgICA8ZGVzYz5UZXN0IHRoYXQgdGhlICdocmVm
JyBhdHRyaWJ1dGUgaXMgYW5pbWF0ZWQgY29ycmVjdGx5LjwvZGVzYz4KKyAgICA8ZGVmcz4KKyAg
ICAgICAgPGxpbmVhckdyYWRpZW50IGlkPSJyZWQtZmlsbCI+CisgICAgICAgICAgICA8c3RvcCBv
ZmZzZXQ9IjAlIiAgc3RvcC1jb2xvcj0icmVkIiAvPgorICAgICAgICAgICAgPHN0b3Agb2Zmc2V0
PSIxMDAlIiBzdG9wLWNvbG9yPSJyZWQiIC8+CisgICAgICAgIDwvbGluZWFyR3JhZGllbnQ+Cisg
ICAgICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iZ3JlZW4tZmlsbCI+CisgICAgICAgICAgICA8c3Rv
cCBvZmZzZXQ9IjAlIiAgc3RvcC1jb2xvcj0iZ3JlZW4iIC8+CisgICAgICAgICAgICA8c3RvcCBv
ZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9ImdyZWVuIiAvPgorICAgICAgICA8L2xpbmVhckdyYWRp
ZW50PgorICAgICAgICA8bGluZWFyR3JhZGllbnQgaWQ9ImdyYWRpZW50IiBocmVmPSIjcmVkLWZp
bGwiPgorICAgICAgICAgICAgPHNldCBhdHRyaWJ1dGVOYW1lPSJocmVmIiB0bz0iI2dyZWVuLWZp
bGwiIGZpbGw9ImZyZWV6ZSIvPgorICAgICAgICA8L2xpbmVhckdyYWRpZW50PgorICAgIDwvZGVm
cz4KKyAgICA8cmVjdCBpZD0icmVjdCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9InVy
bCgnI2dyYWRpZW50JykiLz4KKzwvc3ZnPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>373373</attachid>
            <date>2019-07-02 17:01:54 -0700</date>
            <delta_ts>2019-07-02 18:42:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197372-20190702170154.patch</filename>
            <type>text/plain</type>
            <size>23310</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0NzA3MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUyIEBACisyMDE5LTA3LTAyICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQXNzZXJ0aW9u
IGZpcmVzIHdoZW4gYW5pbWF0aW5nIHRoZSAnY2xhc3MnIGF0dHJpYnV0ZSBvZiBhbiBTVkcgZWxl
bWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3
MzcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgorCisgICAgICAgIEFsbCBp
bnN0YW5jZXMgb2YgU1ZHIGFuaW1hdGVkIHByb3BlcnRpZXMgaGF2ZSB0byBzaGFyZSBhIHNpbmds
ZSBhbmltVmFsCisgICAgICAgIHN1Y2ggdGhhdCBvbmNlIGl0cyB2YWx1ZSBpcyBwcm9ncmVzc2Vk
LCBhbGwgdGhlIGluc3RhbmNlcyB3aWxsIHNlZSB0aGUKKyAgICAgICAgY2hhbmdlLiBUaGlzIHdh
cyBub3QgaGFwcGVuaW5nIGZvciBTVkdBbmltYXRlZFByaW1pdGl2ZVByb3BlcnR5LiBUbyBkbwor
ICAgICAgICB0aGF0IHdlIG5lZWQgdG86CisKKyAgICAgICAgLS0gSW50cm9kdWNlIHRoZSBuZXcg
dGVtcGxhdGUgY2xhc3MgU1ZHU2hhcmVkUHJpbWl0aXZlUHJvcGVydHkgd2hpY2ggaXMKKyAgICAg
ICAgICAgZGVyaXZlZCBmcm9tIFNWR1Byb3BlcnR5LiBUaGlzIGNsYXNzIG1hbmFnZXMgYSBzaW5n
bGUgcHJpbWl0aXZlIHZhbHVlLgorICAgICAgICAtLSBDaGFuZ2UgdGhlIHR5cGUgb2YgU1ZHQW5p
bWF0ZWRQcmltaXRpdmVQcm9wZXJ0eTo6bV9hbmltVmFsIHRvCisgICAgICAgICAgIFJlZlB0cjxT
VkdTaGFyZWRQcmltaXRpdmVQcm9wZXJ0eTxQcm9wZXJ0eVR5cGU+Pi4gVGhlIG1hc3RlciBwcm9w
ZXJ0eQorICAgICAgICAgICBjcmVhdGVzIGl0IGFuZCBhbGwgdGhlIGluc3RhbmNlcyBob2xkIHJl
ZmVyZW5jZXMgdG8gdGhlIHNhbWUgcG9pbnRlci4KKyAgICAgICAgLS0gQ2hhbmdlIHRoZSB0eXBl
IG9mIFNWR0FuaW1hdGVkUHJpbWl0aXZlUHJvcGVydHk6Om1fYmFzZVZhbCB0bworICAgICAgICAg
ICBSZWY8U1ZHU2hhcmVkUHJpbWl0aXZlUHJvcGVydHk8UHJvcGVydHlUeXBlPj4gZm9yIHNpbXBs
aWNpdHkgYW5kIGdldAorICAgICAgICAgICByaWQgb2YgU1ZHQW5pbWF0ZWRQcmltaXRpdmVQcm9w
ZXJ0eTo6bV9zdGF0ZS4KKyAgICAgICAgLS0gT3ZlcnJpZGUgdGhlIHZpcnR1YWwgbWV0aG9kcyBp
bnN0YW5jZVN0YXJ0QW5pbWF0aW9uKCkgYW5kCisgICAgICAgICAgIGluc3RhbmNlU3RvcEFuaW1h
dGlvbigpIG9mIFNWR0FuaW1hdGVkUHJpbWl0aXZlUHJvcGVydHkuCisgICAgICAgIC0tIFNWR0Fu
aW1hdGVkU3RyaW5nQW5pbWF0b3Igc2hvdWxkIGludmFsaWRhdGUgdGhlIHN0eWxlIG9mIHRoZSB0
YXJnZXQKKyAgICAgICAgICAgZWxlbWVudCBpZiBhdHRyaWJ1dGUgbmFtZSBpcyAnY2xhc3MnIGFu
ZCB3aGVuIGl0cyBhbmltVmFsIGNoYW5nZXMuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQ
cmltaXRpdmVQcm9wZXJ0eS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcmltaXRp
dmVQcm9wZXJ0eTo6c2V0QmFzZVZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFBy
aW1pdGl2ZVByb3BlcnR5OjpzZXRCYXNlVmFsSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZWRQcmltaXRpdmVQcm9wZXJ0eTo6YmFzZVZhbCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZFByaW1pdGl2ZVByb3BlcnR5OjpzZXRBbmltVmFsKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUHJpbWl0aXZlUHJvcGVydHk6OmFuaW1WYWwgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcmltaXRpdmVQcm9wZXJ0eTo6YW5pbVZh
bCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFByaW1pdGl2ZVByb3BlcnR5OjpjdXJy
ZW50VmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcmltaXRpdmVQ
cm9wZXJ0eTo6U1ZHQW5pbWF0ZWRQcmltaXRpdmVQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZFByaW1pdGl2ZVByb3BlcnR5OjplbnN1cmVBbmltVmFsKToKKyAgICAgICAg
KiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5QW5pbWF0b3JJbXBsLmg6CisgICAg
ICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQXR0cmlidXRlQW5pbWF0b3IuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQXR0cmlidXRlQW5pbWF0b3I6OmludmFsaWRhdGVTdHlsZSk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdBdHRyaWJ1dGVBbmltYXRvcjo6YXBwbHlBbmltYXRlZFN0eWxlUHJvcGVy
dHlDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQXR0cmlidXRlQW5pbWF0b3I6OnJlbW92
ZUFuaW1hdGVkU3R5bGVQcm9wZXJ0eSk6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQXR0
cmlidXRlQW5pbWF0b3IuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdTaGFyZWRQcmlt
aXRpdmVQcm9wZXJ0eS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1NoYXJlZFByaW1p
dGl2ZVByb3BlcnR5OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU2hhcmVkUHJpbWl0
aXZlUHJvcGVydHk6OnZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1NoYXJlZFBy
aW1pdGl2ZVByb3BlcnR5Ojp2YWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTaGFyZWRQcmlt
aXRpdmVQcm9wZXJ0eTo6c2V0VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU2hhcmVkUHJp
bWl0aXZlUHJvcGVydHk6OlNWR1NoYXJlZFByaW1pdGl2ZVByb3BlcnR5KToKKwogMjAxOS0wNy0w
MiAgQW5kcmVzIEdvbnphbGV6ICA8YW5kcmVzZ18yMkBhcHBsZS5jb20+CiAKICAgICAgICAgRW5o
YW5jZSBzdXBwb3J0IG9mIGFyaWEtaGFzcG9wdXAgcGVyIEFSSUEgMS4xIHNwZWNpZmljYXRpb24u
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCShyZXZpc2lvbiAyNDcwMDkpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTg1Nyw3ICs4NTcsNyBAQAog
CQkyRTQzNDY1MTBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyT2JqZWN0UHJveHkuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFNDM0NjNGMEY1NDZBODIw
MEIwRjFCQSAvKiBXb3JrZXJPYmplY3RQcm94eS5oICovOyB9OwogCQkyRTQzNDY1MzBGNTQ2QTgy
MDBCMEYxQkEgLyogV29ya2VyUnVuTG9vcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMkU0MzQ2NDEwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlclJ1bkxv
b3AuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQky
RTQzNDY1NTBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyVGhyZWFkLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTQzNDY0MzBGNTQ2QTgyMDBCMEYxQkEg
LyogV29ya2VyVGhyZWFkLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKLQkJMkU3NTg0MUUxMjc3OUFEQTAwNjI2MjhCIC8qIEZpbGVSZWFkZXJMb2FkZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFNzU4NDFC
MTI3NzlBREEwMDYyNjI4QiAvKiBGaWxlUmVhZGVyTG9hZGVyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTt9OworCQkyRTc1ODQxRTEyNzc5QURBMDA2MjYyOEIg
LyogRmlsZVJlYWRlckxvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMkU3NTg0MUIxMjc3OUFEQTAwNjI2MjhCIC8qIEZpbGVSZWFkZXJMb2FkZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyRTc1
ODQxRjEyNzc5QURBMDA2MjYyOEIgLyogRmlsZVJlYWRlckxvYWRlckNsaWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU3NTg0MUMxMjc3OUFEQTAw
NjI2MjhCIC8qIEZpbGVSZWFkZXJMb2FkZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyRTk0RjQzQzExOTIwN0RBMDBCN0Y3NUQgLyog
SlNGaWxlUmVhZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyRTk0RjQzQTExOTIwN0RBMDBCN0Y3NUQgLyogSlNGaWxlUmVhZGVyLmggKi87IH07CiAJ
CTJFOUI1RDhGMUI2NkE5NEUwMDhDNkEyNCAvKiBXaGVlbEV2ZW50RGVsdGFGaWx0ZXJNYWMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFOUI1RDhFMUI2
NkE5NEUwMDhDNkEyNCAvKiBXaGVlbEV2ZW50RGVsdGFGaWx0ZXJNYWMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtODUzOCw2ICs4NTM4LDcgQEAK
IAkJNTNFRDNGREQxNjdBODhFNzAwNjc2MkU2IC8qIEpTSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRl
ZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0ludGVybmFsU2V0dGluZ3NH
ZW5lcmF0ZWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTUwQTBCQzcwODVGNjAz
OTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUXVhbGlmaWVkTmFtZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk1NTBBMEJD
ODA4NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVkTmFtZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBRdWFsaWZpZWROYW1lLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OworCQk1NTBGNjY0
NTIyQ0E4OUJEMDAwQTM0MTcgLyogU1ZHU2hhcmVkUHJpbWl0aXZlUHJvcGVydHkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU1ZHU2hhcmVkUHJpbWl0aXZlUHJvcGVydHkuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTUxMzdCMkMyMDM3OUU1NTAwMDEwMDRCIC8qIFNWR01hcmtlclR5cGVzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR01hcmtlclR5cGVzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1NDY3NTc3MUZEMUZDMUEwMDNCMTBCMCAvKiBJbWFn
ZVNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbWFnZVNvdXJjZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1NDY3NTc4MUZEMUZDMUEwMDNCMTBCMCAvKiBJbWFnZVNv
dXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZVNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTYxMjEsNiArMTYxMjIsNyBAQAogCQkJCTU1QkUwMjVDMjIzQjI5QzMwMDMy
RjA4QSAvKiBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnkuaCAqLywKIAkJCQk1NUJFMDI1NzIyM0Iy
OUMwMDAzMkYwOEEgLyogU1ZHUHJvcGVydHlSZWdpc3RyeS5oICovLAogCQkJCTA4OEEwRTAzMTI2
RUYxREIwMDk3OEY3QSAvKiBTVkdQcm9wZXJ0eVRyYWl0cy5oICovLAorCQkJCTU1MEY2NjQ1MjJD
QTg5QkQwMDBBMzQxNyAvKiBTVkdTaGFyZWRQcmltaXRpdmVQcm9wZXJ0eS5oICovLAogCQkJCTcy
MTQ0MzQ2MjI0MENBRDIwMEYxMkZGNyAvKiBTVkdWYWx1ZVByb3BlcnR5LmggKi8sCiAJCQkJNzJG
QjIzODYyMjQ5N0FENTAwN0U1QUM3IC8qIFNWR1ZhbHVlUHJvcGVydHlBbmltYXRvci5oICovLAog
CQkJCTcyRkIyMzg0MjI0OTdBRDQwMDdFNUFDNyAvKiBTVkdWYWx1ZVByb3BlcnR5QW5pbWF0b3JJ
bXBsLmggKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRl
ZFByaW1pdGl2ZVByb3BlcnR5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3By
b3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcmltaXRpdmVQcm9wZXJ0eS5oCShyZXZpc2lvbiAyNDcwMDkp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByaW1pdGl2ZVBy
b3BlcnR5LmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDcgQEAKICNwcmFnbWEgb25jZQog
CiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oIgotI2luY2x1ZGUgIlNWR1Byb3BlcnR5
LmgiCisjaW5jbHVkZSAiU1ZHU2hhcmVkUHJpbWl0aXZlUHJvcGVydHkuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCkBAIC00OCw5NSArNDgsMTEyIEBAIHB1YmxpYzoKICAgICAvLyBVc2VkIGJ5
IHRoZSBET00uCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0QmFzZVZhbChjb25zdCBQcm9wZXJ0
eVR5cGUmIGJhc2VWYWwpCiAgICAgewotICAgICAgICBtX2Jhc2VWYWwgPSBiYXNlVmFsOworICAg
ICAgICBtX2Jhc2VWYWwtPnNldFZhbHVlKGJhc2VWYWwpOwogICAgICAgICBjb21taXRQcm9wZXJ0
eUNoYW5nZShudWxscHRyKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKICAgICAvLyBV
c2VkIGJ5IFNWR0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKCkuCi0gICAgdm9pZCBzZXRCYXNlVmFs
SW50ZXJuYWwoY29uc3QgUHJvcGVydHlUeXBlJiBiYXNlVmFsKSB7IG1fYmFzZVZhbCA9IGJhc2VW
YWw7IH0KLSAgICBjb25zdCBQcm9wZXJ0eVR5cGUmIGJhc2VWYWwoKSBjb25zdCB7IHJldHVybiBt
X2Jhc2VWYWw7IH0KKyAgICB2b2lkIHNldEJhc2VWYWxJbnRlcm5hbChjb25zdCBQcm9wZXJ0eVR5
cGUmIGJhc2VWYWwpIHsgbV9iYXNlVmFsLT5zZXRWYWx1ZShiYXNlVmFsKTsgfQorICAgIGNvbnN0
IFByb3BlcnR5VHlwZSYgYmFzZVZhbCgpIGNvbnN0IHsgcmV0dXJuIG1fYmFzZVZhbC0+dmFsdWUo
KTsgfQogCiAgICAgLy8gVXNlZCBieSBTVkdBdHRyaWJ1dGVBbmltYXRvcjo6cHJvZ3Jlc3MuCiAg
ICAgdm9pZCBzZXRBbmltVmFsKGNvbnN0IFByb3BlcnR5VHlwZSYgYW5pbVZhbCkKICAgICB7Ci0g
ICAgICAgIEFTU0VSVChpc0FuaW1hdGluZygpKTsKLSAgICAgICAgbV9hbmltVmFsID0gYW5pbVZh
bDsKKyAgICAgICAgQVNTRVJUKGlzQW5pbWF0aW5nKCkgJiYgbV9hbmltVmFsKTsKKyAgICAgICAg
bV9hbmltVmFsLT5zZXRWYWx1ZShhbmltVmFsKTsKICAgICB9CiAKICAgICBjb25zdCBQcm9wZXJ0
eVR5cGUmIGFuaW1WYWwoKSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUX0lNUExJRVMoaXNB
bmltYXRpbmcoKSwgbV9hbmltVmFsKTsKLSAgICAgICAgcmV0dXJuIGlzQW5pbWF0aW5nKCkgPyAq
bV9hbmltVmFsIDogbV9iYXNlVmFsOworICAgICAgICByZXR1cm4gaXNBbmltYXRpbmcoKSA/IG1f
YW5pbVZhbC0+dmFsdWUoKSA6IG1fYmFzZVZhbC0+dmFsdWUoKTsKICAgICB9CiAKICAgICBQcm9w
ZXJ0eVR5cGUmIGFuaW1WYWwoKQogICAgIHsKICAgICAgICAgQVNTRVJUX0lNUExJRVMoaXNBbmlt
YXRpbmcoKSwgbV9hbmltVmFsKTsKLSAgICAgICAgcmV0dXJuIGlzQW5pbWF0aW5nKCkgPyAqbV9h
bmltVmFsIDogbV9iYXNlVmFsOworICAgICAgICByZXR1cm4gaXNBbmltYXRpbmcoKSA/IG1fYW5p
bVZhbC0+dmFsdWUoKSA6IG1fYmFzZVZhbC0+dmFsdWUoKTsKICAgICB9CiAKICAgICAvLyBVc2Vk
IHdoZW4gY29tbWl0dGluZyBhIGNoYW5nZSBmcm9tIHRoZSBTVkdBbmltYXRlZFByb3BlcnR5IHRv
IHRoZSBhdHRyaWJ1dGUuCi0gICAgU3RyaW5nIGJhc2VWYWxBc1N0cmluZygpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIFNWR1Byb3BlcnR5VHJhaXRzPFByb3BlcnR5VHlwZT46OnRvU3RyaW5nKG1f
YmFzZVZhbCk7IH0KKyAgICBTdHJpbmcgYmFzZVZhbEFzU3RyaW5nKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gbV9iYXNlVmFsLT52YWx1ZUFzU3RyaW5nKCk7IH0KIAogICAgIC8vIFVzZWQgdG8g
YXBwbHkgdGhlIFNWR0F0dHJpYnV0ZUFuaW1hdG9yIGNoYW5nZSB0byB0aGUgdGFyZ2V0IGVsZW1l
bnQuCiAgICAgU3RyaW5nIGFuaW1WYWxBc1N0cmluZygpIGNvbnN0IG92ZXJyaWRlCiAgICAgewot
ICAgICAgICBBU1NFUlQoaXNBbmltYXRpbmcoKSAmJiAhIW1fYW5pbVZhbCk7Ci0gICAgICAgIHJl
dHVybiBTVkdQcm9wZXJ0eVRyYWl0czxQcm9wZXJ0eVR5cGU+Ojp0b1N0cmluZygqbV9hbmltVmFs
KTsKKyAgICAgICAgQVNTRVJUKGlzQW5pbWF0aW5nKCkgJiYgbV9hbmltVmFsKTsKKyAgICAgICAg
cmV0dXJuIG1fYW5pbVZhbC0+dmFsdWVBc1N0cmluZygpOwogICAgIH0KIAogICAgIC8vIE1hbmFn
aW5nIHRoZSByZWxhdGlvbnNoaXAgd2l0aCB0aGUgb3duZXIuCi0gICAgdm9pZCBzZXREaXJ0eSgp
IG92ZXJyaWRlIHsgbV9zdGF0ZSA9IFNWR1Byb3BlcnR5U3RhdGU6OkRpcnR5OyB9Ci0gICAgYm9v
bCBpc0RpcnR5KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zdGF0ZSA9PSBTVkdQcm9wZXJ0
eVN0YXRlOjpEaXJ0eTsgfQotICAgIE9wdGlvbmFsPFN0cmluZz4gc3luY2hyb25pemUoKSBvdmVy
cmlkZQotICAgIHsKLSAgICAgICAgaWYgKG1fc3RhdGUgPT0gU1ZHUHJvcGVydHlTdGF0ZTo6Q2xl
YW4pCi0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgICAgICBtX3N0YXRlID0g
U1ZHUHJvcGVydHlTdGF0ZTo6Q2xlYW47Ci0gICAgICAgIHJldHVybiBiYXNlVmFsQXNTdHJpbmco
KTsKLSAgICB9CisgICAgdm9pZCBzZXREaXJ0eSgpIG92ZXJyaWRlIHsgbV9iYXNlVmFsLT5zZXRE
aXJ0eSgpOyB9CisgICAgYm9vbCBpc0RpcnR5KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9i
YXNlVmFsLT5pc0RpcnR5KCk7IH0KKyAgICBPcHRpb25hbDxTdHJpbmc+IHN5bmNocm9uaXplKCkg
b3ZlcnJpZGUgeyByZXR1cm4gbV9iYXNlVmFsLT5zeW5jaHJvbml6ZSgpOyB9CiAKICAgICAvLyBV
c2VkIGJ5IFJlbmRlclNWR0VsZW1lbnRzIGFuZCBEdW1wUmVuZGVyVHJlZS4KICAgICBjb25zdCBQ
cm9wZXJ0eVR5cGUmIGN1cnJlbnRWYWx1ZSgpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlRf
SU1QTElFUyhpc0FuaW1hdGluZygpLCBtX2FuaW1WYWwpOwotICAgICAgICByZXR1cm4gaXNBbmlt
YXRpbmcoKSA/ICptX2FuaW1WYWwgOiBtX2Jhc2VWYWw7CisgICAgICAgIHJldHVybiBpc0FuaW1h
dGluZygpID8gbV9hbmltVmFsLT52YWx1ZSgpIDogbV9iYXNlVmFsLT52YWx1ZSgpOwogICAgIH0K
IAogICAgIC8vIENvbnRyb2xsaW5nIHRoZSBhbmltYXRpb24uCiAgICAgdm9pZCBzdGFydEFuaW1h
dGlvbigpIG92ZXJyaWRlCiAgICAgewotICAgICAgICBpZiAoaXNBbmltYXRpbmcoKSkKLSAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgbV9hbmltVmFsID0gbV9iYXNlVmFsOworICAgICAgICBp
ZiAobV9hbmltVmFsKQorICAgICAgICAgICAgbV9hbmltVmFsLT5zZXRWYWx1ZShtX2Jhc2VWYWwt
PnZhbHVlKCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBlbnN1cmVBbmltVmFsKCk7CiAg
ICAgICAgIFNWR0FuaW1hdGVkUHJvcGVydHk6OnN0YXJ0QW5pbWF0aW9uKCk7CiAgICAgfQogCiAg
ICAgdm9pZCBzdG9wQW5pbWF0aW9uKCkgb3ZlcnJpZGUKICAgICB7CisgICAgICAgIGlmIChtX2Fu
aW1WYWwpCisgICAgICAgICAgICBtX2FuaW1WYWwtPnNldFZhbHVlKG1fYmFzZVZhbC0+dmFsdWUo
KSk7CisgICAgICAgIFNWR0FuaW1hdGVkUHJvcGVydHk6OnN0b3BBbmltYXRpb24oKTsKKyAgICB9
CisKKyAgICAvLyBDb250cm9sbGluZyB0aGUgaW5zdGFuY2UgYW5pbWF0aW9uLgorICAgIHZvaWQg
aW5zdGFuY2VTdGFydEFuaW1hdGlvbihTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZCkgb3Zl
cnJpZGUKKyAgICB7CisgICAgICAgIGlmIChpc0FuaW1hdGluZygpKQorICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICBtX2FuaW1WYWwgPSBzdGF0aWNfY2FzdDxTVkdBbmltYXRlZFByaW1pdGl2
ZVByb3BlcnR5Jj4oYW5pbWF0ZWQpLm1fYW5pbVZhbDsKKyAgICAgICAgU1ZHQW5pbWF0ZWRQcm9w
ZXJ0eTo6aW5zdGFuY2VTdGFydEFuaW1hdGlvbihhbmltYXRlZCk7CisgICAgfQorCisgICAgdm9p
ZCBpbnN0YW5jZVN0b3BBbmltYXRpb24oKSBvdmVycmlkZQorICAgIHsKICAgICAgICAgaWYgKCFp
c0FuaW1hdGluZygpKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBtX2FuaW1WYWwgPSBX
VEY6Om51bGxvcHQ7Ci0gICAgICAgIFNWR0FuaW1hdGVkUHJvcGVydHk6OnN0b3BBbmltYXRpb24o
KTsKKyAgICAgICAgbV9hbmltVmFsID0gbnVsbHB0cjsKKyAgICAgICAgU1ZHQW5pbWF0ZWRQcm9w
ZXJ0eTo6aW5zdGFuY2VTdG9wQW5pbWF0aW9uKCk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CiAgICAg
U1ZHQW5pbWF0ZWRQcmltaXRpdmVQcm9wZXJ0eShTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCkK
ICAgICAgICAgOiBTVkdBbmltYXRlZFByb3BlcnR5KGNvbnRleHRFbGVtZW50KQotICAgICAgICAs
IG1fYmFzZVZhbChTVkdQcm9wZXJ0eVRyYWl0czxQcm9wZXJ0eVR5cGU+Ojppbml0aWFsVmFsdWUo
KSkKKyAgICAgICAgLCBtX2Jhc2VWYWwoU1ZHU2hhcmVkUHJpbWl0aXZlUHJvcGVydHk8UHJvcGVy
dHlUeXBlPjo6Y3JlYXRlKCkpCiAgICAgewogICAgIH0KIAogICAgIFNWR0FuaW1hdGVkUHJpbWl0
aXZlUHJvcGVydHkoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNvbnN0IFByb3BlcnR5VHlw
ZSYgdmFsdWUpCiAgICAgICAgIDogU1ZHQW5pbWF0ZWRQcm9wZXJ0eShjb250ZXh0RWxlbWVudCkK
LSAgICAgICAgLCBtX2Jhc2VWYWwodmFsdWUpCisgICAgICAgICwgbV9iYXNlVmFsKFNWR1NoYXJl
ZFByaW1pdGl2ZVByb3BlcnR5PFByb3BlcnR5VHlwZT46OmNyZWF0ZSh2YWx1ZSkpCisgICAgewor
ICAgIH0KKworICAgIFJlZlB0cjxTVkdTaGFyZWRQcmltaXRpdmVQcm9wZXJ0eTxQcm9wZXJ0eVR5
cGU+PiYgZW5zdXJlQW5pbVZhbCgpCiAgICAgeworICAgICAgICBpZiAoIW1fYW5pbVZhbCkKKyAg
ICAgICAgICAgIG1fYW5pbVZhbCA9IFNWR1NoYXJlZFByaW1pdGl2ZVByb3BlcnR5PFByb3BlcnR5
VHlwZT46OmNyZWF0ZShtX2Jhc2VWYWwtPnZhbHVlKCkpOworICAgICAgICByZXR1cm4gbV9hbmlt
VmFsOwogICAgIH0KIAotICAgIFByb3BlcnR5VHlwZSBtX2Jhc2VWYWw7Ci0gICAgbXV0YWJsZSBP
cHRpb25hbDxQcm9wZXJ0eVR5cGU+IG1fYW5pbVZhbDsKLSAgICBTVkdQcm9wZXJ0eVN0YXRlIG1f
c3RhdGUgeyBTVkdQcm9wZXJ0eVN0YXRlOjpDbGVhbiB9OworICAgIFJlZjxTVkdTaGFyZWRQcmlt
aXRpdmVQcm9wZXJ0eTxQcm9wZXJ0eVR5cGU+PiBtX2Jhc2VWYWw7CisgICAgbXV0YWJsZSBSZWZQ
dHI8U1ZHU2hhcmVkUHJpbWl0aXZlUHJvcGVydHk8UHJvcGVydHlUeXBlPj4gbV9hbmltVmFsOwog
fTsKIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQ
cm9wZXJ0eUFuaW1hdG9ySW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9w
cm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlBbmltYXRvckltcGwuaAkocmV2aXNpb24gMjQ3
MDA5KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0
eUFuaW1hdG9ySW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFn
bWEgb25jZQogCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQ
cm9wZXJ0eUFuaW1hdG9yLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQcm9wZXJ0eUltcGwuaCIK
ICNpbmNsdWRlICJTVkdBbmltYXRpb25BZGRpdGl2ZUxpc3RGdW5jdGlvbkltcGwuaCIKQEAgLTMw
MSwxMSArMzAyLDMzIEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6CisgICAgYm9vbCBpc0Fu
aW1hdGVkU3R5bGVDbGFzc0FuaWFtdG9yKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBt
X2F0dHJpYnV0ZU5hbWUubWF0Y2hlcyhIVE1MTmFtZXM6OmNsYXNzQXR0cik7CisgICAgfQorCiAg
ICAgdm9pZCBhbmltYXRlKFNWR0VsZW1lbnQqIHRhcmdldEVsZW1lbnQsIGZsb2F0IHByb2dyZXNz
LCB1bnNpZ25lZCByZXBlYXRDb3VudCkgZmluYWwKICAgICB7CiAgICAgICAgIFN0cmluZyYgYW5p
bWF0ZWQgPSBtX2FuaW1hdGVkLT5hbmltVmFsKCk7CiAgICAgICAgIG1fZnVuY3Rpb24uYW5pbWF0
ZSh0YXJnZXRFbGVtZW50LCBwcm9ncmVzcywgcmVwZWF0Q291bnQsIGFuaW1hdGVkKTsKICAgICB9
CisgICAgCisgICAgdm9pZCBhcHBseShTVkdFbGVtZW50KiB0YXJnZXRFbGVtZW50KSBmaW5hbAor
ICAgIHsKKyAgICAgICAgQmFzZTo6YXBwbHkodGFyZ2V0RWxlbWVudCk7CisgICAgICAgIGlmIChp
c0FuaW1hdGVkU3R5bGVDbGFzc0FuaWFtdG9yKCkpCisgICAgICAgICAgICBpbnZhbGlkYXRlU3R5
bGUodGFyZ2V0RWxlbWVudCk7CisgICAgfQorICAgIAorICAgIHZvaWQgc3RvcChTVkdFbGVtZW50
KiB0YXJnZXRFbGVtZW50KSBmaW5hbAorICAgIHsKKyAgICAgICAgaWYgKCFtX2FuaW1hdGVkLT5p
c0FuaW1hdGluZygpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIEJhc2U6OnN0b3Ao
dGFyZ2V0RWxlbWVudCk7CisgICAgICAgIGlmIChpc0FuaW1hdGVkU3R5bGVDbGFzc0FuaWFtdG9y
KCkpCisgICAgICAgICAgICBpbnZhbGlkYXRlU3R5bGUodGFyZ2V0RWxlbWVudCk7CisgICAgfQog
fTsKIAogY2xhc3MgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3IgZmluYWwgOiBwdWJs
aWMgU1ZHQW5pbWF0ZWRQcm9wZXJ0eUFuaW1hdG9yPFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdCwg
U1ZHQW5pbWF0aW9uVHJhbnNmb3JtTGlzdEZ1bmN0aW9uPiB7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdBdHRyaWJ1dGVBbmltYXRvci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQXR0cmlidXRlQW5pbWF0b3IuY3BwCShy
ZXZpc2lvbiAyNDcwMDkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBdHRy
aWJ1dGVBbmltYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDEwICszNywxNyBAQCBib29s
IFNWR0F0dHJpYnV0ZUFuaW1hdG9yOjppc0FuaW1hdGVkU3R5CiAgICAgcmV0dXJuIHRhcmdldEVs
ZW1lbnQtPmlzQW5pbWF0ZWRTdHlsZUF0dHJpYnV0ZShtX2F0dHJpYnV0ZU5hbWUpOwogfQogCit2
b2lkIFNWR0F0dHJpYnV0ZUFuaW1hdG9yOjppbnZhbGlkYXRlU3R5bGUoU1ZHRWxlbWVudCogdGFy
Z2V0RWxlbWVudCkKK3sKKyAgICBTVkdFbGVtZW50OjpJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJk
IGd1YXJkKCp0YXJnZXRFbGVtZW50KTsKKyAgICB0YXJnZXRFbGVtZW50LT5pbnZhbGlkYXRlU1ZH
UHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoKTsKK30KKwogdm9pZCBTVkdBdHRyaWJ1dGVBbmlt
YXRvcjo6YXBwbHlBbmltYXRlZFN0eWxlUHJvcGVydHlDaGFuZ2UoU1ZHRWxlbWVudCogZWxlbWVu
dCwgQ1NTUHJvcGVydHlJRCBpZCwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBBU1NFUlQo
ZWxlbWVudCk7CiAgICAgQVNTRVJUKCFlbGVtZW50LT5tX2RlbGV0aW9uSGFzQmVndW4pOworICAg
IEFTU0VSVChpZCAhPSBDU1NQcm9wZXJ0eUludmFsaWQpOwogICAgIAogICAgIGlmICghZWxlbWVu
dC0+ZW5zdXJlQW5pbWF0ZWRTTUlMU3R5bGVQcm9wZXJ0aWVzKCkuc2V0UHJvcGVydHkoaWQsIHZh
bHVlLCBmYWxzZSkpCiAgICAgICAgIHJldHVybjsKQEAgLTcwLDYgKzc3LDcgQEAgdm9pZCBTVkdB
dHRyaWJ1dGVBbmltYXRvcjo6cmVtb3ZlQW5pbWF0ZQogewogICAgIEFTU0VSVChlbGVtZW50KTsK
ICAgICBBU1NFUlQoIWVsZW1lbnQtPm1fZGVsZXRpb25IYXNCZWd1bik7CisgICAgQVNTRVJUKGlk
ICE9IENTU1Byb3BlcnR5SW52YWxpZCk7CiAKICAgICBlbGVtZW50LT5lbnN1cmVBbmltYXRlZFNN
SUxTdHlsZVByb3BlcnRpZXMoKS5yZW1vdmVQcm9wZXJ0eShpZCk7CiAgICAgZWxlbWVudC0+aW52
YWxpZGF0ZVN0eWxlKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdB
dHRyaWJ1dGVBbmltYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9w
ZXJ0aWVzL1NWR0F0dHJpYnV0ZUFuaW1hdG9yLmgJKHJldmlzaW9uIDI0NzAwOSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0F0dHJpYnV0ZUFuaW1hdG9yLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTc2LDYgKzc2LDcgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIGJvb2wgaXNB
bmltYXRlZFN0eWxlUHJvcGVydHlBbmlhbXRvcihjb25zdCBTVkdFbGVtZW50KikgY29uc3Q7CiAK
KyAgICBzdGF0aWMgdm9pZCBpbnZhbGlkYXRlU3R5bGUoU1ZHRWxlbWVudCopOwogICAgIHN0YXRp
YyB2b2lkIGFwcGx5QW5pbWF0ZWRTdHlsZVByb3BlcnR5Q2hhbmdlKFNWR0VsZW1lbnQqLCBDU1NQ
cm9wZXJ0eUlELCBjb25zdCBTdHJpbmcmIHZhbHVlKTsKICAgICBzdGF0aWMgdm9pZCByZW1vdmVB
bmltYXRlZFN0eWxlUHJvcGVydHkoU1ZHRWxlbWVudCosIENTU1Byb3BlcnR5SUQpOwogICAgIHN0
YXRpYyB2b2lkIGFwcGx5QW5pbWF0ZWRQcm9wZXJ0eUNoYW5nZShTVkdFbGVtZW50KiwgY29uc3Qg
UXVhbGlmaWVkTmFtZSYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZH
U2hhcmVkUHJpbWl0aXZlUHJvcGVydHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dmcvcHJvcGVydGllcy9TVkdTaGFyZWRQcmltaXRpdmVQcm9wZXJ0eS5oCShub25leGlzdGVudCkK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1NoYXJlZFByaW1pdGl2ZVByb3Bl
cnR5LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxOSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNW
R1Byb3BlcnR5LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordGVtcGxhdGU8dHlwZW5hbWUg
UHJvcGVydHlUeXBlPgorY2xhc3MgU1ZHU2hhcmVkUHJpbWl0aXZlUHJvcGVydHkgOiBwdWJsaWMg
U1ZHUHJvcGVydHkgeworcHVibGljOgorICAgIHVzaW5nIFZhbHVlVHlwZSA9IFByb3BlcnR5VHlw
ZTsKKworICAgIHN0YXRpYyBSZWY8U1ZHU2hhcmVkUHJpbWl0aXZlUHJvcGVydHk+IGNyZWF0ZShj
b25zdCBQcm9wZXJ0eVR5cGUmIHZhbHVlID0gU1ZHUHJvcGVydHlUcmFpdHM8UHJvcGVydHlUeXBl
Pjo6aW5pdGlhbFZhbHVlKCkpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBT
VkdTaGFyZWRQcmltaXRpdmVQcm9wZXJ0eSh2YWx1ZSkpOworICAgIH0KKworICAgIC8vIEdldHRl
ci9TZXR0ZXIgZm9yIHRoZSB2YWx1ZS4KKyAgICBjb25zdCBQcm9wZXJ0eVR5cGUmIHZhbHVlKCkg
Y29uc3QgeyByZXR1cm4gbV92YWx1ZTsgfQorICAgIFByb3BlcnR5VHlwZSYgdmFsdWUoKSB7IHJl
dHVybiBtX3ZhbHVlOyB9CisgICAgdm9pZCBzZXRWYWx1ZShjb25zdCBQcm9wZXJ0eVR5cGUmIHZh
bHVlKSB7IG1fdmFsdWUgPSB2YWx1ZTsgfQorCisgICAgU3RyaW5nIHZhbHVlQXNTdHJpbmcoKSBj
b25zdCBvdmVycmlkZQorICAgIHsKKyAgICAgICAgcmV0dXJuIFNWR1Byb3BlcnR5VHJhaXRzPFBy
b3BlcnR5VHlwZT46OnRvU3RyaW5nKG1fdmFsdWUpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBT
VkdTaGFyZWRQcmltaXRpdmVQcm9wZXJ0eShjb25zdCBQcm9wZXJ0eVR5cGUmIHZhbHVlKQorICAg
ICAgICA6IG1fdmFsdWUodmFsdWUpCisgICAgeworICAgIH0KKworICAgIFByb3BlcnR5VHlwZSBt
X3ZhbHVlOworfTsKKworfQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjQ3MDA5KQorKysgTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTktMDctMDIg
IFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBB
c3NlcnRpb24gZmlyZXMgd2hlbiBhbmltYXRpbmcgdGhlICdjbGFzcycgYXR0cmlidXRlIG9mIGFu
IFNWRyBlbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTczNzIKKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisKKyAgICAg
ICAgKiBzdmcvYW5pbWF0aW9ucy9hbmltYXRlZC1ib29sLWV4dGVybmFsUmVzb3VyY2VzUmVxdWly
ZWQtaW5zdGFuY2VzLWV4cGVjdGVkLnN2ZzogQWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlv
bnMvYW5pbWF0ZWQtYm9vbC1leHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLWluc3RhbmNlcy5zdmc6
IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL2FuaW1hdGVkLXN0cmluZy1jbGFzcy1p
bnN0YW5jZXMtZXhwZWN0ZWQuc3ZnOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9h
bmltYXRlZC1zdHJpbmctY2xhc3MtaW5zdGFuY2VzLnN2ZzogQWRkZWQuCisgICAgICAgICogc3Zn
L2FuaW1hdGlvbnMvYW5pbWF0ZWQtc3RyaW5nLWhyZWYtZXhwZWN0ZWQuc3ZnOiBBZGRlZC4KKyAg
ICAgICAgKiBzdmcvYW5pbWF0aW9ucy9hbmltYXRlZC1zdHJpbmctaHJlZi5zdmc6IEFkZGVkLgor
CiAyMDE5LTA2LTMwICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNDY5NTkuCkluZGV4OiBMYXlvdXRU
ZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlZC1ib29sLWV4dGVybmFsUmVzb3VyY2VzUmVxdWly
ZWQtaW5zdGFuY2VzLWV4cGVjdGVkLnN2Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcv
YW5pbWF0aW9ucy9hbmltYXRlZC1ib29sLWV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQtaW5zdGFu
Y2VzLWV4cGVjdGVkLnN2Zwkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0
aW9ucy9hbmltYXRlZC1ib29sLWV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQtaW5zdGFuY2VzLWV4
cGVjdGVkLnN2Zwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDMgQEAKKzxzdmcgeG1sbnM9Imh0
dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KKyAgICA8cmVjdCB3aWR0aD0iMTAwIiBoZWlnaHQ9
IjEwMCIgZmlsbD0iZ3JlZW4iLz4KKzwvc3ZnPgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvYW5pbWF0ZWQtYm9vbC1leHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLWluc3RhbmNlcy5z
dmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZWQtYm9v
bC1leHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLWluc3RhbmNlcy5zdmcJKG5vbmV4aXN0ZW50KQor
KysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZWQtYm9vbC1leHRlcm5hbFJlc291
cmNlc1JlcXVpcmVkLWluc3RhbmNlcy5zdmcJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw5IEBA
Cis8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CisgICAgPGRlc2M+VGVz
dCB0aGF0IHRoZSBpbnN0YW5jZSBvZiB0aGUgJ2V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQnIGF0
dHJpYnV0ZSBpcyBhbmltYXRlZCBjb3JyZWN0bHkuPC9kZXNjPgorICAgIDxkZWY+CisgICAgICAg
IDxyZWN0IGlkPSJyZWN0IiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgZmlsbD0iZ3JlZW4iPgor
ICAgICAgICAgICAgPHNldCBhdHRyaWJ1dGVOYW1lPSJleHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
IiB0bz0idHJ1ZSIvPgorICAgICAgICA8L3JlY3Q+CisgICAgPC9kZWY+CisgICAgPHVzZSBocmVm
PSIjcmVjdCIvPgorPC9zdmc+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmlt
YXRlZC1zdHJpbmctY2xhc3MtaW5zdGFuY2VzLWV4cGVjdGVkLnN2Zwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlZC1zdHJpbmctY2xhc3MtaW5zdGFuY2Vz
LWV4cGVjdGVkLnN2Zwkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9u
cy9hbmltYXRlZC1zdHJpbmctY2xhc3MtaW5zdGFuY2VzLWV4cGVjdGVkLnN2Zwkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDMgQEAKKzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAv
c3ZnIj4KKyAgICA8cmVjdCB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgZmlsbD0iZ3JlZW4iLz4K
Kzwvc3ZnPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL3N2
Zy9hbmltYXRpb25zL2FuaW1hdGVkLXN0cmluZy1jbGFzcy1pbnN0YW5jZXMuc3ZnCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGVkLXN0cmluZy1jbGFzcy1p
bnN0YW5jZXMuc3ZnCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25z
L2FuaW1hdGVkLXN0cmluZy1jbGFzcy1pbnN0YW5jZXMuc3ZnCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMTcgQEAKKzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KKyAg
ICA8ZGVzYz5UZXN0IHRoYXQgdGhlIGluc3RhbmNlIG9mIHRoZSAnY2xhc3MnIGF0dHJpYnV0ZSBp
cyBhbmltYXRlZCBhbmQgaXRzIHJlbmRlcmVyIGlzIGludmFsaWRhdGVkIGNvcnJlY3RseS48L2Rl
c2M+CisgICAgPHN0eWxlPgorICAgICAgICAucmVkLWZpbGwgeworICAgICAgICAgICAgZmlsbDog
cmVkOworICAgICAgICB9CisgICAgICAgIC5ncmVlbi1maWxsIHsKKyAgICAgICAgICAgIGZpbGw6
IGdyZWVuOworICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8ZGVmPgorICAgICAgICA8cmVj
dCBpZD0icmVjdCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGNsYXNzPSJyZWQtZmlsbCI+Cisg
ICAgICAgICAgICA8c2V0IGlkPSJncmVlbiIgYXR0cmlidXRlTmFtZT0iY2xhc3MiIHRvPSJncmVl
bi1maWxsIiBmaWxsPSJmcmVlemUiLz4KKyAgICAgICAgPC9yZWN0PgorICAgIDwvZGVmPgorICAg
IDx1c2UgaHJlZj0iI3JlY3QiLz4KKzwvc3ZnPgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvYW5pbWF0ZWQtc3RyaW5nLWhyZWYtZXhwZWN0ZWQuc3ZnCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGVkLXN0cmluZy1ocmVmLWV4cGVjdGVkLnN2
Zwkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlZC1z
dHJpbmctaHJlZi1leHBlY3RlZC5zdmcJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzIEBACis8
c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CisgICAgPHJlY3Qgd2lkdGg9
IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9ImdyZWVuIi8+Cis8L3N2Zz4KSW5kZXg6IExheW91dFRl
c3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGVkLXN0cmluZy1ocmVmLnN2Zwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlZC1zdHJpbmctaHJlZi5zdmcJKG5v
bmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZWQtc3RyaW5n
LWhyZWYuc3ZnCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTcgQEAKKzxzdmcgeG1sbnM9Imh0
dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KKyAgICA8ZGVzYz5UZXN0IHRoYXQgdGhlICdocmVm
JyBhdHRyaWJ1dGUgaXMgYW5pbWF0ZWQgY29ycmVjdGx5LjwvZGVzYz4KKyAgICA8ZGVmcz4KKyAg
ICAgICAgPGxpbmVhckdyYWRpZW50IGlkPSJyZWQtZmlsbCI+CisgICAgICAgICAgICA8c3RvcCBv
ZmZzZXQ9IjAlIiAgc3RvcC1jb2xvcj0icmVkIiAvPgorICAgICAgICAgICAgPHN0b3Agb2Zmc2V0
PSIxMDAlIiBzdG9wLWNvbG9yPSJyZWQiIC8+CisgICAgICAgIDwvbGluZWFyR3JhZGllbnQ+Cisg
ICAgICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iZ3JlZW4tZmlsbCI+CisgICAgICAgICAgICA8c3Rv
cCBvZmZzZXQ9IjAlIiAgc3RvcC1jb2xvcj0iZ3JlZW4iIC8+CisgICAgICAgICAgICA8c3RvcCBv
ZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9ImdyZWVuIiAvPgorICAgICAgICA8L2xpbmVhckdyYWRp
ZW50PgorICAgICAgICA8bGluZWFyR3JhZGllbnQgaWQ9ImdyYWRpZW50IiBocmVmPSIjcmVkLWZp
bGwiPgorICAgICAgICAgICAgPHNldCBhdHRyaWJ1dGVOYW1lPSJocmVmIiB0bz0iI2dyZWVuLWZp
bGwiIGZpbGw9ImZyZWV6ZSIvPgorICAgICAgICA8L2xpbmVhckdyYWRpZW50PgorICAgIDwvZGVm
cz4KKyAgICA8cmVjdCBpZD0icmVjdCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9InVy
bCgnI2dyYWRpZW50JykiLz4KKzwvc3ZnPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
      

    </bug>

</bugzilla>