<?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>174642</bug_id>
          
          <creation_ts>2017-07-18 13:18:06 -0700</creation_ts>
          <short_desc>[WebIDL] Remove custom bindings for CommandLineAPIHost</short_desc>
          <delta_ts>2017-07-19 22:46:35 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>joepeck</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1330083</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-07-18 13:18:06 -0700</bug_when>
    <thetext>[WebIDL] Remove custom bindings for CommandLineAPIHost</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1330102</commentid>
    <comment_count>1</comment_count>
      <attachid>315830</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-07-18 13:52:21 -0700</bug_when>
    <thetext>Created attachment 315830
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1330463</commentid>
    <comment_count>2</comment_count>
      <attachid>315830</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-07-19 12:02:39 -0700</bug_when>
    <thetext>Comment on attachment 315830
Patch

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

&gt; Source/WebCore/inspector/CommandLineAPIHost.idl:46
&gt; +    DOMString databaseId(Database? database);
&gt; +    DOMString storageId(Storage? storage);

We should be able to make these non-optional. We only call them with real values (CommandLineAPIModuleSource.js calls to CommandLineAPIHost.databaseId and CommandLineAPIHost.storageId).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1330554</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-07-19 22:15:09 -0700</bug_when>
    <thetext>(In reply to Joseph Pecoraro from comment #2)
&gt; Comment on attachment 315830 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=315830&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/inspector/CommandLineAPIHost.idl:46
&gt; &gt; +    DOMString databaseId(Database? database);
&gt; &gt; +    DOMString storageId(Storage? storage);
&gt; 
&gt; We should be able to make these non-optional. We only call them with real
&gt; values (CommandLineAPIModuleSource.js calls to CommandLineAPIHost.databaseId
&gt; and CommandLineAPIHost.storageId).

I&apos;ll do that in a follow up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1330563</commentid>
    <comment_count>4</comment_count>
      <attachid>315830</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-07-19 22:46:34 -0700</bug_when>
    <thetext>Comment on attachment 315830
Patch

Clearing flags on attachment: 315830

Committed r219675: &lt;http://trac.webkit.org/changeset/219675&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1330564</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-07-19 22:46:35 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>315830</attachid>
            <date>2017-07-18 13:52:21 -0700</date>
            <delta_ts>2017-07-19 22:46:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-174642-20170718135420.patch</filename>
            <type>text/plain</type>
            <size>20619</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxOTYyMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDE3LTA3LTE4ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1dlYklETF0gUmVtb3ZlIGN1c3RvbSBi
aW5kaW5ncyBmb3IgQ29tbWFuZExpbmVBUElIb3N0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzQ2NDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0Jp
bmRpbmdzQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ29tbWFuZExpbmVB
UElIb3N0Q3VzdG9tLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgUmVtb3ZlIEpTQ29tbWFuZExpbmVB
UElIb3N0Q3VzdG9tLmNwcC4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQ29udmVydE9i
amVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6SlNDb252ZXJ0ZXI8SURMT2JqZWN0Pjo6Y29udmVy
dCk6CisgICAgICAgIEFkZCBtaXNzaW5nIEpTQ29udmVydGVyIHNwZWNpYWxpemF0aW9uIGZvciBJ
RExPYmplY3QuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvQ29tbWFuZExpbmVBUElIb3N0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNvbW1hbmRMaW5lQVBJSG9zdDo6aW5zcGVjdCk6CisgICAgICAg
IChXZWJDb3JlOjpsaXN0ZW5lckVudHJpZXNGcm9tTGlzdGVuZXJJbmZvKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbW1hbmRMaW5lQVBJSG9zdDo6aW5zcGVjdGVkT2JqZWN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbW1hbmRMaW5lQVBJSG9zdDo6ZGF0YWJhc2VJZCk6CisgICAgICAgIChXZWJDb3Jl
OjpDb21tYW5kTGluZUFQSUhvc3Q6OnN0b3JhZ2VJZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21t
YW5kTGluZUFQSUhvc3Q6Omluc3BlY3RJbXBsKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkNvbW1hbmRMaW5lQVBJSG9zdDo6Z2V0RXZlbnRMaXN0ZW5lcnNJbXBsKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkNvbW1hbmRMaW5lQVBJSG9zdDo6ZGF0YWJhc2VJZEltcGwpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29tbWFuZExpbmVBUElIb3N0OjpzdG9yYWdlSWRJbXBs
KTogRGVsZXRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvQ29tbWFuZExpbmVBUElIb3N0Lmg6Cisg
ICAgICAgICogaW5zcGVjdG9yL0NvbW1hbmRMaW5lQVBJSG9zdC5pZGw6CisgICAgICAgIFJlcGxh
Y2UgY3VzdG9tIGJpbmRpbmdzIHdpdGggbW9kZXJuIGJpbmRpbmdzIGFmZm9yZGFuY2VzOiBkaWN0
aW9uYXJpZXMsIHJlY29yZHMgYW5kIHNlcXVlbmNlcy4KKwogMjAxNy0wNy0xOCAgU2FtIFdlaW5p
ZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtXZWJJRExdIFJlbW92ZSBjdXN0b20gYmlu
ZGluZ3MgZm9yIE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CShyZXZpc2lvbiAyMTk2MjMpCisrKyBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMTE1Nyw3ICsxMTU3LDYgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwog
ICAgIGJpbmRpbmdzL2pzL0pTRm9udEZhY2VTZXRDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMv
SlNDYWxsYmFja0RhdGEuY3BwCiAgICAgYmluZGluZ3MvanMvSlNDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkRDdXN0b20uY3BwCi0gICAgYmluZGluZ3MvanMvSlNDb21tYW5kTGluZUFQSUhvc3RDdXN0
b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNDcnlwdG9BbGdvcml0aG1CdWlsZGVyLmNwcAogICAg
IGJpbmRpbmdzL2pzL0pTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeS5jcHAKICAgICBiaW5kaW5n
cy9qcy9KU0NyeXB0b0tleUN1c3RvbS5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIxOTYyMykKKysrIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBj
b3B5KQpAQCAtNDQwOCw3ICs0NDA4LDYgQEAKIAkJQTU4NEZFMzAxODY0Q0I4NDAwODQzQjEwIC8q
IFdlYkluamVjdGVkU2NyaXB0TWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTU4NEZFMkUxODY0Q0I4NDAwODQzQjEwIC8qIFdlYkluamVjdGVk
U2NyaXB0TWFuYWdlci5oICovOyB9OwogCQlBNTg0RkUzNDE4NjRENUFGMDA4NDNCMTAgLyogQ29t
bWFuZExpbmVBUElIb3N0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE1ODRGRTMxMTg2NEQ1QUYwMDg0M0IxMCAvKiBDb21tYW5kTGluZUFQSUhvc3Qu
Y3BwICovOyB9OwogCQlBNTg0RkUzNTE4NjRENUFGMDA4NDNCMTAgLyogQ29tbWFuZExpbmVBUElI
b3N0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTg0
RkUzMjE4NjRENUFGMDA4NDNCMTAgLyogQ29tbWFuZExpbmVBUElIb3N0LmggKi87IH07Ci0JCUE1
ODRGRTM4MTg2NERBQzEwMDg0M0IxMCAvKiBKU0NvbW1hbmRMaW5lQVBJSG9zdEN1c3RvbS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTg0RkUzNzE4
NjREQUMxMDA4NDNCMTAgLyogSlNDb21tYW5kTGluZUFQSUhvc3RDdXN0b20uY3BwICovOyB9Owog
CQlBNTg0RkUzQjE4NjRFMkQ4MDA4NDNCMTAgLyogSlNDb21tYW5kTGluZUFQSUhvc3QuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU4NEZFMzkxODY0
RTJEODAwODQzQjEwIC8qIEpTQ29tbWFuZExpbmVBUElIb3N0LmNwcCAqLzsgfTsKIAkJQTU4NEZF
M0MxODY0RTJEODAwODQzQjEwIC8qIEpTQ29tbWFuZExpbmVBUElIb3N0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTg0RkUzQTE4NjRFMkQ4MDA4NDNC
MTAgLyogSlNDb21tYW5kTGluZUFQSUhvc3QuaCAqLzsgfTsKIAkJQTU4QzU5RDAxRTM4MkVBQzAw
NDc4NTlDIC8qIEpTUGVyZm9ybWFuY2VNYXJrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1OEM1OUNDMUUzODJFQTkwMDQ3ODU5QyAvKiBKU1BlcmZv
cm1hbmNlTWFyay5jcHAgKi87IH07CkBAIC0xMjY3MCw3ICsxMjY2OSw2IEBACiAJCUE1ODRGRTMx
MTg2NEQ1QUYwMDg0M0IxMCAvKiBDb21tYW5kTGluZUFQSUhvc3QuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29tbWFuZExpbmVBUElIb3N0LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTU4NEZFMzIxODY0RDVBRjAwODQzQjEwIC8qIENvbW1hbmRM
aW5lQVBJSG9zdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb21tYW5kTGlu
ZUFQSUhvc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTU4NEZFMzMxODY0RDVB
RjAwODQzQjEwIC8qIENvbW1hbmRMaW5lQVBJSG9zdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gQ29tbWFuZExpbmVBUElIb3N0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
QTU4NEZFMzcxODY0REFDMTAwODQzQjEwIC8qIEpTQ29tbWFuZExpbmVBUElIb3N0Q3VzdG9tLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ29tbWFuZExpbmVBUElI
b3N0Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTU4NEZFMzkxODY0
RTJEODAwODQzQjEwIC8qIEpTQ29tbWFuZExpbmVBUElIb3N0LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ29tbWFuZExpbmVBUElIb3N0LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTU4NEZFM0ExODY0RTJEODAwODQzQjEwIC8qIEpTQ29tbWFu
ZExpbmVBUElIb3N0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ29tbWFu
ZExpbmVBUElIb3N0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1OEM1OUNDMUUz
ODJFQTkwMDQ3ODU5QyAvKiBKU1BlcmZvcm1hbmNlTWFyay5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU1BlcmZvcm1hbmNlTWFyay5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0yMzYxNCw3ICsyMzYxMiw2IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJ
CQk3QzNEOEVFNDFFMDhCQUJFMDAyM0IwODQgLyogR0MgLyBXcmFwcGluZyBPbmx5ICovLAogCQkJ
CTdDQkE1QkE5MUYwQjUxNDgwMDM0RDc0NSAvKiBQcm9taXNlcyBPbmx5ICovLAotCQkJCUE1ODRG
RTM3MTg2NERBQzEwMDg0M0IxMCAvKiBKU0NvbW1hbmRMaW5lQVBJSG9zdEN1c3RvbS5jcHAgKi8s
CiAJCQkJRTE1N0E4RTYxODE4NEM2NzAwOUY4MjFEIC8qIEpTQ3J5cHRvS2V5Q3VzdG9tLmNwcCAq
LywKIAkJCQlCQzU4MjVGMjBDMEI4OTM4MDA1M0YxQjUgLyogSlNDU1NTdHlsZURlY2xhcmF0aW9u
Q3VzdG9tLmNwcCAqLywKIAkJCQlBRDcyNkZFQTE2RDlGNDBCMDAzQTRFNkQgLyogSlNDU1NTdHls
ZURlY2xhcmF0aW9uQ3VzdG9tLmggKi8sCkBAIC0zMTgwMCw3ICszMTc5Nyw2IEBACiAJCQkJODM2
RDAzMzExREE4QTEzRjAwRkZEOTZCIC8qIEpTQ2xpcGJvYXJkRXZlbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNTFGQjU1MDUxMTNFM0U5MTAwODIxMTc2IC8qIEpTQ2xvc2VFdmVudC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlBNTg0RkUzQjE4NjRFMkQ4MDA4NDNCMTAgLyogSlNDb21tYW5kTGlu
ZUFQSUhvc3QuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTU4NEZFMzgxODY0REFDMTAwODQzQjEw
IC8qIEpTQ29tbWFuZExpbmVBUElIb3N0Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkz
RjlCNkUwMEJBMEZCNzIwMDg1NDA2NCAvKiBKU0NvbW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNzlBQzkyMTgxMDk5NDVDODAwMjEyNjZFIC8qIEpTQ29tcG9zaXRpb25FdmVudC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlGREExNUVCRDEyQjAzRjBCMDAzQTU4M0EgLyogSlNDb252b2x2ZXJO
b2RlLmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNCaW5kaW5nc0FsbEluT25lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCShyZXZpc2lvbiAyMTk2MjMpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zOCw3ICszOCw2IEBACiAjaW5jbHVkZSAiSlNDU1NTdHlsZURlY2xhcmF0aW9uQ3Vz
dG9tLmNwcCIKICNpbmNsdWRlICJKU0NhbGxiYWNrRGF0YS5jcHAiCiAjaW5jbHVkZSAiSlNDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkRDdXN0b20uY3BwIgotI2luY2x1ZGUgIkpTQ29tbWFuZExpbmVB
UElIb3N0Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0N1c3RvbUV2ZW50Q3VzdG9tLmNwcCIKICNp
bmNsdWRlICJKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAiCiAjaW5jbHVkZSAiSlNET01CaW5k
aW5nU2VjdXJpdHkuY3BwIgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDb21t
YW5kTGluZUFQSUhvc3RDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTQ29tbWFuZExpbmVBUElIb3N0Q3VzdG9tLmNwcAkocmV2aXNpb24gMjE5NjIz
KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDb21tYW5kTGluZUFQSUhvc3RDdXN0
b20uY3BwCShub25leGlzdGVudCkKQEAgLTEsMTY0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDctMjAwOCwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDggTWF0dCBMaWxlayA8d2Via2l0QG1hdHRsaWxlay5jb20+Ci0gKiBD
b3B5cmlnaHQgKEMpIDIwMTAtMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBk
aXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
Ci0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNs
dWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJKU0NvbW1hbmRMaW5lQVBJSG9zdC5oIgotCi0jaW5j
bHVkZSAiQ29tbWFuZExpbmVBUElIb3N0LmgiCi0jaW5jbHVkZSAiRGF0YWJhc2UuaCIKLSNpbmNs
dWRlICJEb2N1bWVudC5oIgotI2luY2x1ZGUgIkluc3BlY3RvckRPTUFnZW50LmgiCi0jaW5jbHVk
ZSAiSlNEYXRhYmFzZS5oIgotI2luY2x1ZGUgIkpTRXZlbnRMaXN0ZW5lci5oIgotI2luY2x1ZGUg
IkpTTm9kZS5oIgotI2luY2x1ZGUgIkpTU3RvcmFnZS5oIgotI2luY2x1ZGUgIlN0b3JhZ2UuaCIK
LSNpbmNsdWRlIDxiaW5kaW5ncy9TY3JpcHRWYWx1ZS5oPgotI2luY2x1ZGUgPGluc3BlY3Rvci9J
bnNwZWN0b3JWYWx1ZXMuaD4KLSNpbmNsdWRlIDxwYXJzZXIvU291cmNlQ29kZS5oPgotI2luY2x1
ZGUgPHJ1bnRpbWUvSWRlbnRpZmllcklubGluZXMuaD4KLSNpbmNsdWRlIDxydW50aW1lL0pTQXJy
YXkuaD4KLSNpbmNsdWRlIDxydW50aW1lL0pTRnVuY3Rpb24uaD4KLSNpbmNsdWRlIDxydW50aW1l
L0pTTG9jay5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaD4KLQotdXNp
bmcgbmFtZXNwYWNlIEpTQzsKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1KU1ZhbHVlIEpTQ29t
bWFuZExpbmVBUElIb3N0OjppbnNwZWN0ZWRPYmplY3QoRXhlY1N0YXRlJiBzdGF0ZSkKLXsKLSAg
ICBDb21tYW5kTGluZUFQSUhvc3Q6Okluc3BlY3RhYmxlT2JqZWN0KiBvYmplY3QgPSB3cmFwcGVk
KCkuaW5zcGVjdGVkT2JqZWN0KCk7Ci0gICAgaWYgKCFvYmplY3QpCi0gICAgICAgIHJldHVybiBq
c1VuZGVmaW5lZCgpOwotCi0gICAgSlNMb2NrSG9sZGVyIGxvY2soJnN0YXRlKTsKLSAgICBhdXRv
IHNjcmlwdFZhbHVlID0gb2JqZWN0LT5nZXQoc3RhdGUpOwotICAgIHJldHVybiBzY3JpcHRWYWx1
ZSA/IHNjcmlwdFZhbHVlIDoganNVbmRlZmluZWQoKTsKLX0KLQotc3RhdGljIEpTQXJyYXkqIGdl
dEpTTGlzdGVuZXJGdW5jdGlvbnMoRXhlY1N0YXRlJiBzdGF0ZSwgRG9jdW1lbnQqIGRvY3VtZW50
LCBjb25zdCBFdmVudExpc3RlbmVySW5mbyYgbGlzdGVuZXJJbmZvKQotewotICAgIFZNJiB2bSA9
IHN0YXRlLnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwot
ICAgIEpTQXJyYXkqIHJlc3VsdCA9IGNvbnN0cnVjdEVtcHR5QXJyYXkoJnN0YXRlLCBudWxscHRy
KTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKLSAgICBzaXplX3Qg
aGFuZGxlcnNDb3VudCA9IGxpc3RlbmVySW5mby5ldmVudExpc3RlbmVyVmVjdG9yLnNpemUoKTsK
LSAgICBmb3IgKHNpemVfdCBpID0gMCwgb3V0cHV0SW5kZXggPSAwOyBpIDwgaGFuZGxlcnNDb3Vu
dDsgKytpKSB7Ci0gICAgICAgIGNvbnN0IEpTRXZlbnRMaXN0ZW5lcioganNMaXN0ZW5lciA9IEpT
RXZlbnRMaXN0ZW5lcjo6Y2FzdCgmbGlzdGVuZXJJbmZvLmV2ZW50TGlzdGVuZXJWZWN0b3JbaV0t
PmNhbGxiYWNrKCkpOwotICAgICAgICBpZiAoIWpzTGlzdGVuZXIpIHsKLSAgICAgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLQot
ICAgICAgICAvLyBIaWRlIGxpc3RlbmVycyBmcm9tIG90aGVyIGNvbnRleHRzLgotICAgICAgICBp
ZiAoJmpzTGlzdGVuZXItPmlzb2xhdGVkV29ybGQoKSAhPSAmY3VycmVudFdvcmxkKCZzdGF0ZSkp
Ci0gICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICBKU09iamVjdCogZnVuY3Rpb24gPSBq
c0xpc3RlbmVyLT5qc0Z1bmN0aW9uKGRvY3VtZW50KTsKLSAgICAgICAgaWYgKCFmdW5jdGlvbikK
LSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIEpTT2JqZWN0KiBsaXN0ZW5lckVudHJ5
ID0gY29uc3RydWN0RW1wdHlPYmplY3QoJnN0YXRlKTsKLSAgICAgICAgbGlzdGVuZXJFbnRyeS0+
cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZzdGF0ZSwgImxpc3RlbmVyIiks
IGZ1bmN0aW9uKTsKLSAgICAgICAgbGlzdGVuZXJFbnRyeS0+cHV0RGlyZWN0KHZtLCBJZGVudGlm
aWVyOjpmcm9tU3RyaW5nKCZzdGF0ZSwgInVzZUNhcHR1cmUiKSwganNCb29sZWFuKGxpc3RlbmVy
SW5mby5ldmVudExpc3RlbmVyVmVjdG9yW2ldLT51c2VDYXB0dXJlKCkpKTsKLSAgICAgICAgcmVz
dWx0LT5wdXREaXJlY3RJbmRleCgmc3RhdGUsIG91dHB1dEluZGV4KyssIEpTVmFsdWUobGlzdGVu
ZXJFbnRyeSkpOwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsK
LSAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotSlNWYWx1ZSBKU0NvbW1hbmRMaW5lQVBJ
SG9zdDo6Z2V0RXZlbnRMaXN0ZW5lcnMoRXhlY1N0YXRlJiBzdGF0ZSkKLXsKLSAgICBpZiAoc3Rh
dGUuYXJndW1lbnRDb3VudCgpIDwgMSkKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0K
LSAgICBWTSYgdm0gPSBzdGF0ZS52bSgpOwotICAgIEpTVmFsdWUgdmFsdWUgPSBzdGF0ZS51bmNo
ZWNrZWRBcmd1bWVudCgwKTsKLSAgICBpZiAoIXZhbHVlLmlzT2JqZWN0KCkgfHwgdmFsdWUuaXNO
dWxsKCkpCi0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotCi0gICAgTm9kZSogbm9kZSA9
IEpTTm9kZTo6dG9XcmFwcGVkKHZtLCB2YWx1ZSk7Ci0gICAgaWYgKCFub2RlKQotICAgICAgICBy
ZXR1cm4ganNVbmRlZmluZWQoKTsKLQotICAgIFZlY3RvcjxFdmVudExpc3RlbmVySW5mbz4gbGlz
dGVuZXJzQXJyYXk7Ci0gICAgd3JhcHBlZCgpLmdldEV2ZW50TGlzdGVuZXJzSW1wbChub2RlLCBs
aXN0ZW5lcnNBcnJheSk7Ci0KLSAgICBKU09iamVjdCogcmVzdWx0ID0gY29uc3RydWN0RW1wdHlP
YmplY3QoJnN0YXRlKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RlbmVyc0FycmF5
LnNpemUoKTsgKytpKSB7Ci0gICAgICAgIEpTQXJyYXkqIGxpc3RlbmVycyA9IGdldEpTTGlzdGVu
ZXJGdW5jdGlvbnMoc3RhdGUsICZub2RlLT5kb2N1bWVudCgpLCBsaXN0ZW5lcnNBcnJheVtpXSk7
Ci0gICAgICAgIGlmICghbGlzdGVuZXJzLT5sZW5ndGgoKSkKLSAgICAgICAgICAgIGNvbnRpbnVl
OwotICAgICAgICBBdG9taWNTdHJpbmcgZXZlbnRUeXBlID0gbGlzdGVuZXJzQXJyYXlbaV0uZXZl
bnRUeXBlOwotICAgICAgICByZXN1bHQtPnB1dERpcmVjdChzdGF0ZS52bSgpLCBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKCZzdGF0ZSwgZXZlbnRUeXBlLmltcGwoKSksIEpTVmFsdWUobGlzdGVuZXJz
KSk7Ci0gICAgfQotCi0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotSlNWYWx1ZSBKU0NvbW1hbmRM
aW5lQVBJSG9zdDo6aW5zcGVjdChFeGVjU3RhdGUmIHN0YXRlKQotewotICAgIGlmIChzdGF0ZS5h
cmd1bWVudENvdW50KCkgPCAyKQotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICB3
cmFwcGVkKCkuaW5zcGVjdEltcGwoSW5zcGVjdG9yOjp0b0luc3BlY3RvclZhbHVlKHN0YXRlLCBz
dGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKSksCi0gICAgICAgIEluc3BlY3Rvcjo6dG9JbnNwZWN0
b3JWYWx1ZShzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkpKTsKLSAgICByZXR1cm4g
anNVbmRlZmluZWQoKTsKLX0KLQotSlNWYWx1ZSBKU0NvbW1hbmRMaW5lQVBJSG9zdDo6ZGF0YWJh
c2VJZChFeGVjU3RhdGUmIHN0YXRlKQotewotICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkg
PCAxKQotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLQotICAgIFZNJiB2bSA9IHN0YXRl
LnZtKCk7Ci0gICAgRGF0YWJhc2UqIGRhdGFiYXNlID0gSlNEYXRhYmFzZTo6dG9XcmFwcGVkKHZt
LCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKSk7Ci0gICAgaWYgKGRhdGFiYXNlKQotICAgICAg
ICByZXR1cm4ganNTdHJpbmdXaXRoQ2FjaGUoJnN0YXRlLCB3cmFwcGVkKCkuZGF0YWJhc2VJZElt
cGwoZGF0YWJhc2UpKTsKLQotICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotfQotCi1KU1ZhbHVl
IEpTQ29tbWFuZExpbmVBUElIb3N0OjpzdG9yYWdlSWQoRXhlY1N0YXRlJiBzdGF0ZSkKLXsKLSAg
ICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpIDwgMSkKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7Ci0KLSAgICBWTSYgdm0gPSBzdGF0ZS52bSgpOwotICAgIFN0b3JhZ2UqIHN0b3JhZ2Ug
PSBKU1N0b3JhZ2U6OnRvV3JhcHBlZCh2bSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkpOwot
ICAgIGlmIChzdG9yYWdlKQotICAgICAgICByZXR1cm4ganNTdHJpbmdXaXRoQ2FjaGUoJnN0YXRl
LCB3cmFwcGVkKCkuc3RvcmFnZUlkSW1wbChzdG9yYWdlKSk7Ci0KLSAgICByZXR1cm4ganNVbmRl
ZmluZWQoKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0T2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0T2JqZWN0LmgJKHJldmlzaW9uIDIxOTYy
MykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydE9iamVjdC5oCSh3
b3JraW5nIGNvcHkpCkBAIC00OSw0ICs0OSwxNCBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBDb252ZXJ0
ZXI8SURMT2JqZWN0PiA6CiAgICAgfQogfTsKIAordGVtcGxhdGU8PiBzdHJ1Y3QgSlNDb252ZXJ0
ZXI8SURMT2JqZWN0PiB7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIG5lZWRzU3RhdGUgPSBm
YWxzZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgbmVlZHNHbG9iYWxPYmplY3QgPSBmYWxz
ZTsKKworICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgY29udmVydChjb25zdCBKU0M6OlN0cm9uZzxK
U0M6OkpTT2JqZWN0PiYgdmFsdWUpCisgICAgeworICAgICAgICByZXR1cm4gdmFsdWUuZ2V0KCk7
CisgICAgfQorfTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0NvbW1hbmRMaW5lQVBJSG9zdC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0NvbW1hbmRMaW5lQVBJSG9zdC5jcHAJKHJldmlzaW9uIDIxOTYy
MykKKysrIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db21tYW5kTGluZUFQSUhvc3QuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zMiwxNyArMzIsMjEgQEAKICNpbmNsdWRlICJDb21tYW5kTGluZUFQ
SUhvc3QuaCIKIAogI2luY2x1ZGUgIkRhdGFiYXNlLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIK
ICNpbmNsdWRlICJJbnNwZWN0b3JET01BZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckRPTVN0
b3JhZ2VBZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckRhdGFiYXNlQWdlbnQuaCIKICNpbmNs
dWRlICJKU0NvbW1hbmRMaW5lQVBJSG9zdC5oIgogI2luY2x1ZGUgIkpTRE9NR2xvYmFsT2JqZWN0
LmgiCisjaW5jbHVkZSAiSlNFdmVudExpc3RlbmVyLmgiCiAjaW5jbHVkZSAiUGFzdGVib2FyZC5o
IgogI2luY2x1ZGUgIlN0b3JhZ2UuaCIKKyNpbmNsdWRlIDxiaW5kaW5ncy9TY3JpcHRWYWx1ZS5o
PgogI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JWYWx1ZXMuaD4KICNpbmNsdWRlIDxpbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvckFnZW50Lmg+CiAjaW5jbHVkZSA8aW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTQ0lubGluZXMu
aD4KKyNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
ICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKQEAgLTc0LDIzICs3OCw2NiBAQCB2b2lk
IENvbW1hbmRMaW5lQVBJSG9zdDo6ZGlzY29ubmVjdCgpCiAgICAgbV9kYXRhYmFzZUFnZW50ID0g
bnVsbHB0cjsKIH0KIAotdm9pZCBDb21tYW5kTGluZUFQSUhvc3Q6Omluc3BlY3RJbXBsKFJlZlB0
cjxJbnNwZWN0b3JWYWx1ZT4mJiBvYmplY3QsIFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4mJiBoaW50
cykKK3ZvaWQgQ29tbWFuZExpbmVBUElIb3N0OjppbnNwZWN0KEpTQzo6RXhlY1N0YXRlJiBzdGF0
ZSwgSlNDOjpKU1ZhbHVlIHZhbHVlVG9JbnNwZWN0LCBKU0M6OkpTVmFsdWUgaGludHNWYWx1ZSkK
IHsKICAgICBpZiAoIW1faW5zcGVjdG9yQWdlbnQpCiAgICAgICAgIHJldHVybjsKIAogICAgIFJl
ZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGhpbnRzT2JqZWN0OwotICAgIGlmICghaGludHMtPmFzT2Jq
ZWN0KGhpbnRzT2JqZWN0KSkKKyAgICBpZiAoIUluc3BlY3Rvcjo6dG9JbnNwZWN0b3JWYWx1ZShz
dGF0ZSwgaGludHNWYWx1ZSktPmFzT2JqZWN0KGhpbnRzT2JqZWN0KSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgYXV0byByZW1vdGVPYmplY3QgPSBCaW5kaW5nVHJhaXRzPEluc3BlY3Rvcjo6UHJv
dG9jb2w6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD46OnJ1bnRpbWVDYXN0KFdURk1vdmUob2JqZWN0
KSk7CisgICAgYXV0byByZW1vdGVPYmplY3QgPSBCaW5kaW5nVHJhaXRzPEluc3BlY3Rvcjo6UHJv
dG9jb2w6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD46OnJ1bnRpbWVDYXN0KEluc3BlY3Rvcjo6dG9J
bnNwZWN0b3JWYWx1ZShzdGF0ZSwgdmFsdWVUb0luc3BlY3QpKTsKICAgICBtX2luc3BlY3RvckFn
ZW50LT5pbnNwZWN0KFdURk1vdmUocmVtb3RlT2JqZWN0KSwgV1RGTW92ZShoaW50c09iamVjdCkp
OwogfQogCi12b2lkIENvbW1hbmRMaW5lQVBJSG9zdDo6Z2V0RXZlbnRMaXN0ZW5lcnNJbXBsKE5v
ZGUqIG5vZGUsIFZlY3RvcjxFdmVudExpc3RlbmVySW5mbz4mIGxpc3RlbmVyc0FycmF5KQorc3Rh
dGljIFZlY3RvcjxDb21tYW5kTGluZUFQSUhvc3Q6Okxpc3RlbmVyRW50cnk+IGxpc3RlbmVyRW50
cmllc0Zyb21MaXN0ZW5lckluZm8oRXhlY1N0YXRlJiBzdGF0ZSwgRG9jdW1lbnQmIGRvY3VtZW50
LCBjb25zdCBFdmVudExpc3RlbmVySW5mbyYgbGlzdGVuZXJJbmZvKQoreworICAgIFZNJiB2bSA9
IHN0YXRlLnZtKCk7CisKKyAgICBWZWN0b3I8Q29tbWFuZExpbmVBUElIb3N0OjpMaXN0ZW5lckVu
dHJ5PiBlbnRpcmVzOworICAgIGZvciAoYXV0byYgZXZlbnRMaXN0ZW5lciA6IGxpc3RlbmVySW5m
by5ldmVudExpc3RlbmVyVmVjdG9yKSB7CisgICAgICAgIGF1dG8ganNMaXN0ZW5lciA9IEpTRXZl
bnRMaXN0ZW5lcjo6Y2FzdCgmZXZlbnRMaXN0ZW5lci0+Y2FsbGJhY2soKSk7CisgICAgICAgIGlm
ICghanNMaXN0ZW5lcikgeworICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEhpZGUgbGlzdGVuZXJz
IGZyb20gb3RoZXIgY29udGV4dHMuCisgICAgICAgIGlmICgmanNMaXN0ZW5lci0+aXNvbGF0ZWRX
b3JsZCgpICE9ICZjdXJyZW50V29ybGQoJnN0YXRlKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOwor
CisgICAgICAgIGF1dG8gZnVuY3Rpb24gPSBqc0xpc3RlbmVyLT5qc0Z1bmN0aW9uKCZkb2N1bWVu
dCk7CisgICAgICAgIGlmICghZnVuY3Rpb24pCisgICAgICAgICAgICBjb250aW51ZTsKKworICAg
ICAgICBlbnRpcmVzLmFwcGVuZCh7IEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+KHZtLCBmdW5j
dGlvbiksIGV2ZW50TGlzdGVuZXItPnVzZUNhcHR1cmUoKSB9KTsKKyAgICB9CisKKyAgICByZXR1
cm4gZW50aXJlczsKK30KKworYXV0byBDb21tYW5kTGluZUFQSUhvc3Q6OmdldEV2ZW50TGlzdGVu
ZXJzKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgTm9kZSogbm9kZSkgLT4gRXZlbnRMaXN0ZW5lcnNS
ZWNvcmQKIHsKICAgICBpZiAobV9kb21BZ2VudCkKLSAgICAgICAgbV9kb21BZ2VudC0+Z2V0RXZl
bnRMaXN0ZW5lcnMobm9kZSwgbGlzdGVuZXJzQXJyYXksIGZhbHNlKTsKKyAgICAgICAgcmV0dXJu
IHsgfTsKKworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIFZlY3Rv
cjxFdmVudExpc3RlbmVySW5mbz4gbGlzdGVuZXJJbmZvQXJyYXk7CisgICAgbV9kb21BZ2VudC0+
Z2V0RXZlbnRMaXN0ZW5lcnMobm9kZSwgbGlzdGVuZXJJbmZvQXJyYXksIGZhbHNlKTsKKworICAg
IEV2ZW50TGlzdGVuZXJzUmVjb3JkIHJlc3VsdDsKKworICAgIGZvciAoYXV0byYgbGlzdGVuZXJJ
bmZvIDogbGlzdGVuZXJJbmZvQXJyYXkpIHsKKyAgICAgICAgYXV0byBlbnRyaWVzID0gbGlzdGVu
ZXJFbnRyaWVzRnJvbUxpc3RlbmVySW5mbyhzdGF0ZSwgbm9kZS0+ZG9jdW1lbnQoKSwgbGlzdGVu
ZXJJbmZvKTsKKyAgICAgICAgaWYgKGVudHJpZXMuaXNFbXB0eSgpKQorICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoeyBsaXN0ZW5lckluZm8uZXZlbnRUeXBlLCBX
VEZNb3ZlKGVudHJpZXMpIH0pOworICAgIH0KKworICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIHZv
aWQgQ29tbWFuZExpbmVBUElIb3N0OjpjbGVhckNvbnNvbGVNZXNzYWdlcygpCkBAIC0xMTYsMjMg
KzE2MywyOCBAQCB2b2lkIENvbW1hbmRMaW5lQVBJSG9zdDo6YWRkSW5zcGVjdGVkT2JqCiAgICAg
bV9pbnNwZWN0ZWRPYmplY3QgPSBXVEZNb3ZlKG9iamVjdCk7CiB9CiAKLUNvbW1hbmRMaW5lQVBJ
SG9zdDo6SW5zcGVjdGFibGVPYmplY3QqIENvbW1hbmRMaW5lQVBJSG9zdDo6aW5zcGVjdGVkT2Jq
ZWN0KCkKK0pTQzo6SlNWYWx1ZSBDb21tYW5kTGluZUFQSUhvc3Q6Omluc3BlY3RlZE9iamVjdChK
U0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCiB7Ci0gICAgcmV0dXJuIG1faW5zcGVjdGVkT2JqZWN0Lmdl
dCgpOworICAgIGlmICghbV9pbnNwZWN0ZWRPYmplY3QpCisgICAgICAgIHJldHVybiBqc1VuZGVm
aW5lZCgpOworCisgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9jaygmc3RhdGUpOworICAgIGF1dG8g
c2NyaXB0VmFsdWUgPSBtX2luc3BlY3RlZE9iamVjdC0+Z2V0KHN0YXRlKTsKKyAgICByZXR1cm4g
c2NyaXB0VmFsdWUgPyBzY3JpcHRWYWx1ZSA6IGpzVW5kZWZpbmVkKCk7CiB9CiAKLVN0cmluZyBD
b21tYW5kTGluZUFQSUhvc3Q6OmRhdGFiYXNlSWRJbXBsKERhdGFiYXNlKiBkYXRhYmFzZSkKK1N0
cmluZyBDb21tYW5kTGluZUFQSUhvc3Q6OmRhdGFiYXNlSWQoRGF0YWJhc2UqIGRhdGFiYXNlKQog
ewogICAgIGlmIChtX2RhdGFiYXNlQWdlbnQpCiAgICAgICAgIHJldHVybiBtX2RhdGFiYXNlQWdl
bnQtPmRhdGFiYXNlSWQoZGF0YWJhc2UpOwotICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICByZXR1
cm4geyB9OwogfQogCi1TdHJpbmcgQ29tbWFuZExpbmVBUElIb3N0OjpzdG9yYWdlSWRJbXBsKFN0
b3JhZ2UqIHN0b3JhZ2UpCitTdHJpbmcgQ29tbWFuZExpbmVBUElIb3N0OjpzdG9yYWdlSWQoU3Rv
cmFnZSogc3RvcmFnZSkKIHsKICAgICBpZiAobV9kb21TdG9yYWdlQWdlbnQpCiAgICAgICAgIHJl
dHVybiBtX2RvbVN0b3JhZ2VBZ2VudC0+c3RvcmFnZUlkKHN0b3JhZ2UpOwotICAgIHJldHVybiBT
dHJpbmcoKTsKKyAgICByZXR1cm4geyB9OwogfQogCiBKU1ZhbHVlIENvbW1hbmRMaW5lQVBJSG9z
dDo6d3JhcHBlcihFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29tbWFuZExpbmVBUElIb3N0LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbW1hbmRMaW5lQVBJSG9z
dC5oCShyZXZpc2lvbiAyMTk2MjMpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29tbWFu
ZExpbmVBUElIb3N0LmgJKHdvcmtpbmcgY29weSkKQEAgLTg4LDEzICs4OCwxOSBAQCBwdWJsaWM6
CiAgICAgICAgIHZpcnR1YWwgfkluc3BlY3RhYmxlT2JqZWN0KCkgeyB9CiAgICAgfTsKICAgICB2
b2lkIGFkZEluc3BlY3RlZE9iamVjdChzdGQ6OnVuaXF1ZV9wdHI8SW5zcGVjdGFibGVPYmplY3Q+
KTsKLSAgICBJbnNwZWN0YWJsZU9iamVjdCogaW5zcGVjdGVkT2JqZWN0KCk7Ci0gICAgdm9pZCBp
bnNwZWN0SW1wbChSZWZQdHI8SW5zcGVjdG9yOjpJbnNwZWN0b3JWYWx1ZT4mJiBvYmplY3RUb0lu
c3BlY3QsIFJlZlB0cjxJbnNwZWN0b3I6Okluc3BlY3RvclZhbHVlPiYmIGhpbnRzKTsKKyAgICBK
U0M6OkpTVmFsdWUgaW5zcGVjdGVkT2JqZWN0KEpTQzo6RXhlY1N0YXRlJik7CisgICAgdm9pZCBp
bnNwZWN0KEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpKU1ZhbHVlIG9iamVjdFRvSW5zcGVjdCwgSlND
OjpKU1ZhbHVlIGhpbnRzKTsKIAotICAgIHZvaWQgZ2V0RXZlbnRMaXN0ZW5lcnNJbXBsKE5vZGUq
LCBWZWN0b3I8RXZlbnRMaXN0ZW5lckluZm8+JiBsaXN0ZW5lcnNBcnJheSk7CisgICAgc3RydWN0
IExpc3RlbmVyRW50cnkgeworICAgICAgICBKU0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0PiBmdW5j
dGlvbjsKKyAgICAgICAgYm9vbCB1c2VDYXB0dXJlOworICAgIH07CisKKyAgICB1c2luZyBFdmVu
dExpc3RlbmVyc1JlY29yZCA9IFZlY3RvcjxXVEY6OktleVZhbHVlUGFpcjxTdHJpbmcsIFZlY3Rv
cjxMaXN0ZW5lckVudHJ5Pj4+OworICAgIEV2ZW50TGlzdGVuZXJzUmVjb3JkIGdldEV2ZW50TGlz
dGVuZXJzKEpTQzo6RXhlY1N0YXRlJiwgTm9kZSopOwogCi0gICAgU3RyaW5nIGRhdGFiYXNlSWRJ
bXBsKERhdGFiYXNlKik7Ci0gICAgU3RyaW5nIHN0b3JhZ2VJZEltcGwoU3RvcmFnZSopOworICAg
IFN0cmluZyBkYXRhYmFzZUlkKERhdGFiYXNlKik7CisgICAgU3RyaW5nIHN0b3JhZ2VJZChTdG9y
YWdlKik7CiAKICAgICBKU0M6OkpTVmFsdWUgd3JhcHBlcihKU0M6OkV4ZWNTdGF0ZSosIEpTRE9N
R2xvYmFsT2JqZWN0Kik7CiAgICAgdm9pZCBjbGVhckFsbFdyYXBwZXJzKCk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29tbWFuZExpbmVBUElIb3N0LmlkbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29tbWFuZExpbmVBUElIb3N0LmlkbAkocmV2aXNp
b24gMjE5NjIzKQorKysgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbW1hbmRMaW5lQVBJSG9z
dC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTM2LDkgKzM2LDE5IEBACiBdIGludGVyZmFjZSBDb21t
YW5kTGluZUFQSUhvc3QgewogICAgIHZvaWQgY2xlYXJDb25zb2xlTWVzc2FnZXMoKTsKICAgICB2
b2lkIGNvcHlUZXh0KERPTVN0cmluZyB0ZXh0KTsKLSAgICBbQ3VzdG9tXSB2b2lkIGluc3BlY3Qo
YW55IG9iamVjdElkLCBhbnkgaGludHMpOwotICAgIFtDdXN0b21dIGFueSBpbnNwZWN0ZWRPYmpl
Y3QoKTsKLSAgICBbQ3VzdG9tXSBBcnJheSBnZXRFdmVudExpc3RlbmVycyhOb2RlIG5vZGUpOwot
ICAgIFtDdXN0b21dIERPTVN0cmluZyBkYXRhYmFzZUlkKGFueSBkYXRhYmFzZSk7Ci0gICAgW0N1
c3RvbV0gRE9NU3RyaW5nIHN0b3JhZ2VJZChhbnkgc3RvcmFnZSk7CisKKyAgICBbQ2FsbFdpdGg9
U2NyaXB0U3RhdGVdIHZvaWQgaW5zcGVjdChhbnkgb2JqZWN0VG9JbnNwZWN0LCBhbnkgaGludHMp
OworICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0ZV0gYW55IGluc3BlY3RlZE9iamVjdCgpOworCisg
ICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRlXSByZWNvcmQ8RE9NU3RyaW5nLCBzZXF1ZW5jZTxMaXN0
ZW5lckVudHJ5Pj4gZ2V0RXZlbnRMaXN0ZW5lcnMoTm9kZT8gbm9kZSk7CisKKyAgICBET01TdHJp
bmcgZGF0YWJhc2VJZChEYXRhYmFzZT8gZGF0YWJhc2UpOworICAgIERPTVN0cmluZyBzdG9yYWdl
SWQoU3RvcmFnZT8gc3RvcmFnZSk7Cit9OworCitbCisgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QK
K10gZGljdGlvbmFyeSBMaXN0ZW5lckVudHJ5IHsKKyAgICByZXF1aXJlZCBvYmplY3QgZnVuY3Rp
b247CisgICAgcmVxdWlyZWQgYm9vbGVhbiB1c2VDYXB0dXJlOwogfTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>