<?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>53776</bug_id>
          
          <creation_ts>2011-02-04 09:30:28 -0800</creation_ts>
          <short_desc>Device element patch 1: adding a basic skeleton of the HTMLDeviceElement and the Stream objects.</short_desc>
          <delta_ts>2012-09-19 07:20:23 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>53595</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Leandro Graciá Gil">leandrogracia</reporter>
          <assigned_to name="Leandro Graciá Gil">leandrogracia</assigned_to>
          <cc>abarth</cc>
    
    <cc>adam.bergkvist</cc>
    
    <cc>andreip</cc>
    
    <cc>buildbot</cc>
    
    <cc>gustavo</cc>
    
    <cc>jorlow</cc>
    
    <cc>leandrogracia</cc>
    
    <cc>luiz</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>345531</commentid>
    <comment_count>0</comment_count>
    <who name="Leandro Graciá Gil">leandrogracia</who>
    <bug_when>2011-02-04 09:30:28 -0800</bug_when>
    <thetext>This patch creates the basic skeleton for the asynchronous client-based implementation of the device element that we proposed.
This is designed to be the second of a set of small patches. Please see https://bugs.webkit.org/show_bug.cgi?id=53595 for the first one.
All functionality and specific details will be included in later patches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345583</commentid>
    <comment_count>1</comment_count>
      <attachid>81242</attachid>
    <who name="Leandro Graciá Gil">leandrogracia</who>
    <bug_when>2011-02-04 10:18:50 -0800</bug_when>
    <thetext>Created attachment 81242
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345622</commentid>
    <comment_count>2</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-02-04 11:07:38 -0800</bug_when>
    <thetext>Attachment 81242 did not build on gtk:
Build output: http://queues.webkit.org/results/7701071</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345639</commentid>
    <comment_count>3</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-02-04 11:31:40 -0800</bug_when>
    <thetext>Attachment 81242 did not build on win:
Build output: http://queues.webkit.org/results/7698578</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>346087</commentid>
    <comment_count>4</comment_count>
      <attachid>81242</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-02-05 01:55:05 -0800</bug_when>
    <thetext>Comment on attachment 81242
Patch

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

build failures.

&gt; Source/WebCore/dom/DeviceType.cpp:43
&gt; +// Avoid using static Strings. Code should not run on WebKit load.
&gt; +const char* DeviceType::s_names[] =
&gt; +{
&gt; +    &quot;invalid&quot;,
&gt; +    &quot;media&quot;
&gt; +};

We&apos;ve historically done this with AtomicStrings and an init() method.  But in this case for only 2 types, I&apos;m not sure having an array actually buys us anything besides complexity.

&gt; Source/WebCore/dom/Stream.h:49
&gt; +    static PassRefPtr&lt;Stream&gt; create(HTMLDeviceElement*, const String&amp; url);

Should these urls be strings or KURLs?

&gt; Source/WebCore/html/HTMLDeviceElement.cpp:87
&gt; +        HTMLElement::defaultEventHandler(event);
&gt; +        return;

This could just be one line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364643</commentid>
    <comment_count>5</comment_count>
      <attachid>85202</attachid>
    <who name="Leandro Graciá Gil">leandrogracia</who>
    <bug_when>2011-03-09 11:22:12 -0800</bug_when>
    <thetext>Created attachment 85202
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364647</commentid>
    <comment_count>6</comment_count>
      <attachid>85203</attachid>
    <who name="Leandro Graciá Gil">leandrogracia</who>
    <bug_when>2011-03-09 11:26:38 -0800</bug_when>
    <thetext>Created attachment 85203
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364648</commentid>
    <comment_count>7</comment_count>
    <who name="Leandro Graciá Gil">leandrogracia</who>
    <bug_when>2011-03-09 11:27:36 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 81242 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=81242&amp;action=review
&gt; 
&gt; build failures.
&gt; 
&gt; &gt; Source/WebCore/dom/DeviceType.cpp:43
&gt; &gt; +// Avoid using static Strings. Code should not run on WebKit load.
&gt; &gt; +const char* DeviceType::s_names[] =
&gt; &gt; +{
&gt; &gt; +    &quot;invalid&quot;,
&gt; &gt; +    &quot;media&quot;
&gt; &gt; +};
&gt; 
&gt; We&apos;ve historically done this with AtomicStrings and an init() method.  But in this case for only 2 types, I&apos;m not sure having an array actually buys us anything besides complexity.
&gt; 
&gt; &gt; Source/WebCore/dom/Stream.h:49
&gt; &gt; +    static PassRefPtr&lt;Stream&gt; create(HTMLDeviceElement*, const String&amp; url);
&gt; 
&gt; Should these urls be strings or KURLs?
&gt; 
&gt; &gt; Source/WebCore/html/HTMLDeviceElement.cpp:87
&gt; &gt; +        HTMLElement::defaultEventHandler(event);
&gt; &gt; +        return;
&gt; 
&gt; This could just be one line.

Fixed.

Adding also the session manager code to make or proposal clear.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366037</commentid>
    <comment_count>8</comment_count>
      <attachid>85481</attachid>
    <who name="Leandro Graciá Gil">leandrogracia</who>
    <bug_when>2011-03-11 09:17:00 -0800</bug_when>
    <thetext>Created attachment 85481
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366063</commentid>
    <comment_count>9</comment_count>
    <who name="Leandro Graciá Gil">leandrogracia</who>
    <bug_when>2011-03-11 09:52:17 -0800</bug_when>
    <thetext>Decoupled the DeviceSession to the API calls to make clear that the object is managed in WebCore, not by the embedder. The object itself has been also considerably simplified by removing specific information that was not required. Also deleted some code not being currently used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>387769</commentid>
    <comment_count>10</comment_count>
      <attachid>85481</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-04-18 09:12:37 -0700</bug_when>
    <thetext>Comment on attachment 85481
Patch

Cleared review? from attachment 85481 so that this bug does not appear in http://webkit.org/pending-review.  If you would like this patch reviewed, please attach it to a new bug (or re-open this bug before marking it for review again).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81242</attachid>
            <date>2011-02-04 10:18:50 -0800</date>
            <delta_ts>2011-03-09 11:22:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53776-20110204181848.patch</filename>
            <type>text/plain</type>
            <size>51562</size>
            <attacher name="Leandro Graciá Gil">leandrogracia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAyNWNhYWFjNTkwODBkYTU2MDZjODBiNjU1NTdlMzY4NmRmYWY5OWQ5Li4w
MDMwOGQ1OTk3NWQ2NWZkZjQ3YWZkOGFiNGIxYWZhZTIwNzkwYTE5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNzIgQEAKKzIwMTEtMDItMDQgIExlYW5kcm8gR3JhY2lhIEdpbCAgPGxlYW5kcm9ncmFj
aWFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIERldmljZSBlbGVtZW50IHBhdGNoIDE6IGFkZGluZyBhIGJhc2ljIHNrZWxldG9u
IG9mIHRoZSBIVE1MRGV2aWNlRWxlbWVudCBhbmQgdGhlIFN0cmVhbSBvYmplY3RzLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTM3NzYKKworICAgICAg
ICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnByaToKKyAgICAgICAgKiBXZWJD
b3JlLnBybzoKKyAgICAgICAgKiBjc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKToKKyAg
ICAgICAgKiBjc3MvQ1NTU2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0
b3I6OnBzZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6Om5hbWVUb1BzZXVkb1R5cGVNYXApOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OmV4dHJhY3RQc2V1ZG9UeXBlKToKKyAgICAg
ICAgKiBjc3MvQ1NTU2VsZWN0b3IuaDoKKyAgICAgICAgKiBjc3MvQ1NTVmFsdWVLZXl3b3Jkcy5p
bjoKKyAgICAgICAgKiBjc3MvaHRtbC5jc3M6CisgICAgICAgIChpbnB1dFt0eXBlPSJidXR0b24i
XSwgaW5wdXRbdHlwZT0ic3VibWl0Il0sIGlucHV0W3R5cGU9InJlc2V0Il0sIGlucHV0W3R5cGU9
ImZpbGUiXTo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24sIGRldmljZTo6LXdlYmtpdC1kZXZp
Y2UtYnV0dG9uKToKKyAgICAgICAgKGlucHV0W3R5cGU9ImJ1dHRvbiJdLCBpbnB1dFt0eXBlPSJz
dWJtaXQiXSwgaW5wdXRbdHlwZT0icmVzZXQiXSwgaW5wdXRbdHlwZT0iZmlsZSJdOjotd2Via2l0
LWZpbGUtdXBsb2FkLWJ1dHRvbiwgZGV2aWNlOjotd2Via2l0LWRldmljZS1idXR0b24sIGJ1dHRv
bik6CisgICAgICAgIChkZXZpY2U6ZGlzYWJsZWQ6Oi13ZWJraXQtZGV2aWNlLWJ1dHRvbik6Cisg
ICAgICAgIChpbnB1dFt0eXBlPSJidXR0b24iXTphY3RpdmUsIGlucHV0W3R5cGU9InN1Ym1pdCJd
OmFjdGl2ZSwgaW5wdXRbdHlwZT0icmVzZXQiXTphY3RpdmUsIGlucHV0W3R5cGU9ImZpbGUiXTph
Y3RpdmU6Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uLCBkZXZpY2U6YWN0aXZlOjotd2Via2l0
LWRldmljZS1idXR0b24sIGJ1dHRvbjphY3RpdmUpOgorICAgICAgICAoaW5wdXRbdHlwZT0iYnV0
dG9uIl06YWN0aXZlOmRpc2FibGVkLCBpbnB1dFt0eXBlPSJzdWJtaXQiXTphY3RpdmU6ZGlzYWJs
ZWQsIGlucHV0W3R5cGU9InJlc2V0Il06YWN0aXZlOmRpc2FibGVkLCBpbnB1dFt0eXBlPSJmaWxl
Il06YWN0aXZlOmRpc2FibGVkOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiwgZGV2aWNlOmFj
dGl2ZTpkaXNhYmxlZDo6LXdlYmtpdC1kZXZpY2UtYnV0dG9uLCBidXR0b246YWN0aXZlOmRpc2Fi
bGVkKToKKyAgICAgICAgKGRldmljZTpmb2N1czo6LXdlYmtpdC1kZXZpY2UtYnV0dG9uKToKKyAg
ICAgICAgKiBkb20vRE9NQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGRvbS9EZXZpY2VFbGVtZW50
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VFbGVtZW50OjpEZXZpY2VFbGVt
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZUVsZW1lbnQ6OnR5cGUpOgorICAgICAgICAq
IGRvbS9EZXZpY2VFbGVtZW50Lmg6IEFkZGVkLgorICAgICAgICAqIGRvbS9EZXZpY2VUeXBlLmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VUeXBlOjpEZXZpY2VUeXBlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRldmljZVR5cGU6OnN0cmluZ0J5SWQpOgorICAgICAgICAqIGRvbS9E
ZXZpY2VUeXBlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlVHlwZTo6aWQpOgor
ICAgICAgICAoV2ViQ29yZTo6RGV2aWNlVHlwZTo6bmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpE
ZXZpY2VUeXBlOjppc1ZhbGlkKToKKyAgICAgICAgKiBkb20vU3RyZWFtLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTdHJlYW06OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHJl
YW06OlN0cmVhbSk6CisgICAgICAgIChXZWJDb3JlOjpTdHJlYW06On5TdHJlYW0pOgorICAgICAg
ICAoV2ViQ29yZTo6U3RyZWFtOjp1cmwpOgorICAgICAgICAoV2ViQ29yZTo6U3RyZWFtOjpyZWNv
cmQpOgorICAgICAgICAoV2ViQ29yZTo6U3RyZWFtOjpkZXZpY2VFbGVtZW50KToKKyAgICAgICAg
KiBkb20vU3RyZWFtLmg6IEFkZGVkLgorICAgICAgICAqIGRvbS9TdHJlYW0uaWRsOiBBZGRlZC4K
KyAgICAgICAgKiBkb20vU3RyZWFtUmVjb3JkZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlN0cmVhbVJlY29yZGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3RyZWFtUmVj
b3JkZXI6OlN0cmVhbVJlY29yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlN0cmVhbVJlY29yZGVy
Ojp+U3RyZWFtUmVjb3JkZXIpOgorICAgICAgICAoV2ViQ29yZTo6U3RyZWFtUmVjb3JkZXI6OnN0
b3ApOgorICAgICAgICAqIGRvbS9TdHJlYW1SZWNvcmRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBk
b20vU3RyZWFtUmVjb3JkZXIuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBmZWF0dXJlcy5wcmk6Cisg
ICAgICAgICogaHRtbC9IVE1MRGV2aWNlRWxlbWVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTERldmljZUVsZW1lbnQ6OkhUTUxEZXZpY2VFbGVtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxEZXZpY2VFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TERldmljZUVsZW1lbnQ6On5IVE1MRGV2aWNlRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MRGV2aWNlRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTERldmljZUVsZW1lbnQ6OnNldFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERl
dmljZUVsZW1lbnQ6OmRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERldmljZUVsZW1lbnQ6
OmRlZmF1bHRFdmVudEhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6dG9IVE1MRGV2aWNlRWxl
bWVudCk6CisgICAgICAgICogaHRtbC9IVE1MRGV2aWNlRWxlbWVudC5oOiBBZGRlZC4KKyAgICAg
ICAgKiBodG1sL0hUTUxEZXZpY2VFbGVtZW50LmlkbDogQWRkZWQuCisgICAgICAgICogaHRtbC9I
VE1MVGFnTmFtZXMuaW46CisgICAgICAgICogcGxhdGZvcm0vVGhlbWVUeXBlcy5oOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oOgorCiAyMDExLTAyLTAy
ICBMZWFuZHJvIEdyYWNpYSBHaWwgIDxsZWFuZHJvZ3JhY2lhQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAyMTNl
YmEzNDAzOGY0Y2NiNDY0MjExMWFiOWM3YTgxYTA1MTAyN2VkLi45NTEyNTY3ZGM1NjEwZTZlMGQy
ZGZlNjhhZDdmZGJlNzU5OWJkOGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC03Niw2ICs3Niw4IEBA
CiAgICAgICAgICAgICAnZG9tL1JhbmdlLmlkbCcsCiAgICAgICAgICAgICAnZG9tL1JhbmdlRXhj
ZXB0aW9uLmlkbCcsCiAgICAgICAgICAgICAnZG9tL1JlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxi
YWNrLmlkbCcsCisgICAgICAgICAgICAnZG9tL1N0cmVhbS5pZGwnLAorICAgICAgICAgICAgJ2Rv
bS9TdHJlYW1SZWNvcmRlci5pZGwnLAogICAgICAgICAgICAgJ2RvbS9UZXh0LmlkbCcsCiAgICAg
ICAgICAgICAnZG9tL1RleHRFdmVudC5pZGwnLAogICAgICAgICAgICAgJ2RvbS9Ub3VjaC5pZGwn
LApAQCAtMTQzLDYgKzE0NSw3IEBACiAgICAgICAgICAgICAnaHRtbC9IVE1MRGF0YUdyaWRSb3dF
bGVtZW50LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MRGF0YUxpc3RFbGVtZW50LmlkbCcs
CiAgICAgICAgICAgICAnaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaWRsJywKKyAgICAgICAgICAg
ICdodG1sL0hUTUxEZXZpY2VFbGVtZW50LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MRGly
ZWN0b3J5RWxlbWVudC5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTERpdkVsZW1lbnQuaWRs
JywKICAgICAgICAgICAgICdodG1sL0hUTUxEb2N1bWVudC5pZGwnLApAQCAtMTE4OCw2ICsxMTkx
LDggQEAKICAgICAgICAgICAgICdkb20vQ3Jvc3NUaHJlYWRUYXNrLmgnLAogICAgICAgICAgICAg
J2RvbS9DdXN0b21FdmVudC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9DdXN0b21FdmVudC5oJywK
KyAgICAgICAgICAgICdkb20vRGV2aWNlVHlwZS5jcHAnLAorICAgICAgICAgICAgJ2RvbS9EZXZp
Y2VUeXBlLmgnLAogICAgICAgICAgICAgJ2RvbS9ET01Db3JlRXhjZXB0aW9uLmgnLAogICAgICAg
ICAgICAgJ2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAnLAogICAgICAgICAgICAgJ2RvbS9ET01J
bXBsZW1lbnRhdGlvbi5oJywKQEAgLTEyMDAsNiArMTIwNSw4IEBACiAgICAgICAgICAgICAnZG9t
L0RhdGFzZXRET01TdHJpbmdNYXAuaCcsCiAgICAgICAgICAgICAnZG9tL0RlY29kZWREYXRhRG9j
dW1lbnRQYXJzZXIuY3BwJywKICAgICAgICAgICAgICdkb20vRGVjb2RlZERhdGFEb2N1bWVudFBh
cnNlci5oJywKKyAgICAgICAgICAgICdkb20vRGV2aWNlRWxlbWVudC5jcHAnLAorICAgICAgICAg
ICAgJ2RvbS9EZXZpY2VFbGVtZW50LmgnLAogICAgICAgICAgICAgJ2RvbS9EZXZpY2VNb3Rpb25D
bGllbnQuaCcsCiAgICAgICAgICAgICAnZG9tL0RldmljZU1vdGlvbkNvbnRyb2xsZXIuY3BwJywK
ICAgICAgICAgICAgICdkb20vRGV2aWNlTW90aW9uQ29udHJvbGxlci5oJywKQEAgLTEzNDYsNiAr
MTM1MywxMCBAQAogICAgICAgICAgICAgJ2RvbS9TdGF0aWNOb2RlTGlzdC5oJywKICAgICAgICAg
ICAgICdkb20vU3RhdGljU3RyaW5nTGlzdC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9TdGF0aWNT
dHJpbmdMaXN0LmgnLAorICAgICAgICAgICAgJ2RvbS9TdHJlYW0uY3BwJywKKyAgICAgICAgICAg
ICdkb20vU3RyZWFtLmgnLAorICAgICAgICAgICAgJ2RvbS9TdHJlYW1SZWNvcmRlci5jcHAnLAor
ICAgICAgICAgICAgJ2RvbS9TdHJlYW1SZWNvcmRlci5oJywKICAgICAgICAgICAgICdkb20vU3R5
bGVFbGVtZW50LmNwcCcsCiAgICAgICAgICAgICAnZG9tL1N0eWxlRWxlbWVudC5oJywKICAgICAg
ICAgICAgICdkb20vU3R5bGVkRWxlbWVudC5jcHAnLApAQCAtMTcwMCw2ICsxNzExLDggQEAKICAg
ICAgICAgICAgICdodG1sL0hUTUxEYXRhTGlzdEVsZW1lbnQuaCcsCiAgICAgICAgICAgICAnaHRt
bC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwJywKICAgICAgICAgICAgICdodG1sL0hUTUxEZXRhaWxz
RWxlbWVudC5oJywKKyAgICAgICAgICAgICdodG1sL0hUTUxEZXZpY2VFbGVtZW50LmNwcCcsCisg
ICAgICAgICAgICAnaHRtbC9IVE1MRGV2aWNlRWxlbWVudC5oJywKICAgICAgICAgICAgICdodG1s
L0hUTUxEaXJlY3RvcnlFbGVtZW50LmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MRGlyZWN0
b3J5RWxlbWVudC5oJywKICAgICAgICAgICAgICdodG1sL0hUTUxEaXZFbGVtZW50LmNwcCcsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnByaSBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUucHJpCmluZGV4IDQzZWE0ODNiOTE2ZDc2MDVkNGQ2MDE4MjQ2NDEyZTUyYzRhYTUxODMu
Ljk0OWU3MDRjOTU1ZTNiMDdiYjc5NTVkMTlkOTYxNmI2MTc0OTc2ZjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJp
CkBAIC0xNDMsNiArMTQzLDggQEAgSURMX0JJTkRJTkdTICs9IFwKICAgICBkb20vUHJvZ3Jlc3NF
dmVudC5pZGwgXAogICAgIGRvbS9SYW5nZUV4Y2VwdGlvbi5pZGwgXAogICAgIGRvbS9SYW5nZS5p
ZGwgXAorICAgIGRvbS9TdHJlYW0uaWRsIFwKKyAgICBkb20vU3RyZWFtUmVjb3JkZXIuaWRsIFwK
ICAgICBkb20vVGV4dC5pZGwgXAogICAgIGRvbS9UZXh0RXZlbnQuaWRsIFwKICAgICBkb20vVG91
Y2guaWRsIFwKQEAgLTIzNSw2ICsyMzcsNyBAQCBJRExfQklORElOR1MgKz0gXAogICAgIGh0bWwv
SFRNTERhdGFHcmlkUm93RWxlbWVudC5pZGwgXAogICAgIGh0bWwvSFRNTERhdGFMaXN0RWxlbWVu
dC5pZGwgXAogICAgIGh0bWwvSFRNTERldGFpbHNFbGVtZW50LmlkbCBcCisgICAgaHRtbC9IVE1M
RGV2aWNlRWxlbWVudC5pZGwgXAogICAgIGh0bWwvSFRNTERpcmVjdG9yeUVsZW1lbnQuaWRsIFwK
ICAgICBodG1sL0hUTUxEaXZFbGVtZW50LmlkbCBcCiAgICAgaHRtbC9IVE1MRExpc3RFbGVtZW50
LmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IGNhMmVhNGE1ZDIzNGVjN2ExMzYyMzljZmJjYmIyMzdh
YzQ2YTg4NmMuLmNkOGMzMTBhYzczNmE4YTdhMzU2Nzc2NjFiNTJhNzcwZDliODZiMTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUucHJvCkBAIC0zNDg4LDYgKzM0ODgsMjIgQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxF
X0RFVklDRV9PUklFTlRBVElPTj0xKSB7CiAgICAgTU9CSUxJVFkgKz0gc2Vuc29ycwogfQogCitj
b250YWlucyhERUZJTkVTLCBFTkFCTEVfREVWSUNFX0VMRU1FTlQ9MSkgeworICAgIEhFQURFUlMg
Kz0gXAorICAgICAgICBkb20vRGV2aWNlRWxlbWVudC5oIFwKKyAgICAgICAgZG9tL0RldmljZVR5
cGUuaCBcCisgICAgICAgIGRvbS9TdHJlYW0uaCBcCisgICAgICAgIGRvbS9TdHJlYW1SZWNvcmRl
ci5oIFwKKyAgICAgICAgaHRtbC9IVE1MRGV2aWNlRWxlbWVudC5oCisKKyAgICBTT1VSQ0VTICs9
IFwKKyAgICAgICAgZG9tL0RldmljZUVsZW1lbnQuY3BwIFwKKyAgICAgICAgZG9tL0RldmljZVR5
cGUuY3BwIFwKKyAgICAgICAgZG9tL1N0cmVhbS5jcHAgXAorICAgICAgICBkb20vU3RyZWFtUmVj
b3JkZXIuY3BwIFwKKyAgICAgICAgaHRtbC9IVE1MRGV2aWNlRWxlbWVudC5jcHAKK30KKwogY29u
dGFpbnMoREVGSU5FUywgRU5BQkxFX1NWRz0xKSB7CiAgICAgIXY4IHsKICAgICAgICAgU09VUkNF
UyArPSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVN
YXBwaW5ncy5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3Mu
aAppbmRleCBmYjRhZmYzMDhlZjFiNTNhZmNmMGNjNjJkNGI4NDRlYWJlOGVkZWVlLi41MWY0YzI1
MDMwZmE3MmZiZTQ0NDkyN2I4OGM0NzZhNzJkN2JlODgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKQEAgLTM1NCw2ICszNTQsMTAgQEAgdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKENvbnRy
b2xQYXJ0IGUpCiAjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKICAgICAgICAgICAgIG1fdmFsdWUu
aWRlbnQgPSBDU1NWYWx1ZVdlYmtpdElucHV0U3BlZWNoQnV0dG9uOwogI2VuZGlmCisgICAgICAg
IGNhc2UgRGV2aWNlQnV0dG9uUGFydDoKKyNpZiBFTkFCTEUoREVWSUNFX1RBRykKKyAgICAgICAg
ICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVdlYmtpdERldmljZUJ1dHRvbjsKKyNlbmRpZgog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1NlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAK
aW5kZXggZGYxOTJkNzcwZjlhNzljNDYyMDg3NjhmMWEzN2Q3ZGNhODg0MWI4YS4uMzQ4NTUwNmRj
ZWUwZTU1MzM0YzU4MjI3OWIzMTYwYzllNzFlOTkzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1NlbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0
b3IuY3BwCkBAIC0xMzAsNiArMTMwLDEwIEBAIFBzZXVkb0lkIENTU1NlbGVjdG9yOjpwc2V1ZG9J
ZChQc2V1ZG9UeXBlIHR5cGUpCiAgICAgY2FzZSBQc2V1ZG9JbnB1dFNwZWVjaEJ1dHRvbjoKICAg
ICAgICAgcmV0dXJuIElOUFVUX1NQRUVDSF9CVVRUT047CiAjZW5kaWYKKyNpZiBFTkFCTEUoREVW
SUNFX0VMRU1FTlQpCisgICAgY2FzZSBQc2V1ZG9EZXZpY2VCdXR0b246CisgICAgICAgIHJldHVy
biBERVZJQ0VfQlVUVE9OOworI2VuZGlmCiAgICAgY2FzZSBQc2V1ZG9TZWFyY2hDYW5jZWxCdXR0
b246CiAgICAgICAgIHJldHVybiBTRUFSQ0hfQ0FOQ0VMX0JVVFRPTjsKICAgICBjYXNlIFBzZXVk
b1NlYXJjaERlY29yYXRpb246CkBAIC0yODUsNiArMjg5LDkgQEAgc3RhdGljIEhhc2hNYXA8QXRv
bWljU3RyaW5nSW1wbCosIENTU1NlbGVjdG9yOjpQc2V1ZG9UeXBlPiogbmFtZVRvUHNldWRvVHlw
ZU1hcCgKICNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQogICAgIERFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCBpbnB1dFNwZWVjaEJ1dHRvbiwgKCItd2Via2l0LWlucHV0LXNwZWVjaC1i
dXR0b24iKSk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoREVWSUNFX0VMRU1FTlQpCisgICAgREVGSU5F
X1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGRldmljZUJ1dHRvbiwgKCItd2Via2l0LWRldmlj
ZS1idXR0b24iKSk7CisjZW5kaWYKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmlu
ZywgZGVmYXVsdFN0cmluZywgKCJkZWZhdWx0IikpOwogICAgIERFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCBkaXNhYmxlZCwgKCJkaXNhYmxlZCIpKTsKICAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKEF0b21pY1N0cmluZywgcmVhZE9ubHksICgicmVhZC1vbmx5IikpOwpAQCAtMzg5LDYg
KzM5Niw5IEBAIHN0YXRpYyBIYXNoTWFwPEF0b21pY1N0cmluZ0ltcGwqLCBDU1NTZWxlY3Rvcjo6
UHNldWRvVHlwZT4qIG5hbWVUb1BzZXVkb1R5cGVNYXAoCiAjaWYgRU5BQkxFKElOUFVUX1NQRUVD
SCkKICAgICAgICAgbmFtZVRvUHNldWRvVHlwZS0+c2V0KGlucHV0U3BlZWNoQnV0dG9uLmltcGwo
KSwgQ1NTU2VsZWN0b3I6OlBzZXVkb0lucHV0U3BlZWNoQnV0dG9uKTsKICNlbmRpZgorI2lmIEVO
QUJMRShERVZJQ0VfRUxFTUVOVCkKKyAgICAgICAgbmFtZVRvUHNldWRvVHlwZS0+c2V0KGRldmlj
ZUJ1dHRvbi5pbXBsKCksIENTU1NlbGVjdG9yOjpQc2V1ZG9EZXZpY2VCdXR0b24pOworI2VuZGlm
CiAgICAgICAgIG5hbWVUb1BzZXVkb1R5cGUtPnNldChkZWZhdWx0U3RyaW5nLmltcGwoKSwgQ1NT
U2VsZWN0b3I6OlBzZXVkb0RlZmF1bHQpOwogICAgICAgICBuYW1lVG9Qc2V1ZG9UeXBlLT5zZXQo
ZGlzYWJsZWQuaW1wbCgpLCBDU1NTZWxlY3Rvcjo6UHNldWRvRGlzYWJsZWQpOwogICAgICAgICBu
YW1lVG9Qc2V1ZG9UeXBlLT5zZXQocmVhZE9ubHkuaW1wbCgpLCBDU1NTZWxlY3Rvcjo6UHNldWRv
UmVhZE9ubHkpOwpAQCAtNTEzLDYgKzUyMyw5IEBAIHZvaWQgQ1NTU2VsZWN0b3I6OmV4dHJhY3RQ
c2V1ZG9UeXBlKCkgY29uc3QKICNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQogICAgIGNhc2UgUHNl
dWRvSW5wdXRTcGVlY2hCdXR0b246CiAjZW5kaWYKKyNpZiBFTkFCTEUoREVWSUNFX0VMRU1FTlQp
CisgICAgY2FzZSBQc2V1ZG9EZXZpY2VCdXR0b246CisjZW5kaWYKICAgICBjYXNlIFBzZXVkb0lu
bmVyU3BpbkJ1dHRvbjoKICAgICBjYXNlIFBzZXVkb01lZGlhQ29udHJvbHNQYW5lbDoKICAgICBj
YXNlIFBzZXVkb01lZGlhQ29udHJvbHNDdXJyZW50VGltZURpc3BsYXk6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NT
ZWxlY3Rvci5oCmluZGV4IGYzZjgwMGJmYWRlYjgyNzc5MjI1M2VhNWI4Mjc4NTAyYjBiMmNkOGUu
LjhmNDYxYTRlNzk4NDBkNDIzZTc0ZDJiNDZlNWUwOTg2NDg0ZDdmY2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NTZWxlY3Rvci5oCkBAIC0xOTMsNiArMTkzLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2lm
IEVOQUJMRShJTlBVVF9TUEVFQ0gpCiAgICAgICAgICAgICBQc2V1ZG9JbnB1dFNwZWVjaEJ1dHRv
biwKICNlbmRpZgorI2lmIEVOQUJMRShERVZJQ0VfRUxFTUVOVCkKKyAgICAgICAgICAgIFBzZXVk
b0RldmljZUJ1dHRvbiwKKyNlbmRpZgogICAgICAgICAgICAgUHNldWRvSW5uZXJTcGluQnV0dG9u
LAogICAgICAgICAgICAgUHNldWRvT3V0ZXJTcGluQnV0dG9uLAogICAgICAgICAgICAgUHNldWRv
TGVmdFBhZ2UsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jk
cy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCmluZGV4IDRmY2U0
ZjM5MDY4Y2VkM2I4MmU1MTA2Zjg5NWNhNzc2N2RmYzk4MWIuLjE4ZWI4ODUyOWIzODkyMTI0ZWM4
YjFmYzdlM2FhYWMzMTU4NmEzZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NW
YWx1ZUtleXdvcmRzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRz
LmluCkBAIC01NzEsNiArNTcxLDcgQEAgYnV0dG9uLWJldmVsCiBkZWZhdWx0LWJ1dHRvbgogaW5u
ZXItc3Bpbi1idXR0b24KIC13ZWJraXQtaW5wdXQtc3BlZWNoLWJ1dHRvbgorLXdlYmtpdC1kZXZp
Y2UtYnV0dG9uCiBsaXN0LWJ1dHRvbgogbGlzdGJveAogbGlzdGl0ZW0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9odG1sLmNzcyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9odG1sLmNzcwpp
bmRleCA3OWZkZTg4MGNjY2Y4YTU1NDNiMWQ3YmEwNWEyNTJkZjhiOWQzYzExLi41MzQ0ZDVlZmRi
NTRmZDA1ODkxN2U2OWQ1YzM3MmY1MzlkZmUwZWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvaHRtbC5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL2h0bWwuY3NzCkBAIC00Nzks
MTIgKzQ3OSwxMiBAQCBpbnB1dFt0eXBlPSJyYWRpbyJdLCBpbnB1dFt0eXBlPSJjaGVja2JveCJd
IHsKICAgICBib3JkZXI6IGluaXRpYWw7CiB9CiAKLWlucHV0W3R5cGU9ImJ1dHRvbiJdLCBpbnB1
dFt0eXBlPSJzdWJtaXQiXSwgaW5wdXRbdHlwZT0icmVzZXQiXSwgaW5wdXRbdHlwZT0iZmlsZSJd
Ojotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7CitpbnB1dFt0eXBlPSJidXR0b24iXSwgaW5w
dXRbdHlwZT0ic3VibWl0Il0sIGlucHV0W3R5cGU9InJlc2V0Il0sIGlucHV0W3R5cGU9ImZpbGUi
XTo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24sIGRldmljZTo6LXdlYmtpdC1kZXZpY2UtYnV0
dG9uIHsKICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IHB1c2gtYnV0dG9uOwogICAgIHdoaXRlLXNw
YWNlOiBwcmUKIH0KIAotaW5wdXRbdHlwZT0iYnV0dG9uIl0sIGlucHV0W3R5cGU9InN1Ym1pdCJd
LCBpbnB1dFt0eXBlPSJyZXNldCJdLCBpbnB1dFt0eXBlPSJmaWxlIl06Oi13ZWJraXQtZmlsZS11
cGxvYWQtYnV0dG9uLCBidXR0b24geworaW5wdXRbdHlwZT0iYnV0dG9uIl0sIGlucHV0W3R5cGU9
InN1Ym1pdCJdLCBpbnB1dFt0eXBlPSJyZXNldCJdLCBpbnB1dFt0eXBlPSJmaWxlIl06Oi13ZWJr
aXQtZmlsZS11cGxvYWQtYnV0dG9uLCBkZXZpY2U6Oi13ZWJraXQtZGV2aWNlLWJ1dHRvbiwgYnV0
dG9uIHsKICAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyOwogICAgIHRleHQtYWxpZ246IGNl
bnRlcjsKICAgICBjdXJzb3I6IGRlZmF1bHQ7CkBAIC01MDksMTUgKzUwOSwxNiBAQCBpbnB1dFt0
eXBlPSJyYW5nZSJdOjotd2Via2l0LXNsaWRlci10aHVtYiB7CiAKIGlucHV0W3R5cGU9ImJ1dHRv
biJdOmRpc2FibGVkLCBpbnB1dFt0eXBlPSJzdWJtaXQiXTpkaXNhYmxlZCwgaW5wdXRbdHlwZT0i
cmVzZXQiXTpkaXNhYmxlZCwKIGlucHV0W3R5cGU9ImZpbGUiXTpkaXNhYmxlZDo6LXdlYmtpdC1m
aWxlLXVwbG9hZC1idXR0b24sIGJ1dHRvbjpkaXNhYmxlZCwKLXNlbGVjdDpkaXNhYmxlZCwga2V5
Z2VuOmRpc2FibGVkLCBvcHRncm91cDpkaXNhYmxlZCwgb3B0aW9uOmRpc2FibGVkLCBkYXRhZ3Jp
ZDpkaXNhYmxlZCB7CitzZWxlY3Q6ZGlzYWJsZWQsIGtleWdlbjpkaXNhYmxlZCwgb3B0Z3JvdXA6
ZGlzYWJsZWQsIG9wdGlvbjpkaXNhYmxlZCwgZGF0YWdyaWQ6ZGlzYWJsZWQsCitkZXZpY2U6ZGlz
YWJsZWQ6Oi13ZWJraXQtZGV2aWNlLWJ1dHRvbiB7CiAgICAgY29sb3I6IEdyYXlUZXh0CiB9CiAK
LWlucHV0W3R5cGU9ImJ1dHRvbiJdOmFjdGl2ZSwgaW5wdXRbdHlwZT0ic3VibWl0Il06YWN0aXZl
LCBpbnB1dFt0eXBlPSJyZXNldCJdOmFjdGl2ZSwgaW5wdXRbdHlwZT0iZmlsZSJdOmFjdGl2ZTo6
LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24sIGJ1dHRvbjphY3RpdmUgeworaW5wdXRbdHlwZT0i
YnV0dG9uIl06YWN0aXZlLCBpbnB1dFt0eXBlPSJzdWJtaXQiXTphY3RpdmUsIGlucHV0W3R5cGU9
InJlc2V0Il06YWN0aXZlLCBpbnB1dFt0eXBlPSJmaWxlIl06YWN0aXZlOjotd2Via2l0LWZpbGUt
dXBsb2FkLWJ1dHRvbiwgZGV2aWNlOmFjdGl2ZTo6LXdlYmtpdC1kZXZpY2UtYnV0dG9uLCBidXR0
b246YWN0aXZlIHsKICAgICBib3JkZXItc3R5bGU6IGluc2V0CiB9CiAKLWlucHV0W3R5cGU9ImJ1
dHRvbiJdOmFjdGl2ZTpkaXNhYmxlZCwgaW5wdXRbdHlwZT0ic3VibWl0Il06YWN0aXZlOmRpc2Fi
bGVkLCBpbnB1dFt0eXBlPSJyZXNldCJdOmFjdGl2ZTpkaXNhYmxlZCwgaW5wdXRbdHlwZT0iZmls
ZSJdOmFjdGl2ZTpkaXNhYmxlZDo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24sIGJ1dHRvbjph
Y3RpdmU6ZGlzYWJsZWQgeworaW5wdXRbdHlwZT0iYnV0dG9uIl06YWN0aXZlOmRpc2FibGVkLCBp
bnB1dFt0eXBlPSJzdWJtaXQiXTphY3RpdmU6ZGlzYWJsZWQsIGlucHV0W3R5cGU9InJlc2V0Il06
YWN0aXZlOmRpc2FibGVkLCBpbnB1dFt0eXBlPSJmaWxlIl06YWN0aXZlOmRpc2FibGVkOjotd2Vi
a2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiwgZGV2aWNlOmFjdGl2ZTpkaXNhYmxlZDo6LXdlYmtpdC1k
ZXZpY2UtYnV0dG9uLCBidXR0b246YWN0aXZlOmRpc2FibGVkIHsKICAgICBib3JkZXItc3R5bGU6
IG91dHNldAogfQogCkBAIC03OTcsNyArNzk4LDggQEAgaW5wdXRbdHlwZT0icmFkaW8iXTpmb2N1
cywKIGlucHV0W3R5cGU9InJlc2V0Il06Zm9jdXMsCiBpbnB1dFt0eXBlPSJzZWFyY2giXTpmb2N1
cywKIGlucHV0W3R5cGU9InN1Ym1pdCJdOmZvY3VzLAotaW5wdXRbdHlwZT0iZmlsZSJdOmZvY3Vz
Ojotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7CitpbnB1dFt0eXBlPSJmaWxlIl06Zm9jdXM6
Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uLAorZGV2aWNlOmZvY3VzOjotd2Via2l0LWRldmlj
ZS1idXR0b24gewogICAgIG91dGxpbmUtb2Zmc2V0OiAwCiB9CiAgICAgCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RP
TUFsbEluT25lLmNwcAppbmRleCBjODhhZWNmOTQ4NTQ3NDY5YWQwZGUwZTRhZDUwY2NmZWMwOGJm
NjUyLi41MTc5N2VmNzFjMTI2MGNlZGFiY2MwMjFmNDJkOTViMTE2ZGQxYjIxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9ET01BbGxJbk9uZS5jcHAKQEAgLTUxLDEyICs1MSwxNCBAQAogI2luY2x1ZGUgIkRPTVN0
cmluZ01hcC5jcHAiCiAjaW5jbHVkZSAiRGF0YXNldERPTVN0cmluZ01hcC5jcHAiCiAjaW5jbHVk
ZSAiRGVjb2RlZERhdGFEb2N1bWVudFBhcnNlci5jcHAiCisjaW5jbHVkZSAiRGV2aWNlRWxlbWVu
dC5jcHAiCiAjaW5jbHVkZSAiRGV2aWNlTW90aW9uQ29udHJvbGxlci5jcHAiCiAjaW5jbHVkZSAi
RGV2aWNlTW90aW9uRGF0YS5jcHAiCiAjaW5jbHVkZSAiRGV2aWNlTW90aW9uRXZlbnQuY3BwIgog
I2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uLmNwcCIKICNpbmNsdWRlICJEZXZpY2VPcmllbnRh
dGlvbkNvbnRyb2xsZXIuY3BwIgogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uRXZlbnQuY3Bw
IgorI2luY2x1ZGUgIkRldmljZVR5cGUuY3BwIgogI2luY2x1ZGUgIkRvY3VtZW50LmNwcCIKICNp
bmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmNwcCIKICNpbmNsdWRlICJEb2N1bWVudE1hcmtlckNv
bnRyb2xsZXIuY3BwIgpAQCAtMTEwLDYgKzExMiw4IEBACiAjaW5jbHVkZSAiU3BhY2VTcGxpdFN0
cmluZy5jcHAiCiAjaW5jbHVkZSAiU3RhdGljSGFzaFNldE5vZGVMaXN0LmNwcCIKICNpbmNsdWRl
ICJTdGF0aWNOb2RlTGlzdC5jcHAiCisjaW5jbHVkZSAiU3RyZWFtLmNwcCIKKyNpbmNsdWRlICJT
dHJlYW1SZWNvcmRlci5jcHAiCiAjaW5jbHVkZSAiU3R5bGVFbGVtZW50LmNwcCIKICNpbmNsdWRl
ICJTdHlsZWRFbGVtZW50LmNwcCIKICNpbmNsdWRlICJUYWdOb2RlTGlzdC5jcHAiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRGV2aWNlRWxlbWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDU1Y2VhM2UzYjEzMGJjYmJjNmNk
OWI2ZTU5ZTliYjZmZmUyMjVjNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9EZXZpY2VFbGVtZW50LmNwcApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAq
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIkRldmljZUVsZW1lbnQuaCIKKworI2lmIEVOQUJMRShERVZJQ0VfRUxFTUVOVCkK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitEZXZpY2VFbGVtZW50OjpEZXZpY2VFbGVtZW50KCkK
K3sKK30KKworRGV2aWNlRWxlbWVudDo6RGV2aWNlRWxlbWVudChjb25zdCBTdHJpbmcmIHR5cGUp
CisgICAgOiBtX3R5cGUodHlwZSkKK3sKK30KKworU3RyaW5nIERldmljZUVsZW1lbnQ6OnR5cGUo
KSBjb25zdAoreworICAgIHJldHVybiBtX3R5cGUubmFtZSgpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREVWSUNFX0VMRU1FTlQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RldmljZUVsZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYzUzNzVmMTM3MGJjODQzYjA1ZGI1MDJlZmM4
MzdhOTQwOGVjZTA5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rldmlj
ZUVsZW1lbnQuaApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
KyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBEZXZpY2VFbGVtZW50X2gKKyNkZWZp
bmUgRGV2aWNlRWxlbWVudF9oCisKKyNpZiBFTkFCTEUoREVWSUNFX0VMRU1FTlQpCisKKyNpbmNs
dWRlICJEZXZpY2VUeXBlLmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3
dGYvUGFzc1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFN0cmVhbTsK
KworY2xhc3MgRGV2aWNlRWxlbWVudCB7CitwdWJsaWM6CisgICAgRGV2aWNlRWxlbWVudCgpOwor
ICAgIERldmljZUVsZW1lbnQoY29uc3QgU3RyaW5nJiB0eXBlKTsKKworICAgIFN0cmluZyB0eXBl
KCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHNldFR5cGUoY29uc3QgU3RyaW5nJikgPSAwOwor
ICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTdHJlYW0+IGRhdGEoKSA9IDA7IC8vIEZJWE1FOiB1c2Ug
Z2VuZXJpYyBkYXRhIHR5cGVzIHdoZW4gZXh0ZW5kaW5nIHRoZSB0YWcgYmV5b25kIG1lZGlhLgor
Citwcm90ZWN0ZWQ6CisgICAgRGV2aWNlVHlwZSBtX3R5cGU7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREVWSUNFX0VMRU1FTlQpCisKKyNlbmRpZiAv
LyBEZXZpY2VFbGVtZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VU
eXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VUeXBlLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5i
NDc5ZDE5NzY4ZTVjNWQxY2VkYWNhYjBiMmI5OTMzMDU0MDUxNjk5Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZVR5cGUuY3BwCkBAIC0wLDAgKzEsNzcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICog
ZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGV2aWNlVHlwZS5oIgorCisjaWYgRU5BQkxFKERF
VklDRV9FTEVNRU5UKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8vIEF2b2lkIHVzaW5nIHN0
YXRpYyBTdHJpbmdzLiBDb2RlIHNob3VsZCBub3QgcnVuIG9uIFdlYktpdCBsb2FkLgorY29uc3Qg
Y2hhciogRGV2aWNlVHlwZTo6c19uYW1lc1tdID0KK3sKKyAgICAiaW52YWxpZCIsCisgICAgIm1l
ZGlhIgorfTsKKworRGV2aWNlVHlwZTo6RGV2aWNlVHlwZSgpCisgICAgOiBtX2lkKEludmFsaWQp
Cit7Cit9CisKK0RldmljZVR5cGU6OkRldmljZVR5cGUoRGV2aWNlVHlwZUlkIGlkKQoreworICAg
IEFTU0VSVChpZCA+IEludmFsaWQgJiYgaWQgPCBOdW1EZXZpY2VUeXBlcyk7CisgICAgbV9pZCA9
IGlkOworfQorCitEZXZpY2VUeXBlOjpEZXZpY2VUeXBlKGNvbnN0IFN0cmluZyYgbmFtZSkKK3sK
KyAgICAvLyBJZ25vcmUgaW52YWxpZCB0eXBlcy4KKyAgICBmb3IgKHNpemVfdCBpID0gMTsgaSA8
IHNpemVvZihzX25hbWVzKSAvIHNpemVvZihjb25zdCBjaGFyICopOyArK2kpIHsKKyAgICAgICAg
aWYgKG5hbWUgPT0gU3RyaW5nKHNfbmFtZXNbaV0pKSB7CisgICAgICAgICAgICBtX2lkID0gc3Rh
dGljX2Nhc3Q8RGV2aWNlVHlwZUlkPihpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorICAgIH0KKworICAgIG1faWQgPSBJbnZhbGlkOworfQorCitTdHJpbmcgRGV2aWNlVHlwZTo6
c3RyaW5nQnlJZChEZXZpY2VUeXBlSWQgaWQpCit7CisgICAgQVNTRVJUKGlkID4gSW52YWxpZCAm
JiBpZCA8IE51bURldmljZVR5cGVzKTsKKyAgICByZXR1cm4gc19uYW1lc1tpZF07Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShERVZJQ0VfRUxFTUVOVCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VUeXBlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRGV2aWNlVHlwZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVlZWYxNjU3YjM1MzNlNzU5M2YzYWIw
ODE5NjE1NmZiN2RiZjIxZTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RGV2aWNlVHlwZS5oCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIERldmljZVR5cGVfaAorI2RlZmlu
ZSBEZXZpY2VUeXBlX2gKKworI2lmIEVOQUJMRShERVZJQ0VfRUxFTUVOVCkKKworI2luY2x1ZGUg
IlBsYXRmb3JtU3RyaW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGV2aWNl
VHlwZSB7CitwdWJsaWM6CisgICAgZW51bSBEZXZpY2VUeXBlSWQgeworICAgICAgICBJbnZhbGlk
ID0gMCwgLy8gSW52YWxpZCBkZXZpY2UgdHlwZSB2YWx1ZS4gTm90IGEgcmVzZXJ2ZWQgdHlwZSBp
biB0aGUgc3BlYy4KKyAgICAgICAgTWVkaWEsCisgICAgICAgIE51bURldmljZVR5cGVzCisgICAg
fTsKKworICAgIERldmljZVR5cGUoKTsKKyAgICBEZXZpY2VUeXBlKERldmljZVR5cGVJZCk7Cisg
ICAgRGV2aWNlVHlwZShjb25zdCBTdHJpbmcmIG5hbWUpOworCisgICAgRGV2aWNlVHlwZUlkIGlk
KCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQorICAgIFN0cmluZyBuYW1lKCkgY29uc3QgeyByZXR1
cm4gc19uYW1lc1ttX2lkXTsgfQorICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIG1f
aWQgIT0gSW52YWxpZDsgfQorCisgICAgc3RhdGljIFN0cmluZyBzdHJpbmdCeUlkKERldmljZVR5
cGVJZCk7CisKK3ByaXZhdGU6CisgICAgRGV2aWNlVHlwZUlkIG1faWQ7CisgICAgc3RhdGljIGNv
bnN0IGNoYXIqIHNfbmFtZXNbXTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEVOQUJMRShERVZJQ0VfRUxFTUVOVCkKKworI2VuZGlmIC8vIERldmljZVR5cGVfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1N0cmVhbS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vU3RyZWFtLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZjljNzI5ZTA1Y2E4YjM0OTNlZTQzNGMyNDdl
MDEyYzgyODAyYWRjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0cmVh
bS5jcHAKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
CisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTdHJl
YW0uaCIKKworI2lmIEVOQUJMRShERVZJQ0VfRUxFTUVOVCkKKworI2luY2x1ZGUgIlN0cmVhbVJl
Y29yZGVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxTdHJlYW0+IFN0
cmVhbTo6Y3JlYXRlKEhUTUxEZXZpY2VFbGVtZW50KiBkZXZpY2UsIGNvbnN0IFN0cmluZyYgdXJs
KQoreworICAgIEFTU0VSVChkZXZpY2UpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3RyZWFt
KGRldmljZSwgdXJsKSk7Cit9CisKK1N0cmVhbTo6U3RyZWFtKEhUTUxEZXZpY2VFbGVtZW50KiBk
ZXZpY2UsIGNvbnN0IFN0cmluZyYgdXJsKQorICAgIDogbV9kZXZpY2VFbGVtZW50KGFkb3B0UmVm
KGRldmljZSkpCisgICAgLCBtX3VybCh1cmwpCit7Cit9CisKK1N0cmVhbTo6flN0cmVhbSgpCit7
Cit9CisKK1N0cmluZyBTdHJlYW06OnVybCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdXJsOwor
fQorCitQYXNzUmVmUHRyPFN0cmVhbVJlY29yZGVyPiBTdHJlYW06OnJlY29yZCgpCit7CisgICAg
cmV0dXJuIFN0cmVhbVJlY29yZGVyOjpjcmVhdGUodGhpcyk7Cit9CisKK1Bhc3NSZWZQdHI8SFRN
TERldmljZUVsZW1lbnQ+IFN0cmVhbTo6ZGV2aWNlRWxlbWVudCgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fZGV2aWNlRWxlbWVudDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRU5BQkxFKERFVklDRV9FTEVNRU5UKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL1N0cmVhbS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0cmVhbS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU4
NmE1MDU0NDEyMjFiMjgzNjJlMmE2ODBiNTg0YjIyNGM3YmNiMDUKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vU3RyZWFtLmgKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmli
dXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgU3Ry
ZWFtX2gKKyNkZWZpbmUgU3RyZWFtX2gKKworI2lmIEVOQUJMRShERVZJQ0VfRUxFTUVOVCkKKwor
I2luY2x1ZGUgIkhUTUxEZXZpY2VFbGVtZW50LmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
KyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGV2aWNlRWxlbWVudDsKK2NsYXNzIEhU
TUxEZXZpY2VFbGVtZW50OworY2xhc3MgU3RyZWFtUmVjb3JkZXI7CisKK2NsYXNzIFN0cmVhbSA6
IHB1YmxpYyBSZWZDb3VudGVkPFN0cmVhbT4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFN0cmVhbT4gY3JlYXRlKEhUTUxEZXZpY2VFbGVtZW50KiwgY29uc3QgU3RyaW5nJiB1cmwp
OworICAgIH5TdHJlYW0oKTsKKworICAgIFN0cmluZyB1cmwoKSBjb25zdDsKKyAgICBQYXNzUmVm
UHRyPFN0cmVhbVJlY29yZGVyPiByZWNvcmQoKTsKKyAgICBQYXNzUmVmUHRyPEhUTUxEZXZpY2VF
bGVtZW50PiBkZXZpY2VFbGVtZW50KCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgU3RyZWFtKEhU
TUxEZXZpY2VFbGVtZW50KiwgY29uc3QgU3RyaW5nJiB1cmwpOworICAgIFJlZlB0cjxIVE1MRGV2
aWNlRWxlbWVudD4gbV9kZXZpY2VFbGVtZW50OworICAgIFN0cmluZyBtX3VybDsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShERVZJQ0VfRUxFTUVOVCkK
KworI2VuZGlmIC8vIFN0cmVhbV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU3Ry
ZWFtLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHJlYW0uaWRsCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM3ODY5
OTlhZTY4NzhkNmQ3YjNmZTQ0OGMxNDY2ZjQ0NTY1ZmNhMTYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vU3RyZWFtLmlkbApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1
dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBu
YW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
KyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIGNvcmUg
eworCisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9REVWSUNFX0VMRU1FTlQK
KyAgICBdIFN0cmVhbSB7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdXJs
OworICAgICAgICBTdHJlYW1SZWNvcmRlciByZWNvcmQoKTsKKyAgICB9OworfQorCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU3RyZWFtUmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL1N0cmVhbVJlY29yZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iODMxNWE4NGFjODM5MzNhNjBl
MmQ4YjExZDY0YjMzNDE5NzA1ZDQ0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1N0cmVhbVJlY29yZGVyLmNwcApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4K
KyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlN0cmVhbVJlY29yZGVyLmgiCisKKyNpbmNsdWRlICJGaWxlLmgiCisjaW5j
bHVkZSAiU3RyZWFtLmgiCisKKyNpZiBFTkFCTEUoREVWSUNFX0VMRU1FTlQpCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxTdHJlYW1SZWNvcmRlcj4gU3RyZWFtUmVjb3JkZXI6
OmNyZWF0ZShTdHJlYW0qIHN0cmVhbSkKK3sKKyAgICBBU1NFUlQoc3RyZWFtKTsKKyAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFN0cmVhbVJlY29yZGVyKHN0cmVhbSkpOworfQorCitTdHJlYW1SZWNv
cmRlcjo6U3RyZWFtUmVjb3JkZXIoU3RyZWFtKiBzdHJlYW0pCisgICAgOiBtX3N0cmVhbShhZG9w
dFJlZihzdHJlYW0pKQorICAgICwgbV9zdG9wcGVkKGZhbHNlKQoreworICAgIC8vIEZJWE1FOiBp
bXBsZW1lbnQgcmVxdWVzdGluZyB0byByZWNvcmQgaW50byBhIGZpbGUgYW5kIHNldCBtX3BhdGgu
Cit9CisKK1N0cmVhbVJlY29yZGVyOjp+U3RyZWFtUmVjb3JkZXIoKQoreworICAgIC8vIEZJWE1F
OiBpbXBsZW1lbnQgcmVjb3JkaW5nIHN0b3AuCit9CisKK1Bhc3NSZWZQdHI8RmlsZT4gU3RyZWFt
UmVjb3JkZXI6OnN0b3AoKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgcmVjb3JkaW5nIHN0
b3AuCisgICAgbV9zdG9wcGVkID0gdHJ1ZTsKKyAgICByZXR1cm4gRmlsZTo6Y3JlYXRlKG1fcGF0
aCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShERVZJ
Q0VfRUxFTUVOVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHJlYW1SZWNvcmRl
ci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0cmVhbVJlY29yZGVyLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjlk
YzllOGUwNTliOTgzNTQ1ODYzNjFlZWYxOTJlOGU1ZjNkMTY1MwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9TdHJlYW1SZWNvcmRlci5oCkBAIC0wLDAgKzEsNjQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICog
ZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIFN0cmVhbVJlY29yZGVyX2gKKyNkZWZpbmUgU3RyZWFtUmVjb3JkZXJfaAorCisjaWYgRU5B
QkxFKERFVklDRV9FTEVNRU5UKQorCisjaW5jbHVkZSAiU3RyZWFtLmgiCisjaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRmlsZTsKKworY2xh
c3MgU3RyZWFtUmVjb3JkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxTdHJlYW1SZWNvcmRlcj4gewor
cHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cmVhbVJlY29yZGVyPiBjcmVhdGUoU3Ry
ZWFtKik7CisgICAgflN0cmVhbVJlY29yZGVyKCk7CisKKyAgICBQYXNzUmVmUHRyPEZpbGU+IHN0
b3AoKTsKKworcHJpdmF0ZToKKyAgICBTdHJlYW1SZWNvcmRlcihTdHJlYW0qKTsKKworICAgIFJl
ZlB0cjxTdHJlYW0+IG1fc3RyZWFtOworICAgIFN0cmluZyBtX3BhdGg7CisgICAgYm9vbCBtX3N0
b3BwZWQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
REVWSUNFX0VMRU1FTlQpCisKKyNlbmRpZiAvLyBTdHJlYW1SZWNvcmRlcl9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vU3RyZWFtUmVjb3JkZXIuaWRsIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1N0cmVhbVJlY29yZGVyLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MmQ2ZGYzNzgxNTRjMjg1ZmI0ZDcz
MzMxOTdjOTUxOTA1MjYzZTczCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1N0cmVhbVJlY29yZGVyLmlkbApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAq
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIGNvcmUgeworCisgICAg
aW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9REVWSUNFX0VMRU1FTlQKKyAgICBdIFN0
cmVhbVJlY29yZGVyIHsKKyAgICAgICAgRmlsZSBzdG9wKCk7CisgICAgfTsKK30KKwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZmVhdHVyZXMucHJpIGIvU291cmNlL1dlYkNvcmUvZmVhdHVy
ZXMucHJpCmluZGV4IGIzZjBlMmQ5MTVlNTU1ZGJmNTE3NTY3YTA0YWI3ZTkyYWE2ZWYwYjcuLjdl
NTVjODFjMTcyYTUzYzhkYmI0MTM3Y2ZkNDlhYmQ4OGM4MzFlOGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2ZlYXR1cmVzLnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9mZWF0dXJlcy5wcmkK
QEAgLTc1LDYgKzc1LDcgQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1NJTkdMRV9USFJFQURF
RD0xKSB7CiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1dFQl9BVURJTz0uKTogREVGSU5FUyAr
PSBFTkFCTEVfV0VCX0FVRElPPTAKICFjb250YWlucyhERUZJTkVTLCBFTkFCTEVfV0VCR0w9Lik6
IERFRklORVMgKz0gRU5BQkxFX1dFQkdMPTAKICFjb250YWlucyhERUZJTkVTLCBFTkFCTEVfTUVE
SUFfU1RBVElTVElDUz0uKTogREVGSU5FUyArPSBFTkFCTEVfTUVESUFfU1RBVElTVElDUz0wCish
Y29udGFpbnMoREVGSU5FUywgRU5BQkxFX0RFVklDRV9FTEVNRU5UPS4pOiBERUZJTkVTICs9IEVO
QUJMRV9ERVZJQ0VfRUxFTUVOVD0wCiAKICMgU1ZHIHN1cHBvcnQKICFjb250YWlucyhERUZJTkVT
LCBFTkFCTEVfU1ZHPTApIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERl
dmljZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV2aWNlRWxlbWVudC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNzliM2NiODk3Nzg1MTFlMmE5OGVlZWRmOGQyNTYyZWU0NTUyOTkzYwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldmljZUVsZW1lbnQu
Y3BwCkBAIC0wLDAgKzEsMTA5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkhUTUxE
ZXZpY2VFbGVtZW50LmgiCisKKyNpZiBFTkFCTEUoREVWSUNFX0VMRU1FTlQpCisKKyNpbmNsdWRl
ICJFdmVudC5oIgorI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMu
aCIKKyNpbmNsdWRlICJTdHJlYW0uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBu
YW1lc3BhY2UgSFRNTE5hbWVzOworCitpbmxpbmUgSFRNTERldmljZUVsZW1lbnQ6OkhUTUxEZXZp
Y2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVu
dCkKKyAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQoreworfQorCitQYXNzUmVm
UHRyPEhUTUxEZXZpY2VFbGVtZW50PiBIVE1MRGV2aWNlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4g
YWRvcHRSZWYobmV3IEhUTUxEZXZpY2VFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7Cit9CisK
K0hUTUxEZXZpY2VFbGVtZW50Ojp+SFRNTERldmljZUVsZW1lbnQoKQoreworfQorCit2b2lkIEhU
TUxEZXZpY2VFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHJpYnV0
ZSkKK3sKKyAgICBpZiAoYXR0cmlidXRlLT5uYW1lKCkgPT0gdHlwZUF0dHIpCisgICAgICAgIG1f
dHlwZSA9IERldmljZVR5cGUoZmFzdEdldEF0dHJpYnV0ZSh0eXBlQXR0cikpOworICAgIGVsc2UK
KyAgICAgICAgSFRNTEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0dHJpYnV0ZSk7Cit9
CisKK3ZvaWQgSFRNTERldmljZUVsZW1lbnQ6OnNldFR5cGUoY29uc3QgU3RyaW5nJiB0eXBlKQor
eworICAgIG1fdHlwZSA9IERldmljZVR5cGUodHlwZSk7Cit9CisKK1Bhc3NSZWZQdHI8U3RyZWFt
PiBIVE1MRGV2aWNlRWxlbWVudDo6ZGF0YSgpCit7CisgICAgLy8gRklYTUU6IHByb3ZpZGUgYSB2
YWxpZCBzdHJlYW0gdXJsLgorICAgIHJldHVybiBTdHJlYW06OmNyZWF0ZSh0aGlzLCAiZHVtbXki
KTsKK30KKwordm9pZCBIVE1MRGV2aWNlRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVu
dCogZXZlbnQpCit7CisgICAgLy8gSWdub3JlIGV2ZW50cyBmcm9tIGludmFsaWQgZGV2aWNlIGVs
ZW1lbnRzLgorICAgIGlmICghbV90eXBlLmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgLy8gRm9yIHNlY3VyaXR5IHJlYXNvbnMsIG9ubHkgYWxsb3cgY2xpY2tzIGRpcmVjdGx5IGNv
bWluZyBmcm9tIHRoZSB1c2VyLgorICAgIGlmICghZXZlbnQtPmZyb21Vc2VyR2VzdHVyZSgpKSB7
CisgICAgICAgIEhUTUxFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMo
KS5jbGlja0V2ZW50KSB7CisgICAgICAgIC8vIEZJWE1FOiBwcm9jZXNzIHVzZXIgcmVxdWVzdHMu
CisgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOworICAgIH0KKworICAgIGlmICgh
ZXZlbnQtPmRlZmF1bHRIYW5kbGVkKCkpCisgICAgICAgIEhUTUxFbGVtZW50OjpkZWZhdWx0RXZl
bnRIYW5kbGVyKGV2ZW50KTsKK30KKworSFRNTERldmljZUVsZW1lbnQqIHRvSFRNTERldmljZUVs
ZW1lbnQoRWxlbWVudCogZWxlbWVudCkKK3sKKyAgICBpZiAoZWxlbWVudC0+aXNIVE1MRWxlbWVu
dCgpICYmIGVsZW1lbnQtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpkZXZpY2VUYWcpKQorICAgICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTERldmljZUVsZW1lbnQqPihlbGVtZW50KTsKKworICAg
IHJldHVybiAwOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFC
TEUoREVWSUNFX0VMRU1FTlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxE
ZXZpY2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXZpY2VFbGVtZW50LmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYjI0YjYzZTkxOTQ3NDRlNTA1YjlhNDQ3MWQxZjIzYzc5NjRmZWQ3YQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldmljZUVsZW1lbnQuaApA
QCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisg
KiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisg
KiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAor
ICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBIVE1MRGV2aWNlRWxlbWVudF9oCisjZGVmaW5lIEhUTUxE
ZXZpY2VFbGVtZW50X2gKKworI2lmIEVOQUJMRShERVZJQ0VfRUxFTUVOVCkKKworI2luY2x1ZGUg
IkRldmljZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgorI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBEZXZpY2VUeXBlOworY2xhc3MgU3RyZWFtOworCitjbGFzcyBIVE1M
RGV2aWNlRWxlbWVudCA6IHB1YmxpYyBIVE1MRWxlbWVudCwgcHVibGljIERldmljZUVsZW1lbnQg
eworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxEZXZpY2VFbGVtZW50PiBjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgdmlydHVhbCB+SFRNTERl
dmljZUVsZW1lbnQoKTsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRUeXBlKGNvbnN0IFN0cmluZyYp
OworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTdHJlYW0+IGRhdGEoKTsKKworICAgIHZpcnR1YWwg
dm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqKTsKKworcHJvdGVjdGVkOgorICAg
IEhUTUxEZXZpY2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAg
IHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Kik7Cit9OworCitIVE1MRGV2
aWNlRWxlbWVudCogdG9IVE1MRGV2aWNlRWxlbWVudChFbGVtZW50Kik7CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShERVZJQ0VfRUxFTUVOVCkKKworI2VuZGlm
IC8vIEhUTUxEZXZpY2VFbGVtZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTERldmljZUVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV2aWNlRWxl
bWVudC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZTgwMTcwMTAwN2NjYjkxNWZiMTAzOTFlMDc0NGQwYzgyNTJj
ZDM5YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldmljZUVs
ZW1lbnQuaWRsCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQor
ICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgaHRtbCB7CisKKyAgICBpbnRlcmZhY2Ug
WworICAgICAgICBDb25kaXRpb25hbD1ERVZJQ0VfRUxFTUVOVAorICAgIF0gSFRNTERldmljZUVs
ZW1lbnQgOiBIVE1MRWxlbWVudCB7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVy
dE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB0eXBlOworICAgICAgICAvLyBGSVhNRTogbWFr
ZSB0aGlzIGEgY3VzdG9tIGdldHRlciBhbmQgcmV0dXJuIGFueS4KKyAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIFN0cmVhbSBkYXRhOworICAgIH07Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhZ05h
bWVzLmluCmluZGV4IDgzZDQxZGVmN2RlNTVmYTAwZmMxZjAzOTE5NmY2MjMzMDY4Yjk0OWUuLjBj
ZjgzNTFiYjJhOWQxMTQ1Yzk4M2Y5YzE3MTMwNzgwOGNhNjQzOGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRhZ05hbWVzLmluCkBAIC0zNyw2ICszNyw3IEBAIGRyb3cgaW50ZXJmYWNlTmFtZT1IVE1M
RGF0YUdyaWRSb3dFbGVtZW50LCBjb25kaXRpb25hbD1EQVRBR1JJRAogZGQgaW50ZXJmYWNlTmFt
ZT1IVE1MRWxlbWVudAogZGVsIGludGVyZmFjZU5hbWU9SFRNTE1vZEVsZW1lbnQKIGRldGFpbHMK
K2RldmljZSBpbnRlcmZhY2VOYW1lPUhUTUxEZXZpY2VFbGVtZW50LCBjb25kaXRpb25hbD1ERVZJ
Q0VfRUxFTUVOVAogZGZuIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIGRpciBpbnRlcmZhY2VO
YW1lPUhUTUxEaXJlY3RvcnlFbGVtZW50CiBkaXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1RoZW1lVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RoZW1lVHlw
ZXMuaAppbmRleCBlYzQ1Y2I3OWZmMzBlNDM0MDEzOTM3ZjMyYWYzZmU5MTVkZTIyYWIzLi42ZmZi
YmNkYzJjMWU4NTNlNjQxZDZhNTc0ZWRkYTNlNTE3YTE4Y2E5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9UaGVtZVR5cGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vVGhlbWVUeXBlcy5oCkBAIC00Nyw3ICs0Nyw3IEBAIHR5cGVkZWYgdW5zaWduZWQgQ29udHJv
bFN0YXRlczsKIC8vIE11c3QgZm9sbG93IENTU1ZhbHVlS2V5d29yZHMuaW4gb3JkZXIKIGVudW0g
Q29udHJvbFBhcnQgewogICAgIE5vQ29udHJvbFBhcnQsIENoZWNrYm94UGFydCwgUmFkaW9QYXJ0
LCBQdXNoQnV0dG9uUGFydCwgU3F1YXJlQnV0dG9uUGFydCwgQnV0dG9uUGFydCwKLSAgICBCdXR0
b25CZXZlbFBhcnQsIERlZmF1bHRCdXR0b25QYXJ0LCBJbm5lclNwaW5CdXR0b25QYXJ0LCBJbnB1
dFNwZWVjaEJ1dHRvblBhcnQsIExpc3RCdXR0b25QYXJ0LCBMaXN0Ym94UGFydCwgTGlzdEl0ZW1Q
YXJ0LAorICAgIEJ1dHRvbkJldmVsUGFydCwgRGVmYXVsdEJ1dHRvblBhcnQsIElubmVyU3BpbkJ1
dHRvblBhcnQsIElucHV0U3BlZWNoQnV0dG9uUGFydCwgRGV2aWNlQnV0dG9uUGFydCwgTGlzdEJ1
dHRvblBhcnQsIExpc3Rib3hQYXJ0LCBMaXN0SXRlbVBhcnQsCiAgICAgTWVkaWFGdWxsc2NyZWVu
QnV0dG9uUGFydCwgTWVkaWFNdXRlQnV0dG9uUGFydCwgTWVkaWFQbGF5QnV0dG9uUGFydCwgTWVk
aWFTZWVrQmFja0J1dHRvblBhcnQsIAogICAgIE1lZGlhU2Vla0ZvcndhcmRCdXR0b25QYXJ0LCBN
ZWRpYVJld2luZEJ1dHRvblBhcnQsIE1lZGlhUmV0dXJuVG9SZWFsdGltZUJ1dHRvblBhcnQsIE1l
ZGlhVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25QYXJ0LAogICAgIE1lZGlhU2xpZGVyUGFydCwg
TWVkaWFTbGlkZXJUaHVtYlBhcnQsIE1lZGlhVm9sdW1lU2xpZGVyQ29udGFpbmVyUGFydCwgTWVk
aWFWb2x1bWVTbGlkZXJQYXJ0LCBNZWRpYVZvbHVtZVNsaWRlclRodW1iUGFydCwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgK
aW5kZXggYzk1YmY1YTNjZDZlMTIyMjRlMGI0NTZiMTY4NzQ3MmM5NzdhMzRlNi4uYTBmNWQ1N2Q3
NDNhYmE3ZWNmYjRiMWI4NGViOTE3YmM4ODIzYTg3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKQEAgLTczLDcgKzcz
LDcgQEAgZW51bSBQc2V1ZG9JZCB7CiAgICAgTUVESUFfQ09OVFJPTFNfU1RBVFVTX0RJU1BMQVks
IFNDUk9MTEJBUl9USFVNQiwgU0NST0xMQkFSX0JVVFRPTiwgU0NST0xMQkFSX1RSQUNLLCBTQ1JP
TExCQVJfVFJBQ0tfUElFQ0UsIFNDUk9MTEJBUl9DT1JORVIsIFJFU0laRVIsCiAgICAgSU5QVVRf
TElTVF9CVVRUT04sIElOUFVUX1NQRUVDSF9CVVRUT04sIElOTkVSX1NQSU5fQlVUVE9OLCBPVVRF
Ul9TUElOX0JVVFRPTiwgVklTSVRFRF9MSU5LLAogICAgIE1FVEVSX0hPUklaT05UQUxfQkFSLCBN
RVRFUl9IT1JJWk9OVEFMX09QVElNVU0sIE1FVEVSX0hPUklaT05UQUxfU1VCT1BUSU1BTCwgTUVU
RVJfSE9SSVpPTlRBTF9FVkVOX0xFU1NfR09PRCwKLSAgICBNRVRFUl9WRVJUSUNBTF9CQVIsIE1F
VEVSX1ZFUlRJQ0FMX09QVElNVU0sIE1FVEVSX1ZFUlRJQ0FMX1NVQk9QVElNQUwsIE1FVEVSX1ZF
UlRJQ0FMX0VWRU5fTEVTU19HT09ELCAKKyAgICBNRVRFUl9WRVJUSUNBTF9CQVIsIE1FVEVSX1ZF
UlRJQ0FMX09QVElNVU0sIE1FVEVSX1ZFUlRJQ0FMX1NVQk9QVElNQUwsIE1FVEVSX1ZFUlRJQ0FM
X0VWRU5fTEVTU19HT09ELCBERVZJQ0VfQlVUVE9OLAogICAgIEFGVEVSX0xBU1RfSU5URVJOQUxf
UFNFVURPSUQsCiAgICAgRlVMTF9TQ1JFRU4sIEZVTExfU0NSRUVOX0RPQ1VNRU5ULAogICAgIEZJ
UlNUX1BVQkxJQ19QU0VVRE9JRCA9IEZJUlNUX0xJTkUsCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85202</attachid>
            <date>2011-03-09 11:22:12 -0800</date>
            <delta_ts>2011-03-09 11:26:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53776-20110309192210.patch</filename>
            <type>text/plain</type>
            <size>128466</size>
            <attacher name="Leandro Graciá Gil">leandrogracia</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODA1NzEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2MWVlMWRhNDU4MGFiZjdk
YWIxY2RiMmY1MWI3YWU4NjE0YzAzOGViLi40OTM0MWM0N2QyYjQ2YTRkMjZjNDk4YzUyNTcyZGU2
MTU2NGQ0ZTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTM4IEBACisyMDExLTAzLTA5ICBMZWFu
ZHJvIEdyYWNpYSBHaWwgIDxsZWFuZHJvZ3JhY2lhQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBzZXNzaW9uLWJhc2Vk
IGNvZGUgZm9yIEhUTUxEZXZpY2VFbGVtZW50IGFuZCBTdHJlYW0uCisgICAgICAgIEEgZGV2aWNl
IHNlc3Npb24gY29udHJvbGxlciBpcyBhbHNvIGFkZGVkIHRvIG1hbmFnZSBzZXNzaW9uIHN0YXR1
cyBhbmQgcmVxdWVzdHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD01Mzc3NgorCisgICAgICAgICogQ29kZUdlbmVyYXRvcnMucHJpOgorICAgICAgICAq
IERlcml2ZWRTb3VyY2VzLmNwcDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAg
ICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAg
KiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoK
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNIVE1MRGV2aWNlRWxlbWVudEN1c3RvbS5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6SlNIVE1MRGV2aWNlRWxlbWVudDo6ZGF0YSk6CisgICAgICAgICogYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4SFRNTERldmljZUVsZW1lbnRDdXN0b20uY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlY4SFRNTERldmljZUVsZW1lbnQ6OmRhdGFBY2Nlc3NvckdldHRlcik6Cisg
ICAgICAgICogZG9tL0RPTUFsbEluT25lLmNwcDoKKyAgICAgICAgKiBkb20vRGV2aWNlRWxlbWVu
dC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlRWxlbWVudDo6RGV2aWNlRWxl
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VFbGVtZW50Ojp+RGV2aWNlRWxlbWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VFbGVtZW50Ojp0eXBlKToKKyAgICAgICAgKiBkb20v
RGV2aWNlRWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBkb20vRGV2aWNlU2Vzc2lvbklkLmg6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlU2Vzc2lvbklkOjpEZXZpY2VTZXNzaW9u
SWQpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlU2Vzc2lvbklkOjppZCk6CisgICAgICAgIChX
ZWJDb3JlOjpEZXZpY2VTZXNzaW9uSWQ6OnR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNl
U2Vzc2lvbklkOjppc051bGwpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlU2Vzc2lvbklkOjpy
ZXNldCk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VTZXNzaW9uSWQ6Om9wZXJhdG9yIHN0ZDo6
cGFpcjxpbnQsIGludD4pOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlU2Vzc2lvbklkOjpvcGVy
YXRvcj09KToKKyAgICAgICAgKiBkb20vRGV2aWNlVHlwZS5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6RGV2aWNlVHlwZTo6RGV2aWNlVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpEZXZp
Y2VUeXBlOjppZCk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VUeXBlOjpuYW1lKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRldmljZVR5cGU6OmlzVmFsaWQpOgorICAgICAgICAoV2ViQ29yZTo6RGV2
aWNlVHlwZTo6aWRGcm9tTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VUeXBlOjpuYW1l
RnJvbUlkKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZVR5cGU6Om1lZGlhKToKKyAgICAgICAg
KiBkb20vRGV2aWNlVHlwZS5oOiBBZGRlZC4KKyAgICAgICAgKiBkb20vU3RyZWFtLmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpTdHJlYW06OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTdHJlYW06OlN0cmVhbSk6CisgICAgICAgIChXZWJDb3JlOjpTdHJlYW06On5TdHJlYW0pOgor
ICAgICAgICAoV2ViQ29yZTo6U3RyZWFtOjp1cmwpOgorICAgICAgICAoV2ViQ29yZTo6U3RyZWFt
OjpkZXZpY2VTZXNzaW9uVXBkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0cmVhbTo6c2Vzc2lv
bkNvbnRyb2xsZXJTaHV0ZG93bik6CisgICAgICAgICogZG9tL1N0cmVhbS5oOiBBZGRlZC4KKyAg
ICAgICAgKiBkb20vU3RyZWFtLmlkbDogQWRkZWQuCisgICAgICAgICogaHRtbC9IVE1MRGV2aWNl
RWxlbWVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTERldmljZUVsZW1lbnQ6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRGV2aWNlRWxlbWVudDo6SFRNTERldmlj
ZUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERldmljZUVsZW1lbnQ6On5IVE1MRGV2
aWNlRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRGV2aWNlRWxlbWVudDo6cGFyc2VN
YXBwZWRBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERldmljZUVsZW1lbnQ6OmF0
dGFjaCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRGV2aWNlRWxlbWVudDo6ZGV0YWNoKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxEZXZpY2VFbGVtZW50OjpzZXRUeXBlKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxEZXZpY2VFbGVtZW50OjpkYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxE
ZXZpY2VFbGVtZW50OjpzdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRGV2aWNlRWxlbWVu
dDo6ZGV2aWNlVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRGV2aWNlRWxlbWVudDo6c2Vz
c2lvbik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRGV2aWNlRWxlbWVudDo6c2V0U3RhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTERldmljZUVsZW1lbnQ6OmNsb3NlQW5kUmVzZXRTZXNzaW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEZXZpY2VFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5k
bGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEZXZpY2VFbGVtZW50OjpkZXZpY2VTZXNzaW9u
VXBkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEZXZpY2VFbGVtZW50OjpzZXNzaW9uQ29u
dHJvbGxlclNodXRkb3duKToKKyAgICAgICAgKFdlYkNvcmU6OnRvSFRNTERldmljZUVsZW1lbnQp
OgorICAgICAgICAqIGh0bWwvSFRNTERldmljZUVsZW1lbnQuaDogQWRkZWQuCisgICAgICAgICog
aHRtbC9IVE1MRGV2aWNlRWxlbWVudC5pZGw6IEFkZGVkLgorICAgICAgICAqIGh0bWwvSFRNTFRh
Z05hbWVzLmluOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmlkbDoKKyAgICAgICAgKiBwYWdl
L0RldmljZUNsaWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRldmljZUNsaWVudDo6
fkRldmljZUNsaWVudCk6CisgICAgICAgICogcGFnZS9EZXZpY2VMaXN0ZW5lci5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkRldmljZUxpc3RlbmVyOjp+RGV2aWNlTGlzdGVuZXIpOgorICAg
ICAgICAqIHBhZ2UvRGV2aWNlU2Vzc2lvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRl
dmljZUVycm9yOjpEZXZpY2VFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VFcnJvcjo6
ZXJyb3JDb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZUVycm9yOjp2ZW5kb3JFcnJvckNv
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlRXJyb3I6OmVycm9yTWVzc2FnZSk6CisgICAg
ICAgIChXZWJDb3JlOjpEZXZpY2VJbmZvOjpEZXZpY2VJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6
OkRldmljZUluZm86OnNlcnZpY2UpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlSW5mbzo6bmFt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VJbmZvOjppZCk6CisgICAgICAgIChXZWJDb3Jl
OjpEZXZpY2VJbmZvOjplcnJvckluZm8pOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlVHlwZVNw
ZWNpZmljOjp+RGV2aWNlVHlwZVNwZWNpZmljKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZVR5
cGVTcGVjaWZpYzo6Y2xvbmUpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlVHlwZVNwZWNpZmlj
Ojpvbk9wZW4pOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlVHlwZVNwZWNpZmljOjpvbkNsb3Nl
KToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZVNlc3Npb246OkRldmljZVNlc3Npb24pOgorICAg
ICAgICAoV2ViQ29yZTo6RGV2aWNlU2Vzc2lvbjo6aWQpOgorICAgICAgICAoV2ViQ29yZTo6RGV2
aWNlU2Vzc2lvbjo6dHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VTZXNzaW9uOjpzdGF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VTZXNzaW9uOjpkZXZpY2VzKToKKyAgICAgICAg
KFdlYkNvcmU6OkRldmljZVNlc3Npb246Om9yaWdpbik6CisgICAgICAgIChXZWJDb3JlOjpEZXZp
Y2VTZXNzaW9uOjp0eXBlU3BlY2lmaWMpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlU2Vzc2lv
bjo6aXNMb2NhbCk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VTZXNzaW9uOjppc1JlbW90ZSk6
CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VTZXNzaW9uOjptdXRhYmxlSWQpOgorICAgICAgICAq
IHBhZ2UvRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkRldmljZVNlc3Npb25Db250cm9sbGVyOjpEZXZpY2VTZXNzaW9uQ29udHJvbGxlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpEZXZpY2VTZXNzaW9uQ29udHJvbGxlcjo6fkRldmljZVNlc3Npb25D
b250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZVNlc3Npb25Db250cm9sbGVyOjpy
ZWdpc3RlckRldmljZVNlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlU2Vzc2lvbkNv
bnRyb2xsZXI6OnJlZ2lzdGVyU2Vzc2lvbkxpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRl
dmljZVNlc3Npb25Db250cm9sbGVyOjp1bnJlZ2lzdGVyU2Vzc2lvbkxpc3RlbmVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRldmljZVNlc3Npb25Db250cm9sbGVyOjpyZWdpc3Rlck1lZGlhTGlzdGVu
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXI6OnVucmVnaXN0
ZXJNZWRpYUxpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZVNlc3Npb25Db250cm9s
bGVyOjpzZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZVNlc3Npb25Db250cm9sbGVy
OjptdXRhYmxlU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VTZXNzaW9uQ29udHJv
bGxlcjo6aXNTZXNzaW9uSWRWYWxpZCk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VTZXNzaW9u
Q29udHJvbGxlcjo6cmVxdWVzdEFjY2Vzc1RvTG9jYWxEZXZpY2UpOgorICAgICAgICAoV2ViQ29y
ZTo6RGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXI6OnJldm9rZUFjY2Vzc1RvTG9jYWxEZXZpY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6RGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXI6OmRldmljZVNlc3Npb25V
cGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXI6OnJlY29y
ZFN0cmVhbVRvRmlsZSk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VTZXNzaW9uQ29udHJvbGxl
cjo6c3RvcFJlY29yZGluZ1N0cmVhbSk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VTZXNzaW9u
Q29udHJvbGxlcjo6c3RyZWFtUmVjb3JkaW5nU3RhcnRlZCk6CisgICAgICAgICogcGFnZS9EZXZp
Y2VTZXNzaW9uQ29udHJvbGxlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRldmljZVNl
c3Npb25Db250cm9sbGVyOjpTZXNzaW9uTGlzdGVuZXI6On5TZXNzaW9uTGlzdGVuZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6RGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXI6Ok1lZGlhTGlzdGVuZXI6On5N
ZWRpYUxpc3RlbmVyKToKKyAgICAgICAgKiBwYWdlL0RldmljZVNlc3Npb25TcGVjaWZpYy5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTWVkaWFTcGVjaWZpYzo6b25PcGVuKToK
KyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1lZGlhU3BlY2lmaWM6OmNsb25lKToKKyAgICAgICAg
KiBwYWdlL0RldmljZVNlc3Npb25TcGVjaWZpYy5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkRldmljZU1lZGlhU3BlY2lmaWM6OkRldmljZU1lZGlhU3BlY2lmaWMpOgorICAgICAgICAoV2Vi
Q29yZTo6RGV2aWNlTWVkaWFTcGVjaWZpYzo6fkRldmljZU1lZGlhU3BlY2lmaWMpOgorICAgICAg
ICAoV2ViQ29yZTo6RGV2aWNlTWVkaWFTcGVjaWZpYzo6c3RyZWFtKToKKyAgICAgICAgKFdlYkNv
cmU6OkRldmljZU1lZGlhU3BlY2lmaWM6OnN0cmVhbVVybCk6CisgICAgICAgICogcGFnZS9QYWdl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6
UGFnZTo6ZGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgor
CiAyMDExLTAzLTA4ICBDaHJpcyBNYXJyaW4gIDxjbWFycmluQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Nv
ZGVHZW5lcmF0b3JzLnByaSBiL1NvdXJjZS9XZWJDb3JlL0NvZGVHZW5lcmF0b3JzLnByaQppbmRl
eCAzZTQ1OWE2OTM4YzRkN2VjNGUzZjlmOTg0NDJjOWYzNmU5OWUyMzdmLi5iYzMxYjFmMmIyNzc0
NTA2OGU4ZGZiZDFkMzdmNzMwNjA0YWZhYjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
b2RlR2VuZXJhdG9ycy5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvQ29kZUdlbmVyYXRvcnMucHJp
CkBAIC0xNDgsNiArMTQ4LDcgQEAgSURMX0JJTkRJTkdTICs9IFwKICAgICBkb20vUHJvZ3Jlc3NF
dmVudC5pZGwgXAogICAgIGRvbS9SYW5nZUV4Y2VwdGlvbi5pZGwgXAogICAgIGRvbS9SYW5nZS5p
ZGwgXAorICAgIGRvbS9TdHJlYW0uaWRsIFwKICAgICBkb20vU3RyaW5nQ2FsbGJhY2suaWRsIFwK
ICAgICBkb20vVGV4dC5pZGwgXAogICAgIGRvbS9UZXh0RXZlbnQuaWRsIFwKQEAgLTI0Myw2ICsy
NDQsNyBAQCBJRExfQklORElOR1MgKz0gXAogICAgIGh0bWwvSFRNTERhdGFHcmlkUm93RWxlbWVu
dC5pZGwgXAogICAgIGh0bWwvSFRNTERhdGFMaXN0RWxlbWVudC5pZGwgXAogICAgIGh0bWwvSFRN
TERldGFpbHNFbGVtZW50LmlkbCBcCisgICAgaHRtbC9IVE1MRGV2aWNlRWxlbWVudC5pZGwgXAog
ICAgIGh0bWwvSFRNTERpcmVjdG9yeUVsZW1lbnQuaWRsIFwKICAgICBodG1sL0hUTUxEaXZFbGVt
ZW50LmlkbCBcCiAgICAgaHRtbC9IVE1MRExpc3RFbGVtZW50LmlkbCBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5jcHAKaW5kZXggOWFiMzdlYzNiMTNjYTgyYjFlNjA0NjQ3ZTJjMmU0ZDMyZjIyNjI0
YS4uM2M5ZDA1ZjFiYWFmM2ZkNmQ0MTBjNTNjZmRhZWUwYjU5NmY2NWE1ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLmNwcApAQCAtMTU0LDYgKzE1NCw3IEBACiAjaW5jbHVkZSAiSlNIVE1MRGF0
YUdyaWRSb3dFbGVtZW50LmNwcCIKICNpbmNsdWRlICJKU0hUTUxEYXRhTGlzdEVsZW1lbnQuY3Bw
IgogI2luY2x1ZGUgIkpTSFRNTERldGFpbHNFbGVtZW50LmNwcCIKKyNpbmNsdWRlICJKU0hUTUxE
ZXZpY2VFbGVtZW50LmNwcCIKICNpbmNsdWRlICJKU0hUTUxEaXJlY3RvcnlFbGVtZW50LmNwcCIK
ICNpbmNsdWRlICJKU0hUTUxEaXZFbGVtZW50LmNwcCIKICNpbmNsdWRlICJKU0hUTUxETGlzdEVs
ZW1lbnQuY3BwIgpAQCAtMjgzLDYgKzI4NCw3IEBACiAjaW5jbHVkZSAiSlNTUUxUcmFuc2FjdGlv
blN5bmNDYWxsYmFjay5jcHAiCiAjaW5jbHVkZSAiSlNTdG9yYWdlLmNwcCIKICNpbmNsdWRlICJK
U1N0b3JhZ2VFdmVudC5jcHAiCisjaW5jbHVkZSAiSlNTdHJlYW0uY3BwIgogI2luY2x1ZGUgIkpT
U3RyaW5nQ2FsbGJhY2suY3BwIgogI2luY2x1ZGUgIkpTU3R5bGVNZWRpYS5jcHAiCiAjaW5jbHVk
ZSAiSlNTdHlsZVNoZWV0LmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDQw
ZTQ5ZWQ5MmUwZjJmNTgwOGVkYzNjOTM2Mjg1YjY1MWYxMzEzNjAuLjA0Y2VhMzgwYWNiZDQ5ZjUz
NzE5ZDIzODcyNTdjMWNmNGQzM2I5MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpA
QCAtMjIwLDYgKzIyMCw3IEBAIERPTV9DTEFTU0VTID0gXAogICAgIEhUTUxEYXRhR3JpZFJvd0Vs
ZW1lbnQgXAogICAgIEhUTUxEYXRhTGlzdEVsZW1lbnQgXAogICAgIEhUTUxEZXRhaWxzRWxlbWVu
dCBcCisgICAgSFRNTERldmljZUVsZW1lbnQgXAogICAgIEhUTUxETGlzdEVsZW1lbnQgXAogICAg
IEhUTUxEaXJlY3RvcnlFbGVtZW50IFwKICAgICBIVE1MRGl2RWxlbWVudCBcCkBAIC0zNTEsNiAr
MzUyLDcgQEAgRE9NX0NMQVNTRVMgPSBcCiAgICAgU1FMVHJhbnNhY3Rpb25TeW5jQ2FsbGJhY2sg
XAogICAgIFN0b3JhZ2UgXAogICAgIFN0b3JhZ2VFdmVudCBcCisgICAgU3RyZWFtIFwKICAgICBT
dHJpbmdDYWxsYmFjayBcCiAgICAgU1ZHQUVsZW1lbnQgXAogICAgIFNWR0FsdEdseXBoRWxlbWVu
dCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDVlNTEzNjJjOTJjZjVlNzViMTAwZTk2OGY3ODky
NGYzNzJhN2JhOTcuLmQzOTE5NDRkNWM5M2JhMDBhYzIzNjFiN2E2Y2IzYTEyNzg5NjI2Y2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0zMTcsNiArMzE3LDggQEAgd2ViY29yZV9idWlsdF9zb3Vy
Y2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTERhdGFMaXN0RWxlbWVudC5o
IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTERldGFpbHNFbGVtZW50LmNwcCBcCiAJ
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxEZXRhaWxzRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTSFRNTERldmljZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTSFRNTERldmljZUVsZW1lbnQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU0hUTUxEaXJlY3RvcnlFbGVtZW50LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0hUTUxEaXJlY3RvcnlFbGVtZW50LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1M
RGl2RWxlbWVudC5jcHAgXApAQCAtNTM4LDYgKzU0MCw4IEBAIHdlYmNvcmVfYnVpbHRfc291cmNl
cyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NRTFRyYW5zYWN0aW9uLmggXAogCURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTUUxUcmFuc2FjdGlvblN5bmMuaCBcCiAJRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU1N0b3JhZ2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1N0
cmVhbS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTdHJlYW0uaCBcCiAJRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU1N0eWxlTWVkaWEuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTU3R5bGVNZWRpYS5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3R5bGVTaGVl
dC5jcHAgXApAQCAtNzk4LDYgKzgwMiw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MQ2FudmFzRWxlbWVudEN1c3RvbS5jcHAgXAogCVNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTENvbGxlY3Rpb25DdXN0b20uY3BwIFwKIAlT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxEYXRhR3JpZEVsZW1lbnRDdXN0b20uY3Bw
IFwKKwlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxEZXZpY2VFbGVtZW50Q3VzdG9t
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRG9jdW1lbnRDdXN0b20u
Y3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxFbGVtZW50Q3VzdG9tLmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRW1iZWRFbGVtZW50Q3VzdG9t
LmNwcCBcCkBAIC0xMTU4LDYgKzExNjMsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJj
ZS9XZWJDb3JlL2RvbS9EZWNvZGVkRGF0YURvY3VtZW50UGFyc2VyLmggXAogCVNvdXJjZS9XZWJD
b3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuaCBcCisJU291
cmNlL1dlYkNvcmUvZG9tL0RldmljZUVsZW1lbnQuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20v
RGV2aWNlRWxlbWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uQ2xpZW50
LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25Db250cm9sbGVyLmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkNvbnRyb2xsZXIuaCBcCkBAIC0xMTcyLDYg
KzExNzksOSBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9EZXZp
Y2VPcmllbnRhdGlvbkV2ZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVu
dGF0aW9uRXZlbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uLmgg
XAorCVNvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VTZXNzaW9uSWQuaCBcCisJU291cmNlL1dlYkNv
cmUvZG9tL0RldmljZVR5cGUuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlVHlwZS5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnRGcmFnbWVudC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZy
YWdtZW50LmggXApAQCAtMTMwOSw2ICsxMzE5LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlT
b3VyY2UvV2ViQ29yZS9kb20vU3RhdGljSGFzaFNldE5vZGVMaXN0LmggXAogCVNvdXJjZS9XZWJD
b3JlL2RvbS9TdGF0aWNOb2RlTGlzdC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TdGF0aWNO
b2RlTGlzdC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vU3RyZWFtLmNwcCBcCisJU291cmNlL1dl
YkNvcmUvZG9tL1N0cmVhbS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmggXAogCVNvdXJjZS9XZWJD
b3JlL2RvbS9TdHlsZUVsZW1lbnQuY3BwIFwKQEAgLTE2ODYsNiArMTY5OCw4IEBAIHdlYmNvcmVf
c291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGF0YUxpc3RFbGVtZW50Lmgg
XAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaCBcCisJU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRGV2aWNlRWxlbWVudC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldmlj
ZUVsZW1lbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGlyZWN0b3J5RWxlbWVudC5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpcmVjdG9yeUVsZW1lbnQuaCBcCiAJU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGl2RWxlbWVudC5jcHAgXApAQCAtMjIwMSw2ICsyMjE1LDEz
IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9Db29yZGluYXRl
cy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0NyeXB0by5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ3J5cHRvLmggXAorCVNvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ2xpZW50LmggXAor
CVNvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlTGlzdGVuZXIuaCBcCisJU291cmNlL1dlYkNvcmUv
cGFnZS9EZXZpY2VTZXNzaW9uLmggXAorCVNvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlU2Vzc2lv
bkNvbnRyb2xsZXIuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZVNlc3Npb25Db250
cm9sbGVyLmggXAorCVNvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlU2Vzc2lvblNwZWNpZmljLmNw
cCBcCisJU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VTZXNzaW9uU3BlY2lmaWMuaCBcCiAJU291
cmNlL1dlYkNvcmUvcGFnZS9ET01TZWxlY3Rpb24uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVNlbGVjdGlvbi5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNwcCBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKaW5kZXggMzg1MDljZWNhMTQxOGE3NGFhNzA3ODM0Y2YxYzI0MjZmMTJhMmVj
My4uMWIyYzlmYmZmNWQzMTNmMzRhYzFjYzM1ZWZlZGM0YjdiZjgzMDkzZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQpAQCAtODYsNiArODYsNyBAQAogICAgICAgICAgICAgJ2RvbS9SYW5nZS5pZGwnLAogICAg
ICAgICAgICAgJ2RvbS9SYW5nZUV4Y2VwdGlvbi5pZGwnLAogICAgICAgICAgICAgJ2RvbS9SZXF1
ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5pZGwnLAorICAgICAgICAgICAgJ2RvbS9TdHJlYW0u
aWRsJywKICAgICAgICAgICAgICdkb20vU3RyaW5nQ2FsbGJhY2suaWRsJywKICAgICAgICAgICAg
ICdkb20vVGV4dC5pZGwnLAogICAgICAgICAgICAgJ2RvbS9UZXh0RXZlbnQuaWRsJywKQEAgLTE1
NCw2ICsxNTUsNyBAQAogICAgICAgICAgICAgJ2h0bWwvSFRNTERhdGFHcmlkUm93RWxlbWVudC5p
ZGwnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTERhdGFMaXN0RWxlbWVudC5pZGwnLAogICAgICAg
ICAgICAgJ2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmlkbCcsCisgICAgICAgICAgICAnaHRtbC9I
VE1MRGV2aWNlRWxlbWVudC5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTERpcmVjdG9yeUVs
ZW1lbnQuaWRsJywKICAgICAgICAgICAgICdodG1sL0hUTUxEaXZFbGVtZW50LmlkbCcsCiAgICAg
ICAgICAgICAnaHRtbC9IVE1MRG9jdW1lbnQuaWRsJywKQEAgLTcxMSw2ICs3MTMsNyBAQAogICAg
ICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTSFRNTENhbnZhc0VsZW1lbnRDdXN0b20uY3BwJywKICAg
ICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0hUTUxDb2xsZWN0aW9uQ3VzdG9tLmNwcCcsCiAgICAg
ICAgICAgICAnYmluZGluZ3MvanMvSlNIVE1MRGF0YUdyaWRFbGVtZW50Q3VzdG9tLmNwcCcsCisg
ICAgICAgICAgICAnYmluZGluZ3MvanMvSlNIVE1MRGV2aWNlRWxlbWVudEN1c3RvbS5jcHAnLAog
ICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTSFRNTERvY3VtZW50Q3VzdG9tLmNwcCcsCiAgICAg
ICAgICAgICAnYmluZGluZ3MvanMvSlNIVE1MRWxlbWVudEN1c3RvbS5jcHAnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL2pzL0pTSFRNTEVtYmVkRWxlbWVudEN1c3RvbS5jcHAnLApAQCAtMTA2Myw2
ICsxMDY2LDcgQEAKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MQ2FudmFz
RWxlbWVudEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhU
TUxDb2xsZWN0aW9uQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9t
L1Y4SFRNTERhdGFHcmlkRWxlbWVudEN1c3RvbS5jcHAnLAorICAgICAgICAgICAgJ2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOEhUTUxEZXZpY2VFbGVtZW50Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAn
YmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTERvY3VtZW50Q3VzdG9tLmNwcCcsCiAgICAgICAgICAg
ICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTEVsZW1lbnRDdXN0b20uY3BwJywKICAgICAgICAg
ICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MRm9ybUVsZW1lbnRDdXN0b20uY3BwJywKQEAg
LTEzNTEsNiArMTM1NSw4IEBACiAgICAgICAgICAgICAnZG9tL0RhdGFzZXRET01TdHJpbmdNYXAu
aCcsCiAgICAgICAgICAgICAnZG9tL0RlY29kZWREYXRhRG9jdW1lbnRQYXJzZXIuY3BwJywKICAg
ICAgICAgICAgICdkb20vRGVjb2RlZERhdGFEb2N1bWVudFBhcnNlci5oJywKKyAgICAgICAgICAg
ICdkb20vRGV2aWNlRWxlbWVudC5jcHAnLAorICAgICAgICAgICAgJ2RvbS9EZXZpY2VFbGVtZW50
LmgnLAogICAgICAgICAgICAgJ2RvbS9EZXZpY2VNb3Rpb25DbGllbnQuaCcsCiAgICAgICAgICAg
ICAnZG9tL0RldmljZU1vdGlvbkNvbnRyb2xsZXIuY3BwJywKICAgICAgICAgICAgICdkb20vRGV2
aWNlTW90aW9uQ29udHJvbGxlci5oJywKQEAgLTEzNjUsNiArMTM3MSw5IEBACiAgICAgICAgICAg
ICAnZG9tL0RldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5oJywKICAgICAgICAgICAgICdkb20v
RGV2aWNlT3JpZW50YXRpb25FdmVudC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9EZXZpY2VPcmll
bnRhdGlvbkV2ZW50LmgnLAorICAgICAgICAgICAgJ2RvbS9EZXZpY2VTZXNzaW9uSWQuaCcsCisg
ICAgICAgICAgICAnZG9tL0RldmljZVR5cGUuY3BwJywKKyAgICAgICAgICAgICdkb20vRGV2aWNl
VHlwZS5oJywKICAgICAgICAgICAgICdkb20vRG9jdW1lbnQuY3BwJywKICAgICAgICAgICAgICdk
b20vRG9jdW1lbnQuaCcsCiAgICAgICAgICAgICAnZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwJywK
QEAgLTE0OTksNiArMTUwOCw4IEBACiAgICAgICAgICAgICAnZG9tL1N0YXRpY05vZGVMaXN0Lmgn
LAogICAgICAgICAgICAgJ2RvbS9TdGF0aWNTdHJpbmdMaXN0LmNwcCcsCiAgICAgICAgICAgICAn
ZG9tL1N0YXRpY1N0cmluZ0xpc3QuaCcsCisgICAgICAgICAgICAnZG9tL1N0cmVhbS5jcHAnLAor
ICAgICAgICAgICAgJ2RvbS9TdHJlYW0uaCcsCiAgICAgICAgICAgICAnZG9tL1N0cmluZ0NhbGxi
YWNrLmNwcCcsCiAgICAgICAgICAgICAnZG9tL1N0cmluZ0NhbGxiYWNrLmgnLAogICAgICAgICAg
ICAgJ2RvbS9TdHlsZUVsZW1lbnQuY3BwJywKQEAgLTE4NTcsNiArMTg2OCw4IEBACiAgICAgICAg
ICAgICAnaHRtbC9IVE1MRGF0YUxpc3RFbGVtZW50LmgnLAogICAgICAgICAgICAgJ2h0bWwvSFRN
TERldGFpbHNFbGVtZW50LmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MRGV0YWlsc0VsZW1l
bnQuaCcsCisgICAgICAgICAgICAnaHRtbC9IVE1MRGV2aWNlRWxlbWVudC5jcHAnLAorICAgICAg
ICAgICAgJ2h0bWwvSFRNTERldmljZUVsZW1lbnQuaCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1M
RGlyZWN0b3J5RWxlbWVudC5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTERpcmVjdG9yeUVs
ZW1lbnQuaCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MRGl2RWxlbWVudC5jcHAnLApAQCAtMjQx
Myw2ICsyNDI2LDEzIEBACiAgICAgICAgICAgICAncGFnZS9ET01UaW1lci5oJywKICAgICAgICAg
ICAgICdwYWdlL0RPTVdpbmRvdy5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvRE9NV2luZG93Lmgn
LAorICAgICAgICAgICAgJ3BhZ2UvRGV2aWNlQ2xpZW50LmgnLAorICAgICAgICAgICAgJ3BhZ2Uv
RGV2aWNlTGlzdGVuZXIuaCcsCisgICAgICAgICAgICAncGFnZS9EZXZpY2VTZXNzaW9uLmgnLAor
ICAgICAgICAgICAgJ3BhZ2UvRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIuY3BwJywKKyAgICAgICAg
ICAgICdwYWdlL0RldmljZVNlc3Npb25Db250cm9sbGVyLmgnLAorICAgICAgICAgICAgJ3BhZ2Uv
RGV2aWNlU2Vzc2lvblNwZWNpZmljLmNwcCcsCisgICAgICAgICAgICAncGFnZS9EZXZpY2VTZXNz
aW9uU3BlY2lmaWMuaCcsCiAgICAgICAgICAgICAncGFnZS9EcmFnQWN0aW9ucy5oJywKICAgICAg
ICAgICAgICdwYWdlL0RyYWdDbGllbnQuaCcsCiAgICAgICAgICAgICAncGFnZS9EcmFnQ29udHJv
bGxlci5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCAwOGYwNjM2MWQ1NTE0ZGExZWE5NTFmODY1YmQ1
MzRiMWY5ZjU1NGY0Li41MTY2Y2I1MDY4MDhjYmE5MGUyMjViNDZhNTcwODcxMTQxNzBkMTg3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnBybwpAQCAtMzA3MSw2ICszMDcxLDM2IEBAIGNvbnRhaW5zKERFRklORVMsIEVO
QUJMRV9HRU9MT0NBVElPTj0xKSB7CiAgICAgfQogfQogCitjb250YWlucyhERUZJTkVTLCBFTkFC
TEVfREVWSUNFX0VMRU1FTlQ9MSkgeworICAgIEhFQURFUlMgKz0gXAorICAgICAgICBkb20vRGV2
aWNlRWxlbWVudC5oIFwKKyAgICAgICAgZG9tL0RldmljZVNlc3Npb25JZC5oIFwKKyAgICAgICAg
ZG9tL0RldmljZVR5cGUuaCBcCisgICAgICAgIGRvbS9TdHJlYW0uaCBcCisgICAgICAgIGh0bWwv
SFRNTERldmljZUVsZW1lbnQuaCBcCisgICAgICAgIHBhZ2UvRGV2aWNlQ2xpZW50LmggXAorICAg
ICAgICBwYWdlL0RldmljZUxpc3RlbmVyLmggXAorICAgICAgICBwYWdlL0RldmljZVNlc3Npb24u
aCBcCisgICAgICAgIHBhZ2UvRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIuaCBcCisgICAgICAgIHBh
Z2UvRGV2aWNlU2Vzc2lvblNwZWNpZmljLmgKKworICAgIFNPVVJDRVMgKz0gXAorICAgICAgICBk
b20vRGV2aWNlRWxlbWVudC5jcHAgXAorICAgICAgICBkb20vRGV2aWNlVHlwZS5jcHAgXAorICAg
ICAgICBkb20vU3RyZWFtLmNwcCBcCisgICAgICAgIGh0bWwvSFRNTERldmljZUVsZW1lbnQuY3Bw
IFwKKyAgICAgICAgcGFnZS9EZXZpY2VTZXNzaW9uQ29udHJvbGxlci5jcHAgXAorICAgICAgICBw
YWdlL0RldmljZVNlc3Npb25TcGVjaWZpYy5jcHAKKworICAgIHY4IHsKKyAgICAgICAgU09VUkNF
UyArPSBcCisgICAgICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MRGV2aWNlRWxlbWVu
dEN1c3RvbS5jcHAKKyAgICB9IGVsc2UgeworICAgICAgICBTT1VSQ0VTICs9IFwKKyAgICAgICAg
ICAgIGJpbmRpbmdzL2pzL0pTSFRNTERldmljZUVsZW1lbnRDdXN0b20uY3BwCisgICAgfQorfQor
CiBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfU1ZHPTEpIHsKICAgICAhdjggewogICAgICAgICBT
T1VSQ0VTICs9IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2oKaW5kZXggZDliYzc3MTYwYzhhMGQ0NGY1Yzg5YTBmZGNmZWNlNTVhZmViYWIzNS4uYjllNzQz
MDk0ZDc1YmUxZDFiZWQ1NmI5ZDUzYjk3OGI4M2Q5OTcwOCAxMDA3NTUKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTY4MzAsNiArNjgzMCw2MiBAQAogCQkJ
CT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRp
b25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSFRNTERldmlj
ZUVsZW1lbnQuY3BwIgorCQkJCT4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0i
RGVidWd8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJ
CTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVh
c2V8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxU
b29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0Nh
aXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4K
KwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0i
UmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
IgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJ
CQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJ
CQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
CisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJ
CS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJ
CQkJTmFtZT0iUmVsZWFzZV9MVENHfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJ
CQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJ
CQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFt
ZSlcRGVyaXZlZFNvdXJjZXNcSlNIVE1MRGV2aWNlRWxlbWVudC5oIgorCQkJCT4KKwkJCTwvRmls
ZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilc
b2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSFRNTERpcmVjdG9yeUVsZW1lbnQu
Y3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KQEAgLTEzNTU4LDYgKzEzNjE0LDYy
IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29u
ZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcV2ViQ29yZVxEZXJpdmVkU291cmNlc1xKU1N0cmVhbS5j
cHAiCisJCQkJPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4z
MiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIK
KwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRl
fFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9v
bAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0Nh
aXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4K
KwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0i
RGVidWdfQWxsfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgor
CQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJS
ZWxlYXNlX0xUQ0d8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+
CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZl
UGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialxXZWJDb3JlXERlcml2ZWRTb3VyY2Vz
XEpTU3RyZWFtLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBh
dGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNv
dXJjZXNcSlNTdHlsZU1lZGlhLmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCkBA
IC0yNDU0Miw2ICsyNDY1NCwzNCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxwYWdlXERldmljZUNsaWVudC5oIgorCQkJCT4KKwkJCTwvRmlsZT4K
KwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXERldmljZUxpc3RlbmVyLmgiCisJ
CQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcRGV2
aWNlU2Vzc2lvbi5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxwYWdlXERldmljZVNlc3Npb25Db250cm9sbGVyLmNwcCIKKwkJCQk+CisJCQk8L0Zp
bGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxEZXZpY2VTZXNzaW9uQ29u
dHJvbGxlci5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRo
PSIuLlxwYWdlXERldmljZVNlc3Npb25TcGVjaWZpYy5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgor
CQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcRGV2aWNlU2Vzc2lvblNwZWNpZmlj
LmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBh
Z2VcRE9NU2VsZWN0aW9uLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkBAIC00Mjg0Miw2ICs0Mjk4
Miw2MiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIu
Llxkb21cRGV2aWNlRWxlbWVudC5jcHAiCisJCQkJPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgor
CQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJ
CQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+
CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJ
TmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJ
CT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFt
ZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJ
CQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgor
CQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxl
clRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmln
dXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0xUQ0d8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQk8L0ZpbGU+CisJ
CQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXERldmljZUVsZW1lbnQuaCIKKwkJCQk+
CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXERldmljZU1v
dGlvbkNsaWVudC5oIgogCQkJCT4KIAkJCTwvRmlsZT4KQEAgLTQzMTg2LDYgKzQzMzgyLDY2IEBA
CiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxE
ZXZpY2VTZXNzaW9uSWQuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0
aXZlUGF0aD0iLi5cZG9tXERldmljZVR5cGUuY3BwIgorCQkJCT4KKwkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgor
CQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9u
CisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
IgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJ
CQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJ
CQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZp
bGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9MVENHfFdpbjMyIgorCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJPC9G
aWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxEZXZpY2VUeXBlLmgiCisJ
CQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxEb2N1
bWVudC5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpAQCAtNDY0NzgsNiArNDY3
MzQsNjIgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0i
Li5cZG9tXFN0cmVhbS5jcHAiCisJCQkJPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlO
YW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4K
KwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0i
UmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJ
CQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVi
dWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJ
CQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4K
KwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlO
YW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
CisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIK
KwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgorCQkJCQlOYW1lPSJSZWxlYXNlX0xUQ0d8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQk8L0ZpbGU+CisJCQk8Rmls
ZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFN0cmVhbS5oIgorCQkJCT4KKwkJCTwvRmlsZT4K
KwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cU3R5bGVkRWxlbWVudC5jcHAiCiAJ
CQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpAQCAtNTIyMjYsNiArNTI1MzgsNjIgQEAKIAkJ
CQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxIVE1M
RGV2aWNlRWxlbWVudC5jcHAiCisJCQkJPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlO
YW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4K
KwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0i
UmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJ
CQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVi
dWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJ
CQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4K
KwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlO
YW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
CisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIK
KwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgorCQkJCQlOYW1lPSJSZWxlYXNlX0xUQ0d8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQk8L0ZpbGU+CisJCQk8Rmls
ZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxIVE1MRGV2aWNlRWxlbWVudC5oIgorCQkJCT4K
KwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXEhUTUxEaXJl
Y3RvcnlFbGVtZW50LmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCkBAIC01OTU4
MSw2ICs1OTk0OSw1OCBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgogCQkJCTwvRmlsZT4K
IAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTSFRNTERldmlj
ZUVsZW1lbnRDdXN0b20uY3BwIgorCQkJCQk+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJ
CQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJ
CQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJ
CS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgor
CQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
IgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgor
CQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0
aW9uCisJCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2lu
MzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29s
CisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iRGVidWdf
QWxsfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJ
CQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9
IlJlbGVhc2VfTFRDR3xXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJ
CQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJ
Lz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU0hUTUxEb2N1bWVudEN1c3RvbS5jcHAi
CiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZDljZTJlYTAxNzBjNGFhMGZi
NDM5YzI2ZThkNGYzNTczN2RlMjY0My4uNmNjNGQ0M2I1ZGIyNDk4NGQ2ZDQyMDgzNzVlN2RiOTE1
MTVkNDY3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMTU1NCw2ICsxNTU0LDI3IEBACiAJCTc1MEQwMjkzMTFEMEU3RjMwMEJE
MUIyNyAvKiBSZW5kZXJJbnB1dFNwZWVjaC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3NTBEMDI5MTExRDBFN0YzMDBCRDFCMjcgLyogUmVuZGVySW5w
dXRTcGVlY2guY3BwICovOyB9OwogCQk3NTBEMDI5NDExRDBFN0YzMDBCRDFCMjcgLyogUmVuZGVy
SW5wdXRTcGVlY2guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDc1MEQwMjkyMTFEMEU3RjMwMEJEMUIyNyAvKiBSZW5kZXJJbnB1dFNwZWVjaC5oICovOyB9
OwogCQk3NTBEMDJDMTExRDBFRTdEMDBCRDFCMjcgLyogaW5wdXRTcGVlY2gudGlmZiBpbiBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzUwRDAyQzAxMUQwRUU3
RDAwQkQxQjI3IC8qIGlucHV0U3BlZWNoLnRpZmYgKi87IH07CisJCTc1MjlCNzcwMTMyNjZBMUEw
MDI0N0QyOSAvKiBIVE1MRGV2aWNlRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTI5Qjc2RDEzMjY2QTFBMDAyNDdEMjkgLyogSFRNTERl
dmljZUVsZW1lbnQuY3BwICovOyB9OworCQk3NTI5Qjc3MTEzMjY2QTFBMDAyNDdEMjkgLyogSFRN
TERldmljZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDc1MjlCNzZFMTMyNjZBMUEwMDI0N0QyOSAvKiBIVE1MRGV2aWNlRWxlbWVudC5oICov
OyB9OworCQk3NTI5QkMxMzEzMjY2Q0E4MDAyNDdEMjkgLyogSlNIVE1MRGV2aWNlRWxlbWVudC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTI5QkMx
MTEzMjY2Q0E4MDAyNDdEMjkgLyogSlNIVE1MRGV2aWNlRWxlbWVudC5jcHAgKi87IH07CisJCTc1
MjlCQzE0MTMyNjZDQTgwMDI0N0QyOSAvKiBKU0hUTUxEZXZpY2VFbGVtZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTI5QkMxMjEzMjY2Q0E4MDAy
NDdEMjkgLyogSlNIVE1MRGV2aWNlRWxlbWVudC5oICovOyB9OworCQk3NTI5QkQ1MDEzMjY2REUy
MDAyNDdEMjkgLyogSlNIVE1MRGV2aWNlRWxlbWVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTI5QkQ0RjEzMjY2REUyMDAyNDdEMjkg
LyogSlNIVE1MRGV2aWNlRWxlbWVudEN1c3RvbS5jcHAgKi87IH07CisJCTc1MjlCRDU1MTMyNjZF
MDMwMDI0N0QyOSAvKiBEZXZpY2VFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1MjlCRDUyMTMyNjZFMDMwMDI0N0QyOSAvKiBEZXZpY2VF
bGVtZW50LmNwcCAqLzsgfTsKKwkJNzUyOUJENTYxMzI2NkUwMzAwMjQ3RDI5IC8qIERldmljZUVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1
MjlCRDUzMTMyNjZFMDMwMDI0N0QyOSAvKiBEZXZpY2VFbGVtZW50LmggKi87IH07CisJCTc1MjlC
RDU0MTMyNjZFMDMwMDI0N0QyOSAvKiBEZXZpY2VTZXNzaW9uSWQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1MjlCRDUxMTMyNjZFMDMwMDI0N0QyOSAv
KiBEZXZpY2VTZXNzaW9uSWQuaCAqLzsgfTsKKwkJNzUyOUJENTkxMzI2NkUxMzAwMjQ3RDI5IC8q
IERldmljZVR5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNzUyOUJENTcxMzI2NkUxMzAwMjQ3RDI5IC8qIERldmljZVR5cGUuY3BwICovOyB9Owor
CQk3NTI5QkQ1QTEzMjY2RTEzMDAyNDdEMjkgLyogRGV2aWNlVHlwZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzUyOUJENTgxMzI2NkUxMzAwMjQ3RDI5
IC8qIERldmljZVR5cGUuaCAqLzsgfTsKKwkJNzUyOUJENjExMzI2NkUzNTAwMjQ3RDI5IC8qIFN0
cmVhbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
NTI5QkQ1QjEzMjY2RTM1MDAyNDdEMjkgLyogU3RyZWFtLmNwcCAqLzsgfTsKKwkJNzUyOUJENjIx
MzI2NkUzNTAwMjQ3RDI5IC8qIFN0cmVhbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzUyOUJENUMxMzI2NkUzNTAwMjQ3RDI5IC8qIFN0cmVhbS5oICov
OyB9OworCQk3NTI5QkQ4OTEzMjY2RTc2MDAyNDdEMjkgLyogRGV2aWNlQ2xpZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTI5QkQ4MjEzMjY2RTc2
MDAyNDdEMjkgLyogRGV2aWNlQ2xpZW50LmggKi87IH07CisJCTc1MjlCRDhGMTMyNjZFNzYwMDI0
N0QyOSAvKiBEZXZpY2VMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNzUyOUJEODgxMzI2NkU3NjAwMjQ3RDI5IC8qIERldmljZUxpc3RlbmVy
LmggKi87IH07CisJCTc1MjlCRDhBMTMyNjZFNzYwMDI0N0QyOSAvKiBEZXZpY2VTZXNzaW9uLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTI5QkQ4MzEz
MjY2RTc2MDAyNDdEMjkgLyogRGV2aWNlU2Vzc2lvbi5oICovOyB9OworCQk3NTI5QkQ4QjEzMjY2
RTc2MDAyNDdEMjkgLyogRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzUyOUJEODQxMzI2NkU3NjAwMjQ3RDI5
IC8qIERldmljZVNlc3Npb25Db250cm9sbGVyLmNwcCAqLzsgfTsKKwkJNzUyOUJEOEMxMzI2NkU3
NjAwMjQ3RDI5IC8qIERldmljZVNlc3Npb25Db250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTI5QkQ4NTEzMjY2RTc2MDAyNDdEMjkgLyog
RGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIuaCAqLzsgfTsKKwkJNzUyOUJEOEQxMzI2NkU3NjAwMjQ3
RDI5IC8qIERldmljZVNlc3Npb25TcGVjaWZpYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTI5QkQ4NjEzMjY2RTc2MDAyNDdEMjkgLyogRGV2aWNl
U2Vzc2lvblNwZWNpZmljLmNwcCAqLzsgfTsKKwkJNzUyOUJEOEUxMzI2NkU3NjAwMjQ3RDI5IC8q
IERldmljZVNlc3Npb25TcGVjaWZpYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNzUyOUJEODcxMzI2NkU3NjAwMjQ3RDI5IC8qIERldmljZVNlc3Npb25T
cGVjaWZpYy5oICovOyB9OworCQk3NTI5QkQ5QzEzMjY2RjI2MDAyNDdEMjkgLyogSlNTdHJlYW0u
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzUyOUJE
OTgxMzI2NkYyNjAwMjQ3RDI5IC8qIEpTU3RyZWFtLmNwcCAqLzsgfTsKKwkJNzUyOUJEOUQxMzI2
NkYyNjAwMjQ3RDI5IC8qIEpTU3RyZWFtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3NTI5QkQ5OTEzMjY2RjI2MDAyNDdEMjkgLyogSlNTdHJlYW0uaCAq
LzsgfTsKIAkJNzUzNUJDOTQxMjAyMENGRjAwMzdFQzQ1IC8qIFNwZWVjaElucHV0Q2xpZW50TW9j
ay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTM1
QkM5MjEyMDIwQ0ZGMDAzN0VDNDUgLyogU3BlZWNoSW5wdXRDbGllbnRNb2NrLmNwcCAqLzsgfTsK
IAkJNzUzNUJDOTUxMjAyMENGRjAwMzdFQzQ1IC8qIFNwZWVjaElucHV0Q2xpZW50TW9jay5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzUzNUJDOTMxMjAy
MENGRjAwMzdFQzQ1IC8qIFNwZWVjaElucHV0Q2xpZW50TW9jay5oICovOyB9OwogCQk3NTQxMzNB
ODEwMkUwMEU4MDAwNzVEMDAgLyogSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU0MTMzQTcxMDJFMDBFODAwMDc1
RDAwIC8qIEluc3BlY3RvclRpbWVsaW5lQWdlbnQuaCAqLzsgfTsKQEAgLTgwNDAsNiArODA2MSwy
OSBAQAogCQk3NTBEMDI5MTExRDBFN0YzMDBCRDFCMjcgLyogUmVuZGVySW5wdXRTcGVlY2guY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVySW5wdXRTcGVlY2gu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTBEMDI5MjExRDBFN0YzMDBCRDFC
MjcgLyogUmVuZGVySW5wdXRTcGVlY2guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVuZGVySW5wdXRTcGVlY2guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzUw
RDAyQzAxMUQwRUU3RDAwQkQxQjI3IC8qIGlucHV0U3BlZWNoLnRpZmYgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS50aWZmOyBwYXRoID0gaW5w
dXRTcGVlY2gudGlmZjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzUyOUI3NkQxMzI2
NkExQTAwMjQ3RDI5IC8qIEhUTUxEZXZpY2VFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxEZXZpY2VFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNzUyOUI3NkUxMzI2NkExQTAwMjQ3RDI5IC8qIEhUTUxEZXZpY2VFbGVt
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxEZXZpY2VFbGVtZW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1MjlCNzZGMTMyNjZBMUEwMDI0N0Qy
OSAvKiBIVE1MRGV2aWNlRWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTERl
dmljZUVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTI5QkMxMTEz
MjY2Q0E4MDAyNDdEMjkgLyogSlNIVE1MRGV2aWNlRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxEZXZpY2VFbGVtZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzUyOUJDMTIxMzI2NkNBODAwMjQ3RDI5IC8qIEpTSFRNTERl
dmljZUVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1MRGV2
aWNlRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTI5QkQ0RjEzMjY2
REUyMDAyNDdEMjkgLyogSlNIVE1MRGV2aWNlRWxlbWVudEN1c3RvbS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxEZXZpY2VFbGVtZW50Q3VzdG9tLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzUyOUJENTIxMzI2NkUwMzAwMjQ3RDI5IC8q
IERldmljZUVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
RGV2aWNlRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1MjlCRDUz
MTMyNjZFMDMwMDI0N0QyOSAvKiBEZXZpY2VFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IERldmljZUVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNzUyOUJENTExMzI2NkUwMzAwMjQ3RDI5IC8qIERldmljZVNlc3Npb25JZC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZXZpY2VTZXNzaW9uSWQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNzUyOUJENTcxMzI2NkUxMzAwMjQ3RDI5IC8qIERldmljZVR5cGUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGV2aWNlVHlwZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1MjlCRDU4MTMyNjZFMTMwMDI0N0QyOSAv
KiBEZXZpY2VUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERldmljZVR5
cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzUyOUJENUIxMzI2NkUzNTAwMjQ3
RDI5IC8qIFN0cmVhbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
dHJlYW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTI5QkQ1QzEzMjY2RTM1
MDAyNDdEMjkgLyogU3RyZWFtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0
cmVhbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTI5QkQ1RDEzMjY2RTM1MDAy
NDdEMjkgLyogU3RyZWFtLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTdHJlYW0uaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTI5QkQ4MjEzMjY2RTc2MDAyNDdEMjkgLyog
RGV2aWNlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERldmljZUNs
aWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTI5QkQ4ODEzMjY2RTc2MDAy
NDdEMjkgLyogRGV2aWNlTGlzdGVuZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRGV2aWNlTGlzdGVuZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzUyOUJE
ODMxMzI2NkU3NjAwMjQ3RDI5IC8qIERldmljZVNlc3Npb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRGV2aWNlU2Vzc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk3NTI5QkQ4NDEzMjY2RTc2MDAyNDdEMjkgLyogRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGV2aWNlU2Vzc2lvbkNv
bnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTI5QkQ4NTEzMjY2
RTc2MDAyNDdEMjkgLyogRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNzUyOUJEODYxMzI2NkU3NjAwMjQ3RDI5IC8qIERldmljZVNlc3Np
b25TcGVjaWZpYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEZXZp
Y2VTZXNzaW9uU3BlY2lmaWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTI5
QkQ4NzEzMjY2RTc2MDAyNDdEMjkgLyogRGV2aWNlU2Vzc2lvblNwZWNpZmljLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERldmljZVNlc3Npb25TcGVjaWZpYy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk3NTI5QkQ5ODEzMjY2RjI2MDAyNDdEMjkgLyogSlNTdHJl
YW0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTdHJlYW0uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTI5QkQ5OTEzMjY2RjI2MDAyNDdEMjkg
LyogSlNTdHJlYW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTdHJlYW0u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzUzNUJDOTIxMjAyMENGRjAwMzdFQzQ1
IC8qIFNwZWVjaElucHV0Q2xpZW50TW9jay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBTcGVlY2hJbnB1dENsaWVudE1vY2suY3BwOyBwYXRoID0gbW9jay9TcGVlY2hJ
bnB1dENsaWVudE1vY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTM1QkM5
MzEyMDIwQ0ZGMDAzN0VDNDUgLyogU3BlZWNoSW5wdXRDbGllbnRNb2NrLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFNwZWVjaElucHV0Q2xpZW50TW9jay5oOyBwYXRoID0gbW9j
ay9TcGVlY2hJbnB1dENsaWVudE1vY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NzU0MTMzQTcxMDJFMDBFODAwMDc1RDAwIC8qIEluc3BlY3RvclRpbWVsaW5lQWdlbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQwNDAsNiArMTQwODQsMTMgQEAKIAkJCQkx
NDAzQjk5NjA5RUIxM0FGMDA3OTdDN0YgLyogRE9NV2luZG93LmNwcCAqLywKIAkJCQkxNDAzQjk5
NTA5RUIxM0FGMDA3OTdDN0YgLyogRE9NV2luZG93LmggKi8sCiAJCQkJMTQwM0I5MEMwOUVCMTI0
NTAwNzk3QzdGIC8qIERPTVdpbmRvdy5pZGwgKi8sCisJCQkJNzUyOUJEODIxMzI2NkU3NjAwMjQ3
RDI5IC8qIERldmljZUNsaWVudC5oICovLAorCQkJCTc1MjlCRDg4MTMyNjZFNzYwMDI0N0QyOSAv
KiBEZXZpY2VMaXN0ZW5lci5oICovLAorCQkJCTc1MjlCRDgzMTMyNjZFNzYwMDI0N0QyOSAvKiBE
ZXZpY2VTZXNzaW9uLmggKi8sCisJCQkJNzUyOUJEODQxMzI2NkU3NjAwMjQ3RDI5IC8qIERldmlj
ZVNlc3Npb25Db250cm9sbGVyLmNwcCAqLywKKwkJCQk3NTI5QkQ4NTEzMjY2RTc2MDAyNDdEMjkg
LyogRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIuaCAqLywKKwkJCQk3NTI5QkQ4NjEzMjY2RTc2MDAy
NDdEMjkgLyogRGV2aWNlU2Vzc2lvblNwZWNpZmljLmNwcCAqLywKKwkJCQk3NTI5QkQ4NzEzMjY2
RTc2MDAyNDdEMjkgLyogRGV2aWNlU2Vzc2lvblNwZWNpZmljLmggKi8sCiAJCQkJQTcxODc2MEQw
QjJBMTIwMTAwQTE2RUNFIC8qIERyYWdBY3Rpb25zLmggKi8sCiAJCQkJQTdDQTU5NjIwQjI3QzFG
MjAwRkEwMjFEIC8qIERyYWdDbGllbnQuaCAqLywKIAkJCQlBN0NBNTk1QzBCMjdCRDlFMDBGQTAy
MUQgLyogRHJhZ0NvbnRyb2xsZXIuY3BwICovLApAQCAtMTU2MjQsNiArMTU2NzUsOSBAQAogCQkJ
CUQzNTlENzg2MTI5Q0EyNzEwMDA2RTVEMiAvKiBIVE1MRGV0YWlsc0VsZW1lbnQuY3BwICovLAog
CQkJCUQzNTlENzg3MTI5Q0EyNzEwMDA2RTVEMiAvKiBIVE1MRGV0YWlsc0VsZW1lbnQuaCAqLywK
IAkJCQlEMzU5RDc4ODEyOUNBMjcxMDAwNkU1RDIgLyogSFRNTERldGFpbHNFbGVtZW50LmlkbCAq
LywKKwkJCQk3NTI5Qjc2RDEzMjY2QTFBMDAyNDdEMjkgLyogSFRNTERldmljZUVsZW1lbnQuY3Bw
ICovLAorCQkJCTc1MjlCNzZFMTMyNjZBMUEwMDI0N0QyOSAvKiBIVE1MRGV2aWNlRWxlbWVudC5o
ICovLAorCQkJCTc1MjlCNzZGMTMyNjZBMUEwMDI0N0QyOSAvKiBIVE1MRGV2aWNlRWxlbWVudC5p
ZGwgKi8sCiAJCQkJQThFQTc5RUQwQTE5MTZERjAwQThFRjVGIC8qIEhUTUxEaXJlY3RvcnlFbGVt
ZW50LmNwcCAqLywKIAkJCQlBOEVBNzlFRTBBMTkxNkRGMDBBOEVGNUYgLyogSFRNTERpcmVjdG9y
eUVsZW1lbnQuaCAqLywKIAkJCQkxQTg1QjFEOTBBMUIyM0E0MDBEOEM4N0MgLyogSFRNTERpcmVj
dG9yeUVsZW1lbnQuaWRsICovLApAQCAtMTYxNzIsNiArMTYyMjYsOCBAQAogCQkJCUY1QzA0MUUy
MEZGQ0E5NkQwMDgzOUQ0QSAvKiBKU0hUTUxEYXRhTGlzdEVsZW1lbnQuaCAqLywKIAkJCQlEMzU5
RDhCQzEyOUNBNTVDMDAwNkU1RDIgLyogSlNIVE1MRGV0YWlsc0VsZW1lbnQuY3BwICovLAogCQkJ
CUQzNTlEOEJEMTI5Q0E1NUMwMDA2RTVEMiAvKiBKU0hUTUxEZXRhaWxzRWxlbWVudC5oICovLAor
CQkJCTc1MjlCQzExMTMyNjZDQTgwMDI0N0QyOSAvKiBKU0hUTUxEZXZpY2VFbGVtZW50LmNwcCAq
LywKKwkJCQk3NTI5QkMxMjEzMjY2Q0E4MDAyNDdEMjkgLyogSlNIVE1MRGV2aWNlRWxlbWVudC5o
ICovLAogCQkJCTFBODVCMUUwMEExQjI0MDUwMEQ4Qzg3QyAvKiBKU0hUTUxEaXJlY3RvcnlFbGVt
ZW50LmNwcCAqLywKIAkJCQkxQTg1QjFFMTBBMUIyNDA1MDBEOEM4N0MgLyogSlNIVE1MRGlyZWN0
b3J5RWxlbWVudC5oICovLAogCQkJCTFBODVCMkI0MEExQjJBQzcwMEQ4Qzg3QyAvKiBKU0hUTUxE
aXZFbGVtZW50LmNwcCAqLywKQEAgLTE2NzU4LDYgKzE2ODE0LDggQEAKIAkJCQk3NTQxNUQ1MjEy
OUFCMkQyMDAzQUQ2NjkgLyogSlNTcGVlY2hJbnB1dFJlc3VsdC5oICovLAogCQkJCTc1NDE1RDUz
MTI5QUIyRDIwMDNBRDY2OSAvKiBKU1NwZWVjaElucHV0UmVzdWx0TGlzdC5jcHAgKi8sCiAJCQkJ
NzU0MTVENTQxMjlBQjJEMjAwM0FENjY5IC8qIEpTU3BlZWNoSW5wdXRSZXN1bHRMaXN0LmggKi8s
CisJCQkJNzUyOUJEOTgxMzI2NkYyNjAwMjQ3RDI5IC8qIEpTU3RyZWFtLmNwcCAqLywKKwkJCQk3
NTI5QkQ5OTEzMjY2RjI2MDAyNDdEMjkgLyogSlNTdHJlYW0uaCAqLywKIAkJCQk2NURGMzFFRjA5
RDFDQzYwMDAwQkUzMjUgLyogSlNUZXh0LmNwcCAqLywKIAkJCQk2NURGMzFGMDA5RDFDQzYwMDAw
QkUzMjUgLyogSlNUZXh0LmggKi8sCiAJCQkpOwpAQCAtMTc5NzcsNiArMTgwMzUsNyBAQAogCQkJ
CTkzOTIyNjJDMTAzMjEwN0IwMDZFN0Q1RCAvKiBKU0hUTUxDYW52YXNFbGVtZW50Q3VzdG9tLmNw
cCAqLywKIAkJCQlCQ0NCQUQzQTBDMThCRkY4MDBDRTg5MEYgLyogSlNIVE1MQ29sbGVjdGlvbkN1
c3RvbS5jcHAgKi8sCiAJCQkJQkNCQ0FFNTMwRkYxQTI5RTAwMDc2MkFFIC8qIEpTSFRNTERhdGFH
cmlkRWxlbWVudEN1c3RvbS5jcHAgKi8sCisJCQkJNzUyOUJENEYxMzI2NkRFMjAwMjQ3RDI5IC8q
IEpTSFRNTERldmljZUVsZW1lbnRDdXN0b20uY3BwICovLAogCQkJCUJDNTE1ODBBMEMwM0Q0MDQw
MDhCQjBFRSAvKiBKU0hUTUxEb2N1bWVudEN1c3RvbS5jcHAgKi8sCiAJCQkJQkM1ODIzRjQwQzBB
OThERjAwNTNGMUI1IC8qIEpTSFRNTEVsZW1lbnRDdXN0b20uY3BwICovLAogCQkJCUJDNkQ0NEJE
MEMwN0VGQjYwMDcyRDJDOSAvKiBKU0hUTUxFbWJlZEVsZW1lbnRDdXN0b20uY3BwICovLApAQCAt
MTkwNDMsNiArMTkxMDIsOCBAQAogCQkJCUJDNjQ2NDFBMTFEN0Y0MTYwMDY0NTVCMCAvKiBEYXRh
c2V0RE9NU3RyaW5nTWFwLmggKi8sCiAJCQkJQThDMjI4QTAxMUQ1NzIyRTAwRDVBN0QzIC8qIERl
Y29kZWREYXRhRG9jdW1lbnRQYXJzZXIuY3BwICovLAogCQkJCUE4QzIyODlGMTFENTcyMkUwMEQ1
QTdEMyAvKiBEZWNvZGVkRGF0YURvY3VtZW50UGFyc2VyLmggKi8sCisJCQkJNzUyOUJENTIxMzI2
NkUwMzAwMjQ3RDI5IC8qIERldmljZUVsZW1lbnQuY3BwICovLAorCQkJCTc1MjlCRDUzMTMyNjZF
MDMwMDI0N0QyOSAvKiBEZXZpY2VFbGVtZW50LmggKi8sCiAJCQkJMzFGQjFBNEYxMjBBNUQwNjAw
REMwMkEwIC8qIERldmljZU1vdGlvbkNsaWVudC5oICovLAogCQkJCTMxRkIxQTUwMTIwQTVEMDYw
MERDMDJBMCAvKiBEZXZpY2VNb3Rpb25Db250cm9sbGVyLmNwcCAqLywKIAkJCQkzMUZCMUE1MTEy
MEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uQ29udHJvbGxlci5oICovLApAQCAtMTkwNTks
NiArMTkxMjAsOSBAQAogCQkJCTU5QTg1RUExMTE5RDY4RDkwMERFRjFFRiAvKiBEZXZpY2VPcmll
bnRhdGlvbkV2ZW50LmNwcCAqLywKIAkJCQk1OUE4NUVBMzExOUQ2OEVDMDBERUYxRUYgLyogRGV2
aWNlT3JpZW50YXRpb25FdmVudC5oICovLAogCQkJCTU5QTg1RUFBMTE5RDdCNkUwMERFRjFFRiAv
KiBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmlkbCAqLywKKwkJCQk3NTI5QkQ1MTEzMjY2RTAzMDAy
NDdEMjkgLyogRGV2aWNlU2Vzc2lvbklkLmggKi8sCisJCQkJNzUyOUJENTcxMzI2NkUxMzAwMjQ3
RDI5IC8qIERldmljZVR5cGUuY3BwICovLAorCQkJCTc1MjlCRDU4MTMyNjZFMTMwMDI0N0QyOSAv
KiBEZXZpY2VUeXBlLmggKi8sCiAJCQkJQTgxODVGMzQwOTc2NTc2NTAwNTgyNkQ5IC8qIERvY3Vt
ZW50LmNwcCAqLywKIAkJCQlBODE4NUYzODA5NzY1NzY1MDA1ODI2RDkgLyogRG9jdW1lbnQuaCAq
LywKIAkJCQk2NTQ4RTI0ODA5RTFFMDREMDBBRjgwMjAgLyogRG9jdW1lbnQuaWRsICovLApAQCAt
MTkyMzMsNiArMTkyOTcsOSBAQAogCQkJCUNFQTM5NDlCMTFENDVDREEwMDMwOTRDRiAvKiBTdGF0
aWNIYXNoU2V0Tm9kZUxpc3QuaCAqLywKIAkJCQlCQzdGQTYyQzBEMUYwRUZGMDBEQjIyQTkgLyog
U3RhdGljTm9kZUxpc3QuY3BwICovLAogCQkJCUJDN0ZBNjJCMEQxRjBFRkYwMERCMjJBOSAvKiBT
dGF0aWNOb2RlTGlzdC5oICovLAorCQkJCTc1MjlCRDVCMTMyNjZFMzUwMDI0N0QyOSAvKiBTdHJl
YW0uY3BwICovLAorCQkJCTc1MjlCRDVDMTMyNjZFMzUwMDI0N0QyOSAvKiBTdHJlYW0uaCAqLywK
KwkJCQk3NTI5QkQ1RDEzMjY2RTM1MDAyNDdEMjkgLyogU3RyZWFtLmlkbCAqLywKIAkJCQk4MTAy
QzU4NzEzMjVCQjExMDBEREU2N0EgLyogU3RyaW5nQ2FsbGJhY2suY3BwICovLAogCQkJCTgxQUM2
QzM1MTMxQzU3RDMwMDA5QTdFMCAvKiBTdHJpbmdDYWxsYmFjay5oICovLAogCQkJCTgxQUM2QzM0
MTMxQzU3QzIwMDA5QTdFMCAvKiBTdHJpbmdDYWxsYmFjay5pZGwgKi8sCkBAIC0yMjU2OCw2ICsy
MjYzNSwxOCBAQAogCQkJCTU5M0QzRUIxMTMyNTMyOTUwMDU3RTdFRSAvKiBKYXZhU3RyaW5nLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1OThENzdERjEzMjU0MUZBMDA3NjFCMjIgLyogSmF2YUFycmF5
SlNDLmggaW4gSGVhZGVycyAqLywKIAkJCQk1OThENzdFMzEzMjU0MjBFMDA3NjFCMjIgLyogSmF2
YUZpZWxkSlNDLmggaW4gSGVhZGVycyAqLywKKwkJCQk3NTI5Qjc3MTEzMjY2QTFBMDAyNDdEMjkg
LyogSFRNTERldmljZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTc1MjlCQzE0MTMyNjZD
QTgwMDI0N0QyOSAvKiBKU0hUTUxEZXZpY2VFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk3
NTI5QkQ1NjEzMjY2RTAzMDAyNDdEMjkgLyogRGV2aWNlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJNzUyOUJENTQxMzI2NkUwMzAwMjQ3RDI5IC8qIERldmljZVNlc3Npb25JZC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNzUyOUJENUExMzI2NkUxMzAwMjQ3RDI5IC8qIERldmljZVR5cGUuaCBp
biBIZWFkZXJzICovLAorCQkJCTc1MjlCRDYyMTMyNjZFMzUwMDI0N0QyOSAvKiBTdHJlYW0uaCBp
biBIZWFkZXJzICovLAorCQkJCTc1MjlCRDg5MTMyNjZFNzYwMDI0N0QyOSAvKiBEZXZpY2VDbGll
bnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTc1MjlCRDhGMTMyNjZFNzYwMDI0N0QyOSAvKiBEZXZp
Y2VMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzUyOUJEOEExMzI2NkU3NjAwMjQ3RDI5
IC8qIERldmljZVNlc3Npb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTc1MjlCRDhDMTMyNjZFNzYw
MDI0N0QyOSAvKiBEZXZpY2VTZXNzaW9uQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NzUyOUJEOEUxMzI2NkU3NjAwMjQ3RDI5IC8qIERldmljZVNlc3Npb25TcGVjaWZpYy5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNzUyOUJEOUQxMzI2NkYyNjAwMjQ3RDI5IC8qIEpTU3RyZWFtLmggaW4g
SGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKIAkJfTsKQEAgLTI1MjIyLDYgKzI1MzAxLDE1IEBACiAJCQkJNTk4RDc3RTExMzI1NDIw
NDAwNzYxQjIyIC8qIEphdmFGaWVsZEpTQy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4MTVFNjE2
NzEzMjU4N0FBMDBCNjIyQjAgLyogRGF0YVRyYW5zZmVySXRlbS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk4MTAyQzU4ODEzMjVCQjExMDBEREU2N0EgLyogU3RyaW5nQ2FsbGJhY2suY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJNzUyOUI3NzAxMzI2NkExQTAwMjQ3RDI5IC8qIEhUTUxEZXZpY2VFbGVt
ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTc1MjlCQzEzMTMyNjZDQTgwMDI0N0QyOSAvKiBK
U0hUTUxEZXZpY2VFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTc1MjlCRDUwMTMyNjZE
RTIwMDI0N0QyOSAvKiBKU0hUTUxEZXZpY2VFbGVtZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTc1MjlCRDU1MTMyNjZFMDMwMDI0N0QyOSAvKiBEZXZpY2VFbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTc1MjlCRDU5MTMyNjZFMTMwMDI0N0QyOSAvKiBEZXZpY2VUeXBlLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTc1MjlCRDYxMTMyNjZFMzUwMDI0N0QyOSAvKiBTdHJlYW0u
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNzUyOUJEOEIxMzI2NkU3NjAwMjQ3RDI5IC8qIERldmlj
ZVNlc3Npb25Db250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTc1MjlCRDhEMTMyNjZF
NzYwMDI0N0QyOSAvKiBEZXZpY2VTZXNzaW9uU3BlY2lmaWMuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJNzUyOUJEOUMxMzI2NkYyNjAwMjQ3RDI5IC8qIEpTU3RyZWFtLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRGV2aWNlRWxl
bWVudEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxEZXZpY2VF
bGVtZW50Q3VzdG9tLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YTc2Y2FjOGE2Njc0YTZjYTM0ZWYyMzQxNDJm
NDljMTQxM2VhODg3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNIVE1MRGV2aWNlRWxlbWVudEN1c3RvbS5jcHAKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0
cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisg
KiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJKU0hUTUxEZXZpY2VFbGVtZW50LmgiCisKKyNpZiBFTkFC
TEUoREVWSUNFX0VMRU1FTlQpCisKKyNpbmNsdWRlICJEZXZpY2VTZXNzaW9uLmgiCisjaW5jbHVk
ZSAiSFRNTERldmljZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJKU1N0cmVhbS5oIgorCit1c2luZyBu
YW1lc3BhY2UgSlNDOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0pTVmFsdWUgSlNIVE1MRGV2
aWNlRWxlbWVudDo6ZGF0YShFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Cit7CisgICAgSFRNTERldmlj
ZUVsZW1lbnQqIGRldmljZSA9IHN0YXRpY19jYXN0PEhUTUxEZXZpY2VFbGVtZW50Kj4oaW1wbCgp
KTsKKyAgICBpZiAoY29uc3QgRGV2aWNlU2Vzc2lvbiogc2Vzc2lvbiA9IGRldmljZS0+c2Vzc2lv
bigpKQorICAgICAgICBpZiAoc2Vzc2lvbi0+c3RhdGUoKSA9PSBEZXZpY2VTZXNzaW9uOjpPcGVu
ZWQpCisgICAgICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QoKSwgZGV2aWNl
LT5kYXRhKCkpOworCisgICAgcmV0dXJuIGpzTnVsbCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREVWSUNFX0VMRU1FTlQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MRGV2aWNlRWxlbWVudEN1c3Rv
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MRGV2aWNlRWxl
bWVudEN1c3RvbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGEzYTk3YjFhOWVmNmVhZTVjNjhhZDQxZDU0ZDQw
NzcyOGRhMWI4ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOEhUTUxEZXZpY2VFbGVtZW50Q3VzdG9tLmNwcApAQCAtMCwwICsxLDU5IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAq
IGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisg
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlY4SFRNTERldmljZUVsZW1lbnQuaCIKKworI2lm
IEVOQUJMRShERVZJQ0VfRUxFTUVOVCkKKworI2luY2x1ZGUgIkRldmljZVNlc3Npb24uaCIKKyNp
bmNsdWRlICJIVE1MRGV2aWNlRWxlbWVudC5oIgorI2luY2x1ZGUgIlY4QmluZGluZy5oIgorI2lu
Y2x1ZGUgIlY4U3RyZWFtLmgiCisKKyNpbmNsdWRlIDx2OC5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEhUTUxEZXZpY2VFbGVtZW50OjpkYXRhQWNj
ZXNzb3JHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3Nv
ckluZm8mIGluZm8pCit7CisgICAgSU5DX1NUQVRTKCJET00uSFRNTERldmljZUVsZW1lbnQuZGF0
YS5fZ2V0Iik7CisgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBob2xkZXIgPSBpbmZvLkhvbGRl
cigpOworICAgIEhUTUxEZXZpY2VFbGVtZW50KiBkZXZpY2UgPSBWOEhUTUxEZXZpY2VFbGVtZW50
Ojp0b05hdGl2ZShob2xkZXIpOworICAgIGlmIChjb25zdCBEZXZpY2VTZXNzaW9uKiBzZXNzaW9u
ID0gZGV2aWNlLT5zZXNzaW9uKCkpCisgICAgICAgIGlmIChzZXNzaW9uLT5zdGF0ZSgpID09IERl
dmljZVNlc3Npb246Ok9wZW5lZCkKKyAgICAgICAgICAgIHJldHVybiB0b1Y4KGRldmljZS0+ZGF0
YSgpKTsKKworICAgIHJldHVybiB2ODo6TnVsbCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREVWSUNFX0VMRU1FTlQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFs
bEluT25lLmNwcAppbmRleCBjODhhZWNmOTQ4NTQ3NDY5YWQwZGUwZTRhZDUwY2NmZWMwOGJmNjUy
Li4yOTRhMTliNzlmMjZhNmUzYWRjYmM3NDE0OTZjZjc1NDk4Yzk0NGU3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9ET01BbGxJbk9uZS5jcHAKQEAgLTUxLDEyICs1MSwxNCBAQAogI2luY2x1ZGUgIkRPTVN0cmlu
Z01hcC5jcHAiCiAjaW5jbHVkZSAiRGF0YXNldERPTVN0cmluZ01hcC5jcHAiCiAjaW5jbHVkZSAi
RGVjb2RlZERhdGFEb2N1bWVudFBhcnNlci5jcHAiCisjaW5jbHVkZSAiRGV2aWNlRWxlbWVudC5j
cHAiCiAjaW5jbHVkZSAiRGV2aWNlTW90aW9uQ29udHJvbGxlci5jcHAiCiAjaW5jbHVkZSAiRGV2
aWNlTW90aW9uRGF0YS5jcHAiCiAjaW5jbHVkZSAiRGV2aWNlTW90aW9uRXZlbnQuY3BwIgogI2lu
Y2x1ZGUgIkRldmljZU9yaWVudGF0aW9uLmNwcCIKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlv
bkNvbnRyb2xsZXIuY3BwIgogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uRXZlbnQuY3BwIgor
I2luY2x1ZGUgIkRldmljZVR5cGUuY3BwIgogI2luY2x1ZGUgIkRvY3VtZW50LmNwcCIKICNpbmNs
dWRlICJEb2N1bWVudEZyYWdtZW50LmNwcCIKICNpbmNsdWRlICJEb2N1bWVudE1hcmtlckNvbnRy
b2xsZXIuY3BwIgpAQCAtMTEwLDYgKzExMiw3IEBACiAjaW5jbHVkZSAiU3BhY2VTcGxpdFN0cmlu
Zy5jcHAiCiAjaW5jbHVkZSAiU3RhdGljSGFzaFNldE5vZGVMaXN0LmNwcCIKICNpbmNsdWRlICJT
dGF0aWNOb2RlTGlzdC5jcHAiCisjaW5jbHVkZSAiU3RyZWFtLmNwcCIKICNpbmNsdWRlICJTdHls
ZUVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlN0eWxlZEVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlRh
Z05vZGVMaXN0LmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VFbGVtZW50LmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kMzM3NWJkMTViY2FkZTdjYTlhZGU1YzM5MDA3OWU3MjQ1MThmMGE5Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZUVsZW1lbnQuY3BwCkBAIC0wLDAgKzEsNTgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAq
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGV2aWNlRWxlbWVudC5oIgorCisjaWYg
RU5BQkxFKERFVklDRV9FTEVNRU5UKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0RldmljZUVs
ZW1lbnQ6OkRldmljZUVsZW1lbnQoKQoreworfQorCitEZXZpY2VFbGVtZW50OjpEZXZpY2VFbGVt
ZW50KGNvbnN0IFN0cmluZyYgdHlwZSkKKyAgICA6IG1fdHlwZSh0eXBlKQoreworfQorCitEZXZp
Y2VFbGVtZW50Ojp+RGV2aWNlRWxlbWVudCgpCit7Cit9CisKK1N0cmluZyBEZXZpY2VFbGVtZW50
Ojp0eXBlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV90eXBlLm5hbWUoKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKERFVklDRV9FTEVNRU5UKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9EZXZpY2VFbGVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmIzNjMyYTRlNTZkNzMyYjUyMjEx
ZDdjYTg3NGY2Y2JkY2Q4YzFmMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9EZXZpY2VFbGVtZW50LmgKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
CisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRGV2aWNlRWxlbWVudF9o
CisjZGVmaW5lIERldmljZUVsZW1lbnRfaAorCisjaWYgRU5BQkxFKERFVklDRV9FTEVNRU5UKQor
CisjaW5jbHVkZSAiRGV2aWNlVHlwZS5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5j
bHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBT
dHJlYW07CisKK2NsYXNzIERldmljZUVsZW1lbnQgeworcHVibGljOgorICAgIERldmljZUVsZW1l
bnQoKTsKKyAgICBEZXZpY2VFbGVtZW50KGNvbnN0IFN0cmluZyYgdHlwZSk7CisgICAgdmlydHVh
bCB+RGV2aWNlRWxlbWVudCgpOworCisgICAgU3RyaW5nIHR5cGUoKSBjb25zdDsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0VHlwZShjb25zdCBTdHJpbmcmKSA9IDA7CisgICAgdmlydHVhbCBQYXNzUmVm
UHRyPFN0cmVhbT4gZGF0YSgpID0gMDsgLy8gRklYTUU6IHVzZSBnZW5lcmljIGRhdGEgdHlwZXMg
d2hlbiBleHRlbmRpbmcgdGhlIGRldmljZSB0eXBlIGJleW9uZCBtZWRpYS4KKworcHJvdGVjdGVk
OgorICAgIERldmljZVR5cGUgbV90eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gRU5BQkxFKERFVklDRV9FTEVNRU5UKQorCisjZW5kaWYgLy8gRGV2aWNlRWxl
bWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlU2Vzc2lvbklkLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlU2Vzc2lvbklkLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGI4N2Vj
MTQ2MTNlYjdjZWFjMDUwNWIzODBlZTFkNzZhZjAyMTI3ZAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VTZXNzaW9uSWQuaApAQCAtMCwwICsxLDk0IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRp
c3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBEZXZpY2VTZXNzaW9uSWRfaAorI2RlZmluZSBEZXZpY2VTZXNzaW9uSWRfaAorCisjaWYgRU5B
QkxFKERFVklDRV9FTEVNRU5UKQorCisjaW5jbHVkZSA8d3RmL0hhc2hGdW5jdGlvbnMuaD4KKyNp
bmNsdWRlIDx3dGYvSGFzaFRyYWl0cy5oPgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCisvLyBUdXBsZSBvZiA8c2Vzc2lvbiBpZGVudGlmaWVyLCB0eXBl
Pi4KKy8vIEFsbG93cyB0aGUgRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIgdG8gYXZvaWQgY29sbGlz
aW9ucyBiZXR3ZWVuIGxvY2FsIGRldmljZSBzZXNzaW9uIGlkcyAobWFuYWdlZCBieSBpdHNlbGYp
CisvLyBhbmQgcmVtb3RlIGRldmljZSBzZXNzaW9uIGlkcyAobWFuYWdlZCBieSB0aGUgQ29ubmVj
dGlvblBlZXIgY2xpZW50KS4KK2NsYXNzIERldmljZVNlc3Npb25JZCB7CitwdWJsaWM6CisgICAg
ZW51bSBTZXNzaW9uVHlwZSB7CisgICAgICAgIE5vbmUgPSAwLAorICAgICAgICBMb2NhbCwKKyAg
ICAgICAgUmVtb3RlCisgICAgfTsKKworICAgIERldmljZVNlc3Npb25JZCgpCisgICAgICAgIDog
bV9pZCgwKQorICAgICAgICAsIG1fdHlwZShOb25lKQorICAgIHsKKyAgICB9CisKKyAgICBEZXZp
Y2VTZXNzaW9uSWQoaW50IGlkLCBTZXNzaW9uVHlwZSB0eXBlKQorICAgICAgICA6IG1faWQoaWQp
CisgICAgICAgICwgbV90eXBlKHR5cGUpCisgICAgeworICAgIH0KKworICAgIGludCBpZCgpIGNv
bnN0IHsgcmV0dXJuIG1faWQ7IH0KKyAgICBTZXNzaW9uVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1
cm4gbV90eXBlOyB9CisgICAgYm9vbCBpc051bGwoKSBjb25zdCB7IHJldHVybiAhbV9pZCB8fCBt
X3R5cGUgPT0gTm9uZTsgfQorICAgIERldmljZVNlc3Npb25JZCByZXNldCgpIHsgRGV2aWNlU2Vz
c2lvbklkIHRlbXAgPSAqdGhpczsgKnRoaXMgPSBEZXZpY2VTZXNzaW9uSWQoKTsgcmV0dXJuIHRl
bXA7IH0KKworICAgIC8vIE9wZXJhdG9ycyByZXF1aXJlZCB0byByZXVzZSBzdGQ6OnBhaXIgaGFz
aGluZyB0ZW1wbGF0ZXMuCisgICAgb3BlcmF0b3Igc3RkOjpwYWlyPGludCwgaW50PigpIGNvbnN0
IHsgcmV0dXJuIHN0ZDo6cGFpcjxpbnQsIGludD4obV9pZCwgbV90eXBlKTsgfQorICAgIGJvb2wg
b3BlcmF0b3I9PShjb25zdCBEZXZpY2VTZXNzaW9uSWQmIGMpIGNvbnN0IHsgcmV0dXJuIG1faWQg
PT0gYy5tX2lkICYmIG1fdHlwZSA9PSBjLm1fdHlwZTsgfQorCitwcml2YXRlOgorICAgIGZyaWVu
ZCBjbGFzcyBEZXZpY2VTZXNzaW9uQ29udHJvbGxlcjsKKyAgICBpbnQgbV9pZDsKKyAgICBTZXNz
aW9uVHlwZSBtX3R5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK25hbWVzcGFj
ZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxXZWJDb3JlOjpEZXZpY2VT
ZXNzaW9uSWQ+IHsKKyAgICB0eXBlZGVmIFBhaXJIYXNoPGludCwgaW50PiBIYXNoOworfTsKKwor
dGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0czxXZWJDb3JlOjpEZXZpY2VTZXNzaW9uSWQ+IDog
cHVibGljIFBhaXJIYXNoVHJhaXRzPEhhc2hUcmFpdHM8aW50PiwgSGFzaFRyYWl0czxpbnQ+ID4g
eyB9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKKworI2VuZGlmIC8vIEVOQUJMRShERVZJQ0VfRUxF
TUVOVCkKKworI2VuZGlmIC8vIERldmljZVNlc3Npb25JZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRGV2aWNlVHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlVHlw
ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMWU2NzM1OTdiMzBmNmMzYWYyYWM5ODQ3ZGM4ZTAzMjA3ZDM3Nzcz
MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VUeXBlLmNwcApA
QCAtMCwwICsxLDEwMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQor
ICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEZXZpY2VUeXBl
LmgiCisKKyNpZiBFTkFCTEUoREVWSUNFX0VMRU1FTlQpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworRGV2aWNlVHlwZTo6RGV2aWNlVHlwZSgpCisgICAgOiBtX2lkKEludmFsaWQpCit7Cit9CisK
K0RldmljZVR5cGU6OkRldmljZVR5cGUoVHlwZUlkIGlkKQoreworICAgIEFTU0VSVChpZCA+IElu
dmFsaWQgJiYgaWQgPCBOdW1EZXZpY2VUeXBlcyk7CisgICAgbV9pZCA9IGlkOworfQorCitEZXZp
Y2VUeXBlOjpEZXZpY2VUeXBlKGNvbnN0IFN0cmluZyYgbmFtZSkKK3sKKyAgICBtX2lkID0gaWRG
cm9tTmFtZShuYW1lKTsKK30KKworRGV2aWNlVHlwZTo6VHlwZUlkIERldmljZVR5cGU6OmlkKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9pZDsKK30KKworY29uc3QgQXRvbWljU3RyaW5nJiBEZXZp
Y2VUeXBlOjpuYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbmFtZUZyb21JZChtX2lkKTsKK30K
KworYm9vbCBEZXZpY2VUeXBlOjppc1ZhbGlkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9pZCA+
IEludmFsaWQgJiYgbV9pZCA8IE51bURldmljZVR5cGVzOworfQorCitEZXZpY2VUeXBlOjpUeXBl
SWQgRGV2aWNlVHlwZTo6aWRGcm9tTmFtZShjb25zdCBTdHJpbmcmIG5hbWUpCit7CisgICAgLy8g
QWRkIGNvZGUgZm9yIGV4dHJhIGRldmljZSB0eXBlcyBoZXJlLgorICAgIGlmIChuYW1lID09IG1l
ZGlhKCkpCisgICAgICAgIHJldHVybiBNZWRpYTsKKworICAgIHJldHVybiBJbnZhbGlkOworfQor
Citjb25zdCBBdG9taWNTdHJpbmcmIERldmljZVR5cGU6Om5hbWVGcm9tSWQoVHlwZUlkIGlkKQor
eworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBudWxsVHlwZU5hbWUsICgp
KTsKKworICAgIC8vIEFkZCBjb2RlIGZvciBleHRyYSBkZXZpY2UgdHlwZXMgaGVyZS4KKyAgICBz
d2l0Y2ggKGlkKSB7CisgICAgY2FzZSBNZWRpYToKKyAgICAgICAgcmV0dXJuIG1lZGlhKCk7CisK
KyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gbnVsbFR5cGVOYW1lOworICAgIH0KK30KKwor
Y29uc3QgQXRvbWljU3RyaW5nJiBEZXZpY2VUeXBlOjptZWRpYSgpCit7CisgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgibWVkaWEiKSk7CisgICAgcmV0dXJuIG5h
bWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShERVZJ
Q0VfRUxFTUVOVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VUeXBlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlVHlwZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ2YWNkODg0MmU5
N2Y3Yjk4MDFiM2RhMGJjODAxN2FiMWE2ZWM5MDkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRGV2aWNlVHlwZS5oCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9u
LgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIERldmljZVR5
cGVfaAorI2RlZmluZSBEZXZpY2VUeXBlX2gKKworI2lmIEVOQUJMRShERVZJQ0VfRUxFTUVOVCkK
KworI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWlj
U3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGV2aWNlVHlwZSB7Citw
dWJsaWM6CisgICAgLy8gQWxsb3dlZCB0eXBlIHZhbHVlcyBmb3IgdGhlIGRldmljZSBlbGVtZW50
IGFuZCBkZXZpY2Ugc2Vzc2lvbnMuCisgICAgZW51bSBUeXBlSWQgeworICAgICAgICBJbnZhbGlk
ID0gMCwgLy8gSW52YWxpZCBkZXZpY2UgdHlwZSB2YWx1ZS4gTm90IGEgcmVzZXJ2ZWQgdHlwZSBp
biB0aGUgc3BlYy4KKyAgICAgICAgTWVkaWEsCisgICAgICAgIE51bURldmljZVR5cGVzCisgICAg
fTsKKworICAgIERldmljZVR5cGUoKTsKKyAgICBEZXZpY2VUeXBlKFR5cGVJZCk7CisgICAgRGV2
aWNlVHlwZShjb25zdCBTdHJpbmcmIG5hbWUpOworCisgICAgVHlwZUlkIGlkKCkgY29uc3Q7Cisg
ICAgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKCkgY29uc3Q7CisgICAgYm9vbCBpc1ZhbGlkKCkg
Y29uc3Q7CisKKyAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lRnJvbUlkKFR5cGVJ
ZCk7CisgICAgc3RhdGljIFR5cGVJZCBpZEZyb21OYW1lKGNvbnN0IFN0cmluZyYpOworCisgICAg
Ly8gQWRkIGV4dHJhIGRldmljZSB0eXBlcyBoZXJlLgorICAgIHN0YXRpYyBjb25zdCBBdG9taWNT
dHJpbmcmIG1lZGlhKCk7CisKK3ByaXZhdGU6CisgICAgVHlwZUlkIG1faWQ7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREVWSUNFX0VMRU1FTlQpCisK
KyNlbmRpZiAvLyBEZXZpY2VUeXBlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9T
dHJlYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0cmVhbS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODY1
NmFjMjhjZDM4NWM1OTUxZDMzN2UxYzU2YTlkMjc2NjQ3NDQzNAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9TdHJlYW0uY3BwCkBAIC0wLDAgKzEsOTQgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJp
YnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiU3RyZWFtLmgiCisKKyNpZiBFTkFCTEUoREVWSUNFX0VMRU1F
TlQpCisKKyNpbmNsdWRlICJEZXZpY2VTZXNzaW9uLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworUGFzc1JlZlB0cjxTdHJlYW0+IFN0cmVhbTo6Y3JlYXRlKERldmljZVNlc3Npb25Db250cm9s
bGVyKiBjb250cm9sbGVyLCBEZXZpY2VTZXNzaW9uSWQgaWQsIGNvbnN0IEtVUkwmIHVybCkKK3sK
KyAgICBBU1NFUlQoY29udHJvbGxlcik7CisgICAgQVNTRVJUKGNvbnRyb2xsZXItPmlzU2Vzc2lv
bklkVmFsaWQoaWQpKTsKKyAgICBBU1NFUlQoY29udHJvbGxlci0+c2Vzc2lvbihpZCkuc3RhdGUo
KSA9PSBEZXZpY2VTZXNzaW9uOjpPcGVuZWQpOworICAgIEFTU0VSVCh1cmwuaXNWYWxpZCgpKTsK
KworICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3RyZWFtKGNvbnRyb2xsZXIsIGlkLCB1cmwpKTsK
K30KKworU3RyZWFtOjpTdHJlYW0oRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIs
IERldmljZVNlc3Npb25JZCBpZCwgY29uc3QgS1VSTCYgdXJsKQorICAgIDogbV9jb250cm9sbGVy
KGNvbnRyb2xsZXIpCisgICAgLCBtX3Nlc3Npb25JZChpZCkKKyAgICAsIG1fdXJsKHVybCkKK3sK
KyAgICBtX2NvbnRyb2xsZXItPnJlZ2lzdGVyU2Vzc2lvbkxpc3RlbmVyKG1fc2Vzc2lvbklkLCB0
aGlzKTsKK30KKworU3RyZWFtOjp+U3RyZWFtKCkKK3sKKyAgICBpZiAobV9jb250cm9sbGVyICYm
ICFtX3Nlc3Npb25JZC5pc051bGwoKSkKKyAgICAgICAgbV9jb250cm9sbGVyLT51bnJlZ2lzdGVy
U2Vzc2lvbkxpc3RlbmVyKG1fc2Vzc2lvbklkLCB0aGlzKTsKK30KKworY29uc3QgS1VSTCYgU3Ry
ZWFtOjp1cmwoKSBjb25zdAoreworICAgIHJldHVybiBtX3VybDsKK30KKwordm9pZCBTdHJlYW06
OmRldmljZVNlc3Npb25VcGRhdGUoY29uc3QgRGV2aWNlU2Vzc2lvbiYgc2Vzc2lvbikKK3sKKyAg
ICBzd2l0Y2ggKHNlc3Npb24uc3RhdGUoKSkgeworICAgIGNhc2UgRGV2aWNlU2Vzc2lvbjo6T3Bl
bmVkOgorICAgICAgICBicmVhazsKKworICAgIGNhc2UgRGV2aWNlU2Vzc2lvbjo6RmFpbGVkOgor
ICAgIGNhc2UgRGV2aWNlU2Vzc2lvbjo6Q2xvc2VkOgorICAgICAgICBBU1NFUlQobV9jb250cm9s
bGVyLT5pc1Nlc3Npb25JZFZhbGlkKG1fc2Vzc2lvbklkKSk7CisgICAgICAgIG1fY29udHJvbGxl
ci0+dW5yZWdpc3RlclNlc3Npb25MaXN0ZW5lcihtX3Nlc3Npb25JZC5yZXNldCgpLCB0aGlzKTsK
KyAgICAgICAgYnJlYWs7CisKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICB9OworfQorCit2b2lkIFN0cmVhbTo6c2Vzc2lvbkNvbnRyb2xsZXJTaHV0ZG93
bigpCit7CisgICAgbV9zZXNzaW9uSWQucmVzZXQoKTsKKyAgICBtX2NvbnRyb2xsZXIgPSAwOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREVWSUNFX0VM
RU1FTlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU3RyZWFtLmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vU3RyZWFtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmIyYTA2Yjk3YWE1NmEyN2ZjYjEzNWM4
YjU2MzVjMzQ2OWM5MzZjOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9T
dHJlYW0uaApAQCAtMCwwICsxLDcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTdHJlYW1faAorI2RlZmluZSBTdHJlYW1f
aAorCisjaWYgRU5BQkxFKERFVklDRV9FTEVNRU5UKQorCisjaW5jbHVkZSAiRGV2aWNlU2Vzc2lv
bkNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJEZXZpY2VTZXNzaW9uSWQuaCIKKyNpbmNsdWRlICJL
VVJMLmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0
ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgU3RyZWFtIDogcHVibGljIFJlZkNvdW50ZWQ8U3RyZWFtPiwKKyAgICAgICAgICAg
ICAgIHB1YmxpYyBEZXZpY2VTZXNzaW9uQ29udHJvbGxlcjo6U2Vzc2lvbkxpc3RlbmVyIHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJlYW0+IGNyZWF0ZShEZXZpY2VTZXNzaW9u
Q29udHJvbGxlciosIERldmljZVNlc3Npb25JZCwgY29uc3QgS1VSTCYpOworICAgIH5TdHJlYW0o
KTsKKworICAgIGNvbnN0IEtVUkwmIHVybCgpIGNvbnN0OworCisgICAgLy8gRklYTUU6IGltcGxl
bWVudCB3aGVuIHRoZSBTdHJlYW1SZWNvcmRlciBjbGFzcyBpcyBpbnRyb2R1Y2VkLgorICAgIC8v
IFBhc3NSZWZQdHI8U3RyZWFtUmVjb3JkZXI+IHJlY29yZCgpOworCisgICAgLy8gRGV2aWNlU2Vz
c2lvbkNvbnRyb2xsZXI6OlNlc3Npb25MaXN0ZW5lciBpbXBsZW1lbnRhdGlvbi4KKyAgICB2aXJ0
dWFsIHZvaWQgZGV2aWNlU2Vzc2lvblVwZGF0ZShjb25zdCBEZXZpY2VTZXNzaW9uJik7CisgICAg
dmlydHVhbCB2b2lkIHNlc3Npb25Db250cm9sbGVyU2h1dGRvd24oKTsKKworcHJpdmF0ZToKKyAg
ICBTdHJlYW0oRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIqLCBEZXZpY2VTZXNzaW9uSWQsIGNvbnN0
IEtVUkwmKTsKKworICAgIERldmljZVNlc3Npb25Db250cm9sbGVyKiBtX2NvbnRyb2xsZXI7Cisg
ICAgRGV2aWNlU2Vzc2lvbklkIG1fc2Vzc2lvbklkOworICAgIEtVUkwgbV91cmw7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREVWSUNFX0VMRU1FTlQp
CisKKyNlbmRpZiAvLyBTdHJlYW1faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1N0
cmVhbS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3RyZWFtLmlkbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOWYy
MDQxMTEyNmM2ZjM1YWI0OGRlNTlkNDhmYmJjNmJkYThhZDQ4Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL1N0cmVhbS5pZGwKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmli
dXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBjb3Jl
IHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPURFVklDRV9FTEVNRU5U
CisgICAgXSBTdHJlYW0geworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHVy
bDsKKyAgICAgICAgLy8gRklYTUU6IGltcGxlbWVudCB3aGVuIHRoZSBTdHJlYW1SZWNvcmRlciBj
bGFzcyBpcyBpbnRyb2R1Y2VkLgorICAgICAgICAvLyBTdHJlYW1SZWNvcmRlciByZWNvcmQoKTsK
KyAgICB9OworfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXZpY2VF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldmljZUVsZW1lbnQuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmMyNzc4OTJjOTNhZDRjNWYxOThlZjNhNmRiNDBlNDg1NmNhZWU3ZjEKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXZpY2VFbGVtZW50LmNwcApA
QCAtMCwwICsxLDI4NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQor
ICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJIVE1MRGV2aWNl
RWxlbWVudC5oIgorCisjaWYgRU5BQkxFKERFVklDRV9FTEVNRU5UKQorCisjaW5jbHVkZSAiRGV2
aWNlU2Vzc2lvbi5oIgorI2luY2x1ZGUgIkRldmljZVNlc3Npb25TcGVjaWZpYy5oIgorI2luY2x1
ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiRXZlbnRIYW5kbGVyLmgiCisjaW5jbHVkZSAiRXZlbnRO
YW1lcy5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5j
bHVkZSAiTW91c2VFdmVudC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJTY3JpcHRF
dmVudExpc3RlbmVyLmgiCisjaW5jbHVkZSAiU3RyZWFtLmgiCisjaW5jbHVkZSA8d3RmL0Fzc2Vy
dGlvbnMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgSFRNTE5h
bWVzOworCitQYXNzUmVmUHRyPEhUTUxEZXZpY2VFbGVtZW50PiBIVE1MRGV2aWNlRWxlbWVudDo6
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkK
K3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxEZXZpY2VFbGVtZW50KHRhZ05hbWUsIGRv
Y3VtZW50KSk7Cit9CisKK0hUTUxEZXZpY2VFbGVtZW50OjpIVE1MRGV2aWNlRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCisgICAgOiBIVE1M
RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKKyAgICAsIG1fc3RhdGUoSWRsZSkKKyAgICAsIG1f
Y29udHJvbGxlcihIVE1MRWxlbWVudDo6ZG9jdW1lbnQoKS0+cGFnZSgpID8gSFRNTEVsZW1lbnQ6
OmRvY3VtZW50KCktPnBhZ2UoKS0+ZGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIoKSA6IDApCit7Cit9
CisKK0hUTUxEZXZpY2VFbGVtZW50Ojp+SFRNTERldmljZUVsZW1lbnQoKQoreworfQorCit2b2lk
IEhUTUxEZXZpY2VFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHJp
YnV0ZSkKK3sKKyAgICBpZiAoYXR0cmlidXRlLT5uYW1lKCkgPT0gdHlwZUF0dHIpCisgICAgICAg
IG1fdHlwZSA9IERldmljZVR5cGUoZmFzdEdldEF0dHJpYnV0ZSh0eXBlQXR0cikpOworICAgIGVs
c2UgaWYgKGF0dHJpYnV0ZS0+bmFtZSgpID09IG9uY2hhbmdlQXR0cikKKyAgICAgICAgc2V0QXR0
cmlidXRlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCkuY2hhbmdlRXZlbnQsIGNyZWF0ZUF0dHJp
YnV0ZUV2ZW50TGlzdGVuZXIodGhpcywgYXR0cmlidXRlKSk7CisgICAgZWxzZQorICAgICAgICBI
VE1MRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cmlidXRlKTsKK30KKwordm9pZCBI
VE1MRGV2aWNlRWxlbWVudDo6YXR0YWNoKCkKK3sKKyAgICBIVE1MRWxlbWVudDo6YXR0YWNoKCk7
CisKKyAgICAvLyBDcmVhdGUgYSBuZXcgbG9jYWwgZGV2aWNlIHNlc3Npb24gb2JqZWN0IGZvciB0
aGUgY3VycmVudCB0eXBlLgorICAgIG1fc2Vzc2lvbklkID0gbV9jb250cm9sbGVyLT5yZWdpc3Rl
ckRldmljZVNlc3Npb24oCisgICAgICAgICAgRGV2aWNlU2Vzc2lvbihtX3R5cGUsIERldmljZVNl
c3Npb25JZDo6TG9jYWwsIGRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCkpLAorICAgICAgICAg
IHRoaXMpOworfQorCit2b2lkIEhUTUxEZXZpY2VFbGVtZW50OjpkZXRhY2goKQoreworICAgIC8v
IFNwZWMgcXVlc3Rpb246IHNob3VsZCB3ZSBjbG9zZSBhbnkgYWN0aXZlIGxvY2FsIGRldmljZSBz
ZXNzaW9ucyB3aGVuIHRoZSBkZXZpY2UgZWxlbWVudAorICAgIC8vIHVzZWQgdG8gY3JlYXRlIHRo
ZW0gaXMgZGV0YWNoZWQgZnJvbSB0aGUgRE9NPyBUaGVyZSBtYXkgYmUgbm90aGluZyBlbHNlIGFz
c29jaWF0ZWQgd2l0aCB0aGUKKyAgICAvLyBzZXNzaW9uIHRoYXQgY291bGQgYXNrIHRvIGNsb3Nl
IGl0LCBsZWF2aW5nIHRoZSBzZXNzaW9uIG9wZW4gdW50aWwgZmFpbHVyZS4KKyAgICBpZiAobV9j
b250cm9sbGVyKSB7CisgICAgICAgIGlmIChzZXNzaW9uKCktPnN0YXRlKCkgPT0gRGV2aWNlU2Vz
c2lvbjo6T3BlbmVkKQorICAgICAgICAgICAgbV9jb250cm9sbGVyLT5yZXZva2VBY2Nlc3NUb0xv
Y2FsRGV2aWNlKG1fc2Vzc2lvbklkKTsKKworICAgICAgICBpZiAoIW1fc2Vzc2lvbklkLmlzTnVs
bCgpKQorICAgICAgICAgICAgbV9jb250cm9sbGVyLT51bnJlZ2lzdGVyU2Vzc2lvbkxpc3RlbmVy
KG1fc2Vzc2lvbklkLCB0aGlzKTsKKyAgICB9CisKKyAgICBIVE1MRWxlbWVudDo6ZGV0YWNoKCk7
Cit9CisKK3ZvaWQgSFRNTERldmljZUVsZW1lbnQ6OnNldFR5cGUoY29uc3QgU3RyaW5nJiB0eXBl
KQoreworICAgIERldmljZVR5cGUgbV9wcmV2aW91c1R5cGUgPSBtX3R5cGU7CisgICAgbV90eXBl
ID0gRGV2aWNlVHlwZSh0eXBlKTsKKworICAgIGlmIChtX3R5cGUuaWQoKSAhPSBtX3ByZXZpb3Vz
VHlwZS5pZCgpKQorICAgICAgICBjbG9zZUFuZFJlc2V0U2Vzc2lvbigpOworfQorCitQYXNzUmVm
UHRyPFN0cmVhbT4gSFRNTERldmljZUVsZW1lbnQ6OmRhdGEoKQoreworICAgIGlmICghbV9jb250
cm9sbGVyKQorICAgICAgICByZXR1cm4gMDsKKworICAgIC8vIEpTIGJpbmRpbmcgc2hvdWxkIG1h
a2UgdGhpcyBhc3NlcnRpb24gYWx3YXlzIHRydWUuCisgICAgQVNTRVJUKHNlc3Npb24oKS0+c3Rh
dGUoKSA9PSBEZXZpY2VTZXNzaW9uOjpPcGVuZWQpOworCisgICAgLy8gQWRkIHRoZSBkYXRhIGF0
dHJpYnV0ZSBmb3IgbmV3IGRldmljZSB0eXBlcyBoZXJlLgorICAgIHN3aXRjaCAoc2Vzc2lvbigp
LT50eXBlKCkuaWQoKSkgeworICAgIGNhc2UgRGV2aWNlVHlwZTo6SW52YWxpZDoKKyAgICAgICAg
YnJlYWs7CisKKyAgICBjYXNlIERldmljZVR5cGU6Ok1lZGlhOgorICAgICAgICByZXR1cm4gcmVp
bnRlcnByZXRfY2FzdDxjb25zdCBEZXZpY2VNZWRpYVNwZWNpZmljKj4oc2Vzc2lvbigpLT50eXBl
U3BlY2lmaWMoKSktPnN0cmVhbSgpOworCisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKK0hUTUxEZXZpY2VFbGVt
ZW50OjpEZXZpY2VFbGVtZW50U3RhdGUgSFRNTERldmljZUVsZW1lbnQ6OnN0YXRlKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9zdGF0ZTsKK30KKworY29uc3QgRGV2aWNlVHlwZSYgSFRNTERldmlj
ZUVsZW1lbnQ6OmRldmljZVR5cGUoKSBjb25zdAoreworICAgIHJldHVybiBtX3R5cGU7Cit9CisK
K2NvbnN0IERldmljZVNlc3Npb24qIEhUTUxEZXZpY2VFbGVtZW50OjpzZXNzaW9uKCkgY29uc3QK
K3sKKyAgICBpZiAoIW1fY29udHJvbGxlcikKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBBU1NF
UlQobV9jb250cm9sbGVyKTsKKyAgICByZXR1cm4gJm1fY29udHJvbGxlci0+c2Vzc2lvbihtX3Nl
c3Npb25JZCk7Cit9CisKK3ZvaWQgSFRNTERldmljZUVsZW1lbnQ6OnNldFN0YXRlKERldmljZUVs
ZW1lbnRTdGF0ZSBzdGF0ZSkKK3sKKyAgICBpZiAobV9zdGF0ZSAhPSBzdGF0ZSkKKyAgICAgICAg
bV9zdGF0ZSA9IHN0YXRlOworfQorCit2b2lkIEhUTUxEZXZpY2VFbGVtZW50OjpjbG9zZUFuZFJl
c2V0U2Vzc2lvbigpCit7CisgICAgaWYgKG1fY29udHJvbGxlcikgeworICAgICAgICAvLyBJZiB0
aGUgc2Vzc2lvbiBpcyBpbiB0aGUgT3BlbmVkIHN0YXRlIHRoZW4gd2UgYXJlIGNsb3NpbmcuCisg
ICAgICAgIC8vIElmIG5vdCB0aGVuIHdlIGFyZSByZXNldHRpbmcgYSBjbG9zZWQsIGNhbmNlbGxl
ZCBvciBmYWlsZWQgc2Vzc2lvbi4KKyAgICAgICAgaWYgKHNlc3Npb24oKS0+c3RhdGUoKSA9PSBE
ZXZpY2VTZXNzaW9uOjpPcGVuZWQpCisgICAgICAgICAgICBtX2NvbnRyb2xsZXItPnJldm9rZUFj
Y2Vzc1RvTG9jYWxEZXZpY2UobV9zZXNzaW9uSWQpOworCisgICAgICAgLy8gUmVtb3ZlIHRoZSBs
aXN0ZW5lciB0byB0aGUgY3VycmVudCBzZXNzaW9uLiBUaGlzIHNob3VsZCBkZXN0cm95IGFueSBu
b24tYWN0aXZlIGxvY2FsIGRldmljZSBzZXNzaW9uLgorICAgICAgIC8vIFRoZSBhY3RpdmUgc2Vz
c2lvbnMgd2lsbCBiZSBkZXN0cm95ZWQgd2hlbiB0aGUgc2Vzc2lvbiBpcyB1cGRhdGVkIHRvIHRo
ZSBjbG9zZWQgc3RhdGUuCisgICAgICAgIGlmICghbV9zZXNzaW9uSWQuaXNOdWxsKCkpCisgICAg
ICAgICAgICBtX2NvbnRyb2xsZXItPnVucmVnaXN0ZXJTZXNzaW9uTGlzdGVuZXIobV9zZXNzaW9u
SWQucmVzZXQoKSwgdGhpcyk7CisKKyAgICAgICAgLy8gQXNzb2NpYXRlIHRoZSBlbGVtZW50IHRv
IGEgbmV3IGxvY2FsIGRldmljZSBzZXNzaW9uIG9iamVjdCBpbiB0aGUgTm9TZXNzaW9uIHN0YXRl
LgorICAgICAgICBtX3Nlc3Npb25JZCA9IG1fY29udHJvbGxlci0+cmVnaXN0ZXJEZXZpY2VTZXNz
aW9uKAorICAgICAgICAgICAgRGV2aWNlU2Vzc2lvbihtX3R5cGUsIERldmljZVNlc3Npb25JZDo6
TG9jYWwsIGRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCkpLCB0aGlzKTsKKworICAgICAgICBz
ZXRTdGF0ZShJZGxlKTsKKyAgICB9Cit9CisKK3ZvaWQgSFRNTERldmljZUVsZW1lbnQ6OmRlZmF1
bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQoreworICAgIGlmICghbV9jb250cm9sbGVyKQor
ICAgICAgICByZXR1cm47CisKKyAgICAvLyBJZ25vcmUgZXZlbnRzIGZyb20gaW52YWxpZCBkZXZp
Y2UgZWxlbWVudHMuCisgICAgaWYgKCFtX3R5cGUuaXNWYWxpZCgpKQorICAgICAgICByZXR1cm47
CisKKyAgICAvLyBGb3Igc2VjdXJpdHkgcmVhc29ucywgb25seSBhbGxvdyBjbGlja3MgZGlyZWN0
bHkgY29taW5nIGZyb20gdGhlIHVzZXIuCisgICAgaWYgKCFldmVudC0+ZnJvbVVzZXJHZXN0dXJl
KCkpIHsKKyAgICAgICAgSFRNTEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnRO
YW1lcygpLmNsaWNrRXZlbnQpIHsKKyAgICAgICAgc3dpdGNoIChtX3N0YXRlKSB7CisgICAgICAg
IGNhc2UgSWRsZToKKyAgICAgICAgICAgIEFTU0VSVChzZXNzaW9uKCktPnN0YXRlKCkgPT0gRGV2
aWNlU2Vzc2lvbjo6SWRsZSk7CisgICAgICAgICAgICBpZiAobV9jb250cm9sbGVyLT5yZXF1ZXN0
QWNjZXNzVG9Mb2NhbERldmljZShtX3Nlc3Npb25JZCkpCisgICAgICAgICAgICAgICAgc2V0U3Rh
dGUoT3BlbmluZyk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIE9wZW5lZDoK
KyAgICAgICAgICAgIEFTU0VSVChzZXNzaW9uKCktPnN0YXRlKCkgPT0gRGV2aWNlU2Vzc2lvbjo6
T3BlbmVkKTsKKyAgICAgICAgICAgIG1fY29udHJvbGxlci0+cmV2b2tlQWNjZXNzVG9Mb2NhbERl
dmljZShtX3Nlc3Npb25JZCk7CisgICAgICAgICAgICBzZXRTdGF0ZShDbG9zaW5nKTsKKyAgICAg
ICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgT3BlbmluZzoKKyAgICAgICAgY2FzZSBDbG9z
aW5nOgorICAgICAgICAgICAgLy8gTm90aGluZyB0byBkbyBoZXJlLCB3YWl0IGZvciBzb21lIGRl
dmljZSBzZXNzaW9uIHVwZGF0ZSBub3RpZmljYXRpb24uCisgICAgICAgICAgICBicmVhazsKKwor
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgLy8gSW52YWxpZCBkZXZpY2UgZWxlbWVudCBz
dGF0ZSB2YWx1ZS4KKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICB9
CisgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOworICAgIH0KKworICAgIGlmICgh
ZXZlbnQtPmRlZmF1bHRIYW5kbGVkKCkpCisgICAgICAgIEhUTUxFbGVtZW50OjpkZWZhdWx0RXZl
bnRIYW5kbGVyKGV2ZW50KTsKK30KKwordm9pZCBIVE1MRGV2aWNlRWxlbWVudDo6ZGV2aWNlU2Vz
c2lvblVwZGF0ZShjb25zdCBEZXZpY2VTZXNzaW9uJiBzZXNzaW9uKQoreworICAgIHN3aXRjaCAo
c2Vzc2lvbi5zdGF0ZSgpKSB7CisgICAgY2FzZSBEZXZpY2VTZXNzaW9uOjpJZGxlOgorICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIERldmlj
ZVNlc3Npb246Ok9wZW5lZDoKKyAgICAgICAgQVNTRVJUKG1fc3RhdGUgPT0gT3BlbmluZyk7Cisg
ICAgICAgIHNldFN0YXRlKE9wZW5lZCk7CisKKyAgICAgICAgLy8gRklYTUU6IGRpc3BhdGNoaW5n
IHRoZSBldmVudCBvbmx5IHdoZW4gYSBzZXNzaW9uIGhhcyBiZWVuIG9wZW5lZCBpZ25vcmluZyBv
dGhlciBzaXR1YXRpb25zLgorICAgICAgICAvLyAgICAgICAgVXBkYXRlIHRoaXMgYXMgdGhlIHNw
ZWNpZmljYXRpb24gZXZvbHZlcyAoc2VlIGZhaWxlZCBjYXNlIGJlbG93KS4KKyAgICAgICAgZGlz
cGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jaGFuZ2VFdmVudCwgdHJ1ZSwg
ZmFsc2UpKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIERldmljZVNlc3Npb246OkNhbmNl
bGxlZDoKKyAgICAgICAgQVNTRVJUKG1fc3RhdGUgPT0gT3BlbmluZyk7CisgICAgICAgIGNsb3Nl
QW5kUmVzZXRTZXNzaW9uKCk7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBEZXZpY2VTZXNz
aW9uOjpGYWlsZWQ6CisgICAgICAgIEFTU0VSVChtX3N0YXRlICE9IElkbGUpOworICAgICAgICAv
LyBGSVhNRTogaG93IHNob3VsZCB3ZSByZXBvcnQgdGhlIGVycm9yIHRvIHRoZSB1c2VyPyBTcGVj
aWZpY2F0aW9uIGRvZXNuJ3QgbWVudGlvbiB0aGlzLgorICAgICAgICAvLyBTaG91bGQgd2UgbGF1
bmNoIGFuIG9uRXJyb3IgZXZlbnQ/CisgICAgICAgIGNsb3NlQW5kUmVzZXRTZXNzaW9uKCk7Cisg
ICAgICAgIGJyZWFrOworCisgICAgY2FzZSBEZXZpY2VTZXNzaW9uOjpDbG9zZWQ6CisgICAgICAg
IEFTU0VSVChtX3N0YXRlID09IE9wZW5lZCB8fCBtX3N0YXRlID09IENsb3NpbmcpOworICAgICAg
ICAvLyBGSVhNRTogc2hvdWxkIHdlIGRpc3BhdGNoIGFub3RoZXIgb25jaGFuZ2UgZXZlbnQ/Cisg
ICAgICAgIGNsb3NlQW5kUmVzZXRTZXNzaW9uKCk7CisgICAgICAgIGJyZWFrOworCisgICAgZGVm
YXVsdDoKKyAgICAgICAgLy8gSW52YWxpZCBkZXZpY2Ugc2Vzc2lvbiBzdGF0ZSB2YWx1ZS4KKyAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorCit9CisKK3ZvaWQgSFRNTERldmlj
ZUVsZW1lbnQ6OnNlc3Npb25Db250cm9sbGVyU2h1dGRvd24oKQoreworICAgIG1fc2Vzc2lvbklk
LnJlc2V0KCk7CisgICAgbV9jb250cm9sbGVyID0gMDsKKyAgICBzZXRTdGF0ZShJZGxlKTsKK30K
KworSFRNTERldmljZUVsZW1lbnQqIHRvSFRNTERldmljZUVsZW1lbnQoRWxlbWVudCogZWxlbWVu
dCkKK3sKKyAgICBpZiAoZWxlbWVudC0+aXNIVE1MRWxlbWVudCgpICYmIGVsZW1lbnQtPmhhc1Rh
Z05hbWUoSFRNTE5hbWVzOjpkZXZpY2VUYWcpKQorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
SFRNTERldmljZUVsZW1lbnQqPihlbGVtZW50KTsKKworICAgIHJldHVybiAwOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREVWSUNFX0VMRU1FTlQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXZpY2VFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxEZXZpY2VFbGVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2E0NmExNWVk
ZGYzZjI2Yzg3MzA4YmYwMjFhOWJjYjkzNDM5YTk1NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTERldmljZUVsZW1lbnQuaApAQCAtMCwwICsxLDk5IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRp
c3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBIVE1MRGV2aWNlRWxlbWVudF9oCisjZGVmaW5lIEhUTUxEZXZpY2VFbGVtZW50X2gKKworI2lm
IEVOQUJMRShERVZJQ0VfRUxFTUVOVCkKKworI2luY2x1ZGUgIkRldmljZUVsZW1lbnQuaCIKKyNp
bmNsdWRlICJEZXZpY2VTZXNzaW9uQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIkRldmljZVNlc3Np
b25JZC5oIgorI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIERldmljZVR5cGU7CitjbGFzcyBTdHJlYW07CisKK2NsYXNzIEhUTUxEZXZpY2VFbGVt
ZW50IDogcHVibGljIEhUTUxFbGVtZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJs
aWMgRGV2aWNlRWxlbWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIERldmlj
ZVNlc3Npb25Db250cm9sbGVyOjpTZXNzaW9uTGlzdGVuZXIgeworcHVibGljOgorICAgIGVudW0g
RGV2aWNlRWxlbWVudFN0YXRlIHsKKyAgICAgICAgSWRsZSA9IDAsCisgICAgICAgIE9wZW5pbmcs
CisgICAgICAgIE9wZW5lZCwKKyAgICAgICAgQ2xvc2luZworICAgIH07CisKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxIVE1MRGV2aWNlRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCopOworICAgIHZpcnR1YWwgfkhUTUxEZXZpY2VFbGVtZW50KCk7CisKKyAgICBE
RUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGNoYW5nZSk7CisKKyAgICB2aXJ0dWFsIHZv
aWQgYXR0YWNoKCk7CisgICAgdmlydHVhbCB2b2lkIGRldGFjaCgpOworICAgIHZpcnR1YWwgdm9p
ZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqKTsKKworICAgIERldmljZUVsZW1lbnRT
dGF0ZSBzdGF0ZSgpIGNvbnN0OworICAgIGNvbnN0IERldmljZVR5cGUmIGRldmljZVR5cGUoKSBj
b25zdDsKKyAgICBjb25zdCBEZXZpY2VTZXNzaW9uKiBzZXNzaW9uKCkgY29uc3Q7CisKKyAgICAv
LyBJbXBsZW1lbnRhdGlvbiBvZiB2aXJ0dWFsIG1ldGhvZHMgZnJvbSBEZXZpY2VFbGVtZW50Lgor
ICAgIHZpcnR1YWwgdm9pZCBzZXRUeXBlKGNvbnN0IFN0cmluZyYpOworICAgIHZpcnR1YWwgUGFz
c1JlZlB0cjxTdHJlYW0+IGRhdGEoKTsKKworICAgIC8vIERldmljZVNlc3Npb25Db250cm9sbGVy
OjpTZXNzaW9uTGlzdGVuZXIgaW1wbGVtZW50YXRpb24uCisgICAgdmlydHVhbCB2b2lkIGRldmlj
ZVNlc3Npb25VcGRhdGUoY29uc3QgRGV2aWNlU2Vzc2lvbiYpOworICAgIHZpcnR1YWwgdm9pZCBz
ZXNzaW9uQ29udHJvbGxlclNodXRkb3duKCk7CisKK3Byb3RlY3RlZDoKKyAgICBIVE1MRGV2aWNl
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopOworCitwcml2YXRlOgorICAgIHZvaWQgc2V0
U3RhdGUoRGV2aWNlRWxlbWVudFN0YXRlKTsKKyAgICB2b2lkIGNsb3NlQW5kUmVzZXRTZXNzaW9u
KCk7CisKKyAgICBEZXZpY2VFbGVtZW50U3RhdGUgbV9zdGF0ZTsKKyAgICBEZXZpY2VTZXNzaW9u
SWQgbV9zZXNzaW9uSWQ7CisgICAgRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIgKm1fY29udHJvbGxl
cjsKK307CisKK0hUTUxEZXZpY2VFbGVtZW50KiB0b0hUTUxEZXZpY2VFbGVtZW50KEVsZW1lbnQq
KTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKERFVklDRV9F
TEVNRU5UKQorCisjZW5kaWYgLy8gSFRNTERldmljZUVsZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV2aWNlRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxEZXZpY2VFbGVtZW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MGMwMTUxNGI4YjEyNDBiYTQx
M2ZiNjEwOTZiYzEzYjBhODBiY2M1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRGV2aWNlRWxlbWVudC5pZGwKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRp
b24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisg
KiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBodG1sIHsK
KworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPURFVklDRV9FTEVNRU5UCisg
ICAgXSBIVE1MRGV2aWNlRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKKyAgICAgICAgICAgICAgICAg
YXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHR5cGU7CisgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ3VzdG9tR2V0dGVyXSBET01PYmplY3QgZGF0YTsKKyAg
ICB9OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4g
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgppbmRleCBiZWE2M2U0MjEyNjU1
MzE5NzRmNDRiNDJhYzgxMTgyNWQzZDNmZThmLi5mMmRjZjI1ZGI0MTczNmYxYWQ1MTJiOWY3MmMx
ODcwODA0NzdhYjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1l
cy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgpAQCAtMzcsNiAr
MzcsNyBAQCBkcm93IGludGVyZmFjZU5hbWU9SFRNTERhdGFHcmlkUm93RWxlbWVudCwgY29uZGl0
aW9uYWw9REFUQUdSSUQKIGRkIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIGRlbCBpbnRlcmZh
Y2VOYW1lPUhUTUxNb2RFbGVtZW50CiBkZXRhaWxzCitkZXZpY2UgaW50ZXJmYWNlTmFtZT1IVE1M
RGV2aWNlRWxlbWVudCwgY29uZGl0aW9uYWw9REVWSUNFX0VMRU1FTlQKIGRmbiBpbnRlcmZhY2VO
YW1lPUhUTUxFbGVtZW50CiBkaXIgaW50ZXJmYWNlTmFtZT1IVE1MRGlyZWN0b3J5RWxlbWVudAog
ZGl2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKaW5kZXggYTk0OGEwMThmOTk5MzE3ZGI2ZTM2
OTg5N2I1YWNlZmI2YmM5ODlkYy4uZmMwMmIyNDY3NTdkMzI5NWIyY2I2Zjg3MDIwYjRjZjAwYTVk
MDE3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbApAQCAtNDI1LDYgKzQyNSw3IEBAIG1v
ZHVsZSB3aW5kb3cgewogICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPURBVEFHUklEXSBI
VE1MRGF0YUdyaWRFbGVtZW50Q29uc3RydWN0b3IgSFRNTERhdGFHcmlkRWxlbWVudDsKICAgICAg
ICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1EQVRBR1JJRF0gSFRNTERhdGFHcmlkQ2VsbEVsZW1l
bnRDb25zdHJ1Y3RvciBIVE1MRGF0YUdyaWRDZWxsRWxlbWVudDsKICAgICAgICAgYXR0cmlidXRl
IFtDb25kaXRpb25hbD1EQVRBR1JJRF0gSFRNTERhdGFHcmlkQ29sRWxlbWVudENvbnN0cnVjdG9y
IEhUTUxEYXRhR3JpZENvbEVsZW1lbnQ7CisgICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9
REVWSUNFX0VMRU1FTlRdIEhUTUxEZXZpY2VFbGVtZW50Q29uc3RydWN0b3IgSFRNTERldmljZUVs
ZW1lbnQ7CiAgICAgICAgIGF0dHJpYnV0ZSBIVE1MRExpc3RFbGVtZW50Q29uc3RydWN0b3IgSFRN
TERMaXN0RWxlbWVudDsKICAgICAgICAgYXR0cmlidXRlIEhUTUxEaXJlY3RvcnlFbGVtZW50Q29u
c3RydWN0b3IgSFRNTERpcmVjdG9yeUVsZW1lbnQ7CiAgICAgICAgIGF0dHJpYnV0ZSBIVE1MRGl2
RWxlbWVudENvbnN0cnVjdG9yIEhUTUxEaXZFbGVtZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9EZXZpY2VDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ2xp
ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZTJlMGFlNGFkZmVhODk1NTRjNDFjYzAyYjI2MjMwYjBiMzM0N2Rm
NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ2xpZW50LmgK
QEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQor
ICogbWV0OgorICoKKyAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
CisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgRGV2aWNlQ2xpZW50X2gKKyNkZWZpbmUgRGV2aWNlQ2xpZW50X2gK
KworI2lmIEVOQUJMRShERVZJQ0VfRUxFTUVOVCkKKworI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGV2aWNlU2Vzc2lvbjsKK2NsYXNzIERl
dmljZUxpc3RlbmVyOworCitjbGFzcyBEZXZpY2VDbGllbnQgeworcHVibGljOgorICAgIC8vIFJl
Z2lzdGVyIHRoZSBsaXN0ZW5lciBmb3IgcmVjZWl2aW5nIGNhbGxiYWNrcy4gU2hvdWxkIHNldCB0
byBudWxsIHdoZW4gbm90IHJlcXVpcmVkIGFueW1vcmUuIE5vIG93bmVyc2hpcCBpcyB0YWtlbi4K
KyAgICAvLyBVbmRlciBub3JtYWwgY2lyY3Vtc3RhbmNlcyB0aGUgbGlzdGVuZXIgc2hvdWxkIGJl
IHRoZSBwYWdlIERldmljZVNlc3Npb25Db250cm9sbGVyIG9iamVjdC4KKyAgICB2aXJ0dWFsIHZv
aWQgc2V0TGlzdGVuZXIoRGV2aWNlTGlzdGVuZXIqKSA9IDA7CisKKyAgICAvLyAtLS0tLSBTZXNz
aW9uLXJlbGF0ZWQgbWV0aG9kcyAtLS0tLSAvLworCisgICAgLy8gUmVxdWVzdCB0byBvcGVuIGEg
c2Vzc2lvbiB3aXRoIGEgbG9jYWwgZGV2aWNlIG9mIHRoZSBzcGVjaWZpZWQgdHlwZS4KKyAgICB2
aXJ0dWFsIGJvb2wgcmVxdWVzdEFjY2Vzc1RvTG9jYWxEZXZpY2UoY29uc3QgRGV2aWNlU2Vzc2lv
biYpID0gMDsKKworICAgIC8vIFJlcXVlc3QgdG8gY2xvc2UgYSBvbmdvaW5nIGxvY2FsIGRldmlj
ZSBzZXNzaW9uLgorICAgIHZpcnR1YWwgdm9pZCByZXZva2VBY2Nlc3NUb0xvY2FsRGV2aWNlKGNv
bnN0IERldmljZVNlc3Npb24mKSA9IDA7CisKKyAgICAvLyAtLS0tLSBNZWRpYS1yZWxhdGVkIG1l
dGhvZHMgLS0tLS0gLy8KKworICAgIC8vIFJlcXVlc3QgdG8gc3RhcnQgcmVjb3JkaW5nIGFuIGV4
aXN0aW5nIHN0cmVhbSB0byBhIGZpbGUuCisgICAgdmlydHVhbCBib29sIHJlY29yZFN0cmVhbVRv
RmlsZShpbnQgbWVkaWFMaXN0ZW5lcklkLCBjb25zdCBEZXZpY2VTZXNzaW9uJikgPSAwOworCisg
ICAgLy8gU3RvcCByZWNvcmRpbmcgYSBzdHJlYW0gdG8gYSBmaWxlLgorICAgIHZpcnR1YWwgdm9p
ZCBzdG9wUmVjb3JkaW5nU3RyZWFtKGludCBtZWRpYUxpc3RlbmVySWQsIGNvbnN0IERldmljZVNl
c3Npb24mLCBjb25zdCBTdHJpbmcmIHBhdGgpID0gMDsKKworcHJvdGVjdGVkOgorICAgIHZpcnR1
YWwgfkRldmljZUNsaWVudCgpIHsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gRU5BQkxFKERFVklDRV9FTEVNRU5UKQorCisjZW5kaWYgLy8gRGV2aWNlQ2xpZW50
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlTGlzdGVuZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlTGlzdGVuZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NTRiN2EwOTU1
Zjk0NmYxMGM2MzYzOGJiODkyNTg3MGUzZDFjYTlmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9EZXZpY2VMaXN0ZW5lci5oCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9u
LgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIERldmljZUxp
c3RlbmVyX2gKKyNkZWZpbmUgRGV2aWNlTGlzdGVuZXJfaAorCisjaWYgRU5BQkxFKERFVklDRV9F
TEVNRU5UKQorCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBEZXZpY2VTZXNzaW9uOworCisvLyBUaGlzIGludGVyZmFjZSBjb21wb3Nl
cyB0aGUgZGlmZmVyZW50IGtpbmRzIG9mIGluY29taW5nIG1lc3NhZ2VzIHNvIHRoYXQgdGhleSBj
YW4KKy8vIGJlIGltcGxlbWVudGVkIGJ5IGJvdGggdGhlIERldmljZUNvbnRyb2xsZXIgYW5kIHRo
ZSBEZXZpY2VDbGllbnRNb2NrLgorY2xhc3MgRGV2aWNlTGlzdGVuZXIgIHsKK3B1YmxpYzoKKyAg
ICB2aXJ0dWFsIH5EZXZpY2VMaXN0ZW5lcigpIHsgfQorCisgICAgLy8gUmVwb3J0cyBhbiB1cGRh
dGUgaW4gdGhlIHN0YXRlIG9mIGEgZGV2aWNlIHNlc3Npb24uCisgICAgdmlydHVhbCB2b2lkIGRl
dmljZVNlc3Npb25VcGRhdGUoY29uc3QgRGV2aWNlU2Vzc2lvbiYpID0gMDsKKworICAgIC8vIE5v
dGlmaWVzIHRoYXQgYSBzdHJlYW0gcmVjb3JkaW5nIGhhcyBzdGFydGVkIGFuZCBpdHMgYmVpbmcg
cmVjb3JkZWQgaW50byBhIHNwZWNpZmllZCBmaWxlLgorICAgIHZpcnR1YWwgdm9pZCBzdHJlYW1S
ZWNvcmRpbmdTdGFydGVkKGludCBtZWRpYUxpc3RlbmVySWQsIGNvbnN0IFN0cmluZyYgcGF0aCkg
PSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKERF
VklDRV9FTEVNRU5UKQorCisjZW5kaWYgLy8gRGV2aWNlTGlzdGVuZXJfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RldmljZVNlc3Npb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41Y2VhYWZhNjEyY2QyZWYxYTcxMTA4Yjk2ZDU2
MjczMTlhNDMzN2U4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZp
Y2VTZXNzaW9uLmgKQEAgLTAsMCArMSwxOTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIERldmljZVNlc3Npb25faAorI2Rl
ZmluZSBEZXZpY2VTZXNzaW9uX2gKKworI2lmIEVOQUJMRShERVZJQ0VfRUxFTUVOVCkKKworI2lu
Y2x1ZGUgIkRldmljZVNlc3Npb25JZC5oIgorI2luY2x1ZGUgIkRldmljZVR5cGUuaCIKKyNpbmNs
dWRlICJLVVJMLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJTZWN1
cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgIlN0cmVhbS5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGV2aWNlRXJyb3IgeworcHVibGljOgor
ICAgIC8vIEZJWE1FOiBleHRlbmQgdGhpcyBlbnVtZXJhdGlvbiB3aXRoIGJhc2ljIGVycm9yIHNp
dHVhdGlvbnMgd2UgY291bGQgZmluZC4KKyAgICBlbnVtIEVycm9yQ29kZSB7CisgICAgICAgIE5v
RXJyb3IgPSAwLAorICAgIH07CisKKyAgICBEZXZpY2VFcnJvcigpIDogbV9lcnJvckNvZGUoTm9F
cnJvciksIG1fdmVuZG9yRXJyb3JDb2RlKDApIHsgfQorCisgICAgRGV2aWNlRXJyb3IoRXJyb3JD
b2RlIGVycm9yQ29kZSwgaW50IHZlbmRvckVycm9yQ29kZSwgY29uc3QgU3RyaW5nJiBlcnJvck1l
c3NhZ2UpCisgICAgICAgIDogbV9lcnJvckNvZGUoZXJyb3JDb2RlKQorICAgICAgICAsIG1fdmVu
ZG9yRXJyb3JDb2RlKHZlbmRvckVycm9yQ29kZSkKKyAgICAgICAgLCBtX2Vycm9yTWVzc2FnZShl
cnJvck1lc3NhZ2UpCisgICAgeyB9CisKKyAgICBFcnJvckNvZGUgZXJyb3JDb2RlKCkgY29uc3Qg
eyByZXR1cm4gbV9lcnJvckNvZGU7IH0KKyAgICBpbnQgdmVuZG9yRXJyb3JDb2RlKCkgY29uc3Qg
eyByZXR1cm4gbV92ZW5kb3JFcnJvckNvZGU7IH0KKyAgICBjb25zdCBTdHJpbmcmIGVycm9yTWVz
c2FnZSgpIGNvbnN0IHsgcmV0dXJuIG1fZXJyb3JNZXNzYWdlOyB9CisKK3ByaXZhdGU6CisgICAg
RXJyb3JDb2RlIG1fZXJyb3JDb2RlOworICAgIGludCBtX3ZlbmRvckVycm9yQ29kZTsKKyAgICBT
dHJpbmcgbV9lcnJvck1lc3NhZ2U7Cit9OworCitjbGFzcyBEZXZpY2VJbmZvIHsKK3B1YmxpYzoK
KyAgICAvLyBTZXJ2aWNlLXNwZWNpZmljIGlkcyB1c2VkIGJ5IGNvbXBvc2l0ZSBzZXNzaW9uIHR5
cGVzIGZvciB0eXBlcyBsaWtlIG1lZGlhLgorICAgIGVudW0gU2VydmljZUlkIHsKKyAgICAgICAg
Tm9uZSA9IDAsCisgICAgICAgIEF1ZGlvQ2FwdHVyZSwKKyAgICAgICAgVmlkZW9DYXB0dXJlCisg
ICAgfTsKKworICAgIERldmljZUluZm8oKSA6IG1fc2VydmljZShOb25lKSB7IH0KKworICAgIERl
dmljZUluZm8oU2VydmljZUlkIHNlcnZpY2UsCisgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcm
IG5hbWUsCisgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcmIGlkLAorICAgICAgICAgICAgICAg
Y29uc3QgRGV2aWNlRXJyb3ImIGVycm9ySW5mbykKKyAgICAgICAgOiBtX3NlcnZpY2Uoc2Vydmlj
ZSkKKyAgICAgICAgLCBtX25hbWUobmFtZSkKKyAgICAgICAgLCBtX2lkKGlkKQorICAgICAgICAs
IG1fZXJyb3JJbmZvKGVycm9ySW5mbykKKyAgICB7IH0KKworICAgIFNlcnZpY2VJZCBzZXJ2aWNl
KCkgY29uc3QgeyByZXR1cm4gbV9zZXJ2aWNlOyB9CisgICAgY29uc3QgU3RyaW5nJiBuYW1lKCkg
Y29uc3QgeyByZXR1cm4gbV9uYW1lOyB9CisgICAgY29uc3QgU3RyaW5nJiBpZCgpIGNvbnN0IHsg
cmV0dXJuIG1faWQ7IH0KKyAgICBjb25zdCBEZXZpY2VFcnJvciYgZXJyb3JJbmZvKCkgY29uc3Qg
eyByZXR1cm4gbV9lcnJvckluZm87IH0KKworcHJpdmF0ZToKKyAgICBTZXJ2aWNlSWQgbV9zZXJ2
aWNlOworICAgIFN0cmluZyBtX25hbWU7CisgICAgU3RyaW5nIG1faWQ7CisgICAgRGV2aWNlRXJy
b3IgbV9lcnJvckluZm87Cit9OworCit0eXBlZGVmIFZlY3RvcjxEZXZpY2VJbmZvPiBEZXZpY2VM
aXN0OworCitjbGFzcyBEZXZpY2VUeXBlU3BlY2lmaWMgeworcHVibGljOgorICAgIHZpcnR1YWwg
fkRldmljZVR5cGVTcGVjaWZpYygpIHsgfQorICAgIHZpcnR1YWwgRGV2aWNlVHlwZVNwZWNpZmlj
KiBjbG9uZShjb25zdCBEZXZpY2VUeXBlJiApIGNvbnN0IHsgcmV0dXJuIDA7IH07CisKK3ByaXZh
dGU6CisgICAgZnJpZW5kIGNsYXNzIERldmljZVNlc3Npb25Db250cm9sbGVyOworCisgICAgLy8g
Q2FsbGVkIHdoZW4gdGhlIHNlc3Npb24gc3RhdHVzIGNoYW5nZXMgdG8gT3BlbmVkLgorICAgIHZp
cnR1YWwgdm9pZCBvbk9wZW4oRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIqLCBEZXZpY2VTZXNzaW9u
SWQsIGNvbnN0IERldmljZVR5cGVTcGVjaWZpYyopIHsgfQorCisgICAgLy8gQ2FsbGVkIHdoZW4g
dGhlIHNlc3Npb24gc3RhdHVzIGNoYW5nZXMgdG8gRmFpbGVkIG9yIENsb3NlZC4KKyAgICB2aXJ0
dWFsIHZvaWQgb25DbG9zZShEZXZpY2VTZXNzaW9uQ29udHJvbGxlciosIERldmljZVNlc3Npb25J
ZCwgY29uc3QgRGV2aWNlVHlwZVNwZWNpZmljKikgeyB9Cit9OworCitjbGFzcyBEZXZpY2VTZXNz
aW9uIHsKK3B1YmxpYzoKKyAgICBlbnVtIERldmljZVNlc3Npb25TdGF0ZSB7CisgICAgICAgIElk
bGUgPSAwLCAvLyBOb3QgYXNzb2NpYXRlZCB0byBhbnkgZGV2aWNlIHNlc3Npb24uCisgICAgICAg
IE9wZW5lZCwgLy8gRGV2aWNlIHNlc3Npb24gb3BlbmVkIHN1Y2Nlc3NmdWxseS4KKyAgICAgICAg
Q2FuY2VsbGVkLCAvLyBEZXZpY2Ugc2VsZWN0aW9uIGNhbmNlbGxlZCBieSB0aGUgdXNlci4KKyAg
ICAgICAgRmFpbGVkLCAvLyBTZXNzaW9uIHRlcm1pbmF0aW9uIGJ5IGEgZGV2aWNlIGFjY2VzcyBm
YWlsdXJlLgorICAgICAgICBDbG9zZWQsIC8vIFNlc3Npb24gY2xvc2VkIGJ5IHRoZSB1c2VyLgor
ICAgIH07CisKKyAgICBEZXZpY2VTZXNzaW9uKCkKKyAgICAgICAgOiBtX3N0YXRlKElkbGUpCisg
ICAgeyB9CisKKyAgICBEZXZpY2VTZXNzaW9uKGNvbnN0IERldmljZVR5cGUmIGRldmljZVR5cGUs
CisgICAgICAgICAgICAgICAgICBEZXZpY2VTZXNzaW9uSWQ6OlNlc3Npb25UeXBlIHNlc3Npb25U
eXBlLAorICAgICAgICAgICAgICAgICAgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gb3JpZ2lu
KQorICAgICAgICA6IG1faWQoRGV2aWNlU2Vzc2lvbklkKDAsIHNlc3Npb25UeXBlKSkKKyAgICAg
ICAgLCBtX3R5cGUoZGV2aWNlVHlwZSkKKyAgICAgICAgLCBtX3N0YXRlKElkbGUpCisgICAgICAg
ICwgbV9vcmlnaW4ob3JpZ2luKQorICAgIHsgfQorCisgICAgRGV2aWNlU2Vzc2lvbihjb25zdCBE
ZXZpY2VTZXNzaW9uSWQmIGlkLAorICAgICAgICAgICAgICAgICAgY29uc3QgRGV2aWNlVHlwZSYg
dHlwZSwKKyAgICAgICAgICAgICAgICAgIERldmljZVNlc3Npb25TdGF0ZSBzdGF0ZSwKKyAgICAg
ICAgICAgICAgICAgIGNvbnN0IERldmljZUxpc3QmIGRldmljZXMsCisgICAgICAgICAgICAgICAg
ICBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBvcmlnaW4sCisgICAgICAgICAgICAgICAgICBE
ZXZpY2VUeXBlU3BlY2lmaWMqIHR5cGVTcGVjaWZpYykKKyAgICAgICAgOiBtX2lkKGlkKQorICAg
ICAgICAsIG1fdHlwZSh0eXBlKQorICAgICAgICAsIG1fc3RhdGUoc3RhdGUpCisgICAgICAgICwg
bV9kZXZpY2VzKGRldmljZXMpCisgICAgICAgICwgbV9vcmlnaW4ob3JpZ2luKQorICAgICAgICAs
IG1fdHlwZVNwZWNpZmljKHR5cGVTcGVjaWZpYykKKyAgICB7IH0KKworICAgIERldmljZVNlc3Np
b24oY29uc3QgRGV2aWNlU2Vzc2lvbiYgc2Vzc2lvbikKKyAgICAgICAgOiBtX2lkKHNlc3Npb24u
aWQoKSkKKyAgICAgICAgLCBtX3R5cGUoc2Vzc2lvbi50eXBlKCkpCisgICAgICAgICwgbV9zdGF0
ZShzZXNzaW9uLnN0YXRlKCkpCisgICAgICAgICwgbV9kZXZpY2VzKHNlc3Npb24uZGV2aWNlcygp
KQorICAgICAgICAsIG1fb3JpZ2luKHNlc3Npb24ub3JpZ2luKCkpCisgICAgICAgICwgbV90eXBl
U3BlY2lmaWMoc2Vzc2lvbi50eXBlU3BlY2lmaWMoKSA/IHNlc3Npb24udHlwZVNwZWNpZmljKCkt
PmNsb25lKHNlc3Npb24udHlwZSgpKSA6IDApCisgICAgeyB9CisKKyAgICBjb25zdCBEZXZpY2VT
ZXNzaW9uSWQmIGlkKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQorICAgIGNvbnN0IERldmljZVR5
cGUmIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KKyAgICBEZXZpY2VTZXNzaW9uU3Rh
dGUgc3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlOyB9CisgICAgY29uc3QgRGV2aWNlTGlz
dCYgZGV2aWNlcygpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlczsgfQorICAgIFBhc3NSZWZQdHI8
U2VjdXJpdHlPcmlnaW4+IG9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fb3JpZ2luOyB9CisgICAg
Y29uc3QgRGV2aWNlVHlwZVNwZWNpZmljKiB0eXBlU3BlY2lmaWMoKSBjb25zdCB7IHJldHVybiBt
X3R5cGVTcGVjaWZpYy5nZXQoKTsgfQorCisgICAgYm9vbCBpc0xvY2FsKCkgY29uc3QgeyByZXR1
cm4gbV9pZC50eXBlKCkgPT0gRGV2aWNlU2Vzc2lvbklkOjpMb2NhbDsgfQorICAgIGJvb2wgaXNS
ZW1vdGUoKSBjb25zdCB7IHJldHVybiBtX2lkLnR5cGUoKSA9PSBEZXZpY2VTZXNzaW9uSWQ6OlJl
bW90ZTsgfQorCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBEZXZpY2VTZXNzaW9uQ29udHJv
bGxlcjsKKyAgICBEZXZpY2VTZXNzaW9uSWQmIG11dGFibGVJZCgpIHsgcmV0dXJuIG1faWQ7IH0K
KworICAgIERldmljZVNlc3Npb25JZCBtX2lkOworICAgIERldmljZVR5cGUgbV90eXBlOworICAg
IERldmljZVNlc3Npb25TdGF0ZSBtX3N0YXRlOworICAgIERldmljZUxpc3QgbV9kZXZpY2VzOwor
ICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gbV9vcmlnaW47CisgICAgT3duUHRyPERldmljZVR5
cGVTcGVjaWZpYz4gbV90eXBlU3BlY2lmaWM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBFTkFCTEUoREVWSUNFX0VMRU1FTlQpCisKKyNlbmRpZiAvLyBEZXZpY2VT
ZXNzaW9uX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlU2Vzc2lvbkNv
bnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VTZXNzaW9uQ29udHJvbGxl
ci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNDYyMTQxODRkNjViNmEzNDAxZWU0NmNmMTU5MGU3MDVjY2VjNDA4
NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlU2Vzc2lvbkNv
bnRyb2xsZXIuY3BwCkBAIC0wLDAgKzEsMjY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEx
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkRldmljZVNlc3Npb25Db250cm9sbGVyLmgiCisKKyNpbmNsdWRlICJEZXZpY2VDbGllbnQu
aCIKKyNpbmNsdWRlICJEZXZpY2VTZXNzaW9uLmgiCisjaW5jbHVkZSAiRGV2aWNlU2Vzc2lvblNw
ZWNpZmljLmgiCisjaW5jbHVkZSAiRGV2aWNlVHlwZS5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3du
UHRyLmg+CisKKyNpZiBFTkFCTEUoREVWSUNFX0VMRU1FTlQpCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXI6OkRldmljZVNlc3Npb25Db250cm9sbGVyKERl
dmljZUNsaWVudCogY2xpZW50KQorICAgIDogbV9jbGllbnQoY2xpZW50KQorICAgICwgbV9uZXh0
TG9jYWxEZXZpY2VTZXNzaW9uSWQoMSkKKyAgICAsIG1fbmV4dE1lZGlhTGlzdGVuZXJJZCgxKQor
eworICAgIC8vIEZJWE1FOiBsaW5rIHdpdGggdGhlIGNsaWVudCB3aGVuIHRoZXJlIGlzIG9uZSBh
dmFpbGFibGUuCisgICAgLy8gbV9jbGllbnQtPnNldExpc3RlbmVyKHRoaXMpOworfQorCitEZXZp
Y2VTZXNzaW9uQ29udHJvbGxlcjo6fkRldmljZVNlc3Npb25Db250cm9sbGVyKCkKK3sKKyAgICBt
X2NsaWVudC0+c2V0TGlzdGVuZXIoMCk7CisKKyAgICBmb3IgKFNlc3Npb25MaXN0ZW5lcnNNYXA6
Oml0ZXJhdG9yIGxpc3RlbmVycyA9IG1fc2Vzc2lvbkxpc3RlbmVycy5iZWdpbigpOyBsaXN0ZW5l
cnMgIT0gbV9zZXNzaW9uTGlzdGVuZXJzLmVuZCgpOyArK2xpc3RlbmVycykgeworICAgICAgICBm
b3IgKFNlc3Npb25MaXN0ZW5lclNldDo6aXRlcmF0b3IgbGlzdGVuZXIgPSBsaXN0ZW5lcnMtPnNl
Y29uZC0+YmVnaW4oKTsgbGlzdGVuZXIgIT0gbGlzdGVuZXJzLT5zZWNvbmQtPmVuZCgpOyArK2xp
c3RlbmVyKQorICAgICAgICAgICAgKCpsaXN0ZW5lciktPnNlc3Npb25Db250cm9sbGVyU2h1dGRv
d24oKTsKKworICAgICAgICBkZWxldGUgbGlzdGVuZXJzLT5zZWNvbmQ7CisgICAgfQorCisgICAg
Zm9yIChEZXZpY2VTZXNzaW9uTWFwOjppdGVyYXRvciBzZXNzaW9uID0gbV9kZXZpY2VTZXNzaW9u
cy5iZWdpbigpOyBzZXNzaW9uICE9IG1fZGV2aWNlU2Vzc2lvbnMuZW5kKCk7ICsrc2Vzc2lvbikg
eworICAgICAgICBpZiAoc2Vzc2lvbi0+c2Vjb25kLT5zdGF0ZSgpID09IERldmljZVNlc3Npb246
Ok9wZW5lZCkKKyAgICAgICAgICAgIHJldm9rZUFjY2Vzc1RvTG9jYWxEZXZpY2Uoc2Vzc2lvbi0+
c2Vjb25kLT5pZCgpKTsKKworICAgICAgICBkZWxldGUgc2Vzc2lvbi0+c2Vjb25kOworICAgIH0K
K30KKworRGV2aWNlU2Vzc2lvbklkIERldmljZVNlc3Npb25Db250cm9sbGVyOjpyZWdpc3RlckRl
dmljZVNlc3Npb24oY29uc3QgRGV2aWNlU2Vzc2lvbiYgc2Vzc2lvbiwgU2Vzc2lvbkxpc3RlbmVy
KiBsaXN0ZW5lcikKK3sKKyAgICBEZXZpY2VTZXNzaW9uKiBuZXdTZXNzaW9uID0gbmV3IERldmlj
ZVNlc3Npb24oc2Vzc2lvbik7CisKKyAgICBzd2l0Y2ggKHNlc3Npb24uaWQoKS50eXBlKCkpIHsK
KyAgICBjYXNlIERldmljZVNlc3Npb25JZDo6TG9jYWw6CisgICAgICAgIC8vIExvY2FsIGRldmlj
ZSBzZXNzaW9uIGlkcyBzaG91bGQgYmUgYXNzaWduZWQgYnkgdGhpcyBtZXRob2QuCisgICAgICAg
IEFTU0VSVCghbmV3U2Vzc2lvbi0+aWQoKS5pZCgpKTsKKyAgICAgICAgbmV3U2Vzc2lvbi0+bXV0
YWJsZUlkKCkubV9pZCA9IG1fbmV4dExvY2FsRGV2aWNlU2Vzc2lvbklkOworICAgICAgICArK21f
bmV4dExvY2FsRGV2aWNlU2Vzc2lvbklkOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgRGV2
aWNlU2Vzc2lvbklkOjpSZW1vdGU6CisgICAgICAgIC8vIFJlbW90ZSBkZXZpY2Ugc2Vzc2lvbiBp
ZHMgc2hvdWxkIGJlIGFscmVhZHkgYXNzaWduZWQgYnkgdGhlIFNlc3Npb25QZWVyIEFQSS4KKyAg
ICAgICAgQVNTRVJUKG5ld1Nlc3Npb24tPmlkKCkuaWQoKSk7CisgICAgICAgIGJyZWFrOworCisg
ICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorCisgICAg
QVNTRVJUKCFtX2RldmljZVNlc3Npb25zLmNvbnRhaW5zKG5ld1Nlc3Npb24tPmlkKCkpKTsKKyAg
ICBtX2RldmljZVNlc3Npb25zLnNldChuZXdTZXNzaW9uLT5pZCgpLCBuZXdTZXNzaW9uKTsKKwor
ICAgIEFTU0VSVCghbV9zZXNzaW9uTGlzdGVuZXJzLmNvbnRhaW5zKG5ld1Nlc3Npb24tPmlkKCkp
KTsKKyAgICBtX3Nlc3Npb25MaXN0ZW5lcnMuc2V0KG5ld1Nlc3Npb24tPmlkKCksIG5ldyBTZXNz
aW9uTGlzdGVuZXJTZXQpOworCisgICAgQVNTRVJUKCFtX3Nlc3Npb25MaXN0ZW5lcnMuZ2V0KG5l
d1Nlc3Npb24tPmlkKCkpLT5jb250YWlucyhsaXN0ZW5lcikpOworICAgIG1fc2Vzc2lvbkxpc3Rl
bmVycy5nZXQobmV3U2Vzc2lvbi0+aWQoKSktPmFkZChsaXN0ZW5lcik7CisKKyAgICBzd2l0Y2gg
KHNlc3Npb24udHlwZSgpLmlkKCkpIHsKKyAgICBjYXNlIERldmljZVR5cGU6OkludmFsaWQ6Cisg
ICAgICAgIGJyZWFrOworCisgICAgY2FzZSBEZXZpY2VUeXBlOjpNZWRpYToKKyAgICAgICAgbmV3
U2Vzc2lvbi0+bV90eXBlU3BlY2lmaWMgPSBhZG9wdFB0cihuZXcgRGV2aWNlTWVkaWFTcGVjaWZp
YygpKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICB9CisKKyAgICByZXR1cm4gbmV3U2Vzc2lvbi0+aWQoKTsKK30KKwor
dm9pZCBEZXZpY2VTZXNzaW9uQ29udHJvbGxlcjo6cmVnaXN0ZXJTZXNzaW9uTGlzdGVuZXIoY29u
c3QgRGV2aWNlU2Vzc2lvbklkJiBpZCwgU2Vzc2lvbkxpc3RlbmVyKiBsaXN0ZW5lcikKK3sKKyAg
ICBBU1NFUlQoIWlkLmlzTnVsbCgpKTsKKyAgICBBU1NFUlQobV9kZXZpY2VTZXNzaW9ucy5jb250
YWlucyhpZCkpOworICAgIEFTU0VSVChtX3Nlc3Npb25MaXN0ZW5lcnMuY29udGFpbnMoaWQpKTsK
KyAgICBBU1NFUlQoIW1fc2Vzc2lvbkxpc3RlbmVycy5nZXQoaWQpLT5jb250YWlucyhsaXN0ZW5l
cikpOworCisgICAgbV9zZXNzaW9uTGlzdGVuZXJzLmdldChpZCktPmFkZChsaXN0ZW5lcik7Cit9
CisKK3ZvaWQgRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXI6OnVucmVnaXN0ZXJTZXNzaW9uTGlzdGVu
ZXIoY29uc3QgRGV2aWNlU2Vzc2lvbklkJiBpZCwgU2Vzc2lvbkxpc3RlbmVyKiBsaXN0ZW5lcikK
K3sKKyAgICBBU1NFUlQoIWlkLmlzTnVsbCgpKTsKKyAgICBBU1NFUlQobV9kZXZpY2VTZXNzaW9u
cy5jb250YWlucyhpZCkpOworICAgIEFTU0VSVChtX3Nlc3Npb25MaXN0ZW5lcnMuY29udGFpbnMo
aWQpKTsKKyAgICBBU1NFUlQobV9zZXNzaW9uTGlzdGVuZXJzLmdldChpZCktPmNvbnRhaW5zKGxp
c3RlbmVyKSk7CisKKyAgICBtX3Nlc3Npb25MaXN0ZW5lcnMuZ2V0KGlkKS0+cmVtb3ZlKGxpc3Rl
bmVyKTsKKyAgICBpZiAobV9zZXNzaW9uTGlzdGVuZXJzLmdldChpZCktPmlzRW1wdHkoKSkgewor
ICAgICAgICBkZWxldGUgbV9zZXNzaW9uTGlzdGVuZXJzLnRha2UoaWQpOworICAgICAgICBkZWxl
dGUgbV9kZXZpY2VTZXNzaW9ucy50YWtlKGlkKTsKKyAgICB9Cit9CisKK2ludCBEZXZpY2VTZXNz
aW9uQ29udHJvbGxlcjo6cmVnaXN0ZXJNZWRpYUxpc3RlbmVyKE1lZGlhTGlzdGVuZXIqIGxpc3Rl
bmVyKQoreworI2lmIGRlZmluZWQoREVCVUcpCisgICAgLy8gQ2hlY2sgaWYgYWxyZWFkeSBwcmVz
ZW50LgorICAgIGZvciAoTWVkaWFMaXN0ZW5lck1hcDo6aXRlcmF0b3IgaXQgPSBtX21lZGlhTGlz
dGVuZXJzLmJlZ2luKCk7IGl0ICE9IG1fbWVkaWFMaXN0ZW5lcnMuZW5kKCk7ICsraXQpCisgICAg
ICAgIEFTU0VSVChpdC0+c2Vjb25kICE9IGxpc3RlbmVyKTsKKyNlbmRpZgorCisgICAgbV9tZWRp
YUxpc3RlbmVycy5hZGQobV9uZXh0TWVkaWFMaXN0ZW5lcklkLCBsaXN0ZW5lcik7CisgICAgcmV0
dXJuIG1fbmV4dE1lZGlhTGlzdGVuZXJJZCsrOworfQorCit2b2lkIERldmljZVNlc3Npb25Db250
cm9sbGVyOjp1bnJlZ2lzdGVyTWVkaWFMaXN0ZW5lcihpbnQgbWVkaWFMaXN0ZW5lcklkKQorewor
ICAgIEFTU0VSVChtZWRpYUxpc3RlbmVySWQpOworICAgIEFTU0VSVChtX21lZGlhTGlzdGVuZXJz
LmNvbnRhaW5zKG1lZGlhTGlzdGVuZXJJZCkpOworICAgIG1fbWVkaWFMaXN0ZW5lcnMucmVtb3Zl
KG1lZGlhTGlzdGVuZXJJZCk7Cit9CisKK2NvbnN0IERldmljZVNlc3Npb24mIERldmljZVNlc3Np
b25Db250cm9sbGVyOjpzZXNzaW9uKGNvbnN0IERldmljZVNlc3Npb25JZCYgaWQpIGNvbnN0Cit7
CisgICAgQVNTRVJUKCFpZC5pc051bGwoKSk7CisgICAgQVNTRVJUKG1fZGV2aWNlU2Vzc2lvbnMu
Y29udGFpbnMoaWQpKTsKKyAgICByZXR1cm4gKm1fZGV2aWNlU2Vzc2lvbnMuZ2V0KGlkKTsKK30K
KworRGV2aWNlU2Vzc2lvbiYgRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXI6Om11dGFibGVTZXNzaW9u
KGNvbnN0IERldmljZVNlc3Npb25JZCYgaWQpCit7CisgICAgQVNTRVJUKCFpZC5pc051bGwoKSk7
CisgICAgQVNTRVJUKG1fZGV2aWNlU2Vzc2lvbnMuY29udGFpbnMoaWQpKTsKKyAgICByZXR1cm4g
Km1fZGV2aWNlU2Vzc2lvbnMuZ2V0KGlkKTsKK30KKworYm9vbCBEZXZpY2VTZXNzaW9uQ29udHJv
bGxlcjo6aXNTZXNzaW9uSWRWYWxpZChjb25zdCBEZXZpY2VTZXNzaW9uSWQmIGlkKSBjb25zdAor
eworICAgIGlmIChpZC5pc051bGwoKSB8fCBpZC50eXBlKCkgPT0gRGV2aWNlU2Vzc2lvbklkOjpO
b25lKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gbV9kZXZpY2VTZXNzaW9u
cy5jb250YWlucyhpZCk7Cit9CisKK2Jvb2wgRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXI6OnJlcXVl
c3RBY2Nlc3NUb0xvY2FsRGV2aWNlKGNvbnN0IERldmljZVNlc3Npb25JZCYgaWQpCit7CisgICAg
aWYgKGlkLnR5cGUoKSAhPSBEZXZpY2VTZXNzaW9uSWQ6OkxvY2FsKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICByZXR1cm4gbV9jbGllbnQtPnJlcXVlc3RBY2Nlc3NUb0xvY2FsRGV2aWNl
KHNlc3Npb24oaWQpKTsKK30KKwordm9pZCBEZXZpY2VTZXNzaW9uQ29udHJvbGxlcjo6cmV2b2tl
QWNjZXNzVG9Mb2NhbERldmljZShjb25zdCBEZXZpY2VTZXNzaW9uSWQmIGlkKQoreworICAgIGlm
IChpZC50eXBlKCkgIT0gRGV2aWNlU2Vzc2lvbklkOjpMb2NhbCkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgcmV0dXJuIG1fY2xpZW50LT5yZXZva2VBY2Nlc3NUb0xvY2FsRGV2aWNlKHNlc3Npb24o
aWQpKTsKK30KKwordm9pZCBEZXZpY2VTZXNzaW9uQ29udHJvbGxlcjo6ZGV2aWNlU2Vzc2lvblVw
ZGF0ZShjb25zdCBEZXZpY2VTZXNzaW9uJiB1cGRhdGVkU2Vzc2lvbikKK3sKKyAgICAvLyBEb24n
dCBhc3NlcnQgaWYgbm90IHByZXNlbnQgYXMgdGhlIHNlc3Npb24gbWlnaHQgaGF2ZSBiZWVuIGRl
c3Ryb3llZCAoYnkgZGVsZXRpbmcgYWxsIGl0cyBsaXN0ZW5lcnMpCisgICAgLy8gd2hpbGUgdGhp
cyBldmVudCB3YXMgb24gaXRzIHdheS4KKyAgICBpZiAobV9zZXNzaW9uTGlzdGVuZXJzLmNvbnRh
aW5zKHVwZGF0ZWRTZXNzaW9uLmlkKCkpKSB7CisKKyAgICAgICAgRGV2aWNlU2Vzc2lvbiYgc2Vz
c2lvbiA9IG11dGFibGVTZXNzaW9uKHVwZGF0ZWRTZXNzaW9uLmlkKCkpOworICAgICAgICBBU1NF
UlQoc2Vzc2lvbi50eXBlKCkuaWQoKSA9PSB1cGRhdGVkU2Vzc2lvbi50eXBlKCkuaWQoKSk7CisK
KyAgICAgICAgc2Vzc2lvbi5tX3N0YXRlID0gdXBkYXRlZFNlc3Npb24uc3RhdGUoKTsKKyAgICAg
ICAgc2Vzc2lvbi5tX2RldmljZXMgPSB1cGRhdGVkU2Vzc2lvbi5kZXZpY2VzKCk7CisKKyAgICAg
ICAgc3dpdGNoIChzZXNzaW9uLnN0YXRlKCkpIHsKKyAgICAgICAgY2FzZSBEZXZpY2VTZXNzaW9u
OjpDYW5jZWxsZWQ6CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIERldmljZVNl
c3Npb246Ok9wZW5lZDoKKyAgICAgICAgICAgIGlmIChzZXNzaW9uLnR5cGUoKS5pc1ZhbGlkKCkp
IHsKKyAgICAgICAgICAgICAgICBBU1NFUlQoc2Vzc2lvbi50eXBlU3BlY2lmaWMoKSk7CisgICAg
ICAgICAgICAgICAgc2Vzc2lvbi5tX3R5cGVTcGVjaWZpYy0+b25PcGVuKHRoaXMsIHNlc3Npb24u
aWQoKSwgdXBkYXRlZFNlc3Npb24udHlwZVNwZWNpZmljKCkpOworICAgICAgICAgICAgfQorICAg
ICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBEZXZpY2VTZXNzaW9uOjpGYWlsZWQ6Cisg
ICAgICAgIGNhc2UgRGV2aWNlU2Vzc2lvbjo6Q2xvc2VkOgorICAgICAgICAgICAgaWYgKHNlc3Np
b24udHlwZSgpLmlzVmFsaWQoKSkgeworICAgICAgICAgICAgICAgIEFTU0VSVChzZXNzaW9uLnR5
cGVTcGVjaWZpYygpKTsKKyAgICAgICAgICAgICAgICBzZXNzaW9uLm1fdHlwZVNwZWNpZmljLT5v
bkNsb3NlKHRoaXMsIHNlc3Npb24uaWQoKSwgdXBkYXRlZFNlc3Npb24udHlwZVNwZWNpZmljKCkp
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgZGVmYXVsdDoK
KyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICB9CisKKyAgICAgICAg
QVNTRVJUKG1fc2Vzc2lvbkxpc3RlbmVycy5jb250YWlucyhzZXNzaW9uLmlkKCkpKTsKKyAgICAg
ICAgY29uc3QgU2Vzc2lvbkxpc3RlbmVyU2V0ICpsaXN0ZW5lcnMgPSBtX3Nlc3Npb25MaXN0ZW5l
cnMuZ2V0KHNlc3Npb24uaWQoKSk7CisKKyAgICAgICAgLy8gU29tZSB1cGRhdGUgbm90aWZpY2F0
aW9ucyBjYW4gY2F1c2UgbGlzdGVuZXJzIHRvIHVucmVnaXN0ZXIgdGhlbXNlbHZlcyBhbmQgaW52
YWxpZGF0ZSB0aGUgaXRlcmF0b3JzLgorICAgICAgICBmb3IgKFNlc3Npb25MaXN0ZW5lclNldDo6
Y29uc3RfaXRlcmF0b3IgbGlzdGVuZXIgPSBsaXN0ZW5lcnMtPmJlZ2luKCk7IGxpc3RlbmVyICE9
IGxpc3RlbmVycy0+ZW5kKCk7KSB7CisgICAgICAgICAgICBTZXNzaW9uTGlzdGVuZXJTZXQ6OmNv
bnN0X2l0ZXJhdG9yIHRlbXAgPSBsaXN0ZW5lcjsKKyAgICAgICAgICAgICsrbGlzdGVuZXI7Cisg
ICAgICAgICAgICAoKnRlbXApLT5kZXZpY2VTZXNzaW9uVXBkYXRlKHNlc3Npb24pOworICAgICAg
ICB9CisgICAgfQorfQorCitib29sIERldmljZVNlc3Npb25Db250cm9sbGVyOjpyZWNvcmRTdHJl
YW1Ub0ZpbGUoaW50IG1lZGlhTGlzdGVuZXJJZCwgY29uc3QgRGV2aWNlU2Vzc2lvbklkJiBzZXNz
aW9uSWQpCit7CisgICAgQVNTRVJUKG1lZGlhTGlzdGVuZXJJZCk7CisgICAgQVNTRVJUKG1fbWVk
aWFMaXN0ZW5lcnMuY29udGFpbnMobWVkaWFMaXN0ZW5lcklkKSk7CisgICAgcmV0dXJuIG1fY2xp
ZW50LT5yZWNvcmRTdHJlYW1Ub0ZpbGUobWVkaWFMaXN0ZW5lcklkLCBzZXNzaW9uKHNlc3Npb25J
ZCkpOworfQorCit2b2lkIERldmljZVNlc3Npb25Db250cm9sbGVyOjpzdG9wUmVjb3JkaW5nU3Ry
ZWFtKGludCBtZWRpYUxpc3RlbmVySWQsIGNvbnN0IERldmljZVNlc3Npb25JZCYgc2Vzc2lvbklk
LCBjb25zdCBTdHJpbmcmIHBhdGgpCit7CisgICAgQVNTRVJUKG1lZGlhTGlzdGVuZXJJZCk7Cisg
ICAgQVNTRVJUKG1fbWVkaWFMaXN0ZW5lcnMuY29udGFpbnMobWVkaWFMaXN0ZW5lcklkKSk7Cisg
ICAgcmV0dXJuIG1fY2xpZW50LT5zdG9wUmVjb3JkaW5nU3RyZWFtKG1lZGlhTGlzdGVuZXJJZCwg
c2Vzc2lvbihzZXNzaW9uSWQpLCBwYXRoKTsKK30KKwordm9pZCBEZXZpY2VTZXNzaW9uQ29udHJv
bGxlcjo6c3RyZWFtUmVjb3JkaW5nU3RhcnRlZChpbnQgbWVkaWFMaXN0ZW5lcklkLCBjb25zdCBT
dHJpbmcmIHBhdGgpCit7CisgICAgLy8gRG9uJ3QgYXNzZXJ0IGlmIG5vdCBwcmVzZW50IGFzIHRo
ZSBsaXN0ZW5lciBtaWdodCBoYXZlIGJlZW4gcmVtb3ZlZCB3aGlsZSB0aGlzIGV2ZW50IHdhcyBv
biBpdHMgd2F5LgorICAgIEFTU0VSVChtZWRpYUxpc3RlbmVySWQpOworICAgIGlmIChtX21lZGlh
TGlzdGVuZXJzLmNvbnRhaW5zKG1lZGlhTGlzdGVuZXJJZCkpCisgICAgICAgIG1fbWVkaWFMaXN0
ZW5lcnMuZ2V0KG1lZGlhTGlzdGVuZXJJZCktPnN0cmVhbVJlY29yZGluZ1N0YXJ0ZWQobWVkaWFM
aXN0ZW5lcklkLCBwYXRoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gRU5BQkxFKERFVklDRV9FTEVNRU5UKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9EZXZpY2VTZXNzaW9uQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VT
ZXNzaW9uQ29udHJvbGxlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg0NzM1Yzk1MmZlZmY2OTgyYTA5ZGZiZmE5
ZjY4ZDBmYjliZjZmNjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Rl
dmljZVNlc3Npb25Db250cm9sbGVyLmgKQEAgLTAsMCArMSwxNDMgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9u
LgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIERldmljZVNl
c3Npb25Db250cm9sbGVyX2gKKyNkZWZpbmUgRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXJfaAorCisj
aWYgRU5BQkxFKERFVklDRV9FTEVNRU5UKQorCisjaW5jbHVkZSAiRGV2aWNlTGlzdGVuZXIuaCIK
KyNpbmNsdWRlICJEZXZpY2VTZXNzaW9uSWQuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgor
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+Cisj
aW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgRGV2aWNlQ2xpZW50OworY2xhc3MgRGV2aWNlU2Vzc2lvbjsKK2NsYXNzIERldmljZVR5cGU7
CitjbGFzcyBTZWN1cml0eU9yaWdpbjsKKworY2xhc3MgRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIg
OiBwdWJsaWMgRGV2aWNlTGlzdGVuZXIgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERldmlj
ZVNlc3Npb25Db250cm9sbGVyKTsKK3B1YmxpYzoKKyAgICBEZXZpY2VTZXNzaW9uQ29udHJvbGxl
cihEZXZpY2VDbGllbnQqKTsKKyAgICB2aXJ0dWFsIH5EZXZpY2VTZXNzaW9uQ29udHJvbGxlcigp
OworCisgICAgLy8gU2Vzc2lvbiBtYW5hZ2VtZW50LiBNYW55IGxpc3RlbmVycyBjYW4gcmVnaXN0
ZXIgdG8gcmVjaWV2ZSBzdGF0dXMgdXBkYXRlcyBmb3IgYSBzZXNzaW9uLgorCisgICAgY2xhc3Mg
U2Vzc2lvbkxpc3RlbmVyIHsKKyAgICBwdWJsaWM6CisgICAgICAgIHZpcnR1YWwgflNlc3Npb25M
aXN0ZW5lcigpIHsgfQorCisgICAgICAgIC8vIFJlcG9ydHMgYW4gdXBkYXRlIGluIHRoZSBzdGF0
ZSBvZiBhIGRldmljZSBzZXNzaW9uLgorICAgICAgICB2aXJ0dWFsIHZvaWQgZGV2aWNlU2Vzc2lv
blVwZGF0ZShjb25zdCBEZXZpY2VTZXNzaW9uJikgPSAwOworCisgICAgICAgIC8vIFNlc3Npb24g
Y29udHJvbGxlciBzaHV0dGluZyBkb3duLiBMaXN0ZW5lcnMgc2hvdWxkIGludmFsaWRhdGUgYW55
IHNlc3Npb24gaWRzIGFuZCBhc3N1bWUKKyAgICAgICAgLy8gdG8gYmUgdW5yZWdpc3RlcmVkIGZv
ciBkZXZpY2Ugc2Vzc2lvbnMuIEFueSBhY3RpdmUgc2Vzc2lvbnMgd2lsbCBiZSBhdXRvbWF0aWNh
bGx5IGNsb3NlZC4KKyAgICAgICAgLy8gSW1wb3J0YW50IG5vdGU6IGxpc3RlbmVycyBNVVNUIE5P
VCB0cnkgdG8gcmVnaXN0ZXIgdGhlbXNlbHZlcyB3aGVuIHJlY2VpdmluZyB0aGlzIG1lc3NhZ2Uu
CisgICAgICAgIHZpcnR1YWwgdm9pZCBzZXNzaW9uQ29udHJvbGxlclNodXRkb3duKCkgPSAwOwor
ICAgIH07CisKKyAgICAvLyBDcmVhdGUgYSBuZXcgZGV2aWNlIHNlc3Npb24gYXNzb2NpYXRlZCB3
aXRoIHRoZSBsaXN0ZW5lciBhbmQgcmV0dXJuIGl0cyBkZXZpY2Ugc2Vzc2lvbiBpZC4KKyAgICAv
LyBUaGUgaWQgZWxlbWVudCBvZiB0aGUgc2Vzc2lvbiBpZCB0dXBsZSB3aWxsIGJlIG1hbmFnZWQg
YnkgdGhpcyBvYmplY3QgZm9yIGxvY2FsIGRldmljZSBzZXNzaW9ucy4KKyAgICAvLyBGb3IgcmVt
b3RlIGRldmljZSBzZXNzaW9ucywgYSB2YWxpZCBpZCB2YWx1ZSBpcyBhc3N1bWVkIHRvIGJlIGFs
cmVhZHkgcHJlc2VudCBhbmQgbWFuYWdlZCBieSB0aGUgU2Vzc2lvblBlZXJDbGllbnQuCisgICAg
RGV2aWNlU2Vzc2lvbklkIHJlZ2lzdGVyRGV2aWNlU2Vzc2lvbihjb25zdCBEZXZpY2VTZXNzaW9u
JiwgU2Vzc2lvbkxpc3RlbmVyKik7CisKKyAgICAvLyBSZWdpc3RlciBhIG5ldyBsaXN0ZW5lciB0
byB0aGUgc3RhdHVzIHVwZGF0ZXMgb2YgYW4gZXhpc3Rpbmcgc2Vzc2lvbi4KKyAgICB2b2lkIHJl
Z2lzdGVyU2Vzc2lvbkxpc3RlbmVyKGNvbnN0IERldmljZVNlc3Npb25JZCYsIFNlc3Npb25MaXN0
ZW5lciopOworCisgICAgLy8gVW5yZWdpc3RlciBhIGxpc3RlbmVyIG9mIGEgZXhpc3Rpbmcgc2Vz
c2lvbi4KKyAgICAvLyBUaGUgc2Vzc2lvbiBvYmplY3Qgd2lsbCBiZSBkZXN0cm95ZWQgaWYgYWxs
IGxpc3RlbmVycyBhcmUgdW5yZWdpc3RlcmVkLiBBbnkgYWN0aXZlIHNlc3Npb24gd2lsbCBiZSBj
bG9zZWQuCisgICAgLy8gTm90ZTogaW4gdGhlIGNhc2Ugb2YgbWVkaWEsIGl0IHNob3VsZCBiZSBr
ZXB0IGFsaXZlIGJ5IGl0cyBvd24gc3RyZWFtIG9iamVjdCB1bnRpbCB0aGUgc2Vzc2lvbiB0byB0
aGUgZGV2aWNlIGlzIGVpdGhlcgorICAgIC8vIHByb3Blcmx5IGNsb3NlZCBvciBmYWlscy4gSW4g
dGhhdCBjYXNlIHRoZSBzdHJlYW0gd2lsbCB1bnJlZ2lzdGVyIGl0c2VsZiBhcyBsaXN0ZW5lciB3
aGVuIHJlY2VpdmluZyBkZXZpY2VTZXNzaW9uVXBkYXRlLgorICAgIHZvaWQgdW5yZWdpc3RlclNl
c3Npb25MaXN0ZW5lcihjb25zdCBEZXZpY2VTZXNzaW9uSWQmLCBTZXNzaW9uTGlzdGVuZXIqKTsK
KworCisgICAgLy8gTWVkaWEgbGlzdGVuaW5nLiBNZXNzYWdlIHJlcGxpZXMgYXJlIHJlY2VpdmVk
IGJ5IHRoZSBzYW1lIG9iamVjdCB0aGF0IG1hZGUgdGhlIHJlcXVlc3RzLgorCisgICAgY2xhc3Mg
TWVkaWFMaXN0ZW5lciB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIH5NZWRpYUxpc3Rl
bmVyKCkgeyB9CisKKyAgICAgICAgLy8gTm90aWZpZXMgdGhhdCBhIHN0cmVhbSByZWNvcmRpbmcg
aGFzIHN0YXJ0ZWQgYW5kIGl0cyBiZWluZyByZWNvcmRlZCBpbnRvIGEgc3BlY2lmaWVkIGZpbGUu
CisgICAgICAgIHZpcnR1YWwgdm9pZCBzdHJlYW1SZWNvcmRpbmdTdGFydGVkKGludCBtZWRpYUxp
c3RlbmVySWQsIGNvbnN0IFN0cmluZyYgcGF0aCkgPSAwOworICAgIH07CisKKyAgICAvLyBSZWdp
c3RlciBhIG5ldyBtZWRpYSBsaXN0ZW5lciBhbmQgcmV0dXJuIGEgdW5pcXVlIElEIGZvciBpdC4K
KyAgICBpbnQgcmVnaXN0ZXJNZWRpYUxpc3RlbmVyKE1lZGlhTGlzdGVuZXIqKTsKKworICAgIC8v
IFVucmVnaXN0ZXIgYSBtZWRpYSBsaXN0ZW5lci4KKyAgICB2b2lkIHVucmVnaXN0ZXJNZWRpYUxp
c3RlbmVyKGludCBtZWRpYUxpc3RlbmVySWQpOworCisKKyAgICAvLyBDb250cm9sbGVyIG1ldGhv
ZHMuCisKKyAgICAvLyBQcm92aWRlcyB0aGUgZGV2aWNlIHNlc3Npb24gb2JqZWN0IGFzc29jaWF0
ZWQgd2l0aCBhbiBpZC4KKyAgICBjb25zdCBEZXZpY2VTZXNzaW9uJiBzZXNzaW9uKGNvbnN0IERl
dmljZVNlc3Npb25JZCYpIGNvbnN0OworICAgIGJvb2wgaXNTZXNzaW9uSWRWYWxpZChjb25zdCBE
ZXZpY2VTZXNzaW9uSWQmKSBjb25zdDsKKworICAgIC8vIFJlcXVlc3QgdG8gb3BlbiBhIHNlc3Np
b24gd2l0aCBhIGxvY2FsIGRldmljZSBvZiB0aGUgc3BlY2lmaWVkIHR5cGUuCisgICAgYm9vbCBy
ZXF1ZXN0QWNjZXNzVG9Mb2NhbERldmljZShjb25zdCBEZXZpY2VTZXNzaW9uSWQmKTsKKworICAg
IC8vIFJlcXVlc3QgdG8gY2xvc2UgYSBvbmdvaW5nIGxvY2FsIGRldmljZSBzZXNzaW9uLgorICAg
IHZvaWQgcmV2b2tlQWNjZXNzVG9Mb2NhbERldmljZShjb25zdCBEZXZpY2VTZXNzaW9uSWQmKTsK
KworICAgIC8vIE1ldGhvZHMgaW52b2tlZCBieSB0aGUgbWVkaWEgbGlzdGVuZXJzLgorICAgIGJv
b2wgcmVjb3JkU3RyZWFtVG9GaWxlKGludCBtZWRpYUxpc3RlbmVySWQsIGNvbnN0IERldmljZVNl
c3Npb25JZCYpOworICAgIHZvaWQgc3RvcFJlY29yZGluZ1N0cmVhbShpbnQgbWVkaWFMaXN0ZW5l
cklkLCBjb25zdCBEZXZpY2VTZXNzaW9uSWQmLCBjb25zdCBTdHJpbmcmIHBhdGgpOworCisgICAg
Ly8gRGV2aWNlTGlzdGVuZXIgaW1wbGVtZW50YXRpb24uCisgICAgdmlydHVhbCB2b2lkIGRldmlj
ZVNlc3Npb25VcGRhdGUoY29uc3QgRGV2aWNlU2Vzc2lvbiYpOworICAgIHZpcnR1YWwgdm9pZCBz
dHJlYW1SZWNvcmRpbmdTdGFydGVkKGludCBtZWRpYUxpc3RlbmVySWQsIGNvbnN0IFN0cmluZyYg
cGF0aCk7CisKK3ByaXZhdGU6CisgICAgdHlwZWRlZiBMaXN0SGFzaFNldDxTZXNzaW9uTGlzdGVu
ZXIqPiBTZXNzaW9uTGlzdGVuZXJTZXQ7CisgICAgdHlwZWRlZiBIYXNoTWFwPERldmljZVNlc3Np
b25JZCwgRGV2aWNlU2Vzc2lvbio+IERldmljZVNlc3Npb25NYXA7CisgICAgdHlwZWRlZiBIYXNo
TWFwPERldmljZVNlc3Npb25JZCwgU2Vzc2lvbkxpc3RlbmVyU2V0Kj4gU2Vzc2lvbkxpc3RlbmVy
c01hcDsKKyAgICB0eXBlZGVmIEhhc2hNYXA8aW50LCBNZWRpYUxpc3RlbmVyKj4gTWVkaWFMaXN0
ZW5lck1hcDsKKworICAgIERldmljZVNlc3Npb24mIG11dGFibGVTZXNzaW9uKGNvbnN0IERldmlj
ZVNlc3Npb25JZCYpOworCisgICAgRGV2aWNlQ2xpZW50KiBtX2NsaWVudDsKKyAgICBEZXZpY2VT
ZXNzaW9uTWFwIG1fZGV2aWNlU2Vzc2lvbnM7CisgICAgU2Vzc2lvbkxpc3RlbmVyc01hcCBtX3Nl
c3Npb25MaXN0ZW5lcnM7CisgICAgTWVkaWFMaXN0ZW5lck1hcCBtX21lZGlhTGlzdGVuZXJzOwor
ICAgIGludCBtX25leHRMb2NhbERldmljZVNlc3Npb25JZDsKKyAgICBpbnQgbV9uZXh0TWVkaWFM
aXN0ZW5lcklkOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5B
QkxFKERFVklDRV9FTEVNRU5UKQorCisjZW5kaWYgLy8gRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXJf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VTZXNzaW9uU3BlY2lmaWMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VTZXNzaW9uU3BlY2lmaWMuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmVkMjk5Y2Y0NDE0N2E5YTg1Y2I3ZjY4MjdmMDU4NzEzNTk0OTU5YWYKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZVNlc3Npb25TcGVjaWZpYy5jcHAK
QEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQor
ICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEZXZpY2VTZXNz
aW9uU3BlY2lmaWMuaCIKKworI2lmIEVOQUJMRShERVZJQ0VfRUxFTUVOVCkKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCit2b2lkIERldmljZU1lZGlhU3BlY2lmaWM6Om9uT3BlbihEZXZpY2VTZXNz
aW9uQ29udHJvbGxlciogY29udHJvbGxlciwgRGV2aWNlU2Vzc2lvbklkIHNlc3Npb25JZCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IERldmljZVR5cGVTcGVjaWZp
YyogZGF0YSkKK3sKKyAgICBjb25zdCBEZXZpY2VNZWRpYVNwZWNpZmljKiBtZWRpYSA9IHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgRGV2aWNlTWVkaWFTcGVjaWZpYyo+KGRhdGEpOworICAgIG1fc3Ry
ZWFtVXJsID0gbWVkaWEtPm1fc3RyZWFtVXJsOworICAgIG1fc3RyZWFtID0gU3RyZWFtOjpjcmVh
dGUoY29udHJvbGxlciwgc2Vzc2lvbklkLCBtX3N0cmVhbVVybCk7Cit9CisKK0RldmljZVR5cGVT
cGVjaWZpYyogRGV2aWNlTWVkaWFTcGVjaWZpYzo6Y2xvbmUoY29uc3QgRGV2aWNlVHlwZSYgdHlw
ZSkgY29uc3QKK3sKKyAgICBzd2l0Y2ggKHR5cGUuaWQoKSkgeworICAgIGNhc2UgRGV2aWNlVHlw
ZTo6TWVkaWE6CisgICAgICAgIHJldHVybiBuZXcgRGV2aWNlTWVkaWFTcGVjaWZpYygqdGhpcyk7
CisKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisK
KyAgICByZXR1cm4gMDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RU5BQkxFKERFVklDRV9FTEVNRU5UKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9E
ZXZpY2VTZXNzaW9uU3BlY2lmaWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlU2Vzc2lv
blNwZWNpZmljLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmJjMWQ5YjNiNDU5ZWVjNzYyYmIwMWFlYjY1ZGM1Nzgz
MDRhMWE0OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlU2Vz
c2lvblNwZWNpZmljLmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisg
KiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRGV2aWNlU2Vzc2lvblNwZWNp
ZmljX2gKKyNkZWZpbmUgRGV2aWNlU2Vzc2lvblNwZWNpZmljX2gKKworI2lmIEVOQUJMRShERVZJ
Q0VfRUxFTUVOVCkKKworI2luY2x1ZGUgIkRldmljZVNlc3Npb24uaCIKKyNpbmNsdWRlICJLVVJM
LmgiCisjaW5jbHVkZSAiU3RyZWFtLmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEZXZpY2VNZWRpYVNwZWNpZmljIDogcHVibGljIERl
dmljZVR5cGVTcGVjaWZpYyB7CitwdWJsaWM6CisgICAgRGV2aWNlTWVkaWFTcGVjaWZpYygpIHsg
fQorICAgIERldmljZU1lZGlhU3BlY2lmaWMoY29uc3QgS1VSTCYgc3RyZWFtVXJsKSA6IG1fc3Ry
ZWFtVXJsKHN0cmVhbVVybCkgeyB9CisgICAgdmlydHVhbCBEZXZpY2VUeXBlU3BlY2lmaWMqIGNs
b25lKGNvbnN0IERldmljZVR5cGUmKSBjb25zdDsKKyAgICB2aXJ0dWFsIH5EZXZpY2VNZWRpYVNw
ZWNpZmljKCkgeyB9CisKKyAgICBQYXNzUmVmUHRyPFN0cmVhbT4gc3RyZWFtKCkgY29uc3QgeyBy
ZXR1cm4gbV9zdHJlYW07IH0KKyAgICBjb25zdCBLVVJMJiBzdHJlYW1VcmwoKSBjb25zdCB7IHJl
dHVybiBtX3N0cmVhbVVybDsgfQorCitwcml2YXRlOgorICAgIHZpcnR1YWwgdm9pZCBvbk9wZW4o
RGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIqLCBEZXZpY2VTZXNzaW9uSWQsIGNvbnN0IERldmljZVR5
cGVTcGVjaWZpYyopOworICAgIGZyaWVuZCBjbGFzcyBEZXZpY2VTZXNzaW9uQ29udHJvbGxlcjsK
KyAgICBSZWZQdHI8U3RyZWFtPiBtX3N0cmVhbTsKKyAgICBLVVJMIG1fc3RyZWFtVXJsOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKERFVklDRV9FTEVN
RU5UKQorCisjZW5kaWYgLy8gRGV2aWNlU2Vzc2lvblNwZWNpZmljX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3Bw
CmluZGV4IDQxMWVhM2NkN2IyNzNjMWZiNzhhZGUwNmZjMTY1NjUxZTZjMzUxYmQuLmIxODQ2MDNm
NjFjODBmYWMwZTljMmMyODYxNmQ5M2RhMzI3OGZjM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAt
MjksNiArMjksOCBAQAogI2luY2x1ZGUgIkNvbnRleHRNZW51Q2xpZW50LmgiCiAjaW5jbHVkZSAi
Q29udGV4dE1lbnVDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVk
ZSAiRGV2aWNlQ2xpZW50LmgiCisjaW5jbHVkZSAiRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIuaCIK
ICNpbmNsdWRlICJEZXZpY2VNb3Rpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRGV2aWNlT3Jp
ZW50YXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVy
LmgiCkBAIC0xMzksNiArMTQxLDkgQEAgUGFnZTo6UGFnZShjb25zdCBQYWdlQ2xpZW50cyYgcGFn
ZUNsaWVudHMpCiAjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKICAgICAsIG1fc3BlZWNoSW5wdXRD
bGllbnQocGFnZUNsaWVudHMuc3BlZWNoSW5wdXRDbGllbnQpCiAjZW5kaWYKKyNpZiBFTkFCTEUo
REVWSUNFX0VMRU1FTlQpCisgICAgLCBtX2RldmljZUNsaWVudChwYWdlQ2xpZW50cy5kZXZpY2VD
bGllbnQpCisjZW5kaWYKICAgICAsIG1fc2V0dGluZ3MoYWRvcHRQdHIobmV3IFNldHRpbmdzKHRo
aXMpKSkKICAgICAsIG1fcHJvZ3Jlc3MoYWRvcHRQdHIobmV3IFByb2dyZXNzVHJhY2tlcikpCiAg
ICAgLCBtX2JhY2tGb3J3YXJkQ29udHJvbGxlcihhZG9wdFB0cihuZXcgQmFja0ZvcndhcmRDb250
cm9sbGVyKHRoaXMsIHBhZ2VDbGllbnRzLmJhY2tGb3J3YXJkQ2xpZW50KSkpCkBAIC0xNjUsNyAr
MTcwLDcgQEAgUGFnZTo6UGFnZShjb25zdCBQYWdlQ2xpZW50cyYgcGFnZUNsaWVudHMpCiB7CiAg
ICAgaWYgKCFhbGxQYWdlcykgewogICAgICAgICBhbGxQYWdlcyA9IG5ldyBIYXNoU2V0PFBhZ2Uq
PjsKLSAgICAgICAgCisKICAgICAgICAgbmV0d29ya1N0YXRlTm90aWZpZXIoKS5zZXROZXR3b3Jr
U3RhdGVDaGFuZ2VkRnVuY3Rpb24obmV0d29ya1N0YXRlQ2hhbmdlZCk7CiAgICAgfQogCkBAIC04
MzgsNiArODQzLDE2IEBAIFNwZWVjaElucHV0KiBQYWdlOjpzcGVlY2hJbnB1dCgpCiB9CiAjZW5k
aWYKIAorI2lmIEVOQUJMRShERVZJQ0VfRUxFTUVOVCkKK0RldmljZVNlc3Npb25Db250cm9sbGVy
KiBQYWdlOjpkZXZpY2VTZXNzaW9uQ29udHJvbGxlcigpCit7CisgICAgQVNTRVJUKG1fZGV2aWNl
Q2xpZW50KTsKKyAgICBpZiAoIW1fZGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIuZ2V0KCkpCisgICAg
ICAgIG1fZGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIuc2V0KG5ldyBEZXZpY2VTZXNzaW9uQ29udHJv
bGxlcihtX2RldmljZUNsaWVudCkpOworICAgIHJldHVybiBtX2RldmljZVNlc3Npb25Db250cm9s
bGVyLmdldCgpOworfQorI2VuZGlmCisKIHZvaWQgUGFnZTo6ZG5zUHJlZmV0Y2hpbmdTdGF0ZUNo
YW5nZWQoKQogewogICAgIGZvciAoRnJhbWUqIGZyYW1lID0gbWFpbkZyYW1lKCk7IGZyYW1lOyBm
cmFtZSA9IGZyYW1lLT50cmVlKCktPnRyYXZlcnNlTmV4dCgpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCA0
NDk4ZDM2YmE3MDdiZTk4Mzc2MmIzN2QxMjhjMTM2ODI5MzMyYTk2Li44Y2MxN2Y4OTM4YWMyZmVm
YjM0MmYzNzc3YjNhNzlmZjY0NzBmMTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtNzUsNiArNzUsOSBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q7
CiAgICAgY2xhc3MgU3BlZWNoSW5wdXQ7CiAgICAgY2xhc3MgU3BlZWNoSW5wdXRDbGllbnQ7Cisg
ICAgY2xhc3MgRGV2aWNlQ2xpZW50OworICAgIGNsYXNzIERldmljZVNlc3Npb25Db250cm9sbGVy
OworCiAjaWYgRU5BQkxFKERPTV9TVE9SQUdFKQogICAgIGNsYXNzIFN0b3JhZ2VOYW1lc3BhY2U7
CiAjZW5kaWYKQEAgLTExMyw2ICsxMTYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
ICAgICBEZXZpY2VPcmllbnRhdGlvbkNsaWVudCogZGV2aWNlT3JpZW50YXRpb25DbGllbnQ7CiAg
ICAgICAgICAgICBSZWZQdHI8QmFja0ZvcndhcmRMaXN0PiBiYWNrRm9yd2FyZENsaWVudDsKICAg
ICAgICAgICAgIFNwZWVjaElucHV0Q2xpZW50KiBzcGVlY2hJbnB1dENsaWVudDsKKyAgICAgICAg
ICAgIERldmljZUNsaWVudCogZGV2aWNlQ2xpZW50OwogICAgICAgICB9OwogCiAgICAgICAgIFBh
Z2UoY29uc3QgUGFnZUNsaWVudHMmKTsKQEAgLTE3OSw2ICsxODMsOSBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKICAgICAgICAgU3BlZWNoSW5wdXQqIHNw
ZWVjaElucHV0KCk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoREVWSUNFX0VMRU1FTlQpCisgICAgICAg
IERldmljZVNlc3Npb25Db250cm9sbGVyKiBkZXZpY2VTZXNzaW9uQ29udHJvbGxlcigpOworI2Vu
ZGlmCiAgICAgICAgIFNldHRpbmdzKiBzZXR0aW5ncygpIGNvbnN0IHsgcmV0dXJuIG1fc2V0dGlu
Z3MuZ2V0KCk7IH0KICAgICAgICAgUHJvZ3Jlc3NUcmFja2VyKiBwcm9ncmVzcygpIGNvbnN0IHsg
cmV0dXJuIG1fcHJvZ3Jlc3MuZ2V0KCk7IH0KICAgICAgICAgQmFja0ZvcndhcmRDb250cm9sbGVy
KiBiYWNrRm9yd2FyZCgpIGNvbnN0IHsgcmV0dXJuIG1fYmFja0ZvcndhcmRDb250cm9sbGVyLmdl
dCgpOyB9CkBAIC0xOTUsNyArMjAyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAg
IFZpZXdNb2RlIHZpZXdNb2RlKCkgY29uc3QgeyByZXR1cm4gbV92aWV3TW9kZTsgfQogICAgICAg
ICB2b2lkIHNldFZpZXdNb2RlKFZpZXdNb2RlKTsKLSAgICAgICAgCisKICAgICAgICAgdm9pZCBz
ZXRUYWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHMoYm9vbCBiKSB7IG1fdGFiS2V5Q3ljbGVzVGhy
b3VnaEVsZW1lbnRzID0gYjsgfQogICAgICAgICBib29sIHRhYktleUN5Y2xlc1Rocm91Z2hFbGVt
ZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fdGFiS2V5Q3ljbGVzVGhyb3VnaEVsZW1lbnRzOyB9CiAK
QEAgLTMwNCw3ICszMTEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgRU5BQkxFKEFDQ0VM
RVJBVEVEXzJEX0NBTlZBUykKICAgICAgICAgUmVmUHRyPFNoYXJlZEdyYXBoaWNzQ29udGV4dDNE
PiBtX3NoYXJlZEdyYXBoaWNzQ29udGV4dDNEOwogI2VuZGlmCi0gICAgICAgIAorCiAjaWYgRU5B
QkxFKERSQUdfU1VQUE9SVCkKICAgICAgICAgT3duUHRyPERyYWdDb250cm9sbGVyPiBtX2RyYWdD
b250cm9sbGVyOwogI2VuZGlmCkBAIC0zMjYsOSArMzMzLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgU3BlZWNoSW5wdXRDbGllbnQqIG1fc3BlZWNoSW5wdXRDbGllbnQ7CiAgICAg
ICAgIE93blB0cjxTcGVlY2hJbnB1dD4gbV9zcGVlY2hJbnB1dDsKICNlbmRpZgorI2lmIEVOQUJM
RShERVZJQ0VfRUxFTUVOVCkKKyAgICAgICAgRGV2aWNlQ2xpZW50KiBtX2RldmljZUNsaWVudDsK
KyAgICAgICAgT3duUHRyPERldmljZVNlc3Npb25Db250cm9sbGVyPiBtX2RldmljZVNlc3Npb25D
b250cm9sbGVyOworI2VuZGlmCiAgICAgICAgIE93blB0cjxTZXR0aW5ncz4gbV9zZXR0aW5nczsK
ICAgICAgICAgT3duUHRyPFByb2dyZXNzVHJhY2tlcj4gbV9wcm9ncmVzczsKLSAgICAgICAgCisK
ICAgICAgICAgT3duUHRyPEJhY2tGb3J3YXJkQ29udHJvbGxlcj4gbV9iYWNrRm9yd2FyZENvbnRy
b2xsZXI7CiAgICAgICAgIFJlZlB0cjxGcmFtZT4gbV9tYWluRnJhbWU7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85203</attachid>
            <date>2011-03-09 11:26:38 -0800</date>
            <delta_ts>2011-03-11 09:16:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53776-20110309192636.patch</filename>
            <type>text/plain</type>
            <size>128447</size>
            <attacher name="Leandro Graciá Gil">leandrogracia</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODA1NzEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2MWVlMWRhNDU4MGFiZjdk
YWIxY2RiMmY1MWI3YWU4NjE0YzAzOGViLi40OTM0MWM0N2QyYjQ2YTRkMjZjNDk4YzUyNTcyZGU2
MTU2NGQ0ZTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTM4IEBACisyMDExLTAzLTA5ICBMZWFu
ZHJvIEdyYWNpYSBHaWwgIDxsZWFuZHJvZ3JhY2lhQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBzZXNzaW9uLWJhc2Vk
IGNvZGUgZm9yIEhUTUxEZXZpY2VFbGVtZW50IGFuZCBTdHJlYW0uCisgICAgICAgIEEgZGV2aWNl
IHNlc3Npb24gY29udHJvbGxlciBpcyBhbHNvIGFkZGVkIHRvIG1hbmFnZSBzZXNzaW9uIHN0YXR1
cyBhbmQgcmVxdWVzdHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD01Mzc3NgorCisgICAgICAgICogQ29kZUdlbmVyYXRvcnMucHJpOgorICAgICAgICAq
IERlcml2ZWRTb3VyY2VzLmNwcDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAg
ICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAg
KiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoK
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNIVE1MRGV2aWNlRWxlbWVudEN1c3RvbS5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6SlNIVE1MRGV2aWNlRWxlbWVudDo6ZGF0YSk6CisgICAgICAgICogYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4SFRNTERldmljZUVsZW1lbnRDdXN0b20uY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlY4SFRNTERldmljZUVsZW1lbnQ6OmRhdGFBY2Nlc3NvckdldHRlcik6Cisg
ICAgICAgICogZG9tL0RPTUFsbEluT25lLmNwcDoKKyAgICAgICAgKiBkb20vRGV2aWNlRWxlbWVu
dC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlRWxlbWVudDo6RGV2aWNlRWxl
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VFbGVtZW50Ojp+RGV2aWNlRWxlbWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VFbGVtZW50Ojp0eXBlKToKKyAgICAgICAgKiBkb20v
RGV2aWNlRWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBkb20vRGV2aWNlU2Vzc2lvbklkLmg6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlU2Vzc2lvbklkOjpEZXZpY2VTZXNzaW9u
SWQpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlU2Vzc2lvbklkOjppZCk6CisgICAgICAgIChX
ZWJDb3JlOjpEZXZpY2VTZXNzaW9uSWQ6OnR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNl
U2Vzc2lvbklkOjppc051bGwpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlU2Vzc2lvbklkOjpy
ZXNldCk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VTZXNzaW9uSWQ6Om9wZXJhdG9yIHN0ZDo6
cGFpcjxpbnQsIGludD4pOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlU2Vzc2lvbklkOjpvcGVy
YXRvcj09KToKKyAgICAgICAgKiBkb20vRGV2aWNlVHlwZS5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6RGV2aWNlVHlwZTo6RGV2aWNlVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpEZXZp
Y2VUeXBlOjppZCk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VUeXBlOjpuYW1lKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRldmljZVR5cGU6OmlzVmFsaWQpOgorICAgICAgICAoV2ViQ29yZTo6RGV2
aWNlVHlwZTo6aWRGcm9tTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VUeXBlOjpuYW1l
RnJvbUlkKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZVR5cGU6Om1lZGlhKToKKyAgICAgICAg
KiBkb20vRGV2aWNlVHlwZS5oOiBBZGRlZC4KKyAgICAgICAgKiBkb20vU3RyZWFtLmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpTdHJlYW06OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTdHJlYW06OlN0cmVhbSk6CisgICAgICAgIChXZWJDb3JlOjpTdHJlYW06On5TdHJlYW0pOgor
ICAgICAgICAoV2ViQ29yZTo6U3RyZWFtOjp1cmwpOgorICAgICAgICAoV2ViQ29yZTo6U3RyZWFt
OjpkZXZpY2VTZXNzaW9uVXBkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0cmVhbTo6c2Vzc2lv
bkNvbnRyb2xsZXJTaHV0ZG93bik6CisgICAgICAgICogZG9tL1N0cmVhbS5oOiBBZGRlZC4KKyAg
ICAgICAgKiBkb20vU3RyZWFtLmlkbDogQWRkZWQuCisgICAgICAgICogaHRtbC9IVE1MRGV2aWNl
RWxlbWVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTERldmljZUVsZW1lbnQ6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRGV2aWNlRWxlbWVudDo6SFRNTERldmlj
ZUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERldmljZUVsZW1lbnQ6On5IVE1MRGV2
aWNlRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRGV2aWNlRWxlbWVudDo6cGFyc2VN
YXBwZWRBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERldmljZUVsZW1lbnQ6OmF0
dGFjaCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRGV2aWNlRWxlbWVudDo6ZGV0YWNoKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxEZXZpY2VFbGVtZW50OjpzZXRUeXBlKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxEZXZpY2VFbGVtZW50OjpkYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxE
ZXZpY2VFbGVtZW50OjpzdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRGV2aWNlRWxlbWVu
dDo6ZGV2aWNlVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRGV2aWNlRWxlbWVudDo6c2Vz
c2lvbik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRGV2aWNlRWxlbWVudDo6c2V0U3RhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTERldmljZUVsZW1lbnQ6OmNsb3NlQW5kUmVzZXRTZXNzaW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEZXZpY2VFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5k
bGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEZXZpY2VFbGVtZW50OjpkZXZpY2VTZXNzaW9u
VXBkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEZXZpY2VFbGVtZW50OjpzZXNzaW9uQ29u
dHJvbGxlclNodXRkb3duKToKKyAgICAgICAgKFdlYkNvcmU6OnRvSFRNTERldmljZUVsZW1lbnQp
OgorICAgICAgICAqIGh0bWwvSFRNTERldmljZUVsZW1lbnQuaDogQWRkZWQuCisgICAgICAgICog
aHRtbC9IVE1MRGV2aWNlRWxlbWVudC5pZGw6IEFkZGVkLgorICAgICAgICAqIGh0bWwvSFRNTFRh
Z05hbWVzLmluOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmlkbDoKKyAgICAgICAgKiBwYWdl
L0RldmljZUNsaWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRldmljZUNsaWVudDo6
fkRldmljZUNsaWVudCk6CisgICAgICAgICogcGFnZS9EZXZpY2VMaXN0ZW5lci5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkRldmljZUxpc3RlbmVyOjp+RGV2aWNlTGlzdGVuZXIpOgorICAg
ICAgICAqIHBhZ2UvRGV2aWNlU2Vzc2lvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRl
dmljZUVycm9yOjpEZXZpY2VFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VFcnJvcjo6
ZXJyb3JDb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZUVycm9yOjp2ZW5kb3JFcnJvckNv
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlRXJyb3I6OmVycm9yTWVzc2FnZSk6CisgICAg
ICAgIChXZWJDb3JlOjpEZXZpY2VJbmZvOjpEZXZpY2VJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6
OkRldmljZUluZm86OnNlcnZpY2UpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlSW5mbzo6bmFt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VJbmZvOjppZCk6CisgICAgICAgIChXZWJDb3Jl
OjpEZXZpY2VJbmZvOjplcnJvckluZm8pOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlVHlwZVNw
ZWNpZmljOjp+RGV2aWNlVHlwZVNwZWNpZmljKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZVR5
cGVTcGVjaWZpYzo6Y2xvbmUpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlVHlwZVNwZWNpZmlj
Ojpvbk9wZW4pOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlVHlwZVNwZWNpZmljOjpvbkNsb3Nl
KToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZVNlc3Npb246OkRldmljZVNlc3Npb24pOgorICAg
ICAgICAoV2ViQ29yZTo6RGV2aWNlU2Vzc2lvbjo6aWQpOgorICAgICAgICAoV2ViQ29yZTo6RGV2
aWNlU2Vzc2lvbjo6dHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VTZXNzaW9uOjpzdGF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VTZXNzaW9uOjpkZXZpY2VzKToKKyAgICAgICAg
KFdlYkNvcmU6OkRldmljZVNlc3Npb246Om9yaWdpbik6CisgICAgICAgIChXZWJDb3JlOjpEZXZp
Y2VTZXNzaW9uOjp0eXBlU3BlY2lmaWMpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlU2Vzc2lv
bjo6aXNMb2NhbCk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VTZXNzaW9uOjppc1JlbW90ZSk6
CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VTZXNzaW9uOjptdXRhYmxlSWQpOgorICAgICAgICAq
IHBhZ2UvRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkRldmljZVNlc3Npb25Db250cm9sbGVyOjpEZXZpY2VTZXNzaW9uQ29udHJvbGxlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpEZXZpY2VTZXNzaW9uQ29udHJvbGxlcjo6fkRldmljZVNlc3Npb25D
b250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZVNlc3Npb25Db250cm9sbGVyOjpy
ZWdpc3RlckRldmljZVNlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlU2Vzc2lvbkNv
bnRyb2xsZXI6OnJlZ2lzdGVyU2Vzc2lvbkxpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRl
dmljZVNlc3Npb25Db250cm9sbGVyOjp1bnJlZ2lzdGVyU2Vzc2lvbkxpc3RlbmVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRldmljZVNlc3Npb25Db250cm9sbGVyOjpyZWdpc3Rlck1lZGlhTGlzdGVu
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXI6OnVucmVnaXN0
ZXJNZWRpYUxpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZVNlc3Npb25Db250cm9s
bGVyOjpzZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZVNlc3Npb25Db250cm9sbGVy
OjptdXRhYmxlU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VTZXNzaW9uQ29udHJv
bGxlcjo6aXNTZXNzaW9uSWRWYWxpZCk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VTZXNzaW9u
Q29udHJvbGxlcjo6cmVxdWVzdEFjY2Vzc1RvTG9jYWxEZXZpY2UpOgorICAgICAgICAoV2ViQ29y
ZTo6RGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXI6OnJldm9rZUFjY2Vzc1RvTG9jYWxEZXZpY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6RGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXI6OmRldmljZVNlc3Npb25V
cGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXI6OnJlY29y
ZFN0cmVhbVRvRmlsZSk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VTZXNzaW9uQ29udHJvbGxl
cjo6c3RvcFJlY29yZGluZ1N0cmVhbSk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VTZXNzaW9u
Q29udHJvbGxlcjo6c3RyZWFtUmVjb3JkaW5nU3RhcnRlZCk6CisgICAgICAgICogcGFnZS9EZXZp
Y2VTZXNzaW9uQ29udHJvbGxlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRldmljZVNl
c3Npb25Db250cm9sbGVyOjpTZXNzaW9uTGlzdGVuZXI6On5TZXNzaW9uTGlzdGVuZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6RGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXI6Ok1lZGlhTGlzdGVuZXI6On5N
ZWRpYUxpc3RlbmVyKToKKyAgICAgICAgKiBwYWdlL0RldmljZVNlc3Npb25TcGVjaWZpYy5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTWVkaWFTcGVjaWZpYzo6b25PcGVuKToK
KyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1lZGlhU3BlY2lmaWM6OmNsb25lKToKKyAgICAgICAg
KiBwYWdlL0RldmljZVNlc3Npb25TcGVjaWZpYy5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkRldmljZU1lZGlhU3BlY2lmaWM6OkRldmljZU1lZGlhU3BlY2lmaWMpOgorICAgICAgICAoV2Vi
Q29yZTo6RGV2aWNlTWVkaWFTcGVjaWZpYzo6fkRldmljZU1lZGlhU3BlY2lmaWMpOgorICAgICAg
ICAoV2ViQ29yZTo6RGV2aWNlTWVkaWFTcGVjaWZpYzo6c3RyZWFtKToKKyAgICAgICAgKFdlYkNv
cmU6OkRldmljZU1lZGlhU3BlY2lmaWM6OnN0cmVhbVVybCk6CisgICAgICAgICogcGFnZS9QYWdl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6
UGFnZTo6ZGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgor
CiAyMDExLTAzLTA4ICBDaHJpcyBNYXJyaW4gIDxjbWFycmluQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Nv
ZGVHZW5lcmF0b3JzLnByaSBiL1NvdXJjZS9XZWJDb3JlL0NvZGVHZW5lcmF0b3JzLnByaQppbmRl
eCAzZTQ1OWE2OTM4YzRkN2VjNGUzZjlmOTg0NDJjOWYzNmU5OWUyMzdmLi5iYzMxYjFmMmIyNzc0
NTA2OGU4ZGZiZDFkMzdmNzMwNjA0YWZhYjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
b2RlR2VuZXJhdG9ycy5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvQ29kZUdlbmVyYXRvcnMucHJp
CkBAIC0xNDgsNiArMTQ4LDcgQEAgSURMX0JJTkRJTkdTICs9IFwKICAgICBkb20vUHJvZ3Jlc3NF
dmVudC5pZGwgXAogICAgIGRvbS9SYW5nZUV4Y2VwdGlvbi5pZGwgXAogICAgIGRvbS9SYW5nZS5p
ZGwgXAorICAgIGRvbS9TdHJlYW0uaWRsIFwKICAgICBkb20vU3RyaW5nQ2FsbGJhY2suaWRsIFwK
ICAgICBkb20vVGV4dC5pZGwgXAogICAgIGRvbS9UZXh0RXZlbnQuaWRsIFwKQEAgLTI0Myw2ICsy
NDQsNyBAQCBJRExfQklORElOR1MgKz0gXAogICAgIGh0bWwvSFRNTERhdGFHcmlkUm93RWxlbWVu
dC5pZGwgXAogICAgIGh0bWwvSFRNTERhdGFMaXN0RWxlbWVudC5pZGwgXAogICAgIGh0bWwvSFRN
TERldGFpbHNFbGVtZW50LmlkbCBcCisgICAgaHRtbC9IVE1MRGV2aWNlRWxlbWVudC5pZGwgXAog
ICAgIGh0bWwvSFRNTERpcmVjdG9yeUVsZW1lbnQuaWRsIFwKICAgICBodG1sL0hUTUxEaXZFbGVt
ZW50LmlkbCBcCiAgICAgaHRtbC9IVE1MRExpc3RFbGVtZW50LmlkbCBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5jcHAKaW5kZXggOWFiMzdlYzNiMTNjYTgyYjFlNjA0NjQ3ZTJjMmU0ZDMyZjIyNjI0
YS4uM2M5ZDA1ZjFiYWFmM2ZkNmQ0MTBjNTNjZmRhZWUwYjU5NmY2NWE1ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLmNwcApAQCAtMTU0LDYgKzE1NCw3IEBACiAjaW5jbHVkZSAiSlNIVE1MRGF0
YUdyaWRSb3dFbGVtZW50LmNwcCIKICNpbmNsdWRlICJKU0hUTUxEYXRhTGlzdEVsZW1lbnQuY3Bw
IgogI2luY2x1ZGUgIkpTSFRNTERldGFpbHNFbGVtZW50LmNwcCIKKyNpbmNsdWRlICJKU0hUTUxE
ZXZpY2VFbGVtZW50LmNwcCIKICNpbmNsdWRlICJKU0hUTUxEaXJlY3RvcnlFbGVtZW50LmNwcCIK
ICNpbmNsdWRlICJKU0hUTUxEaXZFbGVtZW50LmNwcCIKICNpbmNsdWRlICJKU0hUTUxETGlzdEVs
ZW1lbnQuY3BwIgpAQCAtMjgzLDYgKzI4NCw3IEBACiAjaW5jbHVkZSAiSlNTUUxUcmFuc2FjdGlv
blN5bmNDYWxsYmFjay5jcHAiCiAjaW5jbHVkZSAiSlNTdG9yYWdlLmNwcCIKICNpbmNsdWRlICJK
U1N0b3JhZ2VFdmVudC5jcHAiCisjaW5jbHVkZSAiSlNTdHJlYW0uY3BwIgogI2luY2x1ZGUgIkpT
U3RyaW5nQ2FsbGJhY2suY3BwIgogI2luY2x1ZGUgIkpTU3R5bGVNZWRpYS5jcHAiCiAjaW5jbHVk
ZSAiSlNTdHlsZVNoZWV0LmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDQw
ZTQ5ZWQ5MmUwZjJmNTgwOGVkYzNjOTM2Mjg1YjY1MWYxMzEzNjAuLjA0Y2VhMzgwYWNiZDQ5ZjUz
NzE5ZDIzODcyNTdjMWNmNGQzM2I5MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpA
QCAtMjIwLDYgKzIyMCw3IEBAIERPTV9DTEFTU0VTID0gXAogICAgIEhUTUxEYXRhR3JpZFJvd0Vs
ZW1lbnQgXAogICAgIEhUTUxEYXRhTGlzdEVsZW1lbnQgXAogICAgIEhUTUxEZXRhaWxzRWxlbWVu
dCBcCisgICAgSFRNTERldmljZUVsZW1lbnQgXAogICAgIEhUTUxETGlzdEVsZW1lbnQgXAogICAg
IEhUTUxEaXJlY3RvcnlFbGVtZW50IFwKICAgICBIVE1MRGl2RWxlbWVudCBcCkBAIC0zNTEsNiAr
MzUyLDcgQEAgRE9NX0NMQVNTRVMgPSBcCiAgICAgU1FMVHJhbnNhY3Rpb25TeW5jQ2FsbGJhY2sg
XAogICAgIFN0b3JhZ2UgXAogICAgIFN0b3JhZ2VFdmVudCBcCisgICAgU3RyZWFtIFwKICAgICBT
dHJpbmdDYWxsYmFjayBcCiAgICAgU1ZHQUVsZW1lbnQgXAogICAgIFNWR0FsdEdseXBoRWxlbWVu
dCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDVlNTEzNjJjOTJjZjVlNzViMTAwZTk2OGY3ODky
NGYzNzJhN2JhOTcuLmQzOTE5NDRkNWM5M2JhMDBhYzIzNjFiN2E2Y2IzYTEyNzg5NjI2Y2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0zMTcsNiArMzE3LDggQEAgd2ViY29yZV9idWlsdF9zb3Vy
Y2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTERhdGFMaXN0RWxlbWVudC5o
IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTERldGFpbHNFbGVtZW50LmNwcCBcCiAJ
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxEZXRhaWxzRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTSFRNTERldmljZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTSFRNTERldmljZUVsZW1lbnQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU0hUTUxEaXJlY3RvcnlFbGVtZW50LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0hUTUxEaXJlY3RvcnlFbGVtZW50LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1M
RGl2RWxlbWVudC5jcHAgXApAQCAtNTM4LDYgKzU0MCw4IEBAIHdlYmNvcmVfYnVpbHRfc291cmNl
cyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NRTFRyYW5zYWN0aW9uLmggXAogCURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTUUxUcmFuc2FjdGlvblN5bmMuaCBcCiAJRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU1N0b3JhZ2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1N0
cmVhbS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTdHJlYW0uaCBcCiAJRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU1N0eWxlTWVkaWEuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTU3R5bGVNZWRpYS5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3R5bGVTaGVl
dC5jcHAgXApAQCAtNzk4LDYgKzgwMiw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MQ2FudmFzRWxlbWVudEN1c3RvbS5jcHAgXAogCVNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTENvbGxlY3Rpb25DdXN0b20uY3BwIFwKIAlT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxEYXRhR3JpZEVsZW1lbnRDdXN0b20uY3Bw
IFwKKwlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxEZXZpY2VFbGVtZW50Q3VzdG9t
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRG9jdW1lbnRDdXN0b20u
Y3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxFbGVtZW50Q3VzdG9tLmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRW1iZWRFbGVtZW50Q3VzdG9t
LmNwcCBcCkBAIC0xMTU4LDYgKzExNjMsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJj
ZS9XZWJDb3JlL2RvbS9EZWNvZGVkRGF0YURvY3VtZW50UGFyc2VyLmggXAogCVNvdXJjZS9XZWJD
b3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuaCBcCisJU291
cmNlL1dlYkNvcmUvZG9tL0RldmljZUVsZW1lbnQuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20v
RGV2aWNlRWxlbWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uQ2xpZW50
LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25Db250cm9sbGVyLmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkNvbnRyb2xsZXIuaCBcCkBAIC0xMTcyLDYg
KzExNzksOSBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9EZXZp
Y2VPcmllbnRhdGlvbkV2ZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVu
dGF0aW9uRXZlbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uLmgg
XAorCVNvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VTZXNzaW9uSWQuaCBcCisJU291cmNlL1dlYkNv
cmUvZG9tL0RldmljZVR5cGUuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlVHlwZS5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnRGcmFnbWVudC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZy
YWdtZW50LmggXApAQCAtMTMwOSw2ICsxMzE5LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlT
b3VyY2UvV2ViQ29yZS9kb20vU3RhdGljSGFzaFNldE5vZGVMaXN0LmggXAogCVNvdXJjZS9XZWJD
b3JlL2RvbS9TdGF0aWNOb2RlTGlzdC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TdGF0aWNO
b2RlTGlzdC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vU3RyZWFtLmNwcCBcCisJU291cmNlL1dl
YkNvcmUvZG9tL1N0cmVhbS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmggXAogCVNvdXJjZS9XZWJD
b3JlL2RvbS9TdHlsZUVsZW1lbnQuY3BwIFwKQEAgLTE2ODYsNiArMTY5OCw4IEBAIHdlYmNvcmVf
c291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGF0YUxpc3RFbGVtZW50Lmgg
XAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaCBcCisJU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRGV2aWNlRWxlbWVudC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldmlj
ZUVsZW1lbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGlyZWN0b3J5RWxlbWVudC5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpcmVjdG9yeUVsZW1lbnQuaCBcCiAJU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGl2RWxlbWVudC5jcHAgXApAQCAtMjIwMSw2ICsyMjE1LDEz
IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9Db29yZGluYXRl
cy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0NyeXB0by5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ3J5cHRvLmggXAorCVNvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ2xpZW50LmggXAor
CVNvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlTGlzdGVuZXIuaCBcCisJU291cmNlL1dlYkNvcmUv
cGFnZS9EZXZpY2VTZXNzaW9uLmggXAorCVNvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlU2Vzc2lv
bkNvbnRyb2xsZXIuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZVNlc3Npb25Db250
cm9sbGVyLmggXAorCVNvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlU2Vzc2lvblNwZWNpZmljLmNw
cCBcCisJU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VTZXNzaW9uU3BlY2lmaWMuaCBcCiAJU291
cmNlL1dlYkNvcmUvcGFnZS9ET01TZWxlY3Rpb24uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVNlbGVjdGlvbi5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNwcCBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKaW5kZXggMzg1MDljZWNhMTQxOGE3NGFhNzA3ODM0Y2YxYzI0MjZmMTJhMmVj
My4uMWIyYzlmYmZmNWQzMTNmMzRhYzFjYzM1ZWZlZGM0YjdiZjgzMDkzZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQpAQCAtODYsNiArODYsNyBAQAogICAgICAgICAgICAgJ2RvbS9SYW5nZS5pZGwnLAogICAg
ICAgICAgICAgJ2RvbS9SYW5nZUV4Y2VwdGlvbi5pZGwnLAogICAgICAgICAgICAgJ2RvbS9SZXF1
ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5pZGwnLAorICAgICAgICAgICAgJ2RvbS9TdHJlYW0u
aWRsJywKICAgICAgICAgICAgICdkb20vU3RyaW5nQ2FsbGJhY2suaWRsJywKICAgICAgICAgICAg
ICdkb20vVGV4dC5pZGwnLAogICAgICAgICAgICAgJ2RvbS9UZXh0RXZlbnQuaWRsJywKQEAgLTE1
NCw2ICsxNTUsNyBAQAogICAgICAgICAgICAgJ2h0bWwvSFRNTERhdGFHcmlkUm93RWxlbWVudC5p
ZGwnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTERhdGFMaXN0RWxlbWVudC5pZGwnLAogICAgICAg
ICAgICAgJ2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmlkbCcsCisgICAgICAgICAgICAnaHRtbC9I
VE1MRGV2aWNlRWxlbWVudC5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTERpcmVjdG9yeUVs
ZW1lbnQuaWRsJywKICAgICAgICAgICAgICdodG1sL0hUTUxEaXZFbGVtZW50LmlkbCcsCiAgICAg
ICAgICAgICAnaHRtbC9IVE1MRG9jdW1lbnQuaWRsJywKQEAgLTcxMSw2ICs3MTMsNyBAQAogICAg
ICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTSFRNTENhbnZhc0VsZW1lbnRDdXN0b20uY3BwJywKICAg
ICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0hUTUxDb2xsZWN0aW9uQ3VzdG9tLmNwcCcsCiAgICAg
ICAgICAgICAnYmluZGluZ3MvanMvSlNIVE1MRGF0YUdyaWRFbGVtZW50Q3VzdG9tLmNwcCcsCisg
ICAgICAgICAgICAnYmluZGluZ3MvanMvSlNIVE1MRGV2aWNlRWxlbWVudEN1c3RvbS5jcHAnLAog
ICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTSFRNTERvY3VtZW50Q3VzdG9tLmNwcCcsCiAgICAg
ICAgICAgICAnYmluZGluZ3MvanMvSlNIVE1MRWxlbWVudEN1c3RvbS5jcHAnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL2pzL0pTSFRNTEVtYmVkRWxlbWVudEN1c3RvbS5jcHAnLApAQCAtMTA2Myw2
ICsxMDY2LDcgQEAKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MQ2FudmFz
RWxlbWVudEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhU
TUxDb2xsZWN0aW9uQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9t
L1Y4SFRNTERhdGFHcmlkRWxlbWVudEN1c3RvbS5jcHAnLAorICAgICAgICAgICAgJ2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOEhUTUxEZXZpY2VFbGVtZW50Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAn
YmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTERvY3VtZW50Q3VzdG9tLmNwcCcsCiAgICAgICAgICAg
ICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTEVsZW1lbnRDdXN0b20uY3BwJywKICAgICAgICAg
ICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MRm9ybUVsZW1lbnRDdXN0b20uY3BwJywKQEAg
LTEzNTEsNiArMTM1NSw4IEBACiAgICAgICAgICAgICAnZG9tL0RhdGFzZXRET01TdHJpbmdNYXAu
aCcsCiAgICAgICAgICAgICAnZG9tL0RlY29kZWREYXRhRG9jdW1lbnRQYXJzZXIuY3BwJywKICAg
ICAgICAgICAgICdkb20vRGVjb2RlZERhdGFEb2N1bWVudFBhcnNlci5oJywKKyAgICAgICAgICAg
ICdkb20vRGV2aWNlRWxlbWVudC5jcHAnLAorICAgICAgICAgICAgJ2RvbS9EZXZpY2VFbGVtZW50
LmgnLAogICAgICAgICAgICAgJ2RvbS9EZXZpY2VNb3Rpb25DbGllbnQuaCcsCiAgICAgICAgICAg
ICAnZG9tL0RldmljZU1vdGlvbkNvbnRyb2xsZXIuY3BwJywKICAgICAgICAgICAgICdkb20vRGV2
aWNlTW90aW9uQ29udHJvbGxlci5oJywKQEAgLTEzNjUsNiArMTM3MSw5IEBACiAgICAgICAgICAg
ICAnZG9tL0RldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5oJywKICAgICAgICAgICAgICdkb20v
RGV2aWNlT3JpZW50YXRpb25FdmVudC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9EZXZpY2VPcmll
bnRhdGlvbkV2ZW50LmgnLAorICAgICAgICAgICAgJ2RvbS9EZXZpY2VTZXNzaW9uSWQuaCcsCisg
ICAgICAgICAgICAnZG9tL0RldmljZVR5cGUuY3BwJywKKyAgICAgICAgICAgICdkb20vRGV2aWNl
VHlwZS5oJywKICAgICAgICAgICAgICdkb20vRG9jdW1lbnQuY3BwJywKICAgICAgICAgICAgICdk
b20vRG9jdW1lbnQuaCcsCiAgICAgICAgICAgICAnZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwJywK
QEAgLTE0OTksNiArMTUwOCw4IEBACiAgICAgICAgICAgICAnZG9tL1N0YXRpY05vZGVMaXN0Lmgn
LAogICAgICAgICAgICAgJ2RvbS9TdGF0aWNTdHJpbmdMaXN0LmNwcCcsCiAgICAgICAgICAgICAn
ZG9tL1N0YXRpY1N0cmluZ0xpc3QuaCcsCisgICAgICAgICAgICAnZG9tL1N0cmVhbS5jcHAnLAor
ICAgICAgICAgICAgJ2RvbS9TdHJlYW0uaCcsCiAgICAgICAgICAgICAnZG9tL1N0cmluZ0NhbGxi
YWNrLmNwcCcsCiAgICAgICAgICAgICAnZG9tL1N0cmluZ0NhbGxiYWNrLmgnLAogICAgICAgICAg
ICAgJ2RvbS9TdHlsZUVsZW1lbnQuY3BwJywKQEAgLTE4NTcsNiArMTg2OCw4IEBACiAgICAgICAg
ICAgICAnaHRtbC9IVE1MRGF0YUxpc3RFbGVtZW50LmgnLAogICAgICAgICAgICAgJ2h0bWwvSFRN
TERldGFpbHNFbGVtZW50LmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MRGV0YWlsc0VsZW1l
bnQuaCcsCisgICAgICAgICAgICAnaHRtbC9IVE1MRGV2aWNlRWxlbWVudC5jcHAnLAorICAgICAg
ICAgICAgJ2h0bWwvSFRNTERldmljZUVsZW1lbnQuaCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1M
RGlyZWN0b3J5RWxlbWVudC5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTERpcmVjdG9yeUVs
ZW1lbnQuaCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MRGl2RWxlbWVudC5jcHAnLApAQCAtMjQx
Myw2ICsyNDI2LDEzIEBACiAgICAgICAgICAgICAncGFnZS9ET01UaW1lci5oJywKICAgICAgICAg
ICAgICdwYWdlL0RPTVdpbmRvdy5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvRE9NV2luZG93Lmgn
LAorICAgICAgICAgICAgJ3BhZ2UvRGV2aWNlQ2xpZW50LmgnLAorICAgICAgICAgICAgJ3BhZ2Uv
RGV2aWNlTGlzdGVuZXIuaCcsCisgICAgICAgICAgICAncGFnZS9EZXZpY2VTZXNzaW9uLmgnLAor
ICAgICAgICAgICAgJ3BhZ2UvRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIuY3BwJywKKyAgICAgICAg
ICAgICdwYWdlL0RldmljZVNlc3Npb25Db250cm9sbGVyLmgnLAorICAgICAgICAgICAgJ3BhZ2Uv
RGV2aWNlU2Vzc2lvblNwZWNpZmljLmNwcCcsCisgICAgICAgICAgICAncGFnZS9EZXZpY2VTZXNz
aW9uU3BlY2lmaWMuaCcsCiAgICAgICAgICAgICAncGFnZS9EcmFnQWN0aW9ucy5oJywKICAgICAg
ICAgICAgICdwYWdlL0RyYWdDbGllbnQuaCcsCiAgICAgICAgICAgICAncGFnZS9EcmFnQ29udHJv
bGxlci5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCAwOGYwNjM2MWQ1NTE0ZGExZWE5NTFmODY1YmQ1
MzRiMWY5ZjU1NGY0Li41MTY2Y2I1MDY4MDhjYmE5MGUyMjViNDZhNTcwODcxMTQxNzBkMTg3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnBybwpAQCAtMzA3MSw2ICszMDcxLDM2IEBAIGNvbnRhaW5zKERFRklORVMsIEVO
QUJMRV9HRU9MT0NBVElPTj0xKSB7CiAgICAgfQogfQogCitjb250YWlucyhERUZJTkVTLCBFTkFC
TEVfREVWSUNFX0VMRU1FTlQ9MSkgeworICAgIEhFQURFUlMgKz0gXAorICAgICAgICBkb20vRGV2
aWNlRWxlbWVudC5oIFwKKyAgICAgICAgZG9tL0RldmljZVNlc3Npb25JZC5oIFwKKyAgICAgICAg
ZG9tL0RldmljZVR5cGUuaCBcCisgICAgICAgIGRvbS9TdHJlYW0uaCBcCisgICAgICAgIGh0bWwv
SFRNTERldmljZUVsZW1lbnQuaCBcCisgICAgICAgIHBhZ2UvRGV2aWNlQ2xpZW50LmggXAorICAg
ICAgICBwYWdlL0RldmljZUxpc3RlbmVyLmggXAorICAgICAgICBwYWdlL0RldmljZVNlc3Npb24u
aCBcCisgICAgICAgIHBhZ2UvRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIuaCBcCisgICAgICAgIHBh
Z2UvRGV2aWNlU2Vzc2lvblNwZWNpZmljLmgKKworICAgIFNPVVJDRVMgKz0gXAorICAgICAgICBk
b20vRGV2aWNlRWxlbWVudC5jcHAgXAorICAgICAgICBkb20vRGV2aWNlVHlwZS5jcHAgXAorICAg
ICAgICBkb20vU3RyZWFtLmNwcCBcCisgICAgICAgIGh0bWwvSFRNTERldmljZUVsZW1lbnQuY3Bw
IFwKKyAgICAgICAgcGFnZS9EZXZpY2VTZXNzaW9uQ29udHJvbGxlci5jcHAgXAorICAgICAgICBw
YWdlL0RldmljZVNlc3Npb25TcGVjaWZpYy5jcHAKKworICAgIHY4IHsKKyAgICAgICAgU09VUkNF
UyArPSBcCisgICAgICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MRGV2aWNlRWxlbWVu
dEN1c3RvbS5jcHAKKyAgICB9IGVsc2UgeworICAgICAgICBTT1VSQ0VTICs9IFwKKyAgICAgICAg
ICAgIGJpbmRpbmdzL2pzL0pTSFRNTERldmljZUVsZW1lbnRDdXN0b20uY3BwCisgICAgfQorfQor
CiBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfU1ZHPTEpIHsKICAgICAhdjggewogICAgICAgICBT
T1VSQ0VTICs9IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2oKaW5kZXggZDliYzc3MTYwYzhhMGQ0NGY1Yzg5YTBmZGNmZWNlNTVhZmViYWIzNS4uYjllNzQz
MDk0ZDc1YmUxZDFiZWQ1NmI5ZDUzYjk3OGI4M2Q5OTcwOCAxMDA3NTUKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTY4MzAsNiArNjgzMCw2MiBAQAogCQkJ
CT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRp
b25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSFRNTERldmlj
ZUVsZW1lbnQuY3BwIgorCQkJCT4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0i
RGVidWd8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJ
CTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVh
c2V8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxU
b29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0Nh
aXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4K
KwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0i
UmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
IgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJ
CQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJ
CQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
CisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJ
CS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJ
CQkJTmFtZT0iUmVsZWFzZV9MVENHfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJ
CQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJ
CQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFt
ZSlcRGVyaXZlZFNvdXJjZXNcSlNIVE1MRGV2aWNlRWxlbWVudC5oIgorCQkJCT4KKwkJCTwvRmls
ZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilc
b2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSFRNTERpcmVjdG9yeUVsZW1lbnQu
Y3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KQEAgLTEzNTU4LDYgKzEzNjE0LDYy
IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29u
ZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcV2ViQ29yZVxEZXJpdmVkU291cmNlc1xKU1N0cmVhbS5j
cHAiCisJCQkJPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4z
MiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIK
KwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRl
fFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9v
bAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0Nh
aXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4K
KwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0i
RGVidWdfQWxsfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgor
CQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJS
ZWxlYXNlX0xUQ0d8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+
CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZl
UGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialxXZWJDb3JlXERlcml2ZWRTb3VyY2Vz
XEpTU3RyZWFtLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBh
dGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNv
dXJjZXNcSlNTdHlsZU1lZGlhLmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCkBA
IC0yNDU0Miw2ICsyNDY1NCwzNCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxwYWdlXERldmljZUNsaWVudC5oIgorCQkJCT4KKwkJCTwvRmlsZT4K
KwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXERldmljZUxpc3RlbmVyLmgiCisJ
CQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcRGV2
aWNlU2Vzc2lvbi5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxwYWdlXERldmljZVNlc3Npb25Db250cm9sbGVyLmNwcCIKKwkJCQk+CisJCQk8L0Zp
bGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxEZXZpY2VTZXNzaW9uQ29u
dHJvbGxlci5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRo
PSIuLlxwYWdlXERldmljZVNlc3Npb25TcGVjaWZpYy5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgor
CQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcRGV2aWNlU2Vzc2lvblNwZWNpZmlj
LmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBh
Z2VcRE9NU2VsZWN0aW9uLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkBAIC00Mjg0Miw2ICs0Mjk4
Miw2MiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIu
Llxkb21cRGV2aWNlRWxlbWVudC5jcHAiCisJCQkJPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgor
CQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJ
CQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+
CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJ
TmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJ
CT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFt
ZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJ
CQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgor
CQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxl
clRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmln
dXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0xUQ0d8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQk8L0ZpbGU+CisJ
CQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXERldmljZUVsZW1lbnQuaCIKKwkJCQk+
CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXERldmljZU1v
dGlvbkNsaWVudC5oIgogCQkJCT4KIAkJCTwvRmlsZT4KQEAgLTQzMTg2LDYgKzQzMzgyLDY2IEBA
CiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxE
ZXZpY2VTZXNzaW9uSWQuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0
aXZlUGF0aD0iLi5cZG9tXERldmljZVR5cGUuY3BwIgorCQkJCT4KKwkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgor
CQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9u
CisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
IgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJ
CQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJ
CQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZp
bGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9MVENHfFdpbjMyIgorCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJPC9G
aWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxEZXZpY2VUeXBlLmgiCisJ
CQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxEb2N1
bWVudC5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpAQCAtNDY0NzgsNiArNDY3
MzQsNjIgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0i
Li5cZG9tXFN0cmVhbS5jcHAiCisJCQkJPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlO
YW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4K
KwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0i
UmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJ
CQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVi
dWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJ
CQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4K
KwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlO
YW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
CisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIK
KwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgorCQkJCQlOYW1lPSJSZWxlYXNlX0xUQ0d8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQk8L0ZpbGU+CisJCQk8Rmls
ZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFN0cmVhbS5oIgorCQkJCT4KKwkJCTwvRmlsZT4K
KwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cU3R5bGVkRWxlbWVudC5jcHAiCiAJ
CQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpAQCAtNTIyMjYsNiArNTI1MzgsNjIgQEAKIAkJ
CQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxIVE1M
RGV2aWNlRWxlbWVudC5jcHAiCisJCQkJPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlO
YW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4K
KwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0i
UmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJ
CQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVi
dWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJ
CQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4K
KwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlO
YW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
CisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIK
KwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgorCQkJCQlOYW1lPSJSZWxlYXNlX0xUQ0d8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQk8L0ZpbGU+CisJCQk8Rmls
ZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxIVE1MRGV2aWNlRWxlbWVudC5oIgorCQkJCT4K
KwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXEhUTUxEaXJl
Y3RvcnlFbGVtZW50LmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCkBAIC01OTU4
MSw2ICs1OTk0OSw1OCBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgogCQkJCTwvRmlsZT4K
IAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTSFRNTERldmlj
ZUVsZW1lbnRDdXN0b20uY3BwIgorCQkJCQk+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJ
CQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJ
CQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJ
CS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgor
CQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
IgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgor
CQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0
aW9uCisJCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2lu
MzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29s
CisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iRGVidWdf
QWxsfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJ
CQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9
IlJlbGVhc2VfTFRDR3xXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJ
CQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJ
Lz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU0hUTUxEb2N1bWVudEN1c3RvbS5jcHAi
CiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZDljZTJlYTAxNzBjNGFhMGZi
NDM5YzI2ZThkNGYzNTczN2RlMjY0My4uNmNjNGQ0M2I1ZGIyNDk4NGQ2ZDQyMDgzNzVlN2RiOTE1
MTVkNDY3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMTU1NCw2ICsxNTU0LDI3IEBACiAJCTc1MEQwMjkzMTFEMEU3RjMwMEJE
MUIyNyAvKiBSZW5kZXJJbnB1dFNwZWVjaC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3NTBEMDI5MTExRDBFN0YzMDBCRDFCMjcgLyogUmVuZGVySW5w
dXRTcGVlY2guY3BwICovOyB9OwogCQk3NTBEMDI5NDExRDBFN0YzMDBCRDFCMjcgLyogUmVuZGVy
SW5wdXRTcGVlY2guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDc1MEQwMjkyMTFEMEU3RjMwMEJEMUIyNyAvKiBSZW5kZXJJbnB1dFNwZWVjaC5oICovOyB9
OwogCQk3NTBEMDJDMTExRDBFRTdEMDBCRDFCMjcgLyogaW5wdXRTcGVlY2gudGlmZiBpbiBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzUwRDAyQzAxMUQwRUU3
RDAwQkQxQjI3IC8qIGlucHV0U3BlZWNoLnRpZmYgKi87IH07CisJCTc1MjlCNzcwMTMyNjZBMUEw
MDI0N0QyOSAvKiBIVE1MRGV2aWNlRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTI5Qjc2RDEzMjY2QTFBMDAyNDdEMjkgLyogSFRNTERl
dmljZUVsZW1lbnQuY3BwICovOyB9OworCQk3NTI5Qjc3MTEzMjY2QTFBMDAyNDdEMjkgLyogSFRN
TERldmljZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDc1MjlCNzZFMTMyNjZBMUEwMDI0N0QyOSAvKiBIVE1MRGV2aWNlRWxlbWVudC5oICov
OyB9OworCQk3NTI5QkMxMzEzMjY2Q0E4MDAyNDdEMjkgLyogSlNIVE1MRGV2aWNlRWxlbWVudC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTI5QkMx
MTEzMjY2Q0E4MDAyNDdEMjkgLyogSlNIVE1MRGV2aWNlRWxlbWVudC5jcHAgKi87IH07CisJCTc1
MjlCQzE0MTMyNjZDQTgwMDI0N0QyOSAvKiBKU0hUTUxEZXZpY2VFbGVtZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTI5QkMxMjEzMjY2Q0E4MDAy
NDdEMjkgLyogSlNIVE1MRGV2aWNlRWxlbWVudC5oICovOyB9OworCQk3NTI5QkQ1MDEzMjY2REUy
MDAyNDdEMjkgLyogSlNIVE1MRGV2aWNlRWxlbWVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTI5QkQ0RjEzMjY2REUyMDAyNDdEMjkg
LyogSlNIVE1MRGV2aWNlRWxlbWVudEN1c3RvbS5jcHAgKi87IH07CisJCTc1MjlCRDU1MTMyNjZF
MDMwMDI0N0QyOSAvKiBEZXZpY2VFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1MjlCRDUyMTMyNjZFMDMwMDI0N0QyOSAvKiBEZXZpY2VF
bGVtZW50LmNwcCAqLzsgfTsKKwkJNzUyOUJENTYxMzI2NkUwMzAwMjQ3RDI5IC8qIERldmljZUVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1
MjlCRDUzMTMyNjZFMDMwMDI0N0QyOSAvKiBEZXZpY2VFbGVtZW50LmggKi87IH07CisJCTc1MjlC
RDU0MTMyNjZFMDMwMDI0N0QyOSAvKiBEZXZpY2VTZXNzaW9uSWQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1MjlCRDUxMTMyNjZFMDMwMDI0N0QyOSAv
KiBEZXZpY2VTZXNzaW9uSWQuaCAqLzsgfTsKKwkJNzUyOUJENTkxMzI2NkUxMzAwMjQ3RDI5IC8q
IERldmljZVR5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNzUyOUJENTcxMzI2NkUxMzAwMjQ3RDI5IC8qIERldmljZVR5cGUuY3BwICovOyB9Owor
CQk3NTI5QkQ1QTEzMjY2RTEzMDAyNDdEMjkgLyogRGV2aWNlVHlwZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzUyOUJENTgxMzI2NkUxMzAwMjQ3RDI5
IC8qIERldmljZVR5cGUuaCAqLzsgfTsKKwkJNzUyOUJENjExMzI2NkUzNTAwMjQ3RDI5IC8qIFN0
cmVhbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
NTI5QkQ1QjEzMjY2RTM1MDAyNDdEMjkgLyogU3RyZWFtLmNwcCAqLzsgfTsKKwkJNzUyOUJENjIx
MzI2NkUzNTAwMjQ3RDI5IC8qIFN0cmVhbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzUyOUJENUMxMzI2NkUzNTAwMjQ3RDI5IC8qIFN0cmVhbS5oICov
OyB9OworCQk3NTI5QkQ4OTEzMjY2RTc2MDAyNDdEMjkgLyogRGV2aWNlQ2xpZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTI5QkQ4MjEzMjY2RTc2
MDAyNDdEMjkgLyogRGV2aWNlQ2xpZW50LmggKi87IH07CisJCTc1MjlCRDhGMTMyNjZFNzYwMDI0
N0QyOSAvKiBEZXZpY2VMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNzUyOUJEODgxMzI2NkU3NjAwMjQ3RDI5IC8qIERldmljZUxpc3RlbmVy
LmggKi87IH07CisJCTc1MjlCRDhBMTMyNjZFNzYwMDI0N0QyOSAvKiBEZXZpY2VTZXNzaW9uLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTI5QkQ4MzEz
MjY2RTc2MDAyNDdEMjkgLyogRGV2aWNlU2Vzc2lvbi5oICovOyB9OworCQk3NTI5QkQ4QjEzMjY2
RTc2MDAyNDdEMjkgLyogRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzUyOUJEODQxMzI2NkU3NjAwMjQ3RDI5
IC8qIERldmljZVNlc3Npb25Db250cm9sbGVyLmNwcCAqLzsgfTsKKwkJNzUyOUJEOEMxMzI2NkU3
NjAwMjQ3RDI5IC8qIERldmljZVNlc3Npb25Db250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTI5QkQ4NTEzMjY2RTc2MDAyNDdEMjkgLyog
RGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIuaCAqLzsgfTsKKwkJNzUyOUJEOEQxMzI2NkU3NjAwMjQ3
RDI5IC8qIERldmljZVNlc3Npb25TcGVjaWZpYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTI5QkQ4NjEzMjY2RTc2MDAyNDdEMjkgLyogRGV2aWNl
U2Vzc2lvblNwZWNpZmljLmNwcCAqLzsgfTsKKwkJNzUyOUJEOEUxMzI2NkU3NjAwMjQ3RDI5IC8q
IERldmljZVNlc3Npb25TcGVjaWZpYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNzUyOUJEODcxMzI2NkU3NjAwMjQ3RDI5IC8qIERldmljZVNlc3Npb25T
cGVjaWZpYy5oICovOyB9OworCQk3NTI5QkQ5QzEzMjY2RjI2MDAyNDdEMjkgLyogSlNTdHJlYW0u
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzUyOUJE
OTgxMzI2NkYyNjAwMjQ3RDI5IC8qIEpTU3RyZWFtLmNwcCAqLzsgfTsKKwkJNzUyOUJEOUQxMzI2
NkYyNjAwMjQ3RDI5IC8qIEpTU3RyZWFtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3NTI5QkQ5OTEzMjY2RjI2MDAyNDdEMjkgLyogSlNTdHJlYW0uaCAq
LzsgfTsKIAkJNzUzNUJDOTQxMjAyMENGRjAwMzdFQzQ1IC8qIFNwZWVjaElucHV0Q2xpZW50TW9j
ay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTM1
QkM5MjEyMDIwQ0ZGMDAzN0VDNDUgLyogU3BlZWNoSW5wdXRDbGllbnRNb2NrLmNwcCAqLzsgfTsK
IAkJNzUzNUJDOTUxMjAyMENGRjAwMzdFQzQ1IC8qIFNwZWVjaElucHV0Q2xpZW50TW9jay5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzUzNUJDOTMxMjAy
MENGRjAwMzdFQzQ1IC8qIFNwZWVjaElucHV0Q2xpZW50TW9jay5oICovOyB9OwogCQk3NTQxMzNB
ODEwMkUwMEU4MDAwNzVEMDAgLyogSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU0MTMzQTcxMDJFMDBFODAwMDc1
RDAwIC8qIEluc3BlY3RvclRpbWVsaW5lQWdlbnQuaCAqLzsgfTsKQEAgLTgwNDAsNiArODA2MSwy
OSBAQAogCQk3NTBEMDI5MTExRDBFN0YzMDBCRDFCMjcgLyogUmVuZGVySW5wdXRTcGVlY2guY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVySW5wdXRTcGVlY2gu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTBEMDI5MjExRDBFN0YzMDBCRDFC
MjcgLyogUmVuZGVySW5wdXRTcGVlY2guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVuZGVySW5wdXRTcGVlY2guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzUw
RDAyQzAxMUQwRUU3RDAwQkQxQjI3IC8qIGlucHV0U3BlZWNoLnRpZmYgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS50aWZmOyBwYXRoID0gaW5w
dXRTcGVlY2gudGlmZjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzUyOUI3NkQxMzI2
NkExQTAwMjQ3RDI5IC8qIEhUTUxEZXZpY2VFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxEZXZpY2VFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNzUyOUI3NkUxMzI2NkExQTAwMjQ3RDI5IC8qIEhUTUxEZXZpY2VFbGVt
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxEZXZpY2VFbGVtZW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1MjlCNzZGMTMyNjZBMUEwMDI0N0Qy
OSAvKiBIVE1MRGV2aWNlRWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTERl
dmljZUVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTI5QkMxMTEz
MjY2Q0E4MDAyNDdEMjkgLyogSlNIVE1MRGV2aWNlRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxEZXZpY2VFbGVtZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzUyOUJDMTIxMzI2NkNBODAwMjQ3RDI5IC8qIEpTSFRNTERl
dmljZUVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1MRGV2
aWNlRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTI5QkQ0RjEzMjY2
REUyMDAyNDdEMjkgLyogSlNIVE1MRGV2aWNlRWxlbWVudEN1c3RvbS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxEZXZpY2VFbGVtZW50Q3VzdG9tLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzUyOUJENTIxMzI2NkUwMzAwMjQ3RDI5IC8q
IERldmljZUVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
RGV2aWNlRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1MjlCRDUz
MTMyNjZFMDMwMDI0N0QyOSAvKiBEZXZpY2VFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IERldmljZUVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNzUyOUJENTExMzI2NkUwMzAwMjQ3RDI5IC8qIERldmljZVNlc3Npb25JZC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZXZpY2VTZXNzaW9uSWQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNzUyOUJENTcxMzI2NkUxMzAwMjQ3RDI5IC8qIERldmljZVR5cGUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGV2aWNlVHlwZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1MjlCRDU4MTMyNjZFMTMwMDI0N0QyOSAv
KiBEZXZpY2VUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERldmljZVR5
cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzUyOUJENUIxMzI2NkUzNTAwMjQ3
RDI5IC8qIFN0cmVhbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
dHJlYW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTI5QkQ1QzEzMjY2RTM1
MDAyNDdEMjkgLyogU3RyZWFtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0
cmVhbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTI5QkQ1RDEzMjY2RTM1MDAy
NDdEMjkgLyogU3RyZWFtLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTdHJlYW0uaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTI5QkQ4MjEzMjY2RTc2MDAyNDdEMjkgLyog
RGV2aWNlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERldmljZUNs
aWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTI5QkQ4ODEzMjY2RTc2MDAy
NDdEMjkgLyogRGV2aWNlTGlzdGVuZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRGV2aWNlTGlzdGVuZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzUyOUJE
ODMxMzI2NkU3NjAwMjQ3RDI5IC8qIERldmljZVNlc3Npb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRGV2aWNlU2Vzc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk3NTI5QkQ4NDEzMjY2RTc2MDAyNDdEMjkgLyogRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGV2aWNlU2Vzc2lvbkNv
bnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTI5QkQ4NTEzMjY2
RTc2MDAyNDdEMjkgLyogRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNzUyOUJEODYxMzI2NkU3NjAwMjQ3RDI5IC8qIERldmljZVNlc3Np
b25TcGVjaWZpYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEZXZp
Y2VTZXNzaW9uU3BlY2lmaWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTI5
QkQ4NzEzMjY2RTc2MDAyNDdEMjkgLyogRGV2aWNlU2Vzc2lvblNwZWNpZmljLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERldmljZVNlc3Npb25TcGVjaWZpYy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk3NTI5QkQ5ODEzMjY2RjI2MDAyNDdEMjkgLyogSlNTdHJl
YW0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTdHJlYW0uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTI5QkQ5OTEzMjY2RjI2MDAyNDdEMjkg
LyogSlNTdHJlYW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTdHJlYW0u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzUzNUJDOTIxMjAyMENGRjAwMzdFQzQ1
IC8qIFNwZWVjaElucHV0Q2xpZW50TW9jay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBTcGVlY2hJbnB1dENsaWVudE1vY2suY3BwOyBwYXRoID0gbW9jay9TcGVlY2hJ
bnB1dENsaWVudE1vY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTM1QkM5
MzEyMDIwQ0ZGMDAzN0VDNDUgLyogU3BlZWNoSW5wdXRDbGllbnRNb2NrLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFNwZWVjaElucHV0Q2xpZW50TW9jay5oOyBwYXRoID0gbW9j
ay9TcGVlY2hJbnB1dENsaWVudE1vY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NzU0MTMzQTcxMDJFMDBFODAwMDc1RDAwIC8qIEluc3BlY3RvclRpbWVsaW5lQWdlbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQwNDAsNiArMTQwODQsMTMgQEAKIAkJCQkx
NDAzQjk5NjA5RUIxM0FGMDA3OTdDN0YgLyogRE9NV2luZG93LmNwcCAqLywKIAkJCQkxNDAzQjk5
NTA5RUIxM0FGMDA3OTdDN0YgLyogRE9NV2luZG93LmggKi8sCiAJCQkJMTQwM0I5MEMwOUVCMTI0
NTAwNzk3QzdGIC8qIERPTVdpbmRvdy5pZGwgKi8sCisJCQkJNzUyOUJEODIxMzI2NkU3NjAwMjQ3
RDI5IC8qIERldmljZUNsaWVudC5oICovLAorCQkJCTc1MjlCRDg4MTMyNjZFNzYwMDI0N0QyOSAv
KiBEZXZpY2VMaXN0ZW5lci5oICovLAorCQkJCTc1MjlCRDgzMTMyNjZFNzYwMDI0N0QyOSAvKiBE
ZXZpY2VTZXNzaW9uLmggKi8sCisJCQkJNzUyOUJEODQxMzI2NkU3NjAwMjQ3RDI5IC8qIERldmlj
ZVNlc3Npb25Db250cm9sbGVyLmNwcCAqLywKKwkJCQk3NTI5QkQ4NTEzMjY2RTc2MDAyNDdEMjkg
LyogRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIuaCAqLywKKwkJCQk3NTI5QkQ4NjEzMjY2RTc2MDAy
NDdEMjkgLyogRGV2aWNlU2Vzc2lvblNwZWNpZmljLmNwcCAqLywKKwkJCQk3NTI5QkQ4NzEzMjY2
RTc2MDAyNDdEMjkgLyogRGV2aWNlU2Vzc2lvblNwZWNpZmljLmggKi8sCiAJCQkJQTcxODc2MEQw
QjJBMTIwMTAwQTE2RUNFIC8qIERyYWdBY3Rpb25zLmggKi8sCiAJCQkJQTdDQTU5NjIwQjI3QzFG
MjAwRkEwMjFEIC8qIERyYWdDbGllbnQuaCAqLywKIAkJCQlBN0NBNTk1QzBCMjdCRDlFMDBGQTAy
MUQgLyogRHJhZ0NvbnRyb2xsZXIuY3BwICovLApAQCAtMTU2MjQsNiArMTU2NzUsOSBAQAogCQkJ
CUQzNTlENzg2MTI5Q0EyNzEwMDA2RTVEMiAvKiBIVE1MRGV0YWlsc0VsZW1lbnQuY3BwICovLAog
CQkJCUQzNTlENzg3MTI5Q0EyNzEwMDA2RTVEMiAvKiBIVE1MRGV0YWlsc0VsZW1lbnQuaCAqLywK
IAkJCQlEMzU5RDc4ODEyOUNBMjcxMDAwNkU1RDIgLyogSFRNTERldGFpbHNFbGVtZW50LmlkbCAq
LywKKwkJCQk3NTI5Qjc2RDEzMjY2QTFBMDAyNDdEMjkgLyogSFRNTERldmljZUVsZW1lbnQuY3Bw
ICovLAorCQkJCTc1MjlCNzZFMTMyNjZBMUEwMDI0N0QyOSAvKiBIVE1MRGV2aWNlRWxlbWVudC5o
ICovLAorCQkJCTc1MjlCNzZGMTMyNjZBMUEwMDI0N0QyOSAvKiBIVE1MRGV2aWNlRWxlbWVudC5p
ZGwgKi8sCiAJCQkJQThFQTc5RUQwQTE5MTZERjAwQThFRjVGIC8qIEhUTUxEaXJlY3RvcnlFbGVt
ZW50LmNwcCAqLywKIAkJCQlBOEVBNzlFRTBBMTkxNkRGMDBBOEVGNUYgLyogSFRNTERpcmVjdG9y
eUVsZW1lbnQuaCAqLywKIAkJCQkxQTg1QjFEOTBBMUIyM0E0MDBEOEM4N0MgLyogSFRNTERpcmVj
dG9yeUVsZW1lbnQuaWRsICovLApAQCAtMTYxNzIsNiArMTYyMjYsOCBAQAogCQkJCUY1QzA0MUUy
MEZGQ0E5NkQwMDgzOUQ0QSAvKiBKU0hUTUxEYXRhTGlzdEVsZW1lbnQuaCAqLywKIAkJCQlEMzU5
RDhCQzEyOUNBNTVDMDAwNkU1RDIgLyogSlNIVE1MRGV0YWlsc0VsZW1lbnQuY3BwICovLAogCQkJ
CUQzNTlEOEJEMTI5Q0E1NUMwMDA2RTVEMiAvKiBKU0hUTUxEZXRhaWxzRWxlbWVudC5oICovLAor
CQkJCTc1MjlCQzExMTMyNjZDQTgwMDI0N0QyOSAvKiBKU0hUTUxEZXZpY2VFbGVtZW50LmNwcCAq
LywKKwkJCQk3NTI5QkMxMjEzMjY2Q0E4MDAyNDdEMjkgLyogSlNIVE1MRGV2aWNlRWxlbWVudC5o
ICovLAogCQkJCTFBODVCMUUwMEExQjI0MDUwMEQ4Qzg3QyAvKiBKU0hUTUxEaXJlY3RvcnlFbGVt
ZW50LmNwcCAqLywKIAkJCQkxQTg1QjFFMTBBMUIyNDA1MDBEOEM4N0MgLyogSlNIVE1MRGlyZWN0
b3J5RWxlbWVudC5oICovLAogCQkJCTFBODVCMkI0MEExQjJBQzcwMEQ4Qzg3QyAvKiBKU0hUTUxE
aXZFbGVtZW50LmNwcCAqLywKQEAgLTE2NzU4LDYgKzE2ODE0LDggQEAKIAkJCQk3NTQxNUQ1MjEy
OUFCMkQyMDAzQUQ2NjkgLyogSlNTcGVlY2hJbnB1dFJlc3VsdC5oICovLAogCQkJCTc1NDE1RDUz
MTI5QUIyRDIwMDNBRDY2OSAvKiBKU1NwZWVjaElucHV0UmVzdWx0TGlzdC5jcHAgKi8sCiAJCQkJ
NzU0MTVENTQxMjlBQjJEMjAwM0FENjY5IC8qIEpTU3BlZWNoSW5wdXRSZXN1bHRMaXN0LmggKi8s
CisJCQkJNzUyOUJEOTgxMzI2NkYyNjAwMjQ3RDI5IC8qIEpTU3RyZWFtLmNwcCAqLywKKwkJCQk3
NTI5QkQ5OTEzMjY2RjI2MDAyNDdEMjkgLyogSlNTdHJlYW0uaCAqLywKIAkJCQk2NURGMzFFRjA5
RDFDQzYwMDAwQkUzMjUgLyogSlNUZXh0LmNwcCAqLywKIAkJCQk2NURGMzFGMDA5RDFDQzYwMDAw
QkUzMjUgLyogSlNUZXh0LmggKi8sCiAJCQkpOwpAQCAtMTc5NzcsNiArMTgwMzUsNyBAQAogCQkJ
CTkzOTIyNjJDMTAzMjEwN0IwMDZFN0Q1RCAvKiBKU0hUTUxDYW52YXNFbGVtZW50Q3VzdG9tLmNw
cCAqLywKIAkJCQlCQ0NCQUQzQTBDMThCRkY4MDBDRTg5MEYgLyogSlNIVE1MQ29sbGVjdGlvbkN1
c3RvbS5jcHAgKi8sCiAJCQkJQkNCQ0FFNTMwRkYxQTI5RTAwMDc2MkFFIC8qIEpTSFRNTERhdGFH
cmlkRWxlbWVudEN1c3RvbS5jcHAgKi8sCisJCQkJNzUyOUJENEYxMzI2NkRFMjAwMjQ3RDI5IC8q
IEpTSFRNTERldmljZUVsZW1lbnRDdXN0b20uY3BwICovLAogCQkJCUJDNTE1ODBBMEMwM0Q0MDQw
MDhCQjBFRSAvKiBKU0hUTUxEb2N1bWVudEN1c3RvbS5jcHAgKi8sCiAJCQkJQkM1ODIzRjQwQzBB
OThERjAwNTNGMUI1IC8qIEpTSFRNTEVsZW1lbnRDdXN0b20uY3BwICovLAogCQkJCUJDNkQ0NEJE
MEMwN0VGQjYwMDcyRDJDOSAvKiBKU0hUTUxFbWJlZEVsZW1lbnRDdXN0b20uY3BwICovLApAQCAt
MTkwNDMsNiArMTkxMDIsOCBAQAogCQkJCUJDNjQ2NDFBMTFEN0Y0MTYwMDY0NTVCMCAvKiBEYXRh
c2V0RE9NU3RyaW5nTWFwLmggKi8sCiAJCQkJQThDMjI4QTAxMUQ1NzIyRTAwRDVBN0QzIC8qIERl
Y29kZWREYXRhRG9jdW1lbnRQYXJzZXIuY3BwICovLAogCQkJCUE4QzIyODlGMTFENTcyMkUwMEQ1
QTdEMyAvKiBEZWNvZGVkRGF0YURvY3VtZW50UGFyc2VyLmggKi8sCisJCQkJNzUyOUJENTIxMzI2
NkUwMzAwMjQ3RDI5IC8qIERldmljZUVsZW1lbnQuY3BwICovLAorCQkJCTc1MjlCRDUzMTMyNjZF
MDMwMDI0N0QyOSAvKiBEZXZpY2VFbGVtZW50LmggKi8sCiAJCQkJMzFGQjFBNEYxMjBBNUQwNjAw
REMwMkEwIC8qIERldmljZU1vdGlvbkNsaWVudC5oICovLAogCQkJCTMxRkIxQTUwMTIwQTVEMDYw
MERDMDJBMCAvKiBEZXZpY2VNb3Rpb25Db250cm9sbGVyLmNwcCAqLywKIAkJCQkzMUZCMUE1MTEy
MEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uQ29udHJvbGxlci5oICovLApAQCAtMTkwNTks
NiArMTkxMjAsOSBAQAogCQkJCTU5QTg1RUExMTE5RDY4RDkwMERFRjFFRiAvKiBEZXZpY2VPcmll
bnRhdGlvbkV2ZW50LmNwcCAqLywKIAkJCQk1OUE4NUVBMzExOUQ2OEVDMDBERUYxRUYgLyogRGV2
aWNlT3JpZW50YXRpb25FdmVudC5oICovLAogCQkJCTU5QTg1RUFBMTE5RDdCNkUwMERFRjFFRiAv
KiBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmlkbCAqLywKKwkJCQk3NTI5QkQ1MTEzMjY2RTAzMDAy
NDdEMjkgLyogRGV2aWNlU2Vzc2lvbklkLmggKi8sCisJCQkJNzUyOUJENTcxMzI2NkUxMzAwMjQ3
RDI5IC8qIERldmljZVR5cGUuY3BwICovLAorCQkJCTc1MjlCRDU4MTMyNjZFMTMwMDI0N0QyOSAv
KiBEZXZpY2VUeXBlLmggKi8sCiAJCQkJQTgxODVGMzQwOTc2NTc2NTAwNTgyNkQ5IC8qIERvY3Vt
ZW50LmNwcCAqLywKIAkJCQlBODE4NUYzODA5NzY1NzY1MDA1ODI2RDkgLyogRG9jdW1lbnQuaCAq
LywKIAkJCQk2NTQ4RTI0ODA5RTFFMDREMDBBRjgwMjAgLyogRG9jdW1lbnQuaWRsICovLApAQCAt
MTkyMzMsNiArMTkyOTcsOSBAQAogCQkJCUNFQTM5NDlCMTFENDVDREEwMDMwOTRDRiAvKiBTdGF0
aWNIYXNoU2V0Tm9kZUxpc3QuaCAqLywKIAkJCQlCQzdGQTYyQzBEMUYwRUZGMDBEQjIyQTkgLyog
U3RhdGljTm9kZUxpc3QuY3BwICovLAogCQkJCUJDN0ZBNjJCMEQxRjBFRkYwMERCMjJBOSAvKiBT
dGF0aWNOb2RlTGlzdC5oICovLAorCQkJCTc1MjlCRDVCMTMyNjZFMzUwMDI0N0QyOSAvKiBTdHJl
YW0uY3BwICovLAorCQkJCTc1MjlCRDVDMTMyNjZFMzUwMDI0N0QyOSAvKiBTdHJlYW0uaCAqLywK
KwkJCQk3NTI5QkQ1RDEzMjY2RTM1MDAyNDdEMjkgLyogU3RyZWFtLmlkbCAqLywKIAkJCQk4MTAy
QzU4NzEzMjVCQjExMDBEREU2N0EgLyogU3RyaW5nQ2FsbGJhY2suY3BwICovLAogCQkJCTgxQUM2
QzM1MTMxQzU3RDMwMDA5QTdFMCAvKiBTdHJpbmdDYWxsYmFjay5oICovLAogCQkJCTgxQUM2QzM0
MTMxQzU3QzIwMDA5QTdFMCAvKiBTdHJpbmdDYWxsYmFjay5pZGwgKi8sCkBAIC0yMjU2OCw2ICsy
MjYzNSwxOCBAQAogCQkJCTU5M0QzRUIxMTMyNTMyOTUwMDU3RTdFRSAvKiBKYXZhU3RyaW5nLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1OThENzdERjEzMjU0MUZBMDA3NjFCMjIgLyogSmF2YUFycmF5
SlNDLmggaW4gSGVhZGVycyAqLywKIAkJCQk1OThENzdFMzEzMjU0MjBFMDA3NjFCMjIgLyogSmF2
YUZpZWxkSlNDLmggaW4gSGVhZGVycyAqLywKKwkJCQk3NTI5Qjc3MTEzMjY2QTFBMDAyNDdEMjkg
LyogSFRNTERldmljZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTc1MjlCQzE0MTMyNjZD
QTgwMDI0N0QyOSAvKiBKU0hUTUxEZXZpY2VFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk3
NTI5QkQ1NjEzMjY2RTAzMDAyNDdEMjkgLyogRGV2aWNlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJNzUyOUJENTQxMzI2NkUwMzAwMjQ3RDI5IC8qIERldmljZVNlc3Npb25JZC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNzUyOUJENUExMzI2NkUxMzAwMjQ3RDI5IC8qIERldmljZVR5cGUuaCBp
biBIZWFkZXJzICovLAorCQkJCTc1MjlCRDYyMTMyNjZFMzUwMDI0N0QyOSAvKiBTdHJlYW0uaCBp
biBIZWFkZXJzICovLAorCQkJCTc1MjlCRDg5MTMyNjZFNzYwMDI0N0QyOSAvKiBEZXZpY2VDbGll
bnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTc1MjlCRDhGMTMyNjZFNzYwMDI0N0QyOSAvKiBEZXZp
Y2VMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzUyOUJEOEExMzI2NkU3NjAwMjQ3RDI5
IC8qIERldmljZVNlc3Npb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTc1MjlCRDhDMTMyNjZFNzYw
MDI0N0QyOSAvKiBEZXZpY2VTZXNzaW9uQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NzUyOUJEOEUxMzI2NkU3NjAwMjQ3RDI5IC8qIERldmljZVNlc3Npb25TcGVjaWZpYy5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNzUyOUJEOUQxMzI2NkYyNjAwMjQ3RDI5IC8qIEpTU3RyZWFtLmggaW4g
SGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKIAkJfTsKQEAgLTI1MjIyLDYgKzI1MzAxLDE1IEBACiAJCQkJNTk4RDc3RTExMzI1NDIw
NDAwNzYxQjIyIC8qIEphdmFGaWVsZEpTQy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4MTVFNjE2
NzEzMjU4N0FBMDBCNjIyQjAgLyogRGF0YVRyYW5zZmVySXRlbS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk4MTAyQzU4ODEzMjVCQjExMDBEREU2N0EgLyogU3RyaW5nQ2FsbGJhY2suY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJNzUyOUI3NzAxMzI2NkExQTAwMjQ3RDI5IC8qIEhUTUxEZXZpY2VFbGVt
ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTc1MjlCQzEzMTMyNjZDQTgwMDI0N0QyOSAvKiBK
U0hUTUxEZXZpY2VFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTc1MjlCRDUwMTMyNjZE
RTIwMDI0N0QyOSAvKiBKU0hUTUxEZXZpY2VFbGVtZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTc1MjlCRDU1MTMyNjZFMDMwMDI0N0QyOSAvKiBEZXZpY2VFbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTc1MjlCRDU5MTMyNjZFMTMwMDI0N0QyOSAvKiBEZXZpY2VUeXBlLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTc1MjlCRDYxMTMyNjZFMzUwMDI0N0QyOSAvKiBTdHJlYW0u
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNzUyOUJEOEIxMzI2NkU3NjAwMjQ3RDI5IC8qIERldmlj
ZVNlc3Npb25Db250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTc1MjlCRDhEMTMyNjZF
NzYwMDI0N0QyOSAvKiBEZXZpY2VTZXNzaW9uU3BlY2lmaWMuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJNzUyOUJEOUMxMzI2NkYyNjAwMjQ3RDI5IC8qIEpTU3RyZWFtLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRGV2aWNlRWxl
bWVudEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxEZXZpY2VF
bGVtZW50Q3VzdG9tLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YTc2Y2FjOGE2Njc0YTZjYTM0ZWYyMzQxNDJm
NDljMTQxM2VhODg3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNIVE1MRGV2aWNlRWxlbWVudEN1c3RvbS5jcHAKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0
cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisg
KiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJKU0hUTUxEZXZpY2VFbGVtZW50LmgiCisKKyNpZiBFTkFC
TEUoREVWSUNFX0VMRU1FTlQpCisKKyNpbmNsdWRlICJEZXZpY2VTZXNzaW9uLmgiCisjaW5jbHVk
ZSAiSFRNTERldmljZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJKU1N0cmVhbS5oIgorCit1c2luZyBu
YW1lc3BhY2UgSlNDOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0pTVmFsdWUgSlNIVE1MRGV2
aWNlRWxlbWVudDo6ZGF0YShFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Cit7CisgICAgSFRNTERldmlj
ZUVsZW1lbnQqIGRldmljZSA9IHN0YXRpY19jYXN0PEhUTUxEZXZpY2VFbGVtZW50Kj4oaW1wbCgp
KTsKKyAgICBpZiAoY29uc3QgRGV2aWNlU2Vzc2lvbiogc2Vzc2lvbiA9IGRldmljZS0+c2Vzc2lv
bigpKQorICAgICAgICBpZiAoc2Vzc2lvbi0+c3RhdGUoKSA9PSBEZXZpY2VTZXNzaW9uOjpPcGVu
ZWQpCisgICAgICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QoKSwgZGV2aWNl
LT5kYXRhKCkpOworCisgICAgcmV0dXJuIGpzTnVsbCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREVWSUNFX0VMRU1FTlQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MRGV2aWNlRWxlbWVudEN1c3Rv
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MRGV2aWNlRWxl
bWVudEN1c3RvbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGEzYTk3YjFhOWVmNmVhZTVjNjhhZDQxZDU0ZDQw
NzcyOGRhMWI4ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOEhUTUxEZXZpY2VFbGVtZW50Q3VzdG9tLmNwcApAQCAtMCwwICsxLDU5IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAq
IGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisg
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlY4SFRNTERldmljZUVsZW1lbnQuaCIKKworI2lm
IEVOQUJMRShERVZJQ0VfRUxFTUVOVCkKKworI2luY2x1ZGUgIkRldmljZVNlc3Npb24uaCIKKyNp
bmNsdWRlICJIVE1MRGV2aWNlRWxlbWVudC5oIgorI2luY2x1ZGUgIlY4QmluZGluZy5oIgorI2lu
Y2x1ZGUgIlY4U3RyZWFtLmgiCisKKyNpbmNsdWRlIDx2OC5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEhUTUxEZXZpY2VFbGVtZW50OjpkYXRhQWNj
ZXNzb3JHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3Nv
ckluZm8mIGluZm8pCit7CisgICAgSU5DX1NUQVRTKCJET00uSFRNTERldmljZUVsZW1lbnQuZGF0
YS5fZ2V0Iik7CisgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBob2xkZXIgPSBpbmZvLkhvbGRl
cigpOworICAgIEhUTUxEZXZpY2VFbGVtZW50KiBkZXZpY2UgPSBWOEhUTUxEZXZpY2VFbGVtZW50
Ojp0b05hdGl2ZShob2xkZXIpOworICAgIGlmIChjb25zdCBEZXZpY2VTZXNzaW9uKiBzZXNzaW9u
ID0gZGV2aWNlLT5zZXNzaW9uKCkpCisgICAgICAgIGlmIChzZXNzaW9uLT5zdGF0ZSgpID09IERl
dmljZVNlc3Npb246Ok9wZW5lZCkKKyAgICAgICAgICAgIHJldHVybiB0b1Y4KGRldmljZS0+ZGF0
YSgpKTsKKworICAgIHJldHVybiB2ODo6TnVsbCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREVWSUNFX0VMRU1FTlQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFs
bEluT25lLmNwcAppbmRleCBjODhhZWNmOTQ4NTQ3NDY5YWQwZGUwZTRhZDUwY2NmZWMwOGJmNjUy
Li4yOTRhMTliNzlmMjZhNmUzYWRjYmM3NDE0OTZjZjc1NDk4Yzk0NGU3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9ET01BbGxJbk9uZS5jcHAKQEAgLTUxLDEyICs1MSwxNCBAQAogI2luY2x1ZGUgIkRPTVN0cmlu
Z01hcC5jcHAiCiAjaW5jbHVkZSAiRGF0YXNldERPTVN0cmluZ01hcC5jcHAiCiAjaW5jbHVkZSAi
RGVjb2RlZERhdGFEb2N1bWVudFBhcnNlci5jcHAiCisjaW5jbHVkZSAiRGV2aWNlRWxlbWVudC5j
cHAiCiAjaW5jbHVkZSAiRGV2aWNlTW90aW9uQ29udHJvbGxlci5jcHAiCiAjaW5jbHVkZSAiRGV2
aWNlTW90aW9uRGF0YS5jcHAiCiAjaW5jbHVkZSAiRGV2aWNlTW90aW9uRXZlbnQuY3BwIgogI2lu
Y2x1ZGUgIkRldmljZU9yaWVudGF0aW9uLmNwcCIKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlv
bkNvbnRyb2xsZXIuY3BwIgogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uRXZlbnQuY3BwIgor
I2luY2x1ZGUgIkRldmljZVR5cGUuY3BwIgogI2luY2x1ZGUgIkRvY3VtZW50LmNwcCIKICNpbmNs
dWRlICJEb2N1bWVudEZyYWdtZW50LmNwcCIKICNpbmNsdWRlICJEb2N1bWVudE1hcmtlckNvbnRy
b2xsZXIuY3BwIgpAQCAtMTEwLDYgKzExMiw3IEBACiAjaW5jbHVkZSAiU3BhY2VTcGxpdFN0cmlu
Zy5jcHAiCiAjaW5jbHVkZSAiU3RhdGljSGFzaFNldE5vZGVMaXN0LmNwcCIKICNpbmNsdWRlICJT
dGF0aWNOb2RlTGlzdC5jcHAiCisjaW5jbHVkZSAiU3RyZWFtLmNwcCIKICNpbmNsdWRlICJTdHls
ZUVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlN0eWxlZEVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlRh
Z05vZGVMaXN0LmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VFbGVtZW50LmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kMzM3NWJkMTViY2FkZTdjYTlhZGU1YzM5MDA3OWU3MjQ1MThmMGE5Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZUVsZW1lbnQuY3BwCkBAIC0wLDAgKzEsNTgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAq
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGV2aWNlRWxlbWVudC5oIgorCisjaWYg
RU5BQkxFKERFVklDRV9FTEVNRU5UKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0RldmljZUVs
ZW1lbnQ6OkRldmljZUVsZW1lbnQoKQoreworfQorCitEZXZpY2VFbGVtZW50OjpEZXZpY2VFbGVt
ZW50KGNvbnN0IFN0cmluZyYgdHlwZSkKKyAgICA6IG1fdHlwZSh0eXBlKQoreworfQorCitEZXZp
Y2VFbGVtZW50Ojp+RGV2aWNlRWxlbWVudCgpCit7Cit9CisKK1N0cmluZyBEZXZpY2VFbGVtZW50
Ojp0eXBlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV90eXBlLm5hbWUoKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKERFVklDRV9FTEVNRU5UKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9EZXZpY2VFbGVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmIzNjMyYTRlNTZkNzMyYjUyMjEx
ZDdjYTg3NGY2Y2JkY2Q4YzFmMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9EZXZpY2VFbGVtZW50LmgKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
CisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRGV2aWNlRWxlbWVudF9o
CisjZGVmaW5lIERldmljZUVsZW1lbnRfaAorCisjaWYgRU5BQkxFKERFVklDRV9FTEVNRU5UKQor
CisjaW5jbHVkZSAiRGV2aWNlVHlwZS5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5j
bHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBT
dHJlYW07CisKK2NsYXNzIERldmljZUVsZW1lbnQgeworcHVibGljOgorICAgIERldmljZUVsZW1l
bnQoKTsKKyAgICBEZXZpY2VFbGVtZW50KGNvbnN0IFN0cmluZyYgdHlwZSk7CisgICAgdmlydHVh
bCB+RGV2aWNlRWxlbWVudCgpOworCisgICAgU3RyaW5nIHR5cGUoKSBjb25zdDsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0VHlwZShjb25zdCBTdHJpbmcmKSA9IDA7CisgICAgdmlydHVhbCBQYXNzUmVm
UHRyPFN0cmVhbT4gZGF0YSgpID0gMDsgLy8gRklYTUU6IHVzZSBnZW5lcmljIGRhdGEgdHlwZXMg
d2hlbiBleHRlbmRpbmcgdGhlIGRldmljZSB0eXBlIGJleW9uZCBtZWRpYS4KKworcHJvdGVjdGVk
OgorICAgIERldmljZVR5cGUgbV90eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gRU5BQkxFKERFVklDRV9FTEVNRU5UKQorCisjZW5kaWYgLy8gRGV2aWNlRWxl
bWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlU2Vzc2lvbklkLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlU2Vzc2lvbklkLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGI4N2Vj
MTQ2MTNlYjdjZWFjMDUwNWIzODBlZTFkNzZhZjAyMTI3ZAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VTZXNzaW9uSWQuaApAQCAtMCwwICsxLDk0IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRp
c3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBEZXZpY2VTZXNzaW9uSWRfaAorI2RlZmluZSBEZXZpY2VTZXNzaW9uSWRfaAorCisjaWYgRU5B
QkxFKERFVklDRV9FTEVNRU5UKQorCisjaW5jbHVkZSA8d3RmL0hhc2hGdW5jdGlvbnMuaD4KKyNp
bmNsdWRlIDx3dGYvSGFzaFRyYWl0cy5oPgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCisvLyBUdXBsZSBvZiA8c2Vzc2lvbiBpZGVudGlmaWVyLCB0eXBl
Pi4KKy8vIEFsbG93cyB0aGUgRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIgdG8gYXZvaWQgY29sbGlz
aW9ucyBiZXR3ZWVuIGxvY2FsIGRldmljZSBzZXNzaW9uIGlkcyAobWFuYWdlZCBieSBpdHNlbGYp
CisvLyBhbmQgcmVtb3RlIGRldmljZSBzZXNzaW9uIGlkcyAobWFuYWdlZCBieSB0aGUgQ29ubmVj
dGlvblBlZXIgY2xpZW50KS4KK2NsYXNzIERldmljZVNlc3Npb25JZCB7CitwdWJsaWM6CisgICAg
ZW51bSBTZXNzaW9uVHlwZSB7CisgICAgICAgIE5vbmUgPSAwLAorICAgICAgICBMb2NhbCwKKyAg
ICAgICAgUmVtb3RlCisgICAgfTsKKworICAgIERldmljZVNlc3Npb25JZCgpCisgICAgICAgIDog
bV9pZCgwKQorICAgICAgICAsIG1fdHlwZShOb25lKQorICAgIHsKKyAgICB9CisKKyAgICBEZXZp
Y2VTZXNzaW9uSWQoaW50IGlkLCBTZXNzaW9uVHlwZSB0eXBlKQorICAgICAgICA6IG1faWQoaWQp
CisgICAgICAgICwgbV90eXBlKHR5cGUpCisgICAgeworICAgIH0KKworICAgIGludCBpZCgpIGNv
bnN0IHsgcmV0dXJuIG1faWQ7IH0KKyAgICBTZXNzaW9uVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1
cm4gbV90eXBlOyB9CisgICAgYm9vbCBpc051bGwoKSBjb25zdCB7IHJldHVybiAhbV9pZCB8fCBt
X3R5cGUgPT0gTm9uZTsgfQorICAgIERldmljZVNlc3Npb25JZCByZXNldCgpIHsgRGV2aWNlU2Vz
c2lvbklkIHRlbXAgPSAqdGhpczsgKnRoaXMgPSBEZXZpY2VTZXNzaW9uSWQoKTsgcmV0dXJuIHRl
bXA7IH0KKworICAgIC8vIE9wZXJhdG9ycyByZXF1aXJlZCB0byByZXVzZSBzdGQ6OnBhaXIgaGFz
aGluZyB0ZW1wbGF0ZXMuCisgICAgb3BlcmF0b3Igc3RkOjpwYWlyPGludCwgaW50PigpIGNvbnN0
IHsgcmV0dXJuIHN0ZDo6cGFpcjxpbnQsIGludD4obV9pZCwgbV90eXBlKTsgfQorICAgIGJvb2wg
b3BlcmF0b3I9PShjb25zdCBEZXZpY2VTZXNzaW9uSWQmIGMpIGNvbnN0IHsgcmV0dXJuIG1faWQg
PT0gYy5tX2lkICYmIG1fdHlwZSA9PSBjLm1fdHlwZTsgfQorCitwcml2YXRlOgorICAgIGZyaWVu
ZCBjbGFzcyBEZXZpY2VTZXNzaW9uQ29udHJvbGxlcjsKKyAgICBpbnQgbV9pZDsKKyAgICBTZXNz
aW9uVHlwZSBtX3R5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK25hbWVzcGFj
ZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxXZWJDb3JlOjpEZXZpY2VT
ZXNzaW9uSWQ+IHsKKyAgICB0eXBlZGVmIFBhaXJIYXNoPGludCwgaW50PiBIYXNoOworfTsKKwor
dGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0czxXZWJDb3JlOjpEZXZpY2VTZXNzaW9uSWQ+IDog
cHVibGljIFBhaXJIYXNoVHJhaXRzPEhhc2hUcmFpdHM8aW50PiwgSGFzaFRyYWl0czxpbnQ+ID4g
eyB9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKKworI2VuZGlmIC8vIEVOQUJMRShERVZJQ0VfRUxF
TUVOVCkKKworI2VuZGlmIC8vIERldmljZVNlc3Npb25JZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRGV2aWNlVHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlVHlw
ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMWU2NzM1OTdiMzBmNmMzYWYyYWM5ODQ3ZGM4ZTAzMjA3ZDM3Nzcz
MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VUeXBlLmNwcApA
QCAtMCwwICsxLDEwMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQor
ICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEZXZpY2VUeXBl
LmgiCisKKyNpZiBFTkFCTEUoREVWSUNFX0VMRU1FTlQpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworRGV2aWNlVHlwZTo6RGV2aWNlVHlwZSgpCisgICAgOiBtX2lkKEludmFsaWQpCit7Cit9CisK
K0RldmljZVR5cGU6OkRldmljZVR5cGUoVHlwZUlkIGlkKQoreworICAgIEFTU0VSVChpZCA+IElu
dmFsaWQgJiYgaWQgPCBOdW1EZXZpY2VUeXBlcyk7CisgICAgbV9pZCA9IGlkOworfQorCitEZXZp
Y2VUeXBlOjpEZXZpY2VUeXBlKGNvbnN0IFN0cmluZyYgbmFtZSkKK3sKKyAgICBtX2lkID0gaWRG
cm9tTmFtZShuYW1lKTsKK30KKworRGV2aWNlVHlwZTo6VHlwZUlkIERldmljZVR5cGU6OmlkKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9pZDsKK30KKworY29uc3QgQXRvbWljU3RyaW5nJiBEZXZp
Y2VUeXBlOjpuYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbmFtZUZyb21JZChtX2lkKTsKK30K
KworYm9vbCBEZXZpY2VUeXBlOjppc1ZhbGlkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9pZCA+
IEludmFsaWQgJiYgbV9pZCA8IE51bURldmljZVR5cGVzOworfQorCitEZXZpY2VUeXBlOjpUeXBl
SWQgRGV2aWNlVHlwZTo6aWRGcm9tTmFtZShjb25zdCBTdHJpbmcmIG5hbWUpCit7CisgICAgLy8g
QWRkIGNvZGUgZm9yIGV4dHJhIGRldmljZSB0eXBlcyBoZXJlLgorICAgIGlmIChuYW1lID09IG1l
ZGlhKCkpCisgICAgICAgIHJldHVybiBNZWRpYTsKKworICAgIHJldHVybiBJbnZhbGlkOworfQor
Citjb25zdCBBdG9taWNTdHJpbmcmIERldmljZVR5cGU6Om5hbWVGcm9tSWQoVHlwZUlkIGlkKQor
eworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBudWxsVHlwZU5hbWUsICgp
KTsKKworICAgIC8vIEFkZCBjb2RlIGZvciBleHRyYSBkZXZpY2UgdHlwZXMgaGVyZS4KKyAgICBz
d2l0Y2ggKGlkKSB7CisgICAgY2FzZSBNZWRpYToKKyAgICAgICAgcmV0dXJuIG1lZGlhKCk7CisK
KyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gbnVsbFR5cGVOYW1lOworICAgIH0KK30KKwor
Y29uc3QgQXRvbWljU3RyaW5nJiBEZXZpY2VUeXBlOjptZWRpYSgpCit7CisgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgibWVkaWEiKSk7CisgICAgcmV0dXJuIG5h
bWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShERVZJ
Q0VfRUxFTUVOVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VUeXBlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlVHlwZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ2YWNkODg0MmU5
N2Y3Yjk4MDFiM2RhMGJjODAxN2FiMWE2ZWM5MDkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRGV2aWNlVHlwZS5oCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9u
LgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIERldmljZVR5
cGVfaAorI2RlZmluZSBEZXZpY2VUeXBlX2gKKworI2lmIEVOQUJMRShERVZJQ0VfRUxFTUVOVCkK
KworI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWlj
U3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGV2aWNlVHlwZSB7Citw
dWJsaWM6CisgICAgLy8gQWxsb3dlZCB0eXBlIHZhbHVlcyBmb3IgdGhlIGRldmljZSBlbGVtZW50
IGFuZCBkZXZpY2Ugc2Vzc2lvbnMuCisgICAgZW51bSBUeXBlSWQgeworICAgICAgICBJbnZhbGlk
ID0gMCwgLy8gSW52YWxpZCBkZXZpY2UgdHlwZSB2YWx1ZS4gTm90IGEgcmVzZXJ2ZWQgdHlwZSBp
biB0aGUgc3BlYy4KKyAgICAgICAgTWVkaWEsCisgICAgICAgIE51bURldmljZVR5cGVzCisgICAg
fTsKKworICAgIERldmljZVR5cGUoKTsKKyAgICBEZXZpY2VUeXBlKFR5cGVJZCk7CisgICAgRGV2
aWNlVHlwZShjb25zdCBTdHJpbmcmIG5hbWUpOworCisgICAgVHlwZUlkIGlkKCkgY29uc3Q7Cisg
ICAgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKCkgY29uc3Q7CisgICAgYm9vbCBpc1ZhbGlkKCkg
Y29uc3Q7CisKKyAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lRnJvbUlkKFR5cGVJ
ZCk7CisgICAgc3RhdGljIFR5cGVJZCBpZEZyb21OYW1lKGNvbnN0IFN0cmluZyYpOworCisgICAg
Ly8gQWRkIGV4dHJhIGRldmljZSB0eXBlcyBoZXJlLgorICAgIHN0YXRpYyBjb25zdCBBdG9taWNT
dHJpbmcmIG1lZGlhKCk7CisKK3ByaXZhdGU6CisgICAgVHlwZUlkIG1faWQ7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREVWSUNFX0VMRU1FTlQpCisK
KyNlbmRpZiAvLyBEZXZpY2VUeXBlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9T
dHJlYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0cmVhbS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODY1
NmFjMjhjZDM4NWM1OTUxZDMzN2UxYzU2YTlkMjc2NjQ3NDQzNAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9TdHJlYW0uY3BwCkBAIC0wLDAgKzEsOTQgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJp
YnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiU3RyZWFtLmgiCisKKyNpZiBFTkFCTEUoREVWSUNFX0VMRU1F
TlQpCisKKyNpbmNsdWRlICJEZXZpY2VTZXNzaW9uLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworUGFzc1JlZlB0cjxTdHJlYW0+IFN0cmVhbTo6Y3JlYXRlKERldmljZVNlc3Npb25Db250cm9s
bGVyKiBjb250cm9sbGVyLCBEZXZpY2VTZXNzaW9uSWQgaWQsIGNvbnN0IEtVUkwmIHVybCkKK3sK
KyAgICBBU1NFUlQoY29udHJvbGxlcik7CisgICAgQVNTRVJUKGNvbnRyb2xsZXItPmlzU2Vzc2lv
bklkVmFsaWQoaWQpKTsKKyAgICBBU1NFUlQoY29udHJvbGxlci0+c2Vzc2lvbihpZCkuc3RhdGUo
KSA9PSBEZXZpY2VTZXNzaW9uOjpPcGVuZWQpOworICAgIEFTU0VSVCh1cmwuaXNWYWxpZCgpKTsK
KworICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3RyZWFtKGNvbnRyb2xsZXIsIGlkLCB1cmwpKTsK
K30KKworU3RyZWFtOjpTdHJlYW0oRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIs
IERldmljZVNlc3Npb25JZCBpZCwgY29uc3QgS1VSTCYgdXJsKQorICAgIDogbV9jb250cm9sbGVy
KGNvbnRyb2xsZXIpCisgICAgLCBtX3Nlc3Npb25JZChpZCkKKyAgICAsIG1fdXJsKHVybCkKK3sK
KyAgICBtX2NvbnRyb2xsZXItPnJlZ2lzdGVyU2Vzc2lvbkxpc3RlbmVyKG1fc2Vzc2lvbklkLCB0
aGlzKTsKK30KKworU3RyZWFtOjp+U3RyZWFtKCkKK3sKKyAgICBpZiAobV9jb250cm9sbGVyICYm
ICFtX3Nlc3Npb25JZC5pc051bGwoKSkKKyAgICAgICAgbV9jb250cm9sbGVyLT51bnJlZ2lzdGVy
U2Vzc2lvbkxpc3RlbmVyKG1fc2Vzc2lvbklkLCB0aGlzKTsKK30KKworY29uc3QgS1VSTCYgU3Ry
ZWFtOjp1cmwoKSBjb25zdAoreworICAgIHJldHVybiBtX3VybDsKK30KKwordm9pZCBTdHJlYW06
OmRldmljZVNlc3Npb25VcGRhdGUoY29uc3QgRGV2aWNlU2Vzc2lvbiYgc2Vzc2lvbikKK3sKKyAg
ICBzd2l0Y2ggKHNlc3Npb24uc3RhdGUoKSkgeworICAgIGNhc2UgRGV2aWNlU2Vzc2lvbjo6T3Bl
bmVkOgorICAgICAgICBicmVhazsKKworICAgIGNhc2UgRGV2aWNlU2Vzc2lvbjo6RmFpbGVkOgor
ICAgIGNhc2UgRGV2aWNlU2Vzc2lvbjo6Q2xvc2VkOgorICAgICAgICBBU1NFUlQobV9jb250cm9s
bGVyLT5pc1Nlc3Npb25JZFZhbGlkKG1fc2Vzc2lvbklkKSk7CisgICAgICAgIG1fY29udHJvbGxl
ci0+dW5yZWdpc3RlclNlc3Npb25MaXN0ZW5lcihtX3Nlc3Npb25JZC5yZXNldCgpLCB0aGlzKTsK
KyAgICAgICAgYnJlYWs7CisKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICB9OworfQorCit2b2lkIFN0cmVhbTo6c2Vzc2lvbkNvbnRyb2xsZXJTaHV0ZG93
bigpCit7CisgICAgbV9zZXNzaW9uSWQucmVzZXQoKTsKKyAgICBtX2NvbnRyb2xsZXIgPSAwOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREVWSUNFX0VM
RU1FTlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU3RyZWFtLmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vU3RyZWFtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmIyYTA2Yjk3YWE1NmEyN2ZjYjEzNWM4
YjU2MzVjMzQ2OWM5MzZjOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9T
dHJlYW0uaApAQCAtMCwwICsxLDcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTdHJlYW1faAorI2RlZmluZSBTdHJlYW1f
aAorCisjaWYgRU5BQkxFKERFVklDRV9FTEVNRU5UKQorCisjaW5jbHVkZSAiRGV2aWNlU2Vzc2lv
bkNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJEZXZpY2VTZXNzaW9uSWQuaCIKKyNpbmNsdWRlICJL
VVJMLmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0
ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgU3RyZWFtIDogcHVibGljIFJlZkNvdW50ZWQ8U3RyZWFtPiwKKyAgICAgICAgICAg
ICAgIHB1YmxpYyBEZXZpY2VTZXNzaW9uQ29udHJvbGxlcjo6U2Vzc2lvbkxpc3RlbmVyIHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJlYW0+IGNyZWF0ZShEZXZpY2VTZXNzaW9u
Q29udHJvbGxlciosIERldmljZVNlc3Npb25JZCwgY29uc3QgS1VSTCYpOworICAgIH5TdHJlYW0o
KTsKKworICAgIGNvbnN0IEtVUkwmIHVybCgpIGNvbnN0OworCisgICAgLy8gRklYTUU6IGltcGxl
bWVudCB3aGVuIHRoZSBTdHJlYW1SZWNvcmRlciBjbGFzcyBpcyBpbnRyb2R1Y2VkLgorICAgIC8v
IFBhc3NSZWZQdHI8U3RyZWFtUmVjb3JkZXI+IHJlY29yZCgpOworCisgICAgLy8gRGV2aWNlU2Vz
c2lvbkNvbnRyb2xsZXI6OlNlc3Npb25MaXN0ZW5lciBpbXBsZW1lbnRhdGlvbi4KKyAgICB2aXJ0
dWFsIHZvaWQgZGV2aWNlU2Vzc2lvblVwZGF0ZShjb25zdCBEZXZpY2VTZXNzaW9uJik7CisgICAg
dmlydHVhbCB2b2lkIHNlc3Npb25Db250cm9sbGVyU2h1dGRvd24oKTsKKworcHJpdmF0ZToKKyAg
ICBTdHJlYW0oRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIqLCBEZXZpY2VTZXNzaW9uSWQsIGNvbnN0
IEtVUkwmKTsKKworICAgIERldmljZVNlc3Npb25Db250cm9sbGVyKiBtX2NvbnRyb2xsZXI7Cisg
ICAgRGV2aWNlU2Vzc2lvbklkIG1fc2Vzc2lvbklkOworICAgIEtVUkwgbV91cmw7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREVWSUNFX0VMRU1FTlQp
CisKKyNlbmRpZiAvLyBTdHJlYW1faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1N0
cmVhbS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3RyZWFtLmlkbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOWYy
MDQxMTEyNmM2ZjM1YWI0OGRlNTlkNDhmYmJjNmJkYThhZDQ4Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL1N0cmVhbS5pZGwKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmli
dXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBjb3Jl
IHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPURFVklDRV9FTEVNRU5U
CisgICAgXSBTdHJlYW0geworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHVy
bDsKKyAgICAgICAgLy8gRklYTUU6IGltcGxlbWVudCB3aGVuIHRoZSBTdHJlYW1SZWNvcmRlciBj
bGFzcyBpcyBpbnRyb2R1Y2VkLgorICAgICAgICAvLyBTdHJlYW1SZWNvcmRlciByZWNvcmQoKTsK
KyAgICB9OworfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXZpY2VF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldmljZUVsZW1lbnQuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmY4Y2M1OTMxNzE1OTRkODQ4MzQxNTE4YmQ5MTgyZGM5M2JkNGEwYzUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXZpY2VFbGVtZW50LmNwcApA
QCAtMCwwICsxLDI4NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQor
ICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJIVE1MRGV2aWNl
RWxlbWVudC5oIgorCisjaWYgRU5BQkxFKERFVklDRV9FTEVNRU5UKQorCisjaW5jbHVkZSAiRGV2
aWNlU2Vzc2lvbi5oIgorI2luY2x1ZGUgIkRldmljZVNlc3Npb25TcGVjaWZpYy5oIgorI2luY2x1
ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiRXZlbnRIYW5kbGVyLmgiCisjaW5jbHVkZSAiRXZlbnRO
YW1lcy5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5j
bHVkZSAiTW91c2VFdmVudC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJTY3JpcHRF
dmVudExpc3RlbmVyLmgiCisjaW5jbHVkZSAiU3RyZWFtLmgiCisjaW5jbHVkZSA8d3RmL0Fzc2Vy
dGlvbnMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgSFRNTE5h
bWVzOworCitQYXNzUmVmUHRyPEhUTUxEZXZpY2VFbGVtZW50PiBIVE1MRGV2aWNlRWxlbWVudDo6
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkK
K3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxEZXZpY2VFbGVtZW50KHRhZ05hbWUsIGRv
Y3VtZW50KSk7Cit9CisKK0hUTUxEZXZpY2VFbGVtZW50OjpIVE1MRGV2aWNlRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCisgICAgOiBIVE1M
RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKKyAgICAsIG1fc3RhdGUoSWRsZSkKKyAgICAsIG1f
Y29udHJvbGxlcihIVE1MRWxlbWVudDo6ZG9jdW1lbnQoKS0+cGFnZSgpID8gSFRNTEVsZW1lbnQ6
OmRvY3VtZW50KCktPnBhZ2UoKS0+ZGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIoKSA6IDApCit7Cit9
CisKK0hUTUxEZXZpY2VFbGVtZW50Ojp+SFRNTERldmljZUVsZW1lbnQoKQoreworfQorCit2b2lk
IEhUTUxEZXZpY2VFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHJp
YnV0ZSkKK3sKKyAgICBpZiAoYXR0cmlidXRlLT5uYW1lKCkgPT0gdHlwZUF0dHIpCisgICAgICAg
IG1fdHlwZSA9IERldmljZVR5cGUoZmFzdEdldEF0dHJpYnV0ZSh0eXBlQXR0cikpOworICAgIGVs
c2UgaWYgKGF0dHJpYnV0ZS0+bmFtZSgpID09IG9uY2hhbmdlQXR0cikKKyAgICAgICAgc2V0QXR0
cmlidXRlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCkuY2hhbmdlRXZlbnQsIGNyZWF0ZUF0dHJp
YnV0ZUV2ZW50TGlzdGVuZXIodGhpcywgYXR0cmlidXRlKSk7CisgICAgZWxzZQorICAgICAgICBI
VE1MRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cmlidXRlKTsKK30KKwordm9pZCBI
VE1MRGV2aWNlRWxlbWVudDo6YXR0YWNoKCkKK3sKKyAgICBIVE1MRWxlbWVudDo6YXR0YWNoKCk7
CisKKyAgICAvLyBDcmVhdGUgYSBuZXcgbG9jYWwgZGV2aWNlIHNlc3Npb24gb2JqZWN0IGZvciB0
aGUgY3VycmVudCB0eXBlLgorICAgIG1fc2Vzc2lvbklkID0gbV9jb250cm9sbGVyLT5yZWdpc3Rl
ckRldmljZVNlc3Npb24oCisgICAgICAgICAgRGV2aWNlU2Vzc2lvbihtX3R5cGUsIERldmljZVNl
c3Npb25JZDo6TG9jYWwsIGRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCkpLAorICAgICAgICAg
IHRoaXMpOworfQorCit2b2lkIEhUTUxEZXZpY2VFbGVtZW50OjpkZXRhY2goKQoreworICAgIC8v
IFNwZWMgcXVlc3Rpb246IHNob3VsZCB3ZSBjbG9zZSBhbnkgYWN0aXZlIGxvY2FsIGRldmljZSBz
ZXNzaW9ucyB3aGVuIHRoZSBkZXZpY2UgZWxlbWVudAorICAgIC8vIHVzZWQgdG8gY3JlYXRlIHRo
ZW0gaXMgZGV0YWNoZWQgZnJvbSB0aGUgRE9NPyBUaGVyZSBtYXkgYmUgbm90aGluZyBlbHNlIGFz
c29jaWF0ZWQgd2l0aCB0aGUKKyAgICAvLyBzZXNzaW9uIHRoYXQgY291bGQgYXNrIHRvIGNsb3Nl
IGl0LCBsZWF2aW5nIHRoZSBzZXNzaW9uIG9wZW4gdW50aWwgZmFpbHVyZS4KKyAgICBpZiAobV9j
b250cm9sbGVyKSB7CisgICAgICAgIGlmIChzZXNzaW9uKCktPnN0YXRlKCkgPT0gRGV2aWNlU2Vz
c2lvbjo6T3BlbmVkKQorICAgICAgICAgICAgbV9jb250cm9sbGVyLT5yZXZva2VBY2Nlc3NUb0xv
Y2FsRGV2aWNlKG1fc2Vzc2lvbklkKTsKKworICAgICAgICBpZiAoIW1fc2Vzc2lvbklkLmlzTnVs
bCgpKQorICAgICAgICAgICAgbV9jb250cm9sbGVyLT51bnJlZ2lzdGVyU2Vzc2lvbkxpc3RlbmVy
KG1fc2Vzc2lvbklkLCB0aGlzKTsKKyAgICB9CisKKyAgICBIVE1MRWxlbWVudDo6ZGV0YWNoKCk7
Cit9CisKK3ZvaWQgSFRNTERldmljZUVsZW1lbnQ6OnNldFR5cGUoY29uc3QgU3RyaW5nJiB0eXBl
KQoreworICAgIERldmljZVR5cGUgbV9wcmV2aW91c1R5cGUgPSBtX3R5cGU7CisgICAgbV90eXBl
ID0gRGV2aWNlVHlwZSh0eXBlKTsKKworICAgIGlmIChtX3R5cGUuaWQoKSAhPSBtX3ByZXZpb3Vz
VHlwZS5pZCgpKQorICAgICAgICBjbG9zZUFuZFJlc2V0U2Vzc2lvbigpOworfQorCitQYXNzUmVm
UHRyPFN0cmVhbT4gSFRNTERldmljZUVsZW1lbnQ6OmRhdGEoKQoreworICAgIGlmICghbV9jb250
cm9sbGVyKQorICAgICAgICByZXR1cm4gMDsKKworICAgIC8vIEpTIGJpbmRpbmcgc2hvdWxkIG1h
a2UgdGhpcyBhc3NlcnRpb24gYWx3YXlzIHRydWUuCisgICAgQVNTRVJUKHNlc3Npb24oKS0+c3Rh
dGUoKSA9PSBEZXZpY2VTZXNzaW9uOjpPcGVuZWQpOworCisgICAgLy8gQWRkIHRoZSBkYXRhIGF0
dHJpYnV0ZSBmb3IgbmV3IGRldmljZSB0eXBlcyBoZXJlLgorICAgIHN3aXRjaCAoc2Vzc2lvbigp
LT50eXBlKCkuaWQoKSkgeworICAgIGNhc2UgRGV2aWNlVHlwZTo6SW52YWxpZDoKKyAgICAgICAg
YnJlYWs7CisKKyAgICBjYXNlIERldmljZVR5cGU6Ok1lZGlhOgorICAgICAgICByZXR1cm4gcmVp
bnRlcnByZXRfY2FzdDxjb25zdCBEZXZpY2VNZWRpYVNwZWNpZmljKj4oc2Vzc2lvbigpLT50eXBl
U3BlY2lmaWMoKSktPnN0cmVhbSgpOworCisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKK0hUTUxEZXZpY2VFbGVt
ZW50OjpEZXZpY2VFbGVtZW50U3RhdGUgSFRNTERldmljZUVsZW1lbnQ6OnN0YXRlKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9zdGF0ZTsKK30KKworY29uc3QgRGV2aWNlVHlwZSYgSFRNTERldmlj
ZUVsZW1lbnQ6OmRldmljZVR5cGUoKSBjb25zdAoreworICAgIHJldHVybiBtX3R5cGU7Cit9CisK
K2NvbnN0IERldmljZVNlc3Npb24qIEhUTUxEZXZpY2VFbGVtZW50OjpzZXNzaW9uKCkgY29uc3QK
K3sKKyAgICBpZiAoIW1fY29udHJvbGxlcikKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBBU1NF
UlQobV9jb250cm9sbGVyKTsKKyAgICByZXR1cm4gJm1fY29udHJvbGxlci0+c2Vzc2lvbihtX3Nl
c3Npb25JZCk7Cit9CisKK3ZvaWQgSFRNTERldmljZUVsZW1lbnQ6OnNldFN0YXRlKERldmljZUVs
ZW1lbnRTdGF0ZSBzdGF0ZSkKK3sKKyAgICBpZiAobV9zdGF0ZSAhPSBzdGF0ZSkKKyAgICAgICAg
bV9zdGF0ZSA9IHN0YXRlOworfQorCit2b2lkIEhUTUxEZXZpY2VFbGVtZW50OjpjbG9zZUFuZFJl
c2V0U2Vzc2lvbigpCit7CisgICAgaWYgKG1fY29udHJvbGxlcikgeworICAgICAgICAvLyBJZiB0
aGUgc2Vzc2lvbiBpcyBpbiB0aGUgT3BlbmVkIHN0YXRlIHRoZW4gd2UgYXJlIGNsb3NpbmcuCisg
ICAgICAgIC8vIElmIG5vdCB0aGVuIHdlIGFyZSByZXNldHRpbmcgYSBjbG9zZWQsIGNhbmNlbGxl
ZCBvciBmYWlsZWQgc2Vzc2lvbi4KKyAgICAgICAgaWYgKHNlc3Npb24oKS0+c3RhdGUoKSA9PSBE
ZXZpY2VTZXNzaW9uOjpPcGVuZWQpCisgICAgICAgICAgICBtX2NvbnRyb2xsZXItPnJldm9rZUFj
Y2Vzc1RvTG9jYWxEZXZpY2UobV9zZXNzaW9uSWQpOworCisgICAgICAgLy8gUmVtb3ZlIHRoZSBs
aXN0ZW5lciB0byB0aGUgY3VycmVudCBzZXNzaW9uLiBUaGlzIHNob3VsZCBkZXN0cm95IGFueSBu
b24tYWN0aXZlIGxvY2FsIGRldmljZSBzZXNzaW9uLgorICAgICAgIC8vIFRoZSBhY3RpdmUgc2Vz
c2lvbnMgd2lsbCBiZSBkZXN0cm95ZWQgd2hlbiB0aGUgc2Vzc2lvbiBpcyB1cGRhdGVkIHRvIHRo
ZSBjbG9zZWQgc3RhdGUuCisgICAgICAgIGlmICghbV9zZXNzaW9uSWQuaXNOdWxsKCkpCisgICAg
ICAgICAgICBtX2NvbnRyb2xsZXItPnVucmVnaXN0ZXJTZXNzaW9uTGlzdGVuZXIobV9zZXNzaW9u
SWQucmVzZXQoKSwgdGhpcyk7CisKKyAgICAgICAgLy8gQXNzb2NpYXRlIHRoZSBlbGVtZW50IHRv
IGEgbmV3IGxvY2FsIGRldmljZSBzZXNzaW9uIG9iamVjdCBpbiB0aGUgTm9TZXNzaW9uIHN0YXRl
LgorICAgICAgICBtX3Nlc3Npb25JZCA9IG1fY29udHJvbGxlci0+cmVnaXN0ZXJEZXZpY2VTZXNz
aW9uKAorICAgICAgICAgICAgRGV2aWNlU2Vzc2lvbihtX3R5cGUsIERldmljZVNlc3Npb25JZDo6
TG9jYWwsIGRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCkpLCB0aGlzKTsKKworICAgICAgICBz
ZXRTdGF0ZShJZGxlKTsKKyAgICB9Cit9CisKK3ZvaWQgSFRNTERldmljZUVsZW1lbnQ6OmRlZmF1
bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQoreworICAgIGlmICghbV9jb250cm9sbGVyKQor
ICAgICAgICByZXR1cm47CisKKyAgICAvLyBJZ25vcmUgZXZlbnRzIGZyb20gaW52YWxpZCBkZXZp
Y2UgZWxlbWVudHMuCisgICAgaWYgKCFtX3R5cGUuaXNWYWxpZCgpKQorICAgICAgICByZXR1cm47
CisKKyAgICAvLyBGb3Igc2VjdXJpdHkgcmVhc29ucywgb25seSBhbGxvdyBjbGlja3MgZGlyZWN0
bHkgY29taW5nIGZyb20gdGhlIHVzZXIuCisgICAgaWYgKCFldmVudC0+ZnJvbVVzZXJHZXN0dXJl
KCkpCisgICAgICAgIHJldHVybiBIVE1MRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVu
dCk7CisKKyAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuY2xpY2tFdmVudCkg
eworICAgICAgICBzd2l0Y2ggKG1fc3RhdGUpIHsKKyAgICAgICAgY2FzZSBJZGxlOgorICAgICAg
ICAgICAgQVNTRVJUKHNlc3Npb24oKS0+c3RhdGUoKSA9PSBEZXZpY2VTZXNzaW9uOjpJZGxlKTsK
KyAgICAgICAgICAgIGlmIChtX2NvbnRyb2xsZXItPnJlcXVlc3RBY2Nlc3NUb0xvY2FsRGV2aWNl
KG1fc2Vzc2lvbklkKSkKKyAgICAgICAgICAgICAgICBzZXRTdGF0ZShPcGVuaW5nKTsKKyAgICAg
ICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgT3BlbmVkOgorICAgICAgICAgICAgQVNTRVJU
KHNlc3Npb24oKS0+c3RhdGUoKSA9PSBEZXZpY2VTZXNzaW9uOjpPcGVuZWQpOworICAgICAgICAg
ICAgbV9jb250cm9sbGVyLT5yZXZva2VBY2Nlc3NUb0xvY2FsRGV2aWNlKG1fc2Vzc2lvbklkKTsK
KyAgICAgICAgICAgIHNldFN0YXRlKENsb3NpbmcpOworICAgICAgICAgICAgYnJlYWs7CisKKyAg
ICAgICAgY2FzZSBPcGVuaW5nOgorICAgICAgICBjYXNlIENsb3Npbmc6CisgICAgICAgICAgICAv
LyBOb3RoaW5nIHRvIGRvIGhlcmUsIHdhaXQgZm9yIHNvbWUgZGV2aWNlIHNlc3Npb24gdXBkYXRl
IG5vdGlmaWNhdGlvbi4KKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICAvLyBJbnZhbGlkIGRldmljZSBlbGVtZW50IHN0YXRlIHZhbHVlLgorICAgICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIH0KKyAgICAgICAgZXZlbnQtPnNl
dERlZmF1bHRIYW5kbGVkKCk7CisgICAgfQorCisgICAgaWYgKCFldmVudC0+ZGVmYXVsdEhhbmRs
ZWQoKSkKKyAgICAgICAgSFRNTEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOwor
fQorCit2b2lkIEhUTUxEZXZpY2VFbGVtZW50OjpkZXZpY2VTZXNzaW9uVXBkYXRlKGNvbnN0IERl
dmljZVNlc3Npb24mIHNlc3Npb24pCit7CisgICAgc3dpdGNoIChzZXNzaW9uLnN0YXRlKCkpIHsK
KyAgICBjYXNlIERldmljZVNlc3Npb246OklkbGU6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgRGV2aWNlU2Vzc2lvbjo6T3BlbmVkOgor
ICAgICAgICBBU1NFUlQobV9zdGF0ZSA9PSBPcGVuaW5nKTsKKyAgICAgICAgc2V0U3RhdGUoT3Bl
bmVkKTsKKworICAgICAgICAvLyBGSVhNRTogZGlzcGF0Y2hpbmcgdGhlIGV2ZW50IG9ubHkgd2hl
biBhIHNlc3Npb24gaGFzIGJlZW4gb3BlbmVkIGlnbm9yaW5nIG90aGVyIHNpdHVhdGlvbnMuCisg
ICAgICAgIC8vICAgICAgICBVcGRhdGUgdGhpcyBhcyB0aGUgc3BlY2lmaWNhdGlvbiBldm9sdmVz
IChzZWUgZmFpbGVkIGNhc2UgYmVsb3cpLgorICAgICAgICBkaXNwYXRjaEV2ZW50KEV2ZW50Ojpj
cmVhdGUoZXZlbnROYW1lcygpLmNoYW5nZUV2ZW50LCB0cnVlLCBmYWxzZSkpOworICAgICAgICBi
cmVhazsKKworICAgIGNhc2UgRGV2aWNlU2Vzc2lvbjo6Q2FuY2VsbGVkOgorICAgICAgICBBU1NF
UlQobV9zdGF0ZSA9PSBPcGVuaW5nKTsKKyAgICAgICAgY2xvc2VBbmRSZXNldFNlc3Npb24oKTsK
KyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIERldmljZVNlc3Npb246OkZhaWxlZDoKKyAgICAg
ICAgQVNTRVJUKG1fc3RhdGUgIT0gSWRsZSk7CisgICAgICAgIC8vIEZJWE1FOiBob3cgc2hvdWxk
IHdlIHJlcG9ydCB0aGUgZXJyb3IgdG8gdGhlIHVzZXI/IFNwZWNpZmljYXRpb24gZG9lc24ndCBt
ZW50aW9uIHRoaXMuCisgICAgICAgIC8vIFNob3VsZCB3ZSBsYXVuY2ggYW4gb25FcnJvciBldmVu
dD8KKyAgICAgICAgY2xvc2VBbmRSZXNldFNlc3Npb24oKTsKKyAgICAgICAgYnJlYWs7CisKKyAg
ICBjYXNlIERldmljZVNlc3Npb246OkNsb3NlZDoKKyAgICAgICAgQVNTRVJUKG1fc3RhdGUgPT0g
T3BlbmVkIHx8IG1fc3RhdGUgPT0gQ2xvc2luZyk7CisgICAgICAgIC8vIEZJWE1FOiBzaG91bGQg
d2UgZGlzcGF0Y2ggYW5vdGhlciBvbmNoYW5nZSBldmVudD8KKyAgICAgICAgY2xvc2VBbmRSZXNl
dFNlc3Npb24oKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBkZWZhdWx0OgorICAgICAgICAvLyBJ
bnZhbGlkIGRldmljZSBzZXNzaW9uIHN0YXRlIHZhbHVlLgorICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICB9CisKK30KKwordm9pZCBIVE1MRGV2aWNlRWxlbWVudDo6c2Vzc2lvbkNv
bnRyb2xsZXJTaHV0ZG93bigpCit7CisgICAgbV9zZXNzaW9uSWQucmVzZXQoKTsKKyAgICBtX2Nv
bnRyb2xsZXIgPSAwOworICAgIHNldFN0YXRlKElkbGUpOworfQorCitIVE1MRGV2aWNlRWxlbWVu
dCogdG9IVE1MRGV2aWNlRWxlbWVudChFbGVtZW50KiBlbGVtZW50KQoreworICAgIGlmIChlbGVt
ZW50LT5pc0hUTUxFbGVtZW50KCkgJiYgZWxlbWVudC0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmRl
dmljZVRhZykpCisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MRGV2aWNlRWxlbWVudCo+
KGVsZW1lbnQpOworCisgICAgcmV0dXJuIDA7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShERVZJQ0VfRUxFTUVOVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTERldmljZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TERldmljZUVsZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYTQ2YTE1ZWRkZjNmMjZjODczMDhiZjAyMWE5
YmNiOTM0MzlhOTU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RGV2aWNlRWxlbWVudC5oCkBAIC0wLDAgKzEsOTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwor
ICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEhUTUxEZXZpY2VFbGVtZW50
X2gKKyNkZWZpbmUgSFRNTERldmljZUVsZW1lbnRfaAorCisjaWYgRU5BQkxFKERFVklDRV9FTEVN
RU5UKQorCisjaW5jbHVkZSAiRGV2aWNlRWxlbWVudC5oIgorI2luY2x1ZGUgIkRldmljZVNlc3Np
b25Db250cm9sbGVyLmgiCisjaW5jbHVkZSAiRGV2aWNlU2Vzc2lvbklkLmgiCisjaW5jbHVkZSAi
SFRNTEVsZW1lbnQuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGV2aWNlVHlwZTsK
K2NsYXNzIFN0cmVhbTsKKworY2xhc3MgSFRNTERldmljZUVsZW1lbnQgOiBwdWJsaWMgSFRNTEVs
ZW1lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBEZXZpY2VFbGVtZW50LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXI6
OlNlc3Npb25MaXN0ZW5lciB7CitwdWJsaWM6CisgICAgZW51bSBEZXZpY2VFbGVtZW50U3RhdGUg
eworICAgICAgICBJZGxlID0gMCwKKyAgICAgICAgT3BlbmluZywKKyAgICAgICAgT3BlbmVkLAor
ICAgICAgICBDbG9zaW5nCisgICAgfTsKKworICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxEZXZp
Y2VFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAg
dmlydHVhbCB+SFRNTERldmljZUVsZW1lbnQoKTsKKworICAgIERFRklORV9BVFRSSUJVVEVfRVZF
TlRfTElTVEVORVIoY2hhbmdlKTsKKworICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGV0YWNoKCk7CisgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmli
dXRlKEF0dHJpYnV0ZSopOworCisgICAgRGV2aWNlRWxlbWVudFN0YXRlIHN0YXRlKCkgY29uc3Q7
CisgICAgY29uc3QgRGV2aWNlVHlwZSYgZGV2aWNlVHlwZSgpIGNvbnN0OworICAgIGNvbnN0IERl
dmljZVNlc3Npb24qIHNlc3Npb24oKSBjb25zdDsKKworICAgIC8vIEltcGxlbWVudGF0aW9uIG9m
IHZpcnR1YWwgbWV0aG9kcyBmcm9tIERldmljZUVsZW1lbnQuCisgICAgdmlydHVhbCB2b2lkIHNl
dFR5cGUoY29uc3QgU3RyaW5nJik7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFN0cmVhbT4gZGF0
YSgpOworCisgICAgLy8gRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXI6OlNlc3Npb25MaXN0ZW5lciBp
bXBsZW1lbnRhdGlvbi4KKyAgICB2aXJ0dWFsIHZvaWQgZGV2aWNlU2Vzc2lvblVwZGF0ZShjb25z
dCBEZXZpY2VTZXNzaW9uJik7CisgICAgdmlydHVhbCB2b2lkIHNlc3Npb25Db250cm9sbGVyU2h1
dGRvd24oKTsKKworcHJvdGVjdGVkOgorICAgIEhUTUxEZXZpY2VFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5k
bGVyKEV2ZW50Kik7CisKK3ByaXZhdGU6CisgICAgdm9pZCBzZXRTdGF0ZShEZXZpY2VFbGVtZW50
U3RhdGUpOworICAgIHZvaWQgY2xvc2VBbmRSZXNldFNlc3Npb24oKTsKKworICAgIERldmljZUVs
ZW1lbnRTdGF0ZSBtX3N0YXRlOworICAgIERldmljZVNlc3Npb25JZCBtX3Nlc3Npb25JZDsKKyAg
ICBEZXZpY2VTZXNzaW9uQ29udHJvbGxlciAqbV9jb250cm9sbGVyOworfTsKKworSFRNTERldmlj
ZUVsZW1lbnQqIHRvSFRNTERldmljZUVsZW1lbnQoRWxlbWVudCopOworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREVWSUNFX0VMRU1FTlQpCisKKyNlbmRpZiAv
LyBIVE1MRGV2aWNlRWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxEZXZpY2VFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldmljZUVsZW1l
bnQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjYwYzAxNTE0YjhiMTI0MGJhNDEzZmI2MTA5NmJjMTNiMGE4MGJj
YzUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXZpY2VFbGVt
ZW50LmlkbApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIGh0bWwgeworCisgICAgaW50ZXJmYWNlIFsK
KyAgICAgICAgQ29uZGl0aW9uYWw9REVWSUNFX0VMRU1FTlQKKyAgICBdIEhUTUxEZXZpY2VFbGVt
ZW50IDogSFRNTEVsZW1lbnQgeworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnRO
dWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgdHlwZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIFtDdXN0b21HZXR0ZXJdIERPTU9iamVjdCBkYXRhOworICAgIH07Cit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRhZ05hbWVzLmluCmluZGV4IGJlYTYzZTQyMTI2NTUzMTk3NGY0NGI0MmFjODExODI1
ZDNkM2ZlOGYuLmYyZGNmMjVkYjQxNzM2ZjFhZDUxMmI5ZjcyYzE4NzA4MDQ3N2FiNzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVzLmluCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVzLmluCkBAIC0zNyw2ICszNyw3IEBAIGRyb3cgaW50ZXJm
YWNlTmFtZT1IVE1MRGF0YUdyaWRSb3dFbGVtZW50LCBjb25kaXRpb25hbD1EQVRBR1JJRAogZGQg
aW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogZGVsIGludGVyZmFjZU5hbWU9SFRNTE1vZEVsZW1l
bnQKIGRldGFpbHMKK2RldmljZSBpbnRlcmZhY2VOYW1lPUhUTUxEZXZpY2VFbGVtZW50LCBjb25k
aXRpb25hbD1ERVZJQ0VfRUxFTUVOVAogZGZuIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIGRp
ciBpbnRlcmZhY2VOYW1lPUhUTUxEaXJlY3RvcnlFbGVtZW50CiBkaXYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmlkbAppbmRleCBhOTQ4YTAxOGY5OTkzMTdkYjZlMzY5ODk3YjVhY2VmYjZiYzk4OWRj
Li5mYzAyYjI0Njc1N2QzMjk1YjJjYjZmODcwMjBiNGNmMDBhNWQwMTdhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuaWRsCkBAIC00MjUsNiArNDI1LDcgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAg
ICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9REFUQUdSSURdIEhUTUxEYXRhR3JpZEVsZW1lbnRD
b25zdHJ1Y3RvciBIVE1MRGF0YUdyaWRFbGVtZW50OwogICAgICAgICBhdHRyaWJ1dGUgW0NvbmRp
dGlvbmFsPURBVEFHUklEXSBIVE1MRGF0YUdyaWRDZWxsRWxlbWVudENvbnN0cnVjdG9yIEhUTUxE
YXRhR3JpZENlbGxFbGVtZW50OwogICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPURBVEFH
UklEXSBIVE1MRGF0YUdyaWRDb2xFbGVtZW50Q29uc3RydWN0b3IgSFRNTERhdGFHcmlkQ29sRWxl
bWVudDsKKyAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1ERVZJQ0VfRUxFTUVOVF0gSFRN
TERldmljZUVsZW1lbnRDb25zdHJ1Y3RvciBIVE1MRGV2aWNlRWxlbWVudDsKICAgICAgICAgYXR0
cmlidXRlIEhUTUxETGlzdEVsZW1lbnRDb25zdHJ1Y3RvciBIVE1MRExpc3RFbGVtZW50OwogICAg
ICAgICBhdHRyaWJ1dGUgSFRNTERpcmVjdG9yeUVsZW1lbnRDb25zdHJ1Y3RvciBIVE1MRGlyZWN0
b3J5RWxlbWVudDsKICAgICAgICAgYXR0cmlidXRlIEhUTUxEaXZFbGVtZW50Q29uc3RydWN0b3Ig
SFRNTERpdkVsZW1lbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNs
aWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDbGllbnQuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
MmUwYWU0YWRmZWE4OTU1NGM0MWNjMDJiMjYyMzBiMGIzMzQ3ZGY0Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDbGllbnQuaApAQCAtMCwwICsxLDczIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3Ry
aWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBE
ZXZpY2VDbGllbnRfaAorI2RlZmluZSBEZXZpY2VDbGllbnRfaAorCisjaWYgRU5BQkxFKERFVklD
RV9FTEVNRU5UKQorCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBEZXZpY2VTZXNzaW9uOworY2xhc3MgRGV2aWNlTGlzdGVuZXI7CisKK2Ns
YXNzIERldmljZUNsaWVudCB7CitwdWJsaWM6CisgICAgLy8gUmVnaXN0ZXIgdGhlIGxpc3RlbmVy
IGZvciByZWNlaXZpbmcgY2FsbGJhY2tzLiBTaG91bGQgc2V0IHRvIG51bGwgd2hlbiBub3QgcmVx
dWlyZWQgYW55bW9yZS4gTm8gb3duZXJzaGlwIGlzIHRha2VuLgorICAgIC8vIFVuZGVyIG5vcm1h
bCBjaXJjdW1zdGFuY2VzIHRoZSBsaXN0ZW5lciBzaG91bGQgYmUgdGhlIHBhZ2UgRGV2aWNlU2Vz
c2lvbkNvbnRyb2xsZXIgb2JqZWN0LgorICAgIHZpcnR1YWwgdm9pZCBzZXRMaXN0ZW5lcihEZXZp
Y2VMaXN0ZW5lciopID0gMDsKKworICAgIC8vIC0tLS0tIFNlc3Npb24tcmVsYXRlZCBtZXRob2Rz
IC0tLS0tIC8vCisKKyAgICAvLyBSZXF1ZXN0IHRvIG9wZW4gYSBzZXNzaW9uIHdpdGggYSBsb2Nh
bCBkZXZpY2Ugb2YgdGhlIHNwZWNpZmllZCB0eXBlLgorICAgIHZpcnR1YWwgYm9vbCByZXF1ZXN0
QWNjZXNzVG9Mb2NhbERldmljZShjb25zdCBEZXZpY2VTZXNzaW9uJikgPSAwOworCisgICAgLy8g
UmVxdWVzdCB0byBjbG9zZSBhIG9uZ29pbmcgbG9jYWwgZGV2aWNlIHNlc3Npb24uCisgICAgdmly
dHVhbCB2b2lkIHJldm9rZUFjY2Vzc1RvTG9jYWxEZXZpY2UoY29uc3QgRGV2aWNlU2Vzc2lvbiYp
ID0gMDsKKworICAgIC8vIC0tLS0tIE1lZGlhLXJlbGF0ZWQgbWV0aG9kcyAtLS0tLSAvLworCisg
ICAgLy8gUmVxdWVzdCB0byBzdGFydCByZWNvcmRpbmcgYW4gZXhpc3Rpbmcgc3RyZWFtIHRvIGEg
ZmlsZS4KKyAgICB2aXJ0dWFsIGJvb2wgcmVjb3JkU3RyZWFtVG9GaWxlKGludCBtZWRpYUxpc3Rl
bmVySWQsIGNvbnN0IERldmljZVNlc3Npb24mKSA9IDA7CisKKyAgICAvLyBTdG9wIHJlY29yZGlu
ZyBhIHN0cmVhbSB0byBhIGZpbGUuCisgICAgdmlydHVhbCB2b2lkIHN0b3BSZWNvcmRpbmdTdHJl
YW0oaW50IG1lZGlhTGlzdGVuZXJJZCwgY29uc3QgRGV2aWNlU2Vzc2lvbiYsIGNvbnN0IFN0cmlu
ZyYgcGF0aCkgPSAwOworCitwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB+RGV2aWNlQ2xpZW50KCkg
eyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREVW
SUNFX0VMRU1FTlQpCisKKyNlbmRpZiAvLyBEZXZpY2VDbGllbnRfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VMaXN0ZW5lci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9E
ZXZpY2VMaXN0ZW5lci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1NGI3YTA5NTVmOTQ2ZjEwYzYzNjM4YmI4OTI1
ODcwZTNkMWNhOWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Rldmlj
ZUxpc3RlbmVyLmgKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQorICogbWV0OgorICoKKyAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
CisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRGV2aWNlTGlzdGVuZXJfaAorI2RlZmluZSBE
ZXZpY2VMaXN0ZW5lcl9oCisKKyNpZiBFTkFCTEUoREVWSUNFX0VMRU1FTlQpCisKKyNpbmNsdWRl
ICJQbGF0Zm9ybVN0cmluZy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERldmlj
ZVNlc3Npb247CisKKy8vIFRoaXMgaW50ZXJmYWNlIGNvbXBvc2VzIHRoZSBkaWZmZXJlbnQga2lu
ZHMgb2YgaW5jb21pbmcgbWVzc2FnZXMgc28gdGhhdCB0aGV5IGNhbgorLy8gYmUgaW1wbGVtZW50
ZWQgYnkgYm90aCB0aGUgRGV2aWNlQ29udHJvbGxlciBhbmQgdGhlIERldmljZUNsaWVudE1vY2su
CitjbGFzcyBEZXZpY2VMaXN0ZW5lciAgeworcHVibGljOgorICAgIHZpcnR1YWwgfkRldmljZUxp
c3RlbmVyKCkgeyB9CisKKyAgICAvLyBSZXBvcnRzIGFuIHVwZGF0ZSBpbiB0aGUgc3RhdGUgb2Yg
YSBkZXZpY2Ugc2Vzc2lvbi4KKyAgICB2aXJ0dWFsIHZvaWQgZGV2aWNlU2Vzc2lvblVwZGF0ZShj
b25zdCBEZXZpY2VTZXNzaW9uJikgPSAwOworCisgICAgLy8gTm90aWZpZXMgdGhhdCBhIHN0cmVh
bSByZWNvcmRpbmcgaGFzIHN0YXJ0ZWQgYW5kIGl0cyBiZWluZyByZWNvcmRlZCBpbnRvIGEgc3Bl
Y2lmaWVkIGZpbGUuCisgICAgdmlydHVhbCB2b2lkIHN0cmVhbVJlY29yZGluZ1N0YXJ0ZWQoaW50
IG1lZGlhTGlzdGVuZXJJZCwgY29uc3QgU3RyaW5nJiBwYXRoKSA9IDA7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREVWSUNFX0VMRU1FTlQpCisKKyNl
bmRpZiAvLyBEZXZpY2VMaXN0ZW5lcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RldmljZVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlU2Vzc2lvbi5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjVjZWFhZmE2MTJjZDJlZjFhNzExMDhiOTZkNTYyNzMxOWE0MzM3ZTgKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZVNlc3Npb24uaApAQCAtMCww
ICsxLDE5NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0
OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
CisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgRGV2aWNlU2Vzc2lvbl9oCisjZGVmaW5lIERldmljZVNlc3Npb25f
aAorCisjaWYgRU5BQkxFKERFVklDRV9FTEVNRU5UKQorCisjaW5jbHVkZSAiRGV2aWNlU2Vzc2lv
bklkLmgiCisjaW5jbHVkZSAiRGV2aWNlVHlwZS5oIgorI2luY2x1ZGUgIktVUkwuaCIKKyNpbmNs
dWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5j
bHVkZSAiU3RyZWFtLmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYv
UGFzc093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBEZXZpY2VFcnJvciB7CitwdWJsaWM6CisgICAgLy8gRklYTUU6IGV4dGVu
ZCB0aGlzIGVudW1lcmF0aW9uIHdpdGggYmFzaWMgZXJyb3Igc2l0dWF0aW9ucyB3ZSBjb3VsZCBm
aW5kLgorICAgIGVudW0gRXJyb3JDb2RlIHsKKyAgICAgICAgTm9FcnJvciA9IDAsCisgICAgfTsK
KworICAgIERldmljZUVycm9yKCkgOiBtX2Vycm9yQ29kZShOb0Vycm9yKSwgbV92ZW5kb3JFcnJv
ckNvZGUoMCkgeyB9CisKKyAgICBEZXZpY2VFcnJvcihFcnJvckNvZGUgZXJyb3JDb2RlLCBpbnQg
dmVuZG9yRXJyb3JDb2RlLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKKyAgICAgICAgOiBt
X2Vycm9yQ29kZShlcnJvckNvZGUpCisgICAgICAgICwgbV92ZW5kb3JFcnJvckNvZGUodmVuZG9y
RXJyb3JDb2RlKQorICAgICAgICAsIG1fZXJyb3JNZXNzYWdlKGVycm9yTWVzc2FnZSkKKyAgICB7
IH0KKworICAgIEVycm9yQ29kZSBlcnJvckNvZGUoKSBjb25zdCB7IHJldHVybiBtX2Vycm9yQ29k
ZTsgfQorICAgIGludCB2ZW5kb3JFcnJvckNvZGUoKSBjb25zdCB7IHJldHVybiBtX3ZlbmRvckVy
cm9yQ29kZTsgfQorICAgIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKCkgY29uc3QgeyByZXR1
cm4gbV9lcnJvck1lc3NhZ2U7IH0KKworcHJpdmF0ZToKKyAgICBFcnJvckNvZGUgbV9lcnJvckNv
ZGU7CisgICAgaW50IG1fdmVuZG9yRXJyb3JDb2RlOworICAgIFN0cmluZyBtX2Vycm9yTWVzc2Fn
ZTsKK307CisKK2NsYXNzIERldmljZUluZm8geworcHVibGljOgorICAgIC8vIFNlcnZpY2Utc3Bl
Y2lmaWMgaWRzIHVzZWQgYnkgY29tcG9zaXRlIHNlc3Npb24gdHlwZXMgZm9yIHR5cGVzIGxpa2Ug
bWVkaWEuCisgICAgZW51bSBTZXJ2aWNlSWQgeworICAgICAgICBOb25lID0gMCwKKyAgICAgICAg
QXVkaW9DYXB0dXJlLAorICAgICAgICBWaWRlb0NhcHR1cmUKKyAgICB9OworCisgICAgRGV2aWNl
SW5mbygpIDogbV9zZXJ2aWNlKE5vbmUpIHsgfQorCisgICAgRGV2aWNlSW5mbyhTZXJ2aWNlSWQg
c2VydmljZSwKKyAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgbmFtZSwKKyAgICAgICAgICAg
ICAgIGNvbnN0IFN0cmluZyYgaWQsCisgICAgICAgICAgICAgICBjb25zdCBEZXZpY2VFcnJvciYg
ZXJyb3JJbmZvKQorICAgICAgICA6IG1fc2VydmljZShzZXJ2aWNlKQorICAgICAgICAsIG1fbmFt
ZShuYW1lKQorICAgICAgICAsIG1faWQoaWQpCisgICAgICAgICwgbV9lcnJvckluZm8oZXJyb3JJ
bmZvKQorICAgIHsgfQorCisgICAgU2VydmljZUlkIHNlcnZpY2UoKSBjb25zdCB7IHJldHVybiBt
X3NlcnZpY2U7IH0KKyAgICBjb25zdCBTdHJpbmcmIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25h
bWU7IH0KKyAgICBjb25zdCBTdHJpbmcmIGlkKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQorICAg
IGNvbnN0IERldmljZUVycm9yJiBlcnJvckluZm8oKSBjb25zdCB7IHJldHVybiBtX2Vycm9ySW5m
bzsgfQorCitwcml2YXRlOgorICAgIFNlcnZpY2VJZCBtX3NlcnZpY2U7CisgICAgU3RyaW5nIG1f
bmFtZTsKKyAgICBTdHJpbmcgbV9pZDsKKyAgICBEZXZpY2VFcnJvciBtX2Vycm9ySW5mbzsKK307
CisKK3R5cGVkZWYgVmVjdG9yPERldmljZUluZm8+IERldmljZUxpc3Q7CisKK2NsYXNzIERldmlj
ZVR5cGVTcGVjaWZpYyB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+RGV2aWNlVHlwZVNwZWNpZmlj
KCkgeyB9CisgICAgdmlydHVhbCBEZXZpY2VUeXBlU3BlY2lmaWMqIGNsb25lKGNvbnN0IERldmlj
ZVR5cGUmICkgY29uc3QgeyByZXR1cm4gMDsgfTsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xh
c3MgRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXI7CisKKyAgICAvLyBDYWxsZWQgd2hlbiB0aGUgc2Vz
c2lvbiBzdGF0dXMgY2hhbmdlcyB0byBPcGVuZWQuCisgICAgdmlydHVhbCB2b2lkIG9uT3BlbihE
ZXZpY2VTZXNzaW9uQ29udHJvbGxlciosIERldmljZVNlc3Npb25JZCwgY29uc3QgRGV2aWNlVHlw
ZVNwZWNpZmljKikgeyB9CisKKyAgICAvLyBDYWxsZWQgd2hlbiB0aGUgc2Vzc2lvbiBzdGF0dXMg
Y2hhbmdlcyB0byBGYWlsZWQgb3IgQ2xvc2VkLgorICAgIHZpcnR1YWwgdm9pZCBvbkNsb3NlKERl
dmljZVNlc3Npb25Db250cm9sbGVyKiwgRGV2aWNlU2Vzc2lvbklkLCBjb25zdCBEZXZpY2VUeXBl
U3BlY2lmaWMqKSB7IH0KK307CisKK2NsYXNzIERldmljZVNlc3Npb24geworcHVibGljOgorICAg
IGVudW0gRGV2aWNlU2Vzc2lvblN0YXRlIHsKKyAgICAgICAgSWRsZSA9IDAsIC8vIE5vdCBhc3Nv
Y2lhdGVkIHRvIGFueSBkZXZpY2Ugc2Vzc2lvbi4KKyAgICAgICAgT3BlbmVkLCAvLyBEZXZpY2Ug
c2Vzc2lvbiBvcGVuZWQgc3VjY2Vzc2Z1bGx5LgorICAgICAgICBDYW5jZWxsZWQsIC8vIERldmlj
ZSBzZWxlY3Rpb24gY2FuY2VsbGVkIGJ5IHRoZSB1c2VyLgorICAgICAgICBGYWlsZWQsIC8vIFNl
c3Npb24gdGVybWluYXRpb24gYnkgYSBkZXZpY2UgYWNjZXNzIGZhaWx1cmUuCisgICAgICAgIENs
b3NlZCwgLy8gU2Vzc2lvbiBjbG9zZWQgYnkgdGhlIHVzZXIuCisgICAgfTsKKworICAgIERldmlj
ZVNlc3Npb24oKQorICAgICAgICA6IG1fc3RhdGUoSWRsZSkKKyAgICB7IH0KKworICAgIERldmlj
ZVNlc3Npb24oY29uc3QgRGV2aWNlVHlwZSYgZGV2aWNlVHlwZSwKKyAgICAgICAgICAgICAgICAg
IERldmljZVNlc3Npb25JZDo6U2Vzc2lvblR5cGUgc2Vzc2lvblR5cGUsCisgICAgICAgICAgICAg
ICAgICBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBvcmlnaW4pCisgICAgICAgIDogbV9pZChE
ZXZpY2VTZXNzaW9uSWQoMCwgc2Vzc2lvblR5cGUpKQorICAgICAgICAsIG1fdHlwZShkZXZpY2VU
eXBlKQorICAgICAgICAsIG1fc3RhdGUoSWRsZSkKKyAgICAgICAgLCBtX29yaWdpbihvcmlnaW4p
CisgICAgeyB9CisKKyAgICBEZXZpY2VTZXNzaW9uKGNvbnN0IERldmljZVNlc3Npb25JZCYgaWQs
CisgICAgICAgICAgICAgICAgICBjb25zdCBEZXZpY2VUeXBlJiB0eXBlLAorICAgICAgICAgICAg
ICAgICAgRGV2aWNlU2Vzc2lvblN0YXRlIHN0YXRlLAorICAgICAgICAgICAgICAgICAgY29uc3Qg
RGV2aWNlTGlzdCYgZGV2aWNlcywKKyAgICAgICAgICAgICAgICAgIFBhc3NSZWZQdHI8U2VjdXJp
dHlPcmlnaW4+IG9yaWdpbiwKKyAgICAgICAgICAgICAgICAgIERldmljZVR5cGVTcGVjaWZpYyog
dHlwZVNwZWNpZmljKQorICAgICAgICA6IG1faWQoaWQpCisgICAgICAgICwgbV90eXBlKHR5cGUp
CisgICAgICAgICwgbV9zdGF0ZShzdGF0ZSkKKyAgICAgICAgLCBtX2RldmljZXMoZGV2aWNlcykK
KyAgICAgICAgLCBtX29yaWdpbihvcmlnaW4pCisgICAgICAgICwgbV90eXBlU3BlY2lmaWModHlw
ZVNwZWNpZmljKQorICAgIHsgfQorCisgICAgRGV2aWNlU2Vzc2lvbihjb25zdCBEZXZpY2VTZXNz
aW9uJiBzZXNzaW9uKQorICAgICAgICA6IG1faWQoc2Vzc2lvbi5pZCgpKQorICAgICAgICAsIG1f
dHlwZShzZXNzaW9uLnR5cGUoKSkKKyAgICAgICAgLCBtX3N0YXRlKHNlc3Npb24uc3RhdGUoKSkK
KyAgICAgICAgLCBtX2RldmljZXMoc2Vzc2lvbi5kZXZpY2VzKCkpCisgICAgICAgICwgbV9vcmln
aW4oc2Vzc2lvbi5vcmlnaW4oKSkKKyAgICAgICAgLCBtX3R5cGVTcGVjaWZpYyhzZXNzaW9uLnR5
cGVTcGVjaWZpYygpID8gc2Vzc2lvbi50eXBlU3BlY2lmaWMoKS0+Y2xvbmUoc2Vzc2lvbi50eXBl
KCkpIDogMCkKKyAgICB7IH0KKworICAgIGNvbnN0IERldmljZVNlc3Npb25JZCYgaWQoKSBjb25z
dCB7IHJldHVybiBtX2lkOyB9CisgICAgY29uc3QgRGV2aWNlVHlwZSYgdHlwZSgpIGNvbnN0IHsg
cmV0dXJuIG1fdHlwZTsgfQorICAgIERldmljZVNlc3Npb25TdGF0ZSBzdGF0ZSgpIGNvbnN0IHsg
cmV0dXJuIG1fc3RhdGU7IH0KKyAgICBjb25zdCBEZXZpY2VMaXN0JiBkZXZpY2VzKCkgY29uc3Qg
eyByZXR1cm4gbV9kZXZpY2VzOyB9CisgICAgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gb3Jp
Z2luKCkgY29uc3QgeyByZXR1cm4gbV9vcmlnaW47IH0KKyAgICBjb25zdCBEZXZpY2VUeXBlU3Bl
Y2lmaWMqIHR5cGVTcGVjaWZpYygpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZVNwZWNpZmljLmdldCgp
OyB9CisKKyAgICBib29sIGlzTG9jYWwoKSBjb25zdCB7IHJldHVybiBtX2lkLnR5cGUoKSA9PSBE
ZXZpY2VTZXNzaW9uSWQ6OkxvY2FsOyB9CisgICAgYm9vbCBpc1JlbW90ZSgpIGNvbnN0IHsgcmV0
dXJuIG1faWQudHlwZSgpID09IERldmljZVNlc3Npb25JZDo6UmVtb3RlOyB9CisKK3ByaXZhdGU6
CisgICAgZnJpZW5kIGNsYXNzIERldmljZVNlc3Npb25Db250cm9sbGVyOworICAgIERldmljZVNl
c3Npb25JZCYgbXV0YWJsZUlkKCkgeyByZXR1cm4gbV9pZDsgfQorCisgICAgRGV2aWNlU2Vzc2lv
bklkIG1faWQ7CisgICAgRGV2aWNlVHlwZSBtX3R5cGU7CisgICAgRGV2aWNlU2Vzc2lvblN0YXRl
IG1fc3RhdGU7CisgICAgRGV2aWNlTGlzdCBtX2RldmljZXM7CisgICAgUmVmUHRyPFNlY3VyaXR5
T3JpZ2luPiBtX29yaWdpbjsKKyAgICBPd25QdHI8RGV2aWNlVHlwZVNwZWNpZmljPiBtX3R5cGVT
cGVjaWZpYzsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJM
RShERVZJQ0VfRUxFTUVOVCkKKworI2VuZGlmIC8vIERldmljZVNlc3Npb25faApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VTZXNzaW9uQ29udHJvbGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RldmljZVNlc3Npb25Db250cm9sbGVyLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
NjIxNDE4NGQ2NWI2YTM0MDFlZTQ2Y2YxNTkwZTcwNWNjZWM0MDg0Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VTZXNzaW9uQ29udHJvbGxlci5jcHAKQEAgLTAs
MCArMSwyNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1l
dDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGV2aWNlU2Vzc2lvbkNv
bnRyb2xsZXIuaCIKKworI2luY2x1ZGUgIkRldmljZUNsaWVudC5oIgorI2luY2x1ZGUgIkRldmlj
ZVNlc3Npb24uaCIKKyNpbmNsdWRlICJEZXZpY2VTZXNzaW9uU3BlY2lmaWMuaCIKKyNpbmNsdWRl
ICJEZXZpY2VUeXBlLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworI2lmIEVOQUJM
RShERVZJQ0VfRUxFTUVOVCkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitEZXZpY2VTZXNzaW9u
Q29udHJvbGxlcjo6RGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIoRGV2aWNlQ2xpZW50KiBjbGllbnQp
CisgICAgOiBtX2NsaWVudChjbGllbnQpCisgICAgLCBtX25leHRMb2NhbERldmljZVNlc3Npb25J
ZCgxKQorICAgICwgbV9uZXh0TWVkaWFMaXN0ZW5lcklkKDEpCit7CisgICAgLy8gRklYTUU6IGxp
bmsgd2l0aCB0aGUgY2xpZW50IHdoZW4gdGhlcmUgaXMgb25lIGF2YWlsYWJsZS4KKyAgICAvLyBt
X2NsaWVudC0+c2V0TGlzdGVuZXIodGhpcyk7Cit9CisKK0RldmljZVNlc3Npb25Db250cm9sbGVy
Ojp+RGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIoKQoreworICAgIG1fY2xpZW50LT5zZXRMaXN0ZW5l
cigwKTsKKworICAgIGZvciAoU2Vzc2lvbkxpc3RlbmVyc01hcDo6aXRlcmF0b3IgbGlzdGVuZXJz
ID0gbV9zZXNzaW9uTGlzdGVuZXJzLmJlZ2luKCk7IGxpc3RlbmVycyAhPSBtX3Nlc3Npb25MaXN0
ZW5lcnMuZW5kKCk7ICsrbGlzdGVuZXJzKSB7CisgICAgICAgIGZvciAoU2Vzc2lvbkxpc3RlbmVy
U2V0OjppdGVyYXRvciBsaXN0ZW5lciA9IGxpc3RlbmVycy0+c2Vjb25kLT5iZWdpbigpOyBsaXN0
ZW5lciAhPSBsaXN0ZW5lcnMtPnNlY29uZC0+ZW5kKCk7ICsrbGlzdGVuZXIpCisgICAgICAgICAg
ICAoKmxpc3RlbmVyKS0+c2Vzc2lvbkNvbnRyb2xsZXJTaHV0ZG93bigpOworCisgICAgICAgIGRl
bGV0ZSBsaXN0ZW5lcnMtPnNlY29uZDsKKyAgICB9CisKKyAgICBmb3IgKERldmljZVNlc3Npb25N
YXA6Oml0ZXJhdG9yIHNlc3Npb24gPSBtX2RldmljZVNlc3Npb25zLmJlZ2luKCk7IHNlc3Npb24g
IT0gbV9kZXZpY2VTZXNzaW9ucy5lbmQoKTsgKytzZXNzaW9uKSB7CisgICAgICAgIGlmIChzZXNz
aW9uLT5zZWNvbmQtPnN0YXRlKCkgPT0gRGV2aWNlU2Vzc2lvbjo6T3BlbmVkKQorICAgICAgICAg
ICAgcmV2b2tlQWNjZXNzVG9Mb2NhbERldmljZShzZXNzaW9uLT5zZWNvbmQtPmlkKCkpOworCisg
ICAgICAgIGRlbGV0ZSBzZXNzaW9uLT5zZWNvbmQ7CisgICAgfQorfQorCitEZXZpY2VTZXNzaW9u
SWQgRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXI6OnJlZ2lzdGVyRGV2aWNlU2Vzc2lvbihjb25zdCBE
ZXZpY2VTZXNzaW9uJiBzZXNzaW9uLCBTZXNzaW9uTGlzdGVuZXIqIGxpc3RlbmVyKQoreworICAg
IERldmljZVNlc3Npb24qIG5ld1Nlc3Npb24gPSBuZXcgRGV2aWNlU2Vzc2lvbihzZXNzaW9uKTsK
KworICAgIHN3aXRjaCAoc2Vzc2lvbi5pZCgpLnR5cGUoKSkgeworICAgIGNhc2UgRGV2aWNlU2Vz
c2lvbklkOjpMb2NhbDoKKyAgICAgICAgLy8gTG9jYWwgZGV2aWNlIHNlc3Npb24gaWRzIHNob3Vs
ZCBiZSBhc3NpZ25lZCBieSB0aGlzIG1ldGhvZC4KKyAgICAgICAgQVNTRVJUKCFuZXdTZXNzaW9u
LT5pZCgpLmlkKCkpOworICAgICAgICBuZXdTZXNzaW9uLT5tdXRhYmxlSWQoKS5tX2lkID0gbV9u
ZXh0TG9jYWxEZXZpY2VTZXNzaW9uSWQ7CisgICAgICAgICsrbV9uZXh0TG9jYWxEZXZpY2VTZXNz
aW9uSWQ7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBEZXZpY2VTZXNzaW9uSWQ6OlJlbW90
ZToKKyAgICAgICAgLy8gUmVtb3RlIGRldmljZSBzZXNzaW9uIGlkcyBzaG91bGQgYmUgYWxyZWFk
eSBhc3NpZ25lZCBieSB0aGUgU2Vzc2lvblBlZXIgQVBJLgorICAgICAgICBBU1NFUlQobmV3U2Vz
c2lvbi0+aWQoKS5pZCgpKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBkZWZhdWx0OgorICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisKKyAgICBBU1NFUlQoIW1fZGV2aWNlU2Vz
c2lvbnMuY29udGFpbnMobmV3U2Vzc2lvbi0+aWQoKSkpOworICAgIG1fZGV2aWNlU2Vzc2lvbnMu
c2V0KG5ld1Nlc3Npb24tPmlkKCksIG5ld1Nlc3Npb24pOworCisgICAgQVNTRVJUKCFtX3Nlc3Np
b25MaXN0ZW5lcnMuY29udGFpbnMobmV3U2Vzc2lvbi0+aWQoKSkpOworICAgIG1fc2Vzc2lvbkxp
c3RlbmVycy5zZXQobmV3U2Vzc2lvbi0+aWQoKSwgbmV3IFNlc3Npb25MaXN0ZW5lclNldCk7CisK
KyAgICBBU1NFUlQoIW1fc2Vzc2lvbkxpc3RlbmVycy5nZXQobmV3U2Vzc2lvbi0+aWQoKSktPmNv
bnRhaW5zKGxpc3RlbmVyKSk7CisgICAgbV9zZXNzaW9uTGlzdGVuZXJzLmdldChuZXdTZXNzaW9u
LT5pZCgpKS0+YWRkKGxpc3RlbmVyKTsKKworICAgIHN3aXRjaCAoc2Vzc2lvbi50eXBlKCkuaWQo
KSkgeworICAgIGNhc2UgRGV2aWNlVHlwZTo6SW52YWxpZDoKKyAgICAgICAgYnJlYWs7CisKKyAg
ICBjYXNlIERldmljZVR5cGU6Ok1lZGlhOgorICAgICAgICBuZXdTZXNzaW9uLT5tX3R5cGVTcGVj
aWZpYyA9IGFkb3B0UHRyKG5ldyBEZXZpY2VNZWRpYVNwZWNpZmljKCkpOworICAgICAgICBicmVh
azsKKworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0K
KworICAgIHJldHVybiBuZXdTZXNzaW9uLT5pZCgpOworfQorCit2b2lkIERldmljZVNlc3Npb25D
b250cm9sbGVyOjpyZWdpc3RlclNlc3Npb25MaXN0ZW5lcihjb25zdCBEZXZpY2VTZXNzaW9uSWQm
IGlkLCBTZXNzaW9uTGlzdGVuZXIqIGxpc3RlbmVyKQoreworICAgIEFTU0VSVCghaWQuaXNOdWxs
KCkpOworICAgIEFTU0VSVChtX2RldmljZVNlc3Npb25zLmNvbnRhaW5zKGlkKSk7CisgICAgQVNT
RVJUKG1fc2Vzc2lvbkxpc3RlbmVycy5jb250YWlucyhpZCkpOworICAgIEFTU0VSVCghbV9zZXNz
aW9uTGlzdGVuZXJzLmdldChpZCktPmNvbnRhaW5zKGxpc3RlbmVyKSk7CisKKyAgICBtX3Nlc3Np
b25MaXN0ZW5lcnMuZ2V0KGlkKS0+YWRkKGxpc3RlbmVyKTsKK30KKwordm9pZCBEZXZpY2VTZXNz
aW9uQ29udHJvbGxlcjo6dW5yZWdpc3RlclNlc3Npb25MaXN0ZW5lcihjb25zdCBEZXZpY2VTZXNz
aW9uSWQmIGlkLCBTZXNzaW9uTGlzdGVuZXIqIGxpc3RlbmVyKQoreworICAgIEFTU0VSVCghaWQu
aXNOdWxsKCkpOworICAgIEFTU0VSVChtX2RldmljZVNlc3Npb25zLmNvbnRhaW5zKGlkKSk7Cisg
ICAgQVNTRVJUKG1fc2Vzc2lvbkxpc3RlbmVycy5jb250YWlucyhpZCkpOworICAgIEFTU0VSVCht
X3Nlc3Npb25MaXN0ZW5lcnMuZ2V0KGlkKS0+Y29udGFpbnMobGlzdGVuZXIpKTsKKworICAgIG1f
c2Vzc2lvbkxpc3RlbmVycy5nZXQoaWQpLT5yZW1vdmUobGlzdGVuZXIpOworICAgIGlmIChtX3Nl
c3Npb25MaXN0ZW5lcnMuZ2V0KGlkKS0+aXNFbXB0eSgpKSB7CisgICAgICAgIGRlbGV0ZSBtX3Nl
c3Npb25MaXN0ZW5lcnMudGFrZShpZCk7CisgICAgICAgIGRlbGV0ZSBtX2RldmljZVNlc3Npb25z
LnRha2UoaWQpOworICAgIH0KK30KKworaW50IERldmljZVNlc3Npb25Db250cm9sbGVyOjpyZWdp
c3Rlck1lZGlhTGlzdGVuZXIoTWVkaWFMaXN0ZW5lciogbGlzdGVuZXIpCit7CisjaWYgZGVmaW5l
ZChERUJVRykKKyAgICAvLyBDaGVjayBpZiBhbHJlYWR5IHByZXNlbnQuCisgICAgZm9yIChNZWRp
YUxpc3RlbmVyTWFwOjppdGVyYXRvciBpdCA9IG1fbWVkaWFMaXN0ZW5lcnMuYmVnaW4oKTsgaXQg
IT0gbV9tZWRpYUxpc3RlbmVycy5lbmQoKTsgKytpdCkKKyAgICAgICAgQVNTRVJUKGl0LT5zZWNv
bmQgIT0gbGlzdGVuZXIpOworI2VuZGlmCisKKyAgICBtX21lZGlhTGlzdGVuZXJzLmFkZChtX25l
eHRNZWRpYUxpc3RlbmVySWQsIGxpc3RlbmVyKTsKKyAgICByZXR1cm4gbV9uZXh0TWVkaWFMaXN0
ZW5lcklkKys7Cit9CisKK3ZvaWQgRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXI6OnVucmVnaXN0ZXJN
ZWRpYUxpc3RlbmVyKGludCBtZWRpYUxpc3RlbmVySWQpCit7CisgICAgQVNTRVJUKG1lZGlhTGlz
dGVuZXJJZCk7CisgICAgQVNTRVJUKG1fbWVkaWFMaXN0ZW5lcnMuY29udGFpbnMobWVkaWFMaXN0
ZW5lcklkKSk7CisgICAgbV9tZWRpYUxpc3RlbmVycy5yZW1vdmUobWVkaWFMaXN0ZW5lcklkKTsK
K30KKworY29uc3QgRGV2aWNlU2Vzc2lvbiYgRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXI6OnNlc3Np
b24oY29uc3QgRGV2aWNlU2Vzc2lvbklkJiBpZCkgY29uc3QKK3sKKyAgICBBU1NFUlQoIWlkLmlz
TnVsbCgpKTsKKyAgICBBU1NFUlQobV9kZXZpY2VTZXNzaW9ucy5jb250YWlucyhpZCkpOworICAg
IHJldHVybiAqbV9kZXZpY2VTZXNzaW9ucy5nZXQoaWQpOworfQorCitEZXZpY2VTZXNzaW9uJiBE
ZXZpY2VTZXNzaW9uQ29udHJvbGxlcjo6bXV0YWJsZVNlc3Npb24oY29uc3QgRGV2aWNlU2Vzc2lv
bklkJiBpZCkKK3sKKyAgICBBU1NFUlQoIWlkLmlzTnVsbCgpKTsKKyAgICBBU1NFUlQobV9kZXZp
Y2VTZXNzaW9ucy5jb250YWlucyhpZCkpOworICAgIHJldHVybiAqbV9kZXZpY2VTZXNzaW9ucy5n
ZXQoaWQpOworfQorCitib29sIERldmljZVNlc3Npb25Db250cm9sbGVyOjppc1Nlc3Npb25JZFZh
bGlkKGNvbnN0IERldmljZVNlc3Npb25JZCYgaWQpIGNvbnN0Cit7CisgICAgaWYgKGlkLmlzTnVs
bCgpIHx8IGlkLnR5cGUoKSA9PSBEZXZpY2VTZXNzaW9uSWQ6Ok5vbmUpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIHJldHVybiBtX2RldmljZVNlc3Npb25zLmNvbnRhaW5zKGlkKTsKK30K
KworYm9vbCBEZXZpY2VTZXNzaW9uQ29udHJvbGxlcjo6cmVxdWVzdEFjY2Vzc1RvTG9jYWxEZXZp
Y2UoY29uc3QgRGV2aWNlU2Vzc2lvbklkJiBpZCkKK3sKKyAgICBpZiAoaWQudHlwZSgpICE9IERl
dmljZVNlc3Npb25JZDo6TG9jYWwpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVy
biBtX2NsaWVudC0+cmVxdWVzdEFjY2Vzc1RvTG9jYWxEZXZpY2Uoc2Vzc2lvbihpZCkpOworfQor
Cit2b2lkIERldmljZVNlc3Npb25Db250cm9sbGVyOjpyZXZva2VBY2Nlc3NUb0xvY2FsRGV2aWNl
KGNvbnN0IERldmljZVNlc3Npb25JZCYgaWQpCit7CisgICAgaWYgKGlkLnR5cGUoKSAhPSBEZXZp
Y2VTZXNzaW9uSWQ6OkxvY2FsKQorICAgICAgICByZXR1cm47CisKKyAgICByZXR1cm4gbV9jbGll
bnQtPnJldm9rZUFjY2Vzc1RvTG9jYWxEZXZpY2Uoc2Vzc2lvbihpZCkpOworfQorCit2b2lkIERl
dmljZVNlc3Npb25Db250cm9sbGVyOjpkZXZpY2VTZXNzaW9uVXBkYXRlKGNvbnN0IERldmljZVNl
c3Npb24mIHVwZGF0ZWRTZXNzaW9uKQoreworICAgIC8vIERvbid0IGFzc2VydCBpZiBub3QgcHJl
c2VudCBhcyB0aGUgc2Vzc2lvbiBtaWdodCBoYXZlIGJlZW4gZGVzdHJveWVkIChieSBkZWxldGlu
ZyBhbGwgaXRzIGxpc3RlbmVycykKKyAgICAvLyB3aGlsZSB0aGlzIGV2ZW50IHdhcyBvbiBpdHMg
d2F5LgorICAgIGlmIChtX3Nlc3Npb25MaXN0ZW5lcnMuY29udGFpbnModXBkYXRlZFNlc3Npb24u
aWQoKSkpIHsKKworICAgICAgICBEZXZpY2VTZXNzaW9uJiBzZXNzaW9uID0gbXV0YWJsZVNlc3Np
b24odXBkYXRlZFNlc3Npb24uaWQoKSk7CisgICAgICAgIEFTU0VSVChzZXNzaW9uLnR5cGUoKS5p
ZCgpID09IHVwZGF0ZWRTZXNzaW9uLnR5cGUoKS5pZCgpKTsKKworICAgICAgICBzZXNzaW9uLm1f
c3RhdGUgPSB1cGRhdGVkU2Vzc2lvbi5zdGF0ZSgpOworICAgICAgICBzZXNzaW9uLm1fZGV2aWNl
cyA9IHVwZGF0ZWRTZXNzaW9uLmRldmljZXMoKTsKKworICAgICAgICBzd2l0Y2ggKHNlc3Npb24u
c3RhdGUoKSkgeworICAgICAgICBjYXNlIERldmljZVNlc3Npb246OkNhbmNlbGxlZDoKKyAgICAg
ICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgRGV2aWNlU2Vzc2lvbjo6T3BlbmVkOgorICAg
ICAgICAgICAgaWYgKHNlc3Npb24udHlwZSgpLmlzVmFsaWQoKSkgeworICAgICAgICAgICAgICAg
IEFTU0VSVChzZXNzaW9uLnR5cGVTcGVjaWZpYygpKTsKKyAgICAgICAgICAgICAgICBzZXNzaW9u
Lm1fdHlwZVNwZWNpZmljLT5vbk9wZW4odGhpcywgc2Vzc2lvbi5pZCgpLCB1cGRhdGVkU2Vzc2lv
bi50eXBlU3BlY2lmaWMoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKwor
ICAgICAgICBjYXNlIERldmljZVNlc3Npb246OkZhaWxlZDoKKyAgICAgICAgY2FzZSBEZXZpY2VT
ZXNzaW9uOjpDbG9zZWQ6CisgICAgICAgICAgICBpZiAoc2Vzc2lvbi50eXBlKCkuaXNWYWxpZCgp
KSB7CisgICAgICAgICAgICAgICAgQVNTRVJUKHNlc3Npb24udHlwZVNwZWNpZmljKCkpOworICAg
ICAgICAgICAgICAgIHNlc3Npb24ubV90eXBlU3BlY2lmaWMtPm9uQ2xvc2UodGhpcywgc2Vzc2lv
bi5pZCgpLCB1cGRhdGVkU2Vzc2lvbi50eXBlU3BlY2lmaWMoKSk7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICBicmVhazsKKworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgICAgIH0KKworICAgICAgICBBU1NFUlQobV9zZXNzaW9uTGlz
dGVuZXJzLmNvbnRhaW5zKHNlc3Npb24uaWQoKSkpOworICAgICAgICBjb25zdCBTZXNzaW9uTGlz
dGVuZXJTZXQgKmxpc3RlbmVycyA9IG1fc2Vzc2lvbkxpc3RlbmVycy5nZXQoc2Vzc2lvbi5pZCgp
KTsKKworICAgICAgICAvLyBTb21lIHVwZGF0ZSBub3RpZmljYXRpb25zIGNhbiBjYXVzZSBsaXN0
ZW5lcnMgdG8gdW5yZWdpc3RlciB0aGVtc2VsdmVzIGFuZCBpbnZhbGlkYXRlIHRoZSBpdGVyYXRv
cnMuCisgICAgICAgIGZvciAoU2Vzc2lvbkxpc3RlbmVyU2V0Ojpjb25zdF9pdGVyYXRvciBsaXN0
ZW5lciA9IGxpc3RlbmVycy0+YmVnaW4oKTsgbGlzdGVuZXIgIT0gbGlzdGVuZXJzLT5lbmQoKTsp
IHsKKyAgICAgICAgICAgIFNlc3Npb25MaXN0ZW5lclNldDo6Y29uc3RfaXRlcmF0b3IgdGVtcCA9
IGxpc3RlbmVyOworICAgICAgICAgICAgKytsaXN0ZW5lcjsKKyAgICAgICAgICAgICgqdGVtcCkt
PmRldmljZVNlc3Npb25VcGRhdGUoc2Vzc2lvbik7CisgICAgICAgIH0KKyAgICB9Cit9CisKK2Jv
b2wgRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXI6OnJlY29yZFN0cmVhbVRvRmlsZShpbnQgbWVkaWFM
aXN0ZW5lcklkLCBjb25zdCBEZXZpY2VTZXNzaW9uSWQmIHNlc3Npb25JZCkKK3sKKyAgICBBU1NF
UlQobWVkaWFMaXN0ZW5lcklkKTsKKyAgICBBU1NFUlQobV9tZWRpYUxpc3RlbmVycy5jb250YWlu
cyhtZWRpYUxpc3RlbmVySWQpKTsKKyAgICByZXR1cm4gbV9jbGllbnQtPnJlY29yZFN0cmVhbVRv
RmlsZShtZWRpYUxpc3RlbmVySWQsIHNlc3Npb24oc2Vzc2lvbklkKSk7Cit9CisKK3ZvaWQgRGV2
aWNlU2Vzc2lvbkNvbnRyb2xsZXI6OnN0b3BSZWNvcmRpbmdTdHJlYW0oaW50IG1lZGlhTGlzdGVu
ZXJJZCwgY29uc3QgRGV2aWNlU2Vzc2lvbklkJiBzZXNzaW9uSWQsIGNvbnN0IFN0cmluZyYgcGF0
aCkKK3sKKyAgICBBU1NFUlQobWVkaWFMaXN0ZW5lcklkKTsKKyAgICBBU1NFUlQobV9tZWRpYUxp
c3RlbmVycy5jb250YWlucyhtZWRpYUxpc3RlbmVySWQpKTsKKyAgICByZXR1cm4gbV9jbGllbnQt
PnN0b3BSZWNvcmRpbmdTdHJlYW0obWVkaWFMaXN0ZW5lcklkLCBzZXNzaW9uKHNlc3Npb25JZCks
IHBhdGgpOworfQorCit2b2lkIERldmljZVNlc3Npb25Db250cm9sbGVyOjpzdHJlYW1SZWNvcmRp
bmdTdGFydGVkKGludCBtZWRpYUxpc3RlbmVySWQsIGNvbnN0IFN0cmluZyYgcGF0aCkKK3sKKyAg
ICAvLyBEb24ndCBhc3NlcnQgaWYgbm90IHByZXNlbnQgYXMgdGhlIGxpc3RlbmVyIG1pZ2h0IGhh
dmUgYmVlbiByZW1vdmVkIHdoaWxlIHRoaXMgZXZlbnQgd2FzIG9uIGl0cyB3YXkuCisgICAgQVNT
RVJUKG1lZGlhTGlzdGVuZXJJZCk7CisgICAgaWYgKG1fbWVkaWFMaXN0ZW5lcnMuY29udGFpbnMo
bWVkaWFMaXN0ZW5lcklkKSkKKyAgICAgICAgbV9tZWRpYUxpc3RlbmVycy5nZXQobWVkaWFMaXN0
ZW5lcklkKS0+c3RyZWFtUmVjb3JkaW5nU3RhcnRlZChtZWRpYUxpc3RlbmVySWQsIHBhdGgpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREVWSUNFX0VM
RU1FTlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZVNlc3Npb25Db250
cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZVNlc3Npb25Db250cm9sbGVyLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uODQ3MzVjOTUyZmVmZjY5ODJhMDlkZmJmYTlmNjhkMGZiOWJmNmY2MAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlU2Vzc2lvbkNvbnRyb2xs
ZXIuaApAQCAtMCwwICsxLDE0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
CisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXJfaAor
I2RlZmluZSBEZXZpY2VTZXNzaW9uQ29udHJvbGxlcl9oCisKKyNpZiBFTkFCTEUoREVWSUNFX0VM
RU1FTlQpCisKKyNpbmNsdWRlICJEZXZpY2VMaXN0ZW5lci5oIgorI2luY2x1ZGUgIkRldmljZVNl
c3Npb25JZC5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KKyNpbmNsdWRlIDx3dGYvTGlzdEhhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29w
eWFibGUuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEZXZpY2VDbGllbnQ7Citj
bGFzcyBEZXZpY2VTZXNzaW9uOworY2xhc3MgRGV2aWNlVHlwZTsKK2NsYXNzIFNlY3VyaXR5T3Jp
Z2luOworCitjbGFzcyBEZXZpY2VTZXNzaW9uQ29udHJvbGxlciA6IHB1YmxpYyBEZXZpY2VMaXN0
ZW5lciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIp
OworcHVibGljOgorICAgIERldmljZVNlc3Npb25Db250cm9sbGVyKERldmljZUNsaWVudCopOwor
ICAgIHZpcnR1YWwgfkRldmljZVNlc3Npb25Db250cm9sbGVyKCk7CisKKyAgICAvLyBTZXNzaW9u
IG1hbmFnZW1lbnQuIE1hbnkgbGlzdGVuZXJzIGNhbiByZWdpc3RlciB0byByZWNpZXZlIHN0YXR1
cyB1cGRhdGVzIGZvciBhIHNlc3Npb24uCisKKyAgICBjbGFzcyBTZXNzaW9uTGlzdGVuZXIgewor
ICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVhbCB+U2Vzc2lvbkxpc3RlbmVyKCkgeyB9CisKKyAg
ICAgICAgLy8gUmVwb3J0cyBhbiB1cGRhdGUgaW4gdGhlIHN0YXRlIG9mIGEgZGV2aWNlIHNlc3Np
b24uCisgICAgICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VTZXNzaW9uVXBkYXRlKGNvbnN0IERldmlj
ZVNlc3Npb24mKSA9IDA7CisKKyAgICAgICAgLy8gU2Vzc2lvbiBjb250cm9sbGVyIHNodXR0aW5n
IGRvd24uIExpc3RlbmVycyBzaG91bGQgaW52YWxpZGF0ZSBhbnkgc2Vzc2lvbiBpZHMgYW5kIGFz
c3VtZQorICAgICAgICAvLyB0byBiZSB1bnJlZ2lzdGVyZWQgZm9yIGRldmljZSBzZXNzaW9ucy4g
QW55IGFjdGl2ZSBzZXNzaW9ucyB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgY2xvc2VkLgorICAgICAg
ICAvLyBJbXBvcnRhbnQgbm90ZTogbGlzdGVuZXJzIE1VU1QgTk9UIHRyeSB0byByZWdpc3RlciB0
aGVtc2VsdmVzIHdoZW4gcmVjZWl2aW5nIHRoaXMgbWVzc2FnZS4KKyAgICAgICAgdmlydHVhbCB2
b2lkIHNlc3Npb25Db250cm9sbGVyU2h1dGRvd24oKSA9IDA7CisgICAgfTsKKworICAgIC8vIENy
ZWF0ZSBhIG5ldyBkZXZpY2Ugc2Vzc2lvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGxpc3RlbmVyIGFu
ZCByZXR1cm4gaXRzIGRldmljZSBzZXNzaW9uIGlkLgorICAgIC8vIFRoZSBpZCBlbGVtZW50IG9m
IHRoZSBzZXNzaW9uIGlkIHR1cGxlIHdpbGwgYmUgbWFuYWdlZCBieSB0aGlzIG9iamVjdCBmb3Ig
bG9jYWwgZGV2aWNlIHNlc3Npb25zLgorICAgIC8vIEZvciByZW1vdGUgZGV2aWNlIHNlc3Npb25z
LCBhIHZhbGlkIGlkIHZhbHVlIGlzIGFzc3VtZWQgdG8gYmUgYWxyZWFkeSBwcmVzZW50IGFuZCBt
YW5hZ2VkIGJ5IHRoZSBTZXNzaW9uUGVlckNsaWVudC4KKyAgICBEZXZpY2VTZXNzaW9uSWQgcmVn
aXN0ZXJEZXZpY2VTZXNzaW9uKGNvbnN0IERldmljZVNlc3Npb24mLCBTZXNzaW9uTGlzdGVuZXIq
KTsKKworICAgIC8vIFJlZ2lzdGVyIGEgbmV3IGxpc3RlbmVyIHRvIHRoZSBzdGF0dXMgdXBkYXRl
cyBvZiBhbiBleGlzdGluZyBzZXNzaW9uLgorICAgIHZvaWQgcmVnaXN0ZXJTZXNzaW9uTGlzdGVu
ZXIoY29uc3QgRGV2aWNlU2Vzc2lvbklkJiwgU2Vzc2lvbkxpc3RlbmVyKik7CisKKyAgICAvLyBV
bnJlZ2lzdGVyIGEgbGlzdGVuZXIgb2YgYSBleGlzdGluZyBzZXNzaW9uLgorICAgIC8vIFRoZSBz
ZXNzaW9uIG9iamVjdCB3aWxsIGJlIGRlc3Ryb3llZCBpZiBhbGwgbGlzdGVuZXJzIGFyZSB1bnJl
Z2lzdGVyZWQuIEFueSBhY3RpdmUgc2Vzc2lvbiB3aWxsIGJlIGNsb3NlZC4KKyAgICAvLyBOb3Rl
OiBpbiB0aGUgY2FzZSBvZiBtZWRpYSwgaXQgc2hvdWxkIGJlIGtlcHQgYWxpdmUgYnkgaXRzIG93
biBzdHJlYW0gb2JqZWN0IHVudGlsIHRoZSBzZXNzaW9uIHRvIHRoZSBkZXZpY2UgaXMgZWl0aGVy
CisgICAgLy8gcHJvcGVybHkgY2xvc2VkIG9yIGZhaWxzLiBJbiB0aGF0IGNhc2UgdGhlIHN0cmVh
bSB3aWxsIHVucmVnaXN0ZXIgaXRzZWxmIGFzIGxpc3RlbmVyIHdoZW4gcmVjZWl2aW5nIGRldmlj
ZVNlc3Npb25VcGRhdGUuCisgICAgdm9pZCB1bnJlZ2lzdGVyU2Vzc2lvbkxpc3RlbmVyKGNvbnN0
IERldmljZVNlc3Npb25JZCYsIFNlc3Npb25MaXN0ZW5lciopOworCisKKyAgICAvLyBNZWRpYSBs
aXN0ZW5pbmcuIE1lc3NhZ2UgcmVwbGllcyBhcmUgcmVjZWl2ZWQgYnkgdGhlIHNhbWUgb2JqZWN0
IHRoYXQgbWFkZSB0aGUgcmVxdWVzdHMuCisKKyAgICBjbGFzcyBNZWRpYUxpc3RlbmVyIHsKKyAg
ICBwdWJsaWM6CisgICAgICAgIHZpcnR1YWwgfk1lZGlhTGlzdGVuZXIoKSB7IH0KKworICAgICAg
ICAvLyBOb3RpZmllcyB0aGF0IGEgc3RyZWFtIHJlY29yZGluZyBoYXMgc3RhcnRlZCBhbmQgaXRz
IGJlaW5nIHJlY29yZGVkIGludG8gYSBzcGVjaWZpZWQgZmlsZS4KKyAgICAgICAgdmlydHVhbCB2
b2lkIHN0cmVhbVJlY29yZGluZ1N0YXJ0ZWQoaW50IG1lZGlhTGlzdGVuZXJJZCwgY29uc3QgU3Ry
aW5nJiBwYXRoKSA9IDA7CisgICAgfTsKKworICAgIC8vIFJlZ2lzdGVyIGEgbmV3IG1lZGlhIGxp
c3RlbmVyIGFuZCByZXR1cm4gYSB1bmlxdWUgSUQgZm9yIGl0LgorICAgIGludCByZWdpc3Rlck1l
ZGlhTGlzdGVuZXIoTWVkaWFMaXN0ZW5lciopOworCisgICAgLy8gVW5yZWdpc3RlciBhIG1lZGlh
IGxpc3RlbmVyLgorICAgIHZvaWQgdW5yZWdpc3Rlck1lZGlhTGlzdGVuZXIoaW50IG1lZGlhTGlz
dGVuZXJJZCk7CisKKworICAgIC8vIENvbnRyb2xsZXIgbWV0aG9kcy4KKworICAgIC8vIFByb3Zp
ZGVzIHRoZSBkZXZpY2Ugc2Vzc2lvbiBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIGFuIGlkLgorICAg
IGNvbnN0IERldmljZVNlc3Npb24mIHNlc3Npb24oY29uc3QgRGV2aWNlU2Vzc2lvbklkJikgY29u
c3Q7CisgICAgYm9vbCBpc1Nlc3Npb25JZFZhbGlkKGNvbnN0IERldmljZVNlc3Npb25JZCYpIGNv
bnN0OworCisgICAgLy8gUmVxdWVzdCB0byBvcGVuIGEgc2Vzc2lvbiB3aXRoIGEgbG9jYWwgZGV2
aWNlIG9mIHRoZSBzcGVjaWZpZWQgdHlwZS4KKyAgICBib29sIHJlcXVlc3RBY2Nlc3NUb0xvY2Fs
RGV2aWNlKGNvbnN0IERldmljZVNlc3Npb25JZCYpOworCisgICAgLy8gUmVxdWVzdCB0byBjbG9z
ZSBhIG9uZ29pbmcgbG9jYWwgZGV2aWNlIHNlc3Npb24uCisgICAgdm9pZCByZXZva2VBY2Nlc3NU
b0xvY2FsRGV2aWNlKGNvbnN0IERldmljZVNlc3Npb25JZCYpOworCisgICAgLy8gTWV0aG9kcyBp
bnZva2VkIGJ5IHRoZSBtZWRpYSBsaXN0ZW5lcnMuCisgICAgYm9vbCByZWNvcmRTdHJlYW1Ub0Zp
bGUoaW50IG1lZGlhTGlzdGVuZXJJZCwgY29uc3QgRGV2aWNlU2Vzc2lvbklkJik7CisgICAgdm9p
ZCBzdG9wUmVjb3JkaW5nU3RyZWFtKGludCBtZWRpYUxpc3RlbmVySWQsIGNvbnN0IERldmljZVNl
c3Npb25JZCYsIGNvbnN0IFN0cmluZyYgcGF0aCk7CisKKyAgICAvLyBEZXZpY2VMaXN0ZW5lciBp
bXBsZW1lbnRhdGlvbi4KKyAgICB2aXJ0dWFsIHZvaWQgZGV2aWNlU2Vzc2lvblVwZGF0ZShjb25z
dCBEZXZpY2VTZXNzaW9uJik7CisgICAgdmlydHVhbCB2b2lkIHN0cmVhbVJlY29yZGluZ1N0YXJ0
ZWQoaW50IG1lZGlhTGlzdGVuZXJJZCwgY29uc3QgU3RyaW5nJiBwYXRoKTsKKworcHJpdmF0ZToK
KyAgICB0eXBlZGVmIExpc3RIYXNoU2V0PFNlc3Npb25MaXN0ZW5lcio+IFNlc3Npb25MaXN0ZW5l
clNldDsKKyAgICB0eXBlZGVmIEhhc2hNYXA8RGV2aWNlU2Vzc2lvbklkLCBEZXZpY2VTZXNzaW9u
Kj4gRGV2aWNlU2Vzc2lvbk1hcDsKKyAgICB0eXBlZGVmIEhhc2hNYXA8RGV2aWNlU2Vzc2lvbklk
LCBTZXNzaW9uTGlzdGVuZXJTZXQqPiBTZXNzaW9uTGlzdGVuZXJzTWFwOworICAgIHR5cGVkZWYg
SGFzaE1hcDxpbnQsIE1lZGlhTGlzdGVuZXIqPiBNZWRpYUxpc3RlbmVyTWFwOworCisgICAgRGV2
aWNlU2Vzc2lvbiYgbXV0YWJsZVNlc3Npb24oY29uc3QgRGV2aWNlU2Vzc2lvbklkJik7CisKKyAg
ICBEZXZpY2VDbGllbnQqIG1fY2xpZW50OworICAgIERldmljZVNlc3Npb25NYXAgbV9kZXZpY2VT
ZXNzaW9uczsKKyAgICBTZXNzaW9uTGlzdGVuZXJzTWFwIG1fc2Vzc2lvbkxpc3RlbmVyczsKKyAg
ICBNZWRpYUxpc3RlbmVyTWFwIG1fbWVkaWFMaXN0ZW5lcnM7CisgICAgaW50IG1fbmV4dExvY2Fs
RGV2aWNlU2Vzc2lvbklkOworICAgIGludCBtX25leHRNZWRpYUxpc3RlbmVySWQ7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREVWSUNFX0VMRU1FTlQp
CisKKyNlbmRpZiAvLyBEZXZpY2VTZXNzaW9uQ29udHJvbGxlcl9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RldmljZVNlc3Npb25TcGVjaWZpYy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RldmljZVNlc3Npb25TcGVjaWZpYy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWQyOTljZjQ0MTQ3
YTlhODVjYjdmNjgyN2YwNTg3MTM1OTQ5NTlhZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRGV2aWNlU2Vzc2lvblNwZWNpZmljLmNwcApAQCAtMCwwICsxLDYxIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAq
IGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisg
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRldmljZVNlc3Npb25TcGVjaWZpYy5oIgorCisj
aWYgRU5BQkxFKERFVklDRV9FTEVNRU5UKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQg
RGV2aWNlTWVkaWFTcGVjaWZpYzo6b25PcGVuKERldmljZVNlc3Npb25Db250cm9sbGVyKiBjb250
cm9sbGVyLCBEZXZpY2VTZXNzaW9uSWQgc2Vzc2lvbklkLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgRGV2aWNlVHlwZVNwZWNpZmljKiBkYXRhKQoreworICAgIGNv
bnN0IERldmljZU1lZGlhU3BlY2lmaWMqIG1lZGlhID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBE
ZXZpY2VNZWRpYVNwZWNpZmljKj4oZGF0YSk7CisgICAgbV9zdHJlYW1VcmwgPSBtZWRpYS0+bV9z
dHJlYW1Vcmw7CisgICAgbV9zdHJlYW0gPSBTdHJlYW06OmNyZWF0ZShjb250cm9sbGVyLCBzZXNz
aW9uSWQsIG1fc3RyZWFtVXJsKTsKK30KKworRGV2aWNlVHlwZVNwZWNpZmljKiBEZXZpY2VNZWRp
YVNwZWNpZmljOjpjbG9uZShjb25zdCBEZXZpY2VUeXBlJiB0eXBlKSBjb25zdAoreworICAgIHN3
aXRjaCAodHlwZS5pZCgpKSB7CisgICAgY2FzZSBEZXZpY2VUeXBlOjpNZWRpYToKKyAgICAgICAg
cmV0dXJuIG5ldyBEZXZpY2VNZWRpYVNwZWNpZmljKCp0aGlzKTsKKworICAgIGRlZmF1bHQ6Cisg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAgIHJldHVybiAwOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREVWSUNFX0VMRU1F
TlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZVNlc3Npb25TcGVjaWZp
Yy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VTZXNzaW9uU3BlY2lmaWMuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42YmMxZDliM2I0NTllZWM3NjJiYjAxYWViNjVkYzU3ODMwNGExYTQ4Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VTZXNzaW9uU3BlY2lmaWMuaApAQCAt
MCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBt
ZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICog
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBEZXZpY2VTZXNzaW9uU3BlY2lmaWNfaAorI2RlZmluZSBEZXZp
Y2VTZXNzaW9uU3BlY2lmaWNfaAorCisjaWYgRU5BQkxFKERFVklDRV9FTEVNRU5UKQorCisjaW5j
bHVkZSAiRGV2aWNlU2Vzc2lvbi5oIgorI2luY2x1ZGUgIktVUkwuaCIKKyNpbmNsdWRlICJTdHJl
YW0uaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIERldmljZU1lZGlhU3BlY2lmaWMgOiBwdWJsaWMgRGV2aWNlVHlwZVNwZWNpZmljIHsK
K3B1YmxpYzoKKyAgICBEZXZpY2VNZWRpYVNwZWNpZmljKCkgeyB9CisgICAgRGV2aWNlTWVkaWFT
cGVjaWZpYyhjb25zdCBLVVJMJiBzdHJlYW1VcmwpIDogbV9zdHJlYW1Vcmwoc3RyZWFtVXJsKSB7
IH0KKyAgICB2aXJ0dWFsIERldmljZVR5cGVTcGVjaWZpYyogY2xvbmUoY29uc3QgRGV2aWNlVHlw
ZSYpIGNvbnN0OworICAgIHZpcnR1YWwgfkRldmljZU1lZGlhU3BlY2lmaWMoKSB7IH0KKworICAg
IFBhc3NSZWZQdHI8U3RyZWFtPiBzdHJlYW0oKSBjb25zdCB7IHJldHVybiBtX3N0cmVhbTsgfQor
ICAgIGNvbnN0IEtVUkwmIHN0cmVhbVVybCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RyZWFtVXJsOyB9
CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCB2b2lkIG9uT3BlbihEZXZpY2VTZXNzaW9uQ29udHJv
bGxlciosIERldmljZVNlc3Npb25JZCwgY29uc3QgRGV2aWNlVHlwZVNwZWNpZmljKik7CisgICAg
ZnJpZW5kIGNsYXNzIERldmljZVNlc3Npb25Db250cm9sbGVyOworICAgIFJlZlB0cjxTdHJlYW0+
IG1fc3RyZWFtOworICAgIEtVUkwgbV9zdHJlYW1Vcmw7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREVWSUNFX0VMRU1FTlQpCisKKyNlbmRpZiAvLyBE
ZXZpY2VTZXNzaW9uU3BlY2lmaWNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggNDExZWEzY2Q3YjI3
M2MxZmI3OGFkZTA2ZmMxNjU2NTFlNmMzNTFiZC4uYjE4NDYwM2Y2MWM4MGZhYzBlOWMyYzI4NjE2
ZDkzZGEzMjc4ZmMzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0yOSw2ICsyOSw4IEBACiAjaW5j
bHVkZSAiQ29udGV4dE1lbnVDbGllbnQuaCIKICNpbmNsdWRlICJDb250ZXh0TWVudUNvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJEZXZpY2VDbGllbnQuaCIK
KyNpbmNsdWRlICJEZXZpY2VTZXNzaW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRldmljZU1v
dGlvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIu
aCIKICNpbmNsdWRlICJEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCIKQEAgLTEzOSw2ICsxNDEs
OSBAQCBQYWdlOjpQYWdlKGNvbnN0IFBhZ2VDbGllbnRzJiBwYWdlQ2xpZW50cykKICNpZiBFTkFC
TEUoSU5QVVRfU1BFRUNIKQogICAgICwgbV9zcGVlY2hJbnB1dENsaWVudChwYWdlQ2xpZW50cy5z
cGVlY2hJbnB1dENsaWVudCkKICNlbmRpZgorI2lmIEVOQUJMRShERVZJQ0VfRUxFTUVOVCkKKyAg
ICAsIG1fZGV2aWNlQ2xpZW50KHBhZ2VDbGllbnRzLmRldmljZUNsaWVudCkKKyNlbmRpZgogICAg
ICwgbV9zZXR0aW5ncyhhZG9wdFB0cihuZXcgU2V0dGluZ3ModGhpcykpKQogICAgICwgbV9wcm9n
cmVzcyhhZG9wdFB0cihuZXcgUHJvZ3Jlc3NUcmFja2VyKSkKICAgICAsIG1fYmFja0ZvcndhcmRD
b250cm9sbGVyKGFkb3B0UHRyKG5ldyBCYWNrRm9yd2FyZENvbnRyb2xsZXIodGhpcywgcGFnZUNs
aWVudHMuYmFja0ZvcndhcmRDbGllbnQpKSkKQEAgLTE2NSw3ICsxNzAsNyBAQCBQYWdlOjpQYWdl
KGNvbnN0IFBhZ2VDbGllbnRzJiBwYWdlQ2xpZW50cykKIHsKICAgICBpZiAoIWFsbFBhZ2VzKSB7
CiAgICAgICAgIGFsbFBhZ2VzID0gbmV3IEhhc2hTZXQ8UGFnZSo+OwotICAgICAgICAKKwogICAg
ICAgICBuZXR3b3JrU3RhdGVOb3RpZmllcigpLnNldE5ldHdvcmtTdGF0ZUNoYW5nZWRGdW5jdGlv
bihuZXR3b3JrU3RhdGVDaGFuZ2VkKTsKICAgICB9CiAKQEAgLTgzOCw2ICs4NDMsMTYgQEAgU3Bl
ZWNoSW5wdXQqIFBhZ2U6OnNwZWVjaElucHV0KCkKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKERF
VklDRV9FTEVNRU5UKQorRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIqIFBhZ2U6OmRldmljZVNlc3Np
b25Db250cm9sbGVyKCkKK3sKKyAgICBBU1NFUlQobV9kZXZpY2VDbGllbnQpOworICAgIGlmICgh
bV9kZXZpY2VTZXNzaW9uQ29udHJvbGxlci5nZXQoKSkKKyAgICAgICAgbV9kZXZpY2VTZXNzaW9u
Q29udHJvbGxlci5zZXQobmV3IERldmljZVNlc3Npb25Db250cm9sbGVyKG1fZGV2aWNlQ2xpZW50
KSk7CisgICAgcmV0dXJuIG1fZGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIuZ2V0KCk7Cit9CisjZW5k
aWYKKwogdm9pZCBQYWdlOjpkbnNQcmVmZXRjaGluZ1N0YXRlQ2hhbmdlZCgpCiB7CiAgICAgZm9y
IChGcmFtZSogZnJhbWUgPSBtYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUo
KS0+dHJhdmVyc2VOZXh0KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDQ0OThkMzZiYTcwN2JlOTgzNzYy
YjM3ZDEyOGMxMzY4MjkzMzJhOTYuLjhjYzE3Zjg5MzhhYzJmZWZiMzQyZjM3NzdiM2E3OWZmNjQ3
MGYxMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC03NSw2ICs3NSw5IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICBjbGFzcyBTaGFyZWRHcmFwaGljc0NvbnRleHQzRDsKICAgICBjbGFzcyBTcGVlY2hJ
bnB1dDsKICAgICBjbGFzcyBTcGVlY2hJbnB1dENsaWVudDsKKyAgICBjbGFzcyBEZXZpY2VDbGll
bnQ7CisgICAgY2xhc3MgRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXI7CisKICNpZiBFTkFCTEUoRE9N
X1NUT1JBR0UpCiAgICAgY2xhc3MgU3RvcmFnZU5hbWVzcGFjZTsKICNlbmRpZgpAQCAtMTEzLDYg
KzExNiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIERldmljZU9yaWVudGF0
aW9uQ2xpZW50KiBkZXZpY2VPcmllbnRhdGlvbkNsaWVudDsKICAgICAgICAgICAgIFJlZlB0cjxC
YWNrRm9yd2FyZExpc3Q+IGJhY2tGb3J3YXJkQ2xpZW50OwogICAgICAgICAgICAgU3BlZWNoSW5w
dXRDbGllbnQqIHNwZWVjaElucHV0Q2xpZW50OworICAgICAgICAgICAgRGV2aWNlQ2xpZW50KiBk
ZXZpY2VDbGllbnQ7CiAgICAgICAgIH07CiAKICAgICAgICAgUGFnZShjb25zdCBQYWdlQ2xpZW50
cyYpOwpAQCAtMTc5LDYgKzE4Myw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUo
SU5QVVRfU1BFRUNIKQogICAgICAgICBTcGVlY2hJbnB1dCogc3BlZWNoSW5wdXQoKTsKICNlbmRp
ZgorI2lmIEVOQUJMRShERVZJQ0VfRUxFTUVOVCkKKyAgICAgICAgRGV2aWNlU2Vzc2lvbkNvbnRy
b2xsZXIqIGRldmljZVNlc3Npb25Db250cm9sbGVyKCk7CisjZW5kaWYKICAgICAgICAgU2V0dGlu
Z3MqIHNldHRpbmdzKCkgY29uc3QgeyByZXR1cm4gbV9zZXR0aW5ncy5nZXQoKTsgfQogICAgICAg
ICBQcm9ncmVzc1RyYWNrZXIqIHByb2dyZXNzKCkgY29uc3QgeyByZXR1cm4gbV9wcm9ncmVzcy5n
ZXQoKTsgfQogICAgICAgICBCYWNrRm9yd2FyZENvbnRyb2xsZXIqIGJhY2tGb3J3YXJkKCkgY29u
c3QgeyByZXR1cm4gbV9iYWNrRm9yd2FyZENvbnRyb2xsZXIuZ2V0KCk7IH0KQEAgLTE5NSw3ICsy
MDIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgVmlld01vZGUgdmlld01vZGUo
KSBjb25zdCB7IHJldHVybiBtX3ZpZXdNb2RlOyB9CiAgICAgICAgIHZvaWQgc2V0Vmlld01vZGUo
Vmlld01vZGUpOwotICAgICAgICAKKwogICAgICAgICB2b2lkIHNldFRhYktleUN5Y2xlc1Rocm91
Z2hFbGVtZW50cyhib29sIGIpIHsgbV90YWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHMgPSBiOyB9
CiAgICAgICAgIGJvb2wgdGFiS2V5Q3ljbGVzVGhyb3VnaEVsZW1lbnRzKCkgY29uc3QgeyByZXR1
cm4gbV90YWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHM7IH0KIApAQCAtMzA0LDcgKzMxMSw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQog
ICAgICAgICBSZWZQdHI8U2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q+IG1fc2hhcmVkR3JhcGhpY3ND
b250ZXh0M0Q7CiAjZW5kaWYKLSAgICAgICAgCisKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQog
ICAgICAgICBPd25QdHI8RHJhZ0NvbnRyb2xsZXI+IG1fZHJhZ0NvbnRyb2xsZXI7CiAjZW5kaWYK
QEAgLTMyNiw5ICszMzMsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBTcGVlY2hJ
bnB1dENsaWVudCogbV9zcGVlY2hJbnB1dENsaWVudDsKICAgICAgICAgT3duUHRyPFNwZWVjaElu
cHV0PiBtX3NwZWVjaElucHV0OwogI2VuZGlmCisjaWYgRU5BQkxFKERFVklDRV9FTEVNRU5UKQor
ICAgICAgICBEZXZpY2VDbGllbnQqIG1fZGV2aWNlQ2xpZW50OworICAgICAgICBPd25QdHI8RGV2
aWNlU2Vzc2lvbkNvbnRyb2xsZXI+IG1fZGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXI7CisjZW5kaWYK
ICAgICAgICAgT3duUHRyPFNldHRpbmdzPiBtX3NldHRpbmdzOwogICAgICAgICBPd25QdHI8UHJv
Z3Jlc3NUcmFja2VyPiBtX3Byb2dyZXNzOwotICAgICAgICAKKwogICAgICAgICBPd25QdHI8QmFj
a0ZvcndhcmRDb250cm9sbGVyPiBtX2JhY2tGb3J3YXJkQ29udHJvbGxlcjsKICAgICAgICAgUmVm
UHRyPEZyYW1lPiBtX21haW5GcmFtZTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85481</attachid>
            <date>2011-03-11 09:17:00 -0800</date>
            <delta_ts>2011-04-18 09:12:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53776-20110311171658.patch</filename>
            <type>text/plain</type>
            <size>125415</size>
            <attacher name="Leandro Graciá Gil">leandrogracia</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODA4NTMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2NDhkYzcyNjk4ZjcyNjA4
N2Y3NmU1MWViOTBhOWEwNDllNGMwZjQ5Li43ZjI5YzliODI1ZjM5MzE5MzBjYjk2NzJjODRkYzcw
NTkzOTMzNjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMyIEBACisyMDExLTAzLTExICBMZWFu
ZHJvIEdyYWNpYSBHaWwgIDxsZWFuZHJvZ3JhY2lhQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBzZXNzaW9uLWJhc2Vk
IGNvZGUgZm9yIEhUTUxEZXZpY2VFbGVtZW50IGFuZCBTdHJlYW0uCisgICAgICAgIEEgZGV2aWNl
IHNlc3Npb24gY29udHJvbGxlciBpcyBhbHNvIGFkZGVkIHRvIG1hbmFnZSBzZXNzaW9uIHN0YXR1
cyBhbmQgcmVxdWVzdHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD01Mzc3NgorCisgICAgICAgICogQ29kZUdlbmVyYXRvcnMucHJpOgorICAgICAgICAq
IERlcml2ZWRTb3VyY2VzLmNwcDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAg
ICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAg
KiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoK
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNIVE1MRGV2aWNlRWxlbWVudEN1c3RvbS5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6SlNIVE1MRGV2aWNlRWxlbWVudDo6ZGF0YSk6CisgICAgICAgICogYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4SFRNTERldmljZUVsZW1lbnRDdXN0b20uY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlY4SFRNTERldmljZUVsZW1lbnQ6OmRhdGFBY2Nlc3NvckdldHRlcik6Cisg
ICAgICAgICogZG9tL0RPTUFsbEluT25lLmNwcDoKKyAgICAgICAgKiBkb20vRGV2aWNlRWxlbWVu
dC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlRWxlbWVudDo6RGV2aWNlRWxl
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VFbGVtZW50Ojp+RGV2aWNlRWxlbWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VFbGVtZW50Ojp0eXBlKToKKyAgICAgICAgKiBkb20v
RGV2aWNlRWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBkb20vRGV2aWNlU2Vzc2lvbklkLmg6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlU2Vzc2lvbklkOjpEZXZpY2VTZXNzaW9u
SWQpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlU2Vzc2lvbklkOjppZCk6CisgICAgICAgIChX
ZWJDb3JlOjpEZXZpY2VTZXNzaW9uSWQ6OnR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNl
U2Vzc2lvbklkOjppc051bGwpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlU2Vzc2lvbklkOjpy
ZXNldCk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VTZXNzaW9uSWQ6Om9wZXJhdG9yIHN0ZDo6
cGFpcjxpbnQsIGludD4pOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlU2Vzc2lvbklkOjpvcGVy
YXRvcj09KToKKyAgICAgICAgKiBkb20vRGV2aWNlVHlwZS5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6RGV2aWNlVHlwZTo6RGV2aWNlVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpEZXZp
Y2VUeXBlOjppZCk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VUeXBlOjpuYW1lKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRldmljZVR5cGU6OmlzVmFsaWQpOgorICAgICAgICAoV2ViQ29yZTo6RGV2
aWNlVHlwZTo6aWRGcm9tTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VUeXBlOjpuYW1l
RnJvbUlkKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZVR5cGU6Om1lZGlhKToKKyAgICAgICAg
KiBkb20vRGV2aWNlVHlwZS5oOiBBZGRlZC4KKyAgICAgICAgKiBkb20vU3RyZWFtLmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpTdHJlYW06OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTdHJlYW06OlN0cmVhbSk6CisgICAgICAgIChXZWJDb3JlOjpTdHJlYW06On5TdHJlYW0pOgor
ICAgICAgICAoV2ViQ29yZTo6U3RyZWFtOjp1cmwpOgorICAgICAgICAoV2ViQ29yZTo6U3RyZWFt
OjpzZXNzaW9uQ2xvc2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlN0cmVhbTo6c2Vzc2lvbkNvbnRy
b2xsZXJTaHV0ZG93bik6CisgICAgICAgICogZG9tL1N0cmVhbS5oOiBBZGRlZC4KKyAgICAgICAg
KiBkb20vU3RyZWFtLmlkbDogQWRkZWQuCisgICAgICAgICogaHRtbC9IVE1MRGV2aWNlRWxlbWVu
dC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTERldmljZUVsZW1lbnQ6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRGV2aWNlRWxlbWVudDo6SFRNTERldmljZUVsZW1l
bnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERldmljZUVsZW1lbnQ6On5IVE1MRGV2aWNlRWxl
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRGV2aWNlRWxlbWVudDo6cGFyc2VNYXBwZWRB
dHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERldmljZUVsZW1lbnQ6OmRldGFjaCk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MRGV2aWNlRWxlbWVudDo6c2V0VHlwZSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MRGV2aWNlRWxlbWVudDo6ZGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MRGV2aWNlRWxlbWVudDo6c3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERldmljZUVs
ZW1lbnQ6OmRldmljZVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERldmljZUVsZW1lbnQ6
OnNlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERldmljZUVsZW1lbnQ6OnNldFN0YXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEZXZpY2VFbGVtZW50OjpjbG9zZUFuZFJlc2V0U2Vz
c2lvbik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRGV2aWNlRWxlbWVudDo6ZGVmYXVsdEV2ZW50
SGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRGV2aWNlRWxlbWVudDo6c2Vzc2lvbk9w
ZW5lZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRGV2aWNlRWxlbWVudDo6c2Vzc2lvbkNhbmNl
bGxlZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRGV2aWNlRWxlbWVudDo6c2Vzc2lvbkNsb3Nl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRGV2aWNlRWxlbWVudDo6c2Vzc2lvbkNvbnRyb2xs
ZXJTaHV0ZG93bik6CisgICAgICAgIChXZWJDb3JlOjp0b0hUTUxEZXZpY2VFbGVtZW50KToKKyAg
ICAgICAgKiBodG1sL0hUTUxEZXZpY2VFbGVtZW50Lmg6IEFkZGVkLgorICAgICAgICAqIGh0bWwv
SFRNTERldmljZUVsZW1lbnQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxUYWdOYW1l
cy5pbjoKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5pZGw6CisgICAgICAgICogcGFnZS9EZXZp
Y2VDbGllbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VDbGllbnQ6On5EZXZp
Y2VDbGllbnQpOgorICAgICAgICAqIHBhZ2UvRGV2aWNlTGlzdGVuZXIuaDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpEZXZpY2VMaXN0ZW5lcjo6fkRldmljZUxpc3RlbmVyKToKKyAgICAgICAg
KiBwYWdlL0RldmljZVNlc3Npb24uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VU
eXBlU3BlY2lmaWM6OkRldmljZVR5cGVTcGVjaWZpYyk6CisgICAgICAgIChXZWJDb3JlOjpEZXZp
Y2VUeXBlU3BlY2lmaWM6On5EZXZpY2VUeXBlU3BlY2lmaWMpOgorICAgICAgICAoV2ViQ29yZTo6
RGV2aWNlVHlwZVNwZWNpZmljOjp0eXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZVR5cGVT
cGVjaWZpYzo6b25PcGVuKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZVR5cGVTcGVjaWZpYzo6
b25DbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VTZXNzaW9uOjpEZXZpY2VTZXNzaW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZVNlc3Npb246OmlkKToKKyAgICAgICAgKFdlYkNv
cmU6OkRldmljZVNlc3Npb246OnR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlU2Vzc2lv
bjo6c3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlU2Vzc2lvbjo6c2VjdXJpdHlPcmln
aW4pOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlU2Vzc2lvbjo6dHlwZVNwZWNpZmljKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRldmljZVNlc3Npb246OmlzTG9jYWwpOgorICAgICAgICAoV2ViQ29y
ZTo6RGV2aWNlU2Vzc2lvbjo6aXNSZW1vdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlU2Vz
c2lvbjo6bXV0YWJsZUlkKToKKyAgICAgICAgKiBwYWdlL0RldmljZVNlc3Npb25Db250cm9sbGVy
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VTZXNzaW9uQ29udHJvbGxlcjo6
RGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlU2Vzc2lv
bkNvbnRyb2xsZXI6On5EZXZpY2VTZXNzaW9uQ29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3Jl
OjpEZXZpY2VTZXNzaW9uQ29udHJvbGxlcjo6Y3JlYXRlTG9jYWxEZXZpY2VTZXNzaW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRldmljZVNlc3Npb25Db250cm9sbGVyOjpyZWdpc3RlclNlc3Npb25M
aXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VTZXNzaW9uQ29udHJvbGxlcjo6dW5y
ZWdpc3RlclNlc3Npb25MaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VTZXNzaW9u
Q29udHJvbGxlcjo6cmVnaXN0ZXJNZWRpYUxpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRl
dmljZVNlc3Npb25Db250cm9sbGVyOjp1bnJlZ2lzdGVyTWVkaWFMaXN0ZW5lcik6CisgICAgICAg
IChXZWJDb3JlOjpEZXZpY2VTZXNzaW9uQ29udHJvbGxlcjo6c2Vzc2lvbik6CisgICAgICAgIChX
ZWJDb3JlOjpEZXZpY2VTZXNzaW9uQ29udHJvbGxlcjo6bXV0YWJsZVNlc3Npb24pOgorICAgICAg
ICAoV2ViQ29yZTo6RGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXI6OmlzU2Vzc2lvbklkVmFsaWQpOgor
ICAgICAgICAoV2ViQ29yZTo6RGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXI6OnJlcXVlc3RBY2Nlc3NU
b0xvY2FsRGV2aWNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZVNlc3Npb25Db250cm9sbGVy
OjpyZXZva2VBY2Nlc3NUb0xvY2FsRGV2aWNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZVNl
c3Npb25Db250cm9sbGVyOjpkZXZpY2VTZXNzaW9uVXBkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkRldmljZVNlc3Npb25Db250cm9sbGVyOjpyZWNvcmRTdHJlYW1Ub0ZpbGUpOgorICAgICAgICAo
V2ViQ29yZTo6RGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXI6OnN0b3BSZWNvcmRpbmdTdHJlYW0pOgor
ICAgICAgICAoV2ViQ29yZTo6RGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXI6OnN0cmVhbVJlY29yZGlu
Z1N0YXJ0ZWQpOgorICAgICAgICAqIHBhZ2UvRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIuaDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VTZXNzaW9uQ29udHJvbGxlcjo6U2Vzc2lvbkxp
c3RlbmVyOjp+U2Vzc2lvbkxpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZVNlc3Np
b25Db250cm9sbGVyOjpTZXNzaW9uTGlzdGVuZXI6OnNlc3Npb25PcGVuZWQpOgorICAgICAgICAo
V2ViQ29yZTo6RGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXI6OlNlc3Npb25MaXN0ZW5lcjo6c2Vzc2lv
bkNhbmNlbGxlZCk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VTZXNzaW9uQ29udHJvbGxlcjo6
U2Vzc2lvbkxpc3RlbmVyOjpzZXNzaW9uQ2xvc2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmlj
ZVNlc3Npb25Db250cm9sbGVyOjpNZWRpYUxpc3RlbmVyOjp+TWVkaWFMaXN0ZW5lcik6CisgICAg
ICAgICogcGFnZS9EZXZpY2VTZXNzaW9uU3BlY2lmaWMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkRldmljZU1lZGlhU3BlY2lmaWM6OkRldmljZU1lZGlhU3BlY2lmaWMpOgorICAgICAg
ICAoV2ViQ29yZTo6RGV2aWNlTWVkaWFTcGVjaWZpYzo6b25PcGVuKToKKyAgICAgICAgKiBwYWdl
L0RldmljZVNlc3Npb25TcGVjaWZpYy5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRldmlj
ZU1lZGlhU3BlY2lmaWM6On5EZXZpY2VNZWRpYVNwZWNpZmljKToKKyAgICAgICAgKFdlYkNvcmU6
OkRldmljZU1lZGlhU3BlY2lmaWM6OnN0cmVhbSk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VN
ZWRpYVNwZWNpZmljOjpzdHJlYW1VcmwpOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmRldmlj
ZVNlc3Npb25Db250cm9sbGVyKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKwogMjAxMS0wMy0x
MSAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NvZGVHZW5lcmF0b3JzLnByaSBiL1NvdXJjZS9X
ZWJDb3JlL0NvZGVHZW5lcmF0b3JzLnByaQppbmRleCBmMTBjODFhZTA0NjhhNTMyNTRhYjNhOTQx
MWFjMzNiN2YxNzkyZmI4Li41YjA2Yzk4YzQ4NDNhMTUxMTRjODBjYzMzNTBjNWM0MjEyYTE4OTFi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Db2RlR2VuZXJhdG9ycy5wcmkKKysrIGIvU291
cmNlL1dlYkNvcmUvQ29kZUdlbmVyYXRvcnMucHJpCkBAIC0xNDgsNiArMTQ4LDcgQEAgSURMX0JJ
TkRJTkdTICs9IFwKICAgICBkb20vUHJvZ3Jlc3NFdmVudC5pZGwgXAogICAgIGRvbS9SYW5nZUV4
Y2VwdGlvbi5pZGwgXAogICAgIGRvbS9SYW5nZS5pZGwgXAorICAgIGRvbS9TdHJlYW0uaWRsIFwK
ICAgICBkb20vU3RyaW5nQ2FsbGJhY2suaWRsIFwKICAgICBkb20vVGV4dC5pZGwgXAogICAgIGRv
bS9UZXh0RXZlbnQuaWRsIFwKQEAgLTI0Myw2ICsyNDQsNyBAQCBJRExfQklORElOR1MgKz0gXAog
ICAgIGh0bWwvSFRNTERhdGFHcmlkUm93RWxlbWVudC5pZGwgXAogICAgIGh0bWwvSFRNTERhdGFM
aXN0RWxlbWVudC5pZGwgXAogICAgIGh0bWwvSFRNTERldGFpbHNFbGVtZW50LmlkbCBcCisgICAg
aHRtbC9IVE1MRGV2aWNlRWxlbWVudC5pZGwgXAogICAgIGh0bWwvSFRNTERpcmVjdG9yeUVsZW1l
bnQuaWRsIFwKICAgICBodG1sL0hUTUxEaXZFbGVtZW50LmlkbCBcCiAgICAgaHRtbC9IVE1MRExp
c3RFbGVtZW50LmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKaW5kZXggMjQwMjJmNzRl
ZjZiODgyMzdhZWJmYmU1OTgwOGMzYmE0NzdiZmU4Mi4uNzg4OGVmYzBjMTJiNTc5YTZjM2ViMTIy
NzQ2OGM0NDQyYTE3NzUwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcApAQCAtMTU0LDYg
KzE1NCw3IEBACiAjaW5jbHVkZSAiSlNIVE1MRGF0YUdyaWRSb3dFbGVtZW50LmNwcCIKICNpbmNs
dWRlICJKU0hUTUxEYXRhTGlzdEVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIkpTSFRNTERldGFpbHNF
bGVtZW50LmNwcCIKKyNpbmNsdWRlICJKU0hUTUxEZXZpY2VFbGVtZW50LmNwcCIKICNpbmNsdWRl
ICJKU0hUTUxEaXJlY3RvcnlFbGVtZW50LmNwcCIKICNpbmNsdWRlICJKU0hUTUxEaXZFbGVtZW50
LmNwcCIKICNpbmNsdWRlICJKU0hUTUxETGlzdEVsZW1lbnQuY3BwIgpAQCAtMjgzLDYgKzI4NCw3
IEBACiAjaW5jbHVkZSAiSlNTUUxUcmFuc2FjdGlvblN5bmNDYWxsYmFjay5jcHAiCiAjaW5jbHVk
ZSAiSlNTdG9yYWdlLmNwcCIKICNpbmNsdWRlICJKU1N0b3JhZ2VFdmVudC5jcHAiCisjaW5jbHVk
ZSAiSlNTdHJlYW0uY3BwIgogI2luY2x1ZGUgIkpTU3RyaW5nQ2FsbGJhY2suY3BwIgogI2luY2x1
ZGUgIkpTU3R5bGVNZWRpYS5jcHAiCiAjaW5jbHVkZSAiSlNTdHlsZVNoZWV0LmNwcCIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDQ3YTRiOGZkNjI1YWZhZGE1YzQ2YTNlODkyZmIz
Y2ZkZmE0OWRkYjEuLjAxYjU5MDZkNDU5Y2ZmNDMyZmQ5ZGYxOGJjNGU2YTliZWYxMTA0MjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMjIwLDYgKzIyMCw3IEBAIERPTV9DTEFT
U0VTID0gXAogICAgIEhUTUxEYXRhR3JpZFJvd0VsZW1lbnQgXAogICAgIEhUTUxEYXRhTGlzdEVs
ZW1lbnQgXAogICAgIEhUTUxEZXRhaWxzRWxlbWVudCBcCisgICAgSFRNTERldmljZUVsZW1lbnQg
XAogICAgIEhUTUxETGlzdEVsZW1lbnQgXAogICAgIEhUTUxEaXJlY3RvcnlFbGVtZW50IFwKICAg
ICBIVE1MRGl2RWxlbWVudCBcCkBAIC0zNTEsNiArMzUyLDcgQEAgRE9NX0NMQVNTRVMgPSBcCiAg
ICAgU1FMVHJhbnNhY3Rpb25TeW5jQ2FsbGJhY2sgXAogICAgIFN0b3JhZ2UgXAogICAgIFN0b3Jh
Z2VFdmVudCBcCisgICAgU3RyZWFtIFwKICAgICBTdHJpbmdDYWxsYmFjayBcCiAgICAgU1ZHQUVs
ZW1lbnQgXAogICAgIFNWR0FsdEdseXBoRWxlbWVudCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4
IGEyZGViMjhjNjRiNTUxOThkNzVmM2E3NjE5MzRhOTcxYmY5YzFhNzIuLjEyNDViNDgzMTU2YWEy
YzAxNTIzMDhkYWE0NzM3YWU4YWVjMGNhYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0zMTcs
NiArMzE3LDggQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTSFRNTERhdGFMaXN0RWxlbWVudC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTSFRNTERldGFpbHNFbGVtZW50LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hU
TUxEZXRhaWxzRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTERldmlj
ZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTERldmljZUVsZW1l
bnQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxEaXJlY3RvcnlFbGVtZW50LmNw
cCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxEaXJlY3RvcnlFbGVtZW50LmggXAog
CURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MRGl2RWxlbWVudC5jcHAgXApAQCAtNTM4LDYg
KzU0MCw4IEBAIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU1NRTFRyYW5zYWN0aW9uLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTUUxU
cmFuc2FjdGlvblN5bmMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1N0b3JhZ2UuaCBc
CisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1N0cmVhbS5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNTdHJlYW0uaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1N0eWxlTWVk
aWEuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3R5bGVNZWRpYS5oIFwKIAlEZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTU3R5bGVTaGVldC5jcHAgXApAQCAtODAyLDYgKzgwNiw3IEBA
IHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1M
Q2FudmFzRWxlbWVudEN1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
SFRNTENvbGxlY3Rpb25DdXN0b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0hUTUxEYXRhR3JpZEVsZW1lbnRDdXN0b20uY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0hUTUxEZXZpY2VFbGVtZW50Q3VzdG9tLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNIVE1MRG9jdW1lbnRDdXN0b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0hUTUxFbGVtZW50Q3VzdG9tLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNIVE1MRW1iZWRFbGVtZW50Q3VzdG9tLmNwcCBcCkBAIC0xMTY1LDYgKzExNzAsOCBA
QCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9EZWNvZGVkRGF0YURv
Y3VtZW50UGFyc2VyLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVz
c2FnZVBvcnRDaGFubmVsLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL2RlZmF1bHQvUGxhdGZv
cm1NZXNzYWdlUG9ydENoYW5uZWwuaCBcCisJU291cmNlL1dlYkNvcmUvZG9tL0RldmljZUVsZW1l
bnQuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlRWxlbWVudC5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9kb20vRGV2aWNlTW90aW9uQ2xpZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9E
ZXZpY2VNb3Rpb25Db250cm9sbGVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1v
dGlvbkNvbnRyb2xsZXIuaCBcCkBAIC0xMTc5LDYgKzExODYsOSBAQCB3ZWJjb3JlX3NvdXJjZXMg
Kz0gXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaCBcCiAJU291cmNlL1dl
YkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uLmggXAorCVNvdXJjZS9XZWJDb3JlL2RvbS9EZXZp
Y2VTZXNzaW9uSWQuaCBcCisJU291cmNlL1dlYkNvcmUvZG9tL0RldmljZVR5cGUuY3BwIFwKKwlT
b3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlVHlwZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmggXApAQCAtMTMxNiw2ICsxMzI2
LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU3RhdGljSGFz
aFNldE5vZGVMaXN0LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TdGF0aWNOb2RlTGlzdC5jcHAg
XAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TdGF0aWNOb2RlTGlzdC5oIFwKKwlTb3VyY2UvV2ViQ29y
ZS9kb20vU3RyZWFtLmNwcCBcCisJU291cmNlL1dlYkNvcmUvZG9tL1N0cmVhbS5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9T
dHlsZWRFbGVtZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZUVsZW1lbnQuY3BwIFwK
QEAgLTE2OTMsNiArMTcwNSw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRGF0YUxpc3RFbGVtZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TERldGFpbHNFbGVtZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0Vs
ZW1lbnQuaCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV2aWNlRWxlbWVudC5jcHAgXAor
CVNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldmljZUVsZW1lbnQuaCBcCiAJU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRGlyZWN0b3J5RWxlbWVudC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTERpcmVjdG9yeUVsZW1lbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGl2RWxl
bWVudC5jcHAgXApAQCAtMjIxMCw2ICsyMjI0LDEzIEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJ
U291cmNlL1dlYkNvcmUvcGFnZS9Db29yZGluYXRlcy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdl
L0NyeXB0by5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvQ3J5cHRvLmggXAorCVNvdXJjZS9X
ZWJDb3JlL3BhZ2UvRGV2aWNlQ2xpZW50LmggXAorCVNvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNl
TGlzdGVuZXIuaCBcCisJU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VTZXNzaW9uLmggXAorCVNv
dXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIuY3BwIFwKKwlTb3VyY2Uv
V2ViQ29yZS9wYWdlL0RldmljZVNlc3Npb25Db250cm9sbGVyLmggXAorCVNvdXJjZS9XZWJDb3Jl
L3BhZ2UvRGV2aWNlU2Vzc2lvblNwZWNpZmljLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGFnZS9E
ZXZpY2VTZXNzaW9uU3BlY2lmaWMuaCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9ET01TZWxlY3Rp
b24uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVNlbGVjdGlvbi5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZjE0M2Q1OGQy
OTZkNDExZjEyNWJiYjY1ZTA0ZTk4ZWI2ZDJhODg1Ni4uZmRlZGYxNjdhMmM0NmY1NGFiYmE4NGZl
YzgwMDM4ZWUzNWFmMDQ0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtODYsNiArODYsNyBAQAogICAg
ICAgICAgICAgJ2RvbS9SYW5nZS5pZGwnLAogICAgICAgICAgICAgJ2RvbS9SYW5nZUV4Y2VwdGlv
bi5pZGwnLAogICAgICAgICAgICAgJ2RvbS9SZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5p
ZGwnLAorICAgICAgICAgICAgJ2RvbS9TdHJlYW0uaWRsJywKICAgICAgICAgICAgICdkb20vU3Ry
aW5nQ2FsbGJhY2suaWRsJywKICAgICAgICAgICAgICdkb20vVGV4dC5pZGwnLAogICAgICAgICAg
ICAgJ2RvbS9UZXh0RXZlbnQuaWRsJywKQEAgLTE1NCw2ICsxNTUsNyBAQAogICAgICAgICAgICAg
J2h0bWwvSFRNTERhdGFHcmlkUm93RWxlbWVudC5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvSFRN
TERhdGFMaXN0RWxlbWVudC5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTERldGFpbHNFbGVt
ZW50LmlkbCcsCisgICAgICAgICAgICAnaHRtbC9IVE1MRGV2aWNlRWxlbWVudC5pZGwnLAogICAg
ICAgICAgICAgJ2h0bWwvSFRNTERpcmVjdG9yeUVsZW1lbnQuaWRsJywKICAgICAgICAgICAgICdo
dG1sL0hUTUxEaXZFbGVtZW50LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MRG9jdW1lbnQu
aWRsJywKQEAgLTcxMyw2ICs3MTUsNyBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTSFRN
TENhbnZhc0VsZW1lbnRDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0hU
TUxDb2xsZWN0aW9uQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNIVE1M
RGF0YUdyaWRFbGVtZW50Q3VzdG9tLmNwcCcsCisgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNI
VE1MRGV2aWNlRWxlbWVudEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pT
SFRNTERvY3VtZW50Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNIVE1M
RWxlbWVudEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTSFRNTEVtYmVk
RWxlbWVudEN1c3RvbS5jcHAnLApAQCAtMTA2OCw2ICsxMDcxLDcgQEAKICAgICAgICAgICAgICdi
aW5kaW5ncy92OC9jdXN0b20vVjhIVE1MQ2FudmFzRWxlbWVudEN1c3RvbS5jcHAnLAogICAgICAg
ICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxDb2xsZWN0aW9uQ3VzdG9tLmNwcCcsCiAg
ICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTERhdGFHcmlkRWxlbWVudEN1c3Rv
bS5jcHAnLAorICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxEZXZpY2VFbGVt
ZW50Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTERv
Y3VtZW50Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRN
TEVsZW1lbnRDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhI
VE1MRm9ybUVsZW1lbnRDdXN0b20uY3BwJywKQEAgLTEzNTgsNiArMTM2Miw4IEBACiAgICAgICAg
ICAgICAnZG9tL0RhdGFzZXRET01TdHJpbmdNYXAuaCcsCiAgICAgICAgICAgICAnZG9tL0RlY29k
ZWREYXRhRG9jdW1lbnRQYXJzZXIuY3BwJywKICAgICAgICAgICAgICdkb20vRGVjb2RlZERhdGFE
b2N1bWVudFBhcnNlci5oJywKKyAgICAgICAgICAgICdkb20vRGV2aWNlRWxlbWVudC5jcHAnLAor
ICAgICAgICAgICAgJ2RvbS9EZXZpY2VFbGVtZW50LmgnLAogICAgICAgICAgICAgJ2RvbS9EZXZp
Y2VNb3Rpb25DbGllbnQuaCcsCiAgICAgICAgICAgICAnZG9tL0RldmljZU1vdGlvbkNvbnRyb2xs
ZXIuY3BwJywKICAgICAgICAgICAgICdkb20vRGV2aWNlTW90aW9uQ29udHJvbGxlci5oJywKQEAg
LTEzNzIsNiArMTM3OCw5IEBACiAgICAgICAgICAgICAnZG9tL0RldmljZU9yaWVudGF0aW9uQ29u
dHJvbGxlci5oJywKICAgICAgICAgICAgICdkb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5jcHAn
LAogICAgICAgICAgICAgJ2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmgnLAorICAgICAgICAg
ICAgJ2RvbS9EZXZpY2VTZXNzaW9uSWQuaCcsCisgICAgICAgICAgICAnZG9tL0RldmljZVR5cGUu
Y3BwJywKKyAgICAgICAgICAgICdkb20vRGV2aWNlVHlwZS5oJywKICAgICAgICAgICAgICdkb20v
RG9jdW1lbnQuY3BwJywKICAgICAgICAgICAgICdkb20vRG9jdW1lbnQuaCcsCiAgICAgICAgICAg
ICAnZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwJywKQEAgLTE1MDYsNiArMTUxNSw4IEBACiAgICAg
ICAgICAgICAnZG9tL1N0YXRpY05vZGVMaXN0LmgnLAogICAgICAgICAgICAgJ2RvbS9TdGF0aWNT
dHJpbmdMaXN0LmNwcCcsCiAgICAgICAgICAgICAnZG9tL1N0YXRpY1N0cmluZ0xpc3QuaCcsCisg
ICAgICAgICAgICAnZG9tL1N0cmVhbS5jcHAnLAorICAgICAgICAgICAgJ2RvbS9TdHJlYW0uaCcs
CiAgICAgICAgICAgICAnZG9tL1N0cmluZ0NhbGxiYWNrLmNwcCcsCiAgICAgICAgICAgICAnZG9t
L1N0cmluZ0NhbGxiYWNrLmgnLAogICAgICAgICAgICAgJ2RvbS9TdHlsZUVsZW1lbnQuY3BwJywK
QEAgLTE4NjQsNiArMTg3NSw4IEBACiAgICAgICAgICAgICAnaHRtbC9IVE1MRGF0YUxpc3RFbGVt
ZW50LmgnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcCcsCiAgICAg
ICAgICAgICAnaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaCcsCisgICAgICAgICAgICAnaHRtbC9I
VE1MRGV2aWNlRWxlbWVudC5jcHAnLAorICAgICAgICAgICAgJ2h0bWwvSFRNTERldmljZUVsZW1l
bnQuaCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MRGlyZWN0b3J5RWxlbWVudC5jcHAnLAogICAg
ICAgICAgICAgJ2h0bWwvSFRNTERpcmVjdG9yeUVsZW1lbnQuaCcsCiAgICAgICAgICAgICAnaHRt
bC9IVE1MRGl2RWxlbWVudC5jcHAnLApAQCAtMjQyMiw2ICsyNDM1LDEzIEBACiAgICAgICAgICAg
ICAncGFnZS9ET01UaW1lci5oJywKICAgICAgICAgICAgICdwYWdlL0RPTVdpbmRvdy5jcHAnLAog
ICAgICAgICAgICAgJ3BhZ2UvRE9NV2luZG93LmgnLAorICAgICAgICAgICAgJ3BhZ2UvRGV2aWNl
Q2xpZW50LmgnLAorICAgICAgICAgICAgJ3BhZ2UvRGV2aWNlTGlzdGVuZXIuaCcsCisgICAgICAg
ICAgICAncGFnZS9EZXZpY2VTZXNzaW9uLmgnLAorICAgICAgICAgICAgJ3BhZ2UvRGV2aWNlU2Vz
c2lvbkNvbnRyb2xsZXIuY3BwJywKKyAgICAgICAgICAgICdwYWdlL0RldmljZVNlc3Npb25Db250
cm9sbGVyLmgnLAorICAgICAgICAgICAgJ3BhZ2UvRGV2aWNlU2Vzc2lvblNwZWNpZmljLmNwcCcs
CisgICAgICAgICAgICAncGFnZS9EZXZpY2VTZXNzaW9uU3BlY2lmaWMuaCcsCiAgICAgICAgICAg
ICAncGFnZS9EcmFnQWN0aW9ucy5oJywKICAgICAgICAgICAgICdwYWdlL0RyYWdDbGllbnQuaCcs
CiAgICAgICAgICAgICAncGFnZS9EcmFnQ29udHJvbGxlci5jcHAnLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRl
eCAyOTA0NTc1ODNmNjhiMzMxMTBlZWY2YjBkZjQxNTM4YzgxM2VmOWJhLi42OWFjZGYzMTc0NDU0
YzU5NGZiMTkzYjZjMTkzMGFiZmE2NDNlYjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnBybworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMzA4Myw2ICsz
MDgzLDM2IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9HRU9MT0NBVElPTj0xKSB7CiAgICAg
fQogfQogCitjb250YWlucyhERUZJTkVTLCBFTkFCTEVfREVWSUNFX0VMRU1FTlQ9MSkgeworICAg
IEhFQURFUlMgKz0gXAorICAgICAgICBkb20vRGV2aWNlRWxlbWVudC5oIFwKKyAgICAgICAgZG9t
L0RldmljZVNlc3Npb25JZC5oIFwKKyAgICAgICAgZG9tL0RldmljZVR5cGUuaCBcCisgICAgICAg
IGRvbS9TdHJlYW0uaCBcCisgICAgICAgIGh0bWwvSFRNTERldmljZUVsZW1lbnQuaCBcCisgICAg
ICAgIHBhZ2UvRGV2aWNlQ2xpZW50LmggXAorICAgICAgICBwYWdlL0RldmljZUxpc3RlbmVyLmgg
XAorICAgICAgICBwYWdlL0RldmljZVNlc3Npb24uaCBcCisgICAgICAgIHBhZ2UvRGV2aWNlU2Vz
c2lvbkNvbnRyb2xsZXIuaCBcCisgICAgICAgIHBhZ2UvRGV2aWNlU2Vzc2lvblNwZWNpZmljLmgK
KworICAgIFNPVVJDRVMgKz0gXAorICAgICAgICBkb20vRGV2aWNlRWxlbWVudC5jcHAgXAorICAg
ICAgICBkb20vRGV2aWNlVHlwZS5jcHAgXAorICAgICAgICBkb20vU3RyZWFtLmNwcCBcCisgICAg
ICAgIGh0bWwvSFRNTERldmljZUVsZW1lbnQuY3BwIFwKKyAgICAgICAgcGFnZS9EZXZpY2VTZXNz
aW9uQ29udHJvbGxlci5jcHAgXAorICAgICAgICBwYWdlL0RldmljZVNlc3Npb25TcGVjaWZpYy5j
cHAKKworICAgIHY4IHsKKyAgICAgICAgU09VUkNFUyArPSBcCisgICAgICAgICAgICBiaW5kaW5n
cy92OC9jdXN0b20vVjhIVE1MRGV2aWNlRWxlbWVudEN1c3RvbS5jcHAKKyAgICB9IGVsc2Ugewor
ICAgICAgICBTT1VSQ0VTICs9IFwKKyAgICAgICAgICAgIGJpbmRpbmdzL2pzL0pTSFRNTERldmlj
ZUVsZW1lbnRDdXN0b20uY3BwCisgICAgfQorfQorCiBjb250YWlucyhERUZJTkVTLCBFTkFCTEVf
U1ZHPTEpIHsKICAgICAhdjggewogICAgICAgICBTT1VSQ0VTICs9IFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggODdjNzkzODBjYTdlYWNkNWVh
MzEyNTU4Njg3ODY2YTNlZDM2ODg0ZC4uZGU0MThjMjIzYzMyN2QyNTUyZTljZDJlY2FiNGE1NDJm
ZDhmMTA0MiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2oKQEAgLTY4MzAsNiArNjgzMCw2MiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJ
CQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5h
bWUpXERlcml2ZWRTb3VyY2VzXEpTSFRNTERldmljZUVsZW1lbnQuY3BwIgorCQkJCT4KKwkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCUV4Y2x1ZGVk
RnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVD
b25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25m
aWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIi
CisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIK
KwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9MVENHfFdpbjMy
IgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJh
dGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNIVE1MRGV2
aWNlRWxlbWVudC5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQ
YXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRT
b3VyY2VzXEpTSFRNTERpcmVjdG9yeUVsZW1lbnQuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KQEAgLTEzNTU4LDYgKzEzNjE0LDYyIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJ
PEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcV2Vi
Q29yZVxEZXJpdmVkU291cmNlc1xKU1N0cmVhbS5jcHAiCisJCQkJPgorCQkJCTxGaWxlQ29uZmln
dXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
CisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJ
CQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
KwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmln
dXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0xUQ0d8V2luMzIiCisJCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQk8
L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGRE
aXIpXG9ialxXZWJDb3JlXERlcml2ZWRTb3VyY2VzXEpTU3RyZWFtLmgiCisJCQkJPgorCQkJPC9G
aWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGly
KVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNTdHlsZU1lZGlhLmNwcCIKIAkJ
CQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCkBAIC0yNDY1NCw2ICsyNDc2NiwzNCBAQAogCQkJ
CT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXERldmlj
ZUNsaWVudC5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRo
PSIuLlxwYWdlXERldmljZUxpc3RlbmVyLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUK
KwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcRGV2aWNlU2Vzc2lvbi5oIgorCQkJCT4KKwkJCTwv
RmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXERldmljZVNlc3Npb25D
b250cm9sbGVyLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZl
UGF0aD0iLi5ccGFnZVxEZXZpY2VTZXNzaW9uQ29udHJvbGxlci5oIgorCQkJCT4KKwkJCTwvRmls
ZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXERldmljZVNlc3Npb25TcGVj
aWZpYy5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXHBhZ2VcRGV2aWNlU2Vzc2lvblNwZWNpZmljLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJ
PEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcRE9NU2VsZWN0aW9uLmNwcCIKIAkJCQk+
CiAJCQk8L0ZpbGU+CkBAIC00Mjk3MCw2ICs0MzExMCw2MiBAQAogCQkJCT4KIAkJCTwvRmlsZT4K
IAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cRGV2aWNlRWxlbWVudC5jcHAiCisJ
CQkJPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5h
bWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4K
KwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMy
IgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NG
TGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJ
PFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdf
QWxsfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8
VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNl
X0xUQ0d8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJ
CTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0i
Li5cZG9tXERldmljZUVsZW1lbnQuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cZG9tXERldmljZU1vdGlvbkNsaWVudC5oIgogCQkJCT4KIAkJCTwv
RmlsZT4KQEAgLTQzMzE0LDYgKzQzNTEwLDY2IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZp
bGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxEZXZpY2VTZXNzaW9uSWQuaCIKKwkJCQk+CisJ
CQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXERldmljZVR5cGUu
Y3BwIgorCQkJCT4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWd8V2lu
MzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJ
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIi
CisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0
ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRv
b2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9D
YWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+
CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9
IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4K
KwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0i
UmVsZWFzZV9MVENHfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJ
PgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGRvbVxEZXZpY2VUeXBlLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUK
IAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxEb2N1bWVudC5jcHAiCiAJCQkJPgogCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgpAQCAtNDY2MDYsNiArNDY4NjIsNjIgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+
CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFN0cmVhbS5jcHAiCisJCQkJPgor
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgor
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxX
aW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wK
KwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdp
bjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAor
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1
cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0xUQ0d8
V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29s
CisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9t
XFN0cmVhbS5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRo
PSIuLlxkb21cU3R5bGVkRWxlbWVudC5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgpAQCAtNTIzNTQsNiArNTI2NjYsNjIgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQor
CQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxIVE1MRGV2aWNlRWxlbWVudC5jcHAiCisJCQkJPgor
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgor
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxX
aW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wK
KwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdp
bjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAor
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1
cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0xUQ0d8
V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29s
CisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRt
bFxIVE1MRGV2aWNlRWxlbWVudC5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxodG1sXEhUTUxEaXJlY3RvcnlFbGVtZW50LmNwcCIKIAkJCQk+CiAJ
CQkJPEZpbGVDb25maWd1cmF0aW9uCkBAIC01OTcwOSw2ICs2MDA3Nyw1OCBAQAogCQkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGJpbmRpbmdzXGpzXEpTSFRNTERldmljZUVsZW1lbnRDdXN0b20uY3BwIgorCQkJCQk+
CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIK
KwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJ
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJEZWJ1Z19DYWly
b19DRkxpdGV8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4K
KwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJ
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJ
TmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IlJlbGVhc2VfTFRDR3xXaW4zMiIKKwkJCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5n
c1xqc1xKU0hUTUxEb2N1bWVudEN1c3RvbS5jcHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1
cmF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggMWY3MzliYzFlMzk4NTZiNTM0N2IxOTFiMjlhNGI5YjNlNDhlOGZjNy4uNDY3
MTFlMDA0ZWU1ZmZkNjA4ZDg1OWQwN2JhODAxNjljOWQ4Zjk2YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTU2OSw2ICsxNTY5
LDI3IEBACiAJCTc1MEQwMjkzMTFEMEU3RjMwMEJEMUIyNyAvKiBSZW5kZXJJbnB1dFNwZWVjaC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTBEMDI5
MTExRDBFN0YzMDBCRDFCMjcgLyogUmVuZGVySW5wdXRTcGVlY2guY3BwICovOyB9OwogCQk3NTBE
MDI5NDExRDBFN0YzMDBCRDFCMjcgLyogUmVuZGVySW5wdXRTcGVlY2guaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1MEQwMjkyMTFEMEU3RjMwMEJEMUIy
NyAvKiBSZW5kZXJJbnB1dFNwZWVjaC5oICovOyB9OwogCQk3NTBEMDJDMTExRDBFRTdEMDBCRDFC
MjcgLyogaW5wdXRTcGVlY2gudGlmZiBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNzUwRDAyQzAxMUQwRUU3RDAwQkQxQjI3IC8qIGlucHV0U3BlZWNoLnRp
ZmYgKi87IH07CisJCTc1MjlCNzcwMTMyNjZBMUEwMDI0N0QyOSAvKiBIVE1MRGV2aWNlRWxlbWVu
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTI5
Qjc2RDEzMjY2QTFBMDAyNDdEMjkgLyogSFRNTERldmljZUVsZW1lbnQuY3BwICovOyB9OworCQk3
NTI5Qjc3MTEzMjY2QTFBMDAyNDdEMjkgLyogSFRNTERldmljZUVsZW1lbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1MjlCNzZFMTMyNjZBMUEwMDI0
N0QyOSAvKiBIVE1MRGV2aWNlRWxlbWVudC5oICovOyB9OworCQk3NTI5QkMxMzEzMjY2Q0E4MDAy
NDdEMjkgLyogSlNIVE1MRGV2aWNlRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTI5QkMxMTEzMjY2Q0E4MDAyNDdEMjkgLyogSlNIVE1M
RGV2aWNlRWxlbWVudC5jcHAgKi87IH07CisJCTc1MjlCQzE0MTMyNjZDQTgwMDI0N0QyOSAvKiBK
U0hUTUxEZXZpY2VFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3NTI5QkMxMjEzMjY2Q0E4MDAyNDdEMjkgLyogSlNIVE1MRGV2aWNlRWxlbWVu
dC5oICovOyB9OworCQk3NTI5QkQ1MDEzMjY2REUyMDAyNDdEMjkgLyogSlNIVE1MRGV2aWNlRWxl
bWVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3NTI5QkQ0RjEzMjY2REUyMDAyNDdEMjkgLyogSlNIVE1MRGV2aWNlRWxlbWVudEN1c3Rv
bS5jcHAgKi87IH07CisJCTc1MjlCRDU1MTMyNjZFMDMwMDI0N0QyOSAvKiBEZXZpY2VFbGVtZW50
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1MjlC
RDUyMTMyNjZFMDMwMDI0N0QyOSAvKiBEZXZpY2VFbGVtZW50LmNwcCAqLzsgfTsKKwkJNzUyOUJE
NTYxMzI2NkUwMzAwMjQ3RDI5IC8qIERldmljZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1MjlCRDUzMTMyNjZFMDMwMDI0N0QyOSAvKiBE
ZXZpY2VFbGVtZW50LmggKi87IH07CisJCTc1MjlCRDU0MTMyNjZFMDMwMDI0N0QyOSAvKiBEZXZp
Y2VTZXNzaW9uSWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDc1MjlCRDUxMTMyNjZFMDMwMDI0N0QyOSAvKiBEZXZpY2VTZXNzaW9uSWQuaCAqLzsgfTsK
KwkJNzUyOUJENTkxMzI2NkUxMzAwMjQ3RDI5IC8qIERldmljZVR5cGUuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzUyOUJENTcxMzI2NkUxMzAwMjQ3
RDI5IC8qIERldmljZVR5cGUuY3BwICovOyB9OworCQk3NTI5QkQ1QTEzMjY2RTEzMDAyNDdEMjkg
LyogRGV2aWNlVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNzUyOUJENTgxMzI2NkUxMzAwMjQ3RDI5IC8qIERldmljZVR5cGUuaCAqLzsgfTsKKwkJ
NzUyOUJENjExMzI2NkUzNTAwMjQ3RDI5IC8qIFN0cmVhbS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTI5QkQ1QjEzMjY2RTM1MDAyNDdEMjkgLyog
U3RyZWFtLmNwcCAqLzsgfTsKKwkJNzUyOUJENjIxMzI2NkUzNTAwMjQ3RDI5IC8qIFN0cmVhbS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzUyOUJENUMx
MzI2NkUzNTAwMjQ3RDI5IC8qIFN0cmVhbS5oICovOyB9OworCQk3NTI5QkQ4OTEzMjY2RTc2MDAy
NDdEMjkgLyogRGV2aWNlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3NTI5QkQ4MjEzMjY2RTc2MDAyNDdEMjkgLyogRGV2aWNlQ2xpZW50Lmgg
Ki87IH07CisJCTc1MjlCRDhGMTMyNjZFNzYwMDI0N0QyOSAvKiBEZXZpY2VMaXN0ZW5lci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzUyOUJEODgxMzI2
NkU3NjAwMjQ3RDI5IC8qIERldmljZUxpc3RlbmVyLmggKi87IH07CisJCTc1MjlCRDhBMTMyNjZF
NzYwMDI0N0QyOSAvKiBEZXZpY2VTZXNzaW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3NTI5QkQ4MzEzMjY2RTc2MDAyNDdEMjkgLyogRGV2aWNlU2Vz
c2lvbi5oICovOyB9OworCQk3NTI5QkQ4QjEzMjY2RTc2MDAyNDdEMjkgLyogRGV2aWNlU2Vzc2lv
bkNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNzUyOUJEODQxMzI2NkU3NjAwMjQ3RDI5IC8qIERldmljZVNlc3Npb25Db250cm9sbGVy
LmNwcCAqLzsgfTsKKwkJNzUyOUJEOEMxMzI2NkU3NjAwMjQ3RDI5IC8qIERldmljZVNlc3Npb25D
b250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3NTI5QkQ4NTEzMjY2RTc2MDAyNDdEMjkgLyogRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIuaCAq
LzsgfTsKKwkJNzUyOUJEOEQxMzI2NkU3NjAwMjQ3RDI5IC8qIERldmljZVNlc3Npb25TcGVjaWZp
Yy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTI5
QkQ4NjEzMjY2RTc2MDAyNDdEMjkgLyogRGV2aWNlU2Vzc2lvblNwZWNpZmljLmNwcCAqLzsgfTsK
KwkJNzUyOUJEOEUxMzI2NkU3NjAwMjQ3RDI5IC8qIERldmljZVNlc3Npb25TcGVjaWZpYy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzUyOUJEODcxMzI2
NkU3NjAwMjQ3RDI5IC8qIERldmljZVNlc3Npb25TcGVjaWZpYy5oICovOyB9OworCQk3NTI5QkQ5
QzEzMjY2RjI2MDAyNDdEMjkgLyogSlNTdHJlYW0uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzUyOUJEOTgxMzI2NkYyNjAwMjQ3RDI5IC8qIEpTU3Ry
ZWFtLmNwcCAqLzsgfTsKKwkJNzUyOUJEOUQxMzI2NkYyNjAwMjQ3RDI5IC8qIEpTU3RyZWFtLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTI5QkQ5OTEz
MjY2RjI2MDAyNDdEMjkgLyogSlNTdHJlYW0uaCAqLzsgfTsKIAkJNzUzNUJDOTQxMjAyMENGRjAw
MzdFQzQ1IC8qIFNwZWVjaElucHV0Q2xpZW50TW9jay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTM1QkM5MjEyMDIwQ0ZGMDAzN0VDNDUgLyogU3Bl
ZWNoSW5wdXRDbGllbnRNb2NrLmNwcCAqLzsgfTsKIAkJNzUzNUJDOTUxMjAyMENGRjAwMzdFQzQ1
IC8qIFNwZWVjaElucHV0Q2xpZW50TW9jay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzUzNUJDOTMxMjAyMENGRjAwMzdFQzQ1IC8qIFNwZWVjaElucHV0
Q2xpZW50TW9jay5oICovOyB9OwogCQk3NTQxMzNBODEwMkUwMEU4MDAwNzVEMDAgLyogSW5zcGVj
dG9yVGltZWxpbmVBZ2VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNzU0MTMzQTcxMDJFMDBFODAwMDc1RDAwIC8qIEluc3BlY3RvclRpbWVsaW5lQWdl
bnQuaCAqLzsgfTsKQEAgLTgwNzUsNiArODA5NiwyOSBAQAogCQk3NTBEMDI5MTExRDBFN0YzMDBC
RDFCMjcgLyogUmVuZGVySW5wdXRTcGVlY2guY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUmVuZGVySW5wdXRTcGVlY2guY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk3NTBEMDI5MjExRDBFN0YzMDBCRDFCMjcgLyogUmVuZGVySW5wdXRTcGVlY2guaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVySW5wdXRTcGVlY2guaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzUwRDAyQzAxMUQwRUU3RDAwQkQxQjI3IC8qIGlu
cHV0U3BlZWNoLnRpZmYgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBpbWFnZS50aWZmOyBwYXRoID0gaW5wdXRTcGVlY2gudGlmZjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNzUyOUI3NkQxMzI2NkExQTAwMjQ3RDI5IC8qIEhUTUxEZXZpY2VF
bGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxEZXZp
Y2VFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzUyOUI3NkUxMzI2
NkExQTAwMjQ3RDI5IC8qIEhUTUxEZXZpY2VFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEhUTUxEZXZpY2VFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTc1MjlCNzZGMTMyNjZBMUEwMDI0N0QyOSAvKiBIVE1MRGV2aWNlRWxlbWVudC5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTERldmljZUVsZW1lbnQuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk3NTI5QkMxMTEzMjY2Q0E4MDAyNDdEMjkgLyogSlNIVE1MRGV2
aWNlRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hU
TUxEZXZpY2VFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzUyOUJD
MTIxMzI2NkNBODAwMjQ3RDI5IC8qIEpTSFRNTERldmljZUVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1MRGV2aWNlRWxlbWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk3NTI5QkQ0RjEzMjY2REUyMDAyNDdEMjkgLyogSlNIVE1MRGV2aWNl
RWxlbWVudEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U0hUTUxEZXZpY2VFbGVtZW50Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNzUyOUJENTIxMzI2NkUwMzAwMjQ3RDI5IC8qIERldmljZUVsZW1lbnQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGV2aWNlRWxlbWVudC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1MjlCRDUzMTMyNjZFMDMwMDI0N0QyOSAvKiBEZXZpY2VF
bGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERldmljZUVsZW1lbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzUyOUJENTExMzI2NkUwMzAwMjQ3RDI5
IC8qIERldmljZVNlc3Npb25JZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
ZXZpY2VTZXNzaW9uSWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzUyOUJENTcx
MzI2NkUxMzAwMjQ3RDI5IC8qIERldmljZVR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gRGV2aWNlVHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTc1MjlCRDU4MTMyNjZFMTMwMDI0N0QyOSAvKiBEZXZpY2VUeXBlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERldmljZVR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNzUyOUJENUIxMzI2NkUzNTAwMjQ3RDI5IC8qIFN0cmVhbS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdHJlYW0uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk3NTI5QkQ1QzEzMjY2RTM1MDAyNDdEMjkgLyogU3RyZWFtLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0cmVhbS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk3NTI5QkQ1RDEzMjY2RTM1MDAyNDdEMjkgLyogU3RyZWFtLmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBTdHJlYW0uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk3NTI5QkQ4MjEzMjY2RTc2MDAyNDdEMjkgLyogRGV2aWNlQ2xpZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERldmljZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk3NTI5QkQ4ODEzMjY2RTc2MDAyNDdEMjkgLyogRGV2aWNlTGlzdGVuZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGV2aWNlTGlzdGVuZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzUyOUJEODMxMzI2NkU3NjAwMjQ3RDI5IC8qIERldmlj
ZVNlc3Npb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGV2aWNlU2Vzc2lv
bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTI5QkQ4NDEzMjY2RTc2MDAyNDdE
MjkgLyogRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk3NTI5QkQ4NTEzMjY2RTc2MDAyNDdEMjkgLyogRGV2aWNlU2Vzc2lv
bkNvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGV2aWNlU2Vz
c2lvbkNvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzUyOUJEODYx
MzI2NkU3NjAwMjQ3RDI5IC8qIERldmljZVNlc3Npb25TcGVjaWZpYy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEZXZpY2VTZXNzaW9uU3BlY2lmaWMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTI5QkQ4NzEzMjY2RTc2MDAyNDdEMjkgLyogRGV2
aWNlU2Vzc2lvblNwZWNpZmljLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERl
dmljZVNlc3Npb25TcGVjaWZpYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTI5
QkQ5ODEzMjY2RjI2MDAyNDdEMjkgLyogSlNTdHJlYW0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNTdHJlYW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk3NTI5QkQ5OTEzMjY2RjI2MDAyNDdEMjkgLyogSlNTdHJlYW0uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTdHJlYW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNzUzNUJDOTIxMjAyMENGRjAwMzdFQzQ1IC8qIFNwZWVjaElucHV0Q2xpZW50TW9jay5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTcGVlY2hJbnB1dENsaWVu
dE1vY2suY3BwOyBwYXRoID0gbW9jay9TcGVlY2hJbnB1dENsaWVudE1vY2suY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3NTM1QkM5MzEyMDIwQ0ZGMDAzN0VDNDUgLyogU3BlZWNo
SW5wdXRDbGllbnRNb2NrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFNwZWVj
aElucHV0Q2xpZW50TW9jay5oOyBwYXRoID0gbW9jay9TcGVlY2hJbnB1dENsaWVudE1vY2suaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzU0MTMzQTcxMDJFMDBFODAwMDc1RDAwIC8q
IEluc3BlY3RvclRpbWVsaW5lQWdlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTQwODQsNiArMTQxMjgsMTMgQEAKIAkJCQkxNDAzQjk5NjA5RUIxM0FGMDA3OTdDN0YgLyog
RE9NV2luZG93LmNwcCAqLywKIAkJCQkxNDAzQjk5NTA5RUIxM0FGMDA3OTdDN0YgLyogRE9NV2lu
ZG93LmggKi8sCiAJCQkJMTQwM0I5MEMwOUVCMTI0NTAwNzk3QzdGIC8qIERPTVdpbmRvdy5pZGwg
Ki8sCisJCQkJNzUyOUJEODIxMzI2NkU3NjAwMjQ3RDI5IC8qIERldmljZUNsaWVudC5oICovLAor
CQkJCTc1MjlCRDg4MTMyNjZFNzYwMDI0N0QyOSAvKiBEZXZpY2VMaXN0ZW5lci5oICovLAorCQkJ
CTc1MjlCRDgzMTMyNjZFNzYwMDI0N0QyOSAvKiBEZXZpY2VTZXNzaW9uLmggKi8sCisJCQkJNzUy
OUJEODQxMzI2NkU3NjAwMjQ3RDI5IC8qIERldmljZVNlc3Npb25Db250cm9sbGVyLmNwcCAqLywK
KwkJCQk3NTI5QkQ4NTEzMjY2RTc2MDAyNDdEMjkgLyogRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIu
aCAqLywKKwkJCQk3NTI5QkQ4NjEzMjY2RTc2MDAyNDdEMjkgLyogRGV2aWNlU2Vzc2lvblNwZWNp
ZmljLmNwcCAqLywKKwkJCQk3NTI5QkQ4NzEzMjY2RTc2MDAyNDdEMjkgLyogRGV2aWNlU2Vzc2lv
blNwZWNpZmljLmggKi8sCiAJCQkJQTcxODc2MEQwQjJBMTIwMTAwQTE2RUNFIC8qIERyYWdBY3Rp
b25zLmggKi8sCiAJCQkJQTdDQTU5NjIwQjI3QzFGMjAwRkEwMjFEIC8qIERyYWdDbGllbnQuaCAq
LywKIAkJCQlBN0NBNTk1QzBCMjdCRDlFMDBGQTAyMUQgLyogRHJhZ0NvbnRyb2xsZXIuY3BwICov
LApAQCAtMTU2NzksNiArMTU3MzAsOSBAQAogCQkJCUQzNTlENzg2MTI5Q0EyNzEwMDA2RTVEMiAv
KiBIVE1MRGV0YWlsc0VsZW1lbnQuY3BwICovLAogCQkJCUQzNTlENzg3MTI5Q0EyNzEwMDA2RTVE
MiAvKiBIVE1MRGV0YWlsc0VsZW1lbnQuaCAqLywKIAkJCQlEMzU5RDc4ODEyOUNBMjcxMDAwNkU1
RDIgLyogSFRNTERldGFpbHNFbGVtZW50LmlkbCAqLywKKwkJCQk3NTI5Qjc2RDEzMjY2QTFBMDAy
NDdEMjkgLyogSFRNTERldmljZUVsZW1lbnQuY3BwICovLAorCQkJCTc1MjlCNzZFMTMyNjZBMUEw
MDI0N0QyOSAvKiBIVE1MRGV2aWNlRWxlbWVudC5oICovLAorCQkJCTc1MjlCNzZGMTMyNjZBMUEw
MDI0N0QyOSAvKiBIVE1MRGV2aWNlRWxlbWVudC5pZGwgKi8sCiAJCQkJQThFQTc5RUQwQTE5MTZE
RjAwQThFRjVGIC8qIEhUTUxEaXJlY3RvcnlFbGVtZW50LmNwcCAqLywKIAkJCQlBOEVBNzlFRTBB
MTkxNkRGMDBBOEVGNUYgLyogSFRNTERpcmVjdG9yeUVsZW1lbnQuaCAqLywKIAkJCQkxQTg1QjFE
OTBBMUIyM0E0MDBEOEM4N0MgLyogSFRNTERpcmVjdG9yeUVsZW1lbnQuaWRsICovLApAQCAtMTYy
MjcsNiArMTYyODEsOCBAQAogCQkJCUY1QzA0MUUyMEZGQ0E5NkQwMDgzOUQ0QSAvKiBKU0hUTUxE
YXRhTGlzdEVsZW1lbnQuaCAqLywKIAkJCQlEMzU5RDhCQzEyOUNBNTVDMDAwNkU1RDIgLyogSlNI
VE1MRGV0YWlsc0VsZW1lbnQuY3BwICovLAogCQkJCUQzNTlEOEJEMTI5Q0E1NUMwMDA2RTVEMiAv
KiBKU0hUTUxEZXRhaWxzRWxlbWVudC5oICovLAorCQkJCTc1MjlCQzExMTMyNjZDQTgwMDI0N0Qy
OSAvKiBKU0hUTUxEZXZpY2VFbGVtZW50LmNwcCAqLywKKwkJCQk3NTI5QkMxMjEzMjY2Q0E4MDAy
NDdEMjkgLyogSlNIVE1MRGV2aWNlRWxlbWVudC5oICovLAogCQkJCTFBODVCMUUwMEExQjI0MDUw
MEQ4Qzg3QyAvKiBKU0hUTUxEaXJlY3RvcnlFbGVtZW50LmNwcCAqLywKIAkJCQkxQTg1QjFFMTBB
MUIyNDA1MDBEOEM4N0MgLyogSlNIVE1MRGlyZWN0b3J5RWxlbWVudC5oICovLAogCQkJCTFBODVC
MkI0MEExQjJBQzcwMEQ4Qzg3QyAvKiBKU0hUTUxEaXZFbGVtZW50LmNwcCAqLywKQEAgLTE2ODE3
LDYgKzE2ODczLDggQEAKIAkJCQk3NTQxNUQ1MjEyOUFCMkQyMDAzQUQ2NjkgLyogSlNTcGVlY2hJ
bnB1dFJlc3VsdC5oICovLAogCQkJCTc1NDE1RDUzMTI5QUIyRDIwMDNBRDY2OSAvKiBKU1NwZWVj
aElucHV0UmVzdWx0TGlzdC5jcHAgKi8sCiAJCQkJNzU0MTVENTQxMjlBQjJEMjAwM0FENjY5IC8q
IEpTU3BlZWNoSW5wdXRSZXN1bHRMaXN0LmggKi8sCisJCQkJNzUyOUJEOTgxMzI2NkYyNjAwMjQ3
RDI5IC8qIEpTU3RyZWFtLmNwcCAqLywKKwkJCQk3NTI5QkQ5OTEzMjY2RjI2MDAyNDdEMjkgLyog
SlNTdHJlYW0uaCAqLywKIAkJCQk2NURGMzFFRjA5RDFDQzYwMDAwQkUzMjUgLyogSlNUZXh0LmNw
cCAqLywKIAkJCQk2NURGMzFGMDA5RDFDQzYwMDAwQkUzMjUgLyogSlNUZXh0LmggKi8sCiAJCQkp
OwpAQCAtMTgwMzcsNiArMTgwOTUsNyBAQAogCQkJCTkzOTIyNjJDMTAzMjEwN0IwMDZFN0Q1RCAv
KiBKU0hUTUxDYW52YXNFbGVtZW50Q3VzdG9tLmNwcCAqLywKIAkJCQlCQ0NCQUQzQTBDMThCRkY4
MDBDRTg5MEYgLyogSlNIVE1MQ29sbGVjdGlvbkN1c3RvbS5jcHAgKi8sCiAJCQkJQkNCQ0FFNTMw
RkYxQTI5RTAwMDc2MkFFIC8qIEpTSFRNTERhdGFHcmlkRWxlbWVudEN1c3RvbS5jcHAgKi8sCisJ
CQkJNzUyOUJENEYxMzI2NkRFMjAwMjQ3RDI5IC8qIEpTSFRNTERldmljZUVsZW1lbnRDdXN0b20u
Y3BwICovLAogCQkJCUJDNTE1ODBBMEMwM0Q0MDQwMDhCQjBFRSAvKiBKU0hUTUxEb2N1bWVudEN1
c3RvbS5jcHAgKi8sCiAJCQkJQkM1ODIzRjQwQzBBOThERjAwNTNGMUI1IC8qIEpTSFRNTEVsZW1l
bnRDdXN0b20uY3BwICovLAogCQkJCUJDNkQ0NEJEMEMwN0VGQjYwMDcyRDJDOSAvKiBKU0hUTUxF
bWJlZEVsZW1lbnRDdXN0b20uY3BwICovLApAQCAtMTkxMDYsNiArMTkxNjUsOCBAQAogCQkJCUJD
NjQ2NDFBMTFEN0Y0MTYwMDY0NTVCMCAvKiBEYXRhc2V0RE9NU3RyaW5nTWFwLmggKi8sCiAJCQkJ
QThDMjI4QTAxMUQ1NzIyRTAwRDVBN0QzIC8qIERlY29kZWREYXRhRG9jdW1lbnRQYXJzZXIuY3Bw
ICovLAogCQkJCUE4QzIyODlGMTFENTcyMkUwMEQ1QTdEMyAvKiBEZWNvZGVkRGF0YURvY3VtZW50
UGFyc2VyLmggKi8sCisJCQkJNzUyOUJENTIxMzI2NkUwMzAwMjQ3RDI5IC8qIERldmljZUVsZW1l
bnQuY3BwICovLAorCQkJCTc1MjlCRDUzMTMyNjZFMDMwMDI0N0QyOSAvKiBEZXZpY2VFbGVtZW50
LmggKi8sCiAJCQkJMzFGQjFBNEYxMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkNsaWVu
dC5oICovLAogCQkJCTMxRkIxQTUwMTIwQTVEMDYwMERDMDJBMCAvKiBEZXZpY2VNb3Rpb25Db250
cm9sbGVyLmNwcCAqLywKIAkJCQkzMUZCMUE1MTEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90
aW9uQ29udHJvbGxlci5oICovLApAQCAtMTkxMjIsNiArMTkxODMsOSBAQAogCQkJCTU5QTg1RUEx
MTE5RDY4RDkwMERFRjFFRiAvKiBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmNwcCAqLywKIAkJCQk1
OUE4NUVBMzExOUQ2OEVDMDBERUYxRUYgLyogRGV2aWNlT3JpZW50YXRpb25FdmVudC5oICovLAog
CQkJCTU5QTg1RUFBMTE5RDdCNkUwMERFRjFFRiAvKiBEZXZpY2VPcmllbnRhdGlvbkV2ZW50Lmlk
bCAqLywKKwkJCQk3NTI5QkQ1MTEzMjY2RTAzMDAyNDdEMjkgLyogRGV2aWNlU2Vzc2lvbklkLmgg
Ki8sCisJCQkJNzUyOUJENTcxMzI2NkUxMzAwMjQ3RDI5IC8qIERldmljZVR5cGUuY3BwICovLAor
CQkJCTc1MjlCRDU4MTMyNjZFMTMwMDI0N0QyOSAvKiBEZXZpY2VUeXBlLmggKi8sCiAJCQkJQTgx
ODVGMzQwOTc2NTc2NTAwNTgyNkQ5IC8qIERvY3VtZW50LmNwcCAqLywKIAkJCQlBODE4NUYzODA5
NzY1NzY1MDA1ODI2RDkgLyogRG9jdW1lbnQuaCAqLywKIAkJCQk2NTQ4RTI0ODA5RTFFMDREMDBB
RjgwMjAgLyogRG9jdW1lbnQuaWRsICovLApAQCAtMTkyOTYsNiArMTkzNjAsOSBAQAogCQkJCUNF
QTM5NDlCMTFENDVDREEwMDMwOTRDRiAvKiBTdGF0aWNIYXNoU2V0Tm9kZUxpc3QuaCAqLywKIAkJ
CQlCQzdGQTYyQzBEMUYwRUZGMDBEQjIyQTkgLyogU3RhdGljTm9kZUxpc3QuY3BwICovLAogCQkJ
CUJDN0ZBNjJCMEQxRjBFRkYwMERCMjJBOSAvKiBTdGF0aWNOb2RlTGlzdC5oICovLAorCQkJCTc1
MjlCRDVCMTMyNjZFMzUwMDI0N0QyOSAvKiBTdHJlYW0uY3BwICovLAorCQkJCTc1MjlCRDVDMTMy
NjZFMzUwMDI0N0QyOSAvKiBTdHJlYW0uaCAqLywKKwkJCQk3NTI5QkQ1RDEzMjY2RTM1MDAyNDdE
MjkgLyogU3RyZWFtLmlkbCAqLywKIAkJCQk4MTAyQzU4NzEzMjVCQjExMDBEREU2N0EgLyogU3Ry
aW5nQ2FsbGJhY2suY3BwICovLAogCQkJCTgxQUM2QzM1MTMxQzU3RDMwMDA5QTdFMCAvKiBTdHJp
bmdDYWxsYmFjay5oICovLAogCQkJCTgxQUM2QzM0MTMxQzU3QzIwMDA5QTdFMCAvKiBTdHJpbmdD
YWxsYmFjay5pZGwgKi8sCkBAIC0yMjYzOSw2ICsyMjcwNiwxOCBAQAogCQkJCTMxOTQ2MjA0MTMw
MjJCRjEwMDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRpb25MaXN0LmggaW4gSGVhZGVycyAqLywK
IAkJCQkzMTlFNjlCMzEzMjk5QkJEMDA0QUM5MUEgLyogV2ViS2l0QW5pbWF0aW9uLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkzMTlFNjlCNjEzMjk5QkJEMDA0QUM5MUEgLyogV2ViS2l0QW5pbWF0aW9u
TGlzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzUyOUI3NzExMzI2NkExQTAwMjQ3RDI5IC8qIEhU
TUxEZXZpY2VFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk3NTI5QkMxNDEzMjY2Q0E4MDAy
NDdEMjkgLyogSlNIVE1MRGV2aWNlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzUyOUJE
NTYxMzI2NkUwMzAwMjQ3RDI5IC8qIERldmljZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTc1MjlCRDU0MTMyNjZFMDMwMDI0N0QyOSAvKiBEZXZpY2VTZXNzaW9uSWQuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTc1MjlCRDVBMTMyNjZFMTMwMDI0N0QyOSAvKiBEZXZpY2VUeXBlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk3NTI5QkQ2MjEzMjY2RTM1MDAyNDdEMjkgLyogU3RyZWFtLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk3NTI5QkQ4OTEzMjY2RTc2MDAyNDdEMjkgLyogRGV2aWNlQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLywKKwkJCQk3NTI5QkQ4RjEzMjY2RTc2MDAyNDdEMjkgLyogRGV2aWNlTGlz
dGVuZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTc1MjlCRDhBMTMyNjZFNzYwMDI0N0QyOSAvKiBE
ZXZpY2VTZXNzaW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk3NTI5QkQ4QzEzMjY2RTc2MDAyNDdE
MjkgLyogRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTc1MjlC
RDhFMTMyNjZFNzYwMDI0N0QyOSAvKiBEZXZpY2VTZXNzaW9uU3BlY2lmaWMuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTc1MjlCRDlEMTMyNjZGMjYwMDI0N0QyOSAvKiBKU1N0cmVhbS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7
CiAJCX07CkBAIC0yNTMwNCw2ICsyNTM4MywxNSBAQAogCQkJCTMxOUU2ODg3MTMyN0M5MTEwMDRB
QzkxQSAvKiBKU1dlYktpdEFuaW1hdGlvbkN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkz
MTlFNjlCMjEzMjk5QkJEMDA0QUM5MUEgLyogV2ViS2l0QW5pbWF0aW9uLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTMxOUU2OUI1MTMyOTlCQkQwMDRBQzkxQSAvKiBXZWJLaXRBbmltYXRpb25MaXN0
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTc1MjlCNzcwMTMyNjZBMUEwMDI0N0QyOSAvKiBIVE1M
RGV2aWNlRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3NTI5QkMxMzEzMjY2Q0E4MDAy
NDdEMjkgLyogSlNIVE1MRGV2aWNlRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3NTI5
QkQ1MDEzMjY2REUyMDAyNDdEMjkgLyogSlNIVE1MRGV2aWNlRWxlbWVudEN1c3RvbS5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQk3NTI5QkQ1NTEzMjY2RTAzMDAyNDdEMjkgLyogRGV2aWNlRWxlbWVu
dC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3NTI5QkQ1OTEzMjY2RTEzMDAyNDdEMjkgLyogRGV2
aWNlVHlwZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3NTI5QkQ2MTEzMjY2RTM1MDAyNDdEMjkg
LyogU3RyZWFtLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTc1MjlCRDhCMTMyNjZFNzYwMDI0N0Qy
OSAvKiBEZXZpY2VTZXNzaW9uQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3NTI5
QkQ4RDEzMjY2RTc2MDAyNDdEMjkgLyogRGV2aWNlU2Vzc2lvblNwZWNpZmljLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTc1MjlCRDlDMTMyNjZGMjYwMDI0N0QyOSAvKiBKU1N0cmVhbS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRN
TERldmljZUVsZW1lbnRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNI
VE1MRGV2aWNlRWxlbWVudEN1c3RvbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGE3NmNhYzhhNjY3NGE2Y2Ez
NGVmMjM0MTQyZjQ5YzE0MTNlYTg4NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTSFRNTERldmljZUVsZW1lbnRDdXN0b20uY3BwCkBAIC0wLDAgKzEsNTYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAq
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSlNIVE1MRGV2aWNlRWxlbWVudC5oIgor
CisjaWYgRU5BQkxFKERFVklDRV9FTEVNRU5UKQorCisjaW5jbHVkZSAiRGV2aWNlU2Vzc2lvbi5o
IgorI2luY2x1ZGUgIkhUTUxEZXZpY2VFbGVtZW50LmgiCisjaW5jbHVkZSAiSlNTdHJlYW0uaCIK
KwordXNpbmcgbmFtZXNwYWNlIEpTQzsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitKU1ZhbHVl
IEpTSFRNTERldmljZUVsZW1lbnQ6OmRhdGEoRXhlY1N0YXRlKiBleGVjKSBjb25zdAoreworICAg
IEhUTUxEZXZpY2VFbGVtZW50KiBkZXZpY2UgPSBzdGF0aWNfY2FzdDxIVE1MRGV2aWNlRWxlbWVu
dCo+KGltcGwoKSk7CisgICAgaWYgKGNvbnN0IERldmljZVNlc3Npb24qIHNlc3Npb24gPSBkZXZp
Y2UtPnNlc3Npb24oKSkKKyAgICAgICAgaWYgKHNlc3Npb24tPnN0YXRlKCkgPT0gRGV2aWNlU2Vz
c2lvbjo6T3BlbmVkKQorICAgICAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0
KCksIGRldmljZS0+ZGF0YSgpKTsKKworICAgIHJldHVybiBqc051bGwoKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKERFVklDRV9FTEVNRU5UKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTERldmljZUVs
ZW1lbnRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRN
TERldmljZUVsZW1lbnRDdXN0b20uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRhM2E5N2IxYTllZjZlYWU1YzY4
YWQ0MWQ1NGQ0MDc3MjhkYTFiOGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhIVE1MRGV2aWNlRWxlbWVudEN1c3RvbS5jcHAKQEAgLTAsMCAr
MSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0Ogor
ICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisg
KiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJWOEhUTUxEZXZpY2VFbGVtZW50
LmgiCisKKyNpZiBFTkFCTEUoREVWSUNFX0VMRU1FTlQpCisKKyNpbmNsdWRlICJEZXZpY2VTZXNz
aW9uLmgiCisjaW5jbHVkZSAiSFRNTERldmljZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJWOEJpbmRp
bmcuaCIKKyNpbmNsdWRlICJWOFN0cmVhbS5oIgorCisjaW5jbHVkZSA8djguaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhIVE1MRGV2aWNlRWxlbWVu
dDo6ZGF0YUFjY2Vzc29yR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2
ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAgIElOQ19TVEFUUygiRE9NLkhUTUxEZXZpY2VF
bGVtZW50LmRhdGEuX2dldCIpOworICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gaG9sZGVyID0g
aW5mby5Ib2xkZXIoKTsKKyAgICBIVE1MRGV2aWNlRWxlbWVudCogZGV2aWNlID0gVjhIVE1MRGV2
aWNlRWxlbWVudDo6dG9OYXRpdmUoaG9sZGVyKTsKKyAgICBpZiAoY29uc3QgRGV2aWNlU2Vzc2lv
biogc2Vzc2lvbiA9IGRldmljZS0+c2Vzc2lvbigpKQorICAgICAgICBpZiAoc2Vzc2lvbi0+c3Rh
dGUoKSA9PSBEZXZpY2VTZXNzaW9uOjpPcGVuZWQpCisgICAgICAgICAgICByZXR1cm4gdG9WOChk
ZXZpY2UtPmRhdGEoKSk7CisKKyAgICByZXR1cm4gdjg6Ok51bGwoKTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKERFVklDRV9FTEVNRU5UKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9ET01BbGxJbk9uZS5jcHAKaW5kZXggYzg4YWVjZjk0ODU0NzQ2OWFkMGRlMGU0YWQ1MGNj
ZmVjMDhiZjY1Mi4uMjk0YTE5Yjc5ZjI2YTZlM2FkY2JjNzQxNDk2Y2Y3NTQ5OGM5NDRlNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCkBAIC01MSwxMiArNTEsMTQgQEAKICNpbmNsdWRl
ICJET01TdHJpbmdNYXAuY3BwIgogI2luY2x1ZGUgIkRhdGFzZXRET01TdHJpbmdNYXAuY3BwIgog
I2luY2x1ZGUgIkRlY29kZWREYXRhRG9jdW1lbnRQYXJzZXIuY3BwIgorI2luY2x1ZGUgIkRldmlj
ZUVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIkRldmljZU1vdGlvbkNvbnRyb2xsZXIuY3BwIgogI2lu
Y2x1ZGUgIkRldmljZU1vdGlvbkRhdGEuY3BwIgogI2luY2x1ZGUgIkRldmljZU1vdGlvbkV2ZW50
LmNwcCIKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbi5jcHAiCiAjaW5jbHVkZSAiRGV2aWNl
T3JpZW50YXRpb25Db250cm9sbGVyLmNwcCIKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkV2
ZW50LmNwcCIKKyNpbmNsdWRlICJEZXZpY2VUeXBlLmNwcCIKICNpbmNsdWRlICJEb2N1bWVudC5j
cHAiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5jcHAiCiAjaW5jbHVkZSAiRG9jdW1lbnRN
YXJrZXJDb250cm9sbGVyLmNwcCIKQEAgLTExMCw2ICsxMTIsNyBAQAogI2luY2x1ZGUgIlNwYWNl
U3BsaXRTdHJpbmcuY3BwIgogI2luY2x1ZGUgIlN0YXRpY0hhc2hTZXROb2RlTGlzdC5jcHAiCiAj
aW5jbHVkZSAiU3RhdGljTm9kZUxpc3QuY3BwIgorI2luY2x1ZGUgIlN0cmVhbS5jcHAiCiAjaW5j
bHVkZSAiU3R5bGVFbGVtZW50LmNwcCIKICNpbmNsdWRlICJTdHlsZWRFbGVtZW50LmNwcCIKICNp
bmNsdWRlICJUYWdOb2RlTGlzdC5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RGV2aWNlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlRWxlbWVudC5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZDMzNzViZDE1YmNhZGU3Y2E5YWRlNWMzOTAwNzllNzI0NTE4ZjBhOQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VFbGVtZW50LmNwcApAQCAt
MCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBt
ZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICog
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRldmljZUVsZW1lbnQu
aCIKKworI2lmIEVOQUJMRShERVZJQ0VfRUxFTUVOVCkKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitEZXZpY2VFbGVtZW50OjpEZXZpY2VFbGVtZW50KCkKK3sKK30KKworRGV2aWNlRWxlbWVudDo6
RGV2aWNlRWxlbWVudChjb25zdCBTdHJpbmcmIHR5cGUpCisgICAgOiBtX3R5cGUodHlwZSkKK3sK
K30KKworRGV2aWNlRWxlbWVudDo6fkRldmljZUVsZW1lbnQoKQoreworfQorCitTdHJpbmcgRGV2
aWNlRWxlbWVudDo6dHlwZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdHlwZS5uYW1lKCk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShERVZJQ0VfRUxF
TUVOVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlRWxlbWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJiMzYzMmE0ZTU2
ZDczMmI1MjIxMWQ3Y2E4NzRmNmNiZGNkOGMxZjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRGV2aWNlRWxlbWVudC5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0
aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIERldmlj
ZUVsZW1lbnRfaAorI2RlZmluZSBEZXZpY2VFbGVtZW50X2gKKworI2lmIEVOQUJMRShERVZJQ0Vf
RUxFTUVOVCkKKworI2luY2x1ZGUgIkRldmljZVR5cGUuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgU3RyZWFtOworCitjbGFzcyBEZXZpY2VFbGVtZW50IHsKK3B1YmxpYzoKKyAgICBE
ZXZpY2VFbGVtZW50KCk7CisgICAgRGV2aWNlRWxlbWVudChjb25zdCBTdHJpbmcmIHR5cGUpOwor
ICAgIHZpcnR1YWwgfkRldmljZUVsZW1lbnQoKTsKKworICAgIFN0cmluZyB0eXBlKCkgY29uc3Q7
CisgICAgdmlydHVhbCB2b2lkIHNldFR5cGUoY29uc3QgU3RyaW5nJikgPSAwOworICAgIHZpcnR1
YWwgUGFzc1JlZlB0cjxTdHJlYW0+IGRhdGEoKSA9IDA7IC8vIEZJWE1FOiB1c2UgZ2VuZXJpYyBk
YXRhIHR5cGVzIHdoZW4gZXh0ZW5kaW5nIHRoZSBkZXZpY2UgdHlwZSBiZXlvbmQgbWVkaWEuCisK
K3Byb3RlY3RlZDoKKyAgICBEZXZpY2VUeXBlIG1fdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShERVZJQ0VfRUxFTUVOVCkKKworI2VuZGlmIC8v
IERldmljZUVsZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZVNl
c3Npb25JZC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZVNlc3Npb25JZC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjBiODdlYzE0NjEzZWI3Y2VhYzA1MDViMzgwZWUxZDc2YWYwMjEyN2QKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlU2Vzc2lvbklkLmgKQEAgLTAsMCArMSw5
NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoK
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAor
ICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgRGV2aWNlU2Vzc2lvbklkX2gKKyNkZWZpbmUgRGV2aWNlU2Vzc2lvbklkX2gK
KworI2lmIEVOQUJMRShERVZJQ0VfRUxFTUVOVCkKKworI2luY2x1ZGUgPHd0Zi9IYXNoRnVuY3Rp
b25zLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hUcmFpdHMuaD4KKyNpbmNsdWRlIDx3dGYvT3duUHRy
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gVHVwbGUgb2YgPHNlc3Npb24gaWRlbnRp
ZmllciwgdHlwZT4uCisvLyBBbGxvd3MgdGhlIERldmljZVNlc3Npb25Db250cm9sbGVyIHRvIGF2
b2lkIGNvbGxpc2lvbnMgYmV0d2VlbiBsb2NhbCBkZXZpY2Ugc2Vzc2lvbiBpZHMgKG1hbmFnZWQg
YnkgaXRzZWxmKQorLy8gYW5kIHJlbW90ZSBkZXZpY2Ugc2Vzc2lvbiBpZHMgKG1hbmFnZWQgYnkg
dGhlIENvbm5lY3Rpb25QZWVyIGNsaWVudCkuCitjbGFzcyBEZXZpY2VTZXNzaW9uSWQgeworcHVi
bGljOgorICAgIGVudW0gU2Vzc2lvblR5cGUgeworICAgICAgICBOb25lID0gMCwKKyAgICAgICAg
TG9jYWwsCisgICAgICAgIFJlbW90ZQorICAgIH07CisKKyAgICBEZXZpY2VTZXNzaW9uSWQoKQor
ICAgICAgICA6IG1faWQoMCkKKyAgICAgICAgLCBtX3R5cGUoTm9uZSkKKyAgICB7CisgICAgfQor
CisgICAgRGV2aWNlU2Vzc2lvbklkKGludCBpZCwgU2Vzc2lvblR5cGUgdHlwZSkKKyAgICAgICAg
OiBtX2lkKGlkKQorICAgICAgICAsIG1fdHlwZSh0eXBlKQorICAgIHsKKyAgICB9CisKKyAgICBp
bnQgaWQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9CisgICAgU2Vzc2lvblR5cGUgdHlwZSgpIGNv
bnN0IHsgcmV0dXJuIG1fdHlwZTsgfQorICAgIGJvb2wgaXNOdWxsKCkgY29uc3QgeyByZXR1cm4g
IW1faWQgfHwgbV90eXBlID09IE5vbmU7IH0KKyAgICBEZXZpY2VTZXNzaW9uSWQgcmVzZXQoKSB7
IERldmljZVNlc3Npb25JZCB0ZW1wID0gKnRoaXM7ICp0aGlzID0gRGV2aWNlU2Vzc2lvbklkKCk7
IHJldHVybiB0ZW1wOyB9CisKKyAgICAvLyBPcGVyYXRvcnMgcmVxdWlyZWQgdG8gcmV1c2Ugc3Rk
OjpwYWlyIGhhc2hpbmcgdGVtcGxhdGVzLgorICAgIG9wZXJhdG9yIHN0ZDo6cGFpcjxpbnQsIGlu
dD4oKSBjb25zdCB7IHJldHVybiBzdGQ6OnBhaXI8aW50LCBpbnQ+KG1faWQsIG1fdHlwZSk7IH0K
KyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgRGV2aWNlU2Vzc2lvbklkJiBjKSBjb25zdCB7IHJl
dHVybiBtX2lkID09IGMubV9pZCAmJiBtX3R5cGUgPT0gYy5tX3R5cGU7IH0KKworcHJpdmF0ZToK
KyAgICBmcmllbmQgY2xhc3MgRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXI7CisgICAgaW50IG1faWQ7
CisgICAgU2Vzc2lvblR5cGUgbV90eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8V2ViQ29y
ZTo6RGV2aWNlU2Vzc2lvbklkPiB7CisgICAgdHlwZWRlZiBQYWlySGFzaDxpbnQsIGludD4gSGFz
aDsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8V2ViQ29yZTo6RGV2aWNlU2Vz
c2lvbklkPiA6IHB1YmxpYyBQYWlySGFzaFRyYWl0czxIYXNoVHJhaXRzPGludD4sIEhhc2hUcmFp
dHM8aW50PiA+IHsgfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKKyNlbmRpZiAvLyBFTkFCTEUo
REVWSUNFX0VMRU1FTlQpCisKKyNlbmRpZiAvLyBEZXZpY2VTZXNzaW9uSWRfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZVR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RldmljZVR5cGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlNjczNTk3YjMwZjZjM2FmMmFjOTg0N2RjOGUw
MzIwN2QzNzc3MzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNl
VHlwZS5jcHAKQEAgLTAsMCArMSwxMDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQor
ICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
RGV2aWNlVHlwZS5oIgorCisjaWYgRU5BQkxFKERFVklDRV9FTEVNRU5UKQorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK0RldmljZVR5cGU6OkRldmljZVR5cGUoKQorICAgIDogbV9pZChJbnZhbGlk
KQoreworfQorCitEZXZpY2VUeXBlOjpEZXZpY2VUeXBlKFR5cGVJZCBpZCkKK3sKKyAgICBBU1NF
UlQoaWQgPiBJbnZhbGlkICYmIGlkIDwgTnVtRGV2aWNlVHlwZXMpOworICAgIG1faWQgPSBpZDsK
K30KKworRGV2aWNlVHlwZTo6RGV2aWNlVHlwZShjb25zdCBTdHJpbmcmIG5hbWUpCit7CisgICAg
bV9pZCA9IGlkRnJvbU5hbWUobmFtZSk7Cit9CisKK0RldmljZVR5cGU6OlR5cGVJZCBEZXZpY2VU
eXBlOjppZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faWQ7Cit9CisKK2NvbnN0IEF0b21pY1N0
cmluZyYgRGV2aWNlVHlwZTo6bmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG5hbWVGcm9tSWQo
bV9pZCk7Cit9CisKK2Jvb2wgRGV2aWNlVHlwZTo6aXNWYWxpZCgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1faWQgPiBJbnZhbGlkICYmIG1faWQgPCBOdW1EZXZpY2VUeXBlczsKK30KKworRGV2aWNl
VHlwZTo6VHlwZUlkIERldmljZVR5cGU6OmlkRnJvbU5hbWUoY29uc3QgU3RyaW5nJiBuYW1lKQor
eworICAgIC8vIEFkZCBjb2RlIGZvciBleHRyYSBkZXZpY2UgdHlwZXMgaGVyZS4KKyAgICBpZiAo
bmFtZSA9PSBtZWRpYSgpKQorICAgICAgICByZXR1cm4gTWVkaWE7CisKKyAgICByZXR1cm4gSW52
YWxpZDsKK30KKworY29uc3QgQXRvbWljU3RyaW5nJiBEZXZpY2VUeXBlOjpuYW1lRnJvbUlkKFR5
cGVJZCBpZCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbnVsbFR5
cGVOYW1lLCAoKSk7CisKKyAgICAvLyBBZGQgY29kZSBmb3IgZXh0cmEgZGV2aWNlIHR5cGVzIGhl
cmUuCisgICAgc3dpdGNoIChpZCkgeworICAgIGNhc2UgTWVkaWE6CisgICAgICAgIHJldHVybiBt
ZWRpYSgpOworCisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIG51bGxUeXBlTmFtZTsKKyAg
ICB9Cit9CisKK2NvbnN0IEF0b21pY1N0cmluZyYgRGV2aWNlVHlwZTo6bWVkaWEoKQoreworICAg
IERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoIm1lZGlhIikpOworICAg
IHJldHVybiBuYW1lOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoREVWSUNFX0VMRU1FTlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2
aWNlVHlwZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZVR5cGUuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5k
NmFjZDg4NDJlOTdmN2I5ODAxYjNkYTBiYzgwMTdhYjFhNmVjOTA5Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZVR5cGUuaApAQCAtMCwwICsxLDcyIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRp
c3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBEZXZpY2VUeXBlX2gKKyNkZWZpbmUgRGV2aWNlVHlwZV9oCisKKyNpZiBFTkFCTEUoREVWSUNF
X0VMRU1FTlQpCisKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgPHd0Zi90
ZXh0L0F0b21pY1N0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERldmlj
ZVR5cGUgeworcHVibGljOgorICAgIC8vIEFsbG93ZWQgdHlwZSB2YWx1ZXMgZm9yIHRoZSBkZXZp
Y2UgZWxlbWVudCBhbmQgZGV2aWNlIHNlc3Npb25zLgorICAgIGVudW0gVHlwZUlkIHsKKyAgICAg
ICAgSW52YWxpZCA9IDAsIC8vIEludmFsaWQgZGV2aWNlIHR5cGUgdmFsdWUuIE5vdCBhIHJlc2Vy
dmVkIHR5cGUgaW4gdGhlIHNwZWMuCisgICAgICAgIE1lZGlhLAorICAgICAgICBOdW1EZXZpY2VU
eXBlcworICAgIH07CisKKyAgICBEZXZpY2VUeXBlKCk7CisgICAgRGV2aWNlVHlwZShUeXBlSWQp
OworICAgIERldmljZVR5cGUoY29uc3QgU3RyaW5nJiBuYW1lKTsKKworICAgIFR5cGVJZCBpZCgp
IGNvbnN0OworICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSgpIGNvbnN0OworICAgIGJvb2wg
aXNWYWxpZCgpIGNvbnN0OworCisgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZUZy
b21JZChUeXBlSWQpOworICAgIHN0YXRpYyBUeXBlSWQgaWRGcm9tTmFtZShjb25zdCBTdHJpbmcm
KTsKKworICAgIC8vIEFkZCBleHRyYSBkZXZpY2UgdHlwZXMgaGVyZS4KKyAgICBzdGF0aWMgY29u
c3QgQXRvbWljU3RyaW5nJiBtZWRpYSgpOworCitwcml2YXRlOgorICAgIFR5cGVJZCBtX2lkOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKERFVklDRV9F
TEVNRU5UKQorCisjZW5kaWYgLy8gRGV2aWNlVHlwZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vU3RyZWFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHJlYW0uY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjY4OTQyYjY5MmM5YTM1NzE2NGYyM2MzNTMwYWM3Y2NkNmNjZDI3ZjkKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3RyZWFtLmNwcApAQCAtMCwwICsxLDgzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
KyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlN0cmVhbS5oIgorCisjaWYgRU5BQkxFKERF
VklDRV9FTEVNRU5UKQorCisjaW5jbHVkZSAiRGV2aWNlU2Vzc2lvbi5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8U3RyZWFtPiBTdHJlYW06OmNyZWF0ZShEZXZpY2VTZXNz
aW9uQ29udHJvbGxlciogY29udHJvbGxlciwgRGV2aWNlU2Vzc2lvbklkIGlkLCBjb25zdCBLVVJM
JiB1cmwpCit7CisgICAgQVNTRVJUKGNvbnRyb2xsZXIpOworICAgIEFTU0VSVChjb250cm9sbGVy
LT5pc1Nlc3Npb25JZFZhbGlkKGlkKSk7CisgICAgQVNTRVJUKGNvbnRyb2xsZXItPnNlc3Npb24o
aWQpLnN0YXRlKCkgPT0gRGV2aWNlU2Vzc2lvbjo6T3BlbmVkKTsKKyAgICBBU1NFUlQodXJsLmlz
VmFsaWQoKSk7CisKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFN0cmVhbShjb250cm9sbGVyLCBp
ZCwgdXJsKSk7Cit9CisKK1N0cmVhbTo6U3RyZWFtKERldmljZVNlc3Npb25Db250cm9sbGVyKiBj
b250cm9sbGVyLCBEZXZpY2VTZXNzaW9uSWQgaWQsIGNvbnN0IEtVUkwmIHVybCkKKyAgICA6IG1f
Y29udHJvbGxlcihjb250cm9sbGVyKQorICAgICwgbV9zZXNzaW9uSWQoaWQpCisgICAgLCBtX3Vy
bCh1cmwpCit7CisgICAgbV9jb250cm9sbGVyLT5yZWdpc3RlclNlc3Npb25MaXN0ZW5lcihtX3Nl
c3Npb25JZCwgdGhpcyk7Cit9CisKK1N0cmVhbTo6flN0cmVhbSgpCit7CisgICAgaWYgKG1fY29u
dHJvbGxlciAmJiAhbV9zZXNzaW9uSWQuaXNOdWxsKCkpCisgICAgICAgIG1fY29udHJvbGxlci0+
dW5yZWdpc3RlclNlc3Npb25MaXN0ZW5lcihtX3Nlc3Npb25JZCwgdGhpcyk7Cit9CisKK2NvbnN0
IEtVUkwmIFN0cmVhbTo6dXJsKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV91cmw7Cit9CisKK3Zv
aWQgU3RyZWFtOjpzZXNzaW9uQ2xvc2VkKGNvbnN0IERldmljZVNlc3Npb25JZCYgaWQsIGJvb2wp
Cit7CisgICAgQVNTRVJUX1VOVVNFRChpZCwgaWQgPT0gbV9zZXNzaW9uSWQpOworICAgIG1fc2Vz
c2lvbklkLnJlc2V0KCk7Cit9CisKK3ZvaWQgU3RyZWFtOjpzZXNzaW9uQ29udHJvbGxlclNodXRk
b3duKCkKK3sKKyAgICBtX3Nlc3Npb25JZC5yZXNldCgpOworICAgIG1fY29udHJvbGxlciA9IDA7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShERVZJQ0Vf
RUxFTUVOVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHJlYW0uaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TdHJlYW0uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iM2E5MWI5MDYyZTY3YjI1YTM0ZWJi
ZmFjOWFiMzg3NGQ3OTNiOTk5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1N0cmVhbS5oCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQor
ICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFN0cmVhbV9oCisjZGVmaW5lIFN0cmVh
bV9oCisKKyNpZiBFTkFCTEUoREVWSUNFX0VMRU1FTlQpCisKKyNpbmNsdWRlICJEZXZpY2VTZXNz
aW9uQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIkRldmljZVNlc3Npb25JZC5oIgorI2luY2x1ZGUg
IktVUkwuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVm
UHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBTdHJlYW1SZWNvcmRlcjsKKworY2xhc3MgU3RyZWFtIDogcHVibGljIFJlZkNv
dW50ZWQ8U3RyZWFtPiwKKyAgICAgICAgICAgICAgIHB1YmxpYyBEZXZpY2VTZXNzaW9uQ29udHJv
bGxlcjo6U2Vzc2lvbkxpc3RlbmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
dHJlYW0+IGNyZWF0ZShEZXZpY2VTZXNzaW9uQ29udHJvbGxlciosIERldmljZVNlc3Npb25JZCwg
Y29uc3QgS1VSTCYpOworICAgIH5TdHJlYW0oKTsKKworICAgIGNvbnN0IEtVUkwmIHVybCgpIGNv
bnN0OworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgd2hlbiB0aGUgU3RyZWFtUmVjb3JkZXIgY2xh
c3MgaXMgaW50cm9kdWNlZC4KKyAgICAvLyBQYXNzUmVmUHRyPFN0cmVhbVJlY29yZGVyPiByZWNv
cmQoKTsKKworICAgIC8vIERldmljZVNlc3Npb25Db250cm9sbGVyOjpTZXNzaW9uTGlzdGVuZXIg
aW1wbGVtZW50YXRpb24uCisgICAgdmlydHVhbCB2b2lkIHNlc3Npb25DbG9zZWQoY29uc3QgRGV2
aWNlU2Vzc2lvbklkJiwgYm9vbCBmYWlsZWQpOworICAgIHZpcnR1YWwgdm9pZCBzZXNzaW9uQ29u
dHJvbGxlclNodXRkb3duKCk7CisKK3ByaXZhdGU6CisgICAgU3RyZWFtKERldmljZVNlc3Npb25D
b250cm9sbGVyKiwgRGV2aWNlU2Vzc2lvbklkLCBjb25zdCBLVVJMJik7CisKKyAgICBEZXZpY2VT
ZXNzaW9uQ29udHJvbGxlciogbV9jb250cm9sbGVyOworICAgIERldmljZVNlc3Npb25JZCBtX3Nl
c3Npb25JZDsKKyAgICBLVVJMIG1fdXJsOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gRU5BQkxFKERFVklDRV9FTEVNRU5UKQorCisjZW5kaWYgLy8gU3RyZWFtX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHJlYW0uaWRsIGIvU291cmNlL1dlYkNv
cmUvZG9tL1N0cmVhbS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjlmMjA0MTExMjZjNmYzNWFiNDhkZTU5ZDQ4
ZmJiYzZiZGE4YWQ0OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHJl
YW0uaWRsCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICog
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgY29yZSB7CisKKyAgICBpbnRlcmZhY2UgWwor
ICAgICAgICBDb25kaXRpb25hbD1ERVZJQ0VfRUxFTUVOVAorICAgIF0gU3RyZWFtIHsKKyAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB1cmw7CisgICAgICAgIC8vIEZJWE1FOiBp
bXBsZW1lbnQgd2hlbiB0aGUgU3RyZWFtUmVjb3JkZXIgY2xhc3MgaXMgaW50cm9kdWNlZC4KKyAg
ICAgICAgLy8gU3RyZWFtUmVjb3JkZXIgcmVjb3JkKCk7CisgICAgfTsKK30KKwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV2aWNlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxEZXZpY2VFbGVtZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOTg3MWM4N2NlZmY3
MDRlZmRhZDIyOTA4NGY5YjMxZWY4MDAwN2QxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRGV2aWNlRWxlbWVudC5jcHAKQEAgLTAsMCArMSwyNTggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlz
dHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwor
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSFRNTERldmljZUVsZW1lbnQuaCIKKworI2lmIEVOQUJM
RShERVZJQ0VfRUxFTUVOVCkKKworI2luY2x1ZGUgIkRldmljZVNlc3Npb24uaCIKKyNpbmNsdWRl
ICJEZXZpY2VTZXNzaW9uU3BlY2lmaWMuaCIKKyNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUg
IkV2ZW50SGFuZGxlci5oIgorI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJGcmFt
ZS5oIgorI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIk1vdXNlRXZlbnQuaCIKKyNp
bmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiU2NyaXB0RXZlbnRMaXN0ZW5lci5oIgorI2luY2x1
ZGUgIlN0cmVhbS5oIgorI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKworUGFzc1JlZlB0cjxIVE1M
RGV2aWNlRWxlbWVudD4gSFRNTERldmljZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBIVE1MRGV2aWNlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworfQorCitIVE1MRGV2
aWNlRWxlbWVudDo6SFRNTERldmljZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRG9jdW1lbnQqIGRvY3VtZW50KQorICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgZG9jdW1l
bnQpCisgICAgLCBtX3N0YXRlKElkbGUpCisgICAgLCBtX2NvbnRyb2xsZXIoSFRNTEVsZW1lbnQ6
OmRvY3VtZW50KCktPnBhZ2UoKSA/IEhUTUxFbGVtZW50Ojpkb2N1bWVudCgpLT5wYWdlKCktPmRl
dmljZVNlc3Npb25Db250cm9sbGVyKCkgOiAwKQoreworfQorCitIVE1MRGV2aWNlRWxlbWVudDo6
fkhUTUxEZXZpY2VFbGVtZW50KCkKK3sKK30KKwordm9pZCBIVE1MRGV2aWNlRWxlbWVudDo6cGFy
c2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyaWJ1dGUpCit7CisgICAgaWYgKGF0dHJp
YnV0ZS0+bmFtZSgpID09IHR5cGVBdHRyKQorICAgICAgICBtX3R5cGUgPSBEZXZpY2VUeXBlKGZh
c3RHZXRBdHRyaWJ1dGUodHlwZUF0dHIpKTsKKyAgICBlbHNlIGlmIChhdHRyaWJ1dGUtPm5hbWUo
KSA9PSBvbmNoYW5nZUF0dHIpCisgICAgICAgIHNldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZl
bnROYW1lcygpLmNoYW5nZUV2ZW50LCBjcmVhdGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyKHRoaXMs
IGF0dHJpYnV0ZSkpOworICAgIGVsc2UKKyAgICAgICAgSFRNTEVsZW1lbnQ6OnBhcnNlTWFwcGVk
QXR0cmlidXRlKGF0dHJpYnV0ZSk7Cit9CisKK3ZvaWQgSFRNTERldmljZUVsZW1lbnQ6OmRldGFj
aCgpCit7CisgICAgaWYgKG1fY29udHJvbGxlcikgeworICAgICAgICAvLyBGSVhNRTogYWxsb3cg
c2Vzc2lvbnMgdG8gb3V0bGl2ZSB0aGUgZGV2aWNlIGVsZW1lbnQgdGhhdCBjcmVhdGVkIHRoZW0g
YXMgc29vbiBhcyBhIHdheQorICAgICAgICAvLyB0byBjbG9zZSB0aGVtIGlzIGF2YWlsYWJsZSB0
byB0aGUgdXNlci4KKyAgICAgICAgaWYgKHNlc3Npb24oKS0+c3RhdGUoKSA9PSBEZXZpY2VTZXNz
aW9uOjpPcGVuZWQpCisgICAgICAgICAgICBtX2NvbnRyb2xsZXItPnJldm9rZUFjY2Vzc1RvTG9j
YWxEZXZpY2UobV9zZXNzaW9uSWQpOworCisgICAgICAgIGlmICghbV9zZXNzaW9uSWQuaXNOdWxs
KCkpIHsKKyAgICAgICAgICAgIG1fY29udHJvbGxlci0+dW5yZWdpc3RlclNlc3Npb25MaXN0ZW5l
cihtX3Nlc3Npb25JZCwgdGhpcyk7CisgICAgICAgICAgICBtX3Nlc3Npb25JZC5yZXNldCgpOwor
ICAgICAgICB9CisgICAgfQorCisgICAgSFRNTEVsZW1lbnQ6OmRldGFjaCgpOworfQorCit2b2lk
IEhUTUxEZXZpY2VFbGVtZW50OjpzZXRUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSkKK3sKKyAgICBE
ZXZpY2VUeXBlIG1fcHJldmlvdXNUeXBlID0gbV90eXBlOworICAgIG1fdHlwZSA9IERldmljZVR5
cGUodHlwZSk7CisKKyAgICBpZiAobV90eXBlLmlkKCkgIT0gbV9wcmV2aW91c1R5cGUuaWQoKSkK
KyAgICAgICAgY2xvc2VBbmRSZXNldFNlc3Npb24oKTsKK30KKworUGFzc1JlZlB0cjxTdHJlYW0+
IEhUTUxEZXZpY2VFbGVtZW50OjpkYXRhKCkKK3sKKyAgICBpZiAoIW1fY29udHJvbGxlcikKKyAg
ICAgICAgcmV0dXJuIDA7CisKKyAgICAvLyBKUyBiaW5kaW5nIHNob3VsZCBtYWtlIHRoaXMgYXNz
ZXJ0aW9uIGFsd2F5cyB0cnVlLgorICAgIEFTU0VSVChzZXNzaW9uKCktPnN0YXRlKCkgPT0gRGV2
aWNlU2Vzc2lvbjo6T3BlbmVkKTsKKworICAgIC8vIEFkZCB0aGUgZGF0YSBhdHRyaWJ1dGUgZm9y
IG5ldyBkZXZpY2UgdHlwZXMgaGVyZS4KKyAgICBzd2l0Y2ggKHNlc3Npb24oKS0+dHlwZSgpLmlk
KCkpIHsKKyAgICBjYXNlIERldmljZVR5cGU6OkludmFsaWQ6CisgICAgICAgIGJyZWFrOworCisg
ICAgY2FzZSBEZXZpY2VUeXBlOjpNZWRpYToKKyAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nh
c3Q8Y29uc3QgRGV2aWNlTWVkaWFTcGVjaWZpYyo+KHNlc3Npb24oKS0+dHlwZVNwZWNpZmljKCkp
LT5zdHJlYW0oKTsKKworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgIH0KKworICAgIHJldHVybiAwOworfQorCitIVE1MRGV2aWNlRWxlbWVudDo6U3RhdGUg
SFRNTERldmljZUVsZW1lbnQ6OnN0YXRlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zdGF0ZTsK
K30KKworY29uc3QgRGV2aWNlVHlwZSYgSFRNTERldmljZUVsZW1lbnQ6OmRldmljZVR5cGUoKSBj
b25zdAoreworICAgIHJldHVybiBtX3R5cGU7Cit9CisKK2NvbnN0IERldmljZVNlc3Npb24qIEhU
TUxEZXZpY2VFbGVtZW50OjpzZXNzaW9uKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fY29udHJvbGxl
cikKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBBU1NFUlQobV9jb250cm9sbGVyKTsKKyAgICBy
ZXR1cm4gJm1fY29udHJvbGxlci0+c2Vzc2lvbihtX3Nlc3Npb25JZCk7Cit9CisKK3ZvaWQgSFRN
TERldmljZUVsZW1lbnQ6OnNldFN0YXRlKFN0YXRlIHN0YXRlKQoreworICAgIG1fc3RhdGUgPSBz
dGF0ZTsKK30KKwordm9pZCBIVE1MRGV2aWNlRWxlbWVudDo6Y2xvc2VBbmRSZXNldFNlc3Npb24o
KQoreworICAgIGlmIChtX3Nlc3Npb25JZC5pc051bGwoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgaWYgKG1fY29udHJvbGxlcikgeworICAgICAgICBpZiAoc2Vzc2lvbigpLT5zdGF0ZSgpID09
IERldmljZVNlc3Npb246Ok9wZW5lZCkKKyAgICAgICAgICAgIG1fY29udHJvbGxlci0+cmV2b2tl
QWNjZXNzVG9Mb2NhbERldmljZShtX3Nlc3Npb25JZCk7CisKKyAgICAgICAgbV9zZXNzaW9uSWQu
cmVzZXQoKTsKKyAgICAgICAgc2V0U3RhdGUoSWRsZSk7CisgICAgfQorfQorCit2b2lkIEhUTUxE
ZXZpY2VFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKK3sKKyAgICBp
ZiAoIW1fY29udHJvbGxlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gSWdub3JlIGV2ZW50
cyBmcm9tIGludmFsaWQgZGV2aWNlIGVsZW1lbnRzLgorICAgIGlmICghbV90eXBlLmlzVmFsaWQo
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRm9yIHNlY3VyaXR5IHJlYXNvbnMsIG9ubHkg
YWxsb3cgY2xpY2tzIGRpcmVjdGx5IGNvbWluZyBmcm9tIHRoZSB1c2VyLgorICAgIGlmICghZXZl
bnQtPmZyb21Vc2VyR2VzdHVyZSgpKQorICAgICAgICByZXR1cm4gSFRNTEVsZW1lbnQ6OmRlZmF1
bHRFdmVudEhhbmRsZXIoZXZlbnQpOworCisgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnRO
YW1lcygpLmNsaWNrRXZlbnQpIHsKKyAgICAgICAgc3dpdGNoIChtX3N0YXRlKSB7CisgICAgICAg
IGNhc2UgSWRsZToKKyAgICAgICAgICAgIEFTU0VSVChtX3Nlc3Npb25JZC5pc051bGwoKSk7Cisg
ICAgICAgICAgICBtX3Nlc3Npb25JZCA9IG1fY29udHJvbGxlci0+Y3JlYXRlTG9jYWxEZXZpY2VT
ZXNzaW9uKG1fdHlwZSwgZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgdGhpcyk7CisgICAg
ICAgICAgICBtX2NvbnRyb2xsZXItPnJlcXVlc3RBY2Nlc3NUb0xvY2FsRGV2aWNlKG1fc2Vzc2lv
bklkKTsKKyAgICAgICAgICAgIHNldFN0YXRlKE9wZW5pbmcpOworICAgICAgICAgICAgYnJlYWs7
CisKKyAgICAgICAgY2FzZSBPcGVuZWQ6CisgICAgICAgICAgICBBU1NFUlQoc2Vzc2lvbigpLT5z
dGF0ZSgpID09IERldmljZVNlc3Npb246Ok9wZW5lZCk7CisgICAgICAgICAgICBtX2NvbnRyb2xs
ZXItPnJldm9rZUFjY2Vzc1RvTG9jYWxEZXZpY2UobV9zZXNzaW9uSWQpOworICAgICAgICAgICAg
c2V0U3RhdGUoQ2xvc2luZyk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIE9w
ZW5pbmc6CisgICAgICAgIGNhc2UgQ2xvc2luZzoKKyAgICAgICAgICAgIC8vIE5vdGhpbmcgdG8g
ZG8gaGVyZSwgd2FpdCBmb3IgZGV2aWNlIHNlc3Npb24gdXBkYXRlcy4KKyAgICAgICAgICAgIGJy
ZWFrOworCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAvLyBJbnZhbGlkIGRldmljZSBl
bGVtZW50IHN0YXRlIHZhbHVlLgorICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgIH0KKyAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CisgICAgfQorCisg
ICAgaWYgKCFldmVudC0+ZGVmYXVsdEhhbmRsZWQoKSkKKyAgICAgICAgSFRNTEVsZW1lbnQ6OmRl
ZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOworfQorCit2b2lkIEhUTUxEZXZpY2VFbGVtZW50Ojpz
ZXNzaW9uT3BlbmVkKGNvbnN0IERldmljZVNlc3Npb25JZCYgaWQpCit7CisgICAgQVNTRVJUX1VO
VVNFRChpZCwgaWQgPT0gbV9zZXNzaW9uSWQpOworICAgIEFTU0VSVChtX3N0YXRlID09IE9wZW5p
bmcpOworICAgIHNldFN0YXRlKE9wZW5lZCk7CisKKyAgICAvLyBGSVhNRTogZGlzcGF0Y2hpbmcg
dGhlIGV2ZW50IG9ubHkgd2hlbiBhIHNlc3Npb24gaGFzIGJlZW4gb3BlbmVkIGlnbm9yaW5nIG90
aGVyIHNpdHVhdGlvbnMuCisgICAgLy8gICAgICAgIFVwZGF0ZSB0aGlzIGFzIHRoZSBzcGVjaWZp
Y2F0aW9uIGV2b2x2ZXMgKHNlZSBjbG9zZWQgY2FzZSBiZWxvdykuCisgICAgZGlzcGF0Y2hFdmVu
dChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jaGFuZ2VFdmVudCwgdHJ1ZSwgZmFsc2UpKTsK
K30KKwordm9pZCBIVE1MRGV2aWNlRWxlbWVudDo6c2Vzc2lvbkNhbmNlbGxlZChjb25zdCBEZXZp
Y2VTZXNzaW9uSWQmIGlkKQoreworICAgIGlmICghKGlkID09IG1fc2Vzc2lvbklkKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgQVNTRVJUKG1fc3RhdGUgPT0gT3BlbmluZyk7CisgICAgY2xvc2VB
bmRSZXNldFNlc3Npb24oKTsKK30KKwordm9pZCBIVE1MRGV2aWNlRWxlbWVudDo6c2Vzc2lvbkNs
b3NlZChjb25zdCBEZXZpY2VTZXNzaW9uSWQmIGlkLCBib29sKQoreworICAgIGlmICghKGlkID09
IG1fc2Vzc2lvbklkKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRklYTUU6IGhvdyBzaG91
bGQgd2UgcmVwb3J0IHNlc3Npb24gZXJyb3JzIHRvIHRoZSB1c2VyPyBTcGVjaWZpY2F0aW9uIGRv
ZXNuJ3QgbWVudGlvbiB0aGlzLgorICAgIC8vIFNob3VsZCB3ZSBkaXNwYXRjaCBhbiBvbkVycm9y
IGV2ZW50PworICAgIEFTU0VSVChtX3N0YXRlICE9IElkbGUpOworICAgIGNsb3NlQW5kUmVzZXRT
ZXNzaW9uKCk7Cit9CisKK3ZvaWQgSFRNTERldmljZUVsZW1lbnQ6OnNlc3Npb25Db250cm9sbGVy
U2h1dGRvd24oKQoreworICAgIG1fc2Vzc2lvbklkLnJlc2V0KCk7CisgICAgbV9jb250cm9sbGVy
ID0gMDsKKyAgICBzZXRTdGF0ZShJZGxlKTsKK30KKworSFRNTERldmljZUVsZW1lbnQqIHRvSFRN
TERldmljZUVsZW1lbnQoRWxlbWVudCogZWxlbWVudCkKK3sKKyAgICBpZiAoZWxlbWVudC0+aXNI
VE1MRWxlbWVudCgpICYmIGVsZW1lbnQtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpkZXZpY2VUYWcp
KQorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTERldmljZUVsZW1lbnQqPihlbGVtZW50
KTsKKworICAgIHJldHVybiAwOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoREVWSUNFX0VMRU1FTlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxEZXZpY2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXZpY2VF
bGVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNTA5ZmQ1MDc5ODFlYWIwZGRmM2Y1YzExZmFhMTk2N2M2ZWU3
OTg2ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldmljZUVs
ZW1lbnQuaApAQCAtMCwwICsxLDEwMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisg
KiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgSFRNTERldmljZUVsZW1lbnRfaAorI2Rl
ZmluZSBIVE1MRGV2aWNlRWxlbWVudF9oCisKKyNpZiBFTkFCTEUoREVWSUNFX0VMRU1FTlQpCisK
KyNpbmNsdWRlICJEZXZpY2VFbGVtZW50LmgiCisjaW5jbHVkZSAiRGV2aWNlU2Vzc2lvbkNvbnRy
b2xsZXIuaCIKKyNpbmNsdWRlICJEZXZpY2VTZXNzaW9uSWQuaCIKKyNpbmNsdWRlICJIVE1MRWxl
bWVudC5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEZXZpY2VUeXBlOworY2xhc3Mg
U3RyZWFtOworCitjbGFzcyBIVE1MRGV2aWNlRWxlbWVudCA6IHB1YmxpYyBIVE1MRWxlbWVudCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIERldmljZUVsZW1lbnQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgIHB1YmxpYyBEZXZpY2VTZXNzaW9uQ29udHJvbGxlcjo6U2Vzc2lv
bkxpc3RlbmVyIHsKK3B1YmxpYzoKKyAgICBlbnVtIFN0YXRlIHsKKyAgICAgICAgSWRsZSA9IDAs
CisgICAgICAgIE9wZW5pbmcsCisgICAgICAgIE9wZW5lZCwKKyAgICAgICAgQ2xvc2luZworICAg
IH07CisKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MRGV2aWNlRWxlbWVudD4gY3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIHZpcnR1YWwgfkhUTUxEZXZpY2VF
bGVtZW50KCk7CisKKyAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGNoYW5nZSk7
CisKKyAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoKCk7CisgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFw
cGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOworCisgICAgU3RhdGUgc3RhdGUoKSBjb25zdDsKKyAg
ICBjb25zdCBEZXZpY2VUeXBlJiBkZXZpY2VUeXBlKCkgY29uc3Q7CisgICAgY29uc3QgRGV2aWNl
U2Vzc2lvbiogc2Vzc2lvbigpIGNvbnN0OworCisgICAgLy8gSW1wbGVtZW50YXRpb24gb2Ygdmly
dHVhbCBtZXRob2RzIGZyb20gRGV2aWNlRWxlbWVudC4KKyAgICB2aXJ0dWFsIHZvaWQgc2V0VHlw
ZShjb25zdCBTdHJpbmcmKTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U3RyZWFtPiBkYXRhKCk7
CisKKyAgICAvLyBEZXZpY2VTZXNzaW9uQ29udHJvbGxlcjo6U2Vzc2lvbkxpc3RlbmVyIGltcGxl
bWVudGF0aW9uLgorICAgIHZpcnR1YWwgdm9pZCBzZXNzaW9uT3BlbmVkKGNvbnN0IERldmljZVNl
c3Npb25JZCYpOworICAgIHZpcnR1YWwgdm9pZCBzZXNzaW9uQ2FuY2VsbGVkKGNvbnN0IERldmlj
ZVNlc3Npb25JZCYpOworICAgIHZpcnR1YWwgdm9pZCBzZXNzaW9uQ2xvc2VkKGNvbnN0IERldmlj
ZVNlc3Npb25JZCYsIGJvb2wgZmFpbGVkKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2Vzc2lvbkNvbnRy
b2xsZXJTaHV0ZG93bigpOworCitwcm90ZWN0ZWQ6CisgICAgSFRNTERldmljZUVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRF
dmVudEhhbmRsZXIoRXZlbnQqKTsKKworcHJpdmF0ZToKKyAgICB2b2lkIHNldFN0YXRlKFN0YXRl
KTsKKyAgICB2b2lkIGNsb3NlQW5kUmVzZXRTZXNzaW9uKCk7CisKKyAgICBTdGF0ZSBtX3N0YXRl
OworICAgIERldmljZVNlc3Npb25JZCBtX3Nlc3Npb25JZDsKKyAgICBEZXZpY2VTZXNzaW9uQ29u
dHJvbGxlciAqbV9jb250cm9sbGVyOworfTsKKworSFRNTERldmljZUVsZW1lbnQqIHRvSFRNTERl
dmljZUVsZW1lbnQoRWxlbWVudCopOworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoREVWSUNFX0VMRU1FTlQpCisKKyNlbmRpZiAvLyBIVE1MRGV2aWNlRWxlbWVu
dF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXZpY2VFbGVtZW50Lmlk
bCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldmljZUVsZW1lbnQuaWRsCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjYwYzAxNTE0YjhiMTI0MGJhNDEzZmI2MTA5NmJjMTNiMGE4MGJjYzUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXZpY2VFbGVtZW50LmlkbApAQCAtMCwwICsx
LDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6Cisg
KgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAq
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
CisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworbW9kdWxlIGh0bWwgeworCisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9u
YWw9REVWSUNFX0VMRU1FTlQKKyAgICBdIEhUTUxEZXZpY2VFbGVtZW50IDogSFRNTEVsZW1lbnQg
eworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBE
T01TdHJpbmcgdHlwZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDdXN0b21HZXR0ZXJd
IERPTU9iamVjdCBkYXRhOworICAgIH07Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUYWdOYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVzLmlu
CmluZGV4IGJlYTYzZTQyMTI2NTUzMTk3NGY0NGI0MmFjODExODI1ZDNkM2ZlOGYuLmYyZGNmMjVk
YjQxNzM2ZjFhZDUxMmI5ZjcyYzE4NzA4MDQ3N2FiNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRhZ05hbWVzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRh
Z05hbWVzLmluCkBAIC0zNyw2ICszNyw3IEBAIGRyb3cgaW50ZXJmYWNlTmFtZT1IVE1MRGF0YUdy
aWRSb3dFbGVtZW50LCBjb25kaXRpb25hbD1EQVRBR1JJRAogZGQgaW50ZXJmYWNlTmFtZT1IVE1M
RWxlbWVudAogZGVsIGludGVyZmFjZU5hbWU9SFRNTE1vZEVsZW1lbnQKIGRldGFpbHMKK2Rldmlj
ZSBpbnRlcmZhY2VOYW1lPUhUTUxEZXZpY2VFbGVtZW50LCBjb25kaXRpb25hbD1ERVZJQ0VfRUxF
TUVOVAogZGZuIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIGRpciBpbnRlcmZhY2VOYW1lPUhU
TUxEaXJlY3RvcnlFbGVtZW50CiBkaXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAppbmRleCBk
M2FkMjQ3Mzc5ZWY2MTNhYmU0ZTU2MzU3NzFmOGYxMTc3YjRhMjBhLi4zYjIwYjNhZDNkMGFhYmRk
ZWQ2MDI5ZjhkMGMzZTU1ZWRkOWQxMDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCkBA
IC00MjUsNiArNDI1LDcgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIGF0dHJpYnV0ZSBbQ29u
ZGl0aW9uYWw9REFUQUdSSURdIEhUTUxEYXRhR3JpZEVsZW1lbnRDb25zdHJ1Y3RvciBIVE1MRGF0
YUdyaWRFbGVtZW50OwogICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPURBVEFHUklEXSBI
VE1MRGF0YUdyaWRDZWxsRWxlbWVudENvbnN0cnVjdG9yIEhUTUxEYXRhR3JpZENlbGxFbGVtZW50
OwogICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPURBVEFHUklEXSBIVE1MRGF0YUdyaWRD
b2xFbGVtZW50Q29uc3RydWN0b3IgSFRNTERhdGFHcmlkQ29sRWxlbWVudDsKKyAgICAgICAgYXR0
cmlidXRlIFtDb25kaXRpb25hbD1ERVZJQ0VfRUxFTUVOVF0gSFRNTERldmljZUVsZW1lbnRDb25z
dHJ1Y3RvciBIVE1MRGV2aWNlRWxlbWVudDsKICAgICAgICAgYXR0cmlidXRlIEhUTUxETGlzdEVs
ZW1lbnRDb25zdHJ1Y3RvciBIVE1MRExpc3RFbGVtZW50OwogICAgICAgICBhdHRyaWJ1dGUgSFRN
TERpcmVjdG9yeUVsZW1lbnRDb25zdHJ1Y3RvciBIVE1MRGlyZWN0b3J5RWxlbWVudDsKICAgICAg
ICAgYXR0cmlidXRlIEhUTUxEaXZFbGVtZW50Q29uc3RydWN0b3IgSFRNTERpdkVsZW1lbnQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNsaWVudC5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9EZXZpY2VDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYjE2NThlZTg0Y2Y4MjRlNjEy
OThhZmE2MDM5MWJjMWY3MTE3OWEyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9EZXZpY2VDbGllbnQuaApAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBEZXZpY2VDbGllbnRfaAorI2Rl
ZmluZSBEZXZpY2VDbGllbnRfaAorCisjaWYgRU5BQkxFKERFVklDRV9FTEVNRU5UKQorCisjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEZXZp
Y2VTZXNzaW9uSWQ7CitjbGFzcyBEZXZpY2VMaXN0ZW5lcjsKK2NsYXNzIERldmljZVR5cGU7Citj
bGFzcyBTZWN1cml0eU9yaWdpbjsKKworY2xhc3MgRGV2aWNlQ2xpZW50IHsKK3B1YmxpYzoKKyAg
ICAvLyBSZWdpc3RlciB0aGUgbGlzdGVuZXIgZm9yIHJlY2VpdmluZyBjYWxsYmFja3MuIFNob3Vs
ZCBzZXQgdG8gbnVsbCB3aGVuIG5vdCByZXF1aXJlZCBhbnltb3JlLiBObyBvd25lcnNoaXAgaXMg
dGFrZW4uCisgICAgLy8gVW5kZXIgbm9ybWFsIGNpcmN1bXN0YW5jZXMgdGhlIGxpc3RlbmVyIHNo
b3VsZCBiZSB0aGUgcGFnZSBEZXZpY2VTZXNzaW9uQ29udHJvbGxlciBvYmplY3QuCisgICAgdmly
dHVhbCB2b2lkIHNldExpc3RlbmVyKERldmljZUxpc3RlbmVyKikgPSAwOworCisgICAgLy8gLS0t
LS0gU2Vzc2lvbi1yZWxhdGVkIG1ldGhvZHMgLS0tLS0gLy8KKworICAgIC8vIFJlcXVlc3QgdG8g
b3BlbiBhIHNlc3Npb24gd2l0aCBhIGxvY2FsIGRldmljZSBvZiB0aGUgc3BlY2lmaWVkIHR5cGUu
CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RBY2Nlc3NUb0xvY2FsRGV2aWNlKGNvbnN0IERldmlj
ZVNlc3Npb25JZCYsIGNvbnN0IERldmljZVR5cGUmLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2lu
PikgPSAwOworCisgICAgLy8gUmVxdWVzdCB0byBjbG9zZSBhIG9uZ29pbmcgbG9jYWwgZGV2aWNl
IHNlc3Npb24uCisgICAgdmlydHVhbCB2b2lkIHJldm9rZUFjY2Vzc1RvTG9jYWxEZXZpY2UoY29u
c3QgRGV2aWNlU2Vzc2lvbklkJikgPSAwOworCisgICAgLy8gLS0tLS0gTWVkaWEtcmVsYXRlZCBt
ZXRob2RzIC0tLS0tIC8vCisKKyAgICAvLyBSZXF1ZXN0IHRvIHN0YXJ0IHJlY29yZGluZyBhbiBl
eGlzdGluZyBzdHJlYW0gdG8gYSBmaWxlLgorICAgIHZpcnR1YWwgdm9pZCByZWNvcmRTdHJlYW1U
b0ZpbGUoaW50IG1lZGlhTGlzdGVuZXJJZCwgY29uc3QgRGV2aWNlU2Vzc2lvbklkJikgPSAwOwor
CisgICAgLy8gU3RvcCByZWNvcmRpbmcgYSBzdHJlYW0gdG8gYSBmaWxlLgorICAgIHZpcnR1YWwg
dm9pZCBzdG9wUmVjb3JkaW5nU3RyZWFtKGludCBtZWRpYUxpc3RlbmVySWQsIGNvbnN0IERldmlj
ZVNlc3Npb25JZCYsIGNvbnN0IFN0cmluZyYgcGF0aCkgPSAwOworCitwcm90ZWN0ZWQ6CisgICAg
dmlydHVhbCB+RGV2aWNlQ2xpZW50KCkgeyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBFTkFCTEUoREVWSUNFX0VMRU1FTlQpCisKKyNlbmRpZiAvLyBEZXZpY2VD
bGllbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VMaXN0ZW5lci5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VMaXN0ZW5lci5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlOTc3
ODhkNTJjZTAyZmU2OTNmMmFkNzFhYTA1ODZmMjBlYWViNjMKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUxpc3RlbmVyLmgKQEAgLTAsMCArMSw2NyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmli
dXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRGV2
aWNlTGlzdGVuZXJfaAorI2RlZmluZSBEZXZpY2VMaXN0ZW5lcl9oCisKKyNpZiBFTkFCTEUoREVW
SUNFX0VMRU1FTlQpCisKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIERldmljZVNlc3Npb25JZDsKK2NsYXNzIERldmljZVR5cGVTcGVj
aWZpYzsKKworLy8gVGhpcyBpbnRlcmZhY2UgY29tcG9zZXMgdGhlIGRpZmZlcmVudCBraW5kcyBv
ZiBpbmNvbWluZyBtZXNzYWdlcyBzbyB0aGF0IHRoZXkgY2FuCisvLyBiZSBpbXBsZW1lbnRlZCBi
eSBib3RoIHRoZSBEZXZpY2VDb250cm9sbGVyIGFuZCB0aGUgRGV2aWNlQ2xpZW50TW9jay4KK2Ns
YXNzIERldmljZUxpc3RlbmVyICB7CitwdWJsaWM6CisgICAgZW51bSBTZXNzaW9uVXBkYXRlIHsK
KyAgICAgICAgT3BlbmVkID0gMCwgLy8gRGV2aWNlIHNlc3Npb24gb3BlbmVkIHN1Y2Nlc3NmdWxs
eS4KKyAgICAgICAgQ2FuY2VsbGVkLCAvLyBEZXZpY2Ugc2VsZWN0aW9uIGNhbmNlbGxlZCBieSB0
aGUgdXNlci4KKyAgICAgICAgRmFpbGVkLCAvLyBTZXNzaW9uIHRlcm1pbmF0aW9uIGJ5IGEgZGV2
aWNlIGFjY2VzcyBmYWlsdXJlLgorICAgICAgICBDbG9zZWQgLy8gU2Vzc2lvbiBjbG9zZWQgYnkg
dGhlIHVzZXIuCisgICAgfTsKKworICAgIC8vIFJlcG9ydHMgYW4gdXBkYXRlIGluIHRoZSBzdGF0
ZSBvZiBhIGRldmljZSBzZXNzaW9uLgorICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VTZXNzaW9uVXBk
YXRlKGNvbnN0IERldmljZVNlc3Npb25JZCYsIFNlc3Npb25VcGRhdGUsIFBhc3NPd25QdHI8RGV2
aWNlVHlwZVNwZWNpZmljPikgPSAwOworCisgICAgLy8gTm90aWZpZXMgdGhhdCBhIHN0cmVhbSBy
ZWNvcmRpbmcgaGFzIHN0YXJ0ZWQgYW5kIGl0cyBiZWluZyByZWNvcmRlZCBpbnRvIGEgc3BlY2lm
aWVkIGZpbGUuCisgICAgdmlydHVhbCB2b2lkIHN0cmVhbVJlY29yZGluZ1N0YXJ0ZWQoaW50IG1l
ZGlhTGlzdGVuZXJJZCwgY29uc3QgU3RyaW5nJiBwYXRoKSA9IDA7CisKKyAgICB2aXJ0dWFsIH5E
ZXZpY2VMaXN0ZW5lcigpIHsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRU5BQkxFKERFVklDRV9FTEVNRU5UKQorCisjZW5kaWYgLy8gRGV2aWNlTGlzdGVuZXJf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VTZXNzaW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RldmljZVNlc3Npb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNDAyZjkxOThlYTFl
OTYwZjlmOTRkMGI5NmNiNjc5NDQ1NTMzOWQ5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9EZXZpY2VTZXNzaW9uLmgKQEAgLTAsMCArMSwxMTggQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0
aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIERldmlj
ZVNlc3Npb25faAorI2RlZmluZSBEZXZpY2VTZXNzaW9uX2gKKworI2lmIEVOQUJMRShERVZJQ0Vf
RUxFTUVOVCkKKworI2luY2x1ZGUgIkRldmljZVNlc3Npb25JZC5oIgorI2luY2x1ZGUgIkRldmlj
ZVR5cGUuaCIKKyNpbmNsdWRlICJLVVJMLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIK
KyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgIlN0cmVhbS5oIgorI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGV2aWNlVHlw
ZVNwZWNpZmljIHsKK3B1YmxpYzoKKyAgICBEZXZpY2VUeXBlU3BlY2lmaWMoKSB7IH0KKyAgICBE
ZXZpY2VUeXBlU3BlY2lmaWMoY29uc3QgRGV2aWNlVHlwZSYgdHlwZSkgOiBtX3R5cGUodHlwZSkg
eyB9CisgICAgdmlydHVhbCB+RGV2aWNlVHlwZVNwZWNpZmljKCkgeyB9CisKKyAgICBjb25zdCBE
ZXZpY2VUeXBlJiB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CisKK3ByaXZhdGU6Cisg
ICAgLy8gQ2FsbGVkIHdoZW4gdGhlIHNlc3Npb24gc3RhdHVzIGNoYW5nZXMgdG8gT3BlbmVkLgor
ICAgIHZpcnR1YWwgdm9pZCBvbk9wZW4oRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIqLCBjb25zdCBE
ZXZpY2VTZXNzaW9uSWQmKSB7IH0KKworICAgIC8vIENhbGxlZCB3aGVuIHRoZSBzZXNzaW9uIHN0
YXR1cyBjaGFuZ2VzIHRvIEZhaWxlZCBvciBDbG9zZWQuCisgICAgdmlydHVhbCB2b2lkIG9uQ2xv
c2UoRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIqLCBjb25zdCBEZXZpY2VTZXNzaW9uSWQmKSB7IH0K
KworICAgIGZyaWVuZCBjbGFzcyBEZXZpY2VTZXNzaW9uQ29udHJvbGxlcjsKKyAgICBEZXZpY2VU
eXBlIG1fdHlwZTsKK307CisKK2NsYXNzIERldmljZVNlc3Npb24geworcHVibGljOgorICAgIGVu
dW0gU3RhdGUgeworICAgICAgICBJZGxlID0gMCwgLy8gSW5pdGlhbGl6YXRpb24gc3RhdGUuIE5v
dCBhc3NvY2lhdGVkIHdpdGggYW55IGRldmljZXMuCisgICAgICAgIE9wZW5pbmcsIC8vIFRyeWlu
ZyB0byBvcGVuIGEgZGV2aWNlIHNlc3Npb24uCisgICAgICAgIE9wZW5lZCwgLy8gRGV2aWNlIHNl
c3Npb24gb3BlbmVkIHN1Y2Nlc3NmdWxseS4KKyAgICAgICAgQ2FuY2VsbGVkLCAvLyBEZXZpY2Ug
c2VsZWN0aW9uIGNhbmNlbGxlZCBieSB0aGUgdXNlci4gTmV2ZXIgcmVhY2hlZCB0aGUgT3BlbmVk
IHN0YXRlLgorICAgICAgICBDbG9zaW5nLCAvLyBDbG9zaW5nIGEgZGV2aWNlIHNlc3Npb24gYnkg
dXNlciByZXF1ZXN0LgorICAgICAgICBDbG9zZWQsIC8vIFNlc3Npb24gY2xvc2VkLCBlaXRoZXIg
YnkgYSBmYWlsdXJlIG9yIGJ5IHRoZSB1c2VyLgorICAgIH07CisKKyAgICBEZXZpY2VTZXNzaW9u
KCkKKyAgICAgICAgOiBtX3N0YXRlKElkbGUpCisgICAgeyB9CisKKyAgICBEZXZpY2VTZXNzaW9u
KGNvbnN0IERldmljZVNlc3Npb25JZCYgaWQsCisgICAgICAgICAgICAgICAgICBjb25zdCBEZXZp
Y2VUeXBlJiB0eXBlLAorICAgICAgICAgICAgICAgICAgU3RhdGUgc3RhdGUsCisgICAgICAgICAg
ICAgICAgICBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBzZWN1cml0eU9yaWdpbiwKKyAgICAg
ICAgICAgICAgICAgIFBhc3NPd25QdHI8RGV2aWNlVHlwZVNwZWNpZmljPiB0eXBlU3BlY2lmaWMp
CisgICAgICAgIDogbV9pZChpZCkKKyAgICAgICAgLCBtX3R5cGUodHlwZSkKKyAgICAgICAgLCBt
X3N0YXRlKHN0YXRlKQorICAgICAgICAsIG1fc2VjdXJpdHlPcmlnaW4oc2VjdXJpdHlPcmlnaW4p
CisgICAgICAgICwgbV90eXBlU3BlY2lmaWModHlwZVNwZWNpZmljKQorICAgIHsgfQorCisgICAg
Y29uc3QgRGV2aWNlU2Vzc2lvbklkJiBpZCgpIGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KKyAgICBj
b25zdCBEZXZpY2VUeXBlJiB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CisgICAgU3Rh
dGUgc3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlOyB9CisgICAgUGFzc1JlZlB0cjxTZWN1
cml0eU9yaWdpbj4gc2VjdXJpdHlPcmlnaW4oKSBjb25zdCB7IHJldHVybiBtX3NlY3VyaXR5T3Jp
Z2luOyB9CisgICAgY29uc3QgRGV2aWNlVHlwZVNwZWNpZmljKiB0eXBlU3BlY2lmaWMoKSBjb25z
dCB7IHJldHVybiBtX3R5cGVTcGVjaWZpYy5nZXQoKTsgfQorCisgICAgYm9vbCBpc0xvY2FsKCkg
Y29uc3QgeyByZXR1cm4gbV9pZC50eXBlKCkgPT0gRGV2aWNlU2Vzc2lvbklkOjpMb2NhbDsgfQor
ICAgIGJvb2wgaXNSZW1vdGUoKSBjb25zdCB7IHJldHVybiBtX2lkLnR5cGUoKSA9PSBEZXZpY2VT
ZXNzaW9uSWQ6OlJlbW90ZTsgfQorCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBEZXZpY2VT
ZXNzaW9uQ29udHJvbGxlcjsKKyAgICBEZXZpY2VTZXNzaW9uSWQmIG11dGFibGVJZCgpIHsgcmV0
dXJuIG1faWQ7IH0KKworICAgIERldmljZVNlc3Npb25JZCBtX2lkOworICAgIERldmljZVR5cGUg
bV90eXBlOworICAgIFN0YXRlIG1fc3RhdGU7CisgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBt
X3NlY3VyaXR5T3JpZ2luOworICAgIE93blB0cjxEZXZpY2VUeXBlU3BlY2lmaWM+IG1fdHlwZVNw
ZWNpZmljOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxF
KERFVklDRV9FTEVNRU5UKQorCisjZW5kaWYgLy8gRGV2aWNlU2Vzc2lvbl9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZVNlc3Npb25Db250cm9sbGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJl
MzA3MmU2YzAyNDlkNTM3YmUzZDM0NGU2YjQ1OTYyNWQzY2M1NTMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZVNlc3Npb25Db250cm9sbGVyLmNwcApAQCAtMCww
ICsxLDI3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0
OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
CisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEZXZpY2VTZXNzaW9uQ29u
dHJvbGxlci5oIgorCisjaW5jbHVkZSAiRGV2aWNlQ2xpZW50LmgiCisjaW5jbHVkZSAiRGV2aWNl
U2Vzc2lvbi5oIgorI2luY2x1ZGUgIkRldmljZVNlc3Npb25TcGVjaWZpYy5oIgorI2luY2x1ZGUg
IkRldmljZVR5cGUuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorCisjaWYgRU5BQkxF
KERFVklDRV9FTEVNRU5UKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0RldmljZVNlc3Npb25D
b250cm9sbGVyOjpEZXZpY2VTZXNzaW9uQ29udHJvbGxlcihEZXZpY2VDbGllbnQqIGNsaWVudCkK
KyAgICA6IG1fY2xpZW50KGNsaWVudCkKKyAgICAsIG1fbmV4dExvY2FsRGV2aWNlU2Vzc2lvbklk
KDEpCisgICAgLCBtX25leHRNZWRpYUxpc3RlbmVySWQoMSkKK3sKKyAgICAvLyBGSVhNRTogbGlu
ayB3aXRoIHRoZSBjbGllbnQgd2hlbiB0aGVyZSBpcyBvbmUgYXZhaWxhYmxlLgorICAgIC8vIG1f
Y2xpZW50LT5zZXRMaXN0ZW5lcih0aGlzKTsKK30KKworRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXI6
On5EZXZpY2VTZXNzaW9uQ29udHJvbGxlcigpCit7CisgICAgbV9jbGllbnQtPnNldExpc3RlbmVy
KDApOworCisgICAgZm9yIChTZXNzaW9uTGlzdGVuZXJzTWFwOjppdGVyYXRvciBsaXN0ZW5lcnMg
PSBtX3Nlc3Npb25MaXN0ZW5lcnMuYmVnaW4oKTsgbGlzdGVuZXJzICE9IG1fc2Vzc2lvbkxpc3Rl
bmVycy5lbmQoKTsgKytsaXN0ZW5lcnMpIHsKKyAgICAgICAgZm9yIChTZXNzaW9uTGlzdGVuZXJT
ZXQ6Oml0ZXJhdG9yIGxpc3RlbmVyID0gbGlzdGVuZXJzLT5zZWNvbmQtPmJlZ2luKCk7IGxpc3Rl
bmVyICE9IGxpc3RlbmVycy0+c2Vjb25kLT5lbmQoKTsgKytsaXN0ZW5lcikKKyAgICAgICAgICAg
ICgqbGlzdGVuZXIpLT5zZXNzaW9uQ29udHJvbGxlclNodXRkb3duKCk7CisKKyAgICAgICAgZGVs
ZXRlIGxpc3RlbmVycy0+c2Vjb25kOworICAgIH0KKworICAgIGZvciAoRGV2aWNlU2Vzc2lvbk1h
cDo6aXRlcmF0b3Igc2Vzc2lvbiA9IG1fZGV2aWNlU2Vzc2lvbnMuYmVnaW4oKTsgc2Vzc2lvbiAh
PSBtX2RldmljZVNlc3Npb25zLmVuZCgpOyArK3Nlc3Npb24pIHsKKyAgICAgICAgaWYgKHNlc3Np
b24tPnNlY29uZC0+c3RhdGUoKSA9PSBEZXZpY2VTZXNzaW9uOjpPcGVuZWQpCisgICAgICAgICAg
ICByZXZva2VBY2Nlc3NUb0xvY2FsRGV2aWNlKHNlc3Npb24tPnNlY29uZC0+aWQoKSk7CisKKyAg
ICAgICAgZGVsZXRlIHNlc3Npb24tPnNlY29uZDsKKyAgICB9Cit9CisKK0RldmljZVNlc3Npb25J
ZCBEZXZpY2VTZXNzaW9uQ29udHJvbGxlcjo6Y3JlYXRlTG9jYWxEZXZpY2VTZXNzaW9uKGNvbnN0
IERldmljZVR5cGUmIHR5cGUsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHNlY3VyaXR5T3Jp
Z2luLCBTZXNzaW9uTGlzdGVuZXIqIGxpc3RlbmVyKQoreworICAgIGlmICghdHlwZS5pc1ZhbGlk
KCkpCisgICAgICAgIHJldHVybiBEZXZpY2VTZXNzaW9uSWQoKTsKKworICAgIERldmljZVNlc3Np
b24qIHNlc3Npb24gPSBuZXcgRGV2aWNlU2Vzc2lvbigpOworICAgIHNlc3Npb24tPm11dGFibGVJ
ZCgpLm1faWQgPSBtX25leHRMb2NhbERldmljZVNlc3Npb25JZDsKKyAgICBzZXNzaW9uLT5tdXRh
YmxlSWQoKS5tX3R5cGUgPSBEZXZpY2VTZXNzaW9uSWQ6OkxvY2FsOworICAgICsrbV9uZXh0TG9j
YWxEZXZpY2VTZXNzaW9uSWQ7CisKKyAgICBzZXNzaW9uLT5tX3R5cGUgPSB0eXBlOworICAgIHNl
c3Npb24tPm1fc2VjdXJpdHlPcmlnaW4gPSBzZWN1cml0eU9yaWdpbjsKKworICAgIHN3aXRjaCAo
c2Vzc2lvbi0+dHlwZSgpLmlkKCkpIHsKKyAgICBjYXNlIERldmljZVR5cGU6Ok1lZGlhOgorICAg
ICAgICBzZXNzaW9uLT5tX3R5cGVTcGVjaWZpYyA9IGFkb3B0UHRyKG5ldyBEZXZpY2VNZWRpYVNw
ZWNpZmljKCkpOworICAgICAgICBicmVhazsKKworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAgIEFTU0VSVCghbV9kZXZpY2VTZXNzaW9ucy5j
b250YWlucyhzZXNzaW9uLT5pZCgpKSk7CisgICAgbV9kZXZpY2VTZXNzaW9ucy5zZXQoc2Vzc2lv
bi0+aWQoKSwgc2Vzc2lvbik7CisKKyAgICBBU1NFUlQoIW1fc2Vzc2lvbkxpc3RlbmVycy5jb250
YWlucyhzZXNzaW9uLT5pZCgpKSk7CisgICAgbV9zZXNzaW9uTGlzdGVuZXJzLnNldChzZXNzaW9u
LT5pZCgpLCBuZXcgU2Vzc2lvbkxpc3RlbmVyU2V0KTsKKworICAgIEFTU0VSVCghbV9zZXNzaW9u
TGlzdGVuZXJzLmdldChzZXNzaW9uLT5pZCgpKS0+Y29udGFpbnMobGlzdGVuZXIpKTsKKyAgICBt
X3Nlc3Npb25MaXN0ZW5lcnMuZ2V0KHNlc3Npb24tPmlkKCkpLT5hZGQobGlzdGVuZXIpOworCisg
ICAgcmV0dXJuIHNlc3Npb24tPmlkKCk7Cit9CisKK3ZvaWQgRGV2aWNlU2Vzc2lvbkNvbnRyb2xs
ZXI6OnJlZ2lzdGVyU2Vzc2lvbkxpc3RlbmVyKGNvbnN0IERldmljZVNlc3Npb25JZCYgaWQsIFNl
c3Npb25MaXN0ZW5lciogbGlzdGVuZXIpCit7CisgICAgQVNTRVJUKCFpZC5pc051bGwoKSk7Cisg
ICAgQVNTRVJUKG1fZGV2aWNlU2Vzc2lvbnMuY29udGFpbnMoaWQpKTsKKyAgICBBU1NFUlQobV9z
ZXNzaW9uTGlzdGVuZXJzLmNvbnRhaW5zKGlkKSk7CisgICAgQVNTRVJUKCFtX3Nlc3Npb25MaXN0
ZW5lcnMuZ2V0KGlkKS0+Y29udGFpbnMobGlzdGVuZXIpKTsKKworICAgIG1fc2Vzc2lvbkxpc3Rl
bmVycy5nZXQoaWQpLT5hZGQobGlzdGVuZXIpOworfQorCit2b2lkIERldmljZVNlc3Npb25Db250
cm9sbGVyOjp1bnJlZ2lzdGVyU2Vzc2lvbkxpc3RlbmVyKGNvbnN0IERldmljZVNlc3Npb25JZCYg
aWQsIFNlc3Npb25MaXN0ZW5lciogbGlzdGVuZXIpCit7CisgICAgQVNTRVJUKCFpZC5pc051bGwo
KSk7CisgICAgQVNTRVJUKG1fZGV2aWNlU2Vzc2lvbnMuY29udGFpbnMoaWQpKTsKKyAgICBBU1NF
UlQobV9zZXNzaW9uTGlzdGVuZXJzLmNvbnRhaW5zKGlkKSk7CisgICAgQVNTRVJUKG1fc2Vzc2lv
bkxpc3RlbmVycy5nZXQoaWQpLT5jb250YWlucyhsaXN0ZW5lcikpOworCisgICAgbV9zZXNzaW9u
TGlzdGVuZXJzLmdldChpZCktPnJlbW92ZShsaXN0ZW5lcik7CisgICAgaWYgKG1fc2Vzc2lvbkxp
c3RlbmVycy5nZXQoaWQpLT5pc0VtcHR5KCkpIHsKKyAgICAgICAgZGVsZXRlIG1fc2Vzc2lvbkxp
c3RlbmVycy50YWtlKGlkKTsKKyAgICAgICAgZGVsZXRlIG1fZGV2aWNlU2Vzc2lvbnMudGFrZShp
ZCk7CisgICAgfQorfQorCitpbnQgRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXI6OnJlZ2lzdGVyTWVk
aWFMaXN0ZW5lcihNZWRpYUxpc3RlbmVyKiBsaXN0ZW5lcikKK3sKKyNpZiBkZWZpbmVkKERFQlVH
KQorICAgIC8vIENoZWNrIGlmIGFscmVhZHkgcHJlc2VudC4KKyAgICBmb3IgKE1lZGlhTGlzdGVu
ZXJNYXA6Oml0ZXJhdG9yIGl0ID0gbV9tZWRpYUxpc3RlbmVycy5iZWdpbigpOyBpdCAhPSBtX21l
ZGlhTGlzdGVuZXJzLmVuZCgpOyArK2l0KQorICAgICAgICBBU1NFUlQoaXQtPnNlY29uZCAhPSBs
aXN0ZW5lcik7CisjZW5kaWYKKworICAgIG1fbWVkaWFMaXN0ZW5lcnMuYWRkKG1fbmV4dE1lZGlh
TGlzdGVuZXJJZCwgbGlzdGVuZXIpOworICAgIHJldHVybiBtX25leHRNZWRpYUxpc3RlbmVySWQr
KzsKK30KKwordm9pZCBEZXZpY2VTZXNzaW9uQ29udHJvbGxlcjo6dW5yZWdpc3Rlck1lZGlhTGlz
dGVuZXIoaW50IG1lZGlhTGlzdGVuZXJJZCkKK3sKKyAgICBBU1NFUlQobWVkaWFMaXN0ZW5lcklk
KTsKKyAgICBBU1NFUlQobV9tZWRpYUxpc3RlbmVycy5jb250YWlucyhtZWRpYUxpc3RlbmVySWQp
KTsKKyAgICBtX21lZGlhTGlzdGVuZXJzLnJlbW92ZShtZWRpYUxpc3RlbmVySWQpOworfQorCitj
b25zdCBEZXZpY2VTZXNzaW9uJiBEZXZpY2VTZXNzaW9uQ29udHJvbGxlcjo6c2Vzc2lvbihjb25z
dCBEZXZpY2VTZXNzaW9uSWQmIGlkKSBjb25zdAoreworICAgIEFTU0VSVCghaWQuaXNOdWxsKCkp
OworICAgIEFTU0VSVChtX2RldmljZVNlc3Npb25zLmNvbnRhaW5zKGlkKSk7CisgICAgcmV0dXJu
ICptX2RldmljZVNlc3Npb25zLmdldChpZCk7Cit9CisKK0RldmljZVNlc3Npb24mIERldmljZVNl
c3Npb25Db250cm9sbGVyOjptdXRhYmxlU2Vzc2lvbihjb25zdCBEZXZpY2VTZXNzaW9uSWQmIGlk
KQoreworICAgIEFTU0VSVCghaWQuaXNOdWxsKCkpOworICAgIEFTU0VSVChtX2RldmljZVNlc3Np
b25zLmNvbnRhaW5zKGlkKSk7CisgICAgcmV0dXJuICptX2RldmljZVNlc3Npb25zLmdldChpZCk7
Cit9CisKK2Jvb2wgRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXI6OmlzU2Vzc2lvbklkVmFsaWQoY29u
c3QgRGV2aWNlU2Vzc2lvbklkJiBpZCkgY29uc3QKK3sKKyAgICBpZiAoaWQuaXNOdWxsKCkgfHwg
aWQudHlwZSgpID09IERldmljZVNlc3Npb25JZDo6Tm9uZSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgcmV0dXJuIG1fZGV2aWNlU2Vzc2lvbnMuY29udGFpbnMoaWQpOworfQorCit2b2lk
IERldmljZVNlc3Npb25Db250cm9sbGVyOjpyZXF1ZXN0QWNjZXNzVG9Mb2NhbERldmljZShjb25z
dCBEZXZpY2VTZXNzaW9uSWQmIGlkKQoreworICAgIEFTU0VSVChpZC50eXBlKCkgPT0gRGV2aWNl
U2Vzc2lvbklkOjpMb2NhbCk7CisgICAgRGV2aWNlU2Vzc2lvbiYgc2Vzc2lvbiA9IG11dGFibGVT
ZXNzaW9uKGlkKTsKKyAgICBBU1NFUlQoc2Vzc2lvbi5zdGF0ZSgpID09IERldmljZVNlc3Npb246
OklkbGUpOworICAgIHNlc3Npb24ubV9zdGF0ZSA9IERldmljZVNlc3Npb246Ok9wZW5pbmc7Cisg
ICAgcmV0dXJuIG1fY2xpZW50LT5yZXF1ZXN0QWNjZXNzVG9Mb2NhbERldmljZShpZCwgc2Vzc2lv
bi50eXBlKCksIHNlc3Npb24uc2VjdXJpdHlPcmlnaW4oKSk7Cit9CisKK3ZvaWQgRGV2aWNlU2Vz
c2lvbkNvbnRyb2xsZXI6OnJldm9rZUFjY2Vzc1RvTG9jYWxEZXZpY2UoY29uc3QgRGV2aWNlU2Vz
c2lvbklkJiBpZCkKK3sKKyAgICBBU1NFUlQoaWQudHlwZSgpID09IERldmljZVNlc3Npb25JZDo6
TG9jYWwpOworICAgIERldmljZVNlc3Npb24mIHNlc3Npb24gPSBtdXRhYmxlU2Vzc2lvbihpZCk7
CisgICAgQVNTRVJUKHNlc3Npb24uc3RhdGUoKSA9PSBEZXZpY2VTZXNzaW9uOjpPcGVuZWQpOwor
ICAgIHNlc3Npb24ubV9zdGF0ZSA9IERldmljZVNlc3Npb246OkNsb3Npbmc7CisgICAgcmV0dXJu
IG1fY2xpZW50LT5yZXZva2VBY2Nlc3NUb0xvY2FsRGV2aWNlKGlkKTsKK30KKwordm9pZCBEZXZp
Y2VTZXNzaW9uQ29udHJvbGxlcjo6ZGV2aWNlU2Vzc2lvblVwZGF0ZShjb25zdCBEZXZpY2VTZXNz
aW9uSWQmIGlkLCBEZXZpY2VMaXN0ZW5lcjo6U2Vzc2lvblVwZGF0ZSB1cGRhdGUsIFBhc3NPd25Q
dHI8RGV2aWNlVHlwZVNwZWNpZmljPiB0eXBlU3BlY2lmaWMpCit7CisgICAgLy8gRG9uJ3QgYXNz
ZXJ0IGlmIG5vdCBwcmVzZW50IGFzIHRoZSBzZXNzaW9uIG1pZ2h0IGhhdmUgYmVlbiBkZXN0cm95
ZWQgKGJ5IGRlbGV0aW5nIGFsbCBpdHMgbGlzdGVuZXJzKQorICAgIC8vIHdoaWxlIHRoaXMgZXZl
bnQgd2FzIG9uIGl0cyB3YXkuCisgICAgaWYgKG1fc2Vzc2lvbkxpc3RlbmVycy5jb250YWlucyhp
ZCkpIHsKKyAgICAgICAgRGV2aWNlU2Vzc2lvbiYgc2Vzc2lvbiA9IG11dGFibGVTZXNzaW9uKGlk
KTsKKworICAgICAgICBzd2l0Y2ggKHVwZGF0ZSkgeworICAgICAgICBjYXNlIERldmljZUxpc3Rl
bmVyOjpPcGVuZWQ6CisgICAgICAgICAgICBBU1NFUlQoc2Vzc2lvbi5zdGF0ZSgpID09IERldmlj
ZVNlc3Npb246Ok9wZW5pbmcpOworICAgICAgICAgICAgc2Vzc2lvbi5tX3R5cGVTcGVjaWZpYyA9
IHR5cGVTcGVjaWZpYzsKKyAgICAgICAgICAgIEFTU0VSVChzZXNzaW9uLnR5cGVTcGVjaWZpYygp
KTsKKyAgICAgICAgICAgIEFTU0VSVChzZXNzaW9uLnR5cGVTcGVjaWZpYygpLT50eXBlKCkuaWQo
KSA9PSBzZXNzaW9uLnR5cGUoKS5pZCgpKTsKKyAgICAgICAgICAgIHNlc3Npb24ubV9zdGF0ZSA9
IERldmljZVNlc3Npb246Ok9wZW5lZDsKKyAgICAgICAgICAgIHNlc3Npb24ubV90eXBlU3BlY2lm
aWMtPm9uT3Blbih0aGlzLCBpZCk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNl
IERldmljZUxpc3RlbmVyOjpDYW5jZWxsZWQ6CisgICAgICAgICAgICBBU1NFUlQoc2Vzc2lvbi5z
dGF0ZSgpID09IERldmljZVNlc3Npb246Ok9wZW5pbmcpOworICAgICAgICAgICAgc2Vzc2lvbi5t
X3N0YXRlID0gRGV2aWNlU2Vzc2lvbjo6Q2FuY2VsbGVkOworICAgICAgICAgICAgYnJlYWs7CisK
KyAgICAgICAgY2FzZSBEZXZpY2VMaXN0ZW5lcjo6RmFpbGVkOgorICAgICAgICBjYXNlIERldmlj
ZUxpc3RlbmVyOjpDbG9zZWQ6CisgICAgICAgICAgICBBU1NFUlQoc2Vzc2lvbi5zdGF0ZSgpICE9
IERldmljZVNlc3Npb246OklkbGUpOworICAgICAgICAgICAgaWYgKHNlc3Npb24udHlwZVNwZWNp
ZmljKCkpIHsKKyAgICAgICAgICAgICAgICBBU1NFUlQoc2Vzc2lvbi50eXBlU3BlY2lmaWMoKS0+
dHlwZSgpLmlzVmFsaWQoKSk7CisgICAgICAgICAgICAgICAgc2Vzc2lvbi5tX3R5cGVTcGVjaWZp
Yy0+b25DbG9zZSh0aGlzLCBpZCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsK
KworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgIH0KKworICAgICAgICBBU1NFUlQobV9zZXNzaW9uTGlzdGVuZXJzLmNvbnRhaW5zKHNl
c3Npb24uaWQoKSkpOworICAgICAgICBjb25zdCBTZXNzaW9uTGlzdGVuZXJTZXQgKmxpc3RlbmVy
cyA9IG1fc2Vzc2lvbkxpc3RlbmVycy5nZXQoc2Vzc2lvbi5pZCgpKTsKKworICAgICAgICBmb3Ig
KFNlc3Npb25MaXN0ZW5lclNldDo6Y29uc3RfaXRlcmF0b3IgbGlzdGVuZXIgPSBsaXN0ZW5lcnMt
PmJlZ2luKCk7IGxpc3RlbmVyICE9IGxpc3RlbmVycy0+ZW5kKCk7KSB7CisgICAgICAgICAgICAv
LyBTb21lIHVwZGF0ZSBub3RpZmljYXRpb25zIGNhbiBjYXVzZSBsaXN0ZW5lcnMgdG8gdW5yZWdp
c3RlciB0aGVtc2VsdmVzIGFuZCBpbnZhbGlkYXRlIHRoZSBpdGVyYXRvcnMuCisgICAgICAgICAg
ICBTZXNzaW9uTGlzdGVuZXJTZXQ6OmNvbnN0X2l0ZXJhdG9yIHRlbXAgPSBsaXN0ZW5lcjsKKyAg
ICAgICAgICAgICsrbGlzdGVuZXI7CisKKyAgICAgICAgICAgIHN3aXRjaCAodXBkYXRlKSB7Cisg
ICAgICAgICAgICBjYXNlIERldmljZUxpc3RlbmVyOjpPcGVuZWQ6CisgICAgICAgICAgICAgICAg
KCp0ZW1wKS0+c2Vzc2lvbk9wZW5lZChpZCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAg
ICAgICAgICAgIGNhc2UgRGV2aWNlTGlzdGVuZXI6OkNhbmNlbGxlZDoKKyAgICAgICAgICAgICAg
ICAoKnRlbXApLT5zZXNzaW9uQ2FuY2VsbGVkKGlkKTsKKyAgICAgICAgICAgICAgICB1bnJlZ2lz
dGVyU2Vzc2lvbkxpc3RlbmVyKGlkLCAqdGVtcCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisK
KyAgICAgICAgICAgIGNhc2UgRGV2aWNlTGlzdGVuZXI6OkZhaWxlZDoKKyAgICAgICAgICAgIGNh
c2UgRGV2aWNlTGlzdGVuZXI6OkNsb3NlZDoKKyAgICAgICAgICAgICAgICAoKnRlbXApLT5zZXNz
aW9uQ2xvc2VkKGlkLCB1cGRhdGUgPT0gRGV2aWNlTGlzdGVuZXI6OkZhaWxlZCk7CisgICAgICAg
ICAgICAgICAgdW5yZWdpc3RlclNlc3Npb25MaXN0ZW5lcihpZCwgKnRlbXApOworICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQorCit2b2lk
IERldmljZVNlc3Npb25Db250cm9sbGVyOjpyZWNvcmRTdHJlYW1Ub0ZpbGUoaW50IG1lZGlhTGlz
dGVuZXJJZCwgY29uc3QgRGV2aWNlU2Vzc2lvbklkJiBzZXNzaW9uSWQpCit7CisgICAgQVNTRVJU
KG1lZGlhTGlzdGVuZXJJZCk7CisgICAgQVNTRVJUKG1fbWVkaWFMaXN0ZW5lcnMuY29udGFpbnMo
bWVkaWFMaXN0ZW5lcklkKSk7CisgICAgbV9jbGllbnQtPnJlY29yZFN0cmVhbVRvRmlsZShtZWRp
YUxpc3RlbmVySWQsIHNlc3Npb25JZCk7Cit9CisKK3ZvaWQgRGV2aWNlU2Vzc2lvbkNvbnRyb2xs
ZXI6OnN0b3BSZWNvcmRpbmdTdHJlYW0oaW50IG1lZGlhTGlzdGVuZXJJZCwgY29uc3QgRGV2aWNl
U2Vzc2lvbklkJiBzZXNzaW9uSWQsIGNvbnN0IFN0cmluZyYgcGF0aCkKK3sKKyAgICBBU1NFUlQo
bWVkaWFMaXN0ZW5lcklkKTsKKyAgICBBU1NFUlQobV9tZWRpYUxpc3RlbmVycy5jb250YWlucyht
ZWRpYUxpc3RlbmVySWQpKTsKKyAgICBtX2NsaWVudC0+c3RvcFJlY29yZGluZ1N0cmVhbShtZWRp
YUxpc3RlbmVySWQsIHNlc3Npb25JZCwgcGF0aCk7Cit9CisKK3ZvaWQgRGV2aWNlU2Vzc2lvbkNv
bnRyb2xsZXI6OnN0cmVhbVJlY29yZGluZ1N0YXJ0ZWQoaW50IG1lZGlhTGlzdGVuZXJJZCwgY29u
c3QgU3RyaW5nJiBwYXRoKQoreworICAgIC8vIERvbid0IGFzc2VydCBpZiBub3QgcHJlc2VudCBh
cyB0aGUgbGlzdGVuZXIgbWlnaHQgaGF2ZSBiZWVuIHJlbW92ZWQgd2hpbGUgdGhpcyBldmVudCB3
YXMgb24gaXRzIHdheS4KKyAgICBBU1NFUlQobWVkaWFMaXN0ZW5lcklkKTsKKyAgICBpZiAobV9t
ZWRpYUxpc3RlbmVycy5jb250YWlucyhtZWRpYUxpc3RlbmVySWQpKQorICAgICAgICBtX21lZGlh
TGlzdGVuZXJzLmdldChtZWRpYUxpc3RlbmVySWQpLT5zdHJlYW1SZWNvcmRpbmdTdGFydGVkKG1l
ZGlhTGlzdGVuZXJJZCwgcGF0aCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEVOQUJMRShERVZJQ0VfRUxFTUVOVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2
aWNlU2Vzc2lvbkNvbnRyb2xsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZWMxOTcwNmI0YmM4OWMxODVlMzRj
NjQzMWYxMjU3ZWUzY2NkMzZhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9EZXZpY2VTZXNzaW9uQ29udHJvbGxlci5oCkBAIC0wLDAgKzEsMTQ0IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1
dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBu
YW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
KyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBEZXZp
Y2VTZXNzaW9uQ29udHJvbGxlcl9oCisjZGVmaW5lIERldmljZVNlc3Npb25Db250cm9sbGVyX2gK
KworI2lmIEVOQUJMRShERVZJQ0VfRUxFTUVOVCkKKworI2luY2x1ZGUgIkRldmljZUxpc3RlbmVy
LmgiCisjaW5jbHVkZSAiRGV2aWNlU2Vzc2lvbklkLmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5o
PgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIERldmljZUNsaWVudDsKK2NsYXNzIERldmljZVNlc3Npb247CitjbGFzcyBEZXZpY2VU
eXBlOworY2xhc3MgU2VjdXJpdHlPcmlnaW47CisKK2NsYXNzIERldmljZVNlc3Npb25Db250cm9s
bGVyIDogcHVibGljIERldmljZUxpc3RlbmVyIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShE
ZXZpY2VTZXNzaW9uQ29udHJvbGxlcik7CitwdWJsaWM6CisgICAgRGV2aWNlU2Vzc2lvbkNvbnRy
b2xsZXIoRGV2aWNlQ2xpZW50Kik7CisgICAgdmlydHVhbCB+RGV2aWNlU2Vzc2lvbkNvbnRyb2xs
ZXIoKTsKKworICAgIC8vIFNlc3Npb24gbWFuYWdlbWVudC4gTWFueSBsaXN0ZW5lcnMgY2FuIHJl
Z2lzdGVyIHRvIHJlY2lldmUgc3RhdHVzIHVwZGF0ZXMgZm9yIGEgc2Vzc2lvbi4KKworICAgIGNs
YXNzIFNlc3Npb25MaXN0ZW5lciB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIH5TZXNz
aW9uTGlzdGVuZXIoKSB7IH0KKworICAgICAgICAvLyBSZXBvcnQgdXBkYXRlcyBpbiB0aGUgc3Rh
dGUgb2YgYSBkZXZpY2Ugc2Vzc2lvbi4KKyAgICAgICAgdmlydHVhbCB2b2lkIHNlc3Npb25PcGVu
ZWQoY29uc3QgRGV2aWNlU2Vzc2lvbklkJikgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBzZXNz
aW9uQ2FuY2VsbGVkKGNvbnN0IERldmljZVNlc3Npb25JZCYpIHsgfQorICAgICAgICB2aXJ0dWFs
IHZvaWQgc2Vzc2lvbkNsb3NlZChjb25zdCBEZXZpY2VTZXNzaW9uSWQmLCBib29sIGZhaWxlZCkg
eyB9CisKKyAgICAgICAgLy8gU2Vzc2lvbiBjb250cm9sbGVyIHNodXR0aW5nIGRvd24uIExpc3Rl
bmVycyBzaG91bGQgaW52YWxpZGF0ZSBhbnkgc2Vzc2lvbiBpZHMgYW5kIGFzc3VtZQorICAgICAg
ICAvLyB0byBiZSB1bnJlZ2lzdGVyZWQgZm9yIGRldmljZSBzZXNzaW9ucy4gQW55IGFjdGl2ZSBz
ZXNzaW9ucyB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgY2xvc2VkLgorICAgICAgICAvLyBJbXBvcnRh
bnQgbm90ZTogbGlzdGVuZXJzIE1VU1QgTk9UIHRyeSB0byByZWdpc3RlciB0aGVtc2VsdmVzIHdo
ZW4gcmVjZWl2aW5nIHRoaXMgbWVzc2FnZS4KKyAgICAgICAgdmlydHVhbCB2b2lkIHNlc3Npb25D
b250cm9sbGVyU2h1dGRvd24oKSA9IDA7CisgICAgfTsKKworICAgIC8vIENyZWF0ZSBhIG5ldyBs
b2NhbCBkZXZpY2Ugc2Vzc2lvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGxpc3RlbmVyIGFuZCByZXR1
cm4gaXRzIGRldmljZSBzZXNzaW9uIGlkLgorICAgIC8vIEZJWE1FOiBjcmVhdGUgYSB2ZXJzaW9u
IGZvciByZW1vdGUgc2Vzc2lvbnMgaWYgcmVxdWlyZWQuIEluIHRoZXNlIGNhc2VzIHRoZSBpZCB3
aWxsIGJlIGFscmVhZHkgcHJvdmlkZWQuCisgICAgRGV2aWNlU2Vzc2lvbklkIGNyZWF0ZUxvY2Fs
RGV2aWNlU2Vzc2lvbihjb25zdCBEZXZpY2VUeXBlJiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdp
bj4sIFNlc3Npb25MaXN0ZW5lciopOworCisgICAgLy8gUmVnaXN0ZXIgYSBuZXcgbGlzdGVuZXIg
dG8gdGhlIHN0YXR1cyB1cGRhdGVzIG9mIGFuIGV4aXN0aW5nIHNlc3Npb24uCisgICAgdm9pZCBy
ZWdpc3RlclNlc3Npb25MaXN0ZW5lcihjb25zdCBEZXZpY2VTZXNzaW9uSWQmLCBTZXNzaW9uTGlz
dGVuZXIqKTsKKworICAgIC8vIFVucmVnaXN0ZXIgYSBsaXN0ZW5lciBvZiBhIGV4aXN0aW5nIHNl
c3Npb24uCisgICAgLy8gVGhlIHNlc3Npb24gb2JqZWN0IHdpbGwgYmUgZGVzdHJveWVkIGlmIGFs
bCBsaXN0ZW5lcnMgYXJlIHVucmVnaXN0ZXJlZC4gQW55IGFjdGl2ZSBzZXNzaW9uIHdpbGwgYmUg
Y2xvc2VkLgorICAgIC8vIE5vdGU6IGluIHRoZSBjYXNlIG9mIG1lZGlhLCBpdCBzaG91bGQgYmUg
a2VwdCBhbGl2ZSBieSBpdHMgb3duIHN0cmVhbSBvYmplY3QgdW50aWwgdGhlIHNlc3Npb24gdG8g
dGhlIGRldmljZSBpcyBlaXRoZXIKKyAgICAvLyBwcm9wZXJseSBjbG9zZWQgb3IgZmFpbHMuIElu
IHRoYXQgY2FzZSB0aGUgc3RyZWFtIHdpbGwgdW5yZWdpc3RlciBpdHNlbGYgYXMgbGlzdGVuZXIg
d2hlbiByZWNlaXZpbmcgZGV2aWNlU2Vzc2lvblVwZGF0ZS4KKyAgICB2b2lkIHVucmVnaXN0ZXJT
ZXNzaW9uTGlzdGVuZXIoY29uc3QgRGV2aWNlU2Vzc2lvbklkJiwgU2Vzc2lvbkxpc3RlbmVyKik7
CisKKworICAgIC8vIE1lZGlhIGxpc3RlbmluZy4gTWVzc2FnZSByZXBsaWVzIGFyZSByZWNlaXZl
ZCBieSB0aGUgc2FtZSBvYmplY3QgdGhhdCBtYWRlIHRoZSByZXF1ZXN0cy4KKworICAgIGNsYXNz
IE1lZGlhTGlzdGVuZXIgeworICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVhbCB+TWVkaWFMaXN0
ZW5lcigpIHsgfQorCisgICAgICAgIC8vIE5vdGlmaWVzIHRoYXQgYSBzdHJlYW0gcmVjb3JkaW5n
IGhhcyBzdGFydGVkIGFuZCBpdHMgYmVpbmcgcmVjb3JkZWQgaW50byBhIHNwZWNpZmllZCBmaWxl
LgorICAgICAgICB2aXJ0dWFsIHZvaWQgc3RyZWFtUmVjb3JkaW5nU3RhcnRlZChpbnQgbWVkaWFM
aXN0ZW5lcklkLCBjb25zdCBTdHJpbmcmIHBhdGgpID0gMDsKKyAgICB9OworCisgICAgLy8gUmVn
aXN0ZXIgYSBuZXcgbWVkaWEgbGlzdGVuZXIgYW5kIHJldHVybiBhIHVuaXF1ZSBJRCBmb3IgaXQu
CisgICAgaW50IHJlZ2lzdGVyTWVkaWFMaXN0ZW5lcihNZWRpYUxpc3RlbmVyKik7CisKKyAgICAv
LyBVbnJlZ2lzdGVyIGEgbWVkaWEgbGlzdGVuZXIuCisgICAgdm9pZCB1bnJlZ2lzdGVyTWVkaWFM
aXN0ZW5lcihpbnQgbWVkaWFMaXN0ZW5lcklkKTsKKworCisgICAgLy8gQ29udHJvbGxlciBtZXRo
b2RzLgorCisgICAgLy8gUHJvdmlkZXMgdGhlIGRldmljZSBzZXNzaW9uIG9iamVjdCBhc3NvY2lh
dGVkIHdpdGggYW4gaWQuCisgICAgY29uc3QgRGV2aWNlU2Vzc2lvbiYgc2Vzc2lvbihjb25zdCBE
ZXZpY2VTZXNzaW9uSWQmKSBjb25zdDsKKyAgICBib29sIGlzU2Vzc2lvbklkVmFsaWQoY29uc3Qg
RGV2aWNlU2Vzc2lvbklkJikgY29uc3Q7CisKKyAgICAvLyBSZXF1ZXN0IHRvIG9wZW4gYSBzZXNz
aW9uIHdpdGggYSBsb2NhbCBkZXZpY2Ugb2YgdGhlIHNwZWNpZmllZCB0eXBlLgorICAgIHZvaWQg
cmVxdWVzdEFjY2Vzc1RvTG9jYWxEZXZpY2UoY29uc3QgRGV2aWNlU2Vzc2lvbklkJik7CisKKyAg
ICAvLyBSZXF1ZXN0IHRvIGNsb3NlIGEgb25nb2luZyBsb2NhbCBkZXZpY2Ugc2Vzc2lvbi4KKyAg
ICB2b2lkIHJldm9rZUFjY2Vzc1RvTG9jYWxEZXZpY2UoY29uc3QgRGV2aWNlU2Vzc2lvbklkJik7
CisKKyAgICAvLyBNZXRob2RzIGludm9rZWQgYnkgdGhlIG1lZGlhIGxpc3RlbmVycy4KKyAgICB2
b2lkIHJlY29yZFN0cmVhbVRvRmlsZShpbnQgbWVkaWFMaXN0ZW5lcklkLCBjb25zdCBEZXZpY2VT
ZXNzaW9uSWQmKTsKKyAgICB2b2lkIHN0b3BSZWNvcmRpbmdTdHJlYW0oaW50IG1lZGlhTGlzdGVu
ZXJJZCwgY29uc3QgRGV2aWNlU2Vzc2lvbklkJiwgY29uc3QgU3RyaW5nJiBwYXRoKTsKKworICAg
IC8vIERldmljZUxpc3RlbmVyIGltcGxlbWVudGF0aW9uLgorICAgIHZpcnR1YWwgdm9pZCBkZXZp
Y2VTZXNzaW9uVXBkYXRlKGNvbnN0IERldmljZVNlc3Npb25JZCYsIERldmljZUxpc3RlbmVyOjpT
ZXNzaW9uVXBkYXRlLCBQYXNzT3duUHRyPERldmljZVR5cGVTcGVjaWZpYz4pOworICAgIHZpcnR1
YWwgdm9pZCBzdHJlYW1SZWNvcmRpbmdTdGFydGVkKGludCBtZWRpYUxpc3RlbmVySWQsIGNvbnN0
IFN0cmluZyYgcGF0aCk7CisKK3ByaXZhdGU6CisgICAgdHlwZWRlZiBMaXN0SGFzaFNldDxTZXNz
aW9uTGlzdGVuZXIqPiBTZXNzaW9uTGlzdGVuZXJTZXQ7CisgICAgdHlwZWRlZiBIYXNoTWFwPERl
dmljZVNlc3Npb25JZCwgRGV2aWNlU2Vzc2lvbio+IERldmljZVNlc3Npb25NYXA7CisgICAgdHlw
ZWRlZiBIYXNoTWFwPERldmljZVNlc3Npb25JZCwgU2Vzc2lvbkxpc3RlbmVyU2V0Kj4gU2Vzc2lv
bkxpc3RlbmVyc01hcDsKKyAgICB0eXBlZGVmIEhhc2hNYXA8aW50LCBNZWRpYUxpc3RlbmVyKj4g
TWVkaWFMaXN0ZW5lck1hcDsKKworICAgIERldmljZVNlc3Npb24mIG11dGFibGVTZXNzaW9uKGNv
bnN0IERldmljZVNlc3Npb25JZCYpOworCisgICAgRGV2aWNlQ2xpZW50KiBtX2NsaWVudDsKKyAg
ICBEZXZpY2VTZXNzaW9uTWFwIG1fZGV2aWNlU2Vzc2lvbnM7CisgICAgU2Vzc2lvbkxpc3RlbmVy
c01hcCBtX3Nlc3Npb25MaXN0ZW5lcnM7CisgICAgTWVkaWFMaXN0ZW5lck1hcCBtX21lZGlhTGlz
dGVuZXJzOworICAgIGludCBtX25leHRMb2NhbERldmljZVNlc3Npb25JZDsKKyAgICBpbnQgbV9u
ZXh0TWVkaWFMaXN0ZW5lcklkOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRU5BQkxFKERFVklDRV9FTEVNRU5UKQorCisjZW5kaWYgLy8gRGV2aWNlU2Vzc2lvbkNv
bnRyb2xsZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VTZXNzaW9u
U3BlY2lmaWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VTZXNzaW9uU3BlY2lmaWMu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjAwOTc0MGI4ZjEzMGY3NTMxZTMwOGM2MDY4MmI4N2I1Y2I4MjEzNDMK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZVNlc3Npb25TcGVj
aWZpYy5jcHAKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisg
KiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJE
ZXZpY2VTZXNzaW9uU3BlY2lmaWMuaCIKKworI2lmIEVOQUJMRShERVZJQ0VfRUxFTUVOVCkKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitEZXZpY2VNZWRpYVNwZWNpZmljOjpEZXZpY2VNZWRpYVNw
ZWNpZmljKCkKKyAgICA6IERldmljZVR5cGVTcGVjaWZpYyhEZXZpY2VUeXBlOjpNZWRpYSkKK3sK
K30KKworRGV2aWNlTWVkaWFTcGVjaWZpYzo6RGV2aWNlTWVkaWFTcGVjaWZpYyhjb25zdCBLVVJM
JiBzdHJlYW1VcmwpCisgICAgOiBEZXZpY2VUeXBlU3BlY2lmaWMoRGV2aWNlVHlwZTo6TWVkaWEp
CisgICAgLCBtX3N0cmVhbVVybChzdHJlYW1VcmwpCit7Cit9CisKK3ZvaWQgRGV2aWNlTWVkaWFT
cGVjaWZpYzo6b25PcGVuKERldmljZVNlc3Npb25Db250cm9sbGVyKiBjb250cm9sbGVyLCBjb25z
dCBEZXZpY2VTZXNzaW9uSWQmIHNlc3Npb25JZCkKK3sKKyAgICBtX3N0cmVhbSA9IFN0cmVhbTo6
Y3JlYXRlKGNvbnRyb2xsZXIsIHNlc3Npb25JZCwgbV9zdHJlYW1VcmwpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREVWSUNFX0VMRU1FTlQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZVNlc3Npb25TcGVjaWZpYy5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VTZXNzaW9uU3BlY2lmaWMuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YjRk
YjZhZjhhYzU3YWQ0YWFmNWQyNTUwN2MzODA1MTIxZmRkZTcxCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VTZXNzaW9uU3BlY2lmaWMuaApAQCAtMCwwICsxLDYz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisg
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBEZXZpY2VTZXNzaW9uU3BlY2lmaWNfaAorI2RlZmluZSBEZXZpY2VTZXNzaW9u
U3BlY2lmaWNfaAorCisjaWYgRU5BQkxFKERFVklDRV9FTEVNRU5UKQorCisjaW5jbHVkZSAiRGV2
aWNlU2Vzc2lvbi5oIgorI2luY2x1ZGUgIktVUkwuaCIKKyNpbmNsdWRlICJTdHJlYW0uaCIKKyNp
bmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERl
dmljZU1lZGlhU3BlY2lmaWMgOiBwdWJsaWMgRGV2aWNlVHlwZVNwZWNpZmljIHsKK3B1YmxpYzoK
KyAgICBEZXZpY2VNZWRpYVNwZWNpZmljKCk7CisgICAgRGV2aWNlTWVkaWFTcGVjaWZpYyhjb25z
dCBLVVJMJiBzdHJlYW1VcmwpOworICAgIHZpcnR1YWwgfkRldmljZU1lZGlhU3BlY2lmaWMoKSB7
IH0KKworICAgIFBhc3NSZWZQdHI8U3RyZWFtPiBzdHJlYW0oKSBjb25zdCB7IHJldHVybiBtX3N0
cmVhbTsgfQorICAgIGNvbnN0IEtVUkwmIHN0cmVhbVVybCgpIGNvbnN0IHsgcmV0dXJuIG1fc3Ry
ZWFtVXJsOyB9CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCB2b2lkIG9uT3BlbihEZXZpY2VTZXNz
aW9uQ29udHJvbGxlciosIGNvbnN0IERldmljZVNlc3Npb25JZCYpOworICAgIGZyaWVuZCBjbGFz
cyBEZXZpY2VTZXNzaW9uQ29udHJvbGxlcjsKKyAgICBSZWZQdHI8U3RyZWFtPiBtX3N0cmVhbTsK
KyAgICBLVVJMIG1fc3RyZWFtVXJsOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gRU5BQkxFKERFVklDRV9FTEVNRU5UKQorCisjZW5kaWYgLy8gRGV2aWNlU2Vzc2lv
blNwZWNpZmljX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDQxMWVhM2NkN2IyNzNjMWZiNzhhZGUw
NmZjMTY1NjUxZTZjMzUxYmQuLmIxODQ2MDNmNjFjODBmYWMwZTljMmMyODYxNmQ5M2RhMzI3OGZj
M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMjksNiArMjksOCBAQAogI2luY2x1ZGUgIkNvbnRl
eHRNZW51Q2xpZW50LmgiCiAjaW5jbHVkZSAiQ29udGV4dE1lbnVDb250cm9sbGVyLmgiCiAjaW5j
bHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRGV2aWNlQ2xpZW50LmgiCisjaW5jbHVkZSAi
RGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEZXZpY2VNb3Rpb25Db250cm9s
bGVyLmgiCiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCkBAIC0xMzksNiArMTQxLDkgQEAgUGFnZTo6
UGFnZShjb25zdCBQYWdlQ2xpZW50cyYgcGFnZUNsaWVudHMpCiAjaWYgRU5BQkxFKElOUFVUX1NQ
RUVDSCkKICAgICAsIG1fc3BlZWNoSW5wdXRDbGllbnQocGFnZUNsaWVudHMuc3BlZWNoSW5wdXRD
bGllbnQpCiAjZW5kaWYKKyNpZiBFTkFCTEUoREVWSUNFX0VMRU1FTlQpCisgICAgLCBtX2Rldmlj
ZUNsaWVudChwYWdlQ2xpZW50cy5kZXZpY2VDbGllbnQpCisjZW5kaWYKICAgICAsIG1fc2V0dGlu
Z3MoYWRvcHRQdHIobmV3IFNldHRpbmdzKHRoaXMpKSkKICAgICAsIG1fcHJvZ3Jlc3MoYWRvcHRQ
dHIobmV3IFByb2dyZXNzVHJhY2tlcikpCiAgICAgLCBtX2JhY2tGb3J3YXJkQ29udHJvbGxlcihh
ZG9wdFB0cihuZXcgQmFja0ZvcndhcmRDb250cm9sbGVyKHRoaXMsIHBhZ2VDbGllbnRzLmJhY2tG
b3J3YXJkQ2xpZW50KSkpCkBAIC0xNjUsNyArMTcwLDcgQEAgUGFnZTo6UGFnZShjb25zdCBQYWdl
Q2xpZW50cyYgcGFnZUNsaWVudHMpCiB7CiAgICAgaWYgKCFhbGxQYWdlcykgewogICAgICAgICBh
bGxQYWdlcyA9IG5ldyBIYXNoU2V0PFBhZ2UqPjsKLSAgICAgICAgCisKICAgICAgICAgbmV0d29y
a1N0YXRlTm90aWZpZXIoKS5zZXROZXR3b3JrU3RhdGVDaGFuZ2VkRnVuY3Rpb24obmV0d29ya1N0
YXRlQ2hhbmdlZCk7CiAgICAgfQogCkBAIC04MzgsNiArODQzLDE2IEBAIFNwZWVjaElucHV0KiBQ
YWdlOjpzcGVlY2hJbnB1dCgpCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShERVZJQ0VfRUxFTUVO
VCkKK0RldmljZVNlc3Npb25Db250cm9sbGVyKiBQYWdlOjpkZXZpY2VTZXNzaW9uQ29udHJvbGxl
cigpCit7CisgICAgQVNTRVJUKG1fZGV2aWNlQ2xpZW50KTsKKyAgICBpZiAoIW1fZGV2aWNlU2Vz
c2lvbkNvbnRyb2xsZXIuZ2V0KCkpCisgICAgICAgIG1fZGV2aWNlU2Vzc2lvbkNvbnRyb2xsZXIu
c2V0KG5ldyBEZXZpY2VTZXNzaW9uQ29udHJvbGxlcihtX2RldmljZUNsaWVudCkpOworICAgIHJl
dHVybiBtX2RldmljZVNlc3Npb25Db250cm9sbGVyLmdldCgpOworfQorI2VuZGlmCisKIHZvaWQg
UGFnZTo6ZG5zUHJlZmV0Y2hpbmdTdGF0ZUNoYW5nZWQoKQogewogICAgIGZvciAoRnJhbWUqIGZy
YW1lID0gbWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCktPnRyYXZlcnNl
TmV4dCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCA0NDk4ZDM2YmE3MDdiZTk4Mzc2MmIzN2QxMjhjMTM2
ODI5MzMyYTk2Li44Y2MxN2Y4OTM4YWMyZmVmYjM0MmYzNzc3YjNhNzlmZjY0NzBmMTA2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuaApAQCAtNzUsNiArNzUsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xh
c3MgU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q7CiAgICAgY2xhc3MgU3BlZWNoSW5wdXQ7CiAgICAg
Y2xhc3MgU3BlZWNoSW5wdXRDbGllbnQ7CisgICAgY2xhc3MgRGV2aWNlQ2xpZW50OworICAgIGNs
YXNzIERldmljZVNlc3Npb25Db250cm9sbGVyOworCiAjaWYgRU5BQkxFKERPTV9TVE9SQUdFKQog
ICAgIGNsYXNzIFN0b3JhZ2VOYW1lc3BhY2U7CiAjZW5kaWYKQEAgLTExMyw2ICsxMTYsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICBEZXZpY2VPcmllbnRhdGlvbkNsaWVudCog
ZGV2aWNlT3JpZW50YXRpb25DbGllbnQ7CiAgICAgICAgICAgICBSZWZQdHI8QmFja0ZvcndhcmRM
aXN0PiBiYWNrRm9yd2FyZENsaWVudDsKICAgICAgICAgICAgIFNwZWVjaElucHV0Q2xpZW50KiBz
cGVlY2hJbnB1dENsaWVudDsKKyAgICAgICAgICAgIERldmljZUNsaWVudCogZGV2aWNlQ2xpZW50
OwogICAgICAgICB9OwogCiAgICAgICAgIFBhZ2UoY29uc3QgUGFnZUNsaWVudHMmKTsKQEAgLTE3
OSw2ICsxODMsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgRU5BQkxFKElOUFVUX1NQRUVD
SCkKICAgICAgICAgU3BlZWNoSW5wdXQqIHNwZWVjaElucHV0KCk7CiAjZW5kaWYKKyNpZiBFTkFC
TEUoREVWSUNFX0VMRU1FTlQpCisgICAgICAgIERldmljZVNlc3Npb25Db250cm9sbGVyKiBkZXZp
Y2VTZXNzaW9uQ29udHJvbGxlcigpOworI2VuZGlmCiAgICAgICAgIFNldHRpbmdzKiBzZXR0aW5n
cygpIGNvbnN0IHsgcmV0dXJuIG1fc2V0dGluZ3MuZ2V0KCk7IH0KICAgICAgICAgUHJvZ3Jlc3NU
cmFja2VyKiBwcm9ncmVzcygpIGNvbnN0IHsgcmV0dXJuIG1fcHJvZ3Jlc3MuZ2V0KCk7IH0KICAg
ICAgICAgQmFja0ZvcndhcmRDb250cm9sbGVyKiBiYWNrRm9yd2FyZCgpIGNvbnN0IHsgcmV0dXJu
IG1fYmFja0ZvcndhcmRDb250cm9sbGVyLmdldCgpOyB9CkBAIC0xOTUsNyArMjAyLDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIFZpZXdNb2RlIHZpZXdNb2RlKCkgY29uc3QgeyBy
ZXR1cm4gbV92aWV3TW9kZTsgfQogICAgICAgICB2b2lkIHNldFZpZXdNb2RlKFZpZXdNb2RlKTsK
LSAgICAgICAgCisKICAgICAgICAgdm9pZCBzZXRUYWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHMo
Ym9vbCBiKSB7IG1fdGFiS2V5Q3ljbGVzVGhyb3VnaEVsZW1lbnRzID0gYjsgfQogICAgICAgICBi
b29sIHRhYktleUN5Y2xlc1Rocm91Z2hFbGVtZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fdGFiS2V5
Q3ljbGVzVGhyb3VnaEVsZW1lbnRzOyB9CiAKQEAgLTMwNCw3ICszMTEsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAjaWYgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKICAgICAgICAgUmVm
UHRyPFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEPiBtX3NoYXJlZEdyYXBoaWNzQ29udGV4dDNEOwog
I2VuZGlmCi0gICAgICAgIAorCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICAgICAgICAgT3du
UHRyPERyYWdDb250cm9sbGVyPiBtX2RyYWdDb250cm9sbGVyOwogI2VuZGlmCkBAIC0zMjYsOSAr
MzMzLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgU3BlZWNoSW5wdXRDbGllbnQq
IG1fc3BlZWNoSW5wdXRDbGllbnQ7CiAgICAgICAgIE93blB0cjxTcGVlY2hJbnB1dD4gbV9zcGVl
Y2hJbnB1dDsKICNlbmRpZgorI2lmIEVOQUJMRShERVZJQ0VfRUxFTUVOVCkKKyAgICAgICAgRGV2
aWNlQ2xpZW50KiBtX2RldmljZUNsaWVudDsKKyAgICAgICAgT3duUHRyPERldmljZVNlc3Npb25D
b250cm9sbGVyPiBtX2RldmljZVNlc3Npb25Db250cm9sbGVyOworI2VuZGlmCiAgICAgICAgIE93
blB0cjxTZXR0aW5ncz4gbV9zZXR0aW5nczsKICAgICAgICAgT3duUHRyPFByb2dyZXNzVHJhY2tl
cj4gbV9wcm9ncmVzczsKLSAgICAgICAgCisKICAgICAgICAgT3duUHRyPEJhY2tGb3J3YXJkQ29u
dHJvbGxlcj4gbV9iYWNrRm9yd2FyZENvbnRyb2xsZXI7CiAgICAgICAgIFJlZlB0cjxGcmFtZT4g
bV9tYWluRnJhbWU7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>