<?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>165286</bug_id>
          
          <creation_ts>2016-12-01 16:04:47 -0800</creation_ts>
          <short_desc>SourceCodeKey should use unlinked source code</short_desc>
          <delta_ts>2016-12-01 16:24:38 -0800</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>WebKit 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="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1255538</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-12-01 16:04:47 -0800</bug_when>
    <thetext>CodeCacheKey should use unlinked source code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1255544</commentid>
    <comment_count>1</comment_count>
      <attachid>295910</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-12-01 16:17:35 -0800</bug_when>
    <thetext>Created attachment 295910
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1255545</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-01 16:19:05 -0800</bug_when>
    <thetext>Attachment 295910 did not pass style-queue:


ERROR: Source/JavaScriptCore/parser/UnlinkedSourceCode.h:36:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/parser/SourceCode.h:35:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 2 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1255547</commentid>
    <comment_count>3</comment_count>
      <attachid>295910</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-12-01 16:20:57 -0800</bug_when>
    <thetext>Comment on attachment 295910
Patch

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

r=me with some comments

&gt; Source/JavaScriptCore/ChangeLog:3
&gt; +        CodeCacheKey should use unlinked source code

Do you mean SourceCodeKey?

&gt; Source/JavaScriptCore/ChangeLog:15
&gt; +        I plan to deploy UnlinkedSourceCode in more places, to indicate code
&gt; +        that has no absolute location.

Nice

&gt; Source/JavaScriptCore/parser/UnlinkedSourceCode.cpp:2
&gt; + * Copyright (C) 2013 Apple Inc. All rights reserved.

should be 2016

&gt; Source/JavaScriptCore/parser/UnlinkedSourceCode.h:2
&gt; + * Copyright (C) 2008, 2013 Apple Inc. All rights reserved.

should be 2016

&gt; Source/JavaScriptCore/parser/UnlinkedSourceCode.h:15
&gt; + * 1.  Redistributions of source code must retain the above copyright
&gt; + *     notice, this list of conditions and the following disclaimer.
&gt; + * 2.  Redistributions in binary form must reproduce the above copyright
&gt; + *     notice, this list of conditions and the following disclaimer in the
&gt; + *     documentation and/or other materials provided with the distribution.
&gt; + * 3.  Neither the name of Apple Inc. (&quot;Apple&quot;) nor the names of
&gt; + *     its contributors may be used to endorse or promote products derived
&gt; + *     from this software without specific prior written permission.

Looks like the wrong license</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1255551</commentid>
    <comment_count>4</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-12-01 16:24:38 -0800</bug_when>
    <thetext>Committed r209220: &lt;http://trac.webkit.org/changeset/209220&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295910</attachid>
            <date>2016-12-01 16:17:35 -0800</date>
            <delta_ts>2016-12-01 16:20:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165286-20161201161706.patch</filename>
            <type>text/plain</type>
            <size>37245</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjA5MjE5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYxIEBA
CisyMDE2LTEyLTAxICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgQ29kZUNhY2hlS2V5IHNob3VsZCB1c2UgdW5saW5rZWQgc291cmNlIGNvZGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTI4NgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggc3BsaXRz
IG91dCBVbmxpbmtlZFNvdXJjZUNvZGUgZnJvbSBTb3VyY2VDb2RlLCBhbmQgZGVwbG95cworICAg
ICAgICBVbmxpbmtlZFNvdXJjZUNvZGUgaW4gQ29kZUNhY2hlS2V5LgorCisgICAgICAgIEl0J3Mg
bWlzbGVhZGluZyB0byBzdG9yZSBTb3VyY2VDb2RlIGluIENvZGVDYWNoZUtleSBiZWNhdXNlIFNv
dXJjZUNvZGUKKyAgICAgICAgaGFzIGFuIGFic29sdXRlIGxvY2F0aW9uIHdoZXJlYXMgdW5saW5r
ZWQgY2FjaGVkIGNvZGUgaGFzIG5vIGxvY2F0aW9uLgorCisgICAgICAgIEkgcGxhbiB0byBkZXBs
b3kgVW5saW5rZWRTb3VyY2VDb2RlIGluIG1vcmUgcGxhY2VzLCB0byBpbmRpY2F0ZSBjb2RlCisg
ICAgICAgIHRoYXQgaGFzIG5vIGFic29sdXRlIGxvY2F0aW9uLgorCisgICAgICAgICogSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwYXJzZXIvU291
cmNlQ29kZS5jcHA6CisgICAgICAgIChKU0M6OlVubGlua2VkU291cmNlQ29kZTo6dG9VVEY4KToK
KyAgICAgICAgKEpTQzo6U291cmNlQ29kZTo6dG9VVEY4KTogRGVsZXRlZC4KKyAgICAgICAgKiBw
YXJzZXIvU291cmNlQ29kZS5oOgorICAgICAgICAoSlNDOjpTb3VyY2VDb2RlOjpTb3VyY2VDb2Rl
KToKKyAgICAgICAgKEpTQzo6U291cmNlQ29kZTo6c3RhcnRDb2x1bW4pOgorICAgICAgICAoSlND
OjpTb3VyY2VDb2RlOjppc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OlNvdXJjZUNvZGU6Omhhc2gpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpTb3VyY2VD
b2RlOjp2aWV3KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6U291cmNlQ29kZTo6cHJvdmlkZXJJ
RCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlNvdXJjZUNvZGU6OmlzTnVsbCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OlNvdXJjZUNvZGU6OnByb3ZpZGVyKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6U291cmNlQ29kZTo6c3RhcnRPZmZzZXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpT
b3VyY2VDb2RlOjplbmRPZmZzZXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpTb3VyY2VDb2Rl
OjpsZW5ndGgpOiBEZWxldGVkLiBNb3ZlIGEgYnVuY2ggb2Ygc3R1ZmYgaW4gdG8gYSBuZXcKKyAg
ICAgICAgYmFzZSBjbGFzcywgVW5saW5rZWRTb3VyY2VDb2RlLgorCisgICAgICAgICogcGFyc2Vy
L1NvdXJjZUNvZGVLZXkuaDoKKyAgICAgICAgKEpTQzo6U291cmNlQ29kZUtleTo6U291cmNlQ29k
ZUtleSk6IFVzZSBVbmxpbmtlZFNvdXJjZUNvZGUgc2luY2UgY29kZQorICAgICAgICBpbiB0aGUg
Y2FjaGUgaGFzIG5vIGxvY2F0aW9uLgorCisgICAgICAgICogcGFyc2VyL1VubGlua2VkU291cmNl
Q29kZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZUNv
ZGUuaC4KKyAgICAgICAgKEpTQzo6VW5saW5rZWRTb3VyY2VDb2RlOjpVbmxpbmtlZFNvdXJjZUNv
ZGUpOgorICAgICAgICAoSlNDOjpVbmxpbmtlZFNvdXJjZUNvZGU6OnByb3ZpZGVyKToKKyAgICAg
ICAgKEpTQzo6U291cmNlQ29kZTo6U291cmNlQ29kZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OlNvdXJjZUNvZGU6OmlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6U291cmNlQ29kZTo6aGFzaCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlNvdXJjZUNv
ZGU6OnZpZXcpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpTb3VyY2VDb2RlOjpwcm92aWRlcklE
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6U291cmNlQ29kZTo6aXNOdWxsKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6U291cmNlQ29kZTo6cHJvdmlkZXIpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpTb3VyY2VDb2RlOjpmaXJzdExpbmUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpTb3Vy
Y2VDb2RlOjpzdGFydENvbHVtbik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlNvdXJjZUNvZGU6
OnN0YXJ0T2Zmc2V0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6U291cmNlQ29kZTo6ZW5kT2Zm
c2V0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6U291cmNlQ29kZTo6bGVuZ3RoKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6bWFrZVNvdXJjZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlNv
dXJjZUNvZGU6OnN1YkV4cHJlc3Npb24pOiBEZWxldGVkLgorCisgICAgICAgICogcnVudGltZS9D
b2RlQ2FjaGUuaDogVXNlIFVubGlua2VkU291cmNlQ29kZSBpbiB0aGUgY2FjaGUuCisKIDIwMTYt
MTItMDEgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAgICAgICAg
QWRkIHdhc20gaW50IHRvIGZsb2F0aW5nIHBvaW50IG9wY29kZXMKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDIwOTE5MikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNjIzLDkgKzYyMyw5IEBA
IHNldChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAgcGFyc2VyL05vZGVzQW5hbHl6ZU1vZHVs
ZS5jcHAKICAgICBwYXJzZXIvUGFyc2VyLmNwcAogICAgIHBhcnNlci9QYXJzZXJBcmVuYS5jcHAK
LSAgICBwYXJzZXIvU291cmNlQ29kZS5jcHAKICAgICBwYXJzZXIvU291cmNlUHJvdmlkZXIuY3Bw
CiAgICAgcGFyc2VyL1NvdXJjZVByb3ZpZGVyQ2FjaGUuY3BwCisgICAgcGFyc2VyL1VubGlua2Vk
U291cmNlQ29kZS5jcHAKICAgICBwYXJzZXIvVmFyaWFibGVFbnZpcm9ubWVudC5jcHAKIAogICAg
IHByb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGUuY3BwCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkocmV2aXNpb24gMjA5MjAxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTUz
Nyw3ICs1MzcsNyBAQAogCQkwRjhGMkI5NjE3MkUwNEEzMDA3REJEQTUgLyogRlRMTGluay5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4RjJCOTQxNzJF
MDQ5RTAwN0RCREE1IC8qIEZUTExpbmsuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQkwRjhGMkI5OTE3MkYwNEZGMDA3REJEQTUgLyogREZHRGVzaXJl
ZElkZW50aWZpZXJzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDBGOEYyQjk3MTcyRjA0RkQwMDdEQkRBNSAvKiBERkdEZXNpcmVkSWRlbnRpZmllcnMu
Y3BwICovOyB9OwogCQkwRjhGMkI5QTE3MkYwNTAxMDA3REJEQTUgLyogREZHRGVzaXJlZElkZW50
aWZpZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RjhGMkI5ODE3MkYwNEZEMDA3REJEQTUgLyogREZHRGVzaXJlZElkZW50aWZpZXJzLmggKi87IH07
Ci0JCTBGOEYyQjlFMTczMDZDOEQwMDdEQkRBNSAvKiBTb3VyY2VDb2RlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOEYyQjlEMTczMDZDOEIwMDdE
QkRBNSAvKiBTb3VyY2VDb2RlLmNwcCAqLzsgfTsKKwkJMEY4RjJCOUUxNzMwNkM4RDAwN0RCREE1
IC8qIFVubGlua2VkU291cmNlQ29kZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjhGMkI5RDE3MzA2QzhCMDA3REJEQTUgLyogVW5saW5rZWRTb3Vy
Y2VDb2RlLmNwcCAqLzsgfTsKIAkJMEY4Rjk0M0MxNjY3NjMxMzAwRDYxOTcxIC8qIENvZGVTcGVj
aWFsaXphdGlvbktpbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEY4Rjk0M0ExNjY3NjMxMTAwRDYxOTcxIC8qIENvZGVTcGVjaWFsaXphdGlvbktp
bmQuY3BwICovOyB9OwogCQkwRjhGOTQ0MDE2Njc2MzMwMDBENjE5NzEgLyogQ29kZUJsb2NrSGFz
aC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjhG
OTQzRDE2Njc2MzJEMDBENjE5NzEgLyogQ29kZUJsb2NrSGFzaC5jcHAgKi87IH07CiAJCTBGOEY5
NDQxMTY2NzYzMzIwMEQ2MTk3MSAvKiBDb2RlQmxvY2tIYXNoLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjhGOTQzRTE2Njc2MzJEMDBENjE5NzEgLyog
Q29kZUJsb2NrSGFzaC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CkBAIC0xMDE4LDYgKzEwMTgsNyBAQAogCQkxNDE0NDhDQjEzQTE3NkVDMDBGNUJBMUEg
LyogTWFya2VkQmxvY2tTZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDE0MTQ0OENBMTNBMTc2RUMwMEY1QkExQSAvKiBNYXJrZWRCbG9ja1NldC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTE0MTQ0OENE
MTNBMTc4MzcwMEY1QkExQSAvKiBUaW55Qmxvb21GaWx0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0MTQ0OENDMTNBMTc4MzcwMEY1QkExQSAvKiBU
aW55Qmxvb21GaWx0ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQkxNDE1MDEzMzE1NEJCMTNGMDA1RDhDOTggLyogV2Vha1NldElubGluZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0MTUwMTMyMTU0
QkIxM0YwMDVEOEM5OCAvKiBXZWFrU2V0SW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTE0MjAxRDU5MURFQ0YyNkEwMDkwNEJEMyAvKiBT
b3VyY2VDb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxNDIwMUQ1ODFERUNGMjZBMDA5MDRCRDMgLyogU291cmNlQ29kZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTE0MjEzNTlCMEE2NzdGNEYwMEE4
MTk1RSAvKiBKU0Jhc2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMTQyMTM1OUEwQTY3N0Y0RjAwQTgxOTVFIC8qIEpTQmFzZS5jcHAgKi87IH07CiAJ
CTE0MjgwODIzMTA3RUMwMkMwMDEzRTdCMiAvKiBEZWJ1Z2dlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNjkyQTg1ODAyNTU1OTdEMDFGRjYwRjcg
LyogRGVidWdnZXIuY3BwICovOyB9OwogCQkxNDI4MDgyRDEwN0VDMDU3MDAxM0U3QjIgLyogQ2Fs
bERhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkNBNjJERkUwRTI4MjYyMzAwMDRGMzBEIC8qIENhbGxEYXRhLmNwcCAqLzsgfTsKQEAgLTExNDks
NiArMTE1MCw3IEBACiAJCTE0OEYyMUJDMTA3RUM1NEQwMDQyRUMyQyAvKiBQYXJzZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGMEIzQTkwOUJC
NERDMDAwNjhGQ0UzIC8qIFBhcnNlci5jcHAgKi87IH07CiAJCTE0OTU1OUVFMEREQ0RERjcwMDY0
ODA4NyAvKiBEZWJ1Z2dlckNhbGxGcmFtZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxNDk1NTlFRDBERENEREY3MDA2NDgwODcgLyogRGVidWdnZXJD
YWxsRnJhbWUuY3BwICovOyB9OwogCQkxNEExNTYzMjEwOTY2MzY1MDA2RkEyNjAgLyogRGF0ZUlu
c3RhbmNlQ2FjaGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDE0QTE1NjMwMTA5NjYzNjUwMDZGQTI2MCAvKiBEYXRlSW5zdGFuY2VDYWNoZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTE0QUI2Njc2MURF
Q0Y0MDkwMEE1NkMyNiAvKiBVbmxpbmtlZFNvdXJjZUNvZGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0QUI2Njc1MURFQ0Y0MDkwMEE1NkMyNiAvKiBV
bmxpbmtlZFNvdXJjZUNvZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQkxNEFCREY2MDBBNDM3RkVGMDBFQ0NBMDEgLyogSlNDYWxsYmFja09iamVj
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNEFC
REY1RTBBNDM3RkVGMDBFQ0NBMDEgLyogSlNDYWxsYmFja09iamVjdC5jcHAgKi87IH07CiAJCTE0
QUQ5MTBDMURDQTkyOTQwMDE0RjlGRSAvKiBFdmFsQ29kZUJsb2NrLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNEFEOTEwNjFEQ0E5Mjk0MDAxNEY5RkUg
LyogRXZhbENvZGVCbG9jay5oICovOyB9OwogCQkxNEFEOTEwRDFEQ0E5Mjk0MDAxNEY5RkUgLyog
RnVuY3Rpb25Db2RlQmxvY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDE0QUQ5MTA3MURDQTkyOTQwMDE0RjlGRSAvKiBGdW5jdGlvbkNvZGVCbG9jay5o
ICovOyB9OwpAQCAtMjA4Miw3ICsyMDg0LDYgQEAKIAkJQkMxOEM0NUQwRTE2RjVDRDAwQjM0NDYw
IC8qIFJlZ2lzdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxNDlCMjRGRjBEOEFGNkQxMDA5Q0I4QzcgLyogUmVnaXN0ZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzE4QzQ1RTBFMTZGNUNEMDBC
MzQ0NjAgLyogQ0xvb3BTdGFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMTRENzkyNjQwREFBMDNGQjAwMUE5RjA1IC8qIENMb29wU3RhY2suaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzE4QzQ2MzBF
MTZGNUNEMDBCMzQ0NjAgLyogU291cmNlUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1RTg2NkVEMERENTlBRkEwMEEyQjJBMSAvKiBTb3Vy
Y2VQcm92aWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07Ci0JCUJDMThDNDY0MEUxNkY1Q0QwMEIzNDQ2MCAvKiBTb3VyY2VDb2RlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NUU4NjZFRTBERDU5QUZBMDBB
MkIyQTEgLyogU291cmNlQ29kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUJDMThDNDY2MEUxNkY1Q0QwMEIzNDQ2MCAvKiBTdHJpbmdDb25zdHJ1
Y3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMx
OEMzQzEwRTE2RUUzMzAwQjM0NDYwIC8qIFN0cmluZ0NvbnN0cnVjdG9yLmggKi87IH07CiAJCUJD
MThDNDY4MEUxNkY1Q0QwMEIzNDQ2MCAvKiBTdHJpbmdPYmplY3QuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMThDM0MzMEUxNkVFMzMwMEIzNDQ2MCAv
KiBTdHJpbmdPYmplY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlCQzE4QzQ2QTBFMTZGNUNEMDBCMzQ0NjAgLyogU3RyaW5nUHJvdG90eXBlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzE4QzNDNjBF
MTZFRTMzMDBCMzQ0NjAgLyogU3RyaW5nUHJvdG90eXBlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTI5NDksNyArMjk1MCw3IEBACiAJCTBGOEYy
Qjk0MTcyRTA0OUUwMDdEQkRBNSAvKiBGVExMaW5rLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEZUTExpbmsu
aDsgcGF0aCA9IGZ0bC9GVExMaW5rLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
OEYyQjk3MTcyRjA0RkQwMDdEQkRBNSAvKiBERkdEZXNpcmVkSWRlbnRpZmllcnMuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gREZHRGVzaXJlZElkZW50aWZpZXJzLmNwcDsgcGF0aCA9IGRmZy9ERkdE
ZXNpcmVkSWRlbnRpZmllcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjhG
MkI5ODE3MkYwNEZEMDA3REJEQTUgLyogREZHRGVzaXJlZElkZW50aWZpZXJzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IERGR0Rlc2lyZWRJZGVudGlmaWVycy5oOyBwYXRoID0gZGZnL0RGR0Rlc2lyZWRJZGVu
dGlmaWVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjhGMkI5RDE3MzA2QzhC
MDA3REJEQTUgLyogU291cmNlQ29kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTb3VyY2VDb2Rl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY4RjJCOUQxNzMwNkM4QjAwN0RC
REE1IC8qIFVubGlua2VkU291cmNlQ29kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVbmxpbmtl
ZFNvdXJjZUNvZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjhGOTQzQTE2
Njc2MzExMDBENjE5NzEgLyogQ29kZVNwZWNpYWxpemF0aW9uS2luZC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb2RlU3BlY2lhbGl6YXRpb25LaW5kLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY4Rjk0M0QxNjY3NjMyRDAwRDYxOTcxIC8qIENv
ZGVCbG9ja0hhc2guY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29k
ZUJsb2NrSGFzaC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOEY5NDNFMTY2
NzYzMkQwMEQ2MTk3MSAvKiBDb2RlQmxvY2tIYXNoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IENvZGVCbG9ja0hhc2guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTM0MjQsNiArMzQyNSw3IEBACiAJCTE0MTQ0OENBMTNBMTc2RUMwMEY1QkExQSAvKiBNYXJrZWRC
bG9ja1NldC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNYXJrZWRCbG9ja1Nl
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDE0NDhDQzEzQTE3ODM3MDBGNUJB
MUEgLyogVGlueUJsb29tRmlsdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFRpbnlCbG9vbUZpbHRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDE1MDEz
MjE1NEJCMTNGMDA1RDhDOTggLyogV2Vha1NldElubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2Vha1NldElubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMTQyMDFENTgxREVDRjI2QTAwOTA0QkQzIC8qIFNvdXJjZUNvZGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU291cmNlQ29kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxNDIxMzU5QTBBNjc3RjRGMDBBODE5NUUgLyogSlNCYXNlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTE0MjcxMTM4MEE0NjBCQkIwMDgwRUVFQSAvKiBKU0Jhc2UuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTE0MjlENzdCMEVEMjBENzMwMEI4OTYxOSAvKiBJbnRlcnByZXRlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnRlcnByZXRlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMzUxMCw2ICszNTEyLDcgQEAKIAkJMTQ5REFBRjIxMkVCNTU5
RDAwODNCMTJCIC8qIENvbnNlcnZhdGl2ZVJvb3RzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IENvbnNlcnZhdGl2ZVJvb3RzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTE0QTE1NjMwMTA5NjYzNjUwMDZGQTI2MCAvKiBEYXRlSW5zdGFuY2VDYWNoZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRlSW5zdGFuY2VDYWNoZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxNEEzOTZBNjBDRDI5MzMxMDBCNUI0RkYgLyogU3ltYm9s
VGFibGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3ltYm9sVGFibGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMTRBQjY2NzUxREVDRjQwOTAwQTU2QzI2IC8q
IFVubGlua2VkU291cmNlQ29kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBV
bmxpbmtlZFNvdXJjZUNvZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTRBQkIz
NkUwOTlDMDc2NDAwRTJBMjRGIC8qIEpTQ0pTVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTQ0pTVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MTRBQkI0NTQwOTlDMkEwRjAwRTJBMjRGIC8qIEpTVHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU1R5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTRB
QkRGNUQwQTQzN0ZFRjAwRUNDQTAxIC8qIEpTQ2FsbGJhY2tPYmplY3QuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDYWxsYmFja09iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMzc2Miw3ICszNzY1LDYgQEAKIAkJNjVDN0ExNzEwQThFQUFDQjAwRkEz
N0VBIC8qIEpTV3JhcHBlck9iamVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNXcmFwcGVyT2JqZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNjVDN0ExNzIwQThFQUFDQjAwRkEzN0VBIC8qIEpTV3JhcHBlck9iamVjdC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXcmFwcGVyT2JqZWN0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTY1RTg2NkVEMERENTlBRkEwMEEyQjJBMSAvKiBTb3VyY2VQcm92
aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTb3VyY2VQcm92aWRlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2NUU4NjZFRTBERDU5QUZBMDBBMkIyQTEg
LyogU291cmNlQ29kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTb3VyY2VD
b2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1RUE0Qzk5MDkyQUY5RTIwMDkz
RDgwMCAvKiBKU0xvY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNMb2NrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFi
V2lkdGggPSA4OyB9OwogCQk2NUVBNEM5QTA5MkFGOUUyMDA5M0Q4MDAgLyogSlNMb2NrLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRo
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTG9jay5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CiAJCTY1RUE3MzYyMEJB
RTM1RDEwMDFCQjU2MCAvKiBDb21tb25JZGVudGlmaWVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQ29tbW9uSWRlbnRpZmllcnMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNjAzOCw2ICs2MDQwLDcgQEAKIAkJCQlGNjkyQTg2NjAyNTU1OTdE
MDFGRjYwRjcgLyogTGV4ZXIuaCAqLywKIAkJCQlFMzc5NEU3MzFCNzdFQjk3MDA1NTQzQUUgLyog
TW9kdWxlQW5hbHl6ZXIuY3BwICovLAogCQkJCUUzNzk0RTc0MUI3N0VCOTcwMDU1NDNBRSAvKiBN
b2R1bGVBbmFseXplci5oICovLAorCQkJCTAwMEJFQUYwREY2MDQ0ODFBRjZBQjY4QyAvKiBNb2R1
bGVTY29wZURhdGEuaCAqLywKIAkJCQk5MzBEQUQwMzBGQjFFQjFBMDA4MkQyMDUgLyogTm9kZUNv
bnN0cnVjdG9ycy5oICovLAogCQkJCUY2OTJBODZEMDI1NTU5N0QwMUZGNjBGNyAvKiBOb2Rlcy5j
cHAgKi8sCiAJCQkJRjY5MkE4NkUwMjU1NTk3RDAxRkY2MEY3IC8qIE5vZGVzLmggKi8sCkBAIC02
MDUxLDggKzYwNTQsOCBAQAogCQkJCUE3N0YxODI0MTY0MTkyNTQwMDY0MEE0NyAvKiBQYXJzZXJN
b2Rlcy5oICovLAogCQkJCTY1MzAzRDYzMTQ0N0I5RTEwMEQzRjkwNCAvKiBQYXJzZXJUb2tlbnMu
aCAqLywKIAkJCQk4NjlFQkNCNjBFOEM2RDRBMDA4NzIyQ0MgLyogUmVzdWx0VHlwZS5oICovLAot
CQkJCTBGOEYyQjlEMTczMDZDOEIwMDdEQkRBNSAvKiBTb3VyY2VDb2RlLmNwcCAqLywKLQkJCQk2
NUU4NjZFRTBERDU5QUZBMDBBMkIyQTEgLyogU291cmNlQ29kZS5oICovLAorCQkJCTBGOEYyQjlE
MTczMDZDOEIwMDdEQkRBNSAvKiBVbmxpbmtlZFNvdXJjZUNvZGUuY3BwICovLAorCQkJCTE0MjAx
RDU4MURFQ0YyNkEwMDkwNEJEMyAvKiBTb3VyY2VDb2RlLmggKi8sCiAJCQkJNzBCNzkxOEUxQzAy
NDRDOTAwMjQ4MUUyIC8qIFNvdXJjZUNvZGVLZXkuaCAqLywKIAkJCQkwRjQ5M0FGODE2RDBDQUQx
MDA4NDUwOEIgLyogU291cmNlUHJvdmlkZXIuY3BwICovLAogCQkJCTY1RTg2NkVEMERENTlBRkEw
MEEyQjJBMSAvKiBTb3VyY2VQcm92aWRlci5oICovLApAQCAtNjA2MCw5ICs2MDYzLDkgQEAKIAkJ
CQlFNDlEQzE1MTEyRUYyNzIyMDAxODRBMUYgLyogU291cmNlUHJvdmlkZXJDYWNoZS5oICovLAog
CQkJCUU0OURDMTQ5MTJFRjI2MUEwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlSXRlbS5o
ICovLAogCQkJCUE3QTdFRTc3MTFCOThCOEQwMDY1QTE0RiAvKiBTeW50YXhDaGVja2VyLmggKi8s
CisJCQkJMTRBQjY2NzUxREVDRjQwOTAwQTU2QzI2IC8qIFVubGlua2VkU291cmNlQ29kZS5oICov
LAogCQkJCTc5RUUwQkZEMUI0QUZCODUwMDAzODVDOSAvKiBWYXJpYWJsZUVudmlyb25tZW50LmNw
cCAqLywKIAkJCQk3OUVFMEJGRTFCNEFGQjg1MDAwMzg1QzkgLyogVmFyaWFibGVFbnZpcm9ubWVu
dC5oICovLAotCQkJCTAwMEJFQUYwREY2MDQ0ODFBRjZBQjY4QyAvKiBNb2R1bGVTY29wZURhdGEu
aCAqLywKIAkJCSk7CiAJCQlwYXRoID0gcGFyc2VyOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsKQEAgLTgwOTksNiArODEwMiw3IEBACiAJCQkJQTdEODlDRkUxN0EwQjhDQzAwNzczQUQ4IC8q
IERGR09TUkF2YWlsYWJpbGl0eUFuYWx5c2lzUGhhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
RDgyRTU3MTQxREFGMTAwMDE3OUM5NCAvKiBERkdPU1JFbnRyeS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEY0MEU0QTcxQzQ5N0Y3NDAwQTU3N0ZBIC8qIEFpck9wY29kZS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMTRBQjY2NzYxREVDRjQwOTAwQTU2QzI2IC8qIFVubGlua2VkU291cmNlQ29kZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEZERjY3RDcxRDlEQzQ0MjAwMUI5ODI1IC8qIEFpcktpbmQuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGRDhBMzI2MTdENTFGNTcwMENBMkM0MCAvKiBERkdPU1JFbnRy
eXBvaW50Q3JlYXRpb25QaGFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDMDk3NkExNDY4QTZG
NzAwQ0YyNDQyIC8qIERGR09TUkV4aXQuaCBpbiBIZWFkZXJzICovLApAQCAtODc3OCw2ICs4Nzgy
LDcgQEAKIAkJCQk4NjE1OEFCMzE1NUM4QjQwMDBCNDVDOUMgLyogUHJvcGVydHlOYW1lLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzE4QzQ1NDBFMTZGNUNEMDBCMzQ0NjAgLyogUHJvcGVydHlOYW1l
QXJyYXkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRjcxNjhDMTVBM0IyMzUwMDhGNURBQSAvKiBQ
cm9wZXJ0eU9mZnNldC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMTQyMDFENTkxREVDRjI2QTAwOTA0
QkQzIC8qIFNvdXJjZUNvZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDU1MEUxNkY1Q0Qw
MEIzNDQ2MCAvKiBQcm9wZXJ0eVNsb3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQjdGMzlDMTVF
RDhFNDYwMEYxNjdCMiAvKiBQcm9wZXJ0eVN0b3JhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTUz
RkEyQUUxMUNGMzdGM0YwMDIyNzExRCAvKiBMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVj
dHVyZVdhdGNocG9pbnQuaCBpbiBIZWFkZXJzICovLApAQCAtODg1Myw3ICs4ODU4LDYgQEAKIAkJ
CQlDMjE2MEZFNzE1RjdFOTVFMDA5NDJERkMgLyogU2xvdFZpc2l0b3JJbmxpbmVzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBNzA5RjJGMDE3QTBBQzA0MDA1MTJFOTggLyogU2xvd1BhdGhDYWxsLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5MzMwNDAwNDBFNkE3NDk0MDA3ODZFNkEgLyogU21hbGxTdHJp
bmdzLmggaW4gSGVhZGVycyAqLywKLQkJCQlCQzE4QzQ2NDBFMTZGNUNEMDBCMzQ0NjAgLyogU291
cmNlQ29kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3QzM5RkQxQzhGNjU5NTAwNDgwMTUxIC8q
IFJlZ0V4cE9iamVjdElubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGN0NGOTUyMURDMDI3
RDkwMDk4Q0MxMiAvKiBTdG9wSWZOZWNlc3NhcnlUaW1lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkMxOEM0NjMwRTE2RjVDRDAwQjM0NDYwIC8qIFNvdXJjZVByb3ZpZGVyLmggaW4gSGVhZGVycyAq
LywKQEAgLTEwMzA2LDcgKzEwMzEwLDcgQEAKIAkJCQkwRjJCNjcwNDE3QjZCNUFCMDBBN0FFM0Yg
LyogU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzIy
NTQ5NDMxNUY3REJBQTAwNjVFODk4IC8qIFNsb3RWaXNpdG9yLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTkzMzA0MDJDMEU2QTc2NDAwMDc4NkU2QSAvKiBTbWFsbFN0cmluZ3MuY3BwIGluIFNvdXJj
ZXMgKi8sCi0JCQkJMEY4RjJCOUUxNzMwNkM4RDAwN0RCREE1IC8qIFNvdXJjZUNvZGUuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJMEY4RjJCOUUxNzMwNkM4RDAwN0RCREE1IC8qIFVubGlua2VkU291
cmNlQ29kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjQ5M0FGQTE2RDBDQUQzMDA4NDUwOEIg
LyogU291cmNlUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYzMzhERjUxQkU5M0Q1
NTAwMTNDODhGIC8qIEIzQ29uc3RyYWluZWRWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlF
NDlEQzE2QjEyRUYyOTNFMDAxODRBMUYgLyogU291cmNlUHJvdmlkZXJDYWNoZS5jcHAgaW4gU291
cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlQ29kZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VDb2Rl
LmNwcAkocmV2aXNpb24gMjA5MTkyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9T
b3VyY2VDb2RlLmNwcAkobm9uZXhpc3RlbnQpCkBAIC0xLDQzICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAot
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgot
I2luY2x1ZGUgIlNvdXJjZUNvZGUuaCIKLQotI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKLSNpbmNs
dWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBKU0MgewotCi1DU3RyaW5nIFNv
dXJjZUNvZGU6OnRvVVRGOCgpIGNvbnN0Ci17Ci0gICAgaWYgKCFtX3Byb3ZpZGVyKQotICAgICAg
ICByZXR1cm4gQ1N0cmluZygiIiwgMCk7Ci0gICAgCi0gICAgcmV0dXJuIG1fcHJvdmlkZXItPnNv
dXJjZSgpLnN1YnN0cmluZyhtX3N0YXJ0Q2hhciwgbV9lbmRDaGFyIC0gbV9zdGFydENoYXIpLnV0
ZjgoKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgSlNDCi0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvU291cmNlQ29kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvU291cmNlQ29kZS5oCShyZXZpc2lvbiAyMDkxOTIpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZUNvZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsOTIg
KzI4LDU1IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiU291cmNlUHJvdmlkZXIuaCIK
LSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSAiVW5saW5rZWRTb3VyY2VDb2RlLmgi
CiAKIG5hbWVzcGFjZSBKU0MgewogCi0gICAgY2xhc3MgU291cmNlQ29kZSB7CisgICAgY2xhc3Mg
U291cmNlQ29kZSA6IHB1YmxpYyBVbmxpbmtlZFNvdXJjZUNvZGUgewogICAgIHB1YmxpYzoKICAg
ICAgICAgU291cmNlQ29kZSgpCi0gICAgICAgICAgICA6IG1fcHJvdmlkZXIoMCkKLSAgICAgICAg
ICAgICwgbV9zdGFydENoYXIoMCkKLSAgICAgICAgICAgICwgbV9lbmRDaGFyKDApCisgICAgICAg
ICAgICA6IFVubGlua2VkU291cmNlQ29kZSgpCiAgICAgICAgICAgICAsIG1fZmlyc3RMaW5lKDAp
CiAgICAgICAgICAgICAsIG1fc3RhcnRDb2x1bW4oMCkKICAgICAgICAgewogICAgICAgICB9CiAK
LSAgICAgICAgU291cmNlQ29kZShXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZVR5cGUpCi0gICAg
ICAgICAgICA6IG1fcHJvdmlkZXIoV1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWUpCi0gICAgICAg
IHsKLSAgICAgICAgfQotCiAgICAgICAgIFNvdXJjZUNvZGUoUGFzc1JlZlB0cjxTb3VyY2VQcm92
aWRlcj4gcHJvdmlkZXIpCi0gICAgICAgICAgICA6IG1fcHJvdmlkZXIocHJvdmlkZXIpCi0gICAg
ICAgICAgICAsIG1fc3RhcnRDaGFyKDApCi0gICAgICAgICAgICAsIG1fZW5kQ2hhcihtX3Byb3Zp
ZGVyLT5zb3VyY2UoKS5sZW5ndGgoKSkKKyAgICAgICAgICAgIDogVW5saW5rZWRTb3VyY2VDb2Rl
KHByb3ZpZGVyKQogICAgICAgICAgICAgLCBtX2ZpcnN0TGluZSgxKQogICAgICAgICAgICAgLCBt
X3N0YXJ0Q29sdW1uKDEpCiAgICAgICAgIHsKICAgICAgICAgfQogCiAgICAgICAgIFNvdXJjZUNv
ZGUoUGFzc1JlZlB0cjxTb3VyY2VQcm92aWRlcj4gcHJvdmlkZXIsIGludCBmaXJzdExpbmUsIGlu
dCBzdGFydENvbHVtbikKLSAgICAgICAgICAgIDogbV9wcm92aWRlcihwcm92aWRlcikKLSAgICAg
ICAgICAgICwgbV9zdGFydENoYXIoMCkKLSAgICAgICAgICAgICwgbV9lbmRDaGFyKG1fcHJvdmlk
ZXItPnNvdXJjZSgpLmxlbmd0aCgpKQorICAgICAgICAgICAgOiBVbmxpbmtlZFNvdXJjZUNvZGUo
cHJvdmlkZXIpCiAgICAgICAgICAgICAsIG1fZmlyc3RMaW5lKHN0ZDo6bWF4KGZpcnN0TGluZSwg
MSkpCiAgICAgICAgICAgICAsIG1fc3RhcnRDb2x1bW4oc3RkOjptYXgoc3RhcnRDb2x1bW4sIDEp
KQogICAgICAgICB7CiAgICAgICAgIH0KIAotICAgICAgICBTb3VyY2VDb2RlKFBhc3NSZWZQdHI8
U291cmNlUHJvdmlkZXI+IHByb3ZpZGVyLCBpbnQgc3RhcnQsIGludCBlbmQsIGludCBmaXJzdExp
bmUsIGludCBzdGFydENvbHVtbikKLSAgICAgICAgICAgIDogbV9wcm92aWRlcihwcm92aWRlcikK
LSAgICAgICAgICAgICwgbV9zdGFydENoYXIoc3RhcnQpCi0gICAgICAgICAgICAsIG1fZW5kQ2hh
cihlbmQpCisgICAgICAgIFNvdXJjZUNvZGUoUGFzc1JlZlB0cjxTb3VyY2VQcm92aWRlcj4gcHJv
dmlkZXIsIGludCBzdGFydE9mZnNldCwgaW50IGVuZE9mZnNldCwgaW50IGZpcnN0TGluZSwgaW50
IHN0YXJ0Q29sdW1uKQorICAgICAgICAgICAgOiBVbmxpbmtlZFNvdXJjZUNvZGUocHJvdmlkZXIs
IHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQpCiAgICAgICAgICAgICAsIG1fZmlyc3RMaW5lKHN0ZDo6
bWF4KGZpcnN0TGluZSwgMSkpCiAgICAgICAgICAgICAsIG1fc3RhcnRDb2x1bW4oc3RkOjptYXgo
c3RhcnRDb2x1bW4sIDEpKQogICAgICAgICB7CiAgICAgICAgIH0KIAotICAgICAgICBib29sIGlz
SGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9wcm92aWRlci5pc0hhc2hU
YWJsZURlbGV0ZWRWYWx1ZSgpOyB9Ci0KLSAgICAgICAgdW5zaWduZWQgaGFzaCgpIGNvbnN0Ci0g
ICAgICAgIHsKLSAgICAgICAgICAgIEFTU0VSVChtX3Byb3ZpZGVyKTsKLSAgICAgICAgICAgIHJl
dHVybiBtX3Byb3ZpZGVyLT5oYXNoKCk7Ci0gICAgICAgIH0KKyAgICAgICAgaW50IGZpcnN0TGlu
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZmlyc3RMaW5lOyB9CisgICAgICAgIGludCBzdGFydENvbHVt
bigpIGNvbnN0IHsgcmV0dXJuIG1fc3RhcnRDb2x1bW47IH0KIAotICAgICAgICBTdHJpbmdWaWV3
IHZpZXcoKSBjb25zdAotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoIW1fcHJvdmlkZXIpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZ1ZpZXcoKTsKLSAgICAgICAgICAgIHJldHVybiBt
X3Byb3ZpZGVyLT5nZXRSYW5nZShtX3N0YXJ0Q2hhciwgbV9lbmRDaGFyKTsKLSAgICAgICAgfQot
ICAgICAgICAKLSAgICAgICAgQ1N0cmluZyB0b1VURjgoKSBjb25zdDsKLSAgICAgICAgCiAgICAg
ICAgIGludHB0cl90IHByb3ZpZGVySUQoKSBjb25zdAogICAgICAgICB7CiAgICAgICAgICAgICBp
ZiAoIW1fcHJvdmlkZXIpCiAgICAgICAgICAgICAgICAgcmV0dXJuIFNvdXJjZVByb3ZpZGVyOjpu
dWxsSUQ7CiAgICAgICAgICAgICByZXR1cm4gbV9wcm92aWRlci0+YXNJRCgpOwogICAgICAgICB9
Ci0gICAgICAgIAotICAgICAgICBib29sIGlzTnVsbCgpIGNvbnN0IHsgcmV0dXJuICFtX3Byb3Zp
ZGVyOyB9CisKICAgICAgICAgU291cmNlUHJvdmlkZXIqIHByb3ZpZGVyKCkgY29uc3QgeyByZXR1
cm4gbV9wcm92aWRlci5nZXQoKTsgfQotICAgICAgICBpbnQgZmlyc3RMaW5lKCkgY29uc3QgeyBy
ZXR1cm4gbV9maXJzdExpbmU7IH0KLSAgICAgICAgaW50IHN0YXJ0Q29sdW1uKCkgY29uc3QgeyBy
ZXR1cm4gbV9zdGFydENvbHVtbjsgfQotICAgICAgICBpbnQgc3RhcnRPZmZzZXQoKSBjb25zdCB7
IHJldHVybiBtX3N0YXJ0Q2hhcjsgfQotICAgICAgICBpbnQgZW5kT2Zmc2V0KCkgY29uc3QgeyBy
ZXR1cm4gbV9lbmRDaGFyOyB9Ci0gICAgICAgIGludCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBt
X2VuZENoYXIgLSBtX3N0YXJ0Q2hhcjsgfQotICAgICAgICAKKwogICAgICAgICBTb3VyY2VDb2Rl
IHN1YkV4cHJlc3Npb24odW5zaWduZWQgb3BlbkJyYWNlLCB1bnNpZ25lZCBjbG9zZUJyYWNlLCBp
bnQgZmlyc3RMaW5lLCBpbnQgc3RhcnRDb2x1bW4pOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAg
UmVmUHRyPFNvdXJjZVByb3ZpZGVyPiBtX3Byb3ZpZGVyOwotICAgICAgICBpbnQgbV9zdGFydENo
YXI7Ci0gICAgICAgIGludCBtX2VuZENoYXI7CiAgICAgICAgIGludCBtX2ZpcnN0TGluZTsKICAg
ICAgICAgaW50IG1fc3RhcnRDb2x1bW47CiAgICAgfTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvU291cmNlQ29kZUtleS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvU291cmNlQ29kZUtleS5oCShyZXZpc2lvbiAyMDkxOTIpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZUNvZGVLZXkuaAkod29ya2luZyBjb3B5KQpA
QCAtMjcsNyArMjcsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJQYXJzZXJNb2Rlcy5o
IgotI2luY2x1ZGUgIlNvdXJjZUNvZGUuaCIKKyNpbmNsdWRlICJVbmxpbmtlZFNvdXJjZUNvZGUu
aCIKICNpbmNsdWRlIDx3dGYvSGFzaFRyYWl0cy5oPgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTc2
LDcgKzc2LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIFNvdXJjZUNvZGVLZXkoCi0gICAgICAg
IGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUsIGNvbnN0IFN0cmluZyYgbmFtZSwgU291cmNl
Q29kZVR5cGUgY29kZVR5cGUsIEpTUGFyc2VyU3RyaWN0TW9kZSBzdHJpY3RNb2RlLCAKKyAgICAg
ICAgY29uc3QgVW5saW5rZWRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlLCBjb25zdCBTdHJpbmcmIG5h
bWUsIFNvdXJjZUNvZGVUeXBlIGNvZGVUeXBlLCBKU1BhcnNlclN0cmljdE1vZGUgc3RyaWN0TW9k
ZSwgCiAgICAgICAgIEpTUGFyc2VyU2NyaXB0TW9kZSBzY3JpcHRNb2RlLCBEZXJpdmVkQ29udGV4
dFR5cGUgZGVyaXZlZENvbnRleHRUeXBlLCBFdmFsQ29udGV4dFR5cGUgZXZhbENvbnRleHRUeXBl
LCBib29sIGlzQXJyb3dGdW5jdGlvbkNvbnRleHQsCiAgICAgICAgIERlYnVnZ2VyTW9kZSBkZWJ1
Z2dlck1vZGUsIFR5cGVQcm9maWxlckVuYWJsZWQgdHlwZVByb2ZpbGVyRW5hYmxlZCwgQ29udHJv
bEZsb3dQcm9maWxlckVuYWJsZWQgY29udHJvbEZsb3dQcm9maWxlckVuYWJsZWQpCiAgICAgICAg
ICAgICA6IG1fc291cmNlQ29kZShzb3VyY2VDb2RlKQpAQCAtMTI0LDcgKzEyNCw3IEBAIHB1Ymxp
YzoKICAgICB9OwogCiBwcml2YXRlOgotICAgIFNvdXJjZUNvZGUgbV9zb3VyY2VDb2RlOworICAg
IFVubGlua2VkU291cmNlQ29kZSBtX3NvdXJjZUNvZGU7CiAgICAgU3RyaW5nIG1fbmFtZTsKICAg
ICBTb3VyY2VDb2RlRmxhZ3MgbV9mbGFnczsKICAgICB1bnNpZ25lZCBtX2hhc2g7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1VubGlua2VkU291cmNlQ29kZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9VbmxpbmtlZFNvdXJjZUNvZGUu
Y3BwCShyZXZpc2lvbiAyMDkxOTIpCShmcm9tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
U291cmNlQ29kZS5jcHA6MjA5MTkyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9V
bmxpbmtlZFNvdXJjZUNvZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIlNvdXJjZUNvZGUuaCIKKworI2luY2x1ZGUgIkpTQ0lubGluZXMu
aCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisKK25hbWVzcGFjZSBKU0MgeworCitD
U3RyaW5nIFNvdXJjZUNvZGU6OnRvVVRGOCgpIGNvbnN0Cit7CisgICAgaWYgKCFtX3Byb3ZpZGVy
KQorICAgICAgICByZXR1cm4gQ1N0cmluZygiIiwgMCk7CisgICAgCisgICAgcmV0dXJuIG1fcHJv
dmlkZXItPnNvdXJjZSgpLnN1YnN0cmluZyhtX3N0YXJ0Q2hhciwgbV9lbmRDaGFyIC0gbV9zdGFy
dENoYXIpLnV0ZjgoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgSlNDCisKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wYXJzZXIvVW5saW5rZWRTb3VyY2VDb2RlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1VubGlua2VkU291cmNlQ29kZS5jcHAJKHJl
dmlzaW9uIDIwOTE5MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvVW5saW5rZWRT
b3VyY2VDb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsMTQgKzI0LDE0IEBACiAgKi8KIAog
I2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlNvdXJjZUNvZGUuaCIKKyNpbmNsdWRlICJV
bmxpbmtlZFNvdXJjZUNvZGUuaCIKIAogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKICNpbmNsdWRl
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogCi1DU3RyaW5nIFNvdXJj
ZUNvZGU6OnRvVVRGOCgpIGNvbnN0CitDU3RyaW5nIFVubGlua2VkU291cmNlQ29kZTo6dG9VVEY4
KCkgY29uc3QKIHsKICAgICBpZiAoIW1fcHJvdmlkZXIpCiAgICAgICAgIHJldHVybiBDU3RyaW5n
KCIiLCAwKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvVW5saW5rZWRTb3Vy
Y2VDb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Vbmxp
bmtlZFNvdXJjZUNvZGUuaAkocmV2aXNpb24gMjA5MTkyKQkoZnJvbSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL1NvdXJjZUNvZGUuaDoyMDkxOTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcGFyc2VyL1VubGlua2VkU291cmNlQ29kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MTMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1l
IG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisg
KiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU291cmNlUHJvdmlkZXIuaCIKKyNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBKU0MgeworCisgICAgY2xhc3MgU291cmNlQ29k
ZSB7CisgICAgcHVibGljOgorICAgICAgICBTb3VyY2VDb2RlKCkKKyAgICAgICAgICAgIDogbV9w
cm92aWRlcigwKQorICAgICAgICAgICAgLCBtX3N0YXJ0Q2hhcigwKQorICAgICAgICAgICAgLCBt
X2VuZENoYXIoMCkKKyAgICAgICAgICAgICwgbV9maXJzdExpbmUoMCkKKyAgICAgICAgICAgICwg
bV9zdGFydENvbHVtbigwKQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICBTb3VyY2VD
b2RlKFdURjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVlVHlwZSkKKyAgICAgICAgICAgIDogbV9wcm92
aWRlcihXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZSkKKyAgICAgICAgeworICAgICAgICB9CisK
KyAgICAgICAgU291cmNlQ29kZShQYXNzUmVmUHRyPFNvdXJjZVByb3ZpZGVyPiBwcm92aWRlcikK
KyAgICAgICAgICAgIDogbV9wcm92aWRlcihwcm92aWRlcikKKyAgICAgICAgICAgICwgbV9zdGFy
dENoYXIoMCkKKyAgICAgICAgICAgICwgbV9lbmRDaGFyKG1fcHJvdmlkZXItPnNvdXJjZSgpLmxl
bmd0aCgpKQorICAgICAgICAgICAgLCBtX2ZpcnN0TGluZSgxKQorICAgICAgICAgICAgLCBtX3N0
YXJ0Q29sdW1uKDEpCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIFNvdXJjZUNvZGUo
UGFzc1JlZlB0cjxTb3VyY2VQcm92aWRlcj4gcHJvdmlkZXIsIGludCBmaXJzdExpbmUsIGludCBz
dGFydENvbHVtbikKKyAgICAgICAgICAgIDogbV9wcm92aWRlcihwcm92aWRlcikKKyAgICAgICAg
ICAgICwgbV9zdGFydENoYXIoMCkKKyAgICAgICAgICAgICwgbV9lbmRDaGFyKG1fcHJvdmlkZXIt
PnNvdXJjZSgpLmxlbmd0aCgpKQorICAgICAgICAgICAgLCBtX2ZpcnN0TGluZShzdGQ6Om1heChm
aXJzdExpbmUsIDEpKQorICAgICAgICAgICAgLCBtX3N0YXJ0Q29sdW1uKHN0ZDo6bWF4KHN0YXJ0
Q29sdW1uLCAxKSkKKyAgICAgICAgeworICAgICAgICB9CisKKyAgICAgICAgU291cmNlQ29kZShQ
YXNzUmVmUHRyPFNvdXJjZVByb3ZpZGVyPiBwcm92aWRlciwgaW50IHN0YXJ0LCBpbnQgZW5kLCBp
bnQgZmlyc3RMaW5lLCBpbnQgc3RhcnRDb2x1bW4pCisgICAgICAgICAgICA6IG1fcHJvdmlkZXIo
cHJvdmlkZXIpCisgICAgICAgICAgICAsIG1fc3RhcnRDaGFyKHN0YXJ0KQorICAgICAgICAgICAg
LCBtX2VuZENoYXIoZW5kKQorICAgICAgICAgICAgLCBtX2ZpcnN0TGluZShzdGQ6Om1heChmaXJz
dExpbmUsIDEpKQorICAgICAgICAgICAgLCBtX3N0YXJ0Q29sdW1uKHN0ZDo6bWF4KHN0YXJ0Q29s
dW1uLCAxKSkKKyAgICAgICAgeworICAgICAgICB9CisKKyAgICAgICAgYm9vbCBpc0hhc2hUYWJs
ZURlbGV0ZWRWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvdmlkZXIuaXNIYXNoVGFibGVEZWxl
dGVkVmFsdWUoKTsgfQorCisgICAgICAgIHVuc2lnbmVkIGhhc2goKSBjb25zdAorICAgICAgICB7
CisgICAgICAgICAgICBBU1NFUlQobV9wcm92aWRlcik7CisgICAgICAgICAgICByZXR1cm4gbV9w
cm92aWRlci0+aGFzaCgpOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nVmlldyB2aWV3KCkg
Y29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCFtX3Byb3ZpZGVyKQorICAgICAgICAg
ICAgICAgIHJldHVybiBTdHJpbmdWaWV3KCk7CisgICAgICAgICAgICByZXR1cm4gbV9wcm92aWRl
ci0+Z2V0UmFuZ2UobV9zdGFydENoYXIsIG1fZW5kQ2hhcik7CisgICAgICAgIH0KKyAgICAgICAg
CisgICAgICAgIENTdHJpbmcgdG9VVEY4KCkgY29uc3Q7CisgICAgICAgIAorICAgICAgICBpbnRw
dHJfdCBwcm92aWRlcklEKCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCFtX3By
b3ZpZGVyKQorICAgICAgICAgICAgICAgIHJldHVybiBTb3VyY2VQcm92aWRlcjo6bnVsbElEOwor
ICAgICAgICAgICAgcmV0dXJuIG1fcHJvdmlkZXItPmFzSUQoKTsKKyAgICAgICAgfQorICAgICAg
ICAKKyAgICAgICAgYm9vbCBpc051bGwoKSBjb25zdCB7IHJldHVybiAhbV9wcm92aWRlcjsgfQor
ICAgICAgICBTb3VyY2VQcm92aWRlciogcHJvdmlkZXIoKSBjb25zdCB7IHJldHVybiBtX3Byb3Zp
ZGVyLmdldCgpOyB9CisgICAgICAgIGludCBmaXJzdExpbmUoKSBjb25zdCB7IHJldHVybiBtX2Zp
cnN0TGluZTsgfQorICAgICAgICBpbnQgc3RhcnRDb2x1bW4oKSBjb25zdCB7IHJldHVybiBtX3N0
YXJ0Q29sdW1uOyB9CisgICAgICAgIGludCBzdGFydE9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1f
c3RhcnRDaGFyOyB9CisgICAgICAgIGludCBlbmRPZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX2Vu
ZENoYXI7IH0KKyAgICAgICAgaW50IGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fZW5kQ2hhciAt
IG1fc3RhcnRDaGFyOyB9CisgICAgICAgIAorICAgICAgICBTb3VyY2VDb2RlIHN1YkV4cHJlc3Np
b24odW5zaWduZWQgb3BlbkJyYWNlLCB1bnNpZ25lZCBjbG9zZUJyYWNlLCBpbnQgZmlyc3RMaW5l
LCBpbnQgc3RhcnRDb2x1bW4pOworCisgICAgcHJpdmF0ZToKKyAgICAgICAgUmVmUHRyPFNvdXJj
ZVByb3ZpZGVyPiBtX3Byb3ZpZGVyOworICAgICAgICBpbnQgbV9zdGFydENoYXI7CisgICAgICAg
IGludCBtX2VuZENoYXI7CisgICAgICAgIGludCBtX2ZpcnN0TGluZTsKKyAgICAgICAgaW50IG1f
c3RhcnRDb2x1bW47CisgICAgfTsKKworICAgIGlubGluZSBTb3VyY2VDb2RlIG1ha2VTb3VyY2Uo
Y29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IFN0cmluZyYgdXJsID0gU3RyaW5nKCksIGNvbnN0
IFRleHRQb3NpdGlvbiYgc3RhcnRQb3NpdGlvbiA9IFRleHRQb3NpdGlvbjo6bWluaW11bVBvc2l0
aW9uKCksIFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZSBzb3VyY2VUeXBlID0gU291cmNlUHJvdmlk
ZXJTb3VyY2VUeXBlOjpQcm9ncmFtKQorICAgIHsKKyAgICAgICAgcmV0dXJuIFNvdXJjZUNvZGUo
U3RyaW5nU291cmNlUHJvdmlkZXI6OmNyZWF0ZShzb3VyY2UsIHVybCwgc3RhcnRQb3NpdGlvbiwg
c291cmNlVHlwZSksIHN0YXJ0UG9zaXRpb24ubV9saW5lLm9uZUJhc2VkSW50KCksIHN0YXJ0UG9z
aXRpb24ubV9jb2x1bW4ub25lQmFzZWRJbnQoKSk7CisgICAgfQorICAgIAorICAgIGlubGluZSBT
b3VyY2VDb2RlIFNvdXJjZUNvZGU6OnN1YkV4cHJlc3Npb24odW5zaWduZWQgb3BlbkJyYWNlLCB1
bnNpZ25lZCBjbG9zZUJyYWNlLCBpbnQgZmlyc3RMaW5lLCBpbnQgc3RhcnRDb2x1bW4pCisgICAg
eworICAgICAgICBzdGFydENvbHVtbiArPSAxOyAvLyBDb252ZXJ0IHRvIGJhc2UgMS4KKyAgICAg
ICAgcmV0dXJuIFNvdXJjZUNvZGUocHJvdmlkZXIoKSwgb3BlbkJyYWNlLCBjbG9zZUJyYWNlICsg
MSwgZmlyc3RMaW5lLCBzdGFydENvbHVtbik7CisgICAgfQorCit9IC8vIG5hbWVzcGFjZSBKU0MK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvVW5saW5rZWRTb3VyY2VDb2RlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9VbmxpbmtlZFNvdXJj
ZUNvZGUuaAkocmV2aXNpb24gMjA5MTkyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9VbmxpbmtlZFNvdXJjZUNvZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEzLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzMsNDYg
KzMzLDM4IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi0gICAgY2xhc3MgU291cmNlQ29kZSB7Cisg
ICAgY2xhc3MgVW5saW5rZWRTb3VyY2VDb2RlIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFNvdXJj
ZUNvZGUoKQorICAgICAgICBVbmxpbmtlZFNvdXJjZUNvZGUoKQogICAgICAgICAgICAgOiBtX3By
b3ZpZGVyKDApCiAgICAgICAgICAgICAsIG1fc3RhcnRDaGFyKDApCiAgICAgICAgICAgICAsIG1f
ZW5kQ2hhcigwKQotICAgICAgICAgICAgLCBtX2ZpcnN0TGluZSgwKQotICAgICAgICAgICAgLCBt
X3N0YXJ0Q29sdW1uKDApCiAgICAgICAgIHsKICAgICAgICAgfQogCi0gICAgICAgIFNvdXJjZUNv
ZGUoV1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWVUeXBlKQorICAgICAgICBVbmxpbmtlZFNvdXJj
ZUNvZGUoV1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWVUeXBlKQogICAgICAgICAgICAgOiBtX3By
b3ZpZGVyKFdURjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVlKQogICAgICAgICB7CiAgICAgICAgIH0K
IAotICAgICAgICBTb3VyY2VDb2RlKFBhc3NSZWZQdHI8U291cmNlUHJvdmlkZXI+IHByb3ZpZGVy
KQorICAgICAgICBVbmxpbmtlZFNvdXJjZUNvZGUoUGFzc1JlZlB0cjxTb3VyY2VQcm92aWRlcj4g
cHJvdmlkZXIpCiAgICAgICAgICAgICA6IG1fcHJvdmlkZXIocHJvdmlkZXIpCiAgICAgICAgICAg
ICAsIG1fc3RhcnRDaGFyKDApCiAgICAgICAgICAgICAsIG1fZW5kQ2hhcihtX3Byb3ZpZGVyLT5z
b3VyY2UoKS5sZW5ndGgoKSkKLSAgICAgICAgICAgICwgbV9maXJzdExpbmUoMSkKLSAgICAgICAg
ICAgICwgbV9zdGFydENvbHVtbigxKQogICAgICAgICB7CiAgICAgICAgIH0KIAotICAgICAgICBT
b3VyY2VDb2RlKFBhc3NSZWZQdHI8U291cmNlUHJvdmlkZXI+IHByb3ZpZGVyLCBpbnQgZmlyc3RM
aW5lLCBpbnQgc3RhcnRDb2x1bW4pCisgICAgICAgIFVubGlua2VkU291cmNlQ29kZShQYXNzUmVm
UHRyPFNvdXJjZVByb3ZpZGVyPiBwcm92aWRlciwgaW50IHN0YXJ0T2Zmc2V0LCBpbnQgZW5kT2Zm
c2V0KQogICAgICAgICAgICAgOiBtX3Byb3ZpZGVyKHByb3ZpZGVyKQotICAgICAgICAgICAgLCBt
X3N0YXJ0Q2hhcigwKQotICAgICAgICAgICAgLCBtX2VuZENoYXIobV9wcm92aWRlci0+c291cmNl
KCkubGVuZ3RoKCkpCi0gICAgICAgICAgICAsIG1fZmlyc3RMaW5lKHN0ZDo6bWF4KGZpcnN0TGlu
ZSwgMSkpCi0gICAgICAgICAgICAsIG1fc3RhcnRDb2x1bW4oc3RkOjptYXgoc3RhcnRDb2x1bW4s
IDEpKQorICAgICAgICAgICAgLCBtX3N0YXJ0Q2hhcihzdGFydE9mZnNldCkKKyAgICAgICAgICAg
ICwgbV9lbmRDaGFyKGVuZE9mZnNldCkKICAgICAgICAgewogICAgICAgICB9CiAKLSAgICAgICAg
U291cmNlQ29kZShQYXNzUmVmUHRyPFNvdXJjZVByb3ZpZGVyPiBwcm92aWRlciwgaW50IHN0YXJ0
LCBpbnQgZW5kLCBpbnQgZmlyc3RMaW5lLCBpbnQgc3RhcnRDb2x1bW4pCi0gICAgICAgICAgICA6
IG1fcHJvdmlkZXIocHJvdmlkZXIpCi0gICAgICAgICAgICAsIG1fc3RhcnRDaGFyKHN0YXJ0KQot
ICAgICAgICAgICAgLCBtX2VuZENoYXIoZW5kKQotICAgICAgICAgICAgLCBtX2ZpcnN0TGluZShz
dGQ6Om1heChmaXJzdExpbmUsIDEpKQotICAgICAgICAgICAgLCBtX3N0YXJ0Q29sdW1uKHN0ZDo6
bWF4KHN0YXJ0Q29sdW1uLCAxKSkKKyAgICAgICAgVW5saW5rZWRTb3VyY2VDb2RlKGNvbnN0IFVu
bGlua2VkU291cmNlQ29kZSYgb3RoZXIpCisgICAgICAgICAgICA6IG1fcHJvdmlkZXIob3RoZXIu
bV9wcm92aWRlcikKKyAgICAgICAgICAgICwgbV9zdGFydENoYXIob3RoZXIubV9zdGFydENoYXIp
CisgICAgICAgICAgICAsIG1fZW5kQ2hhcihvdGhlci5tX2VuZENoYXIpCiAgICAgICAgIHsKICAg
ICAgICAgfQogCkBAIC05Myw0MCArODUsMTUgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIAog
ICAgICAgICBDU3RyaW5nIHRvVVRGOCgpIGNvbnN0OwogICAgICAgICAKLSAgICAgICAgaW50cHRy
X3QgcHJvdmlkZXJJRCgpIGNvbnN0Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGlmICghbV9wcm92
aWRlcikKLSAgICAgICAgICAgICAgICByZXR1cm4gU291cmNlUHJvdmlkZXI6Om51bGxJRDsKLSAg
ICAgICAgICAgIHJldHVybiBtX3Byb3ZpZGVyLT5hc0lEKCk7Ci0gICAgICAgIH0KLSAgICAgICAg
CiAgICAgICAgIGJvb2wgaXNOdWxsKCkgY29uc3QgeyByZXR1cm4gIW1fcHJvdmlkZXI7IH0KLSAg
ICAgICAgU291cmNlUHJvdmlkZXIqIHByb3ZpZGVyKCkgY29uc3QgeyByZXR1cm4gbV9wcm92aWRl
ci5nZXQoKTsgfQotICAgICAgICBpbnQgZmlyc3RMaW5lKCkgY29uc3QgeyByZXR1cm4gbV9maXJz
dExpbmU7IH0KLSAgICAgICAgaW50IHN0YXJ0Q29sdW1uKCkgY29uc3QgeyByZXR1cm4gbV9zdGFy
dENvbHVtbjsgfQogICAgICAgICBpbnQgc3RhcnRPZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX3N0
YXJ0Q2hhcjsgfQogICAgICAgICBpbnQgZW5kT2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9lbmRD
aGFyOyB9CiAgICAgICAgIGludCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2VuZENoYXIgLSBt
X3N0YXJ0Q2hhcjsgfQotICAgICAgICAKLSAgICAgICAgU291cmNlQ29kZSBzdWJFeHByZXNzaW9u
KHVuc2lnbmVkIG9wZW5CcmFjZSwgdW5zaWduZWQgY2xvc2VCcmFjZSwgaW50IGZpcnN0TGluZSwg
aW50IHN0YXJ0Q29sdW1uKTsKIAotICAgIHByaXZhdGU6CisgICAgcHJvdGVjdGVkOgogICAgICAg
ICBSZWZQdHI8U291cmNlUHJvdmlkZXI+IG1fcHJvdmlkZXI7CiAgICAgICAgIGludCBtX3N0YXJ0
Q2hhcjsKICAgICAgICAgaW50IG1fZW5kQ2hhcjsKLSAgICAgICAgaW50IG1fZmlyc3RMaW5lOwot
ICAgICAgICBpbnQgbV9zdGFydENvbHVtbjsKICAgICB9OwogCi0gICAgaW5saW5lIFNvdXJjZUNv
ZGUgbWFrZVNvdXJjZShjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgU3RyaW5nJiB1cmwgPSBT
dHJpbmcoKSwgY29uc3QgVGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9uID0gVGV4dFBvc2l0aW9u
OjptaW5pbXVtUG9zaXRpb24oKSwgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlIHNvdXJjZVR5cGUg
PSBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6OlByb2dyYW0pCi0gICAgewotICAgICAgICByZXR1
cm4gU291cmNlQ29kZShTdHJpbmdTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKHNvdXJjZSwgdXJsLCBz
dGFydFBvc2l0aW9uLCBzb3VyY2VUeXBlKSwgc3RhcnRQb3NpdGlvbi5tX2xpbmUub25lQmFzZWRJ
bnQoKSwgc3RhcnRQb3NpdGlvbi5tX2NvbHVtbi5vbmVCYXNlZEludCgpKTsKLSAgICB9Ci0gICAg
Ci0gICAgaW5saW5lIFNvdXJjZUNvZGUgU291cmNlQ29kZTo6c3ViRXhwcmVzc2lvbih1bnNpZ25l
ZCBvcGVuQnJhY2UsIHVuc2lnbmVkIGNsb3NlQnJhY2UsIGludCBmaXJzdExpbmUsIGludCBzdGFy
dENvbHVtbikKLSAgICB7Ci0gICAgICAgIHN0YXJ0Q29sdW1uICs9IDE7IC8vIENvbnZlcnQgdG8g
YmFzZSAxLgotICAgICAgICByZXR1cm4gU291cmNlQ29kZShwcm92aWRlcigpLCBvcGVuQnJhY2Us
IGNsb3NlQnJhY2UgKyAxLCBmaXJzdExpbmUsIHN0YXJ0Q29sdW1uKTsKLSAgICB9Ci0KIH0gLy8g
bmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNh
Y2hlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNh
Y2hlLmgJKHJldmlzaW9uIDIwOTE5NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvZGVDYWNoZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSAi
SlNDSW5saW5lcy5oIgogI2luY2x1ZGUgIlBhcnNlci5oIgogI2luY2x1ZGUgIlBhcnNlck1vZGVz
LmgiCi0jaW5jbHVkZSAiU291cmNlQ29kZS5oIgogI2luY2x1ZGUgIlNvdXJjZUNvZGVLZXkuaCIK
ICNpbmNsdWRlICJTdHJvbmcuaCIKICNpbmNsdWRlICJTdHJvbmdJbmxpbmVzLmgiCkBAIC0zOCw2
ICszNyw3IEBACiAjaW5jbHVkZSAiVW5saW5rZWRFdmFsQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAi
VW5saW5rZWRNb2R1bGVQcm9ncmFtQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiVW5saW5rZWRQcm9n
cmFtQ29kZUJsb2NrLmgiCisjaW5jbHVkZSAiVW5saW5rZWRTb3VyY2VDb2RlLmgiCiAjaW5jbHVk
ZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
</data>
<flag name="review"
          id="318438"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>