<?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>211512</bug_id>
          
          <creation_ts>2020-05-06 07:24:53 -0700</creation_ts>
          <short_desc>[Wheel event region] Add basic support for generating accurate wheel event listener region</short_desc>
          <delta_ts>2020-05-07 07:41:00 -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>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=211536</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1649593</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-05-06 07:24:53 -0700</bug_when>
    <thetext>To EventRegion</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649596</commentid>
    <comment_count>1</comment_count>
      <attachid>398611</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-05-06 07:35:05 -0700</bug_when>
    <thetext>Created attachment 398611
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649600</commentid>
    <comment_count>2</comment_count>
      <attachid>398614</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-05-06 07:48:11 -0700</bug_when>
    <thetext>Created attachment 398614
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649615</commentid>
    <comment_count>3</comment_count>
      <attachid>398614</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-05-06 08:11:18 -0700</bug_when>
    <thetext>Comment on attachment 398614
patch

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

&gt; Source/WebCore/rendering/style/StyleRareInheritedData.h:158
&gt; +    unsigned eventListenerRegionTypes : 2; // OptionSet&lt;EventListenerRegionType&gt;

It&apos;s going to be really easy to forgot to change this when we add more EventListenerRegionType bits. I think maybe just eat the 8 bits right now, or add a compile-time assert that things will fit.

&gt; Source/WebCore/style/StyleAdjuster.cpp:219
&gt; +    auto findListeners = [&amp;](auto eventName, auto type, auto nonPassiveType) {
&gt; +        auto* eventListenerVector = element.eventTargetData()-&gt;eventListenerMap.find(eventName);
&gt; +        if (!eventListenerVector)
&gt; +            return;
&gt; +
&gt; +        types.add(type);
&gt; +
&gt; +        bool passiveOnly = true;
&gt; +        for (auto&amp; listener : *eventListenerVector) {
&gt; +            if (!listener-&gt;isPassive())
&gt; +                passiveOnly = false;
&gt; +        }
&gt; +
&gt; +        if (!passiveOnly)
&gt; +            types.add(nonPassiveType);
&gt; +    };

Maybe this should be a function on Element</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649623</commentid>
    <comment_count>4</comment_count>
      <attachid>398614</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-05-06 08:28:21 -0700</bug_when>
    <thetext>Comment on attachment 398614
patch

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

&gt;&gt; Source/WebCore/rendering/style/StyleRareInheritedData.h:158
&gt;&gt; +    unsigned eventListenerRegionTypes : 2; // OptionSet&lt;EventListenerRegionType&gt;
&gt; 
&gt; It&apos;s going to be really easy to forgot to change this when we add more EventListenerRegionType bits. I think maybe just eat the 8 bits right now, or add a compile-time assert that things will fit.

Patch is ok as is. No change needed.

Just for me: Could this storage also be used to track the editable region? Usually only elements with userModify != ReadOnly are in that region, but there&apos;s one except for HTMLTextFormControl elements that is currently handled by plumbing an overrideUserModifyIsEditable book through EventRegionContext::unite(). This storage could be used to eliminate that bool. I didn&apos;t want to add storage to every element&apos;s style before, but now that this storage exists it could be used. Just a thought....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649647</commentid>
    <comment_count>5</comment_count>
      <attachid>398625</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-05-06 09:15:21 -0700</bug_when>
    <thetext>Created attachment 398625
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649649</commentid>
    <comment_count>6</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-05-06 09:19:24 -0700</bug_when>
    <thetext>&gt; Maybe this should be a function on Element

Nah, element is the same for all callers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649667</commentid>
    <comment_count>7</comment_count>
      <attachid>398629</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-05-06 09:46:59 -0700</bug_when>
    <thetext>Created attachment 398629
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649674</commentid>
    <comment_count>8</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-05-06 09:58:07 -0700</bug_when>
    <thetext>&gt; Just for me: Could this storage also be used to track the editable region?

Probably.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649702</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-06 11:00:37 -0700</bug_when>
    <thetext>Committed r261239: &lt;https://trac.webkit.org/changeset/261239&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 398629.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649703</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-05-06 11:01:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/62937481&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649858</commentid>
    <comment_count>11</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2020-05-06 15:34:42 -0700</bug_when>
    <thetext>As indicated by mac-debug-wk1 EWS, this change caused fast/events/wheel-event-outside-body.html to assert 

SHOULD NEVER BE REACHED
./rendering/RenderLayerBacking.cpp(2948) : void WebCore::RenderLayerBacking::paintIntoLayer(const WebCore::GraphicsLayer *, WebCore::GraphicsContext &amp;, const WebCore::IntRect &amp;, OptionSet&lt;WebCore::PaintBehavior&gt;, WebCore::EventRegionContext *)

https://bugs.webkit.org/show_bug.cgi?id=211536</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649859</commentid>
    <comment_count>12</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2020-05-06 15:43:08 -0700</bug_when>
    <thetext>Reverted r261239 for reason:

Caused fast/events/wheel-event-outside-body.html to assert on macOS WK1

Committed r261253: &lt;https://trac.webkit.org/changeset/261253&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650024</commentid>
    <comment_count>13</comment_count>
      <attachid>398717</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-05-07 02:52:12 -0700</bug_when>
    <thetext>Created attachment 398717
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650036</commentid>
    <comment_count>14</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-07 04:16:34 -0700</bug_when>
    <thetext>Committed r261279: &lt;https://trac.webkit.org/changeset/261279&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 398717.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398611</attachid>
            <date>2020-05-06 07:35:05 -0700</date>
            <delta_ts>2020-05-06 07:48:11 -0700</delta_ts>
            <desc>patch</desc>
            <filename>wheel-event-listener-region.patch</filename>
            <type>text/plain</type>
            <size>15345</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3YzExZDFiZWY2Yi4uNjA4MzkxYTI4ZTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAyMC0wNS0wNiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAg
QWRkIGJhc2ljIHN1cHBvcnQgZm9yIGdlbmVyYXRpbmcgYWNjdXJhdGUgd2hlZWwgZXZlbnQgbGlz
dGVuZXIgcmVnaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTE1MTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGZhc3Qvc2Nyb2xsaW5nL21hYy93aGVlbC1ldmVudC1saXN0ZW5lci1yZWdpb24tYmFz
aWMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9tYWMvd2hl
ZWwtZXZlbnQtbGlzdGVuZXItcmVnaW9uLWJhc2ljLmh0bWw6IEFkZGVkLgorCiAyMDIwLTA0LTI5
ICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtX
ZWJYUl0gSW1wbGVtZW50IGlzU2Vzc2lvblN1cHBvcnRlZCgpCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3Njcm9sbGluZy9tYWMvd2hlZWwtZXZlbnQtbGlzdGVuZXItcmVnaW9uLWJhc2lj
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL21hYy93aGVlbC1ldmVu
dC1saXN0ZW5lci1yZWdpb24tYmFzaWMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwLi5hYjhjYTJmNTRmMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL21hYy93aGVlbC1ldmVudC1saXN0ZW5lci1yZWdpb24tYmFz
aWMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjMgQEAKKyhHcmFwaGljc0xheWVyCisgIChhbmNo
b3IgMC4wMCAwLjAwKQorICAoYm91bmRzIDgwMC4wMCA2MDAuMDApCisgIChjaGlsZHJlbiAxCisg
ICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgODAwLjAwIDYwMC4wMCkKKyAgICAgIChj
b250ZW50c09wYXF1ZSAxKQorICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgKGJhY2tncm91
bmRDb2xvciAjRkZGRkZGKQorICAgICAgKGV2ZW50IHJlZ2lvbgorICAgICAgICAocmVjdCAoMCww
KSB3aWR0aD04MDAgaGVpZ2h0PTYwMCkKKyAgICAgICh3aGVlbCBldmVudCBsaXN0ZW5lciByZWdp
b24KKyAgICAgICAgKHJlY3QgKDgsOCkgd2lkdGg9MjAwIGhlaWdodD0yMDApCisgICAgICAgIChy
ZWN0ICgyMDgsMjA4KSB3aWR0aD0yMDAgaGVpZ2h0PTIwMCkKKyAgICAgICAgKG5vbi1wYXNzaXZl
CisgICAgICAgICAgKHJlY3QgKDgsOCkgd2lkdGg9MjAwIGhlaWdodD0yMDApCisgICAgICAgICkK
KyAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvbWFjL3doZWVsLWV2ZW50LWxpc3RlbmVyLXJlZ2lvbi1iYXNpYy5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbWFjL3doZWVsLWV2ZW50LWxpc3RlbmVy
LXJlZ2lvbi1iYXNpYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li42NTVjODNlNjk2NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL21hYy93aGVlbC1ldmVudC1saXN0ZW5lci1yZWdpb24tYmFzaWMuaHRtbApAQCAtMCwwICsx
LDM1IEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBpbnRlcm5h
bDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbD4KKzxzdHls
ZT4KKy5ldmVudCB7CisgICAgcG9zaXRpb246cmVsYXRpdmU7CisgICAgYmFja2dyb3VuZC1jb2xv
cjpibHVlOworICAgIHdpZHRoOjIwMHB4OworICAgIGhlaWdodDoyMDBweDsKK30KKy5vZmZzZXQg
eworICAgIGxlZnQ6IDIwMHB4OworfQorCis8L3N0eWxlPgorPHNjcmlwdD4KK3dpbmRvdy5vbmxv
YWQgPSAoKSA9PiB7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKKworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBy
ZXN1bHRzLmlubmVyVGV4dCA9IGludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQsIGlu
dGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX0VWRU5UX1JFR0lPTiB8IGludGVybmFscy5MQVlF
Ul9UUkVFX0lOQ0xVREVTX1JPT1RfTEFZRVJfUFJPUEVSVElFUyk7Cit9Cis8L3NjcmlwdD4KKzxi
b2R5PgorPGRpdiBjbGFzcz0iZXZlbnQiIG9ud2hlZWw9InJlc3VsdHMudGV4dENvbnRlbnQgKz0g
J3doZWVsMVxuJyI+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9ImV2ZW50IG9mZnNldCIgaWQ9InBhc3Np
dmUiPgorPC9kaXY+Cis8c2NyaXB0PgorcGFzc2l2ZS5hZGRFdmVudExpc3RlbmVyKCd3aGVlbCcs
ICgpID0+IHsgcmVzdWx0cy50ZXh0Q29udGVudCArPSAnd2hlZWwyXG4nIH0sIHsgcGFzc2l2ZTog
dHJ1ZSB9KTsKKzwvc2NyaXB0PgorPHByZSBpZD0icmVzdWx0cyI+PC9wcmU+Cis8L2JvZHk+Cis8
L2h0bWw+CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1Yjg2YWMzNjBkOC4uMjM1YWE2ZDcwZjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwzOSBAQAorMjAyMC0wNS0wNiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBh
cHBsZS5jb20+CisKKyAgICAgICAgQWRkIGJhc2ljIHN1cHBvcnQgZm9yIGdlbmVyYXRpbmcgYWNj
dXJhdGUgd2hlZWwgZXZlbnQgbGlzdGVuZXIgcmVnaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTE1MTIKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgZmFrZSBwcm9wZXJ0aWVzIGZvciB3aGVlbCBl
dmVudCBsaXN0ZW5lcnMgdG8gUmVuZGVyU3R5bGUgYW5kIHVzZSB0aGVtIHRvCisgICAgICAgIGdl
bmVyYXRlIHJlZ2lvbnMgaW4gRXZlbnRSZWdpb24uIFRoZXJlIGlzIGEgc2VwYXJhdGUgcmVnaW9u
IGZvciBub24tcGFzc2l2ZQorICAgICAgICB3aGVlbCBldmVudCBsaXN0ZW5lcnMgKHRoYXQgd2ls
bCByZXF1aXJlIHN5bmNocm9ub3VzIGhhbmRsaW5nKS4KKworICAgICAgICBUaGUgZ2VuZXJhdGVk
IHJlZ2lvbnMgYXJlIG5vdCB1c2VkIGZvciBhbnl0aGluZyBpbiB0aGlzIHBhdGNoLgorICAgICAg
ICBUaGUgc3R5bGUgaXMgbm90IHlldCBpbnZhbGlkZWQgb24gZXZlbnQgbGlzdGVuZXIgYWRkaXRp
b25zIGFuZCByZW1vdmFscy4KKworICAgICAgICBUZXN0OiBmYXN0L3Njcm9sbGluZy9tYWMvd2hl
ZWwtZXZlbnQtbGlzdGVuZXItcmVnaW9uLWJhc2ljLmh0bWwKKworICAgICAgICAqIGRvbS9Ob2Rl
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL0V2ZW50UmVnaW9uLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkV2ZW50UmVnaW9uOjp1bml0ZSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudFJlZ2lvbjo6
dW5pdGVFdmVudExpc3RlbmVycyk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudFJlZ2lvbjo6ZHVt
cCBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL0V2ZW50UmVnaW9uLmg6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllckJhY2tpbmc6OnVwZGF0ZUV2ZW50UmVnaW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpldmVu
dExpc3RlbmVyUmVnaW9uVHlwZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5
bGU6OnNldEV2ZW50TGlzdGVuZXJSZWdpb25UeXBlcyk6CisgICAgICAgICogcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0
eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlSW5o
ZXJpdGVkRGF0YTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZVJhcmVJbmhlcml0ZWREYXRhOjpvcGVyYXRvcj09IGNvbnN0KToKKyAgICAgICAgKiByZW5k
ZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oOgorICAgICAgICAqIHN0eWxlL1N0
eWxlQWRqdXN0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OmNvbXB1dGVFdmVudExp
c3RlbmVyUmVnaW9uVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkFkanVzdGVyOjph
ZGp1c3QgY29uc3QpOgorCiAyMDIwLTA0LTI5ICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxh
ckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtXZWJYUl0gSW1wbGVtZW50IGlzU2Vzc2lvblN1cHBv
cnRlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuaAppbmRleCBlYWFhMzU4YzRlYS4uNzJmNzk5YmFlNjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuaApAQCAtNDgyLDYgKzQ4Miw3IEBAIHB1YmxpYzoKICAgICBib29sIG1fYWRvcHRpb25Jc1Jl
cXVpcmVkIHsgdHJ1ZSB9OwogI2VuZGlmCiAKKyAgICB1c2luZyBFdmVudFRhcmdldDo6ZXZlbnRU
YXJnZXREYXRhOwogICAgIEV2ZW50VGFyZ2V0RGF0YSogZXZlbnRUYXJnZXREYXRhKCkgZmluYWw7
CiAgICAgRXZlbnRUYXJnZXREYXRhKiBldmVudFRhcmdldERhdGFDb25jdXJyZW50bHkoKSBmaW5h
bDsKICAgICBFdmVudFRhcmdldERhdGEmIGVuc3VyZUV2ZW50VGFyZ2V0RGF0YSgpIGZpbmFsOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V2ZW50UmVnaW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FdmVudFJlZ2lvbi5jcHAKaW5kZXggMzYxNzEzZWY4ZGYu
LjI1YjI1MmRmNzUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXZlbnRS
ZWdpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FdmVudFJlZ2lvbi5jcHAK
QEAgLTExMiw2ICsxMTIsNyBAQCB2b2lkIEV2ZW50UmVnaW9uOjp1bml0ZShjb25zdCBSZWdpb24m
IHJlZ2lvbiwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBib29sIG92ZQogICAgIG1fcmVnaW9u
LnVuaXRlKHJlZ2lvbik7CiAKICAgICB1bml0ZVRvdWNoQWN0aW9ucyhyZWdpb24sIHN0eWxlLmVm
ZmVjdGl2ZVRvdWNoQWN0aW9ucygpKTsKKyAgICB1bml0ZUV2ZW50TGlzdGVuZXJzKHJlZ2lvbiwg
c3R5bGUuZXZlbnRMaXN0ZW5lclJlZ2lvblR5cGVzKCkpOwogCiAjaWYgRU5BQkxFKEVESVRBQkxF
X1JFR0lPTikKICAgICBpZiAob3ZlcnJpZGVVc2VyTW9kaWZ5SXNFZGl0YWJsZSB8fCBzdHlsZS51
c2VyTW9kaWZ5KCkgIT0gVXNlck1vZGlmeTo6UmVhZE9ubHkpCkBAIC0yMjAsNiArMjIxLDE0IEBA
IE9wdGlvblNldDxUb3VjaEFjdGlvbj4gRXZlbnRSZWdpb246OnRvdWNoQWN0aW9uc0ZvclBvaW50
KGNvbnN0IEludFBvaW50JiBwb2ludCkKICAgICByZXR1cm4gYWN0aW9uczsKIH0KIAordm9pZCBF
dmVudFJlZ2lvbjo6dW5pdGVFdmVudExpc3RlbmVycyhjb25zdCBSZWdpb24mIHJlZ2lvbiwgT3B0
aW9uU2V0PEV2ZW50TGlzdGVuZXJSZWdpb25UeXBlPiBldmVudExpc3RlbmVyUmVnaW9uVHlwZXMp
Cit7CisgICAgaWYgKGV2ZW50TGlzdGVuZXJSZWdpb25UeXBlcy5jb250YWlucyhFdmVudExpc3Rl
bmVyUmVnaW9uVHlwZTo6V2hlZWwpKQorICAgICAgICBtX3doZWVsRXZlbnRMaXN0ZW5lclJlZ2lv
bi51bml0ZShyZWdpb24pOworICAgIGlmIChldmVudExpc3RlbmVyUmVnaW9uVHlwZXMuY29udGFp
bnMoRXZlbnRMaXN0ZW5lclJlZ2lvblR5cGU6Ok5vblBhc3NpdmVXaGVlbCkpCisgICAgICAgIG1f
bm9uUGFzc2l2ZVdoZWVsRXZlbnRMaXN0ZW5lclJlZ2lvbi51bml0ZShyZWdpb24pOworfQorCiAj
aWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKIAogYm9vbCBFdmVudFJlZ2lvbjo6Y29udGFpbnNF
ZGl0YWJsZUVsZW1lbnRzSW5SZWN0KGNvbnN0IEludFJlY3QmIHJlY3QpIGNvbnN0CkBAIC0yNDcs
NiArMjU2LDE2IEBAIHZvaWQgRXZlbnRSZWdpb246OmR1bXAoVGV4dFN0cmVhbSYgdHMpIGNvbnN0
CiAgICAgICAgIHRzIDw8IGluZGVudCA8PCAiKVxuIjsKICAgICB9CiAKKyAgICBpZiAoIW1fd2hl
ZWxFdmVudExpc3RlbmVyUmVnaW9uLmlzRW1wdHkoKSkgeworICAgICAgICB0cyA8PCBpbmRlbnQg
PDwgIih3aGVlbCBldmVudCBsaXN0ZW5lciByZWdpb24iIDw8IG1fd2hlZWxFdmVudExpc3RlbmVy
UmVnaW9uOworICAgICAgICBpZiAoIW1fbm9uUGFzc2l2ZVdoZWVsRXZlbnRMaXN0ZW5lclJlZ2lv
bi5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIFRleHRTdHJlYW06OkluZGVudFNjb3BlIGluZGVu
dFNjb3BlKHRzKTsKKyAgICAgICAgICAgIHRzIDw8IGluZGVudCA8PCAiKG5vbi1wYXNzaXZlIiA8
PCBtX25vblBhc3NpdmVXaGVlbEV2ZW50TGlzdGVuZXJSZWdpb247CisgICAgICAgICAgICB0cyA8
PCBpbmRlbnQgPDwgIilcbiI7CisgICAgICAgIH0KKyAgICAgICAgdHMgPDwgaW5kZW50IDw8ICIp
XG4iOworICAgIH0KKwogI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCiAgICAgaWYgKCFtX2Vk
aXRhYmxlUmVnaW9uLmlzRW1wdHkoKSkgewogICAgICAgICB0cyA8PCBpbmRlbnQgPDwgIihlZGl0
YWJsZSByZWdpb24iIDw8IG1fZWRpdGFibGVSZWdpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvRXZlbnRSZWdpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9F
dmVudFJlZ2lvbi5oCmluZGV4IGYzOGZhZDc5MGUyLi42ODFiYjhkOGVhOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V2ZW50UmVnaW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0V2ZW50UmVnaW9uLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUg
IkFmZmluZVRyYW5zZm9ybS5oIgogI2luY2x1ZGUgIlJlZ2lvbi5oIgorI2luY2x1ZGUgIlJlbmRl
clN0eWxlQ29uc3RhbnRzLmgiCiAjaW5jbHVkZSAiVG91Y2hBY3Rpb24uaCIKICNpbmNsdWRlIDx3
dGYvT3B0aW9uU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNzYsNyArNzcsNiBA
QCBwdWJsaWM6CiAKICAgICBib29sIGhhc1RvdWNoQWN0aW9ucygpIGNvbnN0IHsgcmV0dXJuICFt
X3RvdWNoQWN0aW9uUmVnaW9ucy5pc0VtcHR5KCk7IH0KICAgICBXRUJDT1JFX0VYUE9SVCBPcHRp
b25TZXQ8VG91Y2hBY3Rpb24+IHRvdWNoQWN0aW9uc0ZvclBvaW50KGNvbnN0IEludFBvaW50Jikg
Y29uc3Q7Ci0KICAgICBjb25zdCBSZWdpb24qIHJlZ2lvbkZvclRvdWNoQWN0aW9uKFRvdWNoQWN0
aW9uKSBjb25zdDsKIAogI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCkBAIC05Myw5ICs5Mywx
MiBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgdm9pZCB1bml0ZVRvdWNoQWN0aW9ucyhjb25z
dCBSZWdpb24mLCBPcHRpb25TZXQ8VG91Y2hBY3Rpb24+KTsKKyAgICB2b2lkIHVuaXRlRXZlbnRM
aXN0ZW5lcnMoY29uc3QgUmVnaW9uJiwgT3B0aW9uU2V0PEV2ZW50TGlzdGVuZXJSZWdpb25UeXBl
Pik7CiAKICAgICBSZWdpb24gbV9yZWdpb247CiAgICAgVmVjdG9yPFJlZ2lvbj4gbV90b3VjaEFj
dGlvblJlZ2lvbnM7CisgICAgUmVnaW9uIG1fd2hlZWxFdmVudExpc3RlbmVyUmVnaW9uOworICAg
IFJlZ2lvbiBtX25vblBhc3NpdmVXaGVlbEV2ZW50TGlzdGVuZXJSZWdpb247CiAjaWYgRU5BQkxF
KEVESVRBQkxFX1JFR0lPTikKICAgICBSZWdpb24gbV9lZGl0YWJsZVJlZ2lvbjsKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRl
eCA1MDY0M2JlZGVkYi4uMGQyZGJlMTllMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC0xNjY3LDYgKzE2NjcsMTAgQEAgdm9pZCBS
ZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUV2ZW50UmVnaW9uKCkKICNpZiBFTkFCTEUoRURJVEFC
TEVfUkVHSU9OKQogICAgICAgICBpZiAocmVuZGVyZXIoKS5kb2N1bWVudCgpLm1heUhhdmVFZGl0
YWJsZUVsZW1lbnRzKCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgorI2lmICFQ
TEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICBpZiAocmVuZGVyZXIoKS5kb2N1bWVudCgpLndo
ZWVsRXZlbnRUYXJnZXRzKCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgogICAg
ICAgICBpZiAobV9vd25pbmdMYXllci5pc1JlbmRlclZpZXdMYXllcigpKQogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGUuaAppbmRleCBmZDg0ZDEzMTk3OC4uMWQ0MWI5NTYzMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC02OTQsNiArNjk0LDcgQEAgcHVibGlj
OgogICAgIE9wdGlvblNldDxUb3VjaEFjdGlvbj4gdG91Y2hBY3Rpb25zKCkgY29uc3QgeyByZXR1
cm4gT3B0aW9uU2V0PFRvdWNoQWN0aW9uPjo6ZnJvbVJhdyhtX3JhcmVOb25Jbmhlcml0ZWREYXRh
LT50b3VjaEFjdGlvbnMpOyB9CiAgICAgLy8gJ3RvdWNoLWFjdGlvbicgYmVoYXZpb3IgZGVwZW5k
cyBvbiB2YWx1ZXMgaW4gYW5jZXN0b3JzLiBXZSB1c2UgYW4gYWRkaXRpb25hbCBpbmhlcml0ZWQg
cHJvcGVydHkgdG8gaW1wbGVtZW50IHRoYXQuCiAgICAgT3B0aW9uU2V0PFRvdWNoQWN0aW9uPiBl
ZmZlY3RpdmVUb3VjaEFjdGlvbnMoKSBjb25zdCB7IHJldHVybiBPcHRpb25TZXQ8VG91Y2hBY3Rp
b24+Ojpmcm9tUmF3KG1fcmFyZUluaGVyaXRlZERhdGEtPmVmZmVjdGl2ZVRvdWNoQWN0aW9ucyk7
IH0KKyAgICBPcHRpb25TZXQ8RXZlbnRMaXN0ZW5lclJlZ2lvblR5cGU+IGV2ZW50TGlzdGVuZXJS
ZWdpb25UeXBlcygpIGNvbnN0IHsgcmV0dXJuIE9wdGlvblNldDxFdmVudExpc3RlbmVyUmVnaW9u
VHlwZT46OmZyb21SYXcobV9yYXJlSW5oZXJpdGVkRGF0YS0+ZXZlbnRMaXN0ZW5lclJlZ2lvblR5
cGVzKTsgfQogCiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKICAgICAvLyBTY3JvbGwgc25h
cCBwb3J0IHN0eWxlLgpAQCAtMTIyOCw2ICsxMjI5LDcgQEAgcHVibGljOgogICAgIAogICAgIHZv
aWQgc2V0VG91Y2hBY3Rpb25zKE9wdGlvblNldDxUb3VjaEFjdGlvbj4gdG91Y2hBY3Rpb25zKSB7
IFNFVF9WQVIobV9yYXJlTm9uSW5oZXJpdGVkRGF0YSwgdG91Y2hBY3Rpb25zLCB0b3VjaEFjdGlv
bnMudG9SYXcoKSk7IH0KICAgICB2b2lkIHNldEVmZmVjdGl2ZVRvdWNoQWN0aW9ucyhPcHRpb25T
ZXQ8VG91Y2hBY3Rpb24+IHRvdWNoQWN0aW9ucykgeyBTRVRfVkFSKG1fcmFyZUluaGVyaXRlZERh
dGEsIGVmZmVjdGl2ZVRvdWNoQWN0aW9ucywgdG91Y2hBY3Rpb25zLnRvUmF3KCkpOyB9CisgICAg
dm9pZCBzZXRFdmVudExpc3RlbmVyUmVnaW9uVHlwZXMoT3B0aW9uU2V0PEV2ZW50TGlzdGVuZXJS
ZWdpb25UeXBlPiBldmVudExpc3RlbmVyVHlwZXMpIHsgU0VUX1ZBUihtX3JhcmVJbmhlcml0ZWRE
YXRhLCBldmVudExpc3RlbmVyUmVnaW9uVHlwZXMsIGV2ZW50TGlzdGVuZXJUeXBlcy50b1Jhdygp
KTsgfQogCiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKICAgICB2b2lkIHNldFNjcm9sbFNu
YXBUeXBlKGNvbnN0IFNjcm9sbFNuYXBUeXBlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCmluZGV4IDRiNDQyYmJjMjY2
Li45MDhlNTE2MzQ3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKQEAgLTExODAsNiArMTE4MCwxMSBAQCBlbnVtIGNs
YXNzIEZvbnRMb2FkaW5nQmVoYXZpb3IgOiB1aW50OF90IHsKICAgICBPcHRpb25hbAogfTsKIAor
ZW51bSBjbGFzcyBFdmVudExpc3RlbmVyUmVnaW9uVHlwZSA6IHVpbnQ4X3QgeworICAgIFdoZWVs
ICAgICAgICAgICA9IDEgPDwgMCwKKyAgICBOb25QYXNzaXZlV2hlZWwgPSAxIDw8IDEsCit9Owor
CiBleHRlcm4gY29uc3QgZmxvYXQgZGVmYXVsdE1pdGVyTGltaXQ7CiAKIFdURjo6VGV4dFN0cmVh
bSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBBbmltYXRpb25GaWxsTW9kZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVk
RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJp
dGVkRGF0YS5jcHAKaW5kZXggMmVjNWIwYWE5MzEuLjM3N2NjNDA2ODI2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERh
dGEuY3BwCkBAIC0xMzQsNiArMTM0LDcgQEAgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6U3R5bGVS
YXJlSW5oZXJpdGVkRGF0YSgpCiAgICAgLCBoYXNTZXRTdHJva2VXaWR0aChmYWxzZSkKICAgICAs
IGhhc1NldFN0cm9rZUNvbG9yKGZhbHNlKQogICAgICwgZWZmZWN0aXZlVG91Y2hBY3Rpb25zKHN0
YXRpY19jYXN0PHVuc2lnbmVkPihSZW5kZXJTdHlsZTo6aW5pdGlhbFRvdWNoQWN0aW9ucygpKSkK
KyAgICAsIGV2ZW50TGlzdGVuZXJSZWdpb25UeXBlcygwKQogICAgICwgc3Ryb2tlV2lkdGgoUmVu
ZGVyU3R5bGU6OmluaXRpYWxTdHJva2VXaWR0aCgpKQogICAgICwgc3Ryb2tlQ29sb3IoUmVuZGVy
U3R5bGU6OmluaXRpYWxTdHJva2VDb2xvcigpKQogICAgICwgbWl0ZXJMaW1pdChSZW5kZXJTdHls
ZTo6aW5pdGlhbFN0cm9rZU1pdGVyTGltaXQoKSkKQEAgLTIyOCw2ICsyMjksNyBAQCBpbmxpbmUg
U3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YShjb25zdCBTdHls
ZVJhcmVJbmhlcml0ZWREYQogICAgICwgaGFzU2V0U3Ryb2tlV2lkdGgoby5oYXNTZXRTdHJva2VX
aWR0aCkKICAgICAsIGhhc1NldFN0cm9rZUNvbG9yKG8uaGFzU2V0U3Ryb2tlQ29sb3IpCiAgICAg
LCBlZmZlY3RpdmVUb3VjaEFjdGlvbnMoby5lZmZlY3RpdmVUb3VjaEFjdGlvbnMpCisgICAgLCBl
dmVudExpc3RlbmVyUmVnaW9uVHlwZXMoby5ldmVudExpc3RlbmVyUmVnaW9uVHlwZXMpCiAgICAg
LCBzdHJva2VXaWR0aChvLnN0cm9rZVdpZHRoKQogICAgICwgc3Ryb2tlQ29sb3Ioby5zdHJva2VD
b2xvcikKICAgICAsIHZpc2l0ZWRMaW5rU3Ryb2tlQ29sb3Ioby52aXNpdGVkTGlua1N0cm9rZUNv
bG9yKQpAQCAtMzQ5LDYgKzM1MSw3IEBAIGJvb2wgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6b3Bl
cmF0b3I9PShjb25zdCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhJiBvKSBjb25zdAogICAgICAgICAm
JiBoYXNTZXRTdHJva2VXaWR0aCA9PSBvLmhhc1NldFN0cm9rZVdpZHRoCiAgICAgICAgICYmIGhh
c1NldFN0cm9rZUNvbG9yID09IG8uaGFzU2V0U3Ryb2tlQ29sb3IKICAgICAgICAgJiYgZWZmZWN0
aXZlVG91Y2hBY3Rpb25zID09IG8uZWZmZWN0aXZlVG91Y2hBY3Rpb25zCisgICAgICAgICYmIGV2
ZW50TGlzdGVuZXJSZWdpb25UeXBlcyA9PSBvLmV2ZW50TGlzdGVuZXJSZWdpb25UeXBlcwogICAg
ICAgICAmJiBzdHJva2VXaWR0aCA9PSBvLnN0cm9rZVdpZHRoCiAgICAgICAgICYmIHN0cm9rZUNv
bG9yID09IG8uc3Ryb2tlQ29sb3IKICAgICAgICAgJiYgdmlzaXRlZExpbmtTdHJva2VDb2xvciA9
PSBvLnZpc2l0ZWRMaW5rU3Ryb2tlQ29sb3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oCmluZGV4IGJkZmI3OWI5NDA1
Li44MDhlNjVlNmQzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oCkBAIC0xNTUsNiArMTU1LDcgQEAgcHVibGlj
OgogICAgIHVuc2lnbmVkIGhhc1NldFN0cm9rZUNvbG9yIDogMTsKIAogICAgIHVuc2lnbmVkIGVm
ZmVjdGl2ZVRvdWNoQWN0aW9ucyA6IDY7IC8vIE9wdGlvblNldDxUb3VjaEFjdGlvbj4KKyAgICB1
bnNpZ25lZCBldmVudExpc3RlbmVyUmVnaW9uVHlwZXMgOiAyOyAvLyBPcHRpb25TZXQ8RXZlbnRM
aXN0ZW5lclJlZ2lvblR5cGU+CiAKICAgICBMZW5ndGggc3Ryb2tlV2lkdGg7CiAgICAgQ29sb3Ig
c3Ryb2tlQ29sb3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVz
dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3BwCmluZGV4IGZj
Y2YyYmExN2IwLi4wYWNiYjA2ZWEwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUv
U3R5bGVBZGp1c3Rlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rl
ci5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJBbmltYXRpb25CYXNlLmgiCiAjaW5j
bHVkZSAiQ1NTRm9udFNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUg
IkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJIVE1MRGl2
RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKQEAgLTE5Miw2ICsxOTMs
NDIgQEAgc3RhdGljIE9wdGlvblNldDxUb3VjaEFjdGlvbj4gY29tcHV0ZUVmZmVjdGl2ZVRvdWNo
QWN0aW9ucyhjb25zdCBSZW5kZXJTdHlsZSYgc3QKICAgICByZXR1cm4gc2hhcmVkVG91Y2hBY3Rp
b25zOwogfQogCitzdGF0aWMgT3B0aW9uU2V0PEV2ZW50TGlzdGVuZXJSZWdpb25UeXBlPiBjb21w
dXRlRXZlbnRMaXN0ZW5lclJlZ2lvblR5cGVzKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQsIE9wdGlv
blNldDxFdmVudExpc3RlbmVyUmVnaW9uVHlwZT4gcGFyZW50VHlwZXMpCit7CisjaWYgIVBMQVRG
T1JNKElPU19GQU1JTFkpCisgICAgaWYgKCFlbGVtZW50Lmhhc0V2ZW50TGlzdGVuZXJzKCkpCisg
ICAgICAgIHJldHVybiBwYXJlbnRUeXBlczsKKworICAgIGF1dG8gdHlwZXMgPSBwYXJlbnRUeXBl
czsKKworICAgIGF1dG8gZmluZExpc3RlbmVycyA9IFsmXShhdXRvIGV2ZW50TmFtZSwgYXV0byB0
eXBlLCBhdXRvIG5vblBhc3NpdmVUeXBlKSB7CisgICAgICAgIGF1dG8qIGV2ZW50TGlzdGVuZXJW
ZWN0b3IgPSBlbGVtZW50LmV2ZW50VGFyZ2V0RGF0YSgpLT5ldmVudExpc3RlbmVyTWFwLmZpbmQo
ZXZlbnROYW1lKTsKKyAgICAgICAgaWYgKCFldmVudExpc3RlbmVyVmVjdG9yKQorICAgICAgICAg
ICAgcmV0dXJuOworCisgICAgICAgIHR5cGVzLmFkZCh0eXBlKTsKKworICAgICAgICBib29sIHBh
c3NpdmVPbmx5ID0gdHJ1ZTsKKyAgICAgICAgZm9yIChhdXRvJiBsaXN0ZW5lciA6ICpldmVudExp
c3RlbmVyVmVjdG9yKSB7CisgICAgICAgICAgICBpZiAoIWxpc3RlbmVyLT5pc1Bhc3NpdmUoKSkK
KyAgICAgICAgICAgICAgICBwYXNzaXZlT25seSA9IGZhbHNlOworICAgICAgICB9CisKKyAgICAg
ICAgaWYgKCFwYXNzaXZlT25seSkKKyAgICAgICAgICAgIHR5cGVzLmFkZChub25QYXNzaXZlVHlw
ZSk7CisgICAgfTsKKworICAgIGZpbmRMaXN0ZW5lcnMoZXZlbnROYW1lcygpLndoZWVsRXZlbnQs
IEV2ZW50TGlzdGVuZXJSZWdpb25UeXBlOjpXaGVlbCwgRXZlbnRMaXN0ZW5lclJlZ2lvblR5cGU6
Ok5vblBhc3NpdmVXaGVlbCk7CisgICAgZmluZExpc3RlbmVycyhldmVudE5hbWVzKCkubW91c2V3
aGVlbEV2ZW50LCBFdmVudExpc3RlbmVyUmVnaW9uVHlwZTo6V2hlZWwsIEV2ZW50TGlzdGVuZXJS
ZWdpb25UeXBlOjpOb25QYXNzaXZlV2hlZWwpOworCisgICAgcmV0dXJuIHR5cGVzOworI2Vsc2UK
KyAgICBVTlVTRURfUEFSQU0oZWxlbWVudCk7CisgICAgVU5VU0VEX1BBUkFNKHBhcmVudFR5cGVz
KTsKKyAgICByZXR1cm4geyB9OworI2VuZGlmCit9CisKIHZvaWQgQWRqdXN0ZXI6OmFkanVzdChS
ZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlKiB1c2VyQWdlbnRBcHBlYXJhbmNl
U3R5bGUpIGNvbnN0CiB7CiAgICAgLy8gQ2FjaGUgb3VyIG9yaWdpbmFsIGRpc3BsYXkuCkBAIC00
MzcsNiArNDc0LDkgQEAgdm9pZCBBZGp1c3Rlcjo6YWRqdXN0KFJlbmRlclN0eWxlJiBzdHlsZSwg
Y29uc3QgUmVuZGVyU3R5bGUqIHVzZXJBZ2VudEFwcGVhcmFuY2UKIAogICAgIHN0eWxlLnNldEVm
ZmVjdGl2ZVRvdWNoQWN0aW9ucyhjb21wdXRlRWZmZWN0aXZlVG91Y2hBY3Rpb25zKHN0eWxlLCBt
X3BhcmVudFN0eWxlLmVmZmVjdGl2ZVRvdWNoQWN0aW9ucygpKSk7CiAKKyAgICBpZiAobV9lbGVt
ZW50KQorICAgICAgICBzdHlsZS5zZXRFdmVudExpc3RlbmVyUmVnaW9uVHlwZXMoY29tcHV0ZUV2
ZW50TGlzdGVuZXJSZWdpb25UeXBlcygqbV9lbGVtZW50LCBtX3BhcmVudFN0eWxlLmV2ZW50TGlz
dGVuZXJSZWdpb25UeXBlcygpKSk7CisKICNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQogICAg
IGlmIChtX2VsZW1lbnQpCiAgICAgICAgIGFkanVzdEZvclRleHRBdXRvc2l6aW5nKHN0eWxlLCAq
bV9lbGVtZW50KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398614</attachid>
            <date>2020-05-06 07:48:11 -0700</date>
            <delta_ts>2020-05-06 09:15:41 -0700</delta_ts>
            <desc>patch</desc>
            <filename>wheel-event-listener-region-2.patch</filename>
            <type>text/plain</type>
            <size>15664</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3YzExZDFiZWY2Yi4uNjA4MzkxYTI4ZTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAyMC0wNS0wNiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAg
QWRkIGJhc2ljIHN1cHBvcnQgZm9yIGdlbmVyYXRpbmcgYWNjdXJhdGUgd2hlZWwgZXZlbnQgbGlz
dGVuZXIgcmVnaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTE1MTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGZhc3Qvc2Nyb2xsaW5nL21hYy93aGVlbC1ldmVudC1saXN0ZW5lci1yZWdpb24tYmFz
aWMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9tYWMvd2hl
ZWwtZXZlbnQtbGlzdGVuZXItcmVnaW9uLWJhc2ljLmh0bWw6IEFkZGVkLgorCiAyMDIwLTA0LTI5
ICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtX
ZWJYUl0gSW1wbGVtZW50IGlzU2Vzc2lvblN1cHBvcnRlZCgpCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3Njcm9sbGluZy9tYWMvd2hlZWwtZXZlbnQtbGlzdGVuZXItcmVnaW9uLWJhc2lj
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL21hYy93aGVlbC1ldmVu
dC1saXN0ZW5lci1yZWdpb24tYmFzaWMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwLi5jYzdmMjY1OWM1OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL21hYy93aGVlbC1ldmVudC1saXN0ZW5lci1yZWdpb24tYmFz
aWMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjYgQEAKKyhHcmFwaGljc0xheWVyCisgIChhbmNo
b3IgMC4wMCAwLjAwKQorICAoYm91bmRzIDgwMC4wMCA2MDAuMDApCisgIChjaGlsZHJlbiAxCisg
ICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgODAwLjAwIDYwMC4wMCkKKyAgICAgIChj
b250ZW50c09wYXF1ZSAxKQorICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgKGJhY2tncm91
bmRDb2xvciAjRkZGRkZGKQorICAgICAgKGV2ZW50IHJlZ2lvbgorICAgICAgICAocmVjdCAoMCww
KSB3aWR0aD04MDAgaGVpZ2h0PTYwMCkKKyAgICAgICh3aGVlbCBldmVudCBsaXN0ZW5lciByZWdp
b24KKyAgICAgICAgKHJlY3QgKDgsOCkgd2lkdGg9MjUwIGhlaWdodD01MCkKKyAgICAgICAgKHJl
Y3QgKDgsNTgpIHdpZHRoPTIwMCBoZWlnaHQ9MTUwKQorICAgICAgICAocmVjdCAoMjA4LDIwOCkg
d2lkdGg9MjUwIGhlaWdodD01MCkKKyAgICAgICAgKHJlY3QgKDIwOCwyNTgpIHdpZHRoPTIwMCBo
ZWlnaHQ9MTUwKQorICAgICAgICAobm9uLXBhc3NpdmUKKyAgICAgICAgICAocmVjdCAoOCw4KSB3
aWR0aD0yNTAgaGVpZ2h0PTUwKQorICAgICAgICAgIChyZWN0ICg4LDU4KSB3aWR0aD0yMDAgaGVp
Z2h0PTE1MCkKKyAgICAgICAgKQorICAgICAgKQorICAgICAgKQorICAgICkKKyAgKQorKQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9tYWMvd2hlZWwtZXZlbnQtbGlz
dGVuZXItcmVnaW9uLWJhc2ljLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9tYWMv
d2hlZWwtZXZlbnQtbGlzdGVuZXItcmVnaW9uLWJhc2ljLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLmYzMmI0ZjI1Mzk2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbWFjL3doZWVsLWV2ZW50LWxpc3RlbmVyLXJlZ2lvbi1i
YXNpYy5odG1sCkBAIC0wLDAgKzEsNDQgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUg
XSAtLT4KKzxodG1sPgorPHN0eWxlPgorLmV2ZW50IHsKKyAgICBwb3NpdGlvbjpyZWxhdGl2ZTsK
KyAgICBiYWNrZ3JvdW5kLWNvbG9yOmJsdWU7CisgICAgd2lkdGg6MjAwcHg7CisgICAgaGVpZ2h0
OjIwMHB4OworfQorLmNoaWxkIHsKKyAgICBwb3NpdGlvbjpyZWxhdGl2ZTsKKyAgICBiYWNrZ3Jv
dW5kLWNvbG9yOmJsdWU7CisgICAgbGVmdDoyMDBweDsKKyAgICB3aWR0aDo1MHB4OworICAgIGhl
aWdodDo1MHB4OworfQorLm9mZnNldCB7CisgICAgbGVmdDogMjAwcHg7Cit9CisKKzwvc3R5bGU+
Cis8c2NyaXB0Pgord2luZG93Lm9ubG9hZCA9ICgpID0+IHsKKyAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisgICAgaWYgKHdpbmRv
dy5pbnRlcm5hbHMpCisgICAgICAgIHJlc3VsdHMuaW5uZXJUZXh0ID0gaW50ZXJuYWxzLmxheWVy
VHJlZUFzVGV4dChkb2N1bWVudCwgaW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5DTFVERVNfRVZFTlRf
UkVHSU9OIHwgaW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5DTFVERVNfUk9PVF9MQVlFUl9QUk9QRVJU
SUVTKTsKK30KKzwvc2NyaXB0PgorPGJvZHk+Cis8ZGl2IGNsYXNzPSJldmVudCIgb253aGVlbD0i
cmVzdWx0cy50ZXh0Q29udGVudCArPSAnd2hlZWxcbiciPgorICAgIDxkaXYgY2xhc3M9ImNoaWxk
Ij48L2Rpdj4KKzwvZGl2PgorPGRpdiBjbGFzcz0iZXZlbnQgb2Zmc2V0IiBpZD0icGFzc2l2ZSI+
CisgICAgPGRpdiBjbGFzcz0iY2hpbGQiPjwvZGl2PgorPC9kaXY+Cis8c2NyaXB0PgorcGFzc2l2
ZS5hZGRFdmVudExpc3RlbmVyKCd3aGVlbCcsICgpID0+IHsgcmVzdWx0cy50ZXh0Q29udGVudCAr
PSAncGFzc2l2ZSB3aGVlbFxuJyB9LCB7IHBhc3NpdmU6IHRydWUgfSk7Cis8L3NjcmlwdD4KKzxw
cmUgaWQ9InJlc3VsdHMiPjwvcHJlPgorPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NWI4NmFjMzYwZDguLjIzNWFhNmQ3MGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIw
MjAtMDUtMDYgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgorCisgICAgICAgIEFk
ZCBiYXNpYyBzdXBwb3J0IGZvciBnZW5lcmF0aW5nIGFjY3VyYXRlIHdoZWVsIGV2ZW50IGxpc3Rl
bmVyIHJlZ2lvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjExNTEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIGZha2UgcHJvcGVydGllcyBmb3Igd2hlZWwgZXZlbnQgbGlzdGVuZXJzIHRvIFJlbmRl
clN0eWxlIGFuZCB1c2UgdGhlbSB0bworICAgICAgICBnZW5lcmF0ZSByZWdpb25zIGluIEV2ZW50
UmVnaW9uLiBUaGVyZSBpcyBhIHNlcGFyYXRlIHJlZ2lvbiBmb3Igbm9uLXBhc3NpdmUKKyAgICAg
ICAgd2hlZWwgZXZlbnQgbGlzdGVuZXJzICh0aGF0IHdpbGwgcmVxdWlyZSBzeW5jaHJvbm91cyBo
YW5kbGluZykuCisKKyAgICAgICAgVGhlIGdlbmVyYXRlZCByZWdpb25zIGFyZSBub3QgdXNlZCBm
b3IgYW55dGhpbmcgaW4gdGhpcyBwYXRjaC4KKyAgICAgICAgVGhlIHN0eWxlIGlzIG5vdCB5ZXQg
aW52YWxpZGVkIG9uIGV2ZW50IGxpc3RlbmVyIGFkZGl0aW9ucyBhbmQgcmVtb3ZhbHMuCisKKyAg
ICAgICAgVGVzdDogZmFzdC9zY3JvbGxpbmcvbWFjL3doZWVsLWV2ZW50LWxpc3RlbmVyLXJlZ2lv
bi1iYXNpYy5odG1sCisKKyAgICAgICAgKiBkb20vTm9kZS5oOgorICAgICAgICAqIHJlbmRlcmlu
Zy9FdmVudFJlZ2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudFJlZ2lvbjo6dW5pdGUp
OgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRSZWdpb246OnVuaXRlRXZlbnRMaXN0ZW5lcnMpOgor
ICAgICAgICAoV2ViQ29yZTo6RXZlbnRSZWdpb246OmR1bXAgY29uc3QpOgorICAgICAgICAqIHJl
bmRlcmluZy9FdmVudFJlZ2lvbi5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJh
Y2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVF
dmVudFJlZ2lvbik6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6ZXZlbnRMaXN0ZW5lclJlZ2lvblR5cGVzIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpzZXRFdmVudExpc3RlbmVyUmVn
aW9uVHlwZXMpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50
cy5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZUluaGVyaXRlZERhdGE6OlN0eWxlUmFyZUlu
aGVyaXRlZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6
b3BlcmF0b3I9PSBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUlu
aGVyaXRlZERhdGEuaDoKKyAgICAgICAgKiBzdHlsZS9TdHlsZUFkanVzdGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlOjpjb21wdXRlRXZlbnRMaXN0ZW5lclJlZ2lvblR5cGVzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlOjpBZGp1c3Rlcjo6YWRqdXN0IGNvbnN0KToKKwogMjAyMC0w
NC0yOSAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KIAogICAgICAg
ICBbV2ViWFJdIEltcGxlbWVudCBpc1Nlc3Npb25TdXBwb3J0ZWQoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXgg
ZWFhYTM1OGM0ZWEuLjcyZjc5OWJhZTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTQ4Miw2ICs0ODIsNyBA
QCBwdWJsaWM6CiAgICAgYm9vbCBtX2Fkb3B0aW9uSXNSZXF1aXJlZCB7IHRydWUgfTsKICNlbmRp
ZgogCisgICAgdXNpbmcgRXZlbnRUYXJnZXQ6OmV2ZW50VGFyZ2V0RGF0YTsKICAgICBFdmVudFRh
cmdldERhdGEqIGV2ZW50VGFyZ2V0RGF0YSgpIGZpbmFsOwogICAgIEV2ZW50VGFyZ2V0RGF0YSog
ZXZlbnRUYXJnZXREYXRhQ29uY3VycmVudGx5KCkgZmluYWw7CiAgICAgRXZlbnRUYXJnZXREYXRh
JiBlbnN1cmVFdmVudFRhcmdldERhdGEoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9FdmVudFJlZ2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
RXZlbnRSZWdpb24uY3BwCmluZGV4IDM2MTcxM2VmOGRmLi4yNWIyNTJkZjc1MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V2ZW50UmVnaW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvRXZlbnRSZWdpb24uY3BwCkBAIC0xMTIsNiArMTEyLDcgQEAgdm9p
ZCBFdmVudFJlZ2lvbjo6dW5pdGUoY29uc3QgUmVnaW9uJiByZWdpb24sIGNvbnN0IFJlbmRlclN0
eWxlJiBzdHlsZSwgYm9vbCBvdmUKICAgICBtX3JlZ2lvbi51bml0ZShyZWdpb24pOwogCiAgICAg
dW5pdGVUb3VjaEFjdGlvbnMocmVnaW9uLCBzdHlsZS5lZmZlY3RpdmVUb3VjaEFjdGlvbnMoKSk7
CisgICAgdW5pdGVFdmVudExpc3RlbmVycyhyZWdpb24sIHN0eWxlLmV2ZW50TGlzdGVuZXJSZWdp
b25UeXBlcygpKTsKIAogI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCiAgICAgaWYgKG92ZXJy
aWRlVXNlck1vZGlmeUlzRWRpdGFibGUgfHwgc3R5bGUudXNlck1vZGlmeSgpICE9IFVzZXJNb2Rp
Znk6OlJlYWRPbmx5KQpAQCAtMjIwLDYgKzIyMSwxNCBAQCBPcHRpb25TZXQ8VG91Y2hBY3Rpb24+
IEV2ZW50UmVnaW9uOjp0b3VjaEFjdGlvbnNGb3JQb2ludChjb25zdCBJbnRQb2ludCYgcG9pbnQp
CiAgICAgcmV0dXJuIGFjdGlvbnM7CiB9CiAKK3ZvaWQgRXZlbnRSZWdpb246OnVuaXRlRXZlbnRM
aXN0ZW5lcnMoY29uc3QgUmVnaW9uJiByZWdpb24sIE9wdGlvblNldDxFdmVudExpc3RlbmVyUmVn
aW9uVHlwZT4gZXZlbnRMaXN0ZW5lclJlZ2lvblR5cGVzKQoreworICAgIGlmIChldmVudExpc3Rl
bmVyUmVnaW9uVHlwZXMuY29udGFpbnMoRXZlbnRMaXN0ZW5lclJlZ2lvblR5cGU6OldoZWVsKSkK
KyAgICAgICAgbV93aGVlbEV2ZW50TGlzdGVuZXJSZWdpb24udW5pdGUocmVnaW9uKTsKKyAgICBp
ZiAoZXZlbnRMaXN0ZW5lclJlZ2lvblR5cGVzLmNvbnRhaW5zKEV2ZW50TGlzdGVuZXJSZWdpb25U
eXBlOjpOb25QYXNzaXZlV2hlZWwpKQorICAgICAgICBtX25vblBhc3NpdmVXaGVlbEV2ZW50TGlz
dGVuZXJSZWdpb24udW5pdGUocmVnaW9uKTsKK30KKwogI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJ
T04pCiAKIGJvb2wgRXZlbnRSZWdpb246OmNvbnRhaW5zRWRpdGFibGVFbGVtZW50c0luUmVjdChj
b25zdCBJbnRSZWN0JiByZWN0KSBjb25zdApAQCAtMjQ3LDYgKzI1NiwxNiBAQCB2b2lkIEV2ZW50
UmVnaW9uOjpkdW1wKFRleHRTdHJlYW0mIHRzKSBjb25zdAogICAgICAgICB0cyA8PCBpbmRlbnQg
PDwgIilcbiI7CiAgICAgfQogCisgICAgaWYgKCFtX3doZWVsRXZlbnRMaXN0ZW5lclJlZ2lvbi5p
c0VtcHR5KCkpIHsKKyAgICAgICAgdHMgPDwgaW5kZW50IDw8ICIod2hlZWwgZXZlbnQgbGlzdGVu
ZXIgcmVnaW9uIiA8PCBtX3doZWVsRXZlbnRMaXN0ZW5lclJlZ2lvbjsKKyAgICAgICAgaWYgKCFt
X25vblBhc3NpdmVXaGVlbEV2ZW50TGlzdGVuZXJSZWdpb24uaXNFbXB0eSgpKSB7CisgICAgICAg
ICAgICBUZXh0U3RyZWFtOjpJbmRlbnRTY29wZSBpbmRlbnRTY29wZSh0cyk7CisgICAgICAgICAg
ICB0cyA8PCBpbmRlbnQgPDwgIihub24tcGFzc2l2ZSIgPDwgbV9ub25QYXNzaXZlV2hlZWxFdmVu
dExpc3RlbmVyUmVnaW9uOworICAgICAgICAgICAgdHMgPDwgaW5kZW50IDw8ICIpXG4iOworICAg
ICAgICB9CisgICAgICAgIHRzIDw8IGluZGVudCA8PCAiKVxuIjsKKyAgICB9CisKICNpZiBFTkFC
TEUoRURJVEFCTEVfUkVHSU9OKQogICAgIGlmICghbV9lZGl0YWJsZVJlZ2lvbi5pc0VtcHR5KCkp
IHsKICAgICAgICAgdHMgPDwgaW5kZW50IDw8ICIoZWRpdGFibGUgcmVnaW9uIiA8PCBtX2VkaXRh
YmxlUmVnaW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V2ZW50UmVn
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXZlbnRSZWdpb24uaAppbmRleCBmMzhm
YWQ3OTBlMi4uNjgxYmI4ZDhlYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9FdmVudFJlZ2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FdmVudFJlZ2lv
bi5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJBZmZpbmVUcmFuc2Zvcm0uaCIKICNp
bmNsdWRlICJSZWdpb24uaCIKKyNpbmNsdWRlICJSZW5kZXJTdHlsZUNvbnN0YW50cy5oIgogI2lu
Y2x1ZGUgIlRvdWNoQWN0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgogI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTc2LDcgKzc3LDYgQEAgcHVibGljOgogCiAgICAgYm9vbCBo
YXNUb3VjaEFjdGlvbnMoKSBjb25zdCB7IHJldHVybiAhbV90b3VjaEFjdGlvblJlZ2lvbnMuaXNF
bXB0eSgpOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgT3B0aW9uU2V0PFRvdWNoQWN0aW9uPiB0b3Vj
aEFjdGlvbnNGb3JQb2ludChjb25zdCBJbnRQb2ludCYpIGNvbnN0OwotCiAgICAgY29uc3QgUmVn
aW9uKiByZWdpb25Gb3JUb3VjaEFjdGlvbihUb3VjaEFjdGlvbikgY29uc3Q7CiAKICNpZiBFTkFC
TEUoRURJVEFCTEVfUkVHSU9OKQpAQCAtOTMsOSArOTMsMTIgQEAgcHVibGljOgogCiBwcml2YXRl
OgogICAgIHZvaWQgdW5pdGVUb3VjaEFjdGlvbnMoY29uc3QgUmVnaW9uJiwgT3B0aW9uU2V0PFRv
dWNoQWN0aW9uPik7CisgICAgdm9pZCB1bml0ZUV2ZW50TGlzdGVuZXJzKGNvbnN0IFJlZ2lvbiYs
IE9wdGlvblNldDxFdmVudExpc3RlbmVyUmVnaW9uVHlwZT4pOwogCiAgICAgUmVnaW9uIG1fcmVn
aW9uOwogICAgIFZlY3RvcjxSZWdpb24+IG1fdG91Y2hBY3Rpb25SZWdpb25zOworICAgIFJlZ2lv
biBtX3doZWVsRXZlbnRMaXN0ZW5lclJlZ2lvbjsKKyAgICBSZWdpb24gbV9ub25QYXNzaXZlV2hl
ZWxFdmVudExpc3RlbmVyUmVnaW9uOwogI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCiAgICAg
UmVnaW9uIG1fZWRpdGFibGVSZWdpb247CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5kZXggNTA2NDNiZWRlZGIuLjBkMmRiZTE5
ZTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5n
LmNwcApAQCAtMTY2Nyw2ICsxNjY3LDEwIEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRh
dGVFdmVudFJlZ2lvbigpCiAjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikKICAgICAgICAgaWYg
KHJlbmRlcmVyKCkuZG9jdW1lbnQoKS5tYXlIYXZlRWRpdGFibGVFbGVtZW50cygpKQogICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CisjZW5kaWYKKyNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAg
ICAgICAgaWYgKHJlbmRlcmVyKCkuZG9jdW1lbnQoKS53aGVlbEV2ZW50VGFyZ2V0cygpKQorICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKICAgICAgICAgaWYgKG1fb3duaW5nTGF5ZXIu
aXNSZW5kZXJWaWV3TGF5ZXIoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggZmQ4NGQxMzE5Nzgu
LjFkNDFiOTU2MzBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGUuaApAQCAtNjk0LDYgKzY5NCw3IEBAIHB1YmxpYzoKICAgICBPcHRpb25TZXQ8VG91Y2hB
Y3Rpb24+IHRvdWNoQWN0aW9ucygpIGNvbnN0IHsgcmV0dXJuIE9wdGlvblNldDxUb3VjaEFjdGlv
bj46OmZyb21SYXcobV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+dG91Y2hBY3Rpb25zKTsgfQogICAg
IC8vICd0b3VjaC1hY3Rpb24nIGJlaGF2aW9yIGRlcGVuZHMgb24gdmFsdWVzIGluIGFuY2VzdG9y
cy4gV2UgdXNlIGFuIGFkZGl0aW9uYWwgaW5oZXJpdGVkIHByb3BlcnR5IHRvIGltcGxlbWVudCB0
aGF0LgogICAgIE9wdGlvblNldDxUb3VjaEFjdGlvbj4gZWZmZWN0aXZlVG91Y2hBY3Rpb25zKCkg
Y29uc3QgeyByZXR1cm4gT3B0aW9uU2V0PFRvdWNoQWN0aW9uPjo6ZnJvbVJhdyhtX3JhcmVJbmhl
cml0ZWREYXRhLT5lZmZlY3RpdmVUb3VjaEFjdGlvbnMpOyB9CisgICAgT3B0aW9uU2V0PEV2ZW50
TGlzdGVuZXJSZWdpb25UeXBlPiBldmVudExpc3RlbmVyUmVnaW9uVHlwZXMoKSBjb25zdCB7IHJl
dHVybiBPcHRpb25TZXQ8RXZlbnRMaXN0ZW5lclJlZ2lvblR5cGU+Ojpmcm9tUmF3KG1fcmFyZUlu
aGVyaXRlZERhdGEtPmV2ZW50TGlzdGVuZXJSZWdpb25UeXBlcyk7IH0KIAogI2lmIEVOQUJMRShD
U1NfU0NST0xMX1NOQVApCiAgICAgLy8gU2Nyb2xsIHNuYXAgcG9ydCBzdHlsZS4KQEAgLTEyMjgs
NiArMTIyOSw3IEBAIHB1YmxpYzoKICAgICAKICAgICB2b2lkIHNldFRvdWNoQWN0aW9ucyhPcHRp
b25TZXQ8VG91Y2hBY3Rpb24+IHRvdWNoQWN0aW9ucykgeyBTRVRfVkFSKG1fcmFyZU5vbkluaGVy
aXRlZERhdGEsIHRvdWNoQWN0aW9ucywgdG91Y2hBY3Rpb25zLnRvUmF3KCkpOyB9CiAgICAgdm9p
ZCBzZXRFZmZlY3RpdmVUb3VjaEFjdGlvbnMoT3B0aW9uU2V0PFRvdWNoQWN0aW9uPiB0b3VjaEFj
dGlvbnMpIHsgU0VUX1ZBUihtX3JhcmVJbmhlcml0ZWREYXRhLCBlZmZlY3RpdmVUb3VjaEFjdGlv
bnMsIHRvdWNoQWN0aW9ucy50b1JhdygpKTsgfQorICAgIHZvaWQgc2V0RXZlbnRMaXN0ZW5lclJl
Z2lvblR5cGVzKE9wdGlvblNldDxFdmVudExpc3RlbmVyUmVnaW9uVHlwZT4gZXZlbnRMaXN0ZW5l
clR5cGVzKSB7IFNFVF9WQVIobV9yYXJlSW5oZXJpdGVkRGF0YSwgZXZlbnRMaXN0ZW5lclJlZ2lv
blR5cGVzLCBldmVudExpc3RlbmVyVHlwZXMudG9SYXcoKSk7IH0KIAogI2lmIEVOQUJMRShDU1Nf
U0NST0xMX1NOQVApCiAgICAgdm9pZCBzZXRTY3JvbGxTbmFwVHlwZShjb25zdCBTY3JvbGxTbmFw
VHlwZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlQ29uc3RhbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGVDb25zdGFudHMuaAppbmRleCA0YjQ0MmJiYzI2Ni4uOTA4ZTUxNjM0N2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50
cy5oCkBAIC0xMTgwLDYgKzExODAsMTEgQEAgZW51bSBjbGFzcyBGb250TG9hZGluZ0JlaGF2aW9y
IDogdWludDhfdCB7CiAgICAgT3B0aW9uYWwKIH07CiAKK2VudW0gY2xhc3MgRXZlbnRMaXN0ZW5l
clJlZ2lvblR5cGUgOiB1aW50OF90IHsKKyAgICBXaGVlbCAgICAgICAgICAgPSAxIDw8IDAsCisg
ICAgTm9uUGFzc2l2ZVdoZWVsID0gMSA8PCAxLAorfTsKKwogZXh0ZXJuIGNvbnN0IGZsb2F0IGRl
ZmF1bHRNaXRlckxpbWl0OwogCiBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0
U3RyZWFtJiwgQW5pbWF0aW9uRmlsbE1vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCmluZGV4IDJlYzVi
MGFhOTMxLi4zNzdjYzQwNjgyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcApAQCAtMTM0LDYgKzEzNCw3
IEBAIFN0eWxlUmFyZUluaGVyaXRlZERhdGE6OlN0eWxlUmFyZUluaGVyaXRlZERhdGEoKQogICAg
ICwgaGFzU2V0U3Ryb2tlV2lkdGgoZmFsc2UpCiAgICAgLCBoYXNTZXRTdHJva2VDb2xvcihmYWxz
ZSkKICAgICAsIGVmZmVjdGl2ZVRvdWNoQWN0aW9ucyhzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUmVu
ZGVyU3R5bGU6OmluaXRpYWxUb3VjaEFjdGlvbnMoKSkpCisgICAgLCBldmVudExpc3RlbmVyUmVn
aW9uVHlwZXMoMCkKICAgICAsIHN0cm9rZVdpZHRoKFJlbmRlclN0eWxlOjppbml0aWFsU3Ryb2tl
V2lkdGgoKSkKICAgICAsIHN0cm9rZUNvbG9yKFJlbmRlclN0eWxlOjppbml0aWFsU3Ryb2tlQ29s
b3IoKSkKICAgICAsIG1pdGVyTGltaXQoUmVuZGVyU3R5bGU6OmluaXRpYWxTdHJva2VNaXRlckxp
bWl0KCkpCkBAIC0yMjgsNiArMjI5LDcgQEAgaW5saW5lIFN0eWxlUmFyZUluaGVyaXRlZERhdGE6
OlN0eWxlUmFyZUluaGVyaXRlZERhdGEoY29uc3QgU3R5bGVSYXJlSW5oZXJpdGVkRGEKICAgICAs
IGhhc1NldFN0cm9rZVdpZHRoKG8uaGFzU2V0U3Ryb2tlV2lkdGgpCiAgICAgLCBoYXNTZXRTdHJv
a2VDb2xvcihvLmhhc1NldFN0cm9rZUNvbG9yKQogICAgICwgZWZmZWN0aXZlVG91Y2hBY3Rpb25z
KG8uZWZmZWN0aXZlVG91Y2hBY3Rpb25zKQorICAgICwgZXZlbnRMaXN0ZW5lclJlZ2lvblR5cGVz
KG8uZXZlbnRMaXN0ZW5lclJlZ2lvblR5cGVzKQogICAgICwgc3Ryb2tlV2lkdGgoby5zdHJva2VX
aWR0aCkKICAgICAsIHN0cm9rZUNvbG9yKG8uc3Ryb2tlQ29sb3IpCiAgICAgLCB2aXNpdGVkTGlu
a1N0cm9rZUNvbG9yKG8udmlzaXRlZExpbmtTdHJva2VDb2xvcikKQEAgLTM0OSw2ICszNTEsNyBA
QCBib29sIFN0eWxlUmFyZUluaGVyaXRlZERhdGE6Om9wZXJhdG9yPT0oY29uc3QgU3R5bGVSYXJl
SW5oZXJpdGVkRGF0YSYgbykgY29uc3QKICAgICAgICAgJiYgaGFzU2V0U3Ryb2tlV2lkdGggPT0g
by5oYXNTZXRTdHJva2VXaWR0aAogICAgICAgICAmJiBoYXNTZXRTdHJva2VDb2xvciA9PSBvLmhh
c1NldFN0cm9rZUNvbG9yCiAgICAgICAgICYmIGVmZmVjdGl2ZVRvdWNoQWN0aW9ucyA9PSBvLmVm
ZmVjdGl2ZVRvdWNoQWN0aW9ucworICAgICAgICAmJiBldmVudExpc3RlbmVyUmVnaW9uVHlwZXMg
PT0gby5ldmVudExpc3RlbmVyUmVnaW9uVHlwZXMKICAgICAgICAgJiYgc3Ryb2tlV2lkdGggPT0g
by5zdHJva2VXaWR0aAogICAgICAgICAmJiBzdHJva2VDb2xvciA9PSBvLnN0cm9rZUNvbG9yCiAg
ICAgICAgICYmIHZpc2l0ZWRMaW5rU3Ryb2tlQ29sb3IgPT0gby52aXNpdGVkTGlua1N0cm9rZUNv
bG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJl
SW5oZXJpdGVkRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFy
ZUluaGVyaXRlZERhdGEuaAppbmRleCBiZGZiNzliOTQwNS4uODA4ZTY1ZTZkMzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRh
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRl
ZERhdGEuaApAQCAtMTU1LDYgKzE1NSw3IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBoYXNTZXRT
dHJva2VDb2xvciA6IDE7CiAKICAgICB1bnNpZ25lZCBlZmZlY3RpdmVUb3VjaEFjdGlvbnMgOiA2
OyAvLyBPcHRpb25TZXQ8VG91Y2hBY3Rpb24+CisgICAgdW5zaWduZWQgZXZlbnRMaXN0ZW5lclJl
Z2lvblR5cGVzIDogMjsgLy8gT3B0aW9uU2V0PEV2ZW50TGlzdGVuZXJSZWdpb25UeXBlPgogCiAg
ICAgTGVuZ3RoIHN0cm9rZVdpZHRoOwogICAgIENvbG9yIHN0cm9rZUNvbG9yOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcAppbmRleCBmY2NmMmJhMTdiMC4uMGFjYmIwNmVhMDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3BwCkBAIC0zMyw2ICszMyw3IEBA
CiAjaW5jbHVkZSAiQW5pbWF0aW9uQmFzZS5oIgogI2luY2x1ZGUgIkNTU0ZvbnRTZWxlY3Rvci5o
IgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVk
ZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSFRNTERpdkVsZW1lbnQuaCIKICNpbmNsdWRlICJI
VE1MSW5wdXRFbGVtZW50LmgiCkBAIC0xOTIsNiArMTkzLDQyIEBAIHN0YXRpYyBPcHRpb25TZXQ8
VG91Y2hBY3Rpb24+IGNvbXB1dGVFZmZlY3RpdmVUb3VjaEFjdGlvbnMoY29uc3QgUmVuZGVyU3R5
bGUmIHN0CiAgICAgcmV0dXJuIHNoYXJlZFRvdWNoQWN0aW9uczsKIH0KIAorc3RhdGljIE9wdGlv
blNldDxFdmVudExpc3RlbmVyUmVnaW9uVHlwZT4gY29tcHV0ZUV2ZW50TGlzdGVuZXJSZWdpb25U
eXBlcyhjb25zdCBFbGVtZW50JiBlbGVtZW50LCBPcHRpb25TZXQ8RXZlbnRMaXN0ZW5lclJlZ2lv
blR5cGU+IHBhcmVudFR5cGVzKQoreworI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGlm
ICghZWxlbWVudC5oYXNFdmVudExpc3RlbmVycygpKQorICAgICAgICByZXR1cm4gcGFyZW50VHlw
ZXM7CisKKyAgICBhdXRvIHR5cGVzID0gcGFyZW50VHlwZXM7CisKKyAgICBhdXRvIGZpbmRMaXN0
ZW5lcnMgPSBbJl0oYXV0byBldmVudE5hbWUsIGF1dG8gdHlwZSwgYXV0byBub25QYXNzaXZlVHlw
ZSkgeworICAgICAgICBhdXRvKiBldmVudExpc3RlbmVyVmVjdG9yID0gZWxlbWVudC5ldmVudFRh
cmdldERhdGEoKS0+ZXZlbnRMaXN0ZW5lck1hcC5maW5kKGV2ZW50TmFtZSk7CisgICAgICAgIGlm
ICghZXZlbnRMaXN0ZW5lclZlY3RvcikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB0
eXBlcy5hZGQodHlwZSk7CisKKyAgICAgICAgYm9vbCBwYXNzaXZlT25seSA9IHRydWU7CisgICAg
ICAgIGZvciAoYXV0byYgbGlzdGVuZXIgOiAqZXZlbnRMaXN0ZW5lclZlY3RvcikgeworICAgICAg
ICAgICAgaWYgKCFsaXN0ZW5lci0+aXNQYXNzaXZlKCkpCisgICAgICAgICAgICAgICAgcGFzc2l2
ZU9ubHkgPSBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghcGFzc2l2ZU9ubHkpCisg
ICAgICAgICAgICB0eXBlcy5hZGQobm9uUGFzc2l2ZVR5cGUpOworICAgIH07CisKKyAgICBmaW5k
TGlzdGVuZXJzKGV2ZW50TmFtZXMoKS53aGVlbEV2ZW50LCBFdmVudExpc3RlbmVyUmVnaW9uVHlw
ZTo6V2hlZWwsIEV2ZW50TGlzdGVuZXJSZWdpb25UeXBlOjpOb25QYXNzaXZlV2hlZWwpOworICAg
IGZpbmRMaXN0ZW5lcnMoZXZlbnROYW1lcygpLm1vdXNld2hlZWxFdmVudCwgRXZlbnRMaXN0ZW5l
clJlZ2lvblR5cGU6OldoZWVsLCBFdmVudExpc3RlbmVyUmVnaW9uVHlwZTo6Tm9uUGFzc2l2ZVdo
ZWVsKTsKKworICAgIHJldHVybiB0eXBlczsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGVsZW1l
bnQpOworICAgIFVOVVNFRF9QQVJBTShwYXJlbnRUeXBlcyk7CisgICAgcmV0dXJuIHsgfTsKKyNl
bmRpZgorfQorCiB2b2lkIEFkanVzdGVyOjphZGp1c3QoUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25z
dCBSZW5kZXJTdHlsZSogdXNlckFnZW50QXBwZWFyYW5jZVN0eWxlKSBjb25zdAogewogICAgIC8v
IENhY2hlIG91ciBvcmlnaW5hbCBkaXNwbGF5LgpAQCAtNDM3LDYgKzQ3NCw5IEBAIHZvaWQgQWRq
dXN0ZXI6OmFkanVzdChSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlKiB1c2Vy
QWdlbnRBcHBlYXJhbmNlCiAKICAgICBzdHlsZS5zZXRFZmZlY3RpdmVUb3VjaEFjdGlvbnMoY29t
cHV0ZUVmZmVjdGl2ZVRvdWNoQWN0aW9ucyhzdHlsZSwgbV9wYXJlbnRTdHlsZS5lZmZlY3RpdmVU
b3VjaEFjdGlvbnMoKSkpOwogCisgICAgaWYgKG1fZWxlbWVudCkKKyAgICAgICAgc3R5bGUuc2V0
RXZlbnRMaXN0ZW5lclJlZ2lvblR5cGVzKGNvbXB1dGVFdmVudExpc3RlbmVyUmVnaW9uVHlwZXMo
Km1fZWxlbWVudCwgbV9wYXJlbnRTdHlsZS5ldmVudExpc3RlbmVyUmVnaW9uVHlwZXMoKSkpOwor
CiAjaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykKICAgICBpZiAobV9lbGVtZW50KQogICAgICAg
ICBhZGp1c3RGb3JUZXh0QXV0b3NpemluZyhzdHlsZSwgKm1fZWxlbWVudCk7Cg==
</data>
<flag name="review"
          id="414019"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398625</attachid>
            <date>2020-05-06 09:15:21 -0700</date>
            <delta_ts>2020-05-06 09:46:59 -0700</delta_ts>
            <desc>patch</desc>
            <filename>wheel-event-listener-region-3.patch</filename>
            <type>text/plain</type>
            <size>18276</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3YzExZDFiZWY2Yi4uMmRkNjQyOGRkNWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAyMC0wNS0wNiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAg
QWRkIGJhc2ljIHN1cHBvcnQgZm9yIGdlbmVyYXRpbmcgYWNjdXJhdGUgd2hlZWwgZXZlbnQgbGlz
dGVuZXIgcmVnaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTE1MTIKKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAg
ICAgKiBmYXN0L3Njcm9sbGluZy9tYWMvd2hlZWwtZXZlbnQtbGlzdGVuZXItcmVnaW9uLWJhc2lj
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvbWFjL3doZWVs
LWV2ZW50LWxpc3RlbmVyLXJlZ2lvbi1iYXNpYy5odG1sOiBBZGRlZC4KKwogMjAyMC0wNC0yOSAg
U2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBbV2Vi
WFJdIEltcGxlbWVudCBpc1Nlc3Npb25TdXBwb3J0ZWQoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvbWFjL3doZWVsLWV2ZW50LWxpc3RlbmVyLXJlZ2lvbi1iYXNpYy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9tYWMvd2hlZWwtZXZlbnQt
bGlzdGVuZXItcmVnaW9uLWJhc2ljLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uY2M3ZjI2NTljNTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Njcm9sbGluZy9tYWMvd2hlZWwtZXZlbnQtbGlzdGVuZXItcmVnaW9uLWJhc2lj
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI2IEBACisoR3JhcGhpY3NMYXllcgorICAoYW5jaG9y
IDAuMDAgMC4wMCkKKyAgKGJvdW5kcyA4MDAuMDAgNjAwLjAwKQorICAoY2hpbGRyZW4gMQorICAg
IChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDgwMC4wMCA2MDAuMDApCisgICAgICAoY29u
dGVudHNPcGFxdWUgMSkKKyAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgIChiYWNrZ3JvdW5k
Q29sb3IgI0ZGRkZGRikKKyAgICAgIChldmVudCByZWdpb24KKyAgICAgICAgKHJlY3QgKDAsMCkg
d2lkdGg9ODAwIGhlaWdodD02MDApCisgICAgICAod2hlZWwgZXZlbnQgbGlzdGVuZXIgcmVnaW9u
CisgICAgICAgIChyZWN0ICg4LDgpIHdpZHRoPTI1MCBoZWlnaHQ9NTApCisgICAgICAgIChyZWN0
ICg4LDU4KSB3aWR0aD0yMDAgaGVpZ2h0PTE1MCkKKyAgICAgICAgKHJlY3QgKDIwOCwyMDgpIHdp
ZHRoPTI1MCBoZWlnaHQ9NTApCisgICAgICAgIChyZWN0ICgyMDgsMjU4KSB3aWR0aD0yMDAgaGVp
Z2h0PTE1MCkKKyAgICAgICAgKG5vbi1wYXNzaXZlCisgICAgICAgICAgKHJlY3QgKDgsOCkgd2lk
dGg9MjUwIGhlaWdodD01MCkKKyAgICAgICAgICAocmVjdCAoOCw1OCkgd2lkdGg9MjAwIGhlaWdo
dD0xNTApCisgICAgICAgICkKKyAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbWFjL3doZWVsLWV2ZW50LWxpc3Rl
bmVyLXJlZ2lvbi1iYXNpYy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbWFjL3do
ZWVsLWV2ZW50LWxpc3RlbmVyLXJlZ2lvbi1iYXNpYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwLi5mMzJiNGYyNTM5NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL21hYy93aGVlbC1ldmVudC1saXN0ZW5lci1yZWdpb24tYmFz
aWMuaHRtbApAQCAtMCwwICsxLDQ0IEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0g
LS0+Cis8aHRtbD4KKzxzdHlsZT4KKy5ldmVudCB7CisgICAgcG9zaXRpb246cmVsYXRpdmU7Cisg
ICAgYmFja2dyb3VuZC1jb2xvcjpibHVlOworICAgIHdpZHRoOjIwMHB4OworICAgIGhlaWdodDoy
MDBweDsKK30KKy5jaGlsZCB7CisgICAgcG9zaXRpb246cmVsYXRpdmU7CisgICAgYmFja2dyb3Vu
ZC1jb2xvcjpibHVlOworICAgIGxlZnQ6MjAwcHg7CisgICAgd2lkdGg6NTBweDsKKyAgICBoZWln
aHQ6NTBweDsKK30KKy5vZmZzZXQgeworICAgIGxlZnQ6IDIwMHB4OworfQorCis8L3N0eWxlPgor
PHNjcmlwdD4KK3dpbmRvdy5vbmxvYWQgPSAoKSA9PiB7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworICAgIGlmICh3aW5kb3cu
aW50ZXJuYWxzKQorICAgICAgICByZXN1bHRzLmlubmVyVGV4dCA9IGludGVybmFscy5sYXllclRy
ZWVBc1RleHQoZG9jdW1lbnQsIGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX0VWRU5UX1JF
R0lPTiB8IGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX1JPT1RfTEFZRVJfUFJPUEVSVElF
Uyk7Cit9Cis8L3NjcmlwdD4KKzxib2R5PgorPGRpdiBjbGFzcz0iZXZlbnQiIG9ud2hlZWw9InJl
c3VsdHMudGV4dENvbnRlbnQgKz0gJ3doZWVsXG4nIj4KKyAgICA8ZGl2IGNsYXNzPSJjaGlsZCI+
PC9kaXY+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9ImV2ZW50IG9mZnNldCIgaWQ9InBhc3NpdmUiPgor
ICAgIDxkaXYgY2xhc3M9ImNoaWxkIj48L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4KK3Bhc3NpdmUu
YWRkRXZlbnRMaXN0ZW5lcignd2hlZWwnLCAoKSA9PiB7IHJlc3VsdHMudGV4dENvbnRlbnQgKz0g
J3Bhc3NpdmUgd2hlZWxcbicgfSwgeyBwYXNzaXZlOiB0cnVlIH0pOworPC9zY3JpcHQ+Cis8cHJl
IGlkPSJyZXN1bHRzIj48L3ByZT4KKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDVi
ODZhYzM2MGQ4Li5iNmE2OTIyMTI2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIw
LTA1LTA2ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQg
YmFzaWMgc3VwcG9ydCBmb3IgZ2VuZXJhdGluZyBhY2N1cmF0ZSB3aGVlbCBldmVudCBsaXN0ZW5l
ciByZWdpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxMTUxMgorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBB
ZGQgZmFrZSBwcm9wZXJ0aWVzIGZvciB3aGVlbCBldmVudCBsaXN0ZW5lcnMgdG8gUmVuZGVyU3R5
bGUgYW5kIHVzZSB0aGVtIHRvCisgICAgICAgIGdlbmVyYXRlIHJlZ2lvbnMgaW4gRXZlbnRSZWdp
b24uIFRoZXJlIGlzIGEgc2VwYXJhdGUgcmVnaW9uIGZvciBub24tcGFzc2l2ZQorICAgICAgICB3
aGVlbCBldmVudCBsaXN0ZW5lcnMgKHRoYXQgd2lsbCByZXF1aXJlIHN5bmNocm9ub3VzIGhhbmRs
aW5nKS4KKworICAgICAgICBUaGUgZ2VuZXJhdGVkIHJlZ2lvbnMgYXJlIG5vdCB1c2VkIGZvciBh
bnl0aGluZyBpbiB0aGlzIHBhdGNoLgorICAgICAgICBTdHlsZSBpcyBub3QgeWV0IGludmFsaWRl
ZCBvbiBldmVudCBsaXN0ZW5lciBhZGRpdGlvbnMgYW5kIHJlbW92YWxzLgorCisgICAgICAgIFRl
c3Q6IGZhc3Qvc2Nyb2xsaW5nL21hYy93aGVlbC1ldmVudC1saXN0ZW5lci1yZWdpb24tYmFzaWMu
aHRtbAorCisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvRXZlbnRS
ZWdpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRSZWdpb246OnVuaXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkV2ZW50UmVnaW9uOjp1bml0ZUV2ZW50TGlzdGVuZXJzKToKKyAgICAgICAg
KFdlYkNvcmU6OkV2ZW50UmVnaW9uOjpkdW1wIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcv
RXZlbnRSZWdpb24uaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlRXZlbnRSZWdp
b24pOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyU3R5bGU6OmV2ZW50TGlzdGVuZXJSZWdpb25UeXBlcyBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6c2V0RXZlbnRMaXN0ZW5lclJlZ2lvblR5cGVz
KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVJbmhlcml0ZWRE
YXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZUluaGVyaXRlZERhdGE6Om9wZXJhdG9y
PT0gY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWRE
YXRhLmg6CisgICAgICAgICogc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTdHlsZTo6Y29tcHV0ZUV2ZW50TGlzdGVuZXJSZWdpb25UeXBlcyk6CisgICAgICAgIChX
ZWJDb3JlOjpTdHlsZTo6QWRqdXN0ZXI6OmFkanVzdCBjb25zdCk6CisKIDIwMjAtMDQtMjkgIFNl
cmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dlYlhS
XSBJbXBsZW1lbnQgaXNTZXNzaW9uU3VwcG9ydGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IGVhYWEzNThj
NGVhLi43MmY3OTliYWU2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCkBAIC00ODIsNiArNDgyLDcgQEAgcHVibGlj
OgogICAgIGJvb2wgbV9hZG9wdGlvbklzUmVxdWlyZWQgeyB0cnVlIH07CiAjZW5kaWYKIAorICAg
IHVzaW5nIEV2ZW50VGFyZ2V0OjpldmVudFRhcmdldERhdGE7CiAgICAgRXZlbnRUYXJnZXREYXRh
KiBldmVudFRhcmdldERhdGEoKSBmaW5hbDsKICAgICBFdmVudFRhcmdldERhdGEqIGV2ZW50VGFy
Z2V0RGF0YUNvbmN1cnJlbnRseSgpIGZpbmFsOwogICAgIEV2ZW50VGFyZ2V0RGF0YSYgZW5zdXJl
RXZlbnRUYXJnZXREYXRhKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvRXZlbnRSZWdpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V2ZW50UmVn
aW9uLmNwcAppbmRleCAzNjE3MTNlZjhkZi4uMjViMjUyZGY3NTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9FdmVudFJlZ2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0V2ZW50UmVnaW9uLmNwcApAQCAtMTEyLDYgKzExMiw3IEBAIHZvaWQgRXZlbnRS
ZWdpb246OnVuaXRlKGNvbnN0IFJlZ2lvbiYgcmVnaW9uLCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5
bGUsIGJvb2wgb3ZlCiAgICAgbV9yZWdpb24udW5pdGUocmVnaW9uKTsKIAogICAgIHVuaXRlVG91
Y2hBY3Rpb25zKHJlZ2lvbiwgc3R5bGUuZWZmZWN0aXZlVG91Y2hBY3Rpb25zKCkpOworICAgIHVu
aXRlRXZlbnRMaXN0ZW5lcnMocmVnaW9uLCBzdHlsZS5ldmVudExpc3RlbmVyUmVnaW9uVHlwZXMo
KSk7CiAKICNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQogICAgIGlmIChvdmVycmlkZVVzZXJN
b2RpZnlJc0VkaXRhYmxlIHx8IHN0eWxlLnVzZXJNb2RpZnkoKSAhPSBVc2VyTW9kaWZ5OjpSZWFk
T25seSkKQEAgLTIyMCw2ICsyMjEsMTQgQEAgT3B0aW9uU2V0PFRvdWNoQWN0aW9uPiBFdmVudFJl
Z2lvbjo6dG91Y2hBY3Rpb25zRm9yUG9pbnQoY29uc3QgSW50UG9pbnQmIHBvaW50KQogICAgIHJl
dHVybiBhY3Rpb25zOwogfQogCit2b2lkIEV2ZW50UmVnaW9uOjp1bml0ZUV2ZW50TGlzdGVuZXJz
KGNvbnN0IFJlZ2lvbiYgcmVnaW9uLCBPcHRpb25TZXQ8RXZlbnRMaXN0ZW5lclJlZ2lvblR5cGU+
IGV2ZW50TGlzdGVuZXJSZWdpb25UeXBlcykKK3sKKyAgICBpZiAoZXZlbnRMaXN0ZW5lclJlZ2lv
blR5cGVzLmNvbnRhaW5zKEV2ZW50TGlzdGVuZXJSZWdpb25UeXBlOjpXaGVlbCkpCisgICAgICAg
IG1fd2hlZWxFdmVudExpc3RlbmVyUmVnaW9uLnVuaXRlKHJlZ2lvbik7CisgICAgaWYgKGV2ZW50
TGlzdGVuZXJSZWdpb25UeXBlcy5jb250YWlucyhFdmVudExpc3RlbmVyUmVnaW9uVHlwZTo6Tm9u
UGFzc2l2ZVdoZWVsKSkKKyAgICAgICAgbV9ub25QYXNzaXZlV2hlZWxFdmVudExpc3RlbmVyUmVn
aW9uLnVuaXRlKHJlZ2lvbik7Cit9CisKICNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQogCiBi
b29sIEV2ZW50UmVnaW9uOjpjb250YWluc0VkaXRhYmxlRWxlbWVudHNJblJlY3QoY29uc3QgSW50
UmVjdCYgcmVjdCkgY29uc3QKQEAgLTI0Nyw2ICsyNTYsMTYgQEAgdm9pZCBFdmVudFJlZ2lvbjo6
ZHVtcChUZXh0U3RyZWFtJiB0cykgY29uc3QKICAgICAgICAgdHMgPDwgaW5kZW50IDw8ICIpXG4i
OwogICAgIH0KIAorICAgIGlmICghbV93aGVlbEV2ZW50TGlzdGVuZXJSZWdpb24uaXNFbXB0eSgp
KSB7CisgICAgICAgIHRzIDw8IGluZGVudCA8PCAiKHdoZWVsIGV2ZW50IGxpc3RlbmVyIHJlZ2lv
biIgPDwgbV93aGVlbEV2ZW50TGlzdGVuZXJSZWdpb247CisgICAgICAgIGlmICghbV9ub25QYXNz
aXZlV2hlZWxFdmVudExpc3RlbmVyUmVnaW9uLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgVGV4
dFN0cmVhbTo6SW5kZW50U2NvcGUgaW5kZW50U2NvcGUodHMpOworICAgICAgICAgICAgdHMgPDwg
aW5kZW50IDw8ICIobm9uLXBhc3NpdmUiIDw8IG1fbm9uUGFzc2l2ZVdoZWVsRXZlbnRMaXN0ZW5l
clJlZ2lvbjsKKyAgICAgICAgICAgIHRzIDw8IGluZGVudCA8PCAiKVxuIjsKKyAgICAgICAgfQor
ICAgICAgICB0cyA8PCBpbmRlbnQgPDwgIilcbiI7CisgICAgfQorCiAjaWYgRU5BQkxFKEVESVRB
QkxFX1JFR0lPTikKICAgICBpZiAoIW1fZWRpdGFibGVSZWdpb24uaXNFbXB0eSgpKSB7CiAgICAg
ICAgIHRzIDw8IGluZGVudCA8PCAiKGVkaXRhYmxlIHJlZ2lvbiIgPDwgbV9lZGl0YWJsZVJlZ2lv
bjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FdmVudFJlZ2lvbi5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V2ZW50UmVnaW9uLmgKaW5kZXggZjM4ZmFkNzkwZTIu
LjY4MWJiOGQ4ZWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXZlbnRS
ZWdpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXZlbnRSZWdpb24uaApAQCAt
MjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiQWZmaW5lVHJhbnNmb3JtLmgiCiAjaW5jbHVkZSAi
UmVnaW9uLmgiCisjaW5jbHVkZSAiUmVuZGVyU3R5bGVDb25zdGFudHMuaCIKICNpbmNsdWRlICJU
b3VjaEFjdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9PcHRpb25TZXQuaD4KICNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CkBAIC03Niw3ICs3Nyw2IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaGFzVG91Y2hB
Y3Rpb25zKCkgY29uc3QgeyByZXR1cm4gIW1fdG91Y2hBY3Rpb25SZWdpb25zLmlzRW1wdHkoKTsg
fQogICAgIFdFQkNPUkVfRVhQT1JUIE9wdGlvblNldDxUb3VjaEFjdGlvbj4gdG91Y2hBY3Rpb25z
Rm9yUG9pbnQoY29uc3QgSW50UG9pbnQmKSBjb25zdDsKLQogICAgIGNvbnN0IFJlZ2lvbiogcmVn
aW9uRm9yVG91Y2hBY3Rpb24oVG91Y2hBY3Rpb24pIGNvbnN0OwogCiAjaWYgRU5BQkxFKEVESVRB
QkxFX1JFR0lPTikKQEAgLTkzLDkgKzkzLDEyIEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICB2
b2lkIHVuaXRlVG91Y2hBY3Rpb25zKGNvbnN0IFJlZ2lvbiYsIE9wdGlvblNldDxUb3VjaEFjdGlv
bj4pOworICAgIHZvaWQgdW5pdGVFdmVudExpc3RlbmVycyhjb25zdCBSZWdpb24mLCBPcHRpb25T
ZXQ8RXZlbnRMaXN0ZW5lclJlZ2lvblR5cGU+KTsKIAogICAgIFJlZ2lvbiBtX3JlZ2lvbjsKICAg
ICBWZWN0b3I8UmVnaW9uPiBtX3RvdWNoQWN0aW9uUmVnaW9uczsKKyAgICBSZWdpb24gbV93aGVl
bEV2ZW50TGlzdGVuZXJSZWdpb247CisgICAgUmVnaW9uIG1fbm9uUGFzc2l2ZVdoZWVsRXZlbnRM
aXN0ZW5lclJlZ2lvbjsKICNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQogICAgIFJlZ2lvbiBt
X2VkaXRhYmxlUmVnaW9uOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckJhY2tpbmcuY3BwCmluZGV4IDUwNjQzYmVkZWRiLi4wZDJkYmUxOWUwYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAg
LTE2NjcsNiArMTY2NywxMCBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlRXZlbnRS
ZWdpb24oKQogI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCiAgICAgICAgIGlmIChyZW5kZXJl
cigpLmRvY3VtZW50KCkubWF5SGF2ZUVkaXRhYmxlRWxlbWVudHMoKSkKICAgICAgICAgICAgIHJl
dHVybiB0cnVlOworI2VuZGlmCisjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgICAgIGlm
IChyZW5kZXJlcigpLmRvY3VtZW50KCkud2hlZWxFdmVudFRhcmdldHMoKSkKKyAgICAgICAgICAg
IHJldHVybiB0cnVlOwogI2VuZGlmCiAgICAgICAgIGlmIChtX293bmluZ0xheWVyLmlzUmVuZGVy
Vmlld0xheWVyKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IGZkODRkMTMxOTc4Li5iMWEzYjEz
YmRkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgK
QEAgLTY5MSw5ICs2OTEsMTAgQEAgcHVibGljOgogICAgIGludCBpbml0aWFsTGV0dGVyRHJvcCgp
IGNvbnN0IHsgcmV0dXJuIGluaXRpYWxMZXR0ZXIoKS53aWR0aCgpOyB9CiAgICAgaW50IGluaXRp
YWxMZXR0ZXJIZWlnaHQoKSBjb25zdCB7IHJldHVybiBpbml0aWFsTGV0dGVyKCkuaGVpZ2h0KCk7
IH0KIAotICAgIE9wdGlvblNldDxUb3VjaEFjdGlvbj4gdG91Y2hBY3Rpb25zKCkgY29uc3QgeyBy
ZXR1cm4gT3B0aW9uU2V0PFRvdWNoQWN0aW9uPjo6ZnJvbVJhdyhtX3JhcmVOb25Jbmhlcml0ZWRE
YXRhLT50b3VjaEFjdGlvbnMpOyB9CisgICAgT3B0aW9uU2V0PFRvdWNoQWN0aW9uPiB0b3VjaEFj
dGlvbnMoKSBjb25zdCB7IHJldHVybiBtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT50b3VjaEFjdGlv
bnM7IH0KICAgICAvLyAndG91Y2gtYWN0aW9uJyBiZWhhdmlvciBkZXBlbmRzIG9uIHZhbHVlcyBp
biBhbmNlc3RvcnMuIFdlIHVzZSBhbiBhZGRpdGlvbmFsIGluaGVyaXRlZCBwcm9wZXJ0eSB0byBp
bXBsZW1lbnQgdGhhdC4KLSAgICBPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IGVmZmVjdGl2ZVRvdWNo
QWN0aW9ucygpIGNvbnN0IHsgcmV0dXJuIE9wdGlvblNldDxUb3VjaEFjdGlvbj46OmZyb21SYXco
bV9yYXJlSW5oZXJpdGVkRGF0YS0+ZWZmZWN0aXZlVG91Y2hBY3Rpb25zKTsgfQorICAgIE9wdGlv
blNldDxUb3VjaEFjdGlvbj4gZWZmZWN0aXZlVG91Y2hBY3Rpb25zKCkgY29uc3QgeyByZXR1cm4g
bV9yYXJlSW5oZXJpdGVkRGF0YS0+ZWZmZWN0aXZlVG91Y2hBY3Rpb25zOyB9CisgICAgT3B0aW9u
U2V0PEV2ZW50TGlzdGVuZXJSZWdpb25UeXBlPiBldmVudExpc3RlbmVyUmVnaW9uVHlwZXMoKSBj
b25zdCB7IHJldHVybiBtX3JhcmVJbmhlcml0ZWREYXRhLT5ldmVudExpc3RlbmVyUmVnaW9uVHlw
ZXM7IH0KIAogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCiAgICAgLy8gU2Nyb2xsIHNuYXAg
cG9ydCBzdHlsZS4KQEAgLTEyMjYsOCArMTIyNyw5IEBAIHB1YmxpYzoKICAgICAKICAgICB2b2lk
IHNldEluaXRpYWxMZXR0ZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSkgeyBTRVRfVkFSKG1fcmFyZU5v
bkluaGVyaXRlZERhdGEsIGluaXRpYWxMZXR0ZXIsIHNpemUpOyB9CiAgICAgCi0gICAgdm9pZCBz
ZXRUb3VjaEFjdGlvbnMoT3B0aW9uU2V0PFRvdWNoQWN0aW9uPiB0b3VjaEFjdGlvbnMpIHsgU0VU
X1ZBUihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLCB0b3VjaEFjdGlvbnMsIHRvdWNoQWN0aW9ucy50
b1JhdygpKTsgfQotICAgIHZvaWQgc2V0RWZmZWN0aXZlVG91Y2hBY3Rpb25zKE9wdGlvblNldDxU
b3VjaEFjdGlvbj4gdG91Y2hBY3Rpb25zKSB7IFNFVF9WQVIobV9yYXJlSW5oZXJpdGVkRGF0YSwg
ZWZmZWN0aXZlVG91Y2hBY3Rpb25zLCB0b3VjaEFjdGlvbnMudG9SYXcoKSk7IH0KKyAgICB2b2lk
IHNldFRvdWNoQWN0aW9ucyhPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IHRvdWNoQWN0aW9ucykgeyBT
RVRfVkFSKG1fcmFyZU5vbkluaGVyaXRlZERhdGEsIHRvdWNoQWN0aW9ucywgdG91Y2hBY3Rpb25z
KTsgfQorICAgIHZvaWQgc2V0RWZmZWN0aXZlVG91Y2hBY3Rpb25zKE9wdGlvblNldDxUb3VjaEFj
dGlvbj4gdG91Y2hBY3Rpb25zKSB7IFNFVF9WQVIobV9yYXJlSW5oZXJpdGVkRGF0YSwgZWZmZWN0
aXZlVG91Y2hBY3Rpb25zLCB0b3VjaEFjdGlvbnMpOyB9CisgICAgdm9pZCBzZXRFdmVudExpc3Rl
bmVyUmVnaW9uVHlwZXMoT3B0aW9uU2V0PEV2ZW50TGlzdGVuZXJSZWdpb25UeXBlPiBldmVudExp
c3RlbmVyVHlwZXMpIHsgU0VUX1ZBUihtX3JhcmVJbmhlcml0ZWREYXRhLCBldmVudExpc3RlbmVy
UmVnaW9uVHlwZXMsIGV2ZW50TGlzdGVuZXJUeXBlcyk7IH0KIAogI2lmIEVOQUJMRShDU1NfU0NS
T0xMX1NOQVApCiAgICAgdm9pZCBzZXRTY3JvbGxTbmFwVHlwZShjb25zdCBTY3JvbGxTbmFwVHlw
ZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlQ29uc3RhbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGVDb25zdGFudHMuaAppbmRleCA0YjQ0MmJiYzI2Ni4uOTA4ZTUxNjM0N2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5o
CkBAIC0xMTgwLDYgKzExODAsMTEgQEAgZW51bSBjbGFzcyBGb250TG9hZGluZ0JlaGF2aW9yIDog
dWludDhfdCB7CiAgICAgT3B0aW9uYWwKIH07CiAKK2VudW0gY2xhc3MgRXZlbnRMaXN0ZW5lclJl
Z2lvblR5cGUgOiB1aW50OF90IHsKKyAgICBXaGVlbCAgICAgICAgICAgPSAxIDw8IDAsCisgICAg
Tm9uUGFzc2l2ZVdoZWVsID0gMSA8PCAxLAorfTsKKwogZXh0ZXJuIGNvbnN0IGZsb2F0IGRlZmF1
bHRNaXRlckxpbWl0OwogCiBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3Ry
ZWFtJiwgQW5pbWF0aW9uRmlsbE1vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCmluZGV4IDJlYzViMGFh
OTMxLi5kM2I1ZmNmN2MyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcApAQCAtMTMzLDcgKzEzMyw3IEBA
IFN0eWxlUmFyZUluaGVyaXRlZERhdGE6OlN0eWxlUmFyZUluaGVyaXRlZERhdGEoKQogICAgICwg
am9pblN0eWxlKFJlbmRlclN0eWxlOjppbml0aWFsSm9pblN0eWxlKCkpCiAgICAgLCBoYXNTZXRT
dHJva2VXaWR0aChmYWxzZSkKICAgICAsIGhhc1NldFN0cm9rZUNvbG9yKGZhbHNlKQotICAgICwg
ZWZmZWN0aXZlVG91Y2hBY3Rpb25zKHN0YXRpY19jYXN0PHVuc2lnbmVkPihSZW5kZXJTdHlsZTo6
aW5pdGlhbFRvdWNoQWN0aW9ucygpKSkKKyAgICAsIGVmZmVjdGl2ZVRvdWNoQWN0aW9ucyhSZW5k
ZXJTdHlsZTo6aW5pdGlhbFRvdWNoQWN0aW9ucygpKQogICAgICwgc3Ryb2tlV2lkdGgoUmVuZGVy
U3R5bGU6OmluaXRpYWxTdHJva2VXaWR0aCgpKQogICAgICwgc3Ryb2tlQ29sb3IoUmVuZGVyU3R5
bGU6OmluaXRpYWxTdHJva2VDb2xvcigpKQogICAgICwgbWl0ZXJMaW1pdChSZW5kZXJTdHlsZTo6
aW5pdGlhbFN0cm9rZU1pdGVyTGltaXQoKSkKQEAgLTIyOCw2ICsyMjgsNyBAQCBpbmxpbmUgU3R5
bGVSYXJlSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YShjb25zdCBTdHlsZVJh
cmVJbmhlcml0ZWREYQogICAgICwgaGFzU2V0U3Ryb2tlV2lkdGgoby5oYXNTZXRTdHJva2VXaWR0
aCkKICAgICAsIGhhc1NldFN0cm9rZUNvbG9yKG8uaGFzU2V0U3Ryb2tlQ29sb3IpCiAgICAgLCBl
ZmZlY3RpdmVUb3VjaEFjdGlvbnMoby5lZmZlY3RpdmVUb3VjaEFjdGlvbnMpCisgICAgLCBldmVu
dExpc3RlbmVyUmVnaW9uVHlwZXMoby5ldmVudExpc3RlbmVyUmVnaW9uVHlwZXMpCiAgICAgLCBz
dHJva2VXaWR0aChvLnN0cm9rZVdpZHRoKQogICAgICwgc3Ryb2tlQ29sb3Ioby5zdHJva2VDb2xv
cikKICAgICAsIHZpc2l0ZWRMaW5rU3Ryb2tlQ29sb3Ioby52aXNpdGVkTGlua1N0cm9rZUNvbG9y
KQpAQCAtMzQ5LDYgKzM1MCw3IEBAIGJvb2wgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6b3BlcmF0
b3I9PShjb25zdCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhJiBvKSBjb25zdAogICAgICAgICAmJiBo
YXNTZXRTdHJva2VXaWR0aCA9PSBvLmhhc1NldFN0cm9rZVdpZHRoCiAgICAgICAgICYmIGhhc1Nl
dFN0cm9rZUNvbG9yID09IG8uaGFzU2V0U3Ryb2tlQ29sb3IKICAgICAgICAgJiYgZWZmZWN0aXZl
VG91Y2hBY3Rpb25zID09IG8uZWZmZWN0aXZlVG91Y2hBY3Rpb25zCisgICAgICAgICYmIGV2ZW50
TGlzdGVuZXJSZWdpb25UeXBlcyA9PSBvLmV2ZW50TGlzdGVuZXJSZWdpb25UeXBlcwogICAgICAg
ICAmJiBzdHJva2VXaWR0aCA9PSBvLnN0cm9rZVdpZHRoCiAgICAgICAgICYmIHN0cm9rZUNvbG9y
ID09IG8uc3Ryb2tlQ29sb3IKICAgICAgICAgJiYgdmlzaXRlZExpbmtTdHJva2VDb2xvciA9PSBv
LnZpc2l0ZWRMaW5rU3Ryb2tlQ29sb3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oCmluZGV4IGJkZmI3OWI5NDA1Li5m
ZDBlODQ0ODJjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlUmFyZUluaGVyaXRlZERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAi
VGFiU2l6ZS5oIgogI2luY2x1ZGUgIlRleHREZWNvcmF0aW9uVGhpY2tuZXNzLmgiCiAjaW5jbHVk
ZSAiVGV4dFVuZGVybGluZU9mZnNldC5oIgorI2luY2x1ZGUgIlRvdWNoQWN0aW9uLmgiCiAjaW5j
bHVkZSA8d3RmL0RhdGFSZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmcuaD4KQEAgLTE1NCw3ICsxNTUsOCBAQCBwdWJsaWM6CiAg
ICAgdW5zaWduZWQgaGFzU2V0U3Ryb2tlV2lkdGggOiAxOwogICAgIHVuc2lnbmVkIGhhc1NldFN0
cm9rZUNvbG9yIDogMTsKIAotICAgIHVuc2lnbmVkIGVmZmVjdGl2ZVRvdWNoQWN0aW9ucyA6IDY7
IC8vIE9wdGlvblNldDxUb3VjaEFjdGlvbj4KKyAgICBPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IGVm
ZmVjdGl2ZVRvdWNoQWN0aW9uczsKKyAgICBPcHRpb25TZXQ8RXZlbnRMaXN0ZW5lclJlZ2lvblR5
cGU+IGV2ZW50TGlzdGVuZXJSZWdpb25UeXBlczsKIAogICAgIExlbmd0aCBzdHJva2VXaWR0aDsK
ICAgICBDb2xvciBzdHJva2VDb2xvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAppbmRleCAyNDQ1
ZTQ0Njg3Zi4uNmVmNDBjYWQxNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTgxLDcg
KzgxLDcgQEAgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVk
RGF0YSgpCiAgICAgLCBqdXN0aWZ5SXRlbXMoUmVuZGVyU3R5bGU6OmluaXRpYWxKdXN0aWZ5SXRl
bXMoKSkKICAgICAsIGp1c3RpZnlTZWxmKFJlbmRlclN0eWxlOjppbml0aWFsU2VsZkFsaWdubWVu
dCgpKQogICAgICwgY3VzdG9tUHJvcGVydGllcyhTdHlsZUN1c3RvbVByb3BlcnR5RGF0YTo6Y3Jl
YXRlKCkpCi0gICAgLCB0b3VjaEFjdGlvbnMoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFJlbmRlclN0
eWxlOjppbml0aWFsVG91Y2hBY3Rpb25zKCkpKQorICAgICwgdG91Y2hBY3Rpb25zKFJlbmRlclN0
eWxlOjppbml0aWFsVG91Y2hBY3Rpb25zKCkpCiAgICAgLCBwYWdlU2l6ZVR5cGUoUEFHRV9TSVpF
X0FVVE8pCiAgICAgLCB0cmFuc2Zvcm1TdHlsZTNEKHN0YXRpY19jYXN0PHVuc2lnbmVkPihSZW5k
ZXJTdHlsZTo6aW5pdGlhbFRyYW5zZm9ybVN0eWxlM0QoKSkpCiAgICAgLCBiYWNrZmFjZVZpc2li
aWxpdHkoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFJlbmRlclN0eWxlOjppbml0aWFsQmFja2ZhY2VW
aXNpYmlsaXR5KCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKaW5kZXggZDUyOWZhMGQ5ZjUuLmVkYmNl
MzA2MTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVS
YXJlTm9uSW5oZXJpdGVkRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKQEAgLTE3Myw3ICsxNzMsNyBAQCBwdWJsaWM6
CiAgICAgRGF0YVJlZjxTdHlsZUN1c3RvbVByb3BlcnR5RGF0YT4gY3VzdG9tUHJvcGVydGllczsK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8SGFzaFNldDxTdHJpbmc+PiBjdXN0b21QYWludFdhdGNoZWRQ
cm9wZXJ0aWVzOwogCi0gICAgdW5zaWduZWQgdG91Y2hBY3Rpb25zIDogNjsgLy8gVG91Y2hBY3Rp
b24KKyAgICBPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IHRvdWNoQWN0aW9uczsKIAogICAgIHVuc2ln
bmVkIHBhZ2VTaXplVHlwZSA6IDI7IC8vIFBhZ2VTaXplVHlwZQogICAgIHVuc2lnbmVkIHRyYW5z
Zm9ybVN0eWxlM0QgOiAxOyAvLyBUcmFuc2Zvcm1TdHlsZTNECmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0
eWxlQWRqdXN0ZXIuY3BwCmluZGV4IGZjY2YyYmExN2IwLi4wYWNiYjA2ZWEwMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRl
ICJBbmltYXRpb25CYXNlLmgiCiAjaW5jbHVkZSAiQ1NTRm9udFNlbGVjdG9yLmgiCiAjaW5jbHVk
ZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJGcmFtZVZp
ZXcuaCIKICNpbmNsdWRlICJIVE1MRGl2RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVs
ZW1lbnQuaCIKQEAgLTE5Miw2ICsxOTMsNDIgQEAgc3RhdGljIE9wdGlvblNldDxUb3VjaEFjdGlv
bj4gY29tcHV0ZUVmZmVjdGl2ZVRvdWNoQWN0aW9ucyhjb25zdCBSZW5kZXJTdHlsZSYgc3QKICAg
ICByZXR1cm4gc2hhcmVkVG91Y2hBY3Rpb25zOwogfQogCitzdGF0aWMgT3B0aW9uU2V0PEV2ZW50
TGlzdGVuZXJSZWdpb25UeXBlPiBjb21wdXRlRXZlbnRMaXN0ZW5lclJlZ2lvblR5cGVzKGNvbnN0
IEVsZW1lbnQmIGVsZW1lbnQsIE9wdGlvblNldDxFdmVudExpc3RlbmVyUmVnaW9uVHlwZT4gcGFy
ZW50VHlwZXMpCit7CisjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgaWYgKCFlbGVtZW50
Lmhhc0V2ZW50TGlzdGVuZXJzKCkpCisgICAgICAgIHJldHVybiBwYXJlbnRUeXBlczsKKworICAg
IGF1dG8gdHlwZXMgPSBwYXJlbnRUeXBlczsKKworICAgIGF1dG8gZmluZExpc3RlbmVycyA9IFsm
XShhdXRvIGV2ZW50TmFtZSwgYXV0byB0eXBlLCBhdXRvIG5vblBhc3NpdmVUeXBlKSB7CisgICAg
ICAgIGF1dG8qIGV2ZW50TGlzdGVuZXJWZWN0b3IgPSBlbGVtZW50LmV2ZW50VGFyZ2V0RGF0YSgp
LT5ldmVudExpc3RlbmVyTWFwLmZpbmQoZXZlbnROYW1lKTsKKyAgICAgICAgaWYgKCFldmVudExp
c3RlbmVyVmVjdG9yKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHR5cGVzLmFkZCh0
eXBlKTsKKworICAgICAgICBib29sIHBhc3NpdmVPbmx5ID0gdHJ1ZTsKKyAgICAgICAgZm9yIChh
dXRvJiBsaXN0ZW5lciA6ICpldmVudExpc3RlbmVyVmVjdG9yKSB7CisgICAgICAgICAgICBpZiAo
IWxpc3RlbmVyLT5pc1Bhc3NpdmUoKSkKKyAgICAgICAgICAgICAgICBwYXNzaXZlT25seSA9IGZh
bHNlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFwYXNzaXZlT25seSkKKyAgICAgICAgICAg
IHR5cGVzLmFkZChub25QYXNzaXZlVHlwZSk7CisgICAgfTsKKworICAgIGZpbmRMaXN0ZW5lcnMo
ZXZlbnROYW1lcygpLndoZWVsRXZlbnQsIEV2ZW50TGlzdGVuZXJSZWdpb25UeXBlOjpXaGVlbCwg
RXZlbnRMaXN0ZW5lclJlZ2lvblR5cGU6Ok5vblBhc3NpdmVXaGVlbCk7CisgICAgZmluZExpc3Rl
bmVycyhldmVudE5hbWVzKCkubW91c2V3aGVlbEV2ZW50LCBFdmVudExpc3RlbmVyUmVnaW9uVHlw
ZTo6V2hlZWwsIEV2ZW50TGlzdGVuZXJSZWdpb25UeXBlOjpOb25QYXNzaXZlV2hlZWwpOworCisg
ICAgcmV0dXJuIHR5cGVzOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZWxlbWVudCk7CisgICAg
VU5VU0VEX1BBUkFNKHBhcmVudFR5cGVzKTsKKyAgICByZXR1cm4geyB9OworI2VuZGlmCit9CisK
IHZvaWQgQWRqdXN0ZXI6OmFkanVzdChSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IFJlbmRlclN0
eWxlKiB1c2VyQWdlbnRBcHBlYXJhbmNlU3R5bGUpIGNvbnN0CiB7CiAgICAgLy8gQ2FjaGUgb3Vy
IG9yaWdpbmFsIGRpc3BsYXkuCkBAIC00MzcsNiArNDc0LDkgQEAgdm9pZCBBZGp1c3Rlcjo6YWRq
dXN0KFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUqIHVzZXJBZ2VudEFwcGVh
cmFuY2UKIAogICAgIHN0eWxlLnNldEVmZmVjdGl2ZVRvdWNoQWN0aW9ucyhjb21wdXRlRWZmZWN0
aXZlVG91Y2hBY3Rpb25zKHN0eWxlLCBtX3BhcmVudFN0eWxlLmVmZmVjdGl2ZVRvdWNoQWN0aW9u
cygpKSk7CiAKKyAgICBpZiAobV9lbGVtZW50KQorICAgICAgICBzdHlsZS5zZXRFdmVudExpc3Rl
bmVyUmVnaW9uVHlwZXMoY29tcHV0ZUV2ZW50TGlzdGVuZXJSZWdpb25UeXBlcygqbV9lbGVtZW50
LCBtX3BhcmVudFN0eWxlLmV2ZW50TGlzdGVuZXJSZWdpb25UeXBlcygpKSk7CisKICNpZiBFTkFC
TEUoVEVYVF9BVVRPU0laSU5HKQogICAgIGlmIChtX2VsZW1lbnQpCiAgICAgICAgIGFkanVzdEZv
clRleHRBdXRvc2l6aW5nKHN0eWxlLCAqbV9lbGVtZW50KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398629</attachid>
            <date>2020-05-06 09:46:59 -0700</date>
            <delta_ts>2020-05-07 02:52:24 -0700</delta_ts>
            <desc>patch</desc>
            <filename>wheel-event-listener-region-4.patch</filename>
            <type>text/plain</type>
            <size>18330</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3YzExZDFiZWY2Yi4uMmRkNjQyOGRkNWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAyMC0wNS0wNiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAg
QWRkIGJhc2ljIHN1cHBvcnQgZm9yIGdlbmVyYXRpbmcgYWNjdXJhdGUgd2hlZWwgZXZlbnQgbGlz
dGVuZXIgcmVnaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTE1MTIKKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAg
ICAgKiBmYXN0L3Njcm9sbGluZy9tYWMvd2hlZWwtZXZlbnQtbGlzdGVuZXItcmVnaW9uLWJhc2lj
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvbWFjL3doZWVs
LWV2ZW50LWxpc3RlbmVyLXJlZ2lvbi1iYXNpYy5odG1sOiBBZGRlZC4KKwogMjAyMC0wNC0yOSAg
U2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBbV2Vi
WFJdIEltcGxlbWVudCBpc1Nlc3Npb25TdXBwb3J0ZWQoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvbWFjL3doZWVsLWV2ZW50LWxpc3RlbmVyLXJlZ2lvbi1iYXNpYy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9tYWMvd2hlZWwtZXZlbnQt
bGlzdGVuZXItcmVnaW9uLWJhc2ljLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uY2M3ZjI2NTljNTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Njcm9sbGluZy9tYWMvd2hlZWwtZXZlbnQtbGlzdGVuZXItcmVnaW9uLWJhc2lj
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI2IEBACisoR3JhcGhpY3NMYXllcgorICAoYW5jaG9y
IDAuMDAgMC4wMCkKKyAgKGJvdW5kcyA4MDAuMDAgNjAwLjAwKQorICAoY2hpbGRyZW4gMQorICAg
IChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDgwMC4wMCA2MDAuMDApCisgICAgICAoY29u
dGVudHNPcGFxdWUgMSkKKyAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgIChiYWNrZ3JvdW5k
Q29sb3IgI0ZGRkZGRikKKyAgICAgIChldmVudCByZWdpb24KKyAgICAgICAgKHJlY3QgKDAsMCkg
d2lkdGg9ODAwIGhlaWdodD02MDApCisgICAgICAod2hlZWwgZXZlbnQgbGlzdGVuZXIgcmVnaW9u
CisgICAgICAgIChyZWN0ICg4LDgpIHdpZHRoPTI1MCBoZWlnaHQ9NTApCisgICAgICAgIChyZWN0
ICg4LDU4KSB3aWR0aD0yMDAgaGVpZ2h0PTE1MCkKKyAgICAgICAgKHJlY3QgKDIwOCwyMDgpIHdp
ZHRoPTI1MCBoZWlnaHQ9NTApCisgICAgICAgIChyZWN0ICgyMDgsMjU4KSB3aWR0aD0yMDAgaGVp
Z2h0PTE1MCkKKyAgICAgICAgKG5vbi1wYXNzaXZlCisgICAgICAgICAgKHJlY3QgKDgsOCkgd2lk
dGg9MjUwIGhlaWdodD01MCkKKyAgICAgICAgICAocmVjdCAoOCw1OCkgd2lkdGg9MjAwIGhlaWdo
dD0xNTApCisgICAgICAgICkKKyAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbWFjL3doZWVsLWV2ZW50LWxpc3Rl
bmVyLXJlZ2lvbi1iYXNpYy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbWFjL3do
ZWVsLWV2ZW50LWxpc3RlbmVyLXJlZ2lvbi1iYXNpYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwLi5mMzJiNGYyNTM5NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL21hYy93aGVlbC1ldmVudC1saXN0ZW5lci1yZWdpb24tYmFz
aWMuaHRtbApAQCAtMCwwICsxLDQ0IEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0g
LS0+Cis8aHRtbD4KKzxzdHlsZT4KKy5ldmVudCB7CisgICAgcG9zaXRpb246cmVsYXRpdmU7Cisg
ICAgYmFja2dyb3VuZC1jb2xvcjpibHVlOworICAgIHdpZHRoOjIwMHB4OworICAgIGhlaWdodDoy
MDBweDsKK30KKy5jaGlsZCB7CisgICAgcG9zaXRpb246cmVsYXRpdmU7CisgICAgYmFja2dyb3Vu
ZC1jb2xvcjpibHVlOworICAgIGxlZnQ6MjAwcHg7CisgICAgd2lkdGg6NTBweDsKKyAgICBoZWln
aHQ6NTBweDsKK30KKy5vZmZzZXQgeworICAgIGxlZnQ6IDIwMHB4OworfQorCis8L3N0eWxlPgor
PHNjcmlwdD4KK3dpbmRvdy5vbmxvYWQgPSAoKSA9PiB7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworICAgIGlmICh3aW5kb3cu
aW50ZXJuYWxzKQorICAgICAgICByZXN1bHRzLmlubmVyVGV4dCA9IGludGVybmFscy5sYXllclRy
ZWVBc1RleHQoZG9jdW1lbnQsIGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX0VWRU5UX1JF
R0lPTiB8IGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX1JPT1RfTEFZRVJfUFJPUEVSVElF
Uyk7Cit9Cis8L3NjcmlwdD4KKzxib2R5PgorPGRpdiBjbGFzcz0iZXZlbnQiIG9ud2hlZWw9InJl
c3VsdHMudGV4dENvbnRlbnQgKz0gJ3doZWVsXG4nIj4KKyAgICA8ZGl2IGNsYXNzPSJjaGlsZCI+
PC9kaXY+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9ImV2ZW50IG9mZnNldCIgaWQ9InBhc3NpdmUiPgor
ICAgIDxkaXYgY2xhc3M9ImNoaWxkIj48L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4KK3Bhc3NpdmUu
YWRkRXZlbnRMaXN0ZW5lcignd2hlZWwnLCAoKSA9PiB7IHJlc3VsdHMudGV4dENvbnRlbnQgKz0g
J3Bhc3NpdmUgd2hlZWxcbicgfSwgeyBwYXNzaXZlOiB0cnVlIH0pOworPC9zY3JpcHQ+Cis8cHJl
IGlkPSJyZXN1bHRzIj48L3ByZT4KKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDVi
ODZhYzM2MGQ4Li5iNmE2OTIyMTI2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIw
LTA1LTA2ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQg
YmFzaWMgc3VwcG9ydCBmb3IgZ2VuZXJhdGluZyBhY2N1cmF0ZSB3aGVlbCBldmVudCBsaXN0ZW5l
ciByZWdpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxMTUxMgorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBB
ZGQgZmFrZSBwcm9wZXJ0aWVzIGZvciB3aGVlbCBldmVudCBsaXN0ZW5lcnMgdG8gUmVuZGVyU3R5
bGUgYW5kIHVzZSB0aGVtIHRvCisgICAgICAgIGdlbmVyYXRlIHJlZ2lvbnMgaW4gRXZlbnRSZWdp
b24uIFRoZXJlIGlzIGEgc2VwYXJhdGUgcmVnaW9uIGZvciBub24tcGFzc2l2ZQorICAgICAgICB3
aGVlbCBldmVudCBsaXN0ZW5lcnMgKHRoYXQgd2lsbCByZXF1aXJlIHN5bmNocm9ub3VzIGhhbmRs
aW5nKS4KKworICAgICAgICBUaGUgZ2VuZXJhdGVkIHJlZ2lvbnMgYXJlIG5vdCB1c2VkIGZvciBh
bnl0aGluZyBpbiB0aGlzIHBhdGNoLgorICAgICAgICBTdHlsZSBpcyBub3QgeWV0IGludmFsaWRl
ZCBvbiBldmVudCBsaXN0ZW5lciBhZGRpdGlvbnMgYW5kIHJlbW92YWxzLgorCisgICAgICAgIFRl
c3Q6IGZhc3Qvc2Nyb2xsaW5nL21hYy93aGVlbC1ldmVudC1saXN0ZW5lci1yZWdpb24tYmFzaWMu
aHRtbAorCisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvRXZlbnRS
ZWdpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRSZWdpb246OnVuaXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkV2ZW50UmVnaW9uOjp1bml0ZUV2ZW50TGlzdGVuZXJzKToKKyAgICAgICAg
KFdlYkNvcmU6OkV2ZW50UmVnaW9uOjpkdW1wIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcv
RXZlbnRSZWdpb24uaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlRXZlbnRSZWdp
b24pOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyU3R5bGU6OmV2ZW50TGlzdGVuZXJSZWdpb25UeXBlcyBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6c2V0RXZlbnRMaXN0ZW5lclJlZ2lvblR5cGVz
KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVJbmhlcml0ZWRE
YXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZUluaGVyaXRlZERhdGE6Om9wZXJhdG9y
PT0gY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWRE
YXRhLmg6CisgICAgICAgICogc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTdHlsZTo6Y29tcHV0ZUV2ZW50TGlzdGVuZXJSZWdpb25UeXBlcyk6CisgICAgICAgIChX
ZWJDb3JlOjpTdHlsZTo6QWRqdXN0ZXI6OmFkanVzdCBjb25zdCk6CisKIDIwMjAtMDQtMjkgIFNl
cmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dlYlhS
XSBJbXBsZW1lbnQgaXNTZXNzaW9uU3VwcG9ydGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IGVhYWEzNThj
NGVhLi43MmY3OTliYWU2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCkBAIC00ODIsNiArNDgyLDcgQEAgcHVibGlj
OgogICAgIGJvb2wgbV9hZG9wdGlvbklzUmVxdWlyZWQgeyB0cnVlIH07CiAjZW5kaWYKIAorICAg
IHVzaW5nIEV2ZW50VGFyZ2V0OjpldmVudFRhcmdldERhdGE7CiAgICAgRXZlbnRUYXJnZXREYXRh
KiBldmVudFRhcmdldERhdGEoKSBmaW5hbDsKICAgICBFdmVudFRhcmdldERhdGEqIGV2ZW50VGFy
Z2V0RGF0YUNvbmN1cnJlbnRseSgpIGZpbmFsOwogICAgIEV2ZW50VGFyZ2V0RGF0YSYgZW5zdXJl
RXZlbnRUYXJnZXREYXRhKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvRXZlbnRSZWdpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V2ZW50UmVn
aW9uLmNwcAppbmRleCAzNjE3MTNlZjhkZi4uMjViMjUyZGY3NTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9FdmVudFJlZ2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0V2ZW50UmVnaW9uLmNwcApAQCAtMTEyLDYgKzExMiw3IEBAIHZvaWQgRXZlbnRS
ZWdpb246OnVuaXRlKGNvbnN0IFJlZ2lvbiYgcmVnaW9uLCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5
bGUsIGJvb2wgb3ZlCiAgICAgbV9yZWdpb24udW5pdGUocmVnaW9uKTsKIAogICAgIHVuaXRlVG91
Y2hBY3Rpb25zKHJlZ2lvbiwgc3R5bGUuZWZmZWN0aXZlVG91Y2hBY3Rpb25zKCkpOworICAgIHVu
aXRlRXZlbnRMaXN0ZW5lcnMocmVnaW9uLCBzdHlsZS5ldmVudExpc3RlbmVyUmVnaW9uVHlwZXMo
KSk7CiAKICNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQogICAgIGlmIChvdmVycmlkZVVzZXJN
b2RpZnlJc0VkaXRhYmxlIHx8IHN0eWxlLnVzZXJNb2RpZnkoKSAhPSBVc2VyTW9kaWZ5OjpSZWFk
T25seSkKQEAgLTIyMCw2ICsyMjEsMTQgQEAgT3B0aW9uU2V0PFRvdWNoQWN0aW9uPiBFdmVudFJl
Z2lvbjo6dG91Y2hBY3Rpb25zRm9yUG9pbnQoY29uc3QgSW50UG9pbnQmIHBvaW50KQogICAgIHJl
dHVybiBhY3Rpb25zOwogfQogCit2b2lkIEV2ZW50UmVnaW9uOjp1bml0ZUV2ZW50TGlzdGVuZXJz
KGNvbnN0IFJlZ2lvbiYgcmVnaW9uLCBPcHRpb25TZXQ8RXZlbnRMaXN0ZW5lclJlZ2lvblR5cGU+
IGV2ZW50TGlzdGVuZXJSZWdpb25UeXBlcykKK3sKKyAgICBpZiAoZXZlbnRMaXN0ZW5lclJlZ2lv
blR5cGVzLmNvbnRhaW5zKEV2ZW50TGlzdGVuZXJSZWdpb25UeXBlOjpXaGVlbCkpCisgICAgICAg
IG1fd2hlZWxFdmVudExpc3RlbmVyUmVnaW9uLnVuaXRlKHJlZ2lvbik7CisgICAgaWYgKGV2ZW50
TGlzdGVuZXJSZWdpb25UeXBlcy5jb250YWlucyhFdmVudExpc3RlbmVyUmVnaW9uVHlwZTo6Tm9u
UGFzc2l2ZVdoZWVsKSkKKyAgICAgICAgbV9ub25QYXNzaXZlV2hlZWxFdmVudExpc3RlbmVyUmVn
aW9uLnVuaXRlKHJlZ2lvbik7Cit9CisKICNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQogCiBi
b29sIEV2ZW50UmVnaW9uOjpjb250YWluc0VkaXRhYmxlRWxlbWVudHNJblJlY3QoY29uc3QgSW50
UmVjdCYgcmVjdCkgY29uc3QKQEAgLTI0Nyw2ICsyNTYsMTYgQEAgdm9pZCBFdmVudFJlZ2lvbjo6
ZHVtcChUZXh0U3RyZWFtJiB0cykgY29uc3QKICAgICAgICAgdHMgPDwgaW5kZW50IDw8ICIpXG4i
OwogICAgIH0KIAorICAgIGlmICghbV93aGVlbEV2ZW50TGlzdGVuZXJSZWdpb24uaXNFbXB0eSgp
KSB7CisgICAgICAgIHRzIDw8IGluZGVudCA8PCAiKHdoZWVsIGV2ZW50IGxpc3RlbmVyIHJlZ2lv
biIgPDwgbV93aGVlbEV2ZW50TGlzdGVuZXJSZWdpb247CisgICAgICAgIGlmICghbV9ub25QYXNz
aXZlV2hlZWxFdmVudExpc3RlbmVyUmVnaW9uLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgVGV4
dFN0cmVhbTo6SW5kZW50U2NvcGUgaW5kZW50U2NvcGUodHMpOworICAgICAgICAgICAgdHMgPDwg
aW5kZW50IDw8ICIobm9uLXBhc3NpdmUiIDw8IG1fbm9uUGFzc2l2ZVdoZWVsRXZlbnRMaXN0ZW5l
clJlZ2lvbjsKKyAgICAgICAgICAgIHRzIDw8IGluZGVudCA8PCAiKVxuIjsKKyAgICAgICAgfQor
ICAgICAgICB0cyA8PCBpbmRlbnQgPDwgIilcbiI7CisgICAgfQorCiAjaWYgRU5BQkxFKEVESVRB
QkxFX1JFR0lPTikKICAgICBpZiAoIW1fZWRpdGFibGVSZWdpb24uaXNFbXB0eSgpKSB7CiAgICAg
ICAgIHRzIDw8IGluZGVudCA8PCAiKGVkaXRhYmxlIHJlZ2lvbiIgPDwgbV9lZGl0YWJsZVJlZ2lv
bjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FdmVudFJlZ2lvbi5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V2ZW50UmVnaW9uLmgKaW5kZXggZjM4ZmFkNzkwZTIu
LjY4MWJiOGQ4ZWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXZlbnRS
ZWdpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXZlbnRSZWdpb24uaApAQCAt
MjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiQWZmaW5lVHJhbnNmb3JtLmgiCiAjaW5jbHVkZSAi
UmVnaW9uLmgiCisjaW5jbHVkZSAiUmVuZGVyU3R5bGVDb25zdGFudHMuaCIKICNpbmNsdWRlICJU
b3VjaEFjdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9PcHRpb25TZXQuaD4KICNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CkBAIC03Niw3ICs3Nyw2IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaGFzVG91Y2hB
Y3Rpb25zKCkgY29uc3QgeyByZXR1cm4gIW1fdG91Y2hBY3Rpb25SZWdpb25zLmlzRW1wdHkoKTsg
fQogICAgIFdFQkNPUkVfRVhQT1JUIE9wdGlvblNldDxUb3VjaEFjdGlvbj4gdG91Y2hBY3Rpb25z
Rm9yUG9pbnQoY29uc3QgSW50UG9pbnQmKSBjb25zdDsKLQogICAgIGNvbnN0IFJlZ2lvbiogcmVn
aW9uRm9yVG91Y2hBY3Rpb24oVG91Y2hBY3Rpb24pIGNvbnN0OwogCiAjaWYgRU5BQkxFKEVESVRB
QkxFX1JFR0lPTikKQEAgLTkzLDkgKzkzLDEyIEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICB2
b2lkIHVuaXRlVG91Y2hBY3Rpb25zKGNvbnN0IFJlZ2lvbiYsIE9wdGlvblNldDxUb3VjaEFjdGlv
bj4pOworICAgIHZvaWQgdW5pdGVFdmVudExpc3RlbmVycyhjb25zdCBSZWdpb24mLCBPcHRpb25T
ZXQ8RXZlbnRMaXN0ZW5lclJlZ2lvblR5cGU+KTsKIAogICAgIFJlZ2lvbiBtX3JlZ2lvbjsKICAg
ICBWZWN0b3I8UmVnaW9uPiBtX3RvdWNoQWN0aW9uUmVnaW9uczsKKyAgICBSZWdpb24gbV93aGVl
bEV2ZW50TGlzdGVuZXJSZWdpb247CisgICAgUmVnaW9uIG1fbm9uUGFzc2l2ZVdoZWVsRXZlbnRM
aXN0ZW5lclJlZ2lvbjsKICNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQogICAgIFJlZ2lvbiBt
X2VkaXRhYmxlUmVnaW9uOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckJhY2tpbmcuY3BwCmluZGV4IDUwNjQzYmVkZWRiLi4wZDJkYmUxOWUwYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAg
LTE2NjcsNiArMTY2NywxMCBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlRXZlbnRS
ZWdpb24oKQogI2lmIEVOQUJMRShFRElUQUJMRV9SRUdJT04pCiAgICAgICAgIGlmIChyZW5kZXJl
cigpLmRvY3VtZW50KCkubWF5SGF2ZUVkaXRhYmxlRWxlbWVudHMoKSkKICAgICAgICAgICAgIHJl
dHVybiB0cnVlOworI2VuZGlmCisjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgICAgIGlm
IChyZW5kZXJlcigpLmRvY3VtZW50KCkud2hlZWxFdmVudFRhcmdldHMoKSkKKyAgICAgICAgICAg
IHJldHVybiB0cnVlOwogI2VuZGlmCiAgICAgICAgIGlmIChtX293bmluZ0xheWVyLmlzUmVuZGVy
Vmlld0xheWVyKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IGZkODRkMTMxOTc4Li5iMWEzYjEz
YmRkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgK
QEAgLTY5MSw5ICs2OTEsMTAgQEAgcHVibGljOgogICAgIGludCBpbml0aWFsTGV0dGVyRHJvcCgp
IGNvbnN0IHsgcmV0dXJuIGluaXRpYWxMZXR0ZXIoKS53aWR0aCgpOyB9CiAgICAgaW50IGluaXRp
YWxMZXR0ZXJIZWlnaHQoKSBjb25zdCB7IHJldHVybiBpbml0aWFsTGV0dGVyKCkuaGVpZ2h0KCk7
IH0KIAotICAgIE9wdGlvblNldDxUb3VjaEFjdGlvbj4gdG91Y2hBY3Rpb25zKCkgY29uc3QgeyBy
ZXR1cm4gT3B0aW9uU2V0PFRvdWNoQWN0aW9uPjo6ZnJvbVJhdyhtX3JhcmVOb25Jbmhlcml0ZWRE
YXRhLT50b3VjaEFjdGlvbnMpOyB9CisgICAgT3B0aW9uU2V0PFRvdWNoQWN0aW9uPiB0b3VjaEFj
dGlvbnMoKSBjb25zdCB7IHJldHVybiBtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT50b3VjaEFjdGlv
bnM7IH0KICAgICAvLyAndG91Y2gtYWN0aW9uJyBiZWhhdmlvciBkZXBlbmRzIG9uIHZhbHVlcyBp
biBhbmNlc3RvcnMuIFdlIHVzZSBhbiBhZGRpdGlvbmFsIGluaGVyaXRlZCBwcm9wZXJ0eSB0byBp
bXBsZW1lbnQgdGhhdC4KLSAgICBPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IGVmZmVjdGl2ZVRvdWNo
QWN0aW9ucygpIGNvbnN0IHsgcmV0dXJuIE9wdGlvblNldDxUb3VjaEFjdGlvbj46OmZyb21SYXco
bV9yYXJlSW5oZXJpdGVkRGF0YS0+ZWZmZWN0aXZlVG91Y2hBY3Rpb25zKTsgfQorICAgIE9wdGlv
blNldDxUb3VjaEFjdGlvbj4gZWZmZWN0aXZlVG91Y2hBY3Rpb25zKCkgY29uc3QgeyByZXR1cm4g
bV9yYXJlSW5oZXJpdGVkRGF0YS0+ZWZmZWN0aXZlVG91Y2hBY3Rpb25zOyB9CisgICAgT3B0aW9u
U2V0PEV2ZW50TGlzdGVuZXJSZWdpb25UeXBlPiBldmVudExpc3RlbmVyUmVnaW9uVHlwZXMoKSBj
b25zdCB7IHJldHVybiBtX3JhcmVJbmhlcml0ZWREYXRhLT5ldmVudExpc3RlbmVyUmVnaW9uVHlw
ZXM7IH0KIAogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCiAgICAgLy8gU2Nyb2xsIHNuYXAg
cG9ydCBzdHlsZS4KQEAgLTEyMjYsOCArMTIyNyw5IEBAIHB1YmxpYzoKICAgICAKICAgICB2b2lk
IHNldEluaXRpYWxMZXR0ZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSkgeyBTRVRfVkFSKG1fcmFyZU5v
bkluaGVyaXRlZERhdGEsIGluaXRpYWxMZXR0ZXIsIHNpemUpOyB9CiAgICAgCi0gICAgdm9pZCBz
ZXRUb3VjaEFjdGlvbnMoT3B0aW9uU2V0PFRvdWNoQWN0aW9uPiB0b3VjaEFjdGlvbnMpIHsgU0VU
X1ZBUihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLCB0b3VjaEFjdGlvbnMsIHRvdWNoQWN0aW9ucy50
b1JhdygpKTsgfQotICAgIHZvaWQgc2V0RWZmZWN0aXZlVG91Y2hBY3Rpb25zKE9wdGlvblNldDxU
b3VjaEFjdGlvbj4gdG91Y2hBY3Rpb25zKSB7IFNFVF9WQVIobV9yYXJlSW5oZXJpdGVkRGF0YSwg
ZWZmZWN0aXZlVG91Y2hBY3Rpb25zLCB0b3VjaEFjdGlvbnMudG9SYXcoKSk7IH0KKyAgICB2b2lk
IHNldFRvdWNoQWN0aW9ucyhPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IHRvdWNoQWN0aW9ucykgeyBT
RVRfVkFSKG1fcmFyZU5vbkluaGVyaXRlZERhdGEsIHRvdWNoQWN0aW9ucywgdG91Y2hBY3Rpb25z
KTsgfQorICAgIHZvaWQgc2V0RWZmZWN0aXZlVG91Y2hBY3Rpb25zKE9wdGlvblNldDxUb3VjaEFj
dGlvbj4gdG91Y2hBY3Rpb25zKSB7IFNFVF9WQVIobV9yYXJlSW5oZXJpdGVkRGF0YSwgZWZmZWN0
aXZlVG91Y2hBY3Rpb25zLCB0b3VjaEFjdGlvbnMpOyB9CisgICAgdm9pZCBzZXRFdmVudExpc3Rl
bmVyUmVnaW9uVHlwZXMoT3B0aW9uU2V0PEV2ZW50TGlzdGVuZXJSZWdpb25UeXBlPiBldmVudExp
c3RlbmVyVHlwZXMpIHsgU0VUX1ZBUihtX3JhcmVJbmhlcml0ZWREYXRhLCBldmVudExpc3RlbmVy
UmVnaW9uVHlwZXMsIGV2ZW50TGlzdGVuZXJUeXBlcyk7IH0KIAogI2lmIEVOQUJMRShDU1NfU0NS
T0xMX1NOQVApCiAgICAgdm9pZCBzZXRTY3JvbGxTbmFwVHlwZShjb25zdCBTY3JvbGxTbmFwVHlw
ZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlQ29uc3RhbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGVDb25zdGFudHMuaAppbmRleCA0YjQ0MmJiYzI2Ni4uOTA4ZTUxNjM0N2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5o
CkBAIC0xMTgwLDYgKzExODAsMTEgQEAgZW51bSBjbGFzcyBGb250TG9hZGluZ0JlaGF2aW9yIDog
dWludDhfdCB7CiAgICAgT3B0aW9uYWwKIH07CiAKK2VudW0gY2xhc3MgRXZlbnRMaXN0ZW5lclJl
Z2lvblR5cGUgOiB1aW50OF90IHsKKyAgICBXaGVlbCAgICAgICAgICAgPSAxIDw8IDAsCisgICAg
Tm9uUGFzc2l2ZVdoZWVsID0gMSA8PCAxLAorfTsKKwogZXh0ZXJuIGNvbnN0IGZsb2F0IGRlZmF1
bHRNaXRlckxpbWl0OwogCiBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3Ry
ZWFtJiwgQW5pbWF0aW9uRmlsbE1vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCmluZGV4IDJlYzViMGFh
OTMxLi5kM2I1ZmNmN2MyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcApAQCAtMTMzLDcgKzEzMyw3IEBA
IFN0eWxlUmFyZUluaGVyaXRlZERhdGE6OlN0eWxlUmFyZUluaGVyaXRlZERhdGEoKQogICAgICwg
am9pblN0eWxlKFJlbmRlclN0eWxlOjppbml0aWFsSm9pblN0eWxlKCkpCiAgICAgLCBoYXNTZXRT
dHJva2VXaWR0aChmYWxzZSkKICAgICAsIGhhc1NldFN0cm9rZUNvbG9yKGZhbHNlKQotICAgICwg
ZWZmZWN0aXZlVG91Y2hBY3Rpb25zKHN0YXRpY19jYXN0PHVuc2lnbmVkPihSZW5kZXJTdHlsZTo6
aW5pdGlhbFRvdWNoQWN0aW9ucygpKSkKKyAgICAsIGVmZmVjdGl2ZVRvdWNoQWN0aW9ucyhSZW5k
ZXJTdHlsZTo6aW5pdGlhbFRvdWNoQWN0aW9ucygpKQogICAgICwgc3Ryb2tlV2lkdGgoUmVuZGVy
U3R5bGU6OmluaXRpYWxTdHJva2VXaWR0aCgpKQogICAgICwgc3Ryb2tlQ29sb3IoUmVuZGVyU3R5
bGU6OmluaXRpYWxTdHJva2VDb2xvcigpKQogICAgICwgbWl0ZXJMaW1pdChSZW5kZXJTdHlsZTo6
aW5pdGlhbFN0cm9rZU1pdGVyTGltaXQoKSkKQEAgLTIyOCw2ICsyMjgsNyBAQCBpbmxpbmUgU3R5
bGVSYXJlSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YShjb25zdCBTdHlsZVJh
cmVJbmhlcml0ZWREYQogICAgICwgaGFzU2V0U3Ryb2tlV2lkdGgoby5oYXNTZXRTdHJva2VXaWR0
aCkKICAgICAsIGhhc1NldFN0cm9rZUNvbG9yKG8uaGFzU2V0U3Ryb2tlQ29sb3IpCiAgICAgLCBl
ZmZlY3RpdmVUb3VjaEFjdGlvbnMoby5lZmZlY3RpdmVUb3VjaEFjdGlvbnMpCisgICAgLCBldmVu
dExpc3RlbmVyUmVnaW9uVHlwZXMoby5ldmVudExpc3RlbmVyUmVnaW9uVHlwZXMpCiAgICAgLCBz
dHJva2VXaWR0aChvLnN0cm9rZVdpZHRoKQogICAgICwgc3Ryb2tlQ29sb3Ioby5zdHJva2VDb2xv
cikKICAgICAsIHZpc2l0ZWRMaW5rU3Ryb2tlQ29sb3Ioby52aXNpdGVkTGlua1N0cm9rZUNvbG9y
KQpAQCAtMzQ5LDYgKzM1MCw3IEBAIGJvb2wgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6b3BlcmF0
b3I9PShjb25zdCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhJiBvKSBjb25zdAogICAgICAgICAmJiBo
YXNTZXRTdHJva2VXaWR0aCA9PSBvLmhhc1NldFN0cm9rZVdpZHRoCiAgICAgICAgICYmIGhhc1Nl
dFN0cm9rZUNvbG9yID09IG8uaGFzU2V0U3Ryb2tlQ29sb3IKICAgICAgICAgJiYgZWZmZWN0aXZl
VG91Y2hBY3Rpb25zID09IG8uZWZmZWN0aXZlVG91Y2hBY3Rpb25zCisgICAgICAgICYmIGV2ZW50
TGlzdGVuZXJSZWdpb25UeXBlcyA9PSBvLmV2ZW50TGlzdGVuZXJSZWdpb25UeXBlcwogICAgICAg
ICAmJiBzdHJva2VXaWR0aCA9PSBvLnN0cm9rZVdpZHRoCiAgICAgICAgICYmIHN0cm9rZUNvbG9y
ID09IG8uc3Ryb2tlQ29sb3IKICAgICAgICAgJiYgdmlzaXRlZExpbmtTdHJva2VDb2xvciA9PSBv
LnZpc2l0ZWRMaW5rU3Ryb2tlQ29sb3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oCmluZGV4IGJkZmI3OWI5NDA1Li5m
ZDBlODQ0ODJjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlUmFyZUluaGVyaXRlZERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAi
VGFiU2l6ZS5oIgogI2luY2x1ZGUgIlRleHREZWNvcmF0aW9uVGhpY2tuZXNzLmgiCiAjaW5jbHVk
ZSAiVGV4dFVuZGVybGluZU9mZnNldC5oIgorI2luY2x1ZGUgIlRvdWNoQWN0aW9uLmgiCiAjaW5j
bHVkZSA8d3RmL0RhdGFSZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmcuaD4KQEAgLTE1NCw3ICsxNTUsOCBAQCBwdWJsaWM6CiAg
ICAgdW5zaWduZWQgaGFzU2V0U3Ryb2tlV2lkdGggOiAxOwogICAgIHVuc2lnbmVkIGhhc1NldFN0
cm9rZUNvbG9yIDogMTsKIAotICAgIHVuc2lnbmVkIGVmZmVjdGl2ZVRvdWNoQWN0aW9ucyA6IDY7
IC8vIE9wdGlvblNldDxUb3VjaEFjdGlvbj4KKyAgICBPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IGVm
ZmVjdGl2ZVRvdWNoQWN0aW9uczsKKyAgICBPcHRpb25TZXQ8RXZlbnRMaXN0ZW5lclJlZ2lvblR5
cGU+IGV2ZW50TGlzdGVuZXJSZWdpb25UeXBlczsKIAogICAgIExlbmd0aCBzdHJva2VXaWR0aDsK
ICAgICBDb2xvciBzdHJva2VDb2xvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAppbmRleCAyNDQ1
ZTQ0Njg3Zi4uNmVmNDBjYWQxNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTgxLDcg
KzgxLDcgQEAgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVk
RGF0YSgpCiAgICAgLCBqdXN0aWZ5SXRlbXMoUmVuZGVyU3R5bGU6OmluaXRpYWxKdXN0aWZ5SXRl
bXMoKSkKICAgICAsIGp1c3RpZnlTZWxmKFJlbmRlclN0eWxlOjppbml0aWFsU2VsZkFsaWdubWVu
dCgpKQogICAgICwgY3VzdG9tUHJvcGVydGllcyhTdHlsZUN1c3RvbVByb3BlcnR5RGF0YTo6Y3Jl
YXRlKCkpCi0gICAgLCB0b3VjaEFjdGlvbnMoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFJlbmRlclN0
eWxlOjppbml0aWFsVG91Y2hBY3Rpb25zKCkpKQorICAgICwgdG91Y2hBY3Rpb25zKFJlbmRlclN0
eWxlOjppbml0aWFsVG91Y2hBY3Rpb25zKCkpCiAgICAgLCBwYWdlU2l6ZVR5cGUoUEFHRV9TSVpF
X0FVVE8pCiAgICAgLCB0cmFuc2Zvcm1TdHlsZTNEKHN0YXRpY19jYXN0PHVuc2lnbmVkPihSZW5k
ZXJTdHlsZTo6aW5pdGlhbFRyYW5zZm9ybVN0eWxlM0QoKSkpCiAgICAgLCBiYWNrZmFjZVZpc2li
aWxpdHkoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFJlbmRlclN0eWxlOjppbml0aWFsQmFja2ZhY2VW
aXNpYmlsaXR5KCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKaW5kZXggZDUyOWZhMGQ5ZjUuLmVkYmNl
MzA2MTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVS
YXJlTm9uSW5oZXJpdGVkRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKQEAgLTE3Myw3ICsxNzMsNyBAQCBwdWJsaWM6
CiAgICAgRGF0YVJlZjxTdHlsZUN1c3RvbVByb3BlcnR5RGF0YT4gY3VzdG9tUHJvcGVydGllczsK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8SGFzaFNldDxTdHJpbmc+PiBjdXN0b21QYWludFdhdGNoZWRQ
cm9wZXJ0aWVzOwogCi0gICAgdW5zaWduZWQgdG91Y2hBY3Rpb25zIDogNjsgLy8gVG91Y2hBY3Rp
b24KKyAgICBPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IHRvdWNoQWN0aW9uczsKIAogICAgIHVuc2ln
bmVkIHBhZ2VTaXplVHlwZSA6IDI7IC8vIFBhZ2VTaXplVHlwZQogICAgIHVuc2lnbmVkIHRyYW5z
Zm9ybVN0eWxlM0QgOiAxOyAvLyBUcmFuc2Zvcm1TdHlsZTNECmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0
eWxlQWRqdXN0ZXIuY3BwCmluZGV4IGZjY2YyYmExN2IwLi4xZTA2ODRmMTVhNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRl
ICJBbmltYXRpb25CYXNlLmgiCiAjaW5jbHVkZSAiQ1NTRm9udFNlbGVjdG9yLmgiCiAjaW5jbHVk
ZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJGcmFtZVZp
ZXcuaCIKICNpbmNsdWRlICJIVE1MRGl2RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVs
ZW1lbnQuaCIKQEAgLTE5Miw2ICsxOTMsNDQgQEAgc3RhdGljIE9wdGlvblNldDxUb3VjaEFjdGlv
bj4gY29tcHV0ZUVmZmVjdGl2ZVRvdWNoQWN0aW9ucyhjb25zdCBSZW5kZXJTdHlsZSYgc3QKICAg
ICByZXR1cm4gc2hhcmVkVG91Y2hBY3Rpb25zOwogfQogCitzdGF0aWMgT3B0aW9uU2V0PEV2ZW50
TGlzdGVuZXJSZWdpb25UeXBlPiBjb21wdXRlRXZlbnRMaXN0ZW5lclJlZ2lvblR5cGVzKGNvbnN0
IEVsZW1lbnQmIGVsZW1lbnQsIE9wdGlvblNldDxFdmVudExpc3RlbmVyUmVnaW9uVHlwZT4gcGFy
ZW50VHlwZXMpCit7CisjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgaWYgKCFlbGVtZW50
Lmhhc0V2ZW50TGlzdGVuZXJzKCkpCisgICAgICAgIHJldHVybiBwYXJlbnRUeXBlczsKKworICAg
IGF1dG8gdHlwZXMgPSBwYXJlbnRUeXBlczsKKworICAgIGF1dG8gZmluZExpc3RlbmVycyA9IFsm
XShhdXRvJiBldmVudE5hbWUsIGF1dG8gdHlwZSwgYXV0byBub25QYXNzaXZlVHlwZSkgeworICAg
ICAgICBhdXRvKiBldmVudExpc3RlbmVyVmVjdG9yID0gZWxlbWVudC5ldmVudFRhcmdldERhdGEo
KS0+ZXZlbnRMaXN0ZW5lck1hcC5maW5kKGV2ZW50TmFtZSk7CisgICAgICAgIGlmICghZXZlbnRM
aXN0ZW5lclZlY3RvcikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB0eXBlcy5hZGQo
dHlwZSk7CisKKyAgICAgICAgYXV0byBpc1Bhc3NpdmVPbmx5ID0gWyZdIHsKKyAgICAgICAgICAg
IGZvciAoYXV0byYgbGlzdGVuZXIgOiAqZXZlbnRMaXN0ZW5lclZlY3RvcikgeworICAgICAgICAg
ICAgICAgIGlmICghbGlzdGVuZXItPmlzUGFzc2l2ZSgpKQorICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICAgICAgfSgpOworCisgICAgICAgIGlmICghaXNQYXNzaXZlT25seSkKKyAgICAgICAgICAgIHR5
cGVzLmFkZChub25QYXNzaXZlVHlwZSk7CisgICAgfTsKKworICAgIGZpbmRMaXN0ZW5lcnMoZXZl
bnROYW1lcygpLndoZWVsRXZlbnQsIEV2ZW50TGlzdGVuZXJSZWdpb25UeXBlOjpXaGVlbCwgRXZl
bnRMaXN0ZW5lclJlZ2lvblR5cGU6Ok5vblBhc3NpdmVXaGVlbCk7CisgICAgZmluZExpc3RlbmVy
cyhldmVudE5hbWVzKCkubW91c2V3aGVlbEV2ZW50LCBFdmVudExpc3RlbmVyUmVnaW9uVHlwZTo6
V2hlZWwsIEV2ZW50TGlzdGVuZXJSZWdpb25UeXBlOjpOb25QYXNzaXZlV2hlZWwpOworCisgICAg
cmV0dXJuIHR5cGVzOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZWxlbWVudCk7CisgICAgVU5V
U0VEX1BBUkFNKHBhcmVudFR5cGVzKTsKKyAgICByZXR1cm4geyB9OworI2VuZGlmCit9CisKIHZv
aWQgQWRqdXN0ZXI6OmFkanVzdChSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IFJlbmRlclN0eWxl
KiB1c2VyQWdlbnRBcHBlYXJhbmNlU3R5bGUpIGNvbnN0CiB7CiAgICAgLy8gQ2FjaGUgb3VyIG9y
aWdpbmFsIGRpc3BsYXkuCkBAIC00MzcsNiArNDc2LDkgQEAgdm9pZCBBZGp1c3Rlcjo6YWRqdXN0
KFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUqIHVzZXJBZ2VudEFwcGVhcmFu
Y2UKIAogICAgIHN0eWxlLnNldEVmZmVjdGl2ZVRvdWNoQWN0aW9ucyhjb21wdXRlRWZmZWN0aXZl
VG91Y2hBY3Rpb25zKHN0eWxlLCBtX3BhcmVudFN0eWxlLmVmZmVjdGl2ZVRvdWNoQWN0aW9ucygp
KSk7CiAKKyAgICBpZiAobV9lbGVtZW50KQorICAgICAgICBzdHlsZS5zZXRFdmVudExpc3RlbmVy
UmVnaW9uVHlwZXMoY29tcHV0ZUV2ZW50TGlzdGVuZXJSZWdpb25UeXBlcygqbV9lbGVtZW50LCBt
X3BhcmVudFN0eWxlLmV2ZW50TGlzdGVuZXJSZWdpb25UeXBlcygpKSk7CisKICNpZiBFTkFCTEUo
VEVYVF9BVVRPU0laSU5HKQogICAgIGlmIChtX2VsZW1lbnQpCiAgICAgICAgIGFkanVzdEZvclRl
eHRBdXRvc2l6aW5nKHN0eWxlLCAqbV9lbGVtZW50KTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398717</attachid>
            <date>2020-05-07 02:52:12 -0700</date>
            <delta_ts>2020-05-07 04:16:35 -0700</delta_ts>
            <desc>patch</desc>
            <filename>wheel-event-listener-region-5.patch</filename>
            <type>text/plain</type>
            <size>18877</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3YzExZDFiZWY2Yi4uMmRkNjQyOGRkNWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAyMC0wNS0wNiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAg
QWRkIGJhc2ljIHN1cHBvcnQgZm9yIGdlbmVyYXRpbmcgYWNjdXJhdGUgd2hlZWwgZXZlbnQgbGlz
dGVuZXIgcmVnaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTE1MTIKKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAg
ICAgKiBmYXN0L3Njcm9sbGluZy9tYWMvd2hlZWwtZXZlbnQtbGlzdGVuZXItcmVnaW9uLWJhc2lj
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvbWFjL3doZWVs
LWV2ZW50LWxpc3RlbmVyLXJlZ2lvbi1iYXNpYy5odG1sOiBBZGRlZC4KKwogMjAyMC0wNC0yOSAg
U2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBbV2Vi
WFJdIEltcGxlbWVudCBpc1Nlc3Npb25TdXBwb3J0ZWQoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvbWFjL3doZWVsLWV2ZW50LWxpc3RlbmVyLXJlZ2lvbi1iYXNpYy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9tYWMvd2hlZWwtZXZlbnQt
bGlzdGVuZXItcmVnaW9uLWJhc2ljLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uY2M3ZjI2NTljNTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Njcm9sbGluZy9tYWMvd2hlZWwtZXZlbnQtbGlzdGVuZXItcmVnaW9uLWJhc2lj
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI2IEBACisoR3JhcGhpY3NMYXllcgorICAoYW5jaG9y
IDAuMDAgMC4wMCkKKyAgKGJvdW5kcyA4MDAuMDAgNjAwLjAwKQorICAoY2hpbGRyZW4gMQorICAg
IChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDgwMC4wMCA2MDAuMDApCisgICAgICAoY29u
dGVudHNPcGFxdWUgMSkKKyAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgIChiYWNrZ3JvdW5k
Q29sb3IgI0ZGRkZGRikKKyAgICAgIChldmVudCByZWdpb24KKyAgICAgICAgKHJlY3QgKDAsMCkg
d2lkdGg9ODAwIGhlaWdodD02MDApCisgICAgICAod2hlZWwgZXZlbnQgbGlzdGVuZXIgcmVnaW9u
CisgICAgICAgIChyZWN0ICg4LDgpIHdpZHRoPTI1MCBoZWlnaHQ9NTApCisgICAgICAgIChyZWN0
ICg4LDU4KSB3aWR0aD0yMDAgaGVpZ2h0PTE1MCkKKyAgICAgICAgKHJlY3QgKDIwOCwyMDgpIHdp
ZHRoPTI1MCBoZWlnaHQ9NTApCisgICAgICAgIChyZWN0ICgyMDgsMjU4KSB3aWR0aD0yMDAgaGVp
Z2h0PTE1MCkKKyAgICAgICAgKG5vbi1wYXNzaXZlCisgICAgICAgICAgKHJlY3QgKDgsOCkgd2lk
dGg9MjUwIGhlaWdodD01MCkKKyAgICAgICAgICAocmVjdCAoOCw1OCkgd2lkdGg9MjAwIGhlaWdo
dD0xNTApCisgICAgICAgICkKKyAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbWFjL3doZWVsLWV2ZW50LWxpc3Rl
bmVyLXJlZ2lvbi1iYXNpYy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbWFjL3do
ZWVsLWV2ZW50LWxpc3RlbmVyLXJlZ2lvbi1iYXNpYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwLi5mMzJiNGYyNTM5NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL21hYy93aGVlbC1ldmVudC1saXN0ZW5lci1yZWdpb24tYmFz
aWMuaHRtbApAQCAtMCwwICsxLDQ0IEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0g
LS0+Cis8aHRtbD4KKzxzdHlsZT4KKy5ldmVudCB7CisgICAgcG9zaXRpb246cmVsYXRpdmU7Cisg
ICAgYmFja2dyb3VuZC1jb2xvcjpibHVlOworICAgIHdpZHRoOjIwMHB4OworICAgIGhlaWdodDoy
MDBweDsKK30KKy5jaGlsZCB7CisgICAgcG9zaXRpb246cmVsYXRpdmU7CisgICAgYmFja2dyb3Vu
ZC1jb2xvcjpibHVlOworICAgIGxlZnQ6MjAwcHg7CisgICAgd2lkdGg6NTBweDsKKyAgICBoZWln
aHQ6NTBweDsKK30KKy5vZmZzZXQgeworICAgIGxlZnQ6IDIwMHB4OworfQorCis8L3N0eWxlPgor
PHNjcmlwdD4KK3dpbmRvdy5vbmxvYWQgPSAoKSA9PiB7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworICAgIGlmICh3aW5kb3cu
aW50ZXJuYWxzKQorICAgICAgICByZXN1bHRzLmlubmVyVGV4dCA9IGludGVybmFscy5sYXllclRy
ZWVBc1RleHQoZG9jdW1lbnQsIGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX0VWRU5UX1JF
R0lPTiB8IGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX1JPT1RfTEFZRVJfUFJPUEVSVElF
Uyk7Cit9Cis8L3NjcmlwdD4KKzxib2R5PgorPGRpdiBjbGFzcz0iZXZlbnQiIG9ud2hlZWw9InJl
c3VsdHMudGV4dENvbnRlbnQgKz0gJ3doZWVsXG4nIj4KKyAgICA8ZGl2IGNsYXNzPSJjaGlsZCI+
PC9kaXY+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9ImV2ZW50IG9mZnNldCIgaWQ9InBhc3NpdmUiPgor
ICAgIDxkaXYgY2xhc3M9ImNoaWxkIj48L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4KK3Bhc3NpdmUu
YWRkRXZlbnRMaXN0ZW5lcignd2hlZWwnLCAoKSA9PiB7IHJlc3VsdHMudGV4dENvbnRlbnQgKz0g
J3Bhc3NpdmUgd2hlZWxcbicgfSwgeyBwYXNzaXZlOiB0cnVlIH0pOworPC9zY3JpcHQ+Cis8cHJl
IGlkPSJyZXN1bHRzIj48L3ByZT4KKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDVi
ODZhYzM2MGQ4Li5iNmE2OTIyMTI2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIw
LTA1LTA2ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQg
YmFzaWMgc3VwcG9ydCBmb3IgZ2VuZXJhdGluZyBhY2N1cmF0ZSB3aGVlbCBldmVudCBsaXN0ZW5l
ciByZWdpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxMTUxMgorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBB
ZGQgZmFrZSBwcm9wZXJ0aWVzIGZvciB3aGVlbCBldmVudCBsaXN0ZW5lcnMgdG8gUmVuZGVyU3R5
bGUgYW5kIHVzZSB0aGVtIHRvCisgICAgICAgIGdlbmVyYXRlIHJlZ2lvbnMgaW4gRXZlbnRSZWdp
b24uIFRoZXJlIGlzIGEgc2VwYXJhdGUgcmVnaW9uIGZvciBub24tcGFzc2l2ZQorICAgICAgICB3
aGVlbCBldmVudCBsaXN0ZW5lcnMgKHRoYXQgd2lsbCByZXF1aXJlIHN5bmNocm9ub3VzIGhhbmRs
aW5nKS4KKworICAgICAgICBUaGUgZ2VuZXJhdGVkIHJlZ2lvbnMgYXJlIG5vdCB1c2VkIGZvciBh
bnl0aGluZyBpbiB0aGlzIHBhdGNoLgorICAgICAgICBTdHlsZSBpcyBub3QgeWV0IGludmFsaWRl
ZCBvbiBldmVudCBsaXN0ZW5lciBhZGRpdGlvbnMgYW5kIHJlbW92YWxzLgorCisgICAgICAgIFRl
c3Q6IGZhc3Qvc2Nyb2xsaW5nL21hYy93aGVlbC1ldmVudC1saXN0ZW5lci1yZWdpb24tYmFzaWMu
aHRtbAorCisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvRXZlbnRS
ZWdpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRSZWdpb246OnVuaXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkV2ZW50UmVnaW9uOjp1bml0ZUV2ZW50TGlzdGVuZXJzKToKKyAgICAgICAg
KFdlYkNvcmU6OkV2ZW50UmVnaW9uOjpkdW1wIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcv
RXZlbnRSZWdpb24uaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlRXZlbnRSZWdp
b24pOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyU3R5bGU6OmV2ZW50TGlzdGVuZXJSZWdpb25UeXBlcyBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6c2V0RXZlbnRMaXN0ZW5lclJlZ2lvblR5cGVz
KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVJbmhlcml0ZWRE
YXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZUluaGVyaXRlZERhdGE6Om9wZXJhdG9y
PT0gY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWRE
YXRhLmg6CisgICAgICAgICogc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTdHlsZTo6Y29tcHV0ZUV2ZW50TGlzdGVuZXJSZWdpb25UeXBlcyk6CisgICAgICAgIChX
ZWJDb3JlOjpTdHlsZTo6QWRqdXN0ZXI6OmFkanVzdCBjb25zdCk6CisKIDIwMjAtMDQtMjkgIFNl
cmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dlYlhS
XSBJbXBsZW1lbnQgaXNTZXNzaW9uU3VwcG9ydGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IGVhYWEzNThj
NGVhLi43MmY3OTliYWU2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCkBAIC00ODIsNiArNDgyLDcgQEAgcHVibGlj
OgogICAgIGJvb2wgbV9hZG9wdGlvbklzUmVxdWlyZWQgeyB0cnVlIH07CiAjZW5kaWYKIAorICAg
IHVzaW5nIEV2ZW50VGFyZ2V0OjpldmVudFRhcmdldERhdGE7CiAgICAgRXZlbnRUYXJnZXREYXRh
KiBldmVudFRhcmdldERhdGEoKSBmaW5hbDsKICAgICBFdmVudFRhcmdldERhdGEqIGV2ZW50VGFy
Z2V0RGF0YUNvbmN1cnJlbnRseSgpIGZpbmFsOwogICAgIEV2ZW50VGFyZ2V0RGF0YSYgZW5zdXJl
RXZlbnRUYXJnZXREYXRhKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvRXZlbnRSZWdpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V2ZW50UmVn
aW9uLmNwcAppbmRleCAzNjE3MTNlZjhkZi4uMjViMjUyZGY3NTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9FdmVudFJlZ2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0V2ZW50UmVnaW9uLmNwcApAQCAtMTEyLDYgKzExMiw3IEBAIHZvaWQgRXZlbnRS
ZWdpb246OnVuaXRlKGNvbnN0IFJlZ2lvbiYgcmVnaW9uLCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5
bGUsIGJvb2wgb3ZlCiAgICAgbV9yZWdpb24udW5pdGUocmVnaW9uKTsKIAogICAgIHVuaXRlVG91
Y2hBY3Rpb25zKHJlZ2lvbiwgc3R5bGUuZWZmZWN0aXZlVG91Y2hBY3Rpb25zKCkpOworICAgIHVu
aXRlRXZlbnRMaXN0ZW5lcnMocmVnaW9uLCBzdHlsZS5ldmVudExpc3RlbmVyUmVnaW9uVHlwZXMo
KSk7CiAKICNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQogICAgIGlmIChvdmVycmlkZVVzZXJN
b2RpZnlJc0VkaXRhYmxlIHx8IHN0eWxlLnVzZXJNb2RpZnkoKSAhPSBVc2VyTW9kaWZ5OjpSZWFk
T25seSkKQEAgLTIyMCw2ICsyMjEsMTQgQEAgT3B0aW9uU2V0PFRvdWNoQWN0aW9uPiBFdmVudFJl
Z2lvbjo6dG91Y2hBY3Rpb25zRm9yUG9pbnQoY29uc3QgSW50UG9pbnQmIHBvaW50KQogICAgIHJl
dHVybiBhY3Rpb25zOwogfQogCit2b2lkIEV2ZW50UmVnaW9uOjp1bml0ZUV2ZW50TGlzdGVuZXJz
KGNvbnN0IFJlZ2lvbiYgcmVnaW9uLCBPcHRpb25TZXQ8RXZlbnRMaXN0ZW5lclJlZ2lvblR5cGU+
IGV2ZW50TGlzdGVuZXJSZWdpb25UeXBlcykKK3sKKyAgICBpZiAoZXZlbnRMaXN0ZW5lclJlZ2lv
blR5cGVzLmNvbnRhaW5zKEV2ZW50TGlzdGVuZXJSZWdpb25UeXBlOjpXaGVlbCkpCisgICAgICAg
IG1fd2hlZWxFdmVudExpc3RlbmVyUmVnaW9uLnVuaXRlKHJlZ2lvbik7CisgICAgaWYgKGV2ZW50
TGlzdGVuZXJSZWdpb25UeXBlcy5jb250YWlucyhFdmVudExpc3RlbmVyUmVnaW9uVHlwZTo6Tm9u
UGFzc2l2ZVdoZWVsKSkKKyAgICAgICAgbV9ub25QYXNzaXZlV2hlZWxFdmVudExpc3RlbmVyUmVn
aW9uLnVuaXRlKHJlZ2lvbik7Cit9CisKICNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQogCiBi
b29sIEV2ZW50UmVnaW9uOjpjb250YWluc0VkaXRhYmxlRWxlbWVudHNJblJlY3QoY29uc3QgSW50
UmVjdCYgcmVjdCkgY29uc3QKQEAgLTI0Nyw2ICsyNTYsMTYgQEAgdm9pZCBFdmVudFJlZ2lvbjo6
ZHVtcChUZXh0U3RyZWFtJiB0cykgY29uc3QKICAgICAgICAgdHMgPDwgaW5kZW50IDw8ICIpXG4i
OwogICAgIH0KIAorICAgIGlmICghbV93aGVlbEV2ZW50TGlzdGVuZXJSZWdpb24uaXNFbXB0eSgp
KSB7CisgICAgICAgIHRzIDw8IGluZGVudCA8PCAiKHdoZWVsIGV2ZW50IGxpc3RlbmVyIHJlZ2lv
biIgPDwgbV93aGVlbEV2ZW50TGlzdGVuZXJSZWdpb247CisgICAgICAgIGlmICghbV9ub25QYXNz
aXZlV2hlZWxFdmVudExpc3RlbmVyUmVnaW9uLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgVGV4
dFN0cmVhbTo6SW5kZW50U2NvcGUgaW5kZW50U2NvcGUodHMpOworICAgICAgICAgICAgdHMgPDwg
aW5kZW50IDw8ICIobm9uLXBhc3NpdmUiIDw8IG1fbm9uUGFzc2l2ZVdoZWVsRXZlbnRMaXN0ZW5l
clJlZ2lvbjsKKyAgICAgICAgICAgIHRzIDw8IGluZGVudCA8PCAiKVxuIjsKKyAgICAgICAgfQor
ICAgICAgICB0cyA8PCBpbmRlbnQgPDwgIilcbiI7CisgICAgfQorCiAjaWYgRU5BQkxFKEVESVRB
QkxFX1JFR0lPTikKICAgICBpZiAoIW1fZWRpdGFibGVSZWdpb24uaXNFbXB0eSgpKSB7CiAgICAg
ICAgIHRzIDw8IGluZGVudCA8PCAiKGVkaXRhYmxlIHJlZ2lvbiIgPDwgbV9lZGl0YWJsZVJlZ2lv
bjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FdmVudFJlZ2lvbi5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V2ZW50UmVnaW9uLmgKaW5kZXggZjM4ZmFkNzkwZTIu
LjY4MWJiOGQ4ZWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXZlbnRS
ZWdpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXZlbnRSZWdpb24uaApAQCAt
MjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiQWZmaW5lVHJhbnNmb3JtLmgiCiAjaW5jbHVkZSAi
UmVnaW9uLmgiCisjaW5jbHVkZSAiUmVuZGVyU3R5bGVDb25zdGFudHMuaCIKICNpbmNsdWRlICJU
b3VjaEFjdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9PcHRpb25TZXQuaD4KICNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CkBAIC03Niw3ICs3Nyw2IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaGFzVG91Y2hB
Y3Rpb25zKCkgY29uc3QgeyByZXR1cm4gIW1fdG91Y2hBY3Rpb25SZWdpb25zLmlzRW1wdHkoKTsg
fQogICAgIFdFQkNPUkVfRVhQT1JUIE9wdGlvblNldDxUb3VjaEFjdGlvbj4gdG91Y2hBY3Rpb25z
Rm9yUG9pbnQoY29uc3QgSW50UG9pbnQmKSBjb25zdDsKLQogICAgIGNvbnN0IFJlZ2lvbiogcmVn
aW9uRm9yVG91Y2hBY3Rpb24oVG91Y2hBY3Rpb24pIGNvbnN0OwogCiAjaWYgRU5BQkxFKEVESVRB
QkxFX1JFR0lPTikKQEAgLTkzLDkgKzkzLDEyIEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICB2
b2lkIHVuaXRlVG91Y2hBY3Rpb25zKGNvbnN0IFJlZ2lvbiYsIE9wdGlvblNldDxUb3VjaEFjdGlv
bj4pOworICAgIHZvaWQgdW5pdGVFdmVudExpc3RlbmVycyhjb25zdCBSZWdpb24mLCBPcHRpb25T
ZXQ8RXZlbnRMaXN0ZW5lclJlZ2lvblR5cGU+KTsKIAogICAgIFJlZ2lvbiBtX3JlZ2lvbjsKICAg
ICBWZWN0b3I8UmVnaW9uPiBtX3RvdWNoQWN0aW9uUmVnaW9uczsKKyAgICBSZWdpb24gbV93aGVl
bEV2ZW50TGlzdGVuZXJSZWdpb247CisgICAgUmVnaW9uIG1fbm9uUGFzc2l2ZVdoZWVsRXZlbnRM
aXN0ZW5lclJlZ2lvbjsKICNpZiBFTkFCTEUoRURJVEFCTEVfUkVHSU9OKQogICAgIFJlZ2lvbiBt
X2VkaXRhYmxlUmVnaW9uOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckJhY2tpbmcuY3BwCmluZGV4IDUwNjQzYmVkZWRiLi5jNTQxMTllZmJjYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAg
LTE2NTMsMTAgKzE2NTMsMTMgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZURyYXdz
Q29udGVudChQYWludGVkQ29udGVudHNJbmZvJiBjb250ZW50c0luZm8pCiAjaWYgRU5BQkxFKEFT
WU5DX1NDUk9MTElORykKIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVFdmVudFJlZ2lv
bigpCiB7Ci0gICAgaWYgKHBhaW50c0ludG9Db21wb3NpdGVkQW5jZXN0b3IoKSkKLSAgICAgICAg
cmV0dXJuOwotCiAgICAgYXV0byBuZWVkc1VwZGF0ZSA9IFsmXSB7CisgICAgICAgIGlmICghbV9v
d25pbmdMYXllci5wYWdlKCkuc2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSkKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgICAgICBpZiAocGFpbnRzSW50b0NvbXBvc2l0ZWRBbmNlc3Rvcigp
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgICAgIGlmIChyZW5kZXJlcigpLnZp
ZXcoKS5uZWVkc0V2ZW50UmVnaW9uVXBkYXRlRm9yTm9uQ29tcG9zaXRlZEZyYW1lKCkpCiAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgCkBAIC0xNjY3LDYgKzE2NzAsMTAgQEAgdm9p
ZCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUV2ZW50UmVnaW9uKCkKICNpZiBFTkFCTEUoRURJ
VEFCTEVfUkVHSU9OKQogICAgICAgICBpZiAocmVuZGVyZXIoKS5kb2N1bWVudCgpLm1heUhhdmVF
ZGl0YWJsZUVsZW1lbnRzKCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgorI2lm
ICFQTEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICBpZiAocmVuZGVyZXIoKS5kb2N1bWVudCgp
LndoZWVsRXZlbnRUYXJnZXRzKCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgog
ICAgICAgICBpZiAobV9vd25pbmdMYXllci5pc1JlbmRlclZpZXdMYXllcigpKQogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGUuaAppbmRleCBmZDg0ZDEzMTk3OC4uYjFhM2IxM2JkZGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC02OTEsOSArNjkxLDEwIEBAIHB1
YmxpYzoKICAgICBpbnQgaW5pdGlhbExldHRlckRyb3AoKSBjb25zdCB7IHJldHVybiBpbml0aWFs
TGV0dGVyKCkud2lkdGgoKTsgfQogICAgIGludCBpbml0aWFsTGV0dGVySGVpZ2h0KCkgY29uc3Qg
eyByZXR1cm4gaW5pdGlhbExldHRlcigpLmhlaWdodCgpOyB9CiAKLSAgICBPcHRpb25TZXQ8VG91
Y2hBY3Rpb24+IHRvdWNoQWN0aW9ucygpIGNvbnN0IHsgcmV0dXJuIE9wdGlvblNldDxUb3VjaEFj
dGlvbj46OmZyb21SYXcobV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+dG91Y2hBY3Rpb25zKTsgfQor
ICAgIE9wdGlvblNldDxUb3VjaEFjdGlvbj4gdG91Y2hBY3Rpb25zKCkgY29uc3QgeyByZXR1cm4g
bV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+dG91Y2hBY3Rpb25zOyB9CiAgICAgLy8gJ3RvdWNoLWFj
dGlvbicgYmVoYXZpb3IgZGVwZW5kcyBvbiB2YWx1ZXMgaW4gYW5jZXN0b3JzLiBXZSB1c2UgYW4g
YWRkaXRpb25hbCBpbmhlcml0ZWQgcHJvcGVydHkgdG8gaW1wbGVtZW50IHRoYXQuCi0gICAgT3B0
aW9uU2V0PFRvdWNoQWN0aW9uPiBlZmZlY3RpdmVUb3VjaEFjdGlvbnMoKSBjb25zdCB7IHJldHVy
biBPcHRpb25TZXQ8VG91Y2hBY3Rpb24+Ojpmcm9tUmF3KG1fcmFyZUluaGVyaXRlZERhdGEtPmVm
ZmVjdGl2ZVRvdWNoQWN0aW9ucyk7IH0KKyAgICBPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IGVmZmVj
dGl2ZVRvdWNoQWN0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fcmFyZUluaGVyaXRlZERhdGEtPmVm
ZmVjdGl2ZVRvdWNoQWN0aW9uczsgfQorICAgIE9wdGlvblNldDxFdmVudExpc3RlbmVyUmVnaW9u
VHlwZT4gZXZlbnRMaXN0ZW5lclJlZ2lvblR5cGVzKCkgY29uc3QgeyByZXR1cm4gbV9yYXJlSW5o
ZXJpdGVkRGF0YS0+ZXZlbnRMaXN0ZW5lclJlZ2lvblR5cGVzOyB9CiAKICNpZiBFTkFCTEUoQ1NT
X1NDUk9MTF9TTkFQKQogICAgIC8vIFNjcm9sbCBzbmFwIHBvcnQgc3R5bGUuCkBAIC0xMjI2LDgg
KzEyMjcsOSBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCBzZXRJbml0aWFsTGV0dGVyKGNvbnN0
IEludFNpemUmIHNpemUpIHsgU0VUX1ZBUihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLCBpbml0aWFs
TGV0dGVyLCBzaXplKTsgfQogICAgIAotICAgIHZvaWQgc2V0VG91Y2hBY3Rpb25zKE9wdGlvblNl
dDxUb3VjaEFjdGlvbj4gdG91Y2hBY3Rpb25zKSB7IFNFVF9WQVIobV9yYXJlTm9uSW5oZXJpdGVk
RGF0YSwgdG91Y2hBY3Rpb25zLCB0b3VjaEFjdGlvbnMudG9SYXcoKSk7IH0KLSAgICB2b2lkIHNl
dEVmZmVjdGl2ZVRvdWNoQWN0aW9ucyhPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IHRvdWNoQWN0aW9u
cykgeyBTRVRfVkFSKG1fcmFyZUluaGVyaXRlZERhdGEsIGVmZmVjdGl2ZVRvdWNoQWN0aW9ucywg
dG91Y2hBY3Rpb25zLnRvUmF3KCkpOyB9CisgICAgdm9pZCBzZXRUb3VjaEFjdGlvbnMoT3B0aW9u
U2V0PFRvdWNoQWN0aW9uPiB0b3VjaEFjdGlvbnMpIHsgU0VUX1ZBUihtX3JhcmVOb25Jbmhlcml0
ZWREYXRhLCB0b3VjaEFjdGlvbnMsIHRvdWNoQWN0aW9ucyk7IH0KKyAgICB2b2lkIHNldEVmZmVj
dGl2ZVRvdWNoQWN0aW9ucyhPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IHRvdWNoQWN0aW9ucykgeyBT
RVRfVkFSKG1fcmFyZUluaGVyaXRlZERhdGEsIGVmZmVjdGl2ZVRvdWNoQWN0aW9ucywgdG91Y2hB
Y3Rpb25zKTsgfQorICAgIHZvaWQgc2V0RXZlbnRMaXN0ZW5lclJlZ2lvblR5cGVzKE9wdGlvblNl
dDxFdmVudExpc3RlbmVyUmVnaW9uVHlwZT4gZXZlbnRMaXN0ZW5lclR5cGVzKSB7IFNFVF9WQVIo
bV9yYXJlSW5oZXJpdGVkRGF0YSwgZXZlbnRMaXN0ZW5lclJlZ2lvblR5cGVzLCBldmVudExpc3Rl
bmVyVHlwZXMpOyB9CiAKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQogICAgIHZvaWQgc2V0
U2Nyb2xsU25hcFR5cGUoY29uc3QgU2Nyb2xsU25hcFR5cGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKaW5kZXggNGI0
NDJiYmMyNjYuLjkwOGU1MTYzNDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaApAQCAtMTE4MCw2ICsxMTgwLDExIEBA
IGVudW0gY2xhc3MgRm9udExvYWRpbmdCZWhhdmlvciA6IHVpbnQ4X3QgewogICAgIE9wdGlvbmFs
CiB9OwogCitlbnVtIGNsYXNzIEV2ZW50TGlzdGVuZXJSZWdpb25UeXBlIDogdWludDhfdCB7Cisg
ICAgV2hlZWwgICAgICAgICAgID0gMSA8PCAwLAorICAgIE5vblBhc3NpdmVXaGVlbCA9IDEgPDwg
MSwKK307CisKIGV4dGVybiBjb25zdCBmbG9hdCBkZWZhdWx0TWl0ZXJMaW1pdDsKIAogV1RGOjpU
ZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIEFuaW1hdGlvbkZpbGxNb2Rl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJ
bmhlcml0ZWREYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJh
cmVJbmhlcml0ZWREYXRhLmNwcAppbmRleCAyZWM1YjBhYTkzMS4uZDNiNWZjZjdjMjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWRE
YXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5o
ZXJpdGVkRGF0YS5jcHAKQEAgLTEzMyw3ICsxMzMsNyBAQCBTdHlsZVJhcmVJbmhlcml0ZWREYXRh
OjpTdHlsZVJhcmVJbmhlcml0ZWREYXRhKCkKICAgICAsIGpvaW5TdHlsZShSZW5kZXJTdHlsZTo6
aW5pdGlhbEpvaW5TdHlsZSgpKQogICAgICwgaGFzU2V0U3Ryb2tlV2lkdGgoZmFsc2UpCiAgICAg
LCBoYXNTZXRTdHJva2VDb2xvcihmYWxzZSkKLSAgICAsIGVmZmVjdGl2ZVRvdWNoQWN0aW9ucyhz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oUmVuZGVyU3R5bGU6OmluaXRpYWxUb3VjaEFjdGlvbnMoKSkp
CisgICAgLCBlZmZlY3RpdmVUb3VjaEFjdGlvbnMoUmVuZGVyU3R5bGU6OmluaXRpYWxUb3VjaEFj
dGlvbnMoKSkKICAgICAsIHN0cm9rZVdpZHRoKFJlbmRlclN0eWxlOjppbml0aWFsU3Ryb2tlV2lk
dGgoKSkKICAgICAsIHN0cm9rZUNvbG9yKFJlbmRlclN0eWxlOjppbml0aWFsU3Ryb2tlQ29sb3Io
KSkKICAgICAsIG1pdGVyTGltaXQoUmVuZGVyU3R5bGU6OmluaXRpYWxTdHJva2VNaXRlckxpbWl0
KCkpCkBAIC0yMjgsNiArMjI4LDcgQEAgaW5saW5lIFN0eWxlUmFyZUluaGVyaXRlZERhdGE6OlN0
eWxlUmFyZUluaGVyaXRlZERhdGEoY29uc3QgU3R5bGVSYXJlSW5oZXJpdGVkRGEKICAgICAsIGhh
c1NldFN0cm9rZVdpZHRoKG8uaGFzU2V0U3Ryb2tlV2lkdGgpCiAgICAgLCBoYXNTZXRTdHJva2VD
b2xvcihvLmhhc1NldFN0cm9rZUNvbG9yKQogICAgICwgZWZmZWN0aXZlVG91Y2hBY3Rpb25zKG8u
ZWZmZWN0aXZlVG91Y2hBY3Rpb25zKQorICAgICwgZXZlbnRMaXN0ZW5lclJlZ2lvblR5cGVzKG8u
ZXZlbnRMaXN0ZW5lclJlZ2lvblR5cGVzKQogICAgICwgc3Ryb2tlV2lkdGgoby5zdHJva2VXaWR0
aCkKICAgICAsIHN0cm9rZUNvbG9yKG8uc3Ryb2tlQ29sb3IpCiAgICAgLCB2aXNpdGVkTGlua1N0
cm9rZUNvbG9yKG8udmlzaXRlZExpbmtTdHJva2VDb2xvcikKQEAgLTM0OSw2ICszNTAsNyBAQCBi
b29sIFN0eWxlUmFyZUluaGVyaXRlZERhdGE6Om9wZXJhdG9yPT0oY29uc3QgU3R5bGVSYXJlSW5o
ZXJpdGVkRGF0YSYgbykgY29uc3QKICAgICAgICAgJiYgaGFzU2V0U3Ryb2tlV2lkdGggPT0gby5o
YXNTZXRTdHJva2VXaWR0aAogICAgICAgICAmJiBoYXNTZXRTdHJva2VDb2xvciA9PSBvLmhhc1Nl
dFN0cm9rZUNvbG9yCiAgICAgICAgICYmIGVmZmVjdGl2ZVRvdWNoQWN0aW9ucyA9PSBvLmVmZmVj
dGl2ZVRvdWNoQWN0aW9ucworICAgICAgICAmJiBldmVudExpc3RlbmVyUmVnaW9uVHlwZXMgPT0g
by5ldmVudExpc3RlbmVyUmVnaW9uVHlwZXMKICAgICAgICAgJiYgc3Ryb2tlV2lkdGggPT0gby5z
dHJva2VXaWR0aAogICAgICAgICAmJiBzdHJva2VDb2xvciA9PSBvLnN0cm9rZUNvbG9yCiAgICAg
ICAgICYmIHZpc2l0ZWRMaW5rU3Ryb2tlQ29sb3IgPT0gby52aXNpdGVkTGlua1N0cm9rZUNvbG9y
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5o
ZXJpdGVkRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUlu
aGVyaXRlZERhdGEuaAppbmRleCBiZGZiNzliOTQwNS4uZmQwZTg0NDgyYzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERh
dGEuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIlRhYlNpemUuaCIKICNpbmNsdWRlICJU
ZXh0RGVjb3JhdGlvblRoaWNrbmVzcy5oIgogI2luY2x1ZGUgIlRleHRVbmRlcmxpbmVPZmZzZXQu
aCIKKyNpbmNsdWRlICJUb3VjaEFjdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9EYXRhUmVmLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5n
Lmg+CkBAIC0xNTQsNyArMTU1LDggQEAgcHVibGljOgogICAgIHVuc2lnbmVkIGhhc1NldFN0cm9r
ZVdpZHRoIDogMTsKICAgICB1bnNpZ25lZCBoYXNTZXRTdHJva2VDb2xvciA6IDE7CiAKLSAgICB1
bnNpZ25lZCBlZmZlY3RpdmVUb3VjaEFjdGlvbnMgOiA2OyAvLyBPcHRpb25TZXQ8VG91Y2hBY3Rp
b24+CisgICAgT3B0aW9uU2V0PFRvdWNoQWN0aW9uPiBlZmZlY3RpdmVUb3VjaEFjdGlvbnM7Cisg
ICAgT3B0aW9uU2V0PEV2ZW50TGlzdGVuZXJSZWdpb25UeXBlPiBldmVudExpc3RlbmVyUmVnaW9u
VHlwZXM7CiAKICAgICBMZW5ndGggc3Ryb2tlV2lkdGg7CiAgICAgQ29sb3Igc3Ryb2tlQ29sb3I7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9u
SW5oZXJpdGVkRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVS
YXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKaW5kZXggMjQ0NWU0NDY4N2YuLjZlZjQwY2FkMTc0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5o
ZXJpdGVkRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxl
UmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCkBAIC04MSw3ICs4MSw3IEBAIFN0eWxlUmFyZU5vbklu
aGVyaXRlZERhdGE6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEoKQogICAgICwganVzdGlmeUl0
ZW1zKFJlbmRlclN0eWxlOjppbml0aWFsSnVzdGlmeUl0ZW1zKCkpCiAgICAgLCBqdXN0aWZ5U2Vs
ZihSZW5kZXJTdHlsZTo6aW5pdGlhbFNlbGZBbGlnbm1lbnQoKSkKICAgICAsIGN1c3RvbVByb3Bl
cnRpZXMoU3R5bGVDdXN0b21Qcm9wZXJ0eURhdGE6OmNyZWF0ZSgpKQotICAgICwgdG91Y2hBY3Rp
b25zKHN0YXRpY19jYXN0PHVuc2lnbmVkPihSZW5kZXJTdHlsZTo6aW5pdGlhbFRvdWNoQWN0aW9u
cygpKSkKKyAgICAsIHRvdWNoQWN0aW9ucyhSZW5kZXJTdHlsZTo6aW5pdGlhbFRvdWNoQWN0aW9u
cygpKQogICAgICwgcGFnZVNpemVUeXBlKFBBR0VfU0laRV9BVVRPKQogICAgICwgdHJhbnNmb3Jt
U3R5bGUzRChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUmVuZGVyU3R5bGU6OmluaXRpYWxUcmFuc2Zv
cm1TdHlsZTNEKCkpKQogICAgICwgYmFja2ZhY2VWaXNpYmlsaXR5KHN0YXRpY19jYXN0PHVuc2ln
bmVkPihSZW5kZXJTdHlsZTo6aW5pdGlhbEJhY2tmYWNlVmlzaWJpbGl0eSgpKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWRE
YXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJp
dGVkRGF0YS5oCmluZGV4IGQ1MjlmYTBkOWY1Li5lZGJjZTMwNjExMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVk
RGF0YS5oCkBAIC0xNzMsNyArMTczLDcgQEAgcHVibGljOgogICAgIERhdGFSZWY8U3R5bGVDdXN0
b21Qcm9wZXJ0eURhdGE+IGN1c3RvbVByb3BlcnRpZXM7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEhh
c2hTZXQ8U3RyaW5nPj4gY3VzdG9tUGFpbnRXYXRjaGVkUHJvcGVydGllczsKIAotICAgIHVuc2ln
bmVkIHRvdWNoQWN0aW9ucyA6IDY7IC8vIFRvdWNoQWN0aW9uCisgICAgT3B0aW9uU2V0PFRvdWNo
QWN0aW9uPiB0b3VjaEFjdGlvbnM7CiAKICAgICB1bnNpZ25lZCBwYWdlU2l6ZVR5cGUgOiAyOyAv
LyBQYWdlU2l6ZVR5cGUKICAgICB1bnNpZ25lZCB0cmFuc2Zvcm1TdHlsZTNEIDogMTsgLy8gVHJh
bnNmb3JtU3R5bGUzRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1
c3Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcAppbmRleCBm
Y2NmMmJhMTdiMC4uMWUwNjg0ZjE1YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1N0eWxlQWRqdXN0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0
ZXIuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiQW5pbWF0aW9uQmFzZS5oIgogI2lu
Y2x1ZGUgIkNTU0ZvbnRTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSFRNTERp
dkVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCkBAIC0xOTIsNiArMTkz
LDQ0IEBAIHN0YXRpYyBPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IGNvbXB1dGVFZmZlY3RpdmVUb3Vj
aEFjdGlvbnMoY29uc3QgUmVuZGVyU3R5bGUmIHN0CiAgICAgcmV0dXJuIHNoYXJlZFRvdWNoQWN0
aW9uczsKIH0KIAorc3RhdGljIE9wdGlvblNldDxFdmVudExpc3RlbmVyUmVnaW9uVHlwZT4gY29t
cHV0ZUV2ZW50TGlzdGVuZXJSZWdpb25UeXBlcyhjb25zdCBFbGVtZW50JiBlbGVtZW50LCBPcHRp
b25TZXQ8RXZlbnRMaXN0ZW5lclJlZ2lvblR5cGU+IHBhcmVudFR5cGVzKQoreworI2lmICFQTEFU
Rk9STShJT1NfRkFNSUxZKQorICAgIGlmICghZWxlbWVudC5oYXNFdmVudExpc3RlbmVycygpKQor
ICAgICAgICByZXR1cm4gcGFyZW50VHlwZXM7CisKKyAgICBhdXRvIHR5cGVzID0gcGFyZW50VHlw
ZXM7CisKKyAgICBhdXRvIGZpbmRMaXN0ZW5lcnMgPSBbJl0oYXV0byYgZXZlbnROYW1lLCBhdXRv
IHR5cGUsIGF1dG8gbm9uUGFzc2l2ZVR5cGUpIHsKKyAgICAgICAgYXV0byogZXZlbnRMaXN0ZW5l
clZlY3RvciA9IGVsZW1lbnQuZXZlbnRUYXJnZXREYXRhKCktPmV2ZW50TGlzdGVuZXJNYXAuZmlu
ZChldmVudE5hbWUpOworICAgICAgICBpZiAoIWV2ZW50TGlzdGVuZXJWZWN0b3IpCisgICAgICAg
ICAgICByZXR1cm47CisKKyAgICAgICAgdHlwZXMuYWRkKHR5cGUpOworCisgICAgICAgIGF1dG8g
aXNQYXNzaXZlT25seSA9IFsmXSB7CisgICAgICAgICAgICBmb3IgKGF1dG8mIGxpc3RlbmVyIDog
KmV2ZW50TGlzdGVuZXJWZWN0b3IpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWxpc3RlbmVyLT5p
c1Bhc3NpdmUoKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0oKTsKKworICAgICAgICBp
ZiAoIWlzUGFzc2l2ZU9ubHkpCisgICAgICAgICAgICB0eXBlcy5hZGQobm9uUGFzc2l2ZVR5cGUp
OworICAgIH07CisKKyAgICBmaW5kTGlzdGVuZXJzKGV2ZW50TmFtZXMoKS53aGVlbEV2ZW50LCBF
dmVudExpc3RlbmVyUmVnaW9uVHlwZTo6V2hlZWwsIEV2ZW50TGlzdGVuZXJSZWdpb25UeXBlOjpO
b25QYXNzaXZlV2hlZWwpOworICAgIGZpbmRMaXN0ZW5lcnMoZXZlbnROYW1lcygpLm1vdXNld2hl
ZWxFdmVudCwgRXZlbnRMaXN0ZW5lclJlZ2lvblR5cGU6OldoZWVsLCBFdmVudExpc3RlbmVyUmVn
aW9uVHlwZTo6Tm9uUGFzc2l2ZVdoZWVsKTsKKworICAgIHJldHVybiB0eXBlczsKKyNlbHNlCisg
ICAgVU5VU0VEX1BBUkFNKGVsZW1lbnQpOworICAgIFVOVVNFRF9QQVJBTShwYXJlbnRUeXBlcyk7
CisgICAgcmV0dXJuIHsgfTsKKyNlbmRpZgorfQorCiB2b2lkIEFkanVzdGVyOjphZGp1c3QoUmVu
ZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSogdXNlckFnZW50QXBwZWFyYW5jZVN0
eWxlKSBjb25zdAogewogICAgIC8vIENhY2hlIG91ciBvcmlnaW5hbCBkaXNwbGF5LgpAQCAtNDM3
LDYgKzQ3Niw5IEBAIHZvaWQgQWRqdXN0ZXI6OmFkanVzdChSZW5kZXJTdHlsZSYgc3R5bGUsIGNv
bnN0IFJlbmRlclN0eWxlKiB1c2VyQWdlbnRBcHBlYXJhbmNlCiAKICAgICBzdHlsZS5zZXRFZmZl
Y3RpdmVUb3VjaEFjdGlvbnMoY29tcHV0ZUVmZmVjdGl2ZVRvdWNoQWN0aW9ucyhzdHlsZSwgbV9w
YXJlbnRTdHlsZS5lZmZlY3RpdmVUb3VjaEFjdGlvbnMoKSkpOwogCisgICAgaWYgKG1fZWxlbWVu
dCkKKyAgICAgICAgc3R5bGUuc2V0RXZlbnRMaXN0ZW5lclJlZ2lvblR5cGVzKGNvbXB1dGVFdmVu
dExpc3RlbmVyUmVnaW9uVHlwZXMoKm1fZWxlbWVudCwgbV9wYXJlbnRTdHlsZS5ldmVudExpc3Rl
bmVyUmVnaW9uVHlwZXMoKSkpOworCiAjaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykKICAgICBp
ZiAobV9lbGVtZW50KQogICAgICAgICBhZGp1c3RGb3JUZXh0QXV0b3NpemluZyhzdHlsZSwgKm1f
ZWxlbWVudCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>