<?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>145175</bug_id>
          
          <creation_ts>2015-05-19 12:48:10 -0700</creation_ts>
          <short_desc>REGRESSION(142590): Part 2: Scroll-snap points are improperly snapping to earlier index values (Scrolling Thread)</short_desc>
          <delta_ts>2015-05-19 14:58:35 -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>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>145140</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>jamesr</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1095999</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-05-19 12:48:10 -0700</bug_when>
    <thetext>I thought I fixed this yesterday with Bug 145140, but that actually only dealt with the overflow scrolling case. If I had followed the lessons of the &apos;isRubberBandInProgress&apos;, I would have noticed that we also need to recognize when a scrolling thread scroll is running the rubber band snap.

This patch completes the work I started in Bug 145140.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096000</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-05-19 12:49:26 -0700</bug_when>
    <thetext>&lt;rdar://problem/21023785&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096059</commentid>
    <comment_count>2</comment_count>
      <attachid>253404</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-05-19 14:48:48 -0700</bug_when>
    <thetext>Created attachment 253404
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096062</commentid>
    <comment_count>3</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-05-19 14:58:35 -0700</bug_when>
    <thetext>Committed r184596: &lt;http://trac.webkit.org/changeset/184596&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253404</attachid>
            <date>2015-05-19 14:48:48 -0700</date>
            <delta_ts>2015-05-19 14:54:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145175-20150519144845.patch</filename>
            <type>text/plain</type>
            <size>22086</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NDU4OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU0IEBACisyMDE1LTA1LTE5ICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04oMTQyNTkw
KTogUGFydCAyOiBTY3JvbGwtc25hcCBwb2ludHMgYXJlIGltcHJvcGVybHkgc25hcHBpbmcgdG8g
ZWFybGllciBpbmRleCB2YWx1ZXMgKFNjcm9sbGluZyBUaHJlYWQpIAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ1MTc1CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS8yMTAyMzc4NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBFeHRlbmQgdGhlIG1haW4tdGhyZWFkIHNjcm9sbGluZyBjaGFuZ2VzIGRvbmUg
aW4gQnVnIDE0NTE0MCB0byBhbHNvIGhhbmRsZSBTY3JvbGxpbmcgVGhyZWFkIHNuYXBwaW5nLgor
ICAgICAgICBUaGUgcG9zdC1sYXlvdXQgZml4dXAgKG5lZWRlZCB0byBoYW5kbGUgd2luZG93IHJl
c2l6ZSBhbmQgZGV2aWNlIG9yaWVudGF0aW9uIGNoYW5nZXMpIHNob3VsZCBub3QgZmlyZQorICAg
ICAgICB3aGlsZSBTY3JvbGxpbmcgVGhyZWFkIHNjcm9sbC1zbmFwIGFuaW1hdGlvbnMgYXJlIHJ1
bm5pbmcsIHNpbmNlIHRoZXNlIGFuaW1hdGlvbnMgd2lsbCBtb3N0IGxpa2VseQorICAgICAgICBt
b3ZlIHRoZSBzY3JvbGwgdmlldyBpbnRvIHRoZSBwcm9wZXIgcG9zaXRpb24uIElmIHdlIGF0dGVt
cHQgdG8gJ2ZpeCB1cCcgdGhlIHNjcm9sbCBwb3NpdGlvbiBiZWZvcmUKKyAgICAgICAgdGhlc2Ug
YW5pbWF0aW9ucyBmaW5pc2gsIHdlIGdldCBhbiB1Z2x5ICdqdW1wJyBpbiB0aGUgZGlzcGxheS4K
KworICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
Vmlldzo6aXNTY3JvbGxTbmFwSW5Qcm9ncmVzcyk6IE5ldyBtZXRob2QgYmFzZWQgb24gaXNSdWJi
ZXJCYW5kSW5Qcm9ncmVzcywgd2hpY2ggY29uc2lkZXJzCisgICAgICAgIGJvdGggdGhlIFNjcm9s
bEFuaW1hdG9yIChtYWluIHRocmVhZCkgc2Nyb2xsaW5nLCBhcyB3ZWxsIGFzIHRoZSBTY3JvbGxp
bmdDb29yZGluYXRvciAoU2Nyb2xsaW5nIFRocmVhZCkKKyAgICAgICAgc2Nyb2xsaW5nIG9wZXJh
dGlvbnMuIFJldHVybnMgdHJ1ZSBpZiBhIHNjcm9sbC1zbmFwIGFuaW1hdGlvbiBpcyBzdGlsbCBh
Y3RpdmUuCisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9s
bGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFz
eW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmlzU2Nyb2xsU25hcEluUHJvZ3Jlc3MpOiBBZGRlZC4g
UmV0dXJucyBzY3JvbGxpbmcgdHJlZSdzCisgICAgICAgICdpc1Njcm9sbFNuYXBJblByb2dyZXNz
JyBzdGF0ZS4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5h
dG9yLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yOjppc1Njcm9sbFNuYXBJblBy
b2dyZXNzKTogQWRkZWQgZGVmYXVsdCAnZmFsc2UnIHN0dWIuCisgICAgICAgICogcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVl
OjpTY3JvbGxpbmdUcmVlKTogVXNlIG1vZGVybiBDKysxMSBpbml0aWFsaXplcnMuCisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjppc1Njcm9sbFNuYXBJblByb2dyZXNzKTogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpzZXRNYWluRnJhbWVJc1Njcm9sbFNu
YXBwaW5nKTogQWRkZWQuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5o
OgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxp
bmdOb2RlTWFjLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVG
cmFtZVNjcm9sbGluZ05vZGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVl
RnJhbWVTY3JvbGxpbmdOb2RlTWFjOjpoYW5kbGVXaGVlbEV2ZW50KTogVXBkYXRlIHNjcm9sbGlu
ZyB0cmVlIHN0YXRlIHRvIG1hdGNoIHRoZQorICAgICAgICBTY3JvbGxDb250cm9sbGVyJ3Mgc2Ny
b2xsLXNuYXAgc3RhdGUuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlRnJhbWVTY3Jv
bGxpbmdOb2RlTWFjOjpzdGFydFNjcm9sbFNuYXBUaW1lcik6IEFkZGVkLiBXaGVuIHN0YXJ0aW5n
IGEgc2Nyb2xsIHNuYXAgdGltZXIsCisgICAgICAgIGFsd2F5cyBzZXQgdGhlIHNjcm9sbGluZyB0
cmVlIHNjcm9sbC1zbmFwcGluZyBzdGF0ZSB0byB0cnVlLgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYzo6c3RvcFNjcm9sbFNuYXBUaW1lcik6IEFk
ZGVkLiBXaGVuIGVuZGluZyBhIHNjcm9sbCBzbmFwIHRpbWVyLAorICAgICAgICBvbmx5IHNldCB0
aGUgc2Nyb2xsaW5nIHRyZWUgc2Nyb2xsLXNuYXBwaW5nIHN0YXRlIHRvIGZhbHNlIGlmIHRoZSBv
dGhlciBheGlzIGFuaW1hdG9yIGlzIGluYWN0aXZlLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9s
bGFibGVBcmVhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjp1cGRhdGVT
Y3JvbGxTbmFwU3RhdGUpOiBSZXZpc2UgaW1wbGVtZW50YXRpb24gdG8gdXNlIGl0cyAnaXNTY3Jv
bGxTbmFwSW5Qcm9ncmVzcycKKyAgICAgICAgbWV0aG9kLCByYXRoZXIgdGhhbiBvbmx5IGxvb2tp
bmcgYXQgdGhlIFNjcm9sbEFuaW1hdG9yIChtYWluIHRocmVhZCkgc3RhdGUuCisgICAgICAgICog
cGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVB
cmVhOjppc1Njcm9sbFNuYXBJblByb2dyZXNzKTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
Y29jb2EvU2Nyb2xsQ29udHJvbGxlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1Njcm9s
bENvbnRyb2xsZXIubW06CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxDb250cm9sbGVyOjpoYXNB
Y3RpdmVTY3JvbGxTbmFwVGltZXJGb3JBeGlzKTogQWRkZWQuIFJlcG9ydHMgaWYgdGhlIHNjcm9s
bCBzbmFwIGFuaW1hdGlvbgorICAgICAgICB0aW1lciBvbiB0aGUgcmVxdWVzdGVkIGF4aXMgaXMg
cnVubmluZyBvciBub3QuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjppc1Njcm9sbFNuYXBJblByb2dyZXNzKTogQWRk
ZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6CisKIDIwMTUtMDUtMTkgIEJy
ZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgU2Nyb2xsLXNuYXAg
YW5pbWF0aW9ucyBzaG91bGQgbm90IHN0YXJ0IG9uIGF4ZXMgd2l0aCB6ZXJvLWRlbHRhCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCShyZXZpc2lvbiAxODQ1ODkpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkwNSw2ICs5MDUs
MjggQEAgdm9pZCBGcmFtZVZpZXc6OnVwZGF0ZVNuYXBPZmZzZXRzKCkKICAgICAKICAgICB1cGRh
dGVTbmFwT2Zmc2V0c0ZvclNjcm9sbGFibGVBcmVhKCp0aGlzLCAqYm9keSwgKnJlbmRlclZpZXco
KSwgYm9keS0+cmVuZGVyZXIoKS0+c3R5bGUoKSk7CiB9CisKK2Jvb2wgRnJhbWVWaWV3Ojppc1Nj
cm9sbFNuYXBJblByb2dyZXNzKCkgY29uc3QKK3sKKyAgICBpZiAoc2Nyb2xsYmFyc1N1cHByZXNz
ZWQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIC8vIElmIHRoZSBzY3JvbGxp
bmcgdGhyZWFkIHVwZGF0ZXMgdGhlIHNjcm9sbCBwb3NpdGlvbiBmb3IgdGhpcyBGcmFtZVZpZXcs
IHRoZW4gd2Ugc2hvdWxkIHJldHVybgorICAgIC8vIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjppc1Nj
cm9sbFNuYXBJblByb2dyZXNzKCkuCisgICAgaWYgKFBhZ2UqIHBhZ2UgPSBmcmFtZSgpLnBhZ2Uo
KSkgeworICAgICAgICBpZiAoU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5h
dG9yID0gcGFnZS0+c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSkgeworICAgICAgICAgICAgaWYgKCFz
Y3JvbGxpbmdDb29yZGluYXRvci0+c2hvdWxkVXBkYXRlU2Nyb2xsTGF5ZXJQb3NpdGlvblN5bmNo
cm9ub3VzbHkoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gc2Nyb2xsaW5nQ29vcmRpbmF0b3It
PmlzU2Nyb2xsU25hcEluUHJvZ3Jlc3MoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAv
LyBJZiB0aGUgbWFpbiB0aHJlYWQgdXBkYXRlcyB0aGUgc2Nyb2xsIHBvc2l0aW9uIGZvciB0aGlz
IEZyYW1lVmlldywgd2Ugc2hvdWxkIHJldHVybgorICAgIC8vIFNjcm9sbEFuaW1hdG9yOjppc1Nj
cm9sbFNuYXBJblByb2dyZXNzKCkuCisgICAgaWYgKFNjcm9sbEFuaW1hdG9yKiBzY3JvbGxBbmlt
YXRvciA9IGV4aXN0aW5nU2Nyb2xsQW5pbWF0b3IoKSkKKyAgICAgICAgcmV0dXJuIHNjcm9sbEFu
aW1hdG9yLT5pc1Njcm9sbFNuYXBJblByb2dyZXNzKCk7CisgICAgCisgICAgcmV0dXJuIGZhbHNl
OworfQogI2VuZGlmCiAKIGJvb2wgRnJhbWVWaWV3OjpmbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JU
aGlzRnJhbWUoRnJhbWUqIHJvb3RGcmFtZUZvckZsdXNoKQpJbmRleDogU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5oCShyZXZpc2lvbiAxODQ1ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5oCSh3b3JraW5nIGNvcHkpCkBAIC00LDcgKzQsNyBAQAogICAgICAgICAgICAgIChDKSAxOTk4
LCAxOTk5IFRvcmJlbiBXZWlzICh3ZWlzQGtkZS5vcmcpCiAgICAgICAgICAgICAgKEMpIDE5OTkg
TGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKICAgICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBL
b2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKLSAgIENvcHlyaWdodCAoQykgMjAwNC0yMDA5LCAy
MDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAgIENvcHlyaWdodCAoQykgMjAw
NC0yMDA5LCAyMDE0LTIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogCiAgICBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCiAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYwpAQCAtNTM4LDcgKzUzOCw4IEBAIHB1YmxpYzoKICAgICBGbG9hdFJlY3QgZXhw
b3NlZFJlY3QoKSBjb25zdCB7IHJldHVybiBtX2V4cG9zZWRSZWN0OyB9CiAKICNpZiBFTkFCTEUo
Q1NTX1NDUk9MTF9TTkFQKQotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTbmFwT2Zmc2V0cygpIG92
ZXJyaWRlOworICAgIHZvaWQgdXBkYXRlU25hcE9mZnNldHMoKSBvdmVycmlkZTsKKyAgICBib29s
IGlzU2Nyb2xsU25hcEluUHJvZ3Jlc3MoKSBjb25zdCBvdmVycmlkZTsKICNlbmRpZgogCiAgICAg
dmlydHVhbCBmbG9hdCBhZGp1c3RTY3JvbGxTdGVwRm9yRml4ZWRDb250ZW50KGZsb2F0IHN0ZXAs
IFNjcm9sbGJhck9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcml0eSkgb3ZlcnJpZGU7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9y
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Nj
cm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAkocmV2aXNpb24gMTg0NTg5KQorKysgU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTYxMSw2ICs2MTEsMTMgQEAgdm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9y
OjpyZW1vdmVUZQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQorYm9v
bCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjppc1Njcm9sbFNuYXBJblByb2dyZXNzKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gc2Nyb2xsaW5nVHJlZSgpLT5pc1Njcm9sbFNuYXBJblByb2dyZXNz
KCk7Cit9CisjZW5kaWYKKyAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8v
IEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oCShyZXZpc2lv
biAxODQ1ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMiw2ICsxMDIsMTAgQEAgcHJpdmF0
ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNSdWJiZXJCYW5kSW5Qcm9ncmVzcygpIGNvbnN0IG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxQaW5uaW5nQmVoYXZpb3IoU2Nyb2xsUGlu
bmluZ0JlaGF2aW9yKSBvdmVycmlkZTsKIAorI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCisg
ICAgYm9vbCBpc1Njcm9sbFNuYXBJblByb2dyZXNzKCkgY29uc3Qgb3ZlcnJpZGU7CisjZW5kaWYK
KwogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBzeW5jQ2hpbGRQb3NpdGlvbnMoY29u
c3QgTGF5b3V0UmVjdCYgdmlld3BvcnRSZWN0KSBvdmVycmlkZTsKICAgICBXRUJDT1JFX0VYUE9S
VCB2aXJ0dWFsIHZvaWQgc2Nyb2xsYWJsZUFyZWFTY3JvbGxiYXJMYXllckRpZENoYW5nZShTY3Jv
bGxhYmxlQXJlYSYsIFNjcm9sbGJhck9yaWVudGF0aW9uKSBvdmVycmlkZTsKIApJbmRleDogU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRv
ci5oCShyZXZpc2lvbiAxODQ1ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdDb29yZGluYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xNzYsNiArMTc2LDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBzeW5jQ2hpbGRQb3NpdGlvbnMoY29uc3QgTGF5b3V0UmVj
dCYpIHsgfQogICAgIHZpcnR1YWwgU3RyaW5nIHNjcm9sbGluZ1N0YXRlVHJlZUFzVGV4dCgpIGNv
bnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc1J1YmJlckJhbmRJblByb2dyZXNzKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNTY3JvbGxTbmFwSW5Qcm9ncmVzcygp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldFNjcm9sbFBpbm5p
bmdCZWhhdmlvcihTY3JvbGxQaW5uaW5nQmVoYXZpb3IpIHsgfQogCiAgICAgLy8gR2VuZXJhdGVk
IGEgdW5pcXVlIGlkIGZvciBzY3JvbGwgbGF5ZXJzLgpJbmRleDogU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAJKHJldmlzaW9uIDE4NDU4OSkKKysr
IFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMywg
MjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTItMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTM5LDIwICszOSw2IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IFNjcm9sbGluZ1RyZWU6OlNjcm9sbGluZ1RyZWUoKQotICAgIDogbV9ydWJiZXJCYW5kc0F0TGVm
dCh0cnVlKQotICAgICwgbV9ydWJiZXJCYW5kc0F0UmlnaHQodHJ1ZSkKLSAgICAsIG1fcnViYmVy
QmFuZHNBdFRvcCh0cnVlKQotICAgICwgbV9ydWJiZXJCYW5kc0F0Qm90dG9tKHRydWUpCi0gICAg
LCBtX21haW5GcmFtZVBpbm5lZFRvVGhlTGVmdCh0cnVlKQotICAgICwgbV9tYWluRnJhbWVQaW5u
ZWRUb1RoZVJpZ2h0KHRydWUpCi0gICAgLCBtX21haW5GcmFtZVBpbm5lZFRvVGhlVG9wKHRydWUp
Ci0gICAgLCBtX21haW5GcmFtZVBpbm5lZFRvVGhlQm90dG9tKHRydWUpCi0gICAgLCBtX21haW5G
cmFtZUlzUnViYmVyQmFuZGluZyhmYWxzZSkKLSAgICAsIG1fc2Nyb2xsUGlubmluZ0JlaGF2aW9y
KERvTm90UGluKQotICAgICwgbV9sYXRjaGVkTm9kZSgwKQotICAgICwgbV9zY3JvbGxpbmdQZXJm
b3JtYW5jZUxvZ2dpbmdFbmFibGVkKGZhbHNlKQotICAgICwgbV9pc0hhbmRsaW5nUHJvZ3JhbW1h
dGljU2Nyb2xsKGZhbHNlKQotICAgICwgbV9maXhlZE9yU3RpY2t5Tm9kZUNvdW50KDApCiB7CiB9
CiAKQEAgLTI2Myw2ICsyNDksMjAgQEAgdm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRNYWluRnJhbWVJ
c1J1YmJlcgogICAgIG1fbWFpbkZyYW1lSXNSdWJiZXJCYW5kaW5nID0gaXNSdWJiZXJCYW5kaW5n
OwogfQogCitib29sIFNjcm9sbGluZ1RyZWU6OmlzU2Nyb2xsU25hcEluUHJvZ3Jlc3MoKQorewor
ICAgIE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CisgICAgCisgICAgcmV0dXJuIG1fbWFpbkZy
YW1lSXNTY3JvbGxTbmFwcGluZzsKK30KKyAgICAKK3ZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0TWFp
bkZyYW1lSXNTY3JvbGxTbmFwcGluZyhib29sIGlzU2Nyb2xsU25hcHBpbmcpCit7CisgICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIAorICAgIG1fbWFpbkZyYW1lSXNTY3JvbGxT
bmFwcGluZyA9IGlzU2Nyb2xsU25hcHBpbmc7Cit9CisKIHZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0
Q2FuUnViYmVyQmFuZFN0YXRlKGJvb2wgY2FuUnViYmVyQmFuZEF0TGVmdCwgYm9vbCBjYW5SdWJi
ZXJCYW5kQXRSaWdodCwgYm9vbCBjYW5SdWJiZXJCYW5kQXRUb3AsIGJvb2wgY2FuUnViYmVyQmFu
ZEF0Qm90dG9tKQogewogICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3N3aXBlU3RhdGVNdXRleCk7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5o
CShyZXZpc2lvbiAxODQ1ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTY0LDYgKzY0LDggQEAgcHVibGljOgogICAg
IAogICAgIHZvaWQgc2V0TWFpbkZyYW1lSXNSdWJiZXJCYW5kaW5nKGJvb2wpOwogICAgIGJvb2wg
aXNSdWJiZXJCYW5kSW5Qcm9ncmVzcygpOworICAgIHZvaWQgc2V0TWFpbkZyYW1lSXNTY3JvbGxT
bmFwcGluZyhib29sKTsKKyAgICBib29sIGlzU2Nyb2xsU25hcEluUHJvZ3Jlc3MoKTsKIAogICAg
IHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlKCkgeyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVh
bCB2b2lkIGNvbW1pdE5ld1RyZWVTdGF0ZShzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsaW5nU3RhdGVU
cmVlPik7CkBAIC0xNjEsMjQgKzE2MywyNSBAQCBwcml2YXRlOgogICAgIEZsb2F0UG9pbnQgbV9t
YWluRnJhbWVTY3JvbGxQb3NpdGlvbjsKIAogICAgIE11dGV4IG1fc3dpcGVTdGF0ZU11dGV4Owot
ICAgIGJvb2wgbV9ydWJiZXJCYW5kc0F0TGVmdDsKLSAgICBib29sIG1fcnViYmVyQmFuZHNBdFJp
Z2h0OwotICAgIGJvb2wgbV9ydWJiZXJCYW5kc0F0VG9wOwotICAgIGJvb2wgbV9ydWJiZXJCYW5k
c0F0Qm90dG9tOwotICAgIGJvb2wgbV9tYWluRnJhbWVQaW5uZWRUb1RoZUxlZnQ7Ci0gICAgYm9v
bCBtX21haW5GcmFtZVBpbm5lZFRvVGhlUmlnaHQ7Ci0gICAgYm9vbCBtX21haW5GcmFtZVBpbm5l
ZFRvVGhlVG9wOwotICAgIGJvb2wgbV9tYWluRnJhbWVQaW5uZWRUb1RoZUJvdHRvbTsKLSAgICBi
b29sIG1fbWFpbkZyYW1lSXNSdWJiZXJCYW5kaW5nOwotICAgIFNjcm9sbFBpbm5pbmdCZWhhdmlv
ciBtX3Njcm9sbFBpbm5pbmdCZWhhdmlvcjsKLSAgICBTY3JvbGxpbmdOb2RlSUQgbV9sYXRjaGVk
Tm9kZTsKKyAgICBTY3JvbGxQaW5uaW5nQmVoYXZpb3IgbV9zY3JvbGxQaW5uaW5nQmVoYXZpb3Ig
eyBEb05vdFBpbiB9OworICAgIFNjcm9sbGluZ05vZGVJRCBtX2xhdGNoZWROb2RlIHsgMCB9Owog
Ci0gICAgYm9vbCBtX3Njcm9sbGluZ1BlcmZvcm1hbmNlTG9nZ2luZ0VuYWJsZWQ7Ci0gICAgCi0g
ICAgYm9vbCBtX2lzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGw7Ci0gICAgdW5zaWduZWQgbV9m
aXhlZE9yU3RpY2t5Tm9kZUNvdW50OwotfTsKKyAgICB1bnNpZ25lZCBtX2ZpeGVkT3JTdGlja3lO
b2RlQ291bnQgeyAwIH07CiAKKyAgICBib29sIG1fcnViYmVyQmFuZHNBdExlZnQgeyB0cnVlIH07
CisgICAgYm9vbCBtX3J1YmJlckJhbmRzQXRSaWdodCB7IHRydWUgfTsKKyAgICBib29sIG1fcnVi
YmVyQmFuZHNBdFRvcCB7IHRydWUgfTsKKyAgICBib29sIG1fcnViYmVyQmFuZHNBdEJvdHRvbSB7
IHRydWUgfTsKKyAgICBib29sIG1fbWFpbkZyYW1lUGlubmVkVG9UaGVMZWZ0IHsgdHJ1ZSB9Owor
ICAgIGJvb2wgbV9tYWluRnJhbWVQaW5uZWRUb1RoZVJpZ2h0IHsgdHJ1ZSB9OworICAgIGJvb2wg
bV9tYWluRnJhbWVQaW5uZWRUb1RoZVRvcCB7IHRydWUgfTsKKyAgICBib29sIG1fbWFpbkZyYW1l
UGlubmVkVG9UaGVCb3R0b20geyB0cnVlIH07CisgICAgYm9vbCBtX21haW5GcmFtZUlzUnViYmVy
QmFuZGluZyB7IGZhbHNlIH07CisgICAgYm9vbCBtX21haW5GcmFtZUlzU2Nyb2xsU25hcHBpbmcg
eyBmYWxzZSB9OworICAgIGJvb2wgbV9zY3JvbGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVk
IHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNIYW5kbGluZ1Byb2dyYW1tYXRpY1Njcm9sbCB7IGZh
bHNlIH07Cit9OworICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZGVmaW5lIFNQRUNJ
QUxJWkVfVFlQRV9UUkFJVFNfU0NST0xMSU5HX1RSRUUoVG9WYWx1ZVR5cGVOYW1lLCBwcmVkaWNh
dGUpIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdU
cmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMuaAko
cmV2aXNpb24gMTg0NTg5KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Nj
cm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMuaAkod29ya2luZyBjb3B5KQpAQCAtODYs
NiArODYsOCBAQCBwcml2YXRlOgogICAgIExheW91dFVuaXQgc2Nyb2xsT2Zmc2V0T25BeGlzKFNj
cm9sbEV2ZW50QXhpcykgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBpbW1lZGlhdGVTY3JvbGxP
bkF4aXMoU2Nyb2xsRXZlbnRBeGlzLCBmbG9hdCBkZWx0YSkgb3ZlcnJpZGU7CiAgICAgZmxvYXQg
cGFnZVNjYWxlRmFjdG9yKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBzdGFydFNjcm9sbFNu
YXBUaW1lcihTY3JvbGxFdmVudEF4aXMpIG92ZXJyaWRlOworICAgIHZvaWQgc3RvcFNjcm9sbFNu
YXBUaW1lcihTY3JvbGxFdmVudEF4aXMpIG92ZXJyaWRlOwogI2VuZGlmCiAKICAgICB2b2lkIGxv
Z0V4cG9zZWRVbmZpbGxlZEFyZWEoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL21hYy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRnJhbWVT
Y3JvbGxpbmdOb2RlTWFjLm1tCShyZXZpc2lvbiAxODQ1ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5tbQko
d29ya2luZyBjb3B5KQpAQCAtMTg1LDYgKzE4NSw3IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1l
U2Nyb2xsaW5nTm9kZU1hYzoKIAogICAgIG1fc2Nyb2xsQ29udHJvbGxlci5oYW5kbGVXaGVlbEV2
ZW50KHdoZWVsRXZlbnQpOwogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCisgICAgc2Nyb2xs
aW5nVHJlZSgpLnNldE1haW5GcmFtZUlzU2Nyb2xsU25hcHBpbmcobV9zY3JvbGxDb250cm9sbGVy
LmlzU2Nyb2xsU25hcEluUHJvZ3Jlc3MoKSk7CiAgICAgaWYgKG1fc2Nyb2xsQ29udHJvbGxlci5h
Y3RpdmVTY3JvbGxTbmFwSW5kZXhEaWRDaGFuZ2UoKSkKICAgICAgICAgc2Nyb2xsaW5nVHJlZSgp
LnNldEFjdGl2ZVNjcm9sbFNuYXBJbmRpY2VzKHNjcm9sbGluZ05vZGVJRCgpLCBtX3Njcm9sbENv
bnRyb2xsZXIuYWN0aXZlU2Nyb2xsU25hcEluZGV4Rm9yQXhpcyhTY3JvbGxFdmVudEF4aXM6Okhv
cml6b250YWwpLCBtX3Njcm9sbENvbnRyb2xsZXIuYWN0aXZlU2Nyb2xsU25hcEluZGV4Rm9yQXhp
cyhTY3JvbGxFdmVudEF4aXM6OlZlcnRpY2FsKSk7CiAjZW5kaWYKQEAgLTU3NCw2ICs1NzUsMTgg
QEAgZmxvYXQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYwogewogICAgIHJldHVy
biBmcmFtZVNjYWxlRmFjdG9yKCk7CiB9CisKK3ZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xs
aW5nTm9kZU1hYzo6c3RhcnRTY3JvbGxTbmFwVGltZXIoU2Nyb2xsRXZlbnRBeGlzKQoreworICAg
IHNjcm9sbGluZ1RyZWUoKS5zZXRNYWluRnJhbWVJc1Njcm9sbFNuYXBwaW5nKHRydWUpOworfQor
Cit2b2lkIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWM6OnN0b3BTY3JvbGxTbmFw
VGltZXIoU2Nyb2xsRXZlbnRBeGlzIGF4aXMpCit7CisgICAgU2Nyb2xsRXZlbnRBeGlzIG90aGVy
QXhpcyA9IChheGlzID09IFNjcm9sbEV2ZW50QXhpczo6SG9yaXpvbnRhbCkgPyBTY3JvbGxFdmVu
dEF4aXM6OlZlcnRpY2FsIDogU2Nyb2xsRXZlbnRBeGlzOjpIb3Jpem9udGFsOworICAgIGlmICgh
bV9zY3JvbGxDb250cm9sbGVyLmhhc0FjdGl2ZVNjcm9sbFNuYXBUaW1lckZvckF4aXMob3RoZXJB
eGlzKSkKKyAgICAgICAgc2Nyb2xsaW5nVHJlZSgpLnNldE1haW5GcmFtZUlzU2Nyb2xsU25hcHBp
bmcoZmFsc2UpOworfQogI2VuZGlmCiAKIHZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5n
Tm9kZU1hYzo6ZGVmZXJUZXN0c0ZvclJlYXNvbihXaGVlbEV2ZW50VGVzdFRyaWdnZXI6OlNjcm9s
bGFibGVBcmVhSWRlbnRpZmllciBpZGVudGlmaWVyLCBXaGVlbEV2ZW50VGVzdFRyaWdnZXI6OkRl
ZmVyVGVzdFRyaWdnZXJSZWFzb24gcmVhc29uKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcAkocmV2aXNpb24gMTg0NTg5KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
NTgsMTMgKzQ1OCwxMyBAQCBJbnRQb2ludCBTY3JvbGxhYmxlQXJlYTo6bmVhcmVzdEFjdGl2ZVNu
CiB2b2lkIFNjcm9sbGFibGVBcmVhOjp1cGRhdGVTY3JvbGxTbmFwU3RhdGUoKQogewogI2lmIFBM
QVRGT1JNKE1BQykKLSAgICBpZiAoU2Nyb2xsQW5pbWF0b3IqIHNjcm9sbEFuaW1hdG9yID0gZXhp
c3RpbmdTY3JvbGxBbmltYXRvcigpKSB7CisgICAgaWYgKFNjcm9sbEFuaW1hdG9yKiBzY3JvbGxB
bmltYXRvciA9IGV4aXN0aW5nU2Nyb2xsQW5pbWF0b3IoKSkKICAgICAgICAgc2Nyb2xsQW5pbWF0
b3ItPnVwZGF0ZVNjcm9sbEFuaW1hdG9yc0FuZFRpbWVycygpOwotICAgICAgICBpZiAoc2Nyb2xs
QW5pbWF0b3ItPmlzU2Nyb2xsU25hcEluUHJvZ3Jlc3MoKSkKLSAgICAgICAgICAgIHJldHVybjsK
LSAgICB9CiAjZW5kaWYKIAorICAgIGlmIChpc1Njcm9sbFNuYXBJblByb2dyZXNzKCkpCisgICAg
ICAgIHJldHVybjsKKwogICAgIEludFBvaW50IGN1cnJlbnRQb3NpdGlvbiA9IHNjcm9sbFBvc2l0
aW9uKCk7CiAgICAgSW50UG9pbnQgY29ycmVjdGVkUG9zaXRpb24gPSBuZWFyZXN0QWN0aXZlU25h
cFBvaW50KGN1cnJlbnRQb3NpdGlvbik7CiAgICAgCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbGFibGVBcmVhLmgJKHJldmlzaW9uIDE4NDU4OSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgJKHdvcmtpbmcgY29weSkKQEAgLTIzMCw2ICsyMzAs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBJbnRSZWN0IHNjcm9sbGFibGVBcmVhQm91bmRpbmdC
b3goKSBjb25zdCA9IDA7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNSdWJiZXJCYW5kSW5Qcm9ncmVz
cygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzU2Nyb2xsU25h
cEluUHJvZ3Jlc3MoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgdmlydHVhbCBib29s
IHNjcm9sbEFuaW1hdG9yRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLmgJ
KHJldmlzaW9uIDE4NDU4OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9s
bENvbnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTI0LDYgKzEyNCw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldEFjdGl2ZVNjcm9sbFNuYXBJbmRleEZvckF4aXMoU2Nyb2xsRXZlbnRBeGlz
LCB1bnNpZ25lZCk7CiAgICAgYm9vbCBhY3RpdmVTY3JvbGxTbmFwSW5kZXhEaWRDaGFuZ2UoKSBj
b25zdCB7IHJldHVybiBtX2FjdGl2ZVNjcm9sbFNuYXBJbmRleERpZENoYW5nZTsgfQogICAgIHZv
aWQgc2V0U2Nyb2xsU25hcEluZGV4RGlkQ2hhbmdlKGJvb2wgc3RhdGUpIHsgbV9hY3RpdmVTY3Jv
bGxTbmFwSW5kZXhEaWRDaGFuZ2UgPSBzdGF0ZTsgfQorICAgIGJvb2wgaGFzQWN0aXZlU2Nyb2xs
U25hcFRpbWVyRm9yQXhpcyhTY3JvbGxFdmVudEF4aXMpIGNvbnN0OwogI2VuZGlmCiAKIHByaXZh
dGU6CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVy
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENv
bnRyb2xsZXIubW0JKHJldmlzaW9uIDE4NDU4OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0JKHdvcmtpbmcgY29weSkKQEAgLTQ3Nyw2ICs0Nzcs
MTEgQEAgY29uc3QgU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUmIFNjcm9sbENvbgogICAgIHJldHVy
biAoYXhpcyA9PSBTY3JvbGxFdmVudEF4aXM6Okhvcml6b250YWwpID8gKm1faG9yaXpvbnRhbFNj
cm9sbFNuYXBTdGF0ZSA6ICptX3ZlcnRpY2FsU2Nyb2xsU25hcFN0YXRlOwogfQogCitib29sIFNj
cm9sbENvbnRyb2xsZXI6Omhhc0FjdGl2ZVNjcm9sbFNuYXBUaW1lckZvckF4aXMoU2Nyb2xsRXZl
bnRBeGlzIGF4aXMpIGNvbnN0Cit7CisgICAgcmV0dXJuIChheGlzID09IFNjcm9sbEV2ZW50QXhp
czo6SG9yaXpvbnRhbCkgPyBtX2hvcml6b250YWxTY3JvbGxTbmFwVGltZXIuaXNBY3RpdmUoKSA6
IG1fdmVydGljYWxTY3JvbGxTbmFwVGltZXIuaXNBY3RpdmUoKTsKK30KKwogc3RhdGljIGlubGlu
ZSBXaGVlbEV2ZW50U3RhdHVzIHRvV2hlZWxFdmVudFN0YXR1cyhQbGF0Zm9ybVdoZWVsRXZlbnRQ
aGFzZSBwaGFzZSwgUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2UgbW9tZW50dW1QaGFzZSkKIHsKICAg
ICBpZiAocGhhc2UgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VOb25lKSB7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAJKHJldmlzaW9uIDE4NDU4OSkKKysr
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTMyMDQsNiArMzIwNCwxNyBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVTbmFwT2Zmc2V0
cygpCiAgICAgUmVuZGVyQm94KiBib3ggPSBlbmNsb3NpbmdFbGVtZW50KCktPnJlbmRlckJveCgp
OwogICAgIHVwZGF0ZVNuYXBPZmZzZXRzRm9yU2Nyb2xsYWJsZUFyZWEoKnRoaXMsICpkb3duY2Fz
dDxIVE1MRWxlbWVudD4oZW5jbG9zaW5nRWxlbWVudCgpKSwgKmJveCwgYm94LT5zdHlsZSgpKTsK
IH0KKworYm9vbCBSZW5kZXJMYXllcjo6aXNTY3JvbGxTbmFwSW5Qcm9ncmVzcygpIGNvbnN0Cit7
CisgICAgaWYgKCFzY3JvbGxzT3ZlcmZsb3coKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IAorICAgIGlmIChTY3JvbGxBbmltYXRvciogc2Nyb2xsQW5pbWF0b3IgPSBleGlzdGluZ1Njcm9s
bEFuaW1hdG9yKCkpCisgICAgICAgIHJldHVybiBzY3JvbGxBbmltYXRvci0+aXNTY3JvbGxTbmFw
SW5Qcm9ncmVzcygpOworICAgIAorICAgIHJldHVybiBmYWxzZTsKK30KICNlbmRpZgogCiBpbnQg
UmVuZGVyTGF5ZXI6OnZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgoT3ZlcmxheVNjcm9sbGJhclNpemVS
ZWxldmFuY3kgcmVsZXZhbmN5KSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmgJKHJldmlzaW9uIDE4NDU4OSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwMywgMjAwOSwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDksIDIwMTIsIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFBvcnRpb25zIGFyZSBDb3B5cmlnaHQgKEMpIDE5
OTggTmV0c2NhcGUgQ29tbXVuaWNhdGlvbnMgQ29ycG9yYXRpb24uCiAgKgpAQCAtODc3LDYgKzg3
Nyw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzUnViYmVyQmFuZEluUHJvZ3Jlc3Mo
KSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgdXBkYXRlc1Njcm9sbExheWVyUG9z
aXRpb25Pbk1haW5UaHJlYWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAgICAg
dmlydHVhbCBib29sIGZvcmNlVXBkYXRlU2Nyb2xsYmFyc09uTWFpblRocmVhZEZvclBlcmZvcm1h
bmNlVGVzdGluZygpIGNvbnN0IG92ZXJyaWRlOworI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVAp
CisgICAgYm9vbCBpc1Njcm9sbFNuYXBJblByb2dyZXNzKCkgY29uc3Qgb3ZlcnJpZGU7CisjZW5k
aWYKIAogI2lmIFBMQVRGT1JNKElPUykKICAgICB2b2lkIHJlZ2lzdGVyQXNUb3VjaEV2ZW50TGlz
dGVuZXJGb3JTY3JvbGxpbmcoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NDU4OSkKKysr
IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBA
CisyMDE1LTA1LTE5ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAg
ICAgIFJFR1JFU1NJT04oMTQyNTkwKTogUGFydCAyOiBTY3JvbGwtc25hcCBwb2ludHMgYXJlIGlt
cHJvcGVybHkgc25hcHBpbmcgdG8gZWFybGllciBpbmRleCB2YWx1ZXMgKFNjcm9sbGluZyBUaHJl
YWQpIAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ1
MTc1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMTAyMzc4NT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBzdHViIGltcGxlbWVudGF0aW9u
IG9mIGlzU2Nyb2xsU25hcEluUHJvZ3Jlc3MgdG8gbWF0Y2ggU2Nyb2xsaW5nQ29vcmRpbmF0b3Ig
c2lnbmF0dXJlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvci5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3I6OmlzU2Nyb2xsU25hcEluUHJvZ3Jlc3MpOiBBZGRlZCBzdHViLgorCiAyMDE1
LTA1LTE5ICBKZXJlbXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkgaGFzIGluY29ycmVjdCBPU19WRVJTSU9OX01JTl9S
RVFVSVJFRCBjb25kaXRpb25hbHMuCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Nj
cm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9y
LmgJKHJldmlzaW9uIDE4NDU4OSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU2Nyb2xs
aW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjYsNiArNjYs
NyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBib29sIGlzUnViYmVyQmFuZEluUHJvZ3Jlc3Mo
KSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsUGlubmluZ0JlaGF2
aW9yKFdlYkNvcmU6OlNjcm9sbFBpbm5pbmdCZWhhdmlvcikgb3ZlcnJpZGU7CisgICAgYm9vbCBp
c1Njcm9sbFNuYXBJblByb2dyZXNzKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICAvLyBJUEM6Ok1l
c3NhZ2VSZWNlaXZlcgogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgb3ZlcnJpZGU7CkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Njcm9sbGluZy9SZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvci5tbQkocmV2aXNpb24gMTg0NTg5KQorKysgU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW0J
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0y
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtNzksNiArNzksMTIgQEAgYm9vbCBSZW1vdGVTY3JvbGxpbmdDb29yZGlu
YXRvcjo6aXNSdWJiZQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9vbCBSZW1vdGVTY3JvbGxp
bmdDb29yZGluYXRvcjo6aXNTY3JvbGxTbmFwSW5Qcm9ncmVzcygpIGNvbnN0Cit7CisgICAgLy8g
RklYTUU6IG5lZWQgdG8gbWFpbnRhaW4gc3RhdGUgaW4gdGhlIHdlYiBwcm9jZXNzPworICAgIHJl
dHVybiBmYWxzZTsKK30KKwogdm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6c2V0U2Ny
b2xsUGlubmluZ0JlaGF2aW9yKFNjcm9sbFBpbm5pbmdCZWhhdmlvcikKIHsKICAgICAvLyBGSVhN
RTogc2VuZCB0byB0aGUgVUkgcHJvY2Vzcy4K
</data>
<flag name="review"
          id="278315"
          type_id="1"
          status="+"
          setter="bdakin"
    />
          </attachment>
      

    </bug>

</bugzilla>