<?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>120901</bug_id>
          
          <creation_ts>2013-09-06 15:30:34 -0700</creation_ts>
          <short_desc>[Windows] StructuredExceptionHandlerSuppressor Causes Bad Interactions With Support Libraries</short_desc>
          <delta_ts>2013-09-06 16:45:08 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>67510</dependson>
          <blocked>120906</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>925877</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-09-06 15:30:34 -0700</bug_when>
    <thetext>The StructuredExceptionHandlerSuppressor was added in Bug 67510 so that WebKit would generate useful stack traces when null pointers or other invalid data were being passed through the WebKit infrastructure. The intention was to allow us to crash when null pointers or other runtime exceptions were generated.

Unfortunately, because Windows C++ exceptions are built on top of the underlying structured-exception-handling infrastructure, this caused valid C++ exception handler to stop working. (For details on this, see http://www.microsoft.com/msj/0197/Exception/Exception.aspx, http://www.microsoft.com/msj/archive/S2CE.aspx, http://www.hexblog.com/wp-content/uploads/2012/06/Recon-2012-Skochinsky-Compiler-Internals.pdf, http://www.codeproject.com/Articles/2126/How-a-C-compiler-implements-exception-handling).

This was observed when a support library was modified to use a C++ exception as part of its handling of certain device setup logic. Although the exception was fully captured and handled inside the support library, our manipulation of the SEH call chain caused the entire exception handling system to break causing a &apos;normal&apos; code path for our support library to suddenly turn into a critical failure.

This bug revises the StructuredExceptionHandlerSuppressor to apply a filter to the exceptions it chooses to abort. For most exception classes, it passes exception handling up the chain so that the proper handler can be invoked. However, we force a crash for access violations, memory corruption, etc. as desired.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925881</commentid>
    <comment_count>1</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-09-06 15:36:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/14922148&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925883</commentid>
    <comment_count>2</comment_count>
      <attachid>210806</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-09-06 15:47:51 -0700</bug_when>
    <thetext>Created attachment 210806
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925885</commentid>
    <comment_count>3</comment_count>
      <attachid>210808</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-09-06 15:49:10 -0700</bug_when>
    <thetext>Created attachment 210808
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925892</commentid>
    <comment_count>4</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-09-06 15:56:29 -0700</bug_when>
    <thetext>Note: This logic will need to be extended to support 64-bit Windows. See referenced bug 120906 for this work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925917</commentid>
    <comment_count>5</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-09-06 16:45:08 -0700</bug_when>
    <thetext>Committed r155226: &lt;http://trac.webkit.org/changeset/155226&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>210806</attachid>
            <date>2013-09-06 15:47:51 -0700</date>
            <delta_ts>2013-09-06 15:49:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-120901-20130906154828.patch</filename>
            <type>text/plain</type>
            <size>17806</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NTIyMCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDEzLTA5LTA2ICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFtXaW5kb3dzXSBTdHJ1Y3R1
cmVkRXhjZXB0aW9uSGFuZGxlclN1cHByZXNzb3IgQ2F1c2VzIEJhZCBJbnRlcmFjdGlvbnMgd2l0
aCBTdXBwb3J0IExpYnJhcmllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTIwOTAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQ2hhbmdlIGZyb20gb2xkICJjcmFzaCBvbiBhbnkgZXhjZXB0aW9uIiBpbXBs
ZW1lbnRhdGlvbiB0byBhIG5ldyB2ZXJzaW9uIHRoYXQgbGVhdmVzIG5vcm1hbAorICAgICAgICBl
eGNlcHRpb24gaGFuZGxpbmcgaW5mcmFzdHJ1Y3R1cmUgaW4gcGxhY2UgZm9yIHVzZSBieSBzdXBw
b3J0IGxpYnJhcmllcy4gV2UgY2hlY2sgZXhjZXB0aW9ucworICAgICAgICBhbmQgZGVjaWRlIHdo
ZXRoZXIgdG8gYWJvcnQgb3Igbm90IGJhc2VkIG9uIHRoZSBmYWlsdXJlIHR5cGUuCisKKyAgICAg
ICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qOiBBZGQgbmV3IGltcGxlbWVudGF0
aW9uIGZpbGVzLgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmls
dGVyczogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL0xheWVyQ2hh
bmdlc0ZsdXNoZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaGFuZ2VzRmx1c2hlcjo6
aG9va0NhbGxiYWNrKTogQWxsb2NhdGUgaGFuZGxlciBzdHJ1Y3Qgb24gc3RhY2suCisgICAgICAg
ICogcGxhdGZvcm0vd2luL1N0cnVjdHVyZWRFeGNlcHRpb25IYW5kbGVyU3VwcHJlc3Nvci5jcHA6
IEFkZGVkLgorICAgICAgICAoZXhjZXB0aW9uU2hvdWxkVGVybWluYXRlUHJvZ3JhbSk6IE5ldy4K
KyAgICAgICAgKGV4Y2VwdGlvbkhhbmRsZXIpOiBOZXcuCisgICAgICAgIChXZWJDb3JlOjpTdHJ1
Y3R1cmVkRXhjZXB0aW9uSGFuZGxlclN1cHByZXNzb3I6OlN0cnVjdHVyZWRFeGNlcHRpb25IYW5k
bGVyU3VwcHJlc3Nvcik6IE1vdmVkCisgICAgICAgIGZyb20gaGVhZGVyLCBhbmQgdXBkYXRlZCB0
byBhZGQgb3VyIG5ldyBleGNlcHRpb24gaGFuZGxlci4KKyAgICAgICAgKFdlYkNvcmU6OlN0cnVj
dHVyZWRFeGNlcHRpb25IYW5kbGVyU3VwcHJlc3Nvcjo6flN0cnVjdHVyZWRFeGNlcHRpb25IYW5k
bGVyU3VwcHJlc3Nvcik6IE1vdmVkCisgICAgICAgIGZyb20gaGVhZGVyLgorICAgICAgICAqIHBs
YXRmb3JtL3dpbi9TdHJ1Y3R1cmVkRXhjZXB0aW9uSGFuZGxlclN1cHByZXNzb3IuaDogTW92ZSBp
bXBsZW1lbnRhdGlvbiBvZiBjb25zdHJ1Y3RvciBhbmQKKyAgICAgICAgZGVzdHJ1Y3RvciBmcm9t
IGhlYWRlciBmaWxlLgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9tYWtlc2FmZXNlaC5hc206IEFk
ZGVkLgorCiAyMDEzLTA5LTA2ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+
CiAKICAgICAgICAgU3RvcCB1c2luZyBmYXN0TmV3L2Zhc3REZWxldGUgaW4gSmF2YVNjcmlwdENv
cmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvagkocmV2aXNpb24gMTU1MjE1KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmUudmN4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNzUwOCw2ICs3NTA4LDcgQEAKICAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXHdpblxTaGFyZWRCdWZmZXJXaW4uY3Bw
IiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cd2luXFNoYXJlZFRpbWVy
V2luLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXHdpblxTb3Vu
ZFdpbi5jcHAiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVx3aW5cU3Ry
dWN0dXJlZEV4Y2VwdGlvbkhhbmRsZXJTdXBwcmVzc29yLmNwcCIgLz4KICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXHBsYXRmb3JtXHdpblxTeXN0ZW1JbmZvLmNwcCIgLz4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXHdpblxUZW1wb3JhcnlMaW5rU3R1YnMuY3BwIiAvPgog
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cd2luXFdDRGF0YU9iamVjdC5jcHAi
PgpAQCAtMjE0MzEsNiArMjE0MzIsMTQgQEAKICAgICA8Tm9uZSBJbmNsdWRlPSJXZWJDb3JlUHJl
QnVpbGQuY21kIiAvPgogICA8L0l0ZW1Hcm91cD4KICAgPEl0ZW1Hcm91cD4KKyAgICA8TUFTTSBJ
bmNsdWRlPSIuLlxwbGF0Zm9ybVx3aW5cbWFrZXNhZmVzZWguYXNtIj4KKyAgICAgIDxBZGRpdGlv
bmFsT3B0aW9ucyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnU3VmZml4fFdpbjMyJyI+L3NhZmVzZWggJShBZGRpdGlvbmFsT3B0aW9ucyk8L0FkZGl0aW9u
YWxPcHRpb25zPgorICAgICAgPEFkZGl0aW9uYWxPcHRpb25zIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj4vc2FmZXNlaCAl
KEFkZGl0aW9uYWxPcHRpb25zKTwvQWRkaXRpb25hbE9wdGlvbnM+CisgICAgICA8QWRkaXRpb25h
bE9wdGlvbnMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z3xXaW4zMiciPi9zYWZlc2VoICUoQWRkaXRpb25hbE9wdGlvbnMpPC9BZGRpdGlvbmFsT3B0aW9u
cz4KKyAgICAgIDxBZGRpdGlvbmFsT3B0aW9ucyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj4vc2FmZXNlaCAlKEFkZGl0aW9uYWxP
cHRpb25zKTwvQWRkaXRpb25hbE9wdGlvbnM+CisgICAgICA8QWRkaXRpb25hbE9wdGlvbnMgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJv
fFdpbjMyJyI+L3NhZmVzZWggJShBZGRpdGlvbmFsT3B0aW9ucyk8L0FkZGl0aW9uYWxPcHRpb25z
PgorICAgICAgPEFkZGl0aW9uYWxPcHRpb25zIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPi9zYWZlc2VoICUoQWRkaXRpb25hbE9wdGlv
bnMpPC9BZGRpdGlvbmFsT3B0aW9ucz4KKyAgICA8L01BU00+CiAgICAgPE1BU00gSW5jbHVkZT0i
Li5ccGx1Z2luc1x3aW5cUGFpbnRIb29rcy5hc20iPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0yMTQ0NCw0ICsyMTQ1Myw0IEBACiAg
IDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uVGFyZ2V0cyI+CiAgICAgPEltcG9ydCBQcm9q
ZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXEJ1aWxkQ3VzdG9taXphdGlvbnNcbWFzbS50YXJnZXRzIiAv
PgogICA8L0ltcG9ydEdyb3VwPgotPC9Qcm9qZWN0PgorPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJD
b3JlLnZjeHByb2ouZmlsdGVycwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMJKHJldmlzaW9uIDE1NTIxNSkKKysrIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwkod29y
a2luZyBjb3B5KQpAQCAtNzA5OSw2ICs3MDk5LDEwIEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxiaW5kaW5nc1xqc1xXZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuY3BwIj4KICAgICAg
IDxGaWx0ZXI+YmluZGluZ3NcanM8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xSZW5kZXJCbG9ja0Zsb3cuY3BwIiAvPgorICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cd2luXFN0cnVjdHVyZWRFeGNlcHRpb25I
YW5kbGVyU3VwcHJlc3Nvci5jcHAiPgorICAgICAgPEZpbHRlcj5wbGF0Zm9ybVx3aW48L0ZpbHRl
cj4KKyAgICA8L0NsQ29tcGlsZT4KICAgPC9JdGVtR3JvdXA+CiAgIDxJdGVtR3JvdXA+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXGZpbGVzeXN0ZW1cQXN5bmNGaWxlV3JpdGVy
LmgiPgpAQCAtMTQ4ODgsOSArMTQ4OTIsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
Y3NzXENTU0ZpbHRlckltYWdlVmFsdWUuaCI+CiAgICAgICA8RmlsdGVyPmNzczwvRmlsdGVyPgog
ICAgIDwvQ2xJbmNsdWRlPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9u
QnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2
ZWRTb3VyY2VzXEhUTUxFbGVtZW50VHlwZUNoZWNrcy5oIj4KLSAgICAgIDxGaWx0ZXI+RGVyaXZl
ZFNvdXJjZXM8L0ZpbHRlcj4KLSAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGRvbVxJbmxpbmVTdHlsZVNoZWV0T3duZXIuaCI+CiAgICAgICA8RmlsdGVyPmRvbTwv
RmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAtMTQ5MDYsMTIgKzE0OTA3LDExIEBACiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxzdHlsZVxTdHlsZVJlc29sdmVGb3JEb2N1bWVudC5oIj4K
ICAgICAgIDxGaWx0ZXI+Y3NzPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+Ci0gICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hp
dGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcU1ZHRWxlbWVudFR5cGVDaGVj
a3MuaCI+Ci0gICAgICA8RmlsdGVyPkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+Ci0gICAgPC9DbElu
Y2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkb21cVGV4dE5vZGVUcmF2ZXJzYWwu
aCI+CiAgICAgICA8RmlsdGVyPmRvbTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1B
cmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEhUTUxFbGVtZW50VHlw
ZUhlbHBlcnMuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1
aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVk
U291cmNlc1xTVkdFbGVtZW50VHlwZUhlbHBlcnMuaCIgLz4KICAgPC9JdGVtR3JvdXA+CiAgIDxJ
dGVtR3JvdXA+CiAgICAgPE5vbmUgSW5jbHVkZT0iLi5cY3NzXENTU0dyYW1tYXIueS5pbiI+CkBA
IC0xNTg4MCw1ICsxNTg4MCw4IEBACiAgICAgPE1BU00gSW5jbHVkZT0iLi5ccGx1Z2luc1x3aW5c
UGFpbnRIb29rcy5hc20iPgogICAgICAgPEZpbHRlcj5wbHVnaW5zXHdpbjwvRmlsdGVyPgogICAg
IDwvTUFTTT4KKyAgICA8TUFTTSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVx3aW5cbWFrZXNhZmVzZWgu
YXNtIj4KKyAgICAgIDxGaWx0ZXI+cGxhdGZvcm1cd2luPC9GaWx0ZXI+CisgICAgPC9NQVNNPgog
ICA8L0l0ZW1Hcm91cD4KLTwvUHJvamVjdD4KKzwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4v
TGF5ZXJDaGFuZ2VzRmx1c2hlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2Evd2luL0xheWVyQ2hhbmdlc0ZsdXNoZXIuY3BwCShyZXZpc2lvbiAx
NTUyMTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vTGF5ZXJD
aGFuZ2VzRmx1c2hlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMSwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTc0LDcgKzc0LDggQEAgTFJFU1VMVCBM
YXllckNoYW5nZXNGbHVzaGVyOjpob29rQ2FsbGJhYwogewogICAgIC8vIFN1cHJlc3MgdGhlIGV4
Y2VwdGlvbiBoYW5kbGVyIFdpbmRvd3MgcHV0cyBhcm91bmQgYWxsIGhvb2sgY2FsbHMgc28gd2Ug
Y2FuIAogICAgIC8vIGNyYXNoIGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMgaWYgYW4gZXhjZXB0aW9u
IGlzIGhpdC4gCi0gICAgU3RydWN0dXJlZEV4Y2VwdGlvbkhhbmRsZXJTdXBwcmVzc29yIHN1cHJl
c3NvcjsgCisgICAgRXhjZXB0aW9uUmVnaXN0cmF0aW9uIHJlZ2lzdHJhdGlvblN0cnVjdDsgLy8g
Tm90ZTogbXVzdCBiZSBzdGFjayBhbGxvY2F0ZWQuCisgICAgU3RydWN0dXJlZEV4Y2VwdGlvbkhh
bmRsZXJTdXBwcmVzc29yIHN1cHJlc3NvcihyZWdpc3RyYXRpb25TdHJ1Y3QpOwogICAgIHJldHVy
biBzaGFyZWQoKS5ob29rRmlyZWQoY29kZSwgd1BhcmFtLCBsUGFyYW0pOwogfQogCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU3RydWN0dXJlZEV4Y2VwdGlvbkhhbmRsZXJTdXBw
cmVzc29yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU3Ry
dWN0dXJlZEV4Y2VwdGlvbkhhbmRsZXJTdXBwcmVzc29yLmNwcAkocmV2aXNpb24gMCkKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TdHJ1Y3R1cmVkRXhjZXB0aW9uSGFuZGxlclN1cHBy
ZXNzb3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTI5IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisKKyNpbmNsdWRlICJTdHJ1Y3R1cmVkRXhjZXB0aW9uSGFuZGxlclN1cHByZXNzb3Iu
aCIKKworZXh0ZXJuICJDIiBpbnQgX19zdGRjYWxsIGV4Y2VwdGlvbkhhbmRsZXJUaHVuaygpOyAv
LyBEZWZpbmVkIGluIG1ha2VzYWZlc2VoLmFzbQorCitzdGF0aWMgYm9vbCBleGNlcHRpb25TaG91
bGRUZXJtaW5hdGVQcm9ncmFtKGludCBjb2RlKQoreworICAgIHN3aXRjaCAoY29kZSkgeworI2lm
bmRlZiBOREVCVUcKKyAgICBjYXNlIEVYQ0VQVElPTl9EQVRBVFlQRV9NSVNBTElHTk1FTlQ6Cisg
ICAgY2FzZSBFWENFUFRJT05fRkxUX0RFTk9STUFMX09QRVJBTkQ6CisgICAgY2FzZSBFWENFUFRJ
T05fRkxUX0RJVklERV9CWV9aRVJPOgorICAgIGNhc2UgRVhDRVBUSU9OX0ZMVF9JTkVYQUNUX1JF
U1VMVDoKKyAgICBjYXNlIEVYQ0VQVElPTl9GTFRfSU5WQUxJRF9PUEVSQVRJT046CisgICAgY2Fz
ZSBFWENFUFRJT05fRkxUX09WRVJGTE9XOgorICAgIGNhc2UgRVhDRVBUSU9OX0ZMVF9TVEFDS19D
SEVDSzoKKyAgICBjYXNlIEVYQ0VQVElPTl9GTFRfVU5ERVJGTE9XOgorI2VuZGlmCisgICAgY2Fz
ZSBFWENFUFRJT05fQUNDRVNTX1ZJT0xBVElPTjoKKyAgICBjYXNlIEVYQ0VQVElPTl9BUlJBWV9C
T1VORFNfRVhDRUVERUQ6CisgICAgY2FzZSBFWENFUFRJT05fSU5UX0RJVklERV9CWV9aRVJPOgor
ICAgIGNhc2UgRVhDRVBUSU9OX0lOVF9PVkVSRkxPVzoKKyAgICBjYXNlIEVYQ0VQVElPTl9QUklW
X0lOU1RSVUNUSU9OOgorICAgIGNhc2UgRVhDRVBUSU9OX0lOX1BBR0VfRVJST1I6CisgICAgY2Fz
ZSBFWENFUFRJT05fSUxMRUdBTF9JTlNUUlVDVElPTjoKKyAgICBjYXNlIEVYQ0VQVElPTl9OT05D
T05USU5VQUJMRV9FWENFUFRJT046CisgICAgY2FzZSBFWENFUFRJT05fU1RBQ0tfT1ZFUkZMT1c6
CisgICAgY2FzZSBFWENFUFRJT05fSU5WQUxJRF9ESVNQT1NJVElPTjoKKyAgICBjYXNlIEVYQ0VQ
VElPTl9HVUFSRF9QQUdFOgorICAgIGNhc2UgRVhDRVBUSU9OX0lOVkFMSURfSEFORExFOgorICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9OworCisgICAgcmV0dXJuIGZhbHNlOworfQorCitleHRl
cm4gIkMiIEVYQ0VQVElPTl9ESVNQT1NJVElPTiBfX3N0ZGNhbGwgZXhjZXB0aW9uSGFuZGxlcihz
dHJ1Y3QgX0VYQ0VQVElPTl9SRUNPUkQqIGV4Y2VwdGlvblJlY29yZCwgdm9pZCogLyplc3RhYmxp
c2hlckZyYW1lKi8sIHN0cnVjdCBfQ09OVEVYVCogLypjb250ZXh0UmVjb3JkKi8sIHZvaWQqIC8q
ZGlzcGF0Y2hlckNvbnRleHQqLykKK3sKKyAgICBpZiAoZXhjZXB0aW9uU2hvdWxkVGVybWluYXRl
UHJvZ3JhbShleGNlcHRpb25SZWNvcmQtPkV4Y2VwdGlvbkNvZGUpKQorICAgICAgICBhYm9ydCgp
OworCisgICAgcmV0dXJuIEV4Y2VwdGlvbkNvbnRpbnVlU2VhcmNoOworfQorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK1N0cnVjdHVyZWRFeGNlcHRpb25IYW5kbGVyU3VwcHJlc3Nvcjo6U3RydWN0
dXJlZEV4Y2VwdGlvbkhhbmRsZXJTdXBwcmVzc29yKEV4Y2VwdGlvblJlZ2lzdHJhdGlvbiYgZXhj
ZXB0aW9uUmVnaXN0cmF0aW9uKQoreworICAgIC8vIE5vdGU6IFdpbmRvd3MgcmVxdWlyZXMgdGhh
dCB0aGUgRVhDRVBUSU9OX1JFR0lTVFJBVElPTiBibG9jayAobW9kZWxlZCBoZXJlIGFzIG91cgor
ICAgIC8vIEV4Y2VwdGlvblJlZ2lzdHJhdGlvbiBzdHJ1Y3QpIGJlIHN0YWNrIGFsbG9jYXRlZC4g
VGhlcmVmb3JlIHdlIGluc3RhbnRpYXRlZCBpdCBwcmlvcgorICAgIC8vIHRvIGJ1aWxkaW5nIHRo
aXMgb2JqZWN0IHNvIHRoYXQgV2luZG93cyBjYW4gc3RpbGwgZmluZCBpdCBpbiBzdGFjayBtZW1v
cnkgd2hlbiBpdAorICAgIC8vIGF0dGVtcHRzIHRvIHVzZSB0aGUgaGFuZGxlci4KKworICAgIC8v
IFdpbmRvd3MgcHV0cyBhbiBfX3RyeS9fX2V4Y2VwdCBibG9jayBhcm91bmQgc29tZSBjYWxscywg
c3VjaCBhcyBob29rcy4KKyAgICAvLyBUaGUgZXhjZXB0aW9uIGhhbmRsZXIgdGhlbiBpZ25vcmVz
IHN5c3RlbSBleGNlcHRpb25zIGxpa2UgaW52YWxpZCBhZGRyZXNzZXMKKyAgICAvLyBhbmQgbnVs
bCBwb2ludGVycy4gVGhpcyBjbGFzcyBjYW4gYmUgdXNlZCB0byByZW1vdmUgdGhpcyBibG9jayBh
bmQgcHJldmVudAorICAgIC8vIGl0IGZyb20gY2F0Y2hpbmcgdGhlIGV4Y2VwdGlvbi4gVHlwaWNh
bGx5IHRoaXMgd2lsbCBjYXVzZSB0aGUgZXhjZXB0aW9uIHRvIGNyYXNoIAorICAgIC8vIHdoaWNo
IGlzIG9mdGVuIGRlc2lyYWJsZSB0byBhbGxvdyBjcmFzaGxvZ3MgdG8gYmUgcmVjb3JkZWQgZm9y
IGRlYnVnZ2luZyBwdXJwb3NlZC4KKyAgICAvLyBXaGlsZSB0aGlzIGNsYXNzIGlzIGluIHNjb3Bl
IHdlIHJlcGxhY2UgdGhlIFdpbmRvd3MgZXhjZXB0aW9uIGhhbmRsZXIgd2l0aCBhIGN1c3RvbQor
ICAgIC8vIGhhbmRsZXIgdGhhdCBpbmRpY2F0ZXMgZXhjZXB0aW9ucyB0aGF0IHNob3VsZCBub3Qg
YmUgaGFuZGxlZC4KKyAgICAvLworICAgIC8vIFNlZSBodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v
bXNqLzAxOTcvRXhjZXB0aW9uL0V4Y2VwdGlvbi5hc3B4LAorICAgIC8vICAgICBodHRwOi8vd3d3
Lm1pY3Jvc29mdC5jb20vbXNqL2FyY2hpdmUvUzJDRS5hc3B4CisgICAgLy8gICAgIGh0dHA6Ly93
d3cuaGV4YmxvZy5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMTIvMDYvUmVjb24tMjAxMi1Ta29j
aGluc2t5LUNvbXBpbGVyLUludGVybmFscy5wZGYKKyAgICAvLyAgICAgaHR0cDovL3d3dy5jb2Rl
cHJvamVjdC5jb20vQXJ0aWNsZXMvMjEyNi9Ib3ctYS1DLWNvbXBpbGVyLWltcGxlbWVudHMtZXhj
ZXB0aW9uLWhhbmRsaW5nCisKKyAgICAvLyBXaW5kb3dzIGRvZXNuJ3QgbGlrZSBhc3NpZ25pbmcg
dG8gbWVtYmVyIHZhcmlhYmxlcywgc28gd2UgbmVlZCB0byBnZXQgdGhlIHZhbHVlIGludG8KKyAg
ICAvLyBhIGxvY2FsIHZhcmlhYmxlIGFuZCBzdG9yZSBpdCBhZnRlcndhcmRzLgorICAgIHZvaWQq
IHJlZ2lzdHJhdGlvbjsKKworICAgIC8vIE5vdGU6IFRoZSBGUyByZWdpc3RlciBvbiBXaW5kb3dz
IGFsd2F5cyBob2xkcyB0aGUgVGhyZWFkIEluZm9ybWF0aW9uIEJsb2NrLgorICAgIC8vIEZTOlsw
XSBwb2ludHMgdG8gdGhlIHN0cnVjdHVyZWQgZXhjZXB0aW9uIGhhbmRsaW5nIGNoYWluIChhIGNo
YWluIG9mCisgICAgLy8gRVhDRVBUSU9OX1JFR0lTVFJBVElPTiBzdHJ1Y3RzKS4KKyAgICAvLwor
ICAgIC8vIHN0cnVjdCBFWENFUFRJT05fUkVHSVNUUkFUSU9OCisgICAgLy8geworICAgIC8vICAg
ICBEV09SRCBuZXh0OworICAgIC8vICAgICBEV09SRCBoYW5kbGVyOworICAgIC8vIH07CisgICAg
Ly8KKyAgICAvLyBUaGUgZmlyc3QgZm91ciBieXRlcyBvZiBGUzpbMF0gcG9pbnQgdG8gdGhlICdO
ZXh0JyBtZW1iZXIgaW4gdGhlIGNoYWluLiBHcmFiIGl0IHNvIHdlIGNhbiByZXN0b3JlIGl0IGxh
dGVyLgorICAgIF9fYXNtIG1vdiBlYXgsIEZTOlswXQorICAgIF9fYXNtIG1vdiBbcmVnaXN0cmF0
aW9uXSwgZWF4CisKKyAgICBleGNlcHRpb25SZWdpc3RyYXRpb24ucHJldiA9IChFeGNlcHRpb25S
ZWdpc3RyYXRpb24qKXJlZ2lzdHJhdGlvbjsKKyAgICBleGNlcHRpb25SZWdpc3RyYXRpb24uaGFu
ZGxlciA9ICh2b2lkKilleGNlcHRpb25IYW5kbGVyVGh1bms7CisKKyAgICB2b2lkKiBlclN0cnVj
dE1lbSA9ICZleGNlcHRpb25SZWdpc3RyYXRpb247CisKKyAgICBfX2FzbSBtb3YgZWF4LCBlclN0
cnVjdE1lbQorICAgIF9fYXNtIG1vdiBGUzpbMF0sIGVheAorCisgICAgbV9zYXZlZEV4Y2VwdGlv
blJlZ2lzdHJhdGlvbiA9IHJlZ2lzdHJhdGlvbjsKK30KKworU3RydWN0dXJlZEV4Y2VwdGlvbkhh
bmRsZXJTdXBwcmVzc29yOjp+U3RydWN0dXJlZEV4Y2VwdGlvbkhhbmRsZXJTdXBwcmVzc29yKCkK
K3sKKyAgICAvLyBSZXN0b3JlIHRoZSBleGNlcHRpb24gaGFuZGxlcgorICAgIF9fYXNtIG1vdiBl
YXgsIFttX3NhdmVkRXhjZXB0aW9uUmVnaXN0cmF0aW9uXQorICAgIF9fYXNtIG1vdiBGUzpbMF0s
IGVheAorfQorCit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU3RydWN0dXJl
ZEV4Y2VwdGlvbkhhbmRsZXJTdXBwcmVzc29yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vd2luL1N0cnVjdHVyZWRFeGNlcHRpb25IYW5kbGVyU3VwcHJlc3Nvci5oCShy
ZXZpc2lvbiAxNTUyMTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU3RydWN0dXJl
ZEV4Y2VwdGlvbkhhbmRsZXJTdXBwcmVzc29yLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDQ0ICsy
NiwyNiBAQAogI2lmbmRlZiBTdHJ1Y3R1cmVkRXhjZXB0aW9uSGFuZGxlclN1cHByZXNzb3JfaAog
I2RlZmluZSBTdHJ1Y3R1cmVkRXhjZXB0aW9uSGFuZGxlclN1cHByZXNzb3JfaAogCisjaW5jbHVk
ZSA8ZXhjcHQuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworZXh0ZXJuICJDIiBF
WENFUFRJT05fRElTUE9TSVRJT04gX19zdGRjYWxsIGV4Y2VwdGlvbkhhbmRsZXIoc3RydWN0IF9F
WENFUFRJT05fUkVDT1JEKiBleGNlcHRpb25SZWNvcmQsIHZvaWQqIGVzdGFibGlzaGVyRnJhbWUs
IHN0cnVjdCBfQ09OVEVYVCogY29udGV4dFJlY29yZCwgdm9pZCogZGlzcGF0Y2hlckNvbnRleHQp
OworCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNwcmFnbWEgd2FybmluZyhwdXNoKQogI3ByYWdt
YSB3YXJuaW5nKGRpc2FibGU6IDQ3MzMpIC8vIERpc2FibGUgIm5vdCByZWdpc3RlcmVkIGFzIHNh
ZmUgaGFuZGxlciIgd2FybmluZwogCitzdHJ1Y3QgRXhjZXB0aW9uUmVnaXN0cmF0aW9uIHsKKyAg
ICBFeGNlcHRpb25SZWdpc3RyYXRpb24qIHByZXY7CisgICAgdm9pZCogaGFuZGxlcjsKK307CisK
IGNsYXNzIFN0cnVjdHVyZWRFeGNlcHRpb25IYW5kbGVyU3VwcHJlc3NvciB7CiAgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoU3RydWN0dXJlZEV4Y2VwdGlvbkhhbmRsZXJTdXBwcmVzc29yKTsKIHB1
YmxpYzoKLSAgICBTdHJ1Y3R1cmVkRXhjZXB0aW9uSGFuZGxlclN1cHByZXNzb3IoKQotICAgIHsK
LSAgICAgICAgLy8gV2luZG93cyBwdXRzIGFuIF9fdHJ5L19fZXhjZXB0IGJsb2NrIGFyb3VuZCBz
b21lIGNhbGxzLCBzdWNoIGFzIGhvb2tzLgotICAgICAgICAvLyBUaGUgZXhjZXB0aW9uIGhhbmRs
ZXIgdGhlbiBpZ25vcmVzIHN5c3RlbSBleGNlcHRpb25zIGxpa2UgaW52YWxpZCBhZGRyZXNzZXMK
LSAgICAgICAgLy8gYW5kIG51bGwgcG9pbnRlcnMuIFRoaXMgY2xhc3MgY2FuIGJlIHVzZWQgdG8g
cmVtb3ZlIHRoaXMgYmxvY2sgYW5kIHByZXZlbnQKLSAgICAgICAgLy8gaXQgZnJvbSBjYXRjaGlu
ZyB0aGUgZXhjZXB0aW9uLiBUeXBpY2FsbHkgdGhpcyB3aWxsIGNhdXNlIHRoZSBleGNlcHRpb24g
dG8gY3Jhc2ggCi0gICAgICAgIC8vIHdoaWNoIGlzIG9mdGVuIGRlc2lyYWJsZSB0byBhbGxvdyBj
cmFzaGxvZ3MgdG8gYmUgcmVjb3JkZWQgZm9yIGRlYnVnZ2luZyBwdXJwb3NlZC4KLSAgICAgICAg
Ly8gV2hpbGUgdGhpcyBjbGFzcyBpcyBpbiBzY29wZSB3ZSByZXBsYWNlIHRoZSBXaW5kb3dzIGV4
Y2VwdGlvbiBoYW5kbGVyIHdpdGggMHhmZmZmZmZmZiwgCi0gICAgICAgIC8vIHdoaWNoIGluZGlj
YXRlcyB0aGF0IHRoZSBleGNlcHRpb24gc2hvdWxkIG5vdCBiZSBoYW5kbGVkLgotICAgICAgICAv
LwotICAgICAgICAvLyBTZWUgaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL21zai8wMTk3L0V4Y2Vw
dGlvbi9FeGNlcHRpb24uYXNweAotCi0gICAgICAgIC8vIFdpbmRvd3MgZG9lc24ndCBsaWtlIGFz
c2lnbmluZyB0byBtZW1iZXIgdmFyaWFibGVzLCBzbyB3ZSBuZWVkIHRvIGdldCB0aGUgdmFsdWUg
aW50bwotICAgICAgICAvLyBhIGxvY2FsIHZhcmlhYmxlIGFuZCBzdG9yZSBpdCBhZnRlcndhcmRz
LgotICAgICAgICB2b2lkKiByZWdpc3RyYXRpb247Ci0KLSAgICAgICAgX19hc20gbW92IGVheCwg
RlM6WzBdCi0gICAgICAgIF9fYXNtIG1vdiBbcmVnaXN0cmF0aW9uXSwgZWF4Ci0gICAgICAgIF9f
YXNtIG1vdiBlYXgsIDB4ZmZmZmZmZmYKLSAgICAgICAgX19hc20gbW92IEZTOlswXSwgZWF4Ci0K
LSAgICAgICAgbV9zYXZlZEV4Y2VwdGlvblJlZ2lzdHJhdGlvbiA9IHJlZ2lzdHJhdGlvbjsKLSAg
ICB9Ci0KLSAgICB+U3RydWN0dXJlZEV4Y2VwdGlvbkhhbmRsZXJTdXBwcmVzc29yKCkKLSAgICB7
Ci0gICAgICAgIC8vIFJlc3RvcmUgdGhlIGV4Y2VwdGlvbiBoYW5kbGVyCi0gICAgICAgIF9fYXNt
IG1vdiBlYXgsIFttX3NhdmVkRXhjZXB0aW9uUmVnaXN0cmF0aW9uXQotICAgICAgICBfX2FzbSBt
b3YgRlM6WzBdLCBlYXgKLSAgICB9CisgICAgU3RydWN0dXJlZEV4Y2VwdGlvbkhhbmRsZXJTdXBw
cmVzc29yKEV4Y2VwdGlvblJlZ2lzdHJhdGlvbiYpOworICAgIH5TdHJ1Y3R1cmVkRXhjZXB0aW9u
SGFuZGxlclN1cHByZXNzb3IoKTsKIAogcHJpdmF0ZToKICAgICB2b2lkKiBtX3NhdmVkRXhjZXB0
aW9uUmVnaXN0cmF0aW9uOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL21ha2Vz
YWZlc2VoLmFzbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vbWFr
ZXNhZmVzZWguYXNtCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2lu
L21ha2VzYWZlc2VoLmFzbQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ1IEBACis7LyoKKzsg
KiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZAorOyAq
Cis7ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Cis7ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCis7ICogYXJlIG1ldDoKKzsgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorOyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKzsgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorOyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKzsgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorOyAqCis7ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCis7ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKzsgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKzsg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVU
RVIsIElOQy4gT1IKKzsgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKzsgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCis7ICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCis7ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorOyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorOyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorOyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorOyAqLworCis7IFRlbGwgV2luZG93cyB0byB0cnVzdCBvdXIgZXJyb3IgaGFuZGxl
ci4gVGhpcyBtdXN0IGJlIGRvbmUgd2l0aGluIGFuIGFzc2VtYmx5Cis7IG1vZHVsZS4gV2UgY2Fu
bm90IGRvIGl0IG9uLXRoZS1mbHkgaW4gb3VyIEMrKyBjb2RlLgorOworOyBOb3RlIGFsc28gKGNv
bmZpcm1lZCBieSBSYXltb25kIENoZW4pIHRoYXQgd2UgbXVzdCB1c2UgdGhpcyBhc3NlbWJseSB0
aHVuaworOyB0byBjYWxsIG91ciBjdXN0b20gZXhjZXB0aW9uIGhhbmRsZXIuIChTZWUgaHR0cDov
L2pwYXNzaW5nLmNvbS8yMDA4LzA1LzIwL2Z1bi13aXRoLWxvdy1sZXZlbC1zZWgvKQorCisuMzg2
CisubW9kZWwgRkxBVCwgU1REQ0FMTAorCitFWFRFUk4gZXhjZXB0aW9uSGFuZGxlckAxNiA6IG5l
YXIgICA7IERlZmluZWQgaW4gU3RydWN0dXJlZEV4Y2VwdGlvbkhhbmRsZXJTdXByZXNzb3IuY3Bw
CisKK2V4Y2VwdGlvbkhhbmRsZXJUaHVuayBwcm90bworLnNhZmVzZWggZXhjZXB0aW9uSGFuZGxl
clRodW5rCisKKy5jb2RlCitleGNlcHRpb25IYW5kbGVyVGh1bmsgcHJvYworICAgIGptcCBleGNl
cHRpb25IYW5kbGVyQDE2CitleGNlcHRpb25IYW5kbGVyVGh1bmsgZW5kcAorCitFTkQKXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>210808</attachid>
            <date>2013-09-06 15:49:10 -0700</date>
            <delta_ts>2013-09-06 15:52:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-120901-20130906154947.patch</filename>
            <type>text/plain</type>
            <size>18043</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NTIyMCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDEzLTA5LTA2ICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFtXaW5kb3dzXSBTdHJ1Y3R1
cmVkRXhjZXB0aW9uSGFuZGxlclN1cHByZXNzb3IgQ2F1c2VzIEJhZCBJbnRlcmFjdGlvbnMgd2l0
aCBTdXBwb3J0IExpYnJhcmllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTIwOTAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQ2hhbmdlIGZyb20gb2xkICJjcmFzaCBvbiBhbnkgZXhjZXB0aW9uIiBpbXBs
ZW1lbnRhdGlvbiB0byBhIG5ldyB2ZXJzaW9uIHRoYXQgbGVhdmVzIG5vcm1hbAorICAgICAgICBl
eGNlcHRpb24gaGFuZGxpbmcgaW5mcmFzdHJ1Y3R1cmUgaW4gcGxhY2UgZm9yIHVzZSBieSBzdXBw
b3J0IGxpYnJhcmllcy4gV2UgY2hlY2sgZXhjZXB0aW9ucworICAgICAgICBhbmQgZGVjaWRlIHdo
ZXRoZXIgdG8gYWJvcnQgb3Igbm90IGJhc2VkIG9uIHRoZSBmYWlsdXJlIHR5cGUuCisKKyAgICAg
ICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qOiBBZGQgbmV3IGltcGxlbWVudGF0
aW9uIGZpbGVzLgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmls
dGVyczogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL0xheWVyQ2hh
bmdlc0ZsdXNoZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaGFuZ2VzRmx1c2hlcjo6
aG9va0NhbGxiYWNrKTogQWxsb2NhdGUgaGFuZGxlciBzdHJ1Y3Qgb24gc3RhY2suCisgICAgICAg
ICogcGxhdGZvcm0vd2luL1N0cnVjdHVyZWRFeGNlcHRpb25IYW5kbGVyU3VwcHJlc3Nvci5jcHA6
IEFkZGVkLgorICAgICAgICAoZXhjZXB0aW9uU2hvdWxkVGVybWluYXRlUHJvZ3JhbSk6IE5ldy4K
KyAgICAgICAgKGV4Y2VwdGlvbkhhbmRsZXIpOiBOZXcuCisgICAgICAgIChXZWJDb3JlOjpTdHJ1
Y3R1cmVkRXhjZXB0aW9uSGFuZGxlclN1cHByZXNzb3I6OlN0cnVjdHVyZWRFeGNlcHRpb25IYW5k
bGVyU3VwcHJlc3Nvcik6IE1vdmVkCisgICAgICAgIGZyb20gaGVhZGVyLCBhbmQgdXBkYXRlZCB0
byBhZGQgb3VyIG5ldyBleGNlcHRpb24gaGFuZGxlci4KKyAgICAgICAgKFdlYkNvcmU6OlN0cnVj
dHVyZWRFeGNlcHRpb25IYW5kbGVyU3VwcHJlc3Nvcjo6flN0cnVjdHVyZWRFeGNlcHRpb25IYW5k
bGVyU3VwcHJlc3Nvcik6IE1vdmVkCisgICAgICAgIGZyb20gaGVhZGVyLgorICAgICAgICAqIHBs
YXRmb3JtL3dpbi9TdHJ1Y3R1cmVkRXhjZXB0aW9uSGFuZGxlclN1cHByZXNzb3IuaDogTW92ZSBp
bXBsZW1lbnRhdGlvbiBvZiBjb25zdHJ1Y3RvciBhbmQKKyAgICAgICAgZGVzdHJ1Y3RvciBmcm9t
IGhlYWRlciBmaWxlLgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9tYWtlc2FmZXNlaC5hc206IEFk
ZGVkLgorCiAyMDEzLTA5LTA2ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+
CiAKICAgICAgICAgU3RvcCB1c2luZyBmYXN0TmV3L2Zhc3REZWxldGUgaW4gSmF2YVNjcmlwdENv
cmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvagkocmV2aXNpb24gMTU1MjE1KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmUudmN4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNzUwOCw2ICs3NTA4LDcgQEAKICAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXHdpblxTaGFyZWRCdWZmZXJXaW4uY3Bw
IiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cd2luXFNoYXJlZFRpbWVy
V2luLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXHdpblxTb3Vu
ZFdpbi5jcHAiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVx3aW5cU3Ry
dWN0dXJlZEV4Y2VwdGlvbkhhbmRsZXJTdXBwcmVzc29yLmNwcCIgLz4KICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXHBsYXRmb3JtXHdpblxTeXN0ZW1JbmZvLmNwcCIgLz4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXHdpblxUZW1wb3JhcnlMaW5rU3R1YnMuY3BwIiAvPgog
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cd2luXFdDRGF0YU9iamVjdC5jcHAi
PgpAQCAtMjE0MzEsNiArMjE0MzIsMTQgQEAKICAgICA8Tm9uZSBJbmNsdWRlPSJXZWJDb3JlUHJl
QnVpbGQuY21kIiAvPgogICA8L0l0ZW1Hcm91cD4KICAgPEl0ZW1Hcm91cD4KKyAgICA8TUFTTSBJ
bmNsdWRlPSIuLlxwbGF0Zm9ybVx3aW5cbWFrZXNhZmVzZWguYXNtIj4KKyAgICAgIDxBZGRpdGlv
bmFsT3B0aW9ucyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnU3VmZml4fFdpbjMyJyI+L3NhZmVzZWggJShBZGRpdGlvbmFsT3B0aW9ucyk8L0FkZGl0aW9u
YWxPcHRpb25zPgorICAgICAgPEFkZGl0aW9uYWxPcHRpb25zIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj4vc2FmZXNlaCAl
KEFkZGl0aW9uYWxPcHRpb25zKTwvQWRkaXRpb25hbE9wdGlvbnM+CisgICAgICA8QWRkaXRpb25h
bE9wdGlvbnMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z3xXaW4zMiciPi9zYWZlc2VoICUoQWRkaXRpb25hbE9wdGlvbnMpPC9BZGRpdGlvbmFsT3B0aW9u
cz4KKyAgICAgIDxBZGRpdGlvbmFsT3B0aW9ucyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj4vc2FmZXNlaCAlKEFkZGl0aW9uYWxP
cHRpb25zKTwvQWRkaXRpb25hbE9wdGlvbnM+CisgICAgICA8QWRkaXRpb25hbE9wdGlvbnMgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJv
fFdpbjMyJyI+L3NhZmVzZWggJShBZGRpdGlvbmFsT3B0aW9ucyk8L0FkZGl0aW9uYWxPcHRpb25z
PgorICAgICAgPEFkZGl0aW9uYWxPcHRpb25zIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPi9zYWZlc2VoICUoQWRkaXRpb25hbE9wdGlv
bnMpPC9BZGRpdGlvbmFsT3B0aW9ucz4KKyAgICA8L01BU00+CiAgICAgPE1BU00gSW5jbHVkZT0i
Li5ccGx1Z2luc1x3aW5cUGFpbnRIb29rcy5hc20iPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0yMTQ0NCw0ICsyMTQ1Myw0IEBACiAg
IDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uVGFyZ2V0cyI+CiAgICAgPEltcG9ydCBQcm9q
ZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXEJ1aWxkQ3VzdG9taXphdGlvbnNcbWFzbS50YXJnZXRzIiAv
PgogICA8L0ltcG9ydEdyb3VwPgotPC9Qcm9qZWN0PgorPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJD
b3JlLnZjeHByb2ouZmlsdGVycwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMJKHJldmlzaW9uIDE1NTIxNSkKKysrIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwkod29y
a2luZyBjb3B5KQpAQCAtNzA5OSw2ICs3MDk5LDEwIEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxiaW5kaW5nc1xqc1xXZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuY3BwIj4KICAgICAg
IDxGaWx0ZXI+YmluZGluZ3NcanM8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xSZW5kZXJCbG9ja0Zsb3cuY3BwIiAvPgorICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cd2luXFN0cnVjdHVyZWRFeGNlcHRpb25I
YW5kbGVyU3VwcHJlc3Nvci5jcHAiPgorICAgICAgPEZpbHRlcj5wbGF0Zm9ybVx3aW48L0ZpbHRl
cj4KKyAgICA8L0NsQ29tcGlsZT4KICAgPC9JdGVtR3JvdXA+CiAgIDxJdGVtR3JvdXA+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXGZpbGVzeXN0ZW1cQXN5bmNGaWxlV3JpdGVy
LmgiPgpAQCAtMTQ4ODgsOSArMTQ4OTIsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
Y3NzXENTU0ZpbHRlckltYWdlVmFsdWUuaCI+CiAgICAgICA8RmlsdGVyPmNzczwvRmlsdGVyPgog
ICAgIDwvQ2xJbmNsdWRlPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9u
QnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2
ZWRTb3VyY2VzXEhUTUxFbGVtZW50VHlwZUNoZWNrcy5oIj4KLSAgICAgIDxGaWx0ZXI+RGVyaXZl
ZFNvdXJjZXM8L0ZpbHRlcj4KLSAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGRvbVxJbmxpbmVTdHlsZVNoZWV0T3duZXIuaCI+CiAgICAgICA8RmlsdGVyPmRvbTwv
RmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAtMTQ5MDYsMTIgKzE0OTA3LDExIEBACiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxzdHlsZVxTdHlsZVJlc29sdmVGb3JEb2N1bWVudC5oIj4K
ICAgICAgIDxGaWx0ZXI+Y3NzPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+Ci0gICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hp
dGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcU1ZHRWxlbWVudFR5cGVDaGVj
a3MuaCI+Ci0gICAgICA8RmlsdGVyPkRlcml2ZWRTb3VyY2VzPC9GaWx0ZXI+Ci0gICAgPC9DbElu
Y2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkb21cVGV4dE5vZGVUcmF2ZXJzYWwu
aCI+CiAgICAgICA8RmlsdGVyPmRvbTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1B
cmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEhUTUxFbGVtZW50VHlw
ZUhlbHBlcnMuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1
aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVk
U291cmNlc1xTVkdFbGVtZW50VHlwZUhlbHBlcnMuaCIgLz4KICAgPC9JdGVtR3JvdXA+CiAgIDxJ
dGVtR3JvdXA+CiAgICAgPE5vbmUgSW5jbHVkZT0iLi5cY3NzXENTU0dyYW1tYXIueS5pbiI+CkBA
IC0xNTg4MCw1ICsxNTg4MCw4IEBACiAgICAgPE1BU00gSW5jbHVkZT0iLi5ccGx1Z2luc1x3aW5c
UGFpbnRIb29rcy5hc20iPgogICAgICAgPEZpbHRlcj5wbHVnaW5zXHdpbjwvRmlsdGVyPgogICAg
IDwvTUFTTT4KKyAgICA8TUFTTSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVx3aW5cbWFrZXNhZmVzZWgu
YXNtIj4KKyAgICAgIDxGaWx0ZXI+cGxhdGZvcm1cd2luPC9GaWx0ZXI+CisgICAgPC9NQVNNPgog
ICA8L0l0ZW1Hcm91cD4KLTwvUHJvamVjdD4KKzwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4v
TGF5ZXJDaGFuZ2VzRmx1c2hlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2Evd2luL0xheWVyQ2hhbmdlc0ZsdXNoZXIuY3BwCShyZXZpc2lvbiAx
NTUyMTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vTGF5ZXJD
aGFuZ2VzRmx1c2hlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMSwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTc0LDcgKzc0LDggQEAgTFJFU1VMVCBM
YXllckNoYW5nZXNGbHVzaGVyOjpob29rQ2FsbGJhYwogewogICAgIC8vIFN1cHJlc3MgdGhlIGV4
Y2VwdGlvbiBoYW5kbGVyIFdpbmRvd3MgcHV0cyBhcm91bmQgYWxsIGhvb2sgY2FsbHMgc28gd2Ug
Y2FuIAogICAgIC8vIGNyYXNoIGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMgaWYgYW4gZXhjZXB0aW9u
IGlzIGhpdC4gCi0gICAgU3RydWN0dXJlZEV4Y2VwdGlvbkhhbmRsZXJTdXBwcmVzc29yIHN1cHJl
c3NvcjsgCisgICAgRXhjZXB0aW9uUmVnaXN0cmF0aW9uIHJlZ2lzdHJhdGlvblN0cnVjdDsgLy8g
Tm90ZTogbXVzdCBiZSBzdGFjayBhbGxvY2F0ZWQuCisgICAgU3RydWN0dXJlZEV4Y2VwdGlvbkhh
bmRsZXJTdXBwcmVzc29yIHN1cHJlc3NvcihyZWdpc3RyYXRpb25TdHJ1Y3QpOwogICAgIHJldHVy
biBzaGFyZWQoKS5ob29rRmlyZWQoY29kZSwgd1BhcmFtLCBsUGFyYW0pOwogfQogCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU3RydWN0dXJlZEV4Y2VwdGlvbkhhbmRsZXJTdXBw
cmVzc29yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU3Ry
dWN0dXJlZEV4Y2VwdGlvbkhhbmRsZXJTdXBwcmVzc29yLmNwcAkocmV2aXNpb24gMCkKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TdHJ1Y3R1cmVkRXhjZXB0aW9uSGFuZGxlclN1cHBy
ZXNzb3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTM0IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisKKyNpbmNsdWRlICJTdHJ1Y3R1cmVkRXhjZXB0aW9uSGFuZGxlclN1cHByZXNzb3Iu
aCIKKworZXh0ZXJuICJDIiBpbnQgX19zdGRjYWxsIGV4Y2VwdGlvbkhhbmRsZXJUaHVuaygpOyAv
LyBEZWZpbmVkIGluIG1ha2VzYWZlc2VoLmFzbQorCitzdGF0aWMgYm9vbCBleGNlcHRpb25TaG91
bGRUZXJtaW5hdGVQcm9ncmFtKGludCBjb2RlKQoreworICAgIHN3aXRjaCAoY29kZSkgeworI2lm
bmRlZiBOREVCVUcKKyAgICBjYXNlIEVYQ0VQVElPTl9EQVRBVFlQRV9NSVNBTElHTk1FTlQ6Cisg
ICAgY2FzZSBFWENFUFRJT05fRkxUX0RFTk9STUFMX09QRVJBTkQ6CisgICAgY2FzZSBFWENFUFRJ
T05fRkxUX0RJVklERV9CWV9aRVJPOgorICAgIGNhc2UgRVhDRVBUSU9OX0ZMVF9JTkVYQUNUX1JF
U1VMVDoKKyAgICBjYXNlIEVYQ0VQVElPTl9GTFRfSU5WQUxJRF9PUEVSQVRJT046CisgICAgY2Fz
ZSBFWENFUFRJT05fRkxUX09WRVJGTE9XOgorICAgIGNhc2UgRVhDRVBUSU9OX0ZMVF9TVEFDS19D
SEVDSzoKKyAgICBjYXNlIEVYQ0VQVElPTl9GTFRfVU5ERVJGTE9XOgorI2VuZGlmCisgICAgY2Fz
ZSBFWENFUFRJT05fQUNDRVNTX1ZJT0xBVElPTjoKKyAgICBjYXNlIEVYQ0VQVElPTl9BUlJBWV9C
T1VORFNfRVhDRUVERUQ6CisgICAgY2FzZSBFWENFUFRJT05fSU5UX0RJVklERV9CWV9aRVJPOgor
ICAgIGNhc2UgRVhDRVBUSU9OX0lOVF9PVkVSRkxPVzoKKyAgICBjYXNlIEVYQ0VQVElPTl9QUklW
X0lOU1RSVUNUSU9OOgorICAgIGNhc2UgRVhDRVBUSU9OX0lOX1BBR0VfRVJST1I6CisgICAgY2Fz
ZSBFWENFUFRJT05fSUxMRUdBTF9JTlNUUlVDVElPTjoKKyAgICBjYXNlIEVYQ0VQVElPTl9OT05D
T05USU5VQUJMRV9FWENFUFRJT046CisgICAgY2FzZSBFWENFUFRJT05fU1RBQ0tfT1ZFUkZMT1c6
CisgICAgY2FzZSBFWENFUFRJT05fSU5WQUxJRF9ESVNQT1NJVElPTjoKKyAgICBjYXNlIEVYQ0VQ
VElPTl9HVUFSRF9QQUdFOgorICAgIGNhc2UgRVhDRVBUSU9OX0lOVkFMSURfSEFORExFOgorICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9OworCisgICAgcmV0dXJuIGZhbHNlOworfQorCitleHRl
cm4gIkMiIEVYQ0VQVElPTl9ESVNQT1NJVElPTiBfX3N0ZGNhbGwgZXhjZXB0aW9uSGFuZGxlcihz
dHJ1Y3QgX0VYQ0VQVElPTl9SRUNPUkQqIGV4Y2VwdGlvblJlY29yZCwgdm9pZCogLyplc3RhYmxp
c2hlckZyYW1lKi8sIHN0cnVjdCBfQ09OVEVYVCogLypjb250ZXh0UmVjb3JkKi8sIHZvaWQqIC8q
ZGlzcGF0Y2hlckNvbnRleHQqLykKK3sKKyAgICBpZiAoZXhjZXB0aW9uU2hvdWxkVGVybWluYXRl
UHJvZ3JhbShleGNlcHRpb25SZWNvcmQtPkV4Y2VwdGlvbkNvZGUpKQorICAgICAgICBhYm9ydCgp
OworCisgICAgcmV0dXJuIEV4Y2VwdGlvbkNvbnRpbnVlU2VhcmNoOworfQorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKKyNwcmFnbWEgd2FybmluZyhwdXNoKQorI3ByYWdtYSB3YXJuaW5nKGRpc2Fi
bGU6IDQ3MzMpIC8vIERpc2FibGUgIm5vdCByZWdpc3RlcmVkIGFzIHNhZmUgaGFuZGxlciIgd2Fy
bmluZworCitTdHJ1Y3R1cmVkRXhjZXB0aW9uSGFuZGxlclN1cHByZXNzb3I6OlN0cnVjdHVyZWRF
eGNlcHRpb25IYW5kbGVyU3VwcHJlc3NvcihFeGNlcHRpb25SZWdpc3RyYXRpb24mIGV4Y2VwdGlv
blJlZ2lzdHJhdGlvbikKK3sKKyAgICAvLyBOb3RlOiBXaW5kb3dzIHJlcXVpcmVzIHRoYXQgdGhl
IEVYQ0VQVElPTl9SRUdJU1RSQVRJT04gYmxvY2sgKG1vZGVsZWQgaGVyZSBhcyBvdXIKKyAgICAv
LyBFeGNlcHRpb25SZWdpc3RyYXRpb24gc3RydWN0KSBiZSBzdGFjayBhbGxvY2F0ZWQuIFRoZXJl
Zm9yZSB3ZSBpbnN0YW50aWF0ZWQgaXQgcHJpb3IKKyAgICAvLyB0byBidWlsZGluZyB0aGlzIG9i
amVjdCBzbyB0aGF0IFdpbmRvd3MgY2FuIHN0aWxsIGZpbmQgaXQgaW4gc3RhY2sgbWVtb3J5IHdo
ZW4gaXQKKyAgICAvLyBhdHRlbXB0cyB0byB1c2UgdGhlIGhhbmRsZXIuCisKKyAgICAvLyBXaW5k
b3dzIHB1dHMgYW4gX190cnkvX19leGNlcHQgYmxvY2sgYXJvdW5kIHNvbWUgY2FsbHMsIHN1Y2gg
YXMgaG9va3MuCisgICAgLy8gVGhlIGV4Y2VwdGlvbiBoYW5kbGVyIHRoZW4gaWdub3JlcyBzeXN0
ZW0gZXhjZXB0aW9ucyBsaWtlIGludmFsaWQgYWRkcmVzc2VzCisgICAgLy8gYW5kIG51bGwgcG9p
bnRlcnMuIFRoaXMgY2xhc3MgY2FuIGJlIHVzZWQgdG8gcmVtb3ZlIHRoaXMgYmxvY2sgYW5kIHBy
ZXZlbnQKKyAgICAvLyBpdCBmcm9tIGNhdGNoaW5nIHRoZSBleGNlcHRpb24uIFR5cGljYWxseSB0
aGlzIHdpbGwgY2F1c2UgdGhlIGV4Y2VwdGlvbiB0byBjcmFzaCAKKyAgICAvLyB3aGljaCBpcyBv
ZnRlbiBkZXNpcmFibGUgdG8gYWxsb3cgY3Jhc2hsb2dzIHRvIGJlIHJlY29yZGVkIGZvciBkZWJ1
Z2dpbmcgcHVycG9zZWQuCisgICAgLy8gV2hpbGUgdGhpcyBjbGFzcyBpcyBpbiBzY29wZSB3ZSBy
ZXBsYWNlIHRoZSBXaW5kb3dzIGV4Y2VwdGlvbiBoYW5kbGVyIHdpdGggYSBjdXN0b20KKyAgICAv
LyBoYW5kbGVyIHRoYXQgaW5kaWNhdGVzIGV4Y2VwdGlvbnMgdGhhdCBzaG91bGQgbm90IGJlIGhh
bmRsZWQuCisgICAgLy8KKyAgICAvLyBTZWUgaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL21zai8w
MTk3L0V4Y2VwdGlvbi9FeGNlcHRpb24uYXNweCwKKyAgICAvLyAgICAgaHR0cDovL3d3dy5taWNy
b3NvZnQuY29tL21zai9hcmNoaXZlL1MyQ0UuYXNweAorICAgIC8vICAgICBodHRwOi8vd3d3Lmhl
eGJsb2cuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDEyLzA2L1JlY29uLTIwMTItU2tvY2hpbnNr
eS1Db21waWxlci1JbnRlcm5hbHMucGRmCisgICAgLy8gICAgIGh0dHA6Ly93d3cuY29kZXByb2pl
Y3QuY29tL0FydGljbGVzLzIxMjYvSG93LWEtQy1jb21waWxlci1pbXBsZW1lbnRzLWV4Y2VwdGlv
bi1oYW5kbGluZworCisgICAgLy8gV2luZG93cyBkb2Vzbid0IGxpa2UgYXNzaWduaW5nIHRvIG1l
bWJlciB2YXJpYWJsZXMsIHNvIHdlIG5lZWQgdG8gZ2V0IHRoZSB2YWx1ZSBpbnRvCisgICAgLy8g
YSBsb2NhbCB2YXJpYWJsZSBhbmQgc3RvcmUgaXQgYWZ0ZXJ3YXJkcy4KKyAgICB2b2lkKiByZWdp
c3RyYXRpb247CisKKyAgICAvLyBOb3RlOiBUaGUgRlMgcmVnaXN0ZXIgb24gV2luZG93cyBhbHdh
eXMgaG9sZHMgdGhlIFRocmVhZCBJbmZvcm1hdGlvbiBCbG9jay4KKyAgICAvLyBGUzpbMF0gcG9p
bnRzIHRvIHRoZSBzdHJ1Y3R1cmVkIGV4Y2VwdGlvbiBoYW5kbGluZyBjaGFpbiAoYSBjaGFpbiBv
ZgorICAgIC8vIEVYQ0VQVElPTl9SRUdJU1RSQVRJT04gc3RydWN0cykuCisgICAgLy8KKyAgICAv
LyBzdHJ1Y3QgRVhDRVBUSU9OX1JFR0lTVFJBVElPTgorICAgIC8vIHsKKyAgICAvLyAgICAgRFdP
UkQgbmV4dDsKKyAgICAvLyAgICAgRFdPUkQgaGFuZGxlcjsKKyAgICAvLyB9OworICAgIC8vCisg
ICAgLy8gVGhlIGZpcnN0IGZvdXIgYnl0ZXMgb2YgRlM6WzBdIHBvaW50IHRvIHRoZSAnTmV4dCcg
bWVtYmVyIGluIHRoZSBjaGFpbi4gR3JhYiBpdCBzbyB3ZSBjYW4gcmVzdG9yZSBpdCBsYXRlci4K
KyAgICBfX2FzbSBtb3YgZWF4LCBGUzpbMF0KKyAgICBfX2FzbSBtb3YgW3JlZ2lzdHJhdGlvbl0s
IGVheAorCisgICAgZXhjZXB0aW9uUmVnaXN0cmF0aW9uLnByZXYgPSAoRXhjZXB0aW9uUmVnaXN0
cmF0aW9uKilyZWdpc3RyYXRpb247CisgICAgZXhjZXB0aW9uUmVnaXN0cmF0aW9uLmhhbmRsZXIg
PSAodm9pZCopZXhjZXB0aW9uSGFuZGxlclRodW5rOworCisgICAgdm9pZCogZXJTdHJ1Y3RNZW0g
PSAmZXhjZXB0aW9uUmVnaXN0cmF0aW9uOworCisgICAgX19hc20gbW92IGVheCwgZXJTdHJ1Y3RN
ZW0KKyAgICBfX2FzbSBtb3YgRlM6WzBdLCBlYXgKKworICAgIG1fc2F2ZWRFeGNlcHRpb25SZWdp
c3RyYXRpb24gPSByZWdpc3RyYXRpb247Cit9CisKK1N0cnVjdHVyZWRFeGNlcHRpb25IYW5kbGVy
U3VwcHJlc3Nvcjo6flN0cnVjdHVyZWRFeGNlcHRpb25IYW5kbGVyU3VwcHJlc3NvcigpCit7Cisg
ICAgLy8gUmVzdG9yZSB0aGUgZXhjZXB0aW9uIGhhbmRsZXIKKyAgICBfX2FzbSBtb3YgZWF4LCBb
bV9zYXZlZEV4Y2VwdGlvblJlZ2lzdHJhdGlvbl0KKyAgICBfX2FzbSBtb3YgRlM6WzBdLCBlYXgK
K30KKworI3ByYWdtYSB3YXJuaW5nKHBvcCkKKworfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd2luL1N0cnVjdHVyZWRFeGNlcHRpb25IYW5kbGVyU3VwcHJlc3Nvci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TdHJ1Y3R1cmVkRXhjZXB0aW9uSGFu
ZGxlclN1cHByZXNzb3IuaAkocmV2aXNpb24gMTU1MjE1KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd2luL1N0cnVjdHVyZWRFeGNlcHRpb25IYW5kbGVyU3VwcHJlc3Nvci5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yNiw1MSArMjYsMjggQEAKICNpZm5kZWYgU3RydWN0dXJlZEV4Y2VwdGlvbkhh
bmRsZXJTdXBwcmVzc29yX2gKICNkZWZpbmUgU3RydWN0dXJlZEV4Y2VwdGlvbkhhbmRsZXJTdXBw
cmVzc29yX2gKIAorI2luY2x1ZGUgPGV4Y3B0Lmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxl
Lmg+CisKK2V4dGVybiAiQyIgRVhDRVBUSU9OX0RJU1BPU0lUSU9OIF9fc3RkY2FsbCBleGNlcHRp
b25IYW5kbGVyKHN0cnVjdCBfRVhDRVBUSU9OX1JFQ09SRCogZXhjZXB0aW9uUmVjb3JkLCB2b2lk
KiBlc3RhYmxpc2hlckZyYW1lLCBzdHJ1Y3QgX0NPTlRFWFQqIGNvbnRleHRSZWNvcmQsIHZvaWQq
IGRpc3BhdGNoZXJDb250ZXh0KTsKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0jcHJhZ21hIHdh
cm5pbmcocHVzaCkKLSNwcmFnbWEgd2FybmluZyhkaXNhYmxlOiA0NzMzKSAvLyBEaXNhYmxlICJu
b3QgcmVnaXN0ZXJlZCBhcyBzYWZlIGhhbmRsZXIiIHdhcm5pbmcKK3N0cnVjdCBFeGNlcHRpb25S
ZWdpc3RyYXRpb24geworICAgIEV4Y2VwdGlvblJlZ2lzdHJhdGlvbiogcHJldjsKKyAgICB2b2lk
KiBoYW5kbGVyOworfTsKIAogY2xhc3MgU3RydWN0dXJlZEV4Y2VwdGlvbkhhbmRsZXJTdXBwcmVz
c29yIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTdHJ1Y3R1cmVkRXhjZXB0aW9uSGFuZGxl
clN1cHByZXNzb3IpOwogcHVibGljOgotICAgIFN0cnVjdHVyZWRFeGNlcHRpb25IYW5kbGVyU3Vw
cHJlc3NvcigpCi0gICAgewotICAgICAgICAvLyBXaW5kb3dzIHB1dHMgYW4gX190cnkvX19leGNl
cHQgYmxvY2sgYXJvdW5kIHNvbWUgY2FsbHMsIHN1Y2ggYXMgaG9va3MuCi0gICAgICAgIC8vIFRo
ZSBleGNlcHRpb24gaGFuZGxlciB0aGVuIGlnbm9yZXMgc3lzdGVtIGV4Y2VwdGlvbnMgbGlrZSBp
bnZhbGlkIGFkZHJlc3NlcwotICAgICAgICAvLyBhbmQgbnVsbCBwb2ludGVycy4gVGhpcyBjbGFz
cyBjYW4gYmUgdXNlZCB0byByZW1vdmUgdGhpcyBibG9jayBhbmQgcHJldmVudAotICAgICAgICAv
LyBpdCBmcm9tIGNhdGNoaW5nIHRoZSBleGNlcHRpb24uIFR5cGljYWxseSB0aGlzIHdpbGwgY2F1
c2UgdGhlIGV4Y2VwdGlvbiB0byBjcmFzaCAKLSAgICAgICAgLy8gd2hpY2ggaXMgb2Z0ZW4gZGVz
aXJhYmxlIHRvIGFsbG93IGNyYXNobG9ncyB0byBiZSByZWNvcmRlZCBmb3IgZGVidWdnaW5nIHB1
cnBvc2VkLgotICAgICAgICAvLyBXaGlsZSB0aGlzIGNsYXNzIGlzIGluIHNjb3BlIHdlIHJlcGxh
Y2UgdGhlIFdpbmRvd3MgZXhjZXB0aW9uIGhhbmRsZXIgd2l0aCAweGZmZmZmZmZmLCAKLSAgICAg
ICAgLy8gd2hpY2ggaW5kaWNhdGVzIHRoYXQgdGhlIGV4Y2VwdGlvbiBzaG91bGQgbm90IGJlIGhh
bmRsZWQuCi0gICAgICAgIC8vCi0gICAgICAgIC8vIFNlZSBodHRwOi8vd3d3Lm1pY3Jvc29mdC5j
b20vbXNqLzAxOTcvRXhjZXB0aW9uL0V4Y2VwdGlvbi5hc3B4Ci0KLSAgICAgICAgLy8gV2luZG93
cyBkb2Vzbid0IGxpa2UgYXNzaWduaW5nIHRvIG1lbWJlciB2YXJpYWJsZXMsIHNvIHdlIG5lZWQg
dG8gZ2V0IHRoZSB2YWx1ZSBpbnRvCi0gICAgICAgIC8vIGEgbG9jYWwgdmFyaWFibGUgYW5kIHN0
b3JlIGl0IGFmdGVyd2FyZHMuCi0gICAgICAgIHZvaWQqIHJlZ2lzdHJhdGlvbjsKLQotICAgICAg
ICBfX2FzbSBtb3YgZWF4LCBGUzpbMF0KLSAgICAgICAgX19hc20gbW92IFtyZWdpc3RyYXRpb25d
LCBlYXgKLSAgICAgICAgX19hc20gbW92IGVheCwgMHhmZmZmZmZmZgotICAgICAgICBfX2FzbSBt
b3YgRlM6WzBdLCBlYXgKLQotICAgICAgICBtX3NhdmVkRXhjZXB0aW9uUmVnaXN0cmF0aW9uID0g
cmVnaXN0cmF0aW9uOwotICAgIH0KLQotICAgIH5TdHJ1Y3R1cmVkRXhjZXB0aW9uSGFuZGxlclN1
cHByZXNzb3IoKQotICAgIHsKLSAgICAgICAgLy8gUmVzdG9yZSB0aGUgZXhjZXB0aW9uIGhhbmRs
ZXIKLSAgICAgICAgX19hc20gbW92IGVheCwgW21fc2F2ZWRFeGNlcHRpb25SZWdpc3RyYXRpb25d
Ci0gICAgICAgIF9fYXNtIG1vdiBGUzpbMF0sIGVheAotICAgIH0KKyAgICBTdHJ1Y3R1cmVkRXhj
ZXB0aW9uSGFuZGxlclN1cHByZXNzb3IoRXhjZXB0aW9uUmVnaXN0cmF0aW9uJik7CisgICAgflN0
cnVjdHVyZWRFeGNlcHRpb25IYW5kbGVyU3VwcHJlc3NvcigpOwogCiBwcml2YXRlOgogICAgIHZv
aWQqIG1fc2F2ZWRFeGNlcHRpb25SZWdpc3RyYXRpb247CiB9OwogCi0jcHJhZ21hIHdhcm5pbmco
cG9wKQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBTdHJ1Y3R1cmVkRXhj
ZXB0aW9uSGFuZGxlclN1cHByZXNzb3JfaApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d2luL21ha2VzYWZlc2VoLmFzbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS93aW4vbWFrZXNhZmVzZWguYXNtCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd2luL21ha2VzYWZlc2VoLmFzbQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ1IEBA
Cis7LyoKKzsgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUsIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZAorOyAqCis7ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cis7ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCis7ICogYXJlIG1ldDoKKzsg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorOyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKzsgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorOyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKzsgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorOyAqCis7ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCis7ICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKzsgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKzsgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgQ09NUFVURVIsIElOQy4gT1IKKzsgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKzsgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCis7
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCis7ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorOyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorOyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
OyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorOyAqLworCis7IFRlbGwgV2luZG93cyB0byB0cnVzdCBvdXIgZXJy
b3IgaGFuZGxlci4gVGhpcyBtdXN0IGJlIGRvbmUgd2l0aGluIGFuIGFzc2VtYmx5Cis7IG1vZHVs
ZS4gV2UgY2Fubm90IGRvIGl0IG9uLXRoZS1mbHkgaW4gb3VyIEMrKyBjb2RlLgorOworOyBOb3Rl
IGFsc28gKGNvbmZpcm1lZCBieSBSYXltb25kIENoZW4pIHRoYXQgd2UgbXVzdCB1c2UgdGhpcyBh
c3NlbWJseSB0aHVuaworOyB0byBjYWxsIG91ciBjdXN0b20gZXhjZXB0aW9uIGhhbmRsZXIuIChT
ZWUgaHR0cDovL2pwYXNzaW5nLmNvbS8yMDA4LzA1LzIwL2Z1bi13aXRoLWxvdy1sZXZlbC1zZWgv
KQorCisuMzg2CisubW9kZWwgRkxBVCwgU1REQ0FMTAorCitFWFRFUk4gZXhjZXB0aW9uSGFuZGxl
ckAxNiA6IG5lYXIgICA7IERlZmluZWQgaW4gU3RydWN0dXJlZEV4Y2VwdGlvbkhhbmRsZXJTdXBy
ZXNzb3IuY3BwCisKK2V4Y2VwdGlvbkhhbmRsZXJUaHVuayBwcm90bworLnNhZmVzZWggZXhjZXB0
aW9uSGFuZGxlclRodW5rCisKKy5jb2RlCitleGNlcHRpb25IYW5kbGVyVGh1bmsgcHJvYworICAg
IGptcCBleGNlcHRpb25IYW5kbGVyQDE2CitleGNlcHRpb25IYW5kbGVyVGh1bmsgZW5kcAorCitF
TkQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>
<flag name="review"
          id="232893"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>