<?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>238695</bug_id>
          
          <creation_ts>2022-04-01 20:50:38 -0700</creation_ts>
          <short_desc>Plumb the IOSurfacePool through to ImageBufferBackend creation via ImageBuffer::CreationContext</short_desc>
          <delta_ts>2022-04-02 22:25:48 -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>WebKit Process Model</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="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1857525</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-04-01 20:50:38 -0700</bug_when>
    <thetext>Plumb the IOSurfacePool through to ImageBufferBackend creation via ImageBuffer::CreationContext</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857526</commentid>
    <comment_count>1</comment_count>
      <attachid>456440</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-04-01 20:53:58 -0700</bug_when>
    <thetext>Created attachment 456440
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857527</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-04-01 20:54:58 -0700</bug_when>
    <thetext>&lt;rdar://problem/91194046&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857544</commentid>
    <comment_count>3</comment_count>
      <attachid>456450</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-04-01 23:12:24 -0700</bug_when>
    <thetext>Created attachment 456450
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857659</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-04-02 22:25:46 -0700</bug_when>
    <thetext>Committed r292273 (249171@main): &lt;https://commits.webkit.org/249171@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 456450.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456440</attachid>
            <date>2022-04-01 20:53:58 -0700</date>
            <delta_ts>2022-04-01 23:12:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238695-20220401205357.patch</filename>
            <type>text/plain</type>
            <size>32408</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyMTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTNmOWFjNGRjYzA1NjVj
NmQ3YTI1NTlhYzQ2YWQ3ZGZlYmE5ZWVhYy4uYWQyMjZhYzdiZTJhZmE4NzU2ZDA3YTlhZmQ3MTVj
MTEyYWMwYmY5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIyLTA0LTAxICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFBsdW1iIHRoZSBJ
T1N1cmZhY2VQb29sIHRocm91Z2ggdG8gSW1hZ2VCdWZmZXJCYWNrZW5kIGNyZWF0aW9uIHZpYSBJ
bWFnZUJ1ZmZlcjo6Q3JlYXRpb25Db250ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg2OTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXcmFwIHRoZSBleGlzdGluZyBIb3N0V2luZG93KiBhbmQgYSBu
ZXcgSU9TdXJmYWNlUG9vbCogcG9pbnRlcnMgaW50byBhIEltYWdlQnVmZmVyOjpDcmVhdGlvbkNv
bnRleHQKKyAgICAgICAgc3RydWN0LCBhbmQgcmVwbGFjZSB0aGUgSG9zdFdpbmRvdyogYXJndW1l
bnQgd2l0aCBpdCBpbiBidWZmZXIgY3JlYXRpb24gZnVuY3Rpb25zLgorCisgICAgICAgIFJlbW90
ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVjdGlvbjo6YWxsb2NhdGVCdWZmZXJGb3JCYWNraW5nU3Rv
cmUoKSBwYXNzZXMgdGhlIHNpbmdsZXRvbiBJT1N1cmZhY2VQb29sCisgICAgICAgIHdoaWNoIGlz
IHRodXMgdXNlZCBpbiB0aGUgbm9uLUdQVSBQcm9jZXNzIGNvZGUgcGF0aCAoRE9NIHJlbmRlcmlu
ZyBkaXNhYmxlZCkuCisKKyAgICAgICAgKiBjc3MvQ1NTRmlsdGVySW1hZ2VWYWx1ZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NGaWx0ZXJJbWFnZVZhbHVlOjppbWFnZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oOgorICAgICAgICAoV2ViQ29y
ZTo6Q29uY3JldGVJbWFnZUJ1ZmZlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZUJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6Y3Jl
YXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oOgorICAgICAg
ICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OkNyZWF0aW9uQ29udGV4dDo6Q3JlYXRpb25Db250ZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpjcmVhdGUpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL1BsYXRmb3JtSW1hZ2VCdWZmZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvSW1hZ2VTdXJmYWNlQmFja2VuZC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlckNhaXJvSW1hZ2VTdXJmYWNlQmFja2VuZDo6Y3JlYXRl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvSW1h
Z2VTdXJmYWNlQmFja2VuZC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0lPU3Vy
ZmFjZVBvb2wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SU9TdXJmYWNlUG9vbDo6cG9vbFN0YXRp
c3RpY3MgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVy
Q0dCaXRtYXBCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyQ0dCaXRt
YXBCYWNrZW5kOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdl
QnVmZmVyQ0dCaXRtYXBCYWNrZW5kLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdl
QnVmZmVySU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oOgorCiAyMDIy
LTA0LTAxICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAg
IEhvaXN0IHRoZSBJT1N1cmZhY2VQb29sIG91dCBvZiBJT1N1cmZhY2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMDVh
MmYxM2VjMTFkNDUyMDRkMTYxODMzNzEzOTE1OWQyY2IwYWUzOS4uNjY2MGIwZTg5NGI3NTU1NWQy
ZTg2YTE1MTBlYzkwN2UyZTNiNzI2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAyMi0w
NC0wMSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBQ
bHVtYiB0aGUgSU9TdXJmYWNlUG9vbCB0aHJvdWdoIHRvIEltYWdlQnVmZmVyQmFja2VuZCBjcmVh
dGlvbiB2aWEgSW1hZ2VCdWZmZXI6OkNyZWF0aW9uQ29udGV4dAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4Njk1CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV3JhcCB0aGUgZXhpc3RpbmcgSG9zdFdpbmRv
dyogYW5kIGEgbmV3IElPU3VyZmFjZVBvb2wqIHBvaW50ZXJzIGludG8gYSBJbWFnZUJ1ZmZlcjo6
Q3JlYXRpb25Db250ZXh0CisgICAgICAgIHN0cnVjdCwgYW5kIHJlcGxhY2UgdGhlIEhvc3RXaW5k
b3cqIGFyZ3VtZW50IHdpdGggaXQgaW4gYnVmZmVyIGNyZWF0aW9uIGZ1bmN0aW9ucy4KKworICAg
ICAgICBSZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb246OmFsbG9jYXRlQnVmZmVyRm9y
QmFja2luZ1N0b3JlKCkgcGFzc2VzIHRoZSBzaW5nbGV0b24gSU9TdXJmYWNlUG9vbAorICAgICAg
ICB3aGljaCBpcyB0aHVzIHVzZWQgaW4gdGhlIG5vbi1HUFUgUHJvY2VzcyBjb2RlIHBhdGggKERP
TSByZW5kZXJpbmcgZGlzYWJsZWQpLgorCisgICAgICAgICogU2hhcmVkL1JlbW90ZUxheWVyVHJl
ZS9DR0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXJCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
Q0dEaXNwbGF5TGlzdEltYWdlQnVmZmVyQmFja2VuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBTaGFy
ZWQvUmVtb3RlTGF5ZXJUcmVlL0NHRGlzcGxheUxpc3RJbWFnZUJ1ZmZlckJhY2tlbmQuaDoKKyAg
ICAgICAgKiBTaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1t
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6ZW5zdXJlRnJvbnRC
dWZmZXIpOgorICAgICAgICAqIFNoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNr
aW5nU3RvcmVDb2xsZWN0aW9uLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllckJhY2tp
bmdTdG9yZUNvbGxlY3Rpb246OmFsbG9jYXRlQnVmZmVyRm9yQmFja2luZ1N0b3JlKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJh
Y2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJh
Y2tlbmQ6OmNyZWF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VC
dWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5k
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZh
Y2VCYWNrZW5kOjpjcmVhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2Nv
Y29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5oOgorCiAyMDIy
LTA0LTAxICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAg
IEhvaXN0IHRoZSBJT1N1cmZhY2VQb29sIG91dCBvZiBJT1N1cmZhY2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NGaWx0ZXJJbWFnZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NGaWx0ZXJJbWFnZVZhbHVlLmNwcAppbmRleCA2MzhmMjExZmU4ZTA5NGRkYjE0MjMw
YzFhYTMxN2UyMTgxNDI2OTdiLi41ZDdhNTUxZWViM2VmZjQwMzY2NzY3NDA1N2M4OGU1MTVhMTFm
OTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRmlsdGVySW1hZ2VWYWx1ZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZpbHRlckltYWdlVmFsdWUuY3BwCkBAIC0x
MTYsNyArMTE2LDcgQEAgUmVmUHRyPEltYWdlPiBDU1NGaWx0ZXJJbWFnZVZhbHVlOjppbWFnZShS
ZW5kZXJFbGVtZW50JiByZW5kZXJlciwgY29uc3QgRmxvYXRTaXoKIAogICAgIC8vIFRyYW5zZm9y
bSBJbWFnZSBpbnRvIEltYWdlQnVmZmVyLgogICAgIGF1dG8gcmVuZGVyaW5nTW9kZSA9IHJlbmRl
cmVyLnBhZ2UoKS5hY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkKCkgPyBSZW5kZXJpbmdNb2RlOjpB
Y2NlbGVyYXRlZCA6IFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQ7Ci0gICAgYXV0byBzb3Vy
Y2VJbWFnZSA9IEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSwgcmVuZGVyaW5nTW9kZSwgU2hvdWxk
VXNlRGlzcGxheUxpc3Q6Ok5vLCBSZW5kZXJpbmdQdXJwb3NlOjpET00sIDEsIERlc3RpbmF0aW9u
Q29sb3JTcGFjZTo6U1JHQigpLCBQaXhlbEZvcm1hdDo6QkdSQTgsIHJlbmRlcmVyLmhvc3RXaW5k
b3coKSk7CisgICAgYXV0byBzb3VyY2VJbWFnZSA9IEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSwg
cmVuZGVyaW5nTW9kZSwgU2hvdWxkVXNlRGlzcGxheUxpc3Q6Ok5vLCBSZW5kZXJpbmdQdXJwb3Nl
OjpET00sIDEsIERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JHQigpLCBQaXhlbEZvcm1hdDo6QkdS
QTgsIHsgcmVuZGVyZXIuaG9zdFdpbmRvdygpIH0pOwogICAgIGlmICghc291cmNlSW1hZ2UpCiAg
ICAgICAgIHJldHVybiAmSW1hZ2U6Om51bGxJbWFnZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUltYWdlQnVmZmVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUltYWdlQnVmZmVyLmgKaW5kZXggOTdk
Y2Q0YjJkZTJlNWE3ZWViNmI5YjMwYzY5NzdjYWRkMGE3ZTI5MS4uNDdlMGVkMmEzNTY4OTRiOWU5
YWMxYzkyMWE2NmUwYjc2N2RiY2Q1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaApAQCAtMzcsMTAgKzM3LDEwIEBA
IHRlbXBsYXRlPHR5cGVuYW1lIEJhY2tlbmRUeXBlPgogY2xhc3MgQ29uY3JldGVJbWFnZUJ1ZmZl
ciA6IHB1YmxpYyBJbWFnZUJ1ZmZlciB7CiBwdWJsaWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUg
SW1hZ2VCdWZmZXJUeXBlID0gQ29uY3JldGVJbWFnZUJ1ZmZlciwgdHlwZW5hbWUuLi4gQXJndW1l
bnRzPgotICAgIHN0YXRpYyBSZWZQdHI8SW1hZ2VCdWZmZXJUeXBlPiBjcmVhdGUoY29uc3QgRmxv
YXRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIGNvbnN0IERlc3RpbmF0aW9uQ29s
b3JTcGFjZSYgY29sb3JTcGFjZSwgUGl4ZWxGb3JtYXQgcGl4ZWxGb3JtYXQsIGNvbnN0IEhvc3RX
aW5kb3cqIGhvc3RXaW5kb3csIEFyZ3VtZW50cyYmLi4uIGFyZ3VtZW50cykKKyAgICBzdGF0aWMg
UmVmUHRyPEltYWdlQnVmZmVyVHlwZT4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgZmxv
YXQgcmVzb2x1dGlvblNjYWxlLCBjb25zdCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UmIGNvbG9yU3Bh
Y2UsIFBpeGVsRm9ybWF0IHBpeGVsRm9ybWF0LCBjb25zdCBDcmVhdGlvbkNvbnRleHQmIGNyZWF0
aW9uQ29udGV4dCwgQXJndW1lbnRzJiYuLi4gYXJndW1lbnRzKQogICAgIHsKICAgICAgICAgYXV0
byBwYXJhbWV0ZXJzID0gSW1hZ2VCdWZmZXJCYWNrZW5kOjpQYXJhbWV0ZXJzIHsgc2l6ZSwgcmVz
b2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCB9OwotICAgICAgICBhdXRvIGJh
Y2tlbmQgPSBCYWNrZW5kVHlwZTo6Y3JlYXRlKHBhcmFtZXRlcnMsIGhvc3RXaW5kb3cpOworICAg
ICAgICBhdXRvIGJhY2tlbmQgPSBCYWNrZW5kVHlwZTo6Y3JlYXRlKHBhcmFtZXRlcnMsIGNyZWF0
aW9uQ29udGV4dCk7CiAgICAgICAgIGlmICghYmFja2VuZCkKICAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEltYWdlQnVmZmVyVHlwZShwYXJh
bWV0ZXJzLCBXVEZNb3ZlKGJhY2tlbmQpLCBzdGQ6OmZvcndhcmQ8QXJndW1lbnRzPihhcmd1bWVu
dHMpLi4uKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1
ZmZlci5jcHAKaW5kZXggZjkwZDhjOTVkMThiNDQyYmE1MjI0ODViNDJjY2RiNzk0NmVmNDhlZi4u
YjhhOTVmNTQxYzVmZjU5ZTFkNDIxZGVjNzAxMzdkY2JmNjlhMzIwZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmNwcApAQCAtMzcsMzcgKzM3
LDM3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0YXRpYyBjb25zdCBmbG9hdCBNYXhDbGFtcGVk
TGVuZ3RoID0gNDA5NjsKIHN0YXRpYyBjb25zdCBmbG9hdCBNYXhDbGFtcGVkQXJlYSA9IE1heENs
YW1wZWRMZW5ndGggKiBNYXhDbGFtcGVkTGVuZ3RoOwogCi1SZWZQdHI8SW1hZ2VCdWZmZXI+IElt
YWdlQnVmZmVyOjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBSZW5kZXJpbmdNb2RlIHJl
bmRlcmluZ01vZGUsIFNob3VsZFVzZURpc3BsYXlMaXN0IHNob3VsZFVzZURpc3BsYXlMaXN0LCBS
ZW5kZXJpbmdQdXJwb3NlIHB1cnBvc2UsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgY29uc3QgRGVz
dGluYXRpb25Db2xvclNwYWNlJiBjb2xvclNwYWNlLCBQaXhlbEZvcm1hdCBwaXhlbEZvcm1hdCwg
Y29uc3QgSG9zdFdpbmRvdyogaG9zdFdpbmRvdykKK1JlZlB0cjxJbWFnZUJ1ZmZlcj4gSW1hZ2VC
dWZmZXI6OmNyZWF0ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIFJlbmRlcmluZ01vZGUgcmVuZGVy
aW5nTW9kZSwgU2hvdWxkVXNlRGlzcGxheUxpc3Qgc2hvdWxkVXNlRGlzcGxheUxpc3QsIFJlbmRl
cmluZ1B1cnBvc2UgcHVycG9zZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBjb25zdCBEZXN0aW5h
dGlvbkNvbG9yU3BhY2UmIGNvbG9yU3BhY2UsIFBpeGVsRm9ybWF0IHBpeGVsRm9ybWF0LCBjb25z
dCBDcmVhdGlvbkNvbnRleHQmIGNyZWF0aW9uQ29udGV4dCkKIHsKICAgICBSZWZQdHI8SW1hZ2VC
dWZmZXI+IGltYWdlQnVmZmVyOwogICAgIAogICAgIC8vIEdpdmUgU2hvdWxkVXNlRGlzcGxheUxp
c3QgYSBoaWdoZXIgcHJlY2VkZW5jZSBzaW5jZSBpdCBpcyBhIGRlYnVnIG9wdGlvbi4KICAgICBp
ZiAoc2hvdWxkVXNlRGlzcGxheUxpc3QgPT0gU2hvdWxkVXNlRGlzcGxheUxpc3Q6Olllcykgewog
ICAgICAgICBpZiAocmVuZGVyaW5nTW9kZSA9PSBSZW5kZXJpbmdNb2RlOjpBY2NlbGVyYXRlZCkK
LSAgICAgICAgICAgIGltYWdlQnVmZmVyID0gRGlzcGxheUxpc3RBY2NlbGVyYXRlZEltYWdlQnVm
ZmVyOjpjcmVhdGUoc2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1h
dCwgaG9zdFdpbmRvdyk7CisgICAgICAgICAgICBpbWFnZUJ1ZmZlciA9IERpc3BsYXlMaXN0QWNj
ZWxlcmF0ZWRJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JT
cGFjZSwgcGl4ZWxGb3JtYXQsIGNyZWF0aW9uQ29udGV4dCk7CiAgICAgICAgIAogICAgICAgICBp
ZiAoIWltYWdlQnVmZmVyKQotICAgICAgICAgICAgaW1hZ2VCdWZmZXIgPSBEaXNwbGF5TGlzdFVu
YWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUsIHJlc29sdXRpb25TY2FsZSwgY29s
b3JTcGFjZSwgcGl4ZWxGb3JtYXQsIGhvc3RXaW5kb3cpOworICAgICAgICAgICAgaW1hZ2VCdWZm
ZXIgPSBEaXNwbGF5TGlzdFVuYWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUsIHJl
c29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQsIGNyZWF0aW9uQ29udGV4dCk7
CiAgICAgfQogICAgIAotICAgIGlmIChob3N0V2luZG93ICYmICFpbWFnZUJ1ZmZlcikKLSAgICAg
ICAgaW1hZ2VCdWZmZXIgPSBob3N0V2luZG93LT5jcmVhdGVJbWFnZUJ1ZmZlcihzaXplLCByZW5k
ZXJpbmdNb2RlLCBwdXJwb3NlLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9y
bWF0KTsKKyAgICBpZiAoY3JlYXRpb25Db250ZXh0Lmhvc3RXaW5kb3cgJiYgIWltYWdlQnVmZmVy
KQorICAgICAgICBpbWFnZUJ1ZmZlciA9IGNyZWF0aW9uQ29udGV4dC5ob3N0V2luZG93LT5jcmVh
dGVJbWFnZUJ1ZmZlcihzaXplLCByZW5kZXJpbmdNb2RlLCBwdXJwb3NlLCByZXNvbHV0aW9uU2Nh
bGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0KTsKIAogICAgIGlmICghaW1hZ2VCdWZmZXIpCi0g
ICAgICAgIGltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplLCByZW5kZXJpbmdN
b2RlLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0LCBob3N0V2luZG93
KTsKKyAgICAgICAgaW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUsIHJlbmRl
cmluZ01vZGUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQsIGNyZWF0
aW9uQ29udGV4dCk7CiAKICAgICByZXR1cm4gaW1hZ2VCdWZmZXI7CiB9CiAKLVJlZlB0cjxJbWFn
ZUJ1ZmZlcj4gSW1hZ2VCdWZmZXI6OmNyZWF0ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIFJlbmRl
cmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBjb25zdCBEZXN0
aW5hdGlvbkNvbG9yU3BhY2UmIGNvbG9yU3BhY2UsIFBpeGVsRm9ybWF0IHBpeGVsRm9ybWF0LCBj
b25zdCBIb3N0V2luZG93KiBob3N0V2luZG93KQorUmVmUHRyPEltYWdlQnVmZmVyPiBJbWFnZUJ1
ZmZlcjo6Y3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJp
bmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFj
ZSYgY29sb3JTcGFjZSwgUGl4ZWxGb3JtYXQgcGl4ZWxGb3JtYXQsIGNvbnN0IENyZWF0aW9uQ29u
dGV4dCYgY3JlYXRpb25Db250ZXh0KQogewogICAgIFJlZlB0cjxJbWFnZUJ1ZmZlcj4gaW1hZ2VC
dWZmZXI7CiAgICAgCiAgICAgaWYgKHJlbmRlcmluZ01vZGUgPT0gUmVuZGVyaW5nTW9kZTo6QWNj
ZWxlcmF0ZWQpCi0gICAgICAgIGltYWdlQnVmZmVyID0gQWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlcjo6
Y3JlYXRlKHNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQsIGhv
c3RXaW5kb3cpOworICAgICAgICBpbWFnZUJ1ZmZlciA9IEFjY2VsZXJhdGVkSW1hZ2VCdWZmZXI6
OmNyZWF0ZShzaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0LCBj
cmVhdGlvbkNvbnRleHQpOwogICAgIAogICAgIGlmICghaW1hZ2VCdWZmZXIpCi0gICAgICAgIGlt
YWdlQnVmZmVyID0gVW5hY2NlbGVyYXRlZEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSwgcmVzb2x1
dGlvblNjYWxlLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCwgaG9zdFdpbmRvdyk7CisgICAgICAg
IGltYWdlQnVmZmVyID0gVW5hY2NlbGVyYXRlZEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSwgcmVz
b2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCwgY3JlYXRpb25Db250ZXh0KTsK
IAogICAgIHJldHVybiBpbWFnZUJ1ZmZlcjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCmluZGV4IGQwNDUxNzVmNGQwNWQxYTViNDhmNzQ4Njcw
NGVlYTI5ZGRlYzA3MTYuLmQ3YmU4NWNhZTFmMmM5ODRiODM3MWQzZmJkNmY1M2VlYTc5ZDEyMDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaApA
QCAtMzcsMTIgKzM3LDI0IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZpbHRlcjsK
K2NsYXNzIEhvc3RXaW5kb3c7CitjbGFzcyBJT1N1cmZhY2VQb29sOwogCiBjbGFzcyBJbWFnZUJ1
ZmZlciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxJbWFnZUJ1ZmZlciwgV1RGOjpEZXN0
cnVjdGlvblRocmVhZDo6TWFpbj4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxJbWFnZUJ1ZmZlcj4g
ewogcHVibGljOgorICAgIHN0cnVjdCBDcmVhdGlvbkNvbnRleHQgeworICAgICAgICAvLyBjbGFu
ZyAxMy4xLjYgdGhyb3dzIGVycm9ycyBpZiB3ZSB1c2UgZGVmYXVsdCBpbml0aWFsaXplcnMgaGVy
ZS4KKyAgICAgICAgSG9zdFdpbmRvdyogaG9zdFdpbmRvdzsKKyAgICAgICAgSU9TdXJmYWNlUG9v
bCogc3VyZmFjZVBvb2w7CisgICAgICAgIENyZWF0aW9uQ29udGV4dChIb3N0V2luZG93KiB3aW5k
b3cgPSBudWxscHRyLCBJT1N1cmZhY2VQb29sKiBwb29sID0gbnVsbHB0cikKKyAgICAgICAgICAg
IDogaG9zdFdpbmRvdyh3aW5kb3cpCisgICAgICAgICAgICAsIHN1cmZhY2VQb29sKHBvb2wpCisg
ICAgICAgIHsgfQorICAgIH07CisKICAgICAvLyBXaWxsIHJldHVybiBhIG51bGwgcG9pbnRlciBv
biBhbGxvY2F0aW9uIGZhaWx1cmUuCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZlB0cjxJ
bWFnZUJ1ZmZlcj4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYsIFJlbmRlcmluZ01vZGUsIFNob3Vs
ZFVzZURpc3BsYXlMaXN0LCBSZW5kZXJpbmdQdXJwb3NlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUs
IGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYsIFBpeGVsRm9ybWF0LCBjb25zdCBIb3N0V2lu
ZG93KiA9IG51bGxwdHIpOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWZQdHI8SW1hZ2VC
dWZmZXI+IGNyZWF0ZShjb25zdCBGbG9hdFNpemUmLCBSZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNv
bHV0aW9uU2NhbGUsIGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYsIFBpeGVsRm9ybWF0LCBj
b25zdCBIb3N0V2luZG93KiA9IG51bGxwdHIpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBS
ZWZQdHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZShjb25zdCBGbG9hdFNpemUmLCBSZW5kZXJpbmdNb2Rl
LCBTaG91bGRVc2VEaXNwbGF5TGlzdCwgUmVuZGVyaW5nUHVycG9zZSwgZmxvYXQgcmVzb2x1dGlv
blNjYWxlLCBjb25zdCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UmLCBQaXhlbEZvcm1hdCwgY29uc3Qg
Q3JlYXRpb25Db250ZXh0JiA9IHsgfSk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZlB0
cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYsIFJlbmRlcmluZ01vZGUsIGZs
b2F0IHJlc29sdXRpb25TY2FsZSwgY29uc3QgRGVzdGluYXRpb25Db2xvclNwYWNlJiwgUGl4ZWxG
b3JtYXQsIGNvbnN0IENyZWF0aW9uQ29udGV4dCYgPSB7IH0pOwogCiAgICAgUmVmUHRyPEltYWdl
QnVmZmVyPiBjbG9uZSgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5oCmluZGV4IGY2ZjRlNmZlZTgyMGI1YWUz
YTIyMzlmYjgxZTM5MTRkZjgwNWYwNmMuLmEyZTcwMWY1Mjc0MDZmZWU1OGRkNjA0NTgyMmIwNjAy
NTRlYzlkMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlQnVmZmVyQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlQnVmZmVyQmFja2VuZC5oCkBAIC00MCw3ICs0MCw2IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgR3JhcGhpY3NDb250ZXh0OwogY2xhc3MgR3JhcGhpY3NDb250ZXh0R0w7Ci1j
bGFzcyBIb3N0V2luZG93OwogY2xhc3MgSW1hZ2U7CiBjbGFzcyBOYXRpdmVJbWFnZTsKIGNsYXNz
IFBpeGVsQnVmZmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvUGxhdGZvcm1JbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvUGxhdGZvcm1JbWFnZUJ1ZmZlci5oCmluZGV4IGRiMTJkMjcwNzYyYmUwYzExZDRkMmUzOTE1
NWUyNGFiZmEzNDliNmMuLjhkMjE1NmU5ZmJmZGNiNWFlY2Y0NDg5YzAzMWUyMjU1MWU4YWM4NjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtSW1h
Z2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9y
bUltYWdlQnVmZmVyLmgKQEAgLTYwLDkgKzYwLDkgQEAgdXNpbmcgRGlzcGxheUxpc3RBY2NlbGVy
YXRlZEltYWdlQnVmZmVyID0gRGlzcGxheUxpc3Q6OkltYWdlQnVmZmVyPEFjY2VsZXJhdGVkSW0K
IGNsYXNzIElPU3VyZmFjZUltYWdlQnVmZmVyIGZpbmFsIDogcHVibGljIENvbmNyZXRlSW1hZ2VC
dWZmZXI8SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kPiB7CiAgICAgdXNpbmcgQmFzZSA9IENv
bmNyZXRlSW1hZ2VCdWZmZXI8SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kPjsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgYXV0byBjcmVhdGUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBzaXplLCBm
bG9hdCByZXNvbHV0aW9uU2NhbGUsIGNvbnN0IFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFj
ZSYgY29sb3JTcGFjZSwgV2ViQ29yZTo6UGl4ZWxGb3JtYXQgcGl4ZWxGb3JtYXQsIGNvbnN0IEhv
c3RXaW5kb3cqIGhvc3RXaW5kb3cgPSBudWxscHRyKQorICAgIHN0YXRpYyBhdXRvIGNyZWF0ZShj
b25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgY29u
c3QgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlJiBjb2xvclNwYWNlLCBXZWJDb3JlOjpQ
aXhlbEZvcm1hdCBwaXhlbEZvcm1hdCwgY29uc3QgQ3JlYXRpb25Db250ZXh0JiBjcmVhdGlvbkNv
bnRleHQgPSB7IH0pCiAgICAgewotICAgICAgICByZXR1cm4gQmFzZTo6Y3JlYXRlPElPU3VyZmFj
ZUltYWdlQnVmZmVyPihzaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9y
bWF0LCBob3N0V2luZG93KTsKKyAgICAgICAgcmV0dXJuIEJhc2U6OmNyZWF0ZTxJT1N1cmZhY2VJ
bWFnZUJ1ZmZlcj4oc2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1h
dCwgY3JlYXRpb25Db250ZXh0KTsKICAgICB9CiAgICAgc3RhdGljIGF1dG8gY3JlYXRlKGNvbnN0
IEZsb2F0U2l6ZSYgc2l6ZSwgY29uc3QgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KQogICAgIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdl
QnVmZmVyQ2Fpcm9JbWFnZVN1cmZhY2VCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9JbWFnZVN1cmZhY2VCYWNrZW5kLmNw
cAppbmRleCBkMzNmNWY1NmMzNTJiNzA4NDdmZThlYThiOGIwMDM2YzgyYjIyYzA4Li5jOTU3N2Ni
ZmE0YzI0MWQ2NmFhNjkxMTIzZTU0NzI5MjdlMjI1OTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvSW1hZ2VTdXJmYWNl
QmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
SW1hZ2VCdWZmZXJDYWlyb0ltYWdlU3VyZmFjZUJhY2tlbmQuY3BwCkBAIC03Myw3ICs3Myw3IEBA
IHNpemVfdCBJbWFnZUJ1ZmZlckNhaXJvSW1hZ2VTdXJmYWNlQmFja2VuZDo6Y2FsY3VsYXRlTWVt
b3J5Q29zdChjb25zdCBQYXJhbWV0ZXJzCiAgICAgcmV0dXJuIEltYWdlQnVmZmVyQmFja2VuZDo6
Y2FsY3VsYXRlTWVtb3J5Q29zdChiYWNrZW5kU2l6ZSwgY2FsY3VsYXRlQnl0ZXNQZXJSb3coYmFj
a2VuZFNpemUpKTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyQ2Fpcm9JbWFnZVN1
cmZhY2VCYWNrZW5kPiBJbWFnZUJ1ZmZlckNhaXJvSW1hZ2VTdXJmYWNlQmFja2VuZDo6Y3JlYXRl
KGNvbnN0IFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIGNvbnN0IEhvc3RXaW5kb3cqKQorc3RkOjp1
bmlxdWVfcHRyPEltYWdlQnVmZmVyQ2Fpcm9JbWFnZVN1cmZhY2VCYWNrZW5kPiBJbWFnZUJ1ZmZl
ckNhaXJvSW1hZ2VTdXJmYWNlQmFja2VuZDo6Y3JlYXRlKGNvbnN0IFBhcmFtZXRlcnMmIHBhcmFt
ZXRlcnMsIGNvbnN0IEltYWdlQnVmZmVyOjpDcmVhdGlvbkNvbnRleHQmKQogewogICAgIEFTU0VS
VChwYXJhbWV0ZXJzLnBpeGVsRm9ybWF0ID09IFBpeGVsRm9ybWF0OjpCR1JBOCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVy
Q2Fpcm9JbWFnZVN1cmZhY2VCYWNrZW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvSW1hZ2VTdXJmYWNlQmFja2VuZC5oCmluZGV4IGJk
ZTk5ZTM0ZjYwYWEzNDYzNGNiMmI2MjgwNzUzOGZlYjY0NDk3ZjguLjlkNjAwZGZlMmRiOGEyYzU4
MjdiZTFkMmJjOWE3M2IxOGUwMDBhYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9JbWFnZVN1cmZhY2VCYWNrZW5kLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJD
YWlyb0ltYWdlU3VyZmFjZUJhY2tlbmQuaApAQCAtNDQsNyArNDQsNyBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIHVuc2lnbmVkIGNhbGN1bGF0ZUJ5dGVzUGVyUm93KGNvbnN0IEludFNpemUmIGJhY2tl
bmRTaXplKTsKICAgICBzdGF0aWMgc2l6ZV90IGNhbGN1bGF0ZU1lbW9yeUNvc3QoY29uc3QgUGFy
YW1ldGVycyYpOwogCi0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlckNhaXJv
SW1hZ2VTdXJmYWNlQmFja2VuZD4gY3JlYXRlKGNvbnN0IFBhcmFtZXRlcnMmLCBjb25zdCBIb3N0
V2luZG93Kik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlckNhaXJvSW1h
Z2VTdXJmYWNlQmFja2VuZD4gY3JlYXRlKGNvbnN0IFBhcmFtZXRlcnMmLCBjb25zdCBJbWFnZUJ1
ZmZlcjo6Q3JlYXRpb25Db250ZXh0Jik7CiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFn
ZUJ1ZmZlckNhaXJvSW1hZ2VTdXJmYWNlQmFja2VuZD4gY3JlYXRlKGNvbnN0IFBhcmFtZXRlcnMm
LCBjb25zdCBHcmFwaGljc0NvbnRleHQmKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lPU3VyZmFjZVBvb2wuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSU9TdXJmYWNlUG9vbC5jcHAKaW5kZXggZDM2
ZmE0YTk5OTBiYmIwMmMzZDdlMDBlM2M2M2IzNjFhZDY1OWY3My4uOWQ2MWM4MzA1NTgxMzRlNmU0
ZTQ4ZmZjZjk4ODcwNzdmOWQ3NTljOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvSU9TdXJmYWNlUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvSU9TdXJmYWNlUG9vbC5jcHAKQEAgLTM3MCw3ICszNzAsNyBAQCBT
dHJpbmcgSU9TdXJmYWNlUG9vbDo6cG9vbFN0YXRpc3RpY3MoKSBjb25zdAogICAgICAgICB0b3Rh
bFNpemUgKz0gcXVldWVTaXplOwogICAgICAgICB0b3RhbFB1cmdlYWJsZVNpemUgKz0gcXVldWVQ
dXJnZWFibGVTaXplOwogCi0gICAgICAgIHN0cmVhbSA8PCAiICAgIiA8PCBrZXlBbmRTdXJmYWNl
cy5rZXkgPDwgIjogIiA8PCBrZXlBbmRTdXJmYWNlcy52YWx1ZS5zaXplKCkgPDwgIiBzdXJmYWNl
cyBmb3IgIiA8PCBxdWV1ZVNpemUgLyAoMTAyNC4wICogMTAyNC4wKSA8PCAiIE1CICgiIDw8IHF1
ZXVlUHVyZ2VhYmxlU2l6ZSAvICgxMDI0LjAgKiAxMDI0LjApIDw8ICIgTUIgcHVyZ2VhYmxlKSI7
CisgICAgICAgIHN0cmVhbSA8PCAiICAgIiA8PCBrZXlBbmRTdXJmYWNlcy5rZXkgPDwgIjogIiA8
PCBrZXlBbmRTdXJmYWNlcy52YWx1ZS5zaXplKCkgPDwgIiBzdXJmYWNlcyBmb3IgIiA8PCBxdWV1
ZVNpemUgLyAoMTAyNC4wICogMTAyNC4wKSA8PCAiIE1CICgiIDw8IHF1ZXVlUHVyZ2VhYmxlU2l6
ZSAvICgxMDI0LjAgKiAxMDI0LjApIDw8ICIgTUIgcHVyZ2VhYmxlKVxuIjsKICAgICB9CiAKICAg
ICBzaXplX3QgaW5Vc2VTaXplID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kLmNw
cAppbmRleCA0NGJmNTk5YjY3NzM3NmUwMzBkZDYxMDIxOWI3MjczY2VhNDNkMGViLi41ZTIzMDdh
ZTBkNWY2YWQxODNiYTIwM2Q2OWJiOTJiN2RlYmZiMGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0Jp
dG1hcEJhY2tlbmQuY3BwCkBAIC02Miw3ICs2Miw3IEBAIHNpemVfdCBJbWFnZUJ1ZmZlckNHQml0
bWFwQmFja2VuZDo6Y2FsY3VsYXRlTWVtb3J5Q29zdChjb25zdCBQYXJhbWV0ZXJzJiBwYXJhbWV0
CiAgICAgcmV0dXJuIEltYWdlQnVmZmVyQmFja2VuZDo6Y2FsY3VsYXRlTWVtb3J5Q29zdChiYWNr
ZW5kU2l6ZSwgY2FsY3VsYXRlQnl0ZXNQZXJSb3coYmFja2VuZFNpemUpKTsKIH0KIAotc3RkOjp1
bmlxdWVfcHRyPEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kPiBJbWFnZUJ1ZmZlckNHQml0bWFw
QmFja2VuZDo6Y3JlYXRlKGNvbnN0IFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIGNvbnN0IEhvc3RX
aW5kb3cqKQorc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kPiBJbWFn
ZUJ1ZmZlckNHQml0bWFwQmFja2VuZDo6Y3JlYXRlKGNvbnN0IFBhcmFtZXRlcnMmIHBhcmFtZXRl
cnMsIGNvbnN0IEltYWdlQnVmZmVyOjpDcmVhdGlvbkNvbnRleHQmKQogewogICAgIEFTU0VSVChw
YXJhbWV0ZXJzLnBpeGVsRm9ybWF0ID09IFBpeGVsRm9ybWF0OjpCR1JBOCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCaXRt
YXBCYWNrZW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1
ZmZlckNHQml0bWFwQmFja2VuZC5oCmluZGV4IDA5NzZiNTgxNjA0OGI5MjA0NDEwNTliODllNmIy
ZGE4MGE0ODVkNGMuLmFmYjY0NDg3ZjQ1MGEyZmJjODVkMDJjMmExMjYyNzMxYjRhZDRmYWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVy
Q0dCaXRtYXBCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaWYg
VVNFKENHKQogCisjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZl
ckNHQmFja2VuZC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KIApAQCAtNDEsNyArNDIs
NyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEludFNpemUgY2FsY3VsYXRlU2FmZUJhY2tlbmRTaXpl
KGNvbnN0IFBhcmFtZXRlcnMmKTsKICAgICBzdGF0aWMgc2l6ZV90IGNhbGN1bGF0ZU1lbW9yeUNv
c3QoY29uc3QgUGFyYW1ldGVycyYpOwogCi0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFn
ZUJ1ZmZlckNHQml0bWFwQmFja2VuZD4gY3JlYXRlKGNvbnN0IFBhcmFtZXRlcnMmLCBjb25zdCBI
b3N0V2luZG93Kik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlckNHQml0
bWFwQmFja2VuZD4gY3JlYXRlKGNvbnN0IFBhcmFtZXRlcnMmLCBjb25zdCBJbWFnZUJ1ZmZlcjo6
Q3JlYXRpb25Db250ZXh0Jik7CiAKICAgICAvLyBGSVhNRTogUmVuYW1lIHRvIGNyZWF0ZVVzaW5n
Q29sb3JTcGFjZU9mR3JhcGhpY3NDb250ZXh0KCkgKG9yIHNvbWV0aGluZyBsaWtlIHRoYXQpLgog
ICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ+IGNy
ZWF0ZShjb25zdCBQYXJhbWV0ZXJzJiwgY29uc3QgR3JhcGhpY3NDb250ZXh0Jik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3Vy
ZmFjZUJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1h
Z2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmNwcAppbmRleCBlMjA2ZDk2MTUxNmUwMGY4NmFlM2Y3
ZjMyMTU5NmNiYmE4OGQ4YzhjLi42MWE1OWRkMmZlNzFhMjkwMDQzMjMyNGJhNmE4ODQ3ODU0OTA4
NmZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFn
ZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5jcHAKQEAgLTgxLDE3ICs4
MSwxNyBAQCBSZXRhaW5QdHI8Q0dDb2xvclNwYWNlUmVmPiBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJh
Y2tlbmQ6OmNvbnRleHRDb2xvclNwYWNlKGNvbnN0CiAgICAgcmV0dXJuIEltYWdlQnVmZmVyQ0dC
YWNrZW5kOjpjb250ZXh0Q29sb3JTcGFjZShjb250ZXh0KTsKIH0KIAotc3RkOjp1bmlxdWVfcHRy
PEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZD4gSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5k
OjpjcmVhdGUoY29uc3QgUGFyYW1ldGVycyYgcGFyYW1ldGVycywgY29uc3QgSG9zdFdpbmRvdyog
aG9zdFdpbmRvdykKK3N0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ+
IEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlKGNvbnN0IFBhcmFtZXRlcnMmIHBh
cmFtZXRlcnMsIGNvbnN0IEltYWdlQnVmZmVyOjpDcmVhdGlvbkNvbnRleHQmIGNyZWF0aW9uQ29u
dGV4dCkKIHsKICAgICBJbnRTaXplIGJhY2tlbmRTaXplID0gY2FsY3VsYXRlU2FmZUJhY2tlbmRT
aXplKHBhcmFtZXRlcnMpOwogICAgIGlmIChiYWNrZW5kU2l6ZS5pc0VtcHR5KCkpCiAgICAgICAg
IHJldHVybiBudWxscHRyOwogCi0gICAgYXV0byBzdXJmYWNlID0gSU9TdXJmYWNlOjpjcmVhdGUo
JklPU3VyZmFjZVBvb2w6OnNoYXJlZFBvb2woKSwgYmFja2VuZFNpemUsIGJhY2tlbmRTaXplLCBw
YXJhbWV0ZXJzLmNvbG9yU3BhY2UsIElPU3VyZmFjZTo6Zm9ybWF0Rm9yUGl4ZWxGb3JtYXQocGFy
YW1ldGVycy5waXhlbEZvcm1hdCkpOworICAgIGF1dG8gc3VyZmFjZSA9IElPU3VyZmFjZTo6Y3Jl
YXRlKGNyZWF0aW9uQ29udGV4dC5zdXJmYWNlUG9vbCwgYmFja2VuZFNpemUsIGJhY2tlbmRTaXpl
LCBwYXJhbWV0ZXJzLmNvbG9yU3BhY2UsIElPU3VyZmFjZTo6Zm9ybWF0Rm9yUGl4ZWxGb3JtYXQo
cGFyYW1ldGVycy5waXhlbEZvcm1hdCkpOwogICAgIGlmICghc3VyZmFjZSkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKLSAgICBSZXRhaW5QdHI8Q0dDb250ZXh0UmVmPiBjZ0NvbnRleHQgPSBz
dXJmYWNlLT5lbnN1cmVQbGF0Zm9ybUNvbnRleHQoaG9zdFdpbmRvdyk7CisgICAgUmV0YWluUHRy
PENHQ29udGV4dFJlZj4gY2dDb250ZXh0ID0gc3VyZmFjZS0+ZW5zdXJlUGxhdGZvcm1Db250ZXh0
KGNyZWF0aW9uQ29udGV4dC5ob3N0V2luZG93KTsKICAgICBpZiAoIWNnQ29udGV4dCkKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmgKaW5k
ZXggMDM5MTNiMDBiZmFlZjIzMDFmN2UzNjIyNDczNjM2NzRjNjY0MTc5NS4uOTUwMmFhZTVmY2I3
NTEwYjNmNGY1NWEzYzM1ZmMzM2UyZDhkMzJkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJT1N1cmZhY2VC
YWNrZW5kLmgKQEAgLTQyLDcgKzQyLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBzaXplX3QgY2Fs
Y3VsYXRlTWVtb3J5Q29zdChjb25zdCBQYXJhbWV0ZXJzJik7CiAgICAgc3RhdGljIHNpemVfdCBj
YWxjdWxhdGVFeHRlcm5hbE1lbW9yeUNvc3QoY29uc3QgUGFyYW1ldGVycyYpOwogICAgIAotICAg
IHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kPiBjcmVh
dGUoY29uc3QgUGFyYW1ldGVycyYsIGNvbnN0IEhvc3RXaW5kb3cqKTsKKyAgICBzdGF0aWMgc3Rk
Ojp1bmlxdWVfcHRyPEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZD4gY3JlYXRlKGNvbnN0IFBh
cmFtZXRlcnMmLCBjb25zdCBJbWFnZUJ1ZmZlcjo6Q3JlYXRpb25Db250ZXh0Jik7CiAgICAgLy8g
RklYTUU6IFJlbmFtZSB0byBjcmVhdGVVc2luZ0NvbG9yU3BhY2VPZkdyYXBoaWNzQ29udGV4dCgp
IChvciBzb21ldGhpbmcgbGlrZSB0aGF0KS4KICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElt
YWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZD4gY3JlYXRlKGNvbnN0IFBhcmFtZXRlcnMmLCBjb25z
dCBHcmFwaGljc0NvbnRleHQmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEltYWdl
QnVmZmVyLmgKaW5kZXggMGRhODMyNWM0MDEzZjg1NDQ2YmY1N2E0MDE0ZTA5N2NhZDdjYzM0MC4u
N2Y5OGNmZmNhMTE2NWFiNjljMWY4NTdjYWRmMWYzMzk3N2M0ZDg5MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SW1h
Z2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oCkBAIC00MCw5ICs0MCw5IEBAIGNsYXNzIElt
YWdlQnVmZmVyIGZpbmFsIDogcHVibGljIENvbmNyZXRlSW1hZ2VCdWZmZXI8QmFja2VuZFR5cGU+
IHsKICAgICB1c2luZyBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6YmFzZVRyYW5zZm9ybTsKIAog
cHVibGljOgotICAgIHN0YXRpYyBhdXRvIGNyZWF0ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIGZs
b2F0IHJlc29sdXRpb25TY2FsZSwgY29uc3QgRGVzdGluYXRpb25Db2xvclNwYWNlJiBjb2xvclNw
YWNlLCBQaXhlbEZvcm1hdCBwaXhlbEZvcm1hdCwgY29uc3QgSG9zdFdpbmRvdyogaG9zdFdpbmRv
dykKKyAgICBzdGF0aWMgYXV0byBjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBmbG9hdCBy
ZXNvbHV0aW9uU2NhbGUsIGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYgY29sb3JTcGFjZSwg
UGl4ZWxGb3JtYXQgcGl4ZWxGb3JtYXQsIGNvbnN0IFdlYkNvcmU6OkltYWdlQnVmZmVyOjpDcmVh
dGlvbkNvbnRleHQmIGNyZWF0aW9uQ29udGV4dCkKICAgICB7Ci0gICAgICAgIHJldHVybiBCYXNl
Q29uY3JldGVJbWFnZUJ1ZmZlcjo6dGVtcGxhdGUgY3JlYXRlPEltYWdlQnVmZmVyPihzaXplLCBy
ZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0LCBob3N0V2luZG93KTsKKyAg
ICAgICAgcmV0dXJuIEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyOjp0ZW1wbGF0ZSBjcmVhdGU8SW1h
Z2VCdWZmZXI+KHNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQs
IGNyZWF0aW9uQ29udGV4dCk7CiAgICAgfQogCiAgICAgc3RhdGljIGF1dG8gY3JlYXRlKGNvbnN0
IEZsb2F0U2l6ZSYgc2l6ZSwgY29uc3QgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL0NHRGlzcGxheUxpc3RJ
bWFnZUJ1ZmZlckJhY2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJU
cmVlL0NHRGlzcGxheUxpc3RJbWFnZUJ1ZmZlckJhY2tlbmQuY3BwCmluZGV4IDRlMWExMDllOWZm
ODhlNDA2YTU3NTFhNWU5NTk1ZWJiN2FlOWVkN2YuLjRhYTNlNWQ4OTJhODgzZDA3YzhmODUzODM2
OTgwOWRhNzBiZmZjOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxh
eWVyVHJlZS9DR0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXJCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvQ0dEaXNwbGF5TGlzdEltYWdlQnVmZmVyQmFj
a2VuZC5jcHAKQEAgLTg2LDcgKzg2LDcgQEAgc3RkOjp1bmlxdWVfcHRyPENHRGlzcGxheUxpc3RJ
bWFnZUJ1ZmZlckJhY2tlbmQ+IENHRGlzcGxheUxpc3RJbWFnZUJ1ZmZlckJhY2tlbmQKICAgICBy
ZXR1cm4gc3RkOjp1bmlxdWVfcHRyPENHRGlzcGxheUxpc3RJbWFnZUJ1ZmZlckJhY2tlbmQ+KG5l
dyBDR0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXJCYWNrZW5kKHBhcmFtZXRlcnMsIFdURk1vdmUoY29u
dGV4dCkpKTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPENHRGlzcGxheUxpc3RJbWFnZUJ1ZmZlckJh
Y2tlbmQ+IENHRGlzcGxheUxpc3RJbWFnZUJ1ZmZlckJhY2tlbmQ6OmNyZWF0ZShjb25zdCBQYXJh
bWV0ZXJzJiBwYXJhbWV0ZXJzLCBjb25zdCBXZWJDb3JlOjpIb3N0V2luZG93KikKK3N0ZDo6dW5p
cXVlX3B0cjxDR0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXJCYWNrZW5kPiBDR0Rpc3BsYXlMaXN0SW1h
Z2VCdWZmZXJCYWNrZW5kOjpjcmVhdGUoY29uc3QgUGFyYW1ldGVycyYgcGFyYW1ldGVycywgY29u
c3QgV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OkNyZWF0aW9uQ29udGV4dCYpCiB7CiAgICAgcmV0dXJu
IENHRGlzcGxheUxpc3RJbWFnZUJ1ZmZlckJhY2tlbmQ6OmNyZWF0ZShwYXJhbWV0ZXJzKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9DR0Rpc3Bs
YXlMaXN0SW1hZ2VCdWZmZXJCYWNrZW5kLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVM
YXllclRyZWUvQ0dEaXNwbGF5TGlzdEltYWdlQnVmZmVyQmFja2VuZC5oCmluZGV4IDAyMmZlNzIz
Yjg1MjAwOWNjMWY2ZjYyZmIyMzUwZjQzZDc1MWZmOTcuLjVmMjNmZDZjY2MwZjAwZGNkMmE1ODA5
NTcyY2NhN2I4M2Y2MDE1YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90
ZUxheWVyVHJlZS9DR0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXJCYWNrZW5kLmgKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL0NHRGlzcGxheUxpc3RJbWFnZUJ1ZmZlckJh
Y2tlbmQuaApAQCAtNDAsNyArNDAsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHNpemVfdCBjYWxj
dWxhdGVNZW1vcnlDb3N0KGNvbnN0IFBhcmFtZXRlcnMmKTsKIAogICAgIHN0YXRpYyBzdGQ6OnVu
aXF1ZV9wdHI8Q0dEaXNwbGF5TGlzdEltYWdlQnVmZmVyQmFja2VuZD4gY3JlYXRlKGNvbnN0IFBh
cmFtZXRlcnMmKTsKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPENHRGlzcGxheUxpc3RJbWFn
ZUJ1ZmZlckJhY2tlbmQ+IGNyZWF0ZShjb25zdCBQYXJhbWV0ZXJzJiwgY29uc3QgV2ViQ29yZTo6
SG9zdFdpbmRvdyopOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q0dEaXNwbGF5TGlzdElt
YWdlQnVmZmVyQmFja2VuZD4gY3JlYXRlKGNvbnN0IFBhcmFtZXRlcnMmLCBjb25zdCBXZWJDb3Jl
OjpJbWFnZUJ1ZmZlcjo6Q3JlYXRpb25Db250ZXh0Jik7CiAKICAgICBXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQmIGNvbnRleHQoKSBjb25zdCBmaW5hbDsKICAgICBXZWJDb3JlOjpJbnRTaXplIGJh
Y2tlbmRTaXplKCkgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0gYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0KaW5k
ZXggN2RmNTQ3MjRiOTc5YzRkZTBiOGJiOTZlZmQxN2ExYTVkMmU1NmY1Zi4uZDk5OTEwY2I5NGRj
YTljYTQ5MzlhMDM4MzRhZmZlYmIwNGUxZjk0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9y
ZS5tbQpAQCAtMzY1LDcgKzM2NSw3IEBAIHZvaWQgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmVu
c3VyZUZyb250QnVmZmVyKCkKIAogI2lmIEVOQUJMRShDR19ESVNQTEFZX0xJU1RfQkFDS0VEX0lN
QUdFX0JVRkZFUikKICAgICBpZiAobV9pbmNsdWRlRGlzcGxheUxpc3QgPT0gSW5jbHVkZURpc3Bs
YXlMaXN0OjpZZXMpCi0gICAgICAgIG1fZnJvbnRCdWZmZXIuZGlzcGxheUxpc3RJbWFnZUJ1ZmZl
ciA9IFdlYkNvcmU6OkNvbmNyZXRlSW1hZ2VCdWZmZXI8Q0dEaXNwbGF5TGlzdEltYWdlQnVmZmVy
QmFja2VuZD46OmNyZWF0ZShtX3NpemUsIG1fc2NhbGUsIFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29s
b3JTcGFjZTo6U1JHQigpLCBwaXhlbEZvcm1hdCgpLCBudWxscHRyKTsKKyAgICAgICAgbV9mcm9u
dEJ1ZmZlci5kaXNwbGF5TGlzdEltYWdlQnVmZmVyID0gV2ViQ29yZTo6Q29uY3JldGVJbWFnZUJ1
ZmZlcjxDR0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXJCYWNrZW5kPjo6Y3JlYXRlKG1fc2l6ZSwgbV9z
Y2FsZSwgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCKCksIHBpeGVsRm9ybWF0
KCkpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb24ubW0gYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVDb2xs
ZWN0aW9uLm1tCmluZGV4IGNmNzMwM2E0NmUxMTE1OWMwMDJlMDU5YzczNzBlYTFkZDg0MGRlMDku
LmIyMDNlMjc4N2Q1ZTZmYmViZTkyNWI4YTY1ZjNhMjA2MGUzMDY3MDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9y
ZUNvbGxlY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVjdGlvbi5tbQpAQCAtMzMsNiArMzMsNyBAQAog
I2ltcG9ydCAiUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oIgogI2ltcG9ydCAiU3dhcEJ1ZmZlcnNE
aXNwbGF5UmVxdWlyZW1lbnQuaCIKICNpbXBvcnQgPFdlYkNvcmUvQ29uY3JldGVJbWFnZUJ1ZmZl
ci5oPgorI2ltcG9ydCA8V2ViQ29yZS9JT1N1cmZhY2VQb29sLmg+CiAjaW1wb3J0IDx3dGYvdGV4
dC9UZXh0U3RyZWFtLmg+CiAKIGNvbnN0IFNlY29uZHMgdm9sYXRpbGl0eVRpbWVySW50ZXJ2YWwg
PSAyMDBfbXM7CkBAIC0yNjMsOSArMjY0LDkgQEAgUmVmUHRyPFdlYkNvcmU6OkltYWdlQnVmZmVy
PiBSZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb246OmFsbG9jYXRlQnVmZmVyRm8KIHsK
ICAgICBzd2l0Y2ggKGJhY2tpbmdTdG9yZS50eXBlKCkpIHsKICAgICBjYXNlIFJlbW90ZUxheWVy
QmFja2luZ1N0b3JlOjpUeXBlOjpJT1N1cmZhY2U6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpD
b25jcmV0ZUltYWdlQnVmZmVyPEFjY2VsZXJhdGVkSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRC
YWNrZW5kPjo6Y3JlYXRlKGJhY2tpbmdTdG9yZS5zaXplKCksIGJhY2tpbmdTdG9yZS5zY2FsZSgp
LCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IoKSwgYmFja2luZ1N0b3JlLnBp
eGVsRm9ybWF0KCksIG51bGxwdHIpOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6Q29uY3JldGVJ
bWFnZUJ1ZmZlcjxBY2NlbGVyYXRlZEltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkQmFja2VuZD46
OmNyZWF0ZShiYWNraW5nU3RvcmUuc2l6ZSgpLCBiYWNraW5nU3RvcmUuc2NhbGUoKSwgV2ViQ29y
ZTo6RGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCKCksIGJhY2tpbmdTdG9yZS5waXhlbEZvcm1h
dCgpLCB7IG51bGxwdHIsICZXZWJDb3JlOjpJT1N1cmZhY2VQb29sOjpzaGFyZWRQb29sKCkgfSk7
CiAgICAgY2FzZSBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6VHlwZTo6Qml0bWFwOgotICAgICAg
ICByZXR1cm4gV2ViQ29yZTo6Q29uY3JldGVJbWFnZUJ1ZmZlcjxVbmFjY2VsZXJhdGVkSW1hZ2VC
dWZmZXJTaGFyZWFibGVCYWNrZW5kPjo6Y3JlYXRlKGJhY2tpbmdTdG9yZS5zaXplKCksIGJhY2tp
bmdTdG9yZS5zY2FsZSgpLCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IoKSwg
YmFja2luZ1N0b3JlLnBpeGVsRm9ybWF0KCksIG51bGxwdHIpOworICAgICAgICByZXR1cm4gV2Vi
Q29yZTo6Q29uY3JldGVJbWFnZUJ1ZmZlcjxVbmFjY2VsZXJhdGVkSW1hZ2VCdWZmZXJTaGFyZWFi
bGVCYWNrZW5kPjo6Y3JlYXRlKGJhY2tpbmdTdG9yZS5zaXplKCksIGJhY2tpbmdTdG9yZS5zY2Fs
ZSgpLCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IoKSwgYmFja2luZ1N0b3Jl
LnBpeGVsRm9ybWF0KCksIHsgfSk7CiAgICAgfQogICAgIHJldHVybiBudWxscHRyOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZl
clNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuY3BwCmluZGV4IGUx
ZWY0NzcxNDk2MWM5MzA5ODExZmQzY2U0ZDkwMWEyNGZjYTk5ZGQuLmExMTcwNzI0OTBlNWM3YTc5
NTRmYmJlNzhmNzBmNzkzNmVkYzJlZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hh
cmVhYmxlQml0bWFwQmFja2VuZC5jcHAKQEAgLTc3LDcgKzc3LDcgQEAgc2l6ZV90IEltYWdlQnVm
ZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZDo6Y2FsY3VsYXRlTWVtb3J5Q29zdChjb25zdCBQYXJh
bWV0ZXJzJgogICAgIHJldHVybiBJbWFnZUJ1ZmZlckJhY2tlbmQ6OmNhbGN1bGF0ZU1lbW9yeUNv
c3QoYmFja2VuZFNpemUsIGNhbGN1bGF0ZUJ5dGVzUGVyUm93KHBhcmFtZXRlcnMsIGJhY2tlbmRT
aXplKSk7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJh
Y2tlbmQ+IEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZDo6Y3JlYXRlKGNvbnN0IFBh
cmFtZXRlcnMmIHBhcmFtZXRlcnMsIGNvbnN0IEhvc3RXaW5kb3cqKQorc3RkOjp1bmlxdWVfcHRy
PEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZD4gSW1hZ2VCdWZmZXJTaGFyZWFibGVC
aXRtYXBCYWNrZW5kOjpjcmVhdGUoY29uc3QgUGFyYW1ldGVycyYgcGFyYW1ldGVycywgY29uc3Qg
V2ViQ29yZTo6SW1hZ2VCdWZmZXI6OkNyZWF0aW9uQ29udGV4dCYpCiB7CiAgICAgQVNTRVJUKHBh
cmFtZXRlcnMucGl4ZWxGb3JtYXQgPT0gUGl4ZWxGb3JtYXQ6OkJHUkE4KTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJl
YWJsZUJpdG1hcEJhY2tlbmQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmgKaW5kZXggYzVlMThmZWM4ZWZi
ZDIyM2M2OGJlMDg3ZTI5NmViNjhhOGExZDQzYy4uZGUxNTJkMjhjOTQzNzVjNzY0NDI5MmVhM2U2
NGI5OWEzZjI2NjEyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFw
QmFja2VuZC5oCkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdW5zaWduZWQg
Y2FsY3VsYXRlQnl0ZXNQZXJSb3coY29uc3QgUGFyYW1ldGVycyYsIGNvbnN0IFdlYkNvcmU6Oklu
dFNpemUmIGJhY2tlbmRTaXplKTsKICAgICBzdGF0aWMgc2l6ZV90IGNhbGN1bGF0ZU1lbW9yeUNv
c3QoY29uc3QgUGFyYW1ldGVycyYpOwogCi0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFn
ZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQ+IGNyZWF0ZShjb25zdCBQYXJhbWV0ZXJzJiwg
Y29uc3QgV2ViQ29yZTo6SG9zdFdpbmRvdyopOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8
SW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kPiBjcmVhdGUoY29uc3QgUGFyYW1ldGVy
cyYsIGNvbnN0IFdlYkNvcmU6OkltYWdlQnVmZmVyOjpDcmVhdGlvbkNvbnRleHQmKTsKICAgICBz
dGF0aWMgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZD4g
Y3JlYXRlKGNvbnN0IFBhcmFtZXRlcnMmLCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUpOwogCiAg
ICAgSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kKGNvbnN0IFBhcmFtZXRlcnMmLCBS
ZWZQdHI8U2hhcmVhYmxlQml0bWFwPiYmLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0PiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5k
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VC
dWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmNwcAppbmRleCAxOTE3NjBhODdl
M2YzMTQ1Y2MzMDE3OTFjMTVmMzliNDYyMWE5ZjVhLi40MzI5YTFjOTE3MTM0OTQ3MTljMmJhYTZi
ZTE2NGUwNTdmNmI4MTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2Vu
ZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9J
bWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwCkBAIC00MCwxMyAr
NDAsMTMgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FU
RURfSU1QTChJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQpOwogCi1z
dGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5k
PiBJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZShjb25z
dCBQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBjb25zdCBIb3N0V2luZG93KikKK3N0ZDo6dW5pcXVl
X3B0cjxJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQ+IEltYWdlQnVm
ZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlKGNvbnN0IFBhcmFtZXRl
cnMmIHBhcmFtZXRlcnMsIGNvbnN0IEltYWdlQnVmZmVyOjpDcmVhdGlvbkNvbnRleHQmIGNyZWF0
aW9uQ29udGV4dCkKIHsKICAgICBJbnRTaXplIGJhY2tlbmRTaXplID0gY2FsY3VsYXRlU2FmZUJh
Y2tlbmRTaXplKHBhcmFtZXRlcnMpOwogICAgIGlmIChiYWNrZW5kU2l6ZS5pc0VtcHR5KCkpCiAg
ICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgYXV0byBzdXJmYWNlID0gSU9TdXJmYWNlOjpj
cmVhdGUoJklPU3VyZmFjZVBvb2w6OnNoYXJlZFBvb2woKSwgYmFja2VuZFNpemUsIGJhY2tlbmRT
aXplLCBwYXJhbWV0ZXJzLmNvbG9yU3BhY2UsIElPU3VyZmFjZTo6Zm9ybWF0Rm9yUGl4ZWxGb3Jt
YXQocGFyYW1ldGVycy5waXhlbEZvcm1hdCkpOworICAgIGF1dG8gc3VyZmFjZSA9IElPU3VyZmFj
ZTo6Y3JlYXRlKGNyZWF0aW9uQ29udGV4dC5zdXJmYWNlUG9vbCwgYmFja2VuZFNpemUsIGJhY2tl
bmRTaXplLCBwYXJhbWV0ZXJzLmNvbG9yU3BhY2UsIElPU3VyZmFjZTo6Zm9ybWF0Rm9yUGl4ZWxG
b3JtYXQocGFyYW1ldGVycy5waXhlbEZvcm1hdCkpOwogICAgIGlmICghc3VyZmFjZSkKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VC
YWNrZW5kLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0lt
YWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5oCmluZGV4IGQ4YjQ5Zjcx
NGE1NWJhZjkxZGViZDBjN2EyNDdjMzJkYTY1NmFiODcuLmJkYmNkOThmMzdlYTk0OThkMDc0YWY4
NjcwODc0YjgxODFjMjQ4ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNr
ZW5kLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9J
bWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuaApAQCAtNDMsNyArNDMs
NyBAQCBjbGFzcyBJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQgZmlu
YWwgOiBwdWJsaWMgV2ViQ29yZTo6SW1hZ2VCdQogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQo
SW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kKTsKICAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQp
OwogcHVibGljOgotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJTaGFyZWFi
bGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kPiBjcmVhdGUoY29uc3QgUGFyYW1ldGVycyYsIGNvbnN0
IFdlYkNvcmU6Okhvc3RXaW5kb3cqKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEltYWdl
QnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZD4gY3JlYXRlKGNvbnN0IFBhcmFt
ZXRlcnMmLCBjb25zdCBXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6Q3JlYXRpb25Db250ZXh0Jik7CiAg
ICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3Vy
ZmFjZUJhY2tlbmQ+IGNyZWF0ZShjb25zdCBQYXJhbWV0ZXJzJiwgSW1hZ2VCdWZmZXJCYWNrZW5k
SGFuZGxlKTsKIAogICAgIHVzaW5nIFdlYkNvcmU6OkltYWdlQnVmZmVySU9TdXJmYWNlQmFja2Vu
ZDo6SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456450</attachid>
            <date>2022-04-01 23:12:24 -0700</date>
            <delta_ts>2022-04-02 22:25:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238695-20220401231223.patch</filename>
            <type>text/plain</type>
            <size>32612</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyMTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTNmOWFjNGRjYzA1NjVj
NmQ3YTI1NTlhYzQ2YWQ3ZGZlYmE5ZWVhYy4uYWQyMjZhYzdiZTJhZmE4NzU2ZDA3YTlhZmQ3MTVj
MTEyYWMwYmY5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIyLTA0LTAxICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFBsdW1iIHRoZSBJ
T1N1cmZhY2VQb29sIHRocm91Z2ggdG8gSW1hZ2VCdWZmZXJCYWNrZW5kIGNyZWF0aW9uIHZpYSBJ
bWFnZUJ1ZmZlcjo6Q3JlYXRpb25Db250ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg2OTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXcmFwIHRoZSBleGlzdGluZyBIb3N0V2luZG93KiBhbmQgYSBu
ZXcgSU9TdXJmYWNlUG9vbCogcG9pbnRlcnMgaW50byBhIEltYWdlQnVmZmVyOjpDcmVhdGlvbkNv
bnRleHQKKyAgICAgICAgc3RydWN0LCBhbmQgcmVwbGFjZSB0aGUgSG9zdFdpbmRvdyogYXJndW1l
bnQgd2l0aCBpdCBpbiBidWZmZXIgY3JlYXRpb24gZnVuY3Rpb25zLgorCisgICAgICAgIFJlbW90
ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVjdGlvbjo6YWxsb2NhdGVCdWZmZXJGb3JCYWNraW5nU3Rv
cmUoKSBwYXNzZXMgdGhlIHNpbmdsZXRvbiBJT1N1cmZhY2VQb29sCisgICAgICAgIHdoaWNoIGlz
IHRodXMgdXNlZCBpbiB0aGUgbm9uLUdQVSBQcm9jZXNzIGNvZGUgcGF0aCAoRE9NIHJlbmRlcmlu
ZyBkaXNhYmxlZCkuCisKKyAgICAgICAgKiBjc3MvQ1NTRmlsdGVySW1hZ2VWYWx1ZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NGaWx0ZXJJbWFnZVZhbHVlOjppbWFnZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oOgorICAgICAgICAoV2ViQ29y
ZTo6Q29uY3JldGVJbWFnZUJ1ZmZlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZUJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6Y3Jl
YXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oOgorICAgICAg
ICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OkNyZWF0aW9uQ29udGV4dDo6Q3JlYXRpb25Db250ZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpjcmVhdGUpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL1BsYXRmb3JtSW1hZ2VCdWZmZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvSW1hZ2VTdXJmYWNlQmFja2VuZC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlckNhaXJvSW1hZ2VTdXJmYWNlQmFja2VuZDo6Y3JlYXRl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvSW1h
Z2VTdXJmYWNlQmFja2VuZC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0lPU3Vy
ZmFjZVBvb2wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SU9TdXJmYWNlUG9vbDo6cG9vbFN0YXRp
c3RpY3MgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVy
Q0dCaXRtYXBCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyQ0dCaXRt
YXBCYWNrZW5kOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdl
QnVmZmVyQ0dCaXRtYXBCYWNrZW5kLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdl
QnVmZmVySU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oOgorCiAyMDIy
LTA0LTAxICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAg
IEhvaXN0IHRoZSBJT1N1cmZhY2VQb29sIG91dCBvZiBJT1N1cmZhY2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMDVh
MmYxM2VjMTFkNDUyMDRkMTYxODMzNzEzOTE1OWQyY2IwYWUzOS4uNjY2MGIwZTg5NGI3NTU1NWQy
ZTg2YTE1MTBlYzkwN2UyZTNiNzI2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAyMi0w
NC0wMSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBQ
bHVtYiB0aGUgSU9TdXJmYWNlUG9vbCB0aHJvdWdoIHRvIEltYWdlQnVmZmVyQmFja2VuZCBjcmVh
dGlvbiB2aWEgSW1hZ2VCdWZmZXI6OkNyZWF0aW9uQ29udGV4dAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4Njk1CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV3JhcCB0aGUgZXhpc3RpbmcgSG9zdFdpbmRv
dyogYW5kIGEgbmV3IElPU3VyZmFjZVBvb2wqIHBvaW50ZXJzIGludG8gYSBJbWFnZUJ1ZmZlcjo6
Q3JlYXRpb25Db250ZXh0CisgICAgICAgIHN0cnVjdCwgYW5kIHJlcGxhY2UgdGhlIEhvc3RXaW5k
b3cqIGFyZ3VtZW50IHdpdGggaXQgaW4gYnVmZmVyIGNyZWF0aW9uIGZ1bmN0aW9ucy4KKworICAg
ICAgICBSZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb246OmFsbG9jYXRlQnVmZmVyRm9y
QmFja2luZ1N0b3JlKCkgcGFzc2VzIHRoZSBzaW5nbGV0b24gSU9TdXJmYWNlUG9vbAorICAgICAg
ICB3aGljaCBpcyB0aHVzIHVzZWQgaW4gdGhlIG5vbi1HUFUgUHJvY2VzcyBjb2RlIHBhdGggKERP
TSByZW5kZXJpbmcgZGlzYWJsZWQpLgorCisgICAgICAgICogU2hhcmVkL1JlbW90ZUxheWVyVHJl
ZS9DR0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXJCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
Q0dEaXNwbGF5TGlzdEltYWdlQnVmZmVyQmFja2VuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBTaGFy
ZWQvUmVtb3RlTGF5ZXJUcmVlL0NHRGlzcGxheUxpc3RJbWFnZUJ1ZmZlckJhY2tlbmQuaDoKKyAg
ICAgICAgKiBTaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1t
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6ZW5zdXJlRnJvbnRC
dWZmZXIpOgorICAgICAgICAqIFNoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNr
aW5nU3RvcmVDb2xsZWN0aW9uLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllckJhY2tp
bmdTdG9yZUNvbGxlY3Rpb246OmFsbG9jYXRlQnVmZmVyRm9yQmFja2luZ1N0b3JlKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJh
Y2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJh
Y2tlbmQ6OmNyZWF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VC
dWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5k
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZh
Y2VCYWNrZW5kOjpjcmVhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2Nv
Y29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5oOgorCiAyMDIy
LTA0LTAxICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAg
IEhvaXN0IHRoZSBJT1N1cmZhY2VQb29sIG91dCBvZiBJT1N1cmZhY2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NGaWx0ZXJJbWFnZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NGaWx0ZXJJbWFnZVZhbHVlLmNwcAppbmRleCA2MzhmMjExZmU4ZTA5NGRkYjE0MjMw
YzFhYTMxN2UyMTgxNDI2OTdiLi41ZDdhNTUxZWViM2VmZjQwMzY2NzY3NDA1N2M4OGU1MTVhMTFm
OTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRmlsdGVySW1hZ2VWYWx1ZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZpbHRlckltYWdlVmFsdWUuY3BwCkBAIC0x
MTYsNyArMTE2LDcgQEAgUmVmUHRyPEltYWdlPiBDU1NGaWx0ZXJJbWFnZVZhbHVlOjppbWFnZShS
ZW5kZXJFbGVtZW50JiByZW5kZXJlciwgY29uc3QgRmxvYXRTaXoKIAogICAgIC8vIFRyYW5zZm9y
bSBJbWFnZSBpbnRvIEltYWdlQnVmZmVyLgogICAgIGF1dG8gcmVuZGVyaW5nTW9kZSA9IHJlbmRl
cmVyLnBhZ2UoKS5hY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkKCkgPyBSZW5kZXJpbmdNb2RlOjpB
Y2NlbGVyYXRlZCA6IFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQ7Ci0gICAgYXV0byBzb3Vy
Y2VJbWFnZSA9IEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSwgcmVuZGVyaW5nTW9kZSwgU2hvdWxk
VXNlRGlzcGxheUxpc3Q6Ok5vLCBSZW5kZXJpbmdQdXJwb3NlOjpET00sIDEsIERlc3RpbmF0aW9u
Q29sb3JTcGFjZTo6U1JHQigpLCBQaXhlbEZvcm1hdDo6QkdSQTgsIHJlbmRlcmVyLmhvc3RXaW5k
b3coKSk7CisgICAgYXV0byBzb3VyY2VJbWFnZSA9IEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSwg
cmVuZGVyaW5nTW9kZSwgU2hvdWxkVXNlRGlzcGxheUxpc3Q6Ok5vLCBSZW5kZXJpbmdQdXJwb3Nl
OjpET00sIDEsIERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JHQigpLCBQaXhlbEZvcm1hdDo6QkdS
QTgsIHsgcmVuZGVyZXIuaG9zdFdpbmRvdygpIH0pOwogICAgIGlmICghc291cmNlSW1hZ2UpCiAg
ICAgICAgIHJldHVybiAmSW1hZ2U6Om51bGxJbWFnZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUltYWdlQnVmZmVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUltYWdlQnVmZmVyLmgKaW5kZXggOTdk
Y2Q0YjJkZTJlNWE3ZWViNmI5YjMwYzY5NzdjYWRkMGE3ZTI5MS4uNDdlMGVkMmEzNTY4OTRiOWU5
YWMxYzkyMWE2NmUwYjc2N2RiY2Q1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaApAQCAtMzcsMTAgKzM3LDEwIEBA
IHRlbXBsYXRlPHR5cGVuYW1lIEJhY2tlbmRUeXBlPgogY2xhc3MgQ29uY3JldGVJbWFnZUJ1ZmZl
ciA6IHB1YmxpYyBJbWFnZUJ1ZmZlciB7CiBwdWJsaWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUg
SW1hZ2VCdWZmZXJUeXBlID0gQ29uY3JldGVJbWFnZUJ1ZmZlciwgdHlwZW5hbWUuLi4gQXJndW1l
bnRzPgotICAgIHN0YXRpYyBSZWZQdHI8SW1hZ2VCdWZmZXJUeXBlPiBjcmVhdGUoY29uc3QgRmxv
YXRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIGNvbnN0IERlc3RpbmF0aW9uQ29s
b3JTcGFjZSYgY29sb3JTcGFjZSwgUGl4ZWxGb3JtYXQgcGl4ZWxGb3JtYXQsIGNvbnN0IEhvc3RX
aW5kb3cqIGhvc3RXaW5kb3csIEFyZ3VtZW50cyYmLi4uIGFyZ3VtZW50cykKKyAgICBzdGF0aWMg
UmVmUHRyPEltYWdlQnVmZmVyVHlwZT4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgZmxv
YXQgcmVzb2x1dGlvblNjYWxlLCBjb25zdCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UmIGNvbG9yU3Bh
Y2UsIFBpeGVsRm9ybWF0IHBpeGVsRm9ybWF0LCBjb25zdCBDcmVhdGlvbkNvbnRleHQmIGNyZWF0
aW9uQ29udGV4dCwgQXJndW1lbnRzJiYuLi4gYXJndW1lbnRzKQogICAgIHsKICAgICAgICAgYXV0
byBwYXJhbWV0ZXJzID0gSW1hZ2VCdWZmZXJCYWNrZW5kOjpQYXJhbWV0ZXJzIHsgc2l6ZSwgcmVz
b2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCB9OwotICAgICAgICBhdXRvIGJh
Y2tlbmQgPSBCYWNrZW5kVHlwZTo6Y3JlYXRlKHBhcmFtZXRlcnMsIGhvc3RXaW5kb3cpOworICAg
ICAgICBhdXRvIGJhY2tlbmQgPSBCYWNrZW5kVHlwZTo6Y3JlYXRlKHBhcmFtZXRlcnMsIGNyZWF0
aW9uQ29udGV4dCk7CiAgICAgICAgIGlmICghYmFja2VuZCkKICAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEltYWdlQnVmZmVyVHlwZShwYXJh
bWV0ZXJzLCBXVEZNb3ZlKGJhY2tlbmQpLCBzdGQ6OmZvcndhcmQ8QXJndW1lbnRzPihhcmd1bWVu
dHMpLi4uKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1
ZmZlci5jcHAKaW5kZXggZjkwZDhjOTVkMThiNDQyYmE1MjI0ODViNDJjY2RiNzk0NmVmNDhlZi4u
YjhhOTVmNTQxYzVmZjU5ZTFkNDIxZGVjNzAxMzdkY2JmNjlhMzIwZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmNwcApAQCAtMzcsMzcgKzM3
LDM3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0YXRpYyBjb25zdCBmbG9hdCBNYXhDbGFtcGVk
TGVuZ3RoID0gNDA5NjsKIHN0YXRpYyBjb25zdCBmbG9hdCBNYXhDbGFtcGVkQXJlYSA9IE1heENs
YW1wZWRMZW5ndGggKiBNYXhDbGFtcGVkTGVuZ3RoOwogCi1SZWZQdHI8SW1hZ2VCdWZmZXI+IElt
YWdlQnVmZmVyOjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBSZW5kZXJpbmdNb2RlIHJl
bmRlcmluZ01vZGUsIFNob3VsZFVzZURpc3BsYXlMaXN0IHNob3VsZFVzZURpc3BsYXlMaXN0LCBS
ZW5kZXJpbmdQdXJwb3NlIHB1cnBvc2UsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgY29uc3QgRGVz
dGluYXRpb25Db2xvclNwYWNlJiBjb2xvclNwYWNlLCBQaXhlbEZvcm1hdCBwaXhlbEZvcm1hdCwg
Y29uc3QgSG9zdFdpbmRvdyogaG9zdFdpbmRvdykKK1JlZlB0cjxJbWFnZUJ1ZmZlcj4gSW1hZ2VC
dWZmZXI6OmNyZWF0ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIFJlbmRlcmluZ01vZGUgcmVuZGVy
aW5nTW9kZSwgU2hvdWxkVXNlRGlzcGxheUxpc3Qgc2hvdWxkVXNlRGlzcGxheUxpc3QsIFJlbmRl
cmluZ1B1cnBvc2UgcHVycG9zZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBjb25zdCBEZXN0aW5h
dGlvbkNvbG9yU3BhY2UmIGNvbG9yU3BhY2UsIFBpeGVsRm9ybWF0IHBpeGVsRm9ybWF0LCBjb25z
dCBDcmVhdGlvbkNvbnRleHQmIGNyZWF0aW9uQ29udGV4dCkKIHsKICAgICBSZWZQdHI8SW1hZ2VC
dWZmZXI+IGltYWdlQnVmZmVyOwogICAgIAogICAgIC8vIEdpdmUgU2hvdWxkVXNlRGlzcGxheUxp
c3QgYSBoaWdoZXIgcHJlY2VkZW5jZSBzaW5jZSBpdCBpcyBhIGRlYnVnIG9wdGlvbi4KICAgICBp
ZiAoc2hvdWxkVXNlRGlzcGxheUxpc3QgPT0gU2hvdWxkVXNlRGlzcGxheUxpc3Q6Olllcykgewog
ICAgICAgICBpZiAocmVuZGVyaW5nTW9kZSA9PSBSZW5kZXJpbmdNb2RlOjpBY2NlbGVyYXRlZCkK
LSAgICAgICAgICAgIGltYWdlQnVmZmVyID0gRGlzcGxheUxpc3RBY2NlbGVyYXRlZEltYWdlQnVm
ZmVyOjpjcmVhdGUoc2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1h
dCwgaG9zdFdpbmRvdyk7CisgICAgICAgICAgICBpbWFnZUJ1ZmZlciA9IERpc3BsYXlMaXN0QWNj
ZWxlcmF0ZWRJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JT
cGFjZSwgcGl4ZWxGb3JtYXQsIGNyZWF0aW9uQ29udGV4dCk7CiAgICAgICAgIAogICAgICAgICBp
ZiAoIWltYWdlQnVmZmVyKQotICAgICAgICAgICAgaW1hZ2VCdWZmZXIgPSBEaXNwbGF5TGlzdFVu
YWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUsIHJlc29sdXRpb25TY2FsZSwgY29s
b3JTcGFjZSwgcGl4ZWxGb3JtYXQsIGhvc3RXaW5kb3cpOworICAgICAgICAgICAgaW1hZ2VCdWZm
ZXIgPSBEaXNwbGF5TGlzdFVuYWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUsIHJl
c29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQsIGNyZWF0aW9uQ29udGV4dCk7
CiAgICAgfQogICAgIAotICAgIGlmIChob3N0V2luZG93ICYmICFpbWFnZUJ1ZmZlcikKLSAgICAg
ICAgaW1hZ2VCdWZmZXIgPSBob3N0V2luZG93LT5jcmVhdGVJbWFnZUJ1ZmZlcihzaXplLCByZW5k
ZXJpbmdNb2RlLCBwdXJwb3NlLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9y
bWF0KTsKKyAgICBpZiAoY3JlYXRpb25Db250ZXh0Lmhvc3RXaW5kb3cgJiYgIWltYWdlQnVmZmVy
KQorICAgICAgICBpbWFnZUJ1ZmZlciA9IGNyZWF0aW9uQ29udGV4dC5ob3N0V2luZG93LT5jcmVh
dGVJbWFnZUJ1ZmZlcihzaXplLCByZW5kZXJpbmdNb2RlLCBwdXJwb3NlLCByZXNvbHV0aW9uU2Nh
bGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0KTsKIAogICAgIGlmICghaW1hZ2VCdWZmZXIpCi0g
ICAgICAgIGltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplLCByZW5kZXJpbmdN
b2RlLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0LCBob3N0V2luZG93
KTsKKyAgICAgICAgaW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUsIHJlbmRl
cmluZ01vZGUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQsIGNyZWF0
aW9uQ29udGV4dCk7CiAKICAgICByZXR1cm4gaW1hZ2VCdWZmZXI7CiB9CiAKLVJlZlB0cjxJbWFn
ZUJ1ZmZlcj4gSW1hZ2VCdWZmZXI6OmNyZWF0ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIFJlbmRl
cmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBjb25zdCBEZXN0
aW5hdGlvbkNvbG9yU3BhY2UmIGNvbG9yU3BhY2UsIFBpeGVsRm9ybWF0IHBpeGVsRm9ybWF0LCBj
b25zdCBIb3N0V2luZG93KiBob3N0V2luZG93KQorUmVmUHRyPEltYWdlQnVmZmVyPiBJbWFnZUJ1
ZmZlcjo6Y3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJp
bmdNb2RlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFj
ZSYgY29sb3JTcGFjZSwgUGl4ZWxGb3JtYXQgcGl4ZWxGb3JtYXQsIGNvbnN0IENyZWF0aW9uQ29u
dGV4dCYgY3JlYXRpb25Db250ZXh0KQogewogICAgIFJlZlB0cjxJbWFnZUJ1ZmZlcj4gaW1hZ2VC
dWZmZXI7CiAgICAgCiAgICAgaWYgKHJlbmRlcmluZ01vZGUgPT0gUmVuZGVyaW5nTW9kZTo6QWNj
ZWxlcmF0ZWQpCi0gICAgICAgIGltYWdlQnVmZmVyID0gQWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlcjo6
Y3JlYXRlKHNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQsIGhv
c3RXaW5kb3cpOworICAgICAgICBpbWFnZUJ1ZmZlciA9IEFjY2VsZXJhdGVkSW1hZ2VCdWZmZXI6
OmNyZWF0ZShzaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0LCBj
cmVhdGlvbkNvbnRleHQpOwogICAgIAogICAgIGlmICghaW1hZ2VCdWZmZXIpCi0gICAgICAgIGlt
YWdlQnVmZmVyID0gVW5hY2NlbGVyYXRlZEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSwgcmVzb2x1
dGlvblNjYWxlLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCwgaG9zdFdpbmRvdyk7CisgICAgICAg
IGltYWdlQnVmZmVyID0gVW5hY2NlbGVyYXRlZEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSwgcmVz
b2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCwgY3JlYXRpb25Db250ZXh0KTsK
IAogICAgIHJldHVybiBpbWFnZUJ1ZmZlcjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCmluZGV4IGQwNDUxNzVmNGQwNWQxYTViNDhmNzQ4Njcw
NGVlYTI5ZGRlYzA3MTYuLmQ3YmU4NWNhZTFmMmM5ODRiODM3MWQzZmJkNmY1M2VlYTc5ZDEyMDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaApA
QCAtMzcsMTIgKzM3LDI0IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZpbHRlcjsK
K2NsYXNzIEhvc3RXaW5kb3c7CitjbGFzcyBJT1N1cmZhY2VQb29sOwogCiBjbGFzcyBJbWFnZUJ1
ZmZlciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxJbWFnZUJ1ZmZlciwgV1RGOjpEZXN0
cnVjdGlvblRocmVhZDo6TWFpbj4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxJbWFnZUJ1ZmZlcj4g
ewogcHVibGljOgorICAgIHN0cnVjdCBDcmVhdGlvbkNvbnRleHQgeworICAgICAgICAvLyBjbGFu
ZyAxMy4xLjYgdGhyb3dzIGVycm9ycyBpZiB3ZSB1c2UgZGVmYXVsdCBpbml0aWFsaXplcnMgaGVy
ZS4KKyAgICAgICAgSG9zdFdpbmRvdyogaG9zdFdpbmRvdzsKKyAgICAgICAgSU9TdXJmYWNlUG9v
bCogc3VyZmFjZVBvb2w7CisgICAgICAgIENyZWF0aW9uQ29udGV4dChIb3N0V2luZG93KiB3aW5k
b3cgPSBudWxscHRyLCBJT1N1cmZhY2VQb29sKiBwb29sID0gbnVsbHB0cikKKyAgICAgICAgICAg
IDogaG9zdFdpbmRvdyh3aW5kb3cpCisgICAgICAgICAgICAsIHN1cmZhY2VQb29sKHBvb2wpCisg
ICAgICAgIHsgfQorICAgIH07CisKICAgICAvLyBXaWxsIHJldHVybiBhIG51bGwgcG9pbnRlciBv
biBhbGxvY2F0aW9uIGZhaWx1cmUuCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZlB0cjxJ
bWFnZUJ1ZmZlcj4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYsIFJlbmRlcmluZ01vZGUsIFNob3Vs
ZFVzZURpc3BsYXlMaXN0LCBSZW5kZXJpbmdQdXJwb3NlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUs
IGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYsIFBpeGVsRm9ybWF0LCBjb25zdCBIb3N0V2lu
ZG93KiA9IG51bGxwdHIpOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWZQdHI8SW1hZ2VC
dWZmZXI+IGNyZWF0ZShjb25zdCBGbG9hdFNpemUmLCBSZW5kZXJpbmdNb2RlLCBmbG9hdCByZXNv
bHV0aW9uU2NhbGUsIGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYsIFBpeGVsRm9ybWF0LCBj
b25zdCBIb3N0V2luZG93KiA9IG51bGxwdHIpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBS
ZWZQdHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZShjb25zdCBGbG9hdFNpemUmLCBSZW5kZXJpbmdNb2Rl
LCBTaG91bGRVc2VEaXNwbGF5TGlzdCwgUmVuZGVyaW5nUHVycG9zZSwgZmxvYXQgcmVzb2x1dGlv
blNjYWxlLCBjb25zdCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UmLCBQaXhlbEZvcm1hdCwgY29uc3Qg
Q3JlYXRpb25Db250ZXh0JiA9IHsgfSk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZlB0
cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYsIFJlbmRlcmluZ01vZGUsIGZs
b2F0IHJlc29sdXRpb25TY2FsZSwgY29uc3QgRGVzdGluYXRpb25Db2xvclNwYWNlJiwgUGl4ZWxG
b3JtYXQsIGNvbnN0IENyZWF0aW9uQ29udGV4dCYgPSB7IH0pOwogCiAgICAgUmVmUHRyPEltYWdl
QnVmZmVyPiBjbG9uZSgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5oCmluZGV4IGY2ZjRlNmZlZTgyMGI1YWUz
YTIyMzlmYjgxZTM5MTRkZjgwNWYwNmMuLmEyZTcwMWY1Mjc0MDZmZWU1OGRkNjA0NTgyMmIwNjAy
NTRlYzlkMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlQnVmZmVyQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlQnVmZmVyQmFja2VuZC5oCkBAIC00MCw3ICs0MCw2IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgR3JhcGhpY3NDb250ZXh0OwogY2xhc3MgR3JhcGhpY3NDb250ZXh0R0w7Ci1j
bGFzcyBIb3N0V2luZG93OwogY2xhc3MgSW1hZ2U7CiBjbGFzcyBOYXRpdmVJbWFnZTsKIGNsYXNz
IFBpeGVsQnVmZmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvUGxhdGZvcm1JbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvUGxhdGZvcm1JbWFnZUJ1ZmZlci5oCmluZGV4IGRiMTJkMjcwNzYyYmUwYzExZDRkMmUzOTE1
NWUyNGFiZmEzNDliNmMuLjhkMjE1NmU5ZmJmZGNiNWFlY2Y0NDg5YzAzMWUyMjU1MWU4YWM4NjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtSW1h
Z2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9y
bUltYWdlQnVmZmVyLmgKQEAgLTYwLDkgKzYwLDkgQEAgdXNpbmcgRGlzcGxheUxpc3RBY2NlbGVy
YXRlZEltYWdlQnVmZmVyID0gRGlzcGxheUxpc3Q6OkltYWdlQnVmZmVyPEFjY2VsZXJhdGVkSW0K
IGNsYXNzIElPU3VyZmFjZUltYWdlQnVmZmVyIGZpbmFsIDogcHVibGljIENvbmNyZXRlSW1hZ2VC
dWZmZXI8SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kPiB7CiAgICAgdXNpbmcgQmFzZSA9IENv
bmNyZXRlSW1hZ2VCdWZmZXI8SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kPjsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgYXV0byBjcmVhdGUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBzaXplLCBm
bG9hdCByZXNvbHV0aW9uU2NhbGUsIGNvbnN0IFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFj
ZSYgY29sb3JTcGFjZSwgV2ViQ29yZTo6UGl4ZWxGb3JtYXQgcGl4ZWxGb3JtYXQsIGNvbnN0IEhv
c3RXaW5kb3cqIGhvc3RXaW5kb3cgPSBudWxscHRyKQorICAgIHN0YXRpYyBhdXRvIGNyZWF0ZShj
b25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgY29u
c3QgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlJiBjb2xvclNwYWNlLCBXZWJDb3JlOjpQ
aXhlbEZvcm1hdCBwaXhlbEZvcm1hdCwgY29uc3QgQ3JlYXRpb25Db250ZXh0JiBjcmVhdGlvbkNv
bnRleHQgPSB7IH0pCiAgICAgewotICAgICAgICByZXR1cm4gQmFzZTo6Y3JlYXRlPElPU3VyZmFj
ZUltYWdlQnVmZmVyPihzaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9y
bWF0LCBob3N0V2luZG93KTsKKyAgICAgICAgcmV0dXJuIEJhc2U6OmNyZWF0ZTxJT1N1cmZhY2VJ
bWFnZUJ1ZmZlcj4oc2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1h
dCwgY3JlYXRpb25Db250ZXh0KTsKICAgICB9CiAgICAgc3RhdGljIGF1dG8gY3JlYXRlKGNvbnN0
IEZsb2F0U2l6ZSYgc2l6ZSwgY29uc3QgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KQogICAgIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdl
QnVmZmVyQ2Fpcm9JbWFnZVN1cmZhY2VCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9JbWFnZVN1cmZhY2VCYWNrZW5kLmNw
cAppbmRleCBkMzNmNWY1NmMzNTJiNzA4NDdmZThlYThiOGIwMDM2YzgyYjIyYzA4Li5jOTU3N2Ni
ZmE0YzI0MWQ2NmFhNjkxMTIzZTU0NzI5MjdlMjI1OTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvSW1hZ2VTdXJmYWNl
QmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
SW1hZ2VCdWZmZXJDYWlyb0ltYWdlU3VyZmFjZUJhY2tlbmQuY3BwCkBAIC03Myw3ICs3Myw3IEBA
IHNpemVfdCBJbWFnZUJ1ZmZlckNhaXJvSW1hZ2VTdXJmYWNlQmFja2VuZDo6Y2FsY3VsYXRlTWVt
b3J5Q29zdChjb25zdCBQYXJhbWV0ZXJzCiAgICAgcmV0dXJuIEltYWdlQnVmZmVyQmFja2VuZDo6
Y2FsY3VsYXRlTWVtb3J5Q29zdChiYWNrZW5kU2l6ZSwgY2FsY3VsYXRlQnl0ZXNQZXJSb3coYmFj
a2VuZFNpemUpKTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyQ2Fpcm9JbWFnZVN1
cmZhY2VCYWNrZW5kPiBJbWFnZUJ1ZmZlckNhaXJvSW1hZ2VTdXJmYWNlQmFja2VuZDo6Y3JlYXRl
KGNvbnN0IFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIGNvbnN0IEhvc3RXaW5kb3cqKQorc3RkOjp1
bmlxdWVfcHRyPEltYWdlQnVmZmVyQ2Fpcm9JbWFnZVN1cmZhY2VCYWNrZW5kPiBJbWFnZUJ1ZmZl
ckNhaXJvSW1hZ2VTdXJmYWNlQmFja2VuZDo6Y3JlYXRlKGNvbnN0IFBhcmFtZXRlcnMmIHBhcmFt
ZXRlcnMsIGNvbnN0IEltYWdlQnVmZmVyOjpDcmVhdGlvbkNvbnRleHQmKQogewogICAgIEFTU0VS
VChwYXJhbWV0ZXJzLnBpeGVsRm9ybWF0ID09IFBpeGVsRm9ybWF0OjpCR1JBOCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVy
Q2Fpcm9JbWFnZVN1cmZhY2VCYWNrZW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvSW1hZ2VTdXJmYWNlQmFja2VuZC5oCmluZGV4IGJk
ZTk5ZTM0ZjYwYWEzNDYzNGNiMmI2MjgwNzUzOGZlYjY0NDk3ZjguLjlkNjAwZGZlMmRiOGEyYzU4
MjdiZTFkMmJjOWE3M2IxOGUwMDBhYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9JbWFnZVN1cmZhY2VCYWNrZW5kLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJD
YWlyb0ltYWdlU3VyZmFjZUJhY2tlbmQuaApAQCAtNDQsNyArNDQsNyBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIHVuc2lnbmVkIGNhbGN1bGF0ZUJ5dGVzUGVyUm93KGNvbnN0IEludFNpemUmIGJhY2tl
bmRTaXplKTsKICAgICBzdGF0aWMgc2l6ZV90IGNhbGN1bGF0ZU1lbW9yeUNvc3QoY29uc3QgUGFy
YW1ldGVycyYpOwogCi0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlckNhaXJv
SW1hZ2VTdXJmYWNlQmFja2VuZD4gY3JlYXRlKGNvbnN0IFBhcmFtZXRlcnMmLCBjb25zdCBIb3N0
V2luZG93Kik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlckNhaXJvSW1h
Z2VTdXJmYWNlQmFja2VuZD4gY3JlYXRlKGNvbnN0IFBhcmFtZXRlcnMmLCBjb25zdCBJbWFnZUJ1
ZmZlcjo6Q3JlYXRpb25Db250ZXh0Jik7CiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFn
ZUJ1ZmZlckNhaXJvSW1hZ2VTdXJmYWNlQmFja2VuZD4gY3JlYXRlKGNvbnN0IFBhcmFtZXRlcnMm
LCBjb25zdCBHcmFwaGljc0NvbnRleHQmKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lPU3VyZmFjZVBvb2wuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSU9TdXJmYWNlUG9vbC5jcHAKaW5kZXggZDM2
ZmE0YTk5OTBiYmIwMmMzZDdlMDBlM2M2M2IzNjFhZDY1OWY3My4uOWQ2MWM4MzA1NTgxMzRlNmU0
ZTQ4ZmZjZjk4ODcwNzdmOWQ3NTljOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvSU9TdXJmYWNlUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvSU9TdXJmYWNlUG9vbC5jcHAKQEAgLTM3MCw3ICszNzAsNyBAQCBT
dHJpbmcgSU9TdXJmYWNlUG9vbDo6cG9vbFN0YXRpc3RpY3MoKSBjb25zdAogICAgICAgICB0b3Rh
bFNpemUgKz0gcXVldWVTaXplOwogICAgICAgICB0b3RhbFB1cmdlYWJsZVNpemUgKz0gcXVldWVQ
dXJnZWFibGVTaXplOwogCi0gICAgICAgIHN0cmVhbSA8PCAiICAgIiA8PCBrZXlBbmRTdXJmYWNl
cy5rZXkgPDwgIjogIiA8PCBrZXlBbmRTdXJmYWNlcy52YWx1ZS5zaXplKCkgPDwgIiBzdXJmYWNl
cyBmb3IgIiA8PCBxdWV1ZVNpemUgLyAoMTAyNC4wICogMTAyNC4wKSA8PCAiIE1CICgiIDw8IHF1
ZXVlUHVyZ2VhYmxlU2l6ZSAvICgxMDI0LjAgKiAxMDI0LjApIDw8ICIgTUIgcHVyZ2VhYmxlKSI7
CisgICAgICAgIHN0cmVhbSA8PCAiICAgIiA8PCBrZXlBbmRTdXJmYWNlcy5rZXkgPDwgIjogIiA8
PCBrZXlBbmRTdXJmYWNlcy52YWx1ZS5zaXplKCkgPDwgIiBzdXJmYWNlcyBmb3IgIiA8PCBxdWV1
ZVNpemUgLyAoMTAyNC4wICogMTAyNC4wKSA8PCAiIE1CICgiIDw8IHF1ZXVlUHVyZ2VhYmxlU2l6
ZSAvICgxMDI0LjAgKiAxMDI0LjApIDw8ICIgTUIgcHVyZ2VhYmxlKVxuIjsKICAgICB9CiAKICAg
ICBzaXplX3QgaW5Vc2VTaXplID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kLmNw
cAppbmRleCA0NGJmNTk5YjY3NzM3NmUwMzBkZDYxMDIxOWI3MjczY2VhNDNkMGViLi41ZTIzMDdh
ZTBkNWY2YWQxODNiYTIwM2Q2OWJiOTJiN2RlYmZiMGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQml0bWFwQmFja2VuZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0Jp
dG1hcEJhY2tlbmQuY3BwCkBAIC02Miw3ICs2Miw3IEBAIHNpemVfdCBJbWFnZUJ1ZmZlckNHQml0
bWFwQmFja2VuZDo6Y2FsY3VsYXRlTWVtb3J5Q29zdChjb25zdCBQYXJhbWV0ZXJzJiBwYXJhbWV0
CiAgICAgcmV0dXJuIEltYWdlQnVmZmVyQmFja2VuZDo6Y2FsY3VsYXRlTWVtb3J5Q29zdChiYWNr
ZW5kU2l6ZSwgY2FsY3VsYXRlQnl0ZXNQZXJSb3coYmFja2VuZFNpemUpKTsKIH0KIAotc3RkOjp1
bmlxdWVfcHRyPEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kPiBJbWFnZUJ1ZmZlckNHQml0bWFw
QmFja2VuZDo6Y3JlYXRlKGNvbnN0IFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIGNvbnN0IEhvc3RX
aW5kb3cqKQorc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyQ0dCaXRtYXBCYWNrZW5kPiBJbWFn
ZUJ1ZmZlckNHQml0bWFwQmFja2VuZDo6Y3JlYXRlKGNvbnN0IFBhcmFtZXRlcnMmIHBhcmFtZXRl
cnMsIGNvbnN0IEltYWdlQnVmZmVyOjpDcmVhdGlvbkNvbnRleHQmKQogewogICAgIEFTU0VSVChw
YXJhbWV0ZXJzLnBpeGVsRm9ybWF0ID09IFBpeGVsRm9ybWF0OjpCR1JBOCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCaXRt
YXBCYWNrZW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1
ZmZlckNHQml0bWFwQmFja2VuZC5oCmluZGV4IDA5NzZiNTgxNjA0OGI5MjA0NDEwNTliODllNmIy
ZGE4MGE0ODVkNGMuLmFmYjY0NDg3ZjQ1MGEyZmJjODVkMDJjMmExMjYyNzMxYjRhZDRmYWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVy
Q0dCaXRtYXBCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvSW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaWYg
VVNFKENHKQogCisjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZl
ckNHQmFja2VuZC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KIApAQCAtNDEsNyArNDIs
NyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEludFNpemUgY2FsY3VsYXRlU2FmZUJhY2tlbmRTaXpl
KGNvbnN0IFBhcmFtZXRlcnMmKTsKICAgICBzdGF0aWMgc2l6ZV90IGNhbGN1bGF0ZU1lbW9yeUNv
c3QoY29uc3QgUGFyYW1ldGVycyYpOwogCi0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFn
ZUJ1ZmZlckNHQml0bWFwQmFja2VuZD4gY3JlYXRlKGNvbnN0IFBhcmFtZXRlcnMmLCBjb25zdCBI
b3N0V2luZG93Kik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlckNHQml0
bWFwQmFja2VuZD4gY3JlYXRlKGNvbnN0IFBhcmFtZXRlcnMmLCBjb25zdCBJbWFnZUJ1ZmZlcjo6
Q3JlYXRpb25Db250ZXh0Jik7CiAKICAgICAvLyBGSVhNRTogUmVuYW1lIHRvIGNyZWF0ZVVzaW5n
Q29sb3JTcGFjZU9mR3JhcGhpY3NDb250ZXh0KCkgKG9yIHNvbWV0aGluZyBsaWtlIHRoYXQpLgog
ICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJDR0JpdG1hcEJhY2tlbmQ+IGNy
ZWF0ZShjb25zdCBQYXJhbWV0ZXJzJiwgY29uc3QgR3JhcGhpY3NDb250ZXh0Jik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3Vy
ZmFjZUJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1h
Z2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmNwcAppbmRleCBlMjA2ZDk2MTUxNmUwMGY4NmFlM2Y3
ZjMyMTU5NmNiYmE4OGQ4YzhjLi42MWE1OWRkMmZlNzFhMjkwMDQzMjMyNGJhNmE4ODQ3ODU0OTA4
NmZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFn
ZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5jcHAKQEAgLTgxLDE3ICs4
MSwxNyBAQCBSZXRhaW5QdHI8Q0dDb2xvclNwYWNlUmVmPiBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJh
Y2tlbmQ6OmNvbnRleHRDb2xvclNwYWNlKGNvbnN0CiAgICAgcmV0dXJuIEltYWdlQnVmZmVyQ0dC
YWNrZW5kOjpjb250ZXh0Q29sb3JTcGFjZShjb250ZXh0KTsKIH0KIAotc3RkOjp1bmlxdWVfcHRy
PEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZD4gSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5k
OjpjcmVhdGUoY29uc3QgUGFyYW1ldGVycyYgcGFyYW1ldGVycywgY29uc3QgSG9zdFdpbmRvdyog
aG9zdFdpbmRvdykKK3N0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ+
IEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlKGNvbnN0IFBhcmFtZXRlcnMmIHBh
cmFtZXRlcnMsIGNvbnN0IEltYWdlQnVmZmVyOjpDcmVhdGlvbkNvbnRleHQmIGNyZWF0aW9uQ29u
dGV4dCkKIHsKICAgICBJbnRTaXplIGJhY2tlbmRTaXplID0gY2FsY3VsYXRlU2FmZUJhY2tlbmRT
aXplKHBhcmFtZXRlcnMpOwogICAgIGlmIChiYWNrZW5kU2l6ZS5pc0VtcHR5KCkpCiAgICAgICAg
IHJldHVybiBudWxscHRyOwogCi0gICAgYXV0byBzdXJmYWNlID0gSU9TdXJmYWNlOjpjcmVhdGUo
JklPU3VyZmFjZVBvb2w6OnNoYXJlZFBvb2woKSwgYmFja2VuZFNpemUsIGJhY2tlbmRTaXplLCBw
YXJhbWV0ZXJzLmNvbG9yU3BhY2UsIElPU3VyZmFjZTo6Zm9ybWF0Rm9yUGl4ZWxGb3JtYXQocGFy
YW1ldGVycy5waXhlbEZvcm1hdCkpOworICAgIGF1dG8gc3VyZmFjZSA9IElPU3VyZmFjZTo6Y3Jl
YXRlKGNyZWF0aW9uQ29udGV4dC5zdXJmYWNlUG9vbCwgYmFja2VuZFNpemUsIGJhY2tlbmRTaXpl
LCBwYXJhbWV0ZXJzLmNvbG9yU3BhY2UsIElPU3VyZmFjZTo6Zm9ybWF0Rm9yUGl4ZWxGb3JtYXQo
cGFyYW1ldGVycy5waXhlbEZvcm1hdCkpOwogICAgIGlmICghc3VyZmFjZSkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKLSAgICBSZXRhaW5QdHI8Q0dDb250ZXh0UmVmPiBjZ0NvbnRleHQgPSBz
dXJmYWNlLT5lbnN1cmVQbGF0Zm9ybUNvbnRleHQoaG9zdFdpbmRvdyk7CisgICAgUmV0YWluUHRy
PENHQ29udGV4dFJlZj4gY2dDb250ZXh0ID0gc3VyZmFjZS0+ZW5zdXJlUGxhdGZvcm1Db250ZXh0
KGNyZWF0aW9uQ29udGV4dC5ob3N0V2luZG93KTsKICAgICBpZiAoIWNnQ29udGV4dCkKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmgKaW5k
ZXggMDM5MTNiMDBiZmFlZjIzMDFmN2UzNjIyNDczNjM2NzRjNjY0MTc5NS4uOTUwMmFhZTVmY2I3
NTEwYjNmNGY1NWEzYzM1ZmMzM2UyZDhkMzJkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJT1N1cmZhY2VC
YWNrZW5kLmgKQEAgLTQyLDcgKzQyLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBzaXplX3QgY2Fs
Y3VsYXRlTWVtb3J5Q29zdChjb25zdCBQYXJhbWV0ZXJzJik7CiAgICAgc3RhdGljIHNpemVfdCBj
YWxjdWxhdGVFeHRlcm5hbE1lbW9yeUNvc3QoY29uc3QgUGFyYW1ldGVycyYpOwogICAgIAotICAg
IHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kPiBjcmVh
dGUoY29uc3QgUGFyYW1ldGVycyYsIGNvbnN0IEhvc3RXaW5kb3cqKTsKKyAgICBzdGF0aWMgc3Rk
Ojp1bmlxdWVfcHRyPEltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZD4gY3JlYXRlKGNvbnN0IFBh
cmFtZXRlcnMmLCBjb25zdCBJbWFnZUJ1ZmZlcjo6Q3JlYXRpb25Db250ZXh0Jik7CiAgICAgLy8g
RklYTUU6IFJlbmFtZSB0byBjcmVhdGVVc2luZ0NvbG9yU3BhY2VPZkdyYXBoaWNzQ29udGV4dCgp
IChvciBzb21ldGhpbmcgbGlrZSB0aGF0KS4KICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElt
YWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZD4gY3JlYXRlKGNvbnN0IFBhcmFtZXRlcnMmLCBjb25z
dCBHcmFwaGljc0NvbnRleHQmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEltYWdl
QnVmZmVyLmgKaW5kZXggMGRhODMyNWM0MDEzZjg1NDQ2YmY1N2E0MDE0ZTA5N2NhZDdjYzM0MC4u
N2Y5OGNmZmNhMTE2NWFiNjljMWY4NTdjYWRmMWYzMzk3N2M0ZDg5MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SW1h
Z2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oCkBAIC00MCw5ICs0MCw5IEBAIGNsYXNzIElt
YWdlQnVmZmVyIGZpbmFsIDogcHVibGljIENvbmNyZXRlSW1hZ2VCdWZmZXI8QmFja2VuZFR5cGU+
IHsKICAgICB1c2luZyBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6YmFzZVRyYW5zZm9ybTsKIAog
cHVibGljOgotICAgIHN0YXRpYyBhdXRvIGNyZWF0ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIGZs
b2F0IHJlc29sdXRpb25TY2FsZSwgY29uc3QgRGVzdGluYXRpb25Db2xvclNwYWNlJiBjb2xvclNw
YWNlLCBQaXhlbEZvcm1hdCBwaXhlbEZvcm1hdCwgY29uc3QgSG9zdFdpbmRvdyogaG9zdFdpbmRv
dykKKyAgICBzdGF0aWMgYXV0byBjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBmbG9hdCBy
ZXNvbHV0aW9uU2NhbGUsIGNvbnN0IERlc3RpbmF0aW9uQ29sb3JTcGFjZSYgY29sb3JTcGFjZSwg
UGl4ZWxGb3JtYXQgcGl4ZWxGb3JtYXQsIGNvbnN0IFdlYkNvcmU6OkltYWdlQnVmZmVyOjpDcmVh
dGlvbkNvbnRleHQmIGNyZWF0aW9uQ29udGV4dCkKICAgICB7Ci0gICAgICAgIHJldHVybiBCYXNl
Q29uY3JldGVJbWFnZUJ1ZmZlcjo6dGVtcGxhdGUgY3JlYXRlPEltYWdlQnVmZmVyPihzaXplLCBy
ZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0LCBob3N0V2luZG93KTsKKyAg
ICAgICAgcmV0dXJuIEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyOjp0ZW1wbGF0ZSBjcmVhdGU8SW1h
Z2VCdWZmZXI+KHNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQs
IGNyZWF0aW9uQ29udGV4dCk7CiAgICAgfQogCiAgICAgc3RhdGljIGF1dG8gY3JlYXRlKGNvbnN0
IEZsb2F0U2l6ZSYgc2l6ZSwgY29uc3QgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL0NHRGlzcGxheUxpc3RJ
bWFnZUJ1ZmZlckJhY2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJU
cmVlL0NHRGlzcGxheUxpc3RJbWFnZUJ1ZmZlckJhY2tlbmQuY3BwCmluZGV4IDRlMWExMDllOWZm
ODhlNDA2YTU3NTFhNWU5NTk1ZWJiN2FlOWVkN2YuLjRhYTNlNWQ4OTJhODgzZDA3YzhmODUzODM2
OTgwOWRhNzBiZmZjOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxh
eWVyVHJlZS9DR0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXJCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvQ0dEaXNwbGF5TGlzdEltYWdlQnVmZmVyQmFj
a2VuZC5jcHAKQEAgLTg2LDcgKzg2LDcgQEAgc3RkOjp1bmlxdWVfcHRyPENHRGlzcGxheUxpc3RJ
bWFnZUJ1ZmZlckJhY2tlbmQ+IENHRGlzcGxheUxpc3RJbWFnZUJ1ZmZlckJhY2tlbmQKICAgICBy
ZXR1cm4gc3RkOjp1bmlxdWVfcHRyPENHRGlzcGxheUxpc3RJbWFnZUJ1ZmZlckJhY2tlbmQ+KG5l
dyBDR0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXJCYWNrZW5kKHBhcmFtZXRlcnMsIFdURk1vdmUoY29u
dGV4dCkpKTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPENHRGlzcGxheUxpc3RJbWFnZUJ1ZmZlckJh
Y2tlbmQ+IENHRGlzcGxheUxpc3RJbWFnZUJ1ZmZlckJhY2tlbmQ6OmNyZWF0ZShjb25zdCBQYXJh
bWV0ZXJzJiBwYXJhbWV0ZXJzLCBjb25zdCBXZWJDb3JlOjpIb3N0V2luZG93KikKK3N0ZDo6dW5p
cXVlX3B0cjxDR0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXJCYWNrZW5kPiBDR0Rpc3BsYXlMaXN0SW1h
Z2VCdWZmZXJCYWNrZW5kOjpjcmVhdGUoY29uc3QgUGFyYW1ldGVycyYgcGFyYW1ldGVycywgY29u
c3QgV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OkNyZWF0aW9uQ29udGV4dCYpCiB7CiAgICAgcmV0dXJu
IENHRGlzcGxheUxpc3RJbWFnZUJ1ZmZlckJhY2tlbmQ6OmNyZWF0ZShwYXJhbWV0ZXJzKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9DR0Rpc3Bs
YXlMaXN0SW1hZ2VCdWZmZXJCYWNrZW5kLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVM
YXllclRyZWUvQ0dEaXNwbGF5TGlzdEltYWdlQnVmZmVyQmFja2VuZC5oCmluZGV4IDAyMmZlNzIz
Yjg1MjAwOWNjMWY2ZjYyZmIyMzUwZjQzZDc1MWZmOTcuLjVmMjNmZDZjY2MwZjAwZGNkMmE1ODA5
NTcyY2NhN2I4M2Y2MDE1YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90
ZUxheWVyVHJlZS9DR0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXJCYWNrZW5kLmgKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL0NHRGlzcGxheUxpc3RJbWFnZUJ1ZmZlckJh
Y2tlbmQuaApAQCAtNDAsNyArNDAsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHNpemVfdCBjYWxj
dWxhdGVNZW1vcnlDb3N0KGNvbnN0IFBhcmFtZXRlcnMmKTsKIAogICAgIHN0YXRpYyBzdGQ6OnVu
aXF1ZV9wdHI8Q0dEaXNwbGF5TGlzdEltYWdlQnVmZmVyQmFja2VuZD4gY3JlYXRlKGNvbnN0IFBh
cmFtZXRlcnMmKTsKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPENHRGlzcGxheUxpc3RJbWFn
ZUJ1ZmZlckJhY2tlbmQ+IGNyZWF0ZShjb25zdCBQYXJhbWV0ZXJzJiwgY29uc3QgV2ViQ29yZTo6
SG9zdFdpbmRvdyopOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q0dEaXNwbGF5TGlzdElt
YWdlQnVmZmVyQmFja2VuZD4gY3JlYXRlKGNvbnN0IFBhcmFtZXRlcnMmLCBjb25zdCBXZWJDb3Jl
OjpJbWFnZUJ1ZmZlcjo6Q3JlYXRpb25Db250ZXh0Jik7CiAKICAgICBXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQmIGNvbnRleHQoKSBjb25zdCBmaW5hbDsKICAgICBXZWJDb3JlOjpJbnRTaXplIGJh
Y2tlbmRTaXplKCkgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0gYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0KaW5k
ZXggN2RmNTQ3MjRiOTc5YzRkZTBiOGJiOTZlZmQxN2ExYTVkMmU1NmY1Zi4uZDk5OTEwY2I5NGRj
YTljYTQ5MzlhMDM4MzRhZmZlYmIwNGUxZjk0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9y
ZS5tbQpAQCAtMzY1LDcgKzM2NSw3IEBAIHZvaWQgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmVu
c3VyZUZyb250QnVmZmVyKCkKIAogI2lmIEVOQUJMRShDR19ESVNQTEFZX0xJU1RfQkFDS0VEX0lN
QUdFX0JVRkZFUikKICAgICBpZiAobV9pbmNsdWRlRGlzcGxheUxpc3QgPT0gSW5jbHVkZURpc3Bs
YXlMaXN0OjpZZXMpCi0gICAgICAgIG1fZnJvbnRCdWZmZXIuZGlzcGxheUxpc3RJbWFnZUJ1ZmZl
ciA9IFdlYkNvcmU6OkNvbmNyZXRlSW1hZ2VCdWZmZXI8Q0dEaXNwbGF5TGlzdEltYWdlQnVmZmVy
QmFja2VuZD46OmNyZWF0ZShtX3NpemUsIG1fc2NhbGUsIFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29s
b3JTcGFjZTo6U1JHQigpLCBwaXhlbEZvcm1hdCgpLCBudWxscHRyKTsKKyAgICAgICAgbV9mcm9u
dEJ1ZmZlci5kaXNwbGF5TGlzdEltYWdlQnVmZmVyID0gV2ViQ29yZTo6Q29uY3JldGVJbWFnZUJ1
ZmZlcjxDR0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXJCYWNrZW5kPjo6Y3JlYXRlKG1fc2l6ZSwgbV9z
Y2FsZSwgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCKCksIHBpeGVsRm9ybWF0
KCkpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb24ubW0gYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVDb2xs
ZWN0aW9uLm1tCmluZGV4IGNmNzMwM2E0NmUxMTE1OWMwMDJlMDU5YzczNzBlYTFkZDg0MGRlMDku
LmIyMDNlMjc4N2Q1ZTZmYmViZTkyNWI4YTY1ZjNhMjA2MGUzMDY3MDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9y
ZUNvbGxlY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVjdGlvbi5tbQpAQCAtMzMsNiArMzMsNyBAQAog
I2ltcG9ydCAiUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oIgogI2ltcG9ydCAiU3dhcEJ1ZmZlcnNE
aXNwbGF5UmVxdWlyZW1lbnQuaCIKICNpbXBvcnQgPFdlYkNvcmUvQ29uY3JldGVJbWFnZUJ1ZmZl
ci5oPgorI2ltcG9ydCA8V2ViQ29yZS9JT1N1cmZhY2VQb29sLmg+CiAjaW1wb3J0IDx3dGYvdGV4
dC9UZXh0U3RyZWFtLmg+CiAKIGNvbnN0IFNlY29uZHMgdm9sYXRpbGl0eVRpbWVySW50ZXJ2YWwg
PSAyMDBfbXM7CkBAIC0yNjMsOSArMjY0LDkgQEAgUmVmUHRyPFdlYkNvcmU6OkltYWdlQnVmZmVy
PiBSZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb246OmFsbG9jYXRlQnVmZmVyRm8KIHsK
ICAgICBzd2l0Y2ggKGJhY2tpbmdTdG9yZS50eXBlKCkpIHsKICAgICBjYXNlIFJlbW90ZUxheWVy
QmFja2luZ1N0b3JlOjpUeXBlOjpJT1N1cmZhY2U6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpD
b25jcmV0ZUltYWdlQnVmZmVyPEFjY2VsZXJhdGVkSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRC
YWNrZW5kPjo6Y3JlYXRlKGJhY2tpbmdTdG9yZS5zaXplKCksIGJhY2tpbmdTdG9yZS5zY2FsZSgp
LCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IoKSwgYmFja2luZ1N0b3JlLnBp
eGVsRm9ybWF0KCksIG51bGxwdHIpOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6Q29uY3JldGVJ
bWFnZUJ1ZmZlcjxBY2NlbGVyYXRlZEltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkQmFja2VuZD46
OmNyZWF0ZShiYWNraW5nU3RvcmUuc2l6ZSgpLCBiYWNraW5nU3RvcmUuc2NhbGUoKSwgV2ViQ29y
ZTo6RGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCKCksIGJhY2tpbmdTdG9yZS5waXhlbEZvcm1h
dCgpLCB7IG51bGxwdHIsICZXZWJDb3JlOjpJT1N1cmZhY2VQb29sOjpzaGFyZWRQb29sKCkgfSk7
CiAgICAgY2FzZSBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6VHlwZTo6Qml0bWFwOgotICAgICAg
ICByZXR1cm4gV2ViQ29yZTo6Q29uY3JldGVJbWFnZUJ1ZmZlcjxVbmFjY2VsZXJhdGVkSW1hZ2VC
dWZmZXJTaGFyZWFibGVCYWNrZW5kPjo6Y3JlYXRlKGJhY2tpbmdTdG9yZS5zaXplKCksIGJhY2tp
bmdTdG9yZS5zY2FsZSgpLCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IoKSwg
YmFja2luZ1N0b3JlLnBpeGVsRm9ybWF0KCksIG51bGxwdHIpOworICAgICAgICByZXR1cm4gV2Vi
Q29yZTo6Q29uY3JldGVJbWFnZUJ1ZmZlcjxVbmFjY2VsZXJhdGVkSW1hZ2VCdWZmZXJTaGFyZWFi
bGVCYWNrZW5kPjo6Y3JlYXRlKGJhY2tpbmdTdG9yZS5zaXplKCksIGJhY2tpbmdTdG9yZS5zY2Fs
ZSgpLCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IoKSwgYmFja2luZ1N0b3Jl
LnBpeGVsRm9ybWF0KCksIHsgfSk7CiAgICAgfQogICAgIHJldHVybiBudWxscHRyOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZl
clNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuY3BwCmluZGV4IGUx
ZWY0NzcxNDk2MWM5MzA5ODExZmQzY2U0ZDkwMWEyNGZjYTk5ZGQuLmExMTcwNzI0OTBlNWM3YTc5
NTRmYmJlNzhmNzBmNzkzNmVkYzJlZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hh
cmVhYmxlQml0bWFwQmFja2VuZC5jcHAKQEAgLTc3LDcgKzc3LDcgQEAgc2l6ZV90IEltYWdlQnVm
ZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZDo6Y2FsY3VsYXRlTWVtb3J5Q29zdChjb25zdCBQYXJh
bWV0ZXJzJgogICAgIHJldHVybiBJbWFnZUJ1ZmZlckJhY2tlbmQ6OmNhbGN1bGF0ZU1lbW9yeUNv
c3QoYmFja2VuZFNpemUsIGNhbGN1bGF0ZUJ5dGVzUGVyUm93KHBhcmFtZXRlcnMsIGJhY2tlbmRT
aXplKSk7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJh
Y2tlbmQ+IEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZDo6Y3JlYXRlKGNvbnN0IFBh
cmFtZXRlcnMmIHBhcmFtZXRlcnMsIGNvbnN0IEhvc3RXaW5kb3cqKQorc3RkOjp1bmlxdWVfcHRy
PEltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZD4gSW1hZ2VCdWZmZXJTaGFyZWFibGVC
aXRtYXBCYWNrZW5kOjpjcmVhdGUoY29uc3QgUGFyYW1ldGVycyYgcGFyYW1ldGVycywgY29uc3Qg
V2ViQ29yZTo6SW1hZ2VCdWZmZXI6OkNyZWF0aW9uQ29udGV4dCYpCiB7CiAgICAgQVNTRVJUKHBh
cmFtZXRlcnMucGl4ZWxGb3JtYXQgPT0gUGl4ZWxGb3JtYXQ6OkJHUkE4KTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJl
YWJsZUJpdG1hcEJhY2tlbmQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmgKaW5kZXggYzVlMThmZWM4ZWZi
ZDIyM2M2OGJlMDg3ZTI5NmViNjhhOGExZDQzYy4uMjFkZDBkODc1MGFkZTMzMjY3ZDA4ZTg4MDcx
ZDVkNWNkMzMwODRiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFw
QmFja2VuZC5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiAj
aW5jbHVkZSAiSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlU2hhcmluZy5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvSW1hZ2VCdWZmZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtSW1hZ2VCdWZm
ZXJCYWNrZW5kLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgogCkBAIC00OCw3ICs0OSw3
IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdW5zaWduZWQgY2FsY3VsYXRlQnl0ZXNQZXJSb3coY29u
c3QgUGFyYW1ldGVycyYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJhY2tlbmRTaXplKTsKICAg
ICBzdGF0aWMgc2l6ZV90IGNhbGN1bGF0ZU1lbW9yeUNvc3QoY29uc3QgUGFyYW1ldGVycyYpOwog
Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJh
Y2tlbmQ+IGNyZWF0ZShjb25zdCBQYXJhbWV0ZXJzJiwgY29uc3QgV2ViQ29yZTo6SG9zdFdpbmRv
dyopOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRt
YXBCYWNrZW5kPiBjcmVhdGUoY29uc3QgUGFyYW1ldGVycyYsIGNvbnN0IFdlYkNvcmU6OkltYWdl
QnVmZmVyOjpDcmVhdGlvbkNvbnRleHQmKTsKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElt
YWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZD4gY3JlYXRlKGNvbnN0IFBhcmFtZXRlcnMm
LCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUpOwogCiAgICAgSW1hZ2VCdWZmZXJTaGFyZWFibGVC
aXRtYXBCYWNrZW5kKGNvbnN0IFBhcmFtZXRlcnMmLCBSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiYm
LCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0PiYmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZm
ZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1
cmZhY2VCYWNrZW5kLmNwcAppbmRleCAxOTE3NjBhODdlM2YzMTQ1Y2MzMDE3OTFjMTVmMzliNDYy
MWE5ZjVhLi40MzI5YTFjOTE3MTM0OTQ3MTljMmJhYTZiZTE2NGUwNTdmNmI4MTYwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVm
ZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBl
ZElPU3VyZmFjZUJhY2tlbmQuY3BwCkBAIC00MCwxMyArNDAsMTMgQEAgdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChJbWFnZUJ1ZmZlclNoYXJl
YWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQpOwogCi1zdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZm
ZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kPiBJbWFnZUJ1ZmZlclNoYXJlYWJsZU1h
cHBlZElPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZShjb25zdCBQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJz
LCBjb25zdCBIb3N0V2luZG93KikKK3N0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclNoYXJlYWJs
ZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQ+IEltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJm
YWNlQmFja2VuZDo6Y3JlYXRlKGNvbnN0IFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIGNvbnN0IElt
YWdlQnVmZmVyOjpDcmVhdGlvbkNvbnRleHQmIGNyZWF0aW9uQ29udGV4dCkKIHsKICAgICBJbnRT
aXplIGJhY2tlbmRTaXplID0gY2FsY3VsYXRlU2FmZUJhY2tlbmRTaXplKHBhcmFtZXRlcnMpOwog
ICAgIGlmIChiYWNrZW5kU2l6ZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
Ci0gICAgYXV0byBzdXJmYWNlID0gSU9TdXJmYWNlOjpjcmVhdGUoJklPU3VyZmFjZVBvb2w6OnNo
YXJlZFBvb2woKSwgYmFja2VuZFNpemUsIGJhY2tlbmRTaXplLCBwYXJhbWV0ZXJzLmNvbG9yU3Bh
Y2UsIElPU3VyZmFjZTo6Zm9ybWF0Rm9yUGl4ZWxGb3JtYXQocGFyYW1ldGVycy5waXhlbEZvcm1h
dCkpOworICAgIGF1dG8gc3VyZmFjZSA9IElPU3VyZmFjZTo6Y3JlYXRlKGNyZWF0aW9uQ29udGV4
dC5zdXJmYWNlUG9vbCwgYmFja2VuZFNpemUsIGJhY2tlbmRTaXplLCBwYXJhbWV0ZXJzLmNvbG9y
U3BhY2UsIElPU3VyZmFjZTo6Zm9ybWF0Rm9yUGl4ZWxGb3JtYXQocGFyYW1ldGVycy5waXhlbEZv
cm1hdCkpOwogICAgIGlmICghc3VyZmFjZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1h
Z2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVk
SU9TdXJmYWNlQmFja2VuZC5oCmluZGV4IGQ4YjQ5ZjcxNGE1NWJhZjkxZGViZDBjN2EyNDdjMzJk
YTY1NmFiODcuLmJkYmNkOThmMzdlYTk0OThkMDc0YWY4NjcwODc0YjgxODFjMjQ4ODggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VC
dWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBl
ZElPU3VyZmFjZUJhY2tlbmQuaApAQCAtNDMsNyArNDMsNyBAQCBjbGFzcyBJbWFnZUJ1ZmZlclNo
YXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6SW1h
Z2VCdQogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBw
ZWRJT1N1cmZhY2VCYWNrZW5kKTsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbWFnZUJ1ZmZl
clNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQpOwogcHVibGljOgotICAgIHN0YXRpYyBz
dGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5k
PiBjcmVhdGUoY29uc3QgUGFyYW1ldGVycyYsIGNvbnN0IFdlYkNvcmU6Okhvc3RXaW5kb3cqKTsK
KyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9T
dXJmYWNlQmFja2VuZD4gY3JlYXRlKGNvbnN0IFBhcmFtZXRlcnMmLCBjb25zdCBXZWJDb3JlOjpJ
bWFnZUJ1ZmZlcjo6Q3JlYXRpb25Db250ZXh0Jik7CiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0
cjxJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQ+IGNyZWF0ZShjb25z
dCBQYXJhbWV0ZXJzJiwgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKTsKIAogICAgIHVzaW5nIFdl
YkNvcmU6OkltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6SW1hZ2VCdWZmZXJJT1N1cmZhY2VC
YWNrZW5kOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>