<?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>90479</bug_id>
          
          <creation_ts>2012-07-03 11:06:28 -0700</creation_ts>
          <short_desc>[EFL][WK2] Ewk_View should report load errors</short_desc>
          <delta_ts>2012-07-04 00:34:09 -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>WebKit2</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>61838</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>kenneth</cc>
    
    <cc>rakuco</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>662379</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-03 11:06:28 -0700</bug_when>
    <thetext>The Ewk_View should emit a &quot;load,error&quot; signal if the main frame fails loading.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>662387</commentid>
    <comment_count>1</comment_count>
      <attachid>150647</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-03 11:13:30 -0700</bug_when>
    <thetext>Created attachment 150647
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>662662</commentid>
    <comment_count>2</comment_count>
      <attachid>150647</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-07-03 21:33:29 -0700</bug_when>
    <thetext>Comment on attachment 150647
Patch

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

&gt; Source/WebKit2/UIProcess/API/efl/ewk_web_error.cpp:108
&gt; +Eina_Bool ewk_web_error_cancellation_get(const Ewk_Web_Error* error)

is_cancellation_get ? or maybe just is_cancellation

&gt; Source/WebKit2/UIProcess/API/efl/ewk_web_error.h:51
&gt; + * Query domain for this error.

That makes it quite hard for people to understand what this can actually represent; what kind of values etc. It is extensible true, but maybe an enum would fit better

&gt; Source/WebKit2/UIProcess/API/efl/ewk_web_error.h:74
&gt; +EAPI const char *ewk_web_error_url_get(const Ewk_Web_Error *error);

IS that the originating url? Maybe add comment

&gt; Source/WebKit2/UIProcess/API/efl/ewk_web_error.h:81
&gt; + * @return the error code.

error code for domain?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>662672</commentid>
    <comment_count>3</comment_count>
      <attachid>150647</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-03 23:10:02 -0700</bug_when>
    <thetext>Comment on attachment 150647
Patch

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

&gt;&gt; Source/WebKit2/UIProcess/API/efl/ewk_web_error.cpp:108
&gt;&gt; +Eina_Bool ewk_web_error_cancellation_get(const Ewk_Web_Error* error)
&gt; 
&gt; is_cancellation_get ? or maybe just is_cancellation

I&apos;m not saying this looks great but I did it this way to follow the EFL API style. To name a few:
Eina_Bool evas_object_visible_get (const Evas_Object *obj);
Eina_Bool evas_object_focus_get (const Evas_Object *obj);
Eina_Bool evas_object_anti_alias_get (const Evas_Object *obj);

&gt;&gt; Source/WebKit2/UIProcess/API/efl/ewk_web_error.h:51
&gt;&gt; + * Query domain for this error.
&gt; 
&gt; That makes it quite hard for people to understand what this can actually represent; what kind of values etc. It is extensible true, but maybe an enum would fit better

Agreed. I&apos;ll look into it.

&gt;&gt; Source/WebKit2/UIProcess/API/efl/ewk_web_error.h:74
&gt;&gt; +EAPI const char *ewk_web_error_url_get(const Ewk_Web_Error *error);
&gt; 
&gt; IS that the originating url? Maybe add comment

Ok.

&gt;&gt; Source/WebKit2/UIProcess/API/efl/ewk_web_error.h:81
&gt;&gt; + * @return the error code.
&gt; 
&gt; error code for domain?

I&apos;ll use &quot;HTTP error code&quot; if it is alright.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>662689</commentid>
    <comment_count>4</comment_count>
      <attachid>150719</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-03 23:45:43 -0700</bug_when>
    <thetext>Created attachment 150719
Patch

Take Kenneth&apos;s feedback into consideration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>662691</commentid>
    <comment_count>5</comment_count>
      <attachid>150720</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-03 23:50:44 -0700</bug_when>
    <thetext>Created attachment 150720
Patch

Rebase on master.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>662708</commentid>
    <comment_count>6</comment_count>
      <attachid>150720</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-04 00:34:02 -0700</bug_when>
    <thetext>Comment on attachment 150720
Patch

Clearing flags on attachment: 150720

Committed r121835: &lt;http://trac.webkit.org/changeset/121835&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>662709</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-04 00:34:09 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150647</attachid>
            <date>2012-07-03 11:13:30 -0700</date>
            <delta_ts>2012-07-03 23:45:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>90479_view_load_error.patch</filename>
            <type>text/plain</type>
            <size>16865</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA0Yjc0MmI3Li5iN2FhMWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUg
QEAKKzIwMTItMDctMDMgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVs
LmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIEV3a19WaWV3IHNob3VsZCByZXBvcnQgbG9hZCBl
cnJvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkw
NDc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhl
IEV3a19WaWV3IG5vdyBlbWl0cyBhICJsb2FkLGVycm9yIiBzaWduYWwgd2hlbiB0aGUKKyAgICAg
ICAgbWFpbiBmcmFtZSBmYWlscyBsb2FkaW5nLiBJbmZvcm1hdGlvbiBhYm91dCB0aGUgZXJyb3IK
KyAgICAgICAgaXMgcHJvdmlkZWQgdmlhIHRoZSBuZXcgRXdrX1dlYl9FcnJvciB0eXBlLgorCisg
ICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwv
RVdlYktpdDIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHA6Cisg
ICAgICAgIChld2tfdmlld19sb2FkX2Vycm9yKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfdmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2xvYWRl
cl9jbGllbnQuY3BwOgorICAgICAgICAoZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZSk6Cisg
ICAgICAgIChld2tfdmlld19sb2FkZXJfY2xpZW50X2F0dGFjaCk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
ZWZsL2V3a193ZWJfZXJyb3IuY3BwOiBBZGRlZC4KKyAgICAgICAgKF9Fd2tfV2ViX0Vycm9yKToK
KyAgICAgICAgKGV3a193ZWJfZXJyb3JfZnJlZSk6CisgICAgICAgIChld2tfd2ViX2Vycm9yX2Rv
bWFpbl9nZXQpOgorICAgICAgICAoZXdrX3dlYl9lcnJvcl91cmxfZ2V0KToKKyAgICAgICAgKGV3
a193ZWJfZXJyb3JfY29kZV9nZXQpOgorICAgICAgICAoZXdrX3dlYl9lcnJvcl9kZXNjcmlwdGlv
bl9nZXQpOgorICAgICAgICAoZXdrX3dlYl9lcnJvcl9jYW5jZWxsYXRpb25fZ2V0KToKKyAgICAg
ICAgKGV3a193ZWJfZXJyb3JfbmV3KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tf
d2ViX2Vycm9yLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a193ZWJf
ZXJyb3JfcHJpdmF0ZS5oOiBBZGRlZC4KKwogMjAxMi0wNy0wMyAgQWxleGlzIE1lbmFyZCAgPGFs
ZXhpcy5tZW5hcmRAb3BlbmJvc3NhLm9yZz4KIAogICAgICAgICBbUXRdIFdoZW4gY2FsbGluZyBh
Y2NlcHQoKSBvbiB0aGUgRmlsZVBpY2tlckNvbnRleHRPYmplY3Qgd2l0aCBhbiBlbXB0eSBsaXN0
LCBlYXJseSByZXR1cm4gYW5kIGNhbGwgcmVqZWN0KCkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtl
CmluZGV4IGNmNGE4N2EuLjNjNzM4ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC0z
Niw2ICszNiw3IEBAIExJU1QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwogICAgIFVJUHJvY2Vzcy9B
UEkvZWZsL2V3a19pbnRlbnRfc2VydmljZS5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tf
dmlldy5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19sb2FkZXJfY2xpZW50LmNw
cAorICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a193ZWJfZXJyb3IuY3BwCiAKICAgICBVSVByb2Nl
c3MvY2Fpcm8vQmFja2luZ1N0b3JlQ2Fpcm8uY3BwCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0VXZWJLaXQyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9FV2ViS2l0Mi5oCmluZGV4IDVkYWNjMWYuLmNkOGM5Y2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0VXZWJLaXQyLmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRVdlYktpdDIuaApAQCAtMzEsNSArMzEsNiBAQAog
I2luY2x1ZGUgImV3a19pbnRlbnQuaCIKICNpbmNsdWRlICJld2tfaW50ZW50X3NlcnZpY2UuaCIK
ICNpbmNsdWRlICJld2tfdmlldy5oIgorI2luY2x1ZGUgImV3a193ZWJfZXJyb3IuaCIKIAogI2Vu
ZGlmIC8vIEVXZWJLaXQyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a192aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a192aWV3LmNwcAppbmRleCA1MTIyMDdiLi4yNDRkYjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCkBAIC02NTksNiArNjU5LDE4IEBAIHZvaWQg
ZXdrX3ZpZXdfaW1hZ2VfZGF0YV9zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIHZvaWQqIGltYWdl
RGF0YSwgY29uc3QgSW50U2l6CiAgICAgZXZhc19vYmplY3RfaW1hZ2VfZGF0YV9jb3B5X3NldChz
bWFydERhdGEtPmltYWdlLCBpbWFnZURhdGEpOwogfQogCisvKioKKyAqIEBpbnRlcm5hbAorICog
UmVwb3J0cyBsb2FkIGZhaWxlZCB3aXRoIGVycm9yIGluZm9ybWF0aW9uLgorICoKKyAqIEVtaXRz
IHNpZ25hbDogImxvYWQsZXJyb3IiIHdpdGggcG9pbnRlciB0byBFd2tfV2ViX0Vycm9yLgorICov
Cit2b2lkIGV3a192aWV3X2xvYWRfZXJyb3IoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IEV3
a19XZWJfRXJyb3IqIGVycm9yKQoreworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2Nh
bGwoZXdrVmlldywgImxvYWQsZXJyb3IiLCBjb25zdF9jYXN0PEV3a19XZWJfRXJyb3IqPihlcnJv
cikpOworfQorCisKICNpZiBFTkFCTEUoV0VCX0lOVEVOVFNfVEFHKQogLyoqCiAgKiBAaW50ZXJu
YWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5oCmluZGV4IDFj
NjNkOWUuLmY4ZDAxMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a192aWV3LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X3ZpZXcuaApAQCAtMjgsNiArMjgsNyBAQAogICoKICAqIC0gImludGVudCxyZXF1ZXN0LG5ldyIs
IEV3a19JbnRlbnRfUmVxdWVzdCo6IHJlcG9ydHMgbmV3IFdlYiBpbnRlbnQgcmVxdWVzdC4KICAq
IC0gImludGVudCxzZXJ2aWNlLHJlZ2lzdGVyIiwgRXdrX0ludGVudF9TZXJ2aWNlKjogcmVwb3J0
cyBuZXcgV2ViIGludGVudCBzZXJ2aWNlIHJlZ2lzdHJhdGlvbi4KKyAqIC0gImxvYWQsZXJyb3Ii
LCBjb25zdCBFd2tfV2ViX0Vycm9yKjogcmVwb3J0cyBtYWluIGZyYW1lIGxvYWQgZmFpbGVkLgog
ICogLSAidGl0bGUsY2hhbmdlZCIsIGNvbnN0IGNoYXIqOiB0aXRsZSBvZiB0aGUgbWFpbiBmcmFt
ZSB3YXMgY2hhbmdlZC4KICAqLwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfdmlld19sb2FkZXJfY2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2xvYWRlcl9jbGllbnQuY3BwCmluZGV4IGM4YTVmNmIu
LmJjMWYwZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a192aWV3X2xvYWRlcl9jbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a192aWV3X2xvYWRlcl9jbGllbnQuY3BwCkBAIC0zMiw2ICszMiw4IEBACiAjaW5j
bHVkZSAiZXdrX2ludGVudF9zZXJ2aWNlX3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfdmlld19s
b2FkZXJfY2xpZW50X3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfdmlld19wcml2YXRlLmgiCisj
aW5jbHVkZSAiZXdrX3dlYl9lcnJvci5oIgorI2luY2x1ZGUgImV3a193ZWJfZXJyb3JfcHJpdmF0
ZS5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdl
YktpdDsKQEAgLTY1LDYgKzY3LDE3IEBAIHN0YXRpYyB2b2lkIHJlZ2lzdGVySW50ZW50U2Vydmlj
ZUZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS0luCiB9CiAjZW5k
aWYKIAorc3RhdGljIHZvaWQgZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS1BhZ2VSZWYg
cGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tFcnJvclJlZiBlcnJvciwgV0tUeXBlUmVmLCBjb25z
dCB2b2lkICpjbGllbnRJbmZvKQoreworICAgIGlmICghV0tGcmFtZUlzTWFpbkZyYW1lKGZyYW1l
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgRXZhc19PYmplY3QqIGV3a1ZpZXcgPSBzdGF0aWNf
Y2FzdDxFdmFzX09iamVjdCo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKKyAgICBF
d2tfV2ViX0Vycm9yKiBld2tFcnJvciA9IGV3a193ZWJfZXJyb3JfbmV3KGVycm9yKTsKKyAgICBl
d2tfdmlld19sb2FkX2Vycm9yKGV3a1ZpZXcsIGV3a0Vycm9yKTsKKyAgICBld2tfd2ViX2Vycm9y
X2ZyZWUoZXdrRXJyb3IpOworfQorCiB2b2lkIGV3a192aWV3X2xvYWRlcl9jbGllbnRfYXR0YWNo
KFdLUGFnZVJlZiBwYWdlUmVmLCBFdmFzX09iamVjdCogZXdrVmlldykKIHsKICAgICBXS1BhZ2VM
b2FkZXJDbGllbnQgbG9hZENsaWVudDsKQEAgLTc4LDUgKzkxLDYgQEAgdm9pZCBld2tfdmlld19s
b2FkZXJfY2xpZW50X2F0dGFjaChXS1BhZ2VSZWYgcGFnZVJlZiwgRXZhc19PYmplY3QqIGV3a1Zp
ZXcpCiAjaWYgRU5BQkxFKFdFQl9JTlRFTlRTX1RBRykKICAgICBsb2FkQ2xpZW50LnJlZ2lzdGVy
SW50ZW50U2VydmljZUZvckZyYW1lID0gcmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJhbWU7CiAj
ZW5kaWYKKyAgICBsb2FkQ2xpZW50LmRpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWUgPSBkaWRG
YWlsTG9hZFdpdGhFcnJvckZvckZyYW1lOwogICAgIFdLUGFnZVNldFBhZ2VMb2FkZXJDbGllbnQo
cGFnZVJlZiwgJmxvYWRDbGllbnQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcHJpdmF0ZS5oCmluZGV4IDhmMDIxNzEuLmI1MTRhMjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3ByaXZh
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19wcml2
YXRlLmgKQEAgLTMwLDYgKzMwLDcgQEAgY2xhc3MgSW50UmVjdDsKIGNsYXNzIEludFNpemU7CiB9
CiAKK3R5cGVkZWYgc3RydWN0IF9Fd2tfV2ViX0Vycm9yIEV3a19XZWJfRXJyb3I7CiAjaWYgRU5B
QkxFKFdFQl9JTlRFTlRTKQogdHlwZWRlZiBzdHJ1Y3QgX0V3a19JbnRlbnQgRXdrX0ludGVudDsK
ICNlbmRpZgpAQCAtMzksNiArNDAsNyBAQCB0eXBlZGVmIHN0cnVjdCBfRXdrX0ludGVudF9TZXJ2
aWNlIEV3a19JbnRlbnRfU2VydmljZTsKIAogdm9pZCBld2tfdmlld19kaXNwbGF5KEV2YXNfT2Jq
ZWN0KiBld2tWaWV3LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0KTsKIHZvaWQgZXdrX3Zp
ZXdfaW1hZ2VfZGF0YV9zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIHZvaWQqIGltYWdlRGF0YSwg
Y29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSk7Cit2b2lkIGV3a192aWV3X2xvYWRfZXJyb3Io
RXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IEV3a19XZWJfRXJyb3IqIGVycm9yKTsKIHZvaWQg
ZXdrX3ZpZXdfdGl0bGVfY2hhbmdlZChFdmFzX09iamVjdCogZXdrVmlldywgY29uc3QgY2hhciog
dGl0bGUpOwogCiBFdmFzX09iamVjdCogZXdrX3ZpZXdfYmFzZV9hZGQoRXZhcyogY2FudmFzLCBX
S0NvbnRleHRSZWYsIFdLUGFnZUdyb3VwUmVmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a193ZWJfZXJyb3IuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX3dlYl9lcnJvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uNzA5ZGMwZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a193ZWJfZXJyb3IuY3BwCkBAIC0wLDAgKzEsMTIzIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiZXdrX3dlYl9l
cnJvci5oIgorCisjaW5jbHVkZSAiV0tTdHJpbmcuaCIKKyNpbmNsdWRlICJXS1VSTC5oIgorI2lu
Y2x1ZGUgImV3a193ZWJfZXJyb3JfcHJpdmF0ZS5oIgorI2luY2x1ZGUgPFdLQVBJQ2FzdC5oPgor
I2luY2x1ZGUgPFdLRXJyb3IuaD4KKyNpbmNsdWRlIDxXS1JldGFpblB0ci5oPgorI2luY2x1ZGUg
PHd0Zi90ZXh0L0NTdHJpbmcuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworc3RydWN0
IF9Fd2tfV2ViX0Vycm9yIHsKKyAgICBXS1JldGFpblB0cjxXS0Vycm9yUmVmPiB3a0Vycm9yOwor
CisgICAgY29uc3QgY2hhciogZG9tYWluOworICAgIGNvbnN0IGNoYXIqIHVybDsKKyAgICBjb25z
dCBjaGFyKiBkZXNjcmlwdGlvbjsKK307CisKKyNkZWZpbmUgRVdLX1dFQl9FUlJPUl9XS19HRVRf
T1JfUkVUVVJOKGVycm9yLCB3a0Vycm9yXywgLi4uKSAgICBcCisgICAgaWYgKCEoZXJyb3IpKSB7
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgRUlO
QV9MT0dfQ1JJVCgiZXJyb3IgaXMgTlVMTC4iKTsgICAgICAgICAgICAgICAgICAgICAgXAorICAg
ICAgICByZXR1cm4gX19WQV9BUkdTX187ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAorICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAorICAgIGlmICghKGVycm9yKS0+d2tFcnJvcikgeyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgRUlOQV9MT0dfQ1JJVCgiZXJyb3ItPndrRXJy
b3IgaXMgTlVMTC4iKTsgICAgICAgICAgICBcCisgICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgV0tFcnJv
clJlZiB3a0Vycm9yXyA9IChlcnJvciktPndrRXJyb3IuZ2V0KCkKKwordm9pZCBld2tfd2ViX2Vy
cm9yX2ZyZWUoRXdrX1dlYl9FcnJvciAqZXJyb3IpCit7CisgICAgRUlOQV9TQUZFVFlfT05fTlVM
TF9SRVRVUk4oZXJyb3IpOworCisgICAgZWluYV9zdHJpbmdzaGFyZV9kZWwoZXJyb3ItPmRvbWFp
bik7CisgICAgZWluYV9zdHJpbmdzaGFyZV9kZWwoZXJyb3ItPnVybCk7CisgICAgZWluYV9zdHJp
bmdzaGFyZV9kZWwoZXJyb3ItPmRlc2NyaXB0aW9uKTsKKyAgICBmcmVlKGVycm9yKTsKK30KKwor
Y29uc3QgY2hhciogZXdrX3dlYl9lcnJvcl9kb21haW5fZ2V0KGNvbnN0IEV3a19XZWJfRXJyb3Iq
IGVycm9yKQoreworICAgIEVXS19XRUJfRVJST1JfV0tfR0VUX09SX1JFVFVSTihlcnJvciwgd2tF
cnJvciwgMCk7CisKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gd2tEb21haW4oQWRvcHRX
SywgV0tFcnJvckNvcHlEb21haW4od2tFcnJvcikpOworICAgIEV3a19XZWJfRXJyb3IqIGV3a0Vy
cm9yID0gY29uc3RfY2FzdDxFd2tfV2ViX0Vycm9yKj4oZXJyb3IpOworICAgIGVpbmFfc3RyaW5n
c2hhcmVfcmVwbGFjZSgmZXdrRXJyb3ItPmRvbWFpbiwgdG9JbXBsKHdrRG9tYWluLmdldCgpKS0+
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisKKyAgICByZXR1cm4gZXJyb3ItPmRvbWFpbjsKK30K
KworY29uc3QgY2hhciogZXdrX3dlYl9lcnJvcl91cmxfZ2V0KGNvbnN0IEV3a19XZWJfRXJyb3Iq
IGVycm9yKQoreworICAgIEVXS19XRUJfRVJST1JfV0tfR0VUX09SX1JFVFVSTihlcnJvciwgd2tF
cnJvciwgMCk7CisKKyAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gd2tVcmwoQWRvcHRXSywgV0tF
cnJvckNvcHlGYWlsaW5nVVJMKHdrRXJyb3IpKTsKKyAgICBFd2tfV2ViX0Vycm9yKiBld2tFcnJv
ciA9IGNvbnN0X2Nhc3Q8RXdrX1dlYl9FcnJvcio+KGVycm9yKTsKKyAgICBlaW5hX3N0cmluZ3No
YXJlX3JlcGxhY2UoJmV3a0Vycm9yLT51cmwsIHRvSW1wbCh3a1VybC5nZXQoKSktPnN0cmluZygp
LnV0ZjgoKS5kYXRhKCkpOworCisgICAgcmV0dXJuIGVycm9yLT51cmw7Cit9CisKK2ludCBld2tf
d2ViX2Vycm9yX2NvZGVfZ2V0KGNvbnN0IEV3a19XZWJfRXJyb3IqIGVycm9yKQoreworICAgIEVX
S19XRUJfRVJST1JfV0tfR0VUX09SX1JFVFVSTihlcnJvciwgd2tFcnJvciwgMCk7CisKKyAgICBy
ZXR1cm4gV0tFcnJvckdldEVycm9yQ29kZSh3a0Vycm9yKTsKK30KKworY29uc3QgY2hhciogZXdr
X3dlYl9lcnJvcl9kZXNjcmlwdGlvbl9nZXQoY29uc3QgRXdrX1dlYl9FcnJvciogZXJyb3IpCit7
CisgICAgRVdLX1dFQl9FUlJPUl9XS19HRVRfT1JfUkVUVVJOKGVycm9yLCB3a0Vycm9yLCAwKTsK
KworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB3a0Rlc2NyaXB0aW9uKEFkb3B0V0ssIFdL
RXJyb3JDb3B5TG9jYWxpemVkRGVzY3JpcHRpb24od2tFcnJvcikpOworICAgIEV3a19XZWJfRXJy
b3IqIGV3a0Vycm9yID0gY29uc3RfY2FzdDxFd2tfV2ViX0Vycm9yKj4oZXJyb3IpOworICAgIGVp
bmFfc3RyaW5nc2hhcmVfcmVwbGFjZSgmZXdrRXJyb3ItPmRlc2NyaXB0aW9uLCB0b0ltcGwod2tE
ZXNjcmlwdGlvbi5nZXQoKSktPnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworCisgICAgcmV0dXJu
IGVycm9yLT5kZXNjcmlwdGlvbjsKK30KKworRWluYV9Cb29sIGV3a193ZWJfZXJyb3JfY2FuY2Vs
bGF0aW9uX2dldChjb25zdCBFd2tfV2ViX0Vycm9yKiBlcnJvcikKK3sKKyAgICBFV0tfV0VCX0VS
Uk9SX1dLX0dFVF9PUl9SRVRVUk4oZXJyb3IsIHdrRXJyb3IsIGZhbHNlKTsKKworICAgIHJldHVy
biB0b0ltcGwod2tFcnJvciktPnBsYXRmb3JtRXJyb3IoKS5pc0NhbmNlbGxhdGlvbigpOworfQor
CitFd2tfV2ViX0Vycm9yKiBld2tfd2ViX2Vycm9yX25ldyhXS0Vycm9yUmVmIGVycm9yKQorewor
ICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChlcnJvciwgMCk7CisKKyAgICBFd2tf
V2ViX0Vycm9yKiBld2tFcnJvciA9IHN0YXRpY19jYXN0PEV3a19XZWJfRXJyb3IqPihjYWxsb2Mo
MSwgc2l6ZW9mKEV3a19XZWJfRXJyb3IpKSk7CisgICAgZXdrRXJyb3ItPndrRXJyb3IgPSBlcnJv
cjsKKworICAgIHJldHVybiBld2tFcnJvcjsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a193ZWJfZXJyb3IuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a193ZWJfZXJyb3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5kYTYyYTY3YjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfd2ViX2Vycm9yLmgKQEAgLTAsMCArMSwxMTEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKy8qKgorICogQGZpbGUgICAgZXdrX3dlYl9lcnJvci5oCisgKiBAYnJpZWYg
ICBEZXNjcmliZXMgdGhlIFdlYiBFcnJvciBBUEkuCisgKi8KKworI2lmbmRlZiBld2tfd2ViX2Vy
cm9yX2gKKyNkZWZpbmUgZXdrX3dlYl9lcnJvcl9oCisKKyNpbmNsdWRlIDxFaW5hLmg+CisKKyNp
ZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworLyoqIENyZWF0ZXMgYSB0
eXBlIG5hbWUgZm9yIEBhIEV3a19XZWJfRXJyb3IuICovCit0eXBlZGVmIHN0cnVjdCBfRXdrX1dl
Yl9FcnJvciBFd2tfV2ViX0Vycm9yOworCisvKioKKyAqIEZyZWVzIHRoZSBnaXZlbiBvYmplY3Qu
CisgKgorICogQHBhcmFtIGVycm9yIHRoZSBlcnJvciBvYmplY3QgdG8gZnJlZQorICovCitFQVBJ
IHZvaWQgZXdrX3dlYl9lcnJvcl9mcmVlKEV3a19XZWJfRXJyb3IgKmVycm9yKTsKKworLyoqCisg
KiBRdWVyeSBkb21haW4gZm9yIHRoaXMgZXJyb3IuCisgKgorICogQHBhcmFtIGVycm9yIGVycm9y
IG9iamVjdCB0byBxdWVyeS4KKyAqCisgKiBAcmV0dXJuIHRoZSBkb21haW4gcG9pbnRlciwgdGhh
dCBtYXkgYmUgQGMgTlVMTC4gVGhpcyBwb2ludGVyIGlzCisgKiAgICAgICAgIGd1YXJhbnRlZWQg
dG8gYmUgZWluYV9zdHJpbmdzaGFyZSwgc28gd2hlbmV2ZXIgcG9zc2libGUKKyAqICAgICAgICAg
c2F2ZSB5b3Vyc2VsZiBzb21lIGNwdSBjeWNsZXMgYW5kIHVzZQorICogICAgICAgICBlaW5hX3N0
cmluZ3NoYXJlX3JlZigpIGluc3RlYWQgb2YgZWluYV9zdHJpbmdzaGFyZV9hZGQoKSBvcgorICog
ICAgICAgICBzdHJkdXAoKS4KKyAqLworRUFQSSBjb25zdCBjaGFyICpld2tfd2ViX2Vycm9yX2Rv
bWFpbl9nZXQoY29uc3QgRXdrX1dlYl9FcnJvciAqZXJyb3IpOworCisvKioKKyAqIFF1ZXJ5IGZh
aWxpbmcgVVJMIGZvciB0aGlzIGVycm9yLgorICoKKyAqIEBwYXJhbSBlcnJvciBlcnJvciBvYmpl
Y3QgdG8gcXVlcnkuCisgKgorICogQHJldHVybiB0aGUgVVJMIHBvaW50ZXIsIHRoYXQgbWF5IGJl
IEBjIE5VTEwuIFRoaXMgcG9pbnRlciBpcworICogICAgICAgICBndWFyYW50ZWVkIHRvIGJlIGVp
bmFfc3RyaW5nc2hhcmUsIHNvIHdoZW5ldmVyIHBvc3NpYmxlCisgKiAgICAgICAgIHNhdmUgeW91
cnNlbGYgc29tZSBjcHUgY3ljbGVzIGFuZCB1c2UKKyAqICAgICAgICAgZWluYV9zdHJpbmdzaGFy
ZV9yZWYoKSBpbnN0ZWFkIG9mIGVpbmFfc3RyaW5nc2hhcmVfYWRkKCkgb3IKKyAqICAgICAgICAg
c3RyZHVwKCkuCisgKi8KK0VBUEkgY29uc3QgY2hhciAqZXdrX3dlYl9lcnJvcl91cmxfZ2V0KGNv
bnN0IEV3a19XZWJfRXJyb3IgKmVycm9yKTsKKworLyoqCisgKiBRdWVyeSBlcnJvciBjb2RlLgor
ICoKKyAqIEBwYXJhbSBlcnJvciBlcnJvciBvYmplY3QgdG8gcXVlcnkuCisgKgorICogQHJldHVy
biB0aGUgZXJyb3IgY29kZS4KKyAqLworRUFQSSBpbnQgZXdrX3dlYl9lcnJvcl9jb2RlX2dldChj
b25zdCBFd2tfV2ViX0Vycm9yICplcnJvcik7CisKKy8qKgorICogUXVlcnkgZGVzY3JpcHRpb24g
Zm9yIHRoaXMgZXJyb3IuCisgKgorICogQHBhcmFtIGVycm9yIGVycm9yIG9iamVjdCB0byBxdWVy
eS4KKyAqCisgKiBAcmV0dXJuIHRoZSBkZXNjcmlwdGlvbiBwb2ludGVyLCB0aGF0IG1heSBiZSBA
YyBOVUxMLiBUaGlzIHBvaW50ZXIgaXMKKyAqICAgICAgICAgZ3VhcmFudGVlZCB0byBiZSBlaW5h
X3N0cmluZ3NoYXJlLCBzbyB3aGVuZXZlciBwb3NzaWJsZQorICogICAgICAgICBzYXZlIHlvdXJz
ZWxmIHNvbWUgY3B1IGN5Y2xlcyBhbmQgdXNlCisgKiAgICAgICAgIGVpbmFfc3RyaW5nc2hhcmVf
cmVmKCkgaW5zdGVhZCBvZiBlaW5hX3N0cmluZ3NoYXJlX2FkZCgpIG9yCisgKiAgICAgICAgIHN0
cmR1cCgpLgorICovCitFQVBJIGNvbnN0IGNoYXIgKmV3a193ZWJfZXJyb3JfZGVzY3JpcHRpb25f
Z2V0KGNvbnN0IEV3a19XZWJfRXJyb3IgKmVycm9yKTsKKworLyoqCisgKiBRdWVyeSBpZiBlcnJv
ciBzaG91bGQgYmUgdHJlYXRlZCBhcyBhIGNhbmNlbGxhdGlvbi4KKyAqCisgKiBAcGFyYW0gZXJy
b3IgZXJyb3Igb2JqZWN0IHRvIHF1ZXJ5LgorICoKKyAqIEByZXR1cm4gQGMgRUlOQV9UUlVFIGlm
IHRoaXMgZXJyb3Igc2hvdWxkIGJlIHRyZWF0ZWQgYXMgYSBjYW5jZWxsYXRpb24sIEBjIEVJTkFf
RkFMU0Ugb3RoZXJ3aXNlCisgKi8KK0VBUEkgRWluYV9Cb29sIGV3a193ZWJfZXJyb3JfY2FuY2Vs
bGF0aW9uX2dldChjb25zdCBFd2tfV2ViX0Vycm9yICplcnJvcik7CisKKyNpZmRlZiBfX2NwbHVz
cGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvLyBld2tfd2ViX2Vycm9yX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a193ZWJfZXJyb3JfcHJpdmF0ZS5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3dlYl9lcnJvcl9wcml2YXRl
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzlhMzFlNQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a193ZWJfZXJyb3Jf
cHJpdmF0ZS5oCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50
ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
ZXdrX3dlYl9lcnJvcl9wcml2YXRlX2gKKyNkZWZpbmUgZXdrX3dlYl9lcnJvcl9wcml2YXRlX2gK
KworI2luY2x1ZGUgPFdLRXJyb3IuaD4KKwordHlwZWRlZiBzdHJ1Y3QgX0V3a19XZWJfRXJyb3Ig
RXdrX1dlYl9FcnJvcjsKKworRXdrX1dlYl9FcnJvciogZXdrX3dlYl9lcnJvcl9uZXcoV0tFcnJv
clJlZiBlcnJvcik7CisKKyNlbmRpZiAvLyBld2tfd2ViX2Vycm9yX3ByaXZhdGVfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150719</attachid>
            <date>2012-07-03 23:45:43 -0700</date>
            <delta_ts>2012-07-03 23:50:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>90479_load_error.patch</filename>
            <type>text/plain</type>
            <size>17442</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAwMzA5ZWUxLi4yZjRjMWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzcg
QEAKIDIwMTItMDctMDMgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVs
LmNvbT4KIAorICAgICAgICBbRUZMXVtXSzJdIEV3a19WaWV3IHNob3VsZCByZXBvcnQgbG9hZCBl
cnJvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkw
NDc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhl
IEV3a19WaWV3IG5vdyBlbWl0cyBhICJsb2FkLGVycm9yIiBzaWduYWwgd2hlbiB0aGUKKyAgICAg
ICAgbWFpbiBmcmFtZSBmYWlscyBsb2FkaW5nLiBJbmZvcm1hdGlvbiBhYm91dCB0aGUgZXJyb3IK
KyAgICAgICAgaXMgcHJvdmlkZWQgdmlhIHRoZSBuZXcgRXdrX1dlYl9FcnJvciB0eXBlLgorCisg
ICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwv
RVdlYktpdDIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHA6Cisg
ICAgICAgIChld2tfdmlld19sb2FkX2Vycm9yKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfdmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2xvYWRl
cl9jbGllbnQuY3BwOgorICAgICAgICAoZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZSk6Cisg
ICAgICAgIChld2tfdmlld19sb2FkZXJfY2xpZW50X2F0dGFjaCk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
ZWZsL2V3a193ZWJfZXJyb3IuY3BwOiBBZGRlZC4KKyAgICAgICAgKF9Fd2tfV2ViX0Vycm9yKToK
KyAgICAgICAgKGV3a193ZWJfZXJyb3JfZnJlZSk6CisgICAgICAgIChld2tfd2ViX2Vycm9yX2Rv
bWFpbl9nZXQpOgorICAgICAgICAoZXdrX3dlYl9lcnJvcl91cmxfZ2V0KToKKyAgICAgICAgKGV3
a193ZWJfZXJyb3JfY29kZV9nZXQpOgorICAgICAgICAoZXdrX3dlYl9lcnJvcl9kZXNjcmlwdGlv
bl9nZXQpOgorICAgICAgICAoZXdrX3dlYl9lcnJvcl9jYW5jZWxsYXRpb25fZ2V0KToKKyAgICAg
ICAgKGV3a193ZWJfZXJyb3JfbmV3KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tf
d2ViX2Vycm9yLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a193ZWJf
ZXJyb3JfcHJpdmF0ZS5oOiBBZGRlZC4KKworMjAxMi0wNy0wMyAgQ2hyaXN0b3BoZSBEdW1leiAg
PGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgorCiAgICAgICAgIFtXSzJdIEFkZCBzdXBwb3J0
IGZvciBCYXR0ZXJ5IFN0YXR1cyBBUEkKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTg5NTU4CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXggY2Y0
YTg3YS4uM2M3MzhlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21h
a2UKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTM2LDYgKzM2LDcg
QEAgTElTVChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X2ludGVudF9zZXJ2aWNlLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcAog
ICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2xvYWRlcl9jbGllbnQuY3BwCisgICAgVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX3dlYl9lcnJvci5jcHAKIAogICAgIFVJUHJvY2Vzcy9jYWlyby9C
YWNraW5nU3RvcmVDYWlyby5jcHAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvRVdlYktpdDIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L0VXZWJLaXQyLmgKaW5kZXggNWRhY2MxZi4uY2Q4YzljYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRVdlYktpdDIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9FV2ViS2l0Mi5oCkBAIC0zMSw1ICszMSw2IEBACiAjaW5jbHVkZSAi
ZXdrX2ludGVudC5oIgogI2luY2x1ZGUgImV3a19pbnRlbnRfc2VydmljZS5oIgogI2luY2x1ZGUg
ImV3a192aWV3LmgiCisjaW5jbHVkZSAiZXdrX3dlYl9lcnJvci5oIgogCiAjZW5kaWYgLy8gRVdl
YktpdDJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3Bw
CmluZGV4IGU2OWQ4ZjAuLjk4YjBmNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfdmlldy5jcHAKQEAgLTY1OSw2ICs2NTksMTggQEAgdm9pZCBld2tfdmlld19p
bWFnZV9kYXRhX3NldChFdmFzX09iamVjdCogZXdrVmlldywgdm9pZCogaW1hZ2VEYXRhLCBjb25z
dCBJbnRTaXoKICAgICBldmFzX29iamVjdF9pbWFnZV9kYXRhX2NvcHlfc2V0KHNtYXJ0RGF0YS0+
aW1hZ2UsIGltYWdlRGF0YSk7CiB9CiAKKy8qKgorICogQGludGVybmFsCisgKiBSZXBvcnRzIGxv
YWQgZmFpbGVkIHdpdGggZXJyb3IgaW5mb3JtYXRpb24uCisgKgorICogRW1pdHMgc2lnbmFsOiAi
bG9hZCxlcnJvciIgd2l0aCBwb2ludGVyIHRvIEV3a19XZWJfRXJyb3IuCisgKi8KK3ZvaWQgZXdr
X3ZpZXdfbG9hZF9lcnJvcihFdmFzX09iamVjdCogZXdrVmlldywgY29uc3QgRXdrX1dlYl9FcnJv
ciogZXJyb3IpCit7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfY2FsbChld2tWaWV3
LCAibG9hZCxlcnJvciIsIGNvbnN0X2Nhc3Q8RXdrX1dlYl9FcnJvcio+KGVycm9yKSk7Cit9CisK
KwogI2lmIEVOQUJMRShXRUJfSU5URU5UU19UQUcpCiAvKioKICAqIEBpbnRlcm5hbApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmgKaW5kZXggMWM2M2Q5ZS4uZjhk
MDEyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Zp
ZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5oCkBA
IC0yOCw2ICsyOCw3IEBACiAgKgogICogLSAiaW50ZW50LHJlcXVlc3QsbmV3IiwgRXdrX0ludGVu
dF9SZXF1ZXN0KjogcmVwb3J0cyBuZXcgV2ViIGludGVudCByZXF1ZXN0LgogICogLSAiaW50ZW50
LHNlcnZpY2UscmVnaXN0ZXIiLCBFd2tfSW50ZW50X1NlcnZpY2UqOiByZXBvcnRzIG5ldyBXZWIg
aW50ZW50IHNlcnZpY2UgcmVnaXN0cmF0aW9uLgorICogLSAibG9hZCxlcnJvciIsIGNvbnN0IEV3
a19XZWJfRXJyb3IqOiByZXBvcnRzIG1haW4gZnJhbWUgbG9hZCBmYWlsZWQuCiAgKiAtICJ0aXRs
ZSxjaGFuZ2VkIiwgY29uc3QgY2hhcio6IHRpdGxlIG9mIHRoZSBtYWluIGZyYW1lIHdhcyBjaGFu
Z2VkLgogICovCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a192aWV3X2xvYWRlcl9jbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3ZpZXdfbG9hZGVyX2NsaWVudC5jcHAKaW5kZXggYzhhNWY2Yi4uYmMxZjBmYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfbG9h
ZGVyX2NsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X3ZpZXdfbG9hZGVyX2NsaWVudC5jcHAKQEAgLTMyLDYgKzMyLDggQEAKICNpbmNsdWRlICJld2tf
aW50ZW50X3NlcnZpY2VfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a192aWV3X2xvYWRlcl9jbGll
bnRfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a192aWV3X3ByaXZhdGUuaCIKKyNpbmNsdWRlICJl
d2tfd2ViX2Vycm9yLmgiCisjaW5jbHVkZSAiZXdrX3dlYl9lcnJvcl9wcml2YXRlLmgiCiAjaW5j
bHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpAQCAt
NjUsNiArNjcsMTcgQEAgc3RhdGljIHZvaWQgcmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJhbWUo
V0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLSW4KIH0KICNlbmRpZgogCitzdGF0
aWMgdm9pZCBkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS0Zy
YW1lUmVmIGZyYW1lLCBXS0Vycm9yUmVmIGVycm9yLCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQgKmNs
aWVudEluZm8pCit7CisgICAgaWYgKCFXS0ZyYW1lSXNNYWluRnJhbWUoZnJhbWUpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBFdmFzX09iamVjdCogZXdrVmlldyA9IHN0YXRpY19jYXN0PEV2YXNf
T2JqZWN0Kj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOworICAgIEV3a19XZWJfRXJy
b3IqIGV3a0Vycm9yID0gZXdrX3dlYl9lcnJvcl9uZXcoZXJyb3IpOworICAgIGV3a192aWV3X2xv
YWRfZXJyb3IoZXdrVmlldywgZXdrRXJyb3IpOworICAgIGV3a193ZWJfZXJyb3JfZnJlZShld2tF
cnJvcik7Cit9CisKIHZvaWQgZXdrX3ZpZXdfbG9hZGVyX2NsaWVudF9hdHRhY2goV0tQYWdlUmVm
IHBhZ2VSZWYsIEV2YXNfT2JqZWN0KiBld2tWaWV3KQogewogICAgIFdLUGFnZUxvYWRlckNsaWVu
dCBsb2FkQ2xpZW50OwpAQCAtNzgsNSArOTEsNiBAQCB2b2lkIGV3a192aWV3X2xvYWRlcl9jbGll
bnRfYXR0YWNoKFdLUGFnZVJlZiBwYWdlUmVmLCBFdmFzX09iamVjdCogZXdrVmlldykKICNpZiBF
TkFCTEUoV0VCX0lOVEVOVFNfVEFHKQogICAgIGxvYWRDbGllbnQucmVnaXN0ZXJJbnRlbnRTZXJ2
aWNlRm9yRnJhbWUgPSByZWdpc3RlckludGVudFNlcnZpY2VGb3JGcmFtZTsKICNlbmRpZgorICAg
IGxvYWRDbGllbnQuZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZSA9IGRpZEZhaWxMb2FkV2l0
aEVycm9yRm9yRnJhbWU7CiAgICAgV0tQYWdlU2V0UGFnZUxvYWRlckNsaWVudChwYWdlUmVmLCAm
bG9hZENsaWVudCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfdmlld19wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfdmlld19wcml2YXRlLmgKaW5kZXggOGYwMjE3MS4uYjUxNGEyMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcHJpdmF0ZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3ByaXZhdGUuaApAQCAt
MzAsNiArMzAsNyBAQCBjbGFzcyBJbnRSZWN0OwogY2xhc3MgSW50U2l6ZTsKIH0KIAordHlwZWRl
ZiBzdHJ1Y3QgX0V3a19XZWJfRXJyb3IgRXdrX1dlYl9FcnJvcjsKICNpZiBFTkFCTEUoV0VCX0lO
VEVOVFMpCiB0eXBlZGVmIHN0cnVjdCBfRXdrX0ludGVudCBFd2tfSW50ZW50OwogI2VuZGlmCkBA
IC0zOSw2ICs0MCw3IEBAIHR5cGVkZWYgc3RydWN0IF9Fd2tfSW50ZW50X1NlcnZpY2UgRXdrX0lu
dGVudF9TZXJ2aWNlOwogCiB2b2lkIGV3a192aWV3X2Rpc3BsYXkoRXZhc19PYmplY3QqIGV3a1Zp
ZXcsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3QpOwogdm9pZCBld2tfdmlld19pbWFnZV9k
YXRhX3NldChFdmFzX09iamVjdCogZXdrVmlldywgdm9pZCogaW1hZ2VEYXRhLCBjb25zdCBXZWJD
b3JlOjpJbnRTaXplJiBzaXplKTsKK3ZvaWQgZXdrX3ZpZXdfbG9hZF9lcnJvcihFdmFzX09iamVj
dCogZXdrVmlldywgY29uc3QgRXdrX1dlYl9FcnJvciogZXJyb3IpOwogdm9pZCBld2tfdmlld190
aXRsZV9jaGFuZ2VkKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBjaGFyKiB0aXRsZSk7CiAK
IEV2YXNfT2JqZWN0KiBld2tfdmlld19iYXNlX2FkZChFdmFzKiBjYW52YXMsIFdLQ29udGV4dFJl
ZiwgV0tQYWdlR3JvdXBSZWYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX3dlYl9lcnJvci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfd2ViX2Vycm9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li45NmIwOGQzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3dlYl9lcnJvci5jcHAKQEAgLTAsMCArMSwxMjkgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJld2tfd2ViX2Vycm9yLmgiCisK
KyNpbmNsdWRlICJXS1N0cmluZy5oIgorI2luY2x1ZGUgIldLVVJMLmgiCisjaW5jbHVkZSAiZXdr
X3dlYl9lcnJvcl9wcml2YXRlLmgiCisjaW5jbHVkZSA8V0tBUElDYXN0Lmg+CisjaW5jbHVkZSA8
V0tFcnJvci5oPgorI2luY2x1ZGUgPFdLUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQv
Q1N0cmluZy5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCisvLyBDb3BpZWQgZnJvbSBF
cnJvcnNHdGsuaCB3aGljaCBpcyB1c2VkIGJ5IERvd25sb2FkU291cC5jcHAuCitzdGF0aWMgY29u
c3QgY2hhciBlcnJvckRvbWFpbkRvd25sb2FkW10gPSAiV2ViS2l0RG93bmxvYWRFcnJvciI7CisK
K3N0cnVjdCBfRXdrX1dlYl9FcnJvciB7CisgICAgV0tSZXRhaW5QdHI8V0tFcnJvclJlZj4gd2tF
cnJvcjsKKworICAgIGNvbnN0IGNoYXIqIHVybDsKKyAgICBjb25zdCBjaGFyKiBkZXNjcmlwdGlv
bjsKK307CisKKyNkZWZpbmUgRVdLX1dFQl9FUlJPUl9XS19HRVRfT1JfUkVUVVJOKGVycm9yLCB3
a0Vycm9yXywgLi4uKSAgICBcCisgICAgaWYgKCEoZXJyb3IpKSB7ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgRUlOQV9MT0dfQ1JJVCgiZXJyb3Ig
aXMgTlVMTC4iKTsgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICByZXR1cm4gX19WQV9B
UkdTX187ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAg
IGlmICghKGVycm9yKS0+d2tFcnJvcikgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKKyAgICAgICAgRUlOQV9MT0dfQ1JJVCgiZXJyb3ItPndrRXJyb3IgaXMgTlVMTC4iKTsgICAg
ICAgICAgICBcCisgICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgV0tFcnJvclJlZiB3a0Vycm9yXyA9IChl
cnJvciktPndrRXJyb3IuZ2V0KCkKKwordm9pZCBld2tfd2ViX2Vycm9yX2ZyZWUoRXdrX1dlYl9F
cnJvciAqZXJyb3IpCit7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4oZXJyb3IpOwor
CisgICAgZWluYV9zdHJpbmdzaGFyZV9kZWwoZXJyb3ItPnVybCk7CisgICAgZWluYV9zdHJpbmdz
aGFyZV9kZWwoZXJyb3ItPmRlc2NyaXB0aW9uKTsKKyAgICBmcmVlKGVycm9yKTsKK30KKworRXdr
X1dlYl9FcnJvcl9UeXBlIGV3a193ZWJfZXJyb3JfdHlwZV9nZXQoY29uc3QgRXdrX1dlYl9FcnJv
ciogZXJyb3IpCit7CisgICAgRVdLX1dFQl9FUlJPUl9XS19HRVRfT1JfUkVUVVJOKGVycm9yLCB3
a0Vycm9yLCBFV0tfV0VCX0VSUk9SX1RZUEVfTk9ORSk7CisKKyAgICBXS1JldGFpblB0cjxXS1N0
cmluZ1JlZj4gd2tEb21haW4oQWRvcHRXSywgV0tFcnJvckNvcHlEb21haW4od2tFcnJvcikpOwor
ICAgIFdURjo6U3RyaW5nIGVycm9yRG9tYWluID0gdG9XVEZTdHJpbmcod2tEb21haW4uZ2V0KCkp
OworCisgICAgaWYgKGVycm9yRG9tYWluID09IFN0cmluZyhnX3F1YXJrX3RvX3N0cmluZyhTT1VQ
X0hUVFBfRVJST1IpKSkKKyAgICAgICAgcmV0dXJuIEVXS19XRUJfRVJST1JfVFlQRV9IVFRQOwor
ICAgIGlmIChlcnJvckRvbWFpbiA9PSBTdHJpbmcoZ19xdWFya190b19zdHJpbmcoR19JT19FUlJP
UikpKQorICAgICAgICByZXR1cm4gRVdLX1dFQl9FUlJPUl9UWVBFX0lPOworICAgIGlmIChlcnJv
ckRvbWFpbiA9PSBlcnJvckRvbWFpbkRvd25sb2FkKQorICAgICAgICByZXR1cm4gRVdLX1dFQl9F
UlJPUl9UWVBFX0RPV05MT0FEOworICAgIHJldHVybiBFV0tfV0VCX0VSUk9SX1RZUEVfSU5URVJO
QUw7Cit9CisKK2NvbnN0IGNoYXIqIGV3a193ZWJfZXJyb3JfdXJsX2dldChjb25zdCBFd2tfV2Vi
X0Vycm9yKiBlcnJvcikKK3sKKyAgICBFV0tfV0VCX0VSUk9SX1dLX0dFVF9PUl9SRVRVUk4oZXJy
b3IsIHdrRXJyb3IsIDApOworCisgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHdrVXJsKEFkb3B0
V0ssIFdLRXJyb3JDb3B5RmFpbGluZ1VSTCh3a0Vycm9yKSk7CisgICAgRXdrX1dlYl9FcnJvciog
ZXdrRXJyb3IgPSBjb25zdF9jYXN0PEV3a19XZWJfRXJyb3IqPihlcnJvcik7CisgICAgZWluYV9z
dHJpbmdzaGFyZV9yZXBsYWNlKCZld2tFcnJvci0+dXJsLCB0b0ltcGwod2tVcmwuZ2V0KCkpLT5z
dHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKworICAgIHJldHVybiBlcnJvci0+dXJsOworfQorCitp
bnQgZXdrX3dlYl9lcnJvcl9jb2RlX2dldChjb25zdCBFd2tfV2ViX0Vycm9yKiBlcnJvcikKK3sK
KyAgICBFV0tfV0VCX0VSUk9SX1dLX0dFVF9PUl9SRVRVUk4oZXJyb3IsIHdrRXJyb3IsIDApOwor
CisgICAgcmV0dXJuIFdLRXJyb3JHZXRFcnJvckNvZGUod2tFcnJvcik7Cit9CisKK2NvbnN0IGNo
YXIqIGV3a193ZWJfZXJyb3JfZGVzY3JpcHRpb25fZ2V0KGNvbnN0IEV3a19XZWJfRXJyb3IqIGVy
cm9yKQoreworICAgIEVXS19XRUJfRVJST1JfV0tfR0VUX09SX1JFVFVSTihlcnJvciwgd2tFcnJv
ciwgMCk7CisKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gd2tEZXNjcmlwdGlvbihBZG9w
dFdLLCBXS0Vycm9yQ29weUxvY2FsaXplZERlc2NyaXB0aW9uKHdrRXJyb3IpKTsKKyAgICBFd2tf
V2ViX0Vycm9yKiBld2tFcnJvciA9IGNvbnN0X2Nhc3Q8RXdrX1dlYl9FcnJvcio+KGVycm9yKTsK
KyAgICBlaW5hX3N0cmluZ3NoYXJlX3JlcGxhY2UoJmV3a0Vycm9yLT5kZXNjcmlwdGlvbiwgdG9J
bXBsKHdrRGVzY3JpcHRpb24uZ2V0KCkpLT5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKworICAg
IHJldHVybiBlcnJvci0+ZGVzY3JpcHRpb247Cit9CisKK0VpbmFfQm9vbCBld2tfd2ViX2Vycm9y
X2NhbmNlbGxhdGlvbl9nZXQoY29uc3QgRXdrX1dlYl9FcnJvciogZXJyb3IpCit7CisgICAgRVdL
X1dFQl9FUlJPUl9XS19HRVRfT1JfUkVUVVJOKGVycm9yLCB3a0Vycm9yLCBmYWxzZSk7CisKKyAg
ICByZXR1cm4gdG9JbXBsKHdrRXJyb3IpLT5wbGF0Zm9ybUVycm9yKCkuaXNDYW5jZWxsYXRpb24o
KTsKK30KKworRXdrX1dlYl9FcnJvciogZXdrX3dlYl9lcnJvcl9uZXcoV0tFcnJvclJlZiBlcnJv
cikKK3sKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoZXJyb3IsIDApOworCisg
ICAgRXdrX1dlYl9FcnJvciogZXdrRXJyb3IgPSBzdGF0aWNfY2FzdDxFd2tfV2ViX0Vycm9yKj4o
Y2FsbG9jKDEsIHNpemVvZihFd2tfV2ViX0Vycm9yKSkpOworICAgIGV3a0Vycm9yLT53a0Vycm9y
ID0gZXJyb3I7CisKKyAgICByZXR1cm4gZXdrRXJyb3I7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfd2ViX2Vycm9yLmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfd2ViX2Vycm9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMmQ5NjY2NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a193ZWJfZXJyb3IuaApAQCAtMCwwICsxLDEyMiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworLyoqCisgKiBAZmlsZSAgICBld2tfd2ViX2Vycm9yLmgKKyAqIEBi
cmllZiAgIERlc2NyaWJlcyB0aGUgV2ViIEVycm9yIEFQSS4KKyAqLworCisjaWZuZGVmIGV3a193
ZWJfZXJyb3JfaAorI2RlZmluZSBld2tfd2ViX2Vycm9yX2gKKworI2luY2x1ZGUgPEVpbmEuaD4K
KworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisvKiogQ3JlYXRl
cyBhIHR5cGUgbmFtZSBmb3IgQGEgRXdrX1dlYl9FcnJvci4gKi8KK3R5cGVkZWYgc3RydWN0IF9F
d2tfV2ViX0Vycm9yIEV3a19XZWJfRXJyb3I7CisKKy8vLyBDcmVhdGVzIGEgdHlwZSBuYW1lIGZv
ciBFd2tfV2ViX0Vycm9yX1R5cGUuCit0eXBlZGVmIGVudW0geworICAgIEVXS19XRUJfRVJST1Jf
VFlQRV9OT05FLAorICAgIEVXS19XRUJfRVJST1JfVFlQRV9JTlRFUk5BTCwKKyAgICBFV0tfV0VC
X0VSUk9SX1RZUEVfSFRUUCwKKyAgICBFV0tfV0VCX0VSUk9SX1RZUEVfSU8sCisgICAgRVdLX1dF
Ql9FUlJPUl9UWVBFX0RPV05MT0FECit9IEV3a19XZWJfRXJyb3JfVHlwZTsKKworLyoqCisgKiBG
cmVlcyB0aGUgZ2l2ZW4gb2JqZWN0LgorICoKKyAqIEBwYXJhbSBlcnJvciB0aGUgZXJyb3Igb2Jq
ZWN0IHRvIGZyZWUKKyAqLworRUFQSSB2b2lkIGV3a193ZWJfZXJyb3JfZnJlZShFd2tfV2ViX0Vy
cm9yICplcnJvcik7CisKKy8qKgorICogUXVlcnkgdHlwZSBmb3IgdGhpcyBlcnJvci4KKyAqCisg
KiBAcGFyYW0gZXJyb3IgZXJyb3Igb2JqZWN0IHRvIHF1ZXJ5LgorICoKKyAqIEByZXR1cm4gdGhl
IGVycm9yIHR5cGUsIHRoYXQgbWF5IGJlIEBjIE5VTEwuIFRoaXMgcG9pbnRlciBpcworICogICAg
ICAgICBndWFyYW50ZWVkIHRvIGJlIGVpbmFfc3RyaW5nc2hhcmUsIHNvIHdoZW5ldmVyIHBvc3Np
YmxlCisgKiAgICAgICAgIHNhdmUgeW91cnNlbGYgc29tZSBjcHUgY3ljbGVzIGFuZCB1c2UKKyAq
ICAgICAgICAgZWluYV9zdHJpbmdzaGFyZV9yZWYoKSBpbnN0ZWFkIG9mIGVpbmFfc3RyaW5nc2hh
cmVfYWRkKCkgb3IKKyAqICAgICAgICAgc3RyZHVwKCkuCisgKi8KK0VBUEkgRXdrX1dlYl9FcnJv
cl9UeXBlIGV3a193ZWJfZXJyb3JfdHlwZV9nZXQoY29uc3QgRXdrX1dlYl9FcnJvciAqZXJyb3Ip
OworCisvKioKKyAqIFF1ZXJ5IGZhaWxpbmcgVVJMIGZvciB0aGlzIGVycm9yLgorICoKKyAqIFVS
TCB0aGF0IGZhaWxlZCBsb2FkaW5nLgorICoKKyAqIEBwYXJhbSBlcnJvciBlcnJvciBvYmplY3Qg
dG8gcXVlcnkuCisgKgorICogQHJldHVybiB0aGUgVVJMIHBvaW50ZXIsIHRoYXQgbWF5IGJlIEBj
IE5VTEwuIFRoaXMgcG9pbnRlciBpcworICogICAgICAgICBndWFyYW50ZWVkIHRvIGJlIGVpbmFf
c3RyaW5nc2hhcmUsIHNvIHdoZW5ldmVyIHBvc3NpYmxlCisgKiAgICAgICAgIHNhdmUgeW91cnNl
bGYgc29tZSBjcHUgY3ljbGVzIGFuZCB1c2UKKyAqICAgICAgICAgZWluYV9zdHJpbmdzaGFyZV9y
ZWYoKSBpbnN0ZWFkIG9mIGVpbmFfc3RyaW5nc2hhcmVfYWRkKCkgb3IKKyAqICAgICAgICAgc3Ry
ZHVwKCkuCisgKi8KK0VBUEkgY29uc3QgY2hhciAqZXdrX3dlYl9lcnJvcl91cmxfZ2V0KGNvbnN0
IEV3a19XZWJfRXJyb3IgKmVycm9yKTsKKworLyoqCisgKiBRdWVyeSBIVFRQIGVycm9yIGNvZGUu
CisgKgorICogQHBhcmFtIGVycm9yIGVycm9yIG9iamVjdCB0byBxdWVyeS4KKyAqCisgKiBAcmV0
dXJuIHRoZSBIVFRQIGVycm9yIGNvZGUuCisgKi8KK0VBUEkgaW50IGV3a193ZWJfZXJyb3JfY29k
ZV9nZXQoY29uc3QgRXdrX1dlYl9FcnJvciAqZXJyb3IpOworCisvKioKKyAqIFF1ZXJ5IGRlc2Ny
aXB0aW9uIGZvciB0aGlzIGVycm9yLgorICoKKyAqIEBwYXJhbSBlcnJvciBlcnJvciBvYmplY3Qg
dG8gcXVlcnkuCisgKgorICogQHJldHVybiB0aGUgZGVzY3JpcHRpb24gcG9pbnRlciwgdGhhdCBt
YXkgYmUgQGMgTlVMTC4gVGhpcyBwb2ludGVyIGlzCisgKiAgICAgICAgIGd1YXJhbnRlZWQgdG8g
YmUgZWluYV9zdHJpbmdzaGFyZSwgc28gd2hlbmV2ZXIgcG9zc2libGUKKyAqICAgICAgICAgc2F2
ZSB5b3Vyc2VsZiBzb21lIGNwdSBjeWNsZXMgYW5kIHVzZQorICogICAgICAgICBlaW5hX3N0cmlu
Z3NoYXJlX3JlZigpIGluc3RlYWQgb2YgZWluYV9zdHJpbmdzaGFyZV9hZGQoKSBvcgorICogICAg
ICAgICBzdHJkdXAoKS4KKyAqLworRUFQSSBjb25zdCBjaGFyICpld2tfd2ViX2Vycm9yX2Rlc2Ny
aXB0aW9uX2dldChjb25zdCBFd2tfV2ViX0Vycm9yICplcnJvcik7CisKKy8qKgorICogUXVlcnkg
aWYgZXJyb3Igc2hvdWxkIGJlIHRyZWF0ZWQgYXMgYSBjYW5jZWxsYXRpb24uCisgKgorICogQHBh
cmFtIGVycm9yIGVycm9yIG9iamVjdCB0byBxdWVyeS4KKyAqCisgKiBAcmV0dXJuIEBjIEVJTkFf
VFJVRSBpZiB0aGlzIGVycm9yIHNob3VsZCBiZSB0cmVhdGVkIGFzIGEgY2FuY2VsbGF0aW9uLCBA
YyBFSU5BX0ZBTFNFIG90aGVyd2lzZQorICovCitFQVBJIEVpbmFfQm9vbCBld2tfd2ViX2Vycm9y
X2NhbmNlbGxhdGlvbl9nZXQoY29uc3QgRXdrX1dlYl9FcnJvciAqZXJyb3IpOworCisjaWZkZWYg
X19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLy8gZXdrX3dlYl9lcnJvcl9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfd2ViX2Vycm9yX3By
aXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a193ZWJfZXJyb3Jf
cHJpdmF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM5YTMxZTUKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfd2Vi
X2Vycm9yX3ByaXZhdGUuaApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIGV3a193ZWJfZXJyb3JfcHJpdmF0ZV9oCisjZGVmaW5lIGV3a193ZWJfZXJyb3JfcHJp
dmF0ZV9oCisKKyNpbmNsdWRlIDxXS0Vycm9yLmg+CisKK3R5cGVkZWYgc3RydWN0IF9Fd2tfV2Vi
X0Vycm9yIEV3a19XZWJfRXJyb3I7CisKK0V3a19XZWJfRXJyb3IqIGV3a193ZWJfZXJyb3JfbmV3
KFdLRXJyb3JSZWYgZXJyb3IpOworCisjZW5kaWYgLy8gZXdrX3dlYl9lcnJvcl9wcml2YXRlX2gK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150720</attachid>
            <date>2012-07-03 23:50:44 -0700</date>
            <delta_ts>2012-07-04 00:34:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>90479_load_error.patch</filename>
            <type>text/plain</type>
            <size>17644</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBkZDgxN2NlLi43ZGNhMDAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzcg
QEAKIDIwMTItMDctMDMgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVs
LmNvbT4KIAorICAgICAgICBbRUZMXVtXSzJdIEV3a19WaWV3IHNob3VsZCByZXBvcnQgbG9hZCBl
cnJvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkw
NDc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhl
IEV3a19WaWV3IG5vdyBlbWl0cyBhICJsb2FkLGVycm9yIiBzaWduYWwgd2hlbiB0aGUKKyAgICAg
ICAgbWFpbiBmcmFtZSBmYWlscyBsb2FkaW5nLiBJbmZvcm1hdGlvbiBhYm91dCB0aGUgZXJyb3IK
KyAgICAgICAgaXMgcHJvdmlkZWQgdmlhIHRoZSBuZXcgRXdrX1dlYl9FcnJvciB0eXBlLgorCisg
ICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwv
RVdlYktpdDIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHA6Cisg
ICAgICAgIChld2tfdmlld19sb2FkX2Vycm9yKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfdmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2xvYWRl
cl9jbGllbnQuY3BwOgorICAgICAgICAoZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZSk6Cisg
ICAgICAgIChld2tfdmlld19sb2FkZXJfY2xpZW50X2F0dGFjaCk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
ZWZsL2V3a193ZWJfZXJyb3IuY3BwOiBBZGRlZC4KKyAgICAgICAgKF9Fd2tfV2ViX0Vycm9yKToK
KyAgICAgICAgKGV3a193ZWJfZXJyb3JfZnJlZSk6CisgICAgICAgIChld2tfd2ViX2Vycm9yX2Rv
bWFpbl9nZXQpOgorICAgICAgICAoZXdrX3dlYl9lcnJvcl91cmxfZ2V0KToKKyAgICAgICAgKGV3
a193ZWJfZXJyb3JfY29kZV9nZXQpOgorICAgICAgICAoZXdrX3dlYl9lcnJvcl9kZXNjcmlwdGlv
bl9nZXQpOgorICAgICAgICAoZXdrX3dlYl9lcnJvcl9jYW5jZWxsYXRpb25fZ2V0KToKKyAgICAg
ICAgKGV3a193ZWJfZXJyb3JfbmV3KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tf
d2ViX2Vycm9yLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a193ZWJf
ZXJyb3JfcHJpdmF0ZS5oOiBBZGRlZC4KKworMjAxMi0wNy0wMyAgQ2hyaXN0b3BoZSBEdW1leiAg
PGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgorCiAgICAgICAgIFtXSzJdW0VGTF0gRXdrX1Zp
ZXcgc2hvdWxkIHJlcG9ydCB0aGUgbG9hZCBwcm9ncmVzcwogICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA0NTcKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvUGxhdGZvcm1FZmwuY21ha2UgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFr
ZQppbmRleCBjZjRhODdhLi4zYzczOGViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAt
MzYsNiArMzYsNyBAQCBMSVNUKEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfaW50ZW50X3NlcnZpY2UuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X3ZpZXcuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfbG9hZGVyX2NsaWVudC5j
cHAKKyAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfd2ViX2Vycm9yLmNwcAogCiAgICAgVUlQcm9j
ZXNzL2NhaXJvL0JhY2tpbmdTdG9yZUNhaXJvLmNwcAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9FV2ViS2l0Mi5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvRVdlYktpdDIuaAppbmRleCA1ZGFjYzFmLi5jZDhjOWNhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9FV2ViS2l0Mi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0VXZWJLaXQyLmgKQEAgLTMxLDUgKzMxLDYgQEAK
ICNpbmNsdWRlICJld2tfaW50ZW50LmgiCiAjaW5jbHVkZSAiZXdrX2ludGVudF9zZXJ2aWNlLmgi
CiAjaW5jbHVkZSAiZXdrX3ZpZXcuaCIKKyNpbmNsdWRlICJld2tfd2ViX2Vycm9yLmgiCiAKICNl
bmRpZiAvLyBFV2ViS2l0Ml9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfdmlldy5jcHAKaW5kZXggYjE0NDVlNC4uZTc5YmQzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcApAQCAtNjc4LDYgKzY3OCwxOCBAQCB2b2lk
IGV3a192aWV3X2ltYWdlX2RhdGFfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCB2b2lkKiBpbWFn
ZURhdGEsIGNvbnN0IEludFNpegogICAgIGV2YXNfb2JqZWN0X2ltYWdlX2RhdGFfY29weV9zZXQo
c21hcnREYXRhLT5pbWFnZSwgaW1hZ2VEYXRhKTsKIH0KIAorLyoqCisgKiBAaW50ZXJuYWwKKyAq
IFJlcG9ydHMgbG9hZCBmYWlsZWQgd2l0aCBlcnJvciBpbmZvcm1hdGlvbi4KKyAqCisgKiBFbWl0
cyBzaWduYWw6ICJsb2FkLGVycm9yIiB3aXRoIHBvaW50ZXIgdG8gRXdrX1dlYl9FcnJvci4KKyAq
Lwordm9pZCBld2tfdmlld19sb2FkX2Vycm9yKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBF
d2tfV2ViX0Vycm9yKiBlcnJvcikKK3sKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19j
YWxsKGV3a1ZpZXcsICJsb2FkLGVycm9yIiwgY29uc3RfY2FzdDxFd2tfV2ViX0Vycm9yKj4oZXJy
b3IpKTsKK30KKworCiAjaWYgRU5BQkxFKFdFQl9JTlRFTlRTX1RBRykKIC8qKgogICogQGludGVy
bmFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmll
dy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuaAppbmRleCAw
YjhkZjNkLi4zNzUwNmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfdmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a192aWV3LmgKQEAgLTI4LDYgKzI4LDcgQEAKICAqCiAgKiAtICJpbnRlbnQscmVxdWVzdCxuZXci
LCBFd2tfSW50ZW50X1JlcXVlc3QqOiByZXBvcnRzIG5ldyBXZWIgaW50ZW50IHJlcXVlc3QuCiAg
KiAtICJpbnRlbnQsc2VydmljZSxyZWdpc3RlciIsIEV3a19JbnRlbnRfU2VydmljZSo6IHJlcG9y
dHMgbmV3IFdlYiBpbnRlbnQgc2VydmljZSByZWdpc3RyYXRpb24uCisgKiAtICJsb2FkLGVycm9y
IiwgY29uc3QgRXdrX1dlYl9FcnJvcio6IHJlcG9ydHMgbWFpbiBmcmFtZSBsb2FkIGZhaWxlZC4K
ICAqIC0gImxvYWQscHJvZ3Jlc3MiLCBkb3VibGUqOiBsb2FkIHByb2dyZXNzIGhhcyBjaGFuZ2Vk
ICh2YWx1ZSBmcm9tIDAuMCB0byAxLjApLgogICogLSAidGl0bGUsY2hhbmdlZCIsIGNvbnN0IGNo
YXIqOiB0aXRsZSBvZiB0aGUgbWFpbiBmcmFtZSB3YXMgY2hhbmdlZC4KICAqLwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfbG9hZGVyX2NsaWVu
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19sb2FkZXJf
Y2xpZW50LmNwcAppbmRleCBmM2YwZmQ4Li5mOTNjN2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19sb2FkZXJfY2xpZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19sb2FkZXJfY2xpZW50LmNw
cApAQCAtMzIsNiArMzIsOCBAQAogI2luY2x1ZGUgImV3a19pbnRlbnRfc2VydmljZV9wcml2YXRl
LmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXdfbG9hZGVyX2NsaWVudF9wcml2YXRlLmgiCiAjaW5jbHVk
ZSAiZXdrX3ZpZXdfcHJpdmF0ZS5oIgorI2luY2x1ZGUgImV3a193ZWJfZXJyb3IuaCIKKyNpbmNs
dWRlICJld2tfd2ViX2Vycm9yX3ByaXZhdGUuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5n
Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CkBAIC03MSw2ICs3MywxNyBAQCBzdGF0aWMg
dm9pZCBkaWRDaGFuZ2VQcm9ncmVzcyhXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50
SW5mbykKICAgICBld2tfdmlld19sb2FkX3Byb2dyZXNzX2NoYW5nZWQoZXdrVmlldywgV0tQYWdl
R2V0RXN0aW1hdGVkUHJvZ3Jlc3MocGFnZSkpOwogfQogCitzdGF0aWMgdm9pZCBkaWRGYWlsTG9h
ZFdpdGhFcnJvckZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS0Vy
cm9yUmVmIGVycm9yLCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCit7CisgICAg
aWYgKCFXS0ZyYW1lSXNNYWluRnJhbWUoZnJhbWUpKQorICAgICAgICByZXR1cm47CisKKyAgICBF
dmFzX09iamVjdCogZXdrVmlldyA9IHN0YXRpY19jYXN0PEV2YXNfT2JqZWN0Kj4oY29uc3RfY2Fz
dDx2b2lkKj4oY2xpZW50SW5mbykpOworICAgIEV3a19XZWJfRXJyb3IqIGV3a0Vycm9yID0gZXdr
X3dlYl9lcnJvcl9uZXcoZXJyb3IpOworICAgIGV3a192aWV3X2xvYWRfZXJyb3IoZXdrVmlldywg
ZXdrRXJyb3IpOworICAgIGV3a193ZWJfZXJyb3JfZnJlZShld2tFcnJvcik7Cit9CisKIHZvaWQg
ZXdrX3ZpZXdfbG9hZGVyX2NsaWVudF9hdHRhY2goV0tQYWdlUmVmIHBhZ2VSZWYsIEV2YXNfT2Jq
ZWN0KiBld2tWaWV3KQogewogICAgIFdLUGFnZUxvYWRlckNsaWVudCBsb2FkQ2xpZW50OwpAQCAt
ODcsNSArMTAwLDYgQEAgdm9pZCBld2tfdmlld19sb2FkZXJfY2xpZW50X2F0dGFjaChXS1BhZ2VS
ZWYgcGFnZVJlZiwgRXZhc19PYmplY3QqIGV3a1ZpZXcpCiAgICAgbG9hZENsaWVudC5kaWRTdGFy
dFByb2dyZXNzID0gZGlkQ2hhbmdlUHJvZ3Jlc3M7CiAgICAgbG9hZENsaWVudC5kaWRDaGFuZ2VQ
cm9ncmVzcyA9IGRpZENoYW5nZVByb2dyZXNzOwogICAgIGxvYWRDbGllbnQuZGlkRmluaXNoUHJv
Z3Jlc3MgPSBkaWRDaGFuZ2VQcm9ncmVzczsKKyAgICBsb2FkQ2xpZW50LmRpZEZhaWxMb2FkV2l0
aEVycm9yRm9yRnJhbWUgPSBkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lOwogICAgIFdLUGFn
ZVNldFBhZ2VMb2FkZXJDbGllbnQocGFnZVJlZiwgJmxvYWRDbGllbnQpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcHJpdmF0ZS5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcHJpdmF0ZS5oCmluZGV4
IDIwNjNiYWUuLmI3MmEwYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a192aWV3X3ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfdmlld19wcml2YXRlLmgKQEAgLTMwLDYgKzMwLDcgQEAgY2xhc3MgSW50UmVj
dDsKIGNsYXNzIEludFNpemU7CiB9CiAKK3R5cGVkZWYgc3RydWN0IF9Fd2tfV2ViX0Vycm9yIEV3
a19XZWJfRXJyb3I7CiAjaWYgRU5BQkxFKFdFQl9JTlRFTlRTKQogdHlwZWRlZiBzdHJ1Y3QgX0V3
a19JbnRlbnQgRXdrX0ludGVudDsKICNlbmRpZgpAQCAtMzksNiArNDAsNyBAQCB0eXBlZGVmIHN0
cnVjdCBfRXdrX0ludGVudF9TZXJ2aWNlIEV3a19JbnRlbnRfU2VydmljZTsKIAogdm9pZCBld2tf
dmlld19kaXNwbGF5KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiByZWN0KTsKIHZvaWQgZXdrX3ZpZXdfaW1hZ2VfZGF0YV9zZXQoRXZhc19PYmplY3QqIGV3a1Zp
ZXcsIHZvaWQqIGltYWdlRGF0YSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSk7Cit2b2lk
IGV3a192aWV3X2xvYWRfZXJyb3IoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IEV3a19XZWJf
RXJyb3IqIGVycm9yKTsKIHZvaWQgZXdrX3ZpZXdfbG9hZF9wcm9ncmVzc19jaGFuZ2VkKEV2YXNf
T2JqZWN0KiBld2tWaWV3LCBkb3VibGUgcHJvZ3Jlc3MpOwogdm9pZCBld2tfdmlld190aXRsZV9j
aGFuZ2VkKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBjaGFyKiB0aXRsZSk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a193ZWJfZXJyb3IuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3dlYl9lcnJvci5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTZiMDhkMwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a193ZWJfZXJyb3IuY3BwCkBA
IC0wLDAgKzEsMTI5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0
aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiZXdrX3dlYl9lcnJvci5oIgorCisjaW5jbHVkZSAiV0tTdHJpbmcuaCIKKyNp
bmNsdWRlICJXS1VSTC5oIgorI2luY2x1ZGUgImV3a193ZWJfZXJyb3JfcHJpdmF0ZS5oIgorI2lu
Y2x1ZGUgPFdLQVBJQ2FzdC5oPgorI2luY2x1ZGUgPFdLRXJyb3IuaD4KKyNpbmNsdWRlIDxXS1Jl
dGFpblB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKwordXNpbmcgbmFtZXNw
YWNlIFdlYktpdDsKKworLy8gQ29waWVkIGZyb20gRXJyb3JzR3RrLmggd2hpY2ggaXMgdXNlZCBi
eSBEb3dubG9hZFNvdXAuY3BwLgorc3RhdGljIGNvbnN0IGNoYXIgZXJyb3JEb21haW5Eb3dubG9h
ZFtdID0gIldlYktpdERvd25sb2FkRXJyb3IiOworCitzdHJ1Y3QgX0V3a19XZWJfRXJyb3Igewor
ICAgIFdLUmV0YWluUHRyPFdLRXJyb3JSZWY+IHdrRXJyb3I7CisKKyAgICBjb25zdCBjaGFyKiB1
cmw7CisgICAgY29uc3QgY2hhciogZGVzY3JpcHRpb247Cit9OworCisjZGVmaW5lIEVXS19XRUJf
RVJST1JfV0tfR0VUX09SX1JFVFVSTihlcnJvciwgd2tFcnJvcl8sIC4uLikgICAgXAorICAgIGlm
ICghKGVycm9yKSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
CisgICAgICAgIEVJTkFfTE9HX0NSSVQoImVycm9yIGlzIE5VTEwuIik7ICAgICAgICAgICAgICAg
ICAgICAgIFwKKyAgICAgICAgcmV0dXJuIF9fVkFfQVJHU19fOyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBpZiAoIShlcnJvciktPndrRXJyb3IpIHsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIEVJTkFfTE9HX0NSSVQo
ImVycm9yLT53a0Vycm9yIGlzIE5VTEwuIik7ICAgICAgICAgICAgXAorICAgICAgICByZXR1cm4g
X19WQV9BUkdTX187ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAorICAgIFdLRXJyb3JSZWYgd2tFcnJvcl8gPSAoZXJyb3IpLT53a0Vycm9yLmdldCgpCisKK3Zv
aWQgZXdrX3dlYl9lcnJvcl9mcmVlKEV3a19XZWJfRXJyb3IgKmVycm9yKQoreworICAgIEVJTkFf
U0FGRVRZX09OX05VTExfUkVUVVJOKGVycm9yKTsKKworICAgIGVpbmFfc3RyaW5nc2hhcmVfZGVs
KGVycm9yLT51cmwpOworICAgIGVpbmFfc3RyaW5nc2hhcmVfZGVsKGVycm9yLT5kZXNjcmlwdGlv
bik7CisgICAgZnJlZShlcnJvcik7Cit9CisKK0V3a19XZWJfRXJyb3JfVHlwZSBld2tfd2ViX2Vy
cm9yX3R5cGVfZ2V0KGNvbnN0IEV3a19XZWJfRXJyb3IqIGVycm9yKQoreworICAgIEVXS19XRUJf
RVJST1JfV0tfR0VUX09SX1JFVFVSTihlcnJvciwgd2tFcnJvciwgRVdLX1dFQl9FUlJPUl9UWVBF
X05PTkUpOworCisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHdrRG9tYWluKEFkb3B0V0ss
IFdLRXJyb3JDb3B5RG9tYWluKHdrRXJyb3IpKTsKKyAgICBXVEY6OlN0cmluZyBlcnJvckRvbWFp
biA9IHRvV1RGU3RyaW5nKHdrRG9tYWluLmdldCgpKTsKKworICAgIGlmIChlcnJvckRvbWFpbiA9
PSBTdHJpbmcoZ19xdWFya190b19zdHJpbmcoU09VUF9IVFRQX0VSUk9SKSkpCisgICAgICAgIHJl
dHVybiBFV0tfV0VCX0VSUk9SX1RZUEVfSFRUUDsKKyAgICBpZiAoZXJyb3JEb21haW4gPT0gU3Ry
aW5nKGdfcXVhcmtfdG9fc3RyaW5nKEdfSU9fRVJST1IpKSkKKyAgICAgICAgcmV0dXJuIEVXS19X
RUJfRVJST1JfVFlQRV9JTzsKKyAgICBpZiAoZXJyb3JEb21haW4gPT0gZXJyb3JEb21haW5Eb3du
bG9hZCkKKyAgICAgICAgcmV0dXJuIEVXS19XRUJfRVJST1JfVFlQRV9ET1dOTE9BRDsKKyAgICBy
ZXR1cm4gRVdLX1dFQl9FUlJPUl9UWVBFX0lOVEVSTkFMOworfQorCitjb25zdCBjaGFyKiBld2tf
d2ViX2Vycm9yX3VybF9nZXQoY29uc3QgRXdrX1dlYl9FcnJvciogZXJyb3IpCit7CisgICAgRVdL
X1dFQl9FUlJPUl9XS19HRVRfT1JfUkVUVVJOKGVycm9yLCB3a0Vycm9yLCAwKTsKKworICAgIFdL
UmV0YWluUHRyPFdLVVJMUmVmPiB3a1VybChBZG9wdFdLLCBXS0Vycm9yQ29weUZhaWxpbmdVUkwo
d2tFcnJvcikpOworICAgIEV3a19XZWJfRXJyb3IqIGV3a0Vycm9yID0gY29uc3RfY2FzdDxFd2tf
V2ViX0Vycm9yKj4oZXJyb3IpOworICAgIGVpbmFfc3RyaW5nc2hhcmVfcmVwbGFjZSgmZXdrRXJy
b3ItPnVybCwgdG9JbXBsKHdrVXJsLmdldCgpKS0+c3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisK
KyAgICByZXR1cm4gZXJyb3ItPnVybDsKK30KKworaW50IGV3a193ZWJfZXJyb3JfY29kZV9nZXQo
Y29uc3QgRXdrX1dlYl9FcnJvciogZXJyb3IpCit7CisgICAgRVdLX1dFQl9FUlJPUl9XS19HRVRf
T1JfUkVUVVJOKGVycm9yLCB3a0Vycm9yLCAwKTsKKworICAgIHJldHVybiBXS0Vycm9yR2V0RXJy
b3JDb2RlKHdrRXJyb3IpOworfQorCitjb25zdCBjaGFyKiBld2tfd2ViX2Vycm9yX2Rlc2NyaXB0
aW9uX2dldChjb25zdCBFd2tfV2ViX0Vycm9yKiBlcnJvcikKK3sKKyAgICBFV0tfV0VCX0VSUk9S
X1dLX0dFVF9PUl9SRVRVUk4oZXJyb3IsIHdrRXJyb3IsIDApOworCisgICAgV0tSZXRhaW5QdHI8
V0tTdHJpbmdSZWY+IHdrRGVzY3JpcHRpb24oQWRvcHRXSywgV0tFcnJvckNvcHlMb2NhbGl6ZWRE
ZXNjcmlwdGlvbih3a0Vycm9yKSk7CisgICAgRXdrX1dlYl9FcnJvciogZXdrRXJyb3IgPSBjb25z
dF9jYXN0PEV3a19XZWJfRXJyb3IqPihlcnJvcik7CisgICAgZWluYV9zdHJpbmdzaGFyZV9yZXBs
YWNlKCZld2tFcnJvci0+ZGVzY3JpcHRpb24sIHRvSW1wbCh3a0Rlc2NyaXB0aW9uLmdldCgpKS0+
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisKKyAgICByZXR1cm4gZXJyb3ItPmRlc2NyaXB0aW9u
OworfQorCitFaW5hX0Jvb2wgZXdrX3dlYl9lcnJvcl9jYW5jZWxsYXRpb25fZ2V0KGNvbnN0IEV3
a19XZWJfRXJyb3IqIGVycm9yKQoreworICAgIEVXS19XRUJfRVJST1JfV0tfR0VUX09SX1JFVFVS
TihlcnJvciwgd2tFcnJvciwgZmFsc2UpOworCisgICAgcmV0dXJuIHRvSW1wbCh3a0Vycm9yKS0+
cGxhdGZvcm1FcnJvcigpLmlzQ2FuY2VsbGF0aW9uKCk7Cit9CisKK0V3a19XZWJfRXJyb3IqIGV3
a193ZWJfZXJyb3JfbmV3KFdLRXJyb3JSZWYgZXJyb3IpCit7CisgICAgRUlOQV9TQUZFVFlfT05f
TlVMTF9SRVRVUk5fVkFMKGVycm9yLCAwKTsKKworICAgIEV3a19XZWJfRXJyb3IqIGV3a0Vycm9y
ID0gc3RhdGljX2Nhc3Q8RXdrX1dlYl9FcnJvcio+KGNhbGxvYygxLCBzaXplb2YoRXdrX1dlYl9F
cnJvcikpKTsKKyAgICBld2tFcnJvci0+d2tFcnJvciA9IGVycm9yOworCisgICAgcmV0dXJuIGV3
a0Vycm9yOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX3dlYl9lcnJvci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3dl
Yl9lcnJvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJkOTY2NjUKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfd2Vi
X2Vycm9yLmgKQEAgLTAsMCArMSwxMjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50
ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy8qKgorICog
QGZpbGUgICAgZXdrX3dlYl9lcnJvci5oCisgKiBAYnJpZWYgICBEZXNjcmliZXMgdGhlIFdlYiBF
cnJvciBBUEkuCisgKi8KKworI2lmbmRlZiBld2tfd2ViX2Vycm9yX2gKKyNkZWZpbmUgZXdrX3dl
Yl9lcnJvcl9oCisKKyNpbmNsdWRlIDxFaW5hLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0
ZXJuICJDIiB7CisjZW5kaWYKKworLyoqIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIEBhIEV3a19X
ZWJfRXJyb3IuICovCit0eXBlZGVmIHN0cnVjdCBfRXdrX1dlYl9FcnJvciBFd2tfV2ViX0Vycm9y
OworCisvLy8gQ3JlYXRlcyBhIHR5cGUgbmFtZSBmb3IgRXdrX1dlYl9FcnJvcl9UeXBlLgordHlw
ZWRlZiBlbnVtIHsKKyAgICBFV0tfV0VCX0VSUk9SX1RZUEVfTk9ORSwKKyAgICBFV0tfV0VCX0VS
Uk9SX1RZUEVfSU5URVJOQUwsCisgICAgRVdLX1dFQl9FUlJPUl9UWVBFX0hUVFAsCisgICAgRVdL
X1dFQl9FUlJPUl9UWVBFX0lPLAorICAgIEVXS19XRUJfRVJST1JfVFlQRV9ET1dOTE9BRAorfSBF
d2tfV2ViX0Vycm9yX1R5cGU7CisKKy8qKgorICogRnJlZXMgdGhlIGdpdmVuIG9iamVjdC4KKyAq
CisgKiBAcGFyYW0gZXJyb3IgdGhlIGVycm9yIG9iamVjdCB0byBmcmVlCisgKi8KK0VBUEkgdm9p
ZCBld2tfd2ViX2Vycm9yX2ZyZWUoRXdrX1dlYl9FcnJvciAqZXJyb3IpOworCisvKioKKyAqIFF1
ZXJ5IHR5cGUgZm9yIHRoaXMgZXJyb3IuCisgKgorICogQHBhcmFtIGVycm9yIGVycm9yIG9iamVj
dCB0byBxdWVyeS4KKyAqCisgKiBAcmV0dXJuIHRoZSBlcnJvciB0eXBlLCB0aGF0IG1heSBiZSBA
YyBOVUxMLiBUaGlzIHBvaW50ZXIgaXMKKyAqICAgICAgICAgZ3VhcmFudGVlZCB0byBiZSBlaW5h
X3N0cmluZ3NoYXJlLCBzbyB3aGVuZXZlciBwb3NzaWJsZQorICogICAgICAgICBzYXZlIHlvdXJz
ZWxmIHNvbWUgY3B1IGN5Y2xlcyBhbmQgdXNlCisgKiAgICAgICAgIGVpbmFfc3RyaW5nc2hhcmVf
cmVmKCkgaW5zdGVhZCBvZiBlaW5hX3N0cmluZ3NoYXJlX2FkZCgpIG9yCisgKiAgICAgICAgIHN0
cmR1cCgpLgorICovCitFQVBJIEV3a19XZWJfRXJyb3JfVHlwZSBld2tfd2ViX2Vycm9yX3R5cGVf
Z2V0KGNvbnN0IEV3a19XZWJfRXJyb3IgKmVycm9yKTsKKworLyoqCisgKiBRdWVyeSBmYWlsaW5n
IFVSTCBmb3IgdGhpcyBlcnJvci4KKyAqCisgKiBVUkwgdGhhdCBmYWlsZWQgbG9hZGluZy4KKyAq
CisgKiBAcGFyYW0gZXJyb3IgZXJyb3Igb2JqZWN0IHRvIHF1ZXJ5LgorICoKKyAqIEByZXR1cm4g
dGhlIFVSTCBwb2ludGVyLCB0aGF0IG1heSBiZSBAYyBOVUxMLiBUaGlzIHBvaW50ZXIgaXMKKyAq
ICAgICAgICAgZ3VhcmFudGVlZCB0byBiZSBlaW5hX3N0cmluZ3NoYXJlLCBzbyB3aGVuZXZlciBw
b3NzaWJsZQorICogICAgICAgICBzYXZlIHlvdXJzZWxmIHNvbWUgY3B1IGN5Y2xlcyBhbmQgdXNl
CisgKiAgICAgICAgIGVpbmFfc3RyaW5nc2hhcmVfcmVmKCkgaW5zdGVhZCBvZiBlaW5hX3N0cmlu
Z3NoYXJlX2FkZCgpIG9yCisgKiAgICAgICAgIHN0cmR1cCgpLgorICovCitFQVBJIGNvbnN0IGNo
YXIgKmV3a193ZWJfZXJyb3JfdXJsX2dldChjb25zdCBFd2tfV2ViX0Vycm9yICplcnJvcik7CisK
Ky8qKgorICogUXVlcnkgSFRUUCBlcnJvciBjb2RlLgorICoKKyAqIEBwYXJhbSBlcnJvciBlcnJv
ciBvYmplY3QgdG8gcXVlcnkuCisgKgorICogQHJldHVybiB0aGUgSFRUUCBlcnJvciBjb2RlLgor
ICovCitFQVBJIGludCBld2tfd2ViX2Vycm9yX2NvZGVfZ2V0KGNvbnN0IEV3a19XZWJfRXJyb3Ig
KmVycm9yKTsKKworLyoqCisgKiBRdWVyeSBkZXNjcmlwdGlvbiBmb3IgdGhpcyBlcnJvci4KKyAq
CisgKiBAcGFyYW0gZXJyb3IgZXJyb3Igb2JqZWN0IHRvIHF1ZXJ5LgorICoKKyAqIEByZXR1cm4g
dGhlIGRlc2NyaXB0aW9uIHBvaW50ZXIsIHRoYXQgbWF5IGJlIEBjIE5VTEwuIFRoaXMgcG9pbnRl
ciBpcworICogICAgICAgICBndWFyYW50ZWVkIHRvIGJlIGVpbmFfc3RyaW5nc2hhcmUsIHNvIHdo
ZW5ldmVyIHBvc3NpYmxlCisgKiAgICAgICAgIHNhdmUgeW91cnNlbGYgc29tZSBjcHUgY3ljbGVz
IGFuZCB1c2UKKyAqICAgICAgICAgZWluYV9zdHJpbmdzaGFyZV9yZWYoKSBpbnN0ZWFkIG9mIGVp
bmFfc3RyaW5nc2hhcmVfYWRkKCkgb3IKKyAqICAgICAgICAgc3RyZHVwKCkuCisgKi8KK0VBUEkg
Y29uc3QgY2hhciAqZXdrX3dlYl9lcnJvcl9kZXNjcmlwdGlvbl9nZXQoY29uc3QgRXdrX1dlYl9F
cnJvciAqZXJyb3IpOworCisvKioKKyAqIFF1ZXJ5IGlmIGVycm9yIHNob3VsZCBiZSB0cmVhdGVk
IGFzIGEgY2FuY2VsbGF0aW9uLgorICoKKyAqIEBwYXJhbSBlcnJvciBlcnJvciBvYmplY3QgdG8g
cXVlcnkuCisgKgorICogQHJldHVybiBAYyBFSU5BX1RSVUUgaWYgdGhpcyBlcnJvciBzaG91bGQg
YmUgdHJlYXRlZCBhcyBhIGNhbmNlbGxhdGlvbiwgQGMgRUlOQV9GQUxTRSBvdGhlcndpc2UKKyAq
LworRUFQSSBFaW5hX0Jvb2wgZXdrX3dlYl9lcnJvcl9jYW5jZWxsYXRpb25fZ2V0KGNvbnN0IEV3
a19XZWJfRXJyb3IgKmVycm9yKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKwor
I2VuZGlmIC8vIGV3a193ZWJfZXJyb3JfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX3dlYl9lcnJvcl9wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfd2ViX2Vycm9yX3ByaXZhdGUuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5jOWEzMWU1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3dlYl9lcnJvcl9wcml2YXRlLmgKQEAgLTAsMCAr
MSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBld2tfd2ViX2Vycm9yX3ByaXZh
dGVfaAorI2RlZmluZSBld2tfd2ViX2Vycm9yX3ByaXZhdGVfaAorCisjaW5jbHVkZSA8V0tFcnJv
ci5oPgorCit0eXBlZGVmIHN0cnVjdCBfRXdrX1dlYl9FcnJvciBFd2tfV2ViX0Vycm9yOworCitF
d2tfV2ViX0Vycm9yKiBld2tfd2ViX2Vycm9yX25ldyhXS0Vycm9yUmVmIGVycm9yKTsKKworI2Vu
ZGlmIC8vIGV3a193ZWJfZXJyb3JfcHJpdmF0ZV9oCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>