<?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>208283</bug_id>
          
          <creation_ts>2020-02-26 18:54:58 -0800</creation_ts>
          <short_desc>Web Inspector: AXI: disabled buttons shouldn&apos;t be focusable</short_desc>
          <delta_ts>2020-03-19 20:43:53 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikita Vasilyev">nvasilyev</reporter>
          <assigned_to name="Nikita Vasilyev">nvasilyev</assigned_to>
          <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1623337</commentid>
    <comment_count>0</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2020-02-26 18:54:58 -0800</bug_when>
    <thetext>When pressing Tab/Shift-Tab, it shouldn&apos;t focus on disabled buttons.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623338</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-02-26 18:55:15 -0800</bug_when>
    <thetext>&lt;rdar://problem/59832150&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623340</commentid>
    <comment_count>2</comment_count>
      <attachid>391831</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2020-02-26 18:57:39 -0800</bug_when>
    <thetext>Created attachment 391831
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623364</commentid>
    <comment_count>3</comment_count>
      <attachid>391831</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-02-26 21:03:57 -0800</bug_when>
    <thetext>Comment on attachment 391831
Patch

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

&gt; Source/WebInspectorUI/UserInterface/Views/ButtonNavigationItem.js:44
&gt; +        if (this._role === &quot;button&quot;)

Do we ever actually pass in anything that isn&apos;t `&quot;button&quot;`?  I see this type of logic all over the place with navigation related things and I don&apos;t remember it ever actually being used anywhere.  Perhaps we can just remove the `role` parameter entirely and always use `&quot;button&quot;`?

&gt; Source/WebInspectorUI/UserInterface/Views/ButtonNavigationItem.js:208
&gt; +        if (this._role === &quot;button&quot;)

Shouldn&apos;t we `this.element.removeAttribute(&quot;tabindex&quot;)` in the `else`?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623383</commentid>
    <comment_count>4</comment_count>
      <attachid>391831</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2020-02-27 00:03:29 -0800</bug_when>
    <thetext>Comment on attachment 391831
Patch

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/ButtonNavigationItem.js:44
&gt;&gt; +        if (this._role === &quot;button&quot;)
&gt; 
&gt; Do we ever actually pass in anything that isn&apos;t `&quot;button&quot;`?  I see this type of logic all over the place with navigation related things and I don&apos;t remember it ever actually being used anywhere.  Perhaps we can just remove the `role` parameter entirely and always use `&quot;button&quot;`?

WI.RadioButtonNavigationItem passes &quot;tab&quot;.
(Perhaps WI.RadioButtonNavigationItem should be renamed to something like WI.TabButtonNavigationItem. This is out of the scope of this bug.)

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/ButtonNavigationItem.js:208
&gt;&gt; +        if (this._role === &quot;button&quot;)
&gt; 
&gt; Shouldn&apos;t we `this.element.removeAttribute(&quot;tabindex&quot;)` in the `else`?

It wouldn&apos;t make a difference. It would only run for WI.RadioButtonNavigationItem during the class instantiation, and RadioButtonNavigationItem doesn&apos;t have any tabIndex set at that time.
RadioButtonNavigationItem is never disabled so _updateTabIndex would never get called from there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623385</commentid>
    <comment_count>5</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2020-02-27 00:09:41 -0800</bug_when>
    <thetext>I don&apos;t want to do this in this patch, but perhaps it&apos;s worth refactoring RadioButtonNavigationItem.

Currently, RadioButtonNavigationItem extends ButtonNavigationItem, which extends NavigationItem.
Perhaps it would be less confusing if RadioButtonNavigationItem extended NavigationItem directly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626382</commentid>
    <comment_count>6</comment_count>
      <attachid>391831</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-03-05 16:24:40 -0800</bug_when>
    <thetext>Comment on attachment 391831
Patch

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

&gt;&gt;&gt; Source/WebInspectorUI/UserInterface/Views/ButtonNavigationItem.js:208
&gt;&gt;&gt; +        if (this._role === &quot;button&quot;)
&gt;&gt; 
&gt;&gt; Shouldn&apos;t we `this.element.removeAttribute(&quot;tabindex&quot;)` in the `else`?
&gt; 
&gt; It wouldn&apos;t make a difference. It would only run for WI.RadioButtonNavigationItem during the class instantiation, and RadioButtonNavigationItem doesn&apos;t have any tabIndex set at that time.
&gt; RadioButtonNavigationItem is never disabled so _updateTabIndex would never get called from there.

What about if an instance of `WI.RadioButtonNavigationItem` called `.enabled = false;` and then `.enabled = true`?  It would get called then, and the `tabIndex` wouldn&apos;t be reset.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627104</commentid>
    <comment_count>7</comment_count>
      <attachid>392838</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2020-03-06 19:11:31 -0800</bug_when>
    <thetext>Created attachment 392838
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627126</commentid>
    <comment_count>8</comment_count>
      <attachid>392838</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-03-06 20:22:46 -0800</bug_when>
    <thetext>Comment on attachment 392838
Patch

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

&gt; Source/WebInspectorUI/UserInterface/Views/ButtonNavigationItem.js:164
&gt; +        if (this._role === &quot;button&quot;)
&gt; +            this.element.tabIndex = 0;
&gt; +        else
&gt; +            this.element.tabIndex = -1;

Why not just inline this `this.element.tabIndex = (this._role === &quot;button&quot;) ? 0 : -1;`?

&gt; Source/WebInspectorUI/UserInterface/Views/RadioButtonNavigationItem.js:72
&gt; +        if (!this._enabled) {

Style: in subclasses, we shouldn&apos;t use the private variables of superclasses, so please use `this.enabled`

&gt; Source/WebInspectorUI/UserInterface/Views/RadioButtonNavigationItem.js:80
&gt; +        if (this.selected)
&gt; +            this.element.tabIndex = 0;
&gt; +        else
&gt; +            this.element.tabIndex = -1;

Why not just have this as part of the `if` in `super.updateTabIndex`?  All basic `WI.ButtonNavigationItem` will already pass `this._role === &quot;button&quot;`, and everyone else should only be tabbabale if they&apos;re selected.

At the very least, this deserves an explanation (or at least a warning) that you&apos;re not calling `super.updateTabIndex`.  I&apos;d really prefer it if you changed it so that it doesn&apos;t completely override `super.updateTabIndex`, as that can make it harder to adjust things in the future as someone reading the base class won&apos;t necessarily know about the fact that this was overriding it and would therefore not be affected by any of the aforementioned changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627133</commentid>
    <comment_count>9</comment_count>
      <attachid>392838</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2020-03-06 20:43:12 -0800</bug_when>
    <thetext>Comment on attachment 392838
Patch

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/RadioButtonNavigationItem.js:72
&gt;&gt; +        if (!this._enabled) {
&gt; 
&gt; Style: in subclasses, we shouldn&apos;t use the private variables of superclasses, so please use `this.enabled`

Right, thanks.

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/RadioButtonNavigationItem.js:80
&gt;&gt; +            this.element.tabIndex = -1;
&gt; 
&gt; Why not just have this as part of the `if` in `super.updateTabIndex`?  All basic `WI.ButtonNavigationItem` will already pass `this._role === &quot;button&quot;`, and everyone else should only be tabbabale if they&apos;re selected.
&gt; 
&gt; At the very least, this deserves an explanation (or at least a warning) that you&apos;re not calling `super.updateTabIndex`.  I&apos;d really prefer it if you changed it so that it doesn&apos;t completely override `super.updateTabIndex`, as that can make it harder to adjust things in the future as someone reading the base class won&apos;t necessarily know about the fact that this was overriding it and would therefore not be affected by any of the aforementioned changes.

Only selected radio button should be tabbable.

I can call super.updateTabIndex for consistency. It would make no difference here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627141</commentid>
    <comment_count>10</comment_count>
      <attachid>392847</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2020-03-06 20:54:14 -0800</bug_when>
    <thetext>Created attachment 392847
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1628717</commentid>
    <comment_count>11</comment_count>
      <attachid>392847</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-03-11 10:25:45 -0700</bug_when>
    <thetext>Comment on attachment 392847
Patch

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

r=me

&gt; Source/WebInspectorUI/UserInterface/Views/RadioButtonNavigationItem.js:74
&gt; +        if (!this.enabled) {

It&apos;d be nice to avoid doing this check twice.  Right now, we also could potentially end up setting the `tabIndex` twice in this function, which is also unfortunate.  Perhaps we could create a protected `get tabbable` that _can_ be overridden by subclasses.

ButtonNavigationItem.js
```
    updateTabIndex()
    {
        if (!this._enabled) {
            this.element.tabIndex = -1;
            return;
        }

        this.element.tabIndex = this.tabbable ? 0 : -1;
    }

    get tabbable()
    {
        // Can be overridden by subclasses.
        return this._role === &quot;button&quot;;
    }
```

RadioButtonNavigationItem.js
```
    get tabbable()
    {
        return this.selected;
    }
```

I guess if you do end up removing `WI.ButtonNavigationItem` as a superclass of `WI.RadioButtonNavigationItem`, then this would kinda have to be needed tho.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1631796</commentid>
    <comment_count>12</comment_count>
      <attachid>392847</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2020-03-19 13:34:35 -0700</bug_when>
    <thetext>Comment on attachment 392847
Patch

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/RadioButtonNavigationItem.js:74
&gt;&gt; +        if (!this.enabled) {
&gt; 
&gt; It&apos;d be nice to avoid doing this check twice.  Right now, we also could potentially end up setting the `tabIndex` twice in this function, which is also unfortunate.  Perhaps we could create a protected `get tabbable` that _can_ be overridden by subclasses.
&gt; 
&gt; ButtonNavigationItem.js
&gt; ```
&gt;     updateTabIndex()
&gt;     {
&gt;         if (!this._enabled) {
&gt;             this.element.tabIndex = -1;
&gt;             return;
&gt;         }
&gt; 
&gt;         this.element.tabIndex = this.tabbable ? 0 : -1;
&gt;     }
&gt; 
&gt;     get tabbable()
&gt;     {
&gt;         // Can be overridden by subclasses.
&gt;         return this._role === &quot;button&quot;;
&gt;     }
&gt; ```
&gt; 
&gt; RadioButtonNavigationItem.js
&gt; ```
&gt;     get tabbable()
&gt;     {
&gt;         return this.selected;
&gt;     }
&gt; ```
&gt; 
&gt; I guess if you do end up removing `WI.ButtonNavigationItem` as a superclass of `WI.RadioButtonNavigationItem`, then this would kinda have to be needed tho.

I like the `tabbable` getter!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1631797</commentid>
    <comment_count>13</comment_count>
      <attachid>394014</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2020-03-19 13:35:04 -0700</bug_when>
    <thetext>Created attachment 394014
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1631837</commentid>
    <comment_count>14</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-03-19 14:41:38 -0700</bug_when>
    <thetext>Committed r258730: &lt;https://trac.webkit.org/changeset/258730&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 394014.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1631986</commentid>
    <comment_count>15</comment_count>
      <attachid>394014</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-03-19 20:43:53 -0700</bug_when>
    <thetext>Comment on attachment 394014
Patch

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

&gt; Source/WebInspectorUI/UserInterface/Views/ButtonNavigationItem.js:179
&gt; +        return this._role === &quot;button&quot;;

NIT: this probably could&apos;ve had a `// Can be overridden by subclasses.` comment :P</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391831</attachid>
            <date>2020-02-26 18:57:39 -0800</date>
            <delta_ts>2020-03-06 19:11:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>3746</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDY0NzViNjM5OTdlLi41NzFkZGZmNzYzMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjAtMDItMjYgIE5pa2l0
YSBWYXNpbHlldiAgPG52YXNpbHlldkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogQVhJOiBkaXNhYmxlZCBidXR0b25zIHNob3VsZG4ndCBiZSBmb2N1c2FibGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODI4MworICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNTk4MzIxNTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgU2V0IHRhYkluZGV4IHRvICItMSIgd2hlbiBidXR0b24gYmVjb21l
cyBkaXNhYmxlZC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQWN0aXZhdGVCdXR0
b25OYXZpZ2F0aW9uSXRlbS5qczoKKyAgICAgICAgYF9yb2xlYCBpcyBkZWZpbmVkIGluIHRoZSBw
YXJlbnQgY2xhc3Mgbm93LgorCisgICAgICAgIChXSS5BY3RpdmF0ZUJ1dHRvbk5hdmlnYXRpb25J
dGVtKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0J1dHRvbk5hdmlnYXRpb25JdGVt
LmpzOgorICAgICAgICAoV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0pOgorICAgICAgICAoV0kuQnV0
dG9uTmF2aWdhdGlvbkl0ZW0ucHJvdG90eXBlLnNldCBlbmFibGVkKToKKyAgICAgICAgKFdJLkJ1
dHRvbk5hdmlnYXRpb25JdGVtLnByb3RvdHlwZS5fdXBkYXRlVGFiSW5kZXgpOgorCiAyMDIwLTAy
LTI2ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNT
SU9OOiAoMjU3NDEwKSBbIG1hY09TIF0gaW5zcGVjdG9yL25ldHdvcmsvY2xpZW50LWJsb2NrZWQt
bG9hZC5odG1sIGlzIGZhaWxpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0FjdGl2YXRlQnV0dG9uTmF2aWdhdGlvbkl0ZW0uanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BY3RpdmF0ZUJ1dHRvbk5hdmln
YXRpb25JdGVtLmpzCmluZGV4IDBhZWFhZDRjYjNmLi4wZTkwODZlNjVkMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQWN0aXZhdGVCdXR0b25O
YXZpZ2F0aW9uSXRlbS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9BY3RpdmF0ZUJ1dHRvbk5hdmlnYXRpb25JdGVtLmpzCkBAIC0zMSw3ICszMSw2IEBA
IFdJLkFjdGl2YXRlQnV0dG9uTmF2aWdhdGlvbkl0ZW0gPSBjbGFzcyBBY3RpdmF0ZUJ1dHRvbk5h
dmlnYXRpb25JdGVtIGV4dGVuZHMgV0kuCiAKICAgICAgICAgdGhpcy5fZGVmYXVsdFRvb2xUaXAg
PSBkZWZhdWx0VG9vbFRpcDsKICAgICAgICAgdGhpcy5fYWN0aXZhdGVkVG9vbFRpcCA9IGFjdGl2
YXRlZFRvb2xUaXAgfHwgZGVmYXVsdFRvb2xUaXA7Ci0gICAgICAgIHRoaXMuX3JvbGUgPSByb2xl
OwogICAgIH0KIAogICAgIC8vIFB1YmxpYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQnV0dG9uTmF2aWdhdGlvbkl0ZW0uanMgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9CdXR0b25OYXZpZ2F0aW9uSXRlbS5q
cwppbmRleCA4MTYxMGRkZTE5OS4uZDQ1OWM0YzNlNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0J1dHRvbk5hdmlnYXRpb25JdGVtLmpzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0J1dHRvbk5hdmln
YXRpb25JdGVtLmpzCkBAIC00MCwxMCArNDAsOSBAQCBXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbSA9
IGNsYXNzIEJ1dHRvbk5hdmlnYXRpb25JdGVtIGV4dGVuZHMgV0kuTmF2aWdhdGlvbkl0ZW0KICAg
ICAgICAgLy8gRG9uJ3QgbW92ZSB0aGUgZm9jdXMgb24gdGhlIGJ1dHRvbiB3aGVuIGNsaWNraW5n
IG9uIGl0LiBUaGlzIG1hdGNoZXMgbWFjT1MgYmVoYXZpb3IuCiAgICAgICAgIHRoaXMuZWxlbWVu
dC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLCB0aGlzLl9oYW5kbGVNb3VzZURvd24uYmlu
ZCh0aGlzKSwgdHJ1ZSk7CiAKLSAgICAgICAgaWYgKHJvbGUgPT09ICJidXR0b24iKSB7Ci0gICAg
ICAgICAgICB0aGlzLmVsZW1lbnQudGFiSW5kZXggPSAwOworICAgICAgICB0aGlzLl9yb2xlID0g
cm9sZTsKKyAgICAgICAgaWYgKHRoaXMuX3JvbGUgPT09ICJidXR0b24iKQogICAgICAgICAgICAg
dGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLCB0aGlzLl9oYW5kbGVLZXlE
b3duLmJpbmQodGhpcykpOwotICAgICAgICB9CiAKICAgICAgICAgaWYgKGxhYmVsKQogICAgICAg
ICAgICAgdGhpcy5lbGVtZW50LnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsIGxhYmVsKTsKQEAg
LTU1LDYgKzU0LDggQEAgV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0gPSBjbGFzcyBCdXR0b25OYXZp
Z2F0aW9uSXRlbSBleHRlbmRzIFdJLk5hdmlnYXRpb25JdGVtCiAgICAgICAgIHRoaXMuX2ltYWdl
SGVpZ2h0ID0gaW1hZ2VIZWlnaHQgfHwgMTY7CiAgICAgICAgIHRoaXMuX2xhYmVsID0gdG9vbFRp
cE9yTGFiZWw7CiAKKyAgICAgICAgdGhpcy5fdXBkYXRlVGFiSW5kZXgoKTsKKwogICAgICAgICB0
aGlzLmJ1dHRvblN0eWxlID0gdGhpcy5faW1hZ2UgPyBXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5T
dHlsZS5JbWFnZSA6IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLlN0eWxlLlRleHQ7CiAKICAgICAg
ICAgaWYgKHRoaXMuYnV0dG9uU3R5bGUgPT09IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLlN0eWxl
LkltYWdlKQpAQCAtMTA5LDYgKzExMCw5IEBAIFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtID0gY2xh
c3MgQnV0dG9uTmF2aWdhdGlvbkl0ZW0gZXh0ZW5kcyBXSS5OYXZpZ2F0aW9uSXRlbQogCiAgICAg
ICAgIHRoaXMuX2VuYWJsZWQgPSBmbGFnOwogICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0
LnRvZ2dsZSgiZGlzYWJsZWQiLCAhdGhpcy5fZW5hYmxlZCk7CisgICAgICAgIHRoaXMuZWxlbWVu
dC5hcmlhRGlzYWJsZWQgPSAhdGhpcy5fZW5hYmxlZDsKKworICAgICAgICB0aGlzLl91cGRhdGVU
YWJJbmRleCgpOwogICAgIH0KIAogICAgIGdldCBidXR0b25TdHlsZSgpCkBAIC0xOTMsNiArMTk3
LDE3IEBAIFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtID0gY2xhc3MgQnV0dG9uTmF2aWdhdGlvbkl0
ZW0gZXh0ZW5kcyBXSS5OYXZpZ2F0aW9uSXRlbQogICAgICAgICAgICAgfQogICAgICAgICB9CiAg
ICAgfQorCisgICAgX3VwZGF0ZVRhYkluZGV4KCkKKyAgICB7CisgICAgICAgIGlmICghdGhpcy5f
ZW5hYmxlZCkgeworICAgICAgICAgICAgdGhpcy5lbGVtZW50LnRhYkluZGV4ID0gLTE7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAodGhpcy5fcm9sZSA9PT0g
ImJ1dHRvbiIpCisgICAgICAgICAgICB0aGlzLmVsZW1lbnQudGFiSW5kZXggPSAwOworICAgIH0K
IH07CiAKIFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLkV2ZW50ID0gewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392838</attachid>
            <date>2020-03-06 19:11:31 -0800</date>
            <delta_ts>2020-03-06 20:54:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>4801</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDY0NzViNjM5OTdlLi41YTM5N2FkYzVkYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjAtMDMtMDYgIE5pa2l0
YSBWYXNpbHlldiAgPG52YXNpbHlldkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogQVhJOiBkaXNhYmxlZCBidXR0b25zIHNob3VsZG4ndCBiZSBmb2N1c2FibGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODI4MworICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNTk4MzIxNTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgU2V0IHRhYkluZGV4IHRvICItMSIgd2hlbiBidXR0b24gYmVjb21l
cyBkaXNhYmxlZC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQWN0aXZhdGVCdXR0
b25OYXZpZ2F0aW9uSXRlbS5qczoKKyAgICAgICAgKFdJLkFjdGl2YXRlQnV0dG9uTmF2aWdhdGlv
bkl0ZW0pOgorICAgICAgICBgX3JvbGVgIGlzIGRlZmluZWQgaW4gdGhlIHBhcmVudCBjbGFzcyBu
b3cuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0J1dHRvbk5hdmlnYXRpb25JdGVt
LmpzOgorICAgICAgICAoV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0pOgorICAgICAgICAoV0kuQnV0
dG9uTmF2aWdhdGlvbkl0ZW0ucHJvdG90eXBlLnNldCBlbmFibGVkKToKKyAgICAgICAgKFdJLkJ1
dHRvbk5hdmlnYXRpb25JdGVtLnByb3RvdHlwZS51cGRhdGVUYWJJbmRleCk6CisgICAgICAgICog
VXNlckludGVyZmFjZS9WaWV3cy9SYWRpb0J1dHRvbk5hdmlnYXRpb25JdGVtLmpzOgorICAgICAg
ICAoV0kuUmFkaW9CdXR0b25OYXZpZ2F0aW9uSXRlbS5wcm90b3R5cGUudXBkYXRlVGFiSW5kZXgp
OgorICAgICAgICAoV0kuUmFkaW9CdXR0b25OYXZpZ2F0aW9uSXRlbSk6CisKIDIwMjAtMDItMjYg
IERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT046
ICgyNTc0MTApIFsgbWFjT1MgXSBpbnNwZWN0b3IvbmV0d29yay9jbGllbnQtYmxvY2tlZC1sb2Fk
Lmh0bWwgaXMgZmFpbGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvQWN0aXZhdGVCdXR0b25OYXZpZ2F0aW9uSXRlbS5qcyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FjdGl2YXRlQnV0dG9uTmF2aWdhdGlv
bkl0ZW0uanMKaW5kZXggMGFlYWFkNGNiM2YuLjBlOTA4NmU2NWQzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BY3RpdmF0ZUJ1dHRvbk5hdmln
YXRpb25JdGVtLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0FjdGl2YXRlQnV0dG9uTmF2aWdhdGlvbkl0ZW0uanMKQEAgLTMxLDcgKzMxLDYgQEAgV0ku
QWN0aXZhdGVCdXR0b25OYXZpZ2F0aW9uSXRlbSA9IGNsYXNzIEFjdGl2YXRlQnV0dG9uTmF2aWdh
dGlvbkl0ZW0gZXh0ZW5kcyBXSS4KIAogICAgICAgICB0aGlzLl9kZWZhdWx0VG9vbFRpcCA9IGRl
ZmF1bHRUb29sVGlwOwogICAgICAgICB0aGlzLl9hY3RpdmF0ZWRUb29sVGlwID0gYWN0aXZhdGVk
VG9vbFRpcCB8fCBkZWZhdWx0VG9vbFRpcDsKLSAgICAgICAgdGhpcy5fcm9sZSA9IHJvbGU7CiAg
ICAgfQogCiAgICAgLy8gUHVibGljCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9CdXR0b25OYXZpZ2F0aW9uSXRlbS5qcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0J1dHRvbk5hdmlnYXRpb25JdGVtLmpzCmlu
ZGV4IDgxNjEwZGRlMTk5Li5lYjNkNGVlOWFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQnV0dG9uTmF2aWdhdGlvbkl0ZW0uanMKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQnV0dG9uTmF2aWdhdGlv
bkl0ZW0uanMKQEAgLTQwLDEwICs0MCw5IEBAIFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtID0gY2xh
c3MgQnV0dG9uTmF2aWdhdGlvbkl0ZW0gZXh0ZW5kcyBXSS5OYXZpZ2F0aW9uSXRlbQogICAgICAg
ICAvLyBEb24ndCBtb3ZlIHRoZSBmb2N1cyBvbiB0aGUgYnV0dG9uIHdoZW4gY2xpY2tpbmcgb24g
aXQuIFRoaXMgbWF0Y2hlcyBtYWNPUyBiZWhhdmlvci4KICAgICAgICAgdGhpcy5lbGVtZW50LmFk
ZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsIHRoaXMuX2hhbmRsZU1vdXNlRG93bi5iaW5kKHRo
aXMpLCB0cnVlKTsKIAotICAgICAgICBpZiAocm9sZSA9PT0gImJ1dHRvbiIpIHsKLSAgICAgICAg
ICAgIHRoaXMuZWxlbWVudC50YWJJbmRleCA9IDA7CisgICAgICAgIHRoaXMuX3JvbGUgPSByb2xl
OworICAgICAgICBpZiAodGhpcy5fcm9sZSA9PT0gImJ1dHRvbiIpCiAgICAgICAgICAgICB0aGlz
LmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsIHRoaXMuX2hhbmRsZUtleURvd24u
YmluZCh0aGlzKSk7Ci0gICAgICAgIH0KIAogICAgICAgICBpZiAobGFiZWwpCiAgICAgICAgICAg
ICB0aGlzLmVsZW1lbnQuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIiwgbGFiZWwpOwpAQCAtNTUs
NiArNTQsOCBAQCBXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbSA9IGNsYXNzIEJ1dHRvbk5hdmlnYXRp
b25JdGVtIGV4dGVuZHMgV0kuTmF2aWdhdGlvbkl0ZW0KICAgICAgICAgdGhpcy5faW1hZ2VIZWln
aHQgPSBpbWFnZUhlaWdodCB8fCAxNjsKICAgICAgICAgdGhpcy5fbGFiZWwgPSB0b29sVGlwT3JM
YWJlbDsKIAorICAgICAgICB0aGlzLnVwZGF0ZVRhYkluZGV4KCk7CisKICAgICAgICAgdGhpcy5i
dXR0b25TdHlsZSA9IHRoaXMuX2ltYWdlID8gV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uU3R5bGUu
SW1hZ2UgOiBXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5TdHlsZS5UZXh0OwogCiAgICAgICAgIGlm
ICh0aGlzLmJ1dHRvblN0eWxlID09PSBXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5TdHlsZS5JbWFn
ZSkKQEAgLTEwOSw2ICsxMTAsOSBAQCBXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbSA9IGNsYXNzIEJ1
dHRvbk5hdmlnYXRpb25JdGVtIGV4dGVuZHMgV0kuTmF2aWdhdGlvbkl0ZW0KIAogICAgICAgICB0
aGlzLl9lbmFibGVkID0gZmxhZzsKICAgICAgICAgdGhpcy5lbGVtZW50LmNsYXNzTGlzdC50b2dn
bGUoImRpc2FibGVkIiwgIXRoaXMuX2VuYWJsZWQpOworICAgICAgICB0aGlzLmVsZW1lbnQuYXJp
YURpc2FibGVkID0gIXRoaXMuX2VuYWJsZWQ7CisKKyAgICAgICAgdGhpcy51cGRhdGVUYWJJbmRl
eCgpOwogICAgIH0KIAogICAgIGdldCBidXR0b25TdHlsZSgpCkBAIC0xNDcsNiArMTUxLDE5IEBA
IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtID0gY2xhc3MgQnV0dG9uTmF2aWdhdGlvbkl0ZW0gZXh0
ZW5kcyBXSS5OYXZpZ2F0aW9uSXRlbQogICAgICAgICByZXR1cm4gWyJidXR0b24iXTsKICAgICB9
CiAKKyAgICB1cGRhdGVUYWJJbmRleCgpCisgICAgeworICAgICAgICBpZiAoIXRoaXMuX2VuYWJs
ZWQpIHsKKyAgICAgICAgICAgIHRoaXMuZWxlbWVudC50YWJJbmRleCA9IC0xOworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHRoaXMuX3JvbGUgPT09ICJidXR0
b24iKQorICAgICAgICAgICAgdGhpcy5lbGVtZW50LnRhYkluZGV4ID0gMDsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgdGhpcy5lbGVtZW50LnRhYkluZGV4ID0gLTE7CisgICAgfQorCiAgICAg
Ly8gUHJpdmF0ZQogCiAgICAgX21vdXNlQ2xpY2tlZChldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1JhZGlvQnV0dG9uTmF2aWdhdGlv
bkl0ZW0uanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SYWRp
b0J1dHRvbk5hdmlnYXRpb25JdGVtLmpzCmluZGV4IGVmY2E1ZjgxNWZlLi5iZWU4OGZjOTc1NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmFk
aW9CdXR0b25OYXZpZ2F0aW9uSXRlbS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9SYWRpb0J1dHRvbk5hdmlnYXRpb25JdGVtLmpzCkBAIC02Niw2ICs2
NiwxOSBAQCBXSS5SYWRpb0J1dHRvbk5hdmlnYXRpb25JdGVtID0gY2xhc3MgUmFkaW9CdXR0b25O
YXZpZ2F0aW9uSXRlbSBleHRlbmRzIFdJLkJ1dHRvbgogICAgIHsKICAgICAgICAgcmV0dXJuIFsi
cmFkaW8iLCAiYnV0dG9uIl07CiAgICAgfQorCisgICAgdXBkYXRlVGFiSW5kZXgoKQorICAgIHsK
KyAgICAgICAgaWYgKCF0aGlzLl9lbmFibGVkKSB7CisgICAgICAgICAgICB0aGlzLmVsZW1lbnQu
dGFiSW5kZXggPSAtMTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAg
IGlmICh0aGlzLnNlbGVjdGVkKQorICAgICAgICAgICAgdGhpcy5lbGVtZW50LnRhYkluZGV4ID0g
MDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5lbGVtZW50LnRhYkluZGV4ID0gLTE7
CisgICAgfQogfTsKIAogV0kuUmFkaW9CdXR0b25OYXZpZ2F0aW9uSXRlbS5TdHlsZUNsYXNzTmFt
ZSA9ICJyYWRpbyI7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392847</attachid>
            <date>2020-03-06 20:54:14 -0800</date>
            <delta_ts>2020-03-19 13:35:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>4707</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDY0NzViNjM5OTdlLi41YTM5N2FkYzVkYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjAtMDMtMDYgIE5pa2l0
YSBWYXNpbHlldiAgPG52YXNpbHlldkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogQVhJOiBkaXNhYmxlZCBidXR0b25zIHNob3VsZG4ndCBiZSBmb2N1c2FibGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODI4MworICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNTk4MzIxNTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgU2V0IHRhYkluZGV4IHRvICItMSIgd2hlbiBidXR0b24gYmVjb21l
cyBkaXNhYmxlZC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQWN0aXZhdGVCdXR0
b25OYXZpZ2F0aW9uSXRlbS5qczoKKyAgICAgICAgKFdJLkFjdGl2YXRlQnV0dG9uTmF2aWdhdGlv
bkl0ZW0pOgorICAgICAgICBgX3JvbGVgIGlzIGRlZmluZWQgaW4gdGhlIHBhcmVudCBjbGFzcyBu
b3cuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0J1dHRvbk5hdmlnYXRpb25JdGVt
LmpzOgorICAgICAgICAoV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0pOgorICAgICAgICAoV0kuQnV0
dG9uTmF2aWdhdGlvbkl0ZW0ucHJvdG90eXBlLnNldCBlbmFibGVkKToKKyAgICAgICAgKFdJLkJ1
dHRvbk5hdmlnYXRpb25JdGVtLnByb3RvdHlwZS51cGRhdGVUYWJJbmRleCk6CisgICAgICAgICog
VXNlckludGVyZmFjZS9WaWV3cy9SYWRpb0J1dHRvbk5hdmlnYXRpb25JdGVtLmpzOgorICAgICAg
ICAoV0kuUmFkaW9CdXR0b25OYXZpZ2F0aW9uSXRlbS5wcm90b3R5cGUudXBkYXRlVGFiSW5kZXgp
OgorICAgICAgICAoV0kuUmFkaW9CdXR0b25OYXZpZ2F0aW9uSXRlbSk6CisKIDIwMjAtMDItMjYg
IERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT046
ICgyNTc0MTApIFsgbWFjT1MgXSBpbnNwZWN0b3IvbmV0d29yay9jbGllbnQtYmxvY2tlZC1sb2Fk
Lmh0bWwgaXMgZmFpbGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvQWN0aXZhdGVCdXR0b25OYXZpZ2F0aW9uSXRlbS5qcyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FjdGl2YXRlQnV0dG9uTmF2aWdhdGlv
bkl0ZW0uanMKaW5kZXggMGFlYWFkNGNiM2YuLjBlOTA4NmU2NWQzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BY3RpdmF0ZUJ1dHRvbk5hdmln
YXRpb25JdGVtLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0FjdGl2YXRlQnV0dG9uTmF2aWdhdGlvbkl0ZW0uanMKQEAgLTMxLDcgKzMxLDYgQEAgV0ku
QWN0aXZhdGVCdXR0b25OYXZpZ2F0aW9uSXRlbSA9IGNsYXNzIEFjdGl2YXRlQnV0dG9uTmF2aWdh
dGlvbkl0ZW0gZXh0ZW5kcyBXSS4KIAogICAgICAgICB0aGlzLl9kZWZhdWx0VG9vbFRpcCA9IGRl
ZmF1bHRUb29sVGlwOwogICAgICAgICB0aGlzLl9hY3RpdmF0ZWRUb29sVGlwID0gYWN0aXZhdGVk
VG9vbFRpcCB8fCBkZWZhdWx0VG9vbFRpcDsKLSAgICAgICAgdGhpcy5fcm9sZSA9IHJvbGU7CiAg
ICAgfQogCiAgICAgLy8gUHVibGljCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9CdXR0b25OYXZpZ2F0aW9uSXRlbS5qcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0J1dHRvbk5hdmlnYXRpb25JdGVtLmpzCmlu
ZGV4IDgxNjEwZGRlMTk5Li43ZDgyNTA4MDc0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQnV0dG9uTmF2aWdhdGlvbkl0ZW0uanMKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQnV0dG9uTmF2aWdhdGlv
bkl0ZW0uanMKQEAgLTQwLDEwICs0MCw5IEBAIFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtID0gY2xh
c3MgQnV0dG9uTmF2aWdhdGlvbkl0ZW0gZXh0ZW5kcyBXSS5OYXZpZ2F0aW9uSXRlbQogICAgICAg
ICAvLyBEb24ndCBtb3ZlIHRoZSBmb2N1cyBvbiB0aGUgYnV0dG9uIHdoZW4gY2xpY2tpbmcgb24g
aXQuIFRoaXMgbWF0Y2hlcyBtYWNPUyBiZWhhdmlvci4KICAgICAgICAgdGhpcy5lbGVtZW50LmFk
ZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsIHRoaXMuX2hhbmRsZU1vdXNlRG93bi5iaW5kKHRo
aXMpLCB0cnVlKTsKIAotICAgICAgICBpZiAocm9sZSA9PT0gImJ1dHRvbiIpIHsKLSAgICAgICAg
ICAgIHRoaXMuZWxlbWVudC50YWJJbmRleCA9IDA7CisgICAgICAgIHRoaXMuX3JvbGUgPSByb2xl
OworICAgICAgICBpZiAodGhpcy5fcm9sZSA9PT0gImJ1dHRvbiIpCiAgICAgICAgICAgICB0aGlz
LmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsIHRoaXMuX2hhbmRsZUtleURvd24u
YmluZCh0aGlzKSk7Ci0gICAgICAgIH0KIAogICAgICAgICBpZiAobGFiZWwpCiAgICAgICAgICAg
ICB0aGlzLmVsZW1lbnQuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIiwgbGFiZWwpOwpAQCAtNTUs
NiArNTQsOCBAQCBXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbSA9IGNsYXNzIEJ1dHRvbk5hdmlnYXRp
b25JdGVtIGV4dGVuZHMgV0kuTmF2aWdhdGlvbkl0ZW0KICAgICAgICAgdGhpcy5faW1hZ2VIZWln
aHQgPSBpbWFnZUhlaWdodCB8fCAxNjsKICAgICAgICAgdGhpcy5fbGFiZWwgPSB0b29sVGlwT3JM
YWJlbDsKIAorICAgICAgICB0aGlzLnVwZGF0ZVRhYkluZGV4KCk7CisKICAgICAgICAgdGhpcy5i
dXR0b25TdHlsZSA9IHRoaXMuX2ltYWdlID8gV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uU3R5bGUu
SW1hZ2UgOiBXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5TdHlsZS5UZXh0OwogCiAgICAgICAgIGlm
ICh0aGlzLmJ1dHRvblN0eWxlID09PSBXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5TdHlsZS5JbWFn
ZSkKQEAgLTEwOSw2ICsxMTAsOSBAQCBXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbSA9IGNsYXNzIEJ1
dHRvbk5hdmlnYXRpb25JdGVtIGV4dGVuZHMgV0kuTmF2aWdhdGlvbkl0ZW0KIAogICAgICAgICB0
aGlzLl9lbmFibGVkID0gZmxhZzsKICAgICAgICAgdGhpcy5lbGVtZW50LmNsYXNzTGlzdC50b2dn
bGUoImRpc2FibGVkIiwgIXRoaXMuX2VuYWJsZWQpOworICAgICAgICB0aGlzLmVsZW1lbnQuYXJp
YURpc2FibGVkID0gIXRoaXMuX2VuYWJsZWQ7CisKKyAgICAgICAgdGhpcy51cGRhdGVUYWJJbmRl
eCgpOwogICAgIH0KIAogICAgIGdldCBidXR0b25TdHlsZSgpCkBAIC0xNDcsNiArMTUxLDE2IEBA
IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtID0gY2xhc3MgQnV0dG9uTmF2aWdhdGlvbkl0ZW0gZXh0
ZW5kcyBXSS5OYXZpZ2F0aW9uSXRlbQogICAgICAgICByZXR1cm4gWyJidXR0b24iXTsKICAgICB9
CiAKKyAgICB1cGRhdGVUYWJJbmRleCgpCisgICAgeworICAgICAgICBpZiAoIXRoaXMuX2VuYWJs
ZWQpIHsKKyAgICAgICAgICAgIHRoaXMuZWxlbWVudC50YWJJbmRleCA9IC0xOworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgdGhpcy5lbGVtZW50LnRhYkluZGV4ID0g
KHRoaXMuX3JvbGUgPT09ICJidXR0b24iKSA/IDAgOiAtMTsKKyAgICB9CisKICAgICAvLyBQcml2
YXRlCiAKICAgICBfbW91c2VDbGlja2VkKGV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmFkaW9CdXR0b25OYXZpZ2F0aW9uSXRlbS5q
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1JhZGlvQnV0dG9u
TmF2aWdhdGlvbkl0ZW0uanMKaW5kZXggZWZjYTVmODE1ZmUuLjU5NzA4YjQzYWJmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SYWRpb0J1dHRv
bk5hdmlnYXRpb25JdGVtLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1JhZGlvQnV0dG9uTmF2aWdhdGlvbkl0ZW0uanMKQEAgLTY2LDYgKzY2LDE4IEBA
IFdJLlJhZGlvQnV0dG9uTmF2aWdhdGlvbkl0ZW0gPSBjbGFzcyBSYWRpb0J1dHRvbk5hdmlnYXRp
b25JdGVtIGV4dGVuZHMgV0kuQnV0dG9uCiAgICAgewogICAgICAgICByZXR1cm4gWyJyYWRpbyIs
ICJidXR0b24iXTsKICAgICB9CisKKyAgICB1cGRhdGVUYWJJbmRleCgpCisgICAgeworICAgICAg
ICBzdXBlci51cGRhdGVUYWJJbmRleCgpOworCisgICAgICAgIGlmICghdGhpcy5lbmFibGVkKSB7
CisgICAgICAgICAgICB0aGlzLmVsZW1lbnQudGFiSW5kZXggPSAtMTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuZWxlbWVudC50YWJJbmRleCA9ICh0aGlz
LnNlbGVjdGVkKSA/IDAgOiAtMTsKKyAgICB9CiB9OwogCiBXSS5SYWRpb0J1dHRvbk5hdmlnYXRp
b25JdGVtLlN0eWxlQ2xhc3NOYW1lID0gInJhZGlvIjsK
</data>
<flag name="review"
          id="408242"
          type_id="1"
          status="+"
          setter="hi"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394014</attachid>
            <date>2020-03-19 13:35:04 -0700</date>
            <delta_ts>2020-03-19 14:41:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>4863</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDQ5OTNhODgzYzQ3Li41MmQ0NTQxMTdjYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMjAtMDMtMTkgIE5pa2l0
YSBWYXNpbHlldiAgPG52YXNpbHlldkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogQVhJOiBkaXNhYmxlZCBidXR0b25zIHNob3VsZG4ndCBiZSBmb2N1c2FibGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODI4MworICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNTk4MzIxNTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGV2aW4gUm91
c3NvLgorCisgICAgICAgIFNldCB0YWJJbmRleCB0byAiLTEiIHdoZW4gYnV0dG9uIGJlY29tZXMg
ZGlzYWJsZWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0FjdGl2YXRlQnV0dG9u
TmF2aWdhdGlvbkl0ZW0uanM6CisgICAgICAgIChXSS5BY3RpdmF0ZUJ1dHRvbk5hdmlnYXRpb25J
dGVtKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0J1dHRvbk5hdmlnYXRpb25JdGVt
LmpzOgorICAgICAgICBgX3JvbGVgIGlzIGRlZmluZWQgaW4gdGhlIHBhcmVudCBjbGFzcyBub3cu
CisKKyAgICAgICAgKFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtKToKKyAgICAgICAgKFdJLkJ1dHRv
bk5hdmlnYXRpb25JdGVtLnByb3RvdHlwZS5zZXQgZW5hYmxlZCk6CisgICAgICAgIChXSS5CdXR0
b25OYXZpZ2F0aW9uSXRlbS5wcm90b3R5cGUuZ2V0IHRhYmJhYmxlKToKKyAgICAgICAgKFdJLkJ1
dHRvbk5hdmlnYXRpb25JdGVtLnByb3RvdHlwZS5fdXBkYXRlVGFiSW5kZXgpOgorICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvVmlld3MvUmFkaW9CdXR0b25OYXZpZ2F0aW9uSXRlbS5qczoKKyAgICAg
ICAgKFdJLlJhZGlvQnV0dG9uTmF2aWdhdGlvbkl0ZW0ucHJvdG90eXBlLmdldCB0YWJiYWJsZSk6
CisgICAgICAgIChXSS5SYWRpb0J1dHRvbk5hdmlnYXRpb25JdGVtKToKKwogMjAyMC0wMy0xNyAg
RGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3Rv
cjogdGhlIHdpZHRoIG9mIGBXSS5UYWJCYXJJdGVtYCBjYW4gY2hhbmdlIGlmIHRoZSBkZXRhY2hl
ZCB3aW5kb3cgaXMgcmVzaXplZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvQWN0aXZhdGVCdXR0b25OYXZpZ2F0aW9uSXRlbS5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FjdGl2YXRlQnV0dG9uTmF2aWdh
dGlvbkl0ZW0uanMKaW5kZXggMGFlYWFkNGNiM2YuLjBlOTA4NmU2NWQzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BY3RpdmF0ZUJ1dHRvbk5h
dmlnYXRpb25JdGVtLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0FjdGl2YXRlQnV0dG9uTmF2aWdhdGlvbkl0ZW0uanMKQEAgLTMxLDcgKzMxLDYgQEAg
V0kuQWN0aXZhdGVCdXR0b25OYXZpZ2F0aW9uSXRlbSA9IGNsYXNzIEFjdGl2YXRlQnV0dG9uTmF2
aWdhdGlvbkl0ZW0gZXh0ZW5kcyBXSS4KIAogICAgICAgICB0aGlzLl9kZWZhdWx0VG9vbFRpcCA9
IGRlZmF1bHRUb29sVGlwOwogICAgICAgICB0aGlzLl9hY3RpdmF0ZWRUb29sVGlwID0gYWN0aXZh
dGVkVG9vbFRpcCB8fCBkZWZhdWx0VG9vbFRpcDsKLSAgICAgICAgdGhpcy5fcm9sZSA9IHJvbGU7
CiAgICAgfQogCiAgICAgLy8gUHVibGljCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9CdXR0b25OYXZpZ2F0aW9uSXRlbS5qcyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0J1dHRvbk5hdmlnYXRpb25JdGVtLmpz
CmluZGV4IDdiZWFiOGM4M2U5Li41MTI0MWY3ZWViOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQnV0dG9uTmF2aWdhdGlvbkl0ZW0uanMKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQnV0dG9uTmF2aWdh
dGlvbkl0ZW0uanMKQEAgLTQwLDEwICs0MCw5IEBAIFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtID0g
Y2xhc3MgQnV0dG9uTmF2aWdhdGlvbkl0ZW0gZXh0ZW5kcyBXSS5OYXZpZ2F0aW9uSXRlbQogICAg
ICAgICAvLyBEb24ndCBtb3ZlIHRoZSBmb2N1cyBvbiB0aGUgYnV0dG9uIHdoZW4gY2xpY2tpbmcg
b24gaXQuIFRoaXMgbWF0Y2hlcyBtYWNPUyBiZWhhdmlvci4KICAgICAgICAgdGhpcy5lbGVtZW50
LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsIHRoaXMuX2hhbmRsZU1vdXNlRG93bi5iaW5k
KHRoaXMpLCB0cnVlKTsKIAotICAgICAgICBpZiAocm9sZSA9PT0gImJ1dHRvbiIpIHsKLSAgICAg
ICAgICAgIHRoaXMuZWxlbWVudC50YWJJbmRleCA9IDA7CisgICAgICAgIHRoaXMuX3JvbGUgPSBy
b2xlOworICAgICAgICBpZiAodGhpcy5fcm9sZSA9PT0gImJ1dHRvbiIpCiAgICAgICAgICAgICB0
aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsIHRoaXMuX2hhbmRsZUtleURv
d24uYmluZCh0aGlzKSk7Ci0gICAgICAgIH0KIAogICAgICAgICBpZiAobGFiZWwpCiAgICAgICAg
ICAgICB0aGlzLmVsZW1lbnQuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIiwgbGFiZWwpOwpAQCAt
NTUsNiArNTQsOCBAQCBXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbSA9IGNsYXNzIEJ1dHRvbk5hdmln
YXRpb25JdGVtIGV4dGVuZHMgV0kuTmF2aWdhdGlvbkl0ZW0KICAgICAgICAgdGhpcy5faW1hZ2VI
ZWlnaHQgPSBpbWFnZUhlaWdodCB8fCAxNjsKICAgICAgICAgdGhpcy5fbGFiZWwgPSB0b29sVGlw
T3JMYWJlbDsKIAorICAgICAgICB0aGlzLl91cGRhdGVUYWJJbmRleCgpOworCiAgICAgICAgIHRo
aXMuYnV0dG9uU3R5bGUgPSB0aGlzLl9pbWFnZSA/IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLlN0
eWxlLkltYWdlIDogV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uU3R5bGUuVGV4dDsKIAogICAgICAg
ICB0aGlzLmltYWdlVHlwZSA9IHRoaXMuX2ltYWdlID8gV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0u
SW1hZ2VUeXBlLlNWRyA6IG51bGw7CkBAIC0xMTEsNiArMTEyLDkgQEAgV0kuQnV0dG9uTmF2aWdh
dGlvbkl0ZW0gPSBjbGFzcyBCdXR0b25OYXZpZ2F0aW9uSXRlbSBleHRlbmRzIFdJLk5hdmlnYXRp
b25JdGVtCiAKICAgICAgICAgdGhpcy5fZW5hYmxlZCA9IGZsYWc7CiAgICAgICAgIHRoaXMuZWxl
bWVudC5jbGFzc0xpc3QudG9nZ2xlKCJkaXNhYmxlZCIsICF0aGlzLl9lbmFibGVkKTsKKyAgICAg
ICAgdGhpcy5lbGVtZW50LmFyaWFEaXNhYmxlZCA9ICF0aGlzLl9lbmFibGVkOworCisgICAgICAg
IHRoaXMuX3VwZGF0ZVRhYkluZGV4KCk7CiAgICAgfQogCiAgICAgZ2V0IGJ1dHRvblN0eWxlKCkK
QEAgLTE3MCw2ICsxNzQsMTEgQEAgV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0gPSBjbGFzcyBCdXR0
b25OYXZpZ2F0aW9uSXRlbSBleHRlbmRzIFdJLk5hdmlnYXRpb25JdGVtCiAgICAgICAgIHJldHVy
biBbImJ1dHRvbiJdOwogICAgIH0KIAorICAgIGdldCB0YWJiYWJsZSgpCisgICAgeworICAgICAg
ICByZXR1cm4gdGhpcy5fcm9sZSA9PT0gImJ1dHRvbiI7CisgICAgfQorCiAgICAgLy8gUHJpdmF0
ZQogCiAgICAgX21vdXNlQ2xpY2tlZChldmVudCkKQEAgLTIyOCw2ICsyMzcsMTYgQEAgV0kuQnV0
dG9uTmF2aWdhdGlvbkl0ZW0gPSBjbGFzcyBCdXR0b25OYXZpZ2F0aW9uSXRlbSBleHRlbmRzIFdJ
Lk5hdmlnYXRpb25JdGVtCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CisKKyAgICBf
dXBkYXRlVGFiSW5kZXgoKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLl9lbmFibGVkKSB7Cisg
ICAgICAgICAgICB0aGlzLmVsZW1lbnQudGFiSW5kZXggPSAtMTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuZWxlbWVudC50YWJJbmRleCA9IHRoaXMudGFi
YmFibGUgPyAwIDogLTE7CisgICAgfQogfTsKIAogV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0uRXZl
bnQgPSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9SYWRpb0J1dHRvbk5hdmlnYXRpb25JdGVtLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvUmFkaW9CdXR0b25OYXZpZ2F0aW9uSXRlbS5qcwppbmRleCBl
ZmNhNWY4MTVmZS4uYjk5MTBiYzYzOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1JhZGlvQnV0dG9uTmF2aWdhdGlvbkl0ZW0uanMKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmFkaW9CdXR0b25OYXZp
Z2F0aW9uSXRlbS5qcwpAQCAtNjYsNiArNjYsMTEgQEAgV0kuUmFkaW9CdXR0b25OYXZpZ2F0aW9u
SXRlbSA9IGNsYXNzIFJhZGlvQnV0dG9uTmF2aWdhdGlvbkl0ZW0gZXh0ZW5kcyBXSS5CdXR0b24K
ICAgICB7CiAgICAgICAgIHJldHVybiBbInJhZGlvIiwgImJ1dHRvbiJdOwogICAgIH0KKworICAg
IGdldCB0YWJiYWJsZSgpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZCA/IDAg
OiAtMTsKKyAgICB9CiB9OwogCiBXSS5SYWRpb0J1dHRvbk5hdmlnYXRpb25JdGVtLlN0eWxlQ2xh
c3NOYW1lID0gInJhZGlvIjsK
</data>

          </attachment>
      

    </bug>

</bugzilla>