<?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>145530</bug_id>
          
          <creation_ts>2015-06-01 15:43:53 -0700</creation_ts>
          <short_desc>Add stub implementation of MediaSession, part of Media Session spec</short_desc>
          <delta_ts>2015-06-02 14:54:41 -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>Media</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>145411</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Matt Rajca">mrajca</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>conrad_shultz</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jer.noble</cc>
    
    <cc>mrajca</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1098615</commentid>
    <comment_count>0</comment_count>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-06-01 15:43:53 -0700</bug_when>
    <thetext>Add a stub implementation of MediaSession, part of the Media Session spec: https://mediasession.spec.whatwg.org/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098618</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-06-01 15:44:59 -0700</bug_when>
    <thetext>&lt;rdar://problem/21191606&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098653</commentid>
    <comment_count>2</comment_count>
      <attachid>254028</attachid>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-06-01 16:59:06 -0700</bug_when>
    <thetext>Created attachment 254028
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098656</commentid>
    <comment_count>3</comment_count>
      <attachid>254028</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-06-01 17:06:10 -0700</bug_when>
    <thetext>Comment on attachment 254028
Patch

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

If we have MediaSession.idl we need to have JSMediaSession.cpp and JSMediaSession.h.

&gt; Source/WebCore/Modules/mediasession/MediaSession.h:32
&gt; +#include &lt;wtf/RefCounted.h&gt;

If we include &quot;MediaRemoteControls.h&quot; it seems unlikely we need to include this also.

&gt; Source/WebCore/Modules/mediasession/MediaSession.h:33
&gt; +#include &lt;wtf/RefPtr.h&gt;

Ditto.

&gt; Source/WebCore/Modules/mediasession/MediaSession.h:37
&gt; +class MediaSession : public RefCounted&lt;MediaSession&gt; {

I suggest marking this class final.

&gt; Source/WebCore/Modules/mediasession/MediaSession.h:46
&gt; +    MediaSession(ScriptExecutionContext&amp;, Kind);

Does this compile? Does the bindings generator really turn those strings into MediaSession::Kind values?

&gt; Source/WebCore/Modules/mediasession/MediaSession.h:47
&gt; +    virtual ~MediaSession();

Why virtual? There doesn’t seem to be any polymorphism in this class, so it seems we should avoid marking it virtual.

&gt; Source/WebCore/Modules/mediasession/MediaSession.h:50
&gt; +    MediaRemoteControls *controls() const { return m_controls.get(); }

Wrong position of the * character here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098784</commentid>
    <comment_count>4</comment_count>
      <attachid>254028</attachid>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-06-02 10:02:03 -0700</bug_when>
    <thetext>Comment on attachment 254028
Patch

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

&gt;&gt; Source/WebCore/Modules/mediasession/MediaSession.h:32
&gt;&gt; +#include &lt;wtf/RefCounted.h&gt;
&gt; 
&gt; If we include &quot;MediaRemoteControls.h&quot; it seems unlikely we need to include this also.

Removed.

&gt;&gt; Source/WebCore/Modules/mediasession/MediaSession.h:37
&gt;&gt; +class MediaSession : public RefCounted&lt;MediaSession&gt; {
&gt; 
&gt; I suggest marking this class final.

I agree.

&gt;&gt; Source/WebCore/Modules/mediasession/MediaSession.h:46
&gt;&gt; +    MediaSession(ScriptExecutionContext&amp;, Kind);
&gt; 
&gt; Does this compile? Does the bindings generator really turn those strings into MediaSession::Kind values?

Not if we compile JSMediaSession with the project. Fixed.

&gt;&gt; Source/WebCore/Modules/mediasession/MediaSession.h:47
&gt;&gt; +    virtual ~MediaSession();
&gt; 
&gt; Why virtual? There doesn’t seem to be any polymorphism in this class, so it seems we should avoid marking it virtual.

Done, and annotated the interface in the IDL file with ImplementationLacksVTable.

&gt;&gt; Source/WebCore/Modules/mediasession/MediaSession.h:50
&gt;&gt; +    MediaRemoteControls *controls() const { return m_controls.get(); }
&gt; 
&gt; Wrong position of the * character here.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098787</commentid>
    <comment_count>5</comment_count>
      <attachid>254071</attachid>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-06-02 10:10:04 -0700</bug_when>
    <thetext>Created attachment 254071
Patch (revised)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098801</commentid>
    <comment_count>6</comment_count>
      <attachid>254071</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-06-02 11:25:05 -0700</bug_when>
    <thetext>Comment on attachment 254071
Patch (revised)

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

&gt; Source/WebCore/Modules/mediasession/MediaSession.h:46
&gt; +    MediaRemoteControls* controls(bool&amp; isNull);

Where does this signature come from? We haven’t ever used this in the past for bindings. Is this some new approach?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098822</commentid>
    <comment_count>7</comment_count>
      <attachid>254071</attachid>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-06-02 12:18:21 -0700</bug_when>
    <thetext>Comment on attachment 254071
Patch (revised)

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

&gt;&gt; Source/WebCore/Modules/mediasession/MediaSession.h:46
&gt;&gt; +    MediaRemoteControls* controls(bool&amp; isNull);
&gt; 
&gt; Where does this signature come from? We haven’t ever used this in the past for bindings. Is this some new approach?

In the Media Session spec, the &apos;controls&apos; attribute is a nullable type (denoted by a ?). Accessors for nullable types are expected to set a reference parameter indicating whether the value is null. We can also see this pattern in geolocation/Coordinates.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098864</commentid>
    <comment_count>8</comment_count>
      <attachid>254071</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2015-06-02 13:22:27 -0700</bug_when>
    <thetext>Comment on attachment 254071
Patch (revised)

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

&gt; Source/WebCore/Modules/mediasession/MediaSession.cpp:48
&gt; +    MediaRemoteControls* controls = m_controls.get();
&gt; +    isNull = controls == nullptr;
&gt; +    return controls;

WebKit style is to test for a NULL object with &quot;!&quot;, so something like the following would be better:

  isNull = !m_controls;
  return controls.get();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098868</commentid>
    <comment_count>9</comment_count>
      <attachid>254091</attachid>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-06-02 13:25:08 -0700</bug_when>
    <thetext>Created attachment 254091
Patch (style fix)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098875</commentid>
    <comment_count>10</comment_count>
      <attachid>254091</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-02 13:30:55 -0700</bug_when>
    <thetext>Comment on attachment 254091
Patch (style fix)

Rejecting attachment 254091 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.appspot.com&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 254091, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
 at 13247.
Hunk #3 succeeded at 14609 (offset 12 lines).
Hunk #4 succeeded at 19235 (offset 18 lines).
Hunk #5 succeeded at 25843 (offset 20 lines).
Hunk #6 succeeded at 28940 (offset 24 lines).
Hunk #7 succeeded at 29429 (offset 24 lines).
1 out of 7 hunks FAILED -- saving rejects to file Source/WebCore/WebCore.xcodeproj/project.pbxproj.rej

Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, u&apos;Eric Carlson&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Full output: http://webkit-queues.appspot.com/results/5129197307559936</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098877</commentid>
    <comment_count>11</comment_count>
      <attachid>254096</attachid>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-06-02 13:35:17 -0700</bug_when>
    <thetext>Created attachment 254096
Patch (rebased)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098911</commentid>
    <comment_count>12</comment_count>
      <attachid>254096</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-02 14:54:38 -0700</bug_when>
    <thetext>Comment on attachment 254096
Patch (rebased)

Clearing flags on attachment: 254096

Committed r185126: &lt;http://trac.webkit.org/changeset/185126&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098912</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-02 14:54:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254028</attachid>
            <date>2015-06-01 16:59:06 -0700</date>
            <delta_ts>2015-06-02 10:10:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145530-20150601165848.patch</filename>
            <type>text/plain</type>
            <size>13665</size>
            <attacher name="Matt Rajca">mrajca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1MDc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTQ3NTJiYzgyYzE2YTRm
MDE4ZjEyNjljOTE5OGFjMzVlNmFmZTgyNS4uYTZlMDE4NzRmNzc4MDUyYzc1YjM5NGVmZjE0YzE5
ZDVmYTRhOWMwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE1LTA2LTAxICBNYXR0
IFJhamNhICA8bXJhamNhQGFwcGxlLmNvbT4KKworICAgICAgICBBZGRlZCBhIHN0dWIgaW1wbGVt
ZW50YXRpb24gb2YgTWVkaWFTZXNzaW9uLCBwYXJ0IG9mIHRoZSBNZWRpYSBTZXNzaW9uIHNwZWMu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDU1MzAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENNYWtl
TGlzdHMudHh0OiBBZGRlZCBuZXcgTWVkaWFTZXNzaW9uIHNvdXJjZXMuCisgICAgICAgICogTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVNlc3Npb246Ok1lZGlhU2Vzc2lvbik6IFBlciB0aGUgTWVkaWEgU2Vzc2lvbiBz
cGVjLCBhIE1lZGlhIFJlbW90ZSBDb250cm9scyBvYmplY3Qgc2hvdWxkIG9ubHkgYmUKKyAgICAg
ICAgICBzZXQgZm9yICdjb250ZW50JyBzZXNzaW9uczsgaXQgaXMgbnVsbCBvdGhlcndpc2UuCisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246OnJlbGVhc2UpOgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5oOiBBZGRlZCBiYXNpYyB0cmFuc2xhdGlvbiBv
ZiBJREwgZmlsZS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6a2luZCk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246OmNvbnRyb2xzKToKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uaWRsOiBBZGRlZCBmcm9tIHRoZSBNZWRpYSBTZXNz
aW9uIHNwZWMuCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBB
ZGRlZCBuZXcgTWVkaWFTZXNzaW9uIHNvdXJjZXMuCisKIDIwMTUtMDYtMDEgIEFsZXggQ2hyaXN0
ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBbQ29udGVudCBFeHRl
bnNpb25zXSBSZWR1Y2UgREZBIG1lbW9yeSB1c2FnZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXgg
MDA4OWJlZWY0ZDkwMjJjZTM1ZTdlNTU4MThlY2U1M2Q3YWFjNmRlNS4uZDUxMDA2MzU2YWFkNDcx
NTEzYmQ5MGM1NmQ3NWM2Mjc4MjFmMTQyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTIxOSw2
ICsyMTksNyBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAgIE1vZHVsZXMvbWVk
aWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5pZGwKIAogICAgIE1vZHVsZXMvbWVkaWFzZXNz
aW9uL01lZGlhUmVtb3RlQ29udHJvbHMuaWRsCisgICAgTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVk
aWFTZXNzaW9uLmlkbAogCiAgICAgTW9kdWxlcy9tZWRpYXNvdXJjZS9ET01VUkxNZWRpYVNvdXJj
ZS5pZGwKICAgICBNb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmlkbApAQCAtODc0LDYg
Kzg3NSw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBNb2R1bGVzL21lZGlhY29udHJvbHMv
TWVkaWFDb250cm9sc0hvc3QuY3BwCiAKICAgICBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVJl
bW90ZUNvbnRyb2xzLmNwcAorICAgIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5j
cHAKIAogICAgIE1vZHVsZXMvbWVkaWFzb3VyY2UvRE9NVVJMTWVkaWFTb3VyY2UuY3BwCiAgICAg
TW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFl
YWM0ZTY3MTgwZWZmNDM3YmI5N2NiOWYyOTUzNjk1ZTIyYmNmMTkKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uY3BwCkBA
IC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwg
UmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFTZXNzaW9uLmgiCisKKyNp
ZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitNZWRpYVNl
c3Npb246Ok1lZGlhU2Vzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBLaW5k
IGtpbmQpCisgICAgOiBtX2tpbmQoa2luZCkKK3sKKyAgICBpZiAoa2luZCA9PSBLaW5kOjpDb250
ZW50KQorICAgICAgICBtX2NvbnRyb2xzID0gYWRvcHRSZWYoKm5ldyBNZWRpYVJlbW90ZUNvbnRy
b2xzKGNvbnRleHQpKTsKK30KKworTWVkaWFTZXNzaW9uOjp+TWVkaWFTZXNzaW9uKCkKK3sKK30K
Kwordm9pZCBNZWRpYVNlc3Npb246OnJlbGVhc2UoKQoreworfQorCit9CisKKyNlbmRpZiAvKiBF
TkFCTEUoTUVESUFfU0VTU0lPTikgKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDNhM2M1Y2FiZTlkOTNlM2Jm
MDg4YWZlMDkwZGJhODI4ZTFkNGJmZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5oCkBAIC0wLDAgKzEsNjMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE1lZGlh
U2Vzc2lvbl9oCisjZGVmaW5lIE1lZGlhU2Vzc2lvbl9oCisKKyNpZiBFTkFCTEUoTUVESUFfU0VT
U0lPTikKKworI2luY2x1ZGUgIk1lZGlhUmVtb3RlQ29udHJvbHMuaCIKKyNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBNZWRpYVNlc3Npb24gOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVNlc3Np
b24+IHsKK3B1YmxpYzoKKyAgICBlbnVtIGNsYXNzIEtpbmQgeworICAgICAgICBDb250ZW50LAor
ICAgICAgICBUcmFuc2llbnQsCisgICAgICAgIFRyYW5zaWVudFNvbG8sCisgICAgICAgIEFtYmll
bnQKKyAgICB9OworCisgICAgTWVkaWFTZXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBL
aW5kKTsKKyAgICB2aXJ0dWFsIH5NZWRpYVNlc3Npb24oKTsKKworICAgIEtpbmQga2luZCgpIGNv
bnN0IHsgcmV0dXJuIG1fa2luZDsgfQorICAgIE1lZGlhUmVtb3RlQ29udHJvbHMgKmNvbnRyb2xz
KCkgY29uc3QgeyByZXR1cm4gbV9jb250cm9scy5nZXQoKTsgfQorCisgICAgdm9pZCByZWxlYXNl
KCk7CisKK3ByaXZhdGU6CisgICAgY29uc3QgS2luZCBtX2tpbmQ7CisgICAgUmVmUHRyPE1lZGlh
UmVtb3RlQ29udHJvbHM+IG1fY29udHJvbHM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvKiBFTkFCTEUoTUVESUFfU0VTU0lPTikgKi8KKworI2VuZGlmIC8qIE1lZGlh
U2Vzc2lvbl9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYVNlc3Npb24uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFTZXNzaW9uLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hODljNmNlOGQ2MTAzMjQzMjVkNjU5MGRj
NzVlMmM5YTFlNDlkNmJhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmlkbApAQCAtMCwwICsxLDQyIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIENvbmRpdGlvbmFs
PU1FRElBX1NFU1NJT04sCisgICAgQ29uc3RydWN0b3IoTWVkaWFTZXNzaW9uS2luZCBraW5kKSwK
KyAgICBDb25zdHJ1Y3RvckNhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsCitdIGludGVy
ZmFjZSBNZWRpYVNlc3Npb24geworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBNZWRpYVNlc3Npb25L
aW5kIGtpbmQ7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIE1lZGlhUmVtb3RlQ29udHJvbHM/IGNv
bnRyb2xzOworCisgICAgdm9pZCByZWxlYXNlKCk7Cit9OworCitlbnVtIE1lZGlhU2Vzc2lvbktp
bmQgeworICAgICJjb250ZW50IiwKKyAgICAidHJhbnNpZW50IiwKKyAgICAidHJhbnNpZW50LXNv
bG8iLAorICAgICJhbWJpZW50IgorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxZjljMzJlYTdmYzJmZjU5ZmI2MDliNGFiNDFk
NTYzNjEyZWY3ZGUyLi5mNDFjMWRlMTc3YTY3YzMyMjY1YzU4Y2UyYjk5NTAxN2MzMWUxYmM1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC01Njg1LDYgKzU2ODUsOCBAQAogCQlDNkY0MjBBMjE2QjcxNjRFMDA1MkE5RjIgLyogSlNN
dXRhdGlvbkNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEM2RjQyMEEwMTZCNzE2NEUwMDUyQTlGMiAvKiBKU011dGF0aW9uQ2FsbGJhY2su
Y3BwICovOyB9OwogCQlDNkY0MjBBMzE2QjcxNjRFMDA1MkE5RjIgLyogSlNNdXRhdGlvbkNhbGxi
YWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkY0
MjBBMTE2QjcxNjRFMDA1MkE5RjIgLyogSlNNdXRhdGlvbkNhbGxiYWNrLmggKi87IH07CiAJCUM5
MDI2QjY1MUIxQ0Y1RkUwMDFEOTlBNyAvKiBKU01lZGlhUmVtb3RlQ29udHJvbHMuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzkwMjZCNjMxQjFDRjVB
QjAwMUQ5OUE3IC8qIEpTTWVkaWFSZW1vdGVDb250cm9scy5jcHAgKi87IH07CisJCUM5MDI3RjQx
MUIxRDBBRDIwMEJGQkZFRiAvKiBNZWRpYVNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzkwMjdGM0YxQjFEMEFEMjAwQkZCRkVGIC8qIE1l
ZGlhU2Vzc2lvbi5jcHAgKi87IH07CisJCUM5MDI3RjQyMUIxRDBBRDIwMEJGQkZFRiAvKiBNZWRp
YVNlc3Npb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEM5MDI3RjQwMUIxRDBBRDIwMEJGQkZFRiAvKiBNZWRpYVNlc3Npb24uaCAqLzsgfTsKIAkJQzkw
ODQzQ0YxQjE4RTQ3RDAwQjY4NTY0IC8qIE1lZGlhUmVtb3RlQ29udHJvbHMuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzkwODQzQ0QxQjE4RTQ3RDAw
QjY4NTY0IC8qIE1lZGlhUmVtb3RlQ29udHJvbHMuY3BwICovOyB9OwogCQlDOTA4NDNEMDFCMThF
NDdEMDBCNjg1NjQgLyogTWVkaWFSZW1vdGVDb250cm9scy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzkwODQzQ0UxQjE4RTQ3RDAwQjY4NTY0IC8qIE1l
ZGlhUmVtb3RlQ29udHJvbHMuaCAqLzsgfTsKIAkJQ0EzQkY2N0MxMEQ5OUJBRTAwRTZDRTUzIC8q
IFNjcm9sbEFuaW1hdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENBM0JGNjdCMTBEOTlCQUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5jcHAg
Ki87IH07CkBAIC0xMzI0MCw2ICsxMzI0Miw5IEBACiAJCUM2RjQyMEExMTZCNzE2NEUwMDUyQTlG
MiAvKiBKU011dGF0aW9uQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNNdXRhdGlvbkNhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM5
MDI2QjYzMUIxQ0Y1QUIwMDFEOTlBNyAvKiBKU01lZGlhUmVtb3RlQ29udHJvbHMuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSlNNZWRpYVJlbW90ZUNvbnRyb2xzLmNw
cDsgcGF0aCA9ICJKU01lZGlhUmVtb3RlQ29udHJvbHMuY3BwIjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQzkwMjZCNjQxQjFDRjVBQjAwMUQ5OUE3IC8qIEpTTWVkaWFSZW1vdGVDb250
cm9scy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBKU01lZGlhUmVtb3RlQ29u
dHJvbHMuaDsgcGF0aCA9ICJKU01lZGlhUmVtb3RlQ29udHJvbHMuaCI7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUM5MDI3RjNFMUIxRDBBQjkwMEJGQkZFRiAvKiBNZWRpYVNlc3Npb24u
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IE1lZGlhU2Vzc2lvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUM5MDI3RjNGMUIxRDBBRDIwMEJGQkZFRiAvKiBNZWRpYVNlc3Npb24uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFTZXNzaW9uLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQzkwMjdGNDAxQjFEMEFEMjAwQkZCRkVGIC8qIE1lZGlhU2Vzc2lv
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVNlc3Npb24uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzkwODQzQ0QxQjE4RTQ3RDAwQjY4NTY0IC8qIE1l
ZGlhUmVtb3RlQ29udHJvbHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTWVkaWFSZW1vdGVDb250cm9scy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUM5MDg0M0NFMUIxOEU0N0QwMEI2ODU2NCAvKiBNZWRpYVJlbW90ZUNvbnRyb2xzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUmVtb3RlQ29udHJvbHMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzkzNDU4QkIxQjE4RDc3RTAwODhFRTEyIC8qIE1lZGlh
UmVtb3RlQ29udHJvbHMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlhUmVtb3RlQ29u
dHJvbHMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQ1ODksNiArMTQ1OTQs
OSBAQAogCQkJCUM5MDg0M0NEMUIxOEU0N0QwMEI2ODU2NCAvKiBNZWRpYVJlbW90ZUNvbnRyb2xz
LmNwcCAqLywKIAkJCQlDOTA4NDNDRTFCMThFNDdEMDBCNjg1NjQgLyogTWVkaWFSZW1vdGVDb250
cm9scy5oICovLAogCQkJCUM5MzQ1OEJCMUIxOEQ3N0UwMDg4RUUxMiAvKiBNZWRpYVJlbW90ZUNv
bnRyb2xzLmlkbCAqLywKKwkJCQlDOTAyN0YzRjFCMUQwQUQyMDBCRkJGRUYgLyogTWVkaWFTZXNz
aW9uLmNwcCAqLywKKwkJCQlDOTAyN0Y0MDFCMUQwQUQyMDBCRkJGRUYgLyogTWVkaWFTZXNzaW9u
LmggKi8sCisJCQkJQzkwMjdGM0UxQjFEMEFCOTAwQkZCRkVGIC8qIE1lZGlhU2Vzc2lvbi5pZGwg
Ki8sCiAJCQkJMDcwOUQ3OEMxQUU1NTU1NDAwNEU0MkY4IC8qIFdlYk1lZGlhU2Vzc2lvbk1hbmFn
ZXIuY3BwICovLAogCQkJCTA3MDlENzhEMUFFNTU1NTQwMDRFNDJGOCAvKiBXZWJNZWRpYVNlc3Np
b25NYW5hZ2VyLmggKi8sCiAJCQkJMDcwOUQ3OTQxQUU1NUEyOTAwNEU0MkY4IC8qIFdlYk1lZGlh
U2Vzc2lvbk1hbmFnZXJDbGllbnQuaCAqLywKQEAgLTI1ODEwLDYgKzI1ODE4LDcgQEAKIAkJCQlD
OTA4NDNEMDFCMThFNDdEMDBCNjg1NjQgLyogTWVkaWFSZW1vdGVDb250cm9scy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQ0VFRkNEN0ExOURCMzFGNzAwMzg3NkQ3IC8qIE1lZGlhUmVzb3VyY2VMb2Fk
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQkVBRUFEMTlEOTJCNkMwMEJFQkE4OCAvKiBNZWRp
YVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQzkwMjdGNDIxQjFE
MEFEMjAwQkZCRkVGIC8qIE1lZGlhU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdGOTQ0
MTYxODY0RDA0NjAwNUQzMUNCIC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTA3NjM4QTk5MTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRpYVNlc3Npb25NYW5hZ2VySU9T
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDNBNDk1RjE3QTlEMDFCMDAyNzRFNDIgLyogTWVkaWFT
b3VyY2UuaCBpbiBIZWFkZXJzICovLApAQCAtMjkzOTAsNiArMjkzOTksNyBAQAogCQkJCUM5MDg0
M0NGMUIxOEU0N0QwMEI2ODU2NCAvKiBNZWRpYVJlbW90ZUNvbnRyb2xzLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUNFRUZDRDc5MTlEQjMxRjcwMDM4NzZENyAvKiBNZWRpYVJlc291cmNlTG9hZGVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEQkVBRUFDMTlEOTJCNkMwMEJFQkE4OCAvKiBNZWRp
YVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5tbSBpbiBTb3VyY2VzICovLAorCQkJCUM5MDI3RjQxMUIx
RDBBRDIwMEJGQkZFRiAvKiBNZWRpYVNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RB
RThDMDkxNzQ2Qjk1NzAwNTMyRDc4IC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMDc2MzhBOUExODg0NDg3MjAwRTE1QTFCIC8qIE1lZGlhU2Vzc2lvbk1hbmFn
ZXJJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQkwN0VEQzNFRTFBQUNCNzVEMDA5ODNFQjUgLyog
TWVkaWFTZXNzaW9uTWFuYWdlck1hYy5jcHAgaW4gU291cmNlcyAqLywK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254071</attachid>
            <date>2015-06-02 10:10:04 -0700</date>
            <delta_ts>2015-06-02 13:25:04 -0700</delta_ts>
            <desc>Patch (revised)</desc>
            <filename>bug-145530-20150602100944.patch</filename>
            <type>text/plain</type>
            <size>17969</size>
            <attacher name="Matt Rajca">mrajca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1MDgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWU0OWVmMGYzYzc1OTNi
NWUyYmYzYTU2MmNkODMzMjAzYzAwYTNlZS4uMWUyOWM2NTc2MmZjMDBhMjE3NTFmMzA1NTQ2OWVk
MjlhZTI0MmM0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE1LTA2LTAyICBNYXR0
IFJhamNhICA8bXJhamNhQGFwcGxlLmNvbT4KKworICAgICAgICBBZGRlZCBhIHN0dWIgaW1wbGVt
ZW50YXRpb24gb2YgTWVkaWFTZXNzaW9uLCBwYXJ0IG9mIHRoZSBNZWRpYSBTZXNzaW9uIHNwZWMu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDU1MzAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENNYWtl
TGlzdHMudHh0OiBBZGRlZCBuZXcgTWVkaWFTZXNzaW9uIHNvdXJjZXMuCisgICAgICAgICogRGVy
aXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNl
c3Npb24uY3BwOiBBZGRlZCBzdHViIGltcGxlbWVudGF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFTZXNzaW9uOjpNZWRpYVNlc3Npb24pOiBQZXIgdGhlIE1lZGlhIFNlc3Npb24gc3BlYywg
YSBNZWRpYSBSZW1vdGUgQ29udHJvbHMgb2JqZWN0IHNob3VsZCBvbmx5IGJlCisgICAgICAgICAg
c2V0IGZvciAnY29udGVudCcgc2Vzc2lvbnM7IGl0IGlzIG51bGwgb3RoZXJ3aXNlLgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uOjp+TWVkaWFTZXNzaW9uKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhU2Vzc2lvbjo6Y29udHJvbHMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNz
aW9uOjpyZWxlYXNlU2Vzc2lvbik6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVk
aWFTZXNzaW9uLmg6IEFkZGVkIGJhc2ljIHRyYW5zbGF0aW9uIG9mIElETCBmaWxlLgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5pZGw6IEFkZGVkIGZyb20gdGhl
IE1lZGlhIFNlc3Npb24gc3BlYy4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6IEFkZGVkIG5ldyBNZWRpYVNlc3Npb24gc291cmNlcy4KKwogMjAxNS0wNi0wMSAg
QW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIFdBS1Njcm9s
bFZpZXcuaCBjYW5ub3QgYmUgaW1wb3J0ZWQgc3RhbmRhbG9uZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApp
bmRleCAwMDg5YmVlZjRkOTAyMmNlMzVlN2U1NTgxOGVjZTUzZDdhYWM2ZGU1Li5kNTEwMDYzNTZh
YWQ0NzE1MTNiZDkwYzU2ZDc1YzYyNzgyMWYxNDI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAt
MjE5LDYgKzIxOSw3IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgTW9kdWxl
cy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmlkbAogCiAgICAgTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFSZW1vdGVDb250cm9scy5pZGwKKyAgICBNb2R1bGVzL21lZGlhc2Vzc2lv
bi9NZWRpYVNlc3Npb24uaWRsCiAKICAgICBNb2R1bGVzL21lZGlhc291cmNlL0RPTVVSTE1lZGlh
U291cmNlLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuaWRsCkBAIC04
NzQsNiArODc1LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIE1vZHVsZXMvbWVkaWFjb250
cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAKIAogICAgIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01l
ZGlhUmVtb3RlQ29udHJvbHMuY3BwCisgICAgTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNz
aW9uLmNwcAogCiAgICAgTW9kdWxlcy9tZWRpYXNvdXJjZS9ET01VUkxNZWRpYVNvdXJjZS5jcHAK
ICAgICBNb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLm1ha2UKaW5kZXggNTYyZjBiM2I3NzFlNmVjY2QwMWRhZTgxOWYzY2YxNGY3MzBmNGFj
OS4uNWE1MTVkMzE0OWUzMWU2YTQyZTM0ZjVlNzhlNzJjY2MzN2MyOWE0MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xMDUsNiArMTA1LDcgQEAgTk9OX1NWR19CSU5ESU5HX0lE
TFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2luZGlldWkvVUlSZXF1ZXN0RXZlbnQuaWRs
IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9z
dC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFSZW1vdGVD
b250cm9scy5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFT
ZXNzaW9uLmlkbCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc291cmNlL0RPTVVSTE1lZGlh
U291cmNlLmlkbCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc291cmNlL0F1ZGlvVHJhY2tN
ZWRpYVNvdXJjZS5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNv
dXJjZS5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9u
L01lZGlhU2Vzc2lvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmVhYTRjY2E2NDMxNTg1MDNjYWU5ODc3Njk2
ZWJmZTM1OTlkY2UwYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHAKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJNZWRpYVNlc3Npb24uaCIKKworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK01lZGlhU2Vzc2lvbjo6TWVkaWFTZXNzaW9uKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYga2luZCkKKyAgICA6IG1f
a2luZChraW5kKQoreworICAgIGlmIChtX2tpbmQgPT0gImNvbnRlbnQiKQorICAgICAgICBtX2Nv
bnRyb2xzID0gYWRvcHRSZWYoKm5ldyBNZWRpYVJlbW90ZUNvbnRyb2xzKGNvbnRleHQpKTsKK30K
KworTWVkaWFTZXNzaW9uOjp+TWVkaWFTZXNzaW9uKCkKK3sKK30KKworTWVkaWFSZW1vdGVDb250
cm9scyogTWVkaWFTZXNzaW9uOjpjb250cm9scyhib29sJiBpc051bGwpCit7CisgICAgTWVkaWFS
ZW1vdGVDb250cm9scyogY29udHJvbHMgPSBtX2NvbnRyb2xzLmdldCgpOworICAgIGlzTnVsbCA9
IGNvbnRyb2xzID09IG51bGxwdHI7CisgICAgcmV0dXJuIGNvbnRyb2xzOworfQorCit2b2lkIE1l
ZGlhU2Vzc2lvbjo6cmVsZWFzZVNlc3Npb24oKQoreworfQorCit9CisKKyNlbmRpZiAvKiBFTkFC
TEUoTUVESUFfU0VTU0lPTikgKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFTZXNzaW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDQwMTc4YzI4ZDhlZjRmMjExOWQ0
YjE1NGIxMzk2Y2IzNWIyM2ZiNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5oCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE1lZGlhU2Vz
c2lvbl9oCisjZGVmaW5lIE1lZGlhU2Vzc2lvbl9oCisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lP
TikKKworI2luY2x1ZGUgIk1lZGlhUmVtb3RlQ29udHJvbHMuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBNZWRpYVNlc3Npb24gZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRp
YVNlc3Npb24+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPE1lZGlhU2Vzc2lvbj4gY3JlYXRl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYga2luZCkKKyAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1lZGlhU2Vzc2lvbihjb250ZXh0LCBr
aW5kKSk7CisgICAgfQorCisgICAgTWVkaWFTZXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
LCBjb25zdCBTdHJpbmcmKTsKKyAgICB+TWVkaWFTZXNzaW9uKCk7CisKKyAgICBTdHJpbmcga2lu
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fa2luZDsgfQorICAgIE1lZGlhUmVtb3RlQ29udHJvbHMqIGNv
bnRyb2xzKGJvb2wmIGlzTnVsbCk7CisKKyAgICB2b2lkIHJlbGVhc2VTZXNzaW9uKCk7CisKK3By
aXZhdGU6CisgICAgY29uc3QgU3RyaW5nIG1fa2luZDsKKyAgICBSZWZQdHI8TWVkaWFSZW1vdGVD
b250cm9scz4gbV9jb250cm9sczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8qIEVOQUJMRShNRURJQV9TRVNTSU9OKSAqLworCisjZW5kaWYgLyogTWVkaWFTZXNzaW9u
X2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01l
ZGlhU2Vzc2lvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YVNlc3Npb24uaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM5ZTQ3OWRjZTg2MGQ5OTMzYjhhOGU2M2U0YTM2OTgy
MmQ1MmVjOTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb24uaWRsCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9TUVESUFf
U0VTU0lPTiwKKyAgICBDb25zdHJ1Y3RvcihNZWRpYVNlc3Npb25LaW5kIGtpbmQpLAorICAgIENv
bnN0cnVjdG9yQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwKKyAgICBJbXBsZW1lbnRh
dGlvbkxhY2tzVlRhYmxlLAorXSBpbnRlcmZhY2UgTWVkaWFTZXNzaW9uIHsKKyAgICByZWFkb25s
eSBhdHRyaWJ1dGUgTWVkaWFTZXNzaW9uS2luZCBraW5kOworICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBNZWRpYVJlbW90ZUNvbnRyb2xzPyBjb250cm9sczsKKworICAgIHZvaWQgcmVsZWFzZVNlc3Np
b24oKTsKK307CisKK2VudW0gTWVkaWFTZXNzaW9uS2luZCB7CisgICAgImNvbnRlbnQiLAorICAg
ICJ0cmFuc2llbnQiLAorICAgICJ0cmFuc2llbnQtc29sbyIsCisgICAgImFtYmllbnQiCit9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDFmOWMzMmVhN2ZjMmZmNTlmYjYwOWI0YWI0MWQ1NjM2MTJlZjdkZTIuLjJlYzAwYjhlNzU2
YjBiOTAyNjY3OTg0MzJjMWUyMTI0MWZiZTE3Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU2ODUsOCArNTY4NSwxMSBAQAog
CQlDNkY0MjBBMjE2QjcxNjRFMDA1MkE5RjIgLyogSlNNdXRhdGlvbkNhbGxiYWNrLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM2RjQyMEEwMTZCNzE2
NEUwMDUyQTlGMiAvKiBKU011dGF0aW9uQ2FsbGJhY2suY3BwICovOyB9OwogCQlDNkY0MjBBMzE2
QjcxNjRFMDA1MkE5RjIgLyogSlNNdXRhdGlvbkNhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkY0MjBBMTE2QjcxNjRFMDA1MkE5RjIgLyog
SlNNdXRhdGlvbkNhbGxiYWNrLmggKi87IH07CiAJCUM5MDI2QjY1MUIxQ0Y1RkUwMDFEOTlBNyAv
KiBKU01lZGlhUmVtb3RlQ29udHJvbHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQzkwMjZCNjMxQjFDRjVBQjAwMUQ5OUE3IC8qIEpTTWVkaWFSZW1v
dGVDb250cm9scy5jcHAgKi87IH07CisJCUM5MDI3RjQxMUIxRDBBRDIwMEJGQkZFRiAvKiBNZWRp
YVNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQzkwMjdGM0YxQjFEMEFEMjAwQkZCRkVGIC8qIE1lZGlhU2Vzc2lvbi5jcHAgKi87IH07CisJ
CUM5MDI3RjQyMUIxRDBBRDIwMEJGQkZFRiAvKiBNZWRpYVNlc3Npb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM5MDI3RjQwMUIxRDBBRDIwMEJGQkZF
RiAvKiBNZWRpYVNlc3Npb24uaCAqLzsgfTsKIAkJQzkwODQzQ0YxQjE4RTQ3RDAwQjY4NTY0IC8q
IE1lZGlhUmVtb3RlQ29udHJvbHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQzkwODQzQ0QxQjE4RTQ3RDAwQjY4NTY0IC8qIE1lZGlhUmVtb3RlQ29u
dHJvbHMuY3BwICovOyB9OwogCQlDOTA4NDNEMDFCMThFNDdEMDBCNjg1NjQgLyogTWVkaWFSZW1v
dGVDb250cm9scy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQzkwODQzQ0UxQjE4RTQ3RDAwQjY4NTY0IC8qIE1lZGlhUmVtb3RlQ29udHJvbHMuaCAqLzsg
fTsKKwkJQzlEQURCQ0IxQjFEM0I5NzAwMUYxN0Q4IC8qIEpTTWVkaWFTZXNzaW9uLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM5REFEQkM5MUIxRDNC
MjUwMDFGMTdEOCAvKiBKU01lZGlhU2Vzc2lvbi5jcHAgKi87IH07CiAJCUNBM0JGNjdDMTBEOTlC
QUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDQTNCRjY3QjEwRDk5QkFFMDBFNkNFNTMgLyogU2Nyb2xs
QW5pbWF0b3IuY3BwICovOyB9OwogCQlDQTNCRjY3RTEwRDk5QkFFMDBFNkNFNTMgLyogU2Nyb2xs
QW5pbWF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENBM0JGNjdEMTBEOTlCQUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNBRTlGOTBGMTQ2NDQxRjAw
MEMyNDVCMCAvKiBDU1NBc3BlY3RSYXRpb1ZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENBRTlGOTBEMTQ2NDQxRjAwMEMyNDVCMCAvKiBDU1NB
c3BlY3RSYXRpb1ZhbHVlLmNwcCAqLzsgfTsKQEAgLTEzMjM4LDExICsxMzI0MSwxNiBAQAogCQlD
NkYwOTE3RTE0M0EyQkI5MDA2ODU4NDkgLyogSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTXV0YXRpb25PYnNlcnZlckN1
c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM2RjQyMEEwMTZCNzE2NEUw
MDUyQTlGMiAvKiBKU011dGF0aW9uQ2FsbGJhY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNNdXRhdGlvbkNhbGxiYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQzZGNDIwQTExNkI3MTY0RTAwNTJBOUYyIC8qIEpTTXV0YXRpb25DYWxsYmFj
ay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU011dGF0aW9uQ2FsbGJhY2su
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQzkwMjZCNjMxQjFDRjVBQjAwMUQ5OUE3
IC8qIEpTTWVkaWFSZW1vdGVDb250cm9scy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBKU01lZGlhUmVtb3RlQ29udHJvbHMuY3BwOyBwYXRoID0gIkpTTWVkaWFSZW1v
dGVDb250cm9scy5jcHAiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlDOTAyNkI2NDFC
MUNGNUFCMDAxRDk5QTcgLyogSlNNZWRpYVJlbW90ZUNvbnRyb2xzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IEpTTWVkaWFSZW1vdGVDb250cm9scy5oOyBwYXRoID0gIkpTTWVk
aWFSZW1vdGVDb250cm9scy5oIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzkwMjZC
NjMxQjFDRjVBQjAwMUQ5OUE3IC8qIEpTTWVkaWFSZW1vdGVDb250cm9scy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01lZGlhUmVtb3RlQ29udHJvbHMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDOTAyNkI2NDFCMUNGNUFCMDAxRDk5QTcgLyog
SlNNZWRpYVJlbW90ZUNvbnRyb2xzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTTWVkaWFSZW1vdGVDb250cm9scy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlD
OTAyN0YzRTFCMUQwQUI5MDBCRkJGRUYgLyogTWVkaWFTZXNzaW9uLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYVNl
c3Npb24uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDOTAyN0YzRjFCMUQwQUQy
MDBCRkJGRUYgLyogTWVkaWFTZXNzaW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IE1lZGlhU2Vzc2lvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUM5MDI3RjQwMUIxRDBBRDIwMEJGQkZFRiAvKiBNZWRpYVNlc3Npb24uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTZXNzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUM5MDg0M0NEMUIxOEU0N0QwMEI2ODU2NCAvKiBNZWRpYVJlbW90ZUNvbnRyb2xz
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhUmVtb3RlQ29u
dHJvbHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDOTA4NDNDRTFCMThFNDdE
MDBCNjg1NjQgLyogTWVkaWFSZW1vdGVDb250cm9scy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBNZWRpYVJlbW90ZUNvbnRyb2xzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUM5MzQ1OEJCMUIxOEQ3N0UwMDg4RUUxMiAvKiBNZWRpYVJlbW90ZUNvbnRyb2xzLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYVJlbW90ZUNvbnRyb2xzLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzlEQURCQzkxQjFEM0IyNTAwMUYxN0Q4IC8qIEpTTWVk
aWFTZXNzaW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVk
aWFTZXNzaW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzlEQURCQ0ExQjFE
M0IyNTAwMUYxN0Q4IC8qIEpTTWVkaWFTZXNzaW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEpTTWVkaWFTZXNzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUNBM0JGNjdCMTBEOTlCQUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JvbGxBbmltYXRvci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNBM0JGNjdEMTBEOTlCQUUwMEU2Q0U1MyAvKiBTY3JvbGxB
bmltYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxBbmltYXRv
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDQUU5RjkwRDE0NjQ0MUYwMDBDMjQ1
QjAgLyogQ1NTQXNwZWN0UmF0aW9WYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBDU1NBc3BlY3RSYXRpb1ZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTE0NTg5LDYgKzE0NTk3LDkgQEAKIAkJCQlDOTA4NDNDRDFCMThFNDdEMDBCNjg1
NjQgLyogTWVkaWFSZW1vdGVDb250cm9scy5jcHAgKi8sCiAJCQkJQzkwODQzQ0UxQjE4RTQ3RDAw
QjY4NTY0IC8qIE1lZGlhUmVtb3RlQ29udHJvbHMuaCAqLywKIAkJCQlDOTM0NThCQjFCMThENzdF
MDA4OEVFMTIgLyogTWVkaWFSZW1vdGVDb250cm9scy5pZGwgKi8sCisJCQkJQzkwMjdGM0YxQjFE
MEFEMjAwQkZCRkVGIC8qIE1lZGlhU2Vzc2lvbi5jcHAgKi8sCisJCQkJQzkwMjdGNDAxQjFEMEFE
MjAwQkZCRkVGIC8qIE1lZGlhU2Vzc2lvbi5oICovLAorCQkJCUM5MDI3RjNFMUIxRDBBQjkwMEJG
QkZFRiAvKiBNZWRpYVNlc3Npb24uaWRsICovLAogCQkJCTA3MDlENzhDMUFFNTU1NTQwMDRFNDJG
OCAvKiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcCAqLywKIAkJCQkwNzA5RDc4RDFBRTU1NTU0
MDA0RTQyRjggLyogV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5oICovLAogCQkJCTA3MDlENzk0MUFF
NTVBMjkwMDRFNDJGOCAvKiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50LmggKi8sCkBAIC0x
OTIwNiw2ICsxOTIxNyw4IEBACiAJCQkJQ0RCODU5RjkxNjBENDkzRTAwRTVCMDdGIC8qIEpTTWVk
aWFLZXlFdmVudC5oICovLAogCQkJCUM5MDI2QjYzMUIxQ0Y1QUIwMDFEOTlBNyAvKiBKU01lZGlh
UmVtb3RlQ29udHJvbHMuY3BwICovLAogCQkJCUM5MDI2QjY0MUIxQ0Y1QUIwMDFEOTlBNyAvKiBK
U01lZGlhUmVtb3RlQ29udHJvbHMuaCAqLywKKwkJCQlDOURBREJDOTFCMUQzQjI1MDAxRjE3RDgg
LyogSlNNZWRpYVNlc3Npb24uY3BwICovLAorCQkJCUM5REFEQkNBMUIxRDNCMjUwMDFGMTdEOCAv
KiBKU01lZGlhU2Vzc2lvbi5oICovLAogCQkJCTdFNDZGNkY4MTYyN0EyQzkwMDA2MjIyMyAvKiBK
U09FU0VsZW1lbnRJbmRleFVpbnQuY3BwICovLAogCQkJCTdFNDZGNkY5MTYyN0EyQzkwMDA2MjIy
MyAvKiBKU09FU0VsZW1lbnRJbmRleFVpbnQuaCAqLywKIAkJCQk5MDAxNzg3RTEyRTAzNzA3MDA2
NDg0NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcCAqLywKQEAgLTI1ODEwLDYgKzI1
ODIzLDcgQEAKIAkJCQlDOTA4NDNEMDFCMThFNDdEMDBCNjg1NjQgLyogTWVkaWFSZW1vdGVDb250
cm9scy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0VFRkNEN0ExOURCMzFGNzAwMzg3NkQ3IC8qIE1l
ZGlhUmVzb3VyY2VMb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQkVBRUFEMTlEOTJCNkMw
MEJFQkE4OCAvKiBNZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJQzkwMjdGNDIxQjFEMEFEMjAwQkZCRkVGIC8qIE1lZGlhU2Vzc2lvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMDdGOTQ0MTYxODY0RDA0NjAwNUQzMUNCIC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTA3NjM4QTk5MTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRpYVNl
c3Npb25NYW5hZ2VySU9TLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDNBNDk1RjE3QTlEMDFCMDAy
NzRFNDIgLyogTWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICovLApAQCAtMjg5MDIsNiArMjg5MTYs
NyBAQAogCQkJCUQzQTk0QTQ2MTIyREM0MEYwMEEzN0JCQyAvKiBKU01lZGlhUXVlcnlMaXN0LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTdDNTM0M0ZDMTdCNzRCNjMwMDQyMzJGMCAvKiBKU01lZGlh
UXVlcnlMaXN0TGlzdGVuZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzkwMjZCNjUxQjFDRjVG
RTAwMUQ5OUE3IC8qIEpTTWVkaWFSZW1vdGVDb250cm9scy5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlDOURBREJDQjFCMUQzQjk3MDAxRjE3RDggLyogSlNNZWRpYVNlc3Npb24uY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQ0Q5REUxNzQxN0FBQzc0QzAwRUEzODZEIC8qIEpTTWVkaWFTb3VyY2UuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMDdDNTlCNzExN0Y3OUM3QzAwMEZCQ0JCIC8qIEpTTWVkaWFT
b3VyY2VTdGF0ZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDdDNTlCNkUxN0Y3OTRGNjAwMEZC
Q0JCIC8qIEpTTWVkaWFTb3VyY2VTdGF0ZXNDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0y
OTM5MCw2ICsyOTQwNSw3IEBACiAJCQkJQzkwODQzQ0YxQjE4RTQ3RDAwQjY4NTY0IC8qIE1lZGlh
UmVtb3RlQ29udHJvbHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0VFRkNENzkxOURCMzFGNzAw
Mzg3NkQ3IC8qIE1lZGlhUmVzb3VyY2VMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RC
RUFFQUMxOUQ5MkI2QzAwQkVCQTg4IC8qIE1lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tIGlu
IFNvdXJjZXMgKi8sCisJCQkJQzkwMjdGNDExQjFEMEFEMjAwQkZCRkVGIC8qIE1lZGlhU2Vzc2lv
bi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDREFFOEMwOTE3NDZCOTU3MDA1MzJENzggLyogTWVk
aWFTZXNzaW9uTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzYzOEE5QTE4ODQ0ODcy
MDBFMTVBMUIgLyogTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTA3RURDM0VFMUFBQ0I3NUQwMDk4M0VCNSAvKiBNZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmNwcCBp
biBTb3VyY2VzICovLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254091</attachid>
            <date>2015-06-02 13:25:08 -0700</date>
            <delta_ts>2015-06-02 13:35:12 -0700</delta_ts>
            <desc>Patch (style fix)</desc>
            <filename>bug-145530-20150602132449.patch</filename>
            <type>text/plain</type>
            <size>17959</size>
            <attacher name="Matt Rajca">mrajca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1MDgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWU0OWVmMGYzYzc1OTNi
NWUyYmYzYTU2MmNkODMzMjAzYzAwYTNlZS4uMWUyOWM2NTc2MmZjMDBhMjE3NTFmMzA1NTQ2OWVk
MjlhZTI0MmM0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE1LTA2LTAyICBNYXR0
IFJhamNhICA8bXJhamNhQGFwcGxlLmNvbT4KKworICAgICAgICBBZGRlZCBhIHN0dWIgaW1wbGVt
ZW50YXRpb24gb2YgTWVkaWFTZXNzaW9uLCBwYXJ0IG9mIHRoZSBNZWRpYSBTZXNzaW9uIHNwZWMu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDU1MzAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENNYWtl
TGlzdHMudHh0OiBBZGRlZCBuZXcgTWVkaWFTZXNzaW9uIHNvdXJjZXMuCisgICAgICAgICogRGVy
aXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNl
c3Npb24uY3BwOiBBZGRlZCBzdHViIGltcGxlbWVudGF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFTZXNzaW9uOjpNZWRpYVNlc3Npb24pOiBQZXIgdGhlIE1lZGlhIFNlc3Npb24gc3BlYywg
YSBNZWRpYSBSZW1vdGUgQ29udHJvbHMgb2JqZWN0IHNob3VsZCBvbmx5IGJlCisgICAgICAgICAg
c2V0IGZvciAnY29udGVudCcgc2Vzc2lvbnM7IGl0IGlzIG51bGwgb3RoZXJ3aXNlLgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uOjp+TWVkaWFTZXNzaW9uKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhU2Vzc2lvbjo6Y29udHJvbHMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNz
aW9uOjpyZWxlYXNlU2Vzc2lvbik6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVk
aWFTZXNzaW9uLmg6IEFkZGVkIGJhc2ljIHRyYW5zbGF0aW9uIG9mIElETCBmaWxlLgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5pZGw6IEFkZGVkIGZyb20gdGhl
IE1lZGlhIFNlc3Npb24gc3BlYy4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6IEFkZGVkIG5ldyBNZWRpYVNlc3Npb24gc291cmNlcy4KKwogMjAxNS0wNi0wMSAg
QW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIFdBS1Njcm9s
bFZpZXcuaCBjYW5ub3QgYmUgaW1wb3J0ZWQgc3RhbmRhbG9uZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApp
bmRleCAwMDg5YmVlZjRkOTAyMmNlMzVlN2U1NTgxOGVjZTUzZDdhYWM2ZGU1Li5kNTEwMDYzNTZh
YWQ0NzE1MTNiZDkwYzU2ZDc1YzYyNzgyMWYxNDI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAt
MjE5LDYgKzIxOSw3IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgTW9kdWxl
cy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmlkbAogCiAgICAgTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFSZW1vdGVDb250cm9scy5pZGwKKyAgICBNb2R1bGVzL21lZGlhc2Vzc2lv
bi9NZWRpYVNlc3Npb24uaWRsCiAKICAgICBNb2R1bGVzL21lZGlhc291cmNlL0RPTVVSTE1lZGlh
U291cmNlLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuaWRsCkBAIC04
NzQsNiArODc1LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIE1vZHVsZXMvbWVkaWFjb250
cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAKIAogICAgIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01l
ZGlhUmVtb3RlQ29udHJvbHMuY3BwCisgICAgTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNz
aW9uLmNwcAogCiAgICAgTW9kdWxlcy9tZWRpYXNvdXJjZS9ET01VUkxNZWRpYVNvdXJjZS5jcHAK
ICAgICBNb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLm1ha2UKaW5kZXggNTYyZjBiM2I3NzFlNmVjY2QwMWRhZTgxOWYzY2YxNGY3MzBmNGFj
OS4uNWE1MTVkMzE0OWUzMWU2YTQyZTM0ZjVlNzhlNzJjY2MzN2MyOWE0MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xMDUsNiArMTA1LDcgQEAgTk9OX1NWR19CSU5ESU5HX0lE
TFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2luZGlldWkvVUlSZXF1ZXN0RXZlbnQuaWRs
IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9z
dC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFSZW1vdGVD
b250cm9scy5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFT
ZXNzaW9uLmlkbCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc291cmNlL0RPTVVSTE1lZGlh
U291cmNlLmlkbCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc291cmNlL0F1ZGlvVHJhY2tN
ZWRpYVNvdXJjZS5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNv
dXJjZS5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9u
L01lZGlhU2Vzc2lvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWZiYTYxMmU3NDRlN2IzZWNhMDk2MTNjNjk4
YThkMWJiMWNjNGJmNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHAKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJNZWRpYVNlc3Npb24uaCIKKworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK01lZGlhU2Vzc2lvbjo6TWVkaWFTZXNzaW9uKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYga2luZCkKKyAgICA6IG1f
a2luZChraW5kKQoreworICAgIGlmIChtX2tpbmQgPT0gImNvbnRlbnQiKQorICAgICAgICBtX2Nv
bnRyb2xzID0gYWRvcHRSZWYoKm5ldyBNZWRpYVJlbW90ZUNvbnRyb2xzKGNvbnRleHQpKTsKK30K
KworTWVkaWFTZXNzaW9uOjp+TWVkaWFTZXNzaW9uKCkKK3sKK30KKworTWVkaWFSZW1vdGVDb250
cm9scyogTWVkaWFTZXNzaW9uOjpjb250cm9scyhib29sJiBpc051bGwpCit7CisgICAgTWVkaWFS
ZW1vdGVDb250cm9scyogY29udHJvbHMgPSBtX2NvbnRyb2xzLmdldCgpOworICAgIGlzTnVsbCA9
ICFjb250cm9sczsKKyAgICByZXR1cm4gY29udHJvbHM7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9u
OjpyZWxlYXNlU2Vzc2lvbigpCit7Cit9CisKK30KKworI2VuZGlmIC8qIEVOQUJMRShNRURJQV9T
RVNTSU9OKSAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9N
ZWRpYVNlc3Npb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NDAxNzhjMjhkOGVmNGYyMTE5ZDRiMTU0YjEzOTZj
YjM1YjIzZmI2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFTZXNzaW9uLmgKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTWVkaWFTZXNzaW9uX2gKKyNk
ZWZpbmUgTWVkaWFTZXNzaW9uX2gKKworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQorCisjaW5j
bHVkZSAiTWVkaWFSZW1vdGVDb250cm9scy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIE1lZGlhU2Vzc2lvbiBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhU2Vzc2lvbj4g
eworcHVibGljOgorICAgIHN0YXRpYyBSZWY8TWVkaWFTZXNzaW9uPiBjcmVhdGUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgU3RyaW5nJiBraW5kKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTWVkaWFTZXNzaW9uKGNvbnRleHQsIGtpbmQpKTsKKyAg
ICB9CisKKyAgICBNZWRpYVNlc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IFN0
cmluZyYpOworICAgIH5NZWRpYVNlc3Npb24oKTsKKworICAgIFN0cmluZyBraW5kKCkgY29uc3Qg
eyByZXR1cm4gbV9raW5kOyB9CisgICAgTWVkaWFSZW1vdGVDb250cm9scyogY29udHJvbHMoYm9v
bCYgaXNOdWxsKTsKKworICAgIHZvaWQgcmVsZWFzZVNlc3Npb24oKTsKKworcHJpdmF0ZToKKyAg
ICBjb25zdCBTdHJpbmcgbV9raW5kOworICAgIFJlZlB0cjxNZWRpYVJlbW90ZUNvbnRyb2xzPiBt
X2NvbnRyb2xzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLyogRU5B
QkxFKE1FRElBX1NFU1NJT04pICovCisKKyNlbmRpZiAvKiBNZWRpYVNlc3Npb25faCAqLwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9u
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5p
ZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMzllNDc5ZGNlODYwZDk5MzNiOGE4ZTYzZTRhMzY5ODIyZDUyZWM5MQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01l
ZGlhU2Vzc2lvbi5pZGwKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1NRURJQV9TRVNTSU9OLAor
ICAgIENvbnN0cnVjdG9yKE1lZGlhU2Vzc2lvbktpbmQga2luZCksCisgICAgQ29uc3RydWN0b3JD
YWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LAorICAgIEltcGxlbWVudGF0aW9uTGFja3NW
VGFibGUsCitdIGludGVyZmFjZSBNZWRpYVNlc3Npb24geworICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBNZWRpYVNlc3Npb25LaW5kIGtpbmQ7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIE1lZGlhUmVt
b3RlQ29udHJvbHM/IGNvbnRyb2xzOworCisgICAgdm9pZCByZWxlYXNlU2Vzc2lvbigpOworfTsK
KworZW51bSBNZWRpYVNlc3Npb25LaW5kIHsKKyAgICAiY29udGVudCIsCisgICAgInRyYW5zaWVu
dCIsCisgICAgInRyYW5zaWVudC1zb2xvIiwKKyAgICAiYW1iaWVudCIKK307CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMWY5YzMy
ZWE3ZmMyZmY1OWZiNjA5YjRhYjQxZDU2MzYxMmVmN2RlMi4uMmVjMDBiOGU3NTZiMGI5MDI2Njc5
ODQzMmMxZTIxMjQxZmJlMTdjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTY4NSw4ICs1Njg1LDExIEBACiAJCUM2RjQyMEEy
MTZCNzE2NEUwMDUyQTlGMiAvKiBKU011dGF0aW9uQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGNDIwQTAxNkI3MTY0RTAwNTJBOUYy
IC8qIEpTTXV0YXRpb25DYWxsYmFjay5jcHAgKi87IH07CiAJCUM2RjQyMEEzMTZCNzE2NEUwMDUy
QTlGMiAvKiBKU011dGF0aW9uQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEM2RjQyMEExMTZCNzE2NEUwMDUyQTlGMiAvKiBKU011dGF0aW9u
Q2FsbGJhY2suaCAqLzsgfTsKIAkJQzkwMjZCNjUxQjFDRjVGRTAwMUQ5OUE3IC8qIEpTTWVkaWFS
ZW1vdGVDb250cm9scy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDOTAyNkI2MzFCMUNGNUFCMDAxRDk5QTcgLyogSlNNZWRpYVJlbW90ZUNvbnRyb2xz
LmNwcCAqLzsgfTsKKwkJQzkwMjdGNDExQjFEMEFEMjAwQkZCRkVGIC8qIE1lZGlhU2Vzc2lvbi5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDOTAyN0Yz
RjFCMUQwQUQyMDBCRkJGRUYgLyogTWVkaWFTZXNzaW9uLmNwcCAqLzsgfTsKKwkJQzkwMjdGNDIx
QjFEMEFEMjAwQkZCRkVGIC8qIE1lZGlhU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzkwMjdGNDAxQjFEMEFEMjAwQkZCRkVGIC8qIE1lZGlh
U2Vzc2lvbi5oICovOyB9OwogCQlDOTA4NDNDRjFCMThFNDdEMDBCNjg1NjQgLyogTWVkaWFSZW1v
dGVDb250cm9scy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDOTA4NDNDRDFCMThFNDdEMDBCNjg1NjQgLyogTWVkaWFSZW1vdGVDb250cm9scy5jcHAg
Ki87IH07CiAJCUM5MDg0M0QwMUIxOEU0N0QwMEI2ODU2NCAvKiBNZWRpYVJlbW90ZUNvbnRyb2xz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDOTA4NDND
RTFCMThFNDdEMDBCNjg1NjQgLyogTWVkaWFSZW1vdGVDb250cm9scy5oICovOyB9OworCQlDOURB
REJDQjFCMUQzQjk3MDAxRjE3RDggLyogSlNNZWRpYVNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzlEQURCQzkxQjFEM0IyNTAwMUYxN0Q4
IC8qIEpTTWVkaWFTZXNzaW9uLmNwcCAqLzsgfTsKIAkJQ0EzQkY2N0MxMEQ5OUJBRTAwRTZDRTUz
IC8qIFNjcm9sbEFuaW1hdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENBM0JGNjdCMTBEOTlCQUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5j
cHAgKi87IH07CiAJCUNBM0JGNjdFMTBEOTlCQUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0EzQkY2N0Qx
MEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0FFOUY5MEYxNDY0NDFGMDAwQzI0NUIwIC8q
IENTU0FzcGVjdFJhdGlvVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0FFOUY5MEQxNDY0NDFGMDAwQzI0NUIwIC8qIENTU0FzcGVjdFJhdGlv
VmFsdWUuY3BwICovOyB9OwpAQCAtMTMyMzgsMTEgKzEzMjQxLDE2IEBACiAJCUM2RjA5MTdFMTQz
QTJCQjkwMDY4NTg0OSAvKiBKU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzZGNDIwQTAxNkI3MTY0RTAwNTJBOUYyIC8q
IEpTTXV0YXRpb25DYWxsYmFjay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU011dGF0aW9uQ2FsbGJhY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDNkY0MjBBMTE2QjcxNjRFMDA1MkE5RjIgLyogSlNNdXRhdGlvbkNhbGxiYWNrLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTXV0YXRpb25DYWxsYmFjay5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlDOTAyNkI2MzFCMUNGNUFCMDAxRDk5QTcgLyogSlNNZWRp
YVJlbW90ZUNvbnRyb2xzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IEpTTWVkaWFSZW1vdGVDb250cm9scy5jcHA7IHBhdGggPSAiSlNNZWRpYVJlbW90ZUNvbnRyb2xz
LmNwcCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUM5MDI2QjY0MUIxQ0Y1QUIwMDFE
OTlBNyAvKiBKU01lZGlhUmVtb3RlQ29udHJvbHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gSlNNZWRpYVJlbW90ZUNvbnRyb2xzLmg7IHBhdGggPSAiSlNNZWRpYVJlbW90ZUNv
bnRyb2xzLmgiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDOTAyNkI2MzFCMUNGNUFC
MDAxRDk5QTcgLyogSlNNZWRpYVJlbW90ZUNvbnRyb2xzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVkaWFSZW1vdGVDb250cm9scy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUM5MDI2QjY0MUIxQ0Y1QUIwMDFEOTlBNyAvKiBKU01lZGlhUmVt
b3RlQ29udHJvbHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNZWRpYVJl
bW90ZUNvbnRyb2xzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUM5MDI3RjNFMUIx
RDBBQjkwMEJGQkZFRiAvKiBNZWRpYVNlc3Npb24uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlhU2Vzc2lvbi5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUM5MDI3RjNGMUIxRDBBRDIwMEJGQkZFRiAv
KiBNZWRpYVNlc3Npb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TWVkaWFTZXNzaW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzkwMjdGNDAx
QjFEMEFEMjAwQkZCRkVGIC8qIE1lZGlhU2Vzc2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBNZWRpYVNlc3Npb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QzkwODQzQ0QxQjE4RTQ3RDAwQjY4NTY0IC8qIE1lZGlhUmVtb3RlQ29udHJvbHMuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFSZW1vdGVDb250cm9scy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM5MDg0M0NFMUIxOEU0N0QwMEI2ODU2NCAv
KiBNZWRpYVJlbW90ZUNvbnRyb2xzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE1lZGlhUmVtb3RlQ29udHJvbHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzkz
NDU4QkIxQjE4RDc3RTAwODhFRTEyIC8qIE1lZGlhUmVtb3RlQ29udHJvbHMuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IE1lZGlhUmVtb3RlQ29udHJvbHMuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlDOURBREJDOTFCMUQzQjI1MDAxRjE3RDggLyogSlNNZWRpYVNlc3Npb24u
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNZWRpYVNlc3Npb24u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDOURBREJDQTFCMUQzQjI1MDAxRjE3
RDggLyogSlNNZWRpYVNlc3Npb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNNZWRpYVNlc3Npb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0EzQkY2N0Ix
MEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFNjcm9sbEFuaW1hdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQ0EzQkY2N0QxMEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbEFuaW1hdG9yLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNBRTlGOTBEMTQ2NDQxRjAwMEMyNDVCMCAvKiBDU1NB
c3BlY3RSYXRpb1ZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IENTU0FzcGVjdFJhdGlvVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTQ1ODksNiArMTQ1OTcsOSBAQAogCQkJCUM5MDg0M0NEMUIxOEU0N0QwMEI2ODU2NCAvKiBNZWRp
YVJlbW90ZUNvbnRyb2xzLmNwcCAqLywKIAkJCQlDOTA4NDNDRTFCMThFNDdEMDBCNjg1NjQgLyog
TWVkaWFSZW1vdGVDb250cm9scy5oICovLAogCQkJCUM5MzQ1OEJCMUIxOEQ3N0UwMDg4RUUxMiAv
KiBNZWRpYVJlbW90ZUNvbnRyb2xzLmlkbCAqLywKKwkJCQlDOTAyN0YzRjFCMUQwQUQyMDBCRkJG
RUYgLyogTWVkaWFTZXNzaW9uLmNwcCAqLywKKwkJCQlDOTAyN0Y0MDFCMUQwQUQyMDBCRkJGRUYg
LyogTWVkaWFTZXNzaW9uLmggKi8sCisJCQkJQzkwMjdGM0UxQjFEMEFCOTAwQkZCRkVGIC8qIE1l
ZGlhU2Vzc2lvbi5pZGwgKi8sCiAJCQkJMDcwOUQ3OEMxQUU1NTU1NDAwNEU0MkY4IC8qIFdlYk1l
ZGlhU2Vzc2lvbk1hbmFnZXIuY3BwICovLAogCQkJCTA3MDlENzhEMUFFNTU1NTQwMDRFNDJGOCAv
KiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmggKi8sCiAJCQkJMDcwOUQ3OTQxQUU1NUEyOTAwNEU0
MkY4IC8qIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQuaCAqLywKQEAgLTE5MjA2LDYgKzE5
MjE3LDggQEAKIAkJCQlDREI4NTlGOTE2MEQ0OTNFMDBFNUIwN0YgLyogSlNNZWRpYUtleUV2ZW50
LmggKi8sCiAJCQkJQzkwMjZCNjMxQjFDRjVBQjAwMUQ5OUE3IC8qIEpTTWVkaWFSZW1vdGVDb250
cm9scy5jcHAgKi8sCiAJCQkJQzkwMjZCNjQxQjFDRjVBQjAwMUQ5OUE3IC8qIEpTTWVkaWFSZW1v
dGVDb250cm9scy5oICovLAorCQkJCUM5REFEQkM5MUIxRDNCMjUwMDFGMTdEOCAvKiBKU01lZGlh
U2Vzc2lvbi5jcHAgKi8sCisJCQkJQzlEQURCQ0ExQjFEM0IyNTAwMUYxN0Q4IC8qIEpTTWVkaWFT
ZXNzaW9uLmggKi8sCiAJCQkJN0U0NkY2RjgxNjI3QTJDOTAwMDYyMjIzIC8qIEpTT0VTRWxlbWVu
dEluZGV4VWludC5jcHAgKi8sCiAJCQkJN0U0NkY2RjkxNjI3QTJDOTAwMDYyMjIzIC8qIEpTT0VT
RWxlbWVudEluZGV4VWludC5oICovLAogCQkJCTkwMDE3ODdFMTJFMDM3MDcwMDY0ODQ2MiAvKiBK
U09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwICovLApAQCAtMjU4MTAsNiArMjU4MjMsNyBAQAog
CQkJCUM5MDg0M0QwMUIxOEU0N0QwMEI2ODU2NCAvKiBNZWRpYVJlbW90ZUNvbnRyb2xzLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDRUVGQ0Q3QTE5REIzMUY3MDAzODc2RDcgLyogTWVkaWFSZXNvdXJj
ZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RCRUFFQUQxOUQ5MkI2QzAwQkVCQTg4IC8q
IE1lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLmggaW4gSGVhZGVycyAqLywKKwkJCQlDOTAyN0Y0
MjFCMUQwQUQyMDBCRkJGRUYgLyogTWVkaWFTZXNzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
N0Y5NDQxNjE4NjREMDQ2MDA1RDMxQ0IgLyogTWVkaWFTZXNzaW9uTWFuYWdlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMDc2MzhBOTkxODg0NDg3MjAwRTE1QTFCIC8qIE1lZGlhU2Vzc2lvbk1hbmFn
ZXJJT1MuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEM0E0OTVGMTdBOUQwMUIwMDI3NEU0MiAvKiBN
ZWRpYVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODkwMiw2ICsyODkxNiw3IEBACiAJCQkJ
RDNBOTRBNDYxMjJEQzQwRjAwQTM3QkJDIC8qIEpTTWVkaWFRdWVyeUxpc3QuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJN0M1MzQzRkMxN0I3NEI2MzAwNDIzMkYwIC8qIEpTTWVkaWFRdWVyeUxpc3RM
aXN0ZW5lci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDOTAyNkI2NTFCMUNGNUZFMDAxRDk5QTcg
LyogSlNNZWRpYVJlbW90ZUNvbnRyb2xzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUM5REFEQkNC
MUIxRDNCOTcwMDFGMTdEOCAvKiBKU01lZGlhU2Vzc2lvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlDRDlERTE3NDE3QUFDNzRDMDBFQTM4NkQgLyogSlNNZWRpYVNvdXJjZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwN0M1OUI3MTE3Rjc5QzdDMDAwRkJDQkIgLyogSlNNZWRpYVNvdXJjZVN0YXRl
cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwN0M1OUI2RTE3Rjc5NEY2MDAwRkJDQkIgLyogSlNN
ZWRpYVNvdXJjZVN0YXRlc0N1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI5MzkwLDYgKzI5
NDA1LDcgQEAKIAkJCQlDOTA4NDNDRjFCMThFNDdEMDBCNjg1NjQgLyogTWVkaWFSZW1vdGVDb250
cm9scy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRUVGQ0Q3OTE5REIzMUY3MDAzODc2RDcgLyog
TWVkaWFSZXNvdXJjZUxvYWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDREJFQUVBQzE5RDky
QjZDMDBCRUJBODggLyogTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW0gaW4gU291cmNlcyAq
LywKKwkJCQlDOTAyN0Y0MTFCMUQwQUQyMDBCRkJGRUYgLyogTWVkaWFTZXNzaW9uLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUNEQUU4QzA5MTc0NkI5NTcwMDUzMkQ3OCAvKiBNZWRpYVNlc3Npb25N
YW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3NjM4QTlBMTg4NDQ4NzIwMEUxNUExQiAv
KiBNZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMDdFREMzRUUx
QUFDQjc1RDAwOTgzRUI1IC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuY3BwIGluIFNvdXJjZXMg
Ki8sCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254096</attachid>
            <date>2015-06-02 13:35:17 -0700</date>
            <delta_ts>2015-06-02 14:54:38 -0700</delta_ts>
            <desc>Patch (rebased)</desc>
            <filename>bug-145530-20150602133458.patch</filename>
            <type>text/plain</type>
            <size>17102</size>
            <attacher name="Matt Rajca">mrajca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1MTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTYwNGUzOTgzODYyZjgy
OTI5MjI1Njk1OTdlNzcwNmU3ODAyOWVhYi4uOGJlMDZjMjhjZTRmMDZjZDU5YWM5NjZmNzM0NDIx
YzZiMmZlMmQ4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE1LTA2LTAyICBNYXR0
IFJhamNhICA8bXJhamNhQGFwcGxlLmNvbT4KKworICAgICAgICBBZGRlZCBhIHN0dWIgaW1wbGVt
ZW50YXRpb24gb2YgTWVkaWFTZXNzaW9uLCBwYXJ0IG9mIHRoZSBNZWRpYSBTZXNzaW9uIHNwZWMu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDU1MzAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENNYWtl
TGlzdHMudHh0OiBBZGRlZCBuZXcgTWVkaWFTZXNzaW9uIHNvdXJjZXMuCisgICAgICAgICogRGVy
aXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNl
c3Npb24uY3BwOiBBZGRlZCBzdHViIGltcGxlbWVudGF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFTZXNzaW9uOjpNZWRpYVNlc3Npb24pOiBQZXIgdGhlIE1lZGlhIFNlc3Npb24gc3BlYywg
YSBNZWRpYSBSZW1vdGUgQ29udHJvbHMgb2JqZWN0IHNob3VsZCBvbmx5IGJlCisgICAgICAgICAg
c2V0IGZvciAnY29udGVudCcgc2Vzc2lvbnM7IGl0IGlzIG51bGwgb3RoZXJ3aXNlLgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uOjp+TWVkaWFTZXNzaW9uKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhU2Vzc2lvbjo6Y29udHJvbHMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNz
aW9uOjpyZWxlYXNlU2Vzc2lvbik6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVk
aWFTZXNzaW9uLmg6IEFkZGVkIGJhc2ljIHRyYW5zbGF0aW9uIG9mIElETCBmaWxlLgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5pZGw6IEFkZGVkIGZyb20gdGhl
IE1lZGlhIFNlc3Npb24gc3BlYy4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6IEFkZGVkIG5ldyBNZWRpYVNlc3Npb24gc291cmNlcy4KKwogMjAxNS0wNi0wMiAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIENhbGxpbmcgRnJhbWVW
aWV3Ojp2aWV3cG9ydENvbnRlbnRzQ2hhbmdlZCgpIGFmdGVyIHN0eWxlIHJlY2FsY3MgaXMgdG9v
IGV4cGVuc2l2ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAwMDg5YmVlZjRkOTAyMmNlMzVlN2U1
NTgxOGVjZTUzZDdhYWM2ZGU1Li5kNTEwMDYzNTZhYWQ0NzE1MTNiZDkwYzU2ZDc1YzYyNzgyMWYx
NDI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMjE5LDYgKzIxOSw3IEBAIHNldChXZWJDb3Jl
X05PTl9TVkdfSURMX0ZJTEVTCiAgICAgTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJv
bHNIb3N0LmlkbAogCiAgICAgTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFSZW1vdGVDb250cm9s
cy5pZGwKKyAgICBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uaWRsCiAKICAgICBN
b2R1bGVzL21lZGlhc291cmNlL0RPTVVSTE1lZGlhU291cmNlLmlkbAogICAgIE1vZHVsZXMvbWVk
aWFzb3VyY2UvTWVkaWFTb3VyY2UuaWRsCkBAIC04NzQsNiArODc1LDcgQEAgc2V0KFdlYkNvcmVf
U09VUkNFUwogICAgIE1vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAK
IAogICAgIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhUmVtb3RlQ29udHJvbHMuY3BwCisgICAg
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmNwcAogCiAgICAgTW9kdWxlcy9tZWRp
YXNvdXJjZS9ET01VUkxNZWRpYVNvdXJjZS5jcHAKICAgICBNb2R1bGVzL21lZGlhc291cmNlL01l
ZGlhU291cmNlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggNTYyZjBiM2I3
NzFlNmVjY2QwMWRhZTgxOWYzY2YxNGY3MzBmNGFjOS4uNWE1MTVkMzE0OWUzMWU2YTQyZTM0ZjVl
NzhlNzJjY2MzN2MyOWE0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xMDUs
NiArMTA1LDcgQEAgTk9OX1NWR19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL2luZGlldWkvVUlSZXF1ZXN0RXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMv
bWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFSZW1vdGVDb250cm9scy5pZGwgXAorICAgICQoV2ViQ29y
ZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmlkbCBcCiAJJChXZWJDb3JlKS9N
b2R1bGVzL21lZGlhc291cmNlL0RPTVVSTE1lZGlhU291cmNlLmlkbCBcCiAJJChXZWJDb3JlKS9N
b2R1bGVzL21lZGlhc291cmNlL0F1ZGlvVHJhY2tNZWRpYVNvdXJjZS5pZGwgXAogCSQoV2ViQ29y
ZSkvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5pZGwgXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOWZiYTYxMmU3NDRlN2IzZWNhMDk2MTNjNjk4YThkMWJiMWNjNGJmNQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5j
cHAKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMu
IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRpYVNlc3Npb24uaCIK
KworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK01l
ZGlhU2Vzc2lvbjo6TWVkaWFTZXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQs
IGNvbnN0IFN0cmluZyYga2luZCkKKyAgICA6IG1fa2luZChraW5kKQoreworICAgIGlmIChtX2tp
bmQgPT0gImNvbnRlbnQiKQorICAgICAgICBtX2NvbnRyb2xzID0gYWRvcHRSZWYoKm5ldyBNZWRp
YVJlbW90ZUNvbnRyb2xzKGNvbnRleHQpKTsKK30KKworTWVkaWFTZXNzaW9uOjp+TWVkaWFTZXNz
aW9uKCkKK3sKK30KKworTWVkaWFSZW1vdGVDb250cm9scyogTWVkaWFTZXNzaW9uOjpjb250cm9s
cyhib29sJiBpc051bGwpCit7CisgICAgTWVkaWFSZW1vdGVDb250cm9scyogY29udHJvbHMgPSBt
X2NvbnRyb2xzLmdldCgpOworICAgIGlzTnVsbCA9ICFjb250cm9sczsKKyAgICByZXR1cm4gY29u
dHJvbHM7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uOjpyZWxlYXNlU2Vzc2lvbigpCit7Cit9CisK
K30KKworI2VuZGlmIC8qIEVOQUJMRShNRURJQV9TRVNTSU9OKSAqLwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
NDAxNzhjMjhkOGVmNGYyMTE5ZDRiMTU0YjEzOTZjYjM1YjIzZmI2Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmgKQEAg
LTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgTWVkaWFTZXNzaW9uX2gKKyNkZWZpbmUgTWVkaWFTZXNzaW9uX2gKKworI2lm
IEVOQUJMRShNRURJQV9TRVNTSU9OKQorCisjaW5jbHVkZSAiTWVkaWFSZW1vdGVDb250cm9scy5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE1lZGlhU2Vzc2lvbiBmaW5hbCA6IHB1
YmxpYyBSZWZDb3VudGVkPE1lZGlhU2Vzc2lvbj4geworcHVibGljOgorICAgIHN0YXRpYyBSZWY8
TWVkaWFTZXNzaW9uPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29u
c3QgU3RyaW5nJiBraW5kKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTWVk
aWFTZXNzaW9uKGNvbnRleHQsIGtpbmQpKTsKKyAgICB9CisKKyAgICBNZWRpYVNlc3Npb24oU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IFN0cmluZyYpOworICAgIH5NZWRpYVNlc3Npb24o
KTsKKworICAgIFN0cmluZyBraW5kKCkgY29uc3QgeyByZXR1cm4gbV9raW5kOyB9CisgICAgTWVk
aWFSZW1vdGVDb250cm9scyogY29udHJvbHMoYm9vbCYgaXNOdWxsKTsKKworICAgIHZvaWQgcmVs
ZWFzZVNlc3Npb24oKTsKKworcHJpdmF0ZToKKyAgICBjb25zdCBTdHJpbmcgbV9raW5kOworICAg
IFJlZlB0cjxNZWRpYVJlbW90ZUNvbnRyb2xzPiBtX2NvbnRyb2xzOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLyogRU5BQkxFKE1FRElBX1NFU1NJT04pICovCisKKyNl
bmRpZiAvKiBNZWRpYVNlc3Npb25faCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzllNDc5ZGNlODYw
ZDk5MzNiOGE4ZTYzZTRhMzY5ODIyZDUyZWM5MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5pZGwKQEAgLTAsMCArMSw0
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAg
ICBDb25kaXRpb25hbD1NRURJQV9TRVNTSU9OLAorICAgIENvbnN0cnVjdG9yKE1lZGlhU2Vzc2lv
bktpbmQga2luZCksCisgICAgQ29uc3RydWN0b3JDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250
ZXh0LAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCitdIGludGVyZmFjZSBNZWRpYVNl
c3Npb24geworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBNZWRpYVNlc3Npb25LaW5kIGtpbmQ7Cisg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIE1lZGlhUmVtb3RlQ29udHJvbHM/IGNvbnRyb2xzOworCisg
ICAgdm9pZCByZWxlYXNlU2Vzc2lvbigpOworfTsKKworZW51bSBNZWRpYVNlc3Npb25LaW5kIHsK
KyAgICAiY29udGVudCIsCisgICAgInRyYW5zaWVudCIsCisgICAgInRyYW5zaWVudC1zb2xvIiwK
KyAgICAiYW1iaWVudCIKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggNTk0ZDJiNTgxZDNiOTU1OTM3NDg5ZjYxNjk3NTczOWQ0
MWIyODcyNS4uYThmZThiNTc2MzIyZmRhOTM3NzNjZGY4ZGEyZDA3Mjk1MThlOGE1OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
NTY5MSw4ICs1NjkxLDExIEBACiAJCUM2RjQyMEEyMTZCNzE2NEUwMDUyQTlGMiAvKiBKU011dGF0
aW9uQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQzZGNDIwQTAxNkI3MTY0RTAwNTJBOUYyIC8qIEpTTXV0YXRpb25DYWxsYmFjay5jcHAg
Ki87IH07CiAJCUM2RjQyMEEzMTZCNzE2NEUwMDUyQTlGMiAvKiBKU011dGF0aW9uQ2FsbGJhY2su
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM2RjQyMEEx
MTZCNzE2NEUwMDUyQTlGMiAvKiBKU011dGF0aW9uQ2FsbGJhY2suaCAqLzsgfTsKIAkJQzkwMjZC
NjUxQjFDRjVGRTAwMUQ5OUE3IC8qIEpTTWVkaWFSZW1vdGVDb250cm9scy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDOTAyNkI2MzFCMUNGNUFCMDAx
RDk5QTcgLyogSlNNZWRpYVJlbW90ZUNvbnRyb2xzLmNwcCAqLzsgfTsKKwkJQzkwMjdGNDExQjFE
MEFEMjAwQkZCRkVGIC8qIE1lZGlhU2Vzc2lvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDOTAyN0YzRjFCMUQwQUQyMDBCRkJGRUYgLyogTWVkaWFT
ZXNzaW9uLmNwcCAqLzsgfTsKKwkJQzkwMjdGNDIxQjFEMEFEMjAwQkZCRkVGIC8qIE1lZGlhU2Vz
c2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzkw
MjdGNDAxQjFEMEFEMjAwQkZCRkVGIC8qIE1lZGlhU2Vzc2lvbi5oICovOyB9OwogCQlDOTA4NDND
RjFCMThFNDdEMDBCNjg1NjQgLyogTWVkaWFSZW1vdGVDb250cm9scy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDOTA4NDNDRDFCMThFNDdEMDBCNjg1
NjQgLyogTWVkaWFSZW1vdGVDb250cm9scy5jcHAgKi87IH07CiAJCUM5MDg0M0QwMUIxOEU0N0Qw
MEI2ODU2NCAvKiBNZWRpYVJlbW90ZUNvbnRyb2xzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDOTA4NDNDRTFCMThFNDdEMDBCNjg1NjQgLyogTWVkaWFS
ZW1vdGVDb250cm9scy5oICovOyB9OworCQlDOURBREJDQjFCMUQzQjk3MDAxRjE3RDggLyogSlNN
ZWRpYVNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQzlEQURCQzkxQjFEM0IyNTAwMUYxN0Q4IC8qIEpTTWVkaWFTZXNzaW9uLmNwcCAqLzsg
fTsKIAkJQ0EzQkY2N0MxMEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENBM0JGNjdCMTBEOTlC
QUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5jcHAgKi87IH07CiAJCUNBM0JGNjdFMTBEOTlC
QUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0EzQkY2N0QxMEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFu
aW1hdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQ0FFOUY5MEYxNDY0NDFGMDAwQzI0NUIwIC8qIENTU0FzcGVjdFJhdGlvVmFsdWUuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0FFOUY5MEQxNDY0
NDFGMDAwQzI0NUIwIC8qIENTU0FzcGVjdFJhdGlvVmFsdWUuY3BwICovOyB9OwpAQCAtMTMyNTIs
OSArMTMyNTUsMTQgQEAKIAkJQzZGNDIwQTExNkI3MTY0RTAwNTJBOUYyIC8qIEpTTXV0YXRpb25D
YWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU011dGF0aW9uQ2Fs
bGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzkwMjZCNjMxQjFDRjVBQjAw
MUQ5OUE3IC8qIEpTTWVkaWFSZW1vdGVDb250cm9scy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU01lZGlhUmVtb3RlQ29udHJvbHMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDOTAyNkI2NDFCMUNGNUFCMDAxRDk5QTcgLyogSlNNZWRpYVJlbW90
ZUNvbnRyb2xzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWVkaWFSZW1v
dGVDb250cm9scy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDOTAyN0YzRTFCMUQw
QUI5MDBCRkJGRUYgLyogTWVkaWFTZXNzaW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYVNlc3Npb24uaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDOTAyN0YzRjFCMUQwQUQyMDBCRkJGRUYgLyog
TWVkaWFTZXNzaW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1l
ZGlhU2Vzc2lvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUM5MDI3RjQwMUIx
RDBBRDIwMEJGQkZFRiAvKiBNZWRpYVNlc3Npb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTWVkaWFTZXNzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM5
MDg0M0NEMUIxOEU0N0QwMEI2ODU2NCAvKiBNZWRpYVJlbW90ZUNvbnRyb2xzLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhUmVtb3RlQ29udHJvbHMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDOTA4NDNDRTFCMThFNDdEMDBCNjg1NjQgLyog
TWVkaWFSZW1vdGVDb250cm9scy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBN
ZWRpYVJlbW90ZUNvbnRyb2xzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM5MzQ1
OEJCMUIxOEQ3N0UwMDg4RUUxMiAvKiBNZWRpYVJlbW90ZUNvbnRyb2xzLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBNZWRpYVJlbW90ZUNvbnRyb2xzLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQzlEQURCQzkxQjFEM0IyNTAwMUYxN0Q4IC8qIEpTTWVkaWFTZXNzaW9uLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVkaWFTZXNzaW9uLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzlEQURCQ0ExQjFEM0IyNTAwMUYxN0Q4
IC8qIEpTTWVkaWFTZXNzaW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
TWVkaWFTZXNzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNBM0JGNjdCMTBE
OTlCQUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTY3JvbGxBbmltYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUNBM0JGNjdEMTBEOTlCQUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxBbmltYXRvci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlDQUU5RjkwRDE0NjQ0MUYwMDBDMjQ1QjAgLyogQ1NTQXNw
ZWN0UmF0aW9WYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBD
U1NBc3BlY3RSYXRpb1ZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0
NjAxLDYgKzE0NjA5LDkgQEAKIAkJCQlDOTA4NDNDRDFCMThFNDdEMDBCNjg1NjQgLyogTWVkaWFS
ZW1vdGVDb250cm9scy5jcHAgKi8sCiAJCQkJQzkwODQzQ0UxQjE4RTQ3RDAwQjY4NTY0IC8qIE1l
ZGlhUmVtb3RlQ29udHJvbHMuaCAqLywKIAkJCQlDOTM0NThCQjFCMThENzdFMDA4OEVFMTIgLyog
TWVkaWFSZW1vdGVDb250cm9scy5pZGwgKi8sCisJCQkJQzkwMjdGM0YxQjFEMEFEMjAwQkZCRkVG
IC8qIE1lZGlhU2Vzc2lvbi5jcHAgKi8sCisJCQkJQzkwMjdGNDAxQjFEMEFEMjAwQkZCRkVGIC8q
IE1lZGlhU2Vzc2lvbi5oICovLAorCQkJCUM5MDI3RjNFMUIxRDBBQjkwMEJGQkZFRiAvKiBNZWRp
YVNlc3Npb24uaWRsICovLAogCQkJCTA3MDlENzhDMUFFNTU1NTQwMDRFNDJGOCAvKiBXZWJNZWRp
YVNlc3Npb25NYW5hZ2VyLmNwcCAqLywKIAkJCQkwNzA5RDc4RDFBRTU1NTU0MDA0RTQyRjggLyog
V2ViTWVkaWFTZXNzaW9uTWFuYWdlci5oICovLAogCQkJCTA3MDlENzk0MUFFNTVBMjkwMDRFNDJG
OCAvKiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50LmggKi8sCkBAIC0xOTIyNCw2ICsxOTIz
NSw4IEBACiAJCQkJQ0RCODU5RjkxNjBENDkzRTAwRTVCMDdGIC8qIEpTTWVkaWFLZXlFdmVudC5o
ICovLAogCQkJCUM5MDI2QjYzMUIxQ0Y1QUIwMDFEOTlBNyAvKiBKU01lZGlhUmVtb3RlQ29udHJv
bHMuY3BwICovLAogCQkJCUM5MDI2QjY0MUIxQ0Y1QUIwMDFEOTlBNyAvKiBKU01lZGlhUmVtb3Rl
Q29udHJvbHMuaCAqLywKKwkJCQlDOURBREJDOTFCMUQzQjI1MDAxRjE3RDggLyogSlNNZWRpYVNl
c3Npb24uY3BwICovLAorCQkJCUM5REFEQkNBMUIxRDNCMjUwMDFGMTdEOCAvKiBKU01lZGlhU2Vz
c2lvbi5oICovLAogCQkJCTdFNDZGNkY4MTYyN0EyQzkwMDA2MjIyMyAvKiBKU09FU0VsZW1lbnRJ
bmRleFVpbnQuY3BwICovLAogCQkJCTdFNDZGNkY5MTYyN0EyQzkwMDA2MjIyMyAvKiBKU09FU0Vs
ZW1lbnRJbmRleFVpbnQuaCAqLywKIAkJCQk5MDAxNzg3RTEyRTAzNzA3MDA2NDg0NjIgLyogSlNP
RVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcCAqLywKQEAgLTI1ODMwLDYgKzI1ODQzLDcgQEAKIAkJ
CQlDOTA4NDNEMDFCMThFNDdEMDBCNjg1NjQgLyogTWVkaWFSZW1vdGVDb250cm9scy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQ0VFRkNEN0ExOURCMzFGNzAwMzg3NkQ3IC8qIE1lZGlhUmVzb3VyY2VM
b2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQkVBRUFEMTlEOTJCNkMwMEJFQkE4OCAvKiBN
ZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQzkwMjdGNDIx
QjFEMEFEMjAwQkZCRkVGIC8qIE1lZGlhU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdG
OTQ0MTYxODY0RDA0NjAwNUQzMUNCIC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTA3NjM4QTk5MTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRpYVNlc3Npb25NYW5hZ2Vy
SU9TLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDNBNDk1RjE3QTlEMDFCMDAyNzRFNDIgLyogTWVk
aWFTb3VyY2UuaCBpbiBIZWFkZXJzICovLApAQCAtMjg5MjYsNiArMjg5NDAsNyBAQAogCQkJCUQz
QTk0QTQ2MTIyREM0MEYwMEEzN0JCQyAvKiBKU01lZGlhUXVlcnlMaXN0LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTdDNTM0M0ZDMTdCNzRCNjMwMDQyMzJGMCAvKiBKU01lZGlhUXVlcnlMaXN0TGlz
dGVuZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzkwMjZCNjUxQjFDRjVGRTAwMUQ5OUE3IC8q
IEpTTWVkaWFSZW1vdGVDb250cm9scy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDOURBREJDQjFC
MUQzQjk3MDAxRjE3RDggLyogSlNNZWRpYVNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
Q0Q5REUxNzQxN0FBQzc0QzAwRUEzODZEIC8qIEpTTWVkaWFTb3VyY2UuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMDdDNTlCNzExN0Y3OUM3QzAwMEZCQ0JCIC8qIEpTTWVkaWFTb3VyY2VTdGF0ZXMu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDdDNTlCNkUxN0Y3OTRGNjAwMEZCQ0JCIC8qIEpTTWVk
aWFTb3VyY2VTdGF0ZXNDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yOTQxNCw2ICsyOTQy
OSw3IEBACiAJCQkJQzkwODQzQ0YxQjE4RTQ3RDAwQjY4NTY0IC8qIE1lZGlhUmVtb3RlQ29udHJv
bHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0VFRkNENzkxOURCMzFGNzAwMzg3NkQ3IC8qIE1l
ZGlhUmVzb3VyY2VMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RCRUFFQUMxOUQ5MkI2
QzAwQkVCQTg4IC8qIE1lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tIGluIFNvdXJjZXMgKi8s
CisJCQkJQzkwMjdGNDExQjFEMEFEMjAwQkZCRkVGIC8qIE1lZGlhU2Vzc2lvbi5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlDREFFOEMwOTE3NDZCOTU3MDA1MzJENzggLyogTWVkaWFTZXNzaW9uTWFu
YWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzYzOEE5QTE4ODQ0ODcyMDBFMTVBMUIgLyog
TWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTA3RURDM0VFMUFB
Q0I3NUQwMDk4M0VCNSAvKiBNZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmNwcCBpbiBTb3VyY2VzICov
LAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>