<?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>111132</bug_id>
          
          <creation_ts>2013-02-28 17:37:31 -0800</creation_ts>
          <short_desc>[WK2] Make in-memory blobs work in NetworkProcess</short_desc>
          <delta_ts>2013-03-01 14:03:03 -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>Page Loading</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>andersca</cc>
    
    <cc>beidson</cc>
    
    <cc>buildbot</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>844659</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-02-28 17:37:31 -0800</bug_when>
    <thetext>This patch makes blobs work, except it doesn&apos;t track sandbox extensions for files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844672</commentid>
    <comment_count>1</comment_count>
      <attachid>190859</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-02-28 17:53:13 -0800</bug_when>
    <thetext>Created attachment 190859
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844683</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-28 17:57:13 -0800</bug_when>
    <thetext>Attachment 190859 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.cpp&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.h&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.messages.in&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkProcess.cpp&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkProcessPlatformStrategies.cpp&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkProcessPlatformStrategies.h&apos;, u&apos;Source/WebKit2/Shared/FileAPI/BlobRegistrationData.cpp&apos;, u&apos;Source/WebKit2/Shared/FileAPI/BlobRegistrationData.h&apos;, u&apos;Source/WebKit2/WebKit2.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebKit2/WebProcess/FileAPI/BlobRegistryProxy.cpp&apos;, u&apos;Source/WebKit2/WebProcess/FileAPI/BlobRegistryProxy.h&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h&apos;]&quot; exit_code: 1
Source/WebKit2/WebProcess/FileAPI/BlobRegistryProxy.cpp:32:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebKit2/Shared/FileAPI/BlobRegistrationData.cpp:126:  Extra space before ) in for  [whitespace/parens] [5]
Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:254:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
Total errors found: 3 in 14 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>844687</commentid>
    <comment_count>3</comment_count>
      <attachid>190859</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-28 18:01:27 -0800</bug_when>
    <thetext>Comment on attachment 190859
proposed patch

Attachment 190859 did not pass qt-wk2-ews (qt):
Output: http://webkit-commit-queue.appspot.com/results/16672802</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844690</commentid>
    <comment_count>4</comment_count>
      <attachid>190859</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-02-28 18:03:01 -0800</bug_when>
    <thetext>Comment on attachment 190859
proposed patch

Attachment 190859 did not pass efl-ews (efl):
Output: http://webkit-commit-queue.appspot.com/results/16783431</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844692</commentid>
    <comment_count>5</comment_count>
      <attachid>190859</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-28 18:12:31 -0800</bug_when>
    <thetext>Comment on attachment 190859
proposed patch

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

&gt; Source/WebKit2/NetworkProcess/NetworkProcessPlatformStrategies.h:53
&gt; +    virtual WebCore::BlobRegistry* createBlobRegistry() OVERRIDE;

Not PassOwnPtr?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844703</commentid>
    <comment_count>6</comment_count>
      <attachid>190859</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-28 18:33:11 -0800</bug_when>
    <thetext>Comment on attachment 190859
proposed patch

Attachment 190859 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-commit-queue.appspot.com/results/16753242</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844704</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-02-28 18:38:52 -0800</bug_when>
    <thetext>&gt; Not PassOwnPtr?

PassOwnPtr cannot be used with BlobRegistry, because its destructor is protected.

One way or another, we never delete these.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844713</commentid>
    <comment_count>8</comment_count>
      <attachid>190859</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-28 19:02:43 -0800</bug_when>
    <thetext>Comment on attachment 190859
proposed patch

Attachment 190859 did not pass mac-ews (mac):
Output: http://webkit-commit-queue.appspot.com/results/16785114</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845309</commentid>
    <comment_count>9</comment_count>
      <attachid>190989</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-03-01 10:59:21 -0800</bug_when>
    <thetext>Created attachment 190989
with some build fixing

Unsure what went wrong with Mac builds, trying again. This should fix Qt and EFL though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845312</commentid>
    <comment_count>10</comment_count>
      <attachid>190990</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-03-01 11:02:08 -0800</bug_when>
    <thetext>Created attachment 190990
fix style too</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845359</commentid>
    <comment_count>11</comment_count>
      <attachid>190990</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-01 11:35:45 -0800</bug_when>
    <thetext>Comment on attachment 190990
fix style too

Attachment 190990 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-commit-queue.appspot.com/results/16675348</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845376</commentid>
    <comment_count>12</comment_count>
      <attachid>191001</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-03-01 11:55:39 -0800</bug_when>
    <thetext>Created attachment 191001
with more build fix

The new Mac build failure made sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845480</commentid>
    <comment_count>13</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-03-01 14:03:03 -0800</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/changeset/144499&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190859</attachid>
            <date>2013-02-28 17:53:13 -0800</date>
            <delta_ts>2013-03-01 10:59:21 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>MemoryBlobs.txt</filename>
            <type>text/plain</type>
            <size>41621</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0NDQwMSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ2IEBACisyMDEzLTAyLTI4ICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgaW4tbWVtb3J5IGJs
b2JzIHdvcmsgaW4gTmV0d29ya1Byb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTExMTEzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6cmVnaXN0ZXJCbG9iVVJMKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OnJlZ2lzdGVyQmxvYlVSTEZyb21VUkwpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6dW5yZWdpc3RlckJsb2JVUkwpOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6Cisg
ICAgICAgIEltcGxlbWVudCBCbG9iUmVnaXN0cnkgaW50ZXJmYWNlIGJ5IHVzaW5nIEJsb2JSZWdp
c3RyeUltcGwgKHNhbWUgb25lIGFzIHVzZWQgaW4KKyAgICAgICAgV2ViUHJvY2VzcyBpbiBub24t
UFBUIG1vZGUpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MubWVzc2FnZXMuaW46IEFkZGVkIHRocmVlIG1lc3NhZ2VzCisgICAgICAgIG5l
ZWRlZCBmb3IgQmxvYlJlZ2lzdHJ5LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuY3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzUGxh
dGZvcm1TdHJhdGVnaWVzLmNwcDogQWRkZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaDogQWRkZWQuCisgICAgICAgIEFkZGVkIGEg
bW9zdGx5IGVtcHR5IHBsYXRmb3JtIHN0cmF0ZWd5LCBqdXN0IGZvciBGb3JtRGF0YSB0byB0YWxr
IHRvIEJsb2JSZWdpc3RyeS4KKyAgICAgICAgUGVyaGFwcyB3ZSdsbCBmaW5kIGEgd2F5IHRvIGF2
b2lkIHRoaXMgV2ViQ29yZSBjb2RlIHBhdGggaW4gTmV0d29ya1Byb2Nlc3MsIGJlY2F1c2UKKyAg
ICAgICAgd2Ugb2J2aW91c2x5IGtub3cgd2hpY2ggcmVnaXN0cnkgaW1wbGVtZW50YXRpb24gaXMg
aW4gdXNlIGluIHRoaXMgcHJvY2Vzcy4KKworICAgICAgICAqIFNoYXJlZC9GaWxlQVBJOiBBZGRl
ZC4KKyAgICAgICAgKiBTaGFyZWQvRmlsZUFQSS9CbG9iUmVnaXN0cmF0aW9uRGF0YS5jcHA6IEFk
ZGVkLgorICAgICAgICAqIFNoYXJlZC9GaWxlQVBJL0Jsb2JSZWdpc3RyYXRpb25EYXRhLmg6IEFk
ZGVkLgorICAgICAgICBBZGRlZCBhIGNsYXNzIGZvciBwYXNzaW5nIEJsb2JEYXRhIGFuZCBleHRl
bnNpb24gaGFuZGxlcyBvdmVyIElQQy4KKyAgICAgICAgVGhpcyB1c2VzIGEgdHJpY2sgd2l0aCBt
dXRhYmxlIGEgbWVtYmVyIHRvIGF2b2lkIGNvcHlpbmcgZGVjb2RlZCBCbG9iU3RvcmFnZURhdGEu
CisKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9GaWxlQVBJOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0ZpbGVB
UEkvQmxvYlJlZ2lzdHJ5UHJveHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0Zp
bGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuaDogQWRkZWQuCisgICAgICAgIEEgcHJveHkgaW1wbGVt
ZW50YXRpb24gb2YgQmxvYlJlZ2lzdHJ5IHRoYXQganVzdCBzZW5kcyByZXF1ZXN0cyBvdmVyIElQ
Qy4gV2Ugb25seQorICAgICAgICBuZWVkIGFzeW5jIG9uZXMuCisKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlQmxvYlJlZ2lzdHJ5KToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oOgor
ICAgICAgICBDcmVhdGUgYW4gYXBwcm9wcmlhdGUgQmxvYlJlZ2lzdHJ5LgorCiAyMDEzLTAyLTI4
ICBDb25yYWQgU2h1bHR6ICA8Y29ucmFkX3NodWx0ekBhcHBsZS5jb20+CiAKICAgICAgICAgTmVl
ZCBBUEkgdG8gY29udHJvbCBwYWdlIHVuZGVybGF5IGNvbG9yCkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY3BwCShyZXZpc2lvbiAxNDQzNTIpCisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI2LDEyICsyNiwxNSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIk5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCiAKKyNpbmNsdWRlICJCbG9iUmVnaXN0cmF0
aW9uRGF0YS5oIgogI2luY2x1ZGUgIkNvbm5lY3Rpb25TdGFjay5oIgogI2luY2x1ZGUgIk5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJv
Y2Vzcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIlJl
bW90ZU5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiU3luY05ldHdvcmtSZXNvdXJjZUxv
YWRlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQmxvYkRhdGEuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L0Jsb2JSZWdpc3RyeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1Db29raWVKYXIuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CkBAIC0xNzcsNiArMTgwLDIzIEBAIHZvaWQgTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRlbGUKICAgICBXZWJDb3JlOjpkZWxldGVDb29raWUo
c3RvcmFnZVNlc3Npb24ocHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCksIHVybCwgY29va2llTmFtZSk7
CiB9CiAKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlZ2lzdGVyQmxvYlVS
TChjb25zdCBLVVJMJiB1cmwsIGNvbnN0IEJsb2JSZWdpc3RyYXRpb25EYXRhJiBkYXRhKQorewor
ICAgIC8vIEZJWE1FOiBUcmFjayBzYW5kYm94IGV4dGVuc2lvbnMuCisgICAgLy8gRklYTUU6IHVu
cmVnaXN0ZXIgYWxsIFVSTHMgd2hlbiBwcm9jZXNzIGNvbm5lY3Rpb24gY2xvc2VzLgorICAgIGJs
b2JSZWdpc3RyeSgpLnJlZ2lzdGVyQmxvYlVSTCh1cmwsIGRhdGEucmVsZWFzZURhdGEoKSk7Cit9
CisKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlZ2lzdGVyQmxvYlVSTEZy
b21VUkwoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBLVVJMJiBzcmNVUkwpCit7CisgICAgYmxvYlJl
Z2lzdHJ5KCkucmVnaXN0ZXJCbG9iVVJMKHVybCwgc3JjVVJMKTsKK30KKwordm9pZCBOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6dW5yZWdpc3RlckJsb2JVUkwoY29uc3QgS1VSTCYgdXJs
KQoreworICAgIGJsb2JSZWdpc3RyeSgpLnVucmVnaXN0ZXJCbG9iVVJMKHVybCk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAkocmV2aXNpb24gMTQ0MzUyKQorKysgU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
aAkod29ya2luZyBjb3B5KQpAQCAtNDEsNiArNDEsNyBAQCBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBCbG9iUmVnaXN0cmF0aW9uRGF0YTsKIGNs
YXNzIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOwogY2xhc3MgTmV0d29ya1Jlc291cmNl
TG9hZGVyOwogY2xhc3MgU3luY05ldHdvcmtSZXNvdXJjZUxvYWRlcjsKQEAgLTgzLDYgKzg0LDEw
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRSYXdDb29raWVzKGJvb2wgcHJpdmF0ZUJyb3dzaW5n
RW5hYmxlZCwgY29uc3QgV2ViQ29yZTo6S1VSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6
S1VSTCYsIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+Jik7CiAgICAgdm9pZCBkZWxldGVDb29raWUo
Ym9vbCBwcml2YXRlQnJvd3NpbmdFbmFibGVkLCBjb25zdCBXZWJDb3JlOjpLVVJMJiwgY29uc3Qg
U3RyaW5nJiBjb29raWVOYW1lKTsKIAorICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFdl
YkNvcmU6OktVUkwmLCBjb25zdCBCbG9iUmVnaXN0cmF0aW9uRGF0YSYpOworICAgIHZvaWQgcmVn
aXN0ZXJCbG9iVVJMRnJvbVVSTChjb25zdCBXZWJDb3JlOjpLVVJMJiwgY29uc3QgV2ViQ29yZTo6
S1VSTCYgc3JjVVJMKTsKKyAgICB2b2lkIHVucmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFdlYkNvcmU6
OktVUkwmKTsKKwogICAgIFJlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247
CiAKICAgICBIYXNoTWFwPFJlc291cmNlTG9hZElkZW50aWZpZXIsIFJlZlB0cjxOZXR3b3JrUmVz
b3VyY2VMb2FkZXI+ID4gbV9uZXR3b3JrUmVzb3VyY2VMb2FkZXJzOwpJbmRleDogU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2Fn
ZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4JKHJldmlzaW9uIDE0NDM1MikKKysr
IFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0MCwxMCBAQCBtZXNzYWdl
cyAtPiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzCiAgICAgQ29va2llUmVxdWVzdEhlYWRl
ckZpZWxkVmFsdWUoYm9vbCBwcml2YXRlQnJvd3NpbmdFbmFibGVkLCBXZWJDb3JlOjpLVVJMIGZp
cnN0UGFydHksIFdlYkNvcmU6OktVUkwgdXJsKSAtPiAoV1RGOjpTdHJpbmcgcmVzdWx0KQogICAg
IEdldFJhd0Nvb2tpZXMoYm9vbCBwcml2YXRlQnJvd3NpbmdFbmFibGVkLCBXZWJDb3JlOjpLVVJM
IGZpcnN0UGFydHksIFdlYkNvcmU6OktVUkwgdXJsKSAtPiAoV1RGOjpWZWN0b3I8V2ViQ29yZTo6
Q29va2llPiBjb29raWVzKQogICAgIERlbGV0ZUNvb2tpZShib29sIHByaXZhdGVCcm93c2luZ0Vu
YWJsZWQsIFdlYkNvcmU6OktVUkwgdXJsLCBXVEY6OlN0cmluZyBjb29raWVOYW1lKQorCisgICAg
UmVnaXN0ZXJCbG9iVVJMKFdlYkNvcmU6OktVUkwgdXJsLCBXZWJLaXQ6OkJsb2JSZWdpc3RyYXRp
b25EYXRhIGRhdGEpCisgICAgUmVnaXN0ZXJCbG9iVVJMRnJvbVVSTChXZWJDb3JlOjpLVVJMIHVy
bCwgV2ViQ29yZTo6S1VSTCBzcmNVUkwpCisgICAgVW5yZWdpc3RlckJsb2JVUkwoV2ViQ29yZTo6
S1VSTCB1cmwpCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQpJbmRleDog
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAko
cmV2aXNpb24gMTQ0MzUyKQorKysgU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAi
TG9nZ2luZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCiAj
aW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKKyNpbmNsdWRlICJO
ZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9j
ZXNzUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lmgi
CiAjaW5jbHVkZSAiU3RhdGlzdGljc0RhdGEuaCIKQEAgLTYzLDYgKzY0LDggQEAgTmV0d29ya1By
b2Nlc3M6Ok5ldHdvcmtQcm9jZXNzKCkKICAgICA6IG1faGFzU2V0Q2FjaGVNb2RlbChmYWxzZSkK
ICAgICAsIG1fY2FjaGVNb2RlbChDYWNoZU1vZGVsRG9jdW1lbnRWaWV3ZXIpCiB7CisgICAgTmV0
d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXM6OmluaXRpYWxpemUoKTsKKwogICAgIGFkZFN1
cHBsZW1lbnQ8QXV0aGVudGljYXRpb25NYW5hZ2VyPigpOwogICAgIGFkZFN1cHBsZW1lbnQ8V2Vi
Q29va2llTWFuYWdlcj4oKTsKICAgICBhZGRTdXBwbGVtZW50PEN1c3RvbVByb3RvY29sTWFuYWdl
cj4oKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
UGxhdGZvcm1TdHJhdGVnaWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAJKHJldmlzaW9u
IDApCisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRm
b3JtU3RyYXRlZ2llcy5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTAxIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzUGxhdGZv
cm1TdHJhdGVnaWVzLmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL0Jsb2JSZWdpc3RyeUltcGwuaD4K
KwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lk
IE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzOjppbml0aWFsaXplKCkKK3sKKyAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLCBwbGF0
Zm9ybVN0cmF0ZWdpZXMsICgpKTsKKyAgICBzZXRQbGF0Zm9ybVN0cmF0ZWdpZXMoJnBsYXRmb3Jt
U3RyYXRlZ2llcyk7Cit9CisKK0Nvb2tpZXNTdHJhdGVneSogTmV0d29ya1Byb2Nlc3NQbGF0Zm9y
bVN0cmF0ZWdpZXM6OmNyZWF0ZUNvb2tpZXNTdHJhdGVneSgpCit7CisgICAgcmV0dXJuIDA7Cit9
CisKK0RhdGFiYXNlU3RyYXRlZ3kqIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzOjpj
cmVhdGVEYXRhYmFzZVN0cmF0ZWd5KCkKK3sKKyAgICByZXR1cm4gMDsKK30KKworTG9hZGVyU3Ry
YXRlZ3kqIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVMb2FkZXJTdHJh
dGVneSgpCit7CisgICAgcmV0dXJuIHRoaXM7Cit9CisKK1Bhc3RlYm9hcmRTdHJhdGVneSogTmV0
d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZVBhc3RlYm9hcmRTdHJhdGVneSgp
Cit7CisgICAgcmV0dXJuIDA7Cit9CisKK1BsdWdpblN0cmF0ZWd5KiBOZXR3b3JrUHJvY2Vzc1Bs
YXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlUGx1Z2luU3RyYXRlZ3koKQoreworICAgIHJldHVybiAw
OworfQorCitTaGFyZWRXb3JrZXJTdHJhdGVneSogTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0
ZWdpZXM6OmNyZWF0ZVNoYXJlZFdvcmtlclN0cmF0ZWd5KCkKK3sKKyAgICByZXR1cm4gMDsKK30K
KworU3RvcmFnZVN0cmF0ZWd5KiBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llczo6Y3Jl
YXRlU3RvcmFnZVN0cmF0ZWd5KCkKK3sKKyAgICByZXR1cm4gMDsKK30KKworVmlzaXRlZExpbmtT
dHJhdGVneSogTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZVZpc2l0ZWRM
aW5rU3RyYXRlZ3koKQoreworICAgIHJldHVybiAwOworfQorCitSZXNvdXJjZUxvYWRTY2hlZHVs
ZXIqIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzOjpyZXNvdXJjZUxvYWRTY2hlZHVs
ZXIoKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiAwOworfQorCit2
b2lkIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzOjpsb2FkUmVzb3VyY2VTeW5jaHJv
bm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiwgdW5zaWduZWQgbG9uZyByZXNvdXJjZUxvYWRJZGVu
dGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBTdG9yZWRDcmVkZW50aWFscywgUmVzb3Vy
Y2VFcnJvciYsIFJlc291cmNlUmVzcG9uc2UmLCBWZWN0b3I8Y2hhcj4mIGRhdGEpCit7CisgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKKyNpZiBFTkFCTEUoQkxPQikKK0Jsb2JSZWdpc3Ry
eSogTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZUJsb2JSZWdpc3RyeSgp
Cit7CisgICAgcmV0dXJuIG5ldyBCbG9iUmVnaXN0cnlJbXBsOworfQorCisjZW5kaWYKKworCit9
CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAKX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVv
bC1zdHlsZQogICArIG5hdGl2ZQoKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMu
aAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjAgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzX2gK
KyNkZWZpbmUgTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXNfaAorCisjaW5jbHVkZSA8
V2ViQ29yZS9Mb2FkZXJTdHJhdGVneS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1TdHJh
dGVnaWVzLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBOZXR3b3JrUHJvY2Vzc1Bs
YXRmb3JtU3RyYXRlZ2llcyA6IHB1YmxpYyBXZWJDb3JlOjpQbGF0Zm9ybVN0cmF0ZWdpZXMsIHBy
aXZhdGUgV2ViQ29yZTo6TG9hZGVyU3RyYXRlZ3kgeworcHVibGljOgorICAgIHN0YXRpYyB2b2lk
IGluaXRpYWxpemUoKTsKKyAgICAKK3ByaXZhdGU6CisgICAgLy8gV2ViQ29yZTo6UGxhdGZvcm1T
dHJhdGVnaWVzCisgICAgdmlydHVhbCBXZWJDb3JlOjpDb29raWVzU3RyYXRlZ3kqIGNyZWF0ZUNv
b2tpZXNTdHJhdGVneSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgV2ViQ29yZTo6RGF0YWJhc2VT
dHJhdGVneSogY3JlYXRlRGF0YWJhc2VTdHJhdGVneSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwg
V2ViQ29yZTo6TG9hZGVyU3RyYXRlZ3kqIGNyZWF0ZUxvYWRlclN0cmF0ZWd5KCkgT1ZFUlJJREU7
CisgICAgdmlydHVhbCBXZWJDb3JlOjpQYXN0ZWJvYXJkU3RyYXRlZ3kqIGNyZWF0ZVBhc3RlYm9h
cmRTdHJhdGVneSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgV2ViQ29yZTo6UGx1Z2luU3RyYXRl
Z3kqIGNyZWF0ZVBsdWdpblN0cmF0ZWd5KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBXZWJDb3Jl
OjpTaGFyZWRXb3JrZXJTdHJhdGVneSogY3JlYXRlU2hhcmVkV29ya2VyU3RyYXRlZ3koKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlN0b3JhZ2VTdHJhdGVneSogY3JlYXRlU3RvcmFn
ZVN0cmF0ZWd5KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBXZWJDb3JlOjpWaXNpdGVkTGlua1N0
cmF0ZWd5KiBjcmVhdGVWaXNpdGVkTGlua1N0cmF0ZWd5KCkgT1ZFUlJJREU7CisKKyAgICAvLyBX
ZWJDb3JlOjpMb2FkZXJTdHJhdGVneQorICAgIHZpcnR1YWwgV2ViQ29yZTo6UmVzb3VyY2VMb2Fk
U2NoZWR1bGVyKiByZXNvdXJjZUxvYWRTY2hlZHVsZXIoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgbG9hZFJlc291cmNlU3luY2hyb25vdXNseShXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4
dCosIHVuc2lnbmVkIGxvbmcgcmVzb3VyY2VMb2FkSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHMsIFdlYkNvcmU6OlJl
c291cmNlRXJyb3ImLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgVmVjdG9yPGNoYXI+JiBk
YXRhKSBPVkVSUklERTsKKyNpZiBFTkFCTEUoQkxPQikKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkJs
b2JSZWdpc3RyeSogY3JlYXRlQmxvYlJlZ2lzdHJ5KCkgT1ZFUlJJREU7CisjZW5kaWYKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisKKyNlbmRpZiAvLyBOZXR3b3JrUHJvY2Vzc1BsYXRm
b3JtU3RyYXRlZ2llc19oCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oCl9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
QWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBuYXRpdmUKCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvRmlsZUFQSS9CbG9iUmVnaXN0cmF0aW9uRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvU2hhcmVkL0ZpbGVBUEkvQmxvYlJlZ2lzdHJhdGlvbkRhdGEuY3BwCShyZXZp
c2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0ZpbGVBUEkvQmxvYlJlZ2lzdHJhdGlv
bkRhdGEuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE4MiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJCbG9iUmVnaXN0cmF0aW9uRGF0YS5oIgorCisj
aWYgRU5BQkxFKEJMT0IpICYmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisKKyNpbmNsdWRlICJB
cmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJX
ZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Jsb2JEYXRhLmg+CisK
K3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworQmxvYlJl
Z2lzdHJhdGlvbkRhdGE6OkJsb2JSZWdpc3RyYXRpb25EYXRhKCkKK3sKK30KKworQmxvYlJlZ2lz
dHJhdGlvbkRhdGE6OkJsb2JSZWdpc3RyYXRpb25EYXRhKFBhc3NPd25QdHI8QmxvYkRhdGE+IGRh
dGEpCisgICAgOiBtX2RhdGEoZGF0YSkKK3sKKyAgICBjb25zdCBCbG9iRGF0YUl0ZW1MaXN0JiBp
dGVtcyA9IG1fZGF0YS0+aXRlbXMoKTsKKyAgICBzaXplX3QgZmlsZUNvdW50ID0gMDsKKyAgICBm
b3IgKHNpemVfdCBpID0gMCwgY291bnQgPSBpdGVtcy5zaXplKCk7IGkgPCBjb3VudDsgKytpKSB7
CisgICAgICAgIGlmIChpdGVtc1tpXS50eXBlID09IEJsb2JEYXRhSXRlbTo6RmlsZSkKKyAgICAg
ICAgICAgICsrZmlsZUNvdW50OworICAgIH0KKworICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZUFycmF5IHNhbmRib3hFeHRlbnNpb25zOworICAgIHNhbmRib3hFeHRlbnNpb25zLmFsbG9jYXRl
KGZpbGVDb3VudCk7CisgICAgc2l6ZV90IGV4dGVuc2lvbkluZGV4ID0gMDsKKyAgICBmb3IgKHNp
emVfdCBpID0gMCwgY291bnQgPSBpdGVtcy5zaXplKCk7IGkgPCBjb3VudDsgKytpKSB7CisgICAg
ICAgIGNvbnN0IEJsb2JEYXRhSXRlbSYgaXRlbSA9IGl0ZW1zW2ldOworICAgICAgICBpZiAoaXRl
bS50eXBlID09IEJsb2JEYXRhSXRlbTo6RmlsZSkKKyAgICAgICAgICAgIFNhbmRib3hFeHRlbnNp
b246OmNyZWF0ZUhhbmRsZShpdGVtLnBhdGgsIFNhbmRib3hFeHRlbnNpb246OlJlYWRPbmx5LCBz
YW5kYm94RXh0ZW5zaW9uc1tleHRlbnNpb25JbmRleCsrXSk7CisgICAgfQorfQorCitCbG9iUmVn
aXN0cmF0aW9uRGF0YTo6fkJsb2JSZWdpc3RyYXRpb25EYXRhKCkKK3sKK30KKworUGFzc093blB0
cjxCbG9iRGF0YT4gQmxvYlJlZ2lzdHJhdGlvbkRhdGE6OnJlbGVhc2VEYXRhKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9kYXRhLnJlbGVhc2UoKTsKK30KKwordm9pZCBCbG9iUmVnaXN0cmF0aW9u
RGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sK
KyAgICBlbmNvZGVyIDw8IG1fZGF0YS0+Y29udGVudFR5cGUoKTsKKyAgICBlbmNvZGVyIDw8IG1f
ZGF0YS0+Y29udGVudERpc3Bvc2l0aW9uKCk7CisKKyAgICBjb25zdCBCbG9iRGF0YUl0ZW1MaXN0
JiBpdGVtcyA9IG1fZGF0YS0+aXRlbXMoKTsKKyAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVp
bnQ2NF90PihpdGVtcy5zaXplKCkpOworICAgIGZvciAoc2l6ZV90IGkgPSAwLCBjb3VudCA9IGl0
ZW1zLnNpemUoKTsgaSA8IGNvdW50OyArK2kpIHsKKyAgICAgICAgY29uc3QgQmxvYkRhdGFJdGVt
JiBpdGVtID0gaXRlbXNbaV07CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8dWludDMy
X3Q+KGl0ZW0udHlwZSk7CisgICAgICAgIHN3aXRjaCAoaXRlbS50eXBlKSB7CisgICAgICAgIGNh
c2UgQmxvYkRhdGFJdGVtOjpEYXRhOgorICAgICAgICAgICAgLy8gVGhlcmUgaXMgbm8gd2F5IHRv
IGNyZWF0ZSBhIHBhcnRpYWwgZGF0YSBpdGVtLgorICAgICAgICAgICAgQVNTRVJUKCFpdGVtLm9m
ZnNldCk7CisgICAgICAgICAgICBBU1NFUlQoaXRlbS5sZW5ndGggPT0gQmxvYkRhdGFJdGVtOjp0
b0VuZE9mRmlsZSk7CisgICAgICAgICAgICBlbmNvZGVyIDw8IENvcmVJUEM6OkRhdGFSZWZlcmVu
Y2UocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oaXRlbS5kYXRhLT5kYXRhKCkpLCBp
dGVtLmRhdGEtPmxlbmd0aCgpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEJs
b2JEYXRhSXRlbTo6RmlsZToKKyAgICAgICAgICAgIGVuY29kZXIgPDwgaXRlbS5vZmZzZXQ7Cisg
ICAgICAgICAgICBlbmNvZGVyIDw8IGl0ZW0ubGVuZ3RoOworICAgICAgICAgICAgZW5jb2RlciA8
PCBpdGVtLmV4cGVjdGVkTW9kaWZpY2F0aW9uVGltZTsKKyAgICAgICAgICAgIGVuY29kZXIgPDwg
aXRlbS5wYXRoOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQmxvYkRhdGFJdGVt
OjpCbG9iOgorICAgICAgICAgICAgZW5jb2RlciA8PCBpdGVtLm9mZnNldDsKKyAgICAgICAgICAg
IGVuY29kZXIgPDwgaXRlbS5sZW5ndGg7CisgICAgICAgICAgICBlbmNvZGVyIDw8IGl0ZW0udXJs
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBlbmNvZGVyIDw8
IG1fc2FuZGJveEV4dGVuc2lvbnM7Cit9CisKK2Jvb2wgQmxvYlJlZ2lzdHJhdGlvbkRhdGE6OmRl
Y29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEJsb2JSZWdpc3RyYXRpb25E
YXRhJiByZXN1bHQpCit7CisgICAgQVNTRVJUKCFyZXN1bHQubV9kYXRhKTsKKyAgICByZXN1bHQu
bV9kYXRhID0gQmxvYkRhdGE6OmNyZWF0ZSgpOworCisgICAgU3RyaW5nIGNvbnRlbnRUeXBlOwor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY29udGVudFR5cGUpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgcmVzdWx0Lm1fZGF0YS0+c2V0Q29udGVudFR5cGUoY29udGVudFR5cGUpOworCisg
ICAgU3RyaW5nIGNvbnRlbnREaXNwb3NpdGlvbjsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGNv
bnRlbnREaXNwb3NpdGlvbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXN1bHQubV9k
YXRhLT5zZXRDb250ZW50RGlzcG9zaXRpb24oY29udGVudERpc3Bvc2l0aW9uKTsKKworICAgIHVp
bnQ2NF90IGl0ZW1Db3VudDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGl0ZW1Db3VudCkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGZvciAodWludDY0X3QgaSA9IDA7IGkgPCBpdGVt
Q291bnQ7ICsraSApIHsKKyAgICAgICAgdWludDMyX3QgdHlwZTsKKyAgICAgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZSh0eXBlKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgc3dp
dGNoICh0eXBlKSB7CisgICAgICAgIGNhc2UgQmxvYkRhdGFJdGVtOjpEYXRhOiB7CisgICAgICAg
ICAgICBDb3JlSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGE7CisgICAgICAgICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKGRhdGEpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
ICAgIFJlZlB0cjxSYXdEYXRhPiByYXdEYXRhID0gUmF3RGF0YTo6Y3JlYXRlKCk7CisgICAgICAg
ICAgICByYXdEYXRhLT5tdXRhYmxlRGF0YSgpLT5hcHBlbmQoZGF0YS5kYXRhKCksIGRhdGEuc2l6
ZSgpKTsKKyAgICAgICAgICAgIHJlc3VsdC5tX2RhdGEtPmFwcGVuZERhdGEocmF3RGF0YS5yZWxl
YXNlKCksIDAsIEJsb2JEYXRhSXRlbTo6dG9FbmRPZkZpbGUpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBCbG9iRGF0YUl0ZW06OkZpbGU6IHsKKyAgICAgICAg
ICAgIGxvbmcgbG9uZyBvZmZzZXQ7CisgICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG9m
ZnNldCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgbG9uZyBs
b25nIGxlbmd0aDsKKyAgICAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUobGVuZ3RoKSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBkb3VibGUgZXhwZWN0ZWRN
b2RpZmljYXRpb25UaW1lOworICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShleHBlY3Rl
ZE1vZGlmaWNhdGlvblRpbWUpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg
ICAgICAgIFN0cmluZyBwYXRoOworICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXRo
KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICByZXN1bHQubV9k
YXRhLT5hcHBlbmRGaWxlKHBhdGgsIG9mZnNldCwgbGVuZ3RoLCBleHBlY3RlZE1vZGlmaWNhdGlv
blRpbWUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBCbG9i
RGF0YUl0ZW06OkJsb2I6IHsKKyAgICAgICAgICAgIGxvbmcgbG9uZyBvZmZzZXQ7CisgICAgICAg
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG9mZnNldCkpCisgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICAgICAgbG9uZyBsb25nIGxlbmd0aDsKKyAgICAgICAgICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUobGVuZ3RoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgICAgICBTdHJpbmcgdXJsOworICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh1
cmwpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIHJlc3VsdC5t
X2RhdGEtPmFwcGVuZEJsb2IoS1VSTChLVVJMKCksIHVybCksIG9mZnNldCwgbGVuZ3RoKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHJlc3VsdC5tX3NhbmRib3hFeHRlbnNpb25zKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgcmV0dXJuIHRydWU7Cit9CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShCTE9CKSAmJiBF
TkFCTEUoTkVUV09SS19QUk9DRVNTKQoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYktp
dDIvU2hhcmVkL0ZpbGVBUEkvQmxvYlJlZ2lzdHJhdGlvbkRhdGEuY3BwCl9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRk
ZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBuYXRpdmUKCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvRmlsZUFQSS9CbG9iUmVnaXN0cmF0aW9uRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9GaWxlQVBJL0Jsb2JSZWdpc3RyYXRpb25EYXRhLmgJKHJldmlzaW9uIDAp
CisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRmlsZUFQSS9CbG9iUmVnaXN0cmF0aW9uRGF0YS5o
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBCbG9i
UmVnaXN0cmF0aW9uRGF0YV9oCisjZGVmaW5lIEJsb2JSZWdpc3RyYXRpb25EYXRhX2gKKworI2lm
IEVOQUJMRShCTE9CKSAmJiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorCisjaW5jbHVkZSAiU2Fu
ZGJveEV4dGVuc2lvbi5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBCbG9iRGF0YTsK
K30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIEJsb2JSZWdpc3RyYXRpb25EYXRhIHsK
K1dURl9NQUtFX05PTkNPUFlBQkxFKEJsb2JSZWdpc3RyYXRpb25EYXRhKTsKK3B1YmxpYzoKKyAg
ICBCbG9iUmVnaXN0cmF0aW9uRGF0YSgpOworICAgIEJsb2JSZWdpc3RyYXRpb25EYXRhKFBhc3NP
d25QdHI8V2ViQ29yZTo6QmxvYkRhdGE+KTsKKyAgICB+QmxvYlJlZ2lzdHJhdGlvbkRhdGEoKTsK
KworICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OworICAg
IHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXImLCBCbG9iUmVnaXN0
cmF0aW9uRGF0YSYpOworCisgICAgUGFzc093blB0cjxXZWJDb3JlOjpCbG9iRGF0YT4gcmVsZWFz
ZURhdGEoKSBjb25zdDsKKyAgICBjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSYg
c2FuZGJveEV4dGVuc2lvbnMoKSBjb25zdCB7IHJldHVybiBtX3NhbmRib3hFeHRlbnNpb25zOyB9
CisKK3ByaXZhdGU6CisgICAgbXV0YWJsZSBPd25QdHI8V2ViQ29yZTo6QmxvYkRhdGE+IG1fZGF0
YTsKKyAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSBtX3NhbmRib3hFeHRlbnNpb25z
OworfTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKEJMT0IpICYmIEVOQUJMRShORVRXT1JLX1BS
T0NFU1MpCisKKyNlbmRpZiAvLyBCbG9iUmVnaXN0cmF0aW9uRGF0YV9oCgpQcm9wZXJ0eSBjaGFu
Z2VzIG9uOiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRmlsZUFQSS9CbG9iUmVnaXN0cmF0aW9uRGF0
YS5oCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBuYXRpdmUKCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShy
ZXZpc2lvbiAxNDQzNTIpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTEwOTAsOCArMTA5MCwxNCBAQAogCQlFMTMz
RkQ4QTE0MjNERDdGMDBGQzdCRkIgLyogV2ViS2l0LmljbnMgaW4gUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMzNGRDg5MTQyM0REN0YwMEZDN0JGQiAvKiBX
ZWJLaXQuaWNucyAqLzsgfTsKIAkJRTEzNEYwMTcxMkVBNUQzMzAwNEVDNThEIC8qIFdLUHJpbnRp
bmdWaWV3LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
MTM0RjAxNTEyRUE1RDExMDA0RUM1OEQgLyogV0tQcmludGluZ1ZpZXcuaCAqLzsgfTsKIAkJRTEz
NEYwMUExMkVBNUQ5OTAwNEVDNThEIC8qIFdLUHJpbnRpbmdWaWV3Lm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTEzNEYwMTkxMkVBNUQ5OTAwNEVDNThE
IC8qIFdLUHJpbnRpbmdWaWV3Lm1tICovOyB9OworCQlFMTRBOTU0OTE2RTAxNkE0MDA2OERFODIg
LyogTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE0QTk1NDcxNkUwMTZBNDAwNjhERTgyIC8q
IE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCAqLzsgfTsKKwkJRTE0QTk1NEEx
NkUwMTZBNDAwNjhERTgyIC8qIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTRBOTU0ODE2RTAx
NkE0MDA2OERFODIgLyogTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaCAqLzsgfTsK
IAkJRTE1MTNDNjYxNjZFQUJCMjAwMTQ5RkNCIC8qIENoaWxkUHJvY2Vzc1Byb3h5LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxNTEzQzY0MTY2RUFC
QjIwMDE0OUZDQiAvKiBDaGlsZFByb2Nlc3NQcm94eS5jcHAgKi87IH07CiAJCUUxNTEzQzY3MTY2
RUFCQjIwMDE0OUZDQiAvKiBDaGlsZFByb2Nlc3NQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE1MTNDNjUxNjZFQUJCMjAwMTQ5RkNCIC8qIENo
aWxkUHJvY2Vzc1Byb3h5LmggKi87IH07CisJCUUxNzA4NzZCMTZENkNBNjkwMEY5OTIyNiAvKiBC
bG9iUmVnaXN0cnlQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFMTcwODc2OTE2RDZDQTY5MDBGOTkyMjYgLyogQmxvYlJlZ2lzdHJ5UHJveHku
Y3BwICovOyB9OworCQlFMTcwODc2QzE2RDZDQTY5MDBGOTkyMjYgLyogQmxvYlJlZ2lzdHJ5UHJv
eHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxNzA4
NzZBMTZENkNBNjkwMEY5OTIyNiAvKiBCbG9iUmVnaXN0cnlQcm94eS5oICovOyB9OworCQlFMTcw
ODc3MDE2RDZDRkU1MDBGOTkyMjYgLyogQmxvYlJlZ2lzdHJhdGlvbkRhdGEuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE3MDg3NkUxNkQ2Q0ZFNDAw
Rjk5MjI2IC8qIEJsb2JSZWdpc3RyYXRpb25EYXRhLmNwcCAqLzsgfTsKKwkJRTE3MDg3NzExNkQ2
Q0ZFNTAwRjk5MjI2IC8qIEJsb2JSZWdpc3RyYXRpb25EYXRhLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTcwODc2RjE2RDZDRkU1MDBGOTkyMjYgLyog
QmxvYlJlZ2lzdHJhdGlvbkRhdGEuaCAqLzsgfTsKIAkJRTE3OTA4OEQxNjlCQUE2MjAwNjkwNEM3
IC8qIFNlY0l0ZW1TaGltLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUxOEU2OTQ3MTY5Qjc3QzgwMDlCNjY3MCAvKiBTZWNJdGVtU2hpbS5jcHAgKi87
IH07CiAJCUUxNzkwODhGMTY5QkFBNkEwMDY5MDRDNyAvKiBTZWNJdGVtU2hpbS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE4RTY5NDgxNjlCNzdDODAw
OUI2NjcwIC8qIFNlY0l0ZW1TaGltLmggKi87IH07CiAJCUUxNzkwODkwMTY5QkFBN0YwMDY5MDRD
NyAvKiBTZWNJdGVtU2hpbU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMThFNjkxMTE2OUI2NjdCMDA5QjY2NzAgLyogU2Vj
SXRlbVNoaW1NZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwpAQCAtMTQ2Niw4ICsxNDcyLDggQEAK
IAkJMUEzMDA2NkMxMTEwRjRGNzAwMzE5MzdDIC8qIFJlc3BvbnNpdmVuZXNzVGltZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVzcG9uc2l2ZW5lc3NUaW1lci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTMwRUFDNTExNUQ3REEzMDA1M0U5MzcgLyogQ29u
bmVjdGlvbk1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb25u
ZWN0aW9uTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUEzMzRERUExNkRF
OEI2ODAwNkE4RTM4IC8qIFN0b3JhZ2VBcmVhUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3RvcmFn
ZUFyZWFQcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMUEz
MzRERUIxNkRFOEY4ODAwNkE4RTM4IC8qIFN0b3JhZ2VBcmVhUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gU3RvcmFnZUFyZWFQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBTdG9yYWdlQXJlYVByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLSAgICAJCTFBMzM0REVDMTZERThG
ODgwMDZBOEUzOCAvKiBTdG9yYWdlQXJlYVByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gU3RvcmFnZUFyZWFQcm94eU1lc3NhZ2VzLmg7IHBhdGggPSBTdG9y
YWdlQXJlYVByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUEz
MzRERUIxNkRFOEY4ODAwNkE4RTM4IC8qIFN0b3JhZ2VBcmVhUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3RvcmFnZUFyZWFQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFBMzM0
REVDMTZERThGODgwMDZBOEUzOCAvKiBTdG9yYWdlQXJlYVByb3h5TWVzc2FnZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFnZUFyZWFQcm94eU1lc3NhZ2VzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBM0Q2MEZGMTNBN0NDMkEwMEY5NUQ0RSAvKiBQ
bHVnaW5Nb2R1bGVJbmZvLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFBsdWdpbk1vZHVsZUluZm8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTNE
NjEwMDEzQTdDQzJBMDBGOTVENEUgLyogUGx1Z2luTW9kdWxlSW5mby5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBQbHVnaW5Nb2R1bGVJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTFBM0Q2MTA0MTNBN0YwM0EwMEY5NUQ0RSAvKiBBcmd1bWVudENvZGVycy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBcmd1bWVudENvZGVycy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNTMwLDggKzI1MzYsMTQgQEAKIAkJ
RTEzNEYwMTkxMkVBNUQ5OTAwNEVDNThEIC8qIFdLUHJpbnRpbmdWaWV3Lm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tQcmludGluZ1ZpZXcubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxM0E4QTJDMTYyODc5QUMwMDM5MjkyOSAvKiBTaGFyZWRX
b3JrZXJQcm9jZXNzLmFwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZp
bGVUeXBlID0gd3JhcHBlci5hcHBsaWNhdGlvbjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0g
U2hhcmVkV29ya2VyUHJvY2Vzcy5hcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7
IH07CiAJCUUxM0E4QTRCMTYyODdBMUIwMDM5MjkyOSAvKiBTaGFyZWRXb3JrZXJQcm9jZXNzLnhj
Y29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dC54Y2NvbmZpZzsgcGF0aCA9IFNoYXJlZFdvcmtlclByb2Nlc3MueGNjb25maWc7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxNEE5NTQ3MTZFMDE2QTQwMDY4REU4MiAvKiBOZXR3
b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHA7IHBhdGgg
PSBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxNEE5NTQ4MTZFMDE2QTQwMDY4REU4MiAvKiBO
ZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oOyBwYXRoID0gTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE1MTNDNjQxNjZFQUJCMjAwMTQ5RkNCIC8qIENoaWxkUHJv
Y2Vzc1Byb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENoaWxk
UHJvY2Vzc1Byb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE1MTNDNjUx
NjZFQUJCMjAwMTQ5RkNCIC8qIENoaWxkUHJvY2Vzc1Byb3h5LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IENoaWxkUHJvY2Vzc1Byb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUUxNzA4NzY5MTZENkNBNjkwMEY5OTIyNiAvKiBCbG9iUmVnaXN0cnlQcm94eS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBCbG9iUmVnaXN0cnlQcm94
eS5jcHA7IHBhdGggPSBXZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMTcwODc2QTE2RDZDQTY5MDBGOTkyMjYgLyog
QmxvYlJlZ2lzdHJ5UHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQmxv
YlJlZ2lzdHJ5UHJveHkuaDsgcGF0aCA9IFdlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQ
cm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMTcwODc2RTE2RDZDRkU0MDBG
OTkyMjYgLyogQmxvYlJlZ2lzdHJhdGlvbkRhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gQmxvYlJlZ2lzdHJhdGlvbkRhdGEuY3BwOyBwYXRoID0gRmlsZUFQSS9C
bG9iUmVnaXN0cmF0aW9uRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUx
NzA4NzZGMTZENkNGRTUwMEY5OTIyNiAvKiBCbG9iUmVnaXN0cmF0aW9uRGF0YS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCbG9iUmVnaXN0cmF0aW9uRGF0YS5oOyBwYXRoID0g
RmlsZUFQSS9CbG9iUmVnaXN0cmF0aW9uRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFMTc5RkQ5QjEzNEQzODA2MDAxNUI4ODMgLyogQXJndW1lbnRDb2RlcnNNYWMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXJndW1lbnRDb2RlcnNNYWMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE3OUZEOUUxMzREMzgyNTAwMTVCODgzIC8qIEFyZ3Vt
ZW50Q29kZXJzTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
QXJndW1lbnRDb2RlcnNNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxN0FF
MkMxMTZCOUMxMzkwMDFDNDJGMSAvKiBjb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtQcm9jZXNzLnNi
LmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IGNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya1Byb2Nlc3Muc2IuaW47IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMDcxLDYgKzMwODMsNyBAQAogCQkJCUJDMTExQjVGMTEy
RjYzNUUwMDMzN0JBQiAvKiBDb3JlSVBDU3VwcG9ydCAqLywKIAkJCQk1MThFOEVGMjE2QjIwOEY4
MDBFOTE0MjkgLyogRG93bmxvYWRzICovLAogCQkJCUJDODI4MzY4MTZCMzU4NzkwMEEyNzhGRSAv
KiBFbnRyeVBvaW50VXRpbGl0aWVzICovLAorCQkJCUUxNzA4NzcyMTZENkNGRUMwMEY5OTIyNiAv
KiBGaWxlQVBJICovLAogCQkJCUJDMTExQjVBMTEyRjYyODIwMDMzN0JBQiAvKiBtYWMgKi8sCiAJ
CQkJNTFBOEE2MEQxNjI3RjJBQzAwMEQ5MEU5IC8qIE5ldHdvcmsgKi8sCiAJCQkJQkNBRjM1RTUx
NkNBMjUzQjAwRDRFOUZDIC8qIE9mZmxpbmVTdG9yYWdlICovLApAQCAtMzQ2Nyw2ICszNDgwLDgg
QEAKIAkJCQk1MTNBMTY0QjE2MzBBOUJGMDA1RDdEMjIgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MubWVzc2FnZXMuaW4gKi8sCiAJCQkJNTEwQ0M3REYxNjEzOEUyOTAwRDAzRUQzIC8q
IE5ldHdvcmtQcm9jZXNzLmNwcCAqLywKIAkJCQk1MTBDQzdFMDE2MTM4RTI5MDBEMDNFRDMgLyog
TmV0d29ya1Byb2Nlc3MuaCAqLywKKwkJCQlFMTRBOTU0NzE2RTAxNkE0MDA2OERFODIgLyogTmV0
d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwICovLAorCQkJCUUxNEE5NTQ4MTZFMDE2
QTQwMDY4REU4MiAvKiBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oICovLAogCQkJ
CTUxQThBNjE3MTYyN0Y1QkIwMDBEOTBFOSAvKiBOZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbiAq
LywKIAkJCQk1MUZEMThCMzE2NTFGQkFEMDBEQkUxQ0UgLyogTmV0d29ya1Jlc291cmNlTG9hZGVy
LmNwcCAqLywKIAkJCQk1MUZEMThCNDE2NTFGQkFEMDBEQkUxQ0UgLyogTmV0d29ya1Jlc291cmNl
TG9hZGVyLmggKi8sCkBAIC0zNjgyLDYgKzM2OTcsNyBAQAogCQkJCTUxMkUzNTJBMTMwQjU1OTkw
MEFCRDE5QSAvKiBBcHBsaWNhdGlvbkNhY2hlICovLAogCQkJCTMzMDkzNDRCMTMxNUI5M0EwMDk3
QTdCQyAvKiBDb29raWVzICovLAogCQkJCUJDQUNDNDNCMTZCMjRDNUQwMEI2RTA5MiAvKiBFbnRy
eVBvaW50ICovLAorCQkJCUUxNzA4NzZEMTZENkNBNzIwMEY5OTIyNiAvKiBGaWxlQVBJICovLAog
CQkJCUNENzNCQTNEMTMxQTJBMjEwMEVFREVEMiAvKiBGdWxsU2NyZWVuICovLAogCQkJCUJDMEU1
RkNCMTJENjk2REQwMDEyQTcyQSAvKiBHZW9sb2NhdGlvbiAqLywKIAkJCQk1MUZCQjlDMTEzMkUw
NzkyMDBGMzI3QjQgLyogSWNvbkRhdGFiYXNlICovLApAQCAtNDk2Nyw2ICs0OTgzLDI1IEBACiAJ
CQlwYXRoID0gU2hhcmVkV29ya2VyUHJvY2VzczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
CiAJCX07CisJCUUxNzA4NzZEMTZENkNBNzIwMEY5OTIyNiAvKiBGaWxlQVBJICovID0geworCQkJ
aXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlFMTcwODc2OTE2RDZDQTY5MDBG
OTkyMjYgLyogQmxvYlJlZ2lzdHJ5UHJveHkuY3BwICovLAorCQkJCUUxNzA4NzZBMTZENkNBNjkw
MEY5OTIyNiAvKiBCbG9iUmVnaXN0cnlQcm94eS5oICovLAorCQkJKTsKKwkJCW5hbWUgPSBGaWxl
QVBJOworCQkJcGF0aCA9IC4uOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJ
RTE3MDg3NzIxNkQ2Q0ZFQzAwRjk5MjI2IC8qIEZpbGVBUEkgKi8gPSB7CisJCQlpc2EgPSBQQlhH
cm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUUxNzA4NzZFMTZENkNGRTQwMEY5OTIyNiAvKiBC
bG9iUmVnaXN0cmF0aW9uRGF0YS5jcHAgKi8sCisJCQkJRTE3MDg3NkYxNkQ2Q0ZFNTAwRjk5MjI2
IC8qIEJsb2JSZWdpc3RyYXRpb25EYXRhLmggKi8sCisJCQkpOworCQkJbmFtZSA9IEZpbGVBUEk7
CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQlFMTk5ODc1QjE0MkJGOUNGMDBC
QjJERTcgLyogUERGICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
QEAgLTU1NjIsNiArNTU5Nyw5IEBACiAJCQkJQkM1RDI0QzIxNkNENzA2RDAwN0Q1NDYxIC8qIFdL
RE9NTm9kZVByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNUQyNEM1MTZDRDcwODgwMDdE
NTQ2MSAvKiBXS0RPTVJhbmdlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1RDI0Qzcx
NkNENzNDNTAwN0Q1NDYxIC8qIFdLQnVuZGxlUmFuZ2VIYW5kbGVQcml2YXRlLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlFMTcwODc2QzE2RDZDQTY5MDBGOTkyMjYgLyogQmxvYlJlZ2lzdHJ5UHJveHku
aCBpbiBIZWFkZXJzICovLAorCQkJCUUxNzA4NzcxMTZENkNGRTUwMEY5OTIyNiAvKiBCbG9iUmVn
aXN0cmF0aW9uRGF0YS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTE0QTk1NEExNkUwMTZBNDAwNjhE
RTgyIC8qIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmggaW4gSGVhZGVycyAqLywK
IAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsK
QEAgLTY3NjMsNiArNjgwMSw5IEBACiAJCQkJQkNBRjM1RTgxNkNBMjUzQjAwRDRFOUZDIC8qIE9m
ZmxpbmVTdG9yYWdlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCQ0FGMzYyNTE2Q0EyOUEyMDBENEU5RkMgLyogT2ZmbGluZVN0b3JhZ2VQcm9jZXNzTWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxQTRENUE5MTZDQUM0RkYwMDBF
NjE1RSAvKiBTdGF0aXN0aWNzUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMTcwODc2
QjE2RDZDQTY5MDBGOTkyMjYgLyogQmxvYlJlZ2lzdHJ5UHJveHkuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJRTE3MDg3NzAxNkQ2Q0ZFNTAwRjk5MjI2IC8qIEJsb2JSZWdpc3RyYXRpb25EYXRhLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCUUxNEE5NTQ5MTZFMDE2QTQwMDY4REU4MiAvKiBOZXR3b3Jr
UHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQly
dW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3RyeVBy
b3h5LmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRmlsZUFQ
SS9CbG9iUmVnaXN0cnlQcm94eS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjUgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQmxvYlJlZ2lzdHJ5UHJv
eHkuaCIKKworI2lmIEVOQUJMRShCTE9CKSAmJiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorCisj
aW5jbHVkZSAiQmxvYlJlZ2lzdHJhdGlvbkRhdGEuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgi
CisjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oIgorI2lu
Y2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1
bWVudENvZGVycy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQmxvYkRhdGEuaD4KKwordXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIEJsb2JSZWdpc3Ry
eVByb3h5OjpyZWdpc3RlckJsb2JVUkwoY29uc3QgS1VSTCYgdXJsLCBQYXNzT3duUHRyPEJsb2JE
YXRhPiBibG9iRGF0YSkKK3sKKyAgICBBU1NFUlQoV2ViUHJvY2Vzczo6c2hhcmVkKCkudXNlc05l
dHdvcmtQcm9jZXNzKCkpOworCisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkubmV0d29ya0Nvbm5l
Y3Rpb24oKS0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6UmVnaXN0ZXJCbG9iVVJMKHVybCwgQmxvYlJlZ2lzdHJhdGlvbkRhdGEoYmxv
YkRhdGEpKSwgMCk7Cit9CisKK3ZvaWQgQmxvYlJlZ2lzdHJ5UHJveHk6OnJlZ2lzdGVyQmxvYlVS
TChjb25zdCBLVVJMJiB1cmwsIGNvbnN0IEtVUkwmIHNyY1VSTCkKK3sKKyAgICBBU1NFUlQoV2Vi
UHJvY2Vzczo6c2hhcmVkKCkudXNlc05ldHdvcmtQcm9jZXNzKCkpOworCisgICAgV2ViUHJvY2Vz
czo6c2hhcmVkKCkubmV0d29ya0Nvbm5lY3Rpb24oKS0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3Nh
Z2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UmVnaXN0ZXJCbG9iVVJMRnJvbVVS
TCh1cmwsIHNyY1VSTCksIDApOworfQorCit2b2lkIEJsb2JSZWdpc3RyeVByb3h5Ojp1bnJlZ2lz
dGVyQmxvYlVSTChjb25zdCBLVVJMJiB1cmwpCit7CisgICAgQVNTRVJUKFdlYlByb2Nlc3M6OnNo
YXJlZCgpLnVzZXNOZXR3b3JrUHJvY2VzcygpKTsKKworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgp
Lm5ldHdvcmtDb25uZWN0aW9uKCktPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlVucmVnaXN0ZXJCbG9iVVJMKHVybCksIDApOworfQor
Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoQkxPQikgJiYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykK
ClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRmlsZUFQSS9C
bG9iUmVnaXN0cnlQcm94eS5jcHAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICAr
IG5hdGl2ZQoKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVn
aXN0cnlQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRmls
ZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3RyeVByb3h5LmgJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEJsb2JSZWdpc3RyeVByb3h5X2gKKyNk
ZWZpbmUgQmxvYlJlZ2lzdHJ5UHJveHlfaAorCisjaWYgRU5BQkxFKEJMT0IpICYmIEVOQUJMRShO
RVRXT1JLX1BST0NFU1MpCisKKyNpbmNsdWRlIDxXZWJDb3JlL0Jsb2JSZWdpc3RyeS5oPgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgQmxvYlJlZ2lzdHJ5UHJveHkgOiBwdWJsaWMgV2Vi
Q29yZTo6QmxvYlJlZ2lzdHJ5IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJC
bG9iVVJMKGNvbnN0IFdlYkNvcmU6OktVUkwmLCBQYXNzT3duUHRyPFdlYkNvcmU6OkJsb2JEYXRh
Pik7CisgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyQmxvYlVSTChjb25zdCBXZWJDb3JlOjpLVVJM
JiwgY29uc3QgV2ViQ29yZTo6S1VSTCYgc3JjVVJMKTsKKyAgICB2aXJ0dWFsIHZvaWQgdW5yZWdp
c3RlckJsb2JVUkwoY29uc3QgV2ViQ29yZTo6S1VSTCYpOworfTsKKworfQorCisjZW5kaWYgLy8g
RU5BQkxFKEJMT0IpICYmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisKKyNlbmRpZiAvLyBCbG9i
UmVnaXN0cnlQcm94eV9oCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuaApfX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46
ZW9sLXN0eWxlCiAgICsgbmF0aXZlCgpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVn
aWVzLmNwcAkocmV2aXNpb24gMTQ0MzUyKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yOCw2ICsyOCw3IEBACiAKICNpZiBVU0UoUExBVEZPUk1fU1RSQVRFR0lFUykKIAorI2luY2x1
ZGUgIkJsb2JSZWdpc3RyeVByb3h5LmgiCiAjaW5jbHVkZSAiQmxvY2tpbmdSZXNwb25zZU1hcC5o
IgogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VM
b2FkUGFyYW1ldGVycy5oIgpAQCAtMjQ3LDYgKzI0OCwxNSBAQCB2b2lkIFdlYlBsYXRmb3JtU3Ry
YXRlZ2llczo6bG9hZFJlc291cmNlCiAgICAgbWVtY3B5KGRhdGEuZGF0YSgpLCBkYXRhUmVmZXJl
bmNlLmRhdGEoKSwgZGF0YVJlZmVyZW5jZS5zaXplKCkpOwogfQogCisjaWYgRU5BQkxFKEJMT0Ip
CitCbG9iUmVnaXN0cnkqIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlQmxvYlJlZ2lzdHJ5
KCkKK3sKKyAgICBpZiAoV2ViUHJvY2Vzczo6c2hhcmVkKCkudXNlc05ldHdvcmtQcm9jZXNzKCkp
CisgICAgICAgIHJldHVybiBuZXcgQmxvYlJlZ2lzdHJ5UHJveHk7CisgICAgZWxzZQorICAgICAg
ICByZXR1cm4gTG9hZGVyU3RyYXRlZ3k6OmNyZWF0ZUJsb2JSZWdpc3RyeSgpOworfQorI2VuZGlm
CiAjZW5kaWYKIAogLy8gUGx1Z2luU3RyYXRlZ3kKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMuaAkocmV2aXNpb24gMTQ0MzUyKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAkod29ya2luZyBjb3B5KQpA
QCAtNzQsNiArNzQsOSBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAg
ICAgdmlydHVhbCBXZWJDb3JlOjpSZXNvdXJjZUxvYWRTY2hlZHVsZXIqIHJlc291cmNlTG9hZFNj
aGVkdWxlcigpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBsb2FkUmVzb3VyY2VTeW5jaHJv
bm91c2x5KFdlYkNvcmU6Ok5ldHdvcmtpbmdDb250ZXh0KiwgdW5zaWduZWQgbG9uZyByZXNvdXJj
ZUxvYWRJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3Jl
OjpTdG9yZWRDcmVkZW50aWFscywgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmLCBWZWN0b3I8Y2hhcj4mIGRhdGEpIE9WRVJSSURFOworI2lmIEVOQUJM
RShCTE9CKQorICAgIHZpcnR1YWwgV2ViQ29yZTo6QmxvYlJlZ2lzdHJ5KiBjcmVhdGVCbG9iUmVn
aXN0cnkoKSBPVkVSUklERTsKKyNlbmRpZgogI2VuZGlmCiAKICAgICAvLyBXZWJDb3JlOjpQbHVn
aW5TdHJhdGVneQo=
</data>
<flag name="commit-queue"
          id="211660"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190989</attachid>
            <date>2013-03-01 10:59:21 -0800</date>
            <delta_ts>2013-03-01 11:02:08 -0800</delta_ts>
            <desc>with some build fixing</desc>
            <filename>MemoryBlobs.txt</filename>
            <type>text/plain</type>
            <size>45923</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCShyZXZpc2lvbiAxNDQ0NjkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgkod29ya2luZyBjb3B5KQpAQCAtMzExLDcgKzMxMSw2IEBAIF9f
Wk43V2ViQ29yZTE0RnJhbWVTZWxlY3Rpb241Y2xlYXJFdgogX19aTjdXZWJDb3JlMTRGcmFtZVNl
bGVjdGlvbjZtb2RpZnlFTlMwXzExRUFsdGVyYXRpb25FTlNfMThTZWxlY3Rpb25EaXJlY3Rpb25F
TlNfMTVUZXh0R3JhbnVsYXJpdHlFTlNfMTRFVXNlclRyaWdnZXJlZEUKIF9fWk43V2ViQ29yZTE0
RnJhbWVTZWxlY3Rpb245c2VsZWN0QWxsRXYKIF9fWk43V2ViQ29yZTE0RnJhbWVTZWxlY3Rpb25D
MUVQTlNfNUZyYW1lRQotX19aTjdXZWJDb3JlMTRMb2FkZXJTdHJhdGVneTE4Y3JlYXRlQmxvYlJl
Z2lzdHJ5RXYKIF9fWk43V2ViQ29yZTE0TG9hZGVyU3RyYXRlZ3kyMXJlc291cmNlTG9hZFNjaGVk
dWxlckV2CiBfX1pON1dlYkNvcmUxNExvYWRlclN0cmF0ZWd5MjVsb2FkUmVzb3VyY2VTeW5jaHJv
bm91c2x5RVBOU18xN05ldHdvcmtpbmdDb250ZXh0RW1SS05TXzE1UmVzb3VyY2VSZXF1ZXN0RU5T
XzE3U3RvcmVkQ3JlZGVudGlhbHNFUk5TXzEzUmVzb3VyY2VFcnJvckVSTlNfMTZSZXNvdXJjZVJl
c3BvbnNlRVJOM1dURjZWZWN0b3JJY0xtMEVFRQogX19aTjdXZWJDb3JlMTRQbHVnaW5Eb2N1bWVu
dDEwcGx1Z2luTm9kZUV2CkBAIC0yMzA3LDYgKzIzMDYsMjEgQEAgX19aTjdXZWJDb3JlMTJTY2hl
ZHVsZVBhaXJDMUVQOU5TUnVuTG9vcAogX19aTjdXZWJDb3JlMTRSZXNvdXJjZUhhbmRsZTEycmVs
ZWFzZVByb3h5RXYKICNlbmRpZgogCisjaWYgRU5BQkxFKEJMT0IpCitfX1pON1dlYkNvcmUxMmJs
b2JSZWdpc3RyeUV2CitfX1pON1dlYkNvcmUxNExvYWRlclN0cmF0ZWd5MThjcmVhdGVCbG9iUmVn
aXN0cnlFdgorX19aTjdXZWJDb3JlN1Jhd0RhdGFDMUV2CitfX1pON1dlYkNvcmU4QmxvYkRhdGEx
MGFwcGVuZEJsb2JFUktOU180S1VSTEV4eAorX19aTjdXZWJDb3JlOEJsb2JEYXRhMTBhcHBlbmRE
YXRhRU4zV1RGMTBQYXNzUmVmUHRySU5TXzdSYXdEYXRhRUVFeHgKK19fWk43V2ViQ29yZThCbG9i
RGF0YTEwYXBwZW5kRmlsZUVSS04zV1RGNlN0cmluZ0V4eGQKK19fWk43V2ViQ29yZThCbG9iRGF0
YTZjcmVhdGVFdgorX19aTjdXZWJDb3JlMTJCbG9iRGF0YUl0ZW0xMXRvRW5kT2ZGaWxlRQorX19a
TjdXZWJDb3JlMTJCbG9iUmVnaXN0cnlDMkV2CitfX1pON1dlYkNvcmUxMkJsb2JSZWdpc3RyeUQy
RXYKK19fWlRWTjdXZWJDb3JlMTJCbG9iUmVnaXN0cnlFCitfX1pUVk43V2ViQ29yZTE2QmxvYlJl
Z2lzdHJ5SW1wbEUKKyNlbmRpZgorCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiBfX1pON1dl
YkNvcmUxMUNvbnRleHRNZW51MjJzZXRQbGF0Zm9ybURlc2NyaXB0aW9uRVAxNE5TTXV0YWJsZUFy
cmF5CiBfX1pON1dlYkNvcmUxMkV2ZW50SGFuZGxlcjIwc2VuZENvbnRleHRNZW51RXZlbnRFUktO
U18xOFBsYXRmb3JtTW91c2VFdmVudEUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE0NDQ2OSkKKysrIFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5
KQpAQCAtODcxLDExICs4NzEsMTEgQEAKIAkJMkVENjA5QkMxMTQ1QjA3MTAwQzg2ODRFIC8qIERP
TUZvcm1EYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDJFRDYwOUJBMTE0NUIwNzEwMEM4Njg0RSAvKiBET01Gb3JtRGF0YS5jcHAgKi87IH07CiAJ
CTJFRDYwOUJEMTE0NUIwNzEwMEM4Njg0RSAvKiBET01Gb3JtRGF0YS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVENjA5QkIxMTQ1QjA3MTAwQzg2ODRF
IC8qIERPTUZvcm1EYXRhLmggKi87IH07CiAJCTJFREVGMUYzMTIxQjBFRkMwMDcyNkRCMiAvKiBC
bG9iRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyRURFRjFFRDEyMUIwRUZDMDA3MjZEQjIgLyogQmxvYkRhdGEuY3BwICovOyB9OwotCQkyRURF
RjFGNDEyMUIwRUZDMDA3MjZEQjIgLyogQmxvYkRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFREVGMUVFMTIxQjBFRkMwMDcyNkRCMiAvKiBCbG9i
RGF0YS5oICovOyB9OwotCQkyRURFRjFGNTEyMUIwRUZDMDA3MjZEQjIgLyogQmxvYlJlZ2lzdHJ5
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRURFRjFF
RjEyMUIwRUZDMDA3MjZEQjIgLyogQmxvYlJlZ2lzdHJ5LmggKi87IH07CisJCTJFREVGMUY0MTIx
QjBFRkMwMDcyNkRCMiAvKiBCbG9iRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMkVERUYxRUUxMjFCMEVGQzAwNzI2REIyIC8qIEJsb2JEYXRhLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMkVERUYx
RjUxMjFCMEVGQzAwNzI2REIyIC8qIEJsb2JSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVERUYxRUYxMjFCMEVGQzAwNzI2REIyIC8qIEJs
b2JSZWdpc3RyeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTJFREVGMUY2MTIxQjBFRkMwMDcyNkRCMiAvKiBCbG9iUmVnaXN0cnlJbXBsLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFREVGMUYwMTIx
QjBFRkMwMDcyNkRCMiAvKiBCbG9iUmVnaXN0cnlJbXBsLmNwcCAqLzsgfTsKLQkJMkVERUYxRjcx
MjFCMEVGQzAwNzI2REIyIC8qIEJsb2JSZWdpc3RyeUltcGwuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFREVGMUYxMTIxQjBFRkMwMDcyNkRCMiAvKiBC
bG9iUmVnaXN0cnlJbXBsLmggKi87IH07Ci0JCTJFREVGMUY4MTIxQjBFRkMwMDcyNkRCMiAvKiBC
bG9iU3RvcmFnZURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDJFREVGMUYyMTIxQjBFRkMwMDcyNkRCMiAvKiBCbG9iU3RvcmFnZURhdGEuaCAqLzsg
fTsKKwkJMkVERUYxRjcxMjFCMEVGQzAwNzI2REIyIC8qIEJsb2JSZWdpc3RyeUltcGwuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFREVGMUYxMTIxQjBF
RkMwMDcyNkRCMiAvKiBCbG9iUmVnaXN0cnlJbXBsLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMkVERUYxRjgxMjFCMEVGQzAwNzI2REIyIC8qIEJs
b2JTdG9yYWdlRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkVERUYxRjIxMjFCMEVGQzAwNzI2REIyIC8qIEJsb2JTdG9yYWdlRGF0YS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTJFREYzNjlDMTIy
Qzk0QjQwMDJGN0Q0RSAvKiBGaWxlUmVhZGVyU3luYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRURGMzY5QTEyMkM5NEI0MDAyRjdENEUgLyogRmls
ZVJlYWRlclN5bmMuY3BwICovOyB9OwogCQkyRURGMzY5RDEyMkM5NEI0MDAyRjdENEUgLyogRmls
ZVJlYWRlclN5bmMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDJFREYzNjlCMTIyQzk0QjQwMDJGN0Q0RSAvKiBGaWxlUmVhZGVyU3luYy5oICovOyB9Owog
CQkyRURGMzY5RjEyMkM5NEM4MDAyRjdENEUgLyogRmlsZUV4Y2VwdGlvbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVERjM2OUUxMjJDOTRDODAwMkY3
RDRFIC8qIEZpbGVFeGNlcHRpb24uaCAqLzsgfTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0
NDQ2OSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDQ2IEBACisyMDEzLTAyLTI4ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29t
PgorCisgICAgICAgIE1ha2UgaW4tbWVtb3J5IGJsb2JzIHdvcmsgaW4gTmV0d29ya1Byb2Nlc3MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMTEzMgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVnaXN0ZXJCbG9iVVJMKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlZ2lzdGVyQmxv
YlVSTEZyb21VUkwpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6dW5yZWdpc3RlckJsb2JVUkwpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgIEltcGxlbWVudCBCbG9iUmVnaXN0
cnkgaW50ZXJmYWNlIGJ5IHVzaW5nIEJsb2JSZWdpc3RyeUltcGwgKHNhbWUgb25lIGFzIHVzZWQg
aW4KKyAgICAgICAgV2ViUHJvY2VzcyBpbiBub24tUFBUIG1vZGUpLgorCisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46IEFk
ZGVkIHRocmVlIG1lc3NhZ2VzCisgICAgICAgIG5lZWRlZCBmb3IgQmxvYlJlZ2lzdHJ5LgorCisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDogQWRkZWQu
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdp
ZXMuaDogQWRkZWQuCisgICAgICAgIEFkZGVkIGEgbW9zdGx5IGVtcHR5IHBsYXRmb3JtIHN0cmF0
ZWd5LCBqdXN0IGZvciBGb3JtRGF0YSB0byB0YWxrIHRvIEJsb2JSZWdpc3RyeS4KKyAgICAgICAg
UGVyaGFwcyB3ZSdsbCBmaW5kIGEgd2F5IHRvIGF2b2lkIHRoaXMgV2ViQ29yZSBjb2RlIHBhdGgg
aW4gTmV0d29ya1Byb2Nlc3MsIGJlY2F1c2UKKyAgICAgICAgd2Ugb2J2aW91c2x5IGtub3cgd2hp
Y2ggcmVnaXN0cnkgaW1wbGVtZW50YXRpb24gaXMgaW4gdXNlIGluIHRoaXMgcHJvY2Vzcy4KKwor
ICAgICAgICAqIFNoYXJlZC9GaWxlQVBJOiBBZGRlZC4KKyAgICAgICAgKiBTaGFyZWQvRmlsZUFQ
SS9CbG9iUmVnaXN0cmF0aW9uRGF0YS5jcHA6IEFkZGVkLgorICAgICAgICAqIFNoYXJlZC9GaWxl
QVBJL0Jsb2JSZWdpc3RyYXRpb25EYXRhLmg6IEFkZGVkLgorICAgICAgICBBZGRlZCBhIGNsYXNz
IGZvciBwYXNzaW5nIEJsb2JEYXRhIGFuZCBleHRlbnNpb24gaGFuZGxlcyBvdmVyIElQQy4KKyAg
ICAgICAgVGhpcyB1c2VzIGEgdHJpY2sgd2l0aCBtdXRhYmxlIGEgbWVtYmVyIHRvIGF2b2lkIGNv
cHlpbmcgZGVjb2RlZCBCbG9iU3RvcmFnZURhdGEuCisKKyAgICAgICAgKiBXZWJLaXQyLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9GaWxlQVBJOiBBZGRl
ZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuaDog
QWRkZWQuCisgICAgICAgIEEgcHJveHkgaW1wbGVtZW50YXRpb24gb2YgQmxvYlJlZ2lzdHJ5IHRo
YXQganVzdCBzZW5kcyByZXF1ZXN0cyBvdmVyIElQQy4gV2Ugb25seQorICAgICAgICBuZWVkIGFz
eW5jIG9uZXMuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtU3RyYXRlZ2ll
czo6Y3JlYXRlQmxvYlJlZ2lzdHJ5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oOgorICAgICAgICBDcmVhdGUgYW4gYXBwcm9wcmlh
dGUgQmxvYlJlZ2lzdHJ5LgorCiAyMDEzLTAzLTAxICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZp
ZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTQ0
NDIyIGFuZCByMTQ0NDI0LgpJbmRleDogU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAkocmV2
aXNpb24gMTQ0NDY5KQorKysgU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwxMiArMjYsMTUg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5oIgogCisjaW5jbHVkZSAiQmxvYlJlZ2lzdHJhdGlvbkRhdGEuaCIKICNpbmNsdWRl
ICJDb25uZWN0aW9uU3RhY2suaCIKICNpbmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3MuaCIKICNpbmNsdWRlICJO
ZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJSZW1vdGVOZXR3b3JraW5nQ29udGV4
dC5oIgogI2luY2x1ZGUgIlN5bmNOZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlIDxX
ZWJDb3JlL0Jsb2JEYXRhLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9CbG9iUmVnaXN0cnkuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtQ29va2llSmFyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9S
ZXNvdXJjZUxvYWRlck9wdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVz
dC5oPgpAQCAtMTc3LDYgKzE4MCwyMyBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpkZWxlCiAgICAgV2ViQ29yZTo6ZGVsZXRlQ29va2llKHN0b3JhZ2VTZXNzaW9uKHByaXZh
dGVCcm93c2luZ0VuYWJsZWQpLCB1cmwsIGNvb2tpZU5hbWUpOwogfQogCit2b2lkIE5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZWdpc3RlckJsb2JVUkwoY29uc3QgS1VSTCYgdXJsLCBj
b25zdCBCbG9iUmVnaXN0cmF0aW9uRGF0YSYgZGF0YSkKK3sKKyAgICAvLyBGSVhNRTogVHJhY2sg
c2FuZGJveCBleHRlbnNpb25zLgorICAgIC8vIEZJWE1FOiB1bnJlZ2lzdGVyIGFsbCBVUkxzIHdo
ZW4gcHJvY2VzcyBjb25uZWN0aW9uIGNsb3Nlcy4KKyAgICBibG9iUmVnaXN0cnkoKS5yZWdpc3Rl
ckJsb2JVUkwodXJsLCBkYXRhLnJlbGVhc2VEYXRhKCkpOworfQorCit2b2lkIE5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpyZWdpc3RlckJsb2JVUkxGcm9tVVJMKGNvbnN0IEtVUkwmIHVy
bCwgY29uc3QgS1VSTCYgc3JjVVJMKQoreworICAgIGJsb2JSZWdpc3RyeSgpLnJlZ2lzdGVyQmxv
YlVSTCh1cmwsIHNyY1VSTCk7Cit9CisKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OnVucmVnaXN0ZXJCbG9iVVJMKGNvbnN0IEtVUkwmIHVybCkKK3sKKyAgICBibG9iUmVnaXN0
cnkoKS51bnJlZ2lzdGVyQmxvYlVSTCh1cmwpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
IAogI2VuZGlmIC8vIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmgJKHJldmlzaW9uIDE0NDQ2OSkKKysrIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTQxLDYgKzQxLDcgQEAgY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAorY2xhc3MgQmxvYlJlZ2lzdHJhdGlvbkRhdGE7CiBjbGFzcyBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2VzczsKIGNsYXNzIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjsKIGNsYXNzIFN5bmNO
ZXR3b3JrUmVzb3VyY2VMb2FkZXI7CkBAIC04Myw2ICs4NCwxMCBAQCBwcml2YXRlOgogICAgIHZv
aWQgZ2V0UmF3Q29va2llcyhib29sIHByaXZhdGVCcm93c2luZ0VuYWJsZWQsIGNvbnN0IFdlYkNv
cmU6OktVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OktVUkwmLCBWZWN0b3I8V2ViQ29y
ZTo6Q29va2llPiYpOwogICAgIHZvaWQgZGVsZXRlQ29va2llKGJvb2wgcHJpdmF0ZUJyb3dzaW5n
RW5hYmxlZCwgY29uc3QgV2ViQ29yZTo6S1VSTCYsIGNvbnN0IFN0cmluZyYgY29va2llTmFtZSk7
CiAKKyAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTChjb25zdCBXZWJDb3JlOjpLVVJMJiwgY29uc3Qg
QmxvYlJlZ2lzdHJhdGlvbkRhdGEmKTsKKyAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTEZyb21VUkwo
Y29uc3QgV2ViQ29yZTo6S1VSTCYsIGNvbnN0IFdlYkNvcmU6OktVUkwmIHNyY1VSTCk7CisgICAg
dm9pZCB1bnJlZ2lzdGVyQmxvYlVSTChjb25zdCBXZWJDb3JlOjpLVVJMJik7CisKICAgICBSZWZQ
dHI8Q29yZUlQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogCiAgICAgSGFzaE1hcDxSZXNv
dXJjZUxvYWRJZGVudGlmaWVyLCBSZWZQdHI8TmV0d29ya1Jlc291cmNlTG9hZGVyPiA+IG1fbmV0
d29ya1Jlc291cmNlTG9hZGVyczsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLm1lc3NhZ2VzLmluCShyZXZpc2lvbiAxNDQ0NjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgkod29y
a2luZyBjb3B5KQpAQCAtNDAsNiArNDAsMTAgQEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2NlcwogICAgIENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGJvb2wgcHJp
dmF0ZUJyb3dzaW5nRW5hYmxlZCwgV2ViQ29yZTo6S1VSTCBmaXJzdFBhcnR5LCBXZWJDb3JlOjpL
VVJMIHVybCkgLT4gKFdURjo6U3RyaW5nIHJlc3VsdCkKICAgICBHZXRSYXdDb29raWVzKGJvb2wg
cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCwgV2ViQ29yZTo6S1VSTCBmaXJzdFBhcnR5LCBXZWJDb3Jl
OjpLVVJMIHVybCkgLT4gKFdURjo6VmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gY29va2llcykKICAg
ICBEZWxldGVDb29raWUoYm9vbCBwcml2YXRlQnJvd3NpbmdFbmFibGVkLCBXZWJDb3JlOjpLVVJM
IHVybCwgV1RGOjpTdHJpbmcgY29va2llTmFtZSkKKworICAgIFJlZ2lzdGVyQmxvYlVSTChXZWJD
b3JlOjpLVVJMIHVybCwgV2ViS2l0OjpCbG9iUmVnaXN0cmF0aW9uRGF0YSBkYXRhKQorICAgIFJl
Z2lzdGVyQmxvYlVSTEZyb21VUkwoV2ViQ29yZTo6S1VSTCB1cmwsIFdlYkNvcmU6OktVUkwgc3Jj
VVJMKQorICAgIFVucmVnaXN0ZXJCbG9iVVJMKFdlYkNvcmU6OktVUkwgdXJsKQogfQogCiAjZW5k
aWYgLy8gRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAJKHJldmlzaW9uIDE0NDQ2OSkKKysr
IFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRl
ICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NQbGF0Zm9y
bVN0cmF0ZWdpZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIK
ICNpbmNsdWRlICJSZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlN0YXRpc3Rp
Y3NEYXRhLmgiCkBAIC02Myw2ICs2NCw4IEBAIE5ldHdvcmtQcm9jZXNzOjpOZXR3b3JrUHJvY2Vz
cygpCiAgICAgOiBtX2hhc1NldENhY2hlTW9kZWwoZmFsc2UpCiAgICAgLCBtX2NhY2hlTW9kZWwo
Q2FjaGVNb2RlbERvY3VtZW50Vmlld2VyKQogeworICAgIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1T
dHJhdGVnaWVzOjppbml0aWFsaXplKCk7CisKICAgICBhZGRTdXBwbGVtZW50PEF1dGhlbnRpY2F0
aW9uTWFuYWdlcj4oKTsKICAgICBhZGRTdXBwbGVtZW50PFdlYkNvb2tpZU1hbmFnZXI+KCk7CiAg
ICAgYWRkU3VwcGxlbWVudDxDdXN0b21Qcm90b2NvbE1hbmFnZXI+KCk7CkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEwMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oIgorCisj
aW5jbHVkZSA8V2ViQ29yZS9CbG9iUmVnaXN0cnlJbXBsLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBOZXR3b3JrUHJvY2Vzc1BsYXRm
b3JtU3RyYXRlZ2llczo6aW5pdGlhbGl6ZSgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChO
ZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcywgcGxhdGZvcm1TdHJhdGVnaWVzLCAoKSk7
CisgICAgc2V0UGxhdGZvcm1TdHJhdGVnaWVzKCZwbGF0Zm9ybVN0cmF0ZWdpZXMpOworfQorCitD
b29raWVzU3RyYXRlZ3kqIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVD
b29raWVzU3RyYXRlZ3koKQoreworICAgIHJldHVybiAwOworfQorCitEYXRhYmFzZVN0cmF0ZWd5
KiBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlRGF0YWJhc2VTdHJhdGVn
eSgpCit7CisgICAgcmV0dXJuIDA7Cit9CisKK0xvYWRlclN0cmF0ZWd5KiBOZXR3b3JrUHJvY2Vz
c1BsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlTG9hZGVyU3RyYXRlZ3koKQoreworICAgIHJldHVy
biB0aGlzOworfQorCitQYXN0ZWJvYXJkU3RyYXRlZ3kqIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1T
dHJhdGVnaWVzOjpjcmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3koKQoreworICAgIHJldHVybiAwOwor
fQorCitQbHVnaW5TdHJhdGVneSogTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNy
ZWF0ZVBsdWdpblN0cmF0ZWd5KCkKK3sKKyAgICByZXR1cm4gMDsKK30KKworU2hhcmVkV29ya2Vy
U3RyYXRlZ3kqIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVTaGFyZWRX
b3JrZXJTdHJhdGVneSgpCit7CisgICAgcmV0dXJuIDA7Cit9CisKK1N0b3JhZ2VTdHJhdGVneSog
TmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZVN0b3JhZ2VTdHJhdGVneSgp
Cit7CisgICAgcmV0dXJuIDA7Cit9CisKK1Zpc2l0ZWRMaW5rU3RyYXRlZ3kqIE5ldHdvcmtQcm9j
ZXNzUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVWaXNpdGVkTGlua1N0cmF0ZWd5KCkKK3sKKyAg
ICByZXR1cm4gMDsKK30KKworUmVzb3VyY2VMb2FkU2NoZWR1bGVyKiBOZXR3b3JrUHJvY2Vzc1Bs
YXRmb3JtU3RyYXRlZ2llczo6cmVzb3VyY2VMb2FkU2NoZWR1bGVyKCkKK3sKKyAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gMDsKK30KKwordm9pZCBOZXR3b3JrUHJvY2Vzc1Bs
YXRmb3JtU3RyYXRlZ2llczo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29u
dGV4dCosIHVuc2lnbmVkIGxvbmcgcmVzb3VyY2VMb2FkSWRlbnRpZmllciwgY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiwgU3RvcmVkQ3JlZGVudGlhbHMsIFJlc291cmNlRXJyb3ImLCBSZXNvdXJjZVJl
c3BvbnNlJiwgVmVjdG9yPGNoYXI+JiBkYXRhKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworfQorCisjaWYgRU5BQkxFKEJMT0IpCitCbG9iUmVnaXN0cnkqIE5ldHdvcmtQcm9jZXNzUGxh
dGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVCbG9iUmVnaXN0cnkoKQoreworICAgIHJldHVybiBuZXcg
QmxvYlJlZ2lzdHJ5SW1wbDsKK30KKworI2VuZGlmCisKKworfQoKUHJvcGVydHkgY2hhbmdlcyBv
bjogU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0
cmF0ZWdpZXMuY3BwCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBuYXRpdmUK
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRm
b3JtU3RyYXRlZ2llcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmgJKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRl
Z2llcy5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llc19oCisjZGVmaW5lIE5ldHdvcmtQcm9j
ZXNzUGxhdGZvcm1TdHJhdGVnaWVzX2gKKworI2luY2x1ZGUgPFdlYkNvcmUvTG9hZGVyU3RyYXRl
Z3kuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtU3RyYXRlZ2llcy5oPgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMgOiBw
dWJsaWMgV2ViQ29yZTo6UGxhdGZvcm1TdHJhdGVnaWVzLCBwcml2YXRlIFdlYkNvcmU6OkxvYWRl
clN0cmF0ZWd5IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXplKCk7CisgICAg
Citwcml2YXRlOgorICAgIC8vIFdlYkNvcmU6OlBsYXRmb3JtU3RyYXRlZ2llcworICAgIHZpcnR1
YWwgV2ViQ29yZTo6Q29va2llc1N0cmF0ZWd5KiBjcmVhdGVDb29raWVzU3RyYXRlZ3koKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkRhdGFiYXNlU3RyYXRlZ3kqIGNyZWF0ZURhdGFi
YXNlU3RyYXRlZ3koKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkxvYWRlclN0cmF0
ZWd5KiBjcmVhdGVMb2FkZXJTdHJhdGVneSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgV2ViQ29y
ZTo6UGFzdGVib2FyZFN0cmF0ZWd5KiBjcmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3koKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlBsdWdpblN0cmF0ZWd5KiBjcmVhdGVQbHVnaW5TdHJh
dGVneSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgV2ViQ29yZTo6U2hhcmVkV29ya2VyU3RyYXRl
Z3kqIGNyZWF0ZVNoYXJlZFdvcmtlclN0cmF0ZWd5KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBX
ZWJDb3JlOjpTdG9yYWdlU3RyYXRlZ3kqIGNyZWF0ZVN0b3JhZ2VTdHJhdGVneSgpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgV2ViQ29yZTo6VmlzaXRlZExpbmtTdHJhdGVneSogY3JlYXRlVmlzaXRl
ZExpbmtTdHJhdGVneSgpIE9WRVJSSURFOworCisgICAgLy8gV2ViQ29yZTo6TG9hZGVyU3RyYXRl
Z3kKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlJlc291cmNlTG9hZFNjaGVkdWxlciogcmVzb3VyY2VM
b2FkU2NoZWR1bGVyKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGxvYWRSZXNvdXJjZVN5
bmNocm9ub3VzbHkoV2ViQ29yZTo6TmV0d29ya2luZ0NvbnRleHQqLCB1bnNpZ25lZCBsb25nIHJl
c291cmNlTG9hZElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdl
YkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSYsIFZlY3RvcjxjaGFyPiYgZGF0YSkgT1ZFUlJJREU7CisjaWYg
RU5BQkxFKEJMT0IpCisgICAgdmlydHVhbCBXZWJDb3JlOjpCbG9iUmVnaXN0cnkqIGNyZWF0ZUJs
b2JSZWdpc3RyeSgpIE9WRVJSSURFOworI2VuZGlmCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworCisjZW5kaWYgLy8gTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXNfaAoKUHJv
cGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxl
CiAgICsgbmF0aXZlCgpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0ZpbGVBUEkvQmxvYlJl
Z2lzdHJhdGlvbkRhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9G
aWxlQVBJL0Jsb2JSZWdpc3RyYXRpb25EYXRhLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9GaWxlQVBJL0Jsb2JSZWdpc3RyYXRpb25EYXRhLmNwcAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwxODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiQmxvYlJlZ2lzdHJhdGlvbkRhdGEuaCIKKworI2lmIEVOQUJMRShCTE9CKSAmJiBF
TkFCTEUoTkVUV09SS19QUk9DRVNTKQorCisjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKKyNp
bmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9CbG9iRGF0YS5oPgorCit1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK0Jsb2JSZWdpc3RyYXRpb25EYXRhOjpCbG9i
UmVnaXN0cmF0aW9uRGF0YSgpCit7Cit9CisKK0Jsb2JSZWdpc3RyYXRpb25EYXRhOjpCbG9iUmVn
aXN0cmF0aW9uRGF0YShQYXNzT3duUHRyPEJsb2JEYXRhPiBkYXRhKQorICAgIDogbV9kYXRhKGRh
dGEpCit7CisgICAgY29uc3QgQmxvYkRhdGFJdGVtTGlzdCYgaXRlbXMgPSBtX2RhdGEtPml0ZW1z
KCk7CisgICAgc2l6ZV90IGZpbGVDb3VudCA9IDA7CisgICAgZm9yIChzaXplX3QgaSA9IDAsIGNv
dW50ID0gaXRlbXMuc2l6ZSgpOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICBpZiAoaXRlbXNb
aV0udHlwZSA9PSBCbG9iRGF0YUl0ZW06OkZpbGUpCisgICAgICAgICAgICArK2ZpbGVDb3VudDsK
KyAgICB9CisKKyAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSBzYW5kYm94RXh0ZW5z
aW9uczsKKyAgICBzYW5kYm94RXh0ZW5zaW9ucy5hbGxvY2F0ZShmaWxlQ291bnQpOworICAgIHNp
emVfdCBleHRlbnNpb25JbmRleCA9IDA7CisgICAgZm9yIChzaXplX3QgaSA9IDAsIGNvdW50ID0g
aXRlbXMuc2l6ZSgpOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICBjb25zdCBCbG9iRGF0YUl0
ZW0mIGl0ZW0gPSBpdGVtc1tpXTsKKyAgICAgICAgaWYgKGl0ZW0udHlwZSA9PSBCbG9iRGF0YUl0
ZW06OkZpbGUpCisgICAgICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGUoaXRl
bS5wYXRoLCBTYW5kYm94RXh0ZW5zaW9uOjpSZWFkT25seSwgc2FuZGJveEV4dGVuc2lvbnNbZXh0
ZW5zaW9uSW5kZXgrK10pOworICAgIH0KK30KKworQmxvYlJlZ2lzdHJhdGlvbkRhdGE6On5CbG9i
UmVnaXN0cmF0aW9uRGF0YSgpCit7Cit9CisKK1Bhc3NPd25QdHI8QmxvYkRhdGE+IEJsb2JSZWdp
c3RyYXRpb25EYXRhOjpyZWxlYXNlRGF0YSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZGF0YS5y
ZWxlYXNlKCk7Cit9CisKK3ZvaWQgQmxvYlJlZ2lzdHJhdGlvbkRhdGE6OmVuY29kZShDb3JlSVBD
OjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBtX2Rh
dGEtPmNvbnRlbnRUeXBlKCk7CisgICAgZW5jb2RlciA8PCBtX2RhdGEtPmNvbnRlbnREaXNwb3Np
dGlvbigpOworCisgICAgY29uc3QgQmxvYkRhdGFJdGVtTGlzdCYgaXRlbXMgPSBtX2RhdGEtPml0
ZW1zKCk7CisgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oaXRlbXMuc2l6ZSgp
KTsKKyAgICBmb3IgKHNpemVfdCBpID0gMCwgY291bnQgPSBpdGVtcy5zaXplKCk7IGkgPCBjb3Vu
dDsgKytpKSB7CisgICAgICAgIGNvbnN0IEJsb2JEYXRhSXRlbSYgaXRlbSA9IGl0ZW1zW2ldOwor
ICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQzMl90PihpdGVtLnR5cGUpOworICAg
ICAgICBzd2l0Y2ggKGl0ZW0udHlwZSkgeworICAgICAgICBjYXNlIEJsb2JEYXRhSXRlbTo6RGF0
YToKKyAgICAgICAgICAgIC8vIFRoZXJlIGlzIG5vIHdheSB0byBjcmVhdGUgYSBwYXJ0aWFsIGRh
dGEgaXRlbS4KKyAgICAgICAgICAgIEFTU0VSVCghaXRlbS5vZmZzZXQpOworICAgICAgICAgICAg
QVNTRVJUKGl0ZW0ubGVuZ3RoID09IEJsb2JEYXRhSXRlbTo6dG9FbmRPZkZpbGUpOworICAgICAg
ICAgICAgZW5jb2RlciA8PCBDb3JlSVBDOjpEYXRhUmVmZXJlbmNlKHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgdWludDhfdCo+KGl0ZW0uZGF0YS0+ZGF0YSgpKSwgaXRlbS5kYXRhLT5sZW5ndGgoKSk7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBCbG9iRGF0YUl0ZW06OkZpbGU6Cisg
ICAgICAgICAgICBlbmNvZGVyIDw8IGl0ZW0ub2Zmc2V0OworICAgICAgICAgICAgZW5jb2RlciA8
PCBpdGVtLmxlbmd0aDsKKyAgICAgICAgICAgIGVuY29kZXIgPDwgaXRlbS5leHBlY3RlZE1vZGlm
aWNhdGlvblRpbWU7CisgICAgICAgICAgICBlbmNvZGVyIDw8IGl0ZW0ucGF0aDsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIEJsb2JEYXRhSXRlbTo6QmxvYjoKKyAgICAgICAgICAg
IGVuY29kZXIgPDwgaXRlbS5vZmZzZXQ7CisgICAgICAgICAgICBlbmNvZGVyIDw8IGl0ZW0ubGVu
Z3RoOworICAgICAgICAgICAgZW5jb2RlciA8PCBpdGVtLnVybDsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisgICAgfQorCisgICAgZW5jb2RlciA8PCBtX3NhbmRib3hFeHRlbnNpb25z
OworfQorCitib29sIEJsb2JSZWdpc3RyYXRpb25EYXRhOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyJiBkZWNvZGVyLCBCbG9iUmVnaXN0cmF0aW9uRGF0YSYgcmVzdWx0KQoreworICAg
IEFTU0VSVCghcmVzdWx0Lm1fZGF0YSk7CisgICAgcmVzdWx0Lm1fZGF0YSA9IEJsb2JEYXRhOjpj
cmVhdGUoKTsKKworICAgIFN0cmluZyBjb250ZW50VHlwZTsKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKGNvbnRlbnRUeXBlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJlc3VsdC5tX2Rh
dGEtPnNldENvbnRlbnRUeXBlKGNvbnRlbnRUeXBlKTsKKworICAgIFN0cmluZyBjb250ZW50RGlz
cG9zaXRpb247CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjb250ZW50RGlzcG9zaXRpb24pKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmVzdWx0Lm1fZGF0YS0+c2V0Q29udGVudERpc3Bv
c2l0aW9uKGNvbnRlbnREaXNwb3NpdGlvbik7CisKKyAgICB1aW50NjRfdCBpdGVtQ291bnQ7Cisg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShpdGVtQ291bnQpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICBmb3IgKHVpbnQ2NF90IGkgPSAwOyBpIDwgaXRlbUNvdW50OyArK2kgKSB7CisgICAg
ICAgIHVpbnQzMl90IHR5cGU7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHlwZSkpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHN3aXRjaCAodHlwZSkgeworICAgICAg
ICBjYXNlIEJsb2JEYXRhSXRlbTo6RGF0YTogeworICAgICAgICAgICAgQ29yZUlQQzo6RGF0YVJl
ZmVyZW5jZSBkYXRhOworICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShkYXRhKSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBSZWZQdHI8UmF3RGF0YT4g
cmF3RGF0YSA9IFJhd0RhdGE6OmNyZWF0ZSgpOworICAgICAgICAgICAgcmF3RGF0YS0+bXV0YWJs
ZURhdGEoKS0+YXBwZW5kKGRhdGEuZGF0YSgpLCBkYXRhLnNpemUoKSk7CisgICAgICAgICAgICBy
ZXN1bHQubV9kYXRhLT5hcHBlbmREYXRhKHJhd0RhdGEucmVsZWFzZSgpLCAwLCBCbG9iRGF0YUl0
ZW06OnRvRW5kT2ZGaWxlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAg
IGNhc2UgQmxvYkRhdGFJdGVtOjpGaWxlOiB7CisgICAgICAgICAgICBsb25nIGxvbmcgb2Zmc2V0
OworICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShvZmZzZXQpKQorICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGxvbmcgbG9uZyBsZW5ndGg7CisgICAgICAg
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGxlbmd0aCkpCisgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICAgICAgZG91YmxlIGV4cGVjdGVkTW9kaWZpY2F0aW9uVGltZTsKKyAg
ICAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZXhwZWN0ZWRNb2RpZmljYXRpb25UaW1lKSkK
KyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBTdHJpbmcgcGF0aDsK
KyAgICAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGF0aCkpCisgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICAgICAgcmVzdWx0Lm1fZGF0YS0+YXBwZW5kRmlsZShwYXRo
LCBvZmZzZXQsIGxlbmd0aCwgZXhwZWN0ZWRNb2RpZmljYXRpb25UaW1lKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgQmxvYkRhdGFJdGVtOjpCbG9iOiB7Cisg
ICAgICAgICAgICBsb25nIGxvbmcgb2Zmc2V0OworICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShvZmZzZXQpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAg
IGxvbmcgbG9uZyBsZW5ndGg7CisgICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGxlbmd0
aCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgU3RyaW5nIHVy
bDsKKyAgICAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUodXJsKSkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICByZXN1bHQubV9kYXRhLT5hcHBlbmRCbG9iKEtV
UkwoS1VSTCgpLCB1cmwpLCBvZmZzZXQsIGxlbmd0aCk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgfQorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICB9CisgICAgfQorCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV9zYW5kYm94
RXh0ZW5zaW9ucykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOwor
fQorCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoQkxPQikgJiYgRU5BQkxFKE5FVFdPUktfUFJPQ0VT
UykKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9GaWxlQVBJL0Js
b2JSZWdpc3RyYXRpb25EYXRhLmNwcApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAg
ICsgbmF0aXZlCgpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0ZpbGVBUEkvQmxvYlJlZ2lz
dHJhdGlvbkRhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRmlsZUFQ
SS9CbG9iUmVnaXN0cmF0aW9uRGF0YS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIv
U2hhcmVkL0ZpbGVBUEkvQmxvYlJlZ2lzdHJhdGlvbkRhdGEuaAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQmxvYlJlZ2lzdHJhdGlvbkRhdGFfaAor
I2RlZmluZSBCbG9iUmVnaXN0cmF0aW9uRGF0YV9oCisKKyNpZiBFTkFCTEUoQkxPQikgJiYgRU5B
QkxFKE5FVFdPUktfUFJPQ0VTUykKKworI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQmxvYkRhdGE7Cit9CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitjbGFzcyBCbG9iUmVnaXN0cmF0aW9uRGF0YSB7CitXVEZfTUFLRV9OT05DT1BZQUJM
RShCbG9iUmVnaXN0cmF0aW9uRGF0YSk7CitwdWJsaWM6CisgICAgQmxvYlJlZ2lzdHJhdGlvbkRh
dGEoKTsKKyAgICBCbG9iUmVnaXN0cmF0aW9uRGF0YShQYXNzT3duUHRyPFdlYkNvcmU6OkJsb2JE
YXRhPik7CisgICAgfkJsb2JSZWdpc3RyYXRpb25EYXRhKCk7CisKKyAgICB2b2lkIGVuY29kZShD
b3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUo
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiwgQmxvYlJlZ2lzdHJhdGlvbkRhdGEmKTsKKworICAg
IFBhc3NPd25QdHI8V2ViQ29yZTo6QmxvYkRhdGE+IHJlbGVhc2VEYXRhKCkgY29uc3Q7CisgICAg
Y29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkmIHNhbmRib3hFeHRlbnNpb25zKCkg
Y29uc3QgeyByZXR1cm4gbV9zYW5kYm94RXh0ZW5zaW9uczsgfQorCitwcml2YXRlOgorICAgIG11
dGFibGUgT3duUHRyPFdlYkNvcmU6OkJsb2JEYXRhPiBtX2RhdGE7CisgICAgU2FuZGJveEV4dGVu
c2lvbjo6SGFuZGxlQXJyYXkgbV9zYW5kYm94RXh0ZW5zaW9uczsKK307CisKK30KKworI2VuZGlm
IC8vIEVOQUJMRShCTE9CKSAmJiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorCisjZW5kaWYgLy8g
QmxvYlJlZ2lzdHJhdGlvbkRhdGFfaAoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYktp
dDIvU2hhcmVkL0ZpbGVBUEkvQmxvYlJlZ2lzdHJhdGlvbkRhdGEuaApfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVk
OiBzdm46ZW9sLXN0eWxlCiAgICsgbmF0aXZlCgpJbmRleDogU291cmNlL1dlYktpdDIvV2ViS2l0
Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTQ0NDY5KQorKysg
U291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5n
IGNvcHkpCkBAIC0xMDkyLDggKzEwOTIsMTQgQEAKIAkJRTEzM0ZEOEExNDIzREQ3RjAwRkM3QkZC
IC8qIFdlYktpdC5pY25zIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMTMzRkQ4OTE0MjNERDdGMDBGQzdCRkIgLyogV2ViS2l0LmljbnMgKi87IH07CiAJ
CUUxMzRGMDE3MTJFQTVEMzMwMDRFQzU4RCAvKiBXS1ByaW50aW5nVmlldy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTEzNEYwMTUxMkVBNUQxMTAwNEVD
NThEIC8qIFdLUHJpbnRpbmdWaWV3LmggKi87IH07CiAJCUUxMzRGMDFBMTJFQTVEOTkwMDRFQzU4
RCAvKiBXS1ByaW50aW5nVmlldy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUxMzRGMDE5MTJFQTVEOTkwMDRFQzU4RCAvKiBXS1ByaW50aW5nVmlldy5t
bSAqLzsgfTsKKwkJRTE0QTk1NDkxNkUwMTZBNDAwNjhERTgyIC8qIE5ldHdvcmtQcm9jZXNzUGxh
dGZvcm1TdHJhdGVnaWVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUxNEE5NTQ3MTZFMDE2QTQwMDY4REU4MiAvKiBOZXR3b3JrUHJvY2Vzc1BsYXRm
b3JtU3RyYXRlZ2llcy5jcHAgKi87IH07CisJCUUxNEE5NTRBMTZFMDE2QTQwMDY4REU4MiAvKiBO
ZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE0QTk1NDgxNkUwMTZBNDAwNjhERTgyIC8qIE5ldHdv
cmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmggKi87IH07CiAJCUUxNTEzQzY2MTY2RUFCQjIw
MDE0OUZDQiAvKiBDaGlsZFByb2Nlc3NQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTUxM0M2NDE2NkVBQkIyMDAxNDlGQ0IgLyogQ2hpbGRQ
cm9jZXNzUHJveHkuY3BwICovOyB9OwogCQlFMTUxM0M2NzE2NkVBQkIyMDAxNDlGQ0IgLyogQ2hp
bGRQcm9jZXNzUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUxNTEzQzY1MTY2RUFCQjIwMDE0OUZDQiAvKiBDaGlsZFByb2Nlc3NQcm94eS5oICov
OyB9OworCQlFMTcwODc2QjE2RDZDQTY5MDBGOTkyMjYgLyogQmxvYlJlZ2lzdHJ5UHJveHkuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE3MDg3Njkx
NkQ2Q0E2OTAwRjk5MjI2IC8qIEJsb2JSZWdpc3RyeVByb3h5LmNwcCAqLzsgfTsKKwkJRTE3MDg3
NkMxNkQ2Q0E2OTAwRjk5MjI2IC8qIEJsb2JSZWdpc3RyeVByb3h5LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTcwODc2QTE2RDZDQTY5MDBGOTkyMjYg
LyogQmxvYlJlZ2lzdHJ5UHJveHkuaCAqLzsgfTsKKwkJRTE3MDg3NzAxNkQ2Q0ZFNTAwRjk5MjI2
IC8qIEJsb2JSZWdpc3RyYXRpb25EYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEUxNzA4NzZFMTZENkNGRTQwMEY5OTIyNiAvKiBCbG9iUmVnaXN0
cmF0aW9uRGF0YS5jcHAgKi87IH07CisJCUUxNzA4NzcxMTZENkNGRTUwMEY5OTIyNiAvKiBCbG9i
UmVnaXN0cmF0aW9uRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTE3MDg3NkYxNkQ2Q0ZFNTAwRjk5MjI2IC8qIEJsb2JSZWdpc3RyYXRpb25EYXRh
LmggKi87IH07CiAJCUUxNzkwODhEMTY5QkFBNjIwMDY5MDRDNyAvKiBTZWNJdGVtU2hpbS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMThFNjk0NzE2
OUI3N0M4MDA5QjY2NzAgLyogU2VjSXRlbVNoaW0uY3BwICovOyB9OwogCQlFMTc5MDg4RjE2OUJB
QTZBMDA2OTA0QzcgLyogU2VjSXRlbVNoaW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEUxOEU2OTQ4MTY5Qjc3QzgwMDlCNjY3MCAvKiBTZWNJdGVtU2hp
bS5oICovOyB9OwogCQlFMTc5MDg5MDE2OUJBQTdGMDA2OTA0QzcgLyogU2VjSXRlbVNoaW1NZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTE4RTY5MTExNjlCNjY3QjAwOUI2NjcwIC8qIFNlY0l0ZW1TaGltTWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLzsgfTsKQEAgLTE0NjgsOCArMTQ3NCw4IEBACiAJCTFBMzAwNjZDMTExMEY0Rjcw
MDMxOTM3QyAvKiBSZXNwb25zaXZlbmVzc1RpbWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJlc3BvbnNpdmVuZXNzVGltZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMUEzMEVBQzUxMTVEN0RBMzAwNTNFOTM3IC8qIENvbm5lY3Rpb25NYWMuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29ubmVjdGlvbk1hYy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBMzM0REVBMTZERThCNjgwMDZBOEUzOCAvKiBTdG9y
YWdlQXJlYVByb3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFN0b3JhZ2VBcmVhUHJveHkubWVzc2FnZXMu
aW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTFBMzM0REVCMTZERThGODgwMDZBOEUz
OCAvKiBTdG9yYWdlQXJlYVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFN0b3JhZ2VBcmVhUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
OyBwYXRoID0gU3RvcmFnZUFyZWFQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0gICAgCQkxQTMzNERFQzE2REU4Rjg4MDA2QThFMzggLyogU3RvcmFn
ZUFyZWFQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFN0
b3JhZ2VBcmVhUHJveHlNZXNzYWdlcy5oOyBwYXRoID0gU3RvcmFnZUFyZWFQcm94eU1lc3NhZ2Vz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFBMzM0REVCMTZERThGODgwMDZBOEUz
OCAvKiBTdG9yYWdlQXJlYVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0b3JhZ2VBcmVhUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQTMzNERFQzE2REU4Rjg4MDA2QThFMzgg
LyogU3RvcmFnZUFyZWFQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFN0b3JhZ2VBcmVhUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkxQTNENjBGRjEzQTdDQzJBMDBGOTVENEUgLyogUGx1Z2luTW9kdWxlSW5mby5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbHVnaW5Nb2R1bGVJbmZvLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUEzRDYxMDAxM0E3Q0MyQTAwRjk1RDRF
IC8qIFBsdWdpbk1vZHVsZUluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UGx1Z2luTW9kdWxlSW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTNENjEw
NDEzQTdGMDNBMDBGOTVENEUgLyogQXJndW1lbnRDb2RlcnMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQXJndW1lbnRDb2RlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMjUzNCw4ICsyNTQwLDE0IEBACiAJCUUxMzRGMDE5MTJFQTVEOTkwMDRF
QzU4RCAvKiBXS1ByaW50aW5nVmlldy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFdLUHJpbnRpbmdWaWV3Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFMTNBOEEyQzE2Mjg3OUFDMDAzOTI5MjkgLyogU2hhcmVkV29ya2VyUHJvY2Vzcy5hcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHdyYXBwZXIuYXBw
bGljYXRpb247IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IFNoYXJlZFdvcmtlclByb2Nlc3Mu
YXBwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQlFMTNBOEE0QjE2Mjg3
QTFCMDAzOTI5MjkgLyogU2hhcmVkV29ya2VyUHJvY2Vzcy54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGgg
PSBTaGFyZWRXb3JrZXJQcm9jZXNzLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFMTRBOTU0NzE2RTAxNkE0MDA2OERFODIgLyogTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0
cmF0ZWdpZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTmV0d29y
a1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlFMTRBOTU0ODE2RTAxNkE0MDA2OERFODIgLyogTmV0d29ya1Byb2Nlc3NQbGF0Zm9y
bVN0cmF0ZWdpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTmV0d29ya1By
b2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUUxNTEzQzY0MTY2RUFCQjIwMDE0OUZDQiAvKiBDaGlsZFByb2Nlc3NQcm94eS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDaGlsZFByb2Nlc3NQcm94eS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxNTEzQzY1MTY2RUFCQjIwMDE0OUZDQiAvKiBD
aGlsZFByb2Nlc3NQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDaGls
ZFByb2Nlc3NQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMTcwODc2OTE2
RDZDQTY5MDBGOTkyMjYgLyogQmxvYlJlZ2lzdHJ5UHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gQmxvYlJlZ2lzdHJ5UHJveHkuY3BwOyBwYXRoID0gV2ViUHJv
Y2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3RyeVByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRTE3MDg3NkExNkQ2Q0E2OTAwRjk5MjI2IC8qIEJsb2JSZWdpc3RyeVByb3h5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEJsb2JSZWdpc3RyeVByb3h5Lmg7IHBh
dGggPSBXZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRTE3MDg3NkUxNkQ2Q0ZFNDAwRjk5MjI2IC8qIEJsb2JSZWdpc3Ry
YXRpb25EYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEJsb2JS
ZWdpc3RyYXRpb25EYXRhLmNwcDsgcGF0aCA9IEZpbGVBUEkvQmxvYlJlZ2lzdHJhdGlvbkRhdGEu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMTcwODc2RjE2RDZDRkU1MDBGOTky
MjYgLyogQmxvYlJlZ2lzdHJhdGlvbkRhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gQmxvYlJlZ2lzdHJhdGlvbkRhdGEuaDsgcGF0aCA9IEZpbGVBUEkvQmxvYlJlZ2lzdHJh
dGlvbkRhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE3OUZEOUIxMzREMzgw
NjAwMTVCODgzIC8qIEFyZ3VtZW50Q29kZXJzTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEFyZ3VtZW50Q29kZXJzTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUUxNzlGRDlFMTM0RDM4MjUwMDE1Qjg4MyAvKiBBcmd1bWVudENvZGVyc01hYy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFyZ3VtZW50Q29kZXJzTWFjLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTdBRTJDMTE2QjlDMTM5MDAxQzQyRjEg
LyogY29tLmFwcGxlLldlYktpdC5OZXR3b3JrUHJvY2Vzcy5zYi5pbiAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBjb20uYXBwbGUu
V2ViS2l0Lk5ldHdvcmtQcm9jZXNzLnNiLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMzA3NSw2ICszMDg3LDcgQEAKIAkJCQlCQzExMUI1RjExMkY2MzVFMDAzMzdCQUIgLyogQ29y
ZUlQQ1N1cHBvcnQgKi8sCiAJCQkJNTE4RThFRjIxNkIyMDhGODAwRTkxNDI5IC8qIERvd25sb2Fk
cyAqLywKIAkJCQlCQzgyODM2ODE2QjM1ODc5MDBBMjc4RkUgLyogRW50cnlQb2ludFV0aWxpdGll
cyAqLywKKwkJCQlFMTcwODc3MjE2RDZDRkVDMDBGOTkyMjYgLyogRmlsZUFQSSAqLywKIAkJCQlC
QzExMUI1QTExMkY2MjgyMDAzMzdCQUIgLyogbWFjICovLAogCQkJCTUxQThBNjBEMTYyN0YyQUMw
MDBEOTBFOSAvKiBOZXR3b3JrICovLAogCQkJCUJDQUYzNUU1MTZDQTI1M0IwMEQ0RTlGQyAvKiBP
ZmZsaW5lU3RvcmFnZSAqLywKQEAgLTM0NzEsNiArMzQ4NCw4IEBACiAJCQkJNTEzQTE2NEIxNjMw
QTlCRjAwNUQ3RDIyIC8qIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmlu
ICovLAogCQkJCTUxMENDN0RGMTYxMzhFMjkwMEQwM0VEMyAvKiBOZXR3b3JrUHJvY2Vzcy5jcHAg
Ki8sCiAJCQkJNTEwQ0M3RTAxNjEzOEUyOTAwRDAzRUQzIC8qIE5ldHdvcmtQcm9jZXNzLmggKi8s
CisJCQkJRTE0QTk1NDcxNkUwMTZBNDAwNjhERTgyIC8qIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1T
dHJhdGVnaWVzLmNwcCAqLywKKwkJCQlFMTRBOTU0ODE2RTAxNkE0MDA2OERFODIgLyogTmV0d29y
a1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaCAqLywKIAkJCQk1MUE4QTYxNzE2MjdGNUJCMDAw
RDkwRTkgLyogTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gKi8sCiAJCQkJNTFGRDE4QjMxNjUx
RkJBRDAwREJFMUNFIC8qIE5ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAgKi8sCiAJCQkJNTFGRDE4
QjQxNjUxRkJBRDAwREJFMUNFIC8qIE5ldHdvcmtSZXNvdXJjZUxvYWRlci5oICovLApAQCAtMzY4
Niw2ICszNzAxLDcgQEAKIAkJCQk1MTJFMzUyQTEzMEI1NTk5MDBBQkQxOUEgLyogQXBwbGljYXRp
b25DYWNoZSAqLywKIAkJCQkzMzA5MzQ0QjEzMTVCOTNBMDA5N0E3QkMgLyogQ29va2llcyAqLywK
IAkJCQlCQ0FDQzQzQjE2QjI0QzVEMDBCNkUwOTIgLyogRW50cnlQb2ludCAqLywKKwkJCQlFMTcw
ODc2RDE2RDZDQTcyMDBGOTkyMjYgLyogRmlsZUFQSSAqLywKIAkJCQlDRDczQkEzRDEzMUEyQTIx
MDBFRURFRDIgLyogRnVsbFNjcmVlbiAqLywKIAkJCQlCQzBFNUZDQjEyRDY5NkREMDAxMkE3MkEg
LyogR2VvbG9jYXRpb24gKi8sCiAJCQkJNTFGQkI5QzExMzJFMDc5MjAwRjMyN0I0IC8qIEljb25E
YXRhYmFzZSAqLywKQEAgLTQ5NzMsNiArNDk4OSwyNSBAQAogCQkJcGF0aCA9IFNoYXJlZFdvcmtl
clByb2Nlc3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQlFMTcwODc2RDE2
RDZDQTcyMDBGOTkyMjYgLyogRmlsZUFQSSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJ
Y2hpbGRyZW4gPSAoCisJCQkJRTE3MDg3NjkxNkQ2Q0E2OTAwRjk5MjI2IC8qIEJsb2JSZWdpc3Ry
eVByb3h5LmNwcCAqLywKKwkJCQlFMTcwODc2QTE2RDZDQTY5MDBGOTkyMjYgLyogQmxvYlJlZ2lz
dHJ5UHJveHkuaCAqLywKKwkJCSk7CisJCQluYW1lID0gRmlsZUFQSTsKKwkJCXBhdGggPSAuLjsK
KwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CisJCUUxNzA4NzcyMTZENkNGRUMwMEY5
OTIyNiAvKiBGaWxlQVBJICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9
ICgKKwkJCQlFMTcwODc2RTE2RDZDRkU0MDBGOTkyMjYgLyogQmxvYlJlZ2lzdHJhdGlvbkRhdGEu
Y3BwICovLAorCQkJCUUxNzA4NzZGMTZENkNGRTUwMEY5OTIyNiAvKiBCbG9iUmVnaXN0cmF0aW9u
RGF0YS5oICovLAorCQkJKTsKKwkJCW5hbWUgPSBGaWxlQVBJOworCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKKwkJfTsKIAkJRTE5OTg3NUIxNDJCRjlDRjAwQkIyREU3IC8qIFBERiAqLyA9IHsK
IAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC01NTY5LDYgKzU2MDQsOSBA
QAogCQkJCUJDNUQyNEMyMTZDRDcwNkQwMDdENTQ2MSAvKiBXS0RPTU5vZGVQcml2YXRlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzVEMjRDNTE2Q0Q3MDg4MDA3RDU0NjEgLyogV0tET01SYW5nZVBy
aXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNUQyNEM3MTZDRDczQzUwMDdENTQ2MSAvKiBX
S0J1bmRsZVJhbmdlSGFuZGxlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTE3MDg3NkMx
NkQ2Q0E2OTAwRjk5MjI2IC8qIEJsb2JSZWdpc3RyeVByb3h5LmggaW4gSGVhZGVycyAqLywKKwkJ
CQlFMTcwODc3MTE2RDZDRkU1MDBGOTkyMjYgLyogQmxvYlJlZ2lzdHJhdGlvbkRhdGEuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUUxNEE5NTRBMTZFMDE2QTQwMDY4REU4MiAvKiBOZXR3b3JrUHJvY2Vz
c1BsYXRmb3JtU3RyYXRlZ2llcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZv
ckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC02NzcxLDYgKzY4MDksOSBA
QAogCQkJCUJDQUYzNUU4MTZDQTI1M0IwMEQ0RTlGQyAvKiBPZmZsaW5lU3RvcmFnZVByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNBRjM2MjUxNkNBMjlB
MjAwRDRFOUZDIC8qIE9mZmxpbmVTdG9yYWdlUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk1MUE0RDVBOTE2Q0FDNEZGMDAwRTYxNUUgLyogU3RhdGlzdGljc1Jl
cXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTE3MDg3NkIxNkQ2Q0E2OTAwRjk5MjI2IC8q
IEJsb2JSZWdpc3RyeVByb3h5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUxNzA4NzcwMTZENkNG
RTUwMEY5OTIyNiAvKiBCbG9iUmVnaXN0cmF0aW9uRGF0YS5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlFMTRBOTU0OTE2RTAxNkE0MDA2OERFODIgLyogTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0
ZWdpZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQ
b3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5jcHAJKHJldmlzaW9uIDAp
CisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHku
Y3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkJsb2JSZWdpc3RyeVByb3h5LmgiCisKKyNpZiBFTkFCTEUo
QkxPQikgJiYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKworI2luY2x1ZGUgIkJsb2JSZWdpc3Ry
YXRpb25EYXRhLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgIk5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL0Jsb2JEYXRhLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitu
YW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBCbG9iUmVnaXN0cnlQcm94eTo6cmVnaXN0ZXJCbG9i
VVJMKGNvbnN0IEtVUkwmIHVybCwgUGFzc093blB0cjxCbG9iRGF0YT4gYmxvYkRhdGEpCit7Cisg
ICAgQVNTRVJUKFdlYlByb2Nlc3M6OnNoYXJlZCgpLnVzZXNOZXR3b3JrUHJvY2VzcygpKTsKKwor
ICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLm5ldHdvcmtDb25uZWN0aW9uKCktPmNvbm5lY3Rpb24o
KS0+c2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlJlZ2lzdGVy
QmxvYlVSTCh1cmwsIEJsb2JSZWdpc3RyYXRpb25EYXRhKGJsb2JEYXRhKSksIDApOworfQorCit2
b2lkIEJsb2JSZWdpc3RyeVByb3h5OjpyZWdpc3RlckJsb2JVUkwoY29uc3QgS1VSTCYgdXJsLCBj
b25zdCBLVVJMJiBzcmNVUkwpCit7CisgICAgQVNTRVJUKFdlYlByb2Nlc3M6OnNoYXJlZCgpLnVz
ZXNOZXR3b3JrUHJvY2VzcygpKTsKKworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLm5ldHdvcmtD
b25uZWN0aW9uKCktPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OlJlZ2lzdGVyQmxvYlVSTEZyb21VUkwodXJsLCBzcmNVUkwpLCAwKTsK
K30KKwordm9pZCBCbG9iUmVnaXN0cnlQcm94eTo6dW5yZWdpc3RlckJsb2JVUkwoY29uc3QgS1VS
TCYgdXJsKQoreworICAgIEFTU0VSVChXZWJQcm9jZXNzOjpzaGFyZWQoKS51c2VzTmV0d29ya1By
b2Nlc3MoKSk7CisKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5uZXR3b3JrQ29ubmVjdGlvbigp
LT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpVbnJlZ2lzdGVyQmxvYlVSTCh1cmwpLCAwKTsKK30KKworfQorCisjZW5kaWYgLy8gRU5B
QkxFKEJMT0IpICYmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCgpQcm9wZXJ0eSBjaGFuZ2VzIG9u
OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuY3Bw
Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBuYXRpdmUKCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJv
eHkuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRmlsZUFQSS9C
bG9iUmVnaXN0cnlQcm94eS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBCbG9iUmVnaXN0cnlQcm94eV9oCisjZGVmaW5lIEJsb2JSZWdpc3RyeVBy
b3h5X2gKKworI2lmIEVOQUJMRShCTE9CKSAmJiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorCisj
aW5jbHVkZSA8V2ViQ29yZS9CbG9iUmVnaXN0cnkuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K2NsYXNzIEJsb2JSZWdpc3RyeVByb3h5IDogcHVibGljIFdlYkNvcmU6OkJsb2JSZWdpc3RyeSB7
CitwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyQmxvYlVSTChjb25zdCBXZWJDb3Jl
OjpLVVJMJiwgUGFzc093blB0cjxXZWJDb3JlOjpCbG9iRGF0YT4pOworICAgIHZpcnR1YWwgdm9p
ZCByZWdpc3RlckJsb2JVUkwoY29uc3QgV2ViQ29yZTo6S1VSTCYsIGNvbnN0IFdlYkNvcmU6OktV
UkwmIHNyY1VSTCk7CisgICAgdmlydHVhbCB2b2lkIHVucmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFdl
YkNvcmU6OktVUkwmKTsKK307CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShCTE9CKSAmJiBFTkFC
TEUoTkVUV09SS19QUk9DRVNTKQorCisjZW5kaWYgLy8gQmxvYlJlZ2lzdHJ5UHJveHlfaAoKUHJv
cGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JS
ZWdpc3RyeVByb3h5LmgKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIG5hdGl2
ZQoKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxh
dGZvcm1TdHJhdGVnaWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAJKHJldmlzaW9uIDE0
NDQ2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxh
dGZvcm1TdHJhdGVnaWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTMsNiArNTMsNyBAQAogI2lu
Y2x1ZGUgPHd0Zi9BdG9taWNzLmg+CiAKICNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorI2lu
Y2x1ZGUgIkJsb2JSZWdpc3RyeVByb3h5LmgiCiAjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bi5oIgogI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oIgpAQCAtMjQ3LDYgKzI0
OCwxNSBAQCB2b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6bG9hZFJlc291cmNlCiAgICAgbWVt
Y3B5KGRhdGEuZGF0YSgpLCBkYXRhUmVmZXJlbmNlLmRhdGEoKSwgZGF0YVJlZmVyZW5jZS5zaXpl
KCkpOwogfQogCisjaWYgRU5BQkxFKEJMT0IpCitCbG9iUmVnaXN0cnkqIFdlYlBsYXRmb3JtU3Ry
YXRlZ2llczo6Y3JlYXRlQmxvYlJlZ2lzdHJ5KCkKK3sKKyAgICBpZiAoV2ViUHJvY2Vzczo6c2hh
cmVkKCkudXNlc05ldHdvcmtQcm9jZXNzKCkpCisgICAgICAgIHJldHVybiBuZXcgQmxvYlJlZ2lz
dHJ5UHJveHk7CisgICAgZWxzZQorICAgICAgICByZXR1cm4gTG9hZGVyU3RyYXRlZ3k6OmNyZWF0
ZUJsb2JSZWdpc3RyeSgpOworfQorI2VuZGlmCiAjZW5kaWYKIAogLy8gUGx1Z2luU3RyYXRlZ3kK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZv
cm1TdHJhdGVnaWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAkocmV2aXNpb24gMTQ0NDY5KQor
KysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMuaAkod29ya2luZyBjb3B5KQpAQCAtNzQsNiArNzQsOSBAQCBwcml2YXRlOgogI2lm
IEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAgICAgdmlydHVhbCBXZWJDb3JlOjpSZXNvdXJjZUxv
YWRTY2hlZHVsZXIqIHJlc291cmNlTG9hZFNjaGVkdWxlcigpIE9WRVJSSURFOwogICAgIHZpcnR1
YWwgdm9pZCBsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KFdlYkNvcmU6Ok5ldHdvcmtpbmdDb250
ZXh0KiwgdW5zaWduZWQgbG9uZyByZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFscywgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciYsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBWZWN0b3I8Y2hhcj4m
IGRhdGEpIE9WRVJSSURFOworI2lmIEVOQUJMRShCTE9CKQorICAgIHZpcnR1YWwgV2ViQ29yZTo6
QmxvYlJlZ2lzdHJ5KiBjcmVhdGVCbG9iUmVnaXN0cnkoKSBPVkVSUklERTsKKyNlbmRpZgogI2Vu
ZGlmCiAKICAgICAvLyBXZWJDb3JlOjpQbHVnaW5TdHJhdGVneQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190990</attachid>
            <date>2013-03-01 11:02:08 -0800</date>
            <delta_ts>2013-03-01 11:55:39 -0800</delta_ts>
            <desc>fix style too</desc>
            <filename>MemoryBlobs.txt</filename>
            <type>text/plain</type>
            <size>45913</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCShyZXZpc2lvbiAxNDQ0NjkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgkod29ya2luZyBjb3B5KQpAQCAtMzExLDcgKzMxMSw2IEBAIF9f
Wk43V2ViQ29yZTE0RnJhbWVTZWxlY3Rpb241Y2xlYXJFdgogX19aTjdXZWJDb3JlMTRGcmFtZVNl
bGVjdGlvbjZtb2RpZnlFTlMwXzExRUFsdGVyYXRpb25FTlNfMThTZWxlY3Rpb25EaXJlY3Rpb25F
TlNfMTVUZXh0R3JhbnVsYXJpdHlFTlNfMTRFVXNlclRyaWdnZXJlZEUKIF9fWk43V2ViQ29yZTE0
RnJhbWVTZWxlY3Rpb245c2VsZWN0QWxsRXYKIF9fWk43V2ViQ29yZTE0RnJhbWVTZWxlY3Rpb25D
MUVQTlNfNUZyYW1lRQotX19aTjdXZWJDb3JlMTRMb2FkZXJTdHJhdGVneTE4Y3JlYXRlQmxvYlJl
Z2lzdHJ5RXYKIF9fWk43V2ViQ29yZTE0TG9hZGVyU3RyYXRlZ3kyMXJlc291cmNlTG9hZFNjaGVk
dWxlckV2CiBfX1pON1dlYkNvcmUxNExvYWRlclN0cmF0ZWd5MjVsb2FkUmVzb3VyY2VTeW5jaHJv
bm91c2x5RVBOU18xN05ldHdvcmtpbmdDb250ZXh0RW1SS05TXzE1UmVzb3VyY2VSZXF1ZXN0RU5T
XzE3U3RvcmVkQ3JlZGVudGlhbHNFUk5TXzEzUmVzb3VyY2VFcnJvckVSTlNfMTZSZXNvdXJjZVJl
c3BvbnNlRVJOM1dURjZWZWN0b3JJY0xtMEVFRQogX19aTjdXZWJDb3JlMTRQbHVnaW5Eb2N1bWVu
dDEwcGx1Z2luTm9kZUV2CkBAIC0yMzA3LDYgKzIzMDYsMjEgQEAgX19aTjdXZWJDb3JlMTJTY2hl
ZHVsZVBhaXJDMUVQOU5TUnVuTG9vcAogX19aTjdXZWJDb3JlMTRSZXNvdXJjZUhhbmRsZTEycmVs
ZWFzZVByb3h5RXYKICNlbmRpZgogCisjaWYgRU5BQkxFKEJMT0IpCitfX1pON1dlYkNvcmUxMmJs
b2JSZWdpc3RyeUV2CitfX1pON1dlYkNvcmUxNExvYWRlclN0cmF0ZWd5MThjcmVhdGVCbG9iUmVn
aXN0cnlFdgorX19aTjdXZWJDb3JlN1Jhd0RhdGFDMUV2CitfX1pON1dlYkNvcmU4QmxvYkRhdGEx
MGFwcGVuZEJsb2JFUktOU180S1VSTEV4eAorX19aTjdXZWJDb3JlOEJsb2JEYXRhMTBhcHBlbmRE
YXRhRU4zV1RGMTBQYXNzUmVmUHRySU5TXzdSYXdEYXRhRUVFeHgKK19fWk43V2ViQ29yZThCbG9i
RGF0YTEwYXBwZW5kRmlsZUVSS04zV1RGNlN0cmluZ0V4eGQKK19fWk43V2ViQ29yZThCbG9iRGF0
YTZjcmVhdGVFdgorX19aTjdXZWJDb3JlMTJCbG9iRGF0YUl0ZW0xMXRvRW5kT2ZGaWxlRQorX19a
TjdXZWJDb3JlMTJCbG9iUmVnaXN0cnlDMkV2CitfX1pON1dlYkNvcmUxMkJsb2JSZWdpc3RyeUQy
RXYKK19fWlRWTjdXZWJDb3JlMTJCbG9iUmVnaXN0cnlFCitfX1pUVk43V2ViQ29yZTE2QmxvYlJl
Z2lzdHJ5SW1wbEUKKyNlbmRpZgorCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiBfX1pON1dl
YkNvcmUxMUNvbnRleHRNZW51MjJzZXRQbGF0Zm9ybURlc2NyaXB0aW9uRVAxNE5TTXV0YWJsZUFy
cmF5CiBfX1pON1dlYkNvcmUxMkV2ZW50SGFuZGxlcjIwc2VuZENvbnRleHRNZW51RXZlbnRFUktO
U18xOFBsYXRmb3JtTW91c2VFdmVudEUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE0NDQ2OSkKKysrIFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5
KQpAQCAtODcxLDExICs4NzEsMTEgQEAKIAkJMkVENjA5QkMxMTQ1QjA3MTAwQzg2ODRFIC8qIERP
TUZvcm1EYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDJFRDYwOUJBMTE0NUIwNzEwMEM4Njg0RSAvKiBET01Gb3JtRGF0YS5jcHAgKi87IH07CiAJ
CTJFRDYwOUJEMTE0NUIwNzEwMEM4Njg0RSAvKiBET01Gb3JtRGF0YS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVENjA5QkIxMTQ1QjA3MTAwQzg2ODRF
IC8qIERPTUZvcm1EYXRhLmggKi87IH07CiAJCTJFREVGMUYzMTIxQjBFRkMwMDcyNkRCMiAvKiBC
bG9iRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyRURFRjFFRDEyMUIwRUZDMDA3MjZEQjIgLyogQmxvYkRhdGEuY3BwICovOyB9OwotCQkyRURF
RjFGNDEyMUIwRUZDMDA3MjZEQjIgLyogQmxvYkRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFREVGMUVFMTIxQjBFRkMwMDcyNkRCMiAvKiBCbG9i
RGF0YS5oICovOyB9OwotCQkyRURFRjFGNTEyMUIwRUZDMDA3MjZEQjIgLyogQmxvYlJlZ2lzdHJ5
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRURFRjFF
RjEyMUIwRUZDMDA3MjZEQjIgLyogQmxvYlJlZ2lzdHJ5LmggKi87IH07CisJCTJFREVGMUY0MTIx
QjBFRkMwMDcyNkRCMiAvKiBCbG9iRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMkVERUYxRUUxMjFCMEVGQzAwNzI2REIyIC8qIEJsb2JEYXRhLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMkVERUYx
RjUxMjFCMEVGQzAwNzI2REIyIC8qIEJsb2JSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVERUYxRUYxMjFCMEVGQzAwNzI2REIyIC8qIEJs
b2JSZWdpc3RyeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTJFREVGMUY2MTIxQjBFRkMwMDcyNkRCMiAvKiBCbG9iUmVnaXN0cnlJbXBsLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFREVGMUYwMTIx
QjBFRkMwMDcyNkRCMiAvKiBCbG9iUmVnaXN0cnlJbXBsLmNwcCAqLzsgfTsKLQkJMkVERUYxRjcx
MjFCMEVGQzAwNzI2REIyIC8qIEJsb2JSZWdpc3RyeUltcGwuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFREVGMUYxMTIxQjBFRkMwMDcyNkRCMiAvKiBC
bG9iUmVnaXN0cnlJbXBsLmggKi87IH07Ci0JCTJFREVGMUY4MTIxQjBFRkMwMDcyNkRCMiAvKiBC
bG9iU3RvcmFnZURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDJFREVGMUYyMTIxQjBFRkMwMDcyNkRCMiAvKiBCbG9iU3RvcmFnZURhdGEuaCAqLzsg
fTsKKwkJMkVERUYxRjcxMjFCMEVGQzAwNzI2REIyIC8qIEJsb2JSZWdpc3RyeUltcGwuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFREVGMUYxMTIxQjBF
RkMwMDcyNkRCMiAvKiBCbG9iUmVnaXN0cnlJbXBsLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMkVERUYxRjgxMjFCMEVGQzAwNzI2REIyIC8qIEJs
b2JTdG9yYWdlRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkVERUYxRjIxMjFCMEVGQzAwNzI2REIyIC8qIEJsb2JTdG9yYWdlRGF0YS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTJFREYzNjlDMTIy
Qzk0QjQwMDJGN0Q0RSAvKiBGaWxlUmVhZGVyU3luYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRURGMzY5QTEyMkM5NEI0MDAyRjdENEUgLyogRmls
ZVJlYWRlclN5bmMuY3BwICovOyB9OwogCQkyRURGMzY5RDEyMkM5NEI0MDAyRjdENEUgLyogRmls
ZVJlYWRlclN5bmMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDJFREYzNjlCMTIyQzk0QjQwMDJGN0Q0RSAvKiBGaWxlUmVhZGVyU3luYy5oICovOyB9Owog
CQkyRURGMzY5RjEyMkM5NEM4MDAyRjdENEUgLyogRmlsZUV4Y2VwdGlvbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVERjM2OUUxMjJDOTRDODAwMkY3
RDRFIC8qIEZpbGVFeGNlcHRpb24uaCAqLzsgfTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0
NDQ2OSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDQ2IEBACisyMDEzLTAyLTI4ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29t
PgorCisgICAgICAgIE1ha2UgaW4tbWVtb3J5IGJsb2JzIHdvcmsgaW4gTmV0d29ya1Byb2Nlc3MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMTEzMgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVnaXN0ZXJCbG9iVVJMKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlZ2lzdGVyQmxv
YlVSTEZyb21VUkwpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6dW5yZWdpc3RlckJsb2JVUkwpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgIEltcGxlbWVudCBCbG9iUmVnaXN0
cnkgaW50ZXJmYWNlIGJ5IHVzaW5nIEJsb2JSZWdpc3RyeUltcGwgKHNhbWUgb25lIGFzIHVzZWQg
aW4KKyAgICAgICAgV2ViUHJvY2VzcyBpbiBub24tUFBUIG1vZGUpLgorCisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46IEFk
ZGVkIHRocmVlIG1lc3NhZ2VzCisgICAgICAgIG5lZWRlZCBmb3IgQmxvYlJlZ2lzdHJ5LgorCisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDogQWRkZWQu
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdp
ZXMuaDogQWRkZWQuCisgICAgICAgIEFkZGVkIGEgbW9zdGx5IGVtcHR5IHBsYXRmb3JtIHN0cmF0
ZWd5LCBqdXN0IGZvciBGb3JtRGF0YSB0byB0YWxrIHRvIEJsb2JSZWdpc3RyeS4KKyAgICAgICAg
UGVyaGFwcyB3ZSdsbCBmaW5kIGEgd2F5IHRvIGF2b2lkIHRoaXMgV2ViQ29yZSBjb2RlIHBhdGgg
aW4gTmV0d29ya1Byb2Nlc3MsIGJlY2F1c2UKKyAgICAgICAgd2Ugb2J2aW91c2x5IGtub3cgd2hp
Y2ggcmVnaXN0cnkgaW1wbGVtZW50YXRpb24gaXMgaW4gdXNlIGluIHRoaXMgcHJvY2Vzcy4KKwor
ICAgICAgICAqIFNoYXJlZC9GaWxlQVBJOiBBZGRlZC4KKyAgICAgICAgKiBTaGFyZWQvRmlsZUFQ
SS9CbG9iUmVnaXN0cmF0aW9uRGF0YS5jcHA6IEFkZGVkLgorICAgICAgICAqIFNoYXJlZC9GaWxl
QVBJL0Jsb2JSZWdpc3RyYXRpb25EYXRhLmg6IEFkZGVkLgorICAgICAgICBBZGRlZCBhIGNsYXNz
IGZvciBwYXNzaW5nIEJsb2JEYXRhIGFuZCBleHRlbnNpb24gaGFuZGxlcyBvdmVyIElQQy4KKyAg
ICAgICAgVGhpcyB1c2VzIGEgdHJpY2sgd2l0aCBtdXRhYmxlIGEgbWVtYmVyIHRvIGF2b2lkIGNv
cHlpbmcgZGVjb2RlZCBCbG9iU3RvcmFnZURhdGEuCisKKyAgICAgICAgKiBXZWJLaXQyLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9GaWxlQVBJOiBBZGRl
ZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuaDog
QWRkZWQuCisgICAgICAgIEEgcHJveHkgaW1wbGVtZW50YXRpb24gb2YgQmxvYlJlZ2lzdHJ5IHRo
YXQganVzdCBzZW5kcyByZXF1ZXN0cyBvdmVyIElQQy4gV2Ugb25seQorICAgICAgICBuZWVkIGFz
eW5jIG9uZXMuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtU3RyYXRlZ2ll
czo6Y3JlYXRlQmxvYlJlZ2lzdHJ5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oOgorICAgICAgICBDcmVhdGUgYW4gYXBwcm9wcmlh
dGUgQmxvYlJlZ2lzdHJ5LgorCiAyMDEzLTAzLTAxICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZp
ZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTQ0
NDIyIGFuZCByMTQ0NDI0LgpJbmRleDogU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAkocmV2
aXNpb24gMTQ0NDY5KQorKysgU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwxMiArMjYsMTUg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5oIgogCisjaW5jbHVkZSAiQmxvYlJlZ2lzdHJhdGlvbkRhdGEuaCIKICNpbmNsdWRl
ICJDb25uZWN0aW9uU3RhY2suaCIKICNpbmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3MuaCIKICNpbmNsdWRlICJO
ZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJSZW1vdGVOZXR3b3JraW5nQ29udGV4
dC5oIgogI2luY2x1ZGUgIlN5bmNOZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlIDxX
ZWJDb3JlL0Jsb2JEYXRhLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9CbG9iUmVnaXN0cnkuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtQ29va2llSmFyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9S
ZXNvdXJjZUxvYWRlck9wdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVz
dC5oPgpAQCAtMTc3LDYgKzE4MCwyMyBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpkZWxlCiAgICAgV2ViQ29yZTo6ZGVsZXRlQ29va2llKHN0b3JhZ2VTZXNzaW9uKHByaXZh
dGVCcm93c2luZ0VuYWJsZWQpLCB1cmwsIGNvb2tpZU5hbWUpOwogfQogCit2b2lkIE5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZWdpc3RlckJsb2JVUkwoY29uc3QgS1VSTCYgdXJsLCBj
b25zdCBCbG9iUmVnaXN0cmF0aW9uRGF0YSYgZGF0YSkKK3sKKyAgICAvLyBGSVhNRTogVHJhY2sg
c2FuZGJveCBleHRlbnNpb25zLgorICAgIC8vIEZJWE1FOiB1bnJlZ2lzdGVyIGFsbCBVUkxzIHdo
ZW4gcHJvY2VzcyBjb25uZWN0aW9uIGNsb3Nlcy4KKyAgICBibG9iUmVnaXN0cnkoKS5yZWdpc3Rl
ckJsb2JVUkwodXJsLCBkYXRhLnJlbGVhc2VEYXRhKCkpOworfQorCit2b2lkIE5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpyZWdpc3RlckJsb2JVUkxGcm9tVVJMKGNvbnN0IEtVUkwmIHVy
bCwgY29uc3QgS1VSTCYgc3JjVVJMKQoreworICAgIGJsb2JSZWdpc3RyeSgpLnJlZ2lzdGVyQmxv
YlVSTCh1cmwsIHNyY1VSTCk7Cit9CisKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OnVucmVnaXN0ZXJCbG9iVVJMKGNvbnN0IEtVUkwmIHVybCkKK3sKKyAgICBibG9iUmVnaXN0
cnkoKS51bnJlZ2lzdGVyQmxvYlVSTCh1cmwpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
IAogI2VuZGlmIC8vIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmgJKHJldmlzaW9uIDE0NDQ2OSkKKysrIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTQxLDYgKzQxLDcgQEAgY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAorY2xhc3MgQmxvYlJlZ2lzdHJhdGlvbkRhdGE7CiBjbGFzcyBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2VzczsKIGNsYXNzIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjsKIGNsYXNzIFN5bmNO
ZXR3b3JrUmVzb3VyY2VMb2FkZXI7CkBAIC04Myw2ICs4NCwxMCBAQCBwcml2YXRlOgogICAgIHZv
aWQgZ2V0UmF3Q29va2llcyhib29sIHByaXZhdGVCcm93c2luZ0VuYWJsZWQsIGNvbnN0IFdlYkNv
cmU6OktVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OktVUkwmLCBWZWN0b3I8V2ViQ29y
ZTo6Q29va2llPiYpOwogICAgIHZvaWQgZGVsZXRlQ29va2llKGJvb2wgcHJpdmF0ZUJyb3dzaW5n
RW5hYmxlZCwgY29uc3QgV2ViQ29yZTo6S1VSTCYsIGNvbnN0IFN0cmluZyYgY29va2llTmFtZSk7
CiAKKyAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTChjb25zdCBXZWJDb3JlOjpLVVJMJiwgY29uc3Qg
QmxvYlJlZ2lzdHJhdGlvbkRhdGEmKTsKKyAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTEZyb21VUkwo
Y29uc3QgV2ViQ29yZTo6S1VSTCYsIGNvbnN0IFdlYkNvcmU6OktVUkwmIHNyY1VSTCk7CisgICAg
dm9pZCB1bnJlZ2lzdGVyQmxvYlVSTChjb25zdCBXZWJDb3JlOjpLVVJMJik7CisKICAgICBSZWZQ
dHI8Q29yZUlQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogCiAgICAgSGFzaE1hcDxSZXNv
dXJjZUxvYWRJZGVudGlmaWVyLCBSZWZQdHI8TmV0d29ya1Jlc291cmNlTG9hZGVyPiA+IG1fbmV0
d29ya1Jlc291cmNlTG9hZGVyczsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLm1lc3NhZ2VzLmluCShyZXZpc2lvbiAxNDQ0NjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgkod29y
a2luZyBjb3B5KQpAQCAtNDAsNiArNDAsMTAgQEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2NlcwogICAgIENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGJvb2wgcHJp
dmF0ZUJyb3dzaW5nRW5hYmxlZCwgV2ViQ29yZTo6S1VSTCBmaXJzdFBhcnR5LCBXZWJDb3JlOjpL
VVJMIHVybCkgLT4gKFdURjo6U3RyaW5nIHJlc3VsdCkKICAgICBHZXRSYXdDb29raWVzKGJvb2wg
cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCwgV2ViQ29yZTo6S1VSTCBmaXJzdFBhcnR5LCBXZWJDb3Jl
OjpLVVJMIHVybCkgLT4gKFdURjo6VmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gY29va2llcykKICAg
ICBEZWxldGVDb29raWUoYm9vbCBwcml2YXRlQnJvd3NpbmdFbmFibGVkLCBXZWJDb3JlOjpLVVJM
IHVybCwgV1RGOjpTdHJpbmcgY29va2llTmFtZSkKKworICAgIFJlZ2lzdGVyQmxvYlVSTChXZWJD
b3JlOjpLVVJMIHVybCwgV2ViS2l0OjpCbG9iUmVnaXN0cmF0aW9uRGF0YSBkYXRhKQorICAgIFJl
Z2lzdGVyQmxvYlVSTEZyb21VUkwoV2ViQ29yZTo6S1VSTCB1cmwsIFdlYkNvcmU6OktVUkwgc3Jj
VVJMKQorICAgIFVucmVnaXN0ZXJCbG9iVVJMKFdlYkNvcmU6OktVUkwgdXJsKQogfQogCiAjZW5k
aWYgLy8gRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAJKHJldmlzaW9uIDE0NDQ2OSkKKysr
IFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRl
ICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NQbGF0Zm9y
bVN0cmF0ZWdpZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIK
ICNpbmNsdWRlICJSZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlN0YXRpc3Rp
Y3NEYXRhLmgiCkBAIC02Myw2ICs2NCw4IEBAIE5ldHdvcmtQcm9jZXNzOjpOZXR3b3JrUHJvY2Vz
cygpCiAgICAgOiBtX2hhc1NldENhY2hlTW9kZWwoZmFsc2UpCiAgICAgLCBtX2NhY2hlTW9kZWwo
Q2FjaGVNb2RlbERvY3VtZW50Vmlld2VyKQogeworICAgIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1T
dHJhdGVnaWVzOjppbml0aWFsaXplKCk7CisKICAgICBhZGRTdXBwbGVtZW50PEF1dGhlbnRpY2F0
aW9uTWFuYWdlcj4oKTsKICAgICBhZGRTdXBwbGVtZW50PFdlYkNvb2tpZU1hbmFnZXI+KCk7CiAg
ICAgYWRkU3VwcGxlbWVudDxDdXN0b21Qcm90b2NvbE1hbmFnZXI+KCk7CkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEwMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oIgorCisj
aW5jbHVkZSA8V2ViQ29yZS9CbG9iUmVnaXN0cnlJbXBsLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBOZXR3b3JrUHJvY2Vzc1BsYXRm
b3JtU3RyYXRlZ2llczo6aW5pdGlhbGl6ZSgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChO
ZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcywgcGxhdGZvcm1TdHJhdGVnaWVzLCAoKSk7
CisgICAgc2V0UGxhdGZvcm1TdHJhdGVnaWVzKCZwbGF0Zm9ybVN0cmF0ZWdpZXMpOworfQorCitD
b29raWVzU3RyYXRlZ3kqIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVD
b29raWVzU3RyYXRlZ3koKQoreworICAgIHJldHVybiAwOworfQorCitEYXRhYmFzZVN0cmF0ZWd5
KiBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlRGF0YWJhc2VTdHJhdGVn
eSgpCit7CisgICAgcmV0dXJuIDA7Cit9CisKK0xvYWRlclN0cmF0ZWd5KiBOZXR3b3JrUHJvY2Vz
c1BsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlTG9hZGVyU3RyYXRlZ3koKQoreworICAgIHJldHVy
biB0aGlzOworfQorCitQYXN0ZWJvYXJkU3RyYXRlZ3kqIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1T
dHJhdGVnaWVzOjpjcmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3koKQoreworICAgIHJldHVybiAwOwor
fQorCitQbHVnaW5TdHJhdGVneSogTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNy
ZWF0ZVBsdWdpblN0cmF0ZWd5KCkKK3sKKyAgICByZXR1cm4gMDsKK30KKworU2hhcmVkV29ya2Vy
U3RyYXRlZ3kqIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVTaGFyZWRX
b3JrZXJTdHJhdGVneSgpCit7CisgICAgcmV0dXJuIDA7Cit9CisKK1N0b3JhZ2VTdHJhdGVneSog
TmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZVN0b3JhZ2VTdHJhdGVneSgp
Cit7CisgICAgcmV0dXJuIDA7Cit9CisKK1Zpc2l0ZWRMaW5rU3RyYXRlZ3kqIE5ldHdvcmtQcm9j
ZXNzUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVWaXNpdGVkTGlua1N0cmF0ZWd5KCkKK3sKKyAg
ICByZXR1cm4gMDsKK30KKworUmVzb3VyY2VMb2FkU2NoZWR1bGVyKiBOZXR3b3JrUHJvY2Vzc1Bs
YXRmb3JtU3RyYXRlZ2llczo6cmVzb3VyY2VMb2FkU2NoZWR1bGVyKCkKK3sKKyAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gMDsKK30KKwordm9pZCBOZXR3b3JrUHJvY2Vzc1Bs
YXRmb3JtU3RyYXRlZ2llczo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29u
dGV4dCosIHVuc2lnbmVkIGxvbmcgcmVzb3VyY2VMb2FkSWRlbnRpZmllciwgY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiwgU3RvcmVkQ3JlZGVudGlhbHMsIFJlc291cmNlRXJyb3ImLCBSZXNvdXJjZVJl
c3BvbnNlJiwgVmVjdG9yPGNoYXI+JiBkYXRhKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworfQorCisjaWYgRU5BQkxFKEJMT0IpCitCbG9iUmVnaXN0cnkqIE5ldHdvcmtQcm9jZXNzUGxh
dGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVCbG9iUmVnaXN0cnkoKQoreworICAgIHJldHVybiBuZXcg
QmxvYlJlZ2lzdHJ5SW1wbDsKK30KKworI2VuZGlmCisKKworfQoKUHJvcGVydHkgY2hhbmdlcyBv
bjogU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0
cmF0ZWdpZXMuY3BwCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBuYXRpdmUK
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRm
b3JtU3RyYXRlZ2llcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmgJKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRl
Z2llcy5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llc19oCisjZGVmaW5lIE5ldHdvcmtQcm9j
ZXNzUGxhdGZvcm1TdHJhdGVnaWVzX2gKKworI2luY2x1ZGUgPFdlYkNvcmUvTG9hZGVyU3RyYXRl
Z3kuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtU3RyYXRlZ2llcy5oPgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMgOiBw
dWJsaWMgV2ViQ29yZTo6UGxhdGZvcm1TdHJhdGVnaWVzLCBwcml2YXRlIFdlYkNvcmU6OkxvYWRl
clN0cmF0ZWd5IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXplKCk7CisgICAg
Citwcml2YXRlOgorICAgIC8vIFdlYkNvcmU6OlBsYXRmb3JtU3RyYXRlZ2llcworICAgIHZpcnR1
YWwgV2ViQ29yZTo6Q29va2llc1N0cmF0ZWd5KiBjcmVhdGVDb29raWVzU3RyYXRlZ3koKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkRhdGFiYXNlU3RyYXRlZ3kqIGNyZWF0ZURhdGFi
YXNlU3RyYXRlZ3koKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkxvYWRlclN0cmF0
ZWd5KiBjcmVhdGVMb2FkZXJTdHJhdGVneSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgV2ViQ29y
ZTo6UGFzdGVib2FyZFN0cmF0ZWd5KiBjcmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3koKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlBsdWdpblN0cmF0ZWd5KiBjcmVhdGVQbHVnaW5TdHJh
dGVneSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgV2ViQ29yZTo6U2hhcmVkV29ya2VyU3RyYXRl
Z3kqIGNyZWF0ZVNoYXJlZFdvcmtlclN0cmF0ZWd5KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBX
ZWJDb3JlOjpTdG9yYWdlU3RyYXRlZ3kqIGNyZWF0ZVN0b3JhZ2VTdHJhdGVneSgpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgV2ViQ29yZTo6VmlzaXRlZExpbmtTdHJhdGVneSogY3JlYXRlVmlzaXRl
ZExpbmtTdHJhdGVneSgpIE9WRVJSSURFOworCisgICAgLy8gV2ViQ29yZTo6TG9hZGVyU3RyYXRl
Z3kKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlJlc291cmNlTG9hZFNjaGVkdWxlciogcmVzb3VyY2VM
b2FkU2NoZWR1bGVyKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGxvYWRSZXNvdXJjZVN5
bmNocm9ub3VzbHkoV2ViQ29yZTo6TmV0d29ya2luZ0NvbnRleHQqLCB1bnNpZ25lZCBsb25nIHJl
c291cmNlTG9hZElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdl
YkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSYsIFZlY3RvcjxjaGFyPiYgZGF0YSkgT1ZFUlJJREU7CisjaWYg
RU5BQkxFKEJMT0IpCisgICAgdmlydHVhbCBXZWJDb3JlOjpCbG9iUmVnaXN0cnkqIGNyZWF0ZUJs
b2JSZWdpc3RyeSgpIE9WRVJSSURFOworI2VuZGlmCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworCisjZW5kaWYgLy8gTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXNfaAoKUHJv
cGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxl
CiAgICsgbmF0aXZlCgpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0ZpbGVBUEkvQmxvYlJl
Z2lzdHJhdGlvbkRhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9G
aWxlQVBJL0Jsb2JSZWdpc3RyYXRpb25EYXRhLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9GaWxlQVBJL0Jsb2JSZWdpc3RyYXRpb25EYXRhLmNwcAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwxODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiQmxvYlJlZ2lzdHJhdGlvbkRhdGEuaCIKKworI2lmIEVOQUJMRShCTE9CKSAmJiBF
TkFCTEUoTkVUV09SS19QUk9DRVNTKQorCisjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKKyNp
bmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9CbG9iRGF0YS5oPgorCit1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK0Jsb2JSZWdpc3RyYXRpb25EYXRhOjpCbG9i
UmVnaXN0cmF0aW9uRGF0YSgpCit7Cit9CisKK0Jsb2JSZWdpc3RyYXRpb25EYXRhOjpCbG9iUmVn
aXN0cmF0aW9uRGF0YShQYXNzT3duUHRyPEJsb2JEYXRhPiBkYXRhKQorICAgIDogbV9kYXRhKGRh
dGEpCit7CisgICAgY29uc3QgQmxvYkRhdGFJdGVtTGlzdCYgaXRlbXMgPSBtX2RhdGEtPml0ZW1z
KCk7CisgICAgc2l6ZV90IGZpbGVDb3VudCA9IDA7CisgICAgZm9yIChzaXplX3QgaSA9IDAsIGNv
dW50ID0gaXRlbXMuc2l6ZSgpOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICBpZiAoaXRlbXNb
aV0udHlwZSA9PSBCbG9iRGF0YUl0ZW06OkZpbGUpCisgICAgICAgICAgICArK2ZpbGVDb3VudDsK
KyAgICB9CisKKyAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSBzYW5kYm94RXh0ZW5z
aW9uczsKKyAgICBzYW5kYm94RXh0ZW5zaW9ucy5hbGxvY2F0ZShmaWxlQ291bnQpOworICAgIHNp
emVfdCBleHRlbnNpb25JbmRleCA9IDA7CisgICAgZm9yIChzaXplX3QgaSA9IDAsIGNvdW50ID0g
aXRlbXMuc2l6ZSgpOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICBjb25zdCBCbG9iRGF0YUl0
ZW0mIGl0ZW0gPSBpdGVtc1tpXTsKKyAgICAgICAgaWYgKGl0ZW0udHlwZSA9PSBCbG9iRGF0YUl0
ZW06OkZpbGUpCisgICAgICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGUoaXRl
bS5wYXRoLCBTYW5kYm94RXh0ZW5zaW9uOjpSZWFkT25seSwgc2FuZGJveEV4dGVuc2lvbnNbZXh0
ZW5zaW9uSW5kZXgrK10pOworICAgIH0KK30KKworQmxvYlJlZ2lzdHJhdGlvbkRhdGE6On5CbG9i
UmVnaXN0cmF0aW9uRGF0YSgpCit7Cit9CisKK1Bhc3NPd25QdHI8QmxvYkRhdGE+IEJsb2JSZWdp
c3RyYXRpb25EYXRhOjpyZWxlYXNlRGF0YSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZGF0YS5y
ZWxlYXNlKCk7Cit9CisKK3ZvaWQgQmxvYlJlZ2lzdHJhdGlvbkRhdGE6OmVuY29kZShDb3JlSVBD
OjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBtX2Rh
dGEtPmNvbnRlbnRUeXBlKCk7CisgICAgZW5jb2RlciA8PCBtX2RhdGEtPmNvbnRlbnREaXNwb3Np
dGlvbigpOworCisgICAgY29uc3QgQmxvYkRhdGFJdGVtTGlzdCYgaXRlbXMgPSBtX2RhdGEtPml0
ZW1zKCk7CisgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oaXRlbXMuc2l6ZSgp
KTsKKyAgICBmb3IgKHNpemVfdCBpID0gMCwgY291bnQgPSBpdGVtcy5zaXplKCk7IGkgPCBjb3Vu
dDsgKytpKSB7CisgICAgICAgIGNvbnN0IEJsb2JEYXRhSXRlbSYgaXRlbSA9IGl0ZW1zW2ldOwor
ICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQzMl90PihpdGVtLnR5cGUpOworICAg
ICAgICBzd2l0Y2ggKGl0ZW0udHlwZSkgeworICAgICAgICBjYXNlIEJsb2JEYXRhSXRlbTo6RGF0
YToKKyAgICAgICAgICAgIC8vIFRoZXJlIGlzIG5vIHdheSB0byBjcmVhdGUgYSBwYXJ0aWFsIGRh
dGEgaXRlbS4KKyAgICAgICAgICAgIEFTU0VSVCghaXRlbS5vZmZzZXQpOworICAgICAgICAgICAg
QVNTRVJUKGl0ZW0ubGVuZ3RoID09IEJsb2JEYXRhSXRlbTo6dG9FbmRPZkZpbGUpOworICAgICAg
ICAgICAgZW5jb2RlciA8PCBDb3JlSVBDOjpEYXRhUmVmZXJlbmNlKHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgdWludDhfdCo+KGl0ZW0uZGF0YS0+ZGF0YSgpKSwgaXRlbS5kYXRhLT5sZW5ndGgoKSk7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBCbG9iRGF0YUl0ZW06OkZpbGU6Cisg
ICAgICAgICAgICBlbmNvZGVyIDw8IGl0ZW0ub2Zmc2V0OworICAgICAgICAgICAgZW5jb2RlciA8
PCBpdGVtLmxlbmd0aDsKKyAgICAgICAgICAgIGVuY29kZXIgPDwgaXRlbS5leHBlY3RlZE1vZGlm
aWNhdGlvblRpbWU7CisgICAgICAgICAgICBlbmNvZGVyIDw8IGl0ZW0ucGF0aDsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIEJsb2JEYXRhSXRlbTo6QmxvYjoKKyAgICAgICAgICAg
IGVuY29kZXIgPDwgaXRlbS5vZmZzZXQ7CisgICAgICAgICAgICBlbmNvZGVyIDw8IGl0ZW0ubGVu
Z3RoOworICAgICAgICAgICAgZW5jb2RlciA8PCBpdGVtLnVybDsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisgICAgfQorCisgICAgZW5jb2RlciA8PCBtX3NhbmRib3hFeHRlbnNpb25z
OworfQorCitib29sIEJsb2JSZWdpc3RyYXRpb25EYXRhOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyJiBkZWNvZGVyLCBCbG9iUmVnaXN0cmF0aW9uRGF0YSYgcmVzdWx0KQoreworICAg
IEFTU0VSVCghcmVzdWx0Lm1fZGF0YSk7CisgICAgcmVzdWx0Lm1fZGF0YSA9IEJsb2JEYXRhOjpj
cmVhdGUoKTsKKworICAgIFN0cmluZyBjb250ZW50VHlwZTsKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKGNvbnRlbnRUeXBlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJlc3VsdC5tX2Rh
dGEtPnNldENvbnRlbnRUeXBlKGNvbnRlbnRUeXBlKTsKKworICAgIFN0cmluZyBjb250ZW50RGlz
cG9zaXRpb247CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjb250ZW50RGlzcG9zaXRpb24pKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmVzdWx0Lm1fZGF0YS0+c2V0Q29udGVudERpc3Bv
c2l0aW9uKGNvbnRlbnREaXNwb3NpdGlvbik7CisKKyAgICB1aW50NjRfdCBpdGVtQ291bnQ7Cisg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShpdGVtQ291bnQpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICBmb3IgKHVpbnQ2NF90IGkgPSAwOyBpIDwgaXRlbUNvdW50OyArK2kpIHsKKyAgICAg
ICAgdWludDMyX3QgdHlwZTsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0eXBlKSkKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAg
IGNhc2UgQmxvYkRhdGFJdGVtOjpEYXRhOiB7CisgICAgICAgICAgICBDb3JlSVBDOjpEYXRhUmVm
ZXJlbmNlIGRhdGE7CisgICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGRhdGEpKQorICAg
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIFJlZlB0cjxSYXdEYXRhPiBy
YXdEYXRhID0gUmF3RGF0YTo6Y3JlYXRlKCk7CisgICAgICAgICAgICByYXdEYXRhLT5tdXRhYmxl
RGF0YSgpLT5hcHBlbmQoZGF0YS5kYXRhKCksIGRhdGEuc2l6ZSgpKTsKKyAgICAgICAgICAgIHJl
c3VsdC5tX2RhdGEtPmFwcGVuZERhdGEocmF3RGF0YS5yZWxlYXNlKCksIDAsIEJsb2JEYXRhSXRl
bTo6dG9FbmRPZkZpbGUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAg
Y2FzZSBCbG9iRGF0YUl0ZW06OkZpbGU6IHsKKyAgICAgICAgICAgIGxvbmcgbG9uZyBvZmZzZXQ7
CisgICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG9mZnNldCkpCisgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgbG9uZyBsb25nIGxlbmd0aDsKKyAgICAgICAg
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUobGVuZ3RoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgICAgICBkb3VibGUgZXhwZWN0ZWRNb2RpZmljYXRpb25UaW1lOworICAg
ICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShleHBlY3RlZE1vZGlmaWNhdGlvblRpbWUpKQor
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIFN0cmluZyBwYXRoOwor
ICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXRoKSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgICAgICByZXN1bHQubV9kYXRhLT5hcHBlbmRGaWxlKHBhdGgs
IG9mZnNldCwgbGVuZ3RoLCBleHBlY3RlZE1vZGlmaWNhdGlvblRpbWUpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBCbG9iRGF0YUl0ZW06OkJsb2I6IHsKKyAg
ICAgICAgICAgIGxvbmcgbG9uZyBvZmZzZXQ7CisgICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKG9mZnNldCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAg
bG9uZyBsb25nIGxlbmd0aDsKKyAgICAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUobGVuZ3Ro
KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBTdHJpbmcgdXJs
OworICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh1cmwpKQorICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIHJlc3VsdC5tX2RhdGEtPmFwcGVuZEJsb2IoS1VS
TChLVVJMKCksIHVybCksIG9mZnNldCwgbGVuZ3RoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICB9CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIH0KKyAgICB9CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX3NhbmRib3hF
eHRlbnNpb25zKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9
CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShCTE9CKSAmJiBFTkFCTEUoTkVUV09SS19QUk9DRVNT
KQoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYktpdDIvU2hhcmVkL0ZpbGVBUEkvQmxv
YlJlZ2lzdHJhdGlvbkRhdGEuY3BwCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAg
KyBuYXRpdmUKCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRmlsZUFQSS9CbG9iUmVnaXN0
cmF0aW9uRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9GaWxlQVBJ
L0Jsb2JSZWdpc3RyYXRpb25EYXRhLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvRmlsZUFQSS9CbG9iUmVnaXN0cmF0aW9uRGF0YS5oCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBCbG9iUmVnaXN0cmF0aW9uRGF0YV9oCisj
ZGVmaW5lIEJsb2JSZWdpc3RyYXRpb25EYXRhX2gKKworI2lmIEVOQUJMRShCTE9CKSAmJiBFTkFC
TEUoTkVUV09SS19QUk9DRVNTKQorCisjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBCbG9iRGF0YTsKK30KKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK2NsYXNzIEJsb2JSZWdpc3RyYXRpb25EYXRhIHsKK1dURl9NQUtFX05PTkNPUFlBQkxF
KEJsb2JSZWdpc3RyYXRpb25EYXRhKTsKK3B1YmxpYzoKKyAgICBCbG9iUmVnaXN0cmF0aW9uRGF0
YSgpOworICAgIEJsb2JSZWdpc3RyYXRpb25EYXRhKFBhc3NPd25QdHI8V2ViQ29yZTo6QmxvYkRh
dGE+KTsKKyAgICB+QmxvYlJlZ2lzdHJhdGlvbkRhdGEoKTsKKworICAgIHZvaWQgZW5jb2RlKENv
cmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OworICAgIHN0YXRpYyBib29sIGRlY29kZShD
b3JlSVBDOjpBcmd1bWVudERlY29kZXImLCBCbG9iUmVnaXN0cmF0aW9uRGF0YSYpOworCisgICAg
UGFzc093blB0cjxXZWJDb3JlOjpCbG9iRGF0YT4gcmVsZWFzZURhdGEoKSBjb25zdDsKKyAgICBj
b25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSYgc2FuZGJveEV4dGVuc2lvbnMoKSBj
b25zdCB7IHJldHVybiBtX3NhbmRib3hFeHRlbnNpb25zOyB9CisKK3ByaXZhdGU6CisgICAgbXV0
YWJsZSBPd25QdHI8V2ViQ29yZTo6QmxvYkRhdGE+IG1fZGF0YTsKKyAgICBTYW5kYm94RXh0ZW5z
aW9uOjpIYW5kbGVBcnJheSBtX3NhbmRib3hFeHRlbnNpb25zOworfTsKKworfQorCisjZW5kaWYg
Ly8gRU5BQkxFKEJMT0IpICYmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisKKyNlbmRpZiAvLyBC
bG9iUmVnaXN0cmF0aW9uRGF0YV9oCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvRmlsZUFQSS9CbG9iUmVnaXN0cmF0aW9uRGF0YS5oCl9fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6
IHN2bjplb2wtc3R5bGUKICAgKyBuYXRpdmUKCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQy
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
V2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxNDQ0NjkpCisrKyBT
b3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcg
Y29weSkKQEAgLTEwOTIsOCArMTA5MiwxNCBAQAogCQlFMTMzRkQ4QTE0MjNERDdGMDBGQzdCRkIg
LyogV2ViS2l0LmljbnMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUxMzNGRDg5MTQyM0REN0YwMEZDN0JGQiAvKiBXZWJLaXQuaWNucyAqLzsgfTsKIAkJ
RTEzNEYwMTcxMkVBNUQzMzAwNEVDNThEIC8qIFdLUHJpbnRpbmdWaWV3LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTM0RjAxNTEyRUE1RDExMDA0RUM1
OEQgLyogV0tQcmludGluZ1ZpZXcuaCAqLzsgfTsKIAkJRTEzNEYwMUExMkVBNUQ5OTAwNEVDNThE
IC8qIFdLUHJpbnRpbmdWaWV3Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTEzNEYwMTkxMkVBNUQ5OTAwNEVDNThEIC8qIFdLUHJpbnRpbmdWaWV3Lm1t
ICovOyB9OworCQlFMTRBOTU0OTE2RTAxNkE0MDA2OERFODIgLyogTmV0d29ya1Byb2Nlc3NQbGF0
Zm9ybVN0cmF0ZWdpZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTE0QTk1NDcxNkUwMTZBNDAwNjhERTgyIC8qIE5ldHdvcmtQcm9jZXNzUGxhdGZv
cm1TdHJhdGVnaWVzLmNwcCAqLzsgfTsKKwkJRTE0QTk1NEExNkUwMTZBNDAwNjhERTgyIC8qIE5l
dHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTRBOTU0ODE2RTAxNkE0MDA2OERFODIgLyogTmV0d29y
a1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaCAqLzsgfTsKIAkJRTE1MTNDNjYxNjZFQUJCMjAw
MTQ5RkNCIC8qIENoaWxkUHJvY2Vzc1Byb3h5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxNTEzQzY0MTY2RUFCQjIwMDE0OUZDQiAvKiBDaGlsZFBy
b2Nlc3NQcm94eS5jcHAgKi87IH07CiAJCUUxNTEzQzY3MTY2RUFCQjIwMDE0OUZDQiAvKiBDaGls
ZFByb2Nlc3NQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTE1MTNDNjUxNjZFQUJCMjAwMTQ5RkNCIC8qIENoaWxkUHJvY2Vzc1Byb3h5LmggKi87
IH07CisJCUUxNzA4NzZCMTZENkNBNjkwMEY5OTIyNiAvKiBCbG9iUmVnaXN0cnlQcm94eS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTcwODc2OTE2
RDZDQTY5MDBGOTkyMjYgLyogQmxvYlJlZ2lzdHJ5UHJveHkuY3BwICovOyB9OworCQlFMTcwODc2
QzE2RDZDQTY5MDBGOTkyMjYgLyogQmxvYlJlZ2lzdHJ5UHJveHkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxNzA4NzZBMTZENkNBNjkwMEY5OTIyNiAv
KiBCbG9iUmVnaXN0cnlQcm94eS5oICovOyB9OworCQlFMTcwODc3MDE2RDZDRkU1MDBGOTkyMjYg
LyogQmxvYlJlZ2lzdHJhdGlvbkRhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTE3MDg3NkUxNkQ2Q0ZFNDAwRjk5MjI2IC8qIEJsb2JSZWdpc3Ry
YXRpb25EYXRhLmNwcCAqLzsgfTsKKwkJRTE3MDg3NzExNkQ2Q0ZFNTAwRjk5MjI2IC8qIEJsb2JS
ZWdpc3RyYXRpb25EYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMTcwODc2RjE2RDZDRkU1MDBGOTkyMjYgLyogQmxvYlJlZ2lzdHJhdGlvbkRhdGEu
aCAqLzsgfTsKIAkJRTE3OTA4OEQxNjlCQUE2MjAwNjkwNEM3IC8qIFNlY0l0ZW1TaGltLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxOEU2OTQ3MTY5
Qjc3QzgwMDlCNjY3MCAvKiBTZWNJdGVtU2hpbS5jcHAgKi87IH07CiAJCUUxNzkwODhGMTY5QkFB
NkEwMDY5MDRDNyAvKiBTZWNJdGVtU2hpbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTE4RTY5NDgxNjlCNzdDODAwOUI2NjcwIC8qIFNlY0l0ZW1TaGlt
LmggKi87IH07CiAJCUUxNzkwODkwMTY5QkFBN0YwMDY5MDRDNyAvKiBTZWNJdGVtU2hpbU1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMThFNjkxMTE2OUI2NjdCMDA5QjY2NzAgLyogU2VjSXRlbVNoaW1NZXNzYWdlUmVjZWl2
ZXIuY3BwICovOyB9OwpAQCAtMTQ2OCw4ICsxNDc0LDggQEAKIAkJMUEzMDA2NkMxMTEwRjRGNzAw
MzE5MzdDIC8qIFJlc3BvbnNpdmVuZXNzVGltZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUmVzcG9uc2l2ZW5lc3NUaW1lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkxQTMwRUFDNTExNUQ3REEzMDA1M0U5MzcgLyogQ29ubmVjdGlvbk1hYy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb25uZWN0aW9uTWFjLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUEzMzRERUExNkRFOEI2ODAwNkE4RTM4IC8qIFN0b3Jh
Z2VBcmVhUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3RvcmFnZUFyZWFQcm94eS5tZXNzYWdlcy5p
bjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMUEzMzRERUIxNkRFOEY4ODAwNkE4RTM4
IC8qIFN0b3JhZ2VBcmVhUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gU3RvcmFnZUFyZWFQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7
IHBhdGggPSBTdG9yYWdlQXJlYVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLSAgICAJCTFBMzM0REVDMTZERThGODgwMDZBOEUzOCAvKiBTdG9yYWdl
QXJlYVByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU3Rv
cmFnZUFyZWFQcm94eU1lc3NhZ2VzLmg7IHBhdGggPSBTdG9yYWdlQXJlYVByb3h5TWVzc2FnZXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUEzMzRERUIxNkRFOEY4ODAwNkE4RTM4
IC8qIFN0b3JhZ2VBcmVhUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU3RvcmFnZUFyZWFQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFBMzM0REVDMTZERThGODgwMDZBOEUzOCAv
KiBTdG9yYWdlQXJlYVByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU3RvcmFnZUFyZWFQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTFBM0Q2MEZGMTNBN0NDMkEwMEY5NUQ0RSAvKiBQbHVnaW5Nb2R1bGVJbmZvLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBsdWdpbk1vZHVsZUluZm8uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTNENjEwMDEzQTdDQzJBMDBGOTVENEUg
LyogUGx1Z2luTW9kdWxlSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQ
bHVnaW5Nb2R1bGVJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBM0Q2MTA0
MTNBN0YwM0EwMEY5NUQ0RSAvKiBBcmd1bWVudENvZGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBBcmd1bWVudENvZGVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0yNTM0LDggKzI1NDAsMTQgQEAKIAkJRTEzNEYwMTkxMkVBNUQ5OTAwNEVD
NThEIC8qIFdLUHJpbnRpbmdWaWV3Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gV0tQcmludGluZ1ZpZXcubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUUxM0E4QTJDMTYyODc5QUMwMDM5MjkyOSAvKiBTaGFyZWRXb3JrZXJQcm9jZXNzLmFwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gd3JhcHBlci5hcHBs
aWNhdGlvbjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gU2hhcmVkV29ya2VyUHJvY2Vzcy5h
cHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCUUxM0E4QTRCMTYyODdB
MUIwMDM5MjkyOSAvKiBTaGFyZWRXb3JrZXJQcm9jZXNzLnhjY29uZmlnICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9
IFNoYXJlZFdvcmtlclByb2Nlc3MueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUUxNEE5NTQ3MTZFMDE2QTQwMDY4REU4MiAvKiBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3Ry
YXRlZ2llcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBOZXR3b3Jr
UHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUUxNEE5NTQ4MTZFMDE2QTQwMDY4REU4MiAvKiBOZXR3b3JrUHJvY2Vzc1BsYXRmb3Jt
U3RyYXRlZ2llcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOZXR3b3JrUHJv
Y2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTE1MTNDNjQxNjZFQUJCMjAwMTQ5RkNCIC8qIENoaWxkUHJvY2Vzc1Byb3h5LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENoaWxkUHJvY2Vzc1Byb3h5LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE1MTNDNjUxNjZFQUJCMjAwMTQ5RkNCIC8qIENo
aWxkUHJvY2Vzc1Byb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENoaWxk
UHJvY2Vzc1Byb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxNzA4NzY5MTZE
NkNBNjkwMEY5OTIyNiAvKiBCbG9iUmVnaXN0cnlQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBCbG9iUmVnaXN0cnlQcm94eS5jcHA7IHBhdGggPSBXZWJQcm9j
ZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlFMTcwODc2QTE2RDZDQTY5MDBGOTkyMjYgLyogQmxvYlJlZ2lzdHJ5UHJveHkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQmxvYlJlZ2lzdHJ5UHJveHkuaDsgcGF0
aCA9IFdlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFMTcwODc2RTE2RDZDRkU0MDBGOTkyMjYgLyogQmxvYlJlZ2lzdHJh
dGlvbkRhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQmxvYlJl
Z2lzdHJhdGlvbkRhdGEuY3BwOyBwYXRoID0gRmlsZUFQSS9CbG9iUmVnaXN0cmF0aW9uRGF0YS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxNzA4NzZGMTZENkNGRTUwMEY5OTIy
NiAvKiBCbG9iUmVnaXN0cmF0aW9uRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBCbG9iUmVnaXN0cmF0aW9uRGF0YS5oOyBwYXRoID0gRmlsZUFQSS9CbG9iUmVnaXN0cmF0
aW9uRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTc5RkQ5QjEzNEQzODA2
MDAxNUI4ODMgLyogQXJndW1lbnRDb2RlcnNNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQXJndW1lbnRDb2RlcnNNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTE3OUZEOUUxMzREMzgyNTAwMTVCODgzIC8qIEFyZ3VtZW50Q29kZXJzTWFjLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQXJndW1lbnRDb2RlcnNNYWMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxN0FFMkMxMTZCOUMxMzkwMDFDNDJGMSAv
KiBjb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtQcm9jZXNzLnNiLmluICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IGNvbS5hcHBsZS5X
ZWJLaXQuTmV0d29ya1Byb2Nlc3Muc2IuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0zMDc1LDYgKzMwODcsNyBAQAogCQkJCUJDMTExQjVGMTEyRjYzNUUwMDMzN0JBQiAvKiBDb3Jl
SVBDU3VwcG9ydCAqLywKIAkJCQk1MThFOEVGMjE2QjIwOEY4MDBFOTE0MjkgLyogRG93bmxvYWRz
ICovLAogCQkJCUJDODI4MzY4MTZCMzU4NzkwMEEyNzhGRSAvKiBFbnRyeVBvaW50VXRpbGl0aWVz
ICovLAorCQkJCUUxNzA4NzcyMTZENkNGRUMwMEY5OTIyNiAvKiBGaWxlQVBJICovLAogCQkJCUJD
MTExQjVBMTEyRjYyODIwMDMzN0JBQiAvKiBtYWMgKi8sCiAJCQkJNTFBOEE2MEQxNjI3RjJBQzAw
MEQ5MEU5IC8qIE5ldHdvcmsgKi8sCiAJCQkJQkNBRjM1RTUxNkNBMjUzQjAwRDRFOUZDIC8qIE9m
ZmxpbmVTdG9yYWdlICovLApAQCAtMzQ3MSw2ICszNDg0LDggQEAKIAkJCQk1MTNBMTY0QjE2MzBB
OUJGMDA1RDdEMjIgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4g
Ki8sCiAJCQkJNTEwQ0M3REYxNjEzOEUyOTAwRDAzRUQzIC8qIE5ldHdvcmtQcm9jZXNzLmNwcCAq
LywKIAkJCQk1MTBDQzdFMDE2MTM4RTI5MDBEMDNFRDMgLyogTmV0d29ya1Byb2Nlc3MuaCAqLywK
KwkJCQlFMTRBOTU0NzE2RTAxNkE0MDA2OERFODIgLyogTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0
cmF0ZWdpZXMuY3BwICovLAorCQkJCUUxNEE5NTQ4MTZFMDE2QTQwMDY4REU4MiAvKiBOZXR3b3Jr
UHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oICovLAogCQkJCTUxQThBNjE3MTYyN0Y1QkIwMDBE
OTBFOSAvKiBOZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbiAqLywKIAkJCQk1MUZEMThCMzE2NTFG
QkFEMDBEQkUxQ0UgLyogTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcCAqLywKIAkJCQk1MUZEMThC
NDE2NTFGQkFEMDBEQkUxQ0UgLyogTmV0d29ya1Jlc291cmNlTG9hZGVyLmggKi8sCkBAIC0zNjg2
LDYgKzM3MDEsNyBAQAogCQkJCTUxMkUzNTJBMTMwQjU1OTkwMEFCRDE5QSAvKiBBcHBsaWNhdGlv
bkNhY2hlICovLAogCQkJCTMzMDkzNDRCMTMxNUI5M0EwMDk3QTdCQyAvKiBDb29raWVzICovLAog
CQkJCUJDQUNDNDNCMTZCMjRDNUQwMEI2RTA5MiAvKiBFbnRyeVBvaW50ICovLAorCQkJCUUxNzA4
NzZEMTZENkNBNzIwMEY5OTIyNiAvKiBGaWxlQVBJICovLAogCQkJCUNENzNCQTNEMTMxQTJBMjEw
MEVFREVEMiAvKiBGdWxsU2NyZWVuICovLAogCQkJCUJDMEU1RkNCMTJENjk2REQwMDEyQTcyQSAv
KiBHZW9sb2NhdGlvbiAqLywKIAkJCQk1MUZCQjlDMTEzMkUwNzkyMDBGMzI3QjQgLyogSWNvbkRh
dGFiYXNlICovLApAQCAtNDk3Myw2ICs0OTg5LDI1IEBACiAJCQlwYXRoID0gU2hhcmVkV29ya2Vy
UHJvY2VzczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCUUxNzA4NzZEMTZE
NkNBNzIwMEY5OTIyNiAvKiBGaWxlQVBJICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQlj
aGlsZHJlbiA9ICgKKwkJCQlFMTcwODc2OTE2RDZDQTY5MDBGOTkyMjYgLyogQmxvYlJlZ2lzdHJ5
UHJveHkuY3BwICovLAorCQkJCUUxNzA4NzZBMTZENkNBNjkwMEY5OTIyNiAvKiBCbG9iUmVnaXN0
cnlQcm94eS5oICovLAorCQkJKTsKKwkJCW5hbWUgPSBGaWxlQVBJOworCQkJcGF0aCA9IC4uOwor
CQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJRTE3MDg3NzIxNkQ2Q0ZFQzAwRjk5
MjI2IC8qIEZpbGVBUEkgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0g
KAorCQkJCUUxNzA4NzZFMTZENkNGRTQwMEY5OTIyNiAvKiBCbG9iUmVnaXN0cmF0aW9uRGF0YS5j
cHAgKi8sCisJCQkJRTE3MDg3NkYxNkQ2Q0ZFNTAwRjk5MjI2IC8qIEJsb2JSZWdpc3RyYXRpb25E
YXRhLmggKi8sCisJCQkpOworCQkJbmFtZSA9IEZpbGVBUEk7CisJCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOworCQl9OwogCQlFMTk5ODc1QjE0MkJGOUNGMDBCQjJERTcgLyogUERGICovID0gewog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTU1NjksNiArNTYwNCw5IEBA
CiAJCQkJQkM1RDI0QzIxNkNENzA2RDAwN0Q1NDYxIC8qIFdLRE9NTm9kZVByaXZhdGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDNUQyNEM1MTZDRDcwODgwMDdENTQ2MSAvKiBXS0RPTVJhbmdlUHJp
dmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1RDI0QzcxNkNENzNDNTAwN0Q1NDYxIC8qIFdL
QnVuZGxlUmFuZ2VIYW5kbGVQcml2YXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMTcwODc2QzE2
RDZDQTY5MDBGOTkyMjYgLyogQmxvYlJlZ2lzdHJ5UHJveHkuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUUxNzA4NzcxMTZENkNGRTUwMEY5OTIyNiAvKiBCbG9iUmVnaXN0cmF0aW9uRGF0YS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJRTE0QTk1NEExNkUwMTZBNDAwNjhERTgyIC8qIE5ldHdvcmtQcm9jZXNz
UGxhdGZvcm1TdHJhdGVnaWVzLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9y
RGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTY3NzEsNiArNjgwOSw5IEBA
CiAJCQkJQkNBRjM1RTgxNkNBMjUzQjAwRDRFOUZDIC8qIE9mZmxpbmVTdG9yYWdlUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0FGMzYyNTE2Q0EyOUEy
MDBENEU5RkMgLyogT2ZmbGluZVN0b3JhZ2VQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTUxQTRENUE5MTZDQUM0RkYwMDBFNjE1RSAvKiBTdGF0aXN0aWNzUmVx
dWVzdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMTcwODc2QjE2RDZDQTY5MDBGOTkyMjYgLyog
QmxvYlJlZ2lzdHJ5UHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTE3MDg3NzAxNkQ2Q0ZF
NTAwRjk5MjI2IC8qIEJsb2JSZWdpc3RyYXRpb25EYXRhLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CUUxNEE5NTQ5MTZFMDE2QTQwMDY4REU4MiAvKiBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRl
Z2llcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
RmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3RyeVByb3h5LmNwcAkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5j
cHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiQmxvYlJlZ2lzdHJ5UHJveHkuaCIKKworI2lmIEVOQUJMRShC
TE9CKSAmJiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorCisjaW5jbHVkZSAiQmxvYlJlZ2lzdHJh
dGlvbkRhdGEuaCIKKyNpbmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3Nh
Z2VzLmgiCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAi
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvQmxvYkRhdGEuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCit2b2lkIEJsb2JSZWdpc3RyeVByb3h5OjpyZWdpc3RlckJsb2JV
UkwoY29uc3QgS1VSTCYgdXJsLCBQYXNzT3duUHRyPEJsb2JEYXRhPiBibG9iRGF0YSkKK3sKKyAg
ICBBU1NFUlQoV2ViUHJvY2Vzczo6c2hhcmVkKCkudXNlc05ldHdvcmtQcm9jZXNzKCkpOworCisg
ICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkubmV0d29ya0Nvbm5lY3Rpb24oKS0+Y29ubmVjdGlvbigp
LT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UmVnaXN0ZXJC
bG9iVVJMKHVybCwgQmxvYlJlZ2lzdHJhdGlvbkRhdGEoYmxvYkRhdGEpKSwgMCk7Cit9CisKK3Zv
aWQgQmxvYlJlZ2lzdHJ5UHJveHk6OnJlZ2lzdGVyQmxvYlVSTChjb25zdCBLVVJMJiB1cmwsIGNv
bnN0IEtVUkwmIHNyY1VSTCkKK3sKKyAgICBBU1NFUlQoV2ViUHJvY2Vzczo6c2hhcmVkKCkudXNl
c05ldHdvcmtQcm9jZXNzKCkpOworCisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkubmV0d29ya0Nv
bm5lY3Rpb24oKS0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6UmVnaXN0ZXJCbG9iVVJMRnJvbVVSTCh1cmwsIHNyY1VSTCksIDApOwor
fQorCit2b2lkIEJsb2JSZWdpc3RyeVByb3h5Ojp1bnJlZ2lzdGVyQmxvYlVSTChjb25zdCBLVVJM
JiB1cmwpCit7CisgICAgQVNTRVJUKFdlYlByb2Nlc3M6OnNoYXJlZCgpLnVzZXNOZXR3b3JrUHJv
Y2VzcygpKTsKKworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLm5ldHdvcmtDb25uZWN0aW9uKCkt
PmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OlVucmVnaXN0ZXJCbG9iVVJMKHVybCksIDApOworfQorCit9CisKKyNlbmRpZiAvLyBFTkFC
TEUoQkxPQikgJiYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKClByb3BlcnR5IGNoYW5nZXMgb246
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5jcHAK
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIG5hdGl2ZQoKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94
eS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GaWxlQVBJL0Js
b2JSZWdpc3RyeVByb3h5LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIEJsb2JSZWdpc3RyeVByb3h5X2gKKyNkZWZpbmUgQmxvYlJlZ2lzdHJ5UHJv
eHlfaAorCisjaWYgRU5BQkxFKEJMT0IpICYmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisKKyNp
bmNsdWRlIDxXZWJDb3JlL0Jsb2JSZWdpc3RyeS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
Y2xhc3MgQmxvYlJlZ2lzdHJ5UHJveHkgOiBwdWJsaWMgV2ViQ29yZTo6QmxvYlJlZ2lzdHJ5IHsK
K3B1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFdlYkNvcmU6
OktVUkwmLCBQYXNzT3duUHRyPFdlYkNvcmU6OkJsb2JEYXRhPik7CisgICAgdmlydHVhbCB2b2lk
IHJlZ2lzdGVyQmxvYlVSTChjb25zdCBXZWJDb3JlOjpLVVJMJiwgY29uc3QgV2ViQ29yZTo6S1VS
TCYgc3JjVVJMKTsKKyAgICB2aXJ0dWFsIHZvaWQgdW5yZWdpc3RlckJsb2JVUkwoY29uc3QgV2Vi
Q29yZTo6S1VSTCYpOworfTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKEJMT0IpICYmIEVOQUJM
RShORVRXT1JLX1BST0NFU1MpCisKKyNlbmRpZiAvLyBCbG9iUmVnaXN0cnlQcm94eV9oCgpQcm9w
ZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJl
Z2lzdHJ5UHJveHkuaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgbmF0aXZl
CgpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAkocmV2aXNpb24gMTQ0
NDY5KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Myw2ICs1Myw3IEBACiAjaW5j
bHVkZSA8d3RmL0F0b21pY3MuaD4KIAogI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisjaW5j
bHVkZSAiQmxvYlJlZ2lzdHJ5UHJveHkuaCIKICNpbmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
LmgiCiAjaW5jbHVkZSAiV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgiCkBAIC0yNDcsNiArMjQ4
LDE0IEBAIHZvaWQgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpsb2FkUmVzb3VyY2UKICAgICBtZW1j
cHkoZGF0YS5kYXRhKCksIGRhdGFSZWZlcmVuY2UuZGF0YSgpLCBkYXRhUmVmZXJlbmNlLnNpemUo
KSk7CiB9CiAKKyNpZiBFTkFCTEUoQkxPQikKK0Jsb2JSZWdpc3RyeSogV2ViUGxhdGZvcm1TdHJh
dGVnaWVzOjpjcmVhdGVCbG9iUmVnaXN0cnkoKQoreworICAgIGlmICghV2ViUHJvY2Vzczo6c2hh
cmVkKCkudXNlc05ldHdvcmtQcm9jZXNzKCkpCisgICAgICAgIHJldHVybiBMb2FkZXJTdHJhdGVn
eTo6Y3JlYXRlQmxvYlJlZ2lzdHJ5KCk7CisgICAgcmV0dXJuIG5ldyBCbG9iUmVnaXN0cnlQcm94
eTsgICAgCit9CisjZW5kaWYKICNlbmRpZgogCiAvLyBQbHVnaW5TdHJhdGVneQpJbmRleDogU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCShyZXZpc2lvbiAxNDQ0NjkpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5o
CSh3b3JraW5nIGNvcHkpCkBAIC03NCw2ICs3NCw5IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKE5F
VFdPUktfUFJPQ0VTUykKICAgICB2aXJ0dWFsIFdlYkNvcmU6OlJlc291cmNlTG9hZFNjaGVkdWxl
ciogcmVzb3VyY2VMb2FkU2NoZWR1bGVyKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGxv
YWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoV2ViQ29yZTo6TmV0d29ya2luZ0NvbnRleHQqLCB1bnNp
Z25lZCBsb25nIHJlc291cmNlTG9hZElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzLCBXZWJDb3JlOjpSZXNvdXJjZUVy
cm9yJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIFZlY3RvcjxjaGFyPiYgZGF0YSkgT1ZF
UlJJREU7CisjaWYgRU5BQkxFKEJMT0IpCisgICAgdmlydHVhbCBXZWJDb3JlOjpCbG9iUmVnaXN0
cnkqIGNyZWF0ZUJsb2JSZWdpc3RyeSgpIE9WRVJSSURFOworI2VuZGlmCiAjZW5kaWYKIAogICAg
IC8vIFdlYkNvcmU6OlBsdWdpblN0cmF0ZWd5Cg==
</data>
<flag name="commit-queue"
          id="211846"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191001</attachid>
            <date>2013-03-01 11:55:39 -0800</date>
            <delta_ts>2013-03-01 13:27:34 -0800</delta_ts>
            <desc>with more build fix</desc>
            <filename>MemoryBlobs.txt</filename>
            <type>text/plain</type>
            <size>45881</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCShyZXZpc2lvbiAxNDQ0NjkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgkod29ya2luZyBjb3B5KQpAQCAtMzExLDcgKzMxMSw2IEBAIF9f
Wk43V2ViQ29yZTE0RnJhbWVTZWxlY3Rpb241Y2xlYXJFdgogX19aTjdXZWJDb3JlMTRGcmFtZVNl
bGVjdGlvbjZtb2RpZnlFTlMwXzExRUFsdGVyYXRpb25FTlNfMThTZWxlY3Rpb25EaXJlY3Rpb25F
TlNfMTVUZXh0R3JhbnVsYXJpdHlFTlNfMTRFVXNlclRyaWdnZXJlZEUKIF9fWk43V2ViQ29yZTE0
RnJhbWVTZWxlY3Rpb245c2VsZWN0QWxsRXYKIF9fWk43V2ViQ29yZTE0RnJhbWVTZWxlY3Rpb25D
MUVQTlNfNUZyYW1lRQotX19aTjdXZWJDb3JlMTRMb2FkZXJTdHJhdGVneTE4Y3JlYXRlQmxvYlJl
Z2lzdHJ5RXYKIF9fWk43V2ViQ29yZTE0TG9hZGVyU3RyYXRlZ3kyMXJlc291cmNlTG9hZFNjaGVk
dWxlckV2CiBfX1pON1dlYkNvcmUxNExvYWRlclN0cmF0ZWd5MjVsb2FkUmVzb3VyY2VTeW5jaHJv
bm91c2x5RVBOU18xN05ldHdvcmtpbmdDb250ZXh0RW1SS05TXzE1UmVzb3VyY2VSZXF1ZXN0RU5T
XzE3U3RvcmVkQ3JlZGVudGlhbHNFUk5TXzEzUmVzb3VyY2VFcnJvckVSTlNfMTZSZXNvdXJjZVJl
c3BvbnNlRVJOM1dURjZWZWN0b3JJY0xtMEVFRQogX19aTjdXZWJDb3JlMTRQbHVnaW5Eb2N1bWVu
dDEwcGx1Z2luTm9kZUV2CkBAIC0yMzA3LDYgKzIzMDYsMjAgQEAgX19aTjdXZWJDb3JlMTJTY2hl
ZHVsZVBhaXJDMUVQOU5TUnVuTG9vcAogX19aTjdXZWJDb3JlMTRSZXNvdXJjZUhhbmRsZTEycmVs
ZWFzZVByb3h5RXYKICNlbmRpZgogCisjaWYgRU5BQkxFKEJMT0IpCitfX1pON1dlYkNvcmUxMmJs
b2JSZWdpc3RyeUV2CitfX1pON1dlYkNvcmUxNExvYWRlclN0cmF0ZWd5MThjcmVhdGVCbG9iUmVn
aXN0cnlFdgorX19aTjdXZWJDb3JlN1Jhd0RhdGFDMUV2CitfX1pON1dlYkNvcmU4QmxvYkRhdGEx
MGFwcGVuZEJsb2JFUktOU180S1VSTEV4eAorX19aTjdXZWJDb3JlOEJsb2JEYXRhMTBhcHBlbmRE
YXRhRU4zV1RGMTBQYXNzUmVmUHRySU5TXzdSYXdEYXRhRUVFeHgKK19fWk43V2ViQ29yZThCbG9i
RGF0YTEwYXBwZW5kRmlsZUVSS04zV1RGNlN0cmluZ0V4eGQKK19fWk43V2ViQ29yZThCbG9iRGF0
YTZjcmVhdGVFdgorX19aTjdXZWJDb3JlMTJCbG9iRGF0YUl0ZW0xMXRvRW5kT2ZGaWxlRQorX19a
TjdXZWJDb3JlMTJCbG9iUmVnaXN0cnlEMkV2CitfX1pUVk43V2ViQ29yZTEyQmxvYlJlZ2lzdHJ5
RQorX19aVFZON1dlYkNvcmUxNkJsb2JSZWdpc3RyeUltcGxFCisjZW5kaWYKKwogI2lmIEVOQUJM
RShDT05URVhUX01FTlVTKQogX19aTjdXZWJDb3JlMTFDb250ZXh0TWVudTIyc2V0UGxhdGZvcm1E
ZXNjcmlwdGlvbkVQMTROU011dGFibGVBcnJheQogX19aTjdXZWJDb3JlMTJFdmVudEhhbmRsZXIy
MHNlbmRDb250ZXh0TWVudUV2ZW50RVJLTlNfMThQbGF0Zm9ybU1vdXNlRXZlbnRFCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShy
ZXZpc2lvbiAxNDQ0NjkpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTg3MSwxMSArODcxLDExIEBACiAJCTJFRDYw
OUJDMTE0NUIwNzEwMEM4Njg0RSAvKiBET01Gb3JtRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUQ2MDlCQTExNDVCMDcxMDBDODY4NEUgLyog
RE9NRm9ybURhdGEuY3BwICovOyB9OwogCQkyRUQ2MDlCRDExNDVCMDcxMDBDODY4NEUgLyogRE9N
Rm9ybURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDJFRDYwOUJCMTE0NUIwNzEwMEM4Njg0RSAvKiBET01Gb3JtRGF0YS5oICovOyB9OwogCQkyRURF
RjFGMzEyMUIwRUZDMDA3MjZEQjIgLyogQmxvYkRhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVERUYxRUQxMjFCMEVGQzAwNzI2REIyIC8qIEJs
b2JEYXRhLmNwcCAqLzsgfTsKLQkJMkVERUYxRjQxMjFCMEVGQzAwNzI2REIyIC8qIEJsb2JEYXRh
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRURFRjFF
RTEyMUIwRUZDMDA3MjZEQjIgLyogQmxvYkRhdGEuaCAqLzsgfTsKLQkJMkVERUYxRjUxMjFCMEVG
QzAwNzI2REIyIC8qIEJsb2JSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMkVERUYxRUYxMjFCMEVGQzAwNzI2REIyIC8qIEJsb2JSZWdpc3Ry
eS5oICovOyB9OworCQkyRURFRjFGNDEyMUIwRUZDMDA3MjZEQjIgLyogQmxvYkRhdGEuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFREVGMUVFMTIxQjBF
RkMwMDcyNkRCMiAvKiBCbG9iRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCTJFREVGMUY1MTIxQjBFRkMwMDcyNkRCMiAvKiBCbG9iUmVnaXN0
cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFREVG
MUVGMTIxQjBFRkMwMDcyNkRCMiAvKiBCbG9iUmVnaXN0cnkuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyRURFRjFGNjEyMUIwRUZDMDA3MjZEQjIg
LyogQmxvYlJlZ2lzdHJ5SW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyRURFRjFGMDEyMUIwRUZDMDA3MjZEQjIgLyogQmxvYlJlZ2lzdHJ5SW1w
bC5jcHAgKi87IH07Ci0JCTJFREVGMUY3MTIxQjBFRkMwMDcyNkRCMiAvKiBCbG9iUmVnaXN0cnlJ
bXBsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRURF
RjFGMTEyMUIwRUZDMDA3MjZEQjIgLyogQmxvYlJlZ2lzdHJ5SW1wbC5oICovOyB9OwotCQkyRURF
RjFGODEyMUIwRUZDMDA3MjZEQjIgLyogQmxvYlN0b3JhZ2VEYXRhLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRURFRjFGMjEyMUIwRUZDMDA3MjZEQjIg
LyogQmxvYlN0b3JhZ2VEYXRhLmggKi87IH07CisJCTJFREVGMUY3MTIxQjBFRkMwMDcyNkRCMiAv
KiBCbG9iUmVnaXN0cnlJbXBsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyRURFRjFGMTEyMUIwRUZDMDA3MjZEQjIgLyogQmxvYlJlZ2lzdHJ5SW1wbC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTJFREVG
MUY4MTIxQjBFRkMwMDcyNkRCMiAvKiBCbG9iU3RvcmFnZURhdGEuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFREVGMUYyMTIxQjBFRkMwMDcyNkRCMiAv
KiBCbG9iU3RvcmFnZURhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQkyRURGMzY5QzEyMkM5NEI0MDAyRjdENEUgLyogRmlsZVJlYWRlclN5bmMu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVERjM2
OUExMjJDOTRCNDAwMkY3RDRFIC8qIEZpbGVSZWFkZXJTeW5jLmNwcCAqLzsgfTsKIAkJMkVERjM2
OUQxMjJDOTRCNDAwMkY3RDRFIC8qIEZpbGVSZWFkZXJTeW5jLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRURGMzY5QjEyMkM5NEI0MDAyRjdENEUgLyog
RmlsZVJlYWRlclN5bmMuaCAqLzsgfTsKIAkJMkVERjM2OUYxMjJDOTRDODAwMkY3RDRFIC8qIEZp
bGVFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDJFREYzNjlFMTIyQzk0QzgwMDJGN0Q0RSAvKiBGaWxlRXhjZXB0aW9uLmggKi87IH07Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNDQ0NjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw0NiBAQAorMjAxMy0wMi0yOCAgQWxleGV5IFBy
b3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIGluLW1lbW9yeSBibG9i
cyB3b3JrIGluIE5ldHdvcmtQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMTExMzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OnJlZ2lzdGVyQmxvYlVSTCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpyZWdpc3RlckJsb2JVUkxGcm9tVVJMKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnVucmVnaXN0ZXJCbG9iVVJMKToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAg
ICAgICBJbXBsZW1lbnQgQmxvYlJlZ2lzdHJ5IGludGVyZmFjZSBieSB1c2luZyBCbG9iUmVnaXN0
cnlJbXBsIChzYW1lIG9uZSBhcyB1c2VkIGluCisgICAgICAgIFdlYlByb2Nlc3MgaW4gbm9uLVBQ
VCBtb2RlKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLm1lc3NhZ2VzLmluOiBBZGRlZCB0aHJlZSBtZXNzYWdlcworICAgICAgICBuZWVk
ZWQgZm9yIEJsb2JSZWdpc3RyeS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmNwcDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRm
b3JtU3RyYXRlZ2llcy5jcHA6IEFkZGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmg6IEFkZGVkLgorICAgICAgICBBZGRlZCBhIG1v
c3RseSBlbXB0eSBwbGF0Zm9ybSBzdHJhdGVneSwganVzdCBmb3IgRm9ybURhdGEgdG8gdGFsayB0
byBCbG9iUmVnaXN0cnkuCisgICAgICAgIFBlcmhhcHMgd2UnbGwgZmluZCBhIHdheSB0byBhdm9p
ZCB0aGlzIFdlYkNvcmUgY29kZSBwYXRoIGluIE5ldHdvcmtQcm9jZXNzLCBiZWNhdXNlCisgICAg
ICAgIHdlIG9idmlvdXNseSBrbm93IHdoaWNoIHJlZ2lzdHJ5IGltcGxlbWVudGF0aW9uIGlzIGlu
IHVzZSBpbiB0aGlzIHByb2Nlc3MuCisKKyAgICAgICAgKiBTaGFyZWQvRmlsZUFQSTogQWRkZWQu
CisgICAgICAgICogU2hhcmVkL0ZpbGVBUEkvQmxvYlJlZ2lzdHJhdGlvbkRhdGEuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKiBTaGFyZWQvRmlsZUFQSS9CbG9iUmVnaXN0cmF0aW9uRGF0YS5oOiBBZGRl
ZC4KKyAgICAgICAgQWRkZWQgYSBjbGFzcyBmb3IgcGFzc2luZyBCbG9iRGF0YSBhbmQgZXh0ZW5z
aW9uIGhhbmRsZXMgb3ZlciBJUEMuCisgICAgICAgIFRoaXMgdXNlcyBhIHRyaWNrIHdpdGggbXV0
YWJsZSBhIG1lbWJlciB0byBhdm9pZCBjb3B5aW5nIGRlY29kZWQgQmxvYlN0b3JhZ2VEYXRhLgor
CisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IFdlYlByb2Nlc3MvRmlsZUFQSTogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9GaWxlQVBJ
L0Jsb2JSZWdpc3RyeVByb3h5LmNwcDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9GaWxl
QVBJL0Jsb2JSZWdpc3RyeVByb3h5Lmg6IEFkZGVkLgorICAgICAgICBBIHByb3h5IGltcGxlbWVu
dGF0aW9uIG9mIEJsb2JSZWdpc3RyeSB0aGF0IGp1c3Qgc2VuZHMgcmVxdWVzdHMgb3ZlciBJUEMu
IFdlIG9ubHkKKyAgICAgICAgbmVlZCBhc3luYyBvbmVzLgorCisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZUJsb2JSZWdpc3RyeSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoKKyAg
ICAgICAgQ3JlYXRlIGFuIGFwcHJvcHJpYXRlIEJsb2JSZWdpc3RyeS4KKwogMjAxMy0wMy0wMSAg
U2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE0NDQyMiBhbmQgcjE0NDQyNC4KSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5jcHAJKHJldmlzaW9uIDE0NDQ2OSkKKysrIFNvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjYsMTIgKzI2LDE1IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKIAorI2luY2x1ZGUgIkJsb2JSZWdp
c3RyYXRpb25EYXRhLmgiCiAjaW5jbHVkZSAiQ29ubmVjdGlvblN0YWNrLmgiCiAjaW5jbHVkZSAi
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIk5ldHdv
cmtQcm9jZXNzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVk
ZSAiUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNsdWRlICJTeW5jTmV0d29ya1Jlc291
cmNlTG9hZGVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9CbG9iRGF0YS5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvQmxvYlJlZ2lzdHJ5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUNvb2tpZUph
ci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkZXJPcHRpb25zLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KQEAgLTE3Nyw2ICsxODAsMjMgQEAgdm9pZCBO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGVsZQogICAgIFdlYkNvcmU6OmRlbGV0ZUNv
b2tpZShzdG9yYWdlU2Vzc2lvbihwcml2YXRlQnJvd3NpbmdFbmFibGVkKSwgdXJsLCBjb29raWVO
YW1lKTsKIH0KIAordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVnaXN0ZXJC
bG9iVVJMKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgQmxvYlJlZ2lzdHJhdGlvbkRhdGEmIGRhdGEp
Cit7CisgICAgLy8gRklYTUU6IFRyYWNrIHNhbmRib3ggZXh0ZW5zaW9ucy4KKyAgICAvLyBGSVhN
RTogdW5yZWdpc3RlciBhbGwgVVJMcyB3aGVuIHByb2Nlc3MgY29ubmVjdGlvbiBjbG9zZXMuCisg
ICAgYmxvYlJlZ2lzdHJ5KCkucmVnaXN0ZXJCbG9iVVJMKHVybCwgZGF0YS5yZWxlYXNlRGF0YSgp
KTsKK30KKwordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVnaXN0ZXJCbG9i
VVJMRnJvbVVSTChjb25zdCBLVVJMJiB1cmwsIGNvbnN0IEtVUkwmIHNyY1VSTCkKK3sKKyAgICBi
bG9iUmVnaXN0cnkoKS5yZWdpc3RlckJsb2JVUkwodXJsLCBzcmNVUkwpOworfQorCit2b2lkIE5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp1bnJlZ2lzdGVyQmxvYlVSTChjb25zdCBLVVJM
JiB1cmwpCit7CisgICAgYmxvYlJlZ2lzdHJ5KCkudW5yZWdpc3RlckJsb2JVUkwodXJsKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoTkVUV09SS19QUk9D
RVNTKQpJbmRleDogU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCShyZXZpc2lvbiAxNDQ0NjkpCisr
KyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oCSh3b3JraW5nIGNvcHkpCkBAIC00MSw2ICs0MSw3IEBAIGNsYXNzIFJlc291cmNlUmVx
dWVzdDsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIEJsb2JSZWdpc3RyYXRpb25EYXRh
OwogY2xhc3MgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CiBjbGFzcyBOZXR3b3JrUmVz
b3VyY2VMb2FkZXI7CiBjbGFzcyBTeW5jTmV0d29ya1Jlc291cmNlTG9hZGVyOwpAQCAtODMsNiAr
ODQsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIGdldFJhd0Nvb2tpZXMoYm9vbCBwcml2YXRlQnJv
d3NpbmdFbmFibGVkLCBjb25zdCBXZWJDb3JlOjpLVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJD
b3JlOjpLVVJMJiwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mKTsKICAgICB2b2lkIGRlbGV0ZUNv
b2tpZShib29sIHByaXZhdGVCcm93c2luZ0VuYWJsZWQsIGNvbnN0IFdlYkNvcmU6OktVUkwmLCBj
b25zdCBTdHJpbmcmIGNvb2tpZU5hbWUpOwogCisgICAgdm9pZCByZWdpc3RlckJsb2JVUkwoY29u
c3QgV2ViQ29yZTo6S1VSTCYsIGNvbnN0IEJsb2JSZWdpc3RyYXRpb25EYXRhJik7CisgICAgdm9p
ZCByZWdpc3RlckJsb2JVUkxGcm9tVVJMKGNvbnN0IFdlYkNvcmU6OktVUkwmLCBjb25zdCBXZWJD
b3JlOjpLVVJMJiBzcmNVUkwpOworICAgIHZvaWQgdW5yZWdpc3RlckJsb2JVUkwoY29uc3QgV2Vi
Q29yZTo6S1VSTCYpOworCiAgICAgUmVmUHRyPENvcmVJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVj
dGlvbjsKIAogICAgIEhhc2hNYXA8UmVzb3VyY2VMb2FkSWRlbnRpZmllciwgUmVmUHRyPE5ldHdv
cmtSZXNvdXJjZUxvYWRlcj4gPiBtX25ldHdvcmtSZXNvdXJjZUxvYWRlcnM7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5t
ZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgkocmV2aXNpb24gMTQ0NDY5
KQorKysgU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDEwIEBAIG1l
c3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXMKICAgICBDb29raWVSZXF1ZXN0
SGVhZGVyRmllbGRWYWx1ZShib29sIHByaXZhdGVCcm93c2luZ0VuYWJsZWQsIFdlYkNvcmU6OktV
UkwgZmlyc3RQYXJ0eSwgV2ViQ29yZTo6S1VSTCB1cmwpIC0+IChXVEY6OlN0cmluZyByZXN1bHQp
CiAgICAgR2V0UmF3Q29va2llcyhib29sIHByaXZhdGVCcm93c2luZ0VuYWJsZWQsIFdlYkNvcmU6
OktVUkwgZmlyc3RQYXJ0eSwgV2ViQ29yZTo6S1VSTCB1cmwpIC0+IChXVEY6OlZlY3RvcjxXZWJD
b3JlOjpDb29raWU+IGNvb2tpZXMpCiAgICAgRGVsZXRlQ29va2llKGJvb2wgcHJpdmF0ZUJyb3dz
aW5nRW5hYmxlZCwgV2ViQ29yZTo6S1VSTCB1cmwsIFdURjo6U3RyaW5nIGNvb2tpZU5hbWUpCisK
KyAgICBSZWdpc3RlckJsb2JVUkwoV2ViQ29yZTo6S1VSTCB1cmwsIFdlYktpdDo6QmxvYlJlZ2lz
dHJhdGlvbkRhdGEgZGF0YSkKKyAgICBSZWdpc3RlckJsb2JVUkxGcm9tVVJMKFdlYkNvcmU6OktV
UkwgdXJsLCBXZWJDb3JlOjpLVVJMIHNyY1VSTCkKKyAgICBVbnJlZ2lzdGVyQmxvYlVSTChXZWJD
b3JlOjpLVVJMIHVybCkKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
Y3BwCShyZXZpc2lvbiAxNDQ0NjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNs
dWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
aCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgorI2luY2x1
ZGUgIk5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAjaW5jbHVkZSAiTmV0d29y
a1Byb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTmV0d29ya2luZ0NvbnRl
eHQuaCIKICNpbmNsdWRlICJTdGF0aXN0aWNzRGF0YS5oIgpAQCAtNjMsNiArNjQsOCBAQCBOZXR3
b3JrUHJvY2Vzczo6TmV0d29ya1Byb2Nlc3MoKQogICAgIDogbV9oYXNTZXRDYWNoZU1vZGVsKGZh
bHNlKQogICAgICwgbV9jYWNoZU1vZGVsKENhY2hlTW9kZWxEb2N1bWVudFZpZXdlcikKIHsKKyAg
ICBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llczo6aW5pdGlhbGl6ZSgpOworCiAgICAg
YWRkU3VwcGxlbWVudDxBdXRoZW50aWNhdGlvbk1hbmFnZXI+KCk7CiAgICAgYWRkU3VwcGxlbWVu
dDxXZWJDb29raWVNYW5hZ2VyPigpOwogICAgIGFkZFN1cHBsZW1lbnQ8Q3VzdG9tUHJvdG9jb2xN
YW5hZ2VyPigpOwpJbmRleDogU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
UGxhdGZvcm1TdHJhdGVnaWVzLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMDEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NQ
bGF0Zm9ybVN0cmF0ZWdpZXMuaCIKKworI2luY2x1ZGUgPFdlYkNvcmUvQmxvYlJlZ2lzdHJ5SW1w
bC5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K3ZvaWQgTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXM6OmluaXRpYWxpemUoKQorewor
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMs
IHBsYXRmb3JtU3RyYXRlZ2llcywgKCkpOworICAgIHNldFBsYXRmb3JtU3RyYXRlZ2llcygmcGxh
dGZvcm1TdHJhdGVnaWVzKTsKK30KKworQ29va2llc1N0cmF0ZWd5KiBOZXR3b3JrUHJvY2Vzc1Bs
YXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlQ29va2llc1N0cmF0ZWd5KCkKK3sKKyAgICByZXR1cm4g
MDsKK30KKworRGF0YWJhc2VTdHJhdGVneSogTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdp
ZXM6OmNyZWF0ZURhdGFiYXNlU3RyYXRlZ3koKQoreworICAgIHJldHVybiAwOworfQorCitMb2Fk
ZXJTdHJhdGVneSogTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZUxvYWRl
clN0cmF0ZWd5KCkKK3sKKyAgICByZXR1cm4gdGhpczsKK30KKworUGFzdGVib2FyZFN0cmF0ZWd5
KiBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlUGFzdGVib2FyZFN0cmF0
ZWd5KCkKK3sKKyAgICByZXR1cm4gMDsKK30KKworUGx1Z2luU3RyYXRlZ3kqIE5ldHdvcmtQcm9j
ZXNzUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVQbHVnaW5TdHJhdGVneSgpCit7CisgICAgcmV0
dXJuIDA7Cit9CisKK1NoYXJlZFdvcmtlclN0cmF0ZWd5KiBOZXR3b3JrUHJvY2Vzc1BsYXRmb3Jt
U3RyYXRlZ2llczo6Y3JlYXRlU2hhcmVkV29ya2VyU3RyYXRlZ3koKQoreworICAgIHJldHVybiAw
OworfQorCitTdG9yYWdlU3RyYXRlZ3kqIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVz
OjpjcmVhdGVTdG9yYWdlU3RyYXRlZ3koKQoreworICAgIHJldHVybiAwOworfQorCitWaXNpdGVk
TGlua1N0cmF0ZWd5KiBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlVmlz
aXRlZExpbmtTdHJhdGVneSgpCit7CisgICAgcmV0dXJuIDA7Cit9CisKK1Jlc291cmNlTG9hZFNj
aGVkdWxlciogTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXM6OnJlc291cmNlTG9hZFNj
aGVkdWxlcigpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIDA7Cit9
CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXM6OmxvYWRSZXNvdXJjZVN5
bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQqLCB1bnNpZ25lZCBsb25nIHJlc291cmNlTG9h
ZElkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFN0b3JlZENyZWRlbnRpYWxzLCBS
ZXNvdXJjZUVycm9yJiwgUmVzb3VyY2VSZXNwb25zZSYsIFZlY3RvcjxjaGFyPiYgZGF0YSkKK3sK
KyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKworI2lmIEVOQUJMRShCTE9CKQorQmxvYlJl
Z2lzdHJ5KiBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlQmxvYlJlZ2lz
dHJ5KCkKK3sKKyAgICByZXR1cm4gbmV3IEJsb2JSZWdpc3RyeUltcGw7Cit9CisKKyNlbmRpZgor
CisKK30KClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmNwcApfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBz
dm46ZW9sLXN0eWxlCiAgICsgbmF0aXZlCgpJbmRleDogU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRl
Z2llcy5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdp
ZXNfaAorI2RlZmluZSBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llc19oCisKKyNpbmNs
dWRlIDxXZWJDb3JlL0xvYWRlclN0cmF0ZWd5Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9y
bVN0cmF0ZWdpZXMuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIE5ldHdvcmtQcm9j
ZXNzUGxhdGZvcm1TdHJhdGVnaWVzIDogcHVibGljIFdlYkNvcmU6OlBsYXRmb3JtU3RyYXRlZ2ll
cywgcHJpdmF0ZSBXZWJDb3JlOjpMb2FkZXJTdHJhdGVneSB7CitwdWJsaWM6CisgICAgc3RhdGlj
IHZvaWQgaW5pdGlhbGl6ZSgpOworICAgIAorcHJpdmF0ZToKKyAgICAvLyBXZWJDb3JlOjpQbGF0
Zm9ybVN0cmF0ZWdpZXMKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkNvb2tpZXNTdHJhdGVneSogY3Jl
YXRlQ29va2llc1N0cmF0ZWd5KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBXZWJDb3JlOjpEYXRh
YmFzZVN0cmF0ZWd5KiBjcmVhdGVEYXRhYmFzZVN0cmF0ZWd5KCkgT1ZFUlJJREU7CisgICAgdmly
dHVhbCBXZWJDb3JlOjpMb2FkZXJTdHJhdGVneSogY3JlYXRlTG9hZGVyU3RyYXRlZ3koKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlBhc3RlYm9hcmRTdHJhdGVneSogY3JlYXRlUGFz
dGVib2FyZFN0cmF0ZWd5KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBXZWJDb3JlOjpQbHVnaW5T
dHJhdGVneSogY3JlYXRlUGx1Z2luU3RyYXRlZ3koKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdl
YkNvcmU6OlNoYXJlZFdvcmtlclN0cmF0ZWd5KiBjcmVhdGVTaGFyZWRXb3JrZXJTdHJhdGVneSgp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgV2ViQ29yZTo6U3RvcmFnZVN0cmF0ZWd5KiBjcmVhdGVT
dG9yYWdlU3RyYXRlZ3koKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlZpc2l0ZWRM
aW5rU3RyYXRlZ3kqIGNyZWF0ZVZpc2l0ZWRMaW5rU3RyYXRlZ3koKSBPVkVSUklERTsKKworICAg
IC8vIFdlYkNvcmU6OkxvYWRlclN0cmF0ZWd5CisgICAgdmlydHVhbCBXZWJDb3JlOjpSZXNvdXJj
ZUxvYWRTY2hlZHVsZXIqIHJlc291cmNlTG9hZFNjaGVkdWxlcigpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCBsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KFdlYkNvcmU6Ok5ldHdvcmtpbmdD
b250ZXh0KiwgdW5zaWduZWQgbG9uZyByZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFscywgV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvciYsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBWZWN0b3I8Y2hh
cj4mIGRhdGEpIE9WRVJSSURFOworI2lmIEVOQUJMRShCTE9CKQorICAgIHZpcnR1YWwgV2ViQ29y
ZTo6QmxvYlJlZ2lzdHJ5KiBjcmVhdGVCbG9iUmVnaXN0cnkoKSBPVkVSUklERTsKKyNlbmRpZgor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKworI2VuZGlmIC8vIE5ldHdvcmtQcm9jZXNz
UGxhdGZvcm1TdHJhdGVnaWVzX2gKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmgKX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIG5hdGl2ZQoKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9GaWxlQVBJL0Jsb2JSZWdpc3RyYXRpb25EYXRhLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRmlsZUFQSS9CbG9iUmVnaXN0cmF0aW9uRGF0YS5jcHAJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRmlsZUFQSS9CbG9iUmVnaXN0
cmF0aW9uRGF0YS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTgyIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkJsb2JSZWdpc3RyYXRpb25EYXRhLmgi
CisKKyNpZiBFTkFCTEUoQkxPQikgJiYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKworI2luY2x1
ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgorI2luY2x1
ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQmxvYkRhdGEu
aD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitC
bG9iUmVnaXN0cmF0aW9uRGF0YTo6QmxvYlJlZ2lzdHJhdGlvbkRhdGEoKQoreworfQorCitCbG9i
UmVnaXN0cmF0aW9uRGF0YTo6QmxvYlJlZ2lzdHJhdGlvbkRhdGEoUGFzc093blB0cjxCbG9iRGF0
YT4gZGF0YSkKKyAgICA6IG1fZGF0YShkYXRhKQoreworICAgIGNvbnN0IEJsb2JEYXRhSXRlbUxp
c3QmIGl0ZW1zID0gbV9kYXRhLT5pdGVtcygpOworICAgIHNpemVfdCBmaWxlQ291bnQgPSAwOwor
ICAgIGZvciAoc2l6ZV90IGkgPSAwLCBjb3VudCA9IGl0ZW1zLnNpemUoKTsgaSA8IGNvdW50OyAr
K2kpIHsKKyAgICAgICAgaWYgKGl0ZW1zW2ldLnR5cGUgPT0gQmxvYkRhdGFJdGVtOjpGaWxlKQor
ICAgICAgICAgICAgKytmaWxlQ291bnQ7CisgICAgfQorCisgICAgU2FuZGJveEV4dGVuc2lvbjo6
SGFuZGxlQXJyYXkgc2FuZGJveEV4dGVuc2lvbnM7CisgICAgc2FuZGJveEV4dGVuc2lvbnMuYWxs
b2NhdGUoZmlsZUNvdW50KTsKKyAgICBzaXplX3QgZXh0ZW5zaW9uSW5kZXggPSAwOworICAgIGZv
ciAoc2l6ZV90IGkgPSAwLCBjb3VudCA9IGl0ZW1zLnNpemUoKTsgaSA8IGNvdW50OyArK2kpIHsK
KyAgICAgICAgY29uc3QgQmxvYkRhdGFJdGVtJiBpdGVtID0gaXRlbXNbaV07CisgICAgICAgIGlm
IChpdGVtLnR5cGUgPT0gQmxvYkRhdGFJdGVtOjpGaWxlKQorICAgICAgICAgICAgU2FuZGJveEV4
dGVuc2lvbjo6Y3JlYXRlSGFuZGxlKGl0ZW0ucGF0aCwgU2FuZGJveEV4dGVuc2lvbjo6UmVhZE9u
bHksIHNhbmRib3hFeHRlbnNpb25zW2V4dGVuc2lvbkluZGV4KytdKTsKKyAgICB9Cit9CisKK0Js
b2JSZWdpc3RyYXRpb25EYXRhOjp+QmxvYlJlZ2lzdHJhdGlvbkRhdGEoKQoreworfQorCitQYXNz
T3duUHRyPEJsb2JEYXRhPiBCbG9iUmVnaXN0cmF0aW9uRGF0YTo6cmVsZWFzZURhdGEoKSBjb25z
dAoreworICAgIHJldHVybiBtX2RhdGEucmVsZWFzZSgpOworfQorCit2b2lkIEJsb2JSZWdpc3Ry
YXRpb25EYXRhOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAoreworICAgIGVuY29kZXIgPDwgbV9kYXRhLT5jb250ZW50VHlwZSgpOworICAgIGVuY29kZXIg
PDwgbV9kYXRhLT5jb250ZW50RGlzcG9zaXRpb24oKTsKKworICAgIGNvbnN0IEJsb2JEYXRhSXRl
bUxpc3QmIGl0ZW1zID0gbV9kYXRhLT5pdGVtcygpOworICAgIGVuY29kZXIgPDwgc3RhdGljX2Nh
c3Q8dWludDY0X3Q+KGl0ZW1zLnNpemUoKSk7CisgICAgZm9yIChzaXplX3QgaSA9IDAsIGNvdW50
ID0gaXRlbXMuc2l6ZSgpOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICBjb25zdCBCbG9iRGF0
YUl0ZW0mIGl0ZW0gPSBpdGVtc1tpXTsKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1
aW50MzJfdD4oaXRlbS50eXBlKTsKKyAgICAgICAgc3dpdGNoIChpdGVtLnR5cGUpIHsKKyAgICAg
ICAgY2FzZSBCbG9iRGF0YUl0ZW06OkRhdGE6CisgICAgICAgICAgICAvLyBUaGVyZSBpcyBubyB3
YXkgdG8gY3JlYXRlIGEgcGFydGlhbCBkYXRhIGl0ZW0uCisgICAgICAgICAgICBBU1NFUlQoIWl0
ZW0ub2Zmc2V0KTsKKyAgICAgICAgICAgIEFTU0VSVChpdGVtLmxlbmd0aCA9PSBCbG9iRGF0YUl0
ZW06OnRvRW5kT2ZGaWxlKTsKKyAgICAgICAgICAgIGVuY29kZXIgPDwgQ29yZUlQQzo6RGF0YVJl
ZmVyZW5jZShyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihpdGVtLmRhdGEtPmRhdGEo
KSksIGl0ZW0uZGF0YS0+bGVuZ3RoKCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgQmxvYkRhdGFJdGVtOjpGaWxlOgorICAgICAgICAgICAgZW5jb2RlciA8PCBpdGVtLm9mZnNl
dDsKKyAgICAgICAgICAgIGVuY29kZXIgPDwgaXRlbS5sZW5ndGg7CisgICAgICAgICAgICBlbmNv
ZGVyIDw8IGl0ZW0uZXhwZWN0ZWRNb2RpZmljYXRpb25UaW1lOworICAgICAgICAgICAgZW5jb2Rl
ciA8PCBpdGVtLnBhdGg7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBCbG9iRGF0
YUl0ZW06OkJsb2I6CisgICAgICAgICAgICBlbmNvZGVyIDw8IGl0ZW0ub2Zmc2V0OworICAgICAg
ICAgICAgZW5jb2RlciA8PCBpdGVtLmxlbmd0aDsKKyAgICAgICAgICAgIGVuY29kZXIgPDwgaXRl
bS51cmw7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIGVuY29k
ZXIgPDwgbV9zYW5kYm94RXh0ZW5zaW9uczsKK30KKworYm9vbCBCbG9iUmVnaXN0cmF0aW9uRGF0
YTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgQmxvYlJlZ2lzdHJh
dGlvbkRhdGEmIHJlc3VsdCkKK3sKKyAgICBBU1NFUlQoIXJlc3VsdC5tX2RhdGEpOworICAgIHJl
c3VsdC5tX2RhdGEgPSBCbG9iRGF0YTo6Y3JlYXRlKCk7CisKKyAgICBTdHJpbmcgY29udGVudFR5
cGU7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjb250ZW50VHlwZSkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICByZXN1bHQubV9kYXRhLT5zZXRDb250ZW50VHlwZShjb250ZW50VHlwZSk7
CisKKyAgICBTdHJpbmcgY29udGVudERpc3Bvc2l0aW9uOworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUoY29udGVudERpc3Bvc2l0aW9uKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJlc3Vs
dC5tX2RhdGEtPnNldENvbnRlbnREaXNwb3NpdGlvbihjb250ZW50RGlzcG9zaXRpb24pOworCisg
ICAgdWludDY0X3QgaXRlbUNvdW50OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaXRlbUNvdW50
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgZm9yICh1aW50NjRfdCBpID0gMDsgaSA8
IGl0ZW1Db3VudDsgKytpKSB7CisgICAgICAgIHVpbnQzMl90IHR5cGU7CisgICAgICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUodHlwZSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IHN3aXRjaCAodHlwZSkgeworICAgICAgICBjYXNlIEJsb2JEYXRhSXRlbTo6RGF0YTogeworICAg
ICAgICAgICAgQ29yZUlQQzo6RGF0YVJlZmVyZW5jZSBkYXRhOworICAgICAgICAgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShkYXRhKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgICAgICBSZWZQdHI8UmF3RGF0YT4gcmF3RGF0YSA9IFJhd0RhdGE6OmNyZWF0ZSgpOworICAg
ICAgICAgICAgcmF3RGF0YS0+bXV0YWJsZURhdGEoKS0+YXBwZW5kKGRhdGEuZGF0YSgpLCBkYXRh
LnNpemUoKSk7CisgICAgICAgICAgICByZXN1bHQubV9kYXRhLT5hcHBlbmREYXRhKHJhd0RhdGEu
cmVsZWFzZSgpLCAwLCBCbG9iRGF0YUl0ZW06OnRvRW5kT2ZGaWxlKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgQmxvYkRhdGFJdGVtOjpGaWxlOiB7CisgICAg
ICAgICAgICBsb25nIGxvbmcgb2Zmc2V0OworICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShvZmZzZXQpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGxv
bmcgbG9uZyBsZW5ndGg7CisgICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGxlbmd0aCkp
CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgZG91YmxlIGV4cGVj
dGVkTW9kaWZpY2F0aW9uVGltZTsKKyAgICAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZXhw
ZWN0ZWRNb2RpZmljYXRpb25UaW1lKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgICAgICBTdHJpbmcgcGF0aDsKKyAgICAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cGF0aCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgcmVzdWx0
Lm1fZGF0YS0+YXBwZW5kRmlsZShwYXRoLCBvZmZzZXQsIGxlbmd0aCwgZXhwZWN0ZWRNb2RpZmlj
YXRpb25UaW1lKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2Ug
QmxvYkRhdGFJdGVtOjpCbG9iOiB7CisgICAgICAgICAgICBsb25nIGxvbmcgb2Zmc2V0OworICAg
ICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShvZmZzZXQpKQorICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgICAgIGxvbmcgbG9uZyBsZW5ndGg7CisgICAgICAgICAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKGxlbmd0aCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgICAgICAgICAgU3RyaW5nIHVybDsKKyAgICAgICAgICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUodXJsKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICByZXN1
bHQubV9kYXRhLT5hcHBlbmRCbG9iKEtVUkwoS1VSTCgpLCB1cmwpLCBvZmZzZXQsIGxlbmd0aCk7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBkZWZhdWx0OgorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShyZXN1bHQubV9zYW5kYm94RXh0ZW5zaW9ucykpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIHJldHVybiB0cnVlOworfQorCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoQkxPQikg
JiYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9GaWxlQVBJL0Jsb2JSZWdpc3RyYXRpb25EYXRhLmNwcApfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
CkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgbmF0aXZlCgpJbmRleDogU291cmNlL1dlYktpdDIv
U2hhcmVkL0ZpbGVBUEkvQmxvYlJlZ2lzdHJhdGlvbkRhdGEuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvRmlsZUFQSS9CbG9iUmVnaXN0cmF0aW9uRGF0YS5oCShyZXZpc2lv
biAwKQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0ZpbGVBUEkvQmxvYlJlZ2lzdHJhdGlvbkRh
dGEuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
QmxvYlJlZ2lzdHJhdGlvbkRhdGFfaAorI2RlZmluZSBCbG9iUmVnaXN0cmF0aW9uRGF0YV9oCisK
KyNpZiBFTkFCTEUoQkxPQikgJiYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKworI2luY2x1ZGUg
IlNhbmRib3hFeHRlbnNpb24uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQmxvYkRh
dGE7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBCbG9iUmVnaXN0cmF0aW9uRGF0
YSB7CitXVEZfTUFLRV9OT05DT1BZQUJMRShCbG9iUmVnaXN0cmF0aW9uRGF0YSk7CitwdWJsaWM6
CisgICAgQmxvYlJlZ2lzdHJhdGlvbkRhdGEoKTsKKyAgICBCbG9iUmVnaXN0cmF0aW9uRGF0YShQ
YXNzT3duUHRyPFdlYkNvcmU6OkJsb2JEYXRhPik7CisgICAgfkJsb2JSZWdpc3RyYXRpb25EYXRh
KCk7CisKKyAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsK
KyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiwgQmxvYlJl
Z2lzdHJhdGlvbkRhdGEmKTsKKworICAgIFBhc3NPd25QdHI8V2ViQ29yZTo6QmxvYkRhdGE+IHJl
bGVhc2VEYXRhKCkgY29uc3Q7CisgICAgY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJy
YXkmIHNhbmRib3hFeHRlbnNpb25zKCkgY29uc3QgeyByZXR1cm4gbV9zYW5kYm94RXh0ZW5zaW9u
czsgfQorCitwcml2YXRlOgorICAgIG11dGFibGUgT3duUHRyPFdlYkNvcmU6OkJsb2JEYXRhPiBt
X2RhdGE7CisgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkgbV9zYW5kYm94RXh0ZW5z
aW9uczsKK307CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShCTE9CKSAmJiBFTkFCTEUoTkVUV09S
S19QUk9DRVNTKQorCisjZW5kaWYgLy8gQmxvYlJlZ2lzdHJhdGlvbkRhdGFfaAoKUHJvcGVydHkg
Y2hhbmdlcyBvbjogU291cmNlL1dlYktpdDIvU2hhcmVkL0ZpbGVBUEkvQmxvYlJlZ2lzdHJhdGlv
bkRhdGEuaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgbmF0aXZlCgpJbmRl
eDogU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkocmV2aXNpb24gMTQ0NDY5KQorKysgU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMDkyLDggKzEwOTIsMTQgQEAKIAkJ
RTEzM0ZEOEExNDIzREQ3RjAwRkM3QkZCIC8qIFdlYktpdC5pY25zIGluIFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTMzRkQ4OTE0MjNERDdGMDBGQzdCRkIg
LyogV2ViS2l0LmljbnMgKi87IH07CiAJCUUxMzRGMDE3MTJFQTVEMzMwMDRFQzU4RCAvKiBXS1By
aW50aW5nVmlldy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTEzNEYwMTUxMkVBNUQxMTAwNEVDNThEIC8qIFdLUHJpbnRpbmdWaWV3LmggKi87IH07CiAJ
CUUxMzRGMDFBMTJFQTVEOTkwMDRFQzU4RCAvKiBXS1ByaW50aW5nVmlldy5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMzRGMDE5MTJFQTVEOTkwMDRF
QzU4RCAvKiBXS1ByaW50aW5nVmlldy5tbSAqLzsgfTsKKwkJRTE0QTk1NDkxNkUwMTZBNDAwNjhE
RTgyIC8qIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxNEE5NTQ3MTZFMDE2QTQwMDY4REU4
MiAvKiBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAgKi87IH07CisJCUUxNEE5
NTRBMTZFMDE2QTQwMDY4REU4MiAvKiBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE0QTk1NDgx
NkUwMTZBNDAwNjhERTgyIC8qIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmggKi87
IH07CiAJCUUxNTEzQzY2MTY2RUFCQjIwMDE0OUZDQiAvKiBDaGlsZFByb2Nlc3NQcm94eS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTUxM0M2NDE2
NkVBQkIyMDAxNDlGQ0IgLyogQ2hpbGRQcm9jZXNzUHJveHkuY3BwICovOyB9OwogCQlFMTUxM0M2
NzE2NkVBQkIyMDAxNDlGQ0IgLyogQ2hpbGRQcm9jZXNzUHJveHkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxNTEzQzY1MTY2RUFCQjIwMDE0OUZDQiAv
KiBDaGlsZFByb2Nlc3NQcm94eS5oICovOyB9OworCQlFMTcwODc2QjE2RDZDQTY5MDBGOTkyMjYg
LyogQmxvYlJlZ2lzdHJ5UHJveHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTE3MDg3NjkxNkQ2Q0E2OTAwRjk5MjI2IC8qIEJsb2JSZWdpc3RyeVBy
b3h5LmNwcCAqLzsgfTsKKwkJRTE3MDg3NkMxNkQ2Q0E2OTAwRjk5MjI2IC8qIEJsb2JSZWdpc3Ry
eVByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
MTcwODc2QTE2RDZDQTY5MDBGOTkyMjYgLyogQmxvYlJlZ2lzdHJ5UHJveHkuaCAqLzsgfTsKKwkJ
RTE3MDg3NzAxNkQ2Q0ZFNTAwRjk5MjI2IC8qIEJsb2JSZWdpc3RyYXRpb25EYXRhLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxNzA4NzZFMTZENkNG
RTQwMEY5OTIyNiAvKiBCbG9iUmVnaXN0cmF0aW9uRGF0YS5jcHAgKi87IH07CisJCUUxNzA4Nzcx
MTZENkNGRTUwMEY5OTIyNiAvKiBCbG9iUmVnaXN0cmF0aW9uRGF0YS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE3MDg3NkYxNkQ2Q0ZFNTAwRjk5MjI2
IC8qIEJsb2JSZWdpc3RyYXRpb25EYXRhLmggKi87IH07CiAJCUUxNzkwODhEMTY5QkFBNjIwMDY5
MDRDNyAvKiBTZWNJdGVtU2hpbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMThFNjk0NzE2OUI3N0M4MDA5QjY2NzAgLyogU2VjSXRlbVNoaW0uY3Bw
ICovOyB9OwogCQlFMTc5MDg4RjE2OUJBQTZBMDA2OTA0QzcgLyogU2VjSXRlbVNoaW0uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxOEU2OTQ4MTY5Qjc3
QzgwMDlCNjY3MCAvKiBTZWNJdGVtU2hpbS5oICovOyB9OwogCQlFMTc5MDg5MDE2OUJBQTdGMDA2
OTA0QzcgLyogU2VjSXRlbVNoaW1NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE4RTY5MTExNjlCNjY3QjAwOUI2NjcwIC8q
IFNlY0l0ZW1TaGltTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKQEAgLTE0NjgsOCArMTQ3NCw4
IEBACiAJCTFBMzAwNjZDMTExMEY0RjcwMDMxOTM3QyAvKiBSZXNwb25zaXZlbmVzc1RpbWVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlc3BvbnNpdmVuZXNzVGltZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUEzMEVBQzUxMTVEN0RBMzAwNTNFOTM3IC8q
IENvbm5lY3Rpb25NYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
Q29ubmVjdGlvbk1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBMzM0REVB
MTZERThCNjgwMDZBOEUzOCAvKiBTdG9yYWdlQXJlYVByb3h5Lm1lc3NhZ2VzLmluICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFN0
b3JhZ2VBcmVhUHJveHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTFBMzM0REVCMTZERThGODgwMDZBOEUzOCAvKiBTdG9yYWdlQXJlYVByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFN0b3JhZ2VBcmVh
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gU3RvcmFnZUFyZWFQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0gICAgCQkxQTMzNERFQzE2
REU4Rjg4MDA2QThFMzggLyogU3RvcmFnZUFyZWFQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFN0b3JhZ2VBcmVhUHJveHlNZXNzYWdlcy5oOyBwYXRoID0g
U3RvcmFnZUFyZWFQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTFBMzM0REVCMTZERThGODgwMDZBOEUzOCAvKiBTdG9yYWdlQXJlYVByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0b3JhZ2VBcmVh
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkx
QTMzNERFQzE2REU4Rjg4MDA2QThFMzggLyogU3RvcmFnZUFyZWFQcm94eU1lc3NhZ2VzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3JhZ2VBcmVhUHJveHlNZXNzYWdlcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTNENjBGRjEzQTdDQzJBMDBGOTVENEUg
LyogUGx1Z2luTW9kdWxlSW5mby5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBQbHVnaW5Nb2R1bGVJbmZvLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MUEzRDYxMDAxM0E3Q0MyQTAwRjk1RDRFIC8qIFBsdWdpbk1vZHVsZUluZm8uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGx1Z2luTW9kdWxlSW5mby5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxQTNENjEwNDEzQTdGMDNBMDBGOTVENEUgLyogQXJndW1lbnRDb2Rl
cnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXJndW1lbnRDb2Rl
cnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjUzNCw4ICsyNTQwLDE0IEBA
CiAJCUUxMzRGMDE5MTJFQTVEOTkwMDRFQzU4RCAvKiBXS1ByaW50aW5nVmlldy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLUHJpbnRpbmdWaWV3Lm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTNBOEEyQzE2Mjg3OUFDMDAzOTI5MjkgLyogU2hh
cmVkV29ya2VyUHJvY2Vzcy5hcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGlj
aXRGaWxlVHlwZSA9IHdyYXBwZXIuYXBwbGljYXRpb247IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0
aCA9IFNoYXJlZFdvcmtlclByb2Nlc3MuYXBwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNf
RElSOyB9OwogCQlFMTNBOEE0QjE2Mjg3QTFCMDAzOTI5MjkgLyogU2hhcmVkV29ya2VyUHJvY2Vz
cy54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBTaGFyZWRXb3JrZXJQcm9jZXNzLnhjY29uZmlnOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMTRBOTU0NzE2RTAxNkE0MDA2OERFODIgLyog
TmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOyBw
YXRoID0gTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMTRBOTU0ODE2RTAxNkE0MDA2OERFODIg
LyogTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaDsgcGF0aCA9
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxNTEzQzY0MTY2RUFCQjIwMDE0OUZDQiAvKiBDaGls
ZFByb2Nlc3NQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBD
aGlsZFByb2Nlc3NQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxNTEz
QzY1MTY2RUFCQjIwMDE0OUZDQiAvKiBDaGlsZFByb2Nlc3NQcm94eS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDaGlsZFByb2Nlc3NQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlFMTcwODc2OTE2RDZDQTY5MDBGOTkyMjYgLyogQmxvYlJlZ2lzdHJ5UHJv
eHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQmxvYlJlZ2lzdHJ5
UHJveHkuY3BwOyBwYXRoID0gV2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3RyeVByb3h5LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE3MDg3NkExNkQ2Q0E2OTAwRjk5MjI2
IC8qIEJsb2JSZWdpc3RyeVByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IEJsb2JSZWdpc3RyeVByb3h5Lmg7IHBhdGggPSBXZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lz
dHJ5UHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE3MDg3NkUxNkQ2Q0ZF
NDAwRjk5MjI2IC8qIEJsb2JSZWdpc3RyYXRpb25EYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IEJsb2JSZWdpc3RyYXRpb25EYXRhLmNwcDsgcGF0aCA9IEZpbGVB
UEkvQmxvYlJlZ2lzdHJhdGlvbkRhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlFMTcwODc2RjE2RDZDRkU1MDBGOTkyMjYgLyogQmxvYlJlZ2lzdHJhdGlvbkRhdGEuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQmxvYlJlZ2lzdHJhdGlvbkRhdGEuaDsgcGF0
aCA9IEZpbGVBUEkvQmxvYlJlZ2lzdHJhdGlvbkRhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTE3OUZEOUIxMzREMzgwNjAwMTVCODgzIC8qIEFyZ3VtZW50Q29kZXJzTWFjLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFyZ3VtZW50Q29kZXJzTWFjLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxNzlGRDlFMTM0RDM4MjUwMDE1Qjg4MyAvKiBB
cmd1bWVudENvZGVyc01hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IEFyZ3VtZW50Q29kZXJzTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
MTdBRTJDMTE2QjlDMTM5MDAxQzQyRjEgLyogY29tLmFwcGxlLldlYktpdC5OZXR3b3JrUHJvY2Vz
cy5zYi5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBjb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtQcm9jZXNzLnNiLmluOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzA3NSw2ICszMDg3LDcgQEAKIAkJCQlCQzExMUI1
RjExMkY2MzVFMDAzMzdCQUIgLyogQ29yZUlQQ1N1cHBvcnQgKi8sCiAJCQkJNTE4RThFRjIxNkIy
MDhGODAwRTkxNDI5IC8qIERvd25sb2FkcyAqLywKIAkJCQlCQzgyODM2ODE2QjM1ODc5MDBBMjc4
RkUgLyogRW50cnlQb2ludFV0aWxpdGllcyAqLywKKwkJCQlFMTcwODc3MjE2RDZDRkVDMDBGOTky
MjYgLyogRmlsZUFQSSAqLywKIAkJCQlCQzExMUI1QTExMkY2MjgyMDAzMzdCQUIgLyogbWFjICov
LAogCQkJCTUxQThBNjBEMTYyN0YyQUMwMDBEOTBFOSAvKiBOZXR3b3JrICovLAogCQkJCUJDQUYz
NUU1MTZDQTI1M0IwMEQ0RTlGQyAvKiBPZmZsaW5lU3RvcmFnZSAqLywKQEAgLTM0NzEsNiArMzQ4
NCw4IEBACiAJCQkJNTEzQTE2NEIxNjMwQTlCRjAwNUQ3RDIyIC8qIE5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluICovLAogCQkJCTUxMENDN0RGMTYxMzhFMjkwMEQwM0VE
MyAvKiBOZXR3b3JrUHJvY2Vzcy5jcHAgKi8sCiAJCQkJNTEwQ0M3RTAxNjEzOEUyOTAwRDAzRUQz
IC8qIE5ldHdvcmtQcm9jZXNzLmggKi8sCisJCQkJRTE0QTk1NDcxNkUwMTZBNDAwNjhERTgyIC8q
IE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCAqLywKKwkJCQlFMTRBOTU0ODE2
RTAxNkE0MDA2OERFODIgLyogTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaCAqLywK
IAkJCQk1MUE4QTYxNzE2MjdGNUJCMDAwRDkwRTkgLyogTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMu
aW4gKi8sCiAJCQkJNTFGRDE4QjMxNjUxRkJBRDAwREJFMUNFIC8qIE5ldHdvcmtSZXNvdXJjZUxv
YWRlci5jcHAgKi8sCiAJCQkJNTFGRDE4QjQxNjUxRkJBRDAwREJFMUNFIC8qIE5ldHdvcmtSZXNv
dXJjZUxvYWRlci5oICovLApAQCAtMzY4Niw2ICszNzAxLDcgQEAKIAkJCQk1MTJFMzUyQTEzMEI1
NTk5MDBBQkQxOUEgLyogQXBwbGljYXRpb25DYWNoZSAqLywKIAkJCQkzMzA5MzQ0QjEzMTVCOTNB
MDA5N0E3QkMgLyogQ29va2llcyAqLywKIAkJCQlCQ0FDQzQzQjE2QjI0QzVEMDBCNkUwOTIgLyog
RW50cnlQb2ludCAqLywKKwkJCQlFMTcwODc2RDE2RDZDQTcyMDBGOTkyMjYgLyogRmlsZUFQSSAq
LywKIAkJCQlDRDczQkEzRDEzMUEyQTIxMDBFRURFRDIgLyogRnVsbFNjcmVlbiAqLywKIAkJCQlC
QzBFNUZDQjEyRDY5NkREMDAxMkE3MkEgLyogR2VvbG9jYXRpb24gKi8sCiAJCQkJNTFGQkI5QzEx
MzJFMDc5MjAwRjMyN0I0IC8qIEljb25EYXRhYmFzZSAqLywKQEAgLTQ5NzMsNiArNDk4OSwyNSBA
QAogCQkJcGF0aCA9IFNoYXJlZFdvcmtlclByb2Nlc3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwogCQl9OworCQlFMTcwODc2RDE2RDZDQTcyMDBGOTkyMjYgLyogRmlsZUFQSSAqLyA9IHsK
KwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJRTE3MDg3NjkxNkQ2Q0E2
OTAwRjk5MjI2IC8qIEJsb2JSZWdpc3RyeVByb3h5LmNwcCAqLywKKwkJCQlFMTcwODc2QTE2RDZD
QTY5MDBGOTkyMjYgLyogQmxvYlJlZ2lzdHJ5UHJveHkuaCAqLywKKwkJCSk7CisJCQluYW1lID0g
RmlsZUFQSTsKKwkJCXBhdGggPSAuLjsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07
CisJCUUxNzA4NzcyMTZENkNGRUMwMEY5OTIyNiAvKiBGaWxlQVBJICovID0geworCQkJaXNhID0g
UEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlFMTcwODc2RTE2RDZDRkU0MDBGOTkyMjYg
LyogQmxvYlJlZ2lzdHJhdGlvbkRhdGEuY3BwICovLAorCQkJCUUxNzA4NzZGMTZENkNGRTUwMEY5
OTIyNiAvKiBCbG9iUmVnaXN0cmF0aW9uRGF0YS5oICovLAorCQkJKTsKKwkJCW5hbWUgPSBGaWxl
QVBJOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJRTE5OTg3NUIxNDJCRjlD
RjAwQkIyREU3IC8qIFBERiAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCkBAIC01NTY5LDYgKzU2MDQsOSBAQAogCQkJCUJDNUQyNEMyMTZDRDcwNkQwMDdENTQ2MSAv
KiBXS0RPTU5vZGVQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVEMjRDNTE2Q0Q3MDg4
MDA3RDU0NjEgLyogV0tET01SYW5nZVByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNUQy
NEM3MTZDRDczQzUwMDdENTQ2MSAvKiBXS0J1bmRsZVJhbmdlSGFuZGxlUHJpdmF0ZS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJRTE3MDg3NkMxNkQ2Q0E2OTAwRjk5MjI2IC8qIEJsb2JSZWdpc3RyeVBy
b3h5LmggaW4gSGVhZGVycyAqLywKKwkJCQlFMTcwODc3MTE2RDZDRkU1MDBGOTkyMjYgLyogQmxv
YlJlZ2lzdHJhdGlvbkRhdGEuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxNEE5NTRBMTZFMDE2QTQw
MDY4REU4MiAvKiBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJ
CX07CkBAIC02NzcxLDYgKzY4MDksOSBAQAogCQkJCUJDQUYzNUU4MTZDQTI1M0IwMEQ0RTlGQyAv
KiBPZmZsaW5lU3RvcmFnZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQkNBRjM2MjUxNkNBMjlBMjAwRDRFOUZDIC8qIE9mZmxpbmVTdG9yYWdlUHJvY2Vz
c01lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUE0RDVBOTE2Q0FDNEZG
MDAwRTYxNUUgLyogU3RhdGlzdGljc1JlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTE3
MDg3NkIxNkQ2Q0E2OTAwRjk5MjI2IC8qIEJsb2JSZWdpc3RyeVByb3h5LmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCUUxNzA4NzcwMTZENkNGRTUwMEY5OTIyNiAvKiBCbG9iUmVnaXN0cmF0aW9uRGF0
YS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMTRBOTU0OTE2RTAxNkE0MDA2OERFODIgLyogTmV0
d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwog
CQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0
cnlQcm94eS5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Zp
bGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY1IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkJsb2JSZWdpc3Ry
eVByb3h5LmgiCisKKyNpZiBFTkFCTEUoQkxPQikgJiYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykK
KworI2luY2x1ZGUgIkJsb2JSZWdpc3RyYXRpb25EYXRhLmgiCisjaW5jbHVkZSAiTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1
ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Jsb2JEYXRhLmg+CisKK3VzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBCbG9iUmVn
aXN0cnlQcm94eTo6cmVnaXN0ZXJCbG9iVVJMKGNvbnN0IEtVUkwmIHVybCwgUGFzc093blB0cjxC
bG9iRGF0YT4gYmxvYkRhdGEpCit7CisgICAgQVNTRVJUKFdlYlByb2Nlc3M6OnNoYXJlZCgpLnVz
ZXNOZXR3b3JrUHJvY2VzcygpKTsKKworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLm5ldHdvcmtD
b25uZWN0aW9uKCktPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OlJlZ2lzdGVyQmxvYlVSTCh1cmwsIEJsb2JSZWdpc3RyYXRpb25EYXRh
KGJsb2JEYXRhKSksIDApOworfQorCit2b2lkIEJsb2JSZWdpc3RyeVByb3h5OjpyZWdpc3RlckJs
b2JVUkwoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBLVVJMJiBzcmNVUkwpCit7CisgICAgQVNTRVJU
KFdlYlByb2Nlc3M6OnNoYXJlZCgpLnVzZXNOZXR3b3JrUHJvY2VzcygpKTsKKworICAgIFdlYlBy
b2Nlc3M6OnNoYXJlZCgpLm5ldHdvcmtDb25uZWN0aW9uKCktPmNvbm5lY3Rpb24oKS0+c2VuZChN
ZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlJlZ2lzdGVyQmxvYlVSTEZy
b21VUkwodXJsLCBzcmNVUkwpLCAwKTsKK30KKwordm9pZCBCbG9iUmVnaXN0cnlQcm94eTo6dW5y
ZWdpc3RlckJsb2JVUkwoY29uc3QgS1VSTCYgdXJsKQoreworICAgIEFTU0VSVChXZWJQcm9jZXNz
OjpzaGFyZWQoKS51c2VzTmV0d29ya1Byb2Nlc3MoKSk7CisKKyAgICBXZWJQcm9jZXNzOjpzaGFy
ZWQoKS5uZXR3b3JrQ29ubmVjdGlvbigpLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpVbnJlZ2lzdGVyQmxvYlVSTCh1cmwpLCAwKTsK
K30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKEJMT0IpICYmIEVOQUJMRShORVRXT1JLX1BST0NF
U1MpCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0ZpbGVB
UEkvQmxvYlJlZ2lzdHJ5UHJveHkuY3BwCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUK
ICAgKyBuYXRpdmUKCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0ZpbGVBUEkvQmxv
YlJlZ2lzdHJ5UHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5oCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBCbG9iUmVnaXN0cnlQcm94eV9o
CisjZGVmaW5lIEJsb2JSZWdpc3RyeVByb3h5X2gKKworI2lmIEVOQUJMRShCTE9CKSAmJiBFTkFC
TEUoTkVUV09SS19QUk9DRVNTKQorCisjaW5jbHVkZSA8V2ViQ29yZS9CbG9iUmVnaXN0cnkuaD4K
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIEJsb2JSZWdpc3RyeVByb3h5IDogcHVibGlj
IFdlYkNvcmU6OkJsb2JSZWdpc3RyeSB7CitwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIHJlZ2lz
dGVyQmxvYlVSTChjb25zdCBXZWJDb3JlOjpLVVJMJiwgUGFzc093blB0cjxXZWJDb3JlOjpCbG9i
RGF0YT4pOworICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckJsb2JVUkwoY29uc3QgV2ViQ29yZTo6
S1VSTCYsIGNvbnN0IFdlYkNvcmU6OktVUkwmIHNyY1VSTCk7CisgICAgdmlydHVhbCB2b2lkIHVu
cmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFdlYkNvcmU6OktVUkwmKTsKK307CisKK30KKworI2VuZGlm
IC8vIEVOQUJMRShCTE9CKSAmJiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorCisjZW5kaWYgLy8g
QmxvYlJlZ2lzdHJ5UHJveHlfaAoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3RyeVByb3h5LmgKX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDog
c3ZuOmVvbC1zdHlsZQogICArIG5hdGl2ZQoKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3Ry
YXRlZ2llcy5jcHAJKHJldmlzaW9uIDE0NDQ2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNTMsNiArNTMsNyBAQAogI2luY2x1ZGUgPHd0Zi9BdG9taWNzLmg+CiAKICNpZiBFTkFC
TEUoTkVUV09SS19QUk9DRVNTKQorI2luY2x1ZGUgIkJsb2JSZWdpc3RyeVByb3h5LmgiCiAjaW5j
bHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUg
Ik5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZFNj
aGVkdWxlci5oIgpAQCAtMjQ3LDYgKzI0OCwxNCBAQCB2b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2ll
czo6bG9hZFJlc291cmNlCiAgICAgbWVtY3B5KGRhdGEuZGF0YSgpLCBkYXRhUmVmZXJlbmNlLmRh
dGEoKSwgZGF0YVJlZmVyZW5jZS5zaXplKCkpOwogfQogCisjaWYgRU5BQkxFKEJMT0IpCitCbG9i
UmVnaXN0cnkqIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlQmxvYlJlZ2lzdHJ5KCkKK3sK
KyAgICBpZiAoIVdlYlByb2Nlc3M6OnNoYXJlZCgpLnVzZXNOZXR3b3JrUHJvY2VzcygpKQorICAg
ICAgICByZXR1cm4gTG9hZGVyU3RyYXRlZ3k6OmNyZWF0ZUJsb2JSZWdpc3RyeSgpOworICAgIHJl
dHVybiBuZXcgQmxvYlJlZ2lzdHJ5UHJveHk7ICAgIAorfQorI2VuZGlmCiAjZW5kaWYKIAogLy8g
UGx1Z2luU3RyYXRlZ3kKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAkocmV2
aXNpb24gMTQ0NDY5KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAkod29ya2luZyBjb3B5KQpAQCAtNzQsNiArNzQsOSBA
QCBwcml2YXRlOgogI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAgICAgdmlydHVhbCBXZWJD
b3JlOjpSZXNvdXJjZUxvYWRTY2hlZHVsZXIqIHJlc291cmNlTG9hZFNjaGVkdWxlcigpIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgdm9pZCBsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KFdlYkNvcmU6
Ok5ldHdvcmtpbmdDb250ZXh0KiwgdW5zaWduZWQgbG9uZyByZXNvdXJjZUxvYWRJZGVudGlmaWVy
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50
aWFscywgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Um
LCBWZWN0b3I8Y2hhcj4mIGRhdGEpIE9WRVJSSURFOworI2lmIEVOQUJMRShCTE9CKQorICAgIHZp
cnR1YWwgV2ViQ29yZTo6QmxvYlJlZ2lzdHJ5KiBjcmVhdGVCbG9iUmVnaXN0cnkoKSBPVkVSUklE
RTsKKyNlbmRpZgogI2VuZGlmCiAKICAgICAvLyBXZWJDb3JlOjpQbHVnaW5TdHJhdGVneQo=
</data>
<flag name="review"
          id="211849"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>