<?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>204008</bug_id>
          
          <creation_ts>2019-11-08 09:57:44 -0800</creation_ts>
          <short_desc>StyleResolver state should store user agent appearance style as RenderStyle</short_desc>
          <delta_ts>2019-11-08 13:11:12 -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>CSS</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>pdr</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1588691</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-11-08 09:57:44 -0800</bug_when>
    <thetext>Simplify.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588694</commentid>
    <comment_count>1</comment_count>
      <attachid>383137</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-11-08 10:05:23 -0800</bug_when>
    <thetext>Created attachment 383137
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588699</commentid>
    <comment_count>2</comment_count>
      <attachid>383139</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-11-08 10:07:20 -0800</bug_when>
    <thetext>Created attachment 383139
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588778</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-08 13:09:26 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 383139:

inspector/model/remote-object-weak-collection.html bug 204016 (authors: drousso@apple.com and joepeck@webkit.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588779</commentid>
    <comment_count>4</comment_count>
      <attachid>383139</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-08 13:10:17 -0800</bug_when>
    <thetext>Comment on attachment 383139
patch

Clearing flags on attachment: 383139

Committed r252255: &lt;https://trac.webkit.org/changeset/252255&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588780</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-08 13:10:19 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588784</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-11-08 13:11:12 -0800</bug_when>
    <thetext>&lt;rdar://problem/57031917&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383137</attachid>
            <date>2019-11-08 10:05:23 -0800</date>
            <delta_ts>2019-11-08 10:07:20 -0800</delta_ts>
            <desc>patch</desc>
            <filename>user-agent-appearance-object.patch</filename>
            <type>text/plain</type>
            <size>20059</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiZTVmM2VkOTFjYS4uMzA1MmFhZjhjYzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NiBAQAorMjAxOS0xMS0wOCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgU3R5bGVSZXNvbHZlciBzdGF0ZSBzaG91bGQgc3RvcmUgdXNlciBhZ2VudCBh
cHBlYXJhbmNlIHN0eWxlIGFzIFJlbmRlclN0eWxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQwMDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBHZW5lcmF0ZSBhbmQgcGFzcyBhcm91bmQgdXNlciBhZ2Vu
dCBzdHlsZSBhcyBSZW5kZXJTdHlsZSBmb3IgYXBwZXJhbmNlIGNvbXB1dGF0aW9uIGluc3RlYWQK
KyAgICAgICAgb2YgYXdrd2FyZGx5IHBhc3NpbmcgYXJvdW5kIHNlcGFyYXRlIHByb3BlcnR5IHZh
bHVlcy4KKworICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZVJlc29sdmVyOjpzdHlsZUZvcktleWZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
UmVzb2x2ZXI6OnBzZXVkb1N0eWxlRm9yRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTdHls
ZVJlc29sdmVyOjphZGp1c3RSZW5kZXJTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJl
c29sdmVyOjphcHBseU1hdGNoZWRQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
UmVzb2x2ZXI6OlN0YXRlOjpjYWNoZUJvcmRlckFuZEJhY2tncm91bmQpOiBEZWxldGVkLgorICAg
ICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29s
dmVyOjplbGVtZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OlN0
YXRlOjp1c2VyQWdlbnRBcHBlYXJhbmNlU3R5bGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U3R5bGVSZXNvbHZlcjo6U3RhdGU6OnNldFVzZXJBZ2VudEFwcGVhcmFuY2VTdHlsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjplbGVtZW50KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OlN0YXRlOjpoYXNVQUFwcGVhcmFuY2UgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6U3RhdGU6OmJvcmRlckRh
dGEgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6U3Rh
dGU6OmJhY2tncm91bmREYXRhIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlUmVzb2x2ZXI6OlN0YXRlOjpiYWNrZ3JvdW5kQ29sb3IgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUaGVtZTo6YWRqdXN0U3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6Omlz
Q29udHJvbFN0eWxlZCBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lLmg6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLmg6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlclRoZW1lSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVJT1M6
OmlzQ29udHJvbFN0eWxlZCBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1l
TWFjLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OmlzQ29udHJvbFN0eWxlZCBjb25zdCk6CisgICAgICAg
ICogc3R5bGUvU3R5bGVCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpCdWls
ZGVyOjpCdWlsZGVyKToKKworICAgICAgICBBbGxvdyBwcm92aWRpbmcgc3R5bGUgc2VwYXJhdGVs
eSBmcm9tIFN0eWxlUmVzb2x2ZXIgc3RhdGUuCisKKyAgICAgICAgKiBzdHlsZS9TdHlsZUJ1aWxk
ZXIuaDoKKwogMjAxOS0xMS0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAg
ICAgICAgIFBvcnQgV29ya2VyIHRvIHRoZSBIVE1MNSBldmVudCBsb29wCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVSZXNvbHZlci5jcHAKaW5kZXggNmRlMjNhNTkwOTQuLjIzZTQxM2VlNzRiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC05NywxNiArOTcsNiBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLWlubGluZSB2b2lkIFN0
eWxlUmVzb2x2ZXI6OlN0YXRlOjpjYWNoZUJvcmRlckFuZEJhY2tncm91bmQoKQotewotICAgIG1f
aGFzVUFBcHBlYXJhbmNlID0gbV9zdHlsZS0+aGFzQXBwZWFyYW5jZSgpOwotICAgIGlmIChtX2hh
c1VBQXBwZWFyYW5jZSkgewotICAgICAgICBtX2JvcmRlckRhdGEgPSBtX3N0eWxlLT5ib3JkZXIo
KTsKLSAgICAgICAgbV9iYWNrZ3JvdW5kRGF0YSA9IG1fc3R5bGUtPmJhY2tncm91bmRMYXllcnMo
KTsKLSAgICAgICAgbV9iYWNrZ3JvdW5kQ29sb3IgPSBtX3N0eWxlLT5iYWNrZ3JvdW5kQ29sb3Io
KTsKLSAgICB9Ci19Ci0KIGlubGluZSB2b2lkIFN0eWxlUmVzb2x2ZXI6OlN0YXRlOjpjbGVhcigp
CiB7CiAgICAgbV9lbGVtZW50ID0gbnVsbHB0cjsKQEAgLTI4NSw3ICsyNzUsNyBAQCBFbGVtZW50
U3R5bGUgU3R5bGVSZXNvbHZlcjo6c3R5bGVGb3JFbGVtZW50KGNvbnN0IEVsZW1lbnQmIGVsZW1l
bnQsIGNvbnN0IFJlbmRlcgogICAgIGFwcGx5TWF0Y2hlZFByb3BlcnRpZXMoY29sbGVjdG9yLm1h
dGNoUmVzdWx0KCksIGVsZW1lbnQpOwogCiAgICAgLy8gQ2xlYW4gdXAgb3VyIHN0eWxlIG9iamVj
dCdzIGRpc3BsYXkgYW5kIHRleHQgZGVjb3JhdGlvbnMgKGFtb25nIG90aGVyIGZpeHVwcykuCi0g
ICAgYWRqdXN0UmVuZGVyU3R5bGUoKnN0YXRlLnN0eWxlKCksICpzdGF0ZS5wYXJlbnRTdHlsZSgp
LCBwYXJlbnRCb3hTdHlsZSwgJmVsZW1lbnQpOworICAgIGFkanVzdFJlbmRlclN0eWxlKCpzdGF0
ZS5zdHlsZSgpLCAqc3RhdGUucGFyZW50U3R5bGUoKSwgcGFyZW50Qm94U3R5bGUsICZlbGVtZW50
LCBzdGF0ZS51c2VyQWdlbnRBcHBlYXJhbmNlU3R5bGUoKSk7CiAKICAgICBpZiAoc3RhdGUuc3R5
bGUoKS0+aGFzVmlld3BvcnRVbml0cygpKQogICAgICAgICBkb2N1bWVudCgpLnNldEhhc1N0eWxl
V2l0aFZpZXdwb3J0VW5pdHMoKTsKQEAgLTMxMyw3ICszMDMsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8
UmVuZGVyU3R5bGU+IFN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yS2V5ZnJhbWUoY29uc3QgUmVuZGVy
U3R5bGUqCiAgICAgU3R5bGU6OkJ1aWxkZXIgYnVpbGRlcigqdGhpcywgcmVzdWx0LCB7IFN0eWxl
OjpDYXNjYWRlTGV2ZWw6OkF1dGhvciB9KTsKICAgICBidWlsZGVyLmFwcGx5QWxsUHJvcGVydGll
cygpOwogCi0gICAgYWRqdXN0UmVuZGVyU3R5bGUoKnN0YXRlLnN0eWxlKCksICpzdGF0ZS5wYXJl
bnRTdHlsZSgpLCBudWxscHRyLCBudWxscHRyKTsKKyAgICBhZGp1c3RSZW5kZXJTdHlsZSgqc3Rh
dGUuc3R5bGUoKSwgKnN0YXRlLnBhcmVudFN0eWxlKCksIG51bGxwdHIsIG51bGxwdHIsIHN0YXRl
LnVzZXJBZ2VudEFwcGVhcmFuY2VTdHlsZSgpKTsKIAogICAgIC8vIEFkZCBhbGwgdGhlIGFuaW1h
dGluZyBwcm9wZXJ0aWVzIHRvIHRoZSBrZXlmcmFtZS4KICAgICB1bnNpZ25lZCBwcm9wZXJ0eUNv
dW50ID0ga2V5ZnJhbWUtPnByb3BlcnRpZXMoKS5wcm9wZXJ0eUNvdW50KCk7CkBAIC00NjksNyAr
NDU5LDcgQEAgc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0eWxlPiBTdHlsZVJlc29sdmVyOjpwc2V1
ZG9TdHlsZUZvckVsZW1lbnQoY29uc3QgRWxlbWVudCYKICAgICBhcHBseU1hdGNoZWRQcm9wZXJ0
aWVzKGNvbGxlY3Rvci5tYXRjaFJlc3VsdCgpLCBlbGVtZW50KTsKIAogICAgIC8vIENsZWFuIHVw
IG91ciBzdHlsZSBvYmplY3QncyBkaXNwbGF5IGFuZCB0ZXh0IGRlY29yYXRpb25zIChhbW9uZyBv
dGhlciBmaXh1cHMpLgotICAgIGFkanVzdFJlbmRlclN0eWxlKCpzdGF0ZS5zdHlsZSgpLCAqbV9z
dGF0ZS5wYXJlbnRTdHlsZSgpLCBwYXJlbnRCb3hTdHlsZSwgbnVsbHB0cik7CisgICAgYWRqdXN0
UmVuZGVyU3R5bGUoKnN0YXRlLnN0eWxlKCksICptX3N0YXRlLnBhcmVudFN0eWxlKCksIHBhcmVu
dEJveFN0eWxlLCBudWxscHRyLCBzdGF0ZS51c2VyQWdlbnRBcHBlYXJhbmNlU3R5bGUoKSk7CiAK
ICAgICBpZiAoc3RhdGUuc3R5bGUoKS0+aGFzVmlld3BvcnRVbml0cygpKQogICAgICAgICBkb2N1
bWVudCgpLnNldEhhc1N0eWxlV2l0aFZpZXdwb3J0VW5pdHMoKTsKQEAgLTc3OSw3ICs3NjksNyBA
QCBib29sIFN0eWxlUmVzb2x2ZXI6OmFkanVzdFJlbmRlclN0eWxlRm9yVGV4dEF1dG9zaXppbmco
UmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdAogfQogI2VuZGlmCiAKLXZvaWQgU3R5bGVSZXNvbHZl
cjo6YWRqdXN0UmVuZGVyU3R5bGUoUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBSZW5kZXJTdHls
ZSYgcGFyZW50U3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlKiBwYXJlbnRCb3hTdHlsZSwgY29uc3Qg
RWxlbWVudCogZWxlbWVudCkKK3ZvaWQgU3R5bGVSZXNvbHZlcjo6YWRqdXN0UmVuZGVyU3R5bGUo
UmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSYgcGFyZW50U3R5bGUsIGNvbnN0
IFJlbmRlclN0eWxlKiBwYXJlbnRCb3hTdHlsZSwgY29uc3QgRWxlbWVudCogZWxlbWVudCwgY29u
c3QgUmVuZGVyU3R5bGUqIHVzZXJBZ2VudEFwcGVhcmFuY2VTdHlsZSkKIHsKICAgICAvLyBJZiB0
aGUgY29tcG9zZWQgdHJlZSBwYXJlbnQgaGFzIGRpc3BsYXk6Y29udGVudHMsIHRoZSBwYXJlbnQg
Ym94IHN0eWxlIHdpbGwgYmUgZGlmZmVyZW50IGZyb20gdGhlIHBhcmVudCBzdHlsZS4KICAgICAv
LyBXZSBkb24ndCBoYXZlIGl0IHdoZW4gcmVzb2x2aW5nIGNvbXB1dGVkIHN0eWxlIGZvciBkaXNw
bGF5Om5vbmUgc3VidHJlZS4gVXNlIHBhcmVudCBzdHlsZSBmb3IgYWRqdXN0bWVudHMgaW4gdGhh
dCBjYXNlLgpAQCAtOTk5LDcgKzk4OSw3IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6YWRqdXN0UmVu
ZGVyU3R5bGUoUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSYgcGFyCiAKICAg
ICAvLyBMZXQgdGhlIHRoZW1lIGFsc28gaGF2ZSBhIGNyYWNrIGF0IGFkanVzdGluZyB0aGUgc3R5
bGUuCiAgICAgaWYgKHN0eWxlLmhhc0FwcGVhcmFuY2UoKSkKLSAgICAgICAgUmVuZGVyVGhlbWU6
OnNpbmdsZXRvbigpLmFkanVzdFN0eWxlKCp0aGlzLCBzdHlsZSwgZWxlbWVudCwgbV9zdGF0ZS5o
YXNVQUFwcGVhcmFuY2UoKSwgbV9zdGF0ZS5ib3JkZXJEYXRhKCksIG1fc3RhdGUuYmFja2dyb3Vu
ZERhdGEoKSwgbV9zdGF0ZS5iYWNrZ3JvdW5kQ29sb3IoKSk7CisgICAgICAgIFJlbmRlclRoZW1l
OjpzaW5nbGV0b24oKS5hZGp1c3RTdHlsZSgqdGhpcywgc3R5bGUsIGVsZW1lbnQsIHVzZXJBZ2Vu
dEFwcGVhcmFuY2VTdHlsZSk7CiAKICAgICAvLyBJZiB3ZSBoYXZlIGZpcnN0LWxldHRlciBwc2V1
ZG8gc3R5bGUsIGRvIG5vdCBzaGFyZSB0aGlzIHN0eWxlLgogICAgIGlmIChzdHlsZS5oYXNQc2V1
ZG9TdHlsZShQc2V1ZG9JZDo6Rmlyc3RMZXR0ZXIpKQpAQCAtMTEzOCwxNCArMTEyOCwxNCBAQCB2
b2lkIFN0eWxlUmVzb2x2ZXI6OmFwcGx5TWF0Y2hlZFByb3BlcnRpZXMoY29uc3QgTWF0Y2hSZXN1
bHQmIG1hdGNoUmVzdWx0LCBjb25zdAogICAgIH0KIAogICAgIGlmIChlbGVtZW50VHlwZUhhc0Fw
cGVhcmFuY2VGcm9tVUFTdHlsZShlbGVtZW50KSkgewotICAgICAgICAvLyBGSVhNRTogVGhpcyBp
cyBzdWNoIGEgaGFjay4KICAgICAgICAgLy8gRmluZCBvdXQgaWYgdGhlcmUncyBhIC13ZWJraXQt
YXBwZWFyYW5jZSBwcm9wZXJ0eSBpbiBlZmZlY3QgZnJvbSB0aGUgVUEgc2hlZXQuCiAgICAgICAg
IC8vIElmIHNvLCB3ZSBjYWNoZSB0aGUgYm9yZGVyIGFuZCBiYWNrZ3JvdW5kIHN0eWxlcyBzbyB0
aGF0IFJlbmRlclRoZW1lOjphZGp1c3RTdHlsZSgpCiAgICAgICAgIC8vIGNhbiBsb29rIGF0IHRo
ZW0gbGF0ZXIgdG8gZmlndXJlIG91dCBpZiB0aGlzIGlzIGEgc3R5bGVkIGZvcm0gY29udHJvbCBv
ciBub3QuCi0gICAgICAgIFN0eWxlOjpCdWlsZGVyIGJ1aWxkZXIoKnRoaXMsIG1hdGNoUmVzdWx0
LCB7IFN0eWxlOjpDYXNjYWRlTGV2ZWw6OlVzZXJBZ2VudCB9LCBpbmNsdWRlZFByb3BlcnRpZXMp
OworICAgICAgICBhdXRvIHVzZXJBZ2VudFN0eWxlID0gUmVuZGVyU3R5bGU6OmNsb25lUHRyKHN0
eWxlKTsKKyAgICAgICAgU3R5bGU6OkJ1aWxkZXIgYnVpbGRlcigqdXNlckFnZW50U3R5bGUsICp0
aGlzLCBtYXRjaFJlc3VsdCwgeyBTdHlsZTo6Q2FzY2FkZUxldmVsOjpVc2VyQWdlbnQgfSk7CiAg
ICAgICAgIGJ1aWxkZXIuYXBwbHlBbGxQcm9wZXJ0aWVzKCk7CiAKLSAgICAgICAgc3RhdGUuY2Fj
aGVCb3JkZXJBbmRCYWNrZ3JvdW5kKCk7CisgICAgICAgIHN0YXRlLnNldFVzZXJBZ2VudEFwcGVh
cmFuY2VTdHlsZShXVEZNb3ZlKHVzZXJBZ2VudFN0eWxlKSk7CiAgICAgfQogCiAgICAgU3R5bGU6
OkJ1aWxkZXIgYnVpbGRlcigqdGhpcywgbWF0Y2hSZXN1bHQsIFN0eWxlOjphbGxDYXNjYWRlTGV2
ZWxzKCksIGluY2x1ZGVkUHJvcGVydGllcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvU3R5bGVSZXNvbHZlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaApp
bmRleCA5YzgyMDVhZDc4OC4uN2FmNGQ5MjcwY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVJlc29sdmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2
ZXIuaApAQCAtMTE3LDcgKzExNyw3IEBAIHB1YmxpYzoKICAgICBSZW5kZXJTdHlsZSogc3R5bGUo
KSBjb25zdCB7IHJldHVybiBtX3N0YXRlLnN0eWxlKCk7IH0KICAgICBjb25zdCBSZW5kZXJTdHls
ZSogcGFyZW50U3R5bGUoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlLnBhcmVudFN0eWxlKCk7IH0K
ICAgICBjb25zdCBSZW5kZXJTdHlsZSogcm9vdEVsZW1lbnRTdHlsZSgpIGNvbnN0IHsgcmV0dXJu
IG1fc3RhdGUucm9vdEVsZW1lbnRTdHlsZSgpOyB9Ci0gICAgY29uc3QgRWxlbWVudCogZWxlbWVu
dCgpIHsgcmV0dXJuIG1fc3RhdGUuZWxlbWVudCgpOyB9CisgICAgY29uc3QgRWxlbWVudCogZWxl
bWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGUuZWxlbWVudCgpOyB9CiAgICAgRG9jdW1lbnQm
IGRvY3VtZW50KCkgeyByZXR1cm4gbV9kb2N1bWVudDsgfQogICAgIGNvbnN0IERvY3VtZW50JiBk
b2N1bWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnQ7IH0KICAgICBjb25zdCBTZXR0aW5n
cyYgc2V0dGluZ3MoKSBjb25zdCB7IHJldHVybiBtX2RvY3VtZW50LnNldHRpbmdzKCk7IH0KQEAg
LTE4Myw3ICsxODMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhckNhY2hlZERlY2xhcmF0aW9u
c0FmZmVjdGVkQnlWaWV3cG9ydFVuaXRzKCk7CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBhZGp1c3RS
ZW5kZXJTdHlsZShSZW5kZXJTdHlsZSYsIGNvbnN0IFJlbmRlclN0eWxlJiBwYXJlbnRTdHlsZSwg
Y29uc3QgUmVuZGVyU3R5bGUqIHBhcmVudEJveFN0eWxlLCBjb25zdCBFbGVtZW50Kik7CisgICAg
dm9pZCBhZGp1c3RSZW5kZXJTdHlsZShSZW5kZXJTdHlsZSYsIGNvbnN0IFJlbmRlclN0eWxlJiBw
YXJlbnRTdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUqIHBhcmVudEJveFN0eWxlLCBjb25zdCBFbGVt
ZW50KiwgY29uc3QgUmVuZGVyU3R5bGUqIHVzZXJBZ2VudFN0eWxlKTsKICAgICB2b2lkIGFkanVz
dFJlbmRlclN0eWxlRm9yU2l0ZVNwZWNpZmljUXVpcmtzKFJlbmRlclN0eWxlJiwgY29uc3QgRWxl
bWVudCYpOwogCiAgICAgZW51bSBjbGFzcyBVc2VNYXRjaGVkRGVjbGFyYXRpb25zQ2FjaGUgeyBZ
ZXMsIE5vIH07CkBAIC0yMTUsMTEgKzIxNSw4IEBAIHB1YmxpYzoKICAgICAgICAgY29uc3QgUmVu
ZGVyU3R5bGUqIHBhcmVudFN0eWxlKCkgY29uc3QgeyByZXR1cm4gbV9wYXJlbnRTdHlsZTsgfQog
ICAgICAgICBjb25zdCBSZW5kZXJTdHlsZSogcm9vdEVsZW1lbnRTdHlsZSgpIGNvbnN0IHsgcmV0
dXJuIG1fcm9vdEVsZW1lbnRTdHlsZTsgfQogCi0gICAgICAgIHZvaWQgY2FjaGVCb3JkZXJBbmRC
YWNrZ3JvdW5kKCk7Ci0gICAgICAgIGJvb2wgaGFzVUFBcHBlYXJhbmNlKCkgY29uc3QgeyByZXR1
cm4gbV9oYXNVQUFwcGVhcmFuY2U7IH0KLSAgICAgICAgQm9yZGVyRGF0YSBib3JkZXJEYXRhKCkg
Y29uc3QgeyByZXR1cm4gbV9ib3JkZXJEYXRhOyB9Ci0gICAgICAgIEZpbGxMYXllciBiYWNrZ3Jv
dW5kRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2dyb3VuZERhdGE7IH0KLSAgICAgICAgY29u
c3QgQ29sb3ImIGJhY2tncm91bmRDb2xvcigpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2dyb3VuZENv
bG9yOyB9CisgICAgICAgIGNvbnN0IFJlbmRlclN0eWxlKiB1c2VyQWdlbnRBcHBlYXJhbmNlU3R5
bGUoKSBjb25zdCB7IHJldHVybiBtX3VzZXJBZ2VudEFwcGVhcmFuY2VTdHlsZS5nZXQoKTsgfQor
ICAgICAgICB2b2lkIHNldFVzZXJBZ2VudEFwcGVhcmFuY2VTdHlsZShzdGQ6OnVuaXF1ZV9wdHI8
UmVuZGVyU3R5bGU+IHN0eWxlKSB7IG1fdXNlckFnZW50QXBwZWFyYW5jZVN0eWxlID0gV1RGTW92
ZShzdHlsZSk7IH0KIAogICAgICAgICBjb25zdCBTZWxlY3RvckZpbHRlciogc2VsZWN0b3JGaWx0
ZXIoKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdG9yRmlsdGVyOyB9CiAgICAgICAgIApAQCAtMjM2
LDcgKzIzMyw3IEBAIHB1YmxpYzoKICAgICAgICAgRmlsbExheWVyIG1fYmFja2dyb3VuZERhdGEg
eyBGaWxsTGF5ZXJUeXBlOjpCYWNrZ3JvdW5kIH07CiAgICAgICAgIENvbG9yIG1fYmFja2dyb3Vu
ZENvbG9yOwogCi0gICAgICAgIGJvb2wgbV9oYXNVQUFwcGVhcmFuY2UgeyBmYWxzZSB9OworICAg
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+IG1fdXNlckFnZW50QXBwZWFyYW5jZVN0
eWxlOwogICAgIH07CiAKICAgICBTdGF0ZSYgc3RhdGUoKSB7IHJldHVybiBtX3N0YXRlOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcAppbmRleCA0MzdmNGM1NTg5Zi4u
OWIyZGZlY2M1ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcApA
QCAtNzgsNyArNzgsNyBAQCBSZW5kZXJUaGVtZTo6UmVuZGVyVGhlbWUoKQogewogfQogCi12b2lk
IFJlbmRlclRoZW1lOjphZGp1c3RTdHlsZShTdHlsZVJlc29sdmVyJiBzdHlsZVJlc29sdmVyLCBS
ZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQsIGJvb2wgVUFIYXNBcHBl
YXJhbmNlLCBjb25zdCBCb3JkZXJEYXRhJiBib3JkZXIsIGNvbnN0IEZpbGxMYXllciYgYmFja2dy
b3VuZCwgY29uc3QgQ29sb3ImIGJhY2tncm91bmRDb2xvcikKK3ZvaWQgUmVuZGVyVGhlbWU6OmFk
anVzdFN0eWxlKFN0eWxlUmVzb2x2ZXImIHN0eWxlUmVzb2x2ZXIsIFJlbmRlclN0eWxlJiBzdHls
ZSwgY29uc3QgRWxlbWVudCogZWxlbWVudCwgY29uc3QgUmVuZGVyU3R5bGUqIHVzZXJBZ2VudEFw
cGVhcmFuY2VTdHlsZSkKIHsKICAgICAvLyBGb3JjZSBpbmxpbmUgYW5kIHRhYmxlIGRpc3BsYXkg
c3R5bGVzIHRvIGJlIGlubGluZS1ibG9jayAoZXhjZXB0IGZvciB0YWJsZS0gd2hpY2ggaXMgYmxv
Y2spCiAgICAgQ29udHJvbFBhcnQgcGFydCA9IHN0eWxlLmFwcGVhcmFuY2UoKTsKQEAgLTkwLDcg
KzkwLDcgQEAgdm9pZCBSZW5kZXJUaGVtZTo6YWRqdXN0U3R5bGUoU3R5bGVSZXNvbHZlciYgc3R5
bGVSZXNvbHZlciwgUmVuZGVyU3R5bGUmIHN0eWxlLAogICAgIGVsc2UgaWYgKHN0eWxlLmRpc3Bs
YXkoKSA9PSBEaXNwbGF5VHlwZTo6Q29tcGFjdCB8fCBzdHlsZS5kaXNwbGF5KCkgPT0gRGlzcGxh
eVR5cGU6Okxpc3RJdGVtIHx8IHN0eWxlLmRpc3BsYXkoKSA9PSBEaXNwbGF5VHlwZTo6VGFibGUp
CiAgICAgICAgIHN0eWxlLnNldERpc3BsYXkoRGlzcGxheVR5cGU6OkJsb2NrKTsKIAotICAgIGlm
IChVQUhhc0FwcGVhcmFuY2UgJiYgaXNDb250cm9sU3R5bGVkKHN0eWxlLCBib3JkZXIsIGJhY2tn
cm91bmQsIGJhY2tncm91bmRDb2xvcikpIHsKKyAgICBpZiAodXNlckFnZW50QXBwZWFyYW5jZVN0
eWxlICYmIGlzQ29udHJvbFN0eWxlZChzdHlsZSwgKnVzZXJBZ2VudEFwcGVhcmFuY2VTdHlsZSkp
IHsKICAgICAgICAgc3dpdGNoIChwYXJ0KSB7CiAgICAgICAgIGNhc2UgTWVudWxpc3RQYXJ0Ogog
ICAgICAgICAgICAgc3R5bGUuc2V0QXBwZWFyYW5jZShNZW51bGlzdEJ1dHRvblBhcnQpOwpAQCAt
NzMwLDcgKzczMCw3IEBAIGJvb2wgUmVuZGVyVGhlbWU6OmlzQ29udHJvbENvbnRhaW5lcihDb250
cm9sUGFydCBhcHBlYXJhbmNlKSBjb25zdAogICAgIHJldHVybiBhcHBlYXJhbmNlICE9IENoZWNr
Ym94UGFydCAmJiBhcHBlYXJhbmNlICE9IFJhZGlvUGFydDsKIH0KIAotYm9vbCBSZW5kZXJUaGVt
ZTo6aXNDb250cm9sU3R5bGVkKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3QgQm9yZGVy
RGF0YSYgYm9yZGVyLCBjb25zdCBGaWxsTGF5ZXImIGJhY2tncm91bmQsIGNvbnN0IENvbG9yJiBi
YWNrZ3JvdW5kQ29sb3IpIGNvbnN0Citib29sIFJlbmRlclRoZW1lOjppc0NvbnRyb2xTdHlsZWQo
Y29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSYgdXNlckFnZW50U3R5
bGUpIGNvbnN0CiB7CiAgICAgc3dpdGNoIChzdHlsZS5hcHBlYXJhbmNlKCkpIHsKICAgICBjYXNl
IFB1c2hCdXR0b25QYXJ0OgpAQCAtNzUyLDkgKzc1Miw5IEBAIGJvb2wgUmVuZGVyVGhlbWU6Omlz
Q29udHJvbFN0eWxlZChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IEJvcmRlckRhdGEm
IGJvCiAgICAgY2FzZSBUZXh0RmllbGRQYXJ0OgogICAgIGNhc2UgVGV4dEFyZWFQYXJ0OgogICAg
ICAgICAvLyBUZXN0IHRoZSBzdHlsZSB0byBzZWUgaWYgdGhlIFVBIGJvcmRlciBhbmQgYmFja2dy
b3VuZCBtYXRjaC4KLSAgICAgICAgcmV0dXJuIHN0eWxlLmJvcmRlcigpICE9IGJvcmRlcgotICAg
ICAgICAgICAgfHwgc3R5bGUuYmFja2dyb3VuZExheWVycygpICE9IGJhY2tncm91bmQKLSAgICAg
ICAgICAgIHx8ICFzdHlsZS5iYWNrZ3JvdW5kQ29sb3JFcXVhbHNUb0NvbG9ySWdub3JpbmdWaXNp
dGVkKGJhY2tncm91bmRDb2xvcik7CisgICAgICAgIHJldHVybiBzdHlsZS5ib3JkZXIoKSAhPSB1
c2VyQWdlbnRTdHlsZS5ib3JkZXIoKQorICAgICAgICAgICAgfHwgc3R5bGUuYmFja2dyb3VuZExh
eWVycygpICE9IHVzZXJBZ2VudFN0eWxlLmJhY2tncm91bmRMYXllcnMoKQorICAgICAgICAgICAg
fHwgIXN0eWxlLmJhY2tncm91bmRDb2xvckVxdWFsc1RvQ29sb3JJZ25vcmluZ1Zpc2l0ZWQodXNl
ckFnZW50U3R5bGUuYmFja2dyb3VuZENvbG9yKCkpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCmlu
ZGV4IDNhZjU2YWU1NmI5Li4xOWFjZjBiYjNlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lLmgKQEAgLTY1LDcgKzY1LDcgQEAgcHVibGljOgogICAgIC8vIG1ldHJpY3MgYW5k
IGRlZmF1bHRzIGdpdmVuIHRoZSBjb250ZW50cyBvZiB0aGUgc3R5bGUuICBUaGlzIGluY2x1ZGVz
IHNvcGhpc3RpY2F0ZWQgb3BlcmF0aW9ucyBsaWtlCiAgICAgLy8gc2VsZWN0aW9uIG9mIGNvbnRy
b2wgc2l6ZSBiYXNlZCBvZmYgdGhlIGZvbnQsIHRoZSBkaXNhYmxpbmcgb2YgYXBwZWFyYW5jZSB3
aGVuIGNlcnRhaW4gb3RoZXIgcHJvcGVydGllcyBsaWtlCiAgICAgLy8gImJvcmRlciIgYXJlIHNl
dCwgb3IgaWYgdGhlIGFwcGVhcmFuY2UgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgdGhlbWUuCi0g
ICAgdm9pZCBhZGp1c3RTdHlsZShTdHlsZVJlc29sdmVyJiwgUmVuZGVyU3R5bGUmLCBjb25zdCBF
bGVtZW50KiwgIGJvb2wgVUFIYXNBcHBlYXJhbmNlLCBjb25zdCBCb3JkZXJEYXRhJiwgY29uc3Qg
RmlsbExheWVyJiwgY29uc3QgQ29sb3ImIGJhY2tncm91bmRDb2xvcik7CisgICAgdm9pZCBhZGp1
c3RTdHlsZShTdHlsZVJlc29sdmVyJiwgUmVuZGVyU3R5bGUmLCBjb25zdCBFbGVtZW50KiwgY29u
c3QgUmVuZGVyU3R5bGUqIHVzZXJBZ2VudEFwcGVhcmFuY2VTdHlsZSk7CiAKICAgICAvLyBUaGlz
IG1ldGhvZCBpcyBjYWxsZWQgdG8gcGFpbnQgdGhlIHdpZGdldCBhcyBhIGJhY2tncm91bmQgb2Yg
dGhlIFJlbmRlck9iamVjdC4gIEEgd2lkZ2V0J3MgZm9yZWdyb3VuZCwgZS5nLiwgdGhlCiAgICAg
Ly8gdGV4dCBvZiBhIGJ1dHRvbiwgaXMgYWx3YXlzIHJlbmRlcmVkIGJ5IHRoZSBlbmdpbmUgaXRz
ZWxmLiAgVGhlIGJvb2xlYW4gcmV0dXJuIHZhbHVlIGluZGljYXRlcwpAQCAtMTE2LDcgKzExNiw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgY29udHJvbFN1cHBvcnRzVGludHMoY29uc3Qg
UmVuZGVyT2JqZWN0JikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIC8vIFdoZXRoZXIg
b3Igbm90IHRoZSBjb250cm9sIGhhcyBiZWVuIHN0eWxlZCBlbm91Z2ggYnkgdGhlIGF1dGhvciB0
byBkaXNhYmxlIHRoZSBuYXRpdmUgYXBwZWFyYW5jZS4KLSAgICB2aXJ0dWFsIGJvb2wgaXNDb250
cm9sU3R5bGVkKGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3QgQm9yZGVyRGF0YSYsIGNvbnN0IEZp
bGxMYXllciYsIGNvbnN0IENvbG9yJiBiYWNrZ3JvdW5kQ29sb3IpIGNvbnN0OworICAgIHZpcnR1
YWwgYm9vbCBpc0NvbnRyb2xTdHlsZWQoY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBSZW5kZXJT
dHlsZSYgdXNlckFnZW50U3R5bGUpIGNvbnN0OwogCiAgICAgLy8gQSBnZW5lcmFsIG1ldGhvZCBh
c2tpbmcgaWYgYW55IGNvbnRyb2wgdGludGluZyBpcyBzdXBwb3J0ZWQgYXQgYWxsLgogICAgIHZp
cnR1YWwgYm9vbCBzdXBwb3J0c0NvbnRyb2xUaW50cygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oCmluZGV4IDczODU5MTAz
NWVmLi43ZTM5ZWM2OTk5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lSU9TLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
SU9TLmgKQEAgLTY2LDcgKzY2LDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgdXBkYXRlQ2FjaGVk
U3lzdGVtRm9udERlc2NyaXB0aW9uKENTU1ZhbHVlSUQsIEZvbnRDYXNjYWRlRGVzY3JpcHRpb24m
KSBjb25zdCBvdmVycmlkZTsKICAgICBpbnQgYmFzZWxpbmVQb3NpdGlvbihjb25zdCBSZW5kZXJC
b3gmKSBjb25zdCBvdmVycmlkZTsKIAotICAgIGJvb2wgaXNDb250cm9sU3R5bGVkKGNvbnN0IFJl
bmRlclN0eWxlJiwgY29uc3QgQm9yZGVyRGF0YSYsIGNvbnN0IEZpbGxMYXllciYgYmFja2dyb3Vu
ZCwgY29uc3QgQ29sb3ImIGJhY2tncm91bmRDb2xvcikgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9v
bCBpc0NvbnRyb2xTdHlsZWQoY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBSZW5kZXJTdHlsZSYg
dXNlckFnZW50U3R5bGUpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgLy8gTWV0aG9kcyBmb3IgZWFj
aCBhcHBlYXJhbmNlIHZhbHVlLgogICAgIHZvaWQgYWRqdXN0Q2hlY2tib3hTdHlsZShTdHlsZVJl
c29sdmVyJiwgUmVuZGVyU3R5bGUmLCBjb25zdCBFbGVtZW50KikgY29uc3Qgb3ZlcnJpZGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0gYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KaW5kZXggZTMxYTgzN2E2
MzcuLjEwYWYwNDA2NTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
SU9TLm1tCkBAIC00NDcsMTYgKzQ0NywxNiBAQCBpbnQgUmVuZGVyVGhlbWVJT1M6OmJhc2VsaW5l
UG9zaXRpb24oY29uc3QgUmVuZGVyQm94JiBib3gpIGNvbnN0CiAgICAgcmV0dXJuIFJlbmRlclRo
ZW1lOjpiYXNlbGluZVBvc2l0aW9uKGJveCk7CiB9CiAKLWJvb2wgUmVuZGVyVGhlbWVJT1M6Omlz
Q29udHJvbFN0eWxlZChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IEJvcmRlckRhdGEm
IGJvcmRlciwgY29uc3QgRmlsbExheWVyJiBiYWNrZ3JvdW5kLCBjb25zdCBDb2xvciYgYmFja2dy
b3VuZENvbG9yKSBjb25zdAorYm9vbCBSZW5kZXJUaGVtZUlPUzo6aXNDb250cm9sU3R5bGVkKGNv
bnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUmIHVzZXJBZ2VudFN0eWxl
KSBjb25zdAogewogICAgIC8vIEJ1dHRvbnMgYW5kIE1lbnVsaXN0QnV0dG9ucyBhcmUgc3R5bGVk
IGlmIHRoZXkgY29udGFpbiBhIGJhY2tncm91bmQgaW1hZ2UuCiAgICAgaWYgKHN0eWxlLmFwcGVh
cmFuY2UoKSA9PSBQdXNoQnV0dG9uUGFydCB8fCBzdHlsZS5hcHBlYXJhbmNlKCkgPT0gTWVudWxp
c3RCdXR0b25QYXJ0KQogICAgICAgICByZXR1cm4gIXN0eWxlLnZpc2l0ZWREZXBlbmRlbnRDb2xv
cihDU1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvcikuaXNWaXNpYmxlKCkgfHwgc3R5bGUuYmFja2dy
b3VuZExheWVycygpLmhhc0ltYWdlKCk7CiAKICAgICBpZiAoc3R5bGUuYXBwZWFyYW5jZSgpID09
IFRleHRGaWVsZFBhcnQgfHwgc3R5bGUuYXBwZWFyYW5jZSgpID09IFRleHRBcmVhUGFydCkKLSAg
ICAgICAgcmV0dXJuIHN0eWxlLmJhY2tncm91bmRMYXllcnMoKSAhPSBiYWNrZ3JvdW5kOworICAg
ICAgICByZXR1cm4gc3R5bGUuYmFja2dyb3VuZExheWVycygpICE9IHVzZXJBZ2VudFN0eWxlLmJh
Y2tncm91bmRMYXllcnMoKTsKIAotICAgIHJldHVybiBSZW5kZXJUaGVtZTo6aXNDb250cm9sU3R5
bGVkKHN0eWxlLCBib3JkZXIsIGJhY2tncm91bmQsIGJhY2tncm91bmRDb2xvcik7CisgICAgcmV0
dXJuIFJlbmRlclRoZW1lOjppc0NvbnRyb2xTdHlsZWQoc3R5bGUsIHVzZXJBZ2VudFN0eWxlKTsK
IH0KIAogdm9pZCBSZW5kZXJUaGVtZUlPUzo6YWRqdXN0UmFkaW9TdHlsZShTdHlsZVJlc29sdmVy
JiwgUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBFbGVtZW50KikgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgKaW5kZXggYTEzNjFhZjgyMjEuLjFiOWY0NjBj
NDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaApAQCAtNDks
NyArNDksNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGFkanVzdFJlcGFpbnRSZWN0KGNvbnN0IFJl
bmRlck9iamVjdCYsIEZsb2F0UmVjdCYpIGZpbmFsOwogCi0gICAgYm9vbCBpc0NvbnRyb2xTdHls
ZWQoY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBCb3JkZXJEYXRhJiwgY29uc3QgRmlsbExheWVy
JiwgY29uc3QgQ29sb3ImIGJhY2tncm91bmRDb2xvcikgY29uc3QgZmluYWw7CisgICAgYm9vbCBp
c0NvbnRyb2xTdHlsZWQoY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBSZW5kZXJTdHlsZSYgdXNl
ckFnZW50U3R5bGUpIGNvbnN0IGZpbmFsOwogCiAgICAgYm9vbCBzdXBwb3J0c1NlbGVjdGlvbkZv
cmVncm91bmRDb2xvcnMoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5h
bDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFj
Lm1tIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCmluZGV4IGE0
MmNlNmVjMmQ2Li5hYTU5OTFjZTY3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZU1hYy5tbQpAQCAtODgyLDExICs4ODIsMTAgQEAgYm9vbCBSZW5kZXJUaGVtZU1hYzo6
dXNlc1Rlc3RNb2RlRm9jdXNSaW5nQ29sb3IoKSBjb25zdAogICAgIHJldHVybiBXZWJDb3JlOjp1
c2VzVGVzdE1vZGVGb2N1c1JpbmdDb2xvcigpOwogfQogCi1ib29sIFJlbmRlclRoZW1lTWFjOjpp
c0NvbnRyb2xTdHlsZWQoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBCb3JkZXJEYXRh
JiBib3JkZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgRmls
bExheWVyJiBiYWNrZ3JvdW5kLCBjb25zdCBDb2xvciYgYmFja2dyb3VuZENvbG9yKSBjb25zdAor
Ym9vbCBSZW5kZXJUaGVtZU1hYzo6aXNDb250cm9sU3R5bGVkKGNvbnN0IFJlbmRlclN0eWxlJiBz
dHlsZSwgY29uc3QgUmVuZGVyU3R5bGUmIHVzZXJBZ2VudFN0eWxlKSBjb25zdAogewogICAgIGlm
IChzdHlsZS5hcHBlYXJhbmNlKCkgPT0gVGV4dEZpZWxkUGFydCB8fCBzdHlsZS5hcHBlYXJhbmNl
KCkgPT0gVGV4dEFyZWFQYXJ0IHx8IHN0eWxlLmFwcGVhcmFuY2UoKSA9PSBMaXN0Ym94UGFydCkK
LSAgICAgICAgcmV0dXJuIHN0eWxlLmJvcmRlcigpICE9IGJvcmRlcjsKKyAgICAgICAgcmV0dXJu
IHN0eWxlLmJvcmRlcigpICE9IHVzZXJBZ2VudFN0eWxlLmJvcmRlcigpOwogCiAgICAgLy8gRklY
TUU6IFRoaXMgaXMgaG9ycmlibGUsIGJ1dCB0aGVyZSBpcyBub3QgbXVjaCBlbHNlIHRoYXQgY2Fu
IGJlIGRvbmUuICBNZW51IGxpc3RzIGNhbm5vdCBkcmF3IHByb3Blcmx5IHdoZW4KICAgICAvLyBz
Y2FsZWQuICBUaGV5IGNhbid0IHJlYWxseSBkcmF3IHByb3Blcmx5IHdoZW4gdHJhbnNmb3JtZWQg
ZWl0aGVyLiAgV2UgY2FuJ3QgZGV0ZWN0IHRoZSB0cmFuc2Zvcm0gY2FzZSBhdCBzdHlsZQpAQCAt
ODk1LDcgKzg5NCw3IEBAIGJvb2wgUmVuZGVyVGhlbWVNYWM6OmlzQ29udHJvbFN0eWxlZChjb25z
dCBSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IEJvcmRlckRhdGEmCiAgICAgaWYgKHN0eWxlLmFw
cGVhcmFuY2UoKSA9PSBNZW51bGlzdFBhcnQgJiYgc3R5bGUuZWZmZWN0aXZlWm9vbSgpICE9IDEu
MGYpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgcmV0dXJuIFJlbmRlclRoZW1lOjppc0Nv
bnRyb2xTdHlsZWQoc3R5bGUsIGJvcmRlciwgYmFja2dyb3VuZCwgYmFja2dyb3VuZENvbG9yKTsK
KyAgICByZXR1cm4gUmVuZGVyVGhlbWU6OmlzQ29udHJvbFN0eWxlZChzdHlsZSwgdXNlckFnZW50
U3R5bGUpOwogfQogCiBzdGF0aWMgRmxvYXRSZWN0IGluZmxhdGVSZWN0KGNvbnN0IEZsb2F0UmVj
dCYgcmVjdCwgY29uc3QgSW50U2l6ZSYgc2l6ZSwgY29uc3QgaW50KiBtYXJnaW5zLCBmbG9hdCB6
b29tTGV2ZWwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyLmNwcAppbmRleCBlNThjMjAz
MmU1Yy4uMTMyODk2Y2NiZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
QnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyLmNwcApA
QCAtNDksMTIgKzQ5LDE3IEBAIHN0YXRpYyBQcm9wZXJ0eUNhc2NhZGU6OkRpcmVjdGlvbiBkaXJl
Y3Rpb25Gcm9tU3R5bGUoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQogICAgIHJldHVybiB7IHN0
eWxlLmRpcmVjdGlvbigpLCBzdHlsZS53cml0aW5nTW9kZSgpIH07CiB9CiAKK0J1aWxkZXI6OkJ1
aWxkZXIoUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBTdHlsZVJlc29sdmVyJiByZXNvbHZlciwg
Y29uc3QgTWF0Y2hSZXN1bHQmIG1hdGNoUmVzdWx0LCBPcHRpb25TZXQ8Q2FzY2FkZUxldmVsPiBj
YXNjYWRlTGV2ZWxzLCBQcm9wZXJ0eUNhc2NhZGU6OkluY2x1ZGVkUHJvcGVydGllcyBpbmNsdWRl
ZFByb3BlcnRpZXMpCisgICAgOiBtX2Nhc2NhZGUobWF0Y2hSZXN1bHQsIGNhc2NhZGVMZXZlbHMs
IGluY2x1ZGVkUHJvcGVydGllcywgZGlyZWN0aW9uRnJvbVN0eWxlKHN0eWxlKSkKKyAgICAsIG1f
c3RhdGUoKnRoaXMsIHN0eWxlLCAqcmVzb2x2ZXIucGFyZW50U3R5bGUoKSwgcmVzb2x2ZXIucm9v
dEVsZW1lbnRTdHlsZSgpLCByZXNvbHZlci5kb2N1bWVudCgpLCByZXNvbHZlci5lbGVtZW50KCkp
Cit7CisgICAgQVNTRVJUKHJlc29sdmVyLnBhcmVudFN0eWxlKCkpOworfQorCiBCdWlsZGVyOjpC
dWlsZGVyKFN0eWxlUmVzb2x2ZXImIHJlc29sdmVyLCBjb25zdCBNYXRjaFJlc3VsdCYgbWF0Y2hS
ZXN1bHQsIE9wdGlvblNldDxDYXNjYWRlTGV2ZWw+IGNhc2NhZGVMZXZlbHMsIFByb3BlcnR5Q2Fz
Y2FkZTo6SW5jbHVkZWRQcm9wZXJ0aWVzIGluY2x1ZGVkUHJvcGVydGllcykKLSAgICA6IG1fY2Fz
Y2FkZShtYXRjaFJlc3VsdCwgY2FzY2FkZUxldmVscywgaW5jbHVkZWRQcm9wZXJ0aWVzLCBkaXJl
Y3Rpb25Gcm9tU3R5bGUoKnJlc29sdmVyLnN0eWxlKCkpKQotICAgICwgbV9zdGF0ZSgqdGhpcywg
KnJlc29sdmVyLnN0eWxlKCksICpyZXNvbHZlci5wYXJlbnRTdHlsZSgpLCByZXNvbHZlci5yb290
RWxlbWVudFN0eWxlKCksIHJlc29sdmVyLmRvY3VtZW50KCksIHJlc29sdmVyLmVsZW1lbnQoKSkK
KyAgICA6IEJ1aWxkZXIoKnJlc29sdmVyLnN0eWxlKCksIHJlc29sdmVyLCBtYXRjaFJlc3VsdCwg
Y2FzY2FkZUxldmVscywgaW5jbHVkZWRQcm9wZXJ0aWVzKQogewogICAgIEFTU0VSVChyZXNvbHZl
ci5zdHlsZSgpKTsKLSAgICBBU1NFUlQocmVzb2x2ZXIucGFyZW50U3R5bGUoKSk7CiB9CiAKIEJ1
aWxkZXI6On5CdWlsZGVyKCkgPSBkZWZhdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3R5bGUvU3R5bGVCdWlsZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXIu
aAppbmRleCA5ZmMwODBiZDIyNy4uNDYzZDg1NzQ3OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL1N0eWxlQnVpbGRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
QnVpbGRlci5oCkBAIC0zNSw2ICszNSw3IEBAIG5hbWVzcGFjZSBTdHlsZSB7CiBjbGFzcyBCdWls
ZGVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKKyAgICBCdWlsZGVy
KFJlbmRlclN0eWxlJiwgY29uc3QgU3R5bGVSZXNvbHZlciYsIGNvbnN0IE1hdGNoUmVzdWx0Jiwg
T3B0aW9uU2V0PENhc2NhZGVMZXZlbD4sIFByb3BlcnR5Q2FzY2FkZTo6SW5jbHVkZWRQcm9wZXJ0
aWVzID0gUHJvcGVydHlDYXNjYWRlOjpJbmNsdWRlZFByb3BlcnRpZXM6OkFsbCk7CiAgICAgQnVp
bGRlcihTdHlsZVJlc29sdmVyJiwgY29uc3QgTWF0Y2hSZXN1bHQmLCBPcHRpb25TZXQ8Q2FzY2Fk
ZUxldmVsPiwgUHJvcGVydHlDYXNjYWRlOjpJbmNsdWRlZFByb3BlcnRpZXMgPSBQcm9wZXJ0eUNh
c2NhZGU6OkluY2x1ZGVkUHJvcGVydGllczo6QWxsKTsKICAgICB+QnVpbGRlcigpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383139</attachid>
            <date>2019-11-08 10:07:20 -0800</date>
            <delta_ts>2019-11-08 13:10:17 -0800</delta_ts>
            <desc>patch</desc>
            <filename>user-agent-appearance-object-2.patch</filename>
            <type>text/plain</type>
            <size>20323</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiZTVmM2VkOTFjYS4uMzA1MmFhZjhjYzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NiBAQAorMjAxOS0xMS0wOCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgU3R5bGVSZXNvbHZlciBzdGF0ZSBzaG91bGQgc3RvcmUgdXNlciBhZ2VudCBh
cHBlYXJhbmNlIHN0eWxlIGFzIFJlbmRlclN0eWxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQwMDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBHZW5lcmF0ZSBhbmQgcGFzcyBhcm91bmQgdXNlciBhZ2Vu
dCBzdHlsZSBhcyBSZW5kZXJTdHlsZSBmb3IgYXBwZXJhbmNlIGNvbXB1dGF0aW9uIGluc3RlYWQK
KyAgICAgICAgb2YgYXdrd2FyZGx5IHBhc3NpbmcgYXJvdW5kIHNlcGFyYXRlIHByb3BlcnR5IHZh
bHVlcy4KKworICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZVJlc29sdmVyOjpzdHlsZUZvcktleWZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
UmVzb2x2ZXI6OnBzZXVkb1N0eWxlRm9yRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTdHls
ZVJlc29sdmVyOjphZGp1c3RSZW5kZXJTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJl
c29sdmVyOjphcHBseU1hdGNoZWRQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
UmVzb2x2ZXI6OlN0YXRlOjpjYWNoZUJvcmRlckFuZEJhY2tncm91bmQpOiBEZWxldGVkLgorICAg
ICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29s
dmVyOjplbGVtZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OlN0
YXRlOjp1c2VyQWdlbnRBcHBlYXJhbmNlU3R5bGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U3R5bGVSZXNvbHZlcjo6U3RhdGU6OnNldFVzZXJBZ2VudEFwcGVhcmFuY2VTdHlsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjplbGVtZW50KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OlN0YXRlOjpoYXNVQUFwcGVhcmFuY2UgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6U3RhdGU6OmJvcmRlckRh
dGEgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6U3Rh
dGU6OmJhY2tncm91bmREYXRhIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlUmVzb2x2ZXI6OlN0YXRlOjpiYWNrZ3JvdW5kQ29sb3IgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUaGVtZTo6YWRqdXN0U3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6Omlz
Q29udHJvbFN0eWxlZCBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lLmg6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLmg6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlclRoZW1lSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVJT1M6
OmlzQ29udHJvbFN0eWxlZCBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1l
TWFjLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OmlzQ29udHJvbFN0eWxlZCBjb25zdCk6CisgICAgICAg
ICogc3R5bGUvU3R5bGVCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpCdWls
ZGVyOjpCdWlsZGVyKToKKworICAgICAgICBBbGxvdyBwcm92aWRpbmcgc3R5bGUgc2VwYXJhdGVs
eSBmcm9tIFN0eWxlUmVzb2x2ZXIgc3RhdGUuCisKKyAgICAgICAgKiBzdHlsZS9TdHlsZUJ1aWxk
ZXIuaDoKKwogMjAxOS0xMS0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAg
ICAgICAgIFBvcnQgV29ya2VyIHRvIHRoZSBIVE1MNSBldmVudCBsb29wCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVSZXNvbHZlci5jcHAKaW5kZXggNmRlMjNhNTkwOTQuLjZkY2E5MDIwYjI5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC05NywyMSArOTcsMTIgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1pbmxpbmUgdm9pZCBT
dHlsZVJlc29sdmVyOjpTdGF0ZTo6Y2FjaGVCb3JkZXJBbmRCYWNrZ3JvdW5kKCkKLXsKLSAgICBt
X2hhc1VBQXBwZWFyYW5jZSA9IG1fc3R5bGUtPmhhc0FwcGVhcmFuY2UoKTsKLSAgICBpZiAobV9o
YXNVQUFwcGVhcmFuY2UpIHsKLSAgICAgICAgbV9ib3JkZXJEYXRhID0gbV9zdHlsZS0+Ym9yZGVy
KCk7Ci0gICAgICAgIG1fYmFja2dyb3VuZERhdGEgPSBtX3N0eWxlLT5iYWNrZ3JvdW5kTGF5ZXJz
KCk7Ci0gICAgICAgIG1fYmFja2dyb3VuZENvbG9yID0gbV9zdHlsZS0+YmFja2dyb3VuZENvbG9y
KCk7Ci0gICAgfQotfQotCiBpbmxpbmUgdm9pZCBTdHlsZVJlc29sdmVyOjpTdGF0ZTo6Y2xlYXIo
KQogewogICAgIG1fZWxlbWVudCA9IG51bGxwdHI7CiAgICAgbV9wYXJlbnRTdHlsZSA9IG51bGxw
dHI7CiAgICAgbV9vd25lZFBhcmVudFN0eWxlID0gbnVsbHB0cjsKKyAgICBtX3VzZXJBZ2VudEFw
cGVhcmFuY2VTdHlsZSA9IG51bGxwdHI7CiB9CiAKIFN0eWxlUmVzb2x2ZXI6OlN0eWxlUmVzb2x2
ZXIoRG9jdW1lbnQmIGRvY3VtZW50KQpAQCAtMjg1LDcgKzI3Niw3IEBAIEVsZW1lbnRTdHlsZSBT
dHlsZVJlc29sdmVyOjpzdHlsZUZvckVsZW1lbnQoY29uc3QgRWxlbWVudCYgZWxlbWVudCwgY29u
c3QgUmVuZGVyCiAgICAgYXBwbHlNYXRjaGVkUHJvcGVydGllcyhjb2xsZWN0b3IubWF0Y2hSZXN1
bHQoKSwgZWxlbWVudCk7CiAKICAgICAvLyBDbGVhbiB1cCBvdXIgc3R5bGUgb2JqZWN0J3MgZGlz
cGxheSBhbmQgdGV4dCBkZWNvcmF0aW9ucyAoYW1vbmcgb3RoZXIgZml4dXBzKS4KLSAgICBhZGp1
c3RSZW5kZXJTdHlsZSgqc3RhdGUuc3R5bGUoKSwgKnN0YXRlLnBhcmVudFN0eWxlKCksIHBhcmVu
dEJveFN0eWxlLCAmZWxlbWVudCk7CisgICAgYWRqdXN0UmVuZGVyU3R5bGUoKnN0YXRlLnN0eWxl
KCksICpzdGF0ZS5wYXJlbnRTdHlsZSgpLCBwYXJlbnRCb3hTdHlsZSwgJmVsZW1lbnQsIHN0YXRl
LnVzZXJBZ2VudEFwcGVhcmFuY2VTdHlsZSgpKTsKIAogICAgIGlmIChzdGF0ZS5zdHlsZSgpLT5o
YXNWaWV3cG9ydFVuaXRzKCkpCiAgICAgICAgIGRvY3VtZW50KCkuc2V0SGFzU3R5bGVXaXRoVmll
d3BvcnRVbml0cygpOwpAQCAtMzEzLDcgKzMwNCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJT
dHlsZT4gU3R5bGVSZXNvbHZlcjo6c3R5bGVGb3JLZXlmcmFtZShjb25zdCBSZW5kZXJTdHlsZSoK
ICAgICBTdHlsZTo6QnVpbGRlciBidWlsZGVyKCp0aGlzLCByZXN1bHQsIHsgU3R5bGU6OkNhc2Nh
ZGVMZXZlbDo6QXV0aG9yIH0pOwogICAgIGJ1aWxkZXIuYXBwbHlBbGxQcm9wZXJ0aWVzKCk7CiAK
LSAgICBhZGp1c3RSZW5kZXJTdHlsZSgqc3RhdGUuc3R5bGUoKSwgKnN0YXRlLnBhcmVudFN0eWxl
KCksIG51bGxwdHIsIG51bGxwdHIpOworICAgIGFkanVzdFJlbmRlclN0eWxlKCpzdGF0ZS5zdHls
ZSgpLCAqc3RhdGUucGFyZW50U3R5bGUoKSwgbnVsbHB0ciwgbnVsbHB0ciwgc3RhdGUudXNlckFn
ZW50QXBwZWFyYW5jZVN0eWxlKCkpOwogCiAgICAgLy8gQWRkIGFsbCB0aGUgYW5pbWF0aW5nIHBy
b3BlcnRpZXMgdG8gdGhlIGtleWZyYW1lLgogICAgIHVuc2lnbmVkIHByb3BlcnR5Q291bnQgPSBr
ZXlmcmFtZS0+cHJvcGVydGllcygpLnByb3BlcnR5Q291bnQoKTsKQEAgLTQ2OSw3ICs0NjAsNyBA
QCBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+IFN0eWxlUmVzb2x2ZXI6OnBzZXVkb1N0eWxl
Rm9yRWxlbWVudChjb25zdCBFbGVtZW50JgogICAgIGFwcGx5TWF0Y2hlZFByb3BlcnRpZXMoY29s
bGVjdG9yLm1hdGNoUmVzdWx0KCksIGVsZW1lbnQpOwogCiAgICAgLy8gQ2xlYW4gdXAgb3VyIHN0
eWxlIG9iamVjdCdzIGRpc3BsYXkgYW5kIHRleHQgZGVjb3JhdGlvbnMgKGFtb25nIG90aGVyIGZp
eHVwcykuCi0gICAgYWRqdXN0UmVuZGVyU3R5bGUoKnN0YXRlLnN0eWxlKCksICptX3N0YXRlLnBh
cmVudFN0eWxlKCksIHBhcmVudEJveFN0eWxlLCBudWxscHRyKTsKKyAgICBhZGp1c3RSZW5kZXJT
dHlsZSgqc3RhdGUuc3R5bGUoKSwgKm1fc3RhdGUucGFyZW50U3R5bGUoKSwgcGFyZW50Qm94U3R5
bGUsIG51bGxwdHIsIHN0YXRlLnVzZXJBZ2VudEFwcGVhcmFuY2VTdHlsZSgpKTsKIAogICAgIGlm
IChzdGF0ZS5zdHlsZSgpLT5oYXNWaWV3cG9ydFVuaXRzKCkpCiAgICAgICAgIGRvY3VtZW50KCku
c2V0SGFzU3R5bGVXaXRoVmlld3BvcnRVbml0cygpOwpAQCAtNzc5LDcgKzc3MCw3IEBAIGJvb2wg
U3R5bGVSZXNvbHZlcjo6YWRqdXN0UmVuZGVyU3R5bGVGb3JUZXh0QXV0b3NpemluZyhSZW5kZXJT
dHlsZSYgc3R5bGUsIGNvbnN0CiB9CiAjZW5kaWYKIAotdm9pZCBTdHlsZVJlc29sdmVyOjphZGp1
c3RSZW5kZXJTdHlsZShSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlJiBwYXJl
bnRTdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUqIHBhcmVudEJveFN0eWxlLCBjb25zdCBFbGVtZW50
KiBlbGVtZW50KQordm9pZCBTdHlsZVJlc29sdmVyOjphZGp1c3RSZW5kZXJTdHlsZShSZW5kZXJT
dHlsZSYgc3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlJiBwYXJlbnRTdHlsZSwgY29uc3QgUmVuZGVy
U3R5bGUqIHBhcmVudEJveFN0eWxlLCBjb25zdCBFbGVtZW50KiBlbGVtZW50LCBjb25zdCBSZW5k
ZXJTdHlsZSogdXNlckFnZW50QXBwZWFyYW5jZVN0eWxlKQogewogICAgIC8vIElmIHRoZSBjb21w
b3NlZCB0cmVlIHBhcmVudCBoYXMgZGlzcGxheTpjb250ZW50cywgdGhlIHBhcmVudCBib3ggc3R5
bGUgd2lsbCBiZSBkaWZmZXJlbnQgZnJvbSB0aGUgcGFyZW50IHN0eWxlLgogICAgIC8vIFdlIGRv
bid0IGhhdmUgaXQgd2hlbiByZXNvbHZpbmcgY29tcHV0ZWQgc3R5bGUgZm9yIGRpc3BsYXk6bm9u
ZSBzdWJ0cmVlLiBVc2UgcGFyZW50IHN0eWxlIGZvciBhZGp1c3RtZW50cyBpbiB0aGF0IGNhc2Uu
CkBAIC05OTksNyArOTkwLDcgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjphZGp1c3RSZW5kZXJTdHls
ZShSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlJiBwYXIKIAogICAgIC8vIExl
dCB0aGUgdGhlbWUgYWxzbyBoYXZlIGEgY3JhY2sgYXQgYWRqdXN0aW5nIHRoZSBzdHlsZS4KICAg
ICBpZiAoc3R5bGUuaGFzQXBwZWFyYW5jZSgpKQotICAgICAgICBSZW5kZXJUaGVtZTo6c2luZ2xl
dG9uKCkuYWRqdXN0U3R5bGUoKnRoaXMsIHN0eWxlLCBlbGVtZW50LCBtX3N0YXRlLmhhc1VBQXBw
ZWFyYW5jZSgpLCBtX3N0YXRlLmJvcmRlckRhdGEoKSwgbV9zdGF0ZS5iYWNrZ3JvdW5kRGF0YSgp
LCBtX3N0YXRlLmJhY2tncm91bmRDb2xvcigpKTsKKyAgICAgICAgUmVuZGVyVGhlbWU6OnNpbmds
ZXRvbigpLmFkanVzdFN0eWxlKCp0aGlzLCBzdHlsZSwgZWxlbWVudCwgdXNlckFnZW50QXBwZWFy
YW5jZVN0eWxlKTsKIAogICAgIC8vIElmIHdlIGhhdmUgZmlyc3QtbGV0dGVyIHBzZXVkbyBzdHls
ZSwgZG8gbm90IHNoYXJlIHRoaXMgc3R5bGUuCiAgICAgaWYgKHN0eWxlLmhhc1BzZXVkb1N0eWxl
KFBzZXVkb0lkOjpGaXJzdExldHRlcikpCkBAIC0xMTM4LDE0ICsxMTI5LDE0IEBAIHZvaWQgU3R5
bGVSZXNvbHZlcjo6YXBwbHlNYXRjaGVkUHJvcGVydGllcyhjb25zdCBNYXRjaFJlc3VsdCYgbWF0
Y2hSZXN1bHQsIGNvbnN0CiAgICAgfQogCiAgICAgaWYgKGVsZW1lbnRUeXBlSGFzQXBwZWFyYW5j
ZUZyb21VQVN0eWxlKGVsZW1lbnQpKSB7Ci0gICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIHN1Y2gg
YSBoYWNrLgogICAgICAgICAvLyBGaW5kIG91dCBpZiB0aGVyZSdzIGEgLXdlYmtpdC1hcHBlYXJh
bmNlIHByb3BlcnR5IGluIGVmZmVjdCBmcm9tIHRoZSBVQSBzaGVldC4KICAgICAgICAgLy8gSWYg
c28sIHdlIGNhY2hlIHRoZSBib3JkZXIgYW5kIGJhY2tncm91bmQgc3R5bGVzIHNvIHRoYXQgUmVu
ZGVyVGhlbWU6OmFkanVzdFN0eWxlKCkKICAgICAgICAgLy8gY2FuIGxvb2sgYXQgdGhlbSBsYXRl
ciB0byBmaWd1cmUgb3V0IGlmIHRoaXMgaXMgYSBzdHlsZWQgZm9ybSBjb250cm9sIG9yIG5vdC4K
LSAgICAgICAgU3R5bGU6OkJ1aWxkZXIgYnVpbGRlcigqdGhpcywgbWF0Y2hSZXN1bHQsIHsgU3R5
bGU6OkNhc2NhZGVMZXZlbDo6VXNlckFnZW50IH0sIGluY2x1ZGVkUHJvcGVydGllcyk7CisgICAg
ICAgIGF1dG8gdXNlckFnZW50U3R5bGUgPSBSZW5kZXJTdHlsZTo6Y2xvbmVQdHIoc3R5bGUpOwor
ICAgICAgICBTdHlsZTo6QnVpbGRlciBidWlsZGVyKCp1c2VyQWdlbnRTdHlsZSwgKnRoaXMsIG1h
dGNoUmVzdWx0LCB7IFN0eWxlOjpDYXNjYWRlTGV2ZWw6OlVzZXJBZ2VudCB9KTsKICAgICAgICAg
YnVpbGRlci5hcHBseUFsbFByb3BlcnRpZXMoKTsKIAotICAgICAgICBzdGF0ZS5jYWNoZUJvcmRl
ckFuZEJhY2tncm91bmQoKTsKKyAgICAgICAgc3RhdGUuc2V0VXNlckFnZW50QXBwZWFyYW5jZVN0
eWxlKFdURk1vdmUodXNlckFnZW50U3R5bGUpKTsKICAgICB9CiAKICAgICBTdHlsZTo6QnVpbGRl
ciBidWlsZGVyKCp0aGlzLCBtYXRjaFJlc3VsdCwgU3R5bGU6OmFsbENhc2NhZGVMZXZlbHMoKSwg
aW5jbHVkZWRQcm9wZXJ0aWVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZVJlc29sdmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCmluZGV4IDlj
ODIwNWFkNzg4Li44NDlkNTY5ODk3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlUmVzb2x2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCkBA
IC0xMTcsNyArMTE3LDcgQEAgcHVibGljOgogICAgIFJlbmRlclN0eWxlKiBzdHlsZSgpIGNvbnN0
IHsgcmV0dXJuIG1fc3RhdGUuc3R5bGUoKTsgfQogICAgIGNvbnN0IFJlbmRlclN0eWxlKiBwYXJl
bnRTdHlsZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGUucGFyZW50U3R5bGUoKTsgfQogICAgIGNv
bnN0IFJlbmRlclN0eWxlKiByb290RWxlbWVudFN0eWxlKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0
ZS5yb290RWxlbWVudFN0eWxlKCk7IH0KLSAgICBjb25zdCBFbGVtZW50KiBlbGVtZW50KCkgeyBy
ZXR1cm4gbV9zdGF0ZS5lbGVtZW50KCk7IH0KKyAgICBjb25zdCBFbGVtZW50KiBlbGVtZW50KCkg
Y29uc3QgeyByZXR1cm4gbV9zdGF0ZS5lbGVtZW50KCk7IH0KICAgICBEb2N1bWVudCYgZG9jdW1l
bnQoKSB7IHJldHVybiBtX2RvY3VtZW50OyB9CiAgICAgY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50
KCkgY29uc3QgeyByZXR1cm4gbV9kb2N1bWVudDsgfQogICAgIGNvbnN0IFNldHRpbmdzJiBzZXR0
aW5ncygpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnQuc2V0dGluZ3MoKTsgfQpAQCAtMTgzLDcg
KzE4Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyQ2FjaGVkRGVjbGFyYXRpb25zQWZmZWN0
ZWRCeVZpZXdwb3J0VW5pdHMoKTsKIAogcHJpdmF0ZToKLSAgICB2b2lkIGFkanVzdFJlbmRlclN0
eWxlKFJlbmRlclN0eWxlJiwgY29uc3QgUmVuZGVyU3R5bGUmIHBhcmVudFN0eWxlLCBjb25zdCBS
ZW5kZXJTdHlsZSogcGFyZW50Qm94U3R5bGUsIGNvbnN0IEVsZW1lbnQqKTsKKyAgICB2b2lkIGFk
anVzdFJlbmRlclN0eWxlKFJlbmRlclN0eWxlJiwgY29uc3QgUmVuZGVyU3R5bGUmIHBhcmVudFN0
eWxlLCBjb25zdCBSZW5kZXJTdHlsZSogcGFyZW50Qm94U3R5bGUsIGNvbnN0IEVsZW1lbnQqLCBj
b25zdCBSZW5kZXJTdHlsZSogdXNlckFnZW50U3R5bGUpOwogICAgIHZvaWQgYWRqdXN0UmVuZGVy
U3R5bGVGb3JTaXRlU3BlY2lmaWNRdWlya3MoUmVuZGVyU3R5bGUmLCBjb25zdCBFbGVtZW50Jik7
CiAKICAgICBlbnVtIGNsYXNzIFVzZU1hdGNoZWREZWNsYXJhdGlvbnNDYWNoZSB7IFllcywgTm8g
fTsKQEAgLTIxNSwxMSArMjE1LDggQEAgcHVibGljOgogICAgICAgICBjb25zdCBSZW5kZXJTdHls
ZSogcGFyZW50U3R5bGUoKSBjb25zdCB7IHJldHVybiBtX3BhcmVudFN0eWxlOyB9CiAgICAgICAg
IGNvbnN0IFJlbmRlclN0eWxlKiByb290RWxlbWVudFN0eWxlKCkgY29uc3QgeyByZXR1cm4gbV9y
b290RWxlbWVudFN0eWxlOyB9CiAKLSAgICAgICAgdm9pZCBjYWNoZUJvcmRlckFuZEJhY2tncm91
bmQoKTsKLSAgICAgICAgYm9vbCBoYXNVQUFwcGVhcmFuY2UoKSBjb25zdCB7IHJldHVybiBtX2hh
c1VBQXBwZWFyYW5jZTsgfQotICAgICAgICBCb3JkZXJEYXRhIGJvcmRlckRhdGEoKSBjb25zdCB7
IHJldHVybiBtX2JvcmRlckRhdGE7IH0KLSAgICAgICAgRmlsbExheWVyIGJhY2tncm91bmREYXRh
KCkgY29uc3QgeyByZXR1cm4gbV9iYWNrZ3JvdW5kRGF0YTsgfQotICAgICAgICBjb25zdCBDb2xv
ciYgYmFja2dyb3VuZENvbG9yKCkgY29uc3QgeyByZXR1cm4gbV9iYWNrZ3JvdW5kQ29sb3I7IH0K
KyAgICAgICAgY29uc3QgUmVuZGVyU3R5bGUqIHVzZXJBZ2VudEFwcGVhcmFuY2VTdHlsZSgpIGNv
bnN0IHsgcmV0dXJuIG1fdXNlckFnZW50QXBwZWFyYW5jZVN0eWxlLmdldCgpOyB9CisgICAgICAg
IHZvaWQgc2V0VXNlckFnZW50QXBwZWFyYW5jZVN0eWxlKHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJT
dHlsZT4gc3R5bGUpIHsgbV91c2VyQWdlbnRBcHBlYXJhbmNlU3R5bGUgPSBXVEZNb3ZlKHN0eWxl
KTsgfQogCiAgICAgICAgIGNvbnN0IFNlbGVjdG9yRmlsdGVyKiBzZWxlY3RvckZpbHRlcigpIGNv
bnN0IHsgcmV0dXJuIG1fc2VsZWN0b3JGaWx0ZXI7IH0KICAgICAgICAgCkBAIC0yMzIsMTEgKzIy
OSw3IEBAIHB1YmxpYzoKIAogICAgICAgICBjb25zdCBTZWxlY3RvckZpbHRlciogbV9zZWxlY3Rv
ckZpbHRlciB7IG51bGxwdHIgfTsKIAotICAgICAgICBCb3JkZXJEYXRhIG1fYm9yZGVyRGF0YTsK
LSAgICAgICAgRmlsbExheWVyIG1fYmFja2dyb3VuZERhdGEgeyBGaWxsTGF5ZXJUeXBlOjpCYWNr
Z3JvdW5kIH07Ci0gICAgICAgIENvbG9yIG1fYmFja2dyb3VuZENvbG9yOwotCi0gICAgICAgIGJv
b2wgbV9oYXNVQUFwcGVhcmFuY2UgeyBmYWxzZSB9OworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8
UmVuZGVyU3R5bGU+IG1fdXNlckFnZW50QXBwZWFyYW5jZVN0eWxlOwogICAgIH07CiAKICAgICBT
dGF0ZSYgc3RhdGUoKSB7IHJldHVybiBtX3N0YXRlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lLmNwcAppbmRleCA0MzdmNGM1NTg5Zi4uOWIyZGZlY2M1ODYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcApAQCAtNzgsNyArNzgsNyBAQCBSZW5k
ZXJUaGVtZTo6UmVuZGVyVGhlbWUoKQogewogfQogCi12b2lkIFJlbmRlclRoZW1lOjphZGp1c3RT
dHlsZShTdHlsZVJlc29sdmVyJiBzdHlsZVJlc29sdmVyLCBSZW5kZXJTdHlsZSYgc3R5bGUsIGNv
bnN0IEVsZW1lbnQqIGVsZW1lbnQsIGJvb2wgVUFIYXNBcHBlYXJhbmNlLCBjb25zdCBCb3JkZXJE
YXRhJiBib3JkZXIsIGNvbnN0IEZpbGxMYXllciYgYmFja2dyb3VuZCwgY29uc3QgQ29sb3ImIGJh
Y2tncm91bmRDb2xvcikKK3ZvaWQgUmVuZGVyVGhlbWU6OmFkanVzdFN0eWxlKFN0eWxlUmVzb2x2
ZXImIHN0eWxlUmVzb2x2ZXIsIFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3QgRWxlbWVudCogZWxl
bWVudCwgY29uc3QgUmVuZGVyU3R5bGUqIHVzZXJBZ2VudEFwcGVhcmFuY2VTdHlsZSkKIHsKICAg
ICAvLyBGb3JjZSBpbmxpbmUgYW5kIHRhYmxlIGRpc3BsYXkgc3R5bGVzIHRvIGJlIGlubGluZS1i
bG9jayAoZXhjZXB0IGZvciB0YWJsZS0gd2hpY2ggaXMgYmxvY2spCiAgICAgQ29udHJvbFBhcnQg
cGFydCA9IHN0eWxlLmFwcGVhcmFuY2UoKTsKQEAgLTkwLDcgKzkwLDcgQEAgdm9pZCBSZW5kZXJU
aGVtZTo6YWRqdXN0U3R5bGUoU3R5bGVSZXNvbHZlciYgc3R5bGVSZXNvbHZlciwgUmVuZGVyU3R5
bGUmIHN0eWxlLAogICAgIGVsc2UgaWYgKHN0eWxlLmRpc3BsYXkoKSA9PSBEaXNwbGF5VHlwZTo6
Q29tcGFjdCB8fCBzdHlsZS5kaXNwbGF5KCkgPT0gRGlzcGxheVR5cGU6Okxpc3RJdGVtIHx8IHN0
eWxlLmRpc3BsYXkoKSA9PSBEaXNwbGF5VHlwZTo6VGFibGUpCiAgICAgICAgIHN0eWxlLnNldERp
c3BsYXkoRGlzcGxheVR5cGU6OkJsb2NrKTsKIAotICAgIGlmIChVQUhhc0FwcGVhcmFuY2UgJiYg
aXNDb250cm9sU3R5bGVkKHN0eWxlLCBib3JkZXIsIGJhY2tncm91bmQsIGJhY2tncm91bmRDb2xv
cikpIHsKKyAgICBpZiAodXNlckFnZW50QXBwZWFyYW5jZVN0eWxlICYmIGlzQ29udHJvbFN0eWxl
ZChzdHlsZSwgKnVzZXJBZ2VudEFwcGVhcmFuY2VTdHlsZSkpIHsKICAgICAgICAgc3dpdGNoIChw
YXJ0KSB7CiAgICAgICAgIGNhc2UgTWVudWxpc3RQYXJ0OgogICAgICAgICAgICAgc3R5bGUuc2V0
QXBwZWFyYW5jZShNZW51bGlzdEJ1dHRvblBhcnQpOwpAQCAtNzMwLDcgKzczMCw3IEBAIGJvb2wg
UmVuZGVyVGhlbWU6OmlzQ29udHJvbENvbnRhaW5lcihDb250cm9sUGFydCBhcHBlYXJhbmNlKSBj
b25zdAogICAgIHJldHVybiBhcHBlYXJhbmNlICE9IENoZWNrYm94UGFydCAmJiBhcHBlYXJhbmNl
ICE9IFJhZGlvUGFydDsKIH0KIAotYm9vbCBSZW5kZXJUaGVtZTo6aXNDb250cm9sU3R5bGVkKGNv
bnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3QgQm9yZGVyRGF0YSYgYm9yZGVyLCBjb25zdCBG
aWxsTGF5ZXImIGJhY2tncm91bmQsIGNvbnN0IENvbG9yJiBiYWNrZ3JvdW5kQ29sb3IpIGNvbnN0
Citib29sIFJlbmRlclRoZW1lOjppc0NvbnRyb2xTdHlsZWQoY29uc3QgUmVuZGVyU3R5bGUmIHN0
eWxlLCBjb25zdCBSZW5kZXJTdHlsZSYgdXNlckFnZW50U3R5bGUpIGNvbnN0CiB7CiAgICAgc3dp
dGNoIChzdHlsZS5hcHBlYXJhbmNlKCkpIHsKICAgICBjYXNlIFB1c2hCdXR0b25QYXJ0OgpAQCAt
NzUyLDkgKzc1Miw5IEBAIGJvb2wgUmVuZGVyVGhlbWU6OmlzQ29udHJvbFN0eWxlZChjb25zdCBS
ZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IEJvcmRlckRhdGEmIGJvCiAgICAgY2FzZSBUZXh0Rmll
bGRQYXJ0OgogICAgIGNhc2UgVGV4dEFyZWFQYXJ0OgogICAgICAgICAvLyBUZXN0IHRoZSBzdHls
ZSB0byBzZWUgaWYgdGhlIFVBIGJvcmRlciBhbmQgYmFja2dyb3VuZCBtYXRjaC4KLSAgICAgICAg
cmV0dXJuIHN0eWxlLmJvcmRlcigpICE9IGJvcmRlcgotICAgICAgICAgICAgfHwgc3R5bGUuYmFj
a2dyb3VuZExheWVycygpICE9IGJhY2tncm91bmQKLSAgICAgICAgICAgIHx8ICFzdHlsZS5iYWNr
Z3JvdW5kQ29sb3JFcXVhbHNUb0NvbG9ySWdub3JpbmdWaXNpdGVkKGJhY2tncm91bmRDb2xvcik7
CisgICAgICAgIHJldHVybiBzdHlsZS5ib3JkZXIoKSAhPSB1c2VyQWdlbnRTdHlsZS5ib3JkZXIo
KQorICAgICAgICAgICAgfHwgc3R5bGUuYmFja2dyb3VuZExheWVycygpICE9IHVzZXJBZ2VudFN0
eWxlLmJhY2tncm91bmRMYXllcnMoKQorICAgICAgICAgICAgfHwgIXN0eWxlLmJhY2tncm91bmRD
b2xvckVxdWFsc1RvQ29sb3JJZ25vcmluZ1Zpc2l0ZWQodXNlckFnZW50U3R5bGUuYmFja2dyb3Vu
ZENvbG9yKCkpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCmluZGV4IDNhZjU2YWU1NmI5Li4xOWFj
ZjBiYjNlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKQEAgLTY1LDcg
KzY1LDcgQEAgcHVibGljOgogICAgIC8vIG1ldHJpY3MgYW5kIGRlZmF1bHRzIGdpdmVuIHRoZSBj
b250ZW50cyBvZiB0aGUgc3R5bGUuICBUaGlzIGluY2x1ZGVzIHNvcGhpc3RpY2F0ZWQgb3BlcmF0
aW9ucyBsaWtlCiAgICAgLy8gc2VsZWN0aW9uIG9mIGNvbnRyb2wgc2l6ZSBiYXNlZCBvZmYgdGhl
IGZvbnQsIHRoZSBkaXNhYmxpbmcgb2YgYXBwZWFyYW5jZSB3aGVuIGNlcnRhaW4gb3RoZXIgcHJv
cGVydGllcyBsaWtlCiAgICAgLy8gImJvcmRlciIgYXJlIHNldCwgb3IgaWYgdGhlIGFwcGVhcmFu
Y2UgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgdGhlbWUuCi0gICAgdm9pZCBhZGp1c3RTdHlsZShT
dHlsZVJlc29sdmVyJiwgUmVuZGVyU3R5bGUmLCBjb25zdCBFbGVtZW50KiwgIGJvb2wgVUFIYXNB
cHBlYXJhbmNlLCBjb25zdCBCb3JkZXJEYXRhJiwgY29uc3QgRmlsbExheWVyJiwgY29uc3QgQ29s
b3ImIGJhY2tncm91bmRDb2xvcik7CisgICAgdm9pZCBhZGp1c3RTdHlsZShTdHlsZVJlc29sdmVy
JiwgUmVuZGVyU3R5bGUmLCBjb25zdCBFbGVtZW50KiwgY29uc3QgUmVuZGVyU3R5bGUqIHVzZXJB
Z2VudEFwcGVhcmFuY2VTdHlsZSk7CiAKICAgICAvLyBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgdG8g
cGFpbnQgdGhlIHdpZGdldCBhcyBhIGJhY2tncm91bmQgb2YgdGhlIFJlbmRlck9iamVjdC4gIEEg
d2lkZ2V0J3MgZm9yZWdyb3VuZCwgZS5nLiwgdGhlCiAgICAgLy8gdGV4dCBvZiBhIGJ1dHRvbiwg
aXMgYWx3YXlzIHJlbmRlcmVkIGJ5IHRoZSBlbmdpbmUgaXRzZWxmLiAgVGhlIGJvb2xlYW4gcmV0
dXJuIHZhbHVlIGluZGljYXRlcwpAQCAtMTE2LDcgKzExNiw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIGJvb2wgY29udHJvbFN1cHBvcnRzVGludHMoY29uc3QgUmVuZGVyT2JqZWN0JikgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KIAogICAgIC8vIFdoZXRoZXIgb3Igbm90IHRoZSBjb250cm9sIGhh
cyBiZWVuIHN0eWxlZCBlbm91Z2ggYnkgdGhlIGF1dGhvciB0byBkaXNhYmxlIHRoZSBuYXRpdmUg
YXBwZWFyYW5jZS4KLSAgICB2aXJ0dWFsIGJvb2wgaXNDb250cm9sU3R5bGVkKGNvbnN0IFJlbmRl
clN0eWxlJiwgY29uc3QgQm9yZGVyRGF0YSYsIGNvbnN0IEZpbGxMYXllciYsIGNvbnN0IENvbG9y
JiBiYWNrZ3JvdW5kQ29sb3IpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBpc0NvbnRyb2xTdHls
ZWQoY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBSZW5kZXJTdHlsZSYgdXNlckFnZW50U3R5bGUp
IGNvbnN0OwogCiAgICAgLy8gQSBnZW5lcmFsIG1ldGhvZCBhc2tpbmcgaWYgYW55IGNvbnRyb2wg
dGludGluZyBpcyBzdXBwb3J0ZWQgYXQgYWxsLgogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0Nv
bnRyb2xUaW50cygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZUlPUy5oCmluZGV4IDczODU5MTAzNWVmLi43ZTM5ZWM2OTk5NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLmgKQEAgLTY2LDcgKzY2LDcg
QEAgcHJvdGVjdGVkOgogICAgIHZvaWQgdXBkYXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9u
KENTU1ZhbHVlSUQsIEZvbnRDYXNjYWRlRGVzY3JpcHRpb24mKSBjb25zdCBvdmVycmlkZTsKICAg
ICBpbnQgYmFzZWxpbmVQb3NpdGlvbihjb25zdCBSZW5kZXJCb3gmKSBjb25zdCBvdmVycmlkZTsK
IAotICAgIGJvb2wgaXNDb250cm9sU3R5bGVkKGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3QgQm9y
ZGVyRGF0YSYsIGNvbnN0IEZpbGxMYXllciYgYmFja2dyb3VuZCwgY29uc3QgQ29sb3ImIGJhY2tn
cm91bmRDb2xvcikgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBpc0NvbnRyb2xTdHlsZWQoY29u
c3QgUmVuZGVyU3R5bGUmLCBjb25zdCBSZW5kZXJTdHlsZSYgdXNlckFnZW50U3R5bGUpIGNvbnN0
IG92ZXJyaWRlOwogCiAgICAgLy8gTWV0aG9kcyBmb3IgZWFjaCBhcHBlYXJhbmNlIHZhbHVlLgog
ICAgIHZvaWQgYWRqdXN0Q2hlY2tib3hTdHlsZShTdHlsZVJlc29sdmVyJiwgUmVuZGVyU3R5bGUm
LCBjb25zdCBFbGVtZW50KikgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVJT1MubW0KaW5kZXggZTMxYTgzN2E2MzcuLjEwYWYwNDA2NTlhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCkBAIC00NDcsMTYgKzQ0
NywxNiBAQCBpbnQgUmVuZGVyVGhlbWVJT1M6OmJhc2VsaW5lUG9zaXRpb24oY29uc3QgUmVuZGVy
Qm94JiBib3gpIGNvbnN0CiAgICAgcmV0dXJuIFJlbmRlclRoZW1lOjpiYXNlbGluZVBvc2l0aW9u
KGJveCk7CiB9CiAKLWJvb2wgUmVuZGVyVGhlbWVJT1M6OmlzQ29udHJvbFN0eWxlZChjb25zdCBS
ZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IEJvcmRlckRhdGEmIGJvcmRlciwgY29uc3QgRmlsbExh
eWVyJiBiYWNrZ3JvdW5kLCBjb25zdCBDb2xvciYgYmFja2dyb3VuZENvbG9yKSBjb25zdAorYm9v
bCBSZW5kZXJUaGVtZUlPUzo6aXNDb250cm9sU3R5bGVkKGNvbnN0IFJlbmRlclN0eWxlJiBzdHls
ZSwgY29uc3QgUmVuZGVyU3R5bGUmIHVzZXJBZ2VudFN0eWxlKSBjb25zdAogewogICAgIC8vIEJ1
dHRvbnMgYW5kIE1lbnVsaXN0QnV0dG9ucyBhcmUgc3R5bGVkIGlmIHRoZXkgY29udGFpbiBhIGJh
Y2tncm91bmQgaW1hZ2UuCiAgICAgaWYgKHN0eWxlLmFwcGVhcmFuY2UoKSA9PSBQdXNoQnV0dG9u
UGFydCB8fCBzdHlsZS5hcHBlYXJhbmNlKCkgPT0gTWVudWxpc3RCdXR0b25QYXJ0KQogICAgICAg
ICByZXR1cm4gIXN0eWxlLnZpc2l0ZWREZXBlbmRlbnRDb2xvcihDU1NQcm9wZXJ0eUJhY2tncm91
bmRDb2xvcikuaXNWaXNpYmxlKCkgfHwgc3R5bGUuYmFja2dyb3VuZExheWVycygpLmhhc0ltYWdl
KCk7CiAKICAgICBpZiAoc3R5bGUuYXBwZWFyYW5jZSgpID09IFRleHRGaWVsZFBhcnQgfHwgc3R5
bGUuYXBwZWFyYW5jZSgpID09IFRleHRBcmVhUGFydCkKLSAgICAgICAgcmV0dXJuIHN0eWxlLmJh
Y2tncm91bmRMYXllcnMoKSAhPSBiYWNrZ3JvdW5kOworICAgICAgICByZXR1cm4gc3R5bGUuYmFj
a2dyb3VuZExheWVycygpICE9IHVzZXJBZ2VudFN0eWxlLmJhY2tncm91bmRMYXllcnMoKTsKIAot
ICAgIHJldHVybiBSZW5kZXJUaGVtZTo6aXNDb250cm9sU3R5bGVkKHN0eWxlLCBib3JkZXIsIGJh
Y2tncm91bmQsIGJhY2tncm91bmRDb2xvcik7CisgICAgcmV0dXJuIFJlbmRlclRoZW1lOjppc0Nv
bnRyb2xTdHlsZWQoc3R5bGUsIHVzZXJBZ2VudFN0eWxlKTsKIH0KIAogdm9pZCBSZW5kZXJUaGVt
ZUlPUzo6YWRqdXN0UmFkaW9TdHlsZShTdHlsZVJlc29sdmVyJiwgUmVuZGVyU3R5bGUmIHN0eWxl
LCBjb25zdCBFbGVtZW50KikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lTWFjLmgKaW5kZXggYTEzNjFhZjgyMjEuLjFiOWY0NjBjNDMzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaApAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIGFkanVzdFJlcGFpbnRSZWN0KGNvbnN0IFJlbmRlck9iamVjdCYsIEZsb2F0UmVj
dCYpIGZpbmFsOwogCi0gICAgYm9vbCBpc0NvbnRyb2xTdHlsZWQoY29uc3QgUmVuZGVyU3R5bGUm
LCBjb25zdCBCb3JkZXJEYXRhJiwgY29uc3QgRmlsbExheWVyJiwgY29uc3QgQ29sb3ImIGJhY2tn
cm91bmRDb2xvcikgY29uc3QgZmluYWw7CisgICAgYm9vbCBpc0NvbnRyb2xTdHlsZWQoY29uc3Qg
UmVuZGVyU3R5bGUmLCBjb25zdCBSZW5kZXJTdHlsZSYgdXNlckFnZW50U3R5bGUpIGNvbnN0IGZp
bmFsOwogCiAgICAgYm9vbCBzdXBwb3J0c1NlbGVjdGlvbkZvcmVncm91bmRDb2xvcnMoT3B0aW9u
U2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCmluZGV4IGE0MmNlNmVjMmQ2Li5hYTU5OTFjZTY3
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQpAQCAtODgy
LDExICs4ODIsMTAgQEAgYm9vbCBSZW5kZXJUaGVtZU1hYzo6dXNlc1Rlc3RNb2RlRm9jdXNSaW5n
Q29sb3IoKSBjb25zdAogICAgIHJldHVybiBXZWJDb3JlOjp1c2VzVGVzdE1vZGVGb2N1c1JpbmdD
b2xvcigpOwogfQogCi1ib29sIFJlbmRlclRoZW1lTWFjOjppc0NvbnRyb2xTdHlsZWQoY29uc3Qg
UmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBCb3JkZXJEYXRhJiBib3JkZXIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgRmlsbExheWVyJiBiYWNrZ3JvdW5kLCBj
b25zdCBDb2xvciYgYmFja2dyb3VuZENvbG9yKSBjb25zdAorYm9vbCBSZW5kZXJUaGVtZU1hYzo6
aXNDb250cm9sU3R5bGVkKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3QgUmVuZGVyU3R5
bGUmIHVzZXJBZ2VudFN0eWxlKSBjb25zdAogewogICAgIGlmIChzdHlsZS5hcHBlYXJhbmNlKCkg
PT0gVGV4dEZpZWxkUGFydCB8fCBzdHlsZS5hcHBlYXJhbmNlKCkgPT0gVGV4dEFyZWFQYXJ0IHx8
IHN0eWxlLmFwcGVhcmFuY2UoKSA9PSBMaXN0Ym94UGFydCkKLSAgICAgICAgcmV0dXJuIHN0eWxl
LmJvcmRlcigpICE9IGJvcmRlcjsKKyAgICAgICAgcmV0dXJuIHN0eWxlLmJvcmRlcigpICE9IHVz
ZXJBZ2VudFN0eWxlLmJvcmRlcigpOwogCiAgICAgLy8gRklYTUU6IFRoaXMgaXMgaG9ycmlibGUs
IGJ1dCB0aGVyZSBpcyBub3QgbXVjaCBlbHNlIHRoYXQgY2FuIGJlIGRvbmUuICBNZW51IGxpc3Rz
IGNhbm5vdCBkcmF3IHByb3Blcmx5IHdoZW4KICAgICAvLyBzY2FsZWQuICBUaGV5IGNhbid0IHJl
YWxseSBkcmF3IHByb3Blcmx5IHdoZW4gdHJhbnNmb3JtZWQgZWl0aGVyLiAgV2UgY2FuJ3QgZGV0
ZWN0IHRoZSB0cmFuc2Zvcm0gY2FzZSBhdCBzdHlsZQpAQCAtODk1LDcgKzg5NCw3IEBAIGJvb2wg
UmVuZGVyVGhlbWVNYWM6OmlzQ29udHJvbFN0eWxlZChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUs
IGNvbnN0IEJvcmRlckRhdGEmCiAgICAgaWYgKHN0eWxlLmFwcGVhcmFuY2UoKSA9PSBNZW51bGlz
dFBhcnQgJiYgc3R5bGUuZWZmZWN0aXZlWm9vbSgpICE9IDEuMGYpCiAgICAgICAgIHJldHVybiB0
cnVlOwogCi0gICAgcmV0dXJuIFJlbmRlclRoZW1lOjppc0NvbnRyb2xTdHlsZWQoc3R5bGUsIGJv
cmRlciwgYmFja2dyb3VuZCwgYmFja2dyb3VuZENvbG9yKTsKKyAgICByZXR1cm4gUmVuZGVyVGhl
bWU6OmlzQ29udHJvbFN0eWxlZChzdHlsZSwgdXNlckFnZW50U3R5bGUpOwogfQogCiBzdGF0aWMg
RmxvYXRSZWN0IGluZmxhdGVSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uc3QgSW50U2l6
ZSYgc2l6ZSwgY29uc3QgaW50KiBtYXJnaW5zLCBmbG9hdCB6b29tTGV2ZWwpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
c3R5bGUvU3R5bGVCdWlsZGVyLmNwcAppbmRleCBlNThjMjAzMmU1Yy4uMTMyODk2Y2NiZDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyLmNwcApAQCAtNDksMTIgKzQ5LDE3IEBAIHN0
YXRpYyBQcm9wZXJ0eUNhc2NhZGU6OkRpcmVjdGlvbiBkaXJlY3Rpb25Gcm9tU3R5bGUoY29uc3Qg
UmVuZGVyU3R5bGUmIHN0eWxlKQogICAgIHJldHVybiB7IHN0eWxlLmRpcmVjdGlvbigpLCBzdHls
ZS53cml0aW5nTW9kZSgpIH07CiB9CiAKK0J1aWxkZXI6OkJ1aWxkZXIoUmVuZGVyU3R5bGUmIHN0
eWxlLCBjb25zdCBTdHlsZVJlc29sdmVyJiByZXNvbHZlciwgY29uc3QgTWF0Y2hSZXN1bHQmIG1h
dGNoUmVzdWx0LCBPcHRpb25TZXQ8Q2FzY2FkZUxldmVsPiBjYXNjYWRlTGV2ZWxzLCBQcm9wZXJ0
eUNhc2NhZGU6OkluY2x1ZGVkUHJvcGVydGllcyBpbmNsdWRlZFByb3BlcnRpZXMpCisgICAgOiBt
X2Nhc2NhZGUobWF0Y2hSZXN1bHQsIGNhc2NhZGVMZXZlbHMsIGluY2x1ZGVkUHJvcGVydGllcywg
ZGlyZWN0aW9uRnJvbVN0eWxlKHN0eWxlKSkKKyAgICAsIG1fc3RhdGUoKnRoaXMsIHN0eWxlLCAq
cmVzb2x2ZXIucGFyZW50U3R5bGUoKSwgcmVzb2x2ZXIucm9vdEVsZW1lbnRTdHlsZSgpLCByZXNv
bHZlci5kb2N1bWVudCgpLCByZXNvbHZlci5lbGVtZW50KCkpCit7CisgICAgQVNTRVJUKHJlc29s
dmVyLnBhcmVudFN0eWxlKCkpOworfQorCiBCdWlsZGVyOjpCdWlsZGVyKFN0eWxlUmVzb2x2ZXIm
IHJlc29sdmVyLCBjb25zdCBNYXRjaFJlc3VsdCYgbWF0Y2hSZXN1bHQsIE9wdGlvblNldDxDYXNj
YWRlTGV2ZWw+IGNhc2NhZGVMZXZlbHMsIFByb3BlcnR5Q2FzY2FkZTo6SW5jbHVkZWRQcm9wZXJ0
aWVzIGluY2x1ZGVkUHJvcGVydGllcykKLSAgICA6IG1fY2FzY2FkZShtYXRjaFJlc3VsdCwgY2Fz
Y2FkZUxldmVscywgaW5jbHVkZWRQcm9wZXJ0aWVzLCBkaXJlY3Rpb25Gcm9tU3R5bGUoKnJlc29s
dmVyLnN0eWxlKCkpKQotICAgICwgbV9zdGF0ZSgqdGhpcywgKnJlc29sdmVyLnN0eWxlKCksICpy
ZXNvbHZlci5wYXJlbnRTdHlsZSgpLCByZXNvbHZlci5yb290RWxlbWVudFN0eWxlKCksIHJlc29s
dmVyLmRvY3VtZW50KCksIHJlc29sdmVyLmVsZW1lbnQoKSkKKyAgICA6IEJ1aWxkZXIoKnJlc29s
dmVyLnN0eWxlKCksIHJlc29sdmVyLCBtYXRjaFJlc3VsdCwgY2FzY2FkZUxldmVscywgaW5jbHVk
ZWRQcm9wZXJ0aWVzKQogewogICAgIEFTU0VSVChyZXNvbHZlci5zdHlsZSgpKTsKLSAgICBBU1NF
UlQocmVzb2x2ZXIucGFyZW50U3R5bGUoKSk7CiB9CiAKIEJ1aWxkZXI6On5CdWlsZGVyKCkgPSBk
ZWZhdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXIuaAppbmRleCA5ZmMwODBiZDIyNy4u
NDYzZDg1NzQ3OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlci5oCkBAIC0zNSw2ICsz
NSw3IEBAIG5hbWVzcGFjZSBTdHlsZSB7CiBjbGFzcyBCdWlsZGVyIHsKICAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKKyAgICBCdWlsZGVyKFJlbmRlclN0eWxlJiwgY29uc3Qg
U3R5bGVSZXNvbHZlciYsIGNvbnN0IE1hdGNoUmVzdWx0JiwgT3B0aW9uU2V0PENhc2NhZGVMZXZl
bD4sIFByb3BlcnR5Q2FzY2FkZTo6SW5jbHVkZWRQcm9wZXJ0aWVzID0gUHJvcGVydHlDYXNjYWRl
OjpJbmNsdWRlZFByb3BlcnRpZXM6OkFsbCk7CiAgICAgQnVpbGRlcihTdHlsZVJlc29sdmVyJiwg
Y29uc3QgTWF0Y2hSZXN1bHQmLCBPcHRpb25TZXQ8Q2FzY2FkZUxldmVsPiwgUHJvcGVydHlDYXNj
YWRlOjpJbmNsdWRlZFByb3BlcnRpZXMgPSBQcm9wZXJ0eUNhc2NhZGU6OkluY2x1ZGVkUHJvcGVy
dGllczo6QWxsKTsKICAgICB+QnVpbGRlcigpOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>