<?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>79114</bug_id>
          
          <creation_ts>2012-02-21 08:36:44 -0800</creation_ts>
          <short_desc>MediaStream API: Adding a mock for PeerConnectionHandler</short_desc>
          <delta_ts>2012-05-04 05:40:34 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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>
          
          <blocked>56459</blocked>
    
    <blocked>56587</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Tommy Widenflycht">tommyw</reporter>
          <assigned_to name="Tommy Widenflycht">tommyw</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fishd</cc>
    
    <cc>harald</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>560904</commentid>
    <comment_count>0</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-02-21 08:36:44 -0800</bug_when>
    <thetext>Adding a mock for PeerConnectionHandler together with the chromium embedders. No actual LayoutTests since the plumbing needs to be done in chromium first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560916</commentid>
    <comment_count>1</comment_count>
      <attachid>127980</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-02-21 08:46:28 -0800</bug_when>
    <thetext>Created attachment 127980
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562648</commentid>
    <comment_count>2</comment_count>
      <attachid>127980</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-22 18:01:26 -0800</bug_when>
    <thetext>Comment on attachment 127980
Patch

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

&gt; Source/WebCore/mediastream/PeerConnection.h:56
&gt; +    // Name and values of the enum must match the corressponding constants in the PeerConnection.idl file.

Presumably the compiler enforces this with a COMPILE_ASSERT.

&gt; Source/WebKit/chromium/src/WebPeerConnectionHandlerMock.cpp:56
&gt; +WebPeerConnectionHandlerMock:: ~WebPeerConnectionHandlerMock()

Extra space after the ::</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563008</commentid>
    <comment_count>3</comment_count>
      <attachid>127980</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-02-23 03:33:02 -0800</bug_when>
    <thetext>Comment on attachment 127980
Patch

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

&gt;&gt; Source/WebCore/mediastream/PeerConnection.h:56
&gt;&gt; +    // Name and values of the enum must match the corressponding constants in the PeerConnection.idl file.
&gt; 
&gt; Presumably the compiler enforces this with a COMPILE_ASSERT.

You&apos;re right so I removed the comment.

&gt;&gt; Source/WebKit/chromium/src/WebPeerConnectionHandlerMock.cpp:56
&gt;&gt; +WebPeerConnectionHandlerMock:: ~WebPeerConnectionHandlerMock()
&gt; 
&gt; Extra space after the ::

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563009</commentid>
    <comment_count>4</comment_count>
      <attachid>128450</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-02-23 03:34:25 -0800</bug_when>
    <thetext>Created attachment 128450
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564084</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2012-02-24 01:44:17 -0800</bug_when>
    <thetext>Please wait for approval from fishd@chromium.org before submitting because this patch contains changes to the Chromium public API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564465</commentid>
    <comment_count>6</comment_count>
      <attachid>128450</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-02-24 10:59:30 -0800</bug_when>
    <thetext>Comment on attachment 128450
Patch

Why are mocks part of WebCore / WebKit and not just part of DumpRenderTree?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127980</attachid>
            <date>2012-02-21 08:46:28 -0800</date>
            <delta_ts>2012-02-23 03:34:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79114-20120221174626.patch</filename>
            <type>text/plain</type>
            <size>36286</size>
            <attacher name="Tommy Widenflycht">tommyw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4MzIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGFhMGZmYjcxYjFhODVh
NWVmN2ZiMGVhYzNjZDU2ODBlYzExOTQ3My4uZjRhYmFjYjZjYjM0NzlmYWU2YTYzZDE0Y2IzNTA1
YzRkYzliYjgxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTAyLTIxICBUb21t
eSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgorCisgICAgICAgIE1lZGlhU3RyZWFt
IEFQSTogQWRkaW5nIGEgbW9jayBmb3IgUGVlckNvbm5lY3Rpb25IYW5kbGVyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTExNAorCisgICAgICAgIEFs
c28gY2hhbmdlcyB0aGUgUGVlckNvbm5lY3Rpb25IYW5kbGVyIEFQSSB2ZXJ5IHNsaWdodGx5IGR1
ZSB0byBmZWVkYmFjay4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBObyBhY3R1YWwgdGVzdHMgeWV0IHNpbmNlIHRoZSBtb2NrIG5lZWRzIHNvbWUgcGx1
bWJpbmcgaW50byBjaHJvbWl1bSBmaXJzdC4KKworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAg
ICAgICAgKiBtZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpQZWVyQ29ubmVjdGlvbjo6ZGlkUmVzdGFydElDRVByb2Nlc3NpbmcpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgICogbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb24uaDoKKyAgICAgICAg
KFBlZXJDb25uZWN0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9QZWVyQ29u
bmVjdGlvbkhhbmRsZXJDbGllbnQuaDoKKyAgICAgICAgKFBlZXJDb25uZWN0aW9uSGFuZGxlckNs
aWVudCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25IYW5k
bGVyTW9jay5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
UGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jazo6UGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jayk6Cisg
ICAgICAgIChXZWJDb3JlOjpQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrOjp+UGVlckNvbm5lY3Rp
b25IYW5kbGVyTW9jayk6CisgICAgICAgIChXZWJDb3JlOjpQZWVyQ29ubmVjdGlvbkhhbmRsZXJN
b2NrOjpwcm9kdWNlSW5pdGlhbE9mZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlBlZXJDb25uZWN0
aW9uSGFuZGxlck1vY2s6OmhhbmRsZUluaXRpYWxPZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrOjpwcm9jZXNzU0RQKToKKyAgICAgICAgKFdlYkNvcmU6
OlBlZXJDb25uZWN0aW9uSGFuZGxlck1vY2s6OnByb2Nlc3NQZW5kaW5nU3RyZWFtcyk6CisgICAg
ICAgIChXZWJDb3JlOjpQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrOjpzZW5kRGF0YVN0cmVhbU1l
c3NhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jazo6c3Rv
cCk6CisgICAgICAgIChXZWJDb3JlOjpQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrOjpzZHBUaW1l
ckZpcmVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkhh
bmRsZXJNb2NrLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudC5oLgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrKToKKwogMjAxMi0wMi0yMSAgUGF0cmlj
ayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBVc2UgV2luMzIgQVBJ
IHRvIGdldCBmaWxlIGluZm9ybWF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDJi
ZTM1YzBlODBlNjUyNmIwYTI1MzY4MjRhNDg3OWJlNTc1ZGE5OTUuLmI2OWNhMDBhOTE1MjZhZmM4
YmU4MTUyZDFmYjQ0MjNhY2M3NTVhNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNTUgQEAKKzIwMTItMDItMjEgIFRvbW15IFdpZGVuZmx5Y2h0ICA8dG9tbXl3QGdvb2ds
ZS5jb20+CisKKyAgICAgICAgTWVkaWFTdHJlYW0gQVBJOiBBZGRpbmcgYSBtb2NrIGZvciBQZWVy
Q29ubmVjdGlvbkhhbmRsZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc5MTE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBXZWJLaXQuZ3lwOgorICAgICAgICAqIGJyaWRnZS9QZWVyQ29ubmVjdGlvbkhh
bmRsZXJJbnRlcm5hbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZWVyQ29ubmVjdGlvbkhhbmRs
ZXJJbnRlcm5hbDo6ZGlkQ29tcGxldGVJQ0VQcm9jZXNzaW5nKToKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6UGVlckNvbm5lY3Rpb25IYW5kbGVySW50ZXJuYWw6OmRpZFJl
c3RhcnRJQ0VQcm9jZXNzaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlBlZXJDb25uZWN0aW9uSGFu
ZGxlckludGVybmFsOjpkaWRHZW5lcmF0ZVNEUCk6CisgICAgICAgIChXZWJDb3JlOjpQZWVyQ29u
bmVjdGlvbkhhbmRsZXJJbnRlcm5hbDo6ZGlkUmVjZWl2ZURhdGFTdHJlYW1NZXNzYWdlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlBlZXJDb25uZWN0aW9uSGFuZGxlckludGVybmFsOjpkaWRBZGRSZW1v
dGVTdHJlYW0pOgorICAgICAgICAoV2ViQ29yZTo6UGVlckNvbm5lY3Rpb25IYW5kbGVySW50ZXJu
YWw6OmRpZFJlbW92ZVJlbW90ZVN0cmVhbSk6CisgICAgICAgICogYnJpZGdlL1BlZXJDb25uZWN0
aW9uSGFuZGxlckludGVybmFsLmg6CisgICAgICAgIChQZWVyQ29ubmVjdGlvbkhhbmRsZXJJbnRl
cm5hbCk6CisgICAgICAgICogcHVibGljL3BsYXRmb3JtL1dlYlBlZXJDb25uZWN0aW9uSGFuZGxl
ckNsaWVudC5oOgorICAgICAgICAoV2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50KToKKyAg
ICAgICAgKiBwdWJsaWMvcGxhdGZvcm0vV2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jay5oOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJQZWVy
Q29ubmVjdGlvbkhhbmRsZXJDbGllbnQuaC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViS2l0KToKKyAgICAgICAgKFdlYlBlZXJDb25uZWN0aW9uSGFuZGxlck1vY2spOgorICAgICAg
ICAqIHNyYy9QZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnRCcmlkZ2UuY3BwOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL2JyaWRnZS9QZWVyQ29ubmVjdGlvbkhhbmRsZXJJbnRl
cm5hbC5oLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpQZWVyQ29ubmVj
dGlvbkhhbmRsZXJDbGllbnRCcmlkZ2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQZWVy
Q29ubmVjdGlvbkhhbmRsZXJDbGllbnRCcmlkZ2U6OlBlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVu
dEJyaWRnZSk6CisgICAgICAgIChXZWJDb3JlOjpQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnRC
cmlkZ2U6On5QZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnRCcmlkZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6UGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50QnJpZGdlOjpkaWRDb21wbGV0ZUlDRVBy
b2Nlc3NpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50
QnJpZGdlOjpkaWRSZXN0YXJ0SUNFUHJvY2Vzc2luZyk6CisgICAgICAgIChXZWJDb3JlOjpQZWVy
Q29ubmVjdGlvbkhhbmRsZXJDbGllbnRCcmlkZ2U6OmRpZEdlbmVyYXRlU0RQKToKKyAgICAgICAg
KFdlYkNvcmU6OlBlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudEJyaWRnZTo6ZGlkUmVjZWl2ZURh
dGFTdHJlYW1NZXNzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBlZXJDb25uZWN0aW9uSGFuZGxl
ckNsaWVudEJyaWRnZTo6ZGlkQWRkUmVtb3RlU3RyZWFtKToKKyAgICAgICAgKFdlYkNvcmU6OlBl
ZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudEJyaWRnZTo6ZGlkUmVtb3ZlUmVtb3RlU3RyZWFtKToK
KyAgICAgICAgKiBzcmMvUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50QnJpZGdlLmg6IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dlYlBlZXJDb25u
ZWN0aW9uSGFuZGxlckNsaWVudC5oLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50QnJpZGdlKToKKyAgICAg
ICAgKiBzcmMvV2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jay5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9j
azo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9j
azo6V2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jayk6CisgICAgICAgIChXZWJLaXQ6On5XZWJQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGVlckNvbm5l
Y3Rpb25IYW5kbGVyTW9jazo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBlZXJD
b25uZWN0aW9uSGFuZGxlck1vY2s6OnByb2R1Y2VJbml0aWFsT2ZmZXIpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrOjpoYW5kbGVJbml0aWFsT2ZmZXIpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrOjpwcm9jZXNzU0RQ
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jazo6cHJvY2Vz
c1BlbmRpbmdTdHJlYW1zKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGVlckNvbm5lY3Rpb25IYW5k
bGVyTW9jazo6c2VuZERhdGFTdHJlYW1NZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGVl
ckNvbm5lY3Rpb25IYW5kbGVyTW9jazo6c3RvcCk6CisKIDIwMTItMDItMjAgIFBldGVyIEJldmVy
bG9vICA8cGV0ZXJAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuICBSb2xsZWQg
REVQUy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA2NzQ2NGRlZDM3NDNmYTAxMGUzMmFkZDQ5YWZkZTA3
YTRhNjg4OGJmLi5hODU3N2M5NjllMTM5ZDY0NDIyOWZkOGQ3NTVmOGJiM2Q1MTcxYzVjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCkBAIC00MDcsNiArNDA3LDggQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVNvdXJjZS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkhhbmRsZXIuaCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50LmgnLAorICAgICAgICAg
ICAgJ3BsYXRmb3JtL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uSGFuZGxlck1vY2suY3BwJywK
KyAgICAgICAgICAgICdwbGF0Zm9ybS9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkhhbmRsZXJN
b2NrLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21vY2svRGV2aWNlT3JpZW50YXRpb25DbGll
bnRNb2NrLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25DbGllbnRN
b2NrLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL25ldHdvcmsvQXV0aGVudGljYXRpb25DaGFs
bGVuZ2VCYXNlLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vUGVl
ckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rp
b24uY3BwCmluZGV4IDRkZDNiZjBkYTI1Y2NiNDMxNzQzZWY3OGY4ODBlZTE3OTdmZWFkZDEuLmJh
OTIzYWMwYjc4YjM4ZTFhNDEwZmUwMGUxZWVjZTM0YzBiZTc2MTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbi5jcHAKQEAgLTE5OSw2ICsxOTksMTIgQEAg
dm9pZCBQZWVyQ29ubmVjdGlvbjo6ZGlkQ29tcGxldGVJQ0VQcm9jZXNzaW5nKCkKICAgICBjaGFu
Z2VSZWFkeVN0YXRlKEFDVElWRSk7CiB9CiAKK3ZvaWQgUGVlckNvbm5lY3Rpb246OmRpZFJlc3Rh
cnRJQ0VQcm9jZXNzaW5nKCkKK3sKKyAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
LT5pc0NvbnRleHRUaHJlYWQoKSk7CisgICAgY2hhbmdlUmVhZHlTdGF0ZShORUdPVElBVElORyk7
Cit9CisKIHZvaWQgUGVlckNvbm5lY3Rpb246OmRpZEdlbmVyYXRlU0RQKGNvbnN0IFN0cmluZyYg
c2RwKQogewogICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzQ29udGV4dFRo
cmVhZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL1BlZXJDb25u
ZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbi5oCmlu
ZGV4IGZkMmYyZmIyZDQyODI2YjYzNjAwMTU1NmIzNmIzYWFlNzNiZjVjMjQuLmU0ZTMyODEwZDRk
MjcyNGZjZTYzODExZjZmZGE5YTZmZjcyNTQwYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbWVkaWFz
dHJlYW0vUGVlckNvbm5lY3Rpb24uaApAQCAtNTMsNiArNTMsMTQgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBQZWVyQ29ubmVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFBlZXJDb25u
ZWN0aW9uPiwgcHVibGljIFBlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudCwgcHVibGljIEV2ZW50
VGFyZ2V0LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKIHB1YmxpYzoKKyAgICAvLyBOYW1lIGFu
ZCB2YWx1ZXMgb2YgdGhlIGVudW0gbXVzdCBtYXRjaCB0aGUgY29ycmVzc3BvbmRpbmcgY29uc3Rh
bnRzIGluIHRoZSBQZWVyQ29ubmVjdGlvbi5pZGwgZmlsZS4KKyAgICBlbnVtIFJlYWR5U3RhdGUg
eworICAgICAgICBORVcgPSAwLAorICAgICAgICBORUdPVElBVElORyA9IDEsCisgICAgICAgIEFD
VElWRSA9IDIsCisgICAgICAgIENMT1NFRCA9IDMKKyAgICB9OworCiAgICAgc3RhdGljIFBhc3NS
ZWZQdHI8UGVlckNvbm5lY3Rpb24+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29u
c3QgU3RyaW5nJiBzZXJ2ZXJDb25maWd1cmF0aW9uLCBQYXNzUmVmUHRyPFNpZ25hbGluZ0NhbGxi
YWNrPik7CiAgICAgflBlZXJDb25uZWN0aW9uKCk7CiAKQEAgLTc2LDExICs4NCwxMSBAQCBwdWJs
aWM6CiAKICAgICAvLyBQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQKICAgICB2aXJ0dWFsIHZv
aWQgZGlkQ29tcGxldGVJQ0VQcm9jZXNzaW5nKCk7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlc3Rh
cnRJQ0VQcm9jZXNzaW5nKCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZEdlbmVyYXRlU0RQKGNvbnN0
IFN0cmluZyYgc2RwKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGFTdHJlYW1NZXNz
YWdlKGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBsZW5ndGgpOwogICAgIHZpcnR1YWwgdm9pZCBk
aWRBZGRSZW1vdGVTdHJlYW0oUGFzc1JlZlB0cjxNZWRpYVN0cmVhbURlc2NyaXB0b3I+KTsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVtb3ZlUmVtb3RlU3RyZWFtKE1lZGlhU3RyZWFtRGVzY3JpcHRv
ciopOwotICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VTdGF0ZShSZWFkeVN0YXRlIHN0YXRlKSB7
IGNoYW5nZVJlYWR5U3RhdGUoc3RhdGUpOyB9CiAKICAgICAvLyBFdmVudFRhcmdldAogICAgIHZp
cnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBpbnRlcmZhY2VOYW1lKCkgY29uc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkhh
bmRsZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1BlZXJD
b25uZWN0aW9uSGFuZGxlckNsaWVudC5oCmluZGV4IGU2N2VmM2E1NTg0MDNhOWI4NWQ3NGFkZTcx
MjQ1MzgzYTYyYzY4N2UuLmRiYWQ0YjJiMGIzYjE2ZDllYjNhMGMwM2NjODZlYzA2NmRmMmYyNjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1BlZXJDb25u
ZWN0aW9uSGFuZGxlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudC5oCkBAIC00MiwyMiArNDIsMTQgQEAg
Y2xhc3MgTWVkaWFTdHJlYW1EZXNjcmlwdG9yOwogCiBjbGFzcyBQZWVyQ29ubmVjdGlvbkhhbmRs
ZXJDbGllbnQgewogcHVibGljOgotICAgIC8vIE5hbWUgYW5kIHZhbHVlcyBvZiB0aGUgZW51bSBt
dXN0IG1hdGNoIHRoZSBjb3JyZXNzcG9uZGluZyBjb25zdGFudHMgaW4gdGhlIFBlZXJDb25uZWN0
aW9uLmlkbCBmaWxlLgotICAgIGVudW0gUmVhZHlTdGF0ZSB7Ci0gICAgICAgIE5FVyA9IDAsCi0g
ICAgICAgIE5FR09USUFUSU5HID0gMSwKLSAgICAgICAgQUNUSVZFID0gMiwKLSAgICAgICAgQ0xP
U0VEID0gMwotICAgIH07Ci0KICAgICB2aXJ0dWFsIH5QZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGll
bnQoKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBkaWRDb21wbGV0ZUlDRVByb2Nlc3NpbmcoKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlc3RhcnRJQ0VQcm9jZXNzaW5nKCkgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBkaWRHZW5lcmF0ZVNEUChjb25zdCBTdHJpbmcmIHNkcCkgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YVN0cmVhbU1lc3NhZ2UoY29uc3QgY2hhciogZGF0
YSwgc2l6ZV90IGxlbmd0aCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRSZW1vdGVTdHJl
YW0oUGFzc1JlZlB0cjxNZWRpYVN0cmVhbURlc2NyaXB0b3I+KSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIGRpZFJlbW92ZVJlbW90ZVN0cmVhbShNZWRpYVN0cmVhbURlc2NyaXB0b3IqKSA9IDA7Ci0g
ICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVN0YXRlKFJlYWR5U3RhdGUpID0gMDsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uSGFuZGxlck1vY2suY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jay5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNjRhYjZiYzVmNTA4ZTIzNDIwNDVhMzUzYjc2ZDcwYzRlOTMxNzM4MQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1BlZXJDb25u
ZWN0aW9uSGFuZGxlck1vY2suY3BwCkBAIC0wLDAgKzEsOTggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogICAgaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogICAgZGlzdHJpYnV0
aW9uLgorICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cyBjb250cmlidXRvcnMKKyAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcworICogICAgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiUGVlckNv
bm5lY3Rpb25IYW5kbGVyTW9jay5oIgorCisjaW5jbHVkZSAiTWVkaWFTdHJlYW1DZW50ZXIuaCIK
KyNpbmNsdWRlICJNZWRpYVN0cmVhbURlc2NyaXB0b3IuaCIKKyNpbmNsdWRlICJNZWRpYVN0cmVh
bVNvdXJjZS5oIgorI2luY2x1ZGUgIlBlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudC5oIgorI2lu
Y2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAiVGltZXIuaCIKKyNpbmNsdWRlIDx3
dGYvUGFzc1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8UGVl
ckNvbm5lY3Rpb25IYW5kbGVyTW9jaz4gUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jazo6Y3JlYXRl
KFBlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudCogY2xpZW50LCBjb25zdCBTdHJpbmcmIHNlcnZl
ckNvbmZpZ3VyYXRpb24sIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHNlY3VyaXR5T3JpZ2lu
KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jayhj
bGllbnQsIHNlcnZlckNvbmZpZ3VyYXRpb24sIHNlY3VyaXR5T3JpZ2luKSk7Cit9CisKK1BlZXJD
b25uZWN0aW9uSGFuZGxlck1vY2s6OlBlZXJDb25uZWN0aW9uSGFuZGxlck1vY2soUGVlckNvbm5l
Y3Rpb25IYW5kbGVyQ2xpZW50KiBjbGllbnQsIGNvbnN0IFN0cmluZyYgc2VydmVyQ29uZmlndXJh
dGlvbiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gc2VjdXJpdHlPcmlnaW4pCisgICAgOiBt
X2NsaWVudChjbGllbnQpCisgICAgLCBtX3NkcFRpbWVyKHRoaXMsICZQZWVyQ29ubmVjdGlvbkhh
bmRsZXJNb2NrOjpzZHBUaW1lckZpcmVkKQoreworfQorCitQZWVyQ29ubmVjdGlvbkhhbmRsZXJN
b2NrOjp+UGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jaygpCit7Cit9CisKK3ZvaWQgUGVlckNvbm5l
Y3Rpb25IYW5kbGVyTW9jazo6cHJvZHVjZUluaXRpYWxPZmZlcihjb25zdCBNZWRpYVN0cmVhbURl
c2NyaXB0b3JWZWN0b3ImIHBlbmRpbmdBZGRTdHJlYW1zKQoreworfQorCit2b2lkIFBlZXJDb25u
ZWN0aW9uSGFuZGxlck1vY2s6OmhhbmRsZUluaXRpYWxPZmZlcihjb25zdCBTdHJpbmcmIHNkcCkK
K3sKKyAgICBpZiAoIW1fc2RwVGltZXIuaXNBY3RpdmUoKSkgeworICAgICAgICBtX3NkcCA9IHNk
cDsKKyAgICAgICAgbV9zZHBUaW1lci5zdGFydE9uZVNob3QoMCk7CisgICAgfQorfQorCit2b2lk
IFBlZXJDb25uZWN0aW9uSGFuZGxlck1vY2s6OnByb2Nlc3NTRFAoY29uc3QgU3RyaW5nJiBzZHAp
Cit7CisgICAgaGFuZGxlSW5pdGlhbE9mZmVyKHNkcCk7Cit9CisKK3ZvaWQgUGVlckNvbm5lY3Rp
b25IYW5kbGVyTW9jazo6cHJvY2Vzc1BlbmRpbmdTdHJlYW1zKGNvbnN0IE1lZGlhU3RyZWFtRGVz
Y3JpcHRvclZlY3RvciYgcGVuZGluZ0FkZFN0cmVhbXMsIGNvbnN0IE1lZGlhU3RyZWFtRGVzY3Jp
cHRvclZlY3RvciYgcGVuZGluZ1JlbW92ZVN0cmVhbXMpCit7Cit9CisKK3ZvaWQgUGVlckNvbm5l
Y3Rpb25IYW5kbGVyTW9jazo6c2VuZERhdGFTdHJlYW1NZXNzYWdlKGNvbnN0IGNoYXIqIGRhdGEs
IHNpemVfdCBsZW5ndGgpCit7Cit9CisKK3ZvaWQgUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jazo6
c3RvcCgpCit7Cit9CisKK3ZvaWQgUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jazo6c2RwVGltZXJG
aXJlZChUaW1lcjxQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrPiopCit7CisgICAgbV9jbGllbnQt
PmRpZEdlbmVyYXRlU0RQKG1fc2RwKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uSGFuZGxlck1vY2suaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uSGFuZGxlck1vY2su
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zMzg5NTc0YmY1ZGQ3OTZlODkyYzE1YTExYWYzMDY3ZDE2YWFiMGU4Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUGVl
ckNvbm5lY3Rpb25IYW5kbGVyTW9jay5oCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogICAgaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogICAgZGlzdHJp
YnV0aW9uLgorICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cyBjb250cmlidXRvcnMKKyAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcworICogICAgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwor
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IFBlZXJDb25uZWN0aW9uSGFuZGxlck1vY2tfaAorI2RlZmluZSBQZWVyQ29ubmVjdGlvbkhhbmRs
ZXJNb2NrX2gKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJNZWRpYVN0
cmVhbURlc2NyaXB0b3IuaCIKKyNpbmNsdWRlICJUaW1lci5oIgorI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQ7CitjbGFzcyBTZWN1cml0
eU9yaWdpbjsKKworY2xhc3MgUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jayA6IHB1YmxpYyBSZWZD
b3VudGVkPFBlZXJDb25uZWN0aW9uSGFuZGxlck1vY2s+IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrKTsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxQZWVyQ29ubmVjdGlvbkhhbmRs
ZXJNb2NrPiBjcmVhdGUoUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50KiwgY29uc3QgU3RyaW5n
JiBzZXJ2ZXJDb25maWd1cmF0aW9uLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPik7CisgICAg
flBlZXJDb25uZWN0aW9uSGFuZGxlck1vY2soKTsKKworICAgIHZvaWQgcHJvZHVjZUluaXRpYWxP
ZmZlcihjb25zdCBNZWRpYVN0cmVhbURlc2NyaXB0b3JWZWN0b3ImIHBlbmRpbmdBZGRTdHJlYW1z
KTsKKyAgICB2b2lkIGhhbmRsZUluaXRpYWxPZmZlcihjb25zdCBTdHJpbmcmIHNkcCk7CisgICAg
dm9pZCBwcm9jZXNzU0RQKGNvbnN0IFN0cmluZyYgc2RwKTsKKyAgICB2b2lkIHByb2Nlc3NQZW5k
aW5nU3RyZWFtcyhjb25zdCBNZWRpYVN0cmVhbURlc2NyaXB0b3JWZWN0b3ImIHBlbmRpbmdBZGRT
dHJlYW1zLCBjb25zdCBNZWRpYVN0cmVhbURlc2NyaXB0b3JWZWN0b3ImIHBlbmRpbmdSZW1vdmVT
dHJlYW1zKTsKKyAgICB2b2lkIHNlbmREYXRhU3RyZWFtTWVzc2FnZShjb25zdCBjaGFyKiBkYXRh
LCBzaXplX3QgbGVuZ3RoKTsKKyAgICB2b2lkIHN0b3AoKTsKKworcHJpdmF0ZToKKyAgICBQZWVy
Q29ubmVjdGlvbkhhbmRsZXJNb2NrKFBlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudCosIGNvbnN0
IFN0cmluZyYgc2VydmVyQ29uZmlndXJhdGlvbiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4p
OworCisgICAgdm9pZCBzZHBUaW1lckZpcmVkKFRpbWVyPFBlZXJDb25uZWN0aW9uSGFuZGxlck1v
Y2s+Kik7CisKKyAgICBQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQqIG1fY2xpZW50OworICAg
IFRpbWVyPFBlZXJDb25uZWN0aW9uSGFuZGxlck1vY2s+IG1fc2RwVGltZXI7CisgICAgU3RyaW5n
IG1fc2RwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxF
KE1FRElBX1NUUkVBTSkKKworI2VuZGlmIC8vIFBlZXJDb25uZWN0aW9uSGFuZGxlck1vY2tfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4IGE0MWM2ZDA3Mzg2MzEwNTI4ZDkzNTE5Yjg0
ODY4ZWM1M2JhN2Q4YjYuLjk4OWYwYzAwYjMyYjg0MTg1MTEwY2FkNmQ2NGRjMTY2MzE0NThjYTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTMyMyw2ICszMjMsNyBAQAogICAgICAg
ICAgICAgICAgICdwdWJsaWMvcGxhdGZvcm0vV2ViTm9uQ29weWFibGUuaCcsCiAgICAgICAgICAg
ICAgICAgJ3B1YmxpYy9wbGF0Zm9ybS9XZWJQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaCcsCiAgICAg
ICAgICAgICAgICAgJ3B1YmxpYy9wbGF0Zm9ybS9XZWJQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGll
bnQuaCcsCisgICAgICAgICAgICAgICAgJ3B1YmxpYy9wbGF0Zm9ybS9XZWJQZWVyQ29ubmVjdGlv
bkhhbmRsZXJNb2NrLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvcGxhdGZvcm0vV2ViUG9p
bnQuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9wbGF0Zm9ybS9XZWJQcml2YXRlT3duUHRy
LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvcGxhdGZvcm0vV2ViUHJpdmF0ZVB0ci5oJywK
QEAgLTQ1NSw2ICs0NTYsOCBAQAogICAgICAgICAgICAgICAgICdzcmMvUGFnZU92ZXJsYXkuaCcs
CiAgICAgICAgICAgICAgICAgJ3NyYy9QYWdlT3ZlcmxheUxpc3QuY3BwJywKICAgICAgICAgICAg
ICAgICAnc3JjL1BhZ2VPdmVybGF5TGlzdC5oJywKKyAgICAgICAgICAgICAgICAnc3JjL1BlZXJD
b25uZWN0aW9uSGFuZGxlckNsaWVudEJyaWRnZS5jcHAnLAorICAgICAgICAgICAgICAgICdzcmMv
UGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50QnJpZGdlLmgnLAogICAgICAgICAgICAgICAgICdz
cmMvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuY3BwJywKICAgICAgICAgICAgICAgICAnc3Jj
L1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmgnLAogICAgICAgICAgICAgICAgICdzcmMvUGxh
dGZvcm1TdXBwb3J0LmNwcCcsCkBAIC02MTksNiArNjIyLDcgQEAKICAgICAgICAgICAgICAgICAn
c3JjL1dlYlBhc3N3b3JkRm9ybURhdGEuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYlBh
c3N3b3JkRm9ybVV0aWxzLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJQYXNzd29yZEZv
cm1VdGlscy5oJywKKyAgICAgICAgICAgICAgICAnc3JjL1dlYlBlZXJDb25uZWN0aW9uSGFuZGxl
ck1vY2suY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYlBlcmZvcm1hbmNlLmNwcCcsCiAg
ICAgICAgICAgICAgICAgJ3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmgnLAogICAgICAgICAg
ICAgICAgICdzcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHAnLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9icmlkZ2UvUGVlckNvbm5lY3Rpb25IYW5kbGVySW50ZXJuYWwu
Y3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9icmlkZ2UvUGVlckNvbm5lY3Rpb25IYW5kbGVy
SW50ZXJuYWwuY3BwCmluZGV4IGQ4ZjYxZjdmMGJiYzA3YWU0ZmQwYzg5YTdhNTQzODc1YzFlMmY5
NjYuLmFhNDY0NGI4ZWRkNDY1ODU1OGU5ZmFiMTk1OTdiMjczNmQ0OGFmNWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vYnJpZGdlL1BlZXJDb25uZWN0aW9uSGFuZGxlckludGVy
bmFsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2JyaWRnZS9QZWVyQ29ubmVjdGlv
bkhhbmRsZXJJbnRlcm5hbC5jcHAKQEAgLTEwNCwzMiArMTA0LDMyIEBAIHZvaWQgUGVlckNvbm5l
Y3Rpb25IYW5kbGVySW50ZXJuYWw6OnN0b3AoKQogCiB2b2lkIFBlZXJDb25uZWN0aW9uSGFuZGxl
ckludGVybmFsOjpkaWRDb21wbGV0ZUlDRVByb2Nlc3NpbmcoKQogewotICAgIGlmIChtX3dlYkhh
bmRsZXIpCi0gICAgICAgIG1fY2xpZW50LT5kaWRDb21wbGV0ZUlDRVByb2Nlc3NpbmcoKTsKKyAg
ICBtX2NsaWVudC0+ZGlkQ29tcGxldGVJQ0VQcm9jZXNzaW5nKCk7Cit9CisKK3ZvaWQgUGVlckNv
bm5lY3Rpb25IYW5kbGVySW50ZXJuYWw6OmRpZFJlc3RhcnRJQ0VQcm9jZXNzaW5nKCkKK3sKKyAg
ICBtX2NsaWVudC0+ZGlkUmVzdGFydElDRVByb2Nlc3NpbmcoKTsKIH0KIAogdm9pZCBQZWVyQ29u
bmVjdGlvbkhhbmRsZXJJbnRlcm5hbDo6ZGlkR2VuZXJhdGVTRFAoY29uc3QgV2ViS2l0OjpXZWJT
dHJpbmcmIHNkcCkKIHsKLSAgICBpZiAobV93ZWJIYW5kbGVyKQotICAgICAgICBtX2NsaWVudC0+
ZGlkR2VuZXJhdGVTRFAoc2RwKTsKKyAgICBtX2NsaWVudC0+ZGlkR2VuZXJhdGVTRFAoc2RwKTsK
IH0KIAogdm9pZCBQZWVyQ29ubmVjdGlvbkhhbmRsZXJJbnRlcm5hbDo6ZGlkUmVjZWl2ZURhdGFT
dHJlYW1NZXNzYWdlKGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBsZW5ndGgpCiB7Ci0gICAgaWYg
KG1fd2ViSGFuZGxlcikKLSAgICAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVEYXRhU3RyZWFtTWVz
c2FnZShkYXRhLCBsZW5ndGgpOworICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlRGF0YVN0cmVhbU1l
c3NhZ2UoZGF0YSwgbGVuZ3RoKTsKIH0KIAogdm9pZCBQZWVyQ29ubmVjdGlvbkhhbmRsZXJJbnRl
cm5hbDo6ZGlkQWRkUmVtb3RlU3RyZWFtKGNvbnN0IFdlYktpdDo6V2ViTWVkaWFTdHJlYW1EZXNj
cmlwdG9yJiB3ZWJNZWRpYVN0cmVhbURlc2NyaXB0b3IpCiB7Ci0gICAgaWYgKG1fd2ViSGFuZGxl
cikKLSAgICAgICAgbV9jbGllbnQtPmRpZEFkZFJlbW90ZVN0cmVhbSh3ZWJNZWRpYVN0cmVhbURl
c2NyaXB0b3IpOworICAgIG1fY2xpZW50LT5kaWRBZGRSZW1vdGVTdHJlYW0od2ViTWVkaWFTdHJl
YW1EZXNjcmlwdG9yKTsKIH0KIAogdm9pZCBQZWVyQ29ubmVjdGlvbkhhbmRsZXJJbnRlcm5hbDo6
ZGlkUmVtb3ZlUmVtb3RlU3RyZWFtKGNvbnN0IFdlYktpdDo6V2ViTWVkaWFTdHJlYW1EZXNjcmlw
dG9yJiB3ZWJNZWRpYVN0cmVhbURlc2NyaXB0b3IpCiB7Ci0gICAgaWYgKG1fd2ViSGFuZGxlcikK
LSAgICAgICAgbV9jbGllbnQtPmRpZFJlbW92ZVJlbW90ZVN0cmVhbSh3ZWJNZWRpYVN0cmVhbURl
c2NyaXB0b3IpOworICAgIG1fY2xpZW50LT5kaWRSZW1vdmVSZW1vdGVTdHJlYW0od2ViTWVkaWFT
dHJlYW1EZXNjcmlwdG9yKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9icmlkZ2UvUGVlckNvbm5lY3Rpb25IYW5kbGVySW50
ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vYnJpZGdlL1BlZXJDb25uZWN0aW9uSGFu
ZGxlckludGVybmFsLmgKaW5kZXggZTE3ZmQ5NmI1YjVjNzFmOWFiOWMwYTNlMWVlY2ZjYjdhZjUw
Y2FiMC4uYzRjYjJkMDljOWU0OTcyNTgzYzE2MGE0MzU2NTQ4YmE1YzZkYTU1NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9icmlkZ2UvUGVlckNvbm5lY3Rpb25IYW5kbGVySW50
ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2JyaWRnZS9QZWVyQ29ubmVjdGlv
bkhhbmRsZXJJbnRlcm5hbC5oCkBAIC02Myw2ICs2Myw3IEBAIHB1YmxpYzoKIAogICAgIC8vIFdl
YktpdDo6V2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50IGltcGxlbWVudGF0aW9uLgogICAg
IHZpcnR1YWwgdm9pZCBkaWRDb21wbGV0ZUlDRVByb2Nlc3NpbmcoKTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVzdGFydElDRVByb2Nlc3NpbmcoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkR2VuZXJh
dGVTRFAoY29uc3QgV2ViS2l0OjpXZWJTdHJpbmcmIHNkcCk7CiAgICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVEYXRhU3RyZWFtTWVzc2FnZShjb25zdCBjaGFyKiBkYXRhLCBzaXplX3QgbGVuZ3Ro
KTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkUmVtb3RlU3RyZWFtKGNvbnN0IFdlYktpdDo6V2Vi
TWVkaWFTdHJlYW1EZXNjcmlwdG9yJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQuaCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dlYlBlZXJDb25uZWN0aW9uSGFu
ZGxlckNsaWVudC5oCmluZGV4IGYyYjFkMzI5N2M2ODkzMjc0ZjczYTQzMjU3NDMwNTkwYzgzNDc0
ZjYuLmIzNDE2N2IzMzQwOTU3ZTcwZDdjNTUwNDY5MDE1YjVkNmNjMDkyYzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dlYlBlZXJDb25uZWN0aW9u
SGFuZGxlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRm
b3JtL1dlYlBlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudC5oCkBAIC00MSw2ICs0MSw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIH5XZWJQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQoKSB7IH0K
IAogICAgIHZpcnR1YWwgdm9pZCBkaWRDb21wbGV0ZUlDRVByb2Nlc3NpbmcoKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGRpZFJlc3RhcnRJQ0VQcm9jZXNzaW5nKCkgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBkaWRHZW5lcmF0ZVNEUChjb25zdCBXZWJTdHJpbmcmIHNkcCkgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlRGF0YVN0cmVhbU1lc3NhZ2UoY29uc3QgY2hhciogZGF0YSwgc2l6
ZV90IGxlbmd0aCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRSZW1vdGVTdHJlYW0oY29u
c3QgV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9j
ay5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViUGVlckNvbm5l
Y3Rpb25IYW5kbGVyTW9jay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUzYmE5NmU1ZGEyZDVkMDFkODllOWQwMzAz
ODhiYWFmMjAzNGM3OGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9wbGF0Zm9ybS9XZWJQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrLmgKQEAgLTAsMCAr
MSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0Ogor
ICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisg
KiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgV2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9ja19oCisjZGVmaW5lIFdl
YlBlZXJDb25uZWN0aW9uSGFuZGxlck1vY2tfaAorCisjaW5jbHVkZSAiV2ViUGVlckNvbm5lY3Rp
b25IYW5kbGVyLmgiCisjaW5jbHVkZSAiV2ViUHJpdmF0ZVB0ci5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CitjbGFzcyBQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrOworY2xhc3MgUGVlckNvbm5l
Y3Rpb25IYW5kbGVyQ2xpZW50QnJpZGdlOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xh
c3MgV2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50OworCitjbGFzcyBXZWJQZWVyQ29ubmVj
dGlvbkhhbmRsZXJNb2NrIDogcHVibGljIFdlYlBlZXJDb25uZWN0aW9uSGFuZGxlciB7CitwdWJs
aWM6CisgICAgc3RhdGljIFdlYlBlZXJDb25uZWN0aW9uSGFuZGxlck1vY2sqIGNyZWF0ZShXZWJQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQqKTsKKyAgICB2aXJ0dWFsIH5XZWJQZWVyQ29ubmVj
dGlvbkhhbmRsZXJNb2NrKCk7CisKKyAgICAvLyBXZWJQZWVyQ29ubmVjdGlvbkhhbmRsZXIKKyAg
ICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBXZWJTdHJpbmcmIHNlcnZlckNvbmZpZ3Vy
YXRpb24sIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJik7CisgICAgdmlydHVhbCB2b2lkIHByb2R1
Y2VJbml0aWFsT2ZmZXIoY29uc3QgV2ViVmVjdG9yPFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvcj4m
IHBlbmRpbmdBZGRTdHJlYW1zKTsKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlSW5pdGlhbE9mZmVy
KGNvbnN0IFdlYlN0cmluZyYgc2RwKTsKKyAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc1NEUChjb25z
dCBXZWJTdHJpbmcmIHNkcCk7CisgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NQZW5kaW5nU3RyZWFt
cyhjb25zdCBXZWJWZWN0b3I8V2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yPiYgcGVuZGluZ0FkZFN0
cmVhbXMsIGNvbnN0IFdlYlZlY3RvcjxXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3I+JiBwZW5kaW5n
UmVtb3ZlU3RyZWFtcyk7CisgICAgdmlydHVhbCB2b2lkIHNlbmREYXRhU3RyZWFtTWVzc2FnZShj
b25zdCBjaGFyKiBkYXRhLCBzaXplX3QgbGVuZ3RoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcCgp
OworCitwcml2YXRlOgorICAgIFdlYlBlZXJDb25uZWN0aW9uSGFuZGxlck1vY2soV2ViUGVlckNv
bm5lY3Rpb25IYW5kbGVyQ2xpZW50Kik7CisKKyAgICBXZWJQZWVyQ29ubmVjdGlvbkhhbmRsZXJD
bGllbnQqIG1fY2xpZW50OworICAgIFdlYlByaXZhdGVQdHI8V2ViQ29yZTo6UGVlckNvbm5lY3Rp
b25IYW5kbGVyTW9jaz4gbV9wcml2YXRlOworICAgIFdlYlByaXZhdGVQdHI8V2ViQ29yZTo6UGVl
ckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50QnJpZGdlPiBtX2NsaWVudEJyaWRnZTsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViUGVlckNvbm5lY3Rpb25IYW5kbGVy
TW9ja19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QZWVyQ29ubmVj
dGlvbkhhbmRsZXJDbGllbnRCcmlkZ2UuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
UGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50QnJpZGdlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMjg4YTJl
YjdjYjE0YTZhYmQxYzExODhhNGFiM2QzNTJlYmFhYjNiCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50QnJpZGdl
LmNwcApAQCAtMCwwICsxLDkwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCisKKyNpbmNsdWRlICJQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnRCcmlkZ2Uu
aCIKKworI2luY2x1ZGUgIk1lZGlhU3RyZWFtRGVzY3JpcHRvci5oIgorI2luY2x1ZGUgInBsYXRm
b3JtL1dlYk1lZGlhU3RyZWFtRGVzY3JpcHRvci5oIgorI2luY2x1ZGUgInBsYXRmb3JtL1dlYlBl
ZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudC5oIgorI2luY2x1ZGUgInBsYXRmb3JtL1dlYlN0cmlu
Zy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8UGVlckNvbm5lY3Rpb25I
YW5kbGVyQ2xpZW50QnJpZGdlPiBQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnRCcmlkZ2U6OmNy
ZWF0ZShXZWJLaXQ6OldlYlBlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudCogY2xpZW50KQorewor
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50QnJpZGdl
KGNsaWVudCkpOworfQorCitQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnRCcmlkZ2U6OlBlZXJD
b25uZWN0aW9uSGFuZGxlckNsaWVudEJyaWRnZShXZWJLaXQ6OldlYlBlZXJDb25uZWN0aW9uSGFu
ZGxlckNsaWVudCogY2xpZW50KQorICAgIDogbV9jbGllbnQoY2xpZW50KQoreworICAgIEFTU0VS
VChtX2NsaWVudCk7Cit9CisKK1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudEJyaWRnZTo6flBl
ZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudEJyaWRnZSgpCit7Cit9CisKK3ZvaWQgUGVlckNvbm5l
Y3Rpb25IYW5kbGVyQ2xpZW50QnJpZGdlOjpkaWRDb21wbGV0ZUlDRVByb2Nlc3NpbmcoKQorewor
ICAgIG1fY2xpZW50LT5kaWRDb21wbGV0ZUlDRVByb2Nlc3NpbmcoKTsKK30KKwordm9pZCBQZWVy
Q29ubmVjdGlvbkhhbmRsZXJDbGllbnRCcmlkZ2U6OmRpZFJlc3RhcnRJQ0VQcm9jZXNzaW5nKCkK
K3sKKyAgICBtX2NsaWVudC0+ZGlkUmVzdGFydElDRVByb2Nlc3NpbmcoKTsKK30KKwordm9pZCBQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnRCcmlkZ2U6OmRpZEdlbmVyYXRlU0RQKGNvbnN0IFN0
cmluZyYgc2RwKQoreworICAgIG1fY2xpZW50LT5kaWRHZW5lcmF0ZVNEUChzZHApOworfQorCit2
b2lkIFBlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudEJyaWRnZTo6ZGlkUmVjZWl2ZURhdGFTdHJl
YW1NZXNzYWdlKGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBsZW5ndGgpCit7CisgICAgbV9jbGll
bnQtPmRpZFJlY2VpdmVEYXRhU3RyZWFtTWVzc2FnZShkYXRhLCBsZW5ndGgpOworfQorCit2b2lk
IFBlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudEJyaWRnZTo6ZGlkQWRkUmVtb3RlU3RyZWFtKFBh
c3NSZWZQdHI8TWVkaWFTdHJlYW1EZXNjcmlwdG9yPiBzdHJlYW0pCit7CisgICAgbV9jbGllbnQt
PmRpZEFkZFJlbW90ZVN0cmVhbShzdHJlYW0pOworfQorCit2b2lkIFBlZXJDb25uZWN0aW9uSGFu
ZGxlckNsaWVudEJyaWRnZTo6ZGlkUmVtb3ZlUmVtb3RlU3RyZWFtKE1lZGlhU3RyZWFtRGVzY3Jp
cHRvciogc3RyZWFtKQoreworICAgIG1fY2xpZW50LT5kaWRSZW1vdmVSZW1vdGVTdHJlYW0oc3Ry
ZWFtKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1F
RElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1BlZXJD
b25uZWN0aW9uSGFuZGxlckNsaWVudEJyaWRnZS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50QnJpZGdlLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjAxMGZk
YzBjZTE0Y2I4NGIzNGRkNzEyNGQyNmJiNGE1ZGQ0NWRmMAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudEJyaWRn
ZS5oCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFBlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudEJy
aWRnZV9oCisjZGVmaW5lIFBlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudEJyaWRnZV9oCisKKyNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiUGVlckNvbm5lY3Rpb25IYW5kbGVy
Q2xpZW50LmgiCisKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworY2xhc3MgV2ViUGVlckNvbm5lY3Rp
b25IYW5kbGVyQ2xpZW50OworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFBlZXJD
b25uZWN0aW9uSGFuZGxlckNsaWVudEJyaWRnZSA6IHB1YmxpYyBSZWZDb3VudGVkPFBlZXJDb25u
ZWN0aW9uSGFuZGxlckNsaWVudEJyaWRnZT4sIHB1YmxpYyBQZWVyQ29ubmVjdGlvbkhhbmRsZXJD
bGllbnQgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFBlZXJDb25uZWN0aW9uSGFu
ZGxlckNsaWVudEJyaWRnZT4gY3JlYXRlKFdlYktpdDo6V2ViUGVlckNvbm5lY3Rpb25IYW5kbGVy
Q2xpZW50Kik7CisgICAgdmlydHVhbCB+UGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50QnJpZGdl
KCk7CisKKyAgICAvLyBQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkQ29tcGxldGVJQ0VQcm9jZXNzaW5nKCk7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlc3Rh
cnRJQ0VQcm9jZXNzaW5nKCk7CisgICAgdmlydHVhbCB2b2lkIGRpZEdlbmVyYXRlU0RQKGNvbnN0
IFN0cmluZyYgc2RwKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGFTdHJlYW1NZXNz
YWdlKGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBsZW5ndGgpOworICAgIHZpcnR1YWwgdm9pZCBk
aWRBZGRSZW1vdGVTdHJlYW0oUGFzc1JlZlB0cjxNZWRpYVN0cmVhbURlc2NyaXB0b3I+KTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVtb3ZlUmVtb3RlU3RyZWFtKE1lZGlhU3RyZWFtRGVzY3JpcHRv
ciopOworCitwcml2YXRlOgorICAgIFBlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudEJyaWRnZShX
ZWJLaXQ6OldlYlBlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudCopOworCisgICAgV2ViS2l0OjpX
ZWJQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQqIG1fY2xpZW50OworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2VuZGlm
IC8vIFBlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudEJyaWRnZV9oCisKKwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jay5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQZWVyQ29ubmVjdGlvbkhhbmRsZXJN
b2NrLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44YTQwYzAwOWRmZDRjNDg4OTU5ODliNTY3M2EyMTQ3YTE2YzM0
NjNkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGVl
ckNvbm5lY3Rpb25IYW5kbGVyTW9jay5jcHAKQEAgLTAsMCArMSwxMDYgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0
aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAicGxhdGZvcm0vV2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jay5o
IgorCisjaW5jbHVkZSAiTWVkaWFTdHJlYW1EZXNjcmlwdG9yLmgiCisjaW5jbHVkZSAiUGVlckNv
bm5lY3Rpb25IYW5kbGVyQ2xpZW50QnJpZGdlLmgiCisjaW5jbHVkZSAiUGVlckNvbm5lY3Rpb25I
YW5kbGVyTW9jay5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAiV2Vi
U2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJwbGF0Zm9ybS9XZWJNZWRpYVN0cmVhbURlc2Ny
aXB0b3IuaCIKKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9j
ayogV2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jazo6Y3JlYXRlKFdlYlBlZXJDb25uZWN0aW9u
SGFuZGxlckNsaWVudCogY2xpZW50KQoreworICAgIHJldHVybiBuZXcgV2ViUGVlckNvbm5lY3Rp
b25IYW5kbGVyTW9jayhjbGllbnQpOworfQorCitXZWJQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2Nr
OjpXZWJQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrKFdlYlBlZXJDb25uZWN0aW9uSGFuZGxlckNs
aWVudCogY2xpZW50KQorICAgIDogbV9jbGllbnQoY2xpZW50KQoreworfQorCitXZWJQZWVyQ29u
bmVjdGlvbkhhbmRsZXJNb2NrOjogfldlYlBlZXJDb25uZWN0aW9uSGFuZGxlck1vY2soKQorewor
ICAgIG1fcHJpdmF0ZS5yZXNldCgpOworICAgIG1fY2xpZW50QnJpZGdlLnJlc2V0KCk7Cit9CisK
K3ZvaWQgV2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jazo6aW5pdGlhbGl6ZShjb25zdCBXZWJT
dHJpbmcmIHNlcnZlckNvbmZpZ3VyYXRpb24sIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJiBzZWN1
cml0eU9yaWdpbikKK3sKKyAgICBtX2NsaWVudEJyaWRnZSA9IFBlZXJDb25uZWN0aW9uSGFuZGxl
ckNsaWVudEJyaWRnZTo6Y3JlYXRlKG1fY2xpZW50KTsKKyAgICBtX3ByaXZhdGUgPSBQZWVyQ29u
bmVjdGlvbkhhbmRsZXJNb2NrOjpjcmVhdGUobV9jbGllbnRCcmlkZ2UuZ2V0KCksIHNlcnZlckNv
bmZpZ3VyYXRpb24sIHNlY3VyaXR5T3JpZ2luKTsKK30KKwordm9pZCBXZWJQZWVyQ29ubmVjdGlv
bkhhbmRsZXJNb2NrOjpwcm9kdWNlSW5pdGlhbE9mZmVyKGNvbnN0IFdlYlZlY3RvcjxXZWJNZWRp
YVN0cmVhbURlc2NyaXB0b3I+JiBwZW5kaW5nQWRkU3RyZWFtcykKK3sKKyAgICBXZWJDb3JlOjpN
ZWRpYVN0cmVhbURlc2NyaXB0b3JWZWN0b3Igc3RyZWFtczsKKyAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IHBlbmRpbmdBZGRTdHJlYW1zLnNpemUoKTsgKytpKQorICAgICAgICBzdHJlYW1zLmFw
cGVuZChwZW5kaW5nQWRkU3RyZWFtc1tpXSk7CisgICAgbV9wcml2YXRlLT5wcm9kdWNlSW5pdGlh
bE9mZmVyKHN0cmVhbXMpOworfQorCit2b2lkIFdlYlBlZXJDb25uZWN0aW9uSGFuZGxlck1vY2s6
OmhhbmRsZUluaXRpYWxPZmZlcihjb25zdCBXZWJTdHJpbmcmIHNkcCkKK3sKKyAgICBtX3ByaXZh
dGUtPmhhbmRsZUluaXRpYWxPZmZlcihzZHApOworfQorCit2b2lkIFdlYlBlZXJDb25uZWN0aW9u
SGFuZGxlck1vY2s6OnByb2Nlc3NTRFAoY29uc3QgV2ViU3RyaW5nJiBzZHApCit7CisgICAgbV9w
cml2YXRlLT5wcm9jZXNzU0RQKHNkcCk7Cit9CisKK3ZvaWQgV2ViUGVlckNvbm5lY3Rpb25IYW5k
bGVyTW9jazo6cHJvY2Vzc1BlbmRpbmdTdHJlYW1zKGNvbnN0IFdlYlZlY3RvcjxXZWJNZWRpYVN0
cmVhbURlc2NyaXB0b3I+JiBwZW5kaW5nQWRkU3RyZWFtcywgY29uc3QgV2ViVmVjdG9yPFdlYk1l
ZGlhU3RyZWFtRGVzY3JpcHRvcj4mIHBlbmRpbmdSZW1vdmVTdHJlYW1zKQoreworICAgIFdlYkNv
cmU6Ok1lZGlhU3RyZWFtRGVzY3JpcHRvclZlY3RvciBhZGRTdHJlYW1zLCByZW1vdmVTdHJlYW1z
OworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcGVuZGluZ0FkZFN0cmVhbXMuc2l6ZSgpOyAr
K2kpCisgICAgICAgIGFkZFN0cmVhbXMuYXBwZW5kKHBlbmRpbmdBZGRTdHJlYW1zW2ldKTsKKyAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHBlbmRpbmdSZW1vdmVTdHJlYW1zLnNpemUoKTsgKytp
KQorICAgICAgICByZW1vdmVTdHJlYW1zLmFwcGVuZChwZW5kaW5nQWRkU3RyZWFtc1tpXSk7Cisg
ICAgbV9wcml2YXRlLT5wcm9jZXNzUGVuZGluZ1N0cmVhbXMoYWRkU3RyZWFtcywgcmVtb3ZlU3Ry
ZWFtcyk7Cit9CisKK3ZvaWQgV2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jazo6c2VuZERhdGFT
dHJlYW1NZXNzYWdlKGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBsZW5ndGgpCit7CisgICAgbV9w
cml2YXRlLT5zZW5kRGF0YVN0cmVhbU1lc3NhZ2UoZGF0YSwgbGVuZ3RoKTsKK30KKwordm9pZCBX
ZWJQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrOjpzdG9wKCkKK3sKKyAgICBtX3ByaXZhdGUtPnN0
b3AoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128450</attachid>
            <date>2012-02-23 03:34:25 -0800</date>
            <delta_ts>2012-02-29 07:28:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79114-20120223123423.patch</filename>
            <type>text/plain</type>
            <size>36283</size>
            <attacher name="Tommy Widenflycht">tommyw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4NjIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTdkNDY4ZDQyODkxMzc5
YjNlNjA3MTU2N2ViMzNhNmYwZTY4ZWM1ZS4uYTM4NDFjNDZjOTljNmZlM2FjYzUzOWJlZDA4OGUw
YjkxOTI3ZmMxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTAyLTIxICBUb21t
eSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgorCisgICAgICAgIE1lZGlhU3RyZWFt
IEFQSTogQWRkaW5nIGEgbW9jayBmb3IgUGVlckNvbm5lY3Rpb25IYW5kbGVyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTExNAorCisgICAgICAgIEFs
c28gY2hhbmdlcyB0aGUgUGVlckNvbm5lY3Rpb25IYW5kbGVyIEFQSSB2ZXJ5IHNsaWdodGx5IGR1
ZSB0byBmZWVkYmFjay4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBObyBhY3R1YWwgdGVzdHMgeWV0IHNpbmNlIHRoZSBtb2NrIG5lZWRzIHNvbWUgcGx1
bWJpbmcgaW50byBjaHJvbWl1bSBmaXJzdC4KKworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAg
ICAgICAgKiBtZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpQZWVyQ29ubmVjdGlvbjo6ZGlkUmVzdGFydElDRVByb2Nlc3NpbmcpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgICogbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb24uaDoKKyAgICAgICAg
KFBlZXJDb25uZWN0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9QZWVyQ29u
bmVjdGlvbkhhbmRsZXJDbGllbnQuaDoKKyAgICAgICAgKFBlZXJDb25uZWN0aW9uSGFuZGxlckNs
aWVudCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25IYW5k
bGVyTW9jay5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
UGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jazo6UGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jayk6Cisg
ICAgICAgIChXZWJDb3JlOjpQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrOjp+UGVlckNvbm5lY3Rp
b25IYW5kbGVyTW9jayk6CisgICAgICAgIChXZWJDb3JlOjpQZWVyQ29ubmVjdGlvbkhhbmRsZXJN
b2NrOjpwcm9kdWNlSW5pdGlhbE9mZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlBlZXJDb25uZWN0
aW9uSGFuZGxlck1vY2s6OmhhbmRsZUluaXRpYWxPZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrOjpwcm9jZXNzU0RQKToKKyAgICAgICAgKFdlYkNvcmU6
OlBlZXJDb25uZWN0aW9uSGFuZGxlck1vY2s6OnByb2Nlc3NQZW5kaW5nU3RyZWFtcyk6CisgICAg
ICAgIChXZWJDb3JlOjpQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrOjpzZW5kRGF0YVN0cmVhbU1l
c3NhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jazo6c3Rv
cCk6CisgICAgICAgIChXZWJDb3JlOjpQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrOjpzZHBUaW1l
ckZpcmVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkhh
bmRsZXJNb2NrLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudC5oLgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrKToKKwogMjAxMi0wMi0yMiAgSWdvciBP
bGl2ZWlyYSAgPGlnb3Iub0BzaXNhLnNhbXN1bmcuY29tPgogCiAgICAgICAgIEV2ZXJ5IGNhbGwg
dG8gUmVuZGVyT2JqZWN0OjpzZXRBbmltYXRhYmxlU3R5bGUoKSBpdGVyYXRlcyB0aHJvdWdoIGFs
bCBtX2NvbXBvc2l0ZUFuaW1hdGlvbnM6IHBvdGVudGlhbGx5IE8oTl4yKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwppbmRleCBkN2I3NDRkZmRmNzE5OTc1Yjk1MmM5MDk4ZDQ4YjU0Njc2NjA3M2Ux
Li4yMmEzZWU4YjNlMWUwZTY4YzE5OGM1Nzg0OTU1ZjViZWQyNzQzYzU2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDEyLTAyLTIxICBUb21teSBXaWRlbmZs
eWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgorCisgICAgICAgIE1lZGlhU3RyZWFtIEFQSTogQWRk
aW5nIGEgbW9jayBmb3IgUGVlckNvbm5lY3Rpb25IYW5kbGVyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTExNAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViS2l0Lmd5cDoKKyAgICAgICAgKiBicmlk
Z2UvUGVlckNvbm5lY3Rpb25IYW5kbGVySW50ZXJuYWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UGVlckNvbm5lY3Rpb25IYW5kbGVySW50ZXJuYWw6OmRpZENvbXBsZXRlSUNFUHJvY2Vzc2luZyk6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlBlZXJDb25uZWN0aW9uSGFu
ZGxlckludGVybmFsOjpkaWRSZXN0YXJ0SUNFUHJvY2Vzc2luZyk6CisgICAgICAgIChXZWJDb3Jl
OjpQZWVyQ29ubmVjdGlvbkhhbmRsZXJJbnRlcm5hbDo6ZGlkR2VuZXJhdGVTRFApOgorICAgICAg
ICAoV2ViQ29yZTo6UGVlckNvbm5lY3Rpb25IYW5kbGVySW50ZXJuYWw6OmRpZFJlY2VpdmVEYXRh
U3RyZWFtTWVzc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpQZWVyQ29ubmVjdGlvbkhhbmRsZXJJ
bnRlcm5hbDo6ZGlkQWRkUmVtb3RlU3RyZWFtKToKKyAgICAgICAgKFdlYkNvcmU6OlBlZXJDb25u
ZWN0aW9uSGFuZGxlckludGVybmFsOjpkaWRSZW1vdmVSZW1vdGVTdHJlYW0pOgorICAgICAgICAq
IGJyaWRnZS9QZWVyQ29ubmVjdGlvbkhhbmRsZXJJbnRlcm5hbC5oOgorICAgICAgICAoUGVlckNv
bm5lY3Rpb25IYW5kbGVySW50ZXJuYWwpOgorICAgICAgICAqIHB1YmxpYy9wbGF0Zm9ybS9XZWJQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQuaDoKKyAgICAgICAgKFdlYlBlZXJDb25uZWN0aW9u
SGFuZGxlckNsaWVudCk6CisgICAgICAgICogcHVibGljL3BsYXRmb3JtL1dlYlBlZXJDb25uZWN0
aW9uSGFuZGxlck1vY2suaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvcGxhdGZvcm0vV2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50LmguCisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJQZWVyQ29ubmVjdGlvbkhh
bmRsZXJNb2NrKToKKyAgICAgICAgKiBzcmMvUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50QnJp
ZGdlLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9jaHJvbWl1bS9icmlkZ2UvUGVlckNv
bm5lY3Rpb25IYW5kbGVySW50ZXJuYWwuaC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6UGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50QnJpZGdlOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6UGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50QnJpZGdlOjpQZWVyQ29u
bmVjdGlvbkhhbmRsZXJDbGllbnRCcmlkZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UGVlckNvbm5l
Y3Rpb25IYW5kbGVyQ2xpZW50QnJpZGdlOjp+UGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50QnJp
ZGdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudEJyaWRn
ZTo6ZGlkQ29tcGxldGVJQ0VQcm9jZXNzaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlBlZXJDb25u
ZWN0aW9uSGFuZGxlckNsaWVudEJyaWRnZTo6ZGlkUmVzdGFydElDRVByb2Nlc3NpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6UGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50QnJpZGdlOjpkaWRHZW5l
cmF0ZVNEUCk6CisgICAgICAgIChXZWJDb3JlOjpQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnRC
cmlkZ2U6OmRpZFJlY2VpdmVEYXRhU3RyZWFtTWVzc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnRCcmlkZ2U6OmRpZEFkZFJlbW90ZVN0cmVhbSk6Cisg
ICAgICAgIChXZWJDb3JlOjpQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnRCcmlkZ2U6OmRpZFJl
bW92ZVJlbW90ZVN0cmVhbSk6CisgICAgICAgICogc3JjL1BlZXJDb25uZWN0aW9uSGFuZGxlckNs
aWVudEJyaWRnZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9w
bGF0Zm9ybS9XZWJQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQuaC4KKyAgICAgICAgKFdlYktp
dCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFBlZXJDb25uZWN0aW9uSGFuZGxlckNs
aWVudEJyaWRnZSk6CisgICAgICAgICogc3JjL1dlYlBlZXJDb25uZWN0aW9uSGFuZGxlck1vY2su
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBlZXJD
b25uZWN0aW9uSGFuZGxlck1vY2s6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBlZXJD
b25uZWN0aW9uSGFuZGxlck1vY2s6OldlYlBlZXJDb25uZWN0aW9uSGFuZGxlck1vY2spOgorICAg
ICAgICAoV2ViS2l0Ojp+V2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jayk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBlZXJDb25uZWN0aW9uSGFuZGxlck1vY2s6OmluaXRpYWxpemUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrOjpwcm9kdWNlSW5pdGlhbE9m
ZmVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jazo6aGFu
ZGxlSW5pdGlhbE9mZmVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGVlckNvbm5lY3Rpb25IYW5k
bGVyTW9jazo6cHJvY2Vzc1NEUCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBlZXJDb25uZWN0aW9u
SGFuZGxlck1vY2s6OnByb2Nlc3NQZW5kaW5nU3RyZWFtcyk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBlZXJDb25uZWN0aW9uSGFuZGxlck1vY2s6OnNlbmREYXRhU3RyZWFtTWVzc2FnZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBlZXJDb25uZWN0aW9uSGFuZGxlck1vY2s6OnN0b3ApOgorCiAyMDEy
LTAyLTIyICBIYWppbWUgTW9ycml0YSAgPG1vcnJpdGFAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IE5PVElGSUNBVElPTlMgc2hvdWxkIGJlIGltcGxlbWVudGVkIGFzIFBhZ2VTdXBwbGVtZW50CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKaW5kZXggZmRjNjBlNDE2OTlkNTBmMGE3N2EwOWNiZmIzMjllY2YyNzNhMjVi
ZS4uMzNkZmRkN2RmMDQ5YjE5OTlkZGU5NDFiNTEzMzM5N2YwYjhjODlhOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQpAQCAtNDA3LDYgKzQwNyw4IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1Tb3VyY2UuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbWVkaWFzdHJl
YW0vUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21lZGlh
c3RyZWFtL1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudC5oJywKKyAgICAgICAgICAgICdwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrLmNwcCcsCisgICAgICAg
ICAgICAncGxhdGZvcm0vbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jay5oJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9tb2NrL0RldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5o
JywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5oJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9uZXR3b3JrL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFz
ZS5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uLmNwcApp
bmRleCA0ZGQzYmYwZGEyNWNjYjQzMTc0M2VmNzhmODgwZWUxNzk3ZmVhZGQxLi5iYTkyM2FjMGI3
OGIzOGUxYTQxMGZlMDBlMWVlY2UzNGMwYmU3NjEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbWVk
aWFzdHJlYW0vUGVlckNvbm5lY3Rpb24uY3BwCkBAIC0xOTksNiArMTk5LDEyIEBAIHZvaWQgUGVl
ckNvbm5lY3Rpb246OmRpZENvbXBsZXRlSUNFUHJvY2Vzc2luZygpCiAgICAgY2hhbmdlUmVhZHlT
dGF0ZShBQ1RJVkUpOwogfQogCit2b2lkIFBlZXJDb25uZWN0aW9uOjpkaWRSZXN0YXJ0SUNFUHJv
Y2Vzc2luZygpCit7CisgICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNDb250
ZXh0VGhyZWFkKCkpOworICAgIGNoYW5nZVJlYWR5U3RhdGUoTkVHT1RJQVRJTkcpOworfQorCiB2
b2lkIFBlZXJDb25uZWN0aW9uOjpkaWRHZW5lcmF0ZVNEUChjb25zdCBTdHJpbmcmIHNkcCkKIHsK
ICAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc0NvbnRleHRUaHJlYWQoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb24uaAppbmRleCBmZDJm
MmZiMmQ0MjgyNmI2MzYwMDE1NTZiMzZiM2FhZTczYmY1YzI0Li5mNzhkMWFlNTQ5NDg1MjEwNDk3
MDc0N2UzYjJhMzM5NjRiY2MyODcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tZWRpYXN0
cmVhbS9QZWVyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL21lZGlhc3RyZWFtL1Bl
ZXJDb25uZWN0aW9uLmgKQEAgLTUzLDYgKzUzLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgUGVlckNvbm5lY3Rpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxQZWVyQ29ubmVjdGlvbj4s
IHB1YmxpYyBQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQsIHB1YmxpYyBFdmVudFRhcmdldCwg
cHVibGljIEFjdGl2ZURPTU9iamVjdCB7CiBwdWJsaWM6CisgICAgZW51bSBSZWFkeVN0YXRlIHsK
KyAgICAgICAgTkVXID0gMCwKKyAgICAgICAgTkVHT1RJQVRJTkcgPSAxLAorICAgICAgICBBQ1RJ
VkUgPSAyLAorICAgICAgICBDTE9TRUQgPSAzCisgICAgfTsKKwogICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFBlZXJDb25uZWN0aW9uPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0
IFN0cmluZyYgc2VydmVyQ29uZmlndXJhdGlvbiwgUGFzc1JlZlB0cjxTaWduYWxpbmdDYWxsYmFj
az4pOwogICAgIH5QZWVyQ29ubmVjdGlvbigpOwogCkBAIC03NiwxMSArODMsMTEgQEAgcHVibGlj
OgogCiAgICAgLy8gUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50CiAgICAgdmlydHVhbCB2b2lk
IGRpZENvbXBsZXRlSUNFUHJvY2Vzc2luZygpOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZXN0YXJ0
SUNFUHJvY2Vzc2luZygpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRHZW5lcmF0ZVNEUChjb25zdCBT
dHJpbmcmIHNkcCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhU3RyZWFtTWVzc2Fn
ZShjb25zdCBjaGFyKiBkYXRhLCBzaXplX3QgbGVuZ3RoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlk
QWRkUmVtb3RlU3RyZWFtKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1EZXNjcmlwdG9yPik7CiAgICAg
dmlydHVhbCB2b2lkIGRpZFJlbW92ZVJlbW90ZVN0cmVhbShNZWRpYVN0cmVhbURlc2NyaXB0b3Iq
KTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlU3RhdGUoUmVhZHlTdGF0ZSBzdGF0ZSkgeyBj
aGFuZ2VSZWFkeVN0YXRlKHN0YXRlKTsgfQogCiAgICAgLy8gRXZlbnRUYXJnZXQKICAgICB2aXJ0
dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgaW50ZXJmYWNlTmFtZSgpIGNvbnN0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25IYW5k
bGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9QZWVyQ29u
bmVjdGlvbkhhbmRsZXJDbGllbnQuaAppbmRleCBlNjdlZjNhNTU4NDAzYTliODVkNzRhZGU3MTI0
NTM4M2E2MmM2ODdlLi5kYmFkNGIyYjBiM2IxNmQ5ZWIzYTBjMDNjYzg2ZWMwNjZkZjJmMjY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9QZWVyQ29ubmVj
dGlvbkhhbmRsZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9QZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQuaApAQCAtNDIsMjIgKzQyLDE0IEBAIGNs
YXNzIE1lZGlhU3RyZWFtRGVzY3JpcHRvcjsKIAogY2xhc3MgUGVlckNvbm5lY3Rpb25IYW5kbGVy
Q2xpZW50IHsKIHB1YmxpYzoKLSAgICAvLyBOYW1lIGFuZCB2YWx1ZXMgb2YgdGhlIGVudW0gbXVz
dCBtYXRjaCB0aGUgY29ycmVzc3BvbmRpbmcgY29uc3RhbnRzIGluIHRoZSBQZWVyQ29ubmVjdGlv
bi5pZGwgZmlsZS4KLSAgICBlbnVtIFJlYWR5U3RhdGUgewotICAgICAgICBORVcgPSAwLAotICAg
ICAgICBORUdPVElBVElORyA9IDEsCi0gICAgICAgIEFDVElWRSA9IDIsCi0gICAgICAgIENMT1NF
RCA9IDMKLSAgICB9OwotCiAgICAgdmlydHVhbCB+UGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50
KCkgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tcGxldGVJQ0VQcm9jZXNzaW5nKCkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBkaWRSZXN0YXJ0SUNFUHJvY2Vzc2luZygpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgZGlkR2VuZXJhdGVTRFAoY29uc3QgU3RyaW5nJiBzZHApID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGFTdHJlYW1NZXNzYWdlKGNvbnN0IGNoYXIqIGRhdGEs
IHNpemVfdCBsZW5ndGgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkUmVtb3RlU3RyZWFt
KFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1EZXNjcmlwdG9yPikgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBkaWRSZW1vdmVSZW1vdGVTdHJlYW0oTWVkaWFTdHJlYW1EZXNjcmlwdG9yKikgPSAwOwotICAg
IHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VTdGF0ZShSZWFkeVN0YXRlKSA9IDA7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uSGFuZGxlck1vY2suY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjY0YWI2YmM1ZjUwOGUyMzQyMDQ1YTM1M2I3NmQ3MGM0ZTkzMTczODEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9QZWVyQ29ubmVj
dGlvbkhhbmRsZXJNb2NrLmNwcApAQCAtMCwwICsxLDk4IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqICAgIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqICAgIGRpc3RyaWJ1dGlv
bi4KKyAqIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMgY29udHJpYnV0b3JzCisgKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMKKyAqICAgIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
KyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIlBlZXJDb25u
ZWN0aW9uSGFuZGxlck1vY2suaCIKKworI2luY2x1ZGUgIk1lZGlhU3RyZWFtQ2VudGVyLmgiCisj
aW5jbHVkZSAiTWVkaWFTdHJlYW1EZXNjcmlwdG9yLmgiCisjaW5jbHVkZSAiTWVkaWFTdHJlYW1T
b3VyY2UuaCIKKyNpbmNsdWRlICJQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQuaCIKKyNpbmNs
dWRlICJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSA8d3Rm
L1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzUmVmUHRyPFBlZXJD
b25uZWN0aW9uSGFuZGxlck1vY2s+IFBlZXJDb25uZWN0aW9uSGFuZGxlck1vY2s6OmNyZWF0ZShQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQqIGNsaWVudCwgY29uc3QgU3RyaW5nJiBzZXJ2ZXJD
b25maWd1cmF0aW9uLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBzZWN1cml0eU9yaWdpbikK
K3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBlZXJDb25uZWN0aW9uSGFuZGxlck1vY2soY2xp
ZW50LCBzZXJ2ZXJDb25maWd1cmF0aW9uLCBzZWN1cml0eU9yaWdpbikpOworfQorCitQZWVyQ29u
bmVjdGlvbkhhbmRsZXJNb2NrOjpQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrKFBlZXJDb25uZWN0
aW9uSGFuZGxlckNsaWVudCogY2xpZW50LCBjb25zdCBTdHJpbmcmIHNlcnZlckNvbmZpZ3VyYXRp
b24sIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHNlY3VyaXR5T3JpZ2luKQorICAgIDogbV9j
bGllbnQoY2xpZW50KQorICAgICwgbV9zZHBUaW1lcih0aGlzLCAmUGVlckNvbm5lY3Rpb25IYW5k
bGVyTW9jazo6c2RwVGltZXJGaXJlZCkKK3sKK30KKworUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9j
azo6flBlZXJDb25uZWN0aW9uSGFuZGxlck1vY2soKQoreworfQorCit2b2lkIFBlZXJDb25uZWN0
aW9uSGFuZGxlck1vY2s6OnByb2R1Y2VJbml0aWFsT2ZmZXIoY29uc3QgTWVkaWFTdHJlYW1EZXNj
cmlwdG9yVmVjdG9yJiBwZW5kaW5nQWRkU3RyZWFtcykKK3sKK30KKwordm9pZCBQZWVyQ29ubmVj
dGlvbkhhbmRsZXJNb2NrOjpoYW5kbGVJbml0aWFsT2ZmZXIoY29uc3QgU3RyaW5nJiBzZHApCit7
CisgICAgaWYgKCFtX3NkcFRpbWVyLmlzQWN0aXZlKCkpIHsKKyAgICAgICAgbV9zZHAgPSBzZHA7
CisgICAgICAgIG1fc2RwVGltZXIuc3RhcnRPbmVTaG90KDApOworICAgIH0KK30KKwordm9pZCBQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrOjpwcm9jZXNzU0RQKGNvbnN0IFN0cmluZyYgc2RwKQor
eworICAgIGhhbmRsZUluaXRpYWxPZmZlcihzZHApOworfQorCit2b2lkIFBlZXJDb25uZWN0aW9u
SGFuZGxlck1vY2s6OnByb2Nlc3NQZW5kaW5nU3RyZWFtcyhjb25zdCBNZWRpYVN0cmVhbURlc2Ny
aXB0b3JWZWN0b3ImIHBlbmRpbmdBZGRTdHJlYW1zLCBjb25zdCBNZWRpYVN0cmVhbURlc2NyaXB0
b3JWZWN0b3ImIHBlbmRpbmdSZW1vdmVTdHJlYW1zKQoreworfQorCit2b2lkIFBlZXJDb25uZWN0
aW9uSGFuZGxlck1vY2s6OnNlbmREYXRhU3RyZWFtTWVzc2FnZShjb25zdCBjaGFyKiBkYXRhLCBz
aXplX3QgbGVuZ3RoKQoreworfQorCit2b2lkIFBlZXJDb25uZWN0aW9uSGFuZGxlck1vY2s6OnN0
b3AoKQoreworfQorCit2b2lkIFBlZXJDb25uZWN0aW9uSGFuZGxlck1vY2s6OnNkcFRpbWVyRmly
ZWQoVGltZXI8UGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jaz4qKQoreworICAgIG1fY2xpZW50LT5k
aWRHZW5lcmF0ZVNEUChtX3NkcCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMzM4OTU3NGJmNWRkNzk2ZTg5MmMxNWExMWFmMzA2N2QxNmFhYjBlOAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1BlZXJD
b25uZWN0aW9uSGFuZGxlck1vY2suaApAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqICAgIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqICAgIGRpc3RyaWJ1
dGlvbi4KKyAqIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMgY29udHJpYnV0b3JzCisgKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMKKyAqICAgIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrX2gKKyNkZWZpbmUgUGVlckNvbm5lY3Rpb25IYW5kbGVy
TW9ja19oCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiTWVkaWFTdHJl
YW1EZXNjcmlwdG9yLmgiCisjaW5jbHVkZSAiVGltZXIuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1Jl
ZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50OworY2xhc3MgU2VjdXJpdHlP
cmlnaW47CisKK2NsYXNzIFBlZXJDb25uZWN0aW9uSGFuZGxlck1vY2sgOiBwdWJsaWMgUmVmQ291
bnRlZDxQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrPiB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jayk7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UGVlckNvbm5lY3Rpb25IYW5kbGVy
TW9jaz4gY3JlYXRlKFBlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudCosIGNvbnN0IFN0cmluZyYg
c2VydmVyQ29uZmlndXJhdGlvbiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4pOworICAgIH5Q
ZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrKCk7CisKKyAgICB2b2lkIHByb2R1Y2VJbml0aWFsT2Zm
ZXIoY29uc3QgTWVkaWFTdHJlYW1EZXNjcmlwdG9yVmVjdG9yJiBwZW5kaW5nQWRkU3RyZWFtcyk7
CisgICAgdm9pZCBoYW5kbGVJbml0aWFsT2ZmZXIoY29uc3QgU3RyaW5nJiBzZHApOworICAgIHZv
aWQgcHJvY2Vzc1NEUChjb25zdCBTdHJpbmcmIHNkcCk7CisgICAgdm9pZCBwcm9jZXNzUGVuZGlu
Z1N0cmVhbXMoY29uc3QgTWVkaWFTdHJlYW1EZXNjcmlwdG9yVmVjdG9yJiBwZW5kaW5nQWRkU3Ry
ZWFtcywgY29uc3QgTWVkaWFTdHJlYW1EZXNjcmlwdG9yVmVjdG9yJiBwZW5kaW5nUmVtb3ZlU3Ry
ZWFtcyk7CisgICAgdm9pZCBzZW5kRGF0YVN0cmVhbU1lc3NhZ2UoY29uc3QgY2hhciogZGF0YSwg
c2l6ZV90IGxlbmd0aCk7CisgICAgdm9pZCBzdG9wKCk7CisKK3ByaXZhdGU6CisgICAgUGVlckNv
bm5lY3Rpb25IYW5kbGVyTW9jayhQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQqLCBjb25zdCBT
dHJpbmcmIHNlcnZlckNvbmZpZ3VyYXRpb24sIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+KTsK
KworICAgIHZvaWQgc2RwVGltZXJGaXJlZChUaW1lcjxQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2Nr
PiopOworCisgICAgUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50KiBtX2NsaWVudDsKKyAgICBU
aW1lcjxQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrPiBtX3NkcFRpbWVyOworICAgIFN0cmluZyBt
X3NkcDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShN
RURJQV9TVFJFQU0pCisKKyNlbmRpZiAvLyBQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vV2ViS2l0Lmd5cAppbmRleCBhNDFjNmQwNzM4NjMxMDUyOGQ5MzUxOWI4NDg2
OGVjNTNiYTdkOGI2Li45ODlmMGMwMGIzMmI4NDE4NTExMGNhZDZkNjRkYzE2NjMxNDU4Y2E5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC0zMjMsNiArMzIzLDcgQEAKICAgICAgICAg
ICAgICAgICAncHVibGljL3BsYXRmb3JtL1dlYk5vbkNvcHlhYmxlLmgnLAogICAgICAgICAgICAg
ICAgICdwdWJsaWMvcGxhdGZvcm0vV2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgnLAogICAgICAg
ICAgICAgICAgICdwdWJsaWMvcGxhdGZvcm0vV2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50
LmgnLAorICAgICAgICAgICAgICAgICdwdWJsaWMvcGxhdGZvcm0vV2ViUGVlckNvbm5lY3Rpb25I
YW5kbGVyTW9jay5oJywKICAgICAgICAgICAgICAgICAncHVibGljL3BsYXRmb3JtL1dlYlBvaW50
LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvcGxhdGZvcm0vV2ViUHJpdmF0ZU93blB0ci5o
JywKICAgICAgICAgICAgICAgICAncHVibGljL3BsYXRmb3JtL1dlYlByaXZhdGVQdHIuaCcsCkBA
IC00NTUsNiArNDU2LDggQEAKICAgICAgICAgICAgICAgICAnc3JjL1BhZ2VPdmVybGF5LmgnLAog
ICAgICAgICAgICAgICAgICdzcmMvUGFnZU92ZXJsYXlMaXN0LmNwcCcsCiAgICAgICAgICAgICAg
ICAgJ3NyYy9QYWdlT3ZlcmxheUxpc3QuaCcsCisgICAgICAgICAgICAgICAgJ3NyYy9QZWVyQ29u
bmVjdGlvbkhhbmRsZXJDbGllbnRCcmlkZ2UuY3BwJywKKyAgICAgICAgICAgICAgICAnc3JjL1Bl
ZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudEJyaWRnZS5oJywKICAgICAgICAgICAgICAgICAnc3Jj
L1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9Q
bGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5oJywKICAgICAgICAgICAgICAgICAnc3JjL1BsYXRm
b3JtU3VwcG9ydC5jcHAnLApAQCAtNjE5LDYgKzYyMiw3IEBACiAgICAgICAgICAgICAgICAgJ3Ny
Yy9XZWJQYXNzd29yZEZvcm1EYXRhLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJQYXNz
d29yZEZvcm1VdGlscy5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViUGFzc3dvcmRGb3Jt
VXRpbHMuaCcsCisgICAgICAgICAgICAgICAgJ3NyYy9XZWJQZWVyQ29ubmVjdGlvbkhhbmRsZXJN
b2NrLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJQZXJmb3JtYW5jZS5jcHAnLAogICAg
ICAgICAgICAgICAgICdzcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5oJywKICAgICAgICAgICAg
ICAgICAnc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vYnJpZGdlL1BlZXJDb25uZWN0aW9uSGFuZGxlckludGVybmFsLmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vYnJpZGdlL1BlZXJDb25uZWN0aW9uSGFuZGxlcklu
dGVybmFsLmNwcAppbmRleCBkOGY2MWY3ZjBiYmMwN2FlNGZkMGM4OWE3YTU0Mzg3NWMxZTJmOTY2
Li5hYTQ2NDRiOGVkZDQ2NTg1NThlOWZhYjE5NTk3YjI3MzZkNDhhZjViIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL2JyaWRnZS9QZWVyQ29ubmVjdGlvbkhhbmRsZXJJbnRlcm5h
bC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9icmlkZ2UvUGVlckNvbm5lY3Rpb25I
YW5kbGVySW50ZXJuYWwuY3BwCkBAIC0xMDQsMzIgKzEwNCwzMiBAQCB2b2lkIFBlZXJDb25uZWN0
aW9uSGFuZGxlckludGVybmFsOjpzdG9wKCkKIAogdm9pZCBQZWVyQ29ubmVjdGlvbkhhbmRsZXJJ
bnRlcm5hbDo6ZGlkQ29tcGxldGVJQ0VQcm9jZXNzaW5nKCkKIHsKLSAgICBpZiAobV93ZWJIYW5k
bGVyKQotICAgICAgICBtX2NsaWVudC0+ZGlkQ29tcGxldGVJQ0VQcm9jZXNzaW5nKCk7CisgICAg
bV9jbGllbnQtPmRpZENvbXBsZXRlSUNFUHJvY2Vzc2luZygpOworfQorCit2b2lkIFBlZXJDb25u
ZWN0aW9uSGFuZGxlckludGVybmFsOjpkaWRSZXN0YXJ0SUNFUHJvY2Vzc2luZygpCit7CisgICAg
bV9jbGllbnQtPmRpZFJlc3RhcnRJQ0VQcm9jZXNzaW5nKCk7CiB9CiAKIHZvaWQgUGVlckNvbm5l
Y3Rpb25IYW5kbGVySW50ZXJuYWw6OmRpZEdlbmVyYXRlU0RQKGNvbnN0IFdlYktpdDo6V2ViU3Ry
aW5nJiBzZHApCiB7Ci0gICAgaWYgKG1fd2ViSGFuZGxlcikKLSAgICAgICAgbV9jbGllbnQtPmRp
ZEdlbmVyYXRlU0RQKHNkcCk7CisgICAgbV9jbGllbnQtPmRpZEdlbmVyYXRlU0RQKHNkcCk7CiB9
CiAKIHZvaWQgUGVlckNvbm5lY3Rpb25IYW5kbGVySW50ZXJuYWw6OmRpZFJlY2VpdmVEYXRhU3Ry
ZWFtTWVzc2FnZShjb25zdCBjaGFyKiBkYXRhLCBzaXplX3QgbGVuZ3RoKQogewotICAgIGlmICht
X3dlYkhhbmRsZXIpCi0gICAgICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlRGF0YVN0cmVhbU1lc3Nh
Z2UoZGF0YSwgbGVuZ3RoKTsKKyAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZURhdGFTdHJlYW1NZXNz
YWdlKGRhdGEsIGxlbmd0aCk7CiB9CiAKIHZvaWQgUGVlckNvbm5lY3Rpb25IYW5kbGVySW50ZXJu
YWw6OmRpZEFkZFJlbW90ZVN0cmVhbShjb25zdCBXZWJLaXQ6OldlYk1lZGlhU3RyZWFtRGVzY3Jp
cHRvciYgd2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yKQogewotICAgIGlmIChtX3dlYkhhbmRsZXIp
Ci0gICAgICAgIG1fY2xpZW50LT5kaWRBZGRSZW1vdGVTdHJlYW0od2ViTWVkaWFTdHJlYW1EZXNj
cmlwdG9yKTsKKyAgICBtX2NsaWVudC0+ZGlkQWRkUmVtb3RlU3RyZWFtKHdlYk1lZGlhU3RyZWFt
RGVzY3JpcHRvcik7CiB9CiAKIHZvaWQgUGVlckNvbm5lY3Rpb25IYW5kbGVySW50ZXJuYWw6OmRp
ZFJlbW92ZVJlbW90ZVN0cmVhbShjb25zdCBXZWJLaXQ6OldlYk1lZGlhU3RyZWFtRGVzY3JpcHRv
ciYgd2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yKQogewotICAgIGlmIChtX3dlYkhhbmRsZXIpCi0g
ICAgICAgIG1fY2xpZW50LT5kaWRSZW1vdmVSZW1vdGVTdHJlYW0od2ViTWVkaWFTdHJlYW1EZXNj
cmlwdG9yKTsKKyAgICBtX2NsaWVudC0+ZGlkUmVtb3ZlUmVtb3RlU3RyZWFtKHdlYk1lZGlhU3Ry
ZWFtRGVzY3JpcHRvcik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vYnJpZGdlL1BlZXJDb25uZWN0aW9uSGFuZGxlckludGVy
bmFsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2JyaWRnZS9QZWVyQ29ubmVjdGlvbkhhbmRs
ZXJJbnRlcm5hbC5oCmluZGV4IGUxN2ZkOTZiNWI1YzcxZjlhYjljMGEzZTFlZWNmY2I3YWY1MGNh
YjAuLmM0Y2IyZDA5YzllNDk3MjU4M2MxNjBhNDM1NjU0OGJhNWM2ZGE1NTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vYnJpZGdlL1BlZXJDb25uZWN0aW9uSGFuZGxlckludGVy
bmFsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9icmlkZ2UvUGVlckNvbm5lY3Rpb25I
YW5kbGVySW50ZXJuYWwuaApAQCAtNjMsNiArNjMsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBXZWJL
aXQ6OldlYlBlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudCBpbXBsZW1lbnRhdGlvbi4KICAgICB2
aXJ0dWFsIHZvaWQgZGlkQ29tcGxldGVJQ0VQcm9jZXNzaW5nKCk7CisgICAgdmlydHVhbCB2b2lk
IGRpZFJlc3RhcnRJQ0VQcm9jZXNzaW5nKCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZEdlbmVyYXRl
U0RQKGNvbnN0IFdlYktpdDo6V2ViU3RyaW5nJiBzZHApOwogICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlRGF0YVN0cmVhbU1lc3NhZ2UoY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IGxlbmd0aCk7
CiAgICAgdmlydHVhbCB2b2lkIGRpZEFkZFJlbW90ZVN0cmVhbShjb25zdCBXZWJLaXQ6OldlYk1l
ZGlhU3RyZWFtRGVzY3JpcHRvciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvcGxhdGZvcm0vV2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJQZWVyQ29ubmVjdGlvbkhhbmRs
ZXJDbGllbnQuaAppbmRleCBmMmIxZDMyOTdjNjg5MzI3NGY3M2E0MzI1NzQzMDU5MGM4MzQ3NGY2
Li5iMzQxNjdiMzM0MDk1N2U3MGQ3YzU1MDQ2OTAxNWI1ZDZjYzA5MmM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJQZWVyQ29ubmVjdGlvbkhh
bmRsZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9y
bS9XZWJQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQuaApAQCAtNDEsNiArNDEsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB+V2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50KCkgeyB9CiAK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tcGxldGVJQ0VQcm9jZXNzaW5nKCkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBkaWRSZXN0YXJ0SUNFUHJvY2Vzc2luZygpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgZGlkR2VuZXJhdGVTRFAoY29uc3QgV2ViU3RyaW5nJiBzZHApID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZURhdGFTdHJlYW1NZXNzYWdlKGNvbnN0IGNoYXIqIGRhdGEsIHNpemVf
dCBsZW5ndGgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkUmVtb3RlU3RyZWFtKGNvbnN0
IFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvciYpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dlYlBlZXJDb25uZWN0aW9uSGFuZGxlck1vY2su
aCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dlYlBlZXJDb25uZWN0
aW9uSGFuZGxlck1vY2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lM2JhOTZlNWRhMmQ1ZDAxZDg5ZTlkMDMwMzg4
YmFhZjIwMzRjNzhmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvcGxhdGZvcm0vV2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jay5oCkBAIC0wLDAgKzEs
NzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAq
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICog
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
KyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIFdlYlBlZXJDb25uZWN0aW9uSGFuZGxlck1vY2tfaAorI2RlZmluZSBXZWJQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrX2gKKworI2luY2x1ZGUgIldlYlBlZXJDb25uZWN0aW9u
SGFuZGxlci5oIgorI2luY2x1ZGUgIldlYlByaXZhdGVQdHIuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworY2xhc3MgUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jazsKK2NsYXNzIFBlZXJDb25uZWN0
aW9uSGFuZGxlckNsaWVudEJyaWRnZTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNz
IFdlYlBlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudDsKKworY2xhc3MgV2ViUGVlckNvbm5lY3Rp
b25IYW5kbGVyTW9jayA6IHB1YmxpYyBXZWJQZWVyQ29ubmVjdGlvbkhhbmRsZXIgeworcHVibGlj
OgorICAgIHN0YXRpYyBXZWJQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrKiBjcmVhdGUoV2ViUGVl
ckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50Kik7CisgICAgdmlydHVhbCB+V2ViUGVlckNvbm5lY3Rp
b25IYW5kbGVyTW9jaygpOworCisgICAgLy8gV2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyCisgICAg
dmlydHVhbCB2b2lkIGluaXRpYWxpemUoY29uc3QgV2ViU3RyaW5nJiBzZXJ2ZXJDb25maWd1cmF0
aW9uLCBjb25zdCBXZWJTZWN1cml0eU9yaWdpbiYpOworICAgIHZpcnR1YWwgdm9pZCBwcm9kdWNl
SW5pdGlhbE9mZmVyKGNvbnN0IFdlYlZlY3RvcjxXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3I+JiBw
ZW5kaW5nQWRkU3RyZWFtcyk7CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUluaXRpYWxPZmZlcihj
b25zdCBXZWJTdHJpbmcmIHNkcCk7CisgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NTRFAoY29uc3Qg
V2ViU3RyaW5nJiBzZHApOworICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzUGVuZGluZ1N0cmVhbXMo
Y29uc3QgV2ViVmVjdG9yPFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvcj4mIHBlbmRpbmdBZGRTdHJl
YW1zLCBjb25zdCBXZWJWZWN0b3I8V2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yPiYgcGVuZGluZ1Jl
bW92ZVN0cmVhbXMpOworICAgIHZpcnR1YWwgdm9pZCBzZW5kRGF0YVN0cmVhbU1lc3NhZ2UoY29u
c3QgY2hhciogZGF0YSwgc2l6ZV90IGxlbmd0aCk7CisgICAgdmlydHVhbCB2b2lkIHN0b3AoKTsK
KworcHJpdmF0ZToKKyAgICBXZWJQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrKFdlYlBlZXJDb25u
ZWN0aW9uSGFuZGxlckNsaWVudCopOworCisgICAgV2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xp
ZW50KiBtX2NsaWVudDsKKyAgICBXZWJQcml2YXRlUHRyPFdlYkNvcmU6OlBlZXJDb25uZWN0aW9u
SGFuZGxlck1vY2s+IG1fcHJpdmF0ZTsKKyAgICBXZWJQcml2YXRlUHRyPFdlYkNvcmU6OlBlZXJD
b25uZWN0aW9uSGFuZGxlckNsaWVudEJyaWRnZT4gbV9jbGllbnRCcmlkZ2U7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYlBlZXJDb25uZWN0aW9uSGFuZGxlck1v
Y2tfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUGVlckNvbm5lY3Rp
b25IYW5kbGVyQ2xpZW50QnJpZGdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1Bl
ZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudEJyaWRnZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTI4OGEyZWI3
Y2IxNGE2YWJkMWMxMTg4YTRhYjNkMzUyZWJhYWIzYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudEJyaWRnZS5j
cHAKQEAgLTAsMCArMSw5MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisg
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorCisjaW5jbHVkZSAiUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50QnJpZGdlLmgi
CisKKyNpbmNsdWRlICJNZWRpYVN0cmVhbURlc2NyaXB0b3IuaCIKKyNpbmNsdWRlICJwbGF0Zm9y
bS9XZWJNZWRpYVN0cmVhbURlc2NyaXB0b3IuaCIKKyNpbmNsdWRlICJwbGF0Zm9ybS9XZWJQZWVy
Q29ubmVjdGlvbkhhbmRsZXJDbGllbnQuaCIKKyNpbmNsdWRlICJwbGF0Zm9ybS9XZWJTdHJpbmcu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzUmVmUHRyPFBlZXJDb25uZWN0aW9uSGFu
ZGxlckNsaWVudEJyaWRnZT4gUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50QnJpZGdlOjpjcmVh
dGUoV2ViS2l0OjpXZWJQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQqIGNsaWVudCkKK3sKKyAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFBlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudEJyaWRnZShj
bGllbnQpKTsKK30KKworUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50QnJpZGdlOjpQZWVyQ29u
bmVjdGlvbkhhbmRsZXJDbGllbnRCcmlkZ2UoV2ViS2l0OjpXZWJQZWVyQ29ubmVjdGlvbkhhbmRs
ZXJDbGllbnQqIGNsaWVudCkKKyAgICA6IG1fY2xpZW50KGNsaWVudCkKK3sKKyAgICBBU1NFUlQo
bV9jbGllbnQpOworfQorCitQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnRCcmlkZ2U6On5QZWVy
Q29ubmVjdGlvbkhhbmRsZXJDbGllbnRCcmlkZ2UoKQoreworfQorCit2b2lkIFBlZXJDb25uZWN0
aW9uSGFuZGxlckNsaWVudEJyaWRnZTo6ZGlkQ29tcGxldGVJQ0VQcm9jZXNzaW5nKCkKK3sKKyAg
ICBtX2NsaWVudC0+ZGlkQ29tcGxldGVJQ0VQcm9jZXNzaW5nKCk7Cit9CisKK3ZvaWQgUGVlckNv
bm5lY3Rpb25IYW5kbGVyQ2xpZW50QnJpZGdlOjpkaWRSZXN0YXJ0SUNFUHJvY2Vzc2luZygpCit7
CisgICAgbV9jbGllbnQtPmRpZFJlc3RhcnRJQ0VQcm9jZXNzaW5nKCk7Cit9CisKK3ZvaWQgUGVl
ckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50QnJpZGdlOjpkaWRHZW5lcmF0ZVNEUChjb25zdCBTdHJp
bmcmIHNkcCkKK3sKKyAgICBtX2NsaWVudC0+ZGlkR2VuZXJhdGVTRFAoc2RwKTsKK30KKwordm9p
ZCBQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnRCcmlkZ2U6OmRpZFJlY2VpdmVEYXRhU3RyZWFt
TWVzc2FnZShjb25zdCBjaGFyKiBkYXRhLCBzaXplX3QgbGVuZ3RoKQoreworICAgIG1fY2xpZW50
LT5kaWRSZWNlaXZlRGF0YVN0cmVhbU1lc3NhZ2UoZGF0YSwgbGVuZ3RoKTsKK30KKwordm9pZCBQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnRCcmlkZ2U6OmRpZEFkZFJlbW90ZVN0cmVhbShQYXNz
UmVmUHRyPE1lZGlhU3RyZWFtRGVzY3JpcHRvcj4gc3RyZWFtKQoreworICAgIG1fY2xpZW50LT5k
aWRBZGRSZW1vdGVTdHJlYW0oc3RyZWFtKTsKK30KKwordm9pZCBQZWVyQ29ubmVjdGlvbkhhbmRs
ZXJDbGllbnRCcmlkZ2U6OmRpZFJlbW92ZVJlbW90ZVN0cmVhbShNZWRpYVN0cmVhbURlc2NyaXB0
b3IqIHN0cmVhbSkKK3sKKyAgICBtX2NsaWVudC0+ZGlkUmVtb3ZlUmVtb3RlU3RyZWFtKHN0cmVh
bSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJ
QV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QZWVyQ29u
bmVjdGlvbkhhbmRsZXJDbGllbnRCcmlkZ2UuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudEJyaWRnZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIwMTBmZGMw
Y2UxNGNiODRiMzRkZDcxMjRkMjZiYjRhNWRkNDVkZjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnRCcmlkZ2Uu
aApAQCAtMCwwICsxLDcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnRCcmlk
Z2VfaAorI2RlZmluZSBQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnRCcmlkZ2VfaAorCisjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIlBlZXJDb25uZWN0aW9uSGFuZGxlckNs
aWVudC5oIgorCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYlBlZXJDb25uZWN0aW9u
SGFuZGxlckNsaWVudDsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBQZWVyQ29u
bmVjdGlvbkhhbmRsZXJDbGllbnRCcmlkZ2UgOiBwdWJsaWMgUmVmQ291bnRlZDxQZWVyQ29ubmVj
dGlvbkhhbmRsZXJDbGllbnRCcmlkZ2U+LCBwdWJsaWMgUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xp
ZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxQZWVyQ29ubmVjdGlvbkhhbmRs
ZXJDbGllbnRCcmlkZ2U+IGNyZWF0ZShXZWJLaXQ6OldlYlBlZXJDb25uZWN0aW9uSGFuZGxlckNs
aWVudCopOworICAgIHZpcnR1YWwgflBlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudEJyaWRnZSgp
OworCisgICAgLy8gUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50CisgICAgdmlydHVhbCB2b2lk
IGRpZENvbXBsZXRlSUNFUHJvY2Vzc2luZygpOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZXN0YXJ0
SUNFUHJvY2Vzc2luZygpOworICAgIHZpcnR1YWwgdm9pZCBkaWRHZW5lcmF0ZVNEUChjb25zdCBT
dHJpbmcmIHNkcCk7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhU3RyZWFtTWVzc2Fn
ZShjb25zdCBjaGFyKiBkYXRhLCBzaXplX3QgbGVuZ3RoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
QWRkUmVtb3RlU3RyZWFtKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1EZXNjcmlwdG9yPik7CisgICAg
dmlydHVhbCB2b2lkIGRpZFJlbW92ZVJlbW90ZVN0cmVhbShNZWRpYVN0cmVhbURlc2NyaXB0b3Iq
KTsKKworcHJpdmF0ZToKKyAgICBQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnRCcmlkZ2UoV2Vi
S2l0OjpXZWJQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQqKTsKKworICAgIFdlYktpdDo6V2Vi
UGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50KiBtX2NsaWVudDsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNlbmRpZiAv
LyBQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnRCcmlkZ2VfaAorCisKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBlZXJDb25uZWN0aW9uSGFuZGxlck1vY2suY3Bw
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9j
ay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZmU5OWI1Y2FmNjJkZTQ0MjhmMDI3NTNkY2UwMGVmYmY5YWU1OTcw
ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBlZXJD
b25uZWN0aW9uSGFuZGxlck1vY2suY3BwCkBAIC0wLDAgKzEsMTA2IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlv
bi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAq
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgInBsYXRmb3JtL1dlYlBlZXJDb25uZWN0aW9uSGFuZGxlck1vY2suaCIK
KworI2luY2x1ZGUgIk1lZGlhU3RyZWFtRGVzY3JpcHRvci5oIgorI2luY2x1ZGUgIlBlZXJDb25u
ZWN0aW9uSGFuZGxlckNsaWVudEJyaWRnZS5oIgorI2luY2x1ZGUgIlBlZXJDb25uZWN0aW9uSGFu
ZGxlck1vY2suaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgIldlYlNl
Y3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAicGxhdGZvcm0vV2ViTWVkaWFTdHJlYW1EZXNjcmlw
dG9yLmgiCisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYlBlZXJDb25uZWN0aW9uSGFuZGxlck1vY2sq
IFdlYlBlZXJDb25uZWN0aW9uSGFuZGxlck1vY2s6OmNyZWF0ZShXZWJQZWVyQ29ubmVjdGlvbkhh
bmRsZXJDbGllbnQqIGNsaWVudCkKK3sKKyAgICByZXR1cm4gbmV3IFdlYlBlZXJDb25uZWN0aW9u
SGFuZGxlck1vY2soY2xpZW50KTsKK30KKworV2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jazo6
V2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jayhXZWJQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGll
bnQqIGNsaWVudCkKKyAgICA6IG1fY2xpZW50KGNsaWVudCkKK3sKK30KKworV2ViUGVlckNvbm5l
Y3Rpb25IYW5kbGVyTW9jazo6fldlYlBlZXJDb25uZWN0aW9uSGFuZGxlck1vY2soKQoreworICAg
IG1fcHJpdmF0ZS5yZXNldCgpOworICAgIG1fY2xpZW50QnJpZGdlLnJlc2V0KCk7Cit9CisKK3Zv
aWQgV2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jazo6aW5pdGlhbGl6ZShjb25zdCBXZWJTdHJp
bmcmIHNlcnZlckNvbmZpZ3VyYXRpb24sIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJiBzZWN1cml0
eU9yaWdpbikKK3sKKyAgICBtX2NsaWVudEJyaWRnZSA9IFBlZXJDb25uZWN0aW9uSGFuZGxlckNs
aWVudEJyaWRnZTo6Y3JlYXRlKG1fY2xpZW50KTsKKyAgICBtX3ByaXZhdGUgPSBQZWVyQ29ubmVj
dGlvbkhhbmRsZXJNb2NrOjpjcmVhdGUobV9jbGllbnRCcmlkZ2UuZ2V0KCksIHNlcnZlckNvbmZp
Z3VyYXRpb24sIHNlY3VyaXR5T3JpZ2luKTsKK30KKwordm9pZCBXZWJQZWVyQ29ubmVjdGlvbkhh
bmRsZXJNb2NrOjpwcm9kdWNlSW5pdGlhbE9mZmVyKGNvbnN0IFdlYlZlY3RvcjxXZWJNZWRpYVN0
cmVhbURlc2NyaXB0b3I+JiBwZW5kaW5nQWRkU3RyZWFtcykKK3sKKyAgICBXZWJDb3JlOjpNZWRp
YVN0cmVhbURlc2NyaXB0b3JWZWN0b3Igc3RyZWFtczsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IHBlbmRpbmdBZGRTdHJlYW1zLnNpemUoKTsgKytpKQorICAgICAgICBzdHJlYW1zLmFwcGVu
ZChwZW5kaW5nQWRkU3RyZWFtc1tpXSk7CisgICAgbV9wcml2YXRlLT5wcm9kdWNlSW5pdGlhbE9m
ZmVyKHN0cmVhbXMpOworfQorCit2b2lkIFdlYlBlZXJDb25uZWN0aW9uSGFuZGxlck1vY2s6Omhh
bmRsZUluaXRpYWxPZmZlcihjb25zdCBXZWJTdHJpbmcmIHNkcCkKK3sKKyAgICBtX3ByaXZhdGUt
PmhhbmRsZUluaXRpYWxPZmZlcihzZHApOworfQorCit2b2lkIFdlYlBlZXJDb25uZWN0aW9uSGFu
ZGxlck1vY2s6OnByb2Nlc3NTRFAoY29uc3QgV2ViU3RyaW5nJiBzZHApCit7CisgICAgbV9wcml2
YXRlLT5wcm9jZXNzU0RQKHNkcCk7Cit9CisKK3ZvaWQgV2ViUGVlckNvbm5lY3Rpb25IYW5kbGVy
TW9jazo6cHJvY2Vzc1BlbmRpbmdTdHJlYW1zKGNvbnN0IFdlYlZlY3RvcjxXZWJNZWRpYVN0cmVh
bURlc2NyaXB0b3I+JiBwZW5kaW5nQWRkU3RyZWFtcywgY29uc3QgV2ViVmVjdG9yPFdlYk1lZGlh
U3RyZWFtRGVzY3JpcHRvcj4mIHBlbmRpbmdSZW1vdmVTdHJlYW1zKQoreworICAgIFdlYkNvcmU6
Ok1lZGlhU3RyZWFtRGVzY3JpcHRvclZlY3RvciBhZGRTdHJlYW1zLCByZW1vdmVTdHJlYW1zOwor
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcGVuZGluZ0FkZFN0cmVhbXMuc2l6ZSgpOyArK2kp
CisgICAgICAgIGFkZFN0cmVhbXMuYXBwZW5kKHBlbmRpbmdBZGRTdHJlYW1zW2ldKTsKKyAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IHBlbmRpbmdSZW1vdmVTdHJlYW1zLnNpemUoKTsgKytpKQor
ICAgICAgICByZW1vdmVTdHJlYW1zLmFwcGVuZChwZW5kaW5nQWRkU3RyZWFtc1tpXSk7CisgICAg
bV9wcml2YXRlLT5wcm9jZXNzUGVuZGluZ1N0cmVhbXMoYWRkU3RyZWFtcywgcmVtb3ZlU3RyZWFt
cyk7Cit9CisKK3ZvaWQgV2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jazo6c2VuZERhdGFTdHJl
YW1NZXNzYWdlKGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBsZW5ndGgpCit7CisgICAgbV9wcml2
YXRlLT5zZW5kRGF0YVN0cmVhbU1lc3NhZ2UoZGF0YSwgbGVuZ3RoKTsKK30KKwordm9pZCBXZWJQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrOjpzdG9wKCkKK3sKKyAgICBtX3ByaXZhdGUtPnN0b3Ao
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>