<?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>126644</bug_id>
          
          <creation_ts>2014-01-08 09:10:21 -0800</creation_ts>
          <short_desc>Add WTF::StringView and use it for grammar checking</short_desc>
          <delta_ts>2014-01-22 13:21:09 -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>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>118570</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>cshu</cc>
    
    <cc>darin</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>sam</cc>
    
    <cc>tonikitoo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>965510</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-01-08 09:10:21 -0800</bug_when>
    <thetext>Add WTF::StringView and use it for grammar checking</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965513</commentid>
    <comment_count>1</comment_count>
      <attachid>220638</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-01-08 09:23:32 -0800</bug_when>
    <thetext>Created attachment 220638
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965514</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-08 09:24:24 -0800</bug_when>
    <thetext>Attachment 220638 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/GNUmakefile.list.am&apos;, u&apos;Source/WTF/WTF.vcxproj/WTF.vcxproj&apos;, u&apos;Source/WTF/WTF.vcxproj/WTF.vcxproj.filters&apos;, u&apos;Source/WTF/WTF.xcodeproj/project.pbxproj&apos;, u&apos;Source/WTF/wtf/CMakeLists.txt&apos;, u&apos;Source/WTF/wtf/Forward.h&apos;, u&apos;Source/WTF/wtf/text/StringView.h&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/editing/TextCheckingHelper.cpp&apos;, u&apos;Source/WebCore/loader/EmptyClients.h&apos;, u&apos;Source/WebCore/platform/text/TextCheckerClient.h&apos;, u&apos;Source/WebKit/efl/ChangeLog&apos;, u&apos;Source/WebKit/efl/WebCoreSupport/EditorClientEfl.h&apos;, u&apos;Source/WebKit/mac/ChangeLog&apos;, u&apos;Source/WebKit/mac/WebCoreSupport/WebEditorClient.h&apos;, u&apos;Source/WebKit/mac/WebCoreSupport/WebEditorClient.mm&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebEditorClient.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebEditorClient.h&apos;, &apos;--commit-queue&apos;]&quot; exit_code: 1
ERROR: Source/WTF/wtf/text/StringView.h:27:  StringView_h is incorrect. #defined constants should use all uppercase names with words separated by underscores.  [readability/naming/define/constants] [4]
Total errors found: 1 in 20 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>965515</commentid>
    <comment_count>3</comment_count>
      <attachid>220638</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2014-01-08 09:29:09 -0800</bug_when>
    <thetext>Comment on attachment 220638
Patch

Attachment 220638 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/5268129038991360</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965516</commentid>
    <comment_count>4</comment_count>
      <attachid>220639</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-01-08 09:29:22 -0800</bug_when>
    <thetext>Created attachment 220639
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965518</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-08 09:31:00 -0800</bug_when>
    <thetext>Attachment 220639 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/GNUmakefile.list.am&apos;, u&apos;Source/WTF/WTF.vcxproj/WTF.vcxproj&apos;, u&apos;Source/WTF/WTF.vcxproj/WTF.vcxproj.filters&apos;, u&apos;Source/WTF/WTF.xcodeproj/project.pbxproj&apos;, u&apos;Source/WTF/wtf/CMakeLists.txt&apos;, u&apos;Source/WTF/wtf/Forward.h&apos;, u&apos;Source/WTF/wtf/text/StringView.h&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/editing/TextCheckingHelper.cpp&apos;, u&apos;Source/WebCore/loader/EmptyClients.h&apos;, u&apos;Source/WebCore/platform/text/TextCheckerClient.h&apos;, u&apos;Source/WebKit/efl/ChangeLog&apos;, u&apos;Source/WebKit/efl/WebCoreSupport/EditorClientEfl.h&apos;, u&apos;Source/WebKit/mac/ChangeLog&apos;, u&apos;Source/WebKit/mac/WebCoreSupport/WebEditorClient.h&apos;, u&apos;Source/WebKit/mac/WebCoreSupport/WebEditorClient.mm&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebEditorClient.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebEditorClient.h&apos;, &apos;--commit-queue&apos;]&quot; exit_code: 1
ERROR: Source/WTF/wtf/text/StringView.h:27:  StringView_h is incorrect. #defined constants should use all uppercase names with words separated by underscores.  [readability/naming/define/constants] [4]
Total errors found: 1 in 20 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>965521</commentid>
    <comment_count>6</comment_count>
      <attachid>220639</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-01-08 09:34:34 -0800</bug_when>
    <thetext>Comment on attachment 220639
Patch

Oops, this obviously won&apos;t work for 8-bit strings that can be 1-byte aligned.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965564</commentid>
    <comment_count>7</comment_count>
      <attachid>220646</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-01-08 11:26:09 -0800</bug_when>
    <thetext>Created attachment 220646
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965594</commentid>
    <comment_count>8</comment_count>
      <attachid>220646</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2014-01-08 12:33:03 -0800</bug_when>
    <thetext>Comment on attachment 220646
Patch

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

&gt; Source/WTF/ChangeLog:11
&gt; +        Add a new StringView class which is an immutable reference to either an 8-bit or a 16-bit string.
&gt; +
&gt; +        This makes it easier to pass substrings around without having to either copy string data
&gt; +        or upconvert and use UChar pointers.

Might be good to mention std::string_view proposal since the name may be surprising.

&gt; Source/WTF/wtf/text/StringView.h:36
&gt; +// (This means that strings longer than 2 Gigabytes can not be represented. If that turns out to be
&gt; +// a problem we can investigate alternative solutions).

Those parentheses seem unnecessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965606</commentid>
    <comment_count>9</comment_count>
      <attachid>220646</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2014-01-08 12:53:14 -0800</bug_when>
    <thetext>Comment on attachment 220646
Patch

Attachment 220646 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/5487205254430720</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965609</commentid>
    <comment_count>10</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-01-08 13:15:27 -0800</bug_when>
    <thetext>Committed r161518: &lt;http://trac.webkit.org/changeset/161518&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220638</attachid>
            <date>2014-01-08 09:23:32 -0800</date>
            <delta_ts>2014-01-08 09:29:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-126644-20140108092331.patch</filename>
            <type>text/plain</type>
            <size>28965</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYxNDc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDdlZDBhMjFhNGYxODdjMjk5YjkyNjNm
OGRiMDAxNmRlNWRmM2U2ZWMuLjZmNWQ2NjAyZTg4YWZlNzE0OTczYjk4YjMyZmRiMWQ2ZTg4OGY3
MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTQtMDEtMDggIEFuZGVycyBDYXJsc3NvbiAgPGFu
ZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgV1RGOjpTdHJpbmdWaWV3IGFuZCB1c2Ug
aXQgZm9yIGdyYW1tYXIgY2hlY2tpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEyNjY0NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBhIG5ldyBTdHJpbmdWaWV3IGNsYXNzIHdoaWNoIGlzIGFuIGlt
bXV0YWJsZSByZWZlcmVuY2UgdG8gZWl0aGVyIGFuIDgtYml0IG9yIGEgMTYtYml0IHN0cmluZy4K
KworICAgICAgICBUaGlzIG1ha2VzIGl0IGVhc2llciB0byBwYXNzIHN1YnN0cmluZ3MgYXJvdW5k
IHdpdGhvdXQgaGF2aW5nIHRvIGVpdGhlciBjb3B5IHN0cmluZyBkYXRhCisgICAgICAgIG9yIHVw
Y29udmVydCBhbmQgdXNlIFVDaGFyIHBvaW50ZXJzLgorCisgICAgICAgICogR05VbWFrZWZpbGUu
bGlzdC5hbToKKyAgICAgICAgKiBXVEYudmN4cHJvai9XVEYudmN4cHJvajoKKyAgICAgICAgKiBX
VEYudmN4cHJvai9XVEYudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIFdURi54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHd0Zi9DTWFrZUxpc3RzLnR4dDoKKyAgICAgICAg
KiB3dGYvRm9yd2FyZC5oOgorICAgICAgICAqIHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaDogQWRkZWQu
CisgICAgICAgIChXVEY6OlN0cmluZ1ZpZXc6OlN0cmluZ1ZpZXcpOgorICAgICAgICAoV1RGOjpT
dHJpbmdWaWV3OjplbXB0eSk6CisgICAgICAgIChXVEY6OlN0cmluZ1ZpZXc6OmNoYXJhY3RlcnM4
KToKKyAgICAgICAgKFdURjo6U3RyaW5nVmlldzo6Y2hhcmFjdGVyczE2KToKKyAgICAgICAgKFdU
Rjo6U3RyaW5nVmlldzo6aXNFbXB0eSk6CisgICAgICAgIChXVEY6OlN0cmluZ1ZpZXc6Omxlbmd0
aCk6CisgICAgICAgIChXVEY6OlN0cmluZ1ZpZXc6OmlzOEJpdCk6CisgICAgICAgIChXVEY6OlN0
cmluZ1ZpZXc6OnN1YnN0cmluZyk6CisgICAgICAgIChXVEY6OlN0cmluZ1ZpZXc6OnRvU3RyaW5n
KToKKyAgICAgICAgKFdURjo6U3RyaW5nVmlldzo6dG9TdHJpbmdXaXRob3V0Q29weWluZyk6Cisg
ICAgICAgIChXVEY6OlN0cmluZ1ZpZXc6OmVuY29kZWRDaGFyYWN0ZXJzKToKKwogMjAxNC0wMS0w
NyAgRGF2aWQgRmFybGVyICA8ZGZhcmxlckBhcHBsZS5jb20+CiAKICAgICAgICAgW0FTQU5dIEJ1
aWxkaW5nIHdpdGggdHJ1bmsgY2xhbmcgY29ycnVwdHMgc2FuZGJveCBwcm9maWxlIHdpdGggY29t
bWVudCBmcm9tIENvbXBpbGVyLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjNzU3OWRiY2I0YzBiOTdjYTk2YzI0
ZWNhYTU5MWU0MjM4OWRkMzU3Li5lY2ZhZGI4NGFlYWViYzY4ZTNiMjg3YTYxZDg5NjhmZjYwMTNh
MWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTQtMDEtMDggIEFuZGVycyBDYXJs
c3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgV1RGOjpTdHJpbmdWaWV3
IGFuZCB1c2UgaXQgZm9yIGdyYW1tYXIgY2hlY2tpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNjY0NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBhIFN0cmluZ1ZpZXcgaW4gVGV4dENoZWNrZXJD
bGllbnQ6OmNoZWNrVGV4dE9mUGFyYWdyYXBoIHRvIGF2b2lkIHVwY29udmVydGluZyBzdHJpbmdz
IHVubmVjZXNzYXJpbHkuCisKKyAgICAgICAgKiBlZGl0aW5nL1RleHRDaGVja2luZ0hlbHBlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpjaGVja1RleHRPZlBhcmFncmFwaCk6CisgICAgICAgIFBh
c3MgYSBTdHJpbmdWaWV3IHRvIFRleHRDaGVja2VyQ2xpZW50OjpjaGVja1RleHRPZlBhcmFncmFw
aC4KKyAgICAgICAgCisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICBV
cGRhdGUgZm9yIFRleHRDaGVja2VyQ2xpZW50IGNoYW5nZXMuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS90ZXh0L1RleHRDaGVja2VyQ2xpZW50Lmg6CisgICAgICAgIENoYW5nZSBUZXh0Q2hlY2tlckNs
aWVudDo6Y2hlY2tUZXh0T2ZQYXJhZ3JhcGggdG8gdGFrZSBhIFN0cmluZ1ZpZXcuCisgICAgICAg
IAogMjAxNC0wMS0wNyAgU2Vva2p1IEt3b24gIDxzZW9ranVAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBXZWIgSW5zcGVjdG9yOiBSZW1vdmUgbGVmdG92ZXIgJ2RldmljZSBtZXRyaWNzJyBjb2RlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9DaGFuZ2VMb2cKaW5kZXggYTI0NDYxZTdlY2VmOGI4MWU5YWVjZjczNTczNWFiZTUxMzY5OTY5
OC4uYjI2ZTc2NzJjYTNhMzE0NWQ5NGJmNGIzMGNkYzA4ZDg3MDViYWZjNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE0LTAxLTA4ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRl
cnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIFdURjo6U3RyaW5nVmlldyBhbmQgdXNlIGl0
IGZvciBncmFtbWFyIGNoZWNraW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMjY2NDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBVcGRhdGUgdG8gbWF0Y2ggV2ViQ29yZSBjaGFuZ2VzLgorCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmg6CisgICAgICAgIChXZWJDb3JlOjpF
ZGl0b3JDbGllbnRFZmw6OmNoZWNrVGV4dE9mUGFyYWdyYXBoKToKKwogMjAxNC0wMS0wNSAgSmlu
d29vIFNvbmcgIDxqaW53b283LnNvbmdAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0gRml4
IGZhaWxpbmcgV2ViS2l0MSBBUEkgdGVzdCBvZiBld2tfdmlld19zZXR0aW5nX3RpbGVkX2JhY2tp
bmdfc3RvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCBjM2EzZWIxNWRkYTU3ZWVkMGU3YjczZWIyZGQy
ZmQ4Njc2OTIxY2I5Li45MWE5Nzg4MWFmN2MwYmUwOWIxZDBkYmE5MDc3MThlYWQ1M2MxYzUyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTQtMDEtMDggIEFuZGVycyBDYXJs
c3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgV1RGOjpTdHJpbmdWaWV3
IGFuZCB1c2UgaXQgZm9yIGdyYW1tYXIgY2hlY2tpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNjY0NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgorICAgICAg
ICAoV2ViRWRpdG9yQ2xpZW50OjpjaGVja1RleHRPZlBhcmFncmFwaCk6CisgICAgICAgIFVwZGF0
ZSB0byBtYXRjaCB0aGUgbmV3IHNpZ25hdHVyZS4KKworICAgICAgICAobnNTdHJpbmdXaXRob3V0
Q29weWluZyk6CisgICAgICAgIE5ldyBmdW5jdGlvbiB0aGF0IGNyZWF0ZXMgYW4gTlNTdHJpbmcg
dGhhdCByZWZlcmVuY2VzIFN0cmluZ1ZpZXcgZGF0YQorICAgICAgICB3aXRob3V0IGNvcHlpbmcg
dGhlIGRhdGEuIChJZiB0aGlzIGZ1bmN0aW9uIHByb3ZlcyB0byBiZSB1c2VmdWwgZWxzZXdoZXJl
LCBpdCBjb3VsZAorICAgICAgICBwb3RlbnRpYWxseSBiZSBhZGRlZCB0byBTdHJpbmdWaWV3KS4K
KwogMjAxNC0wMS0wNyAgU2Vva2p1IEt3b24gIDxzZW9ranVAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBXZWIgSW5zcGVjdG9yOiBSZW1vdmUgbGVmdG92ZXIgJ2RldmljZSBtZXRyaWNzJyBjb2RlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKaW5kZXggZWEyZTdiZDA0ZDMxMGM4OGE3MGI4MTk2NTE5MjA5ZGYyODlkNzQyMy4uNjdk
ZjFiYjViODI2NjJlMDA4ODg5MGFhMTg5NGNhOTQ3Yjk2N2ZmNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE2IEBACisyMDE0LTAxLTA4ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIFdURjo6U3RyaW5nVmlldyBhbmQgdXNlIGl0IGZvciBncmFtbWFy
IGNoZWNraW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMjY2NDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBVc2UgYSBTdHJpbmdWaWV3IGFuZCByZW1vdmUgYSBGSVhNRS4KKworICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViRWRpdG9yQ2xpZW50OjpjaGVja1RleHRPZlBhcmFncmFwaCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaDoKKwogMjAxNC0wMS0wNyAg
Smlud29vIFNvbmcgIDxqaW53b283LnNvbmdAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF1b
V0syXSBGaXggZmFpbGluZyBld2tfdmlld19wYWdlX2NvbnRlbnRzX2dldCgpIEFQSSB0ZXN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV1RGL0dO
VW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggNzY3ZTI5MWVhMWZlMGNjYmY4OGVlMDIzMDZhNjQ1YWJl
Yzk4NjljMy4uNzRhNGRlNmRiNjRlMWUzOGY0NDA3ZDNiM2E1YzEyYzdlNTY4ODNiYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XVEYvR05V
bWFrZWZpbGUubGlzdC5hbQpAQCAtMTU3LDkgKzE1NywxMCBAQCB3dGZfc291cmNlcyArPSBcCiAg
ICAgU291cmNlL1dURi93dGYvU3RyZWFtQnVmZmVyLmggXAogICAgIFNvdXJjZS9XVEYvd3RmL1N0
cmluZ0V4dHJhcy5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9TdHJpbmdIYXNoRHVtcENvbnRleHQu
aCBcCisgICAgU291cmNlL1dURi93dGYvU3RyaW5nSGFzaGVyLmggXAogICAgIFNvdXJjZS9XVEYv
d3RmL1N0cmluZ1ByaW50U3RyZWFtLmNwcCBcCiAgICAgU291cmNlL1dURi93dGYvU3RyaW5nUHJp
bnRTdHJlYW0uaCBcCi0gICAgU291cmNlL1dURi93dGYvU3RyaW5nSGFzaGVyLmggXAorICAgIFNv
dXJjZS9XVEYvd3RmL1N0cmluZ1ZpZXcuaCBcCiAgICAgU291cmNlL1dURi93dGYvVENQYWNrZWRD
YWNoZS5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9UQ1BhZ2VNYXAuaCBcCiAgICAgU291cmNlL1dU
Ri93dGYvVENTcGluTG9jay5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnZjeHByb2ov
V1RGLnZjeHByb2ogYi9Tb3VyY2UvV1RGL1dURi52Y3hwcm9qL1dURi52Y3hwcm9qCmluZGV4IDY5
OWU3NzQ4OGM4NTIyZTZjYTVjY2JlNzUxMjE4ODg0M2I5ZThiOTkuLmNkMTVhODk4ZTNhODNhNzI4
MmY5Mjg5ZTZjZmI5OGFiN2ViMmEwNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnZjeHBy
b2ovV1RGLnZjeHByb2oKKysrIGIvU291cmNlL1dURi9XVEYudmN4cHJvai9XVEYudmN4cHJvagpA
QCAtMjcyLDYgKzI3Miw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcU3RyaW5n
RXh0cmFzLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcU3RyaW5nSGFzaGVy
LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcU3RyaW5nUHJpbnRTdHJlYW0u
aCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxTdHJpbmdWaWV3LmgiIC8+CiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcVENQYWNrZWRDYWNoZS5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXFRDUGFnZU1hcC5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cd3RmXFRDU3BpbkxvY2suaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
V1RGLnZjeHByb2ovV1RGLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9XVEYvV1RGLnZjeHByb2ov
V1RGLnZjeHByb2ouZmlsdGVycwppbmRleCA3YjdmMWQ0N2E5ZjU0MjkwODdmYzRkODEzNjA0YWMx
MjcwNjc3ZGQwLi5lNTM0NTM3NDBmNGVmZmQxYWM4MzMwZjMwYzIwMmQ5YTY3Zjc5MmZkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL1dURi52Y3hwcm9qL1dURi52Y3hwcm9qLmZpbHRlcnMKKysrIGIv
U291cmNlL1dURi9XVEYudmN4cHJvai9XVEYudmN4cHJvai5maWx0ZXJzCkBAIC02MjcsNiArNjI3
LDkgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxTdHJpbmdQcmludFN0cmVhbS5o
Ij4KICAgICAgIDxGaWx0ZXI+d3RmPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcU3RyaW5nVmlldy5oIj4KKyAgICAgIDxGaWx0ZXI+d3Rm
PC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3
dGZcVENQYWNrZWRDYWNoZS5oIj4KICAgICAgIDxGaWx0ZXI+d3RmPC9GaWx0ZXI+CiAgICAgPC9D
bEluY2x1ZGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAz
YmU5NGM3YTA5NjQyZTFhZjU0NzY3ZWNiYTUwNmY4YTU0MWY3YWFhLi4yYWQ1NTk0NDZmZmE1NzBl
N2YyYjY4MDFjNWQ5ZGVhNTIzMjE2NzgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTU1LDYgKzU1LDcgQEAKIAkJMUExRDhCOUUxNzMxODc5ODAwMTQxREE0
IC8qIEZ1bmN0aW9uRGlzcGF0Y2hlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQTFEOEI5RDE3MzE4Nzk4MDAxNDFEQTQgLyogRnVuY3Rpb25EaXNw
YXRjaGVyLmNwcCAqLzsgfTsKIAkJMUEyMzNDN0QxN0RBQTZFMzAwQTkzQUNGIC8qIE1hbGxvY1B0
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEyMzND
N0MxN0RBQTZFMzAwQTkzQUNGIC8qIE1hbGxvY1B0ci5oICovOyB9OwogCQkxQTZCQjc2OTE2MkYz
MDA1MDBERDE2REIgLyogU3RyZWFtQnVmZmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQTZCQjc2ODE2MkYzMDA1MDBERDE2REIgLyogU3RyZWFtQnVm
ZmVyLmggKi87IH07CisJCTFBNkVCMUUwMTg3RDBCRDMwMDMwMTI2RiAvKiBTdHJpbmdWaWV3Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTZFQjFERjE4
N0QwQkQzMDAzMDEyNkYgLyogU3RyaW5nVmlldy5oICovOyB9OwogCQkxRkE0N0M4QTE1MjUwMkRB
MDA1NjhEMUIgLyogV2ViQ29yZVRocmVhZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxRkE0N0M4ODE1MjUwMkRBMDA1NjhEMUIgLyogV2ViQ29yZVRo
cmVhZC5jcHAgKi87IH07CiAJCTFGQTQ3QzhCMTUyNTAyREEwMDU2OEQxQiAvKiBXZWJDb3JlVGhy
ZWFkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRkE0
N0M4OTE1MjUwMkRBMDA1NjhEMUIgLyogV2ViQ29yZVRocmVhZC5oICovOyB9OwogCQkyNjE0N0Iw
QTE1RERDQ0RDMDBEREI5MDcgLyogSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjYxNDdCMDgxNUREQ0NEQzAw
RERCOTA3IC8qIEludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uaCAqLzsgfTsKQEAgLTMyMiw2ICsz
MjMsNyBAQAogCQkxQTIzM0M3QzE3REFBNkUzMDBBOTNBQ0YgLyogTWFsbG9jUHRyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hbGxvY1B0ci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxQTNGNkJFNjE3NEFEQTIxMDBCMkVFQTcgLyogTmV2ZXJEZXN0cm95ZWQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTmV2ZXJEZXN0cm95ZWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMUE2QkI3NjgxNjJGMzAwNTAwREQxNkRCIC8qIFN0cmVhbUJ1ZmZlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHJlYW1CdWZmZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMUE2RUIxREYxODdEMEJEMzAwMzAxMjZGIC8qIFN0cmluZ1ZpZXcu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RyaW5nVmlldy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxRkE0N0M4ODE1MjUwMkRBMDA1NjhEMUIgLyogV2ViQ29y
ZVRocmVhZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb3Jl
VGhyZWFkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUZBNDdDODkxNTI1MDJE
QTAwNTY4RDFCIC8qIFdlYkNvcmVUaHJlYWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViQ29yZVRocmVhZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNjE0
N0IwODE1RERDQ0RDMDBEREI5MDcgLyogSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05MDUsNiArOTA3LDcgQEAKIAkJCQlBOEE0
NzMyQzE1MUE4MjVCMDA0MTIzRkYgLyogVGV4dFBvc2l0aW9uLmggKi8sCiAJCQkJQThBNDczMkQx
NTFBODI1QjAwNDEyM0ZGIC8qIFdURlN0cmluZy5jcHAgKi8sCiAJCQkJQThBNDczMkUxNTFBODI1
QjAwNDEyM0ZGIC8qIFdURlN0cmluZy5oICovLAorCQkJCTFBNkVCMURGMTg3RDBCRDMwMDMwMTI2
RiAvKiBTdHJpbmdWaWV3LmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IHRleHQ7CiAJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOwpAQCAtMTEwNCw2ICsxMTA3LDcgQEAKIAkJCQlBOEE0NzQyRjE1MUE4
MjVCMDA0MTIzRkYgLyogVENQYWdlTWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzQzMDE1
MUE4MjVCMDA0MTIzRkYgLyogVENTcGluTG9jay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDc0
MzIxNTFBODI1QjAwNDEyM0ZGIC8qIFRDU3lzdGVtQWxsb2MuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTFBNkVCMUUwMTg3RDBCRDMwMDMwMTI2RiAvKiBTdHJpbmdWaWV3LmggaW4gSGVhZGVycyAqLywK
IAkJCQlBOEE0NzQzMzE1MUE4MjVCMDA0MTIzRkYgLyogVGVtcG9yYXJ5Q2hhbmdlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBOEE0NzQ0NDE1MUE4MjVCMDA0MTIzRkYgLyogVGV4dFBvc2l0aW9uLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzQ0NzE1MUE4MjVCMDA0MTIzRkYgLyogVGhyZWFkRnVu
Y3Rpb25JbnZvY2F0aW9uLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKaW5kZXgg
MzcyM2M3NWVlZmRiYTVhZTg5MmY4ZTQ5YWU3YTlmZDM0Zjg4MzgzYS4uMzMyMGIxZjA0ZWE4YTM0
YTNjNGU2N2QxN2VjZTFmN2NhMDA5NGYzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ01h
a2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKQEAgLTk2LDYg
Kzk2LDcgQEAgc2V0KFdURl9IRUFERVJTCiAgICAgU3RyaW5nRXh0cmFzLmgKICAgICBTdHJpbmdI
YXNoZXIuaAogICAgIFN0cmluZ1ByaW50U3RyZWFtLmgKKyAgICBTdHJpbmdWaWV3LmgKICAgICBU
Q1BhY2tlZENhY2hlLmgKICAgICBUQ1BhZ2VNYXAuaAogICAgIFRDU3BpbkxvY2suaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvRm9yd2FyZC5oIGIvU291cmNlL1dURi93dGYvRm9yd2FyZC5o
CmluZGV4IGYxYzIyM2ZmOTEyNzNjNDVlYmYzZWVlYmVhY2QzYjc4Njg4OTk0MjEuLjE2N2NhZmIy
MDA4ODQxZDJkMjEwOTI1MjBiMDNhNzY3MjM4OGM0YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL0ZvcndhcmQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Gb3J3YXJkLmgKQEAgLTQ3LDYgKzQ3
LDcgQEAgY2xhc3MgUHJpbnRTdHJlYW07CiBjbGFzcyBTdHJpbmc7CiBjbGFzcyBTdHJpbmdCdWls
ZGVyOwogY2xhc3MgU3RyaW5nSW1wbDsKK2NsYXNzIFN0cmluZ1ZpZXc7CiAKIH0KIApAQCAtNjks
NiArNzAsNyBAQCB1c2luZyBXVEY6OlN0cmluZzsKIHVzaW5nIFdURjo6U3RyaW5nQnVmZmVyOwog
dXNpbmcgV1RGOjpTdHJpbmdCdWlsZGVyOwogdXNpbmcgV1RGOjpTdHJpbmdJbXBsOwordXNpbmcg
V1RGOjpTdHJpbmdWaWV3OwogdXNpbmcgV1RGOjpWZWN0b3I7CiAKICNlbmRpZiAvLyBXVEZfRm9y
d2FyZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ1ZpZXcuaCBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nVmlldy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE4YmQ4OWJlZGVlZDcz
MWJjZDNmZTFjMDhmZjhmNGE4MGFjOGJhOWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L1N0cmluZ1ZpZXcuaApAQCAtMCwwICsxLDE0NiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgU3RyaW5nVmlld19oCisjZGVmaW5lIFN0cmluZ1ZpZXdfaAorCisjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXVEYgeworCisvLyBTdHJpbmdWaWV3IGlz
IGEgbm9uLW93bmluZyByZWZlcmVuY2UgdG8gYSBzdHJpbmcsIHNpbWlsYXIgdG8gdGhlIHByb3Bv
c2VkIHN0ZDo6c3RyaW5nX3ZpZXcuCisvLyBXaGV0aGVyIHRoZSBzdHJpbmcgaXMgOC1iaXQgb3Ig
MTYtYml0IGlzIGVuY29kZWQgaW4gdGhlIGJvdHRvbSBiaXQgb2YgdGhlIGNoYXJhY3RlcnMgcG9p
bnRlci4KKworY2xhc3MgU3RyaW5nVmlldyB7CitwdWJsaWM6CisgICAgU3RyaW5nVmlldyhjb25z
dCBMQ2hhciAqY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQorICAgICAgICA6IG1fZW5jb2Rl
ZENoYXJhY3RlcnMoZW5jb2RlZENoYXJhY3RlcnMoY2hhcmFjdGVycykpCisgICAgICAgICwgbV9s
ZW5ndGgobGVuZ3RoKQorICAgIHsKKyAgICB9CisKKyAgICBTdHJpbmdWaWV3KGNvbnN0IFVDaGFy
ICpjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgpCisgICAgICAgIDogbV9lbmNvZGVkQ2hhcmFj
dGVycyhlbmNvZGVkQ2hhcmFjdGVycyhjaGFyYWN0ZXJzKSkKKyAgICAgICAgLCBtX2xlbmd0aChs
ZW5ndGgpCisgICAgeworICAgIH0KKworICAgIFN0cmluZ1ZpZXcoY29uc3QgU3RyaW5nJiBzdHJp
bmcpCisgICAgICAgIDogbV9lbmNvZGVkQ2hhcmFjdGVycyhlbmNvZGVkQ2hhcmFjdGVycyhzdHJp
bmcuaW1wbCgpKSkKKyAgICAgICAgLCBtX2xlbmd0aChzdHJpbmcubGVuZ3RoKCkpCisgICAgewor
ICAgIH0KKworICAgIHN0YXRpYyBTdHJpbmdWaWV3IGVtcHR5KCkKKyAgICB7CisgICAgICAgIHJl
dHVybiBTdHJpbmdWaWV3KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiIiksIDApOwor
ICAgIH0KKworICAgIEFMV0FZU19JTkxJTkUgY29uc3QgTENoYXIqIGNoYXJhY3RlcnM4KCkgY29u
c3QKKyAgICB7CisgICAgICAgIEFTU0VSVChpczhCaXQoKSk7CisKKyAgICAgICAgcmV0dXJuIHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPihtX2VuY29kZWRDaGFyYWN0ZXJzKTsKKyAgICB9
CisKKyAgICBBTFdBWVNfSU5MSU5FIGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzMTYoKSBjb25zdAor
ICAgIHsKKyAgICAgICAgQVNTRVJUKCFpczhCaXQoKSk7CisKKyAgICAgICAgcmV0dXJuIHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgVUNoYXIqPihtX2VuY29kZWRDaGFyYWN0ZXJzICYgfjEpOworICAg
IH0KKworICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuICFtX2xlbmd0aDsgfQorICAg
IHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbGVuZ3RoOyB9CisKKyAgICBib29s
IGlzOEJpdCgpIGNvbnN0IHsgcmV0dXJuICEobV9lbmNvZGVkQ2hhcmFjdGVycyAmIDEpOyB9CisK
KyAgICBTdHJpbmdWaWV3IHN1YnN0cmluZyh1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3Ro
ID0gc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpKSBjb25zdAorICAgIHsKKyAg
ICAgICAgaWYgKHN0YXJ0ID49IG1fbGVuZ3RoKQorICAgICAgICAgICAgcmV0dXJuIGVtcHR5KCk7
CisgICAgICAgIHVuc2lnbmVkIG1heExlbmd0aCA9IG1fbGVuZ3RoIC0gc3RhcnQ7CisKKyAgICAg
ICAgaWYgKGxlbmd0aCA+PSBtYXhMZW5ndGgpIHsKKyAgICAgICAgICAgIGlmICghc3RhcnQpCisg
ICAgICAgICAgICAgICAgcmV0dXJuICp0aGlzOworICAgICAgICAgICAgbGVuZ3RoID0gbWF4TGVu
Z3RoOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGlzOEJpdCgpKQorICAgICAgICAgICAgcmV0
dXJuIFN0cmluZ1ZpZXcoY2hhcmFjdGVyczgoKSArIHN0YXJ0LCBsZW5ndGgpOworCisgICAgICAg
IHJldHVybiBTdHJpbmdWaWV3KGNoYXJhY3RlcnMxNigpICsgc3RhcnQsIGxlbmd0aCk7CisgICAg
fQorCisgICAgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3QKKyAgICB7CisgICAgICAgIGlmIChpczhC
aXQoKSkKKyAgICAgICAgICAgIHJldHVybiBTdHJpbmcoY2hhcmFjdGVyczgoKSwgbV9sZW5ndGgp
OworCisgICAgICAgIHJldHVybiBTdHJpbmcoY2hhcmFjdGVyczE2KCksIG1fbGVuZ3RoKTsKKyAg
ICB9CisKKyAgICBTdHJpbmcgdG9TdHJpbmdXaXRob3V0Q29weWluZygpIGNvbnN0CisgICAgewor
ICAgICAgICBpZiAoaXM4Qml0KCkpCisgICAgICAgICAgICByZXR1cm4gU3RyaW5nSW1wbDo6Y3Jl
YXRlV2l0aG91dENvcHlpbmcoY2hhcmFjdGVyczgoKSwgbV9sZW5ndGgpOworCisgICAgICAgIHJl
dHVybiBTdHJpbmdJbXBsOjpjcmVhdGVXaXRob3V0Q29weWluZyhjaGFyYWN0ZXJzMTYoKSwgbV9s
ZW5ndGgpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBzdGF0aWMgdWludHB0cl90IGVuY29kZWRD
aGFyYWN0ZXJzKFN0cmluZ0ltcGwqIGltcGwpCisgICAgeworICAgICAgICBpZiAoIWltcGwpCisg
ICAgICAgICAgICByZXR1cm4gMDsKKworICAgICAgICBpZiAoaW1wbC0+aXM4Qml0KCkpCisgICAg
ICAgICAgICByZXR1cm4gZW5jb2RlZENoYXJhY3RlcnMoaW1wbC0+Y2hhcmFjdGVyczgoKSk7CisK
KyAgICAgICAgcmV0dXJuIGVuY29kZWRDaGFyYWN0ZXJzKGltcGwtPmNoYXJhY3RlcnMxNigpKTsK
KyAgICB9CisKKyAgICBzdGF0aWMgdWludHB0cl90IGVuY29kZWRDaGFyYWN0ZXJzKGNvbnN0IFVD
aGFyKiBjaGFyYWN0ZXJzKQorICAgIHsKKyAgICAgICAgQVNTRVJUKCEocmVpbnRlcnByZXRfY2Fz
dDx1aW50cHRyX3Q+KGNoYXJhY3RlcnMpICYgMSkpOworICAgICAgICByZXR1cm4gcmVpbnRlcnBy
ZXRfY2FzdDx1aW50cHRyX3Q+KGNoYXJhY3RlcnMpIHwgMTsKKyAgICB9CisKKyAgICBzdGF0aWMg
dWludHB0cl90IGVuY29kZWRDaGFyYWN0ZXJzKGNvbnN0IExDaGFyKiBjaGFyYWN0ZXJzKQorICAg
IHsKKyAgICAgICAgQVNTRVJUKCEocmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNoYXJhY3Rl
cnMpICYgMSkpOworICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNo
YXJhY3RlcnMpOworICAgIH0KKworICAgIHVpbnRwdHJfdCBtX2VuY29kZWRDaGFyYWN0ZXJzOwor
ICAgIHVuc2lnbmVkIG1fbGVuZ3RoOworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKK3VzaW5n
IFdURjo6U3RyaW5nVmlldzsKKworI2VuZGlmIC8vIFN0cmluZ1ZpZXdfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3BwCmluZGV4IDIyY2I5OGJlYTYxMDFi
ODM5YzU1NDJkMTIxNWY2ZDNlYWQxODk3NDYuLmUxY2UxNDYwZTA5YmIwM2M5MWQ4NmI3ZGQ3YTU0
ZTdmZTE1YzRlMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dENoZWNr
aW5nSGVscGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRDaGVja2luZ0hl
bHBlci5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKICNp
bmNsdWRlICJWaXNpYmxlUG9zaXRpb24uaCIKICNpbmNsdWRlICJWaXNpYmxlVW5pdHMuaCIKKyNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdWaWV3Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApA
QCAtNjM5LDcgKzY0MCw3IEBAIHZvaWQgY2hlY2tUZXh0T2ZQYXJhZ3JhcGgoVGV4dENoZWNrZXJD
bGllbnQqIGNsaWVudCwgY29uc3QgVUNoYXIqIHRleHQsIGludCBsZW5nCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFRleHRDaGVja2luZ1R5cGVNYXNrIGNoZWNraW5nVHlwZXMsIFZlY3RvcjxU
ZXh0Q2hlY2tpbmdSZXN1bHQ+JiByZXN1bHRzKQogewogI2lmIFVTRShVTklGSUVEX1RFWFRfQ0hF
Q0tJTkcpCi0gICAgY2xpZW50LT5jaGVja1RleHRPZlBhcmFncmFwaCh0ZXh0LCBsZW5ndGgsIGNo
ZWNraW5nVHlwZXMsIHJlc3VsdHMpOworICAgIHJlc3VsdHMgPSBjbGllbnQtPmNoZWNrVGV4dE9m
UGFyYWdyYXBoKFN0cmluZ1ZpZXcodGV4dCwgbGVuZ3RoKSwgY2hlY2tpbmdUeXBlcyk7CiAjZWxz
ZQogICAgIFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+IHNwZWxsaW5nUmVzdWx0OwogICAgIGlm
IChjaGVja2luZ1R5cGVzICYgVGV4dENoZWNraW5nVHlwZVNwZWxsaW5nKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IGRhNjNjZjY0ZmQ2ZTU2NDY3ZTk4ODJlOWZlN2IzMGFl
YzY5ZDZkMzYuLmEyNzRmNmFhYmEzMDhiNTRlMDJmOWI1ZDkyYWI3ODBmMWQ2ZGMzOWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRl
ICJJbnNwZWN0b3JDbGllbnQuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUmVzb3Vy
Y2VFcnJvci5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaD4KIAogLyoKICBUaGlz
IGZpbGUgaG9sZHMgZW1wdHkgQ2xpZW50IHN0dWJzIGZvciB1c2UgYnkgV2ViQ29yZS4KQEAgLTQy
NSw3ICs0MjYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNoZWNrR3JhbW1hck9mU3Ry
aW5nKGNvbnN0IFVDaGFyKiwgaW50LCBWZWN0b3I8R3JhbW1hckRldGFpbD4mLCBpbnQqLCBpbnQq
KSBPVkVSUklERSB7IH0KIAogI2lmIFVTRShVTklGSUVEX1RFWFRfQ0hFQ0tJTkcpCi0gICAgdmly
dHVhbCB2b2lkIGNoZWNrVGV4dE9mUGFyYWdyYXBoKGNvbnN0IFVDaGFyKiwgaW50LCBUZXh0Q2hl
Y2tpbmdUeXBlTWFzaywgVmVjdG9yPFRleHRDaGVja2luZ1Jlc3VsdD4mKSBPVkVSUklERSB7IH07
CisgICAgdmlydHVhbCBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0PiBjaGVja1RleHRPZlBhcmFn
cmFwaChTdHJpbmdWaWV3LCBUZXh0Q2hlY2tpbmdUeXBlTWFzaykgT1ZFUlJJREUgeyByZXR1cm4g
VmVjdG9yPFRleHRDaGVja2luZ1Jlc3VsdD4oKTsgfQogI2VuZGlmCiAKICAgICB2aXJ0dWFsIHZv
aWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgVmVjdG9y
PFN0cmluZz4mKSBPVkVSUklERSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvVGV4dENoZWNrZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvVGV4dENoZWNrZXJDbGllbnQuaAppbmRleCA4MDNiZmI4OGI4ZjQ1MzQyYzk2ZTMwZmI3OTBj
NGU1NjhkNjA4Y2JlLi4wNTRmYjExZWNmODllNjgxZDVlOGVlMmFlZmViNmNhZTVjMjhlZjlmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDaGVja2VyQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q2hlY2tlckNsaWVudC5o
CkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY2hlY2tHcmFtbWFy
T2ZTdHJpbmcoY29uc3QgVUNoYXIqLCBpbnQgbGVuZ3RoLCBWZWN0b3I8R3JhbW1hckRldGFpbD4m
LCBpbnQqIGJhZEdyYW1tYXJMb2NhdGlvbiwgaW50KiBiYWRHcmFtbWFyTGVuZ3RoKSA9IDA7CiAK
ICNpZiBVU0UoVU5JRklFRF9URVhUX0NIRUNLSU5HKQotICAgIHZpcnR1YWwgdm9pZCBjaGVja1Rl
eHRPZlBhcmFncmFwaChjb25zdCBVQ2hhciogdGV4dCwgaW50IGxlbmd0aCwgVGV4dENoZWNraW5n
VHlwZU1hc2sgY2hlY2tpbmdUeXBlcywgVmVjdG9yPFRleHRDaGVja2luZ1Jlc3VsdD4mIHJlc3Vs
dHMpID0gMDsKKyAgICB2aXJ0dWFsIFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+IGNoZWNrVGV4
dE9mUGFyYWdyYXBoKFN0cmluZ1ZpZXcsIFRleHRDaGVja2luZ1R5cGVNYXNrIGNoZWNraW5nVHlw
ZXMpID0gMDsKICNlbmRpZgogCiAgICAgLy8gRm9yIHNwZWxsY2hlY2tlcnMgdGhhdCBzdXBwb3J0
IG11bHRpcGxlIGxhbmd1YWdlcywgaXQncyBvZnRlbiBpbXBvcnRhbnQgdG8gYmUgYWJsZSB0byBp
ZGVudGlmeSB0aGUgbGFuZ3VhZ2UgaW4gb3JkZXIgdG8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5oIGIvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmgKaW5kZXggMjY3ZDY1OTRjNzE3MGI4
Y2QzZWI3OWU2NzBkN2U3OGJlNDBkZjZiNy4uNjRlYTI0YTYxZWY5MDYxMTIwOWRhMjA1NzM5NzI5
NDJiOGU2Mjg0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50RWZsLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50RWZsLmgKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJUZXh0Q2hlY2tl
ckNsaWVudC5oIgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nVmlldy5oPgogCiBzdHJ1Y3QgRXdrX1Nob3Vs
ZF9JbnNlcnRfTm9kZV9FdmVudCB7CiAgICAgV2ViQ29yZTo6Tm9kZSogbm9kZTsKQEAgLTE0Nyw3
ICsxNDgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUo
Ym9vbCBlbmFibGVkKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmco
V1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3Q+KSB7IH0KICNpZiBV
U0UoVU5JRklFRF9URVhUX0NIRUNLSU5HKQotICAgIHZpcnR1YWwgdm9pZCBjaGVja1RleHRPZlBh
cmFncmFwaChjb25zdCBVQ2hhciosIGludCwgVGV4dENoZWNraW5nVHlwZU1hc2ssIFZlY3RvcjxU
ZXh0Q2hlY2tpbmdSZXN1bHQ+JikgeyB9CisgICAgdmlydHVhbCBWZWN0b3I8VGV4dENoZWNraW5n
UmVzdWx0PiBjaGVja1RleHRPZlBhcmFncmFwaChTdHJpbmdWaWV3LCBUZXh0Q2hlY2tpbmdUeXBl
TWFzayBjaGVja2luZ1R5cGVzKSB7IHJldHVybiBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0Pigp
OyB9CiAjZW5kaWYKICAgICB2aXJ0dWFsIFRleHRDaGVja2VyQ2xpZW50KiB0ZXh0Q2hlY2tlcigp
IHsgcmV0dXJuIHRoaXM7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQuaAppbmRleCBjNzMwNTkwOTc0MWU4YzVjNGYzZjU3OTkwMWJk
YmM2M2I4Y2JiYTZkLi5mYmVmOGIwYTdkNjQ3NTFlOWI1YjViMDcwZGNjYmRiMjczOTI2ZmQ2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGll
bnQuaApAQCAtMTU5LDcgKzE1OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY2hlY2tT
cGVsbGluZ09mU3RyaW5nKGNvbnN0IFVDaGFyKiwgaW50IGxlbmd0aCwgaW50KiBtaXNzcGVsbGlu
Z0xvY2F0aW9uLCBpbnQqIG1pc3NwZWxsaW5nTGVuZ3RoKSBPVkVSUklERTsKICAgICB2aXJ0dWFs
IFdURjo6U3RyaW5nIGdldEF1dG9Db3JyZWN0U3VnZ2VzdGlvbkZvck1pc3NwZWxsZWRXb3JkKGNv
bnN0IFdURjo6U3RyaW5nJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGNoZWNrR3JhbW1h
ck9mU3RyaW5nKGNvbnN0IFVDaGFyKiwgaW50IGxlbmd0aCwgV1RGOjpWZWN0b3I8V2ViQ29yZTo6
R3JhbW1hckRldGFpbD4mLCBpbnQqIGJhZEdyYW1tYXJMb2NhdGlvbiwgaW50KiBiYWRHcmFtbWFy
TGVuZ3RoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY2hlY2tUZXh0T2ZQYXJhZ3JhcGgo
Y29uc3QgVUNoYXIqIHRleHQsIGludCBsZW5ndGgsIFdlYkNvcmU6OlRleHRDaGVja2luZ1R5cGVN
YXNrIGNoZWNraW5nVHlwZXMsIFdURjo6VmVjdG9yPFdlYkNvcmU6OlRleHRDaGVja2luZ1Jlc3Vs
dD4mIHJlc3VsdHMpIE9WRVJSSURFOworICAgIHZpcnR1YWwgVmVjdG9yPFdlYkNvcmU6OlRleHRD
aGVja2luZ1Jlc3VsdD4gY2hlY2tUZXh0T2ZQYXJhZ3JhcGgoU3RyaW5nVmlldywgV2ViQ29yZTo6
VGV4dENoZWNraW5nVHlwZU1hc2sgY2hlY2tpbmdUeXBlcykgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCB2b2lkIHVwZGF0ZVNwZWxsaW5nVUlXaXRoR3JhbW1hclN0cmluZyhjb25zdCBXVEY6OlN0cmlu
ZyYsIGNvbnN0IFdlYkNvcmU6OkdyYW1tYXJEZXRhaWwmKSBPVkVSUklERTsKICAgICB2aXJ0dWFs
IHZvaWQgdXBkYXRlU3BlbGxpbmdVSVdpdGhNaXNzcGVsbGVkV29yZChjb25zdCBXVEY6OlN0cmlu
ZyYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzaG93U3BlbGxpbmdVSShib29sIHNob3cp
IE9WRVJSSURFOwpAQCAtMTczLDcgKzE3Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFdURjo6
U3RyaW5nIGdldEF1dG9Db3JyZWN0U3VnZ2VzdGlvbkZvck1pc3NwZWxsZWRXb3JkKGNvbnN0IFdU
Rjo6U3RyaW5nJikgT1ZFUlJJREUgeyByZXR1cm4gIiI7IH0KICAgICB2aXJ0dWFsIHZvaWQgY2hl
Y2tHcmFtbWFyT2ZTdHJpbmcoY29uc3QgVUNoYXIqLCBpbnQgbGVuZ3RoLCBXVEY6OlZlY3RvcjxX
ZWJDb3JlOjpHcmFtbWFyRGV0YWlsPiYsIGludCogYmFkR3JhbW1hckxvY2F0aW9uLCBpbnQqIGJh
ZEdyYW1tYXJMZW5ndGgpIE9WRVJSSURFIHsgfQogICAgIC8vIE5vdGU6IGNoZWNrVGV4dE9mUGFy
YWdyYXBoKCkgaXMgaW1wbGVtZW50ZWQuIAotICAgIHZpcnR1YWwgdm9pZCBjaGVja1RleHRPZlBh
cmFncmFwaChjb25zdCBVQ2hhciogdGV4dCwgaW50IGxlbmd0aCwgV2ViQ29yZTo6VGV4dENoZWNr
aW5nVHlwZU1hc2sgY2hlY2tpbmdUeXBlcywgV1RGOjpWZWN0b3I8V2ViQ29yZTo6VGV4dENoZWNr
aW5nUmVzdWx0PiYgcmVzdWx0cykgT1ZFUlJJREU7CisgICAgdmlydHVhbCBWZWN0b3I8V2ViQ29y
ZTo6VGV4dENoZWNraW5nUmVzdWx0PiBjaGVja1RleHRPZlBhcmFncmFwaChTdHJpbmdWaWV3LCBX
ZWJDb3JlOjpUZXh0Q2hlY2tpbmdUeXBlTWFzayBjaGVja2luZ1R5cGVzKSBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIHZvaWQgdXBkYXRlU3BlbGxpbmdVSVdpdGhHcmFtbWFyU3RyaW5nKGNvbnN0IFdU
Rjo6U3RyaW5nJiwgY29uc3QgV2ViQ29yZTo6R3JhbW1hckRldGFpbCYpIE9WRVJSSURFIHsgfQog
ICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTcGVsbGluZ1VJV2l0aE1pc3NwZWxsZWRXb3JkKGNvbnN0
IFdURjo6U3RyaW5nJikgT1ZFUlJJREUgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNob3dTcGVsbGlu
Z1VJKGJvb2wgc2hvdykgT1ZFUlJJREUgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KaW5kZXggMWNkZDNlNmZkODNlOWU5MTZh
YTY1OWFlMDkxNDk4NWJiZDU1ZDQ0My4uMGM5Njg5MjNmMmYwYTQ3ZWE3MjBlZGZjYzE3NjlhNjMy
NmM5NTEyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5tbQpAQCAtNzEsNiArNzEsNyBAQAogI2ltcG9ydCA8d3RmL01haW5UaHJl
YWQuaD4KICNpbXBvcnQgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW1wb3J0IDx3dGYvUnVuTG9vcC5o
PgorI2ltcG9ydCA8d3RmL3RleHQvU3RyaW5nVmlldy5oPgogI2ltcG9ydCA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CiAKICNpZiBQTEFURk9STShJT1MpCkBAIC04NzQsMTIgKzg3NSwxNCBAQCBpbnQg
V2ViRWRpdG9yQ2xpZW50OjpwYXN0ZWJvYXJkQ2hhbmdlQ291bnQoKQogICAgIHJldHVybiAwOwog
fQogCi12b2lkIFdlYkVkaXRvckNsaWVudDo6Y2hlY2tUZXh0T2ZQYXJhZ3JhcGgoY29uc3QgVUNo
YXIqIHRleHQsIGludCBsZW5ndGgsIFRleHRDaGVja2luZ1R5cGVNYXNrIGNoZWNraW5nVHlwZXMs
IFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+JiByZXN1bHRzKQordm9pZCBXZWJFZGl0b3JDbGll
bnQ6OmNoZWNrVGV4dE9mUGFyYWdyYXBoKFN0cmluZ1ZpZXcgc3RyaW5nLCBUZXh0Q2hlY2tpbmdU
eXBlTWFzayBjaGVja2luZ1R5cGVzKQogewogICAgIEFTU0VSVChjaGVja2luZ1R5cGVzICYgTlNU
ZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcpOwotICAgIE5TU3RyaW5nICp0ZXh0U3RyaW5nID0gW1tO
U1N0cmluZyBhbGxvY10gaW5pdFdpdGhDaGFyYWN0ZXJzTm9Db3B5OmNvbnN0X2Nhc3Q8VUNoYXIq
Pih0ZXh0KSBsZW5ndGg6bGVuZ3RoIGZyZWVXaGVuRG9uZTpOT107Ci0gICAgTlNBcnJheSAqaW5j
b21pbmdSZXN1bHRzID0gW1ttX3dlYlZpZXcgX1VJS2l0RGVsZWdhdGVGb3J3YXJkZXJdIGNoZWNr
U3BlbGxpbmdPZlN0cmluZzp0ZXh0U3RyaW5nXTsKLSAgICBbdGV4dFN0cmluZyByZWxlYXNlXTsK
KworICAgIE5TQXJyYXkgKmluY29taW5nUmVzdWx0cyA9IFtbbV93ZWJWaWV3IF9VSUtpdERlbGVn
YXRlRm9yd2FyZGVyXSBjaGVja1NwZWxsaW5nT2ZTdHJpbmc6bnNTdHJpbmdXaXRob3V0Q29weWlu
ZyhzdHJpbmcpLmdldCgpXTsKKworICAgIFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+IHJlc3Vs
dHM7CisKICAgICBmb3IgKE5TVmFsdWUgKmluY29taW5nUmVzdWx0IGluIGluY29taW5nUmVzdWx0
cykgewogICAgICAgICBOU1JhbmdlIHJlc3VsdFJhbmdlID0gW2luY29taW5nUmVzdWx0IHJhbmdl
VmFsdWVdOwogICAgICAgICBBU1NFUlQocmVzdWx0UmFuZ2UubG9jYXRpb24gIT0gTlNOb3RGb3Vu
ZCAmJiByZXN1bHRSYW5nZS5sZW5ndGggPiAwKTsKQEAgLTg4OSw5ICs4OTIsMTkgQEAgdm9pZCBX
ZWJFZGl0b3JDbGllbnQ6OmNoZWNrVGV4dE9mUGFyYWdyYXBoKGNvbnN0IFVDaGFyKiB0ZXh0LCBp
bnQgbGVuZ3RoLCBUZXh0Q2gKICAgICAgICAgcmVzdWx0Lmxlbmd0aCA9IHJlc3VsdFJhbmdlLmxl
bmd0aDsKICAgICAgICAgcmVzdWx0cy5hcHBlbmQocmVzdWx0KTsKICAgICB9CisKKyAgICByZXR1
cm4gcmVzdWx0czsKIH0KICNlbmRpZiAvLyBQTEFURk9STShJT1MpCiAKK3N0YXRpYyBSZXRhaW5Q
dHI8TlNTdHJpbmc+IG5zU3RyaW5nV2l0aG91dENvcHlpbmcoU3RyaW5nVmlldyBzdHJpbmdWaWV3
KQoreworICAgIGlmIChzdHJpbmdWaWV3LmlzOEJpdCgpKQorICAgICAgICByZXR1cm4gYWRvcHRO
UyhbW05TU3RyaW5nIGFsbG9jXSBpbml0V2l0aEJ5dGVzTm9Db3B5OmNvbnN0X2Nhc3Q8TENoYXIq
PihzdHJpbmdWaWV3LmNoYXJhY3RlcnM4KCkpIGxlbmd0aDpzdHJpbmdWaWV3Lmxlbmd0aCgpIGVu
Y29kaW5nOk5TSVNPTGF0aW4xU3RyaW5nRW5jb2RpbmcgZnJlZVdoZW5Eb25lOk5PXSk7CisKKyAg
ICByZXR1cm4gYWRvcHROUyhbW05TU3RyaW5nIGFsbG9jXSBpbml0V2l0aENoYXJhY3RlcnNOb0Nv
cHk6Y29uc3RfY2FzdDx1bmljaGFyKj4oc3RyaW5nVmlldy5jaGFyYWN0ZXJzMTYoKSkgbGVuZ3Ro
OnN0cmluZ1ZpZXcubGVuZ3RoKCkgZnJlZVdoZW5Eb25lOk5PXSk7Cit9CisKICNpZiAhUExBVEZP
Uk0oSU9TKQogYm9vbCBXZWJFZGl0b3JDbGllbnQ6OnNob3VsZEVyYXNlTWFya2Vyc0FmdGVyQ2hh
bmdlU2VsZWN0aW9uKFRleHRDaGVja2luZ1R5cGUgdHlwZSkgY29uc3QKIHsKQEAgLTEwNDIsMTIg
KzEwNTUsMTMgQEAgc3RhdGljIFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+IGNvcmUoTlNBcnJh
eSAqaW5jb21pbmdSZXN1bHRzLCBUZXh0Q2hlY2tpbmdUeXAKICAgICByZXR1cm4gcmVzdWx0czsK
IH0KIAotdm9pZCBXZWJFZGl0b3JDbGllbnQ6OmNoZWNrVGV4dE9mUGFyYWdyYXBoKGNvbnN0IFVD
aGFyKiB0ZXh0LCBpbnQgbGVuZ3RoLCBUZXh0Q2hlY2tpbmdUeXBlTWFzayBjaGVja2luZ1R5cGVz
LCBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0PiYgcmVzdWx0cykKK1ZlY3RvcjxUZXh0Q2hlY2tp
bmdSZXN1bHQ+IFdlYkVkaXRvckNsaWVudDo6Y2hlY2tUZXh0T2ZQYXJhZ3JhcGgoU3RyaW5nVmll
dyBzdHJpbmcsIFRleHRDaGVja2luZ1R5cGVNYXNrIGNoZWNraW5nVHlwZXMpCiB7Ci0gICAgTlNT
dHJpbmcgKnRleHRTdHJpbmcgPSBbW05TU3RyaW5nIGFsbG9jXSBpbml0V2l0aENoYXJhY3RlcnNO
b0NvcHk6Y29uc3RfY2FzdDxVQ2hhcio+KHRleHQpIGxlbmd0aDpsZW5ndGggZnJlZVdoZW5Eb25l
Ok5PXTsKLSAgICBOU0FycmF5ICppbmNvbWluZ1Jlc3VsdHMgPSBbW05TU3BlbGxDaGVja2VyIHNo
YXJlZFNwZWxsQ2hlY2tlcl0gY2hlY2tTdHJpbmc6dGV4dFN0cmluZyByYW5nZTpOU01ha2VSYW5n
ZSgwLCBbdGV4dFN0cmluZyBsZW5ndGhdKSB0eXBlczooY2hlY2tpbmdUeXBlc3xOU1RleHRDaGVj
a2luZ1R5cGVPcnRob2dyYXBoeSkgb3B0aW9uczpuaWwgaW5TcGVsbERvY3VtZW50V2l0aFRhZzpz
cGVsbENoZWNrZXJEb2N1bWVudFRhZygpIG9ydGhvZ3JhcGh5Ok5VTEwgd29yZENvdW50Ok5VTExd
OwotICAgIFt0ZXh0U3RyaW5nIHJlbGVhc2VdOwotICAgIHJlc3VsdHMgPSBjb3JlKGluY29taW5n
UmVzdWx0cywgY2hlY2tpbmdUeXBlcyk7CisgICAgYXV0byB0ZXh0U3RyaW5nID0gbnNTdHJpbmdX
aXRob3V0Q29weWluZyhzdHJpbmcpOworCisgICAgTlNBcnJheSAqaW5jb21pbmdSZXN1bHRzID0g
W1tOU1NwZWxsQ2hlY2tlciBzaGFyZWRTcGVsbENoZWNrZXJdIGNoZWNrU3RyaW5nOnRleHRTdHJp
bmcuZ2V0KCkgcmFuZ2U6TlNNYWtlUmFuZ2UoMCwgW3RleHRTdHJpbmcgbGVuZ3RoXSkgdHlwZXM6
KGNoZWNraW5nVHlwZXN8TlNUZXh0Q2hlY2tpbmdUeXBlT3J0aG9ncmFwaHkpIG9wdGlvbnM6bmls
IGluU3BlbGxEb2N1bWVudFdpdGhUYWc6c3BlbGxDaGVja2VyRG9jdW1lbnRUYWcoKSBvcnRob2dy
YXBoeTpOVUxMIHdvcmRDb3VudDpOVUxMXTsKKworICAgIHJldHVybiBjb3JlKGluY29taW5nUmVz
dWx0cywgY2hlY2tpbmdUeXBlcyk7CiB9CiAKIHZvaWQgV2ViRWRpdG9yQ2xpZW50Ojp1cGRhdGVT
cGVsbGluZ1VJV2l0aEdyYW1tYXJTdHJpbmcoY29uc3QgU3RyaW5nJiBiYWRHcmFtbWFyUGhyYXNl
LCBjb25zdCBHcmFtbWFyRGV0YWlsJiBncmFtbWFyRGV0YWlsKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
Y3BwCmluZGV4IGY5OGY2NGEwZDM4MmJkOWI1NTQyMTg4YjNhOWM2ODZkNmM2ZTIyNDYuLjkwNTlm
MWU0NWRhN2ZiYzdmZmMwMWFmNDY3Y2E4ZDE4MTUwOTFiNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5jcHAKQEAgLTUxLDYgKzUxLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1VuZG9TdGVwLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9Vc2VyVHlwaW5nR2VzdHVyZUluZGljYXRvci5oPgogI2luY2x1ZGUg
PHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaD4K
IAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwpA
QCAtNDQyLDEwICs0NDMsMTMgQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OmNoZWNrR3JhbW1hck9m
U3RyaW5nKGNvbnN0IFVDaGFyKiB0ZXh0LCBpbnQgbGVuZ3RoLCBWZWN0b3IKIH0KIAogI2lmIFVT
RShVTklGSUVEX1RFWFRfQ0hFQ0tJTkcpCi12b2lkIFdlYkVkaXRvckNsaWVudDo6Y2hlY2tUZXh0
T2ZQYXJhZ3JhcGgoY29uc3QgVUNoYXIqIHRleHQsIGludCBsZW5ndGgsIFdlYkNvcmU6OlRleHRD
aGVja2luZ1R5cGVNYXNrIGNoZWNraW5nVHlwZXMsIFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+
JiByZXN1bHRzKQorVmVjdG9yPFRleHRDaGVja2luZ1Jlc3VsdD4gV2ViRWRpdG9yQ2xpZW50Ojpj
aGVja1RleHRPZlBhcmFncmFwaChTdHJpbmdWaWV3IHN0cmluZ1ZpZXcsIFdlYkNvcmU6OlRleHRD
aGVja2luZ1R5cGVNYXNrIGNoZWNraW5nVHlwZXMpCiB7Ci0gICAgLy8gRklYTUU6IEl0IHdvdWxk
IGJlIG5pY2UgaWYgd2Ugd291bGRuJ3QgaGF2ZSB0byBjb3B5IHRoZSB0ZXh0IGhlcmUuCi0gICAg
bV9wYWdlLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDaGVja1RleHRPZlBhcmFn
cmFwaChTdHJpbmcodGV4dCwgbGVuZ3RoKSwgY2hlY2tpbmdUeXBlcyksIE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OkNoZWNrVGV4dE9mUGFyYWdyYXBoOjpSZXBseShyZXN1bHRzKSk7CisgICAgVmVj
dG9yPFRleHRDaGVja2luZ1Jlc3VsdD4gcmVzdWx0czsKKworICAgIG1fcGFnZS0+c2VuZFN5bmMo
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q2hlY2tUZXh0T2ZQYXJhZ3JhcGgoc3RyaW5nVmlldy50
b1N0cmluZ1dpdGhvdXRDb3B5aW5nKCksIGNoZWNraW5nVHlwZXMpLCBNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpDaGVja1RleHRPZlBhcmFncmFwaDo6UmVwbHkocmVzdWx0cykpOworCisgICAgcmV0
dXJuIHJlc3VsdHM7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKaW5kZXggM2RhZTZm
M2FmYjE5N2U3ZTE5MzVhNDI4OTU1YWEyMWVjMGEyOTM4MC4uYjFiMjhkNzY1NGU3OGY1NmZhZTcz
MGQ0YTQ2MmRlODhkYThiZmM3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCkBAIC0xMzksNyArMTM5
LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFN0cmluZyBnZXRBdXRvQ29ycmVjdFN1Z2dlc3Rp
b25Gb3JNaXNzcGVsbGVkV29yZChjb25zdCBTdHJpbmcmIG1pc3NwZWxsZWRXb3JkKSBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIHZvaWQgY2hlY2tHcmFtbWFyT2ZTdHJpbmcoY29uc3QgVUNoYXIqLCBp
bnQgbGVuZ3RoLCBWZWN0b3I8V2ViQ29yZTo6R3JhbW1hckRldGFpbD4mLCBpbnQqIGJhZEdyYW1t
YXJMb2NhdGlvbiwgaW50KiBiYWRHcmFtbWFyTGVuZ3RoKSBPVkVSUklERTsKICNpZiBVU0UoVU5J
RklFRF9URVhUX0NIRUNLSU5HKQotICAgIHZpcnR1YWwgdm9pZCBjaGVja1RleHRPZlBhcmFncmFw
aChjb25zdCBVQ2hhciogdGV4dCwgaW50IGxlbmd0aCwgV2ViQ29yZTo6VGV4dENoZWNraW5nVHlw
ZU1hc2sgY2hlY2tpbmdUeXBlcywgVmVjdG9yPFdlYkNvcmU6OlRleHRDaGVja2luZ1Jlc3VsdD4m
IHJlc3VsdHMpIE9WRVJSSURFOworICAgIHZpcnR1YWwgVmVjdG9yPFdlYkNvcmU6OlRleHRDaGVj
a2luZ1Jlc3VsdD4gY2hlY2tUZXh0T2ZQYXJhZ3JhcGgoU3RyaW5nVmlldywgV2ViQ29yZTo6VGV4
dENoZWNraW5nVHlwZU1hc2sgY2hlY2tpbmdUeXBlcykgT1ZFUlJJREU7CiAjZW5kaWYKICAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlU3BlbGxpbmdVSVdpdGhHcmFtbWFyU3RyaW5nKGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFdlYkNvcmU6OkdyYW1tYXJEZXRhaWwmKSBPVkVSUklERTsKICAgICB2aXJ0dWFs
IHZvaWQgdXBkYXRlU3BlbGxpbmdVSVdpdGhNaXNzcGVsbGVkV29yZChjb25zdCBTdHJpbmcmKSBP
VkVSUklERTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220639</attachid>
            <date>2014-01-08 09:29:22 -0800</date>
            <delta_ts>2014-01-08 11:26:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-126644-20140108092922.patch</filename>
            <type>text/plain</type>
            <size>29305</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYxNDc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDdlZDBhMjFhNGYxODdjMjk5YjkyNjNm
OGRiMDAxNmRlNWRmM2U2ZWMuLjZmNWQ2NjAyZTg4YWZlNzE0OTczYjk4YjMyZmRiMWQ2ZTg4OGY3
MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTQtMDEtMDggIEFuZGVycyBDYXJsc3NvbiAgPGFu
ZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgV1RGOjpTdHJpbmdWaWV3IGFuZCB1c2Ug
aXQgZm9yIGdyYW1tYXIgY2hlY2tpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEyNjY0NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBhIG5ldyBTdHJpbmdWaWV3IGNsYXNzIHdoaWNoIGlzIGFuIGlt
bXV0YWJsZSByZWZlcmVuY2UgdG8gZWl0aGVyIGFuIDgtYml0IG9yIGEgMTYtYml0IHN0cmluZy4K
KworICAgICAgICBUaGlzIG1ha2VzIGl0IGVhc2llciB0byBwYXNzIHN1YnN0cmluZ3MgYXJvdW5k
IHdpdGhvdXQgaGF2aW5nIHRvIGVpdGhlciBjb3B5IHN0cmluZyBkYXRhCisgICAgICAgIG9yIHVw
Y29udmVydCBhbmQgdXNlIFVDaGFyIHBvaW50ZXJzLgorCisgICAgICAgICogR05VbWFrZWZpbGUu
bGlzdC5hbToKKyAgICAgICAgKiBXVEYudmN4cHJvai9XVEYudmN4cHJvajoKKyAgICAgICAgKiBX
VEYudmN4cHJvai9XVEYudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIFdURi54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHd0Zi9DTWFrZUxpc3RzLnR4dDoKKyAgICAgICAg
KiB3dGYvRm9yd2FyZC5oOgorICAgICAgICAqIHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaDogQWRkZWQu
CisgICAgICAgIChXVEY6OlN0cmluZ1ZpZXc6OlN0cmluZ1ZpZXcpOgorICAgICAgICAoV1RGOjpT
dHJpbmdWaWV3OjplbXB0eSk6CisgICAgICAgIChXVEY6OlN0cmluZ1ZpZXc6OmNoYXJhY3RlcnM4
KToKKyAgICAgICAgKFdURjo6U3RyaW5nVmlldzo6Y2hhcmFjdGVyczE2KToKKyAgICAgICAgKFdU
Rjo6U3RyaW5nVmlldzo6aXNFbXB0eSk6CisgICAgICAgIChXVEY6OlN0cmluZ1ZpZXc6Omxlbmd0
aCk6CisgICAgICAgIChXVEY6OlN0cmluZ1ZpZXc6OmlzOEJpdCk6CisgICAgICAgIChXVEY6OlN0
cmluZ1ZpZXc6OnN1YnN0cmluZyk6CisgICAgICAgIChXVEY6OlN0cmluZ1ZpZXc6OnRvU3RyaW5n
KToKKyAgICAgICAgKFdURjo6U3RyaW5nVmlldzo6dG9TdHJpbmdXaXRob3V0Q29weWluZyk6Cisg
ICAgICAgIChXVEY6OlN0cmluZ1ZpZXc6OmVuY29kZWRDaGFyYWN0ZXJzKToKKwogMjAxNC0wMS0w
NyAgRGF2aWQgRmFybGVyICA8ZGZhcmxlckBhcHBsZS5jb20+CiAKICAgICAgICAgW0FTQU5dIEJ1
aWxkaW5nIHdpdGggdHJ1bmsgY2xhbmcgY29ycnVwdHMgc2FuZGJveCBwcm9maWxlIHdpdGggY29t
bWVudCBmcm9tIENvbXBpbGVyLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjNzU3OWRiY2I0YzBiOTdjYTk2YzI0
ZWNhYTU5MWU0MjM4OWRkMzU3Li5lY2ZhZGI4NGFlYWViYzY4ZTNiMjg3YTYxZDg5NjhmZjYwMTNh
MWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTQtMDEtMDggIEFuZGVycyBDYXJs
c3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgV1RGOjpTdHJpbmdWaWV3
IGFuZCB1c2UgaXQgZm9yIGdyYW1tYXIgY2hlY2tpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNjY0NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBhIFN0cmluZ1ZpZXcgaW4gVGV4dENoZWNrZXJD
bGllbnQ6OmNoZWNrVGV4dE9mUGFyYWdyYXBoIHRvIGF2b2lkIHVwY29udmVydGluZyBzdHJpbmdz
IHVubmVjZXNzYXJpbHkuCisKKyAgICAgICAgKiBlZGl0aW5nL1RleHRDaGVja2luZ0hlbHBlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpjaGVja1RleHRPZlBhcmFncmFwaCk6CisgICAgICAgIFBh
c3MgYSBTdHJpbmdWaWV3IHRvIFRleHRDaGVja2VyQ2xpZW50OjpjaGVja1RleHRPZlBhcmFncmFw
aC4KKyAgICAgICAgCisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICBV
cGRhdGUgZm9yIFRleHRDaGVja2VyQ2xpZW50IGNoYW5nZXMuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS90ZXh0L1RleHRDaGVja2VyQ2xpZW50Lmg6CisgICAgICAgIENoYW5nZSBUZXh0Q2hlY2tlckNs
aWVudDo6Y2hlY2tUZXh0T2ZQYXJhZ3JhcGggdG8gdGFrZSBhIFN0cmluZ1ZpZXcuCisgICAgICAg
IAogMjAxNC0wMS0wNyAgU2Vva2p1IEt3b24gIDxzZW9ranVAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBXZWIgSW5zcGVjdG9yOiBSZW1vdmUgbGVmdG92ZXIgJ2RldmljZSBtZXRyaWNzJyBjb2RlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9DaGFuZ2VMb2cKaW5kZXggYTI0NDYxZTdlY2VmOGI4MWU5YWVjZjczNTczNWFiZTUxMzY5OTY5
OC4uYjI2ZTc2NzJjYTNhMzE0NWQ5NGJmNGIzMGNkYzA4ZDg3MDViYWZjNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE0LTAxLTA4ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRl
cnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIFdURjo6U3RyaW5nVmlldyBhbmQgdXNlIGl0
IGZvciBncmFtbWFyIGNoZWNraW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMjY2NDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBVcGRhdGUgdG8gbWF0Y2ggV2ViQ29yZSBjaGFuZ2VzLgorCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmg6CisgICAgICAgIChXZWJDb3JlOjpF
ZGl0b3JDbGllbnRFZmw6OmNoZWNrVGV4dE9mUGFyYWdyYXBoKToKKwogMjAxNC0wMS0wNSAgSmlu
d29vIFNvbmcgIDxqaW53b283LnNvbmdAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0gRml4
IGZhaWxpbmcgV2ViS2l0MSBBUEkgdGVzdCBvZiBld2tfdmlld19zZXR0aW5nX3RpbGVkX2JhY2tp
bmdfc3RvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCBjM2EzZWIxNWRkYTU3ZWVkMGU3YjczZWIyZGQy
ZmQ4Njc2OTIxY2I5Li45MWE5Nzg4MWFmN2MwYmUwOWIxZDBkYmE5MDc3MThlYWQ1M2MxYzUyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTQtMDEtMDggIEFuZGVycyBDYXJs
c3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgV1RGOjpTdHJpbmdWaWV3
IGFuZCB1c2UgaXQgZm9yIGdyYW1tYXIgY2hlY2tpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNjY0NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgorICAgICAg
ICAoV2ViRWRpdG9yQ2xpZW50OjpjaGVja1RleHRPZlBhcmFncmFwaCk6CisgICAgICAgIFVwZGF0
ZSB0byBtYXRjaCB0aGUgbmV3IHNpZ25hdHVyZS4KKworICAgICAgICAobnNTdHJpbmdXaXRob3V0
Q29weWluZyk6CisgICAgICAgIE5ldyBmdW5jdGlvbiB0aGF0IGNyZWF0ZXMgYW4gTlNTdHJpbmcg
dGhhdCByZWZlcmVuY2VzIFN0cmluZ1ZpZXcgZGF0YQorICAgICAgICB3aXRob3V0IGNvcHlpbmcg
dGhlIGRhdGEuIChJZiB0aGlzIGZ1bmN0aW9uIHByb3ZlcyB0byBiZSB1c2VmdWwgZWxzZXdoZXJl
LCBpdCBjb3VsZAorICAgICAgICBwb3RlbnRpYWxseSBiZSBhZGRlZCB0byBTdHJpbmdWaWV3KS4K
KwogMjAxNC0wMS0wNyAgU2Vva2p1IEt3b24gIDxzZW9ranVAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBXZWIgSW5zcGVjdG9yOiBSZW1vdmUgbGVmdG92ZXIgJ2RldmljZSBtZXRyaWNzJyBjb2RlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKaW5kZXggZWEyZTdiZDA0ZDMxMGM4OGE3MGI4MTk2NTE5MjA5ZGYyODlkNzQyMy4uNjdk
ZjFiYjViODI2NjJlMDA4ODg5MGFhMTg5NGNhOTQ3Yjk2N2ZmNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE2IEBACisyMDE0LTAxLTA4ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIFdURjo6U3RyaW5nVmlldyBhbmQgdXNlIGl0IGZvciBncmFtbWFy
IGNoZWNraW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMjY2NDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBVc2UgYSBTdHJpbmdWaWV3IGFuZCByZW1vdmUgYSBGSVhNRS4KKworICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViRWRpdG9yQ2xpZW50OjpjaGVja1RleHRPZlBhcmFncmFwaCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaDoKKwogMjAxNC0wMS0wNyAg
Smlud29vIFNvbmcgIDxqaW53b283LnNvbmdAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF1b
V0syXSBGaXggZmFpbGluZyBld2tfdmlld19wYWdlX2NvbnRlbnRzX2dldCgpIEFQSSB0ZXN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV1RGL0dO
VW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggNzY3ZTI5MWVhMWZlMGNjYmY4OGVlMDIzMDZhNjQ1YWJl
Yzk4NjljMy4uMzkwMDM1NjM4YmZjNTU0ZmU0YWNiZDE3MWY0MWI1Y2QzYjNhZDhiMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XVEYvR05V
bWFrZWZpbGUubGlzdC5hbQpAQCAtMTU3LDkgKzE1Nyw5IEBAIHd0Zl9zb3VyY2VzICs9IFwKICAg
ICBTb3VyY2UvV1RGL3d0Zi9TdHJlYW1CdWZmZXIuaCBcCiAgICAgU291cmNlL1dURi93dGYvU3Ry
aW5nRXh0cmFzLmggXAogICAgIFNvdXJjZS9XVEYvd3RmL1N0cmluZ0hhc2hEdW1wQ29udGV4dC5o
IFwKKyAgICBTb3VyY2UvV1RGL3d0Zi9TdHJpbmdIYXNoZXIuaCBcCiAgICAgU291cmNlL1dURi93
dGYvU3RyaW5nUHJpbnRTdHJlYW0uY3BwIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9TdHJpbmdQcmlu
dFN0cmVhbS5oIFwKLSAgICBTb3VyY2UvV1RGL3d0Zi9TdHJpbmdIYXNoZXIuaCBcCiAgICAgU291
cmNlL1dURi93dGYvVENQYWNrZWRDYWNoZS5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9UQ1BhZ2VN
YXAuaCBcCiAgICAgU291cmNlL1dURi93dGYvVENTcGluTG9jay5oIFwKQEAgLTI0MSw2ICsyNDEs
NyBAQCB3dGZfc291cmNlcyArPSBcCiAgICAgU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBs
LmggXAogICAgIFNvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nT3BlcmF0b3JzLmggXAogICAgIFNv
dXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nU3RhdGljcy5jcHAgXAorICAgIFNvdXJjZS9XVEYvd3Rm
L3RleHQvU3RyaW5nVmlldy5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRQb3NpdGlv
bi5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5jcHAgXAogICAgIFNvdXJj
ZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYu
dmN4cHJvai9XVEYudmN4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnZjeHByb2ovV1RGLnZjeHByb2oK
aW5kZXggNjk5ZTc3NDg4Yzg1MjJlNmNhNWNjYmU3NTEyMTg4ODQzYjllOGI5OS4uZTkzOWFhNGU1
ZGY4N2JmODg3MDg3YjdjYjQyYmY5NDg2NmQ2YWFkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9X
VEYudmN4cHJvai9XVEYudmN4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi52Y3hwcm9qL1dURi52
Y3hwcm9qCkBAIC0yOTEsNiArMjkxLDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0
Zlx0ZXh0XFN0cmluZ0hhc2guaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0Zlx0
ZXh0XFN0cmluZ0ltcGwuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0Zlx0ZXh0
XFN0cmluZ09wZXJhdG9ycy5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXHRl
eHRcU3RyaW5nVmlldy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXHRleHRc
V1RGU3RyaW5nLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcVGhyZWFkaW5n
LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcVGhyZWFkaW5nUHJpbWl0aXZl
cy5oIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYudmN4cHJvai9XVEYudmN4cHJvai5m
aWx0ZXJzIGIvU291cmNlL1dURi9XVEYudmN4cHJvai9XVEYudmN4cHJvai5maWx0ZXJzCmluZGV4
IDdiN2YxZDQ3YTlmNTQyOTA4N2ZjNGQ4MTM2MDRhYzEyNzA2NzdkZDAuLjc3NWQzMTMzMTY0MDQz
Zjg5NmNkMGE4N2UyNzAyMzk3Njk1ZjA4MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnZj
eHByb2ovV1RGLnZjeHByb2ouZmlsdGVycworKysgYi9Tb3VyY2UvV1RGL1dURi52Y3hwcm9qL1dU
Ri52Y3hwcm9qLmZpbHRlcnMKQEAgLTMxOCw2ICszMTgsOSBAQAogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cd3RmXHRleHRcU3RyaW5nT3BlcmF0b3JzLmgiPgogICAgICAgPEZpbHRlcj50ZXh0
PC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3
dGZcdGV4dFxTdHJpbmdWaWV3LmgiPgorICAgICAgPEZpbHRlcj53dGY8L0ZpbHRlcj4KKyAgICA8
L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0Zlx0ZXh0XFdURlN0cmlu
Zy5oIj4KICAgICAgIDxGaWx0ZXI+dGV4dDwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggM2JlOTRjN2EwOTY0MmUx
YWY1NDc2N2VjYmE1MDZmOGE1NDFmN2FhYS4uMmFkNTU5NDQ2ZmZhNTcwZTdmMmI2ODAxYzVkOWRl
YTUyMzIxNjc4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC01NSw2ICs1NSw3IEBACiAJCTFBMUQ4QjlFMTczMTg3OTgwMDE0MURBNCAvKiBGdW5jdGlvbkRp
c3BhdGNoZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUExRDhCOUQxNzMxODc5ODAwMTQxREE0IC8qIEZ1bmN0aW9uRGlzcGF0Y2hlci5jcHAgKi87
IH07CiAJCTFBMjMzQzdEMTdEQUE2RTMwMEE5M0FDRiAvKiBNYWxsb2NQdHIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMjMzQzdDMTdEQUE2RTMwMEE5
M0FDRiAvKiBNYWxsb2NQdHIuaCAqLzsgfTsKIAkJMUE2QkI3NjkxNjJGMzAwNTAwREQxNkRCIC8q
IFN0cmVhbUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUE2QkI3NjgxNjJGMzAwNTAwREQxNkRCIC8qIFN0cmVhbUJ1ZmZlci5oICovOyB9Owor
CQkxQTZFQjFFMDE4N0QwQkQzMDAzMDEyNkYgLyogU3RyaW5nVmlldy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE2RUIxREYxODdEMEJEMzAwMzAxMjZG
IC8qIFN0cmluZ1ZpZXcuaCAqLzsgfTsKIAkJMUZBNDdDOEExNTI1MDJEQTAwNTY4RDFCIC8qIFdl
YkNvcmVUaHJlYWQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUZBNDdDODgxNTI1MDJEQTAwNTY4RDFCIC8qIFdlYkNvcmVUaHJlYWQuY3BwICovOyB9
OwogCQkxRkE0N0M4QjE1MjUwMkRBMDA1NjhEMUIgLyogV2ViQ29yZVRocmVhZC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUZBNDdDODkxNTI1MDJEQTAw
NTY4RDFCIC8qIFdlYkNvcmVUaHJlYWQuaCAqLzsgfTsKIAkJMjYxNDdCMEExNUREQ0NEQzAwRERC
OTA3IC8qIEludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2MTQ3QjA4MTVERENDREMwMEREQjkwNyAvKiBJbnRl
Z2VyVG9TdHJpbmdDb252ZXJzaW9uLmggKi87IH07CkBAIC0zMjIsNiArMzIzLDcgQEAKIAkJMUEy
MzNDN0MxN0RBQTZFMzAwQTkzQUNGIC8qIE1hbGxvY1B0ci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBNYWxsb2NQdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MUEzRjZCRTYxNzRBREEyMTAwQjJFRUE3IC8qIE5ldmVyRGVzdHJveWVkLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE5ldmVyRGVzdHJveWVkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBNkJC
NzY4MTYyRjMwMDUwMEREMTZEQiAvKiBTdHJlYW1CdWZmZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU3RyZWFtQnVmZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTFBNkVCMURGMTg3RDBCRDMwMDMwMTI2RiAvKiBTdHJpbmdWaWV3LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0cmluZ1ZpZXcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMUZBNDdDODgxNTI1MDJEQTAwNTY4RDFCIC8qIFdlYkNvcmVUaHJlYWQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29yZVRocmVhZC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGQTQ3Qzg5MTUyNTAyREEwMDU2OEQxQiAvKiBX
ZWJDb3JlVGhyZWFkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVU
aHJlYWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYxNDdCMDgxNUREQ0NEQzAw
RERCOTA3IC8qIEludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtOTA1LDYgKzkwNyw3IEBACiAJCQkJQThBNDczMkMxNTFBODI1QjAw
NDEyM0ZGIC8qIFRleHRQb3NpdGlvbi5oICovLAogCQkJCUE4QTQ3MzJEMTUxQTgyNUIwMDQxMjNG
RiAvKiBXVEZTdHJpbmcuY3BwICovLAogCQkJCUE4QTQ3MzJFMTUxQTgyNUIwMDQxMjNGRiAvKiBX
VEZTdHJpbmcuaCAqLywKKwkJCQkxQTZFQjFERjE4N0QwQkQzMDAzMDEyNkYgLyogU3RyaW5nVmll
dy5oICovLAogCQkJKTsKIAkJCXBhdGggPSB0ZXh0OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsKQEAgLTExMDQsNiArMTEwNyw3IEBACiAJCQkJQThBNDc0MkYxNTFBODI1QjAwNDEyM0ZGIC8q
IFRDUGFnZU1hcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDc0MzAxNTFBODI1QjAwNDEyM0ZG
IC8qIFRDU3BpbkxvY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3NDMyMTUxQTgyNUIwMDQx
MjNGRiAvKiBUQ1N5c3RlbUFsbG9jLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQTZFQjFFMDE4N0Qw
QkQzMDAzMDEyNkYgLyogU3RyaW5nVmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDc0MzMx
NTFBODI1QjAwNDEyM0ZGIC8qIFRlbXBvcmFyeUNoYW5nZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QThBNDc0NDQxNTFBODI1QjAwNDEyM0ZGIC8qIFRleHRQb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQThBNDc0NDcxNTFBODI1QjAwNDEyM0ZGIC8qIFRocmVhZEZ1bmN0aW9uSW52b2NhdGlv
bi5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CmluZGV4IDM3MjNjNzVlZWZkYmE1
YWU4OTJmOGU0OWFlN2E5ZmQzNGY4ODM4M2EuLmIwMDJkNWM1MDdlMzBmODMxZTEwMzEwYzhkMDA2
MmZjN2M3ZDNmZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0Cisr
KyBiL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CkBAIC0xMzQsNiArMTM0LDcgQEAgc2V0
KFdURl9IRUFERVJTCiAgICAgdGV4dC9TdHJpbmdCdWZmZXIuaAogICAgIHRleHQvU3RyaW5nSGFz
aC5oCiAgICAgdGV4dC9TdHJpbmdJbXBsLmgKKyAgICB0ZXh0L1N0cmluZ1ZpZXcuaAogICAgIHRl
eHQvV1RGU3RyaW5nLmgKIAogICAgIHRocmVhZHMvQmluYXJ5U2VtYXBob3JlLmgKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL0ZvcndhcmQuaCBiL1NvdXJjZS9XVEYvd3RmL0ZvcndhcmQuaApp
bmRleCBmMWMyMjNmZjkxMjczYzQ1ZWJmM2VlZWJlYWNkM2I3ODY4ODk5NDIxLi4xNjdjYWZiMjAw
ODg0MWQyZDIxMDkyNTIwYjAzYTc2NzIzODhjNGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9Gb3J3YXJkLmgKKysrIGIvU291cmNlL1dURi93dGYvRm9yd2FyZC5oCkBAIC00Nyw2ICs0Nyw3
IEBAIGNsYXNzIFByaW50U3RyZWFtOwogY2xhc3MgU3RyaW5nOwogY2xhc3MgU3RyaW5nQnVpbGRl
cjsKIGNsYXNzIFN0cmluZ0ltcGw7CitjbGFzcyBTdHJpbmdWaWV3OwogCiB9CiAKQEAgLTY5LDYg
KzcwLDcgQEAgdXNpbmcgV1RGOjpTdHJpbmc7CiB1c2luZyBXVEY6OlN0cmluZ0J1ZmZlcjsKIHVz
aW5nIFdURjo6U3RyaW5nQnVpbGRlcjsKIHVzaW5nIFdURjo6U3RyaW5nSW1wbDsKK3VzaW5nIFdU
Rjo6U3RyaW5nVmlldzsKIHVzaW5nIFdURjo6VmVjdG9yOwogCiAjZW5kaWYgLy8gV1RGX0Zvcndh
cmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdWaWV3LmggYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L1N0cmluZ1ZpZXcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOGJkODliZWRlZWQ3MzFi
Y2QzZmUxYzA4ZmY4ZjRhODBhYzhiYTliCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93
dGYvdGV4dC9TdHJpbmdWaWV3LmgKQEAgLTAsMCArMSwxNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIFN0cmluZ1ZpZXdfaAorI2RlZmluZSBTdHJpbmdWaWV3X2gKKworI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV1RGIHsKKworLy8gU3RyaW5nVmlldyBpcyBh
IG5vbi1vd25pbmcgcmVmZXJlbmNlIHRvIGEgc3RyaW5nLCBzaW1pbGFyIHRvIHRoZSBwcm9wb3Nl
ZCBzdGQ6OnN0cmluZ192aWV3LgorLy8gV2hldGhlciB0aGUgc3RyaW5nIGlzIDgtYml0IG9yIDE2
LWJpdCBpcyBlbmNvZGVkIGluIHRoZSBib3R0b20gYml0IG9mIHRoZSBjaGFyYWN0ZXJzIHBvaW50
ZXIuCisKK2NsYXNzIFN0cmluZ1ZpZXcgeworcHVibGljOgorICAgIFN0cmluZ1ZpZXcoY29uc3Qg
TENoYXIgKmNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCkKKyAgICAgICAgOiBtX2VuY29kZWRD
aGFyYWN0ZXJzKGVuY29kZWRDaGFyYWN0ZXJzKGNoYXJhY3RlcnMpKQorICAgICAgICAsIG1fbGVu
Z3RoKGxlbmd0aCkKKyAgICB7CisgICAgfQorCisgICAgU3RyaW5nVmlldyhjb25zdCBVQ2hhciAq
Y2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQorICAgICAgICA6IG1fZW5jb2RlZENoYXJhY3Rl
cnMoZW5jb2RlZENoYXJhY3RlcnMoY2hhcmFjdGVycykpCisgICAgICAgICwgbV9sZW5ndGgobGVu
Z3RoKQorICAgIHsKKyAgICB9CisKKyAgICBTdHJpbmdWaWV3KGNvbnN0IFN0cmluZyYgc3RyaW5n
KQorICAgICAgICA6IG1fZW5jb2RlZENoYXJhY3RlcnMoZW5jb2RlZENoYXJhY3RlcnMoc3RyaW5n
LmltcGwoKSkpCisgICAgICAgICwgbV9sZW5ndGgoc3RyaW5nLmxlbmd0aCgpKQorICAgIHsKKyAg
ICB9CisKKyAgICBzdGF0aWMgU3RyaW5nVmlldyBlbXB0eSgpCisgICAgeworICAgICAgICByZXR1
cm4gU3RyaW5nVmlldyhyZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIiIpLCAwKTsKKyAg
ICB9CisKKyAgICBBTFdBWVNfSU5MSU5FIGNvbnN0IExDaGFyKiBjaGFyYWN0ZXJzOCgpIGNvbnN0
CisgICAgeworICAgICAgICBBU1NFUlQoaXM4Qml0KCkpOworCisgICAgICAgIHJldHVybiByZWlu
dGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4obV9lbmNvZGVkQ2hhcmFjdGVycyk7CisgICAgfQor
CisgICAgQUxXQVlTX0lOTElORSBjb25zdCBVQ2hhciogY2hhcmFjdGVyczE2KCkgY29uc3QKKyAg
ICB7CisgICAgICAgIEFTU0VSVCghaXM4Qml0KCkpOworCisgICAgICAgIHJldHVybiByZWludGVy
cHJldF9jYXN0PGNvbnN0IFVDaGFyKj4obV9lbmNvZGVkQ2hhcmFjdGVycyAmIH4xKTsKKyAgICB9
CisKKyAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiAhbV9sZW5ndGg7IH0KKyAgICB1
bnNpZ25lZCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2xlbmd0aDsgfQorCisgICAgYm9vbCBp
czhCaXQoKSBjb25zdCB7IHJldHVybiAhKG1fZW5jb2RlZENoYXJhY3RlcnMgJiAxKTsgfQorCisg
ICAgU3RyaW5nVmlldyBzdWJzdHJpbmcodW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCA9
IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSkgY29uc3QKKyAgICB7CisgICAg
ICAgIGlmIChzdGFydCA+PSBtX2xlbmd0aCkKKyAgICAgICAgICAgIHJldHVybiBlbXB0eSgpOwor
ICAgICAgICB1bnNpZ25lZCBtYXhMZW5ndGggPSBtX2xlbmd0aCAtIHN0YXJ0OworCisgICAgICAg
IGlmIChsZW5ndGggPj0gbWF4TGVuZ3RoKSB7CisgICAgICAgICAgICBpZiAoIXN0YXJ0KQorICAg
ICAgICAgICAgICAgIHJldHVybiAqdGhpczsKKyAgICAgICAgICAgIGxlbmd0aCA9IG1heExlbmd0
aDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChpczhCaXQoKSkKKyAgICAgICAgICAgIHJldHVy
biBTdHJpbmdWaWV3KGNoYXJhY3RlcnM4KCkgKyBzdGFydCwgbGVuZ3RoKTsKKworICAgICAgICBy
ZXR1cm4gU3RyaW5nVmlldyhjaGFyYWN0ZXJzMTYoKSArIHN0YXJ0LCBsZW5ndGgpOworICAgIH0K
KworICAgIFN0cmluZyB0b1N0cmluZygpIGNvbnN0CisgICAgeworICAgICAgICBpZiAoaXM4Qml0
KCkpCisgICAgICAgICAgICByZXR1cm4gU3RyaW5nKGNoYXJhY3RlcnM4KCksIG1fbGVuZ3RoKTsK
KworICAgICAgICByZXR1cm4gU3RyaW5nKGNoYXJhY3RlcnMxNigpLCBtX2xlbmd0aCk7CisgICAg
fQorCisgICAgU3RyaW5nIHRvU3RyaW5nV2l0aG91dENvcHlpbmcoKSBjb25zdAorICAgIHsKKyAg
ICAgICAgaWYgKGlzOEJpdCgpKQorICAgICAgICAgICAgcmV0dXJuIFN0cmluZ0ltcGw6OmNyZWF0
ZVdpdGhvdXRDb3B5aW5nKGNoYXJhY3RlcnM4KCksIG1fbGVuZ3RoKTsKKworICAgICAgICByZXR1
cm4gU3RyaW5nSW1wbDo6Y3JlYXRlV2l0aG91dENvcHlpbmcoY2hhcmFjdGVyczE2KCksIG1fbGVu
Z3RoKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgc3RhdGljIHVpbnRwdHJfdCBlbmNvZGVkQ2hh
cmFjdGVycyhTdHJpbmdJbXBsKiBpbXBsKQorICAgIHsKKyAgICAgICAgaWYgKCFpbXBsKQorICAg
ICAgICAgICAgcmV0dXJuIDA7CisKKyAgICAgICAgaWYgKGltcGwtPmlzOEJpdCgpKQorICAgICAg
ICAgICAgcmV0dXJuIGVuY29kZWRDaGFyYWN0ZXJzKGltcGwtPmNoYXJhY3RlcnM4KCkpOworCisg
ICAgICAgIHJldHVybiBlbmNvZGVkQ2hhcmFjdGVycyhpbXBsLT5jaGFyYWN0ZXJzMTYoKSk7Cisg
ICAgfQorCisgICAgc3RhdGljIHVpbnRwdHJfdCBlbmNvZGVkQ2hhcmFjdGVycyhjb25zdCBVQ2hh
ciogY2hhcmFjdGVycykKKyAgICB7CisgICAgICAgIEFTU0VSVCghKHJlaW50ZXJwcmV0X2Nhc3Q8
dWludHB0cl90PihjaGFyYWN0ZXJzKSAmIDEpKTsKKyAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0
X2Nhc3Q8dWludHB0cl90PihjaGFyYWN0ZXJzKSB8IDE7CisgICAgfQorCisgICAgc3RhdGljIHVp
bnRwdHJfdCBlbmNvZGVkQ2hhcmFjdGVycyhjb25zdCBMQ2hhciogY2hhcmFjdGVycykKKyAgICB7
CisgICAgICAgIEFTU0VSVCghKHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihjaGFyYWN0ZXJz
KSAmIDEpKTsKKyAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihjaGFy
YWN0ZXJzKTsKKyAgICB9CisKKyAgICB1aW50cHRyX3QgbV9lbmNvZGVkQ2hhcmFjdGVyczsKKyAg
ICB1bnNpZ25lZCBtX2xlbmd0aDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCit1c2luZyBX
VEY6OlN0cmluZ1ZpZXc7CisKKyNlbmRpZiAvLyBTdHJpbmdWaWV3X2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dENoZWNraW5nSGVscGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVGV4dENoZWNraW5nSGVscGVyLmNwcAppbmRleCAyMmNiOThiZWE2MTAxYjgz
OWM1NTQyZDEyMTVmNmQzZWFkMTg5NzQ2Li5lMWNlMTQ2MGUwOWJiMDNjOTFkODZiN2RkN2E1NGU3
ZmUxNWM0ZTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRDaGVja2lu
Z0hlbHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxw
ZXIuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCiAjaW5j
bHVkZSAiVmlzaWJsZVBvc2l0aW9uLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVVuaXRzLmgiCisjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nVmlldy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAg
LTYzOSw3ICs2NDAsNyBAQCB2b2lkIGNoZWNrVGV4dE9mUGFyYWdyYXBoKFRleHRDaGVja2VyQ2xp
ZW50KiBjbGllbnQsIGNvbnN0IFVDaGFyKiB0ZXh0LCBpbnQgbGVuZwogICAgICAgICAgICAgICAg
ICAgICAgICAgICBUZXh0Q2hlY2tpbmdUeXBlTWFzayBjaGVja2luZ1R5cGVzLCBWZWN0b3I8VGV4
dENoZWNraW5nUmVzdWx0PiYgcmVzdWx0cykKIHsKICNpZiBVU0UoVU5JRklFRF9URVhUX0NIRUNL
SU5HKQotICAgIGNsaWVudC0+Y2hlY2tUZXh0T2ZQYXJhZ3JhcGgodGV4dCwgbGVuZ3RoLCBjaGVj
a2luZ1R5cGVzLCByZXN1bHRzKTsKKyAgICByZXN1bHRzID0gY2xpZW50LT5jaGVja1RleHRPZlBh
cmFncmFwaChTdHJpbmdWaWV3KHRleHQsIGxlbmd0aCksIGNoZWNraW5nVHlwZXMpOwogI2Vsc2UK
ICAgICBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0PiBzcGVsbGluZ1Jlc3VsdDsKICAgICBpZiAo
Y2hlY2tpbmdUeXBlcyAmIFRleHRDaGVja2luZ1R5cGVTcGVsbGluZykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9FbXB0eUNsaWVudHMuaAppbmRleCBkYTYzY2Y2NGZkNmU1NjQ2N2U5ODgyZTlmZTdiMzBhZWM2
OWQ2ZDM2Li5hMjc0ZjZhYWJhMzA4YjU0ZTAyZjliNWQ5MmFiNzgwZjFkNmRjMzljIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAi
SW5zcGVjdG9yQ2xpZW50LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJlc291cmNl
RXJyb3IuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdWaWV3Lmg+CiAKIC8qCiAgVGhpcyBm
aWxlIGhvbGRzIGVtcHR5IENsaWVudCBzdHVicyBmb3IgdXNlIGJ5IFdlYkNvcmUuCkBAIC00MjUs
NyArNDI2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjaGVja0dyYW1tYXJPZlN0cmlu
Zyhjb25zdCBVQ2hhciosIGludCwgVmVjdG9yPEdyYW1tYXJEZXRhaWw+JiwgaW50KiwgaW50Kikg
T1ZFUlJJREUgeyB9CiAKICNpZiBVU0UoVU5JRklFRF9URVhUX0NIRUNLSU5HKQotICAgIHZpcnR1
YWwgdm9pZCBjaGVja1RleHRPZlBhcmFncmFwaChjb25zdCBVQ2hhciosIGludCwgVGV4dENoZWNr
aW5nVHlwZU1hc2ssIFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+JikgT1ZFUlJJREUgeyB9Owor
ICAgIHZpcnR1YWwgVmVjdG9yPFRleHRDaGVja2luZ1Jlc3VsdD4gY2hlY2tUZXh0T2ZQYXJhZ3Jh
cGgoU3RyaW5nVmlldywgVGV4dENoZWNraW5nVHlwZU1hc2spIE9WRVJSSURFIHsgcmV0dXJuIFZl
Y3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+KCk7IH0KICNlbmRpZgogCiAgICAgdmlydHVhbCB2b2lk
IGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIFZlY3RvcjxT
dHJpbmc+JikgT1ZFUlJJREUgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L1RleHRDaGVja2VyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L1RleHRDaGVja2VyQ2xpZW50LmgKaW5kZXggODAzYmZiODhiOGY0NTM0MmM5NmUzMGZiNzkwYzRl
NTY4ZDYwOGNiZS4uMDU0ZmIxMWVjZjg5ZTY4MWQ1ZThlZTJhZWZlYjZjYWU1YzI4ZWY5ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q2hlY2tlckNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENoZWNrZXJDbGllbnQuaApA
QCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNoZWNrR3JhbW1hck9m
U3RyaW5nKGNvbnN0IFVDaGFyKiwgaW50IGxlbmd0aCwgVmVjdG9yPEdyYW1tYXJEZXRhaWw+Jiwg
aW50KiBiYWRHcmFtbWFyTG9jYXRpb24sIGludCogYmFkR3JhbW1hckxlbmd0aCkgPSAwOwogCiAj
aWYgVVNFKFVOSUZJRURfVEVYVF9DSEVDS0lORykKLSAgICB2aXJ0dWFsIHZvaWQgY2hlY2tUZXh0
T2ZQYXJhZ3JhcGgoY29uc3QgVUNoYXIqIHRleHQsIGludCBsZW5ndGgsIFRleHRDaGVja2luZ1R5
cGVNYXNrIGNoZWNraW5nVHlwZXMsIFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+JiByZXN1bHRz
KSA9IDA7CisgICAgdmlydHVhbCBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0PiBjaGVja1RleHRP
ZlBhcmFncmFwaChTdHJpbmdWaWV3LCBUZXh0Q2hlY2tpbmdUeXBlTWFzayBjaGVja2luZ1R5cGVz
KSA9IDA7CiAjZW5kaWYKIAogICAgIC8vIEZvciBzcGVsbGNoZWNrZXJzIHRoYXQgc3VwcG9ydCBt
dWx0aXBsZSBsYW5ndWFnZXMsIGl0J3Mgb2Z0ZW4gaW1wb3J0YW50IHRvIGJlIGFibGUgdG8gaWRl
bnRpZnkgdGhlIGxhbmd1YWdlIGluIG9yZGVyIHRvCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZs
L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5oCmluZGV4IDI2N2Q2NTk0YzcxNzBiOGNk
M2ViNzllNjcwZDdlNzhiZTQwZGY2YjcuLjY0ZWEyNGE2MWVmOTA2MTEyMDlkYTIwNTczOTcyOTQy
YjhlNjI4NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudEVmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudEVmbC5oCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiVGV4dENoZWNrZXJD
bGllbnQuaCIKICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaD4KIAogc3RydWN0IEV3a19TaG91bGRf
SW5zZXJ0X05vZGVfRXZlbnQgewogICAgIFdlYkNvcmU6Ok5vZGUqIG5vZGU7CkBAIC0xNDcsNyAr
MTQ4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJv
b2wgZW5hYmxlZCk7CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdU
Rjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1ZXN0PikgeyB9CiAjaWYgVVNF
KFVOSUZJRURfVEVYVF9DSEVDS0lORykKLSAgICB2aXJ0dWFsIHZvaWQgY2hlY2tUZXh0T2ZQYXJh
Z3JhcGgoY29uc3QgVUNoYXIqLCBpbnQsIFRleHRDaGVja2luZ1R5cGVNYXNrLCBWZWN0b3I8VGV4
dENoZWNraW5nUmVzdWx0PiYpIHsgfQorICAgIHZpcnR1YWwgVmVjdG9yPFRleHRDaGVja2luZ1Jl
c3VsdD4gY2hlY2tUZXh0T2ZQYXJhZ3JhcGgoU3RyaW5nVmlldywgVGV4dENoZWNraW5nVHlwZU1h
c2sgY2hlY2tpbmdUeXBlcykgeyByZXR1cm4gVmVjdG9yPFRleHRDaGVja2luZ1Jlc3VsdD4oKTsg
fQogI2VuZGlmCiAgICAgdmlydHVhbCBUZXh0Q2hlY2tlckNsaWVudCogdGV4dENoZWNrZXIoKSB7
IHJldHVybiB0aGlzOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50LmgKaW5kZXggYzczMDU5MDk3NDFlOGM1YzRmM2Y1Nzk5MDFiZGJj
NjNiOGNiYmE2ZC4uZmJlZjhiMGE3ZDY0NzUxZTliNWI1YjA3MGRjY2JkYjI3MzkyNmZkNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
LmgKQEAgLTE1OSw3ICsxNTksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNoZWNrU3Bl
bGxpbmdPZlN0cmluZyhjb25zdCBVQ2hhciosIGludCBsZW5ndGgsIGludCogbWlzc3BlbGxpbmdM
b2NhdGlvbiwgaW50KiBtaXNzcGVsbGluZ0xlbmd0aCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBX
VEY6OlN0cmluZyBnZXRBdXRvQ29ycmVjdFN1Z2dlc3Rpb25Gb3JNaXNzcGVsbGVkV29yZChjb25z
dCBXVEY6OlN0cmluZyYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBjaGVja0dyYW1tYXJP
ZlN0cmluZyhjb25zdCBVQ2hhciosIGludCBsZW5ndGgsIFdURjo6VmVjdG9yPFdlYkNvcmU6Okdy
YW1tYXJEZXRhaWw+JiwgaW50KiBiYWRHcmFtbWFyTG9jYXRpb24sIGludCogYmFkR3JhbW1hckxl
bmd0aCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNoZWNrVGV4dE9mUGFyYWdyYXBoKGNv
bnN0IFVDaGFyKiB0ZXh0LCBpbnQgbGVuZ3RoLCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdUeXBlTWFz
ayBjaGVja2luZ1R5cGVzLCBXVEY6OlZlY3RvcjxXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXN1bHQ+
JiByZXN1bHRzKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFZlY3RvcjxXZWJDb3JlOjpUZXh0Q2hl
Y2tpbmdSZXN1bHQ+IGNoZWNrVGV4dE9mUGFyYWdyYXBoKFN0cmluZ1ZpZXcsIFdlYkNvcmU6OlRl
eHRDaGVja2luZ1R5cGVNYXNrIGNoZWNraW5nVHlwZXMpIE9WRVJSSURFOwogICAgIHZpcnR1YWwg
dm9pZCB1cGRhdGVTcGVsbGluZ1VJV2l0aEdyYW1tYXJTdHJpbmcoY29uc3QgV1RGOjpTdHJpbmcm
LCBjb25zdCBXZWJDb3JlOjpHcmFtbWFyRGV0YWlsJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2
b2lkIHVwZGF0ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQoY29uc3QgV1RGOjpTdHJpbmcm
KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2hvd1NwZWxsaW5nVUkoYm9vbCBzaG93KSBP
VkVSUklERTsKQEAgLTE3Myw3ICsxNzMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBXVEY6OlN0
cmluZyBnZXRBdXRvQ29ycmVjdFN1Z2dlc3Rpb25Gb3JNaXNzcGVsbGVkV29yZChjb25zdCBXVEY6
OlN0cmluZyYpIE9WRVJSSURFIHsgcmV0dXJuICIiOyB9CiAgICAgdmlydHVhbCB2b2lkIGNoZWNr
R3JhbW1hck9mU3RyaW5nKGNvbnN0IFVDaGFyKiwgaW50IGxlbmd0aCwgV1RGOjpWZWN0b3I8V2Vi
Q29yZTo6R3JhbW1hckRldGFpbD4mLCBpbnQqIGJhZEdyYW1tYXJMb2NhdGlvbiwgaW50KiBiYWRH
cmFtbWFyTGVuZ3RoKSBPVkVSUklERSB7IH0KICAgICAvLyBOb3RlOiBjaGVja1RleHRPZlBhcmFn
cmFwaCgpIGlzIGltcGxlbWVudGVkLiAKLSAgICB2aXJ0dWFsIHZvaWQgY2hlY2tUZXh0T2ZQYXJh
Z3JhcGgoY29uc3QgVUNoYXIqIHRleHQsIGludCBsZW5ndGgsIFdlYkNvcmU6OlRleHRDaGVja2lu
Z1R5cGVNYXNrIGNoZWNraW5nVHlwZXMsIFdURjo6VmVjdG9yPFdlYkNvcmU6OlRleHRDaGVja2lu
Z1Jlc3VsdD4mIHJlc3VsdHMpIE9WRVJSSURFOworICAgIHZpcnR1YWwgVmVjdG9yPFdlYkNvcmU6
OlRleHRDaGVja2luZ1Jlc3VsdD4gY2hlY2tUZXh0T2ZQYXJhZ3JhcGgoU3RyaW5nVmlldywgV2Vi
Q29yZTo6VGV4dENoZWNraW5nVHlwZU1hc2sgY2hlY2tpbmdUeXBlcykgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCB2b2lkIHVwZGF0ZVNwZWxsaW5nVUlXaXRoR3JhbW1hclN0cmluZyhjb25zdCBXVEY6
OlN0cmluZyYsIGNvbnN0IFdlYkNvcmU6OkdyYW1tYXJEZXRhaWwmKSBPVkVSUklERSB7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgdXBkYXRlU3BlbGxpbmdVSVdpdGhNaXNzcGVsbGVkV29yZChjb25zdCBX
VEY6OlN0cmluZyYpIE9WRVJSSURFIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzaG93U3BlbGxpbmdV
SShib29sIHNob3cpIE9WRVJSSURFIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCmluZGV4IDFjZGQzZTZmZDgzZTllOTE2YWE2
NTlhZTA5MTQ5ODViYmQ1NWQ0NDMuLjBjOTY4OTIzZjJmMGE0N2VhNzIwZWRmY2MxNzY5YTYzMjZj
OTUxMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQubW0KQEAgLTcxLDYgKzcxLDcgQEAKICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFk
Lmg+CiAjaW1wb3J0IDx3dGYvUGFzc1JlZlB0ci5oPgogI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4K
KyNpbXBvcnQgPHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtODc0LDEyICs4NzUsMTQgQEAgaW50IFdl
YkVkaXRvckNsaWVudDo6cGFzdGVib2FyZENoYW5nZUNvdW50KCkKICAgICByZXR1cm4gMDsKIH0K
IAotdm9pZCBXZWJFZGl0b3JDbGllbnQ6OmNoZWNrVGV4dE9mUGFyYWdyYXBoKGNvbnN0IFVDaGFy
KiB0ZXh0LCBpbnQgbGVuZ3RoLCBUZXh0Q2hlY2tpbmdUeXBlTWFzayBjaGVja2luZ1R5cGVzLCBW
ZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0PiYgcmVzdWx0cykKK3ZvaWQgV2ViRWRpdG9yQ2xpZW50
OjpjaGVja1RleHRPZlBhcmFncmFwaChTdHJpbmdWaWV3IHN0cmluZywgVGV4dENoZWNraW5nVHlw
ZU1hc2sgY2hlY2tpbmdUeXBlcykKIHsKICAgICBBU1NFUlQoY2hlY2tpbmdUeXBlcyAmIE5TVGV4
dENoZWNraW5nVHlwZVNwZWxsaW5nKTsKLSAgICBOU1N0cmluZyAqdGV4dFN0cmluZyA9IFtbTlNT
dHJpbmcgYWxsb2NdIGluaXRXaXRoQ2hhcmFjdGVyc05vQ29weTpjb25zdF9jYXN0PFVDaGFyKj4o
dGV4dCkgbGVuZ3RoOmxlbmd0aCBmcmVlV2hlbkRvbmU6Tk9dOwotICAgIE5TQXJyYXkgKmluY29t
aW5nUmVzdWx0cyA9IFtbbV93ZWJWaWV3IF9VSUtpdERlbGVnYXRlRm9yd2FyZGVyXSBjaGVja1Nw
ZWxsaW5nT2ZTdHJpbmc6dGV4dFN0cmluZ107Ci0gICAgW3RleHRTdHJpbmcgcmVsZWFzZV07CisK
KyAgICBOU0FycmF5ICppbmNvbWluZ1Jlc3VsdHMgPSBbW21fd2ViVmlldyBfVUlLaXREZWxlZ2F0
ZUZvcndhcmRlcl0gY2hlY2tTcGVsbGluZ09mU3RyaW5nOm5zU3RyaW5nV2l0aG91dENvcHlpbmco
c3RyaW5nKS5nZXQoKV07CisKKyAgICBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0PiByZXN1bHRz
OworCiAgICAgZm9yIChOU1ZhbHVlICppbmNvbWluZ1Jlc3VsdCBpbiBpbmNvbWluZ1Jlc3VsdHMp
IHsKICAgICAgICAgTlNSYW5nZSByZXN1bHRSYW5nZSA9IFtpbmNvbWluZ1Jlc3VsdCByYW5nZVZh
bHVlXTsKICAgICAgICAgQVNTRVJUKHJlc3VsdFJhbmdlLmxvY2F0aW9uICE9IE5TTm90Rm91bmQg
JiYgcmVzdWx0UmFuZ2UubGVuZ3RoID4gMCk7CkBAIC04ODksOSArODkyLDE5IEBAIHZvaWQgV2Vi
RWRpdG9yQ2xpZW50OjpjaGVja1RleHRPZlBhcmFncmFwaChjb25zdCBVQ2hhciogdGV4dCwgaW50
IGxlbmd0aCwgVGV4dENoCiAgICAgICAgIHJlc3VsdC5sZW5ndGggPSByZXN1bHRSYW5nZS5sZW5n
dGg7CiAgICAgICAgIHJlc3VsdHMuYXBwZW5kKHJlc3VsdCk7CiAgICAgfQorCisgICAgcmV0dXJu
IHJlc3VsdHM7CiB9CiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQogCitzdGF0aWMgUmV0YWluUHRy
PE5TU3RyaW5nPiBuc1N0cmluZ1dpdGhvdXRDb3B5aW5nKFN0cmluZ1ZpZXcgc3RyaW5nVmlldykK
K3sKKyAgICBpZiAoc3RyaW5nVmlldy5pczhCaXQoKSkKKyAgICAgICAgcmV0dXJuIGFkb3B0TlMo
W1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhCeXRlc05vQ29weTpjb25zdF9jYXN0PExDaGFyKj4o
c3RyaW5nVmlldy5jaGFyYWN0ZXJzOCgpKSBsZW5ndGg6c3RyaW5nVmlldy5sZW5ndGgoKSBlbmNv
ZGluZzpOU0lTT0xhdGluMVN0cmluZ0VuY29kaW5nIGZyZWVXaGVuRG9uZTpOT10pOworCisgICAg
cmV0dXJuIGFkb3B0TlMoW1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhDaGFyYWN0ZXJzTm9Db3B5
OmNvbnN0X2Nhc3Q8dW5pY2hhcio+KHN0cmluZ1ZpZXcuY2hhcmFjdGVyczE2KCkpIGxlbmd0aDpz
dHJpbmdWaWV3Lmxlbmd0aCgpIGZyZWVXaGVuRG9uZTpOT10pOworfQorCiAjaWYgIVBMQVRGT1JN
KElPUykKIGJvb2wgV2ViRWRpdG9yQ2xpZW50OjpzaG91bGRFcmFzZU1hcmtlcnNBZnRlckNoYW5n
ZVNlbGVjdGlvbihUZXh0Q2hlY2tpbmdUeXBlIHR5cGUpIGNvbnN0CiB7CkBAIC0xMDQyLDEyICsx
MDU1LDEzIEBAIHN0YXRpYyBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0PiBjb3JlKE5TQXJyYXkg
KmluY29taW5nUmVzdWx0cywgVGV4dENoZWNraW5nVHlwCiAgICAgcmV0dXJuIHJlc3VsdHM7CiB9
CiAKLXZvaWQgV2ViRWRpdG9yQ2xpZW50OjpjaGVja1RleHRPZlBhcmFncmFwaChjb25zdCBVQ2hh
ciogdGV4dCwgaW50IGxlbmd0aCwgVGV4dENoZWNraW5nVHlwZU1hc2sgY2hlY2tpbmdUeXBlcywg
VmVjdG9yPFRleHRDaGVja2luZ1Jlc3VsdD4mIHJlc3VsdHMpCitWZWN0b3I8VGV4dENoZWNraW5n
UmVzdWx0PiBXZWJFZGl0b3JDbGllbnQ6OmNoZWNrVGV4dE9mUGFyYWdyYXBoKFN0cmluZ1ZpZXcg
c3RyaW5nLCBUZXh0Q2hlY2tpbmdUeXBlTWFzayBjaGVja2luZ1R5cGVzKQogewotICAgIE5TU3Ry
aW5nICp0ZXh0U3RyaW5nID0gW1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhDaGFyYWN0ZXJzTm9D
b3B5OmNvbnN0X2Nhc3Q8VUNoYXIqPih0ZXh0KSBsZW5ndGg6bGVuZ3RoIGZyZWVXaGVuRG9uZTpO
T107Ci0gICAgTlNBcnJheSAqaW5jb21pbmdSZXN1bHRzID0gW1tOU1NwZWxsQ2hlY2tlciBzaGFy
ZWRTcGVsbENoZWNrZXJdIGNoZWNrU3RyaW5nOnRleHRTdHJpbmcgcmFuZ2U6TlNNYWtlUmFuZ2Uo
MCwgW3RleHRTdHJpbmcgbGVuZ3RoXSkgdHlwZXM6KGNoZWNraW5nVHlwZXN8TlNUZXh0Q2hlY2tp
bmdUeXBlT3J0aG9ncmFwaHkpIG9wdGlvbnM6bmlsIGluU3BlbGxEb2N1bWVudFdpdGhUYWc6c3Bl
bGxDaGVja2VyRG9jdW1lbnRUYWcoKSBvcnRob2dyYXBoeTpOVUxMIHdvcmRDb3VudDpOVUxMXTsK
LSAgICBbdGV4dFN0cmluZyByZWxlYXNlXTsKLSAgICByZXN1bHRzID0gY29yZShpbmNvbWluZ1Jl
c3VsdHMsIGNoZWNraW5nVHlwZXMpOworICAgIGF1dG8gdGV4dFN0cmluZyA9IG5zU3RyaW5nV2l0
aG91dENvcHlpbmcoc3RyaW5nKTsKKworICAgIE5TQXJyYXkgKmluY29taW5nUmVzdWx0cyA9IFtb
TlNTcGVsbENoZWNrZXIgc2hhcmVkU3BlbGxDaGVja2VyXSBjaGVja1N0cmluZzp0ZXh0U3RyaW5n
LmdldCgpIHJhbmdlOk5TTWFrZVJhbmdlKDAsIFt0ZXh0U3RyaW5nIGxlbmd0aF0pIHR5cGVzOihj
aGVja2luZ1R5cGVzfE5TVGV4dENoZWNraW5nVHlwZU9ydGhvZ3JhcGh5KSBvcHRpb25zOm5pbCBp
blNwZWxsRG9jdW1lbnRXaXRoVGFnOnNwZWxsQ2hlY2tlckRvY3VtZW50VGFnKCkgb3J0aG9ncmFw
aHk6TlVMTCB3b3JkQ291bnQ6TlVMTF07CisKKyAgICByZXR1cm4gY29yZShpbmNvbWluZ1Jlc3Vs
dHMsIGNoZWNraW5nVHlwZXMpOwogfQogCiB2b2lkIFdlYkVkaXRvckNsaWVudDo6dXBkYXRlU3Bl
bGxpbmdVSVdpdGhHcmFtbWFyU3RyaW5nKGNvbnN0IFN0cmluZyYgYmFkR3JhbW1hclBocmFzZSwg
Y29uc3QgR3JhbW1hckRldGFpbCYgZ3JhbW1hckRldGFpbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNw
cAppbmRleCBmOThmNjRhMGQzODJiZDliNTU0MjE4OGIzYTljNjg2ZDZjNmUyMjQ2Li45MDU5ZjFl
NDVkYTdmYmM3ZmZjMDFhZjQ2N2NhOGQxODE1MDkxYjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
Y3BwCkBAIC01MSw2ICs1MSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9VbmRvU3RlcC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvVXNlclR5cGluZ0dlc3R1cmVJbmRpY2F0b3IuaD4KICNpbmNsdWRlIDx3
dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdWaWV3Lmg+CiAK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKQEAg
LTQ0MiwxMCArNDQzLDEzIEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpjaGVja0dyYW1tYXJPZlN0
cmluZyhjb25zdCBVQ2hhciogdGV4dCwgaW50IGxlbmd0aCwgVmVjdG9yCiB9CiAKICNpZiBVU0Uo
VU5JRklFRF9URVhUX0NIRUNLSU5HKQotdm9pZCBXZWJFZGl0b3JDbGllbnQ6OmNoZWNrVGV4dE9m
UGFyYWdyYXBoKGNvbnN0IFVDaGFyKiB0ZXh0LCBpbnQgbGVuZ3RoLCBXZWJDb3JlOjpUZXh0Q2hl
Y2tpbmdUeXBlTWFzayBjaGVja2luZ1R5cGVzLCBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0PiYg
cmVzdWx0cykKK1ZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+IFdlYkVkaXRvckNsaWVudDo6Y2hl
Y2tUZXh0T2ZQYXJhZ3JhcGgoU3RyaW5nVmlldyBzdHJpbmdWaWV3LCBXZWJDb3JlOjpUZXh0Q2hl
Y2tpbmdUeXBlTWFzayBjaGVja2luZ1R5cGVzKQogewotICAgIC8vIEZJWE1FOiBJdCB3b3VsZCBi
ZSBuaWNlIGlmIHdlIHdvdWxkbid0IGhhdmUgdG8gY29weSB0aGUgdGV4dCBoZXJlLgotICAgIG1f
cGFnZS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q2hlY2tUZXh0T2ZQYXJhZ3Jh
cGgoU3RyaW5nKHRleHQsIGxlbmd0aCksIGNoZWNraW5nVHlwZXMpLCBNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpDaGVja1RleHRPZlBhcmFncmFwaDo6UmVwbHkocmVzdWx0cykpOworICAgIFZlY3Rv
cjxUZXh0Q2hlY2tpbmdSZXN1bHQ+IHJlc3VsdHM7CisKKyAgICBtX3BhZ2UtPnNlbmRTeW5jKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNoZWNrVGV4dE9mUGFyYWdyYXBoKHN0cmluZ1ZpZXcudG9T
dHJpbmdXaXRob3V0Q29weWluZygpLCBjaGVja2luZ1R5cGVzKSwgTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6Q2hlY2tUZXh0T2ZQYXJhZ3JhcGg6OlJlcGx5KHJlc3VsdHMpKTsKKworICAgIHJldHVy
biByZXN1bHRzOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCmluZGV4IDNkYWU2ZjNh
ZmIxOTdlN2UxOTM1YTQyODk1NWFhMjFlYzBhMjkzODAuLmIxYjI4ZDc2NTRlNzhmNTZmYWU3MzBk
NGE0NjJkZTg4ZGE4YmZjNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaApAQCAtMTM5LDcgKzEzOSw3
IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBTdHJpbmcgZ2V0QXV0b0NvcnJlY3RTdWdnZXN0aW9u
Rm9yTWlzc3BlbGxlZFdvcmQoY29uc3QgU3RyaW5nJiBtaXNzcGVsbGVkV29yZCkgT1ZFUlJJREU7
CiAgICAgdmlydHVhbCB2b2lkIGNoZWNrR3JhbW1hck9mU3RyaW5nKGNvbnN0IFVDaGFyKiwgaW50
IGxlbmd0aCwgVmVjdG9yPFdlYkNvcmU6OkdyYW1tYXJEZXRhaWw+JiwgaW50KiBiYWRHcmFtbWFy
TG9jYXRpb24sIGludCogYmFkR3JhbW1hckxlbmd0aCkgT1ZFUlJJREU7CiAjaWYgVVNFKFVOSUZJ
RURfVEVYVF9DSEVDS0lORykKLSAgICB2aXJ0dWFsIHZvaWQgY2hlY2tUZXh0T2ZQYXJhZ3JhcGgo
Y29uc3QgVUNoYXIqIHRleHQsIGludCBsZW5ndGgsIFdlYkNvcmU6OlRleHRDaGVja2luZ1R5cGVN
YXNrIGNoZWNraW5nVHlwZXMsIFZlY3RvcjxXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXN1bHQ+JiBy
ZXN1bHRzKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFZlY3RvcjxXZWJDb3JlOjpUZXh0Q2hlY2tp
bmdSZXN1bHQ+IGNoZWNrVGV4dE9mUGFyYWdyYXBoKFN0cmluZ1ZpZXcsIFdlYkNvcmU6OlRleHRD
aGVja2luZ1R5cGVNYXNrIGNoZWNraW5nVHlwZXMpIE9WRVJSSURFOwogI2VuZGlmCiAgICAgdmly
dHVhbCB2b2lkIHVwZGF0ZVNwZWxsaW5nVUlXaXRoR3JhbW1hclN0cmluZyhjb25zdCBTdHJpbmcm
LCBjb25zdCBXZWJDb3JlOjpHcmFtbWFyRGV0YWlsJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2
b2lkIHVwZGF0ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQoY29uc3QgU3RyaW5nJikgT1ZF
UlJJREU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220646</attachid>
            <date>2014-01-08 11:26:09 -0800</date>
            <delta_ts>2014-01-08 12:53:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-126644-20140108112613.patch</filename>
            <type>text/plain</type>
            <size>29336</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYxNTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDdlZDBhMjFhNGYxODdjMjk5YjkyNjNm
OGRiMDAxNmRlNWRmM2U2ZWMuLjZmNWQ2NjAyZTg4YWZlNzE0OTczYjk4YjMyZmRiMWQ2ZTg4OGY3
MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTQtMDEtMDggIEFuZGVycyBDYXJsc3NvbiAgPGFu
ZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgV1RGOjpTdHJpbmdWaWV3IGFuZCB1c2Ug
aXQgZm9yIGdyYW1tYXIgY2hlY2tpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEyNjY0NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBhIG5ldyBTdHJpbmdWaWV3IGNsYXNzIHdoaWNoIGlzIGFuIGlt
bXV0YWJsZSByZWZlcmVuY2UgdG8gZWl0aGVyIGFuIDgtYml0IG9yIGEgMTYtYml0IHN0cmluZy4K
KworICAgICAgICBUaGlzIG1ha2VzIGl0IGVhc2llciB0byBwYXNzIHN1YnN0cmluZ3MgYXJvdW5k
IHdpdGhvdXQgaGF2aW5nIHRvIGVpdGhlciBjb3B5IHN0cmluZyBkYXRhCisgICAgICAgIG9yIHVw
Y29udmVydCBhbmQgdXNlIFVDaGFyIHBvaW50ZXJzLgorCisgICAgICAgICogR05VbWFrZWZpbGUu
bGlzdC5hbToKKyAgICAgICAgKiBXVEYudmN4cHJvai9XVEYudmN4cHJvajoKKyAgICAgICAgKiBX
VEYudmN4cHJvai9XVEYudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIFdURi54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHd0Zi9DTWFrZUxpc3RzLnR4dDoKKyAgICAgICAg
KiB3dGYvRm9yd2FyZC5oOgorICAgICAgICAqIHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaDogQWRkZWQu
CisgICAgICAgIChXVEY6OlN0cmluZ1ZpZXc6OlN0cmluZ1ZpZXcpOgorICAgICAgICAoV1RGOjpT
dHJpbmdWaWV3OjplbXB0eSk6CisgICAgICAgIChXVEY6OlN0cmluZ1ZpZXc6OmNoYXJhY3RlcnM4
KToKKyAgICAgICAgKFdURjo6U3RyaW5nVmlldzo6Y2hhcmFjdGVyczE2KToKKyAgICAgICAgKFdU
Rjo6U3RyaW5nVmlldzo6aXNFbXB0eSk6CisgICAgICAgIChXVEY6OlN0cmluZ1ZpZXc6Omxlbmd0
aCk6CisgICAgICAgIChXVEY6OlN0cmluZ1ZpZXc6OmlzOEJpdCk6CisgICAgICAgIChXVEY6OlN0
cmluZ1ZpZXc6OnN1YnN0cmluZyk6CisgICAgICAgIChXVEY6OlN0cmluZ1ZpZXc6OnRvU3RyaW5n
KToKKyAgICAgICAgKFdURjo6U3RyaW5nVmlldzo6dG9TdHJpbmdXaXRob3V0Q29weWluZyk6Cisg
ICAgICAgIChXVEY6OlN0cmluZ1ZpZXc6OmVuY29kZWRDaGFyYWN0ZXJzKToKKwogMjAxNC0wMS0w
NyAgRGF2aWQgRmFybGVyICA8ZGZhcmxlckBhcHBsZS5jb20+CiAKICAgICAgICAgW0FTQU5dIEJ1
aWxkaW5nIHdpdGggdHJ1bmsgY2xhbmcgY29ycnVwdHMgc2FuZGJveCBwcm9maWxlIHdpdGggY29t
bWVudCBmcm9tIENvbXBpbGVyLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyYjhjOTkyZTYwYWY2NjE5NTkyZjBi
OTFiNGJkODBjMzVmZTdkZjUzLi41OTdjOGQzOTc5ODE0NjRiNjdmYWViNDZjNWFiZGFlNTUyOGM3
MDUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTQtMDEtMDggIEFuZGVycyBDYXJs
c3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgV1RGOjpTdHJpbmdWaWV3
IGFuZCB1c2UgaXQgZm9yIGdyYW1tYXIgY2hlY2tpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNjY0NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBhIFN0cmluZ1ZpZXcgaW4gVGV4dENoZWNrZXJD
bGllbnQ6OmNoZWNrVGV4dE9mUGFyYWdyYXBoIHRvIGF2b2lkIHVwY29udmVydGluZyBzdHJpbmdz
IHVubmVjZXNzYXJpbHkuCisKKyAgICAgICAgKiBlZGl0aW5nL1RleHRDaGVja2luZ0hlbHBlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpjaGVja1RleHRPZlBhcmFncmFwaCk6CisgICAgICAgIFBh
c3MgYSBTdHJpbmdWaWV3IHRvIFRleHRDaGVja2VyQ2xpZW50OjpjaGVja1RleHRPZlBhcmFncmFw
aC4KKyAgICAgICAgCisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICBV
cGRhdGUgZm9yIFRleHRDaGVja2VyQ2xpZW50IGNoYW5nZXMuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS90ZXh0L1RleHRDaGVja2VyQ2xpZW50Lmg6CisgICAgICAgIENoYW5nZSBUZXh0Q2hlY2tlckNs
aWVudDo6Y2hlY2tUZXh0T2ZQYXJhZ3JhcGggdG8gdGFrZSBhIFN0cmluZ1ZpZXcuCisgICAgICAg
IAogMjAxNC0wMS0wOCAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBVbnJldmlld2VkIFdpbmRvd3MgYnVpbGQgZml4IGF0dGVtcHQgYWZ0ZXIgcjE2MTQ4
MS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvZWZsL0NoYW5nZUxvZwppbmRleCBhMjQ0NjFlN2VjZWY4YjgxZTlhZWNmNzM1NzM1YWJlNTEz
Njk5Njk4Li5iMjZlNzY3MmNhM2EzMTQ1ZDk0YmY0YjMwY2RjMDhkODcwNWJhZmM1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTQtMDEtMDggIEFuZGVycyBDYXJsc3NvbiAg
PGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgV1RGOjpTdHJpbmdWaWV3IGFuZCB1
c2UgaXQgZm9yIGdyYW1tYXIgY2hlY2tpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyNjY0NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFVwZGF0ZSB0byBtYXRjaCBXZWJDb3JlIGNoYW5nZXMuCisKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkVkaXRvckNsaWVudEVmbDo6Y2hlY2tUZXh0T2ZQYXJhZ3JhcGgpOgorCiAyMDE0LTAxLTA1
ICBKaW53b28gU29uZyAgPGppbndvbzcuc29uZ0BzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZM
XSBGaXggZmFpbGluZyBXZWJLaXQxIEFQSSB0ZXN0IG9mIGV3a192aWV3X3NldHRpbmdfdGlsZWRf
YmFja2luZ19zdG9yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IGU0MzhjODU0M2M1YzZiNTMzYjIxOTEx
NWUwNDU1MzVhY2YwYTY1MWYuLjU2ZDJjNWQ1MzU5MzBhNTlmZGQyYjhmYTBhMTFjOGNkMDc4ZTk0
N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxNC0wMS0wOCAgQW5kZXJz
IENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBXVEY6OlN0cmlu
Z1ZpZXcgYW5kIHVzZSBpdCBmb3IgZ3JhbW1hciBjaGVja2luZworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI2NjQ0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW06Cisg
ICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OmNoZWNrVGV4dE9mUGFyYWdyYXBoKToKKyAgICAgICAg
VXBkYXRlIHRvIG1hdGNoIHRoZSBuZXcgc2lnbmF0dXJlLgorCisgICAgICAgIChuc1N0cmluZ1dp
dGhvdXRDb3B5aW5nKToKKyAgICAgICAgTmV3IGZ1bmN0aW9uIHRoYXQgY3JlYXRlcyBhbiBOU1N0
cmluZyB0aGF0IHJlZmVyZW5jZXMgU3RyaW5nVmlldyBkYXRhCisgICAgICAgIHdpdGhvdXQgY29w
eWluZyB0aGUgZGF0YS4gKElmIHRoaXMgZnVuY3Rpb24gcHJvdmVzIHRvIGJlIHVzZWZ1bCBlbHNl
d2hlcmUsIGl0IGNvdWxkCisgICAgICAgIHBvdGVudGlhbGx5IGJlIGFkZGVkIHRvIFN0cmluZ1Zp
ZXcpLgorCiAyMDE0LTAxLTAyICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbaU9TXSBDbGVhbiB1cCBzb21lIGV4cG9ydGVkIGhlYWRlcnMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBj
YjQyZDM1MTMxMjMzYjdhYWIwMWJjYjIyYTAxZmVlODIxMjA3YzVhLi4zN2M3OGY1YzJlMjNjYWVm
Y2Y4Yjg2NWVhN2Q0YzIxNDNmNWNjZjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIw
MTQtMDEtMDggIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAg
ICBBZGQgV1RGOjpTdHJpbmdWaWV3IGFuZCB1c2UgaXQgZm9yIGdyYW1tYXIgY2hlY2tpbmcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNjY0NAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBhIFN0cmlu
Z1ZpZXcgYW5kIHJlbW92ZSBhIEZJWE1FLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJFZGl0b3JD
bGllbnQ6OmNoZWNrVGV4dE9mUGFyYWdyYXBoKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorCiAyMDE0LTAxLTA4ICBaYW4gRG9iZXJzZWsg
IDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAogICAgICAgICBbQXV0b21ha2VdIFNjcmlwdHMgZm9y
IGdlbmVyYXRlZCBidWlsZCB0YXJnZXRzIGRvIG5vdCBuZWNlc3NhcmlseSBwcm9kdWNlIHRoZWly
IG91dHB1dApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291
cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDc2N2UyOTFlYTFmZTBjY2JmODhlZTAy
MzA2YTY0NWFiZWM5ODY5YzMuLjM5MDAzNTYzOGJmYzU1NGZlNGFjYmQxNzFmNDFiNWNkM2IzYWQ4
YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3Vy
Y2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTE1Nyw5ICsxNTcsOSBAQCB3dGZfc291cmNl
cyArPSBcCiAgICAgU291cmNlL1dURi93dGYvU3RyZWFtQnVmZmVyLmggXAogICAgIFNvdXJjZS9X
VEYvd3RmL1N0cmluZ0V4dHJhcy5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9TdHJpbmdIYXNoRHVt
cENvbnRleHQuaCBcCisgICAgU291cmNlL1dURi93dGYvU3RyaW5nSGFzaGVyLmggXAogICAgIFNv
dXJjZS9XVEYvd3RmL1N0cmluZ1ByaW50U3RyZWFtLmNwcCBcCiAgICAgU291cmNlL1dURi93dGYv
U3RyaW5nUHJpbnRTdHJlYW0uaCBcCi0gICAgU291cmNlL1dURi93dGYvU3RyaW5nSGFzaGVyLmgg
XAogICAgIFNvdXJjZS9XVEYvd3RmL1RDUGFja2VkQ2FjaGUuaCBcCiAgICAgU291cmNlL1dURi93
dGYvVENQYWdlTWFwLmggXAogICAgIFNvdXJjZS9XVEYvd3RmL1RDU3BpbkxvY2suaCBcCkBAIC0y
NDEsNiArMjQxLDcgQEAgd3RmX3NvdXJjZXMgKz0gXAogICAgIFNvdXJjZS9XVEYvd3RmL3RleHQv
U3RyaW5nSW1wbC5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ09wZXJhdG9ycy5o
IFwKICAgICBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ1N0YXRpY3MuY3BwIFwKKyAgICBTb3Vy
Y2UvV1RGL3d0Zi90ZXh0L1N0cmluZ1ZpZXcuaCBcCiAgICAgU291cmNlL1dURi93dGYvdGV4dC9U
ZXh0UG9zaXRpb24uaCBcCiAgICAgU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuY3BwIFwK
ICAgICBTb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvV1RGLnZjeHByb2ovV1RGLnZjeHByb2ogYi9Tb3VyY2UvV1RGL1dURi52Y3hwcm9qL1dU
Ri52Y3hwcm9qCmluZGV4IDY5OWU3NzQ4OGM4NTIyZTZjYTVjY2JlNzUxMjE4ODg0M2I5ZThiOTku
LmU5MzlhYTRlNWRmODdiZjg4NzA4N2I3Y2I0MmJmOTQ4NjZkNmFhZDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvV1RGLnZjeHByb2ovV1RGLnZjeHByb2oKKysrIGIvU291cmNlL1dURi9XVEYudmN4
cHJvai9XVEYudmN4cHJvagpAQCAtMjkxLDYgKzI5MSw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlx3dGZcdGV4dFxTdHJpbmdIYXNoLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlx3dGZcdGV4dFxTdHJpbmdJbXBsLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
Llx3dGZcdGV4dFxTdHJpbmdPcGVyYXRvcnMuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXHd0Zlx0ZXh0XFN0cmluZ1ZpZXcuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XHd0Zlx0ZXh0XFdURlN0cmluZy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3Rm
XFRocmVhZGluZy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXFRocmVhZGlu
Z1ByaW1pdGl2ZXMuaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnZjeHByb2ovV1RG
LnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9XVEYvV1RGLnZjeHByb2ovV1RGLnZjeHByb2ouZmls
dGVycwppbmRleCA3YjdmMWQ0N2E5ZjU0MjkwODdmYzRkODEzNjA0YWMxMjcwNjc3ZGQwLi43NzVk
MzEzMzE2NDA0M2Y4OTZjZDBhODdlMjcwMjM5NzY5NWYwODJmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL1dURi52Y3hwcm9qL1dURi52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dURi9XVEYu
dmN4cHJvai9XVEYudmN4cHJvai5maWx0ZXJzCkBAIC0zMTgsNiArMzE4LDkgQEAKICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXHd0Zlx0ZXh0XFN0cmluZ09wZXJhdG9ycy5oIj4KICAgICAgIDxG
aWx0ZXI+dGV4dDwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cd3RmXHRleHRcU3RyaW5nVmlldy5oIj4KKyAgICAgIDxGaWx0ZXI+d3RmPC9GaWx0
ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcdGV4
dFxXVEZTdHJpbmcuaCI+CiAgICAgICA8RmlsdGVyPnRleHQ8L0ZpbHRlcj4KICAgICA8L0NsSW5j
bHVkZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDNiZTk0
YzdhMDk2NDJlMWFmNTQ3NjdlY2JhNTA2ZjhhNTQxZjdhYWEuLjJhZDU1OTQ0NmZmYTU3MGU3ZjJi
NjgwMWM1ZDlkZWE1MjMyMTY3ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtNTUsNiArNTUsNyBAQAogCQkxQTFEOEI5RTE3MzE4Nzk4MDAxNDFEQTQgLyog
RnVuY3Rpb25EaXNwYXRjaGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFBMUQ4QjlEMTczMTg3OTgwMDE0MURBNCAvKiBGdW5jdGlvbkRpc3BhdGNo
ZXIuY3BwICovOyB9OwogCQkxQTIzM0M3RDE3REFBNkUzMDBBOTNBQ0YgLyogTWFsbG9jUHRyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTIzM0M3QzE3
REFBNkUzMDBBOTNBQ0YgLyogTWFsbG9jUHRyLmggKi87IH07CiAJCTFBNkJCNzY5MTYyRjMwMDUw
MEREMTZEQiAvKiBTdHJlYW1CdWZmZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFBNkJCNzY4MTYyRjMwMDUwMEREMTZEQiAvKiBTdHJlYW1CdWZmZXIu
aCAqLzsgfTsKKwkJMUE2RUIxRTAxODdEMEJEMzAwMzAxMjZGIC8qIFN0cmluZ1ZpZXcuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNkVCMURGMTg3RDBC
RDMwMDMwMTI2RiAvKiBTdHJpbmdWaWV3LmggKi87IH07CiAJCTFGQTQ3QzhBMTUyNTAyREEwMDU2
OEQxQiAvKiBXZWJDb3JlVGhyZWFkLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFGQTQ3Qzg4MTUyNTAyREEwMDU2OEQxQiAvKiBXZWJDb3JlVGhyZWFk
LmNwcCAqLzsgfTsKIAkJMUZBNDdDOEIxNTI1MDJEQTAwNTY4RDFCIC8qIFdlYkNvcmVUaHJlYWQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFGQTQ3Qzg5
MTUyNTAyREEwMDU2OEQxQiAvKiBXZWJDb3JlVGhyZWFkLmggKi87IH07CiAJCTI2MTQ3QjBBMTVE
RENDREMwMEREQjkwNyAvKiBJbnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjE0N0IwODE1RERDQ0RDMDBEREI5
MDcgLyogSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oICovOyB9OwpAQCAtMzIyLDYgKzMyMyw3
IEBACiAJCTFBMjMzQzdDMTdEQUE2RTMwMEE5M0FDRiAvKiBNYWxsb2NQdHIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWFsbG9jUHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTFBM0Y2QkU2MTc0QURBMjEwMEIyRUVBNyAvKiBOZXZlckRlc3Ryb3llZC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBOZXZlckRlc3Ryb3llZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkxQTZCQjc2ODE2MkYzMDA1MDBERDE2REIgLyogU3RyZWFtQnVmZmVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0cmVhbUJ1ZmZlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkxQTZFQjFERjE4N0QwQkQzMDAzMDEyNkYgLyogU3RyaW5nVmlldy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHJpbmdWaWV3Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTFGQTQ3Qzg4MTUyNTAyREEwMDU2OEQxQiAvKiBXZWJDb3JlVGhy
ZWFkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvcmVUaHJl
YWQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRkE0N0M4OTE1MjUwMkRBMDA1
NjhEMUIgLyogV2ViQ29yZVRocmVhZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJDb3JlVGhyZWFkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2MTQ3QjA4
MTVERENDREMwMEREQjkwNyAvKiBJbnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTkwNSw2ICs5MDcsNyBAQAogCQkJCUE4QTQ3MzJD
MTUxQTgyNUIwMDQxMjNGRiAvKiBUZXh0UG9zaXRpb24uaCAqLywKIAkJCQlBOEE0NzMyRDE1MUE4
MjVCMDA0MTIzRkYgLyogV1RGU3RyaW5nLmNwcCAqLywKIAkJCQlBOEE0NzMyRTE1MUE4MjVCMDA0
MTIzRkYgLyogV1RGU3RyaW5nLmggKi8sCisJCQkJMUE2RUIxREYxODdEMEJEMzAwMzAxMjZGIC8q
IFN0cmluZ1ZpZXcuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gdGV4dDsKIAkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7CkBAIC0xMTA0LDYgKzExMDcsNyBAQAogCQkJCUE4QTQ3NDJGMTUxQTgyNUIw
MDQxMjNGRiAvKiBUQ1BhZ2VNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3NDMwMTUxQTgy
NUIwMDQxMjNGRiAvKiBUQ1NwaW5Mb2NrLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzQzMjE1
MUE4MjVCMDA0MTIzRkYgLyogVENTeXN0ZW1BbGxvYy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUE2
RUIxRTAxODdEMEJEMzAwMzAxMjZGIC8qIFN0cmluZ1ZpZXcuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE4QTQ3NDMzMTUxQTgyNUIwMDQxMjNGRiAvKiBUZW1wb3JhcnlDaGFuZ2UuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE4QTQ3NDQ0MTUxQTgyNUIwMDQxMjNGRiAvKiBUZXh0UG9zaXRpb24uaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE4QTQ3NDQ3MTUxQTgyNUIwMDQxMjNGRiAvKiBUaHJlYWRGdW5jdGlv
bkludm9jYXRpb24uaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
Q01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAppbmRleCAzNzIz
Yzc1ZWVmZGJhNWFlODkyZjhlNDlhZTdhOWZkMzRmODgzODNhLi5iMDAyZDVjNTA3ZTMwZjgzMWUx
MDMxMGM4ZDAwNjJmYzdjN2QzZmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxp
c3RzLnR4dAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dApAQCAtMTM0LDYgKzEz
NCw3IEBAIHNldChXVEZfSEVBREVSUwogICAgIHRleHQvU3RyaW5nQnVmZmVyLmgKICAgICB0ZXh0
L1N0cmluZ0hhc2guaAogICAgIHRleHQvU3RyaW5nSW1wbC5oCisgICAgdGV4dC9TdHJpbmdWaWV3
LmgKICAgICB0ZXh0L1dURlN0cmluZy5oCiAKICAgICB0aHJlYWRzL0JpbmFyeVNlbWFwaG9yZS5o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Gb3J3YXJkLmggYi9Tb3VyY2UvV1RGL3d0Zi9G
b3J3YXJkLmgKaW5kZXggZjFjMjIzZmY5MTI3M2M0NWViZjNlZWViZWFjZDNiNzg2ODg5OTQyMS4u
MTY3Y2FmYjIwMDg4NDFkMmQyMTA5MjUyMGIwM2E3NjcyMzg4YzRhNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvRm9yd2FyZC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0ZvcndhcmQuaApAQCAt
NDcsNiArNDcsNyBAQCBjbGFzcyBQcmludFN0cmVhbTsKIGNsYXNzIFN0cmluZzsKIGNsYXNzIFN0
cmluZ0J1aWxkZXI7CiBjbGFzcyBTdHJpbmdJbXBsOworY2xhc3MgU3RyaW5nVmlldzsKIAogfQog
CkBAIC02OSw2ICs3MCw3IEBAIHVzaW5nIFdURjo6U3RyaW5nOwogdXNpbmcgV1RGOjpTdHJpbmdC
dWZmZXI7CiB1c2luZyBXVEY6OlN0cmluZ0J1aWxkZXI7CiB1c2luZyBXVEY6OlN0cmluZ0ltcGw7
Cit1c2luZyBXVEY6OlN0cmluZ1ZpZXc7CiB1c2luZyBXVEY6OlZlY3RvcjsKIAogI2VuZGlmIC8v
IFdURl9Gb3J3YXJkX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nVmll
dy5oIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdWaWV3LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzU1NTc4
YWRjYmIyNjQzNDM2NWU3ZDczNDk2N2M0YTAzNDg0YWJmZAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nVmlldy5oCkBAIC0wLDAgKzEsMTQ4IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBTdHJpbmdWaWV3X2gKKyNkZWZpbmUgU3RyaW5nVmlld19oCisKKyNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdURiB7CisKKy8vIFN0cmlu
Z1ZpZXcgaXMgYSBub24tb3duaW5nIHJlZmVyZW5jZSB0byBhIHN0cmluZywgc2ltaWxhciB0byB0
aGUgcHJvcG9zZWQgc3RkOjpzdHJpbmdfdmlldy4KKy8vIFdoZXRoZXIgdGhlIHN0cmluZyBpcyA4
LWJpdCBvciAxNi1iaXQgaXMgZW5jb2RlZCBpbiB0aGUgdXBwZXIgYml0IG9mIHRoZSBsZW5ndGgg
bWVtYmVyLgorLy8gKFRoaXMgbWVhbnMgdGhhdCBzdHJpbmdzIGxvbmdlciB0aGFuIDIgR2lnYWJ5
dGVzIGNhbiBub3QgYmUgcmVwcmVzZW50ZWQuIElmIHRoYXQgdHVybnMgb3V0IHRvIGJlCisvLyBh
IHByb2JsZW0gd2UgY2FuIGludmVzdGlnYXRlIGFsdGVybmF0aXZlIHNvbHV0aW9ucykuCisKK2Ns
YXNzIFN0cmluZ1ZpZXcgeworcHVibGljOgorICAgIFN0cmluZ1ZpZXcoY29uc3QgTENoYXIgKmNo
YXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCkKKyAgICB7CisgICAgICAgIGluaXRpYWxpemUoY2hh
cmFjdGVycywgbGVuZ3RoKTsKKyAgICB9CisKKyAgICBTdHJpbmdWaWV3KGNvbnN0IFVDaGFyICpj
aGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgpCisgICAgeworICAgICAgICBpbml0aWFsaXplKGNo
YXJhY3RlcnMsIGxlbmd0aCk7CisgICAgfQorCisgICAgU3RyaW5nVmlldyhjb25zdCBTdHJpbmcm
IHN0cmluZykKKyAgICAgICAgOiBtX2NoYXJhY3RlcnMobnVsbHB0cikKKyAgICAgICAgLCBtX2xl
bmd0aCgwKQorICAgIHsKKyAgICAgICAgaWYgKCFzdHJpbmcuaW1wbCgpKQorICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAKKyAgICAgICAgaWYgKHN0cmluZy5pczhCaXQoKSkKKyAgICAgICAg
ICAgIGluaXRpYWxpemUoc3RyaW5nLmNoYXJhY3RlcnM4KCksIHN0cmluZy5sZW5ndGgoKSk7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIGluaXRpYWxpemUoc3RyaW5nLmNoYXJhY3RlcnMxNigp
LCBzdHJpbmcubGVuZ3RoKCkpOworICAgIH0KKworICAgIHN0YXRpYyBTdHJpbmdWaWV3IGVtcHR5
KCkKKyAgICB7CisgICAgICAgIHJldHVybiBTdHJpbmdWaWV3KHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgTENoYXIqPigiIiksIDApOworICAgIH0KKworICAgIGNvbnN0IExDaGFyKiBjaGFyYWN0ZXJz
OCgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQoaXM4Qml0KCkpOworCisgICAgICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxjb25zdCBMQ2hhcio+KG1fY2hhcmFjdGVycyk7CisgICAgfQorCisg
ICAgY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMxNigpIGNvbnN0CisgICAgeworICAgICAgICBBU1NF
UlQoIWlzOEJpdCgpKTsKKworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgVUNoYXIq
PihtX2NoYXJhY3RlcnMpOworICAgIH0KKworICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0
dXJuICFsZW5ndGgoKTsgfQorICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1f
bGVuZ3RoICYgfmlzMTZCaXRTdHJpbmdGbGFnOyB9CisKKyAgICBib29sIGlzOEJpdCgpIGNvbnN0
IHsgcmV0dXJuICEobV9sZW5ndGggJiBpczE2Qml0U3RyaW5nRmxhZyk7IH0KKworICAgIFN0cmlu
Z1ZpZXcgc3Vic3RyaW5nKHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGggPSBzdGQ6Om51
bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCkpIGNvbnN0CisgICAgeworICAgICAgICBpZiAo
c3RhcnQgPj0gdGhpcy0+bGVuZ3RoKCkpCisgICAgICAgICAgICByZXR1cm4gZW1wdHkoKTsKKyAg
ICAgICAgdW5zaWduZWQgbWF4TGVuZ3RoID0gdGhpcy0+bGVuZ3RoKCkgLSBzdGFydDsKKworICAg
ICAgICBpZiAobGVuZ3RoID49IG1heExlbmd0aCkgeworICAgICAgICAgICAgaWYgKCFzdGFydCkK
KyAgICAgICAgICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgICAgICAgICBsZW5ndGggPSBtYXhM
ZW5ndGg7CisgICAgICAgIH0KKworICAgICAgICBpZiAoaXM4Qml0KCkpCisgICAgICAgICAgICBy
ZXR1cm4gU3RyaW5nVmlldyhjaGFyYWN0ZXJzOCgpICsgc3RhcnQsIGxlbmd0aCk7CisKKyAgICAg
ICAgcmV0dXJuIFN0cmluZ1ZpZXcoY2hhcmFjdGVyczE2KCkgKyBzdGFydCwgbGVuZ3RoKTsKKyAg
ICB9CisKKyAgICBTdHJpbmcgdG9TdHJpbmcoKSBjb25zdAorICAgIHsKKyAgICAgICAgaWYgKGlz
OEJpdCgpKQorICAgICAgICAgICAgcmV0dXJuIFN0cmluZyhjaGFyYWN0ZXJzOCgpLCBsZW5ndGgo
KSk7CisKKyAgICAgICAgcmV0dXJuIFN0cmluZyhjaGFyYWN0ZXJzMTYoKSwgbGVuZ3RoKCkpOwor
ICAgIH0KKworICAgIFN0cmluZyB0b1N0cmluZ1dpdGhvdXRDb3B5aW5nKCkgY29uc3QKKyAgICB7
CisgICAgICAgIGlmIChpczhCaXQoKSkKKyAgICAgICAgICAgIHJldHVybiBTdHJpbmdJbXBsOjpj
cmVhdGVXaXRob3V0Q29weWluZyhjaGFyYWN0ZXJzOCgpLCBsZW5ndGgoKSk7CisKKyAgICAgICAg
cmV0dXJuIFN0cmluZ0ltcGw6OmNyZWF0ZVdpdGhvdXRDb3B5aW5nKGNoYXJhY3RlcnMxNigpLCBs
ZW5ndGgoKSk7CisgICAgfQorCitwcml2YXRlOgorICAgIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBM
Q2hhciAqY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQorICAgIHsKKyAgICAgICAgQVNTRVJU
KCEobGVuZ3RoICYgaXMxNkJpdFN0cmluZ0ZsYWcpKTsKKyAgICAgICAgCisgICAgICAgIG1fY2hh
cmFjdGVycyA9IGNoYXJhY3RlcnM7CisgICAgICAgIG1fbGVuZ3RoID0gbGVuZ3RoOworICAgIH0K
KworICAgIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBVQ2hhciAqY2hhcmFjdGVycywgdW5zaWduZWQg
bGVuZ3RoKQorICAgIHsKKyAgICAgICAgQVNTRVJUKCEobGVuZ3RoICYgaXMxNkJpdFN0cmluZ0Zs
YWcpKTsKKyAgICAgICAgCisgICAgICAgIG1fY2hhcmFjdGVycyA9IGNoYXJhY3RlcnM7CisgICAg
ICAgIG1fbGVuZ3RoID0gaXMxNkJpdFN0cmluZ0ZsYWcgfCBsZW5ndGg7CisgICAgfQorCisgICAg
c3RhdGljIGNvbnN0IHVuc2lnbmVkIGlzMTZCaXRTdHJpbmdGbGFnID0gMXUgPDwgMzE7CisKKyAg
ICBjb25zdCB2b2lkKiBtX2NoYXJhY3RlcnM7CisgICAgdW5zaWduZWQgbV9sZW5ndGg7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXVEYKKwordXNpbmcgV1RGOjpTdHJpbmdWaWV3OworCisjZW5kaWYg
Ly8gU3RyaW5nVmlld19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRD
aGVja2luZ0hlbHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRDaGVja2luZ0hl
bHBlci5jcHAKaW5kZXggMjJjYjk4YmVhNjEwMWI4MzljNTU0MmQxMjE1ZjZkM2VhZDE4OTc0Ni4u
ZTFjZTE0NjBlMDliYjAzYzkxZDg2YjdkZDdhNTRlN2ZlMTVjNGUwNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvVGV4dENoZWNraW5nSGVscGVyLmNwcApAQCAtMzYsNiArMzYsNyBAQAog
I2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgogI2luY2x1ZGUgIlZpc2libGVQb3NpdGlvbi5oIgog
I2luY2x1ZGUgIlZpc2libGVVbml0cy5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ1ZpZXcu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC02MzksNyArNjQwLDcgQEAgdm9pZCBjaGVj
a1RleHRPZlBhcmFncmFwaChUZXh0Q2hlY2tlckNsaWVudCogY2xpZW50LCBjb25zdCBVQ2hhciog
dGV4dCwgaW50IGxlbmcKICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dENoZWNraW5nVHlw
ZU1hc2sgY2hlY2tpbmdUeXBlcywgVmVjdG9yPFRleHRDaGVja2luZ1Jlc3VsdD4mIHJlc3VsdHMp
CiB7CiAjaWYgVVNFKFVOSUZJRURfVEVYVF9DSEVDS0lORykKLSAgICBjbGllbnQtPmNoZWNrVGV4
dE9mUGFyYWdyYXBoKHRleHQsIGxlbmd0aCwgY2hlY2tpbmdUeXBlcywgcmVzdWx0cyk7CisgICAg
cmVzdWx0cyA9IGNsaWVudC0+Y2hlY2tUZXh0T2ZQYXJhZ3JhcGgoU3RyaW5nVmlldyh0ZXh0LCBs
ZW5ndGgpLCBjaGVja2luZ1R5cGVzKTsKICNlbHNlCiAgICAgVmVjdG9yPFRleHRDaGVja2luZ1Jl
c3VsdD4gc3BlbGxpbmdSZXN1bHQ7CiAgICAgaWYgKGNoZWNraW5nVHlwZXMgJiBUZXh0Q2hlY2tp
bmdUeXBlU3BlbGxpbmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlD
bGllbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggZGE2
M2NmNjRmZDZlNTY0NjdlOTg4MmU5ZmU3YjMwYWVjNjlkNmQzNi4uYTI3NGY2YWFiYTMwOGI1NGUw
MmY5YjVkOTJhYjc4MGYxZDZkYzM5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0VtcHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMu
aApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgIkluc3BlY3RvckNsaWVudC5oIgogI2luY2x1
ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCisjaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nVmlldy5oPgogCiAvKgogIFRoaXMgZmlsZSBob2xkcyBlbXB0eSBDbGllbnQgc3R1
YnMgZm9yIHVzZSBieSBXZWJDb3JlLgpAQCAtNDI1LDcgKzQyNiw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgY2hlY2tHcmFtbWFyT2ZTdHJpbmcoY29uc3QgVUNoYXIqLCBpbnQsIFZlY3Rv
cjxHcmFtbWFyRGV0YWlsPiYsIGludCosIGludCopIE9WRVJSSURFIHsgfQogCiAjaWYgVVNFKFVO
SUZJRURfVEVYVF9DSEVDS0lORykKLSAgICB2aXJ0dWFsIHZvaWQgY2hlY2tUZXh0T2ZQYXJhZ3Jh
cGgoY29uc3QgVUNoYXIqLCBpbnQsIFRleHRDaGVja2luZ1R5cGVNYXNrLCBWZWN0b3I8VGV4dENo
ZWNraW5nUmVzdWx0PiYpIE9WRVJSSURFIHsgfTsKKyAgICB2aXJ0dWFsIFZlY3RvcjxUZXh0Q2hl
Y2tpbmdSZXN1bHQ+IGNoZWNrVGV4dE9mUGFyYWdyYXBoKFN0cmluZ1ZpZXcsIFRleHRDaGVja2lu
Z1R5cGVNYXNrKSBPVkVSUklERSB7IHJldHVybiBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0Pigp
OyB9CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBT
dHJpbmcmLCBjb25zdCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYpIE9WRVJSSURFIHsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q2hlY2tlckNsaWVudC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q2hlY2tlckNsaWVudC5oCmluZGV4
IDgwM2JmYjg4YjhmNDUzNDJjOTZlMzBmYjc5MGM0ZTU2OGQ2MDhjYmUuLjA1NGZiMTFlY2Y4OWU2
ODFkNWU4ZWUyYWVmZWI2Y2FlNWMyOGVmOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvVGV4dENoZWNrZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L1RleHRDaGVja2VyQ2xpZW50LmgKQEAgLTQ5LDcgKzQ5LDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBjaGVja0dyYW1tYXJPZlN0cmluZyhjb25zdCBVQ2hhciosIGludCBs
ZW5ndGgsIFZlY3RvcjxHcmFtbWFyRGV0YWlsPiYsIGludCogYmFkR3JhbW1hckxvY2F0aW9uLCBp
bnQqIGJhZEdyYW1tYXJMZW5ndGgpID0gMDsKIAogI2lmIFVTRShVTklGSUVEX1RFWFRfQ0hFQ0tJ
TkcpCi0gICAgdmlydHVhbCB2b2lkIGNoZWNrVGV4dE9mUGFyYWdyYXBoKGNvbnN0IFVDaGFyKiB0
ZXh0LCBpbnQgbGVuZ3RoLCBUZXh0Q2hlY2tpbmdUeXBlTWFzayBjaGVja2luZ1R5cGVzLCBWZWN0
b3I8VGV4dENoZWNraW5nUmVzdWx0PiYgcmVzdWx0cykgPSAwOworICAgIHZpcnR1YWwgVmVjdG9y
PFRleHRDaGVja2luZ1Jlc3VsdD4gY2hlY2tUZXh0T2ZQYXJhZ3JhcGgoU3RyaW5nVmlldywgVGV4
dENoZWNraW5nVHlwZU1hc2sgY2hlY2tpbmdUeXBlcykgPSAwOwogI2VuZGlmCiAKICAgICAvLyBG
b3Igc3BlbGxjaGVja2VycyB0aGF0IHN1cHBvcnQgbXVsdGlwbGUgbGFuZ3VhZ2VzLCBpdCdzIG9m
dGVuIGltcG9ydGFudCB0byBiZSBhYmxlIHRvIGlkZW50aWZ5IHRoZSBsYW5ndWFnZSBpbiBvcmRl
ciB0bwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50RWZsLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGll
bnRFZmwuaAppbmRleCAyNjdkNjU5NGM3MTcwYjhjZDNlYjc5ZTY3MGQ3ZTc4YmU0MGRmNmI3Li42
NGVhMjRhNjFlZjkwNjExMjA5ZGEyMDU3Mzk3Mjk0MmI4ZTYyODQxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuaApAQCAtNDAsNiAr
NDAsNyBAQAogI2luY2x1ZGUgIlRleHRDaGVja2VyQ2xpZW50LmgiCiAjaW5jbHVkZSA8d3RmL0Rl
cXVlLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdWaWV3Lmg+CiAKIHN0cnVjdCBFd2tfU2hvdWxkX0luc2VydF9Ob2RlX0V2ZW50IHsKICAgICBX
ZWJDb3JlOjpOb2RlKiBub2RlOwpAQCAtMTQ3LDcgKzE0OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpOwogICAgIHZpcnR1YWwg
dm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6VGV4
dENoZWNraW5nUmVxdWVzdD4pIHsgfQogI2lmIFVTRShVTklGSUVEX1RFWFRfQ0hFQ0tJTkcpCi0g
ICAgdmlydHVhbCB2b2lkIGNoZWNrVGV4dE9mUGFyYWdyYXBoKGNvbnN0IFVDaGFyKiwgaW50LCBU
ZXh0Q2hlY2tpbmdUeXBlTWFzaywgVmVjdG9yPFRleHRDaGVja2luZ1Jlc3VsdD4mKSB7IH0KKyAg
ICB2aXJ0dWFsIFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+IGNoZWNrVGV4dE9mUGFyYWdyYXBo
KFN0cmluZ1ZpZXcsIFRleHRDaGVja2luZ1R5cGVNYXNrIGNoZWNraW5nVHlwZXMpIHsgcmV0dXJu
IFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+KCk7IH0KICNlbmRpZgogICAgIHZpcnR1YWwgVGV4
dENoZWNrZXJDbGllbnQqIHRleHRDaGVja2VyKCkgeyByZXR1cm4gdGhpczsgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaCBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCmluZGV4
IGM3MzA1OTA5NzQxZThjNWM0ZjNmNTc5OTAxYmRiYzYzYjhjYmJhNmQuLmZiZWY4YjBhN2Q2NDc1
MWU5YjViNWIwNzBkY2NiZGIyNzM5MjZmZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCkBAIC0xNTksNyArMTU5LDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBjaGVja1NwZWxsaW5nT2ZTdHJpbmcoY29uc3QgVUNoYXIq
LCBpbnQgbGVuZ3RoLCBpbnQqIG1pc3NwZWxsaW5nTG9jYXRpb24sIGludCogbWlzc3BlbGxpbmdM
ZW5ndGgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgZ2V0QXV0b0NvcnJlY3RT
dWdnZXN0aW9uRm9yTWlzc3BlbGxlZFdvcmQoY29uc3QgV1RGOjpTdHJpbmcmKSBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIHZvaWQgY2hlY2tHcmFtbWFyT2ZTdHJpbmcoY29uc3QgVUNoYXIqLCBpbnQg
bGVuZ3RoLCBXVEY6OlZlY3RvcjxXZWJDb3JlOjpHcmFtbWFyRGV0YWlsPiYsIGludCogYmFkR3Jh
bW1hckxvY2F0aW9uLCBpbnQqIGJhZEdyYW1tYXJMZW5ndGgpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCBjaGVja1RleHRPZlBhcmFncmFwaChjb25zdCBVQ2hhciogdGV4dCwgaW50IGxlbmd0
aCwgV2ViQ29yZTo6VGV4dENoZWNraW5nVHlwZU1hc2sgY2hlY2tpbmdUeXBlcywgV1RGOjpWZWN0
b3I8V2ViQ29yZTo6VGV4dENoZWNraW5nUmVzdWx0PiYgcmVzdWx0cykgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBWZWN0b3I8V2ViQ29yZTo6VGV4dENoZWNraW5nUmVzdWx0PiBjaGVja1RleHRPZlBh
cmFncmFwaChTdHJpbmdWaWV3LCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdUeXBlTWFzayBjaGVja2lu
Z1R5cGVzKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU3BlbGxpbmdVSVdpdGhH
cmFtbWFyU3RyaW5nKGNvbnN0IFdURjo6U3RyaW5nJiwgY29uc3QgV2ViQ29yZTo6R3JhbW1hckRl
dGFpbCYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTcGVsbGluZ1VJV2l0aE1p
c3NwZWxsZWRXb3JkKGNvbnN0IFdURjo6U3RyaW5nJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2
b2lkIHNob3dTcGVsbGluZ1VJKGJvb2wgc2hvdykgT1ZFUlJJREU7CkBAIC0xNzMsNyArMTczLDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgZ2V0QXV0b0NvcnJlY3RTdWdnZXN0
aW9uRm9yTWlzc3BlbGxlZFdvcmQoY29uc3QgV1RGOjpTdHJpbmcmKSBPVkVSUklERSB7IHJldHVy
biAiIjsgfQogICAgIHZpcnR1YWwgdm9pZCBjaGVja0dyYW1tYXJPZlN0cmluZyhjb25zdCBVQ2hh
ciosIGludCBsZW5ndGgsIFdURjo6VmVjdG9yPFdlYkNvcmU6OkdyYW1tYXJEZXRhaWw+JiwgaW50
KiBiYWRHcmFtbWFyTG9jYXRpb24sIGludCogYmFkR3JhbW1hckxlbmd0aCkgT1ZFUlJJREUgeyB9
CiAgICAgLy8gTm90ZTogY2hlY2tUZXh0T2ZQYXJhZ3JhcGgoKSBpcyBpbXBsZW1lbnRlZC4gCi0g
ICAgdmlydHVhbCB2b2lkIGNoZWNrVGV4dE9mUGFyYWdyYXBoKGNvbnN0IFVDaGFyKiB0ZXh0LCBp
bnQgbGVuZ3RoLCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdUeXBlTWFzayBjaGVja2luZ1R5cGVzLCBX
VEY6OlZlY3RvcjxXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXN1bHQ+JiByZXN1bHRzKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIFZlY3RvcjxXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXN1bHQ+IGNoZWNr
VGV4dE9mUGFyYWdyYXBoKFN0cmluZ1ZpZXcsIFdlYkNvcmU6OlRleHRDaGVja2luZ1R5cGVNYXNr
IGNoZWNraW5nVHlwZXMpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTcGVsbGlu
Z1VJV2l0aEdyYW1tYXJTdHJpbmcoY29uc3QgV1RGOjpTdHJpbmcmLCBjb25zdCBXZWJDb3JlOjpH
cmFtbWFyRGV0YWlsJikgT1ZFUlJJREUgeyB9CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNwZWxs
aW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQoY29uc3QgV1RGOjpTdHJpbmcmKSBPVkVSUklERSB7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgc2hvd1NwZWxsaW5nVUkoYm9vbCBzaG93KSBPVkVSUklERSB7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNs
aWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5tbQppbmRleCAxY2RkM2U2ZmQ4M2U5ZTkxNmFhNjU5YWUwOTE0OTg1YmJkNTVkNDQzLi4wYzk2
ODkyM2YyZjBhNDdlYTcyMGVkZmNjMTc2OWE2MzI2Yzk1MTIyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KKysrIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCkBAIC03MSw2ICs3
MSw3IEBACiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgogI2ltcG9ydCA8d3RmL1Bhc3NSZWZQ
dHIuaD4KICNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CisjaW1wb3J0IDx3dGYvdGV4dC9TdHJpbmdW
aWV3Lmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogI2lmIFBMQVRGT1JNKElP
UykKQEAgLTg3NCwxMiArODc1LDE0IEBAIGludCBXZWJFZGl0b3JDbGllbnQ6OnBhc3RlYm9hcmRD
aGFuZ2VDb3VudCgpCiAgICAgcmV0dXJuIDA7CiB9CiAKLXZvaWQgV2ViRWRpdG9yQ2xpZW50Ojpj
aGVja1RleHRPZlBhcmFncmFwaChjb25zdCBVQ2hhciogdGV4dCwgaW50IGxlbmd0aCwgVGV4dENo
ZWNraW5nVHlwZU1hc2sgY2hlY2tpbmdUeXBlcywgVmVjdG9yPFRleHRDaGVja2luZ1Jlc3VsdD4m
IHJlc3VsdHMpCit2b2lkIFdlYkVkaXRvckNsaWVudDo6Y2hlY2tUZXh0T2ZQYXJhZ3JhcGgoU3Ry
aW5nVmlldyBzdHJpbmcsIFRleHRDaGVja2luZ1R5cGVNYXNrIGNoZWNraW5nVHlwZXMpCiB7CiAg
ICAgQVNTRVJUKGNoZWNraW5nVHlwZXMgJiBOU1RleHRDaGVja2luZ1R5cGVTcGVsbGluZyk7Ci0g
ICAgTlNTdHJpbmcgKnRleHRTdHJpbmcgPSBbW05TU3RyaW5nIGFsbG9jXSBpbml0V2l0aENoYXJh
Y3RlcnNOb0NvcHk6Y29uc3RfY2FzdDxVQ2hhcio+KHRleHQpIGxlbmd0aDpsZW5ndGggZnJlZVdo
ZW5Eb25lOk5PXTsKLSAgICBOU0FycmF5ICppbmNvbWluZ1Jlc3VsdHMgPSBbW21fd2ViVmlldyBf
VUlLaXREZWxlZ2F0ZUZvcndhcmRlcl0gY2hlY2tTcGVsbGluZ09mU3RyaW5nOnRleHRTdHJpbmdd
OwotICAgIFt0ZXh0U3RyaW5nIHJlbGVhc2VdOworCisgICAgTlNBcnJheSAqaW5jb21pbmdSZXN1
bHRzID0gW1ttX3dlYlZpZXcgX1VJS2l0RGVsZWdhdGVGb3J3YXJkZXJdIGNoZWNrU3BlbGxpbmdP
ZlN0cmluZzpuc1N0cmluZ1dpdGhvdXRDb3B5aW5nKHN0cmluZykuZ2V0KCldOworCisgICAgVmVj
dG9yPFRleHRDaGVja2luZ1Jlc3VsdD4gcmVzdWx0czsKKwogICAgIGZvciAoTlNWYWx1ZSAqaW5j
b21pbmdSZXN1bHQgaW4gaW5jb21pbmdSZXN1bHRzKSB7CiAgICAgICAgIE5TUmFuZ2UgcmVzdWx0
UmFuZ2UgPSBbaW5jb21pbmdSZXN1bHQgcmFuZ2VWYWx1ZV07CiAgICAgICAgIEFTU0VSVChyZXN1
bHRSYW5nZS5sb2NhdGlvbiAhPSBOU05vdEZvdW5kICYmIHJlc3VsdFJhbmdlLmxlbmd0aCA+IDAp
OwpAQCAtODg5LDkgKzg5MiwxOSBAQCB2b2lkIFdlYkVkaXRvckNsaWVudDo6Y2hlY2tUZXh0T2ZQ
YXJhZ3JhcGgoY29uc3QgVUNoYXIqIHRleHQsIGludCBsZW5ndGgsIFRleHRDaAogICAgICAgICBy
ZXN1bHQubGVuZ3RoID0gcmVzdWx0UmFuZ2UubGVuZ3RoOwogICAgICAgICByZXN1bHRzLmFwcGVu
ZChyZXN1bHQpOwogICAgIH0KKworICAgIHJldHVybiByZXN1bHRzOwogfQogI2VuZGlmIC8vIFBM
QVRGT1JNKElPUykKIAorc3RhdGljIFJldGFpblB0cjxOU1N0cmluZz4gbnNTdHJpbmdXaXRob3V0
Q29weWluZyhTdHJpbmdWaWV3IHN0cmluZ1ZpZXcpCit7CisgICAgaWYgKHN0cmluZ1ZpZXcuaXM4
Qml0KCkpCisgICAgICAgIHJldHVybiBhZG9wdE5TKFtbTlNTdHJpbmcgYWxsb2NdIGluaXRXaXRo
Qnl0ZXNOb0NvcHk6Y29uc3RfY2FzdDxMQ2hhcio+KHN0cmluZ1ZpZXcuY2hhcmFjdGVyczgoKSkg
bGVuZ3RoOnN0cmluZ1ZpZXcubGVuZ3RoKCkgZW5jb2Rpbmc6TlNJU09MYXRpbjFTdHJpbmdFbmNv
ZGluZyBmcmVlV2hlbkRvbmU6Tk9dKTsKKworICAgIHJldHVybiBhZG9wdE5TKFtbTlNTdHJpbmcg
YWxsb2NdIGluaXRXaXRoQ2hhcmFjdGVyc05vQ29weTpjb25zdF9jYXN0PHVuaWNoYXIqPihzdHJp
bmdWaWV3LmNoYXJhY3RlcnMxNigpKSBsZW5ndGg6c3RyaW5nVmlldy5sZW5ndGgoKSBmcmVlV2hl
bkRvbmU6Tk9dKTsKK30KKwogI2lmICFQTEFURk9STShJT1MpCiBib29sIFdlYkVkaXRvckNsaWVu
dDo6c2hvdWxkRXJhc2VNYXJrZXJzQWZ0ZXJDaGFuZ2VTZWxlY3Rpb24oVGV4dENoZWNraW5nVHlw
ZSB0eXBlKSBjb25zdAogewpAQCAtMTA0MiwxMiArMTA1NSwxMyBAQCBzdGF0aWMgVmVjdG9yPFRl
eHRDaGVja2luZ1Jlc3VsdD4gY29yZShOU0FycmF5ICppbmNvbWluZ1Jlc3VsdHMsIFRleHRDaGVj
a2luZ1R5cAogICAgIHJldHVybiByZXN1bHRzOwogfQogCi12b2lkIFdlYkVkaXRvckNsaWVudDo6
Y2hlY2tUZXh0T2ZQYXJhZ3JhcGgoY29uc3QgVUNoYXIqIHRleHQsIGludCBsZW5ndGgsIFRleHRD
aGVja2luZ1R5cGVNYXNrIGNoZWNraW5nVHlwZXMsIFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+
JiByZXN1bHRzKQorVmVjdG9yPFRleHRDaGVja2luZ1Jlc3VsdD4gV2ViRWRpdG9yQ2xpZW50Ojpj
aGVja1RleHRPZlBhcmFncmFwaChTdHJpbmdWaWV3IHN0cmluZywgVGV4dENoZWNraW5nVHlwZU1h
c2sgY2hlY2tpbmdUeXBlcykKIHsKLSAgICBOU1N0cmluZyAqdGV4dFN0cmluZyA9IFtbTlNTdHJp
bmcgYWxsb2NdIGluaXRXaXRoQ2hhcmFjdGVyc05vQ29weTpjb25zdF9jYXN0PFVDaGFyKj4odGV4
dCkgbGVuZ3RoOmxlbmd0aCBmcmVlV2hlbkRvbmU6Tk9dOwotICAgIE5TQXJyYXkgKmluY29taW5n
UmVzdWx0cyA9IFtbTlNTcGVsbENoZWNrZXIgc2hhcmVkU3BlbGxDaGVja2VyXSBjaGVja1N0cmlu
Zzp0ZXh0U3RyaW5nIHJhbmdlOk5TTWFrZVJhbmdlKDAsIFt0ZXh0U3RyaW5nIGxlbmd0aF0pIHR5
cGVzOihjaGVja2luZ1R5cGVzfE5TVGV4dENoZWNraW5nVHlwZU9ydGhvZ3JhcGh5KSBvcHRpb25z
Om5pbCBpblNwZWxsRG9jdW1lbnRXaXRoVGFnOnNwZWxsQ2hlY2tlckRvY3VtZW50VGFnKCkgb3J0
aG9ncmFwaHk6TlVMTCB3b3JkQ291bnQ6TlVMTF07Ci0gICAgW3RleHRTdHJpbmcgcmVsZWFzZV07
Ci0gICAgcmVzdWx0cyA9IGNvcmUoaW5jb21pbmdSZXN1bHRzLCBjaGVja2luZ1R5cGVzKTsKKyAg
ICBhdXRvIHRleHRTdHJpbmcgPSBuc1N0cmluZ1dpdGhvdXRDb3B5aW5nKHN0cmluZyk7CisKKyAg
ICBOU0FycmF5ICppbmNvbWluZ1Jlc3VsdHMgPSBbW05TU3BlbGxDaGVja2VyIHNoYXJlZFNwZWxs
Q2hlY2tlcl0gY2hlY2tTdHJpbmc6dGV4dFN0cmluZy5nZXQoKSByYW5nZTpOU01ha2VSYW5nZSgw
LCBbdGV4dFN0cmluZyBsZW5ndGhdKSB0eXBlczooY2hlY2tpbmdUeXBlc3xOU1RleHRDaGVja2lu
Z1R5cGVPcnRob2dyYXBoeSkgb3B0aW9uczpuaWwgaW5TcGVsbERvY3VtZW50V2l0aFRhZzpzcGVs
bENoZWNrZXJEb2N1bWVudFRhZygpIG9ydGhvZ3JhcGh5Ok5VTEwgd29yZENvdW50Ok5VTExdOwor
CisgICAgcmV0dXJuIGNvcmUoaW5jb21pbmdSZXN1bHRzLCBjaGVja2luZ1R5cGVzKTsKIH0KIAog
dm9pZCBXZWJFZGl0b3JDbGllbnQ6OnVwZGF0ZVNwZWxsaW5nVUlXaXRoR3JhbW1hclN0cmluZyhj
b25zdCBTdHJpbmcmIGJhZEdyYW1tYXJQaHJhc2UsIGNvbnN0IEdyYW1tYXJEZXRhaWwmIGdyYW1t
YXJEZXRhaWwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKaW5kZXggZjk4ZjY0YTBkMzgyYmQ5YjU1
NDIxODhiM2E5YzY4NmQ2YzZlMjI0Ni4uOTA1OWYxZTQ1ZGE3ZmJjN2ZmYzAxYWY0NjdjYThkMTgx
NTA5MWI3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcApAQCAtNTEsNiArNTEsNyBAQAogI2lu
Y2x1ZGUgPFdlYkNvcmUvVW5kb1N0ZXAuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJUeXBpbmdH
ZXN0dXJlSW5kaWNhdG9yLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nVmlldy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CkBAIC00NDIsMTAgKzQ0MywxMyBAQCB2b2lkIFdl
YkVkaXRvckNsaWVudDo6Y2hlY2tHcmFtbWFyT2ZTdHJpbmcoY29uc3QgVUNoYXIqIHRleHQsIGlu
dCBsZW5ndGgsIFZlY3RvcgogfQogCiAjaWYgVVNFKFVOSUZJRURfVEVYVF9DSEVDS0lORykKLXZv
aWQgV2ViRWRpdG9yQ2xpZW50OjpjaGVja1RleHRPZlBhcmFncmFwaChjb25zdCBVQ2hhciogdGV4
dCwgaW50IGxlbmd0aCwgV2ViQ29yZTo6VGV4dENoZWNraW5nVHlwZU1hc2sgY2hlY2tpbmdUeXBl
cywgVmVjdG9yPFRleHRDaGVja2luZ1Jlc3VsdD4mIHJlc3VsdHMpCitWZWN0b3I8VGV4dENoZWNr
aW5nUmVzdWx0PiBXZWJFZGl0b3JDbGllbnQ6OmNoZWNrVGV4dE9mUGFyYWdyYXBoKFN0cmluZ1Zp
ZXcgc3RyaW5nVmlldywgV2ViQ29yZTo6VGV4dENoZWNraW5nVHlwZU1hc2sgY2hlY2tpbmdUeXBl
cykKIHsKLSAgICAvLyBGSVhNRTogSXQgd291bGQgYmUgbmljZSBpZiB3ZSB3b3VsZG4ndCBoYXZl
IHRvIGNvcHkgdGhlIHRleHQgaGVyZS4KLSAgICBtX3BhZ2UtPnNlbmRTeW5jKE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OkNoZWNrVGV4dE9mUGFyYWdyYXBoKFN0cmluZyh0ZXh0LCBsZW5ndGgpLCBj
aGVja2luZ1R5cGVzKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q2hlY2tUZXh0T2ZQYXJhZ3Jh
cGg6OlJlcGx5KHJlc3VsdHMpKTsKKyAgICBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0PiByZXN1
bHRzOworCisgICAgbV9wYWdlLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDaGVj
a1RleHRPZlBhcmFncmFwaChzdHJpbmdWaWV3LnRvU3RyaW5nV2l0aG91dENvcHlpbmcoKSwgY2hl
Y2tpbmdUeXBlcyksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNoZWNrVGV4dE9mUGFyYWdyYXBo
OjpSZXBseShyZXN1bHRzKSk7CisKKyAgICByZXR1cm4gcmVzdWx0czsKIH0KICNlbmRpZgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQuaAppbmRleCAzZGFlNmYzYWZiMTk3ZTdlMTkzNWE0Mjg5NTVhYTIxZWMw
YTI5MzgwLi5iMWIyOGQ3NjU0ZTc4ZjU2ZmFlNzMwZDRhNDYyZGU4OGRhOGJmYzcxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50LmgKQEAgLTEzOSw3ICsxMzksNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
U3RyaW5nIGdldEF1dG9Db3JyZWN0U3VnZ2VzdGlvbkZvck1pc3NwZWxsZWRXb3JkKGNvbnN0IFN0
cmluZyYgbWlzc3BlbGxlZFdvcmQpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBjaGVja0dy
YW1tYXJPZlN0cmluZyhjb25zdCBVQ2hhciosIGludCBsZW5ndGgsIFZlY3RvcjxXZWJDb3JlOjpH
cmFtbWFyRGV0YWlsPiYsIGludCogYmFkR3JhbW1hckxvY2F0aW9uLCBpbnQqIGJhZEdyYW1tYXJM
ZW5ndGgpIE9WRVJSSURFOwogI2lmIFVTRShVTklGSUVEX1RFWFRfQ0hFQ0tJTkcpCi0gICAgdmly
dHVhbCB2b2lkIGNoZWNrVGV4dE9mUGFyYWdyYXBoKGNvbnN0IFVDaGFyKiB0ZXh0LCBpbnQgbGVu
Z3RoLCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdUeXBlTWFzayBjaGVja2luZ1R5cGVzLCBWZWN0b3I8
V2ViQ29yZTo6VGV4dENoZWNraW5nUmVzdWx0PiYgcmVzdWx0cykgT1ZFUlJJREU7CisgICAgdmly
dHVhbCBWZWN0b3I8V2ViQ29yZTo6VGV4dENoZWNraW5nUmVzdWx0PiBjaGVja1RleHRPZlBhcmFn
cmFwaChTdHJpbmdWaWV3LCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdUeXBlTWFzayBjaGVja2luZ1R5
cGVzKSBPVkVSUklERTsKICNlbmRpZgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTcGVsbGluZ1VJ
V2l0aEdyYW1tYXJTdHJpbmcoY29uc3QgU3RyaW5nJiwgY29uc3QgV2ViQ29yZTo6R3JhbW1hckRl
dGFpbCYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTcGVsbGluZ1VJV2l0aE1p
c3NwZWxsZWRXb3JkKGNvbnN0IFN0cmluZyYpIE9WRVJSSURFOwo=
</data>
<flag name="review"
          id="244403"
          type_id="1"
          status="+"
          setter="koivisto"
    />
    <flag name="commit-queue"
          id="244415"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>