<?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>48950</bug_id>
          
          <creation_ts>2010-11-03 13:47:20 -0700</creation_ts>
          <short_desc>Out of process plug-ins don&apos;t support the CA drawing model</short_desc>
          <delta_ts>2010-11-03 14:45:18 -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>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>304260</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-11-03 13:47:20 -0700</bug_when>
    <thetext>Out of process plug-ins don&apos;t support the CA drawing model</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304261</commentid>
    <comment_count>1</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-11-03 13:47:44 -0700</bug_when>
    <thetext>&lt;rdar://problem/8626019&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304287</commentid>
    <comment_count>2</comment_count>
      <attachid>72870</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-11-03 14:15:45 -0700</bug_when>
    <thetext>Created attachment 72870
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304289</commentid>
    <comment_count>3</comment_count>
      <attachid>72871</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-11-03 14:17:19 -0700</bug_when>
    <thetext>Created attachment 72871
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304299</commentid>
    <comment_count>4</comment_count>
      <attachid>72871</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-11-03 14:42:00 -0700</bug_when>
    <thetext>Comment on attachment 72871
Patch

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

&gt; WebKit2/PluginProcess/mac/PluginControllerProxyMac.mm:40
&gt; +    CALayer* platformLayer = m_plugin-&gt;pluginLayer();

Pedants would say that the * should go on the right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304303</commentid>
    <comment_count>5</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-11-03 14:45:18 -0700</bug_when>
    <thetext>Committed r71270: &lt;http://trac.webkit.org/changeset/71270&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72870</attachid>
            <date>2010-11-03 14:15:45 -0700</date>
            <delta_ts>2010-11-03 14:17:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-48950-20101103141543.patch</filename>
            <type>text/plain</type>
            <size>25698</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
OTNkN2M4ZmYwYTcwZDVmZjBhODFlMjkzYjhlYTg2Njg0YmU0NWFiYS4uOGQ1ODVlNDliMTU0YTUw
OWIzZmE5MWE1ZGRhNDdhOGQ2MGY3NDkyZCAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsNSArMSw0NiBAQAogMjAxMC0xMS0wMyAgQW5k
ZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE91dCBvZiBwcm9jZXNzIHBsdWctaW5zIGRvbid0
IHN1cHBvcnQgdGhlIENBIGRyYXdpbmcgbW9kZWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4OTUwCisKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBD
L0hhbmRsZU1lc3NhZ2UuaDoKKyAgICAgICAgKENvcmVJUEM6OmNhbGxNZW1iZXJGdW5jdGlvbik6
CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpQbHVnaW5Db250cm9sbGVyUHJveHk6OmluaXRpYWxpemUpOgorICAgICAg
ICAoV2ViS2l0OjpQbHVnaW5Db250cm9sbGVyUHJveHk6OmRlc3Ryb3kpOgorICAgICAgICAoV2Vi
S2l0OjpQbHVnaW5Db250cm9sbGVyUHJveHk6OmlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJs
ZWQpOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Db250cm9sbGVyUHJveHk6Omdlb21ldHJ5RGlk
Q2hhbmdlKToKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5o
OgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5oOgorICAgICAgICAoV2Vi
S2l0OjpQbHVnaW5Qcm9jZXNzOjpjb21wb3NpdGluZ1JlbmRlclNlcnZlclBvcnQpOgorICAgICAg
ICAqIFBsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlUGx1Z2luKToKKyAgICAgICAgKiBQbHVn
aW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmg6CisgICAgICAgICogUGx1Z2luUHJvY2Vz
cy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBQbHVnaW5Qcm9j
ZXNzL21hYy9QbHVnaW5Db250cm9sbGVyUHJveHlNYWMubW06IEFkZGVkLgorICAgICAgICAoV2Vi
S2l0OjpQbHVnaW5Db250cm9sbGVyUHJveHk6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6CisgICAgICAg
IChXZWJLaXQ6OlBsdWdpbkNvbnRyb2xsZXJQcm94eTo6cGxhdGZvcm1EZXN0cm95KToKKyAgICAg
ICAgKFdlYktpdDo6UGx1Z2luQ29udHJvbGxlclByb3h5OjpyZW1vdGVMYXllckNsaWVudElEKToK
KyAgICAgICAgKFdlYktpdDo6UGx1Z2luQ29udHJvbGxlclByb3h5OjpwbGF0Zm9ybUdlb21ldHJ5
RGlkQ2hhbmdlKToKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9QbHVnaW5Qcm94eU1h
Yy5tbTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb3h5OjpwbHVnaW5MYXllcik6
CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb3h5OjpuZWVkc0JhY2tpbmdTdG9yZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UGx1Z2luUHJveHk6OlBsdWdpblByb3h5KToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJv
eHk6OmluaXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm94eTo6cGFpbnQpOgor
ICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm94eTo6Z2VvbWV0cnlEaWRDaGFuZ2UpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9MYXllckJhY2tlZERyYXdpbmdBcmVhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
TGF5ZXJCYWNrZWREcmF3aW5nQXJlYTo6TGF5ZXJCYWNrZWREcmF3aW5nQXJlYSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9MYXllckJhY2tlZERyYXdpbmdBcmVhTWFjLm1tOgor
ICAgICAgICAoV2ViS2l0OjpMYXllckJhY2tlZERyYXdpbmdBcmVhOjpwbGF0Zm9ybUNsZWFyKToK
KworMjAxMC0xMS0wMyAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgorCiAg
ICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KIAogICAgICAgICBDcmFzaCB3aGVuIGxh
eW91dCBpbiByZXNwb25zZSB0byBzZXRTaXplIGNoYW5nZXMgdGhlIGRyYXdpbmcgYXJlYQpkaWZm
IC0tZ2l0IGEvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0hhbmRsZU1lc3NhZ2UuaCBiL1dlYktp
dDIvUGxhdGZvcm0vQ29yZUlQQy9IYW5kbGVNZXNzYWdlLmgKaW5kZXggNGYyNzU5OGQ5NzRhOGFj
ZWQyNWJkYWU4MzNjZDc2MDUzZDBlODNkNy4uZTQzY2ZkYTJhOTU0ZjY1NDRlMDYxOGQyZjA5OTU0
ZjY0NTg5NjlkMiAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0hhbmRsZU1l
c3NhZ2UuaAorKysgYi9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvSGFuZGxlTWVzc2FnZS5oCkBA
IC0xMjcsNiArMTI3LDEyIEBAIHZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFyZ3VtZW50
czQ8UDEsIFAyLCBQMywgUDQ+JiBhcmdzLCBBcmd1bWVudHMxPFIxPiYKICAgICAob2JqZWN0LT4q
ZnVuY3Rpb24pKGFyZ3MuYXJndW1lbnQxLCBhcmdzLmFyZ3VtZW50MiwgYXJncy5hcmd1bWVudDMs
IGFyZ3MuYXJndW1lbnQ0LCByZXBseUFyZ3MuYXJndW1lbnQxKTsKIH0KIAordGVtcGxhdGU8dHlw
ZW5hbWUgQywgdHlwZW5hbWUgTUYsIHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUg
UDMsIHR5cGVuYW1lIFA0LCB0eXBlbmFtZSBSMSwgdHlwZW5hbWUgUjI+Cit2b2lkIGNhbGxNZW1i
ZXJGdW5jdGlvbihjb25zdCBBcmd1bWVudHM0PFAxLCBQMiwgUDMsIFA0PiYgYXJncywgQXJndW1l
bnRzMjxSMSwgUjI+JiByZXBseUFyZ3MsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCit7CisgICAg
KG9iamVjdC0+KmZ1bmN0aW9uKShhcmdzLmFyZ3VtZW50MSwgYXJncy5hcmd1bWVudDIsIGFyZ3Mu
YXJndW1lbnQzLCBhcmdzLmFyZ3VtZW50NCwgcmVwbHlBcmdzLmFyZ3VtZW50MSwgcmVwbHlBcmdz
LmFyZ3VtZW50Mik7Cit9CisgICAgCiAvLyBWYXJpYWRpYyBkaXNwYXRjaCBmdW5jdGlvbnMuCiAK
IHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GPgpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9Q
bHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5jcHAgYi9XZWJLaXQyL1BsdWdpblBy
b2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcAppbmRleCA5MWEwMDU5N2UxYjdjMzU4MmVl
NGVjOWNkZjcyMjBiNzY3NjFlZDczLi42YmViMjVhOWZlYWNkNWQ0NTg3YTdhMTY2NWJhYjQ4Nzhi
YzhjNzYzIDEwMDY0NAotLS0gYS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxl
clByb3h5LmNwcAorKysgYi9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclBy
b3h5LmNwcApAQCAtNzQsNiArNzQsOCBAQCBib29sIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6aW5p
dGlhbGl6ZShjb25zdCBQbHVnaW46OlBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICB9CiAKKyAgICBwbGF0Zm9ybUluaXRpYWxpemUoKTsKKwogICAgIHJl
dHVybiB0cnVlOwogfQogCkBAIC04Myw2ICs4NSw4IEBAIHZvaWQgUGx1Z2luQ29udHJvbGxlclBy
b3h5OjpkZXN0cm95KCkKIAogICAgIG1fcGx1Z2luLT5kZXN0cm95KCk7CiAgICAgbV9wbHVnaW4g
PSAwOworCisgICAgcGxhdGZvcm1EZXN0cm95KCk7CiB9CiAKIHZvaWQgUGx1Z2luQ29udHJvbGxl
clByb3h5OjpwYWludCgpCkBAIC0xOTMsOCArMTk3LDcgQEAgdm9pZCBQbHVnaW5Db250cm9sbGVy
UHJveHk6OnNldFN0YXR1c2JhclRleHQoY29uc3QgV1RGOjpTdHJpbmcmKQogCiBib29sIFBsdWdp
bkNvbnRyb2xsZXJQcm94eTo6aXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCgpCiB7Ci0g
ICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIFBsdWdp
blByb2Nlc3M6OnNoYXJlZCgpLmNvbXBvc2l0aW5nUmVuZGVyU2VydmVyUG9ydCgpOwogfQogCiB2
b2lkIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6cGx1Z2luUHJvY2Vzc0NyYXNoZWQoKQpAQCAtMjQ1
LDYgKzI0OCw4IEBAIHZvaWQgUGx1Z2luQ29udHJvbGxlclByb3h5OjpnZW9tZXRyeURpZENoYW5n
ZShjb25zdCBJbnRSZWN0JiBmcmFtZVJlY3QsIGNvbnN0IEluCiAgICAgfQogCiAgICAgbV9wbHVn
aW4tPmdlb21ldHJ5RGlkQ2hhbmdlKGZyYW1lUmVjdCwgY2xpcFJlY3QpOworCisgICAgcGxhdGZv
cm1HZW9tZXRyeURpZENoYW5nZShmcmFtZVJlY3QsIGNsaXBSZWN0KTsKIH0KIAogdm9pZCBQbHVn
aW5Db250cm9sbGVyUHJveHk6OmRpZEV2YWx1YXRlSmF2YVNjcmlwdCh1aW50NjRfdCByZXF1ZXN0
SUQsIGNvbnN0IFN0cmluZyYgcmVxdWVzdFVSTFN0cmluZywgY29uc3QgU3RyaW5nJiByZXN1bHQp
CmRpZmYgLS1naXQgYS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5
LmggYi9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmgKaW5kZXgg
MDZjNTMzODFkYWRlNDk3ODVmNTMzN2JlNjBhNjM2NGI3Yjk3ZjYzZS4uNjkzNDMyOTE5ZDM2NzAx
MDZmZjA1NTI1MjdkOGFiMTY1ZjUzNTE5YSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9QbHVnaW5Qcm9j
ZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5oCisrKyBiL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9Q
bHVnaW5Db250cm9sbGVyUHJveHkuaApAQCAtMzUsNiArMzUsMTIgQEAKICNpbmNsdWRlICJTaGFy
ZWRNZW1vcnkuaCIKICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KIAorI2lmIFBMQVRGT1JN
KE1BQykKKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisKK3R5cGVkZWYgc3RydWN0IF9fV0tD
QVJlbW90ZUxheWVyQ2xpZW50UmVmICpXS0NBUmVtb3RlTGF5ZXJDbGllbnRSZWY7CisjZW5kaWYK
KwogbmFtZXNwYWNlIENvcmVJUEMgewogICAgIGNsYXNzIERhdGFSZWZlcmVuY2U7CiB9CkBAIC01
OSw2ICs2NSwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRSZWNlaXZlUGx1Z2luQ29udHJvbGxl
clByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKICAgICBDb3JlSVBDOjpTeW5jUmVwbHlNb2RlIGRp
ZFJlY2VpdmVTeW5jUGx1Z2luQ29udHJvbGxlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXIqKTsKIAorI2lmIFBMQVRGT1JNKE1BQykKKyAgICB1aW50MzJf
dCByZW1vdGVMYXllckNsaWVudElEKCkgY29uc3Q7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBQ
bHVnaW5Db250cm9sbGVyUHJveHkoV2ViUHJvY2Vzc0Nvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIHVp
bnQ2NF90IHBsdWdpbkluc3RhbmNlSUQsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBib29sIGlz
UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCk7CiAKQEAgLTEwNiw2ICsxMTYsMTAgQEAgcHJpdmF0ZToK
ICNlbmRpZgogICAgIHZvaWQgcHJpdmF0ZUJyb3dzaW5nU3RhdGVDaGFuZ2VkKGJvb2wpOwogCisg
ICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemUoKTsKKyAgICB2b2lkIHBsYXRmb3JtRGVzdHJveSgp
OworICAgIHZvaWQgcGxhdGZvcm1HZW9tZXRyeURpZENoYW5nZShjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JiBmcmFtZVJlY3QsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNsaXBSZWN0KTsKKwogICAg
IFdlYlByb2Nlc3NDb25uZWN0aW9uKiBtX2Nvbm5lY3Rpb247CiAgICAgdWludDY0X3QgbV9wbHVn
aW5JbnN0YW5jZUlEOwogCkBAIC0xMzAsNiArMTQ0LDExIEBAIHByaXZhdGU6CiAKICAgICAvLyBU
aGUgYmFja2luZyBzdG9yZSB0aGF0IHRoaXMgcGx1Zy1pbiBkcmF3cyBpbnRvLgogICAgIFJlZlB0
cjxCYWNraW5nU3RvcmU+IG1fYmFja2luZ1N0b3JlOworCisjaWYgUExBVEZPUk0oTUFDKQorICAg
IC8vIEZvciBDQSBwbHVnLWlucywgdGhpcyBob2xkcyB0aGUgaW5mb3JtYXRpb24gbmVlZGVkIHRv
IGV4cG9ydCB0aGUgbGF5ZXIgaGllcmFyY2h5IHRvIHRoZSBVSSBwcm9jZXNzLgorICAgIFJldGFp
blB0cjxXS0NBUmVtb3RlTGF5ZXJDbGllbnRSZWY+IG1fcmVtb3RlTGF5ZXJDbGllbnQ7CisjZW5k
aWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9QbHVn
aW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuaCBiL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Q
cm9jZXNzLmgKaW5kZXggYzg1NWY1YWE0ZjMzZTViMWE4OGY0NDZiZDQzYjRmNGFmZmZiMzUxOS4u
ZGZjODNhYjExMTM5OWVjODY3ZGI2YzA4Y2IyMjFlNDQ2NTdkNjZjOCAxMDA2NDQKLS0tIGEvV2Vi
S2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuaAorKysgYi9XZWJLaXQyL1BsdWdpblBy
b2Nlc3MvUGx1Z2luUHJvY2Vzcy5oCkBAIC00Nyw2ICs0NywxMCBAQCBwdWJsaWM6CiAKICAgICBO
ZXRzY2FwZVBsdWdpbk1vZHVsZSogbmV0c2NhcGVQbHVnaW5Nb2R1bGUoKSBjb25zdCB7IHJldHVy
biBtX3BsdWdpbk1vZHVsZS5nZXQoKTsgfQogCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKSAmJiBQTEFURk9STShNQUMpCisgICAgbWFjaF9wb3J0X3QgY29tcG9zaXRpbmdSZW5kZXJT
ZXJ2ZXJQb3J0KCkgY29uc3QgeyByZXR1cm4gbV9jb21wb3NpdGluZ1JlbmRlclNlcnZlclBvcnQ7
IH0KKyNlbmRpZgorCiBwcml2YXRlOgogICAgIFBsdWdpblByb2Nlc3MoKTsKICAgICB+UGx1Z2lu
UHJvY2VzcygpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3ND
b25uZWN0aW9uLmNwcCBiL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlv
bi5jcHAKaW5kZXggMzUzOTQ1NDdmMTU3YzY2NzlhN2Q0YTFhMmU4Njk2OWY5OTE4MDM1Zi4uMDA1
YzcyYzk0OGU0ZTBiNTUyYTRmYzFlY2E5MGQyYTE5NDQ0YmY5NyAxMDA2NDQKLS0tIGEvV2ViS2l0
Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcAorKysgYi9XZWJLaXQyL1Bs
dWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC0xNDUsNyArMTQ1LDcgQEAg
dm9pZCBXZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qLCBDb3JlSVAKICAgICAvLyBGSVhNRTogSW1wbGVtZW50LgogfQogCi12
b2lkIFdlYlByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGVQbHVnaW4odWludDY0X3QgcGx1Z2luSW5z
dGFuY2VJRCwgY29uc3QgUGx1Z2luOjpQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBjb25zdCBTdHJp
bmcmIHVzZXJBZ2VudCwgYm9vbCBpc1ByaXZhdGVCcm93c2luZ0VuYWJsZWQsIGJvb2wmIHJlc3Vs
dCkKK3ZvaWQgV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZVBsdWdpbih1aW50NjRfdCBwbHVn
aW5JbnN0YW5jZUlELCBjb25zdCBQbHVnaW46OlBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIGNvbnN0
IFN0cmluZyYgdXNlckFnZW50LCBib29sIGlzUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCwgYm9vbCYg
cmVzdWx0LCB1aW50MzJfdCYgcmVtb3RlTGF5ZXJDbGllbnRJRCkKIHsKICAgICBPd25QdHI8UGx1
Z2luQ29udHJvbGxlclByb3h5PiBwbHVnaW5Db250cm9sbGVyUHJveHkgPSBQbHVnaW5Db250cm9s
bGVyUHJveHk6OmNyZWF0ZSh0aGlzLCBwbHVnaW5JbnN0YW5jZUlELCB1c2VyQWdlbnQsIGlzUHJp
dmF0ZUJyb3dzaW5nRW5hYmxlZCk7CiAKQEAgLTE1OCwxMCArMTU4LDEzIEBAIHZvaWQgV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZVBsdWdpbih1aW50NjRfdCBwbHVnaW5JbnN0YW5jZUlELCBj
b25zdCBQbHVnaW46CiAgICAgLy8gTm93IHRyeSB0byBpbml0aWFsaXplIHRoZSBwbHVnLWluLgog
ICAgIHJlc3VsdCA9IHBsdWdpbkNvbnRyb2xsZXJQcm94eVB0ci0+aW5pdGlhbGl6ZShwYXJhbWV0
ZXJzKTsKIAotICAgIGlmICghcmVzdWx0KSB7Ci0gICAgICAgIC8vIFdlIGZhaWxlZCB0byBpbml0
aWFsaXplLCByZW1vdmUgdGhlIHBsdWctaW4gY29udHJvbGxlci4gVGhpcyBjb3VsZCBjYXVzZSB1
cyB0byBiZSBkZWxldGVkLgotICAgICAgICByZW1vdmVQbHVnaW5Db250cm9sbGVyUHJveHkocGx1
Z2luQ29udHJvbGxlclByb3h5UHRyKTsKKyAgICBpZiAocmVzdWx0KSB7CisgICAgICAgIHJlbW90
ZUxheWVyQ2xpZW50SUQgPSBwbHVnaW5Db250cm9sbGVyUHJveHlQdHItPnJlbW90ZUxheWVyQ2xp
ZW50SUQoKTsKKyAgICAgICAgcmV0dXJuOwogICAgIH0KKworICAgIC8vIFdlIGZhaWxlZCB0byBp
bml0aWFsaXplLCByZW1vdmUgdGhlIHBsdWctaW4gY29udHJvbGxlci4gVGhpcyBjb3VsZCBjYXVz
ZSB1cyB0byBiZSBkZWxldGVkLgorICAgIHJlbW92ZVBsdWdpbkNvbnRyb2xsZXJQcm94eShwbHVn
aW5Db250cm9sbGVyUHJveHlQdHIpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oIGIvV2Vi
S2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKaW5kZXggODU1NTQzNWUz
NWRmYzQ1YTBkNjAxMDMxMDJlNmQyZTVmYjU2OWI0My4uZTA0Yjg0MjAwZDA4ODllZWU2NmExMjRh
Y2RmYTkwM2JjMzkzYjliNyAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlBy
b2Nlc3NDb25uZWN0aW9uLmgKKysrIGIvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3ND
b25uZWN0aW9uLmgKQEAgLTY0LDcgKzY0LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIE1lc3NhZ2Ug
aGFuZGxlcnMuCiAgICAgQ29yZUlQQzo6U3luY1JlcGx5TW9kZSBkaWRSZWNlaXZlU3luY1dlYlBy
b2Nlc3NDb25uZWN0aW9uTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVz
c2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBDb3JlSVBDOjpBcmd1bWVudEVuY29k
ZXIqKTsKLSAgICB2b2lkIGNyZWF0ZVBsdWdpbih1aW50NjRfdCBwbHVnaW5JbnN0YW5jZUlELCBj
b25zdCBQbHVnaW46OlBhcmFtZXRlcnMmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgYm9vbCBp
c1ByaXZhdGVCcm93c2luZ0VuYWJsZWQsIGJvb2wmIHJlc3VsdCk7CisgICAgdm9pZCBjcmVhdGVQ
bHVnaW4odWludDY0X3QgcGx1Z2luSW5zdGFuY2VJRCwgY29uc3QgUGx1Z2luOjpQYXJhbWV0ZXJz
JiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGJvb2wgaXNQcml2YXRlQnJvd3NpbmdFbmFibGVk
LCBib29sJiByZXN1bHQsIHVpbnQzMl90JiByZW1vdGVMYXllckNsaWVudElEKTsKICAgICB2b2lk
IGRlc3Ryb3lQbHVnaW4odWludDY0X3QgcGx1Z2luSW5zdGFuY2VJRCk7CiAKICAgICBSZWZQdHI8
Q29yZUlQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9Q
bHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvV2ViS2l0Mi9Q
bHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IDhmYTQ5
NTI2OGQxYmUzYmY4ZDI3ODJkZDQ1MjE1ZjBjNjFlMDAzZjUuLmMzMTE0MDAxMmZiYTRkZDY3Yjgw
MGJjOWE1Zjk1OTgxNTM1MjZmYmEgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9X
ZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9XZWJLaXQyL1BsdWdpblByb2Nl
c3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTI0LDcgKzI0LDcgQEAKIAog
bWVzc2FnZXMgLT4gV2ViUHJvY2Vzc0Nvbm5lY3Rpb24gewogICAgICMgQ3JlYXRlcyBhIHBsdWct
aW4gaW5zdGFuY2Ugd2l0aCB0aGUgZ2l2ZW4gaW5zdGFuY2UgSUQuCi0gICAgQ3JlYXRlUGx1Z2lu
KHVpbnQ2NF90IHBsdWdpbkluc3RhbmNlSUQsIFdlYktpdDo6UGx1Z2luOjpQYXJhbWV0ZXJzIHBh
cmFtZXRlcnMsIFdURjo6U3RyaW5nIHVzZXJBZ2VudCwgYm9vbCBpc1ByaXZhdGVCcm93c2luZ0Vu
YWJsZWQpIC0+IChib29sIHJlc3VsdCkKKyAgICBDcmVhdGVQbHVnaW4odWludDY0X3QgcGx1Z2lu
SW5zdGFuY2VJRCwgV2ViS2l0OjpQbHVnaW46OlBhcmFtZXRlcnMgcGFyYW1ldGVycywgV1RGOjpT
dHJpbmcgdXNlckFnZW50LCBib29sIGlzUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkgLT4gKGJvb2wg
cmVzdWx0LCB1aW50MzJfdCByZW1vdGVMYXllckNsaWVudElEKQogCiAgICAgIyBEZXN0cm95cyB0
aGUgcGx1Zy1pbiBpbnN0YW5jZSB3aXRoIHRoZSBnaXZlbiBpbnN0YW5jZSBJRC4KICAgICBEZXN0
cm95UGx1Z2luKHVpbnQ2NF90IHBsdWdpbkluc3RhbmNlSUQpIC0+ICgpCmRpZmYgLS1naXQgYS9X
ZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpbkNvbnRyb2xsZXJQcm94eU1hYy5tbSBiL1dl
YktpdDIvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luQ29udHJvbGxlclByb3h5TWFjLm1tCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmFkNzE0M2JkMjdhNTdjODIzYjc5MTg1ODQzMzNjOWU4YWI4OTIyMjkKLS0tIC9kZXYv
bnVsbAorKysgYi9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpbkNvbnRyb2xsZXJQcm94
eU1hYy5tbQpAQCAtMCwwICsxLDgyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShQTFVHSU5f
UFJPQ0VTUykKKworI2luY2x1ZGUgIlBsdWdpbkNvbnRyb2xsZXJQcm94eS5oIgorCisjaW5jbHVk
ZSA8UXVhcnR6Q29yZS9RdWFydHpDb3JlLmg+CisjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzcy5oIgor
I2luY2x1ZGUgIldlYktpdFN5c3RlbUludGVyZmFjZS5oIgorCit1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgUGx1Z2luQ29udHJvbGxlclByb3h5
OjpwbGF0Zm9ybUluaXRpYWxpemUoKQoreworICAgIENBTGF5ZXIqIHBsYXRmb3JtTGF5ZXIgPSBt
X3BsdWdpbi0+cGx1Z2luTGF5ZXIoKTsKKyAgICBpZiAoIXBsYXRmb3JtTGF5ZXIpCisgICAgICAg
IHJldHVybjsKKworICAgIEFTU0VSVCghbV9yZW1vdGVMYXllckNsaWVudCk7CisKKyAgICBtX3Jl
bW90ZUxheWVyQ2xpZW50ID0gV0tDQVJlbW90ZUxheWVyQ2xpZW50TWFrZVdpdGhTZXJ2ZXJQb3J0
KFBsdWdpblByb2Nlc3M6OnNoYXJlZCgpLmNvbXBvc2l0aW5nUmVuZGVyU2VydmVyUG9ydCgpKTsK
KyAgICBBU1NFUlQobV9yZW1vdGVMYXllckNsaWVudCk7CisKKyAgICBXS0NBUmVtb3RlTGF5ZXJD
bGllbnRTZXRMYXllcihtX3JlbW90ZUxheWVyQ2xpZW50LmdldCgpLCBwbGF0Zm9ybUxheWVyKTsK
K30KKwordm9pZCBQbHVnaW5Db250cm9sbGVyUHJveHk6OnBsYXRmb3JtRGVzdHJveSgpCit7Cisg
ICAgaWYgKCFtX3JlbW90ZUxheWVyQ2xpZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBXS0NB
UmVtb3RlTGF5ZXJDbGllbnRJbnZhbGlkYXRlKG1fcmVtb3RlTGF5ZXJDbGllbnQuZ2V0KCkpOwor
ICAgIG1fcmVtb3RlTGF5ZXJDbGllbnQgPSBudWxscHRyOworfQorCit1aW50MzJfdCBQbHVnaW5D
b250cm9sbGVyUHJveHk6OnJlbW90ZUxheWVyQ2xpZW50SUQoKSBjb25zdAoreworICAgIGlmICgh
bV9yZW1vdGVMYXllckNsaWVudCkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gV0tD
QVJlbW90ZUxheWVyQ2xpZW50R2V0Q2xpZW50SWQobV9yZW1vdGVMYXllckNsaWVudC5nZXQoKSk7
Cit9CisKK3ZvaWQgUGx1Z2luQ29udHJvbGxlclByb3h5OjpwbGF0Zm9ybUdlb21ldHJ5RGlkQ2hh
bmdlKGNvbnN0IEludFJlY3QmIGZyYW1lUmVjdCwgY29uc3QgSW50UmVjdCYpCit7CisgICAgQ0FM
YXllciogcGx1Z2luTGF5ZXIgPSBtX3BsdWdpbi0+cGx1Z2luTGF5ZXIoKTsKKworICAgIC8vIFdl
IGRvbid0IHdhbnQgdG8gYW5pbWF0ZSB0byB0aGUgbmV3IHNpemUgc28gd2UgZGlzYWJsZSBhY3Rp
b25zIGZvciB0aGlzIHRyYW5zYWN0aW9uLgorICAgIFtDQVRyYW5zYWN0aW9uIGJlZ2luXTsKKyAg
ICBbQ0FUcmFuc2FjdGlvbiBzZXRWYWx1ZTpbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6WUVTXSBm
b3JLZXk6a0NBVHJhbnNhY3Rpb25EaXNhYmxlQWN0aW9uc107CisgICAgW3BsdWdpbkxheWVyIHNl
dEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgZnJhbWVSZWN0LndpZHRoKCksIGZyYW1lUmVjdC5oZWln
aHQoKSldOworICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEv
V2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJLaXQyL1dlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzYmZiNTI2N2RjZGU2ZTE5Y2I5MmJi
NDQzM2Y1OGJlYjU4Yzk2MTJjLi5hYTQ0NzYxYTE4MDc4MzhkYzE1MDc1ZTE5OWI2NjE3ODQwMWFi
ODRlIDEwMDY0NAotLS0gYS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTYs
NiArOTYsOCBAQAogCQkxQTJEOTBCQjEyODFDOTMxMDAxRUI5NjIgLyogUGx1Z2luUHJvY2Vzc1By
b3h5TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUEyRDkwQkExMjgxQzkzMTAwMUVCOTYyIC8qIFBsdWdpblByb2Nlc3NQcm94eU1hYy5tbSAqLzsg
fTsKIAkJMUEyRDkwRDIxMjgxQzk2NjAwMUVCOTYyIC8qIFBsdWdpblByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFBMkQ5MEQwMTI4MUM5NjYwMDFFQjk2MiAvKiBQbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmggKi87IH07CiAJCTFBMkQ5MEQzMTI4MUM5NjYwMDFFQjk2MiAvKiBQbHVnaW5Qcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFBMkQ5MEQxMTI4MUM5NjYwMDFFQjk2MiAvKiBQbHVnaW5Qcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmNwcCAqLzsgfTsKKwkJMUEyRDkxQTYxMjgxRDczOTAwMUVCOTYyIC8q
IFBsdWdpbkNvbnRyb2xsZXJQcm94eU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFBMkQ5MUE1MTI4MUQ3MzkwMDFFQjk2MiAvKiBQbHVnaW5Db250
cm9sbGVyUHJveHlNYWMubW0gKi87IH07CisJCTFBMkQ5MjIxMTI4MURDMUIwMDFFQjk2MiAvKiBQ
bHVnaW5Qcm94eU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDFBMkQ5MjIwMTI4MURDMUIwMDFFQjk2MiAvKiBQbHVnaW5Qcm94eU1hYy5tbSAqLzsg
fTsKIAkJMUEzMDA2NkUxMTEwRjRGNzAwMzE5MzdDIC8qIFJlc3BvbnNpdmVuZXNzVGltZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMzAwNjZDMTEx
MEY0RjcwMDMxOTM3QyAvKiBSZXNwb25zaXZlbmVzc1RpbWVyLmggKi87IH07CiAJCTFBMzBFQUM2
MTE1RDdEQTMwMDUzRTkzNyAvKiBDb25uZWN0aW9uTWFjLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMzBFQUM1MTE1RDdEQTMwMDUzRTkzNyAvKiBD
b25uZWN0aW9uTWFjLmNwcCAqLzsgfTsKIAkJMUEzREQxRkQxMjVFNTlGMzAwNDUxNUU2IC8qIFdl
YkZpbmRDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUEzREQxRkMxMjVFNTlGMzAwNDUxNUU2IC8qIFdlYkZpbmRDbGllbnQuY3BwICovOyB9
OwpAQCAtNjEzLDYgKzYxNSw4IEBACiAJCTFBMkQ5MEJBMTI4MUM5MzEwMDFFQjk2MiAvKiBQbHVn
aW5Qcm9jZXNzUHJveHlNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBQbHVnaW5Qcm9jZXNzUHJveHlNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTFBMkQ5MEQwMTI4MUM5NjYwMDFFQjk2MiAvKiBQbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsdWdpblByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUEyRDkw
RDExMjgxQzk2NjAwMUVCOTYyIC8qIFBsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGx1Z2luUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFBMkQ5MUE1
MTI4MUQ3MzkwMDFFQjk2MiAvKiBQbHVnaW5Db250cm9sbGVyUHJveHlNYWMubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQbHVnaW5Db250cm9sbGVyUHJveHlNYWMu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFBMkQ5MjIwMTI4MURDMUIwMDFFQjk2
MiAvKiBQbHVnaW5Qcm94eU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFBsdWdpblByb3h5TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
QTMwMDY2QzExMTBGNEY3MDAzMTkzN0MgLyogUmVzcG9uc2l2ZW5lc3NUaW1lci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXNwb25zaXZlbmVzc1RpbWVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBMzBFQUM1MTE1RDdEQTMwMDUzRTkzNyAvKiBDb25uZWN0
aW9uTWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvbm5lY3Rp
b25NYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTNERDFGQzEyNUU1OUYz
MDA0NTE1RTYgLyogV2ViRmluZENsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXZWJGaW5kQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTExNzUsNiArMTE3OSw3IEBACiAJCTFBMEVDN0ZEMTI0QkQ0MDIwMDdFRjRBNSAvKiBtYWMg
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTFBMkQ5MUE1
MTI4MUQ3MzkwMDFFQjk2MiAvKiBQbHVnaW5Db250cm9sbGVyUHJveHlNYWMubW0gKi8sCiAJCQkJ
MUEwRUM4MDIxMjRCRDQxRTAwN0VGNEE1IC8qIFBsdWdpblByb2Nlc3NNYWluTWFjLm1tICovLAog
CQkJKTsKIAkJCXBhdGggPSBtYWM7CkBAIC0xMjc1LDYgKzEyODAsNyBAQAogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQkxQUU1QjdGOTExRTdBRUQyMDBCQTY3NjcgLyog
TmV0c2NhcGVQbHVnaW5NYWMubW0gKi8sCisJCQkJMUEyRDkyMjAxMjgxREMxQjAwMUVCOTYyIC8q
IFBsdWdpblByb3h5TWFjLm1tICovLAogCQkJKTsKIAkJCXBhdGggPSBtYWM7CiAJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOwpAQCAtMjYzMCw2ICsyNjM2LDggQEAKIAkJCQkxQzhFMkEzNTEyNzc4
NTI0MDBCQzdCRDAgLyogV2ViSW5zcGVjdG9yTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTFBMkQ5MEJCMTI4MUM5MzEwMDFFQjk2MiAvKiBQbHVnaW5Qcm9jZXNzUHJveHlN
YWMubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQTJEOTBEMzEyODFDOTY2MDAxRUI5NjIgLyogUGx1
Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQTJE
OTFBNjEyODFENzM5MDAxRUI5NjIgLyogUGx1Z2luQ29udHJvbGxlclByb3h5TWFjLm1tIGluIFNv
dXJjZXMgKi8sCisJCQkJMUEyRDkyMjExMjgxREMxQjAwMUVCOTYyIC8qIFBsdWdpblByb3h5TWFj
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9tYWMvUGx1Z2luUHJveHlNYWMubW0gYi9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9tYWMvUGx1Z2luUHJveHlNYWMubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmVjZjdiOWY2
NGU0YjJmYzBiMTYyZjdiOTk3ZDUwM2Y5NTdlYzcxZAotLS0gL2Rldi9udWxsCisrKyBiL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9QbHVnaW5Qcm94eU1hYy5tbQpAQCAt
MCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKKwor
I2luY2x1ZGUgIlBsdWdpblByb3h5LmgiCisKKyNpbmNsdWRlIDxXZWJLaXRTeXN0ZW1JbnRlcmZh
Y2UuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1BsYXRmb3JtTGF5ZXIqIFBsdWdpblByb3h5
OjpwbHVnaW5MYXllcigpCit7CisgICAgaWYgKCFtX3BsdWdpbkxheWVyICYmIG1fcmVtb3RlTGF5
ZXJDbGllbnRJRCkKKyAgICAgICAgbV9wbHVnaW5MYXllciA9IFdLTWFrZVJlbmRlckxheWVyKG1f
cmVtb3RlTGF5ZXJDbGllbnRJRCk7CisKKyAgICByZXR1cm4gbV9wbHVnaW5MYXllci5nZXQoKTsK
K30KKworYm9vbCBQbHVnaW5Qcm94eTo6bmVlZHNCYWNraW5nU3RvcmUoKSBjb25zdAoreworICAg
IHJldHVybiAhbV9yZW1vdGVMYXllckNsaWVudElEOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5LmNwcCBiL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpblByb3h5LmNwcAppbmRleCBiMDc0NTA3NzM5MTRhNmYwYzhkNDBmOGI2
MmNkMDQ3ODhmMTc3Y2E2Li45ODNkNDBlODkxZTViZGJiOGZmZTEwNjE2MGQ5ODZjZTZjMjNlNTEw
IDEwMDY0NAotLS0gYS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5jcHAK
KysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuY3BwCkBAIC02Miw2
ICs2Miw3IEBAIFBsdWdpblByb3h5OjpQbHVnaW5Qcm94eShQYXNzUmVmUHRyPFBsdWdpblByb2Nl
c3NDb25uZWN0aW9uPiBjb25uZWN0aW9uKQogICAgICwgbV9wbHVnaW5CYWNraW5nU3RvcmVDb250
YWluc1ZhbGlkRGF0YShmYWxzZSkKICAgICAsIG1faXNTdGFydGVkKGZhbHNlKQogICAgICwgbV93
YWl0aW5nRm9yUGFpbnRJblJlc3BvbnNlVG9VcGRhdGUoZmFsc2UpCisgICAgLCBtX3JlbW90ZUxh
eWVyQ2xpZW50SUQoMCkKIHsKIH0KIApAQCAtODksMTEgKzkwLDEzIEBAIGJvb2wgUGx1Z2luUHJv
eHk6OmluaXRpYWxpemUoUGx1Z2luQ29udHJvbGxlciogcGx1Z2luQ29udHJvbGxlciwgY29uc3Qg
UGFyYW1ldGVyCiAgICAgLy8gQXNrIHRoZSBwbHVnLWluIHByb2Nlc3MgdG8gY3JlYXRlIGEgcGx1
Zy1pbi4KICAgICBib29sIHJlc3VsdCA9IGZhbHNlOwogCi0gICAgaWYgKCFtX2Nvbm5lY3Rpb24t
PmNvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlByb2Nlc3NDb25uZWN0aW9uOjpD
cmVhdGVQbHVnaW4obV9wbHVnaW5JbnN0YW5jZUlELCBwYXJhbWV0ZXJzLCBwbHVnaW5Db250cm9s
bGVyLT51c2VyQWdlbnQoKSwgcGx1Z2luQ29udHJvbGxlci0+aXNQcml2YXRlQnJvd3NpbmdFbmFi
bGVkKCkpLCBNZXNzYWdlczo6V2ViUHJvY2Vzc0Nvbm5lY3Rpb246OkNyZWF0ZVBsdWdpbjo6UmVw
bHkocmVzdWx0KSwgMCkgfHwgIXJlc3VsdCkgeworICAgIHVpbnQzMl90IHJlbW90ZUxheWVyQ2xp
ZW50SUQgPSAwOworICAgIGlmICghbV9jb25uZWN0aW9uLT5jb25uZWN0aW9uKCktPnNlbmRTeW5j
KE1lc3NhZ2VzOjpXZWJQcm9jZXNzQ29ubmVjdGlvbjo6Q3JlYXRlUGx1Z2luKG1fcGx1Z2luSW5z
dGFuY2VJRCwgcGFyYW1ldGVycywgcGx1Z2luQ29udHJvbGxlci0+dXNlckFnZW50KCksIHBsdWdp
bkNvbnRyb2xsZXItPmlzUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpKSwgTWVzc2FnZXM6OldlYlBy
b2Nlc3NDb25uZWN0aW9uOjpDcmVhdGVQbHVnaW46OlJlcGx5KHJlc3VsdCwgcmVtb3RlTGF5ZXJD
bGllbnRJRCksIDApIHx8ICFyZXN1bHQpIHsKICAgICAgICAgbV9jb25uZWN0aW9uLT5yZW1vdmVQ
bHVnaW5Qcm94eSh0aGlzKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAorICAgIG1f
cmVtb3RlTGF5ZXJDbGllbnRJRCA9IHJlbW90ZUxheWVyQ2xpZW50SUQ7CiAgICAgbV9pc1N0YXJ0
ZWQgPSB0cnVlOwogCiAgICAgcmV0dXJuIHRydWU7CkBAIC0xMTEsNyArMTE0LDcgQEAgdm9pZCBQ
bHVnaW5Qcm94eTo6ZGVzdHJveSgpCiAKIHZvaWQgUGx1Z2luUHJveHk6OnBhaW50KEdyYXBoaWNz
Q29udGV4dCogZ3JhcGhpY3NDb250ZXh0LCBjb25zdCBJbnRSZWN0JiBkaXJ0eVJlY3QpCiB7Ci0g
ICAgaWYgKCFtX2JhY2tpbmdTdG9yZSkKKyAgICBpZiAoIW5lZWRzQmFja2luZ1N0b3JlKCkgfHwg
IW1fYmFja2luZ1N0b3JlKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoIW1fcGx1Z2luQmFj
a2luZ1N0b3JlQ29udGFpbnNWYWxpZERhdGEpIHsKQEAgLTE0MiwyMCArMTQ1LDE4IEBAIHZvaWQg
UGx1Z2luUHJveHk6OnBhaW50KEdyYXBoaWNzQ29udGV4dCogZ3JhcGhpY3NDb250ZXh0LCBjb25z
dCBJbnRSZWN0JiBkaXJ0eVJlCiAgICAgfQogfQogCi0jaWYgUExBVEZPUk0oTUFDKQotUGxhdGZv
cm1MYXllciogUGx1Z2luUHJveHk6OnBsdWdpbkxheWVyKCkKLXsKLSAgICBub3RJbXBsZW1lbnRl
ZCgpOwotICAgIHJldHVybiAwOwotfQotI2VuZGlmCi0KIHZvaWQgUGx1Z2luUHJveHk6Omdlb21l
dHJ5RGlkQ2hhbmdlKGNvbnN0IEludFJlY3QmIGZyYW1lUmVjdCwgY29uc3QgSW50UmVjdCYgY2xp
cFJlY3QpCiB7CiAgICAgQVNTRVJUKG1faXNTdGFydGVkKTsKIAogICAgIG1fZnJhbWVSZWN0ID0g
ZnJhbWVSZWN0OwogCisgICAgaWYgKCFuZWVkc0JhY2tpbmdTdG9yZSgpKSB7CisgICAgICAgIFNo
YXJlZE1lbW9yeTo6SGFuZGxlIHBsdWdpbkJhY2tpbmdTdG9yZUhhbmRsZTsKKyAgICAgICAgbV9j
b25uZWN0aW9uLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlBsdWdpbkNvbnRyb2xsZXJQ
cm94eTo6R2VvbWV0cnlEaWRDaGFuZ2UoZnJhbWVSZWN0LCBjbGlwUmVjdCwgcGx1Z2luQmFja2lu
Z1N0b3JlSGFuZGxlKSwgbV9wbHVnaW5JbnN0YW5jZUlEKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKwogICAgIGJvb2wgZGlkVXBkYXRlQmFja2luZ1N0b3JlID0gZmFsc2U7CiAgICAgaWYgKCFt
X2JhY2tpbmdTdG9yZSkgewogICAgICAgICBtX2JhY2tpbmdTdG9yZSA9IEJhY2tpbmdTdG9yZTo6
Y3JlYXRlKGZyYW1lUmVjdC5zaXplKCkpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luUHJveHkuaCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blByb3h5LmgKaW5kZXggOTNiYzdhMGI5OTIwNDQ5YTUzYTIxNTM4ODJmNDViMmFkOGEyYzdiNC4u
MzhjZjY3NjAwOWE3MDZjOTNlNzkxMWExYTc2OGMwNGQ1ODIyMzc5OSAxMDA2NDQKLS0tIGEvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuaAorKysgYi9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5oCkBAIC0zMSw2ICszMSwxNSBAQAogI2luY2x1ZGUg
IkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJQbHVnaW4uaCIKIAorI2lmIFBMQVRGT1JNKE1BQykK
KyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjaWZkZWYgX19PQkpDX18KK0BjbGFzcyBDQUxh
eWVyOworI2Vsc2UKK2NsYXNzIENBTGF5ZXI7CisjZW5kaWYKKyNlbmRpZgorCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgY2xhc3MgSFRUUEhlYWRlck1hcDsKIH0KQEAgLTkxLDYgKzEwMCw4IEBA
IHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIFBsdWdpbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIoKTsK
IAorICAgIGJvb2wgbmVlZHNCYWNraW5nU3RvcmUoKSBjb25zdDsKKwogICAgIC8vIE1lc3NhZ2Ug
aGFuZGxlcnMuCiAgICAgdm9pZCBsb2FkVVJMKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgU3Ry
aW5nJiBtZXRob2QsIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRhcmdl
dCwgY29uc3QgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCYgaGVhZGVyRmllbGRzLCBjb25zdCBWZWN0
b3I8dWludDhfdD4mIGh0dHBCb2R5LCBib29sIGFsbG93UG9wdXBzKTsKICAgICB2b2lkIHVwZGF0
ZShjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBwYWludGVkUmVjdCk7CkBAIC0xMjEsNiArMTMyLDEz
IEBAIHByaXZhdGU6CiAKICAgICAvLyBXaGV0aGVyIHdlJ3JlIGNhbGxlZCBpbnZhbGlkYXRlIGlu
IHJlc3BvbnNlIHRvIGFuIHVwZGF0ZSBjYWxsLCBhbmQgYXJlIG5vdyB3YWl0aW5nIGZvciBhIHBh
aW50IGNhbGwuCiAgICAgYm9vbCBtX3dhaXRpbmdGb3JQYWludEluUmVzcG9uc2VUb1VwZGF0ZTsK
KworICAgIC8vIFRoZSBjbGllbnQgSUQgZm9yIHRoZSBDQSBsYXllciBpbiB0aGUgcGx1Zy1pbiBw
cm9jZXNzLiBXaWxsIGJlIDAgaWYgdGhlIHBsdWctaW4gaXMgbm90IGEgQ0EgcGx1Zy1pbi4KKyAg
ICB1aW50MzJfdCBtX3JlbW90ZUxheWVyQ2xpZW50SUQ7CisKKyNpZiBQTEFURk9STShNQUMpCisg
ICAgUmV0YWluUHRyPENBTGF5ZXI+IG1fcGx1Z2luTGF5ZXI7CisjZW5kaWYKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
TGF5ZXJCYWNrZWREcmF3aW5nQXJlYS5jcHAgYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9M
YXllckJhY2tlZERyYXdpbmdBcmVhLmNwcAppbmRleCAwMzhiN2IzZjVmYTM3NGIwNDM3YWZiYTI5
NTNkNTQ3MTFhYTk4M2ZjLi5lYzBlNGYxMDE5MDdhMWNmNDYzMDBiNDAzNjJmNDViMDE3Y2RhNzcz
IDEwMDY0NAotLS0gYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllckJhY2tlZERyYXdp
bmdBcmVhLmNwcAorKysgYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllckJhY2tlZERy
YXdpbmdBcmVhLmNwcApAQCAtNDIsOSArNDIsNiBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIExheWVy
QmFja2VkRHJhd2luZ0FyZWE6OkxheWVyQmFja2VkRHJhd2luZ0FyZWEoRHJhd2luZ0FyZWFJRCBp
ZGVudGlmaWVyLCBXZWJQYWdlKiB3ZWJQYWdlKQogICAgIDogRHJhd2luZ0FyZWEoTGF5ZXJCYWNr
ZWREcmF3aW5nQXJlYVR5cGUsIGlkZW50aWZpZXIsIHdlYlBhZ2UpCiAgICAgLCBtX3N5bmNUaW1l
cihXZWJQcm9jZXNzOjpzaGFyZWQoKS5ydW5Mb29wKCksIHRoaXMsICZMYXllckJhY2tlZERyYXdp
bmdBcmVhOjpzeW5jQ29tcG9zaXRpbmdMYXllcnMpCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBIQVZF
KEhPU1RFRF9DT1JFX0FOSU1BVElPTikKLSAgICAsIG1fcmVtb3RlTGF5ZXJSZWYoMCkKLSNlbmRp
ZgogICAgICwgbV9hdHRhY2hlZChmYWxzZSkKICAgICAsIG1fc2hvdWxkUGFpbnQodHJ1ZSkKIHsK
ZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9MYXllckJhY2tlZERy
YXdpbmdBcmVhTWFjLm1tIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0xheWVyQmFj
a2VkRHJhd2luZ0FyZWFNYWMubW0KaW5kZXggZTkzNWE1ZjgxZTc5OGYyNGMxMDgwZjE4YjQxNWM1
ZWI4OTBkMTg4Zi4uYzdlZmE4ZTMxOWZmNDM5NzZmOGMwZWJlOGZhYTYxOGEzMmVhYzIyZSAxMDA2
NDQKLS0tIGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0xheWVyQmFja2VkRHJhd2lu
Z0FyZWFNYWMubW0KKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0xheWVyQmFj
a2VkRHJhd2luZ0FyZWFNYWMubW0KQEAgLTYxLDcgKzYxLDcgQEAgdm9pZCBMYXllckJhY2tlZERy
YXdpbmdBcmVhOjpwbGF0Zm9ybUNsZWFyKCkKIAogI2lmIEhBVkUoSE9TVEVEX0NPUkVfQU5JTUFU
SU9OKQogICAgIFdLQ0FSZW1vdGVMYXllckNsaWVudEludmFsaWRhdGUobV9yZW1vdGVMYXllclJl
Zi5nZXQoKSk7Ci0gICAgbV9yZW1vdGVMYXllclJlZiA9IDA7CisgICAgbV9yZW1vdGVMYXllclJl
ZiA9IG51bGxwdHI7CiAjZW5kaWYKIAogICAgIG1fYXR0YWNoZWQgPSBmYWxzZTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72871</attachid>
            <date>2010-11-03 14:17:19 -0700</date>
            <delta_ts>2010-11-03 14:42:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-48950-20101103141717.patch</filename>
            <type>text/plain</type>
            <size>26609</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
OTNkN2M4ZmYwYTcwZDVmZjBhODFlMjkzYjhlYTg2Njg0YmU0NWFiYS4uYWQ5ZGUzZjZmMjI5OTFm
MGIzNmE0YTlhZGQxNWQyNmI3OGJjOTAxNCAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsNSArMSw4MiBAQAogMjAxMC0xMS0wMyAgQW5k
ZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE91dCBvZiBwcm9jZXNzIHBsdWctaW5zIGRvbid0
IHN1cHBvcnQgdGhlIENBIGRyYXdpbmcgbW9kZWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4OTUwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NjI2
MDE5PgorCisgICAgICAgICogUGxhdGZvcm0vQ29yZUlQQy9IYW5kbGVNZXNzYWdlLmg6CisgICAg
ICAgIChDb3JlSVBDOjpjYWxsTWVtYmVyRnVuY3Rpb24pOgorICAgICAgICBBZGQgbmV3IG92ZXJs
b2FkLgorCisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Db250cm9sbGVyUHJveHk6OmluaXRpYWxpemUpOgor
ICAgICAgICBDYWxsIHBsYXRmb3JtSW5pdGlhbGl6ZSgpLgorCisgICAgICAgIChXZWJLaXQ6OlBs
dWdpbkNvbnRyb2xsZXJQcm94eTo6ZGVzdHJveSk6CisgICAgICAgIENhbGwgcGxhdGZvcm1EZXN0
cm95KCkuCisKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luQ29udHJvbGxlclByb3h5Ojppc0FjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKToKKyAgICAgICAgQXNzdW1lIHRoYXQgYWNjZWxlcmF0
ZWQgY29tcG9zaXRpbmcgaXMgYXZhaWxhYmxlIGlmIHdlIGhhdmUgYSByZW5kZXIgc2VydmVyIHBv
cnQuCisKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luQ29udHJvbGxlclByb3h5OjpnZW9tZXRyeURp
ZENoYW5nZSk6CisgICAgICAgIENhbGwgcGxhdGZvcm1HZW9tZXRyeURpZENoYW5nZSgpLgorCisg
ICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmg6CisgICAgICAgICogUGx1Z2lu
UHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NDb25uZWN0aW9uOjpjcmVhdGVQbHVnaW4pOgorICAgICAgICBQYXNzIGJhY2sgdGhlIHJl
bW90ZSBsYXllciBjbGllbnQgSUQuCisKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1dlYlByb2Nl
c3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluOgorICAgICAgICBBZGQgYSByZW1vdGVMYXllckNsaWVu
dElEIG91dCBwYXJhbWV0ZXIgdG8gQ3JlYXRlUGx1Z2luLgorCisgICAgICAgICogUGx1Z2luUHJv
Y2Vzcy9tYWMvUGx1Z2luQ29udHJvbGxlclByb3h5TWFjLm1tOiBBZGRlZC4KKyAgICAgICAgKFdl
YktpdDo6UGx1Z2luQ29udHJvbGxlclByb3h5OjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAgICAg
ICBJZiB0aGUgcGx1Zy1pbiBoYXMgYSBsYXllciwgY3JlYXRlIGEgcmVtb3RlIGxheWVyIGNsaWVu
dCBhbmQgYXNzb2NpYXRlIGl0IHdpdGggdGhlIGxheWVyLgorCisgICAgICAgIChXZWJLaXQ6OlBs
dWdpbkNvbnRyb2xsZXJQcm94eTo6cGxhdGZvcm1EZXN0cm95KToKKyAgICAgICAgSW52YWxpZGF0
ZSB0aGUgcmVtb3RlIGxheWVyIGNsaWVudC4KKworICAgICAgICAoV2ViS2l0OjpQbHVnaW5Db250
cm9sbGVyUHJveHk6OnJlbW90ZUxheWVyQ2xpZW50SUQpOgorICAgICAgICBSZXR1cm4gdGhlIHJl
bW90ZSBsYXllciBjbGllbnQgSUQgaWYgb25lIGV4aXN0cy4KKworICAgICAgICAoV2ViS2l0OjpQ
bHVnaW5Db250cm9sbGVyUHJveHk6OnBsYXRmb3JtR2VvbWV0cnlEaWRDaGFuZ2UpOgorICAgICAg
ICBVcGRhdGUgdGhlIGxheWVyIGJvdW5kcy4KKworICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgQWRkIG5ldyBmaWxlcy4KKworICAgICAgICAqIFdl
YlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvUGx1Z2luUHJveHlNYWMubW06IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm94eTo6cGx1Z2luTGF5ZXIpOgorICAgICAgICBDcmVh
dGUgYSByZW5kZXIgbGF5ZXIgaWYgbmVlZGVkLgorCisgICAgICAgIChXZWJLaXQ6OlBsdWdpblBy
b3h5OjpuZWVkc0JhY2tpbmdTdG9yZSk6CisgICAgICAgIFJldHVybiB3aGV0aGVyIHRoZSBwbHVn
LWluIG5lZWRzIGEgYmFja2luZyBzdG9yZS4gKEl0IGRvZXNuJ3QgbmVlZCBhIGJhY2tpbmcgc3Rv
cmUgaWYgaXQncyBhIENBIHBsdWctaW4pLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJveHk6OlBsdWdpblBy
b3h5KToKKyAgICAgICAgSW5pdGlhbGl6ZSBtX3JlbW90ZUxheWVyQ2xpZW50SUQuCisKKyAgICAg
ICAgKFdlYktpdDo6UGx1Z2luUHJveHk6OmluaXRpYWxpemUpOgorICAgICAgICBTZXQgbV9yZW1v
dGVMYXllckNsaWVudElELgorCisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb3h5OjpwYWludCk6
CisgICAgICAgIEJhaWwgaWYgdGhlIHBsdWctaW4gZG9lc24ndCBuZWVkIGEgYmFja2luZyBzdG9y
ZS4KKworICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm94eTo6Z2VvbWV0cnlEaWRDaGFuZ2UpOgor
ICAgICAgICBEb24ndCBjcmVhdGUgYSBiYWNraW5nIHN0b3JlIGlmIHRoZSBwbHVnLWluIGRvZXNu
J3QgbmVlZCBvbmUuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJCYWNrZWRE
cmF3aW5nQXJlYS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxheWVyQmFja2VkRHJhd2luZ0FyZWE6
OkxheWVyQmFja2VkRHJhd2luZ0FyZWEpOgorICAgICAgICBSZW1vdmUgUmV0YWluUHRyIGluaXRp
YWxpemF0aW9uLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9MYXllckJhY2tl
ZERyYXdpbmdBcmVhTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpMYXllckJhY2tlZERyYXdpbmdB
cmVhOjpwbGF0Zm9ybUNsZWFyKToKKyAgICAgICAgVXNlIG51bGxwdHIgaW5zdGVhZCBvZiAwLgor
CisyMDEwLTExLTAzICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKICAg
ICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgogCiAgICAgICAgIENyYXNoIHdoZW4gbGF5
b3V0IGluIHJlc3BvbnNlIHRvIHNldFNpemUgY2hhbmdlcyB0aGUgZHJhd2luZyBhcmVhCmRpZmYg
LS1naXQgYS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvSGFuZGxlTWVzc2FnZS5oIGIvV2ViS2l0
Mi9QbGF0Zm9ybS9Db3JlSVBDL0hhbmRsZU1lc3NhZ2UuaAppbmRleCA0ZjI3NTk4ZDk3NGE4YWNl
ZDI1YmRhZTgzM2NkNzYwNTNkMGU4M2Q3Li5lNDNjZmRhMmE5NTRmNjU0NGUwNjE4ZDJmMDk5NTRm
NjQ1ODk2OWQyIDEwMDY0NAotLS0gYS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvSGFuZGxlTWVz
c2FnZS5oCisrKyBiL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9IYW5kbGVNZXNzYWdlLmgKQEAg
LTEyNyw2ICsxMjcsMTIgQEAgdm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRz
NDxQMSwgUDIsIFAzLCBQND4mIGFyZ3MsIEFyZ3VtZW50czE8UjE+JgogICAgIChvYmplY3QtPipm
dW5jdGlvbikoYXJncy5hcmd1bWVudDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFyZ3VtZW50Mywg
YXJncy5hcmd1bWVudDQsIHJlcGx5QXJncy5hcmd1bWVudDEpOwogfQogCit0ZW1wbGF0ZTx0eXBl
bmFtZSBDLCB0eXBlbmFtZSBNRiwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQ
MywgdHlwZW5hbWUgUDQsIHR5cGVuYW1lIFIxLCB0eXBlbmFtZSBSMj4KK3ZvaWQgY2FsbE1lbWJl
ckZ1bmN0aW9uKGNvbnN0IEFyZ3VtZW50czQ8UDEsIFAyLCBQMywgUDQ+JiBhcmdzLCBBcmd1bWVu
dHMyPFIxLCBSMj4mIHJlcGx5QXJncywgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKK3sKKyAgICAo
b2JqZWN0LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1lbnQxLCBhcmdzLmFyZ3VtZW50MiwgYXJncy5h
cmd1bWVudDMsIGFyZ3MuYXJndW1lbnQ0LCByZXBseUFyZ3MuYXJndW1lbnQxLCByZXBseUFyZ3Mu
YXJndW1lbnQyKTsKK30KKyAgICAKIC8vIFZhcmlhZGljIGRpc3BhdGNoIGZ1bmN0aW9ucy4KIAog
dGVtcGxhdGU8dHlwZW5hbWUgQywgdHlwZW5hbWUgTUY+CmRpZmYgLS1naXQgYS9XZWJLaXQyL1Bs
dWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcCBiL1dlYktpdDIvUGx1Z2luUHJv
Y2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwCmluZGV4IDkxYTAwNTk3ZTFiN2MzNTgyZWU0
ZWM5Y2RmNzIyMGI3Njc2MWVkNzMuLjZiZWIyNWE5ZmVhY2Q1ZDQ1ODdhN2ExNjY1YmFiNDg3OGJj
OGM3NjMgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVy
UHJveHkuY3BwCisrKyBiL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJv
eHkuY3BwCkBAIC03NCw2ICs3NCw4IEBAIGJvb2wgUGx1Z2luQ29udHJvbGxlclByb3h5Ojppbml0
aWFsaXplKGNvbnN0IFBsdWdpbjo6UGFyYW1ldGVycyYgcGFyYW1ldGVycykKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIH0KIAorICAgIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOworCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKQEAgLTgzLDYgKzg1LDggQEAgdm9pZCBQbHVnaW5Db250cm9sbGVyUHJv
eHk6OmRlc3Ryb3koKQogCiAgICAgbV9wbHVnaW4tPmRlc3Ryb3koKTsKICAgICBtX3BsdWdpbiA9
IDA7CisKKyAgICBwbGF0Zm9ybURlc3Ryb3koKTsKIH0KIAogdm9pZCBQbHVnaW5Db250cm9sbGVy
UHJveHk6OnBhaW50KCkKQEAgLTE5Myw4ICsxOTcsNyBAQCB2b2lkIFBsdWdpbkNvbnRyb2xsZXJQ
cm94eTo6c2V0U3RhdHVzYmFyVGV4dChjb25zdCBXVEY6OlN0cmluZyYpCiAKIGJvb2wgUGx1Z2lu
Q29udHJvbGxlclByb3h5Ojppc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKCkKIHsKLSAg
ICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gUGx1Z2lu
UHJvY2Vzczo6c2hhcmVkKCkuY29tcG9zaXRpbmdSZW5kZXJTZXJ2ZXJQb3J0KCk7CiB9CiAKIHZv
aWQgUGx1Z2luQ29udHJvbGxlclByb3h5OjpwbHVnaW5Qcm9jZXNzQ3Jhc2hlZCgpCkBAIC0yNDUs
NiArMjQ4LDggQEAgdm9pZCBQbHVnaW5Db250cm9sbGVyUHJveHk6Omdlb21ldHJ5RGlkQ2hhbmdl
KGNvbnN0IEludFJlY3QmIGZyYW1lUmVjdCwgY29uc3QgSW4KICAgICB9CiAKICAgICBtX3BsdWdp
bi0+Z2VvbWV0cnlEaWRDaGFuZ2UoZnJhbWVSZWN0LCBjbGlwUmVjdCk7CisKKyAgICBwbGF0Zm9y
bUdlb21ldHJ5RGlkQ2hhbmdlKGZyYW1lUmVjdCwgY2xpcFJlY3QpOwogfQogCiB2b2lkIFBsdWdp
bkNvbnRyb2xsZXJQcm94eTo6ZGlkRXZhbHVhdGVKYXZhU2NyaXB0KHVpbnQ2NF90IHJlcXVlc3RJ
RCwgY29uc3QgU3RyaW5nJiByZXF1ZXN0VVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlc3VsdCkK
ZGlmZiAtLWdpdCBhL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHku
aCBiL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuaAppbmRleCAw
NmM1MzM4MWRhZGU0OTc4NWY1MzM3YmU2MGE2MzY0YjdiOTdmNjNlLi42OTM0MzI5MTlkMzY3MDEw
NmZmMDU1MjUyN2Q4YWIxNjVmNTM1MTlhIDEwMDY0NAotLS0gYS9XZWJLaXQyL1BsdWdpblByb2Nl
c3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmgKKysrIGIvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1Bs
dWdpbkNvbnRyb2xsZXJQcm94eS5oCkBAIC0zNSw2ICszNSwxMiBAQAogI2luY2x1ZGUgIlNoYXJl
ZE1lbW9yeS5oIgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogCisjaWYgUExBVEZPUk0o
TUFDKQorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKwordHlwZWRlZiBzdHJ1Y3QgX19XS0NB
UmVtb3RlTGF5ZXJDbGllbnRSZWYgKldLQ0FSZW1vdGVMYXllckNsaWVudFJlZjsKKyNlbmRpZgor
CiBuYW1lc3BhY2UgQ29yZUlQQyB7CiAgICAgY2xhc3MgRGF0YVJlZmVyZW5jZTsKIH0KQEAgLTU5
LDYgKzY1LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFJlY2VpdmVQbHVnaW5Db250cm9sbGVy
UHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwogICAgIENvcmVJUEM6OlN5bmNSZXBseU1vZGUgZGlk
UmVjZWl2ZVN5bmNQbHVnaW5Db250cm9sbGVyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2RlciopOwogCisjaWYgUExBVEZPUk0oTUFDKQorICAgIHVpbnQzMl90
IHJlbW90ZUxheWVyQ2xpZW50SUQoKSBjb25zdDsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIFBs
dWdpbkNvbnRyb2xsZXJQcm94eShXZWJQcm9jZXNzQ29ubmVjdGlvbiogY29ubmVjdGlvbiwgdWlu
dDY0X3QgcGx1Z2luSW5zdGFuY2VJRCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGJvb2wgaXNQ
cml2YXRlQnJvd3NpbmdFbmFibGVkKTsKIApAQCAtMTA2LDYgKzExNiwxMCBAQCBwcml2YXRlOgog
I2VuZGlmCiAgICAgdm9pZCBwcml2YXRlQnJvd3NpbmdTdGF0ZUNoYW5nZWQoYm9vbCk7CiAKKyAg
ICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOworICAgIHZvaWQgcGxhdGZvcm1EZXN0cm95KCk7
CisgICAgdm9pZCBwbGF0Zm9ybUdlb21ldHJ5RGlkQ2hhbmdlKGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmIGZyYW1lUmVjdCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY2xpcFJlY3QpOworCiAgICAg
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24qIG1fY29ubmVjdGlvbjsKICAgICB1aW50NjRfdCBtX3BsdWdp
bkluc3RhbmNlSUQ7CiAKQEAgLTEzMCw2ICsxNDQsMTEgQEAgcHJpdmF0ZToKIAogICAgIC8vIFRo
ZSBiYWNraW5nIHN0b3JlIHRoYXQgdGhpcyBwbHVnLWluIGRyYXdzIGludG8uCiAgICAgUmVmUHRy
PEJhY2tpbmdTdG9yZT4gbV9iYWNraW5nU3RvcmU7CisKKyNpZiBQTEFURk9STShNQUMpCisgICAg
Ly8gRm9yIENBIHBsdWctaW5zLCB0aGlzIGhvbGRzIHRoZSBpbmZvcm1hdGlvbiBuZWVkZWQgdG8g
ZXhwb3J0IHRoZSBsYXllciBoaWVyYXJjaHkgdG8gdGhlIFVJIHByb2Nlc3MuCisgICAgUmV0YWlu
UHRyPFdLQ0FSZW1vdGVMYXllckNsaWVudFJlZj4gbV9yZW1vdGVMYXllckNsaWVudDsKKyNlbmRp
ZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9XZWJLaXQyL1BsdWdp
blByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5oIGIvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblBy
b2Nlc3MuaAppbmRleCBjODU1ZjVhYTRmMzNlNWIxYTg4ZjQ0NmJkNDNiNGY0YWZmZmIzNTE5Li5k
ZmM4M2FiMTExMzk5ZWM4NjdkYjZjMDhjYjIyMWU0NDY1N2Q2NmM4IDEwMDY0NAotLS0gYS9XZWJL
aXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5oCisrKyBiL1dlYktpdDIvUGx1Z2luUHJv
Y2Vzcy9QbHVnaW5Qcm9jZXNzLmgKQEAgLTQ3LDYgKzQ3LDEwIEBAIHB1YmxpYzoKIAogICAgIE5l
dHNjYXBlUGx1Z2luTW9kdWxlKiBuZXRzY2FwZVBsdWdpbk1vZHVsZSgpIGNvbnN0IHsgcmV0dXJu
IG1fcGx1Z2luTW9kdWxlLmdldCgpOyB9CiAKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpICYmIFBMQVRGT1JNKE1BQykKKyAgICBtYWNoX3BvcnRfdCBjb21wb3NpdGluZ1JlbmRlclNl
cnZlclBvcnQoKSBjb25zdCB7IHJldHVybiBtX2NvbXBvc2l0aW5nUmVuZGVyU2VydmVyUG9ydDsg
fQorI2VuZGlmCisKIHByaXZhdGU6CiAgICAgUGx1Z2luUHJvY2VzcygpOwogICAgIH5QbHVnaW5Q
cm9jZXNzKCk7CmRpZmYgLS1naXQgYS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24uY3BwIGIvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9u
LmNwcAppbmRleCAzNTM5NDU0N2YxNTdjNjY3OWE3ZDRhMWEyZTg2OTY5Zjk5MTgwMzVmLi4wMDVj
NzJjOTQ4ZTRlMGI1NTJhNGZjMWVjYTkwZDJhMTk0NDRiZjk3IDEwMDY0NAotLS0gYS9XZWJLaXQy
L1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyBiL1dlYktpdDIvUGx1
Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTE0NSw3ICsxNDUsNyBAQCB2
b2lkIFdlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUAogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQuCiB9CiAKLXZv
aWQgV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZVBsdWdpbih1aW50NjRfdCBwbHVnaW5JbnN0
YW5jZUlELCBjb25zdCBQbHVnaW46OlBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIGNvbnN0IFN0cmlu
ZyYgdXNlckFnZW50LCBib29sIGlzUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCwgYm9vbCYgcmVzdWx0
KQordm9pZCBXZWJQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlUGx1Z2luKHVpbnQ2NF90IHBsdWdp
bkluc3RhbmNlSUQsIGNvbnN0IFBsdWdpbjo6UGFyYW1ldGVycyYgcGFyYW1ldGVycywgY29uc3Qg
U3RyaW5nJiB1c2VyQWdlbnQsIGJvb2wgaXNQcml2YXRlQnJvd3NpbmdFbmFibGVkLCBib29sJiBy
ZXN1bHQsIHVpbnQzMl90JiByZW1vdGVMYXllckNsaWVudElEKQogewogICAgIE93blB0cjxQbHVn
aW5Db250cm9sbGVyUHJveHk+IHBsdWdpbkNvbnRyb2xsZXJQcm94eSA9IFBsdWdpbkNvbnRyb2xs
ZXJQcm94eTo6Y3JlYXRlKHRoaXMsIHBsdWdpbkluc3RhbmNlSUQsIHVzZXJBZ2VudCwgaXNQcml2
YXRlQnJvd3NpbmdFbmFibGVkKTsKIApAQCAtMTU4LDEwICsxNTgsMTMgQEAgdm9pZCBXZWJQcm9j
ZXNzQ29ubmVjdGlvbjo6Y3JlYXRlUGx1Z2luKHVpbnQ2NF90IHBsdWdpbkluc3RhbmNlSUQsIGNv
bnN0IFBsdWdpbjoKICAgICAvLyBOb3cgdHJ5IHRvIGluaXRpYWxpemUgdGhlIHBsdWctaW4uCiAg
ICAgcmVzdWx0ID0gcGx1Z2luQ29udHJvbGxlclByb3h5UHRyLT5pbml0aWFsaXplKHBhcmFtZXRl
cnMpOwogCi0gICAgaWYgKCFyZXN1bHQpIHsKLSAgICAgICAgLy8gV2UgZmFpbGVkIHRvIGluaXRp
YWxpemUsIHJlbW92ZSB0aGUgcGx1Zy1pbiBjb250cm9sbGVyLiBUaGlzIGNvdWxkIGNhdXNlIHVz
IHRvIGJlIGRlbGV0ZWQuCi0gICAgICAgIHJlbW92ZVBsdWdpbkNvbnRyb2xsZXJQcm94eShwbHVn
aW5Db250cm9sbGVyUHJveHlQdHIpOworICAgIGlmIChyZXN1bHQpIHsKKyAgICAgICAgcmVtb3Rl
TGF5ZXJDbGllbnRJRCA9IHBsdWdpbkNvbnRyb2xsZXJQcm94eVB0ci0+cmVtb3RlTGF5ZXJDbGll
bnRJRCgpOworICAgICAgICByZXR1cm47CiAgICAgfQorCisgICAgLy8gV2UgZmFpbGVkIHRvIGlu
aXRpYWxpemUsIHJlbW92ZSB0aGUgcGx1Zy1pbiBjb250cm9sbGVyLiBUaGlzIGNvdWxkIGNhdXNl
IHVzIHRvIGJlIGRlbGV0ZWQuCisgICAgcmVtb3ZlUGx1Z2luQ29udHJvbGxlclByb3h5KHBsdWdp
bkNvbnRyb2xsZXJQcm94eVB0cik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmggYi9XZWJL
aXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRleCA4NTU1NDM1ZTM1
ZGZjNDVhMGQ2MDEwMzEwMmU2ZDJlNWZiNTY5YjQzLi5lMDRiODQyMDBkMDg4OWVlZTY2YTEyNGFj
ZGZhOTAzYmMzOTNiOWI3IDEwMDY0NAotLS0gYS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24uaAorKysgYi9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24uaApAQCAtNjQsNyArNjQsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gTWVzc2FnZSBo
YW5kbGVycy4KICAgICBDb3JlSVBDOjpTeW5jUmVwbHlNb2RlIGRpZFJlY2VpdmVTeW5jV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb25NZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rl
ciopOwotICAgIHZvaWQgY3JlYXRlUGx1Z2luKHVpbnQ2NF90IHBsdWdpbkluc3RhbmNlSUQsIGNv
bnN0IFBsdWdpbjo6UGFyYW1ldGVycyYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBib29sIGlz
UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCwgYm9vbCYgcmVzdWx0KTsKKyAgICB2b2lkIGNyZWF0ZVBs
dWdpbih1aW50NjRfdCBwbHVnaW5JbnN0YW5jZUlELCBjb25zdCBQbHVnaW46OlBhcmFtZXRlcnMm
LCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgYm9vbCBpc1ByaXZhdGVCcm93c2luZ0VuYWJsZWQs
IGJvb2wmIHJlc3VsdCwgdWludDMyX3QmIHJlbW90ZUxheWVyQ2xpZW50SUQpOwogICAgIHZvaWQg
ZGVzdHJveVBsdWdpbih1aW50NjRfdCBwbHVnaW5JbnN0YW5jZUlEKTsKIAogICAgIFJlZlB0cjxD
b3JlSVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CmRpZmYgLS1naXQgYS9XZWJLaXQyL1Bs
dWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9XZWJLaXQyL1Bs
dWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggOGZhNDk1
MjY4ZDFiZTNiZjhkMjc4MmRkNDUyMTVmMGM2MWUwMDNmNS4uYzMxMTQwMDEyZmJhNGRkNjdiODAw
YmM5YTVmOTU5ODE1MzUyNmZiYSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dl
YlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisrKyBiL1dlYktpdDIvUGx1Z2luUHJvY2Vz
cy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMjQsNyArMjQsNyBAQAogCiBt
ZXNzYWdlcyAtPiBXZWJQcm9jZXNzQ29ubmVjdGlvbiB7CiAgICAgIyBDcmVhdGVzIGEgcGx1Zy1p
biBpbnN0YW5jZSB3aXRoIHRoZSBnaXZlbiBpbnN0YW5jZSBJRC4KLSAgICBDcmVhdGVQbHVnaW4o
dWludDY0X3QgcGx1Z2luSW5zdGFuY2VJRCwgV2ViS2l0OjpQbHVnaW46OlBhcmFtZXRlcnMgcGFy
YW1ldGVycywgV1RGOjpTdHJpbmcgdXNlckFnZW50LCBib29sIGlzUHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZCkgLT4gKGJvb2wgcmVzdWx0KQorICAgIENyZWF0ZVBsdWdpbih1aW50NjRfdCBwbHVnaW5J
bnN0YW5jZUlELCBXZWJLaXQ6OlBsdWdpbjo6UGFyYW1ldGVycyBwYXJhbWV0ZXJzLCBXVEY6OlN0
cmluZyB1c2VyQWdlbnQsIGJvb2wgaXNQcml2YXRlQnJvd3NpbmdFbmFibGVkKSAtPiAoYm9vbCBy
ZXN1bHQsIHVpbnQzMl90IHJlbW90ZUxheWVyQ2xpZW50SUQpCiAKICAgICAjIERlc3Ryb3lzIHRo
ZSBwbHVnLWluIGluc3RhbmNlIHdpdGggdGhlIGdpdmVuIGluc3RhbmNlIElELgogICAgIERlc3Ry
b3lQbHVnaW4odWludDY0X3QgcGx1Z2luSW5zdGFuY2VJRCkgLT4gKCkKZGlmZiAtLWdpdCBhL1dl
YktpdDIvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luQ29udHJvbGxlclByb3h5TWFjLm1tIGIvV2Vi
S2l0Mi9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Db250cm9sbGVyUHJveHlNYWMubW0KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYWQ3MTQzYmQyN2E1N2M4MjNiNzkxODU4NDMzM2M5ZThhYjg5MjIyOQotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luQ29udHJvbGxlclByb3h5
TWFjLm1tCkBAIC0wLDAgKzEsODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKFBMVUdJTl9Q
Uk9DRVNTKQorCisjaW5jbHVkZSAiUGx1Z2luQ29udHJvbGxlclByb3h5LmgiCisKKyNpbmNsdWRl
IDxRdWFydHpDb3JlL1F1YXJ0ekNvcmUuaD4KKyNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzLmgiCisj
aW5jbHVkZSAiV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBQbHVnaW5Db250cm9sbGVyUHJveHk6
OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCit7CisgICAgQ0FMYXllciogcGxhdGZvcm1MYXllciA9IG1f
cGx1Z2luLT5wbHVnaW5MYXllcigpOworICAgIGlmICghcGxhdGZvcm1MYXllcikKKyAgICAgICAg
cmV0dXJuOworCisgICAgQVNTRVJUKCFtX3JlbW90ZUxheWVyQ2xpZW50KTsKKworICAgIG1fcmVt
b3RlTGF5ZXJDbGllbnQgPSBXS0NBUmVtb3RlTGF5ZXJDbGllbnRNYWtlV2l0aFNlcnZlclBvcnQo
UGx1Z2luUHJvY2Vzczo6c2hhcmVkKCkuY29tcG9zaXRpbmdSZW5kZXJTZXJ2ZXJQb3J0KCkpOwor
ICAgIEFTU0VSVChtX3JlbW90ZUxheWVyQ2xpZW50KTsKKworICAgIFdLQ0FSZW1vdGVMYXllckNs
aWVudFNldExheWVyKG1fcmVtb3RlTGF5ZXJDbGllbnQuZ2V0KCksIHBsYXRmb3JtTGF5ZXIpOwor
fQorCit2b2lkIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6cGxhdGZvcm1EZXN0cm95KCkKK3sKKyAg
ICBpZiAoIW1fcmVtb3RlTGF5ZXJDbGllbnQpCisgICAgICAgIHJldHVybjsKKworICAgIFdLQ0FS
ZW1vdGVMYXllckNsaWVudEludmFsaWRhdGUobV9yZW1vdGVMYXllckNsaWVudC5nZXQoKSk7Cisg
ICAgbV9yZW1vdGVMYXllckNsaWVudCA9IG51bGxwdHI7Cit9CisKK3VpbnQzMl90IFBsdWdpbkNv
bnRyb2xsZXJQcm94eTo6cmVtb3RlTGF5ZXJDbGllbnRJRCgpIGNvbnN0Cit7CisgICAgaWYgKCFt
X3JlbW90ZUxheWVyQ2xpZW50KQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBXS0NB
UmVtb3RlTGF5ZXJDbGllbnRHZXRDbGllbnRJZChtX3JlbW90ZUxheWVyQ2xpZW50LmdldCgpKTsK
K30KKwordm9pZCBQbHVnaW5Db250cm9sbGVyUHJveHk6OnBsYXRmb3JtR2VvbWV0cnlEaWRDaGFu
Z2UoY29uc3QgSW50UmVjdCYgZnJhbWVSZWN0LCBjb25zdCBJbnRSZWN0JikKK3sKKyAgICBDQUxh
eWVyKiBwbHVnaW5MYXllciA9IG1fcGx1Z2luLT5wbHVnaW5MYXllcigpOworCisgICAgLy8gV2Ug
ZG9uJ3Qgd2FudCB0byBhbmltYXRlIHRvIHRoZSBuZXcgc2l6ZSBzbyB3ZSBkaXNhYmxlIGFjdGlv
bnMgZm9yIHRoaXMgdHJhbnNhY3Rpb24uCisgICAgW0NBVHJhbnNhY3Rpb24gYmVnaW5dOworICAg
IFtDQVRyYW5zYWN0aW9uIHNldFZhbHVlOltOU051bWJlciBudW1iZXJXaXRoQm9vbDpZRVNdIGZv
cktleTprQ0FUcmFuc2FjdGlvbkRpc2FibGVBY3Rpb25zXTsKKyAgICBbcGx1Z2luTGF5ZXIgc2V0
RnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCBmcmFtZVJlY3Qud2lkdGgoKSwgZnJhbWVSZWN0LmhlaWdo
dCgpKV07CisgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoUExVR0lOX1BST0NFU1MpCmRpZmYgLS1naXQgYS9X
ZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYktpdDIvV2ViS2l0
Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDNiZmI1MjY3ZGNkZTZlMTljYjkyYmI0
NDMzZjU4YmViNThjOTYxMmMuLmFhNDQ3NjFhMTgwNzgzOGRjMTUwNzVlMTk5YjY2MTc4NDAxYWI4
NGUgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC05Niw2
ICs5Niw4IEBACiAJCTFBMkQ5MEJCMTI4MUM5MzEwMDFFQjk2MiAvKiBQbHVnaW5Qcm9jZXNzUHJv
eHlNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
QTJEOTBCQTEyODFDOTMxMDAxRUI5NjIgLyogUGx1Z2luUHJvY2Vzc1Byb3h5TWFjLm1tICovOyB9
OwogCQkxQTJEOTBEMjEyODFDOTY2MDAxRUI5NjIgLyogUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUEyRDkwRDAxMjgxQzk2NjAwMUVCOTYyIC8qIFBsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuaCAqLzsgfTsKIAkJMUEyRDkwRDMxMjgxQzk2NjAwMUVCOTYyIC8qIFBsdWdpblByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUEyRDkwRDExMjgxQzk2NjAwMUVCOTYyIC8qIFBsdWdpblByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuY3BwICovOyB9OworCQkxQTJEOTFBNjEyODFENzM5MDAxRUI5NjIgLyog
UGx1Z2luQ29udHJvbGxlclByb3h5TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUEyRDkxQTUxMjgxRDczOTAwMUVCOTYyIC8qIFBsdWdpbkNvbnRy
b2xsZXJQcm94eU1hYy5tbSAqLzsgfTsKKwkJMUEyRDkyMjExMjgxREMxQjAwMUVCOTYyIC8qIFBs
dWdpblByb3h5TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUEyRDkyMjAxMjgxREMxQjAwMUVCOTYyIC8qIFBsdWdpblByb3h5TWFjLm1tICovOyB9
OwogCQkxQTMwMDY2RTExMTBGNEY3MDAzMTkzN0MgLyogUmVzcG9uc2l2ZW5lc3NUaW1lci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEzMDA2NkMxMTEw
RjRGNzAwMzE5MzdDIC8qIFJlc3BvbnNpdmVuZXNzVGltZXIuaCAqLzsgfTsKIAkJMUEzMEVBQzYx
MTVEN0RBMzAwNTNFOTM3IC8qIENvbm5lY3Rpb25NYWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEzMEVBQzUxMTVEN0RBMzAwNTNFOTM3IC8qIENv
bm5lY3Rpb25NYWMuY3BwICovOyB9OwogCQkxQTNERDFGRDEyNUU1OUYzMDA0NTE1RTYgLyogV2Vi
RmluZENsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxQTNERDFGQzEyNUU1OUYzMDA0NTE1RTYgLyogV2ViRmluZENsaWVudC5jcHAgKi87IH07
CkBAIC02MTMsNiArNjE1LDggQEAKIAkJMUEyRDkwQkExMjgxQzkzMTAwMUVCOTYyIC8qIFBsdWdp
blByb2Nlc3NQcm94eU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFBsdWdpblByb2Nlc3NQcm94eU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMUEyRDkwRDAxMjgxQzk2NjAwMUVCOTYyIC8qIFBsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGx1Z2luUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTJEOTBE
MTEyODFDOTY2MDAxRUI5NjIgLyogUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbHVnaW5Qcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUEyRDkxQTUx
MjgxRDczOTAwMUVCOTYyIC8qIFBsdWdpbkNvbnRyb2xsZXJQcm94eU1hYy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBsdWdpbkNvbnRyb2xsZXJQcm94eU1hYy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUEyRDkyMjAxMjgxREMxQjAwMUVCOTYy
IC8qIFBsdWdpblByb3h5TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gUGx1Z2luUHJveHlNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFB
MzAwNjZDMTExMEY0RjcwMDMxOTM3QyAvKiBSZXNwb25zaXZlbmVzc1RpbWVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlc3BvbnNpdmVuZXNzVGltZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUEzMEVBQzUxMTVEN0RBMzAwNTNFOTM3IC8qIENvbm5lY3Rp
b25NYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29ubmVjdGlv
bk1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBM0REMUZDMTI1RTU5RjMw
MDQ1MTVFNiAvKiBXZWJGaW5kQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdlYkZpbmRDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTE3NSw2ICsxMTc5LDcgQEAKIAkJMUEwRUM3RkQxMjRCRDQwMjAwN0VGNEE1IC8qIG1hYyAq
LyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJMUEyRDkxQTUx
MjgxRDczOTAwMUVCOTYyIC8qIFBsdWdpbkNvbnRyb2xsZXJQcm94eU1hYy5tbSAqLywKIAkJCQkx
QTBFQzgwMjEyNEJENDFFMDA3RUY0QTUgLyogUGx1Z2luUHJvY2Vzc01haW5NYWMubW0gKi8sCiAJ
CQkpOwogCQkJcGF0aCA9IG1hYzsKQEAgLTEyNzUsNiArMTI4MCw3IEBACiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTFBRTVCN0Y5MTFFN0FFRDIwMEJBNjc2NyAvKiBO
ZXRzY2FwZVBsdWdpbk1hYy5tbSAqLywKKwkJCQkxQTJEOTIyMDEyODFEQzFCMDAxRUI5NjIgLyog
UGx1Z2luUHJveHlNYWMubW0gKi8sCiAJCQkpOwogCQkJcGF0aCA9IG1hYzsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CkBAIC0yNjMwLDYgKzI2MzYsOCBAQAogCQkJCTFDOEUyQTM1MTI3Nzg1
MjQwMEJDN0JEMCAvKiBXZWJJbnNwZWN0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMUEyRDkwQkIxMjgxQzkzMTAwMUVCOTYyIC8qIFBsdWdpblByb2Nlc3NQcm94eU1h
Yy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBMkQ5MEQzMTI4MUM5NjYwMDFFQjk2MiAvKiBQbHVn
aW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFBMkQ5
MUE2MTI4MUQ3MzkwMDFFQjk2MiAvKiBQbHVnaW5Db250cm9sbGVyUHJveHlNYWMubW0gaW4gU291
cmNlcyAqLywKKwkJCQkxQTJEOTIyMTEyODFEQzFCMDAxRUI5NjIgLyogUGx1Z2luUHJveHlNYWMu
bW0gaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L05ldHNjYXBlL21hYy9QbHVnaW5Qcm94eU1hYy5tbSBiL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL05ldHNjYXBlL21hYy9QbHVnaW5Qcm94eU1hYy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZWNmN2I5ZjY0
ZTRiMmZjMGIxNjJmN2I5OTdkNTAzZjk1N2VjNzFkCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL1BsdWdpblByb3h5TWFjLm1tCkBAIC0w
LDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQorCisj
aW5jbHVkZSAiUGx1Z2luUHJveHkuaCIKKworI2luY2x1ZGUgPFdlYktpdFN5c3RlbUludGVyZmFj
ZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUGxhdGZvcm1MYXllciogUGx1Z2luUHJveHk6
OnBsdWdpbkxheWVyKCkKK3sKKyAgICBpZiAoIW1fcGx1Z2luTGF5ZXIgJiYgbV9yZW1vdGVMYXll
ckNsaWVudElEKQorICAgICAgICBtX3BsdWdpbkxheWVyID0gV0tNYWtlUmVuZGVyTGF5ZXIobV9y
ZW1vdGVMYXllckNsaWVudElEKTsKKworICAgIHJldHVybiBtX3BsdWdpbkxheWVyLmdldCgpOwor
fQorCitib29sIFBsdWdpblByb3h5OjpuZWVkc0JhY2tpbmdTdG9yZSgpIGNvbnN0Cit7CisgICAg
cmV0dXJuICFtX3JlbW90ZUxheWVyQ2xpZW50SUQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYgLy8gRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuY3BwIGIvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luUHJveHkuY3BwCmluZGV4IGIwNzQ1MDc3MzkxNGE2ZjBjOGQ0MGY4YjYy
Y2QwNDc4OGYxNzdjYTYuLjk4M2Q0MGU4OTFlNWJkYmI4ZmZlMTA2MTYwZDk4NmNlNmMyM2U1MTAg
MTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5LmNwcAor
KysgYi9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5jcHAKQEAgLTYyLDYg
KzYyLDcgQEAgUGx1Z2luUHJveHk6OlBsdWdpblByb3h5KFBhc3NSZWZQdHI8UGx1Z2luUHJvY2Vz
c0Nvbm5lY3Rpb24+IGNvbm5lY3Rpb24pCiAgICAgLCBtX3BsdWdpbkJhY2tpbmdTdG9yZUNvbnRh
aW5zVmFsaWREYXRhKGZhbHNlKQogICAgICwgbV9pc1N0YXJ0ZWQoZmFsc2UpCiAgICAgLCBtX3dh
aXRpbmdGb3JQYWludEluUmVzcG9uc2VUb1VwZGF0ZShmYWxzZSkKKyAgICAsIG1fcmVtb3RlTGF5
ZXJDbGllbnRJRCgwKQogewogfQogCkBAIC04OSwxMSArOTAsMTMgQEAgYm9vbCBQbHVnaW5Qcm94
eTo6aW5pdGlhbGl6ZShQbHVnaW5Db250cm9sbGVyKiBwbHVnaW5Db250cm9sbGVyLCBjb25zdCBQ
YXJhbWV0ZXIKICAgICAvLyBBc2sgdGhlIHBsdWctaW4gcHJvY2VzcyB0byBjcmVhdGUgYSBwbHVn
LWluLgogICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CiAKLSAgICBpZiAoIW1fY29ubmVjdGlvbi0+
Y29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUHJvY2Vzc0Nvbm5lY3Rpb246OkNy
ZWF0ZVBsdWdpbihtX3BsdWdpbkluc3RhbmNlSUQsIHBhcmFtZXRlcnMsIHBsdWdpbkNvbnRyb2xs
ZXItPnVzZXJBZ2VudCgpLCBwbHVnaW5Db250cm9sbGVyLT5pc1ByaXZhdGVCcm93c2luZ0VuYWJs
ZWQoKSksIE1lc3NhZ2VzOjpXZWJQcm9jZXNzQ29ubmVjdGlvbjo6Q3JlYXRlUGx1Z2luOjpSZXBs
eShyZXN1bHQpLCAwKSB8fCAhcmVzdWx0KSB7CisgICAgdWludDMyX3QgcmVtb3RlTGF5ZXJDbGll
bnRJRCA9IDA7CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24tPmNvbm5lY3Rpb24oKS0+c2VuZFN5bmMo
TWVzc2FnZXM6OldlYlByb2Nlc3NDb25uZWN0aW9uOjpDcmVhdGVQbHVnaW4obV9wbHVnaW5JbnN0
YW5jZUlELCBwYXJhbWV0ZXJzLCBwbHVnaW5Db250cm9sbGVyLT51c2VyQWdlbnQoKSwgcGx1Z2lu
Q29udHJvbGxlci0+aXNQcml2YXRlQnJvd3NpbmdFbmFibGVkKCkpLCBNZXNzYWdlczo6V2ViUHJv
Y2Vzc0Nvbm5lY3Rpb246OkNyZWF0ZVBsdWdpbjo6UmVwbHkocmVzdWx0LCByZW1vdGVMYXllckNs
aWVudElEKSwgMCkgfHwgIXJlc3VsdCkgewogICAgICAgICBtX2Nvbm5lY3Rpb24tPnJlbW92ZVBs
dWdpblByb3h5KHRoaXMpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCisgICAgbV9y
ZW1vdGVMYXllckNsaWVudElEID0gcmVtb3RlTGF5ZXJDbGllbnRJRDsKICAgICBtX2lzU3RhcnRl
ZCA9IHRydWU7CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTExMSw3ICsxMTQsNyBAQCB2b2lkIFBs
dWdpblByb3h5OjpkZXN0cm95KCkKIAogdm9pZCBQbHVnaW5Qcm94eTo6cGFpbnQoR3JhcGhpY3ND
b250ZXh0KiBncmFwaGljc0NvbnRleHQsIGNvbnN0IEludFJlY3QmIGRpcnR5UmVjdCkKIHsKLSAg
ICBpZiAoIW1fYmFja2luZ1N0b3JlKQorICAgIGlmICghbmVlZHNCYWNraW5nU3RvcmUoKSB8fCAh
bV9iYWNraW5nU3RvcmUpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmICghbV9wbHVnaW5CYWNr
aW5nU3RvcmVDb250YWluc1ZhbGlkRGF0YSkgewpAQCAtMTQyLDIwICsxNDUsMTggQEAgdm9pZCBQ
bHVnaW5Qcm94eTo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBncmFwaGljc0NvbnRleHQsIGNvbnN0
IEludFJlY3QmIGRpcnR5UmUKICAgICB9CiB9CiAKLSNpZiBQTEFURk9STShNQUMpCi1QbGF0Zm9y
bUxheWVyKiBQbHVnaW5Qcm94eTo6cGx1Z2luTGF5ZXIoKQotewotICAgIG5vdEltcGxlbWVudGVk
KCk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0jZW5kaWYKLQogdm9pZCBQbHVnaW5Qcm94eTo6Z2VvbWV0
cnlEaWRDaGFuZ2UoY29uc3QgSW50UmVjdCYgZnJhbWVSZWN0LCBjb25zdCBJbnRSZWN0JiBjbGlw
UmVjdCkKIHsKICAgICBBU1NFUlQobV9pc1N0YXJ0ZWQpOwogCiAgICAgbV9mcmFtZVJlY3QgPSBm
cmFtZVJlY3Q7CiAKKyAgICBpZiAoIW5lZWRzQmFja2luZ1N0b3JlKCkpIHsKKyAgICAgICAgU2hh
cmVkTWVtb3J5OjpIYW5kbGUgcGx1Z2luQmFja2luZ1N0b3JlSGFuZGxlOworICAgICAgICBtX2Nv
bm5lY3Rpb24tPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6UGx1Z2luQ29udHJvbGxlclBy
b3h5OjpHZW9tZXRyeURpZENoYW5nZShmcmFtZVJlY3QsIGNsaXBSZWN0LCBwbHVnaW5CYWNraW5n
U3RvcmVIYW5kbGUpLCBtX3BsdWdpbkluc3RhbmNlSUQpOworICAgICAgICByZXR1cm47CisgICAg
fQorCiAgICAgYm9vbCBkaWRVcGRhdGVCYWNraW5nU3RvcmUgPSBmYWxzZTsKICAgICBpZiAoIW1f
YmFja2luZ1N0b3JlKSB7CiAgICAgICAgIG1fYmFja2luZ1N0b3JlID0gQmFja2luZ1N0b3JlOjpj
cmVhdGUoZnJhbWVSZWN0LnNpemUoKSk7CmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5Qcm94eS5oIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
UHJveHkuaAppbmRleCA5M2JjN2EwYjk5MjA0NDlhNTNhMjE1Mzg4MmY0NWIyYWQ4YTJjN2I0Li4z
OGNmNjc2MDA5YTcwNmM5M2U3OTExYTFhNzY4YzA0ZDU4MjIzNzk5IDEwMDY0NAotLS0gYS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5oCisrKyBiL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5LmgKQEAgLTMxLDYgKzMxLDE1IEBACiAjaW5jbHVkZSAi
Q29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIlBsdWdpbi5oIgogCisjaWYgUExBVEZPUk0oTUFDKQor
I2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpZmRlZiBfX09CSkNfXworQGNsYXNzIENBTGF5
ZXI7CisjZWxzZQorY2xhc3MgQ0FMYXllcjsKKyNlbmRpZgorI2VuZGlmCisKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICBjbGFzcyBIVFRQSGVhZGVyTWFwOwogfQpAQCAtOTEsNiArMTAwLDggQEAg
cHJpdmF0ZToKIAogICAgIHZpcnR1YWwgUGx1Z2luQ29udHJvbGxlciogY29udHJvbGxlcigpOwog
CisgICAgYm9vbCBuZWVkc0JhY2tpbmdTdG9yZSgpIGNvbnN0OworCiAgICAgLy8gTWVzc2FnZSBo
YW5kbGVycy4KICAgICB2b2lkIGxvYWRVUkwodWludDY0X3QgcmVxdWVzdElELCBjb25zdCBTdHJp
bmcmIG1ldGhvZCwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IFN0cmluZyYgdGFyZ2V0
LCBjb25zdCBXZWJDb3JlOjpIVFRQSGVhZGVyTWFwJiBoZWFkZXJGaWVsZHMsIGNvbnN0IFZlY3Rv
cjx1aW50OF90PiYgaHR0cEJvZHksIGJvb2wgYWxsb3dQb3B1cHMpOwogICAgIHZvaWQgdXBkYXRl
KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHBhaW50ZWRSZWN0KTsKQEAgLTEyMSw2ICsxMzIsMTMg
QEAgcHJpdmF0ZToKIAogICAgIC8vIFdoZXRoZXIgd2UncmUgY2FsbGVkIGludmFsaWRhdGUgaW4g
cmVzcG9uc2UgdG8gYW4gdXBkYXRlIGNhbGwsIGFuZCBhcmUgbm93IHdhaXRpbmcgZm9yIGEgcGFp
bnQgY2FsbC4KICAgICBib29sIG1fd2FpdGluZ0ZvclBhaW50SW5SZXNwb25zZVRvVXBkYXRlOwor
CisgICAgLy8gVGhlIGNsaWVudCBJRCBmb3IgdGhlIENBIGxheWVyIGluIHRoZSBwbHVnLWluIHBy
b2Nlc3MuIFdpbGwgYmUgMCBpZiB0aGUgcGx1Zy1pbiBpcyBub3QgYSBDQSBwbHVnLWluLgorICAg
IHVpbnQzMl90IG1fcmVtb3RlTGF5ZXJDbGllbnRJRDsKKworI2lmIFBMQVRGT1JNKE1BQykKKyAg
ICBSZXRhaW5QdHI8Q0FMYXllcj4gbV9wbHVnaW5MYXllcjsKKyNlbmRpZgogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9M
YXllckJhY2tlZERyYXdpbmdBcmVhLmNwcCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xh
eWVyQmFja2VkRHJhd2luZ0FyZWEuY3BwCmluZGV4IDAzOGI3YjNmNWZhMzc0YjA0MzdhZmJhMjk1
M2Q1NDcxMWFhOTgzZmMuLmVjMGU0ZjEwMTkwN2ExY2Y0NjMwMGI0MDM2MmY0NWIwMTdjZGE3NzMg
MTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyQmFja2VkRHJhd2lu
Z0FyZWEuY3BwCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyQmFja2VkRHJh
d2luZ0FyZWEuY3BwCkBAIC00Miw5ICs0Miw2IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogTGF5ZXJC
YWNrZWREcmF3aW5nQXJlYTo6TGF5ZXJCYWNrZWREcmF3aW5nQXJlYShEcmF3aW5nQXJlYUlEIGlk
ZW50aWZpZXIsIFdlYlBhZ2UqIHdlYlBhZ2UpCiAgICAgOiBEcmF3aW5nQXJlYShMYXllckJhY2tl
ZERyYXdpbmdBcmVhVHlwZSwgaWRlbnRpZmllciwgd2ViUGFnZSkKICAgICAsIG1fc3luY1RpbWVy
KFdlYlByb2Nlc3M6OnNoYXJlZCgpLnJ1bkxvb3AoKSwgdGhpcywgJkxheWVyQmFja2VkRHJhd2lu
Z0FyZWE6OnN5bmNDb21wb3NpdGluZ0xheWVycykKLSNpZiBQTEFURk9STShNQUMpICYmIEhBVkUo
SE9TVEVEX0NPUkVfQU5JTUFUSU9OKQotICAgICwgbV9yZW1vdGVMYXllclJlZigwKQotI2VuZGlm
CiAgICAgLCBtX2F0dGFjaGVkKGZhbHNlKQogICAgICwgbV9zaG91bGRQYWludCh0cnVlKQogewpk
aWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0xheWVyQmFja2VkRHJh
d2luZ0FyZWFNYWMubW0gYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvTGF5ZXJCYWNr
ZWREcmF3aW5nQXJlYU1hYy5tbQppbmRleCBlOTM1YTVmODFlNzk4ZjI0YzEwODBmMThiNDE1YzVl
Yjg5MGQxODhmLi5jN2VmYThlMzE5ZmY0Mzk3NmY4YzBlYmU4ZmFhNjE4YTMyZWFjMjJlIDEwMDY0
NAotLS0gYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvTGF5ZXJCYWNrZWREcmF3aW5n
QXJlYU1hYy5tbQorKysgYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvTGF5ZXJCYWNr
ZWREcmF3aW5nQXJlYU1hYy5tbQpAQCAtNjEsNyArNjEsNyBAQCB2b2lkIExheWVyQmFja2VkRHJh
d2luZ0FyZWE6OnBsYXRmb3JtQ2xlYXIoKQogCiAjaWYgSEFWRShIT1NURURfQ09SRV9BTklNQVRJ
T04pCiAgICAgV0tDQVJlbW90ZUxheWVyQ2xpZW50SW52YWxpZGF0ZShtX3JlbW90ZUxheWVyUmVm
LmdldCgpKTsKLSAgICBtX3JlbW90ZUxheWVyUmVmID0gMDsKKyAgICBtX3JlbW90ZUxheWVyUmVm
ID0gbnVsbHB0cjsKICNlbmRpZgogCiAgICAgbV9hdHRhY2hlZCA9IGZhbHNlOwo=
</data>
<flag name="review"
          id="63203"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>