<?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>38666</bug_id>
          
          <creation_ts>2010-05-06 11:17:59 -0700</creation_ts>
          <short_desc>Synchronize NPAPI headers with npapi-headers project</short_desc>
          <delta_ts>2012-01-27 04:19:12 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Plug-ins</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>77200</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Stuart Morgan">stuartmorgan</reporter>
          <assigned_to name="Stuart Morgan">stuartmorgan</assigned_to>
          <cc>andersca</cc>
    
    <cc>commit-queue</cc>
    
    <cc>joshmoz</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>221829</commentid>
    <comment_count>0</comment_count>
    <who name="Stuart Morgan">stuartmorgan</who>
    <bug_when>2010-05-06 11:17:59 -0700</bug_when>
    <thetext>As mentioned recently on plugin-futures, there is a new central repository for NPAPI headers:
http://code.google.com/p/npapi-headers/
The hope is that everyone can converge back to a single set of standard headers, instead of each browser vendor&apos;s headers continuing to drift further apart, increasing confusion.

Even if browsers aren&apos;t able to share completely identical headers, the closer we can get the easier real differences will be to understand.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221853</commentid>
    <comment_count>1</comment_count>
      <attachid>55278</attachid>
    <who name="Stuart Morgan">stuartmorgan</who>
    <bug_when>2010-05-06 11:39:12 -0700</bug_when>
    <thetext>Created attachment 55278
Non-substantive changes

This only changes:
- Whitespace
- Comments
- Order of code in the file
No actual code is changed.

This makes it much easier to see where there are real differences between the two versions.

(I know the whitespace of the npapi-headers version isn&apos;t perfect either, but the diff-ability is a big win, and once things are essentially reconciled whitespace and comment fixes can be made upstream and trivially pulled into all the browsers at the same time.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221854</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-06 11:40:12 -0700</bug_when>
    <thetext>Attachment 55278 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
Last 3072 characters of output:
y/naming] [4]
WebCore/bridge/npapi.h:765:  NPN_PluginThreadAsyncCall is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/bridge/npapi.h:766:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/bridge/npapi.h:768:  NPN_GetValueForURL is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/bridge/npapi.h:771:  NPN_SetValueForURL is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/bridge/npapi.h:774:  NPN_GetAuthenticationInfo is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/bridge/npapi.h:782:  NPN_ScheduleTimer is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/bridge/npapi.h:783:  NPN_UnscheduleTimer is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/bridge/npapi.h:784:  NPN_PopUpContextMenu is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/bridge/npapi.h:785:  NPN_ConvertPoint is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/bridge/npruntime.h:121:  NPN_ReleaseVariantValue is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/bridge/npruntime.h:140:  Use 0 instead of NULL.  [readability/null] [5]
WebCore/bridge/npruntime.h:146:  Use 0 instead of NULL.  [readability/null] [5]
WebCore/bridge/npruntime.h:224:  NPN_GetStringIdentifiers is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/bridge/npruntime.h:349:  NPN_ReleaseObject is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/bridge/npruntime.h:363:  NPN_Invoke is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/bridge/npruntime.h:365:  NPN_InvokeDefault is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/bridge/npruntime.h:367:  NPN_Evaluate is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/bridge/npruntime.h:369:  NPN_GetProperty is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/bridge/npruntime.h:371:  NPN_SetProperty is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/bridge/npruntime.h:376:  NPN_Enumerate is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/bridge/npruntime.h:378:  NPN_Construct is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/bridge/npruntime.h:387:  NPN_SetException is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 205 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222580</commentid>
    <comment_count>3</comment_count>
      <attachid>55412</attachid>
    <who name="Stuart Morgan">stuartmorgan</who>
    <bug_when>2010-05-07 13:17:44 -0700</bug_when>
    <thetext>Created attachment 55412
Change header guard to match upstream</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222585</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-07 13:23:23 -0700</bug_when>
    <thetext>Attachment 55412 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebCore/bridge/npapi.h:43:  #ifndef header guard has wrong style, please use: npapi_h  [build/header_guard] [5]
Total errors found: 1 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222927</commentid>
    <comment_count>5</comment_count>
      <attachid>55278</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-05-08 12:23:44 -0700</bug_when>
    <thetext>Comment on attachment 55278
Non-substantive changes

Clearing flags on attachment: 55278

Committed r59035: &lt;http://trac.webkit.org/changeset/59035&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222938</commentid>
    <comment_count>6</comment_count>
      <attachid>55412</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-05-08 13:47:48 -0700</bug_when>
    <thetext>Comment on attachment 55412
Change header guard to match upstream

Clearing flags on attachment: 55412

Committed r59039: &lt;http://trac.webkit.org/changeset/59039&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222939</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-05-08 13:47:53 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222940</commentid>
    <comment_count>8</comment_count>
    <who name="Stuart Morgan">stuartmorgan</who>
    <bug_when>2010-05-08 13:49:32 -0700</bug_when>
    <thetext>There&apos;s still more reconciling to be done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223589</commentid>
    <comment_count>9</comment_count>
      <attachid>55622</attachid>
    <who name="Stuart Morgan">stuartmorgan</who>
    <bug_when>2010-05-10 16:50:14 -0700</bug_when>
    <thetext>Created attachment 55622
Add/remove platform-specific code

- Remove obsolete XP_MAC sections.
- Remove Metrowerks defines.
- Add OS/2 defines.
- Add Maemo defines.
- Add new version of the custom Carbon event definitions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223595</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-10 16:56:42 -0700</bug_when>
    <thetext>Attachment 55622 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
Last 3072 characters of output:
f spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bridge/npapi.h:472:  This { should be at the end of the previous line  [whitespace/braces] [4]
WebCore/bridge/npapi.h:473:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bridge/npapi.h:474:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bridge/npapi.h:475:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bridge/npapi.h:476:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bridge/npapi.h:477:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bridge/npapi.h:478:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bridge/npapi.h:479:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bridge/npapi.h:480:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bridge/npapi.h:481:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bridge/npapi.h:482:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bridge/npapi.h:483:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bridge/npapi.h:484:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bridge/npapi.h:526:  This { should be at the end of the previous line  [whitespace/braces] [4]
WebCore/bridge/npapi.h:527:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bridge/npapi.h:528:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bridge/npapi.h:529:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bridge/npapi.h:669:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bridge/npapi.h:670:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bridge/npapi.h:671:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bridge/npapi.h:672:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bridge/npapi.h:673:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bridge/npapi.h:674:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bridge/npapi.h:675:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 33 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225533</commentid>
    <comment_count>11</comment_count>
      <attachid>56028</attachid>
    <who name="Stuart Morgan">stuartmorgan</who>
    <bug_when>2010-05-13 15:13:57 -0700</bug_when>
    <thetext>Created attachment 56028
Add/remove platform-specific code (v2)

Patch updated to be more comprehensive. This is most of the rest of the differences between the upstream npapi.h and the WebKit version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225535</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-13 15:18:01 -0700</bug_when>
    <thetext>Attachment 56028 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
Last 3072 characters of output:
space/indent] [3]
WebCore/bridge/npapi.h:477:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bridge/npapi.h:478:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bridge/npapi.h:479:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bridge/npapi.h:480:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bridge/npapi.h:481:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bridge/npapi.h:482:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bridge/npapi.h:483:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bridge/npapi.h:484:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bridge/npapi.h:485:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bridge/npapi.h:486:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bridge/npapi.h:528:  This { should be at the end of the previous line  [whitespace/braces] [4]
WebCore/bridge/npapi.h:529:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bridge/npapi.h:530:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bridge/npapi.h:531:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bridge/npapi.h:671:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bridge/npapi.h:672:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bridge/npapi.h:673:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bridge/npapi.h:674:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bridge/npapi.h:675:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bridge/npapi.h:676:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bridge/npapi.h:677:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bridge/npapi.h:836:  NPN_UserAgent is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/bridge/npapi.h:837:  NPN_MemAlloc is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/bridge/npapi.h:841:  NPN_GetJavaEnv is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 36 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233307</commentid>
    <comment_count>13</comment_count>
    <who name="Stuart Morgan">stuartmorgan</who>
    <bug_when>2010-06-02 09:57:37 -0700</bug_when>
    <thetext>In case the reason this isn&apos;t being reviewed is the big list of style violations: this is third-party code, where minimizing forking is beneficial, so those are expected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238476</commentid>
    <comment_count>14</comment_count>
      <attachid>56028</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-06-15 11:20:41 -0700</bug_when>
    <thetext>Comment on attachment 56028
Add/remove platform-specific code (v2)

Great job, r=me!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239033</commentid>
    <comment_count>15</comment_count>
      <attachid>56028</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-16 13:08:20 -0700</bug_when>
    <thetext>Comment on attachment 56028
Add/remove platform-specific code (v2)

Clearing flags on attachment: 56028

Committed r61277: &lt;http://trac.webkit.org/changeset/61277&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239034</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-16 13:08:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239424</commentid>
    <comment_count>17</comment_count>
    <who name="Stuart Morgan">stuartmorgan</who>
    <bug_when>2010-06-17 09:37:51 -0700</bug_when>
    <thetext>Most of what&apos;s left that&apos;s not trivial (i.e., &quot;Not implemented in WebKit&quot; comments) will have ripple effects outside the code, I&apos;ve filed separate bugs for the remaining work:
Bug 40782
Bug 40783
Bug 40784
Bug 40785</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55278</attachid>
            <date>2010-05-06 11:39:12 -0700</date>
            <delta_ts>2010-06-11 14:35:33 -0700</delta_ts>
            <desc>Non-substantive changes</desc>
            <filename>38666-whitespace.patch</filename>
            <type>text/plain</type>
            <size>63979</size>
            <attacher name="Stuart Morgan">stuartmorgan</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1ODg5NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTggQEAKKzIwMTAtMDUtMDYgIFN0dWFydCBNb3JnYW4gIDxzdHVhcnRtb3JnYW5A
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFJlc29sdmUgbW9zdCBvZiB0aGUgd2hpdGVzcGFjZS9jb21tZW50L29yZGVyIGRpZmZl
cmVuY2VzIGluIG5wYXBpLmgKKyAgICAgICAgYW5kIG5wcnVudGltZS5oIHJlbGF0aXZlIHRvIHRo
ZSBucGFwaS1oZWFkZXJzIHJlcG9zaXRvcnkgdmVyc2lvbnMuCisgICAgICAgIE5vIGNoYW5nZXMg
dG8gdGhlIHN1YnN0YW5jZSBvZiB0aGUgY29kZS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg2NjYKKworICAgICAgICAqIGJyaWRnZS9ucGFwaS5o
OgorICAgICAgICAoX05QUHJpbnQ6Oik6CisgICAgICAgIChfTlBDb2NvYUV2ZW50OjopOgorICAg
ICAgICAqIGJyaWRnZS9ucHJ1bnRpbWUuaDoKKwogMjAxMC0wNS0wNiAgR3VzdGF2byBOb3Jvbmhh
IFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9yYS5jby51az4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBYYW4gTG9wZXouCkluZGV4OiBXZWJDb3JlL2JyaWRnZS9ucGFwaS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvYnJpZGdlL25wYXBpLmgJKHJldmlzaW9uIDU4ODg2KQorKysgV2ViQ29y
ZS9icmlkZ2UvbnBhcGkuaAkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQgQEAKKy8qIC0qLSBN
b2RlOiBDOyB0YWItd2lkdGg6IDQ7IGluZGVudC10YWJzLW1vZGU6IG5pbDsgYy1iYXNpYy1vZmZz
ZXQ6IDIgLSotICovCiAvKiAqKioqKiBCRUdJTiBMSUNFTlNFIEJMT0NLICoqKioqCiAgKiBWZXJz
aW9uOiBNUEwgMS4xL0dQTCAyLjAvTEdQTCAyLjEKICAqCkBAIC0zMywxMiArMzQsNiBAQAogICog
dGhlIHRlcm1zIG9mIGFueSBvbmUgb2YgdGhlIE1QTCwgdGhlIEdQTCBvciB0aGUgTEdQTC4KICAq
CiAgKiAqKioqKiBFTkQgTElDRU5TRSBCTE9DSyAqKioqKiAqLwotIAotIAotIC8qCi0gICogIE5l
dHNjYXBlIGNsaWVudCBwbHVnLWluIEFQSSBzcGVjCi0gICovCi0gCiAKICNpZm5kZWYgX05QQVBJ
X0hfCiAjZGVmaW5lIF9OUEFQSV9IXwpAQCAtNTMsMTAgKzQ4LDEwIEBACiAjZW5kaWYKIAogI2lm
IGRlZmluZWQoX1dJTjMyKSAmJiAhZGVmaW5lZChfX1NZTUJJQU4zMl9fKQotIyAgICBpZm5kZWYg
WFBfV0lOCi0jICAgICAgICBkZWZpbmUgWFBfV0lOIDEKLSMgICAgZW5kaWYgLyogWFBfV0lOICov
Ci0jZW5kaWYgLyogX1dJTjMyICovCisjaWZuZGVmIFhQX1dJTgorI2RlZmluZSBYUF9XSU4gMQor
I2VuZGlmCisjZW5kaWYKIAogI2lmZGVmIF9fU1lNQklBTjMyX18KICMgICBpZm5kZWYgWFBfU1lN
QklBTgpAQCAtOTYsMTcgKzkxLDE3IEBACiAjZW5kaWYKIAogI2lmZGVmIFhQX01BQ09TWAotICAg
ICNpbmNsdWRlIDxBcHBsaWNhdGlvblNlcnZpY2VzL0FwcGxpY2F0aW9uU2VydmljZXMuaD4KLSAg
ICAjaW5jbHVkZSA8T3BlbkdML09wZW5HTC5oPgorI2luY2x1ZGUgPEFwcGxpY2F0aW9uU2Vydmlj
ZXMvQXBwbGljYXRpb25TZXJ2aWNlcy5oPgorI2luY2x1ZGUgPE9wZW5HTC9PcGVuR0wuaD4KICNp
Zm5kZWYgTlBfTk9fQ0FSQk9OCi0gICAgI2luY2x1ZGUgPENhcmJvbi9DYXJib24uaD4KKyNpbmNs
dWRlIDxDYXJib24vQ2FyYm9uLmg+CiAjZW5kaWYKICNlbmRpZgogCiAjaWZkZWYgWFBfVU5JWAot
ICAgICNpbmNsdWRlIDxYMTEvWGxpYi5oPgotICAgICNpbmNsdWRlIDxYMTEvWHV0aWwuaD4KLSAg
ICAjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxYMTEvWGxpYi5oPgorI2luY2x1ZGUgPFgx
MS9YdXRpbC5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CiAjZW5kaWYKIAogI2lmIGRlZmluZWQoWFBf
U1lNQklBTikKQEAgLTExOSwxNCArMTE0LDE0IEBACiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ki8KLS8qICAgICAgICAgICAgIFBsdWdpbiBWZXJzaW9uIENvbnN0YW50cyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgIFBsdWdpbiBW
ZXJzaW9uIENvbnN0YW50cyAgICAgICAgICAgICAgICAgICAgICAqLwogLyotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ki8KIAogI2RlZmluZSBOUF9WRVJTSU9OX01BSk9SIDAKICNkZWZpbmUgTlBfVkVSU0lPTl9NSU5P
UiAyNAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotLyogICAgICAgICAgICAgRGVmaW5pdGlvbiBvZiBC
YXNpYyBUeXBlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgICAgICAg
ICAgICAgICAgICAgICBEZWZpbml0aW9uIG9mIEJhc2ljIFR5cGVzICAgICAgICAgICAgICAgICAg
ICAgICovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCiAjaWZuZGVmIEZBTFNFCkBAIC0xMzksMTUgKzEz
NCwxMyBAQAogI2RlZmluZSBOVUxMICgwTCkKICNlbmRpZgogCi10eXBlZGVmIHVuc2lnbmVkIGNo
YXIgICAgTlBCb29sOwotdHlwZWRlZiBpbnQxNl90ICAgICAgICAgIE5QRXJyb3I7Ci10eXBlZGVm
IGludDE2X3QgICAgICAgICAgTlBSZWFzb247Ci10eXBlZGVmIGNoYXIqICAgICAgICAgICAgTlBN
SU1FVHlwZTsKLQotCit0eXBlZGVmIHVuc2lnbmVkIGNoYXIgTlBCb29sOwordHlwZWRlZiBpbnQx
Nl90ICAgICAgIE5QRXJyb3I7Cit0eXBlZGVmIGludDE2X3QgICAgICAgTlBSZWFzb247Cit0eXBl
ZGVmIGNoYXIqICAgICAgICAgTlBNSU1FVHlwZTsKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLS8qICAg
ICAgICAgICAgIFN0cnVjdHVyZXMgYW5kIGRlZmluaXRpb25zICAgICAgICAgICAgICovCisvKiAg
ICAgICAgICAgICAgICAgICAgICAgU3RydWN0dXJlcyBhbmQgZGVmaW5pdGlvbnMgICAgICAgICAg
ICAgICAgICAgICAqLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAogI2lmICFkZWZpbmVkKF9fTFA2NF9f
KQpAQCAtMTYxLDU4ICsxNTQsNTMgQEAgdHlwZWRlZiBjaGFyKiAgICAgICAgICAgIE5QTUlNRVR5
cGU7CiAgKi8KIHR5cGVkZWYgc3RydWN0IF9OUFAKIHsKLSAgICB2b2lkKiAgICBwZGF0YTsgICAg
ICAgICAgICAvKiBwbHVnLWluIHByaXZhdGUgZGF0YSAqLwotICAgIHZvaWQqICAgIG5kYXRhOyAg
ICAgICAgICAgIC8qIG5ldHNjYXBlIHByaXZhdGUgZGF0YSAqLworICB2b2lkKiBwZGF0YTsgICAg
ICAvKiBwbHVnLWluIHByaXZhdGUgZGF0YSAqLworICB2b2lkKiBuZGF0YTsgICAgICAvKiBuZXRz
Y2FwZSBwcml2YXRlIGRhdGEgKi8KIH0gTlBQX3Q7CiAKLXR5cGVkZWYgTlBQX3QqICAgIE5QUDsK
LQordHlwZWRlZiBOUFBfdCogIE5QUDsKIAogdHlwZWRlZiBzdHJ1Y3QgX05QU3RyZWFtCiB7Ci0g
ICAgdm9pZCogICAgICAgIHBkYXRhOyAgICAgICAgLyogcGx1Zy1pbiBwcml2YXRlIGRhdGEgKi8K
LSAgICB2b2lkKiAgICAgICAgbmRhdGE7ICAgICAgICAvKiBuZXRzY2FwZSBwcml2YXRlIGRhdGEg
Ki8KLSAgICBjb25zdCBjaGFyKiAgdXJsOwotICAgIHVpbnQzMl90ICAgICBlbmQ7Ci0gICAgdWlu
dDMyX3QgICAgIGxhc3Rtb2RpZmllZDsKLSAgICB2b2lkKiAgICAgICAgbm90aWZ5RGF0YTsKLSAg
ICBjb25zdCBjaGFyKiAgaGVhZGVyczsgICAgICAvKiBSZXNwb25zZSBoZWFkZXJzIGZyb20gaG9z
dC4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBFeGlzdHMgb25seSBmb3IgPj0g
TlBWRVJTX0hBU19SRVNQT05TRV9IRUFERVJTLgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAqIFVzZWQgZm9yIEhUVFAgb25seTsgTlVMTCBmb3Igbm9uLUhUVFAuCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICogQXZhaWxhYmxlIGZyb20gTlBQX05ld1N0cmVhbSBvbndh
cmRzLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIFBsdWdpbiBzaG91bGQgY29w
eSB0aGlzIGRhdGEgYmVmb3JlIHN0b3JpbmcgaXQuCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICogSW5jbHVkZXMgSFRUUCBzdGF0dXMgbGluZSBhbmQgYWxsIGhlYWRlcnMsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICogcHJlZmVyYWJseSB2ZXJiYXRpbSBhcyByZWNl
aXZlZCBmcm9tIHNlcnZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBoZWFk
ZXJzIGZvcm1hdHRlZCBhcyBpbiBIVFRQICgiSGVhZGVyOiBWYWx1ZSIpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAqIGFuZCBuZXdsaW5lcyAoXG4sIE5PVCBcclxuKSBzZXBhcmF0
aW5nIGxpbmVzLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIFRlcm1pbmF0ZWQg
YnkgXG5cMCAoTk9UIFxuXG5cMCkuICovCisgIHZvaWQqICAgIHBkYXRhOyAvKiBwbHVnLWluIHBy
aXZhdGUgZGF0YSAqLworICB2b2lkKiAgICBuZGF0YTsgLyogbmV0c2NhcGUgcHJpdmF0ZSBkYXRh
ICovCisgIGNvbnN0ICAgIGNoYXIqIHVybDsKKyAgdWludDMyX3QgZW5kOworICB1aW50MzJfdCBs
YXN0bW9kaWZpZWQ7CisgIHZvaWQqICAgIG5vdGlmeURhdGE7CisgIGNvbnN0ICAgIGNoYXIqIGhl
YWRlcnM7IC8qIFJlc3BvbnNlIGhlYWRlcnMgZnJvbSBob3N0LgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKiBFeGlzdHMgb25seSBmb3IgPj0gTlBWRVJTX0hBU19SRVNQT05TRV9IRUFERVJT
LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBVc2VkIGZvciBIVFRQIG9ubHk7IE5VTEwg
Zm9yIG5vbi1IVFRQLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBBdmFpbGFibGUgZnJv
bSBOUFBfTmV3U3RyZWFtIG9ud2FyZHMuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAqIFBs
dWdpbiBzaG91bGQgY29weSB0aGlzIGRhdGEgYmVmb3JlIHN0b3JpbmcgaXQuCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAqIEluY2x1ZGVzIEhUVFAgc3RhdHVzIGxpbmUgYW5kIGFsbCBoZWFk
ZXJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBwcmVmZXJhYmx5IHZlcmJhdGltIGFz
IHJlY2VpdmVkIGZyb20gc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBoZWFk
ZXJzIGZvcm1hdHRlZCBhcyBpbiBIVFRQICgiSGVhZGVyOiBWYWx1ZSIpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKiBhbmQgbmV3bGluZXMgKFxuLCBOT1QgXHJcbikgc2VwYXJhdGluZyBs
aW5lcy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICogVGVybWluYXRlZCBieSBcblwwIChO
T1QgXG5cblwwKS4gKi8KIH0gTlBTdHJlYW07CiAKLQogdHlwZWRlZiBzdHJ1Y3QgX05QQnl0ZVJh
bmdlCiB7Ci0gICAgaW50MzJfdCAgICBvZmZzZXQ7ICAgICAgICAgLyogbmVnYXRpdmUgb2Zmc2V0
IG1lYW5zIGZyb20gdGhlIGVuZCAqLwotICAgIHVpbnQzMl90ICAgbGVuZ3RoOwotICAgIHN0cnVj
dCBfTlBCeXRlUmFuZ2UqIG5leHQ7CisgIGludDMyX3QgIG9mZnNldDsgLyogbmVnYXRpdmUgb2Zm
c2V0IG1lYW5zIGZyb20gdGhlIGVuZCAqLworICB1aW50MzJfdCBsZW5ndGg7CisgIHN0cnVjdCBf
TlBCeXRlUmFuZ2UqIG5leHQ7CiB9IE5QQnl0ZVJhbmdlOwogCi0KIHR5cGVkZWYgc3RydWN0IF9O
UFNhdmVkRGF0YQogewotICAgIGludDMyX3QgIGxlbjsKLSAgICB2b2lkKiAgICBidWY7CisgIGlu
dDMyX3QgbGVuOworICB2b2lkKiAgIGJ1ZjsKIH0gTlBTYXZlZERhdGE7CiAKLQogdHlwZWRlZiBz
dHJ1Y3QgX05QUmVjdAogewotICAgIHVpbnQxNl90ICB0b3A7Ci0gICAgdWludDE2X3QgIGxlZnQ7
Ci0gICAgdWludDE2X3QgIGJvdHRvbTsKLSAgICB1aW50MTZfdCAgcmlnaHQ7CisgIHVpbnQxNl90
IHRvcDsKKyAgdWludDE2X3QgbGVmdDsKKyAgdWludDE2X3QgYm90dG9tOworICB1aW50MTZfdCBy
aWdodDsKIH0gTlBSZWN0OwogCi0KICNpZmRlZiBYUF9VTklYCiAvKgogICogVW5peCBzcGVjaWZp
YyBzdHJ1Y3R1cmVzIGFuZCBkZWZpbml0aW9ucwpAQCAtMjI0LDE3MiArMjEyLDE3NyBAQCB0eXBl
ZGVmIHN0cnVjdCBfTlBSZWN0CiAgKiBUaGVzZSBhcmUgdXNlZCB0byBwYXNzIGFkZGl0aW9uYWwg
cGxhdGZvcm0gc3BlY2lmaWMgaW5mb3JtYXRpb24uCiAgKi8KIGVudW0gewotICAgIE5QX1NFVFdJ
TkRPVyA9IDEsCi0gICAgTlBfUFJJTlQKKyAgTlBfU0VUV0lORE9XID0gMSwKKyAgTlBfUFJJTlQK
IH07CiAKIHR5cGVkZWYgc3RydWN0CiB7Ci0gICAgaW50MzJfdCAgICAgIHR5cGU7CisgIGludDMy
X3QgdHlwZTsKIH0gTlBBbnlDYWxsYmFja1N0cnVjdDsKIAogdHlwZWRlZiBzdHJ1Y3QKIHsKLSAg
ICBpbnQzMl90ICAgICAgICAgdHlwZTsKLSAgICBEaXNwbGF5KiAgICAgICAgZGlzcGxheTsKLSAg
ICBWaXN1YWwqICAgICAgICAgdmlzdWFsOwotICAgIENvbG9ybWFwICAgICAgICBjb2xvcm1hcDsK
LSAgICB1bnNpZ25lZCBpbnQgICAgZGVwdGg7CisgIGludDMyX3QgICAgICB0eXBlOworICBEaXNw
bGF5KiAgICAgZGlzcGxheTsKKyAgVmlzdWFsKiAgICAgIHZpc3VhbDsKKyAgQ29sb3JtYXAgICAg
IGNvbG9ybWFwOworICB1bnNpZ25lZCBpbnQgZGVwdGg7CiB9IE5QU2V0V2luZG93Q2FsbGJhY2tT
dHJ1Y3Q7CiAKIHR5cGVkZWYgc3RydWN0CiB7Ci0gICAgaW50MzJfdCAgICAgICAgICB0eXBlOwot
ICAgIEZJTEUqICAgICAgICAgICAgZnA7CisgIGludDMyX3QgdHlwZTsKKyAgRklMRSogZnA7CiB9
IE5QUHJpbnRDYWxsYmFja1N0cnVjdDsKIAogI2VuZGlmIC8qIFhQX1VOSVggKi8KIAorI2lmZGVm
IFhQX01BQ09TWAordHlwZWRlZiBlbnVtIHsKKyNpZm5kZWYgTlBfTk9fUVVJQ0tEUkFXCisgIE5Q
RHJhd2luZ01vZGVsUXVpY2tEcmF3ID0gMCwKKyNlbmRpZgorICBOUERyYXdpbmdNb2RlbENvcmVH
cmFwaGljcyA9IDEsCisgIE5QRHJhd2luZ01vZGVsT3BlbkdMID0gMiwKKyAgTlBEcmF3aW5nTW9k
ZWxDb3JlQW5pbWF0aW9uID0gMworfSBOUERyYXdpbmdNb2RlbDsKKwordHlwZWRlZiBlbnVtIHsK
KyNpZm5kZWYgTlBfTk9fQ0FSQk9OCisgIE5QRXZlbnRNb2RlbENhcmJvbiA9IDAsCisjZW5kaWYK
KyAgTlBFdmVudE1vZGVsQ29jb2EgPSAxCit9IE5QRXZlbnRNb2RlbDsKKyNlbmRpZgorCiAvKgot
ICogICBUaGUgZm9sbG93aW5nIG1hc2tzIGFyZSBhcHBsaWVkIG9uIGNlcnRhaW4gcGxhdGZvcm1z
IHRvIE5QTlYgYW5kIAotICogICBOUFBWIHNlbGVjdG9ycyB0aGF0IHBhc3MgYXJvdW5kIHBvaW50
ZXJzIHRvIENPTSBpbnRlcmZhY2VzLiBOZXdlciAKLSAqICAgY29tcGlsZXJzIG9uIHNvbWUgcGxh
dGZvcm1zIG1heSBnZW5lcmF0ZSB2dGFibGVzIHRoYXQgYXJlIG5vdCAKLSAqICAgY29tcGF0aWJs
ZSB3aXRoIG9sZGVyIGNvbXBpbGVycy4gVG8gcHJldmVudCBvbGRlciBwbHVnaW5zIGZyb20gCi0g
KiAgIG5vdCB1bmRlcnN0YW5kaW5nIGEgbmV3IGJyb3dzZXIncyBBQkksIHRoZXNlIG1hc2tzIGNo
YW5nZSB0aGUgCisgKiAgIFRoZSBmb2xsb3dpbmcgbWFza3MgYXJlIGFwcGxpZWQgb24gY2VydGFp
biBwbGF0Zm9ybXMgdG8gTlBOViBhbmQKKyAqICAgTlBQViBzZWxlY3RvcnMgdGhhdCBwYXNzIGFy
b3VuZCBwb2ludGVycyB0byBDT00gaW50ZXJmYWNlcy4gTmV3ZXIKKyAqICAgY29tcGlsZXJzIG9u
IHNvbWUgcGxhdGZvcm1zIG1heSBnZW5lcmF0ZSB2dGFibGVzIHRoYXQgYXJlIG5vdAorICogICBj
b21wYXRpYmxlIHdpdGggb2xkZXIgY29tcGlsZXJzLiBUbyBwcmV2ZW50IG9sZGVyIHBsdWdpbnMg
ZnJvbQorICogICBub3QgdW5kZXJzdGFuZGluZyBhIG5ldyBicm93c2VyJ3MgQUJJLCB0aGVzZSBt
YXNrcyBjaGFuZ2UgdGhlCiAgKiAgIHZhbHVlcyBvZiB0aG9zZSBzZWxlY3RvcnMgb24gdGhvc2Ug
cGxhdGZvcm1zLiBUbyByZW1haW4gYmFja3dhcmRzCi0gKiAgIGNvbXBhdGlibGUgd2l0aCBkaWZm
ZXJlbmV0IHZlcnNpb25zIG9mIHRoZSBicm93c2VyLCBwbHVnaW5zIGNhbiAKKyAqICAgY29tcGF0
aWJsZSB3aXRoIGRpZmZlcmVudCB2ZXJzaW9ucyBvZiB0aGUgYnJvd3NlciwgcGx1Z2lucyBjYW4K
ICAqICAgdXNlIHRoZXNlIG1hc2tzIHRvIGR5bmFtaWNhbGx5IGRldGVybWluZSBhbmQgdXNlIHRo
ZSBjb3JyZWN0IEMrKwotICogICBBQkkgdGhhdCB0aGUgYnJvd3NlciBpcyBleHBlY3RpbmcuIFRo
aXMgZG9lcyBub3QgYXBwbHkgdG8gV2luZG93cyAKKyAqICAgQUJJIHRoYXQgdGhlIGJyb3dzZXIg
aXMgZXhwZWN0aW5nLiBUaGlzIGRvZXMgbm90IGFwcGx5IHRvIFdpbmRvd3MKICAqICAgYXMgTWlj
cm9zb2Z0J3MgQ09NIEFCSSB3aWxsIGxpa2VseSBub3QgY2hhbmdlLgogICovCiAKICNkZWZpbmUg
TlBfQUJJX0dDQzNfTUFTSyAgMHgxMDAwMDAwMAogLyoKLSAqICAgZ2NjIDMueCBnZW5lcmF0ZWQg
dnRhYmxlcyBvbiBVTklYIGFuZCBPU1ggYXJlIGluY29tcGF0aWJsZSB3aXRoIAorICogICBnY2Mg
My54IGdlbmVyYXRlZCB2dGFibGVzIG9uIFVOSVggYW5kIE9TWCBhcmUgaW5jb21wYXRpYmxlIHdp
dGgKICAqICAgcHJldmlvdXMgY29tcGlsZXJzLgogICovCi0jaWYgKGRlZmluZWQgKFhQX1VOSVgp
ICYmIGRlZmluZWQoX19HTlVDX18pICYmIChfX0dOVUNfXyA+PSAzKSkKKyNpZiAoZGVmaW5lZChY
UF9VTklYKSAmJiBkZWZpbmVkKF9fR05VQ19fKSAmJiAoX19HTlVDX18gPj0gMykpCiAjZGVmaW5l
IF9OUF9BQklfTUlYSU5fRk9SX0dDQzMgTlBfQUJJX0dDQzNfTUFTSwogI2Vsc2UKICNkZWZpbmUg
X05QX0FCSV9NSVhJTl9GT1JfR0NDMyAwCiAjZW5kaWYKIAogI2RlZmluZSBOUF9BQklfTUFDSE9f
TUFTSyAweDAxMDAwMDAwCi0vKgotICogICBPbiBPU1gsIHRoZSBNYWNoLU8gZXhlY3V0YWJsZSBm
b3JtYXQgaXMgc2lnbmlmaWNhbnRseQotICogICBkaWZmZXJlbnQgdGhhbiBDRk0uIEluIGFkZGl0
aW9uIHRvIGhhdmluZyBhIGRpZmZlcmVudAotICogICBDKysgQUJJLCBpdCBhbHNvIGhhcyBoYXMg
ZGlmZmVyZW50IEMgY2FsbGluZyBjb252ZW50aW9uLgotICogICBZb3UgbXVzdCB1c2UgZ2x1ZSBj
b2RlIHdoZW4gY2FsbGluZyBiZXR3ZWVuIENGTSBhbmQKLSAqICAgTWFjaC1PIEMgZnVuY3Rpb25z
LiAKLSAqLwogI2lmIChkZWZpbmVkKFRBUkdFVF9SVF9NQUNfTUFDSE8pKQogI2RlZmluZSBfTlBf
QUJJX01JWElOX0ZPUl9NQUNITyBOUF9BQklfTUFDSE9fTUFTSwogI2Vsc2UKICNkZWZpbmUgX05Q
X0FCSV9NSVhJTl9GT1JfTUFDSE8gMAogI2VuZGlmCiAKLQogI2RlZmluZSBOUF9BQklfTUFTSyAo
X05QX0FCSV9NSVhJTl9GT1JfR0NDMyB8IF9OUF9BQklfTUlYSU5fRk9SX01BQ0hPKQogCiAvKgog
ICogTGlzdCBvZiB2YXJpYWJsZSBuYW1lcyBmb3Igd2hpY2ggTlBQX0dldFZhbHVlIHNoYWxsIGJl
IGltcGxlbWVudGVkCiAgKi8KIHR5cGVkZWYgZW51bSB7Ci0gICAgTlBQVnBsdWdpbk5hbWVTdHJp
bmcgPSAxLAotICAgIE5QUFZwbHVnaW5EZXNjcmlwdGlvblN0cmluZywKLSAgICBOUFBWcGx1Z2lu
V2luZG93Qm9vbCwKLSAgICBOUFBWcGx1Z2luVHJhbnNwYXJlbnRCb29sLAotCi0gICAgTlBQVmph
dmFDbGFzcywgICAgICAgICAgICAgICAgLyogTm90IGltcGxlbWVudGVkIGluIFdlYktpdCAqLwot
ICAgIE5QUFZwbHVnaW5XaW5kb3dTaXplLCAgICAgICAgIC8qIE5vdCBpbXBsZW1lbnRlZCBpbiBX
ZWJLaXQgKi8KLSAgICBOUFBWcGx1Z2luVGltZXJJbnRlcnZhbCwgICAgICAvKiBOb3QgaW1wbGVt
ZW50ZWQgaW4gV2ViS2l0ICovCi0KLSAgICBOUFBWcGx1Z2luU2NyaXB0YWJsZUluc3RhbmNlID0g
KDEwIHwgTlBfQUJJX01BU0spLCAvKiBOb3QgaW1wbGVtZW50ZWQgaW4gV2ViS2l0ICovCi0gICAg
TlBQVnBsdWdpblNjcmlwdGFibGVJSUQgPSAxMSwgLyogTm90IGltcGxlbWVudGVkIGluIFdlYktp
dCAqLwotCi0gICAgLyogMTIgYW5kIG92ZXIgYXJlIGF2YWlsYWJsZSBvbiBNb3ppbGxhIGJ1aWxk
cyBzdGFydGluZyB3aXRoIDAuOS45ICovCi0gICAgTlBQVmphdmFzY3JpcHRQdXNoQ2FsbGVyQm9v
bCA9IDEyLCAgLyogTm90IGltcGxlbWVudGVkIGluIFdlYktpdCAqLwotICAgIE5QUFZwbHVnaW5L
ZWVwTGlicmFyeUluTWVtb3J5ID0gMTMsIC8qIE5vdCBpbXBsZW1lbnRlZCBpbiBXZWJLaXQgKi8K
LSAgICBOUFBWcGx1Z2luTmVlZHNYRW1iZWQgICAgICAgICA9IDE0LCAvKiBOb3QgaW1wbGVtZW50
ZWQgaW4gV2ViS2l0ICovCi0KLSAgICAvKiBHZXQgdGhlIE5QT2JqZWN0IGZvciBzY3JpcHRpbmcg
dGhlIHBsdWdpbi4gKi8KLSAgICBOUFBWcGx1Z2luU2NyaXB0YWJsZU5QT2JqZWN0ICA9IDE1LAot
Ci0gICAgLyogR2V0IHRoZSBwbHVnaW4gdmFsdWUgKGFzIFwwLXRlcm1pbmF0ZWQgVVRGLTggc3Ry
aW5nIGRhdGEpIGZvcgotICAgICAqIGZvcm0gc3VibWlzc2lvbiBpZiB0aGUgcGx1Z2luIGlzIHBh
cnQgb2YgYSBmb3JtLiBVc2UKLSAgICAgKiBOUE5fTWVtQWxsb2MoKSB0byBhbGxvY2F0ZSBtZW1v
cnkgZm9yIHRoZSBzdHJpbmcgZGF0YS4KLSAgICAgKi8KLSAgICBOUFBWZm9ybVZhbHVlID0gMTYs
ICAgIC8qIE5vdCBpbXBsZW1lbnRlZCBpbiBXZWJLaXQgKi8KLQotICAgIE5QUFZwbHVnaW5VcmxS
ZXF1ZXN0c0Rpc3BsYXllZEJvb2wgPSAxNywgLyogTm90IGltcGxlbWVudGVkIGluIFdlYktpdCAq
LwotCi0gICAgLyogQ2hlY2tzIGlmIHRoZSBwbHVnaW4gaXMgaW50ZXJlc3RlZCBpbiByZWNlaXZp
bmcgdGhlIGh0dHAgYm9keSBvZgotICAgICAqIGZhaWxlZCBodHRwIHJlcXVlc3RzIChodHRwIHN0
YXR1cyAhPSAyMDApLgotICAgICAqLwotICAgIE5QUFZwbHVnaW5XYW50c0FsbE5ldHdvcmtTdHJl
YW1zID0gMTgsCisgIE5QUFZwbHVnaW5OYW1lU3RyaW5nID0gMSwKKyAgTlBQVnBsdWdpbkRlc2Ny
aXB0aW9uU3RyaW5nLAorICBOUFBWcGx1Z2luV2luZG93Qm9vbCwKKyAgTlBQVnBsdWdpblRyYW5z
cGFyZW50Qm9vbCwKKyAgTlBQVmphdmFDbGFzcywgICAgICAgICAgICAgICAgLyogTm90IGltcGxl
bWVudGVkIGluIFdlYktpdCAqLworICBOUFBWcGx1Z2luV2luZG93U2l6ZSwgICAgICAgICAvKiBO
b3QgaW1wbGVtZW50ZWQgaW4gV2ViS2l0ICovCisgIE5QUFZwbHVnaW5UaW1lckludGVydmFsLCAg
ICAgIC8qIE5vdCBpbXBsZW1lbnRlZCBpbiBXZWJLaXQgKi8KKyAgTlBQVnBsdWdpblNjcmlwdGFi
bGVJbnN0YW5jZSA9ICgxMCB8IE5QX0FCSV9NQVNLKSwgLyogTm90IGltcGxlbWVudGVkIGluIFdl
YktpdCAqLworICBOUFBWcGx1Z2luU2NyaXB0YWJsZUlJRCA9IDExLCAvKiBOb3QgaW1wbGVtZW50
ZWQgaW4gV2ViS2l0ICovCisgIE5QUFZqYXZhc2NyaXB0UHVzaENhbGxlckJvb2wgPSAxMiwgIC8q
IE5vdCBpbXBsZW1lbnRlZCBpbiBXZWJLaXQgKi8KKyAgTlBQVnBsdWdpbktlZXBMaWJyYXJ5SW5N
ZW1vcnkgPSAxMywgLyogTm90IGltcGxlbWVudGVkIGluIFdlYktpdCAqLworICBOUFBWcGx1Z2lu
TmVlZHNYRW1iZWQgICAgICAgICA9IDE0LCAvKiBOb3QgaW1wbGVtZW50ZWQgaW4gV2ViS2l0ICov
CisKKyAgLyogR2V0IHRoZSBOUE9iamVjdCBmb3Igc2NyaXB0aW5nIHRoZSBwbHVnaW4uIEludHJv
ZHVjZWQgaW4gTlBBUEkgbWlub3IgdmVyc2lvbiAxNC4KKyAgICovCisgIE5QUFZwbHVnaW5TY3Jp
cHRhYmxlTlBPYmplY3QgID0gMTUsCisKKyAgLyogR2V0IHRoZSBwbHVnaW4gdmFsdWUgKGFzIFww
LXRlcm1pbmF0ZWQgVVRGLTggc3RyaW5nIGRhdGEpIGZvcgorICAgKiBmb3JtIHN1Ym1pc3Npb24g
aWYgdGhlIHBsdWdpbiBpcyBwYXJ0IG9mIGEgZm9ybS4gVXNlCisgICAqIE5QTl9NZW1BbGxvYygp
IHRvIGFsbG9jYXRlIG1lbW9yeSBmb3IgdGhlIHN0cmluZyBkYXRhLiBJbnRyb2R1Y2VkCisgICAq
IGluIE5QQVBJIG1pbm9yIHZlcnNpb24gMTUuCisgICAqLworICBOUFBWZm9ybVZhbHVlID0gMTYs
ICAgIC8qIE5vdCBpbXBsZW1lbnRlZCBpbiBXZWJLaXQgKi8KKworICBOUFBWcGx1Z2luVXJsUmVx
dWVzdHNEaXNwbGF5ZWRCb29sID0gMTcsIC8qIE5vdCBpbXBsZW1lbnRlZCBpbiBXZWJLaXQgKi8K
KworICAvKiBDaGVja3MgaWYgdGhlIHBsdWdpbiBpcyBpbnRlcmVzdGVkIGluIHJlY2VpdmluZyB0
aGUgaHR0cCBib2R5IG9mCisgICAqIGFsbCBodHRwIHJlcXVlc3RzIChpbmNsdWRpbmcgZmFpbGVk
IG9uZXMsIGh0dHAgc3RhdHVzICE9IDIwMCkuCisgICAqLworICBOUFBWcGx1Z2luV2FudHNBbGxO
ZXR3b3JrU3RyZWFtcyA9IDE4LAogCi0gICAgLyogQ2hlY2tzIHRvIHNlZSBpZiB0aGUgcGx1Zy1p
biB3b3VsZCBsaWtlIHRoZSBicm93c2VyIHRvIGxvYWQgdGhlICJzcmMiIGF0dHJpYnV0ZS4gKi8K
LSAgICBOUFBWcGx1Z2luQ2FuY2VsU3JjU3RyZWFtID0gMjAsCisgIC8qIENoZWNrcyB0byBzZWUg
aWYgdGhlIHBsdWctaW4gd291bGQgbGlrZSB0aGUgYnJvd3NlciB0byBsb2FkIHRoZSAic3JjIiBh
dHRyaWJ1dGUuICovCisgIE5QUFZwbHVnaW5DYW5jZWxTcmNTdHJlYW0gPSAyMAogCiAjaWZkZWYg
WFBfTUFDT1NYCi0gICAgLyogVXNlZCBmb3IgbmVnb3RpYXRpbmcgZHJhd2luZyBtb2RlbHMgKi8K
LSAgICBOUFBWcGx1Z2luRHJhd2luZ01vZGVsID0gMTAwMCwKLSAgICAvKiBVc2VkIGZvciBuZWdv
dGlhdGluZyBldmVudCBtb2RlbHMgKi8KLSAgICBOUFBWcGx1Z2luRXZlbnRNb2RlbCA9IDEwMDEs
Ci0gICAgLyogSW4gdGhlIE5QRHJhd2luZ01vZGVsQ29yZUFuaW1hdGlvbiBkcmF3aW5nIG1vZGVs
LCB0aGUgYnJvd3NlciBhc2tzIHRoZSBwbHVnLWluIGZvciBhIENvcmUgQW5pbWF0aW9uIGxheWVy
LiAqLwotICAgIE5QUFZwbHVnaW5Db3JlQW5pbWF0aW9uTGF5ZXIgPSAxMDAzCisgIC8qIFVzZWQg
Zm9yIG5lZ290aWF0aW5nIGRyYXdpbmcgbW9kZWxzICovCisgICwgTlBQVnBsdWdpbkRyYXdpbmdN
b2RlbCA9IDEwMDAKKyAgLyogVXNlZCBmb3IgbmVnb3RpYXRpbmcgZXZlbnQgbW9kZWxzICovCisg
ICwgTlBQVnBsdWdpbkV2ZW50TW9kZWwgPSAxMDAxCisgIC8qIEluIHRoZSBOUERyYXdpbmdNb2Rl
bENvcmVBbmltYXRpb24gZHJhd2luZyBtb2RlbCwgdGhlIGJyb3dzZXIgYXNrcyB0aGUgcGx1Zy1p
biBmb3IgYSBDb3JlIEFuaW1hdGlvbiBsYXllci4gKi8KKyAgLCBOUFBWcGx1Z2luQ29yZUFuaW1h
dGlvbkxheWVyID0gMTAwMwogI2VuZGlmCiB9IE5QUFZhcmlhYmxlOwogCiAvKgotICogTGlzdCBv
ZiB2YXJpYWJsZSBuYW1lcyBmb3Igd2hpY2ggTlBOX0dldFZhbHVlIGlzIGltcGxlbWVudGVkIGJ5
IE1vemlsbGEKKyAqIExpc3Qgb2YgdmFyaWFibGUgbmFtZXMgZm9yIHdoaWNoIE5QTl9HZXRWYWx1
ZSBzaG91bGQgYmUgaW1wbGVtZW50ZWQuCiAgKi8KIHR5cGVkZWYgZW51bSB7Ci0gICAgTlBOVnhE
aXNwbGF5ID0gMSwKLSAgICBOUE5WeHRBcHBDb250ZXh0LAotICAgIE5QTlZuZXRzY2FwZVdpbmRv
dywKLSAgICBOUE5WamF2YXNjcmlwdEVuYWJsZWRCb29sLAotICAgIE5QTlZhc2RFbmFibGVkQm9v
bCwKLSAgICBOUE5WaXNPZmZsaW5lQm9vbCwKLQotICAgIC8qIDEwIGFuZCBvdmVyIGFyZSBhdmFp
bGFibGUgb24gTW96aWxsYSBidWlsZHMgc3RhcnRpbmcgd2l0aCAwLjkuNCAqLwotICAgIE5QTlZz
ZXJ2aWNlTWFuYWdlciA9ICgxMCB8IE5QX0FCSV9NQVNLKSwgIC8qIE5vdCBpbXBsZW1lbnRlZCBp
biBXZWJLaXQgKi8KLSAgICBOUE5WRE9NRWxlbWVudCAgICAgPSAoMTEgfCBOUF9BQklfTUFTSyks
ICAvKiBOb3QgaW1wbGVtZW50ZWQgaW4gV2ViS2l0ICovCi0gICAgTlBOVkRPTVdpbmRvdyAgICAg
ID0gKDEyIHwgTlBfQUJJX01BU0spLCAgLyogTm90IGltcGxlbWVudGVkIGluIFdlYktpdCAqLwot
ICAgIE5QTlZUb29sa2l0ICAgICAgICA9ICgxMyB8IE5QX0FCSV9NQVNLKSwgIC8qIE5vdCBpbXBs
ZW1lbnRlZCBpbiBXZWJLaXQgKi8KLSAgICBOUE5WU3VwcG9ydHNYRW1iZWRCb29sID0gMTQsICAg
ICAgICAgICAgICAvKiBOb3QgaW1wbGVtZW50ZWQgaW4gV2ViS2l0ICovCi0KLSAgICAvKiBHZXQg
dGhlIE5QT2JqZWN0IHdyYXBwZXIgZm9yIHRoZSBicm93c2VyIHdpbmRvdy4gKi8KLSAgICBOUE5W
V2luZG93TlBPYmplY3QgPSAxNSwKLQotICAgIC8qIEdldCB0aGUgTlBPYmplY3Qgd3JhcHBlciBm
b3IgdGhlIHBsdWdpbnMgRE9NIGVsZW1lbnQuICovCi0gICAgTlBOVlBsdWdpbkVsZW1lbnROUE9i
amVjdCA9IDE2LAotCi0gICAgTlBOVlN1cHBvcnRzV2luZG93bGVzcyA9IDE3LAotICAgIAotICAg
IE5QTlZwcml2YXRlTW9kZUJvb2wgPSAxOAorICBOUE5WeERpc3BsYXkgPSAxLAorICBOUE5WeHRB
cHBDb250ZXh0LAorICBOUE5WbmV0c2NhcGVXaW5kb3csCisgIE5QTlZqYXZhc2NyaXB0RW5hYmxl
ZEJvb2wsCisgIE5QTlZhc2RFbmFibGVkQm9vbCwKKyAgTlBOVmlzT2ZmbGluZUJvb2wsCisKKyAg
TlBOVnNlcnZpY2VNYW5hZ2VyID0gKDEwIHwgTlBfQUJJX01BU0spLCAgLyogTm90IGltcGxlbWVu
dGVkIGluIFdlYktpdCAqLworICBOUE5WRE9NRWxlbWVudCAgICAgPSAoMTEgfCBOUF9BQklfTUFT
SyksICAvKiBOb3QgaW1wbGVtZW50ZWQgaW4gV2ViS2l0ICovCisgIE5QTlZET01XaW5kb3cgICAg
ICA9ICgxMiB8IE5QX0FCSV9NQVNLKSwgIC8qIE5vdCBpbXBsZW1lbnRlZCBpbiBXZWJLaXQgKi8K
KyAgTlBOVlRvb2xraXQgICAgICAgID0gKDEzIHwgTlBfQUJJX01BU0spLCAgLyogTm90IGltcGxl
bWVudGVkIGluIFdlYktpdCAqLworICBOUE5WU3VwcG9ydHNYRW1iZWRCb29sID0gMTQsICAgICAg
ICAgICAgICAvKiBOb3QgaW1wbGVtZW50ZWQgaW4gV2ViS2l0ICovCisKKyAgLyogR2V0IHRoZSBO
UE9iamVjdCB3cmFwcGVyIGZvciB0aGUgYnJvd3NlciB3aW5kb3cuICovCisgIE5QTlZXaW5kb3dO
UE9iamVjdCA9IDE1LAogCi0jaWZkZWYgWFBfTUFDT1NYCi0gICAgLCBOUE5WcGx1Z2luRHJhd2lu
Z01vZGVsID0gMTAwMCAvKiBUaGUgTlBEcmF3aW5nTW9kZWwgc3BlY2lmaWVkIGJ5IHRoZSBwbHVn
aW4gKi8KKyAgLyogR2V0IHRoZSBOUE9iamVjdCB3cmFwcGVyIGZvciB0aGUgcGx1Z2lucyBET00g
ZWxlbWVudC4gKi8KKyAgTlBOVlBsdWdpbkVsZW1lbnROUE9iamVjdCA9IDE2LAorCisgIE5QTlZT
dXBwb3J0c1dpbmRvd2xlc3MgPSAxNywKIAorICBOUE5WcHJpdmF0ZU1vZGVCb29sID0gMTgKKwor
I2lmZGVmIFhQX01BQ09TWAorICAvKiBVc2VkIGZvciBuZWdvdGlhdGluZyBkcmF3aW5nIG1vZGVs
cyAqLworICAsIE5QTlZwbHVnaW5EcmF3aW5nTW9kZWwgPSAxMDAwCiAjaWZuZGVmIE5QX05PX1FV
SUNLRFJBVwotICAgICwgTlBOVnN1cHBvcnRzUXVpY2tEcmF3Qm9vbCA9IDIwMDAgLyogVFJVRSBp
ZiB0aGUgYnJvd3NlciBzdXBwb3J0cyB0aGUgUXVpY2tEcmF3IGRyYXdpbmcgbW9kZWwgKi8KKyAg
LCBOUE5Wc3VwcG9ydHNRdWlja0RyYXdCb29sID0gMjAwMAogI2VuZGlmCi0gICAgLCBOUE5Wc3Vw
cG9ydHNDb3JlR3JhcGhpY3NCb29sID0gMjAwMSAvKiBUUlVFIGlmIHRoZSBicm93c2VyIHN1cHBv
cnRzIHRoZSBDb3JlR3JhcGhpY3MgZHJhd2luZyBtb2RlbCAqLwotICAgICwgTlBOVnN1cHBvcnRz
T3BlbkdMQm9vbCA9IDIwMDIgLyogVFJVRSBpZiB0aGUgYnJvd3NlciBzdXBwb3J0cyB0aGUgT3Bl
bkdMIGRyYXdpbmcgbW9kZWwgKENHTCBvbiBNYWMpICovCi0gICAgLCBOUE5Wc3VwcG9ydHNDb3Jl
QW5pbWF0aW9uQm9vbCA9IDIwMDMgLyogVFJVRSBpZiB0aGUgYnJvd3NlciBzdXBwb3J0cyB0aGUg
Q29yZUFuaW1hdGlvbiBkcmF3aW5nIG1vZGVsICovCi0KKyAgLCBOUE5Wc3VwcG9ydHNDb3JlR3Jh
cGhpY3NCb29sID0gMjAwMQorICAsIE5QTlZzdXBwb3J0c09wZW5HTEJvb2wgPSAyMDAyCisgICwg
TlBOVnN1cHBvcnRzQ29yZUFuaW1hdGlvbkJvb2wgPSAyMDAzCiAjaWZuZGVmIE5QX05PX0NBUkJP
TgotICAgICwgTlBOVnN1cHBvcnRzQ2FyYm9uQm9vbCA9IDMwMDAgLyogVFJVRSBpZiB0aGUgYnJv
d3NlciBzdXBwb3J0cyB0aGUgQ2FyYm9uIGV2ZW50IG1vZGVsICovCisgICwgTlBOVnN1cHBvcnRz
Q2FyYm9uQm9vbCA9IDMwMDAgLyogVFJVRSBpZiB0aGUgYnJvd3NlciBzdXBwb3J0cyB0aGUgQ2Fy
Ym9uIGV2ZW50IG1vZGVsICovCiAjZW5kaWYKLSAgICAsIE5QTlZzdXBwb3J0c0NvY29hQm9vbCA9
IDMwMDEgLyogVFJVRSBpZiB0aGUgYnJvd3NlciBzdXBwb3J0cyB0aGUgQ29jb2EgZXZlbnQgbW9k
ZWwgKi8KLSAgICAKKyAgLCBOUE5Wc3VwcG9ydHNDb2NvYUJvb2wgPSAzMDAxIC8qIFRSVUUgaWYg
dGhlIGJyb3dzZXIgc3VwcG9ydHMgdGhlIENvY29hIGV2ZW50IG1vZGVsICovCiAjZW5kaWYgLyog
WFBfTUFDT1NYICovCiB9IE5QTlZhcmlhYmxlOwogCiB0eXBlZGVmIGVudW0gewotICAgTlBOVVJM
VkNvb2tpZSA9IDUwMSwKLSAgIE5QTlVSTFZQcm94eQorICBOUE5VUkxWQ29va2llID0gNTAxLAor
ICBOUE5VUkxWUHJveHkKIH0gTlBOVVJMVmFyaWFibGU7CiAKIC8qCkBAIC0zOTcsMTgyICszOTAs
NzIgQEAgdHlwZWRlZiBlbnVtIHsKICAqIHJldHVybmVkIGluIHRoZSB3aW5kb3cgZmllbGQuCiAg
Ki8KIHR5cGVkZWYgZW51bSB7Ci0gICAgTlBXaW5kb3dUeXBlV2luZG93ID0gMSwKLSAgICBOUFdp
bmRvd1R5cGVEcmF3YWJsZQorICBOUFdpbmRvd1R5cGVXaW5kb3cgPSAxLAorICBOUFdpbmRvd1R5
cGVEcmF3YWJsZQogfSBOUFdpbmRvd1R5cGU7CiAKLSNpZmRlZiBYUF9NQUNPU1gKLQotLyoKLSAq
IFRoZSBkcmF3aW5nIG1vZGVsIGZvciBhIE1hYyBPUyBYIHBsdWdpbi4gIFRoZXNlIGFyZSB0aGUg
cG9zc2libGUgdmFsdWVzIGZvciB0aGUgTlBOVnBsdWdpbkRyYXdpbmdNb2RlbCB2YXJpYWJsZS4K
LSAqLwotIAotdHlwZWRlZiBlbnVtIHsKLSNpZm5kZWYgTlBfTk9fUVVJQ0tEUkFXCi0gICAgTlBE
cmF3aW5nTW9kZWxRdWlja0RyYXcgPSAwLAotI2VuZGlmCi0gICAgTlBEcmF3aW5nTW9kZWxDb3Jl
R3JhcGhpY3MgPSAxLAotICAgIE5QRHJhd2luZ01vZGVsT3BlbkdMID0gMiwKLSAgICBOUERyYXdp
bmdNb2RlbENvcmVBbmltYXRpb24gPSAzCi19IE5QRHJhd2luZ01vZGVsOwotCi0vKgotICogVGhl
IGV2ZW50IG1vZGVsIGZvciBhIE1hYyBPUyBYIHBsdWdpbi4gVGhlc2UgYXJlIHRoZSBwb3NzaWJs
ZSB2YWx1ZXMgZm9yIHRoZSBOUE5WcGx1Z2luRXZlbnRNb2RlbCB2YXJpYWJsZS4KLSAqLwotCi10
eXBlZGVmIGVudW0gewotI2lmbmRlZiBOUF9OT19DQVJCT04KLSAgICBOUEV2ZW50TW9kZWxDYXJi
b24gPSAwLAotI2VuZGlmCi0gICAgTlBFdmVudE1vZGVsQ29jb2EgPSAxLAotfSBOUEV2ZW50TW9k
ZWw7Ci0KLXR5cGVkZWYgZW51bSB7Ci0gICAgTlBDb2NvYUV2ZW50RHJhd1JlY3QgPSAxLAotICAg
IE5QQ29jb2FFdmVudE1vdXNlRG93biwKLSAgICBOUENvY29hRXZlbnRNb3VzZVVwLAotICAgIE5Q
Q29jb2FFdmVudE1vdXNlTW92ZWQsCi0gICAgTlBDb2NvYUV2ZW50TW91c2VFbnRlcmVkLAotICAg
IE5QQ29jb2FFdmVudE1vdXNlRXhpdGVkLAotICAgIE5QQ29jb2FFdmVudE1vdXNlRHJhZ2dlZCwK
LSAgICBOUENvY29hRXZlbnRLZXlEb3duLAotICAgIE5QQ29jb2FFdmVudEtleVVwLAotICAgIE5Q
Q29jb2FFdmVudEZsYWdzQ2hhbmdlZCwKLSAgICBOUENvY29hRXZlbnRGb2N1c0NoYW5nZWQsCi0g
ICAgTlBDb2NvYUV2ZW50V2luZG93Rm9jdXNDaGFuZ2VkLAotICAgIE5QQ29jb2FFdmVudFNjcm9s
bFdoZWVsLAotICAgIE5QQ29jb2FFdmVudFRleHRJbnB1dAotfSBOUENvY29hRXZlbnRUeXBlOwot
Ci10eXBlZGVmIHN0cnVjdCBfTlBOU1N0cmluZyBOUE5TU3RyaW5nOwotdHlwZWRlZiBzdHJ1Y3Qg
X05QTlNXaW5kb3cgTlBOU1dpbmRvdzsKLXR5cGVkZWYgc3RydWN0IF9OUE5TTWVudSBOUE5TTWVu
dTsKLQotdHlwZWRlZiBzdHJ1Y3QgX05QQ29jb2FFdmVudCB7Ci0gICAgTlBDb2NvYUV2ZW50VHlw
ZSB0eXBlOwotICAgIHVpbnQzMl90IHZlcnNpb247Ci0gICAgCi0gICAgdW5pb24gewotICAgICAg
ICBzdHJ1Y3QgewotICAgICAgICAgICAgdWludDMyX3QgbW9kaWZpZXJGbGFnczsKLSAgICAgICAg
ICAgIGRvdWJsZSBwbHVnaW5YOwotICAgICAgICAgICAgZG91YmxlIHBsdWdpblk7ICAgICAgICAg
ICAgCi0gICAgICAgICAgICBpbnQzMl90IGJ1dHRvbk51bWJlcjsKLSAgICAgICAgICAgIGludDMy
X3QgY2xpY2tDb3VudDsKLSAgICAgICAgICAgIGRvdWJsZSBkZWx0YVg7Ci0gICAgICAgICAgICBk
b3VibGUgZGVsdGFZOwotICAgICAgICAgICAgZG91YmxlIGRlbHRhWjsKLSAgICAgICAgfSBtb3Vz
ZTsKLSAgICAgICAgc3RydWN0IHsKLSAgICAgICAgICAgIHVpbnQzMl90IG1vZGlmaWVyRmxhZ3M7
Ci0gICAgICAgICAgICBOUE5TU3RyaW5nICpjaGFyYWN0ZXJzOwotICAgICAgICAgICAgTlBOU1N0
cmluZyAqY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOwotICAgICAgICAgICAgTlBCb29sIGlz
QVJlcGVhdDsKLSAgICAgICAgICAgIHVpbnQxNl90IGtleUNvZGU7Ci0gICAgICAgIH0ga2V5Owot
ICAgICAgICBzdHJ1Y3QgewotICAgICAgICAgICAgQ0dDb250ZXh0UmVmIGNvbnRleHQ7Ci0KLSAg
ICAgICAgICAgIGRvdWJsZSB4OwotICAgICAgICAgICAgZG91YmxlIHk7Ci0gICAgICAgICAgICBk
b3VibGUgd2lkdGg7Ci0gICAgICAgICAgICBkb3VibGUgaGVpZ2h0OwotICAgICAgICB9IGRyYXc7
Ci0gICAgICAgIHN0cnVjdCB7Ci0gICAgICAgICAgICBOUEJvb2wgaGFzRm9jdXM7Ci0gICAgICAg
IH0gZm9jdXM7Ci0gICAgICAgIHN0cnVjdCB7Ci0gICAgICAgICAgICBOUE5TU3RyaW5nICp0ZXh0
OwotICAgICAgICB9IHRleHQ7Ci0gICAgfSBkYXRhOwotfSBOUENvY29hRXZlbnQ7Ci0KLSNlbmRp
ZgotCiB0eXBlZGVmIHN0cnVjdCBfTlBXaW5kb3cKIHsKLSAgICB2b2lkKiAgICB3aW5kb3c7ICAg
ICAvKiBQbGF0Zm9ybSBzcGVjaWZpYyB3aW5kb3cgaGFuZGxlICovCi0gICAgaW50MzJfdCAgeDsg
ICAgICAgICAgICAvKiBQb3NpdGlvbiBvZiB0b3AgbGVmdCBjb3JuZXIgcmVsYXRpdmUgKi8KLSAg
ICBpbnQzMl90ICB5OyAgICAgICAgICAgIC8qICAgIHRvIGEgbmV0c2NhcGUgcGFnZS4gICAgICAg
ICAgICAgICAgICAgICovCi0gICAgdWludDMyX3QgIHdpZHRoOyAgICAgICAgLyogTWF4aW11bSB3
aW5kb3cgc2l6ZSAqLwotICAgIHVpbnQzMl90ICBoZWlnaHQ7Ci0gICAgTlBSZWN0ICAgIGNsaXBS
ZWN0OyAgICAvKiBDbGlwcGluZyByZWN0YW5nbGUgaW4gcG9ydCBjb29yZGluYXRlcyAqLwotICAg
ICAgICAgICAgICAgICAgICAgICAgLyogVXNlZCBieSBNQUMgb25seS4gICAgICAgICAgICAgICov
CisgIHZvaWQqIHdpbmRvdzsgIC8qIFBsYXRmb3JtIHNwZWNpZmljIHdpbmRvdyBoYW5kbGUgKi8K
KyAgICAgICAgICAgICAgICAgLyogT1MvMjogeCAtIFBvc2l0aW9uIG9mIGJvdHRvbSBsZWZ0IGNv
cm5lciAqLworICAgICAgICAgICAgICAgICAvKiBPUy8yOiB5IC0gcmVsYXRpdmUgdG8gdmlzaWJs
ZSBuZXRzY2FwZSB3aW5kb3cgKi8KKyAgaW50MzJfdCAgeDsgICAgICAvKiBQb3NpdGlvbiBvZiB0
b3AgbGVmdCBjb3JuZXIgcmVsYXRpdmUgKi8KKyAgaW50MzJfdCAgeTsgICAgICAvKiB0byBhIG5l
dHNjYXBlIHBhZ2UuICovCisgIHVpbnQzMl90IHdpZHRoOyAgLyogTWF4aW11bSB3aW5kb3cgc2l6
ZSAqLworICB1aW50MzJfdCBoZWlnaHQ7CisgIE5QUmVjdCAgIGNsaXBSZWN0OyAvKiBDbGlwcGlu
ZyByZWN0YW5nbGUgaW4gcG9ydCBjb29yZGluYXRlcyAqLwogI2lmIGRlZmluZWQoWFBfVU5JWCkg
fHwgZGVmaW5lZChYUF9TWU1CSUFOKQotICAgIHZvaWQgKiAgICB3c19pbmZvOyAgICAvKiBQbGF0
Zm9ybS1kZXBlbmRlbnQgYWRkaXRvbmFsIGRhdGEgKi8KKyAgdm9pZCAqIHdzX2luZm87IC8qIFBs
YXRmb3JtLWRlcGVuZGVudCBhZGRpdG9uYWwgZGF0YSAqLwogI2VuZGlmIC8qIFhQX1VOSVggfHwg
WFBfU1lNQklBTiAqLwotICAgIE5QV2luZG93VHlwZSB0eXBlOyAgICAvKiBJcyB0aGlzIGEgd2lu
ZG93IG9yIGEgZHJhd2FibGU/ICovCisgIE5QV2luZG93VHlwZSB0eXBlOyAvKiBJcyB0aGlzIGEg
d2luZG93IG9yIGEgZHJhd2FibGU/ICovCiB9IE5QV2luZG93OwogCi0KIHR5cGVkZWYgc3RydWN0
IF9OUEZ1bGxQcmludAogewotICAgIE5QQm9vbCAgICBwbHVnaW5QcmludGVkOyAgICAvKiBTZXQg
VFJVRSBpZiBwbHVnaW4gaGFuZGxlZCBmdWxsc2NyZWVuICovCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLyogICAgcHJpbnRpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0g
ICAgTlBCb29sICAgIHByaW50T25lOyAgICAgICAgLyogVFJVRSBpZiBwbHVnaW4gc2hvdWxkIHBy
aW50IG9uZSBjb3B5ICAqLwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgIHRvIGRl
ZmF1bHQgcHJpbnRlciAgICAgICAgICAgICAgICAgICAgICovCi0gICAgdm9pZCogICAgcGxhdGZv
cm1QcmludDsgICAgLyogUGxhdGZvcm0tc3BlY2lmaWMgcHJpbnRpbmcgaW5mbyAqLworICBOUEJv
b2wgcGx1Z2luUHJpbnRlZDsvKiBTZXQgVFJVRSBpZiBwbHVnaW4gaGFuZGxlZCBmdWxsc2NyZWVu
IHByaW50aW5nICovCisgIE5QQm9vbCBwcmludE9uZTsgICAgIC8qIFRSVUUgaWYgcGx1Z2luIHNo
b3VsZCBwcmludCBvbmUgY29weSB0byBkZWZhdWx0CisgICAgICAgICAgICAgICAgICAgICAgICAg
IHByaW50ZXIgKi8KKyAgdm9pZCogcGxhdGZvcm1QcmludDsgLyogUGxhdGZvcm0tc3BlY2lmaWMg
cHJpbnRpbmcgaW5mbyAqLwogfSBOUEZ1bGxQcmludDsKIAogdHlwZWRlZiBzdHJ1Y3QgX05QRW1i
ZWRQcmludAogewotICAgIE5QV2luZG93ICAgIHdpbmRvdzsKLSAgICB2b2lkKiAgICBwbGF0Zm9y
bVByaW50OyAgICAvKiBQbGF0Zm9ybS1zcGVjaWZpYyBwcmludGluZyBpbmZvICovCisgIE5QV2lu
ZG93IHdpbmRvdzsKKyAgdm9pZCogcGxhdGZvcm1QcmludDsgLyogUGxhdGZvcm0tc3BlY2lmaWMg
cHJpbnRpbmcgaW5mbyAqLwogfSBOUEVtYmVkUHJpbnQ7CiAKIHR5cGVkZWYgc3RydWN0IF9OUFBy
aW50CiB7Ci0gICAgdWludDE2X3QgICAgbW9kZTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBO
UF9GVUxMIG9yIE5QX0VNQkVEICovCi0gICAgdW5pb24KLSAgICB7Ci0gICAgICAgIE5QRnVsbFBy
aW50ICAgICBmdWxsUHJpbnQ7ICAgICAgICAvKiBpZiBtb2RlIGlzIE5QX0ZVTEwgKi8KLSAgICAg
ICAgTlBFbWJlZFByaW50ICAgIGVtYmVkUHJpbnQ7ICAgICAgICAvKiBpZiBtb2RlIGlzIE5QX0VN
QkVEICovCi0gICAgfSBwcmludDsKKyAgdWludDE2X3QgbW9kZTsgICAgICAgICAgICAgICAvKiBO
UF9GVUxMIG9yIE5QX0VNQkVEICovCisgIHVuaW9uCisgIHsKKyAgICBOUEZ1bGxQcmludCBmdWxs
UHJpbnQ7ICAgLyogaWYgbW9kZSBpcyBOUF9GVUxMICovCisgICAgTlBFbWJlZFByaW50IGVtYmVk
UHJpbnQ7IC8qIGlmIG1vZGUgaXMgTlBfRU1CRUQgKi8KKyAgfSBwcmludDsKIH0gTlBQcmludDsK
IAotI2lmZGVmIFhQX01BQ09TWAotdHlwZWRlZiBOUE5TTWVudSBOUE1lbnU7Ci0jZWxzZQotdHlw
ZWRlZiB2b2lkICogTlBNZW51OwotI2VuZGlmCi0KLXR5cGVkZWYgZW51bSB7Ci0gICAgTlBDb29y
ZGluYXRlU3BhY2VQbHVnaW4gPSAxLAotICAgIE5QQ29vcmRpbmF0ZVNwYWNlV2luZG93LAotICAg
IE5QQ29vcmRpbmF0ZVNwYWNlRmxpcHBlZFdpbmRvdywKLSAgICBOUENvb3JkaW5hdGVTcGFjZVNj
cmVlbiwKLSAgICBOUENvb3JkaW5hdGVTcGFjZUZsaXBwZWRTY3JlZW4KLX0gTlBDb29yZGluYXRl
U3BhY2U7Ci0KICNpZiBkZWZpbmVkKFhQX01BQykgfHwgZGVmaW5lZChYUF9NQUNPU1gpCi0KICNp
Zm5kZWYgTlBfTk9fQ0FSQk9OCi10eXBlZGVmIEV2ZW50UmVjb3JkICAgIE5QRXZlbnQ7Cit0eXBl
ZGVmIEV2ZW50UmVjb3JkIE5QRXZlbnQ7CiAjZW5kaWYKLQogI2VsaWYgZGVmaW5lZChYUF9TWU1C
SUFOKQogdHlwZWRlZiBRRXZlbnQgTlBFdmVudDsKICNlbGlmIGRlZmluZWQoWFBfV0lOKQogdHlw
ZWRlZiBzdHJ1Y3QgX05QRXZlbnQKIHsKLSAgICB1aW50MTZfdCAgIGV2ZW50OwotICAgIHVpbnRw
dHJfdCAgIHdQYXJhbTsKLSAgICB1aW50cHRyX3QgICBsUGFyYW07CisgIHVpbnQxNl90IGV2ZW50
OworICB1aW50cHRyX3Qgd1BhcmFtOworICB1aW50cHRyX3QgbFBhcmFtOwogfSBOUEV2ZW50Owog
I2VsaWYgZGVmaW5lZCAoWFBfVU5JWCkKIHR5cGVkZWYgWEV2ZW50IE5QRXZlbnQ7CiAjZWxzZQot
dHlwZWRlZiB2b2lkKiAgICAgICAgICAgIE5QRXZlbnQ7Ci0jZW5kaWYgLyogWFBfTUFDICovCit0
eXBlZGVmIHZvaWQqICBOUEV2ZW50OworI2VuZGlmCiAKICNpZiBkZWZpbmVkKFhQX01BQykKIHR5
cGVkZWYgUmduSGFuZGxlIE5QUmVnaW9uOwogI2VsaWYgZGVmaW5lZChYUF9NQUNPU1gpCi0vKiAK
LSAqIE5QUmVnaW9uJ3MgdHlwZSBkZXBlbmRzIG9uIHRoZSBkcmF3aW5nIG1vZGVsIHNwZWNpZmll
ZCBieSB0aGUgcGx1Z2luIChzZWUgTlBOVnBsdWdpbkRyYXdpbmdNb2RlbCkuCi0gKiBOUFFEUmVn
aW9uIHJlcHJlc2VudHMgYSBRdWlja0RyYXcgUmduSGFuZGxlIGFuZCBpcyB1c2VkIHdpdGggdGhl
IFF1aWNrRHJhdyBkcmF3aW5nIG1vZGVsLgotICogTlBDR1JlZ2lvbiByZXBlc2VudHMgYSBncmFw
aGljYWwgcmVnaW9uIHdoZW4gdXNpbmcgYW55IG90aGVyIGRyYXdpbmcgbW9kZWwuCi0gKi8KIHR5
cGVkZWYgdm9pZCAqTlBSZWdpb247CiAjaWZuZGVmIE5QX05PX1FVSUNLRFJBVwogdHlwZWRlZiBS
Z25IYW5kbGUgTlBRRFJlZ2lvbjsKQEAgLTU4Niw5NCArNDY5LDE0NiBAQCB0eXBlZGVmIFJlZ2lv
biBOUFJlZ2lvbjsKIHR5cGVkZWYgUVJlZ2lvbiogTlBSZWdpb247CiAjZWxzZQogdHlwZWRlZiB2
b2lkICpOUFJlZ2lvbjsKLSNlbmRpZiAvKiBYUF9NQUMgKi8KKyNlbmRpZgorCit0eXBlZGVmIHN0
cnVjdCBfTlBOU1N0cmluZyBOUE5TU3RyaW5nOwordHlwZWRlZiBzdHJ1Y3QgX05QTlNXaW5kb3cg
TlBOU1dpbmRvdzsKK3R5cGVkZWYgc3RydWN0IF9OUE5TTWVudSAgIE5QTlNNZW51OworCisjaWZk
ZWYgWFBfTUFDT1NYCit0eXBlZGVmIE5QTlNNZW51IE5QTWVudTsKKyNlbHNlCit0eXBlZGVmIHZv
aWQgKk5QTWVudTsKKyNlbmRpZgorCit0eXBlZGVmIGVudW0geworICBOUENvb3JkaW5hdGVTcGFj
ZVBsdWdpbiA9IDEsCisgIE5QQ29vcmRpbmF0ZVNwYWNlV2luZG93LAorICBOUENvb3JkaW5hdGVT
cGFjZUZsaXBwZWRXaW5kb3csCisgIE5QQ29vcmRpbmF0ZVNwYWNlU2NyZWVuLAorICBOUENvb3Jk
aW5hdGVTcGFjZUZsaXBwZWRTY3JlZW4KK30gTlBDb29yZGluYXRlU3BhY2U7CiAKICNpZmRlZiBY
UF9NQUNPU1gKIAotLyogCisjaWZuZGVmIE5QX05PX1FVSUNLRFJBVwordHlwZWRlZiBzdHJ1Y3Qg
TlBfUG9ydAoreworICBDR3JhZlB0ciBwb3J0OworICBpbnQzMl90IHBvcnR4OyAvKiBwb3NpdGlv
biBpbnNpZGUgdGhlIHRvcG1vc3Qgd2luZG93ICovCisgIGludDMyX3QgcG9ydHk7Cit9IE5QX1Bv
cnQ7CisjZW5kaWYgLyogTlBfTk9fUVVJQ0tEUkFXICovCisKKy8qCiAgKiBOUF9DR0NvbnRleHQg
aXMgdGhlIHR5cGUgb2YgdGhlIE5QV2luZG93J3MgJ3dpbmRvdycgd2hlbiB0aGUgcGx1Z2luIHNw
ZWNpZmllcyBOUERyYXdpbmdNb2RlbENvcmVHcmFwaGljcwogICogYXMgaXRzIGRyYXdpbmcgbW9k
ZWwuCiAgKi8KIAogdHlwZWRlZiBzdHJ1Y3QgTlBfQ0dDb250ZXh0CiB7Ci0gICAgQ0dDb250ZXh0
UmVmIGNvbnRleHQ7CisgIENHQ29udGV4dFJlZiBjb250ZXh0OwogI2lmZGVmIE5QX05PX0NBUkJP
TgotICAgIE5QTlNXaW5kb3cgKndpbmRvdzsKKyAgTlBOU1dpbmRvdyAqd2luZG93OwogI2Vsc2UK
LSAgICB2b2lkICp3aW5kb3c7IC8vIENhbiBiZSBlaXRoZXIgYW4gTlNXaW5kb3cgb3IgYSBXaW5k
b3dSZWYgZGVwZW5kaW5nIG9uIHRoZSBldmVudCBtb2RlbAorICB2b2lkICp3aW5kb3c7IC8qIEEg
V2luZG93UmVmIG9yIE5VTEwgZm9yIHRoZSBDb2NvYSBldmVudCBtb2RlbC4gKi8KICNlbmRpZgog
fSBOUF9DR0NvbnRleHQ7CiAKLS8qIAorLyoKICAqIE5QX0dMQ29udGV4dCBpcyB0aGUgdHlwZSBv
ZiB0aGUgTlBXaW5kb3cncyAnd2luZG93JyB3aGVuIHRoZSBwbHVnaW4gc3BlY2lmaWVzIE5QRHJh
d2luZ01vZGVsT3BlbkdMIGFzIGl0cwogICogZHJhd2luZyBtb2RlbC4KICAqLwogCiB0eXBlZGVm
IHN0cnVjdCBOUF9HTENvbnRleHQKIHsKLSAgICBDR0xDb250ZXh0T2JqIGNvbnRleHQ7CisgIENH
TENvbnRleHRPYmogY29udGV4dDsKICNpZmRlZiBOUF9OT19DQVJCT04KLSAgICBOUE5TV2luZG93
ICp3aW5kb3c7CisgIE5QTlNXaW5kb3cgKndpbmRvdzsKICNlbHNlCi0gICAgdm9pZCAqd2luZG93
OyAvLyBDYW4gYmUgZWl0aGVyIGFuIE5TV2luZG93IG9yIGEgV2luZG93UmVmIGRlcGVuZGluZyBv
biB0aGUgZXZlbnQgbW9kZWwKKyAgdm9pZCAqd2luZG93OyAvKiBDYW4gYmUgZWl0aGVyIGFuIE5T
V2luZG93IG9yIGEgV2luZG93UmVmIGRlcGVuZGluZyBvbiB0aGUgZXZlbnQgbW9kZWwgKi8KICNl
bmRpZgogfSBOUF9HTENvbnRleHQ7CiAKLSNlbmRpZiAvKiBYUF9NQUNPU1ggKi8KLQotI2lmIGRl
ZmluZWQoWFBfTUFDKSB8fCBkZWZpbmVkKFhQX01BQ09TWCkKLQotLyoKLSAqICBNYWMtc3BlY2lm
aWMgc3RydWN0dXJlcyBhbmQgZGVmaW5pdGlvbnMuCi0gKi8KLQotI2lmbmRlZiBOUF9OT19RVUlD
S0RSQVcKK3R5cGVkZWYgZW51bSB7CisgIE5QQ29jb2FFdmVudERyYXdSZWN0ID0gMSwKKyAgTlBD
b2NvYUV2ZW50TW91c2VEb3duLAorICBOUENvY29hRXZlbnRNb3VzZVVwLAorICBOUENvY29hRXZl
bnRNb3VzZU1vdmVkLAorICBOUENvY29hRXZlbnRNb3VzZUVudGVyZWQsCisgIE5QQ29jb2FFdmVu
dE1vdXNlRXhpdGVkLAorICBOUENvY29hRXZlbnRNb3VzZURyYWdnZWQsCisgIE5QQ29jb2FFdmVu
dEtleURvd24sCisgIE5QQ29jb2FFdmVudEtleVVwLAorICBOUENvY29hRXZlbnRGbGFnc0NoYW5n
ZWQsCisgIE5QQ29jb2FFdmVudEZvY3VzQ2hhbmdlZCwKKyAgTlBDb2NvYUV2ZW50V2luZG93Rm9j
dXNDaGFuZ2VkLAorICBOUENvY29hRXZlbnRTY3JvbGxXaGVlbCwKKyAgTlBDb2NvYUV2ZW50VGV4
dElucHV0Cit9IE5QQ29jb2FFdmVudFR5cGU7CiAKLS8qIAotICogTlBfUG9ydCBpcyB0aGUgdHlw
ZSBvZiB0aGUgTlBXaW5kb3cncyAnd2luZG93JyB3aGVuIHRoZSBwbHVnaW4gc3BlY2lmaWVzIE5Q
RHJhd2luZ01vZGVsUXVpY2tEcmF3IGFzIGl0cwotICogZHJhd2luZyBtb2RlbCwgb3IgdGhlIHBs
dWdpbiBkb2VzIG5vdCBzcGVjaWZ5IGEgZHJhd2luZyBtb2RlbC4KLSAqCi0gKiBJdCBpcyBub3Qg
cmVjb21tZW5kZWQgdGhhdCBuZXcgcGx1Z2lucyB1c2UgTlBEcmF3aW5nTW9kZWxRdWlja0RyYXcg
b3IgTlBfUG9ydCwgYXMgUXVpY2tEcmF3IGhhcyBiZWVuCi0gKiBkZXByZWNhdGVkIGluIE1hYyBP
UyBYIDEwLjUuICBDb3JlR3JhcGhpY3MgaXMgdGhlIHByZWZlcnJlZCBkcmF3aW5nIEFQSS4KLSAq
Ci0gKiBOUF9Qb3J0IGlzIG5vdCBhdmFpbGFibGUgaW4gNjQtYml0LgotICovCi0gCi10eXBlZGVm
IHN0cnVjdCBOUF9Qb3J0Ci17Ci0gICAgQ0dyYWZQdHIgICAgIHBvcnQ7ICAgICAgICAvKiBHcmFm
cG9ydCAqLwotICAgIGludDMyX3QgICAgICBwb3J0eDsgICAgICAgIC8qIHBvc2l0aW9uIGluc2lk
ZSB0aGUgdG9wbW9zdCB3aW5kb3cgKi8KLSAgICBpbnQzMl90ICAgICAgcG9ydHk7Ci19IE5QX1Bv
cnQ7Cit0eXBlZGVmIHN0cnVjdCBfTlBDb2NvYUV2ZW50IHsKKyAgTlBDb2NvYUV2ZW50VHlwZSB0
eXBlOworICB1aW50MzJfdCB2ZXJzaW9uOworICB1bmlvbiB7CisgICAgc3RydWN0IHsKKyAgICAg
IHVpbnQzMl90IG1vZGlmaWVyRmxhZ3M7CisgICAgICBkb3VibGUgICBwbHVnaW5YOworICAgICAg
ZG91YmxlICAgcGx1Z2luWTsKKyAgICAgIGludDMyX3QgIGJ1dHRvbk51bWJlcjsKKyAgICAgIGlu
dDMyX3QgIGNsaWNrQ291bnQ7CisgICAgICBkb3VibGUgICBkZWx0YVg7CisgICAgICBkb3VibGUg
ICBkZWx0YVk7CisgICAgICBkb3VibGUgICBkZWx0YVo7CisgICAgfSBtb3VzZTsKKyAgICBzdHJ1
Y3QgeworICAgICAgdWludDMyX3QgICAgbW9kaWZpZXJGbGFnczsKKyAgICAgIE5QTlNTdHJpbmcg
KmNoYXJhY3RlcnM7CisgICAgICBOUE5TU3RyaW5nICpjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmll
cnM7CisgICAgICBOUEJvb2wgICAgICBpc0FSZXBlYXQ7CisgICAgICB1aW50MTZfdCAgICBrZXlD
b2RlOworICAgIH0ga2V5OworICAgIHN0cnVjdCB7CisgICAgICBDR0NvbnRleHRSZWYgY29udGV4
dDsKKyAgICAgIGRvdWJsZSB4OworICAgICAgZG91YmxlIHk7CisgICAgICBkb3VibGUgd2lkdGg7
CisgICAgICBkb3VibGUgaGVpZ2h0OworICAgIH0gZHJhdzsKKyAgICBzdHJ1Y3QgeworICAgICAg
TlBCb29sIGhhc0ZvY3VzOworICAgIH0gZm9jdXM7CisgICAgc3RydWN0IHsKKyAgICAgIE5QTlNT
dHJpbmcgKnRleHQ7CisgICAgfSB0ZXh0OworICB9IGRhdGE7Cit9IE5QQ29jb2FFdmVudDsKIAot
I2VuZGlmIC8qIE5QX05PX1FVSUNLRFJBVyAqLworI2VuZGlmIC8qIFhQX01BQ09TWCAqLwogCi0v
KgotICogIE5vbi1zdGFuZGFyZCBldmVudCB0eXBlcyB0aGF0IGNhbiBiZSBwYXNzZWQgdG8gSGFu
ZGxlRXZlbnQKLSAqLworI2lmIGRlZmluZWQoWFBfTUFDKSB8fCBkZWZpbmVkKFhQX01BQ09TWCkK
Ky8qICBOb24tc3RhbmRhcmQgZXZlbnQgdHlwZXMgdGhhdCBjYW4gYmUgcGFzc2VkIHRvIEhhbmRs
ZUV2ZW50ICovCiAjZGVmaW5lIGdldEZvY3VzRXZlbnQgICAgICAgIChvc0V2dCArIDE2KQogI2Rl
ZmluZSBsb3NlRm9jdXNFdmVudCAgICAgICAgKG9zRXZ0ICsgMTcpCiAjZGVmaW5lIGFkanVzdEN1
cnNvckV2ZW50ICAgKG9zRXZ0ICsgMTgpCi0KICNlbmRpZiAvKiBYUF9NQUMgKi8KIAogCiAvKgog
ICogVmFsdWVzIGZvciBtb2RlIHBhc3NlZCB0byBOUFBfTmV3OgogICovCi0jZGVmaW5lIE5QX0VN
QkVEICAgICAgICAxCi0jZGVmaW5lIE5QX0ZVTEwgICAgICAgICAyCisjZGVmaW5lIE5QX0VNQkVE
IDEKKyNkZWZpbmUgTlBfRlVMTCAgMgogCiAvKgogICogVmFsdWVzIGZvciBzdHJlYW0gdHlwZSBw
YXNzZWQgdG8gTlBQX05ld1N0cmVhbToKICAqLwotI2RlZmluZSBOUF9OT1JNQUwgICAgICAgIDEK
LSNkZWZpbmUgTlBfU0VFSyAgICAgICAgIDIKLSNkZWZpbmUgTlBfQVNGSUxFICAgICAgICAzCi0j
ZGVmaW5lIE5QX0FTRklMRU9OTFkgICAgICAgIDQKKyNkZWZpbmUgTlBfTk9STUFMICAgICAxCisj
ZGVmaW5lIE5QX1NFRUsgICAgICAgMgorI2RlZmluZSBOUF9BU0ZJTEUgICAgIDMKKyNkZWZpbmUg
TlBfQVNGSUxFT05MWSA0CiAKLSNkZWZpbmUgTlBfTUFYUkVBRFkgICAgKCgodW5zaWduZWQpKH4w
KTw8MSk+PjEpCisjZGVmaW5lIE5QX01BWFJFQURZICgoKHVuc2lnbmVkKSh+MCk8PDEpPj4xKQog
CiAjaWYgIWRlZmluZWQoX19MUDY0X18pCiAjaWYgZGVmaW5lZChYUF9NQUMpIHx8IGRlZmluZWQo
WFBfTUFDT1NYKQpAQCAtNjgxLDQwICs2MTYsMzkgQEAgdHlwZWRlZiBzdHJ1Y3QgTlBfUG9ydAog
I2VuZGlmCiAjZW5kaWYgLyogX19MUDY0X18gKi8KIAotCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotLyog
ICAgICAgICAgICAgRXJyb3IgYW5kIFJlYXNvbiBDb2RlIGRlZmluaXRpb25zICAgICAgICAgICAg
Ki8KKy8qICAgICAgIEVycm9yIGFuZCBSZWFzb24gQ29kZSBkZWZpbml0aW9ucyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCiAvKgotICogICAgVmFs
dWVzIG9mIHR5cGUgTlBFcnJvcjoKKyAqIFZhbHVlcyBvZiB0eXBlIE5QRXJyb3I6CiAgKi8KLSNk
ZWZpbmUgTlBFUlJfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAwCi0jZGVmaW5lIE5Q
RVJSX05PX0VSUk9SICAgICAgICAgICAgICAgICAgICAgICAgKE5QRVJSX0JBU0UgKyAwKQotI2Rl
ZmluZSBOUEVSUl9HRU5FUklDX0VSUk9SICAgICAgICAgICAgICAgICAgICAoTlBFUlJfQkFTRSAr
IDEpCi0jZGVmaW5lIE5QRVJSX0lOVkFMSURfSU5TVEFOQ0VfRVJST1IgICAgICAgIChOUEVSUl9C
QVNFICsgMikKLSNkZWZpbmUgTlBFUlJfSU5WQUxJRF9GVU5DVEFCTEVfRVJST1IgICAgICAgIChO
UEVSUl9CQVNFICsgMykKLSNkZWZpbmUgTlBFUlJfTU9EVUxFX0xPQURfRkFJTEVEX0VSUk9SICAg
ICAgICAoTlBFUlJfQkFTRSArIDQpCi0jZGVmaW5lIE5QRVJSX09VVF9PRl9NRU1PUllfRVJST1Ig
ICAgICAgICAgICAoTlBFUlJfQkFTRSArIDUpCi0jZGVmaW5lIE5QRVJSX0lOVkFMSURfUExVR0lO
X0VSUk9SICAgICAgICAgICAgKE5QRVJSX0JBU0UgKyA2KQotI2RlZmluZSBOUEVSUl9JTlZBTElE
X1BMVUdJTl9ESVJfRVJST1IgICAgICAgIChOUEVSUl9CQVNFICsgNykKLSNkZWZpbmUgTlBFUlJf
SU5DT01QQVRJQkxFX1ZFUlNJT05fRVJST1IgICAgKE5QRVJSX0JBU0UgKyA4KQotI2RlZmluZSBO
UEVSUl9JTlZBTElEX1BBUkFNICAgICAgICAgICAgICAgIChOUEVSUl9CQVNFICsgOSkKLSNkZWZp
bmUgTlBFUlJfSU5WQUxJRF9VUkwgICAgICAgICAgICAgICAgICAgIChOUEVSUl9CQVNFICsgMTAp
Ci0jZGVmaW5lIE5QRVJSX0ZJTEVfTk9UX0ZPVU5EICAgICAgICAgICAgICAgIChOUEVSUl9CQVNF
ICsgMTEpCi0jZGVmaW5lIE5QRVJSX05PX0RBVEEgICAgICAgICAgICAgICAgICAgICAgICAoTlBF
UlJfQkFTRSArIDEyKQotI2RlZmluZSBOUEVSUl9TVFJFQU1fTk9UX1NFRUtBQkxFICAgICAgICAg
ICAgKE5QRVJSX0JBU0UgKyAxMykKLQotLyoKLSAqICAgIFZhbHVlcyBvZiB0eXBlIE5QUmVhc29u
OgotICovCi0jZGVmaW5lIE5QUkVTX0JBU0UgICAgICAgICAgICAgICAgMAotI2RlZmluZSBOUFJF
U19ET05FICAgICAgICAgICAgICAgICAgICAoTlBSRVNfQkFTRSArIDApCi0jZGVmaW5lIE5QUkVT
X05FVFdPUktfRVJSICAgICAgICAgICAgKE5QUkVTX0JBU0UgKyAxKQotI2RlZmluZSBOUFJFU19V
U0VSX0JSRUFLICAgICAgICAgICAgKE5QUkVTX0JBU0UgKyAyKQorI2RlZmluZSBOUEVSUl9CQVNF
ICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTlBFUlJfTk9fRVJST1IgICAgICAg
ICAgICAgICAgICAgIChOUEVSUl9CQVNFICsgMCkKKyNkZWZpbmUgTlBFUlJfR0VORVJJQ19FUlJP
UiAgICAgICAgICAgICAgIChOUEVSUl9CQVNFICsgMSkKKyNkZWZpbmUgTlBFUlJfSU5WQUxJRF9J
TlNUQU5DRV9FUlJPUiAgICAgIChOUEVSUl9CQVNFICsgMikKKyNkZWZpbmUgTlBFUlJfSU5WQUxJ
RF9GVU5DVEFCTEVfRVJST1IgICAgIChOUEVSUl9CQVNFICsgMykKKyNkZWZpbmUgTlBFUlJfTU9E
VUxFX0xPQURfRkFJTEVEX0VSUk9SICAgIChOUEVSUl9CQVNFICsgNCkKKyNkZWZpbmUgTlBFUlJf
T1VUX09GX01FTU9SWV9FUlJPUiAgICAgICAgIChOUEVSUl9CQVNFICsgNSkKKyNkZWZpbmUgTlBF
UlJfSU5WQUxJRF9QTFVHSU5fRVJST1IgICAgICAgIChOUEVSUl9CQVNFICsgNikKKyNkZWZpbmUg
TlBFUlJfSU5WQUxJRF9QTFVHSU5fRElSX0VSUk9SICAgIChOUEVSUl9CQVNFICsgNykKKyNkZWZp
bmUgTlBFUlJfSU5DT01QQVRJQkxFX1ZFUlNJT05fRVJST1IgIChOUEVSUl9CQVNFICsgOCkKKyNk
ZWZpbmUgTlBFUlJfSU5WQUxJRF9QQVJBTSAgICAgICAgICAgICAgIChOUEVSUl9CQVNFICsgOSkK
KyNkZWZpbmUgTlBFUlJfSU5WQUxJRF9VUkwgICAgICAgICAgICAgICAgIChOUEVSUl9CQVNFICsg
MTApCisjZGVmaW5lIE5QRVJSX0ZJTEVfTk9UX0ZPVU5EICAgICAgICAgICAgICAoTlBFUlJfQkFT
RSArIDExKQorI2RlZmluZSBOUEVSUl9OT19EQVRBICAgICAgICAgICAgICAgICAgICAgKE5QRVJS
X0JBU0UgKyAxMikKKyNkZWZpbmUgTlBFUlJfU1RSRUFNX05PVF9TRUVLQUJMRSAgICAgICAgIChO
UEVSUl9CQVNFICsgMTMpCisKKy8qCisgKiBWYWx1ZXMgb2YgdHlwZSBOUFJlYXNvbjoKKyAqLwor
I2RlZmluZSBOUFJFU19CQVNFICAgICAgICAgIDAKKyNkZWZpbmUgTlBSRVNfRE9ORSAgICAgICAg
IChOUFJFU19CQVNFICsgMCkKKyNkZWZpbmUgTlBSRVNfTkVUV09SS19FUlIgIChOUFJFU19CQVNF
ICsgMSkKKyNkZWZpbmUgTlBSRVNfVVNFUl9CUkVBSyAgIChOUFJFU19CQVNFICsgMikKIAogLyoK
LSAqICAgICAgRG9uJ3QgdXNlIHRoZXNlIG9ic29sZXRlIGVycm9yIGNvZGVzIGFueSBtb3JlLgor
ICogRG9uJ3QgdXNlIHRoZXNlIG9ic29sZXRlIGVycm9yIGNvZGVzIGFueSBtb3JlLgogICovCiAj
ZGVmaW5lIE5QX05PRVJSICBOUF9OT0VSUl9pc19vYnNvbGV0ZV91c2VfTlBFUlJfTk9fRVJST1IK
ICNkZWZpbmUgTlBfRUlOVkFMIE5QX0VJTlZBTF9pc19vYnNvbGV0ZV91c2VfTlBFUlJfR0VORVJJ
Q19FUlJPUgpAQCAtNzIzLDI3ICs2NTcsMjcgQEAgdHlwZWRlZiBzdHJ1Y3QgTlBfUG9ydAogLyoK
ICAqIFZlcnNpb24gZmVhdHVyZSBpbmZvcm1hdGlvbgogICovCi0jZGVmaW5lIE5QVkVSU19IQVNf
U1RSRUFNT1VUUFVUICAgICA4Ci0jZGVmaW5lIE5QVkVSU19IQVNfTk9USUZJQ0FUSU9OICAgICA5
Ci0jZGVmaW5lIE5QVkVSU19IQVNfTElWRUNPTk5FQ1QgICAgICAgIDkKLSNkZWZpbmUgTlBWRVJT
X1dJTjE2X0hBU19MSVZFQ09OTkVDVCAgICA5Ci0jZGVmaW5lIE5QVkVSU182OEtfSEFTX0xJVkVD
T05ORUNUICAgIDExCi0jZGVmaW5lIE5QVkVSU19IQVNfV0lORE9XTEVTUyAgICAgICAxMQotI2Rl
ZmluZSBOUFZFUlNfSEFTX1hQQ09OTkVDVF9TQ1JJUFRJTkcgICAgMTMgIC8qIE5vdCBpbXBsZW1l
bnRlZCBpbiBXZWJLaXQgKi8KLSNkZWZpbmUgTlBWRVJTX0hBU19OUFJVTlRJTUVfU0NSSVBUSU5H
ICAgIDE0Ci0jZGVmaW5lIE5QVkVSU19IQVNfRk9STV9WQUxVRVMgICAgICAgICAgICAxNSAgLyog
Tm90IGltcGxlbWVudGVkIGluIFdlYktpdDsgc2VlIGJ1ZyAxMzA2MSAqLwotI2RlZmluZSBOUFZF
UlNfSEFTX1BPUFVQU19FTkFCTEVEX1NUQVRFICAgMTYgIC8qIE5vdCBpbXBsZW1lbnRlZCBpbiBX
ZWJLaXQgKi8KLSNkZWZpbmUgTlBWRVJTX0hBU19SRVNQT05TRV9IRUFERVJTICAgICAgIDE3Ci0j
ZGVmaW5lIE5QVkVSU19IQVNfTlBPQkpFQ1RfRU5VTSAgICAgICAgICAxOAorI2RlZmluZSBOUFZF
UlNfSEFTX1NUUkVBTU9VVFBVVCAgICAgICAgICAgICA4CisjZGVmaW5lIE5QVkVSU19IQVNfTk9U
SUZJQ0FUSU9OICAgICAgICAgICAgIDkKKyNkZWZpbmUgTlBWRVJTX0hBU19MSVZFQ09OTkVDVCAg
ICAgICAgICAgICAgOQorI2RlZmluZSBOUFZFUlNfV0lOMTZfSEFTX0xJVkVDT05ORUNUICAgICAg
ICA5CisjZGVmaW5lIE5QVkVSU182OEtfSEFTX0xJVkVDT05ORUNUICAgICAgICAgIDExCisjZGVm
aW5lIE5QVkVSU19IQVNfV0lORE9XTEVTUyAgICAgICAgICAgICAgIDExCisjZGVmaW5lIE5QVkVS
U19IQVNfWFBDT05ORUNUX1NDUklQVElORyAgICAgIDEzICAvKiBOb3QgaW1wbGVtZW50ZWQgaW4g
V2ViS2l0ICovCisjZGVmaW5lIE5QVkVSU19IQVNfTlBSVU5USU1FX1NDUklQVElORyAgICAgIDE0
CisjZGVmaW5lIE5QVkVSU19IQVNfRk9STV9WQUxVRVMgICAgICAgICAgICAgIDE1ICAvKiBOb3Qg
aW1wbGVtZW50ZWQgaW4gV2ViS2l0OyBzZWUgYnVnIDEzMDYxICovCisjZGVmaW5lIE5QVkVSU19I
QVNfUE9QVVBTX0VOQUJMRURfU1RBVEUgICAgIDE2ICAvKiBOb3QgaW1wbGVtZW50ZWQgaW4gV2Vi
S2l0ICovCisjZGVmaW5lIE5QVkVSU19IQVNfUkVTUE9OU0VfSEVBREVSUyAgICAgICAgIDE3Cisj
ZGVmaW5lIE5QVkVSU19IQVNfTlBPQkpFQ1RfRU5VTSAgICAgICAgICAgIDE4CiAjZGVmaW5lIE5Q
VkVSU19IQVNfUExVR0lOX1RIUkVBRF9BU1lOQ19DQUxMIDE5Ci0jZGVmaW5lIE5QVkVSU19IQVNf
QUxMX05FVFdPUktfU1RSRUFNUyAgICAyMAotI2RlZmluZSBOUFZFUlNfSEFTX1VSTF9BTkRfQVVU
SF9JTkZPICAgICAgMjEKLSNkZWZpbmUgTlBWRVJTX0hBU19QUklWQVRFX01PREUgICAgICAgICAg
IDIyCi0jZGVmaW5lIE5QVkVSU19NQUNPU1hfSEFTX0VWRU5UX01PREVMUyAgICAyMwotI2RlZmlu
ZSBOUFZFUlNfSEFTX0NBTkNFTF9TUkNfU1RSRUFNICAgICAgMjQKKyNkZWZpbmUgTlBWRVJTX0hB
U19BTExfTkVUV09SS19TVFJFQU1TICAgICAgMjAKKyNkZWZpbmUgTlBWRVJTX0hBU19VUkxfQU5E
X0FVVEhfSU5GTyAgICAgICAgMjEKKyNkZWZpbmUgTlBWRVJTX0hBU19QUklWQVRFX01PREUgICAg
ICAgICAgICAgMjIKKyNkZWZpbmUgTlBWRVJTX01BQ09TWF9IQVNfRVZFTlRfTU9ERUxTICAgICAg
MjMKKyNkZWZpbmUgTlBWRVJTX0hBU19DQU5DRUxfU1JDX1NUUkVBTSAgICAgICAgMjQKIAogLyot
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tKi8KLS8qICAgICAgICAgICAgIEZ1bmN0aW9uIFByb3RvdHlwZXMgICAgICAg
ICAgICAgICAgKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgRnVuY3Rpb24gUHJvdG90eXBl
cyAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCiAjaWYg
ZGVmaW5lZChfV0lORE9XUykgJiYgIWRlZmluZWQoV0lOMzIpCkBAIC03NTYsOTEgKzY5MCwxMDAg
QEAgdHlwZWRlZiBzdHJ1Y3QgTlBfUG9ydAogZXh0ZXJuICJDIiB7CiAjZW5kaWYKIAotLyoKLSAq
IE5QUF8qIGZ1bmN0aW9ucyBhcmUgcHJvdmlkZWQgYnkgdGhlIHBsdWdpbiBhbmQgY2FsbGVkIGJ5
IHRoZSBuYXZpZ2F0b3IuCi0gKi8KKy8qIE5QUF8qIGZ1bmN0aW9ucyBhcmUgcHJvdmlkZWQgYnkg
dGhlIHBsdWdpbiBhbmQgY2FsbGVkIGJ5IHRoZSBuYXZpZ2F0b3IuICovCiAKICNpZmRlZiBYUF9V
TklYCi1jaGFyKiAgICAgICAgICAgICAgICAgICAgTlBQX0dldE1JTUVEZXNjcmlwdGlvbih2b2lk
KTsKLSNlbmRpZiAvKiBYUF9VTklYICovCitjaGFyKiBOUFBfR2V0TUlNRURlc2NyaXB0aW9uKHZv
aWQpOworI2VuZGlmCiAKLU5QRXJyb3IgICAgIE5QUF9Jbml0aWFsaXplKHZvaWQpOwotdm9pZCAg
ICAgICAgTlBQX1NodXRkb3duKHZvaWQpOwotTlBFcnJvciAgICAgTlBfTE9BRERTICAgIE5QUF9O
ZXcoTlBNSU1FVHlwZSBwbHVnaW5UeXBlLCBOUFAgaW5zdGFuY2UsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHVpbnQxNl90IG1vZGUsIGludDE2X3QgYXJnYywgY2hhciogYXJnbltd
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyKiBhcmd2W10sIE5QU2F2ZWRE
YXRhKiBzYXZlZCk7Ci1OUEVycm9yICAgICBOUF9MT0FERFMgICAgTlBQX0Rlc3Ryb3koTlBQIGlu
c3RhbmNlLCBOUFNhdmVkRGF0YSoqIHNhdmUpOwotTlBFcnJvciAgICAgTlBfTE9BRERTICAgIE5Q
UF9TZXRXaW5kb3coTlBQIGluc3RhbmNlLCBOUFdpbmRvdyogd2luZG93KTsKLU5QRXJyb3IgICAg
IE5QX0xPQUREUyAgICBOUFBfTmV3U3RyZWFtKE5QUCBpbnN0YW5jZSwgTlBNSU1FVHlwZSB0eXBl
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOUFN0cmVhbSogc3RyZWFt
LCBOUEJvb2wgc2Vla2FibGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHVpbnQxNl90KiBzdHlwZSk7Ci1OUEVycm9yICAgICBOUF9MT0FERFMgICAgTlBQX0Rlc3Ryb3lT
dHJlYW0oTlBQIGluc3RhbmNlLCBOUFN0cmVhbSogc3RyZWFtLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgTlBSZWFzb24gcmVhc29uKTsKLWludDMyX3QgICAgIE5Q
X0xPQUREUyAgICBOUFBfV3JpdGVSZWFkeShOUFAgaW5zdGFuY2UsIE5QU3RyZWFtKiBzdHJlYW0p
OwotaW50MzJfdCAgICAgTlBfTE9BRERTICAgIE5QUF9Xcml0ZShOUFAgaW5zdGFuY2UsIE5QU3Ry
ZWFtKiBzdHJlYW0sIGludDMyX3Qgb2Zmc2V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGludDMyX3QgbGVuLCB2b2lkKiBidWZmZXIpOwotdm9pZCAgICAgICAgTlBfTE9BRERT
ICAgIE5QUF9TdHJlYW1Bc0ZpbGUoTlBQIGluc3RhbmNlLCBOUFN0cmVhbSogc3RyZWFtLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBmbmFtZSk7
Ci12b2lkICAgICAgICBOUF9MT0FERFMgICAgTlBQX1ByaW50KE5QUCBpbnN0YW5jZSwgTlBQcmlu
dCogcGxhdGZvcm1QcmludCk7Ci1pbnQxNl90ICAgICAgICAgICAgTlBQX0hhbmRsZUV2ZW50KE5Q
UCBpbnN0YW5jZSwgdm9pZCogZXZlbnQpOwotdm9pZCAgICAgICAgTlBfTE9BRERTICAgIE5QUF9V
UkxOb3RpZnkoTlBQIGluc3RhbmNlLCBjb25zdCBjaGFyKiB1cmwsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIE5QUmVhc29uIHJlYXNvbiwgdm9pZCogbm90aWZ5RGF0YSk7
Ci1qcmVmICAgICAgICBOUF9MT0FERFMgICAgICAgICAgICBOUFBfR2V0SmF2YUNsYXNzKHZvaWQp
OwotTlBFcnJvciAgICAgTlBQX0dldFZhbHVlKE5QUCBpbnN0YW5jZSwgTlBQVmFyaWFibGUgdmFy
aWFibGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqdmFsdWUp
OwotTlBFcnJvciAgICAgTlBQX1NldFZhbHVlKE5QUCBpbnN0YW5jZSwgTlBOVmFyaWFibGUgdmFy
aWFibGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqdmFsdWUp
OwotCi0vKgotICogTlBOXyogZnVuY3Rpb25zIGFyZSBwcm92aWRlZCBieSB0aGUgbmF2aWdhdG9y
IGFuZCBjYWxsZWQgYnkgdGhlIHBsdWdpbi4KLSAqLwotCi12b2lkICAgICAgICBOUE5fVmVyc2lv
bihpbnQqIHBsdWdpbl9tYWpvciwgaW50KiBwbHVnaW5fbWlub3IsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW50KiBuZXRzY2FwZV9tYWpvciwgaW50KiBuZXRzY2FwZV9taW5vcik7Ci1O
UEVycm9yICAgICBOUE5fR2V0VVJMTm90aWZ5KE5QUCBpbnN0YW5jZSwgY29uc3QgY2hhciogdXJs
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogdGFyZ2V0LCB2
b2lkKiBub3RpZnlEYXRhKTsKLU5QRXJyb3IgICAgIE5QTl9HZXRVUkwoTlBQIGluc3RhbmNlLCBj
b25zdCBjaGFyKiB1cmwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiB0
YXJnZXQpOwotTlBFcnJvciAgICAgTlBOX1Bvc3RVUkxOb3RpZnkoTlBQIGluc3RhbmNlLCBjb25z
dCBjaGFyKiB1cmwsCitOUEVycm9yICAgICAgICAgICBOUFBfSW5pdGlhbGl6ZSh2b2lkKTsKK3Zv
aWQgICAgICAgICAgICAgIE5QUF9TaHV0ZG93bih2b2lkKTsKK05QRXJyb3IgTlBfTE9BRERTIE5Q
UF9OZXcoTlBNSU1FVHlwZSBwbHVnaW5UeXBlLCBOUFAgaW5zdGFuY2UsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVpbnQxNl90IG1vZGUsIGludDE2X3QgYXJnYywgY2hhciogYXJnbltdLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyKiBhcmd2W10sIE5QU2F2ZWREYXRhKiBzYXZl
ZCk7CitOUEVycm9yIE5QX0xPQUREUyBOUFBfRGVzdHJveShOUFAgaW5zdGFuY2UsIE5QU2F2ZWRE
YXRhKiogc2F2ZSk7CitOUEVycm9yIE5QX0xPQUREUyBOUFBfU2V0V2luZG93KE5QUCBpbnN0YW5j
ZSwgTlBXaW5kb3cqIHdpbmRvdyk7CitOUEVycm9yIE5QX0xPQUREUyBOUFBfTmV3U3RyZWFtKE5Q
UCBpbnN0YW5jZSwgTlBNSU1FVHlwZSB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBOUFN0cmVhbSogc3RyZWFtLCBOUEJvb2wgc2Vla2FibGUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHVpbnQxNl90KiBzdHlwZSk7CitOUEVycm9yIE5QX0xPQUREUyBOUFBf
RGVzdHJveVN0cmVhbShOUFAgaW5zdGFuY2UsIE5QU3RyZWFtKiBzdHJlYW0sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBOUFJlYXNvbiByZWFzb24pOworaW50MzJfdCBOUF9M
T0FERFMgTlBQX1dyaXRlUmVhZHkoTlBQIGluc3RhbmNlLCBOUFN0cmVhbSogc3RyZWFtKTsKK2lu
dDMyX3QgTlBfTE9BRERTIE5QUF9Xcml0ZShOUFAgaW5zdGFuY2UsIE5QU3RyZWFtKiBzdHJlYW0s
IGludDMyX3Qgb2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgbGVu
LCB2b2lkKiBidWZmZXIpOwordm9pZCAgICBOUF9MT0FERFMgTlBQX1N0cmVhbUFzRmlsZShOUFAg
aW5zdGFuY2UsIE5QU3RyZWFtKiBzdHJlYW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IGNoYXIqIGZuYW1lKTsKK3ZvaWQgICAgTlBfTE9BRERTIE5QUF9QcmludChO
UFAgaW5zdGFuY2UsIE5QUHJpbnQqIHBsYXRmb3JtUHJpbnQpOworaW50MTZfdCAgICAgICAgICAg
TlBQX0hhbmRsZUV2ZW50KE5QUCBpbnN0YW5jZSwgdm9pZCogZXZlbnQpOwordm9pZCAgICBOUF9M
T0FERFMgTlBQX1VSTE5vdGlmeShOUFAgaW5zdGFuY2UsIGNvbnN0IGNoYXIqIHVybCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTlBSZWFzb24gcmVhc29uLCB2b2lkKiBub3RpZnlE
YXRhKTsKK2pyZWYgICAgTlBfTE9BRERTIE5QUF9HZXRKYXZhQ2xhc3Modm9pZCk7CitOUEVycm9y
ICAgICAgICAgICBOUFBfR2V0VmFsdWUoTlBQIGluc3RhbmNlLCBOUFBWYXJpYWJsZSB2YXJpYWJs
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICp2YWx1ZSk7CitOUEVycm9y
ICAgICAgICAgICBOUFBfU2V0VmFsdWUoTlBQIGluc3RhbmNlLCBOUE5WYXJpYWJsZSB2YXJpYWJs
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICp2YWx1ZSk7CisKKy8qIE5Q
Tl8qIGZ1bmN0aW9ucyBhcmUgcHJvdmlkZWQgYnkgdGhlIG5hdmlnYXRvciBhbmQgY2FsbGVkIGJ5
IHRoZSBwbHVnaW4uICovCit2b2lkICAgICAgICAgICAgICAgICAgTlBOX1ZlcnNpb24oaW50KiBw
bHVnaW5fbWFqb3IsIGludCogcGx1Z2luX21pbm9yLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGludCogbmV0c2NhcGVfbWFqb3IsIGludCogbmV0c2NhcGVfbWlub3IpOworTlBF
cnJvciAgICAgICAgICAgICAgIE5QTl9HZXRVUkxOb3RpZnkoTlBQIGluc3RhbmNlLCBjb25zdCBj
aGFyKiB1cmwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBj
aGFyKiB0YXJnZXQsIHZvaWQqIG5vdGlmeURhdGEpOworTlBFcnJvciAgICAgICAgICAgICAgIE5Q
Tl9HZXRVUkwoTlBQIGluc3RhbmNlLCBjb25zdCBjaGFyKiB1cmwsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiB0YXJnZXQpOworTlBFcnJvciAgICAgICAgICAg
ICAgIE5QTl9Qb3N0VVJMTm90aWZ5KE5QUCBpbnN0YW5jZSwgY29uc3QgY2hhciogdXJsLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHRhcmdldCwg
dWludDMyX3QgbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IGNoYXIqIGJ1ZiwgTlBCb29sIGZpbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdm9pZCogbm90aWZ5RGF0YSk7CitOUEVycm9yICAgICAgICAgICAgICAgTlBO
X1Bvc3RVUkwoTlBQIGluc3RhbmNlLCBjb25zdCBjaGFyKiB1cmwsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogdGFyZ2V0LCB1aW50MzJfdCBsZW4sCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogYnVmLCBOUEJvb2wgZmls
ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiBub3RpZnlEYXRhKTsK
LU5QRXJyb3IgICAgIE5QTl9Qb3N0VVJMKE5QUCBpbnN0YW5jZSwgY29uc3QgY2hhciogdXJsLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHRhcmdldCwgdWludDMyX3Qg
bGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGJ1ZiwgTlBCb29s
IGZpbGUpOwotTlBFcnJvciAgICAgTlBOX1JlcXVlc3RSZWFkKE5QU3RyZWFtKiBzdHJlYW0sIE5Q
Qnl0ZVJhbmdlKiByYW5nZUxpc3QpOwotTlBFcnJvciAgICAgTlBOX05ld1N0cmVhbShOUFAgaW5z
dGFuY2UsIE5QTUlNRVR5cGUgdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IGNoYXIqIHRhcmdldCwgTlBTdHJlYW0qKiBzdHJlYW0pOwotaW50MzJfdCAgICAgTlBOX1dy
aXRlKE5QUCBpbnN0YW5jZSwgTlBTdHJlYW0qIHN0cmVhbSwgaW50MzJfdCBsZW4sCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgIHZvaWQqIGJ1ZmZlcik7Ci1OUEVycm9yICAgICBOUE5fRGVzdHJv
eVN0cmVhbShOUFAgaW5zdGFuY2UsIE5QU3RyZWFtKiBzdHJlYW0sCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgTlBSZWFzb24gcmVhc29uKTsKLXZvaWQgICAgICAgIE5QTl9TdGF0
dXMoTlBQIGluc3RhbmNlLCBjb25zdCBjaGFyKiBtZXNzYWdlKTsKLWNvbnN0IGNoYXIqICAgIE5Q
Tl9Vc2VyQWdlbnQoTlBQIGluc3RhbmNlKTsKLXZvaWQqICAgICAgICBOUE5fTWVtQWxsb2ModWlu
dDMyX3Qgc2l6ZSk7Ci12b2lkICAgICAgICBOUE5fTWVtRnJlZSh2b2lkKiBwdHIpOwotdWludDMy
X3QgICAgICBOUE5fTWVtRmx1c2godWludDMyX3Qgc2l6ZSk7Ci12b2lkICAgICAgICBOUE5fUmVs
b2FkUGx1Z2lucyhOUEJvb2wgcmVsb2FkUGFnZXMpOwotSlJJRW52KiAgICAgTlBOX0dldEphdmFF
bnYodm9pZCk7Ci1qcmVmICAgICAgICBOUE5fR2V0SmF2YVBlZXIoTlBQIGluc3RhbmNlKTsKLU5Q
RXJyb3IgICAgIE5QTl9HZXRWYWx1ZShOUFAgaW5zdGFuY2UsIE5QTlZhcmlhYmxlIHZhcmlhYmxl
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICp2YWx1ZSk7Ci1OUEVycm9yICAg
ICBOUE5fU2V0VmFsdWUoTlBQIGluc3RhbmNlLCBOUFBWYXJpYWJsZSB2YXJpYWJsZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqdmFsdWUpOwotdm9pZCAgICAgICAgTlBOX0lu
dmFsaWRhdGVSZWN0KE5QUCBpbnN0YW5jZSwgTlBSZWN0ICppbnZhbGlkUmVjdCk7Ci12b2lkICAg
ICAgICBOUE5fSW52YWxpZGF0ZVJlZ2lvbihOUFAgaW5zdGFuY2UsIE5QUmVnaW9uIGludmFsaWRS
ZWdpb24pOwotdm9pZCAgICAgICAgTlBOX0ZvcmNlUmVkcmF3KE5QUCBpbnN0YW5jZSk7Ci12b2lk
ICAgICAgICBOUE5fUHVzaFBvcHVwc0VuYWJsZWRTdGF0ZShOUFAgaW5zdGFuY2UsIE5QQm9vbCBl
bmFibGVkKTsKLXZvaWQgICAgICAgIE5QTl9Qb3BQb3B1cHNFbmFibGVkU3RhdGUoTlBQIGluc3Rh
bmNlKTsKLXZvaWQgICAgICAgIE5QTl9QbHVnaW5UaHJlYWRBc3luY0NhbGwoTlBQIGluc3RhbmNl
LCB2b2lkICgqZnVuYykgKHZvaWQgKiksIHZvaWQgKnVzZXJEYXRhKTsKLU5QRXJyb3IgICAgIE5Q
Tl9HZXRWYWx1ZUZvclVSTChOUFAgaW5zdGFuY2UsIE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlLCBj
b25zdCBjaGFyKiB1cmwsIGNoYXIqKiB2YWx1ZSwgdWludDMyX3QqIGxlbik7Ci1OUEVycm9yICAg
ICBOUE5fU2V0VmFsdWVGb3JVUkwoTlBQIGluc3RhbmNlLCBOUE5VUkxWYXJpYWJsZSB2YXJpYWJs
ZSwgY29uc3QgY2hhciogdXJsLCBjb25zdCBjaGFyKiB2YWx1ZSwgdWludDMyX3QgbGVuKTsKLU5Q
RXJyb3IgICAgIE5QTl9HZXRBdXRoZW50aWNhdGlvbkluZm8oTlBQIGluc3RhbmNlLCBjb25zdCBj
aGFyKiBwcm90b2NvbCwgY29uc3QgY2hhciogaG9zdCwgaW50MzJfdCBwb3J0LCBjb25zdCBjaGFy
KiBzY2hlbWUsIGNvbnN0IGNoYXIgKnJlYWxtLCBjaGFyKiogdXNlcm5hbWUsIHVpbnQzMl90KiB1
bGVuLCBjaGFyKiogcGFzc3dvcmQsIHVpbnQzMl90KiBwbGVuKTsKLXVpbnQzMl90ICAgTlBOX1Nj
aGVkdWxlVGltZXIoTlBQIGluc3RhbmNlLCB1aW50MzJfdCBpbnRlcnZhbCwgTlBCb29sIHJlcGVh
dCwgdm9pZCAoKnRpbWVyRnVuYykoTlBQIG5wcCwgdWludDMyX3QgdGltZXJJRCkpOwotdm9pZCAg
ICAgICAgTlBOX1Vuc2NoZWR1bGVUaW1lcihOUFAgaW5zdGFuY2UsIHVpbnQzMl90IHRpbWVySUQp
OwotTlBFcnJvciAgICAgTlBOX1BvcFVwQ29udGV4dE1lbnUoTlBQIGluc3RhbmNlLCBOUE1lbnUq
IG1lbnUpOwotTlBCb29sICAgICAgTlBOX0NvbnZlcnRQb2ludChOUFAgaW5zdGFuY2UsIGRvdWJs
ZSBzb3VyY2VYLCBkb3VibGUgc291cmNlWSwgTlBDb29yZGluYXRlU3BhY2Ugc291cmNlU3BhY2Us
IGRvdWJsZSAqZGVzdFgsIGRvdWJsZSAqZGVzdFksIE5QQ29vcmRpbmF0ZVNwYWNlIGRlc3RTcGFj
ZSk7Ci0gICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciog
YnVmLCBOUEJvb2wgZmlsZSk7CitOUEVycm9yICAgICAgICAgICAgICAgTlBOX1JlcXVlc3RSZWFk
KE5QU3RyZWFtKiBzdHJlYW0sIE5QQnl0ZVJhbmdlKiByYW5nZUxpc3QpOworTlBFcnJvciAgICAg
ICAgICAgICAgIE5QTl9OZXdTdHJlYW0oTlBQIGluc3RhbmNlLCBOUE1JTUVUeXBlIHR5cGUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiB0YXJnZXQsIE5Q
U3RyZWFtKiogc3RyZWFtKTsKK2ludDMyX3QgICAgICAgICAgICAgICBOUE5fV3JpdGUoTlBQIGlu
c3RhbmNlLCBOUFN0cmVhbSogc3RyZWFtLCBpbnQzMl90IGxlbiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdm9pZCogYnVmZmVyKTsKK05QRXJyb3IgICAgICAgICAgICAgICBOUE5f
RGVzdHJveVN0cmVhbShOUFAgaW5zdGFuY2UsIE5QU3RyZWFtKiBzdHJlYW0sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlBSZWFzb24gcmVhc29uKTsKK3ZvaWQgICAg
ICAgICAgICAgICAgICBOUE5fU3RhdHVzKE5QUCBpbnN0YW5jZSwgY29uc3QgY2hhciogbWVzc2Fn
ZSk7Citjb25zdCBjaGFyKiAgICAgICAgICAgTlBOX1VzZXJBZ2VudChOUFAgaW5zdGFuY2UpOwor
dm9pZCogICAgICAgICAgICAgICAgIE5QTl9NZW1BbGxvYyh1aW50MzJfdCBzaXplKTsKK3ZvaWQg
ICAgICAgICAgICAgICAgICBOUE5fTWVtRnJlZSh2b2lkKiBwdHIpOwordWludDMyX3QgICAgICAg
ICAgICAgIE5QTl9NZW1GbHVzaCh1aW50MzJfdCBzaXplKTsKK3ZvaWQgICAgICAgICAgICAgICAg
ICBOUE5fUmVsb2FkUGx1Z2lucyhOUEJvb2wgcmVsb2FkUGFnZXMpOworSlJJRW52KiAgICAgICAg
ICAgICAgIE5QTl9HZXRKYXZhRW52KHZvaWQpOworanJlZiAgICAgICAgICAgICAgICAgIE5QTl9H
ZXRKYXZhUGVlcihOUFAgaW5zdGFuY2UpOworTlBFcnJvciAgICAgICAgICAgICAgIE5QTl9HZXRW
YWx1ZShOUFAgaW5zdGFuY2UsIE5QTlZhcmlhYmxlIHZhcmlhYmxlLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB2b2lkICp2YWx1ZSk7CitOUEVycm9yICAgICAgICAgICAgICAg
TlBOX1NldFZhbHVlKE5QUCBpbnN0YW5jZSwgTlBQVmFyaWFibGUgdmFyaWFibGUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnZhbHVlKTsKK3ZvaWQgICAgICAgICAg
ICAgICAgICBOUE5fSW52YWxpZGF0ZVJlY3QoTlBQIGluc3RhbmNlLCBOUFJlY3QgKmludmFsaWRS
ZWN0KTsKK3ZvaWQgICAgICAgICAgICAgICAgICBOUE5fSW52YWxpZGF0ZVJlZ2lvbihOUFAgaW5z
dGFuY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlBSZWdp
b24gaW52YWxpZFJlZ2lvbik7Cit2b2lkICAgICAgICAgICAgICAgICAgTlBOX0ZvcmNlUmVkcmF3
KE5QUCBpbnN0YW5jZSk7Cit2b2lkICAgICAgICAgICAgICAgICAgTlBOX1B1c2hQb3B1cHNFbmFi
bGVkU3RhdGUoTlBQIGluc3RhbmNlLCBOUEJvb2wgZW5hYmxlZCk7Cit2b2lkICAgICAgICAgICAg
ICAgICAgTlBOX1BvcFBvcHVwc0VuYWJsZWRTdGF0ZShOUFAgaW5zdGFuY2UpOwordm9pZCAgICAg
ICAgICAgICAgICAgIE5QTl9QbHVnaW5UaHJlYWRBc3luY0NhbGwoTlBQIGluc3RhbmNlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAoKmZ1bmMp
ICh2b2lkICopLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdm9pZCAqdXNlckRhdGEpOworTlBFcnJvciAgICAgICAgICAgICAgIE5QTl9HZXRWYWx1ZUZv
clVSTChOUFAgaW5zdGFuY2UsIE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICp1cmwsIGNoYXIgKip2YWx1
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgKmxl
bik7CitOUEVycm9yICAgICAgICAgICAgICAgTlBOX1NldFZhbHVlRm9yVVJMKE5QUCBpbnN0YW5j
ZSwgTlBOVVJMVmFyaWFibGUgdmFyaWFibGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnVybCwgY29uc3QgY2hhciAqdmFsdWUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGxlbik7CitOUEVycm9y
ICAgICAgICAgICAgICAgTlBOX0dldEF1dGhlbnRpY2F0aW9uSW5mbyhOUFAgaW5zdGFuY2UsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFy
ICpwcm90b2NvbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IGNoYXIgKmhvc3QsIGludDMyX3QgcG9ydCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnNjaGVtZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnJlYWxt
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAq
KnVzZXJuYW1lLCB1aW50MzJfdCAqdWxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNoYXIgKipwYXNzd29yZCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICpwbGVuKTsKK3VpbnQzMl90ICAg
ICAgICAgICAgICBOUE5fU2NoZWR1bGVUaW1lcihOUFAgaW5zdGFuY2UsIHVpbnQzMl90IGludGVy
dmFsLCBOUEJvb2wgcmVwZWF0LCB2b2lkICgqdGltZXJGdW5jKShOUFAgbnBwLCB1aW50MzJfdCB0
aW1lcklEKSk7Cit2b2lkICAgICAgICAgICAgICAgICAgTlBOX1Vuc2NoZWR1bGVUaW1lcihOUFAg
aW5zdGFuY2UsIHVpbnQzMl90IHRpbWVySUQpOworTlBFcnJvciAgICAgICAgICAgICAgIE5QTl9Q
b3BVcENvbnRleHRNZW51KE5QUCBpbnN0YW5jZSwgTlBNZW51KiBtZW51KTsKK05QQm9vbCAgICAg
ICAgICAgICAgICBOUE5fQ29udmVydFBvaW50KE5QUCBpbnN0YW5jZSwgZG91YmxlIHNvdXJjZVgs
IGRvdWJsZSBzb3VyY2VZLCBOUENvb3JkaW5hdGVTcGFjZSBzb3VyY2VTcGFjZSwgZG91YmxlICpk
ZXN0WCwgZG91YmxlICpkZXN0WSwgTlBDb29yZGluYXRlU3BhY2UgZGVzdFNwYWNlKTsKKwogI2lm
ZGVmIF9fY3BsdXNwbHVzCiB9ICAvKiBlbmQgZXh0ZXJuICJDIiAqLwogI2VuZGlmCkluZGV4OiBX
ZWJDb3JlL2JyaWRnZS9ucHJ1bnRpbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JyaWRnZS9u
cHJ1bnRpbWUuaAkocmV2aXNpb24gNTg4ODYpCisrKyBXZWJDb3JlL2JyaWRnZS9ucHJ1bnRpbWUu
aAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKKy8qIC0qLSBNb2RlOiBDOyB0YWItd2lk
dGg6IDQ7IGluZGVudC10YWJzLW1vZGU6IG5pbDsgYy1iYXNpYy1vZmZzZXQ6IDQgLSotICovCiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDA0LCBBcHBsZSBDb21wdXRlciwgSW5jLiBhbmQgVGhlIE1v
emlsbGEgRm91bmRhdGlvbi4gCisgKiBDb3B5cmlnaHQgKGMpIDIwMDQsIEFwcGxlIENvbXB1dGVy
LCBJbmMuIGFuZCBUaGUgTW96aWxsYSBGb3VuZGF0aW9uLiAKICAqIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKiAKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMjgsNDIgKzI5LDYgQEAKICAqIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwog
ICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCiAgKgotICogUmV2aXNpb24gMSAoTWFyY2ggNCwgMjAwNCk6Ci0gKiBJbml0aWFsIHBy
b3Bvc2FsLgotICoKLSAqIFJldmlzaW9uIDIgKE1hcmNoIDEwLCAyMDA0KToKLSAqIEFsbCBjYWxs
cyBpbnRvIHNjcmlwdCB3ZXJlIG1hZGUgYXN5bmNocm9ub3VzLiAgUmVzdWx0cyBhcmUKLSAqIHBy
b3ZpZGVkIHZpYSB0aGUgTlBTY3JpcHRSZXN1bHRGdW5jdGlvblB0ciBjYWxsYmFjay4KLSAqCi0g
KiBSZXZpc2lvbiAzIChNYXJjaCAxMCwgMjAwNCk6Ci0gKiBDb3JyZWN0ZWQgY29tbWVudHMgdG8g
bm90IHJlZmVyIHRvIGNsYXNzIHJldGFpbi9yZWxlYXNlIEZ1bmN0aW9uUHRycy4KLSAqCi0gKiBS
ZXZpc2lvbiA0IChNYXJjaCAxMSwgMjAwNCk6Ci0gKiBBZGRlZCBhZGRpdGlvbmFsIGNvbnZlbmll
bmNlIE5QTl9TZXRFeGNlcHRpb25XaXRoVVRGOCgpLgotICogQ2hhbmdlZCBOUEhhc1Byb3BlcnR5
RnVuY3Rpb25QdHIgYW5kIE5QSGFzTWV0aG9kRnVuY3Rpb25QdHIgdG8gdGFrZSBOUENsYXNzCi0g
KiBwb2ludGVycyBpbnN0ZWFkIG9mIE5QT2JqZWN0IHBvaW50ZXJzLgotICogQWRkZWQgTlBJc1Zh
bGlkSWRlbnRpZmllcigpLgotICoKLSAqIFJldmlzaW9uIDUgKE1hcmNoIDE3LCAyMDA0KToKLSAq
IEFkZGVkIGNvbnRleHQgcGFyYW1ldGVyIHRvIHJlc3VsdCBjYWxsYmFja3MgZnJvbSBTY3JpcHRP
YmplY3QgZnVuY3Rpb25zLgotICoKLSAqIFJldmlzaW9uIDYgKE1hcmNoIDI5LCAyMDA0KToKLSAq
IFJlbmFtZWQgZnVuY3Rpb25zIGltcGxlbWVudGVkIGJ5IHVzZXIgYWdlbnQgdG8gTlBOXyouICBS
ZW1vdmVkIF8gZnJvbQotICogdHlwZSBuYW1lcy4KLSAqIFJlbmFtZWQgIkphdmFTY3JpcHQiIHR5
cGVzIHRvICJTY3JpcHQiLgotICoKLSAqIFJldmlzaW9uIDcgKEFwcmlsIDIxLCAyMDA0KToKLSAq
IE5QSWRlbnRpZmllciBiZWNvbWVzIGEgdm9pZCosIHdhcyBpbnQzMl90Ci0gKiBSZW1vdmUgTlBf
SXNWYWxpZElkZW50aWZpZXIsIHJlbmFtZWQgTlBfSWRlbnRpZmllckZyb21VVEY4IHRvIE5QX0dl
dElkZW50aWZpZXIKLSAqIEFkZGVkIE5QVmFyaWFudCBhbmQgbW9kaWZpZWQgZnVuY3Rpb25zIHRv
IHVzZSB0aGlzIG5ldyB0eXBlLgotICoKLSAqIFJldmlzaW9uIDggKEp1bHkgOSwgMjAwNCk6Ci0g
KiBVcGRhdGVkIHRvIGpvaW50IEFwcGxlLU1vemlsbGEgbGljZW5zZS4KLSAqCi0gKiBSZXZpc2lv
biA5IChBdWd1c3QgMTIsIDIwMDQpOgotICogQ2hhbmdlZCBOUFZhcmlhbnRUeXBlIGVudW0gdmFs
dWVzIHRvIGZvcm0gUFZhcmlhbnRUeXBlX1hYWAotICogQWRkZWQgTlBQIGFyZ3VtZW50cyB0byBO
UE9iamVjdCBmdW5jdGlvbnMuCi0gKiBSZXBsYWNlZCBOUFZhcmlhbnQgZnVuY3Rpb25zIHdpdGgg
bWFjcm9zLgogICovCiAjaWZuZGVmIF9OUF9SVU5USU1FX0hfCiAjZGVmaW5lIF9OUF9SVU5USU1F
X0hfCkBAIC0xMDUsNiArNzAsOCBAQCBleHRlcm4gIkMiIHsKICAgICBsYW5ndWFnZSB1c2VkIGJ5
IHRoZSBzY3JpcHRpbmcgZW52aXJvbm1lbnQgaGF2ZSBiZWVuIG1pbmltaXplZC4KICovCiAKKyNk
ZWZpbmUgTlBfQkVHSU5fTUFDUk8gIGRvIHsKKyNkZWZpbmUgTlBfRU5EX01BQ1JPICAgIH0gd2hp
bGUgKDApCiAKIC8qCiAgICAgT2JqZWN0cyAobm9uLXByaW1pdGl2ZSBkYXRhKSBwYXNzZWQgYmV0
d2VlbiAnQycgYW5kIHNjcmlwdCBpcwpAQCAtMTE5LDcgKzg2LDcgQEAgdHlwZWRlZiBzdHJ1Y3Qg
X05QU3RyaW5nIHsKICAgICBjb25zdCBOUFVURjggKlVURjhDaGFyYWN0ZXJzOwogICAgIHVpbnQz
Ml90IFVURjhMZW5ndGg7CiB9IE5QU3RyaW5nOwotICAKKwogdHlwZWRlZiBlbnVtIHsKICAgICBO
UFZhcmlhbnRUeXBlX1ZvaWQsCiAgICAgTlBWYXJpYW50VHlwZV9OdWxsLApAQCAtMTQyLDE2ICsx
MDksMTYgQEAgdHlwZWRlZiBzdHJ1Y3QgX05QVmFyaWFudCB7CiB9IE5QVmFyaWFudDsKIAogLyoK
LSAgICBOUE5fUmVsZWFzZVZhcmlhbnRWYWx1ZSBpcyBjYWxsZWQgb24gYWxsICdvdXQnIHBhcmFt
ZXRlcnMgcmVmZXJlbmNlcy4KLSAgICBTcGVjaWZpY2FsbHkgaXQgaXMgY2FsbGVkIG9uIHZhcmlh
bnRzIHRoYXQgYXJlIHJlc3VsdGFudCBvdXQgcGFyYW1ldGVycwotICAgIGluIE5QR2V0UHJvcGVy
dHlGdW5jdGlvblB0ciBhbmQgTlBJbnZva2VGdW5jdGlvblB0ci4gIFJlc3VsdGFudCB2YXJpYW50
cwotICAgIGZyb20gdGhlc2UgdHdvIGZ1bmN0aW9ucyBzaG91bGQgYmUgaW5pdGlhbGl6ZWQgdXNp
bmcgdGhlCi0gICAgTlBOX0luaXRpYWxpemVWYXJpYW50WFhYKCkgZnVuY3Rpb25zLgotICAgIAot
ICAgIEFmdGVyIGNhbGxpbmcgTlBSZWxlYXNlVmFyaWFudFZhbHVlLCB0aGUgdHlwZSBvZiB0aGUg
dmFyaWFudCB3aWxsCi0gICAgYmUgc2V0IHRvIE5QVmFyaWFudFVuZGVmaW5lZFR5cGUuCisgICAg
TlBOX1JlbGVhc2VWYXJpYW50VmFsdWUgaXMgY2FsbGVkIG9uIGFsbCAnb3V0JyBwYXJhbWV0ZXJz
CisgICAgcmVmZXJlbmNlcy4gIFNwZWNpZmljYWxseSBpdCBpcyB0byBiZSBjYWxsZWQgb24gdmFy
aWFudHMgdGhhdCBvd24KKyAgICB0aGVpciB2YWx1ZSwgYXMgaXMgdGhlIGNhc2Ugd2l0aCBhbGwg
bm9uLWNvbnN0IE5QVmFyaWFudCoKKyAgICBhcmd1bWVudHMgYWZ0ZXIgYSBzdWNjZXNzZnVsIGNh
bGwgdG8gYW55IG1ldGhvZHMgKGV4Y2VwdCB0aGlzIG9uZSkKKyAgICBpbiB0aGlzIEFQSS4KKwor
ICAgIEFmdGVyIGNhbGxpbmcgTlBOX1JlbGVhc2VWYXJpYW50VmFsdWUsIHRoZSB0eXBlIG9mIHRo
ZSB2YXJpYW50CisgICAgd2lsbCBiZSBOUFZhcmlhbnRUeXBlX1ZvaWQuCiAqLwotdm9pZCBOUE5f
UmVsZWFzZVZhcmlhbnRWYWx1ZSAoTlBWYXJpYW50ICp2YXJpYW50KTsKK3ZvaWQgTlBOX1JlbGVh
c2VWYXJpYW50VmFsdWUoTlBWYXJpYW50ICp2YXJpYW50KTsKIAogI2RlZmluZSBOUFZBUklBTlRf
SVNfVk9JRChfdikgICAgKChfdikudHlwZSA9PSBOUFZhcmlhbnRUeXBlX1ZvaWQpCiAjZGVmaW5l
IE5QVkFSSUFOVF9JU19OVUxMKF92KSAgICAoKF92KS50eXBlID09IE5QVmFyaWFudFR5cGVfTnVs
bCkKQEAgLTE2NywzOCArMTM0LDc3IEBAIHZvaWQgTlBOX1JlbGVhc2VWYXJpYW50VmFsdWUgKE5Q
VmFyaWFudCAKICNkZWZpbmUgTlBWQVJJQU5UX1RPX1NUUklORyhfdikgICgoX3YpLnZhbHVlLnN0
cmluZ1ZhbHVlKQogI2RlZmluZSBOUFZBUklBTlRfVE9fT0JKRUNUKF92KSAgKChfdikudmFsdWUu
b2JqZWN0VmFsdWUpCiAKLSNkZWZpbmUgTlBfQkVHSU5fTUFDUk8gIGRvIHsKLSNkZWZpbmUgTlBf
RU5EX01BQ1JPICAgIH0gd2hpbGUgKDApCisjZGVmaW5lIFZPSURfVE9fTlBWQVJJQU5UKF92KSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCitOUF9CRUdJ
Tl9NQUNSTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCisgICAgKF92KS50eXBlID0gTlBWYXJpYW50VHlwZV9Wb2lkOyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgKF92KS52YWx1ZS5v
YmplY3RWYWx1ZSA9IE5VTEw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCitOUF9FTkRfTUFDUk8KKworI2RlZmluZSBOVUxMX1RPX05QVkFSSUFOVChfdikgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorTlBfQkVHSU5f
TUFDUk8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAorICAgIChfdikudHlwZSA9IE5QVmFyaWFudFR5cGVfTnVsbDsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIChfdikudmFsdWUub2Jq
ZWN0VmFsdWUgPSBOVUxMOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAorTlBfRU5EX01BQ1JPCisKKyNkZWZpbmUgQk9PTEVBTl9UT19OUFZBUklBTlQoX3ZhbCwg
X3YpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK05QX0JFR0lOX01B
Q1JPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgICAoX3YpLnR5cGUgPSBOUFZhcmlhbnRUeXBlX0Jvb2w7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAoX3YpLnZhbHVlLmJvb2xW
YWx1ZSA9ICEhKF92YWwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKK05QX0VORF9NQUNSTworCisjZGVmaW5lIElOVDMyX1RPX05QVkFSSUFOVChfdmFsLCBfdikg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCitOUF9CRUdJTl9NQUNS
TyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCisgICAgKF92KS50eXBlID0gTlBWYXJpYW50VHlwZV9JbnQzMjsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgKF92KS52YWx1ZS5pbnRWYWx1
ZSA9IF92YWw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
CitOUF9FTkRfTUFDUk8KKworI2RlZmluZSBET1VCTEVfVE9fTlBWQVJJQU5UKF92YWwsIF92KSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorTlBfQkVHSU5fTUFDUk8g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAorICAgIChfdikudHlwZSA9IE5QVmFyaWFudFR5cGVfRG91YmxlOyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIChfdikudmFsdWUuZG91YmxlVmFs
dWUgPSBfdmFsOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor
TlBfRU5EX01BQ1JPCisKKyNkZWZpbmUgU1RSSU5HWl9UT19OUFZBUklBTlQoX3ZhbCwgX3YpICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK05QX0JFR0lOX01BQ1JPICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKKyAgICAoX3YpLnR5cGUgPSBOUFZhcmlhbnRUeXBlX1N0cmluZzsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBOUFN0cmluZyBzdHIgPSB7IF92YWws
IHVpbnQzMl90KHN0cmxlbihfdmFsKSkgfTsgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg
ICAoX3YpLnZhbHVlLnN0cmluZ1ZhbHVlID0gc3RyOyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKK05QX0VORF9NQUNSTworCisjZGVmaW5lIFNUUklOR05fVE9f
TlBWQVJJQU5UKF92YWwsIF9sZW4sIF92KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCitOUF9CRUdJTl9NQUNSTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgKF92KS50eXBlID0gTlBWYXJpYW50VHlw
ZV9TdHJpbmc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg
TlBTdHJpbmcgc3RyID0geyBfdmFsLCB1aW50MzJfdChfbGVuKSB9OyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCisgICAgKF92KS52YWx1ZS5zdHJpbmdWYWx1ZSA9IHN0cjsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCitOUF9FTkRfTUFDUk8K
KworI2RlZmluZSBPQkpFQ1RfVE9fTlBWQVJJQU5UKF92YWwsIF92KSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAorTlBfQkVHSU5fTUFDUk8gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIChf
dikudHlwZSA9IE5QVmFyaWFudFR5cGVfT2JqZWN0OyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAorICAgIChfdikudmFsdWUub2JqZWN0VmFsdWUgPSBfdmFsOyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorTlBfRU5EX01BQ1JPCiAK
LSNkZWZpbmUgVk9JRF9UT19OUFZBUklBTlQoX3YpICAgICAgICAgICAgICAgIE5QX0JFR0lOX01B
Q1JPIChfdikudHlwZSA9IE5QVmFyaWFudFR5cGVfVm9pZDsgKF92KS52YWx1ZS5vYmplY3RWYWx1
ZSA9IE5VTEw7IE5QX0VORF9NQUNSTwotI2RlZmluZSBOVUxMX1RPX05QVkFSSUFOVChfdikgICAg
ICAgICAgICAgICAgTlBfQkVHSU5fTUFDUk8gKF92KS50eXBlID0gTlBWYXJpYW50VHlwZV9OdWxs
OyAoX3YpLnZhbHVlLm9iamVjdFZhbHVlID0gTlVMTDsgTlBfRU5EX01BQ1JPCi0jZGVmaW5lIEJP
T0xFQU5fVE9fTlBWQVJJQU5UKF92YWwsIF92KSAgICAgICBOUF9CRUdJTl9NQUNSTyAoX3YpLnR5
cGUgPSBOUFZhcmlhbnRUeXBlX0Jvb2w7IChfdikudmFsdWUuYm9vbFZhbHVlID0gISEoX3ZhbCk7
IE5QX0VORF9NQUNSTwotI2RlZmluZSBJTlQzMl9UT19OUFZBUklBTlQoX3ZhbCwgX3YpICAgICAg
ICAgTlBfQkVHSU5fTUFDUk8gKF92KS50eXBlID0gTlBWYXJpYW50VHlwZV9JbnQzMjsgKF92KS52
YWx1ZS5pbnRWYWx1ZSA9IF92YWw7IE5QX0VORF9NQUNSTwotI2RlZmluZSBET1VCTEVfVE9fTlBW
QVJJQU5UKF92YWwsIF92KSAgICAgICAgTlBfQkVHSU5fTUFDUk8gKF92KS50eXBlID0gTlBWYXJp
YW50VHlwZV9Eb3VibGU7IChfdikudmFsdWUuZG91YmxlVmFsdWUgPSBfdmFsOyBOUF9FTkRfTUFD
Uk8KLSNkZWZpbmUgU1RSSU5HWl9UT19OUFZBUklBTlQoX3ZhbCwgX3YpICAgICAgIE5QX0JFR0lO
X01BQ1JPIChfdikudHlwZSA9IE5QVmFyaWFudFR5cGVfU3RyaW5nOyBOUFN0cmluZyBzdHIgPSB7
IF92YWwsIHN0cmxlbihfdmFsKSB9OyAoX3YpLnZhbHVlLnN0cmluZ1ZhbHVlID0gc3RyOyBOUF9F
TkRfTUFDUk8KLSNkZWZpbmUgU1RSSU5HTl9UT19OUFZBUklBTlQoX3ZhbCwgX2xlbiwgX3YpIE5Q
X0JFR0lOX01BQ1JPIChfdikudHlwZSA9IE5QVmFyaWFudFR5cGVfU3RyaW5nOyBOUFN0cmluZyBz
dHIgPSB7IF92YWwsIF9sZW4gfTsgKF92KS52YWx1ZS5zdHJpbmdWYWx1ZSA9IHN0cjsgTlBfRU5E
X01BQ1JPCi0jZGVmaW5lIE9CSkVDVF9UT19OUFZBUklBTlQoX3ZhbCwgX3YpICAgICAgICBOUF9C
RUdJTl9NQUNSTyAoX3YpLnR5cGUgPSBOUFZhcmlhbnRUeXBlX09iamVjdDsgKF92KS52YWx1ZS5v
YmplY3RWYWx1ZSA9IF92YWw7IE5QX0VORF9NQUNSTwogCiAvKgotICAgICAgICBUeXBlIG1hcHBp
bmdzIChKYXZhU2NyaXB0IHR5cGVzIGhhdmUgYmVlbiB1c2VkIGZvciBpbGx1c3RyYXRpb24KKyAg
VHlwZSBtYXBwaW5ncyAoSmF2YVNjcmlwdCB0eXBlcyBoYXZlIGJlZW4gdXNlZCBmb3IgaWxsdXN0
cmF0aW9uCiAgICAgcHVycG9zZXMpOgogCi0gICAgICAgIEphdmFTY3JpcHQgICAgICAgdG8gICAg
ICAgICAgICAgQyAoTlBWYXJpYW50IHdpdGggdHlwZTopCi0gICAgICAgIHVuZGVmaW5lZCAgICAg
ICAgICAgICAgICAgICAgICAgTlBWYXJpYW50VHlwZV9Wb2lkCi0gICAgICAgIG51bGwgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgTlBWYXJpYW50VHlwZV9OdWxsCi0gICAgICAgIEJvb2xlYW4g
ICAgICAgICAgICAgICAgICAgICAgICAgTlBWYXJpYW50VHlwZV9Cb29sCi0gICAgICAgIE51bWJl
ciAgICAgICAgICAgICAgICAgICAgICAgICAgTlBWYXJpYW50VHlwZV9Eb3VibGUgb3IgTlBWYXJp
YW50VHlwZV9JbnQzMgotICAgICAgICBTdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgIE5Q
VmFyaWFudFR5cGVfU3RyaW5nCi0gICAgICAgIE9iamVjdCAgICAgICAgICAgICAgICAgICAgICAg
ICAgTlBWYXJpYW50VHlwZV9PYmplY3QKLQotICAgICAgICBDIChOUFZhcmlhbnQgd2l0aCB0eXBl
OikgICB0byAgIEphdmFTY3JpcHQKLSAgICAgICAgTlBWYXJpYW50VHlwZV9Wb2lkICAgICAgICAg
ICAgICB1bmRlZmluZWQKLSAgICAgICAgTlBWYXJpYW50VHlwZV9OdWxsICAgICAgICAgICAgICBu
dWxsCi0gICAgICAgIE5QVmFyaWFudFR5cGVfQm9vbCAgICAgICAgICAgICAgQm9vbGVhbiAKLSAg
ICAgICAgTlBWYXJpYW50VHlwZV9JbnQzMiAgICAgICAgICAgICBOdW1iZXIKLSAgICAgICAgTlBW
YXJpYW50VHlwZV9Eb3VibGUgICAgICAgICAgICBOdW1iZXIKLSAgICAgICAgTlBWYXJpYW50VHlw
ZV9TdHJpbmcgICAgICAgICAgICBTdHJpbmcKLSAgICAgICAgTlBWYXJpYW50VHlwZV9PYmplY3Qg
ICAgICAgICAgICBPYmplY3QKKyAgSmF2YVNjcmlwdCAgICAgICB0byAgICAgICAgICAgICBDIChO
UFZhcmlhbnQgd2l0aCB0eXBlOikKKyAgdW5kZWZpbmVkICAgICAgICAgICAgICAgICAgICAgICBO
UFZhcmlhbnRUeXBlX1ZvaWQKKyAgbnVsbCAgICAgICAgICAgICAgICAgICAgICAgICAgICBOUFZh
cmlhbnRUeXBlX051bGwKKyAgQm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAgICBOUFZhcmlh
bnRUeXBlX0Jvb2wKKyAgTnVtYmVyICAgICAgICAgICAgICAgICAgICAgICAgICBOUFZhcmlhbnRU
eXBlX0RvdWJsZSBvciBOUFZhcmlhbnRUeXBlX0ludDMyCisgIFN0cmluZyAgICAgICAgICAgICAg
ICAgICAgICAgICAgTlBWYXJpYW50VHlwZV9TdHJpbmcKKyAgT2JqZWN0ICAgICAgICAgICAgICAg
ICAgICAgICAgICBOUFZhcmlhbnRUeXBlX09iamVjdAorCisgIEMgKE5QVmFyaWFudCB3aXRoIHR5
cGU6KSAgIHRvICAgSmF2YVNjcmlwdAorICBOUFZhcmlhbnRUeXBlX1ZvaWQgICAgICAgICAgICAg
IHVuZGVmaW5lZAorICBOUFZhcmlhbnRUeXBlX051bGwgICAgICAgICAgICAgIG51bGwKKyAgTlBW
YXJpYW50VHlwZV9Cb29sICAgICAgICAgICAgICBCb29sZWFuCisgIE5QVmFyaWFudFR5cGVfSW50
MzIgICAgICAgICAgICAgTnVtYmVyCisgIE5QVmFyaWFudFR5cGVfRG91YmxlICAgICAgICAgICAg
TnVtYmVyCisgIE5QVmFyaWFudFR5cGVfU3RyaW5nICAgICAgICAgICAgU3RyaW5nCisgIE5QVmFy
aWFudFR5cGVfT2JqZWN0ICAgICAgICAgICAgT2JqZWN0CiAqLwogCiB0eXBlZGVmIHZvaWQgKk5Q
SWRlbnRpZmllcjsKQEAgLTIxMCwxMCArMjE2LDEzIEBAIHR5cGVkZWYgdm9pZCAqTlBJZGVudGlm
aWVyOwogICAgIG1ldGhvZHMgYW5kIHByb3BlcnRpZXMgY2FuIGJlIGlkZW50aWZpZWQgYnkgZWl0
aGVyIHN0cmluZ3Mgb3IKICAgICBpbnRlZ2VycyAoaS5lLiBmb29bImJhciJdIHZzIGZvb1sxXSku
IE5QSWRlbnRpZmllcnMgY2FuIGJlCiAgICAgY29tcGFyZWQgdXNpbmcgPT0uICBJbiBjYXNlIG9m
IGFueSBlcnJvcnMsIHRoZSByZXF1ZXN0ZWQKLSAgICBOUElkZW50aWZpZXIocykgd2lsbCBiZSBO
VUxMLgorICAgIE5QSWRlbnRpZmllcihzKSB3aWxsIGJlIE5VTEwuIE5QSWRlbnRpZmllciBsaWZl
dGltZSBpcyBjb250cm9sbGVkCisgICAgYnkgdGhlIGJyb3dzZXIuIFBsdWdpbnMgZG8gbm90IG5l
ZWQgdG8gd29ycnkgYWJvdXQgbWVtb3J5IG1hbmFnZW1lbnQKKyAgICB3aXRoIHJlZ2FyZHMgdG8g
TlBJZGVudGlmaWVycy4KICovCiBOUElkZW50aWZpZXIgTlBOX0dldFN0cmluZ0lkZW50aWZpZXIo
Y29uc3QgTlBVVEY4ICpuYW1lKTsKLXZvaWQgTlBOX0dldFN0cmluZ0lkZW50aWZpZXJzKGNvbnN0
IE5QVVRGOCAqKm5hbWVzLCBpbnQzMl90IG5hbWVDb3VudCwgTlBJZGVudGlmaWVyICppZGVudGlm
aWVycyk7Cit2b2lkIE5QTl9HZXRTdHJpbmdJZGVudGlmaWVycyhjb25zdCBOUFVURjggKipuYW1l
cywgaW50MzJfdCBuYW1lQ291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOUElk
ZW50aWZpZXIgKmlkZW50aWZpZXJzKTsKIE5QSWRlbnRpZmllciBOUE5fR2V0SW50SWRlbnRpZmll
cihpbnQzMl90IGludGlkKTsKIGJvb2wgTlBOX0lkZW50aWZpZXJJc1N0cmluZyhOUElkZW50aWZp
ZXIgaWRlbnRpZmllcik7CiAKQEAgLTIzNiwzOCArMjQ1LDUyIEBAIGludDMyX3QgTlBOX0ludEZy
b21JZGVudGlmaWVyKE5QSWRlbnRpZmkKICAgICBhcHBsaWNhYmxlKSBzaG91bGQgYmUgcmVsZWFz
ZWQgdXNpbmcgTlBOX1JlbGVhc2VWYXJpYW50VmFsdWUoKS4KICovCiB0eXBlZGVmIE5QT2JqZWN0
ICooKk5QQWxsb2NhdGVGdW5jdGlvblB0cikoTlBQIG5wcCwgTlBDbGFzcyAqYUNsYXNzKTsKLXR5
cGVkZWYgdm9pZCAoKk5QRGVhbGxvY2F0ZUZ1bmN0aW9uUHRyKShOUE9iamVjdCAqb2JqKTsKLXR5
cGVkZWYgdm9pZCAoKk5QSW52YWxpZGF0ZUZ1bmN0aW9uUHRyKShOUE9iamVjdCAqb2JqKTsKLXR5
cGVkZWYgYm9vbCAoKk5QSGFzTWV0aG9kRnVuY3Rpb25QdHIpKE5QT2JqZWN0ICpvYmosIE5QSWRl
bnRpZmllciBuYW1lKTsKLXR5cGVkZWYgYm9vbCAoKk5QSW52b2tlRnVuY3Rpb25QdHIpKE5QT2Jq
ZWN0ICpvYmosIE5QSWRlbnRpZmllciBuYW1lLCBjb25zdCBOUFZhcmlhbnQgKmFyZ3MsIHVpbnQz
Ml90IGFyZ0NvdW50LCBOUFZhcmlhbnQgKnJlc3VsdCk7Ci10eXBlZGVmIGJvb2wgKCpOUEludm9r
ZURlZmF1bHRGdW5jdGlvblB0cikoTlBPYmplY3QgKm5wb2JqLCBjb25zdCBOUFZhcmlhbnQgKmFy
Z3MsIHVpbnQzMl90IGFyZ0NvdW50LCBOUFZhcmlhbnQgKnJlc3VsdCk7Ci10eXBlZGVmIGJvb2wg
KCpOUEhhc1Byb3BlcnR5RnVuY3Rpb25QdHIpKE5QT2JqZWN0ICpvYmosIE5QSWRlbnRpZmllciBu
YW1lKTsKLXR5cGVkZWYgYm9vbCAoKk5QR2V0UHJvcGVydHlGdW5jdGlvblB0cikoTlBPYmplY3Qg
Km9iaiwgTlBJZGVudGlmaWVyIG5hbWUsIE5QVmFyaWFudCAqcmVzdWx0KTsKLXR5cGVkZWYgYm9v
bCAoKk5QU2V0UHJvcGVydHlGdW5jdGlvblB0cikoTlBPYmplY3QgKm9iaiwgTlBJZGVudGlmaWVy
IG5hbWUsIGNvbnN0IE5QVmFyaWFudCAqdmFsdWUpOwotdHlwZWRlZiBib29sICgqTlBSZW1vdmVQ
cm9wZXJ0eUZ1bmN0aW9uUHRyKShOUE9iamVjdCAqbnBvYmosIE5QSWRlbnRpZmllciBuYW1lKTsK
LXR5cGVkZWYgYm9vbCAoKk5QRW51bWVyYXRpb25GdW5jdGlvblB0cikoTlBPYmplY3QgKm5wb2Jq
LCBOUElkZW50aWZpZXIgKip2YWx1ZSwgdWludDMyX3QgKmNvdW50KTsKLXR5cGVkZWYgYm9vbCAo
Kk5QQ29uc3RydWN0RnVuY3Rpb25QdHIpKE5QT2JqZWN0ICpucG9iaiwgY29uc3QgTlBWYXJpYW50
ICphcmdzLCB1aW50MzJfdCBhcmdDb3VudCwgTlBWYXJpYW50ICpyZXN1bHQpOwotCi0vKgotICAg
IE5QT2JqZWN0cyByZXR1cm5lZCBieSBjcmVhdGUgaGF2ZSBhIHJlZmVyZW5jZSBjb3VudCBvZiBv
bmUuICBJdCBpcyB0aGUgY2FsbGVyJ3MgcmVzcG9uc2liaWxpdHkKLSAgICB0byByZWxlYXNlIHRo
ZSByZXR1cm5lZCBvYmplY3QuCi0KLSAgICBOUEludm9rZUZ1bmN0aW9uUHRyIGZ1bmN0aW9uIG1h
eSByZXR1cm4gZmFsc2UgdG8gaW5kaWNhdGUgYSB0aGUgbWV0aG9kIGNvdWxkIG5vdCBiZSBpbnZv
a2VkLgotICAgIAotICAgIE5QR2V0UHJvcGVydHlGdW5jdGlvblB0ciBhbmQgTlBTZXRQcm9wZXJ0
eUZ1bmN0aW9uUHRyIG1heSByZXR1cm4gZmFsc2UgdG8gaW5kaWNhdGUgYSBwcm9wZXJ0eSBkb2Vz
bid0Ci0gICAgZXhpc3QuCi0gICAgCi0gICAgTlBJbnZhbGlkYXRlRnVuY3Rpb25QdHIgaXMgY2Fs
bGVkIGJ5IHRoZSBzY3JpcHRpbmcgZW52aXJvbm1lbnQgd2hlbiB0aGUgbmF0aXZlIGNvZGUgaXMK
LSAgICBzaHV0ZG93bi4gIEFueSBhdHRlbXB0IHRvIG1lc3NhZ2UgYSBOUE9iamVjdCBpbnN0YW5j
ZSBhZnRlciB0aGUgaW52YWxpZGF0ZQotICAgIGNhbGxiYWNrIGhhcyBiZWVuIGNhbGxlZCB3aWxs
IHJlc3VsdCBpbiB1bmRlZmluZWQgYmVoYXZpb3IsIGV2ZW4gaWYgdGhlCi0gICAgbmF0aXZlIGNv
ZGUgaXMgc3RpbGwgcmV0YWluaW5nIHRob3NlIE5QT2JqZWN0IGluc3RhbmNlcy4KLSAgICAoVGhl
IHJ1bnRpbWUgd2lsbCB0eXBpY2FsbHkgcmV0dXJuIGltbWVkaWF0ZWx5LCB3aXRoIDAgb3IgTlVM
TCwgZnJvbSBhbiBhdHRlbXB0IHRvCi0gICAgZGlzcGF0Y2ggdG8gYSBOUE9iamVjdCwgYnV0IHRo
aXMgYmVoYXZpb3Igc2hvdWxkIG5vdCBiZSBkZXBlbmRlZCB1cG9uLikKLSAgICAKLSAgICBUaGUg
TlBFbnVtZXJhdGlvbkZ1bmN0aW9uUHRyIGZ1bmN0aW9uIG1heSBwYXNzIGFuIGFycmF5IG9mICAg
ICAgICAgICAgICAgICAgCi0gICAgTlBJZGVudGlmaWVycyBiYWNrIHRvIHRoZSBjYWxsZXIuIFRo
ZSBjYWxsZWUgYWxsb2NzIHRoZSBtZW1vcnkgb2YgICAgICAgICAgIAotICAgIHRoZSBhcnJheSB1
c2luZyBOUE5fTWVtQWxsb2MoKSwgYW5kIGl0J3MgdGhlIGNhbGxlcidzIHJlc3BvbnNpYmlsaXR5
ICAgICAgICAKLSAgICB0byByZWxlYXNlIGl0IHVzaW5nIE5QTl9NZW1GcmVlKCkuICAgICAgICAg
ICAKK3R5cGVkZWYgdm9pZCAoKk5QRGVhbGxvY2F0ZUZ1bmN0aW9uUHRyKShOUE9iamVjdCAqbnBv
YmopOwordHlwZWRlZiB2b2lkICgqTlBJbnZhbGlkYXRlRnVuY3Rpb25QdHIpKE5QT2JqZWN0ICpu
cG9iaik7Cit0eXBlZGVmIGJvb2wgKCpOUEhhc01ldGhvZEZ1bmN0aW9uUHRyKShOUE9iamVjdCAq
bnBvYmosIE5QSWRlbnRpZmllciBuYW1lKTsKK3R5cGVkZWYgYm9vbCAoKk5QSW52b2tlRnVuY3Rp
b25QdHIpKE5QT2JqZWN0ICpucG9iaiwgTlBJZGVudGlmaWVyIG5hbWUsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBOUFZhcmlhbnQgKmFyZ3MsIHVpbnQzMl90IGFy
Z0NvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlBWYXJpYW50ICpy
ZXN1bHQpOwordHlwZWRlZiBib29sICgqTlBJbnZva2VEZWZhdWx0RnVuY3Rpb25QdHIpKE5QT2Jq
ZWN0ICpucG9iaiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBOUFZhcmlhbnQgKmFyZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdWludDMyX3QgYXJnQ291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgTlBWYXJpYW50ICpyZXN1bHQpOwordHlwZWRlZiBib29sICgqTlBIYXNQ
cm9wZXJ0eUZ1bmN0aW9uUHRyKShOUE9iamVjdCAqbnBvYmosIE5QSWRlbnRpZmllciBuYW1lKTsK
K3R5cGVkZWYgYm9vbCAoKk5QR2V0UHJvcGVydHlGdW5jdGlvblB0cikoTlBPYmplY3QgKm5wb2Jq
LCBOUElkZW50aWZpZXIgbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgTlBWYXJpYW50ICpyZXN1bHQpOwordHlwZWRlZiBib29sICgqTlBTZXRQcm9wZXJ0eUZ1
bmN0aW9uUHRyKShOUE9iamVjdCAqbnBvYmosIE5QSWRlbnRpZmllciBuYW1lLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBOUFZhcmlhbnQgKnZhbHVlKTsK
K3R5cGVkZWYgYm9vbCAoKk5QUmVtb3ZlUHJvcGVydHlGdW5jdGlvblB0cikoTlBPYmplY3QgKm5w
b2JqLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOUElkZW50
aWZpZXIgbmFtZSk7Cit0eXBlZGVmIGJvb2wgKCpOUEVudW1lcmF0aW9uRnVuY3Rpb25QdHIpKE5Q
T2JqZWN0ICpucG9iaiwgTlBJZGVudGlmaWVyICoqdmFsdWUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICpjb3VudCk7Cit0eXBlZGVmIGJvb2wgKCpO
UENvbnN0cnVjdEZ1bmN0aW9uUHRyKShOUE9iamVjdCAqbnBvYmosCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBOUFZhcmlhbnQgKmFyZ3MsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBhcmdDb3VudCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5QVmFyaWFudCAqcmVzdWx0KTsKKworLyoK
KyAgICBOUE9iamVjdHMgcmV0dXJuZWQgYnkgY3JlYXRlLCByZXRhaW4sIGludm9rZSwgYW5kIGdl
dFByb3BlcnR5IHBhc3MKKyAgICBhIHJlZmVyZW5jZSBjb3VudCB0byB0aGUgY2FsbGVyLiAgVGhh
dCBpcywgdGhlIGNhbGxlZSBhZGRzIGEKKyAgICByZWZlcmVuY2UgY291bnQgd2hpY2ggcGFzc2Vz
IHRvIHRoZSBjYWxsZXIuICBJdCBpcyB0aGUgY2FsbGVyJ3MKKyAgICByZXNwb25zaWJpbGl0eSB0
byByZWxlYXNlIHRoZSByZXR1cm5lZCBvYmplY3QuCisKKyAgICBOUEludm9rZUZ1bmN0aW9uUHRy
IGZ1bmN0aW9uIG1heSByZXR1cm4gMCB0byBpbmRpY2F0ZSBhIHZvaWQKKyAgICByZXN1bHQuCisK
KyAgICBOUEludmFsaWRhdGVGdW5jdGlvblB0ciBpcyBjYWxsZWQgYnkgdGhlIHNjcmlwdGluZyBl
bnZpcm9ubWVudAorICAgIHdoZW4gdGhlIG5hdGl2ZSBjb2RlIGlzIHNodXRkb3duLiAgQW55IGF0
dGVtcHQgdG8gbWVzc2FnZSBhCisgICAgTlBPYmplY3QgaW5zdGFuY2UgYWZ0ZXIgdGhlIGludmFs
aWRhdGUgY2FsbGJhY2sgaGFzIGJlZW4KKyAgICBjYWxsZWQgd2lsbCByZXN1bHQgaW4gdW5kZWZp
bmVkIGJlaGF2aW9yLCBldmVuIGlmIHRoZSBuYXRpdmUgY29kZQorICAgIGlzIHN0aWxsIHJldGFp
bmluZyB0aG9zZSBOUE9iamVjdCBpbnN0YW5jZXMuICAoVGhlIHJ1bnRpbWUKKyAgICB3aWxsIHR5
cGljYWxseSByZXR1cm4gaW1tZWRpYXRlbHksIHdpdGggMCBvciBOVUxMLCBmcm9tIGFuIGF0dGVt
cHQKKyAgICB0byBkaXNwYXRjaCB0byBhIE5QT2JqZWN0LCBidXQgdGhpcyBiZWhhdmlvciBzaG91
bGQgbm90IGJlCisgICAgZGVwZW5kZWQgdXBvbi4pCisKKyAgICBUaGUgTlBFbnVtZXJhdGlvbkZ1
bmN0aW9uUHRyIGZ1bmN0aW9uIG1heSBwYXNzIGFuIGFycmF5IG9mCisgICAgTlBJZGVudGlmaWVy
cyBiYWNrIHRvIHRoZSBjYWxsZXIuIFRoZSBjYWxsZWUgYWxsb2NzIHRoZSBtZW1vcnkgb2YKKyAg
ICB0aGUgYXJyYXkgdXNpbmcgTlBOX01lbUFsbG9jKCksIGFuZCBpdCdzIHRoZSBjYWxsZXIncyBy
ZXNwb25zaWJpbGl0eQorICAgIHRvIHJlbGVhc2UgaXQgdXNpbmcgTlBOX01lbUZyZWUoKS4KICov
CiBzdHJ1Y3QgTlBDbGFzcwogewpAQCAtMjg3LDM5ICszMTAsNDMgQEAgc3RydWN0IE5QQ2xhc3MK
IH07CiAKICNkZWZpbmUgTlBfQ0xBU1NfU1RSVUNUX1ZFUlNJT04gICAgICAzCisKICNkZWZpbmUg
TlBfQ0xBU1NfU1RSVUNUX1ZFUlNJT05fRU5VTSAyCiAjZGVmaW5lIE5QX0NMQVNTX1NUUlVDVF9W
RVJTSU9OX0NUT1IgMwogCiAjZGVmaW5lIE5QX0NMQVNTX1NUUlVDVF9WRVJTSU9OX0hBU19FTlVN
KG5wY2xhc3MpICAgXAotICAgICgobnBjbGFzcyktPnN0cnVjdFZlcnNpb24gPj0gTlBfQ0xBU1Nf
U1RSVUNUX1ZFUlNJT05fRU5VTSkKKyAgICAgICAgKChucGNsYXNzKS0+c3RydWN0VmVyc2lvbiA+
PSBOUF9DTEFTU19TVFJVQ1RfVkVSU0lPTl9FTlVNKQorCiAjZGVmaW5lIE5QX0NMQVNTX1NUUlVD
VF9WRVJTSU9OX0hBU19DVE9SKG5wY2xhc3MpICAgXAotICAgICgobnBjbGFzcyktPnN0cnVjdFZl
cnNpb24gPj0gTlBfQ0xBU1NfU1RSVUNUX1ZFUlNJT05fQ1RPUikKKyAgICAgICAgKChucGNsYXNz
KS0+c3RydWN0VmVyc2lvbiA+PSBOUF9DTEFTU19TVFJVQ1RfVkVSU0lPTl9DVE9SKQogCiBzdHJ1
Y3QgTlBPYmplY3QgewogICAgIE5QQ2xhc3MgKl9jbGFzczsKICAgICB1aW50MzJfdCByZWZlcmVu
Y2VDb3VudDsKLSAgICAvLyBBZGRpdGlvbmFsIHNwYWNlIG1heSBiZSBhbGxvY2F0ZWQgaGVyZSBi
eSB0eXBlcyBvZiBOUE9iamVjdHMKKyAgICAvKgorICAgICAqIEFkZGl0aW9uYWwgc3BhY2UgbWF5
IGJlIGFsbG9jYXRlZCBoZXJlIGJ5IHR5cGVzIG9mIE5QT2JqZWN0cworICAgICAqLwogfTsKIAog
LyoKLSAgICBJZiB0aGUgY2xhc3MgaGFzIGFuIGFsbG9jYXRlIGZ1bmN0aW9uLCBOUE5fQ3JlYXRl
T2JqZWN0IGludm9rZXMgdGhhdCBmdW5jdGlvbiwKLSAgICBvdGhlcndpc2UgYSBOUE9iamVjdCBp
cyBhbGxvY2F0ZWQgYW5kIHJldHVybmVkLiAgSWYgYSBjbGFzcyBoYXMgYW4gYWxsb2NhdGUKLSAg
ICBmdW5jdGlvbiBpdCBpcyB0aGUgcmVzcG9uc2liaWxpdHkgb2YgdGhhdCBpbXBsZW1lbnRhdGlv
biB0byBzZXQgdGhlIGluaXRpYWwgcmV0YWluCi0gICAgY291bnQgdG8gMS4KKyAgICBJZiB0aGUg
Y2xhc3MgaGFzIGFuIGFsbG9jYXRlIGZ1bmN0aW9uLCBOUE5fQ3JlYXRlT2JqZWN0IGludm9rZXMK
KyAgICB0aGF0IGZ1bmN0aW9uLCBvdGhlcndpc2UgYSBOUE9iamVjdCBpcyBhbGxvY2F0ZWQgYW5k
CisgICAgcmV0dXJuZWQuIFRoaXMgbWV0aG9kIHdpbGwgaW5pdGlhbGl6ZSB0aGUgcmVmZXJlbmNl
Q291bnQgbWVtYmVyIG9mCisgICAgdGhlIE5QT2JqZWN0IHRvIDEuCiAqLwogTlBPYmplY3QgKk5Q
Tl9DcmVhdGVPYmplY3QoTlBQIG5wcCwgTlBDbGFzcyAqYUNsYXNzKTsKIAogLyoKICAgICBJbmNy
ZW1lbnQgdGhlIE5QT2JqZWN0J3MgcmVmZXJlbmNlIGNvdW50LgogKi8KLU5QT2JqZWN0ICpOUE5f
UmV0YWluT2JqZWN0IChOUE9iamVjdCAqb2JqKTsKK05QT2JqZWN0ICpOUE5fUmV0YWluT2JqZWN0
KE5QT2JqZWN0ICpucG9iaik7CiAKIC8qCiAgICAgRGVjcmVtZW50ZWQgdGhlIE5QT2JqZWN0J3Mg
cmVmZXJlbmNlIGNvdW50LiAgSWYgdGhlIHJlZmVyZW5jZQogICAgIGNvdW50IGdvZXMgdG8gemVy
bywgdGhlIGNsYXNzJ3MgZGVzdHJveSBmdW5jdGlvbiBpcyBpbnZva2UgaWYKICAgICBzcGVjaWZp
ZWQsIG90aGVyd2lzZSB0aGUgb2JqZWN0IGlzIGZyZWVkIGRpcmVjdGx5LgogKi8KLXZvaWQgTlBO
X1JlbGVhc2VPYmplY3QgKE5QT2JqZWN0ICpvYmopOwordm9pZCBOUE5fUmVsZWFzZU9iamVjdChO
UE9iamVjdCAqbnBvYmopOwogCiAvKgogICAgIEZ1bmN0aW9ucyB0byBhY2Nlc3Mgc2NyaXB0IG9i
amVjdHMgcmVwcmVzZW50ZWQgYnkgTlBPYmplY3QuCkBAIC0zMzIsMjIgKzM1OSwzMiBAQCB2b2lk
IE5QTl9SZWxlYXNlT2JqZWN0IChOUE9iamVjdCAqb2JqKTsKICAgICBDYWxscyBtYWRlIGZyb20g
cGx1Z2luIGNvZGUgdG8gc2NyaXB0IG11c3QgYmUgbWFkZSBmcm9tIHRoZSB0aHJlYWQKICAgICBv
biB3aGljaCB0aGUgcGx1Z2luIHdhcyBpbml0aWFsaXplZC4KICovCi1ib29sIE5QTl9JbnZva2Uo
TlBQIG5wcCwgTlBPYmplY3QgKm5wb2JqLCBOUElkZW50aWZpZXIgbWV0aG9kTmFtZSwgY29uc3Qg
TlBWYXJpYW50ICphcmdzLCB1aW50MzJfdCBhcmdDb3VudCwgTlBWYXJpYW50ICpyZXN1bHQpOwot
Ym9vbCBOUE5fSW52b2tlRGVmYXVsdChOUFAgbnBwLCBOUE9iamVjdCAqbnBvYmosIGNvbnN0IE5Q
VmFyaWFudCAqYXJncywgdWludDMyX3QgYXJnQ291bnQsIE5QVmFyaWFudCAqcmVzdWx0KTsKLWJv
b2wgTlBOX0V2YWx1YXRlKE5QUCBucHAsIE5QT2JqZWN0ICpucG9iaiwgTlBTdHJpbmcgKnNjcmlw
dCwgTlBWYXJpYW50ICpyZXN1bHQpOwotYm9vbCBOUE5fR2V0UHJvcGVydHkoTlBQIG5wcCwgTlBP
YmplY3QgKm5wb2JqLCBOUElkZW50aWZpZXIgcHJvcGVydHlOYW1lLCBOUFZhcmlhbnQgKnJlc3Vs
dCk7Ci1ib29sIE5QTl9TZXRQcm9wZXJ0eShOUFAgbnBwLCBOUE9iamVjdCAqbnBvYmosIE5QSWRl
bnRpZmllciBwcm9wZXJ0eU5hbWUsIGNvbnN0IE5QVmFyaWFudCAqdmFsdWUpOworCitib29sIE5Q
Tl9JbnZva2UoTlBQIG5wcCwgTlBPYmplY3QgKm5wb2JqLCBOUElkZW50aWZpZXIgbWV0aG9kTmFt
ZSwKKyAgICAgICAgICAgICAgICBjb25zdCBOUFZhcmlhbnQgKmFyZ3MsIHVpbnQzMl90IGFyZ0Nv
dW50LCBOUFZhcmlhbnQgKnJlc3VsdCk7Citib29sIE5QTl9JbnZva2VEZWZhdWx0KE5QUCBucHAs
IE5QT2JqZWN0ICpucG9iaiwgY29uc3QgTlBWYXJpYW50ICphcmdzLAorICAgICAgICAgICAgICAg
ICAgICAgICB1aW50MzJfdCBhcmdDb3VudCwgTlBWYXJpYW50ICpyZXN1bHQpOworYm9vbCBOUE5f
RXZhbHVhdGUoTlBQIG5wcCwgTlBPYmplY3QgKm5wb2JqLCBOUFN0cmluZyAqc2NyaXB0LAorICAg
ICAgICAgICAgICAgICAgTlBWYXJpYW50ICpyZXN1bHQpOworYm9vbCBOUE5fR2V0UHJvcGVydHko
TlBQIG5wcCwgTlBPYmplY3QgKm5wb2JqLCBOUElkZW50aWZpZXIgcHJvcGVydHlOYW1lLAorICAg
ICAgICAgICAgICAgICAgICAgTlBWYXJpYW50ICpyZXN1bHQpOworYm9vbCBOUE5fU2V0UHJvcGVy
dHkoTlBQIG5wcCwgTlBPYmplY3QgKm5wb2JqLCBOUElkZW50aWZpZXIgcHJvcGVydHlOYW1lLAor
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgTlBWYXJpYW50ICp2YWx1ZSk7CiBib29sIE5QTl9S
ZW1vdmVQcm9wZXJ0eShOUFAgbnBwLCBOUE9iamVjdCAqbnBvYmosIE5QSWRlbnRpZmllciBwcm9w
ZXJ0eU5hbWUpOwogYm9vbCBOUE5fSGFzUHJvcGVydHkoTlBQIG5wcCwgTlBPYmplY3QgKm5wb2Jq
LCBOUElkZW50aWZpZXIgcHJvcGVydHlOYW1lKTsKIGJvb2wgTlBOX0hhc01ldGhvZChOUFAgbnBw
LCBOUE9iamVjdCAqbnBvYmosIE5QSWRlbnRpZmllciBtZXRob2ROYW1lKTsKLWJvb2wgTlBOX0Vu
dW1lcmF0ZShOUFAgbnBwLCBOUE9iamVjdCAqbnBvYmosIE5QSWRlbnRpZmllciAqKmlkZW50aWZp
ZXIsIHVpbnQzMl90ICpjb3VudCk7Ci1ib29sIE5QTl9Db25zdHJ1Y3QoTlBQIG5wcCwgTlBPYmpl
Y3QgKm5wb2JqLCBjb25zdCBOUFZhcmlhbnQgKmFyZ3MsIHVpbnQzMl90IGFyZ0NvdW50LCBOUFZh
cmlhbnQgKnJlc3VsdCk7Citib29sIE5QTl9FbnVtZXJhdGUoTlBQIG5wcCwgTlBPYmplY3QgKm5w
b2JqLCBOUElkZW50aWZpZXIgKippZGVudGlmaWVyLAorICAgICAgICAgICAgICAgICAgIHVpbnQz
Ml90ICpjb3VudCk7Citib29sIE5QTl9Db25zdHJ1Y3QoTlBQIG5wcCwgTlBPYmplY3QgKm5wb2Jq
LCBjb25zdCBOUFZhcmlhbnQgKmFyZ3MsCisgICAgICAgICAgICAgICAgICAgdWludDMyX3QgYXJn
Q291bnQsIE5QVmFyaWFudCAqcmVzdWx0KTsKIAogLyoKLSAgICBOUE5fU2V0RXhjZXB0aW9uIG1h
eSBiZSBjYWxsZWQgdG8gdHJpZ2dlciBhIHNjcmlwdCBleGNlcHRpb24gdXBvbiByZXR1cm4KLSAg
ICBmcm9tIGVudHJ5IHBvaW50cyBpbnRvIE5QT2JqZWN0cy4KKyAgICBOUE5fU2V0RXhjZXB0aW9u
IG1heSBiZSBjYWxsZWQgdG8gdHJpZ2dlciBhIHNjcmlwdCBleGNlcHRpb24gdXBvbgorICAgIHJl
dHVybiBmcm9tIGVudHJ5IHBvaW50cyBpbnRvIE5QT2JqZWN0cy4gIFR5cGljYWwgdXNhZ2U6CisK
KyAgICBOUE5fU2V0RXhjZXB0aW9uIChucG9iaiwgbWVzc2FnZSk7CiAqLwotdm9pZCBOUE5fU2V0
RXhjZXB0aW9uIChOUE9iamVjdCAqb2JqLCBjb25zdCBOUFVURjggKm1lc3NhZ2UpOwordm9pZCBO
UE5fU2V0RXhjZXB0aW9uKE5QT2JqZWN0ICpucG9iaiwgY29uc3QgTlBVVEY4ICptZXNzYWdlKTsK
IAogI2lmZGVmIF9fY3BsdXNwbHVzCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55412</attachid>
            <date>2010-05-07 13:17:44 -0700</date>
            <delta_ts>2010-05-08 13:47:47 -0700</delta_ts>
            <desc>Change header guard to match upstream</desc>
            <filename>38666-header-guard.patch</filename>
            <type>text/plain</type>
            <size>1021</size>
            <attacher name="Stuart Morgan">stuartmorgan</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1ODk3MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMTAtMDUtMDcgIFN0dWFydCBNb3JnYW4gIDxzdHVhcnRtb3JnYW5A
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIENoYW5nZSB0aGUgbnBhcGkuaCBoZWFkZXIgZ3VhcmRzIHRvIG1hdGNoIHRoZSBucGFw
aS1oZWFkZXJzIHJlcG9zaXRvcnkKKyAgICAgICAgY29weS4KKworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg2NjYKKworICAgICAgICAqIGJyaWRnZS9u
cGFwaS5oOgorCiAyMDEwLTA1LTA3ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlh
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEgU2lsdmEuCkluZGV4
OiBXZWJDb3JlL2JyaWRnZS9ucGFwaS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYnJpZGdlL25w
YXBpLmgJKHJldmlzaW9uIDU4ODg2KQorKysgV2ViQ29yZS9icmlkZ2UvbnBhcGkuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNDAsOCArNDAsOCBAQAogICAqLwogIAogCi0jaWZuZGVmIF9OUEFQSV9IXwot
I2RlZmluZSBfTlBBUElfSF8KKyNpZm5kZWYgbnBhcGlfaF8KKyNkZWZpbmUgbnBhcGlfaF8KIAog
I2luY2x1ZGUgIm5wdHlwZXMuaCIKIApAQCAtODQ1LDQgKzg0NSw0IEBAIE5QQm9vbCAgICAgIE5Q
Tl9Db252ZXJ0UG9pbnQoTlBQIGluc3RhbmMKIH0gIC8qIGVuZCBleHRlcm4gIkMiICovCiAjZW5k
aWYKIAotI2VuZGlmIC8qIF9OUEFQSV9IXyAqLworI2VuZGlmIC8qIG5wYXBpX2hfICovCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55622</attachid>
            <date>2010-05-10 16:50:14 -0700</date>
            <delta_ts>2010-05-20 14:05:19 -0700</delta_ts>
            <desc>Add/remove platform-specific code</desc>
            <filename>38666-platforms.patch</filename>
            <type>text/plain</type>
            <size>9606</size>
            <attacher name="Stuart Morgan">stuartmorgan</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1OTEwNCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTggQEAKKzIwMTAtMDUtMTAgIFN0dWFydCBNb3JnYW4gIDxzdHVhcnRtb3JnYW5A
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEJyaW5nIG5wYXBpLmggbW9yZSBpbiBsaW5lIHdpdGggdXBzdHJlYW0gbnBhcGktaGVh
ZGVycyB2ZXJzaW9uOgorICAgICAgICAtIFJlbW92ZSBvYnNvbGV0ZSBYUF9NQUMgc2VjdGlvbnMu
CisgICAgICAgIC0gUmVtb3ZlIE1ldHJvd2Vya3MgZGVmaW5lcy4KKyAgICAgICAgLSBBZGQgT1Mv
MiBkZWZpbmVzLgorICAgICAgICAtIEFkZCBNYWVtbyBkZWZpbmVzLgorICAgICAgICAtIEFkZCBu
ZXcgdmVyc2lvbiBvZiB0aGUgY3VzdG9tIENhcmJvbiBldmVudCBkZWZpbml0aW9ucy4KKworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg2NjYKKworICAg
ICAgICAqIGJyaWRnZS9ucGFwaS5oOgorCiAyMDEwLTA1LTEwICBKaWFuIExpICA8amlhbmxpQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpJbmRleDogV2Vi
Q29yZS9icmlkZ2UvbnBhcGkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JyaWRnZS9ucGFwaS5o
CShyZXZpc2lvbiA1OTA3OSkKKysrIFdlYkNvcmUvYnJpZGdlL25wYXBpLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTM4LDggKzM4LDE4IEBACiAjaWZuZGVmIG5wYXBpX2hfCiAjZGVmaW5lIG5wYXBpX2hf
CiAKKyNpZmRlZiBfX09TMl9fCisjcHJhZ21hIHBhY2soMSkKKyNlbmRpZgorCiAjaW5jbHVkZSAi
bnB0eXBlcy5oIgogCisjaWYgZGVmaW5lZCAoX19PUzJfXykgfHwgZGVmaW5lZCAoT1MyKQorI2lm
bmRlZiBYUF9PUzIKKyNkZWZpbmUgWFBfT1MyIDEKKyNlbmRpZgorI2VuZGlmCisKICNpZmRlZiBJ
TkNMVURFX0pBVkEKICNpbmNsdWRlICJqcmkuaCIgICAgICAgICAgICAgICAgLyogSmF2YSBSdW50
aW1lIEludGVyZmFjZSAqLwogI2Vsc2UKQEAgLTQ4LDQxICs1OCwyMCBAQAogI2VuZGlmCiAKICNp
ZiBkZWZpbmVkKF9XSU4zMikgJiYgIWRlZmluZWQoX19TWU1CSUFOMzJfXykKKyNpbmNsdWRlIDx3
aW5kb3dzLmg+CiAjaWZuZGVmIFhQX1dJTgogI2RlZmluZSBYUF9XSU4gMQogI2VuZGlmCiAjZW5k
aWYKIAogI2lmZGVmIF9fU1lNQklBTjMyX18KLSMgICBpZm5kZWYgWFBfU1lNQklBTgotIyAgICAg
ICBkZWZpbmUgWFBfU1lNQklBTiAxCi0jICAgZW5kaWYKKyNpZm5kZWYgWFBfU1lNQklBTgorI2Rl
ZmluZSBYUF9TWU1CSUFOIDEKKyNlbmRpZgogI2VuZGlmICAvKiBfX1NZTUJJQU4zMl9fICovCiAK
LSNpZmRlZiBfX01XRVJLU19fCi0jICAgIGRlZmluZSBfZGVjbHNwZWMgX19kZWNsc3BlYwotIyAg
ICBpZmRlZiBtYWNpbnRvc2gKLSMgICAgICAgIGlmbmRlZiBYUF9NQUMKLSMgICAgICAgICAgICBk
ZWZpbmUgWFBfTUFDIDEKLSMgICAgICAgIGVuZGlmIC8qIFhQX01BQyAqLwotIyAgICBlbmRpZiAv
KiBtYWNpbnRvc2ggKi8KLSMgICAgaWZkZWYgX19JTlRFTF9fCi0jICAgICAgIGlmbmRlZiBYUF9T
WU1CSUFOCi0jICAgICAgICAgICB1bmRlZiBOVUxMCi0jICAgICAgICAgICBpZm5kZWYgWFBfV0lO
Ci0jICAgICAgICAgICAgICAgZGVmaW5lIFhQX1dJTiAxCi0jICAgICAgICAgICBlbmRpZiAvKiBY
UF9XSU4gKi8KLSMgICAgICAgZW5kaWYgLyogWFBfU1lNQklBTiAqLwotIyAgICBlbmRpZiAvKiBf
X0lOVEVMX18gKi8KLSNlbmRpZiAvKiBfX01XRVJLU19fICovCi0KICNpZiBkZWZpbmVkKF9fQVBQ
TEVfQ0NfXykgJiYgIWRlZmluZWQoX19NQUNPU19DTEFTU0lDX18pICYmICFkZWZpbmVkKFhQX1VO
SVgpCi0jICAgZGVmaW5lIFhQX01BQ09TWAotI2VuZGlmCi0KLSNpZmRlZiBYUF9NQUMKLSAgICAj
aW5jbHVkZSA8UXVpY2tkcmF3Lmg+Ci0gICAgI2luY2x1ZGUgPEV2ZW50cy5oPgorI2RlZmluZSBY
UF9NQUNPU1gKICNlbmRpZgogCiAjaWYgZGVmaW5lZChYUF9NQUNPU1gpICYmIGRlZmluZWQoX19M
UDY0X18pCkBAIC0xMDUsMTIgKzk0LDggQEAKICNlbmRpZgogCiAjaWYgZGVmaW5lZChYUF9TWU1C
SUFOKQotICAgICNpbmNsdWRlIDxRRXZlbnQ+Ci0gICAgI2luY2x1ZGUgPFFSZWdpb24+Ci0jZW5k
aWYKLQotI2lmZGVmIFhQX1dJTgotICAgICNpbmNsdWRlIDx3aW5kb3dzLmg+CisjaW5jbHVkZSA8
UUV2ZW50PgorI2luY2x1ZGUgPFFSZWdpb24+CiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8K
QEAgLTEyMCw2ICsxMDUsNDkgQEAKICNkZWZpbmUgTlBfVkVSU0lPTl9NQUpPUiAwCiAjZGVmaW5l
IE5QX1ZFUlNJT05fTUlOT1IgMjQKIAorCisvKiBUaGUgT1MvMiB2ZXJzaW9uIG9mIE5ldHNjYXBl
IHVzZXMgUkNfREFUQSB0byBkZWZpbmUgdGhlCisgICBtaW1lIHR5cGVzLCBmaWxlIGV4dGVuc2lv
bnMsIGV0YyB0aGF0IGFyZSByZXF1aXJlZC4KKyAgIFVzZSBhIHZlcnRpY2FsIGJhciB0byBzZXBh
cmF0ZSB0eXBlcywgZW5kIHR5cGVzIHdpdGggXDAuCisgICBGaWxlVmVyc2lvbiBhbmQgUHJvZHVj
dFZlcnNpb24gYXJlIDMyYml0IGludHMsIGFsbCBvdGhlcgorICAgZW50cmllcyBhcmUgc3RyaW5n
cyB0aGF0IE1VU1QgYmUgdGVybWluYXRlZCB3aXRoIGEgXDAuCisKK0FOIEVYQU1QTEU6CisKK1JD
REFUQSBOUF9JTkZPX1Byb2R1Y3RWZXJzaW9uIHsgMSwwLDAsMSx9CisKK1JDREFUQSBOUF9JTkZP
X01JTUVUeXBlICAgIHsgInZpZGVvL3gtdmlkZW98IiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgInZpZGVvL3gtZmxpY2tcMCIgfQorUkNEQVRBIE5QX0lORk9fRmlsZUV4dGVudHMgeyAi
YXZpfCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmbGNcMCIgfQorUkNEQVRBIE5Q
X0lORk9fRmlsZU9wZW5OYW1leyAiTU1PUzIgdmlkZW8gcGxheWVyKCouYXZpKXwiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiTU1PUzIgRmxjL0ZsaSBwbGF5ZXIoKi5mbGMpXDAiIH0K
KworUkNEQVRBIE5QX0lORk9fRmlsZVZlcnNpb24gICAgICAgeyAxLDAsMCwxIH0KK1JDREFUQSBO
UF9JTkZPX0NvbXBhbnlOYW1lICAgICAgIHsgIk5ldHNjYXBlIENvbW11bmljYXRpb25zXDAiIH0K
K1JDREFUQSBOUF9JTkZPX0ZpbGVEZXNjcmlwdGlvbiAgIHsgIk5QQVZJMzIgRXh0ZW5zaW9uIERM
TFwwIgorUkNEQVRBIE5QX0lORk9fSW50ZXJuYWxOYW1lICAgICAgeyAiTlBBVkkzMlwwIiApCitS
Q0RBVEEgTlBfSU5GT19MZWdhbENvcHlyaWdodCAgICB7ICJDb3B5cmlnaHQgTmV0c2NhcGUgQ29t
bXVuaWNhdGlvbnMgXDI1MSAxOTk2XDAiCitSQ0RBVEEgTlBfSU5GT19PcmlnaW5hbEZpbGVuYW1l
ICB7ICJOVkFQSTMyLkRMTCIgfQorUkNEQVRBIE5QX0lORk9fUHJvZHVjdE5hbWUgICAgICAgeyAi
TlBBVkkzMiBEeW5hbWljIExpbmsgTGlicmFyeVwwIiB9CisqLworLyogUkNfREFUQSB0eXBlcyBm
b3IgdmVyc2lvbiBpbmZvIC0gcmVxdWlyZWQgKi8KKyNkZWZpbmUgTlBfSU5GT19Qcm9kdWN0VmVy
c2lvbiAgICAgIDEKKyNkZWZpbmUgTlBfSU5GT19NSU1FVHlwZSAgICAgICAgICAgIDIKKyNkZWZp
bmUgTlBfSU5GT19GaWxlT3Blbk5hbWUgICAgICAgIDMKKyNkZWZpbmUgTlBfSU5GT19GaWxlRXh0
ZW50cyAgICAgICAgIDQKKy8qIFJDX0RBVEEgdHlwZXMgZm9yIHZlcnNpb24gaW5mbyAtIHVzZWQg
aWYgZm91bmQgKi8KKyNkZWZpbmUgTlBfSU5GT19GaWxlRGVzY3JpcHRpb24gICAgIDUKKyNkZWZp
bmUgTlBfSU5GT19Qcm9kdWN0TmFtZSAgICAgICAgIDYKKy8qIFJDX0RBVEEgdHlwZXMgZm9yIHZl
cnNpb24gaW5mbyAtIG9wdGlvbmFsICovCisjZGVmaW5lIE5QX0lORk9fQ29tcGFueU5hbWUgICAg
ICAgICA3CisjZGVmaW5lIE5QX0lORk9fRmlsZVZlcnNpb24gICAgICAgICA4CisjZGVmaW5lIE5Q
X0lORk9fSW50ZXJuYWxOYW1lICAgICAgICA5CisjZGVmaW5lIE5QX0lORk9fTGVnYWxDb3B5cmln
aHQgICAgICAxMAorI2RlZmluZSBOUF9JTkZPX09yaWdpbmFsRmlsZW5hbWUgICAgMTEKKworI2lm
bmRlZiBSQ19JTlZPS0VECisKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAvKiAgICAgICAgICAgICAgICAg
ICAgICAgRGVmaW5pdGlvbiBvZiBCYXNpYyBUeXBlcyAgICAgICAgICAgICAgICAgICAgICAqLwog
LyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tKi8KQEAgLTE0NCw3ICsxNzIsNyBAQCB0eXBlZGVmIGNoYXIqICAgICAg
ICAgTlBNSU1FVHlwZTsKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKICNpZiAhZGVmaW5lZChfX0xQNjRf
XykKLSNpZiBkZWZpbmVkKFhQX01BQykgfHwgZGVmaW5lZChYUF9NQUNPU1gpCisjaWYgZGVmaW5l
ZChYUF9NQUNPU1gpCiAjcHJhZ21hIG9wdGlvbnMgYWxpZ249bWFjNjhrCiAjZW5kaWYKICNlbmRp
ZiAvKiBfX0xQNjRfXyAqLwpAQCAtMjAxLDYgKzIyOSwxOCBAQCB0eXBlZGVmIHN0cnVjdCBfTlBS
ZWN0CiAgIHVpbnQxNl90IHJpZ2h0OwogfSBOUFJlY3Q7CiAKK3R5cGVkZWYgc3RydWN0IF9OUFNp
emUKK3sKKyAgaW50MzJfdCB3aWR0aDsKKyAgaW50MzJfdCBoZWlnaHQ7Cit9IE5QU2l6ZTsKKwor
LyogUmV0dXJuIHZhbHVlcyBmb3IgTlBQX0hhbmRsZUV2ZW50ICovCisjZGVmaW5lIGtOUEV2ZW50
Tm90SGFuZGxlZCAwCisjZGVmaW5lIGtOUEV2ZW50SGFuZGxlZCAxCisvKiBFeGFjdCBtZWFuaW5n
IG11c3QgYmUgc3BlYydkIGluIGV2ZW50IG1vZGVsLiAqLworI2RlZmluZSBrTlBFdmVudFN0YXJ0
SU1FIDIKKwogI2lmZGVmIFhQX1VOSVgKIC8qCiAgKiBVbml4IHNwZWNpZmljIHN0cnVjdHVyZXMg
YW5kIGRlZmluaXRpb25zCkBAIC0yODAsOCArMzIwLDggQEAgdHlwZWRlZiBlbnVtIHsKICNkZWZp
bmUgX05QX0FCSV9NSVhJTl9GT1JfR0NDMyAwCiAjZW5kaWYKIAorI2lmZGVmIFhQX01BQ09TWAog
I2RlZmluZSBOUF9BQklfTUFDSE9fTUFTSyAweDAxMDAwMDAwCi0jaWYgKGRlZmluZWQoVEFSR0VU
X1JUX01BQ19NQUNITykpCiAjZGVmaW5lIF9OUF9BQklfTUlYSU5fRk9SX01BQ0hPIE5QX0FCSV9N
QUNIT19NQVNLCiAjZWxzZQogI2RlZmluZSBfTlBfQUJJX01JWElOX0ZPUl9NQUNITyAwCkBAIC0z
MjQsNiArMzY0LDkgQEAgdHlwZWRlZiBlbnVtIHsKICAgICovCiAgIE5QUFZwbHVnaW5XYW50c0Fs
bE5ldHdvcmtTdHJlYW1zID0gMTgsCiAKKyAgLyogQnJvd3NlcnMgY2FuIHJldHJpZXZlIGEgbmF0
aXZlIEFUSyBhY2Nlc3NpYmlsaXR5IHBsdWcgSUQgdmlhIHRoaXMgdmFyaWFibGUuICovCisgIE5Q
UFZwbHVnaW5OYXRpdmVBY2Nlc3NpYmxlQXRrUGx1Z0lkID0gMTksCisKICAgLyogQ2hlY2tzIHRv
IHNlZSBpZiB0aGUgcGx1Zy1pbiB3b3VsZCBsaWtlIHRoZSBicm93c2VyIHRvIGxvYWQgdGhlICJz
cmMiIGF0dHJpYnV0ZS4gKi8KICAgTlBQVnBsdWdpbkNhbmNlbFNyY1N0cmVhbSA9IDIwCiAKQEAg
LTMzNSw2ICszNzgsMTAgQEAgdHlwZWRlZiBlbnVtIHsKICAgLyogSW4gdGhlIE5QRHJhd2luZ01v
ZGVsQ29yZUFuaW1hdGlvbiBkcmF3aW5nIG1vZGVsLCB0aGUgYnJvd3NlciBhc2tzIHRoZSBwbHVn
LWluIGZvciBhIENvcmUgQW5pbWF0aW9uIGxheWVyLiAqLwogICAsIE5QUFZwbHVnaW5Db3JlQW5p
bWF0aW9uTGF5ZXIgPSAxMDAzCiAjZW5kaWYKKworI2lmIGRlZmluZWQoTU9aX1BMQVRGT1JNX01B
RU1PKSAmJiAoTU9aX1BMQVRGT1JNX01BRU1PID09IDUpCisgICwgTlBQVnBsdWdpbldpbmRvd2xl
c3NMb2NhbEJvb2wgPSAyMDAyCisjZW5kaWYKIH0gTlBQVmFyaWFibGU7CiAKIC8qCkBAIC0zNzgs
NiArNDI1LDkgQEAgdHlwZWRlZiBlbnVtIHsKICNlbmRpZgogICAsIE5QTlZzdXBwb3J0c0NvY29h
Qm9vbCA9IDMwMDEgLyogVFJVRSBpZiB0aGUgYnJvd3NlciBzdXBwb3J0cyB0aGUgQ29jb2EgZXZl
bnQgbW9kZWwgKi8KICNlbmRpZiAvKiBYUF9NQUNPU1ggKi8KKyNpZiBkZWZpbmVkKE1PWl9QTEFU
Rk9STV9NQUVNTykgJiYgKE1PWl9QTEFURk9STV9NQUVNTyA9PSA1KQorICAsIE5QTlZTdXBwb3J0
c1dpbmRvd2xlc3NMb2NhbCA9IDIwMDIKKyNlbmRpZgogfSBOUE5WYXJpYWJsZTsKIAogdHlwZWRl
ZiBlbnVtIHsKQEAgLTM4Niw2ICs0MzYsMTQgQEAgdHlwZWRlZiBlbnVtIHsKIH0gTlBOVVJMVmFy
aWFibGU7CiAKIC8qCisgKiBUaGUgdHlwZSBvZiBUb29sa2l0IHRoZSB3aWRnZXRzIHVzZQorICov
Cit0eXBlZGVmIGVudW0geworICBOUE5WR3RrMTIgPSAxLAorICBOUE5WR3RrMgorfSBOUE5Ub29s
a2l0VHlwZTsKKworLyoKICAqIFRoZSB0eXBlIG9mIGEgTlBXaW5kb3cgLSBpdCBzcGVjaWZpZXMg
dGhlIHR5cGUgb2YgdGhlIGRhdGEgc3RydWN0dXJlCiAgKiByZXR1cm5lZCBpbiB0aGUgd2luZG93
IGZpZWxkLgogICovCkBAIC00MTAsNiArNDY4LDIyIEBAIHR5cGVkZWYgc3RydWN0IF9OUFdpbmRv
dwogICBOUFdpbmRvd1R5cGUgdHlwZTsgLyogSXMgdGhpcyBhIHdpbmRvdyBvciBhIGRyYXdhYmxl
PyAqLwogfSBOUFdpbmRvdzsKIAordHlwZWRlZiBzdHJ1Y3QgX05QSW1hZ2VFeHBvc2UKK3sKKyAg
Y2hhciogICAgZGF0YTsgICAgICAgLyogaW1hZ2UgcG9pbnRlciAqLworICBpbnQzMl90ICBzdHJp
ZGU7ICAgICAvKiBTdHJpZGUgb2YgZGF0YSBpbWFnZSBwb2ludGVyICovCisgIGludDMyX3QgIGRl
cHRoOyAgICAgIC8qIERlcHRoIG9mIGltYWdlIHBvaW50ZXIgKi8KKyAgaW50MzJfdCAgeDsgICAg
ICAgICAgLyogRXhwb3NlIHggKi8KKyAgaW50MzJfdCAgeTsgICAgICAgICAgLyogRXhwb3NlIHkg
Ki8KKyAgdWludDMyX3Qgd2lkdGg7ICAgICAgLyogRXhwb3NlIHdpZHRoICovCisgIHVpbnQzMl90
IGhlaWdodDsgICAgIC8qIEV4cG9zZSBoZWlnaHQgKi8KKyAgTlBTaXplICAgZGF0YVNpemU7ICAg
LyogRGF0YSBidWZmZXIgc2l6ZSAqLworICBmbG9hdCAgICB0cmFuc2xhdGVYOyAvKiB0cmFuc2xh
dGUgWCBtYXRyaXggdmFsdWUgKi8KKyAgZmxvYXQgICAgdHJhbnNsYXRlWTsgLyogdHJhbnNsYXRl
IFkgbWF0cml4IHZhbHVlICovCisgIGZsb2F0ICAgIHNjYWxlWDsgICAgIC8qIHNjYWxlIFggbWF0
cml4IHZhbHVlICovCisgIGZsb2F0ICAgIHNjYWxlWTsgICAgIC8qIHNjYWxlIFkgbWF0cml4IHZh
bHVlICovCit9IE5QSW1hZ2VFeHBvc2U7CisKIHR5cGVkZWYgc3RydWN0IF9OUEZ1bGxQcmludAog
ewogICBOUEJvb2wgcGx1Z2luUHJpbnRlZDsvKiBTZXQgVFJVRSBpZiBwbHVnaW4gaGFuZGxlZCBm
dWxsc2NyZWVuIHByaW50aW5nICovCkBAIC00MzQsNyArNTA4LDcgQEAgdHlwZWRlZiBzdHJ1Y3Qg
X05QUHJpbnQKICAgfSBwcmludDsKIH0gTlBQcmludDsKIAotI2lmIGRlZmluZWQoWFBfTUFDKSB8
fCBkZWZpbmVkKFhQX01BQ09TWCkKKyNpZiBkZWZpbmVkKFhQX01BQ09TWCkKICNpZm5kZWYgTlBf
Tk9fQ0FSQk9OCiB0eXBlZGVmIEV2ZW50UmVjb3JkIE5QRXZlbnQ7CiAjZW5kaWYKQEAgLTQ0Nywx
NSArNTIxLDIwIEBAIHR5cGVkZWYgc3RydWN0IF9OUEV2ZW50CiAgIHVpbnRwdHJfdCB3UGFyYW07
CiAgIHVpbnRwdHJfdCBsUGFyYW07CiB9IE5QRXZlbnQ7CisjZWxpZiBkZWZpbmVkKFhQX09TMikK
K3R5cGVkZWYgc3RydWN0IF9OUEV2ZW50Cit7CisgIHVpbnQzMl90IGV2ZW50OworICB1aW50MzJf
dCB3UGFyYW07CisgIHVpbnQzMl90IGxQYXJhbTsKK30gTlBFdmVudDsKICNlbGlmIGRlZmluZWQg
KFhQX1VOSVgpCiB0eXBlZGVmIFhFdmVudCBOUEV2ZW50OwogI2Vsc2UKIHR5cGVkZWYgdm9pZCog
IE5QRXZlbnQ7CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoWFBfTUFDKQotdHlwZWRlZiBSZ25IYW5k
bGUgTlBSZWdpb247Ci0jZWxpZiBkZWZpbmVkKFhQX01BQ09TWCkKKyNpZiBkZWZpbmVkKFhQX01B
Q09TWCkKIHR5cGVkZWYgdm9pZCAqTlBSZWdpb247CiAjaWZuZGVmIE5QX05PX1FVSUNLRFJBVwog
dHlwZWRlZiBSZ25IYW5kbGUgTlBRRFJlZ2lvbjsKQEAgLTU4NCwxNSArNjYzLDI0IEBAIHR5cGVk
ZWYgc3RydWN0IF9OUENvY29hRXZlbnQgewogICB9IGRhdGE7CiB9IE5QQ29jb2FFdmVudDsKIAot
I2VuZGlmIC8qIFhQX01BQ09TWCAqLwotCi0jaWYgZGVmaW5lZChYUF9NQUMpIHx8IGRlZmluZWQo
WFBfTUFDT1NYKQotLyogIE5vbi1zdGFuZGFyZCBldmVudCB0eXBlcyB0aGF0IGNhbiBiZSBwYXNz
ZWQgdG8gSGFuZGxlRXZlbnQgKi8KKyNpZm5kZWYgTlBfTk9fQ0FSQk9OCisvKiBOb24tc3RhbmRh
cmQgZXZlbnQgdHlwZXMgdGhhdCBjYW4gYmUgcGFzc2VkIHRvIEhhbmRsZUV2ZW50ICovCitlbnVt
IE5QRXZlbnRUeXBlIHsKKyAgTlBFdmVudFR5cGVfR2V0Rm9jdXNFdmVudCA9IChvc0V2dCArIDE2
KSwKKyAgTlBFdmVudFR5cGVfTG9zZUZvY3VzRXZlbnQsCisgIE5QRXZlbnRUeXBlX0FkanVzdEN1
cnNvckV2ZW50LAorICBOUEV2ZW50VHlwZV9NZW51Q29tbWFuZEV2ZW50LAorICBOUEV2ZW50VHlw
ZV9DbGlwcGluZ0NoYW5nZWRFdmVudCwKKyAgTlBFdmVudFR5cGVfU2Nyb2xsaW5nQmVnaW5zRXZl
bnQgPSAxMDAwLAorICBOUEV2ZW50VHlwZV9TY3JvbGxpbmdFbmRzRXZlbnQKK307CisvKiBPYnNv
bGV0ZSB2ZXJzaW9ucyBvZiB0aGUgYWJvdmUgKi8KICNkZWZpbmUgZ2V0Rm9jdXNFdmVudCAgICAg
ICAgKG9zRXZ0ICsgMTYpCiAjZGVmaW5lIGxvc2VGb2N1c0V2ZW50ICAgICAgICAob3NFdnQgKyAx
NykKICNkZWZpbmUgYWRqdXN0Q3Vyc29yRXZlbnQgICAob3NFdnQgKyAxOCkKLSNlbmRpZiAvKiBY
UF9NQUMgKi8KKyNlbmRpZiAvKiBOUF9OT19DQVJCT04gKi8KIAorI2VuZGlmIC8qIFhQX01BQ09T
WCAqLwogCiAvKgogICogVmFsdWVzIGZvciBtb2RlIHBhc3NlZCB0byBOUFBfTmV3OgpAQCAtNjEx
LDcgKzY5OSw3IEBAIHR5cGVkZWYgc3RydWN0IF9OUENvY29hRXZlbnQgewogI2RlZmluZSBOUF9N
QVhSRUFEWSAoKCh1bnNpZ25lZCkofjApPDwxKT4+MSkKIAogI2lmICFkZWZpbmVkKF9fTFA2NF9f
KQotI2lmIGRlZmluZWQoWFBfTUFDKSB8fCBkZWZpbmVkKFhQX01BQ09TWCkKKyNpZiBkZWZpbmVk
KFhQX01BQ09TWCkKICNwcmFnbWEgb3B0aW9ucyBhbGlnbj1yZXNldAogI2VuZGlmCiAjZW5kaWYg
LyogX19MUDY0X18gKi8KQEAgLTc4OCw0ICs4NzYsOSBAQCBOUEJvb2wgICAgICAgICAgICAgICAg
TlBOX0NvbnZlcnRQb2ludChOCiB9ICAvKiBlbmQgZXh0ZXJuICJDIiAqLwogI2VuZGlmCiAKKyNl
bmRpZiAvKiBSQ19JTlZPS0VEICovCisjaWZkZWYgX19PUzJfXworI3ByYWdtYSBwYWNrKCkKKyNl
bmRpZgorCiAjZW5kaWYgLyogbnBhcGlfaF8gKi8K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56028</attachid>
            <date>2010-05-13 15:13:57 -0700</date>
            <delta_ts>2010-06-16 13:08:20 -0700</delta_ts>
            <desc>Add/remove platform-specific code (v2)</desc>
            <filename>38666-platforms-v2.patch</filename>
            <type>text/plain</type>
            <size>19504</size>
            <attacher name="Stuart Morgan">stuartmorgan</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1OTEwNCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMTAtMDUtMTAgIFN0dWFydCBNb3JnYW4gIDxzdHVhcnRtb3JnYW5A
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEJyaW5nIG5wYXBpLmggbW9yZSBpbiBsaW5lIHdpdGggdXBzdHJlYW0gbnBhcGktaGVh
ZGVycyB2ZXJzaW9uOgorICAgICAgICAtIFJlbW92ZSBvYnNvbGV0ZSBYUF9NQUMgc2VjdGlvbnMu
CisgICAgICAgIC0gUmVtb3ZlIE1ldHJvd2Vya3MgZGVmaW5lcy4KKyAgICAgICAgLSBBZGQgT1Mv
MiBkZWZpbmVzLgorICAgICAgICAtIEFkZCBNYWVtbyBkZWZpbmVzLgorICAgICAgICAtIEFkZCBu
ZXcgdmVyc2lvbiBvZiB0aGUgY3VzdG9tIENhcmJvbiBldmVudCBkZWZpbml0aW9ucy4KKyAgICAg
ICAgLSBTeW5jIHBsYXRmb3JtIGRlZmluZSBzdHlsZS9kZXRhaWxzCisKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4NjY2CisKKyAgICAgICAgKiBicmlk
Z2UvbnBhcGkuaDoKKwogMjAxMC0wNS0xMCAgSmlhbiBMaSAgPGppYW5saUBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KSW5kZXg6IFdlYkNvcmUvYnJpZGdl
L25wYXBpLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9icmlkZ2UvbnBhcGkuaAkocmV2aXNpb24g
NTkwNzkpCisrKyBXZWJDb3JlL2JyaWRnZS9ucGFwaS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw4
ICszOCwxOCBAQAogI2lmbmRlZiBucGFwaV9oXwogI2RlZmluZSBucGFwaV9oXwogCisjaWYgZGVm
aW5lZChfX09TMl9fKQorI3ByYWdtYSBwYWNrKDEpCisjZW5kaWYKKwogI2luY2x1ZGUgIm5wdHlw
ZXMuaCIKIAorI2lmIGRlZmluZWQoX19PUzJfXykgfHwgZGVmaW5lZChPUzIpCisjaWZuZGVmIFhQ
X09TMgorI2RlZmluZSBYUF9PUzIgMQorI2VuZGlmCisjZW5kaWYKKwogI2lmZGVmIElOQ0xVREVf
SkFWQQogI2luY2x1ZGUgImpyaS5oIiAgICAgICAgICAgICAgICAvKiBKYXZhIFJ1bnRpbWUgSW50
ZXJmYWNlICovCiAjZWxzZQpAQCAtNDgsNDEgKzU4LDIyIEBACiAjZW5kaWYKIAogI2lmIGRlZmlu
ZWQoX1dJTjMyKSAmJiAhZGVmaW5lZChfX1NZTUJJQU4zMl9fKQorI2luY2x1ZGUgPHdpbmRvd3Mu
aD4KICNpZm5kZWYgWFBfV0lOCiAjZGVmaW5lIFhQX1dJTiAxCiAjZW5kaWYKICNlbmRpZgogCi0j
aWZkZWYgX19TWU1CSUFOMzJfXwotIyAgIGlmbmRlZiBYUF9TWU1CSUFOCi0jICAgICAgIGRlZmlu
ZSBYUF9TWU1CSUFOIDEKLSMgICBlbmRpZgotI2VuZGlmICAvKiBfX1NZTUJJQU4zMl9fICovCi0K
LSNpZmRlZiBfX01XRVJLU19fCi0jICAgIGRlZmluZSBfZGVjbHNwZWMgX19kZWNsc3BlYwotIyAg
ICBpZmRlZiBtYWNpbnRvc2gKLSMgICAgICAgIGlmbmRlZiBYUF9NQUMKLSMgICAgICAgICAgICBk
ZWZpbmUgWFBfTUFDIDEKLSMgICAgICAgIGVuZGlmIC8qIFhQX01BQyAqLwotIyAgICBlbmRpZiAv
KiBtYWNpbnRvc2ggKi8KLSMgICAgaWZkZWYgX19JTlRFTF9fCi0jICAgICAgIGlmbmRlZiBYUF9T
WU1CSUFOCi0jICAgICAgICAgICB1bmRlZiBOVUxMCi0jICAgICAgICAgICBpZm5kZWYgWFBfV0lO
Ci0jICAgICAgICAgICAgICAgZGVmaW5lIFhQX1dJTiAxCi0jICAgICAgICAgICBlbmRpZiAvKiBY
UF9XSU4gKi8KLSMgICAgICAgZW5kaWYgLyogWFBfU1lNQklBTiAqLwotIyAgICBlbmRpZiAvKiBf
X0lOVEVMX18gKi8KLSNlbmRpZiAvKiBfX01XRVJLU19fICovCi0KLSNpZiBkZWZpbmVkKF9fQVBQ
TEVfQ0NfXykgJiYgIWRlZmluZWQoX19NQUNPU19DTEFTU0lDX18pICYmICFkZWZpbmVkKFhQX1VO
SVgpCi0jICAgZGVmaW5lIFhQX01BQ09TWAotI2VuZGlmCi0KLSNpZmRlZiBYUF9NQUMKLSAgICAj
aW5jbHVkZSA8UXVpY2tkcmF3Lmg+Ci0gICAgI2luY2x1ZGUgPEV2ZW50cy5oPgorI2lmIGRlZmlu
ZWQoX19TWU1CSUFOMzJfXykKKyNpZm5kZWYgWFBfU1lNQklBTgorI2RlZmluZSBYUF9TWU1CSUFO
IDEKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9fQVBQTEVfQ0NfXykgJiYgIWRlZmlu
ZWQoWFBfVU5JWCkKKyNpZm5kZWYgWFBfTUFDT1NYCisjZGVmaW5lIFhQX01BQ09TWCAxCisjZW5k
aWYKICNlbmRpZgogCiAjaWYgZGVmaW5lZChYUF9NQUNPU1gpICYmIGRlZmluZWQoX19MUDY0X18p
CkBAIC05MCw3ICs4MSw3IEBACiAjZGVmaW5lIE5QX05PX0NBUkJPTgogI2VuZGlmCiAKLSNpZmRl
ZiBYUF9NQUNPU1gKKyNpZiBkZWZpbmVkKFhQX01BQ09TWCkKICNpbmNsdWRlIDxBcHBsaWNhdGlv
blNlcnZpY2VzL0FwcGxpY2F0aW9uU2VydmljZXMuaD4KICNpbmNsdWRlIDxPcGVuR0wvT3BlbkdM
Lmg+CiAjaWZuZGVmIE5QX05PX0NBUkJPTgpAQCAtOTgsMTkgKzg5LDE1IEBACiAjZW5kaWYKICNl
bmRpZgogCi0jaWZkZWYgWFBfVU5JWAorI2lmIGRlZmluZWQoWFBfVU5JWCkKICNpbmNsdWRlIDxY
MTEvWGxpYi5oPgogI2luY2x1ZGUgPFgxMS9YdXRpbC5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAj
ZW5kaWYKIAogI2lmIGRlZmluZWQoWFBfU1lNQklBTikKLSAgICAjaW5jbHVkZSA8UUV2ZW50Pgot
ICAgICNpbmNsdWRlIDxRUmVnaW9uPgotI2VuZGlmCi0KLSNpZmRlZiBYUF9XSU4KLSAgICAjaW5j
bHVkZSA8d2luZG93cy5oPgorI2luY2x1ZGUgPFFFdmVudD4KKyNpbmNsdWRlIDxRUmVnaW9uPgog
I2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCkBAIC0xMjAsNiArMTA3LDQ5IEBACiAjZGVmaW5l
IE5QX1ZFUlNJT05fTUFKT1IgMAogI2RlZmluZSBOUF9WRVJTSU9OX01JTk9SIDI0CiAKKworLyog
VGhlIE9TLzIgdmVyc2lvbiBvZiBOZXRzY2FwZSB1c2VzIFJDX0RBVEEgdG8gZGVmaW5lIHRoZQor
ICAgbWltZSB0eXBlcywgZmlsZSBleHRlbnNpb25zLCBldGMgdGhhdCBhcmUgcmVxdWlyZWQuCisg
ICBVc2UgYSB2ZXJ0aWNhbCBiYXIgdG8gc2VwYXJhdGUgdHlwZXMsIGVuZCB0eXBlcyB3aXRoIFww
LgorICAgRmlsZVZlcnNpb24gYW5kIFByb2R1Y3RWZXJzaW9uIGFyZSAzMmJpdCBpbnRzLCBhbGwg
b3RoZXIKKyAgIGVudHJpZXMgYXJlIHN0cmluZ3MgdGhhdCBNVVNUIGJlIHRlcm1pbmF0ZWQgd2l0
aCBhIFwwLgorCitBTiBFWEFNUExFOgorCitSQ0RBVEEgTlBfSU5GT19Qcm9kdWN0VmVyc2lvbiB7
IDEsMCwwLDEsfQorCitSQ0RBVEEgTlBfSU5GT19NSU1FVHlwZSAgICB7ICJ2aWRlby94LXZpZGVv
fCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2aWRlby94LWZsaWNrXDAiIH0KK1JD
REFUQSBOUF9JTkZPX0ZpbGVFeHRlbnRzIHsgImF2aXwiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiZmxjXDAiIH0KK1JDREFUQSBOUF9JTkZPX0ZpbGVPcGVuTmFtZXsgIk1NT1MyIHZp
ZGVvIHBsYXllcigqLmF2aSl8IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk1NT1My
IEZsYy9GbGkgcGxheWVyKCouZmxjKVwwIiB9CisKK1JDREFUQSBOUF9JTkZPX0ZpbGVWZXJzaW9u
ICAgICAgIHsgMSwwLDAsMSB9CitSQ0RBVEEgTlBfSU5GT19Db21wYW55TmFtZSAgICAgICB7ICJO
ZXRzY2FwZSBDb21tdW5pY2F0aW9uc1wwIiB9CitSQ0RBVEEgTlBfSU5GT19GaWxlRGVzY3JpcHRp
b24gICB7ICJOUEFWSTMyIEV4dGVuc2lvbiBETExcMCIKK1JDREFUQSBOUF9JTkZPX0ludGVybmFs
TmFtZSAgICAgIHsgIk5QQVZJMzJcMCIgKQorUkNEQVRBIE5QX0lORk9fTGVnYWxDb3B5cmlnaHQg
ICAgeyAiQ29weXJpZ2h0IE5ldHNjYXBlIENvbW11bmljYXRpb25zIFwyNTEgMTk5NlwwIgorUkNE
QVRBIE5QX0lORk9fT3JpZ2luYWxGaWxlbmFtZSAgeyAiTlZBUEkzMi5ETEwiIH0KK1JDREFUQSBO
UF9JTkZPX1Byb2R1Y3ROYW1lICAgICAgIHsgIk5QQVZJMzIgRHluYW1pYyBMaW5rIExpYnJhcnlc
MCIgfQorKi8KKy8qIFJDX0RBVEEgdHlwZXMgZm9yIHZlcnNpb24gaW5mbyAtIHJlcXVpcmVkICov
CisjZGVmaW5lIE5QX0lORk9fUHJvZHVjdFZlcnNpb24gICAgICAxCisjZGVmaW5lIE5QX0lORk9f
TUlNRVR5cGUgICAgICAgICAgICAyCisjZGVmaW5lIE5QX0lORk9fRmlsZU9wZW5OYW1lICAgICAg
ICAzCisjZGVmaW5lIE5QX0lORk9fRmlsZUV4dGVudHMgICAgICAgICA0CisvKiBSQ19EQVRBIHR5
cGVzIGZvciB2ZXJzaW9uIGluZm8gLSB1c2VkIGlmIGZvdW5kICovCisjZGVmaW5lIE5QX0lORk9f
RmlsZURlc2NyaXB0aW9uICAgICA1CisjZGVmaW5lIE5QX0lORk9fUHJvZHVjdE5hbWUgICAgICAg
ICA2CisvKiBSQ19EQVRBIHR5cGVzIGZvciB2ZXJzaW9uIGluZm8gLSBvcHRpb25hbCAqLworI2Rl
ZmluZSBOUF9JTkZPX0NvbXBhbnlOYW1lICAgICAgICAgNworI2RlZmluZSBOUF9JTkZPX0ZpbGVW
ZXJzaW9uICAgICAgICAgOAorI2RlZmluZSBOUF9JTkZPX0ludGVybmFsTmFtZSAgICAgICAgOQor
I2RlZmluZSBOUF9JTkZPX0xlZ2FsQ29weXJpZ2h0ICAgICAgMTAKKyNkZWZpbmUgTlBfSU5GT19P
cmlnaW5hbEZpbGVuYW1lICAgIDExCisKKyNpZm5kZWYgUkNfSU5WT0tFRAorCiAvKi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0qLwogLyogICAgICAgICAgICAgICAgICAgICAgIERlZmluaXRpb24gb2YgQmFzaWMgVHlw
ZXMgICAgICAgICAgICAgICAgICAgICAgKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCkBAIC0xNDQsNyAr
MTc0LDcgQEAgdHlwZWRlZiBjaGFyKiAgICAgICAgIE5QTUlNRVR5cGU7CiAvKi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0qLwogCiAjaWYgIWRlZmluZWQoX19MUDY0X18pCi0jaWYgZGVmaW5lZChYUF9NQUMpIHx8IGRl
ZmluZWQoWFBfTUFDT1NYKQorI2lmIGRlZmluZWQoWFBfTUFDT1NYKQogI3ByYWdtYSBvcHRpb25z
IGFsaWduPW1hYzY4awogI2VuZGlmCiAjZW5kaWYgLyogX19MUDY0X18gKi8KQEAgLTIwMSw3ICsy
MzEsMTkgQEAgdHlwZWRlZiBzdHJ1Y3QgX05QUmVjdAogICB1aW50MTZfdCByaWdodDsKIH0gTlBS
ZWN0OwogCi0jaWZkZWYgWFBfVU5JWAordHlwZWRlZiBzdHJ1Y3QgX05QU2l6ZQoreworICBpbnQz
Ml90IHdpZHRoOworICBpbnQzMl90IGhlaWdodDsKK30gTlBTaXplOworCisvKiBSZXR1cm4gdmFs
dWVzIGZvciBOUFBfSGFuZGxlRXZlbnQgKi8KKyNkZWZpbmUga05QRXZlbnROb3RIYW5kbGVkIDAK
KyNkZWZpbmUga05QRXZlbnRIYW5kbGVkIDEKKy8qIEV4YWN0IG1lYW5pbmcgbXVzdCBiZSBzcGVj
J2QgaW4gZXZlbnQgbW9kZWwuICovCisjZGVmaW5lIGtOUEV2ZW50U3RhcnRJTUUgMgorCisjaWYg
ZGVmaW5lZChYUF9VTklYKQogLyoKICAqIFVuaXggc3BlY2lmaWMgc3RydWN0dXJlcyBhbmQgZGVm
aW5pdGlvbnMKICAqLwpAQCAtMjM4LDcgKzI4MCw3IEBAIHR5cGVkZWYgc3RydWN0CiAKICNlbmRp
ZiAvKiBYUF9VTklYICovCiAKLSNpZmRlZiBYUF9NQUNPU1gKKyNpZiBkZWZpbmVkKFhQX01BQ09T
WCkKIHR5cGVkZWYgZW51bSB7CiAjaWZuZGVmIE5QX05PX1FVSUNLRFJBVwogICBOUERyYXdpbmdN
b2RlbFF1aWNrRHJhdyA9IDAsCkBAIC0yODAsOCArMzIyLDggQEAgdHlwZWRlZiBlbnVtIHsKICNk
ZWZpbmUgX05QX0FCSV9NSVhJTl9GT1JfR0NDMyAwCiAjZW5kaWYKIAorI2lmIGRlZmluZWQoWFBf
TUFDT1NYKQogI2RlZmluZSBOUF9BQklfTUFDSE9fTUFTSyAweDAxMDAwMDAwCi0jaWYgKGRlZmlu
ZWQoVEFSR0VUX1JUX01BQ19NQUNITykpCiAjZGVmaW5lIF9OUF9BQklfTUlYSU5fRk9SX01BQ0hP
IE5QX0FCSV9NQUNIT19NQVNLCiAjZWxzZQogI2RlZmluZSBfTlBfQUJJX01JWElOX0ZPUl9NQUNI
TyAwCkBAIC0zMjQsMTAgKzM2NiwxMyBAQCB0eXBlZGVmIGVudW0gewogICAgKi8KICAgTlBQVnBs
dWdpbldhbnRzQWxsTmV0d29ya1N0cmVhbXMgPSAxOCwKIAorICAvKiBCcm93c2VycyBjYW4gcmV0
cmlldmUgYSBuYXRpdmUgQVRLIGFjY2Vzc2liaWxpdHkgcGx1ZyBJRCB2aWEgdGhpcyB2YXJpYWJs
ZS4gKi8KKyAgTlBQVnBsdWdpbk5hdGl2ZUFjY2Vzc2libGVBdGtQbHVnSWQgPSAxOSwKKwogICAv
KiBDaGVja3MgdG8gc2VlIGlmIHRoZSBwbHVnLWluIHdvdWxkIGxpa2UgdGhlIGJyb3dzZXIgdG8g
bG9hZCB0aGUgInNyYyIgYXR0cmlidXRlLiAqLwogICBOUFBWcGx1Z2luQ2FuY2VsU3JjU3RyZWFt
ID0gMjAKIAotI2lmZGVmIFhQX01BQ09TWAorI2lmIGRlZmluZWQoWFBfTUFDT1NYKQogICAvKiBV
c2VkIGZvciBuZWdvdGlhdGluZyBkcmF3aW5nIG1vZGVscyAqLwogICAsIE5QUFZwbHVnaW5EcmF3
aW5nTW9kZWwgPSAxMDAwCiAgIC8qIFVzZWQgZm9yIG5lZ290aWF0aW5nIGV2ZW50IG1vZGVscyAq
LwpAQCAtMzM1LDYgKzM4MCwxMCBAQCB0eXBlZGVmIGVudW0gewogICAvKiBJbiB0aGUgTlBEcmF3
aW5nTW9kZWxDb3JlQW5pbWF0aW9uIGRyYXdpbmcgbW9kZWwsIHRoZSBicm93c2VyIGFza3MgdGhl
IHBsdWctaW4gZm9yIGEgQ29yZSBBbmltYXRpb24gbGF5ZXIuICovCiAgICwgTlBQVnBsdWdpbkNv
cmVBbmltYXRpb25MYXllciA9IDEwMDMKICNlbmRpZgorCisjaWYgZGVmaW5lZChNT1pfUExBVEZP
Uk1fTUFFTU8pICYmIChNT1pfUExBVEZPUk1fTUFFTU8gPT0gNSkKKyAgLCBOUFBWcGx1Z2luV2lu
ZG93bGVzc0xvY2FsQm9vbCA9IDIwMDIKKyNlbmRpZgogfSBOUFBWYXJpYWJsZTsKIAogLyoKQEAg
LTM2NCw3ICs0MTMsNyBAQCB0eXBlZGVmIGVudW0gewogCiAgIE5QTlZwcml2YXRlTW9kZUJvb2wg
PSAxOAogCi0jaWZkZWYgWFBfTUFDT1NYCisjaWYgZGVmaW5lZChYUF9NQUNPU1gpCiAgIC8qIFVz
ZWQgZm9yIG5lZ290aWF0aW5nIGRyYXdpbmcgbW9kZWxzICovCiAgICwgTlBOVnBsdWdpbkRyYXdp
bmdNb2RlbCA9IDEwMDAKICNpZm5kZWYgTlBfTk9fUVVJQ0tEUkFXCkBAIC0zNzgsNiArNDI3LDkg
QEAgdHlwZWRlZiBlbnVtIHsKICNlbmRpZgogICAsIE5QTlZzdXBwb3J0c0NvY29hQm9vbCA9IDMw
MDEgLyogVFJVRSBpZiB0aGUgYnJvd3NlciBzdXBwb3J0cyB0aGUgQ29jb2EgZXZlbnQgbW9kZWwg
Ki8KICNlbmRpZiAvKiBYUF9NQUNPU1ggKi8KKyNpZiBkZWZpbmVkKE1PWl9QTEFURk9STV9NQUVN
TykgJiYgKE1PWl9QTEFURk9STV9NQUVNTyA9PSA1KQorICAsIE5QTlZTdXBwb3J0c1dpbmRvd2xl
c3NMb2NhbCA9IDIwMDIKKyNlbmRpZgogfSBOUE5WYXJpYWJsZTsKIAogdHlwZWRlZiBlbnVtIHsK
QEAgLTM4Niw2ICs0MzgsMTQgQEAgdHlwZWRlZiBlbnVtIHsKIH0gTlBOVVJMVmFyaWFibGU7CiAK
IC8qCisgKiBUaGUgdHlwZSBvZiBUb29sa2l0IHRoZSB3aWRnZXRzIHVzZQorICovCit0eXBlZGVm
IGVudW0geworICBOUE5WR3RrMTIgPSAxLAorICBOUE5WR3RrMgorfSBOUE5Ub29sa2l0VHlwZTsK
KworLyoKICAqIFRoZSB0eXBlIG9mIGEgTlBXaW5kb3cgLSBpdCBzcGVjaWZpZXMgdGhlIHR5cGUg
b2YgdGhlIGRhdGEgc3RydWN0dXJlCiAgKiByZXR1cm5lZCBpbiB0aGUgd2luZG93IGZpZWxkLgog
ICovCkBAIC00MTAsNiArNDcwLDIyIEBAIHR5cGVkZWYgc3RydWN0IF9OUFdpbmRvdwogICBOUFdp
bmRvd1R5cGUgdHlwZTsgLyogSXMgdGhpcyBhIHdpbmRvdyBvciBhIGRyYXdhYmxlPyAqLwogfSBO
UFdpbmRvdzsKIAordHlwZWRlZiBzdHJ1Y3QgX05QSW1hZ2VFeHBvc2UKK3sKKyAgY2hhciogICAg
ZGF0YTsgICAgICAgLyogaW1hZ2UgcG9pbnRlciAqLworICBpbnQzMl90ICBzdHJpZGU7ICAgICAv
KiBTdHJpZGUgb2YgZGF0YSBpbWFnZSBwb2ludGVyICovCisgIGludDMyX3QgIGRlcHRoOyAgICAg
IC8qIERlcHRoIG9mIGltYWdlIHBvaW50ZXIgKi8KKyAgaW50MzJfdCAgeDsgICAgICAgICAgLyog
RXhwb3NlIHggKi8KKyAgaW50MzJfdCAgeTsgICAgICAgICAgLyogRXhwb3NlIHkgKi8KKyAgdWlu
dDMyX3Qgd2lkdGg7ICAgICAgLyogRXhwb3NlIHdpZHRoICovCisgIHVpbnQzMl90IGhlaWdodDsg
ICAgIC8qIEV4cG9zZSBoZWlnaHQgKi8KKyAgTlBTaXplICAgZGF0YVNpemU7ICAgLyogRGF0YSBi
dWZmZXIgc2l6ZSAqLworICBmbG9hdCAgICB0cmFuc2xhdGVYOyAvKiB0cmFuc2xhdGUgWCBtYXRy
aXggdmFsdWUgKi8KKyAgZmxvYXQgICAgdHJhbnNsYXRlWTsgLyogdHJhbnNsYXRlIFkgbWF0cml4
IHZhbHVlICovCisgIGZsb2F0ICAgIHNjYWxlWDsgICAgIC8qIHNjYWxlIFggbWF0cml4IHZhbHVl
ICovCisgIGZsb2F0ICAgIHNjYWxlWTsgICAgIC8qIHNjYWxlIFkgbWF0cml4IHZhbHVlICovCit9
IE5QSW1hZ2VFeHBvc2U7CisKIHR5cGVkZWYgc3RydWN0IF9OUEZ1bGxQcmludAogewogICBOUEJv
b2wgcGx1Z2luUHJpbnRlZDsvKiBTZXQgVFJVRSBpZiBwbHVnaW4gaGFuZGxlZCBmdWxsc2NyZWVu
IHByaW50aW5nICovCkBAIC00MzQsNyArNTEwLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX05QUHJpbnQK
ICAgfSBwcmludDsKIH0gTlBQcmludDsKIAotI2lmIGRlZmluZWQoWFBfTUFDKSB8fCBkZWZpbmVk
KFhQX01BQ09TWCkKKyNpZiBkZWZpbmVkKFhQX01BQ09TWCkKICNpZm5kZWYgTlBfTk9fQ0FSQk9O
CiB0eXBlZGVmIEV2ZW50UmVjb3JkIE5QRXZlbnQ7CiAjZW5kaWYKQEAgLTQ0NywxNiArNTIzLDIx
IEBAIHR5cGVkZWYgc3RydWN0IF9OUEV2ZW50CiAgIHVpbnRwdHJfdCB3UGFyYW07CiAgIHVpbnRw
dHJfdCBsUGFyYW07CiB9IE5QRXZlbnQ7Ci0jZWxpZiBkZWZpbmVkIChYUF9VTklYKQorI2VsaWYg
ZGVmaW5lZChYUF9PUzIpCit0eXBlZGVmIHN0cnVjdCBfTlBFdmVudAoreworICB1aW50MzJfdCBl
dmVudDsKKyAgdWludDMyX3Qgd1BhcmFtOworICB1aW50MzJfdCBsUGFyYW07Cit9IE5QRXZlbnQ7
CisjZWxpZiBkZWZpbmVkKFhQX1VOSVgpCiB0eXBlZGVmIFhFdmVudCBOUEV2ZW50OwogI2Vsc2UK
IHR5cGVkZWYgdm9pZCogIE5QRXZlbnQ7CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoWFBfTUFDKQot
dHlwZWRlZiBSZ25IYW5kbGUgTlBSZWdpb247Ci0jZWxpZiBkZWZpbmVkKFhQX01BQ09TWCkKLXR5
cGVkZWYgdm9pZCAqTlBSZWdpb247CisjaWYgZGVmaW5lZChYUF9NQUNPU1gpCit0eXBlZGVmIHZv
aWQqIE5QUmVnaW9uOwogI2lmbmRlZiBOUF9OT19RVUlDS0RSQVcKIHR5cGVkZWYgUmduSGFuZGxl
IE5QUURSZWdpb247CiAjZW5kaWYKQEAgLTQ3NSw3ICs1NTYsNyBAQCB0eXBlZGVmIHN0cnVjdCBf
TlBOU1N0cmluZyBOUE5TU3RyaW5nOwogdHlwZWRlZiBzdHJ1Y3QgX05QTlNXaW5kb3cgTlBOU1dp
bmRvdzsKIHR5cGVkZWYgc3RydWN0IF9OUE5TTWVudSAgIE5QTlNNZW51OwogCi0jaWZkZWYgWFBf
TUFDT1NYCisjaWYgZGVmaW5lZChYUF9NQUNPU1gpCiB0eXBlZGVmIE5QTlNNZW51IE5QTWVudTsK
ICNlbHNlCiB0eXBlZGVmIHZvaWQgKk5QTWVudTsKQEAgLTQ4OSw3ICs1NzAsNyBAQCB0eXBlZGVm
IGVudW0gewogICBOUENvb3JkaW5hdGVTcGFjZUZsaXBwZWRTY3JlZW4KIH0gTlBDb29yZGluYXRl
U3BhY2U7CiAKLSNpZmRlZiBYUF9NQUNPU1gKKyNpZiBkZWZpbmVkKFhQX01BQ09TWCkKIAogI2lm
bmRlZiBOUF9OT19RVUlDS0RSQVcKIHR5cGVkZWYgc3RydWN0IE5QX1BvcnQKQEAgLTU4NCwxNSAr
NjY1LDI0IEBAIHR5cGVkZWYgc3RydWN0IF9OUENvY29hRXZlbnQgewogICB9IGRhdGE7CiB9IE5Q
Q29jb2FFdmVudDsKIAotI2VuZGlmIC8qIFhQX01BQ09TWCAqLwotCi0jaWYgZGVmaW5lZChYUF9N
QUMpIHx8IGRlZmluZWQoWFBfTUFDT1NYKQotLyogIE5vbi1zdGFuZGFyZCBldmVudCB0eXBlcyB0
aGF0IGNhbiBiZSBwYXNzZWQgdG8gSGFuZGxlRXZlbnQgKi8KKyNpZm5kZWYgTlBfTk9fQ0FSQk9O
CisvKiBOb24tc3RhbmRhcmQgZXZlbnQgdHlwZXMgdGhhdCBjYW4gYmUgcGFzc2VkIHRvIEhhbmRs
ZUV2ZW50ICovCitlbnVtIE5QRXZlbnRUeXBlIHsKKyAgTlBFdmVudFR5cGVfR2V0Rm9jdXNFdmVu
dCA9IChvc0V2dCArIDE2KSwKKyAgTlBFdmVudFR5cGVfTG9zZUZvY3VzRXZlbnQsCisgIE5QRXZl
bnRUeXBlX0FkanVzdEN1cnNvckV2ZW50LAorICBOUEV2ZW50VHlwZV9NZW51Q29tbWFuZEV2ZW50
LAorICBOUEV2ZW50VHlwZV9DbGlwcGluZ0NoYW5nZWRFdmVudCwKKyAgTlBFdmVudFR5cGVfU2Ny
b2xsaW5nQmVnaW5zRXZlbnQgPSAxMDAwLAorICBOUEV2ZW50VHlwZV9TY3JvbGxpbmdFbmRzRXZl
bnQKK307CisvKiBPYnNvbGV0ZSB2ZXJzaW9ucyBvZiB0aGUgYWJvdmUgKi8KICNkZWZpbmUgZ2V0
Rm9jdXNFdmVudCAgICAgICAgKG9zRXZ0ICsgMTYpCiAjZGVmaW5lIGxvc2VGb2N1c0V2ZW50ICAg
ICAgICAob3NFdnQgKyAxNykKICNkZWZpbmUgYWRqdXN0Q3Vyc29yRXZlbnQgICAob3NFdnQgKyAx
OCkKLSNlbmRpZiAvKiBYUF9NQUMgKi8KKyNlbmRpZiAvKiBOUF9OT19DQVJCT04gKi8KIAorI2Vu
ZGlmIC8qIFhQX01BQ09TWCAqLwogCiAvKgogICogVmFsdWVzIGZvciBtb2RlIHBhc3NlZCB0byBO
UFBfTmV3OgpAQCAtNjExLDcgKzcwMSw3IEBAIHR5cGVkZWYgc3RydWN0IF9OUENvY29hRXZlbnQg
ewogI2RlZmluZSBOUF9NQVhSRUFEWSAoKCh1bnNpZ25lZCkofjApPDwxKT4+MSkKIAogI2lmICFk
ZWZpbmVkKF9fTFA2NF9fKQotI2lmIGRlZmluZWQoWFBfTUFDKSB8fCBkZWZpbmVkKFhQX01BQ09T
WCkKKyNpZiBkZWZpbmVkKFhQX01BQ09TWCkKICNwcmFnbWEgb3B0aW9ucyBhbGlnbj1yZXNldAog
I2VuZGlmCiAjZW5kaWYgLyogX19MUDY0X18gKi8KQEAgLTY4MCw4ICs3NzAsOCBAQCB0eXBlZGVm
IHN0cnVjdCBfTlBDb2NvYUV2ZW50IHsKIC8qICAgICAgICAgICAgICAgICAgICAgICAgRnVuY3Rp
b24gUHJvdG90eXBlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAvKi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0qLwogCi0jaWYgZGVmaW5lZChfV0lORE9XUykgJiYgIWRlZmluZWQoV0lOMzIpCi0jZGVmaW5l
IE5QX0xPQUREUyAgX2xvYWRkcworI2lmIGRlZmluZWQoX19PUzJfXykKKyNkZWZpbmUgTlBfTE9B
RERTIF9TeXN0ZW0KICNlbHNlCiAjZGVmaW5lIE5QX0xPQUREUwogI2VuZGlmCkBAIC02OTIsMTIg
Kzc4MiwxMiBAQCBleHRlcm4gIkMiIHsKIAogLyogTlBQXyogZnVuY3Rpb25zIGFyZSBwcm92aWRl
ZCBieSB0aGUgcGx1Z2luIGFuZCBjYWxsZWQgYnkgdGhlIG5hdmlnYXRvci4gKi8KIAotI2lmZGVm
IFhQX1VOSVgKKyNpZiBkZWZpbmVkKFhQX1VOSVgpCiBjaGFyKiBOUFBfR2V0TUlNRURlc2NyaXB0
aW9uKHZvaWQpOwogI2VuZGlmCiAKLU5QRXJyb3IgICAgICAgICAgIE5QUF9Jbml0aWFsaXplKHZv
aWQpOwotdm9pZCAgICAgICAgICAgICAgTlBQX1NodXRkb3duKHZvaWQpOworTlBFcnJvciBOUF9M
T0FERFMgTlBQX0luaXRpYWxpemUodm9pZCk7Cit2b2lkICAgIE5QX0xPQUREUyBOUFBfU2h1dGRv
d24odm9pZCk7CiBOUEVycm9yIE5QX0xPQUREUyBOUFBfTmV3KE5QTUlNRVR5cGUgcGx1Z2luVHlw
ZSwgTlBQIGluc3RhbmNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MTZfdCBtb2Rl
LCBpbnQxNl90IGFyZ2MsIGNoYXIqIGFyZ25bXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y2hhciogYXJndltdLCBOUFNhdmVkRGF0YSogc2F2ZWQpOwpAQCAtNzE0LDY0ICs4MDQsNjIgQEAg
aW50MzJfdCBOUF9MT0FERFMgTlBQX1dyaXRlKE5QUCBpbnN0YW5jZQogdm9pZCAgICBOUF9MT0FE
RFMgTlBQX1N0cmVhbUFzRmlsZShOUFAgaW5zdGFuY2UsIE5QU3RyZWFtKiBzdHJlYW0sCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGZuYW1lKTsKIHZvaWQg
ICAgTlBfTE9BRERTIE5QUF9QcmludChOUFAgaW5zdGFuY2UsIE5QUHJpbnQqIHBsYXRmb3JtUHJp
bnQpOwotaW50MTZfdCAgICAgICAgICAgTlBQX0hhbmRsZUV2ZW50KE5QUCBpbnN0YW5jZSwgdm9p
ZCogZXZlbnQpOworaW50MTZfdCBOUF9MT0FERFMgTlBQX0hhbmRsZUV2ZW50KE5QUCBpbnN0YW5j
ZSwgdm9pZCogZXZlbnQpOwogdm9pZCAgICBOUF9MT0FERFMgTlBQX1VSTE5vdGlmeShOUFAgaW5z
dGFuY2UsIGNvbnN0IGNoYXIqIHVybCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
TlBSZWFzb24gcmVhc29uLCB2b2lkKiBub3RpZnlEYXRhKTsKIGpyZWYgICAgTlBfTE9BRERTIE5Q
UF9HZXRKYXZhQ2xhc3Modm9pZCk7Ci1OUEVycm9yICAgICAgICAgICBOUFBfR2V0VmFsdWUoTlBQ
IGluc3RhbmNlLCBOUFBWYXJpYWJsZSB2YXJpYWJsZSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB2b2lkICp2YWx1ZSk7Ci1OUEVycm9yICAgICAgICAgICBOUFBfU2V0VmFsdWUoTlBQ
IGluc3RhbmNlLCBOUE5WYXJpYWJsZSB2YXJpYWJsZSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB2b2lkICp2YWx1ZSk7CitOUEVycm9yIE5QX0xPQUREUyBOUFBfR2V0VmFsdWUoTlBQ
IGluc3RhbmNlLCBOUFBWYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCAqdmFsdWUpOworTlBFcnJvciBO
UF9MT0FERFMgTlBQX1NldFZhbHVlKE5QUCBpbnN0YW5jZSwgTlBOVmFyaWFibGUgdmFyaWFibGUs
IHZvaWQgKnZhbHVlKTsKIAogLyogTlBOXyogZnVuY3Rpb25zIGFyZSBwcm92aWRlZCBieSB0aGUg
bmF2aWdhdG9yIGFuZCBjYWxsZWQgYnkgdGhlIHBsdWdpbi4gKi8KLXZvaWQgICAgICAgICAgICAg
ICAgICBOUE5fVmVyc2lvbihpbnQqIHBsdWdpbl9tYWpvciwgaW50KiBwbHVnaW5fbWlub3IsCit2
b2lkICAgICAgICBOUF9MT0FERFMgTlBOX1ZlcnNpb24oaW50KiBwbHVnaW5fbWFqb3IsIGludCog
cGx1Z2luX21pbm9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCogbmV0
c2NhcGVfbWFqb3IsIGludCogbmV0c2NhcGVfbWlub3IpOwotTlBFcnJvciAgICAgICAgICAgICAg
IE5QTl9HZXRVUkxOb3RpZnkoTlBQIGluc3RhbmNlLCBjb25zdCBjaGFyKiB1cmwsCitOUEVycm9y
ICAgICBOUF9MT0FERFMgTlBOX0dldFVSTE5vdGlmeShOUFAgaW5zdGFuY2UsIGNvbnN0IGNoYXIq
IHVybCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIq
IHRhcmdldCwgdm9pZCogbm90aWZ5RGF0YSk7Ci1OUEVycm9yICAgICAgICAgICAgICAgTlBOX0dl
dFVSTChOUFAgaW5zdGFuY2UsIGNvbnN0IGNoYXIqIHVybCwKK05QRXJyb3IgICAgIE5QX0xPQURE
UyBOUE5fR2V0VVJMKE5QUCBpbnN0YW5jZSwgY29uc3QgY2hhciogdXJsLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogdGFyZ2V0KTsKLU5QRXJyb3IgICAgICAg
ICAgICAgICBOUE5fUG9zdFVSTE5vdGlmeShOUFAgaW5zdGFuY2UsIGNvbnN0IGNoYXIqIHVybCwK
K05QRXJyb3IgICAgIE5QX0xPQUREUyBOUE5fUG9zdFVSTE5vdGlmeShOUFAgaW5zdGFuY2UsIGNv
bnN0IGNoYXIqIHVybCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBjaGFyKiB0YXJnZXQsIHVpbnQzMl90IGxlbiwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBidWYsIE5QQm9vbCBmaWxlLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIG5vdGlmeURhdGEpOwotTlBFcnJv
ciAgICAgICAgICAgICAgIE5QTl9Qb3N0VVJMKE5QUCBpbnN0YW5jZSwgY29uc3QgY2hhciogdXJs
LAorTlBFcnJvciAgICAgTlBfTE9BRERTIE5QTl9Qb3N0VVJMKE5QUCBpbnN0YW5jZSwgY29uc3Qg
Y2hhciogdXJsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIq
IHRhcmdldCwgdWludDMyX3QgbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IGNoYXIqIGJ1ZiwgTlBCb29sIGZpbGUpOwotTlBFcnJvciAgICAgICAgICAgICAgIE5Q
Tl9SZXF1ZXN0UmVhZChOUFN0cmVhbSogc3RyZWFtLCBOUEJ5dGVSYW5nZSogcmFuZ2VMaXN0KTsK
LU5QRXJyb3IgICAgICAgICAgICAgICBOUE5fTmV3U3RyZWFtKE5QUCBpbnN0YW5jZSwgTlBNSU1F
VHlwZSB0eXBlLAorTlBFcnJvciAgICAgTlBfTE9BRERTIE5QTl9SZXF1ZXN0UmVhZChOUFN0cmVh
bSogc3RyZWFtLCBOUEJ5dGVSYW5nZSogcmFuZ2VMaXN0KTsKK05QRXJyb3IgICAgIE5QX0xPQURE
UyBOUE5fTmV3U3RyZWFtKE5QUCBpbnN0YW5jZSwgTlBNSU1FVHlwZSB0eXBlLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogdGFyZ2V0LCBOUFN0cmVhbSoq
IHN0cmVhbSk7Ci1pbnQzMl90ICAgICAgICAgICAgICAgTlBOX1dyaXRlKE5QUCBpbnN0YW5jZSwg
TlBTdHJlYW0qIHN0cmVhbSwgaW50MzJfdCBsZW4sCitpbnQzMl90ICAgICBOUF9MT0FERFMgTlBO
X1dyaXRlKE5QUCBpbnN0YW5jZSwgTlBTdHJlYW0qIHN0cmVhbSwgaW50MzJfdCBsZW4sCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIGJ1ZmZlcik7Ci1OUEVycm9yICAgICAg
ICAgICAgICAgTlBOX0Rlc3Ryb3lTdHJlYW0oTlBQIGluc3RhbmNlLCBOUFN0cmVhbSogc3RyZWFt
LAorTlBFcnJvciAgICAgTlBfTE9BRERTIE5QTl9EZXN0cm95U3RyZWFtKE5QUCBpbnN0YW5jZSwg
TlBTdHJlYW0qIHN0cmVhbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBOUFJlYXNvbiByZWFzb24pOwotdm9pZCAgICAgICAgICAgICAgICAgIE5QTl9TdGF0dXMoTlBQ
IGluc3RhbmNlLCBjb25zdCBjaGFyKiBtZXNzYWdlKTsKLWNvbnN0IGNoYXIqICAgICAgICAgICBO
UE5fVXNlckFnZW50KE5QUCBpbnN0YW5jZSk7Ci12b2lkKiAgICAgICAgICAgICAgICAgTlBOX01l
bUFsbG9jKHVpbnQzMl90IHNpemUpOwotdm9pZCAgICAgICAgICAgICAgICAgIE5QTl9NZW1GcmVl
KHZvaWQqIHB0cik7Ci11aW50MzJfdCAgICAgICAgICAgICAgTlBOX01lbUZsdXNoKHVpbnQzMl90
IHNpemUpOwotdm9pZCAgICAgICAgICAgICAgICAgIE5QTl9SZWxvYWRQbHVnaW5zKE5QQm9vbCBy
ZWxvYWRQYWdlcyk7Ci1KUklFbnYqICAgICAgICAgICAgICAgTlBOX0dldEphdmFFbnYodm9pZCk7
Ci1qcmVmICAgICAgICAgICAgICAgICAgTlBOX0dldEphdmFQZWVyKE5QUCBpbnN0YW5jZSk7Ci1O
UEVycm9yICAgICAgICAgICAgICAgTlBOX0dldFZhbHVlKE5QUCBpbnN0YW5jZSwgTlBOVmFyaWFi
bGUgdmFyaWFibGUsCit2b2lkICAgICAgICBOUF9MT0FERFMgTlBOX1N0YXR1cyhOUFAgaW5zdGFu
Y2UsIGNvbnN0IGNoYXIqIG1lc3NhZ2UpOworY29uc3QgY2hhciogTlBfTE9BRERTIE5QTl9Vc2Vy
QWdlbnQoTlBQIGluc3RhbmNlKTsKK3ZvaWQqICAgICAgIE5QX0xPQUREUyBOUE5fTWVtQWxsb2Mo
dWludDMyX3Qgc2l6ZSk7Cit2b2lkICAgICAgICBOUF9MT0FERFMgTlBOX01lbUZyZWUodm9pZCog
cHRyKTsKK3VpbnQzMl90ICAgIE5QX0xPQUREUyBOUE5fTWVtRmx1c2godWludDMyX3Qgc2l6ZSk7
Cit2b2lkICAgICAgICBOUF9MT0FERFMgTlBOX1JlbG9hZFBsdWdpbnMoTlBCb29sIHJlbG9hZFBh
Z2VzKTsKK0pSSUVudiogICAgIE5QX0xPQUREUyBOUE5fR2V0SmF2YUVudih2b2lkKTsKK2pyZWYg
ICAgICAgIE5QX0xPQUREUyBOUE5fR2V0SmF2YVBlZXIoTlBQIGluc3RhbmNlKTsKK05QRXJyb3Ig
ICAgIE5QX0xPQUREUyBOUE5fR2V0VmFsdWUoTlBQIGluc3RhbmNlLCBOUE5WYXJpYWJsZSB2YXJp
YWJsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqdmFsdWUpOwot
TlBFcnJvciAgICAgICAgICAgICAgIE5QTl9TZXRWYWx1ZShOUFAgaW5zdGFuY2UsIE5QUFZhcmlh
YmxlIHZhcmlhYmxlLAorTlBFcnJvciAgICAgTlBfTE9BRERTIE5QTl9TZXRWYWx1ZShOUFAgaW5z
dGFuY2UsIE5QUFZhcmlhYmxlIHZhcmlhYmxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB2b2lkICp2YWx1ZSk7Ci12b2lkICAgICAgICAgICAgICAgICAgTlBOX0ludmFsaWRh
dGVSZWN0KE5QUCBpbnN0YW5jZSwgTlBSZWN0ICppbnZhbGlkUmVjdCk7Ci12b2lkICAgICAgICAg
ICAgICAgICAgTlBOX0ludmFsaWRhdGVSZWdpb24oTlBQIGluc3RhbmNlLAordm9pZCAgICAgICAg
TlBfTE9BRERTIE5QTl9JbnZhbGlkYXRlUmVjdChOUFAgaW5zdGFuY2UsIE5QUmVjdCAqaW52YWxp
ZFJlY3QpOwordm9pZCAgICAgICAgTlBfTE9BRERTIE5QTl9JbnZhbGlkYXRlUmVnaW9uKE5QUCBp
bnN0YW5jZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOUFJl
Z2lvbiBpbnZhbGlkUmVnaW9uKTsKLXZvaWQgICAgICAgICAgICAgICAgICBOUE5fRm9yY2VSZWRy
YXcoTlBQIGluc3RhbmNlKTsKLXZvaWQgICAgICAgICAgICAgICAgICBOUE5fUHVzaFBvcHVwc0Vu
YWJsZWRTdGF0ZShOUFAgaW5zdGFuY2UsIE5QQm9vbCBlbmFibGVkKTsKLXZvaWQgICAgICAgICAg
ICAgICAgICBOUE5fUG9wUG9wdXBzRW5hYmxlZFN0YXRlKE5QUCBpbnN0YW5jZSk7Ci12b2lkICAg
ICAgICAgICAgICAgICAgTlBOX1BsdWdpblRocmVhZEFzeW5jQ2FsbChOUFAgaW5zdGFuY2UsCit2
b2lkICAgICAgICBOUF9MT0FERFMgTlBOX0ZvcmNlUmVkcmF3KE5QUCBpbnN0YW5jZSk7Cit2b2lk
ICAgICAgICBOUF9MT0FERFMgTlBOX1B1c2hQb3B1cHNFbmFibGVkU3RhdGUoTlBQIGluc3RhbmNl
LCBOUEJvb2wgZW5hYmxlZCk7Cit2b2lkICAgICAgICBOUF9MT0FERFMgTlBOX1BvcFBvcHVwc0Vu
YWJsZWRTdGF0ZShOUFAgaW5zdGFuY2UpOwordm9pZCAgICAgICAgTlBfTE9BRERTIE5QTl9QbHVn
aW5UaHJlYWRBc3luY0NhbGwoTlBQIGluc3RhbmNlLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAoKmZ1bmMpICh2b2lkICopLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqdXNlckRhdGEpOwot
TlBFcnJvciAgICAgICAgICAgICAgIE5QTl9HZXRWYWx1ZUZvclVSTChOUFAgaW5zdGFuY2UsIE5Q
TlVSTFZhcmlhYmxlIHZhcmlhYmxlLAorTlBFcnJvciAgICAgTlBfTE9BRERTIE5QTl9HZXRWYWx1
ZUZvclVSTChOUFAgaW5zdGFuY2UsIE5QTlVSTFZhcmlhYmxlIHZhcmlhYmxlLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICp1cmwsIGNoYXIgKip2
YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qg
Kmxlbik7Ci1OUEVycm9yICAgICAgICAgICAgICAgTlBOX1NldFZhbHVlRm9yVVJMKE5QUCBpbnN0
YW5jZSwgTlBOVVJMVmFyaWFibGUgdmFyaWFibGUsCitOUEVycm9yICAgICBOUF9MT0FERFMgTlBO
X1NldFZhbHVlRm9yVVJMKE5QUCBpbnN0YW5jZSwgTlBOVVJMVmFyaWFibGUgdmFyaWFibGUsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnVybCwg
Y29uc3QgY2hhciAqdmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHVpbnQzMl90IGxlbik7Ci1OUEVycm9yICAgICAgICAgICAgICAgTlBOX0dldEF1dGhlbnRp
Y2F0aW9uSW5mbyhOUFAgaW5zdGFuY2UsCitOUEVycm9yICAgICBOUF9MT0FERFMgTlBOX0dldEF1
dGhlbnRpY2F0aW9uSW5mbyhOUFAgaW5zdGFuY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpwcm90b2NvbCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmhvc3QsIGlu
dDMyX3QgcG9ydCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IGNoYXIgKnNjaGVtZSwKQEAgLTc3OSwxMyArODY3LDE4IEBAIE5QRXJyb3IgICAg
ICAgICAgICAgICBOUE5fR2V0QXV0aGVudGljYXQKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKip1c2VybmFtZSwgdWludDMyX3QgKnVsZW4sCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICoqcGFz
c3dvcmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
aW50MzJfdCAqcGxlbik7Ci11aW50MzJfdCAgICAgICAgICAgICAgTlBOX1NjaGVkdWxlVGltZXIo
TlBQIGluc3RhbmNlLCB1aW50MzJfdCBpbnRlcnZhbCwgTlBCb29sIHJlcGVhdCwgdm9pZCAoKnRp
bWVyRnVuYykoTlBQIG5wcCwgdWludDMyX3QgdGltZXJJRCkpOwotdm9pZCAgICAgICAgICAgICAg
ICAgIE5QTl9VbnNjaGVkdWxlVGltZXIoTlBQIGluc3RhbmNlLCB1aW50MzJfdCB0aW1lcklEKTsK
LU5QRXJyb3IgICAgICAgICAgICAgICBOUE5fUG9wVXBDb250ZXh0TWVudShOUFAgaW5zdGFuY2Us
IE5QTWVudSogbWVudSk7Ci1OUEJvb2wgICAgICAgICAgICAgICAgTlBOX0NvbnZlcnRQb2ludChO
UFAgaW5zdGFuY2UsIGRvdWJsZSBzb3VyY2VYLCBkb3VibGUgc291cmNlWSwgTlBDb29yZGluYXRl
U3BhY2Ugc291cmNlU3BhY2UsIGRvdWJsZSAqZGVzdFgsIGRvdWJsZSAqZGVzdFksIE5QQ29vcmRp
bmF0ZVNwYWNlIGRlc3RTcGFjZSk7Cit1aW50MzJfdCAgICBOUF9MT0FERFMgTlBOX1NjaGVkdWxl
VGltZXIoTlBQIGluc3RhbmNlLCB1aW50MzJfdCBpbnRlcnZhbCwgTlBCb29sIHJlcGVhdCwgdm9p
ZCAoKnRpbWVyRnVuYykoTlBQIG5wcCwgdWludDMyX3QgdGltZXJJRCkpOwordm9pZCAgICAgICAg
TlBfTE9BRERTIE5QTl9VbnNjaGVkdWxlVGltZXIoTlBQIGluc3RhbmNlLCB1aW50MzJfdCB0aW1l
cklEKTsKK05QRXJyb3IgICAgIE5QX0xPQUREUyBOUE5fUG9wVXBDb250ZXh0TWVudShOUFAgaW5z
dGFuY2UsIE5QTWVudSogbWVudSk7CitOUEJvb2wgICAgICBOUF9MT0FERFMgTlBOX0NvbnZlcnRQ
b2ludChOUFAgaW5zdGFuY2UsIGRvdWJsZSBzb3VyY2VYLCBkb3VibGUgc291cmNlWSwgTlBDb29y
ZGluYXRlU3BhY2Ugc291cmNlU3BhY2UsIGRvdWJsZSAqZGVzdFgsIGRvdWJsZSAqZGVzdFksIE5Q
Q29vcmRpbmF0ZVNwYWNlIGRlc3RTcGFjZSk7CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogfSAgLyog
ZW5kIGV4dGVybiAiQyIgKi8KICNlbmRpZgogCisjZW5kaWYgLyogUkNfSU5WT0tFRCAqLworI2lm
IGRlZmluZWQoX19PUzJfXykKKyNwcmFnbWEgcGFjaygpCisjZW5kaWYKKwogI2VuZGlmIC8qIG5w
YXBpX2hfICovCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>