<?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>173521</bug_id>
          
          <creation_ts>2017-06-17 21:38:01 -0700</creation_ts>
          <short_desc>[WebIDL] Move Touch related bindings in Document to their own IDL file</short_desc>
          <delta_ts>2017-06-19 20:25:47 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>achristensen</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1320472</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-06-17 21:38:01 -0700</bug_when>
    <thetext>[WebIDL] Move Touch related bindings in Document to their own IDL file</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1320473</commentid>
    <comment_count>1</comment_count>
      <attachid>313220</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-06-17 21:44:17 -0700</bug_when>
    <thetext>Created attachment 313220
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1320503</commentid>
    <comment_count>2</comment_count>
      <attachid>313230</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-06-18 10:38:27 -0700</bug_when>
    <thetext>Created attachment 313230
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1320539</commentid>
    <comment_count>3</comment_count>
      <attachid>313241</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-06-18 13:17:35 -0700</bug_when>
    <thetext>Created attachment 313241
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1320550</commentid>
    <comment_count>4</comment_count>
      <attachid>313245</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-06-18 14:48:32 -0700</bug_when>
    <thetext>Created attachment 313245
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1320551</commentid>
    <comment_count>5</comment_count>
      <attachid>313246</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-06-18 15:02:31 -0700</bug_when>
    <thetext>Created attachment 313246
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1320552</commentid>
    <comment_count>6</comment_count>
      <attachid>313247</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-06-18 15:19:21 -0700</bug_when>
    <thetext>Created attachment 313247
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1320712</commentid>
    <comment_count>7</comment_count>
      <attachid>313247</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-06-19 09:00:55 -0700</bug_when>
    <thetext>Comment on attachment 313247
Patch

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

&gt; Source/WebCore/dom/TouchList.h:61
&gt; +        m_values.reserveInitialCapacity(touches.size());

Why not just WTFMove touches into m_values?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1320844</commentid>
    <comment_count>8</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-06-19 14:26:44 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #7)
&gt; Comment on attachment 313247 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=313247&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/TouchList.h:61
&gt; &gt; +        m_values.reserveInitialCapacity(touches.size());
&gt; 
&gt; Why not just WTFMove touches into m_values?

Can&apos;t move Vector&lt;std::reference_wrapper&lt;Touch&gt;&gt; into Vector&lt;Ref&lt;Touch&gt;&gt;.

Thanks for the review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1320951</commentid>
    <comment_count>9</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-06-19 20:25:47 -0700</bug_when>
    <thetext>Committed r218529: &lt;http://trac.webkit.org/changeset/218529&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>313220</attachid>
            <date>2017-06-17 21:44:17 -0700</date>
            <delta_ts>2017-06-18 10:38:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173521-20170617214503.patch</filename>
            <type>text/plain</type>
            <size>22070</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxODQ2MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUxIEBACisyMDE3LTA2LTE3ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1dlYklETF0gTW92ZSBUb3VjaCByZWxh
dGVkIGJpbmRpbmdzIGluIERvY3VtZW50IHRvIHRoZWlyIG93biBJREwgZmlsZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczNTIxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmF0aGVyIHRoYW4gI2luY2x1
ZGluZyBpbiB0aGUgbWlkZGxlIG9mIGFuIElETCBmaWxlLCB0aGlzIG1vdmVzIHRoZSB0b3VjaCBy
ZWxhdGVkCisgICAgICAgIGJpbmRpbmdzIGluIERvY3VtZW50LmlkbCB0byBhIG5ldyBwYXJ0aWFs
IGludGVyZmFjZSBmb3IgRG9jdW1lbnQgaW4gRG9jdW1lbnRUb3VjaC5pZGwuCisgICAgICAgIFdo
aWxlIGhlcmUsIHJlbW92ZSB0aGUgY3VzdG9tIGJpbmRpbmcgZm9yIGNyZWF0ZVRvdWNoTGlzdC4K
KworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1h
a2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICBBZGQgbmV3IGZpbGVzLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3Rv
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RvY3VtZW50OjpjcmVhdGVUb3VjaExpc3QpOiBE
ZWxldGVkLgorICAgICAgICBSZW1vdmUgY3JlYXRlVG91Y2hMaXN0LiBJdCBjYW4gYmUgZ2VuZXJh
dGVkIG5vdy4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6Y3JlYXRlVG91Y2gpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5oOgorICAgICAgICBNb3ZlIHRvdWNoIHJlbGF0ZWQgYmluZGluZ3MgY29kZSB0byBEb2N1bWVu
dFRvdWNoLmgvY3BwLgorICAgICAgICBSZW1vdmUgRG9jdW1lbnRJT1NGb3J3YXJkIGFzIGl0IGlz
IG5vIGxvbmdlciBuZWVkZWQuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaWRsOgorICAgICAg
ICBNb3ZlIHRvdWNoIHJlbGF0ZWQgYmluZGluZ3MgdG8gRG9jdW1lbnRUb3VjaC5pZGwKKyAgICAg
ICAgCisgICAgICAgICogZG9tL0RvY3VtZW50VG91Y2guaDogQWRkZWQuCisgICAgICAgICogZG9t
L0RvY3VtZW50VG91Y2guY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VG91
Y2g6OmNyZWF0ZVRvdWNoKToKKyAgICAgICAgTW92ZWQgZnJvbSBEb2N1bWVudC4KKworICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnRUb3VjaDo6Y3JlYXRlVG91Y2hMaXN0KToKKyAgICAgICAgQWRk
ZWQgdG8gYWlkIGdlbmVyYXRlZCBiaW5kaW5nLgorCisgICAgICAgICogZG9tL0RvY3VtZW50VG91
Y2guaWRsOiBBZGRlZC4KKyAgICAgICAgTW92ZWQgb3BlcmF0aW9ucyBmcm9tIERvY3VtZW50LmgK
KworICAgICAgICAqIGRvbS9Ub3VjaExpc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlRvdWNoTGlz
dDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlRvdWNoTGlzdDo6VG91Y2hMaXN0KToKKyAg
ICAgICAgQWRkZWQgY3JlYXRlIHRoYXQgd29ya3Mgd2l0aCB0aGUgYmluZGluZ3MuCisKKyAgICAg
ICAgKiBkb20vaW9zL1RvdWNoRXZlbnRzLmNwcDoKKyAgICAgICAgQWRkIERvY3VtZW50VG91Y2hJ
T1MuaCBhbmQgc29ydC4KKwogMjAxNy0wNi0xNyAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIEFkZHJlc3NpbmcgcG9zdC1yZXZpZXcgY29tbWVudCBhZnRlciByMjE4
NDU2LgpJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDIxODQ2MikKKysrIFNvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC00NDEsNiArNDQxLDcg
QEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBkb20vRG9jdW1lbnRBbmRFbGVt
ZW50RXZlbnRIYW5kbGVycy5pZGwKICAgICBkb20vRG9jdW1lbnRGcmFnbWVudC5pZGwKICAgICBk
b20vRG9jdW1lbnRPclNoYWRvd1Jvb3QuaWRsCisgICAgZG9tL0RvY3VtZW50VG91Y2guaWRsCiAg
ICAgZG9tL0RvY3VtZW50VHlwZS5pZGwKICAgICBkb20vRWxlbWVudC5pZGwKICAgICBkb20vRXJy
b3JFdmVudC5pZGwKQEAgLTE0NzgsNiArMTQ3OSw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAg
ICBkb20vRG9jdW1lbnRPcmRlcmVkTWFwLmNwcAogICAgIGRvbS9Eb2N1bWVudFBhcnNlci5jcHAK
ICAgICBkb20vRG9jdW1lbnRTaGFyZWRPYmplY3RQb29sLmNwcAorICAgIGRvbS9Eb2N1bWVudFRv
dWNoLmNwcAogICAgIGRvbS9Eb2N1bWVudFR5cGUuY3BwCiAgICAgZG9tL0VsZW1lbnQuY3BwCiAg
ICAgZG9tL0VsZW1lbnREYXRhLmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
CShyZXZpc2lvbiAyMTg0NjIpCisrKyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
CSh3b3JraW5nIGNvcHkpCkBAIC04OTgsNiArODk4LDcgQEAgZW5kaWYKIGlmZXEgKCQoV1RGX1BM
QVRGT1JNX0lPUyksIDEpCiBpZmVxICgkKGZpbmRzdHJpbmcgRU5BQkxFX0lPU19UT1VDSF9FVkVO
VFMsJChGRUFUVVJFX0RFRklORVMpKSwgRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpCiBBRERJVElP
TkFMX0JJTkRJTkdfSURMUyArPSBcCisgICAgRG9jdW1lbnRUb3VjaC5pZGwgXAogICAgIFRvdWNo
LmlkbCBcCiAgICAgVG91Y2hFdmVudC5pZGwgXAogICAgIFRvdWNoTGlzdC5pZGwKQEAgLTkyMiw2
ICs5MjMsNyBAQCBlbmRpZiAjIE1BQ09TCiAKIGlmbmVxICgkKFdURl9QTEFURk9STV9JT1MpLCAx
KQogSlNfQklORElOR19JRExTICs9IFwKKyAgICAkKFdlYkNvcmUpL2RvbS9Eb2N1bWVudFRvdWNo
LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vVG91Y2guaWRsIFwKICAgICAkKFdlYkNvcmUpL2Rv
bS9Ub3VjaEV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vVG91Y2hMaXN0LmlkbApJbmRl
eDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkocmV2aXNpb24gMjE4NDYyKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0yODg4LDggKzI4ODgsNiBAQAogCQk2
QzRDOTZERjFBRDQ0ODM1MDAzNjNGNjQgLyogSlNSZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QzRDOTZE
QjFBRDQ0ODM1MDAzNjNGNjQgLyogSlNSZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyLmggKi87
IH07CiAJCTZDNEM5NkRGMUFENDQ4MzUwMDM2NTY3MiAvKiBKU1JlYWRhYmxlU3RyZWFtQllPQlJl
cXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZD
NEM5NkRCMUFENDQ4MzUwMDM2NTY3MiAvKiBKU1JlYWRhYmxlU3RyZWFtQllPQlJlcXVlc3QuaCAq
LzsgfTsKIAkJNkM0Qzk2REYxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW1EZWZh
dWx0Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNkM0Qzk2REIxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW1EZWZhdWx0
Q29udHJvbGxlci5oICovOyB9OwotCQk2QTMyRDdDRTFBMTZEOEMwMDA0MTJGMEIgLyogSW5zcGVj
dG9yQ2FudmFzQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNkE0QjZENjYxOUQyMjVEODAwNkYxMUQzIC8qIEluc3BlY3RvckNhbnZhc0FnZW50
LmNwcCAqLzsgfTsKLQkJNkE0QjZENjUxOUQyMjUxOTAwNkYxMUQzIC8qIEluc3BlY3RvckNhbnZh
c0FnZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2
QTRCNkQ2NDE5RDIyNTE5MDA2RjExRDMgLyogSW5zcGVjdG9yQ2FudmFzQWdlbnQuaCAqLzsgfTsK
IAkJNkM2Mzg4OTVBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRp
YXRvcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZD
NjM4ODkzQTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3Jz
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkM2
Mzg4OTZBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkM2Mzg4
OTRBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3Bw
ICovOyB9OwogCQk2Q0RERThEMDE3NzBCQjIyMDAxNkUwNzIgLyogUmVnaW9uT3ZlcnNldFN0YXRl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QzcwQTgx
NDE3NzA3QzQ5MDA5QTQ0NkUgLyogUmVnaW9uT3ZlcnNldFN0YXRlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEwNzQzLDggKzEwNzQxLDYgQEAK
IAkJNkM0Qzk2REIxQUQ0NDgzNTAwMzYzRjY0IC8qIEpTUmVhZGFibGVCeXRlU3RyZWFtQ29udHJv
bGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1JlYWRhYmxlQnl0ZVN0
cmVhbUNvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkM0Qzk2REIx
QUQ0NDgzNTAwMzY1NjcyIC8qIEpTUmVhZGFibGVTdHJlYW1CWU9CUmVxdWVzdC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1JlYWRhYmxlU3RyZWFtQllPQlJlcXVlc3QuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkM0Qzk2REIxQUQ0NDgzNTAwMzY1QTUwIC8q
IEpTUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU1JlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNkE0QjZENjQxOUQyMjUxOTAwNkYxMUQzIC8qIEluc3Bl
Y3RvckNhbnZhc0FnZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3Bl
Y3RvckNhbnZhc0FnZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTZBNEI2RDY2
MTlEMjI1RDgwMDZGMTFEMyAvKiBJbnNwZWN0b3JDYW52YXNBZ2VudC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JDYW52YXNBZ2VudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZDNjM4ODkzQTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNo
ZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTZDNjM4ODk0QTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJj
ZVJlcXVlc3RJbml0aWF0b3JzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNkM3MEE4MTQxNzcwN0M0OTAwOUE0NDZFIC8qIFJlZ2lvbk92ZXJzZXRT
dGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWdpb25PdmVyc2V0U3Rh
dGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExMzgzLDYgKzExMzc5LDkgQEAK
IAkJN0NDN0UzRDYxNzIwOEMwRjAwM0M1Mjc3IC8qIElETlNjcmlwdFdoaXRlTGlzdC50eHQgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gSUROU2NyaXB0V2hpdGVMaXN0LnR4dDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJN0NEMEJBMDIxQjhGNzlDOTAwNUNFQkJFIC8qIEFjdGl2ZURPTUNh
bGxiYWNrTWljcm90YXNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEFjdGl2ZURPTUNhbGxiYWNrTWljcm90YXNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJN0NEMEJBMDMxQjhGNzlDOTAwNUNFQkJFIC8qIEFjdGl2ZURPTUNhbGxiYWNrTWljcm90
YXNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjdGl2ZURPTUNhbGxiYWNr
TWljcm90YXNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdDRDJGQkNCMUVGNjJD
MzUwMDcwMzUxOCAvKiBEb2N1bWVudFRvdWNoLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERvY3Vt
ZW50VG91Y2guY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3Q0QyRkJDQzFFRjYy
QzM1MDA3MDM1MTggLyogRG9jdW1lbnRUb3VjaC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEb2N1bWVudFRv
dWNoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdDRDJGQkNEMUVGNjJDMzUwMDcw
MzUxOCAvKiBEb2N1bWVudFRvdWNoLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBEb2N1bWVudFRvdWNoLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NENDk0Q0ExQTg2RUIxRDAwMEE4N0VDIC8qIFJlbmRl
ckF0dGFjaG1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVu
ZGVyQXR0YWNobWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDRDQ5NENC
MUE4NkVCMUQwMDBBODdFQyAvKiBSZW5kZXJBdHRhY2htZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJlbmRlckF0dGFjaG1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJN0NFNThENDkxREQ2NEE1QjAwMTI4NTUyIC8qIFNWR1BvaW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1BvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0yNTc0MCw2ICsyNTczOSw5IEBACiAJCQkJQUQ2RTcxQUExNjY4ODk5RDAwMzIw
QzEzIC8qIERvY3VtZW50U2hhcmVkT2JqZWN0UG9vbC5jcHAgKi8sCiAJCQkJQUQ2RTcxQUIxNjY4
ODk5RDAwMzIwQzEzIC8qIERvY3VtZW50U2hhcmVkT2JqZWN0UG9vbC5oICovLAogCQkJCTg2RDk4
MkY2MTI1QzE1NDAwMEFEOUUzRCAvKiBEb2N1bWVudFRpbWluZy5oICovLAorCQkJCTdDRDJGQkNC
MUVGNjJDMzUwMDcwMzUxOCAvKiBEb2N1bWVudFRvdWNoLmNwcCAqLywKKwkJCQk3Q0QyRkJDQzFF
RjYyQzM1MDA3MDM1MTggLyogRG9jdW1lbnRUb3VjaC5oICovLAorCQkJCTdDRDJGQkNEMUVGNjJD
MzUwMDcwMzUxOCAvKiBEb2N1bWVudFRvdWNoLmlkbCAqLywKIAkJCQlBODE4NUYzMjA5NzY1NzY1
MDA1ODI2RDkgLyogRG9jdW1lbnRUeXBlLmNwcCAqLywKIAkJCQlBODE4NUYzMTA5NzY1NzY1MDA1
ODI2RDkgLyogRG9jdW1lbnRUeXBlLmggKi8sCiAJCQkJOTNFRUMxRTgwOUMyODc3NzAwQzUxNUQx
IC8qIERvY3VtZW50VHlwZS5pZGwgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RvY3VtZW50Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNwcAkocmV2aXNpb24gMjE4NDYyKQorKysgU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTExMiwyNSArMTEyLDYgQEAgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9N
R2xvYgogICAgIHJldHVybiB0b0pTTmV3bHlDcmVhdGVkKHN0YXRlLCBnbG9iYWxPYmplY3QsIFJl
ZjxEb2N1bWVudD4oZG9jdW1lbnQpKTsKIH0KIAotI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCi1K
U1ZhbHVlIEpTRG9jdW1lbnQ6OmNyZWF0ZVRvdWNoTGlzdChFeGVjU3RhdGUmIHN0YXRlKQotewot
ICAgIFZNJiB2bSA9IHN0YXRlLnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwotCi0gICAgYXV0byB0b3VjaExpc3QgPSBUb3VjaExpc3Q6OmNyZWF0ZSgpOwot
Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzdGF0ZS5hcmd1bWVudENvdW50KCk7ICsraSkg
ewotICAgICAgICBhdXRvKiBpdGVtID0gSlNUb3VjaDo6dG9XcmFwcGVkKHZtLCBzdGF0ZS51bmNo
ZWNrZWRBcmd1bWVudChpKSk7Ci0gICAgICAgIGlmICghaXRlbSkKLSAgICAgICAgICAgIHJldHVy
biBKU1ZhbHVlOjpkZWNvZGUodGhyb3dBcmd1bWVudFR5cGVFcnJvcihzdGF0ZSwgc2NvcGUsIGks
ICJ0b3VjaGVzIiwgIkRvY3VtZW50IiwgImNyZWF0ZVRvdWNoTGlzdCIsICJUb3VjaCIpKTsKLQot
ICAgICAgICB0b3VjaExpc3QtPmFwcGVuZCgqaXRlbSk7Ci0gICAgfQotICAgIHJldHVybiB0b0pT
TmV3bHlDcmVhdGVkKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCksIFdURk1vdmUodG91Y2hMaXN0KSk7
Ci19Ci0jZW5kaWYKLQogSlNWYWx1ZSBKU0RvY3VtZW50OjpnZXRDU1NDYW52YXNDb250ZXh0KEpT
Qzo6RXhlY1N0YXRlJiBzdGF0ZSkKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS52bSgpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCShyZXZpc2lvbiAyMTg0NjIpCisrKyBTb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNTEsNyArMjUxLDYgQEAKIAog
I2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAjaW5jbHVkZSAiVG91Y2hFdmVudC5oIgotI2luY2x1
ZGUgIlRvdWNoTGlzdC5oIgogI2VuZGlmCiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCkBAIC02
MzAyLDIwICs2MzAxLDYgQEAgdm9pZCBEb2N1bWVudDo6c2VuZFdpbGxSZXZlYWxFZGdlRXZlbnRz
SQogI2VuZGlmCiB9CiAKLSNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKSAmJiAhUExBVEZPUk0oSU9T
KQotCi1SZWY8VG91Y2g+IERvY3VtZW50OjpjcmVhdGVUb3VjaChET01XaW5kb3cqIHdpbmRvdywg
RXZlbnRUYXJnZXQqIHRhcmdldCwgaW50IGlkZW50aWZpZXIsIGludCBwYWdlWCwgaW50IHBhZ2VZ
LCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCByYWRpdXNYLCBpbnQgcmFkaXVzWSwgZmxv
YXQgcm90YXRpb25BbmdsZSwgZmxvYXQgZm9yY2UpIGNvbnN0Ci17Ci0gICAgLy8gRklYTUU6IEl0
J3Mgbm90IGNsZWFyIGZyb20gdGhlIGRvY3VtZW50YXRpb24gYXQKLSAgICAvLyBodHRwOi8vZGV2
ZWxvcGVyLmFwcGxlLmNvbS9saWJyYXJ5L3NhZmFyaS8jZG9jdW1lbnRhdGlvbi9Vc2VyRXhwZXJp
ZW5jZS9SZWZlcmVuY2UvRG9jdW1lbnRBZGRpdGlvbnNSZWZlcmVuY2UvRG9jdW1lbnRBZGRpdGlv
bnMvRG9jdW1lbnRBZGRpdGlvbnMuaHRtbAotICAgIC8vIHdoZW4gdGhpcyBtZXRob2Qgc2hvdWxk
IHRocm93IGFuZCBub3IgaXMgaXQgYnkgaW5zcGVjdGlvbiBvZiBpT1MgYmVoYXZpb3IuIEl0IHdv
dWxkIGJlIG5pY2UgdG8gdmVyaWZ5IGFueSBjYXNlcyB3aGVyZSBpdCB0aHJvd3MgdW5kZXIgaU9T
Ci0gICAgLy8gYW5kIGltcGxlbWVudCB0aGVtIGhlcmUuIFNlZSBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDc4MTkKLSAgICBGcmFtZSogZnJhbWUgPSB3aW5kb3cgPyB3
aW5kb3ctPmZyYW1lKCkgOiB0aGlzLT5mcmFtZSgpOwotICAgIHJldHVybiBUb3VjaDo6Y3JlYXRl
KGZyYW1lLCB0YXJnZXQsIGlkZW50aWZpZXIsIHNjcmVlblgsIHNjcmVlblksIHBhZ2VYLCBwYWdl
WSwgcmFkaXVzWCwgcmFkaXVzWSwgcm90YXRpb25BbmdsZSwgZm9yY2UpOwotfQotCi0jZW5kaWYK
LQogdm9pZCBEb2N1bWVudDo6d2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCgpCiB7CiAgICAgUGFn
ZSogcGFnZSA9IHRoaXMtPnBhZ2UoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCShyZXZpc2lv
biAyMTg0NjIpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtMTg0LDEwICsxODQsNiBAQCBjbGFzcyBUcmFuc2Zvcm1Tb3VyY2U7CiBzdHJ1Y3QgQW5u
b3RhdGVkUmVnaW9uVmFsdWU7CiAjZW5kaWYKIAotI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRT
KQotI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9Eb2N1bWVudElPU0ZvcndhcmQuaD4KLSNlbmRp
ZgotCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykgfHwgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMp
CiBjbGFzcyBUb3VjaDsKIGNsYXNzIFRvdWNoTGlzdDsKQEAgLTExMzAsOCArMTEyNiw2IEBAIHB1
YmxpYzoKIAogI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQogI2luY2x1ZGUgPFdlYktpdEFk
ZGl0aW9ucy9Eb2N1bWVudElPUy5oPgotI2VsaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKLSAgICBS
ZWY8VG91Y2g+IGNyZWF0ZVRvdWNoKERPTVdpbmRvdyosIEV2ZW50VGFyZ2V0KiwgaW50IGlkZW50
aWZpZXIsIGludCBwYWdlWCwgaW50IHBhZ2VZLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGlu
dCByYWRpdXNYLCBpbnQgcmFkaXVzWSwgZmxvYXQgcm90YXRpb25BbmdsZSwgZmxvYXQgZm9yY2Up
IGNvbnN0OwogI2VuZGlmCiAKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKSAmJiBQTEFU
Rk9STShJT1MpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwJKHJldmlzaW9uIDIxODQ2MikK
KysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTE4
MCwxOCArMTgwLDYgQEAKICAgICAvLyBOb24gc3RhbmRhcmQgKGh0dHBzOi8vZGV2ZWxvcGVyLmFw
cGxlLmNvbS9yZWZlcmVuY2Uvd2Via2l0anMvZG9jdW1lbnQvMTYzMzg2My13ZWJraXRnZXRuYW1l
ZGZsb3dzKS4KICAgICBbQ29uZGl0aW9uYWw9Q1NTX1JFR0lPTlNdIERPTU5hbWVkRmxvd0NvbGxl
Y3Rpb24gd2Via2l0R2V0TmFtZWRGbG93cygpOwogCi0gICAgLy8gRklYTUU6IFRoaXMgaGFzIGJl
ZW4gZHJvcHBlZCBmcm9tIHRoZSBzdGFuZGFyZCBub3cgdGhhdCBUb3VjaCBoYXMgYSBjb25zdHJ1
Y3Rvci4KLSNpZiBkZWZpbmVkKEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTKSAmJiBFTkFCTEVfSU9T
X1RPVUNIX0VWRU5UUwotI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9Eb2N1bWVudElPUy5pZGw+
Ci0jZWxpZiBkZWZpbmVkKEVOQUJMRV9UT1VDSF9FVkVOVFMpICYmIEVOQUJMRV9UT1VDSF9FVkVO
VFMKLSAgICBbTmV3T2JqZWN0XSBUb3VjaCBjcmVhdGVUb3VjaChvcHRpb25hbCBET01XaW5kb3c/
IHdpbmRvdyA9IG51bGwsIG9wdGlvbmFsIEV2ZW50VGFyZ2V0PyB0YXJnZXQgPSBudWxsLAotICAg
ICAgICBvcHRpb25hbCBsb25nIGlkZW50aWZpZXIgPSAwLAotICAgICAgICBvcHRpb25hbCBsb25n
IHBhZ2VYID0gMCwgb3B0aW9uYWwgbG9uZyBwYWdlWSA9IDAsIG9wdGlvbmFsIGxvbmcgc2NyZWVu
WCA9IDAsIG9wdGlvbmFsIGxvbmcgc2NyZWVuWSA9IDAsCi0gICAgICAgIG9wdGlvbmFsIGxvbmcg
d2Via2l0UmFkaXVzWCA9IDAsIG9wdGlvbmFsIGxvbmcgd2Via2l0UmFkaXVzWSA9IDAsCi0gICAg
ICAgIG9wdGlvbmFsIHVucmVzdHJpY3RlZCBmbG9hdCB3ZWJraXRSb3RhdGlvbkFuZ2xlID0gTmFO
LCBvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZmxvYXQgd2Via2l0Rm9yY2UgPSBOYU4pOwotICAgIFtO
ZXdPYmplY3QsIEN1c3RvbV0gVG91Y2hMaXN0IGNyZWF0ZVRvdWNoTGlzdChUb3VjaC4uLiB0b3Vj
aGVzKTsKLSNlbmRpZgotCiAKICAgICAvLyBPYnNvbGV0ZSBmZWF0dXJlcyBmcm9tIGh0dHBzOi8v
aHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL29ic29sZXRlLmh0bWwKIApJbmRleDogU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50VG91Y2guY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudFRvdWNoLmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnRUb3VjaC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1NCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEb2N1bWVudFRv
dWNoLmgiCisKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorCisjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKKyNpbmNsdWRlICJUb3VjaC5oIgorI2luY2x1ZGUgIlRvdWNoTGlzdC5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK1JlZjxUb3VjaD4gRG9jdW1lbnRUb3VjaDo6Y3JlYXRlVG91Y2goRG9j
dW1uZXQmIGRvY3VtZW50LCBET01XaW5kb3cqIHdpbmRvdywgRXZlbnRUYXJnZXQqIHRhcmdldCwg
aW50IGlkZW50aWZpZXIsIGludCBwYWdlWCwgaW50IHBhZ2VZLCBpbnQgc2NyZWVuWCwgaW50IHNj
cmVlblksIGludCByYWRpdXNYLCBpbnQgcmFkaXVzWSwgZmxvYXQgcm90YXRpb25BbmdsZSwgZmxv
YXQgZm9yY2UpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IEl0J3Mgbm90IGNsZWFyIGZyb20gdGhl
IGRvY3VtZW50YXRpb24gYXQKKyAgICAvLyBodHRwOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9saWJy
YXJ5L3NhZmFyaS8jZG9jdW1lbnRhdGlvbi9Vc2VyRXhwZXJpZW5jZS9SZWZlcmVuY2UvRG9jdW1l
bnRBZGRpdGlvbnNSZWZlcmVuY2UvRG9jdW1lbnRBZGRpdGlvbnMvRG9jdW1lbnRBZGRpdGlvbnMu
aHRtbAorICAgIC8vIHdoZW4gdGhpcyBtZXRob2Qgc2hvdWxkIHRocm93IGFuZCBub3IgaXMgaXQg
YnkgaW5zcGVjdGlvbiBvZiBpT1MgYmVoYXZpb3IuIEl0IHdvdWxkIGJlIG5pY2UgdG8gdmVyaWZ5
IGFueSBjYXNlcyB3aGVyZSBpdCB0aHJvd3MgdW5kZXIgaU9TCisgICAgLy8gYW5kIGltcGxlbWVu
dCB0aGVtIGhlcmUuIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDc4MTkKKyAgICBGcmFtZSogZnJhbWUgPSB3aW5kb3cgPyB3aW5kb3ctPmZyYW1lKCkgOiBkb2N1
bWVudC5mcmFtZSgpOworICAgIHJldHVybiBUb3VjaDo6Y3JlYXRlKGZyYW1lLCB0YXJnZXQsIGlk
ZW50aWZpZXIsIHNjcmVlblgsIHNjcmVlblksIHBhZ2VYLCBwYWdlWSwgcmFkaXVzWCwgcmFkaXVz
WSwgcm90YXRpb25BbmdsZSwgZm9yY2UpOworfQorCitSZWY8VG91Y2hMaXN0PiBEb2N1bWVudFRv
dWNoOjpjcmVhdGVUb3VjaExpc3QoRG9jdW1lbnQmLCBWZWN0b3I8c3RkOjpyZWZlcmVuY2Vfd3Jh
cHBlcjxUb3VjaD4+JiYgdG91Y2hlcykKK3sKKyAgICByZXR1cm4gVG91Y2hMaXN0OjpjcmVhdGUo
V1RGTW92ZSh0b3VjaGVzKSk7Cit9CisKK30KKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnRUb3VjaC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudFRvdWNoLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50VG91Y2guaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKKyNpbmNsdWRlIDxX
ZWJLaXRBZGRpdGlvbnMvRG9jdW1lbnRUb3VjaElPUy5oPgorI2VsaWYgRU5BQkxFKFRPVUNIX0VW
RU5UUykKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEb2N1bWVudFRvdWNoIHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUmVmPFRvdWNoPiBjcmVhdGVUb3VjaChEb2N1bWVudCYsIERPTVdp
bmRvdyosIEV2ZW50VGFyZ2V0KiwgaW50IGlkZW50aWZpZXIsIGludCBwYWdlWCwgaW50IHBhZ2VZ
LCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCByYWRpdXNYLCBpbnQgcmFkaXVzWSwgZmxv
YXQgcm90YXRpb25BbmdsZSwgZmxvYXQgZm9yY2UpIGNvbnN0OworICAgIHN0YXRpYyBSZWY8VG91
Y2hMaXN0PiBjcmVhdGVUb3VjaExpc3QoRG9jdW1lbnQmLCBWZWN0b3I8c3RkOjpyZWZlcmVuY2Vf
d3JhcHBlcjxUb3VjaD4+JiYpOworfTsKKworfQorCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudFRvdWNoLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnRUb3VjaC5pZGwJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50VG91Y2guaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMTEsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IFNhbXVlbCBXZWluaWcg
PHNhbUB3ZWJraXQub3JnPgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4g
IElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9VE9VQ0hfRVZFTlRTCitdIHBhcnRp
YWwgaW50ZXJmYWNlIERvY3VtZW50IHsKKyAgICAvLyBGSVhNRTogVGhpcyBoYXMgYmVlbiBkcm9w
cGVkIGZyb20gdGhlIHN0YW5kYXJkIG5vdyB0aGF0IFRvdWNoIGhhcyBhIGNvbnN0cnVjdG9yLgor
ICAgIFtOZXdPYmplY3RdIFRvdWNoIGNyZWF0ZVRvdWNoKG9wdGlvbmFsIERPTVdpbmRvdz8gd2lu
ZG93ID0gbnVsbCwgb3B0aW9uYWwgRXZlbnRUYXJnZXQ/IHRhcmdldCA9IG51bGwsCisgICAgICAg
IG9wdGlvbmFsIGxvbmcgaWRlbnRpZmllciA9IDAsCisgICAgICAgIG9wdGlvbmFsIGxvbmcgcGFn
ZVggPSAwLCBvcHRpb25hbCBsb25nIHBhZ2VZID0gMCwgb3B0aW9uYWwgbG9uZyBzY3JlZW5YID0g
MCwgb3B0aW9uYWwgbG9uZyBzY3JlZW5ZID0gMCwKKyAgICAgICAgb3B0aW9uYWwgbG9uZyB3ZWJr
aXRSYWRpdXNYID0gMCwgb3B0aW9uYWwgbG9uZyB3ZWJraXRSYWRpdXNZID0gMCwKKyAgICAgICAg
b3B0aW9uYWwgdW5yZXN0cmljdGVkIGZsb2F0IHdlYmtpdFJvdGF0aW9uQW5nbGUgPSBOYU4sIG9w
dGlvbmFsIHVucmVzdHJpY3RlZCBmbG9hdCB3ZWJraXRGb3JjZSA9IE5hTik7CisgICAgW05ld09i
amVjdF0gVG91Y2hMaXN0IGNyZWF0ZVRvdWNoTGlzdChUb3VjaC4uLiB0b3VjaGVzKTsKK307Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vVG91Y2hMaXN0LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvZG9tL1RvdWNoTGlzdC5oCShyZXZpc2lvbiAyMTg0NjIpCisrKyBTb3VyY2UvV2Vi
Q29yZS9kb20vVG91Y2hMaXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDEwIEBAIHB1
YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRvdWNoTGlzdCk7CiAg
ICAgfQorICAgIHN0YXRpYyBSZWY8VG91Y2hMaXN0PiBjcmVhdGUoVmVjdG9yPHN0ZDo6cmVmZXJl
bmNlX3dyYXBwZXI8VG91Y2g+PiYmIHRvdWNoZXMpCisgICAgeworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBUb3VjaExpc3QoV1RGTW92ZSh0b3VjaGVzKSkpOworICAgIH0KIAogICAgIHVu
c2lnbmVkIGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWVzLnNpemUoKTsgfQogCkBAIC00
OSw3ICs1MywxNCBAQCBwdWJsaWM6CiAgICAgdm9pZCBhcHBlbmQoUmVmPFRvdWNoPiYmIHRvdWNo
KSB7IG1fdmFsdWVzLmFwcGVuZChXVEZNb3ZlKHRvdWNoKSk7IH0KIAogcHJpdmF0ZToKLSAgICBU
b3VjaExpc3QoKSB7fQorICAgIFRvdWNoTGlzdCgpID0gZGVmYXVsdDsKKworICAgIGV4cGxpY2l0
IFRvdWNoTGlzdChWZWN0b3I8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxUb3VjaD4+JiYgdG91Y2hl
cykKKyAgICB7CisgICAgICAgIG1fdmFsdWVzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkodG91Y2hl
cy5zaXplKCkpOworICAgICAgICBmb3IgKGF1dG8mIHRvdWNoIDogdG91Y2hlcykKKyAgICAgICAg
ICAgIG1fdmFsdWVzLnVuY2hlY2tlZEFwcGVuZCh0b3VjaC5nZXQoKSk7CisgICAgfQogCiAgICAg
VmVjdG9yPFJlZjxUb3VjaD4+IG1fdmFsdWVzOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Rv
bS9pb3MvVG91Y2hFdmVudHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9p
b3MvVG91Y2hFdmVudHMuY3BwCShyZXZpc2lvbiAyMTg0NjIpCisrKyBTb3VyY2UvV2ViQ29yZS9k
b20vaW9zL1RvdWNoRXZlbnRzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsOSArMjgsMTAgQEAK
ICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKIAogI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9u
cy9Eb2N1bWVudElPUy5jcHA+CisjaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL0RvY3VtZW50VG91
Y2hJT1MuY3BwPgogI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9HZXN0dXJlRXZlbnQuY3BwPgot
I2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9Ub3VjaElPUy5jcHA+CiAjaW5jbHVkZSA8V2ViS2l0
QWRkaXRpb25zL1RvdWNoRXZlbnRJT1MuY3BwPgorI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9U
b3VjaElPUy5jcHA+CiAjaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL1RvdWNoTGlzdElPUy5jcHA+
CiAKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>313230</attachid>
            <date>2017-06-18 10:38:27 -0700</date>
            <delta_ts>2017-06-18 13:17:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173521-20170618103914.patch</filename>
            <type>text/plain</type>
            <size>22078</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxODQ2MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUxIEBACisyMDE3LTA2LTE3ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1dlYklETF0gTW92ZSBUb3VjaCByZWxh
dGVkIGJpbmRpbmdzIGluIERvY3VtZW50IHRvIHRoZWlyIG93biBJREwgZmlsZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczNTIxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmF0aGVyIHRoYW4gI2luY2x1
ZGluZyBpbiB0aGUgbWlkZGxlIG9mIGFuIElETCBmaWxlLCB0aGlzIG1vdmVzIHRoZSB0b3VjaCBy
ZWxhdGVkCisgICAgICAgIGJpbmRpbmdzIGluIERvY3VtZW50LmlkbCB0byBhIG5ldyBwYXJ0aWFs
IGludGVyZmFjZSBmb3IgRG9jdW1lbnQgaW4gRG9jdW1lbnRUb3VjaC5pZGwuCisgICAgICAgIFdo
aWxlIGhlcmUsIHJlbW92ZSB0aGUgY3VzdG9tIGJpbmRpbmcgZm9yIGNyZWF0ZVRvdWNoTGlzdC4K
KworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1h
a2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICBBZGQgbmV3IGZpbGVzLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3Rv
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RvY3VtZW50OjpjcmVhdGVUb3VjaExpc3QpOiBE
ZWxldGVkLgorICAgICAgICBSZW1vdmUgY3JlYXRlVG91Y2hMaXN0LiBJdCBjYW4gYmUgZ2VuZXJh
dGVkIG5vdy4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6Y3JlYXRlVG91Y2gpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5oOgorICAgICAgICBNb3ZlIHRvdWNoIHJlbGF0ZWQgYmluZGluZ3MgY29kZSB0byBEb2N1bWVu
dFRvdWNoLmgvY3BwLgorICAgICAgICBSZW1vdmUgRG9jdW1lbnRJT1NGb3J3YXJkIGFzIGl0IGlz
IG5vIGxvbmdlciBuZWVkZWQuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaWRsOgorICAgICAg
ICBNb3ZlIHRvdWNoIHJlbGF0ZWQgYmluZGluZ3MgdG8gRG9jdW1lbnRUb3VjaC5pZGwKKyAgICAg
ICAgCisgICAgICAgICogZG9tL0RvY3VtZW50VG91Y2guaDogQWRkZWQuCisgICAgICAgICogZG9t
L0RvY3VtZW50VG91Y2guY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VG91
Y2g6OmNyZWF0ZVRvdWNoKToKKyAgICAgICAgTW92ZWQgZnJvbSBEb2N1bWVudC4KKworICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnRUb3VjaDo6Y3JlYXRlVG91Y2hMaXN0KToKKyAgICAgICAgQWRk
ZWQgdG8gYWlkIGdlbmVyYXRlZCBiaW5kaW5nLgorCisgICAgICAgICogZG9tL0RvY3VtZW50VG91
Y2guaWRsOiBBZGRlZC4KKyAgICAgICAgTW92ZWQgb3BlcmF0aW9ucyBmcm9tIERvY3VtZW50LmgK
KworICAgICAgICAqIGRvbS9Ub3VjaExpc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlRvdWNoTGlz
dDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlRvdWNoTGlzdDo6VG91Y2hMaXN0KToKKyAg
ICAgICAgQWRkZWQgY3JlYXRlIHRoYXQgd29ya3Mgd2l0aCB0aGUgYmluZGluZ3MuCisKKyAgICAg
ICAgKiBkb20vaW9zL1RvdWNoRXZlbnRzLmNwcDoKKyAgICAgICAgQWRkIERvY3VtZW50VG91Y2hJ
T1MuaCBhbmQgc29ydC4KKwogMjAxNy0wNi0xOCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxl
LmNvbT4KIAogICAgICAgICBbTVNFXSBTZWVraW5nIG9yIGVudGVyaW5nIGZ1bGxzY3JlZW4gY2Fu
IGNhdXNlIGV4dHJlbWUgQ1BVIHVzYWdlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNp
b24gMjE4NDYzKQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTQ0MSw2ICs0NDEsNyBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAg
IGRvbS9Eb2N1bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzLmlkbAogICAgIGRvbS9Eb2N1bWVu
dEZyYWdtZW50LmlkbAogICAgIGRvbS9Eb2N1bWVudE9yU2hhZG93Um9vdC5pZGwKKyAgICBkb20v
RG9jdW1lbnRUb3VjaC5pZGwKICAgICBkb20vRG9jdW1lbnRUeXBlLmlkbAogICAgIGRvbS9FbGVt
ZW50LmlkbAogICAgIGRvbS9FcnJvckV2ZW50LmlkbApAQCAtMTQ3OCw2ICsxNDc5LDcgQEAgc2V0
KFdlYkNvcmVfU09VUkNFUwogICAgIGRvbS9Eb2N1bWVudE9yZGVyZWRNYXAuY3BwCiAgICAgZG9t
L0RvY3VtZW50UGFyc2VyLmNwcAogICAgIGRvbS9Eb2N1bWVudFNoYXJlZE9iamVjdFBvb2wuY3Bw
CisgICAgZG9tL0RvY3VtZW50VG91Y2guY3BwCiAgICAgZG9tL0RvY3VtZW50VHlwZS5jcHAKICAg
ICBkb20vRWxlbWVudC5jcHAKICAgICBkb20vRWxlbWVudERhdGEuY3BwCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDIxODQ2MykKKysrIFNvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTg5OCw2ICs4OTgsNyBAQCBl
bmRpZgogaWZlcSAoJChXVEZfUExBVEZPUk1fSU9TKSwgMSkKIGlmZXEgKCQoZmluZHN0cmluZyBF
TkFCTEVfSU9TX1RPVUNIX0VWRU5UUywkKEZFQVRVUkVfREVGSU5FUykpLCBFTkFCTEVfSU9TX1RP
VUNIX0VWRU5UUykKIEFERElUSU9OQUxfQklORElOR19JRExTICs9IFwKKyAgICBEb2N1bWVudFRv
dWNoLmlkbCBcCiAgICAgVG91Y2guaWRsIFwKICAgICBUb3VjaEV2ZW50LmlkbCBcCiAgICAgVG91
Y2hMaXN0LmlkbApAQCAtOTIyLDYgKzkyMyw3IEBAIGVuZGlmICMgTUFDT1MKIAogaWZuZXEgKCQo
V1RGX1BMQVRGT1JNX0lPUyksIDEpCiBKU19CSU5ESU5HX0lETFMgKz0gXAorICAgICQoV2ViQ29y
ZSkvZG9tL0RvY3VtZW50VG91Y2guaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9Ub3VjaC5pZGwg
XAogICAgICQoV2ViQ29yZSkvZG9tL1RvdWNoRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Rv
bS9Ub3VjaExpc3QuaWRsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMTg0NjMpCisrKyBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTI4
ODgsOCArMjg4OCw2IEBACiAJCTZDNEM5NkRGMUFENDQ4MzUwMDM2M0Y2NCAvKiBKU1JlYWRhYmxl
Qnl0ZVN0cmVhbUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDZDNEM5NkRCMUFENDQ4MzUwMDM2M0Y2NCAvKiBKU1JlYWRhYmxlQnl0ZVN0
cmVhbUNvbnRyb2xsZXIuaCAqLzsgfTsKIAkJNkM0Qzk2REYxQUQ0NDgzNTAwMzY1NjcyIC8qIEpT
UmVhZGFibGVTdHJlYW1CWU9CUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNkM0Qzk2REIxQUQ0NDgzNTAwMzY1NjcyIC8qIEpTUmVhZGFibGVT
dHJlYW1CWU9CUmVxdWVzdC5oICovOyB9OwogCQk2QzRDOTZERjFBRDQ0ODM1MDAzNjVBNTAgLyog
SlNSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QzRDOTZEQjFBRDQ0ODM1MDAzNjVBNTAgLyogSlNS
ZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmggKi87IH07Ci0JCTZBMzJEN0NFMUExNkQ4
QzAwMDQxMkYwQiAvKiBJbnNwZWN0b3JDYW52YXNBZ2VudC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QTRCNkQ2NjE5RDIyNUQ4MDA2RjExRDMgLyog
SW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwICovOyB9OwotCQk2QTRCNkQ2NTE5RDIyNTE5MDA2RjEx
RDMgLyogSW5zcGVjdG9yQ2FudmFzQWdlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDZBNEI2RDY0MTlEMjI1MTkwMDZGMTFEMyAvKiBJbnNwZWN0b3JD
YW52YXNBZ2VudC5oICovOyB9OwogCQk2QzYzODg5NUE5NkNDRUU1MEM4Qzk0NkMgLyogQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNkM2Mzg4OTNBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291
cmNlUmVxdWVzdEluaXRpYXRvcnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk2QzYzODg5NkE5NkNDRUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA2QzYzODg5NEE5NkNDRUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0SW5pdGlhdG9ycy5jcHAgKi87IH07CiAJCTZDRERFOEQwMTc3MEJCMjIwMDE2RTA3MiAv
KiBSZWdpb25PdmVyc2V0U3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDZDNzBBODE0MTc3MDdDNDkwMDlBNDQ2RSAvKiBSZWdpb25PdmVyc2V0U3Rh
dGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAt
MTA3NDMsOCArMTA3NDEsNiBAQAogCQk2QzRDOTZEQjFBRDQ0ODM1MDAzNjNGNjQgLyogSlNSZWFk
YWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTUmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk2QzRDOTZEQjFBRDQ0ODM1MDAzNjU2NzIgLyogSlNSZWFkYWJsZVN0cmVhbUJZ
T0JSZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUmVhZGFibGVT
dHJlYW1CWU9CUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QzRDOTZE
QjFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUmVhZGFibGVTdHJlYW1EZWZhdWx0
Q29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2QTRCNkQ2NDE5RDIy
NTE5MDA2RjExRDMgLyogSW5zcGVjdG9yQ2FudmFzQWdlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yQ2FudmFzQWdlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJNkE0QjZENjYxOUQyMjVEODAwNkYxMUQzIC8qIEluc3BlY3RvckNhbnZhc0Fn
ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvckNh
bnZhc0FnZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkM2Mzg4OTNBOTZD
Q0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRv
cnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkM2Mzg4OTRBOTZDQ0VFNTBDOEM5
NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QzcwQTgxNDE3NzA3QzQ5MDA5QTQ0
NkUgLyogUmVnaW9uT3ZlcnNldFN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlZ2lvbk92ZXJzZXRTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTEzODMsNiArMTEzNzksOSBAQAogCQk3Q0M3RTNENjE3MjA4QzBGMDAzQzUyNzcgLyogSUROU2Ny
aXB0V2hpdGVMaXN0LnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBJRE5TY3JpcHRXaGl0ZUxp
c3QudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0QwQkEwMjFCOEY3OUM5MDA1
Q0VCQkUgLyogQWN0aXZlRE9NQ2FsbGJhY2tNaWNyb3Rhc2suY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQWN0aXZlRE9NQ2FsbGJhY2tNaWNyb3Rhc2suY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0QwQkEwMzFCOEY3OUM5MDA1Q0VCQkUgLyogQWN0
aXZlRE9NQ2FsbGJhY2tNaWNyb3Rhc2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQWN0aXZlRE9NQ2FsbGJhY2tNaWNyb3Rhc2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJN0NEMkZCQ0IxRUY2MkMzNTAwNzAzNTE4IC8qIERvY3VtZW50VG91Y2guY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gRG9jdW1lbnRUb3VjaC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTdDRDJGQkNDMUVGNjJDMzUwMDcwMzUxOCAvKiBEb2N1bWVudFRvdWNoLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IERvY3VtZW50VG91Y2guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
N0NEMkZCQ0QxRUY2MkMzNTAwNzAzNTE4IC8qIERvY3VtZW50VG91Y2guaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERvY3Vt
ZW50VG91Y2guaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0Q0OTRDQTFBODZF
QjFEMDAwQTg3RUMgLyogUmVuZGVyQXR0YWNobWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSZW5kZXJBdHRhY2htZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJN0NENDk0Q0IxQTg2RUIxRDAwMEE4N0VDIC8qIFJlbmRlckF0dGFjaG1lbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyQXR0YWNobWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0U1OEQ0OTFERDY0QTVCMDAxMjg1NTIgLyog
U1ZHUG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHUG9pbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI1NzQwLDYgKzI1NzM5LDkgQEAKIAkJCQlB
RDZFNzFBQTE2Njg4OTlEMDAzMjBDMTMgLyogRG9jdW1lbnRTaGFyZWRPYmplY3RQb29sLmNwcCAq
LywKIAkJCQlBRDZFNzFBQjE2Njg4OTlEMDAzMjBDMTMgLyogRG9jdW1lbnRTaGFyZWRPYmplY3RQ
b29sLmggKi8sCiAJCQkJODZEOTgyRjYxMjVDMTU0MDAwQUQ5RTNEIC8qIERvY3VtZW50VGltaW5n
LmggKi8sCisJCQkJN0NEMkZCQ0IxRUY2MkMzNTAwNzAzNTE4IC8qIERvY3VtZW50VG91Y2guY3Bw
ICovLAorCQkJCTdDRDJGQkNDMUVGNjJDMzUwMDcwMzUxOCAvKiBEb2N1bWVudFRvdWNoLmggKi8s
CisJCQkJN0NEMkZCQ0QxRUY2MkMzNTAwNzAzNTE4IC8qIERvY3VtZW50VG91Y2guaWRsICovLAog
CQkJCUE4MTg1RjMyMDk3NjU3NjUwMDU4MjZEOSAvKiBEb2N1bWVudFR5cGUuY3BwICovLAogCQkJ
CUE4MTg1RjMxMDk3NjU3NjUwMDU4MjZEOSAvKiBEb2N1bWVudFR5cGUuaCAqLywKIAkJCQk5M0VF
QzFFODA5QzI4Nzc3MDBDNTE1RDEgLyogRG9jdW1lbnRUeXBlLmlkbCAqLywKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3BwCShyZXZpc2lv
biAyMTg0NjMpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9t
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEyLDI1ICsxMTIsNiBAQCBKU1ZhbHVlIHRvSlMoRXhl
Y1N0YXRlKiBzdGF0ZSwgSlNET01HbG9iCiAgICAgcmV0dXJuIHRvSlNOZXdseUNyZWF0ZWQoc3Rh
dGUsIGdsb2JhbE9iamVjdCwgUmVmPERvY3VtZW50Pihkb2N1bWVudCkpOwogfQogCi0jaWYgRU5B
QkxFKFRPVUNIX0VWRU5UUykKLUpTVmFsdWUgSlNEb2N1bWVudDo6Y3JlYXRlVG91Y2hMaXN0KEV4
ZWNTdGF0ZSYgc3RhdGUpCi17Ci0gICAgVk0mIHZtID0gc3RhdGUudm0oKTsKLSAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0KLSAgICBhdXRvIHRvdWNoTGlzdCA9IFRv
dWNoTGlzdDo6Y3JlYXRlKCk7Ci0KLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHN0YXRlLmFy
Z3VtZW50Q291bnQoKTsgKytpKSB7Ci0gICAgICAgIGF1dG8qIGl0ZW0gPSBKU1RvdWNoOjp0b1dy
YXBwZWQodm0sIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KGkpKTsKLSAgICAgICAgaWYgKCFpdGVt
KQotICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmRlY29kZSh0aHJvd0FyZ3VtZW50VHlwZUVy
cm9yKHN0YXRlLCBzY29wZSwgaSwgInRvdWNoZXMiLCAiRG9jdW1lbnQiLCAiY3JlYXRlVG91Y2hM
aXN0IiwgIlRvdWNoIikpOwotCi0gICAgICAgIHRvdWNoTGlzdC0+YXBwZW5kKCppdGVtKTsKLSAg
ICB9Ci0gICAgcmV0dXJuIHRvSlNOZXdseUNyZWF0ZWQoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwg
V1RGTW92ZSh0b3VjaExpc3QpKTsKLX0KLSNlbmRpZgotCiBKU1ZhbHVlIEpTRG9jdW1lbnQ6Omdl
dENTU0NhbnZhc0NvbnRleHQoSlNDOjpFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIFZNJiB2bSA9
IHN0YXRlLnZtKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDIxODQ2
MykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI1MSw3ICsyNTEsNiBAQAogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICNpbmNsdWRlICJU
b3VjaEV2ZW50LmgiCi0jaW5jbHVkZSAiVG91Y2hMaXN0LmgiCiAjZW5kaWYKIAogI2lmIEVOQUJM
RShWSURFT19UUkFDSykKQEAgLTYzMDIsMjAgKzYzMDEsNiBAQCB2b2lkIERvY3VtZW50OjpzZW5k
V2lsbFJldmVhbEVkZ2VFdmVudHNJCiAjZW5kaWYKIH0KIAotI2lmIEVOQUJMRShUT1VDSF9FVkVO
VFMpICYmICFQTEFURk9STShJT1MpCi0KLVJlZjxUb3VjaD4gRG9jdW1lbnQ6OmNyZWF0ZVRvdWNo
KERPTVdpbmRvdyogd2luZG93LCBFdmVudFRhcmdldCogdGFyZ2V0LCBpbnQgaWRlbnRpZmllciwg
aW50IHBhZ2VYLCBpbnQgcGFnZVksIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHJhZGl1
c1gsIGludCByYWRpdXNZLCBmbG9hdCByb3RhdGlvbkFuZ2xlLCBmbG9hdCBmb3JjZSkgY29uc3QK
LXsKLSAgICAvLyBGSVhNRTogSXQncyBub3QgY2xlYXIgZnJvbSB0aGUgZG9jdW1lbnRhdGlvbiBh
dAotICAgIC8vIGh0dHA6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2xpYnJhcnkvc2FmYXJpLyNkb2N1
bWVudGF0aW9uL1VzZXJFeHBlcmllbmNlL1JlZmVyZW5jZS9Eb2N1bWVudEFkZGl0aW9uc1JlZmVy
ZW5jZS9Eb2N1bWVudEFkZGl0aW9ucy9Eb2N1bWVudEFkZGl0aW9ucy5odG1sCi0gICAgLy8gd2hl
biB0aGlzIG1ldGhvZCBzaG91bGQgdGhyb3cgYW5kIG5vciBpcyBpdCBieSBpbnNwZWN0aW9uIG9m
IGlPUyBiZWhhdmlvci4gSXQgd291bGQgYmUgbmljZSB0byB2ZXJpZnkgYW55IGNhc2VzIHdoZXJl
IGl0IHRocm93cyB1bmRlciBpT1MKLSAgICAvLyBhbmQgaW1wbGVtZW50IHRoZW0gaGVyZS4gU2Vl
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzgxOQotICAgIEZyYW1l
KiBmcmFtZSA9IHdpbmRvdyA/IHdpbmRvdy0+ZnJhbWUoKSA6IHRoaXMtPmZyYW1lKCk7Ci0gICAg
cmV0dXJuIFRvdWNoOjpjcmVhdGUoZnJhbWUsIHRhcmdldCwgaWRlbnRpZmllciwgc2NyZWVuWCwg
c2NyZWVuWSwgcGFnZVgsIHBhZ2VZLCByYWRpdXNYLCByYWRpdXNZLCByb3RhdGlvbkFuZ2xlLCBm
b3JjZSk7Ci19Ci0KLSNlbmRpZgotCiB2b2lkIERvY3VtZW50Ojp3aGVlbEV2ZW50SGFuZGxlcnND
aGFuZ2VkKCkKIHsKICAgICBQYWdlKiBwYWdlID0gdGhpcy0+cGFnZSgpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgJKHJldmlzaW9uIDIxODQ2MykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODQsMTAgKzE4NCw2IEBAIGNsYXNzIFRyYW5zZm9y
bVNvdXJjZTsKIHN0cnVjdCBBbm5vdGF0ZWRSZWdpb25WYWx1ZTsKICNlbmRpZgogCi0jaWYgRU5B
QkxFKElPU19UT1VDSF9FVkVOVFMpCi0jaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL0RvY3VtZW50
SU9TRm9yd2FyZC5oPgotI2VuZGlmCi0KICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKSB8fCBFTkFC
TEUoSU9TX1RPVUNIX0VWRU5UUykKIGNsYXNzIFRvdWNoOwogY2xhc3MgVG91Y2hMaXN0OwpAQCAt
MTEzMCw4ICsxMTI2LDYgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMp
CiAjaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL0RvY3VtZW50SU9TLmg+Ci0jZWxpZiBFTkFCTEUo
VE9VQ0hfRVZFTlRTKQotICAgIFJlZjxUb3VjaD4gY3JlYXRlVG91Y2goRE9NV2luZG93KiwgRXZl
bnRUYXJnZXQqLCBpbnQgaWRlbnRpZmllciwgaW50IHBhZ2VYLCBpbnQgcGFnZVksIGludCBzY3Jl
ZW5YLCBpbnQgc2NyZWVuWSwgaW50IHJhZGl1c1gsIGludCByYWRpdXNZLCBmbG9hdCByb3RhdGlv
bkFuZ2xlLCBmbG9hdCBmb3JjZSkgY29uc3Q7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShERVZJQ0Vf
T1JJRU5UQVRJT04pICYmIFBMQVRGT1JNKElPUykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmlk
bAkocmV2aXNpb24gMjE4NDYzKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAko
d29ya2luZyBjb3B5KQpAQCAtMTgwLDE4ICsxODAsNiBAQAogICAgIC8vIE5vbiBzdGFuZGFyZCAo
aHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL3JlZmVyZW5jZS93ZWJraXRqcy9kb2N1bWVudC8x
NjMzODYzLXdlYmtpdGdldG5hbWVkZmxvd3MpLgogICAgIFtDb25kaXRpb25hbD1DU1NfUkVHSU9O
U10gRE9NTmFtZWRGbG93Q29sbGVjdGlvbiB3ZWJraXRHZXROYW1lZEZsb3dzKCk7CiAKLSAgICAv
LyBGSVhNRTogVGhpcyBoYXMgYmVlbiBkcm9wcGVkIGZyb20gdGhlIHN0YW5kYXJkIG5vdyB0aGF0
IFRvdWNoIGhhcyBhIGNvbnN0cnVjdG9yLgotI2lmIGRlZmluZWQoRU5BQkxFX0lPU19UT1VDSF9F
VkVOVFMpICYmIEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTCi0jaW5jbHVkZSA8V2ViS2l0QWRkaXRp
b25zL0RvY3VtZW50SU9TLmlkbD4KLSNlbGlmIGRlZmluZWQoRU5BQkxFX1RPVUNIX0VWRU5UUykg
JiYgRU5BQkxFX1RPVUNIX0VWRU5UUwotICAgIFtOZXdPYmplY3RdIFRvdWNoIGNyZWF0ZVRvdWNo
KG9wdGlvbmFsIERPTVdpbmRvdz8gd2luZG93ID0gbnVsbCwgb3B0aW9uYWwgRXZlbnRUYXJnZXQ/
IHRhcmdldCA9IG51bGwsCi0gICAgICAgIG9wdGlvbmFsIGxvbmcgaWRlbnRpZmllciA9IDAsCi0g
ICAgICAgIG9wdGlvbmFsIGxvbmcgcGFnZVggPSAwLCBvcHRpb25hbCBsb25nIHBhZ2VZID0gMCwg
b3B0aW9uYWwgbG9uZyBzY3JlZW5YID0gMCwgb3B0aW9uYWwgbG9uZyBzY3JlZW5ZID0gMCwKLSAg
ICAgICAgb3B0aW9uYWwgbG9uZyB3ZWJraXRSYWRpdXNYID0gMCwgb3B0aW9uYWwgbG9uZyB3ZWJr
aXRSYWRpdXNZID0gMCwKLSAgICAgICAgb3B0aW9uYWwgdW5yZXN0cmljdGVkIGZsb2F0IHdlYmtp
dFJvdGF0aW9uQW5nbGUgPSBOYU4sIG9wdGlvbmFsIHVucmVzdHJpY3RlZCBmbG9hdCB3ZWJraXRG
b3JjZSA9IE5hTik7Ci0gICAgW05ld09iamVjdCwgQ3VzdG9tXSBUb3VjaExpc3QgY3JlYXRlVG91
Y2hMaXN0KFRvdWNoLi4uIHRvdWNoZXMpOwotI2VuZGlmCi0KIAogICAgIC8vIE9ic29sZXRlIGZl
YXR1cmVzIGZyb20gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvb2Jzb2xl
dGUuaHRtbAogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRUb3VjaC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50VG91Y2guY3BwCShub25leGlz
dGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFRvdWNoLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIkRvY3VtZW50VG91Y2guaCIKKworI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisK
KyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlRvdWNoLmgiCisjaW5jbHVkZSAiVG91
Y2hMaXN0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPFRvdWNoPiBEb2N1bWVudFRv
dWNoOjpjcmVhdGVUb3VjaChEb2N1bW5ldCYgZG9jdW1lbnQsIERPTVdpbmRvdyogd2luZG93LCBF
dmVudFRhcmdldCogdGFyZ2V0LCBpbnQgaWRlbnRpZmllciwgaW50IHBhZ2VYLCBpbnQgcGFnZVks
IGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHJhZGl1c1gsIGludCByYWRpdXNZLCBmbG9h
dCByb3RhdGlvbkFuZ2xlLCBmbG9hdCBmb3JjZSkKK3sKKyAgICAvLyBGSVhNRTogSXQncyBub3Qg
Y2xlYXIgZnJvbSB0aGUgZG9jdW1lbnRhdGlvbiBhdAorICAgIC8vIGh0dHA6Ly9kZXZlbG9wZXIu
YXBwbGUuY29tL2xpYnJhcnkvc2FmYXJpLyNkb2N1bWVudGF0aW9uL1VzZXJFeHBlcmllbmNlL1Jl
ZmVyZW5jZS9Eb2N1bWVudEFkZGl0aW9uc1JlZmVyZW5jZS9Eb2N1bWVudEFkZGl0aW9ucy9Eb2N1
bWVudEFkZGl0aW9ucy5odG1sCisgICAgLy8gd2hlbiB0aGlzIG1ldGhvZCBzaG91bGQgdGhyb3cg
YW5kIG5vciBpcyBpdCBieSBpbnNwZWN0aW9uIG9mIGlPUyBiZWhhdmlvci4gSXQgd291bGQgYmUg
bmljZSB0byB2ZXJpZnkgYW55IGNhc2VzIHdoZXJlIGl0IHRocm93cyB1bmRlciBpT1MKKyAgICAv
LyBhbmQgaW1wbGVtZW50IHRoZW0gaGVyZS4gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00NzgxOQorICAgIEZyYW1lKiBmcmFtZSA9IHdpbmRvdyA/IHdpbmRvdy0+
ZnJhbWUoKSA6IGRvY3VtZW50LmZyYW1lKCk7CisgICAgcmV0dXJuIFRvdWNoOjpjcmVhdGUoZnJh
bWUsIHRhcmdldCwgaWRlbnRpZmllciwgc2NyZWVuWCwgc2NyZWVuWSwgcGFnZVgsIHBhZ2VZLCBy
YWRpdXNYLCByYWRpdXNZLCByb3RhdGlvbkFuZ2xlLCBmb3JjZSk7Cit9CisKK1JlZjxUb3VjaExp
c3Q+IERvY3VtZW50VG91Y2g6OmNyZWF0ZVRvdWNoTGlzdChEb2N1bWVudCYsIFZlY3RvcjxzdGQ6
OnJlZmVyZW5jZV93cmFwcGVyPFRvdWNoPj4mJiB0b3VjaGVzKQoreworICAgIHJldHVybiBUb3Vj
aExpc3Q6OmNyZWF0ZShXVEZNb3ZlKHRvdWNoZXMpKTsKK30KKworfQorCisjZW5kaWYKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFRvdWNoLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50VG91Y2guaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnRUb3VjaC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDIgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRT
KQorI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9Eb2N1bWVudFRvdWNoSU9TLmg+CisjZWxpZiBF
TkFCTEUoVE9VQ0hfRVZFTlRTKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERvY3Vt
ZW50VG91Y2ggeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8VG91Y2g+IGNyZWF0ZVRvdWNoKERv
Y3VtZW50JiwgRE9NV2luZG93KiwgRXZlbnRUYXJnZXQqLCBpbnQgaWRlbnRpZmllciwgaW50IHBh
Z2VYLCBpbnQgcGFnZVksIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHJhZGl1c1gsIGlu
dCByYWRpdXNZLCBmbG9hdCByb3RhdGlvbkFuZ2xlLCBmbG9hdCBmb3JjZSk7CisgICAgc3RhdGlj
IFJlZjxUb3VjaExpc3Q+IGNyZWF0ZVRvdWNoTGlzdChEb2N1bWVudCYsIFZlY3RvcjxzdGQ6OnJl
ZmVyZW5jZV93cmFwcGVyPFRvdWNoPj4mJik7Cit9OworCit9CisKKyNlbmRpZgpJbmRleDogU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50VG91Y2guaWRsCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudFRvdWNoLmlkbAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnRUb3VjaC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzMSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAxMSwgMjAxNSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgU2FtdWVs
IFdlaW5pZyA8c2FtQHdlYmtpdC5vcmc+CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICog
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJ
TkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1UT1VDSF9FVkVOVFMK
K10gcGFydGlhbCBpbnRlcmZhY2UgRG9jdW1lbnQgeworICAgIC8vIEZJWE1FOiBUaGlzIGhhcyBi
ZWVuIGRyb3BwZWQgZnJvbSB0aGUgc3RhbmRhcmQgbm93IHRoYXQgVG91Y2ggaGFzIGEgY29uc3Ry
dWN0b3IuCisgICAgW05ld09iamVjdF0gVG91Y2ggY3JlYXRlVG91Y2gob3B0aW9uYWwgRE9NV2lu
ZG93PyB3aW5kb3cgPSBudWxsLCBvcHRpb25hbCBFdmVudFRhcmdldD8gdGFyZ2V0ID0gbnVsbCwK
KyAgICAgICAgb3B0aW9uYWwgbG9uZyBpZGVudGlmaWVyID0gMCwKKyAgICAgICAgb3B0aW9uYWwg
bG9uZyBwYWdlWCA9IDAsIG9wdGlvbmFsIGxvbmcgcGFnZVkgPSAwLCBvcHRpb25hbCBsb25nIHNj
cmVlblggPSAwLCBvcHRpb25hbCBsb25nIHNjcmVlblkgPSAwLAorICAgICAgICBvcHRpb25hbCBs
b25nIHdlYmtpdFJhZGl1c1ggPSAwLCBvcHRpb25hbCBsb25nIHdlYmtpdFJhZGl1c1kgPSAwLAor
ICAgICAgICBvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZmxvYXQgd2Via2l0Um90YXRpb25BbmdsZSA9
IE5hTiwgb3B0aW9uYWwgdW5yZXN0cmljdGVkIGZsb2F0IHdlYmtpdEZvcmNlID0gTmFOKTsKKyAg
ICBbTmV3T2JqZWN0XSBUb3VjaExpc3QgY3JlYXRlVG91Y2hMaXN0KFRvdWNoLi4uIHRvdWNoZXMp
OworfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Ub3VjaExpc3QuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9kb20vVG91Y2hMaXN0LmgJKHJldmlzaW9uIDIxODQ2MykKKysrIFNv
dXJjZS9XZWJDb3JlL2RvbS9Ub3VjaExpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsNiArNDAs
MTAgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVG91Y2hM
aXN0KTsKICAgICB9CisgICAgc3RhdGljIFJlZjxUb3VjaExpc3Q+IGNyZWF0ZShWZWN0b3I8c3Rk
OjpyZWZlcmVuY2Vfd3JhcHBlcjxUb3VjaD4+JiYgdG91Y2hlcykKKyAgICB7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFRvdWNoTGlzdChXVEZNb3ZlKHRvdWNoZXMpKSk7CisgICAgfQog
CiAgICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZXMuc2l6ZSgpOyB9
CiAKQEAgLTQ5LDcgKzUzLDE0IEBAIHB1YmxpYzoKICAgICB2b2lkIGFwcGVuZChSZWY8VG91Y2g+
JiYgdG91Y2gpIHsgbV92YWx1ZXMuYXBwZW5kKFdURk1vdmUodG91Y2gpKTsgfQogCiBwcml2YXRl
OgotICAgIFRvdWNoTGlzdCgpIHt9CisgICAgVG91Y2hMaXN0KCkgPSBkZWZhdWx0OworCisgICAg
ZXhwbGljaXQgVG91Y2hMaXN0KFZlY3RvcjxzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPFRvdWNoPj4m
JiB0b3VjaGVzKQorICAgIHsKKyAgICAgICAgbV92YWx1ZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0
eSh0b3VjaGVzLnNpemUoKSk7CisgICAgICAgIGZvciAoYXV0byYgdG91Y2ggOiB0b3VjaGVzKQor
ICAgICAgICAgICAgbV92YWx1ZXMudW5jaGVja2VkQXBwZW5kKHRvdWNoLmdldCgpKTsKKyAgICB9
CiAKICAgICBWZWN0b3I8UmVmPFRvdWNoPj4gbV92YWx1ZXM7CiB9OwpJbmRleDogU291cmNlL1dl
YkNvcmUvZG9tL2lvcy9Ub3VjaEV2ZW50cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvZG9tL2lvcy9Ub3VjaEV2ZW50cy5jcHAJKHJldmlzaW9uIDIxODQ2MykKKysrIFNvdXJjZS9X
ZWJDb3JlL2RvbS9pb3MvVG91Y2hFdmVudHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw5ICsy
OCwxMCBAQAogI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQogCiAjaW5jbHVkZSA8V2ViS2l0
QWRkaXRpb25zL0RvY3VtZW50SU9TLmNwcD4KKyNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvRG9j
dW1lbnRUb3VjaElPUy5jcHA+CiAjaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL0dlc3R1cmVFdmVu
dC5jcHA+Ci0jaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL1RvdWNoSU9TLmNwcD4KICNpbmNsdWRl
IDxXZWJLaXRBZGRpdGlvbnMvVG91Y2hFdmVudElPUy5jcHA+CisjaW5jbHVkZSA8V2ViS2l0QWRk
aXRpb25zL1RvdWNoSU9TLmNwcD4KICNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvVG91Y2hMaXN0
SU9TLmNwcD4KIAogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>313241</attachid>
            <date>2017-06-18 13:17:35 -0700</date>
            <delta_ts>2017-06-18 14:48:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173521-20170618131823.patch</filename>
            <type>text/plain</type>
            <size>22323</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxODQ2MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUxIEBACisyMDE3LTA2LTE3ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1dlYklETF0gTW92ZSBUb3VjaCByZWxh
dGVkIGJpbmRpbmdzIGluIERvY3VtZW50IHRvIHRoZWlyIG93biBJREwgZmlsZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczNTIxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmF0aGVyIHRoYW4gI2luY2x1
ZGluZyBpbiB0aGUgbWlkZGxlIG9mIGFuIElETCBmaWxlLCB0aGlzIG1vdmVzIHRoZSB0b3VjaCBy
ZWxhdGVkCisgICAgICAgIGJpbmRpbmdzIGluIERvY3VtZW50LmlkbCB0byBhIG5ldyBwYXJ0aWFs
IGludGVyZmFjZSBmb3IgRG9jdW1lbnQgaW4gRG9jdW1lbnRUb3VjaC5pZGwuCisgICAgICAgIFdo
aWxlIGhlcmUsIHJlbW92ZSB0aGUgY3VzdG9tIGJpbmRpbmcgZm9yIGNyZWF0ZVRvdWNoTGlzdC4K
KworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1h
a2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICBBZGQgbmV3IGZpbGVzLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3Rv
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RvY3VtZW50OjpjcmVhdGVUb3VjaExpc3QpOiBE
ZWxldGVkLgorICAgICAgICBSZW1vdmUgY3JlYXRlVG91Y2hMaXN0LiBJdCBjYW4gYmUgZ2VuZXJh
dGVkIG5vdy4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6Y3JlYXRlVG91Y2gpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5oOgorICAgICAgICBNb3ZlIHRvdWNoIHJlbGF0ZWQgYmluZGluZ3MgY29kZSB0byBEb2N1bWVu
dFRvdWNoLmgvY3BwLgorICAgICAgICBSZW1vdmUgRG9jdW1lbnRJT1NGb3J3YXJkIGFzIGl0IGlz
IG5vIGxvbmdlciBuZWVkZWQuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaWRsOgorICAgICAg
ICBNb3ZlIHRvdWNoIHJlbGF0ZWQgYmluZGluZ3MgdG8gRG9jdW1lbnRUb3VjaC5pZGwKKyAgICAg
ICAgCisgICAgICAgICogZG9tL0RvY3VtZW50VG91Y2guaDogQWRkZWQuCisgICAgICAgICogZG9t
L0RvY3VtZW50VG91Y2guY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VG91
Y2g6OmNyZWF0ZVRvdWNoKToKKyAgICAgICAgTW92ZWQgZnJvbSBEb2N1bWVudC4KKworICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnRUb3VjaDo6Y3JlYXRlVG91Y2hMaXN0KToKKyAgICAgICAgQWRk
ZWQgdG8gYWlkIGdlbmVyYXRlZCBiaW5kaW5nLgorCisgICAgICAgICogZG9tL0RvY3VtZW50VG91
Y2guaWRsOiBBZGRlZC4KKyAgICAgICAgTW92ZWQgb3BlcmF0aW9ucyBmcm9tIERvY3VtZW50LmgK
KworICAgICAgICAqIGRvbS9Ub3VjaExpc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlRvdWNoTGlz
dDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlRvdWNoTGlzdDo6VG91Y2hMaXN0KToKKyAg
ICAgICAgQWRkZWQgY3JlYXRlIHRoYXQgd29ya3Mgd2l0aCB0aGUgYmluZGluZ3MuCisKKyAgICAg
ICAgKiBkb20vaW9zL1RvdWNoRXZlbnRzLmNwcDoKKyAgICAgICAgQWRkIERvY3VtZW50VG91Y2hJ
T1MuaCBhbmQgc29ydC4KKwogMjAxNy0wNi0xOCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxl
LmNvbT4KIAogICAgICAgICBbTVNFXSBTZWVraW5nIG9yIGVudGVyaW5nIGZ1bGxzY3JlZW4gY2Fu
IGNhdXNlIGV4dHJlbWUgQ1BVIHVzYWdlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNp
b24gMjE4NDYzKQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTQ0MSw2ICs0NDEsNyBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAg
IGRvbS9Eb2N1bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzLmlkbAogICAgIGRvbS9Eb2N1bWVu
dEZyYWdtZW50LmlkbAogICAgIGRvbS9Eb2N1bWVudE9yU2hhZG93Um9vdC5pZGwKKyAgICBkb20v
RG9jdW1lbnRUb3VjaC5pZGwKICAgICBkb20vRG9jdW1lbnRUeXBlLmlkbAogICAgIGRvbS9FbGVt
ZW50LmlkbAogICAgIGRvbS9FcnJvckV2ZW50LmlkbApAQCAtMTQ3OCw2ICsxNDc5LDcgQEAgc2V0
KFdlYkNvcmVfU09VUkNFUwogICAgIGRvbS9Eb2N1bWVudE9yZGVyZWRNYXAuY3BwCiAgICAgZG9t
L0RvY3VtZW50UGFyc2VyLmNwcAogICAgIGRvbS9Eb2N1bWVudFNoYXJlZE9iamVjdFBvb2wuY3Bw
CisgICAgZG9tL0RvY3VtZW50VG91Y2guY3BwCiAgICAgZG9tL0RvY3VtZW50VHlwZS5jcHAKICAg
ICBkb20vRWxlbWVudC5jcHAKICAgICBkb20vRWxlbWVudERhdGEuY3BwCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDIxODQ2MykKKysrIFNvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTg5OCw2ICs4OTgsNyBAQCBl
bmRpZgogaWZlcSAoJChXVEZfUExBVEZPUk1fSU9TKSwgMSkKIGlmZXEgKCQoZmluZHN0cmluZyBF
TkFCTEVfSU9TX1RPVUNIX0VWRU5UUywkKEZFQVRVUkVfREVGSU5FUykpLCBFTkFCTEVfSU9TX1RP
VUNIX0VWRU5UUykKIEFERElUSU9OQUxfQklORElOR19JRExTICs9IFwKKyAgICBEb2N1bWVudFRv
dWNoLmlkbCBcCiAgICAgVG91Y2guaWRsIFwKICAgICBUb3VjaEV2ZW50LmlkbCBcCiAgICAgVG91
Y2hMaXN0LmlkbApAQCAtOTIyLDYgKzkyMyw3IEBAIGVuZGlmICMgTUFDT1MKIAogaWZuZXEgKCQo
V1RGX1BMQVRGT1JNX0lPUyksIDEpCiBKU19CSU5ESU5HX0lETFMgKz0gXAorICAgICQoV2ViQ29y
ZSkvZG9tL0RvY3VtZW50VG91Y2guaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9Ub3VjaC5pZGwg
XAogICAgICQoV2ViQ29yZSkvZG9tL1RvdWNoRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Rv
bS9Ub3VjaExpc3QuaWRsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMTg0NjMpCisrKyBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTI4
ODgsOCArMjg4OCw2IEBACiAJCTZDNEM5NkRGMUFENDQ4MzUwMDM2M0Y2NCAvKiBKU1JlYWRhYmxl
Qnl0ZVN0cmVhbUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDZDNEM5NkRCMUFENDQ4MzUwMDM2M0Y2NCAvKiBKU1JlYWRhYmxlQnl0ZVN0
cmVhbUNvbnRyb2xsZXIuaCAqLzsgfTsKIAkJNkM0Qzk2REYxQUQ0NDgzNTAwMzY1NjcyIC8qIEpT
UmVhZGFibGVTdHJlYW1CWU9CUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNkM0Qzk2REIxQUQ0NDgzNTAwMzY1NjcyIC8qIEpTUmVhZGFibGVT
dHJlYW1CWU9CUmVxdWVzdC5oICovOyB9OwogCQk2QzRDOTZERjFBRDQ0ODM1MDAzNjVBNTAgLyog
SlNSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QzRDOTZEQjFBRDQ0ODM1MDAzNjVBNTAgLyogSlNS
ZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmggKi87IH07Ci0JCTZBMzJEN0NFMUExNkQ4
QzAwMDQxMkYwQiAvKiBJbnNwZWN0b3JDYW52YXNBZ2VudC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QTRCNkQ2NjE5RDIyNUQ4MDA2RjExRDMgLyog
SW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwICovOyB9OwotCQk2QTRCNkQ2NTE5RDIyNTE5MDA2RjEx
RDMgLyogSW5zcGVjdG9yQ2FudmFzQWdlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDZBNEI2RDY0MTlEMjI1MTkwMDZGMTFEMyAvKiBJbnNwZWN0b3JD
YW52YXNBZ2VudC5oICovOyB9OwogCQk2QzYzODg5NUE5NkNDRUU1MEM4Qzk0NkMgLyogQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNkM2Mzg4OTNBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291
cmNlUmVxdWVzdEluaXRpYXRvcnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk2QzYzODg5NkE5NkNDRUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA2QzYzODg5NEE5NkNDRUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0SW5pdGlhdG9ycy5jcHAgKi87IH07CiAJCTZDRERFOEQwMTc3MEJCMjIwMDE2RTA3MiAv
KiBSZWdpb25PdmVyc2V0U3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDZDNzBBODE0MTc3MDdDNDkwMDlBNDQ2RSAvKiBSZWdpb25PdmVyc2V0U3Rh
dGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAt
MTA3NDMsOCArMTA3NDEsNiBAQAogCQk2QzRDOTZEQjFBRDQ0ODM1MDAzNjNGNjQgLyogSlNSZWFk
YWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTUmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk2QzRDOTZEQjFBRDQ0ODM1MDAzNjU2NzIgLyogSlNSZWFkYWJsZVN0cmVhbUJZ
T0JSZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUmVhZGFibGVT
dHJlYW1CWU9CUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QzRDOTZE
QjFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUmVhZGFibGVTdHJlYW1EZWZhdWx0
Q29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2QTRCNkQ2NDE5RDIy
NTE5MDA2RjExRDMgLyogSW5zcGVjdG9yQ2FudmFzQWdlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yQ2FudmFzQWdlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJNkE0QjZENjYxOUQyMjVEODAwNkYxMUQzIC8qIEluc3BlY3RvckNhbnZhc0Fn
ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvckNh
bnZhc0FnZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkM2Mzg4OTNBOTZD
Q0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRv
cnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkM2Mzg4OTRBOTZDQ0VFNTBDOEM5
NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QzcwQTgxNDE3NzA3QzQ5MDA5QTQ0
NkUgLyogUmVnaW9uT3ZlcnNldFN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlZ2lvbk92ZXJzZXRTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTEzODMsNiArMTEzNzksOSBAQAogCQk3Q0M3RTNENjE3MjA4QzBGMDAzQzUyNzcgLyogSUROU2Ny
aXB0V2hpdGVMaXN0LnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBJRE5TY3JpcHRXaGl0ZUxp
c3QudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0QwQkEwMjFCOEY3OUM5MDA1
Q0VCQkUgLyogQWN0aXZlRE9NQ2FsbGJhY2tNaWNyb3Rhc2suY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQWN0aXZlRE9NQ2FsbGJhY2tNaWNyb3Rhc2suY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0QwQkEwMzFCOEY3OUM5MDA1Q0VCQkUgLyogQWN0
aXZlRE9NQ2FsbGJhY2tNaWNyb3Rhc2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQWN0aXZlRE9NQ2FsbGJhY2tNaWNyb3Rhc2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJN0NEMkZCQ0IxRUY2MkMzNTAwNzAzNTE4IC8qIERvY3VtZW50VG91Y2guY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gRG9jdW1lbnRUb3VjaC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTdDRDJGQkNDMUVGNjJDMzUwMDcwMzUxOCAvKiBEb2N1bWVudFRvdWNoLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IERvY3VtZW50VG91Y2guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
N0NEMkZCQ0QxRUY2MkMzNTAwNzAzNTE4IC8qIERvY3VtZW50VG91Y2guaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERvY3Vt
ZW50VG91Y2guaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0Q0OTRDQTFBODZF
QjFEMDAwQTg3RUMgLyogUmVuZGVyQXR0YWNobWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSZW5kZXJBdHRhY2htZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJN0NENDk0Q0IxQTg2RUIxRDAwMEE4N0VDIC8qIFJlbmRlckF0dGFjaG1lbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyQXR0YWNobWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0U1OEQ0OTFERDY0QTVCMDAxMjg1NTIgLyog
U1ZHUG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHUG9pbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI1NzQwLDYgKzI1NzM5LDkgQEAKIAkJCQlB
RDZFNzFBQTE2Njg4OTlEMDAzMjBDMTMgLyogRG9jdW1lbnRTaGFyZWRPYmplY3RQb29sLmNwcCAq
LywKIAkJCQlBRDZFNzFBQjE2Njg4OTlEMDAzMjBDMTMgLyogRG9jdW1lbnRTaGFyZWRPYmplY3RQ
b29sLmggKi8sCiAJCQkJODZEOTgyRjYxMjVDMTU0MDAwQUQ5RTNEIC8qIERvY3VtZW50VGltaW5n
LmggKi8sCisJCQkJN0NEMkZCQ0IxRUY2MkMzNTAwNzAzNTE4IC8qIERvY3VtZW50VG91Y2guY3Bw
ICovLAorCQkJCTdDRDJGQkNDMUVGNjJDMzUwMDcwMzUxOCAvKiBEb2N1bWVudFRvdWNoLmggKi8s
CisJCQkJN0NEMkZCQ0QxRUY2MkMzNTAwNzAzNTE4IC8qIERvY3VtZW50VG91Y2guaWRsICovLAog
CQkJCUE4MTg1RjMyMDk3NjU3NjUwMDU4MjZEOSAvKiBEb2N1bWVudFR5cGUuY3BwICovLAogCQkJ
CUE4MTg1RjMxMDk3NjU3NjUwMDU4MjZEOSAvKiBEb2N1bWVudFR5cGUuaCAqLywKIAkJCQk5M0VF
QzFFODA5QzI4Nzc3MDBDNTE1RDEgLyogRG9jdW1lbnRUeXBlLmlkbCAqLywKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3BwCShyZXZpc2lv
biAyMTg0NjMpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9t
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEyLDI1ICsxMTIsNiBAQCBKU1ZhbHVlIHRvSlMoRXhl
Y1N0YXRlKiBzdGF0ZSwgSlNET01HbG9iCiAgICAgcmV0dXJuIHRvSlNOZXdseUNyZWF0ZWQoc3Rh
dGUsIGdsb2JhbE9iamVjdCwgUmVmPERvY3VtZW50Pihkb2N1bWVudCkpOwogfQogCi0jaWYgRU5B
QkxFKFRPVUNIX0VWRU5UUykKLUpTVmFsdWUgSlNEb2N1bWVudDo6Y3JlYXRlVG91Y2hMaXN0KEV4
ZWNTdGF0ZSYgc3RhdGUpCi17Ci0gICAgVk0mIHZtID0gc3RhdGUudm0oKTsKLSAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0KLSAgICBhdXRvIHRvdWNoTGlzdCA9IFRv
dWNoTGlzdDo6Y3JlYXRlKCk7Ci0KLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHN0YXRlLmFy
Z3VtZW50Q291bnQoKTsgKytpKSB7Ci0gICAgICAgIGF1dG8qIGl0ZW0gPSBKU1RvdWNoOjp0b1dy
YXBwZWQodm0sIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KGkpKTsKLSAgICAgICAgaWYgKCFpdGVt
KQotICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmRlY29kZSh0aHJvd0FyZ3VtZW50VHlwZUVy
cm9yKHN0YXRlLCBzY29wZSwgaSwgInRvdWNoZXMiLCAiRG9jdW1lbnQiLCAiY3JlYXRlVG91Y2hM
aXN0IiwgIlRvdWNoIikpOwotCi0gICAgICAgIHRvdWNoTGlzdC0+YXBwZW5kKCppdGVtKTsKLSAg
ICB9Ci0gICAgcmV0dXJuIHRvSlNOZXdseUNyZWF0ZWQoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwg
V1RGTW92ZSh0b3VjaExpc3QpKTsKLX0KLSNlbmRpZgotCiBKU1ZhbHVlIEpTRG9jdW1lbnQ6Omdl
dENTU0NhbnZhc0NvbnRleHQoSlNDOjpFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIFZNJiB2bSA9
IHN0YXRlLnZtKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDIxODQ2
MykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI1MSw3ICsyNTEsNiBAQAogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICNpbmNsdWRlICJU
b3VjaEV2ZW50LmgiCi0jaW5jbHVkZSAiVG91Y2hMaXN0LmgiCiAjZW5kaWYKIAogI2lmIEVOQUJM
RShWSURFT19UUkFDSykKQEAgLTYzMDIsMjAgKzYzMDEsNiBAQCB2b2lkIERvY3VtZW50OjpzZW5k
V2lsbFJldmVhbEVkZ2VFdmVudHNJCiAjZW5kaWYKIH0KIAotI2lmIEVOQUJMRShUT1VDSF9FVkVO
VFMpICYmICFQTEFURk9STShJT1MpCi0KLVJlZjxUb3VjaD4gRG9jdW1lbnQ6OmNyZWF0ZVRvdWNo
KERPTVdpbmRvdyogd2luZG93LCBFdmVudFRhcmdldCogdGFyZ2V0LCBpbnQgaWRlbnRpZmllciwg
aW50IHBhZ2VYLCBpbnQgcGFnZVksIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHJhZGl1
c1gsIGludCByYWRpdXNZLCBmbG9hdCByb3RhdGlvbkFuZ2xlLCBmbG9hdCBmb3JjZSkgY29uc3QK
LXsKLSAgICAvLyBGSVhNRTogSXQncyBub3QgY2xlYXIgZnJvbSB0aGUgZG9jdW1lbnRhdGlvbiBh
dAotICAgIC8vIGh0dHA6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2xpYnJhcnkvc2FmYXJpLyNkb2N1
bWVudGF0aW9uL1VzZXJFeHBlcmllbmNlL1JlZmVyZW5jZS9Eb2N1bWVudEFkZGl0aW9uc1JlZmVy
ZW5jZS9Eb2N1bWVudEFkZGl0aW9ucy9Eb2N1bWVudEFkZGl0aW9ucy5odG1sCi0gICAgLy8gd2hl
biB0aGlzIG1ldGhvZCBzaG91bGQgdGhyb3cgYW5kIG5vciBpcyBpdCBieSBpbnNwZWN0aW9uIG9m
IGlPUyBiZWhhdmlvci4gSXQgd291bGQgYmUgbmljZSB0byB2ZXJpZnkgYW55IGNhc2VzIHdoZXJl
IGl0IHRocm93cyB1bmRlciBpT1MKLSAgICAvLyBhbmQgaW1wbGVtZW50IHRoZW0gaGVyZS4gU2Vl
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzgxOQotICAgIEZyYW1l
KiBmcmFtZSA9IHdpbmRvdyA/IHdpbmRvdy0+ZnJhbWUoKSA6IHRoaXMtPmZyYW1lKCk7Ci0gICAg
cmV0dXJuIFRvdWNoOjpjcmVhdGUoZnJhbWUsIHRhcmdldCwgaWRlbnRpZmllciwgc2NyZWVuWCwg
c2NyZWVuWSwgcGFnZVgsIHBhZ2VZLCByYWRpdXNYLCByYWRpdXNZLCByb3RhdGlvbkFuZ2xlLCBm
b3JjZSk7Ci19Ci0KLSNlbmRpZgotCiB2b2lkIERvY3VtZW50Ojp3aGVlbEV2ZW50SGFuZGxlcnND
aGFuZ2VkKCkKIHsKICAgICBQYWdlKiBwYWdlID0gdGhpcy0+cGFnZSgpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgJKHJldmlzaW9uIDIxODQ2MykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODQsMTAgKzE4NCw2IEBAIGNsYXNzIFRyYW5zZm9y
bVNvdXJjZTsKIHN0cnVjdCBBbm5vdGF0ZWRSZWdpb25WYWx1ZTsKICNlbmRpZgogCi0jaWYgRU5B
QkxFKElPU19UT1VDSF9FVkVOVFMpCi0jaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL0RvY3VtZW50
SU9TRm9yd2FyZC5oPgotI2VuZGlmCi0KICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKSB8fCBFTkFC
TEUoSU9TX1RPVUNIX0VWRU5UUykKIGNsYXNzIFRvdWNoOwogY2xhc3MgVG91Y2hMaXN0OwpAQCAt
MTEzMCw4ICsxMTI2LDYgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMp
CiAjaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL0RvY3VtZW50SU9TLmg+Ci0jZWxpZiBFTkFCTEUo
VE9VQ0hfRVZFTlRTKQotICAgIFJlZjxUb3VjaD4gY3JlYXRlVG91Y2goRE9NV2luZG93KiwgRXZl
bnRUYXJnZXQqLCBpbnQgaWRlbnRpZmllciwgaW50IHBhZ2VYLCBpbnQgcGFnZVksIGludCBzY3Jl
ZW5YLCBpbnQgc2NyZWVuWSwgaW50IHJhZGl1c1gsIGludCByYWRpdXNZLCBmbG9hdCByb3RhdGlv
bkFuZ2xlLCBmbG9hdCBmb3JjZSkgY29uc3Q7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShERVZJQ0Vf
T1JJRU5UQVRJT04pICYmIFBMQVRGT1JNKElPUykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmlk
bAkocmV2aXNpb24gMjE4NDYzKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAko
d29ya2luZyBjb3B5KQpAQCAtMTgwLDE4ICsxODAsNiBAQAogICAgIC8vIE5vbiBzdGFuZGFyZCAo
aHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL3JlZmVyZW5jZS93ZWJraXRqcy9kb2N1bWVudC8x
NjMzODYzLXdlYmtpdGdldG5hbWVkZmxvd3MpLgogICAgIFtDb25kaXRpb25hbD1DU1NfUkVHSU9O
U10gRE9NTmFtZWRGbG93Q29sbGVjdGlvbiB3ZWJraXRHZXROYW1lZEZsb3dzKCk7CiAKLSAgICAv
LyBGSVhNRTogVGhpcyBoYXMgYmVlbiBkcm9wcGVkIGZyb20gdGhlIHN0YW5kYXJkIG5vdyB0aGF0
IFRvdWNoIGhhcyBhIGNvbnN0cnVjdG9yLgotI2lmIGRlZmluZWQoRU5BQkxFX0lPU19UT1VDSF9F
VkVOVFMpICYmIEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTCi0jaW5jbHVkZSA8V2ViS2l0QWRkaXRp
b25zL0RvY3VtZW50SU9TLmlkbD4KLSNlbGlmIGRlZmluZWQoRU5BQkxFX1RPVUNIX0VWRU5UUykg
JiYgRU5BQkxFX1RPVUNIX0VWRU5UUwotICAgIFtOZXdPYmplY3RdIFRvdWNoIGNyZWF0ZVRvdWNo
KG9wdGlvbmFsIERPTVdpbmRvdz8gd2luZG93ID0gbnVsbCwgb3B0aW9uYWwgRXZlbnRUYXJnZXQ/
IHRhcmdldCA9IG51bGwsCi0gICAgICAgIG9wdGlvbmFsIGxvbmcgaWRlbnRpZmllciA9IDAsCi0g
ICAgICAgIG9wdGlvbmFsIGxvbmcgcGFnZVggPSAwLCBvcHRpb25hbCBsb25nIHBhZ2VZID0gMCwg
b3B0aW9uYWwgbG9uZyBzY3JlZW5YID0gMCwgb3B0aW9uYWwgbG9uZyBzY3JlZW5ZID0gMCwKLSAg
ICAgICAgb3B0aW9uYWwgbG9uZyB3ZWJraXRSYWRpdXNYID0gMCwgb3B0aW9uYWwgbG9uZyB3ZWJr
aXRSYWRpdXNZID0gMCwKLSAgICAgICAgb3B0aW9uYWwgdW5yZXN0cmljdGVkIGZsb2F0IHdlYmtp
dFJvdGF0aW9uQW5nbGUgPSBOYU4sIG9wdGlvbmFsIHVucmVzdHJpY3RlZCBmbG9hdCB3ZWJraXRG
b3JjZSA9IE5hTik7Ci0gICAgW05ld09iamVjdCwgQ3VzdG9tXSBUb3VjaExpc3QgY3JlYXRlVG91
Y2hMaXN0KFRvdWNoLi4uIHRvdWNoZXMpOwotI2VuZGlmCi0KIAogICAgIC8vIE9ic29sZXRlIGZl
YXR1cmVzIGZyb20gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvb2Jzb2xl
dGUuaHRtbAogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRUb3VjaC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50VG91Y2guY3BwCShub25leGlz
dGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFRvdWNoLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIkRvY3VtZW50VG91Y2guaCIKKworI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisK
KyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlRvdWNoLmgiCisjaW5jbHVkZSAiVG91
Y2hMaXN0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPFRvdWNoPiBEb2N1bWVudFRv
dWNoOjpjcmVhdGVUb3VjaChEb2N1bWVudCYgZG9jdW1lbnQsIERPTVdpbmRvdyogd2luZG93LCBF
dmVudFRhcmdldCogdGFyZ2V0LCBpbnQgaWRlbnRpZmllciwgaW50IHBhZ2VYLCBpbnQgcGFnZVks
IGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHJhZGl1c1gsIGludCByYWRpdXNZLCBmbG9h
dCByb3RhdGlvbkFuZ2xlLCBmbG9hdCBmb3JjZSkKK3sKKyAgICAvLyBGSVhNRTogSXQncyBub3Qg
Y2xlYXIgZnJvbSB0aGUgZG9jdW1lbnRhdGlvbiBhdAorICAgIC8vIGh0dHA6Ly9kZXZlbG9wZXIu
YXBwbGUuY29tL2xpYnJhcnkvc2FmYXJpLyNkb2N1bWVudGF0aW9uL1VzZXJFeHBlcmllbmNlL1Jl
ZmVyZW5jZS9Eb2N1bWVudEFkZGl0aW9uc1JlZmVyZW5jZS9Eb2N1bWVudEFkZGl0aW9ucy9Eb2N1
bWVudEFkZGl0aW9ucy5odG1sCisgICAgLy8gd2hlbiB0aGlzIG1ldGhvZCBzaG91bGQgdGhyb3cg
YW5kIG5vciBpcyBpdCBieSBpbnNwZWN0aW9uIG9mIGlPUyBiZWhhdmlvci4gSXQgd291bGQgYmUg
bmljZSB0byB2ZXJpZnkgYW55IGNhc2VzIHdoZXJlIGl0IHRocm93cyB1bmRlciBpT1MKKyAgICAv
LyBhbmQgaW1wbGVtZW50IHRoZW0gaGVyZS4gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00NzgxOQorICAgIEZyYW1lKiBmcmFtZSA9IHdpbmRvdyA/IHdpbmRvdy0+
ZnJhbWUoKSA6IGRvY3VtZW50LmZyYW1lKCk7CisgICAgcmV0dXJuIFRvdWNoOjpjcmVhdGUoZnJh
bWUsIHRhcmdldCwgaWRlbnRpZmllciwgc2NyZWVuWCwgc2NyZWVuWSwgcGFnZVgsIHBhZ2VZLCBy
YWRpdXNYLCByYWRpdXNZLCByb3RhdGlvbkFuZ2xlLCBmb3JjZSk7Cit9CisKK1JlZjxUb3VjaExp
c3Q+IERvY3VtZW50VG91Y2g6OmNyZWF0ZVRvdWNoTGlzdChEb2N1bWVudCYsIFZlY3RvcjxzdGQ6
OnJlZmVyZW5jZV93cmFwcGVyPFRvdWNoPj4mJiB0b3VjaGVzKQoreworICAgIHJldHVybiBUb3Vj
aExpc3Q6OmNyZWF0ZShXVEZNb3ZlKHRvdWNoZXMpKTsKK30KKworfQorCisjZW5kaWYKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFRvdWNoLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50VG91Y2guaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnRUb3VjaC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDkgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRT
KQorI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9Eb2N1bWVudFRvdWNoSU9TLmg+CisjZWxpZiBF
TkFCTEUoVE9VQ0hfRVZFTlRTKQorCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBET01XaW5kb3c7CitjbGFzcyBEb2N1bWVudDsKK2NsYXNz
IEV2ZW50VGFyZ2V0OworY2xhc3MgVG91Y2g7CisKK2NsYXNzIERvY3VtZW50VG91Y2ggeworcHVi
bGljOgorICAgIHN0YXRpYyBSZWY8VG91Y2g+IGNyZWF0ZVRvdWNoKERvY3VtZW50JiwgRE9NV2lu
ZG93KiwgRXZlbnRUYXJnZXQqLCBpbnQgaWRlbnRpZmllciwgaW50IHBhZ2VYLCBpbnQgcGFnZVks
IGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHJhZGl1c1gsIGludCByYWRpdXNZLCBmbG9h
dCByb3RhdGlvbkFuZ2xlLCBmbG9hdCBmb3JjZSk7CisgICAgc3RhdGljIFJlZjxUb3VjaExpc3Q+
IGNyZWF0ZVRvdWNoTGlzdChEb2N1bWVudCYsIFZlY3RvcjxzdGQ6OnJlZmVyZW5jZV93cmFwcGVy
PFRvdWNoPj4mJik7Cit9OworCit9CisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50VG91Y2guaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudFRvdWNoLmlkbAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnRUb3VjaC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzMSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAwNiwgMjAwNywgMjAxMSwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgU2FtdWVsIFdlaW5pZyA8c2FtQHdl
YmtpdC5vcmc+CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNB
LgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1UT1VDSF9FVkVOVFMKK10gcGFydGlhbCBpbnRl
cmZhY2UgRG9jdW1lbnQgeworICAgIC8vIEZJWE1FOiBUaGlzIGhhcyBiZWVuIGRyb3BwZWQgZnJv
bSB0aGUgc3RhbmRhcmQgbm93IHRoYXQgVG91Y2ggaGFzIGEgY29uc3RydWN0b3IuCisgICAgW05l
d09iamVjdF0gVG91Y2ggY3JlYXRlVG91Y2gob3B0aW9uYWwgRE9NV2luZG93PyB3aW5kb3cgPSBu
dWxsLCBvcHRpb25hbCBFdmVudFRhcmdldD8gdGFyZ2V0ID0gbnVsbCwKKyAgICAgICAgb3B0aW9u
YWwgbG9uZyBpZGVudGlmaWVyID0gMCwKKyAgICAgICAgb3B0aW9uYWwgbG9uZyBwYWdlWCA9IDAs
IG9wdGlvbmFsIGxvbmcgcGFnZVkgPSAwLCBvcHRpb25hbCBsb25nIHNjcmVlblggPSAwLCBvcHRp
b25hbCBsb25nIHNjcmVlblkgPSAwLAorICAgICAgICBvcHRpb25hbCBsb25nIHdlYmtpdFJhZGl1
c1ggPSAwLCBvcHRpb25hbCBsb25nIHdlYmtpdFJhZGl1c1kgPSAwLAorICAgICAgICBvcHRpb25h
bCB1bnJlc3RyaWN0ZWQgZmxvYXQgd2Via2l0Um90YXRpb25BbmdsZSA9IE5hTiwgb3B0aW9uYWwg
dW5yZXN0cmljdGVkIGZsb2F0IHdlYmtpdEZvcmNlID0gTmFOKTsKKyAgICBbTmV3T2JqZWN0XSBU
b3VjaExpc3QgY3JlYXRlVG91Y2hMaXN0KFRvdWNoLi4uIHRvdWNoZXMpOworfTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2RvbS9Ub3VjaExpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9kb20vVG91Y2hMaXN0LmgJKHJldmlzaW9uIDIxODQ2MykKKysrIFNvdXJjZS9XZWJDb3JlL2Rv
bS9Ub3VjaExpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksNyBAQAogI2VsaWYgRU5B
QkxFKFRPVUNIX0VWRU5UUykKIAogI2luY2x1ZGUgIlRvdWNoLmgiCisjaW5jbHVkZSA8d3RmL1Jl
Zi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgogCkBAIC00MCw2ICs0MSwxMCBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBUb3VjaExpc3QpOwogICAgIH0KKyAgICBzdGF0aWMgUmVmPFRvdWNoTGlzdD4g
Y3JlYXRlKFZlY3RvcjxzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPFRvdWNoPj4mJiB0b3VjaGVzKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVG91Y2hMaXN0KFdURk1vdmUodG91
Y2hlcykpKTsKKyAgICB9CiAKICAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBt
X3ZhbHVlcy5zaXplKCk7IH0KIApAQCAtNDksNyArNTQsMTQgQEAgcHVibGljOgogICAgIHZvaWQg
YXBwZW5kKFJlZjxUb3VjaD4mJiB0b3VjaCkgeyBtX3ZhbHVlcy5hcHBlbmQoV1RGTW92ZSh0b3Vj
aCkpOyB9CiAKIHByaXZhdGU6Ci0gICAgVG91Y2hMaXN0KCkge30KKyAgICBUb3VjaExpc3QoKSA9
IGRlZmF1bHQ7CisKKyAgICBleHBsaWNpdCBUb3VjaExpc3QoVmVjdG9yPHN0ZDo6cmVmZXJlbmNl
X3dyYXBwZXI8VG91Y2g+PiYmIHRvdWNoZXMpCisgICAgeworICAgICAgICBtX3ZhbHVlcy5yZXNl
cnZlSW5pdGlhbENhcGFjaXR5KHRvdWNoZXMuc2l6ZSgpKTsKKyAgICAgICAgZm9yIChhdXRvJiB0
b3VjaCA6IHRvdWNoZXMpCisgICAgICAgICAgICBtX3ZhbHVlcy51bmNoZWNrZWRBcHBlbmQodG91
Y2guZ2V0KCkpOworICAgIH0KIAogICAgIFZlY3RvcjxSZWY8VG91Y2g+PiBtX3ZhbHVlczsKIH07
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vaW9zL1RvdWNoRXZlbnRzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vaW9zL1RvdWNoRXZlbnRzLmNwcAkocmV2aXNpb24gMjE4
NDYzKQorKysgU291cmNlL1dlYkNvcmUvZG9tL2lvcy9Ub3VjaEV2ZW50cy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI4LDkgKzI4LDEwIEBACiAjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCiAK
ICNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvRG9jdW1lbnRJT1MuY3BwPgorI2luY2x1ZGUgPFdl
YktpdEFkZGl0aW9ucy9Eb2N1bWVudFRvdWNoSU9TLmNwcD4KICNpbmNsdWRlIDxXZWJLaXRBZGRp
dGlvbnMvR2VzdHVyZUV2ZW50LmNwcD4KLSNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvVG91Y2hJ
T1MuY3BwPgogI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9Ub3VjaEV2ZW50SU9TLmNwcD4KKyNp
bmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvVG91Y2hJT1MuY3BwPgogI2luY2x1ZGUgPFdlYktpdEFk
ZGl0aW9ucy9Ub3VjaExpc3RJT1MuY3BwPgogCiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>313245</attachid>
            <date>2017-06-18 14:48:32 -0700</date>
            <delta_ts>2017-06-18 15:02:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173521-20170618144920.patch</filename>
            <type>text/plain</type>
            <size>22320</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxODQ2MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUxIEBACisyMDE3LTA2LTE3ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1dlYklETF0gTW92ZSBUb3VjaCByZWxh
dGVkIGJpbmRpbmdzIGluIERvY3VtZW50IHRvIHRoZWlyIG93biBJREwgZmlsZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczNTIxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmF0aGVyIHRoYW4gI2luY2x1
ZGluZyBpbiB0aGUgbWlkZGxlIG9mIGFuIElETCBmaWxlLCB0aGlzIG1vdmVzIHRoZSB0b3VjaCBy
ZWxhdGVkCisgICAgICAgIGJpbmRpbmdzIGluIERvY3VtZW50LmlkbCB0byBhIG5ldyBwYXJ0aWFs
IGludGVyZmFjZSBmb3IgRG9jdW1lbnQgaW4gRG9jdW1lbnRUb3VjaC5pZGwuCisgICAgICAgIFdo
aWxlIGhlcmUsIHJlbW92ZSB0aGUgY3VzdG9tIGJpbmRpbmcgZm9yIGNyZWF0ZVRvdWNoTGlzdC4K
KworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1h
a2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICBBZGQgbmV3IGZpbGVzLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3Rv
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RvY3VtZW50OjpjcmVhdGVUb3VjaExpc3QpOiBE
ZWxldGVkLgorICAgICAgICBSZW1vdmUgY3JlYXRlVG91Y2hMaXN0LiBJdCBjYW4gYmUgZ2VuZXJh
dGVkIG5vdy4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6Y3JlYXRlVG91Y2gpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5oOgorICAgICAgICBNb3ZlIHRvdWNoIHJlbGF0ZWQgYmluZGluZ3MgY29kZSB0byBEb2N1bWVu
dFRvdWNoLmgvY3BwLgorICAgICAgICBSZW1vdmUgRG9jdW1lbnRJT1NGb3J3YXJkIGFzIGl0IGlz
IG5vIGxvbmdlciBuZWVkZWQuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaWRsOgorICAgICAg
ICBNb3ZlIHRvdWNoIHJlbGF0ZWQgYmluZGluZ3MgdG8gRG9jdW1lbnRUb3VjaC5pZGwKKyAgICAg
ICAgCisgICAgICAgICogZG9tL0RvY3VtZW50VG91Y2guaDogQWRkZWQuCisgICAgICAgICogZG9t
L0RvY3VtZW50VG91Y2guY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VG91
Y2g6OmNyZWF0ZVRvdWNoKToKKyAgICAgICAgTW92ZWQgZnJvbSBEb2N1bWVudC4KKworICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnRUb3VjaDo6Y3JlYXRlVG91Y2hMaXN0KToKKyAgICAgICAgQWRk
ZWQgdG8gYWlkIGdlbmVyYXRlZCBiaW5kaW5nLgorCisgICAgICAgICogZG9tL0RvY3VtZW50VG91
Y2guaWRsOiBBZGRlZC4KKyAgICAgICAgTW92ZWQgb3BlcmF0aW9ucyBmcm9tIERvY3VtZW50LmgK
KworICAgICAgICAqIGRvbS9Ub3VjaExpc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlRvdWNoTGlz
dDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlRvdWNoTGlzdDo6VG91Y2hMaXN0KToKKyAg
ICAgICAgQWRkZWQgY3JlYXRlIHRoYXQgd29ya3Mgd2l0aCB0aGUgYmluZGluZ3MuCisKKyAgICAg
ICAgKiBkb20vaW9zL1RvdWNoRXZlbnRzLmNwcDoKKyAgICAgICAgQWRkIERvY3VtZW50VG91Y2hJ
T1MuaCBhbmQgc29ydC4KKwogMjAxNy0wNi0xOCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxl
LmNvbT4KIAogICAgICAgICBbTVNFXSBTZWVraW5nIG9yIGVudGVyaW5nIGZ1bGxzY3JlZW4gY2Fu
IGNhdXNlIGV4dHJlbWUgQ1BVIHVzYWdlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNp
b24gMjE4NDYzKQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTQ0MSw2ICs0NDEsNyBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAg
IGRvbS9Eb2N1bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzLmlkbAogICAgIGRvbS9Eb2N1bWVu
dEZyYWdtZW50LmlkbAogICAgIGRvbS9Eb2N1bWVudE9yU2hhZG93Um9vdC5pZGwKKyAgICBkb20v
RG9jdW1lbnRUb3VjaC5pZGwKICAgICBkb20vRG9jdW1lbnRUeXBlLmlkbAogICAgIGRvbS9FbGVt
ZW50LmlkbAogICAgIGRvbS9FcnJvckV2ZW50LmlkbApAQCAtMTQ3OCw2ICsxNDc5LDcgQEAgc2V0
KFdlYkNvcmVfU09VUkNFUwogICAgIGRvbS9Eb2N1bWVudE9yZGVyZWRNYXAuY3BwCiAgICAgZG9t
L0RvY3VtZW50UGFyc2VyLmNwcAogICAgIGRvbS9Eb2N1bWVudFNoYXJlZE9iamVjdFBvb2wuY3Bw
CisgICAgZG9tL0RvY3VtZW50VG91Y2guY3BwCiAgICAgZG9tL0RvY3VtZW50VHlwZS5jcHAKICAg
ICBkb20vRWxlbWVudC5jcHAKICAgICBkb20vRWxlbWVudERhdGEuY3BwCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDIxODQ2MykKKysrIFNvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTg5OCw2ICs4OTgsNyBAQCBl
bmRpZgogaWZlcSAoJChXVEZfUExBVEZPUk1fSU9TKSwgMSkKIGlmZXEgKCQoZmluZHN0cmluZyBF
TkFCTEVfSU9TX1RPVUNIX0VWRU5UUywkKEZFQVRVUkVfREVGSU5FUykpLCBFTkFCTEVfSU9TX1RP
VUNIX0VWRU5UUykKIEFERElUSU9OQUxfQklORElOR19JRExTICs9IFwKKyAgICBEb2N1bWVudFRv
dWNoLmlkbCBcCiAgICAgVG91Y2guaWRsIFwKICAgICBUb3VjaEV2ZW50LmlkbCBcCiAgICAgVG91
Y2hMaXN0LmlkbApAQCAtOTIyLDYgKzkyMyw3IEBAIGVuZGlmICMgTUFDT1MKIAogaWZuZXEgKCQo
V1RGX1BMQVRGT1JNX0lPUyksIDEpCiBKU19CSU5ESU5HX0lETFMgKz0gXAorICAgICQoV2ViQ29y
ZSkvZG9tL0RvY3VtZW50VG91Y2guaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9Ub3VjaC5pZGwg
XAogICAgICQoV2ViQ29yZSkvZG9tL1RvdWNoRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Rv
bS9Ub3VjaExpc3QuaWRsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMTg0NjMpCisrKyBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTI4
ODgsOCArMjg4OCw2IEBACiAJCTZDNEM5NkRGMUFENDQ4MzUwMDM2M0Y2NCAvKiBKU1JlYWRhYmxl
Qnl0ZVN0cmVhbUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDZDNEM5NkRCMUFENDQ4MzUwMDM2M0Y2NCAvKiBKU1JlYWRhYmxlQnl0ZVN0
cmVhbUNvbnRyb2xsZXIuaCAqLzsgfTsKIAkJNkM0Qzk2REYxQUQ0NDgzNTAwMzY1NjcyIC8qIEpT
UmVhZGFibGVTdHJlYW1CWU9CUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNkM0Qzk2REIxQUQ0NDgzNTAwMzY1NjcyIC8qIEpTUmVhZGFibGVT
dHJlYW1CWU9CUmVxdWVzdC5oICovOyB9OwogCQk2QzRDOTZERjFBRDQ0ODM1MDAzNjVBNTAgLyog
SlNSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QzRDOTZEQjFBRDQ0ODM1MDAzNjVBNTAgLyogSlNS
ZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmggKi87IH07Ci0JCTZBMzJEN0NFMUExNkQ4
QzAwMDQxMkYwQiAvKiBJbnNwZWN0b3JDYW52YXNBZ2VudC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QTRCNkQ2NjE5RDIyNUQ4MDA2RjExRDMgLyog
SW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwICovOyB9OwotCQk2QTRCNkQ2NTE5RDIyNTE5MDA2RjEx
RDMgLyogSW5zcGVjdG9yQ2FudmFzQWdlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDZBNEI2RDY0MTlEMjI1MTkwMDZGMTFEMyAvKiBJbnNwZWN0b3JD
YW52YXNBZ2VudC5oICovOyB9OwogCQk2QzYzODg5NUE5NkNDRUU1MEM4Qzk0NkMgLyogQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNkM2Mzg4OTNBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291
cmNlUmVxdWVzdEluaXRpYXRvcnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk2QzYzODg5NkE5NkNDRUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA2QzYzODg5NEE5NkNDRUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0SW5pdGlhdG9ycy5jcHAgKi87IH07CiAJCTZDRERFOEQwMTc3MEJCMjIwMDE2RTA3MiAv
KiBSZWdpb25PdmVyc2V0U3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDZDNzBBODE0MTc3MDdDNDkwMDlBNDQ2RSAvKiBSZWdpb25PdmVyc2V0U3Rh
dGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAt
MTA3NDMsOCArMTA3NDEsNiBAQAogCQk2QzRDOTZEQjFBRDQ0ODM1MDAzNjNGNjQgLyogSlNSZWFk
YWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTUmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk2QzRDOTZEQjFBRDQ0ODM1MDAzNjU2NzIgLyogSlNSZWFkYWJsZVN0cmVhbUJZ
T0JSZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUmVhZGFibGVT
dHJlYW1CWU9CUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QzRDOTZE
QjFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUmVhZGFibGVTdHJlYW1EZWZhdWx0
Q29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2QTRCNkQ2NDE5RDIy
NTE5MDA2RjExRDMgLyogSW5zcGVjdG9yQ2FudmFzQWdlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yQ2FudmFzQWdlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJNkE0QjZENjYxOUQyMjVEODAwNkYxMUQzIC8qIEluc3BlY3RvckNhbnZhc0Fn
ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvckNh
bnZhc0FnZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkM2Mzg4OTNBOTZD
Q0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRv
cnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkM2Mzg4OTRBOTZDQ0VFNTBDOEM5
NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QzcwQTgxNDE3NzA3QzQ5MDA5QTQ0
NkUgLyogUmVnaW9uT3ZlcnNldFN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlZ2lvbk92ZXJzZXRTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTEzODMsNiArMTEzNzksOSBAQAogCQk3Q0M3RTNENjE3MjA4QzBGMDAzQzUyNzcgLyogSUROU2Ny
aXB0V2hpdGVMaXN0LnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBJRE5TY3JpcHRXaGl0ZUxp
c3QudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0QwQkEwMjFCOEY3OUM5MDA1
Q0VCQkUgLyogQWN0aXZlRE9NQ2FsbGJhY2tNaWNyb3Rhc2suY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQWN0aXZlRE9NQ2FsbGJhY2tNaWNyb3Rhc2suY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0QwQkEwMzFCOEY3OUM5MDA1Q0VCQkUgLyogQWN0
aXZlRE9NQ2FsbGJhY2tNaWNyb3Rhc2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQWN0aXZlRE9NQ2FsbGJhY2tNaWNyb3Rhc2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJN0NEMkZCQ0IxRUY2MkMzNTAwNzAzNTE4IC8qIERvY3VtZW50VG91Y2guY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gRG9jdW1lbnRUb3VjaC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTdDRDJGQkNDMUVGNjJDMzUwMDcwMzUxOCAvKiBEb2N1bWVudFRvdWNoLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IERvY3VtZW50VG91Y2guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
N0NEMkZCQ0QxRUY2MkMzNTAwNzAzNTE4IC8qIERvY3VtZW50VG91Y2guaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERvY3Vt
ZW50VG91Y2guaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0Q0OTRDQTFBODZF
QjFEMDAwQTg3RUMgLyogUmVuZGVyQXR0YWNobWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSZW5kZXJBdHRhY2htZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJN0NENDk0Q0IxQTg2RUIxRDAwMEE4N0VDIC8qIFJlbmRlckF0dGFjaG1lbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyQXR0YWNobWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0U1OEQ0OTFERDY0QTVCMDAxMjg1NTIgLyog
U1ZHUG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHUG9pbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI1NzQwLDYgKzI1NzM5LDkgQEAKIAkJCQlB
RDZFNzFBQTE2Njg4OTlEMDAzMjBDMTMgLyogRG9jdW1lbnRTaGFyZWRPYmplY3RQb29sLmNwcCAq
LywKIAkJCQlBRDZFNzFBQjE2Njg4OTlEMDAzMjBDMTMgLyogRG9jdW1lbnRTaGFyZWRPYmplY3RQ
b29sLmggKi8sCiAJCQkJODZEOTgyRjYxMjVDMTU0MDAwQUQ5RTNEIC8qIERvY3VtZW50VGltaW5n
LmggKi8sCisJCQkJN0NEMkZCQ0IxRUY2MkMzNTAwNzAzNTE4IC8qIERvY3VtZW50VG91Y2guY3Bw
ICovLAorCQkJCTdDRDJGQkNDMUVGNjJDMzUwMDcwMzUxOCAvKiBEb2N1bWVudFRvdWNoLmggKi8s
CisJCQkJN0NEMkZCQ0QxRUY2MkMzNTAwNzAzNTE4IC8qIERvY3VtZW50VG91Y2guaWRsICovLAog
CQkJCUE4MTg1RjMyMDk3NjU3NjUwMDU4MjZEOSAvKiBEb2N1bWVudFR5cGUuY3BwICovLAogCQkJ
CUE4MTg1RjMxMDk3NjU3NjUwMDU4MjZEOSAvKiBEb2N1bWVudFR5cGUuaCAqLywKIAkJCQk5M0VF
QzFFODA5QzI4Nzc3MDBDNTE1RDEgLyogRG9jdW1lbnRUeXBlLmlkbCAqLywKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3BwCShyZXZpc2lv
biAyMTg0NjMpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9t
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEyLDI1ICsxMTIsNiBAQCBKU1ZhbHVlIHRvSlMoRXhl
Y1N0YXRlKiBzdGF0ZSwgSlNET01HbG9iCiAgICAgcmV0dXJuIHRvSlNOZXdseUNyZWF0ZWQoc3Rh
dGUsIGdsb2JhbE9iamVjdCwgUmVmPERvY3VtZW50Pihkb2N1bWVudCkpOwogfQogCi0jaWYgRU5B
QkxFKFRPVUNIX0VWRU5UUykKLUpTVmFsdWUgSlNEb2N1bWVudDo6Y3JlYXRlVG91Y2hMaXN0KEV4
ZWNTdGF0ZSYgc3RhdGUpCi17Ci0gICAgVk0mIHZtID0gc3RhdGUudm0oKTsKLSAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0KLSAgICBhdXRvIHRvdWNoTGlzdCA9IFRv
dWNoTGlzdDo6Y3JlYXRlKCk7Ci0KLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHN0YXRlLmFy
Z3VtZW50Q291bnQoKTsgKytpKSB7Ci0gICAgICAgIGF1dG8qIGl0ZW0gPSBKU1RvdWNoOjp0b1dy
YXBwZWQodm0sIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KGkpKTsKLSAgICAgICAgaWYgKCFpdGVt
KQotICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmRlY29kZSh0aHJvd0FyZ3VtZW50VHlwZUVy
cm9yKHN0YXRlLCBzY29wZSwgaSwgInRvdWNoZXMiLCAiRG9jdW1lbnQiLCAiY3JlYXRlVG91Y2hM
aXN0IiwgIlRvdWNoIikpOwotCi0gICAgICAgIHRvdWNoTGlzdC0+YXBwZW5kKCppdGVtKTsKLSAg
ICB9Ci0gICAgcmV0dXJuIHRvSlNOZXdseUNyZWF0ZWQoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwg
V1RGTW92ZSh0b3VjaExpc3QpKTsKLX0KLSNlbmRpZgotCiBKU1ZhbHVlIEpTRG9jdW1lbnQ6Omdl
dENTU0NhbnZhc0NvbnRleHQoSlNDOjpFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIFZNJiB2bSA9
IHN0YXRlLnZtKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDIxODQ2
MykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI1MSw3ICsyNTEsNiBAQAogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICNpbmNsdWRlICJU
b3VjaEV2ZW50LmgiCi0jaW5jbHVkZSAiVG91Y2hMaXN0LmgiCiAjZW5kaWYKIAogI2lmIEVOQUJM
RShWSURFT19UUkFDSykKQEAgLTYzMDIsMjAgKzYzMDEsNiBAQCB2b2lkIERvY3VtZW50OjpzZW5k
V2lsbFJldmVhbEVkZ2VFdmVudHNJCiAjZW5kaWYKIH0KIAotI2lmIEVOQUJMRShUT1VDSF9FVkVO
VFMpICYmICFQTEFURk9STShJT1MpCi0KLVJlZjxUb3VjaD4gRG9jdW1lbnQ6OmNyZWF0ZVRvdWNo
KERPTVdpbmRvdyogd2luZG93LCBFdmVudFRhcmdldCogdGFyZ2V0LCBpbnQgaWRlbnRpZmllciwg
aW50IHBhZ2VYLCBpbnQgcGFnZVksIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHJhZGl1
c1gsIGludCByYWRpdXNZLCBmbG9hdCByb3RhdGlvbkFuZ2xlLCBmbG9hdCBmb3JjZSkgY29uc3QK
LXsKLSAgICAvLyBGSVhNRTogSXQncyBub3QgY2xlYXIgZnJvbSB0aGUgZG9jdW1lbnRhdGlvbiBh
dAotICAgIC8vIGh0dHA6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2xpYnJhcnkvc2FmYXJpLyNkb2N1
bWVudGF0aW9uL1VzZXJFeHBlcmllbmNlL1JlZmVyZW5jZS9Eb2N1bWVudEFkZGl0aW9uc1JlZmVy
ZW5jZS9Eb2N1bWVudEFkZGl0aW9ucy9Eb2N1bWVudEFkZGl0aW9ucy5odG1sCi0gICAgLy8gd2hl
biB0aGlzIG1ldGhvZCBzaG91bGQgdGhyb3cgYW5kIG5vciBpcyBpdCBieSBpbnNwZWN0aW9uIG9m
IGlPUyBiZWhhdmlvci4gSXQgd291bGQgYmUgbmljZSB0byB2ZXJpZnkgYW55IGNhc2VzIHdoZXJl
IGl0IHRocm93cyB1bmRlciBpT1MKLSAgICAvLyBhbmQgaW1wbGVtZW50IHRoZW0gaGVyZS4gU2Vl
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzgxOQotICAgIEZyYW1l
KiBmcmFtZSA9IHdpbmRvdyA/IHdpbmRvdy0+ZnJhbWUoKSA6IHRoaXMtPmZyYW1lKCk7Ci0gICAg
cmV0dXJuIFRvdWNoOjpjcmVhdGUoZnJhbWUsIHRhcmdldCwgaWRlbnRpZmllciwgc2NyZWVuWCwg
c2NyZWVuWSwgcGFnZVgsIHBhZ2VZLCByYWRpdXNYLCByYWRpdXNZLCByb3RhdGlvbkFuZ2xlLCBm
b3JjZSk7Ci19Ci0KLSNlbmRpZgotCiB2b2lkIERvY3VtZW50Ojp3aGVlbEV2ZW50SGFuZGxlcnND
aGFuZ2VkKCkKIHsKICAgICBQYWdlKiBwYWdlID0gdGhpcy0+cGFnZSgpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgJKHJldmlzaW9uIDIxODQ2MykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODQsMTAgKzE4NCw2IEBAIGNsYXNzIFRyYW5zZm9y
bVNvdXJjZTsKIHN0cnVjdCBBbm5vdGF0ZWRSZWdpb25WYWx1ZTsKICNlbmRpZgogCi0jaWYgRU5B
QkxFKElPU19UT1VDSF9FVkVOVFMpCi0jaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL0RvY3VtZW50
SU9TRm9yd2FyZC5oPgotI2VuZGlmCi0KICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKSB8fCBFTkFC
TEUoSU9TX1RPVUNIX0VWRU5UUykKIGNsYXNzIFRvdWNoOwogY2xhc3MgVG91Y2hMaXN0OwpAQCAt
MTEzMCw4ICsxMTI2LDYgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMp
CiAjaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL0RvY3VtZW50SU9TLmg+Ci0jZWxpZiBFTkFCTEUo
VE9VQ0hfRVZFTlRTKQotICAgIFJlZjxUb3VjaD4gY3JlYXRlVG91Y2goRE9NV2luZG93KiwgRXZl
bnRUYXJnZXQqLCBpbnQgaWRlbnRpZmllciwgaW50IHBhZ2VYLCBpbnQgcGFnZVksIGludCBzY3Jl
ZW5YLCBpbnQgc2NyZWVuWSwgaW50IHJhZGl1c1gsIGludCByYWRpdXNZLCBmbG9hdCByb3RhdGlv
bkFuZ2xlLCBmbG9hdCBmb3JjZSkgY29uc3Q7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShERVZJQ0Vf
T1JJRU5UQVRJT04pICYmIFBMQVRGT1JNKElPUykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmlk
bAkocmV2aXNpb24gMjE4NDYzKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAko
d29ya2luZyBjb3B5KQpAQCAtMTgwLDE4ICsxODAsNiBAQAogICAgIC8vIE5vbiBzdGFuZGFyZCAo
aHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL3JlZmVyZW5jZS93ZWJraXRqcy9kb2N1bWVudC8x
NjMzODYzLXdlYmtpdGdldG5hbWVkZmxvd3MpLgogICAgIFtDb25kaXRpb25hbD1DU1NfUkVHSU9O
U10gRE9NTmFtZWRGbG93Q29sbGVjdGlvbiB3ZWJraXRHZXROYW1lZEZsb3dzKCk7CiAKLSAgICAv
LyBGSVhNRTogVGhpcyBoYXMgYmVlbiBkcm9wcGVkIGZyb20gdGhlIHN0YW5kYXJkIG5vdyB0aGF0
IFRvdWNoIGhhcyBhIGNvbnN0cnVjdG9yLgotI2lmIGRlZmluZWQoRU5BQkxFX0lPU19UT1VDSF9F
VkVOVFMpICYmIEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTCi0jaW5jbHVkZSA8V2ViS2l0QWRkaXRp
b25zL0RvY3VtZW50SU9TLmlkbD4KLSNlbGlmIGRlZmluZWQoRU5BQkxFX1RPVUNIX0VWRU5UUykg
JiYgRU5BQkxFX1RPVUNIX0VWRU5UUwotICAgIFtOZXdPYmplY3RdIFRvdWNoIGNyZWF0ZVRvdWNo
KG9wdGlvbmFsIERPTVdpbmRvdz8gd2luZG93ID0gbnVsbCwgb3B0aW9uYWwgRXZlbnRUYXJnZXQ/
IHRhcmdldCA9IG51bGwsCi0gICAgICAgIG9wdGlvbmFsIGxvbmcgaWRlbnRpZmllciA9IDAsCi0g
ICAgICAgIG9wdGlvbmFsIGxvbmcgcGFnZVggPSAwLCBvcHRpb25hbCBsb25nIHBhZ2VZID0gMCwg
b3B0aW9uYWwgbG9uZyBzY3JlZW5YID0gMCwgb3B0aW9uYWwgbG9uZyBzY3JlZW5ZID0gMCwKLSAg
ICAgICAgb3B0aW9uYWwgbG9uZyB3ZWJraXRSYWRpdXNYID0gMCwgb3B0aW9uYWwgbG9uZyB3ZWJr
aXRSYWRpdXNZID0gMCwKLSAgICAgICAgb3B0aW9uYWwgdW5yZXN0cmljdGVkIGZsb2F0IHdlYmtp
dFJvdGF0aW9uQW5nbGUgPSBOYU4sIG9wdGlvbmFsIHVucmVzdHJpY3RlZCBmbG9hdCB3ZWJraXRG
b3JjZSA9IE5hTik7Ci0gICAgW05ld09iamVjdCwgQ3VzdG9tXSBUb3VjaExpc3QgY3JlYXRlVG91
Y2hMaXN0KFRvdWNoLi4uIHRvdWNoZXMpOwotI2VuZGlmCi0KIAogICAgIC8vIE9ic29sZXRlIGZl
YXR1cmVzIGZyb20gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvb2Jzb2xl
dGUuaHRtbAogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRUb3VjaC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50VG91Y2guY3BwCShub25leGlz
dGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFRvdWNoLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIkRvY3VtZW50VG91Y2guaCIKKworI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisK
KyNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUg
IlRvdWNoLmgiCisjaW5jbHVkZSAiVG91Y2hMaXN0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworUmVmPFRvdWNoPiBEb2N1bWVudFRvdWNoOjpjcmVhdGVUb3VjaChEb2N1bWVudCYgZG9jdW1l
bnQsIERPTVdpbmRvdyogd2luZG93LCBFdmVudFRhcmdldCogdGFyZ2V0LCBpbnQgaWRlbnRpZmll
ciwgaW50IHBhZ2VYLCBpbnQgcGFnZVksIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHJh
ZGl1c1gsIGludCByYWRpdXNZLCBmbG9hdCByb3RhdGlvbkFuZ2xlLCBmbG9hdCBmb3JjZSkKK3sK
KyAgICAvLyBGSVhNRTogSXQncyBub3QgY2xlYXIgZnJvbSB0aGUgZG9jdW1lbnRhdGlvbiBhdAor
ICAgIC8vIGh0dHA6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2xpYnJhcnkvc2FmYXJpLyNkb2N1bWVu
dGF0aW9uL1VzZXJFeHBlcmllbmNlL1JlZmVyZW5jZS9Eb2N1bWVudEFkZGl0aW9uc1JlZmVyZW5j
ZS9Eb2N1bWVudEFkZGl0aW9ucy9Eb2N1bWVudEFkZGl0aW9ucy5odG1sCisgICAgLy8gd2hlbiB0
aGlzIG1ldGhvZCBzaG91bGQgdGhyb3cgYW5kIG5vciBpcyBpdCBieSBpbnNwZWN0aW9uIG9mIGlP
UyBiZWhhdmlvci4gSXQgd291bGQgYmUgbmljZSB0byB2ZXJpZnkgYW55IGNhc2VzIHdoZXJlIGl0
IHRocm93cyB1bmRlciBpT1MKKyAgICAvLyBhbmQgaW1wbGVtZW50IHRoZW0gaGVyZS4gU2VlIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzgxOQorICAgIHJldHVybiBU
b3VjaDo6Y3JlYXRlKHdpbmRvdyA/IHdpbmRvdy0+ZnJhbWUoKSA6IGRvY3VtZW50LmZyYW1lKCks
IHRhcmdldCwgaWRlbnRpZmllciwgc2NyZWVuWCwgc2NyZWVuWSwgcGFnZVgsIHBhZ2VZLCByYWRp
dXNYLCByYWRpdXNZLCByb3RhdGlvbkFuZ2xlLCBmb3JjZSk7Cit9CisKK1JlZjxUb3VjaExpc3Q+
IERvY3VtZW50VG91Y2g6OmNyZWF0ZVRvdWNoTGlzdChEb2N1bWVudCYsIFZlY3RvcjxzdGQ6OnJl
ZmVyZW5jZV93cmFwcGVyPFRvdWNoPj4mJiB0b3VjaGVzKQoreworICAgIHJldHVybiBUb3VjaExp
c3Q6OmNyZWF0ZShXVEZNb3ZlKHRvdWNoZXMpKTsKK30KKworfQorCisjZW5kaWYKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFRvdWNoLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50VG91Y2guaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnRUb3VjaC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDkgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQor
I2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9Eb2N1bWVudFRvdWNoSU9TLmg+CisjZWxpZiBFTkFC
TEUoVE9VQ0hfRVZFTlRTKQorCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBET01XaW5kb3c7CitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIEV2
ZW50VGFyZ2V0OworY2xhc3MgVG91Y2g7CisKK2NsYXNzIERvY3VtZW50VG91Y2ggeworcHVibGlj
OgorICAgIHN0YXRpYyBSZWY8VG91Y2g+IGNyZWF0ZVRvdWNoKERvY3VtZW50JiwgRE9NV2luZG93
KiwgRXZlbnRUYXJnZXQqLCBpbnQgaWRlbnRpZmllciwgaW50IHBhZ2VYLCBpbnQgcGFnZVksIGlu
dCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHJhZGl1c1gsIGludCByYWRpdXNZLCBmbG9hdCBy
b3RhdGlvbkFuZ2xlLCBmbG9hdCBmb3JjZSk7CisgICAgc3RhdGljIFJlZjxUb3VjaExpc3Q+IGNy
ZWF0ZVRvdWNoTGlzdChEb2N1bWVudCYsIFZlY3RvcjxzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPFRv
dWNoPj4mJik7Cit9OworCit9CisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50VG91Y2guaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dFRvdWNoLmlkbAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRU
b3VjaC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzMSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAwNiwgMjAwNywgMjAxMSwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgU2FtdWVsIFdlaW5pZyA8c2FtQHdlYmtp
dC5vcmc+CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgor
ICovCisKK1sKKyAgICBDb25kaXRpb25hbD1UT1VDSF9FVkVOVFMKK10gcGFydGlhbCBpbnRlcmZh
Y2UgRG9jdW1lbnQgeworICAgIC8vIEZJWE1FOiBUaGlzIGhhcyBiZWVuIGRyb3BwZWQgZnJvbSB0
aGUgc3RhbmRhcmQgbm93IHRoYXQgVG91Y2ggaGFzIGEgY29uc3RydWN0b3IuCisgICAgW05ld09i
amVjdF0gVG91Y2ggY3JlYXRlVG91Y2gob3B0aW9uYWwgRE9NV2luZG93PyB3aW5kb3cgPSBudWxs
LCBvcHRpb25hbCBFdmVudFRhcmdldD8gdGFyZ2V0ID0gbnVsbCwKKyAgICAgICAgb3B0aW9uYWwg
bG9uZyBpZGVudGlmaWVyID0gMCwKKyAgICAgICAgb3B0aW9uYWwgbG9uZyBwYWdlWCA9IDAsIG9w
dGlvbmFsIGxvbmcgcGFnZVkgPSAwLCBvcHRpb25hbCBsb25nIHNjcmVlblggPSAwLCBvcHRpb25h
bCBsb25nIHNjcmVlblkgPSAwLAorICAgICAgICBvcHRpb25hbCBsb25nIHdlYmtpdFJhZGl1c1gg
PSAwLCBvcHRpb25hbCBsb25nIHdlYmtpdFJhZGl1c1kgPSAwLAorICAgICAgICBvcHRpb25hbCB1
bnJlc3RyaWN0ZWQgZmxvYXQgd2Via2l0Um90YXRpb25BbmdsZSA9IE5hTiwgb3B0aW9uYWwgdW5y
ZXN0cmljdGVkIGZsb2F0IHdlYmtpdEZvcmNlID0gTmFOKTsKKyAgICBbTmV3T2JqZWN0XSBUb3Vj
aExpc3QgY3JlYXRlVG91Y2hMaXN0KFRvdWNoLi4uIHRvdWNoZXMpOworfTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2RvbS9Ub3VjaExpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9k
b20vVG91Y2hMaXN0LmgJKHJldmlzaW9uIDIxODQ2MykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9U
b3VjaExpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksNyBAQAogI2VsaWYgRU5BQkxF
KFRPVUNIX0VWRU5UUykKIAogI2luY2x1ZGUgIlRvdWNoLmgiCisjaW5jbHVkZSA8d3RmL1JlZi5o
PgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgog
CkBAIC00MCw2ICs0MSwxMCBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBUb3VjaExpc3QpOwogICAgIH0KKyAgICBzdGF0aWMgUmVmPFRvdWNoTGlzdD4gY3Jl
YXRlKFZlY3RvcjxzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPFRvdWNoPj4mJiB0b3VjaGVzKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVG91Y2hMaXN0KFdURk1vdmUodG91Y2hl
cykpKTsKKyAgICB9CiAKICAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX3Zh
bHVlcy5zaXplKCk7IH0KIApAQCAtNDksNyArNTQsMTQgQEAgcHVibGljOgogICAgIHZvaWQgYXBw
ZW5kKFJlZjxUb3VjaD4mJiB0b3VjaCkgeyBtX3ZhbHVlcy5hcHBlbmQoV1RGTW92ZSh0b3VjaCkp
OyB9CiAKIHByaXZhdGU6Ci0gICAgVG91Y2hMaXN0KCkge30KKyAgICBUb3VjaExpc3QoKSA9IGRl
ZmF1bHQ7CisKKyAgICBleHBsaWNpdCBUb3VjaExpc3QoVmVjdG9yPHN0ZDo6cmVmZXJlbmNlX3dy
YXBwZXI8VG91Y2g+PiYmIHRvdWNoZXMpCisgICAgeworICAgICAgICBtX3ZhbHVlcy5yZXNlcnZl
SW5pdGlhbENhcGFjaXR5KHRvdWNoZXMuc2l6ZSgpKTsKKyAgICAgICAgZm9yIChhdXRvJiB0b3Vj
aCA6IHRvdWNoZXMpCisgICAgICAgICAgICBtX3ZhbHVlcy51bmNoZWNrZWRBcHBlbmQodG91Y2gu
Z2V0KCkpOworICAgIH0KIAogICAgIFZlY3RvcjxSZWY8VG91Y2g+PiBtX3ZhbHVlczsKIH07Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vaW9zL1RvdWNoRXZlbnRzLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9kb20vaW9zL1RvdWNoRXZlbnRzLmNwcAkocmV2aXNpb24gMjE4NDYz
KQorKysgU291cmNlL1dlYkNvcmUvZG9tL2lvcy9Ub3VjaEV2ZW50cy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI4LDkgKzI4LDEwIEBACiAjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCiAKICNp
bmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvRG9jdW1lbnRJT1MuY3BwPgorI2luY2x1ZGUgPFdlYktp
dEFkZGl0aW9ucy9Eb2N1bWVudFRvdWNoSU9TLmNwcD4KICNpbmNsdWRlIDxXZWJLaXRBZGRpdGlv
bnMvR2VzdHVyZUV2ZW50LmNwcD4KLSNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvVG91Y2hJT1Mu
Y3BwPgogI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9Ub3VjaEV2ZW50SU9TLmNwcD4KKyNpbmNs
dWRlIDxXZWJLaXRBZGRpdGlvbnMvVG91Y2hJT1MuY3BwPgogI2luY2x1ZGUgPFdlYktpdEFkZGl0
aW9ucy9Ub3VjaExpc3RJT1MuY3BwPgogCiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>313246</attachid>
            <date>2017-06-18 15:02:31 -0700</date>
            <delta_ts>2017-06-18 15:19:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173521-20170618150319.patch</filename>
            <type>text/plain</type>
            <size>22342</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxODQ2MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUxIEBACisyMDE3LTA2LTE3ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1dlYklETF0gTW92ZSBUb3VjaCByZWxh
dGVkIGJpbmRpbmdzIGluIERvY3VtZW50IHRvIHRoZWlyIG93biBJREwgZmlsZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczNTIxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmF0aGVyIHRoYW4gI2luY2x1
ZGluZyBpbiB0aGUgbWlkZGxlIG9mIGFuIElETCBmaWxlLCB0aGlzIG1vdmVzIHRoZSB0b3VjaCBy
ZWxhdGVkCisgICAgICAgIGJpbmRpbmdzIGluIERvY3VtZW50LmlkbCB0byBhIG5ldyBwYXJ0aWFs
IGludGVyZmFjZSBmb3IgRG9jdW1lbnQgaW4gRG9jdW1lbnRUb3VjaC5pZGwuCisgICAgICAgIFdo
aWxlIGhlcmUsIHJlbW92ZSB0aGUgY3VzdG9tIGJpbmRpbmcgZm9yIGNyZWF0ZVRvdWNoTGlzdC4K
KworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1h
a2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICBBZGQgbmV3IGZpbGVzLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3Rv
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RvY3VtZW50OjpjcmVhdGVUb3VjaExpc3QpOiBE
ZWxldGVkLgorICAgICAgICBSZW1vdmUgY3JlYXRlVG91Y2hMaXN0LiBJdCBjYW4gYmUgZ2VuZXJh
dGVkIG5vdy4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6Y3JlYXRlVG91Y2gpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5oOgorICAgICAgICBNb3ZlIHRvdWNoIHJlbGF0ZWQgYmluZGluZ3MgY29kZSB0byBEb2N1bWVu
dFRvdWNoLmgvY3BwLgorICAgICAgICBSZW1vdmUgRG9jdW1lbnRJT1NGb3J3YXJkIGFzIGl0IGlz
IG5vIGxvbmdlciBuZWVkZWQuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaWRsOgorICAgICAg
ICBNb3ZlIHRvdWNoIHJlbGF0ZWQgYmluZGluZ3MgdG8gRG9jdW1lbnRUb3VjaC5pZGwKKyAgICAg
ICAgCisgICAgICAgICogZG9tL0RvY3VtZW50VG91Y2guaDogQWRkZWQuCisgICAgICAgICogZG9t
L0RvY3VtZW50VG91Y2guY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VG91
Y2g6OmNyZWF0ZVRvdWNoKToKKyAgICAgICAgTW92ZWQgZnJvbSBEb2N1bWVudC4KKworICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnRUb3VjaDo6Y3JlYXRlVG91Y2hMaXN0KToKKyAgICAgICAgQWRk
ZWQgdG8gYWlkIGdlbmVyYXRlZCBiaW5kaW5nLgorCisgICAgICAgICogZG9tL0RvY3VtZW50VG91
Y2guaWRsOiBBZGRlZC4KKyAgICAgICAgTW92ZWQgb3BlcmF0aW9ucyBmcm9tIERvY3VtZW50LmgK
KworICAgICAgICAqIGRvbS9Ub3VjaExpc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlRvdWNoTGlz
dDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlRvdWNoTGlzdDo6VG91Y2hMaXN0KToKKyAg
ICAgICAgQWRkZWQgY3JlYXRlIHRoYXQgd29ya3Mgd2l0aCB0aGUgYmluZGluZ3MuCisKKyAgICAg
ICAgKiBkb20vaW9zL1RvdWNoRXZlbnRzLmNwcDoKKyAgICAgICAgQWRkIERvY3VtZW50VG91Y2hJ
T1MuaCBhbmQgc29ydC4KKwogMjAxNy0wNi0xOCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxl
LmNvbT4KIAogICAgICAgICBbTVNFXSBTZWVraW5nIG9yIGVudGVyaW5nIGZ1bGxzY3JlZW4gY2Fu
IGNhdXNlIGV4dHJlbWUgQ1BVIHVzYWdlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNp
b24gMjE4NDYzKQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTQ0MSw2ICs0NDEsNyBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAg
IGRvbS9Eb2N1bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzLmlkbAogICAgIGRvbS9Eb2N1bWVu
dEZyYWdtZW50LmlkbAogICAgIGRvbS9Eb2N1bWVudE9yU2hhZG93Um9vdC5pZGwKKyAgICBkb20v
RG9jdW1lbnRUb3VjaC5pZGwKICAgICBkb20vRG9jdW1lbnRUeXBlLmlkbAogICAgIGRvbS9FbGVt
ZW50LmlkbAogICAgIGRvbS9FcnJvckV2ZW50LmlkbApAQCAtMTQ3OCw2ICsxNDc5LDcgQEAgc2V0
KFdlYkNvcmVfU09VUkNFUwogICAgIGRvbS9Eb2N1bWVudE9yZGVyZWRNYXAuY3BwCiAgICAgZG9t
L0RvY3VtZW50UGFyc2VyLmNwcAogICAgIGRvbS9Eb2N1bWVudFNoYXJlZE9iamVjdFBvb2wuY3Bw
CisgICAgZG9tL0RvY3VtZW50VG91Y2guY3BwCiAgICAgZG9tL0RvY3VtZW50VHlwZS5jcHAKICAg
ICBkb20vRWxlbWVudC5jcHAKICAgICBkb20vRWxlbWVudERhdGEuY3BwCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDIxODQ2MykKKysrIFNvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTg5OCw2ICs4OTgsNyBAQCBl
bmRpZgogaWZlcSAoJChXVEZfUExBVEZPUk1fSU9TKSwgMSkKIGlmZXEgKCQoZmluZHN0cmluZyBF
TkFCTEVfSU9TX1RPVUNIX0VWRU5UUywkKEZFQVRVUkVfREVGSU5FUykpLCBFTkFCTEVfSU9TX1RP
VUNIX0VWRU5UUykKIEFERElUSU9OQUxfQklORElOR19JRExTICs9IFwKKyAgICBEb2N1bWVudFRv
dWNoLmlkbCBcCiAgICAgVG91Y2guaWRsIFwKICAgICBUb3VjaEV2ZW50LmlkbCBcCiAgICAgVG91
Y2hMaXN0LmlkbApAQCAtOTIyLDYgKzkyMyw3IEBAIGVuZGlmICMgTUFDT1MKIAogaWZuZXEgKCQo
V1RGX1BMQVRGT1JNX0lPUyksIDEpCiBKU19CSU5ESU5HX0lETFMgKz0gXAorICAgICQoV2ViQ29y
ZSkvZG9tL0RvY3VtZW50VG91Y2guaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9Ub3VjaC5pZGwg
XAogICAgICQoV2ViQ29yZSkvZG9tL1RvdWNoRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Rv
bS9Ub3VjaExpc3QuaWRsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMTg0NjMpCisrKyBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTI4
ODgsOCArMjg4OCw2IEBACiAJCTZDNEM5NkRGMUFENDQ4MzUwMDM2M0Y2NCAvKiBKU1JlYWRhYmxl
Qnl0ZVN0cmVhbUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDZDNEM5NkRCMUFENDQ4MzUwMDM2M0Y2NCAvKiBKU1JlYWRhYmxlQnl0ZVN0
cmVhbUNvbnRyb2xsZXIuaCAqLzsgfTsKIAkJNkM0Qzk2REYxQUQ0NDgzNTAwMzY1NjcyIC8qIEpT
UmVhZGFibGVTdHJlYW1CWU9CUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNkM0Qzk2REIxQUQ0NDgzNTAwMzY1NjcyIC8qIEpTUmVhZGFibGVT
dHJlYW1CWU9CUmVxdWVzdC5oICovOyB9OwogCQk2QzRDOTZERjFBRDQ0ODM1MDAzNjVBNTAgLyog
SlNSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QzRDOTZEQjFBRDQ0ODM1MDAzNjVBNTAgLyogSlNS
ZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmggKi87IH07Ci0JCTZBMzJEN0NFMUExNkQ4
QzAwMDQxMkYwQiAvKiBJbnNwZWN0b3JDYW52YXNBZ2VudC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QTRCNkQ2NjE5RDIyNUQ4MDA2RjExRDMgLyog
SW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwICovOyB9OwotCQk2QTRCNkQ2NTE5RDIyNTE5MDA2RjEx
RDMgLyogSW5zcGVjdG9yQ2FudmFzQWdlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDZBNEI2RDY0MTlEMjI1MTkwMDZGMTFEMyAvKiBJbnNwZWN0b3JD
YW52YXNBZ2VudC5oICovOyB9OwogCQk2QzYzODg5NUE5NkNDRUU1MEM4Qzk0NkMgLyogQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNkM2Mzg4OTNBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291
cmNlUmVxdWVzdEluaXRpYXRvcnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk2QzYzODg5NkE5NkNDRUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA2QzYzODg5NEE5NkNDRUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0SW5pdGlhdG9ycy5jcHAgKi87IH07CiAJCTZDRERFOEQwMTc3MEJCMjIwMDE2RTA3MiAv
KiBSZWdpb25PdmVyc2V0U3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDZDNzBBODE0MTc3MDdDNDkwMDlBNDQ2RSAvKiBSZWdpb25PdmVyc2V0U3Rh
dGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAt
MTA3NDMsOCArMTA3NDEsNiBAQAogCQk2QzRDOTZEQjFBRDQ0ODM1MDAzNjNGNjQgLyogSlNSZWFk
YWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTUmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk2QzRDOTZEQjFBRDQ0ODM1MDAzNjU2NzIgLyogSlNSZWFkYWJsZVN0cmVhbUJZ
T0JSZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUmVhZGFibGVT
dHJlYW1CWU9CUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QzRDOTZE
QjFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUmVhZGFibGVTdHJlYW1EZWZhdWx0
Q29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2QTRCNkQ2NDE5RDIy
NTE5MDA2RjExRDMgLyogSW5zcGVjdG9yQ2FudmFzQWdlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yQ2FudmFzQWdlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJNkE0QjZENjYxOUQyMjVEODAwNkYxMUQzIC8qIEluc3BlY3RvckNhbnZhc0Fn
ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvckNh
bnZhc0FnZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkM2Mzg4OTNBOTZD
Q0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRv
cnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkM2Mzg4OTRBOTZDQ0VFNTBDOEM5
NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QzcwQTgxNDE3NzA3QzQ5MDA5QTQ0
NkUgLyogUmVnaW9uT3ZlcnNldFN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlZ2lvbk92ZXJzZXRTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTEzODMsNiArMTEzNzksOSBAQAogCQk3Q0M3RTNENjE3MjA4QzBGMDAzQzUyNzcgLyogSUROU2Ny
aXB0V2hpdGVMaXN0LnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBJRE5TY3JpcHRXaGl0ZUxp
c3QudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0QwQkEwMjFCOEY3OUM5MDA1
Q0VCQkUgLyogQWN0aXZlRE9NQ2FsbGJhY2tNaWNyb3Rhc2suY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQWN0aXZlRE9NQ2FsbGJhY2tNaWNyb3Rhc2suY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0QwQkEwMzFCOEY3OUM5MDA1Q0VCQkUgLyogQWN0
aXZlRE9NQ2FsbGJhY2tNaWNyb3Rhc2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQWN0aXZlRE9NQ2FsbGJhY2tNaWNyb3Rhc2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJN0NEMkZCQ0IxRUY2MkMzNTAwNzAzNTE4IC8qIERvY3VtZW50VG91Y2guY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gRG9jdW1lbnRUb3VjaC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTdDRDJGQkNDMUVGNjJDMzUwMDcwMzUxOCAvKiBEb2N1bWVudFRvdWNoLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IERvY3VtZW50VG91Y2guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
N0NEMkZCQ0QxRUY2MkMzNTAwNzAzNTE4IC8qIERvY3VtZW50VG91Y2guaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERvY3Vt
ZW50VG91Y2guaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0Q0OTRDQTFBODZF
QjFEMDAwQTg3RUMgLyogUmVuZGVyQXR0YWNobWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSZW5kZXJBdHRhY2htZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJN0NENDk0Q0IxQTg2RUIxRDAwMEE4N0VDIC8qIFJlbmRlckF0dGFjaG1lbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyQXR0YWNobWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0U1OEQ0OTFERDY0QTVCMDAxMjg1NTIgLyog
U1ZHUG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHUG9pbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI1NzQwLDYgKzI1NzM5LDkgQEAKIAkJCQlB
RDZFNzFBQTE2Njg4OTlEMDAzMjBDMTMgLyogRG9jdW1lbnRTaGFyZWRPYmplY3RQb29sLmNwcCAq
LywKIAkJCQlBRDZFNzFBQjE2Njg4OTlEMDAzMjBDMTMgLyogRG9jdW1lbnRTaGFyZWRPYmplY3RQ
b29sLmggKi8sCiAJCQkJODZEOTgyRjYxMjVDMTU0MDAwQUQ5RTNEIC8qIERvY3VtZW50VGltaW5n
LmggKi8sCisJCQkJN0NEMkZCQ0IxRUY2MkMzNTAwNzAzNTE4IC8qIERvY3VtZW50VG91Y2guY3Bw
ICovLAorCQkJCTdDRDJGQkNDMUVGNjJDMzUwMDcwMzUxOCAvKiBEb2N1bWVudFRvdWNoLmggKi8s
CisJCQkJN0NEMkZCQ0QxRUY2MkMzNTAwNzAzNTE4IC8qIERvY3VtZW50VG91Y2guaWRsICovLAog
CQkJCUE4MTg1RjMyMDk3NjU3NjUwMDU4MjZEOSAvKiBEb2N1bWVudFR5cGUuY3BwICovLAogCQkJ
CUE4MTg1RjMxMDk3NjU3NjUwMDU4MjZEOSAvKiBEb2N1bWVudFR5cGUuaCAqLywKIAkJCQk5M0VF
QzFFODA5QzI4Nzc3MDBDNTE1RDEgLyogRG9jdW1lbnRUeXBlLmlkbCAqLywKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3BwCShyZXZpc2lv
biAyMTg0NjMpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9t
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEyLDI1ICsxMTIsNiBAQCBKU1ZhbHVlIHRvSlMoRXhl
Y1N0YXRlKiBzdGF0ZSwgSlNET01HbG9iCiAgICAgcmV0dXJuIHRvSlNOZXdseUNyZWF0ZWQoc3Rh
dGUsIGdsb2JhbE9iamVjdCwgUmVmPERvY3VtZW50Pihkb2N1bWVudCkpOwogfQogCi0jaWYgRU5B
QkxFKFRPVUNIX0VWRU5UUykKLUpTVmFsdWUgSlNEb2N1bWVudDo6Y3JlYXRlVG91Y2hMaXN0KEV4
ZWNTdGF0ZSYgc3RhdGUpCi17Ci0gICAgVk0mIHZtID0gc3RhdGUudm0oKTsKLSAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0KLSAgICBhdXRvIHRvdWNoTGlzdCA9IFRv
dWNoTGlzdDo6Y3JlYXRlKCk7Ci0KLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHN0YXRlLmFy
Z3VtZW50Q291bnQoKTsgKytpKSB7Ci0gICAgICAgIGF1dG8qIGl0ZW0gPSBKU1RvdWNoOjp0b1dy
YXBwZWQodm0sIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KGkpKTsKLSAgICAgICAgaWYgKCFpdGVt
KQotICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmRlY29kZSh0aHJvd0FyZ3VtZW50VHlwZUVy
cm9yKHN0YXRlLCBzY29wZSwgaSwgInRvdWNoZXMiLCAiRG9jdW1lbnQiLCAiY3JlYXRlVG91Y2hM
aXN0IiwgIlRvdWNoIikpOwotCi0gICAgICAgIHRvdWNoTGlzdC0+YXBwZW5kKCppdGVtKTsKLSAg
ICB9Ci0gICAgcmV0dXJuIHRvSlNOZXdseUNyZWF0ZWQoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwg
V1RGTW92ZSh0b3VjaExpc3QpKTsKLX0KLSNlbmRpZgotCiBKU1ZhbHVlIEpTRG9jdW1lbnQ6Omdl
dENTU0NhbnZhc0NvbnRleHQoSlNDOjpFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIFZNJiB2bSA9
IHN0YXRlLnZtKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDIxODQ2
MykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI1MSw3ICsyNTEsNiBAQAogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICNpbmNsdWRlICJU
b3VjaEV2ZW50LmgiCi0jaW5jbHVkZSAiVG91Y2hMaXN0LmgiCiAjZW5kaWYKIAogI2lmIEVOQUJM
RShWSURFT19UUkFDSykKQEAgLTYzMDIsMjAgKzYzMDEsNiBAQCB2b2lkIERvY3VtZW50OjpzZW5k
V2lsbFJldmVhbEVkZ2VFdmVudHNJCiAjZW5kaWYKIH0KIAotI2lmIEVOQUJMRShUT1VDSF9FVkVO
VFMpICYmICFQTEFURk9STShJT1MpCi0KLVJlZjxUb3VjaD4gRG9jdW1lbnQ6OmNyZWF0ZVRvdWNo
KERPTVdpbmRvdyogd2luZG93LCBFdmVudFRhcmdldCogdGFyZ2V0LCBpbnQgaWRlbnRpZmllciwg
aW50IHBhZ2VYLCBpbnQgcGFnZVksIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHJhZGl1
c1gsIGludCByYWRpdXNZLCBmbG9hdCByb3RhdGlvbkFuZ2xlLCBmbG9hdCBmb3JjZSkgY29uc3QK
LXsKLSAgICAvLyBGSVhNRTogSXQncyBub3QgY2xlYXIgZnJvbSB0aGUgZG9jdW1lbnRhdGlvbiBh
dAotICAgIC8vIGh0dHA6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2xpYnJhcnkvc2FmYXJpLyNkb2N1
bWVudGF0aW9uL1VzZXJFeHBlcmllbmNlL1JlZmVyZW5jZS9Eb2N1bWVudEFkZGl0aW9uc1JlZmVy
ZW5jZS9Eb2N1bWVudEFkZGl0aW9ucy9Eb2N1bWVudEFkZGl0aW9ucy5odG1sCi0gICAgLy8gd2hl
biB0aGlzIG1ldGhvZCBzaG91bGQgdGhyb3cgYW5kIG5vciBpcyBpdCBieSBpbnNwZWN0aW9uIG9m
IGlPUyBiZWhhdmlvci4gSXQgd291bGQgYmUgbmljZSB0byB2ZXJpZnkgYW55IGNhc2VzIHdoZXJl
IGl0IHRocm93cyB1bmRlciBpT1MKLSAgICAvLyBhbmQgaW1wbGVtZW50IHRoZW0gaGVyZS4gU2Vl
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzgxOQotICAgIEZyYW1l
KiBmcmFtZSA9IHdpbmRvdyA/IHdpbmRvdy0+ZnJhbWUoKSA6IHRoaXMtPmZyYW1lKCk7Ci0gICAg
cmV0dXJuIFRvdWNoOjpjcmVhdGUoZnJhbWUsIHRhcmdldCwgaWRlbnRpZmllciwgc2NyZWVuWCwg
c2NyZWVuWSwgcGFnZVgsIHBhZ2VZLCByYWRpdXNYLCByYWRpdXNZLCByb3RhdGlvbkFuZ2xlLCBm
b3JjZSk7Ci19Ci0KLSNlbmRpZgotCiB2b2lkIERvY3VtZW50Ojp3aGVlbEV2ZW50SGFuZGxlcnND
aGFuZ2VkKCkKIHsKICAgICBQYWdlKiBwYWdlID0gdGhpcy0+cGFnZSgpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgJKHJldmlzaW9uIDIxODQ2MykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODQsMTAgKzE4NCw2IEBAIGNsYXNzIFRyYW5zZm9y
bVNvdXJjZTsKIHN0cnVjdCBBbm5vdGF0ZWRSZWdpb25WYWx1ZTsKICNlbmRpZgogCi0jaWYgRU5B
QkxFKElPU19UT1VDSF9FVkVOVFMpCi0jaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL0RvY3VtZW50
SU9TRm9yd2FyZC5oPgotI2VuZGlmCi0KICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKSB8fCBFTkFC
TEUoSU9TX1RPVUNIX0VWRU5UUykKIGNsYXNzIFRvdWNoOwogY2xhc3MgVG91Y2hMaXN0OwpAQCAt
MTEzMCw4ICsxMTI2LDYgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMp
CiAjaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL0RvY3VtZW50SU9TLmg+Ci0jZWxpZiBFTkFCTEUo
VE9VQ0hfRVZFTlRTKQotICAgIFJlZjxUb3VjaD4gY3JlYXRlVG91Y2goRE9NV2luZG93KiwgRXZl
bnRUYXJnZXQqLCBpbnQgaWRlbnRpZmllciwgaW50IHBhZ2VYLCBpbnQgcGFnZVksIGludCBzY3Jl
ZW5YLCBpbnQgc2NyZWVuWSwgaW50IHJhZGl1c1gsIGludCByYWRpdXNZLCBmbG9hdCByb3RhdGlv
bkFuZ2xlLCBmbG9hdCBmb3JjZSkgY29uc3Q7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShERVZJQ0Vf
T1JJRU5UQVRJT04pICYmIFBMQVRGT1JNKElPUykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmlk
bAkocmV2aXNpb24gMjE4NDYzKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAko
d29ya2luZyBjb3B5KQpAQCAtMTgwLDE4ICsxODAsNiBAQAogICAgIC8vIE5vbiBzdGFuZGFyZCAo
aHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL3JlZmVyZW5jZS93ZWJraXRqcy9kb2N1bWVudC8x
NjMzODYzLXdlYmtpdGdldG5hbWVkZmxvd3MpLgogICAgIFtDb25kaXRpb25hbD1DU1NfUkVHSU9O
U10gRE9NTmFtZWRGbG93Q29sbGVjdGlvbiB3ZWJraXRHZXROYW1lZEZsb3dzKCk7CiAKLSAgICAv
LyBGSVhNRTogVGhpcyBoYXMgYmVlbiBkcm9wcGVkIGZyb20gdGhlIHN0YW5kYXJkIG5vdyB0aGF0
IFRvdWNoIGhhcyBhIGNvbnN0cnVjdG9yLgotI2lmIGRlZmluZWQoRU5BQkxFX0lPU19UT1VDSF9F
VkVOVFMpICYmIEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTCi0jaW5jbHVkZSA8V2ViS2l0QWRkaXRp
b25zL0RvY3VtZW50SU9TLmlkbD4KLSNlbGlmIGRlZmluZWQoRU5BQkxFX1RPVUNIX0VWRU5UUykg
JiYgRU5BQkxFX1RPVUNIX0VWRU5UUwotICAgIFtOZXdPYmplY3RdIFRvdWNoIGNyZWF0ZVRvdWNo
KG9wdGlvbmFsIERPTVdpbmRvdz8gd2luZG93ID0gbnVsbCwgb3B0aW9uYWwgRXZlbnRUYXJnZXQ/
IHRhcmdldCA9IG51bGwsCi0gICAgICAgIG9wdGlvbmFsIGxvbmcgaWRlbnRpZmllciA9IDAsCi0g
ICAgICAgIG9wdGlvbmFsIGxvbmcgcGFnZVggPSAwLCBvcHRpb25hbCBsb25nIHBhZ2VZID0gMCwg
b3B0aW9uYWwgbG9uZyBzY3JlZW5YID0gMCwgb3B0aW9uYWwgbG9uZyBzY3JlZW5ZID0gMCwKLSAg
ICAgICAgb3B0aW9uYWwgbG9uZyB3ZWJraXRSYWRpdXNYID0gMCwgb3B0aW9uYWwgbG9uZyB3ZWJr
aXRSYWRpdXNZID0gMCwKLSAgICAgICAgb3B0aW9uYWwgdW5yZXN0cmljdGVkIGZsb2F0IHdlYmtp
dFJvdGF0aW9uQW5nbGUgPSBOYU4sIG9wdGlvbmFsIHVucmVzdHJpY3RlZCBmbG9hdCB3ZWJraXRG
b3JjZSA9IE5hTik7Ci0gICAgW05ld09iamVjdCwgQ3VzdG9tXSBUb3VjaExpc3QgY3JlYXRlVG91
Y2hMaXN0KFRvdWNoLi4uIHRvdWNoZXMpOwotI2VuZGlmCi0KIAogICAgIC8vIE9ic29sZXRlIGZl
YXR1cmVzIGZyb20gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvb2Jzb2xl
dGUuaHRtbAogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRUb3VjaC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50VG91Y2guY3BwCShub25leGlz
dGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFRvdWNoLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIkRvY3VtZW50VG91Y2guaCIKKworI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisK
KyNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUg
IlRvdWNoLmgiCisjaW5jbHVkZSAiVG91Y2hMaXN0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworUmVmPFRvdWNoPiBEb2N1bWVudFRvdWNoOjpjcmVhdGVUb3VjaChEb2N1bWVudCYgZG9jdW1l
bnQsIERPTVdpbmRvdyogd2luZG93LCBFdmVudFRhcmdldCogdGFyZ2V0LCBpbnQgaWRlbnRpZmll
ciwgaW50IHBhZ2VYLCBpbnQgcGFnZVksIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHJh
ZGl1c1gsIGludCByYWRpdXNZLCBmbG9hdCByb3RhdGlvbkFuZ2xlLCBmbG9hdCBmb3JjZSkKK3sK
KyAgICAvLyBGSVhNRTogSXQncyBub3QgY2xlYXIgZnJvbSB0aGUgZG9jdW1lbnRhdGlvbiBhdAor
ICAgIC8vIGh0dHA6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2xpYnJhcnkvc2FmYXJpLyNkb2N1bWVu
dGF0aW9uL1VzZXJFeHBlcmllbmNlL1JlZmVyZW5jZS9Eb2N1bWVudEFkZGl0aW9uc1JlZmVyZW5j
ZS9Eb2N1bWVudEFkZGl0aW9ucy9Eb2N1bWVudEFkZGl0aW9ucy5odG1sCisgICAgLy8gd2hlbiB0
aGlzIG1ldGhvZCBzaG91bGQgdGhyb3cgYW5kIG5vciBpcyBpdCBieSBpbnNwZWN0aW9uIG9mIGlP
UyBiZWhhdmlvci4gSXQgd291bGQgYmUgbmljZSB0byB2ZXJpZnkgYW55IGNhc2VzIHdoZXJlIGl0
IHRocm93cyB1bmRlciBpT1MKKyAgICAvLyBhbmQgaW1wbGVtZW50IHRoZW0gaGVyZS4gU2VlIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzgxOQorICAgIHJldHVybiBU
b3VjaDo6Y3JlYXRlKHdpbmRvdyA/IHdpbmRvdy0+ZnJhbWUoKSA6IGRvY3VtZW50LmZyYW1lKCks
IHRhcmdldCwgaWRlbnRpZmllciwgc2NyZWVuWCwgc2NyZWVuWSwgcGFnZVgsIHBhZ2VZLCByYWRp
dXNYLCByYWRpdXNZLCByb3RhdGlvbkFuZ2xlLCBmb3JjZSk7Cit9CisKK1JlZjxUb3VjaExpc3Q+
IERvY3VtZW50VG91Y2g6OmNyZWF0ZVRvdWNoTGlzdChEb2N1bWVudCYsIFZlY3RvcjxzdGQ6OnJl
ZmVyZW5jZV93cmFwcGVyPFRvdWNoPj4mJiB0b3VjaGVzKQoreworICAgIHJldHVybiBUb3VjaExp
c3Q6OmNyZWF0ZShXVEZNb3ZlKHRvdWNoZXMpKTsKK30KKworfQorCisjZW5kaWYKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFRvdWNoLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50VG91Y2guaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnRUb3VjaC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQor
I2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9Eb2N1bWVudFRvdWNoSU9TLmg+CisjZWxpZiBFTkFC
TEUoVE9VQ0hfRVZFTlRTKQorCisjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KKyNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRE9NV2luZG93OworY2xh
c3MgRG9jdW1lbnQ7CitjbGFzcyBFdmVudFRhcmdldDsKK2NsYXNzIFRvdWNoOworCitjbGFzcyBE
b2N1bWVudFRvdWNoIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFRvdWNoPiBjcmVhdGVUb3Vj
aChEb2N1bWVudCYsIERPTVdpbmRvdyosIEV2ZW50VGFyZ2V0KiwgaW50IGlkZW50aWZpZXIsIGlu
dCBwYWdlWCwgaW50IHBhZ2VZLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCByYWRpdXNY
LCBpbnQgcmFkaXVzWSwgZmxvYXQgcm90YXRpb25BbmdsZSwgZmxvYXQgZm9yY2UpOworICAgIHN0
YXRpYyBSZWY8VG91Y2hMaXN0PiBjcmVhdGVUb3VjaExpc3QoRG9jdW1lbnQmLCBWZWN0b3I8c3Rk
OjpyZWZlcmVuY2Vfd3JhcHBlcjxUb3VjaD4+JiYpOworfTsKKworfQorCisjZW5kaWYKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFRvdWNoLmlkbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnRUb3VjaC5pZGwJKG5vbmV4aXN0ZW50KQorKysgU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50VG91Y2guaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMTEsIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IFNh
bXVlbCBXZWluaWcgPHNhbUB3ZWJraXQub3JnPgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
KyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBD
T1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9VE9VQ0hfRVZF
TlRTCitdIHBhcnRpYWwgaW50ZXJmYWNlIERvY3VtZW50IHsKKyAgICAvLyBGSVhNRTogVGhpcyBo
YXMgYmVlbiBkcm9wcGVkIGZyb20gdGhlIHN0YW5kYXJkIG5vdyB0aGF0IFRvdWNoIGhhcyBhIGNv
bnN0cnVjdG9yLgorICAgIFtOZXdPYmplY3RdIFRvdWNoIGNyZWF0ZVRvdWNoKG9wdGlvbmFsIERP
TVdpbmRvdz8gd2luZG93ID0gbnVsbCwgb3B0aW9uYWwgRXZlbnRUYXJnZXQ/IHRhcmdldCA9IG51
bGwsCisgICAgICAgIG9wdGlvbmFsIGxvbmcgaWRlbnRpZmllciA9IDAsCisgICAgICAgIG9wdGlv
bmFsIGxvbmcgcGFnZVggPSAwLCBvcHRpb25hbCBsb25nIHBhZ2VZID0gMCwgb3B0aW9uYWwgbG9u
ZyBzY3JlZW5YID0gMCwgb3B0aW9uYWwgbG9uZyBzY3JlZW5ZID0gMCwKKyAgICAgICAgb3B0aW9u
YWwgbG9uZyB3ZWJraXRSYWRpdXNYID0gMCwgb3B0aW9uYWwgbG9uZyB3ZWJraXRSYWRpdXNZID0g
MCwKKyAgICAgICAgb3B0aW9uYWwgdW5yZXN0cmljdGVkIGZsb2F0IHdlYmtpdFJvdGF0aW9uQW5n
bGUgPSBOYU4sIG9wdGlvbmFsIHVucmVzdHJpY3RlZCBmbG9hdCB3ZWJraXRGb3JjZSA9IE5hTik7
CisgICAgW05ld09iamVjdF0gVG91Y2hMaXN0IGNyZWF0ZVRvdWNoTGlzdChUb3VjaC4uLiB0b3Vj
aGVzKTsKK307CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vVG91Y2hMaXN0LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1RvdWNoTGlzdC5oCShyZXZpc2lvbiAyMTg0NjMpCisr
KyBTb3VyY2UvV2ViQ29yZS9kb20vVG91Y2hMaXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYg
KzI5LDcgQEAKICNlbGlmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAKICNpbmNsdWRlICJUb3VjaC5o
IgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIApAQCAtNDAsNiArNDEsMTAgQEAgcHVibGljOgogICAgIHsK
ICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVG91Y2hMaXN0KTsKICAgICB9CisgICAgc3Rh
dGljIFJlZjxUb3VjaExpc3Q+IGNyZWF0ZShWZWN0b3I8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxU
b3VjaD4+JiYgdG91Y2hlcykKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRv
dWNoTGlzdChXVEZNb3ZlKHRvdWNoZXMpKSk7CisgICAgfQogCiAgICAgdW5zaWduZWQgbGVuZ3Ro
KCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZXMuc2l6ZSgpOyB9CiAKQEAgLTQ5LDcgKzU0LDE0IEBA
IHB1YmxpYzoKICAgICB2b2lkIGFwcGVuZChSZWY8VG91Y2g+JiYgdG91Y2gpIHsgbV92YWx1ZXMu
YXBwZW5kKFdURk1vdmUodG91Y2gpKTsgfQogCiBwcml2YXRlOgotICAgIFRvdWNoTGlzdCgpIHt9
CisgICAgVG91Y2hMaXN0KCkgPSBkZWZhdWx0OworCisgICAgZXhwbGljaXQgVG91Y2hMaXN0KFZl
Y3RvcjxzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPFRvdWNoPj4mJiB0b3VjaGVzKQorICAgIHsKKyAg
ICAgICAgbV92YWx1ZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh0b3VjaGVzLnNpemUoKSk7Cisg
ICAgICAgIGZvciAoYXV0byYgdG91Y2ggOiB0b3VjaGVzKQorICAgICAgICAgICAgbV92YWx1ZXMu
dW5jaGVja2VkQXBwZW5kKHRvdWNoLmdldCgpKTsKKyAgICB9CiAKICAgICBWZWN0b3I8UmVmPFRv
dWNoPj4gbV92YWx1ZXM7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL2lvcy9Ub3VjaEV2
ZW50cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL2lvcy9Ub3VjaEV2ZW50
cy5jcHAJKHJldmlzaW9uIDIxODQ2MykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9pb3MvVG91Y2hF
dmVudHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw5ICsyOCwxMCBAQAogI2lmIEVOQUJMRShJ
T1NfVE9VQ0hfRVZFTlRTKQogCiAjaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL0RvY3VtZW50SU9T
LmNwcD4KKyNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvRG9jdW1lbnRUb3VjaElPUy5jcHA+CiAj
aW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL0dlc3R1cmVFdmVudC5jcHA+Ci0jaW5jbHVkZSA8V2Vi
S2l0QWRkaXRpb25zL1RvdWNoSU9TLmNwcD4KICNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvVG91
Y2hFdmVudElPUy5jcHA+CisjaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL1RvdWNoSU9TLmNwcD4K
ICNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvVG91Y2hMaXN0SU9TLmNwcD4KIAogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>313247</attachid>
            <date>2017-06-18 15:19:21 -0700</date>
            <delta_ts>2017-06-19 09:00:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173521-20170618152009.patch</filename>
            <type>text/plain</type>
            <size>22360</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxODQ2MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUxIEBACisyMDE3LTA2LTE3ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1dlYklETF0gTW92ZSBUb3VjaCByZWxh
dGVkIGJpbmRpbmdzIGluIERvY3VtZW50IHRvIHRoZWlyIG93biBJREwgZmlsZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczNTIxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmF0aGVyIHRoYW4gI2luY2x1
ZGluZyBpbiB0aGUgbWlkZGxlIG9mIGFuIElETCBmaWxlLCB0aGlzIG1vdmVzIHRoZSB0b3VjaCBy
ZWxhdGVkCisgICAgICAgIGJpbmRpbmdzIGluIERvY3VtZW50LmlkbCB0byBhIG5ldyBwYXJ0aWFs
IGludGVyZmFjZSBmb3IgRG9jdW1lbnQgaW4gRG9jdW1lbnRUb3VjaC5pZGwuCisgICAgICAgIFdo
aWxlIGhlcmUsIHJlbW92ZSB0aGUgY3VzdG9tIGJpbmRpbmcgZm9yIGNyZWF0ZVRvdWNoTGlzdC4K
KworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1h
a2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICBBZGQgbmV3IGZpbGVzLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3Rv
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RvY3VtZW50OjpjcmVhdGVUb3VjaExpc3QpOiBE
ZWxldGVkLgorICAgICAgICBSZW1vdmUgY3JlYXRlVG91Y2hMaXN0LiBJdCBjYW4gYmUgZ2VuZXJh
dGVkIG5vdy4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6Y3JlYXRlVG91Y2gpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5oOgorICAgICAgICBNb3ZlIHRvdWNoIHJlbGF0ZWQgYmluZGluZ3MgY29kZSB0byBEb2N1bWVu
dFRvdWNoLmgvY3BwLgorICAgICAgICBSZW1vdmUgRG9jdW1lbnRJT1NGb3J3YXJkIGFzIGl0IGlz
IG5vIGxvbmdlciBuZWVkZWQuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaWRsOgorICAgICAg
ICBNb3ZlIHRvdWNoIHJlbGF0ZWQgYmluZGluZ3MgdG8gRG9jdW1lbnRUb3VjaC5pZGwKKyAgICAg
ICAgCisgICAgICAgICogZG9tL0RvY3VtZW50VG91Y2guaDogQWRkZWQuCisgICAgICAgICogZG9t
L0RvY3VtZW50VG91Y2guY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VG91
Y2g6OmNyZWF0ZVRvdWNoKToKKyAgICAgICAgTW92ZWQgZnJvbSBEb2N1bWVudC4KKworICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnRUb3VjaDo6Y3JlYXRlVG91Y2hMaXN0KToKKyAgICAgICAgQWRk
ZWQgdG8gYWlkIGdlbmVyYXRlZCBiaW5kaW5nLgorCisgICAgICAgICogZG9tL0RvY3VtZW50VG91
Y2guaWRsOiBBZGRlZC4KKyAgICAgICAgTW92ZWQgb3BlcmF0aW9ucyBmcm9tIERvY3VtZW50LmgK
KworICAgICAgICAqIGRvbS9Ub3VjaExpc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlRvdWNoTGlz
dDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlRvdWNoTGlzdDo6VG91Y2hMaXN0KToKKyAg
ICAgICAgQWRkZWQgY3JlYXRlIHRoYXQgd29ya3Mgd2l0aCB0aGUgYmluZGluZ3MuCisKKyAgICAg
ICAgKiBkb20vaW9zL1RvdWNoRXZlbnRzLmNwcDoKKyAgICAgICAgQWRkIERvY3VtZW50VG91Y2hJ
T1MuaCBhbmQgc29ydC4KKwogMjAxNy0wNi0xOCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxl
LmNvbT4KIAogICAgICAgICBbTVNFXSBTZWVraW5nIG9yIGVudGVyaW5nIGZ1bGxzY3JlZW4gY2Fu
IGNhdXNlIGV4dHJlbWUgQ1BVIHVzYWdlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNp
b24gMjE4NDYzKQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTQ0MSw2ICs0NDEsNyBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAg
IGRvbS9Eb2N1bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzLmlkbAogICAgIGRvbS9Eb2N1bWVu
dEZyYWdtZW50LmlkbAogICAgIGRvbS9Eb2N1bWVudE9yU2hhZG93Um9vdC5pZGwKKyAgICBkb20v
RG9jdW1lbnRUb3VjaC5pZGwKICAgICBkb20vRG9jdW1lbnRUeXBlLmlkbAogICAgIGRvbS9FbGVt
ZW50LmlkbAogICAgIGRvbS9FcnJvckV2ZW50LmlkbApAQCAtMTQ3OCw2ICsxNDc5LDcgQEAgc2V0
KFdlYkNvcmVfU09VUkNFUwogICAgIGRvbS9Eb2N1bWVudE9yZGVyZWRNYXAuY3BwCiAgICAgZG9t
L0RvY3VtZW50UGFyc2VyLmNwcAogICAgIGRvbS9Eb2N1bWVudFNoYXJlZE9iamVjdFBvb2wuY3Bw
CisgICAgZG9tL0RvY3VtZW50VG91Y2guY3BwCiAgICAgZG9tL0RvY3VtZW50VHlwZS5jcHAKICAg
ICBkb20vRWxlbWVudC5jcHAKICAgICBkb20vRWxlbWVudERhdGEuY3BwCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDIxODQ2MykKKysrIFNvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTg5OCw2ICs4OTgsNyBAQCBl
bmRpZgogaWZlcSAoJChXVEZfUExBVEZPUk1fSU9TKSwgMSkKIGlmZXEgKCQoZmluZHN0cmluZyBF
TkFCTEVfSU9TX1RPVUNIX0VWRU5UUywkKEZFQVRVUkVfREVGSU5FUykpLCBFTkFCTEVfSU9TX1RP
VUNIX0VWRU5UUykKIEFERElUSU9OQUxfQklORElOR19JRExTICs9IFwKKyAgICBEb2N1bWVudFRv
dWNoLmlkbCBcCiAgICAgVG91Y2guaWRsIFwKICAgICBUb3VjaEV2ZW50LmlkbCBcCiAgICAgVG91
Y2hMaXN0LmlkbApAQCAtOTIyLDYgKzkyMyw3IEBAIGVuZGlmICMgTUFDT1MKIAogaWZuZXEgKCQo
V1RGX1BMQVRGT1JNX0lPUyksIDEpCiBKU19CSU5ESU5HX0lETFMgKz0gXAorICAgICQoV2ViQ29y
ZSkvZG9tL0RvY3VtZW50VG91Y2guaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9Ub3VjaC5pZGwg
XAogICAgICQoV2ViQ29yZSkvZG9tL1RvdWNoRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Rv
bS9Ub3VjaExpc3QuaWRsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMTg0NjMpCisrKyBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTI4
ODgsOCArMjg4OCw2IEBACiAJCTZDNEM5NkRGMUFENDQ4MzUwMDM2M0Y2NCAvKiBKU1JlYWRhYmxl
Qnl0ZVN0cmVhbUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDZDNEM5NkRCMUFENDQ4MzUwMDM2M0Y2NCAvKiBKU1JlYWRhYmxlQnl0ZVN0
cmVhbUNvbnRyb2xsZXIuaCAqLzsgfTsKIAkJNkM0Qzk2REYxQUQ0NDgzNTAwMzY1NjcyIC8qIEpT
UmVhZGFibGVTdHJlYW1CWU9CUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNkM0Qzk2REIxQUQ0NDgzNTAwMzY1NjcyIC8qIEpTUmVhZGFibGVT
dHJlYW1CWU9CUmVxdWVzdC5oICovOyB9OwogCQk2QzRDOTZERjFBRDQ0ODM1MDAzNjVBNTAgLyog
SlNSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QzRDOTZEQjFBRDQ0ODM1MDAzNjVBNTAgLyogSlNS
ZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmggKi87IH07Ci0JCTZBMzJEN0NFMUExNkQ4
QzAwMDQxMkYwQiAvKiBJbnNwZWN0b3JDYW52YXNBZ2VudC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QTRCNkQ2NjE5RDIyNUQ4MDA2RjExRDMgLyog
SW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwICovOyB9OwotCQk2QTRCNkQ2NTE5RDIyNTE5MDA2RjEx
RDMgLyogSW5zcGVjdG9yQ2FudmFzQWdlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDZBNEI2RDY0MTlEMjI1MTkwMDZGMTFEMyAvKiBJbnNwZWN0b3JD
YW52YXNBZ2VudC5oICovOyB9OwogCQk2QzYzODg5NUE5NkNDRUU1MEM4Qzk0NkMgLyogQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNkM2Mzg4OTNBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291
cmNlUmVxdWVzdEluaXRpYXRvcnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk2QzYzODg5NkE5NkNDRUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA2QzYzODg5NEE5NkNDRUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0SW5pdGlhdG9ycy5jcHAgKi87IH07CiAJCTZDRERFOEQwMTc3MEJCMjIwMDE2RTA3MiAv
KiBSZWdpb25PdmVyc2V0U3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDZDNzBBODE0MTc3MDdDNDkwMDlBNDQ2RSAvKiBSZWdpb25PdmVyc2V0U3Rh
dGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAt
MTA3NDMsOCArMTA3NDEsNiBAQAogCQk2QzRDOTZEQjFBRDQ0ODM1MDAzNjNGNjQgLyogSlNSZWFk
YWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTUmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk2QzRDOTZEQjFBRDQ0ODM1MDAzNjU2NzIgLyogSlNSZWFkYWJsZVN0cmVhbUJZ
T0JSZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUmVhZGFibGVT
dHJlYW1CWU9CUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QzRDOTZE
QjFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUmVhZGFibGVTdHJlYW1EZWZhdWx0
Q29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2QTRCNkQ2NDE5RDIy
NTE5MDA2RjExRDMgLyogSW5zcGVjdG9yQ2FudmFzQWdlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yQ2FudmFzQWdlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJNkE0QjZENjYxOUQyMjVEODAwNkYxMUQzIC8qIEluc3BlY3RvckNhbnZhc0Fn
ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvckNh
bnZhc0FnZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkM2Mzg4OTNBOTZD
Q0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRv
cnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkM2Mzg4OTRBOTZDQ0VFNTBDOEM5
NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QzcwQTgxNDE3NzA3QzQ5MDA5QTQ0
NkUgLyogUmVnaW9uT3ZlcnNldFN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlZ2lvbk92ZXJzZXRTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTEzODMsNiArMTEzNzksOSBAQAogCQk3Q0M3RTNENjE3MjA4QzBGMDAzQzUyNzcgLyogSUROU2Ny
aXB0V2hpdGVMaXN0LnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBJRE5TY3JpcHRXaGl0ZUxp
c3QudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0QwQkEwMjFCOEY3OUM5MDA1
Q0VCQkUgLyogQWN0aXZlRE9NQ2FsbGJhY2tNaWNyb3Rhc2suY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQWN0aXZlRE9NQ2FsbGJhY2tNaWNyb3Rhc2suY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0QwQkEwMzFCOEY3OUM5MDA1Q0VCQkUgLyogQWN0
aXZlRE9NQ2FsbGJhY2tNaWNyb3Rhc2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQWN0aXZlRE9NQ2FsbGJhY2tNaWNyb3Rhc2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJN0NEMkZCQ0IxRUY2MkMzNTAwNzAzNTE4IC8qIERvY3VtZW50VG91Y2guY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gRG9jdW1lbnRUb3VjaC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTdDRDJGQkNDMUVGNjJDMzUwMDcwMzUxOCAvKiBEb2N1bWVudFRvdWNoLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IERvY3VtZW50VG91Y2guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
N0NEMkZCQ0QxRUY2MkMzNTAwNzAzNTE4IC8qIERvY3VtZW50VG91Y2guaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERvY3Vt
ZW50VG91Y2guaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0Q0OTRDQTFBODZF
QjFEMDAwQTg3RUMgLyogUmVuZGVyQXR0YWNobWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSZW5kZXJBdHRhY2htZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJN0NENDk0Q0IxQTg2RUIxRDAwMEE4N0VDIC8qIFJlbmRlckF0dGFjaG1lbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyQXR0YWNobWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0U1OEQ0OTFERDY0QTVCMDAxMjg1NTIgLyog
U1ZHUG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHUG9pbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI1NzQwLDYgKzI1NzM5LDkgQEAKIAkJCQlB
RDZFNzFBQTE2Njg4OTlEMDAzMjBDMTMgLyogRG9jdW1lbnRTaGFyZWRPYmplY3RQb29sLmNwcCAq
LywKIAkJCQlBRDZFNzFBQjE2Njg4OTlEMDAzMjBDMTMgLyogRG9jdW1lbnRTaGFyZWRPYmplY3RQ
b29sLmggKi8sCiAJCQkJODZEOTgyRjYxMjVDMTU0MDAwQUQ5RTNEIC8qIERvY3VtZW50VGltaW5n
LmggKi8sCisJCQkJN0NEMkZCQ0IxRUY2MkMzNTAwNzAzNTE4IC8qIERvY3VtZW50VG91Y2guY3Bw
ICovLAorCQkJCTdDRDJGQkNDMUVGNjJDMzUwMDcwMzUxOCAvKiBEb2N1bWVudFRvdWNoLmggKi8s
CisJCQkJN0NEMkZCQ0QxRUY2MkMzNTAwNzAzNTE4IC8qIERvY3VtZW50VG91Y2guaWRsICovLAog
CQkJCUE4MTg1RjMyMDk3NjU3NjUwMDU4MjZEOSAvKiBEb2N1bWVudFR5cGUuY3BwICovLAogCQkJ
CUE4MTg1RjMxMDk3NjU3NjUwMDU4MjZEOSAvKiBEb2N1bWVudFR5cGUuaCAqLywKIAkJCQk5M0VF
QzFFODA5QzI4Nzc3MDBDNTE1RDEgLyogRG9jdW1lbnRUeXBlLmlkbCAqLywKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3BwCShyZXZpc2lv
biAyMTg0NjMpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9t
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEyLDI1ICsxMTIsNiBAQCBKU1ZhbHVlIHRvSlMoRXhl
Y1N0YXRlKiBzdGF0ZSwgSlNET01HbG9iCiAgICAgcmV0dXJuIHRvSlNOZXdseUNyZWF0ZWQoc3Rh
dGUsIGdsb2JhbE9iamVjdCwgUmVmPERvY3VtZW50Pihkb2N1bWVudCkpOwogfQogCi0jaWYgRU5B
QkxFKFRPVUNIX0VWRU5UUykKLUpTVmFsdWUgSlNEb2N1bWVudDo6Y3JlYXRlVG91Y2hMaXN0KEV4
ZWNTdGF0ZSYgc3RhdGUpCi17Ci0gICAgVk0mIHZtID0gc3RhdGUudm0oKTsKLSAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0KLSAgICBhdXRvIHRvdWNoTGlzdCA9IFRv
dWNoTGlzdDo6Y3JlYXRlKCk7Ci0KLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHN0YXRlLmFy
Z3VtZW50Q291bnQoKTsgKytpKSB7Ci0gICAgICAgIGF1dG8qIGl0ZW0gPSBKU1RvdWNoOjp0b1dy
YXBwZWQodm0sIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KGkpKTsKLSAgICAgICAgaWYgKCFpdGVt
KQotICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmRlY29kZSh0aHJvd0FyZ3VtZW50VHlwZUVy
cm9yKHN0YXRlLCBzY29wZSwgaSwgInRvdWNoZXMiLCAiRG9jdW1lbnQiLCAiY3JlYXRlVG91Y2hM
aXN0IiwgIlRvdWNoIikpOwotCi0gICAgICAgIHRvdWNoTGlzdC0+YXBwZW5kKCppdGVtKTsKLSAg
ICB9Ci0gICAgcmV0dXJuIHRvSlNOZXdseUNyZWF0ZWQoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwg
V1RGTW92ZSh0b3VjaExpc3QpKTsKLX0KLSNlbmRpZgotCiBKU1ZhbHVlIEpTRG9jdW1lbnQ6Omdl
dENTU0NhbnZhc0NvbnRleHQoSlNDOjpFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIFZNJiB2bSA9
IHN0YXRlLnZtKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDIxODQ2
MykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI1MSw3ICsyNTEsNiBAQAogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICNpbmNsdWRlICJU
b3VjaEV2ZW50LmgiCi0jaW5jbHVkZSAiVG91Y2hMaXN0LmgiCiAjZW5kaWYKIAogI2lmIEVOQUJM
RShWSURFT19UUkFDSykKQEAgLTYzMDIsMjAgKzYzMDEsNiBAQCB2b2lkIERvY3VtZW50OjpzZW5k
V2lsbFJldmVhbEVkZ2VFdmVudHNJCiAjZW5kaWYKIH0KIAotI2lmIEVOQUJMRShUT1VDSF9FVkVO
VFMpICYmICFQTEFURk9STShJT1MpCi0KLVJlZjxUb3VjaD4gRG9jdW1lbnQ6OmNyZWF0ZVRvdWNo
KERPTVdpbmRvdyogd2luZG93LCBFdmVudFRhcmdldCogdGFyZ2V0LCBpbnQgaWRlbnRpZmllciwg
aW50IHBhZ2VYLCBpbnQgcGFnZVksIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHJhZGl1
c1gsIGludCByYWRpdXNZLCBmbG9hdCByb3RhdGlvbkFuZ2xlLCBmbG9hdCBmb3JjZSkgY29uc3QK
LXsKLSAgICAvLyBGSVhNRTogSXQncyBub3QgY2xlYXIgZnJvbSB0aGUgZG9jdW1lbnRhdGlvbiBh
dAotICAgIC8vIGh0dHA6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2xpYnJhcnkvc2FmYXJpLyNkb2N1
bWVudGF0aW9uL1VzZXJFeHBlcmllbmNlL1JlZmVyZW5jZS9Eb2N1bWVudEFkZGl0aW9uc1JlZmVy
ZW5jZS9Eb2N1bWVudEFkZGl0aW9ucy9Eb2N1bWVudEFkZGl0aW9ucy5odG1sCi0gICAgLy8gd2hl
biB0aGlzIG1ldGhvZCBzaG91bGQgdGhyb3cgYW5kIG5vciBpcyBpdCBieSBpbnNwZWN0aW9uIG9m
IGlPUyBiZWhhdmlvci4gSXQgd291bGQgYmUgbmljZSB0byB2ZXJpZnkgYW55IGNhc2VzIHdoZXJl
IGl0IHRocm93cyB1bmRlciBpT1MKLSAgICAvLyBhbmQgaW1wbGVtZW50IHRoZW0gaGVyZS4gU2Vl
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzgxOQotICAgIEZyYW1l
KiBmcmFtZSA9IHdpbmRvdyA/IHdpbmRvdy0+ZnJhbWUoKSA6IHRoaXMtPmZyYW1lKCk7Ci0gICAg
cmV0dXJuIFRvdWNoOjpjcmVhdGUoZnJhbWUsIHRhcmdldCwgaWRlbnRpZmllciwgc2NyZWVuWCwg
c2NyZWVuWSwgcGFnZVgsIHBhZ2VZLCByYWRpdXNYLCByYWRpdXNZLCByb3RhdGlvbkFuZ2xlLCBm
b3JjZSk7Ci19Ci0KLSNlbmRpZgotCiB2b2lkIERvY3VtZW50Ojp3aGVlbEV2ZW50SGFuZGxlcnND
aGFuZ2VkKCkKIHsKICAgICBQYWdlKiBwYWdlID0gdGhpcy0+cGFnZSgpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgJKHJldmlzaW9uIDIxODQ2MykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODQsMTAgKzE4NCw2IEBAIGNsYXNzIFRyYW5zZm9y
bVNvdXJjZTsKIHN0cnVjdCBBbm5vdGF0ZWRSZWdpb25WYWx1ZTsKICNlbmRpZgogCi0jaWYgRU5B
QkxFKElPU19UT1VDSF9FVkVOVFMpCi0jaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL0RvY3VtZW50
SU9TRm9yd2FyZC5oPgotI2VuZGlmCi0KICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKSB8fCBFTkFC
TEUoSU9TX1RPVUNIX0VWRU5UUykKIGNsYXNzIFRvdWNoOwogY2xhc3MgVG91Y2hMaXN0OwpAQCAt
MTEzMCw4ICsxMTI2LDYgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMp
CiAjaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL0RvY3VtZW50SU9TLmg+Ci0jZWxpZiBFTkFCTEUo
VE9VQ0hfRVZFTlRTKQotICAgIFJlZjxUb3VjaD4gY3JlYXRlVG91Y2goRE9NV2luZG93KiwgRXZl
bnRUYXJnZXQqLCBpbnQgaWRlbnRpZmllciwgaW50IHBhZ2VYLCBpbnQgcGFnZVksIGludCBzY3Jl
ZW5YLCBpbnQgc2NyZWVuWSwgaW50IHJhZGl1c1gsIGludCByYWRpdXNZLCBmbG9hdCByb3RhdGlv
bkFuZ2xlLCBmbG9hdCBmb3JjZSkgY29uc3Q7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShERVZJQ0Vf
T1JJRU5UQVRJT04pICYmIFBMQVRGT1JNKElPUykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmlk
bAkocmV2aXNpb24gMjE4NDYzKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAko
d29ya2luZyBjb3B5KQpAQCAtMTgwLDE4ICsxODAsNiBAQAogICAgIC8vIE5vbiBzdGFuZGFyZCAo
aHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL3JlZmVyZW5jZS93ZWJraXRqcy9kb2N1bWVudC8x
NjMzODYzLXdlYmtpdGdldG5hbWVkZmxvd3MpLgogICAgIFtDb25kaXRpb25hbD1DU1NfUkVHSU9O
U10gRE9NTmFtZWRGbG93Q29sbGVjdGlvbiB3ZWJraXRHZXROYW1lZEZsb3dzKCk7CiAKLSAgICAv
LyBGSVhNRTogVGhpcyBoYXMgYmVlbiBkcm9wcGVkIGZyb20gdGhlIHN0YW5kYXJkIG5vdyB0aGF0
IFRvdWNoIGhhcyBhIGNvbnN0cnVjdG9yLgotI2lmIGRlZmluZWQoRU5BQkxFX0lPU19UT1VDSF9F
VkVOVFMpICYmIEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTCi0jaW5jbHVkZSA8V2ViS2l0QWRkaXRp
b25zL0RvY3VtZW50SU9TLmlkbD4KLSNlbGlmIGRlZmluZWQoRU5BQkxFX1RPVUNIX0VWRU5UUykg
JiYgRU5BQkxFX1RPVUNIX0VWRU5UUwotICAgIFtOZXdPYmplY3RdIFRvdWNoIGNyZWF0ZVRvdWNo
KG9wdGlvbmFsIERPTVdpbmRvdz8gd2luZG93ID0gbnVsbCwgb3B0aW9uYWwgRXZlbnRUYXJnZXQ/
IHRhcmdldCA9IG51bGwsCi0gICAgICAgIG9wdGlvbmFsIGxvbmcgaWRlbnRpZmllciA9IDAsCi0g
ICAgICAgIG9wdGlvbmFsIGxvbmcgcGFnZVggPSAwLCBvcHRpb25hbCBsb25nIHBhZ2VZID0gMCwg
b3B0aW9uYWwgbG9uZyBzY3JlZW5YID0gMCwgb3B0aW9uYWwgbG9uZyBzY3JlZW5ZID0gMCwKLSAg
ICAgICAgb3B0aW9uYWwgbG9uZyB3ZWJraXRSYWRpdXNYID0gMCwgb3B0aW9uYWwgbG9uZyB3ZWJr
aXRSYWRpdXNZID0gMCwKLSAgICAgICAgb3B0aW9uYWwgdW5yZXN0cmljdGVkIGZsb2F0IHdlYmtp
dFJvdGF0aW9uQW5nbGUgPSBOYU4sIG9wdGlvbmFsIHVucmVzdHJpY3RlZCBmbG9hdCB3ZWJraXRG
b3JjZSA9IE5hTik7Ci0gICAgW05ld09iamVjdCwgQ3VzdG9tXSBUb3VjaExpc3QgY3JlYXRlVG91
Y2hMaXN0KFRvdWNoLi4uIHRvdWNoZXMpOwotI2VuZGlmCi0KIAogICAgIC8vIE9ic29sZXRlIGZl
YXR1cmVzIGZyb20gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvb2Jzb2xl
dGUuaHRtbAogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRUb3VjaC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50VG91Y2guY3BwCShub25leGlz
dGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFRvdWNoLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIkRvY3VtZW50VG91Y2guaCIKKworI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisK
KyNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUg
IlRvdWNoLmgiCisjaW5jbHVkZSAiVG91Y2hMaXN0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworUmVmPFRvdWNoPiBEb2N1bWVudFRvdWNoOjpjcmVhdGVUb3VjaChEb2N1bWVudCYgZG9jdW1l
bnQsIERPTVdpbmRvdyogd2luZG93LCBFdmVudFRhcmdldCogdGFyZ2V0LCBpbnQgaWRlbnRpZmll
ciwgaW50IHBhZ2VYLCBpbnQgcGFnZVksIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHJh
ZGl1c1gsIGludCByYWRpdXNZLCBmbG9hdCByb3RhdGlvbkFuZ2xlLCBmbG9hdCBmb3JjZSkKK3sK
KyAgICAvLyBGSVhNRTogSXQncyBub3QgY2xlYXIgZnJvbSB0aGUgZG9jdW1lbnRhdGlvbiBhdAor
ICAgIC8vIGh0dHA6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2xpYnJhcnkvc2FmYXJpLyNkb2N1bWVu
dGF0aW9uL1VzZXJFeHBlcmllbmNlL1JlZmVyZW5jZS9Eb2N1bWVudEFkZGl0aW9uc1JlZmVyZW5j
ZS9Eb2N1bWVudEFkZGl0aW9ucy9Eb2N1bWVudEFkZGl0aW9ucy5odG1sCisgICAgLy8gd2hlbiB0
aGlzIG1ldGhvZCBzaG91bGQgdGhyb3cgYW5kIG5vciBpcyBpdCBieSBpbnNwZWN0aW9uIG9mIGlP
UyBiZWhhdmlvci4gSXQgd291bGQgYmUgbmljZSB0byB2ZXJpZnkgYW55IGNhc2VzIHdoZXJlIGl0
IHRocm93cyB1bmRlciBpT1MKKyAgICAvLyBhbmQgaW1wbGVtZW50IHRoZW0gaGVyZS4gU2VlIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzgxOQorICAgIHJldHVybiBU
b3VjaDo6Y3JlYXRlKHdpbmRvdyA/IHdpbmRvdy0+ZnJhbWUoKSA6IGRvY3VtZW50LmZyYW1lKCks
IHRhcmdldCwgaWRlbnRpZmllciwgc2NyZWVuWCwgc2NyZWVuWSwgcGFnZVgsIHBhZ2VZLCByYWRp
dXNYLCByYWRpdXNZLCByb3RhdGlvbkFuZ2xlLCBmb3JjZSk7Cit9CisKK1JlZjxUb3VjaExpc3Q+
IERvY3VtZW50VG91Y2g6OmNyZWF0ZVRvdWNoTGlzdChEb2N1bWVudCYsIFZlY3RvcjxzdGQ6OnJl
ZmVyZW5jZV93cmFwcGVyPFRvdWNoPj4mJiB0b3VjaGVzKQoreworICAgIHJldHVybiBUb3VjaExp
c3Q6OmNyZWF0ZShXVEZNb3ZlKHRvdWNoZXMpKTsKK30KKworfQorCisjZW5kaWYKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFRvdWNoLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50VG91Y2guaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnRUb3VjaC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQor
I2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9Eb2N1bWVudFRvdWNoSU9TLmg+CisjZWxpZiBFTkFC
TEUoVE9VQ0hfRVZFTlRTKQorCisjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KKyNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRE9NV2luZG93OworY2xh
c3MgRG9jdW1lbnQ7CitjbGFzcyBFdmVudFRhcmdldDsKK2NsYXNzIFRvdWNoOworY2xhc3MgVG91
Y2hMaXN0OworCitjbGFzcyBEb2N1bWVudFRvdWNoIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVm
PFRvdWNoPiBjcmVhdGVUb3VjaChEb2N1bWVudCYsIERPTVdpbmRvdyosIEV2ZW50VGFyZ2V0Kiwg
aW50IGlkZW50aWZpZXIsIGludCBwYWdlWCwgaW50IHBhZ2VZLCBpbnQgc2NyZWVuWCwgaW50IHNj
cmVlblksIGludCByYWRpdXNYLCBpbnQgcmFkaXVzWSwgZmxvYXQgcm90YXRpb25BbmdsZSwgZmxv
YXQgZm9yY2UpOworICAgIHN0YXRpYyBSZWY8VG91Y2hMaXN0PiBjcmVhdGVUb3VjaExpc3QoRG9j
dW1lbnQmLCBWZWN0b3I8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxUb3VjaD4+JiYpOworfTsKKwor
fQorCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFRvdWNoLmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRUb3VjaC5pZGwJKG5vbmV4
aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50VG91Y2guaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcs
IDIwMTEsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDA2LCAyMDA3IFNhbXVlbCBXZWluaWcgPHNhbUB3ZWJraXQub3JnPgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
KiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCitbCisgICAgQ29u
ZGl0aW9uYWw9VE9VQ0hfRVZFTlRTCitdIHBhcnRpYWwgaW50ZXJmYWNlIERvY3VtZW50IHsKKyAg
ICAvLyBGSVhNRTogVGhpcyBoYXMgYmVlbiBkcm9wcGVkIGZyb20gdGhlIHN0YW5kYXJkIG5vdyB0
aGF0IFRvdWNoIGhhcyBhIGNvbnN0cnVjdG9yLgorICAgIFtOZXdPYmplY3RdIFRvdWNoIGNyZWF0
ZVRvdWNoKG9wdGlvbmFsIERPTVdpbmRvdz8gd2luZG93ID0gbnVsbCwgb3B0aW9uYWwgRXZlbnRU
YXJnZXQ/IHRhcmdldCA9IG51bGwsCisgICAgICAgIG9wdGlvbmFsIGxvbmcgaWRlbnRpZmllciA9
IDAsCisgICAgICAgIG9wdGlvbmFsIGxvbmcgcGFnZVggPSAwLCBvcHRpb25hbCBsb25nIHBhZ2VZ
ID0gMCwgb3B0aW9uYWwgbG9uZyBzY3JlZW5YID0gMCwgb3B0aW9uYWwgbG9uZyBzY3JlZW5ZID0g
MCwKKyAgICAgICAgb3B0aW9uYWwgbG9uZyB3ZWJraXRSYWRpdXNYID0gMCwgb3B0aW9uYWwgbG9u
ZyB3ZWJraXRSYWRpdXNZID0gMCwKKyAgICAgICAgb3B0aW9uYWwgdW5yZXN0cmljdGVkIGZsb2F0
IHdlYmtpdFJvdGF0aW9uQW5nbGUgPSBOYU4sIG9wdGlvbmFsIHVucmVzdHJpY3RlZCBmbG9hdCB3
ZWJraXRGb3JjZSA9IE5hTik7CisgICAgW05ld09iamVjdF0gVG91Y2hMaXN0IGNyZWF0ZVRvdWNo
TGlzdChUb3VjaC4uLiB0b3VjaGVzKTsKK307CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vVG91
Y2hMaXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1RvdWNoTGlzdC5oCShy
ZXZpc2lvbiAyMTg0NjMpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vVG91Y2hMaXN0LmgJKHdvcmtp
bmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNlbGlmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAK
ICNpbmNsdWRlICJUb3VjaC5oIgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIApAQCAtNDAsNiArNDEsMTAg
QEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVG91Y2hMaXN0
KTsKICAgICB9CisgICAgc3RhdGljIFJlZjxUb3VjaExpc3Q+IGNyZWF0ZShWZWN0b3I8c3RkOjpy
ZWZlcmVuY2Vfd3JhcHBlcjxUb3VjaD4+JiYgdG91Y2hlcykKKyAgICB7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFRvdWNoTGlzdChXVEZNb3ZlKHRvdWNoZXMpKSk7CisgICAgfQogCiAg
ICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZXMuc2l6ZSgpOyB9CiAK
QEAgLTQ5LDcgKzU0LDE0IEBAIHB1YmxpYzoKICAgICB2b2lkIGFwcGVuZChSZWY8VG91Y2g+JiYg
dG91Y2gpIHsgbV92YWx1ZXMuYXBwZW5kKFdURk1vdmUodG91Y2gpKTsgfQogCiBwcml2YXRlOgot
ICAgIFRvdWNoTGlzdCgpIHt9CisgICAgVG91Y2hMaXN0KCkgPSBkZWZhdWx0OworCisgICAgZXhw
bGljaXQgVG91Y2hMaXN0KFZlY3RvcjxzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPFRvdWNoPj4mJiB0
b3VjaGVzKQorICAgIHsKKyAgICAgICAgbV92YWx1ZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh0
b3VjaGVzLnNpemUoKSk7CisgICAgICAgIGZvciAoYXV0byYgdG91Y2ggOiB0b3VjaGVzKQorICAg
ICAgICAgICAgbV92YWx1ZXMudW5jaGVja2VkQXBwZW5kKHRvdWNoLmdldCgpKTsKKyAgICB9CiAK
ICAgICBWZWN0b3I8UmVmPFRvdWNoPj4gbV92YWx1ZXM7CiB9OwpJbmRleDogU291cmNlL1dlYkNv
cmUvZG9tL2lvcy9Ub3VjaEV2ZW50cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
ZG9tL2lvcy9Ub3VjaEV2ZW50cy5jcHAJKHJldmlzaW9uIDIxODQ2MykKKysrIFNvdXJjZS9XZWJD
b3JlL2RvbS9pb3MvVG91Y2hFdmVudHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw5ICsyOCwx
MCBAQAogI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQogCiAjaW5jbHVkZSA8V2ViS2l0QWRk
aXRpb25zL0RvY3VtZW50SU9TLmNwcD4KKyNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvRG9jdW1l
bnRUb3VjaElPUy5jcHA+CiAjaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL0dlc3R1cmVFdmVudC5j
cHA+Ci0jaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL1RvdWNoSU9TLmNwcD4KICNpbmNsdWRlIDxX
ZWJLaXRBZGRpdGlvbnMvVG91Y2hFdmVudElPUy5jcHA+CisjaW5jbHVkZSA8V2ViS2l0QWRkaXRp
b25zL1RvdWNoSU9TLmNwcD4KICNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvVG91Y2hMaXN0SU9T
LmNwcD4KIAogI2VuZGlmCg==
</data>
<flag name="review"
          id="334146"
          type_id="1"
          status="+"
          setter="achristensen"
    />
          </attachment>
      

    </bug>

</bugzilla>