<?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>211785</bug_id>
          
          <creation_ts>2020-05-12 09:50:59 -0700</creation_ts>
          <short_desc>[Wheel event region] Add support for getting wheel event region from ScrollingTree</short_desc>
          <delta_ts>2020-05-13 00:12:30 -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>Compositing</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>jamesr</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1651780</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-05-12 09:50:59 -0700</bug_when>
    <thetext>Add more code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651787</commentid>
    <comment_count>1</comment_count>
      <attachid>399139</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-05-12 10:11:39 -0700</bug_when>
    <thetext>Created attachment 399139
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651795</commentid>
    <comment_count>2</comment_count>
      <attachid>399142</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-05-12 10:23:26 -0700</bug_when>
    <thetext>Created attachment 399142
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651803</commentid>
    <comment_count>3</comment_count>
      <attachid>399142</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-05-12 10:42:38 -0700</bug_when>
    <thetext>Comment on attachment 399142
patch

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

&gt; Source/WebCore/page/scrolling/mac/ScrollingTreeMac.mm:106
&gt; +                return eventRegion &amp;&amp; eventRegion-&gt;contains(IntPoint(localPoint));

Maybe roundedIntPoint()?

&gt; Source/WebCore/page/scrolling/mac/ScrollingTreeMac.mm:216
&gt; +    return eventRegion-&gt;eventListenerRegionTypesForPoint(IntPoint(point));

roundedIntPoint?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651813</commentid>
    <comment_count>4</comment_count>
      <attachid>399142</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-05-12 11:04:19 -0700</bug_when>
    <thetext>Comment on attachment 399142
patch

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

Is IntPoint right here? I’d like to understand better some day when it should be int, float, CGFloat/double, or LayoutUnit.

&gt; Source/WebCore/page/scrolling/mac/ScrollingTreeMac.mm:194
&gt; +    LockHolder lockHolder(m_layerHitTestMutex);

Does this lock need to be held all the way to the end? I don’t fully understand what is being guarded.

&gt; Source/WebCore/page/scrolling/mac/ScrollingTreeMac.mm:208
&gt; +    auto platformCALayer = PlatformCALayer::platformCALayerForLayer((__bridge void*)hitLayer);

Seems like we eventually need to fix this function so we don’t have to cast to void* to use it.

&gt; Source/WebCore/platform/graphics/ca/cocoa/PlatformCALayerCocoa.h:171
&gt; +    const EventRegion* eventRegion() const override { return &amp;m_eventRegion; }

final?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651819</commentid>
    <comment_count>5</comment_count>
      <attachid>399142</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-05-12 11:21:48 -0700</bug_when>
    <thetext>Comment on attachment 399142
patch

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

&gt;&gt; Source/WebCore/page/scrolling/mac/ScrollingTreeMac.mm:194
&gt;&gt; +    LockHolder lockHolder(m_layerHitTestMutex);
&gt; 
&gt; Does this lock need to be held all the way to the end? I don’t fully understand what is being guarded.

This lock guards CALayers and PlatformCALayers, so the answer is yes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652131</commentid>
    <comment_count>6</comment_count>
      <attachid>399245</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-05-12 23:39:56 -0700</bug_when>
    <thetext>Created attachment 399245
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652135</commentid>
    <comment_count>7</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-05-12 23:42:41 -0700</bug_when>
    <thetext>&gt; final?

The class is marked final, using override for consistency.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652139</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-13 00:10:56 -0700</bug_when>
    <thetext>Committed r261602: &lt;https://trac.webkit.org/changeset/261602&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 399245.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652140</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-05-13 00:11:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/63172645&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652141</commentid>
    <comment_count>10</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-05-13 00:12:30 -0700</bug_when>
    <thetext>&gt; Is IntPoint right here? I’d like to understand better some day when it
&gt; should be int, float, CGFloat/double, or LayoutUnit.

The underlying data structure here (Region) is currently integer based, that&apos;s why IntPoint. For its current use cases that level of accuracy is sufficient.

I think we should move to 64 bit LayoutUnit at some point. That could allow using a single unit type through the layout code.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399139</attachid>
            <date>2020-05-12 10:11:39 -0700</date>
            <delta_ts>2020-05-12 10:23:26 -0700</delta_ts>
            <desc>patch</desc>
            <filename>wheel-region-scrolling-tree.patch</filename>
            <type>text/plain</type>
            <size>10111</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBmNTc0NzBmZTA3Yi4uOWYxZjE5YzhmYjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAyMC0wNS0xMiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgW1doZWVsIGV2ZW50IHJlZ2lvbl0gQWRkIHN1cHBvcnQgZm9yIGdldHRpbmcg
d2hlZWwgZXZlbnQgcmVnaW9uIGZyb20gU2Nyb2xsaW5nVHJlZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExNzg1CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIFNjcm9sbGluZ1RyZWU6OmV2ZW50TGlz
dGVuZXJSZWdpb25UeXBlc0ZvclBvaW50LiBJdCBpcyBub3QgdXNlZCB5ZXQuCisKKyAgICAgICAg
KiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbGluZ1RyZWU6OmV2ZW50TGlzdGVuZXJSZWdpb25UeXBlc0ZvclBvaW50IGNvbnN0KToKKyAg
ICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmg6CisgICAgICAgICogcGFnZS9z
Y3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVNYWMuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9tYWMvU2Nyb2xsaW5nVHJlZU1hYy5tbToKKyAgICAgICAgKGNvbGxlY3REZXNjZW5kYW50TGF5
ZXJzQXRQb2ludCk6CisgICAgICAgIChTY3JvbGxpbmdUcmVlTWFjOjpldmVudExpc3RlbmVyUmVn
aW9uVHlwZXNGb3JQb2ludCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
UGxhdGZvcm1DQUxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvY29jb2Ev
UGxhdGZvcm1DQUxheWVyQ29jb2EuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9j
b2NvYS9QbGF0Zm9ybUNBTGF5ZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3Jt
Q0FMYXllckNvY29hOjpldmVudFJlZ2lvbkNvbnRhaW5zUG9pbnQgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAqIHJlbmRlcmluZy9FdmVudFJlZ2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpF
dmVudFJlZ2lvbjo6ZXZlbnRMaXN0ZW5lclJlZ2lvblR5cGVzRm9yUG9pbnQgY29uc3QpOgorICAg
ICAgICAqIHJlbmRlcmluZy9FdmVudFJlZ2lvbi5oOgorCiAyMDIwLTA1LTEwICBBbnRvaW5lIFF1
aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYiBBbmltYXRpb25zXSBSZWZh
Y3RvciBhbmltYXRpb24gY29tcGFyaXNvbiBieSBjb21wb3NpdGUgb3JkZXIgaW4gYSBzaW5nbGUg
dXRpbGl0eSBmdW5jdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlLmNwcAppbmRleCA5ODk5OTEzZmZmNy4uMTQ3YTJmMDRhNWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCkBAIC0xNzEsNiAr
MTcxLDExIEBAIFJlZlB0cjxTY3JvbGxpbmdUcmVlTm9kZT4gU2Nyb2xsaW5nVHJlZTo6c2Nyb2xs
aW5nTm9kZUZvclBvaW50KEZsb2F0UG9pbnQpCiAgICAgcmV0dXJuIG1fcm9vdE5vZGU7CiB9CiAK
K09wdGlvblNldDxFdmVudExpc3RlbmVyUmVnaW9uVHlwZT4gU2Nyb2xsaW5nVHJlZTo6ZXZlbnRM
aXN0ZW5lclJlZ2lvblR5cGVzRm9yUG9pbnQoRmxvYXRQb2ludCkgY29uc3QKK3sKKyAgICByZXR1
cm4geyB9OworfQorCiB2b2lkIFNjcm9sbGluZ1RyZWU6OnRyYXZlcnNlU2Nyb2xsaW5nVHJlZShW
aXNpdG9yRnVuY3Rpb24mJiB2aXNpdG9yRnVuY3Rpb24pCiB7CiAgICAgTG9ja0hvbGRlciBsb2Nr
ZXIobV90cmVlTXV0ZXgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZS5oCmluZGV4IGI3YWJhNjc3Y2Y0Li5iNDI1MjkzMDBkMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaApAQCAtNTMsNiArNTMsNyBAQCBj
bGFzcyBTY3JvbGxpbmdUcmVlTm9kZTsKIGNsYXNzIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9s
bFByb3h5Tm9kZTsKIGNsYXNzIFNjcm9sbGluZ1RyZWVQb3NpdGlvbmVkTm9kZTsKIGNsYXNzIFNj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOworZW51bSBjbGFzcyBFdmVudExpc3RlbmVyUmVnaW9u
VHlwZSA6IHVpbnQ4X3Q7CiAKIGNsYXNzIFNjcm9sbGluZ1RyZWUgOiBwdWJsaWMgVGhyZWFkU2Fm
ZVJlZkNvdW50ZWQ8U2Nyb2xsaW5nVHJlZT4gewogZnJpZW5kIGNsYXNzIFNjcm9sbGluZ1RyZWVM
YXRjaGluZ0NvbnRyb2xsZXI7CkBAIC0xOTQsNiArMTk1LDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHRyYXZlcnNlU2Nyb2xsaW5nVHJlZVJlY3Vyc2l2ZShTY3JvbGxpbmdUcmVlTm9kZSYsIGNvbnN0
IFZpc2l0b3JGdW5jdGlvbiYpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBSZWZQdHI8
U2Nyb2xsaW5nVHJlZU5vZGU+IHNjcm9sbGluZ05vZGVGb3JQb2ludChGbG9hdFBvaW50KTsKKyAg
ICB2aXJ0dWFsIE9wdGlvblNldDxFdmVudExpc3RlbmVyUmVnaW9uVHlwZT4gZXZlbnRMaXN0ZW5l
clJlZ2lvblR5cGVzRm9yUG9pbnQoRmxvYXRQb2ludCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lk
IHJlY2VpdmVkV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSB7IH0KIAogICAg
IExvY2sgbV90cmVlTXV0ZXg7IC8vIFByb3RlY3RzIHRoZSBzY3JvbGxpbmcgdHJlZS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlTWFj
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1hYy5o
CmluZGV4IDhkZGE5OTFmZjNlLi43YWI4NDMwZTM3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVNYWMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1hYy5oCkBAIC00Myw2ICs0Myw3
IEBAIHByaXZhdGU6CiAgICAgUmVmPFNjcm9sbGluZ1RyZWVOb2RlPiBjcmVhdGVTY3JvbGxpbmdU
cmVlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEKSBmaW5hbDsKIAogICAg
IFJlZlB0cjxTY3JvbGxpbmdUcmVlTm9kZT4gc2Nyb2xsaW5nTm9kZUZvclBvaW50KEZsb2F0UG9p
bnQpIGZpbmFsOworICAgIE9wdGlvblNldDxFdmVudExpc3RlbmVyUmVnaW9uVHlwZT4gZXZlbnRM
aXN0ZW5lclJlZ2lvblR5cGVzRm9yUG9pbnQoRmxvYXRQb2ludCkgY29uc3QgZmluYWw7CiAKICAg
ICB2b2lkIHNldFdoZWVsRXZlbnRUZXN0TW9uaXRvcihSZWZQdHI8V2hlZWxFdmVudFRlc3RNb25p
dG9yPiYmKSBmaW5hbDsKIApAQCAtNTUsNyArNTYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdW5s
b2NrTGF5ZXJzRm9ySGl0VGVzdGluZygpIGZpbmFsOwogCiAgICAgLy8gVGhpcyBsb2NrIHByb3Rl
Y3RzIHRoZSBDQUxheWVyL1BsYXRmb3JtQ0FMYXllciB0cmVlLgotICAgIExvY2sgbV9sYXllckhp
dFRlc3RNdXRleDsKKyAgICBtdXRhYmxlIExvY2sgbV9sYXllckhpdFRlc3RNdXRleDsKICAgICAK
ICAgICBSZWZQdHI8V2hlZWxFdmVudFRlc3RNb25pdG9yPiBtX3doZWVsRXZlbnRUZXN0TW9uaXRv
cjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Ny
b2xsaW5nVHJlZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3Jv
bGxpbmdUcmVlTWFjLm1tCmluZGV4IDM3YzVlMzY5YWRlLi4zN2Y4YTU0YWMyZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVNYWMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVNYWMu
bW0KQEAgLTEwMiw3ICsxMDIsOCBAQCBzdGF0aWMgdm9pZCBjb2xsZWN0RGVzY2VuZGFudExheWVy
c0F0UG9pbnQoVmVjdG9yPENBTGF5ZXIgKiwgMTY+JiBsYXllcnNBdFBvaW50LAogICAgICAgICAg
ICAgICAgIC8vIFNjcm9sbGluZyBjaGFuZ2VzIGJvdW5kc09yaWdpbiBvbiB0aGUgc2Nyb2xsIGNv
bnRhaW5lciBsYXllciwgYnV0IHdlIGNvbXB1dGVkIGl0cyBldmVudCByZWdpb24gaWdub3Jpbmcg
c2Nyb2xsIHBvc2l0aW9uLCBzbyBmYWN0b3Igb3V0IGJvdW5kcyBvcmlnaW4uCiAgICAgICAgICAg
ICAgICAgRmxvYXRQb2ludCBib3VuZHNPcmlnaW4gPSBsYXllci5ib3VuZHMub3JpZ2luOwogICAg
ICAgICAgICAgICAgIEZsb2F0UG9pbnQgbG9jYWxQb2ludCA9IHN1YnZpZXdQb2ludCAtIHRvRmxv
YXRTaXplKGJvdW5kc09yaWdpbik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHBsYXRmb3JtQ0FM
YXllci0+ZXZlbnRSZWdpb25Db250YWluc1BvaW50KEludFBvaW50KGxvY2FsUG9pbnQpKTsKKyAg
ICAgICAgICAgICAgICBhdXRvKiBldmVudFJlZ2lvbiA9IHBsYXRmb3JtQ0FMYXllci0+ZXZlbnRS
ZWdpb24oKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZXZlbnRSZWdpb24gJiYgZXZlbnRSZWdp
b24tPmNvbnRhaW5zKEludFBvaW50KGxvY2FsUG9pbnQpKTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIAogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTg0LDYgKzE4NSwzNyBAQCBS
ZWZQdHI8U2Nyb2xsaW5nVHJlZU5vZGU+IFNjcm9sbGluZ1RyZWVNYWM6OnNjcm9sbGluZ05vZGVG
b3JQb2ludChGbG9hdFBvaW50IHBvaQogICAgIHJldHVybiByb290U2Nyb2xsaW5nTm9kZTsKIH0K
IAorT3B0aW9uU2V0PEV2ZW50TGlzdGVuZXJSZWdpb25UeXBlPiBTY3JvbGxpbmdUcmVlTWFjOjpl
dmVudExpc3RlbmVyUmVnaW9uVHlwZXNGb3JQb2ludChGbG9hdFBvaW50IHBvaW50KSBjb25zdAor
eworICAgIGF1dG8qIHJvb3RTY3JvbGxpbmdOb2RlID0gcm9vdE5vZGUoKTsKKyAgICBpZiAoIXJv
b3RTY3JvbGxpbmdOb2RlKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgTG9ja0hvbGRlciBs
b2NrSG9sZGVyKG1fbGF5ZXJIaXRUZXN0TXV0ZXgpOworCisgICAgYXV0byByb290Q29udGVudHNM
YXllciA9IHN0YXRpY19jYXN0PFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMqPihy
b290U2Nyb2xsaW5nTm9kZSktPnJvb3RDb250ZW50c0xheWVyKCk7CisKKyAgICBWZWN0b3I8Q0FM
YXllciAqLCAxNj4gbGF5ZXJzQXRQb2ludDsKKyAgICBjb2xsZWN0RGVzY2VuZGFudExheWVyc0F0
UG9pbnQobGF5ZXJzQXRQb2ludCwgcm9vdENvbnRlbnRzTGF5ZXIuZ2V0KCksIHBvaW50KTsKKwor
ICAgIGlmIChsYXllcnNBdFBvaW50LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKwor
ICAgIGF1dG8gKmhpdExheWVyID0gbGF5ZXJzQXRQb2ludC5sYXN0KCk7CisgICAgaWYgKCFoaXRM
YXllcikKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGF1dG8gcGxhdGZvcm1DQUxheWVyID0g
UGxhdGZvcm1DQUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXJGb3JMYXllcigoX19icmlkZ2Ugdm9pZCop
aGl0TGF5ZXIpOworICAgIGlmICghcGxhdGZvcm1DQUxheWVyKQorICAgICAgICByZXR1cm4geyB9
OworCisgICAgYXV0byogZXZlbnRSZWdpb24gPSBwbGF0Zm9ybUNBTGF5ZXItPmV2ZW50UmVnaW9u
KCk7CisgICAgaWYgKCFldmVudFJlZ2lvbikKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAKKyAg
ICByZXR1cm4gZXZlbnRSZWdpb24tPmV2ZW50TGlzdGVuZXJSZWdpb25UeXBlc0ZvclBvaW50KElu
dFBvaW50KHBvaW50KSk7Cit9CisKIHZvaWQgU2Nyb2xsaW5nVHJlZU1hYzo6bG9ja0xheWVyc0Zv
ckhpdFRlc3RpbmcoKQogewogICAgIG1fbGF5ZXJIaXRUZXN0TXV0ZXgubG9jaygpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIu
aAppbmRleCBhMmJjZmMzM2IyYy4uZDA0OTAzOWVjOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oCkBAIC0yMzUsOCAr
MjM1LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgV2luZFJ1bGUgc2hhcGVXaW5kUnVsZSgpIGNv
bnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hhcGVXaW5kUnVsZShXaW5kUnVsZSkgPSAw
OwogCisgICAgdmlydHVhbCBjb25zdCBFdmVudFJlZ2lvbiogZXZlbnRSZWdpb24oKSBjb25zdCB7
IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldEV2ZW50UmVnaW9uKGNvbnN0
IEV2ZW50UmVnaW9uJikgeyB9Ci0gICAgdmlydHVhbCBib29sIGV2ZW50UmVnaW9uQ29udGFpbnNQ
b2ludChJbnRQb2ludCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICAKICNpZiBFTkFCTEUo
U0NST0xMSU5HX1RIUkVBRCkKICAgICB2aXJ0dWFsIFNjcm9sbGluZ05vZGVJRCBzY3JvbGxpbmdO
b2RlSUQoKSBjb25zdCB7IHJldHVybiAwOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBTGF5ZXJDb2NvYS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvY29jb2EvUGxhdGZvcm1DQUxheWVyQ29jb2Eu
aAppbmRleCA4MWUwMjJmMWJhMS4uNzlmMDQxZjJiM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FMYXllckNvY29hLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvY29jb2EvUGxhdGZvcm1DQUxh
eWVyQ29jb2EuaApAQCAtMTY4LDggKzE2OCw4IEBAIHB1YmxpYzoKICAgICBHcmFwaGljc0xheWVy
OjpDdXN0b21BcHBlYXJhbmNlIGN1c3RvbUFwcGVhcmFuY2UoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBtX2N1c3RvbUFwcGVhcmFuY2U7IH0KICAgICB2b2lkIHVwZGF0ZUN1c3RvbUFwcGVhcmFu
Y2UoR3JhcGhpY3NMYXllcjo6Q3VzdG9tQXBwZWFyYW5jZSkgb3ZlcnJpZGU7CiAKKyAgICBjb25z
dCBFdmVudFJlZ2lvbiogZXZlbnRSZWdpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAmbV9l
dmVudFJlZ2lvbjsgfQogICAgIHZvaWQgc2V0RXZlbnRSZWdpb24oY29uc3QgRXZlbnRSZWdpb24m
KSBvdmVycmlkZTsKLSAgICBib29sIGV2ZW50UmVnaW9uQ29udGFpbnNQb2ludChJbnRQb2ludCkg
Y29uc3Qgb3ZlcnJpZGU7CiAKICNpZiBFTkFCTEUoU0NST0xMSU5HX1RIUkVBRCkKICAgICBTY3Jv
bGxpbmdOb2RlSUQgc2Nyb2xsaW5nTm9kZUlEKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9z
Y3JvbGxpbmdOb2RlSUQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FMYXllckNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvY29jb2EvUGxhdGZvcm1DQUxheWVyQ29jb2EubW0KaW5kZXgg
OGM5ZmNhYmJmOTkuLjVjZDQ0ZjA4ZGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBTGF5ZXJDb2NvYS5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBTGF5ZXJDb2Nv
YS5tbQpAQCAtMTAzOCwxMSArMTAzOCw2IEBAIHZvaWQgUGxhdGZvcm1DQUxheWVyQ29jb2E6OnNl
dEV2ZW50UmVnaW9uKGNvbnN0IEV2ZW50UmVnaW9uJiBldmVudFJlZ2lvbikKICAgICBtX2V2ZW50
UmVnaW9uID0gZXZlbnRSZWdpb247CiB9CiAKLWJvb2wgUGxhdGZvcm1DQUxheWVyQ29jb2E6OmV2
ZW50UmVnaW9uQ29udGFpbnNQb2ludChJbnRQb2ludCBwb2ludCkgY29uc3QKLXsKLSAgICByZXR1
cm4gbV9ldmVudFJlZ2lvbi5jb250YWlucyhwb2ludCk7Ci19Ci0KIEdyYXBoaWNzTGF5ZXI6OkVt
YmVkZGVkVmlld0lEIFBsYXRmb3JtQ0FMYXllckNvY29hOjplbWJlZGRlZFZpZXdJRCgpIGNvbnN0
CiB7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvRXZlbnRSZWdpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V2
ZW50UmVnaW9uLmNwcAppbmRleCAyNWIyNTJkZjc1MC4uZjBhOThiMWZmMTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FdmVudFJlZ2lvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0V2ZW50UmVnaW9uLmNwcApAQCAtMjI5LDYgKzIyOSwxNyBAQCB2b2lk
IEV2ZW50UmVnaW9uOjp1bml0ZUV2ZW50TGlzdGVuZXJzKGNvbnN0IFJlZ2lvbiYgcmVnaW9uLCBP
cHRpb25TZXQ8RXZlbnRMaXN0ZQogICAgICAgICBtX25vblBhc3NpdmVXaGVlbEV2ZW50TGlzdGVu
ZXJSZWdpb24udW5pdGUocmVnaW9uKTsKIH0KIAorT3B0aW9uU2V0PEV2ZW50TGlzdGVuZXJSZWdp
b25UeXBlPiBFdmVudFJlZ2lvbjo6ZXZlbnRMaXN0ZW5lclJlZ2lvblR5cGVzRm9yUG9pbnQoY29u
c3QgSW50UG9pbnQmIHBvaW50KSBjb25zdAoreworICAgIE9wdGlvblNldDxFdmVudExpc3RlbmVy
UmVnaW9uVHlwZT4gcmVnaW9uVHlwZXM7CisgICAgaWYgKG1fd2hlZWxFdmVudExpc3RlbmVyUmVn
aW9uLmNvbnRhaW5zKHBvaW50KSkKKyAgICAgICAgcmVnaW9uVHlwZXMuYWRkKEV2ZW50TGlzdGVu
ZXJSZWdpb25UeXBlOjpXaGVlbCk7CisgICAgaWYgKG1fbm9uUGFzc2l2ZVdoZWVsRXZlbnRMaXN0
ZW5lclJlZ2lvbi5jb250YWlucyhwb2ludCkpCisgICAgICAgIHJlZ2lvblR5cGVzLmFkZChFdmVu
dExpc3RlbmVyUmVnaW9uVHlwZTo6Tm9uUGFzc2l2ZVdoZWVsKTsKKworICAgIHJldHVybiByZWdp
b25UeXBlczsKK30KKwogI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCiAKIGJvb2wgRXZlbnRS
ZWdpb246OmNvbnRhaW5zRWRpdGFibGVFbGVtZW50c0luUmVjdChjb25zdCBJbnRSZWN0JiByZWN0
KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V2ZW50UmVnaW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXZlbnRSZWdpb24uaAppbmRleCA2ODFiYjhk
OGVhOS4uOTg2MmYzMzY4NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9F
dmVudFJlZ2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FdmVudFJlZ2lvbi5o
CkBAIC03OSw2ICs3OSw4IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBPcHRpb25TZXQ8
VG91Y2hBY3Rpb24+IHRvdWNoQWN0aW9uc0ZvclBvaW50KGNvbnN0IEludFBvaW50JikgY29uc3Q7
CiAgICAgY29uc3QgUmVnaW9uKiByZWdpb25Gb3JUb3VjaEFjdGlvbihUb3VjaEFjdGlvbikgY29u
c3Q7CiAKKyAgICBPcHRpb25TZXQ8RXZlbnRMaXN0ZW5lclJlZ2lvblR5cGU+IGV2ZW50TGlzdGVu
ZXJSZWdpb25UeXBlc0ZvclBvaW50KGNvbnN0IEludFBvaW50JikgY29uc3Q7CisKICNpZiBFTkFC
TEUoRURJVEFCTEVfUkVHSU9OKQogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgY29udGFpbnNFZGl0
YWJsZUVsZW1lbnRzSW5SZWN0KGNvbnN0IEludFJlY3QmKSBjb25zdDsKICAgICBWZWN0b3I8SW50
UmVjdCwgMT4gcmVjdHNGb3JFZGl0YWJsZUVsZW1lbnRzKCkgY29uc3QgeyByZXR1cm4gbV9lZGl0
YWJsZVJlZ2lvbi5yZWN0cygpOyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399142</attachid>
            <date>2020-05-12 10:23:26 -0700</date>
            <delta_ts>2020-05-12 23:39:56 -0700</delta_ts>
            <desc>patch</desc>
            <filename>wheel-region-scrolling-tree-2.patch</filename>
            <type>text/plain</type>
            <size>10126</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBmNTc0NzBmZTA3Yi4uOWYxZjE5YzhmYjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAyMC0wNS0xMiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgW1doZWVsIGV2ZW50IHJlZ2lvbl0gQWRkIHN1cHBvcnQgZm9yIGdldHRpbmcg
d2hlZWwgZXZlbnQgcmVnaW9uIGZyb20gU2Nyb2xsaW5nVHJlZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExNzg1CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIFNjcm9sbGluZ1RyZWU6OmV2ZW50TGlz
dGVuZXJSZWdpb25UeXBlc0ZvclBvaW50LiBJdCBpcyBub3QgdXNlZCB5ZXQuCisKKyAgICAgICAg
KiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbGluZ1RyZWU6OmV2ZW50TGlzdGVuZXJSZWdpb25UeXBlc0ZvclBvaW50IGNvbnN0KToKKyAg
ICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmg6CisgICAgICAgICogcGFnZS9z
Y3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVNYWMuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9tYWMvU2Nyb2xsaW5nVHJlZU1hYy5tbToKKyAgICAgICAgKGNvbGxlY3REZXNjZW5kYW50TGF5
ZXJzQXRQb2ludCk6CisgICAgICAgIChTY3JvbGxpbmdUcmVlTWFjOjpldmVudExpc3RlbmVyUmVn
aW9uVHlwZXNGb3JQb2ludCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
UGxhdGZvcm1DQUxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvY29jb2Ev
UGxhdGZvcm1DQUxheWVyQ29jb2EuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9j
b2NvYS9QbGF0Zm9ybUNBTGF5ZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3Jt
Q0FMYXllckNvY29hOjpldmVudFJlZ2lvbkNvbnRhaW5zUG9pbnQgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAqIHJlbmRlcmluZy9FdmVudFJlZ2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpF
dmVudFJlZ2lvbjo6ZXZlbnRMaXN0ZW5lclJlZ2lvblR5cGVzRm9yUG9pbnQgY29uc3QpOgorICAg
ICAgICAqIHJlbmRlcmluZy9FdmVudFJlZ2lvbi5oOgorCiAyMDIwLTA1LTEwICBBbnRvaW5lIFF1
aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYiBBbmltYXRpb25zXSBSZWZh
Y3RvciBhbmltYXRpb24gY29tcGFyaXNvbiBieSBjb21wb3NpdGUgb3JkZXIgaW4gYSBzaW5nbGUg
dXRpbGl0eSBmdW5jdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlLmNwcAppbmRleCA5ODk5OTEzZmZmNy4uMTQ3YTJmMDRhNWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCkBAIC0xNzEsNiAr
MTcxLDExIEBAIFJlZlB0cjxTY3JvbGxpbmdUcmVlTm9kZT4gU2Nyb2xsaW5nVHJlZTo6c2Nyb2xs
aW5nTm9kZUZvclBvaW50KEZsb2F0UG9pbnQpCiAgICAgcmV0dXJuIG1fcm9vdE5vZGU7CiB9CiAK
K09wdGlvblNldDxFdmVudExpc3RlbmVyUmVnaW9uVHlwZT4gU2Nyb2xsaW5nVHJlZTo6ZXZlbnRM
aXN0ZW5lclJlZ2lvblR5cGVzRm9yUG9pbnQoRmxvYXRQb2ludCkgY29uc3QKK3sKKyAgICByZXR1
cm4geyB9OworfQorCiB2b2lkIFNjcm9sbGluZ1RyZWU6OnRyYXZlcnNlU2Nyb2xsaW5nVHJlZShW
aXNpdG9yRnVuY3Rpb24mJiB2aXNpdG9yRnVuY3Rpb24pCiB7CiAgICAgTG9ja0hvbGRlciBsb2Nr
ZXIobV90cmVlTXV0ZXgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZS5oCmluZGV4IGI3YWJhNjc3Y2Y0Li5lOTM0NWRhZWNhMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaApAQCAtNTMsNiArNTMsNyBAQCBj
bGFzcyBTY3JvbGxpbmdUcmVlTm9kZTsKIGNsYXNzIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9s
bFByb3h5Tm9kZTsKIGNsYXNzIFNjcm9sbGluZ1RyZWVQb3NpdGlvbmVkTm9kZTsKIGNsYXNzIFNj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOworZW51bSBjbGFzcyBFdmVudExpc3RlbmVyUmVnaW9u
VHlwZSA6IHVpbnQ4X3Q7CiAKIGNsYXNzIFNjcm9sbGluZ1RyZWUgOiBwdWJsaWMgVGhyZWFkU2Fm
ZVJlZkNvdW50ZWQ8U2Nyb2xsaW5nVHJlZT4gewogZnJpZW5kIGNsYXNzIFNjcm9sbGluZ1RyZWVM
YXRjaGluZ0NvbnRyb2xsZXI7CkBAIC0xOTQsNiArMTk1LDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHRyYXZlcnNlU2Nyb2xsaW5nVHJlZVJlY3Vyc2l2ZShTY3JvbGxpbmdUcmVlTm9kZSYsIGNvbnN0
IFZpc2l0b3JGdW5jdGlvbiYpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBSZWZQdHI8
U2Nyb2xsaW5nVHJlZU5vZGU+IHNjcm9sbGluZ05vZGVGb3JQb2ludChGbG9hdFBvaW50KTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIE9wdGlvblNldDxFdmVudExpc3RlbmVyUmVnaW9uVHlw
ZT4gZXZlbnRMaXN0ZW5lclJlZ2lvblR5cGVzRm9yUG9pbnQoRmxvYXRQb2ludCkgY29uc3Q7CiAg
ICAgdmlydHVhbCB2b2lkIHJlY2VpdmVkV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZl
bnQmKSB7IH0KIAogICAgIExvY2sgbV90cmVlTXV0ZXg7IC8vIFByb3RlY3RzIHRoZSBzY3JvbGxp
bmcgdHJlZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9T
Y3JvbGxpbmdUcmVlTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Ny
b2xsaW5nVHJlZU1hYy5oCmluZGV4IDhkZGE5OTFmZjNlLi43YWI4NDMwZTM3YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVNYWMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1hYy5o
CkBAIC00Myw2ICs0Myw3IEBAIHByaXZhdGU6CiAgICAgUmVmPFNjcm9sbGluZ1RyZWVOb2RlPiBj
cmVhdGVTY3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlE
KSBmaW5hbDsKIAogICAgIFJlZlB0cjxTY3JvbGxpbmdUcmVlTm9kZT4gc2Nyb2xsaW5nTm9kZUZv
clBvaW50KEZsb2F0UG9pbnQpIGZpbmFsOworICAgIE9wdGlvblNldDxFdmVudExpc3RlbmVyUmVn
aW9uVHlwZT4gZXZlbnRMaXN0ZW5lclJlZ2lvblR5cGVzRm9yUG9pbnQoRmxvYXRQb2ludCkgY29u
c3QgZmluYWw7CiAKICAgICB2b2lkIHNldFdoZWVsRXZlbnRUZXN0TW9uaXRvcihSZWZQdHI8V2hl
ZWxFdmVudFRlc3RNb25pdG9yPiYmKSBmaW5hbDsKIApAQCAtNTUsNyArNTYsNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgdW5sb2NrTGF5ZXJzRm9ySGl0VGVzdGluZygpIGZpbmFsOwogCiAgICAgLy8g
VGhpcyBsb2NrIHByb3RlY3RzIHRoZSBDQUxheWVyL1BsYXRmb3JtQ0FMYXllciB0cmVlLgotICAg
IExvY2sgbV9sYXllckhpdFRlc3RNdXRleDsKKyAgICBtdXRhYmxlIExvY2sgbV9sYXllckhpdFRl
c3RNdXRleDsKICAgICAKICAgICBSZWZQdHI8V2hlZWxFdmVudFRlc3RNb25pdG9yPiBtX3doZWVs
RXZlbnRUZXN0TW9uaXRvcjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlTWFjLm1tCmluZGV4IDM3YzVlMzY5YWRlLi4zN2Y4YTU0
YWMyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9s
bGluZ1RyZWVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Nj
cm9sbGluZ1RyZWVNYWMubW0KQEAgLTEwMiw3ICsxMDIsOCBAQCBzdGF0aWMgdm9pZCBjb2xsZWN0
RGVzY2VuZGFudExheWVyc0F0UG9pbnQoVmVjdG9yPENBTGF5ZXIgKiwgMTY+JiBsYXllcnNBdFBv
aW50LAogICAgICAgICAgICAgICAgIC8vIFNjcm9sbGluZyBjaGFuZ2VzIGJvdW5kc09yaWdpbiBv
biB0aGUgc2Nyb2xsIGNvbnRhaW5lciBsYXllciwgYnV0IHdlIGNvbXB1dGVkIGl0cyBldmVudCBy
ZWdpb24gaWdub3Jpbmcgc2Nyb2xsIHBvc2l0aW9uLCBzbyBmYWN0b3Igb3V0IGJvdW5kcyBvcmln
aW4uCiAgICAgICAgICAgICAgICAgRmxvYXRQb2ludCBib3VuZHNPcmlnaW4gPSBsYXllci5ib3Vu
ZHMub3JpZ2luOwogICAgICAgICAgICAgICAgIEZsb2F0UG9pbnQgbG9jYWxQb2ludCA9IHN1YnZp
ZXdQb2ludCAtIHRvRmxvYXRTaXplKGJvdW5kc09yaWdpbik7Ci0gICAgICAgICAgICAgICAgcmV0
dXJuIHBsYXRmb3JtQ0FMYXllci0+ZXZlbnRSZWdpb25Db250YWluc1BvaW50KEludFBvaW50KGxv
Y2FsUG9pbnQpKTsKKyAgICAgICAgICAgICAgICBhdXRvKiBldmVudFJlZ2lvbiA9IHBsYXRmb3Jt
Q0FMYXllci0+ZXZlbnRSZWdpb24oKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZXZlbnRSZWdp
b24gJiYgZXZlbnRSZWdpb24tPmNvbnRhaW5zKEludFBvaW50KGxvY2FsUG9pbnQpKTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTg0
LDYgKzE4NSwzNyBAQCBSZWZQdHI8U2Nyb2xsaW5nVHJlZU5vZGU+IFNjcm9sbGluZ1RyZWVNYWM6
OnNjcm9sbGluZ05vZGVGb3JQb2ludChGbG9hdFBvaW50IHBvaQogICAgIHJldHVybiByb290U2Ny
b2xsaW5nTm9kZTsKIH0KIAorT3B0aW9uU2V0PEV2ZW50TGlzdGVuZXJSZWdpb25UeXBlPiBTY3Jv
bGxpbmdUcmVlTWFjOjpldmVudExpc3RlbmVyUmVnaW9uVHlwZXNGb3JQb2ludChGbG9hdFBvaW50
IHBvaW50KSBjb25zdAoreworICAgIGF1dG8qIHJvb3RTY3JvbGxpbmdOb2RlID0gcm9vdE5vZGUo
KTsKKyAgICBpZiAoIXJvb3RTY3JvbGxpbmdOb2RlKQorICAgICAgICByZXR1cm4geyB9OworCisg
ICAgTG9ja0hvbGRlciBsb2NrSG9sZGVyKG1fbGF5ZXJIaXRUZXN0TXV0ZXgpOworCisgICAgYXV0
byByb290Q29udGVudHNMYXllciA9IHN0YXRpY19jYXN0PFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vZGVNYWMqPihyb290U2Nyb2xsaW5nTm9kZSktPnJvb3RDb250ZW50c0xheWVyKCk7CisK
KyAgICBWZWN0b3I8Q0FMYXllciAqLCAxNj4gbGF5ZXJzQXRQb2ludDsKKyAgICBjb2xsZWN0RGVz
Y2VuZGFudExheWVyc0F0UG9pbnQobGF5ZXJzQXRQb2ludCwgcm9vdENvbnRlbnRzTGF5ZXIuZ2V0
KCksIHBvaW50KTsKKworICAgIGlmIChsYXllcnNBdFBvaW50LmlzRW1wdHkoKSkKKyAgICAgICAg
cmV0dXJuIHsgfTsKKworICAgIGF1dG8gKmhpdExheWVyID0gbGF5ZXJzQXRQb2ludC5sYXN0KCk7
CisgICAgaWYgKCFoaXRMYXllcikKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGF1dG8gcGxh
dGZvcm1DQUxheWVyID0gUGxhdGZvcm1DQUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXJGb3JMYXllcigo
X19icmlkZ2Ugdm9pZCopaGl0TGF5ZXIpOworICAgIGlmICghcGxhdGZvcm1DQUxheWVyKQorICAg
ICAgICByZXR1cm4geyB9OworCisgICAgYXV0byogZXZlbnRSZWdpb24gPSBwbGF0Zm9ybUNBTGF5
ZXItPmV2ZW50UmVnaW9uKCk7CisgICAgaWYgKCFldmVudFJlZ2lvbikKKyAgICAgICAgcmV0dXJu
IHsgfTsKKyAgICAKKyAgICByZXR1cm4gZXZlbnRSZWdpb24tPmV2ZW50TGlzdGVuZXJSZWdpb25U
eXBlc0ZvclBvaW50KEludFBvaW50KHBvaW50KSk7Cit9CisKIHZvaWQgU2Nyb2xsaW5nVHJlZU1h
Yzo6bG9ja0xheWVyc0ZvckhpdFRlc3RpbmcoKQogewogICAgIG1fbGF5ZXJIaXRUZXN0TXV0ZXgu
bG9jaygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
UGxhdGZvcm1DQUxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9Q
bGF0Zm9ybUNBTGF5ZXIuaAppbmRleCBhMmJjZmMzM2IyYy4uZDA0OTAzOWVjOTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXll
ci5oCkBAIC0yMzUsOCArMjM1LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgV2luZFJ1bGUgc2hh
cGVXaW5kUnVsZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hhcGVXaW5kUnVs
ZShXaW5kUnVsZSkgPSAwOwogCisgICAgdmlydHVhbCBjb25zdCBFdmVudFJlZ2lvbiogZXZlbnRS
ZWdpb24oKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldEV2
ZW50UmVnaW9uKGNvbnN0IEV2ZW50UmVnaW9uJikgeyB9Ci0gICAgdmlydHVhbCBib29sIGV2ZW50
UmVnaW9uQ29udGFpbnNQb2ludChJbnRQb2ludCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICAKICNpZiBFTkFCTEUoU0NST0xMSU5HX1RIUkVBRCkKICAgICB2aXJ0dWFsIFNjcm9sbGluZ05v
ZGVJRCBzY3JvbGxpbmdOb2RlSUQoKSBjb25zdCB7IHJldHVybiAwOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBTGF5ZXJD
b2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvY29jb2EvUGxhdGZv
cm1DQUxheWVyQ29jb2EuaAppbmRleCA4MWUwMjJmMWJhMS4uNzlmMDQxZjJiM2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FM
YXllckNvY29hLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvY29j
b2EvUGxhdGZvcm1DQUxheWVyQ29jb2EuaApAQCAtMTY4LDggKzE2OCw4IEBAIHB1YmxpYzoKICAg
ICBHcmFwaGljc0xheWVyOjpDdXN0b21BcHBlYXJhbmNlIGN1c3RvbUFwcGVhcmFuY2UoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBtX2N1c3RvbUFwcGVhcmFuY2U7IH0KICAgICB2b2lkIHVwZGF0
ZUN1c3RvbUFwcGVhcmFuY2UoR3JhcGhpY3NMYXllcjo6Q3VzdG9tQXBwZWFyYW5jZSkgb3ZlcnJp
ZGU7CiAKKyAgICBjb25zdCBFdmVudFJlZ2lvbiogZXZlbnRSZWdpb24oKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiAmbV9ldmVudFJlZ2lvbjsgfQogICAgIHZvaWQgc2V0RXZlbnRSZWdpb24oY29u
c3QgRXZlbnRSZWdpb24mKSBvdmVycmlkZTsKLSAgICBib29sIGV2ZW50UmVnaW9uQ29udGFpbnNQ
b2ludChJbnRQb2ludCkgY29uc3Qgb3ZlcnJpZGU7CiAKICNpZiBFTkFCTEUoU0NST0xMSU5HX1RI
UkVBRCkKICAgICBTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsaW5nTm9kZUlEKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gbV9zY3JvbGxpbmdOb2RlSUQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FMYXllckNvY29hLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvY29jb2EvUGxhdGZvcm1DQUxheWVy
Q29jb2EubW0KaW5kZXggOGM5ZmNhYmJmOTkuLjVjZDQ0ZjA4ZGVjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBTGF5ZXJDb2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0
Zm9ybUNBTGF5ZXJDb2NvYS5tbQpAQCAtMTAzOCwxMSArMTAzOCw2IEBAIHZvaWQgUGxhdGZvcm1D
QUxheWVyQ29jb2E6OnNldEV2ZW50UmVnaW9uKGNvbnN0IEV2ZW50UmVnaW9uJiBldmVudFJlZ2lv
bikKICAgICBtX2V2ZW50UmVnaW9uID0gZXZlbnRSZWdpb247CiB9CiAKLWJvb2wgUGxhdGZvcm1D
QUxheWVyQ29jb2E6OmV2ZW50UmVnaW9uQ29udGFpbnNQb2ludChJbnRQb2ludCBwb2ludCkgY29u
c3QKLXsKLSAgICByZXR1cm4gbV9ldmVudFJlZ2lvbi5jb250YWlucyhwb2ludCk7Ci19Ci0KIEdy
YXBoaWNzTGF5ZXI6OkVtYmVkZGVkVmlld0lEIFBsYXRmb3JtQ0FMYXllckNvY29hOjplbWJlZGRl
ZFZpZXdJRCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXZlbnRSZWdpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0V2ZW50UmVnaW9uLmNwcAppbmRleCAyNWIyNTJkZjc1MC4uZjBhOThiMWZm
MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FdmVudFJlZ2lvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V2ZW50UmVnaW9uLmNwcApAQCAtMjI5LDYg
KzIyOSwxNyBAQCB2b2lkIEV2ZW50UmVnaW9uOjp1bml0ZUV2ZW50TGlzdGVuZXJzKGNvbnN0IFJl
Z2lvbiYgcmVnaW9uLCBPcHRpb25TZXQ8RXZlbnRMaXN0ZQogICAgICAgICBtX25vblBhc3NpdmVX
aGVlbEV2ZW50TGlzdGVuZXJSZWdpb24udW5pdGUocmVnaW9uKTsKIH0KIAorT3B0aW9uU2V0PEV2
ZW50TGlzdGVuZXJSZWdpb25UeXBlPiBFdmVudFJlZ2lvbjo6ZXZlbnRMaXN0ZW5lclJlZ2lvblR5
cGVzRm9yUG9pbnQoY29uc3QgSW50UG9pbnQmIHBvaW50KSBjb25zdAoreworICAgIE9wdGlvblNl
dDxFdmVudExpc3RlbmVyUmVnaW9uVHlwZT4gcmVnaW9uVHlwZXM7CisgICAgaWYgKG1fd2hlZWxF
dmVudExpc3RlbmVyUmVnaW9uLmNvbnRhaW5zKHBvaW50KSkKKyAgICAgICAgcmVnaW9uVHlwZXMu
YWRkKEV2ZW50TGlzdGVuZXJSZWdpb25UeXBlOjpXaGVlbCk7CisgICAgaWYgKG1fbm9uUGFzc2l2
ZVdoZWVsRXZlbnRMaXN0ZW5lclJlZ2lvbi5jb250YWlucyhwb2ludCkpCisgICAgICAgIHJlZ2lv
blR5cGVzLmFkZChFdmVudExpc3RlbmVyUmVnaW9uVHlwZTo6Tm9uUGFzc2l2ZVdoZWVsKTsKKwor
ICAgIHJldHVybiByZWdpb25UeXBlczsKK30KKwogI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04p
CiAKIGJvb2wgRXZlbnRSZWdpb246OmNvbnRhaW5zRWRpdGFibGVFbGVtZW50c0luUmVjdChjb25z
dCBJbnRSZWN0JiByZWN0KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0V2ZW50UmVnaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXZlbnRSZWdpb24u
aAppbmRleCA2ODFiYjhkOGVhOS4uOTg2MmYzMzY4NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9FdmVudFJlZ2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9FdmVudFJlZ2lvbi5oCkBAIC03OSw2ICs3OSw4IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VY
UE9SVCBPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IHRvdWNoQWN0aW9uc0ZvclBvaW50KGNvbnN0IElu
dFBvaW50JikgY29uc3Q7CiAgICAgY29uc3QgUmVnaW9uKiByZWdpb25Gb3JUb3VjaEFjdGlvbihU
b3VjaEFjdGlvbikgY29uc3Q7CiAKKyAgICBPcHRpb25TZXQ8RXZlbnRMaXN0ZW5lclJlZ2lvblR5
cGU+IGV2ZW50TGlzdGVuZXJSZWdpb25UeXBlc0ZvclBvaW50KGNvbnN0IEludFBvaW50JikgY29u
c3Q7CisKICNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQogICAgIFdFQkNPUkVfRVhQT1JUIGJv
b2wgY29udGFpbnNFZGl0YWJsZUVsZW1lbnRzSW5SZWN0KGNvbnN0IEludFJlY3QmKSBjb25zdDsK
ICAgICBWZWN0b3I8SW50UmVjdCwgMT4gcmVjdHNGb3JFZGl0YWJsZUVsZW1lbnRzKCkgY29uc3Qg
eyByZXR1cm4gbV9lZGl0YWJsZVJlZ2lvbi5yZWN0cygpOyB9Cg==
</data>
<flag name="review"
          id="414566"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399245</attachid>
            <date>2020-05-12 23:39:56 -0700</date>
            <delta_ts>2020-05-13 00:10:56 -0700</delta_ts>
            <desc>patch</desc>
            <filename>wheel-region-scrolling-tree-3.patch</filename>
            <type>text/plain</type>
            <size>10134</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBmNTc0NzBmZTA3Yi4uMDVhZTQ1ZDg3NmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAyMC0wNS0xMiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgW1doZWVsIGV2ZW50IHJlZ2lvbl0gQWRkIHN1cHBvcnQgZm9yIGdldHRpbmcg
d2hlZWwgZXZlbnQgcmVnaW9uIGZyb20gU2Nyb2xsaW5nVHJlZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExNzg1CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIEFkZCBTY3JvbGxpbmdUcmVlOjpldmVudExpc3Rl
bmVyUmVnaW9uVHlwZXNGb3JQb2ludC4gSXQgaXMgbm90IHVzZWQgeWV0LgorCisgICAgICAgICog
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxpbmdUcmVlOjpldmVudExpc3RlbmVyUmVnaW9uVHlwZXNGb3JQb2ludCBjb25zdCk6CisgICAg
ICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAqIHBhZ2Uvc2Ny
b2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlTWFjLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcv
bWFjL1Njcm9sbGluZ1RyZWVNYWMubW06CisgICAgICAgIChjb2xsZWN0RGVzY2VuZGFudExheWVy
c0F0UG9pbnQpOgorICAgICAgICAoU2Nyb2xsaW5nVHJlZU1hYzo6ZXZlbnRMaXN0ZW5lclJlZ2lv
blR5cGVzRm9yUG9pbnQgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL1Bs
YXRmb3JtQ0FMYXllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1Bs
YXRmb3JtQ0FMYXllckNvY29hLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvY29j
b2EvUGxhdGZvcm1DQUxheWVyQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNB
TGF5ZXJDb2NvYTo6ZXZlbnRSZWdpb25Db250YWluc1BvaW50IGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKiByZW5kZXJpbmcvRXZlbnRSZWdpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZl
bnRSZWdpb246OmV2ZW50TGlzdGVuZXJSZWdpb25UeXBlc0ZvclBvaW50IGNvbnN0KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvRXZlbnRSZWdpb24uaDoKKwogMjAyMC0wNS0xMCAgQW50b2luZSBRdWlu
dCAgPGdyYW91dHNAYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWIgQW5pbWF0aW9uc10gUmVmYWN0
b3IgYW5pbWF0aW9uIGNvbXBhcmlzb24gYnkgY29tcG9zaXRlIG9yZGVyIGluIGEgc2luZ2xlIHV0
aWxpdHkgZnVuY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZS5jcHAKaW5kZXggOTg5OTkxM2ZmZjcuLjE0N2EyZjA0YTVmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcApAQCAtMTcxLDYgKzE3
MSwxMSBAQCBSZWZQdHI8U2Nyb2xsaW5nVHJlZU5vZGU+IFNjcm9sbGluZ1RyZWU6OnNjcm9sbGlu
Z05vZGVGb3JQb2ludChGbG9hdFBvaW50KQogICAgIHJldHVybiBtX3Jvb3ROb2RlOwogfQogCitP
cHRpb25TZXQ8RXZlbnRMaXN0ZW5lclJlZ2lvblR5cGU+IFNjcm9sbGluZ1RyZWU6OmV2ZW50TGlz
dGVuZXJSZWdpb25UeXBlc0ZvclBvaW50KEZsb2F0UG9pbnQpIGNvbnN0Cit7CisgICAgcmV0dXJu
IHsgfTsKK30KKwogdm9pZCBTY3JvbGxpbmdUcmVlOjp0cmF2ZXJzZVNjcm9sbGluZ1RyZWUoVmlz
aXRvckZ1bmN0aW9uJiYgdmlzaXRvckZ1bmN0aW9uKQogewogICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fdHJlZU11dGV4KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWUuaAppbmRleCBiN2FiYTY3N2NmNC4uZTkzNDVkYWVjYTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKQEAgLTUzLDYgKzUzLDcgQEAgY2xh
c3MgU2Nyb2xsaW5nVHJlZU5vZGU7CiBjbGFzcyBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxQ
cm94eU5vZGU7CiBjbGFzcyBTY3JvbGxpbmdUcmVlUG9zaXRpb25lZE5vZGU7CiBjbGFzcyBTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTsKK2VudW0gY2xhc3MgRXZlbnRMaXN0ZW5lclJlZ2lvblR5
cGUgOiB1aW50OF90OwogCiBjbGFzcyBTY3JvbGxpbmdUcmVlIDogcHVibGljIFRocmVhZFNhZmVS
ZWZDb3VudGVkPFNjcm9sbGluZ1RyZWU+IHsKIGZyaWVuZCBjbGFzcyBTY3JvbGxpbmdUcmVlTGF0
Y2hpbmdDb250cm9sbGVyOwpAQCAtMTk0LDYgKzE5NSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB0
cmF2ZXJzZVNjcm9sbGluZ1RyZWVSZWN1cnNpdmUoU2Nyb2xsaW5nVHJlZU5vZGUmLCBjb25zdCBW
aXNpdG9yRnVuY3Rpb24mKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgUmVmUHRyPFNj
cm9sbGluZ1RyZWVOb2RlPiBzY3JvbGxpbmdOb2RlRm9yUG9pbnQoRmxvYXRQb2ludCk7CisgICAg
V0VCQ09SRV9FWFBPUlQgdmlydHVhbCBPcHRpb25TZXQ8RXZlbnRMaXN0ZW5lclJlZ2lvblR5cGU+
IGV2ZW50TGlzdGVuZXJSZWdpb25UeXBlc0ZvclBvaW50KEZsb2F0UG9pbnQpIGNvbnN0OwogICAg
IHZpcnR1YWwgdm9pZCByZWNlaXZlZFdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JikgeyB9CiAKICAgICBMb2NrIG1fdHJlZU11dGV4OyAvLyBQcm90ZWN0cyB0aGUgc2Nyb2xsaW5n
IHRyZWUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Ny
b2xsaW5nVHJlZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9s
bGluZ1RyZWVNYWMuaAppbmRleCA4ZGRhOTkxZmYzZS4uN2FiODQzMGUzN2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlTWFjLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVNYWMuaApA
QCAtNDMsNiArNDMsNyBAQCBwcml2YXRlOgogICAgIFJlZjxTY3JvbGxpbmdUcmVlTm9kZT4gY3Jl
YXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCkg
ZmluYWw7CiAKICAgICBSZWZQdHI8U2Nyb2xsaW5nVHJlZU5vZGU+IHNjcm9sbGluZ05vZGVGb3JQ
b2ludChGbG9hdFBvaW50KSBmaW5hbDsKKyAgICBPcHRpb25TZXQ8RXZlbnRMaXN0ZW5lclJlZ2lv
blR5cGU+IGV2ZW50TGlzdGVuZXJSZWdpb25UeXBlc0ZvclBvaW50KEZsb2F0UG9pbnQpIGNvbnN0
IGZpbmFsOwogCiAgICAgdm9pZCBzZXRXaGVlbEV2ZW50VGVzdE1vbml0b3IoUmVmUHRyPFdoZWVs
RXZlbnRUZXN0TW9uaXRvcj4mJikgZmluYWw7CiAKQEAgLTU1LDcgKzU2LDcgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHVubG9ja0xheWVyc0ZvckhpdFRlc3RpbmcoKSBmaW5hbDsKIAogICAgIC8vIFRo
aXMgbG9jayBwcm90ZWN0cyB0aGUgQ0FMYXllci9QbGF0Zm9ybUNBTGF5ZXIgdHJlZS4KLSAgICBM
b2NrIG1fbGF5ZXJIaXRUZXN0TXV0ZXg7CisgICAgbXV0YWJsZSBMb2NrIG1fbGF5ZXJIaXRUZXN0
TXV0ZXg7CiAgICAgCiAgICAgUmVmUHRyPFdoZWVsRXZlbnRUZXN0TW9uaXRvcj4gbV93aGVlbEV2
ZW50VGVzdE1vbml0b3I7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1hYy5tbQppbmRleCAzN2M1ZTM2OWFkZS4uNTc4M2FjZjdj
NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxp
bmdUcmVlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3Jv
bGxpbmdUcmVlTWFjLm1tCkBAIC0xMDIsNyArMTAyLDggQEAgc3RhdGljIHZvaWQgY29sbGVjdERl
c2NlbmRhbnRMYXllcnNBdFBvaW50KFZlY3RvcjxDQUxheWVyICosIDE2PiYgbGF5ZXJzQXRQb2lu
dCwKICAgICAgICAgICAgICAgICAvLyBTY3JvbGxpbmcgY2hhbmdlcyBib3VuZHNPcmlnaW4gb24g
dGhlIHNjcm9sbCBjb250YWluZXIgbGF5ZXIsIGJ1dCB3ZSBjb21wdXRlZCBpdHMgZXZlbnQgcmVn
aW9uIGlnbm9yaW5nIHNjcm9sbCBwb3NpdGlvbiwgc28gZmFjdG9yIG91dCBib3VuZHMgb3JpZ2lu
LgogICAgICAgICAgICAgICAgIEZsb2F0UG9pbnQgYm91bmRzT3JpZ2luID0gbGF5ZXIuYm91bmRz
Lm9yaWdpbjsKICAgICAgICAgICAgICAgICBGbG9hdFBvaW50IGxvY2FsUG9pbnQgPSBzdWJ2aWV3
UG9pbnQgLSB0b0Zsb2F0U2l6ZShib3VuZHNPcmlnaW4pOwotICAgICAgICAgICAgICAgIHJldHVy
biBwbGF0Zm9ybUNBTGF5ZXItPmV2ZW50UmVnaW9uQ29udGFpbnNQb2ludChJbnRQb2ludChsb2Nh
bFBvaW50KSk7CisgICAgICAgICAgICAgICAgYXV0byogZXZlbnRSZWdpb24gPSBwbGF0Zm9ybUNB
TGF5ZXItPmV2ZW50UmVnaW9uKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGV2ZW50UmVnaW9u
ICYmIGV2ZW50UmVnaW9uLT5jb250YWlucyhyb3VuZGVkSW50UG9pbnQobG9jYWxQb2ludCkpOwog
ICAgICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBA
IC0xODQsNiArMTg1LDM3IEBAIFJlZlB0cjxTY3JvbGxpbmdUcmVlTm9kZT4gU2Nyb2xsaW5nVHJl
ZU1hYzo6c2Nyb2xsaW5nTm9kZUZvclBvaW50KEZsb2F0UG9pbnQgcG9pCiAgICAgcmV0dXJuIHJv
b3RTY3JvbGxpbmdOb2RlOwogfQogCitPcHRpb25TZXQ8RXZlbnRMaXN0ZW5lclJlZ2lvblR5cGU+
IFNjcm9sbGluZ1RyZWVNYWM6OmV2ZW50TGlzdGVuZXJSZWdpb25UeXBlc0ZvclBvaW50KEZsb2F0
UG9pbnQgcG9pbnQpIGNvbnN0Cit7CisgICAgYXV0byogcm9vdFNjcm9sbGluZ05vZGUgPSByb290
Tm9kZSgpOworICAgIGlmICghcm9vdFNjcm9sbGluZ05vZGUpCisgICAgICAgIHJldHVybiB7IH07
CisKKyAgICBMb2NrSG9sZGVyIGxvY2tIb2xkZXIobV9sYXllckhpdFRlc3RNdXRleCk7CisKKyAg
ICBhdXRvIHJvb3RDb250ZW50c0xheWVyID0gc3RhdGljX2Nhc3Q8U2Nyb2xsaW5nVHJlZUZyYW1l
U2Nyb2xsaW5nTm9kZU1hYyo+KHJvb3RTY3JvbGxpbmdOb2RlKS0+cm9vdENvbnRlbnRzTGF5ZXIo
KTsKKworICAgIFZlY3RvcjxDQUxheWVyICosIDE2PiBsYXllcnNBdFBvaW50OworICAgIGNvbGxl
Y3REZXNjZW5kYW50TGF5ZXJzQXRQb2ludChsYXllcnNBdFBvaW50LCByb290Q29udGVudHNMYXll
ci5nZXQoKSwgcG9pbnQpOworCisgICAgaWYgKGxheWVyc0F0UG9pbnQuaXNFbXB0eSgpKQorICAg
ICAgICByZXR1cm4geyB9OworCisgICAgYXV0byAqaGl0TGF5ZXIgPSBsYXllcnNBdFBvaW50Lmxh
c3QoKTsKKyAgICBpZiAoIWhpdExheWVyKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgYXV0
byBwbGF0Zm9ybUNBTGF5ZXIgPSBQbGF0Zm9ybUNBTGF5ZXI6OnBsYXRmb3JtQ0FMYXllckZvckxh
eWVyKChfX2JyaWRnZSB2b2lkKiloaXRMYXllcik7CisgICAgaWYgKCFwbGF0Zm9ybUNBTGF5ZXIp
CisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBhdXRvKiBldmVudFJlZ2lvbiA9IHBsYXRmb3Jt
Q0FMYXllci0+ZXZlbnRSZWdpb24oKTsKKyAgICBpZiAoIWV2ZW50UmVnaW9uKQorICAgICAgICBy
ZXR1cm4geyB9OworCisgICAgcmV0dXJuIGV2ZW50UmVnaW9uLT5ldmVudExpc3RlbmVyUmVnaW9u
VHlwZXNGb3JQb2ludChyb3VuZGVkSW50UG9pbnQocG9pbnQpKTsKK30KKwogdm9pZCBTY3JvbGxp
bmdUcmVlTWFjOjpsb2NrTGF5ZXJzRm9ySGl0VGVzdGluZygpCiB7CiAgICAgbV9sYXllckhpdFRl
c3RNdXRleC5sb2NrKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oCmluZGV4IGEyYmNmYzMzYjJjLi5kMDQ5MDM5ZWM5MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1D
QUxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZv
cm1DQUxheWVyLmgKQEAgLTIzNSw4ICsyMzUsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBXaW5k
UnVsZSBzaGFwZVdpbmRSdWxlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTaGFw
ZVdpbmRSdWxlKFdpbmRSdWxlKSA9IDA7CiAKKyAgICB2aXJ0dWFsIGNvbnN0IEV2ZW50UmVnaW9u
KiBldmVudFJlZ2lvbigpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0dWFsIHZv
aWQgc2V0RXZlbnRSZWdpb24oY29uc3QgRXZlbnRSZWdpb24mKSB7IH0KLSAgICB2aXJ0dWFsIGJv
b2wgZXZlbnRSZWdpb25Db250YWluc1BvaW50KEludFBvaW50KSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQogICAgIAogI2lmIEVOQUJMRShTQ1JPTExJTkdfVEhSRUFEKQogICAgIHZpcnR1YWwgU2Ny
b2xsaW5nTm9kZUlEIHNjcm9sbGluZ05vZGVJRCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3Jt
Q0FMYXllckNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2Nv
YS9QbGF0Zm9ybUNBTGF5ZXJDb2NvYS5oCmluZGV4IDgxZTAyMmYxYmExLi43OWYwNDFmMmIzZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvY29jb2EvUGxh
dGZvcm1DQUxheWVyQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYS9jb2NvYS9QbGF0Zm9ybUNBTGF5ZXJDb2NvYS5oCkBAIC0xNjgsOCArMTY4LDggQEAgcHVi
bGljOgogICAgIEdyYXBoaWNzTGF5ZXI6OkN1c3RvbUFwcGVhcmFuY2UgY3VzdG9tQXBwZWFyYW5j
ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY3VzdG9tQXBwZWFyYW5jZTsgfQogICAgIHZv
aWQgdXBkYXRlQ3VzdG9tQXBwZWFyYW5jZShHcmFwaGljc0xheWVyOjpDdXN0b21BcHBlYXJhbmNl
KSBvdmVycmlkZTsKIAorICAgIGNvbnN0IEV2ZW50UmVnaW9uKiBldmVudFJlZ2lvbigpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuICZtX2V2ZW50UmVnaW9uOyB9CiAgICAgdm9pZCBzZXRFdmVudFJl
Z2lvbihjb25zdCBFdmVudFJlZ2lvbiYpIG92ZXJyaWRlOwotICAgIGJvb2wgZXZlbnRSZWdpb25D
b250YWluc1BvaW50KEludFBvaW50KSBjb25zdCBvdmVycmlkZTsKIAogI2lmIEVOQUJMRShTQ1JP
TExJTkdfVEhSRUFEKQogICAgIFNjcm9sbGluZ05vZGVJRCBzY3JvbGxpbmdOb2RlSUQoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBtX3Njcm9sbGluZ05vZGVJRDsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvY29jb2EvUGxhdGZvcm1DQUxheWVyQ29j
b2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9y
bUNBTGF5ZXJDb2NvYS5tbQppbmRleCA4YzlmY2FiYmY5OS4uNWNkNDRmMDhkZWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FM
YXllckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL2Nv
Y29hL1BsYXRmb3JtQ0FMYXllckNvY29hLm1tCkBAIC0xMDM4LDExICsxMDM4LDYgQEAgdm9pZCBQ
bGF0Zm9ybUNBTGF5ZXJDb2NvYTo6c2V0RXZlbnRSZWdpb24oY29uc3QgRXZlbnRSZWdpb24mIGV2
ZW50UmVnaW9uKQogICAgIG1fZXZlbnRSZWdpb24gPSBldmVudFJlZ2lvbjsKIH0KIAotYm9vbCBQ
bGF0Zm9ybUNBTGF5ZXJDb2NvYTo6ZXZlbnRSZWdpb25Db250YWluc1BvaW50KEludFBvaW50IHBv
aW50KSBjb25zdAotewotICAgIHJldHVybiBtX2V2ZW50UmVnaW9uLmNvbnRhaW5zKHBvaW50KTsK
LX0KLQogR3JhcGhpY3NMYXllcjo6RW1iZWRkZWRWaWV3SUQgUGxhdGZvcm1DQUxheWVyQ29jb2E6
OmVtYmVkZGVkVmlld0lEKCkgY29uc3QKIHsKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FdmVudFJlZ2lvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvRXZlbnRSZWdpb24uY3BwCmluZGV4IDI1YjI1MmRmNzUwLi5m
MGE5OGIxZmYxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V2ZW50UmVn
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXZlbnRSZWdpb24uY3BwCkBA
IC0yMjksNiArMjI5LDE3IEBAIHZvaWQgRXZlbnRSZWdpb246OnVuaXRlRXZlbnRMaXN0ZW5lcnMo
Y29uc3QgUmVnaW9uJiByZWdpb24sIE9wdGlvblNldDxFdmVudExpc3RlCiAgICAgICAgIG1fbm9u
UGFzc2l2ZVdoZWVsRXZlbnRMaXN0ZW5lclJlZ2lvbi51bml0ZShyZWdpb24pOwogfQogCitPcHRp
b25TZXQ8RXZlbnRMaXN0ZW5lclJlZ2lvblR5cGU+IEV2ZW50UmVnaW9uOjpldmVudExpc3RlbmVy
UmVnaW9uVHlwZXNGb3JQb2ludChjb25zdCBJbnRQb2ludCYgcG9pbnQpIGNvbnN0Cit7CisgICAg
T3B0aW9uU2V0PEV2ZW50TGlzdGVuZXJSZWdpb25UeXBlPiByZWdpb25UeXBlczsKKyAgICBpZiAo
bV93aGVlbEV2ZW50TGlzdGVuZXJSZWdpb24uY29udGFpbnMocG9pbnQpKQorICAgICAgICByZWdp
b25UeXBlcy5hZGQoRXZlbnRMaXN0ZW5lclJlZ2lvblR5cGU6OldoZWVsKTsKKyAgICBpZiAobV9u
b25QYXNzaXZlV2hlZWxFdmVudExpc3RlbmVyUmVnaW9uLmNvbnRhaW5zKHBvaW50KSkKKyAgICAg
ICAgcmVnaW9uVHlwZXMuYWRkKEV2ZW50TGlzdGVuZXJSZWdpb25UeXBlOjpOb25QYXNzaXZlV2hl
ZWwpOworCisgICAgcmV0dXJuIHJlZ2lvblR5cGVzOworfQorCiAjaWYgRU5BQkxFKEVESVRBQkxF
X1JFR0lPTikKIAogYm9vbCBFdmVudFJlZ2lvbjo6Y29udGFpbnNFZGl0YWJsZUVsZW1lbnRzSW5S
ZWN0KGNvbnN0IEludFJlY3QmIHJlY3QpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvRXZlbnRSZWdpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FdmVu
dFJlZ2lvbi5oCmluZGV4IDY4MWJiOGQ4ZWE5Li45ODYyZjMzNjg0NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V2ZW50UmVnaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0V2ZW50UmVnaW9uLmgKQEAgLTc5LDYgKzc5LDggQEAgcHVibGljOgogICAgIFdF
QkNPUkVfRVhQT1JUIE9wdGlvblNldDxUb3VjaEFjdGlvbj4gdG91Y2hBY3Rpb25zRm9yUG9pbnQo
Y29uc3QgSW50UG9pbnQmKSBjb25zdDsKICAgICBjb25zdCBSZWdpb24qIHJlZ2lvbkZvclRvdWNo
QWN0aW9uKFRvdWNoQWN0aW9uKSBjb25zdDsKIAorICAgIE9wdGlvblNldDxFdmVudExpc3RlbmVy
UmVnaW9uVHlwZT4gZXZlbnRMaXN0ZW5lclJlZ2lvblR5cGVzRm9yUG9pbnQoY29uc3QgSW50UG9p
bnQmKSBjb25zdDsKKwogI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCiAgICAgV0VCQ09SRV9F
WFBPUlQgYm9vbCBjb250YWluc0VkaXRhYmxlRWxlbWVudHNJblJlY3QoY29uc3QgSW50UmVjdCYp
IGNvbnN0OwogICAgIFZlY3RvcjxJbnRSZWN0LCAxPiByZWN0c0ZvckVkaXRhYmxlRWxlbWVudHMo
KSBjb25zdCB7IHJldHVybiBtX2VkaXRhYmxlUmVnaW9uLnJlY3RzKCk7IH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>