<?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>237631</bug_id>
          
          <creation_ts>2022-03-08 17:08:04 -0800</creation_ts>
          <short_desc>Move RemoteLayerBackingStore::Buffer.isVolatile into ImageBufferBackend</short_desc>
          <delta_ts>2022-03-09 10:17:41 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>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>1849489</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-03-08 17:08:04 -0800</bug_when>
    <thetext>Move RemoteLayerBackingStore::Buffer.isVolatile into ImageBufferBackend</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849490</commentid>
    <comment_count>1</comment_count>
      <attachid>454177</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-03-08 17:14:30 -0800</bug_when>
    <thetext>Created attachment 454177
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849491</commentid>
    <comment_count>2</comment_count>
      <attachid>454178</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-03-08 17:16:18 -0800</bug_when>
    <thetext>Created attachment 454178
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849495</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-08 17:24:30 -0800</bug_when>
    <thetext>&lt;rdar://problem/89999926&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849739</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-09 10:17:37 -0800</bug_when>
    <thetext>Committed r291053 (248227@main): &lt;https://commits.webkit.org/248227@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 454178.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454177</attachid>
            <date>2022-03-08 17:14:30 -0800</date>
            <delta_ts>2022-03-08 17:16:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237631-20220308171429.patch</filename>
            <type>text/plain</type>
            <size>32607</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwODkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjkyMDJkOTY3YjlkOWEw
YWFjNzg0ZGZkNWI1NzI2OTM3ZjA3Y2NmYS4uNGE1Mzg0YTE0NWM3ODc5YjM1Y2YxYWYyNjRhOWE5
NWRhZTM5YjkxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIyLTAzLTA4ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgUmVtb3Rl
TGF5ZXJCYWNraW5nU3RvcmU6OkJ1ZmZlci5pc1ZvbGF0aWxlIGludG8gSW1hZ2VCdWZmZXJCYWNr
ZW5kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzc2
MzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAnaXNW
b2xhdGlsZScgaXMgYSBwcm9wZXJ0eSBvZiBhIHNwZWNpZmljIGltYWdlIGJ1ZmZlciwgc28gaXQg
bWFrZXMgbW9yZSBzZW5zZSB0byBoYXZlIGl0IGluCisgICAgICAgIEltYWdlQnVmZmVyW0JhY2tl
bmRdIHRoYW4gUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUuIFRoaXMgYWxzbyBhbGxvd3MgR1BVIFBy
b2Nlc3MgY29kZSB0bworICAgICAgICBtYWludGFpbiB2b2xhdGlsaXR5IHN0YXRlIGluIHRoZSB3
ZWIgcHJvY2Vzcywgd2hpY2ggcmVkdWNlcyB0aGUgYW1vdW50IG9mIElQQyBuZWVkZWQgd2hlbgor
ICAgICAgICBtYWtpbmcgdGhlIGZyb250IGJ1ZmZlciBub24tdm9sYXRpbGUgYmVmb3JlIGRpc3Bs
YXkuCisKKyAgICAgICAgU28gSW1hZ2VCdWZmZXJCYWNrZW5kIGdldHMgdm9sYXRpbGl0eVN0YXRl
KCkvc2V0Vm9sYXRpbGl0eVN0YXRlKCksIGFjY2Vzc2VkIHZpYSBJbWFnZUJ1ZmZlci4KKyAgICAg
ICAgVGhpcyBzdGF0ZSBpcyBtYWludGFpbmVkIGJ5IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eSBmb3IgcmVtb3RlIGJ1ZmZlcnMuIFdlIHNldCB0aGUgc3RhdGUKKyAgICAgICAgdG8gdm9sYXRp
bGUgd2hlbiB3ZSByZWNlaXZlIHRoZSBJUEMgcmVwbHkgZm9yIG1hcmtTdXJmYWNlc1ZvbGF0aWxl
KCksIHdoaWNoIHJlcXVpcmVzCisgICAgICAgIGNoYW5naW5nIHRoZSByZXBseSB0byBsaXN0IGJ1
ZmZlcnMgZm9yIHdoaWNoIG1ha2luZyB2b2xhdGlsZSB3YXMgc3VjY2Vzc2Z1bC4KKworICAgICAg
ICBSZW1vdGVMYXllcldpdGhSZW1vdGVSZW5kZXJpbmdCYWNraW5nU3RvcmVDb2xsZWN0aW9uOjpt
YWtlRnJvbnRCdWZmZXJOb25Wb2xhdGlsZSgpIGNhbiBub3cKKyAgICAgICAgZWFybHkgcmV0dXJu
IHdoZW4gdGhlIGJ1ZmZlciBpcyBhbHJlYWR5IG5vbi12b2xhdGlsZSwgYW5kIHdlIGhhdmUgYSBi
YWNrZW5kIGhhbmRsZSAocmVjYWxsCisgICAgICAgIHRoYXQgd2UgY2xlYXIgYmFja2VuZCBoYW5k
bGVzIHdoZW4gdHJ5aW5nIHRvIG1ha2UgYSBidWZmZXIgdm9sYXRpbGUpLgorCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
SW1hZ2VCdWZmZXJCYWNrZW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlckJhY2tl
bmQ6OnZvbGF0aWxpdHlTdGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZl
ckJhY2tlbmQ6OnNldFZvbGF0aWxpdHlTdGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6c2V0Vm9sYXRpbGUpOgorICAgICAgICAoV2Vi
Q29yZTo6SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpzZXROb25Wb2xhdGlsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OnZvbGF0aWxpdHlTdGF0
ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6
OnNldFZvbGF0aWxpdHlTdGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1h
Z2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmg6CisKIDIwMjItMDMtMDcgIFNpbW9uIEZyYXNlciAg
PHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1lIFZvbGF0aWxpdHlTdGF0
ZSB0byBTZXROb25Wb2xhdGlsZVJlc3VsdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3NmNhMWE1ZGU1YzNmMGZjY2Y5
Njg0ZGY5MGUzMjgxMjE0OGZkZGNjLi5lZmE4NjE0ZWUwM2UxNTk1MmVjNjA1NmUyYmUyZjVmNTBj
MjVmMmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDIyLTAzLTA4ICBTaW1vbiBGcmFz
ZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgUmVtb3RlTGF5ZXJC
YWNraW5nU3RvcmU6OkJ1ZmZlci5pc1ZvbGF0aWxlIGludG8gSW1hZ2VCdWZmZXJCYWNrZW5kCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzc2MzEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgICdp
c1ZvbGF0aWxlJyBpcyBhIHByb3BlcnR5IG9mIGEgc3BlY2lmaWMgaW1hZ2UgYnVmZmVyLCBzbyBp
dCBtYWtlcyBtb3JlIHNlbnNlIHRvIGhhdmUgaXQgaW4KKyAgICAgICAgSW1hZ2VCdWZmZXJbQmFj
a2VuZF0gdGhhbiBSZW1vdGVMYXllckJhY2tpbmdTdG9yZS4gVGhpcyBhbHNvIGFsbG93cyBHUFUg
UHJvY2VzcyBjb2RlIHRvCisgICAgICAgIG1haW50YWluIHZvbGF0aWxpdHkgc3RhdGUgaW4gdGhl
IHdlYiBwcm9jZXNzLCB3aGljaCByZWR1Y2VzIHRoZSBhbW91bnQgb2YgSVBDIG5lZWRlZCB3aGVu
CisgICAgICAgIG1ha2luZyB0aGUgZnJvbnQgYnVmZmVyIG5vbi12b2xhdGlsZSBiZWZvcmUgZGlz
cGxheS4KKworICAgICAgICBTbyBJbWFnZUJ1ZmZlckJhY2tlbmQgZ2V0cyB2b2xhdGlsaXR5U3Rh
dGUoKS9zZXRWb2xhdGlsaXR5U3RhdGUoKSwgYWNjZXNzZWQgdmlhIEltYWdlQnVmZmVyLgorICAg
ICAgICBUaGlzIHN0YXRlIGlzIG1haW50YWluZWQgYnkgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5IGZvciByZW1vdGUgYnVmZmVycy4gV2Ugc2V0IHRoZSBzdGF0ZQorICAgICAgICB0byB2b2xh
dGlsZSB3aGVuIHdlIHJlY2VpdmUgdGhlIElQQyByZXBseSBmb3IgbWFya1N1cmZhY2VzVm9sYXRp
bGUoKSwgd2hpY2ggcmVxdWlyZXMKKyAgICAgICAgY2hhbmdpbmcgdGhlIHJlcGx5IHRvIGxpc3Qg
YnVmZmVycyBmb3Igd2hpY2ggbWFraW5nIHZvbGF0aWxlIHdhcyBzdWNjZXNzZnVsLgorCisgICAg
ICAgIFJlbW90ZUxheWVyV2l0aFJlbW90ZVJlbmRlcmluZ0JhY2tpbmdTdG9yZUNvbGxlY3Rpb246
Om1ha2VGcm9udEJ1ZmZlck5vblZvbGF0aWxlKCkgY2FuIG5vdworICAgICAgICBlYXJseSByZXR1
cm4gd2hlbiB0aGUgYnVmZmVyIGlzIGFscmVhZHkgbm9uLXZvbGF0aWxlLCBhbmQgd2UgaGF2ZSBh
IGJhY2tlbmQgaGFuZGxlIChyZWNhbGwKKyAgICAgICAgdGhhdCB3ZSBjbGVhciBiYWNrZW5kIGhh
bmRsZXMgd2hlbiB0cnlpbmcgdG8gbWFrZSBhIGJ1ZmZlciB2b2xhdGlsZSkuCisKKyAgICAgICAg
KiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjptYXJrU3VyZmFjZXNWb2xhdGlsZSk6
CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmg6
CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1l
c3NhZ2VzLmluOgorICAgICAgICAqIFNoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJC
YWNraW5nU3RvcmUuaDoKKyAgICAgICAgKiBTaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxh
eWVyQmFja2luZ1N0b3JlLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllckJhY2tpbmdT
dG9yZTo6YXBwbHlTd2FwcGVkQnVmZmVycyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVy
QmFja2luZ1N0b3JlOjpzZXRCdWZmZXJWb2xhdGlsZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUxheWVyQmFja2luZ1N0b3JlOjpzZXRCdWZmZXJOb25Wb2xhdGlsZSk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpkaWRNYWtlRnJvbnRCdWZmZXJOb25Wb2xhdGls
ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpCdWZmZXI6OmRp
c2NhcmQpOgorICAgICAgICAqIFNoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJXaXRo
UmVtb3RlUmVuZGVyaW5nQmFja2luZ1N0b3JlQ29sbGVjdGlvbi5tbToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTGF5ZXJXaXRoUmVtb3RlUmVuZGVyaW5nQmFja2luZ1N0b3JlQ29sbGVjdGlvbjo6
UmVtb3RlTGF5ZXJXaXRoUmVtb3RlUmVuZGVyaW5nQmFja2luZ1N0b3JlQ29sbGVjdGlvbik6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyV2l0aFJlbW90ZVJlbmRlcmluZ0JhY2tpbmdTdG9y
ZUNvbGxlY3Rpb246Om1ha2VGcm9udEJ1ZmZlck5vblZvbGF0aWxlKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTGF5ZXJXaXRoUmVtb3RlUmVuZGVyaW5nQmFja2luZ1N0b3JlQ29sbGVjdGlvbjo6
Y29sbGVjdEJhY2tpbmdTdG9yZUJ1ZmZlcklkZW50aWZpZXJzVG9NYXJrVm9sYXRpbGUpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVMYXllcldpdGhSZW1vdGVSZW5kZXJpbmdCYWNraW5nU3RvcmVD
b2xsZWN0aW9uOjpzZW5kTWFya0J1ZmZlcnNWb2xhdGlsZSk6IENhbGwgdGhlIGNvbXBsZXRpb24g
aGFuZGxlciBpbnNpZGUgdGhlIGNhbGxiYWNrLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZEhhbmRsZVNoYXJpbmcuaDoKKyAgICAgICAgKFdlYktp
dDo6SW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlU2hhcmluZzo6aGFzQmFja2VuZEhhbmRsZSBjb25z
dCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5Ojpzd2FwVG9WYWxpZEZyb250QnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5OjptYXJrU3VyZmFjZU5vblZvbGF0aWxlKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjptYXJrU3VyZmFjZXNWb2xhdGlsZSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VC
dWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW1hZ2VC
dWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kOjpjcmVhdGVCYWNrZW5kSGFuZGxlIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kOjpoYXNC
YWNrZW5kSGFuZGxlIGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9j
b2NvYS9JbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQuaDoKKwogMjAyMi0wMy0wOCAg
U2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggYXNz
ZXJ0aW9uIHdoZW4gRE9NIFJlbmRlcmluZyBpbiBHUFUgUHJvY2VzcyBpcyBlbmFibGVkIHdpdGgg
YWNjZWxlcmF0ZWQgZHJhd2luZyBkaXNhYmxlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oCmluZGV4IGEyNmQ0ZDI0OGI4
OGJiYmVhMGZlOWIzOWU4MzRmMjc2OGE0Yjg1NjkuLjk3ZGNkNGIyZGUyZTVhN2VlYjZiOWIzMGM2
OTc3Y2FkZDBhN2UyOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Db25jcmV0ZUltYWdlQnVmZmVyLmgKQEAgLTMwNSw2ICszMDUsMTkgQEAgcHJvdGVj
dGVkOgogICAgICAgICByZXR1cm4gU2V0Tm9uVm9sYXRpbGVSZXN1bHQ6OlZhbGlkOwogICAgIH0K
IAorICAgIFZvbGF0aWxpdHlTdGF0ZSB2b2xhdGlsaXR5U3RhdGUoKSBjb25zdCBmaW5hbAorICAg
IHsKKyAgICAgICAgaWYgKGF1dG8qIGJhY2tlbmQgPSBlbnN1cmVCYWNrZW5kQ3JlYXRlZCgpKQor
ICAgICAgICAgICAgcmV0dXJuIGJhY2tlbmQtPnZvbGF0aWxpdHlTdGF0ZSgpOworICAgICAgICBy
ZXR1cm4gVm9sYXRpbGl0eVN0YXRlOjpOb25Wb2xhdGlsZTsKKyAgICB9CisKKyAgICB2b2lkIHNl
dFZvbGF0aWxpdHlTdGF0ZShWb2xhdGlsaXR5U3RhdGUgdm9sYXRpbGl0eVN0YXRlKSBmaW5hbAor
ICAgIHsKKyAgICAgICAgaWYgKGF1dG8qIGJhY2tlbmQgPSBlbnN1cmVCYWNrZW5kQ3JlYXRlZCgp
KQorICAgICAgICAgICAgYmFja2VuZC0+c2V0Vm9sYXRpbGl0eVN0YXRlKHZvbGF0aWxpdHlTdGF0
ZSk7CisgICAgfQorCiAgICAgc3RkOjp1bmlxdWVfcHRyPFRocmVhZFNhZmVJbWFnZUJ1ZmZlckZs
dXNoZXI+IGNyZWF0ZUZsdXNoZXIoKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYgKGF1dG8q
IGJhY2tlbmQgPSBlbnN1cmVCYWNrZW5kQ3JlYXRlZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKaW5kZXggNjAwZGI1MDIxNDM3ZTEzNmIyNDI3
N2I2MzM0ZjRmMTMyNzU0ZGYzYS4uZDA0NTE3NWY0ZDA1ZDFhNWI0OGY3NDg2NzA0ZWVhMjlkZGVj
MDcxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VC
dWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZl
ci5oCkBAIC05Myw2ICs5Myw4IEBAIHB1YmxpYzoKICAgICAvLyBSZXR1cm5zIHRydWUgb24gc3Vj
Y2Vzcy4KICAgICB2aXJ0dWFsIGJvb2wgc2V0Vm9sYXRpbGUoKSA9IDA7CiAgICAgdmlydHVhbCBT
ZXROb25Wb2xhdGlsZVJlc3VsdCBzZXROb25Wb2xhdGlsZSgpID0gMDsKKyAgICB2aXJ0dWFsIFZv
bGF0aWxpdHlTdGF0ZSB2b2xhdGlsaXR5U3RhdGUoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2
b2lkIHNldFZvbGF0aWxpdHlTdGF0ZShWb2xhdGlsaXR5U3RhdGUpID0gMDsKIAogICAgIHZpcnR1
YWwgc3RkOjp1bmlxdWVfcHRyPFRocmVhZFNhZmVJbWFnZUJ1ZmZlckZsdXNoZXI+IGNyZWF0ZUZs
dXNoZXIoKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlQnVmZmVyQmFja2VuZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmgKaW5kZXggZDljZmE3NTQxMGEzNzc2ZDI3N2UxMjhkMjMx
OTVkNjUxYWZlZDU0Ni4uZjZmNGU2ZmVlODIwYjVhZTNhMjIzOWZiODFlMzkxNGRmODA1ZjA2YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJC
YWNrZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZm
ZXJCYWNrZW5kLmgKQEAgLTYwLDYgKzYwLDExIEBAIGVudW0gY2xhc3MgU2V0Tm9uVm9sYXRpbGVS
ZXN1bHQgOiB1aW50OF90IHsKICAgICBFbXB0eQogfTsKIAorZW51bSBjbGFzcyBWb2xhdGlsaXR5
U3RhdGUgOiB1aW50OF90IHsKKyAgICBOb25Wb2xhdGlsZSwKKyAgICBWb2xhdGlsZQorfTsKKwog
Y2xhc3MgVGhyZWFkU2FmZUltYWdlQnVmZmVyRmx1c2hlciB7CiAgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVGhyZWFkU2FmZUltYWdlQnVmZmVy
Rmx1c2hlcik7CkBAIC0xMjcsNiArMTMyLDggQEAgcHVibGljOgogICAgIC8vIFJldHVybnMgdHJ1
ZSBvbiBzdWNjZXNzLgogICAgIHZpcnR1YWwgYm9vbCBzZXRWb2xhdGlsZSgpIHsgcmV0dXJuIHRy
dWU7IH0KICAgICB2aXJ0dWFsIFNldE5vblZvbGF0aWxlUmVzdWx0IHNldE5vblZvbGF0aWxlKCkg
eyByZXR1cm4gU2V0Tm9uVm9sYXRpbGVSZXN1bHQ6OlZhbGlkOyB9CisgICAgdmlydHVhbCBWb2xh
dGlsaXR5U3RhdGUgdm9sYXRpbGl0eVN0YXRlKCkgY29uc3QgeyByZXR1cm4gVm9sYXRpbGl0eVN0
YXRlOjpOb25Wb2xhdGlsZTsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRWb2xhdGlsaXR5U3RhdGUo
Vm9sYXRpbGl0eVN0YXRlKSB7IH0KIAogICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPFRocmVh
ZFNhZmVJbWFnZUJ1ZmZlckZsdXNoZXI+IGNyZWF0ZUZsdXNoZXIoKSB7IHJldHVybiBudWxscHRy
OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lt
YWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuY3BwCmluZGV4IDhlYTg0Zjk3
MzIyMDk5OTcyMGIxYmM2YjlhYTYxMTNhMGEwYTZhYzcuLjZkOTM2MmRkYTgyMzU3Mjg4NWZiNjdl
YjlmZTFiYjEzNjkyMTQxMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NnL0ltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmNw
cApAQCAtMjM5LDE1ICsyMzksMjcgQEAgYm9vbCBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6
OnNldFZvbGF0aWxlKCkKICAgICBpZiAobV9zdXJmYWNlLT5pc0luVXNlKCkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAorICAgIHNldFZvbGF0aWxpdHlTdGF0ZShWb2xhdGlsaXR5U3RhdGU6OlZv
bGF0aWxlKTsKICAgICBtX3N1cmZhY2UtPnNldFZvbGF0aWxlKHRydWUpOwogICAgIHJldHVybiB0
cnVlOwogfQogCiBTZXROb25Wb2xhdGlsZVJlc3VsdCBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tl
bmQ6OnNldE5vblZvbGF0aWxlKCkKIHsKKyAgICBzZXRWb2xhdGlsaXR5U3RhdGUoVm9sYXRpbGl0
eVN0YXRlOjpOb25Wb2xhdGlsZSk7CiAgICAgcmV0dXJuIG1fc3VyZmFjZS0+c2V0Vm9sYXRpbGUo
ZmFsc2UpOwogfQogCitWb2xhdGlsaXR5U3RhdGUgSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5k
Ojp2b2xhdGlsaXR5U3RhdGUoKSBjb25zdAoreworICAgIHJldHVybiBtX3ZvbGF0aWxpdHlTdGF0
ZTsKK30KKwordm9pZCBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OnNldFZvbGF0aWxpdHlT
dGF0ZShWb2xhdGlsaXR5U3RhdGUgdm9sYXRpbGl0eVN0YXRlKQoreworICAgIG1fdm9sYXRpbGl0
eVN0YXRlID0gdm9sYXRpbGl0eVN0YXRlOworfQorCiB2b2lkIEltYWdlQnVmZmVySU9TdXJmYWNl
QmFja2VuZDo6cmVsZWFzZUJ1ZmZlclRvUG9vbCgpCiB7CiAgICAgSU9TdXJmYWNlOjptb3ZlVG9Q
b29sKFdURk1vdmUobV9zdXJmYWNlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5o
CmluZGV4IDVkYzcyMDcyMjBhMWVmMjcxZmZiNmE3MjVhOTRmOGNlYmFmNzcwNmUuLjAzOTEzYjAw
YmZhZWYyMzAxZjdlMzYyMjQ3MzYzNjc0YzY2NDE3OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVySU9TdXJm
YWNlQmFja2VuZC5oCkBAIC03MCw4ICs3MCwxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCByZWxl
YXNlR3JhcGhpY3NDb250ZXh0KCkgb3ZlcnJpZGU7CiAgICAgdm9pZCByZWxlYXNlQnVmZmVyVG9Q
b29sKCkgb3ZlcnJpZGU7CiAKLSAgICBib29sIHNldFZvbGF0aWxlKCkgb3ZlcnJpZGU7Ci0gICAg
U2V0Tm9uVm9sYXRpbGVSZXN1bHQgc2V0Tm9uVm9sYXRpbGUoKSBvdmVycmlkZTsKKyAgICBib29s
IHNldFZvbGF0aWxlKCkgZmluYWw7CisgICAgU2V0Tm9uVm9sYXRpbGVSZXN1bHQgc2V0Tm9uVm9s
YXRpbGUoKSBmaW5hbDsKKyAgICBWb2xhdGlsaXR5U3RhdGUgdm9sYXRpbGl0eVN0YXRlKCkgY29u
c3QgZmluYWw7CisgICAgdm9pZCBzZXRWb2xhdGlsaXR5U3RhdGUoVm9sYXRpbGl0eVN0YXRlKSBm
aW5hbDsKIAogICAgIHZvaWQgZW5zdXJlTmF0aXZlSW1hZ2VzSGF2ZUNvcGllZEJhY2tpbmdTdG9y
ZSgpIGZpbmFsOwogCkBAIC04OSw2ICs5MSw3IEBAIHByb3RlY3RlZDoKICAgICBtdXRhYmxlIGJv
b2wgbV9yZXF1aXJlc0RyYXdBZnRlclB1dFBpeGVsQnVmZmVyIHsgZmFsc2UgfTsKIAogICAgIG11
dGFibGUgYm9vbCBtX25lZWRzU2V0dXBDb250ZXh0IHsgZmFsc2UgfTsKKyAgICBWb2xhdGlsaXR5
U3RhdGUgbV92b2xhdGlsaXR5U3RhdGUgeyBWb2xhdGlsaXR5U3RhdGU6Ok5vblZvbGF0aWxlIH07
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKaW5k
ZXggN2UyYjhkN2Q4OWE2YzM2ZGY5NGE1Y2QzY2FlMjVhZWY3YTE1YzBkMi4uNmNiNjcwYmUxMjVl
NzFmYzNlYzU0ZTY5NmYxYjdhZTYxZWJiMDYwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcApA
QCAtNDY0LDcgKzQ2NCw3IEBAIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6c3dhcFRvVmFs
aWRGcm9udEJ1ZmZlcihjb25zdCBCdWZmZXJJZGVudGlmaWVyU2V0JiBiCiAgICAgY29tcGxldGlv
bkhhbmRsZXIocmVzdWx0QnVmZmVyU2V0LCBXVEZNb3ZlKGZyb250QnVmZmVySGFuZGxlKSwgZnJv
bnRCdWZmZXJXYXNFbXB0eSk7CiB9CiAKLXZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6bWFy
a1N1cmZhY2VzVm9sYXRpbGUoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllcj4mIGlkZW50aWZpZXJzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFZl
Y3RvcjxXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+JiBpblVzZUJ1ZmZlcklk
ZW50aWZpZXJzKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZDo6bWFya1N1cmZhY2VzVm9sYXRpbGUoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcj4mIGlkZW50aWZpZXJzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+JiBtYXJr
ZWRWb2xhdGlsZUJ1ZmZlcklkZW50aWZpZXJzKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAg
ICBMT0dfV0lUSF9TVFJFQU0oUmVtb3RlUmVuZGVyaW5nQnVmZmVyVm9sYXRpbGl0eSwgc3RyZWFt
IDw8ICJHUFUgUHJvY2VzczogUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6bWFya1N1cmZhY2VzVm9s
YXRpbGUgIiA8PCBpZGVudGlmaWVycyk7CiAKQEAgLTQ3MywxOSArNDczLDE5IEBAIHZvaWQgUmVt
b3RlUmVuZGVyaW5nQmFja2VuZDo6bWFya1N1cmZhY2VzVm9sYXRpbGUoY29uc3QgVmVjdG9yPFdl
YkNvcmU6OlJlbmRlcmluCiAgICAgICAgIHJldHVybiBpbWFnZUJ1ZmZlci5zZXRWb2xhdGlsZSgp
OwogICAgIH07CiAKLSAgICBWZWN0b3I8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyPiBpblVzZUJ1ZmZlcklkZW50aWZpZXJzOworICAgIFZlY3RvcjxXZWJDb3JlOjpSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXI+IG1hcmtlZFZvbGF0aWxlQnVmZmVySWRlbnRpZmllcnM7CiAg
ICAgZm9yIChhdXRvIGlkZW50aWZpZXIgOiBpZGVudGlmaWVycykgewogICAgICAgICBhdXRvIGlt
YWdlQnVmZmVyID0gbV9yZW1vdGVSZXNvdXJjZUNhY2hlLmNhY2hlZEltYWdlQnVmZmVyKHsgaWRl
bnRpZmllciwgbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLT53ZWJQcm9jZXNzSWRlbnRpZmll
cigpIH0pOwogICAgICAgICBpZiAoaW1hZ2VCdWZmZXIpIHsKLSAgICAgICAgICAgIGlmICghbWFr
ZVZvbGF0aWxlKCppbWFnZUJ1ZmZlcikpCi0gICAgICAgICAgICAgICAgaW5Vc2VCdWZmZXJJZGVu
dGlmaWVycy5hcHBlbmQoaWRlbnRpZmllcik7CisgICAgICAgICAgICBpZiAobWFrZVZvbGF0aWxl
KCppbWFnZUJ1ZmZlcikpCisgICAgICAgICAgICAgICAgbWFya2VkVm9sYXRpbGVCdWZmZXJJZGVu
dGlmaWVycy5hcHBlbmQoaWRlbnRpZmllcik7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAg
TE9HX1dJVEhfU1RSRUFNKFJlbW90ZVJlbmRlcmluZ0J1ZmZlclZvbGF0aWxpdHksIHN0cmVhbSA8
PCAiIGZhaWxlZCB0byBmaW5kIEltYWdlQnVmZmVyIGZvciBpZGVudGlmaWVyICIgPDwgaWRlbnRp
Zmllcik7CiAgICAgfQogCi0gICAgTE9HX1dJVEhfU1RSRUFNKFJlbW90ZVJlbmRlcmluZ0J1ZmZl
clZvbGF0aWxpdHksIHN0cmVhbSA8PCAiR1BVIFByb2Nlc3M6IG1hcmtTdXJmYWNlc1ZvbGF0aWxl
IC0gaW4tdXNlIHN1cmZhY2VzICIgPDwgaW5Vc2VCdWZmZXJJZGVudGlmaWVycyk7CisgICAgTE9H
X1dJVEhfU1RSRUFNKFJlbW90ZVJlbmRlcmluZ0J1ZmZlclZvbGF0aWxpdHksIHN0cmVhbSA8PCAi
R1BVIFByb2Nlc3M6IG1hcmtTdXJmYWNlc1ZvbGF0aWxlIC0gc3VyZmFjZXMgbWFya2VkIHZvbGF0
aWxlICIgPDwgbWFya2VkVm9sYXRpbGVCdWZmZXJJZGVudGlmaWVycyk7CiAKLSAgICBjb21wbGV0
aW9uSGFuZGxlcihpblVzZUJ1ZmZlcklkZW50aWZpZXJzKTsKKyAgICBjb21wbGV0aW9uSGFuZGxl
cihtYXJrZWRWb2xhdGlsZUJ1ZmZlcklkZW50aWZpZXJzKTsKIH0KIAogdm9pZCBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kOjpmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZShSZW5kZXJpbmdVcGRhdGVJRCBy
ZW5kZXJpbmdVcGRhdGVJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCmluZGV4IDgzMmJlODlkZWVmNGY3
OWEwNGY1NTE5M2E2Njk3Mzk0MDYyZDc5NjAuLjU3MzBjZDcxNWU4YjQ2ZDc0NjdlNDkyZGVlZDZm
ZTdiOTExMTc3OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaApAQCAtMTE4LDcgKzExOCw3IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBkZWxldGVBbGxGb250cygpOwogICAgIHZvaWQgcmVsZWFzZVJlbW90
ZVJlc291cmNlKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAgICAgdm9p
ZCBmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZShSZW5kZXJpbmdVcGRhdGVJRCk7Ci0gICAgdm9pZCBt
YXJrU3VyZmFjZXNWb2xhdGlsZShjb25zdCBWZWN0b3I8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyPiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVjdG9yPFdlYkNv
cmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4mIGluVXNlQnVmZmVySWRlbnRpZmllcnMp
PiYmKTsKKyAgICB2b2lkIG1hcmtTdXJmYWNlc1ZvbGF0aWxlKGNvbnN0IFZlY3RvcjxXZWJDb3Jl
OjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChj
b25zdCBWZWN0b3I8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiYgbWFya2Vk
Vm9sYXRpbGVCdWZmZXJJZGVudGlmaWVycyk+JiYpOwogCiAgICAgdm9pZCBtYXJrU3VyZmFjZU5v
blZvbGF0aWxlKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZT4sIGJv
b2wgYnVmZmVyV2FzRW1wdHkpPiYmKTsKICAgICB2b2lkIHN3YXBUb1ZhbGlkRnJvbnRCdWZmZXIo
Y29uc3QgQnVmZmVySWRlbnRpZmllclNldCYgYnVmZmVyU2V0LCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGNvbnN0IEJ1ZmZlcklkZW50aWZpZXJTZXQmIHN3YXBwZWRCdWZmZXJTZXQsIHN0ZDo6b3B0
aW9uYWw8SW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlPiYmIGZyb250QnVmZmVySGFuZGxlLCBib29s
IGZyb250QnVmZmVyV2FzRW1wdHkpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVz
c2FnZXMuaW4KaW5kZXggZDM1OWNhYTEzMGQ1YTBjMzY4MzYzNTNhYmIyOGJlNGVkZGQ4NmI5NC4u
OTdlNTk1YWQzNzM3YjQ2NjhmMGM2NzE0NzZlNzQwN2JkZDlhOTM4ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4KQEAgLTQwLDcgKzQwLDcgQEAgbWVzc2FnZXMgLT4g
UmVtb3RlUmVuZGVyaW5nQmFja2VuZCBOb3RSZWZDb3VudGVkIFN0cmVhbSB7CiAgICAgTWFya1N1
cmZhY2VOb25Wb2xhdGlsZShXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJLaXQ6OkltYWdl
QnVmZmVyQmFja2VuZEhhbmRsZT4gYmFja2VuZEhhbmRsZSwgYm9vbCBidWZmZXJXYXNFbXB0eSkg
U3luY2hyb25vdXMgTm90U3RyZWFtRW5jb2RhYmxlIE5vdFN0cmVhbUVuY29kYWJsZVJlcGx5CiAg
ICAgU3dhcFRvVmFsaWRGcm9udEJ1ZmZlcihzdHJ1Y3QgV2ViS2l0OjpCdWZmZXJJZGVudGlmaWVy
U2V0IGJ1ZmZlclNldCkgLT4gKHN0cnVjdCBXZWJLaXQ6OkJ1ZmZlcklkZW50aWZpZXJTZXQgc3dh
cHBlZEJ1ZmZlclNldCwgc3RkOjpvcHRpb25hbDxXZWJLaXQ6OkltYWdlQnVmZmVyQmFja2VuZEhh
bmRsZT4gZnJvbnRCdWZmZXJIYW5kbGUsIGJvb2wgZnJvbnRCdWZmZXJXYXNFbXB0eSkgU3luY2hy
b25vdXMgTm90U3RyZWFtRW5jb2RhYmxlIE5vdFN0cmVhbUVuY29kYWJsZVJlcGx5CiAKLSAgICBN
YXJrU3VyZmFjZXNWb2xhdGlsZShWZWN0b3I8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyPiByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXJzKSAtPiAoVmVjdG9yPFdlYkNvcmU6
OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gaW5Vc2VCdWZmZXJJZGVudGlmaWVycykgU3lu
Y2hyb25vdXMKKyAgICBNYXJrU3VyZmFjZXNWb2xhdGlsZShWZWN0b3I8V2ViQ29yZTo6UmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyPiByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXJzKSAtPiAo
VmVjdG9yPFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gbWFya2VkVm9sYXRp
bGVCdWZmZXJJZGVudGlmaWVycykgU3luY2hyb25vdXMKIAogICAgIEZpbmFsaXplUmVuZGVyaW5n
VXBkYXRlKFdlYktpdDo6UmVuZGVyaW5nVXBkYXRlSUQgcmVuZGVyaW5nVXBkYXRlSUQpCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5
ZXJCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVMYXllckJhY2tpbmdTdG9yZS5oCmluZGV4IDEyOWE4ZWE2Y2QyMWFmN2E3YjM4NzgwM2Ew
YmUyYmYxODllZjkwMDguLjM2NjBlYzQ4MDE2MGU5OGYxOTBjNWM2NWQwMGJiNGY2Mjk0MTA0MjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVM
YXllckJhY2tpbmdTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5oCkBAIC0xMjQsMTAgKzEyNCw2IEBAIHByaXZh
dGU6CiAjaWYgRU5BQkxFKENHX0RJU1BMQVlfTElTVF9CQUNLRURfSU1BR0VfQlVGRkVSKQogICAg
ICAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+IGRpc3BsYXlMaXN0SW1hZ2VCdWZmZXI7
CiAjZW5kaWYKLSAgICAgICAgLy8gRklYTUU6IFRoaXMgZmxhZyBuZWVkcyB0byBiZSBwYXJ0IG9m
IEltYWdlQnVmZmVyW0JhY2tlbmRdLiBDdXJyZW50bHkgaXQncyBub3QgY29ycmVjdGx5IG1haW50
YWluZWQKLSAgICAgICAgLy8gaW4gdGhlIEdQVSBQcm9jZXNzIGNvZGUgcGF0aC4KLSAgICAgICAg
Ym9vbCBpc1ZvbGF0aWxlID0gZmFsc2U7Ci0KICAgICAgICAgZXhwbGljaXQgb3BlcmF0b3IgYm9v
bCgpIGNvbnN0CiAgICAgICAgIHsKICAgICAgICAgICAgIHJldHVybiAhIWltYWdlQnVmZmVyOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxh
eWVyQmFja2luZ1N0b3JlLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tCmluZGV4IDUwYjlmOTQ1OTBjNTg0ZTRkNWY3MGU0
MjZhOWZiYzFmMDIxYzE3ZWYuLjFjYTY5ZDc1ZWM5ZmViZjk5YjA5NzRlOGQ4NmYyZjM2YzU3YzYy
ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVMYXllckJhY2tpbmdTdG9yZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVM
YXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0KQEAgLTI0Niw4ICsyNDYsNiBAQCB2
b2lkIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjphcHBseVN3YXBwZWRCdWZmZXJzKFJlZlB0cjxX
ZWJDb3JlOjpJbWFnZUJ1ZmZlcj4mJgogICAgIG1fYmFja0J1ZmZlci5pbWFnZUJ1ZmZlciA9IFdU
Rk1vdmUoYmFjayk7CiAgICAgbV9zZWNvbmRhcnlCYWNrQnVmZmVyLmltYWdlQnVmZmVyID0gV1RG
TW92ZShzZWNvbmRhcnlCYWNrKTsKIAotICAgIG1fZnJvbnRCdWZmZXIuaXNWb2xhdGlsZSA9IGZh
bHNlOwotCiAgICAgaWYgKGZyb250QnVmZmVyTmVlZHNEaXNwbGF5KQogICAgICAgICBzZXROZWVk
c0Rpc3BsYXkoKTsKIH0KQEAgLTUzMSwxNSArNTI5LDExIEBAIFZlY3RvcjxzdGQ6OnVuaXF1ZV9w
dHI8V2ViQ29yZTo6VGhyZWFkU2FmZUltYWdlQnVmZmVyRmx1c2hlcj4+IFJlbW90ZUxheWVyQmFj
a2luCiAKIGJvb2wgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OnNldEJ1ZmZlclZvbGF0aWxlKEJ1
ZmZlciYgYnVmZmVyKQogewotICAgIGlmICghYnVmZmVyLmltYWdlQnVmZmVyIHx8IGJ1ZmZlci5p
c1ZvbGF0aWxlKQorICAgIGlmICghYnVmZmVyLmltYWdlQnVmZmVyIHx8IGJ1ZmZlci5pbWFnZUJ1
ZmZlci0+dm9sYXRpbGl0eVN0YXRlKCkgPT0gV2ViQ29yZTo6Vm9sYXRpbGl0eVN0YXRlOjpWb2xh
dGlsZSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBidWZmZXIuaW1hZ2VCdWZmZXItPnJl
bGVhc2VHcmFwaGljc0NvbnRleHQoKTsKLSAgICBpZiAoYnVmZmVyLmltYWdlQnVmZmVyLT5zZXRW
b2xhdGlsZSgpKSB7Ci0gICAgICAgIGJ1ZmZlci5pc1ZvbGF0aWxlID0gdHJ1ZTsKLSAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgfQotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gYnVmZmVy
LmltYWdlQnVmZmVyLT5zZXRWb2xhdGlsZSgpOwogfQogCiBXZWJDb3JlOjpTZXROb25Wb2xhdGls
ZVJlc3VsdCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6c2V0QnVmZmVyTm9uVm9sYXRpbGUoQnVm
ZmVyJiBidWZmZXIpCkBAIC01NDksMTAgKzU0Myw5IEBAIFdlYkNvcmU6OlNldE5vblZvbGF0aWxl
UmVzdWx0IFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpzZXRCdWZmZXJOb25Wb2xhdGlsZShCdWZm
CiAgICAgaWYgKCFidWZmZXIuaW1hZ2VCdWZmZXIpCiAgICAgICAgIHJldHVybiBXZWJDb3JlOjpT
ZXROb25Wb2xhdGlsZVJlc3VsdDo6VmFsaWQ7IC8vIE5vdCByZWFsbHkgdmFsaWQgYnV0IHRoZSBj
YWxsZXIgb25seSBjaGVja2VkIHRoZSBFbXB0eSBzdGF0ZS4KIAotICAgIGlmICghYnVmZmVyLmlz
Vm9sYXRpbGUpCisgICAgaWYgKGJ1ZmZlci5pbWFnZUJ1ZmZlci0+dm9sYXRpbGl0eVN0YXRlKCkg
PT0gV2ViQ29yZTo6Vm9sYXRpbGl0eVN0YXRlOjpOb25Wb2xhdGlsZSkKICAgICAgICAgcmV0dXJu
IFdlYkNvcmU6OlNldE5vblZvbGF0aWxlUmVzdWx0OjpWYWxpZDsKIAotICAgIGJ1ZmZlci5pc1Zv
bGF0aWxlID0gZmFsc2U7CiAgICAgcmV0dXJuIGJ1ZmZlci5pbWFnZUJ1ZmZlci0+c2V0Tm9uVm9s
YXRpbGUoKTsKIH0KIApAQCAtNTc2LDcgKzU2OSw2IEBAIHZvaWQgUmVtb3RlTGF5ZXJCYWNraW5n
U3RvcmU6OndpbGxNYWtlQnVmZmVyVm9sYXRpbGUoQnVmZmVyVHlwZSBidWZmZXJUeXBlKQogCiB2
b2lkIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpkaWRNYWtlRnJvbnRCdWZmZXJOb25Wb2xhdGls
ZShXZWJDb3JlOjpTZXROb25Wb2xhdGlsZVJlc3VsdCByZXN1bHQpCiB7Ci0gICAgbV9mcm9udEJ1
ZmZlci5pc1ZvbGF0aWxlID0gZmFsc2U7CiAgICAgaWYgKHJlc3VsdCA9PSBXZWJDb3JlOjpTZXRO
b25Wb2xhdGlsZVJlc3VsdDo6RW1wdHkpCiAgICAgICAgIHNldE5lZWRzRGlzcGxheSgpOwogfQpA
QCAtNjI3LDcgKzYxOSw2IEBAIFJlZlB0cjxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4gUmVtb3RlTGF5
ZXJCYWNraW5nU3RvcmU6OmJ1ZmZlckZvclR5cGUoQnVmZmVyVHlwZSBiCiAKIHZvaWQgUmVtb3Rl
TGF5ZXJCYWNraW5nU3RvcmU6OkJ1ZmZlcjo6ZGlzY2FyZCgpCiB7Ci0gICAgaXNWb2xhdGlsZSA9
IGZhbHNlOwogICAgIGlmIChpbWFnZUJ1ZmZlcikKICAgICAgICAgaW1hZ2VCdWZmZXItPnJlbGVh
c2VCdWZmZXJUb1Bvb2woKTsKICAgICBpbWFnZUJ1ZmZlciA9IG51bGxwdHI7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJXaXRoUmVt
b3RlUmVuZGVyaW5nQmFja2luZ1N0b3JlQ29sbGVjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllcldpdGhSZW1vdGVSZW5kZXJpbmdCYWNraW5n
U3RvcmVDb2xsZWN0aW9uLm1tCmluZGV4IGQxNjM3MGI4ZGM1ZjQ1NmE4YTlmM2ZmZGJjNTU0Nzk1
ZjAxYTk1MGIuLmRlNWM3NjE3NzI3ZWVmMDYxYzU0NjE3ODkwZjBmNDFhMmE5ZWI4YmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllcldp
dGhSZW1vdGVSZW5kZXJpbmdCYWNraW5nU3RvcmVDb2xsZWN0aW9uLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllcldpdGhSZW1vdGVSZW5kZXJp
bmdCYWNraW5nU3RvcmVDb2xsZWN0aW9uLm1tCkBAIC0zNiw2ICszNiw4IEBAIG5hbWVzcGFjZSBX
ZWJLaXQgewogUmVtb3RlTGF5ZXJXaXRoUmVtb3RlUmVuZGVyaW5nQmFja2luZ1N0b3JlQ29sbGVj
dGlvbjo6UmVtb3RlTGF5ZXJXaXRoUmVtb3RlUmVuZGVyaW5nQmFja2luZ1N0b3JlQ29sbGVjdGlv
bihSZW1vdGVMYXllclRyZWVDb250ZXh0JiBsYXllclRyZWVDb250ZXh0KQogICAgIDogUmVtb3Rl
TGF5ZXJCYWNraW5nU3RvcmVDb2xsZWN0aW9uKGxheWVyVHJlZUNvbnRleHQpCiB7CisgICAgV2Vi
S2l0MkxvZ1JlbW90ZUxheWVyVHJlZS5zdGF0ZSA9IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T247Cisg
ICAgV2ViS2l0MkxvZ1JlbW90ZVJlbmRlcmluZ0J1ZmZlclZvbGF0aWxpdHkuc3RhdGUgPSBXVEZM
b2dDaGFubmVsU3RhdGU6Ok9uOwogfQogCiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkmIFJl
bW90ZUxheWVyV2l0aFJlbW90ZVJlbmRlcmluZ0JhY2tpbmdTdG9yZUNvbGxlY3Rpb246OnJlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSgpCkBAIC00NSwxMSArNDcsMjUgQEAgUmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5JiBSZW1vdGVMYXllcldpdGhSZW1vdGVSZW5kZXJpbmdCYWNraW5nU3Rv
cmVDb2xsZWN0aW8KIAogdm9pZCBSZW1vdGVMYXllcldpdGhSZW1vdGVSZW5kZXJpbmdCYWNraW5n
U3RvcmVDb2xsZWN0aW9uOjptYWtlRnJvbnRCdWZmZXJOb25Wb2xhdGlsZShSZW1vdGVMYXllckJh
Y2tpbmdTdG9yZSYgYmFja2luZ1N0b3JlKQogewotICAgIGF1dG8mIHJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQgPSBsYXllclRyZWVDb250ZXh0KCkuZW5zdXJlUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5KCk7CiAgICAgYXV0byBmcm9udEJ1ZmZlciA9IGJhY2tpbmdTdG9yZS5idWZmZXJGb3JUeXBl
KFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpCdWZmZXJUeXBlOjpGcm9udCk7CiAgICAgaWYgKCFm
cm9udEJ1ZmZlcikKICAgICAgICAgcmV0dXJuOwogCisgICAgYXV0byBoYXNCYWNrZW5kSGFuZGxl
ID0gW10oY29uc3QgV2ViQ29yZTo6SW1hZ2VCdWZmZXImIGJ1ZmZlcikgeworICAgICAgICBpZiAo
YXV0byogYmFja2VuZCA9IGJ1ZmZlci5lbnN1cmVCYWNrZW5kQ3JlYXRlZCgpKSB7CisgICAgICAg
ICAgICBhdXRvKiBzaGFyaW5nID0gYmFja2VuZC0+dG9CYWNrZW5kU2hhcmluZygpOworICAgICAg
ICAgICAgaWYgKGlzPEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZVNoYXJpbmc+KHNoYXJpbmcpKQor
ICAgICAgICAgICAgICAgIHJldHVybiBkb3duY2FzdDxJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGVT
aGFyaW5nPigqc2hhcmluZykuaGFzQmFja2VuZEhhbmRsZSgpOworICAgICAgICB9CisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICB9OworCisgICAgTE9HX1dJVEhfU1RSRUFNKFJlbW90ZVJlbmRl
cmluZ0J1ZmZlclZvbGF0aWxpdHksIHN0cmVhbSA8PCAiUmVtb3RlTGF5ZXJXaXRoUmVtb3RlUmVu
ZGVyaW5nQmFja2luZ1N0b3JlQ29sbGVjdGlvbjo6bWFrZUZyb250QnVmZmVyTm9uVm9sYXRpbGUg
LSBmcm9udCBidWZmZXIgIiA8PCBmcm9udEJ1ZmZlci0+cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyKCkgPDwgIiBpcyBub24gdm9sYXRpbGUgIiA8PCAoZnJvbnRCdWZmZXItPnZvbGF0aWxpdHlT
dGF0ZSgpID09IFdlYkNvcmU6OlZvbGF0aWxpdHlTdGF0ZTo6Tm9uVm9sYXRpbGUpKTsKKworICAg
IGlmIChmcm9udEJ1ZmZlci0+dm9sYXRpbGl0eVN0YXRlKCkgPT0gV2ViQ29yZTo6Vm9sYXRpbGl0
eVN0YXRlOjpOb25Wb2xhdGlsZSAmJiBoYXNCYWNrZW5kSGFuZGxlKCpmcm9udEJ1ZmZlcikpCisg
ICAgICAgIHJldHVybjsKKworICAgIGF1dG8mIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQgPSBsYXll
clRyZWVDb250ZXh0KCkuZW5zdXJlUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KCk7CiAgICAg
YXV0byByZXN1bHQgPSByZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1hcmtTdXJmYWNlTm9uVm9sYXRp
bGUoZnJvbnRCdWZmZXItPnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpKTsKICAgICBiYWNr
aW5nU3RvcmUuZGlkTWFrZUZyb250QnVmZmVyTm9uVm9sYXRpbGUocmVzdWx0KTsKIH0KQEAgLTc3
LDEyICs5MywxNCBAQCBib29sIFJlbW90ZUxheWVyV2l0aFJlbW90ZVJlbmRlcmluZ0JhY2tpbmdT
dG9yZUNvbGxlY3Rpb246OmNvbGxlY3RCYWNraW5nU3RvcmVCdQogewogICAgIEFTU0VSVCghbV9p
bkxheWVyRmx1c2gpOwogCi0gICAgLy8gRklYTUU6IFRoaXMgZG9lc24ndCBjb25zdWx0IFJlbW90
ZUxheWVyQmFja2luZ1N0b3JlOjpCdWZmZXI6OmlzVm9sYXRpbGUsIHNvIHdlIG1heSByZWR1bmRh
bnRseSByZXF1ZXN0IHZvbGF0aWxpdHkuCiAgICAgYXV0byBjb2xsZWN0QnVmZmVyID0gWyZdKFJl
bW90ZUxheWVyQmFja2luZ1N0b3JlOjpCdWZmZXJUeXBlIGJ1ZmZlclR5cGUpIHsKICAgICAgICAg
YXV0byBidWZmZXIgPSBiYWNraW5nU3RvcmUuYnVmZmVyRm9yVHlwZShidWZmZXJUeXBlKTsKICAg
ICAgICAgaWYgKCFidWZmZXIpCiAgICAgICAgICAgICByZXR1cm47CiAKKyAgICAgICAgaWYgKGJ1
ZmZlci0+dm9sYXRpbGl0eVN0YXRlKCkgIT0gV2ViQ29yZTo6Vm9sYXRpbGl0eVN0YXRlOjpOb25W
b2xhdGlsZSkKKyAgICAgICAgICAgIHJldHVybjsKKwogICAgICAgICBiYWNraW5nU3RvcmUud2ls
bE1ha2VCdWZmZXJWb2xhdGlsZShidWZmZXJUeXBlKTsKICAgICAgICAgaWRlbnRpZmllcnMuYXBw
ZW5kKGJ1ZmZlci0+cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCkpOwogICAgIH07CkBAIC0x
NzgsMTQgKzE5NiwxMCBAQCB2b2lkIFJlbW90ZUxheWVyV2l0aFJlbW90ZVJlbmRlcmluZ0JhY2tp
bmdTdG9yZUNvbGxlY3Rpb246OnNlbmRNYXJrQnVmZmVyc1ZvbGF0aQogewogICAgIGF1dG8mIHJl
bW90ZVJlbmRlcmluZ0JhY2tlbmQgPSBtX2xheWVyVHJlZUNvbnRleHQuZW5zdXJlUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5KCk7CiAgICAgCi0gICAgVmVjdG9yPFdlYkNvcmU6OlJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcj4gaW5Vc2VCdWZmZXJJZGVudGlmaWVyczsKLSAgICByZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kLm1hcmtTdXJmYWNlc1ZvbGF0aWxlKFdURk1vdmUoaWRlbnRpZmllcnMp
LCBbJmluVXNlQnVmZmVySWRlbnRpZmllcnNdKFZlY3RvcjxXZWJDb3JlOjpSZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXI+JiYgaW5Vc2VCdWZmZXJzKSB7Ci0gICAgICAgIGluVXNlQnVmZmVySWRl
bnRpZmllcnMgPSBXVEZNb3ZlKGluVXNlQnVmZmVycyk7CisgICAgcmVtb3RlUmVuZGVyaW5nQmFj
a2VuZC5tYXJrU3VyZmFjZXNWb2xhdGlsZShXVEZNb3ZlKGlkZW50aWZpZXJzKSwgW2NvbXBsZXRp
b25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGJvb2wgbWFya2VkQWxsVm9s
YXRpbGUpIG11dGFibGUgeworICAgICAgICBMT0dfV0lUSF9TVFJFQU0oUmVtb3RlUmVuZGVyaW5n
QnVmZmVyVm9sYXRpbGl0eSwgc3RyZWFtIDw8ICJSZW1vdGVMYXllcldpdGhSZW1vdGVSZW5kZXJp
bmdCYWNraW5nU3RvcmVDb2xsZWN0aW9uOjpzZW5kTWFya0J1ZmZlcnNWb2xhdGlsZTogbWFya2Vk
IGFsbCB2b2xhdGlsZSAiIDw8IG1hcmtlZEFsbFZvbGF0aWxlKTsKKyAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIobWFya2VkQWxsVm9sYXRpbGUpOwogICAgIH0pOwotCi0gICAgTE9HX1dJVEhfU1RS
RUFNKFJlbW90ZVJlbmRlcmluZ0J1ZmZlclZvbGF0aWxpdHksIHN0cmVhbSA8PCAiUmVtb3RlTGF5
ZXJXaXRoUmVtb3RlUmVuZGVyaW5nQmFja2luZ1N0b3JlQ29sbGVjdGlvbjo6c2VuZE1hcmtCdWZm
ZXJzVm9sYXRpbGU6ICIgPDwgaW5Vc2VCdWZmZXJJZGVudGlmaWVycy5zaXplKCkgPDwgIiBidWZm
ZXJzIHN0aWxsIGluLXVzZSIpOwotICAgIC8vIEZJWE1FOiBpblVzZUJ1ZmZlcklkZW50aWZpZXJz
IHdpbGwgYmUgdXNlZCB0byBtYXAgYmFjayB0byBhbiBJbWFnZUJ1ZmZlciBhbmQgbWFpbnRhaW4g
aXRzICJpc1ZvbGF0aWxlIiBmbGFnLgotICAgIGNvbXBsZXRpb25IYW5kbGVyKGluVXNlQnVmZmVy
SWRlbnRpZmllcnMuaXNFbXB0eSgpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVy
QmFja2VuZEhhbmRsZVNoYXJpbmcuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlU2hhcmluZy5oCmluZGV4IGY1N2FmMTkyNDM0
NWE1NjYzYWY1NzBmNDQzM2YyZWViNjc4ZGVjNTUuLjU4MDIyOGFmODVmNzUzZTU4YmRmNWVmYzFk
MDdkMWE2YWYwMzYzZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlU2hhcmluZy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlU2hh
cmluZy5oCkBAIC0zNyw2ICszNyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEltYWdlQnVmZmVy
QmFja2VuZEhhbmRsZSBjcmVhdGVCYWNrZW5kSGFuZGxlKCkgY29uc3QgPSAwOwogCiAgICAgdmly
dHVhbCB2b2lkIHNldEJhY2tlbmRIYW5kbGUoSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlJiYpIHsg
fQorICAgIHZpcnR1YWwgYm9vbCBoYXNCYWNrZW5kSGFuZGxlKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJCYWNrZW5kSGFuZGxlKCkgeyB9CiAKIHByaXZh
dGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKaW5kZXggMTY2ZThk
NzYzOTE1ZTRhNjA5MDQ2MDY2YTBlN2QyMjc5YjM2ZDhjMi4uMDJkMzExNWUxOWUyNDVmNGM1NDU0
NWI3ZDZjYTMyM2E4OTBhOTBlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5LmNwcApAQCAtMzA0LDcgKzMwNCw5IEBAIGF1dG8gUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5Ojpzd2FwVG9WYWxpZEZyb250QnVmZmVyKGNvbnN0IEJ1ZmZlclNldCYgYnVmZmVyCiAgICAg
c2VuZFN5bmNUb1N0cmVhbShNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6U3dhcFRv
VmFsaWRGcm9udEJ1ZmZlcihidWZmZXJTZXQpLAogICAgICAgICBNZXNzYWdlczo6UmVtb3RlUmVu
ZGVyaW5nQmFja2VuZDo6U3dhcFRvVmFsaWRGcm9udEJ1ZmZlcjo6UmVwbHkoc3dhcHBlZEJ1ZmZl
clNldCwgZnJvbnRCdWZmZXJIYW5kbGUsIGZyb250QnVmZmVyV2FzRW1wdHkpKTsKIAotICAgIGF1
dG8gZmV0Y2hCdWZmZXJXaXRoSWRlbnRpZmllciA9IFsmXShzdGQ6Om9wdGlvbmFsPFJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcj4gaWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxJbWFnZUJ1ZmZl
ckJhY2tlbmRIYW5kbGU+JiYgaGFuZGxlID0gc3RkOjpudWxsb3B0KSAtPiBSZWZQdHI8SW1hZ2VC
dWZmZXI+IHsKKyAgICBBTFdBWVNfTE9HX1dJVEhfU1RSRUFNKHN0cmVhbSA8PCAiUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5Ojpzd2FwVG9WYWxpZEZyb250QnVmZmVyIHN3YXBwZWQgdG8gIiA8
PCBzd2FwcGVkQnVmZmVyU2V0LmZyb250IDw8ICIgIiA8PCBzd2FwcGVkQnVmZmVyU2V0LmJhY2sg
PDwgIiAiIDw8IHN3YXBwZWRCdWZmZXJTZXQuc2Vjb25kYXJ5QmFjayk7CisKKyAgICBhdXRvIGZl
dGNoQnVmZmVyV2l0aElkZW50aWZpZXIgPSBbJl0oc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXI+IGlkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8SW1hZ2VCdWZmZXJCYWNr
ZW5kSGFuZGxlPiYmIGhhbmRsZSA9IHN0ZDo6bnVsbG9wdCwgYm9vbCBpc0Zyb250QnVmZmVyID0g
ZmFsc2UpIC0+IFJlZlB0cjxJbWFnZUJ1ZmZlcj4gewogICAgICAgICBpZiAoIWlkZW50aWZpZXIp
CiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApAQCAtMzE5LDEzICszMjEsMTggQEAgYXV0
byBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnN3YXBUb1ZhbGlkRnJvbnRCdWZmZXIoY29u
c3QgQnVmZmVyU2V0JiBidWZmZXIKICAgICAgICAgICAgICAgICAgICAgZG93bmNhc3Q8SW1hZ2VC
dWZmZXJCYWNrZW5kSGFuZGxlU2hhcmluZz4oKnNoYXJpbmcpLnNldEJhY2tlbmRIYW5kbGUoV1RG
TW92ZSgqaGFuZGxlKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KKyAgICAgICAgCisgICAg
ICAgIGlmIChpc0Zyb250QnVmZmVyKSB7CisgICAgICAgICAgICAvLyBXZSBrbm93IHRoZSBHUFUg
UHJvY2VzcyBhbHdheXMgc2V0cyB0aGUgbmV3IGZyb250IGJ1ZmZlciB0byBiZSBub24tdm9sYXRp
bGUuCisgICAgICAgICAgICBidWZmZXItPnNldFZvbGF0aWxpdHlTdGF0ZShWb2xhdGlsaXR5U3Rh
dGU6Ok5vblZvbGF0aWxlKTsKKyAgICAgICAgfQogCiAgICAgICAgIHJldHVybiBidWZmZXI7CiAg
ICAgfTsKIAogICAgIHJldHVybiB7CiAgICAgICAgIHsKLSAgICAgICAgICAgIGZldGNoQnVmZmVy
V2l0aElkZW50aWZpZXIoc3dhcHBlZEJ1ZmZlclNldC5mcm9udCwgV1RGTW92ZShmcm9udEJ1ZmZl
ckhhbmRsZSkpLAorICAgICAgICAgICAgZmV0Y2hCdWZmZXJXaXRoSWRlbnRpZmllcihzd2FwcGVk
QnVmZmVyU2V0LmZyb250LCBXVEZNb3ZlKGZyb250QnVmZmVySGFuZGxlKSwgdHJ1ZSksCiAgICAg
ICAgICAgICBmZXRjaEJ1ZmZlcldpdGhJZGVudGlmaWVyKHN3YXBwZWRCdWZmZXJTZXQuYmFjayks
CiAgICAgICAgICAgICBmZXRjaEJ1ZmZlcldpdGhJZGVudGlmaWVyKHN3YXBwZWRCdWZmZXJTZXQu
c2Vjb25kYXJ5QmFjaykKICAgICAgICAgfSwKQEAgLTM0OCwxOCArMzU1LDI3IEBAIFNldE5vblZv
bGF0aWxlUmVzdWx0IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6bWFya1N1cmZhY2VOb25W
b2xhdGlsZShSZW5kZXJpCiAgICAgICAgICAgICBpZiAoaXM8SW1hZ2VCdWZmZXJCYWNrZW5kSGFu
ZGxlU2hhcmluZz4oc2hhcmluZykpCiAgICAgICAgICAgICAgICAgZG93bmNhc3Q8SW1hZ2VCdWZm
ZXJCYWNrZW5kSGFuZGxlU2hhcmluZz4oKnNoYXJpbmcpLnNldEJhY2tlbmRIYW5kbGUoV1RGTW92
ZSgqYmFja2VuZEhhbmRsZSkpOwogICAgICAgICB9CisKKyAgICAgICAgYnVmZmVyLT5zZXRWb2xh
dGlsaXR5U3RhdGUoVm9sYXRpbGl0eVN0YXRlOjpOb25Wb2xhdGlsZSk7CiAgICAgfQogCiAgICAg
cmV0dXJuIGJ1ZmZlcldhc0VtcHR5ID8gU2V0Tm9uVm9sYXRpbGVSZXN1bHQ6OkVtcHR5IDogU2V0
Tm9uVm9sYXRpbGVSZXN1bHQ6OlZhbGlkOwogfQogCi12b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eTo6bWFya1N1cmZhY2VzVm9sYXRpbGUoVmVjdG9yPFdlYkNvcmU6OlJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllcj4mJiBpZGVudGlmaWVycywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChW
ZWN0b3I8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiYmKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjptYXJrU3VyZmFj
ZXNWb2xhdGlsZShWZWN0b3I8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiYm
IGlkZW50aWZpZXJzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQogewotICAgIFZlY3RvcjxXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXI+IGluVXNlQnVmZmVySWRlbnRpZmllcnM7Ci0gICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJl
Y29tZSBhc3luYyB3aGVuIHdlYmtpdC5vcmcvYi8yMzU5NjUgaXMgZml4ZWQuCi0gICAgc2VuZFN5
bmNUb1N0cmVhbShNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6TWFya1N1cmZhY2Vz
Vm9sYXRpbGUoaWRlbnRpZmllcnMpLCBNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6
TWFya1N1cmZhY2VzVm9sYXRpbGU6OlJlcGx5KGluVXNlQnVmZmVySWRlbnRpZmllcnMpKTsKKyAg
ICBWZWN0b3I8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiBtYXJrZWRWb2xh
dGlsZUJ1ZmZlcklkZW50aWZpZXJzOworICAgIC8vIEZJWE1FOiBUaGlzIGNvdWxkIGJlY29tZSBh
c3luYyB3aGVuIHdlYmtpdC5vcmcvYi8yMzU5NjUgaXMgZml4ZWQgKGJ1dCBiZSBjYXJlZnVsIHdp
dGggYnVmZmVyIHZvbGF0aWxpdHkgc3RhdGUpLgorICAgIHNlbmRTeW5jVG9TdHJlYW0oTWVzc2Fn
ZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6Ok1hcmtTdXJmYWNlc1ZvbGF0aWxlKGlkZW50aWZp
ZXJzKSwgTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6Ok1hcmtTdXJmYWNlc1ZvbGF0
aWxlOjpSZXBseShtYXJrZWRWb2xhdGlsZUJ1ZmZlcklkZW50aWZpZXJzKSk7CiAKLSAgICBjb21w
bGV0aW9uSGFuZGxlcihXVEZNb3ZlKGluVXNlQnVmZmVySWRlbnRpZmllcnMpKTsKKyAgICBmb3Ig
KGF1dG8gaWRlbnRpZmllciA6IG1hcmtlZFZvbGF0aWxlQnVmZmVySWRlbnRpZmllcnMpIHsKKyAg
ICAgICAgYXV0byBpbWFnZUJ1ZmZlciA9IG1fcmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNhY2hl
ZEltYWdlQnVmZmVyKGlkZW50aWZpZXIpOworICAgICAgICBpZiAoaW1hZ2VCdWZmZXIpCisgICAg
ICAgICAgICBpbWFnZUJ1ZmZlci0+c2V0Vm9sYXRpbGl0eVN0YXRlKFdlYkNvcmU6OlZvbGF0aWxp
dHlTdGF0ZTo6Vm9sYXRpbGUpOworICAgIH0KKyAgICAKKyAgICBib29sIG1hcmtlZEFsbFZvbGF0
aWxlID0gaWRlbnRpZmllcnMuc2l6ZSgpID09IG1hcmtlZFZvbGF0aWxlQnVmZmVySWRlbnRpZmll
cnMuc2l6ZSgpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKG1hcmtlZEFsbFZvbGF0aWxlKTsKIH0K
IAogdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmZpbmFsaXplUmVuZGVyaW5nVXBk
YXRlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oCmluZGV4IGE1OWEwMGE1
MWQzZGQzN2E1NWRjM2VlNzFmYmJmNTNhMzIzNWZkMDIuLmZiODc3MWQwMmMwMTlhZjhkYTg3ZTU1
NTkxNGFlMzUyNThmNTA1ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHku
aApAQCAtOTMsNyArOTMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjYWNoZUZvbnQoUmVmPFdlYkNv
cmU6OkZvbnQ+JiYpOwogICAgIHZvaWQgZGVsZXRlQWxsRm9udHMoKTsKICAgICB2b2lkIHJlbGVh
c2VSZW1vdGVSZXNvdXJjZShXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwot
ICAgIHZvaWQgbWFya1N1cmZhY2VzVm9sYXRpbGUoVmVjdG9yPFdlYkNvcmU6OlJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllcj4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29y
ZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiYmIGluVXNlQnVmZmVySWRlbnRpZmllcnMp
PiYmKTsKKyAgICB2b2lkIG1hcmtTdXJmYWNlc1ZvbGF0aWxlKFZlY3RvcjxXZWJDb3JlOjpSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBt
YWRlQWxsVm9sYXRpbGUpPiYmKTsKIAogICAgIFdlYkNvcmU6OlNldE5vblZvbGF0aWxlUmVzdWx0
IG1hcmtTdXJmYWNlTm9uVm9sYXRpbGUoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9jb2NvYS9JbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclJlbW90ZUlPU3Vy
ZmFjZUJhY2tlbmQuY3BwCmluZGV4IDgzYTE2MjViNjlmZmJiYWRjMWIwNmM4ZjM2ODk2NGVjNzBh
MWU0NzcuLjQwMTFjYThlYTk5M2YzZWZhNDdmYmU4YmU2NjVjNzk5YTI3OWY5OGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZm
ZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyUmVtb3RlSU9TdXJmYWNlQmFja2VuZC5j
cHAKQEAgLTY2LDYgKzY2LDExIEBAIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclJlbW90ZUlP
U3VyZmFjZUJhY2tlbmQ+IEltYWdlQnVmZmVyUmVtb3RlSU9TdXJmYWNlQmFjCiAKIEltYWdlQnVm
ZmVyQmFja2VuZEhhbmRsZSBJbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0
ZUJhY2tlbmRIYW5kbGUoKSBjb25zdAogeworICAgIGlmICghc3RkOjpob2xkc19hbHRlcm5hdGl2
ZTxNYWNoU2VuZFJpZ2h0PihtX2hhbmRsZSkpIHsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisKICAgICByZXR1cm4gc3Rk
OjpnZXQ8TWFjaFNlbmRSaWdodD4obV9oYW5kbGUpLmNvcHlTZW5kUmlnaHQoKTsKIH0KIApAQCAt
NzksNiArODQsMTEgQEAgdm9pZCBJbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQ6OmNs
ZWFyQmFja2VuZEhhbmRsZSgpCiAgICAgbV9oYW5kbGUgPSB7IH07CiB9CiAKK2Jvb2wgSW1hZ2VC
dWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kOjpoYXNCYWNrZW5kSGFuZGxlKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxNYWNoU2VuZFJpZ2h0PihtX2hhbmRs
ZSk7Cit9CisKIEdyYXBoaWNzQ29udGV4dCYgSW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNr
ZW5kOjpjb250ZXh0KCkgY29uc3QKIHsKICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2Nv
YS9JbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNr
ZW5kLmgKaW5kZXggZGZiMGZlOWRhYzUxMDkzYTM0ZTgxNTFiNzg2ZmRjOGZjZWVjNDlmZS4uMDk0
MWJmZGE3ZWUwNThjOThmMDM1MjJkM2FlNzNjOTU3NGFjOTkyOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclJlbW90ZUlP
U3VyZmFjZUJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL2NvY29hL0ltYWdlQnVmZmVyUmVtb3RlSU9TdXJmYWNlQmFja2VuZC5oCkBAIC03MiwxMiAr
NzIsMTggQEAgcHJpdmF0ZToKIAogICAgIHVuc2lnbmVkIGJ5dGVzUGVyUm93KCkgY29uc3QgZmlu
YWw7CiAKKyAgICBXZWJDb3JlOjpWb2xhdGlsaXR5U3RhdGUgdm9sYXRpbGl0eVN0YXRlKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gbV92b2xhdGlsaXR5U3RhdGU7IH0KKyAgICB2b2lkIHNldFZvbGF0
aWxpdHlTdGF0ZShXZWJDb3JlOjpWb2xhdGlsaXR5U3RhdGUgdm9sYXRpbGl0eVN0YXRlKSBmaW5h
bCB7IG1fdm9sYXRpbGl0eVN0YXRlID0gdm9sYXRpbGl0eVN0YXRlOyB9CisKICAgICAvLyBJbWFn
ZUJ1ZmZlckJhY2tlbmRTaGFyaW5nCiAgICAgSW1hZ2VCdWZmZXJCYWNrZW5kU2hhcmluZyogdG9C
YWNrZW5kU2hhcmluZygpIGZpbmFsIHsgcmV0dXJuIHRoaXM7IH0KICAgICB2b2lkIHNldEJhY2tl
bmRIYW5kbGUoSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlJiYpIGZpbmFsOwogICAgIHZvaWQgY2xl
YXJCYWNrZW5kSGFuZGxlKCkgZmluYWw7CisgICAgYm9vbCBoYXNCYWNrZW5kSGFuZGxlKCkgY29u
c3QgZmluYWw7CiAKICAgICBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgbV9oYW5kbGU7CisKKyAg
ICBXZWJDb3JlOjpWb2xhdGlsaXR5U3RhdGUgbV92b2xhdGlsaXR5U3RhdGUgeyBXZWJDb3JlOjpW
b2xhdGlsaXR5U3RhdGU6Ok5vblZvbGF0aWxlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454178</attachid>
            <date>2022-03-08 17:16:18 -0800</date>
            <delta_ts>2022-03-09 10:17:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237631-20220308171617.patch</filename>
            <type>text/plain</type>
            <size>32097</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwODkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjkyMDJkOTY3YjlkOWEw
YWFjNzg0ZGZkNWI1NzI2OTM3ZjA3Y2NmYS4uNGE1Mzg0YTE0NWM3ODc5YjM1Y2YxYWYyNjRhOWE5
NWRhZTM5YjkxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIyLTAzLTA4ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgUmVtb3Rl
TGF5ZXJCYWNraW5nU3RvcmU6OkJ1ZmZlci5pc1ZvbGF0aWxlIGludG8gSW1hZ2VCdWZmZXJCYWNr
ZW5kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzc2
MzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAnaXNW
b2xhdGlsZScgaXMgYSBwcm9wZXJ0eSBvZiBhIHNwZWNpZmljIGltYWdlIGJ1ZmZlciwgc28gaXQg
bWFrZXMgbW9yZSBzZW5zZSB0byBoYXZlIGl0IGluCisgICAgICAgIEltYWdlQnVmZmVyW0JhY2tl
bmRdIHRoYW4gUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUuIFRoaXMgYWxzbyBhbGxvd3MgR1BVIFBy
b2Nlc3MgY29kZSB0bworICAgICAgICBtYWludGFpbiB2b2xhdGlsaXR5IHN0YXRlIGluIHRoZSB3
ZWIgcHJvY2Vzcywgd2hpY2ggcmVkdWNlcyB0aGUgYW1vdW50IG9mIElQQyBuZWVkZWQgd2hlbgor
ICAgICAgICBtYWtpbmcgdGhlIGZyb250IGJ1ZmZlciBub24tdm9sYXRpbGUgYmVmb3JlIGRpc3Bs
YXkuCisKKyAgICAgICAgU28gSW1hZ2VCdWZmZXJCYWNrZW5kIGdldHMgdm9sYXRpbGl0eVN0YXRl
KCkvc2V0Vm9sYXRpbGl0eVN0YXRlKCksIGFjY2Vzc2VkIHZpYSBJbWFnZUJ1ZmZlci4KKyAgICAg
ICAgVGhpcyBzdGF0ZSBpcyBtYWludGFpbmVkIGJ5IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eSBmb3IgcmVtb3RlIGJ1ZmZlcnMuIFdlIHNldCB0aGUgc3RhdGUKKyAgICAgICAgdG8gdm9sYXRp
bGUgd2hlbiB3ZSByZWNlaXZlIHRoZSBJUEMgcmVwbHkgZm9yIG1hcmtTdXJmYWNlc1ZvbGF0aWxl
KCksIHdoaWNoIHJlcXVpcmVzCisgICAgICAgIGNoYW5naW5nIHRoZSByZXBseSB0byBsaXN0IGJ1
ZmZlcnMgZm9yIHdoaWNoIG1ha2luZyB2b2xhdGlsZSB3YXMgc3VjY2Vzc2Z1bC4KKworICAgICAg
ICBSZW1vdGVMYXllcldpdGhSZW1vdGVSZW5kZXJpbmdCYWNraW5nU3RvcmVDb2xsZWN0aW9uOjpt
YWtlRnJvbnRCdWZmZXJOb25Wb2xhdGlsZSgpIGNhbiBub3cKKyAgICAgICAgZWFybHkgcmV0dXJu
IHdoZW4gdGhlIGJ1ZmZlciBpcyBhbHJlYWR5IG5vbi12b2xhdGlsZSwgYW5kIHdlIGhhdmUgYSBi
YWNrZW5kIGhhbmRsZSAocmVjYWxsCisgICAgICAgIHRoYXQgd2UgY2xlYXIgYmFja2VuZCBoYW5k
bGVzIHdoZW4gdHJ5aW5nIHRvIG1ha2UgYSBidWZmZXIgdm9sYXRpbGUpLgorCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
SW1hZ2VCdWZmZXJCYWNrZW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlckJhY2tl
bmQ6OnZvbGF0aWxpdHlTdGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZl
ckJhY2tlbmQ6OnNldFZvbGF0aWxpdHlTdGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZDo6c2V0Vm9sYXRpbGUpOgorICAgICAgICAoV2Vi
Q29yZTo6SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kOjpzZXROb25Wb2xhdGlsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OnZvbGF0aWxpdHlTdGF0
ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6
OnNldFZvbGF0aWxpdHlTdGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1h
Z2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmg6CisKIDIwMjItMDMtMDcgIFNpbW9uIEZyYXNlciAg
PHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1lIFZvbGF0aWxpdHlTdGF0
ZSB0byBTZXROb25Wb2xhdGlsZVJlc3VsdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3NmNhMWE1ZGU1YzNmMGZjY2Y5
Njg0ZGY5MGUzMjgxMjE0OGZkZGNjLi5lZmE4NjE0ZWUwM2UxNTk1MmVjNjA1NmUyYmUyZjVmNTBj
MjVmMmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDIyLTAzLTA4ICBTaW1vbiBGcmFz
ZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgUmVtb3RlTGF5ZXJC
YWNraW5nU3RvcmU6OkJ1ZmZlci5pc1ZvbGF0aWxlIGludG8gSW1hZ2VCdWZmZXJCYWNrZW5kCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzc2MzEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgICdp
c1ZvbGF0aWxlJyBpcyBhIHByb3BlcnR5IG9mIGEgc3BlY2lmaWMgaW1hZ2UgYnVmZmVyLCBzbyBp
dCBtYWtlcyBtb3JlIHNlbnNlIHRvIGhhdmUgaXQgaW4KKyAgICAgICAgSW1hZ2VCdWZmZXJbQmFj
a2VuZF0gdGhhbiBSZW1vdGVMYXllckJhY2tpbmdTdG9yZS4gVGhpcyBhbHNvIGFsbG93cyBHUFUg
UHJvY2VzcyBjb2RlIHRvCisgICAgICAgIG1haW50YWluIHZvbGF0aWxpdHkgc3RhdGUgaW4gdGhl
IHdlYiBwcm9jZXNzLCB3aGljaCByZWR1Y2VzIHRoZSBhbW91bnQgb2YgSVBDIG5lZWRlZCB3aGVu
CisgICAgICAgIG1ha2luZyB0aGUgZnJvbnQgYnVmZmVyIG5vbi12b2xhdGlsZSBiZWZvcmUgZGlz
cGxheS4KKworICAgICAgICBTbyBJbWFnZUJ1ZmZlckJhY2tlbmQgZ2V0cyB2b2xhdGlsaXR5U3Rh
dGUoKS9zZXRWb2xhdGlsaXR5U3RhdGUoKSwgYWNjZXNzZWQgdmlhIEltYWdlQnVmZmVyLgorICAg
ICAgICBUaGlzIHN0YXRlIGlzIG1haW50YWluZWQgYnkgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5IGZvciByZW1vdGUgYnVmZmVycy4gV2Ugc2V0IHRoZSBzdGF0ZQorICAgICAgICB0byB2b2xh
dGlsZSB3aGVuIHdlIHJlY2VpdmUgdGhlIElQQyByZXBseSBmb3IgbWFya1N1cmZhY2VzVm9sYXRp
bGUoKSwgd2hpY2ggcmVxdWlyZXMKKyAgICAgICAgY2hhbmdpbmcgdGhlIHJlcGx5IHRvIGxpc3Qg
YnVmZmVycyBmb3Igd2hpY2ggbWFraW5nIHZvbGF0aWxlIHdhcyBzdWNjZXNzZnVsLgorCisgICAg
ICAgIFJlbW90ZUxheWVyV2l0aFJlbW90ZVJlbmRlcmluZ0JhY2tpbmdTdG9yZUNvbGxlY3Rpb246
Om1ha2VGcm9udEJ1ZmZlck5vblZvbGF0aWxlKCkgY2FuIG5vdworICAgICAgICBlYXJseSByZXR1
cm4gd2hlbiB0aGUgYnVmZmVyIGlzIGFscmVhZHkgbm9uLXZvbGF0aWxlLCBhbmQgd2UgaGF2ZSBh
IGJhY2tlbmQgaGFuZGxlIChyZWNhbGwKKyAgICAgICAgdGhhdCB3ZSBjbGVhciBiYWNrZW5kIGhh
bmRsZXMgd2hlbiB0cnlpbmcgdG8gbWFrZSBhIGJ1ZmZlciB2b2xhdGlsZSkuCisKKyAgICAgICAg
KiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjptYXJrU3VyZmFjZXNWb2xhdGlsZSk6
CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmg6
CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1l
c3NhZ2VzLmluOgorICAgICAgICAqIFNoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJC
YWNraW5nU3RvcmUuaDoKKyAgICAgICAgKiBTaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxh
eWVyQmFja2luZ1N0b3JlLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllckJhY2tpbmdT
dG9yZTo6YXBwbHlTd2FwcGVkQnVmZmVycyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVy
QmFja2luZ1N0b3JlOjpzZXRCdWZmZXJWb2xhdGlsZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUxheWVyQmFja2luZ1N0b3JlOjpzZXRCdWZmZXJOb25Wb2xhdGlsZSk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpkaWRNYWtlRnJvbnRCdWZmZXJOb25Wb2xhdGls
ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpCdWZmZXI6OmRp
c2NhcmQpOgorICAgICAgICAqIFNoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJXaXRo
UmVtb3RlUmVuZGVyaW5nQmFja2luZ1N0b3JlQ29sbGVjdGlvbi5tbToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTGF5ZXJXaXRoUmVtb3RlUmVuZGVyaW5nQmFja2luZ1N0b3JlQ29sbGVjdGlvbjo6
UmVtb3RlTGF5ZXJXaXRoUmVtb3RlUmVuZGVyaW5nQmFja2luZ1N0b3JlQ29sbGVjdGlvbik6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyV2l0aFJlbW90ZVJlbmRlcmluZ0JhY2tpbmdTdG9y
ZUNvbGxlY3Rpb246Om1ha2VGcm9udEJ1ZmZlck5vblZvbGF0aWxlKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTGF5ZXJXaXRoUmVtb3RlUmVuZGVyaW5nQmFja2luZ1N0b3JlQ29sbGVjdGlvbjo6
Y29sbGVjdEJhY2tpbmdTdG9yZUJ1ZmZlcklkZW50aWZpZXJzVG9NYXJrVm9sYXRpbGUpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVMYXllcldpdGhSZW1vdGVSZW5kZXJpbmdCYWNraW5nU3RvcmVD
b2xsZWN0aW9uOjpzZW5kTWFya0J1ZmZlcnNWb2xhdGlsZSk6IENhbGwgdGhlIGNvbXBsZXRpb24g
aGFuZGxlciBpbnNpZGUgdGhlIGNhbGxiYWNrLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZEhhbmRsZVNoYXJpbmcuaDoKKyAgICAgICAgKFdlYktp
dDo6SW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlU2hhcmluZzo6aGFzQmFja2VuZEhhbmRsZSBjb25z
dCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5Ojpzd2FwVG9WYWxpZEZyb250QnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5OjptYXJrU3VyZmFjZU5vblZvbGF0aWxlKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjptYXJrU3VyZmFjZXNWb2xhdGlsZSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VC
dWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW1hZ2VC
dWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kOjpjcmVhdGVCYWNrZW5kSGFuZGxlIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kOjpoYXNC
YWNrZW5kSGFuZGxlIGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9j
b2NvYS9JbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQuaDoKKwogMjAyMi0wMy0wOCAg
U2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggYXNz
ZXJ0aW9uIHdoZW4gRE9NIFJlbmRlcmluZyBpbiBHUFUgUHJvY2VzcyBpcyBlbmFibGVkIHdpdGgg
YWNjZWxlcmF0ZWQgZHJhd2luZyBkaXNhYmxlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oCmluZGV4IGEyNmQ0ZDI0OGI4
OGJiYmVhMGZlOWIzOWU4MzRmMjc2OGE0Yjg1NjkuLjk3ZGNkNGIyZGUyZTVhN2VlYjZiOWIzMGM2
OTc3Y2FkZDBhN2UyOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Db25jcmV0ZUltYWdlQnVmZmVyLmgKQEAgLTMwNSw2ICszMDUsMTkgQEAgcHJvdGVj
dGVkOgogICAgICAgICByZXR1cm4gU2V0Tm9uVm9sYXRpbGVSZXN1bHQ6OlZhbGlkOwogICAgIH0K
IAorICAgIFZvbGF0aWxpdHlTdGF0ZSB2b2xhdGlsaXR5U3RhdGUoKSBjb25zdCBmaW5hbAorICAg
IHsKKyAgICAgICAgaWYgKGF1dG8qIGJhY2tlbmQgPSBlbnN1cmVCYWNrZW5kQ3JlYXRlZCgpKQor
ICAgICAgICAgICAgcmV0dXJuIGJhY2tlbmQtPnZvbGF0aWxpdHlTdGF0ZSgpOworICAgICAgICBy
ZXR1cm4gVm9sYXRpbGl0eVN0YXRlOjpOb25Wb2xhdGlsZTsKKyAgICB9CisKKyAgICB2b2lkIHNl
dFZvbGF0aWxpdHlTdGF0ZShWb2xhdGlsaXR5U3RhdGUgdm9sYXRpbGl0eVN0YXRlKSBmaW5hbAor
ICAgIHsKKyAgICAgICAgaWYgKGF1dG8qIGJhY2tlbmQgPSBlbnN1cmVCYWNrZW5kQ3JlYXRlZCgp
KQorICAgICAgICAgICAgYmFja2VuZC0+c2V0Vm9sYXRpbGl0eVN0YXRlKHZvbGF0aWxpdHlTdGF0
ZSk7CisgICAgfQorCiAgICAgc3RkOjp1bmlxdWVfcHRyPFRocmVhZFNhZmVJbWFnZUJ1ZmZlckZs
dXNoZXI+IGNyZWF0ZUZsdXNoZXIoKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYgKGF1dG8q
IGJhY2tlbmQgPSBlbnN1cmVCYWNrZW5kQ3JlYXRlZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKaW5kZXggNjAwZGI1MDIxNDM3ZTEzNmIyNDI3
N2I2MzM0ZjRmMTMyNzU0ZGYzYS4uZDA0NTE3NWY0ZDA1ZDFhNWI0OGY3NDg2NzA0ZWVhMjlkZGVj
MDcxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VC
dWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZl
ci5oCkBAIC05Myw2ICs5Myw4IEBAIHB1YmxpYzoKICAgICAvLyBSZXR1cm5zIHRydWUgb24gc3Vj
Y2Vzcy4KICAgICB2aXJ0dWFsIGJvb2wgc2V0Vm9sYXRpbGUoKSA9IDA7CiAgICAgdmlydHVhbCBT
ZXROb25Wb2xhdGlsZVJlc3VsdCBzZXROb25Wb2xhdGlsZSgpID0gMDsKKyAgICB2aXJ0dWFsIFZv
bGF0aWxpdHlTdGF0ZSB2b2xhdGlsaXR5U3RhdGUoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2
b2lkIHNldFZvbGF0aWxpdHlTdGF0ZShWb2xhdGlsaXR5U3RhdGUpID0gMDsKIAogICAgIHZpcnR1
YWwgc3RkOjp1bmlxdWVfcHRyPFRocmVhZFNhZmVJbWFnZUJ1ZmZlckZsdXNoZXI+IGNyZWF0ZUZs
dXNoZXIoKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlQnVmZmVyQmFja2VuZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmgKaW5kZXggZDljZmE3NTQxMGEzNzc2ZDI3N2UxMjhkMjMx
OTVkNjUxYWZlZDU0Ni4uZjZmNGU2ZmVlODIwYjVhZTNhMjIzOWZiODFlMzkxNGRmODA1ZjA2YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJC
YWNrZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZm
ZXJCYWNrZW5kLmgKQEAgLTYwLDYgKzYwLDExIEBAIGVudW0gY2xhc3MgU2V0Tm9uVm9sYXRpbGVS
ZXN1bHQgOiB1aW50OF90IHsKICAgICBFbXB0eQogfTsKIAorZW51bSBjbGFzcyBWb2xhdGlsaXR5
U3RhdGUgOiB1aW50OF90IHsKKyAgICBOb25Wb2xhdGlsZSwKKyAgICBWb2xhdGlsZQorfTsKKwog
Y2xhc3MgVGhyZWFkU2FmZUltYWdlQnVmZmVyRmx1c2hlciB7CiAgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVGhyZWFkU2FmZUltYWdlQnVmZmVy
Rmx1c2hlcik7CkBAIC0xMjcsNiArMTMyLDggQEAgcHVibGljOgogICAgIC8vIFJldHVybnMgdHJ1
ZSBvbiBzdWNjZXNzLgogICAgIHZpcnR1YWwgYm9vbCBzZXRWb2xhdGlsZSgpIHsgcmV0dXJuIHRy
dWU7IH0KICAgICB2aXJ0dWFsIFNldE5vblZvbGF0aWxlUmVzdWx0IHNldE5vblZvbGF0aWxlKCkg
eyByZXR1cm4gU2V0Tm9uVm9sYXRpbGVSZXN1bHQ6OlZhbGlkOyB9CisgICAgdmlydHVhbCBWb2xh
dGlsaXR5U3RhdGUgdm9sYXRpbGl0eVN0YXRlKCkgY29uc3QgeyByZXR1cm4gVm9sYXRpbGl0eVN0
YXRlOjpOb25Wb2xhdGlsZTsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRWb2xhdGlsaXR5U3RhdGUo
Vm9sYXRpbGl0eVN0YXRlKSB7IH0KIAogICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPFRocmVh
ZFNhZmVJbWFnZUJ1ZmZlckZsdXNoZXI+IGNyZWF0ZUZsdXNoZXIoKSB7IHJldHVybiBudWxscHRy
OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lt
YWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuY3BwCmluZGV4IDhlYTg0Zjk3
MzIyMDk5OTcyMGIxYmM2YjlhYTYxMTNhMGEwYTZhYzcuLjZkOTM2MmRkYTgyMzU3Mjg4NWZiNjdl
YjlmZTFiYjEzNjkyMTQxMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NnL0ltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmNw
cApAQCAtMjM5LDE1ICsyMzksMjcgQEAgYm9vbCBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6
OnNldFZvbGF0aWxlKCkKICAgICBpZiAobV9zdXJmYWNlLT5pc0luVXNlKCkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAorICAgIHNldFZvbGF0aWxpdHlTdGF0ZShWb2xhdGlsaXR5U3RhdGU6OlZv
bGF0aWxlKTsKICAgICBtX3N1cmZhY2UtPnNldFZvbGF0aWxlKHRydWUpOwogICAgIHJldHVybiB0
cnVlOwogfQogCiBTZXROb25Wb2xhdGlsZVJlc3VsdCBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tl
bmQ6OnNldE5vblZvbGF0aWxlKCkKIHsKKyAgICBzZXRWb2xhdGlsaXR5U3RhdGUoVm9sYXRpbGl0
eVN0YXRlOjpOb25Wb2xhdGlsZSk7CiAgICAgcmV0dXJuIG1fc3VyZmFjZS0+c2V0Vm9sYXRpbGUo
ZmFsc2UpOwogfQogCitWb2xhdGlsaXR5U3RhdGUgSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5k
Ojp2b2xhdGlsaXR5U3RhdGUoKSBjb25zdAoreworICAgIHJldHVybiBtX3ZvbGF0aWxpdHlTdGF0
ZTsKK30KKwordm9pZCBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQ6OnNldFZvbGF0aWxpdHlT
dGF0ZShWb2xhdGlsaXR5U3RhdGUgdm9sYXRpbGl0eVN0YXRlKQoreworICAgIG1fdm9sYXRpbGl0
eVN0YXRlID0gdm9sYXRpbGl0eVN0YXRlOworfQorCiB2b2lkIEltYWdlQnVmZmVySU9TdXJmYWNl
QmFja2VuZDo6cmVsZWFzZUJ1ZmZlclRvUG9vbCgpCiB7CiAgICAgSU9TdXJmYWNlOjptb3ZlVG9Q
b29sKFdURk1vdmUobV9zdXJmYWNlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5o
CmluZGV4IDVkYzcyMDcyMjBhMWVmMjcxZmZiNmE3MjVhOTRmOGNlYmFmNzcwNmUuLjAzOTEzYjAw
YmZhZWYyMzAxZjdlMzYyMjQ3MzYzNjc0YzY2NDE3OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVySU9TdXJm
YWNlQmFja2VuZC5oCkBAIC03MCw4ICs3MCwxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCByZWxl
YXNlR3JhcGhpY3NDb250ZXh0KCkgb3ZlcnJpZGU7CiAgICAgdm9pZCByZWxlYXNlQnVmZmVyVG9Q
b29sKCkgb3ZlcnJpZGU7CiAKLSAgICBib29sIHNldFZvbGF0aWxlKCkgb3ZlcnJpZGU7Ci0gICAg
U2V0Tm9uVm9sYXRpbGVSZXN1bHQgc2V0Tm9uVm9sYXRpbGUoKSBvdmVycmlkZTsKKyAgICBib29s
IHNldFZvbGF0aWxlKCkgZmluYWw7CisgICAgU2V0Tm9uVm9sYXRpbGVSZXN1bHQgc2V0Tm9uVm9s
YXRpbGUoKSBmaW5hbDsKKyAgICBWb2xhdGlsaXR5U3RhdGUgdm9sYXRpbGl0eVN0YXRlKCkgY29u
c3QgZmluYWw7CisgICAgdm9pZCBzZXRWb2xhdGlsaXR5U3RhdGUoVm9sYXRpbGl0eVN0YXRlKSBm
aW5hbDsKIAogICAgIHZvaWQgZW5zdXJlTmF0aXZlSW1hZ2VzSGF2ZUNvcGllZEJhY2tpbmdTdG9y
ZSgpIGZpbmFsOwogCkBAIC04OSw2ICs5MSw3IEBAIHByb3RlY3RlZDoKICAgICBtdXRhYmxlIGJv
b2wgbV9yZXF1aXJlc0RyYXdBZnRlclB1dFBpeGVsQnVmZmVyIHsgZmFsc2UgfTsKIAogICAgIG11
dGFibGUgYm9vbCBtX25lZWRzU2V0dXBDb250ZXh0IHsgZmFsc2UgfTsKKyAgICBWb2xhdGlsaXR5
U3RhdGUgbV92b2xhdGlsaXR5U3RhdGUgeyBWb2xhdGlsaXR5U3RhdGU6Ok5vblZvbGF0aWxlIH07
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKaW5k
ZXggN2UyYjhkN2Q4OWE2YzM2ZGY5NGE1Y2QzY2FlMjVhZWY3YTE1YzBkMi4uNmNiNjcwYmUxMjVl
NzFmYzNlYzU0ZTY5NmYxYjdhZTYxZWJiMDYwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcApA
QCAtNDY0LDcgKzQ2NCw3IEBAIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6c3dhcFRvVmFs
aWRGcm9udEJ1ZmZlcihjb25zdCBCdWZmZXJJZGVudGlmaWVyU2V0JiBiCiAgICAgY29tcGxldGlv
bkhhbmRsZXIocmVzdWx0QnVmZmVyU2V0LCBXVEZNb3ZlKGZyb250QnVmZmVySGFuZGxlKSwgZnJv
bnRCdWZmZXJXYXNFbXB0eSk7CiB9CiAKLXZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6bWFy
a1N1cmZhY2VzVm9sYXRpbGUoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllcj4mIGlkZW50aWZpZXJzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFZl
Y3RvcjxXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+JiBpblVzZUJ1ZmZlcklk
ZW50aWZpZXJzKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZDo6bWFya1N1cmZhY2VzVm9sYXRpbGUoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcj4mIGlkZW50aWZpZXJzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+JiBtYXJr
ZWRWb2xhdGlsZUJ1ZmZlcklkZW50aWZpZXJzKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAg
ICBMT0dfV0lUSF9TVFJFQU0oUmVtb3RlUmVuZGVyaW5nQnVmZmVyVm9sYXRpbGl0eSwgc3RyZWFt
IDw8ICJHUFUgUHJvY2VzczogUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6bWFya1N1cmZhY2VzVm9s
YXRpbGUgIiA8PCBpZGVudGlmaWVycyk7CiAKQEAgLTQ3MywxOSArNDczLDE5IEBAIHZvaWQgUmVt
b3RlUmVuZGVyaW5nQmFja2VuZDo6bWFya1N1cmZhY2VzVm9sYXRpbGUoY29uc3QgVmVjdG9yPFdl
YkNvcmU6OlJlbmRlcmluCiAgICAgICAgIHJldHVybiBpbWFnZUJ1ZmZlci5zZXRWb2xhdGlsZSgp
OwogICAgIH07CiAKLSAgICBWZWN0b3I8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyPiBpblVzZUJ1ZmZlcklkZW50aWZpZXJzOworICAgIFZlY3RvcjxXZWJDb3JlOjpSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXI+IG1hcmtlZFZvbGF0aWxlQnVmZmVySWRlbnRpZmllcnM7CiAg
ICAgZm9yIChhdXRvIGlkZW50aWZpZXIgOiBpZGVudGlmaWVycykgewogICAgICAgICBhdXRvIGlt
YWdlQnVmZmVyID0gbV9yZW1vdGVSZXNvdXJjZUNhY2hlLmNhY2hlZEltYWdlQnVmZmVyKHsgaWRl
bnRpZmllciwgbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLT53ZWJQcm9jZXNzSWRlbnRpZmll
cigpIH0pOwogICAgICAgICBpZiAoaW1hZ2VCdWZmZXIpIHsKLSAgICAgICAgICAgIGlmICghbWFr
ZVZvbGF0aWxlKCppbWFnZUJ1ZmZlcikpCi0gICAgICAgICAgICAgICAgaW5Vc2VCdWZmZXJJZGVu
dGlmaWVycy5hcHBlbmQoaWRlbnRpZmllcik7CisgICAgICAgICAgICBpZiAobWFrZVZvbGF0aWxl
KCppbWFnZUJ1ZmZlcikpCisgICAgICAgICAgICAgICAgbWFya2VkVm9sYXRpbGVCdWZmZXJJZGVu
dGlmaWVycy5hcHBlbmQoaWRlbnRpZmllcik7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAg
TE9HX1dJVEhfU1RSRUFNKFJlbW90ZVJlbmRlcmluZ0J1ZmZlclZvbGF0aWxpdHksIHN0cmVhbSA8
PCAiIGZhaWxlZCB0byBmaW5kIEltYWdlQnVmZmVyIGZvciBpZGVudGlmaWVyICIgPDwgaWRlbnRp
Zmllcik7CiAgICAgfQogCi0gICAgTE9HX1dJVEhfU1RSRUFNKFJlbW90ZVJlbmRlcmluZ0J1ZmZl
clZvbGF0aWxpdHksIHN0cmVhbSA8PCAiR1BVIFByb2Nlc3M6IG1hcmtTdXJmYWNlc1ZvbGF0aWxl
IC0gaW4tdXNlIHN1cmZhY2VzICIgPDwgaW5Vc2VCdWZmZXJJZGVudGlmaWVycyk7CisgICAgTE9H
X1dJVEhfU1RSRUFNKFJlbW90ZVJlbmRlcmluZ0J1ZmZlclZvbGF0aWxpdHksIHN0cmVhbSA8PCAi
R1BVIFByb2Nlc3M6IG1hcmtTdXJmYWNlc1ZvbGF0aWxlIC0gc3VyZmFjZXMgbWFya2VkIHZvbGF0
aWxlICIgPDwgbWFya2VkVm9sYXRpbGVCdWZmZXJJZGVudGlmaWVycyk7CiAKLSAgICBjb21wbGV0
aW9uSGFuZGxlcihpblVzZUJ1ZmZlcklkZW50aWZpZXJzKTsKKyAgICBjb21wbGV0aW9uSGFuZGxl
cihtYXJrZWRWb2xhdGlsZUJ1ZmZlcklkZW50aWZpZXJzKTsKIH0KIAogdm9pZCBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kOjpmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZShSZW5kZXJpbmdVcGRhdGVJRCBy
ZW5kZXJpbmdVcGRhdGVJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCmluZGV4IDgzMmJlODlkZWVmNGY3
OWEwNGY1NTE5M2E2Njk3Mzk0MDYyZDc5NjAuLjU3MzBjZDcxNWU4YjQ2ZDc0NjdlNDkyZGVlZDZm
ZTdiOTExMTc3OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaApAQCAtMTE4LDcgKzExOCw3IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBkZWxldGVBbGxGb250cygpOwogICAgIHZvaWQgcmVsZWFzZVJlbW90
ZVJlc291cmNlKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAgICAgdm9p
ZCBmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZShSZW5kZXJpbmdVcGRhdGVJRCk7Ci0gICAgdm9pZCBt
YXJrU3VyZmFjZXNWb2xhdGlsZShjb25zdCBWZWN0b3I8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyPiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVjdG9yPFdlYkNv
cmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4mIGluVXNlQnVmZmVySWRlbnRpZmllcnMp
PiYmKTsKKyAgICB2b2lkIG1hcmtTdXJmYWNlc1ZvbGF0aWxlKGNvbnN0IFZlY3RvcjxXZWJDb3Jl
OjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChj
b25zdCBWZWN0b3I8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiYgbWFya2Vk
Vm9sYXRpbGVCdWZmZXJJZGVudGlmaWVycyk+JiYpOwogCiAgICAgdm9pZCBtYXJrU3VyZmFjZU5v
blZvbGF0aWxlKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZT4sIGJv
b2wgYnVmZmVyV2FzRW1wdHkpPiYmKTsKICAgICB2b2lkIHN3YXBUb1ZhbGlkRnJvbnRCdWZmZXIo
Y29uc3QgQnVmZmVySWRlbnRpZmllclNldCYgYnVmZmVyU2V0LCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGNvbnN0IEJ1ZmZlcklkZW50aWZpZXJTZXQmIHN3YXBwZWRCdWZmZXJTZXQsIHN0ZDo6b3B0
aW9uYWw8SW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlPiYmIGZyb250QnVmZmVySGFuZGxlLCBib29s
IGZyb250QnVmZmVyV2FzRW1wdHkpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVz
c2FnZXMuaW4KaW5kZXggZDM1OWNhYTEzMGQ1YTBjMzY4MzYzNTNhYmIyOGJlNGVkZGQ4NmI5NC4u
OTdlNTk1YWQzNzM3YjQ2NjhmMGM2NzE0NzZlNzQwN2JkZDlhOTM4ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4KQEAgLTQwLDcgKzQwLDcgQEAgbWVzc2FnZXMgLT4g
UmVtb3RlUmVuZGVyaW5nQmFja2VuZCBOb3RSZWZDb3VudGVkIFN0cmVhbSB7CiAgICAgTWFya1N1
cmZhY2VOb25Wb2xhdGlsZShXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJLaXQ6OkltYWdl
QnVmZmVyQmFja2VuZEhhbmRsZT4gYmFja2VuZEhhbmRsZSwgYm9vbCBidWZmZXJXYXNFbXB0eSkg
U3luY2hyb25vdXMgTm90U3RyZWFtRW5jb2RhYmxlIE5vdFN0cmVhbUVuY29kYWJsZVJlcGx5CiAg
ICAgU3dhcFRvVmFsaWRGcm9udEJ1ZmZlcihzdHJ1Y3QgV2ViS2l0OjpCdWZmZXJJZGVudGlmaWVy
U2V0IGJ1ZmZlclNldCkgLT4gKHN0cnVjdCBXZWJLaXQ6OkJ1ZmZlcklkZW50aWZpZXJTZXQgc3dh
cHBlZEJ1ZmZlclNldCwgc3RkOjpvcHRpb25hbDxXZWJLaXQ6OkltYWdlQnVmZmVyQmFja2VuZEhh
bmRsZT4gZnJvbnRCdWZmZXJIYW5kbGUsIGJvb2wgZnJvbnRCdWZmZXJXYXNFbXB0eSkgU3luY2hy
b25vdXMgTm90U3RyZWFtRW5jb2RhYmxlIE5vdFN0cmVhbUVuY29kYWJsZVJlcGx5CiAKLSAgICBN
YXJrU3VyZmFjZXNWb2xhdGlsZShWZWN0b3I8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyPiByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXJzKSAtPiAoVmVjdG9yPFdlYkNvcmU6
OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gaW5Vc2VCdWZmZXJJZGVudGlmaWVycykgU3lu
Y2hyb25vdXMKKyAgICBNYXJrU3VyZmFjZXNWb2xhdGlsZShWZWN0b3I8V2ViQ29yZTo6UmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyPiByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXJzKSAtPiAo
VmVjdG9yPFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gbWFya2VkVm9sYXRp
bGVCdWZmZXJJZGVudGlmaWVycykgU3luY2hyb25vdXMKIAogICAgIEZpbmFsaXplUmVuZGVyaW5n
VXBkYXRlKFdlYktpdDo6UmVuZGVyaW5nVXBkYXRlSUQgcmVuZGVyaW5nVXBkYXRlSUQpCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5
ZXJCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVMYXllckJhY2tpbmdTdG9yZS5oCmluZGV4IDEyOWE4ZWE2Y2QyMWFmN2E3YjM4NzgwM2Ew
YmUyYmYxODllZjkwMDguLjM2NjBlYzQ4MDE2MGU5OGYxOTBjNWM2NWQwMGJiNGY2Mjk0MTA0MjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVM
YXllckJhY2tpbmdTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5oCkBAIC0xMjQsMTAgKzEyNCw2IEBAIHByaXZh
dGU6CiAjaWYgRU5BQkxFKENHX0RJU1BMQVlfTElTVF9CQUNLRURfSU1BR0VfQlVGRkVSKQogICAg
ICAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+IGRpc3BsYXlMaXN0SW1hZ2VCdWZmZXI7
CiAjZW5kaWYKLSAgICAgICAgLy8gRklYTUU6IFRoaXMgZmxhZyBuZWVkcyB0byBiZSBwYXJ0IG9m
IEltYWdlQnVmZmVyW0JhY2tlbmRdLiBDdXJyZW50bHkgaXQncyBub3QgY29ycmVjdGx5IG1haW50
YWluZWQKLSAgICAgICAgLy8gaW4gdGhlIEdQVSBQcm9jZXNzIGNvZGUgcGF0aC4KLSAgICAgICAg
Ym9vbCBpc1ZvbGF0aWxlID0gZmFsc2U7Ci0KICAgICAgICAgZXhwbGljaXQgb3BlcmF0b3IgYm9v
bCgpIGNvbnN0CiAgICAgICAgIHsKICAgICAgICAgICAgIHJldHVybiAhIWltYWdlQnVmZmVyOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxh
eWVyQmFja2luZ1N0b3JlLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tCmluZGV4IDUwYjlmOTQ1OTBjNTg0ZTRkNWY3MGU0
MjZhOWZiYzFmMDIxYzE3ZWYuLjFjYTY5ZDc1ZWM5ZmViZjk5YjA5NzRlOGQ4NmYyZjM2YzU3YzYy
ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVMYXllckJhY2tpbmdTdG9yZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVM
YXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0KQEAgLTI0Niw4ICsyNDYsNiBAQCB2
b2lkIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjphcHBseVN3YXBwZWRCdWZmZXJzKFJlZlB0cjxX
ZWJDb3JlOjpJbWFnZUJ1ZmZlcj4mJgogICAgIG1fYmFja0J1ZmZlci5pbWFnZUJ1ZmZlciA9IFdU
Rk1vdmUoYmFjayk7CiAgICAgbV9zZWNvbmRhcnlCYWNrQnVmZmVyLmltYWdlQnVmZmVyID0gV1RG
TW92ZShzZWNvbmRhcnlCYWNrKTsKIAotICAgIG1fZnJvbnRCdWZmZXIuaXNWb2xhdGlsZSA9IGZh
bHNlOwotCiAgICAgaWYgKGZyb250QnVmZmVyTmVlZHNEaXNwbGF5KQogICAgICAgICBzZXROZWVk
c0Rpc3BsYXkoKTsKIH0KQEAgLTUzMSwxNSArNTI5LDExIEBAIFZlY3RvcjxzdGQ6OnVuaXF1ZV9w
dHI8V2ViQ29yZTo6VGhyZWFkU2FmZUltYWdlQnVmZmVyRmx1c2hlcj4+IFJlbW90ZUxheWVyQmFj
a2luCiAKIGJvb2wgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OnNldEJ1ZmZlclZvbGF0aWxlKEJ1
ZmZlciYgYnVmZmVyKQogewotICAgIGlmICghYnVmZmVyLmltYWdlQnVmZmVyIHx8IGJ1ZmZlci5p
c1ZvbGF0aWxlKQorICAgIGlmICghYnVmZmVyLmltYWdlQnVmZmVyIHx8IGJ1ZmZlci5pbWFnZUJ1
ZmZlci0+dm9sYXRpbGl0eVN0YXRlKCkgPT0gV2ViQ29yZTo6Vm9sYXRpbGl0eVN0YXRlOjpWb2xh
dGlsZSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBidWZmZXIuaW1hZ2VCdWZmZXItPnJl
bGVhc2VHcmFwaGljc0NvbnRleHQoKTsKLSAgICBpZiAoYnVmZmVyLmltYWdlQnVmZmVyLT5zZXRW
b2xhdGlsZSgpKSB7Ci0gICAgICAgIGJ1ZmZlci5pc1ZvbGF0aWxlID0gdHJ1ZTsKLSAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgfQotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gYnVmZmVy
LmltYWdlQnVmZmVyLT5zZXRWb2xhdGlsZSgpOwogfQogCiBXZWJDb3JlOjpTZXROb25Wb2xhdGls
ZVJlc3VsdCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6c2V0QnVmZmVyTm9uVm9sYXRpbGUoQnVm
ZmVyJiBidWZmZXIpCkBAIC01NDksMTAgKzU0Myw5IEBAIFdlYkNvcmU6OlNldE5vblZvbGF0aWxl
UmVzdWx0IFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpzZXRCdWZmZXJOb25Wb2xhdGlsZShCdWZm
CiAgICAgaWYgKCFidWZmZXIuaW1hZ2VCdWZmZXIpCiAgICAgICAgIHJldHVybiBXZWJDb3JlOjpT
ZXROb25Wb2xhdGlsZVJlc3VsdDo6VmFsaWQ7IC8vIE5vdCByZWFsbHkgdmFsaWQgYnV0IHRoZSBj
YWxsZXIgb25seSBjaGVja2VkIHRoZSBFbXB0eSBzdGF0ZS4KIAotICAgIGlmICghYnVmZmVyLmlz
Vm9sYXRpbGUpCisgICAgaWYgKGJ1ZmZlci5pbWFnZUJ1ZmZlci0+dm9sYXRpbGl0eVN0YXRlKCkg
PT0gV2ViQ29yZTo6Vm9sYXRpbGl0eVN0YXRlOjpOb25Wb2xhdGlsZSkKICAgICAgICAgcmV0dXJu
IFdlYkNvcmU6OlNldE5vblZvbGF0aWxlUmVzdWx0OjpWYWxpZDsKIAotICAgIGJ1ZmZlci5pc1Zv
bGF0aWxlID0gZmFsc2U7CiAgICAgcmV0dXJuIGJ1ZmZlci5pbWFnZUJ1ZmZlci0+c2V0Tm9uVm9s
YXRpbGUoKTsKIH0KIApAQCAtNTc2LDcgKzU2OSw2IEBAIHZvaWQgUmVtb3RlTGF5ZXJCYWNraW5n
U3RvcmU6OndpbGxNYWtlQnVmZmVyVm9sYXRpbGUoQnVmZmVyVHlwZSBidWZmZXJUeXBlKQogCiB2
b2lkIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpkaWRNYWtlRnJvbnRCdWZmZXJOb25Wb2xhdGls
ZShXZWJDb3JlOjpTZXROb25Wb2xhdGlsZVJlc3VsdCByZXN1bHQpCiB7Ci0gICAgbV9mcm9udEJ1
ZmZlci5pc1ZvbGF0aWxlID0gZmFsc2U7CiAgICAgaWYgKHJlc3VsdCA9PSBXZWJDb3JlOjpTZXRO
b25Wb2xhdGlsZVJlc3VsdDo6RW1wdHkpCiAgICAgICAgIHNldE5lZWRzRGlzcGxheSgpOwogfQpA
QCAtNjI3LDcgKzYxOSw2IEBAIFJlZlB0cjxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4gUmVtb3RlTGF5
ZXJCYWNraW5nU3RvcmU6OmJ1ZmZlckZvclR5cGUoQnVmZmVyVHlwZSBiCiAKIHZvaWQgUmVtb3Rl
TGF5ZXJCYWNraW5nU3RvcmU6OkJ1ZmZlcjo6ZGlzY2FyZCgpCiB7Ci0gICAgaXNWb2xhdGlsZSA9
IGZhbHNlOwogICAgIGlmIChpbWFnZUJ1ZmZlcikKICAgICAgICAgaW1hZ2VCdWZmZXItPnJlbGVh
c2VCdWZmZXJUb1Bvb2woKTsKICAgICBpbWFnZUJ1ZmZlciA9IG51bGxwdHI7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJXaXRoUmVt
b3RlUmVuZGVyaW5nQmFja2luZ1N0b3JlQ29sbGVjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllcldpdGhSZW1vdGVSZW5kZXJpbmdCYWNraW5n
U3RvcmVDb2xsZWN0aW9uLm1tCmluZGV4IGQxNjM3MGI4ZGM1ZjQ1NmE4YTlmM2ZmZGJjNTU0Nzk1
ZjAxYTk1MGIuLmEyOGUzYTM1Nzc1NDk5NDhhZDJhNjRmOThiMGZjNjE5M2FkOWYxYTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllcldp
dGhSZW1vdGVSZW5kZXJpbmdCYWNraW5nU3RvcmVDb2xsZWN0aW9uLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllcldpdGhSZW1vdGVSZW5kZXJp
bmdCYWNraW5nU3RvcmVDb2xsZWN0aW9uLm1tCkBAIC00NSwxMSArNDUsMjUgQEAgUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5JiBSZW1vdGVMYXllcldpdGhSZW1vdGVSZW5kZXJpbmdCYWNraW5n
U3RvcmVDb2xsZWN0aW8KIAogdm9pZCBSZW1vdGVMYXllcldpdGhSZW1vdGVSZW5kZXJpbmdCYWNr
aW5nU3RvcmVDb2xsZWN0aW9uOjptYWtlRnJvbnRCdWZmZXJOb25Wb2xhdGlsZShSZW1vdGVMYXll
ckJhY2tpbmdTdG9yZSYgYmFja2luZ1N0b3JlKQogewotICAgIGF1dG8mIHJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQgPSBsYXllclRyZWVDb250ZXh0KCkuZW5zdXJlUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5KCk7CiAgICAgYXV0byBmcm9udEJ1ZmZlciA9IGJhY2tpbmdTdG9yZS5idWZmZXJGb3JU
eXBlKFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpCdWZmZXJUeXBlOjpGcm9udCk7CiAgICAgaWYg
KCFmcm9udEJ1ZmZlcikKICAgICAgICAgcmV0dXJuOwogCisgICAgYXV0byBoYXNCYWNrZW5kSGFu
ZGxlID0gW10oY29uc3QgV2ViQ29yZTo6SW1hZ2VCdWZmZXImIGJ1ZmZlcikgeworICAgICAgICBp
ZiAoYXV0byogYmFja2VuZCA9IGJ1ZmZlci5lbnN1cmVCYWNrZW5kQ3JlYXRlZCgpKSB7CisgICAg
ICAgICAgICBhdXRvKiBzaGFyaW5nID0gYmFja2VuZC0+dG9CYWNrZW5kU2hhcmluZygpOworICAg
ICAgICAgICAgaWYgKGlzPEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZVNoYXJpbmc+KHNoYXJpbmcp
KQorICAgICAgICAgICAgICAgIHJldHVybiBkb3duY2FzdDxJbWFnZUJ1ZmZlckJhY2tlbmRIYW5k
bGVTaGFyaW5nPigqc2hhcmluZykuaGFzQmFja2VuZEhhbmRsZSgpOworICAgICAgICB9CisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICB9OworCisgICAgTE9HX1dJVEhfU1RSRUFNKFJlbW90ZVJl
bmRlcmluZ0J1ZmZlclZvbGF0aWxpdHksIHN0cmVhbSA8PCAiUmVtb3RlTGF5ZXJXaXRoUmVtb3Rl
UmVuZGVyaW5nQmFja2luZ1N0b3JlQ29sbGVjdGlvbjo6bWFrZUZyb250QnVmZmVyTm9uVm9sYXRp
bGUgLSBmcm9udCBidWZmZXIgIiA8PCBmcm9udEJ1ZmZlci0+cmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyKCkgPDwgIiBpcyBub24gdm9sYXRpbGUgIiA8PCAoZnJvbnRCdWZmZXItPnZvbGF0aWxp
dHlTdGF0ZSgpID09IFdlYkNvcmU6OlZvbGF0aWxpdHlTdGF0ZTo6Tm9uVm9sYXRpbGUpKTsKKwor
ICAgIGlmIChmcm9udEJ1ZmZlci0+dm9sYXRpbGl0eVN0YXRlKCkgPT0gV2ViQ29yZTo6Vm9sYXRp
bGl0eVN0YXRlOjpOb25Wb2xhdGlsZSAmJiBoYXNCYWNrZW5kSGFuZGxlKCpmcm9udEJ1ZmZlcikp
CisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8mIHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQgPSBs
YXllclRyZWVDb250ZXh0KCkuZW5zdXJlUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KCk7CiAg
ICAgYXV0byByZXN1bHQgPSByZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1hcmtTdXJmYWNlTm9uVm9s
YXRpbGUoZnJvbnRCdWZmZXItPnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpKTsKICAgICBi
YWNraW5nU3RvcmUuZGlkTWFrZUZyb250QnVmZmVyTm9uVm9sYXRpbGUocmVzdWx0KTsKIH0KQEAg
LTc3LDEyICs5MSwxNCBAQCBib29sIFJlbW90ZUxheWVyV2l0aFJlbW90ZVJlbmRlcmluZ0JhY2tp
bmdTdG9yZUNvbGxlY3Rpb246OmNvbGxlY3RCYWNraW5nU3RvcmVCdQogewogICAgIEFTU0VSVCgh
bV9pbkxheWVyRmx1c2gpOwogCi0gICAgLy8gRklYTUU6IFRoaXMgZG9lc24ndCBjb25zdWx0IFJl
bW90ZUxheWVyQmFja2luZ1N0b3JlOjpCdWZmZXI6OmlzVm9sYXRpbGUsIHNvIHdlIG1heSByZWR1
bmRhbnRseSByZXF1ZXN0IHZvbGF0aWxpdHkuCiAgICAgYXV0byBjb2xsZWN0QnVmZmVyID0gWyZd
KFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpCdWZmZXJUeXBlIGJ1ZmZlclR5cGUpIHsKICAgICAg
ICAgYXV0byBidWZmZXIgPSBiYWNraW5nU3RvcmUuYnVmZmVyRm9yVHlwZShidWZmZXJUeXBlKTsK
ICAgICAgICAgaWYgKCFidWZmZXIpCiAgICAgICAgICAgICByZXR1cm47CiAKKyAgICAgICAgaWYg
KGJ1ZmZlci0+dm9sYXRpbGl0eVN0YXRlKCkgIT0gV2ViQ29yZTo6Vm9sYXRpbGl0eVN0YXRlOjpO
b25Wb2xhdGlsZSkKKyAgICAgICAgICAgIHJldHVybjsKKwogICAgICAgICBiYWNraW5nU3RvcmUu
d2lsbE1ha2VCdWZmZXJWb2xhdGlsZShidWZmZXJUeXBlKTsKICAgICAgICAgaWRlbnRpZmllcnMu
YXBwZW5kKGJ1ZmZlci0+cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCkpOwogICAgIH07CkBA
IC0xNzgsMTQgKzE5NCwxMCBAQCB2b2lkIFJlbW90ZUxheWVyV2l0aFJlbW90ZVJlbmRlcmluZ0Jh
Y2tpbmdTdG9yZUNvbGxlY3Rpb246OnNlbmRNYXJrQnVmZmVyc1ZvbGF0aQogewogICAgIGF1dG8m
IHJlbW90ZVJlbmRlcmluZ0JhY2tlbmQgPSBtX2xheWVyVHJlZUNvbnRleHQuZW5zdXJlUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5KCk7CiAgICAgCi0gICAgVmVjdG9yPFdlYkNvcmU6OlJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllcj4gaW5Vc2VCdWZmZXJJZGVudGlmaWVyczsKLSAgICByZW1v
dGVSZW5kZXJpbmdCYWNrZW5kLm1hcmtTdXJmYWNlc1ZvbGF0aWxlKFdURk1vdmUoaWRlbnRpZmll
cnMpLCBbJmluVXNlQnVmZmVySWRlbnRpZmllcnNdKFZlY3RvcjxXZWJDb3JlOjpSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXI+JiYgaW5Vc2VCdWZmZXJzKSB7Ci0gICAgICAgIGluVXNlQnVmZmVy
SWRlbnRpZmllcnMgPSBXVEZNb3ZlKGluVXNlQnVmZmVycyk7CisgICAgcmVtb3RlUmVuZGVyaW5n
QmFja2VuZC5tYXJrU3VyZmFjZXNWb2xhdGlsZShXVEZNb3ZlKGlkZW50aWZpZXJzKSwgW2NvbXBs
ZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGJvb2wgbWFya2VkQWxs
Vm9sYXRpbGUpIG11dGFibGUgeworICAgICAgICBMT0dfV0lUSF9TVFJFQU0oUmVtb3RlUmVuZGVy
aW5nQnVmZmVyVm9sYXRpbGl0eSwgc3RyZWFtIDw8ICJSZW1vdGVMYXllcldpdGhSZW1vdGVSZW5k
ZXJpbmdCYWNraW5nU3RvcmVDb2xsZWN0aW9uOjpzZW5kTWFya0J1ZmZlcnNWb2xhdGlsZTogbWFy
a2VkIGFsbCB2b2xhdGlsZSAiIDw8IG1hcmtlZEFsbFZvbGF0aWxlKTsKKyAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIobWFya2VkQWxsVm9sYXRpbGUpOwogICAgIH0pOwotCi0gICAgTE9HX1dJVEhf
U1RSRUFNKFJlbW90ZVJlbmRlcmluZ0J1ZmZlclZvbGF0aWxpdHksIHN0cmVhbSA8PCAiUmVtb3Rl
TGF5ZXJXaXRoUmVtb3RlUmVuZGVyaW5nQmFja2luZ1N0b3JlQ29sbGVjdGlvbjo6c2VuZE1hcmtC
dWZmZXJzVm9sYXRpbGU6ICIgPDwgaW5Vc2VCdWZmZXJJZGVudGlmaWVycy5zaXplKCkgPDwgIiBi
dWZmZXJzIHN0aWxsIGluLXVzZSIpOwotICAgIC8vIEZJWE1FOiBpblVzZUJ1ZmZlcklkZW50aWZp
ZXJzIHdpbGwgYmUgdXNlZCB0byBtYXAgYmFjayB0byBhbiBJbWFnZUJ1ZmZlciBhbmQgbWFpbnRh
aW4gaXRzICJpc1ZvbGF0aWxlIiBmbGFnLgotICAgIGNvbXBsZXRpb25IYW5kbGVyKGluVXNlQnVm
ZmVySWRlbnRpZmllcnMuaXNFbXB0eSgpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVm
ZmVyQmFja2VuZEhhbmRsZVNoYXJpbmcuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlU2hhcmluZy5oCmluZGV4IGY1N2FmMTky
NDM0NWE1NjYzYWY1NzBmNDQzM2YyZWViNjc4ZGVjNTUuLjU4MDIyOGFmODVmNzUzZTU4YmRmNWVm
YzFkMDdkMWE2YWYwMzYzZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlU2hhcmluZy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxl
U2hhcmluZy5oCkBAIC0zNyw2ICszNyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEltYWdlQnVm
ZmVyQmFja2VuZEhhbmRsZSBjcmVhdGVCYWNrZW5kSGFuZGxlKCkgY29uc3QgPSAwOwogCiAgICAg
dmlydHVhbCB2b2lkIHNldEJhY2tlbmRIYW5kbGUoSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlJiYp
IHsgfQorICAgIHZpcnR1YWwgYm9vbCBoYXNCYWNrZW5kSGFuZGxlKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJCYWNrZW5kSGFuZGxlKCkgeyB9CiAKIHBy
aXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKaW5kZXggMTY2
ZThkNzYzOTE1ZTRhNjA5MDQ2MDY2YTBlN2QyMjc5YjM2ZDhjMi4uMDJkMzExNWUxOWUyNDVmNGM1
NDU0NWI3ZDZjYTMyM2E4OTBhOTBlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5LmNwcApAQCAtMzA0LDcgKzMwNCw5IEBAIGF1dG8gUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5Ojpzd2FwVG9WYWxpZEZyb250QnVmZmVyKGNvbnN0IEJ1ZmZlclNldCYgYnVmZmVyCiAg
ICAgc2VuZFN5bmNUb1N0cmVhbShNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6U3dh
cFRvVmFsaWRGcm9udEJ1ZmZlcihidWZmZXJTZXQpLAogICAgICAgICBNZXNzYWdlczo6UmVtb3Rl
UmVuZGVyaW5nQmFja2VuZDo6U3dhcFRvVmFsaWRGcm9udEJ1ZmZlcjo6UmVwbHkoc3dhcHBlZEJ1
ZmZlclNldCwgZnJvbnRCdWZmZXJIYW5kbGUsIGZyb250QnVmZmVyV2FzRW1wdHkpKTsKIAotICAg
IGF1dG8gZmV0Y2hCdWZmZXJXaXRoSWRlbnRpZmllciA9IFsmXShzdGQ6Om9wdGlvbmFsPFJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllcj4gaWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxJbWFnZUJ1
ZmZlckJhY2tlbmRIYW5kbGU+JiYgaGFuZGxlID0gc3RkOjpudWxsb3B0KSAtPiBSZWZQdHI8SW1h
Z2VCdWZmZXI+IHsKKyAgICBBTFdBWVNfTE9HX1dJVEhfU1RSRUFNKHN0cmVhbSA8PCAiUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5Ojpzd2FwVG9WYWxpZEZyb250QnVmZmVyIHN3YXBwZWQgdG8g
IiA8PCBzd2FwcGVkQnVmZmVyU2V0LmZyb250IDw8ICIgIiA8PCBzd2FwcGVkQnVmZmVyU2V0LmJh
Y2sgPDwgIiAiIDw8IHN3YXBwZWRCdWZmZXJTZXQuc2Vjb25kYXJ5QmFjayk7CisKKyAgICBhdXRv
IGZldGNoQnVmZmVyV2l0aElkZW50aWZpZXIgPSBbJl0oc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXI+IGlkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8SW1hZ2VCdWZmZXJC
YWNrZW5kSGFuZGxlPiYmIGhhbmRsZSA9IHN0ZDo6bnVsbG9wdCwgYm9vbCBpc0Zyb250QnVmZmVy
ID0gZmFsc2UpIC0+IFJlZlB0cjxJbWFnZUJ1ZmZlcj4gewogICAgICAgICBpZiAoIWlkZW50aWZp
ZXIpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApAQCAtMzE5LDEzICszMjEsMTggQEAg
YXV0byBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnN3YXBUb1ZhbGlkRnJvbnRCdWZmZXIo
Y29uc3QgQnVmZmVyU2V0JiBidWZmZXIKICAgICAgICAgICAgICAgICAgICAgZG93bmNhc3Q8SW1h
Z2VCdWZmZXJCYWNrZW5kSGFuZGxlU2hhcmluZz4oKnNoYXJpbmcpLnNldEJhY2tlbmRIYW5kbGUo
V1RGTW92ZSgqaGFuZGxlKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KKyAgICAgICAgCisg
ICAgICAgIGlmIChpc0Zyb250QnVmZmVyKSB7CisgICAgICAgICAgICAvLyBXZSBrbm93IHRoZSBH
UFUgUHJvY2VzcyBhbHdheXMgc2V0cyB0aGUgbmV3IGZyb250IGJ1ZmZlciB0byBiZSBub24tdm9s
YXRpbGUuCisgICAgICAgICAgICBidWZmZXItPnNldFZvbGF0aWxpdHlTdGF0ZShWb2xhdGlsaXR5
U3RhdGU6Ok5vblZvbGF0aWxlKTsKKyAgICAgICAgfQogCiAgICAgICAgIHJldHVybiBidWZmZXI7
CiAgICAgfTsKIAogICAgIHJldHVybiB7CiAgICAgICAgIHsKLSAgICAgICAgICAgIGZldGNoQnVm
ZmVyV2l0aElkZW50aWZpZXIoc3dhcHBlZEJ1ZmZlclNldC5mcm9udCwgV1RGTW92ZShmcm9udEJ1
ZmZlckhhbmRsZSkpLAorICAgICAgICAgICAgZmV0Y2hCdWZmZXJXaXRoSWRlbnRpZmllcihzd2Fw
cGVkQnVmZmVyU2V0LmZyb250LCBXVEZNb3ZlKGZyb250QnVmZmVySGFuZGxlKSwgdHJ1ZSksCiAg
ICAgICAgICAgICBmZXRjaEJ1ZmZlcldpdGhJZGVudGlmaWVyKHN3YXBwZWRCdWZmZXJTZXQuYmFj
ayksCiAgICAgICAgICAgICBmZXRjaEJ1ZmZlcldpdGhJZGVudGlmaWVyKHN3YXBwZWRCdWZmZXJT
ZXQuc2Vjb25kYXJ5QmFjaykKICAgICAgICAgfSwKQEAgLTM0OCwxOCArMzU1LDI3IEBAIFNldE5v
blZvbGF0aWxlUmVzdWx0IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6bWFya1N1cmZhY2VO
b25Wb2xhdGlsZShSZW5kZXJpCiAgICAgICAgICAgICBpZiAoaXM8SW1hZ2VCdWZmZXJCYWNrZW5k
SGFuZGxlU2hhcmluZz4oc2hhcmluZykpCiAgICAgICAgICAgICAgICAgZG93bmNhc3Q8SW1hZ2VC
dWZmZXJCYWNrZW5kSGFuZGxlU2hhcmluZz4oKnNoYXJpbmcpLnNldEJhY2tlbmRIYW5kbGUoV1RG
TW92ZSgqYmFja2VuZEhhbmRsZSkpOwogICAgICAgICB9CisKKyAgICAgICAgYnVmZmVyLT5zZXRW
b2xhdGlsaXR5U3RhdGUoVm9sYXRpbGl0eVN0YXRlOjpOb25Wb2xhdGlsZSk7CiAgICAgfQogCiAg
ICAgcmV0dXJuIGJ1ZmZlcldhc0VtcHR5ID8gU2V0Tm9uVm9sYXRpbGVSZXN1bHQ6OkVtcHR5IDog
U2V0Tm9uVm9sYXRpbGVSZXN1bHQ6OlZhbGlkOwogfQogCi12b2lkIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eTo6bWFya1N1cmZhY2VzVm9sYXRpbGUoVmVjdG9yPFdlYkNvcmU6OlJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcj4mJiBpZGVudGlmaWVycywgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChWZWN0b3I8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiYmKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjptYXJrU3Vy
ZmFjZXNWb2xhdGlsZShWZWN0b3I8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
PiYmIGlkZW50aWZpZXJzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQogewotICAgIFZlY3RvcjxXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXI+IGluVXNlQnVmZmVySWRlbnRpZmllcnM7Ci0gICAgLy8gRklYTUU6IFRoaXMgc2hvdWxk
IGJlY29tZSBhc3luYyB3aGVuIHdlYmtpdC5vcmcvYi8yMzU5NjUgaXMgZml4ZWQuCi0gICAgc2Vu
ZFN5bmNUb1N0cmVhbShNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6TWFya1N1cmZh
Y2VzVm9sYXRpbGUoaWRlbnRpZmllcnMpLCBNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZDo6TWFya1N1cmZhY2VzVm9sYXRpbGU6OlJlcGx5KGluVXNlQnVmZmVySWRlbnRpZmllcnMpKTsK
KyAgICBWZWN0b3I8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiBtYXJrZWRW
b2xhdGlsZUJ1ZmZlcklkZW50aWZpZXJzOworICAgIC8vIEZJWE1FOiBUaGlzIGNvdWxkIGJlY29t
ZSBhc3luYyB3aGVuIHdlYmtpdC5vcmcvYi8yMzU5NjUgaXMgZml4ZWQgKGJ1dCBiZSBjYXJlZnVs
IHdpdGggYnVmZmVyIHZvbGF0aWxpdHkgc3RhdGUpLgorICAgIHNlbmRTeW5jVG9TdHJlYW0oTWVz
c2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6Ok1hcmtTdXJmYWNlc1ZvbGF0aWxlKGlkZW50
aWZpZXJzKSwgTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6Ok1hcmtTdXJmYWNlc1Zv
bGF0aWxlOjpSZXBseShtYXJrZWRWb2xhdGlsZUJ1ZmZlcklkZW50aWZpZXJzKSk7CiAKLSAgICBj
b21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGluVXNlQnVmZmVySWRlbnRpZmllcnMpKTsKKyAgICBm
b3IgKGF1dG8gaWRlbnRpZmllciA6IG1hcmtlZFZvbGF0aWxlQnVmZmVySWRlbnRpZmllcnMpIHsK
KyAgICAgICAgYXV0byBpbWFnZUJ1ZmZlciA9IG1fcmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNh
Y2hlZEltYWdlQnVmZmVyKGlkZW50aWZpZXIpOworICAgICAgICBpZiAoaW1hZ2VCdWZmZXIpCisg
ICAgICAgICAgICBpbWFnZUJ1ZmZlci0+c2V0Vm9sYXRpbGl0eVN0YXRlKFdlYkNvcmU6OlZvbGF0
aWxpdHlTdGF0ZTo6Vm9sYXRpbGUpOworICAgIH0KKyAgICAKKyAgICBib29sIG1hcmtlZEFsbFZv
bGF0aWxlID0gaWRlbnRpZmllcnMuc2l6ZSgpID09IG1hcmtlZFZvbGF0aWxlQnVmZmVySWRlbnRp
ZmllcnMuc2l6ZSgpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKG1hcmtlZEFsbFZvbGF0aWxlKTsK
IH0KIAogdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmZpbmFsaXplUmVuZGVyaW5n
VXBkYXRlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oCmluZGV4IGE1OWEw
MGE1MWQzZGQzN2E1NWRjM2VlNzFmYmJmNTNhMzIzNWZkMDIuLmZiODc3MWQwMmMwMTlhZjhkYTg3
ZTU1NTkxNGFlMzUyNThmNTA1ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHkuaApAQCAtOTMsNyArOTMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjYWNoZUZvbnQoUmVmPFdl
YkNvcmU6OkZvbnQ+JiYpOwogICAgIHZvaWQgZGVsZXRlQWxsRm9udHMoKTsKICAgICB2b2lkIHJl
bGVhc2VSZW1vdGVSZXNvdXJjZShXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIp
OwotICAgIHZvaWQgbWFya1N1cmZhY2VzVm9sYXRpbGUoVmVjdG9yPFdlYkNvcmU6OlJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcj4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2Vi
Q29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiYmIGluVXNlQnVmZmVySWRlbnRpZmll
cnMpPiYmKTsKKyAgICB2b2lkIG1hcmtTdXJmYWNlc1ZvbGF0aWxlKFZlY3RvcjxXZWJDb3JlOjpS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCBtYWRlQWxsVm9sYXRpbGUpPiYmKTsKIAogICAgIFdlYkNvcmU6OlNldE5vblZvbGF0aWxlUmVz
dWx0IG1hcmtTdXJmYWNlTm9uVm9sYXRpbGUoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9jb2NvYS9JbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclJlbW90ZUlP
U3VyZmFjZUJhY2tlbmQuY3BwCmluZGV4IDgzYTE2MjViNjlmZmJiYWRjMWIwNmM4ZjM2ODk2NGVj
NzBhMWU0NzcuLjQwMTFjYThlYTk5M2YzZWZhNDdmYmU4YmU2NjVjNzk5YTI3OWY5OGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VC
dWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyUmVtb3RlSU9TdXJmYWNlQmFja2Vu
ZC5jcHAKQEAgLTY2LDYgKzY2LDExIEBAIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlclJlbW90
ZUlPU3VyZmFjZUJhY2tlbmQ+IEltYWdlQnVmZmVyUmVtb3RlSU9TdXJmYWNlQmFjCiAKIEltYWdl
QnVmZmVyQmFja2VuZEhhbmRsZSBJbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQ6OmNy
ZWF0ZUJhY2tlbmRIYW5kbGUoKSBjb25zdAogeworICAgIGlmICghc3RkOjpob2xkc19hbHRlcm5h
dGl2ZTxNYWNoU2VuZFJpZ2h0PihtX2hhbmRsZSkpIHsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisKICAgICByZXR1cm4g
c3RkOjpnZXQ8TWFjaFNlbmRSaWdodD4obV9oYW5kbGUpLmNvcHlTZW5kUmlnaHQoKTsKIH0KIApA
QCAtNzksNiArODQsMTEgQEAgdm9pZCBJbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQ6
OmNsZWFyQmFja2VuZEhhbmRsZSgpCiAgICAgbV9oYW5kbGUgPSB7IH07CiB9CiAKK2Jvb2wgSW1h
Z2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VCYWNrZW5kOjpoYXNCYWNrZW5kSGFuZGxlKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxNYWNoU2VuZFJpZ2h0PihtX2hh
bmRsZSk7Cit9CisKIEdyYXBoaWNzQ29udGV4dCYgSW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VC
YWNrZW5kOjpjb250ZXh0KCkgY29uc3QKIHsKICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hF
RCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9j
b2NvYS9JbWFnZUJ1ZmZlclJlbW90ZUlPU3VyZmFjZUJhY2tlbmQuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJSZW1vdGVJT1N1cmZhY2VC
YWNrZW5kLmgKaW5kZXggZGZiMGZlOWRhYzUxMDkzYTM0ZTgxNTFiNzg2ZmRjOGZjZWVjNDlmZS4u
MDk0MWJmZGE3ZWUwNThjOThmMDM1MjJkM2FlNzNjOTU3NGFjOTkyOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclJlbW90
ZUlPU3VyZmFjZUJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyUmVtb3RlSU9TdXJmYWNlQmFja2VuZC5oCkBAIC03Miwx
MiArNzIsMTggQEAgcHJpdmF0ZToKIAogICAgIHVuc2lnbmVkIGJ5dGVzUGVyUm93KCkgY29uc3Qg
ZmluYWw7CiAKKyAgICBXZWJDb3JlOjpWb2xhdGlsaXR5U3RhdGUgdm9sYXRpbGl0eVN0YXRlKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gbV92b2xhdGlsaXR5U3RhdGU7IH0KKyAgICB2b2lkIHNldFZv
bGF0aWxpdHlTdGF0ZShXZWJDb3JlOjpWb2xhdGlsaXR5U3RhdGUgdm9sYXRpbGl0eVN0YXRlKSBm
aW5hbCB7IG1fdm9sYXRpbGl0eVN0YXRlID0gdm9sYXRpbGl0eVN0YXRlOyB9CisKICAgICAvLyBJ
bWFnZUJ1ZmZlckJhY2tlbmRTaGFyaW5nCiAgICAgSW1hZ2VCdWZmZXJCYWNrZW5kU2hhcmluZyog
dG9CYWNrZW5kU2hhcmluZygpIGZpbmFsIHsgcmV0dXJuIHRoaXM7IH0KICAgICB2b2lkIHNldEJh
Y2tlbmRIYW5kbGUoSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlJiYpIGZpbmFsOwogICAgIHZvaWQg
Y2xlYXJCYWNrZW5kSGFuZGxlKCkgZmluYWw7CisgICAgYm9vbCBoYXNCYWNrZW5kSGFuZGxlKCkg
Y29uc3QgZmluYWw7CiAKICAgICBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgbV9oYW5kbGU7CisK
KyAgICBXZWJDb3JlOjpWb2xhdGlsaXR5U3RhdGUgbV92b2xhdGlsaXR5U3RhdGUgeyBXZWJDb3Jl
OjpWb2xhdGlsaXR5U3RhdGU6Ok5vblZvbGF0aWxlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQK
</data>

          </attachment>
      

    </bug>

</bugzilla>