<?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>91371</bug_id>
          
          <creation_ts>2012-07-16 03:30:06 -0700</creation_ts>
          <short_desc>[EFL][WK2] Add vibration client</short_desc>
          <delta_ts>2012-07-24 08:40:30 -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>WebKit EFL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>91077</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sudarsana Nagineni (babu)">naginenis</reporter>
          <assigned_to name="Sudarsana Nagineni (babu)">naginenis</assigned_to>
          <cc>g.czajkowski</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kihong.kwon</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>sw0524.lee</cc>
    
    <cc>vimff0</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>670213</commentid>
    <comment_count>0</comment_count>
    <who name="Sudarsana Nagineni (babu)">naginenis</who>
    <bug_when>2012-07-16 03:30:06 -0700</bug_when>
    <thetext>Implement Vibration client for WebKit2 EFL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670326</commentid>
    <comment_count>1</comment_count>
      <attachid>152531</attachid>
    <who name="Sudarsana Nagineni (babu)">naginenis</who>
    <bug_when>2012-07-16 07:37:32 -0700</bug_when>
    <thetext>Created attachment 152531
Patch

This is dependent on patch in bug 91081.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674508</commentid>
    <comment_count>2</comment_count>
      <attachid>153491</attachid>
    <who name="Sudarsana Nagineni (babu)">naginenis</who>
    <bug_when>2012-07-20 06:37:59 -0700</bug_when>
    <thetext>Created attachment 153491
Patch

Implement vibration provider for WebKit2 EFL and also add an API to set vibration client callbacks by application. The callbacks set by application will be called back when the controller calls vibration APIs. This way application developers can handle the device feedback implementation in their application based on the platform support.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674519</commentid>
    <comment_count>3</comment_count>
      <attachid>153491</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-20 06:49:20 -0700</bug_when>
    <thetext>Comment on attachment 153491
Patch

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

&gt; Source/WebKit2/UIProcess/API/efl/VibrationProvider.cpp:46
&gt; +    _Ewk_Vibration_Client(Ewk_Vibration_Client_Vibrate_Cb vibrate, Ewk_Vibration_Client_Vibration_Cancel_Cb cancelVibration, void *userData)

Star on the wrong side.

&gt; Source/WebKit2/UIProcess/API/efl/VibrationProvider.cpp:103
&gt; +void VibrationProvider::setVibrationClientCallbacks(Ewk_Vibration_Client_Vibrate_Cb vibrate, Ewk_Vibration_Client_Vibration_Cancel_Cb cancelVibration, void *data)

star on the wrong side.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_context.cpp:96
&gt; +void ewk_context_vibration_client_callbacks_set(const Ewk_Context* ewkContext, Ewk_Vibration_Client_Vibrate_Cb vibrate, Ewk_Vibration_Client_Vibration_Cancel_Cb cancel, void *data)

This is a setter, the ewkContext argument should not be const. + star on the wrong side for user data.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_context.h:63
&gt; +typedef void (*Ewk_Vibration_Client_Vibrate_Cb)(uint64_t vibration_time, void *user_data);

I think we usually put the callback typdefs at the top of the file, before all the functions.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_context.h:74
&gt; + * vibration in the clint appliation when the content ask for vibration.

&quot;application&quot;, &quot;client&quot;, &quot;asks&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674543</commentid>
    <comment_count>4</comment_count>
      <attachid>153500</attachid>
    <who name="Sudarsana Nagineni (babu)">naginenis</who>
    <bug_when>2012-07-20 07:17:45 -0700</bug_when>
    <thetext>Created attachment 153500
Patch

Fix nits spotted by Chris. Thanks Chris!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674545</commentid>
    <comment_count>5</comment_count>
      <attachid>153500</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-20 07:20:37 -0700</bug_when>
    <thetext>Comment on attachment 153500
Patch

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674583</commentid>
    <comment_count>6</comment_count>
      <attachid>153500</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-20 08:11:34 -0700</bug_when>
    <thetext>Comment on attachment 153500
Patch

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

&gt; Source/WebKit2/UIProcess/API/efl/VibrationProvider.h:48
&gt; +    VibrationProvider(WKVibrationRef);

Missing *explicit* keyword.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_context.cpp:98
&gt; +    EINA_SAFETY_ON_NULL_RETURN(ewkContext);

I wonder if *cancel* and *data* parameters can be NULL. If other functions are not handle this, is it better to check if they are NULL ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674587</commentid>
    <comment_count>7</comment_count>
      <attachid>153500</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-20 08:17:24 -0700</bug_when>
    <thetext>Comment on attachment 153500
Patch

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

&gt;&gt; Source/WebKit2/UIProcess/API/efl/ewk_context.cpp:98
&gt;&gt; +    EINA_SAFETY_ON_NULL_RETURN(ewkContext);
&gt; 
&gt; I wonder if *cancel* and *data* parameters can be NULL. If other functions are not handle this, is it better to check if they are NULL ?

data is &quot;user data&quot; so it may be NULL for sure (it is even documented). It will work fine if the callbacks are NULL but it should be documented in the header. It is actually useful to stop listening for vibration events (you call the function again and pass NULL for the callbacks).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674788</commentid>
    <comment_count>8</comment_count>
      <attachid>153500</attachid>
    <who name="Sudarsana Nagineni (babu)">naginenis</who>
    <bug_when>2012-07-20 11:27:21 -0700</bug_when>
    <thetext>Comment on attachment 153500
Patch

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

&gt;&gt;&gt; Source/WebKit2/UIProcess/API/efl/ewk_context.cpp:98
&gt;&gt;&gt; +    EINA_SAFETY_ON_NULL_RETURN(ewkContext);
&gt;&gt; 
&gt;&gt; I wonder if *cancel* and *data* parameters can be NULL. If other functions are not handle this, is it better to check if they are NULL ?
&gt; 
&gt; data is &quot;user data&quot; so it may be NULL for sure (it is even documented). It will work fine if the callbacks are NULL but it should be documented in the header. It is actually useful to stop listening for vibration events (you call the function again and pass NULL for the callbacks).

You are right, okay to pass NULL for the callbacks. I&apos;m going to update the documentation in the header.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674824</commentid>
    <comment_count>9</comment_count>
      <attachid>153558</attachid>
    <who name="Sudarsana Nagineni (babu)">naginenis</who>
    <bug_when>2012-07-20 12:10:40 -0700</bug_when>
    <thetext>Created attachment 153558
Patch

Fix review comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674825</commentid>
    <comment_count>10</comment_count>
      <attachid>153558</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-20 12:12:09 -0700</bug_when>
    <thetext>Comment on attachment 153558
Patch

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>675279</commentid>
    <comment_count>11</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-21 17:43:26 -0700</bug_when>
    <thetext>CC&apos;ing Grzegorz, Could you take a look this patch ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>675535</commentid>
    <comment_count>12</comment_count>
      <attachid>153558</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-23 01:33:39 -0700</bug_when>
    <thetext>Comment on attachment 153558
Patch

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>676020</commentid>
    <comment_count>13</comment_count>
      <attachid>153865</attachid>
    <who name="Sudarsana Nagineni (babu)">naginenis</who>
    <bug_when>2012-07-23 14:45:14 -0700</bug_when>
    <thetext>Created attachment 153865
Patch

Rebased.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>676864</commentid>
    <comment_count>14</comment_count>
      <attachid>153865</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-24 08:40:24 -0700</bug_when>
    <thetext>Comment on attachment 153865
Patch

Clearing flags on attachment: 153865

Committed r123482: &lt;http://trac.webkit.org/changeset/123482&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>676865</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-24 08:40:30 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152531</attachid>
            <date>2012-07-16 07:37:32 -0700</date>
            <delta_ts>2012-07-20 06:37:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>91371.patch</filename>
            <type>text/plain</type>
            <size>9149</size>
            <attacher name="Sudarsana Nagineni (babu)">naginenis</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktp
dDIvQ01ha2VMaXN0cy50eHQKaW5kZXggMWRhOWE2YS4uZmEyYjA2ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0
cy50eHQKQEAgLTQ1LDYgKzQ1LDcgQEAgU0VUKFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklFUwog
ICAgICIke1dFQkNPUkVfRElSfSIKICAgICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9iYXR0ZXJ5
IgogICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL2ludGVudHMiCisgICAgIiR7V0VCQ09SRV9E
SVJ9L01vZHVsZXMvdmlicmF0aW9uIgogICAgICIke1dFQkNPUkVfRElSfS9hY2Nlc3NpYmlsaXR5
IgogICAgICIke1dFQkNPUkVfRElSfS9iaW5kaW5ncy9qcyIKICAgICAiJHtXRUJDT1JFX0RJUn0v
YmluZGluZ3MiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMjA3NDQwNC4uYzU2ODZiMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAt
MSw1ICsxLDMyIEBACiAyMDEyLTA3LTE2ICBTdWRhcnNhbmEgTmFnaW5lbmkgIDxzdWRhcnNhbmEu
bmFnaW5lbmlAbGludXguaW50ZWwuY29tPgogCisgICAgICAgIFtFRkxdW1dLMl0gQWRkIHZpYnJh
dGlvbiBjbGllbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTkxMzcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW1wbGVtZW50IFZpYnJhdGlvbiBjbGllbnQgZm9yIFdlYktpdDIgRUZMLgorCisgICAgICAg
ICogQ01ha2VMaXN0cy50eHQ6IEFkZCBXZWJDb3JlL01vZHVsZXMvdmlicmF0aW9uIHRvIGluY2x1
ZGUKKyAgICAgICAgcGF0aC4KKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZTogQWRkIFZpYnJh
dGlvblByb3ZpZGVyLmNwcCBmaWxlIHRvIHRoZSBidWlsZCBzeXN0ZW0uCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9lZmwvVmlicmF0aW9uUHJvdmlkZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKHRv
VmlicmF0aW9uUHJvdmlkZXIpOgorICAgICAgICAodmlicmF0ZUNhbGxiYWNrKToKKyAgICAgICAg
KGNhbmNlbFZpYnJhdGlvbkNhbGxiYWNrKToKKyAgICAgICAgKFZpYnJhdGlvblByb3ZpZGVyOjpj
cmVhdGUpOgorICAgICAgICAoVmlicmF0aW9uUHJvdmlkZXI6OlZpYnJhdGlvblByb3ZpZGVyKToK
KyAgICAgICAgKFZpYnJhdGlvblByb3ZpZGVyOjp2aWJyYXRlKToKKyAgICAgICAgKFZpYnJhdGlv
blByb3ZpZGVyOjpjYW5jZWxWaWJyYXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZs
L1ZpYnJhdGlvblByb3ZpZGVyLmg6IEFkZGVkLgorICAgICAgICAoVmlicmF0aW9uUHJvdmlkZXIp
OgorICAgICAgICAoVmlicmF0aW9uUHJvdmlkZXI6On5WaWJyYXRpb25Qcm92aWRlcik6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwOgorICAgICAgICAoX0V3a19WaWV3
X1ByaXZhdGVfRGF0YSk6CisgICAgICAgIChld2tfdmlld19iYXNlX2FkZCk6CisKKzIwMTItMDct
MTYgIFN1ZGFyc2FuYSBOYWdpbmVuaSAgPHN1ZGFyc2FuYS5uYWdpbmVuaUBsaW51eC5pbnRlbC5j
b20+CisKICAgICAgICAgW1dLMl0gQWRkIFZpYnJhdGlvbiBBUEkgaW50ZWdyYXRpb24gdG8gV2Vi
Q29udGV4dCBhbmQgV2ViUGFnZQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTEwODEKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1F
ZmwuY21ha2UgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCA5ODcwZTBl
Li5hZDQ4OGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtMzYsNiArMzYsNyBAQCBM
SVNUKEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKIAogICAgIFVJUHJvY2Vzcy9BUEkvZWZsL0JhdHRl
cnlQcm92aWRlci5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1wbC5jcHAK
KyAgICBVSVByb2Nlc3MvQVBJL2VmbC9WaWJyYXRpb25Qcm92aWRlci5jcHAKICAgICBVSVByb2Nl
c3MvQVBJL2VmbC9ld2tfY29udGV4dC5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfaW50
ZW50LmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnRfc2VydmljZS5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1ZpYnJhdGlvblByb3Zp
ZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1ZpYnJhdGlvblByb3Zp
ZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zN2YwOGY4Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvVmlicmF0aW9u
UHJvdmlkZXIuY3BwCkBAIC0wLDAgKzEsODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
SW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJWaWJyYXRpb25Qcm92aWRlci5oIgorCisjaWYgRU5B
QkxFKFZJQlJBVElPTikKKworI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldLVmli
cmF0aW9uLmgiCisjaW5jbHVkZSA8RXZhcy5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
Kworc3RhdGljIGlubGluZSBWaWJyYXRpb25Qcm92aWRlciogdG9WaWJyYXRpb25Qcm92aWRlcihj
b25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxWaWJyYXRp
b25Qcm92aWRlcio+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKK30KKworc3RhdGlj
IHZvaWQgdmlicmF0ZUNhbGxiYWNrKFdLVmlicmF0aW9uUmVmIHZpYnJhdGlvblJlZiwgdWludDY0
X3QgdmlicmF0aW9uVGltZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICB0b1ZpYnJh
dGlvblByb3ZpZGVyKGNsaWVudEluZm8pLT52aWJyYXRlKHZpYnJhdGlvblRpbWUpOworfQorCitz
dGF0aWMgdm9pZCBjYW5jZWxWaWJyYXRpb25DYWxsYmFjayhXS1ZpYnJhdGlvblJlZiB2aWJyYXRp
b25SZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgdG9WaWJyYXRpb25Qcm92aWRl
cihjbGllbnRJbmZvKS0+Y2FuY2VsVmlicmF0aW9uKCk7Cit9CisKK1Bhc3NSZWZQdHI8VmlicmF0
aW9uUHJvdmlkZXI+IFZpYnJhdGlvblByb3ZpZGVyOjpjcmVhdGUoV0tWaWJyYXRpb25SZWYgd2tW
aWJyYXRpb25SZWYsIEV2YXNfT2JqZWN0KiB2aWV3V2lkZ2V0KQoreworICAgIHJldHVybiBhZG9w
dFJlZihuZXcgVmlicmF0aW9uUHJvdmlkZXIod2tWaWJyYXRpb25SZWYsIHZpZXdXaWRnZXQpKTsK
K30KKworVmlicmF0aW9uUHJvdmlkZXI6OlZpYnJhdGlvblByb3ZpZGVyKFdLVmlicmF0aW9uUmVm
IHdrVmlicmF0aW9uUmVmLCBFdmFzX09iamVjdCogdmlld1dpZGdldCkKKyAgICA6IG1fd2tWaWJy
YXRpb25SZWYod2tWaWJyYXRpb25SZWYpCisgICAgLCBtX3ZpZXdXaWRnZXQodmlld1dpZGdldCkK
K3sKKyAgICBBU1NFUlQod2tWaWJyYXRpb25SZWYpOworCisgICAgV0tWaWJyYXRpb25Qcm92aWRl
ciB3a1ZpYnJhdGlvblByb3ZpZGVyID0geworICAgICAgICBrV0tWaWJyYXRpb25Qcm92aWRlckN1
cnJlbnRWZXJzaW9uLAorICAgICAgICB0aGlzLCAvLyBjbGllbnRJbmZvCisgICAgICAgIHZpYnJh
dGVDYWxsYmFjaywKKyAgICAgICAgY2FuY2VsVmlicmF0aW9uQ2FsbGJhY2sKKyAgICB9OworICAg
IFdLVmlicmF0aW9uU2V0UHJvdmlkZXIobV93a1ZpYnJhdGlvblJlZi5nZXQoKSwgJndrVmlicmF0
aW9uUHJvdmlkZXIpOworfQorCit2b2lkIFZpYnJhdGlvblByb3ZpZGVyOjp2aWJyYXRlKHVpbnQ2
NF90IHZpYnJhdGlvblRpbWUpCit7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfY2Fs
bChtX3ZpZXdXaWRnZXQsICJ2aWJyYXRpb24sdmlicmF0ZSIsICh2b2lkKikmdmlicmF0aW9uVGlt
ZSk7Cit9CisKK3ZvaWQgVmlicmF0aW9uUHJvdmlkZXI6OmNhbmNlbFZpYnJhdGlvbigpCit7Cisg
ICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfY2FsbChtX3ZpZXdXaWRnZXQsICJ2aWJyYXRp
b24sY2FuY2VsIiwgMCk7Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoVklCUkFUSU9OKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvVmlicmF0aW9uUHJvdmlkZXIu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1ZpYnJhdGlvblByb3ZpZGVyLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTllZDJiMAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1ZpYnJhdGlvblByb3ZpZGVy
LmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jw
b3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBWaWJyYXRp
b25Qcm92aWRlcl9oCisjZGVmaW5lIFZpYnJhdGlvblByb3ZpZGVyX2gKKworI2lmIEVOQUJMRShW
SUJSQVRJT04pCisKKyNpbmNsdWRlICJXS1JldGFpblB0ci5oIgorI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworY2xhc3MgVmlicmF0aW9u
UHJvdmlkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxWaWJyYXRpb25Qcm92aWRlcj4geworcHVibGlj
OgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFZpYnJhdGlvblByb3ZpZGVyPiBjcmVhdGUoV0tWaWJy
YXRpb25SZWYsIEV2YXNfT2JqZWN0Kik7CisgICAgdmlydHVhbCB+VmlicmF0aW9uUHJvdmlkZXIo
KSB7IH0KKworICAgIHZvaWQgdmlicmF0ZSh1aW50NjRfdCB2aWJyYXRpb25UaW1lKTsKKyAgICB2
b2lkIGNhbmNlbFZpYnJhdGlvbigpOworCitwcml2YXRlOgorICAgIFZpYnJhdGlvblByb3ZpZGVy
KFdLVmlicmF0aW9uUmVmLCBFdmFzX09iamVjdCopOworCisgICAgV0tSZXRhaW5QdHI8V0tWaWJy
YXRpb25SZWY+IG1fd2tWaWJyYXRpb25SZWY7CisgICAgRXZhc19PYmplY3QqIG1fdmlld1dpZGdl
dDsKK307CisKKyNlbmRpZiAvLyBFTkFCTEUoVklCUkFUSU9OKQorCisjZW5kaWYgLy8gVmlicmF0
aW9uUHJvdmlkZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Zp
ZXcuY3BwCmluZGV4IDQ3M2Q2N2MuLjEyNmZhNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNsdWRlICJO
YXRpdmVXZWJNb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiTmF0aXZlV2ViV2hlZWxFdmVudC5oIgog
I2luY2x1ZGUgIlBhZ2VDbGllbnRJbXBsLmgiCisjaW5jbHVkZSAiVmlicmF0aW9uUHJvdmlkZXIu
aCIKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKICNpbmNsdWRlICJXS1JldGFpblB0ci5oIgogI2lu
Y2x1ZGUgIldLVVJMLmgiCkBAIC01MCw2ICs1MSw5IEBAIHN0cnVjdCBfRXdrX1ZpZXdfUHJpdmF0
ZV9EYXRhIHsKICAgICBjb25zdCBjaGFyKiB1cmk7CiAgICAgY29uc3QgY2hhciogdGl0bGU7CiAg
ICAgTG9hZGluZ1Jlc291cmNlc01hcCBsb2FkaW5nUmVzb3VyY2VzTWFwOworI2lmIEVOQUJMRShW
SUJSQVRJT04pCisgICAgUmVmUHRyPFZpYnJhdGlvblByb3ZpZGVyPiB2aWJyYXRpb25Qcm92aWRl
cjsKKyNlbmRpZgogCiAgICAgX0V3a19WaWV3X1ByaXZhdGVfRGF0YSgpCiAgICAgICAgIDogdXJp
KDApCkBAIC01MDcsNiArNTExLDExIEBAIEV2YXNfT2JqZWN0KiBld2tfdmlld19iYXNlX2FkZChF
dmFzKiBjYW52YXMsIFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VHcm91CiAgICAgZXdr
X3ZpZXdfcG9saWN5X2NsaWVudF9hdHRhY2godG9BUEkocHJpdi0+cGFnZUNsaWVudC0+cGFnZSgp
KSwgZXdrVmlldyk7CiAgICAgZXdrX3ZpZXdfcmVzb3VyY2VfbG9hZF9jbGllbnRfYXR0YWNoKHRv
QVBJKHByaXYtPnBhZ2VDbGllbnQtPnBhZ2UoKSksIGV3a1ZpZXcpOwogCisjaWYgRU5BQkxFKFZJ
QlJBVElPTikKKyAgICBXS1ZpYnJhdGlvblJlZiB3a1ZpYnJhdGlvblJlZiA9IFdLQ29udGV4dEdl
dFZpYnJhdGlvbihjb250ZXh0UmVmKTsKKyAgICBwcml2LT52aWJyYXRpb25Qcm92aWRlciA9IFZp
YnJhdGlvblByb3ZpZGVyOjpjcmVhdGUod2tWaWJyYXRpb25SZWYsIGV3a1ZpZXcpOworI2VuZGlm
CisKICAgICByZXR1cm4gZXdrVmlldzsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153491</attachid>
            <date>2012-07-20 06:37:59 -0700</date>
            <delta_ts>2012-07-20 07:17:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>91371.patch</filename>
            <type>text/plain</type>
            <size>12814</size>
            <attacher name="Sudarsana Nagineni (babu)">naginenis</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktp
dDIvQ01ha2VMaXN0cy50eHQKaW5kZXggMDRjYzcxOS4uN2VjYmQ2MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0
cy50eHQKQEAgLTQ1LDYgKzQ1LDcgQEAgU0VUKFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklFUwog
ICAgICIke1dFQkNPUkVfRElSfSIKICAgICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9iYXR0ZXJ5
IgogICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL2ludGVudHMiCisgICAgIiR7V0VCQ09SRV9E
SVJ9L01vZHVsZXMvdmlicmF0aW9uIgogICAgICIke1dFQkNPUkVfRElSfS9hY2Nlc3NpYmlsaXR5
IgogICAgICIke1dFQkNPUkVfRElSfS9iaW5kaW5ncy9qcyIKICAgICAiJHtXRUJDT1JFX0RJUn0v
YmluZGluZ3MiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNWY0OTM3MC4uNTY2YTBmMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDQwIEBACisyMDEyLTA3LTIwICBTdWRhcnNhbmEgTmFnaW5lbmkgIDxzdWRhcnNhbmEu
bmFnaW5lbmlAbGludXguaW50ZWwuY29tPgorCisgICAgICAgIFtFRkxdW1dLMl0gQWRkIHZpYnJh
dGlvbiBjbGllbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTkxMzcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW1wbGVtZW50IFZpYnJhdGlvbiBwcm92aWRlciBmb3IgV2ViS2l0MiBFRkwgYW5kIGFkZCBh
biBBUEkgdG8gc2V0CisgICAgICAgIHZpYnJhdGlvbiBjbGllbnQgY2FsbGJhY2tzIGJ5IGFwcGxp
Y2F0aW9uIHRvIGhhbmRsZSB0aGUgdGFjdGlsZQorICAgICAgICBmZWVkYmFjayBpbiB0aGUgYXBw
bGljYXRpb24gd2hlbiB0aGUgcGFnZSBjb250ZW50IGFzayBmb3IgdmlicmF0aW9uLgorCisgICAg
ICAgICogQ01ha2VMaXN0cy50eHQ6IEFkZCBXZWJDb3JlL01vZHVsZXMvdmlicmF0aW9uIHRvIGlu
Y2x1ZGUgcGF0aC4KKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZTogQWRkIFZpYnJhdGlvblBy
b3ZpZGVyLmNwcCBmaWxlIHRvIHRoZSBidWlsZAorICAgICAgICBzeXN0ZW0uCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9lZmwvVmlicmF0aW9uUHJvdmlkZXIuY3BwOiBBZGRlZC4KKyAgICAgICAg
KF9Fd2tfVmlicmF0aW9uX0NsaWVudCk6IFN0cnVjdHVyZSBjb250YWlucyB0aGUgdmlicmF0aW9u
IGNsaWVudAorICAgICAgICBjYWxsYmFja3MuCisgICAgICAgIChfRXdrX1ZpYnJhdGlvbl9DbGll
bnQ6Ol9Fd2tfVmlicmF0aW9uX0NsaWVudCk6CisgICAgICAgICh0b1ZpYnJhdGlvblByb3ZpZGVy
KTogSGVscGVyIGZ1bmN0aW9uIHRvIGNhc3QgdGhlIGNsaWVudGluZm8gdG8KKyAgICAgICAgVmli
cmF0aW9uUHJvdmlkZXIuCisgICAgICAgICh2aWJyYXRlQ2FsbGJhY2spOgorICAgICAgICAoY2Fu
Y2VsVmlicmF0aW9uQ2FsbGJhY2spOgorICAgICAgICAoVmlicmF0aW9uUHJvdmlkZXI6OmNyZWF0
ZSk6CisgICAgICAgIChWaWJyYXRpb25Qcm92aWRlcjo6VmlicmF0aW9uUHJvdmlkZXIpOgorICAg
ICAgICAoVmlicmF0aW9uUHJvdmlkZXI6On5WaWJyYXRpb25Qcm92aWRlcik6CisgICAgICAgIChW
aWJyYXRpb25Qcm92aWRlcjo6dmlicmF0ZSk6CisgICAgICAgIChWaWJyYXRpb25Qcm92aWRlcjo6
Y2FuY2VsVmlicmF0aW9uKToKKyAgICAgICAgKFZpYnJhdGlvblByb3ZpZGVyOjpzZXRWaWJyYXRp
b25DbGllbnRDYWxsYmFja3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL1ZpYnJhdGlv
blByb3ZpZGVyLmg6IEFkZGVkLgorICAgICAgICAoVmlicmF0aW9uUHJvdmlkZXIpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmNwcDoKKyAgICAgICAgKF9Fd2tfQ29u
dGV4dCk6CisgICAgICAgIChjcmVhdGVEZWZhdWx0RXdrQ29udGV4dCk6CisgICAgICAgIChld2tf
Y29udGV4dF92aWJyYXRpb25fY2xpZW50X2NhbGxiYWNrc19zZXQpOiBBUEkgdG8gc2V0IHZpYnJh
dGlvbgorICAgICAgICBjbGllbnQgY2FsbGJhY2tzLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
ZWZsL2V3a19jb250ZXh0Lmg6CisKIDIwMTItMDctMTYgIFN1ZGFyc2FuYSBOYWdpbmVuaSAgPHN1
ZGFyc2FuYS5uYWdpbmVuaUBsaW51eC5pbnRlbC5jb20+CiAKICAgICAgICAgW1dLMl0gQWRkIFZp
YnJhdGlvbiBBUEkgaW50ZWdyYXRpb24gdG8gV2ViQ29udGV4dCBhbmQgV2ViUGFnZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UgYi9Tb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybUVmbC5jbWFrZQppbmRleCA5N2Y3MDk1Li43ZmRmZGE1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bUVmbC5jbWFrZQpAQCAtMzYsNiArMzYsNyBAQCBMSVNUKEFQUEVORCBXZWJLaXQyX1NPVVJDRVMK
IAogICAgIFVJUHJvY2Vzcy9BUEkvZWZsL0JhdHRlcnlQcm92aWRlci5jcHAKICAgICBVSVByb2Nl
c3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1wbC5jcHAKKyAgICBVSVByb2Nlc3MvQVBJL2VmbC9WaWJy
YXRpb25Qcm92aWRlci5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5jcHAK
ICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29va2llX21hbmFnZXIuY3BwCiAgICAgVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX2ludGVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL1ZpYnJhdGlvblByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL1ZpYnJhdGlvblByb3ZpZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi45NTU3ZThmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvVmlicmF0aW9uUHJvdmlkZXIuY3BwCkBAIC0wLDAgKzEsMTA4
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
VmlicmF0aW9uUHJvdmlkZXIuaCIKKworI2lmIEVOQUJMRShWSUJSQVRJT04pCisKKyNpbmNsdWRl
ICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRlICJXS1ZpYnJhdGlvbi5oIgorI2luY2x1ZGUgPEV2YXMu
aD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKKy8qKgorICogXHN0cnVjdCAgX0V3a19W
aWJyYXRpb25fQ2xpZW50CisgKiBAYnJpZWYgICBDb250YWlucyB0aGUgdmlicmF0aW9uIGNsaWVu
dCBjYWxsYmFja3MuCisgKi8KK3N0cnVjdCBfRXdrX1ZpYnJhdGlvbl9DbGllbnQgeworICAgIEV3
a19WaWJyYXRpb25fQ2xpZW50X1ZpYnJhdGVfQ2IgdmlicmF0ZTsKKyAgICBFd2tfVmlicmF0aW9u
X0NsaWVudF9WaWJyYXRpb25fQ2FuY2VsX0NiIGNhbmNlbFZpYnJhdGlvbjsKKyAgICB2b2lkKiB1
c2VyRGF0YTsKKworICAgIF9Fd2tfVmlicmF0aW9uX0NsaWVudChFd2tfVmlicmF0aW9uX0NsaWVu
dF9WaWJyYXRlX0NiIHZpYnJhdGUsIEV3a19WaWJyYXRpb25fQ2xpZW50X1ZpYnJhdGlvbl9DYW5j
ZWxfQ2IgY2FuY2VsVmlicmF0aW9uLCB2b2lkICp1c2VyRGF0YSkKKyAgICAgICAgOiB2aWJyYXRl
KHZpYnJhdGUpCisgICAgICAgICwgY2FuY2VsVmlicmF0aW9uKGNhbmNlbFZpYnJhdGlvbikKKyAg
ICAgICAgLCB1c2VyRGF0YSh1c2VyRGF0YSkKKyAgICB7IH0KK307CisKK3N0YXRpYyBpbmxpbmUg
VmlicmF0aW9uUHJvdmlkZXIqIHRvVmlicmF0aW9uUHJvdmlkZXIoY29uc3Qgdm9pZCogY2xpZW50
SW5mbykKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VmlicmF0aW9uUHJvdmlkZXIqPihjb25z
dF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7Cit9CisKK3N0YXRpYyB2b2lkIHZpYnJhdGVDYWxs
YmFjayhXS1ZpYnJhdGlvblJlZiB2aWJyYXRpb25SZWYsIHVpbnQ2NF90IHZpYnJhdGlvblRpbWUs
IGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgdG9WaWJyYXRpb25Qcm92aWRlcihjbGll
bnRJbmZvKS0+dmlicmF0ZSh2aWJyYXRpb25UaW1lKTsKK30KKworc3RhdGljIHZvaWQgY2FuY2Vs
VmlicmF0aW9uQ2FsbGJhY2soV0tWaWJyYXRpb25SZWYgdmlicmF0aW9uUmVmLCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKQoreworICAgIHRvVmlicmF0aW9uUHJvdmlkZXIoY2xpZW50SW5mbyktPmNh
bmNlbFZpYnJhdGlvbigpOworfQorCitQYXNzUmVmUHRyPFZpYnJhdGlvblByb3ZpZGVyPiBWaWJy
YXRpb25Qcm92aWRlcjo6Y3JlYXRlKFdLVmlicmF0aW9uUmVmIHdrVmlicmF0aW9uUmVmKQorewor
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgVmlicmF0aW9uUHJvdmlkZXIod2tWaWJyYXRpb25SZWYp
KTsKK30KKworVmlicmF0aW9uUHJvdmlkZXI6OlZpYnJhdGlvblByb3ZpZGVyKFdLVmlicmF0aW9u
UmVmIHdrVmlicmF0aW9uUmVmKQorICAgIDogbV93a1ZpYnJhdGlvblJlZih3a1ZpYnJhdGlvblJl
ZikKK3sKKyAgICBBU1NFUlQod2tWaWJyYXRpb25SZWYpOworCisgICAgV0tWaWJyYXRpb25Qcm92
aWRlciB3a1ZpYnJhdGlvblByb3ZpZGVyID0geworICAgICAgICBrV0tWaWJyYXRpb25Qcm92aWRl
ckN1cnJlbnRWZXJzaW9uLAorICAgICAgICB0aGlzLCAvLyBjbGllbnRJbmZvCisgICAgICAgIHZp
YnJhdGVDYWxsYmFjaywKKyAgICAgICAgY2FuY2VsVmlicmF0aW9uQ2FsbGJhY2sKKyAgICB9Owor
ICAgIFdLVmlicmF0aW9uU2V0UHJvdmlkZXIobV93a1ZpYnJhdGlvblJlZi5nZXQoKSwgJndrVmli
cmF0aW9uUHJvdmlkZXIpOworfQorCitWaWJyYXRpb25Qcm92aWRlcjo6flZpYnJhdGlvblByb3Zp
ZGVyKCkKK3sKK30KKwordm9pZCBWaWJyYXRpb25Qcm92aWRlcjo6dmlicmF0ZSh1aW50NjRfdCB2
aWJyYXRpb25UaW1lKQoreworICAgIGlmIChtX3ZpYnJhdGlvbkNsaWVudCAmJiBtX3ZpYnJhdGlv
bkNsaWVudC0+dmlicmF0ZSkKKyAgICAgICAgbV92aWJyYXRpb25DbGllbnQtPnZpYnJhdGUodmli
cmF0aW9uVGltZSwgbV92aWJyYXRpb25DbGllbnQtPnVzZXJEYXRhKTsKK30KKwordm9pZCBWaWJy
YXRpb25Qcm92aWRlcjo6Y2FuY2VsVmlicmF0aW9uKCkKK3sKKyAgICBpZiAobV92aWJyYXRpb25D
bGllbnQgJiYgbV92aWJyYXRpb25DbGllbnQtPmNhbmNlbFZpYnJhdGlvbikKKyAgICAgICAgbV92
aWJyYXRpb25DbGllbnQtPmNhbmNlbFZpYnJhdGlvbihtX3ZpYnJhdGlvbkNsaWVudC0+dXNlckRh
dGEpOworfQorCit2b2lkIFZpYnJhdGlvblByb3ZpZGVyOjpzZXRWaWJyYXRpb25DbGllbnRDYWxs
YmFja3MoRXdrX1ZpYnJhdGlvbl9DbGllbnRfVmlicmF0ZV9DYiB2aWJyYXRlLCBFd2tfVmlicmF0
aW9uX0NsaWVudF9WaWJyYXRpb25fQ2FuY2VsX0NiIGNhbmNlbFZpYnJhdGlvbiwgdm9pZCAqZGF0
YSkKK3sKKyAgICBtX3ZpYnJhdGlvbkNsaWVudCA9IGFkb3B0UHRyKG5ldyBFd2tfVmlicmF0aW9u
X0NsaWVudCh2aWJyYXRlLCBjYW5jZWxWaWJyYXRpb24sIGRhdGEpKTsKK30KKworI2VuZGlmIC8v
IEVOQUJMRShWSUJSQVRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9WaWJyYXRpb25Qcm92aWRlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvVmlicmF0aW9uUHJvdmlkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5hZmUzOTQ5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvVmlicmF0aW9uUHJvdmlkZXIuaApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIFZpYnJhdGlvblByb3ZpZGVyX2gKKyNkZWZpbmUgVmlicmF0aW9u
UHJvdmlkZXJfaAorCisjaWYgRU5BQkxFKFZJQlJBVElPTikKKworI2luY2x1ZGUgIldLUmV0YWlu
UHRyLmgiCisjaW5jbHVkZSAiZXdrX2NvbnRleHQuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0
ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK3R5cGVkZWYgc3RydWN0IF9Fd2tf
VmlicmF0aW9uX0NsaWVudCBFd2tfVmlicmF0aW9uX0NsaWVudDsKKworY2xhc3MgVmlicmF0aW9u
UHJvdmlkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxWaWJyYXRpb25Qcm92aWRlcj4geworcHVibGlj
OgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFZpYnJhdGlvblByb3ZpZGVyPiBjcmVhdGUoV0tWaWJy
YXRpb25SZWYpOworICAgIHZpcnR1YWwgflZpYnJhdGlvblByb3ZpZGVyKCk7CisKKyAgICB2b2lk
IHZpYnJhdGUodWludDY0X3QgdmlicmF0aW9uVGltZSk7CisgICAgdm9pZCBjYW5jZWxWaWJyYXRp
b24oKTsKKyAgICB2b2lkIHNldFZpYnJhdGlvbkNsaWVudENhbGxiYWNrcyhFd2tfVmlicmF0aW9u
X0NsaWVudF9WaWJyYXRlX0NiLCBFd2tfVmlicmF0aW9uX0NsaWVudF9WaWJyYXRpb25fQ2FuY2Vs
X0NiLCB2b2lkKik7CisKK3ByaXZhdGU6CisgICAgVmlicmF0aW9uUHJvdmlkZXIoV0tWaWJyYXRp
b25SZWYpOworCisgICAgV0tSZXRhaW5QdHI8V0tWaWJyYXRpb25SZWY+IG1fd2tWaWJyYXRpb25S
ZWY7CisgICAgT3duUHRyPEV3a19WaWJyYXRpb25fQ2xpZW50PiBtX3ZpYnJhdGlvbkNsaWVudDsK
K307CisKKyNlbmRpZiAvLyBFTkFCTEUoVklCUkFUSU9OKQorCisjZW5kaWYgLy8gVmlicmF0aW9u
UHJvdmlkZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX2NvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Nv
bnRleHQuY3BwCmluZGV4IDIxYzE1N2MuLjA5OTY3NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5jcHAKQEAgLTIyLDYgKzIyLDcgQEAKICNp
bmNsdWRlICJld2tfY29udGV4dC5oIgogCiAjaW5jbHVkZSAiQmF0dGVyeVByb3ZpZGVyLmgiCisj
aW5jbHVkZSAiVmlicmF0aW9uUHJvdmlkZXIuaCIKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKICNp
bmNsdWRlICJXS1JldGFpblB0ci5oIgogI2luY2x1ZGUgImV3a19jb250ZXh0X3ByaXZhdGUuaCIK
QEAgLTM2LDYgKzM3LDkgQEAgc3RydWN0IF9Fd2tfQ29udGV4dCB7CiAjaWYgRU5BQkxFKEJBVFRF
UllfU1RBVFVTKQogICAgIFJlZlB0cjxCYXR0ZXJ5UHJvdmlkZXI+IGJhdHRlcnlQcm92aWRlcjsK
ICNlbmRpZgorI2lmIEVOQUJMRShWSUJSQVRJT04pCisgICAgUmVmUHRyPFZpYnJhdGlvblByb3Zp
ZGVyPiB2aWJyYXRpb25Qcm92aWRlcjsKKyNlbmRpZgogCiAgICAgX0V3a19Db250ZXh0KFdLQ29u
dGV4dFJlZiBjb250ZXh0UmVmKQogICAgICAgICA6IGNvbnRleHQoY29udGV4dFJlZikKQEAgLTc0
LDYgKzc4LDExIEBAIHN0YXRpYyBpbmxpbmUgRXdrX0NvbnRleHQqIGNyZWF0ZURlZmF1bHRFd2tD
b250ZXh0KCkKICAgICBld2tDb250ZXh0LT5iYXR0ZXJ5UHJvdmlkZXIgPSBCYXR0ZXJ5UHJvdmlk
ZXI6OmNyZWF0ZSh3a0JhdHRlcnlNYW5hZ2VyKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKFZJQlJB
VElPTikKKyAgICBXS1ZpYnJhdGlvblJlZiB3a1ZpYnJhdGlvblJlZiA9IFdLQ29udGV4dEdldFZp
YnJhdGlvbih3a0NvbnRleHQpOworICAgIGV3a0NvbnRleHQtPnZpYnJhdGlvblByb3ZpZGVyID0g
VmlicmF0aW9uUHJvdmlkZXI6OmNyZWF0ZSh3a1ZpYnJhdGlvblJlZik7CisjZW5kaWYKKwogICAg
IHJldHVybiBld2tDb250ZXh0OwogfQogCkBAIC04MywzICs5MiwxMiBAQCBFd2tfQ29udGV4dCog
ZXdrX2NvbnRleHRfZGVmYXVsdF9nZXQoKQogCiAgICAgcmV0dXJuIGRlZmF1bHRDb250ZXh0Owog
fQorCit2b2lkIGV3a19jb250ZXh0X3ZpYnJhdGlvbl9jbGllbnRfY2FsbGJhY2tzX3NldChjb25z
dCBFd2tfQ29udGV4dCogZXdrQ29udGV4dCwgRXdrX1ZpYnJhdGlvbl9DbGllbnRfVmlicmF0ZV9D
YiB2aWJyYXRlLCBFd2tfVmlicmF0aW9uX0NsaWVudF9WaWJyYXRpb25fQ2FuY2VsX0NiIGNhbmNl
bCwgdm9pZCAqZGF0YSkKK3sKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihld2tDb250
ZXh0KTsKKworI2lmIEVOQUJMRShWSUJSQVRJT04pCisgICAgZXdrQ29udGV4dC0+dmlicmF0aW9u
UHJvdmlkZXItPnNldFZpYnJhdGlvbkNsaWVudENhbGxiYWNrcyh2aWJyYXRlLCBjYW5jZWwsIGRh
dGEpOworI2VuZGlmCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfY29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X2NvbnRleHQuaAppbmRleCBlODkwMzc3Li4xZmM4NGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmgKQEAgLTU1LDYgKzU1LDMxIEBAIEVBUEkg
RXdrX0NvbnRleHQgKmV3a19jb250ZXh0X2RlZmF1bHRfZ2V0KCk7CiAgKi8KIEVBUEkgRXdrX0Nv
b2tpZV9NYW5hZ2VyICpld2tfY29udGV4dF9jb29raWVfbWFuYWdlcl9nZXQoY29uc3QgRXdrX0Nv
bnRleHQgKmNvbnRleHQpOwogCisvKioKKyAqIEB0eXBlZGVmIEV3a19WaWJyYXRpb25fQ2xpZW50
X1ZpYnJhdGVfQ2IgRXdrX1ZpYnJhdGlvbl9DbGllbnRfVmlicmF0ZV9DYgorICogQGJyaWVmIFR5
cGUgZGVmaW5pdGlvbiBmb3IgYSBmdW5jdGlvbiB0aGF0IHdpbGwgYmUgY2FsbGVkIGJhY2sgd2hl
biB2aWJyYXRlCisgKiByZXF1ZXN0IHJlY2VpdmVlZCBmcm9tIHRoZSB2aWJyYXRpb24gY29udHJv
bGxlci4KKyAqLwordHlwZWRlZiB2b2lkICgqRXdrX1ZpYnJhdGlvbl9DbGllbnRfVmlicmF0ZV9D
YikodWludDY0X3QgdmlicmF0aW9uX3RpbWUsIHZvaWQgKnVzZXJfZGF0YSk7CisKKy8qKgorICog
QHR5cGVkZWYgRXdrX1ZpYnJhdGlvbl9DbGllbnRfVmlicmF0aW9uX0NhbmNlbF9DYiBFd2tfVmli
cmF0aW9uX0NsaWVudF9WaWJyYXRpb25fQ2FuY2VsX0NiCisgKiBAYnJpZWYgVHlwZSBkZWZpbml0
aW9uIGZvciBhIGZ1bmN0aW9uIHRoYXQgd2lsbCBiZSBjYWxsZWQgYmFjayB3aGVuIGNhbmNlbAor
ICogdmlicmF0aW9uIHJlcXVlc3QgcmVjZWl2ZWVkIGZyb20gdGhlIHZpYnJhdGlvbiBjb250cm9s
bGVyLgorICovCit0eXBlZGVmIHZvaWQgKCpFd2tfVmlicmF0aW9uX0NsaWVudF9WaWJyYXRpb25f
Q2FuY2VsX0NiKSh2b2lkICp1c2VyX2RhdGEpOworCisvKioKKyAqIFNldHMgdmlicmF0aW9uIGNs
aWVudCBjYWxsYmFja3MgdG8gaGFuZGxlIHRoZSB0YWN0aWxlIGZlZWRiYWNrIGluIHRoZSBmb3Jt
IG9mCisgKiB2aWJyYXRpb24gaW4gdGhlIGNsaW50IGFwcGxpYXRpb24gd2hlbiB0aGUgY29udGVu
dCBhc2sgZm9yIHZpYnJhdGlvbi4KKyAqCisgKiBAcGFyYW0gY29udGV4dCBjb250ZXh0IG9iamVj
dCB0byBzZXQgdmlicmF0aW9uIGNsaWVudCBjYWxsYmFja3MuCisgKiBAcGFyYW0gdmlicmF0ZSBU
aGUgZnVuY3Rpb24gdG8gY2FsbCB3aGVuIHRoZSB2aWJyYXRlIHJlcXVlc3QgcmVjZWl2ZWQgZnJv
bSB0aGUgY29udHJvbGxlci4KKyAqIEBwYXJhbSBjYW5jZWwgVGhlIGZ1bmN0aW9uIHRvIGNhbGwg
d2hlbiB0aGUgY2FuY2VsIHZpYnJhdGlvbiByZXF1ZXN0IHJlY2VpdmVkIGZyb20gdGhlIGNvbnRy
b2xsZXIuCisgKiBAcGFyYW0gZGF0YSBVc2VyIGRhdGEgKG1heSBiZSBAYyBOVUxMKS4KKyAqLwor
RUFQSSB2b2lkIGV3a19jb250ZXh0X3ZpYnJhdGlvbl9jbGllbnRfY2FsbGJhY2tzX3NldChjb25z
dCBFd2tfQ29udGV4dCAqY29udGV4dCwgRXdrX1ZpYnJhdGlvbl9DbGllbnRfVmlicmF0ZV9DYiB2
aWJyYXRlLCBFd2tfVmlicmF0aW9uX0NsaWVudF9WaWJyYXRpb25fQ2FuY2VsX0NiIGNhbmNlbCwg
dm9pZCAqZGF0YSk7CisKICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153500</attachid>
            <date>2012-07-20 07:17:45 -0700</date>
            <delta_ts>2012-07-20 12:10:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>91371.patch</filename>
            <type>text/plain</type>
            <size>12961</size>
            <attacher name="Sudarsana Nagineni (babu)">naginenis</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktp
dDIvQ01ha2VMaXN0cy50eHQKaW5kZXggMDRjYzcxOS4uN2VjYmQ2MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0
cy50eHQKQEAgLTQ1LDYgKzQ1LDcgQEAgU0VUKFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklFUwog
ICAgICIke1dFQkNPUkVfRElSfSIKICAgICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9iYXR0ZXJ5
IgogICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL2ludGVudHMiCisgICAgIiR7V0VCQ09SRV9E
SVJ9L01vZHVsZXMvdmlicmF0aW9uIgogICAgICIke1dFQkNPUkVfRElSfS9hY2Nlc3NpYmlsaXR5
IgogICAgICIke1dFQkNPUkVfRElSfS9iaW5kaW5ncy9qcyIKICAgICAiJHtXRUJDT1JFX0RJUn0v
YmluZGluZ3MiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNWY0OTM3MC4uNTY2YTBmMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDQwIEBACisyMDEyLTA3LTIwICBTdWRhcnNhbmEgTmFnaW5lbmkgIDxzdWRhcnNhbmEu
bmFnaW5lbmlAbGludXguaW50ZWwuY29tPgorCisgICAgICAgIFtFRkxdW1dLMl0gQWRkIHZpYnJh
dGlvbiBjbGllbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTkxMzcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW1wbGVtZW50IFZpYnJhdGlvbiBwcm92aWRlciBmb3IgV2ViS2l0MiBFRkwgYW5kIGFkZCBh
biBBUEkgdG8gc2V0CisgICAgICAgIHZpYnJhdGlvbiBjbGllbnQgY2FsbGJhY2tzIGJ5IGFwcGxp
Y2F0aW9uIHRvIGhhbmRsZSB0aGUgdGFjdGlsZQorICAgICAgICBmZWVkYmFjayBpbiB0aGUgYXBw
bGljYXRpb24gd2hlbiB0aGUgcGFnZSBjb250ZW50IGFzayBmb3IgdmlicmF0aW9uLgorCisgICAg
ICAgICogQ01ha2VMaXN0cy50eHQ6IEFkZCBXZWJDb3JlL01vZHVsZXMvdmlicmF0aW9uIHRvIGlu
Y2x1ZGUgcGF0aC4KKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZTogQWRkIFZpYnJhdGlvblBy
b3ZpZGVyLmNwcCBmaWxlIHRvIHRoZSBidWlsZAorICAgICAgICBzeXN0ZW0uCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9lZmwvVmlicmF0aW9uUHJvdmlkZXIuY3BwOiBBZGRlZC4KKyAgICAgICAg
KF9Fd2tfVmlicmF0aW9uX0NsaWVudCk6IFN0cnVjdHVyZSBjb250YWlucyB0aGUgdmlicmF0aW9u
IGNsaWVudAorICAgICAgICBjYWxsYmFja3MuCisgICAgICAgIChfRXdrX1ZpYnJhdGlvbl9DbGll
bnQ6Ol9Fd2tfVmlicmF0aW9uX0NsaWVudCk6CisgICAgICAgICh0b1ZpYnJhdGlvblByb3ZpZGVy
KTogSGVscGVyIGZ1bmN0aW9uIHRvIGNhc3QgdGhlIGNsaWVudGluZm8gdG8KKyAgICAgICAgVmli
cmF0aW9uUHJvdmlkZXIuCisgICAgICAgICh2aWJyYXRlQ2FsbGJhY2spOgorICAgICAgICAoY2Fu
Y2VsVmlicmF0aW9uQ2FsbGJhY2spOgorICAgICAgICAoVmlicmF0aW9uUHJvdmlkZXI6OmNyZWF0
ZSk6CisgICAgICAgIChWaWJyYXRpb25Qcm92aWRlcjo6VmlicmF0aW9uUHJvdmlkZXIpOgorICAg
ICAgICAoVmlicmF0aW9uUHJvdmlkZXI6On5WaWJyYXRpb25Qcm92aWRlcik6CisgICAgICAgIChW
aWJyYXRpb25Qcm92aWRlcjo6dmlicmF0ZSk6CisgICAgICAgIChWaWJyYXRpb25Qcm92aWRlcjo6
Y2FuY2VsVmlicmF0aW9uKToKKyAgICAgICAgKFZpYnJhdGlvblByb3ZpZGVyOjpzZXRWaWJyYXRp
b25DbGllbnRDYWxsYmFja3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL1ZpYnJhdGlv
blByb3ZpZGVyLmg6IEFkZGVkLgorICAgICAgICAoVmlicmF0aW9uUHJvdmlkZXIpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmNwcDoKKyAgICAgICAgKF9Fd2tfQ29u
dGV4dCk6CisgICAgICAgIChjcmVhdGVEZWZhdWx0RXdrQ29udGV4dCk6CisgICAgICAgIChld2tf
Y29udGV4dF92aWJyYXRpb25fY2xpZW50X2NhbGxiYWNrc19zZXQpOiBBUEkgdG8gc2V0IHZpYnJh
dGlvbgorICAgICAgICBjbGllbnQgY2FsbGJhY2tzLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
ZWZsL2V3a19jb250ZXh0Lmg6CisKIDIwMTItMDctMTYgIFN1ZGFyc2FuYSBOYWdpbmVuaSAgPHN1
ZGFyc2FuYS5uYWdpbmVuaUBsaW51eC5pbnRlbC5jb20+CiAKICAgICAgICAgW1dLMl0gQWRkIFZp
YnJhdGlvbiBBUEkgaW50ZWdyYXRpb24gdG8gV2ViQ29udGV4dCBhbmQgV2ViUGFnZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UgYi9Tb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybUVmbC5jbWFrZQppbmRleCA5N2Y3MDk1Li43ZmRmZGE1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bUVmbC5jbWFrZQpAQCAtMzYsNiArMzYsNyBAQCBMSVNUKEFQUEVORCBXZWJLaXQyX1NPVVJDRVMK
IAogICAgIFVJUHJvY2Vzcy9BUEkvZWZsL0JhdHRlcnlQcm92aWRlci5jcHAKICAgICBVSVByb2Nl
c3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1wbC5jcHAKKyAgICBVSVByb2Nlc3MvQVBJL2VmbC9WaWJy
YXRpb25Qcm92aWRlci5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5jcHAK
ICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29va2llX21hbmFnZXIuY3BwCiAgICAgVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX2ludGVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL1ZpYnJhdGlvblByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL1ZpYnJhdGlvblByb3ZpZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5hOTY5MTA2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvVmlicmF0aW9uUHJvdmlkZXIuY3BwCkBAIC0wLDAgKzEsMTA4
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
VmlicmF0aW9uUHJvdmlkZXIuaCIKKworI2lmIEVOQUJMRShWSUJSQVRJT04pCisKKyNpbmNsdWRl
ICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRlICJXS1ZpYnJhdGlvbi5oIgorI2luY2x1ZGUgPEV2YXMu
aD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKKy8qKgorICogXHN0cnVjdCAgX0V3a19W
aWJyYXRpb25fQ2xpZW50CisgKiBAYnJpZWYgICBDb250YWlucyB0aGUgdmlicmF0aW9uIGNsaWVu
dCBjYWxsYmFja3MuCisgKi8KK3N0cnVjdCBfRXdrX1ZpYnJhdGlvbl9DbGllbnQgeworICAgIEV3
a19WaWJyYXRpb25fQ2xpZW50X1ZpYnJhdGVfQ2IgdmlicmF0ZTsKKyAgICBFd2tfVmlicmF0aW9u
X0NsaWVudF9WaWJyYXRpb25fQ2FuY2VsX0NiIGNhbmNlbFZpYnJhdGlvbjsKKyAgICB2b2lkKiB1
c2VyRGF0YTsKKworICAgIF9Fd2tfVmlicmF0aW9uX0NsaWVudChFd2tfVmlicmF0aW9uX0NsaWVu
dF9WaWJyYXRlX0NiIHZpYnJhdGUsIEV3a19WaWJyYXRpb25fQ2xpZW50X1ZpYnJhdGlvbl9DYW5j
ZWxfQ2IgY2FuY2VsVmlicmF0aW9uLCB2b2lkKiB1c2VyRGF0YSkKKyAgICAgICAgOiB2aWJyYXRl
KHZpYnJhdGUpCisgICAgICAgICwgY2FuY2VsVmlicmF0aW9uKGNhbmNlbFZpYnJhdGlvbikKKyAg
ICAgICAgLCB1c2VyRGF0YSh1c2VyRGF0YSkKKyAgICB7IH0KK307CisKK3N0YXRpYyBpbmxpbmUg
VmlicmF0aW9uUHJvdmlkZXIqIHRvVmlicmF0aW9uUHJvdmlkZXIoY29uc3Qgdm9pZCogY2xpZW50
SW5mbykKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VmlicmF0aW9uUHJvdmlkZXIqPihjb25z
dF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7Cit9CisKK3N0YXRpYyB2b2lkIHZpYnJhdGVDYWxs
YmFjayhXS1ZpYnJhdGlvblJlZiB2aWJyYXRpb25SZWYsIHVpbnQ2NF90IHZpYnJhdGlvblRpbWUs
IGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgdG9WaWJyYXRpb25Qcm92aWRlcihjbGll
bnRJbmZvKS0+dmlicmF0ZSh2aWJyYXRpb25UaW1lKTsKK30KKworc3RhdGljIHZvaWQgY2FuY2Vs
VmlicmF0aW9uQ2FsbGJhY2soV0tWaWJyYXRpb25SZWYgdmlicmF0aW9uUmVmLCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKQoreworICAgIHRvVmlicmF0aW9uUHJvdmlkZXIoY2xpZW50SW5mbyktPmNh
bmNlbFZpYnJhdGlvbigpOworfQorCitQYXNzUmVmUHRyPFZpYnJhdGlvblByb3ZpZGVyPiBWaWJy
YXRpb25Qcm92aWRlcjo6Y3JlYXRlKFdLVmlicmF0aW9uUmVmIHdrVmlicmF0aW9uUmVmKQorewor
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgVmlicmF0aW9uUHJvdmlkZXIod2tWaWJyYXRpb25SZWYp
KTsKK30KKworVmlicmF0aW9uUHJvdmlkZXI6OlZpYnJhdGlvblByb3ZpZGVyKFdLVmlicmF0aW9u
UmVmIHdrVmlicmF0aW9uUmVmKQorICAgIDogbV93a1ZpYnJhdGlvblJlZih3a1ZpYnJhdGlvblJl
ZikKK3sKKyAgICBBU1NFUlQod2tWaWJyYXRpb25SZWYpOworCisgICAgV0tWaWJyYXRpb25Qcm92
aWRlciB3a1ZpYnJhdGlvblByb3ZpZGVyID0geworICAgICAgICBrV0tWaWJyYXRpb25Qcm92aWRl
ckN1cnJlbnRWZXJzaW9uLAorICAgICAgICB0aGlzLCAvLyBjbGllbnRJbmZvCisgICAgICAgIHZp
YnJhdGVDYWxsYmFjaywKKyAgICAgICAgY2FuY2VsVmlicmF0aW9uQ2FsbGJhY2sKKyAgICB9Owor
ICAgIFdLVmlicmF0aW9uU2V0UHJvdmlkZXIobV93a1ZpYnJhdGlvblJlZi5nZXQoKSwgJndrVmli
cmF0aW9uUHJvdmlkZXIpOworfQorCitWaWJyYXRpb25Qcm92aWRlcjo6flZpYnJhdGlvblByb3Zp
ZGVyKCkKK3sKK30KKwordm9pZCBWaWJyYXRpb25Qcm92aWRlcjo6dmlicmF0ZSh1aW50NjRfdCB2
aWJyYXRpb25UaW1lKQoreworICAgIGlmIChtX3ZpYnJhdGlvbkNsaWVudCAmJiBtX3ZpYnJhdGlv
bkNsaWVudC0+dmlicmF0ZSkKKyAgICAgICAgbV92aWJyYXRpb25DbGllbnQtPnZpYnJhdGUodmli
cmF0aW9uVGltZSwgbV92aWJyYXRpb25DbGllbnQtPnVzZXJEYXRhKTsKK30KKwordm9pZCBWaWJy
YXRpb25Qcm92aWRlcjo6Y2FuY2VsVmlicmF0aW9uKCkKK3sKKyAgICBpZiAobV92aWJyYXRpb25D
bGllbnQgJiYgbV92aWJyYXRpb25DbGllbnQtPmNhbmNlbFZpYnJhdGlvbikKKyAgICAgICAgbV92
aWJyYXRpb25DbGllbnQtPmNhbmNlbFZpYnJhdGlvbihtX3ZpYnJhdGlvbkNsaWVudC0+dXNlckRh
dGEpOworfQorCit2b2lkIFZpYnJhdGlvblByb3ZpZGVyOjpzZXRWaWJyYXRpb25DbGllbnRDYWxs
YmFja3MoRXdrX1ZpYnJhdGlvbl9DbGllbnRfVmlicmF0ZV9DYiB2aWJyYXRlLCBFd2tfVmlicmF0
aW9uX0NsaWVudF9WaWJyYXRpb25fQ2FuY2VsX0NiIGNhbmNlbFZpYnJhdGlvbiwgdm9pZCogZGF0
YSkKK3sKKyAgICBtX3ZpYnJhdGlvbkNsaWVudCA9IGFkb3B0UHRyKG5ldyBFd2tfVmlicmF0aW9u
X0NsaWVudCh2aWJyYXRlLCBjYW5jZWxWaWJyYXRpb24sIGRhdGEpKTsKK30KKworI2VuZGlmIC8v
IEVOQUJMRShWSUJSQVRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9WaWJyYXRpb25Qcm92aWRlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvVmlicmF0aW9uUHJvdmlkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5hZmUzOTQ5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvVmlicmF0aW9uUHJvdmlkZXIuaApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIFZpYnJhdGlvblByb3ZpZGVyX2gKKyNkZWZpbmUgVmlicmF0aW9u
UHJvdmlkZXJfaAorCisjaWYgRU5BQkxFKFZJQlJBVElPTikKKworI2luY2x1ZGUgIldLUmV0YWlu
UHRyLmgiCisjaW5jbHVkZSAiZXdrX2NvbnRleHQuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0
ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK3R5cGVkZWYgc3RydWN0IF9Fd2tf
VmlicmF0aW9uX0NsaWVudCBFd2tfVmlicmF0aW9uX0NsaWVudDsKKworY2xhc3MgVmlicmF0aW9u
UHJvdmlkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxWaWJyYXRpb25Qcm92aWRlcj4geworcHVibGlj
OgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFZpYnJhdGlvblByb3ZpZGVyPiBjcmVhdGUoV0tWaWJy
YXRpb25SZWYpOworICAgIHZpcnR1YWwgflZpYnJhdGlvblByb3ZpZGVyKCk7CisKKyAgICB2b2lk
IHZpYnJhdGUodWludDY0X3QgdmlicmF0aW9uVGltZSk7CisgICAgdm9pZCBjYW5jZWxWaWJyYXRp
b24oKTsKKyAgICB2b2lkIHNldFZpYnJhdGlvbkNsaWVudENhbGxiYWNrcyhFd2tfVmlicmF0aW9u
X0NsaWVudF9WaWJyYXRlX0NiLCBFd2tfVmlicmF0aW9uX0NsaWVudF9WaWJyYXRpb25fQ2FuY2Vs
X0NiLCB2b2lkKik7CisKK3ByaXZhdGU6CisgICAgVmlicmF0aW9uUHJvdmlkZXIoV0tWaWJyYXRp
b25SZWYpOworCisgICAgV0tSZXRhaW5QdHI8V0tWaWJyYXRpb25SZWY+IG1fd2tWaWJyYXRpb25S
ZWY7CisgICAgT3duUHRyPEV3a19WaWJyYXRpb25fQ2xpZW50PiBtX3ZpYnJhdGlvbkNsaWVudDsK
K307CisKKyNlbmRpZiAvLyBFTkFCTEUoVklCUkFUSU9OKQorCisjZW5kaWYgLy8gVmlicmF0aW9u
UHJvdmlkZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX2NvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Nv
bnRleHQuY3BwCmluZGV4IDIxYzE1N2MuLjk2NGUwZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5jcHAKQEAgLTIyLDYgKzIyLDcgQEAKICNp
bmNsdWRlICJld2tfY29udGV4dC5oIgogCiAjaW5jbHVkZSAiQmF0dGVyeVByb3ZpZGVyLmgiCisj
aW5jbHVkZSAiVmlicmF0aW9uUHJvdmlkZXIuaCIKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKICNp
bmNsdWRlICJXS1JldGFpblB0ci5oIgogI2luY2x1ZGUgImV3a19jb250ZXh0X3ByaXZhdGUuaCIK
QEAgLTM2LDYgKzM3LDkgQEAgc3RydWN0IF9Fd2tfQ29udGV4dCB7CiAjaWYgRU5BQkxFKEJBVFRF
UllfU1RBVFVTKQogICAgIFJlZlB0cjxCYXR0ZXJ5UHJvdmlkZXI+IGJhdHRlcnlQcm92aWRlcjsK
ICNlbmRpZgorI2lmIEVOQUJMRShWSUJSQVRJT04pCisgICAgUmVmUHRyPFZpYnJhdGlvblByb3Zp
ZGVyPiB2aWJyYXRpb25Qcm92aWRlcjsKKyNlbmRpZgogCiAgICAgX0V3a19Db250ZXh0KFdLQ29u
dGV4dFJlZiBjb250ZXh0UmVmKQogICAgICAgICA6IGNvbnRleHQoY29udGV4dFJlZikKQEAgLTc0
LDYgKzc4LDExIEBAIHN0YXRpYyBpbmxpbmUgRXdrX0NvbnRleHQqIGNyZWF0ZURlZmF1bHRFd2tD
b250ZXh0KCkKICAgICBld2tDb250ZXh0LT5iYXR0ZXJ5UHJvdmlkZXIgPSBCYXR0ZXJ5UHJvdmlk
ZXI6OmNyZWF0ZSh3a0JhdHRlcnlNYW5hZ2VyKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKFZJQlJB
VElPTikKKyAgICBXS1ZpYnJhdGlvblJlZiB3a1ZpYnJhdGlvblJlZiA9IFdLQ29udGV4dEdldFZp
YnJhdGlvbih3a0NvbnRleHQpOworICAgIGV3a0NvbnRleHQtPnZpYnJhdGlvblByb3ZpZGVyID0g
VmlicmF0aW9uUHJvdmlkZXI6OmNyZWF0ZSh3a1ZpYnJhdGlvblJlZik7CisjZW5kaWYKKwogICAg
IHJldHVybiBld2tDb250ZXh0OwogfQogCkBAIC04MywzICs5MiwxMiBAQCBFd2tfQ29udGV4dCog
ZXdrX2NvbnRleHRfZGVmYXVsdF9nZXQoKQogCiAgICAgcmV0dXJuIGRlZmF1bHRDb250ZXh0Owog
fQorCit2b2lkIGV3a19jb250ZXh0X3ZpYnJhdGlvbl9jbGllbnRfY2FsbGJhY2tzX3NldChFd2tf
Q29udGV4dCogZXdrQ29udGV4dCwgRXdrX1ZpYnJhdGlvbl9DbGllbnRfVmlicmF0ZV9DYiB2aWJy
YXRlLCBFd2tfVmlicmF0aW9uX0NsaWVudF9WaWJyYXRpb25fQ2FuY2VsX0NiIGNhbmNlbCwgdm9p
ZCogZGF0YSkKK3sKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihld2tDb250ZXh0KTsK
KworI2lmIEVOQUJMRShWSUJSQVRJT04pCisgICAgZXdrQ29udGV4dC0+dmlicmF0aW9uUHJvdmlk
ZXItPnNldFZpYnJhdGlvbkNsaWVudENhbGxiYWNrcyh2aWJyYXRlLCBjYW5jZWwsIGRhdGEpOwor
I2VuZGlmCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfY29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRl
eHQuaAppbmRleCBlODkwMzc3Li44NzhkODAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmgKQEAgLTQwLDYgKzQwLDIwIEBAIGV4dGVybiAiQyIg
ewogdHlwZWRlZiBzdHJ1Y3QgX0V3a19Db250ZXh0IEV3a19Db250ZXh0OwogCiAvKioKKyAqIEB0
eXBlZGVmIEV3a19WaWJyYXRpb25fQ2xpZW50X1ZpYnJhdGVfQ2IgRXdrX1ZpYnJhdGlvbl9DbGll
bnRfVmlicmF0ZV9DYgorICogQGJyaWVmIFR5cGUgZGVmaW5pdGlvbiBmb3IgYSBmdW5jdGlvbiB0
aGF0IHdpbGwgYmUgY2FsbGVkIGJhY2sgd2hlbiB2aWJyYXRlCisgKiByZXF1ZXN0IHJlY2VpdmVl
ZCBmcm9tIHRoZSB2aWJyYXRpb24gY29udHJvbGxlci4KKyAqLwordHlwZWRlZiB2b2lkICgqRXdr
X1ZpYnJhdGlvbl9DbGllbnRfVmlicmF0ZV9DYikodWludDY0X3QgdmlicmF0aW9uX3RpbWUsIHZv
aWQgKnVzZXJfZGF0YSk7CisKKy8qKgorICogQHR5cGVkZWYgRXdrX1ZpYnJhdGlvbl9DbGllbnRf
VmlicmF0aW9uX0NhbmNlbF9DYiBFd2tfVmlicmF0aW9uX0NsaWVudF9WaWJyYXRpb25fQ2FuY2Vs
X0NiCisgKiBAYnJpZWYgVHlwZSBkZWZpbml0aW9uIGZvciBhIGZ1bmN0aW9uIHRoYXQgd2lsbCBi
ZSBjYWxsZWQgYmFjayB3aGVuIGNhbmNlbAorICogdmlicmF0aW9uIHJlcXVlc3QgcmVjZWl2ZWVk
IGZyb20gdGhlIHZpYnJhdGlvbiBjb250cm9sbGVyLgorICovCit0eXBlZGVmIHZvaWQgKCpFd2tf
VmlicmF0aW9uX0NsaWVudF9WaWJyYXRpb25fQ2FuY2VsX0NiKSh2b2lkICp1c2VyX2RhdGEpOwor
CisvKioKICAqIEdldHMgZGVmYXVsdCBFd2tfQ29udGV4dCBpbnN0YW5jZS4KICAqCiAgKiBAcmV0
dXJuIEV3a19Db250ZXh0IG9iamVjdC4KQEAgLTU1LDYgKzY5LDE3IEBAIEVBUEkgRXdrX0NvbnRl
eHQgKmV3a19jb250ZXh0X2RlZmF1bHRfZ2V0KCk7CiAgKi8KIEVBUEkgRXdrX0Nvb2tpZV9NYW5h
Z2VyICpld2tfY29udGV4dF9jb29raWVfbWFuYWdlcl9nZXQoY29uc3QgRXdrX0NvbnRleHQgKmNv
bnRleHQpOwogCisvKioKKyAqIFNldHMgdmlicmF0aW9uIGNsaWVudCBjYWxsYmFja3MgdG8gaGFu
ZGxlIHRoZSB0YWN0aWxlIGZlZWRiYWNrIGluIHRoZSBmb3JtIG9mCisgKiB2aWJyYXRpb24gaW4g
dGhlIGNsaWVudCBhcHBsaWNhdGlvbiB3aGVuIHRoZSBjb250ZW50IGFza3MgZm9yIHZpYnJhdGlv
bi4KKyAqCisgKiBAcGFyYW0gY29udGV4dCBjb250ZXh0IG9iamVjdCB0byBzZXQgdmlicmF0aW9u
IGNsaWVudCBjYWxsYmFja3MuCisgKiBAcGFyYW0gdmlicmF0ZSBUaGUgZnVuY3Rpb24gdG8gY2Fs
bCB3aGVuIHRoZSB2aWJyYXRlIHJlcXVlc3QgcmVjZWl2ZWQgZnJvbSB0aGUgY29udHJvbGxlci4K
KyAqIEBwYXJhbSBjYW5jZWwgVGhlIGZ1bmN0aW9uIHRvIGNhbGwgd2hlbiB0aGUgY2FuY2VsIHZp
YnJhdGlvbiByZXF1ZXN0IHJlY2VpdmVkIGZyb20gdGhlIGNvbnRyb2xsZXIuCisgKiBAcGFyYW0g
ZGF0YSBVc2VyIGRhdGEgKG1heSBiZSBAYyBOVUxMKS4KKyAqLworRUFQSSB2b2lkIGV3a19jb250
ZXh0X3ZpYnJhdGlvbl9jbGllbnRfY2FsbGJhY2tzX3NldChFd2tfQ29udGV4dCAqY29udGV4dCwg
RXdrX1ZpYnJhdGlvbl9DbGllbnRfVmlicmF0ZV9DYiB2aWJyYXRlLCBFd2tfVmlicmF0aW9uX0Ns
aWVudF9WaWJyYXRpb25fQ2FuY2VsX0NiIGNhbmNlbCwgdm9pZCAqZGF0YSk7CisKICNpZmRlZiBf
X2NwbHVzcGx1cwogfQogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153558</attachid>
            <date>2012-07-20 12:10:40 -0700</date>
            <delta_ts>2012-07-23 14:45:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>91371.patch</filename>
            <type>text/plain</type>
            <size>13137</size>
            <attacher name="Sudarsana Nagineni (babu)">naginenis</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktp
dDIvQ01ha2VMaXN0cy50eHQKaW5kZXggMDRjYzcxOS4uN2VjYmQ2MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0
cy50eHQKQEAgLTQ1LDYgKzQ1LDcgQEAgU0VUKFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklFUwog
ICAgICIke1dFQkNPUkVfRElSfSIKICAgICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9iYXR0ZXJ5
IgogICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL2ludGVudHMiCisgICAgIiR7V0VCQ09SRV9E
SVJ9L01vZHVsZXMvdmlicmF0aW9uIgogICAgICIke1dFQkNPUkVfRElSfS9hY2Nlc3NpYmlsaXR5
IgogICAgICIke1dFQkNPUkVfRElSfS9iaW5kaW5ncy9qcyIKICAgICAiJHtXRUJDT1JFX0RJUn0v
YmluZGluZ3MiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNWY0OTM3MC4uNTY2YTBmMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDQwIEBACisyMDEyLTA3LTIwICBTdWRhcnNhbmEgTmFnaW5lbmkgIDxzdWRhcnNhbmEu
bmFnaW5lbmlAbGludXguaW50ZWwuY29tPgorCisgICAgICAgIFtFRkxdW1dLMl0gQWRkIHZpYnJh
dGlvbiBjbGllbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTkxMzcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW1wbGVtZW50IFZpYnJhdGlvbiBwcm92aWRlciBmb3IgV2ViS2l0MiBFRkwgYW5kIGFkZCBh
biBBUEkgdG8gc2V0CisgICAgICAgIHZpYnJhdGlvbiBjbGllbnQgY2FsbGJhY2tzIGJ5IGFwcGxp
Y2F0aW9uIHRvIGhhbmRsZSB0aGUgdGFjdGlsZQorICAgICAgICBmZWVkYmFjayBpbiB0aGUgYXBw
bGljYXRpb24gd2hlbiB0aGUgcGFnZSBjb250ZW50IGFzayBmb3IgdmlicmF0aW9uLgorCisgICAg
ICAgICogQ01ha2VMaXN0cy50eHQ6IEFkZCBXZWJDb3JlL01vZHVsZXMvdmlicmF0aW9uIHRvIGlu
Y2x1ZGUgcGF0aC4KKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZTogQWRkIFZpYnJhdGlvblBy
b3ZpZGVyLmNwcCBmaWxlIHRvIHRoZSBidWlsZAorICAgICAgICBzeXN0ZW0uCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9lZmwvVmlicmF0aW9uUHJvdmlkZXIuY3BwOiBBZGRlZC4KKyAgICAgICAg
KF9Fd2tfVmlicmF0aW9uX0NsaWVudCk6IFN0cnVjdHVyZSBjb250YWlucyB0aGUgdmlicmF0aW9u
IGNsaWVudAorICAgICAgICBjYWxsYmFja3MuCisgICAgICAgIChfRXdrX1ZpYnJhdGlvbl9DbGll
bnQ6Ol9Fd2tfVmlicmF0aW9uX0NsaWVudCk6CisgICAgICAgICh0b1ZpYnJhdGlvblByb3ZpZGVy
KTogSGVscGVyIGZ1bmN0aW9uIHRvIGNhc3QgdGhlIGNsaWVudGluZm8gdG8KKyAgICAgICAgVmli
cmF0aW9uUHJvdmlkZXIuCisgICAgICAgICh2aWJyYXRlQ2FsbGJhY2spOgorICAgICAgICAoY2Fu
Y2VsVmlicmF0aW9uQ2FsbGJhY2spOgorICAgICAgICAoVmlicmF0aW9uUHJvdmlkZXI6OmNyZWF0
ZSk6CisgICAgICAgIChWaWJyYXRpb25Qcm92aWRlcjo6VmlicmF0aW9uUHJvdmlkZXIpOgorICAg
ICAgICAoVmlicmF0aW9uUHJvdmlkZXI6On5WaWJyYXRpb25Qcm92aWRlcik6CisgICAgICAgIChW
aWJyYXRpb25Qcm92aWRlcjo6dmlicmF0ZSk6CisgICAgICAgIChWaWJyYXRpb25Qcm92aWRlcjo6
Y2FuY2VsVmlicmF0aW9uKToKKyAgICAgICAgKFZpYnJhdGlvblByb3ZpZGVyOjpzZXRWaWJyYXRp
b25DbGllbnRDYWxsYmFja3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL1ZpYnJhdGlv
blByb3ZpZGVyLmg6IEFkZGVkLgorICAgICAgICAoVmlicmF0aW9uUHJvdmlkZXIpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmNwcDoKKyAgICAgICAgKF9Fd2tfQ29u
dGV4dCk6CisgICAgICAgIChjcmVhdGVEZWZhdWx0RXdrQ29udGV4dCk6CisgICAgICAgIChld2tf
Y29udGV4dF92aWJyYXRpb25fY2xpZW50X2NhbGxiYWNrc19zZXQpOiBBUEkgdG8gc2V0IHZpYnJh
dGlvbgorICAgICAgICBjbGllbnQgY2FsbGJhY2tzLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
ZWZsL2V3a19jb250ZXh0Lmg6CisKIDIwMTItMDctMTYgIFN1ZGFyc2FuYSBOYWdpbmVuaSAgPHN1
ZGFyc2FuYS5uYWdpbmVuaUBsaW51eC5pbnRlbC5jb20+CiAKICAgICAgICAgW1dLMl0gQWRkIFZp
YnJhdGlvbiBBUEkgaW50ZWdyYXRpb24gdG8gV2ViQ29udGV4dCBhbmQgV2ViUGFnZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UgYi9Tb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybUVmbC5jbWFrZQppbmRleCA5N2Y3MDk1Li43ZmRmZGE1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bUVmbC5jbWFrZQpAQCAtMzYsNiArMzYsNyBAQCBMSVNUKEFQUEVORCBXZWJLaXQyX1NPVVJDRVMK
IAogICAgIFVJUHJvY2Vzcy9BUEkvZWZsL0JhdHRlcnlQcm92aWRlci5jcHAKICAgICBVSVByb2Nl
c3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1wbC5jcHAKKyAgICBVSVByb2Nlc3MvQVBJL2VmbC9WaWJy
YXRpb25Qcm92aWRlci5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5jcHAK
ICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29va2llX21hbmFnZXIuY3BwCiAgICAgVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX2ludGVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL1ZpYnJhdGlvblByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL1ZpYnJhdGlvblByb3ZpZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5hOTY5MTA2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvVmlicmF0aW9uUHJvdmlkZXIuY3BwCkBAIC0wLDAgKzEsMTA4
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
VmlicmF0aW9uUHJvdmlkZXIuaCIKKworI2lmIEVOQUJMRShWSUJSQVRJT04pCisKKyNpbmNsdWRl
ICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRlICJXS1ZpYnJhdGlvbi5oIgorI2luY2x1ZGUgPEV2YXMu
aD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKKy8qKgorICogXHN0cnVjdCAgX0V3a19W
aWJyYXRpb25fQ2xpZW50CisgKiBAYnJpZWYgICBDb250YWlucyB0aGUgdmlicmF0aW9uIGNsaWVu
dCBjYWxsYmFja3MuCisgKi8KK3N0cnVjdCBfRXdrX1ZpYnJhdGlvbl9DbGllbnQgeworICAgIEV3
a19WaWJyYXRpb25fQ2xpZW50X1ZpYnJhdGVfQ2IgdmlicmF0ZTsKKyAgICBFd2tfVmlicmF0aW9u
X0NsaWVudF9WaWJyYXRpb25fQ2FuY2VsX0NiIGNhbmNlbFZpYnJhdGlvbjsKKyAgICB2b2lkKiB1
c2VyRGF0YTsKKworICAgIF9Fd2tfVmlicmF0aW9uX0NsaWVudChFd2tfVmlicmF0aW9uX0NsaWVu
dF9WaWJyYXRlX0NiIHZpYnJhdGUsIEV3a19WaWJyYXRpb25fQ2xpZW50X1ZpYnJhdGlvbl9DYW5j
ZWxfQ2IgY2FuY2VsVmlicmF0aW9uLCB2b2lkKiB1c2VyRGF0YSkKKyAgICAgICAgOiB2aWJyYXRl
KHZpYnJhdGUpCisgICAgICAgICwgY2FuY2VsVmlicmF0aW9uKGNhbmNlbFZpYnJhdGlvbikKKyAg
ICAgICAgLCB1c2VyRGF0YSh1c2VyRGF0YSkKKyAgICB7IH0KK307CisKK3N0YXRpYyBpbmxpbmUg
VmlicmF0aW9uUHJvdmlkZXIqIHRvVmlicmF0aW9uUHJvdmlkZXIoY29uc3Qgdm9pZCogY2xpZW50
SW5mbykKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VmlicmF0aW9uUHJvdmlkZXIqPihjb25z
dF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7Cit9CisKK3N0YXRpYyB2b2lkIHZpYnJhdGVDYWxs
YmFjayhXS1ZpYnJhdGlvblJlZiB2aWJyYXRpb25SZWYsIHVpbnQ2NF90IHZpYnJhdGlvblRpbWUs
IGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgdG9WaWJyYXRpb25Qcm92aWRlcihjbGll
bnRJbmZvKS0+dmlicmF0ZSh2aWJyYXRpb25UaW1lKTsKK30KKworc3RhdGljIHZvaWQgY2FuY2Vs
VmlicmF0aW9uQ2FsbGJhY2soV0tWaWJyYXRpb25SZWYgdmlicmF0aW9uUmVmLCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKQoreworICAgIHRvVmlicmF0aW9uUHJvdmlkZXIoY2xpZW50SW5mbyktPmNh
bmNlbFZpYnJhdGlvbigpOworfQorCitQYXNzUmVmUHRyPFZpYnJhdGlvblByb3ZpZGVyPiBWaWJy
YXRpb25Qcm92aWRlcjo6Y3JlYXRlKFdLVmlicmF0aW9uUmVmIHdrVmlicmF0aW9uUmVmKQorewor
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgVmlicmF0aW9uUHJvdmlkZXIod2tWaWJyYXRpb25SZWYp
KTsKK30KKworVmlicmF0aW9uUHJvdmlkZXI6OlZpYnJhdGlvblByb3ZpZGVyKFdLVmlicmF0aW9u
UmVmIHdrVmlicmF0aW9uUmVmKQorICAgIDogbV93a1ZpYnJhdGlvblJlZih3a1ZpYnJhdGlvblJl
ZikKK3sKKyAgICBBU1NFUlQod2tWaWJyYXRpb25SZWYpOworCisgICAgV0tWaWJyYXRpb25Qcm92
aWRlciB3a1ZpYnJhdGlvblByb3ZpZGVyID0geworICAgICAgICBrV0tWaWJyYXRpb25Qcm92aWRl
ckN1cnJlbnRWZXJzaW9uLAorICAgICAgICB0aGlzLCAvLyBjbGllbnRJbmZvCisgICAgICAgIHZp
YnJhdGVDYWxsYmFjaywKKyAgICAgICAgY2FuY2VsVmlicmF0aW9uQ2FsbGJhY2sKKyAgICB9Owor
ICAgIFdLVmlicmF0aW9uU2V0UHJvdmlkZXIobV93a1ZpYnJhdGlvblJlZi5nZXQoKSwgJndrVmli
cmF0aW9uUHJvdmlkZXIpOworfQorCitWaWJyYXRpb25Qcm92aWRlcjo6flZpYnJhdGlvblByb3Zp
ZGVyKCkKK3sKK30KKwordm9pZCBWaWJyYXRpb25Qcm92aWRlcjo6dmlicmF0ZSh1aW50NjRfdCB2
aWJyYXRpb25UaW1lKQoreworICAgIGlmIChtX3ZpYnJhdGlvbkNsaWVudCAmJiBtX3ZpYnJhdGlv
bkNsaWVudC0+dmlicmF0ZSkKKyAgICAgICAgbV92aWJyYXRpb25DbGllbnQtPnZpYnJhdGUodmli
cmF0aW9uVGltZSwgbV92aWJyYXRpb25DbGllbnQtPnVzZXJEYXRhKTsKK30KKwordm9pZCBWaWJy
YXRpb25Qcm92aWRlcjo6Y2FuY2VsVmlicmF0aW9uKCkKK3sKKyAgICBpZiAobV92aWJyYXRpb25D
bGllbnQgJiYgbV92aWJyYXRpb25DbGllbnQtPmNhbmNlbFZpYnJhdGlvbikKKyAgICAgICAgbV92
aWJyYXRpb25DbGllbnQtPmNhbmNlbFZpYnJhdGlvbihtX3ZpYnJhdGlvbkNsaWVudC0+dXNlckRh
dGEpOworfQorCit2b2lkIFZpYnJhdGlvblByb3ZpZGVyOjpzZXRWaWJyYXRpb25DbGllbnRDYWxs
YmFja3MoRXdrX1ZpYnJhdGlvbl9DbGllbnRfVmlicmF0ZV9DYiB2aWJyYXRlLCBFd2tfVmlicmF0
aW9uX0NsaWVudF9WaWJyYXRpb25fQ2FuY2VsX0NiIGNhbmNlbFZpYnJhdGlvbiwgdm9pZCogZGF0
YSkKK3sKKyAgICBtX3ZpYnJhdGlvbkNsaWVudCA9IGFkb3B0UHRyKG5ldyBFd2tfVmlicmF0aW9u
X0NsaWVudCh2aWJyYXRlLCBjYW5jZWxWaWJyYXRpb24sIGRhdGEpKTsKK30KKworI2VuZGlmIC8v
IEVOQUJMRShWSUJSQVRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9WaWJyYXRpb25Qcm92aWRlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvVmlicmF0aW9uUHJvdmlkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5jMjY0M2I2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvVmlicmF0aW9uUHJvdmlkZXIuaApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIFZpYnJhdGlvblByb3ZpZGVyX2gKKyNkZWZpbmUgVmlicmF0aW9u
UHJvdmlkZXJfaAorCisjaWYgRU5BQkxFKFZJQlJBVElPTikKKworI2luY2x1ZGUgIldLUmV0YWlu
UHRyLmgiCisjaW5jbHVkZSAiZXdrX2NvbnRleHQuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0
ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK3R5cGVkZWYgc3RydWN0IF9Fd2tf
VmlicmF0aW9uX0NsaWVudCBFd2tfVmlicmF0aW9uX0NsaWVudDsKKworY2xhc3MgVmlicmF0aW9u
UHJvdmlkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxWaWJyYXRpb25Qcm92aWRlcj4geworcHVibGlj
OgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFZpYnJhdGlvblByb3ZpZGVyPiBjcmVhdGUoV0tWaWJy
YXRpb25SZWYpOworICAgIHZpcnR1YWwgflZpYnJhdGlvblByb3ZpZGVyKCk7CisKKyAgICB2b2lk
IHZpYnJhdGUodWludDY0X3QgdmlicmF0aW9uVGltZSk7CisgICAgdm9pZCBjYW5jZWxWaWJyYXRp
b24oKTsKKyAgICB2b2lkIHNldFZpYnJhdGlvbkNsaWVudENhbGxiYWNrcyhFd2tfVmlicmF0aW9u
X0NsaWVudF9WaWJyYXRlX0NiLCBFd2tfVmlicmF0aW9uX0NsaWVudF9WaWJyYXRpb25fQ2FuY2Vs
X0NiLCB2b2lkKik7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgVmlicmF0aW9uUHJvdmlkZXIo
V0tWaWJyYXRpb25SZWYpOworCisgICAgV0tSZXRhaW5QdHI8V0tWaWJyYXRpb25SZWY+IG1fd2tW
aWJyYXRpb25SZWY7CisgICAgT3duUHRyPEV3a19WaWJyYXRpb25fQ2xpZW50PiBtX3ZpYnJhdGlv
bkNsaWVudDsKK307CisKKyNlbmRpZiAvLyBFTkFCTEUoVklCUkFUSU9OKQorCisjZW5kaWYgLy8g
VmlicmF0aW9uUHJvdmlkZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX2NvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX2NvbnRleHQuY3BwCmluZGV4IDIxYzE1N2MuLjk2NGUwZDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5jcHAKQEAgLTIyLDYgKzIy
LDcgQEAKICNpbmNsdWRlICJld2tfY29udGV4dC5oIgogCiAjaW5jbHVkZSAiQmF0dGVyeVByb3Zp
ZGVyLmgiCisjaW5jbHVkZSAiVmlicmF0aW9uUHJvdmlkZXIuaCIKICNpbmNsdWRlICJXS0FQSUNh
c3QuaCIKICNpbmNsdWRlICJXS1JldGFpblB0ci5oIgogI2luY2x1ZGUgImV3a19jb250ZXh0X3By
aXZhdGUuaCIKQEAgLTM2LDYgKzM3LDkgQEAgc3RydWN0IF9Fd2tfQ29udGV4dCB7CiAjaWYgRU5B
QkxFKEJBVFRFUllfU1RBVFVTKQogICAgIFJlZlB0cjxCYXR0ZXJ5UHJvdmlkZXI+IGJhdHRlcnlQ
cm92aWRlcjsKICNlbmRpZgorI2lmIEVOQUJMRShWSUJSQVRJT04pCisgICAgUmVmUHRyPFZpYnJh
dGlvblByb3ZpZGVyPiB2aWJyYXRpb25Qcm92aWRlcjsKKyNlbmRpZgogCiAgICAgX0V3a19Db250
ZXh0KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmKQogICAgICAgICA6IGNvbnRleHQoY29udGV4dFJl
ZikKQEAgLTc0LDYgKzc4LDExIEBAIHN0YXRpYyBpbmxpbmUgRXdrX0NvbnRleHQqIGNyZWF0ZURl
ZmF1bHRFd2tDb250ZXh0KCkKICAgICBld2tDb250ZXh0LT5iYXR0ZXJ5UHJvdmlkZXIgPSBCYXR0
ZXJ5UHJvdmlkZXI6OmNyZWF0ZSh3a0JhdHRlcnlNYW5hZ2VyKTsKICNlbmRpZgogCisjaWYgRU5B
QkxFKFZJQlJBVElPTikKKyAgICBXS1ZpYnJhdGlvblJlZiB3a1ZpYnJhdGlvblJlZiA9IFdLQ29u
dGV4dEdldFZpYnJhdGlvbih3a0NvbnRleHQpOworICAgIGV3a0NvbnRleHQtPnZpYnJhdGlvblBy
b3ZpZGVyID0gVmlicmF0aW9uUHJvdmlkZXI6OmNyZWF0ZSh3a1ZpYnJhdGlvblJlZik7CisjZW5k
aWYKKwogICAgIHJldHVybiBld2tDb250ZXh0OwogfQogCkBAIC04MywzICs5MiwxMiBAQCBFd2tf
Q29udGV4dCogZXdrX2NvbnRleHRfZGVmYXVsdF9nZXQoKQogCiAgICAgcmV0dXJuIGRlZmF1bHRD
b250ZXh0OwogfQorCit2b2lkIGV3a19jb250ZXh0X3ZpYnJhdGlvbl9jbGllbnRfY2FsbGJhY2tz
X3NldChFd2tfQ29udGV4dCogZXdrQ29udGV4dCwgRXdrX1ZpYnJhdGlvbl9DbGllbnRfVmlicmF0
ZV9DYiB2aWJyYXRlLCBFd2tfVmlicmF0aW9uX0NsaWVudF9WaWJyYXRpb25fQ2FuY2VsX0NiIGNh
bmNlbCwgdm9pZCogZGF0YSkKK3sKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihld2tD
b250ZXh0KTsKKworI2lmIEVOQUJMRShWSUJSQVRJT04pCisgICAgZXdrQ29udGV4dC0+dmlicmF0
aW9uUHJvdmlkZXItPnNldFZpYnJhdGlvbkNsaWVudENhbGxiYWNrcyh2aWJyYXRlLCBjYW5jZWws
IGRhdGEpOworI2VuZGlmCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfY29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX2NvbnRleHQuaAppbmRleCBlODkwMzc3Li44YTQ2ZTAzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmgKQEAgLTQwLDYgKzQwLDIwIEBAIGV4
dGVybiAiQyIgewogdHlwZWRlZiBzdHJ1Y3QgX0V3a19Db250ZXh0IEV3a19Db250ZXh0OwogCiAv
KioKKyAqIEB0eXBlZGVmIEV3a19WaWJyYXRpb25fQ2xpZW50X1ZpYnJhdGVfQ2IgRXdrX1ZpYnJh
dGlvbl9DbGllbnRfVmlicmF0ZV9DYgorICogQGJyaWVmIFR5cGUgZGVmaW5pdGlvbiBmb3IgYSBm
dW5jdGlvbiB0aGF0IHdpbGwgYmUgY2FsbGVkIGJhY2sgd2hlbiB2aWJyYXRlCisgKiByZXF1ZXN0
IHJlY2VpdmVlZCBmcm9tIHRoZSB2aWJyYXRpb24gY29udHJvbGxlci4KKyAqLwordHlwZWRlZiB2
b2lkICgqRXdrX1ZpYnJhdGlvbl9DbGllbnRfVmlicmF0ZV9DYikodWludDY0X3QgdmlicmF0aW9u
X3RpbWUsIHZvaWQgKnVzZXJfZGF0YSk7CisKKy8qKgorICogQHR5cGVkZWYgRXdrX1ZpYnJhdGlv
bl9DbGllbnRfVmlicmF0aW9uX0NhbmNlbF9DYiBFd2tfVmlicmF0aW9uX0NsaWVudF9WaWJyYXRp
b25fQ2FuY2VsX0NiCisgKiBAYnJpZWYgVHlwZSBkZWZpbml0aW9uIGZvciBhIGZ1bmN0aW9uIHRo
YXQgd2lsbCBiZSBjYWxsZWQgYmFjayB3aGVuIGNhbmNlbAorICogdmlicmF0aW9uIHJlcXVlc3Qg
cmVjZWl2ZWVkIGZyb20gdGhlIHZpYnJhdGlvbiBjb250cm9sbGVyLgorICovCit0eXBlZGVmIHZv
aWQgKCpFd2tfVmlicmF0aW9uX0NsaWVudF9WaWJyYXRpb25fQ2FuY2VsX0NiKSh2b2lkICp1c2Vy
X2RhdGEpOworCisvKioKICAqIEdldHMgZGVmYXVsdCBFd2tfQ29udGV4dCBpbnN0YW5jZS4KICAq
CiAgKiBAcmV0dXJuIEV3a19Db250ZXh0IG9iamVjdC4KQEAgLTU1LDYgKzY5LDIyIEBAIEVBUEkg
RXdrX0NvbnRleHQgKmV3a19jb250ZXh0X2RlZmF1bHRfZ2V0KCk7CiAgKi8KIEVBUEkgRXdrX0Nv
b2tpZV9NYW5hZ2VyICpld2tfY29udGV4dF9jb29raWVfbWFuYWdlcl9nZXQoY29uc3QgRXdrX0Nv
bnRleHQgKmNvbnRleHQpOwogCisvKioKKyAqIFNldHMgdmlicmF0aW9uIGNsaWVudCBjYWxsYmFj
a3MgdG8gaGFuZGxlIHRoZSB0YWN0aWxlIGZlZWRiYWNrIGluIHRoZSBmb3JtIG9mCisgKiB2aWJy
YXRpb24gaW4gdGhlIGNsaWVudCBhcHBsaWNhdGlvbiB3aGVuIHRoZSBjb250ZW50IGFza3MgZm9y
IHZpYnJhdGlvbi4KKyAqCisgKiBUbyBzdG9wIGxpc3RlbmluZyBmb3IgdmlicmF0aW9uIGV2ZW50
cywgeW91IG1heSBjYWxsIHRoaXMgZnVuY3Rpb24gd2l0aCBAYworICogTlVMTCBmb3IgdGhlIGNh
bGxiYWNrcy4KKyAqCisgKiBAcGFyYW0gY29udGV4dCBjb250ZXh0IG9iamVjdCB0byBzZXQgdmli
cmF0aW9uIGNsaWVudCBjYWxsYmFja3MuCisgKiBAcGFyYW0gdmlicmF0ZSBUaGUgZnVuY3Rpb24g
dG8gY2FsbCB3aGVuIHRoZSB2aWJyYXRlIHJlcXVlc3QgcmVjZWl2ZWQgZnJvbSB0aGUKKyAqICAg
ICAgICBjb250cm9sbGVyIChtYXkgYmUgQGMgTlVMTCkuCisgKiBAcGFyYW0gY2FuY2VsIFRoZSBm
dW5jdGlvbiB0byBjYWxsIHdoZW4gdGhlIGNhbmNlbCB2aWJyYXRpb24gcmVxdWVzdCByZWNlaXZl
ZAorICogICAgICAgIGZyb20gdGhlIGNvbnRyb2xsZXIgKG1heSBiZSBAYyBOVUxMKS4KKyAqIEBw
YXJhbSBkYXRhIFVzZXIgZGF0YSAobWF5IGJlIEBjIE5VTEwpLgorICovCitFQVBJIHZvaWQgZXdr
X2NvbnRleHRfdmlicmF0aW9uX2NsaWVudF9jYWxsYmFja3Nfc2V0KEV3a19Db250ZXh0ICpjb250
ZXh0LCBFd2tfVmlicmF0aW9uX0NsaWVudF9WaWJyYXRlX0NiIHZpYnJhdGUsIEV3a19WaWJyYXRp
b25fQ2xpZW50X1ZpYnJhdGlvbl9DYW5jZWxfQ2IgY2FuY2VsLCB2b2lkICpkYXRhKTsKKwogI2lm
ZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153865</attachid>
            <date>2012-07-23 14:45:14 -0700</date>
            <delta_ts>2012-07-24 08:40:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>91371.patch</filename>
            <type>text/plain</type>
            <size>13365</size>
            <attacher name="Sudarsana Nagineni (babu)">naginenis</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktp
dDIvQ01ha2VMaXN0cy50eHQKaW5kZXggMDRjYzcxOS4uN2VjYmQ2MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0
cy50eHQKQEAgLTQ1LDYgKzQ1LDcgQEAgU0VUKFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklFUwog
ICAgICIke1dFQkNPUkVfRElSfSIKICAgICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9iYXR0ZXJ5
IgogICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL2ludGVudHMiCisgICAgIiR7V0VCQ09SRV9E
SVJ9L01vZHVsZXMvdmlicmF0aW9uIgogICAgICIke1dFQkNPUkVfRElSfS9hY2Nlc3NpYmlsaXR5
IgogICAgICIke1dFQkNPUkVfRElSfS9iaW5kaW5ncy9qcyIKICAgICAiJHtXRUJDT1JFX0RJUn0v
YmluZGluZ3MiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYzIyN2QzNS4uNTI3ZjA1ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDQwIEBACisyMDEyLTA3LTIzICBTdWRhcnNhbmEgTmFnaW5lbmkgIDxzdWRhcnNhbmEu
bmFnaW5lbmlAbGludXguaW50ZWwuY29tPgorCisgICAgICAgIFtFRkxdW1dLMl0gQWRkIHZpYnJh
dGlvbiBjbGllbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTkxMzcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW1wbGVtZW50IFZpYnJhdGlvbiBwcm92aWRlciBmb3IgV2ViS2l0MiBFRkwgYW5kIGFkZCBh
biBBUEkgdG8gc2V0CisgICAgICAgIHZpYnJhdGlvbiBjbGllbnQgY2FsbGJhY2tzIGJ5IGFwcGxp
Y2F0aW9uIHRvIGhhbmRsZSB0aGUgdGFjdGlsZQorICAgICAgICBmZWVkYmFjayBpbiB0aGUgYXBw
bGljYXRpb24gd2hlbiB0aGUgcGFnZSBjb250ZW50IGFzayBmb3IgdmlicmF0aW9uLgorCisgICAg
ICAgICogQ01ha2VMaXN0cy50eHQ6IEFkZCBXZWJDb3JlL01vZHVsZXMvdmlicmF0aW9uIHRvIGlu
Y2x1ZGUgcGF0aC4KKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZTogQWRkIFZpYnJhdGlvblBy
b3ZpZGVyLmNwcCBmaWxlIHRvIHRoZSBidWlsZAorICAgICAgICBzeXN0ZW0uCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9lZmwvVmlicmF0aW9uUHJvdmlkZXIuY3BwOiBBZGRlZC4KKyAgICAgICAg
KF9Fd2tfVmlicmF0aW9uX0NsaWVudCk6IFN0cnVjdHVyZSBjb250YWlucyB0aGUgdmlicmF0aW9u
IGNsaWVudAorICAgICAgICBjYWxsYmFja3MuCisgICAgICAgIChfRXdrX1ZpYnJhdGlvbl9DbGll
bnQ6Ol9Fd2tfVmlicmF0aW9uX0NsaWVudCk6CisgICAgICAgICh0b1ZpYnJhdGlvblByb3ZpZGVy
KTogSGVscGVyIGZ1bmN0aW9uIHRvIGNhc3QgdGhlIGNsaWVudGluZm8gdG8KKyAgICAgICAgVmli
cmF0aW9uUHJvdmlkZXIuCisgICAgICAgICh2aWJyYXRlQ2FsbGJhY2spOgorICAgICAgICAoY2Fu
Y2VsVmlicmF0aW9uQ2FsbGJhY2spOgorICAgICAgICAoVmlicmF0aW9uUHJvdmlkZXI6OmNyZWF0
ZSk6CisgICAgICAgIChWaWJyYXRpb25Qcm92aWRlcjo6VmlicmF0aW9uUHJvdmlkZXIpOgorICAg
ICAgICAoVmlicmF0aW9uUHJvdmlkZXI6On5WaWJyYXRpb25Qcm92aWRlcik6CisgICAgICAgIChW
aWJyYXRpb25Qcm92aWRlcjo6dmlicmF0ZSk6CisgICAgICAgIChWaWJyYXRpb25Qcm92aWRlcjo6
Y2FuY2VsVmlicmF0aW9uKToKKyAgICAgICAgKFZpYnJhdGlvblByb3ZpZGVyOjpzZXRWaWJyYXRp
b25DbGllbnRDYWxsYmFja3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL1ZpYnJhdGlv
blByb3ZpZGVyLmg6IEFkZGVkLgorICAgICAgICAoVmlicmF0aW9uUHJvdmlkZXIpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmNwcDoKKyAgICAgICAgKF9Fd2tfQ29u
dGV4dCk6CisgICAgICAgIChjcmVhdGVEZWZhdWx0RXdrQ29udGV4dCk6CisgICAgICAgIChld2tf
Y29udGV4dF92aWJyYXRpb25fY2xpZW50X2NhbGxiYWNrc19zZXQpOiBBUEkgdG8gc2V0IHZpYnJh
dGlvbgorICAgICAgICBjbGllbnQgY2FsbGJhY2tzLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
ZWZsL2V3a19jb250ZXh0Lmg6CisKIDIwMTItMDctMjMgIFBpZXJyZSBSb3NzaSAgPHBpZXJyZS5y
b3NzaUBnbWFpbC5jb20+CiAKICAgICAgICAgW1F0XSBFbmFibGUgdG91Y2ggc2xpZGVyIHdoZW4g
dG91Y2ggZXZlbnRzIGFyZSBlbmFibGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IDZh
YTYxMDQuLmJkYzQ0NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNt
YWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC0zNyw2ICszNyw3
IEBAIExJU1QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwogCiAgICAgVUlQcm9jZXNzL0FQSS9lZmwv
QmF0dGVyeVByb3ZpZGVyLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBs
LmNwcAorICAgIFVJUHJvY2Vzcy9BUEkvZWZsL1ZpYnJhdGlvblByb3ZpZGVyLmNwcAogICAgIFVJ
UHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3
a19jb250ZXh0X3JlcXVlc3RfbWFuYWdlcl9jbGllbnQuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX2Nvb2tpZV9tYW5hZ2VyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvVmlicmF0aW9uUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvVmlicmF0aW9uUHJvdmlkZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmE5NjkxMDYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9WaWJyYXRpb25Qcm92aWRlci5jcHAKQEAgLTAsMCArMSwxMDgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJW
aWJyYXRpb25Qcm92aWRlci5oIgorCisjaWYgRU5BQkxFKFZJQlJBVElPTikKKworI2luY2x1ZGUg
IldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldLVmlicmF0aW9uLmgiCisjaW5jbHVkZSA8RXZhcy5o
PgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworLyoqCisgKiBcc3RydWN0ICBfRXdrX1Zp
YnJhdGlvbl9DbGllbnQKKyAqIEBicmllZiAgIENvbnRhaW5zIHRoZSB2aWJyYXRpb24gY2xpZW50
IGNhbGxiYWNrcy4KKyAqLworc3RydWN0IF9Fd2tfVmlicmF0aW9uX0NsaWVudCB7CisgICAgRXdr
X1ZpYnJhdGlvbl9DbGllbnRfVmlicmF0ZV9DYiB2aWJyYXRlOworICAgIEV3a19WaWJyYXRpb25f
Q2xpZW50X1ZpYnJhdGlvbl9DYW5jZWxfQ2IgY2FuY2VsVmlicmF0aW9uOworICAgIHZvaWQqIHVz
ZXJEYXRhOworCisgICAgX0V3a19WaWJyYXRpb25fQ2xpZW50KEV3a19WaWJyYXRpb25fQ2xpZW50
X1ZpYnJhdGVfQ2IgdmlicmF0ZSwgRXdrX1ZpYnJhdGlvbl9DbGllbnRfVmlicmF0aW9uX0NhbmNl
bF9DYiBjYW5jZWxWaWJyYXRpb24sIHZvaWQqIHVzZXJEYXRhKQorICAgICAgICA6IHZpYnJhdGUo
dmlicmF0ZSkKKyAgICAgICAgLCBjYW5jZWxWaWJyYXRpb24oY2FuY2VsVmlicmF0aW9uKQorICAg
ICAgICAsIHVzZXJEYXRhKHVzZXJEYXRhKQorICAgIHsgfQorfTsKKworc3RhdGljIGlubGluZSBW
aWJyYXRpb25Qcm92aWRlciogdG9WaWJyYXRpb25Qcm92aWRlcihjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKQoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxWaWJyYXRpb25Qcm92aWRlcio+KGNvbnN0
X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKK30KKworc3RhdGljIHZvaWQgdmlicmF0ZUNhbGxi
YWNrKFdLVmlicmF0aW9uUmVmIHZpYnJhdGlvblJlZiwgdWludDY0X3QgdmlicmF0aW9uVGltZSwg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICB0b1ZpYnJhdGlvblByb3ZpZGVyKGNsaWVu
dEluZm8pLT52aWJyYXRlKHZpYnJhdGlvblRpbWUpOworfQorCitzdGF0aWMgdm9pZCBjYW5jZWxW
aWJyYXRpb25DYWxsYmFjayhXS1ZpYnJhdGlvblJlZiB2aWJyYXRpb25SZWYsIGNvbnN0IHZvaWQq
IGNsaWVudEluZm8pCit7CisgICAgdG9WaWJyYXRpb25Qcm92aWRlcihjbGllbnRJbmZvKS0+Y2Fu
Y2VsVmlicmF0aW9uKCk7Cit9CisKK1Bhc3NSZWZQdHI8VmlicmF0aW9uUHJvdmlkZXI+IFZpYnJh
dGlvblByb3ZpZGVyOjpjcmVhdGUoV0tWaWJyYXRpb25SZWYgd2tWaWJyYXRpb25SZWYpCit7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBWaWJyYXRpb25Qcm92aWRlcih3a1ZpYnJhdGlvblJlZikp
OworfQorCitWaWJyYXRpb25Qcm92aWRlcjo6VmlicmF0aW9uUHJvdmlkZXIoV0tWaWJyYXRpb25S
ZWYgd2tWaWJyYXRpb25SZWYpCisgICAgOiBtX3drVmlicmF0aW9uUmVmKHdrVmlicmF0aW9uUmVm
KQoreworICAgIEFTU0VSVCh3a1ZpYnJhdGlvblJlZik7CisKKyAgICBXS1ZpYnJhdGlvblByb3Zp
ZGVyIHdrVmlicmF0aW9uUHJvdmlkZXIgPSB7CisgICAgICAgIGtXS1ZpYnJhdGlvblByb3ZpZGVy
Q3VycmVudFZlcnNpb24sCisgICAgICAgIHRoaXMsIC8vIGNsaWVudEluZm8KKyAgICAgICAgdmli
cmF0ZUNhbGxiYWNrLAorICAgICAgICBjYW5jZWxWaWJyYXRpb25DYWxsYmFjaworICAgIH07Cisg
ICAgV0tWaWJyYXRpb25TZXRQcm92aWRlcihtX3drVmlicmF0aW9uUmVmLmdldCgpLCAmd2tWaWJy
YXRpb25Qcm92aWRlcik7Cit9CisKK1ZpYnJhdGlvblByb3ZpZGVyOjp+VmlicmF0aW9uUHJvdmlk
ZXIoKQoreworfQorCit2b2lkIFZpYnJhdGlvblByb3ZpZGVyOjp2aWJyYXRlKHVpbnQ2NF90IHZp
YnJhdGlvblRpbWUpCit7CisgICAgaWYgKG1fdmlicmF0aW9uQ2xpZW50ICYmIG1fdmlicmF0aW9u
Q2xpZW50LT52aWJyYXRlKQorICAgICAgICBtX3ZpYnJhdGlvbkNsaWVudC0+dmlicmF0ZSh2aWJy
YXRpb25UaW1lLCBtX3ZpYnJhdGlvbkNsaWVudC0+dXNlckRhdGEpOworfQorCit2b2lkIFZpYnJh
dGlvblByb3ZpZGVyOjpjYW5jZWxWaWJyYXRpb24oKQoreworICAgIGlmIChtX3ZpYnJhdGlvbkNs
aWVudCAmJiBtX3ZpYnJhdGlvbkNsaWVudC0+Y2FuY2VsVmlicmF0aW9uKQorICAgICAgICBtX3Zp
YnJhdGlvbkNsaWVudC0+Y2FuY2VsVmlicmF0aW9uKG1fdmlicmF0aW9uQ2xpZW50LT51c2VyRGF0
YSk7Cit9CisKK3ZvaWQgVmlicmF0aW9uUHJvdmlkZXI6OnNldFZpYnJhdGlvbkNsaWVudENhbGxi
YWNrcyhFd2tfVmlicmF0aW9uX0NsaWVudF9WaWJyYXRlX0NiIHZpYnJhdGUsIEV3a19WaWJyYXRp
b25fQ2xpZW50X1ZpYnJhdGlvbl9DYW5jZWxfQ2IgY2FuY2VsVmlicmF0aW9uLCB2b2lkKiBkYXRh
KQoreworICAgIG1fdmlicmF0aW9uQ2xpZW50ID0gYWRvcHRQdHIobmV3IEV3a19WaWJyYXRpb25f
Q2xpZW50KHZpYnJhdGUsIGNhbmNlbFZpYnJhdGlvbiwgZGF0YSkpOworfQorCisjZW5kaWYgLy8g
RU5BQkxFKFZJQlJBVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL1ZpYnJhdGlvblByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9WaWJyYXRpb25Qcm92aWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmMyNjQzYjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9WaWJyYXRpb25Qcm92aWRlci5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgVmlicmF0aW9uUHJvdmlkZXJfaAorI2RlZmluZSBWaWJyYXRpb25Q
cm92aWRlcl9oCisKKyNpZiBFTkFCTEUoVklCUkFUSU9OKQorCisjaW5jbHVkZSAiV0tSZXRhaW5Q
dHIuaCIKKyNpbmNsdWRlICJld2tfY29udGV4dC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRy
Lmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKwordHlwZWRlZiBzdHJ1Y3QgX0V3a19W
aWJyYXRpb25fQ2xpZW50IEV3a19WaWJyYXRpb25fQ2xpZW50OworCitjbGFzcyBWaWJyYXRpb25Q
cm92aWRlciA6IHB1YmxpYyBSZWZDb3VudGVkPFZpYnJhdGlvblByb3ZpZGVyPiB7CitwdWJsaWM6
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8VmlicmF0aW9uUHJvdmlkZXI+IGNyZWF0ZShXS1ZpYnJh
dGlvblJlZik7CisgICAgdmlydHVhbCB+VmlicmF0aW9uUHJvdmlkZXIoKTsKKworICAgIHZvaWQg
dmlicmF0ZSh1aW50NjRfdCB2aWJyYXRpb25UaW1lKTsKKyAgICB2b2lkIGNhbmNlbFZpYnJhdGlv
bigpOworICAgIHZvaWQgc2V0VmlicmF0aW9uQ2xpZW50Q2FsbGJhY2tzKEV3a19WaWJyYXRpb25f
Q2xpZW50X1ZpYnJhdGVfQ2IsIEV3a19WaWJyYXRpb25fQ2xpZW50X1ZpYnJhdGlvbl9DYW5jZWxf
Q2IsIHZvaWQqKTsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBWaWJyYXRpb25Qcm92aWRlcihX
S1ZpYnJhdGlvblJlZik7CisKKyAgICBXS1JldGFpblB0cjxXS1ZpYnJhdGlvblJlZj4gbV93a1Zp
YnJhdGlvblJlZjsKKyAgICBPd25QdHI8RXdrX1ZpYnJhdGlvbl9DbGllbnQ+IG1fdmlicmF0aW9u
Q2xpZW50OworfTsKKworI2VuZGlmIC8vIEVOQUJMRShWSUJSQVRJT04pCisKKyNlbmRpZiAvLyBW
aWJyYXRpb25Qcm92aWRlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfY29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfY29udGV4dC5jcHAKaW5kZXggYjg2MDdlNS4uYzJmOTI0NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmNwcApAQCAtMjIsNiArMjIs
NyBAQAogI2luY2x1ZGUgImV3a19jb250ZXh0LmgiCiAKICNpbmNsdWRlICJCYXR0ZXJ5UHJvdmlk
ZXIuaCIKKyNpbmNsdWRlICJWaWJyYXRpb25Qcm92aWRlci5oIgogI2luY2x1ZGUgIldLQVBJQ2Fz
dC5oIgogI2luY2x1ZGUgIldLQ29udGV4dFNvdXAuaCIKICNpbmNsdWRlICJXS1JldGFpblB0ci5o
IgpAQCAtNTgsNiArNTksOSBAQCBzdHJ1Y3QgX0V3a19Db250ZXh0IHsKICNpZiBFTkFCTEUoQkFU
VEVSWV9TVEFUVVMpCiAgICAgUmVmUHRyPEJhdHRlcnlQcm92aWRlcj4gYmF0dGVyeVByb3ZpZGVy
OwogI2VuZGlmCisjaWYgRU5BQkxFKFZJQlJBVElPTikKKyAgICBSZWZQdHI8VmlicmF0aW9uUHJv
dmlkZXI+IHZpYnJhdGlvblByb3ZpZGVyOworI2VuZGlmCiAKICAgICBXS1JldGFpblB0cjxXS1Nv
dXBSZXF1ZXN0TWFuYWdlclJlZj4gcmVxdWVzdE1hbmFnZXI7CiAgICAgVVJMU2NoZW1lSGFuZGxl
ck1hcCB1cmxTY2hlbWVIYW5kbGVyczsKQEAgLTcyLDYgKzc2LDExIEBAIHN0cnVjdCBfRXdrX0Nv
bnRleHQgewogICAgICAgICBiYXR0ZXJ5UHJvdmlkZXIgPSBCYXR0ZXJ5UHJvdmlkZXI6OmNyZWF0
ZSh3a0JhdHRlcnlNYW5hZ2VyKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKFZJQlJBVElPTikKKyAg
ICAgICAgV0tWaWJyYXRpb25SZWYgd2tWaWJyYXRpb25SZWYgPSBXS0NvbnRleHRHZXRWaWJyYXRp
b24oY29udGV4dFJlZik7CisgICAgICAgIHZpYnJhdGlvblByb3ZpZGVyID0gVmlicmF0aW9uUHJv
dmlkZXI6OmNyZWF0ZSh3a1ZpYnJhdGlvblJlZik7CisjZW5kaWYKKwogICAgICAgICBld2tfY29u
dGV4dF9yZXF1ZXN0X21hbmFnZXJfY2xpZW50X2F0dGFjaCh0aGlzKTsKICAgICB9CiAKQEAgLTE1
MSwzICsxNjAsMTIgQEAgRWluYV9Cb29sIGV3a19jb250ZXh0X3VyaV9zY2hlbWVfcmVnaXN0ZXIo
RXdrX0NvbnRleHQqIGV3a0NvbnRleHQsIGNvbnN0IGNoYXIqIHMKIAogICAgIHJldHVybiB0cnVl
OwogfQorCit2b2lkIGV3a19jb250ZXh0X3ZpYnJhdGlvbl9jbGllbnRfY2FsbGJhY2tzX3NldChF
d2tfQ29udGV4dCogZXdrQ29udGV4dCwgRXdrX1ZpYnJhdGlvbl9DbGllbnRfVmlicmF0ZV9DYiB2
aWJyYXRlLCBFd2tfVmlicmF0aW9uX0NsaWVudF9WaWJyYXRpb25fQ2FuY2VsX0NiIGNhbmNlbCwg
dm9pZCogZGF0YSkKK3sKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihld2tDb250ZXh0
KTsKKworI2lmIEVOQUJMRShWSUJSQVRJT04pCisgICAgZXdrQ29udGV4dC0+dmlicmF0aW9uUHJv
dmlkZXItPnNldFZpYnJhdGlvbkNsaWVudENhbGxiYWNrcyh2aWJyYXRlLCBjYW5jZWwsIGRhdGEp
OworI2VuZGlmCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfY29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Nv
bnRleHQuaAppbmRleCAzZGYzNjJmLi41ZTRkMzQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmgKQEAgLTQ3LDYgKzQ3LDIwIEBAIHR5cGVkZWYg
c3RydWN0IF9Fd2tfQ29udGV4dCBFd2tfQ29udGV4dDsKIHR5cGVkZWYgdm9pZCAoKkV3a19Vcmxf
U2NoZW1lX1JlcXVlc3RfQ2IpIChFd2tfVXJsX1NjaGVtZV9SZXF1ZXN0ICpyZXF1ZXN0LCB2b2lk
ICp1c2VyX2RhdGEpOwogCiAvKioKKyAqIEB0eXBlZGVmIEV3a19WaWJyYXRpb25fQ2xpZW50X1Zp
YnJhdGVfQ2IgRXdrX1ZpYnJhdGlvbl9DbGllbnRfVmlicmF0ZV9DYgorICogQGJyaWVmIFR5cGUg
ZGVmaW5pdGlvbiBmb3IgYSBmdW5jdGlvbiB0aGF0IHdpbGwgYmUgY2FsbGVkIGJhY2sgd2hlbiB2
aWJyYXRlCisgKiByZXF1ZXN0IHJlY2VpdmVlZCBmcm9tIHRoZSB2aWJyYXRpb24gY29udHJvbGxl
ci4KKyAqLwordHlwZWRlZiB2b2lkICgqRXdrX1ZpYnJhdGlvbl9DbGllbnRfVmlicmF0ZV9DYiko
dWludDY0X3QgdmlicmF0aW9uX3RpbWUsIHZvaWQgKnVzZXJfZGF0YSk7CisKKy8qKgorICogQHR5
cGVkZWYgRXdrX1ZpYnJhdGlvbl9DbGllbnRfVmlicmF0aW9uX0NhbmNlbF9DYiBFd2tfVmlicmF0
aW9uX0NsaWVudF9WaWJyYXRpb25fQ2FuY2VsX0NiCisgKiBAYnJpZWYgVHlwZSBkZWZpbml0aW9u
IGZvciBhIGZ1bmN0aW9uIHRoYXQgd2lsbCBiZSBjYWxsZWQgYmFjayB3aGVuIGNhbmNlbAorICog
dmlicmF0aW9uIHJlcXVlc3QgcmVjZWl2ZWVkIGZyb20gdGhlIHZpYnJhdGlvbiBjb250cm9sbGVy
LgorICovCit0eXBlZGVmIHZvaWQgKCpFd2tfVmlicmF0aW9uX0NsaWVudF9WaWJyYXRpb25fQ2Fu
Y2VsX0NiKSh2b2lkICp1c2VyX2RhdGEpOworCisvKioKICAqIEdldHMgZGVmYXVsdCBFd2tfQ29u
dGV4dCBpbnN0YW5jZS4KICAqCiAgKiBAcmV0dXJuIEV3a19Db250ZXh0IG9iamVjdC4KQEAgLTEw
NSw2ICsxMTksMjIgQEAgRUFQSSBFd2tfQ29va2llX01hbmFnZXIgKmV3a19jb250ZXh0X2Nvb2tp
ZV9tYW5hZ2VyX2dldChjb25zdCBFd2tfQ29udGV4dCAqY29udGUKICAqLwogRUFQSSBFaW5hX0Jv
b2wgZXdrX2NvbnRleHRfdXJpX3NjaGVtZV9yZWdpc3RlcihFd2tfQ29udGV4dCAqY29udGV4dCwg
Y29uc3QgY2hhciAqc2NoZW1lLCBFd2tfVXJsX1NjaGVtZV9SZXF1ZXN0X0NiIGNhbGxiYWNrLCB2
b2lkICp1c2VyX2RhdGEpOwogCisvKioKKyAqIFNldHMgdmlicmF0aW9uIGNsaWVudCBjYWxsYmFj
a3MgdG8gaGFuZGxlIHRoZSB0YWN0aWxlIGZlZWRiYWNrIGluIHRoZSBmb3JtIG9mCisgKiB2aWJy
YXRpb24gaW4gdGhlIGNsaWVudCBhcHBsaWNhdGlvbiB3aGVuIHRoZSBjb250ZW50IGFza3MgZm9y
IHZpYnJhdGlvbi4KKyAqCisgKiBUbyBzdG9wIGxpc3RlbmluZyBmb3IgdmlicmF0aW9uIGV2ZW50
cywgeW91IG1heSBjYWxsIHRoaXMgZnVuY3Rpb24gd2l0aCBAYworICogTlVMTCBmb3IgdGhlIGNh
bGxiYWNrcy4KKyAqCisgKiBAcGFyYW0gY29udGV4dCBjb250ZXh0IG9iamVjdCB0byBzZXQgdmli
cmF0aW9uIGNsaWVudCBjYWxsYmFja3MuCisgKiBAcGFyYW0gdmlicmF0ZSBUaGUgZnVuY3Rpb24g
dG8gY2FsbCB3aGVuIHRoZSB2aWJyYXRlIHJlcXVlc3QgcmVjZWl2ZWQgZnJvbSB0aGUKKyAqICAg
ICAgICBjb250cm9sbGVyIChtYXkgYmUgQGMgTlVMTCkuCisgKiBAcGFyYW0gY2FuY2VsIFRoZSBm
dW5jdGlvbiB0byBjYWxsIHdoZW4gdGhlIGNhbmNlbCB2aWJyYXRpb24gcmVxdWVzdCByZWNlaXZl
ZAorICogICAgICAgIGZyb20gdGhlIGNvbnRyb2xsZXIgKG1heSBiZSBAYyBOVUxMKS4KKyAqIEBw
YXJhbSBkYXRhIFVzZXIgZGF0YSAobWF5IGJlIEBjIE5VTEwpLgorICovCitFQVBJIHZvaWQgZXdr
X2NvbnRleHRfdmlicmF0aW9uX2NsaWVudF9jYWxsYmFja3Nfc2V0KEV3a19Db250ZXh0ICpjb250
ZXh0LCBFd2tfVmlicmF0aW9uX0NsaWVudF9WaWJyYXRlX0NiIHZpYnJhdGUsIEV3a19WaWJyYXRp
b25fQ2xpZW50X1ZpYnJhdGlvbl9DYW5jZWxfQ2IgY2FuY2VsLCB2b2lkICpkYXRhKTsKKwogI2lm
ZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYK
</data>

          </attachment>
      

    </bug>

</bugzilla>