<?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>212174</bug_id>
          
          <creation_ts>2020-05-20 16:11:47 -0700</creation_ts>
          <short_desc>Dictation context should be an object identifier, not a type-punned pointer</short_desc>
          <delta_ts>2020-05-20 19:00:16 -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>HTML Editing</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="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>andersca</cc>
    
    <cc>annulen</cc>
    
    <cc>cdumez</cc>
    
    <cc>dbates</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kangil.han</cc>
    
    <cc>mifenton</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>useafterfree</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1654703</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-05-20 16:11:47 -0700</bug_when>
    <thetext>Dictation context should be an object identifier, not a type-punned pointer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654711</commentid>
    <comment_count>1</comment_count>
      <attachid>399910</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-05-20 16:29:06 -0700</bug_when>
    <thetext>Created attachment 399910
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654775</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-05-20 18:59:28 -0700</bug_when>
    <thetext>Committed r261981: &lt;https://trac.webkit.org/changeset/261981&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654776</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-05-20 19:00:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/63473992&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399910</attachid>
            <date>2020-05-20 16:29:06 -0700</date>
            <delta_ts>2020-05-20 16:37:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212174-20200520162902.patch</filename>
            <type>text/plain</type>
            <size>58428</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxOTI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmYyMGRiZjZjNDM4YTFm
Y2ZiNDY2ZDA3OWVmYjBkMDdjZGM0ODEzYy4uY2Q1NzBkNjlmOGJjZTI3YjM1MTkzYTUzYjhjZWY5
YTMxMGUwN2E1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDIwLTA1LTIwICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBEaWN0YXRpb24gY29udGV4dCBz
aG91bGQgYmUgYW4gb2JqZWN0IGlkZW50aWZpZXIsIG5vdCBhIHR5cGUtcHVubmVkIHBvaW50ZXIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjE3NAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogSGVhZGVy
cy5jbWFrZTogQWRkZWQgRGljdGF0aW9uQ29udGV4dC5oLgorICAgICAgICAqIFNvdXJjZXMudHh0
OiBSZW1vdmVkIERpY3RhdGlvbkFsdGVybmF0aXZlLmNwcC4KKyAgICAgICAgKiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFkZGVkIERpY3RhdGlvbkNvbnRleHQuaCwgcmVtb3Zl
ZCBEaWN0YXRpb25BbHRlcm5hdGl2ZS5jcHAuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnRNYXJr
ZXIuaDogVXNlIERpY3RhdGlvbkNvbnRleHQgaW5zdGVhZCBvZiB1aW50NjRfdC4KKyAgICAgICAg
KiBlZGl0aW5nL0FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6dGltZXJGaXJlZCk6IERpdHRvLgorICAgICAg
ICAqIGVkaXRpbmcvQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5oOiBEaXR0by4KKworICAgICAg
ICAqIGVkaXRpbmcvRGljdGF0aW9uQWx0ZXJuYXRpdmUuaDogVXNlIERpY3RhdGlvbkNvbnRleHQg
aW5zdGVhZCBvZiB1aW50NjRfdCwgYnV0IGFsc28KKyAgICAgICAgdXNlIENoYXJhY3RlclJhbmdl
IHJhdGhlciB0aGFuIHR3byAidW5zaWduZWQiIHZhbHVlcy4gQWxzbyBjb252ZXJ0IGludG8gYSBz
aW1wbGUKKyAgICAgICAgc3RydWN0IHdpdGhvdXQgY29uc3RydWN0b3JzOyBkb24ndCByZWFsbHkg
bmVlZCB0aG9zZS4KKworICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uQWx0ZXJuYXRpdmUuY3Bw
OiBSZW1vdmVkLgorCisgICAgICAgICogZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkNvbW1hbmQ6OmNvbGxlY3REaWN0YXRpb25BbHRlcm5h
dGl2ZXNJblJhbmdlKTogVXBkYXRlZCBmb3IKKyAgICAgICAgY2hhbmdlcyB0byBEaWN0YXRpb25B
bHRlcm5hdGl2ZS4KKworICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uQ29udGV4dC5oOiBBZGRl
ZC4KKworICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmg6IEZvcndhcmQgZGVjbGFyZSBEaWN0YXRp
b25BbHRlcm5hdGl2ZSByYXRoZXIgdGhhbiBpbmNsdWRpbmcKKyAgICAgICAgaXRzIGhlYWRlci4K
KworICAgICAgICAqIGVkaXRpbmcvY29jb2EvQWx0ZXJuYXRpdmVUZXh0Q29udGV4dENvbnRyb2xs
ZXIuaDogVXNlIGEgcGFpciBvZiBtYXBzIHRvIGJpbmQgTlNUZXh0QWx0ZXJuYXRpdmVzCisgICAg
ICAgIG9iamVjdHMgdG8gb2JqZWN0IGlkZW50aWZpZXJzLiBSZW1vdmUgdW5uZWNlc3NhcnkgZXhw
bGljaXQgY29uc3RydWN0b3IgYW5kIGRlc3RydWN0b3IuIEFsc28gcmVtb3ZlZAorICAgICAgICB1
bm5lY2Vzc2FyeSB1c2Ugb2YgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQsIHNpbmNlIHRoaXMgaXMg
b25seSB1c2VkIGFzIGEgZGF0YSBtZW1iZXIgb2YgYW5vdGhlcgorICAgICAgICBjbGFzcy4gUmVt
b3ZlZCB1bnVzZWQgaW52YWxpZENvbnRleHQgY29uc3RhbnQuCisgICAgICAgICogZWRpdGluZy9j
b2NvYS9BbHRlcm5hdGl2ZVRleHRDb250ZXh0Q29udHJvbGxlci5tbTogUmVtb3ZlZCB0aGUgdW5u
ZWVkZWQgaW5jbHVkZXMuCisgICAgICAgIFRoaXMgZmlsZSB0cmVhdHMgTlNUZXh0QWx0ZXJuYXRp
dmVzIGFzIGFuIG9wYXF1ZSBPYmplY3RpdmUtQyB0eXBlIGFuZCBzbyBkb2Vzbid0IG5lZWQKKyAg
ICAgICAgYW55IGRldGFpbHMgb2YgdGhhdCBjbGFzcy4KKyAgICAgICAgKFdlYkNvcmU6OkFsdGVy
bmF0aXZlVGV4dENvbnRleHRDb250cm9sbGVyOjphZGRBbHRlcm5hdGl2ZXMpOiBDaGFuZ2VkIHRv
IHJldHVybiBhCisgICAgICAgIERpY3RhdGlvbkNvbnRleHQgYW5kIHVzZSB0d28gbWFwcywgdXNp
bmcgSGFzaE1hcDo6ZW5zdXJlIHRvIGF2b2lkIGRvdWJsZSBoYXNoaW5nLgorICAgICAgICAoV2Vi
Q29yZTo6QWx0ZXJuYXRpdmVUZXh0Q29udGV4dENvbnRyb2xsZXI6OmFsdGVybmF0aXZlc0ZvckNv
bnRleHQpOiBBZGRlZCBhIG51bGwgY2hlY2suCisgICAgICAgIChXZWJDb3JlOjpBbHRlcm5hdGl2
ZVRleHRDb250ZXh0Q29udHJvbGxlcjo6cmVtb3ZlQWx0ZXJuYXRpdmVzRm9yQ29udGV4dCk6IERp
dHRvLiBBbHNvCisgICAgICAgIHVwZGF0ZWQgdG8gcmVtb3ZlIGZyb20gYm90aCBtYXBzLgorICAg
ICAgICAoV2ViQ29yZTo6QWx0ZXJuYXRpdmVUZXh0Q29udGV4dENvbnRyb2xsZXI6OmNsZWFyKTog
Q2xlYXIgYm90aCBtYXBzLgorCisgICAgICAgICogZWRpdGluZy9jb2NvYS9BbHRlcm5hdGl2ZVRl
eHRVSUNvbnRyb2xsZXIuaDogU2luY2UgdGhpcyBoZWFkZXIgaXMgdXNlZCBvbmx5IGZyb20gT2Jq
ZWN0aXZlLUMsCisgICAgICAgIHJlbW92ZWQgdXNlIG9mIE9CSkNfQ0xBU1MuIFB1dCBzaG93QWx0
ZXJuYXRpdmVzIGluc2lkZSBhIG1hY09TLXNwZWNpZmljIGJsb2NrLiBVc2UgRGljdGF0aW9uQ29u
dGV4dAorICAgICAgICBpbnN0ZWFkIG9mIHVpbnQ2NF90LgorICAgICAgICAqIGVkaXRpbmcvY29j
b2EvQWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyLm1tOgorICAgICAgICAoV2ViQ29yZTo6QWx0
ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyOjphZGRBbHRlcm5hdGl2ZXMpOiBVc2UgRGljdGF0aW9u
Q29udGV4dCBpbnN0ZWFkIG9mIHVpbnQ2NF90LgorICAgICAgICAoV2ViQ29yZTo6QWx0ZXJuYXRp
dmVUZXh0VUlDb250cm9sbGVyOjphbHRlcm5hdGl2ZXNGb3JDb250ZXh0KTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpBbHRlcm5hdGl2ZVRleHRVSUNvbnRyb2xsZXI6OnNob3dBbHRlcm5hdGl2
ZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkFsdGVybmF0aXZlVGV4dFVJQ29udHJvbGxl
cjo6aGFuZGxlQWNjZXB0ZWRBbHRlcm5hdGl2ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
QWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyOjpyZW1vdmVBbHRlcm5hdGl2ZXMpOiBEaXR0by4K
KworICAgICAgICAqIHBhZ2UvQWx0ZXJuYXRpdmVUZXh0Q2xpZW50Lmg6IFVzZSBEaWN0YXRpb25D
b250ZXh0IGluc3RlYWQgb2YgdWludDY0X3QuCisKIDIwMjAtMDUtMjAgIEFudG9pbmUgUXVpbnQg
IDxncmFvdXRzQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViIEFuaW1hdGlvbnNdIEFuaW1hdGlv
biBlbmdpbmUgc2hvdWxkIG5vdCB3YWtlIHVwIGV2ZXJ5IHRpY2sgZm9yIHN0ZXBzIHRpbWluZyBm
dW5jdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggNzk3MGYwZmM2MzdkZjVhYmM5NjM4YWIzOWFjOGFlN2JlM2Yy
MDEwZS4uZjc3MGY5ODBhN2E2Mjk5YzgyNjVlNjYzMGQ0MmRiNmRmMThkOGYyNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw0NiBAQAorMjAyMC0wNS0yMCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5j
b20+CisKKyAgICAgICAgRGljdGF0aW9uIGNvbnRleHQgc2hvdWxkIGJlIGFuIG9iamVjdCBpZGVu
dGlmaWVyLCBub3QgYSB0eXBlLXB1bm5lZCBwb2ludGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTIxNzQKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OiBB
ZGRlZCBEaWN0YXRpb25Db250ZXh0IHRvIHRoZSBsaXN0IG9mIHR5cGVzIHRoYXQgYXJlCisgICAg
ICAgIG5vdCBDKysgY2xhc3Nlcy4KKworICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuY3BwOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPERpY3RhdGlvbkFsdGVybmF0
aXZlPjo6ZW5jb2RlKTogVXBkYXRlZCBmb3IgY2hhbmdlIHRvCisgICAgICAgIERpY3RhdGlvbkFs
dGVybmF0aXZlIHN0cnVjdHVyZS4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxEaWN0YXRp
b25BbHRlcm5hdGl2ZT46OmRlY29kZSk6IERpdHRvLgorCisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL1BhZ2VDbGllbnRJbXBsQ29jb2EuaDogVXNlIERpY3RhdGlvbkNvbnRleHQgaW5zdGVhZCBv
ZiB1aW50NjRfdC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvUGFnZUNsaWVudEltcGxDb2Nv
YS5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGxDb2NvYTo6YWRkRGljdGF0aW9u
QWx0ZXJuYXRpdmVzKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsQ29j
b2E6OnJlbW92ZURpY3RhdGlvbkFsdGVybmF0aXZlcyk6IERpdHRvLgorICAgICAgICAoV2ViS2l0
OjpQYWdlQ2xpZW50SW1wbENvY29hOjpkaWN0YXRpb25BbHRlcm5hdGl2ZXMpOiBEaXR0by4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW06CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6aW5zZXJ0RGljdGF0ZWRUZXh0QXN5bmMpOiBEaXR0by4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzaG93
RGljdGF0aW9uQWx0ZXJuYXRpdmVVSSk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnJlbW92ZURpY3RhdGlvbkFsdGVybmF0aXZlcyk6IERpdHRvLgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmRpY3RhdGlvbkFsdGVybmF0aXZlcyk6IERpdHRvLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDogRGl0dG8uCisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjogRGl0dG8uCisgICAgICAgICogVUlQcm9jZXNzL21h
Yy9QYWdlQ2xpZW50SW1wbE1hYy5oOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1Bh
Z2VDbGllbnRJbXBsTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2hv
d0RpY3RhdGlvbkFsdGVybmF0aXZlVUkpOiBEaXR0by4KKworICAgICAgICAqIFVJUHJvY2Vzcy9t
YWMvV2ViUGFnZVByb3h5TWFjLm1tOiBSZW1vdmVkIHVubmVlZGVkIGluY2x1ZGUgb2YKKyAgICAg
ICAgRGljdGF0aW9uQWx0ZXJuYXRpdmUuaC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50Lmg6IFVzZSBEaWN0YXRpb25Db250ZXh0
CisgICAgICAgIGluc3RlYWQgb2YgdWludDY0X3QuIEFsc28gbWFya2VkIGNsYXNzIGZpbmFsIGFu
ZCBtYWRlIGV2ZXJ5dGhpbmcgcHJpdmF0ZS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L21hYy9XZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQ6OnJlbW92ZURpY3RhdGlvbkFsdGVybmF0aXZlcyk6
IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQ6OnNob3dE
aWN0YXRpb25BbHRlcm5hdGl2ZVVJKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYkFsdGVy
bmF0aXZlVGV4dENsaWVudDo6ZGljdGF0aW9uQWx0ZXJuYXRpdmVzKTogRGl0dG8uCisKIDIwMjAt
MDUtMjAgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAg
VXBkYXRlIHNvbWUgbWVkaWEgbG9nZ2luZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4
IGFhMGFkZTIxZjVmN2M2MjczMmUwNzQxYjI3ZjdlYTliNmM1ZTk3NTMuLjgzOTgzZWZhZTQ4ZTUy
YjhlODI2YzEyZGRiODkwZWJjODY5N2YzNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyNyBAQAorMjAyMC0wNS0yMCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5j
b20+CisKKyAgICAgICAgRGljdGF0aW9uIGNvbnRleHQgc2hvdWxkIGJlIGFuIG9iamVjdCBpZGVu
dGlmaWVyLCBub3QgYSB0eXBlLXB1bm5lZCBwb2ludGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTIxNzQKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkFsdGVybmF0aXZl
VGV4dENsaWVudC5oOiBVc2UgRGljdGF0aW9uQ29udGV4dCBpbnN0ZWFkIG9mIHVpbnQ2NF90Lgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkFsdGVybmF0aXZlVGV4dENsaWVudC5tbToKKyAg
ICAgICAgKFdlYkFsdGVybmF0aXZlVGV4dENsaWVudDo6cmVtb3ZlRGljdGF0aW9uQWx0ZXJuYXRp
dmVzKTogRGl0dG8uCisgICAgICAgIChXZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQ6OnNob3dEaWN0
YXRpb25BbHRlcm5hdGl2ZVVJKTogRGl0dG8uCisgICAgICAgIChXZWJBbHRlcm5hdGl2ZVRleHRD
bGllbnQ6OmRpY3RhdGlvbkFsdGVybmF0aXZlcyk6IERpdHRvLgorCisgICAgICAgICogV2ViVmll
dy9XZWJIVE1MVmlldy5tbTogQWRkZWQgaW5jbHVkZSBvZiBEaWN0YXRpb25BbHRlcm5hdGl2ZS5o
LCBub3cgbmVlZGVkIGJlY2F1c2UKKyAgICAgICAgaXQncyBmb3J3YXJkIGRlY2xhcmVkIGluIEVk
aXRvci5oLgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbTogRGl0dG8uCisgICAgICAgICgt
W1dlYlZpZXcgX2dldFdlYkNvcmVEaWN0YXRpb25BbHRlcm5hdGl2ZXM6ZnJvbVRleHRBbHRlcm5h
dGl2ZXM6XSk6IFVwZGF0ZWQgZm9yIGNoYW5nZQorICAgICAgICB0byBEaWN0YXRpb25BbHRlcm5h
dGl2ZS4KKyAgICAgICAgKC1bV2ViVmlldyBfc2hvd0RpY3RhdGlvbkFsdGVybmF0aXZlVUk6Zm9y
RGljdGF0aW9uQ29udGV4dDpdKTogVXNlIERpY3RhdGlvbkNvbnRleHQKKyAgICAgICAgaW5zdGVh
ZCBvZiB1aW50NjRfdC4KKyAgICAgICAgKC1bV2ViVmlldyBfcmVtb3ZlRGljdGF0aW9uQWx0ZXJu
YXRpdmVzOl0pOiBEaXR0by4KKyAgICAgICAgKC1bV2ViVmlldyBfZGljdGF0aW9uQWx0ZXJuYXRp
dmVzOl0pOiBEaXR0by4KKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oOiBVcGRh
dGVkIGZvciB0aGUgYWJvdmUuCisKIDIwMjAtMDUtMTggIERhdmlkIEtpbHplciAgPGRka2lsemVy
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXBsYWNlIFRleHRJbmRpY2F0b3JPcHRpb25zIHdpdGgg
T3B0aW9uU2V0PFRleHRJbmRpY2F0b3JPcHRpb24+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBiMTAy
NDA0OTFjODQ0MjUzMDUzMzA1OTUwZmQyMWIxMjRjZjVlNTE1Li5mNGE5OWFiYjc5ZjkzMDhiN2Jl
Y2Q5MWQwYWM2ZGYzZjgwODk0YTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJz
LmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTQ5NSw2ICs0OTUs
NyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgZWRpdGluZy9D
b21wb3NpdGlvbkhpZ2hsaWdodC5oCiAgICAgZWRpdGluZy9Db21wb3NpdGlvblVuZGVybGluZS5o
CiAgICAgZWRpdGluZy9EaWN0YXRpb25BbHRlcm5hdGl2ZS5oCisgICAgZWRpdGluZy9EaWN0YXRp
b25Db250ZXh0LmgKICAgICBlZGl0aW5nL0RpY3Rpb25hcnlQb3B1cEluZm8uaAogICAgIGVkaXRp
bmcvRWRpdEFjdGlvbi5oCiAgICAgZWRpdGluZy9FZGl0aW5nLmgKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXgg
Y2U2YTExNDc3OTRlMzQzNDNkZDUzYTZmYWM2NWIyOTgxZTEzNDAyNy4uY2NkNjcyOGI4NGU0N2E0
ZWQ0MTE4NzIxOWNjOTUwMTY3MDQxN2NiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTEwNDAsNyArMTA0
MCw2IEBAIGVkaXRpbmcvQ3JlYXRlTGlua0NvbW1hbmQuY3BwCiBlZGl0aW5nL0N1c3RvbVVuZG9T
dGVwLmNwcAogZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAogZWRpdGluZy9E
ZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAotZWRpdGluZy9EaWN0YXRpb25BbHRlcm5hdGl2ZS5j
cHAKIGVkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKIGVkaXRpbmcvRWRpdEFjdGlvbi5jcHAK
IGVkaXRpbmcvRWRpdENvbW1hbmQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggM2ZiMTViZWI0N2RmMjAyMGM4NzMzNmI0NGVm
NTE3YzQyNDU0NTkyNi4uZTdjYmM4NzI5NTZlMjQ0Yjg0ODg2NzVhNGNhMThmYzRiNzczNjFiZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMjY4Myw2ICsyNjgzLDcgQEAKIAkJOTM4MEY0NzQwOUExMUFCNDAwMUZEQjM0IC8qIFdp
ZGdldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM4
MEY0NzIwOUExMUFCNDAwMUZEQjM0IC8qIFdpZGdldC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzODJBQUI0MEQ4QzM4NjEwMEYzNTdBNiAvKiBO
b2RlV2l0aEluZGV4LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5MzgyQUFCMTBEOEMzODYxMDBGMzU3QTYgLyogTm9kZVdpdGhJbmRleC5oICovOyB9Owog
CQk5MzgyREY1ODEwQThENUM5MDA5MjU2NTIgLyogQ29sb3JTcGFjZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM4MkRGNTcxMEE4RDVDOTAwOTI1NjUy
IC8qIENvbG9yU3BhY2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQk5Mzg0MzBCNDI0NzVERTQwMDAzRjk2MTcgLyogRGljdGF0aW9uQ29udGV4dC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM4NDMwQjIy
NDc1REUzRjAwM0Y5NjE3IC8qIERpY3RhdGlvbkNvbnRleHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzhFNjVGMTA5RjA5ODQwMDA4QTQ4RUMg
LyogSlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzhFNjVGMDA5RjA5ODQwMDA4QTQ4RUMgLyogSlNIVE1M
RWxlbWVudFdyYXBwZXJGYWN0b3J5LmggKi87IH07CiAJCTkzOEU2NjYyMDlGMDlCODcwMDhBNDhF
QyAvKiBKU0hUTUxDYW52YXNFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5MzhFNjY2MTA5RjA5Qjg3MDA4QTQ4RUMgLyogSlNIVE1MQ2FudmFz
RWxlbWVudC5oICovOyB9OwogCQk5MzkxQTk5MTE2Mjc0NkNCMDAyOTczMzAgLyogU2Nyb2xsaW5n
Q29vcmRpbmF0b3JNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzOTFBOTkwMTYyNzQ2Q0IwMDI5NzMzMCAvKiBTY3JvbGxpbmdDb29yZGluYXRvck1h
Yy5oICovOyB9OwpAQCAtMTA4OTMsNiArMTA4OTQsNyBAQAogCQk5MzgxQjk0MTIzRjlCMEUwMDA3
MTE4QjQgLyogUmFkaW9Ob2RlTGlzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmFkaW9Ob2RlTGlzdC5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzODJBQUIxMEQ4QzM4NjEwMEYzNTdBNiAvKiBOb2Rl
V2l0aEluZGV4LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5vZGVXaXRoSW5k
ZXguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM4MkRGNTcxMEE4RDVDOTAwOTI1
NjUyIC8qIENvbG9yU3BhY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29s
b3JTcGFjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5Mzg0MzBCMjI0NzVERTNG
MDAzRjk2MTcgLyogRGljdGF0aW9uQ29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBEaWN0YXRpb25Db250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTkzOEU2NUYwMDlGMDk4NDAwMDhBNDhFQyAvKiBKU0hUTUxFbGVtZW50V3JhcHBlckZhY3Rvcnku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEpTSFRNTEVsZW1lbnRXcmFwcGVy
RmFjdG9yeS5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxFbGVtZW50V3Jh
cHBlckZhY3RvcnkuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJOTM4
RTY1RjYwOUYwOTg1RDAwOEE0OEVDIC8qIEpTSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSlNIVE1MRWxlbWVudFdyYXBw
ZXJGYWN0b3J5LmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MRWxlbWVu
dFdyYXBwZXJGYWN0b3J5LmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsK
IAkJOTM4RTY2MjUwOUYwOTk1NjAwOEE0OEVDIC8qIEhUTUxDYW52YXNFbGVtZW50LmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBIVE1MQ2FudmFzRWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xNDMyNyw3ICsxNDMyOSw2IEBACiAJCUNFQTg0NzIwMjEyNjIyQUQw
MDk0MDgwOSAvKiBUZXh0Q2hlY2tpbmdNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBUZXh0
Q2hlY2tpbmdNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNFQkI4QzMxMjA3
ODZEQ0IwMDAzOTU0NyAvKiBGZXRjaElkaW9tcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGZXRjaElkaW9t
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRUJCOEMzMjIwNzg2RENCMDAwMzk1
NDcgLyogRmV0Y2hJZGlvbXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmV0Y2hJZGlvbXMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlDRUNBREZDMjE1Mzc3OEZGMDBFMzcwNjgg
LyogRGljdGF0aW9uQWx0ZXJuYXRpdmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gRGljdGF0aW9uQWx0ZXJuYXRpdmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDRUNBREZDMzE1Mzc3OEZGMDBFMzcwNjggLyogRGljdGF0aW9uQWx0ZXJuYXRpdmUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGljdGF0aW9uQWx0ZXJuYXRpdmUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0VDQURGQzQxNTM3NzhGRjAwRTM3MDY4
IC8qIERpY3RhdGlvbkNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gRGljdGF0aW9uQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUNFQ0FERkM1MTUzNzc4RkYwMEUzNzA2OCAvKiBEaWN0YXRpb25Db21tYW5kLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpY3RhdGlvbkNvbW1hbmQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTIxOTU3LDEwICsyMTk1OCwxMCBAQAogCQkJCTkzMzA5RDkwMDk5
RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8sCiAJCQkJOTMz
MDlEOTEwOTlFNjQ5MTAwNTZFNTgxIC8qIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovLAog
CQkJCTkzMzA5RDkyMDk5RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgg
Ki8sCi0JCQkJQ0VDQURGQzIxNTM3NzhGRjAwRTM3MDY4IC8qIERpY3RhdGlvbkFsdGVybmF0aXZl
LmNwcCAqLywKIAkJCQlDRUNBREZDMzE1Mzc3OEZGMDBFMzcwNjggLyogRGljdGF0aW9uQWx0ZXJu
YXRpdmUuaCAqLywKIAkJCQlDRUNBREZDNDE1Mzc3OEZGMDBFMzcwNjggLyogRGljdGF0aW9uQ29t
bWFuZC5jcHAgKi8sCiAJCQkJQ0VDQURGQzUxNTM3NzhGRjAwRTM3MDY4IC8qIERpY3RhdGlvbkNv
bW1hbmQuaCAqLywKKwkJCQk5Mzg0MzBCMjI0NzVERTNGMDAzRjk2MTcgLyogRGljdGF0aW9uQ29u
dGV4dC5oICovLAogCQkJCTJENTY0NkFGMUI4Rjg0OTMwMDNDNDk5NCAvKiBEaWN0aW9uYXJ5UG9w
dXBJbmZvLmggKi8sCiAJCQkJRjQ5RTk4RTQyMURFRTZDMTAwOUFFNTVFIC8qIEVkaXRBY3Rpb24u
Y3BwICovLAogCQkJCTkzMzA5RDkzMDk5RTY0OTEwMDU2RTU4MSAvKiBFZGl0QWN0aW9uLmggKi8s
CkBAIC0zMDI1Miw2ICszMDI1Myw3IEBACiAJCQkJQ0VDQURGQzcxNTM3NzhGRjAwRTM3MDY4IC8q
IERpY3RhdGlvbkFsdGVybmF0aXZlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRUNBREZDOTE1Mzc3
OEZGMDBFMzcwNjggLyogRGljdGF0aW9uQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRDBC
RDRGNUQxNDA4ODUwRjAwNjgzOUI2IC8qIERpY3RhdGlvbkNvbW1hbmRJT1MuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTkzODQzMEI0MjQ3NURFNDAwMDNGOTYxNyAvKiBEaWN0YXRpb25Db250ZXh0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5MzdGRjNENTFBMTAxMkQ2MDA4RUJBMzEgLyogRGljdGlvbmFy
eUxvb2t1cC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ1NjQ2QjAxQjhGODQ5MzAwM0M0OTk0IC8q
IERpY3Rpb25hcnlQb3B1cEluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQUYxOTk5MTUxM0Qx
MzEwMDhEQjBDMyAvKiBEaXJlY3RDb252b2x2ZXIuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnRNYXJrZXIuaAppbmRleCBkZjVjYzhmN2I1YWFlODY0ZmIwMGFkZjBlNjc4MWU5
NTAyNjU1NTcwLi5hODE3NjFkN2NhZTU3ZGM1YmQzODk1NWIxMTcxZjgxMTE0NmY4Yjk1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXIuaApAQCAtMjAsNiArMjAsNyBAQAogCiAjcHJhZ21h
IG9uY2UKIAorI2luY2x1ZGUgIkRpY3RhdGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJTaW1wbGVS
YW5nZS5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvblNl
dC5oPgpAQCAtODUsNyArODYsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0ZXhwciBPcHRp
b25TZXQ8TWFya2VyVHlwZT4gYWxsTWFya2VycygpOwogCiAgICAgc3RydWN0IERpY3RhdGlvbkRh
dGEgewotICAgICAgICB1aW50NjRfdCBjb250ZXh0OworICAgICAgICBEaWN0YXRpb25Db250ZXh0
IGNvbnRleHQ7CiAgICAgICAgIFN0cmluZyBvcmlnaW5hbFRleHQ7CiAgICAgfTsKICNpZiBFTkFC
TEUoUExBVEZPUk1fRFJJVkVOX1RFWFRfQ0hFQ0tJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9BbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmNwcAppbmRleCBkYzY0MzJmODhl
MTJiM2EzZDEzZjIzYWJmODVlMmVjNzA4M2ZkNWJiLi5iYWUzYjViM2M5ZjA3MmUwMDcyYjcyYjhl
OTVlNGEzMjY5N2ZmZTBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FsdGVy
bmF0aXZlVGV4dENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQWx0
ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5jcHAKQEAgLTI4NiwxMyArMjg2LDEzIEBAIHZvaWQgQWx0
ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6dGltZXJGaXJlZCgpCiAjaWYgVVNFKERJQ1RBVElPTl9B
TFRFUk5BVElWRVMpCiAgICAgICAgIGlmICghbV9yYW5nZVdpdGhBbHRlcm5hdGl2ZSkKICAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgdWludDY0X3QgZGljdGF0aW9uQ29udGV4dCA9IFdURjo6
Z2V0PEFsdGVybmF0aXZlRGljdGF0aW9uQ29udGV4dD4obV9kZXRhaWxzKTsKKyAgICAgICAgYXV0
byBkaWN0YXRpb25Db250ZXh0ID0gV1RGOjpnZXQ8RGljdGF0aW9uQ29udGV4dD4obV9kZXRhaWxz
KTsKICAgICAgICAgaWYgKCFkaWN0YXRpb25Db250ZXh0KQogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICBhdXRvIGJvdW5kaW5nQm94ID0gcm9vdFZpZXdSZWN0Rm9yUmFuZ2UoKm1fcmFuZ2VX
aXRoQWx0ZXJuYXRpdmUpOwogICAgICAgICBtX2lzQWN0aXZlID0gdHJ1ZTsKICAgICAgICAgaWYg
KCFib3VuZGluZ0JveC5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIGlmIChBbHRlcm5hdGl2ZVRl
eHRDbGllbnQqIGNsaWVudCA9IGFsdGVybmF0aXZlVGV4dENsaWVudCgpKQorICAgICAgICAgICAg
aWYgKGF1dG8gY2xpZW50ID0gYWx0ZXJuYXRpdmVUZXh0Q2xpZW50KCkpCiAgICAgICAgICAgICAg
ICAgY2xpZW50LT5zaG93RGljdGF0aW9uQWx0ZXJuYXRpdmVVSShib3VuZGluZ0JveCwgZGljdGF0
aW9uQ29udGV4dCk7CiAgICAgICAgIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9BbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIuaAppbmRleCBlM2RmOWI1NzZmYzMwODhk
YzI3N2IzZjc5MWNmODIzMWI5MDYzM2NiLi4zZDFmYjNjMGFjMTY4NzFjNTE0OWMyNDBkOTZkZDNk
Nzk5ZmY4ZjA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FsdGVybmF0aXZl
VGV4dENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FsdGVybmF0aXZl
VGV4dENvbnRyb2xsZXIuaApAQCAtMTA1LDE0ICsxMDUsMTMgQEAgcHVibGljOgogcHJpdmF0ZToK
ICNpZiBVU0UoQVVUT0NPUlJFQ1RJT05fUEFORUwpCiAgICAgdXNpbmcgQXV0b2NvcnJlY3Rpb25S
ZXBsYWNlbWVudCA9IFN0cmluZzsKLSAgICB1c2luZyBBbHRlcm5hdGl2ZURpY3RhdGlvbkNvbnRl
eHQgPSB1aW50NjRfdDsKIAogICAgIHN0cnVjdCBBbHRlcm5hdGl2ZVRleHRJbmZvIHsKICAgICAg
ICAgUmVmUHRyPFJhbmdlPiByYW5nZVdpdGhBbHRlcm5hdGl2ZTsKICAgICAgICAgYm9vbCBpc0Fj
dGl2ZTsKICAgICAgICAgQWx0ZXJuYXRpdmVUZXh0VHlwZSB0eXBlOwogICAgICAgICBTdHJpbmcg
b3JpZ2luYWxUZXh0OwotICAgICAgICBWYXJpYW50PEF1dG9jb3JyZWN0aW9uUmVwbGFjZW1lbnQs
IEFsdGVybmF0aXZlRGljdGF0aW9uQ29udGV4dD4gZGV0YWlsczsKKyAgICAgICAgVmFyaWFudDxB
dXRvY29ycmVjdGlvblJlcGxhY2VtZW50LCBEaWN0YXRpb25Db250ZXh0PiBkZXRhaWxzOwogICAg
IH07CiAKICAgICBTdHJpbmcgZGlzbWlzc1Nvb24oUmVhc29uRm9yRGlzbWlzc2luZ0FsdGVybmF0
aXZlVGV4dCk7CkBAIC0xMzQsNyArMTMzLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNEaXNt
aXNzZWRCeUVkaXRpbmc7CiAgICAgQWx0ZXJuYXRpdmVUZXh0VHlwZSBtX3R5cGU7CiAgICAgU3Ry
aW5nIG1fb3JpZ2luYWxUZXh0OwotICAgIFZhcmlhbnQ8QXV0b2NvcnJlY3Rpb25SZXBsYWNlbWVu
dCwgQWx0ZXJuYXRpdmVEaWN0YXRpb25Db250ZXh0PiBtX2RldGFpbHM7CisgICAgVmFyaWFudDxB
dXRvY29ycmVjdGlvblJlcGxhY2VtZW50LCBEaWN0YXRpb25Db250ZXh0PiBtX2RldGFpbHM7CiAK
ICAgICBTdHJpbmcgbV9vcmlnaW5hbFN0cmluZ0Zvckxhc3REZWxldGVkQXV0b2NvcnJlY3Rpb247
CiAgICAgUG9zaXRpb24gbV9wb3NpdGlvbkZvckxhc3REZWxldGVkQXV0b2NvcnJlY3Rpb247CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkFsdGVybmF0aXZlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQWx0ZXJuYXRpdmUuY3BwCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NGI0YzcyYTM2OTM1ODIwOWQ1ZjkzYzVlYzM5Yjc3
YThkMGU5MmE4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQWx0ZXJuYXRpdmUuY3BwCisrKyAvZGV2
L251bGwKQEAgLTEsNDUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQot
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJEaWN0YXRpb25BbHRl
cm5hdGl2ZS5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLURpY3RhdGlvbkFsdGVybmF0aXZl
OjpEaWN0YXRpb25BbHRlcm5hdGl2ZSh1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCB1
aW50NjRfdCBjb250ZXh0KQotICAgIDogcmFuZ2VTdGFydChzdGFydCkKLSAgICAsIHJhbmdlTGVu
Z3RoKGxlbmd0aCkKLSAgICAsIGRpY3RhdGlvbkNvbnRleHQoY29udGV4dCkKLXsKLX0KLSAgICAK
LURpY3RhdGlvbkFsdGVybmF0aXZlOjpEaWN0YXRpb25BbHRlcm5hdGl2ZSgpCi0gICAgOiByYW5n
ZVN0YXJ0KDApCi0gICAgLCByYW5nZUxlbmd0aCgwKQotICAgICwgZGljdGF0aW9uQ29udGV4dCgw
KQotewotfQotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlv
bkFsdGVybmF0aXZlLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkFsdGVybmF0
aXZlLmgKaW5kZXggZmE1Y2M5NDNlMDQ2OTZjZjJmNTAzODQzNTdkZWE5OTY4YzdjNzI1My4uNjJj
Y2ExMmUwNWNjMmM1YjlmNGEzMmZiZmQzY2EwNGJiNzljMjU1ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25BbHRlcm5hdGl2ZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRGljdGF0aW9uQWx0ZXJuYXRpdmUuaApAQCAtMjUsMTcgKzI1LDE0IEBACiAK
ICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSA8c3RkaW50Lmg+CisjaW5jbHVkZSAiQ2hhcmFjdGVy
UmFuZ2UuaCIKKyNpbmNsdWRlICJEaWN0YXRpb25Db250ZXh0LmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKLXN0cnVjdCBEaWN0YXRpb25BbHRlcm5hdGl2ZSB7Ci0gICAgV0VCQ09SRV9FWFBPUlQg
RGljdGF0aW9uQWx0ZXJuYXRpdmUodW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgdWlu
dDY0X3QgY29udGV4dCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgRGljdGF0aW9uQWx0ZXJuYXRpdmUo
KTsKLSAgICB1bnNpZ25lZCByYW5nZVN0YXJ0OwotICAgIHVuc2lnbmVkIHJhbmdlTGVuZ3RoOwog
Ci0gICAgLy8gVGhpcyBuZWVkIHRvIGJlIDY0IGJpdCBiZWNhdWVzZSBpdCBhY3R1YWxseSBob2xk
cyBhIHBvaW50ZXIgaW4gV2ViS2l0LgotICAgIHVpbnQ2NF90IGRpY3RhdGlvbkNvbnRleHQ7Citz
dHJ1Y3QgRGljdGF0aW9uQWx0ZXJuYXRpdmUgeworICAgIENoYXJhY3RlclJhbmdlIHJhbmdlOwor
ICAgIERpY3RhdGlvbkNvbnRleHQgY29udGV4dDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwCmluZGV4IDg0
YzJhZGUxYTk0OTdmOGI2NmEzYzExNjM2ZDE2NDBlNTI5ZGFhM2IuLmE2OGY0ZWUyYWVlYTBiOTZl
OTdmZTRlMGVlNjQwYTY5YzZkOGE2OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0
YXRpb25Db21tYW5kLmNwcApAQCAtNjUsOSArNjUsOSBAQCBwdWJsaWM6CiAgICAgewogICAgICAg
ICBhdXRvJiBtYXJrZXJDb250cm9sbGVyID0gdGV4dE5vZGUuZG9jdW1lbnQoKS5tYXJrZXJzKCk7
CiAgICAgICAgIGZvciAoYXV0byYgYWx0ZXJuYXRpdmUgOiBtX2FsdGVybmF0aXZlcykgewotICAg
ICAgICAgICAgRG9jdW1lbnRNYXJrZXI6OkRpY3RhdGlvbkRhdGEgZGF0YSB7IGFsdGVybmF0aXZl
LmRpY3RhdGlvbkNvbnRleHQsIHRleHRUb0JlSW5zZXJ0ZWQuc3Vic3RyaW5nKGFsdGVybmF0aXZl
LnJhbmdlU3RhcnQsIGFsdGVybmF0aXZlLnJhbmdlTGVuZ3RoKSB9OwotICAgICAgICAgICAgbWFy
a2VyQ29udHJvbGxlci5hZGRNYXJrZXIodGV4dE5vZGUsIGFsdGVybmF0aXZlLnJhbmdlU3RhcnQg
KyBvZmZzZXRPZkluc2VydGlvbiwgYWx0ZXJuYXRpdmUucmFuZ2VMZW5ndGgsIERvY3VtZW50TWFy
a2VyOjpEaWN0YXRpb25BbHRlcm5hdGl2ZXMsIFdURk1vdmUoZGF0YSkpOwotICAgICAgICAgICAg
bWFya2VyQ29udHJvbGxlci5hZGRNYXJrZXIodGV4dE5vZGUsIGFsdGVybmF0aXZlLnJhbmdlU3Rh
cnQgKyBvZmZzZXRPZkluc2VydGlvbiwgYWx0ZXJuYXRpdmUucmFuZ2VMZW5ndGgsIERvY3VtZW50
TWFya2VyOjpTcGVsbENoZWNraW5nRXhlbXB0aW9uKTsKKyAgICAgICAgICAgIERvY3VtZW50TWFy
a2VyOjpEaWN0YXRpb25EYXRhIGRhdGEgeyBhbHRlcm5hdGl2ZS5jb250ZXh0LCB0ZXh0VG9CZUlu
c2VydGVkLnN1YnN0cmluZyhhbHRlcm5hdGl2ZS5yYW5nZS5sb2NhdGlvbiwgYWx0ZXJuYXRpdmUu
cmFuZ2UubGVuZ3RoKSB9OworICAgICAgICAgICAgbWFya2VyQ29udHJvbGxlci5hZGRNYXJrZXIo
dGV4dE5vZGUsIGFsdGVybmF0aXZlLnJhbmdlLmxvY2F0aW9uICsgb2Zmc2V0T2ZJbnNlcnRpb24s
IGFsdGVybmF0aXZlLnJhbmdlLmxlbmd0aCwgRG9jdW1lbnRNYXJrZXI6OkRpY3RhdGlvbkFsdGVy
bmF0aXZlcywgV1RGTW92ZShkYXRhKSk7CisgICAgICAgICAgICBtYXJrZXJDb250cm9sbGVyLmFk
ZE1hcmtlcih0ZXh0Tm9kZSwgYWx0ZXJuYXRpdmUucmFuZ2UubG9jYXRpb24gKyBvZmZzZXRPZklu
c2VydGlvbiwgYWx0ZXJuYXRpdmUucmFuZ2UubGVuZ3RoLCBEb2N1bWVudE1hcmtlcjo6U3BlbGxD
aGVja2luZ0V4ZW1wdGlvbik7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTEzMiw4ICsxMzIsOCBA
QCB2b2lkIERpY3RhdGlvbkNvbW1hbmQ6Omluc2VydFBhcmFncmFwaFNlcGFyYXRvcigpCiB2b2lk
IERpY3RhdGlvbkNvbW1hbmQ6OmNvbGxlY3REaWN0YXRpb25BbHRlcm5hdGl2ZXNJblJhbmdlKHNp
emVfdCByYW5nZVN0YXJ0LCBzaXplX3QgcmFuZ2VMZW5ndGgsIFZlY3RvcjxEaWN0YXRpb25BbHRl
cm5hdGl2ZT4mIGFsdGVybmF0aXZlcykKIHsKICAgICBmb3IgKGF1dG8mIGFsdGVybmF0aXZlIDog
bV9hbHRlcm5hdGl2ZXMpIHsKLSAgICAgICAgaWYgKGFsdGVybmF0aXZlLnJhbmdlU3RhcnQgPj0g
cmFuZ2VTdGFydCAmJiAoYWx0ZXJuYXRpdmUucmFuZ2VTdGFydCArIGFsdGVybmF0aXZlLnJhbmdl
TGVuZ3RoKSA8PSByYW5nZVN0YXJ0ICsgcmFuZ2VMZW5ndGgpCi0gICAgICAgICAgICBhbHRlcm5h
dGl2ZXMuYXBwZW5kKERpY3RhdGlvbkFsdGVybmF0aXZlKGFsdGVybmF0aXZlLnJhbmdlU3RhcnQg
LSByYW5nZVN0YXJ0LCBhbHRlcm5hdGl2ZS5yYW5nZUxlbmd0aCwgYWx0ZXJuYXRpdmUuZGljdGF0
aW9uQ29udGV4dCkpOworICAgICAgICBpZiAoYWx0ZXJuYXRpdmUucmFuZ2UubG9jYXRpb24gPj0g
cmFuZ2VTdGFydCAmJiAoYWx0ZXJuYXRpdmUucmFuZ2UubG9jYXRpb24gKyBhbHRlcm5hdGl2ZS5y
YW5nZS5sZW5ndGgpIDw9IHJhbmdlU3RhcnQgKyByYW5nZUxlbmd0aCkKKyAgICAgICAgICAgIGFs
dGVybmF0aXZlcy5hcHBlbmQoeyB7IGFsdGVybmF0aXZlLnJhbmdlLmxvY2F0aW9uIC0gcmFuZ2VT
dGFydCwgYWx0ZXJuYXRpdmUucmFuZ2UubGVuZ3RoIH0sIGFsdGVybmF0aXZlLmNvbnRleHQgfSk7
CiAgICAgfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlv
bkNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQ29udGV4dC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjllYjU4MTJjMGFkZTA1NDIwMGQ0NjMwOGY3MDc2ODZlNzQxYjQwYzkKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbnRleHQuaApA
QCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgRGljdGF0aW9uQ29udGV4dFR5cGUg
eyB9OwordXNpbmcgRGljdGF0aW9uQ29udGV4dCA9IE9iamVjdElkZW50aWZpZXI8RGljdGF0aW9u
Q29udGV4dFR5cGU+OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3IuaAppbmRleCBlOTdhMDg1ZDA1MjYwN2UyZWRlZmU5N2FjMmZmOWE2ZTNiODI4ZmJjLi5mOGE5
YWQwZDNkMjQyYTdkYTRlNjcxYWUyZDdiZTRmNzFlZjE4ZTNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dG9yLmgKQEAgLTI2LDcgKzI2LDYgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQ29tcG9z
aXRpb25VbmRlcmxpbmUuaCIKLSNpbmNsdWRlICJEaWN0YXRpb25BbHRlcm5hdGl2ZS5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50TWFya2VyLmgiCiAjaW5jbHVkZSAiRWRpdEFjdGlvbi5oIgogI2luY2x1
ZGUgIkVkaXRpbmdCZWhhdmlvci5oIgpAQCAtODYsNiArODUsNyBAQCBjbGFzcyBUZXh0RXZlbnQ7
CiBjbGFzcyBUZXh0UGxhY2Vob2xkZXJFbGVtZW50OwogCiBzdHJ1Y3QgQ29tcG9zaXRpb25IaWdo
bGlnaHQ7CitzdHJ1Y3QgRGljdGF0aW9uQWx0ZXJuYXRpdmU7CiBzdHJ1Y3QgRm9udEF0dHJpYnV0
ZXM7CiBzdHJ1Y3QgUGFzdGVib2FyZFBsYWluVGV4dDsKIHN0cnVjdCBQYXN0ZWJvYXJkVVJMOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9BbHRlcm5hdGl2ZVRleHRD
b250ZXh0Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9BbHRlcm5h
dGl2ZVRleHRDb250ZXh0Q29udHJvbGxlci5oCmluZGV4IGUxMzM5MDgxNWQwYTdlMzczMmRiYzcx
MDBlN2IxNzBlNWI4MWQxNzMuLjFhZDFlODUyMjZmNjIxNTZjODNiZDM4YThkMGM3ZmI2OTkxODVl
MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvQWx0ZXJuYXRpdmVU
ZXh0Q29udGV4dENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29h
L0FsdGVybmF0aXZlVGV4dENvbnRleHRDb250cm9sbGVyLmgKQEAgLTIzLDMxICsyMywyNSBAQAog
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpbXBvcnQgPHd0Zi9G
b3J3YXJkLmg+CisjaW1wb3J0ICJEaWN0YXRpb25Db250ZXh0LmgiCiAjaW1wb3J0IDx3dGYvSGFz
aE1hcC5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCiBAY2xhc3MgTlNUZXh0QWx0ZXJu
YXRpdmVzOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEFsdGVybmF0aXZlVGV4dENv
bnRleHRDb250cm9sbGVyIHsKLSAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoK
LSAgICBXRUJDT1JFX0VYUE9SVCBBbHRlcm5hdGl2ZVRleHRDb250ZXh0Q29udHJvbGxlcigpOwot
ICAgIFdFQkNPUkVfRVhQT1JUIH5BbHRlcm5hdGl2ZVRleHRDb250ZXh0Q29udHJvbGxlcigpOwot
Ci0gICAgdWludDY0X3QgYWRkQWx0ZXJuYXRpdmVzKE5TVGV4dEFsdGVybmF0aXZlcyAqKTsKLQor
ICAgIERpY3RhdGlvbkNvbnRleHQgYWRkQWx0ZXJuYXRpdmVzKE5TVGV4dEFsdGVybmF0aXZlcyAq
KTsKKyAgICB2b2lkIHJlbW92ZUFsdGVybmF0aXZlc0ZvckNvbnRleHQoRGljdGF0aW9uQ29udGV4
dCk7CiAgICAgdm9pZCBjbGVhcigpOwogCi0gICAgTlNUZXh0QWx0ZXJuYXRpdmVzICphbHRlcm5h
dGl2ZXNGb3JDb250ZXh0KHVpbnQ2NF90IGNvbnRleHQpOwotCi0gICAgdm9pZCByZW1vdmVBbHRl
cm5hdGl2ZXNGb3JDb250ZXh0KHVpbnQ2NF90IGNvbnRleHQpOwotCi0gICAgc3RhdGljIGNvbnN0
ZXhwciB1aW50NjRfdCBpbnZhbGlkQ29udGV4dCA9IDA7CisgICAgTlNUZXh0QWx0ZXJuYXRpdmVz
ICphbHRlcm5hdGl2ZXNGb3JDb250ZXh0KERpY3RhdGlvbkNvbnRleHQpOwogCiBwcml2YXRlOgot
ICAgIEhhc2hNYXA8dWludDY0X3QsIFJldGFpblB0cjxOU1RleHRBbHRlcm5hdGl2ZXM+PiBtX2Fs
dGVybmF0aXZlc09iamVjdE1hcDsKKyAgICBIYXNoTWFwPERpY3RhdGlvbkNvbnRleHQsIFJldGFp
blB0cjxOU1RleHRBbHRlcm5hdGl2ZXM+PiBtX2FsdGVybmF0aXZlczsKKyAgICBIYXNoTWFwPFJl
dGFpblB0cjxOU1RleHRBbHRlcm5hdGl2ZXM+LCBEaWN0YXRpb25Db250ZXh0PiBtX2NvbnRleHRz
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9jb2NvYS9BbHRlcm5hdGl2ZVRleHRDb250ZXh0Q29udHJvbGxlci5tbSBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvQWx0ZXJuYXRpdmVUZXh0Q29udGV4dENvbnRyb2xs
ZXIubW0KaW5kZXggZDlhMjY0MGYyNTg3ZjZmOGIwODExOWEwNTk4ZjgwZWM1NmNlNmQ3NS4uMWZh
Yzk5NWVlYjAxODYwM2Y1NDY3NGRjZGY0ZjI2ZjBjZTFkNzQ5YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9jb2NvYS9BbHRlcm5hdGl2ZVRleHRDb250ZXh0Q29udHJvbGxlci5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0FsdGVybmF0aXZlVGV4dENvbnRl
eHRDb250cm9sbGVyLm1tCkBAIC0yNiw0NSArMjYsMzggQEAKICNpbXBvcnQgImNvbmZpZy5oIgog
I2ltcG9ydCAiQWx0ZXJuYXRpdmVUZXh0Q29udGV4dENvbnRyb2xsZXIuaCIKIAotI2ltcG9ydCA8
d3RmL1JldGFpblB0ci5oPgotCi0jaWYgVVNFKEFQUEtpdCkKLSNpbXBvcnQgPEFwcEtpdC9OU1Rl
eHRBbHRlcm5hdGl2ZXMuaD4KLSNlbGlmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0jaW1wb3J0IDxw
YWwvc3BpL2lvcy9VSUtpdFNQSS5oPgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
QWx0ZXJuYXRpdmVUZXh0Q29udGV4dENvbnRyb2xsZXI6OkFsdGVybmF0aXZlVGV4dENvbnRleHRD
b250cm9sbGVyKCkgPSBkZWZhdWx0OwotCi1BbHRlcm5hdGl2ZVRleHRDb250ZXh0Q29udHJvbGxl
cjo6fkFsdGVybmF0aXZlVGV4dENvbnRleHRDb250cm9sbGVyKCkgPSBkZWZhdWx0OwotCi11aW50
NjRfdCBBbHRlcm5hdGl2ZVRleHRDb250ZXh0Q29udHJvbGxlcjo6YWRkQWx0ZXJuYXRpdmVzKE5T
VGV4dEFsdGVybmF0aXZlcyAqYWx0ZXJuYXRpdmVzKQorRGljdGF0aW9uQ29udGV4dCBBbHRlcm5h
dGl2ZVRleHRDb250ZXh0Q29udHJvbGxlcjo6YWRkQWx0ZXJuYXRpdmVzKE5TVGV4dEFsdGVybmF0
aXZlcyAqYWx0ZXJuYXRpdmVzKQogewotICAgIC8vIEZJWE1FOiBUdXJuaW5nIGEgcG9pbnRlciBp
bnRvIGFuIGludGVnZXIgaXMgYSBmbGF3ZWQgYWxnb3JpdGhtIHRvIGdlbmVyYXRlIGEgdW5pcXVl
IElELiBDYW4gbGVhZCB0byBhbGlhc2luZyB0byBhIG5ldyBvYmplY3QgdGhhdCBoYXBwZW5zIHRv
IG9jY3VweSB0aGUgc2FtZSBtZW1vcnkgYXMgYW4gb2xkIG9uZS4KLSAgICB1aW50NjRfdCBjb250
ZXh0ID0gcmVpbnRlcnByZXRfY2FzdDx1aW50NjRfdD4oYWx0ZXJuYXRpdmVzKTsKLSAgICBpZiAo
IWNvbnRleHQpCi0gICAgICAgIHJldHVybiBpbnZhbGlkQ29udGV4dDsKLSAgICBpZiAoYWx0ZXJu
YXRpdmVzRm9yQ29udGV4dChjb250ZXh0KSkKKyAgICBpZiAoIWFsdGVybmF0aXZlcykKKyAgICAg
ICAgcmV0dXJuIHsgfTsKKyAgICByZXR1cm4gbV9jb250ZXh0cy5lbnN1cmUoYWx0ZXJuYXRpdmVz
LCBbJl0geworICAgICAgICBhdXRvIGNvbnRleHQgPSBEaWN0YXRpb25Db250ZXh0OjpnZW5lcmF0
ZSgpOworICAgICAgICBtX2FsdGVybmF0aXZlcy5hZGQoY29udGV4dCwgYWx0ZXJuYXRpdmVzKTsK
ICAgICAgICAgcmV0dXJuIGNvbnRleHQ7Ci0gICAgYXV0byByZXN1bHQgPSBtX2FsdGVybmF0aXZl
c09iamVjdE1hcC5hZGQoY29udGV4dCwgYWx0ZXJuYXRpdmVzKTsKLSAgICByZXR1cm4gcmVzdWx0
LmlzTmV3RW50cnkgPyBjb250ZXh0IDogaW52YWxpZENvbnRleHQ7CisgICAgfSkuaXRlcmF0b3It
PnZhbHVlOwogfQogCi1OU1RleHRBbHRlcm5hdGl2ZXMgKkFsdGVybmF0aXZlVGV4dENvbnRleHRD
b250cm9sbGVyOjphbHRlcm5hdGl2ZXNGb3JDb250ZXh0KHVpbnQ2NF90IGNvbnRleHQpCitOU1Rl
eHRBbHRlcm5hdGl2ZXMgKkFsdGVybmF0aXZlVGV4dENvbnRleHRDb250cm9sbGVyOjphbHRlcm5h
dGl2ZXNGb3JDb250ZXh0KERpY3RhdGlvbkNvbnRleHQgY29udGV4dCkKIHsKLSAgICByZXR1cm4g
bV9hbHRlcm5hdGl2ZXNPYmplY3RNYXAuZ2V0KGNvbnRleHQpLmdldCgpOworICAgIGlmICghY29u
dGV4dCkKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICByZXR1cm4gbV9hbHRlcm5hdGl2ZXMuZ2V0
KGNvbnRleHQpLmdldCgpOwogfQogCi12b2lkIEFsdGVybmF0aXZlVGV4dENvbnRleHRDb250cm9s
bGVyOjpyZW1vdmVBbHRlcm5hdGl2ZXNGb3JDb250ZXh0KHVpbnQ2NF90IGNvbnRleHQpCit2b2lk
IEFsdGVybmF0aXZlVGV4dENvbnRleHRDb250cm9sbGVyOjpyZW1vdmVBbHRlcm5hdGl2ZXNGb3JD
b250ZXh0KERpY3RhdGlvbkNvbnRleHQgY29udGV4dCkKIHsKLSAgICBtX2FsdGVybmF0aXZlc09i
amVjdE1hcC5yZW1vdmUoY29udGV4dCk7CisgICAgaWYgKCFjb250ZXh0KQorICAgICAgICByZXR1
cm47CisgICAgaWYgKGF1dG8gYWx0ZXJuYXRpdmVzID0gbV9hbHRlcm5hdGl2ZXMudGFrZShjb250
ZXh0KSkKKyAgICAgICAgbV9jb250ZXh0cy5yZW1vdmUoYWx0ZXJuYXRpdmVzKTsKIH0KIAogdm9p
ZCBBbHRlcm5hdGl2ZVRleHRDb250ZXh0Q29udHJvbGxlcjo6Y2xlYXIoKQogewotICAgIG1fYWx0
ZXJuYXRpdmVzT2JqZWN0TWFwLmNsZWFyKCk7CisgICAgbV9hbHRlcm5hdGl2ZXMuY2xlYXIoKTsK
KyAgICBtX2NvbnRleHRzLmNsZWFyKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvQWx0ZXJuYXRpdmVUZXh0VUlD
b250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0FsdGVybmF0aXZlVGV4
dFVJQ29udHJvbGxlci5oCmluZGV4IDc3ODRhM2M0NGZkYjk1YTdkZjUzYjQ1MDAzMTYwYjNlMzE4
ZTQ3MzUuLmJlZjkzNDgyMDY5ZGRlMDBmNTUyZjgyZTQzZDg5NmJiMzRlNjhmNmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvQWx0ZXJuYXRpdmVUZXh0VUlDb250cm9s
bGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9BbHRlcm5hdGl2ZVRleHRV
SUNvbnRyb2xsZXIuaApAQCAtMjQsMTAgKzI0LDggQEAKICAqLwogCiAjaW1wb3J0ICJBbHRlcm5h
dGl2ZVRleHRDb250ZXh0Q29udHJvbGxlci5oIgotI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgog
Ci1PQkpDX0NMQVNTIE5TVGV4dEFsdGVybmF0aXZlczsKLU9CSkNfQ0xBU1MgTlNWaWV3OworQGNs
YXNzIE5TVmlldzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zNiwyNyArMzQsMjcgQEAg
Y2xhc3MgRmxvYXRSZWN0OwogY2xhc3MgQWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyIHsKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBBbHRlcm5hdGl2ZVRleHRV
SUNvbnRyb2xsZXIoKSA9IGRlZmF1bHQ7Ci0KLSAgICBXRUJDT1JFX0VYUE9SVCB1aW50NjRfdCBh
ZGRBbHRlcm5hdGl2ZXMoTlNUZXh0QWx0ZXJuYXRpdmVzICopOyAvLyBSZXR1cm5zIGEgY29udGV4
dCBJRC4KLQorICAgIFdFQkNPUkVfRVhQT1JUIERpY3RhdGlvbkNvbnRleHQgYWRkQWx0ZXJuYXRp
dmVzKE5TVGV4dEFsdGVybmF0aXZlcyAqKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92
ZUFsdGVybmF0aXZlcyhEaWN0YXRpb25Db250ZXh0KTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IGNsZWFyKCk7CiAKLSAgICB1c2luZyBBY2NlcHRhbmNlSGFuZGxlciA9IHZvaWQgKF4pKE5TU3Ry
aW5nICopOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2hvd0FsdGVybmF0aXZlcyhOU1ZpZXcg
KiwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveE9mUHJpbWFyeVN0cmluZywgdWludDY0X3Qg
Y29udGV4dCwgQWNjZXB0YW5jZUhhbmRsZXIpOwotCi0gICAgdm9pZCBXRUJDT1JFX0VYUE9SVCBy
ZW1vdmVBbHRlcm5hdGl2ZXModWludDY0X3QgY29udGV4dCk7CisgICAgV0VCQ09SRV9FWFBPUlQg
VmVjdG9yPFN0cmluZz4gYWx0ZXJuYXRpdmVzRm9yQ29udGV4dChEaWN0YXRpb25Db250ZXh0KTsK
IAotICAgIFdFQkNPUkVfRVhQT1JUIFZlY3RvcjxTdHJpbmc+IGFsdGVybmF0aXZlc0ZvckNvbnRl
eHQodWludDY0X3QgY29udGV4dCk7CisjaWYgVVNFKEFQUEtJVCkKKyAgICB1c2luZyBBY2NlcHRh
bmNlSGFuZGxlciA9IHZvaWQgKF4pKE5TU3RyaW5nICopOworICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc2hvd0FsdGVybmF0aXZlcyhOU1ZpZXcgKiwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0Jv
eE9mUHJpbWFyeVN0cmluZywgRGljdGF0aW9uQ29udGV4dCwgQWNjZXB0YW5jZUhhbmRsZXIpOwor
I2VuZGlmCiAKIHByaXZhdGU6CiAjaWYgVVNFKEFQUEtJVCkKLSAgICB2b2lkIGhhbmRsZUFjY2Vw
dGVkQWx0ZXJuYXRpdmUoTlNTdHJpbmcgKiwgdWludDY0X3QgY29udGV4dCwgTlNUZXh0QWx0ZXJu
YXRpdmVzICopOworICAgIHZvaWQgaGFuZGxlQWNjZXB0ZWRBbHRlcm5hdGl2ZShOU1N0cmluZyAq
LCBEaWN0YXRpb25Db250ZXh0LCBOU1RleHRBbHRlcm5hdGl2ZXMgKik7CiAgICAgdm9pZCBkaXNt
aXNzQWx0ZXJuYXRpdmVzKCk7CisjZW5kaWYKIAorICAgIEFsdGVybmF0aXZlVGV4dENvbnRleHRD
b250cm9sbGVyIG1fY29udGV4dENvbnRyb2xsZXI7CisjaWYgVVNFKEFQUEtJVCkKICAgICBSZXRh
aW5QdHI8TlNWaWV3PiBtX3ZpZXc7CiAjZW5kaWYKLSAgICBBbHRlcm5hdGl2ZVRleHRDb250ZXh0
Q29udHJvbGxlciBtX2NvbnRleHRDb250cm9sbGVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9BbHRlcm5hdGl2
ZVRleHRVSUNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0FsdGVy
bmF0aXZlVGV4dFVJQ29udHJvbGxlci5tbQppbmRleCA3NDM0Mjc5Zjk5NWYwZTkyZWU2NjViNTMy
OWU3ZTgzYjBmNWVlOWE5Li40MzEzMDQ2YjU3YWZkODBkYTRmYzhlNmIxMTE3NDkxZjVjNjFmMTUz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0FsdGVybmF0aXZlVGV4
dFVJQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0FsdGVy
bmF0aXZlVGV4dFVJQ29udHJvbGxlci5tbQpAQCAtMzUsMTggKzM1LDE0IEBACiAjaW1wb3J0IDxB
cHBLaXQvTlNWaWV3Lmg+CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0jaW1w
b3J0IDxwYWwvc3BpL2lvcy9VSUtpdFNQSS5oPgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotdWludDY0X3QgQWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyOjphZGRBbHRlcm5hdGl2
ZXMoTlNUZXh0QWx0ZXJuYXRpdmVzICphbHRlcm5hdGl2ZXMpCitEaWN0YXRpb25Db250ZXh0IEFs
dGVybmF0aXZlVGV4dFVJQ29udHJvbGxlcjo6YWRkQWx0ZXJuYXRpdmVzKE5TVGV4dEFsdGVybmF0
aXZlcyAqYWx0ZXJuYXRpdmVzKQogewogICAgIHJldHVybiBtX2NvbnRleHRDb250cm9sbGVyLmFk
ZEFsdGVybmF0aXZlcyhhbHRlcm5hdGl2ZXMpOwogfQogCi1WZWN0b3I8U3RyaW5nPiBBbHRlcm5h
dGl2ZVRleHRVSUNvbnRyb2xsZXI6OmFsdGVybmF0aXZlc0ZvckNvbnRleHQodWludDY0X3QgY29u
dGV4dCkKK1ZlY3RvcjxTdHJpbmc+IEFsdGVybmF0aXZlVGV4dFVJQ29udHJvbGxlcjo6YWx0ZXJu
YXRpdmVzRm9yQ29udGV4dChEaWN0YXRpb25Db250ZXh0IGNvbnRleHQpCiB7CiAgICAgcmV0dXJu
IG1ha2VWZWN0b3I8U3RyaW5nPihtX2NvbnRleHRDb250cm9sbGVyLmFsdGVybmF0aXZlc0ZvckNv
bnRleHQoY29udGV4dCkuYWx0ZXJuYXRpdmVTdHJpbmdzKTsKIH0KQEAgLTU2LDkgKzUyLDEwIEBA
IHZvaWQgQWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyOjpjbGVhcigpCiAgICAgcmV0dXJuIG1f
Y29udGV4dENvbnRyb2xsZXIuY2xlYXIoKTsKIH0KIAotdm9pZCBBbHRlcm5hdGl2ZVRleHRVSUNv
bnRyb2xsZXI6OnNob3dBbHRlcm5hdGl2ZXMoTlNWaWV3ICp2aWV3LCBjb25zdCBGbG9hdFJlY3Qm
IGJvdW5kaW5nQm94T2ZQcmltYXJ5U3RyaW5nLCB1aW50NjRfdCBjb250ZXh0LCBBY2NlcHRhbmNl
SGFuZGxlciBhY2NlcHRhbmNlSGFuZGxlcikKLXsKICNpZiBVU0UoQVBQS0lUKQorCit2b2lkIEFs
dGVybmF0aXZlVGV4dFVJQ29udHJvbGxlcjo6c2hvd0FsdGVybmF0aXZlcyhOU1ZpZXcgKnZpZXcs
IGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3hPZlByaW1hcnlTdHJpbmcsIERpY3RhdGlvbkNv
bnRleHQgY29udGV4dCwgQWNjZXB0YW5jZUhhbmRsZXIgYWNjZXB0YW5jZUhhbmRsZXIpCit7CiAg
ICAgZGlzbWlzc0FsdGVybmF0aXZlcygpOwogICAgIGlmICghdmlldykKICAgICAgICAgcmV0dXJu
OwpAQCAtNzUsMTcgKzcyLDkgQEAgdm9pZCBBbHRlcm5hdGl2ZVRleHRVSUNvbnRyb2xsZXI6OnNo
b3dBbHRlcm5hdGl2ZXMoTlNWaWV3ICp2aWV3LCBjb25zdCBGbG9hdFJlY3QKICAgICAgICAgICAg
IGFjY2VwdGFuY2VIYW5kbGVyKGFjY2VwdGVkU3RyaW5nKTsKICAgICAgICAgfQogICAgIH1dOwot
I2Vsc2UKLSAgICBVTlVTRURfUEFSQU0odmlldyk7Ci0gICAgVU5VU0VEX1BBUkFNKGJvdW5kaW5n
Qm94T2ZQcmltYXJ5U3RyaW5nKTsKLSAgICBVTlVTRURfUEFSQU0oY29udGV4dCk7Ci0gICAgVU5V
U0VEX1BBUkFNKGFjY2VwdGFuY2VIYW5kbGVyKTsKLSNlbmRpZgogfQogCi0jaWYgVVNFKEFQUEtJ
VCkKLQotdm9pZCBBbHRlcm5hdGl2ZVRleHRVSUNvbnRyb2xsZXI6OmhhbmRsZUFjY2VwdGVkQWx0
ZXJuYXRpdmUoTlNTdHJpbmcgKmFjY2VwdGVkQWx0ZXJuYXRpdmUsIHVpbnQ2NF90IGNvbnRleHQs
IE5TVGV4dEFsdGVybmF0aXZlcyAqYWx0ZXJuYXRpdmVzKQordm9pZCBBbHRlcm5hdGl2ZVRleHRV
SUNvbnRyb2xsZXI6OmhhbmRsZUFjY2VwdGVkQWx0ZXJuYXRpdmUoTlNTdHJpbmcgKmFjY2VwdGVk
QWx0ZXJuYXRpdmUsIERpY3RhdGlvbkNvbnRleHQgY29udGV4dCwgTlNUZXh0QWx0ZXJuYXRpdmVz
ICphbHRlcm5hdGl2ZXMpCiB7CiAgICAgW2FsdGVybmF0aXZlcyBub3RlU2VsZWN0ZWRBbHRlcm5h
dGl2ZVN0cmluZzphY2NlcHRlZEFsdGVybmF0aXZlXTsKICAgICBtX2NvbnRleHRDb250cm9sbGVy
LnJlbW92ZUFsdGVybmF0aXZlc0ZvckNvbnRleHQoY29udGV4dCk7CkBAIC0xMDAsNyArODksNyBA
QCB2b2lkIEFsdGVybmF0aXZlVGV4dFVJQ29udHJvbGxlcjo6ZGlzbWlzc0FsdGVybmF0aXZlcygp
CiAKICNlbmRpZgogCi12b2lkIEFsdGVybmF0aXZlVGV4dFVJQ29udHJvbGxlcjo6cmVtb3ZlQWx0
ZXJuYXRpdmVzKHVpbnQ2NF90IGNvbnRleHQpCit2b2lkIEFsdGVybmF0aXZlVGV4dFVJQ29udHJv
bGxlcjo6cmVtb3ZlQWx0ZXJuYXRpdmVzKERpY3RhdGlvbkNvbnRleHQgY29udGV4dCkKIHsKICAg
ICBtX2NvbnRleHRDb250cm9sbGVyLnJlbW92ZUFsdGVybmF0aXZlc0ZvckNvbnRleHQoY29udGV4
dCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0FsdGVybmF0aXZlVGV4dENs
aWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9BbHRlcm5hdGl2ZVRleHRDbGllbnQuaAppbmRl
eCBjYWM1Y2I1OWIzNzBmZTc1NTMzMTg1M2YwOTdiNWIzOGE3ZTcxZDJhLi43ZGJhY2M2NGJlYTVj
ZjE4Y2YxNjUxZTE4Mjc0ZTdhMTc3NDBmNmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0FsdGVybmF0aXZlVGV4dENsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQWx0
ZXJuYXRpdmVUZXh0Q2xpZW50LmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAK
KyNpbmNsdWRlICJEaWN0YXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpA
QCAtNjAsOSArNjEsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlY29yZEF1dG9jb3Jy
ZWN0aW9uUmVzcG9uc2UoQXV0b2NvcnJlY3Rpb25SZXNwb25zZSwgY29uc3QgU3RyaW5nJiByZXBs
YWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFN0cmluZykgPSAwOwogI2VuZGlm
CiAjaWYgVVNFKERJQ1RBVElPTl9BTFRFUk5BVElWRVMpCi0gICAgdmlydHVhbCB2b2lkIHNob3dE
aWN0YXRpb25BbHRlcm5hdGl2ZVVJKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm91bmRpbmdC
b3hPZkRpY3RhdGVkVGV4dCwgdWludDY0X3QgZGljdGF0aW9uQ29udGV4dCkgPSAwOwotICAgIHZp
cnR1YWwgdm9pZCByZW1vdmVEaWN0YXRpb25BbHRlcm5hdGl2ZXModWludDY0X3QgZGljdGF0aW9u
Q29udGV4dCkgPSAwOwotICAgIHZpcnR1YWwgVmVjdG9yPFN0cmluZz4gZGljdGF0aW9uQWx0ZXJu
YXRpdmVzKHVpbnQ2NF90IGRpY3RhdGlvbkNvbnRleHQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
c2hvd0RpY3RhdGlvbkFsdGVybmF0aXZlVUkoY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveE9m
RGljdGF0ZWRUZXh0LCBEaWN0YXRpb25Db250ZXh0KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJl
bW92ZURpY3RhdGlvbkFsdGVybmF0aXZlcyhEaWN0YXRpb25Db250ZXh0KSA9IDA7CisgICAgdmly
dHVhbCBWZWN0b3I8U3RyaW5nPiBkaWN0YXRpb25BbHRlcm5hdGl2ZXMoRGljdGF0aW9uQ29udGV4
dCkgPSAwOwogI2VuZGlmCiB9OwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3Jp
cHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVz
c2FnZXMucHkKaW5kZXggZTRhZGFlNjM1NTNmMmI0MDU0Mzg0NzRjMTY3MjI2NzAyOTQ1OGU5OC4u
OTRjYzY4ZGU1ZjY3ZGQ4NWYwMmJkZjc2YmU2MDdhNjE3NTY0ODg2ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0
L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0yMDYsNiArMjA2LDcgQEAgZGVmIHR5cGVz
X3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQoKToKICAgICAgICAgJ01lZGlhVGltZScs
CiAgICAgICAgICdTdHJpbmcnLAogICAgICAgICAnV2ViQ29yZTo6Q29sb3JTcGFjZScsCisgICAg
ICAgICdXZWJDb3JlOjpEaWN0YXRpb25Db250ZXh0JywKICAgICAgICAgJ1dlYkNvcmU6OkRvY3Vt
ZW50SWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpEb2N1bWVudE9yV29ya2VySWRlbnRp
ZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpGZXRjaElkZW50aWZpZXInLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5kZXggZDllYmIxYjIzZmQz
YTE4OGYyYTgwNWI5NzU0MzE0ZjA4YTBiYjY3NS4uZmQyNjYyZTgyZDNjNTM5YmM4NzhiYTkwNWUz
MTVlMTljNDU2ZmY4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuY3BwCkBAIC0xOTYyLDMxICsxOTYyLDI0IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxQ
YXN0ZWJvYXJkV2ViQ29udGVudD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBQYXN0ZWJvYXJk
V2ViCiB9CiAjZW5kaWYgLy8gVVNFKExJQldQRSkKIAotdm9pZCBBcmd1bWVudENvZGVyPERpY3Rh
dGlvbkFsdGVybmF0aXZlPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IERpY3RhdGlv
bkFsdGVybmF0aXZlJiBkaWN0YXRpb25BbHRlcm5hdGl2ZSkKK3ZvaWQgQXJndW1lbnRDb2RlcjxE
aWN0YXRpb25BbHRlcm5hdGl2ZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBEaWN0
YXRpb25BbHRlcm5hdGl2ZSYgYWx0ZXJuYXRpdmUpCiB7Ci0gICAgZW5jb2RlciA8PCBkaWN0YXRp
b25BbHRlcm5hdGl2ZS5yYW5nZVN0YXJ0OwotICAgIGVuY29kZXIgPDwgZGljdGF0aW9uQWx0ZXJu
YXRpdmUucmFuZ2VMZW5ndGg7Ci0gICAgZW5jb2RlciA8PCBkaWN0YXRpb25BbHRlcm5hdGl2ZS5k
aWN0YXRpb25Db250ZXh0OworICAgIGVuY29kZXIgPDwgYWx0ZXJuYXRpdmUucmFuZ2UgPDwgYWx0
ZXJuYXRpdmUuY29udGV4dDsKIH0KIAogT3B0aW9uYWw8RGljdGF0aW9uQWx0ZXJuYXRpdmU+IEFy
Z3VtZW50Q29kZXI8RGljdGF0aW9uQWx0ZXJuYXRpdmU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
cikKIHsKLSAgICBPcHRpb25hbDx1bnNpZ25lZD4gcmFuZ2VTdGFydDsKLSAgICBkZWNvZGVyID4+
IHJhbmdlU3RhcnQ7Ci0gICAgaWYgKCFyYW5nZVN0YXJ0KQotICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OwotICAgIAotICAgIE9wdGlvbmFsPHVuc2lnbmVkPiByYW5nZUxlbmd0aDsKLSAgICBk
ZWNvZGVyID4+IHJhbmdlTGVuZ3RoOwotICAgIGlmICghcmFuZ2VMZW5ndGgpCisgICAgT3B0aW9u
YWw8Q2hhcmFjdGVyUmFuZ2U+IHJhbmdlOworICAgIGRlY29kZXIgPj4gcmFuZ2U7CisgICAgaWYg
KCFyYW5nZSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICAKLSAgICBPcHRpb25h
bDx1aW50NjRfdD4gZGljdGF0aW9uQ29udGV4dDsKLSAgICBkZWNvZGVyID4+IGRpY3RhdGlvbkNv
bnRleHQ7Ci0gICAgaWYgKCFkaWN0YXRpb25Db250ZXh0KQorCisgICAgT3B0aW9uYWw8RGljdGF0
aW9uQ29udGV4dD4gY29udGV4dDsKKyAgICBkZWNvZGVyID4+IGNvbnRleHQ7CisgICAgaWYgKCFj
b250ZXh0KQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIAotICAgIHJldHVybiB7
eyBXVEZNb3ZlKCpyYW5nZVN0YXJ0KSwgV1RGTW92ZSgqcmFuZ2VMZW5ndGgpLCBXVEZNb3ZlKCpk
aWN0YXRpb25Db250ZXh0KSB9fTsKKworICAgIHJldHVybiB7eyAqcmFuZ2UsICpjb250ZXh0IH19
OwogfQogCiB2b2lkIEFyZ3VtZW50Q29kZXI8RmlsZUNob29zZXJTZXR0aW5ncz46OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBGaWxlQ2hvb3NlclNldHRpbmdzJiBzZXR0aW5ncykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1BhZ2VDbGllbnRJbXBsQ29j
b2EuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1BhZ2VDbGllbnRJbXBsQ29jb2Eu
aAppbmRleCBjNjcyMjgzOWY3MzlhNDQ2N2EyZjE0ZDkxOThiNGYwZDY2ZGRiN2FmLi4wZjFjM2Rj
ZDk2MTllZTdkZTFkNTZjMzg0ZjdjOTBhZGIyYzQwMDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9QYWdlQ2xpZW50SW1wbENvY29hLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvUGFnZUNsaWVudEltcGxDb2NvYS5oCkBAIC02Miw5ICs2Miw5
IEBAIHB1YmxpYzoKICAgICBOU1NldCAqc2VyaWFsaXphYmxlRmlsZVdyYXBwZXJDbGFzc2VzKCkg
Y29uc3QgZmluYWw7CiAjZW5kaWYKIAotICAgIHVpbnQ2NF90IGFkZERpY3RhdGlvbkFsdGVybmF0
aXZlcyhOU1RleHRBbHRlcm5hdGl2ZXMgKikgZmluYWw7Ci0gICAgdm9pZCByZW1vdmVEaWN0YXRp
b25BbHRlcm5hdGl2ZXModWludDY0X3QgZGljdGF0aW9uQ29udGV4dCkgZmluYWw7Ci0gICAgVmVj
dG9yPFN0cmluZz4gZGljdGF0aW9uQWx0ZXJuYXRpdmVzKHVpbnQ2NF90IGRpY3RhdGlvbkNvbnRl
eHQpIGZpbmFsOworICAgIFdlYkNvcmU6OkRpY3RhdGlvbkNvbnRleHQgYWRkRGljdGF0aW9uQWx0
ZXJuYXRpdmVzKE5TVGV4dEFsdGVybmF0aXZlcyAqKSBmaW5hbDsKKyAgICB2b2lkIHJlbW92ZURp
Y3RhdGlvbkFsdGVybmF0aXZlcyhXZWJDb3JlOjpEaWN0YXRpb25Db250ZXh0KSBmaW5hbDsKKyAg
ICBWZWN0b3I8U3RyaW5nPiBkaWN0YXRpb25BbHRlcm5hdGl2ZXMoV2ViQ29yZTo6RGljdGF0aW9u
Q29udGV4dCkgZmluYWw7CiAKIHByb3RlY3RlZDoKICAgICBXZWFrT2JqQ1B0cjxXS1dlYlZpZXc+
IG1fd2ViVmlldzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1Bh
Z2VDbGllbnRJbXBsQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QYWdl
Q2xpZW50SW1wbENvY29hLm1tCmluZGV4IGFhZmE2YmZlMDRjMWM5NThlZDYzZGVlNGY5ZTJlOGU0
ZDNhODg1OTAuLmM3NDg0YTU0NTU4YjhmYmJlY2Q3NDcxN2MxNTlhOTE1YTYxMTQ0MjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1BhZ2VDbGllbnRJbXBsQ29jb2Eu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUGFnZUNsaWVudEltcGxDb2Nv
YS5tbQpAQCAtOTYsMTcgKzk2LDE3IEBAIHZvaWQgUGFnZUNsaWVudEltcGxDb2NvYTo6cGFnZUNs
b3NlZCgpCiAgICAgbV9hbHRlcm5hdGl2ZVRleHRVSUNvbnRyb2xsZXItPmNsZWFyKCk7CiB9CiAK
LXVpbnQ2NF90IFBhZ2VDbGllbnRJbXBsQ29jb2E6OmFkZERpY3RhdGlvbkFsdGVybmF0aXZlcyhO
U1RleHRBbHRlcm5hdGl2ZXMgKmFsdGVybmF0aXZlcykKK1dlYkNvcmU6OkRpY3RhdGlvbkNvbnRl
eHQgUGFnZUNsaWVudEltcGxDb2NvYTo6YWRkRGljdGF0aW9uQWx0ZXJuYXRpdmVzKE5TVGV4dEFs
dGVybmF0aXZlcyAqYWx0ZXJuYXRpdmVzKQogewogICAgIHJldHVybiBtX2FsdGVybmF0aXZlVGV4
dFVJQ29udHJvbGxlci0+YWRkQWx0ZXJuYXRpdmVzKGFsdGVybmF0aXZlcyk7CiB9CiAKLXZvaWQg
UGFnZUNsaWVudEltcGxDb2NvYTo6cmVtb3ZlRGljdGF0aW9uQWx0ZXJuYXRpdmVzKHVpbnQ2NF90
IGRpY3RhdGlvbkNvbnRleHQpCit2b2lkIFBhZ2VDbGllbnRJbXBsQ29jb2E6OnJlbW92ZURpY3Rh
dGlvbkFsdGVybmF0aXZlcyhXZWJDb3JlOjpEaWN0YXRpb25Db250ZXh0IGRpY3RhdGlvbkNvbnRl
eHQpCiB7CiAgICAgbV9hbHRlcm5hdGl2ZVRleHRVSUNvbnRyb2xsZXItPnJlbW92ZUFsdGVybmF0
aXZlcyhkaWN0YXRpb25Db250ZXh0KTsKIH0KIAotVmVjdG9yPFN0cmluZz4gUGFnZUNsaWVudElt
cGxDb2NvYTo6ZGljdGF0aW9uQWx0ZXJuYXRpdmVzKHVpbnQ2NF90IGRpY3RhdGlvbkNvbnRleHQp
CitWZWN0b3I8U3RyaW5nPiBQYWdlQ2xpZW50SW1wbENvY29hOjpkaWN0YXRpb25BbHRlcm5hdGl2
ZXMoV2ViQ29yZTo6RGljdGF0aW9uQ29udGV4dCBkaWN0YXRpb25Db250ZXh0KQogewogICAgIHJl
dHVybiBtX2FsdGVybmF0aXZlVGV4dFVJQ29udHJvbGxlci0+YWx0ZXJuYXRpdmVzRm9yQ29udGV4
dChkaWN0YXRpb25Db250ZXh0KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KaW5kZXggZTU4NDFmOTJmZDk0ZmFlZTU4MjU5N2Mz
NDRhMjAxMDFmMWM5MjM5ZC4uMzZmMDFjYmY3MWRhZWNkZDc1MzE0YzZkMTYwZGE3OGZmZGJhOWQx
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5
Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5
Q29jb2EubW0KQEAgLTI0OSw5ICsyNDksOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aW5zZXJ0RGlj
dGF0ZWRUZXh0QXN5bmMoY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBFZGl0aW5nUmFuZwogCiAg
ICAgVmVjdG9yPERpY3RhdGlvbkFsdGVybmF0aXZlPiBkaWN0YXRpb25BbHRlcm5hdGl2ZXM7CiAg
ICAgZm9yIChjb25zdCBhdXRvJiBhbHRlcm5hdGl2ZVdpdGhSYW5nZSA6IGRpY3RhdGlvbkFsdGVy
bmF0aXZlc1dpdGhSYW5nZSkgewotICAgICAgICB1aW50NjRfdCBkaWN0YXRpb25Db250ZXh0ID0g
cGFnZUNsaWVudCgpLmFkZERpY3RhdGlvbkFsdGVybmF0aXZlcyhhbHRlcm5hdGl2ZVdpdGhSYW5n
ZS5hbHRlcm5hdGl2ZXMuZ2V0KCkpOwotICAgICAgICBpZiAoZGljdGF0aW9uQ29udGV4dCkKLSAg
ICAgICAgICAgIGRpY3RhdGlvbkFsdGVybmF0aXZlcy5hcHBlbmQoRGljdGF0aW9uQWx0ZXJuYXRp
dmUoYWx0ZXJuYXRpdmVXaXRoUmFuZ2UucmFuZ2UubG9jYXRpb24sIGFsdGVybmF0aXZlV2l0aFJh
bmdlLnJhbmdlLmxlbmd0aCwgZGljdGF0aW9uQ29udGV4dCkpOworICAgICAgICBpZiAoYXV0byBj
b250ZXh0ID0gcGFnZUNsaWVudCgpLmFkZERpY3RhdGlvbkFsdGVybmF0aXZlcyhhbHRlcm5hdGl2
ZVdpdGhSYW5nZS5hbHRlcm5hdGl2ZXMuZ2V0KCkpKQorICAgICAgICAgICAgZGljdGF0aW9uQWx0
ZXJuYXRpdmVzLmFwcGVuZCh7IGFsdGVybmF0aXZlV2l0aFJhbmdlLnJhbmdlLCBjb250ZXh0IH0p
OwogICAgIH0KIAogICAgIGlmIChkaWN0YXRpb25BbHRlcm5hdGl2ZXMuaXNFbXB0eSgpKSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggMjAyYjJiOTg3NzdjYWU3YzA0N2Y0
NWNhYTQ2OWZkMTM5ZGYzOWZmMi4uYWM5MDQ5N2VmYjJkYWQ3NmVjM2QyMDE5NmVlOWUzMmVmODZh
NWY5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtMzYxLDEwICszNjEs
MTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB0YWtlRm9jdXMoV2ViQ29yZTo6Rm9jdXNE
aXJlY3Rpb24pIHsgfQogCiAjaWYgVVNFKERJQ1RBVElPTl9BTFRFUk5BVElWRVMpCi0gICAgdmly
dHVhbCB1aW50NjRfdCBhZGREaWN0YXRpb25BbHRlcm5hdGl2ZXMoTlNUZXh0QWx0ZXJuYXRpdmVz
ICopID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlRGljdGF0aW9uQWx0ZXJuYXRpdmVzKHVp
bnQ2NF90IGRpY3RhdGlvbkNvbnRleHQpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2hvd0RpY3Rh
dGlvbkFsdGVybmF0aXZlVUkoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBib3VuZGluZ0JveE9m
RGljdGF0ZWRUZXh0LCB1aW50NjRfdCBkaWN0YXRpb25Db250ZXh0KSA9IDA7Ci0gICAgdmlydHVh
bCBWZWN0b3I8U3RyaW5nPiBkaWN0YXRpb25BbHRlcm5hdGl2ZXModWludDY0X3QgZGljdGF0aW9u
Q29udGV4dCkgPSAwOworICAgIHZpcnR1YWwgV2ViQ29yZTo6RGljdGF0aW9uQ29udGV4dCBhZGRE
aWN0YXRpb25BbHRlcm5hdGl2ZXMoTlNUZXh0QWx0ZXJuYXRpdmVzICopID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgcmVtb3ZlRGljdGF0aW9uQWx0ZXJuYXRpdmVzKFdlYkNvcmU6OkRpY3RhdGlvbkNv
bnRleHQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2hvd0RpY3RhdGlvbkFsdGVybmF0aXZlVUko
Y29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBib3VuZGluZ0JveE9mRGljdGF0ZWRUZXh0LCBXZWJD
b3JlOjpEaWN0YXRpb25Db250ZXh0KSA9IDA7CisgICAgdmlydHVhbCBWZWN0b3I8U3RyaW5nPiBk
aWN0YXRpb25BbHRlcm5hdGl2ZXMoV2ViQ29yZTo6RGljdGF0aW9uQ29udGV4dCkgPSAwOwogI2Vu
ZGlmCiAKICNpZiBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcAppbmRleCBhY2MzMjE2NmNkMGZiYmRkNTY0MTg0OWQyMGVlMjIzNGMxODk3YzdkLi45
OGI0N2Q2YjA5NWVmZDRkYzM4MjBkZWExOWIwYzBkNWNiMTM4Mjc5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTg1MzQsMTcgKzg1MzQsMTcgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OnRvZ2dsZUF1dG9tYXRpY1RleHRSZXBsYWNlbWVudCgpCiAKICNpZiBVU0Uo
RElDVEFUSU9OX0FMVEVSTkFUSVZFUykKIAotdm9pZCBXZWJQYWdlUHJveHk6OnNob3dEaWN0YXRp
b25BbHRlcm5hdGl2ZVVJKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm91bmRpbmdCb3hPZkRp
Y3RhdGVkVGV4dCwgdWludDY0X3QgZGljdGF0aW9uQ29udGV4dCkKK3ZvaWQgV2ViUGFnZVByb3h5
OjpzaG93RGljdGF0aW9uQWx0ZXJuYXRpdmVVSShjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGJv
dW5kaW5nQm94T2ZEaWN0YXRlZFRleHQsIFdlYkNvcmU6OkRpY3RhdGlvbkNvbnRleHQgZGljdGF0
aW9uQ29udGV4dCkKIHsKICAgICBwYWdlQ2xpZW50KCkuc2hvd0RpY3RhdGlvbkFsdGVybmF0aXZl
VUkoYm91bmRpbmdCb3hPZkRpY3RhdGVkVGV4dCwgZGljdGF0aW9uQ29udGV4dCk7CiB9CiAKLXZv
aWQgV2ViUGFnZVByb3h5OjpyZW1vdmVEaWN0YXRpb25BbHRlcm5hdGl2ZXModWludDY0X3QgZGlj
dGF0aW9uQ29udGV4dCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZW1vdmVEaWN0YXRpb25BbHRlcm5h
dGl2ZXMoV2ViQ29yZTo6RGljdGF0aW9uQ29udGV4dCBkaWN0YXRpb25Db250ZXh0KQogewogICAg
IHBhZ2VDbGllbnQoKS5yZW1vdmVEaWN0YXRpb25BbHRlcm5hdGl2ZXMoZGljdGF0aW9uQ29udGV4
dCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWN0YXRpb25BbHRlcm5hdGl2ZXModWludDY0
X3QgZGljdGF0aW9uQ29udGV4dCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8U3RyaW5n
PiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWN0YXRpb25B
bHRlcm5hdGl2ZXMoV2ViQ29yZTo6RGljdGF0aW9uQ29udGV4dCBkaWN0YXRpb25Db250ZXh0LCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxTdHJpbmc+JiYpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewogICAgIGNvbXBsZXRpb25IYW5kbGVyKHBhZ2VDbGllbnQoKS5kaWN0YXRpb25BbHRl
cm5hdGl2ZXMoZGljdGF0aW9uQ29udGV4dCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaAppbmRleCAyMjk1NGUzNDljZDNmODAzOThkYWEzOGM2Mzc3YjRkZDg5MjY5N2E2
Li43OWM2ZTJhMDM5YjA1ZGY2OWFhMDExMjNjOWYyYTIwNGQ1NTE4ODAzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNzUsNiArNzUsNyBAQAogI2luY2x1ZGUgPFdl
YkNvcmUvQXV0b3BsYXlFdmVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29sb3IuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0RpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9EaWN0YXRpb25Db250ZXh0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EcmFnQWN0aW9ucy5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvRXZlbnRUcmFja2luZ1JlZ2lvbnMuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0V4Y2VwdGlvbkRldGFpbHMuaD4KQEAgLTIxMjYsOSArMjEyNyw5IEBAIHByaXZhdGU6CiAj
ZW5kaWYKIAogI2lmIFVTRShESUNUQVRJT05fQUxURVJOQVRJVkVTKQotICAgIHZvaWQgc2hvd0Rp
Y3RhdGlvbkFsdGVybmF0aXZlVUkoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBib3VuZGluZ0Jv
eE9mRGljdGF0ZWRUZXh0LCB1aW50NjRfdCBkaWN0YXRpb25Db250ZXh0KTsKLSAgICB2b2lkIHJl
bW92ZURpY3RhdGlvbkFsdGVybmF0aXZlcyh1aW50NjRfdCBkaWN0YXRpb25Db250ZXh0KTsKLSAg
ICB2b2lkIGRpY3RhdGlvbkFsdGVybmF0aXZlcyh1aW50NjRfdCBkaWN0YXRpb25Db250ZXh0LCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxTdHJpbmc+JiYpPiYmKTsKKyAgICB2b2lkIHNo
b3dEaWN0YXRpb25BbHRlcm5hdGl2ZVVJKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm91bmRp
bmdCb3hPZkRpY3RhdGVkVGV4dCwgV2ViQ29yZTo6RGljdGF0aW9uQ29udGV4dCk7CisgICAgdm9p
ZCByZW1vdmVEaWN0YXRpb25BbHRlcm5hdGl2ZXMoV2ViQ29yZTo6RGljdGF0aW9uQ29udGV4dCk7
CisgICAgdm9pZCBkaWN0YXRpb25BbHRlcm5hdGl2ZXMoV2ViQ29yZTo6RGljdGF0aW9uQ29udGV4
dCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8U3RyaW5nPiYmKT4mJik7CiAjZW5kaWYK
IAogI2lmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCA1YmYzOWM4MDBlNTNhMTM2ZDIyZWFkYTRlYTYxN2Rk
YjUzMTdkNGQ0Li4yZDIzZTRiNjYwYjg2ZTY3ODY0NTBlZTM3M2QyNWNhYzE1YjhlYzdlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBA
IC0zODcsOSArMzg3LDkgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNlbmRpZgogCiAj
aWYgVVNFKERJQ1RBVElPTl9BTFRFUk5BVElWRVMpCi0gICAgU2hvd0RpY3RhdGlvbkFsdGVybmF0
aXZlVUkoV2ViQ29yZTo6RmxvYXRSZWN0IGJvdW5kaW5nQm94T2ZEaWN0YXRlZFRleHQsIHVpbnQ2
NF90IGRpY3RhdGlvbkNvbnRleHQpCi0gICAgUmVtb3ZlRGljdGF0aW9uQWx0ZXJuYXRpdmVzKHVp
bnQ2NF90IGRpY3RhdGlvbkNvbnRleHQpCi0gICAgRGljdGF0aW9uQWx0ZXJuYXRpdmVzKHVpbnQ2
NF90IGRpY3RhdGlvbkNvbnRleHQpIC0+IChWZWN0b3I8U3RyaW5nPiBhbHRlcm5hdGl2ZXMpIFN5
bmNocm9ub3VzCisgICAgU2hvd0RpY3RhdGlvbkFsdGVybmF0aXZlVUkoV2ViQ29yZTo6RmxvYXRS
ZWN0IGJvdW5kaW5nQm94T2ZEaWN0YXRlZFRleHQsIFdlYkNvcmU6OkRpY3RhdGlvbkNvbnRleHQg
ZGljdGF0aW9uQ29udGV4dCkKKyAgICBSZW1vdmVEaWN0YXRpb25BbHRlcm5hdGl2ZXMoV2ViQ29y
ZTo6RGljdGF0aW9uQ29udGV4dCBkaWN0YXRpb25Db250ZXh0KQorICAgIERpY3RhdGlvbkFsdGVy
bmF0aXZlcyhXZWJDb3JlOjpEaWN0YXRpb25Db250ZXh0IGRpY3RhdGlvbkNvbnRleHQpIC0+IChW
ZWN0b3I8U3RyaW5nPiBhbHRlcm5hdGl2ZXMpIFN5bmNocm9ub3VzCiAjZW5kaWYKIAogI2lmIFBM
QVRGT1JNKFgxMSkgJiYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oCmluZGV4IDdlYjM2YTFlZTUx
M2RhMTY3YWE4Yzg4ZWIzODQ3YTY1MmM1NDM5ZjAuLjUzMjAzYzBiYWI3ZThmYzJmMWI3NWQzNDBj
MDU1YzkzODU5MDA1MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9Q
YWdlQ2xpZW50SW1wbE1hYy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdl
Q2xpZW50SW1wbE1hYy5oCkBAIC0xODAsNyArMTgwLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQg
aW50cmluc2ljQ29udGVudFNpemVEaWRDaGFuZ2UoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgaW50
cmluc2ljQ29udGVudFNpemUpIG92ZXJyaWRlOwogCi0gICAgdm9pZCBzaG93RGljdGF0aW9uQWx0
ZXJuYXRpdmVVSShjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZEaWN0YXRl
ZFRleHQsIHVpbnQ2NF90IGRpY3RhdGlvbkNvbnRleHQpIG92ZXJyaWRlOworICAgIHZvaWQgc2hv
d0RpY3RhdGlvbkFsdGVybmF0aXZlVUkoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBib3VuZGlu
Z0JveE9mRGljdGF0ZWRUZXh0LCBXZWJDb3JlOjpEaWN0YXRpb25Db250ZXh0KSBmaW5hbDsKIAog
ICAgIHZvaWQgc2V0RWRpdGFibGVFbGVtZW50SXNGb2N1c2VkKGJvb2wpIG92ZXJyaWRlOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0KaW5k
ZXggN2M1ODY1YmNmOWRhODhjZjU5NWNlYWUyMmU4ODM0OTI2NWUxNThkYy4uN2I3ZTY2Yzc5ZWRh
Zjg0YThhMTQ3NTY1MjRlMTZjMjZlNTc4OTZjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQpAQCAtNjgwLDcgKzY4MCw3IEBAIGJvb2wg
UGFnZUNsaWVudEltcGw6OmV4ZWN1dGVTYXZlZENvbW1hbmRCeVNlbGVjdG9yKGNvbnN0IFN0cmlu
ZyYgc2VsZWN0b3JTdHJpbmcpCiAgICAgcmV0dXJuIG1faW1wbC0+ZXhlY3V0ZVNhdmVkQ29tbWFu
ZEJ5U2VsZWN0b3IoTlNTZWxlY3RvckZyb21TdHJpbmcoc2VsZWN0b3JTdHJpbmcpKTsKIH0KIAot
dm9pZCBQYWdlQ2xpZW50SW1wbDo6c2hvd0RpY3RhdGlvbkFsdGVybmF0aXZlVUkoY29uc3QgV2Vi
Q29yZTo6RmxvYXRSZWN0JiBib3VuZGluZ0JveE9mRGljdGF0ZWRUZXh0LCB1aW50NjRfdCBkaWN0
YXRpb25Db250ZXh0KQordm9pZCBQYWdlQ2xpZW50SW1wbDo6c2hvd0RpY3RhdGlvbkFsdGVybmF0
aXZlVUkoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBib3VuZGluZ0JveE9mRGljdGF0ZWRUZXh0
LCBXZWJDb3JlOjpEaWN0YXRpb25Db250ZXh0IGRpY3RhdGlvbkNvbnRleHQpCiB7CiAgICAgaWYg
KCFpc1ZpZXdWaXNpYmxlKCkgfHwgIWlzVmlld0luV2luZG93KCkpCiAgICAgICAgIHJldHVybjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tCmluZGV4
IDc4NzJiY2M1ZWQzNDdhNWI4ZDEyZGFmNGY0YjFiNDBhZWRiNzhlY2UuLmFkNWI1YTVkNDllZTYz
ODAzM2NhMTMxOTIyMzE1MGMyMGEzNTI3ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQpAQCAtNTAsNyArNTAsNiBAQAogI2ltcG9ydCAiV2Vi
UGFnZU1lc3NhZ2VzLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKICNpbXBvcnQgPFdl
YkNvcmUvQXR0cmlidXRlZFN0cmluZy5oPgotI2ltcG9ydCA8V2ViQ29yZS9EaWN0YXRpb25BbHRl
cm5hdGl2ZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9EaWN0aW9uYXJ5TG9va3VwLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL0RyYWdJdGVtLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXIuaD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJB
bHRlcm5hdGl2ZVRleHRDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuaAppbmRleCA1NGFiMWMzMmRmOWI4OTM1
NTVjZTdmNmU5NzY0MWM2NGE1OTU1ZDA2Li5kM2NkODExN2ZmMjA1YjM0MzgyNDMxMTliNmE4OTk3
YmIwNmI1MjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkFsdGVybmF0aXZlVGV4dENsaWVudC5oCkBAIC0zMSwy
NCArMzEsMjYgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYlBhZ2U7CiAKLWNsYXNz
IFdlYkFsdGVybmF0aXZlVGV4dENsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpBbHRlcm5hdGl2ZVRl
eHRDbGllbnQgeworY2xhc3MgV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50IGZpbmFsIDogcHVibGlj
IFdlYkNvcmU6OkFsdGVybmF0aXZlVGV4dENsaWVudCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50KFdl
YlBhZ2UqKTsKICAgICB2aXJ0dWFsIH5XZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQoKTsKKworcHJp
dmF0ZToKICNpZiBVU0UoQVVUT0NPUlJFQ1RJT05fUEFORUwpCiAgICAgdm9pZCBzaG93Q29ycmVj
dGlvbkFsdGVybmF0aXZlKFdlYkNvcmU6OkFsdGVybmF0aXZlVGV4dFR5cGUsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0UmVjdCYgYm91bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcm
IHJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nLCBjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgYWx0ZXJuYXRpdmVSZXBsYWNlbWVudFN0cmluZ3MpIG92ZXJyaWRlOwog
ICAgIHZvaWQgZGlzbWlzc0FsdGVybmF0aXZlKFdlYkNvcmU6OlJlYXNvbkZvckRpc21pc3NpbmdB
bHRlcm5hdGl2ZVRleHQpIG92ZXJyaWRlOwogICAgIFN0cmluZyBkaXNtaXNzQWx0ZXJuYXRpdmVT
b29uKFdlYkNvcmU6OlJlYXNvbkZvckRpc21pc3NpbmdBbHRlcm5hdGl2ZVRleHQpIG92ZXJyaWRl
OwogICAgIHZvaWQgcmVjb3JkQXV0b2NvcnJlY3Rpb25SZXNwb25zZShXZWJDb3JlOjpBdXRvY29y
cmVjdGlvblJlc3BvbnNlLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJp
bmcmIHJlcGxhY2VtZW50U3RyaW5nKSBvdmVycmlkZTsKICNlbmRpZgorCiAjaWYgVVNFKERJQ1RB
VElPTl9BTFRFUk5BVElWRVMpCi0gICAgdm9pZCBzaG93RGljdGF0aW9uQWx0ZXJuYXRpdmVVSShj
b25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZEaWN0YXRlZFRleHQsIHVpbnQ2
NF90IGRpY3RhdGlvbkNvbnRleHQpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVtb3ZlRGljdGF0aW9u
QWx0ZXJuYXRpdmVzKHVpbnQ2NF90IGRpY3RhdGlvbkNvbnRleHQpIG92ZXJyaWRlOwotICAgIFZl
Y3RvcjxTdHJpbmc+IGRpY3RhdGlvbkFsdGVybmF0aXZlcyh1aW50NjRfdCBkaWN0YXRpb25Db250
ZXh0KSBvdmVycmlkZTsKKyAgICB2b2lkIHNob3dEaWN0YXRpb25BbHRlcm5hdGl2ZVVJKGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm91bmRpbmdCb3hPZkRpY3RhdGVkVGV4dCwgV2ViQ29yZTo6
RGljdGF0aW9uQ29udGV4dCkgZmluYWw7CisgICAgdm9pZCByZW1vdmVEaWN0YXRpb25BbHRlcm5h
dGl2ZXMoV2ViQ29yZTo6RGljdGF0aW9uQ29udGV4dCkgZmluYWw7CisgICAgVmVjdG9yPFN0cmlu
Zz4gZGljdGF0aW9uQWx0ZXJuYXRpdmVzKFdlYkNvcmU6OkRpY3RhdGlvbkNvbnRleHQpIGZpbmFs
OwogI2VuZGlmCiAKLXByaXZhdGU6CiAjaWYgIShVU0UoQVVUT0NPUlJFQ1RJT05fUEFORUwpIHx8
IFVTRShESUNUQVRJT05fQUxURVJOQVRJVkVTKSkKICAgICBJR05PUkVfQ0xBTkdfV0FSTklOR1Nf
QkVHSU4oInVudXNlZC1wcml2YXRlLWZpZWxkIikKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJBbHRlcm5hdGl2ZVRleHRD
bGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9X
ZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuY3BwCmluZGV4IDM5YmViMzFjMWZhMmM5MjZiZTE2M2Fm
MzdjYWFhYTI5YjBjMzZmM2EuLjBiYTJhODJmNjg5Y2E3N2QxZDU2NGEzODFkY2I0YWMzNDIwZDUy
ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9t
YWMvV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkFsdGVybmF0aXZlVGV4dENsaWVudC5jcHAKQEAg
LTY5LDE3ICs2OSwxNyBAQCB2b2lkIFdlYkFsdGVybmF0aXZlVGV4dENsaWVudDo6cmVjb3JkQXV0
b2NvcnJlY3Rpb25SZXNwb25zZShBdXRvY29ycmVjdGlvblJlc3BvbgogfQogI2VuZGlmCiAKLXZv
aWQgV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50OjpyZW1vdmVEaWN0YXRpb25BbHRlcm5hdGl2ZXMo
dWludDY0X3QgZGljdGF0aW9uQ29udGV4dCkKK3ZvaWQgV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50
OjpyZW1vdmVEaWN0YXRpb25BbHRlcm5hdGl2ZXMoV2ViQ29yZTo6RGljdGF0aW9uQ29udGV4dCBk
aWN0YXRpb25Db250ZXh0KQogewogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpSZW1vdmVEaWN0YXRpb25BbHRlcm5hdGl2ZXMoZGljdGF0aW9uQ29udGV4dCkpOwogfQog
Ci12b2lkIFdlYkFsdGVybmF0aXZlVGV4dENsaWVudDo6c2hvd0RpY3RhdGlvbkFsdGVybmF0aXZl
VUkoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBib3VuZGluZ0JveE9mRGljdGF0ZWRUZXh0LCB1
aW50NjRfdCBkaWN0YXRpb25Db250ZXh0KQordm9pZCBXZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQ6
OnNob3dEaWN0YXRpb25BbHRlcm5hdGl2ZVVJKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm91
bmRpbmdCb3hPZkRpY3RhdGVkVGV4dCwgV2ViQ29yZTo6RGljdGF0aW9uQ29udGV4dCBkaWN0YXRp
b25Db250ZXh0KQogewogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpT
aG93RGljdGF0aW9uQWx0ZXJuYXRpdmVVSShib3VuZGluZ0JveE9mRGljdGF0ZWRUZXh0LCBkaWN0
YXRpb25Db250ZXh0KSk7CiB9CiAKLVZlY3RvcjxTdHJpbmc+IFdlYkFsdGVybmF0aXZlVGV4dENs
aWVudDo6ZGljdGF0aW9uQWx0ZXJuYXRpdmVzKHVpbnQ2NF90IGRpY3RhdGlvbkNvbnRleHQpCitW
ZWN0b3I8U3RyaW5nPiBXZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQ6OmRpY3RhdGlvbkFsdGVybmF0
aXZlcyhXZWJDb3JlOjpEaWN0YXRpb25Db250ZXh0IGRpY3RhdGlvbkNvbnRleHQpCiB7CiAgICAg
VmVjdG9yPFN0cmluZz4gcmVzdWx0OwogICAgIG1fcGFnZS0+c2VuZFN5bmMoTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6RGljdGF0aW9uQWx0ZXJuYXRpdmVzKGRpY3RhdGlvbkNvbnRleHQpLCBNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpEaWN0YXRpb25BbHRlcm5hdGl2ZXM6OlJlcGx5KHJlc3VsdCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
QWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuaAppbmRleCBhOTcwYWE2MGRjNzM4ZTcx
MTQ5NGY1ZTAwZGRjY2Q4NjgxNDNhZTEwLi42OWM4YzJiNmY0MGQyN2MwNjk1MDVlOWY0YmMwOTk5
NWFkMDlhZWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuaApAQCAtMzksOSAr
MzksOSBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIGRpc21pc3NBbHRlcm5hdGl2ZVNvb24oV2ViQ29y
ZTo6UmVhc29uRm9yRGlzbWlzc2luZ0FsdGVybmF0aXZlVGV4dCkgb3ZlcnJpZGU7CiAgICAgdm9p
ZCByZWNvcmRBdXRvY29ycmVjdGlvblJlc3BvbnNlKFdlYkNvcmU6OkF1dG9jb3JyZWN0aW9uUmVz
cG9uc2UsIGNvbnN0IFN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVwbGFj
ZW1lbnRTdHJpbmcpIG92ZXJyaWRlOwogI2VuZGlmCi0gICAgdm9pZCBzaG93RGljdGF0aW9uQWx0
ZXJuYXRpdmVVSShjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZEaWN0YXRl
ZFRleHQsIHVpbnQ2NF90IGRpY3RhdGlvbkNvbnRleHQpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVt
b3ZlRGljdGF0aW9uQWx0ZXJuYXRpdmVzKHVpbnQ2NF90IGRpY3RhdGlvbkNvbnRleHQpIG92ZXJy
aWRlOwotICAgIFZlY3RvcjxTdHJpbmc+IGRpY3RhdGlvbkFsdGVybmF0aXZlcyh1aW50NjRfdCBk
aWN0YXRpb25Db250ZXh0KSBvdmVycmlkZTsKKyAgICB2b2lkIHNob3dEaWN0YXRpb25BbHRlcm5h
dGl2ZVVJKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm91bmRpbmdCb3hPZkRpY3RhdGVkVGV4
dCwgV2ViQ29yZTo6RGljdGF0aW9uQ29udGV4dCkgb3ZlcnJpZGU7CisgICAgdm9pZCByZW1vdmVE
aWN0YXRpb25BbHRlcm5hdGl2ZXMoV2ViQ29yZTo6RGljdGF0aW9uQ29udGV4dCkgb3ZlcnJpZGU7
CisgICAgVmVjdG9yPFN0cmluZz4gZGljdGF0aW9uQWx0ZXJuYXRpdmVzKFdlYkNvcmU6OkRpY3Rh
dGlvbkNvbnRleHQpIG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIFdlYlZpZXcgKm1fd2ViVmll
dzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkFsdGVybmF0aXZlVGV4dENsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkFsdGVybmF0aXZlVGV4dENsaWVudC5tbQppbmRleCBmNjg2ZjZjYWRlNzBi
YTQ1ZWYwYWZhNTlmZmRiMTE5N2ViYzZhNDE5Li41MTBjNzU4ZDk0OWU0Yjg0NTViZjcxYTZmNDU2
OGNjMDA0NTM4OWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50Lm1tCkBAIC03
OCwxNyArNzgsMTcgQEAgdm9pZCBXZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQ6OnJlY29yZEF1dG9j
b3JyZWN0aW9uUmVzcG9uc2UoQXV0b2NvcnJlY3Rpb25SZXNwb24KIH0KICNlbmRpZgogCi12b2lk
IFdlYkFsdGVybmF0aXZlVGV4dENsaWVudDo6cmVtb3ZlRGljdGF0aW9uQWx0ZXJuYXRpdmVzKHVp
bnQ2NF90IGRpY3RhdGlvbkNvbnRleHQpCit2b2lkIFdlYkFsdGVybmF0aXZlVGV4dENsaWVudDo6
cmVtb3ZlRGljdGF0aW9uQWx0ZXJuYXRpdmVzKERpY3RhdGlvbkNvbnRleHQgZGljdGF0aW9uQ29u
dGV4dCkKIHsKICAgICBbbV93ZWJWaWV3IF9yZW1vdmVEaWN0YXRpb25BbHRlcm5hdGl2ZXM6ZGlj
dGF0aW9uQ29udGV4dF07CiB9CiAKLXZvaWQgV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50OjpzaG93
RGljdGF0aW9uQWx0ZXJuYXRpdmVVSShjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGJvdW5kaW5n
Qm94T2ZEaWN0YXRlZFRleHQsIHVpbnQ2NF90IGRpY3RhdGlvbkNvbnRleHQpCit2b2lkIFdlYkFs
dGVybmF0aXZlVGV4dENsaWVudDo6c2hvd0RpY3RhdGlvbkFsdGVybmF0aXZlVUkoY29uc3QgV2Vi
Q29yZTo6RmxvYXRSZWN0JiBib3VuZGluZ0JveE9mRGljdGF0ZWRUZXh0LCBEaWN0YXRpb25Db250
ZXh0IGRpY3RhdGlvbkNvbnRleHQpCiB7CiAgICAgW21fd2ViVmlldyBfc2hvd0RpY3RhdGlvbkFs
dGVybmF0aXZlVUk6Ym91bmRpbmdCb3hPZkRpY3RhdGVkVGV4dCBmb3JEaWN0YXRpb25Db250ZXh0
OmRpY3RhdGlvbkNvbnRleHRdOwogfQogCi1WZWN0b3I8U3RyaW5nPiBXZWJBbHRlcm5hdGl2ZVRl
eHRDbGllbnQ6OmRpY3RhdGlvbkFsdGVybmF0aXZlcyh1aW50NjRfdCBkaWN0YXRpb25Db250ZXh0
KQorVmVjdG9yPFN0cmluZz4gV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50OjpkaWN0YXRpb25BbHRl
cm5hdGl2ZXMoRGljdGF0aW9uQ29udGV4dCBkaWN0YXRpb25Db250ZXh0KQogewogICAgIHJldHVy
biBbbV93ZWJWaWV3IF9kaWN0YXRpb25BbHRlcm5hdGl2ZXM6ZGljdGF0aW9uQ29udGV4dF07CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3
Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQppbmRl
eCBhYTg4OTRkMWI2NWQ2NmM2NzYzNmUxNGI0MjZmZDRjZmVhYTcyY2UxLi41ZTRhODkwNWVjODRm
NTdiNTFkOTg5YzE3MDU5ZmQ3Y2QwY2MxZGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KQEAgLTgzLDYgKzgzLDcgQEAKICNpbXBvcnQgPFdl
YkNvcmUvQ29tcG9zaXRpb25IaWdobGlnaHQuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ29udGV4dE1l
bnUuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ29udGV4dE1lbnVDb250cm9sbGVyLmg+CisjaW1wb3J0
IDxXZWJDb3JlL0RpY3RhdGlvbkFsdGVybmF0aXZlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RpY3Rp
b25hcnlMb29rdXAuaD4KICNpbXBvcnQgPFdlYkNvcmUvRG9jdW1lbnQuaD4KICNpbXBvcnQgPFdl
YkNvcmUvRG9jdW1lbnRGcmFnbWVudC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJWaWV3Lm1tCmluZGV4IGZkY2JhNGVmMGE2Y2FjNDc3Y2RjZTlmNDc2YjJlZDU0ZjJjNGVj
N2UuLjkzYjcwNWUwMTk5NzE3N2MwNzJjMTYwYWIxODgzZDc1ZTVlYzAxZTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTE0MCw2ICsxNDAsNyBAQAog
I2ltcG9ydCA8V2ViQ29yZS9Db29raWVKYXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvRGF0YWJhc2VN
YW5hZ2VyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RlcHJlY2F0ZWRHbG9iYWxTZXR0aW5ncy5oPgor
I2ltcG9ydCA8V2ViQ29yZS9EaWN0YXRpb25BbHRlcm5hdGl2ZS5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9EaWN0aW9uYXJ5TG9va3VwLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RvY3VtZW50Lmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0RvY3VtZW50TG9hZGVyLmg+CkBAIC05NDE5LDExICs5NDIwLDExIEBAIC0g
KHZvaWQpX2dldFdlYkNvcmVEaWN0YXRpb25BbHRlcm5hdGl2ZXM6KFZlY3RvcjxXZWJDb3JlOjpE
aWN0YXRpb25BbHRlcm5hdGl2ZT4mCiB7CiAgICAgZm9yIChhdXRvJiBhbHRlcm5hdGl2ZVdpdGhS
YW5nZSA6IGFsdGVybmF0aXZlc1dpdGhSYW5nZSkgewogICAgICAgICBpZiAoYXV0byBkaWN0YXRp
b25Db250ZXh0ID0gX3ByaXZhdGUtPm1fYWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyLT5hZGRB
bHRlcm5hdGl2ZXMoYWx0ZXJuYXRpdmVXaXRoUmFuZ2UuYWx0ZXJuYXRpdmVzLmdldCgpKSkKLSAg
ICAgICAgICAgIGFsdGVybmF0aXZlcy5hcHBlbmQoV2ViQ29yZTo6RGljdGF0aW9uQWx0ZXJuYXRp
dmUoYWx0ZXJuYXRpdmVXaXRoUmFuZ2UucmFuZ2UubG9jYXRpb24sIGFsdGVybmF0aXZlV2l0aFJh
bmdlLnJhbmdlLmxlbmd0aCwgZGljdGF0aW9uQ29udGV4dCkpOworICAgICAgICAgICAgYWx0ZXJu
YXRpdmVzLmFwcGVuZCh7IGFsdGVybmF0aXZlV2l0aFJhbmdlLnJhbmdlLCBkaWN0YXRpb25Db250
ZXh0IH0pOwogICAgIH0KIH0KIAotLSAodm9pZClfc2hvd0RpY3RhdGlvbkFsdGVybmF0aXZlVUk6
KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpYm91bmRpbmdCb3hPZkRpY3RhdGVkVGV4dCBmb3JE
aWN0YXRpb25Db250ZXh0Oih1aW50NjRfdClkaWN0YXRpb25Db250ZXh0CistICh2b2lkKV9zaG93
RGljdGF0aW9uQWx0ZXJuYXRpdmVVSTooY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jilib3VuZGlu
Z0JveE9mRGljdGF0ZWRUZXh0IGZvckRpY3RhdGlvbkNvbnRleHQ6KFdlYkNvcmU6OkRpY3RhdGlv
bkNvbnRleHQpZGljdGF0aW9uQ29udGV4dAogewogI2lmIFVTRShBVVRPQ09SUkVDVElPTl9QQU5F
TCkKICAgICBfcHJpdmF0ZS0+bV9hbHRlcm5hdGl2ZVRleHRVSUNvbnRyb2xsZXItPnNob3dBbHRl
cm5hdGl2ZXMoc2VsZiwgW3NlbGYgX2NvbnZlcnRSZWN0RnJvbVJvb3RWaWV3OmJvdW5kaW5nQm94
T2ZEaWN0YXRlZFRleHRdLCBkaWN0YXRpb25Db250ZXh0LCBeKE5TU3RyaW5nKiBhY2NlcHRlZEFs
dGVybmF0aXZlKSB7CkBAIC05NDMyLDEyICs5NDMzLDEyIEBAIC0gKHZvaWQpX3Nob3dEaWN0YXRp
b25BbHRlcm5hdGl2ZVVJOihjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKWJvdW5kaW5nQm94T2ZE
aWN0CiAjZW5kaWYKIH0KIAotLSAodm9pZClfcmVtb3ZlRGljdGF0aW9uQWx0ZXJuYXRpdmVzOih1
aW50NjRfdClkaWN0YXRpb25Db250ZXh0CistICh2b2lkKV9yZW1vdmVEaWN0YXRpb25BbHRlcm5h
dGl2ZXM6KFdlYkNvcmU6OkRpY3RhdGlvbkNvbnRleHQpZGljdGF0aW9uQ29udGV4dAogewogICAg
IF9wcml2YXRlLT5tX2FsdGVybmF0aXZlVGV4dFVJQ29udHJvbGxlci0+cmVtb3ZlQWx0ZXJuYXRp
dmVzKGRpY3RhdGlvbkNvbnRleHQpOwogfQogCi0tIChWZWN0b3I8U3RyaW5nPilfZGljdGF0aW9u
QWx0ZXJuYXRpdmVzOih1aW50NjRfdClkaWN0YXRpb25Db250ZXh0CistIChWZWN0b3I8U3RyaW5n
PilfZGljdGF0aW9uQWx0ZXJuYXRpdmVzOihXZWJDb3JlOjpEaWN0YXRpb25Db250ZXh0KWRpY3Rh
dGlvbkNvbnRleHQKIHsKICAgICByZXR1cm4gX3ByaXZhdGUtPm1fYWx0ZXJuYXRpdmVUZXh0VUlD
b250cm9sbGVyLT5hbHRlcm5hdGl2ZXNGb3JDb250ZXh0KGRpY3RhdGlvbkNvbnRleHQpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJu
YWwuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFsLmgK
aW5kZXggMWYzYjg0ZjhjZWE2YzZhYjNmYWRjMTI0ODJkNGE1NTIzZGVkMTY5OC4uNTc2NjI5YWJh
NjlhNmNhMGJmNTZhNWI5ZTY5YTMzMTkxMjczODJjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oCkBAIC0xMzQsOSArMTM0LDkgQEAg
V2ViTGF5b3V0TWlsZXN0b25lcyBraXRMYXlvdXRNaWxlc3RvbmVzKE9wdGlvblNldDxXZWJDb3Jl
OjpMYXlvdXRNaWxlc3RvbmU+KTsKICNlbmRpZgogCiAtICh2b2lkKV9nZXRXZWJDb3JlRGljdGF0
aW9uQWx0ZXJuYXRpdmVzOihWZWN0b3I8V2ViQ29yZTo6RGljdGF0aW9uQWx0ZXJuYXRpdmU+Jilh
bHRlcm5hdGl2ZXMgZnJvbVRleHRBbHRlcm5hdGl2ZXM6KGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpU
ZXh0QWx0ZXJuYXRpdmVXaXRoUmFuZ2U+JilhbHRlcm5hdGl2ZXNXaXRoUmFuZ2U7Ci0tICh2b2lk
KV9zaG93RGljdGF0aW9uQWx0ZXJuYXRpdmVVSTooY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jili
b3VuZGluZ0JveE9mRGljdGF0ZWRUZXh0IGZvckRpY3RhdGlvbkNvbnRleHQ6KHVpbnQ2NF90KWRp
Y3RhdGlvbkNvbnRleHQ7Ci0tICh2b2lkKV9yZW1vdmVEaWN0YXRpb25BbHRlcm5hdGl2ZXM6KHVp
bnQ2NF90KWRpY3RhdGlvbkNvbnRleHQ7Ci0tIChWZWN0b3I8U3RyaW5nPilfZGljdGF0aW9uQWx0
ZXJuYXRpdmVzOih1aW50NjRfdClkaWN0YXRpb25Db250ZXh0OworLSAodm9pZClfc2hvd0RpY3Rh
dGlvbkFsdGVybmF0aXZlVUk6KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpYm91bmRpbmdCb3hP
ZkRpY3RhdGVkVGV4dCBmb3JEaWN0YXRpb25Db250ZXh0OihXZWJDb3JlOjpEaWN0YXRpb25Db250
ZXh0KWRpY3RhdGlvbkNvbnRleHQ7CistICh2b2lkKV9yZW1vdmVEaWN0YXRpb25BbHRlcm5hdGl2
ZXM6KFdlYkNvcmU6OkRpY3RhdGlvbkNvbnRleHQpZGljdGF0aW9uQ29udGV4dDsKKy0gKFZlY3Rv
cjxTdHJpbmc+KV9kaWN0YXRpb25BbHRlcm5hdGl2ZXM6KFdlYkNvcmU6OkRpY3RhdGlvbkNvbnRl
eHQpZGljdGF0aW9uQ29udGV4dDsKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQogLSAo
V2ViU2VsZWN0aW9uU2VydmljZUNvbnRyb2xsZXImKV9zZWxlY3Rpb25TZXJ2aWNlQ29udHJvbGxl
cjsK
</data>
<flag name="review"
          id="415329"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>