<?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>143288</bug_id>
          
          <creation_ts>2015-03-31 18:41:58 -0700</creation_ts>
          <short_desc>Remove scrolling tree dependency on wheel event handler counts, and use fast scrolling even when there are wheel handlers</short_desc>
          <delta_ts>2015-04-01 11:32:09 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>bdakin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>jamesr</cc>
    
    <cc>japhet</cc>
    
    <cc>kangil.han</cc>
    
    <cc>luiz</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>tonikitoo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1081858</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-03-31 18:41:58 -0700</bug_when>
    <thetext>Remove scrolling tree dependency on wheel event handler counts, and use fast scrolling even when there are wheel handlers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1081859</commentid>
    <comment_count>1</comment_count>
      <attachid>249879</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-03-31 18:50:43 -0700</bug_when>
    <thetext>Created attachment 249879
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1082047</commentid>
    <comment_count>2</comment_count>
      <attachid>249879</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2015-04-01 10:49:55 -0700</bug_when>
    <thetext>Comment on attachment 249879
Patch

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

&gt; Source/WebCore/page/scrolling/ScrollingCoordinator.cpp:162
&gt; +        // FIXME: need to handle posiiton:sticky here too.

posiiton</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1082062</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-04-01 11:32:09 -0700</bug_when>
    <thetext>https://trac.webkit.org/r182242</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>249879</attachid>
            <date>2015-03-31 18:50:43 -0700</date>
            <delta_ts>2015-04-01 10:49:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-143288-20150331185000.patch</filename>
            <type>text/plain</type>
            <size>42487</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyMjE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGNiZDAzYjFlMjU0ZTQz
ODQ4MTIwZDc2M2VjOWE0MWIxYWQ0MDZkMC4uOGEyNDRhNmM3ZDA1OTc3MTcyYzEyNTMxZGNjOWU4
MTJlZjEyY2E5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDY2IEBACiAyMDE1LTAzLTMxICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCisgICAgICAgIFJlbW92ZSBzY3Jv
bGxpbmcgdHJlZSBkZXBlbmRlbmN5IG9uIHdoZWVsIGV2ZW50IGhhbmRsZXIgY291bnRzLCBhbmQg
dXNlIGZhc3Qgc2Nyb2xsaW5nIGV2ZW4gd2hlbiB0aGVyZSBhcmUgd2hlZWwgaGFuZGxlcnMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MzI4OAorICAg
ICAgICByZGFyOi8vcHJvYmxlbS8xNjA0OTYyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSB0aGUgd2hlZWwgZXZlbnQgY291bnRpbmcgdGhh
dCBEb2N1bWVudCBkb2VzLCBhbmQgcGFzc2VzIGludG8gdGhlIHNjcm9sbGluZyB0cmVlLgorICAg
ICAgICBUaGUgU2Nyb2xsaW5nVHJlZSBub3cganVzdCB1c2VzIHRoZSBub24tZmFzdCBzY3JvbGxh
YmxlIHJlZ2lvbiB0byBkZXRlcm1pbmUgd2hlbiB0bworICAgICAgICBmYXN0IHNjcm9sbCBvbiBw
YWdlcyB3aXRoIHdoZWVsIGV2ZW50IGhhbmRsZXJzLgorICAgICAgICAKKyAgICAgICAgSWYgYSBo
YW5kbGVyIGluY2x1ZGVzIHBvc2l0aW9uOmZpeGVkIHJlbmRlcmVycywgd2UganVzdCBjb3ZlciB0
aGUgd2hvbGUgZG9jdW1lbnQKKyAgICAgICAgd2l0aCB0aGUgc2xvdy1zY3JvbGxpbmcgcmVnaW9u
IGN1cnJlbnRseS4gVGhpcyBjb3VsZCBiZSBpbXByb3ZlZC4KKyAgICAgICAgCisgICAgICAgICog
ZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpEb2N1bWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZGlkQmVjb21lQ3VycmVudERvY3VtZW50SW5G
cmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6d2hlZWxFdmVudEhhbmRsZXJzQ2hh
bmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZGlkQWRkV2hlZWxFdmVudEhhbmRs
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmRpZFJlbW92ZVdoZWVsRXZlbnRIYW5k
bGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp3aGVlbEV2ZW50SGFuZGxlckNvdW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp0b3VjaEV2ZW50SGFuZGxlckNvdW50KToK
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjphYnNvbHV0ZVJlZ2lvbkZvckV2ZW50VGFyZ2V0
cyk6IENoYW5nZWQgdG8gcmV0dXJuIGEgcGFpcjxSZWdpb24sIGJvb2w+CisgICAgICAgIHdoZXJl
IHRoZSBib29sIGluZGljYXRlcyB3aGV0aGVyIGFueSBoYW5kbGVyIGluY2x1ZGVzIHBvc2l0aW9u
OmZpeGVkIGNvbnRlbnQuCisgICAgICAgIChXZWJDb3JlOjpwYWdlV2hlZWxFdmVudEhhbmRsZXJD
b3VudENoYW5nZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6d2hlZWxFdmVudEhhbmRs
ZXJDb3VudENoYW5nZWQpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OndoZWVsRXZlbnRIYW5kbGVyQ291bnQpOiBEZWxldGVk
LgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKyAgICAgICAgKiBwYWdlL0Nocm9t
ZUNsaWVudC5oOgorICAgICAgICAqIHBhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TW91c2VXaGVlbFJlZ2lvbk92ZXJsYXk6OnVwZGF0ZVJlZ2lvbik6CisgICAg
ICAgICogcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpmcmFtZVZpZXdOb25GYXN0
U2Nyb2xsYWJsZVJlZ2lvbkNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNTY3JvbGxp
bmdDb29yZGluYXRvcjo6cmVjb21wdXRlV2hlZWxFdmVudEhhbmRsZXJDb3VudEZvckZyYW1lVmll
dyk6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29y
ZGluYXRvci5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpjb21wdXRlTm9u
RmFzdFNjcm9sbGFibGVSZWdpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRp
bmF0b3I6OmZyYW1lVmlld1Jvb3RMYXllckRpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdDb29yZGluYXRvcjo6Y29tcHV0ZUN1cnJlbnRXaGVlbEV2ZW50SGFuZGxlckNvdW50
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpmcmFt
ZVZpZXdXaGVlbEV2ZW50SGFuZGxlckNvdW50Q2hhbmdlZCk6IERlbGV0ZWQuCisgICAgICAgICog
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpyZWNvbXB1dGVXaGVlbEV2ZW50SGFuZGxlckNvdW50Rm9y
RnJhbWVWaWV3KTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdT
dGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdT
dGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGUp
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU6OnNl
dFdoZWVsRXZlbnRIYW5kbGVyQ291bnQpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlLmg6CisgICAgICAgICogcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdU
cmVlOjpTY3JvbGxpbmdUcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OnNo
b3VsZEhhbmRsZVdoZWVsRXZlbnRTeW5jaHJvbm91c2x5KToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbGluZ1RyZWU6OmNvbW1pdE5ld1RyZWVTdGF0ZSk6CisgICAgICAgICogcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxp
bmdDb29yZGluYXRvck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5h
dG9yTWFjOjp1cGRhdGVUaWxlZFNjcm9sbGluZ0luZGljYXRvcik6CisgICAgICAgICogcGFnZS9z
Y3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMubW06CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjOjp1cGRhdGVC
ZWZvcmVDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpsb2dXaGVlbEV2ZW50SGFuZGxlckNv
dW50Q2hhbmdlZCk6IERlbGV0ZWQuCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjp0b3VjaEV2ZW50SGFuZGxlckNvdW50KToKKwor
MjAxNS0wMy0zMSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKwogICAg
ICAgICBNYWtlIGl0IHBvc3NpYmxlIHRvIGNvbXB1dGUgYSByZWdpb24gZm9yIGVsZW1lbnRzIG9u
IHRoZSBwYWdlIHRoYXQgaGF2ZSB3aGVlbCBldmVudCBoYW5kbGVycwogICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyODA3CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpp
bmRleCA3NTdlYTQ5ZDBhMzBmOTRkNTYyMmI4MzUzNWMxYmViZDA0MzFlOTU2Li41NDA4ZTYzNGZj
M2E0ZTNhM2MxNjAzNDEwOGMxMTcwMzhmMTk1ZWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTIgQEAKKzIwMTUtMDMtMzEgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5j
b20+CisKKyAgICAgICAgUmVtb3ZlIHNjcm9sbGluZyB0cmVlIGRlcGVuZGVuY3kgb24gd2hlZWwg
ZXZlbnQgaGFuZGxlciBjb3VudHMsIGFuZCB1c2UgZmFzdCBzY3JvbGxpbmcgZXZlbiB3aGVuIHRo
ZXJlIGFyZSB3aGVlbCBoYW5kbGVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTQzMjg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKwogMjAx
NS0wMy0zMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAg
ICBDbGVhbiB1cCBJZGVudGlmaWVyIGZhY3RvcmllcyB0byBjbGFyaWZ5IHRoZSBtZWFuaW5nIG9m
IFN0cmluZ0ltcGwqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYThlN2UyYmQyYTRkNGRhNTViNWQxMTFjY2E3Mjhi
MGM1YzM0YjMxMy4uYWU0M2FmNDcxNTBiZTU4N2VhZDM0NzI1ZTRlZTY2MGEwMzYyY2ZjNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE1LTAzLTMxICBTaW1vbiBGcmFzZXIgIDxzaW1v
bi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBzY3JvbGxpbmcgdHJlZSBkZXBl
bmRlbmN5IG9uIHdoZWVsIGV2ZW50IGhhbmRsZXIgY291bnRzLCBhbmQgdXNlIGZhc3Qgc2Nyb2xs
aW5nIGV2ZW4gd2hlbiB0aGVyZSBhcmUgd2hlZWwgaGFuZGxlcnMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MzI4OAorICAgICAgICByZGFyOi8vcHJv
YmxlbS8xNjA0OTYyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFJlbW92ZSB0aGUgd2hlZWwgZXZlbnQgY291bnRpbmcgdGhhdCBEb2N1bWVudCBkb2Vz
LCBhbmQgcGFzc2VzIGludG8gdGhlIHNjcm9sbGluZyB0cmVlLgorICAgICAgICBUaGUgU2Nyb2xs
aW5nVHJlZSBub3cganVzdCB1c2VzIHRoZSBub24tZmFzdCBzY3JvbGxhYmxlIHJlZ2lvbiB0byBk
ZXRlcm1pbmUgd2hlbiB0bworICAgICAgICBmYXN0IHNjcm9sbCBvbiBwYWdlcyB3aXRoIHdoZWVs
IGV2ZW50IGhhbmRsZXJzLgorICAgICAgICAKKyAgICAgICAgSWYgYSBoYW5kbGVyIGluY2x1ZGVz
IHBvc2l0aW9uOmZpeGVkIHJlbmRlcmVycywgd2UganVzdCBjb3ZlciB0aGUgd2hvbGUgZG9jdW1l
bnQKKyAgICAgICAgd2l0aCB0aGUgc2xvdy1zY3JvbGxpbmcgcmVnaW9uIGN1cnJlbnRseS4gVGhp
cyBjb3VsZCBiZSBpbXByb3ZlZC4KKworICAgICAgICAqIFNoYXJlZC9TY3JvbGxpbmcvUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5jcHA6CisgICAgICAgIChBcmd1bWVudENv
ZGVyPFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlPjo6ZW5jb2RlKToKKyAgICAgICAg
KEFyZ3VtZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU+OjpkZWNvZGUp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdUcmVlVGV4dFN0cmVhbTo6ZHVtcCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OndoZWVsRXZlbnRIYW5kbGVyc0No
YW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6Om51bVdoZWVsRXZlbnRI
YW5kbGVyc0NoYW5nZWQpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpXZWJQYWdlKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6d2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OnJlY29tcHV0ZVNob3J0Q2lyY3VpdEhvcml6b250YWxXaGVlbEV2ZW50
c1N0YXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bnVtV2hlZWxFdmVudEhhbmRsZXJz
Q2hhbmdlZCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aDoKKwogMjAxNS0wMy0zMSAgVGltb3RoeSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5j
b20+CiAKICAgICAgICAgU3dpcGVzIG9jY3VyIGluIHRoZSB3cm9uZyBkaXJlY3Rpb24gaW4gUlRM
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBlOGE3ZjE0MTI1NjViYzg5ZmFhYTFiYTg5ZmY4
ZjRkZGEzYjI0OGMyLi41NmYzZDFmYjFhOWM0OWFiY2FhMTdiZWE0N2FmYmE4N2U0ZDM2MDE1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTQ5MCw3ICs0OTAsNiBAQCBEb2N1bWVudDo6RG9j
dW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBVUkwmIHVybCwgdW5zaWduZWQgZG9jdW1lbnRDbGFz
c2VzLCB1bnNpZwogICAgICwgbV93cml0aW5nTW9kZVNldE9uRG9jdW1lbnRFbGVtZW50KGZhbHNl
KQogICAgICwgbV93cml0ZVJlY3Vyc2lvbklzVG9vRGVlcChmYWxzZSkKICAgICAsIG1fd3JpdGVS
ZWN1cnNpb25EZXB0aCgwKQotICAgICwgbV93aGVlbEV2ZW50SGFuZGxlckNvdW50KDApCiAgICAg
LCBtX2xhc3RIYW5kbGVkVXNlckdlc3R1cmVUaW1lc3RhbXAoMCkKICNpZiBQTEFURk9STShJT1Mp
CiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKQEAgLTIwOTgsMTYgKzIwOTcsNiBAQCB2
b2lkIERvY3VtZW50OjpjcmVhdGVSZW5kZXJUcmVlKCkKICAgICByZWNhbGNTdHlsZShTdHlsZTo6
Rm9yY2UpOwogfQogCi1zdGF0aWMgdm9pZCBwYWdlV2hlZWxFdmVudEhhbmRsZXJDb3VudENoYW5n
ZWQoUGFnZSYgcGFnZSkKLXsKLSAgICB1bnNpZ25lZCBjb3VudCA9IDA7Ci0gICAgZm9yIChjb25z
dCBGcmFtZSogZnJhbWUgPSAmcGFnZS5tYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUt
PnRyZWUoKS50cmF2ZXJzZU5leHQoKSkgewotICAgICAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50
ID0gZnJhbWUtPmRvY3VtZW50KCkpCi0gICAgICAgICAgICBjb3VudCArPSBkb2N1bWVudC0+d2hl
ZWxFdmVudEhhbmRsZXJDb3VudCgpOwotICAgIH0KLSAgICBwYWdlLmNocm9tZSgpLmNsaWVudCgp
Lm51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQoY291bnQpOwotfQotCiB2b2lkIERvY3VtZW50
OjpkaWRCZWNvbWVDdXJyZW50RG9jdW1lbnRJbkZyYW1lKCkKIHsKICAgICAvLyBGSVhNRTogQXJl
IHRoZXJlIGNhc2VzIHdoZXJlIHRoZSBkb2N1bWVudCBjYW4gYmUgZGlzbG9kZ2VkIGZyb20gdGhl
IGZyYW1lIGR1cmluZyB0aGUgZXZlbnQgaGFuZGxpbmcgYmVsb3c/CkBAIC0yMTI4LDcgKzIxMTcs
NyBAQCB2b2lkIERvY3VtZW50OjpkaWRCZWNvbWVDdXJyZW50RG9jdW1lbnRJbkZyYW1lKCkKICAg
ICAvLyBzdWJmcmFtZXMnIGRvY3VtZW50cyBoYXZlIG5vIHdoZWVsIGV2ZW50IGhhbmRsZXJzLCB0
aGVuIHRoZSBjb3VudCBkaWQgbm90IGNoYW5nZSwKICAgICAvLyB1bmxlc3MgdGhlIGRvY3VtZW50
cyB0aGV5IGFyZSByZXBsYWNpbmcgaGFkIHdoZWVsIGV2ZW50IGhhbmRsZXJzLgogICAgIGlmIChw
YWdlKCkgJiYgbV9mcmFtZS0+aXNNYWluRnJhbWUoKSkKLSAgICAgICAgcGFnZVdoZWVsRXZlbnRI
YW5kbGVyQ291bnRDaGFuZ2VkKCpwYWdlKCkpOworICAgICAgICB3aGVlbEV2ZW50SGFuZGxlcnND
aGFuZ2VkKCk7CiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIC8vIEZJWE1FOiBEb2lu
ZyB0aGlzIG9ubHkgZm9yIHRoZSBtYWluIGZyYW1lIGlzIGluc3VmZmljaWVudC4KQEAgLTU5ODIs
MzAgKzU5NzEsMjMgQEAgUmVmUHRyPFRvdWNoPiBEb2N1bWVudDo6Y3JlYXRlVG91Y2goRE9NV2lu
ZG93KiB3aW5kb3csIEV2ZW50VGFyZ2V0KiB0YXJnZXQsIGludAogI2VuZGlmCiAjZW5kaWYgLy8g
IVBMQVRGT1JNKElPUykKIAotc3RhdGljIHZvaWQgd2hlZWxFdmVudEhhbmRsZXJDb3VudENoYW5n
ZWQoRG9jdW1lbnQqIGRvY3VtZW50KQordm9pZCBEb2N1bWVudDo6d2hlZWxFdmVudEhhbmRsZXJz
Q2hhbmdlZCgpCiB7Ci0gICAgUGFnZSogcGFnZSA9IGRvY3VtZW50LT5wYWdlKCk7CisgICAgUGFn
ZSogcGFnZSA9IHRoaXMtPnBhZ2UoKTsKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybjsK
IAotICAgIHBhZ2VXaGVlbEV2ZW50SGFuZGxlckNvdW50Q2hhbmdlZCgqcGFnZSk7Ci0KLSAgICBT
Y3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSBwYWdlLT5zY3JvbGxp
bmdDb29yZGluYXRvcigpOwotICAgIGlmICghc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCi0gICAgICAg
IHJldHVybjsKLQotICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gZG9jdW1lbnQtPnZpZXcoKTsK
LSAgICBpZiAoIWZyYW1lVmlldykKLSAgICAgICAgcmV0dXJuOworICAgIGlmIChGcmFtZVZpZXcq
IGZyYW1lVmlldyA9IHZpZXcoKSkgeworICAgICAgICBpZiAoU2Nyb2xsaW5nQ29vcmRpbmF0b3Iq
IHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gcGFnZS0+c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSkKKyAg
ICAgICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5mcmFtZVZpZXdOb25GYXN0U2Nyb2xsYWJs
ZVJlZ2lvbkNoYW5nZWQoKmZyYW1lVmlldyk7CisgICAgfQogCi0gICAgLy8gRklYTUU6IFdoeSBk
b2Vzbid0IHRoaXMgbmVlZCB0byBiZSBjYWxsZWQgaW4gZGlkQmVjb21lQ3VycmVudERvY3VtZW50
SW5GcmFtZT8KLSAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+ZnJhbWVWaWV3V2hlZWxFdmVudEhh
bmRsZXJDb3VudENoYW5nZWQoKmZyYW1lVmlldyk7CisgICAgYm9vbCBoYXZlSGFuZGxlcnMgPSBt
X3doZWVsRXZlbnRUYXJnZXRzICYmICFtX3doZWVsRXZlbnRUYXJnZXRzLT5pc0VtcHR5KCk7Cisg
ICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkud2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZChoYXZl
SGFuZGxlcnMpOwogfQogCiB2b2lkIERvY3VtZW50OjpkaWRBZGRXaGVlbEV2ZW50SGFuZGxlcihO
b2RlJiBub2RlKQogewotICAgICsrbV93aGVlbEV2ZW50SGFuZGxlckNvdW50OwotCiAgICAgaWYg
KCFtX3doZWVsRXZlbnRUYXJnZXRzKQogICAgICAgICBtX3doZWVsRXZlbnRUYXJnZXRzID0gc3Rk
OjptYWtlX3VuaXF1ZTxFdmVudFRhcmdldFNldD4oKTsKIApAQCAtNjAxNiw3ICs1OTk4LDcgQEAg
dm9pZCBEb2N1bWVudDo6ZGlkQWRkV2hlZWxFdmVudEhhbmRsZXIoTm9kZSYgbm9kZSkKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIHdoZWVsRXZlbnRIYW5kbGVyQ291bnRDaGFuZ2VkKHRo
aXMpOworICAgIHdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQoKTsKIAogICAgIGlmIChGcmFtZSog
ZnJhbWUgPSB0aGlzLT5mcmFtZSgpKQogICAgICAgICBEZWJ1Z1BhZ2VPdmVybGF5czo6ZGlkQ2hh
bmdlRXZlbnRIYW5kbGVycygqZnJhbWUpOwpAQCAtNjAyNCw5ICs2MDA2LDYgQEAgdm9pZCBEb2N1
bWVudDo6ZGlkQWRkV2hlZWxFdmVudEhhbmRsZXIoTm9kZSYgbm9kZSkKIAogdm9pZCBEb2N1bWVu
dDo6ZGlkUmVtb3ZlV2hlZWxFdmVudEhhbmRsZXIoTm9kZSYgbm9kZSkKIHsKLSAgICBBU1NFUlQo
bV93aGVlbEV2ZW50SGFuZGxlckNvdW50ID4gMCk7Ci0gICAgLS1tX3doZWVsRXZlbnRIYW5kbGVy
Q291bnQ7Ci0KICAgICBpZiAoIW1fd2hlZWxFdmVudFRhcmdldHMpCiAgICAgICAgIHJldHVybjsK
IApAQCAtNjAzOCwxMiArNjAxNywyNCBAQCB2b2lkIERvY3VtZW50OjpkaWRSZW1vdmVXaGVlbEV2
ZW50SGFuZGxlcihOb2RlJiBub2RlKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgd2hl
ZWxFdmVudEhhbmRsZXJDb3VudENoYW5nZWQodGhpcyk7CisgICAgd2hlZWxFdmVudEhhbmRsZXJz
Q2hhbmdlZCgpOwogCiAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IHRoaXMtPmZyYW1lKCkpCiAgICAg
ICAgIERlYnVnUGFnZU92ZXJsYXlzOjpkaWRDaGFuZ2VFdmVudEhhbmRsZXJzKCpmcmFtZSk7CiB9
CiAKK3Vuc2lnbmVkIERvY3VtZW50Ojp3aGVlbEV2ZW50SGFuZGxlckNvdW50KCkgY29uc3QKK3sK
KyAgICBpZiAoIW1fd2hlZWxFdmVudFRhcmdldHMpCisgICAgICAgIHJldHVybiAwOworCisgICAg
dW5zaWduZWQgY291bnQgPSAwOworICAgIGZvciAoYXV0byYgaGFuZGxlciA6ICptX3doZWVsRXZl
bnRUYXJnZXRzKQorICAgICAgICBjb3VudCArPSBoYW5kbGVyLnZhbHVlOworCisgICAgcmV0dXJu
IGNvdW50OworfQorCiB2b2lkIERvY3VtZW50OjpkaWRBZGRUb3VjaEV2ZW50SGFuZGxlcihOb2Rl
JiBoYW5kbGVyKQogewogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCkBAIC02MTE0LDYgKzYxMDUs
MjIgQEAgdm9pZCBEb2N1bWVudDo6ZGlkUmVtb3ZlRXZlbnRUYXJnZXROb2RlKE5vZGUmIGhhbmRs
ZXIpCiAgICAgfQogfQogCit1bnNpZ25lZCBEb2N1bWVudDo6dG91Y2hFdmVudEhhbmRsZXJDb3Vu
dCgpIGNvbnN0Cit7CisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyAgICBpZiAoIW1fdG91Y2hF
dmVudFRhcmdldHMpCisgICAgICAgIHJldHVybiAwOworCisgICAgdW5zaWduZWQgY291bnQgPSAw
OworICAgIGZvciAoYXV0byYgaGFuZGxlciA6ICptX3RvdWNoRXZlbnRUYXJnZXRzKQorICAgICAg
ICBjb3VudCArPSBoYW5kbGVyLnZhbHVlOworCisgICAgcmV0dXJuIGNvdW50OworI2Vsc2UKKyAg
ICByZXR1cm4gMDsKKyNlbmRpZgorfQorCiBMYXlvdXRSZWN0IERvY3VtZW50OjphYnNvbHV0ZUV2
ZW50SGFuZGxlckJvdW5kcyhib29sJiBpbmNsdWRlc0ZpeGVkUG9zaXRpb25FbGVtZW50cykKIHsK
ICAgICBpbmNsdWRlc0ZpeGVkUG9zaXRpb25FbGVtZW50cyA9IGZhbHNlOwpAQCAtNjEyMywxMCAr
NjEzMCwxMCBAQCBMYXlvdXRSZWN0IERvY3VtZW50OjphYnNvbHV0ZUV2ZW50SGFuZGxlckJvdW5k
cyhib29sJiBpbmNsdWRlc0ZpeGVkUG9zaXRpb25FbGVtZQogICAgIHJldHVybiBMYXlvdXRSZWN0
KCk7CiB9CiAKLVJlZ2lvbiBEb2N1bWVudDo6YWJzb2x1dGVSZWdpb25Gb3JFdmVudFRhcmdldHMo
Y29uc3QgRXZlbnRUYXJnZXRTZXQqIHRhcmdldHMpCitEb2N1bWVudDo6UmVnaW9uRml4ZWRQYWly
IERvY3VtZW50OjphYnNvbHV0ZVJlZ2lvbkZvckV2ZW50VGFyZ2V0cyhjb25zdCBFdmVudFRhcmdl
dFNldCogdGFyZ2V0cykKIHsKICAgICBpZiAoIXRhcmdldHMpCi0gICAgICAgIHJldHVybiBSZWdp
b24oKTsKKyAgICAgICAgcmV0dXJuIFJlZ2lvbkZpeGVkUGFpcihSZWdpb24oKSwgZmFsc2UpOwog
CiAgICAgUmVnaW9uIHRhcmdldFJlZ2lvbjsKICAgICBib29sIGluc2lkZUZpeGVkUG9zaXRpb24g
PSBmYWxzZTsKQEAgLTYxNDksNyArNjE1Niw3IEBAIFJlZ2lvbiBEb2N1bWVudDo6YWJzb2x1dGVS
ZWdpb25Gb3JFdmVudFRhcmdldHMoY29uc3QgRXZlbnRUYXJnZXRTZXQqIHRhcmdldHMpCiAgICAg
ICAgICAgICB0YXJnZXRSZWdpb24udW5pdGUoUmVnaW9uKGVuY2xvc2luZ0ludFJlY3Qocm9vdFJl
bGF0aXZlQm91bmRzKSkpOwogICAgIH0KIAotICAgIHJldHVybiB0YXJnZXRSZWdpb247CisgICAg
cmV0dXJuIFJlZ2lvbkZpeGVkUGFpcih0YXJnZXRSZWdpb24sIGluc2lkZUZpeGVkUG9zaXRpb24p
OwogfQogCiB2b2lkIERvY3VtZW50Ojp1cGRhdGVMYXN0SGFuZGxlZFVzZXJHZXN0dXJlVGltZXN0
YW1wKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggOGE2MTJhZGI0ZmNmYTQzOTdkMDY1MzgwNjUw
ZWY0ODYwNmNiODkxNS4uOGZjOThiYjYzNmM2YjNlYThlZjNiZTgxMDhiNDcwZjA5NTM4NzM3NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTExMjIsNyArMTEyMiw2IEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgaW5pdEROU1ByZWZldGNoKCk7CiAKLSAgICB1bnNpZ25lZCB3aGVlbEV2ZW50SGFuZGxl
ckNvdW50KCkgY29uc3QgeyByZXR1cm4gbV93aGVlbEV2ZW50SGFuZGxlckNvdW50OyB9CiAgICAg
dm9pZCBkaWRBZGRXaGVlbEV2ZW50SGFuZGxlcihOb2RlJik7CiAgICAgdm9pZCBkaWRSZW1vdmVX
aGVlbEV2ZW50SGFuZGxlcihOb2RlJik7CiAKQEAgLTExMzUsNiArMTEzNCwxMCBAQCBwdWJsaWM6
CiAgICAgYm9vbCBoYXNUb3VjaEV2ZW50SGFuZGxlcnMoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogI2VuZGlmCiAKKyAgICAvLyBVc2VkIGZvciB0ZXN0aW5nLiBDb3VudCBoYW5kbGVycyBpbiB0
aGUgbWFpbiBkb2N1bWVudCwgYW5kIG9uZSBwZXIgZnJhbWUgd2hpY2ggY29udGFpbnMgaGFuZGxl
cnMuCisgICAgV0VCQ09SRV9FWFBPUlQgdW5zaWduZWQgd2hlZWxFdmVudEhhbmRsZXJDb3VudCgp
IGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIHVuc2lnbmVkIHRvdWNoRXZlbnRIYW5kbGVyQ291
bnQoKSBjb25zdDsKKwogICAgIHZvaWQgZGlkQWRkVG91Y2hFdmVudEhhbmRsZXIoTm9kZSYpOwog
ICAgIHZvaWQgZGlkUmVtb3ZlVG91Y2hFdmVudEhhbmRsZXIoTm9kZSYpOwogCkBAIC0xMTUxLDcg
KzExNTQsOCBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBFdmVudFRhcmdldFNldCogd2hlZWxFdmVu
dFRhcmdldHMoKSBjb25zdCB7IHJldHVybiBtX3doZWVsRXZlbnRUYXJnZXRzLmdldCgpOyB9CiAK
LSAgICBSZWdpb24gYWJzb2x1dGVSZWdpb25Gb3JFdmVudFRhcmdldHMoY29uc3QgRXZlbnRUYXJn
ZXRTZXQqKTsKKyAgICB0eXBlZGVmIHN0ZDo6cGFpcjxSZWdpb24sIGJvb2w+IFJlZ2lvbkZpeGVk
UGFpcjsKKyAgICBSZWdpb25GaXhlZFBhaXIgYWJzb2x1dGVSZWdpb25Gb3JFdmVudFRhcmdldHMo
Y29uc3QgRXZlbnRUYXJnZXRTZXQqKTsKIAogICAgIExheW91dFJlY3QgYWJzb2x1dGVFdmVudEhh
bmRsZXJCb3VuZHMoYm9vbCYpIG92ZXJyaWRlIGZpbmFsOwogCkBAIC0xMzIwLDYgKzEzMjQsOCBA
QCBwcml2YXRlOgogCiAgICAgdm9pZCBkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHNUaW1lckZpcmVk
KCk7CiAKKyAgICB2b2lkIHdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQoKTsKKwogICAgIC8vIERP
TSBDb29raWVzIGNhY2hpbmcuCiAgICAgY29uc3QgU3RyaW5nJiBjYWNoZWRET01Db29raWVzKCkg
Y29uc3QgeyByZXR1cm4gbV9jYWNoZWRET01Db29raWVzOyB9CiAgICAgdm9pZCBzZXRDYWNoZWRE
T01Db29raWVzKGNvbnN0IFN0cmluZyYpOwpAQCAtMTU2NCw3ICsxNTcwLDYgQEAgcHJpdmF0ZToK
ICAgICBib29sIG1fd3JpdGVSZWN1cnNpb25Jc1Rvb0RlZXA7CiAgICAgdW5zaWduZWQgbV93cml0
ZVJlY3Vyc2lvbkRlcHRoOwogICAgIAotICAgIHVuc2lnbmVkIG1fd2hlZWxFdmVudEhhbmRsZXJD
b3VudDsKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxFdmVu
dFRhcmdldFNldD4gbV90b3VjaEV2ZW50VGFyZ2V0czsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0VtcHR5Q2xpZW50cy5oCmluZGV4IGY5MDM3ODU5OTdiYjAwZjZmMmExMGUyODFmM2NhMjg0NWVk
ODdmMjMuLjI2OTQyNjcyYTBhMDIzNjllYWM4MDdmYWRjYmRjMjM1ODY2MTUwMWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTIyNyw3ICsyMjcsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIG5lZWRUb3VjaEV2ZW50cyhib29sKSBvdmVycmlkZSB7IH0KICNlbmRp
ZgogICAgIAotICAgIHZpcnR1YWwgdm9pZCBudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKHVu
c2lnbmVkKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgd2hlZWxFdmVudEhhbmRsZXJz
Q2hhbmdlZChib29sKSBvdmVycmlkZSB7IH0KICAgICAKICAgICB2aXJ0dWFsIGJvb2wgaXNFbXB0
eUNocm9tZUNsaWVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggOTlkYTk1MGQ5Mzk0ZDMyMzRmZjM1ODJhNTI5ZGQ1
YmRhZDFmNWMxNi4uYmRjOTEzYzdhYjEzYjdlZjk3ZTE4NGRlMmY1Y2VmODE2OTVmMTAyMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0zOTYsNyArMzk2LDcgQEAgcHVibGljOgog
ICAgIH07CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJ1bk1vZGFsRGlhbG9nRHVyaW5nUGFnZURp
c21pc3NhbChjb25zdCBEaWFsb2dUeXBlJiwgY29uc3QgU3RyaW5nJiBkaWFsb2dNZXNzYWdlLCBG
cmFtZUxvYWRlcjo6UGFnZURpc21pc3NhbFR5cGUpIGNvbnN0IHsgVU5VU0VEX1BBUkFNKGRpYWxv
Z01lc3NhZ2UpOyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgdmlydHVhbCB2b2lkIG51bVdoZWVsRXZl
bnRIYW5kbGVyc0NoYW5nZWQodW5zaWduZWQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgd2hlZWxF
dmVudEhhbmRsZXJzQ2hhbmdlZChib29sIGhhc0hhbmRsZXJzKSA9IDA7CiAgICAgICAgIAogICAg
IHZpcnR1YWwgYm9vbCBpc1NWR0ltYWdlQ2hyb21lQ2xpZW50KCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EZWJ1Z1BhZ2VPdmVybGF5
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RlYnVnUGFnZU92ZXJsYXlzLmNwcAppbmRleCBi
MjYyMWNlNTM3NGFmNGRhNGQ4M2RlY2FmMzQwZjU2NGZiNDQ3ODE4Li4yMTM3MWRjNTc2YTdmYTJh
OWQxYTQ0NDc0MzcwMGI2MDFiOTJiNTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RlYnVnUGFnZU92ZXJsYXlzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RlYnVnUGFn
ZU92ZXJsYXlzLmNwcApAQCAtOTAsNyArOTAsNyBAQCBwcml2YXRlOgogCiBib29sIE1vdXNlV2hl
ZWxSZWdpb25PdmVybGF5Ojp1cGRhdGVSZWdpb24oKQogewotICAgIHN0ZDo6dW5pcXVlX3B0cjxS
ZWdpb24+IHJlZ2lvbiA9IHN0ZDo6bWFrZV91bmlxdWU8UmVnaW9uPihtX2ZyYW1lLmRvY3VtZW50
KCktPmFic29sdXRlUmVnaW9uRm9yRXZlbnRUYXJnZXRzKG1fZnJhbWUuZG9jdW1lbnQoKS0+d2hl
ZWxFdmVudFRhcmdldHMoKSkpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxSZWdpb24+IHJlZ2lvbiA9
IHN0ZDo6bWFrZV91bmlxdWU8UmVnaW9uPihtX2ZyYW1lLmRvY3VtZW50KCktPmFic29sdXRlUmVn
aW9uRm9yRXZlbnRUYXJnZXRzKG1fZnJhbWUuZG9jdW1lbnQoKS0+d2hlZWxFdmVudFRhcmdldHMo
KSkuZmlyc3QpOwogCiAgICAgYm9vbCByZWdpb25DaGFuZ2VkID0gIW1fcmVnaW9uIHx8ICEoKm1f
cmVnaW9uID09ICpyZWdpb24pOwogICAgIG1fcmVnaW9uID0gV1RGOjptb3ZlKHJlZ2lvbik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nv
b3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xs
aW5nQ29vcmRpbmF0b3IuY3BwCmluZGV4IDllZDU4YWE5NGM3NjJhMGVmNTNjMjVjMGQ1M2YzMGM1
ZGU5ZTIzYTUuLjZjNzVmYjJmOWRjMDVhZTVkZjE5NzdmN2Q1YWUwN2ZhZmE3ODQ4MjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xs
aW5nQ29vcmRpbmF0b3IuY3BwCkBAIC0xMzUsNiArMTM1LDcgQEAgdm9pZCBBc3luY1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yOjpmcmFtZVZpZXdOb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbkNoYW5nZWQoRnJh
bWVWaWUKICAgICBpZiAoIW1fc2Nyb2xsaW5nU3RhdGVUcmVlLT5yb290U3RhdGVOb2RlKCkpCiAg
ICAgICAgIHJldHVybjsKIAorICAgIC8vIEZJWE1FOiBjb21wdXRlTm9uRmFzdFNjcm9sbGFibGVS
ZWdpb24gbGF6aWx5LgogICAgIG1fc2Nyb2xsaW5nU3RhdGVUcmVlLT5yb290U3RhdGVOb2RlKCkt
PnNldE5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKGNvbXB1dGVOb25GYXN0U2Nyb2xsYWJsZVJlZ2lv
bihtX3BhZ2UtPm1haW5GcmFtZSgpLCBJbnRQb2ludCgpKSk7CiB9CiAKQEAgLTQ4NywxNCArNDg4
LDYgQEAgdm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjp1cGRhdGVNYWluRnJhbWVTY3Jv
bGxMYXllclBvc2l0aW9uKCkKICAgICAgICAgc2Nyb2xsTGF5ZXItPnNldFBvc2l0aW9uKC1mcmFt
ZVZpZXctPnNjcm9sbFBvc2l0aW9uKCkpOwogfQogCi12b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRp
bmF0b3I6OnJlY29tcHV0ZVdoZWVsRXZlbnRIYW5kbGVyQ291bnRGb3JGcmFtZVZpZXcoRnJhbWVW
aWV3JiBmcmFtZVZpZXcpCi17Ci0gICAgU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGUq
IG5vZGUgPSBkb3duY2FzdDxTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZT4obV9zY3Jv
bGxpbmdTdGF0ZVRyZWUtPnN0YXRlTm9kZUZvcklEKGZyYW1lVmlldy5zY3JvbGxMYXllcklEKCkp
KTsKLSAgICBpZiAoIW5vZGUpCi0gICAgICAgIHJldHVybjsKLSAgICBub2RlLT5zZXRXaGVlbEV2
ZW50SGFuZGxlckNvdW50KGNvbXB1dGVDdXJyZW50V2hlZWxFdmVudEhhbmRsZXJDb3VudCgpKTsK
LX0KLQogYm9vbCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjppc1J1YmJlckJhbmRJblByb2dy
ZXNzKCkgY29uc3QKIHsKICAgICByZXR1cm4gc2Nyb2xsaW5nVHJlZSgpLT5pc1J1YmJlckJhbmRJ
blByb2dyZXNzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9B
c3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXggZjNlYmFhNDMxOWFkNmI2OGNkNDNh
YTVkZDk4MTU3YTgxOWNjZWMzZC4uMDIyNmM1ZWIwNDJkZDFjOWVlNWMzNWE3ZDczZjg1OTdkMGY2
ODIxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3Jv
bGxpbmdDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0Fz
eW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApAQCAtOTYsNyArOTYsNiBAQCBwcml2YXRlOgogICAg
IFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBzeW5jQ2hpbGRQb3NpdGlvbnMoY29uc3QgTGF5
b3V0UmVjdCYgdmlld3BvcnRSZWN0KSBvdmVycmlkZTsKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0
dWFsIHZvaWQgc2Nyb2xsYWJsZUFyZWFTY3JvbGxiYXJMYXllckRpZENoYW5nZShTY3JvbGxhYmxl
QXJlYSYsIFNjcm9sbGJhck9yaWVudGF0aW9uKSBvdmVycmlkZTsKIAotICAgIFdFQkNPUkVfRVhQ
T1JUIHZpcnR1YWwgdm9pZCByZWNvbXB1dGVXaGVlbEV2ZW50SGFuZGxlckNvdW50Rm9yRnJhbWVW
aWV3KEZyYW1lVmlldyYpIG92ZXJyaWRlOwogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9p
ZCBzZXRTeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnMoU3luY2hyb25vdXNTY3JvbGxpbmdSZWFz
b25zKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZVRyZWVTdGF0ZUNvbW1p
dCgpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ0Nvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ0Nvb3JkaW5hdG9yLmNwcAppbmRleCA2OWZkYzJiYTZlOWQyYjI1ZDE5ZGU0NDZhMDMzNGMx
ZjRmYmM2YmIxLi5mMjAyZmYzYTU4NDFkYzNhZjQ0NjE1Y2FmYTFiMDVkYzkwZWQzNTc4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRv
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuY3BwCkBAIC0xNTQsMzQgKzE1NCwyMiBAQCBSZWdpb24gU2Nyb2xsaW5nQ29vcmRpbmF0
b3I6OmNvbXB1dGVOb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbihjb25zdCBGcmFtZSYgZnJhbWUsCiAg
ICAgICAgIG5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uLnVuaXRlKGNvbXB1dGVOb25GYXN0U2Nyb2xs
YWJsZVJlZ2lvbigqc3ViZnJhbWUsIG9mZnNldCkpOwogCiAgICAgLy8gSW5jbHVkZSB3aGVlbCBl
dmVudCBoYW5kbGVyIHJlZ2lvbiBmb3IgdGhlIG1haW4gZnJhbWUuCi0gICAgUmVnaW9uIHdoZWVs
SGFuZGxlclJlZ2lvbiA9IGZyYW1lLmRvY3VtZW50KCktPmFic29sdXRlUmVnaW9uRm9yRXZlbnRU
YXJnZXRzKGZyYW1lLmRvY3VtZW50KCktPndoZWVsRXZlbnRUYXJnZXRzKCkpOwotICAgIHdoZWVs
SGFuZGxlclJlZ2lvbi50cmFuc2xhdGUodG9JbnRTaXplKG9mZnNldCkpOwotICAgIG5vbkZhc3RT
Y3JvbGxhYmxlUmVnaW9uLnVuaXRlKHdoZWVsSGFuZGxlclJlZ2lvbik7CisgICAgRG9jdW1lbnQ6
OlJlZ2lvbkZpeGVkUGFpciB3aGVlbEhhbmRsZXJSZWdpb24gPSBmcmFtZS5kb2N1bWVudCgpLT5h
YnNvbHV0ZVJlZ2lvbkZvckV2ZW50VGFyZ2V0cyhmcmFtZS5kb2N1bWVudCgpLT53aGVlbEV2ZW50
VGFyZ2V0cygpKTsKKyAgICBib29sIHdoZWVsSGFuZGxlckluRml4ZWRDb250ZW50ID0gd2hlZWxI
YW5kbGVyUmVnaW9uLnNlY29uZDsKKyAgICBpZiAod2hlZWxIYW5kbGVySW5GaXhlZENvbnRlbnQp
IHsKKyAgICAgICAgLy8gRklYTUU6IGlmIGEgZml4ZWQgZWxlbWVudCBoYXMgYSB3aGVlbCBldmVu
dCBoYW5kbGVyLCBmb3Igbm93IGp1c3QgY292ZXIgdGhlIGVudGlyZSBkb2N1bWVudAorICAgICAg
ICAvLyB3aXRoIHRoZSBzbG93LXNjcm9sbGluZyByZWdpb24uIFRoaXMgY291bGQgYmUgaW1wcm92
ZWQuCisgICAgICAgIC8vIEZJWE1FOiBuZWVkIHRvIGhhbmRsZSBwb3NpaXRvbjpzdGlja3kgaGVy
ZSB0b28uCisgICAgICAgIGJvb2wgaW5GaXhlZDsKKyAgICAgICAgd2hlZWxIYW5kbGVyUmVnaW9u
LmZpcnN0LnVuaXRlKGVuY2xvc2luZ0ludFJlY3QoZnJhbWUuZG9jdW1lbnQoKS0+YWJzb2x1dGVF
dmVudEhhbmRsZXJCb3VuZHMoaW5GaXhlZCkpKTsKKyAgICB9CisgICAgd2hlZWxIYW5kbGVyUmVn
aW9uLmZpcnN0LnRyYW5zbGF0ZSh0b0ludFNpemUob2Zmc2V0KSk7CisgICAgbm9uRmFzdFNjcm9s
bGFibGVSZWdpb24udW5pdGUod2hlZWxIYW5kbGVyUmVnaW9uLmZpcnN0KTsKIAogICAgIHJldHVy
biBub25GYXN0U2Nyb2xsYWJsZVJlZ2lvbjsKICNlbmRpZgogfQogCi11bnNpZ25lZCBTY3JvbGxp
bmdDb29yZGluYXRvcjo6Y29tcHV0ZUN1cnJlbnRXaGVlbEV2ZW50SGFuZGxlckNvdW50KCkKLXsK
LSAgICB1bnNpZ25lZCB3aGVlbEV2ZW50SGFuZGxlckNvdW50ID0gMDsKLQotICAgIGZvciAoRnJh
bWUqIGZyYW1lID0gJm1fcGFnZS0+bWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50
cmVlKCkudHJhdmVyc2VOZXh0KCkpIHsKLSAgICAgICAgaWYgKGZyYW1lLT5kb2N1bWVudCgpKQot
ICAgICAgICAgICAgd2hlZWxFdmVudEhhbmRsZXJDb3VudCArPSBmcmFtZS0+ZG9jdW1lbnQoKS0+
d2hlZWxFdmVudEhhbmRsZXJDb3VudCgpOwotICAgIH0KLQotICAgIHJldHVybiB3aGVlbEV2ZW50
SGFuZGxlckNvdW50OwotfQotCi12b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpmcmFtZVZpZXdX
aGVlbEV2ZW50SGFuZGxlckNvdW50Q2hhbmdlZChGcmFtZVZpZXcmIGZyYW1lVmlldykKLXsKLSAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIEFTU0VSVChtX3BhZ2UpOwotCi0gICAgcmVj
b21wdXRlV2hlZWxFdmVudEhhbmRsZXJDb3VudEZvckZyYW1lVmlldyhmcmFtZVZpZXcpOwotfQot
CiB2b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpmcmFtZVZpZXdIYXNTbG93UmVwYWludE9iamVj
dHNEaWRDaGFuZ2UoRnJhbWVWaWV3JiBmcmFtZVZpZXcpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKQEAgLTI4Myw3ICsyNzEsNiBAQCB2b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpm
cmFtZVZpZXdSb290TGF5ZXJEaWRDaGFuZ2UoRnJhbWVWaWV3JiBmcmFtZVZpZXcpCiAgICAgICAg
IHJldHVybjsKIAogICAgIGZyYW1lVmlld0xheW91dFVwZGF0ZWQoZnJhbWVWaWV3KTsKLSAgICBy
ZWNvbXB1dGVXaGVlbEV2ZW50SGFuZGxlckNvdW50Rm9yRnJhbWVWaWV3KGZyYW1lVmlldyk7CiAg
ICAgdXBkYXRlU3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zKGZyYW1lVmlldyk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5h
dG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRv
ci5oCmluZGV4IDk3N2Y5NjI3ZTk4MTFhZWZlNDczM2VjZTllM2VkODQ3ZjNlNTVkZTQuLjUxNDhk
NWVjZjIwYTQwNTkzYzFhNTZjOTI5MWRmMTdkYzM3OGYwMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApAQCAtMTIwLDEw
ICsxMjAsNiBAQCBwdWJsaWM6CiAgICAgLy8gU2hvdWxkIGJlIGNhbGxlZCB3aGVuZXZlciB0aGUg
Z2l2ZW4gZnJhbWUgdmlldyBoYXMgYmVlbiBsYWlkIG91dC4KICAgICB2aXJ0dWFsIHZvaWQgZnJh
bWVWaWV3TGF5b3V0VXBkYXRlZChGcmFtZVZpZXcmKSB7IH0KIAotICAgIC8vIFNob3VsZCBiZSBj
YWxsZWQgd2hlbmV2ZXIgYSB3aGVlbCBldmVudCBoYW5kbGVyIGlzIGFkZGVkIG9yIHJlbW92ZWQg
aW4gdGhlIAotICAgIC8vIGZyYW1lIHZpZXcncyB1bmRlcmx5aW5nIGRvY3VtZW50LgotICAgIHZv
aWQgZnJhbWVWaWV3V2hlZWxFdmVudEhhbmRsZXJDb3VudENoYW5nZWQoRnJhbWVWaWV3Jik7Ci0K
ICAgICAvLyBTaG91bGQgYmUgY2FsbGVkIHdoZW5ldmVyIHRoZSBzbG93IHJlcGFpbnQgb2JqZWN0
cyBjb3VudGVyIGNoYW5nZXMgYmV0d2VlbiB6ZXJvIGFuZCBvbmUuCiAgICAgdm9pZCBmcmFtZVZp
ZXdIYXNTbG93UmVwYWludE9iamVjdHNEaWRDaGFuZ2UoRnJhbWVWaWV3Jik7CiAKQEAgLTIxMCw3
ICsyMDYsNiBAQCBwcm90ZWN0ZWQ6CiAKICAgICBzdGF0aWMgR3JhcGhpY3NMYXllciogc2Nyb2xs
TGF5ZXJGb3JTY3JvbGxhYmxlQXJlYShTY3JvbGxhYmxlQXJlYSYpOwogCi0gICAgdW5zaWduZWQg
Y29tcHV0ZUN1cnJlbnRXaGVlbEV2ZW50SGFuZGxlckNvdW50KCk7CiAgICAgR3JhcGhpY3NMYXll
ciogc2Nyb2xsTGF5ZXJGb3JGcmFtZVZpZXcoRnJhbWVWaWV3Jik7CiAgICAgR3JhcGhpY3NMYXll
ciogY291bnRlclNjcm9sbGluZ0xheWVyRm9yRnJhbWVWaWV3KEZyYW1lVmlldyYpOwogICAgIEdy
YXBoaWNzTGF5ZXIqIGluc2V0Q2xpcExheWVyRm9yRnJhbWVWaWV3KEZyYW1lVmlldyYpOwpAQCAt
MjIyLDcgKzIxNyw2IEBAIHByb3RlY3RlZDoKICAgICBQYWdlKiBtX3BhZ2U7IC8vIEZJWE1FOiBp
ZGVhbGx5IHRoaXMgd291bGQgYmUgYSByZWZlcmVuY2UgYnV0IGl0IGdldHMgbnVsbGVkIG9uIGFz
eW5jIHRlYXJkb3duLgogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgdm9pZCByZWNvbXB1dGVXaGVl
bEV2ZW50SGFuZGxlckNvdW50Rm9yRnJhbWVWaWV3KEZyYW1lVmlldyYpIHsgfQogICAgIHZpcnR1
YWwgdm9pZCBzZXRTeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnMoU3luY2hyb25vdXNTY3JvbGxp
bmdSZWFzb25zKSB7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBoYXNWaXNpYmxlU2xvd1JlcGFpbnRW
aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0cyhjb25zdCBGcmFtZVZpZXcmKSBjb25zdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlRnJhbWVT
Y3JvbGxpbmdOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlLmNwcAppbmRleCBkODBjMWJlNjc4NTQzNDdhOGNlNzNj
MjgzNjliOWZmOTMyNzg3YTdkLi4zNTBjNzk2ZDZkOGMzYmNjZjhmNmEwNGIyMDZjMjMwNjRjNTg2
YTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdT
dGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGUuY3BwCkBAIC00NSw3ICs0NSw2
IEBAIFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpTY3JvbGxpbmdTdGF0ZUZyYW1l
U2Nyb2xsaW5nTm9kZShTY3JvbGxpbmdTdGF0CiAgICAgLCBtX2hvcml6b250YWxTY3JvbGxiYXJQ
YWludGVyKDApCiAjZW5kaWYKICAgICAsIG1fZnJhbWVTY2FsZUZhY3RvcigxKQotICAgICwgbV93
aGVlbEV2ZW50SGFuZGxlckNvdW50KDApCiAgICAgLCBtX3N5bmNocm9ub3VzU2Nyb2xsaW5nUmVh
c29ucygwKQogICAgICwgbV9iZWhhdmlvckZvckZpeGVkKFN0aWNrVG9Eb2N1bWVudEJvdW5kcykK
ICAgICAsIG1faGVhZGVySGVpZ2h0KDApCkBAIC02Myw3ICs2Miw2IEBAIFNjcm9sbGluZ1N0YXRl
RnJhbWVTY3JvbGxpbmdOb2RlOjpTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZShjb25z
dCBTY3JvbGxpCiAjZW5kaWYKICAgICAsIG1fbm9uRmFzdFNjcm9sbGFibGVSZWdpb24oc3RhdGVO
b2RlLm5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKCkpCiAgICAgLCBtX2ZyYW1lU2NhbGVGYWN0b3Io
c3RhdGVOb2RlLmZyYW1lU2NhbGVGYWN0b3IoKSkKLSAgICAsIG1fd2hlZWxFdmVudEhhbmRsZXJD
b3VudChzdGF0ZU5vZGUud2hlZWxFdmVudEhhbmRsZXJDb3VudCgpKQogICAgICwgbV9zeW5jaHJv
bm91c1Njcm9sbGluZ1JlYXNvbnMoc3RhdGVOb2RlLnN5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29u
cygpKQogICAgICwgbV9iZWhhdmlvckZvckZpeGVkKHN0YXRlTm9kZS5zY3JvbGxCZWhhdmlvckZv
ckZpeGVkRWxlbWVudHMoKSkKICAgICAsIG1faGVhZGVySGVpZ2h0KHN0YXRlTm9kZS5oZWFkZXJI
ZWlnaHQoKSkKQEAgLTExOSwxNSArMTE3LDYgQEAgdm9pZCBTY3JvbGxpbmdTdGF0ZUZyYW1lU2Ny
b2xsaW5nTm9kZTo6c2V0Tm9uRmFzdFNjcm9sbGFibGVSZWdpb24oY29uc3QgUmVnaW9uJgogICAg
IHNldFByb3BlcnR5Q2hhbmdlZChOb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbik7CiB9CiAKLXZvaWQg
U2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU6OnNldFdoZWVsRXZlbnRIYW5kbGVyQ291
bnQodW5zaWduZWQgd2hlZWxFdmVudEhhbmRsZXJDb3VudCkKLXsKLSAgICBpZiAobV93aGVlbEV2
ZW50SGFuZGxlckNvdW50ID09IHdoZWVsRXZlbnRIYW5kbGVyQ291bnQpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIG1fd2hlZWxFdmVudEhhbmRsZXJDb3VudCA9IHdoZWVsRXZlbnRIYW5kbGVyQ291
bnQ7Ci0gICAgc2V0UHJvcGVydHlDaGFuZ2VkKFdoZWVsRXZlbnRIYW5kbGVyQ291bnQpOwotfQot
CiB2b2lkIFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpzZXRTeW5jaHJvbm91c1Nj
cm9sbGluZ1JlYXNvbnMoU3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zIHJlYXNvbnMpCiB7CiAg
ICAgaWYgKG1fc3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zID09IHJlYXNvbnMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZUZyYW1lU2Ny
b2xsaW5nTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3Rh
dGVGcmFtZVNjcm9sbGluZ05vZGUuaAppbmRleCBmNzA4NzBjYjg0OWRkOTczY2QxNmYxYTBlOTYy
ZTAwZTcxYzQ4ODYyLi5iMTNiNDM4NmY5YThmMWVlMzY3ZmQ2YjIyZmFlYjBlNGNlYjE3NjA3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZUZy
YW1lU2Nyb2xsaW5nTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlLmgKQEAgLTQ5LDcgKzQ5LDYgQEAgcHVibGlj
OgogICAgIGVudW0gQ2hhbmdlZFByb3BlcnR5IHsKICAgICAgICAgRnJhbWVTY2FsZUZhY3RvciA9
IE51bVNjcm9sbGluZ1N0YXRlTm9kZUJpdHMsCiAgICAgICAgIE5vbkZhc3RTY3JvbGxhYmxlUmVn
aW9uLAotICAgICAgICBXaGVlbEV2ZW50SGFuZGxlckNvdW50LAogICAgICAgICBSZWFzb25zRm9y
U3luY2hyb25vdXNTY3JvbGxpbmcsCiAgICAgICAgIFNjcm9sbGVkQ29udGVudHNMYXllciwKICAg
ICAgICAgQ291bnRlclNjcm9sbGluZ0xheWVyLApAQCAtNzAsOSArNjksNiBAQCBwdWJsaWM6CiAg
ICAgY29uc3QgUmVnaW9uJiBub25GYXN0U2Nyb2xsYWJsZVJlZ2lvbigpIGNvbnN0IHsgcmV0dXJu
IG1fbm9uRmFzdFNjcm9sbGFibGVSZWdpb247IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNl
dE5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKGNvbnN0IFJlZ2lvbiYpOwogCi0gICAgdW5zaWduZWQg
d2hlZWxFdmVudEhhbmRsZXJDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fd2hlZWxFdmVudEhhbmRs
ZXJDb3VudDsgfQotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0V2hlZWxFdmVudEhhbmRsZXJD
b3VudCh1bnNpZ25lZCk7Ci0KICAgICBTeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnMgc3luY2hy
b25vdXNTY3JvbGxpbmdSZWFzb25zKCkgY29uc3QgeyByZXR1cm4gbV9zeW5jaHJvbm91c1Njcm9s
bGluZ1JlYXNvbnM7IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFN5bmNocm9ub3VzU2Ny
b2xsaW5nUmVhc29ucyhTeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnMpOwogCkBAIC0xMzksNyAr
MTM1LDYgQEAgcHJpdmF0ZToKIAogICAgIFJlZ2lvbiBtX25vbkZhc3RTY3JvbGxhYmxlUmVnaW9u
OwogICAgIGZsb2F0IG1fZnJhbWVTY2FsZUZhY3RvcjsKLSAgICB1bnNpZ25lZCBtX3doZWVsRXZl
bnRIYW5kbGVyQ291bnQ7CiAgICAgU3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zIG1fc3luY2hy
b25vdXNTY3JvbGxpbmdSZWFzb25zOwogICAgIFNjcm9sbEJlaGF2aW9yRm9yRml4ZWRFbGVtZW50
cyBtX2JlaGF2aW9yRm9yRml4ZWQ7CiAgICAgaW50IG1faGVhZGVySGVpZ2h0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAppbmRleCA1YjMwZGY3
Y2M1MDdlMDIzMTc5MTFjNWIyMzE3OTcyZDhiNjJiY2FiLi5jMjYwZmU0N2NlM2I1NWNkNWZhYjI1
ODNjNDg0ZTdjZDVkZTUyNGM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdUcmVlLmNwcApAQCAtMzgsOCArMzgsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBTY3JvbGxpbmdUcmVlOjpTY3JvbGxpbmdUcmVlKCkKLSAgICA6IG1faGFzV2hlZWxFdmVu
dEhhbmRsZXJzKGZhbHNlKQotICAgICwgbV9ydWJiZXJCYW5kc0F0TGVmdCh0cnVlKQorICAgIDog
bV9ydWJiZXJCYW5kc0F0TGVmdCh0cnVlKQogICAgICwgbV9ydWJiZXJCYW5kc0F0UmlnaHQodHJ1
ZSkKICAgICAsIG1fcnViYmVyQmFuZHNBdFRvcCh0cnVlKQogICAgICwgbV9ydWJiZXJCYW5kc0F0
Qm90dG9tKHRydWUpCkBAIC02NSw5ICs2NCw2IEBAIGJvb2wgU2Nyb2xsaW5nVHJlZTo6c2hvdWxk
SGFuZGxlV2hlZWxFdmVudFN5bmNocm9ub3VzbHkoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50CiAg
ICAgLy8gVGhpcyBtZXRob2QgaXMgaW52b2tlZCBieSB0aGUgZXZlbnQgaGFuZGxpbmcgdGhyZWFk
CiAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKIAotICAgIGlmIChtX2hhc1doZWVsRXZl
bnRIYW5kbGVycykKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KICAgICBib29sIHNob3VsZFNldExh
dGNoID0gd2hlZWxFdmVudC5zaG91bGRDb25zaWRlckxhdGNoaW5nKCk7CiAgICAgCiAgICAgaWYg
KGhhc0xhdGNoZWROb2RlKCkgJiYgIXNob3VsZFNldExhdGNoKQpAQCAtMTI5LDE1ICsxMjUsMTIg
QEAgdm9pZCBTY3JvbGxpbmdUcmVlOjpjb21taXROZXdUcmVlU3RhdGUoc3RkOjp1bmlxdWVfcHRy
PFNjcm9sbGluZ1N0YXRlVHJlZT4gc2Nyb2wKICAgICBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGUqIHJvb3ROb2RlID0gc2Nyb2xsaW5nU3RhdGVUcmVlLT5yb290U3RhdGVOb2RlKCk7CiAgICAg
aWYgKHJvb3ROb2RlCiAgICAgICAgICYmIChyb290U3RhdGVOb2RlQ2hhbmdlZAotICAgICAgICAg
ICAgfHwgcm9vdE5vZGUtPmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZUZyYW1lU2Ny
b2xsaW5nTm9kZTo6V2hlZWxFdmVudEhhbmRsZXJDb3VudCkKICAgICAgICAgICAgIHx8IHJvb3RO
b2RlLT5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU6
Ok5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKQogICAgICAgICAgICAgfHwgcm9vdE5vZGUtPmhhc0No
YW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZU5vZGU6OlNjcm9sbExheWVyKSkpIHsKICAgICAg
ICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKIAogICAgICAgICBpZiAocm9vdFN0YXRlTm9k
ZUNoYW5nZWQgfHwgcm9vdE5vZGUtPmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZU5v
ZGU6OlNjcm9sbExheWVyKSkKICAgICAgICAgICAgIG1fbWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24g
PSBGbG9hdFBvaW50KCk7Ci0gICAgICAgIGlmIChyb290U3RhdGVOb2RlQ2hhbmdlZCB8fCByb290
Tm9kZS0+aGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2Rl
OjpXaGVlbEV2ZW50SGFuZGxlckNvdW50KSkKLSAgICAgICAgICAgIG1faGFzV2hlZWxFdmVudEhh
bmRsZXJzID0gc2Nyb2xsaW5nU3RhdGVUcmVlLT5yb290U3RhdGVOb2RlKCktPndoZWVsRXZlbnRI
YW5kbGVyQ291bnQoKTsKICAgICAgICAgaWYgKHJvb3RTdGF0ZU5vZGVDaGFuZ2VkIHx8IHJvb3RO
b2RlLT5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU6
Ok5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKSkKICAgICAgICAgICAgIG1fbm9uRmFzdFNjcm9sbGFi
bGVSZWdpb24gPSBzY3JvbGxpbmdTdGF0ZVRyZWUtPnJvb3RTdGF0ZU5vZGUoKS0+bm9uRmFzdFNj
cm9sbGFibGVSZWdpb24oKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdUcmVlLmgKaW5kZXggZTEyMDhmMTNhMmIzMmZlZTdjMGFhNTZhYjhmODI1Yzk3
ZTMxMDIxZC4uNTc4Y2FmMDVlN2EzODk0OGEwYWMyMjRhNTczYTY5NDk2YzlkZjRjZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaApAQCAtMTU2LDcg
KzE1Niw2IEBAIHByaXZhdGU6CiAgICAgTXV0ZXggbV9tdXRleDsKICAgICBSZWdpb24gbV9ub25G
YXN0U2Nyb2xsYWJsZVJlZ2lvbjsKICAgICBGbG9hdFBvaW50IG1fbWFpbkZyYW1lU2Nyb2xsUG9z
aXRpb247Ci0gICAgYm9vbCBtX2hhc1doZWVsRXZlbnRIYW5kbGVyczsKIAogICAgIE11dGV4IG1f
c3dpcGVTdGF0ZU11dGV4OwogICAgIGJvb2wgbV9ydWJiZXJCYW5kc0F0TGVmdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRv
ck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29y
ZGluYXRvck1hYy5tbQppbmRleCBlYTEzOTI3OTkwYjBiZjljOTgwZDRiMThjMDE0OThlMzdlZmRj
MzA2Li5iNGIyMGRiNzg5MGNjNGIyZDUyZGFiZjY0ODgyNDg5YzY3ODMyMWYzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JN
YWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nv
b3JkaW5hdG9yTWFjLm1tCkBAIC0xNDQsOCArMTQ0LDYgQEAgdm9pZCBTY3JvbGxpbmdDb29yZGlu
YXRvck1hYzo6dXBkYXRlVGlsZWRTY3JvbGxpbmdJbmRpY2F0b3IoKQogICAgIFNjcm9sbGluZ01v
ZGVJbmRpY2F0aW9uIGluZGljYXRvck1vZGU7CiAgICAgaWYgKHNob3VsZFVwZGF0ZVNjcm9sbExh
eWVyUG9zaXRpb25TeW5jaHJvbm91c2x5KCkpCiAgICAgICAgIGluZGljYXRvck1vZGUgPSBTeW5j
aHJvbm91c1Njcm9sbGluZ0JlY2F1c2VPZlN0eWxlSW5kaWNhdGlvbjsKLSAgICBlbHNlIGlmIChz
Y3JvbGxpbmdTdGF0ZVRyZWUoKS0+cm9vdFN0YXRlTm9kZSgpICYmIHNjcm9sbGluZ1N0YXRlVHJl
ZSgpLT5yb290U3RhdGVOb2RlKCktPndoZWVsRXZlbnRIYW5kbGVyQ291bnQoKSkKLSAgICAgICAg
aW5kaWNhdG9yTW9kZSA9ICBTeW5jaHJvbm91c1Njcm9sbGluZ0JlY2F1c2VPZkV2ZW50SGFuZGxl
cnNJbmRpY2F0aW9uOwogICAgIGVsc2UKICAgICAgICAgaW5kaWNhdG9yTW9kZSA9IEFzeW5jU2Ny
b2xsaW5nSW5kaWNhdGlvbjsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLm1tIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGlu
Z05vZGVNYWMubW0KaW5kZXggYjc0MjliODM5ODgwZDE5OGYyNGFiZjQ2NDc5Y2U5Y2YwMDg4NGM2
Yy4uZjkwZDJiZTZkZWRjZjZiNmIxZjA2ODEwNWZiYWFkYzY4YjE1NTZiYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vZGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Nj
cm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMubW0KQEAgLTQ3LDggKzQ3LDYgQEAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIHZvaWQgbG9nVGhyZWFkZWRTY3JvbGxpbmdNb2Rl
KHVuc2lnbmVkIHN5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29ucyk7Ci1zdGF0aWMgdm9pZCBsb2dX
aGVlbEV2ZW50SGFuZGxlckNvdW50Q2hhbmdlZCh1bnNpZ25lZCk7Ci0KIAogUGFzc1JlZlB0cjxT
Y3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlPiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxp
bmdOb2RlTWFjOjpjcmVhdGUoU2Nyb2xsaW5nVHJlZSYgc2Nyb2xsaW5nVHJlZSwgU2Nyb2xsaW5n
Tm9kZUlEIG5vZGVJRCkKIHsKQEAgLTEzMywxMSArMTMxLDYgQEAgdm9pZCBTY3JvbGxpbmdUcmVl
RnJhbWVTY3JvbGxpbmdOb2RlTWFjOjp1cGRhdGVCZWZvcmVDaGlsZHJlbihjb25zdCBTY3JvbGxp
bmdTdGEKICAgICAgICAgICAgIGxvZ1RocmVhZGVkU2Nyb2xsaW5nTW9kZShzeW5jaHJvbm91c1Nj
cm9sbGluZ1JlYXNvbnMoKSk7CiAgICAgfQogCi0gICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5o
YXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU6OldoZWVs
RXZlbnRIYW5kbGVyQ291bnQpKSB7Ci0gICAgICAgIGlmIChzY3JvbGxpbmdUcmVlKCkuc2Nyb2xs
aW5nUGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZCgpKQotICAgICAgICAgICAgbG9nV2hlZWxFdmVu
dEhhbmRsZXJDb3VudENoYW5nZWQoc2Nyb2xsaW5nU3RhdGVOb2RlLndoZWVsRXZlbnRIYW5kbGVy
Q291bnQoKSk7Ci0gICAgfQotCiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKICAgICBpZiAo
c2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZUZyYW1l
U2Nyb2xsaW5nTm9kZTo6SG9yaXpvbnRhbFNuYXBPZmZzZXRzKSkKICAgICAgICAgbV9zY3JvbGxD
b250cm9sbGVyLnVwZGF0ZVNjcm9sbFNuYXBQb2ludHMoU2Nyb2xsRXZlbnRBeGlzOjpIb3Jpem9u
dGFsLCBjb252ZXJ0VG9MYXlvdXRVbml0cyhzY3JvbGxpbmdTdGF0ZU5vZGUuaG9yaXpvbnRhbFNu
YXBPZmZzZXRzKCkpKTsKQEAgLTU0MywxMSArNTM2LDYgQEAgc3RhdGljIHZvaWQgbG9nVGhyZWFk
ZWRTY3JvbGxpbmdNb2RlKHVuc2lnbmVkIHN5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29ucykKICAg
ICAgICAgV1RGTG9nQWx3YXlzKCJTQ1JPTExJTkc6IFN3aXRjaGluZyB0byB0aHJlYWRlZCBzY3Jv
bGxpbmcgbW9kZS4gVGltZTogJWZcbiIsIFdURjo6bW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1l
KCkpOwogfQogCi12b2lkIGxvZ1doZWVsRXZlbnRIYW5kbGVyQ291bnRDaGFuZ2VkKHVuc2lnbmVk
IGNvdW50KQotewotICAgIFdURkxvZ0Fsd2F5cygiU0NST0xMSU5HOiBXaGVlbCBldmVudCBoYW5k
bGVyIGNvdW50IGNoYW5nZWQuIFRpbWU6ICVmIENvdW50OiAldVxuIiwgV1RGOjptb25vdG9uaWNh
bGx5SW5jcmVhc2luZ1RpbWUoKSwgY291bnQpOwotfQotCiAjaWYgRU5BQkxFKENTU19TQ1JPTExf
U05BUCkgJiYgUExBVEZPUk0oTUFDKQogTGF5b3V0VW5pdCBTY3JvbGxpbmdUcmVlRnJhbWVTY3Jv
bGxpbmdOb2RlTWFjOjpzY3JvbGxPZmZzZXRPbkF4aXMoU2Nyb2xsRXZlbnRBeGlzIGF4aXMpIGNv
bnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggOTk0MDFmNjExYjY3
MTI5ZTg2M2Q2NmVmMjEyMDdkYzNkMTgyMTQ1OS4uMzRiNjg0NWViODkzNjQzNmYyYmRjNTI3YjMy
ZDcxMjU1OWQzZTg5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMTI1
NCwxNSArMTI1NCw3IEBAIHVuc2lnbmVkIEludGVybmFsczo6dG91Y2hFdmVudEhhbmRsZXJDb3Vu
dChFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgYXV0
byB0b3VjaEhhbmRsZXJzID0gZG9jdW1lbnQtPnRvdWNoRXZlbnRUYXJnZXRzKCk7Ci0gICAgaWYg
KCF0b3VjaEhhbmRsZXJzKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIHVuc2lnbmVkIGNvdW50
ID0gMDsKLSAgICBmb3IgKGF1dG8mIGhhbmRsZXIgOiAqdG91Y2hIYW5kbGVycykKLSAgICAgICAg
Y291bnQgKz0gaGFuZGxlci52YWx1ZTsKLQotICAgIHJldHVybiBjb3VudDsKKyAgICByZXR1cm4g
ZG9jdW1lbnQtPnRvdWNoRXZlbnRIYW5kbGVyQ291bnQoKTsKIH0KIAogLy8gRklYTUU6IFJlbW92
ZSB0aGUgZG9jdW1lbnQgYXJndW1lbnQuIEl0IGlzIGFsbW9zdCBhbHdheXMgdGhlIHNhbWUgYXMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmgKaW5kZXggZTk1NDZlMjAxZTBjMDYxYTcyMmJlOWYxM2RjOGNlYzU0YzQxZTEwZi4uYTFlNGI4
OGIzMDJhMGFlNTBjMzUwN2M2YTNkZTU4NjU2NTc2MDQ0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTE5NSw3ICsxOTUs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4g
Y3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0IG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+IGNyZWF0
ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdCBvdmVycmlk
ZTsKIAotICAgIHZpcnR1YWwgdm9pZCBudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKHVuc2ln
bmVkKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgd2hlZWxFdmVudEhhbmRsZXJzQ2hh
bmdlZChib29sKSBvdmVycmlkZSB7IH0KIAogI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQogICAg
IHZpcnR1YWwgYm9vbCB3cmFwQ3J5cHRvS2V5KGNvbnN0IFZlY3Rvcjx1aW50OF90PiYsIFZlY3Rv
cjx1aW50OF90PiYpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3JUcmFuc2FjdGlvbi5jcHAKaW5kZXggYjM2YmZjYzc4OGU4NWY5YTAzMGE4MmM2YzgyYjE0
OGZlZjQzN2ZkNS4uZjAwY2M2NmIzZDMxZTM3ZGQyZTRhMmU2NzFmYjU5NmYwODFkZTQ5YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvclRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Ny
b2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwCkBAIC0xNDMs
NyArMTQzLDYgQEAgdm9pZCBBcmd1bWVudENvZGVyPFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxp
bmdOb2RlPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW4KICAgICAKICAgICBTQ1JPTExJTkdf
Tk9ERV9FTkNPREUoU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU6OkZyYW1lU2NhbGVG
YWN0b3IsIGZyYW1lU2NhbGVGYWN0b3IpCiAgICAgU0NST0xMSU5HX05PREVfRU5DT0RFKFNjcm9s
bGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpOb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbiwgbm9u
RmFzdFNjcm9sbGFibGVSZWdpb24pCi0gICAgU0NST0xMSU5HX05PREVfRU5DT0RFKFNjcm9sbGlu
Z1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpXaGVlbEV2ZW50SGFuZGxlckNvdW50LCB3aGVlbEV2
ZW50SGFuZGxlckNvdW50KQogICAgIFNDUk9MTElOR19OT0RFX0VOQ09ERShTY3JvbGxpbmdTdGF0
ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6UmVhc29uc0ZvclN5bmNocm9ub3VzU2Nyb2xsaW5nLCBzeW5j
aHJvbm91c1Njcm9sbGluZ1JlYXNvbnMpCiAgICAgU0NST0xMSU5HX05PREVfRU5DT0RFX0VOVU0o
U2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU6OkJlaGF2aW9yRm9yRml4ZWRFbGVtZW50
cywgc2Nyb2xsQmVoYXZpb3JGb3JGaXhlZEVsZW1lbnRzKQogICAgIFNDUk9MTElOR19OT0RFX0VO
Q09ERShTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6SGVhZGVySGVpZ2h0LCBoZWFk
ZXJIZWlnaHQpCkBAIC0yMjUsNyArMjI0LDYgQEAgYm9vbCBBcmd1bWVudENvZGVyPFNjcm9sbGlu
Z1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGUKIAog
ICAgIFNDUk9MTElOR19OT0RFX0RFQ09ERShTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9k
ZTo6RnJhbWVTY2FsZUZhY3RvciwgZmxvYXQsIHNldEZyYW1lU2NhbGVGYWN0b3IpOwogICAgIFND
Uk9MTElOR19OT0RFX0RFQ09ERShTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6Tm9u
RmFzdFNjcm9sbGFibGVSZWdpb24sIFJlZ2lvbiwgc2V0Tm9uRmFzdFNjcm9sbGFibGVSZWdpb24p
OwotICAgIFNDUk9MTElOR19OT0RFX0RFQ09ERShTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5n
Tm9kZTo6V2hlZWxFdmVudEhhbmRsZXJDb3VudCwgaW50LCBzZXRXaGVlbEV2ZW50SGFuZGxlckNv
dW50KTsKICAgICBTQ1JPTExJTkdfTk9ERV9ERUNPREUoU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9s
bGluZ05vZGU6OlJlYXNvbnNGb3JTeW5jaHJvbm91c1Njcm9sbGluZywgU3luY2hyb25vdXNTY3Jv
bGxpbmdSZWFzb25zLCBzZXRTeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnMpOwogICAgIFNDUk9M
TElOR19OT0RFX0RFQ09ERV9FTlVNKFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpC
ZWhhdmlvckZvckZpeGVkRWxlbWVudHMsIFNjcm9sbEJlaGF2aW9yRm9yRml4ZWRFbGVtZW50cywg
c2V0U2Nyb2xsQmVoYXZpb3JGb3JGaXhlZEVsZW1lbnRzKTsKIApAQCAtNjIwLDcgKzYxOCw2IEBA
IHZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJlZVRleHRTdHJlYW06OmR1bXAoY29uc3QgU2Nyb2xsaW5n
U3RhdGVGcmFtZVNjcm9sbGluZ05vZGUmCiAgICAgICAgIHRzLmRlY3JlYXNlSW5kZW50KCk7CiAg
ICAgfQogCi0gICAgLy8gRklYTUU6IGR1bXAgd2hlZWxFdmVudEhhbmRsZXJDb3VudAogICAgIC8v
IEZJWE1FOiBkdW1wIHN5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29ucwogICAgIC8vIEZJWE1FOiBk
dW1wIHNjcm9sbGFibGVBcmVhUGFyYW1ldGVycwogICAgIC8vIEZJWE1FOiBkdW1wIHNjcm9sbEJl
aGF2aW9yRm9yRml4ZWRFbGVtZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDk0NGZl
NmQ0ZWRkNGEwMGQ4NmYwMDIyN2JkY2QxMGNkM2I0YWZjZjUuLmM3ZDJkMDlmNGE0MTczNzhkYjE0
NjIxZWFlMDI0NDhhZTU3NDc3NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTk5MCw5
ICs5OTAsOSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6cGFnZUV4dGVuZGVkQmFja2dyb3VuZENv
bG9yRGlkQ2hhbmdlKENvbG9yIGJhY2tncm91bmRDb2xvcgogI2VuZGlmCiB9CiAKLXZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjpudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKHVuc2lnbmVkIGNvdW50
KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OndoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQoYm9vbCBo
YXNIYW5kbGVycykKIHsKLSAgICBtX3BhZ2UtPm51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQo
Y291bnQpOworICAgIG1fcGFnZS0+d2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZChoYXNIYW5kbGVy
cyk7CiB9CiAKIFN0cmluZyBXZWJDaHJvbWVDbGllbnQ6OnBsdWdJblN0YXJ0TGFiZWxUaXRsZShj
b25zdCBTdHJpbmcmIG1pbWVUeXBlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggZmZm
NDliMzcyMjdmZWU4OTFjNjNiNTYzZjZhZDJhZTcxM2VhMWYzYi4uY2VmMmNlY2MzZjUwYjQwOTQ3
ODAxYmVlY2YxMTc4MjMxYmE3MzYwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0yODAsNyAr
MjgwLDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCBwYWdlRXh0ZW5kZWRCYWNrZ3Jv
dW5kQ29sb3JEaWRDaGFuZ2UoV2ViQ29yZTo6Q29sb3IpIGNvbnN0IG92ZXJyaWRlOwogICAgIAot
ICAgIHZpcnR1YWwgdm9pZCBudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKHVuc2lnbmVkKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZChib29s
KSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgU3RyaW5nIHBsdWdJblN0YXJ0TGFiZWxUaXRsZShj
b25zdCBTdHJpbmcmIG1pbWVUeXBlKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIFN0cmlu
ZyBwbHVnSW5TdGFydExhYmVsU3VidGl0bGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkgY29uc3Qg
b3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKaW5kZXggNjY5NzU2ZjNmMDM1OWVjNzI2YjgxOTEzMDQ5M2VjZTdlN2RkNjBiNC4uYjVmMmM0
ZGZlOGYxYjc5NDFiZTQzZjkxNTE4NWI1NDA1NTNjZDBmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMzA0LDcgKzMwNCw3IEBAIFdlYlBh
Z2U6OldlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0
ZXJzJiBwYXJhbWV0ZXJzKQogICAgICwgbV9jYWNoZWRNYWluRnJhbWVJc1Bpbm5lZFRvVG9wU2lk
ZSh0cnVlKQogICAgICwgbV9jYWNoZWRNYWluRnJhbWVJc1Bpbm5lZFRvQm90dG9tU2lkZSh0cnVl
KQogICAgICwgbV9jYW5TaG9ydENpcmN1aXRIb3Jpem9udGFsV2hlZWxFdmVudHMoZmFsc2UpCi0g
ICAgLCBtX251bVdoZWVsRXZlbnRIYW5kbGVycygwKQorICAgICwgbV9oYXNXaGVlbEV2ZW50SGFu
ZGxlcnMoZmFsc2UpCiAgICAgLCBtX2NhY2hlZFBhZ2VDb3VudCgwKQogICAgICwgbV9hdXRvU2l6
aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0KGZhbHNlKQogI2lmIEVOQUJMRShDT05URVhUX01F
TlVTKQpAQCAtNDA1NSwxMiArNDA1NSwxMiBAQCB2b2lkIFdlYlBhZ2U6OmNvbmZpcm1Db21wb3Np
dGlvbkZvclRlc3RpbmcoY29uc3QgU3RyaW5nJiBjb21wb3NpdGlvblN0cmluZykKICAgICBmcmFt
ZS5lZGl0b3IoKS5jb25maXJtQ29tcG9zaXRpb24oY29tcG9zaXRpb25TdHJpbmcpOwogfQogCi12
b2lkIFdlYlBhZ2U6Om51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQodW5zaWduZWQgbnVtV2hl
ZWxFdmVudEhhbmRsZXJzKQordm9pZCBXZWJQYWdlOjp3aGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2Vk
KGJvb2wgaGFzSGFuZGxlcnMpCiB7Ci0gICAgaWYgKG1fbnVtV2hlZWxFdmVudEhhbmRsZXJzID09
IG51bVdoZWVsRXZlbnRIYW5kbGVycykKKyAgICBpZiAobV9oYXNXaGVlbEV2ZW50SGFuZGxlcnMg
PT0gaGFzSGFuZGxlcnMpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fbnVtV2hlZWxFdmVudEhh
bmRsZXJzID0gbnVtV2hlZWxFdmVudEhhbmRsZXJzOworICAgIG1faGFzV2hlZWxFdmVudEhhbmRs
ZXJzID0gaGFzSGFuZGxlcnM7CiAgICAgcmVjb21wdXRlU2hvcnRDaXJjdWl0SG9yaXpvbnRhbFdo
ZWVsRXZlbnRzU3RhdGUoKTsKIH0KIApAQCAtNDEwMyw3ICs0MTAzLDcgQEAgc3RhdGljIGJvb2wg
cGFnZUNvbnRhaW5zQW55SG9yaXpvbnRhbFNjcm9sbGJhcnMoRnJhbWUqIG1haW5GcmFtZSkKIAog
dm9pZCBXZWJQYWdlOjpyZWNvbXB1dGVTaG9ydENpcmN1aXRIb3Jpem9udGFsV2hlZWxFdmVudHNT
dGF0ZSgpCiB7Ci0gICAgYm9vbCBjYW5TaG9ydENpcmN1aXRIb3Jpem9udGFsV2hlZWxFdmVudHMg
PSAhbV9udW1XaGVlbEV2ZW50SGFuZGxlcnM7CisgICAgYm9vbCBjYW5TaG9ydENpcmN1aXRIb3Jp
em9udGFsV2hlZWxFdmVudHMgPSAhbV9oYXNXaGVlbEV2ZW50SGFuZGxlcnM7CiAKICAgICBpZiAo
Y2FuU2hvcnRDaXJjdWl0SG9yaXpvbnRhbFdoZWVsRXZlbnRzKSB7CiAgICAgICAgIC8vIENoZWNr
IGlmIHdlIGhhdmUgYW55IGhvcml6b250YWwgc2Nyb2xsIGJhcnMgb24gdGhlIHBhZ2UuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA1Nzk1MDU5NDJh
ZTM0YTg2ZWJjYjllNTg5MzgwNDYzNDQyMWQ4YTkzLi4xYWVhODAzYTQ0YzNhY2Y5ZGQyNzkxZGI4
MWMxZTZiN2MwZTFkOTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmgKQEAgLTc2MCw3ICs3NjAsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHdoZWVsRXZl
bnQoY29uc3QgV2ViV2hlZWxFdmVudCYpOwogCi0gICAgdm9pZCBudW1XaGVlbEV2ZW50SGFuZGxl
cnNDaGFuZ2VkKHVuc2lnbmVkKTsKKyAgICB2b2lkIHdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQo
Ym9vbCk7CiAgICAgdm9pZCByZWNvbXB1dGVTaG9ydENpcmN1aXRIb3Jpem9udGFsV2hlZWxFdmVu
dHNTdGF0ZSgpOwogCiAgICAgdm9pZCB1cGRhdGVWaXNpYmlsaXR5U3RhdGUoYm9vbCBpc0luaXRp
YWxTdGF0ZSA9IGZhbHNlKTsKQEAgLTEyNjMsNyArMTI2Myw3IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX2NhY2hlZE1haW5GcmFtZUlzUGlubmVkVG9Ub3BTaWRlOwogICAgIGJvb2wgbV9jYWNoZWRN
YWluRnJhbWVJc1Bpbm5lZFRvQm90dG9tU2lkZTsKICAgICBib29sIG1fY2FuU2hvcnRDaXJjdWl0
SG9yaXpvbnRhbFdoZWVsRXZlbnRzOwotICAgIHVuc2lnbmVkIG1fbnVtV2hlZWxFdmVudEhhbmRs
ZXJzOworICAgIGJvb2wgbV9oYXNXaGVlbEV2ZW50SGFuZGxlcnM7CiAKICAgICB1bnNpZ25lZCBt
X2NhY2hlZFBhZ2VDb3VudDsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGJmY2ZjM2IwYTFjOTE5NjgwMzlhNDgyZTM4MDg5
ZWVkMDQyMjVhZTAuLjViYThkNTdlNzEwMzg4ODY2ZWQ3NGY3MDU2NjJmYmVmYmU0NmNhYWMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTMsNiArMywxOSBAQAogICAgICAgICBNYWtlIGl0IHBvc3NpYmxlIHRvIGNvbXB1dGUg
YSByZWdpb24gZm9yIGVsZW1lbnRzIG9uIHRoZSBwYWdlIHRoYXQgaGF2ZSB3aGVlbCBldmVudCBo
YW5kbGVycwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTQyODA3CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAor
ICAgICAgICBVcGRhdGUgcmVzdWx0cywgc2luY2UgYW55IGhhbmRsZXIgd2l0aCBwb3NpdGlvbjpm
aXhlZCBub3cgY2F1c2VzIHRoZSByZWdpb24gdG8gY292ZXIgdGhlIGRvY3VtZW50LgorCisgICAg
ICAgICogcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9ub24tZmFzdC1y
ZWdpb24vd2hlZWwtaGFuZGxlci1maXhlZC1jaGlsZC1leHBlY3RlZC50eHQ6CisgICAgICAgICog
cGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9ub24tZmFzdC1yZWdpb24v
d2hlZWwtaGFuZGxlci1pbnNpZGUtZml4ZWQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRm
b3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvbm9uLWZhc3QtcmVnaW9uL3doZWVs
LWhhbmRsZXItb24tZml4ZWQtZXhwZWN0ZWQudHh0OgorCisyMDE1LTAzLTMxICBTaW1vbiBGcmFz
ZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgaXQgcG9zc2libGUg
dG8gY29tcHV0ZSBhIHJlZ2lvbiBmb3IgZWxlbWVudHMgb24gdGhlIHBhZ2UgdGhhdCBoYXZlIHdo
ZWVsIGV2ZW50IGhhbmRsZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDI4MDcKKwogICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBIeWF0dC4KICAg
ICAgICAgCiAgICAgICAgIFRlc3RzIHRoYXQgZHVtcCB0aGUgbm9uLWZhc3Qtc2Nyb2xsYWJsZSBy
ZWdpb24sIGZvciB2YXJpb3VzIHJlbmRlcmluZyBjb25maWd1cmF0aW9ucy4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvbm9u
LWZhc3QtcmVnaW9uL3doZWVsLWhhbmRsZXItZml4ZWQtY2hpbGQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9ub24tZmFz
dC1yZWdpb24vd2hlZWwtaGFuZGxlci1maXhlZC1jaGlsZC1leHBlY3RlZC50eHQKaW5kZXggMWNi
MjU1ZDFhMmNhMGQwMzlkY2ZhNDI2NjZkNjcwMjJhZGFiNTVlYS4uMTc3NTY5NDRmZmY5NzlmOGYw
MzZlYjdmZDIxMTNiYzQ5OTAyOTNiYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXdrMi90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9ub24tZmFzdC1yZWdpb24vd2hlZWwtaGFu
ZGxlci1maXhlZC1jaGlsZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXdrMi90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9ub24tZmFzdC1yZWdpb24vd2hlZWwtaGFu
ZGxlci1maXhlZC1jaGlsZC1leHBlY3RlZC50eHQKQEAgLTEgKzEgQEAKLTUwLCA1MCAtIDE1MCwg
MTUwCiswLCAwIC0gNzg1LCA2MjgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy13azIvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvbm9uLWZhc3QtcmVnaW9uL3doZWVsLWhhbmRs
ZXItaW5zaWRlLWZpeGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13
azIvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvbm9uLWZhc3QtcmVnaW9uL3doZWVsLWhhbmRsZXIt
aW5zaWRlLWZpeGVkLWV4cGVjdGVkLnR4dAppbmRleCA3ZmE0ZmMwOTcwMGZlOGQ4NzRkMjlhYjgw
OWJmMDU1MWY4Mjc5YmUwLi4wY2I0ZDNiMGIyZmY2ODlhYTFkZTU5MTRkOGI0NGRlOGFjOGQ5ZWMy
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcv
c2Nyb2xsaW5nL25vbi1mYXN0LXJlZ2lvbi93aGVlbC1oYW5kbGVyLWluc2lkZS1maXhlZC1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5n
L3Njcm9sbGluZy9ub24tZmFzdC1yZWdpb24vd2hlZWwtaGFuZGxlci1pbnNpZGUtZml4ZWQtZXhw
ZWN0ZWQudHh0CkBAIC0xICsxIEBACi02MCwgNjAgLSAxNjAsIDE2MAorMCwgMCAtIDgwMCwgNjAw
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcv
c2Nyb2xsaW5nL25vbi1mYXN0LXJlZ2lvbi93aGVlbC1oYW5kbGVyLW9uLWZpeGVkLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9zY3JvbGxp
bmcvbm9uLWZhc3QtcmVnaW9uL3doZWVsLWhhbmRsZXItb24tZml4ZWQtZXhwZWN0ZWQudHh0Cmlu
ZGV4IGQ4NDM5ZmEzYThhODYyY2FiNDBhYmM1MjFjOWIxNGEwODMwYzExOTEuLjBjYjRkM2IwYjJm
ZjY4OWFhMWRlNTkxNGQ4YjQ0ZGU4YWM4ZDllYzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvbm9uLWZhc3QtcmVnaW9uL3do
ZWVsLWhhbmRsZXItb24tZml4ZWQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvbm9uLWZhc3QtcmVnaW9uL3doZWVs
LWhhbmRsZXItb24tZml4ZWQtZXhwZWN0ZWQudHh0CkBAIC0xICsxIEBACi0xMCwgMTAgLSAxMTAs
IDExMAorMCwgMCAtIDgwMCwgNjAwCg==
</data>
<flag name="review"
          id="274720"
          type_id="1"
          status="+"
          setter="bdakin"
    />
          </attachment>
      

    </bug>

</bugzilla>