<?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>50156</bug_id>
          
          <creation_ts>2010-11-29 07:50:10 -0800</creation_ts>
          <short_desc>Web Inspector: make ScriptCallStack and ScriptArguments reference counted</short_desc>
          <delta_ts>2010-11-30 00:27:26 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Yury Semikhatsky">yurys</reporter>
          <assigned_to name="Yury Semikhatsky">yurys</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>commit-queue</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>314409</commentid>
    <comment_count>0</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-11-29 07:50:10 -0800</bug_when>
    <thetext>Web Inspector: make ScriptCallStack and ScriptArguments reference counted. This would simplify the code since these objects are read-only and may be shared by various inspector components.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314412</commentid>
    <comment_count>1</comment_count>
      <attachid>75026</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-11-29 07:53:34 -0800</bug_when>
    <thetext>Created attachment 75026
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314883</commentid>
    <comment_count>2</comment_count>
      <attachid>75026</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-11-30 00:15:59 -0800</bug_when>
    <thetext>Comment on attachment 75026
Patch

Clearing flags on attachment: 75026

Committed r72895: &lt;http://trac.webkit.org/changeset/72895&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314884</commentid>
    <comment_count>3</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-11-30 00:16:10 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314892</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-30 00:27:26 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 75026:

http/tests/appcache/foreign-fallback.html

Please file bugs against the tests.  These tests were authored by ap@webkit.org.  The commit-queue is continuing to process your patch.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75026</attachid>
            <date>2010-11-29 07:53:34 -0800</date>
            <delta_ts>2010-11-30 00:15:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-50156-20101129185331.patch</filename>
            <type>text/plain</type>
            <size>42186</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OWRiMDE1Yjc2MzI5MDYwMTlhOTVhM2YwNjllMmFjZDY1MWNiOTZiZi4uMzE3YmEwYjMxOWYxMDhl
M2FkY2I2YjMxZWJjYTk3MWI0YzkzNTE3YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3NCBAQAorMjAxMC0xMS0yOSAgWXVy
eSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBtYWtlIFNjcmlwdENh
bGxTdGFjayBhbmQgU2NyaXB0QXJndW1lbnRzIHJlZmVyZW5jZSBjb3VudGVkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDE1NgorCisgICAgICAgIE5v
IG5ldyB0ZXN0cy4gVGhpcyByZWZhY3RvcmluZyBpcyBjb3ZlcmVkIHdpdGggZXhpc3RpbmcgaW5z
cGVjdG9yIHRlc3RzLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNDb25zb2xlQ3VzdG9tLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkpTQ29uc29sZTo6cHJvZmlsZSk6CisgICAgICAgIChXZWJD
b3JlOjpKU0NvbnNvbGU6OnByb2ZpbGVFbmQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1Njcmlw
dENhbGxTdGFja0ZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlU2NyaXB0Q2Fs
bFN0YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVNjcmlwdEFyZ3VtZW50cyk6CisgICAg
ICAgICogYmluZGluZ3MvanMvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPYmouY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25DdXN0b21BcmdzQW5kRXhjZXB0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpJbnRl
cm5hbDo6Y3VzdG9tQXJnc0FuZEV4Y2VwdGlvbkNhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5n
cy92OC9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0
ZVNjcmlwdENhbGxTdGFjayk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVTY3JpcHRBcmd1bWVu
dHMpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuaDoKKyAg
ICAgICAgKiBiaW5kaW5ncy92OC9WOENvbnNvbGVNZXNzYWdlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlY4Q29uc29sZU1lc3NhZ2U6OmhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6VjhDb25z
b2xlTWVzc2FnZTo6ZGlzcGF0Y2hOb3cpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4Q29uc29s
ZU1lc3NhZ2UuaDoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhDb25zb2xlQ3VzdG9t
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4Q29uc29sZTo6dHJhY2VDYWxsYmFjayk6CisgICAg
ICAgIChXZWJDb3JlOjpWOENvbnNvbGU6OmFzc2VydENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNv
cmU6OlY4Q29uc29sZTo6cHJvZmlsZUNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlY4Q29u
c29sZTo6cHJvZmlsZUVuZENhbGxiYWNrKToKKyAgICAgICAgKiBpbnNwZWN0b3IvQ29uc29sZU1l
c3NhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29uc29sZU1lc3NhZ2U6OkNvbnNvbGVNZXNz
YWdlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuaDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JDb250cm9sbGVyOjphZGRNZXNzYWdlVG9Db25zb2xlKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckNvbnRyb2xsZXI6OnN0YXJ0R3JvdXApOgorICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JDb250cm9sbGVyLmg6CisgICAgICAgICogaW5zcGVjdG9yL1NjcmlwdEFyZ3VtZW50
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRBcmd1bWVudHM6OmNyZWF0ZSk6CisgICAg
ICAgICogaW5zcGVjdG9yL1NjcmlwdEFyZ3VtZW50cy5oOgorICAgICAgICAqIGluc3BlY3Rvci9T
Y3JpcHRDYWxsRnJhbWUuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENhbGxTdGFjazo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcmlwdENhbGxTdGFjazo6YXQpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0
Q2FsbFN0YWNrOjpzaXplKToKKyAgICAgICAgKiBpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrLmg6
CisgICAgICAgICogcGFnZS9Db25zb2xlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnNvbGU6
OmFkZE1lc3NhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q29uc29sZTo6ZGVidWcpOgorICAgICAg
ICAoV2ViQ29yZTo6Q29uc29sZTo6ZXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6Q29uc29sZTo6
aW5mbyk6CisgICAgICAgIChXZWJDb3JlOjpDb25zb2xlOjpsb2cpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29uc29sZTo6ZGlyKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnNvbGU6OmRpcnhtbCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb25zb2xlOjp0cmFjZSk6CisgICAgICAgIChXZWJDb3JlOjpDb25z
b2xlOjphc3NlcnRDb25kaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q29uc29sZTo6Y291bnQp
OgorICAgICAgICAoV2ViQ29yZTo6Q29uc29sZTo6bWFya1RpbWVsaW5lKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnNvbGU6OnByb2ZpbGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29uc29sZTo6cHJv
ZmlsZUVuZCk6CisgICAgICAgIChXZWJDb3JlOjpDb25zb2xlOjp0aW1lRW5kKToKKyAgICAgICAg
KFdlYkNvcmU6OkNvbnNvbGU6Omdyb3VwKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnNvbGU6Omdy
b3VwQ29sbGFwc2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnNvbGU6Ondhcm4pOgorICAgICAg
ICAqIHBhZ2UvQ29uc29sZS5oOgorCiAyMDEwLTExLTI4ICBEaW1pdHJpIEdsYXprb3YgIDxkZ2xh
emtvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ29uc29sZUN1c3RvbS5jcHAgYi9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQ29uc29sZUN1c3RvbS5jcHAKaW5kZXggNmRmODhmNmVkNmY4OWMx
ZDRlNzc2NzcwNzVmZDQwZTJhMGQ4ZjhjMy4uNmE0ZmIxNzAyNGQ5YmMwMjY3YjZjOGRkYTJiZmQw
ZDhjMzk2MWYxZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NvbnNvbGVDdXN0
b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDb25zb2xlQ3VzdG9tLmNwcApAQCAt
NTcsMjMgKzU3LDIzIEBAIEpTVmFsdWUgSlNDb25zb2xlOjpwcm9maWxlcyhFeGVjU3RhdGUqIGV4
ZWMpIGNvbnN0CiAKIEpTVmFsdWUgSlNDb25zb2xlOjpwcm9maWxlKEV4ZWNTdGF0ZSogZXhlYykK
IHsKLSAgICBPd25QdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2soY3JlYXRlU2NyaXB0Q2Fs
bFN0YWNrKGV4ZWMsIDEpKTsKKyAgICBSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2so
Y3JlYXRlU2NyaXB0Q2FsbFN0YWNrKGV4ZWMsIDEpKTsKICAgICBjb25zdCBTdHJpbmcmIHRpdGxl
ID0gdmFsdWVUb1N0cmluZ1dpdGhVbmRlZmluZWRPck51bGxDaGVjayhleGVjLCBleGVjLT5hcmd1
bWVudCgwKSk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4g
anNVbmRlZmluZWQoKTsKIAotICAgIGltcGwoKS0+cHJvZmlsZSh0aXRsZSwgZXhlYywgY2FsbFN0
YWNrLnJlbGVhc2UoKSk7CisgICAgaW1wbCgpLT5wcm9maWxlKHRpdGxlLCBleGVjLCBjYWxsU3Rh
Y2spOwogICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogfQogCiBKU1ZhbHVlIEpTQ29uc29sZTo6
cHJvZmlsZUVuZChFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgT3duUHRyPFNjcmlwdENhbGxTdGFj
az4gY2FsbFN0YWNrKGNyZWF0ZVNjcmlwdENhbGxTdGFjayhleGVjLCAxKSk7CisgICAgUmVmUHRy
PFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKGNyZWF0ZVNjcmlwdENhbGxTdGFjayhleGVjLCAx
KSk7CiAgICAgY29uc3QgU3RyaW5nJiB0aXRsZSA9IHZhbHVlVG9TdHJpbmdXaXRoVW5kZWZpbmVk
T3JOdWxsQ2hlY2soZXhlYywgZXhlYy0+YXJndW1lbnQoMCkpOwogICAgIGlmIChleGVjLT5oYWRF
eGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAKLSAgICBpbXBsKCkt
PnByb2ZpbGVFbmQodGl0bGUsIGV4ZWMsIGNhbGxTdGFjay5yZWxlYXNlKCkpOworICAgIGltcGwo
KS0+cHJvZmlsZUVuZCh0aXRsZSwgZXhlYywgY2FsbFN0YWNrKTsKICAgICByZXR1cm4ganNVbmRl
ZmluZWQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWxs
U3RhY2tGYWN0b3J5LmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q2FsbFN0YWNrRmFj
dG9yeS5jcHAKaW5kZXggMjVmYWJkZDE1M2M2YmY4YWM1NGQzMWUxZmRiMGIzZWMxMjc1YmY5OS4u
OWE2NGZmY2NiNWQ2YWJiNzZiMDA5ODc4MzJjOTEyNDc0ODBlZTdhYyAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmNwcAorKysgYi9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuY3BwCkBAIC00OCw3ICs0OCw3IEBA
IHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc093blB0
cjxTY3JpcHRDYWxsU3RhY2s+IGNyZWF0ZVNjcmlwdENhbGxTdGFjayhKU0M6OkV4ZWNTdGF0ZSog
ZXhlYywgc2l6ZV90IG1heFN0YWNrU2l6ZSkKK1Bhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBj
cmVhdGVTY3JpcHRDYWxsU3RhY2soSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIHNpemVfdCBtYXhTdGFj
a1NpemUpCiB7CiAgICAgVmVjdG9yPFNjcmlwdENhbGxGcmFtZT4gZnJhbWVzOwogICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gZXhlYzsKQEAgLTc1LDE2ICs3NSwxNiBAQCBQYXNzT3duUHRyPFNj
cmlwdENhbGxTdGFjaz4gY3JlYXRlU2NyaXB0Q2FsbFN0YWNrKEpTQzo6RXhlY1N0YXRlKiBleGVj
LCBzaXplX3QgbQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhbGxGcmFtZSA9IGNhbGxG
cmFtZS0+Y2FsbGVyRnJhbWUoKTsKICAgICB9Ci0gICAgcmV0dXJuIG5ldyBTY3JpcHRDYWxsU3Rh
Y2soZnJhbWVzKTsKKyAgICByZXR1cm4gU2NyaXB0Q2FsbFN0YWNrOjpjcmVhdGUoZnJhbWVzKTsK
IH0KIAotUGFzc093blB0cjxTY3JpcHRBcmd1bWVudHM+IGNyZWF0ZVNjcmlwdEFyZ3VtZW50cyhK
U0M6OkV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgc2tpcEFyZ3VtZW50Q291bnQpCitQYXNzUmVm
UHRyPFNjcmlwdEFyZ3VtZW50cz4gY3JlYXRlU2NyaXB0QXJndW1lbnRzKEpTQzo6RXhlY1N0YXRl
KiBleGVjLCB1bnNpZ25lZCBza2lwQXJndW1lbnRDb3VudCkKIHsKICAgICBWZWN0b3I8U2NyaXB0
VmFsdWU+IGFyZ3VtZW50czsKICAgICBzaXplX3QgYXJndW1lbnRDb3VudCA9IGV4ZWMtPmFyZ3Vt
ZW50Q291bnQoKTsKICAgICBmb3IgKHNpemVfdCBpID0gc2tpcEFyZ3VtZW50Q291bnQ7IGkgPCBh
cmd1bWVudENvdW50OyArK2kpCiAgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQoU2NyaXB0VmFsdWUo
ZXhlYy0+YXJndW1lbnQoaSkpKTsKLSAgICByZXR1cm4gbmV3IFNjcmlwdEFyZ3VtZW50cyhleGVj
LCBhcmd1bWVudHMpOworICAgIHJldHVybiBTY3JpcHRBcmd1bWVudHM6OmNyZWF0ZShleGVjLCBh
cmd1bWVudHMpOwogfQogCiBib29sIFNjcmlwdENhbGxTdGFjazo6c3RhY2tUcmFjZShpbnQsIGNv
bnN0IFJlZlB0cjxJbnNwZWN0b3JBcnJheT4mKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmggYi9XZWJDb3JlL2JpbmRpbmdzL2pzL1Njcmlw
dENhbGxTdGFja0ZhY3RvcnkuaAppbmRleCA3NDRkODhkMjFmZGM0NmU0MmQxNzZlNmUwYjUwMDQz
NWVhMDU5NTQ0Li45ZmJmYzc4MDZlMTk2NzliYTA2ZTMwODE4Y2JhNmMyNjE4NTA4OTgzIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuaAorKysg
Yi9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuaApAQCAtMzEsNyAr
MzEsNyBAQAogI2lmbmRlZiBTY3JpcHRDYWxsU3RhY2tGYWN0b3J5X2gKICNkZWZpbmUgU2NyaXB0
Q2FsbFN0YWNrRmFjdG9yeV9oCiAKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgRXhlY1N0YXRlOwpA
QCAtNDIsOCArNDIsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBTY3JpcHRBcmd1bWVu
dHM7CiBjbGFzcyBTY3JpcHRDYWxsU3RhY2s7CiAKLVBhc3NPd25QdHI8U2NyaXB0Q2FsbFN0YWNr
PiBjcmVhdGVTY3JpcHRDYWxsU3RhY2soSlNDOjpFeGVjU3RhdGUqLCBzaXplX3QgbWF4U3RhY2tT
aXplKTsKLVBhc3NPd25QdHI8U2NyaXB0QXJndW1lbnRzPiBjcmVhdGVTY3JpcHRBcmd1bWVudHMo
SlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBza2lwQXJndW1lbnRDb3VudCk7CitQYXNzUmVmUHRy
PFNjcmlwdENhbGxTdGFjaz4gY3JlYXRlU2NyaXB0Q2FsbFN0YWNrKEpTQzo6RXhlY1N0YXRlKiwg
c2l6ZV90IG1heFN0YWNrU2l6ZSk7CitQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4gY3JlYXRl
U2NyaXB0QXJndW1lbnRzKEpTQzo6RXhlY1N0YXRlKiwgdW5zaWduZWQgc2tpcEFyZ3VtZW50Q291
bnQpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDk1Y2RmMzAxYzMxYTdmMTEyNGZiNTQwMzE5ZTU2
ZjZjYmZiNzg4MmMuLjllNzE0MDllZmNlNzFjZjM4NzBiNTQ1YTI1MDAxYTg3NjNlNGUwNTIgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysr
IGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMTkwOCw5
ICsxOTA4LDkgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAgICAg
ICAgbXkgJGhhc09wdGlvbmFsQXJndW1lbnRzID0gMDsKIAogICAgICAgICAgICAgICAgICAgICBp
ZiAoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21Bcmd1
bWVudEhhbmRsaW5nIn0pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIE93blB0cjxTY3JpcHRBcmd1bWVudHM+IHNjcmlwdEFyZ3VtZW50cyhjcmVhdGVT
Y3JpcHRBcmd1bWVudHMoZXhlYywgJG51bVBhcmFtZXRlcnMpKTtcbiIpOworICAgICAgICAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgUmVmUHRyPFNjcmlwdEFyZ3VtZW50
cz4gc2NyaXB0QXJndW1lbnRzKGNyZWF0ZVNjcmlwdEFyZ3VtZW50cyhleGVjLCAkbnVtUGFyYW1l
dGVycykpO1xuIik7CiAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICBzaXplX3QgbWF4U3RhY2tTaXplID0gaW1wLT5zaG91bGRDYXB0dXJlRnVsbFN0YWNrVHJh
Y2UoKSA/IFNjcmlwdENhbGxTdGFjazo6bWF4Q2FsbFN0YWNrU2l6ZVRvQ2FwdHVyZSA6IDE7XG4i
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIE93blB0
cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjayhjcmVhdGVTY3JpcHRDYWxsU3RhY2soZXhlYywg
bWF4U3RhY2tTaXplKSk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjayhjcmVhdGVTY3Jp
cHRDYWxsU3RhY2soZXhlYywgbWF4U3RhY2tTaXplKSk7XG4iKTsKICAgICAgICAgICAgICAgICAg
ICAgICAgICRpbXBsSW5jbHVkZXN7IlNjcmlwdEFyZ3VtZW50cy5oIn0gPSAxOwogICAgICAgICAg
ICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siU2NyaXB0Q2FsbFN0YWNrLmgifSA9IDE7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJTY3JpcHRDYWxsU3RhY2tGYWN0
b3J5LmgifSA9IDE7CkBAIC0yMzAyLDcgKzIzMDIsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRh
dGlvbkZ1bmN0aW9uQ2FsbCgpCiAgICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tQXJndW1lbnRIYW5kbGluZyJ9KSB7CiAgICAgICAgICRmdW5j
dGlvblN0cmluZyAuPSAiLCAiIGlmICRwYXJhbUluZGV4OwogICAgICAgICAkcGFyYW1JbmRleCAr
PSAyOwotICAgICAgICAkZnVuY3Rpb25TdHJpbmcgLj0gInNjcmlwdEFyZ3VtZW50cy5yZWxlYXNl
KCksIGNhbGxTdGFjay5yZWxlYXNlKCkiOworICAgICAgICAkZnVuY3Rpb25TdHJpbmcgLj0gInNj
cmlwdEFyZ3VtZW50cywgY2FsbFN0YWNrIjsKICAgICB9CiAKICAgICBpZiAoQHskZnVuY3Rpb24t
PnJhaXNlc0V4Y2VwdGlvbnN9KSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvclY4LnBtIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JWOC5wbQppbmRleCA5MjJkYTE1ZmU4YzE2NjEwMjExZDJkMDEyYTQ3MWE0MzhjM2E0ZTZm
Li5iMDA5MWJkOGUyNmI3NzhjM2I1ODYxZGQxMTJhYjIxZmM2YjcwZDk2IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCisrKyBiL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KQEAgLTEyNjUsOSArMTI2NSw5IEBA
IEVORAogCiAgICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiQ3VzdG9tQXJndW1lbnRIYW5kbGluZyJ9KSB7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50
RGVjbHMsIDw8RU5EKTsKLSAgICBPd25QdHI8U2NyaXB0QXJndW1lbnRzPiBzY3JpcHRBcmd1bWVu
dHMoY3JlYXRlU2NyaXB0QXJndW1lbnRzKGFyZ3MsICRudW1QYXJhbWV0ZXJzKSk7CisgICAgUmVm
UHRyPFNjcmlwdEFyZ3VtZW50cz4gc2NyaXB0QXJndW1lbnRzKGNyZWF0ZVNjcmlwdEFyZ3VtZW50
cyhhcmdzLCAkbnVtUGFyYW1ldGVycykpOwogICAgIHNpemVfdCBtYXhTdGFja1NpemUgPSBpbXAt
PnNob3VsZENhcHR1cmVGdWxsU3RhY2tUcmFjZSgpID8gU2NyaXB0Q2FsbFN0YWNrOjptYXhDYWxs
U3RhY2tTaXplVG9DYXB0dXJlIDogMTsKLSAgICBPd25QdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxs
U3RhY2soY3JlYXRlU2NyaXB0Q2FsbFN0YWNrKG1heFN0YWNrU2l6ZSkpOworICAgIFJlZlB0cjxT
Y3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjayhjcmVhdGVTY3JpcHRDYWxsU3RhY2sobWF4U3RhY2tT
aXplKSk7CiAgICAgaWYgKCFjYWxsU3RhY2spCiAgICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVk
KCk7CiBFTkQKQEAgLTI2NTEsNyArMjY1MSw3IEBAIHN1YiBHZW5lcmF0ZUZ1bmN0aW9uQ2FsbFN0
cmluZygpCiAKICAgICBpZiAoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJDdXN0b21Bcmd1bWVudEhhbmRsaW5nIn0pIHsKICAgICAgICAgJGZ1bmN0aW9uU3RyaW5n
IC49ICIsICIgaWYgJGluZGV4OwotICAgICAgICAkZnVuY3Rpb25TdHJpbmcgLj0gInNjcmlwdEFy
Z3VtZW50cy5yZWxlYXNlKCksIGNhbGxTdGFjay5yZWxlYXNlKCkiOworICAgICAgICAkZnVuY3Rp
b25TdHJpbmcgLj0gInNjcmlwdEFyZ3VtZW50cywgY2FsbFN0YWNrIjsKICAgICAgICAgJGluZGV4
ICs9IDI7CiAgICAgfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPYmouY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T2JqLmNwcAppbmRleCBkOGJmNjdlMzBiMWJhZTZhYjYwY2I4OTgzMGRmMDljZmFmN2Q4NmVk
Li40NGVmZGUxNmE1NjE1NWJmODIzNWZmZWNhOTZiOWRkMTk2OThhZTAzIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCisrKyBiL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAgLTEwNTcsMTQgKzEw
NTcsMTQgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbkN1c3RvbUFyZ3NBbmRFeGNlcHRpb24oRXgKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRo
aXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdCh0aGlzVmFsdWUpKTsKICAgICBU
ZXN0T2JqKiBpbXAgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsK
ICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBPd25QdHI8U2NyaXB0QXJndW1lbnRzPiBz
Y3JpcHRBcmd1bWVudHMoY3JlYXRlU2NyaXB0QXJndW1lbnRzKGV4ZWMsIDEpKTsKKyAgICBSZWZQ
dHI8U2NyaXB0QXJndW1lbnRzPiBzY3JpcHRBcmd1bWVudHMoY3JlYXRlU2NyaXB0QXJndW1lbnRz
KGV4ZWMsIDEpKTsKICAgICBzaXplX3QgbWF4U3RhY2tTaXplID0gaW1wLT5zaG91bGRDYXB0dXJl
RnVsbFN0YWNrVHJhY2UoKSA/IFNjcmlwdENhbGxTdGFjazo6bWF4Q2FsbFN0YWNrU2l6ZVRvQ2Fw
dHVyZSA6IDE7Ci0gICAgT3duUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKGNyZWF0ZVNj
cmlwdENhbGxTdGFjayhleGVjLCBtYXhTdGFja1NpemUpKTsKKyAgICBSZWZQdHI8U2NyaXB0Q2Fs
bFN0YWNrPiBjYWxsU3RhY2soY3JlYXRlU2NyaXB0Q2FsbFN0YWNrKGV4ZWMsIG1heFN0YWNrU2l6
ZSkpOwogICAgIGxvZyogaW50QXJnID0gdG9sb2coZXhlYy0+YXJndW1lbnQoMCkpOwogICAgIGlm
IChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKIAotICAgIGltcC0+Y3VzdG9tQXJnc0FuZEV4Y2VwdGlvbihpbnRBcmcs
IHNjcmlwdEFyZ3VtZW50cy5yZWxlYXNlKCksIGNhbGxTdGFjay5yZWxlYXNlKCksIGVjKTsKKyAg
ICBpbXAtPmN1c3RvbUFyZ3NBbmRFeGNlcHRpb24oaW50QXJnLCBzY3JpcHRBcmd1bWVudHMsIGNh
bGxTdGFjaywgZWMpOwogICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAgYi9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCmluZGV4IGUwNmQzZjI5NGQwZDE5OGEyN2Jk
NzVhMTgwZTJiZmU1MjExNDEwNjkuLmQ0ZmRmZjU4ZDI0OGFmZDQ0NGNjMTI0Yzg0ZWNmZWIwMTI0
MTkzZDAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVz
dE9iai5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2Jq
LmNwcApAQCAtNzY0LDEzICs3NjQsMTMgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBj
dXN0b21BcmdzQW5kRXhjZXB0aW9uQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYKICAgICBU
ZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogICAgIEV4
Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIHsKLSAgICBPd25QdHI8U2NyaXB0QXJndW1lbnRzPiBz
Y3JpcHRBcmd1bWVudHMoY3JlYXRlU2NyaXB0QXJndW1lbnRzKGFyZ3MsIDEpKTsKKyAgICBSZWZQ
dHI8U2NyaXB0QXJndW1lbnRzPiBzY3JpcHRBcmd1bWVudHMoY3JlYXRlU2NyaXB0QXJndW1lbnRz
KGFyZ3MsIDEpKTsKICAgICBzaXplX3QgbWF4U3RhY2tTaXplID0gaW1wLT5zaG91bGRDYXB0dXJl
RnVsbFN0YWNrVHJhY2UoKSA/IFNjcmlwdENhbGxTdGFjazo6bWF4Q2FsbFN0YWNrU2l6ZVRvQ2Fw
dHVyZSA6IDE7Ci0gICAgT3duUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKGNyZWF0ZVNj
cmlwdENhbGxTdGFjayhtYXhTdGFja1NpemUpKTsKKyAgICBSZWZQdHI8U2NyaXB0Q2FsbFN0YWNr
PiBjYWxsU3RhY2soY3JlYXRlU2NyaXB0Q2FsbFN0YWNrKG1heFN0YWNrU2l6ZSkpOwogICAgIGlm
ICghY2FsbFN0YWNrKQogICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwogICAgIEVYQ0VQ
VElPTl9CTE9DSyhsb2cqLCBpbnRBcmcsIFY4bG9nOjpIYXNJbnN0YW5jZShhcmdzWzBdKSA/IFY4
bG9nOjp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KGFyZ3NbMF0pKSA6IDAp
OwotICAgIGltcC0+Y3VzdG9tQXJnc0FuZEV4Y2VwdGlvbihpbnRBcmcsIHNjcmlwdEFyZ3VtZW50
cy5yZWxlYXNlKCksIGNhbGxTdGFjay5yZWxlYXNlKCksIGVjKTsKKyAgICBpbXAtPmN1c3RvbUFy
Z3NBbmRFeGNlcHRpb24oaW50QXJnLCBzY3JpcHRBcmd1bWVudHMsIGNhbGxTdGFjaywgZWMpOwog
ICAgIGlmIChVTkxJS0VMWShlYykpCiAgICAgICAgIGdvdG8gZmFpbDsKICAgICByZXR1cm4gdjg6
OkhhbmRsZTx2ODo6VmFsdWU+KCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Nj
cmlwdENhbGxTdGFja0ZhY3RvcnkuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDYWxs
U3RhY2tGYWN0b3J5LmNwcAppbmRleCA2MmZiZWVmZDZiMGE3MGRkYTc1ZDg3MjUyZjFiZmJmZGY4
NjA3NThjLi41ZDRlMTQ2MzA1MjU5ZGZjNjE0OTk5N2ZjZDU4ZGQ1ZjFhZDdiN2M5IDEwMDY0NAot
LS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuY3BwCisrKyBi
L1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5jcHAKQEAgLTc4LDE3
ICs3OCwxNyBAQCBzdGF0aWMgdm9pZCB0b1NjcmlwdENhbGxGcmFtZXNWZWN0b3Iodjg6OkxvY2Fs
PHY4OjpDb250ZXh0PiBjb250ZXh0LCB2ODo6SGFuZGxlPAogICAgIH0KIH0KIAotUGFzc093blB0
cjxTY3JpcHRDYWxsU3RhY2s+IGNyZWF0ZVNjcmlwdENhbGxTdGFjayh2ODo6TG9jYWw8djg6OkNv
bnRleHQ+IGNvbnRleHQsIHY4OjpIYW5kbGU8djg6OlN0YWNrVHJhY2U+IHN0YWNrVHJhY2UsIHNp
emVfdCBtYXhTdGFja1NpemUpCitQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY3JlYXRlU2Ny
aXB0Q2FsbFN0YWNrKHY4OjpMb2NhbDx2ODo6Q29udGV4dD4gY29udGV4dCwgdjg6OkhhbmRsZTx2
ODo6U3RhY2tUcmFjZT4gc3RhY2tUcmFjZSwgc2l6ZV90IG1heFN0YWNrU2l6ZSkKIHsKICAgICB2
ODo6SGFuZGxlU2NvcGUgc2NvcGU7CiAgICAgdjg6OkNvbnRleHQ6OlNjb3BlIGNvbnRleHRTY29w
ZShjb250ZXh0KTsKIAogICAgIFZlY3RvcjxTY3JpcHRDYWxsRnJhbWU+IHNjcmlwdENhbGxGcmFt
ZXM7CiAgICAgdG9TY3JpcHRDYWxsRnJhbWVzVmVjdG9yKGNvbnRleHQsIHN0YWNrVHJhY2UsIHNj
cmlwdENhbGxGcmFtZXMsIG1heFN0YWNrU2l6ZSk7Ci0gICAgcmV0dXJuIG5ldyBTY3JpcHRDYWxs
U3RhY2soc2NyaXB0Q2FsbEZyYW1lcyk7CisgICAgcmV0dXJuIFNjcmlwdENhbGxTdGFjazo6Y3Jl
YXRlKHNjcmlwdENhbGxGcmFtZXMpOwogfQogCi1QYXNzT3duUHRyPFNjcmlwdENhbGxTdGFjaz4g
Y3JlYXRlU2NyaXB0Q2FsbFN0YWNrKHNpemVfdCBtYXhTdGFja1NpemUpCitQYXNzUmVmUHRyPFNj
cmlwdENhbGxTdGFjaz4gY3JlYXRlU2NyaXB0Q2FsbFN0YWNrKHNpemVfdCBtYXhTdGFja1NpemUp
CiB7CiAgICAgdjg6OkhhbmRsZVNjb3BlIHNjb3BlOwogICAgIHY4OjpMb2NhbDx2ODo6Q29udGV4
dD4gY29udGV4dCA9IHY4OjpDb250ZXh0OjpHZXRDdXJyZW50KCk7CkBAIC05OCw3ICs5OCw3IEBA
IFBhc3NPd25QdHI8U2NyaXB0Q2FsbFN0YWNrPiBjcmVhdGVTY3JpcHRDYWxsU3RhY2soc2l6ZV90
IG1heFN0YWNrU2l6ZSkKICAgICByZXR1cm4gY3JlYXRlU2NyaXB0Q2FsbFN0YWNrKGNvbnRleHQs
IHN0YWNrVHJhY2UsIG1heFN0YWNrU2l6ZSk7CiB9CiAKLVBhc3NPd25QdHI8U2NyaXB0QXJndW1l
bnRzPiBjcmVhdGVTY3JpcHRBcmd1bWVudHMoY29uc3Qgdjg6OkFyZ3VtZW50cyYgdjhhcmd1bWVu
dHMsIHVuc2lnbmVkIHNraXBBcmd1bWVudENvdW50KQorUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVu
dHM+IGNyZWF0ZVNjcmlwdEFyZ3VtZW50cyhjb25zdCB2ODo6QXJndW1lbnRzJiB2OGFyZ3VtZW50
cywgdW5zaWduZWQgc2tpcEFyZ3VtZW50Q291bnQpCiB7CiAgICAgdjg6OkhhbmRsZVNjb3BlIHNj
b3BlOwogICAgIHY4OjpMb2NhbDx2ODo6Q29udGV4dD4gY29udGV4dCA9IHY4OjpDb250ZXh0OjpH
ZXRDdXJyZW50KCk7CkBAIC0xMDgsNyArMTA4LDcgQEAgUGFzc093blB0cjxTY3JpcHRBcmd1bWVu
dHM+IGNyZWF0ZVNjcmlwdEFyZ3VtZW50cyhjb25zdCB2ODo6QXJndW1lbnRzJiB2OGFyZ3VtZW4K
ICAgICBmb3IgKGludCBpID0gc2tpcEFyZ3VtZW50Q291bnQ7IGkgPCB2OGFyZ3VtZW50cy5MZW5n
dGgoKTsgKytpKQogICAgICAgICBhcmd1bWVudHMuYXBwZW5kKFNjcmlwdFZhbHVlKHY4YXJndW1l
bnRzW2ldKSk7CiAKLSAgICByZXR1cm4gbmV3IFNjcmlwdEFyZ3VtZW50cyhzdGF0ZSwgYXJndW1l
bnRzKTsKKyAgICByZXR1cm4gU2NyaXB0QXJndW1lbnRzOjpjcmVhdGUoc3RhdGUsIGFyZ3VtZW50
cyk7CiB9CiAKIGJvb2wgU2NyaXB0Q2FsbFN0YWNrOjpzdGFja1RyYWNlKGludCBmcmFtZUxpbWl0
LCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+JiBzdGFja1RyYWNlKQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmggYi9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuaAppbmRleCA2MTNhZjdiM2IwNDUyMjkx
YjViYWU3NGU3ODBlZTMzN2U4ZmFlZTAxLi42NmU0NGY1ZTYxZTY5MDhiOTAyZjE0NDRiZThhYWQ1
YWYxMTk0ZGY1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENhbGxTdGFj
a0ZhY3RvcnkuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENhbGxTdGFja0ZhY3Rv
cnkuaApAQCAtMzIsMTAgKzMyLDEyIEBACiAjZGVmaW5lIFNjcmlwdENhbGxTdGFja0ZhY3Rvcnlf
aAogCiAjaW5jbHVkZSA8djguaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgU2NyaXB0
QXJndW1lbnRzOworY2xhc3MgU2NyaXB0Q2FsbFN0YWNrOwogY2xhc3MgU2NyaXB0U3RhdGU7CiAK
IGNvbnN0IHY4OjpTdGFja1RyYWNlOjpTdGFja1RyYWNlT3B0aW9ucyBzdGFja1RyYWNlT3B0aW9u
cyA9IHN0YXRpY19jYXN0PHY4OjpTdGFja1RyYWNlOjpTdGFja1RyYWNlT3B0aW9ucz4oCkBAIC00
NCwxMiArNDYsOSBAQCBjb25zdCB2ODo6U3RhY2tUcmFjZTo6U3RhY2tUcmFjZU9wdGlvbnMgc3Rh
Y2tUcmFjZU9wdGlvbnMgPSBzdGF0aWNfY2FzdDx2ODo6U3RhYwogICAgIHwgdjg6OlN0YWNrVHJh
Y2U6OmtTY3JpcHROYW1lT3JTb3VyY2VVUkwKICAgICB8IHY4OjpTdGFja1RyYWNlOjprRnVuY3Rp
b25OYW1lKTsKIAotY2xhc3MgU2NyaXB0QXJndW1lbnRzOwotY2xhc3MgU2NyaXB0Q2FsbFN0YWNr
OwotCi1QYXNzT3duUHRyPFNjcmlwdENhbGxTdGFjaz4gY3JlYXRlU2NyaXB0Q2FsbFN0YWNrKHY4
OjpMb2NhbDx2ODo6Q29udGV4dD4sIHY4OjpIYW5kbGU8djg6OlN0YWNrVHJhY2U+LCBzaXplX3Qg
bWF4U3RhY2tTaXplKTsKLVBhc3NPd25QdHI8U2NyaXB0Q2FsbFN0YWNrPiBjcmVhdGVTY3JpcHRD
YWxsU3RhY2soc2l6ZV90IG1heFN0YWNrU2l6ZSk7Ci1QYXNzT3duUHRyPFNjcmlwdEFyZ3VtZW50
cz4gY3JlYXRlU2NyaXB0QXJndW1lbnRzKGNvbnN0IHY4OjpBcmd1bWVudHMmIHY4YXJndW1lbnRz
LCB1bnNpZ25lZCBza2lwQXJndW1lbnRDb3VudCk7CitQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFj
az4gY3JlYXRlU2NyaXB0Q2FsbFN0YWNrKHY4OjpMb2NhbDx2ODo6Q29udGV4dD4sIHY4OjpIYW5k
bGU8djg6OlN0YWNrVHJhY2U+LCBzaXplX3QgbWF4U3RhY2tTaXplKTsKK1Bhc3NSZWZQdHI8U2Ny
aXB0Q2FsbFN0YWNrPiBjcmVhdGVTY3JpcHRDYWxsU3RhY2soc2l6ZV90IG1heFN0YWNrU2l6ZSk7
CitQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4gY3JlYXRlU2NyaXB0QXJndW1lbnRzKGNvbnN0
IHY4OjpBcmd1bWVudHMmIHY4YXJndW1lbnRzLCB1bnNpZ25lZCBza2lwQXJndW1lbnRDb3VudCk7
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOENvbnNvbGVNZXNzYWdlLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhDb25zb2xl
TWVzc2FnZS5jcHAKaW5kZXggNDBmOWE3YWI1NmIwNzNkYjE0NWJhODY4YmZlMzliNWI1N2FkMmFk
ZS4uOWU2ZTI2NzYzMTI0N2JkNGRlZGQyNGVhNTEzZDY0ODk2MjU5Mzg2NCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9iaW5kaW5ncy92OC9WOENvbnNvbGVNZXNzYWdlLmNwcAorKysgYi9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4Q29uc29sZU1lc3NhZ2UuY3BwCkBAIC0xMTQsNyArMTE0LDcgQEAgdm9pZCBW
OENvbnNvbGVNZXNzYWdlOjpoYW5kbGVyKHY4OjpIYW5kbGU8djg6Ok1lc3NhZ2U+IG1lc3NhZ2Us
IHY4OjpIYW5kbGU8djg6OlYKICAgICBTdHJpbmcgZXJyb3JNZXNzYWdlID0gdG9XZWJDb3JlU3Ry
aW5nKGVycm9yTWVzc2FnZVN0cmluZyk7CiAKICAgICB2ODo6SGFuZGxlPHY4OjpTdGFja1RyYWNl
PiBzdGFja1RyYWNlID0gbWVzc2FnZS0+R2V0U3RhY2tUcmFjZSgpOwotICAgIE93blB0cjxTY3Jp
cHRDYWxsU3RhY2s+IGNhbGxTdGFjazsKKyAgICBSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxs
U3RhY2s7CiAgICAgLy8gQ3VycmVudGx5IHN0YWNrIHRyYWNlIGlzIG9ubHkgY29sbGVjdGVkIHdo
ZW4gaW5zcGVjdG9yIGlzIG9wZW4uCiAgICAgaWYgKCFzdGFja1RyYWNlLklzRW1wdHkoKSAmJiBz
dGFja1RyYWNlLT5HZXRGcmFtZUNvdW50KCkgPiAwKSB7CiAgICAgICAgIHY4OjpMb2NhbDx2ODo6
Q29udGV4dD4gY29udGV4dCA9IHY4OjpDb250ZXh0OjpHZXRFbnRlcmVkKCk7CkBAIC0xMjUsMTAg
KzEyNSwxMCBAQCB2b2lkIFY4Q29uc29sZU1lc3NhZ2U6OmhhbmRsZXIodjg6OkhhbmRsZTx2ODo6
TWVzc2FnZT4gbWVzc2FnZSwgdjg6OkhhbmRsZTx2ODo6VgogICAgIGJvb2wgdXNlVVJMID0gcmVz
b3VyY2VOYW1lLklzRW1wdHkoKSB8fCAhcmVzb3VyY2VOYW1lLT5Jc1N0cmluZygpOwogICAgIFN0
cmluZyByZXNvdXJjZU5hbWVTdHJpbmcgPSB1c2VVUkwgPyBmcmFtZS0+ZG9jdW1lbnQoKS0+dXJs
KCkgOiB0b1dlYkNvcmVTdHJpbmcocmVzb3VyY2VOYW1lKTsKICAgICBWOENvbnNvbGVNZXNzYWdl
IGNvbnNvbGVNZXNzYWdlKGVycm9yTWVzc2FnZSwgcmVzb3VyY2VOYW1lU3RyaW5nLCBtZXNzYWdl
LT5HZXRMaW5lTnVtYmVyKCkpOwotICAgIGNvbnNvbGVNZXNzYWdlLmRpc3BhdGNoTm93KHBhZ2Us
IGNhbGxTdGFjay5yZWxlYXNlKCkpOworICAgIGNvbnNvbGVNZXNzYWdlLmRpc3BhdGNoTm93KHBh
Z2UsIGNhbGxTdGFjayk7CiB9CiAKLXZvaWQgVjhDb25zb2xlTWVzc2FnZTo6ZGlzcGF0Y2hOb3co
UGFnZSogcGFnZSwgUGFzc093blB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKK3ZvaWQg
VjhDb25zb2xlTWVzc2FnZTo6ZGlzcGF0Y2hOb3coUGFnZSogcGFnZSwgUGFzc1JlZlB0cjxTY3Jp
cHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKIHsKICAgICBBU1NFUlQocGFnZSk7CiAKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhDb25zb2xlTWVzc2FnZS5oIGIvV2ViQ29yZS9iaW5k
aW5ncy92OC9WOENvbnNvbGVNZXNzYWdlLmgKaW5kZXggNmI4OTJkZDI2YjMzNDQ1ODY2NDc5YjE2
YjNlOWFmMmZhYzFhYmIxNy4uOTdkZTI0ZjEwMjNkZGNmYzdlNDBiMjIwZjMyYWQ4NzYyMDYxMDI3
YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOENvbnNvbGVNZXNzYWdlLmgKKysr
IGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOENvbnNvbGVNZXNzYWdlLmgKQEAgLTgyLDcgKzgyLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBjb25zdCBTdHJpbmcgbV9zb3VyY2VJRDsK
ICAgICAgICAgY29uc3QgdW5zaWduZWQgbV9saW5lTnVtYmVyOwogCi0gICAgICAgIHZvaWQgZGlz
cGF0Y2hOb3coUGFnZSosIFBhc3NPd25QdHI8U2NyaXB0Q2FsbFN0YWNrPik7CisgICAgICAgIHZv
aWQgZGlzcGF0Y2hOb3coUGFnZSosIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7CiAKICAg
ICAgICAgLy8gQWxsIGRlbGF5ZWQgbWVzc2FnZXMgYXJlIHN0b3JlZCBpbiB0aGlzIHZlY3Rvci4g
SWYgdGhlIHZlY3RvcgogICAgICAgICAvLyBpcyAwLCB0aGVyZSBhcmUgbm8gZGVsYXllZCBtZXNz
YWdlcy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q29uc29sZUN1
c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOENvbnNvbGVDdXN0b20uY3Bw
CmluZGV4IDkxNDJhZDc3MWE1MDA5MGQ5MGRjZDZjNjFkZTU4NDNlMjBkZTdjYTguLmUyMTM1NGVk
NDE4YTYxYjNlNGRkMTkwMTE4ZGRjMmY3ZGRkZGM5YzMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4Q29uc29sZUN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhDb25zb2xlQ3VzdG9tLmNwcApAQCAtNjUsOSArNjUsOSBAQCB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gVjhDb25zb2xlOjp0cmFjZUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVu
dHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00uQ29uc29sZS50cmFjZUNhbGxiYWNrIik7
CiAgICAgQ29uc29sZSogaW1wID0gVjhDb25zb2xlOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsK
LSAgICBPd25QdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2soY3JlYXRlU2NyaXB0Q2FsbFN0
YWNrKFNjcmlwdENhbGxTdGFjazo6bWF4Q2FsbFN0YWNrU2l6ZVRvQ2FwdHVyZSkpOwotICAgIE93
blB0cjxTY3JpcHRBcmd1bWVudHM+IHNjcmlwdEFyZ3VtZW50cyhjcmVhdGVTY3JpcHRBcmd1bWVu
dHMoYXJncywgMCkpOwotICAgIGltcC0+dHJhY2Uoc2NyaXB0QXJndW1lbnRzLnJlbGVhc2UoKSwg
Y2FsbFN0YWNrLnJlbGVhc2UoKSk7CisgICAgUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0
YWNrKGNyZWF0ZVNjcmlwdENhbGxTdGFjayhTY3JpcHRDYWxsU3RhY2s6Om1heENhbGxTdGFja1Np
emVUb0NhcHR1cmUpKTsKKyAgICBSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBzY3JpcHRBcmd1bWVu
dHMoY3JlYXRlU2NyaXB0QXJndW1lbnRzKGFyZ3MsIDApKTsKKyAgICBpbXAtPnRyYWNlKHNjcmlw
dEFyZ3VtZW50cy5yZWxlYXNlKCksIGNhbGxTdGFjayk7CiAgICAgcmV0dXJuIHY4OjpIYW5kbGU8
djg6OlZhbHVlPigpOwogfQogCkBAIC03NSwxMCArNzUsMTAgQEAgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IFY4Q29uc29sZTo6YXNzZXJ0Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykK
IHsKICAgICBJTkNfU1RBVFMoIkRPTS5Db25zb2xlLmFzc2VydENhbGxiYWNrIik7CiAgICAgQ29u
c29sZSogaW1wID0gVjhDb25zb2xlOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBPd25Q
dHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2soY3JlYXRlU2NyaXB0Q2FsbFN0YWNrKFNjcmlw
dENhbGxTdGFjazo6bWF4Q2FsbFN0YWNrU2l6ZVRvQ2FwdHVyZSkpOworICAgIFJlZlB0cjxTY3Jp
cHRDYWxsU3RhY2s+IGNhbGxTdGFjayhjcmVhdGVTY3JpcHRDYWxsU3RhY2soU2NyaXB0Q2FsbFN0
YWNrOjptYXhDYWxsU3RhY2tTaXplVG9DYXB0dXJlKSk7CiAgICAgYm9vbCBjb25kaXRpb24gPSBh
cmdzWzBdLT5Cb29sZWFuVmFsdWUoKTsKLSAgICBPd25QdHI8U2NyaXB0QXJndW1lbnRzPiBzY3Jp
cHRBcmd1bWVudHMoY3JlYXRlU2NyaXB0QXJndW1lbnRzKGFyZ3MsIDEpKTsKLSAgICBpbXAtPmFz
c2VydENvbmRpdGlvbihjb25kaXRpb24sIHNjcmlwdEFyZ3VtZW50cy5yZWxlYXNlKCksIGNhbGxT
dGFjay5yZWxlYXNlKCkpOworICAgIFJlZlB0cjxTY3JpcHRBcmd1bWVudHM+IHNjcmlwdEFyZ3Vt
ZW50cyhjcmVhdGVTY3JpcHRBcmd1bWVudHMoYXJncywgMSkpOworICAgIGltcC0+YXNzZXJ0Q29u
ZGl0aW9uKGNvbmRpdGlvbiwgc2NyaXB0QXJndW1lbnRzLnJlbGVhc2UoKSwgY2FsbFN0YWNrKTsK
ICAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7CiB9CiAKQEAgLTg3LDExICs4Nywx
MSBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhDb25zb2xlOjpwcm9maWxlQ2FsbGJhY2soY29u
c3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5Db25zb2xlLnBy
b2ZpbGUiKTsKICAgICBDb25zb2xlKiBpbXAgPSBWOENvbnNvbGU6OnRvTmF0aXZlKGFyZ3MuSG9s
ZGVyKCkpOwotICAgIE93blB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjayhjcmVhdGVTY3Jp
cHRDYWxsU3RhY2soMSkpOworICAgIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjayhj
cmVhdGVTY3JpcHRDYWxsU3RhY2soMSkpOwogICAgIGlmICghY2FsbFN0YWNrKQogICAgICAgICBy
ZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwogICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJ
T05fQkxPQ0soVjhQYXJhbWV0ZXI8V2l0aFVuZGVmaW5lZE9yTnVsbENoZWNrPiwgdGl0bGUsIGFy
Z3NbMF0pOwotICAgIGltcC0+cHJvZmlsZSh0aXRsZSwgU2NyaXB0U3RhdGU6OmN1cnJlbnQoKSwg
Y2FsbFN0YWNrLnJlbGVhc2UoKSk7CisgICAgaW1wLT5wcm9maWxlKHRpdGxlLCBTY3JpcHRTdGF0
ZTo6Y3VycmVudCgpLCBjYWxsU3RhY2spOwogICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4oKTsKIH0KIApAQCAtOTksMTEgKzk5LDExIEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOENv
bnNvbGU6OnByb2ZpbGVFbmRDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewog
ICAgIElOQ19TVEFUUygiRE9NLkNvbnNvbGUucHJvZmlsZUVuZCIpOwogICAgIENvbnNvbGUqIGlt
cCA9IFY4Q29uc29sZTo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgT3duUHRyPFNjcmlw
dENhbGxTdGFjaz4gY2FsbFN0YWNrKGNyZWF0ZVNjcmlwdENhbGxTdGFjaygxKSk7CisgICAgUmVm
UHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKGNyZWF0ZVNjcmlwdENhbGxTdGFjaygxKSk7
CiAgICAgaWYgKCFjYWxsU3RhY2spCiAgICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CiAg
ICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjxXaXRo
VW5kZWZpbmVkT3JOdWxsQ2hlY2s+LCB0aXRsZSwgYXJnc1swXSk7Ci0gICAgaW1wLT5wcm9maWxl
RW5kKHRpdGxlLCBTY3JpcHRTdGF0ZTo6Y3VycmVudCgpLCBjYWxsU3RhY2sucmVsZWFzZSgpKTsK
KyAgICBpbXAtPnByb2ZpbGVFbmQodGl0bGUsIFNjcmlwdFN0YXRlOjpjdXJyZW50KCksIGNhbGxT
dGFjayk7CiAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwogfQogI2VuZGlmCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAgYi9XZWJDb3Jl
L2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAKaW5kZXggYTVlOWVjNmEyY2MwZDJmYTE4ZDNj
ODQzOTAzYTc3Y2UxYjVmYzgwZC4uZjE1MzRkZjA4MTFmOTIxZDcwMzU1ZmI2MjEwMDgzMWRhZDM4
MTU3NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwCisr
KyBiL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcApAQCAtNDAsNyArNDAsNiBA
QAogI2luY2x1ZGUgIlNjcmlwdEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFj
ay5oIgogI2luY2x1ZGUgIlNjcmlwdFZhbHVlLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01Niw3ICs1NSw3IEBAIENvbnNvbGVNZXNz
YWdlOjpDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlIHMsIE1lc3NhZ2VUeXBlIHQsIE1lc3Nh
Z2VMZXZlbCBsLCBjCiB7CiB9CiAKLUNvbnNvbGVNZXNzYWdlOjpDb25zb2xlTWVzc2FnZShNZXNz
YWdlU291cmNlIHMsIE1lc3NhZ2VUeXBlIHQsIE1lc3NhZ2VMZXZlbCBsLCBjb25zdCBTdHJpbmcm
IG0sIFBhc3NPd25QdHI8U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMsIFBhc3NPd25QdHI8U2Ny
aXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2ssIHVuc2lnbmVkIGcpCitDb25zb2xlTWVzc2FnZTo6Q29u
c29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzLCBNZXNzYWdlVHlwZSB0LCBNZXNzYWdlTGV2ZWwg
bCwgY29uc3QgU3RyaW5nJiBtLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4gYXJndW1lbnRz
LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrLCB1bnNpZ25lZCBnKQogICAg
IDogbV9zb3VyY2UocykKICAgICAsIG1fdHlwZSh0KQogICAgICwgbV9sZXZlbChsKQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuaCBiL1dlYkNvcmUvaW5zcGVj
dG9yL0NvbnNvbGVNZXNzYWdlLmgKaW5kZXggNGU4OGJlY2U2NTY0YTJmMDZiNGY5NDg5MWUwZDA0
MzBiOGM5MDI1NS4uMzUxYzU4NGQ0ZDFkODk5NTM3NjU0ZmYwNGUwYzdjYTEyMjVhODY0ZSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuaAorKysgYi9XZWJDb3Jl
L2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5oCkBAIC00OSw3ICs0OSw3IEBAIGNsYXNzIFNjcmlw
dFZhbHVlOwogY2xhc3MgQ29uc29sZU1lc3NhZ2UgOiBwdWJsaWMgTm9uY29weWFibGUgewogcHVi
bGljOgogICAgIENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNz
YWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbSwgdW5zaWduZWQgbGksIGNvbnN0IFN0cmluZyYgdSwg
dW5zaWduZWQgZyk7Ci0gICAgQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5
cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtLCBQYXNzT3duUHRyPFNjcmlwdEFyZ3Vt
ZW50cz4sIFBhc3NPd25QdHI8U2NyaXB0Q2FsbFN0YWNrPiwgdW5zaWduZWQgZyk7CisgICAgQ29u
c29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29u
c3QgU3RyaW5nJiBtLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4sIFBhc3NSZWZQdHI8U2Ny
aXB0Q2FsbFN0YWNrPiwgdW5zaWduZWQgZyk7CiAKICAgICB2b2lkIGFkZFRvRnJvbnRlbmQoSW5z
cGVjdG9yRnJvbnRlbmQqLCBJbmplY3RlZFNjcmlwdEhvc3QqKTsKICAgICB2b2lkIHVwZGF0ZVJl
cGVhdENvdW50SW5Db25zb2xlKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCk7CkBAIC02NCw4
ICs2NCw4IEBAIHByaXZhdGU6CiAgICAgTWVzc2FnZVR5cGUgbV90eXBlOwogICAgIE1lc3NhZ2VM
ZXZlbCBtX2xldmVsOwogICAgIFN0cmluZyBtX21lc3NhZ2U7Ci0gICAgT3duUHRyPFNjcmlwdEFy
Z3VtZW50cz4gbV9hcmd1bWVudHM7Ci0gICAgT3duUHRyPFNjcmlwdENhbGxTdGFjaz4gbV9jYWxs
U3RhY2s7CisgICAgUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4gbV9hcmd1bWVudHM7CisgICAgUmVm
UHRyPFNjcmlwdENhbGxTdGFjaz4gbV9jYWxsU3RhY2s7CiAgICAgdW5zaWduZWQgbV9saW5lOwog
ICAgIFN0cmluZyBtX3VybDsKICAgICB1bnNpZ25lZCBtX2dyb3VwTGV2ZWw7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcCBiL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IDI0M2I3YWMzYTRjMzFhNjE3MDJm
MzkwMjdmM2M2YmY2MmJjOWI4Y2IuLjkyMjgyZTQ4NTc0MjQ5N2NiM2E0MzQ3MzA0M2Y3Zjc4MWMx
MWY5NmUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIu
Y3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC0z
MzAsNyArMzMwLDcgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpzZXRDb25zb2xlTWVzc2Fn
ZXNFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICAgICAgbV9jb25zb2xlTWVzc2FnZXNbaV0tPmFk
ZFRvRnJvbnRlbmQobV9mcm9udGVuZC5nZXQoKSwgbV9pbmplY3RlZFNjcmlwdEhvc3QuZ2V0KCkp
OwogfQogCi12b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmFkZE1lc3NhZ2VUb0NvbnNvbGUoTWVz
c2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBQYXNzT3duUHRyPFNjcmlwdEFyZ3VtZW50cz4gYXJndW1l
bnRzLCBQYXNzT3duUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKQordm9pZCBJbnNwZWN0
b3JDb250cm9sbGVyOjphZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBN
ZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+IGFyZ3VtZW50cywgUGFzc1JlZlB0cjxTY3Jp
cHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKIHsKICAgICBpZiAoIWVuYWJsZWQoKSkKICAgICAgICAg
cmV0dXJuOwpAQCAtMzgxLDcgKzM4MSw3IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6Y2xl
YXJDb25zb2xlTWVzc2FnZXMoKQogICAgICAgICBtX2Zyb250ZW5kLT5jb25zb2xlTWVzc2FnZXND
bGVhcmVkKCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6c3RhcnRHcm91cChQYXNz
T3duUHRyPFNjcmlwdEFyZ3VtZW50cz4gYXJndW1lbnRzLCBQYXNzT3duUHRyPFNjcmlwdENhbGxT
dGFjaz4gY2FsbFN0YWNrLCBib29sIGNvbGxhcHNlZCkKK3ZvaWQgSW5zcGVjdG9yQ29udHJvbGxl
cjo6c3RhcnRHcm91cChQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4gYXJndW1lbnRzLCBQYXNz
UmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrLCBib29sIGNvbGxhcHNlZCkKIHsKICAg
ICArK21fZ3JvdXBMZXZlbDsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQ29udHJvbGxlci5oIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5o
CmluZGV4IGNhNWE5ZDliNzBlYWNiZDIxYTI5MmNlMTdlMTY3YjVkZGU2YTE2ZDEuLjViNDA3ZTAw
NzExMzAxNWNmOGUyNWJmY2VmODI5YjMyNzdjYjZmZGMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDb250cm9sbGVyLmgKQEAgLTE0Niw3ICsxNDYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBk
aXNjb25uZWN0RnJvbnRlbmQoKTsKIAogICAgIHZvaWQgc2V0Q29uc29sZU1lc3NhZ2VzRW5hYmxl
ZChib29sIGVuYWJsZWQsIGJvb2wqIG5ld1N0YXRlKTsKLSAgICB2b2lkIGFkZE1lc3NhZ2VUb0Nv
bnNvbGUoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBQYXNzT3duUHRyPFNjcmlwdEFyZ3VtZW50cz4gYXJndW1lbnRzLCBQYXNz
T3duUHRyPFNjcmlwdENhbGxTdGFjaz4pOworICAgIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShN
ZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMsIFBhc3NSZWZQdHI8
U2NyaXB0Q2FsbFN0YWNrPik7CiAgICAgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VT
b3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
dW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBjbGVhckNvbnNv
bGVNZXNzYWdlcygpOwogICAgIGNvbnN0IFZlY3RvcjxPd25QdHI8Q29uc29sZU1lc3NhZ2U+ID4m
IGNvbnNvbGVNZXNzYWdlcygpIGNvbnN0IHsgcmV0dXJuIG1fY29uc29sZU1lc3NhZ2VzOyB9CkBA
IC0yMzAsNyArMjMwLDcgQEAgcHVibGljOgogICAgIHZvaWQgc3RhcnRUaW1pbmcoY29uc3QgU3Ry
aW5nJiB0aXRsZSk7CiAgICAgYm9vbCBzdG9wVGltaW5nKGNvbnN0IFN0cmluZyYgdGl0bGUsIGRv
dWJsZSYgZWxhcHNlZCk7CiAKLSAgICB2b2lkIHN0YXJ0R3JvdXAoUGFzc093blB0cjxTY3JpcHRB
cmd1bWVudHM+LCBQYXNzT3duUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbEZyYW1lLCBib29sIGNv
bGxhcHNlZCA9IGZhbHNlKTsKKyAgICB2b2lkIHN0YXJ0R3JvdXAoUGFzc1JlZlB0cjxTY3JpcHRB
cmd1bWVudHM+LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbEZyYW1lLCBib29sIGNv
bGxhcHNlZCA9IGZhbHNlKTsKICAgICB2b2lkIGVuZEdyb3VwKE1lc3NhZ2VTb3VyY2Ugc291cmNl
LCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7CiAKICAgICB2
b2lkIG1hcmtUaW1lbGluZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9pbnNwZWN0b3IvU2NyaXB0QXJndW1lbnRzLmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL1Nj
cmlwdEFyZ3VtZW50cy5jcHAKaW5kZXggZTMwZTEzNTc3NzE4NjkwNjg3ZmIwZGEyYjk2NTIwNTAw
ZjU2OWE2MS4uYjBmZTU1NGVhNzhlNWQwYTc2NzM3ZmFkODVkZmI4YWMxODU2MDk4ZiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvU2NyaXB0QXJndW1lbnRzLmNwcAorKysgYi9XZWJDb3Jl
L2luc3BlY3Rvci9TY3JpcHRBcmd1bWVudHMuY3BwCkBAIC0zNSw2ICszNSwxMSBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKK1Bhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBTY3JpcHRBcmd1
bWVudHM6OmNyZWF0ZShTY3JpcHRTdGF0ZSogc2NyaXB0U3RhdGUsIFZlY3RvcjxTY3JpcHRWYWx1
ZT4mIGFyZ3VtZW50cykKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNjcmlwdEFyZ3VtZW50
cyhzY3JpcHRTdGF0ZSwgYXJndW1lbnRzKSk7Cit9CisKIFNjcmlwdEFyZ3VtZW50czo6U2NyaXB0
QXJndW1lbnRzKFNjcmlwdFN0YXRlKiBzY3JpcHRTdGF0ZSwgVmVjdG9yPFNjcmlwdFZhbHVlPiYg
YXJndW1lbnRzKQogICAgIDogbV9zY3JpcHRTdGF0ZShzY3JpcHRTdGF0ZSkKIHsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvaW5zcGVjdG9yL1NjcmlwdEFyZ3VtZW50cy5oIGIvV2ViQ29yZS9pbnNwZWN0
b3IvU2NyaXB0QXJndW1lbnRzLmgKaW5kZXggZmRmMDVhYmU4MGU0NzhlYjA5ODU1NGFkMDc4OGI5
NWExMDA2NTM1ZC4uMjY1NDliNmQzMGI3MzdmZDQzYjBjYmMwNDNhNTZlOGI3ODE1NGFhOSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvU2NyaXB0QXJndW1lbnRzLmgKKysrIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvU2NyaXB0QXJndW1lbnRzLmgKQEAgLTMzLDE1ICszMywxOCBAQAogCiAjaW5j
bHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlICJTY3JpcHRTdGF0ZS5oIgorI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU2NyaXB0VmFs
dWU7CiAKLWNsYXNzIFNjcmlwdEFyZ3VtZW50cyB7CitjbGFzcyBTY3JpcHRBcmd1bWVudHMgOiBw
dWJsaWMgUmVmQ291bnRlZDxTY3JpcHRBcmd1bWVudHM+IHsKIHB1YmxpYzoKLSAgICBTY3JpcHRB
cmd1bWVudHMoU2NyaXB0U3RhdGUqLCBWZWN0b3I8U2NyaXB0VmFsdWU+JiBhcmd1bWVudHMpOwor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4gY3JlYXRlKFNjcmlwdFN0YXRl
KiwgVmVjdG9yPFNjcmlwdFZhbHVlPiYgYXJndW1lbnRzKTsKKwogICAgIH5TY3JpcHRBcmd1bWVu
dHMoKTsKIAogICAgIGNvbnN0IFNjcmlwdFZhbHVlJiBhcmd1bWVudEF0KHNpemVfdCkgY29uc3Q7
CkBAIC01Myw2ICs1Niw4IEBAIHB1YmxpYzoKICAgICBib29sIGlzRXF1YWwoU2NyaXB0QXJndW1l
bnRzKikgY29uc3Q7CiAKIHByaXZhdGU6CisgICAgU2NyaXB0QXJndW1lbnRzKFNjcmlwdFN0YXRl
KiwgVmVjdG9yPFNjcmlwdFZhbHVlPiYgYXJndW1lbnRzKTsKKwogICAgIFNjcmlwdFN0YXRlUHJv
dGVjdGVkUHRyIG1fc2NyaXB0U3RhdGU7CiAgICAgVmVjdG9yPFNjcmlwdFZhbHVlPiBtX2FyZ3Vt
ZW50czsKIH07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9TY3JpcHRDYWxsRnJhbWUu
aCBiL1dlYkNvcmUvaW5zcGVjdG9yL1NjcmlwdENhbGxGcmFtZS5oCmluZGV4IDYwZDc3ZTFiNWI5
MDkwMWNmNDJlMmRiYzk0NWZkNmI0YzNjNTNjNTcuLjJhMWYyNTcwZjQwMTFkMWQyZWJhNzlhYTdi
MzkyMGFlZmMzM2U0NzEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL1NjcmlwdENhbGxG
cmFtZS5oCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL1NjcmlwdENhbGxGcmFtZS5oCkBAIC0zMiw3
ICszMiw3IEBACiAjZGVmaW5lIFNjcmlwdENhbGxGcmFtZV9oCiAKICNpbmNsdWRlICJQbGF0Zm9y
bVN0cmluZy5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL0Zv
cndhcmQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2lu
c3BlY3Rvci9TY3JpcHRDYWxsU3RhY2suY3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvU2NyaXB0Q2Fs
bFN0YWNrLmNwcAppbmRleCAzMWVjMWMxYjkwNDM3YzIyZjI2YTA3YjA1NjNkZTNiMDI3MDVhOWZk
Li43MDIyOWU1NTk4MzJlZjRjM2JkNjVmNzYxOTU1ZWNhMWJhZGUyZDg1IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2luc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2suY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVj
dG9yL1NjcmlwdENhbGxTdGFjay5jcHAKQEAgLTM1LDYgKzM1LDExIEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAorUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IFNjcmlwdENhbGxTdGFjazo6
Y3JlYXRlKFZlY3RvcjxTY3JpcHRDYWxsRnJhbWU+JiBmcmFtZXMpCit7CisgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBTY3JpcHRDYWxsU3RhY2soZnJhbWVzKSk7Cit9CisKIFNjcmlwdENhbGxTdGFj
azo6U2NyaXB0Q2FsbFN0YWNrKFZlY3RvcjxTY3JpcHRDYWxsRnJhbWU+JiBmcmFtZXMpCiB7CiAg
ICAgbV9mcmFtZXMuc3dhcChmcmFtZXMpOwpAQCAtNDQsMTMgKzQ5LDEzIEBAIFNjcmlwdENhbGxT
dGFjazo6flNjcmlwdENhbGxTdGFjaygpCiB7CiB9CiAKLWNvbnN0IFNjcmlwdENhbGxGcmFtZSAm
U2NyaXB0Q2FsbFN0YWNrOjphdChzaXplX3QgaW5kZXgpCitjb25zdCBTY3JpcHRDYWxsRnJhbWUg
JlNjcmlwdENhbGxTdGFjazo6YXQoc2l6ZV90IGluZGV4KSBjb25zdAogewogICAgIEFTU0VSVCht
X2ZyYW1lcy5zaXplKCkgPiBpbmRleCk7CiAgICAgcmV0dXJuIG1fZnJhbWVzW2luZGV4XTsKIH0K
IAotc2l6ZV90IFNjcmlwdENhbGxTdGFjazo6c2l6ZSgpCitzaXplX3QgU2NyaXB0Q2FsbFN0YWNr
OjpzaXplKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9mcmFtZXMuc2l6ZSgpOwogfQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrLmggYi9XZWJDb3JlL2luc3Bl
Y3Rvci9TY3JpcHRDYWxsU3RhY2suaAppbmRleCA1NGM2YmJhOGIyYjAwOTE2NzAzY2JlMmYxMjJi
YTIwY2I5MThiZDUxLi4zNmVhNjcwMmM2ZjEyM2YwNjYyNmRjZmI0NmE5ZTQ4N2IyYmI0YTMxIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2suaAorKysgYi9XZWJD
b3JlL2luc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2suaApAQCAtMzIsMjggKzMyLDMyIEBACiAjZGVm
aW5lIFNjcmlwdENhbGxTdGFja19oCiAKICNpbmNsdWRlICJTY3JpcHRDYWxsRnJhbWUuaCIKLSNp
bmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEluc3BlY3RvckFycmF5OwogCi1jbGFzcyBTY3JpcHRD
YWxsU3RhY2sgOiBwdWJsaWMgTm9uY29weWFibGUgeworY2xhc3MgU2NyaXB0Q2FsbFN0YWNrIDog
cHVibGljIFJlZkNvdW50ZWQ8U2NyaXB0Q2FsbFN0YWNrPiB7CiBwdWJsaWM6CiAgICAgc3RhdGlj
IGNvbnN0IHNpemVfdCBtYXhDYWxsU3RhY2tTaXplVG9DYXB0dXJlID0gMjAwOworICAgIAorICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY3JlYXRlKFZlY3RvcjxTY3JpcHRD
YWxsRnJhbWU+Jik7CiAKLSAgICBTY3JpcHRDYWxsU3RhY2soVmVjdG9yPFNjcmlwdENhbGxGcmFt
ZT4mKTsKICAgICB+U2NyaXB0Q2FsbFN0YWNrKCk7CiAKLSAgICBjb25zdCBTY3JpcHRDYWxsRnJh
bWUgJmF0KHNpemVfdCk7Ci0gICAgc2l6ZV90IHNpemUoKTsKKyAgICBjb25zdCBTY3JpcHRDYWxs
RnJhbWUgJmF0KHNpemVfdCkgY29uc3Q7CisgICAgc2l6ZV90IHNpemUoKSBjb25zdDsKICAgICBz
dGF0aWMgYm9vbCBzdGFja1RyYWNlKGludCwgY29uc3QgUmVmUHRyPEluc3BlY3RvckFycmF5PiYp
OwogCiAgICAgYm9vbCBpc0VxdWFsKFNjcmlwdENhbGxTdGFjayopIGNvbnN0OwogICAgIFBhc3NS
ZWZQdHI8SW5zcGVjdG9yQXJyYXk+IGJ1aWxkSW5zcGVjdG9yT2JqZWN0KCkgY29uc3Q7CiAKIHBy
aXZhdGU6CisgICAgU2NyaXB0Q2FsbFN0YWNrKFZlY3RvcjxTY3JpcHRDYWxsRnJhbWU+Jik7CisK
ICAgICBWZWN0b3I8U2NyaXB0Q2FsbEZyYW1lPiBtX2ZyYW1lczsKIH07CiAKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGFnZS9Db25zb2xlLmNwcCBiL1dlYkNvcmUvcGFnZS9Db25zb2xlLmNwcAppbmRl
eCAzNGRiNTM4ZGM3YTMxM2E4ZjA1MmJiN2E3Mjc2ZDk2NDhjN2IwZTcyLi4yMTk2NDdkZGMwYmZm
MzhiMGQwZWY2ODdkYmNkYzFlMDZhM2MzNzQyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvQ29u
c29sZS5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL0NvbnNvbGUuY3BwCkBAIC0xMzcsNyArMTM3LDcg
QEAgdm9pZCBDb25zb2xlOjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdl
VHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGUKICAgICBhZGRNZXNzYWdlKHNvdXJjZSwgdHlwZSwg
bGV2ZWwsIG1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCwgMCk7CiB9CiAKLXZvaWQgQ29u
c29sZTo6YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwg
TWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVO
dW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBQYXNzT3duUHRyPFNjcmlwdENhbGxTdGFj
az4gY2FsbFN0YWNrKQordm9pZCBDb25zb2xlOjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291
cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIFBh
c3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2spCiB7CiAgICAgUGFnZSogcGFnZSA9
IHRoaXMtPnBhZ2UoKTsKICAgICBpZiAoIXBhZ2UpCkBAIC0xNjIsNyArMTYyLDcgQEAgdm9pZCBD
b25zb2xlOjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBl
LCBNZXNzYWdlTGV2ZWwgbGUKICAgICBwcmludGYoIiAlc1xuIiwgbWVzc2FnZS51dGY4KCkuZGF0
YSgpKTsKIH0KIAotdm9pZCBDb25zb2xlOjphZGRNZXNzYWdlKE1lc3NhZ2VUeXBlIHR5cGUsIE1l
c3NhZ2VMZXZlbCBsZXZlbCwgUGFzc093blB0cjxTY3JpcHRBcmd1bWVudHM+IGFyZ3VtZW50cywg
IFBhc3NPd25QdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2ssIGJvb2wgYWNjZXB0Tm9Bcmd1
bWVudHMpCit2b2lkIENvbnNvbGU6OmFkZE1lc3NhZ2UoTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2Fn
ZUxldmVsIGxldmVsLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4gYXJndW1lbnRzLCAgUGFz
c1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaywgYm9vbCBhY2NlcHROb0FyZ3VtZW50
cykKIHsKICAgICBQYWdlKiBwYWdlID0gdGhpcy0+cGFnZSgpOwogICAgIGlmICghcGFnZSkKQEAg
LTE5NCwzOSArMTk0LDM5IEBAIHZvaWQgQ29uc29sZTo6YWRkTWVzc2FnZShNZXNzYWdlVHlwZSB0
eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIFBhc3NPd25QdHI8U2NyaXB0CiAjZW5kaWYKIH0KIAot
dm9pZCBDb25zb2xlOjpkZWJ1ZyhQYXNzT3duUHRyPFNjcmlwdEFyZ3VtZW50cz4gYXJndW1lbnRz
LCBQYXNzT3duUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKQordm9pZCBDb25zb2xlOjpk
ZWJ1ZyhQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4gYXJndW1lbnRzLCBQYXNzUmVmUHRyPFNj
cmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKQogewogICAgIC8vIEluIEZpcmVidWcsIGNvbnNvbGUu
ZGVidWcgaGFzIHRoZSBzYW1lIGJlaGF2aW9yIGFzIGNvbnNvbGUubG9nLiBTbyB3ZSdsbCBkbyB0
aGUgc2FtZS4KICAgICBsb2coYXJndW1lbnRzLCBjYWxsU3RhY2spOwogfQogCi12b2lkIENvbnNv
bGU6OmVycm9yKFBhc3NPd25QdHI8U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMsIFBhc3NPd25Q
dHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2spCit2b2lkIENvbnNvbGU6OmVycm9yKFBhc3NS
ZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0
YWNrPiBjYWxsU3RhY2spCiB7CiAgICAgYWRkTWVzc2FnZShMb2dNZXNzYWdlVHlwZSwgRXJyb3JN
ZXNzYWdlTGV2ZWwsIGFyZ3VtZW50cywgY2FsbFN0YWNrKTsKIH0KIAotdm9pZCBDb25zb2xlOjpp
bmZvKFBhc3NPd25QdHI8U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMsIFBhc3NPd25QdHI8U2Ny
aXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2spCit2b2lkIENvbnNvbGU6OmluZm8oUGFzc1JlZlB0cjxT
Y3JpcHRBcmd1bWVudHM+IGFyZ3VtZW50cywgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNh
bGxTdGFjaykKIHsKICAgICBsb2coYXJndW1lbnRzLCBjYWxsU3RhY2spOwogfQogCi12b2lkIENv
bnNvbGU6OmxvZyhQYXNzT3duUHRyPFNjcmlwdEFyZ3VtZW50cz4gYXJndW1lbnRzLCBQYXNzT3du
UHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKQordm9pZCBDb25zb2xlOjpsb2coUGFzc1Jl
ZlB0cjxTY3JpcHRBcmd1bWVudHM+IGFyZ3VtZW50cywgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3Rh
Y2s+IGNhbGxTdGFjaykKIHsKICAgICBhZGRNZXNzYWdlKExvZ01lc3NhZ2VUeXBlLCBMb2dNZXNz
YWdlTGV2ZWwsIGFyZ3VtZW50cywgY2FsbFN0YWNrKTsKIH0KIAotdm9pZCBDb25zb2xlOjpkaXIo
UGFzc093blB0cjxTY3JpcHRBcmd1bWVudHM+IGFyZ3VtZW50cywgUGFzc093blB0cjxTY3JpcHRD
YWxsU3RhY2s+IGNhbGxTdGFjaykKK3ZvaWQgQ29uc29sZTo6ZGlyKFBhc3NSZWZQdHI8U2NyaXB0
QXJndW1lbnRzPiBhcmd1bWVudHMsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3Rh
Y2spCiB7CiAgICAgYWRkTWVzc2FnZShPYmplY3RNZXNzYWdlVHlwZSwgTG9nTWVzc2FnZUxldmVs
LCBhcmd1bWVudHMsIGNhbGxTdGFjayk7CiB9CiAKLXZvaWQgQ29uc29sZTo6ZGlyeG1sKFBhc3NP
d25QdHI8U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMsIFBhc3NPd25QdHI8U2NyaXB0Q2FsbFN0
YWNrPiBjYWxsU3RhY2spCit2b2lkIENvbnNvbGU6OmRpcnhtbChQYXNzUmVmUHRyPFNjcmlwdEFy
Z3VtZW50cz4gYXJndW1lbnRzLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNr
KQogewogICAgIC8vIFRoZSBzdGFuZGFyZCBiZWhhdmlvciBvZiBvdXIgY29uc29sZS5sb2cgd2ls
bCBwcmludCB0aGUgRE9NIHRyZWUgZm9yIG5vZGVzLgogICAgIGxvZyhhcmd1bWVudHMsIGNhbGxT
dGFjayk7CiB9CiAKLXZvaWQgQ29uc29sZTo6dHJhY2UoUGFzc093blB0cjxTY3JpcHRBcmd1bWVu
dHM+IGFyZ3VtZW50cywgUGFzc093blB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKK3Zv
aWQgQ29uc29sZTo6dHJhY2UoUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+IGFyZ3VtZW50cywg
UGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKIHsKICAgICBhZGRNZXNzYWdl
KFRyYWNlTWVzc2FnZVR5cGUsIExvZ01lc3NhZ2VMZXZlbCwgYXJndW1lbnRzLCBjYWxsU3RhY2ss
IHRydWUpOwogCkBAIC0yNDAsNyArMjQwLDcgQEAgdm9pZCBDb25zb2xlOjp0cmFjZShQYXNzT3du
UHRyPFNjcmlwdEFyZ3VtZW50cz4gYXJndW1lbnRzLCBQYXNzT3duUHRyPFNjcmlwdENhbGwKICAg
ICB9CiB9CiAKLXZvaWQgQ29uc29sZTo6YXNzZXJ0Q29uZGl0aW9uKGJvb2wgY29uZGl0aW9uLCBQ
YXNzT3duUHRyPFNjcmlwdEFyZ3VtZW50cz4gYXJndW1lbnRzLCBQYXNzT3duUHRyPFNjcmlwdENh
bGxTdGFjaz4gY2FsbFN0YWNrKQordm9pZCBDb25zb2xlOjphc3NlcnRDb25kaXRpb24oYm9vbCBj
b25kaXRpb24sIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMsIFBhc3NSZWZQ
dHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2spCiB7CiAgICAgaWYgKGNvbmRpdGlvbikKICAg
ICAgICAgcmV0dXJuOwpAQCAtMjQ4LDcgKzI0OCw3IEBAIHZvaWQgQ29uc29sZTo6YXNzZXJ0Q29u
ZGl0aW9uKGJvb2wgY29uZGl0aW9uLCBQYXNzT3duUHRyPFNjcmlwdEFyZ3VtZW50cz4gYXJndW1l
CiAgICAgYWRkTWVzc2FnZShBc3NlcnRNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIGFy
Z3VtZW50cywgY2FsbFN0YWNrLCB0cnVlKTsKIH0KIAotdm9pZCBDb25zb2xlOjpjb3VudChQYXNz
T3duUHRyPFNjcmlwdEFyZ3VtZW50cz4gYXJndW1lbnRzLCBQYXNzT3duUHRyPFNjcmlwdENhbGxT
dGFjaz4gY2FsbFN0YWNrKQordm9pZCBDb25zb2xlOjpjb3VudChQYXNzUmVmUHRyPFNjcmlwdEFy
Z3VtZW50cz4gYXJndW1lbnRzLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNr
KQogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgUGFnZSogcGFnZSA9IHRoaXMtPnBhZ2Uo
KTsKQEAgLTI2Nyw3ICsyNjcsNyBAQCB2b2lkIENvbnNvbGU6OmNvdW50KFBhc3NPd25QdHI8U2Ny
aXB0QXJndW1lbnRzPiBhcmd1bWVudHMsIFBhc3NPd25QdHI8U2NyaXB0Q2FsbAogI2VuZGlmCiB9
CiAKLXZvaWQgQ29uc29sZTo6bWFya1RpbWVsaW5lKFBhc3NPd25QdHI8U2NyaXB0QXJndW1lbnRz
PiBhcmd1bWVudHMsIFBhc3NPd25QdHI8U2NyaXB0Q2FsbFN0YWNrPikKK3ZvaWQgQ29uc29sZTo6
bWFya1RpbWVsaW5lKFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMsIFBhc3NS
ZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPikKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIFBh
Z2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCk7CkBAIC0zMTIsNyArMzEyLDcgQEAgU3RyaW5nIENvbnNv
bGU6Omxhc3RXTUxFcnJvck1lc3NhZ2UoKSBjb25zdAogCiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRf
REVCVUdHRVIpCiAKLXZvaWQgQ29uc29sZTo6cHJvZmlsZShjb25zdCBTdHJpbmcmIHRpdGxlLCBT
Y3JpcHRTdGF0ZSogc3RhdGUsIFBhc3NPd25QdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2sp
Cit2b2lkIENvbnNvbGU6OnByb2ZpbGUoY29uc3QgU3RyaW5nJiB0aXRsZSwgU2NyaXB0U3RhdGUq
IHN0YXRlLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKQogewogICAgIFBh
Z2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKQpAQCAtMzQxLDcgKzM0MSw3
IEBAIHZvaWQgQ29uc29sZTo6cHJvZmlsZShjb25zdCBTdHJpbmcmIHRpdGxlLCBTY3JpcHRTdGF0
ZSogc3RhdGUsIFBhc3NPd25QdHI8U2NyaXB0CiAjZW5kaWYKIH0KIAotdm9pZCBDb25zb2xlOjpw
cm9maWxlRW5kKGNvbnN0IFN0cmluZyYgdGl0bGUsIFNjcmlwdFN0YXRlKiBzdGF0ZSwgUGFzc093
blB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKK3ZvaWQgQ29uc29sZTo6cHJvZmlsZUVu
ZChjb25zdCBTdHJpbmcmIHRpdGxlLCBTY3JpcHRTdGF0ZSogc3RhdGUsIFBhc3NSZWZQdHI8U2Ny
aXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2spCiB7CiAgICAgUGFnZSogcGFnZSA9IHRoaXMtPnBhZ2Uo
KTsKICAgICBpZiAoIXBhZ2UpCkBAIC0zODUsNyArMzg1LDcgQEAgdm9pZCBDb25zb2xlOjp0aW1l
KGNvbnN0IFN0cmluZyYgdGl0bGUpCiAjZW5kaWYKIH0KIAotdm9pZCBDb25zb2xlOjp0aW1lRW5k
KGNvbnN0IFN0cmluZyYgdGl0bGUsIFBhc3NPd25QdHI8U2NyaXB0QXJndW1lbnRzPiwgUGFzc093
blB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKK3ZvaWQgQ29uc29sZTo6dGltZUVuZChj
b25zdCBTdHJpbmcmIHRpdGxlLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4sIFBhc3NSZWZQ
dHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2spCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikK
ICAgICBQYWdlKiBwYWdlID0gdGhpcy0+cGFnZSgpOwpAQCAtNDExLDcgKzQxMSw3IEBAIHZvaWQg
Q29uc29sZTo6dGltZUVuZChjb25zdCBTdHJpbmcmIHRpdGxlLCBQYXNzT3duUHRyPFNjcmlwdEFy
Z3VtZW50cz4sIFBhc3NPd25QCiAjZW5kaWYKIH0KIAotdm9pZCBDb25zb2xlOjpncm91cChQYXNz
T3duUHRyPFNjcmlwdEFyZ3VtZW50cz4gYXJndW1lbnRzLCBQYXNzT3duUHRyPFNjcmlwdENhbGxT
dGFjaz4gY2FsbFN0YWNrKQordm9pZCBDb25zb2xlOjpncm91cChQYXNzUmVmUHRyPFNjcmlwdEFy
Z3VtZW50cz4gYXJndW1lbnRzLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNr
KQogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgUGFnZSogcGFnZSA9IHRoaXMtPnBhZ2Uo
KTsKQEAgLTQyNSw3ICs0MjUsNyBAQCB2b2lkIENvbnNvbGU6Omdyb3VwKFBhc3NPd25QdHI8U2Ny
aXB0QXJndW1lbnRzPiBhcmd1bWVudHMsIFBhc3NPd25QdHI8U2NyaXB0Q2FsbAogI2VuZGlmCiB9
CiAKLXZvaWQgQ29uc29sZTo6Z3JvdXBDb2xsYXBzZWQoUGFzc093blB0cjxTY3JpcHRBcmd1bWVu
dHM+IGFyZ3VtZW50cywgUGFzc093blB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKK3Zv
aWQgQ29uc29sZTo6Z3JvdXBDb2xsYXBzZWQoUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+IGFy
Z3VtZW50cywgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKIHsKICNpZiBF
TkFCTEUoSU5TUEVDVE9SKQogICAgIFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCk7CkBAIC00NjMs
NyArNDYzLDcgQEAgYm9vbCBDb25zb2xlOjpzaG91bGRDYXB0dXJlRnVsbFN0YWNrVHJhY2UoKSBj
b25zdAogI2VuZGlmCiB9CiAKLXZvaWQgQ29uc29sZTo6d2FybihQYXNzT3duUHRyPFNjcmlwdEFy
Z3VtZW50cz4gYXJndW1lbnRzLCBQYXNzT3duUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNr
KQordm9pZCBDb25zb2xlOjp3YXJuKFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVu
dHMsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2spCiB7CiAgICAgYWRkTWVz
c2FnZShMb2dNZXNzYWdlVHlwZSwgV2FybmluZ01lc3NhZ2VMZXZlbCwgYXJndW1lbnRzLCBjYWxs
U3RhY2spOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0NvbnNvbGUuaCBiL1dlYkNvcmUv
cGFnZS9Db25zb2xlLmgKaW5kZXggOTJmZWU1OTQ3NDYxZTNiNTA1ZDlkMjA4MDhkODRkMDRlZWYx
YjA3Ny4uMTlmMWE1NzUzMDYyYjlkMWMyYzVhMDJmN2JlMjY3MDE5MjZlOTQ2ZiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9wYWdlL0NvbnNvbGUuaAorKysgYi9XZWJDb3JlL3BhZ2UvQ29uc29sZS5oCkBA
IC04NywzMSArODcsMzEgQEAgcHVibGljOgogICAgIHZvaWQgZGlzY29ubmVjdEZyYW1lKCk7CiAK
ICAgICB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VM
ZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBT
dHJpbmcmIHNvdXJjZVVSTCk7Ci0gICAgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1l
c3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQg
bGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIFBhc3NPd25QdHI8U2NyaXB0Q2Fs
bFN0YWNrPiBjYWxsU3RhY2spOwotCi0gICAgdm9pZCBkZWJ1ZyhQYXNzT3duUHRyPFNjcmlwdEFy
Z3VtZW50cz4sIFBhc3NPd25QdHI8U2NyaXB0Q2FsbFN0YWNrPik7Ci0gICAgdm9pZCBlcnJvcihQ
YXNzT3duUHRyPFNjcmlwdEFyZ3VtZW50cz4sIFBhc3NPd25QdHI8U2NyaXB0Q2FsbFN0YWNrPik7
Ci0gICAgdm9pZCBpbmZvKFBhc3NPd25QdHI8U2NyaXB0QXJndW1lbnRzPiwgUGFzc093blB0cjxT
Y3JpcHRDYWxsU3RhY2s+KTsKLSAgICB2b2lkIGxvZyhQYXNzT3duUHRyPFNjcmlwdEFyZ3VtZW50
cz4sIFBhc3NPd25QdHI8U2NyaXB0Q2FsbFN0YWNrPik7Ci0gICAgdm9pZCB3YXJuKFBhc3NPd25Q
dHI8U2NyaXB0QXJndW1lbnRzPiwgUGFzc093blB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKLSAgICB2
b2lkIGRpcihQYXNzT3duUHRyPFNjcmlwdEFyZ3VtZW50cz4sIFBhc3NPd25QdHI8U2NyaXB0Q2Fs
bFN0YWNrPik7Ci0gICAgdm9pZCBkaXJ4bWwoUGFzc093blB0cjxTY3JpcHRBcmd1bWVudHM+LCBQ
YXNzT3duUHRyPFNjcmlwdENhbGxTdGFjaz4pOwotICAgIHZvaWQgdHJhY2UoUGFzc093blB0cjxT
Y3JpcHRBcmd1bWVudHM+LCBQYXNzT3duUHRyPFNjcmlwdENhbGxTdGFjaz4pOwotICAgIHZvaWQg
YXNzZXJ0Q29uZGl0aW9uKGJvb2wgY29uZGl0aW9uLCBQYXNzT3duUHRyPFNjcmlwdEFyZ3VtZW50
cz4sIFBhc3NPd25QdHI8U2NyaXB0Q2FsbFN0YWNrPik7Ci0gICAgdm9pZCBjb3VudChQYXNzT3du
UHRyPFNjcmlwdEFyZ3VtZW50cz4sIFBhc3NPd25QdHI8U2NyaXB0Q2FsbFN0YWNrPik7Ci0gICAg
dm9pZCBtYXJrVGltZWxpbmUoUGFzc093blB0cjxTY3JpcHRBcmd1bWVudHM+LCBQYXNzT3duUHRy
PFNjcmlwdENhbGxTdGFjaz4pOworICAgIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBN
ZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVk
IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBQYXNzUmVmUHRyPFNjcmlwdENh
bGxTdGFjaz4gY2FsbFN0YWNrKTsKKworICAgIHZvaWQgZGVidWcoUGFzc1JlZlB0cjxTY3JpcHRB
cmd1bWVudHM+LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOworICAgIHZvaWQgZXJyb3Io
UGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4p
OworICAgIHZvaWQgaW5mbyhQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4sIFBhc3NSZWZQdHI8
U2NyaXB0Q2FsbFN0YWNrPik7CisgICAgdm9pZCBsb2coUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVu
dHM+LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOworICAgIHZvaWQgd2FybihQYXNzUmVm
UHRyPFNjcmlwdEFyZ3VtZW50cz4sIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7CisgICAg
dm9pZCBkaXIoUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+LCBQYXNzUmVmUHRyPFNjcmlwdENh
bGxTdGFjaz4pOworICAgIHZvaWQgZGlyeG1sKFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiwg
UGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKKyAgICB2b2lkIHRyYWNlKFBhc3NSZWZQdHI8
U2NyaXB0QXJndW1lbnRzPiwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKKyAgICB2b2lk
IGFzc2VydENvbmRpdGlvbihib29sIGNvbmRpdGlvbiwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVu
dHM+LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOworICAgIHZvaWQgY291bnQoUGFzc1Jl
ZlB0cjxTY3JpcHRBcmd1bWVudHM+LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOworICAg
IHZvaWQgbWFya1RpbWVsaW5lKFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiwgUGFzc1JlZlB0
cjxTY3JpcHRDYWxsU3RhY2s+KTsKICNpZiBFTkFCTEUoV01MKQogICAgIFN0cmluZyBsYXN0V01M
RXJyb3JNZXNzYWdlKCkgY29uc3Q7CiAjZW5kaWYKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJV
R0dFUikKICAgICBjb25zdCBQcm9maWxlc0FycmF5JiBwcm9maWxlcygpIGNvbnN0IHsgcmV0dXJu
IG1fcHJvZmlsZXM7IH0KLSAgICB2b2lkIHByb2ZpbGUoY29uc3QgU3RyaW5nJiwgU2NyaXB0U3Rh
dGUqLCBQYXNzT3duUHRyPFNjcmlwdENhbGxTdGFjaz4pOwotICAgIHZvaWQgcHJvZmlsZUVuZChj
b25zdCBTdHJpbmcmLCBTY3JpcHRTdGF0ZSosIFBhc3NPd25QdHI8U2NyaXB0Q2FsbFN0YWNrPik7
CisgICAgdm9pZCBwcm9maWxlKGNvbnN0IFN0cmluZyYsIFNjcmlwdFN0YXRlKiwgUGFzc1JlZlB0
cjxTY3JpcHRDYWxsU3RhY2s+KTsKKyAgICB2b2lkIHByb2ZpbGVFbmQoY29uc3QgU3RyaW5nJiwg
U2NyaXB0U3RhdGUqLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOwogI2VuZGlmCiAgICAg
dm9pZCB0aW1lKGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQgdGltZUVuZChjb25zdCBTdHJpbmcm
LCBQYXNzT3duUHRyPFNjcmlwdEFyZ3VtZW50cz4sIFBhc3NPd25QdHI8U2NyaXB0Q2FsbFN0YWNr
Pik7Ci0gICAgdm9pZCBncm91cChQYXNzT3duUHRyPFNjcmlwdEFyZ3VtZW50cz4sIFBhc3NPd25Q
dHI8U2NyaXB0Q2FsbFN0YWNrPik7Ci0gICAgdm9pZCBncm91cENvbGxhcHNlZChQYXNzT3duUHRy
PFNjcmlwdEFyZ3VtZW50cz4sIFBhc3NPd25QdHI8U2NyaXB0Q2FsbFN0YWNrPik7CisgICAgdm9p
ZCB0aW1lRW5kKGNvbnN0IFN0cmluZyYsIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiwgUGFz
c1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKKyAgICB2b2lkIGdyb3VwKFBhc3NSZWZQdHI8U2Ny
aXB0QXJndW1lbnRzPiwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKKyAgICB2b2lkIGdy
b3VwQ29sbGFwc2VkKFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiwgUGFzc1JlZlB0cjxTY3Jp
cHRDYWxsU3RhY2s+KTsKICAgICB2b2lkIGdyb3VwRW5kKCk7CiAKICAgICBib29sIHNob3VsZENh
cHR1cmVGdWxsU3RhY2tUcmFjZSgpIGNvbnN0OwpAQCAtMTIzLDcgKzEyMyw3IEBAIHB1YmxpYzoK
IAogcHJpdmF0ZToKICAgICBpbmxpbmUgUGFnZSogcGFnZSgpIGNvbnN0OwotICAgIHZvaWQgYWRk
TWVzc2FnZShNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBQYXNzT3duUHRyPFNjcmlwdEFyZ3Vt
ZW50cz4sIFBhc3NPd25QdHI8U2NyaXB0Q2FsbFN0YWNrPiwgYm9vbCBhY2NlcHROb0FyZ3VtZW50
cyA9IGZhbHNlKTsKKyAgICB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZl
bCwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFj
az4sIGJvb2wgYWNjZXB0Tm9Bcmd1bWVudHMgPSBmYWxzZSk7CiAKICAgICBDb25zb2xlKEZyYW1l
Kik7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>