<?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>82387</bug_id>
          
          <creation_ts>2012-03-27 15:19:56 -0700</creation_ts>
          <short_desc>Plug-ins using the Core Animation drawing model should work when hosting the layer tree in the window server</short_desc>
          <delta_ts>2012-03-27 17:17: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>New Bugs</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>gustavo</cc>
    
    <cc>menard</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>589338</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-03-27 15:19:56 -0700</bug_when>
    <thetext>Plug-ins using the Core Animation drawing model should work when hosting the layer tree in the window server</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589356</commentid>
    <comment_count>1</comment_count>
      <attachid>134148</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-03-27 15:34:09 -0700</bug_when>
    <thetext>Created attachment 134148
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589365</commentid>
    <comment_count>2</comment_count>
      <attachid>134148</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-03-27 15:43:42 -0700</bug_when>
    <thetext>Comment on attachment 134148
Patch

Attachment 134148 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/12147744</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589366</commentid>
    <comment_count>3</comment_count>
      <attachid>134148</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-03-27 15:44:24 -0700</bug_when>
    <thetext>Comment on attachment 134148
Patch

Attachment 134148 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/12142750</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589368</commentid>
    <comment_count>4</comment_count>
      <attachid>134148</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-03-27 15:46:30 -0700</bug_when>
    <thetext>Comment on attachment 134148
Patch

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

&gt; Source/WebKit2/PluginProcess/PluginControllerProxy.messages.in:103
&gt; +    # Sent when the containing window&apos;s layer hosting mode changes
&gt; +    SetLayerHostingMode(uint32_t layerHostingMode)

Do we want to call this LayerHostingModeChanged to match the message above?

&gt; Source/WebKit2/WebProcess/Plugins/Plugin.h:29
&gt; +#include &quot;LayerHostingContext.h&quot;

Is this header included on all platforms? Or should it be in an #ifdef?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589375</commentid>
    <comment_count>5</comment_count>
      <attachid>134152</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-03-27 15:47:39 -0700</bug_when>
    <thetext>Created attachment 134152
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589379</commentid>
    <comment_count>6</comment_count>
      <attachid>134152</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-03-27 15:53:30 -0700</bug_when>
    <thetext>Comment on attachment 134152
Patch

Attachment 134152 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/12140789</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589383</commentid>
    <comment_count>7</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-03-27 15:55:40 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 134148 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=134148&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/PluginProcess/PluginControllerProxy.messages.in:103
&gt; &gt; +    # Sent when the containing window&apos;s layer hosting mode changes
&gt; &gt; +    SetLayerHostingMode(uint32_t layerHostingMode)
&gt; 
&gt; Do we want to call this LayerHostingModeChanged to match the message above?
&gt; 

Nah, it&apos;s really a setter.

&gt; &gt; Source/WebKit2/WebProcess/Plugins/Plugin.h:29
&gt; &gt; +#include &quot;LayerHostingContext.h&quot;
&gt; 
&gt; Is this header included on all platforms? Or should it be in an #ifdef?

I&apos;ll add #ifdefs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589384</commentid>
    <comment_count>8</comment_count>
      <attachid>134154</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-03-27 15:55:50 -0700</bug_when>
    <thetext>Created attachment 134154
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589478</commentid>
    <comment_count>9</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-03-27 17:17:09 -0700</bug_when>
    <thetext>Committed r112338: &lt;http://trac.webkit.org/changeset/112338&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>134148</attachid>
            <date>2012-03-27 15:34:09 -0700</date>
            <delta_ts>2012-03-27 15:47:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82387-20120327153514.patch</filename>
            <type>text/plain</type>
            <size>27310</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyMjg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMzI4ZTU1MDcwNzM1ZjY4
ZTcyMDIzOWVmZmEyOGU5MzM1N2NmNmIwMi4uYWMwYzI5YTYwZmFkMGY1ZmYwYTg3ZDZiYTg1NjQx
NDVlNDc3MzhjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDk2IEBACiAyMDEyLTAzLTI3ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKKyAgICAgICAgUGx1Zy1pbnMgdXNp
bmcgdGhlIENvcmUgQW5pbWF0aW9uIGRyYXdpbmcgbW9kZWwgc2hvdWxkIHdvcmsgd2hlbiBob3N0
aW5nIHRoZSBsYXllciB0cmVlIGluIHRoZSB3aW5kb3cgc2VydmVyCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MjM4NworICAgICAgICA8cmRhcjovL3By
b2JsZW0vMTEwMzE5NDI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlBsdWdpbkNvbnRyb2xsZXJQcm94eTo6UGx1Z2luQ29udHJvbGxlclByb3h5
KToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luQ29udHJvbGxlclByb3h5Ojppbml0aWFsaXplKToK
KyAgICAgICAgUmVtb3ZlIG1fcGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzOyBpdCB3YXMgdXNlZCBi
eSB0aGUgb2xkIE5QUnVudGltZSBzaG9ydC1jaXJjdWl0IGNvZGUuIAorICAgICAgICBNYWtlIHBs
YXRmb3JtSW5pdGlhbGl6ZSB0YWtlIGNyZWF0aW9uIHBhcmFtZXRlcnMuCisKKyAgICAgICAgKiBQ
bHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAg
QWRkIFNldExheWVySG9zdGluZ01vZGUgbWVzc2FnZS4KKworICAgICAgICAqIFBsdWdpblByb2Nl
c3MvZ3RrL1BsdWdpbkNvbnRyb2xsZXJQcm94eUd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBs
dWdpbkNvbnRyb2xsZXJQcm94eTo6cGxhdGZvcm1Jbml0aWFsaXplKToKKyAgICAgICAgTWFrZSBw
bGF0Zm9ybUluaXRpYWxpemUgdGFrZSBjcmVhdGlvbiBwYXJhbWV0ZXJzLgorCisgICAgICAgICog
UGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luQ29udHJvbGxlclByb3h5TWFjLm1tOgorICAgICAgICAo
V2ViS2l0OjpQbHVnaW5Db250cm9sbGVyUHJveHk6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6CisgICAg
ICAgIENhbGwgdXBkYXRlTGF5ZXJIb3N0aW5nQ29udGV4dC4KKworICAgICAgICAoV2ViS2l0OjpQ
bHVnaW5Db250cm9sbGVyUHJveHk6OnNldExheWVySG9zdGluZ01vZGUpOgorICAgICAgICBDYWxs
IHVwZGF0ZUxheWVySG9zdGluZ0NvbnRleHQgYW5kIHNlbmQgYmFjayB0aGUgbmV3IGNvbnRleHQg
SUQuCisKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luQ29udHJvbGxlclByb3h5Ojp1cGRhdGVMYXll
ckhvc3RpbmdDb250ZXh0KToKKyAgICAgICAgQ3JlYXRlIGEgbmV3IExheWVySG9zdGluZ0NvbnRl
eHQgZ2l2ZW4gdGhlIGxheWVyIGhvc3RpbmcgbW9kZS4KKworICAgICAgICAqIFBsdWdpblByb2Nl
c3MvcXQvUGx1Z2luQ29udHJvbGxlclByb3h5UXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVn
aW5Db250cm9sbGVyUHJveHk6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6CisgICAgICAgIE1ha2UgcGxh
dGZvcm1Jbml0aWFsaXplIHRha2UgY3JlYXRpb24gcGFyYW1ldGVycy4KKworICAgICAgICAqIFdl
YlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW06CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luOjpzZXRMYXllckhvc3RpbmdNb2RlKToKKyAgICAg
ICAgQWRkIHN0dWIuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFj
L1BsdWdpblByb3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjptYWtlUmVuZGVyTGF5ZXIpOgor
ICAgICAgICBBZGQgaGVscGVyIGZ1bmN0aW9uIGZvciBjcmVhdGluZyBhIG5ldyByZW5kZXIgbGF5
ZXIuCisKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJveHk6OnBsdWdpbkxheWVyKToKKyAgICAg
ICAgQ2FsbCBtYWtlUmVuZGVyTGF5ZXIuCisKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJveHk6
OnNldExheWVySG9zdGluZ01vZGUpOgorICAgICAgICBTZW5kIGEgbWVzc2FnZSB0byB0aGUgcGx1
Zy1pbiBwcm9jZXNzLgorCisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb3h5OjpzZXRMYXllckhv
c3RpbmdDb250ZXh0SUQpOgorICAgICAgICBVcGRhdGUgdGhlIGNvbnRleHQgSUQgYW5kIG1ha2Ug
YSBuZXcgcmVuZGVyIGxheWVyLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9C
dWlsdEluUERGVmlldy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkJ1aWx0SW5QREZWaWV3OjpzZXRM
YXllckhvc3RpbmdNb2RlKToKKyAgICAgICAgQWRkIHN0dWIuCisgICAgICAgICogV2ViUHJvY2Vz
cy9QbHVnaW5zL1BERi9CdWlsdEluUERGVmlldy5oOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpbjo6UGFyYW1ldGVyczo6
ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luOjpQYXJhbWV0ZXJzOjpkZWNvZGUpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uaDoKKyAgICAgICAgQWRkIHRoZSBs
YXllciBob3N0aW5nIG1vZGUgYXMgYSBwYXJhbWV0ZXIuIEFkZCBhIG5ldyBzZXRMYXllckhvc3Rp
bmdNb2RlIHB1cmUgdmlydHVhbCBtZW1iZXIgZnVuY3Rpb24uCisKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgIEFkZCBhIFNldExh
eWVySG9zdGluZ0NvbnRleHRJRCBtZXNzYWdlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5WaWV3OjpzZXRMYXll
ckhvc3RpbmdNb2RlKToKKyAgICAgICAgQ2FsbCBkb3duIHRvIHRoZSBwbHVnLWluLgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVQbHVnaW4pOgor
ICAgICAgICBTZXQgdGhlIGxheWVyIGhvc3RpbmcgbW9kZSBvZiB0aGUgcGFnZS4KKworICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6V2ViUGFnZSk6CisgICAgICAgIEluaXRpYWxpemUgbV9sYXllckhvc3RpbmdNb2RlIHRv
IGZhbHNlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6bGF5ZXJIb3N0aW5nTW9kZSk6CisgICAgICAgIEFkZCBtX2xh
eWVySG9zdGluZ01vZGUgYW5kIGEgZ2V0dGVyLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbToKKyAgICAgICAgKFdlYktp
dDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnNldExheWVySG9zdGluZ01vZGUpOgor
ICAgICAgICBDYWxsIFdlYlBhZ2U6OnNldExheWVySG9zdGluZ01vZGUuCisKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OnNldExheWVySG9zdGluZ01vZGUpOgorICAgICAgICBUZWxsIGFsbCBwbHVnLWlucyB0
aGF0IHRoZSBsYXllciBob3N0aW5nIG1vZGUgY2hhbmdlZC4KKworMjAxMi0wMy0yNyAgQW5kZXJz
IENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgorCiAgICAgICAgIERvbid0IHVwZGF0ZSB0
aGUgbGF5ZXIgaG9zdGluZyBzdGF0ZSB1bmxlc3MgdGhlIFdLVmlldyBpcyBhZGRlZCB0byBhIHdp
bmRvdwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODIz
NTkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250
cm9sbGVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250
cm9sbGVyUHJveHkuY3BwCmluZGV4IDlkNWMxMmVkODIxMjEyZmIwNTdlZTUyZTdkMGJiZGYyZjJh
Yjg1MWYuLjdlMDI1MzM5ZjkyMWQ0MDZmOWJkMGM1MGJlNzVlOGZmMDVmMDYzY2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94
eS5jcHAKQEAgLTY5LDcgKzY5LDYgQEAgUGx1Z2luQ29udHJvbGxlclByb3h5OjpQbHVnaW5Db250
cm9sbGVyUHJveHkoV2ViUHJvY2Vzc0Nvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIGMKICAgICAsIG1f
cGFpbnRUaW1lcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZQbHVnaW5Db250cm9sbGVyUHJveHk6
OnBhaW50KQogICAgICwgbV9wbHVnaW5EZXN0cnVjdGlvblByb3RlY3RDb3VudCgwKQogICAgICwg
bV9wbHVnaW5EZXN0cm95VGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmUGx1Z2luQ29udHJv
bGxlclByb3h5OjpkZXN0cm95KQotICAgICwgbV9wbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMoMCkK
ICAgICAsIG1fd2FpdGluZ0ZvckRpZFVwZGF0ZShmYWxzZSkKICAgICAsIG1fcGx1Z2luQ2FuY2Vs
ZWRNYW51YWxTdHJlYW1Mb2FkKGZhbHNlKQogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTEwNiw5ICsx
MDUsNyBAQCBib29sIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6aW5pdGlhbGl6ZShjb25zdCBQbHVn
aW5DcmVhdGlvblBhcmFtZXRlcnMmIGNyZWF0aW9uUAogICAgIG1fd2luZG93TlBPYmplY3QgPSBt
X2Nvbm5lY3Rpb24tPm5wUmVtb3RlT2JqZWN0TWFwKCktPmNyZWF0ZU5QT2JqZWN0UHJveHkoY3Jl
YXRpb25QYXJhbWV0ZXJzLndpbmRvd05QT2JqZWN0SUQsIG1fcGx1Z2luLmdldCgpKTsKICAgICBB
U1NFUlQobV93aW5kb3dOUE9iamVjdCk7CiAKLSAgICBtX3BsdWdpbkNyZWF0aW9uUGFyYW1ldGVy
cyA9ICZjcmVhdGlvblBhcmFtZXRlcnM7CiAgICAgYm9vbCByZXR1cm5WYWx1ZSA9IG1fcGx1Z2lu
LT5pbml0aWFsaXplKHRoaXMsIGNyZWF0aW9uUGFyYW1ldGVycy5wYXJhbWV0ZXJzKTsKLSAgICBt
X3BsdWdpbkNyZWF0aW9uUGFyYW1ldGVycyA9IDA7CiAKICAgICBpZiAoIXJldHVyblZhbHVlKSB7
CiAgICAgICAgIC8vIEdldCB0aGUgcGx1Zy1pbiBzbyB3ZSBjYW4gcGFzcyBpdCB0byByZW1vdmVQ
bHVnaW5Db250cm9sbGVyUHJveHkuIFRoZSBwb2ludGVyIGlzIG9ubHkKQEAgLTEyMiw3ICsxMTks
NyBAQCBib29sIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6aW5pdGlhbGl6ZShjb25zdCBQbHVnaW5D
cmVhdGlvblBhcmFtZXRlcnMmIGNyZWF0aW9uUAogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
fQogCi0gICAgcGxhdGZvcm1Jbml0aWFsaXplKCk7CisgICAgcGxhdGZvcm1Jbml0aWFsaXplKGNy
ZWF0aW9uUGFyYW1ldGVycyk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5oCmluZGV4IGRl
MWI2NmY0ZTNjNTY1NDUxYTJkMTIzY2NhYjU2ZTMyMDkwMmYwYWIuLjc4Nzc5ODliNTk1ZWIxNjEz
OTMzZTE4NzJlMzYxZmU3NDNjNjNiMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdp
blByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvUGx1
Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuaApAQCAtMTMzLDE0ICsxMzMsMTUgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHdpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmIHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywgY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyk7CiAgICAgdm9pZCB3aW5k
b3dWaXNpYmlsaXR5Q2hhbmdlZChib29sKTsKICAgICB2b2lkIHNlbmRDb21wbGV4VGV4dElucHV0
KGNvbnN0IFN0cmluZyYgdGV4dElucHV0KTsKKyAgICB2b2lkIHNldExheWVySG9zdGluZ01vZGUo
dWludDMyX3QpOworCisgICAgdm9pZCB1cGRhdGVMYXllckhvc3RpbmdDb250ZXh0KExheWVySG9z
dGluZ01vZGUpOwogI2VuZGlmCiAKICAgICB2b2lkIHByaXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdl
ZChib29sKTsKICAgICB2b2lkIGdldEZvcm1WYWx1ZShib29sJiByZXR1cm5WYWx1ZSwgU3RyaW5n
JiBmb3JtVmFsdWUpOwogCi0gICAgYm9vbCBpbkluaXRpYWxpemUoKSBjb25zdCB7IHJldHVybiBt
X3BsdWdpbkNyZWF0aW9uUGFyYW1ldGVyczsgfQotCi0gICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxp
emUoKTsKKyAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZShjb25zdCBQbHVnaW5DcmVhdGlvblBh
cmFtZXRlcnMmKTsKICAgICB2b2lkIHBsYXRmb3JtRGVzdHJveSgpOwogICAgIHZvaWQgcGxhdGZv
cm1HZW9tZXRyeURpZENoYW5nZSgpOwogCkBAIC0xNjgsOSArMTY5LDYgQEAgcHJpdmF0ZToKICAg
ICAvLyBjb2RlIGlzIG9uIHRoZSBzdGFjay4KICAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxQ
bHVnaW5Db250cm9sbGVyUHJveHk+IG1fcGx1Z2luRGVzdHJveVRpbWVyOwogCi0gICAgLy8gV2ls
bCBwb2ludCB0byB0aGUgcGx1Zy1pbiBjcmVhdGlvbiBwYXJhbWV0ZXJzIG9mIHRoZSBwbHVnLWlu
IHdlJ3JlIGN1cnJlbnRseSBpbml0aWFsaXppbmcgYW5kIHdpbGwgYmUgbnVsbCB3aGVuIHdlJ3Jl
IGRvbmUgaW5pdGlhbGl6aW5nLgotICAgIGNvbnN0IFBsdWdpbkNyZWF0aW9uUGFyYW1ldGVycyog
bV9wbHVnaW5DcmVhdGlvblBhcmFtZXRlcnM7Ci0KICAgICAvLyBXaGV0aGVyIHdlJ3JlIHdhaXRp
bmcgZm9yIHRoZSBwbHVnLWluIHByb3h5IGluIHRoZSB3ZWIgcHJvY2VzcyB0byBkcmF3IHRoZSBj
b250ZW50cyBvZiBpdHMKICAgICAvLyBiYWNraW5nIHN0b3JlIGludG8gdGhlIHdlYiBwcm9jZXNz
IGJhY2tpbmcgc3RvcmUuCiAgICAgYm9vbCBtX3dhaXRpbmdGb3JEaWRVcGRhdGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxl
clByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGRkOWE0ZDY3YTA5N2FhYjk1NDE2NDVhYjYwMTgyMzQy
ODNmNjVhMGYuLjM3MWJlZTIzNzc1ZGRlMGZmNzIxMDQzYjM0NTBjY2E2MDY1YzlkZWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29u
dHJvbGxlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC05OCw2ICs5OCw5IEBAIG1lc3NhZ2VzIC0+IFBs
dWdpbkNvbnRyb2xsZXJQcm94eSB7CiAKICAgICAjIFNlbnQgd2hlbiB0aGUgY29udGFpbmluZyBO
U1dpbmRvdydzIHZpc2liaWxpdHkgY2hhbmdlcwogICAgIFdpbmRvd1Zpc2liaWxpdHlDaGFuZ2Vk
KGJvb2wgaXNWaXNpYmxlKQorCisgICAgIyBTZW50IHdoZW4gdGhlIGNvbnRhaW5pbmcgd2luZG93
J3MgbGF5ZXIgaG9zdGluZyBtb2RlIGNoYW5nZXMKKyAgICBTZXRMYXllckhvc3RpbmdNb2RlKHVp
bnQzMl90IGxheWVySG9zdGluZ01vZGUpCiAjZW5kaWYKIAogICAgICMgUmV0dXJuIGEgc25hcHNo
b3Qgb2YgdGhlIHBsdWdpbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vz
cy9ndGsvUGx1Z2luQ29udHJvbGxlclByb3h5R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsdWdp
blByb2Nlc3MvZ3RrL1BsdWdpbkNvbnRyb2xsZXJQcm94eUd0ay5jcHAKaW5kZXggMjgzMDRkZjJh
Y2E4YjA2YzA4YjI5MzljOTRlMjI1Mzk3ZjYyZDg5MS4uY2JjYzFkNzMwNzVmMjNhZDA1ZjI4YmQ4
ODAwNGU2N2JmNjhhZDY1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vz
cy9ndGsvUGx1Z2luQ29udHJvbGxlclByb3h5R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9Q
bHVnaW5Qcm9jZXNzL2d0ay9QbHVnaW5Db250cm9sbGVyUHJveHlHdGsuY3BwCkBAIC0zNCw3ICsz
NCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAot
dm9pZCBQbHVnaW5Db250cm9sbGVyUHJveHk6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCit2b2lkIFBs
dWdpbkNvbnRyb2xsZXJQcm94eTo6cGxhdGZvcm1Jbml0aWFsaXplKGNvbnN0IFBsdWdpbkNyZWF0
aW9uUGFyYW1ldGVycyYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpbkNvbnRyb2xsZXJQcm94eU1h
Yy5tbSBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpbkNvbnRyb2xsZXJQ
cm94eU1hYy5tbQppbmRleCBhYTJlYTQ5NzliNjg3MWE5MGNiODY5ODZkMWIzMDk4MzRkMWYyYTU5
Li41MWZkMGQ1M2Q2YjEzNmUwOGIyMjNmNGQwOGYwZWEyZTljZTAzZDlhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Db250cm9sbGVyUHJveHlNYWMu
bW0KKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luQ29udHJvbGxl
clByb3h5TWFjLm1tCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKFBMVUdJTl9QUk9DRVNT
KQogCiAjaW1wb3J0ICJMYXllckhvc3RpbmdDb250ZXh0LmgiCisjaW1wb3J0ICJQbHVnaW5DcmVh
dGlvblBhcmFtZXRlcnMuaCIKICNpbXBvcnQgIlBsdWdpblByb2Nlc3MuaCIKICNpbXBvcnQgIlBs
dWdpblByb3h5TWVzc2FnZXMuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NDb25uZWN0aW9uLmgiCkBA
IC01MywxNSArNTQsMTAgQEAgbWFjaF9wb3J0X3QgUGx1Z2luQ29udHJvbGxlclByb3h5Ojpjb21w
b3NpdGluZ1JlbmRlclNlcnZlclBvcnQoKQogICAgIHJldHVybiBQbHVnaW5Qcm9jZXNzOjpzaGFy
ZWQoKS5jb21wb3NpdGluZ1JlbmRlclNlcnZlclBvcnQoKTsKIH0KIAotdm9pZCBQbHVnaW5Db250
cm9sbGVyUHJveHk6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCit2b2lkIFBsdWdpbkNvbnRyb2xsZXJQ
cm94eTo6cGxhdGZvcm1Jbml0aWFsaXplKGNvbnN0IFBsdWdpbkNyZWF0aW9uUGFyYW1ldGVycyYg
Y3JlYXRpb25QYXJhbWV0ZXJzKQogewotICAgIENBTGF5ZXIgKiBwbGF0Zm9ybUxheWVyID0gbV9w
bHVnaW4tPnBsdWdpbkxheWVyKCk7Ci0gICAgaWYgKCFwbGF0Zm9ybUxheWVyKQotICAgICAgICBy
ZXR1cm47Ci0KICAgICBBU1NFUlQoIW1fbGF5ZXJIb3N0aW5nQ29udGV4dCk7Ci0gICAgbV9sYXll
ckhvc3RpbmdDb250ZXh0ID0gTGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlRm9yUG9ydChQbHVn
aW5Qcm9jZXNzOjpzaGFyZWQoKS5jb21wb3NpdGluZ1JlbmRlclNlcnZlclBvcnQoKSk7Ci0gICAg
bV9sYXllckhvc3RpbmdDb250ZXh0LT5zZXRSb290TGF5ZXIocGxhdGZvcm1MYXllcik7CisgICAg
dXBkYXRlTGF5ZXJIb3N0aW5nQ29udGV4dChjcmVhdGlvblBhcmFtZXRlcnMucGFyYW1ldGVycy5s
YXllckhvc3RpbmdNb2RlKTsKIH0KIAogdm9pZCBQbHVnaW5Db250cm9sbGVyUHJveHk6OnBsYXRm
b3JtRGVzdHJveSgpCkBAIC0xMTIsNiArMTA4LDQxIEBAIHZvaWQgUGx1Z2luQ29udHJvbGxlclBy
b3h5OjpzZW5kQ29tcGxleFRleHRJbnB1dChjb25zdCBTdHJpbmcmIHRleHRJbnB1dCkKICAgICBt
X3BsdWdpbi0+c2VuZENvbXBsZXhUZXh0SW5wdXQodGV4dElucHV0KTsKIH0KIAordm9pZCBQbHVn
aW5Db250cm9sbGVyUHJveHk6OnNldExheWVySG9zdGluZ01vZGUodWludDMyX3Qgb3BhcXVlTGF5
ZXJIb3N0aW5nTW9kZSkKK3sKKyAgICBMYXllckhvc3RpbmdNb2RlIGxheWVySG9zdGluZ01vZGUg
PSBzdGF0aWNfY2FzdDxMYXllckhvc3RpbmdNb2RlPihvcGFxdWVMYXllckhvc3RpbmdNb2RlKTsK
KyAgICB1cGRhdGVMYXllckhvc3RpbmdDb250ZXh0KGxheWVySG9zdGluZ01vZGUpOworCisgICAg
bV9jb25uZWN0aW9uLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlBsdWdpblByb3h5OjpT
ZXRMYXllckhvc3RpbmdDb250ZXh0SUQobV9sYXllckhvc3RpbmdDb250ZXh0LT5jb250ZXh0SUQo
KSksIG1fcGx1Z2luSW5zdGFuY2VJRCk7Cit9CisKK3ZvaWQgUGx1Z2luQ29udHJvbGxlclByb3h5
Ojp1cGRhdGVMYXllckhvc3RpbmdDb250ZXh0KExheWVySG9zdGluZ01vZGUgbGF5ZXJIb3N0aW5n
TW9kZSkKK3sKKyAgICBDQUxheWVyICpwbGF0Zm9ybUxheWVyID0gbV9wbHVnaW4tPnBsdWdpbkxh
eWVyKCk7CisgICAgaWYgKCFwbGF0Zm9ybUxheWVyKQorICAgICAgICByZXR1cm47CisKKyAgICBp
ZiAobV9sYXllckhvc3RpbmdDb250ZXh0KSB7CisgICAgICAgIGlmIChtX2xheWVySG9zdGluZ0Nv
bnRleHQtPmxheWVySG9zdGluZ01vZGUoKSA9PSBsYXllckhvc3RpbmdNb2RlKQorICAgICAgICAg
ICAgcmV0dXJuOworCisgICAgICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+aW52YWxpZGF0ZSgp
OworICAgIH0KKworICAgIHN3aXRjaCAobGF5ZXJIb3N0aW5nTW9kZSkgeworICAgICAgICBjYXNl
IExheWVySG9zdGluZ01vZGVEZWZhdWx0OgorICAgICAgICAgICAgbV9sYXllckhvc3RpbmdDb250
ZXh0ID0gTGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlRm9yUG9ydChQbHVnaW5Qcm9jZXNzOjpz
aGFyZWQoKS5jb21wb3NpdGluZ1JlbmRlclNlcnZlclBvcnQoKSk7CisgICAgICAgICAgICBicmVh
azsKKyNpZiBIQVZFKExBWUVSX0hPU1RJTkdfSU5fV0lORE9XX1NFUlZFUikKKyAgICAgICAgY2Fz
ZSBMYXllckhvc3RpbmdNb2RlSW5XaW5kb3dTZXJ2ZXI6CisgICAgICAgICAgICBtX2xheWVySG9z
dGluZ0NvbnRleHQgPSBMYXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVGb3JXaW5kb3dTZXJ2ZXIo
KTsKKyAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCisgICAgfQorCisgICAgbV9sYXllckhvc3Rp
bmdDb250ZXh0LT5zZXRSb290TGF5ZXIocGxhdGZvcm1MYXllcik7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9xdC9QbHVnaW5Db250cm9sbGVyUHJveHlR
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL3F0L1BsdWdpbkNvbnRyb2xsZXJQ
cm94eVF0LmNwcAppbmRleCA2YzU5MjQyNWNiOTQ3ZmNjNGQxMjhkNmQ3ZDYwMTIxOTg5OGM1Yzdh
Li43NDNhZGZhYTRkMDRjOTcxN2VmNTQyNzU4MTQ0MTAyY2M4MDQwYTQ1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL3F0L1BsdWdpbkNvbnRyb2xsZXJQcm94eVF0LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL3F0L1BsdWdpbkNvbnRyb2xsZXJQ
cm94eVF0LmNwcApAQCAtMzUsNyArMzUsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKLXZvaWQgUGx1Z2luQ29udHJvbGxlclByb3h5OjpwbGF0Zm9y
bUluaXRpYWxpemUoKQordm9pZCBQbHVnaW5Db250cm9sbGVyUHJveHk6OnBsYXRmb3JtSW5pdGlh
bGl6ZShjb25zdCBQbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMmKQogewogICAgIG5vdEltcGxlbWVu
dGVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
TmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oCmluZGV4IDEyNDJkMzE5YmY2NDM0ZjYxYjRl
YWM3ODYzZmEyYTE2NTEwZWY3YzcuLjRhYjA3MmVkZjc5N2ZkOWY5OTE1YzA2OWE4MTg4N2ZhMjEz
ZTMyYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9OZXRzY2FwZVBsdWdpbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oCkBAIC0yMDUsNiArMjA1LDcgQEAgcHJpdmF0
ZToKIAogICAgIHZpcnR1YWwgdWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZp
ZXIoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgc2VuZENvbXBsZXhUZXh0SW5wdXQoY29uc3Qg
U3RyaW5nJiB0ZXh0SW5wdXQpOworICAgIHZpcnR1YWwgdm9pZCBzZXRMYXllckhvc3RpbmdNb2Rl
KExheWVySG9zdGluZ01vZGUpIE9WRVJSSURFOwogCiAgICAgdm9pZCBwbHVnaW5Gb2N1c09yV2lu
ZG93Rm9jdXNDaGFuZ2VkKCk7CiAgICAgdm9pZCBzZXRDb21wbGV4VGV4dElucHV0RW5hYmxlZChi
b29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tCmluZGV4IGM4ZDUzODE5
ZjcwYWJhZTRjYzA1ODE3MTExNTNiYWQ0NTkxZmE1ZDQuLmU4M2U2OTZmNDA3Mzc5Zjg1MjU5ZGU3
NGU5Y2I3MDg0MDAzYmY0ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW0KKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5t
bQpAQCAtMTAyMiw2ICsxMDIyLDEwIEBAIHZvaWQgTmV0c2NhcGVQbHVnaW46OnNlbmRDb21wbGV4
VGV4dElucHV0KGNvbnN0IFN0cmluZyYgdGV4dElucHV0KQogICAgIH0KIH0KIAordm9pZCBOZXRz
Y2FwZVBsdWdpbjo6c2V0TGF5ZXJIb3N0aW5nTW9kZShMYXllckhvc3RpbmdNb2RlKQoreworfQor
CiB2b2lkIE5ldHNjYXBlUGx1Z2luOjpwbHVnaW5Gb2N1c09yV2luZG93Rm9jdXNDaGFuZ2VkKCkK
IHsKICAgICBib29sIHBsdWdpbkhhc0ZvY3VzQW5kV2luZG93SGFzRm9jdXMgPSBtX3BsdWdpbkhh
c0ZvY3VzICYmIG1fd2luZG93SGFzRm9jdXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL1BsdWdpblByb3h5TWFjLm1tIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9QbHVnaW5Qcm94eU1hYy5t
bQppbmRleCA0OTM4NWQ5ZDkwNmMyY2RmNGUyY2YwNjA1OTkwNTQ1Y2ZiY2E5OGRhLi44NDQ4NjEy
OTkyOGVhYzIxZjhlN2FiN2QxYmUxODIzNTI5MTgzYzE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL1BsdWdpblByb3h5TWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvUGx1Z2lu
UHJveHlNYWMubW0KQEAgLTI5LDIyICsyOSwyOSBAQAogI2lmIEVOQUJMRShQTFVHSU5fUFJPQ0VT
UykKIAogI2ltcG9ydCAiUGx1Z2luQ29udHJvbGxlci5oIgorI2ltcG9ydCAiUGx1Z2luQ29udHJv
bGxlclByb3h5TWVzc2FnZXMuaCIKKyNpbXBvcnQgIlBsdWdpblByb2Nlc3NDb25uZWN0aW9uLmgi
CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7
CiAKK3N0YXRpYyB2b2lkIG1ha2VSZW5kZXJMYXllcihDQUxheWVyICpwbHVnaW5MYXllciwgdWlu
dDMyX3QgbGF5ZXJIb3N0aW5nQ29udGV4dElEKQoreworICAgIENBTGF5ZXIgKnJlbmRlckxheWVy
ID0gV0tNYWtlUmVuZGVyTGF5ZXIobGF5ZXJIb3N0aW5nQ29udGV4dElEKTsKKyAgICBbcmVuZGVy
TGF5ZXIgc2V0RnJhbWU6W3BsdWdpbkxheWVyIGJvdW5kc11dOworICAgIFtyZW5kZXJMYXllciBz
ZXRBdXRvcmVzaXppbmdNYXNrOmtDQUxheWVyV2lkdGhTaXphYmxlIHwga0NBTGF5ZXJIZWlnaHRT
aXphYmxlXTsKKyAgICBbcGx1Z2luTGF5ZXIgc2V0U3VibGF5ZXJzOltOU0FycmF5IGFycmF5V2l0
aE9iamVjdDpyZW5kZXJMYXllcl1dOworfQorCiBQbGF0Zm9ybUxheWVyKiBQbHVnaW5Qcm94eTo6
cGx1Z2luTGF5ZXIoKQogewogICAgIGlmICghbV9wbHVnaW5MYXllciAmJiBtX3JlbW90ZUxheWVy
Q2xpZW50SUQpIHsKLSAgICAgICAgQ0FMYXllciAqcmVuZGVyTGF5ZXIgPSBXS01ha2VSZW5kZXJM
YXllcihtX3JlbW90ZUxheWVyQ2xpZW50SUQpOwotCiAgICAgICAgIC8vIENyZWF0ZSBhIGxheWVy
IHdpdGggZmxpcHBlZCBnZW9tZXRyeSBhbmQgYWRkIHRoZSByZWFsIHBsdWctaW4gbGF5ZXIgYXMg
YSBzdWJsYXllcgogICAgICAgICAvLyBzbyB0aGUgY29vcmRpbmF0ZSBzeXN0ZW0gd2lsbCBtYXRj
aCB0aGUgZXZlbnQgY29vcmRpbmF0ZSBzeXN0ZW0uCiAgICAgICAgIG1fcGx1Z2luTGF5ZXIuYWRv
cHROUyhbW0NBTGF5ZXIgYWxsb2NdIGluaXRdKTsKICAgICAgICAgW21fcGx1Z2luTGF5ZXIuZ2V0
KCkgc2V0R2VvbWV0cnlGbGlwcGVkOllFU107Ci0gICAgICAgIAotICAgICAgICBbcmVuZGVyTGF5
ZXIgc2V0QXV0b3Jlc2l6aW5nTWFzazprQ0FMYXllcldpZHRoU2l6YWJsZSB8IGtDQUxheWVySGVp
Z2h0U2l6YWJsZV07Ci0gICAgICAgIFttX3BsdWdpbkxheWVyLmdldCgpIGFkZFN1YmxheWVyOnJl
bmRlckxheWVyXTsKKworICAgICAgICBtYWtlUmVuZGVyTGF5ZXIobV9wbHVnaW5MYXllci5nZXQo
KSwgbV9yZW1vdGVMYXllckNsaWVudElEKTsKICAgICB9CiAKICAgICByZXR1cm4gbV9wbHVnaW5M
YXllci5nZXQoKTsKQEAgLTY1LDYgKzcyLDIwIEBAIHZvaWQgUGx1Z2luUHJveHk6OnNldENvbXBs
ZXhUZXh0SW5wdXRTdGF0ZSh1aW50NjRfdCBjb21wbGV4VGV4dElucHV0U3RhdGUpCiAgICAgY29u
dHJvbGxlcigpLT5zZXRDb21wbGV4VGV4dElucHV0U3RhdGUoc3RhdGljX2Nhc3Q8UGx1Z2luQ29t
cGxleFRleHRJbnB1dFN0YXRlPihjb21wbGV4VGV4dElucHV0U3RhdGUpKTsKIH0KIAordm9pZCBQ
bHVnaW5Qcm94eTo6c2V0TGF5ZXJIb3N0aW5nTW9kZShMYXllckhvc3RpbmdNb2RlIGxheWVySG9z
dGluZ01vZGUpCit7CisgICAgbV9jb25uZWN0aW9uLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2Fn
ZXM6OlBsdWdpbkNvbnRyb2xsZXJQcm94eTo6U2V0TGF5ZXJIb3N0aW5nTW9kZShsYXllckhvc3Rp
bmdNb2RlKSwgbV9wbHVnaW5JbnN0YW5jZUlEKTsKK30KKwordm9pZCBQbHVnaW5Qcm94eTo6c2V0
TGF5ZXJIb3N0aW5nQ29udGV4dElEKHVpbnQzMl90IGxheWVySG9zdGluZ0NvbnRleHRJRCkKK3sK
KyAgICBBU1NFUlQobV9wbHVnaW5MYXllci5nZXQoKSk7CisKKyAgICBtX3JlbW90ZUxheWVyQ2xp
ZW50SUQgPSBsYXllckhvc3RpbmdDb250ZXh0SUQ7CisgICAgbWFrZVJlbmRlckxheWVyKG1fcGx1
Z2luTGF5ZXIuZ2V0KCksIG1fcmVtb3RlTGF5ZXJDbGllbnRJRCk7Cit9CisKKwogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoUExVR0lOX1BST0NFU1MpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL0J1aWx0SW5QREZWaWV3
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvQnVpbHRJblBERlZp
ZXcuY3BwCmluZGV4IGQ1YjgzNTNlZWQ4ZGFkOGU3ZGVjNzhiOTkzNTNkNzgwNjgxM2NhMDIuLjll
MjIxZWFiZmE3MTlkNjhjMTY2NzRkOWYyZjkwZWViNGRjMzcyMjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvQnVpbHRJblBERlZpZXcuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvQnVpbHRJblBERlZpZXcuY3Bw
CkBAIC02NDAsNiArNjQwLDEwIEBAIHZvaWQgQnVpbHRJblBERlZpZXc6OnNlbmRDb21wbGV4VGV4
dElucHV0KGNvbnN0IFN0cmluZyYpCiB7CiB9CiAKK3ZvaWQgQnVpbHRJblBERlZpZXc6OnNldExh
eWVySG9zdGluZ01vZGUoTGF5ZXJIb3N0aW5nTW9kZSkKK3sKK30KKwogI2VuZGlmCiAKIHZvaWQg
QnVpbHRJblBERlZpZXc6OnByaXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdlZChib29sKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9CdWlsdEluUERGVmll
dy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9CdWlsdEluUERGVmll
dy5oCmluZGV4IGU0YTYyNGE2NzNhMmU1MTM5NWNjNzA3YTEyMjNiOTIyNWM5YWZjYTEuLmE1YWUz
MGJkMmU4MWJlOTZkNWQ2MGZiN2JjNmJjOWZhZTdhOTEwMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvQnVpbHRJblBERlZpZXcuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL0J1aWx0SW5QREZWaWV3LmgKQEAgLTEw
NSw2ICsxMDUsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBjb250ZW50c1NjYWxlRmFj
dG9yQ2hhbmdlZChmbG9hdCk7CiAgICAgdmlydHVhbCB1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4
dElucHV0SWRlbnRpZmllcigpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBzZW5kQ29tcGxleFRl
eHRJbnB1dChjb25zdCBTdHJpbmcmIHRleHRJbnB1dCk7CisgICAgdmlydHVhbCB2b2lkIHNldExh
eWVySG9zdGluZ01vZGUoTGF5ZXJIb3N0aW5nTW9kZSkgT1ZFUlJJREU7CiAjZW5kaWYKIAogICAg
IHZpcnR1YWwgdm9pZCBwcml2YXRlQnJvd3NpbmdTdGF0ZUNoYW5nZWQoYm9vbCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uY3BwCmluZGV4IDRmNzliMWFhNmMz
MGExOWQzZGZjMTEyNGQyOWUzYmNjY2U3NDUzYjkuLmFjY2U2Y2ZjY2FhNjY0ZjNhNjM1YWY3OWIx
YjhkZDM3OWIyYmUyMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9QbHVnaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW4uY3BwCkBAIC0zOSw2ICszOSw3IEBAIHZvaWQgUGx1Z2luOjpQYXJhbWV0ZXJzOjplbmNv
ZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIt
PmVuY29kZSh2YWx1ZXMpOwogICAgIGVuY29kZXItPmVuY29kZShtaW1lVHlwZSk7CiAgICAgZW5j
b2Rlci0+ZW5jb2RlKGxvYWRNYW51YWxseSk7CisgICAgZW5jb2Rlci0+ZW5jb2RlRW51bShsYXll
ckhvc3RpbmdNb2RlKTsKIH0KIAogYm9vbCBQbHVnaW46OlBhcmFtZXRlcnM6OmRlY29kZShDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCkBA
IC01Nyw2ICs1OCw4IEBAIGJvb2wgUGx1Z2luOjpQYXJhbWV0ZXJzOjpkZWNvZGUoQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBQYXJhbWV0ZXJzJiBwCiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICBpZiAoIWRlY29kZXItPmRlY29kZShwYXJhbWV0ZXJzLmxvYWRNYW51YWxseSkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZUVudW0ocGFy
YW1ldGVycy5sYXllckhvc3RpbmdNb2RlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAg
aWYgKHBhcmFtZXRlcnMubmFtZXMuc2l6ZSgpICE9IHBhcmFtZXRlcnMudmFsdWVzLnNpemUoKSkg
ewogICAgICAgICBkZWNvZGVyLT5tYXJrSW52YWxpZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpbi5oCmluZGV4IGE1YWY0OGY0ZTJlYzE1ODQ5YTliMDIyN2VmNTZl
MzBjYzIzYTA4N2QuLjc1NmJmZTkzMWVhNGRkZmNjMTFjNzQ3Y2Y0ZjA2NTMyZWNkY2I2OWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmgKQEAgLTI2LDYgKzI2
LDcgQEAKICNpZm5kZWYgUGx1Z2luX2gKICNkZWZpbmUgUGx1Z2luX2gKIAorI2luY2x1ZGUgIkxh
eWVySG9zdGluZ0NvbnRleHQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXIuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0tVUkwuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbFR5cGVz
Lmg+CkBAIC02NSw2ICs2Niw3IEBAIHB1YmxpYzoKICAgICAgICAgVmVjdG9yPFN0cmluZz4gdmFs
dWVzOwogICAgICAgICBTdHJpbmcgbWltZVR5cGU7CiAgICAgICAgIGJvb2wgbG9hZE1hbnVhbGx5
OworICAgICAgICBMYXllckhvc3RpbmdNb2RlIGxheWVySG9zdGluZ01vZGU7CiAKICAgICAgICAg
dm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7CiAgICAgICAgIHN0
YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBQYXJhbWV0ZXJzJik7
CkBAIC0xOTMsNiArMTk1LDkgQEAgcHVibGljOgogCiAgICAgLy8gU2VuZCB0aGUgY29tcGxleCB0
ZXh0IGlucHV0IHRvIHRoZSBwbHVnLWluLgogICAgIHZpcnR1YWwgdm9pZCBzZW5kQ29tcGxleFRl
eHRJbnB1dChjb25zdCBTdHJpbmcmIHRleHRJbnB1dCkgPSAwOworCisgICAgLy8gVGVsbHMgdGhl
IHBsdWctaW4gYWJvdXQgY2hhbmdlcyB0byB0aGUgbGF5ZXIgaG9zdGluZyBtb2RlLgorICAgIHZp
cnR1YWwgdm9pZCBzZXRMYXllckhvc3RpbmdNb2RlKExheWVySG9zdGluZ01vZGUpID0gMDsKICNl
bmRpZgogCiAgICAgLy8gVGVsbHMgdGhlIHBsdWctaW4gYWJvdXQgc2NhbGUgZmFjdG9yIGNoYW5n
ZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5o
CmluZGV4IGQyYTUzODc3NzBhZWMyOWE1Y2NiODY5OGFhNWJhYjM5ZjdjMDcwYjYuLjEwODE5ZDBh
NzFlN2Q1MGRmN2JkYTM2Mjk1MWE3MDQ3Yjc2Y2EyYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5oCkBAIC0xMDAsNiArMTAwLDcgQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgd2luZG93VmlzaWJpbGl0eUNoYW5nZWQoYm9vbCk7CiAg
ICAgdmlydHVhbCB1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcigpIGNv
bnN0OwogICAgIHZpcnR1YWwgdm9pZCBzZW5kQ29tcGxleFRleHRJbnB1dChjb25zdCBTdHJpbmcm
IHRleHRJbnB1dCk7CisgICAgdmlydHVhbCB2b2lkIHNldExheWVySG9zdGluZ01vZGUoTGF5ZXJI
b3N0aW5nTW9kZSkgT1ZFUlJJREU7CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCBjb250ZW50
c1NjYWxlRmFjdG9yQ2hhbmdlZChmbG9hdCk7CkBAIC0xMzIsNiArMTMzLDcgQEAgcHJpdmF0ZToK
ICNpZiBQTEFURk9STShNQUMpCiAgICAgdm9pZCBwbHVnaW5Gb2N1c09yV2luZG93Rm9jdXNDaGFu
Z2VkKGJvb2wpOwogICAgIHZvaWQgc2V0Q29tcGxleFRleHRJbnB1dFN0YXRlKHVpbnQ2NF90KTsK
KyAgICB2b2lkIHNldExheWVySG9zdGluZ0NvbnRleHRJRCh1aW50MzJfdCk7CiAjZW5kaWYKIAog
ICAgIFN0cmluZyBtX3BsdWdpblBhdGg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkubWVzc2FnZXMuaW4KaW5kZXggY2U3NTYxNjlh
NTcyOWQwOTk3MzU4NjhjOWRjYTU4NGRmZGMyYTUyNC4uODBiM2IwNjUyYWRmM2ZlNTc5ZDRhZWU1
ZjUwYzNjODYyMDljNjAyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5tZXNzYWdlcy5pbgpAQCAtNjAsOCArNjAsMTEgQEAg
bWVzc2FnZXMgLT4gUGx1Z2luUHJveHkgewogICAgICMgQ2FsbGVkIHdoZW4gdGhlIHBsdWctaW4n
cyBmb2N1cyBvciBpdHMgY29udGFpbmluZyB3aW5kb3cgZm9jdXMgY2hhbmdlcy4KICAgICBQbHVn
aW5Gb2N1c09yV2luZG93Rm9jdXNDaGFuZ2VkKGJvb2wgcGx1Z2luSGFzRm9jdXNBbmRXaW5kb3dI
YXNGb2N1cykKIAotICAgICMgQ2hhbmdlIHdoZXRoZXIgY29tcGxleHQgdGV4dCBpbnB1dCBpcyBl
bmFibGVkIGZvciB0aGlzIHBsdWctaW4uCisgICAgIyBDaGFuZ2Ugd2hldGhlciBjb21wbGV4IHRl
eHQgaW5wdXQgaXMgZW5hYmxlZCBmb3IgdGhpcyBwbHVnLWluLgogICAgIFNldENvbXBsZXhUZXh0
SW5wdXRTdGF0ZSh1aW50NjRfdCBjb21wbGV4VGV4dElucHV0U3RhdGUpCisKKyAgICAjIFVwZGF0
ZSB0aGUgbGF5ZXIgaG9zdGluZyBjb250ZXh0IElELiBDYWxsZWQgd2hlbmV2ZXIgdGhlIGxheWVy
IGhvc3Rpbmcgc3RhdGUgY2hhbmdlcy4KKyAgICBTZXRMYXllckhvc3RpbmdDb250ZXh0SUQodWlu
dDMyX3QgbGF5ZXJIb3N0aW5nQ29udGV4dElEKQogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRleCAzYTI1OGYxZTBj
Y2UwZTM3YTY0MzFkOWJjNmY5NTEwZGEwYWNiMzJiLi4yODM0NzVjYmNiN2ZkMWE0YjE3ZTg0MmI2
NGQ0NzVhYjU3NTkyNzkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblZpZXcuY3BwCkBAIC00MzQsNiArNDM0LDE0IEBAIGJvb2wgUGx1Z2luVmlldzo6
c2VuZENvbXBsZXhUZXh0SW5wdXQodWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50
aWZpZXIsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgUGx1Z2luVmlldzo6c2V0TGF5ZXJI
b3N0aW5nTW9kZShMYXllckhvc3RpbmdNb2RlIGxheWVySG9zdGluZ01vZGUpCit7CisgICAgaWYg
KCFtX3BsdWdpbikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9wbHVnaW4tPnNldExheWVySG9z
dGluZ01vZGUobGF5ZXJIb3N0aW5nTW9kZSk7Cit9CisKICNlbmRpZgogCiB2b2lkIFBsdWdpblZp
ZXc6OmluaXRpYWxpemVQbHVnaW4oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9QbHVnaW5WaWV3LmgKaW5kZXggZDU5YTNkMzZlMWYyMjVkNGM5MjRiOTBlOGZlOGI0Yzk3
OWZkZWZlZC4uNzRhYTBiMGNhOTFjZDMzOGZhNzYwYmQ2MWY3NGEyM2JhYjIxNGQ0YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCkBAIC02NSw2
ICs2NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldERldmljZVNjYWxlRmFjdG9yKGZsb2F0KTsK
ICAgICB2b2lkIHdpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmIHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyk7CiAgICAgYm9vbCBzZW5kQ29tcGxleFRl
eHRJbnB1dCh1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiB0ZXh0SW5wdXQpOworICAgIHZvaWQgc2V0TGF5ZXJIb3N0aW5nTW9kZShMYXllckhv
c3RpbmdNb2RlKTsKICNlbmRpZgogCiAjaWYgVVNFKENHKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmNwcAppbmRleCBjNGIxNzMwOTg3NmIxZWE2ZDQ3Nzg4NTdmMmQ2OGU3YTdhMzExZjlk
Li5hMDMwNDZlODZjMmU3ZWViYjQ0ZmJjODhjODU4YjZiNDM5YTI0MWRmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMTI2Nyw2ICsxMjY3LDkgQEAgUGFzc1JlZlB0cjxX
aWRnZXQ+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVQbHVnaW4oY29uc3QgSW50U2l6ZSYs
IEhUTUxQbHVnSW4KICAgICBwYXJhbWV0ZXJzLnZhbHVlcyA9IHBhcmFtVmFsdWVzOwogICAgIHBh
cmFtZXRlcnMubWltZVR5cGUgPSBtaW1lVHlwZTsKICAgICBwYXJhbWV0ZXJzLmxvYWRNYW51YWxs
eSA9IGxvYWRNYW51YWxseTsKKyNpZiBQTEFURk9STShNQUMpCisgICAgcGFyYW1ldGVycy5sYXll
ckhvc3RpbmdNb2RlID0gd2ViUGFnZS0+bGF5ZXJIb3N0aW5nTW9kZSgpOworI2VuZGlmCiAKICNp
ZiBQTFVHSU5fQVJDSElURUNUVVJFKFgxMSkKICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgcmVh
bGx5IGJlIFgxMS1zcGVjaWZpYyBwbHVnLWluIHF1aXJrcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA5OTkyZjViYzcxY2M1MzFlYmIwMmUx
YmJkNDljMmIxZWMxZDM3MjZlLi45ZjhmYjhlMjQ2YjExYjQyMGRlZWYwYzhkMTljZDE2ZWMwMGE5
MDA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CkBAIC0xODgsNiArMTg4LDcgQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNv
bnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAjaWYgUExBVEZPUk0o
TUFDKQogICAgICwgbV93aW5kb3dJc1Zpc2libGUoZmFsc2UpCiAgICAgLCBtX2lzU21hcnRJbnNl
cnREZWxldGVFbmFibGVkKHBhcmFtZXRlcnMuaXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQpCisg
ICAgLCBtX2xheWVySG9zdGluZ01vZGUoTGF5ZXJIb3N0aW5nTW9kZURlZmF1bHQpCiAgICAgLCBt
X2tleWJvYXJkRXZlbnRCZWluZ0ludGVycHJldGVkKDApCiAjZWxpZiBQTEFURk9STShXSU4pCiAg
ICAgLCBtX25hdGl2ZVdpbmRvdyhwYXJhbWV0ZXJzLm5hdGl2ZVdpbmRvdykKQEAgLTI0NTEsNyAr
MjQ1Miw2IEBAIHZvaWQgV2ViUGFnZTo6d2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQoY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYgd2luZG93RnJhbWVJblNjCiAgICAgZm9yIChIYXNoU2V0PFBsdWdp
blZpZXcqPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX3BsdWdpblZpZXdzLmJlZ2luKCksIGVuZCA9
IG1fcGx1Z2luVmlld3MuZW5kKCk7IGl0ICE9IGVuZDsgKytpdCkKICAgICAgICAgKCppdCktPndp
bmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywg
dmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyk7CiB9Ci0KICNlbmRpZgogCiBib29sIFdlYlBh
Z2U6OndpbmRvd0lzRm9jdXNlZCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA0NzRiNTY1OThkNWZiMWE3MTIyNGYwNGY3MDA1NDdmNDA3
YmYyMTM5Li5hNjUyMTU4Zjk5YmI1ODRiNGU1NWQ0NzExYjhiMTNhZTA5YjQ2N2M4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTQwLDYgKzQwLDcg
QEAKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVBhZ2VQb2xpY3lDbGllbnQuaCIKICNpbmNsdWRl
ICJJbmplY3RlZEJ1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQuaCIKICNpbmNsdWRlICJJbmpl
Y3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oIgorI2luY2x1ZGUgIkxheWVySG9zdGluZ0NvbnRleHQu
aCIKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCiAjaW5jbHVkZSAiVGFwSGlnaGxpZ2h0Q29u
dHJvbGxlci5oIgogI2luY2x1ZGUgIlBsdWdpbi5oIgpAQCAtMjk5LDYgKzMwMCw5IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGFkZFBsdWdpblZpZXcoUGx1Z2luVmlldyopOwogICAgIHZvaWQgcmVtb3Zl
UGx1Z2luVmlldyhQbHVnaW5WaWV3Kik7CiAKKyAgICBMYXllckhvc3RpbmdNb2RlIGxheWVySG9z
dGluZ01vZGUoKSBjb25zdCB7IHJldHVybiBtX2xheWVySG9zdGluZ01vZGU7IH0KKyAgICB2b2lk
IHNldExheWVySG9zdGluZ01vZGUoTGF5ZXJIb3N0aW5nTW9kZSk7CisKICAgICBib29sIHdpbmRv
d0lzVmlzaWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1fd2luZG93SXNWaXNpYmxlOyB9CiAgICAgY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYgd2luZG93RnJhbWVJblNjcmVlbkNvb3JkaW5hdGVzKCkgY29u
c3QgeyByZXR1cm4gbV93aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXM7IH0KICAgICBjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiB2aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKCkgY29uc3Qg
eyByZXR1cm4gbV92aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzOyB9CkBAIC03MDAsNiArNzA0
LDkgQEAgcHJpdmF0ZToKICAgICAvLyBBbGwgcGx1Zy1pbiB2aWV3cyBvbiB0aGlzIHdlYiBwYWdl
LgogICAgIEhhc2hTZXQ8UGx1Z2luVmlldyo+IG1fcGx1Z2luVmlld3M7CiAKKyAgICAvLyBUaGUg
bGF5ZXIgaG9zdGluZyBtb2RlLgorICAgIExheWVySG9zdGluZ01vZGUgbV9sYXllckhvc3RpbmdN
b2RlOworCiAgICAgUmV0YWluUHRyPFdLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3Q+IG1fbW9j
a0FjY2Vzc2liaWxpdHlFbGVtZW50OwogCiAgICAgV2ViQ29yZTo6S2V5Ym9hcmRFdmVudCogbV9r
ZXlib2FyZEV2ZW50QmVpbmdJbnRlcnByZXRlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0g
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlv
bkRyYXdpbmdBcmVhLm1tCmluZGV4IDI4NjU4YWRjMDRhOTI4ZDFkMzM3Yjg3OGQxZWE3ZWIzZjRl
NjI2YjguLjQyYTQ1YmNjNTBhMGIxMTYyYjcxZmIxMTg4NmY5MDg3ZWQxYzgxOGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0
aW9uRHJhd2luZ0FyZWEubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbQpAQCAtMzIzLDYgKzMyMyw4IEBA
IHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnNldExheWVySG9zdGluZ01vZGUo
dWludDMyX3Qgb3BhcXVlTGF5ZXJIb3N0CiAKICAgICAgICAgbV9sYXllckhvc3RpbmdDb250ZXh0
LT5zZXRSb290TGF5ZXIobV9yb290TGF5ZXIuZ2V0KCkpOwogCisgICAgICAgIG1fd2ViUGFnZS0+
c2V0TGF5ZXJIb3N0aW5nTW9kZShsYXllckhvc3RpbmdNb2RlKTsKKwogICAgICAgICAvLyBGaW5h
bGx5LCBpbmZvcm0gdGhlIFVJUHJvY2VzcyB0aGF0IHRoZSBjb250ZXh0IGhhcyBjaGFuZ2VkLgog
ICAgICAgICBMYXllclRyZWVDb250ZXh0IGxheWVyVHJlZUNvbnRleHQ7CiAgICAgICAgIGxheWVy
VHJlZUNvbnRleHQuY29udGV4dElEID0gbV9sYXllckhvc3RpbmdDb250ZXh0LT5jb250ZXh0SUQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2Vi
UGFnZU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFn
ZU1hYy5tbQppbmRleCBkZThhZjQ1OTBkN2ZiYzU4ZTFlZjg5M2YyMTAyMDY0OTA0N2NmZDMwLi5l
Y2E1MjNkMWZjYmVmZjk2N2YwYWIwZDIzNGRjNzBkYWVkMmYzODVkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCkBAIC03MTEs
NCArNzExLDEyIEBAIHZvaWQgV2ViUGFnZTo6YWNjZXB0c0ZpcnN0TW91c2UoaW50IGV2ZW50TnVt
YmVyLCBjb25zdCBXZWJLaXQ6OldlYk1vdXNlRXZlbnQmIGV2CiAgICAgICAgIHJlc3VsdCA9ICEh
aGl0UmVzdWx0LnNjcm9sbGJhcigpOwogfQogCit2b2lkIFdlYlBhZ2U6OnNldExheWVySG9zdGlu
Z01vZGUoTGF5ZXJIb3N0aW5nTW9kZSBsYXllckhvc3RpbmdNb2RlKQoreworICAgIG1fbGF5ZXJI
b3N0aW5nTW9kZSA9IGxheWVySG9zdGluZ01vZGU7CisKKyAgICBmb3IgKEhhc2hTZXQ8UGx1Z2lu
Vmlldyo+Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fcGx1Z2luVmlld3MuYmVnaW4oKSwgZW5kID0g
bV9wbHVnaW5WaWV3cy5lbmQoKTsgaXQgIT0gZW5kOyArK2l0KQorICAgICAgICAoKml0KS0+c2V0
TGF5ZXJIb3N0aW5nTW9kZShsYXllckhvc3RpbmdNb2RlKTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>134152</attachid>
            <date>2012-03-27 15:47:39 -0700</date>
            <delta_ts>2012-03-27 15:55:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82387-20120327154845.patch</filename>
            <type>text/plain</type>
            <size>27406</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyMjg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMzI4ZTU1MDcwNzM1ZjY4
ZTcyMDIzOWVmZmEyOGU5MzM1N2NmNmIwMi4uYWMwYzI5YTYwZmFkMGY1ZmYwYTg3ZDZiYTg1NjQx
NDVlNDc3MzhjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDk2IEBACiAyMDEyLTAzLTI3ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKKyAgICAgICAgUGx1Zy1pbnMgdXNp
bmcgdGhlIENvcmUgQW5pbWF0aW9uIGRyYXdpbmcgbW9kZWwgc2hvdWxkIHdvcmsgd2hlbiBob3N0
aW5nIHRoZSBsYXllciB0cmVlIGluIHRoZSB3aW5kb3cgc2VydmVyCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MjM4NworICAgICAgICA8cmRhcjovL3By
b2JsZW0vMTEwMzE5NDI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlBsdWdpbkNvbnRyb2xsZXJQcm94eTo6UGx1Z2luQ29udHJvbGxlclByb3h5
KToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luQ29udHJvbGxlclByb3h5Ojppbml0aWFsaXplKToK
KyAgICAgICAgUmVtb3ZlIG1fcGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzOyBpdCB3YXMgdXNlZCBi
eSB0aGUgb2xkIE5QUnVudGltZSBzaG9ydC1jaXJjdWl0IGNvZGUuIAorICAgICAgICBNYWtlIHBs
YXRmb3JtSW5pdGlhbGl6ZSB0YWtlIGNyZWF0aW9uIHBhcmFtZXRlcnMuCisKKyAgICAgICAgKiBQ
bHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAg
QWRkIFNldExheWVySG9zdGluZ01vZGUgbWVzc2FnZS4KKworICAgICAgICAqIFBsdWdpblByb2Nl
c3MvZ3RrL1BsdWdpbkNvbnRyb2xsZXJQcm94eUd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBs
dWdpbkNvbnRyb2xsZXJQcm94eTo6cGxhdGZvcm1Jbml0aWFsaXplKToKKyAgICAgICAgTWFrZSBw
bGF0Zm9ybUluaXRpYWxpemUgdGFrZSBjcmVhdGlvbiBwYXJhbWV0ZXJzLgorCisgICAgICAgICog
UGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luQ29udHJvbGxlclByb3h5TWFjLm1tOgorICAgICAgICAo
V2ViS2l0OjpQbHVnaW5Db250cm9sbGVyUHJveHk6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6CisgICAg
ICAgIENhbGwgdXBkYXRlTGF5ZXJIb3N0aW5nQ29udGV4dC4KKworICAgICAgICAoV2ViS2l0OjpQ
bHVnaW5Db250cm9sbGVyUHJveHk6OnNldExheWVySG9zdGluZ01vZGUpOgorICAgICAgICBDYWxs
IHVwZGF0ZUxheWVySG9zdGluZ0NvbnRleHQgYW5kIHNlbmQgYmFjayB0aGUgbmV3IGNvbnRleHQg
SUQuCisKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luQ29udHJvbGxlclByb3h5Ojp1cGRhdGVMYXll
ckhvc3RpbmdDb250ZXh0KToKKyAgICAgICAgQ3JlYXRlIGEgbmV3IExheWVySG9zdGluZ0NvbnRl
eHQgZ2l2ZW4gdGhlIGxheWVyIGhvc3RpbmcgbW9kZS4KKworICAgICAgICAqIFBsdWdpblByb2Nl
c3MvcXQvUGx1Z2luQ29udHJvbGxlclByb3h5UXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVn
aW5Db250cm9sbGVyUHJveHk6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6CisgICAgICAgIE1ha2UgcGxh
dGZvcm1Jbml0aWFsaXplIHRha2UgY3JlYXRpb24gcGFyYW1ldGVycy4KKworICAgICAgICAqIFdl
YlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW06CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luOjpzZXRMYXllckhvc3RpbmdNb2RlKToKKyAgICAg
ICAgQWRkIHN0dWIuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFj
L1BsdWdpblByb3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjptYWtlUmVuZGVyTGF5ZXIpOgor
ICAgICAgICBBZGQgaGVscGVyIGZ1bmN0aW9uIGZvciBjcmVhdGluZyBhIG5ldyByZW5kZXIgbGF5
ZXIuCisKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJveHk6OnBsdWdpbkxheWVyKToKKyAgICAg
ICAgQ2FsbCBtYWtlUmVuZGVyTGF5ZXIuCisKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJveHk6
OnNldExheWVySG9zdGluZ01vZGUpOgorICAgICAgICBTZW5kIGEgbWVzc2FnZSB0byB0aGUgcGx1
Zy1pbiBwcm9jZXNzLgorCisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb3h5OjpzZXRMYXllckhv
c3RpbmdDb250ZXh0SUQpOgorICAgICAgICBVcGRhdGUgdGhlIGNvbnRleHQgSUQgYW5kIG1ha2Ug
YSBuZXcgcmVuZGVyIGxheWVyLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9C
dWlsdEluUERGVmlldy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkJ1aWx0SW5QREZWaWV3OjpzZXRM
YXllckhvc3RpbmdNb2RlKToKKyAgICAgICAgQWRkIHN0dWIuCisgICAgICAgICogV2ViUHJvY2Vz
cy9QbHVnaW5zL1BERi9CdWlsdEluUERGVmlldy5oOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpbjo6UGFyYW1ldGVyczo6
ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luOjpQYXJhbWV0ZXJzOjpkZWNvZGUpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uaDoKKyAgICAgICAgQWRkIHRoZSBs
YXllciBob3N0aW5nIG1vZGUgYXMgYSBwYXJhbWV0ZXIuIEFkZCBhIG5ldyBzZXRMYXllckhvc3Rp
bmdNb2RlIHB1cmUgdmlydHVhbCBtZW1iZXIgZnVuY3Rpb24uCisKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgIEFkZCBhIFNldExh
eWVySG9zdGluZ0NvbnRleHRJRCBtZXNzYWdlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5WaWV3OjpzZXRMYXll
ckhvc3RpbmdNb2RlKToKKyAgICAgICAgQ2FsbCBkb3duIHRvIHRoZSBwbHVnLWluLgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVQbHVnaW4pOgor
ICAgICAgICBTZXQgdGhlIGxheWVyIGhvc3RpbmcgbW9kZSBvZiB0aGUgcGFnZS4KKworICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6V2ViUGFnZSk6CisgICAgICAgIEluaXRpYWxpemUgbV9sYXllckhvc3RpbmdNb2RlIHRv
IGZhbHNlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6bGF5ZXJIb3N0aW5nTW9kZSk6CisgICAgICAgIEFkZCBtX2xh
eWVySG9zdGluZ01vZGUgYW5kIGEgZ2V0dGVyLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbToKKyAgICAgICAgKFdlYktp
dDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnNldExheWVySG9zdGluZ01vZGUpOgor
ICAgICAgICBDYWxsIFdlYlBhZ2U6OnNldExheWVySG9zdGluZ01vZGUuCisKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OnNldExheWVySG9zdGluZ01vZGUpOgorICAgICAgICBUZWxsIGFsbCBwbHVnLWlucyB0
aGF0IHRoZSBsYXllciBob3N0aW5nIG1vZGUgY2hhbmdlZC4KKworMjAxMi0wMy0yNyAgQW5kZXJz
IENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgorCiAgICAgICAgIERvbid0IHVwZGF0ZSB0
aGUgbGF5ZXIgaG9zdGluZyBzdGF0ZSB1bmxlc3MgdGhlIFdLVmlldyBpcyBhZGRlZCB0byBhIHdp
bmRvdwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODIz
NTkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250
cm9sbGVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250
cm9sbGVyUHJveHkuY3BwCmluZGV4IDlkNWMxMmVkODIxMjEyZmIwNTdlZTUyZTdkMGJiZGYyZjJh
Yjg1MWYuLjdlMDI1MzM5ZjkyMWQ0MDZmOWJkMGM1MGJlNzVlOGZmMDVmMDYzY2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94
eS5jcHAKQEAgLTY5LDcgKzY5LDYgQEAgUGx1Z2luQ29udHJvbGxlclByb3h5OjpQbHVnaW5Db250
cm9sbGVyUHJveHkoV2ViUHJvY2Vzc0Nvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIGMKICAgICAsIG1f
cGFpbnRUaW1lcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZQbHVnaW5Db250cm9sbGVyUHJveHk6
OnBhaW50KQogICAgICwgbV9wbHVnaW5EZXN0cnVjdGlvblByb3RlY3RDb3VudCgwKQogICAgICwg
bV9wbHVnaW5EZXN0cm95VGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmUGx1Z2luQ29udHJv
bGxlclByb3h5OjpkZXN0cm95KQotICAgICwgbV9wbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMoMCkK
ICAgICAsIG1fd2FpdGluZ0ZvckRpZFVwZGF0ZShmYWxzZSkKICAgICAsIG1fcGx1Z2luQ2FuY2Vs
ZWRNYW51YWxTdHJlYW1Mb2FkKGZhbHNlKQogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTEwNiw5ICsx
MDUsNyBAQCBib29sIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6aW5pdGlhbGl6ZShjb25zdCBQbHVn
aW5DcmVhdGlvblBhcmFtZXRlcnMmIGNyZWF0aW9uUAogICAgIG1fd2luZG93TlBPYmplY3QgPSBt
X2Nvbm5lY3Rpb24tPm5wUmVtb3RlT2JqZWN0TWFwKCktPmNyZWF0ZU5QT2JqZWN0UHJveHkoY3Jl
YXRpb25QYXJhbWV0ZXJzLndpbmRvd05QT2JqZWN0SUQsIG1fcGx1Z2luLmdldCgpKTsKICAgICBB
U1NFUlQobV93aW5kb3dOUE9iamVjdCk7CiAKLSAgICBtX3BsdWdpbkNyZWF0aW9uUGFyYW1ldGVy
cyA9ICZjcmVhdGlvblBhcmFtZXRlcnM7CiAgICAgYm9vbCByZXR1cm5WYWx1ZSA9IG1fcGx1Z2lu
LT5pbml0aWFsaXplKHRoaXMsIGNyZWF0aW9uUGFyYW1ldGVycy5wYXJhbWV0ZXJzKTsKLSAgICBt
X3BsdWdpbkNyZWF0aW9uUGFyYW1ldGVycyA9IDA7CiAKICAgICBpZiAoIXJldHVyblZhbHVlKSB7
CiAgICAgICAgIC8vIEdldCB0aGUgcGx1Zy1pbiBzbyB3ZSBjYW4gcGFzcyBpdCB0byByZW1vdmVQ
bHVnaW5Db250cm9sbGVyUHJveHkuIFRoZSBwb2ludGVyIGlzIG9ubHkKQEAgLTEyMiw3ICsxMTks
NyBAQCBib29sIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6aW5pdGlhbGl6ZShjb25zdCBQbHVnaW5D
cmVhdGlvblBhcmFtZXRlcnMmIGNyZWF0aW9uUAogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
fQogCi0gICAgcGxhdGZvcm1Jbml0aWFsaXplKCk7CisgICAgcGxhdGZvcm1Jbml0aWFsaXplKGNy
ZWF0aW9uUGFyYW1ldGVycyk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5oCmluZGV4IGRl
MWI2NmY0ZTNjNTY1NDUxYTJkMTIzY2NhYjU2ZTMyMDkwMmYwYWIuLjc4Nzc5ODliNTk1ZWIxNjEz
OTMzZTE4NzJlMzYxZmU3NDNjNjNiMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdp
blByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvUGx1
Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuaApAQCAtMTMzLDE0ICsxMzMsMTUgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHdpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmIHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywgY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyk7CiAgICAgdm9pZCB3aW5k
b3dWaXNpYmlsaXR5Q2hhbmdlZChib29sKTsKICAgICB2b2lkIHNlbmRDb21wbGV4VGV4dElucHV0
KGNvbnN0IFN0cmluZyYgdGV4dElucHV0KTsKKyAgICB2b2lkIHNldExheWVySG9zdGluZ01vZGUo
dWludDMyX3QpOworCisgICAgdm9pZCB1cGRhdGVMYXllckhvc3RpbmdDb250ZXh0KExheWVySG9z
dGluZ01vZGUpOwogI2VuZGlmCiAKICAgICB2b2lkIHByaXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdl
ZChib29sKTsKICAgICB2b2lkIGdldEZvcm1WYWx1ZShib29sJiByZXR1cm5WYWx1ZSwgU3RyaW5n
JiBmb3JtVmFsdWUpOwogCi0gICAgYm9vbCBpbkluaXRpYWxpemUoKSBjb25zdCB7IHJldHVybiBt
X3BsdWdpbkNyZWF0aW9uUGFyYW1ldGVyczsgfQotCi0gICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxp
emUoKTsKKyAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZShjb25zdCBQbHVnaW5DcmVhdGlvblBh
cmFtZXRlcnMmKTsKICAgICB2b2lkIHBsYXRmb3JtRGVzdHJveSgpOwogICAgIHZvaWQgcGxhdGZv
cm1HZW9tZXRyeURpZENoYW5nZSgpOwogCkBAIC0xNjgsOSArMTY5LDYgQEAgcHJpdmF0ZToKICAg
ICAvLyBjb2RlIGlzIG9uIHRoZSBzdGFjay4KICAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxQ
bHVnaW5Db250cm9sbGVyUHJveHk+IG1fcGx1Z2luRGVzdHJveVRpbWVyOwogCi0gICAgLy8gV2ls
bCBwb2ludCB0byB0aGUgcGx1Zy1pbiBjcmVhdGlvbiBwYXJhbWV0ZXJzIG9mIHRoZSBwbHVnLWlu
IHdlJ3JlIGN1cnJlbnRseSBpbml0aWFsaXppbmcgYW5kIHdpbGwgYmUgbnVsbCB3aGVuIHdlJ3Jl
IGRvbmUgaW5pdGlhbGl6aW5nLgotICAgIGNvbnN0IFBsdWdpbkNyZWF0aW9uUGFyYW1ldGVycyog
bV9wbHVnaW5DcmVhdGlvblBhcmFtZXRlcnM7Ci0KICAgICAvLyBXaGV0aGVyIHdlJ3JlIHdhaXRp
bmcgZm9yIHRoZSBwbHVnLWluIHByb3h5IGluIHRoZSB3ZWIgcHJvY2VzcyB0byBkcmF3IHRoZSBj
b250ZW50cyBvZiBpdHMKICAgICAvLyBiYWNraW5nIHN0b3JlIGludG8gdGhlIHdlYiBwcm9jZXNz
IGJhY2tpbmcgc3RvcmUuCiAgICAgYm9vbCBtX3dhaXRpbmdGb3JEaWRVcGRhdGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxl
clByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGRkOWE0ZDY3YTA5N2FhYjk1NDE2NDVhYjYwMTgyMzQy
ODNmNjVhMGYuLjM3MWJlZTIzNzc1ZGRlMGZmNzIxMDQzYjM0NTBjY2E2MDY1YzlkZWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29u
dHJvbGxlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC05OCw2ICs5OCw5IEBAIG1lc3NhZ2VzIC0+IFBs
dWdpbkNvbnRyb2xsZXJQcm94eSB7CiAKICAgICAjIFNlbnQgd2hlbiB0aGUgY29udGFpbmluZyBO
U1dpbmRvdydzIHZpc2liaWxpdHkgY2hhbmdlcwogICAgIFdpbmRvd1Zpc2liaWxpdHlDaGFuZ2Vk
KGJvb2wgaXNWaXNpYmxlKQorCisgICAgIyBTZW50IHdoZW4gdGhlIGNvbnRhaW5pbmcgd2luZG93
J3MgbGF5ZXIgaG9zdGluZyBtb2RlIGNoYW5nZXMKKyAgICBTZXRMYXllckhvc3RpbmdNb2RlKHVp
bnQzMl90IGxheWVySG9zdGluZ01vZGUpCiAjZW5kaWYKIAogICAgICMgUmV0dXJuIGEgc25hcHNo
b3Qgb2YgdGhlIHBsdWdpbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vz
cy9ndGsvUGx1Z2luQ29udHJvbGxlclByb3h5R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsdWdp
blByb2Nlc3MvZ3RrL1BsdWdpbkNvbnRyb2xsZXJQcm94eUd0ay5jcHAKaW5kZXggMjgzMDRkZjJh
Y2E4YjA2YzA4YjI5MzljOTRlMjI1Mzk3ZjYyZDg5MS4uY2JjYzFkNzMwNzVmMjNhZDA1ZjI4YmQ4
ODAwNGU2N2JmNjhhZDY1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vz
cy9ndGsvUGx1Z2luQ29udHJvbGxlclByb3h5R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9Q
bHVnaW5Qcm9jZXNzL2d0ay9QbHVnaW5Db250cm9sbGVyUHJveHlHdGsuY3BwCkBAIC0zNCw3ICsz
NCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAot
dm9pZCBQbHVnaW5Db250cm9sbGVyUHJveHk6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCit2b2lkIFBs
dWdpbkNvbnRyb2xsZXJQcm94eTo6cGxhdGZvcm1Jbml0aWFsaXplKGNvbnN0IFBsdWdpbkNyZWF0
aW9uUGFyYW1ldGVycyYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpbkNvbnRyb2xsZXJQcm94eU1h
Yy5tbSBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpbkNvbnRyb2xsZXJQ
cm94eU1hYy5tbQppbmRleCBhYTJlYTQ5NzliNjg3MWE5MGNiODY5ODZkMWIzMDk4MzRkMWYyYTU5
Li41MWZkMGQ1M2Q2YjEzNmUwOGIyMjNmNGQwOGYwZWEyZTljZTAzZDlhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Db250cm9sbGVyUHJveHlNYWMu
bW0KKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luQ29udHJvbGxl
clByb3h5TWFjLm1tCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKFBMVUdJTl9QUk9DRVNT
KQogCiAjaW1wb3J0ICJMYXllckhvc3RpbmdDb250ZXh0LmgiCisjaW1wb3J0ICJQbHVnaW5DcmVh
dGlvblBhcmFtZXRlcnMuaCIKICNpbXBvcnQgIlBsdWdpblByb2Nlc3MuaCIKICNpbXBvcnQgIlBs
dWdpblByb3h5TWVzc2FnZXMuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NDb25uZWN0aW9uLmgiCkBA
IC01MywxNSArNTQsMTAgQEAgbWFjaF9wb3J0X3QgUGx1Z2luQ29udHJvbGxlclByb3h5Ojpjb21w
b3NpdGluZ1JlbmRlclNlcnZlclBvcnQoKQogICAgIHJldHVybiBQbHVnaW5Qcm9jZXNzOjpzaGFy
ZWQoKS5jb21wb3NpdGluZ1JlbmRlclNlcnZlclBvcnQoKTsKIH0KIAotdm9pZCBQbHVnaW5Db250
cm9sbGVyUHJveHk6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCit2b2lkIFBsdWdpbkNvbnRyb2xsZXJQ
cm94eTo6cGxhdGZvcm1Jbml0aWFsaXplKGNvbnN0IFBsdWdpbkNyZWF0aW9uUGFyYW1ldGVycyYg
Y3JlYXRpb25QYXJhbWV0ZXJzKQogewotICAgIENBTGF5ZXIgKiBwbGF0Zm9ybUxheWVyID0gbV9w
bHVnaW4tPnBsdWdpbkxheWVyKCk7Ci0gICAgaWYgKCFwbGF0Zm9ybUxheWVyKQotICAgICAgICBy
ZXR1cm47Ci0KICAgICBBU1NFUlQoIW1fbGF5ZXJIb3N0aW5nQ29udGV4dCk7Ci0gICAgbV9sYXll
ckhvc3RpbmdDb250ZXh0ID0gTGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlRm9yUG9ydChQbHVn
aW5Qcm9jZXNzOjpzaGFyZWQoKS5jb21wb3NpdGluZ1JlbmRlclNlcnZlclBvcnQoKSk7Ci0gICAg
bV9sYXllckhvc3RpbmdDb250ZXh0LT5zZXRSb290TGF5ZXIocGxhdGZvcm1MYXllcik7CisgICAg
dXBkYXRlTGF5ZXJIb3N0aW5nQ29udGV4dChjcmVhdGlvblBhcmFtZXRlcnMucGFyYW1ldGVycy5s
YXllckhvc3RpbmdNb2RlKTsKIH0KIAogdm9pZCBQbHVnaW5Db250cm9sbGVyUHJveHk6OnBsYXRm
b3JtRGVzdHJveSgpCkBAIC0xMTIsNiArMTA4LDQxIEBAIHZvaWQgUGx1Z2luQ29udHJvbGxlclBy
b3h5OjpzZW5kQ29tcGxleFRleHRJbnB1dChjb25zdCBTdHJpbmcmIHRleHRJbnB1dCkKICAgICBt
X3BsdWdpbi0+c2VuZENvbXBsZXhUZXh0SW5wdXQodGV4dElucHV0KTsKIH0KIAordm9pZCBQbHVn
aW5Db250cm9sbGVyUHJveHk6OnNldExheWVySG9zdGluZ01vZGUodWludDMyX3Qgb3BhcXVlTGF5
ZXJIb3N0aW5nTW9kZSkKK3sKKyAgICBMYXllckhvc3RpbmdNb2RlIGxheWVySG9zdGluZ01vZGUg
PSBzdGF0aWNfY2FzdDxMYXllckhvc3RpbmdNb2RlPihvcGFxdWVMYXllckhvc3RpbmdNb2RlKTsK
KyAgICB1cGRhdGVMYXllckhvc3RpbmdDb250ZXh0KGxheWVySG9zdGluZ01vZGUpOworCisgICAg
bV9jb25uZWN0aW9uLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlBsdWdpblByb3h5OjpT
ZXRMYXllckhvc3RpbmdDb250ZXh0SUQobV9sYXllckhvc3RpbmdDb250ZXh0LT5jb250ZXh0SUQo
KSksIG1fcGx1Z2luSW5zdGFuY2VJRCk7Cit9CisKK3ZvaWQgUGx1Z2luQ29udHJvbGxlclByb3h5
Ojp1cGRhdGVMYXllckhvc3RpbmdDb250ZXh0KExheWVySG9zdGluZ01vZGUgbGF5ZXJIb3N0aW5n
TW9kZSkKK3sKKyAgICBDQUxheWVyICpwbGF0Zm9ybUxheWVyID0gbV9wbHVnaW4tPnBsdWdpbkxh
eWVyKCk7CisgICAgaWYgKCFwbGF0Zm9ybUxheWVyKQorICAgICAgICByZXR1cm47CisKKyAgICBp
ZiAobV9sYXllckhvc3RpbmdDb250ZXh0KSB7CisgICAgICAgIGlmIChtX2xheWVySG9zdGluZ0Nv
bnRleHQtPmxheWVySG9zdGluZ01vZGUoKSA9PSBsYXllckhvc3RpbmdNb2RlKQorICAgICAgICAg
ICAgcmV0dXJuOworCisgICAgICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+aW52YWxpZGF0ZSgp
OworICAgIH0KKworICAgIHN3aXRjaCAobGF5ZXJIb3N0aW5nTW9kZSkgeworICAgICAgICBjYXNl
IExheWVySG9zdGluZ01vZGVEZWZhdWx0OgorICAgICAgICAgICAgbV9sYXllckhvc3RpbmdDb250
ZXh0ID0gTGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlRm9yUG9ydChQbHVnaW5Qcm9jZXNzOjpz
aGFyZWQoKS5jb21wb3NpdGluZ1JlbmRlclNlcnZlclBvcnQoKSk7CisgICAgICAgICAgICBicmVh
azsKKyNpZiBIQVZFKExBWUVSX0hPU1RJTkdfSU5fV0lORE9XX1NFUlZFUikKKyAgICAgICAgY2Fz
ZSBMYXllckhvc3RpbmdNb2RlSW5XaW5kb3dTZXJ2ZXI6CisgICAgICAgICAgICBtX2xheWVySG9z
dGluZ0NvbnRleHQgPSBMYXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVGb3JXaW5kb3dTZXJ2ZXIo
KTsKKyAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCisgICAgfQorCisgICAgbV9sYXllckhvc3Rp
bmdDb250ZXh0LT5zZXRSb290TGF5ZXIocGxhdGZvcm1MYXllcik7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9xdC9QbHVnaW5Db250cm9sbGVyUHJveHlR
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL3F0L1BsdWdpbkNvbnRyb2xsZXJQ
cm94eVF0LmNwcAppbmRleCA2YzU5MjQyNWNiOTQ3ZmNjNGQxMjhkNmQ3ZDYwMTIxOTg5OGM1Yzdh
Li43NDNhZGZhYTRkMDRjOTcxN2VmNTQyNzU4MTQ0MTAyY2M4MDQwYTQ1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL3F0L1BsdWdpbkNvbnRyb2xsZXJQcm94eVF0LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL3F0L1BsdWdpbkNvbnRyb2xsZXJQ
cm94eVF0LmNwcApAQCAtMzUsNyArMzUsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKLXZvaWQgUGx1Z2luQ29udHJvbGxlclByb3h5OjpwbGF0Zm9y
bUluaXRpYWxpemUoKQordm9pZCBQbHVnaW5Db250cm9sbGVyUHJveHk6OnBsYXRmb3JtSW5pdGlh
bGl6ZShjb25zdCBQbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMmKQogewogICAgIG5vdEltcGxlbWVu
dGVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
TmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oCmluZGV4IDEyNDJkMzE5YmY2NDM0ZjYxYjRl
YWM3ODYzZmEyYTE2NTEwZWY3YzcuLjRhYjA3MmVkZjc5N2ZkOWY5OTE1YzA2OWE4MTg4N2ZhMjEz
ZTMyYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9OZXRzY2FwZVBsdWdpbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oCkBAIC0yMDUsNiArMjA1LDcgQEAgcHJpdmF0
ZToKIAogICAgIHZpcnR1YWwgdWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZp
ZXIoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgc2VuZENvbXBsZXhUZXh0SW5wdXQoY29uc3Qg
U3RyaW5nJiB0ZXh0SW5wdXQpOworICAgIHZpcnR1YWwgdm9pZCBzZXRMYXllckhvc3RpbmdNb2Rl
KExheWVySG9zdGluZ01vZGUpIE9WRVJSSURFOwogCiAgICAgdm9pZCBwbHVnaW5Gb2N1c09yV2lu
ZG93Rm9jdXNDaGFuZ2VkKCk7CiAgICAgdm9pZCBzZXRDb21wbGV4VGV4dElucHV0RW5hYmxlZChi
b29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tCmluZGV4IGM4ZDUzODE5
ZjcwYWJhZTRjYzA1ODE3MTExNTNiYWQ0NTkxZmE1ZDQuLmU4M2U2OTZmNDA3Mzc5Zjg1MjU5ZGU3
NGU5Y2I3MDg0MDAzYmY0ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW0KKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5t
bQpAQCAtMTAyMiw2ICsxMDIyLDEwIEBAIHZvaWQgTmV0c2NhcGVQbHVnaW46OnNlbmRDb21wbGV4
VGV4dElucHV0KGNvbnN0IFN0cmluZyYgdGV4dElucHV0KQogICAgIH0KIH0KIAordm9pZCBOZXRz
Y2FwZVBsdWdpbjo6c2V0TGF5ZXJIb3N0aW5nTW9kZShMYXllckhvc3RpbmdNb2RlKQoreworfQor
CiB2b2lkIE5ldHNjYXBlUGx1Z2luOjpwbHVnaW5Gb2N1c09yV2luZG93Rm9jdXNDaGFuZ2VkKCkK
IHsKICAgICBib29sIHBsdWdpbkhhc0ZvY3VzQW5kV2luZG93SGFzRm9jdXMgPSBtX3BsdWdpbkhh
c0ZvY3VzICYmIG1fd2luZG93SGFzRm9jdXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL1BsdWdpblByb3h5TWFjLm1tIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9QbHVnaW5Qcm94eU1hYy5t
bQppbmRleCA0OTM4NWQ5ZDkwNmMyY2RmNGUyY2YwNjA1OTkwNTQ1Y2ZiY2E5OGRhLi44NDQ4NjEy
OTkyOGVhYzIxZjhlN2FiN2QxYmUxODIzNTI5MTgzYzE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL1BsdWdpblByb3h5TWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvUGx1Z2lu
UHJveHlNYWMubW0KQEAgLTI5LDIyICsyOSwyOSBAQAogI2lmIEVOQUJMRShQTFVHSU5fUFJPQ0VT
UykKIAogI2ltcG9ydCAiUGx1Z2luQ29udHJvbGxlci5oIgorI2ltcG9ydCAiUGx1Z2luQ29udHJv
bGxlclByb3h5TWVzc2FnZXMuaCIKKyNpbXBvcnQgIlBsdWdpblByb2Nlc3NDb25uZWN0aW9uLmgi
CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7
CiAKK3N0YXRpYyB2b2lkIG1ha2VSZW5kZXJMYXllcihDQUxheWVyICpwbHVnaW5MYXllciwgdWlu
dDMyX3QgbGF5ZXJIb3N0aW5nQ29udGV4dElEKQoreworICAgIENBTGF5ZXIgKnJlbmRlckxheWVy
ID0gV0tNYWtlUmVuZGVyTGF5ZXIobGF5ZXJIb3N0aW5nQ29udGV4dElEKTsKKyAgICBbcmVuZGVy
TGF5ZXIgc2V0RnJhbWU6W3BsdWdpbkxheWVyIGJvdW5kc11dOworICAgIFtyZW5kZXJMYXllciBz
ZXRBdXRvcmVzaXppbmdNYXNrOmtDQUxheWVyV2lkdGhTaXphYmxlIHwga0NBTGF5ZXJIZWlnaHRT
aXphYmxlXTsKKyAgICBbcGx1Z2luTGF5ZXIgc2V0U3VibGF5ZXJzOltOU0FycmF5IGFycmF5V2l0
aE9iamVjdDpyZW5kZXJMYXllcl1dOworfQorCiBQbGF0Zm9ybUxheWVyKiBQbHVnaW5Qcm94eTo6
cGx1Z2luTGF5ZXIoKQogewogICAgIGlmICghbV9wbHVnaW5MYXllciAmJiBtX3JlbW90ZUxheWVy
Q2xpZW50SUQpIHsKLSAgICAgICAgQ0FMYXllciAqcmVuZGVyTGF5ZXIgPSBXS01ha2VSZW5kZXJM
YXllcihtX3JlbW90ZUxheWVyQ2xpZW50SUQpOwotCiAgICAgICAgIC8vIENyZWF0ZSBhIGxheWVy
IHdpdGggZmxpcHBlZCBnZW9tZXRyeSBhbmQgYWRkIHRoZSByZWFsIHBsdWctaW4gbGF5ZXIgYXMg
YSBzdWJsYXllcgogICAgICAgICAvLyBzbyB0aGUgY29vcmRpbmF0ZSBzeXN0ZW0gd2lsbCBtYXRj
aCB0aGUgZXZlbnQgY29vcmRpbmF0ZSBzeXN0ZW0uCiAgICAgICAgIG1fcGx1Z2luTGF5ZXIuYWRv
cHROUyhbW0NBTGF5ZXIgYWxsb2NdIGluaXRdKTsKICAgICAgICAgW21fcGx1Z2luTGF5ZXIuZ2V0
KCkgc2V0R2VvbWV0cnlGbGlwcGVkOllFU107Ci0gICAgICAgIAotICAgICAgICBbcmVuZGVyTGF5
ZXIgc2V0QXV0b3Jlc2l6aW5nTWFzazprQ0FMYXllcldpZHRoU2l6YWJsZSB8IGtDQUxheWVySGVp
Z2h0U2l6YWJsZV07Ci0gICAgICAgIFttX3BsdWdpbkxheWVyLmdldCgpIGFkZFN1YmxheWVyOnJl
bmRlckxheWVyXTsKKworICAgICAgICBtYWtlUmVuZGVyTGF5ZXIobV9wbHVnaW5MYXllci5nZXQo
KSwgbV9yZW1vdGVMYXllckNsaWVudElEKTsKICAgICB9CiAKICAgICByZXR1cm4gbV9wbHVnaW5M
YXllci5nZXQoKTsKQEAgLTY1LDYgKzcyLDIwIEBAIHZvaWQgUGx1Z2luUHJveHk6OnNldENvbXBs
ZXhUZXh0SW5wdXRTdGF0ZSh1aW50NjRfdCBjb21wbGV4VGV4dElucHV0U3RhdGUpCiAgICAgY29u
dHJvbGxlcigpLT5zZXRDb21wbGV4VGV4dElucHV0U3RhdGUoc3RhdGljX2Nhc3Q8UGx1Z2luQ29t
cGxleFRleHRJbnB1dFN0YXRlPihjb21wbGV4VGV4dElucHV0U3RhdGUpKTsKIH0KIAordm9pZCBQ
bHVnaW5Qcm94eTo6c2V0TGF5ZXJIb3N0aW5nTW9kZShMYXllckhvc3RpbmdNb2RlIGxheWVySG9z
dGluZ01vZGUpCit7CisgICAgbV9jb25uZWN0aW9uLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2Fn
ZXM6OlBsdWdpbkNvbnRyb2xsZXJQcm94eTo6U2V0TGF5ZXJIb3N0aW5nTW9kZShsYXllckhvc3Rp
bmdNb2RlKSwgbV9wbHVnaW5JbnN0YW5jZUlEKTsKK30KKwordm9pZCBQbHVnaW5Qcm94eTo6c2V0
TGF5ZXJIb3N0aW5nQ29udGV4dElEKHVpbnQzMl90IGxheWVySG9zdGluZ0NvbnRleHRJRCkKK3sK
KyAgICBBU1NFUlQobV9wbHVnaW5MYXllci5nZXQoKSk7CisKKyAgICBtX3JlbW90ZUxheWVyQ2xp
ZW50SUQgPSBsYXllckhvc3RpbmdDb250ZXh0SUQ7CisgICAgbWFrZVJlbmRlckxheWVyKG1fcGx1
Z2luTGF5ZXIuZ2V0KCksIG1fcmVtb3RlTGF5ZXJDbGllbnRJRCk7Cit9CisKKwogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoUExVR0lOX1BST0NFU1MpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL0J1aWx0SW5QREZWaWV3
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvQnVpbHRJblBERlZp
ZXcuY3BwCmluZGV4IGQ1YjgzNTNlZWQ4ZGFkOGU3ZGVjNzhiOTkzNTNkNzgwNjgxM2NhMDIuLjll
MjIxZWFiZmE3MTlkNjhjMTY2NzRkOWYyZjkwZWViNGRjMzcyMjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvQnVpbHRJblBERlZpZXcuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvQnVpbHRJblBERlZpZXcuY3Bw
CkBAIC02NDAsNiArNjQwLDEwIEBAIHZvaWQgQnVpbHRJblBERlZpZXc6OnNlbmRDb21wbGV4VGV4
dElucHV0KGNvbnN0IFN0cmluZyYpCiB7CiB9CiAKK3ZvaWQgQnVpbHRJblBERlZpZXc6OnNldExh
eWVySG9zdGluZ01vZGUoTGF5ZXJIb3N0aW5nTW9kZSkKK3sKK30KKwogI2VuZGlmCiAKIHZvaWQg
QnVpbHRJblBERlZpZXc6OnByaXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdlZChib29sKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9CdWlsdEluUERGVmll
dy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9CdWlsdEluUERGVmll
dy5oCmluZGV4IGU0YTYyNGE2NzNhMmU1MTM5NWNjNzA3YTEyMjNiOTIyNWM5YWZjYTEuLmE1YWUz
MGJkMmU4MWJlOTZkNWQ2MGZiN2JjNmJjOWZhZTdhOTEwMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvQnVpbHRJblBERlZpZXcuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL0J1aWx0SW5QREZWaWV3LmgKQEAgLTEw
NSw2ICsxMDUsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBjb250ZW50c1NjYWxlRmFj
dG9yQ2hhbmdlZChmbG9hdCk7CiAgICAgdmlydHVhbCB1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4
dElucHV0SWRlbnRpZmllcigpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBzZW5kQ29tcGxleFRl
eHRJbnB1dChjb25zdCBTdHJpbmcmIHRleHRJbnB1dCk7CisgICAgdmlydHVhbCB2b2lkIHNldExh
eWVySG9zdGluZ01vZGUoTGF5ZXJIb3N0aW5nTW9kZSkgT1ZFUlJJREU7CiAjZW5kaWYKIAogICAg
IHZpcnR1YWwgdm9pZCBwcml2YXRlQnJvd3NpbmdTdGF0ZUNoYW5nZWQoYm9vbCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uY3BwCmluZGV4IDRmNzliMWFhNmMz
MGExOWQzZGZjMTEyNGQyOWUzYmNjY2U3NDUzYjkuLjg4ZTgyOGQ5ODgwYjlmM2JkM2EyYTA1ZTRm
YTk4NTc1YmE5NTBiNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9QbHVnaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW4uY3BwCkBAIC0zOSw2ICszOSw5IEBAIHZvaWQgUGx1Z2luOjpQYXJhbWV0ZXJzOjplbmNv
ZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIt
PmVuY29kZSh2YWx1ZXMpOwogICAgIGVuY29kZXItPmVuY29kZShtaW1lVHlwZSk7CiAgICAgZW5j
b2Rlci0+ZW5jb2RlKGxvYWRNYW51YWxseSk7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIGVuY29k
ZXItPmVuY29kZUVudW0obGF5ZXJIb3N0aW5nTW9kZSk7CisjZW5kaWYKIH0KIAogYm9vbCBQbHVn
aW46OlBhcmFtZXRlcnM6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIs
IFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCkBAIC01Nyw3ICs2MCwxMCBAQCBib29sIFBsdWdpbjo6
UGFyYW1ldGVyczo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgUGFy
YW1ldGVycyYgcAogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLT5kZWNv
ZGUocGFyYW1ldGVycy5sb2FkTWFudWFsbHkpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0KKyNp
ZiBQTEFURk9STShNQUMpCisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVFbnVtKHBhcmFtZXRlcnMu
bGF5ZXJIb3N0aW5nTW9kZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgogICAgIGlm
IChwYXJhbWV0ZXJzLm5hbWVzLnNpemUoKSAhPSBwYXJhbWV0ZXJzLnZhbHVlcy5zaXplKCkpIHsK
ICAgICAgICAgZGVjb2Rlci0+bWFya0ludmFsaWQoKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5oIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5oCmluZGV4IGE1YWY0OGY0
ZTJlYzE1ODQ5YTliMDIyN2VmNTZlMzBjYzIzYTA4N2QuLjQwNTI1OGE2MDhiYTc5ZjM2OTUxMWRi
MzdlNjRkNzUxMzIyMmU1ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW4uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luLmgKQEAgLTMzLDYgKzMzLDEwIEBACiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgog
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAorI2lmIFBMQVRGT1JNKE1BQykKKyNpbmNsdWRlICJM
YXllckhvc3RpbmdDb250ZXh0LmgiCisjZW5kaWYKKwogc3RydWN0IE5QT2JqZWN0OwogCiBuYW1l
c3BhY2UgQ29yZUlQQyB7CkBAIC02NSw2ICs2OSw5IEBAIHB1YmxpYzoKICAgICAgICAgVmVjdG9y
PFN0cmluZz4gdmFsdWVzOwogICAgICAgICBTdHJpbmcgbWltZVR5cGU7CiAgICAgICAgIGJvb2wg
bG9hZE1hbnVhbGx5OworI2lmIFBMQVRGT1JNKE1BQykKKyAgICAgICAgTGF5ZXJIb3N0aW5nTW9k
ZSBsYXllckhvc3RpbmdNb2RlOworI2VuZGlmCiAKICAgICAgICAgdm9pZCBlbmNvZGUoQ29yZUlQ
Qzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7CiAgICAgICAgIHN0YXRpYyBib29sIGRlY29kZShD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBQYXJhbWV0ZXJzJik7CkBAIC0xOTMsNiArMjAwLDkg
QEAgcHVibGljOgogCiAgICAgLy8gU2VuZCB0aGUgY29tcGxleCB0ZXh0IGlucHV0IHRvIHRoZSBw
bHVnLWluLgogICAgIHZpcnR1YWwgdm9pZCBzZW5kQ29tcGxleFRleHRJbnB1dChjb25zdCBTdHJp
bmcmIHRleHRJbnB1dCkgPSAwOworCisgICAgLy8gVGVsbHMgdGhlIHBsdWctaW4gYWJvdXQgY2hh
bmdlcyB0byB0aGUgbGF5ZXIgaG9zdGluZyBtb2RlLgorICAgIHZpcnR1YWwgdm9pZCBzZXRMYXll
ckhvc3RpbmdNb2RlKExheWVySG9zdGluZ01vZGUpID0gMDsKICNlbmRpZgogCiAgICAgLy8gVGVs
bHMgdGhlIHBsdWctaW4gYWJvdXQgc2NhbGUgZmFjdG9yIGNoYW5nZXMuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5oCmluZGV4IGQyYTUzODc3NzBh
ZWMyOWE1Y2NiODY5OGFhNWJhYjM5ZjdjMDcwYjYuLjEwODE5ZDBhNzFlN2Q1MGRmN2JkYTM2Mjk1
MWE3MDQ3Yjc2Y2EyYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9QbHVnaW5Qcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5Qcm94eS5oCkBAIC0xMDAsNiArMTAwLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFs
IHZvaWQgd2luZG93VmlzaWJpbGl0eUNoYW5nZWQoYm9vbCk7CiAgICAgdmlydHVhbCB1aW50NjRf
dCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcigpIGNvbnN0OwogICAgIHZpcnR1YWwg
dm9pZCBzZW5kQ29tcGxleFRleHRJbnB1dChjb25zdCBTdHJpbmcmIHRleHRJbnB1dCk7CisgICAg
dmlydHVhbCB2b2lkIHNldExheWVySG9zdGluZ01vZGUoTGF5ZXJIb3N0aW5nTW9kZSkgT1ZFUlJJ
REU7CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCBjb250ZW50c1NjYWxlRmFjdG9yQ2hhbmdl
ZChmbG9hdCk7CkBAIC0xMzIsNiArMTMzLDcgQEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShNQUMp
CiAgICAgdm9pZCBwbHVnaW5Gb2N1c09yV2luZG93Rm9jdXNDaGFuZ2VkKGJvb2wpOwogICAgIHZv
aWQgc2V0Q29tcGxleFRleHRJbnB1dFN0YXRlKHVpbnQ2NF90KTsKKyAgICB2b2lkIHNldExheWVy
SG9zdGluZ0NvbnRleHRJRCh1aW50MzJfdCk7CiAjZW5kaWYKIAogICAgIFN0cmluZyBtX3BsdWdp
blBhdGg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luUHJveHkubWVzc2FnZXMuaW4KaW5kZXggY2U3NTYxNjlhNTcyOWQwOTk3MzU4NjhjOWRj
YTU4NGRmZGMyYTUyNC4uODBiM2IwNjUyYWRmM2ZlNTc5ZDRhZWU1ZjUwYzNjODYyMDljNjAyZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5Qcm94eS5tZXNzYWdlcy5pbgpAQCAtNjAsOCArNjAsMTEgQEAgbWVzc2FnZXMgLT4gUGx1Z2lu
UHJveHkgewogICAgICMgQ2FsbGVkIHdoZW4gdGhlIHBsdWctaW4ncyBmb2N1cyBvciBpdHMgY29u
dGFpbmluZyB3aW5kb3cgZm9jdXMgY2hhbmdlcy4KICAgICBQbHVnaW5Gb2N1c09yV2luZG93Rm9j
dXNDaGFuZ2VkKGJvb2wgcGx1Z2luSGFzRm9jdXNBbmRXaW5kb3dIYXNGb2N1cykKIAotICAgICMg
Q2hhbmdlIHdoZXRoZXIgY29tcGxleHQgdGV4dCBpbnB1dCBpcyBlbmFibGVkIGZvciB0aGlzIHBs
dWctaW4uCisgICAgIyBDaGFuZ2Ugd2hldGhlciBjb21wbGV4IHRleHQgaW5wdXQgaXMgZW5hYmxl
ZCBmb3IgdGhpcyBwbHVnLWluLgogICAgIFNldENvbXBsZXhUZXh0SW5wdXRTdGF0ZSh1aW50NjRf
dCBjb21wbGV4VGV4dElucHV0U3RhdGUpCisKKyAgICAjIFVwZGF0ZSB0aGUgbGF5ZXIgaG9zdGlu
ZyBjb250ZXh0IElELiBDYWxsZWQgd2hlbmV2ZXIgdGhlIGxheWVyIGhvc3Rpbmcgc3RhdGUgY2hh
bmdlcy4KKyAgICBTZXRMYXllckhvc3RpbmdDb250ZXh0SUQodWludDMyX3QgbGF5ZXJIb3N0aW5n
Q29udGV4dElEKQogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRleCAzYTI1OGYxZTBjY2UwZTM3YTY0MzFkOWJjNmY5
NTEwZGEwYWNiMzJiLi4yODM0NzVjYmNiN2ZkMWE0YjE3ZTg0MmI2NGQ0NzVhYjU3NTkyNzkxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3Bw
CkBAIC00MzQsNiArNDM0LDE0IEBAIGJvb2wgUGx1Z2luVmlldzo6c2VuZENvbXBsZXhUZXh0SW5w
dXQodWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKK3ZvaWQgUGx1Z2luVmlldzo6c2V0TGF5ZXJIb3N0aW5nTW9kZShMYXllckhv
c3RpbmdNb2RlIGxheWVySG9zdGluZ01vZGUpCit7CisgICAgaWYgKCFtX3BsdWdpbikKKyAgICAg
ICAgcmV0dXJuOworCisgICAgbV9wbHVnaW4tPnNldExheWVySG9zdGluZ01vZGUobGF5ZXJIb3N0
aW5nTW9kZSk7Cit9CisKICNlbmRpZgogCiB2b2lkIFBsdWdpblZpZXc6OmluaXRpYWxpemVQbHVn
aW4oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blZpZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmgK
aW5kZXggZDU5YTNkMzZlMWYyMjVkNGM5MjRiOTBlOGZlOGI0Yzk3OWZkZWZlZC4uNzRhYTBiMGNh
OTFjZDMzOGZhNzYwYmQ2MWY3NGEyM2JhYjIxNGQ0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCkBAIC02NSw2ICs2NSw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldERldmljZVNjYWxlRmFjdG9yKGZsb2F0KTsKICAgICB2b2lkIHdpbmRvd0Fu
ZFZpZXdGcmFtZXNDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHdpbmRvd0ZyYW1lSW5T
Y3JlZW5Db29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdmlld0ZyYW1lSW5XaW5k
b3dDb29yZGluYXRlcyk7CiAgICAgYm9vbCBzZW5kQ29tcGxleFRleHRJbnB1dCh1aW50NjRfdCBw
bHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQp
OworICAgIHZvaWQgc2V0TGF5ZXJIb3N0aW5nTW9kZShMYXllckhvc3RpbmdNb2RlKTsKICNlbmRp
ZgogCiAjaWYgVVNFKENHKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCBj
NGIxNzMwOTg3NmIxZWE2ZDQ3Nzg4NTdmMmQ2OGU3YTdhMzExZjlkLi5hMDMwNDZlODZjMmU3ZWVi
YjQ0ZmJjODhjODU4YjZiNDM5YTI0MWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcApAQCAtMTI2Nyw2ICsxMjY3LDkgQEAgUGFzc1JlZlB0cjxXaWRnZXQ+IFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpjcmVhdGVQbHVnaW4oY29uc3QgSW50U2l6ZSYsIEhUTUxQbHVnSW4KICAgICBw
YXJhbWV0ZXJzLnZhbHVlcyA9IHBhcmFtVmFsdWVzOwogICAgIHBhcmFtZXRlcnMubWltZVR5cGUg
PSBtaW1lVHlwZTsKICAgICBwYXJhbWV0ZXJzLmxvYWRNYW51YWxseSA9IGxvYWRNYW51YWxseTsK
KyNpZiBQTEFURk9STShNQUMpCisgICAgcGFyYW1ldGVycy5sYXllckhvc3RpbmdNb2RlID0gd2Vi
UGFnZS0+bGF5ZXJIb3N0aW5nTW9kZSgpOworI2VuZGlmCiAKICNpZiBQTFVHSU5fQVJDSElURUNU
VVJFKFgxMSkKICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgcmVhbGx5IGJlIFgxMS1zcGVjaWZp
YyBwbHVnLWluIHF1aXJrcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAppbmRleCA5OTkyZjViYzcxY2M1MzFlYmIwMmUxYmJkNDljMmIxZWMxZDM3MjZl
Li45ZjhmYjhlMjQ2YjExYjQyMGRlZWYwYzhkMTljZDE2ZWMwMGE5MDA5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xODgsNiArMTg4LDcg
QEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAjaWYgUExBVEZPUk0oTUFDKQogICAgICwgbV93aW5k
b3dJc1Zpc2libGUoZmFsc2UpCiAgICAgLCBtX2lzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKHBh
cmFtZXRlcnMuaXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQpCisgICAgLCBtX2xheWVySG9zdGlu
Z01vZGUoTGF5ZXJIb3N0aW5nTW9kZURlZmF1bHQpCiAgICAgLCBtX2tleWJvYXJkRXZlbnRCZWlu
Z0ludGVycHJldGVkKDApCiAjZWxpZiBQTEFURk9STShXSU4pCiAgICAgLCBtX25hdGl2ZVdpbmRv
dyhwYXJhbWV0ZXJzLm5hdGl2ZVdpbmRvdykKQEAgLTI0NTEsNyArMjQ1Miw2IEBAIHZvaWQgV2Vi
UGFnZTo6d2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYg
d2luZG93RnJhbWVJblNjCiAgICAgZm9yIChIYXNoU2V0PFBsdWdpblZpZXcqPjo6Y29uc3RfaXRl
cmF0b3IgaXQgPSBtX3BsdWdpblZpZXdzLmJlZ2luKCksIGVuZCA9IG1fcGx1Z2luVmlld3MuZW5k
KCk7IGl0ICE9IGVuZDsgKytpdCkKICAgICAgICAgKCppdCktPndpbmRvd0FuZFZpZXdGcmFtZXND
aGFuZ2VkKHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywgdmlld0ZyYW1lSW5XaW5kb3dD
b29yZGluYXRlcyk7CiB9Ci0KICNlbmRpZgogCiBib29sIFdlYlBhZ2U6OndpbmRvd0lzRm9jdXNl
ZCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApp
bmRleCA0NzRiNTY1OThkNWZiMWE3MTIyNGYwNGY3MDA1NDdmNDA3YmYyMTM5Li5hNjUyMTU4Zjk5
YmI1ODRiNGU1NWQ0NzExYjhiMTNhZTA5YjQ2N2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJJbmpl
Y3RlZEJ1bmRsZVBhZ2VQb2xpY3lDbGllbnQuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVBh
Z2VSZXNvdXJjZUxvYWRDbGllbnQuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVBhZ2VVSUNs
aWVudC5oIgorI2luY2x1ZGUgIkxheWVySG9zdGluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJNZXNz
YWdlU2VuZGVyLmgiCiAjaW5jbHVkZSAiVGFwSGlnaGxpZ2h0Q29udHJvbGxlci5oIgogI2luY2x1
ZGUgIlBsdWdpbi5oIgpAQCAtMjk5LDYgKzMwMCw5IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZFBs
dWdpblZpZXcoUGx1Z2luVmlldyopOwogICAgIHZvaWQgcmVtb3ZlUGx1Z2luVmlldyhQbHVnaW5W
aWV3Kik7CiAKKyAgICBMYXllckhvc3RpbmdNb2RlIGxheWVySG9zdGluZ01vZGUoKSBjb25zdCB7
IHJldHVybiBtX2xheWVySG9zdGluZ01vZGU7IH0KKyAgICB2b2lkIHNldExheWVySG9zdGluZ01v
ZGUoTGF5ZXJIb3N0aW5nTW9kZSk7CisKICAgICBib29sIHdpbmRvd0lzVmlzaWJsZSgpIGNvbnN0
IHsgcmV0dXJuIG1fd2luZG93SXNWaXNpYmxlOyB9CiAgICAgY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYgd2luZG93RnJhbWVJblNjcmVlbkNvb3JkaW5hdGVzKCkgY29uc3QgeyByZXR1cm4gbV93aW5k
b3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXM7IH0KICAgICBjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiB2aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKCkgY29uc3QgeyByZXR1cm4gbV92aWV3RnJh
bWVJbldpbmRvd0Nvb3JkaW5hdGVzOyB9CkBAIC03MDAsNiArNzA0LDkgQEAgcHJpdmF0ZToKICAg
ICAvLyBBbGwgcGx1Zy1pbiB2aWV3cyBvbiB0aGlzIHdlYiBwYWdlLgogICAgIEhhc2hTZXQ8UGx1
Z2luVmlldyo+IG1fcGx1Z2luVmlld3M7CiAKKyAgICAvLyBUaGUgbGF5ZXIgaG9zdGluZyBtb2Rl
LgorICAgIExheWVySG9zdGluZ01vZGUgbV9sYXllckhvc3RpbmdNb2RlOworCiAgICAgUmV0YWlu
UHRyPFdLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3Q+IG1fbW9ja0FjY2Vzc2liaWxpdHlFbGVt
ZW50OwogCiAgICAgV2ViQ29yZTo6S2V5Ym9hcmRFdmVudCogbV9rZXlib2FyZEV2ZW50QmVpbmdJ
bnRlcnByZXRlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0gYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tCmlu
ZGV4IDI4NjU4YWRjMDRhOTI4ZDFkMzM3Yjg3OGQxZWE3ZWIzZjRlNjI2YjguLjQyYTQ1YmNjNTBh
MGIxMTYyYjcxZmIxMTg4NmY5MDg3ZWQxYzgxOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0K
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYS5tbQpAQCAtMzIzLDYgKzMyMyw4IEBAIHZvaWQgVGlsZWRDb3JlQW5p
bWF0aW9uRHJhd2luZ0FyZWE6OnNldExheWVySG9zdGluZ01vZGUodWludDMyX3Qgb3BhcXVlTGF5
ZXJIb3N0CiAKICAgICAgICAgbV9sYXllckhvc3RpbmdDb250ZXh0LT5zZXRSb290TGF5ZXIobV9y
b290TGF5ZXIuZ2V0KCkpOwogCisgICAgICAgIG1fd2ViUGFnZS0+c2V0TGF5ZXJIb3N0aW5nTW9k
ZShsYXllckhvc3RpbmdNb2RlKTsKKwogICAgICAgICAvLyBGaW5hbGx5LCBpbmZvcm0gdGhlIFVJ
UHJvY2VzcyB0aGF0IHRoZSBjb250ZXh0IGhhcyBjaGFuZ2VkLgogICAgICAgICBMYXllclRyZWVD
b250ZXh0IGxheWVyVHJlZUNvbnRleHQ7CiAgICAgICAgIGxheWVyVHJlZUNvbnRleHQuY29udGV4
dElEID0gbV9sYXllckhvc3RpbmdDb250ZXh0LT5jb250ZXh0SUQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbSBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQppbmRleCBkZThh
ZjQ1OTBkN2ZiYzU4ZTFlZjg5M2YyMTAyMDY0OTA0N2NmZDMwLi5lY2E1MjNkMWZjYmVmZjk2N2Yw
YWIwZDIzNGRjNzBkYWVkMmYzODVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCkBAIC03MTEsNCArNzExLDEyIEBAIHZvaWQg
V2ViUGFnZTo6YWNjZXB0c0ZpcnN0TW91c2UoaW50IGV2ZW50TnVtYmVyLCBjb25zdCBXZWJLaXQ6
OldlYk1vdXNlRXZlbnQmIGV2CiAgICAgICAgIHJlc3VsdCA9ICEhaGl0UmVzdWx0LnNjcm9sbGJh
cigpOwogfQogCit2b2lkIFdlYlBhZ2U6OnNldExheWVySG9zdGluZ01vZGUoTGF5ZXJIb3N0aW5n
TW9kZSBsYXllckhvc3RpbmdNb2RlKQoreworICAgIG1fbGF5ZXJIb3N0aW5nTW9kZSA9IGxheWVy
SG9zdGluZ01vZGU7CisKKyAgICBmb3IgKEhhc2hTZXQ8UGx1Z2luVmlldyo+Ojpjb25zdF9pdGVy
YXRvciBpdCA9IG1fcGx1Z2luVmlld3MuYmVnaW4oKSwgZW5kID0gbV9wbHVnaW5WaWV3cy5lbmQo
KTsgaXQgIT0gZW5kOyArK2l0KQorICAgICAgICAoKml0KS0+c2V0TGF5ZXJIb3N0aW5nTW9kZShs
YXllckhvc3RpbmdNb2RlKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>134154</attachid>
            <date>2012-03-27 15:55:50 -0700</date>
            <delta_ts>2012-03-27 17:14:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82387-20120327155655.patch</filename>
            <type>text/plain</type>
            <size>27314</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyMjg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMzI4ZTU1MDcwNzM1ZjY4
ZTcyMDIzOWVmZmEyOGU5MzM1N2NmNmIwMi4uYWMwYzI5YTYwZmFkMGY1ZmYwYTg3ZDZiYTg1NjQx
NDVlNDc3MzhjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDk2IEBACiAyMDEyLTAzLTI3ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKKyAgICAgICAgUGx1Zy1pbnMgdXNp
bmcgdGhlIENvcmUgQW5pbWF0aW9uIGRyYXdpbmcgbW9kZWwgc2hvdWxkIHdvcmsgd2hlbiBob3N0
aW5nIHRoZSBsYXllciB0cmVlIGluIHRoZSB3aW5kb3cgc2VydmVyCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MjM4NworICAgICAgICA8cmRhcjovL3By
b2JsZW0vMTEwMzE5NDI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlBsdWdpbkNvbnRyb2xsZXJQcm94eTo6UGx1Z2luQ29udHJvbGxlclByb3h5
KToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luQ29udHJvbGxlclByb3h5Ojppbml0aWFsaXplKToK
KyAgICAgICAgUmVtb3ZlIG1fcGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzOyBpdCB3YXMgdXNlZCBi
eSB0aGUgb2xkIE5QUnVudGltZSBzaG9ydC1jaXJjdWl0IGNvZGUuIAorICAgICAgICBNYWtlIHBs
YXRmb3JtSW5pdGlhbGl6ZSB0YWtlIGNyZWF0aW9uIHBhcmFtZXRlcnMuCisKKyAgICAgICAgKiBQ
bHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAg
QWRkIFNldExheWVySG9zdGluZ01vZGUgbWVzc2FnZS4KKworICAgICAgICAqIFBsdWdpblByb2Nl
c3MvZ3RrL1BsdWdpbkNvbnRyb2xsZXJQcm94eUd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBs
dWdpbkNvbnRyb2xsZXJQcm94eTo6cGxhdGZvcm1Jbml0aWFsaXplKToKKyAgICAgICAgTWFrZSBw
bGF0Zm9ybUluaXRpYWxpemUgdGFrZSBjcmVhdGlvbiBwYXJhbWV0ZXJzLgorCisgICAgICAgICog
UGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luQ29udHJvbGxlclByb3h5TWFjLm1tOgorICAgICAgICAo
V2ViS2l0OjpQbHVnaW5Db250cm9sbGVyUHJveHk6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6CisgICAg
ICAgIENhbGwgdXBkYXRlTGF5ZXJIb3N0aW5nQ29udGV4dC4KKworICAgICAgICAoV2ViS2l0OjpQ
bHVnaW5Db250cm9sbGVyUHJveHk6OnNldExheWVySG9zdGluZ01vZGUpOgorICAgICAgICBDYWxs
IHVwZGF0ZUxheWVySG9zdGluZ0NvbnRleHQgYW5kIHNlbmQgYmFjayB0aGUgbmV3IGNvbnRleHQg
SUQuCisKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luQ29udHJvbGxlclByb3h5Ojp1cGRhdGVMYXll
ckhvc3RpbmdDb250ZXh0KToKKyAgICAgICAgQ3JlYXRlIGEgbmV3IExheWVySG9zdGluZ0NvbnRl
eHQgZ2l2ZW4gdGhlIGxheWVyIGhvc3RpbmcgbW9kZS4KKworICAgICAgICAqIFBsdWdpblByb2Nl
c3MvcXQvUGx1Z2luQ29udHJvbGxlclByb3h5UXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVn
aW5Db250cm9sbGVyUHJveHk6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6CisgICAgICAgIE1ha2UgcGxh
dGZvcm1Jbml0aWFsaXplIHRha2UgY3JlYXRpb24gcGFyYW1ldGVycy4KKworICAgICAgICAqIFdl
YlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW06CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luOjpzZXRMYXllckhvc3RpbmdNb2RlKToKKyAgICAg
ICAgQWRkIHN0dWIuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFj
L1BsdWdpblByb3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjptYWtlUmVuZGVyTGF5ZXIpOgor
ICAgICAgICBBZGQgaGVscGVyIGZ1bmN0aW9uIGZvciBjcmVhdGluZyBhIG5ldyByZW5kZXIgbGF5
ZXIuCisKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJveHk6OnBsdWdpbkxheWVyKToKKyAgICAg
ICAgQ2FsbCBtYWtlUmVuZGVyTGF5ZXIuCisKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJveHk6
OnNldExheWVySG9zdGluZ01vZGUpOgorICAgICAgICBTZW5kIGEgbWVzc2FnZSB0byB0aGUgcGx1
Zy1pbiBwcm9jZXNzLgorCisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb3h5OjpzZXRMYXllckhv
c3RpbmdDb250ZXh0SUQpOgorICAgICAgICBVcGRhdGUgdGhlIGNvbnRleHQgSUQgYW5kIG1ha2Ug
YSBuZXcgcmVuZGVyIGxheWVyLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9C
dWlsdEluUERGVmlldy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkJ1aWx0SW5QREZWaWV3OjpzZXRM
YXllckhvc3RpbmdNb2RlKToKKyAgICAgICAgQWRkIHN0dWIuCisgICAgICAgICogV2ViUHJvY2Vz
cy9QbHVnaW5zL1BERi9CdWlsdEluUERGVmlldy5oOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpbjo6UGFyYW1ldGVyczo6
ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luOjpQYXJhbWV0ZXJzOjpkZWNvZGUpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uaDoKKyAgICAgICAgQWRkIHRoZSBs
YXllciBob3N0aW5nIG1vZGUgYXMgYSBwYXJhbWV0ZXIuIEFkZCBhIG5ldyBzZXRMYXllckhvc3Rp
bmdNb2RlIHB1cmUgdmlydHVhbCBtZW1iZXIgZnVuY3Rpb24uCisKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgIEFkZCBhIFNldExh
eWVySG9zdGluZ0NvbnRleHRJRCBtZXNzYWdlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5WaWV3OjpzZXRMYXll
ckhvc3RpbmdNb2RlKToKKyAgICAgICAgQ2FsbCBkb3duIHRvIHRoZSBwbHVnLWluLgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVQbHVnaW4pOgor
ICAgICAgICBTZXQgdGhlIGxheWVyIGhvc3RpbmcgbW9kZSBvZiB0aGUgcGFnZS4KKworICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6V2ViUGFnZSk6CisgICAgICAgIEluaXRpYWxpemUgbV9sYXllckhvc3RpbmdNb2RlIHRv
IGZhbHNlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6bGF5ZXJIb3N0aW5nTW9kZSk6CisgICAgICAgIEFkZCBtX2xh
eWVySG9zdGluZ01vZGUgYW5kIGEgZ2V0dGVyLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbToKKyAgICAgICAgKFdlYktp
dDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnNldExheWVySG9zdGluZ01vZGUpOgor
ICAgICAgICBDYWxsIFdlYlBhZ2U6OnNldExheWVySG9zdGluZ01vZGUuCisKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OnNldExheWVySG9zdGluZ01vZGUpOgorICAgICAgICBUZWxsIGFsbCBwbHVnLWlucyB0
aGF0IHRoZSBsYXllciBob3N0aW5nIG1vZGUgY2hhbmdlZC4KKworMjAxMi0wMy0yNyAgQW5kZXJz
IENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgorCiAgICAgICAgIERvbid0IHVwZGF0ZSB0
aGUgbGF5ZXIgaG9zdGluZyBzdGF0ZSB1bmxlc3MgdGhlIFdLVmlldyBpcyBhZGRlZCB0byBhIHdp
bmRvdwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODIz
NTkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250
cm9sbGVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250
cm9sbGVyUHJveHkuY3BwCmluZGV4IDlkNWMxMmVkODIxMjEyZmIwNTdlZTUyZTdkMGJiZGYyZjJh
Yjg1MWYuLjdlMDI1MzM5ZjkyMWQ0MDZmOWJkMGM1MGJlNzVlOGZmMDVmMDYzY2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94
eS5jcHAKQEAgLTY5LDcgKzY5LDYgQEAgUGx1Z2luQ29udHJvbGxlclByb3h5OjpQbHVnaW5Db250
cm9sbGVyUHJveHkoV2ViUHJvY2Vzc0Nvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIGMKICAgICAsIG1f
cGFpbnRUaW1lcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZQbHVnaW5Db250cm9sbGVyUHJveHk6
OnBhaW50KQogICAgICwgbV9wbHVnaW5EZXN0cnVjdGlvblByb3RlY3RDb3VudCgwKQogICAgICwg
bV9wbHVnaW5EZXN0cm95VGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmUGx1Z2luQ29udHJv
bGxlclByb3h5OjpkZXN0cm95KQotICAgICwgbV9wbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMoMCkK
ICAgICAsIG1fd2FpdGluZ0ZvckRpZFVwZGF0ZShmYWxzZSkKICAgICAsIG1fcGx1Z2luQ2FuY2Vs
ZWRNYW51YWxTdHJlYW1Mb2FkKGZhbHNlKQogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTEwNiw5ICsx
MDUsNyBAQCBib29sIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6aW5pdGlhbGl6ZShjb25zdCBQbHVn
aW5DcmVhdGlvblBhcmFtZXRlcnMmIGNyZWF0aW9uUAogICAgIG1fd2luZG93TlBPYmplY3QgPSBt
X2Nvbm5lY3Rpb24tPm5wUmVtb3RlT2JqZWN0TWFwKCktPmNyZWF0ZU5QT2JqZWN0UHJveHkoY3Jl
YXRpb25QYXJhbWV0ZXJzLndpbmRvd05QT2JqZWN0SUQsIG1fcGx1Z2luLmdldCgpKTsKICAgICBB
U1NFUlQobV93aW5kb3dOUE9iamVjdCk7CiAKLSAgICBtX3BsdWdpbkNyZWF0aW9uUGFyYW1ldGVy
cyA9ICZjcmVhdGlvblBhcmFtZXRlcnM7CiAgICAgYm9vbCByZXR1cm5WYWx1ZSA9IG1fcGx1Z2lu
LT5pbml0aWFsaXplKHRoaXMsIGNyZWF0aW9uUGFyYW1ldGVycy5wYXJhbWV0ZXJzKTsKLSAgICBt
X3BsdWdpbkNyZWF0aW9uUGFyYW1ldGVycyA9IDA7CiAKICAgICBpZiAoIXJldHVyblZhbHVlKSB7
CiAgICAgICAgIC8vIEdldCB0aGUgcGx1Zy1pbiBzbyB3ZSBjYW4gcGFzcyBpdCB0byByZW1vdmVQ
bHVnaW5Db250cm9sbGVyUHJveHkuIFRoZSBwb2ludGVyIGlzIG9ubHkKQEAgLTEyMiw3ICsxMTks
NyBAQCBib29sIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6aW5pdGlhbGl6ZShjb25zdCBQbHVnaW5D
cmVhdGlvblBhcmFtZXRlcnMmIGNyZWF0aW9uUAogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
fQogCi0gICAgcGxhdGZvcm1Jbml0aWFsaXplKCk7CisgICAgcGxhdGZvcm1Jbml0aWFsaXplKGNy
ZWF0aW9uUGFyYW1ldGVycyk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5oCmluZGV4IGRl
MWI2NmY0ZTNjNTY1NDUxYTJkMTIzY2NhYjU2ZTMyMDkwMmYwYWIuLjc4Nzc5ODliNTk1ZWIxNjEz
OTMzZTE4NzJlMzYxZmU3NDNjNjNiMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdp
blByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvUGx1
Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuaApAQCAtMTMzLDE0ICsxMzMsMTUgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHdpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmIHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywgY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyk7CiAgICAgdm9pZCB3aW5k
b3dWaXNpYmlsaXR5Q2hhbmdlZChib29sKTsKICAgICB2b2lkIHNlbmRDb21wbGV4VGV4dElucHV0
KGNvbnN0IFN0cmluZyYgdGV4dElucHV0KTsKKyAgICB2b2lkIHNldExheWVySG9zdGluZ01vZGUo
dWludDMyX3QpOworCisgICAgdm9pZCB1cGRhdGVMYXllckhvc3RpbmdDb250ZXh0KExheWVySG9z
dGluZ01vZGUpOwogI2VuZGlmCiAKICAgICB2b2lkIHByaXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdl
ZChib29sKTsKICAgICB2b2lkIGdldEZvcm1WYWx1ZShib29sJiByZXR1cm5WYWx1ZSwgU3RyaW5n
JiBmb3JtVmFsdWUpOwogCi0gICAgYm9vbCBpbkluaXRpYWxpemUoKSBjb25zdCB7IHJldHVybiBt
X3BsdWdpbkNyZWF0aW9uUGFyYW1ldGVyczsgfQotCi0gICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxp
emUoKTsKKyAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZShjb25zdCBQbHVnaW5DcmVhdGlvblBh
cmFtZXRlcnMmKTsKICAgICB2b2lkIHBsYXRmb3JtRGVzdHJveSgpOwogICAgIHZvaWQgcGxhdGZv
cm1HZW9tZXRyeURpZENoYW5nZSgpOwogCkBAIC0xNjgsOSArMTY5LDYgQEAgcHJpdmF0ZToKICAg
ICAvLyBjb2RlIGlzIG9uIHRoZSBzdGFjay4KICAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxQ
bHVnaW5Db250cm9sbGVyUHJveHk+IG1fcGx1Z2luRGVzdHJveVRpbWVyOwogCi0gICAgLy8gV2ls
bCBwb2ludCB0byB0aGUgcGx1Zy1pbiBjcmVhdGlvbiBwYXJhbWV0ZXJzIG9mIHRoZSBwbHVnLWlu
IHdlJ3JlIGN1cnJlbnRseSBpbml0aWFsaXppbmcgYW5kIHdpbGwgYmUgbnVsbCB3aGVuIHdlJ3Jl
IGRvbmUgaW5pdGlhbGl6aW5nLgotICAgIGNvbnN0IFBsdWdpbkNyZWF0aW9uUGFyYW1ldGVycyog
bV9wbHVnaW5DcmVhdGlvblBhcmFtZXRlcnM7Ci0KICAgICAvLyBXaGV0aGVyIHdlJ3JlIHdhaXRp
bmcgZm9yIHRoZSBwbHVnLWluIHByb3h5IGluIHRoZSB3ZWIgcHJvY2VzcyB0byBkcmF3IHRoZSBj
b250ZW50cyBvZiBpdHMKICAgICAvLyBiYWNraW5nIHN0b3JlIGludG8gdGhlIHdlYiBwcm9jZXNz
IGJhY2tpbmcgc3RvcmUuCiAgICAgYm9vbCBtX3dhaXRpbmdGb3JEaWRVcGRhdGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxl
clByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGRkOWE0ZDY3YTA5N2FhYjk1NDE2NDVhYjYwMTgyMzQy
ODNmNjVhMGYuLjM3MWJlZTIzNzc1ZGRlMGZmNzIxMDQzYjM0NTBjY2E2MDY1YzlkZWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29u
dHJvbGxlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC05OCw2ICs5OCw5IEBAIG1lc3NhZ2VzIC0+IFBs
dWdpbkNvbnRyb2xsZXJQcm94eSB7CiAKICAgICAjIFNlbnQgd2hlbiB0aGUgY29udGFpbmluZyBO
U1dpbmRvdydzIHZpc2liaWxpdHkgY2hhbmdlcwogICAgIFdpbmRvd1Zpc2liaWxpdHlDaGFuZ2Vk
KGJvb2wgaXNWaXNpYmxlKQorCisgICAgIyBTZW50IHdoZW4gdGhlIGNvbnRhaW5pbmcgd2luZG93
J3MgbGF5ZXIgaG9zdGluZyBtb2RlIGNoYW5nZXMKKyAgICBTZXRMYXllckhvc3RpbmdNb2RlKHVp
bnQzMl90IGxheWVySG9zdGluZ01vZGUpCiAjZW5kaWYKIAogICAgICMgUmV0dXJuIGEgc25hcHNo
b3Qgb2YgdGhlIHBsdWdpbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vz
cy9ndGsvUGx1Z2luQ29udHJvbGxlclByb3h5R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsdWdp
blByb2Nlc3MvZ3RrL1BsdWdpbkNvbnRyb2xsZXJQcm94eUd0ay5jcHAKaW5kZXggMjgzMDRkZjJh
Y2E4YjA2YzA4YjI5MzljOTRlMjI1Mzk3ZjYyZDg5MS4uY2JjYzFkNzMwNzVmMjNhZDA1ZjI4YmQ4
ODAwNGU2N2JmNjhhZDY1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vz
cy9ndGsvUGx1Z2luQ29udHJvbGxlclByb3h5R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9Q
bHVnaW5Qcm9jZXNzL2d0ay9QbHVnaW5Db250cm9sbGVyUHJveHlHdGsuY3BwCkBAIC0zNCw3ICsz
NCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAot
dm9pZCBQbHVnaW5Db250cm9sbGVyUHJveHk6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCit2b2lkIFBs
dWdpbkNvbnRyb2xsZXJQcm94eTo6cGxhdGZvcm1Jbml0aWFsaXplKGNvbnN0IFBsdWdpbkNyZWF0
aW9uUGFyYW1ldGVycyYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpbkNvbnRyb2xsZXJQcm94eU1h
Yy5tbSBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpbkNvbnRyb2xsZXJQ
cm94eU1hYy5tbQppbmRleCBhYTJlYTQ5NzliNjg3MWE5MGNiODY5ODZkMWIzMDk4MzRkMWYyYTU5
Li41MWZkMGQ1M2Q2YjEzNmUwOGIyMjNmNGQwOGYwZWEyZTljZTAzZDlhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Db250cm9sbGVyUHJveHlNYWMu
bW0KKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luQ29udHJvbGxl
clByb3h5TWFjLm1tCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKFBMVUdJTl9QUk9DRVNT
KQogCiAjaW1wb3J0ICJMYXllckhvc3RpbmdDb250ZXh0LmgiCisjaW1wb3J0ICJQbHVnaW5DcmVh
dGlvblBhcmFtZXRlcnMuaCIKICNpbXBvcnQgIlBsdWdpblByb2Nlc3MuaCIKICNpbXBvcnQgIlBs
dWdpblByb3h5TWVzc2FnZXMuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NDb25uZWN0aW9uLmgiCkBA
IC01MywxNSArNTQsMTAgQEAgbWFjaF9wb3J0X3QgUGx1Z2luQ29udHJvbGxlclByb3h5Ojpjb21w
b3NpdGluZ1JlbmRlclNlcnZlclBvcnQoKQogICAgIHJldHVybiBQbHVnaW5Qcm9jZXNzOjpzaGFy
ZWQoKS5jb21wb3NpdGluZ1JlbmRlclNlcnZlclBvcnQoKTsKIH0KIAotdm9pZCBQbHVnaW5Db250
cm9sbGVyUHJveHk6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCit2b2lkIFBsdWdpbkNvbnRyb2xsZXJQ
cm94eTo6cGxhdGZvcm1Jbml0aWFsaXplKGNvbnN0IFBsdWdpbkNyZWF0aW9uUGFyYW1ldGVycyYg
Y3JlYXRpb25QYXJhbWV0ZXJzKQogewotICAgIENBTGF5ZXIgKiBwbGF0Zm9ybUxheWVyID0gbV9w
bHVnaW4tPnBsdWdpbkxheWVyKCk7Ci0gICAgaWYgKCFwbGF0Zm9ybUxheWVyKQotICAgICAgICBy
ZXR1cm47Ci0KICAgICBBU1NFUlQoIW1fbGF5ZXJIb3N0aW5nQ29udGV4dCk7Ci0gICAgbV9sYXll
ckhvc3RpbmdDb250ZXh0ID0gTGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlRm9yUG9ydChQbHVn
aW5Qcm9jZXNzOjpzaGFyZWQoKS5jb21wb3NpdGluZ1JlbmRlclNlcnZlclBvcnQoKSk7Ci0gICAg
bV9sYXllckhvc3RpbmdDb250ZXh0LT5zZXRSb290TGF5ZXIocGxhdGZvcm1MYXllcik7CisgICAg
dXBkYXRlTGF5ZXJIb3N0aW5nQ29udGV4dChjcmVhdGlvblBhcmFtZXRlcnMucGFyYW1ldGVycy5s
YXllckhvc3RpbmdNb2RlKTsKIH0KIAogdm9pZCBQbHVnaW5Db250cm9sbGVyUHJveHk6OnBsYXRm
b3JtRGVzdHJveSgpCkBAIC0xMTIsNiArMTA4LDQxIEBAIHZvaWQgUGx1Z2luQ29udHJvbGxlclBy
b3h5OjpzZW5kQ29tcGxleFRleHRJbnB1dChjb25zdCBTdHJpbmcmIHRleHRJbnB1dCkKICAgICBt
X3BsdWdpbi0+c2VuZENvbXBsZXhUZXh0SW5wdXQodGV4dElucHV0KTsKIH0KIAordm9pZCBQbHVn
aW5Db250cm9sbGVyUHJveHk6OnNldExheWVySG9zdGluZ01vZGUodWludDMyX3Qgb3BhcXVlTGF5
ZXJIb3N0aW5nTW9kZSkKK3sKKyAgICBMYXllckhvc3RpbmdNb2RlIGxheWVySG9zdGluZ01vZGUg
PSBzdGF0aWNfY2FzdDxMYXllckhvc3RpbmdNb2RlPihvcGFxdWVMYXllckhvc3RpbmdNb2RlKTsK
KyAgICB1cGRhdGVMYXllckhvc3RpbmdDb250ZXh0KGxheWVySG9zdGluZ01vZGUpOworCisgICAg
bV9jb25uZWN0aW9uLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlBsdWdpblByb3h5OjpT
ZXRMYXllckhvc3RpbmdDb250ZXh0SUQobV9sYXllckhvc3RpbmdDb250ZXh0LT5jb250ZXh0SUQo
KSksIG1fcGx1Z2luSW5zdGFuY2VJRCk7Cit9CisKK3ZvaWQgUGx1Z2luQ29udHJvbGxlclByb3h5
Ojp1cGRhdGVMYXllckhvc3RpbmdDb250ZXh0KExheWVySG9zdGluZ01vZGUgbGF5ZXJIb3N0aW5n
TW9kZSkKK3sKKyAgICBDQUxheWVyICpwbGF0Zm9ybUxheWVyID0gbV9wbHVnaW4tPnBsdWdpbkxh
eWVyKCk7CisgICAgaWYgKCFwbGF0Zm9ybUxheWVyKQorICAgICAgICByZXR1cm47CisKKyAgICBp
ZiAobV9sYXllckhvc3RpbmdDb250ZXh0KSB7CisgICAgICAgIGlmIChtX2xheWVySG9zdGluZ0Nv
bnRleHQtPmxheWVySG9zdGluZ01vZGUoKSA9PSBsYXllckhvc3RpbmdNb2RlKQorICAgICAgICAg
ICAgcmV0dXJuOworCisgICAgICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+aW52YWxpZGF0ZSgp
OworICAgIH0KKworICAgIHN3aXRjaCAobGF5ZXJIb3N0aW5nTW9kZSkgeworICAgICAgICBjYXNl
IExheWVySG9zdGluZ01vZGVEZWZhdWx0OgorICAgICAgICAgICAgbV9sYXllckhvc3RpbmdDb250
ZXh0ID0gTGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlRm9yUG9ydChQbHVnaW5Qcm9jZXNzOjpz
aGFyZWQoKS5jb21wb3NpdGluZ1JlbmRlclNlcnZlclBvcnQoKSk7CisgICAgICAgICAgICBicmVh
azsKKyNpZiBIQVZFKExBWUVSX0hPU1RJTkdfSU5fV0lORE9XX1NFUlZFUikKKyAgICAgICAgY2Fz
ZSBMYXllckhvc3RpbmdNb2RlSW5XaW5kb3dTZXJ2ZXI6CisgICAgICAgICAgICBtX2xheWVySG9z
dGluZ0NvbnRleHQgPSBMYXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVGb3JXaW5kb3dTZXJ2ZXIo
KTsKKyAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCisgICAgfQorCisgICAgbV9sYXllckhvc3Rp
bmdDb250ZXh0LT5zZXRSb290TGF5ZXIocGxhdGZvcm1MYXllcik7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9xdC9QbHVnaW5Db250cm9sbGVyUHJveHlR
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL3F0L1BsdWdpbkNvbnRyb2xsZXJQ
cm94eVF0LmNwcAppbmRleCA2YzU5MjQyNWNiOTQ3ZmNjNGQxMjhkNmQ3ZDYwMTIxOTg5OGM1Yzdh
Li43NDNhZGZhYTRkMDRjOTcxN2VmNTQyNzU4MTQ0MTAyY2M4MDQwYTQ1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL3F0L1BsdWdpbkNvbnRyb2xsZXJQcm94eVF0LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL3F0L1BsdWdpbkNvbnRyb2xsZXJQ
cm94eVF0LmNwcApAQCAtMzUsNyArMzUsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKLXZvaWQgUGx1Z2luQ29udHJvbGxlclByb3h5OjpwbGF0Zm9y
bUluaXRpYWxpemUoKQordm9pZCBQbHVnaW5Db250cm9sbGVyUHJveHk6OnBsYXRmb3JtSW5pdGlh
bGl6ZShjb25zdCBQbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMmKQogewogICAgIG5vdEltcGxlbWVu
dGVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
TmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oCmluZGV4IDEyNDJkMzE5YmY2NDM0ZjYxYjRl
YWM3ODYzZmEyYTE2NTEwZWY3YzcuLjRhYjA3MmVkZjc5N2ZkOWY5OTE1YzA2OWE4MTg4N2ZhMjEz
ZTMyYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9OZXRzY2FwZVBsdWdpbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oCkBAIC0yMDUsNiArMjA1LDcgQEAgcHJpdmF0
ZToKIAogICAgIHZpcnR1YWwgdWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZp
ZXIoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgc2VuZENvbXBsZXhUZXh0SW5wdXQoY29uc3Qg
U3RyaW5nJiB0ZXh0SW5wdXQpOworICAgIHZpcnR1YWwgdm9pZCBzZXRMYXllckhvc3RpbmdNb2Rl
KExheWVySG9zdGluZ01vZGUpIE9WRVJSSURFOwogCiAgICAgdm9pZCBwbHVnaW5Gb2N1c09yV2lu
ZG93Rm9jdXNDaGFuZ2VkKCk7CiAgICAgdm9pZCBzZXRDb21wbGV4VGV4dElucHV0RW5hYmxlZChi
b29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tCmluZGV4IGM4ZDUzODE5
ZjcwYWJhZTRjYzA1ODE3MTExNTNiYWQ0NTkxZmE1ZDQuLmU4M2U2OTZmNDA3Mzc5Zjg1MjU5ZGU3
NGU5Y2I3MDg0MDAzYmY0ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW0KKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5t
bQpAQCAtMTAyMiw2ICsxMDIyLDEwIEBAIHZvaWQgTmV0c2NhcGVQbHVnaW46OnNlbmRDb21wbGV4
VGV4dElucHV0KGNvbnN0IFN0cmluZyYgdGV4dElucHV0KQogICAgIH0KIH0KIAordm9pZCBOZXRz
Y2FwZVBsdWdpbjo6c2V0TGF5ZXJIb3N0aW5nTW9kZShMYXllckhvc3RpbmdNb2RlKQoreworfQor
CiB2b2lkIE5ldHNjYXBlUGx1Z2luOjpwbHVnaW5Gb2N1c09yV2luZG93Rm9jdXNDaGFuZ2VkKCkK
IHsKICAgICBib29sIHBsdWdpbkhhc0ZvY3VzQW5kV2luZG93SGFzRm9jdXMgPSBtX3BsdWdpbkhh
c0ZvY3VzICYmIG1fd2luZG93SGFzRm9jdXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL1BsdWdpblByb3h5TWFjLm1tIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9QbHVnaW5Qcm94eU1hYy5t
bQppbmRleCA0OTM4NWQ5ZDkwNmMyY2RmNGUyY2YwNjA1OTkwNTQ1Y2ZiY2E5OGRhLi44NDQ4NjEy
OTkyOGVhYzIxZjhlN2FiN2QxYmUxODIzNTI5MTgzYzE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL1BsdWdpblByb3h5TWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvUGx1Z2lu
UHJveHlNYWMubW0KQEAgLTI5LDIyICsyOSwyOSBAQAogI2lmIEVOQUJMRShQTFVHSU5fUFJPQ0VT
UykKIAogI2ltcG9ydCAiUGx1Z2luQ29udHJvbGxlci5oIgorI2ltcG9ydCAiUGx1Z2luQ29udHJv
bGxlclByb3h5TWVzc2FnZXMuaCIKKyNpbXBvcnQgIlBsdWdpblByb2Nlc3NDb25uZWN0aW9uLmgi
CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7
CiAKK3N0YXRpYyB2b2lkIG1ha2VSZW5kZXJMYXllcihDQUxheWVyICpwbHVnaW5MYXllciwgdWlu
dDMyX3QgbGF5ZXJIb3N0aW5nQ29udGV4dElEKQoreworICAgIENBTGF5ZXIgKnJlbmRlckxheWVy
ID0gV0tNYWtlUmVuZGVyTGF5ZXIobGF5ZXJIb3N0aW5nQ29udGV4dElEKTsKKyAgICBbcmVuZGVy
TGF5ZXIgc2V0RnJhbWU6W3BsdWdpbkxheWVyIGJvdW5kc11dOworICAgIFtyZW5kZXJMYXllciBz
ZXRBdXRvcmVzaXppbmdNYXNrOmtDQUxheWVyV2lkdGhTaXphYmxlIHwga0NBTGF5ZXJIZWlnaHRT
aXphYmxlXTsKKyAgICBbcGx1Z2luTGF5ZXIgc2V0U3VibGF5ZXJzOltOU0FycmF5IGFycmF5V2l0
aE9iamVjdDpyZW5kZXJMYXllcl1dOworfQorCiBQbGF0Zm9ybUxheWVyKiBQbHVnaW5Qcm94eTo6
cGx1Z2luTGF5ZXIoKQogewogICAgIGlmICghbV9wbHVnaW5MYXllciAmJiBtX3JlbW90ZUxheWVy
Q2xpZW50SUQpIHsKLSAgICAgICAgQ0FMYXllciAqcmVuZGVyTGF5ZXIgPSBXS01ha2VSZW5kZXJM
YXllcihtX3JlbW90ZUxheWVyQ2xpZW50SUQpOwotCiAgICAgICAgIC8vIENyZWF0ZSBhIGxheWVy
IHdpdGggZmxpcHBlZCBnZW9tZXRyeSBhbmQgYWRkIHRoZSByZWFsIHBsdWctaW4gbGF5ZXIgYXMg
YSBzdWJsYXllcgogICAgICAgICAvLyBzbyB0aGUgY29vcmRpbmF0ZSBzeXN0ZW0gd2lsbCBtYXRj
aCB0aGUgZXZlbnQgY29vcmRpbmF0ZSBzeXN0ZW0uCiAgICAgICAgIG1fcGx1Z2luTGF5ZXIuYWRv
cHROUyhbW0NBTGF5ZXIgYWxsb2NdIGluaXRdKTsKICAgICAgICAgW21fcGx1Z2luTGF5ZXIuZ2V0
KCkgc2V0R2VvbWV0cnlGbGlwcGVkOllFU107Ci0gICAgICAgIAotICAgICAgICBbcmVuZGVyTGF5
ZXIgc2V0QXV0b3Jlc2l6aW5nTWFzazprQ0FMYXllcldpZHRoU2l6YWJsZSB8IGtDQUxheWVySGVp
Z2h0U2l6YWJsZV07Ci0gICAgICAgIFttX3BsdWdpbkxheWVyLmdldCgpIGFkZFN1YmxheWVyOnJl
bmRlckxheWVyXTsKKworICAgICAgICBtYWtlUmVuZGVyTGF5ZXIobV9wbHVnaW5MYXllci5nZXQo
KSwgbV9yZW1vdGVMYXllckNsaWVudElEKTsKICAgICB9CiAKICAgICByZXR1cm4gbV9wbHVnaW5M
YXllci5nZXQoKTsKQEAgLTY1LDYgKzcyLDIwIEBAIHZvaWQgUGx1Z2luUHJveHk6OnNldENvbXBs
ZXhUZXh0SW5wdXRTdGF0ZSh1aW50NjRfdCBjb21wbGV4VGV4dElucHV0U3RhdGUpCiAgICAgY29u
dHJvbGxlcigpLT5zZXRDb21wbGV4VGV4dElucHV0U3RhdGUoc3RhdGljX2Nhc3Q8UGx1Z2luQ29t
cGxleFRleHRJbnB1dFN0YXRlPihjb21wbGV4VGV4dElucHV0U3RhdGUpKTsKIH0KIAordm9pZCBQ
bHVnaW5Qcm94eTo6c2V0TGF5ZXJIb3N0aW5nTW9kZShMYXllckhvc3RpbmdNb2RlIGxheWVySG9z
dGluZ01vZGUpCit7CisgICAgbV9jb25uZWN0aW9uLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2Fn
ZXM6OlBsdWdpbkNvbnRyb2xsZXJQcm94eTo6U2V0TGF5ZXJIb3N0aW5nTW9kZShsYXllckhvc3Rp
bmdNb2RlKSwgbV9wbHVnaW5JbnN0YW5jZUlEKTsKK30KKwordm9pZCBQbHVnaW5Qcm94eTo6c2V0
TGF5ZXJIb3N0aW5nQ29udGV4dElEKHVpbnQzMl90IGxheWVySG9zdGluZ0NvbnRleHRJRCkKK3sK
KyAgICBBU1NFUlQobV9wbHVnaW5MYXllci5nZXQoKSk7CisKKyAgICBtX3JlbW90ZUxheWVyQ2xp
ZW50SUQgPSBsYXllckhvc3RpbmdDb250ZXh0SUQ7CisgICAgbWFrZVJlbmRlckxheWVyKG1fcGx1
Z2luTGF5ZXIuZ2V0KCksIG1fcmVtb3RlTGF5ZXJDbGllbnRJRCk7Cit9CisKKwogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoUExVR0lOX1BST0NFU1MpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL0J1aWx0SW5QREZWaWV3
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvQnVpbHRJblBERlZp
ZXcuY3BwCmluZGV4IGQ1YjgzNTNlZWQ4ZGFkOGU3ZGVjNzhiOTkzNTNkNzgwNjgxM2NhMDIuLjll
MjIxZWFiZmE3MTlkNjhjMTY2NzRkOWYyZjkwZWViNGRjMzcyMjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvQnVpbHRJblBERlZpZXcuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvQnVpbHRJblBERlZpZXcuY3Bw
CkBAIC02NDAsNiArNjQwLDEwIEBAIHZvaWQgQnVpbHRJblBERlZpZXc6OnNlbmRDb21wbGV4VGV4
dElucHV0KGNvbnN0IFN0cmluZyYpCiB7CiB9CiAKK3ZvaWQgQnVpbHRJblBERlZpZXc6OnNldExh
eWVySG9zdGluZ01vZGUoTGF5ZXJIb3N0aW5nTW9kZSkKK3sKK30KKwogI2VuZGlmCiAKIHZvaWQg
QnVpbHRJblBERlZpZXc6OnByaXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdlZChib29sKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9CdWlsdEluUERGVmll
dy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9CdWlsdEluUERGVmll
dy5oCmluZGV4IGU0YTYyNGE2NzNhMmU1MTM5NWNjNzA3YTEyMjNiOTIyNWM5YWZjYTEuLmE1YWUz
MGJkMmU4MWJlOTZkNWQ2MGZiN2JjNmJjOWZhZTdhOTEwMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvQnVpbHRJblBERlZpZXcuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL0J1aWx0SW5QREZWaWV3LmgKQEAgLTEw
NSw2ICsxMDUsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBjb250ZW50c1NjYWxlRmFj
dG9yQ2hhbmdlZChmbG9hdCk7CiAgICAgdmlydHVhbCB1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4
dElucHV0SWRlbnRpZmllcigpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBzZW5kQ29tcGxleFRl
eHRJbnB1dChjb25zdCBTdHJpbmcmIHRleHRJbnB1dCk7CisgICAgdmlydHVhbCB2b2lkIHNldExh
eWVySG9zdGluZ01vZGUoTGF5ZXJIb3N0aW5nTW9kZSkgT1ZFUlJJREU7CiAjZW5kaWYKIAogICAg
IHZpcnR1YWwgdm9pZCBwcml2YXRlQnJvd3NpbmdTdGF0ZUNoYW5nZWQoYm9vbCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uY3BwCmluZGV4IDRmNzliMWFhNmMz
MGExOWQzZGZjMTEyNGQyOWUzYmNjY2U3NDUzYjkuLjg4ZTgyOGQ5ODgwYjlmM2JkM2EyYTA1ZTRm
YTk4NTc1YmE5NTBiNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9QbHVnaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW4uY3BwCkBAIC0zOSw2ICszOSw5IEBAIHZvaWQgUGx1Z2luOjpQYXJhbWV0ZXJzOjplbmNv
ZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIt
PmVuY29kZSh2YWx1ZXMpOwogICAgIGVuY29kZXItPmVuY29kZShtaW1lVHlwZSk7CiAgICAgZW5j
b2Rlci0+ZW5jb2RlKGxvYWRNYW51YWxseSk7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIGVuY29k
ZXItPmVuY29kZUVudW0obGF5ZXJIb3N0aW5nTW9kZSk7CisjZW5kaWYKIH0KIAogYm9vbCBQbHVn
aW46OlBhcmFtZXRlcnM6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIs
IFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCkBAIC01Nyw3ICs2MCwxMCBAQCBib29sIFBsdWdpbjo6
UGFyYW1ldGVyczo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgUGFy
YW1ldGVycyYgcAogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLT5kZWNv
ZGUocGFyYW1ldGVycy5sb2FkTWFudWFsbHkpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0KKyNp
ZiBQTEFURk9STShNQUMpCisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVFbnVtKHBhcmFtZXRlcnMu
bGF5ZXJIb3N0aW5nTW9kZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgogICAgIGlm
IChwYXJhbWV0ZXJzLm5hbWVzLnNpemUoKSAhPSBwYXJhbWV0ZXJzLnZhbHVlcy5zaXplKCkpIHsK
ICAgICAgICAgZGVjb2Rlci0+bWFya0ludmFsaWQoKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5oIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5oCmluZGV4IGE1YWY0OGY0
ZTJlYzE1ODQ5YTliMDIyN2VmNTZlMzBjYzIzYTA4N2QuLjQwNTI1OGE2MDhiYTc5ZjM2OTUxMWRi
MzdlNjRkNzUxMzIyMmU1ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW4uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luLmgKQEAgLTMzLDYgKzMzLDEwIEBACiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgog
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAorI2lmIFBMQVRGT1JNKE1BQykKKyNpbmNsdWRlICJM
YXllckhvc3RpbmdDb250ZXh0LmgiCisjZW5kaWYKKwogc3RydWN0IE5QT2JqZWN0OwogCiBuYW1l
c3BhY2UgQ29yZUlQQyB7CkBAIC02NSw2ICs2OSw5IEBAIHB1YmxpYzoKICAgICAgICAgVmVjdG9y
PFN0cmluZz4gdmFsdWVzOwogICAgICAgICBTdHJpbmcgbWltZVR5cGU7CiAgICAgICAgIGJvb2wg
bG9hZE1hbnVhbGx5OworI2lmIFBMQVRGT1JNKE1BQykKKyAgICAgICAgTGF5ZXJIb3N0aW5nTW9k
ZSBsYXllckhvc3RpbmdNb2RlOworI2VuZGlmCiAKICAgICAgICAgdm9pZCBlbmNvZGUoQ29yZUlQ
Qzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7CiAgICAgICAgIHN0YXRpYyBib29sIGRlY29kZShD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBQYXJhbWV0ZXJzJik7CkBAIC0xOTMsNiArMjAwLDkg
QEAgcHVibGljOgogCiAgICAgLy8gU2VuZCB0aGUgY29tcGxleCB0ZXh0IGlucHV0IHRvIHRoZSBw
bHVnLWluLgogICAgIHZpcnR1YWwgdm9pZCBzZW5kQ29tcGxleFRleHRJbnB1dChjb25zdCBTdHJp
bmcmIHRleHRJbnB1dCkgPSAwOworCisgICAgLy8gVGVsbHMgdGhlIHBsdWctaW4gYWJvdXQgY2hh
bmdlcyB0byB0aGUgbGF5ZXIgaG9zdGluZyBtb2RlLgorICAgIHZpcnR1YWwgdm9pZCBzZXRMYXll
ckhvc3RpbmdNb2RlKExheWVySG9zdGluZ01vZGUpID0gMDsKICNlbmRpZgogCiAgICAgLy8gVGVs
bHMgdGhlIHBsdWctaW4gYWJvdXQgc2NhbGUgZmFjdG9yIGNoYW5nZXMuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5oCmluZGV4IGQyYTUzODc3NzBh
ZWMyOWE1Y2NiODY5OGFhNWJhYjM5ZjdjMDcwYjYuLjEwODE5ZDBhNzFlN2Q1MGRmN2JkYTM2Mjk1
MWE3MDQ3Yjc2Y2EyYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9QbHVnaW5Qcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5Qcm94eS5oCkBAIC0xMDAsNiArMTAwLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFs
IHZvaWQgd2luZG93VmlzaWJpbGl0eUNoYW5nZWQoYm9vbCk7CiAgICAgdmlydHVhbCB1aW50NjRf
dCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcigpIGNvbnN0OwogICAgIHZpcnR1YWwg
dm9pZCBzZW5kQ29tcGxleFRleHRJbnB1dChjb25zdCBTdHJpbmcmIHRleHRJbnB1dCk7CisgICAg
dmlydHVhbCB2b2lkIHNldExheWVySG9zdGluZ01vZGUoTGF5ZXJIb3N0aW5nTW9kZSkgT1ZFUlJJ
REU7CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCBjb250ZW50c1NjYWxlRmFjdG9yQ2hhbmdl
ZChmbG9hdCk7CkBAIC0xMzIsNiArMTMzLDcgQEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShNQUMp
CiAgICAgdm9pZCBwbHVnaW5Gb2N1c09yV2luZG93Rm9jdXNDaGFuZ2VkKGJvb2wpOwogICAgIHZv
aWQgc2V0Q29tcGxleFRleHRJbnB1dFN0YXRlKHVpbnQ2NF90KTsKKyAgICB2b2lkIHNldExheWVy
SG9zdGluZ0NvbnRleHRJRCh1aW50MzJfdCk7CiAjZW5kaWYKIAogICAgIFN0cmluZyBtX3BsdWdp
blBhdGg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luUHJveHkubWVzc2FnZXMuaW4KaW5kZXggY2U3NTYxNjlhNTcyOWQwOTk3MzU4NjhjOWRj
YTU4NGRmZGMyYTUyNC4uODBiM2IwNjUyYWRmM2ZlNTc5ZDRhZWU1ZjUwYzNjODYyMDljNjAyZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5Qcm94eS5tZXNzYWdlcy5pbgpAQCAtNjAsOCArNjAsMTEgQEAgbWVzc2FnZXMgLT4gUGx1Z2lu
UHJveHkgewogICAgICMgQ2FsbGVkIHdoZW4gdGhlIHBsdWctaW4ncyBmb2N1cyBvciBpdHMgY29u
dGFpbmluZyB3aW5kb3cgZm9jdXMgY2hhbmdlcy4KICAgICBQbHVnaW5Gb2N1c09yV2luZG93Rm9j
dXNDaGFuZ2VkKGJvb2wgcGx1Z2luSGFzRm9jdXNBbmRXaW5kb3dIYXNGb2N1cykKIAotICAgICMg
Q2hhbmdlIHdoZXRoZXIgY29tcGxleHQgdGV4dCBpbnB1dCBpcyBlbmFibGVkIGZvciB0aGlzIHBs
dWctaW4uCisgICAgIyBDaGFuZ2Ugd2hldGhlciBjb21wbGV4IHRleHQgaW5wdXQgaXMgZW5hYmxl
ZCBmb3IgdGhpcyBwbHVnLWluLgogICAgIFNldENvbXBsZXhUZXh0SW5wdXRTdGF0ZSh1aW50NjRf
dCBjb21wbGV4VGV4dElucHV0U3RhdGUpCisKKyAgICAjIFVwZGF0ZSB0aGUgbGF5ZXIgaG9zdGlu
ZyBjb250ZXh0IElELiBDYWxsZWQgd2hlbmV2ZXIgdGhlIGxheWVyIGhvc3Rpbmcgc3RhdGUgY2hh
bmdlcy4KKyAgICBTZXRMYXllckhvc3RpbmdDb250ZXh0SUQodWludDMyX3QgbGF5ZXJIb3N0aW5n
Q29udGV4dElEKQogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRleCAzYTI1OGYxZTBjY2UwZTM3YTY0MzFkOWJjNmY5
NTEwZGEwYWNiMzJiLi4yODM0NzVjYmNiN2ZkMWE0YjE3ZTg0MmI2NGQ0NzVhYjU3NTkyNzkxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3Bw
CkBAIC00MzQsNiArNDM0LDE0IEBAIGJvb2wgUGx1Z2luVmlldzo6c2VuZENvbXBsZXhUZXh0SW5w
dXQodWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKK3ZvaWQgUGx1Z2luVmlldzo6c2V0TGF5ZXJIb3N0aW5nTW9kZShMYXllckhv
c3RpbmdNb2RlIGxheWVySG9zdGluZ01vZGUpCit7CisgICAgaWYgKCFtX3BsdWdpbikKKyAgICAg
ICAgcmV0dXJuOworCisgICAgbV9wbHVnaW4tPnNldExheWVySG9zdGluZ01vZGUobGF5ZXJIb3N0
aW5nTW9kZSk7Cit9CisKICNlbmRpZgogCiB2b2lkIFBsdWdpblZpZXc6OmluaXRpYWxpemVQbHVn
aW4oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blZpZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmgK
aW5kZXggZDU5YTNkMzZlMWYyMjVkNGM5MjRiOTBlOGZlOGI0Yzk3OWZkZWZlZC4uNzRhYTBiMGNh
OTFjZDMzOGZhNzYwYmQ2MWY3NGEyM2JhYjIxNGQ0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCkBAIC02NSw2ICs2NSw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldERldmljZVNjYWxlRmFjdG9yKGZsb2F0KTsKICAgICB2b2lkIHdpbmRvd0Fu
ZFZpZXdGcmFtZXNDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHdpbmRvd0ZyYW1lSW5T
Y3JlZW5Db29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdmlld0ZyYW1lSW5XaW5k
b3dDb29yZGluYXRlcyk7CiAgICAgYm9vbCBzZW5kQ29tcGxleFRleHRJbnB1dCh1aW50NjRfdCBw
bHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQp
OworICAgIHZvaWQgc2V0TGF5ZXJIb3N0aW5nTW9kZShMYXllckhvc3RpbmdNb2RlKTsKICNlbmRp
ZgogCiAjaWYgVVNFKENHKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCBj
NGIxNzMwOTg3NmIxZWE2ZDQ3Nzg4NTdmMmQ2OGU3YTdhMzExZjlkLi5hMDMwNDZlODZjMmU3ZWVi
YjQ0ZmJjODhjODU4YjZiNDM5YTI0MWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcApAQCAtMTI2Nyw2ICsxMjY3LDkgQEAgUGFzc1JlZlB0cjxXaWRnZXQ+IFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpjcmVhdGVQbHVnaW4oY29uc3QgSW50U2l6ZSYsIEhUTUxQbHVnSW4KICAgICBw
YXJhbWV0ZXJzLnZhbHVlcyA9IHBhcmFtVmFsdWVzOwogICAgIHBhcmFtZXRlcnMubWltZVR5cGUg
PSBtaW1lVHlwZTsKICAgICBwYXJhbWV0ZXJzLmxvYWRNYW51YWxseSA9IGxvYWRNYW51YWxseTsK
KyNpZiBQTEFURk9STShNQUMpCisgICAgcGFyYW1ldGVycy5sYXllckhvc3RpbmdNb2RlID0gd2Vi
UGFnZS0+bGF5ZXJIb3N0aW5nTW9kZSgpOworI2VuZGlmCiAKICNpZiBQTFVHSU5fQVJDSElURUNU
VVJFKFgxMSkKICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgcmVhbGx5IGJlIFgxMS1zcGVjaWZp
YyBwbHVnLWluIHF1aXJrcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAppbmRleCA5OTkyZjViYzcxY2M1MzFlYmIwMmUxYmJkNDljMmIxZWMxZDM3MjZl
Li45ZjhmYjhlMjQ2YjExYjQyMGRlZWYwYzhkMTljZDE2ZWMwMGE5MDA5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xODgsNiArMTg4LDcg
QEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAjaWYgUExBVEZPUk0oTUFDKQogICAgICwgbV93aW5k
b3dJc1Zpc2libGUoZmFsc2UpCiAgICAgLCBtX2lzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKHBh
cmFtZXRlcnMuaXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQpCisgICAgLCBtX2xheWVySG9zdGlu
Z01vZGUoTGF5ZXJIb3N0aW5nTW9kZURlZmF1bHQpCiAgICAgLCBtX2tleWJvYXJkRXZlbnRCZWlu
Z0ludGVycHJldGVkKDApCiAjZWxpZiBQTEFURk9STShXSU4pCiAgICAgLCBtX25hdGl2ZVdpbmRv
dyhwYXJhbWV0ZXJzLm5hdGl2ZVdpbmRvdykKQEAgLTI0NTEsNyArMjQ1Miw2IEBAIHZvaWQgV2Vi
UGFnZTo6d2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYg
d2luZG93RnJhbWVJblNjCiAgICAgZm9yIChIYXNoU2V0PFBsdWdpblZpZXcqPjo6Y29uc3RfaXRl
cmF0b3IgaXQgPSBtX3BsdWdpblZpZXdzLmJlZ2luKCksIGVuZCA9IG1fcGx1Z2luVmlld3MuZW5k
KCk7IGl0ICE9IGVuZDsgKytpdCkKICAgICAgICAgKCppdCktPndpbmRvd0FuZFZpZXdGcmFtZXND
aGFuZ2VkKHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywgdmlld0ZyYW1lSW5XaW5kb3dD
b29yZGluYXRlcyk7CiB9Ci0KICNlbmRpZgogCiBib29sIFdlYlBhZ2U6OndpbmRvd0lzRm9jdXNl
ZCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApp
bmRleCA0NzRiNTY1OThkNWZiMWE3MTIyNGYwNGY3MDA1NDdmNDA3YmYyMTM5Li5lOWRlMmVkYzBj
OGYzNTI5MTg1YTU2MTlkYTU2MjRmNjEzOTQxYjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTgxLDYgKzgxLDcgQEAKIAogI2lmIFBMQVRGT1JN
KE1BQykKICNpbmNsdWRlICJEaWN0aW9uYXJ5UG9wdXBJbmZvLmgiCisjaW5jbHVkZSAiTGF5ZXJI
b3N0aW5nQ29udGV4dC5oIgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIE9CSkNfQ0xBU1Mg
TlNEaWN0aW9uYXJ5OwogT0JKQ19DTEFTUyBOU09iamVjdDsKQEAgLTI5OSw2ICszMDAsOSBAQCBw
dWJsaWM6CiAgICAgdm9pZCBhZGRQbHVnaW5WaWV3KFBsdWdpblZpZXcqKTsKICAgICB2b2lkIHJl
bW92ZVBsdWdpblZpZXcoUGx1Z2luVmlldyopOwogCisgICAgTGF5ZXJIb3N0aW5nTW9kZSBsYXll
ckhvc3RpbmdNb2RlKCkgY29uc3QgeyByZXR1cm4gbV9sYXllckhvc3RpbmdNb2RlOyB9CisgICAg
dm9pZCBzZXRMYXllckhvc3RpbmdNb2RlKExheWVySG9zdGluZ01vZGUpOworCiAgICAgYm9vbCB3
aW5kb3dJc1Zpc2libGUoKSBjb25zdCB7IHJldHVybiBtX3dpbmRvd0lzVmlzaWJsZTsgfQogICAg
IGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcygp
IGNvbnN0IHsgcmV0dXJuIG1fd2luZG93RnJhbWVJblNjcmVlbkNvb3JkaW5hdGVzOyB9CiAgICAg
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcygpIGNv
bnN0IHsgcmV0dXJuIG1fdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlczsgfQpAQCAtNzAwLDYg
KzcwNCw5IEBAIHByaXZhdGU6CiAgICAgLy8gQWxsIHBsdWctaW4gdmlld3Mgb24gdGhpcyB3ZWIg
cGFnZS4KICAgICBIYXNoU2V0PFBsdWdpblZpZXcqPiBtX3BsdWdpblZpZXdzOwogCisgICAgLy8g
VGhlIGxheWVyIGhvc3RpbmcgbW9kZS4KKyAgICBMYXllckhvc3RpbmdNb2RlIG1fbGF5ZXJIb3N0
aW5nTW9kZTsKKwogICAgIFJldGFpblB0cjxXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0PiBt
X21vY2tBY2Nlc3NpYmlsaXR5RWxlbWVudDsKIAogICAgIFdlYkNvcmU6OktleWJvYXJkRXZlbnQq
IG1fa2V5Ym9hcmRFdmVudEJlaW5nSW50ZXJwcmV0ZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
Lm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYS5tbQppbmRleCAyODY1OGFkYzA0YTkyOGQxZDMzN2I4NzhkMWVhN2Vi
M2Y0ZTYyNmI4Li40MmE0NWJjYzUwYTBiMTE2MmI3MWZiMTE4ODZmOTA4N2VkMWM4MThiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0KQEAgLTMyMyw2ICszMjMs
OCBAQCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpzZXRMYXllckhvc3RpbmdN
b2RlKHVpbnQzMl90IG9wYXF1ZUxheWVySG9zdAogCiAgICAgICAgIG1fbGF5ZXJIb3N0aW5nQ29u
dGV4dC0+c2V0Um9vdExheWVyKG1fcm9vdExheWVyLmdldCgpKTsKIAorICAgICAgICBtX3dlYlBh
Z2UtPnNldExheWVySG9zdGluZ01vZGUobGF5ZXJIb3N0aW5nTW9kZSk7CisKICAgICAgICAgLy8g
RmluYWxseSwgaW5mb3JtIHRoZSBVSVByb2Nlc3MgdGhhdCB0aGUgY29udGV4dCBoYXMgY2hhbmdl
ZC4KICAgICAgICAgTGF5ZXJUcmVlQ29udGV4dCBsYXllclRyZWVDb250ZXh0OwogICAgICAgICBs
YXllclRyZWVDb250ZXh0LmNvbnRleHRJRCA9IG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+Y29udGV4
dElEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1dlYlBhZ2VNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dl
YlBhZ2VNYWMubW0KaW5kZXggZGU4YWY0NTkwZDdmYmM1OGUxZWY4OTNmMjEwMjA2NDkwNDdjZmQz
MC4uZWNhNTIzZDFmY2JlZmY5NjdmMGFiMGQyMzRkYzcwZGFlZDJmMzg1ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQpAQCAt
NzExLDQgKzcxMSwxMiBAQCB2b2lkIFdlYlBhZ2U6OmFjY2VwdHNGaXJzdE1vdXNlKGludCBldmVu
dE51bWJlciwgY29uc3QgV2ViS2l0OjpXZWJNb3VzZUV2ZW50JiBldgogICAgICAgICByZXN1bHQg
PSAhIWhpdFJlc3VsdC5zY3JvbGxiYXIoKTsKIH0KIAordm9pZCBXZWJQYWdlOjpzZXRMYXllckhv
c3RpbmdNb2RlKExheWVySG9zdGluZ01vZGUgbGF5ZXJIb3N0aW5nTW9kZSkKK3sKKyAgICBtX2xh
eWVySG9zdGluZ01vZGUgPSBsYXllckhvc3RpbmdNb2RlOworCisgICAgZm9yIChIYXNoU2V0PFBs
dWdpblZpZXcqPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX3BsdWdpblZpZXdzLmJlZ2luKCksIGVu
ZCA9IG1fcGx1Z2luVmlld3MuZW5kKCk7IGl0ICE9IGVuZDsgKytpdCkKKyAgICAgICAgKCppdCkt
PnNldExheWVySG9zdGluZ01vZGUobGF5ZXJIb3N0aW5nTW9kZSk7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdAo=
</data>
<flag name="review"
          id="138350"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>