<?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>32033</bug_id>
          
          <creation_ts>2009-12-01 13:25:57 -0800</creation_ts>
          <short_desc>check-webkit-style does not understand (Prefix)Foo(Custom|Gtk|CG|Mac).cpp including Foo.h</short_desc>
          <delta_ts>2009-12-01 17:28:04 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>hamaji</cc>
    
    <cc>levin</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>167724</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-12-01 13:25:57 -0800</bug_when>
    <thetext>check-webkit-style does not understand *(Custom|Gtk|CG|Mac).cpp including *.h

We have a bunch of files in WebCore which share a common header, one example is our JS Custom bindings:
https://bugs.webkit.org/show_bug.cgi?id=30206#c6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167778</commentid>
    <comment_count>1</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2009-12-01 16:28:48 -0800</bug_when>
    <thetext>Fixed title (as it did understand the prior form :) ).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167784</commentid>
    <comment_count>2</comment_count>
      <attachid>44111</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-12-01 16:55:51 -0800</bug_when>
    <thetext>Created attachment 44111
2009-12-01  Nikolas Zimmermann  &lt;nzimmermann@rim.com&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167785</commentid>
    <comment_count>3</comment_count>
      <attachid>44112</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-12-01 16:56:34 -0800</bug_when>
    <thetext>Created attachment 44112
check-webkit-style does not understand (Prefix)Foo(Custom|Gtk|CG|Mac).cpp including Foo.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167787</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-01 16:58:52 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 44112 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167791</commentid>
    <comment_count>5</comment_count>
      <attachid>44112</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-12-01 17:04:30 -0800</bug_when>
    <thetext>Comment on attachment 44112
check-webkit-style does not understand (Prefix)Foo(Custom|Gtk|CG|Mac).cpp including Foo.h

LGTM.  Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167800</commentid>
    <comment_count>6</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2009-12-01 17:28:04 -0800</bug_when>
    <thetext>Committed as http://trac.webkit.org/changeset/51570</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44111</attachid>
            <date>2009-12-01 16:55:51 -0800</date>
            <delta_ts>2009-12-01 16:56:30 -0800</delta_ts>
            <desc>2009-12-01  Nikolas Zimmermann  &lt;nzimmermann@rim.com&gt;</desc>
            <filename>bug-32033-20091201165549.patch</filename>
            <type>text/plain</type>
            <size>50760</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlNGM1MDZmLi4xOGQ4YmQ5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMDktMTIt
MDEgIE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJtYW5uQHJpbS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIEFkZCBTVkcgYW5pbWF0aW9uIHRl
c3QgZnJhbWV3b3JrIHdpdGggJ3NuYXBzaG90JyBmdW5jdGlvbmFsaXR5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTg5NworCisgICAgICAgIEFkZCBM
YXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucyBkaXJlY3RvcnksIGNvbnRhaW5pbmcgYSBuZXcKKyAg
ICAgICAgZnJhbWV3b3JrIGZvciBTVkcgYW5pbWF0aW9uIHRlc3Qgd2l0aCBzYW1wbGluZyBhdCBj
ZXJ0YWluIHRpbWVzLgorCisgICAgICAgIEFkZGVkIG9uZSBleGFtcGxlIHRlc3QsIHdoaWNoIHdp
bGwgYmUgZXh0ZW5kZWQgc29vbiB0byBjb3ZlciBhbmltVmFsCisgICAgICAgIHN1cHBvcnQsIG9u
Y2UgYmFzaWMgc3VwcG9ydCBoYXMgYmVlbiBpbXBsZW1lbnRlZC4KKworICAgICAgICAqIHN2Zy9h
bmltYXRpb25zOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9hbmltVmFsLWJhc2lj
cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL2FuaW1WYWwt
YmFzaWNzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL3Jlc291cmNlczog
QWRkZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvcmVzb3VyY2VzL1NWR0FuaW1hdGlvblRl
c3RDYXNlLmpzOiBBZGRlZC4KKyAgICAgICAgKGlzQ2xvc2VFbm91Z2gpOgorICAgICAgICAobW92
ZUFuaW1hdGlvblRpbWVsaW5lQW5kU2FtcGxlKToKKyAgICAgICAgKHN0YXJ0VGVzdCk6CisgICAg
ICAgIChzYW1wbGVBbmltYXRpb24pOgorICAgICAgICAocnVuQW5pbWF0aW9uVGVzdCk6CisgICAg
ICAgICogc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzOiBBZGRlZC4KKyAgICAgICAgKiBzdmcv
YW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvVEVNUExBVEUuaHRtbDogQWRkZWQuCisgICAgICAgICog
c3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL2FuaW1WYWwtYmFzaWNzLmpzOiBBZGRlZC4KKyAg
ICAgICAgKHNhbXBsZTEpOgorICAgICAgICAoc2FtcGxlMik6CisgICAgICAgIChzYW1wbGUzKToK
KyAgICAgICAgKGV4ZWN1dGVUZXN0KToKKwogMjAwOS0xMi0wMSAgQWRhbSBSb2JlbiAgPGFyb2Jl
bkBhcHBsZS5jb20+CiAKICAgICAgICAgU2tpcCBtb3JlIHRlc3RzIHRoYXQgZmFpbCB3aXRoIHNw
ZWNpZmljIHZlcnNpb25zIG9mIENGTmV0d29yayBvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3ZnL2FuaW1hdGlvbnMvYW5pbVZhbC1iYXNpY3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
c3ZnL2FuaW1hdGlvbnMvYW5pbVZhbC1iYXNpY3MtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRjN2IwYTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltVmFsLWJhc2ljcy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxOSBAQAorU1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0cworCitUcml2aWFsIGFuaW1W
YWwgdGVzdGNhc2UsIHRvIHNlZSB3aGV0ZXIgd2Ugc3VwcG9ydCBpdCBhdCBhbGwuIFNob3VsZCBy
ZXN1bHQgaW4gYSAyMDB4MjAwIHJlY3QgYW5kIG9ubHkgUEFTUyBtZXNzYWdlcworCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMg
MjAwCitQQVNTIHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAyMDAKK1BBU1MgcmVjdC53aWR0
aC5hbmltVmFsLnZhbHVlIGlzIDE1MAorUEFTUyByZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMg
MTUwCitQQVNTIHJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyBhbG1vc3QgMTAwLCBqdXN0IGJl
Zm9yZS1lbmQKK1BBU1MgcmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIGlzIGFsbW9zdCAxMDAsIGp1
c3QgYmVmb3JlLWVuZAorUEFTUyByZWN0LndpZHRoLmFuaW1WYWwudmFsdWUgaXMgMjAwCitQQVNT
IHJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSBpcyAyMDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcv
YW5pbWF0aW9ucy9hbmltVmFsLWJhc2ljcy5odG1sIGIvTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlv
bnMvYW5pbVZhbC1iYXNpY3MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5hNTRiZmI4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMv
YW5pbVZhbC1iYXNpY3MuaHRtbApAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJM
SUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNz
cyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2R5bmFtaWMtdXBkYXRlcy9yZXNvdXJjZXMvU1ZH
VGVzdENhc2UuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9TVkdBbmltYXRp
b25UZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxoMT5TVkcgMS4xIGR5
bmFtaWMgYW5pbWF0aW9uIHRlc3RzPC9oMT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2FuaW1WYWwt
YmFzaWNzLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N2Zy9hbmltYXRpb25zL3Jlc291cmNlcy9TVkdBbmltYXRpb25UZXN0Q2FzZS5qcyBi
L0xheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3Jlc291cmNlcy9TVkdBbmltYXRpb25UZXN0Q2Fz
ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNThmNDgwCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvcmVzb3VyY2VzL1NWR0FuaW1h
dGlvblRlc3RDYXNlLmpzCkBAIC0wLDAgKzEsNzggQEAKKy8vIEluc3BpcmVkIGJ5IExheW91dGVz
dHMvYW5pbWF0aW9ucy9hbmltYXRpb24tdGVzdC1oZWxwZXJzLmpzCisvLyBNb2RpZmllZCB0byB3
b3JrIHdpdGggU1ZHIGFuZCB0b2dldGhlciB3aXRoIExheW91dFRlc3RzL3N2Zy9keW5hbWljLXVw
ZGF0ZXMvcmVzb3VyY2VzL1NWR1Rlc3RDYXNlLmpzCisKK2Z1bmN0aW9uIGlzQ2xvc2VFbm91Z2go
YWN0dWFsLCBkZXNpcmVkLCB0b2xlcmFuY2UpCit7CisgICAgdmFyIGRpZmYgPSBNYXRoLmFicyhh
Y3R1YWwgLSBkZXNpcmVkKTsKKyAgICByZXR1cm4gZGlmZiA8PSB0b2xlcmFuY2U7Cit9CisKK2Z1
bmN0aW9uIG1vdmVBbmltYXRpb25UaW1lbGluZUFuZFNhbXBsZShpbmRleCkKK3sKKyAgICB2YXIg
YW5pbWF0aW9uSWQgPSBleHBlY3RlZFJlc3VsdHNbaW5kZXhdWzBdOworICAgIHZhciB0aW1lID0g
ZXhwZWN0ZWRSZXN1bHRzW2luZGV4XVsxXTsKKyAgICB2YXIgZWxlbWVudElkID0gZXhwZWN0ZWRS
ZXN1bHRzW2luZGV4XVsyXTsKKyAgICB2YXIgc2FtcGxlQ2FsbGJhY2sgPSBleHBlY3RlZFJlc3Vs
dHNbaW5kZXhdWzNdOworCisgICAgaWYgKCFsYXlvdXRUZXN0Q29udHJvbGxlci5zYW1wbGVTVkdB
bmltYXRpb25Gb3JFbGVtZW50QXRUaW1lKGFuaW1hdGlvbklkLCB0aW1lLCBlbGVtZW50SWQpKSB7
CisgICAgICAgIHRlc3RGYWlsZWQoImFuaW1hdGlvbiBcIiIgKyBhbmltYXRpb25JZCArICJcIiBp
cyBub3QgcnVubmluZyIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgc2FtcGxlQ2Fs
bGJhY2soKTsKK30KKwordmFyIGN1cnJlbnRUZXN0ID0gMDsKK3ZhciBleHBlY3RlZFJlc3VsdHM7
CisKK2Z1bmN0aW9uIHN0YXJ0VGVzdChjYWxsYmFjaykgeworICAgIGlmIChjdXJyZW50VGVzdCA+
IDApCisgICAgICAgIHRocm93KCJOb3QgYWxsb3dlZCB0byBjYWxsIHN0YXJ0VGVzdCgpIHR3aWNl
Iik7CisKKyAgICB0ZXN0Q291bnQgPSBleHBlY3RlZFJlc3VsdHMubGVuZ3RoOworICAgIGN1cnJl
bnRUZXN0ID0gMDsKKworICAgIGlmIChjYWxsYmFjaykKKyAgICAgICAgY2FsbGJhY2soKTsKKwor
ICAgIC8vIEltbWVkaWF0ZWx5IHNhbXBsZSwgaWYgdGhlIGZpcnN0IHRpbWUgaXMgMAorICAgIGlm
IChleHBlY3RlZFJlc3VsdHNbMF1bMV0gPT0gJzAnKSB7CisgICAgICAgIGV4cGVjdGVkUmVzdWx0
c1swXVszXSgpOworICAgICAgICArK2N1cnJlbnRUZXN0OworICAgIH0KKworICAgIC8vIFdlIG1h
eSBoYXZlIGp1c3Qgc2FtcGxlZCBvbiBhbmltYXRpb24tYmVnaW4sIGdpdmUgdGhlCisgICAgLy8g
ZG9jdW1lbnQgc29tZSB0aW1lIHRvIGludm9rZSB0aGUgU1ZHIGFuaW1hdGlvbi4KKyAgICAvLyBJ
ZiB3ZSBmaXggdGhlIGFuaW1hdGlvbiB0byBzdGFydCB3aXRoIHRoZSBTVkdMb2FkIGV2ZW50Cisg
ICAgLy8gbm90IG9uIGltcGxpY2l0Q2xvc2UoKSwgd2UgY2FuIGV2ZW4gYXZvaWQgdGhpcyBoYWNr
LgorICAgIHdpbmRvdy5zZXRUaW1lb3V0KHNhbXBsZUFuaW1hdGlvbiwgMCk7Cit9CisKK2Z1bmN0
aW9uIHNhbXBsZUFuaW1hdGlvbigpIHsKKyAgICBpZiAoY3VycmVudFRlc3QgPT0gZXhwZWN0ZWRS
ZXN1bHRzLmxlbmd0aCkgeworICAgICAgICBjb21wbGV0ZVRlc3QoKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIG1vdmVBbmltYXRpb25UaW1lbGluZUFuZFNhbXBsZShjdXJyZW50VGVz
dCk7CisgICAgKytjdXJyZW50VGVzdDsKKworICAgIHNhbXBsZUFuaW1hdGlvbigpOworfQorCit2
YXIgaGFzUGF1c2VBbmltYXRpb25BUEk7Cit2YXIgZ2xvYmFsQ2FsbGJhY2s7CisKK2Z1bmN0aW9u
IHJ1bkFuaW1hdGlvblRlc3QoZXhwZWN0ZWQsIGNhbGxiYWNrKQoreworICAgIGlmICghZXhwZWN0
ZWQpCisgICAgICAgIHRocm93KCJFeHBlY3RlZCByZXN1bHRzIGFyZSBtaXNzaW5nISIpOworCisg
ICAgZXhwZWN0ZWRSZXN1bHRzID0gZXhwZWN0ZWQ7CisKKyAgICBoYXNQYXVzZUFuaW1hdGlvbkFQ
SSA9ICgnbGF5b3V0VGVzdENvbnRyb2xsZXInIGluIHdpbmRvdykgJiYgKCdzYW1wbGVTVkdBbmlt
YXRpb25Gb3JFbGVtZW50QXRUaW1lJyBpbiBsYXlvdXRUZXN0Q29udHJvbGxlcik7CisgICAgaWYg
KCFoYXNQYXVzZUFuaW1hdGlvbkFQSSkKKyAgICAgICAgdGhyb3coIlNWRyBhbmltYXRpb24gcGF1
c2UgQVBJIG1pc3NpbmchIik7CisKKyAgICBzdGFydFRlc3QoY2FsbGJhY2spOworfQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0
bWwgYi9MYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvVEVNUExBVEUuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNzQwYTU1Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL1RFTVBMQVRF
Lmh0bWwKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9E
VEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl
Zj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi9keW5hbWljLXVwZGF0ZXMvcmVzb3VyY2VzL1NWR1Rlc3RDYXNlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvU1ZHQW5pbWF0aW9uVGVzdENhc2UuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aDE+U1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlv
biB0ZXN0czwvaDE+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgorPHNjcmlwdCBzcmM9IllPVVJfSlNfRklMRV9IRVJFIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3Njcmlw
dC10ZXN0cy9hbmltVmFsLWJhc2ljcy5qcyBiL0xheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3Nj
cmlwdC10ZXN0cy9hbmltVmFsLWJhc2ljcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5iODBkMTViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvc2NyaXB0LXRlc3RzL2FuaW1WYWwtYmFzaWNzLmpzCkBAIC0wLDAgKzEsNzMgQEAKKy8v
IEZJWE1FOiBUaGlzIHRlc3Qgd2lsbCBiZWNvbWUgdXNlZnVsIG9uY2Ugd2UgaGF2ZSBiYXNpYyBh
bmltVmFsIHN1cHBvcnQuIEZvciBub3cgaXQncyBqdXN0IHRlc3RpbmcgdGhlIFNWRyBhbmltYXRp
b24gdGVzdCBpbmZyYXN0cnVjdHVyZQorZGVzY3JpcHRpb24oIlRyaXZpYWwgYW5pbVZhbCB0ZXN0
Y2FzZSwgdG8gc2VlIHdoZXRlciB3ZSBzdXBwb3J0IGl0IGF0IGFsbC4gU2hvdWxkIHJlc3VsdCBp
biBhIDIwMHgyMDAgcmVjdCBhbmQgb25seSBQQVNTIG1lc3NhZ2VzIik7CitjcmVhdGVTVkdUZXN0
Q2FzZSgpOworCisvLyBTZXR1cCB0ZXN0IGRvY3VtZW50Cit2YXIgcmVjdCA9IGNyZWF0ZVNWR0Vs
ZW1lbnQoInJlY3QiKTsKK3JlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJyZWN0Iik7CityZWN0LnNl
dEF0dHJpYnV0ZSgid2lkdGgiLCAiMjAwIik7CityZWN0LnNldEF0dHJpYnV0ZSgiaGVpZ2h0Iiwg
IjIwMCIpOworcmVjdC5zZXRBdHRyaWJ1dGUoImZpbGwiLCAiZ3JlZW4iKTsKK3JlY3Quc2V0QXR0
cmlidXRlKCJvbmNsaWNrIiwgImV4ZWN1dGVUZXN0KCkiKTsKKwordmFyIGFuaW1hdGUgPSBjcmVh
dGVTVkdFbGVtZW50KCJhbmltYXRlIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiaWQiLCAiYW5p
bWF0aW9uIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYXR0cmlidXRlTmFtZSIsICJ3aWR0aCIp
OworYW5pbWF0ZS5zZXRBdHRyaWJ1dGUoImZyb20iLCAiMjAwIik7CithbmltYXRlLnNldEF0dHJp
YnV0ZSgidG8iLCAiMTAwIik7CithbmltYXRlLnNldEF0dHJpYnV0ZSgiYmVnaW4iLCAiY2xpY2si
KTsKK2FuaW1hdGUuc2V0QXR0cmlidXRlKCJkdXIiLCAiNHMiKTsKK3JlY3QuYXBwZW5kQ2hpbGQo
YW5pbWF0ZSk7Cityb290U1ZHRWxlbWVudC5hcHBlbmRDaGlsZChyZWN0KTsKKworLy8gU2V0dXAg
YW5pbWF0aW9uIHRlc3QKK2Z1bmN0aW9uIHNhbXBsZTEoKSB7CisgICAgLy8gQ2hlY2sgaW5pdGlh
bC9lbmQgY29uZGl0aW9ucworICAgIHNob3VsZEJlKCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUi
LCAiMjAwIik7CisgICAgc2hvdWxkQmUoInJlY3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIyMDAi
KTsKK30KKworZnVuY3Rpb24gc2FtcGxlMigpIHsKKyAgICAvLyBGSVhNRTogQWRkIGFuaW1WYWwg
c3VwcG9ydC4gQW5pbWF0ZXMgYmFzZVZhbCBhdCB0aGUgbW9tZW50LgorICAgIC8vIHNob3VsZEJl
KCJyZWN0LndpZHRoLmFuaW1WYWwudmFsdWUiLCAiMTUwIik7CisgICAgLy8gc2hvdWxkQmUoInJl
Y3Qud2lkdGguYmFzZVZhbC52YWx1ZSIsICIyMDAiKTsKKworICAgIC8vIENoZWNrIGhhbGYtdGlt
ZSBjb25kaXRpb25zCisgICAgc2hvdWxkQmUoInJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIx
NTAiKTsKKyAgICBzaG91bGRCZSgicmVjdC53aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjE1MCIpOwor
fQorCitmdW5jdGlvbiBzYW1wbGUzKCkgeworICAgIC8vIEZJWE1FOiBBZGQgYW5pbVZhbCBzdXBw
b3J0LiBBbmltYXRlcyBiYXNlVmFsIGF0IHRoZSBtb21lbnQuCisgICAgLy8gc2hvdWxkQmUoInJl
Y3Qud2lkdGguYW5pbVZhbC52YWx1ZSIsICIxMDAiKTsKKyAgICAvLyBzaG91bGRCZSgicmVjdC53
aWR0aC5iYXNlVmFsLnZhbHVlIiwgIjIwMCIpOworCisgICAgLy8gQ2hlY2sganVzdCBiZWZvcmUt
ZW5kIGNvbmRpdGlvbnMKKyAgICB2YXIgb2sgPSBpc0Nsb3NlRW5vdWdoKHJlY3Qud2lkdGguYW5p
bVZhbC52YWx1ZSwgMTAwLCAwLjAxKTsKKyAgICBpZiAob2spCisgICAgICAgIHRlc3RQYXNzZWQo
InJlY3Qud2lkdGguYW5pbVZhbC52YWx1ZSBpcyBhbG1vc3QgMTAwLCBqdXN0IGJlZm9yZS1lbmQi
KTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQoInJlY3Qud2lkdGguYW5pbVZhbC52YWx1
ZSBpcyBOT1QgYWxtb3N0IDEwMCwgYXMgZXhwZWN0ZWQiKTsKKworICAgIG9rID0gaXNDbG9zZUVu
b3VnaChyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUsIDEwMCwgMC4wMSk7CisgICAgaWYgKG9rKQor
ICAgICAgICB0ZXN0UGFzc2VkKCJyZWN0LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgYWxtb3N0IDEw
MCwganVzdCBiZWZvcmUtZW5kIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCJyZWN0
LndpZHRoLmJhc2VWYWwudmFsdWUgaXMgTk9UIGFsbW9zdCAxMDAsIGFzIGV4cGVjdGVkIik7Cit9
CisKK2Z1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgeworICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0g
WworICAgICAgICAvLyBbYW5pbWF0aW9uSWQsIHRpbWUsIGVsZW1lbnRJZCwgc2FtcGxlQ2FsbGJh
Y2tdCisgICAgICAgIFsiYW5pbWF0aW9uIiwgMC4wLCAgICAicmVjdCIsIHNhbXBsZTFdLAorICAg
ICAgICBbImFuaW1hdGlvbiIsIDIuMCwgICAgInJlY3QiLCBzYW1wbGUyXSwKKyAgICAgICAgWyJh
bmltYXRpb24iLCAzLjk5OTksICJyZWN0Iiwgc2FtcGxlM10sCisgICAgICAgIFsiYW5pbWF0aW9u
IiwgNC4wICwgICAicmVjdCIsIHNhbXBsZTFdCisgICAgXTsKKworICAgIHJ1bkFuaW1hdGlvblRl
c3QoZXhwZWN0ZWRWYWx1ZXMpOworfQorCisvLyBCZWdpbiB0ZXN0IGFzeW5jCit3aW5kb3cuc2V0
VGltZW91dCgidHJpZ2dlclVwZGF0ZSgxNSwgMzApIiwgMCk7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggMTFlM2ZkMC4uYjk2MmNkOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAwOS0xMi0wMSAg
Tmlrb2xhcyBaaW1tZXJtYW5uICA8bnppbW1lcm1hbm5AcmltLmNvbT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgQWRkIFNWRyBhbmltYXRpb24gdGVzdCBm
cmFtZXdvcmsgd2l0aCAnc25hcHNob3QnIGZ1bmN0aW9uYWxpdHkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMxODk3CisKKyAgICAgICAgQWRkICdzYW1w
bGVTVkdBbmltYXRpb25Gb3JFbGVtZW50QXRUaW1lJyBtZXRob2QgdG8gdGhlIExheW91dFRlc3RD
b250cm9sbGVyLAorICAgICAgICBmb3IgdGhlIHVzZSB3aXRoaW4gdGhlIG5ldyBTVkcgYW5pbWF0
aW9uIHRlc3QgZnJhbWV3b3JrIChMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy8pCisKKyAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2FtcGxlQW5pbWF0aW9uQXRUaW1lKDxzdmcgYW5pbWF0
aW9uIGlkPiwgPGFic29sdXRlIHRpbWU+LCA8c3ZnIGVsZW1lbnQgaWQ+KTsKKyAgICAgICAgdG8g
c2FtcGxlIGEgc3ZnIGFuaW1hdGVNb3Rpb24vYW5pbWF0ZUNvbG9yL2FuaW1hdGUvc2V0IGVsZW1l
bnQgYXQgY2VydGFpbiB0aW1lcy4KKworICAgICAgICBBZnRlciB0aGUgZGVzaXJlZCBTVkcgYW5p
bWF0aW9uIHN0YXJ0cyBhbmQgY2FsbGluZyB0aGUgbWV0aG9kIGFib3ZlLCBpdCdzIGltbWVkaWF0
ZWx5IGZvcndhcmRlZCB0bworICAgICAgICB0aGUgZGVzaXJlZCBzYW1wbGluZyB0aW1lLiBBZnRl
ciBKUyByZXR1cm5zIGZyb20gdGhlICdzYW1wbGVTVkdBbmltYXRpb25Gb3JFbGVtZW50QXRUaW1l
JyBtZXRob2QKKyAgICAgICAgYSBjYWxsYmFjayBpcyBmaXJlZCB1c2VkIHRvIHNhbXBsZSB0aGUg
YW5pbWF0aW9uIHZhbHVlIGF0IHRoZSB0YXJnZXQgdGltZS4gSXQncyBtb2RlbGxlZCBzaW1pbGFy
CisgICAgICAgIHRvIHRoZSBDU1MgYW5pbWF0aW9uL3RyYW5zaXRpb24gdGVzdGluZyBmcmFtZXdv
cmssIGluc3BpcmVkIGJ5CisgICAgICAgIExheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9u
LXRlc3QtaGVscGVycy5qcy4KKworICAgICAgICBUaG91Z2ggaXQgaGFzIGJlZW4gZXh0ZW5kZWQg
dG8gaW50ZWdyYXRlIHdpdGhpbiB0aGUgZmFzdC9qcy9qcy10ZXN0LSogZnJhbWV3b3JrLCB0aGF0
J3MgdXNlZCBmb3IKKyAgICAgICAgdGhlIFNWRyBkeW5hbWljLXVwZGF0ZXMgdGVzdHMsIHRvIHNp
bXBsaWZ5IHRlc3QgY3JlYXRpb24sIGJ5IHV0aWxpemluZyBzY3JpcHQtdGVzdHMvKiBvbmx5Lgor
CisgICAgICAgIEFkZGluZyBhIHNpbXBsZSB0ZXN0Y2FzZSB0ZXN0aW5nIHRoZSBEUlQgbWV0aG9k
cywgaXQgd2lsbCBzb29uIGJlIGV4dGVuZGVkIHRvIHRlc3QgYW5pbVZhbC9iYXNlVmFsCisgICAg
ICAgIGludGVyYWN0aW9uLCB3aGlsZSBhbmltYXRpbmcuCisKKyAgICAgICAgVGVzdDogc3ZnL2Fu
aW1hdGlvbnMvYW5pbVZhbC1iYXNpY3MuaHRtbAorCisgICAgICAgICogV2ViQ29yZS5iYXNlLmV4
cDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogc3ZnL1NWR0RvY3VtZW50RXh0ZW5zaW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdE
b2N1bWVudEV4dGVuc2lvbnM6OnNhbXBsZUFuaW1hdGlvbkF0VGltZSk6CisgICAgICAgICogc3Zn
L1NWR0RvY3VtZW50RXh0ZW5zaW9ucy5oOgorICAgICAgICAqIHN2Zy9hbmltYXRpb24vU01JTFRp
bWVDb250YWluZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U01JTFRpbWVDb250YWluZXI6OlNN
SUxUaW1lQ29udGFpbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNNSUxUaW1lQ29udGFpbmVyOjpz
YW1wbGVBbmltYXRpb25BdFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6U01JTFRpbWVDb250YWlu
ZXI6OnVwZGF0ZUFuaW1hdGlvbnMpOgorICAgICAgICAqIHN2Zy9hbmltYXRpb24vU01JTFRpbWVD
b250YWluZXIuaDoKKwogMjAwOS0xMi0wMSAgSmVucyBBbGZrZSAgPHNuZWpAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9XZWJDb3JlLmJhc2UuZXhwIGIvV2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwCmluZGV4IDVmOTRi
YmUuLmNlZDZmYTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cAorKysgYi9X
ZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAKQEAgLTk4NCw2ICs5ODQsMTAgQEAgX19aVFZON1dlYkNv
cmUxMkNocm9tZUNsaWVudEUKIF9fWlRWTjdXZWJDb3JlMTdGaWxlQ2hvb3NlckNsaWVudEUKIF9f
WlRWTjdXZWJDb3JlMTdGcmFtZUxvYWRlckNsaWVudEUKIF9fWlRWTjdXZWJDb3JlMjVIaXN0b3J5
UHJvcGVydHlMaXN0V3JpdGVyRQorX19aTjdXZWJDb3JlMTRTVkdTTUlMRWxlbWVudDEzaXNTTUlM
RWxlbWVudEVQTlNfNE5vZGVFCitfX1pON1dlYkNvcmUyMVNWR0RvY3VtZW50RXh0ZW5zaW9uczIx
c2FtcGxlQW5pbWF0aW9uQXRUaW1lRVJLTlNfNlN0cmluZ0VQTlNfMTRTVkdTTUlMRWxlbWVudEVk
CitfX1pON1dlYkNvcmU4RG9jdW1lbnQxOWFjY2Vzc1NWR0V4dGVuc2lvbnNFdgorX19aTjdXZWJD
b3JlOERvY3VtZW50MTNzdmdFeHRlbnNpb25zRXYKIF9maWxlbmFtZUJ5Rml4aW5nSWxsZWdhbENo
YXJhY3RlcnMKIF9oYXNDYXNlSW5zZW5zaXRpdmVTdWJzdHJpbmcKIF9oYXNDYXNlSW5zZW5zaXRp
dmVTdWZmaXgKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
ZDYzMGViNi4uNGUyNDVjOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTkwLDEwICs5MCwxMCBAQAogCQkwODcyODE1ODBGMjZCOUI2MDBBRkM1OTYgLyog
T3B0aW9uR3JvdXBFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwODcyODE1NDBGMjZCOUI2MDBBRkM1OTYgLyogT3B0aW9uR3JvdXBFbGVtZW50
LmggKi87IH07CiAJCTA4NzQ0QkFBMEVEQjdEODYwMDRDOUU2MyAvKiBXTUxPbkV2ZW50RWxlbWVu
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODc0
NEJBOTBFREI3RDg2MDA0QzlFNjMgLyogV01MT25FdmVudEVsZW1lbnQuY3BwICovOyB9OwogCQkw
ODc0NEJBRTBFREI3RDkyMDA0QzlFNjMgLyogV01MT25FdmVudEVsZW1lbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4NzQ0QkFEMEVEQjdEOTIwMDRD
OUU2MyAvKiBXTUxPbkV2ZW50RWxlbWVudC5oICovOyB9OwotCQkwODc4QjFGRDEwODc0RTNGMDBB
NTUwOTcgLyogU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMDg3OEIxRjkxMDg3NEUzRjAwQTU1MDk3IC8qIFNWR0FuaW1h
dGVkUHJvcGVydHkuaCAqLzsgfTsKKwkJMDg3OEIxRkQxMDg3NEUzRjAwQTU1MDk3IC8qIFNWR0Fu
aW1hdGVkUHJvcGVydHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDA4NzhCMUY5MTA4NzRFM0YwMEE1NTA5NyAvKiBTVkdBbmltYXRlZFByb3BlcnR5Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDg3OEIx
RkUxMDg3NEUzRjAwQTU1MDk3IC8qIFN5bmNocm9uaXphYmxlUHJvcGVydHlDb250cm9sbGVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4NzhCMUZB
MTA4NzRFM0YwMEE1NTA5NyAvKiBTeW5jaHJvbml6YWJsZVByb3BlcnR5Q29udHJvbGxlci5jcHAg
Ki87IH07Ci0JCTA4NzhCMUZGMTA4NzRFM0YwMEE1NTA5NyAvKiBTeW5jaHJvbml6YWJsZVByb3Bl
cnR5Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMDg3OEIxRkIxMDg3NEUzRjAwQTU1MDk3IC8qIFN5bmNocm9uaXphYmxlUHJvcGVydHlD
b250cm9sbGVyLmggKi87IH07Ci0JCTA4NzhCMjAwMTA4NzRFM0YwMEE1NTA5NyAvKiBTeW5jaHJv
bml6YWJsZVR5cGVXcmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwODc4QjFGQzEwODc0RTNGMDBBNTUwOTcgLyogU3luY2hyb25pemFibGVUeXBl
V3JhcHBlci5oICovOyB9OworCQkwODc4QjFGRjEwODc0RTNGMDBBNTUwOTcgLyogU3luY2hyb25p
emFibGVQcm9wZXJ0eUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA4NzhCMUZCMTA4NzRFM0YwMEE1NTA5NyAvKiBTeW5jaHJvbml6YWJs
ZVByb3BlcnR5Q29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTA4NzhCMjAwMTA4NzRFM0YwMEE1NTA5NyAvKiBTeW5jaHJvbml6YWJs
ZVR5cGVXcmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwODc4QjFGQzEwODc0RTNGMDBBNTUwOTcgLyogU3luY2hyb25pemFibGVUeXBlV3JhcHBl
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA4
N0ZGQTBGMEVGRjNFRDMwMDlEQkQ4OCAvKiBXTUxJbnNlcnRlZExlZ2VuZEVsZW1lbnQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDg3RkZBMEQwRUZG
M0VEMzAwOURCRDg4IC8qIFdNTEluc2VydGVkTGVnZW5kRWxlbWVudC5jcHAgKi87IH07CiAJCTA4
N0ZGQTEwMEVGRjNFRDMwMDlEQkQ4OCAvKiBXTUxJbnNlcnRlZExlZ2VuZEVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4N0ZGQTBFMEVGRjNF
RDMwMDlEQkQ4OCAvKiBXTUxJbnNlcnRlZExlZ2VuZEVsZW1lbnQuaCAqLzsgfTsKIAkJMDg4MDdC
NzYwRUQ3MDlBQjAwM0Y2OTc1IC8qIFdNTEdvRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODgwN0I2QTBFRDcwOUFCMDAzRjY5NzUgLyog
V01MR29FbGVtZW50LmNwcCAqLzsgfTsKQEAgLTMzMjUsNyArMzMyNSw3IEBACiAJCUIyMjI3OTg1
MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdBbmltYXRlZFBhdGhEYXRhLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjIyNzdFRjBEMDBCRjFGMDA3MUI3ODIg
LyogU1ZHQW5pbWF0ZWRQYXRoRGF0YS5oICovOyB9OwogCQlCMjIyNzk4NzBEMDBCRjIyMDA3MUI3
ODIgLyogU1ZHQW5pbWF0ZWRQb2ludHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQjIyMjc3RjEwRDAwQkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVk
UG9pbnRzLmNwcCAqLzsgfTsKIAkJQjIyMjc5ODgwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0FuaW1h
dGVkUG9pbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCMjIyNzdGMjBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZWRQb2ludHMuaCAqLzsgfTsK
LQkJQjIyMjc5OEQwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVkVGVtcGxhdGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3N0Y3MEQwMEJG
MUYwMDcxQjc4MiAvKiBTVkdBbmltYXRlZFRlbXBsYXRlLmggKi87IH07CisJCUIyMjI3OThEMEQw
MEJGMjIwMDcxQjc4MiAvKiBTVkdBbmltYXRlZFRlbXBsYXRlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjIyNzdGNzBEMDBCRjFGMDA3MUI3ODIgLyog
U1ZHQW5pbWF0ZWRUZW1wbGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUIyMjI3OThGMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdBbmltYXRlRWxl
bWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
MjIyNzdGOTBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwICovOyB9Owog
CQlCMjIyNzk5MDBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZUVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3N0ZBMEQwMEJGMUYw
MDcxQjc4MiAvKiBTVkdBbmltYXRlRWxlbWVudC5oICovOyB9OwogCQlCMjIyNzk5MjBEMDBCRjIy
MDA3MUI3ODIgLyogU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIyMjc3RkMwRDAwQkYxRjAwNzFCNzgyIC8q
IFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcCAqLzsgfTsKQEAgLTMzNTEsNyArMzM1MSw3IEBA
CiAJCUIyMjI3OUIzMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdEb2N1bWVudC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjIyNzgxRDBEMDBCRjFGMDA3
MUI3ODIgLyogU1ZHRG9jdW1lbnQuY3BwICovOyB9OwogCQlCMjIyNzlCNDBEMDBCRjIyMDA3MUI3
ODIgLyogU1ZHRG9jdW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEIyMjI3ODFFMEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdEb2N1bWVudC5oICovOyB9
OwogCQlCMjIyNzlCNjBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHRWxlbWVudC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjIyNzgyMDBEMDBCRjFGMDA3
MUI3ODIgLyogU1ZHRWxlbWVudC5jcHAgKi87IH07Ci0JCUIyMjI3OUI3MEQwMEJGMjIwMDcxQjc4
MiAvKiBTVkdFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCMjIyNzgyMTBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHRWxlbWVudC5oICovOyB9Owor
CQlCMjIyNzlCNzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHRWxlbWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIyMjc4MjEwRDAwQkYxRjAwNzFCNzgy
IC8qIFNWR0VsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlCMjIyNzlCOTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHRWxlbWVudEluc3RhbmNl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3
ODIzMEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdFbGVtZW50SW5zdGFuY2UuY3BwICovOyB9OwogCQlC
MjIyNzlCQTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHRWxlbWVudEluc3RhbmNlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjIyNzgyNDBEMDBCRjFGMDA3
MUI3ODIgLyogU1ZHRWxlbWVudEluc3RhbmNlLmggKi87IH07CiAJCUIyMjI3OUJDMEQwMEJGMjIw
MDcxQjc4MiAvKiBTVkdFbGVtZW50SW5zdGFuY2VMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjI3ODI2MEQwMEJGMUYwMDcxQjc4MiAvKiBT
VkdFbGVtZW50SW5zdGFuY2VMaXN0LmNwcCAqLzsgfTsKQEAgLTM0MzQsNyArMzQzNCw3IEBACiAJ
CUIyMjI3QTJGMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdMYW5nU3BhY2UuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIyMjc4OTkwRDAwQkYyMDAwNzFC
NzgyIC8qIFNWR0xhbmdTcGFjZS5jcHAgKi87IH07CiAJCUIyMjI3QTMwMEQwMEJGMjIwMDcxQjc4
MiAvKiBTVkdMYW5nU3BhY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEIyMjI3ODlBMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdMYW5nU3BhY2UuaCAqLzsg
fTsKIAkJQjIyMjdBMzIwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0xlbmd0aC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjIyNzg5QzBEMDBCRjIwMDA3
MUI3ODIgLyogU1ZHTGVuZ3RoLmNwcCAqLzsgfTsKLQkJQjIyMjdBMzMwRDAwQkYyMjAwNzFCNzgy
IC8qIFNWR0xlbmd0aC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQjIyMjc4OUQwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR0xlbmd0aC5oICovOyB9OworCQlC
MjIyN0EzMzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHTGVuZ3RoLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjIyNzg5RDBEMDBCRjIwMDA3MUI3ODIgLyog
U1ZHTGVuZ3RoLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJQjIyMjdBMzUwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0xlbmd0aExpc3QuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIyMjc4OUYwRDAwQkYy
MDAwNzFCNzgyIC8qIFNWR0xlbmd0aExpc3QuY3BwICovOyB9OwogCQlCMjIyN0EzNjBEMDBCRjIy
MDA3MUI3ODIgLyogU1ZHTGVuZ3RoTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQjIyMjc4QTAwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR0xlbmd0aExp
c3QuaCAqLzsgfTsKIAkJQjIyMjdBMzgwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0xpbmVhckdyYWRp
ZW50RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCMjIyNzhBMjBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50
LmNwcCAqLzsgfTsKQEAgLTM2OTYsNyArMzY5Niw3IEBACiAJCUIyN0IyODVEMENFRjBENzIwMEQz
OUQ1NCAvKiBET01TVkdHbHlwaEVsZW1lbnQuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyN0IyODMwMENFRjBDMzUwMEQzOUQ1
NCAvKiBET01TVkdHbHlwaEVsZW1lbnQuaCAqLzsgfTsKIAkJQjI3QjI4NUUwQ0VGMEQ3MjAwRDM5
RDU0IC8qIERPTVNWR01pc3NpbmdHbHlwaEVsZW1lbnQuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyN0IyODMzMENFRjBDMzUw
MEQzOUQ1NCAvKiBET01TVkdNaXNzaW5nR2x5cGhFbGVtZW50LmggKi87IH07CiAJCUIyOEM2QTI3
MEQwMEM0NDgwMDMzNEFBNCAvKiBTVkdEb2N1bWVudEV4dGVuc2lvbnMuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI4QzZBMUUwRDAwQzQ0ODAwMzM0
QUE0IC8qIFNWR0RvY3VtZW50RXh0ZW5zaW9ucy5jcHAgKi87IH07Ci0JCUIyOEM2QTI4MEQwMEM0
NDgwMDMzNEFBNCAvKiBTVkdEb2N1bWVudEV4dGVuc2lvbnMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyOEM2QTFGMEQwMEM0NDgwMDMzNEFBNCAvKiBT
VkdEb2N1bWVudEV4dGVuc2lvbnMuaCAqLzsgfTsKKwkJQjI4QzZBMjgwRDAwQzQ0ODAwMzM0QUE0
IC8qIFNWR0RvY3VtZW50RXh0ZW5zaW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQjI4QzZBMUYwRDAwQzQ0ODAwMzM0QUE0IC8qIFNWR0RvY3VtZW50
RXh0ZW5zaW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUIyOEM2QTI5MEQwMEM0NDgwMDMzNEFBNCAvKiBTVkdJbWFnZUxvYWRlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjhDNkEyMDBEMDBD
NDQ4MDAzMzRBQTQgLyogU1ZHSW1hZ2VMb2FkZXIuY3BwICovOyB9OwogCQlCMjhDNkEyQTBEMDBD
NDQ4MDAzMzRBQTQgLyogU1ZHSW1hZ2VMb2FkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyOEM2QTIxMEQwMEM0NDgwMDMzNEFBNCAvKiBTVkdJbWFn
ZUxvYWRlci5oICovOyB9OwogCQlCMjk3QkM3MDBCM0MxNENGMDA0NUE1OTAgLyogSlNTVkdQYXRo
U2VnTGlzdEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCMjk3QkM2RjBCM0MxNENGMDA0NUE1OTAgLyogSlNTVkdQYXRoU2VnTGlzdEN1c3Rv
bS5jcHAgKi87IH07CkBAIC00NzMxLDExICs0NzMxLDExIEBACiAJCUU0OTYyNkMzMEQ4MEQ5NDkw
MEUzNDA1QyAvKiBQcmVsb2FkU2Nhbm5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTRENEFCRTEwRDc1NDJGMTAwRjk2ODY5IC8qIFByZWxvYWRTY2Fu
bmVyLmggKi87IH07CiAJCUU0QUZDRkE1MERBRjI5QTMwMEY1RjU1QyAvKiBVbml0QmV6aWVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNEFGQ0ZBNDBE
QUYyOUEzMDBGNUY1NUMgLyogVW5pdEJlemllci5oICovOyB9OwogCQlFNEFGRDAwQjBEQUYzMzU0
MDBGNUY1NUMgLyogU01JTFRpbWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTRBRkQwMDUwREFGMzM1NDAwRjVGNTVDIC8qIFNNSUxUaW1lLmNwcCAq
LzsgfTsKLQkJRTRBRkQwMEMwREFGMzM1NDAwRjVGNTVDIC8qIFNNSUxUaW1lLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNEFGRDAwNjBEQUYzMzU0MDBG
NUY1NUMgLyogU01JTFRpbWUuaCAqLzsgfTsKKwkJRTRBRkQwMEMwREFGMzM1NDAwRjVGNTVDIC8q
IFNNSUxUaW1lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFNEFGRDAwNjBEQUYzMzU0MDBGNUY1NUMgLyogU01JTFRpbWUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFNEFGRDAwRDBEQUYzMzU1MDBGNUY1
NUMgLyogU01JTFRpbWVDb250YWluZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTRBRkQwMDcwREFGMzM1NDAwRjVGNTVDIC8qIFNNSUxUaW1lQ29u
dGFpbmVyLmNwcCAqLzsgfTsKIAkJRTRBRkQwMEUwREFGMzM1NTAwRjVGNTVDIC8qIFNNSUxUaW1l
Q29udGFpbmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFNEFGRDAwODBEQUYzMzU0MDBGNUY1NUMgLyogU01JTFRpbWVDb250YWluZXIuaCAqLzsgfTsK
IAkJRTRBRkQwMEYwREFGMzM1NTAwRjVGNTVDIC8qIFNWR1NNSUxFbGVtZW50LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0QUZEMDA5MERBRjMzNTQw
MEY1RjU1QyAvKiBTVkdTTUlMRWxlbWVudC5jcHAgKi87IH07Ci0JCUU0QUZEMDEwMERBRjMzNTUw
MEY1RjU1QyAvKiBTVkdTTUlMRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTRBRkQwMEEwREFGMzM1NDAwRjVGNTVDIC8qIFNWR1NNSUxFbGVt
ZW50LmggKi87IH07CisJCUU0QUZEMDEwMERBRjMzNTUwMEY1RjU1QyAvKiBTVkdTTUlMRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRBRkQw
MEEwREFGMzM1NDAwRjVGNTVDIC8qIFNWR1NNSUxFbGVtZW50LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTRDMTc4OUEwRUU2OTAzODAwODI0RDY5
IC8qIENTU1NlbGVjdG9yTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFNEMxNzg5NTBFRTY5MDM4MDA4MjRENjkgLyogQ1NTU2VsZWN0b3JMaXN0
LmNwcCAqLzsgfTsKIAkJRTRDMTc4OUIwRUU2OTAzODAwODI0RDY5IC8qIENTU1NlbGVjdG9yTGlz
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRDMTc4
OTYwRUU2OTAzODAwODI0RDY5IC8qIENTU1NlbGVjdG9yTGlzdC5oICovOyB9OwogCQlFNEMyNzk1
ODBDRjk3NDE5MDBFOTdCOTggLyogUmVuZGVyTWVkaWEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRDMjc5NTYwQ0Y5NzQxOTAwRTk3Qjk4IC8qIFJl
bmRlck1lZGlhLmNwcCAqLzsgfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3ZnL1NWR0RvY3VtZW50
RXh0ZW5zaW9ucy5jcHAgYi9XZWJDb3JlL3N2Zy9TVkdEb2N1bWVudEV4dGVuc2lvbnMuY3BwCmlu
ZGV4IDYxNjQ1ZjQuLmIyNDkyYjQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3ZnL1NWR0RvY3VtZW50
RXh0ZW5zaW9ucy5jcHAKKysrIGIvV2ViQ29yZS9zdmcvU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmNw
cApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVM
b2FkZXIuaCIKICNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiU1ZHU01JTEVsZW1lbnQuaCIK
ICNpbmNsdWRlICJTVkdTVkdFbGVtZW50LmgiCiAjaW5jbHVkZSAiU01JTFRpbWVDb250YWluZXIu
aCIKICNpbmNsdWRlICJYTUxUb2tlbml6ZXIuaCIKQEAgLTg2LDYgKzg3LDE3IEBAIHZvaWQgU1ZH
RG9jdW1lbnRFeHRlbnNpb25zOjp1bnBhdXNlQW5pbWF0aW9ucygpCiAgICAgICAgICgqaXRyKS0+
dW5wYXVzZUFuaW1hdGlvbnMoKTsKIH0KIAorYm9vbCBTVkdEb2N1bWVudEV4dGVuc2lvbnM6OnNh
bXBsZUFuaW1hdGlvbkF0VGltZShjb25zdCBTdHJpbmcmIGVsZW1lbnRJZCwgU1ZHU01JTEVsZW1l
bnQqIGVsZW1lbnQsIGRvdWJsZSB0aW1lKQoreworICAgIEFTU0VSVChlbGVtZW50KTsKKyAgICBT
TUlMVGltZUNvbnRhaW5lciogY29udGFpbmVyID0gZWxlbWVudC0+dGltZUNvbnRhaW5lcigpOwor
ICAgIGlmICghY29udGFpbmVyIHx8IGNvbnRhaW5lci0+aXNQYXVzZWQoKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgY29udGFpbmVyLT5zYW1wbGVBbmltYXRpb25BdFRpbWUoZWxlbWVu
dElkLCB0aW1lKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBTVkdEb2N1bWVudEV4dGVu
c2lvbnM6OnJlcG9ydFdhcm5pbmcoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewogICAgIGlmIChG
cmFtZSogZnJhbWUgPSBtX2RvYy0+ZnJhbWUoKSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3ZnL1NW
R0RvY3VtZW50RXh0ZW5zaW9ucy5oIGIvV2ViQ29yZS9zdmcvU1ZHRG9jdW1lbnRFeHRlbnNpb25z
LmgKaW5kZXggY2QyMGEzMC4uZTdkNmZjMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdmcvU1ZHRG9j
dW1lbnRFeHRlbnNpb25zLmgKKysrIGIvV2ViQ29yZS9zdmcvU1ZHRG9jdW1lbnRFeHRlbnNpb25z
LmgKQEAgLTQxLDYgKzQxLDcgQEAgY2xhc3MgTm9kZTsKIGNsYXNzIFN0cmluZzsKIGNsYXNzIFNW
R0VsZW1lbnRJbnN0YW5jZTsKIGNsYXNzIFNWR1N0eWxlZEVsZW1lbnQ7CitjbGFzcyBTVkdTTUlM
RWxlbWVudDsKIGNsYXNzIFNWR1NWR0VsZW1lbnQ7CiAKIGNsYXNzIFNWR0RvY3VtZW50RXh0ZW5z
aW9ucyB7CkBAIC01NCw2ICs1NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0YXJ0QW5pbWF0aW9u
cygpOwogICAgIHZvaWQgcGF1c2VBbmltYXRpb25zKCk7CiAgICAgdm9pZCB1bnBhdXNlQW5pbWF0
aW9ucygpOworICAgIGJvb2wgc2FtcGxlQW5pbWF0aW9uQXRUaW1lKGNvbnN0IFN0cmluZyYgZWxl
bWVudElkLCBTVkdTTUlMRWxlbWVudCosIGRvdWJsZSB0aW1lKTsKIAogICAgIHZvaWQgcmVwb3J0
V2FybmluZyhjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHJlcG9ydEVycm9yKGNvbnN0IFN0cmlu
ZyYpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdmcvYW5pbWF0aW9uL1NNSUxUaW1lQ29udGFpbmVy
LmNwcCBiL1dlYkNvcmUvc3ZnL2FuaW1hdGlvbi9TTUlMVGltZUNvbnRhaW5lci5jcHAKaW5kZXgg
YTM3ZTQ4MS4uZjBiNDc5ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdmcvYW5pbWF0aW9uL1NNSUxU
aW1lQ29udGFpbmVyLmNwcAorKysgYi9XZWJDb3JlL3N2Zy9hbmltYXRpb24vU01JTFRpbWVDb250
YWluZXIuY3BwCkBAIC00Niw2ICs0Niw3IEBAIFNNSUxUaW1lQ29udGFpbmVyOjpTTUlMVGltZUNv
bnRhaW5lcihTVkdTVkdFbGVtZW50KiBvd25lcikKICAgICA6IG1fYmVnaW5UaW1lKDApCiAgICAg
LCBtX3BhdXNlVGltZSgwKQogICAgICwgbV9hY2N1bXVsYXRlZFBhdXNlVGltZSgwKQorICAgICwg
bV9uZXh0TWFudWFsU2FtcGxlVGltZSgwKQogICAgICwgbV9kb2N1bWVudE9yZGVySW5kZXhlc0Rp
cnR5KGZhbHNlKQogICAgICwgbV90aW1lcih0aGlzLCAmU01JTFRpbWVDb250YWluZXI6OnRpbWVy
RmlyZWQpCiAgICAgLCBtX293bmVyU1ZHRWxlbWVudChvd25lcikKQEAgLTIwNywxNCArMjA4LDQ1
IEBAIFN0cmluZyBTTUlMVGltZUNvbnRhaW5lcjo6YmFzZVZhbHVlRm9yKEVsZW1lbnRBdHRyaWJ1
dGVQYWlyIGtleSkKICAgICBtX3NhdmVkQmFzZVZhbHVlcy5hZGQoa2V5LCBiYXNlVmFsdWUpOwog
ICAgIHJldHVybiBiYXNlVmFsdWU7CiB9Ci0gICAgICAKKwordm9pZCBTTUlMVGltZUNvbnRhaW5l
cjo6c2FtcGxlQW5pbWF0aW9uQXRUaW1lKGNvbnN0IFN0cmluZyYgZWxlbWVudElkLCBkb3VibGUg
bmV3VGltZSkKK3sKKyAgICBBU1NFUlQobV9iZWdpblRpbWUpOworICAgIEFTU0VSVCghaXNQYXVz
ZWQoKSk7CisKKyAgICAvLyBGYXN0LWZvcndhcmQgdG8gdGhlIHRpbWUgRFJUIHdhbnRzIHRvIHNh
bXBsZQorICAgIG1fdGltZXIuc3RvcCgpOworICAgIG1fbmV4dFNhbXBsaW5nVGFyZ2V0ID0gZWxl
bWVudElkOworICAgIG1fbmV4dE1hbnVhbFNhbXBsZVRpbWUgPSBuZXdUaW1lOworCisgICAgdXBk
YXRlQW5pbWF0aW9ucyhlbGFwc2VkKCkpOworfQorCiB2b2lkIFNNSUxUaW1lQ29udGFpbmVyOjp1
cGRhdGVBbmltYXRpb25zKFNNSUxUaW1lIGVsYXBzZWQpCiB7CiAgICAgU01JTFRpbWUgZWFybGll
cnNGaXJlVGltZSA9IFNNSUxUaW1lOjp1bnJlc29sdmVkKCk7CiAKICAgICBWZWN0b3I8U1ZHU01J
TEVsZW1lbnQqPiB0b0FuaW1hdGU7CiAgICAgY29weVRvVmVjdG9yKG1fc2NoZWR1bGVkQW5pbWF0
aW9ucywgdG9BbmltYXRlKTsKLSAgICAKKworICAgIGlmIChtX25leHRNYW51YWxTYW1wbGVUaW1l
KSB7CisgICAgICAgIFNNSUxUaW1lIHNhbXBsaW5nRGlmZjsKKyAgICAgICAgZm9yICh1bnNpZ25l
ZCBuID0gMDsgbiA8IHRvQW5pbWF0ZS5zaXplKCk7ICsrbikgeworICAgICAgICAgICAgU1ZHU01J
TEVsZW1lbnQqIGFuaW1hdGlvbiA9IHRvQW5pbWF0ZVtuXTsKKyAgICAgICAgICAgIEFTU0VSVChh
bmltYXRpb24tPnRpbWVDb250YWluZXIoKSA9PSB0aGlzKTsKKworICAgICAgICAgICAgU1ZHRWxl
bWVudCogdGFyZ2V0RWxlbWVudCA9IGFuaW1hdGlvbi0+dGFyZ2V0RWxlbWVudCgpOworICAgICAg
ICAgICAgaWYgKCF0YXJnZXRFbGVtZW50IHx8IHRhcmdldEVsZW1lbnQtPmdldElEQXR0cmlidXRl
KCkgIT0gbV9uZXh0U2FtcGxpbmdUYXJnZXQpCisgICAgICAgICAgICAgICAgY29udGludWU7CisK
KyAgICAgICAgICAgIHNhbXBsaW5nRGlmZiA9IGFuaW1hdGlvbi0+aW50ZXJ2YWxCZWdpbigpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBlbGFwc2VkID0gU01JTFRp
bWUobV9uZXh0TWFudWFsU2FtcGxlVGltZSkgKyBzYW1wbGluZ0RpZmY7CisgICAgICAgIG1fbmV4
dE1hbnVhbFNhbXBsZVRpbWUgPSAwOworICAgIH0KKwogICAgIC8vIFNvcnQgYWNjb3JkaW5nIHRv
IHByaW9yaXR5LiBFbGVtZW50cyB3aXRoIGxhdGVyIGJlZ2luIHRpbWUgaGF2ZSBoaWdoZXIgcHJp
b3JpdHkuCiAgICAgLy8gSW4gY2FzZSBvZiBhIHRpZSwgZG9jdW1lbnQgb3JkZXIgZGVjaWRlcy4g
CiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGFsc28gY29uc2lkZXIgdGltaW5nIHJlbGF0aW9u
c2hpcHMgYmV0d2VlbiB0aGUgZWxlbWVudHMuIERlcGVuZGVudHMKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvc3ZnL2FuaW1hdGlvbi9TTUlMVGltZUNvbnRhaW5lci5oIGIvV2ViQ29yZS9zdmcvYW5pbWF0
aW9uL1NNSUxUaW1lQ29udGFpbmVyLmgKaW5kZXggNWNlZjUwNy4uYTZhNjFjMCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9zdmcvYW5pbWF0aW9uL1NNSUxUaW1lQ29udGFpbmVyLmgKKysrIGIvV2ViQ29y
ZS9zdmcvYW5pbWF0aW9uL1NNSUxUaW1lQ29udGFpbmVyLmgKQEAgLTYwLDYgKzYwLDkgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAKICAgICAgICAgdm9pZCBzZXREb2N1bWVudE9yZGVy
SW5kZXhlc0RpcnR5KCkgeyBtX2RvY3VtZW50T3JkZXJJbmRleGVzRGlydHkgPSB0cnVlOyB9CiAK
KyAgICAgICAgLy8gTW92ZSB0byBhIHNwZWNpZmljIHRpbWUuIE9ubHkgdXNlZCBmb3IgRFJUIHRl
c3RpbmcgcHVycG9zZXMuCisgICAgICAgIHZvaWQgc2FtcGxlQW5pbWF0aW9uQXRUaW1lKGNvbnN0
IFN0cmluZyYgZWxlbWVudElkLCBkb3VibGUgc2Vjb25kcyk7CisKICAgICBwcml2YXRlOgogICAg
ICAgICBTTUlMVGltZUNvbnRhaW5lcihTVkdTVkdFbGVtZW50KiBvd25lcik7CiAgICAgICAgIApA
QCAtNzYsNyArNzksOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGRvdWJsZSBtX2Jl
Z2luVGltZTsKICAgICAgICAgZG91YmxlIG1fcGF1c2VUaW1lOwogICAgICAgICBkb3VibGUgbV9h
Y2N1bXVsYXRlZFBhdXNlVGltZTsKLSAgICAgICAgCisgICAgICAgIGRvdWJsZSBtX25leHRNYW51
YWxTYW1wbGVUaW1lOworICAgICAgICBTdHJpbmcgbV9uZXh0U2FtcGxpbmdUYXJnZXQ7CisKICAg
ICAgICAgYm9vbCBtX2RvY3VtZW50T3JkZXJJbmRleGVzRGlydHk7CiAgICAgICAgIAogICAgICAg
ICBUaW1lcjxTTUlMVGltZUNvbnRhaW5lcj4gbV90aW1lcjsKZGlmZiAtLWdpdCBhL1dlYktpdC9n
dGsvQ2hhbmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggM2Y4NzUzMi4uZjU4OTgx
MyAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2d0ay9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAwOS0xMi0wMSAgTmlrb2xhcyBaaW1tZXJtYW5uICA8
bnppbW1lcm1hbm5AcmltLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIu
CisKKyAgICAgICAgQWRkIFNWRyBhbmltYXRpb24gdGVzdCBmcmFtZXdvcmsgd2l0aCAnc25hcHNo
b3QnIGZ1bmN0aW9uYWxpdHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTMxODk3CisKKyAgICAgICAgQWRkIEFQSSB1c2VkIGJ5IHRoZSBuZXcgJ3NhbXBs
ZVNWR0FuaW1hdGlvbkZvckVsZW1lbnRBdFRpbWUnIERSVCBtZXRob2QsCisgICAgICAgIGZvcndh
cmRpbmcgdGhlIGNhbGwgdG8gU1ZHRG9jdW1lbnRFeHRlbnNpb25zLCBpZiBTVkcgaXMgZW5hYmxl
ZC4KKworICAgICAgICBJbXBsZW1lbnRlZCBqdXN0IGxpa2UgdGhlIGV4aXN0aW5nIHBhdXNlQW5p
bWF0aW9uKiBtZXRob2RzIGZvciBDU1MgYW5pbWF0aW9ucy4KKworICAgICAgICAqIHdlYmtpdC93
ZWJraXRwcml2YXRlLmg6CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcDoKKyAg
ICAgICAgKHdlYmtpdF93ZWJfZnJhbWVfcGF1c2Vfc3ZnX2FuaW1hdGlvbik6CisKIDIwMDktMTEt
MzAgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEd1c3Rhdm8gTm9yb25oYS4KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHBy
aXZhdGUuaCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuaAppbmRleCAzYjdlMTYx
Li5iZDk1ODk2IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmgK
KysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5oCkBAIC0zMDEsNiArMzAxLDkg
QEAgZXh0ZXJuICJDIiB7CiAgICAgV0VCS0lUX0FQSSBib29sCiAgICAgd2Via2l0X3dlYl9mcmFt
ZV9wYXVzZV90cmFuc2l0aW9uKFdlYktpdFdlYkZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIG5h
bWUsIGRvdWJsZSB0aW1lLCBjb25zdCBnY2hhciogZWxlbWVudCk7CiAKKyAgICBXRUJLSVRfQVBJ
IGJvb2wKKyAgICB3ZWJraXRfd2ViX2ZyYW1lX3BhdXNlX3N2Z19hbmltYXRpb24oV2ViS2l0V2Vi
RnJhbWUqIGZyYW1lLCBjb25zdCBnY2hhciogYW5pbWF0aW9uSWQsIGRvdWJsZSB0aW1lLCBjb25z
dCBnY2hhciogZWxlbWVudElkKTsKKwogICAgIFdFQktJVF9BUEkgdW5zaWduZWQgaW50CiAgICAg
d2Via2l0X3dlYl9mcmFtZV9udW1iZXJfb2ZfYWN0aXZlX2FuaW1hdGlvbnMoV2ViS2l0V2ViRnJh
bWUqIGZyYW1lKTsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJh
bWUuY3BwIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCmluZGV4IDMzMWU1
ZTguLjZmZmQwMTEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1l
LmNwcAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAKQEAgLTU0LDYg
KzU0LDcgQEAKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJTY3JpcHRDb250
cm9sbGVyLmgiCiAjaW5jbHVkZSAiU3Vic3RpdHV0ZURhdGEuaCIKKyNpbmNsdWRlICJTVkdTTUlM
RWxlbWVudC5oIgogCiAjaW5jbHVkZSA8YXRrL2F0ay5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0FQSUNhc3QuaD4KQEAgLTk1OSw2ICs5NjAsMjIgQEAgYm9vbCB3ZWJraXRfd2ViX2ZyYW1l
X3BhdXNlX3RyYW5zaXRpb24oV2ViS2l0V2ViRnJhbWUqIGZyYW1lLCBjb25zdCBnY2hhciogbmFt
ZSwKICAgICByZXR1cm4gY29yZShmcmFtZSktPmFuaW1hdGlvbigpLT5wYXVzZVRyYW5zaXRpb25B
dFRpbWUoY29yZUVsZW1lbnQtPnJlbmRlcmVyKCksIEF0b21pY1N0cmluZyhuYW1lKSwgdGltZSk7
CiB9CiAKK2Jvb2wgd2Via2l0X3dlYl9mcmFtZV9wYXVzZV9zdmdfYW5pbWF0aW9uKFdlYktpdFdl
YkZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIGFuaW1hdGlvbklkLCBkb3VibGUgdGltZSwgY29u
c3QgZ2NoYXIqIGVsZW1lbnRJZCkKK3sKKyAgICBBU1NFUlQoY29yZShmcmFtZSkpOworICAgIERv
Y3VtZW50KiBkb2N1bWVudCA9IGNvcmUoZnJhbWUpLT5kb2N1bWVudCgpOworICAgIGlmICghZG9j
dW1lbnQgfHwgIWRvY3VtZW50LT5zdmdFeHRlbnNpb25zKCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICBFbGVtZW50KiBjb3JlRWxlbWVudCA9IGRvY3VtZW50LT5nZXRFbGVtZW50QnlJZChB
dG9taWNTdHJpbmcoYW5pbWF0aW9uSWQpKTsKKyAgICBpZiAoIWNvcmVFbGVtZW50IHx8ICFTVkdT
TUlMRWxlbWVudDo6aXNTTUlMRWxlbWVudChjb3JlRWxlbWVudCkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyNpZiBFTkFCTEUoU1ZHKQorICAgIHJldHVybiBkb2N1bWVudC0+YWNjZXNzU1ZHRXh0
ZW5zaW9ucygpLT5zYW1wbGVBbmltYXRpb25BdFRpbWUoZWxlbWVudElkLCBzdGF0aWNfY2FzdDxT
VkdTTUlMRWxlbWVudCo+KGNvcmVFbGVtZW50KSwgdGltZSk7CisjZWxzZQorICAgIHJldHVybiBm
YWxzZTsKKyNlbmRpZgorfQorCiB1bnNpZ25lZCBpbnQgd2Via2l0X3dlYl9mcmFtZV9udW1iZXJf
b2ZfYWN0aXZlX2FuaW1hdGlvbnMoV2ViS2l0V2ViRnJhbWUqIGZyYW1lKQogewogICAgIEZyYW1l
KiBjb3JlRnJhbWUgPSBjb3JlKGZyYW1lKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvQ2hhbmdl
TG9nIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggNDRkY2I2Mi4uN2JjY2IzNiAxMDA2NDQK
LS0tIGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxOSBAQAorMjAwOS0xMi0wMSAgTmlrb2xhcyBaaW1tZXJtYW5uICA8bnppbW1lcm1h
bm5AcmltLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAg
ICAgQWRkIFNWRyBhbmltYXRpb24gdGVzdCBmcmFtZXdvcmsgd2l0aCAnc25hcHNob3QnIGZ1bmN0
aW9uYWxpdHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTMxODk3CisKKyAgICAgICAgQWRkIEFQSSB1c2VkIGJ5IHRoZSBuZXcgJ3NhbXBsZVNWR0FuaW1h
dGlvbkZvckVsZW1lbnRBdFRpbWUnIERSVCBtZXRob2QsCisgICAgICAgIGZvcndhcmRpbmcgdGhl
IGNhbGwgdG8gU1ZHRG9jdW1lbnRFeHRlbnNpb25zLCBpZiBTVkcgaXMgZW5hYmxlZC4KKworICAg
ICAgICBJbXBsZW1lbnRlZCBqdXN0IGxpa2UgdGhlIGV4aXN0aW5nIHBhdXNlQW5pbWF0aW9uKiBt
ZXRob2RzIGZvciBDU1MgYW5pbWF0aW9ucy4KKworICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWUu
bW06CisgICAgICAgICgtW1dlYkZyYW1lIF9wYXVzZVNWR0FuaW1hdGlvbjpvblNNSUxOb2RlOmF0
VGltZTpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lUHJpdmF0ZS5oOgorCiAyMDA5LTEy
LTAxICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
TWFyayBSb3dlLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tIGIv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCmluZGV4IDE1ODM0NmQuLjU4NDAwZDYgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQorKysgYi9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViRnJhbWUubW0KQEAgLTc5LDYgKzc5LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUv
UnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NjcmlwdFZhbHVl
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NtYXJ0UmVwbGFjZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9T
VkdTTUlMRWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9UZXh0SXRlcmF0b3IuaD4KICNpbXBv
cnQgPFdlYkNvcmUvVGhyZWFkQ2hlY2suaD4KICNpbXBvcnQgPFdlYkNvcmUvVHlwaW5nQ29tbWFu
ZC5oPgpAQCAtMTExNiw2ICsxMTE3LDI5IEBAIHN0YXRpYyBpbmxpbmUgV2ViRGF0YVNvdXJjZSAq
ZGF0YVNvdXJjZShEb2N1bWVudExvYWRlciogbG9hZGVyKQogICAgIHJldHVybiBjb250cm9sbGVy
LT5wYXVzZVRyYW5zaXRpb25BdFRpbWUoY29yZU5vZGUtPnJlbmRlcmVyKCksIG5hbWUsIHRpbWUp
OwogfQogCisvLyBQYXVzZSBhIGdpdmVuIFNWRyBhbmltYXRpb24gb24gdGhlIHRhcmdldCBub2Rl
IGF0IGEgc3BlY2lmaWMgdGltZS4KKy8vIFRoaXMgbWV0aG9kIGlzIG9ubHkgaW50ZW5kZWQgdG8g
YmUgdXNlZCBmb3IgdGVzdGluZyB0aGUgU1ZHIGFuaW1hdGlvbiBzeXN0ZW0uCistIChCT09MKV9w
YXVzZVNWR0FuaW1hdGlvbjooTlNTdHJpbmcqKWVsZW1lbnRJZCBvblNNSUxOb2RlOihET01Ob2Rl
ICopbm9kZSBhdFRpbWU6KE5TVGltZUludGVydmFsKXRpbWUKK3sKKyAgICBGcmFtZSogZnJhbWUg
PSBjb3JlKHNlbGYpOworICAgIGlmICghZnJhbWUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAK
KyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRv
Y3VtZW50IHx8ICFkb2N1bWVudC0+c3ZnRXh0ZW5zaW9ucygpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBOb2RlKiBjb3JlTm9kZSA9IGNvcmUobm9kZSk7CisgICAgaWYgKCFjb3JlTm9k
ZSB8fCAhU1ZHU01JTEVsZW1lbnQ6OmlzU01JTEVsZW1lbnQoY29yZU5vZGUpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyNpZiBFTkFCTEUoU1ZHKQorICAgIHJldHVybiBkb2N1bWVudC0+YWNj
ZXNzU1ZHRXh0ZW5zaW9ucygpLT5zYW1wbGVBbmltYXRpb25BdFRpbWUoZWxlbWVudElkLCBzdGF0
aWNfY2FzdDxTVkdTTUlMRWxlbWVudCo+KGNvcmVOb2RlKSwgdGltZSk7CisjZWxzZQorICAgIHJl
dHVybiBmYWxzZTsKKyNlbmRpZgorfQorCiAtICh1bnNpZ25lZCkgX251bWJlck9mQWN0aXZlQW5p
bWF0aW9ucwogewogICAgIEZyYW1lKiBmcmFtZSA9IGNvcmUoc2VsZik7CmRpZmYgLS1naXQgYS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVQcml2YXRlLmggYi9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViRnJhbWVQcml2YXRlLmgKaW5kZXggNTI2YjdlOS4uNDYyNjg2ZiAxMDA2NDQKLS0tIGEvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lUHJpdmF0ZS5oCisrKyBiL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJGcmFtZVByaXZhdGUuaApAQCAtMTA2LDYgKzEwNiwxMCBAQCB0eXBlZGVmIGVudW0gewog
LSAoQk9PTClfcGF1c2VBbmltYXRpb246KE5TU3RyaW5nKiluYW1lIG9uTm9kZTooRE9NTm9kZSAq
KW5vZGUgYXRUaW1lOihOU1RpbWVJbnRlcnZhbCl0aW1lOwogLSAoQk9PTClfcGF1c2VUcmFuc2l0
aW9uT2ZQcm9wZXJ0eTooTlNTdHJpbmcqKW5hbWUgb25Ob2RlOihET01Ob2RlKilub2RlIGF0VGlt
ZTooTlNUaW1lSW50ZXJ2YWwpdGltZTsKIAorLy8gUGF1c2UgYSBnaXZlbiBTVkcgYW5pbWF0aW9u
IG9uIHRoZSB0YXJnZXQgbm9kZSBhdCBhIHNwZWNpZmljIHRpbWUuCisvLyBUaGlzIG1ldGhvZCBp
cyBvbmx5IGludGVuZGVkIHRvIGJlIHVzZWQgZm9yIHRlc3RpbmcgdGhlIFNWRyBhbmltYXRpb24g
c3lzdGVtLgorLSAoQk9PTClfcGF1c2VTVkdBbmltYXRpb246KE5TU3RyaW5nKillbGVtZW50SWQg
b25TTUlMTm9kZTooRE9NTm9kZSAqKW5vZGUgYXRUaW1lOihOU1RpbWVJbnRlcnZhbCl0aW1lOwor
CiAvLyBSZXR1cm5zIHRoZSB0b3RhbCBudW1iZXIgb2YgY3VycmVudGx5IHJ1bm5pbmcgYW5pbWF0
aW9ucyAoaW5jbHVkZXMgYm90aCBDU1MgdHJhbnNpdGlvbnMgYW5kIENTUyBhbmltYXRpb25zKS4K
IC0gKHVuc2lnbmVkKSBfbnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zOwogCmRpZmYgLS1naXQgYS9X
ZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAgYi9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAK
aW5kZXggYTUxZjg5ZC4uMmExMWIwMSAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L0FwaS9xd2ViZnJh
bWUuY3BwCisrKyBiL1dlYktpdC9xdC9BcGkvcXdlYmZyYW1lLmNwcApAQCAtNTYsNiArNTYsNyBA
QAogI2luY2x1ZGUgIlNjcm9sbGJhci5oIgogI2luY2x1ZGUgIlNlbGVjdGlvbkNvbnRyb2xsZXIu
aCIKICNpbmNsdWRlICJTdWJzdGl0dXRlRGF0YS5oIgorI2luY2x1ZGUgIlNWR1NNSUxFbGVtZW50
LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKICNpbmNsdWRlICJtYXJrdXAuaCIKICNpbmNs
dWRlICJxdF9pbnN0YW5jZS5oIgpAQCAtMTQ4LDYgKzE0OSwzMSBAQCBib29sIFFXRUJLSVRfRVhQ
T1JUIHF0X2RydF9wYXVzZVRyYW5zaXRpb25PZlByb3BlcnR5KFFXZWJGcmFtZSAqcWZyYW1lLCBj
b25zdCBRUwogICAgIHJldHVybiBjb250cm9sbGVyLT5wYXVzZVRyYW5zaXRpb25BdFRpbWUoY29y
ZU5vZGUtPnJlbmRlcmVyKCksIHByb3BlcnR5TmFtZSwgdGltZSk7CiB9CiAKKy8vIFBhdXNlIGEg
Z2l2ZW4gU1ZHIGFuaW1hdGlvbiBvbiB0aGUgdGFyZ2V0IG5vZGUgYXQgYSBzcGVjaWZpYyB0aW1l
LgorLy8gVGhpcyBtZXRob2QgaXMgb25seSBpbnRlbmRlZCB0byBiZSB1c2VkIGZvciB0ZXN0aW5n
IHRoZSBTVkcgYW5pbWF0aW9uIHN5c3RlbS4KK2Jvb2wgUVdFQktJVF9FWFBPUlQgcXRfZHJ0X3Bh
dXNlU1ZHQW5pbWF0aW9uKFFXZWJGcmFtZSAqcWZyYW1lLCBjb25zdCBRU3RyaW5nICZhbmltYXRp
b25JZCwgZG91YmxlIHRpbWUsIGNvbnN0IFFTdHJpbmcgJmVsZW1lbnRJZCkKK3sKKyAgICBGcmFt
ZSogZnJhbWUgPSBRV2ViRnJhbWVQcml2YXRlOjpjb3JlKHFmcmFtZSk7CisgICAgaWYgKCFmcmFt
ZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgRG9jdW1lbnQqIGRvYyA9IGZyYW1lLT5k
b2N1bWVudCgpOworICAgIFFfQVNTRVJUKGRvYyk7CisKKyAgICBpZiAoIWRvYy0+c3ZnRXh0ZW5z
aW9ucygpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBOb2RlKiBjb3JlTm9kZSA9IGRv
Yy0+Z2V0RWxlbWVudEJ5SWQoYW5pbWF0aW9uSWQpOworICAgIGlmICghY29yZU5vZGUgfHwgIVNW
R1NNSUxFbGVtZW50Ojppc1NNSUxFbGVtZW50KGNvcmVOb2RlKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisjaWYgRU5BQkxFKFNWRykKKyAgICByZXR1cm4gZG9jdW1lbnQtPmFjY2Vzc1NWR0V4
dGVuc2lvbnMoKS0+c2FtcGxlQW5pbWF0aW9uQXRUaW1lKGVsZW1lbnRJZCwgc3RhdGljX2Nhc3Q8
U1ZHU01JTEVsZW1lbnQqPihjb3JlTm9kZSksIHRpbWUpOworI2Vsc2UKKyAgICByZXR1cm4gZmFs
c2U7CisjZW5kaWYKK30KKwogLy8gUmV0dXJucyB0aGUgdG90YWwgbnVtYmVyIG9mIGN1cnJlbnRs
eSBydW5uaW5nIGFuaW1hdGlvbnMgKGluY2x1ZGVzIGJvdGggQ1NTIHRyYW5zaXRpb25zIGFuZCBD
U1MgYW5pbWF0aW9ucykuCiBpbnQgUVdFQktJVF9FWFBPUlQgcXRfZHJ0X251bWJlck9mQWN0aXZl
QW5pbWF0aW9ucyhRV2ViRnJhbWUgKnFmcmFtZSkKIHsKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9D
aGFuZ2VMb2cgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IGE1NjNhYWEuLmZmM2ZjOWYgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE4IEBACisyMDA5LTEyLTAxICBOaWtvbGFzIFppbW1lcm1hbm4gIDxuemltbWVy
bWFubkByaW0uY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAg
ICAgICBBZGQgU1ZHIGFuaW1hdGlvbiB0ZXN0IGZyYW1ld29yayB3aXRoICdzbmFwc2hvdCcgZnVu
Y3Rpb25hbGl0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MzE4OTcKKworICAgICAgICBBZGQgQVBJIHVzZWQgYnkgdGhlIG5ldyAnc2FtcGxlU1ZHQW5p
bWF0aW9uRm9yRWxlbWVudEF0VGltZScgRFJUIG1ldGhvZCwKKyAgICAgICAgZm9yd2FyZGluZyB0
aGUgY2FsbCB0byBTVkdEb2N1bWVudEV4dGVuc2lvbnMsIGlmIFNWRyBpcyBlbmFibGVkLgorCisg
ICAgICAgIEltcGxlbWVudGVkIGp1c3QgbGlrZSB0aGUgZXhpc3RpbmcgcGF1c2VBbmltYXRpb24q
IG1ldGhvZHMgZm9yIENTUyBhbmltYXRpb25zLgorCisgICAgICAgICogQXBpL3F3ZWJmcmFtZS5j
cHA6CisgICAgICAgIChxdF9kcnRfcGF1c2VTVkdBbmltYXRpb24pOgorCiAyMDA5LTEyLTAxICBE
YW5pZWwgQmF0ZXMgIDxkYmF0ZXNAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBL
ZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4KZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vQ2hhbmdl
TG9nIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggNTE0YmQ3NC4uZjVjNWU0NiAxMDA2NDQK
LS0tIGEvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMCBAQAorMjAwOS0xMi0wMSAgTmlrb2xhcyBaaW1tZXJtYW5uICA8bnppbW1lcm1h
bm5AcmltLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAg
ICAgQWRkIFNWRyBhbmltYXRpb24gdGVzdCBmcmFtZXdvcmsgd2l0aCAnc25hcHNob3QnIGZ1bmN0
aW9uYWxpdHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTMxODk3CisKKyAgICAgICAgQWRkIEFQSSB1c2VkIGJ5IHRoZSBuZXcgJ3NhbXBsZVNWR0FuaW1h
dGlvbkZvckVsZW1lbnRBdFRpbWUnIERSVCBtZXRob2QsCisgICAgICAgIGZvcndhcmRpbmcgdGhl
IGNhbGwgdG8gU1ZHRG9jdW1lbnRFeHRlbnNpb25zLCBpZiBTVkcgaXMgZW5hYmxlZC4KKworICAg
ICAgICBJbXBsZW1lbnRlZCBqdXN0IGxpa2UgdGhlIGV4aXN0aW5nIHBhdXNlQW5pbWF0aW9uKiBt
ZXRob2RzIGZvciBDU1MgYW5pbWF0aW9ucy4KKworICAgICAgICAqIEludGVyZmFjZXMvSVdlYkZy
YW1lUHJpdmF0ZS5pZGw6CisgICAgICAgICogV2ViRnJhbWUuY3BwOgorICAgICAgICAoV2ViRnJh
bWU6OnBhdXNlU1ZHQW5pbWF0aW9uKToKKyAgICAgICAgKiBXZWJGcmFtZS5oOgorCiAyMDA5LTEx
LTMwICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggZG91Ymxl
LWZyZWUgb2YgQlNUUnMgcGFzc2VkIHRvIFdlYk5hdmlnYXRpb25EYXRhOjpjcmVhdGVJbnN0YW5j
ZQpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJGcmFtZVByaXZhdGUuaWRs
IGIvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJGcmFtZVByaXZhdGUuaWRsCmluZGV4IDI2OTk2
YjkuLjNiYTcxYzggMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vSW50ZXJmYWNlcy9JV2ViRnJhbWVQ
cml2YXRlLmlkbAorKysgYi9XZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYkZyYW1lUHJpdmF0ZS5p
ZGwKQEAgLTg5LDYgKzg5LDcgQEAgaW50ZXJmYWNlIElXZWJGcmFtZVByaXZhdGUgOiBJVW5rbm93
bgogCiAgICAgSFJFU1VMVCBwYXVzZUFuaW1hdGlvbihbaW5dIEJTVFIgYW5pbWF0aW9uTmFtZSwg
W2luXSBJRE9NTm9kZSogbm9kZSwgW2luXSBkb3VibGUgc2Vjb25kc0Zyb21Ob3csIFtvdXQsIHJl
dHZhbF0gQk9PTCogYW5pbWF0aW9uV2FzUnVubmluZyk7CiAgICAgSFJFU1VMVCBwYXVzZVRyYW5z
aXRpb24oW2luXSBCU1RSIHByb3BlcnR5TmFtZSwgW2luXSBJRE9NTm9kZSogbm9kZSwgW2luXSBk
b3VibGUgc2Vjb25kc0Zyb21Ob3csIFtvdXQsIHJldHZhbF0gQk9PTCogdHJhbnNpdGlvbldhc1J1
bm5pbmcpOworICAgIEhSRVNVTFQgcGF1c2VTVkdBbmltYXRpb24oW2luXSBCU1RSIGVsZW1lbnRJ
ZCwgW2luXSBJRE9NTm9kZSogbm9kZSwgW2luXSBkb3VibGUgc2Vjb25kc0Zyb21Ob3csIFtvdXQs
IHJldHZhbF0gQk9PTCogYW5pbWF0aW9uV2FzUnVubmluZyk7CiAgICAgSFJFU1VMVCBudW1iZXJP
ZkFjdGl2ZUFuaW1hdGlvbnMoW291dCwgcmV0dmFsXSBVSU5UKiBudW1iZXIpOwogCiAgICAgSFJF
U1VMVCBpc0Rpc3BsYXlpbmdTdGFuZGFsb25lSW1hZ2UoW291dCwgcmV0dmFsXSBCT09MKiByZXN1
bHQpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAgYi9XZWJLaXQvd2luL1dl
YkZyYW1lLmNwcAppbmRleCBlZWE0YmRiLi5hMmM1NzY2IDEwMDY0NAotLS0gYS9XZWJLaXQvd2lu
L1dlYkZyYW1lLmNwcAorKysgYi9XZWJLaXQvd2luL1dlYkZyYW1lLmNwcApAQCAtOTIsNiArOTIs
NyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyVmlldy5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UmVuZGVyVHJlZUFzVGV4dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL1NWR1NNSUxFbGVtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UZXh0SXRl
cmF0b3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0pTRE9NQmluZGluZy5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvU2NyaXB0Q29udHJvbGxlci5oPgpAQCAtMTE1Niw2ICsxMTU3LDM0IEBAIEhSRVNVTFQg
V2ViRnJhbWU6OnBhdXNlVHJhbnNpdGlvbihCU1RSIHByb3BlcnR5TmFtZSwgSURPTU5vZGUqIG5v
ZGUsIGRvdWJsZSBzZWNvCiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKK0hSRVNVTFQgV2ViRnJhbWU6
OnBhdXNlU1ZHQW5pbWF0aW9uKEJTVFIgZWxlbWVudElkLCBJRE9NTm9kZSogbm9kZSwgZG91Ymxl
IHNlY29uZHNGcm9tTm93LCBCT09MKiBhbmltYXRpb25XYXNSdW5uaW5nKQoreworICAgIGlmICgh
bm9kZSB8fCAhYW5pbWF0aW9uV2FzUnVubmluZykKKyAgICAgICAgcmV0dXJuIEVfUE9JTlRFUjsK
KworICAgICphbmltYXRpb25XYXNSdW5uaW5nID0gRkFMU0U7CisKKyAgICBGcmFtZSogZnJhbWUg
PSBjb3JlKHRoaXMpOworICAgIGlmICghZnJhbWUpCisgICAgICAgIHJldHVybiBFX0ZBSUw7CisK
KyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRv
Y3VtZW50IHx8ICFkb2N1bWVudC0+c3ZnRXh0ZW5zaW9ucygpKQorICAgICAgICByZXR1cm4gRV9G
QUlMOworCisgICAgQ09NUHRyPERPTU5vZGU+IGRvbU5vZGUoUXVlcnksIG5vZGUpOworICAgIGlm
ICghZG9tTm9kZSB8fCAhU1ZHU01JTEVsZW1lbnQ6OmlzU01JTEVsZW1lbnQoZG9tTm9kZSkpCisg
ICAgICAgIHJldHVybiBFX0ZBSUw7CisKKyNpZiBFTkFCTEUoU1ZHKQorICAgICphbmltYXRpb25X
YXNSdW5uaW5nID0gZG9jdW1lbnQtPmFjY2Vzc1NWR0V4dGVuc2lvbnMoKS0+c2FtcGxlQW5pbWF0
aW9uQXRUaW1lKFN0cmluZyhlbGVtZW50SWQsIFN5c1N0cmluZ0xlbihlbGVtZW50SWQpKSwgc3Rh
dGljX2Nhc3Q8U1ZHU01JTEVsZW1lbnQqPihkb21Ob2RlKSwgc2Vjb25kc0Zyb21Ob3cpOworI2Vs
c2UKKyAgICAqYW5pbWF0aW9uV2FzUnVubmluZyA9IEZBTFNFOworI2VuZGlmCisKKyAgICByZXR1
cm4gU19PSzsKK30KKwogSFJFU1VMVCBXZWJGcmFtZTo6bnVtYmVyT2ZBY3RpdmVBbmltYXRpb25z
KFVJTlQqIG51bWJlcikKIHsKICAgICBpZiAoIW51bWJlcikKZGlmZiAtLWdpdCBhL1dlYktpdC93
aW4vV2ViRnJhbWUuaCBiL1dlYktpdC93aW4vV2ViRnJhbWUuaAppbmRleCBmYTdkZDRiLi45MWI4
ZTE0IDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL1dlYkZyYW1lLmgKKysrIGIvV2ViS2l0L3dpbi9X
ZWJGcmFtZS5oCkBAIC0yNDAsNiArMjQwLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBIUkVT
VUxUIFNURE1FVEhPRENBTExUWVBFIHBhdXNlQW5pbWF0aW9uKEJTVFIgYW5pbWF0aW9uTmFtZSwg
SURPTU5vZGUqLCBkb3VibGUgc2Vjb25kc0Zyb21Ob3csIEJPT0wqIGFuaW1hdGlvbldhc1J1bm5p
bmcpOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBwYXVzZVRyYW5zaXRp
b24oQlNUUiBwcm9wZXJ0eU5hbWUsIElET01Ob2RlKiwgZG91YmxlIHNlY29uZHNGcm9tTm93LCBC
T09MKiB0cmFuc2l0aW9uV2FzUnVubmluZyk7CisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhP
RENBTExUWVBFIHBhdXNlU1ZHQW5pbWF0aW9uKEJTVFIgZWxlbWVudElkLCBJRE9NTm9kZSosIGRv
dWJsZSBzZWNvbmRzRnJvbU5vdywgQk9PTCogYW5pbWF0aW9uV2FzUnVubmluZyk7CiAgICAgdmly
dHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIG51bWJlck9mQWN0aXZlQW5pbWF0aW9ucyhV
SU5UKik7CiAKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgaXNEaXNwbGF5
aW5nU3RhbmRhbG9uZUltYWdlKEJPT0wqKTsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5n
ZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwppbmRleCBjMmY3ODhhLi45ZTc3YmY2IDEwMDY0
NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMzAgQEAKKzIwMDktMTItMDEgIE5pa29sYXMgWmltbWVybWFubiAgPG56aW1t
ZXJtYW5uQHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisg
ICAgICAgIEFkZCBTVkcgYW5pbWF0aW9uIHRlc3QgZnJhbWV3b3JrIHdpdGggJ3NuYXBzaG90JyBm
dW5jdGlvbmFsaXR5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zMTg5NworCisgICAgICAgIEFkZCBuZXcgJ3NhbXBsZVNWR0FuaW1hdGlvbkZvckVsZW1l
bnRBdFRpbWUnIERSVCBtZXRob2QsCisgICAgICAgIHVzZWQgYnkgdGhlIG5ldyBTVkcgYW5pbWF0
aW9uIHRlc3RpbmcgZnJhbWV3b3JrLCBpbXBsZW1lbnRlZAorICAgICAgICBmb3IgcXQvZ3RrL3dp
bi9tYWMuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5j
cHA6CisgICAgICAgIChzYW1wbGVTVkdBbmltYXRpb25Gb3JFbGVtZW50QXRUaW1lQ2FsbGJhY2sp
OgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9ucyk6CisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwOgorICAgICAgICAo
TGF5b3V0VGVzdENvbnRyb2xsZXI6OnNhbXBsZVNWR0FuaW1hdGlvbkZvckVsZW1lbnRBdFRpbWUp
OgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5t
bToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzYW1wbGVTVkdBbmltYXRpb25Gb3JF
bGVtZW50QXRUaW1lKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29u
dHJvbGxlclF0LmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzYW1wbGVTVkdB
bmltYXRpb25Gb3JFbGVtZW50QXRUaW1lKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9M
YXlvdXRUZXN0Q29udHJvbGxlclF0Lmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL0xh
eW91dFRlc3RDb250cm9sbGVyV2luLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVy
OjpzYW1wbGVTVkdBbmltYXRpb25Gb3JFbGVtZW50QXRUaW1lKToKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcDoKKyAgICAgICAgKExheW91dFRl
c3RDb250cm9sbGVyOjpzYW1wbGVTVkdBbmltYXRpb25Gb3JFbGVtZW50QXRUaW1lKToKKwogMjAw
OS0xMi0wMSAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3Zl
IHVzZXIgY29udGVudCBiZWZvcmUgcnVubmluZyBlYWNoIHRlc3Qgb24gV2luZG93cwpkaWZmIC0t
Z2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3Bw
IGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCmlu
ZGV4IGQxOTlkNmYuLmZjYzUyN2IgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKQEAgLTEwNzMsNiArMTA3MywyMiBAQCBzdGF0
aWMgSlNWYWx1ZVJlZiBwYXVzZVRyYW5zaXRpb25BdFRpbWVPbkVsZW1lbnRXaXRoSWRDYWxsYmFj
ayhKU0NvbnRleHRSZWYgY29udAogICAgIHJldHVybiBKU1ZhbHVlTWFrZUJvb2xlYW4oY29udGV4
dCwgY29udHJvbGxlci0+cGF1c2VUcmFuc2l0aW9uQXRUaW1lT25FbGVtZW50V2l0aElkKHByb3Bl
cnR5TmFtZS5nZXQoKSwgdGltZSwgZWxlbWVudElkLmdldCgpKSk7CiB9CiAKK3N0YXRpYyBKU1Zh
bHVlUmVmIHNhbXBsZVNWR0FuaW1hdGlvbkZvckVsZW1lbnRBdFRpbWVDYWxsYmFjayhKU0NvbnRl
eHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmpl
Y3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBK
U1ZhbHVlUmVmKiBleGNlcHRpb24pCit7CisgICAgaWYgKGFyZ3VtZW50Q291bnQgIT0gMykKKyAg
ICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworCisgICAgSlNSZXRh
aW5QdHI8SlNTdHJpbmdSZWY+IGFuaW1hdGlvbklkKEFkb3B0LCBKU1ZhbHVlVG9TdHJpbmdDb3B5
KGNvbnRleHQsIGFyZ3VtZW50c1swXSwgZXhjZXB0aW9uKSk7CisgICAgQVNTRVJUKCEqZXhjZXB0
aW9uKTsKKyAgICBkb3VibGUgdGltZSA9IEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1bWVu
dHNbMV0sIGV4Y2VwdGlvbik7CisgICAgQVNTRVJUKCEqZXhjZXB0aW9uKTsKKyAgICBKU1JldGFp
blB0cjxKU1N0cmluZ1JlZj4gZWxlbWVudElkKEFkb3B0LCBKU1ZhbHVlVG9TdHJpbmdDb3B5KGNv
bnRleHQsIGFyZ3VtZW50c1syXSwgZXhjZXB0aW9uKSk7CisgICAgQVNTRVJUKCEqZXhjZXB0aW9u
KTsKKworICAgIExheW91dFRlc3RDb250cm9sbGVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8
TGF5b3V0VGVzdENvbnRyb2xsZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOwor
ICAgIHJldHVybiBKU1ZhbHVlTWFrZUJvb2xlYW4oY29udGV4dCwgY29udHJvbGxlci0+c2FtcGxl
U1ZHQW5pbWF0aW9uRm9yRWxlbWVudEF0VGltZShhbmltYXRpb25JZC5nZXQoKSwgdGltZSwgZWxl
bWVudElkLmdldCgpKSk7Cit9CisKIHN0YXRpYyBKU1ZhbHVlUmVmIG51bWJlck9mQWN0aXZlQW5p
bWF0aW9uc0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlv
biwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpT
VmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKIHsKICAgICBpZiAo
YXJndW1lbnRDb3VudCAhPSAwKQpAQCAtMTI0NCw2ICsxMjYwLDcgQEAgSlNTdGF0aWNGdW5jdGlv
biogTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9ucygpCiAgICAgICAgIHsgInBh
dGhUb0xvY2FsUmVzb3VyY2UiLCBwYXRoVG9Mb2NhbFJlc291cmNlQ2FsbGJhY2ssIGtKU1Byb3Bl
cnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwK
ICAgICAgICAgeyAicGF1c2VBbmltYXRpb25BdFRpbWVPbkVsZW1lbnRXaXRoSWQiLCBwYXVzZUFu
aW1hdGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsg
InBhdXNlVHJhbnNpdGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZCIsIHBhdXNlVHJhbnNpdGlvbkF0
VGltZU9uRWxlbWVudFdpdGhJZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5
IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCisgICAgICAgIHsgInNhbXBsZVNW
R0FuaW1hdGlvbkZvckVsZW1lbnRBdFRpbWUiLCBzYW1wbGVTVkdBbmltYXRpb25Gb3JFbGVtZW50
QXRUaW1lQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAicHJpbnRUb1BERiIsIGR1bXBBc1BE
RkNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRy
aWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInF1ZXVlQmFja05hdmlnYXRpb24iLCBxdWV1
ZUJhY2tOYXZpZ2F0aW9uQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAicXVldWVGb3J3YXJk
TmF2aWdhdGlvbiIsIHF1ZXVlRm9yd2FyZE5hdmlnYXRpb25DYWxsYmFjaywga0pTUHJvcGVydHlB
dHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LApkaWZm
IC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIu
aCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKaW5k
ZXggMmZmZmRlOS4uN2UxOGRjZSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJl
ZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCkBAIC0yMDIsNiArMjAyLDcgQEAgcHVibGljOgogICAg
IAogICAgIGJvb2wgcGF1c2VBbmltYXRpb25BdFRpbWVPbkVsZW1lbnRXaXRoSWQoSlNTdHJpbmdS
ZWYgYW5pbWF0aW9uTmFtZSwgZG91YmxlIHRpbWUsIEpTU3RyaW5nUmVmIGVsZW1lbnRJZCk7CiAg
ICAgYm9vbCBwYXVzZVRyYW5zaXRpb25BdFRpbWVPbkVsZW1lbnRXaXRoSWQoSlNTdHJpbmdSZWYg
cHJvcGVydHlOYW1lLCBkb3VibGUgdGltZSwgSlNTdHJpbmdSZWYgZWxlbWVudElkKTsKKyAgICBi
b29sIHNhbXBsZVNWR0FuaW1hdGlvbkZvckVsZW1lbnRBdFRpbWUoSlNTdHJpbmdSZWYgYW5pbWF0
aW9uSWQsIGRvdWJsZSB0aW1lLCBKU1N0cmluZ1JlZiBlbGVtZW50SWQpOwogICAgIHVuc2lnbmVk
IG51bWJlck9mQWN0aXZlQW5pbWF0aW9ucygpIGNvbnN0OwogCiAgICAgdm9pZCB3aGl0ZUxpc3RB
Y2Nlc3NGcm9tT3JpZ2luKEpTU3RyaW5nUmVmIHNvdXJjZU9yaWdpbiwgSlNTdHJpbmdSZWYgZGVz
dGluYXRpb25Qcm90b2NvbCwgSlNTdHJpbmdSZWYgZGVzdGluYXRpb25Ib3N0LCBib29sIGFsbG93
RGVzdGluYXRpb25TdWJkb21haW5zKTsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAgYi9XZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCmluZGV4IDJkOWVmZTgu
LjJiOWM0NTggMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlv
dXRUZXN0Q29udHJvbGxlckd0ay5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
Z3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcApAQCAtNDQ4LDYgKzQ0OCwxNCBAQCBib29s
IExheW91dFRlc3RDb250cm9sbGVyOjpwYXVzZVRyYW5zaXRpb25BdFRpbWVPbkVsZW1lbnRXaXRo
SWQoSlNTdHJpbmdSZWYgcHJvcAogICAgIHJldHVybiByZXR1cm5WYWx1ZTsKIH0KIAorYm9vbCBM
YXlvdXRUZXN0Q29udHJvbGxlcjo6c2FtcGxlU1ZHQW5pbWF0aW9uRm9yRWxlbWVudEF0VGltZShK
U1N0cmluZ1JlZiBhbmltYXRpb25JZCwgZG91YmxlIHRpbWUsIEpTU3RyaW5nUmVmIGVsZW1lbnRJ
ZCkKK3sgICAgCisgICAgZ2NoYXIqIGFuaW1hdGlvbkVsZW1lbnQgPSBKU1N0cmluZ0NvcHlVVEY4
Q1N0cmluZyhhbmltYXRpb25JZCk7CisgICAgYm9vbCByZXR1cm5WYWx1ZSA9IHdlYmtpdF93ZWJf
ZnJhbWVfcGF1c2Vfc3ZnX2FuaW1hdGlvbihtYWluRnJhbWUsIGVsZW1lbnRJZCwgdGltZSwgYW5p
bWF0aW9uRWxlbWVudCk7CisgICAgZ19mcmVlKGVsZW1lbnQpOworICAgIHJldHVybiByZXR1cm5W
YWx1ZTsKK30KKwogdW5zaWduZWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6Om51bWJlck9mQWN0aXZl
QW5pbWF0aW9ucygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHdlYmtpdF93ZWJfZnJhbWVfbnVtYmVy
X29mX2FjdGl2ZV9hbmltYXRpb25zKG1haW5GcmFtZSk7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0gYi9XZWJLaXRU
b29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0KaW5kZXgg
NDJhYTc4OC4uNjlmZTE5ZiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
bWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQpAQCAtNDg2LDYgKzQ4NiwxNiBA
QCBib29sIExheW91dFRlc3RDb250cm9sbGVyOjpwYXVzZVRyYW5zaXRpb25BdFRpbWVPbkVsZW1l
bnRXaXRoSWQoSlNTdHJpbmdSZWYgcHJvcAogICAgIHJldHVybiBbbWFpbkZyYW1lIF9wYXVzZVRy
YW5zaXRpb25PZlByb3BlcnR5Om5hbWVOUyBvbk5vZGU6W1ttYWluRnJhbWUgRE9NRG9jdW1lbnRd
IGdldEVsZW1lbnRCeUlkOmlkTlNdIGF0VGltZTp0aW1lXTsKIH0KIAorYm9vbCBMYXlvdXRUZXN0
Q29udHJvbGxlcjo6c2FtcGxlU1ZHQW5pbWF0aW9uRm9yRWxlbWVudEF0VGltZShKU1N0cmluZ1Jl
ZiBhbmltYXRpb25JZCwgZG91YmxlIHRpbWUsIEpTU3RyaW5nUmVmIGVsZW1lbnRJZCkKK3sKKyAg
ICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGFuaW1hdGlvbklEQ0YoQWRvcHRDRiwgSlNTdHJpbmdD
b3B5Q0ZTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYW5pbWF0aW9uSWQpKTsKKyAgICBOU1N0
cmluZyAqYW5pbWF0aW9uSUROUyA9IChOU1N0cmluZyAqKWFuaW1hdGlvbklEQ0YuZ2V0KCk7Cisg
ICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBlbGVtZW50SURDRihBZG9wdENGLCBKU1N0cmluZ0Nv
cHlDRlN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBlbGVtZW50SWQpKTsKKyAgICBOU1N0cmlu
ZyAqZWxlbWVudElETlMgPSAoTlNTdHJpbmcgKillbGVtZW50SURDRi5nZXQoKTsKKworICAgIHJl
dHVybiBbbWFpbkZyYW1lIF9wYXVzZVNWR0FuaW1hdGlvbjplbGVtZW50SUROUyBvblNNSUxOb2Rl
OltbbWFpbkZyYW1lIERPTURvY3VtZW50XSBnZXRFbGVtZW50QnlJZDphbmltYXRpb25JRE5TXSBh
dFRpbWU6dGltZV07Cit9CisKIHVuc2lnbmVkIExheW91dFRlc3RDb250cm9sbGVyOjpudW1iZXJP
ZkFjdGl2ZUFuaW1hdGlvbnMoKSBjb25zdAogewogICAgIHJldHVybiBbbWFpbkZyYW1lIF9udW1i
ZXJPZkFjdGl2ZUFuaW1hdGlvbnNdOwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcAppbmRleCA5NmI1MjFkLi4xMmJh
MWIzIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0
Q29udHJvbGxlclF0LmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlv
dXRUZXN0Q29udHJvbGxlclF0LmNwcApAQCAtMzksNyArMzksOSBAQCBleHRlcm4gdm9pZCBxdF9k
dW1wX3Jlc291cmNlX2xvYWRfY2FsbGJhY2tzKGJvb2wgYik7CiBleHRlcm4gdm9pZCBxdF9kcnRf
c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoUVdlYkZyYW1lKiwgYm9vbCBlbmFibGVkKTsK
IGV4dGVybiBib29sIHF0X2RydF9wYXVzZUFuaW1hdGlvbihRV2ViRnJhbWUqLCBjb25zdCBRU3Ry
aW5nJiBuYW1lLCBkb3VibGUgdGltZSwgY29uc3QgUVN0cmluZyYgZWxlbWVudElkKTsKIGV4dGVy
biBib29sIHF0X2RydF9wYXVzZVRyYW5zaXRpb25PZlByb3BlcnR5KFFXZWJGcmFtZSosIGNvbnN0
IFFTdHJpbmcmIG5hbWUsIGRvdWJsZSB0aW1lLCBjb25zdCBRU3RyaW5nJiBlbGVtZW50SWQpOwor
ZXh0ZXJuIGJvb2wgcXRfZHJ0X3BhdXNlU1ZHQW5pbWF0aW9uKFFXZWJGcmFtZSosIGNvbnN0IFFT
dHJpbmcmIGFuaW1hdGlvbklkLCBkb3VibGUgdGltZSwgY29uc3QgUVN0cmluZyYgZWxlbWVudElk
KTsKIGV4dGVybiBpbnQgcXRfZHJ0X251bWJlck9mQWN0aXZlQW5pbWF0aW9ucyhRV2ViRnJhbWUq
KTsKKwogZXh0ZXJuIHZvaWQgcXRfZHJ0X3doaXRlTGlzdEFjY2Vzc0Zyb21PcmlnaW4oY29uc3Qg
UVN0cmluZyYgc291cmNlT3JpZ2luLCBjb25zdCBRU3RyaW5nJiBkZXN0aW5hdGlvblByb3RvY29s
LCBjb25zdCBRU3RyaW5nJiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1
YmRvbWFpbnMpOwogZXh0ZXJuIFFTdHJpbmcgcXRfZHJ0X2NvdW50ZXJWYWx1ZUZvckVsZW1lbnRC
eUlkKFFXZWJGcmFtZSogcUZyYW1lLCBjb25zdCBRU3RyaW5nJiBpZCk7CiAKQEAgLTI4MCw2ICsy
ODIsMTUgQEAgYm9vbCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6cGF1c2VUcmFuc2l0aW9uQXRUaW1l
T25FbGVtZW50V2l0aElkKGNvbnN0IFFTdHJpbmcmIHAKICAgICByZXR1cm4gcXRfZHJ0X3BhdXNl
VHJhbnNpdGlvbk9mUHJvcGVydHkoZnJhbWUsIHByb3BlcnR5TmFtZSwgdGltZSwgZWxlbWVudElk
KTsKIH0KIAorYm9vbCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2FtcGxlU1ZHQW5pbWF0aW9uRm9y
RWxlbWVudEF0VGltZShjb25zdCBRU3RyaW5nJiBhbmltYXRpb25JZCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIHRp
bWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IFFTdHJpbmcmIGVsZW1lbnRJZCkKK3sKKyAgICBRV2ViRnJhbWUqIGZy
YW1lID0gbV9kcnQtPndlYlBhZ2UoKS0+bWFpbkZyYW1lKCk7CisgICAgUV9BU1NFUlQoZnJhbWUp
OworICAgIHJldHVybiBxdF9kcnRfcGF1c2VTVkdBbmltYXRpb24oZnJhbWUsIGFuaW1hdGlvbklk
LCB0aW1lLCBlbGVtZW50SWQpOworfQorCiB1bnNpZ25lZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6
bnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKCkgY29uc3QKIHsKICAgICBRV2ViRnJhbWUqIGZyYW1l
ID0gbV9kcnQtPndlYlBhZ2UoKS0+bWFpbkZyYW1lKCk7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmggYi9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmgKaW5kZXggZTBhZGQ2
MS4uZWNhZDk0NyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5
b3V0VGVzdENvbnRyb2xsZXJRdC5oCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0
L0xheW91dFRlc3RDb250cm9sbGVyUXQuaApAQCAtMTE1LDYgKzExNSw3IEBAIHB1YmxpYyBzbG90
czoKIAogICAgIGJvb2wgcGF1c2VBbmltYXRpb25BdFRpbWVPbkVsZW1lbnRXaXRoSWQoY29uc3Qg
UVN0cmluZyYgYW5pbWF0aW9uTmFtZSwgZG91YmxlIHRpbWUsIGNvbnN0IFFTdHJpbmcmIGVsZW1l
bnRJZCk7CiAgICAgYm9vbCBwYXVzZVRyYW5zaXRpb25BdFRpbWVPbkVsZW1lbnRXaXRoSWQoY29u
c3QgUVN0cmluZyYgcHJvcGVydHlOYW1lLCBkb3VibGUgdGltZSwgY29uc3QgUVN0cmluZyYgZWxl
bWVudElkKTsKKyAgICBib29sIHBhdXNlU1ZHQW5pbWF0aW9uQXRUaW1lT25FbGVtZW50V2l0aElk
KGRvdWJsZSB0aW1lLCBjb25zdCBRU3RyaW5nJiBlbGVtZW50SWQpOwogICAgIHVuc2lnbmVkIG51
bWJlck9mQWN0aXZlQW5pbWF0aW9ucygpIGNvbnN0OwogCiAgICAgdm9pZCB3aGl0ZUxpc3RBY2Nl
c3NGcm9tT3JpZ2luKGNvbnN0IFFTdHJpbmcmIHNvdXJjZU9yaWdpbiwgY29uc3QgUVN0cmluZyYg
ZGVzdGluYXRpb25Qcm90b2NvbCwgY29uc3QgUVN0cmluZyYgZGVzdGluYXRpb25Ib3N0LCBib29s
IGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAgYi9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwCmluZGV4IDM2
MjcyOWUuLjVkZWJmMTYgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dp
bi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcApAQCAtODYxLDYgKzg2MSwzMSBA
QCBib29sIExheW91dFRlc3RDb250cm9sbGVyOjpwYXVzZVRyYW5zaXRpb25BdFRpbWVPbkVsZW1l
bnRXaXRoSWQoSlNTdHJpbmdSZWYgcHJvcAogICAgIHJldHVybiBTVUNDRUVERUQoaHIpICYmIHdh
c1J1bm5pbmc7CiB9CiAKK2Jvb2wgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNhbXBsZVNWR0FuaW1h
dGlvbkZvckVsZW1lbnRBdFRpbWUoSlNTdHJpbmdSZWYgYW5pbWF0aW9uSWQsIGRvdWJsZSB0aW1l
LCBKU1N0cmluZ1JlZiBlbGVtZW50SWQpCit7CisgICAgQ09NUHRyPElET01Eb2N1bWVudD4gZG9j
dW1lbnQ7CisgICAgaWYgKEZBSUxFRChmcmFtZS0+RE9NRG9jdW1lbnQoJmRvY3VtZW50KSkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEJTVFIgaWRCU1RSID0gSlNTdHJpbmdDb3B5QlNU
UihhbmltYXRpb25JZCk7CisgICAgQ09NUHRyPElET01FbGVtZW50PiBlbGVtZW50OworICAgIEhS
RVNVTFQgaHIgPSBkb2N1bWVudC0+Z2V0RWxlbWVudEJ5SWQoaWRCU1RSLCAmZWxlbWVudCk7Cisg
ICAgU3lzRnJlZVN0cmluZyhpZEJTVFIpOworICAgIGlmIChGQUlMRUQoaHIpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICBDT01QdHI8SVdlYkZyYW1lUHJpdmF0ZT4gZnJhbWVQcml2YXRl
KFF1ZXJ5LCBmcmFtZSk7CisgICAgaWYgKCFmcmFtZVByaXZhdGUpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIEJTVFIgZWxlbWVudElkQlNUUiA9IEpTU3RyaW5nQ29weUJTVFIoZWxlbWVu
dElkKTsKKyAgICBCT09MIHdhc1J1bm5pbmcgPSBGQUxTRTsKKyAgICBociA9IGZyYW1lUHJpdmF0
ZS0+cGF1c2VTVkdBbmltYXRpb24oZWxlbWVudElkQlNUUiwgZWxlbWVudC5nZXQoKSwgdGltZSwg
Jndhc1J1bm5pbmcpOworICAgIFN5c0ZyZWVTdHJpbmcoZWxlbWVudElkQlNUUik7CisKKyAgICBy
ZXR1cm4gU1VDQ0VFREVEKGhyKSAmJiB3YXNSdW5uaW5nOworfQorCiB1bnNpZ25lZCBMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6bnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKCkgY29uc3QKIHsKICAgICBD
T01QdHI8SVdlYkZyYW1lUHJpdmF0ZT4gZnJhbWVQcml2YXRlKFF1ZXJ5LCBmcmFtZSk7CmRpZmYg
LS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxl
cld4LmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9s
bGVyV3guY3BwCmluZGV4IDIxODQ4MGYuLjhiY2NkZGEgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwCisrKyBiL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwCkBAIC0y
NjcsNiArMjY3LDEyIEBAIGJvb2wgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnBhdXNlQW5pbWF0aW9u
QXRUaW1lT25FbGVtZW50V2l0aElkKEpTU3RyaW5nUmVmIGFuaW1hCiAgICAgcmV0dXJuIGZhbHNl
OwogfQogCitib29sIExheW91dFRlc3RDb250cm9sbGVyOjpzYW1wbGVTVkdBbmltYXRpb25Gb3JF
bGVtZW50QXRUaW1lKEpTU3RyaW5nUmVmIGFuaW1hdGlvbklkLCBkb3VibGUgdGltZSwgSlNTdHJp
bmdSZWYgZWxlbWVudElkKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldENhY2hlTW9kZWwoaW50
KQogewogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44112</attachid>
            <date>2009-12-01 16:56:34 -0800</date>
            <delta_ts>2009-12-01 17:04:29 -0800</delta_ts>
            <desc>check-webkit-style does not understand (Prefix)Foo(Custom|Gtk|CG|Mac).cpp including Foo.h</desc>
            <filename>bug-32033-20091201165633.patch</filename>
            <type>text/plain</type>
            <size>2527</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA5ZTc3YmY2Li41ZWY5MGU5IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDktMTIt
MDEgIERhdmlkIExldmluICA8bGV2aW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGNoZWNrLXdlYmtpdC1zdHlsZSBkb2VzIG5v
dCB1bmRlcnN0YW5kIChQcmVmaXgpRm9vKEN1c3RvbXxHdGt8Q0d8TWFjKS5jcHAgaW5jbHVkaW5n
IEZvby5oCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
MjAzMworCisgICAgICAgICogU2NyaXB0cy9tb2R1bGVzL2NwcF9zdHlsZS5weTogQ2hhbmdlZCBj
aGVjayBmb3IgYSBwb3NzaWJsZSBwcmltYXJ5IGhlYWRlciB0byB1c2UgZmluZAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc3RlYWQgb2Ygc3RhcnRzd2l0aC4KKyAg
ICAgICAgKiBTY3JpcHRzL21vZHVsZXMvY3BwX3N0eWxlX3VuaXR0ZXN0LnB5OiBBZGRlZCBhIHVu
aXQgdGVzdCBmb3IgdGhlIG5ldyBiZWhhdmlvci4KKwogMjAwOS0xMi0wMSAgTmlrb2xhcyBaaW1t
ZXJtYW5uICA8bnppbW1lcm1hbm5AcmltLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1v
biBGcmFzZXIuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL21vZHVsZXMvY3BwX3N0
eWxlLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL2NwcF9zdHlsZS5weQppbmRleCAz
MjA3ZGJhLi45OTBmY2ZlIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL21vZHVsZXMv
Y3BwX3N0eWxlLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvbW9kdWxlcy9jcHBfc3R5bGUu
cHkKQEAgLTIzMDksNyArMjMwOSw3IEBAIGRlZiBfY2xhc3NpZnlfaW5jbHVkZShmaWxlbmFtZSwg
aW5jbHVkZSwgaXNfc3lzdGVtLCBpbmNsdWRlX3N0YXRlKToKICAgICBpbmNsdWRlX2Jhc2UgPSBG
aWxlSW5mbyhpbmNsdWRlKS5iYXNlX25hbWUoKQogCiAgICAgIyBJZiB3ZSBoYXZlbid0IGVuY291
bnRlcmVkIGEgcHJpbWFyeSBoZWFkZXIsIHRoZW4gYmUgbGVuaWVudCBpbiBjaGVja2luZy4KLSAg
ICBpZiBub3QgaW5jbHVkZV9zdGF0ZS52aXNpdGVkX3ByaW1hcnlfc2VjdGlvbigpIGFuZCB0YXJn
ZXRfYmFzZS5zdGFydHN3aXRoKGluY2x1ZGVfYmFzZSk6CisgICAgaWYgbm90IGluY2x1ZGVfc3Rh
dGUudmlzaXRlZF9wcmltYXJ5X3NlY3Rpb24oKSBhbmQgdGFyZ2V0X2Jhc2UuZmluZChpbmNsdWRl
X2Jhc2UpICE9IC0xOgogICAgICAgICByZXR1cm4gX1BSSU1BUllfSEVBREVSCiAgICAgIyBJZiB3
ZSBhbHJlYWR5IGVuY291bnRlcmVkIGEgcHJpbWFyeSBoZWFkZXIsIHBlcmZvcm0gYSBzdHJpY3Qg
Y29tcGFyaXNvbi4KICAgICAjIEluIGNhc2UgdGhlIHR3byBmaWxlbmFtZSBiYXNlcyBhcmUgdGhl
IHNhbWUgdGhlbiB0aGUgYWJvdmUgbGVuaWVudCBjaGVjawpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9v
bHMvU2NyaXB0cy9tb2R1bGVzL2NwcF9zdHlsZV91bml0dGVzdC5weSBiL1dlYktpdFRvb2xzL1Nj
cmlwdHMvbW9kdWxlcy9jcHBfc3R5bGVfdW5pdHRlc3QucHkKaW5kZXggYWE4NzU4OC4uN2Y1NDAz
ZiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL2NwcF9zdHlsZV91bml0
dGVzdC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL21vZHVsZXMvY3BwX3N0eWxlX3VuaXR0
ZXN0LnB5CkBAIC0yMzA3LDYgKzIzMDcsMTAgQEAgY2xhc3MgT3JkZXJPZkluY2x1ZGVzVGVzdChD
cHBTdHlsZVRlc3RCYXNlKToKICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2lmeV9pbmNs
dWRlKCdmb29DdXN0b20uY3BwJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICdmb28uaCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBGYWxzZSwgaW5jbHVkZV9zdGF0ZSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY3BwX3N0
eWxlLl9QUklNQVJZX0hFQURFUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2lmeV9p
bmNsdWRlKCdQcmVmaXhGb29DdXN0b20uY3BwJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICdGb28uaCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBGYWxzZSwgaW5jbHVkZV9zdGF0ZSkpCiAgICAgICAgICMgVHJpY2t5IGV4YW1w
bGUgd2hlcmUgYm90aCBpbmNsdWRlcyBtaWdodCBiZSBjbGFzc2lmaWVkIGFzIHByaW1hcnkuCiAg
ICAgICAgIHNlbGYuYXNzZXJ0X2xhbmd1YWdlX3J1bGVzX2NoZWNrKCdTY3JvbGxiYXJUaGVtZVdp
bmNlLmNwcCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcjaW5j
bHVkZSAiY29uZmlnLmgiXG4nCg==
</data>
<flag name="review"
          id="25888"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>