<?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>204722</bug_id>
          
          <creation_ts>2019-11-30 16:05:08 -0800</creation_ts>
          <short_desc>Make CompositeOperator and BlendMode encodable</short_desc>
          <delta_ts>2019-11-30 22:11:18 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>dino</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>graouts</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>jer.noble</cc>
    
    <cc>joepeck</cc>
    
    <cc>jonlee</cc>
    
    <cc>kangil.han</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>noam</cc>
    
    <cc>pdr</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>sam</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>vjaquez</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1594357</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-11-30 16:05:08 -0800</bug_when>
    <thetext>Make CompositeOperator and BlendMode encodable</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594358</commentid>
    <comment_count>1</comment_count>
      <attachid>384553</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-11-30 16:05:38 -0800</bug_when>
    <thetext>Created attachment 384553
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594359</commentid>
    <comment_count>2</comment_count>
      <attachid>384554</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-11-30 16:08:26 -0800</bug_when>
    <thetext>Created attachment 384554
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594388</commentid>
    <comment_count>3</comment_count>
      <attachid>384554</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-30 22:10:33 -0800</bug_when>
    <thetext>Comment on attachment 384554
Patch

Clearing flags on attachment: 384554

Committed r252965: &lt;https://trac.webkit.org/changeset/252965&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594389</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-30 22:10:35 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594390</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-11-30 22:11:18 -0800</bug_when>
    <thetext>&lt;rdar://problem/57542503&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384553</attachid>
            <date>2019-11-30 16:05:38 -0800</date>
            <delta_ts>2019-11-30 16:08:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204722-20191130160537.patch</filename>
            <type>text/plain</type>
            <size>80416</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyOTM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjZlNjQ1MTZjOGI4NzEz
ZmExMWM1ODVjZDE1YjdkNjcxMTA5YzMyOC4uYzYzMjNhMWQxYWQwOTQ3ODAyZjM3M2FjYWYxZTk3
N2Q4NWYxYzQ5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExMSBAQAorMjAxOS0xMS0zMCAgVGlt
IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIENvbXBv
c2l0ZU9wZXJhdG9yIGFuZCBCbGVuZE1vZGUgZW5jb2RhYmxlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ3MjIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIENvbXBvc2l0ZU9wZXJhdG9yIGFuIGBl
bnVtIGNsYXNzYCwgYW5kIGZpeCB0aGUgZmFsbG91dC4KKyAgICAgICAgQWRkIEVudW1UcmFpdHMg
Zm9yIENvbXBvc2l0ZU9wZXJhdG9yIGFuZCBCbGVuZE1vZGUsIHNvIHRoYXQgdGhleSBjYW4gYmUg
ZW5jb2RlZC4KKworICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIENvbXBvc2l0ZU9w
ZXJhdG9yIGNvbnN0KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OmNvbXBvc2l0ZU9wZXJhdG9yRm9yQmFja2dyb3VuZENvbG9yIGNvbnN0
KToKKyAgICAgICAgKiBodG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTEltYWdlRWxlbWVudDo6SFRNTEltYWdlRWxlbWVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MSW1hZ2VFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgICogaHRtbC9jYW52
YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbCk6CisgICAgICAgICogaHRtbC9j
YW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpTdGF0ZTo6U3RhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6c2V0R2xvYmFsQ29tcG9zaXRl
T3BlcmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJh
c2U6OmlzRnVsbENhbnZhc0NvbXBvc2l0ZU1vZGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6ZmlsbEludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6
OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OnN0cm9rZUludGVybmFsKToKKyAgICAgICAg
KFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmNsZWFyUmVjdCk6CisgICAg
ICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpmaWxsUmVjdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpzdHJva2VSZWN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmRyYXdJ
bWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpk
cmF3SW1hZ2VGcm9tUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkRCYXNlOjpmdWxsQ2FudmFzQ29tcG9zaXRlZERyYXdJbWFnZSk6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZHJhd091dGxp
bmVkUXVhZFdpdGhDbGlwKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVH
ZW5lcmF0ZWRJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcm9zc2ZhZGVHZW5lcmF0ZWRJ
bWFnZTo6ZHJhd0Nyb3NzZmFkZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpkdW1wUHJvcGVydGllcyBjb25z
dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBlcy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpwYXJzZUNvbXBvc2l0ZUFuZEJsZW5kT3BlcmF0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6Y29tcG9zaXRlT3BlcmF0b3JOYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc1R5cGVzLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2U6OmZpbGxXaXRoU29saWRDb2xvcik6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VQYWludGluZ09wdGlvbnMuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNo
YWRvd0JsdXI6OmJsdXJBbmRDb2xvclNoYWRvd0J1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNh
aXJvOjpkcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0NhaXJvT3BlcmF0aW9ucy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0Nh
aXJvVXRpbGl0aWVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvQ2Fpcm9Db21wb3NpdGVPcGVy
YXRvcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0M0RD
Ry5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cGFpbnRUb0NhbnZh
cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6c2VsZWN0Q0dCbGVuZE1vZGUpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRUJs
ZW5kOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUpOgorICAgICAgICAoV2ViQ29yZTo6RkVCbGVuZDo6
ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbiBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRUNvbXBvc2l0
ZTo6cGxhdGZvcm1BcHBseVNvZnR3YXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFRHJvcFNoYWRvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRURyb3BTaGFkb3c6
OnBsYXRmb3JtQXBwbHlTb2Z0d2FyZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9Tb3VyY2VBbHBoYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VBbHBoYTo6cGxh
dGZvcm1BcHBseVNvZnR3YXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cGFpbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL25pY29zaWEvTmljb3NpYVBhaW50aW5nRW5naW5lQmFzaWMuY3BwOgorICAgICAgICAo
Tmljb3NpYTo6UGFpbnRpbmdFbmdpbmVCYXNpYzo6cGFpbnQpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL25pY29zaWEvTmljb3NpYVBhaW50aW5nRW5naW5lVGhyZWFkZWQuY3BwOgorICAg
ICAgICAoTmljb3NpYTo6cGFpbnRMYXllcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmZsdXNoQ29tcG9zaXRpbmdTdGF0
ZUZvclRoaXNMYXllck9ubHkpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9EaXJl
Y3QyRE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlyZWN0MkQ6OlN0YXRlOjpz
ZXRDb21wb3NpdGVPcGVyYXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9E
aXJlY3QyRE9wZXJhdGlvbnMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1h
Z2VDR1dpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6Z2V0SEJJVE1BUE9m
U2l6ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdlQ2Fpcm9XaW4uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmdldEhCSVRNQVBPZlNpemUpOgorICAg
ICAgICAqIHJlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
bGluZUZsb3dCb3g6OnBhaW50TWFzayk6CisgICAgICAgICogcmVuZGVyaW5nL0lubGluZUZsb3dC
b3guaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJveDo6cGFpbnRNYXNrSW1hZ2VzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyQm94Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEZpbGxMYXllckV4
dGVuZGVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OnBhaW50UmVwbGFjZWQpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbWFnZTo6
cGFpbnRJbnRvUmVjdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpzdXBwb3J0c0RpcmVjdGx5Q29tcG9zaXRlZEJveERlY29y
YXRpb25zKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHA6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
Vmlldzo6cGFpbnRCb3hEZWNvcmF0aW9ucyk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0Zp
bGxMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxsTGF5ZXI6OkZpbGxMYXllcik6Cisg
ICAgICAgIChXZWJDb3JlOjpGaWxsTGF5ZXI6Omhhc09wYXF1ZUltYWdlIGNvbnN0KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpGaWxs
TGF5ZXI6OmluaXRpYWxGaWxsQ29tcG9zaXRlKToKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZH
SW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2U6Om5hdGl2ZUltYWdlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0ltYWdlOjpkcmF3KToKKwogMjAxOS0xMS0yOCAgRnVqaWkgSGly
b25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNvbT4KIAogICAgICAgICBSZW1vdmUgRU5BQkxF
X0tFWUJPQVJEX0NPREVfQVRUUklCVVRFIGFuZCBFTkFCTEVfS0VZQk9BUkRfS0VZX0FUVFJJQlVU
RSBtYWNyb3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggNTBjZWJhYzkwZGE1ODkxNTZjMzA4ZDVhNjRjZGMzOTA1ZmJh
NzkwOS4uNmM1MmExYTkyOTlmYzk4ZDE5NjQ4NmRkMTMzNjA3N2Y3MDMyNzAxYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxOCBAQAorMjAxOS0xMS0zMCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9u
QGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIENvbXBvc2l0ZU9wZXJhdG9yIGFuZCBCbGVuZE1v
ZGUgZW5jb2RhYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDQ3MjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFVJUHJvY2Vzcy9jYWlyby9CYWNraW5nU3RvcmVDYWlyby5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkJhY2tpbmdTdG9yZTo6aW5jb3Jwb3JhdGVVcGRhdGUpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblBy
b3h5OjpwYWludCk6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb3h5Ojp1cGRhdGUpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkZpbmRDb250cm9sbGVyOjpkcmF3UmVjdCk6CisKIDIwMTktMTEtMjggIEZ1amlpIEhp
cm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAgICAgUmVtb3ZlIEVOQUJM
RV9LRVlCT0FSRF9DT0RFX0FUVFJJQlVURSBhbmQgRU5BQkxFX0tFWUJPQVJEX0tFWV9BVFRSSUJV
VEUgbWFjcm9zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggZTdhMGIzODc3Y2JhNTli
ZWQwMTVlM2Y3MDY4MTc4MDU0MGIzM2NkMi4uNGRjYjRmZWQyYjZlNzJkMTIwNWY4MmY5NTliMWE4
YzZiMGExZTk4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBA
CisyMDE5LTExLTMwICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisg
ICAgICAgIE1ha2UgQ29tcG9zaXRlT3BlcmF0b3IgYW5kIEJsZW5kTW9kZSBlbmNvZGFibGUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDcyMgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRnVsbHNjcmVl
blZpZGVvQ29udHJvbGxlci5jcHA6CisgICAgICAgIChGdWxsc2NyZWVuVmlkZW9Db250cm9sbGVy
OjpkcmF3KToKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6OnBhaW50
V2l0aERpcmVjdDJEKToKKyAgICAgICAgKFdlYlZpZXc6OnBhaW50SW50b0JhY2tpbmdTdG9yZSk6
CisKIDIwMTktMTAtMzEgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgV2luZG93cyBidWlsZCBmaXggYXR0ZW1wdCBhZnRlciByMjUxNzk4LgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKaW5kZXggYTM5OGQxMDQ4OWUw
NTBlY2RiZTQyMDNiOTc0NzhkZGM3MzA0MTU4ZC4uNDM2MWYyY2Q2ZjIwZTQ0OTlhYmM5YWQzMjgw
ZjUxMWNhZTBlMmRlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2
ZVZhbHVlTWFwcGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFs
dWVNYXBwaW5ncy5oCkBAIC0zMzQsNDYgKzMzNCw0NiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQ29tcG9zaXRlT3BlcmF0b3IgZSkKIHsK
ICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsKICAg
ICBzd2l0Y2ggKGUpIHsKLSAgICBjYXNlIENvbXBvc2l0ZUNsZWFyOgorICAgIGNhc2UgQ29tcG9z
aXRlT3BlcmF0b3I6OkNsZWFyOgogICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZUNs
ZWFyOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIENvbXBvc2l0ZUNvcHk6CisgICAgY2FzZSBD
b21wb3NpdGVPcGVyYXRvcjo6Q29weToKICAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVDb3B5OwogICAgICAgICBicmVhazsKLSAgICBjYXNlIENvbXBvc2l0ZVNvdXJjZU92ZXI6Cisg
ICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6U291cmNlT3ZlcjoKICAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVTb3VyY2VPdmVyOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIENv
bXBvc2l0ZVNvdXJjZUluOgorICAgIGNhc2UgQ29tcG9zaXRlT3BlcmF0b3I6OlNvdXJjZUluOgog
ICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNvdXJjZUluOwogICAgICAgICBicmVh
azsKLSAgICBjYXNlIENvbXBvc2l0ZVNvdXJjZU91dDoKKyAgICBjYXNlIENvbXBvc2l0ZU9wZXJh
dG9yOjpTb3VyY2VPdXQ6CiAgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU291cmNl
T3V0OwogICAgICAgICBicmVhazsKLSAgICBjYXNlIENvbXBvc2l0ZVNvdXJjZUF0b3A6CisgICAg
Y2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6U291cmNlQXRvcDoKICAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVTb3VyY2VBdG9wOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIENvbXBv
c2l0ZURlc3RpbmF0aW9uT3ZlcjoKKyAgICBjYXNlIENvbXBvc2l0ZU9wZXJhdG9yOjpEZXN0aW5h
dGlvbk92ZXI6CiAgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRGVzdGluYXRpb25P
dmVyOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIENvbXBvc2l0ZURlc3RpbmF0aW9uSW46Cisg
ICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6RGVzdGluYXRpb25JbjoKICAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVEZXN0aW5hdGlvbkluOwogICAgICAgICBicmVhazsKLSAgICBj
YXNlIENvbXBvc2l0ZURlc3RpbmF0aW9uT3V0OgorICAgIGNhc2UgQ29tcG9zaXRlT3BlcmF0b3I6
OkRlc3RpbmF0aW9uT3V0OgogICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZURlc3Rp
bmF0aW9uT3V0OwogICAgICAgICBicmVhazsKLSAgICBjYXNlIENvbXBvc2l0ZURlc3RpbmF0aW9u
QXRvcDoKKyAgICBjYXNlIENvbXBvc2l0ZU9wZXJhdG9yOjpEZXN0aW5hdGlvbkF0b3A6CiAgICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRGVzdGluYXRpb25BdG9wOwogICAgICAgICBi
cmVhazsKLSAgICBjYXNlIENvbXBvc2l0ZVhPUjoKKyAgICBjYXNlIENvbXBvc2l0ZU9wZXJhdG9y
OjpYT1I6CiAgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlWG9yOwogICAgICAgICBi
cmVhazsKLSAgICBjYXNlIENvbXBvc2l0ZVBsdXNEYXJrZXI6CisgICAgY2FzZSBDb21wb3NpdGVP
cGVyYXRvcjo6UGx1c0RhcmtlcjoKICAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVQ
bHVzRGFya2VyOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIENvbXBvc2l0ZVBsdXNMaWdodGVy
OgorICAgIGNhc2UgQ29tcG9zaXRlT3BlcmF0b3I6OlBsdXNMaWdodGVyOgogICAgICAgICBtX3Zh
bHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVBsdXNMaWdodGVyOwogICAgICAgICBicmVhazsKLSAgICBj
YXNlIENvbXBvc2l0ZURpZmZlcmVuY2U6CisgICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6RGlm
ZmVyZW5jZToKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGJyZWFrOwog
ICAgIH0KQEAgLTM4NSwzNyArMzg1LDM3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2
ZVZhbHVlOjpvcGVyYXRvciBDb21wb3NpdGVPcGVyYXRvcigpIGNvbnN0CiAKICAgICBzd2l0Y2gg
KG1fdmFsdWUudmFsdWVJRCkgewogICAgIGNhc2UgQ1NTVmFsdWVDbGVhcjoKLSAgICAgICAgcmV0
dXJuIENvbXBvc2l0ZUNsZWFyOworICAgICAgICByZXR1cm4gQ29tcG9zaXRlT3BlcmF0b3I6OkNs
ZWFyOwogICAgIGNhc2UgQ1NTVmFsdWVDb3B5OgotICAgICAgICByZXR1cm4gQ29tcG9zaXRlQ29w
eTsKKyAgICAgICAgcmV0dXJuIENvbXBvc2l0ZU9wZXJhdG9yOjpDb3B5OwogICAgIGNhc2UgQ1NT
VmFsdWVTb3VyY2VPdmVyOgotICAgICAgICByZXR1cm4gQ29tcG9zaXRlU291cmNlT3ZlcjsKKyAg
ICAgICAgcmV0dXJuIENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VPdmVyOwogICAgIGNhc2UgQ1NT
VmFsdWVTb3VyY2VJbjoKLSAgICAgICAgcmV0dXJuIENvbXBvc2l0ZVNvdXJjZUluOworICAgICAg
ICByZXR1cm4gQ29tcG9zaXRlT3BlcmF0b3I6OlNvdXJjZUluOwogICAgIGNhc2UgQ1NTVmFsdWVT
b3VyY2VPdXQ6Ci0gICAgICAgIHJldHVybiBDb21wb3NpdGVTb3VyY2VPdXQ7CisgICAgICAgIHJl
dHVybiBDb21wb3NpdGVPcGVyYXRvcjo6U291cmNlT3V0OwogICAgIGNhc2UgQ1NTVmFsdWVTb3Vy
Y2VBdG9wOgotICAgICAgICByZXR1cm4gQ29tcG9zaXRlU291cmNlQXRvcDsKKyAgICAgICAgcmV0
dXJuIENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VBdG9wOwogICAgIGNhc2UgQ1NTVmFsdWVEZXN0
aW5hdGlvbk92ZXI6Ci0gICAgICAgIHJldHVybiBDb21wb3NpdGVEZXN0aW5hdGlvbk92ZXI7Cisg
ICAgICAgIHJldHVybiBDb21wb3NpdGVPcGVyYXRvcjo6RGVzdGluYXRpb25PdmVyOwogICAgIGNh
c2UgQ1NTVmFsdWVEZXN0aW5hdGlvbkluOgotICAgICAgICByZXR1cm4gQ29tcG9zaXRlRGVzdGlu
YXRpb25JbjsKKyAgICAgICAgcmV0dXJuIENvbXBvc2l0ZU9wZXJhdG9yOjpEZXN0aW5hdGlvbklu
OwogICAgIGNhc2UgQ1NTVmFsdWVEZXN0aW5hdGlvbk91dDoKLSAgICAgICAgcmV0dXJuIENvbXBv
c2l0ZURlc3RpbmF0aW9uT3V0OworICAgICAgICByZXR1cm4gQ29tcG9zaXRlT3BlcmF0b3I6OkRl
c3RpbmF0aW9uT3V0OwogICAgIGNhc2UgQ1NTVmFsdWVEZXN0aW5hdGlvbkF0b3A6Ci0gICAgICAg
IHJldHVybiBDb21wb3NpdGVEZXN0aW5hdGlvbkF0b3A7CisgICAgICAgIHJldHVybiBDb21wb3Np
dGVPcGVyYXRvcjo6RGVzdGluYXRpb25BdG9wOwogICAgIGNhc2UgQ1NTVmFsdWVYb3I6Ci0gICAg
ICAgIHJldHVybiBDb21wb3NpdGVYT1I7CisgICAgICAgIHJldHVybiBDb21wb3NpdGVPcGVyYXRv
cjo6WE9SOwogICAgIGNhc2UgQ1NTVmFsdWVQbHVzRGFya2VyOgotICAgICAgICByZXR1cm4gQ29t
cG9zaXRlUGx1c0RhcmtlcjsKKyAgICAgICAgcmV0dXJuIENvbXBvc2l0ZU9wZXJhdG9yOjpQbHVz
RGFya2VyOwogICAgIGNhc2UgQ1NTVmFsdWVQbHVzTGlnaHRlcjoKLSAgICAgICAgcmV0dXJuIENv
bXBvc2l0ZVBsdXNMaWdodGVyOworICAgICAgICByZXR1cm4gQ29tcG9zaXRlT3BlcmF0b3I6OlBs
dXNMaWdodGVyOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBDb21wb3NpdGVDbGVhcjsKKyAgICByZXR1
cm4gQ29tcG9zaXRlT3BlcmF0b3I6OkNsZWFyOwogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQ29udHJvbFBhcnQgZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCmluZGV4IGQ1NjJlOTNlM2E2NDcxYmIzYWFmNjU1OTY5NWIxNDZkOWE2Zjhi
YjcuLmZmMGU0MjIwYWMzYzkyNWVkNWYyOTg0ZWEyMTM0ZmY2YTg0Y2JiODQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcApAQCAtNzExOSwxNSArNzExOSwxNSBAQCBPcHRpb25TZXQ8U3R5bGVDb2xv
cjo6T3B0aW9ucz4gRG9jdW1lbnQ6OnN0eWxlQ29sb3JPcHRpb25zKGNvbnN0IFJlbmRlclN0eWxl
KiBzdAogQ29tcG9zaXRlT3BlcmF0b3IgRG9jdW1lbnQ6OmNvbXBvc2l0ZU9wZXJhdG9yRm9yQmFj
a2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJiBjb2xvciwgY29uc3QgUmVuZGVyT2JqZWN0JiByZW5k
ZXJlcikgY29uc3QKIHsKICAgICBpZiAoTElLRUxZKCFzZXR0aW5ncygpLnB1bmNoT3V0V2hpdGVC
YWNrZ3JvdW5kc0luRGFya01vZGUoKSB8fCAhQ29sb3I6OmlzV2hpdGVDb2xvcihjb2xvcikgfHwg
IXJlbmRlcmVyLnVzZURhcmtBcHBlYXJhbmNlKCkpKQotICAgICAgICByZXR1cm4gQ29tcG9zaXRl
U291cmNlT3ZlcjsKKyAgICAgICAgcmV0dXJuIENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VPdmVy
OwogCiAgICAgYXV0byogZnJhbWVWaWV3ID0gdmlldygpOwogICAgIGlmICghZnJhbWVWaWV3KQot
ICAgICAgICByZXR1cm4gQ29tcG9zaXRlU291cmNlT3ZlcjsKKyAgICAgICAgcmV0dXJuIENvbXBv
c2l0ZU9wZXJhdG9yOjpTb3VyY2VPdmVyOwogCiAgICAgLy8gTWFpbCBvbiBtYWNPUyB1c2VzIGEg
dHJhbnNwYXJlbnQgdmlldywgYW5kIG9uIGlPUyBpdCBpcyBhbiBvcGFxdWUgdmlldy4gV2UgbmVl
ZCB0bwogICAgIC8vIHVzZSBkaWZmZXJlbnQgY29tcG9zaXRlIG1vZGVzIHRvIGdldCB0aGUgcmln
aHQgcmVzdWx0cyBpbiB0aGlzIGNhc2UuCi0gICAgcmV0dXJuIGZyYW1lVmlldy0+aXNUcmFuc3Bh
cmVudCgpID8gQ29tcG9zaXRlRGVzdGluYXRpb25PdXQgOiBDb21wb3NpdGVEZXN0aW5hdGlvbklu
OworICAgIHJldHVybiBmcmFtZVZpZXctPmlzVHJhbnNwYXJlbnQoKSA/IENvbXBvc2l0ZU9wZXJh
dG9yOjpEZXN0aW5hdGlvbk91dCA6IENvbXBvc2l0ZU9wZXJhdG9yOjpEZXN0aW5hdGlvbkluOwog
fQogCiB2b2lkIERvY3VtZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbChFbGVtZW50JiBlbGVt
ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKaW5kZXggOWI3NzM5
NGI2YTg1OTRjYjI4ZTA5ZTQxZjAyMTc5NzA1MWMyYTI5My4uNzljMzQyNTgwMzlkNzNiMTEzYWI0
MjE1ODg5NDM3NTAzZDZjYzY0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1l
bnQuY3BwCkBAIC03NCw3ICs3NCw3IEBAIEhUTUxJbWFnZUVsZW1lbnQ6OkhUTUxJbWFnZUVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtCiAgICAgLCBt
X2ltYWdlTG9hZGVyKFdURjo6bWFrZVVuaXF1ZTxIVE1MSW1hZ2VMb2FkZXI+KCp0aGlzKSkKICAg
ICAsIG1fZm9ybShudWxscHRyKQogICAgICwgbV9mb3JtU2V0QnlQYXJzZXIobWFrZVdlYWtQdHIo
Zm9ybSkpCi0gICAgLCBtX2NvbXBvc2l0ZU9wZXJhdG9yKENvbXBvc2l0ZVNvdXJjZU92ZXIpCisg
ICAgLCBtX2NvbXBvc2l0ZU9wZXJhdG9yKENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VPdmVyKQog
ICAgICwgbV9pbWFnZURldmljZVBpeGVsUmF0aW8oMS4wZikKICAgICAsIG1fZXhwZXJpbWVudGFs
SW1hZ2VNZW51RW5hYmxlZChmYWxzZSkKICAgICAsIG1fY3JlYXRlZEJ5UGFyc2VyKGNyZWF0ZWRC
eVBhcnNlcikKQEAgLTI1Miw3ICsyNTIsNyBAQCB2b2lkIEhUTUxJbWFnZUVsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbgogICAg
ICAgICAvLyBGSVhNRTogaW1hZ2VzIGRvbid0IHN1cHBvcnQgYmxlbmQgbW9kZXMgaW4gdGhlaXIg
Y29tcG9zaXRpbmcgYXR0cmlidXRlLgogICAgICAgICBCbGVuZE1vZGUgYmxlbmRPcCA9IEJsZW5k
TW9kZTo6Tm9ybWFsOwogICAgICAgICBpZiAoIXBhcnNlQ29tcG9zaXRlQW5kQmxlbmRPcGVyYXRv
cih2YWx1ZSwgbV9jb21wb3NpdGVPcGVyYXRvciwgYmxlbmRPcCkpCi0gICAgICAgICAgICBtX2Nv
bXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3ZlcjsKKyAgICAgICAgICAgIG1fY29t
cG9zaXRlT3BlcmF0b3IgPSBDb21wb3NpdGVPcGVyYXRvcjo6U291cmNlT3ZlcjsKICNpZiBFTkFC
TEUoU0VSVklDRV9DT05UUk9MUykKICAgICB9IGVsc2UgaWYgKG5hbWUgPT0gd2Via2l0aW1hZ2Vt
ZW51QXR0cikgewogICAgICAgICBtX2V4cGVyaW1lbnRhbEltYWdlTWVudUVuYWJsZWQgPSAhdmFs
dWUuaXNOdWxsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAppbmRleCA2OWFkYTJjNDkxODMyMTYyYjVkYTI2YjNh
ZjEwMDUxZGEyNzA4MzE2Li4zMjNkZDRlMDNiYWNkYjJkOGY3ZjhkZWZiYWQ1Y2YwODAzYjE1ZWI5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRC5jcHAKQEAgLTU5Myw3ICs1OTMsNyBAQCB2b2lkIENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbChjb25zdCBTdHJpbmcmIHRleHQsIGZsb2F0IHgs
IGZsbwogICAgICAgICBmb250UHJveHkuZHJhd0JpZGlUZXh0KCpjLCB0ZXh0UnVuLCBsb2NhdGlv
biwgRm9udENhc2NhZGU6OlVzZUZhbGxiYWNrSWZGb250Tm90UmVhZHkpOwogICAgICAgICBlbmRD
b21wb3NpdGVMYXllcigpOwogICAgICAgICBkaWREcmF3RW50aXJlQ2FudmFzKCk7Ci0gICAgfSBl
bHNlIGlmIChzdGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSA9PSBDb21wb3NpdGVDb3B5KSB7CisgICAg
fSBlbHNlIGlmIChzdGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSA9PSBDb21wb3NpdGVPcGVyYXRvcjo6
Q29weSkgewogICAgICAgICBjbGVhckNhbnZhcygpOwogICAgICAgICBmb250UHJveHkuZHJhd0Jp
ZGlUZXh0KCpjLCB0ZXh0UnVuLCBsb2NhdGlvbiwgRm9udENhc2NhZGU6OlVzZUZhbGxiYWNrSWZG
b250Tm90UmVhZHkpOwogICAgICAgICBkaWREcmF3RW50aXJlQ2FudmFzKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
REJhc2UuY3BwCmluZGV4IGI0YTE1NTEzNTA2YWNmZmM5OGVmMGQyZWIyZmJjMjFhMDVlNjk5NGIu
LjkyODI4ODQ1NmIzNTgyMTRmM2ZkZTFlNWMwMjQ4MWJlOTVkZTg4OTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
REJhc2UuY3BwCkBAIC0xOTksNyArMTk5LDcgQEAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFz
ZTo6U3RhdGU6OlN0YXRlKCkKICAgICAsIHNoYWRvd0JsdXIoMCkKICAgICAsIHNoYWRvd0NvbG9y
KENvbG9yOjp0cmFuc3BhcmVudCkKICAgICAsIGdsb2JhbEFscGhhKDEpCi0gICAgLCBnbG9iYWxD
b21wb3NpdGUoQ29tcG9zaXRlU291cmNlT3ZlcikKKyAgICAsIGdsb2JhbENvbXBvc2l0ZShDb21w
b3NpdGVPcGVyYXRvcjo6U291cmNlT3ZlcikKICAgICAsIGdsb2JhbEJsZW5kKEJsZW5kTW9kZTo6
Tm9ybWFsKQogICAgICwgaGFzSW52ZXJ0aWJsZVRyYW5zZm9ybSh0cnVlKQogICAgICwgbGluZURh
c2hPZmZzZXQoMCkKQEAgLTc2OSw3ICs3NjksNyBAQCBTdHJpbmcgQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEQmFzZTo6Z2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uKCkgY29uc3QKIAogdm9pZCBDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpzZXRHbG9iYWxDb21wb3NpdGVPcGVyYXRpb24oY29u
c3QgU3RyaW5nJiBvcGVyYXRpb24pCiB7Ci0gICAgQ29tcG9zaXRlT3BlcmF0b3Igb3AgPSBDb21w
b3NpdGVTb3VyY2VPdmVyOworICAgIENvbXBvc2l0ZU9wZXJhdG9yIG9wID0gQ29tcG9zaXRlT3Bl
cmF0b3I6OlNvdXJjZU92ZXI7CiAgICAgQmxlbmRNb2RlIGJsZW5kTW9kZSA9IEJsZW5kTW9kZTo6
Tm9ybWFsOwogICAgIGlmICghcGFyc2VDb21wb3NpdGVBbmRCbGVuZE9wZXJhdG9yKG9wZXJhdGlv
biwgb3AsIGJsZW5kTW9kZSkpCiAgICAgICAgIHJldHVybjsKQEAgLTEwMzQsOSArMTAzNCw5IEBA
IHN0YXRpYyBib29sIHZhbGlkYXRlUmVjdEZvckNhbnZhcyhmbG9hdCYgeCwgZmxvYXQmIHksIGZs
b2F0JiB3aWR0aCwgZmxvYXQmIGhlaWdoCiBib29sIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJh
c2U6OmlzRnVsbENhbnZhc0NvbXBvc2l0ZU1vZGUoQ29tcG9zaXRlT3BlcmF0b3Igb3ApCiB7CiAg
ICAgLy8gU2VlIDQuOC4xMS4xLjMgQ29tcG9zaXRpbmcKLSAgICAvLyBDb21wb3NpdGVTb3VyY2VB
dG9wIGFuZCBDb21wb3NpdGVEZXN0aW5hdGlvbk91dCBhcmUgbm90IGxpc3RlZCBoZXJlIGFzIHRo
ZSBwbGF0Zm9ybXMgYWxyZWFkeQorICAgIC8vIENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VBdG9w
IGFuZCBDb21wb3NpdGVPcGVyYXRvcjo6RGVzdGluYXRpb25PdXQgYXJlIG5vdCBsaXN0ZWQgaGVy
ZSBhcyB0aGUgcGxhdGZvcm1zIGFscmVhZHkKICAgICAvLyBpbXBsZW1lbnQgdGhlIHNwZWNpZmlj
YXRpb24ncyBiZWhhdmlvci4KLSAgICByZXR1cm4gb3AgPT0gQ29tcG9zaXRlU291cmNlSW4gfHwg
b3AgPT0gQ29tcG9zaXRlU291cmNlT3V0IHx8IG9wID09IENvbXBvc2l0ZURlc3RpbmF0aW9uSW4g
fHwgb3AgPT0gQ29tcG9zaXRlRGVzdGluYXRpb25BdG9wOworICAgIHJldHVybiBvcCA9PSBDb21w
b3NpdGVPcGVyYXRvcjo6U291cmNlSW4gfHwgb3AgPT0gQ29tcG9zaXRlT3BlcmF0b3I6OlNvdXJj
ZU91dCB8fCBvcCA9PSBDb21wb3NpdGVPcGVyYXRvcjo6RGVzdGluYXRpb25JbiB8fCBvcCA9PSBD
b21wb3NpdGVPcGVyYXRvcjo6RGVzdGluYXRpb25BdG9wOwogfQogCiBzdGF0aWMgV2luZFJ1bGUg
dG9XaW5kUnVsZShDYW52YXNGaWxsUnVsZSBydWxlKQpAQCAtMTA5Niw3ICsxMDk2LDcgQEAgdm9p
ZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpmaWxsSW50ZXJuYWwoY29uc3QgUGF0aCYg
cGF0aCwgQ2FudmFzRmlsbFJ1bGUKICAgICAgICAgICAgIGMtPmZpbGxQYXRoKHBhdGgpOwogICAg
ICAgICAgICAgZW5kQ29tcG9zaXRlTGF5ZXIoKTsKICAgICAgICAgICAgIGRpZERyYXdFbnRpcmVD
YW52YXMoKTsKLSAgICAgICAgfSBlbHNlIGlmIChzdGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSA9PSBD
b21wb3NpdGVDb3B5KSB7CisgICAgICAgIH0gZWxzZSBpZiAoc3RhdGUoKS5nbG9iYWxDb21wb3Np
dGUgPT0gQ29tcG9zaXRlT3BlcmF0b3I6OkNvcHkpIHsKICAgICAgICAgICAgIGNsZWFyQ2FudmFz
KCk7CiAgICAgICAgICAgICBjLT5maWxsUGF0aChwYXRoKTsKICAgICAgICAgICAgIGRpZERyYXdF
bnRpcmVDYW52YXMoKTsKQEAgLTExMjgsNyArMTEyOCw3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEQmFzZTo6c3Ryb2tlSW50ZXJuYWwoY29uc3QgUGF0aCYgcGF0aCkKICAgICAgICAg
ICAgIGMtPnN0cm9rZVBhdGgocGF0aCk7CiAgICAgICAgICAgICBlbmRDb21wb3NpdGVMYXllcigp
OwogICAgICAgICAgICAgZGlkRHJhd0VudGlyZUNhbnZhcygpOwotICAgICAgICB9IGVsc2UgaWYg
KHN0YXRlKCkuZ2xvYmFsQ29tcG9zaXRlID09IENvbXBvc2l0ZUNvcHkpIHsKKyAgICAgICAgfSBl
bHNlIGlmIChzdGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSA9PSBDb21wb3NpdGVPcGVyYXRvcjo6Q29w
eSkgewogICAgICAgICAgICAgY2xlYXJDYW52YXMoKTsKICAgICAgICAgICAgIGMtPnN0cm9rZVBh
dGgocGF0aCk7CiAgICAgICAgICAgICBkaWREcmF3RW50aXJlQ2FudmFzKCk7CkBAIC0xMjQzLDEy
ICsxMjQzLDEyIEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6Y2xlYXJSZWN0
KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRoLCBmbG9hCiAgICAgICAgIH0KICAgICAgICAg
Y29udGV4dC0+c2V0QWxwaGEoMSk7CiAgICAgfQotICAgIGlmIChzdGF0ZSgpLmdsb2JhbENvbXBv
c2l0ZSAhPSBDb21wb3NpdGVTb3VyY2VPdmVyKSB7CisgICAgaWYgKHN0YXRlKCkuZ2xvYmFsQ29t
cG9zaXRlICE9IENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VPdmVyKSB7CiAgICAgICAgIGlmICgh
c2F2ZWQpIHsKICAgICAgICAgICAgIGNvbnRleHQtPnNhdmUoKTsKICAgICAgICAgICAgIHNhdmVk
ID0gdHJ1ZTsKICAgICAgICAgfQotICAgICAgICBjb250ZXh0LT5zZXRDb21wb3NpdGVPcGVyYXRp
b24oQ29tcG9zaXRlU291cmNlT3Zlcik7CisgICAgICAgIGNvbnRleHQtPnNldENvbXBvc2l0ZU9w
ZXJhdGlvbihDb21wb3NpdGVPcGVyYXRvcjo6U291cmNlT3Zlcik7CiAgICAgfQogICAgIGNvbnRl
eHQtPmNsZWFyUmVjdChyZWN0KTsKICAgICBpZiAoc2F2ZWQpCkBAIC0xMjg0LDcgKzEyODQsNyBA
QCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmZpbGxSZWN0KGZsb2F0IHgsIGZs
b2F0IHksIGZsb2F0IHdpZHRoLCBmbG9hdAogICAgICAgICBjLT5maWxsUmVjdChyZWN0KTsKICAg
ICAgICAgZW5kQ29tcG9zaXRlTGF5ZXIoKTsKICAgICAgICAgZGlkRHJhd0VudGlyZUNhbnZhcygp
OwotICAgIH0gZWxzZSBpZiAoc3RhdGUoKS5nbG9iYWxDb21wb3NpdGUgPT0gQ29tcG9zaXRlQ29w
eSkgeworICAgIH0gZWxzZSBpZiAoc3RhdGUoKS5nbG9iYWxDb21wb3NpdGUgPT0gQ29tcG9zaXRl
T3BlcmF0b3I6OkNvcHkpIHsKICAgICAgICAgY2xlYXJDYW52YXMoKTsKICAgICAgICAgYy0+Zmls
bFJlY3QocmVjdCk7CiAgICAgICAgIGRpZERyYXdFbnRpcmVDYW52YXMoKTsKQEAgLTEzMTgsNyAr
MTMxOCw3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6c3Ryb2tlUmVjdChm
bG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvCiAgICAgICAgIGMtPnN0cm9rZVJlY3Qo
cmVjdCwgc3RhdGUoKS5saW5lV2lkdGgpOwogICAgICAgICBlbmRDb21wb3NpdGVMYXllcigpOwog
ICAgICAgICBkaWREcmF3RW50aXJlQ2FudmFzKCk7Ci0gICAgfSBlbHNlIGlmIChzdGF0ZSgpLmds
b2JhbENvbXBvc2l0ZSA9PSBDb21wb3NpdGVDb3B5KSB7CisgICAgfSBlbHNlIGlmIChzdGF0ZSgp
Lmdsb2JhbENvbXBvc2l0ZSA9PSBDb21wb3NpdGVPcGVyYXRvcjo6Q29weSkgewogICAgICAgICBj
bGVhckNhbnZhcygpOwogICAgICAgICBjLT5zdHJva2VSZWN0KHJlY3QsIHN0YXRlKCkubGluZVdp
ZHRoKTsKICAgICAgICAgZGlkRHJhd0VudGlyZUNhbnZhcygpOwpAQCAtMTU4MCw3ICsxNTgwLDcg
QEAgRXhjZXB0aW9uT3I8dm9pZD4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6ZHJhd0lt
YWdlKERvY3VtZW50JiBkb2N1bWVudCwgQ2EKICAgICB9IGVsc2UgaWYgKGlzRnVsbENhbnZhc0Nv
bXBvc2l0ZU1vZGUob3ApKSB7CiAgICAgICAgIGZ1bGxDYW52YXNDb21wb3NpdGVkRHJhd0ltYWdl
KCppbWFnZSwgbm9ybWFsaXplZERzdFJlY3QsIG5vcm1hbGl6ZWRTcmNSZWN0LCBvcCk7CiAgICAg
ICAgIGRpZERyYXdFbnRpcmVDYW52YXMoKTsKLSAgICB9IGVsc2UgaWYgKG9wID09IENvbXBvc2l0
ZUNvcHkpIHsKKyAgICB9IGVsc2UgaWYgKG9wID09IENvbXBvc2l0ZU9wZXJhdG9yOjpDb3B5KSB7
CiAgICAgICAgIGNsZWFyQ2FudmFzKCk7CiAgICAgICAgIGMtPmRyYXdJbWFnZSgqaW1hZ2UsIG5v
cm1hbGl6ZWREc3RSZWN0LCBub3JtYWxpemVkU3JjUmVjdCwgb3B0aW9ucyk7CiAgICAgICAgIGRp
ZERyYXdFbnRpcmVDYW52YXMoKTsKQEAgLTE2MzgsNyArMTYzOCw3IEBAIEV4Y2VwdGlvbk9yPHZv
aWQ+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmRyYXdJbWFnZShDYW52YXNCYXNlJiBz
b3VyY2VDYW52CiAgICAgfSBlbHNlIGlmIChpc0Z1bGxDYW52YXNDb21wb3NpdGVNb2RlKHN0YXRl
KCkuZ2xvYmFsQ29tcG9zaXRlKSkgewogICAgICAgICBmdWxsQ2FudmFzQ29tcG9zaXRlZERyYXdJ
bWFnZSgqYnVmZmVyLCBkc3RSZWN0LCBzcmNSZWN0LCBzdGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSk7
CiAgICAgICAgIGRpZERyYXdFbnRpcmVDYW52YXMoKTsKLSAgICB9IGVsc2UgaWYgKHN0YXRlKCku
Z2xvYmFsQ29tcG9zaXRlID09IENvbXBvc2l0ZUNvcHkpIHsKKyAgICB9IGVsc2UgaWYgKHN0YXRl
KCkuZ2xvYmFsQ29tcG9zaXRlID09IENvbXBvc2l0ZU9wZXJhdG9yOjpDb3B5KSB7CiAgICAgICAg
IGlmICgmc291cmNlQ2FudmFzID09ICZjYW52YXNCYXNlKCkpIHsKICAgICAgICAgICAgIGlmIChh
dXRvIGNvcHkgPSBidWZmZXItPmNvcHlSZWN0VG9CdWZmZXIoc3JjUmVjdCwgQ29sb3JTcGFjZVNS
R0IsICpjKSkgewogICAgICAgICAgICAgICAgIGNsZWFyQ2FudmFzKCk7CkBAIC0xNzM2LDcgKzE3
MzYsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpk
cmF3SW1hZ2UoSW1hZ2VCaXRtYXAmIGltYWdlQml0bQogICAgIH0gZWxzZSBpZiAoaXNGdWxsQ2Fu
dmFzQ29tcG9zaXRlTW9kZShzdGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSkpIHsKICAgICAgICAgZnVs
bENhbnZhc0NvbXBvc2l0ZWREcmF3SW1hZ2UoKmJ1ZmZlciwgZHN0UmVjdCwgc3JjUmVjdCwgc3Rh
dGUoKS5nbG9iYWxDb21wb3NpdGUpOwogICAgICAgICBkaWREcmF3RW50aXJlQ2FudmFzKCk7Ci0g
ICAgfSBlbHNlIGlmIChzdGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSA9PSBDb21wb3NpdGVDb3B5KSB7
CisgICAgfSBlbHNlIGlmIChzdGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSA9PSBDb21wb3NpdGVPcGVy
YXRvcjo6Q29weSkgewogICAgICAgICBjbGVhckNhbnZhcygpOwogICAgICAgICBjLT5kcmF3SW1h
Z2VCdWZmZXIoKmJ1ZmZlciwgZHN0UmVjdCwgc3JjUmVjdCwgeyBzdGF0ZSgpLmdsb2JhbENvbXBv
c2l0ZSwgc3RhdGUoKS5nbG9iYWxCbGVuZCB9KTsKICAgICAgICAgZGlkRHJhd0VudGlyZUNhbnZh
cygpOwpAQCAtMTc1Myw3ICsxNzUzLDcgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRC
YXNlOjpkcmF3SW1hZ2VGcm9tUmVjdChIVE1MSW1hZ2VFbGVtZW50JiBpbWFnZUVsZW0KICAgICBD
b21wb3NpdGVPcGVyYXRvciBvcDsKICAgICBhdXRvIGJsZW5kT3AgPSBCbGVuZE1vZGU6Ok5vcm1h
bDsKICAgICBpZiAoIXBhcnNlQ29tcG9zaXRlQW5kQmxlbmRPcGVyYXRvcihjb21wb3NpdGVPcGVy
YXRpb24sIG9wLCBibGVuZE9wKSB8fCBibGVuZE9wICE9IEJsZW5kTW9kZTo6Tm9ybWFsKQotICAg
ICAgICBvcCA9IENvbXBvc2l0ZVNvdXJjZU92ZXI7CisgICAgICAgIG9wID0gQ29tcG9zaXRlT3Bl
cmF0b3I6OlNvdXJjZU92ZXI7CiAgICAgZHJhd0ltYWdlKGltYWdlRWxlbWVudCwgRmxvYXRSZWN0
IHsgc3gsIHN5LCBzdywgc2ggfSwgRmxvYXRSZWN0IHsgZHgsIGR5LCBkdywgZGggfSwgb3AsIEJs
ZW5kTW9kZTo6Tm9ybWFsKTsKIH0KIApAQCAtMTg2Niw3ICsxODY2LDcgQEAgdGVtcGxhdGU8Y2xh
c3MgVD4gdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpmdWxsQ2FudmFzQ29tcG9z
aXRlZERyYXdJbWEKICAgICBidWZmZXItPmNvbnRleHQoKS50cmFuc2xhdGUoLXRyYW5zZm9ybWVk
QWRqdXN0ZWRSZWN0LmxvY2F0aW9uKCkpOwogICAgIGJ1ZmZlci0+Y29udGV4dCgpLnRyYW5zbGF0
ZShjcm9wcGVkT2Zmc2V0KTsKICAgICBidWZmZXItPmNvbnRleHQoKS5jb25jYXRDVE0oZWZmZWN0
aXZlVHJhbnNmb3JtKTsKLSAgICBkcmF3SW1hZ2VUb0NvbnRleHQoaW1hZ2UsIGJ1ZmZlci0+Y29u
dGV4dCgpLCBhZGp1c3RlZERlc3QsIHNyYywgeyBDb21wb3NpdGVTb3VyY2VPdmVyIH0pOworICAg
IGRyYXdJbWFnZVRvQ29udGV4dChpbWFnZSwgYnVmZmVyLT5jb250ZXh0KCksIGFkanVzdGVkRGVz
dCwgc3JjLCB7IENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VPdmVyIH0pOwogCiAgICAgY29tcG9z
aXRlQnVmZmVyKCpidWZmZXIsIGJ1ZmZlclJlY3QsIG9wKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAppbmRleCA4NzRiNDZiZDhhMTI0YmJkNGFl
NjU2OGMxOTBlMzM4MzZjNWM3NTVhLi42NjM4NjU1MTg1NThkMzA1MzQ5ZGFiZjg1MDRhNzEyY2M5
OThkNWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3Zl
cmxheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXku
Y3BwCkBAIC0yMjEsNyArMjIxLDcgQEAgc3RhdGljIHZvaWQgZHJhd091dGxpbmVkUXVhZFdpdGhD
bGlwKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRRdWFkJgogICAgIGNvbnRl
eHQuc2V0U3Ryb2tlVGhpY2tuZXNzKDApOwogICAgIGNvbnRleHQuZmlsbFBhdGgocXVhZFRvUGF0
aChxdWFkLCBib3VuZHMpKTsKIAotICAgIGNvbnRleHQuc2V0Q29tcG9zaXRlT3BlcmF0aW9uKENv
bXBvc2l0ZURlc3RpbmF0aW9uT3V0KTsKKyAgICBjb250ZXh0LnNldENvbXBvc2l0ZU9wZXJhdGlv
bihDb21wb3NpdGVPcGVyYXRvcjo6RGVzdGluYXRpb25PdXQpOwogICAgIGNvbnRleHQuc2V0Rmls
bENvbG9yKENvbG9yOjpjcmVhdGVVbmNoZWNrZWQoMjU1LCAwLCAwKSk7CiAgICAgY29udGV4dC5m
aWxsUGF0aChxdWFkVG9QYXRoKGNsaXBRdWFkLCBib3VuZHMpKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZElt
YWdlLmNwcAppbmRleCBkNGJkYjVmMjBhYTRhZDJhNTczNjVhMzg2YzI2MDJjZDM5M2FlNjM4Li40
YjVkNmMwZTRhMDA0MmQ5YWRjZjQzNWQ3MzM2NmEyNThiOTQzNzY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVk
SW1hZ2UuY3BwCkBAIC04MSw4ICs4MSw4IEBAIHZvaWQgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U6
OmRyYXdDcm9zc2ZhZGUoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KQogICAgIGNvbnRleHQuY2xp
cChGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBtX2Nyb3NzZmFkZVNpemUpKTsKICAgICBjb250ZXh0
LmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIoMSk7CiAKLSAgICBkcmF3Q3Jvc3NmYWRlU3ViaW1hZ2Uo
Y29udGV4dCwgbV9mcm9tSW1hZ2UuZ2V0KCksIENvbXBvc2l0ZVNvdXJjZU92ZXIsIDEgLSBtX3Bl
cmNlbnRhZ2UsIG1fY3Jvc3NmYWRlU2l6ZSk7Ci0gICAgZHJhd0Nyb3NzZmFkZVN1YmltYWdlKGNv
bnRleHQsIG1fdG9JbWFnZS5nZXQoKSwgQ29tcG9zaXRlUGx1c0xpZ2h0ZXIsIG1fcGVyY2VudGFn
ZSwgbV9jcm9zc2ZhZGVTaXplKTsKKyAgICBkcmF3Q3Jvc3NmYWRlU3ViaW1hZ2UoY29udGV4dCwg
bV9mcm9tSW1hZ2UuZ2V0KCksIENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VPdmVyLCAxIC0gbV9w
ZXJjZW50YWdlLCBtX2Nyb3NzZmFkZVNpemUpOworICAgIGRyYXdDcm9zc2ZhZGVTdWJpbWFnZShj
b250ZXh0LCBtX3RvSW1hZ2UuZ2V0KCksIENvbXBvc2l0ZU9wZXJhdG9yOjpQbHVzTGlnaHRlciwg
bV9wZXJjZW50YWdlLCBtX2Nyb3NzZmFkZVNpemUpOwogCiAgICAgY29udGV4dC5lbmRUcmFuc3Bh
cmVuY3lMYXllcigpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHQuaAppbmRleCAwODc5MTQ1YjEzYzU3ZDZjMjA3YmJmNDkyNjlmZmYy
ZmQzMDNhYzVlLi5kOTEzOTExZmNhYTg3NDAyYzk2NjdjM2NhY2QzYWJhMTdmMDE1M2Q2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQu
aApAQCAtMTk0LDcgKzE5NCw3IEBAIHN0cnVjdCBHcmFwaGljc0NvbnRleHRTdGF0ZSB7CiAgICAg
V2luZFJ1bGUgZmlsbFJ1bGUgeyBXaW5kUnVsZTo6Tm9uWmVybyB9OwogCiAgICAgZmxvYXQgYWxw
aGEgeyAxIH07Ci0gICAgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3BlcmF0b3IgeyBDb21w
b3NpdGVTb3VyY2VPdmVyIH07CisgICAgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3BlcmF0
b3IgeyBDb21wb3NpdGVPcGVyYXRvcjo6U291cmNlT3ZlciB9OwogICAgIEJsZW5kTW9kZSBibGVu
ZE1vZGUgeyBCbGVuZE1vZGU6Ok5vcm1hbCB9OwogICAgIEludGVycG9sYXRpb25RdWFsaXR5IGlt
YWdlSW50ZXJwb2xhdGlvblF1YWxpdHkgeyBJbnRlcnBvbGF0aW9uRGVmYXVsdCB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCmlu
ZGV4IDUwNmIyNjE4MzljMzNkOTcyZDRmMjRiMGFhYjViZjBhN2MwMTUyNGMuLmQ0ZWE1MGRlNzdl
MTkyNGNhNDgyNjViMTU4MzA3OWVjOTcxZjk2MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCkBAIC04OTgsNyArODk4LDcgQEAg
dm9pZCBHcmFwaGljc0xheWVyOjpkdW1wUHJvcGVydGllcyhUZXh0U3RyZWFtJiB0cywgTGF5ZXJU
cmVlQXNUZXh0QmVoYXZpb3IgYmVoYXYKIAogI2lmIEVOQUJMRShDU1NfQ09NUE9TSVRJTkcpCiAg
ICAgaWYgKG1fYmxlbmRNb2RlICE9IEJsZW5kTW9kZTo6Tm9ybWFsKQotICAgICAgICB0cyA8PCBp
bmRlbnQgPDwgIihibGVuZE1vZGUgIiA8PCBjb21wb3NpdGVPcGVyYXRvck5hbWUoQ29tcG9zaXRl
U291cmNlT3ZlciwgbV9ibGVuZE1vZGUpIDw8ICIpXG4iOworICAgICAgICB0cyA8PCBpbmRlbnQg
PDwgIihibGVuZE1vZGUgIiA8PCBjb21wb3NpdGVPcGVyYXRvck5hbWUoQ29tcG9zaXRlT3BlcmF0
b3I6OlNvdXJjZU92ZXIsIG1fYmxlbmRNb2RlKSA8PCAiKVxuIjsKICNlbmRpZgogCiAgICAgaWYg
KHR5cGUoKSA9PSBUeXBlOjpOb3JtYWwgJiYgdGlsZWRCYWNraW5nKCkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc1R5cGVzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMuY3BwCmluZGV4IDM5OTc4
YzQ4NWM1YzdiOTM2OTc3OGI4YTVkODQ3YjQ3NGNmYjlhMGYuLjQ1OGFlNzJmMmFlMDI1NjI0NzY4
ZTg3OWRiZDQ5Njk2NGI0OTFiMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMuY3BwCkBAIC03MSw4ICs3MSw4IEBAIHN0YXRpYyBjb25z
dCBjaGFyKiBjb25zdCBibGVuZE9wZXJhdG9yTmFtZXNbXSA9IHsKICAgICAicGx1cy1kYXJrZXIi
LAogICAgICJwbHVzLWxpZ2h0ZXIiCiB9OwotY29uc3QgaW50IG51bUNvbXBvc2l0ZU9wZXJhdG9y
TmFtZXMgPSBXVEZfQVJSQVlfTEVOR1RIKGNvbXBvc2l0ZU9wZXJhdG9yTmFtZXMpOwotY29uc3Qg
dW5zaWduZWQgbnVtQmxlbmRPcGVyYXRvck5hbWVzID0gV1RGX0FSUkFZX0xFTkdUSChibGVuZE9w
ZXJhdG9yTmFtZXMpOworY29uc3QgdWludDhfdCBudW1Db21wb3NpdGVPcGVyYXRvck5hbWVzID0g
V1RGX0FSUkFZX0xFTkdUSChjb21wb3NpdGVPcGVyYXRvck5hbWVzKTsKK2NvbnN0IHVpbnQ4X3Qg
bnVtQmxlbmRPcGVyYXRvck5hbWVzID0gV1RGX0FSUkFZX0xFTkdUSChibGVuZE9wZXJhdG9yTmFt
ZXMpOwogCiBib29sIHBhcnNlQmxlbmRNb2RlKGNvbnN0IFN0cmluZyYgcywgQmxlbmRNb2RlJiBi
bGVuZE1vZGUpCiB7CkBAIC05OCw3ICs5OCw3IEBAIGJvb2wgcGFyc2VDb21wb3NpdGVBbmRCbGVu
ZE9wZXJhdG9yKGNvbnN0IFN0cmluZyYgcywgQ29tcG9zaXRlT3BlcmF0b3ImIG9wLCBCbGVuCiAg
ICAgCiAgICAgaWYgKHBhcnNlQmxlbmRNb2RlKHMsIGJsZW5kT3ApKSB7CiAgICAgICAgIC8vIEZv
ciBub3csIGJsZW5kaW5nIHdpbGwgYWx3YXlzIGFzc3VtZSBzb3VyY2Utb3Zlci4gVGhpcyB3aWxs
IGJlIGZpeGVkIGluIHRoZSBmdXR1cmUKLSAgICAgICAgb3AgPSBDb21wb3NpdGVTb3VyY2VPdmVy
OworICAgICAgICBvcCA9IENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VPdmVyOwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgCkBAIC0xMDksMTMgKzEwOSwxMyBAQCBib29sIHBhcnNl
Q29tcG9zaXRlQW5kQmxlbmRPcGVyYXRvcihjb25zdCBTdHJpbmcmIHMsIENvbXBvc2l0ZU9wZXJh
dG9yJiBvcCwgQmxlbgogLy8gdGhpcyByb3V0aW5lIG5lZWRzIHRvIGJlIHVwZGF0ZWQuCiBTdHJp
bmcgY29tcG9zaXRlT3BlcmF0b3JOYW1lKENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBCbGVuZE1vZGUg
YmxlbmRPcCkKIHsKLSAgICBBU1NFUlQob3AgPj0gMCk7Ci0gICAgQVNTRVJUKG9wIDwgbnVtQ29t
cG9zaXRlT3BlcmF0b3JOYW1lcyk7CisgICAgQVNTRVJUKG9wID49IENvbXBvc2l0ZU9wZXJhdG9y
OjpDbGVhcik7CisgICAgQVNTRVJUKHN0YXRpY19jYXN0PHVpbnQ4X3Q+KG9wKSA8IG51bUNvbXBv
c2l0ZU9wZXJhdG9yTmFtZXMpOwogICAgIEFTU0VSVChibGVuZE9wID49IEJsZW5kTW9kZTo6Tm9y
bWFsKTsKLSAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGJsZW5kT3ApIDw9IG51bUJs
ZW5kT3BlcmF0b3JOYW1lcyk7CisgICAgQVNTRVJUKHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGJsZW5k
T3ApIDw9IG51bUJsZW5kT3BlcmF0b3JOYW1lcyk7CiAgICAgaWYgKGJsZW5kT3AgPiBCbGVuZE1v
ZGU6Ok5vcm1hbCkKICAgICAgICAgcmV0dXJuIGJsZW5kT3BlcmF0b3JOYW1lc1tzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oYmxlbmRPcCkgLSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oQmxlbmRNb2RlOjpO
b3JtYWwpXTsKLSAgICByZXR1cm4gY29tcG9zaXRlT3BlcmF0b3JOYW1lc1tvcF07CisgICAgcmV0
dXJuIGNvbXBvc2l0ZU9wZXJhdG9yTmFtZXNbc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG9wKV07CiB9
CiAKIFN0cmluZyBibGVuZE1vZGVOYW1lKEJsZW5kTW9kZSBibGVuZE9wKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBlcy5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBlcy5oCmluZGV4IDZlMWFmZWUx
OThjYTQzOGVkMjVlNDcxNWY3OWQ2NTJhN2ZiMWQyMjAuLjJjZTZiMGNiYTAwMGM5MTZmMWE0ZGE0
NzI0NTI5OTNlZjRjOTA1NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc1R5cGVzLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAj
aW5jbHVkZSAiV2luZFJ1bGUuaCIKKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgogI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKIG5hbWVzcGFjZSBXVEYgewpAQCAtMzQsMjQgKzM1LDI0IEBA
IGNsYXNzIFRleHRTdHJlYW07CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotZW51bSBDb21wb3Np
dGVPcGVyYXRvciB7Ci0gICAgQ29tcG9zaXRlQ2xlYXIsCi0gICAgQ29tcG9zaXRlQ29weSwKLSAg
ICBDb21wb3NpdGVTb3VyY2VPdmVyLAotICAgIENvbXBvc2l0ZVNvdXJjZUluLAotICAgIENvbXBv
c2l0ZVNvdXJjZU91dCwKLSAgICBDb21wb3NpdGVTb3VyY2VBdG9wLAotICAgIENvbXBvc2l0ZURl
c3RpbmF0aW9uT3ZlciwKLSAgICBDb21wb3NpdGVEZXN0aW5hdGlvbkluLAotICAgIENvbXBvc2l0
ZURlc3RpbmF0aW9uT3V0LAotICAgIENvbXBvc2l0ZURlc3RpbmF0aW9uQXRvcCwKLSAgICBDb21w
b3NpdGVYT1IsCi0gICAgQ29tcG9zaXRlUGx1c0RhcmtlciwKLSAgICBDb21wb3NpdGVQbHVzTGln
aHRlciwKLSAgICBDb21wb3NpdGVEaWZmZXJlbmNlCitlbnVtIGNsYXNzIENvbXBvc2l0ZU9wZXJh
dG9yIDogdWludDhfdCB7CisgICAgQ2xlYXIsCisgICAgQ29weSwKKyAgICBTb3VyY2VPdmVyLAor
ICAgIFNvdXJjZUluLAorICAgIFNvdXJjZU91dCwKKyAgICBTb3VyY2VBdG9wLAorICAgIERlc3Rp
bmF0aW9uT3ZlciwKKyAgICBEZXN0aW5hdGlvbkluLAorICAgIERlc3RpbmF0aW9uT3V0LAorICAg
IERlc3RpbmF0aW9uQXRvcCwKKyAgICBYT1IsCisgICAgUGx1c0RhcmtlciwKKyAgICBQbHVzTGln
aHRlciwKKyAgICBEaWZmZXJlbmNlCiB9OwogCi1lbnVtIGNsYXNzIEJsZW5kTW9kZSB7CitlbnVt
IGNsYXNzIEJsZW5kTW9kZSA6IHVpbnQ4X3QgewogICAgIE5vcm1hbCA9IDEsIC8vIFN0YXJ0IHdp
dGggMSB0byBtYXRjaCBTVkcncyBibGVuZG1vZGUgZW51bWVyYXRpb24uCiAgICAgTXVsdGlwbHks
CiAgICAgU2NyZWVuLApAQCAtMTQ2LDMgKzE0Nyw1MCBAQCBXRUJDT1JFX0VYUE9SVCBXVEY6OlRl
eHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgQWxwaGFQcmVtdWx0aXBsaWNh
dAogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0
ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkNvbXBvc2l0ZU9wZXJhdG9yPiB7CisgICAg
dXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICBXZWJDb3JlOjpDb21wb3NpdGVPcGVyYXRv
ciwKKyAgICBXZWJDb3JlOjpDb21wb3NpdGVPcGVyYXRvcjo6Q2xlYXIsCisgICAgV2ViQ29yZTo6
Q29tcG9zaXRlT3BlcmF0b3I6OkNvcHksCisgICAgV2ViQ29yZTo6Q29tcG9zaXRlT3BlcmF0b3I6
OlNvdXJjZU92ZXIsCisgICAgV2ViQ29yZTo6Q29tcG9zaXRlT3BlcmF0b3I6OlNvdXJjZUluLAor
ICAgIFdlYkNvcmU6OkNvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VPdXQsCisgICAgV2ViQ29yZTo6
Q29tcG9zaXRlT3BlcmF0b3I6OlNvdXJjZUF0b3AsCisgICAgV2ViQ29yZTo6Q29tcG9zaXRlT3Bl
cmF0b3I6OkRlc3RpbmF0aW9uT3ZlciwKKyAgICBXZWJDb3JlOjpDb21wb3NpdGVPcGVyYXRvcjo6
RGVzdGluYXRpb25JbiwKKyAgICBXZWJDb3JlOjpDb21wb3NpdGVPcGVyYXRvcjo6RGVzdGluYXRp
b25PdXQsCisgICAgV2ViQ29yZTo6Q29tcG9zaXRlT3BlcmF0b3I6OkRlc3RpbmF0aW9uQXRvcCwK
KyAgICBXZWJDb3JlOjpDb21wb3NpdGVPcGVyYXRvcjo6WE9SLAorICAgIFdlYkNvcmU6OkNvbXBv
c2l0ZU9wZXJhdG9yOjpQbHVzRGFya2VyLAorICAgIFdlYkNvcmU6OkNvbXBvc2l0ZU9wZXJhdG9y
OjpQbHVzTGlnaHRlciwKKyAgICBXZWJDb3JlOjpDb21wb3NpdGVPcGVyYXRvcjo6RGlmZmVyZW5j
ZQorICAgID47Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkJs
ZW5kTW9kZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgV2ViQ29yZTo6
QmxlbmRNb2RlLAorICAgIFdlYkNvcmU6OkJsZW5kTW9kZTo6Tm9ybWFsLAorICAgIFdlYkNvcmU6
OkJsZW5kTW9kZTo6TXVsdGlwbHksCisgICAgV2ViQ29yZTo6QmxlbmRNb2RlOjpTY3JlZW4sCisg
ICAgV2ViQ29yZTo6QmxlbmRNb2RlOjpEYXJrZW4sCisgICAgV2ViQ29yZTo6QmxlbmRNb2RlOjpM
aWdodGVuLAorICAgIFdlYkNvcmU6OkJsZW5kTW9kZTo6T3ZlcmxheSwKKyAgICBXZWJDb3JlOjpC
bGVuZE1vZGU6OkNvbG9yRG9kZ2UsCisgICAgV2ViQ29yZTo6QmxlbmRNb2RlOjpDb2xvckJ1cm4s
CisgICAgV2ViQ29yZTo6QmxlbmRNb2RlOjpIYXJkTGlnaHQsCisgICAgV2ViQ29yZTo6QmxlbmRN
b2RlOjpTb2Z0TGlnaHQsCisgICAgV2ViQ29yZTo6QmxlbmRNb2RlOjpEaWZmZXJlbmNlLAorICAg
IFdlYkNvcmU6OkJsZW5kTW9kZTo6RXhjbHVzaW9uLAorICAgIFdlYkNvcmU6OkJsZW5kTW9kZTo6
SHVlLAorICAgIFdlYkNvcmU6OkJsZW5kTW9kZTo6U2F0dXJhdGlvbiwKKyAgICBXZWJDb3JlOjpC
bGVuZE1vZGU6OkNvbG9yLAorICAgIFdlYkNvcmU6OkJsZW5kTW9kZTo6THVtaW5vc2l0eSwKKyAg
ICBXZWJDb3JlOjpCbGVuZE1vZGU6OlBsdXNEYXJrZXIsCisgICAgV2ViQ29yZTo6QmxlbmRNb2Rl
OjpQbHVzTGlnaHRlcgorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmNwcAppbmRleCAxNTMzNjU0YmIzMTZlOGZj
NDczYWY4ZDJhMDQ3M2NjNmNlY2M2OTBkLi4wOThmNjAxMzZlYzAwN2JkZDhjNzZiN2M4MTQ2MWIx
ZTYwMzY5MDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuY3Bw
CkBAIC0xMzIsNyArMTMyLDcgQEAgdm9pZCBJbWFnZTo6ZmlsbFdpdGhTb2xpZENvbG9yKEdyYXBo
aWNzQ29udGV4dCYgY3R4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LAogICAgICAgICByZXR1
cm47CiAgICAgCiAgICAgQ29tcG9zaXRlT3BlcmF0b3IgcHJldmlvdXNPcGVyYXRvciA9IGN0eHQu
Y29tcG9zaXRlT3BlcmF0aW9uKCk7Ci0gICAgY3R4dC5zZXRDb21wb3NpdGVPcGVyYXRpb24oY29s
b3IuaXNPcGFxdWUoKSAmJiBvcCA9PSBDb21wb3NpdGVTb3VyY2VPdmVyID8gQ29tcG9zaXRlQ29w
eSA6IG9wKTsKKyAgICBjdHh0LnNldENvbXBvc2l0ZU9wZXJhdGlvbihjb2xvci5pc09wYXF1ZSgp
ICYmIG9wID09IENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VPdmVyID8gQ29tcG9zaXRlT3BlcmF0
b3I6OkNvcHkgOiBvcCk7CiAgICAgY3R4dC5maWxsUmVjdChkc3RSZWN0LCBjb2xvcik7CiAgICAg
Y3R4dC5zZXRDb21wb3NpdGVPcGVyYXRpb24ocHJldmlvdXNPcGVyYXRvcik7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVBhaW50aW5nT3B0aW9u
cy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VQYWludGluZ09wdGlv
bnMuaAppbmRleCAyZjQ1YzNmZDZkMzM4NDFiYzAzNTU1ZjA3YzkwMmM5MWQ1MTFjZGEwLi5kZWE3
ZDJhNTM1MzNlYmJiMDZkMGNjOTYyNDVhMThhY2M1MWI4YmUwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVBhaW50aW5nT3B0aW9ucy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlUGFpbnRpbmdPcHRpb25zLmgKQEAg
LTY5LDcgKzY5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldE9wdGlvbihJbWFnZU9yaWVudGF0
aW9uOjpPcmllbnRhdGlvbiBvcmllbnRhdGlvbikgeyBtX29yaWVudGF0aW9uID0gb3JpZW50YXRp
b247IH0KICAgICB2b2lkIHNldE9wdGlvbihJbnRlcnBvbGF0aW9uUXVhbGl0eSBpbnRlcnBvbGF0
aW9uUXVhbGl0eSkgeyBtX2ludGVycG9sYXRpb25RdWFsaXR5ID0gaW50ZXJwb2xhdGlvblF1YWxp
dHk7IH0KIAotICAgIENvbXBvc2l0ZU9wZXJhdG9yIG1fY29tcG9zaXRlT3BlcmF0b3IgeyBDb21w
b3NpdGVTb3VyY2VPdmVyIH07CisgICAgQ29tcG9zaXRlT3BlcmF0b3IgbV9jb21wb3NpdGVPcGVy
YXRvciB7IENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VPdmVyIH07CiAgICAgQmxlbmRNb2RlIG1f
YmxlbmRNb2RlIHsgQmxlbmRNb2RlOjpOb3JtYWwgfTsKICAgICBEZWNvZGluZ01vZGUgbV9kZWNv
ZGluZ01vZGUgeyBEZWNvZGluZ01vZGU6OlN5bmNocm9ub3VzIH07CiAgICAgSW1hZ2VPcmllbnRh
dGlvbiBtX29yaWVudGF0aW9uIHsgSW1hZ2VPcmllbnRhdGlvbjo6Tm9uZSB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcAppbmRleCBlYWRhYTE4
YTE2Y2RjZWM5NzAzN2EyYTJhZjM0Nzk1MGI0MjhmMTAyLi45NDk5NThlYzViMzRkZTIyNTdlZmQ0
NjgzMmQ2NGJmZmQ0ZTE4MDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9TaGFkb3dCbHVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9TaGFkb3dCbHVyLmNwcApAQCAtODk5LDcgKzg5OSw3IEBAIHZvaWQgU2hhZG93Qmx1cjo6
Ymx1ckFuZENvbG9yU2hhZG93QnVmZmVyKEltYWdlQnVmZmVyJiBsYXllckltYWdlLCBjb25zdCBJ
bnRTaXplCiAgICAgLy8gTWFzayB0aGUgaW1hZ2Ugd2l0aCB0aGUgc2hhZG93IGNvbG9yLgogICAg
IEdyYXBoaWNzQ29udGV4dCYgc2hhZG93Q29udGV4dCA9IGxheWVySW1hZ2UuY29udGV4dCgpOwog
ICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihzaGFkb3dDb250ZXh0KTsK
LSAgICBzaGFkb3dDb250ZXh0LnNldENvbXBvc2l0ZU9wZXJhdGlvbihDb21wb3NpdGVTb3VyY2VJ
bik7CisgICAgc2hhZG93Q29udGV4dC5zZXRDb21wb3NpdGVPcGVyYXRpb24oQ29tcG9zaXRlT3Bl
cmF0b3I6OlNvdXJjZUluKTsKICAgICBzaGFkb3dDb250ZXh0LnNldEZpbGxDb2xvcihtX2NvbG9y
KTsKICAgICBzaGFkb3dDb250ZXh0LmZpbGxSZWN0KEZsb2F0UmVjdCgwLCAwLCB0ZW1wbGF0ZVNp
emUud2lkdGgoKSwgdGVtcGxhdGVTaXplLmhlaWdodCgpKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb09wZXJhdGlvbnMuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmNw
cAppbmRleCBiNmZhNjljNzlmZWFmNzMwMWEwOWM3ZWE0ZjJkM2JlZDYwMjJjYzVjLi43ZTNkNzQ0
MGQyNjA3YmM2ZTE1YzJiMzE2YjBiZDJiYzFmMjBkZjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb09wZXJhdGlvbnMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0aW9ucy5jcHAK
QEAgLTg3MCw4ICs4NzAsOCBAQCB2b2lkIGRyYXdOYXRpdmVJbWFnZShQbGF0Zm9ybUNvbnRleHRD
YWlybyYgcGxhdGZvcm1Db250ZXh0LCBjYWlyb19zdXJmYWNlX3QqIHN1cgogICAgIHBsYXRmb3Jt
Q29udGV4dC5zYXZlKCk7CiAKICAgICAvLyBTZXQgdGhlIGNvbXBvc2l0aW5nIG9wZXJhdGlvbi4K
LSAgICBpZiAob3B0aW9ucy5jb21wb3NpdGVPcGVyYXRvcigpID09IENvbXBvc2l0ZVNvdXJjZU92
ZXIgJiYgb3B0aW9ucy5ibGVuZE1vZGUoKSA9PSBCbGVuZE1vZGU6Ok5vcm1hbCAmJiAhY2Fpcm9T
dXJmYWNlSGFzQWxwaGEoc3VyZmFjZSkpCi0gICAgICAgIENhaXJvOjpTdGF0ZTo6c2V0Q29tcG9z
aXRlT3BlcmF0aW9uKHBsYXRmb3JtQ29udGV4dCwgQ29tcG9zaXRlQ29weSwgQmxlbmRNb2RlOjpO
b3JtYWwpOworICAgIGlmIChvcHRpb25zLmNvbXBvc2l0ZU9wZXJhdG9yKCkgPT0gQ29tcG9zaXRl
T3BlcmF0b3I6OlNvdXJjZU92ZXIgJiYgb3B0aW9ucy5ibGVuZE1vZGUoKSA9PSBCbGVuZE1vZGU6
Ok5vcm1hbCAmJiAhY2Fpcm9TdXJmYWNlSGFzQWxwaGEoc3VyZmFjZSkpCisgICAgICAgIENhaXJv
OjpTdGF0ZTo6c2V0Q29tcG9zaXRlT3BlcmF0aW9uKHBsYXRmb3JtQ29udGV4dCwgQ29tcG9zaXRl
T3BlcmF0b3I6OkNvcHksIEJsZW5kTW9kZTo6Tm9ybWFsKTsKICAgICBlbHNlCiAgICAgICAgIENh
aXJvOjpTdGF0ZTo6c2V0Q29tcG9zaXRlT3BlcmF0aW9uKHBsYXRmb3JtQ29udGV4dCwgb3B0aW9u
cy5jb21wb3NpdGVPcGVyYXRvcigpLCBvcHRpb25zLmJsZW5kTW9kZSgpKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25z
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb09wZXJhdGlv
bnMuaAppbmRleCA1ODM0ZjQzMGYwNWRkMTU4MzczOGUzMWU0MzNkMjcxNDBhNmNkMmFhLi5mNTIw
MGE4MmJhYmI5MmZjNTk4Y2I1NjE5M2RlYjBhNmVmYTYxYmUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb09wZXJhdGlvbnMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb09wZXJhdGlvbnMuaApA
QCAtMTE4LDcgKzExOCw3IEBAIHN0cnVjdCBTaGFkb3dTdGF0ZSB7CiAgICAgYm9vbCBpZ25vcmVU
cmFuc2Zvcm1zIHsgZmFsc2UgfTsKIAogICAgIGZsb2F0IGdsb2JhbEFscGhhIHsgMS4wIH07Ci0g
ICAgQ29tcG9zaXRlT3BlcmF0b3IgZ2xvYmFsQ29tcG9zaXRlT3BlcmF0b3IgeyBDb21wb3NpdGVT
b3VyY2VPdmVyIH07CisgICAgQ29tcG9zaXRlT3BlcmF0b3IgZ2xvYmFsQ29tcG9zaXRlT3BlcmF0
b3IgeyBDb21wb3NpdGVPcGVyYXRvcjo6U291cmNlT3ZlciB9OwogfTsKIAogdm9pZCBzZXRMaW5l
Q2FwKFBsYXRmb3JtQ29udGV4dENhaXJvJiwgTGluZUNhcCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5jcHAKaW5k
ZXggOGE1ZTAwOWQ5ZmExNTk4YmMyMzEyMGVjMGYzYzE1OGNkNWVmNzYzOS4uZjkwYWIyODE0OGNk
OTA3YmQzM2UyYmQzMWE4OGZmM2Q2NGFmMjUxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9VdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvVXRpbGl0aWVzLmNwcApAQCAtMTI4
LDMzICsxMjgsMzMgQEAgdm9pZCBhcHBlbmRSZWdpb25Ub0NhaXJvQ29udGV4dChjYWlyb190KiB0
bywgY29uc3QgY2Fpcm9fcmVnaW9uX3QqIHJlZ2lvbikKIHN0YXRpYyBjYWlyb19vcGVyYXRvcl90
IHRvQ2Fpcm9Db21wb3NpdGVPcGVyYXRvcihDb21wb3NpdGVPcGVyYXRvciBvcCkKIHsKICAgICBz
d2l0Y2ggKG9wKSB7Ci0gICAgY2FzZSBDb21wb3NpdGVDbGVhcjoKKyAgICBjYXNlIENvbXBvc2l0
ZU9wZXJhdG9yOjpDbGVhcjoKICAgICAgICAgcmV0dXJuIENBSVJPX09QRVJBVE9SX0NMRUFSOwot
ICAgIGNhc2UgQ29tcG9zaXRlQ29weToKKyAgICBjYXNlIENvbXBvc2l0ZU9wZXJhdG9yOjpDb3B5
OgogICAgICAgICByZXR1cm4gQ0FJUk9fT1BFUkFUT1JfU09VUkNFOwotICAgIGNhc2UgQ29tcG9z
aXRlU291cmNlT3ZlcjoKKyAgICBjYXNlIENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VPdmVyOgog
ICAgICAgICByZXR1cm4gQ0FJUk9fT1BFUkFUT1JfT1ZFUjsKLSAgICBjYXNlIENvbXBvc2l0ZVNv
dXJjZUluOgorICAgIGNhc2UgQ29tcG9zaXRlT3BlcmF0b3I6OlNvdXJjZUluOgogICAgICAgICBy
ZXR1cm4gQ0FJUk9fT1BFUkFUT1JfSU47Ci0gICAgY2FzZSBDb21wb3NpdGVTb3VyY2VPdXQ6Cisg
ICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6U291cmNlT3V0OgogICAgICAgICByZXR1cm4gQ0FJ
Uk9fT1BFUkFUT1JfT1VUOwotICAgIGNhc2UgQ29tcG9zaXRlU291cmNlQXRvcDoKKyAgICBjYXNl
IENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VBdG9wOgogICAgICAgICByZXR1cm4gQ0FJUk9fT1BF
UkFUT1JfQVRPUDsKLSAgICBjYXNlIENvbXBvc2l0ZURlc3RpbmF0aW9uT3ZlcjoKKyAgICBjYXNl
IENvbXBvc2l0ZU9wZXJhdG9yOjpEZXN0aW5hdGlvbk92ZXI6CiAgICAgICAgIHJldHVybiBDQUlS
T19PUEVSQVRPUl9ERVNUX09WRVI7Ci0gICAgY2FzZSBDb21wb3NpdGVEZXN0aW5hdGlvbkluOgor
ICAgIGNhc2UgQ29tcG9zaXRlT3BlcmF0b3I6OkRlc3RpbmF0aW9uSW46CiAgICAgICAgIHJldHVy
biBDQUlST19PUEVSQVRPUl9ERVNUX0lOOwotICAgIGNhc2UgQ29tcG9zaXRlRGVzdGluYXRpb25P
dXQ6CisgICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6RGVzdGluYXRpb25PdXQ6CiAgICAgICAg
IHJldHVybiBDQUlST19PUEVSQVRPUl9ERVNUX09VVDsKLSAgICBjYXNlIENvbXBvc2l0ZURlc3Rp
bmF0aW9uQXRvcDoKKyAgICBjYXNlIENvbXBvc2l0ZU9wZXJhdG9yOjpEZXN0aW5hdGlvbkF0b3A6
CiAgICAgICAgIHJldHVybiBDQUlST19PUEVSQVRPUl9ERVNUX0FUT1A7Ci0gICAgY2FzZSBDb21w
b3NpdGVYT1I6CisgICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6WE9SOgogICAgICAgICByZXR1
cm4gQ0FJUk9fT1BFUkFUT1JfWE9SOwotICAgIGNhc2UgQ29tcG9zaXRlUGx1c0RhcmtlcjoKKyAg
ICBjYXNlIENvbXBvc2l0ZU9wZXJhdG9yOjpQbHVzRGFya2VyOgogICAgICAgICByZXR1cm4gQ0FJ
Uk9fT1BFUkFUT1JfREFSS0VOOwotICAgIGNhc2UgQ29tcG9zaXRlUGx1c0xpZ2h0ZXI6CisgICAg
Y2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6UGx1c0xpZ2h0ZXI6CiAgICAgICAgIHJldHVybiBDQUlS
T19PUEVSQVRPUl9BREQ7Ci0gICAgY2FzZSBDb21wb3NpdGVEaWZmZXJlbmNlOgorICAgIGNhc2Ug
Q29tcG9zaXRlT3BlcmF0b3I6OkRpZmZlcmVuY2U6CiAgICAgICAgIHJldHVybiBDQUlST19PUEVS
QVRPUl9ESUZGRVJFTkNFOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBDQUlST19PUEVS
QVRPUl9TT1VSQ0U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jZy9HcmFwaGljc0NvbnRleHQzRENHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dDNEQ0cuY3BwCmluZGV4IGNkNmJiNzMwZTYxNjE5MTkz
ZWNlNjBhOTdlZjg4OGQ3N2VmYjYxMGUuLjNhZmFhMGFiMDFkNGE0MGMyZGIxNTlmZjQ5MjlhMGM0
YmE4YzExMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nn
L0dyYXBoaWNzQ29udGV4dDNEQ0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dDNEQ0cuY3BwCkBAIC01MzksNyArNTM5LDcgQEAgdm9p
ZCBHcmFwaGljc0NvbnRleHQzRDo6cGFpbnRUb0NhbnZhcyhjb25zdCB1bnNpZ25lZCBjaGFyKiBp
bWFnZVBpeGVscywgY29uc3QgSW4KICAgICBjb250ZXh0LnNjYWxlKEZsb2F0U2l6ZSgxLCAtMSkp
OwogICAgIGNvbnRleHQudHJhbnNsYXRlKDAsIC1pbWFnZVNpemUuaGVpZ2h0KCkpOwogICAgIGNv
bnRleHQuc2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uTm9uZSk7Ci0g
ICAgY29udGV4dC5kcmF3TmF0aXZlSW1hZ2UoY2dJbWFnZSwgaW1hZ2VTaXplLCBjYW52YXNSZWN0
LCBGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBpbWFnZVNpemUpLCB7IENvbXBvc2l0ZUNvcHkgfSk7
CisgICAgY29udGV4dC5kcmF3TmF0aXZlSW1hZ2UoY2dJbWFnZSwgaW1hZ2VTaXplLCBjYW52YXNS
ZWN0LCBGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBpbWFnZVNpemUpLCB7IENvbXBvc2l0ZU9wZXJh
dG9yOjpDb3B5IH0pOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5j
cHAKaW5kZXggOTcwZmQwN2U2NmFlY2JhZDIzZDgzYzcxNGYwYTc1NzZlMDg0YzZkNi4uMmRmMmU1
NDMyNDlmZGRkZjUzZWY4ZjE4ZWM3OTM4MGNmZTQ3YTk3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcApA
QCAtMTYxLDMzICsxNjEsMzMgQEAgc3RhdGljIENHQmxlbmRNb2RlIHNlbGVjdENHQmxlbmRNb2Rl
KENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE0KICAgICBzd2l0Y2gg
KGJsZW5kTW9kZSkgewogICAgIGNhc2UgQmxlbmRNb2RlOjpOb3JtYWw6CiAgICAgICAgIHN3aXRj
aCAoY29tcG9zaXRlT3BlcmF0b3IpIHsKLSAgICAgICAgY2FzZSBDb21wb3NpdGVDbGVhcjoKKyAg
ICAgICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6Q2xlYXI6CiAgICAgICAgICAgICByZXR1cm4g
a0NHQmxlbmRNb2RlQ2xlYXI7Ci0gICAgICAgIGNhc2UgQ29tcG9zaXRlQ29weToKKyAgICAgICAg
Y2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6Q29weToKICAgICAgICAgICAgIHJldHVybiBrQ0dCbGVu
ZE1vZGVDb3B5OwotICAgICAgICBjYXNlIENvbXBvc2l0ZVNvdXJjZU92ZXI6CisgICAgICAgIGNh
c2UgQ29tcG9zaXRlT3BlcmF0b3I6OlNvdXJjZU92ZXI6CiAgICAgICAgICAgICByZXR1cm4ga0NH
QmxlbmRNb2RlTm9ybWFsOwotICAgICAgICBjYXNlIENvbXBvc2l0ZVNvdXJjZUluOgorICAgICAg
ICBjYXNlIENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VJbjoKICAgICAgICAgICAgIHJldHVybiBr
Q0dCbGVuZE1vZGVTb3VyY2VJbjsKLSAgICAgICAgY2FzZSBDb21wb3NpdGVTb3VyY2VPdXQ6Cisg
ICAgICAgIGNhc2UgQ29tcG9zaXRlT3BlcmF0b3I6OlNvdXJjZU91dDoKICAgICAgICAgICAgIHJl
dHVybiBrQ0dCbGVuZE1vZGVTb3VyY2VPdXQ7Ci0gICAgICAgIGNhc2UgQ29tcG9zaXRlU291cmNl
QXRvcDoKKyAgICAgICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6U291cmNlQXRvcDoKICAgICAg
ICAgICAgIHJldHVybiBrQ0dCbGVuZE1vZGVTb3VyY2VBdG9wOwotICAgICAgICBjYXNlIENvbXBv
c2l0ZURlc3RpbmF0aW9uT3ZlcjoKKyAgICAgICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6RGVz
dGluYXRpb25PdmVyOgogICAgICAgICAgICAgcmV0dXJuIGtDR0JsZW5kTW9kZURlc3RpbmF0aW9u
T3ZlcjsKLSAgICAgICAgY2FzZSBDb21wb3NpdGVEZXN0aW5hdGlvbkluOgorICAgICAgICBjYXNl
IENvbXBvc2l0ZU9wZXJhdG9yOjpEZXN0aW5hdGlvbkluOgogICAgICAgICAgICAgcmV0dXJuIGtD
R0JsZW5kTW9kZURlc3RpbmF0aW9uSW47Ci0gICAgICAgIGNhc2UgQ29tcG9zaXRlRGVzdGluYXRp
b25PdXQ6CisgICAgICAgIGNhc2UgQ29tcG9zaXRlT3BlcmF0b3I6OkRlc3RpbmF0aW9uT3V0Ogog
ICAgICAgICAgICAgcmV0dXJuIGtDR0JsZW5kTW9kZURlc3RpbmF0aW9uT3V0OwotICAgICAgICBj
YXNlIENvbXBvc2l0ZURlc3RpbmF0aW9uQXRvcDoKKyAgICAgICAgY2FzZSBDb21wb3NpdGVPcGVy
YXRvcjo6RGVzdGluYXRpb25BdG9wOgogICAgICAgICAgICAgcmV0dXJuIGtDR0JsZW5kTW9kZURl
c3RpbmF0aW9uQXRvcDsKLSAgICAgICAgY2FzZSBDb21wb3NpdGVYT1I6CisgICAgICAgIGNhc2Ug
Q29tcG9zaXRlT3BlcmF0b3I6OlhPUjoKICAgICAgICAgICAgIHJldHVybiBrQ0dCbGVuZE1vZGVY
T1I7Ci0gICAgICAgIGNhc2UgQ29tcG9zaXRlUGx1c0RhcmtlcjoKKyAgICAgICAgY2FzZSBDb21w
b3NpdGVPcGVyYXRvcjo6UGx1c0RhcmtlcjoKICAgICAgICAgICAgIHJldHVybiBrQ0dCbGVuZE1v
ZGVQbHVzRGFya2VyOwotICAgICAgICBjYXNlIENvbXBvc2l0ZVBsdXNMaWdodGVyOgorICAgICAg
ICBjYXNlIENvbXBvc2l0ZU9wZXJhdG9yOjpQbHVzTGlnaHRlcjoKICAgICAgICAgICAgIHJldHVy
biBrQ0dCbGVuZE1vZGVQbHVzTGlnaHRlcjsKLSAgICAgICAgY2FzZSBDb21wb3NpdGVEaWZmZXJl
bmNlOgorICAgICAgICBjYXNlIENvbXBvc2l0ZU9wZXJhdG9yOjpEaWZmZXJlbmNlOgogICAgICAg
ICAgICAgcmV0dXJuIGtDR0JsZW5kTW9kZURpZmZlcmVuY2U7CiAgICAgICAgIH0KICAgICAgICAg
YnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFQmxlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUJsZW5kLmNwcAppbmRleCBlNGQ3Mjk1N2IwY2RlODdmMTdmZjk3MmZjYjcxOTdjOTU5ZjMz
MGUwLi4yM2QzZDIxYTJkZjBiYmRiOWQ4ZTkwYjdkNjZmOGMxMDAwMjI0Y2Y5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5jcHAK
QEAgLTcwLDcgKzcwLDcgQEAgdm9pZCBGRUJsZW5kOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKQog
ICAgICAgICByZXR1cm47CiAKICAgICBmaWx0ZXJDb250ZXh0LmRyYXdJbWFnZUJ1ZmZlcigqaW1h
Z2VCdWZmZXIyLCBkcmF3aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGluMi0+YWJzb2x1dGVQYWludFJl
Y3QoKSkpOwotICAgIGZpbHRlckNvbnRleHQuZHJhd0ltYWdlQnVmZmVyKCppbWFnZUJ1ZmZlciwg
ZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbi0+YWJzb2x1dGVQYWludFJlY3QoKSksIEludFJl
Y3QoSW50UG9pbnQoKSwgaW1hZ2VCdWZmZXItPmxvZ2ljYWxTaXplKCkpLCB7IENvbXBvc2l0ZVNv
dXJjZU92ZXIsIG1fbW9kZSB9KTsKKyAgICBmaWx0ZXJDb250ZXh0LmRyYXdJbWFnZUJ1ZmZlcigq
aW1hZ2VCdWZmZXIsIGRyYXdpbmdSZWdpb25PZklucHV0SW1hZ2UoaW4tPmFic29sdXRlUGFpbnRS
ZWN0KCkpLCBJbnRSZWN0KEludFBvaW50KCksIGltYWdlQnVmZmVyLT5sb2dpY2FsU2l6ZSgpKSwg
eyBDb21wb3NpdGVPcGVyYXRvcjo6U291cmNlT3ZlciwgbV9tb2RlIH0pOwogfQogI2VuZGlmCiAK
QEAgLTc4LDcgKzc4LDcgQEAgVGV4dFN0cmVhbSYgRkVCbGVuZDo6ZXh0ZXJuYWxSZXByZXNlbnRh
dGlvbihUZXh0U3RyZWFtJiB0cywgUmVwcmVzZW50YXRpb25UeXBlIHIKIHsKICAgICB0cyA8PCBp
bmRlbnQgPDwgIltmZUJsZW5kIjsKICAgICBGaWx0ZXJFZmZlY3Q6OmV4dGVybmFsUmVwcmVzZW50
YXRpb24odHMsIHJlcHJlc2VudGF0aW9uKTsKLSAgICB0cyA8PCAiIG1vZGU9XCIiIDw8IChtX21v
ZGUgPT0gQmxlbmRNb2RlOjpOb3JtYWwgPyAibm9ybWFsIiA6IGNvbXBvc2l0ZU9wZXJhdG9yTmFt
ZShDb21wb3NpdGVTb3VyY2VPdmVyLCBtX21vZGUpKSA8PCAiXCJdXG4iOworICAgIHRzIDw8ICIg
bW9kZT1cIiIgPDwgKG1fbW9kZSA9PSBCbGVuZE1vZGU6Ok5vcm1hbCA/ICJub3JtYWwiIDogY29t
cG9zaXRlT3BlcmF0b3JOYW1lKENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VPdmVyLCBtX21vZGUp
KSA8PCAiXCJdXG4iOwogCiAgICAgVGV4dFN0cmVhbTo6SW5kZW50U2NvcGUgaW5kZW50U2NvcGUo
dHMpOwogICAgIGlucHV0RWZmZWN0KDApLT5leHRlcm5hbFJlcHJlc2VudGF0aW9uKHRzLCByZXBy
ZXNlbnRhdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFQ29tcG9zaXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuY3BwCmluZGV4IGQ1NmRiNDBjMDQ5NGRiMTczZjAwMTc0
NGI1YzFiYzRkMmMxYTVhMzQuLmExOWVhMDUzNzU4MTljZWNkYWMyNWQ1ZDk2M2Q1NDRkZDRkMWE5
NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVDb21wb3NpdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVDb21wb3NpdGUuY3BwCkBAIC0yNzEsMjQgKzI3MSwyNCBAQCB2b2lkIEZFQ29tcG9z
aXRlOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKQogICAgICAgICBJbnRSZWN0IHNvdXJjZVJlY3Qg
PSBkZXN0aW5hdGlvblJlY3QgLSBpbi0+YWJzb2x1dGVQYWludFJlY3QoKS5sb2NhdGlvbigpOwog
ICAgICAgICBJbnRSZWN0IHNvdXJjZTJSZWN0ID0gZGVzdGluYXRpb25SZWN0IC0gaW4yLT5hYnNv
bHV0ZVBhaW50UmVjdCgpLmxvY2F0aW9uKCk7CiAgICAgICAgIGZpbHRlckNvbnRleHQuZHJhd0lt
YWdlQnVmZmVyKCppbWFnZUJ1ZmZlcjIsIEZsb2F0UmVjdChhZGp1c3RlZERlc3RpbmF0aW9uUmVj
dCksIEZsb2F0UmVjdChzb3VyY2UyUmVjdCkpOwotICAgICAgICBmaWx0ZXJDb250ZXh0LmRyYXdJ
bWFnZUJ1ZmZlcigqaW1hZ2VCdWZmZXIsIEZsb2F0UmVjdChhZGp1c3RlZERlc3RpbmF0aW9uUmVj
dCksIEZsb2F0UmVjdChzb3VyY2VSZWN0KSwgeyBDb21wb3NpdGVTb3VyY2VJbiB9KTsKKyAgICAg
ICAgZmlsdGVyQ29udGV4dC5kcmF3SW1hZ2VCdWZmZXIoKmltYWdlQnVmZmVyLCBGbG9hdFJlY3Qo
YWRqdXN0ZWREZXN0aW5hdGlvblJlY3QpLCBGbG9hdFJlY3Qoc291cmNlUmVjdCksIHsgQ29tcG9z
aXRlT3BlcmF0b3I6OlNvdXJjZUluIH0pOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2Fz
ZSBGRUNPTVBPU0lURV9PUEVSQVRPUl9PVVQ6CiAgICAgICAgIGZpbHRlckNvbnRleHQuZHJhd0lt
YWdlQnVmZmVyKCppbWFnZUJ1ZmZlciwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbi0+YWJz
b2x1dGVQYWludFJlY3QoKSkpOwotICAgICAgICBmaWx0ZXJDb250ZXh0LmRyYXdJbWFnZUJ1ZmZl
cigqaW1hZ2VCdWZmZXIyLCBkcmF3aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGluMi0+YWJzb2x1dGVQ
YWludFJlY3QoKSksIEludFJlY3QoSW50UG9pbnQoKSwgaW1hZ2VCdWZmZXIyLT5sb2dpY2FsU2l6
ZSgpKSwgQ29tcG9zaXRlRGVzdGluYXRpb25PdXQpOworICAgICAgICBmaWx0ZXJDb250ZXh0LmRy
YXdJbWFnZUJ1ZmZlcigqaW1hZ2VCdWZmZXIyLCBkcmF3aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGlu
Mi0+YWJzb2x1dGVQYWludFJlY3QoKSksIEludFJlY3QoSW50UG9pbnQoKSwgaW1hZ2VCdWZmZXIy
LT5sb2dpY2FsU2l6ZSgpKSwgQ29tcG9zaXRlT3BlcmF0b3I6OkRlc3RpbmF0aW9uT3V0KTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBGRUNPTVBPU0lURV9PUEVSQVRPUl9BVE9QOgogICAgICAg
ICBmaWx0ZXJDb250ZXh0LmRyYXdJbWFnZUJ1ZmZlcigqaW1hZ2VCdWZmZXIyLCBkcmF3aW5nUmVn
aW9uT2ZJbnB1dEltYWdlKGluMi0+YWJzb2x1dGVQYWludFJlY3QoKSkpOwotICAgICAgICBmaWx0
ZXJDb250ZXh0LmRyYXdJbWFnZUJ1ZmZlcigqaW1hZ2VCdWZmZXIsIGRyYXdpbmdSZWdpb25PZklu
cHV0SW1hZ2UoaW4tPmFic29sdXRlUGFpbnRSZWN0KCkpLCBJbnRSZWN0KEludFBvaW50KCksIGlt
YWdlQnVmZmVyLT5sb2dpY2FsU2l6ZSgpKSwgQ29tcG9zaXRlU291cmNlQXRvcCk7CisgICAgICAg
IGZpbHRlckNvbnRleHQuZHJhd0ltYWdlQnVmZmVyKCppbWFnZUJ1ZmZlciwgZHJhd2luZ1JlZ2lv
bk9mSW5wdXRJbWFnZShpbi0+YWJzb2x1dGVQYWludFJlY3QoKSksIEludFJlY3QoSW50UG9pbnQo
KSwgaW1hZ2VCdWZmZXItPmxvZ2ljYWxTaXplKCkpLCBDb21wb3NpdGVPcGVyYXRvcjo6U291cmNl
QXRvcCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRkVDT01QT1NJVEVfT1BFUkFUT1JfWE9S
OgogICAgICAgICBmaWx0ZXJDb250ZXh0LmRyYXdJbWFnZUJ1ZmZlcigqaW1hZ2VCdWZmZXIyLCBk
cmF3aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGluMi0+YWJzb2x1dGVQYWludFJlY3QoKSkpOwotICAg
ICAgICBmaWx0ZXJDb250ZXh0LmRyYXdJbWFnZUJ1ZmZlcigqaW1hZ2VCdWZmZXIsIGRyYXdpbmdS
ZWdpb25PZklucHV0SW1hZ2UoaW4tPmFic29sdXRlUGFpbnRSZWN0KCkpLCBJbnRSZWN0KEludFBv
aW50KCksIGltYWdlQnVmZmVyLT5sb2dpY2FsU2l6ZSgpKSwgQ29tcG9zaXRlWE9SKTsKKyAgICAg
ICAgZmlsdGVyQ29udGV4dC5kcmF3SW1hZ2VCdWZmZXIoKmltYWdlQnVmZmVyLCBkcmF3aW5nUmVn
aW9uT2ZJbnB1dEltYWdlKGluLT5hYnNvbHV0ZVBhaW50UmVjdCgpKSwgSW50UmVjdChJbnRQb2lu
dCgpLCBpbWFnZUJ1ZmZlci0+bG9naWNhbFNpemUoKSksIENvbXBvc2l0ZU9wZXJhdG9yOjpYT1Ip
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIEZFQ09NUE9TSVRFX09QRVJBVE9SX0xJR0hURVI6
CiAgICAgICAgIGZpbHRlckNvbnRleHQuZHJhd0ltYWdlQnVmZmVyKCppbWFnZUJ1ZmZlcjIsIGRy
YXdpbmdSZWdpb25PZklucHV0SW1hZ2UoaW4yLT5hYnNvbHV0ZVBhaW50UmVjdCgpKSk7Ci0gICAg
ICAgIGZpbHRlckNvbnRleHQuZHJhd0ltYWdlQnVmZmVyKCppbWFnZUJ1ZmZlciwgZHJhd2luZ1Jl
Z2lvbk9mSW5wdXRJbWFnZShpbi0+YWJzb2x1dGVQYWludFJlY3QoKSksIEludFJlY3QoSW50UG9p
bnQoKSwgaW1hZ2VCdWZmZXItPmxvZ2ljYWxTaXplKCkpLCBDb21wb3NpdGVQbHVzTGlnaHRlcik7
CisgICAgICAgIGZpbHRlckNvbnRleHQuZHJhd0ltYWdlQnVmZmVyKCppbWFnZUJ1ZmZlciwgZHJh
d2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbi0+YWJzb2x1dGVQYWludFJlY3QoKSksIEludFJlY3Qo
SW50UG9pbnQoKSwgaW1hZ2VCdWZmZXItPmxvZ2ljYWxTaXplKCkpLCBDb21wb3NpdGVPcGVyYXRv
cjo6UGx1c0xpZ2h0ZXIpOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBi
cmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVEcm9wU2hhZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVEcm9wU2hhZG93LmNwcAppbmRleCA4ODlhYTJkZmIyZTE2NTYxNDk4YjM1ZGVmMTY4
ODRmN2FiZTYwY2JjLi4yMzY2NmExYWVmNTM1MzIxNDkzYzllYTJkNTYxOGU4ZmRkZDg0ZWNiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRHJv
cFNoYWRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRURyb3BTaGFkb3cuY3BwCkBAIC0xMDgsOSArMTA4LDkgQEAgdm9pZCBGRURyb3BTaGFkb3c6
OnBsYXRmb3JtQXBwbHlTb2Z0d2FyZSgpCiAKICAgICByZXN1bHRJbWFnZS0+cHV0Qnl0ZUFycmF5
KCpzcmNQaXhlbEFycmF5LCBBbHBoYVByZW11bHRpcGxpY2F0aW9uOjpQcmVtdWx0aXBsaWVkLCBz
aGFkb3dBcmVhLnNpemUoKSwgc2hhZG93QXJlYSwgSW50UG9pbnQoKSwgSW1hZ2VCdWZmZXI6OkJh
Y2tpbmdTdG9yZUNvb3JkaW5hdGVTeXN0ZW0pOwogCi0gICAgcmVzdWx0Q29udGV4dC5zZXRDb21w
b3NpdGVPcGVyYXRpb24oQ29tcG9zaXRlU291cmNlSW4pOworICAgIHJlc3VsdENvbnRleHQuc2V0
Q29tcG9zaXRlT3BlcmF0aW9uKENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VJbik7CiAgICAgcmVz
dWx0Q29udGV4dC5maWxsUmVjdChGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBhYnNvbHV0ZVBhaW50
UmVjdCgpLnNpemUoKSksIG1fc2hhZG93Q29sb3IpOwotICAgIHJlc3VsdENvbnRleHQuc2V0Q29t
cG9zaXRlT3BlcmF0aW9uKENvbXBvc2l0ZURlc3RpbmF0aW9uT3Zlcik7CisgICAgcmVzdWx0Q29u
dGV4dC5zZXRDb21wb3NpdGVPcGVyYXRpb24oQ29tcG9zaXRlT3BlcmF0b3I6OkRlc3RpbmF0aW9u
T3Zlcik7CiAKICAgICByZXN1bHRJbWFnZS0+Y29udGV4dCgpLmRyYXdJbWFnZUJ1ZmZlcigqc291
cmNlSW1hZ2UsIGRyYXdpbmdSZWdpb24pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcAppbmRleCAzYTY4MGEy
OTg1MzY4NTVlN2IxNjUxZDFmZGVkODQxNTgwODkzZjhhLi5hMGFhMjUwM2VhNWViZWM5Y2JlYTVh
YzcyN2Y3MDYwNTkzOTQ1NzU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcApAQCAtNjAsNyArNjAsNyBAQCB2
b2lkIFNvdXJjZUFscGhhOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKQogCiAgICAgRmxvYXRSZWN0
IGltYWdlUmVjdChGbG9hdFBvaW50KCksIGFic29sdXRlUGFpbnRSZWN0KCkuc2l6ZSgpKTsKICAg
ICBmaWx0ZXJDb250ZXh0LmZpbGxSZWN0KGltYWdlUmVjdCwgQ29sb3I6OmJsYWNrKTsKLSAgICBm
aWx0ZXJDb250ZXh0LmRyYXdJbWFnZUJ1ZmZlcigqaW1hZ2VCdWZmZXIsIEludFBvaW50KCksIENv
bXBvc2l0ZURlc3RpbmF0aW9uSW4pOworICAgIGZpbHRlckNvbnRleHQuZHJhd0ltYWdlQnVmZmVy
KCppbWFnZUJ1ZmZlciwgSW50UG9pbnQoKSwgQ29tcG9zaXRlT3BlcmF0b3I6OkRlc3RpbmF0aW9u
SW4pOwogfQogCiBUZXh0U3RyZWFtJiBTb3VyY2VBbHBoYTo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlv
bihUZXh0U3RyZWFtJiB0cywgUmVwcmVzZW50YXRpb25UeXBlKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCA1NzllZDk5ZjE3MzNk
MmQ4MWQ3MDM3YzMwOTUwNWFkZTFmZDU3MjIyLi5kMTEzMTFlMjJlMmZmY2Q5NmY4NjUzN2JiM2M1
MmQ4ZTVkNDYwOWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyLmNwcApAQCAtMzI4NSw3ICszMjg1LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXI6OnBhaW50KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWMK
ICAgICBpZiAoIWdzdEltYWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICBjb250ZXh0LmRyYXdJ
bWFnZShnc3RJbWFnZS0+aW1hZ2UoKSwgcmVjdCwgZ3N0SW1hZ2UtPnJlY3QoKSwgeyBDb21wb3Np
dGVDb3B5LCBtX3JlbmRlcmluZ0NhbkJlQWNjZWxlcmF0ZWQgPyBtX3ZpZGVvU291cmNlT3JpZW50
YXRpb24gOiBJbWFnZU9yaWVudGF0aW9uKCkgfSk7CisgICAgY29udGV4dC5kcmF3SW1hZ2UoZ3N0
SW1hZ2UtPmltYWdlKCksIHJlY3QsIGdzdEltYWdlLT5yZWN0KCksIHsgQ29tcG9zaXRlT3BlcmF0
b3I6OkNvcHksIG1fcmVuZGVyaW5nQ2FuQmVBY2NlbGVyYXRlZCA/IG1fdmlkZW9Tb3VyY2VPcmll
bnRhdGlvbiA6IEltYWdlT3JpZW50YXRpb24oKSB9KTsKIH0KIAogI2lmIFVTRShHU1RSRUFNRVJf
R0wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lh
L05pY29zaWFQYWludGluZ0VuZ2luZUJhc2ljLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL25pY29zaWEvTmljb3NpYVBhaW50aW5nRW5naW5lQmFzaWMuY3BwCmluZGV4IDNh
MTY0YzI4YTZmYzViODAyNzA1MDdkMjkxMjYzZGI5ZTAwNDkxODMuLjU1ODg5NDEwOWNlNjRlOWIw
NzdiZmU2M2I3YWU4N2VjMDc5MjM2MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL25pY29zaWEvTmljb3NpYVBhaW50aW5nRW5naW5lQmFzaWMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvTmljb3NpYVBhaW50aW5n
RW5naW5lQmFzaWMuY3BwCkBAIC01NSw5ICs1NSw5IEBAIGJvb2wgUGFpbnRpbmdFbmdpbmVCYXNp
Yzo6cGFpbnQoR3JhcGhpY3NMYXllciYgbGF5ZXIsIFJlZjxCdWZmZXI+JiYgYnVmZmVyLCBjb25z
CiAgICAgICAgICAgICBjb250ZXh0LnRyYW5zbGF0ZSh0YXJnZXRSZWN0LngoKSwgdGFyZ2V0UmVj
dC55KCkpOwogCiAgICAgICAgICAgICBpZiAoc3VwcG9ydHNBbHBoYSkgewotICAgICAgICAgICAg
ICAgIGNvbnRleHQuc2V0Q29tcG9zaXRlT3BlcmF0aW9uKENvbXBvc2l0ZUNvcHkpOworICAgICAg
ICAgICAgICAgIGNvbnRleHQuc2V0Q29tcG9zaXRlT3BlcmF0aW9uKENvbXBvc2l0ZU9wZXJhdG9y
OjpDb3B5KTsKICAgICAgICAgICAgICAgICBjb250ZXh0LmZpbGxSZWN0KEludFJlY3QoSW50UG9p
bnQ6Onplcm8oKSwgc291cmNlUmVjdC5zaXplKCkpLCBDb2xvcjo6dHJhbnNwYXJlbnQpOwotICAg
ICAgICAgICAgICAgIGNvbnRleHQuc2V0Q29tcG9zaXRlT3BlcmF0aW9uKENvbXBvc2l0ZVNvdXJj
ZU92ZXIpOworICAgICAgICAgICAgICAgIGNvbnRleHQuc2V0Q29tcG9zaXRlT3BlcmF0aW9uKENv
bXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VPdmVyKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAg
ICAgY29udGV4dC50cmFuc2xhdGUoLXNvdXJjZVJlY3QueCgpLCAtc291cmNlUmVjdC55KCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9OaWNv
c2lhUGFpbnRpbmdFbmdpbmVUaHJlYWRlZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9uaWNvc2lhL05pY29zaWFQYWludGluZ0VuZ2luZVRocmVhZGVkLmNwcAppbmRleCA0
M2M4YWY0YTIyNTA5NTQ3MTY5OTA2MWRjZTZhZjNhOGM5OWY4ZWFiLi5lMzVhMTVkZjVkZjdkNDJm
YmYyNzQ5MmM1NGM1NDIyZDZlMDIzYTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9uaWNvc2lhL05pY29zaWFQYWludGluZ0VuZ2luZVRocmVhZGVkLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL05pY29zaWFQYWlu
dGluZ0VuZ2luZVRocmVhZGVkLmNwcApAQCAtNDYsOSArNDYsOSBAQCBzdGF0aWMgdm9pZCBwYWlu
dExheWVyKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgR3JhcGhpY3NMYXllciYgbGF5ZXIsIGNv
bnN0IEludAogICAgIGNvbnRleHQudHJhbnNsYXRlKHRhcmdldFJlY3QueCgpLCB0YXJnZXRSZWN0
LnkoKSk7CiAKICAgICBpZiAoc3VwcG9ydHNBbHBoYSkgewotICAgICAgICBjb250ZXh0LnNldENv
bXBvc2l0ZU9wZXJhdGlvbihDb21wb3NpdGVDb3B5KTsKKyAgICAgICAgY29udGV4dC5zZXRDb21w
b3NpdGVPcGVyYXRpb24oQ29tcG9zaXRlT3BlcmF0b3I6OkNvcHkpOwogICAgICAgICBjb250ZXh0
LmZpbGxSZWN0KEludFJlY3QoSW50UG9pbnQ6Onplcm8oKSwgc291cmNlUmVjdC5zaXplKCkpLCBD
b2xvcjo6dHJhbnNwYXJlbnQpOwotICAgICAgICBjb250ZXh0LnNldENvbXBvc2l0ZU9wZXJhdGlv
bihDb21wb3NpdGVTb3VyY2VPdmVyKTsKKyAgICAgICAgY29udGV4dC5zZXRDb21wb3NpdGVPcGVy
YXRpb24oQ29tcG9zaXRlT3BlcmF0b3I6OlNvdXJjZU92ZXIpOwogICAgIH0KIAogICAgIGNvbnRl
eHQudHJhbnNsYXRlKC1zb3VyY2VSZWN0LngoKSwgLXNvdXJjZVJlY3QueSgpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9D
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKaW5k
ZXggMmU2NDNiNTVjYmU1OGQ1MGY0ZGU2YmNjNGZhMTVlYzVhNTJjODMzZS4uYmQ2OTBlNWMzNTFl
MGE2ZGEzY2M3MGY0NTc4YWJlOGM4NTZiNTVkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NM
YXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nv
b3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKQEAgLTgyNSw3ICs4MjUsNyBA
QCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlRm9y
VGhpc0xheWVyT25seSgpCiAgICAgICAgICAgICAgICAgWyZpbWFnZV0oR3JhcGhpY3NDb250ZXh0
JiBjb250ZXh0KQogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgSW50UmVj
dCByZWN0IHsgeyB9LCBJbnRTaXplIHsgaW1hZ2Uuc2l6ZSgpIH0gfTsKLSAgICAgICAgICAgICAg
ICAgICAgY29udGV4dC5kcmF3SW1hZ2UoaW1hZ2UsIHJlY3QsIHJlY3QsIEltYWdlUGFpbnRpbmdP
cHRpb25zKENvbXBvc2l0ZUNvcHkpKTsKKyAgICAgICAgICAgICAgICAgICAgY29udGV4dC5kcmF3
SW1hZ2UoaW1hZ2UsIHJlY3QsIHJlY3QsIEltYWdlUGFpbnRpbmdPcHRpb25zKENvbXBvc2l0ZU9w
ZXJhdG9yOjpDb3B5KSk7CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICBsYXllclN0
YXRlLm5hdGl2ZUltYWdlSUQgPSBuYXRpdmVJbWFnZUlEOwogICAgICAgICAgICAgbGF5ZXJTdGF0
ZS51cGRhdGUuYnVmZmVyID0gV1RGTW92ZShidWZmZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0RpcmVjdDJET3BlcmF0aW9ucy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRGlyZWN0MkRPcGVyYXRpb25zLmNwcApp
bmRleCA4NjU4YTQ4YjRjZjJkMmZmNzkwZGEyYTg3MGYxZDcwYTNmZTk1MGUzLi4xOGI4NzE4MTYx
YzZhMGUxMWU0NDdkNDRhYWIyNmU4OTJiNjUyZTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRGlyZWN0MkRPcGVyYXRpb25zLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRGlyZWN0MkRPcGVyYXRpb25zLmNwcApA
QCAtMTg5LDQ2ICsxODksNDYgQEAgdm9pZCBzZXRDb21wb3NpdGVPcGVyYXRpb24oUGxhdGZvcm1D
b250ZXh0RGlyZWN0MkQmIHBsYXRmb3JtQ29udGV4dCwgQ29tcG9zaXRlT3AKICAgICAgICAgfQog
ICAgIH0gZWxzZSB7CiAgICAgICAgIHN3aXRjaCAoY29tcG9zaXRlT3BlcmF0aW9uKSB7Ci0gICAg
ICAgIGNhc2UgQ29tcG9zaXRlQ2xlYXI6CisgICAgICAgIGNhc2UgQ29tcG9zaXRlT3BlcmF0b3I6
OkNsZWFyOgogICAgICAgICAgICAgLy8gRklYTUU6IHRhcmdldEJsZW5kTW9kZSA9IEQyRDFfQkxF
TkRfTU9ERV9DTEVBUjsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENvbXBvc2l0
ZUNvcHk6CisgICAgICAgIGNhc2UgQ29tcG9zaXRlT3BlcmF0b3I6OkNvcHk6CiAgICAgICAgICAg
ICB0YXJnZXRDb21wb3NpdGVNb2RlID0gRDJEMV9DT01QT1NJVEVfTU9ERV9TT1VSQ0VfQ09QWTsK
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENvbXBvc2l0ZVNvdXJjZU92ZXI6Cisg
ICAgICAgIGNhc2UgQ29tcG9zaXRlT3BlcmF0b3I6OlNvdXJjZU92ZXI6CiAgICAgICAgICAgICB0
YXJnZXRDb21wb3NpdGVNb2RlID0gRDJEMV9DT01QT1NJVEVfTU9ERV9TT1VSQ0VfT1ZFUjsKICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENvbXBvc2l0ZVNvdXJjZUluOgorICAgICAg
ICBjYXNlIENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VJbjoKICAgICAgICAgICAgIHRhcmdldENv
bXBvc2l0ZU1vZGUgPSBEMkQxX0NPTVBPU0lURV9NT0RFX1NPVVJDRV9JTjsKICAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICBjYXNlIENvbXBvc2l0ZVNvdXJjZU91dDoKKyAgICAgICAgY2FzZSBD
b21wb3NpdGVPcGVyYXRvcjo6U291cmNlT3V0OgogICAgICAgICAgICAgdGFyZ2V0Q29tcG9zaXRl
TW9kZSA9IEQyRDFfQ09NUE9TSVRFX01PREVfU09VUkNFX09VVDsKICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlIENvbXBvc2l0ZVNvdXJjZUF0b3A6CisgICAgICAgIGNhc2UgQ29tcG9z
aXRlT3BlcmF0b3I6OlNvdXJjZUF0b3A6CiAgICAgICAgICAgICB0YXJnZXRDb21wb3NpdGVNb2Rl
ID0gRDJEMV9DT01QT1NJVEVfTU9ERV9TT1VSQ0VfQVRPUDsKICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBjYXNlIENvbXBvc2l0ZURlc3RpbmF0aW9uT3ZlcjoKKyAgICAgICAgY2FzZSBDb21w
b3NpdGVPcGVyYXRvcjo6RGVzdGluYXRpb25PdmVyOgogICAgICAgICAgICAgdGFyZ2V0Q29tcG9z
aXRlTW9kZSA9IEQyRDFfQ09NUE9TSVRFX01PREVfREVTVElOQVRJT05fT1ZFUjsKICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBjYXNlIENvbXBvc2l0ZURlc3RpbmF0aW9uSW46CisgICAgICAg
IGNhc2UgQ29tcG9zaXRlT3BlcmF0b3I6OkRlc3RpbmF0aW9uSW46CiAgICAgICAgICAgICB0YXJn
ZXRDb21wb3NpdGVNb2RlID0gRDJEMV9DT01QT1NJVEVfTU9ERV9ERVNUSU5BVElPTl9JTjsKICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENvbXBvc2l0ZURlc3RpbmF0aW9uT3V0Ogor
ICAgICAgICBjYXNlIENvbXBvc2l0ZU9wZXJhdG9yOjpEZXN0aW5hdGlvbk91dDoKICAgICAgICAg
ICAgIHRhcmdldENvbXBvc2l0ZU1vZGUgPSBEMkQxX0NPTVBPU0lURV9NT0RFX0RFU1RJTkFUSU9O
X09VVDsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENvbXBvc2l0ZURlc3RpbmF0
aW9uQXRvcDoKKyAgICAgICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6RGVzdGluYXRpb25BdG9w
OgogICAgICAgICAgICAgdGFyZ2V0Q29tcG9zaXRlTW9kZSA9IEQyRDFfQ09NUE9TSVRFX01PREVf
REVTVElOQVRJT05fQVRPUDsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENvbXBv
c2l0ZVhPUjoKKyAgICAgICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6WE9SOgogICAgICAgICAg
ICAgdGFyZ2V0Q29tcG9zaXRlTW9kZSA9IEQyRDFfQ09NUE9TSVRFX01PREVfWE9SOwogICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ29tcG9zaXRlUGx1c0RhcmtlcjoKKyAgICAgICAg
Y2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6UGx1c0RhcmtlcjoKICAgICAgICAgICAgIHRhcmdldEJs
ZW5kTW9kZSA9IEQyRDFfQkxFTkRfTU9ERV9EQVJLRU47CiAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgY2FzZSBDb21wb3NpdGVQbHVzTGlnaHRlcjoKKyAgICAgICAgY2FzZSBDb21wb3NpdGVP
cGVyYXRvcjo6UGx1c0xpZ2h0ZXI6CiAgICAgICAgICAgICB0YXJnZXRCbGVuZE1vZGUgPSBEMkQx
X0JMRU5EX01PREVfTElHSFRFTjsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENv
bXBvc2l0ZURpZmZlcmVuY2U6CisgICAgICAgIGNhc2UgQ29tcG9zaXRlT3BlcmF0b3I6OkRpZmZl
cmVuY2U6CiAgICAgICAgICAgICB0YXJnZXRCbGVuZE1vZGUgPSBEMkQxX0JMRU5EX01PREVfRElG
RkVSRU5DRTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRGlyZWN0MkRPcGVyYXRpb25zLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRGlyZWN0MkRPcGVyYXRpb25zLmgK
aW5kZXggMWRkNGYxMjk1ZWEzN2I1ODRhMzA5NmQzOGQzNmRjNGFiM2QxNjIxNC4uNzRhMTAzNjcw
OWYzODU1Y2U4ZDU0Zjc1ZWNjMzZmMzFkODYzMmM1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0RpcmVjdDJET3BlcmF0aW9ucy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9EaXJlY3QyRE9wZXJhdGlvbnMuaApAQCAt
MTA2LDcgKzEwNiw3IEBAIHN0cnVjdCBTaGFkb3dTdGF0ZSB7CiAgICAgYm9vbCBpZ25vcmVUcmFu
c2Zvcm1zIHsgZmFsc2UgfTsKIAogICAgIGZsb2F0IGdsb2JhbEFscGhhIHsgMS4wIH07Ci0gICAg
Q29tcG9zaXRlT3BlcmF0b3IgZ2xvYmFsQ29tcG9zaXRlT3BlcmF0b3IgeyBDb21wb3NpdGVTb3Vy
Y2VPdmVyIH07CisgICAgQ29tcG9zaXRlT3BlcmF0b3IgZ2xvYmFsQ29tcG9zaXRlT3BlcmF0b3Ig
eyBDb21wb3NpdGVPcGVyYXRvcjo6U291cmNlT3ZlciB9OwogfTsKIAogdm9pZCBzZXRMaW5lQ2Fw
KFBsYXRmb3JtQ29udGV4dERpcmVjdDJEJiwgTGluZUNhcCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VDR1dpbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VDR1dpbi5jcHAKaW5kZXggOTMyM2RhNzI0
OGY2ZjQ5OTgxZTQ1OTM4MzY4MzI4NzlkZDFkZTJmOS4uNzRkMzZkZmQ1OGMzNzZlODRmOTNiOWQ0
ZTkyMTMzZDU1M2NkM2E0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL0ltYWdlQ0dXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbi9JbWFnZUNHV2luLmNwcApAQCAtNzcsOSArNzcsOSBAQCBib29sIEJpdG1hcElt
YWdlOjpnZXRIQklUTUFQT2ZTaXplKEhCSVRNQVAgYm1wLCBjb25zdCBJbnRTaXplKiBzaXplKQog
CiAgICAgRmxvYXRTaXplIGltYWdlU2l6ZSA9IEJpdG1hcEltYWdlOjpzaXplKCk7CiAgICAgaWYg
KHNpemUpCi0gICAgICAgIGRyYXdGcmFtZU1hdGNoaW5nU291cmNlU2l6ZShnYywgRmxvYXRSZWN0
KDAuMGYsIDAuMGYsIGJtcEluZm8uYm1XaWR0aCwgYm1wSW5mby5ibUhlaWdodCksICpzaXplLCBD
b21wb3NpdGVDb3B5KTsKKyAgICAgICAgZHJhd0ZyYW1lTWF0Y2hpbmdTb3VyY2VTaXplKGdjLCBG
bG9hdFJlY3QoMC4wZiwgMC4wZiwgYm1wSW5mby5ibVdpZHRoLCBibXBJbmZvLmJtSGVpZ2h0KSwg
KnNpemUsIENvbXBvc2l0ZU9wZXJhdG9yOjpDb3B5KTsKICAgICBlbHNlCi0gICAgICAgIGRyYXco
Z2MsIEZsb2F0UmVjdCgwLjBmLCAwLjBmLCBibXBJbmZvLmJtV2lkdGgsIGJtcEluZm8uYm1IZWln
aHQpLCBGbG9hdFJlY3QoMC4wZiwgMC4wZiwgaW1hZ2VTaXplLndpZHRoKCksIGltYWdlU2l6ZS5o
ZWlnaHQoKSksIHsgQ29tcG9zaXRlQ29weSB9KTsKKyAgICAgICAgZHJhdyhnYywgRmxvYXRSZWN0
KDAuMGYsIDAuMGYsIGJtcEluZm8uYm1XaWR0aCwgYm1wSW5mby5ibUhlaWdodCksIEZsb2F0UmVj
dCgwLjBmLCAwLjBmLCBpbWFnZVNpemUud2lkdGgoKSwgaW1hZ2VTaXplLmhlaWdodCgpKSwgeyBD
b21wb3NpdGVPcGVyYXRvcjo6Q29weSB9KTsKIAogICAgIC8vIERvIGNsZWFudXAKICAgICBDR0Nv
bnRleHRSZWxlYXNlKGNnQ29udGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VDYWlyb1dpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VDYWlyb1dpbi5jcHAKaW5kZXggNjhiZjM5N2RlZmIxOGVk
MDc3OGU4M2Y2NDJjZDlmMmE1ZGY2ZGIzMy4uZDRlYWZjNTk5YTAwZjIzOTU3ODkyZTNjYWEyZTg1
ZWJjZTM4MDVjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
d2luL0ltYWdlQ2Fpcm9XaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbi9JbWFnZUNhaXJvV2luLmNwcApAQCAtNzksOSArNzksOSBAQCBib29sIEJpdG1hcElt
YWdlOjpnZXRIQklUTUFQT2ZTaXplKEhCSVRNQVAgYm1wLCBjb25zdCBJbnRTaXplKiBzaXplKQog
CiAgICAgRmxvYXRTaXplIGltYWdlU2l6ZSA9IEJpdG1hcEltYWdlOjpzaXplKCk7CiAgICAgaWYg
KHNpemUpCi0gICAgICAgIGRyYXdGcmFtZU1hdGNoaW5nU291cmNlU2l6ZShnYywgRmxvYXRSZWN0
KDAuMGYsIDAuMGYsIGJtcEluZm8uYm1XaWR0aCwgYm1wSW5mby5ibUhlaWdodCksICpzaXplLCBD
b21wb3NpdGVDb3B5KTsKKyAgICAgICAgZHJhd0ZyYW1lTWF0Y2hpbmdTb3VyY2VTaXplKGdjLCBG
bG9hdFJlY3QoMC4wZiwgMC4wZiwgYm1wSW5mby5ibVdpZHRoLCBibXBJbmZvLmJtSGVpZ2h0KSwg
KnNpemUsIENvbXBvc2l0ZU9wZXJhdG9yOjpDb3B5KTsKICAgICBlbHNlCi0gICAgICAgIGRyYXco
Z2MsIEZsb2F0UmVjdCgwLjBmLCAwLjBmLCBibXBJbmZvLmJtV2lkdGgsIGJtcEluZm8uYm1IZWln
aHQpLCBGbG9hdFJlY3QoMC4wZiwgMC4wZiwgaW1hZ2VTaXplLndpZHRoKCksIGltYWdlU2l6ZS5o
ZWlnaHQoKSksIHsgQ29tcG9zaXRlQ29weSB9KTsKKyAgICAgICAgZHJhdyhnYywgRmxvYXRSZWN0
KDAuMGYsIDAuMGYsIGJtcEluZm8uYm1XaWR0aCwgYm1wSW5mby5ibUhlaWdodCksIEZsb2F0UmVj
dCgwLjBmLCAwLjBmLCBpbWFnZVNpemUud2lkdGgoKSwgaW1hZ2VTaXplLmhlaWdodCgpKSwgeyBD
b21wb3NpdGVPcGVyYXRvcjo6Q29weSB9KTsKIAogICAgIC8vIERvIGNsZWFudXAKICAgICBjYWly
b19kZXN0cm95KHRhcmdldFJlZik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvSW5saW5lRmxvd0JveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxv
d0JveC5jcHAKaW5kZXggOTA3NTc3NDc5ZTBkZDc5NmNkOTBjY2YzYjI0NTU4NjNjZTdhZGU0NC4u
YzMxNjQ5NGJkYjM2ZDkxN2JhZGQ3YjY1MGUwYmViOWQ5ZmJlYjgyMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcApAQCAtMTQzOCwxNiArMTQzOCwxNiBAQCB2
b2lkIElubGluZUZsb3dCb3g6OnBhaW50TWFzayhQYWludEluZm8mIHBhaW50SW5mbywgY29uc3Qg
TGF5b3V0UG9pbnQmIHBhaW50T2ZmcwogICAgIGJvb2wgcHVzaFRyYW5zcGFyZW5jeUxheWVyID0g
ZmFsc2U7CiAgICAgYm9vbCBjb21wb3NpdGVkTWFzayA9IHJlbmRlcmVyKCkuaGFzTGF5ZXIoKSAm
JiByZW5kZXJlcigpLmxheWVyKCktPmhhc0NvbXBvc2l0ZWRNYXNrKCk7CiAgICAgYm9vbCBmbGF0
dGVuQ29tcG9zaXRpbmdMYXllcnMgPSByZW5kZXJlcigpLnZpZXcoKS5mcmFtZVZpZXcoKS5wYWlu
dEJlaGF2aW9yKCkuY29udGFpbnMoUGFpbnRCZWhhdmlvcjo6RmxhdHRlbkNvbXBvc2l0aW5nTGF5
ZXJzKTsKLSAgICBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcCA9IENvbXBvc2l0ZVNvdXJj
ZU92ZXI7CisgICAgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3AgPSBDb21wb3NpdGVPcGVy
YXRvcjo6U291cmNlT3ZlcjsKICAgICBpZiAoIWNvbXBvc2l0ZWRNYXNrIHx8IGZsYXR0ZW5Db21w
b3NpdGluZ0xheWVycykgewogICAgICAgICBpZiAoKG1hc2tCb3hJbWFnZSAmJiByZW5kZXJlcigp
LnN0eWxlKCkubWFza0xheWVycygpLmhhc0ltYWdlKCkpIHx8IHJlbmRlcmVyKCkuc3R5bGUoKS5t
YXNrTGF5ZXJzKCkubmV4dCgpKQogICAgICAgICAgICAgcHVzaFRyYW5zcGFyZW5jeUxheWVyID0g
dHJ1ZTsKICAgICAgICAgCi0gICAgICAgIGNvbXBvc2l0ZU9wID0gQ29tcG9zaXRlRGVzdGluYXRp
b25JbjsKKyAgICAgICAgY29tcG9zaXRlT3AgPSBDb21wb3NpdGVPcGVyYXRvcjo6RGVzdGluYXRp
b25JbjsKICAgICAgICAgaWYgKHB1c2hUcmFuc3BhcmVuY3lMYXllcikgewotICAgICAgICAgICAg
cGFpbnRJbmZvLmNvbnRleHQoKS5zZXRDb21wb3NpdGVPcGVyYXRpb24oQ29tcG9zaXRlRGVzdGlu
YXRpb25Jbik7CisgICAgICAgICAgICBwYWludEluZm8uY29udGV4dCgpLnNldENvbXBvc2l0ZU9w
ZXJhdGlvbihDb21wb3NpdGVPcGVyYXRvcjo6RGVzdGluYXRpb25Jbik7CiAgICAgICAgICAgICBw
YWludEluZm8uY29udGV4dCgpLmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIoMS4wZik7Ci0gICAgICAg
ICAgICBjb21wb3NpdGVPcCA9IENvbXBvc2l0ZVNvdXJjZU92ZXI7CisgICAgICAgICAgICBjb21w
b3NpdGVPcCA9IENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VPdmVyOwogICAgICAgICB9CiAgICAg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guaAppbmRleCA4MDQxNWQ5
NGY5ZmMwYzVlMjQxNDZhZWZmMmFhZDkzM2NkZTViNDJhLi5kMzZhMTViNzQ5N2Q2Y2E0ZTAyZDk4
ODU4MzllYjRkNDdhYWM2ZTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
SW5saW5lRmxvd0JveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93
Qm94LmgKQEAgLTExNSw4ICsxMTUsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHBhaW50Qm94RGVj
b3JhdGlvbnMoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKTsKICAgICB2b2lkIHBhaW50
TWFzayhQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpOwotICAgIHZvaWQgcGFpbnRGaWxs
TGF5ZXJzKGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IENvbG9yJiwgY29uc3QgRmlsbExheWVyJiwg
Y29uc3QgTGF5b3V0UmVjdCYsIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3Zl
cik7Ci0gICAgdm9pZCBwYWludEZpbGxMYXllcihjb25zdCBQYWludEluZm8mLCBjb25zdCBDb2xv
ciYsIGNvbnN0IEZpbGxMYXllciYsIGNvbnN0IExheW91dFJlY3QmLCBDb21wb3NpdGVPcGVyYXRv
ciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIpOworICAgIHZvaWQgcGFpbnRGaWxsTGF5ZXJzKGNvbnN0
IFBhaW50SW5mbyYsIGNvbnN0IENvbG9yJiwgY29uc3QgRmlsbExheWVyJiwgY29uc3QgTGF5b3V0
UmVjdCYsIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlT3BlcmF0b3I6OlNvdXJjZU92ZXIp
OworICAgIHZvaWQgcGFpbnRGaWxsTGF5ZXIoY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgQ29sb3Im
LCBjb25zdCBGaWxsTGF5ZXImLCBjb25zdCBMYXlvdXRSZWN0JiwgQ29tcG9zaXRlT3BlcmF0b3Ig
PSBDb21wb3NpdGVPcGVyYXRvcjo6U291cmNlT3Zlcik7CiAgICAgdm9pZCBwYWludEJveFNoYWRv
dyhjb25zdCBQYWludEluZm8mLCBjb25zdCBSZW5kZXJTdHlsZSYsIFNoYWRvd1N0eWxlLCBjb25z
dCBMYXlvdXRSZWN0Jik7CiAgICAgdm9pZCBwYWludChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQ
b2ludCYsIExheW91dFVuaXQgbGluZVRvcCwgTGF5b3V0VW5pdCBsaW5lQm90dG9tKSBvdmVycmlk
ZTsKICAgICBib29sIG5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJl
c3VsdCYsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3Qg
TGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBMYXlvdXRVbml0IGxpbmVUb3AsIExheW91
dFVuaXQgbGluZUJvdHRvbSwgSGl0VGVzdEFjdGlvbikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IDg3YWU3NjI0MDYxZjQ3Yzc0M2U0MDYwYTE4NWU5
MzI5MjdiYzczNTIuLmY4ZDNhNDkyNWFkOTAxMmMxNWIzMGNiYzM2MDI3ODkzY2ZmMmVkMDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCkBAIC0xNTg5LDcgKzE1ODksNyBA
QCB2b2lkIFJlbmRlckJveDo6cGFpbnRNYXNrSW1hZ2VzKGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJ
bmZvLCBjb25zdCBMYXlvdXRSZWN0JiBwYQogICAgIGJvb2wgcHVzaFRyYW5zcGFyZW5jeUxheWVy
ID0gZmFsc2U7CiAgICAgYm9vbCBjb21wb3NpdGVkTWFzayA9IGhhc0xheWVyKCkgJiYgbGF5ZXIo
KS0+aGFzQ29tcG9zaXRlZE1hc2soKTsKICAgICBib29sIGZsYXR0ZW5Db21wb3NpdGluZ0xheWVy
cyA9IHBhaW50SW5mby5wYWludEJlaGF2aW9yLmNvbnRhaW5zKFBhaW50QmVoYXZpb3I6OkZsYXR0
ZW5Db21wb3NpdGluZ0xheWVycyk7Ci0gICAgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3Ag
PSBDb21wb3NpdGVTb3VyY2VPdmVyOworICAgIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9w
ID0gQ29tcG9zaXRlT3BlcmF0b3I6OlNvdXJjZU92ZXI7CiAKICAgICBib29sIGFsbE1hc2tJbWFn
ZXNMb2FkZWQgPSB0cnVlOwogICAgIApAQCAtMTYwMiw5ICsxNjAyLDkgQEAgdm9pZCBSZW5kZXJC
b3g6OnBhaW50TWFza0ltYWdlcyhjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5
b3V0UmVjdCYgcGEKIAogICAgICAgICBhbGxNYXNrSW1hZ2VzTG9hZGVkICY9IHN0eWxlKCkubWFz
a0xheWVycygpLmltYWdlc0FyZUxvYWRlZCgpOwogCi0gICAgICAgIHBhaW50SW5mby5jb250ZXh0
KCkuc2V0Q29tcG9zaXRlT3BlcmF0aW9uKENvbXBvc2l0ZURlc3RpbmF0aW9uSW4pOworICAgICAg
ICBwYWludEluZm8uY29udGV4dCgpLnNldENvbXBvc2l0ZU9wZXJhdGlvbihDb21wb3NpdGVPcGVy
YXRvcjo6RGVzdGluYXRpb25Jbik7CiAgICAgICAgIHBhaW50SW5mby5jb250ZXh0KCkuYmVnaW5U
cmFuc3BhcmVuY3lMYXllcigxKTsKLSAgICAgICAgY29tcG9zaXRlT3AgPSBDb21wb3NpdGVTb3Vy
Y2VPdmVyOworICAgICAgICBjb21wb3NpdGVPcCA9IENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VP
dmVyOwogICAgIH0KIAogICAgIGlmIChhbGxNYXNrSW1hZ2VzTG9hZGVkKSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94LmgKaW5kZXggMmJmY2U1ZjY3NGI5ZjA5MWJjNDUxYTY5NTgzODEz
NDVhMTNiMGU1NS4uNDk1NDgxNDA1NGE2MDE3MTA4ZDY1NDkxOTUyYTM1YWY4YzJlMzAyYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaApAQCAtNjY3LDcgKzY2Nyw3IEBAIHByb3Rl
Y3RlZDoKICAgICB2b2lkIHBhaW50QmFja2dyb3VuZChjb25zdCBQYWludEluZm8mLCBjb25zdCBM
YXlvdXRSZWN0JiwgQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlID0gQmFja2dyb3VuZEJsZWVkTm9u
ZSk7CiAgICAgCiAgICAgdm9pZCBwYWludEZpbGxMYXllcihjb25zdCBQYWludEluZm8mLCBjb25z
dCBDb2xvciYsIGNvbnN0IEZpbGxMYXllciYsIGNvbnN0IExheW91dFJlY3QmLCBCYWNrZ3JvdW5k
QmxlZWRBdm9pZGFuY2UsIENvbXBvc2l0ZU9wZXJhdG9yLCBSZW5kZXJFbGVtZW50KiBiYWNrZ3Jv
dW5kT2JqZWN0LCBCYXNlQmFja2dyb3VuZENvbG9yVXNhZ2UgPSBCYXNlQmFja2dyb3VuZENvbG9y
VXNlKTsKLSAgICB2b2lkIHBhaW50RmlsbExheWVycyhjb25zdCBQYWludEluZm8mLCBjb25zdCBD
b2xvciYsIGNvbnN0IEZpbGxMYXllciYsIGNvbnN0IExheW91dFJlY3QmLCBCYWNrZ3JvdW5kQmxl
ZWRBdm9pZGFuY2UgPSBCYWNrZ3JvdW5kQmxlZWROb25lLCBDb21wb3NpdGVPcGVyYXRvciA9IENv
bXBvc2l0ZVNvdXJjZU92ZXIsIFJlbmRlckVsZW1lbnQqIGJhY2tncm91bmRPYmplY3QgPSBudWxs
cHRyKTsKKyAgICB2b2lkIHBhaW50RmlsbExheWVycyhjb25zdCBQYWludEluZm8mLCBjb25zdCBD
b2xvciYsIGNvbnN0IEZpbGxMYXllciYsIGNvbnN0IExheW91dFJlY3QmLCBCYWNrZ3JvdW5kQmxl
ZWRBdm9pZGFuY2UgPSBCYWNrZ3JvdW5kQmxlZWROb25lLCBDb21wb3NpdGVPcGVyYXRvciA9IENv
bXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VPdmVyLCBSZW5kZXJFbGVtZW50KiBiYWNrZ3JvdW5kT2Jq
ZWN0ID0gbnVsbHB0cik7CiAKICAgICB2b2lkIHBhaW50TWFza0ltYWdlcyhjb25zdCBQYWludElu
Zm8mLCBjb25zdCBMYXlvdXRSZWN0Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCmluZGV4IDc1YTlmZTc4ODhiNmEyNDZhODNhNWU5
N2I0NjBjNDVjZjI5MzVjY2YuLmU1Yjc1NTgyNThjZGU2NmYzZDI2ODAxNTc5NDNlNDdkNTBmNGRh
OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9i
amVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2Jq
ZWN0LmNwcApAQCAtOTI2LDE0ICs5MjYsMTQgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6
cGFpbnRGaWxsTGF5ZXJFeHRlbmRlZChjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY28KICAg
ICAgICAgICAgIGlmIChiYXNlQ29sb3IuaXNWaXNpYmxlKCkpIHsKICAgICAgICAgICAgICAgICBp
ZiAoIWJhc2VCZ0NvbG9yT25seSAmJiBiZ0NvbG9yLmlzVmlzaWJsZSgpKQogICAgICAgICAgICAg
ICAgICAgICBiYXNlQ29sb3IgPSBiYXNlQ29sb3IuYmxlbmQoYmdDb2xvcik7Ci0gICAgICAgICAg
ICAgICAgY29udGV4dC5maWxsUmVjdChiYWNrZ3JvdW5kUmVjdEZvclBhaW50aW5nLCBiYXNlQ29s
b3IsIENvbXBvc2l0ZUNvcHkpOworICAgICAgICAgICAgICAgIGNvbnRleHQuZmlsbFJlY3QoYmFj
a2dyb3VuZFJlY3RGb3JQYWludGluZywgYmFzZUNvbG9yLCBDb21wb3NpdGVPcGVyYXRvcjo6Q29w
eSk7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKCFiYXNlQmdDb2xvck9ubHkgJiYgYmdDb2xvci5p
c1Zpc2libGUoKSkgewogICAgICAgICAgICAgICAgIGF1dG8gb3BlcmF0aW9uID0gY29udGV4dC5j
b21wb3NpdGVPcGVyYXRpb24oKTsKICAgICAgICAgICAgICAgICBpZiAoc2hvdWxkQ2xlYXJCYWNr
Z3JvdW5kKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChvcCA9PSBDb21wb3NpdGVEZXN0aW5h
dGlvbk91dCkgLy8gV2UncmUgcHVuY2hpbmcgb3V0IHRoZSBiYWNrZ3JvdW5kLgorICAgICAgICAg
ICAgICAgICAgICBpZiAob3AgPT0gQ29tcG9zaXRlT3BlcmF0b3I6OkRlc3RpbmF0aW9uT3V0KSAv
LyBXZSdyZSBwdW5jaGluZyBvdXQgdGhlIGJhY2tncm91bmQuCiAgICAgICAgICAgICAgICAgICAg
ICAgICBvcGVyYXRpb24gPSBvcDsKICAgICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgICAgICAgICAgICAgb3BlcmF0aW9uID0gQ29tcG9zaXRlQ29weTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIG9wZXJhdGlvbiA9IENvbXBvc2l0ZU9wZXJhdG9yOjpDb3B5OwogICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICBjb250ZXh0LmZpbGxSZWN0KGJhY2tncm91bmRSZWN0
Rm9yUGFpbnRpbmcsIGJnQ29sb3IsIG9wZXJhdGlvbik7CiAgICAgICAgICAgICB9IGVsc2UgaWYg
KHNob3VsZENsZWFyQmFja2dyb3VuZCkKQEAgLTk1Myw3ICs5NTMsNyBAQCB2b2lkIFJlbmRlckJv
eE1vZGVsT2JqZWN0OjpwYWludEZpbGxMYXllckV4dGVuZGVkKGNvbnN0IFBhaW50SW5mbyYgcGFp
bnRJbmZvLCBjbwogICAgICAgICAgICAgICAgIGRvd25jYXN0PEJpdG1hcEltYWdlPigqaW1hZ2Up
LnVwZGF0ZUZyb21TZXR0aW5ncyhzZXR0aW5ncygpKTsKIAogICAgICAgICAgICAgSW1hZ2VQYWlu
dGluZ09wdGlvbnMgb3B0aW9ucyA9IHsKLSAgICAgICAgICAgICAgICBvcCA9PSBDb21wb3NpdGVT
b3VyY2VPdmVyID8gYmdMYXllci5jb21wb3NpdGUoKSA6IG9wLAorICAgICAgICAgICAgICAgIG9w
ID09IENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VPdmVyID8gYmdMYXllci5jb21wb3NpdGUoKSA6
IG9wLAogICAgICAgICAgICAgICAgIGJnTGF5ZXIuYmxlbmRNb2RlKCksCiAgICAgICAgICAgICAg
ICAgZGVjb2RpbmdNb2RlRm9ySW1hZ2VEcmF3KCppbWFnZSwgcGFpbnRJbmZvKSwKICAgICAgICAg
ICAgICAgICBJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UsCkBAIC05NjksNyArOTY5LDcgQEAg
dm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRGaWxsTGF5ZXJFeHRlbmRlZChjb25zdCBQ
YWludEluZm8mIHBhaW50SW5mbywgY28KICAgICB9CiAKICAgICBpZiAobWFza0ltYWdlICYmIGJn
TGF5ZXIuY2xpcCgpID09IEZpbGxCb3g6OlRleHQpIHsKLSAgICAgICAgY29udGV4dC5kcmF3Q29u
c3VtaW5nSW1hZ2VCdWZmZXIoV1RGTW92ZShtYXNrSW1hZ2UpLCBtYXNrUmVjdCwgQ29tcG9zaXRl
RGVzdGluYXRpb25Jbik7CisgICAgICAgIGNvbnRleHQuZHJhd0NvbnN1bWluZ0ltYWdlQnVmZmVy
KFdURk1vdmUobWFza0ltYWdlKSwgbWFza1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yOjpEZXN0aW5h
dGlvbkluKTsKICAgICAgICAgY29udGV4dC5lbmRUcmFuc3BhcmVuY3lMYXllcigpOwogICAgIH0K
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9i
amVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgK
aW5kZXggYjU5YmYwYWI1NjYwMGE3MjgwNjkwYWQ1OTgyNmMyOTFlMmNjYmI0OS4uOGFmNDVlMWY2
ZDQ2MWIwNjMxY2VmNDFmMDRkMDNiNzgyMGEzZmZiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgKQEAgLTIwMyw5ICsyMDMsOSBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCBMYXlvdXRVbml0IGNvbnRhaW5pbmdCbG9ja0xvZ2ljYWxXaWR0aEZv
ckNvbnRlbnQoKSBjb25zdDsKIAogICAgIHZvaWQgcGFpbnRCb3JkZXIoY29uc3QgUGFpbnRJbmZv
JiwgY29uc3QgTGF5b3V0UmVjdCYsIGNvbnN0IFJlbmRlclN0eWxlJiwgQmFja2dyb3VuZEJsZWVk
QXZvaWRhbmNlID0gQmFja2dyb3VuZEJsZWVkTm9uZSwgYm9vbCBpbmNsdWRlTG9naWNhbExlZnRF
ZGdlID0gdHJ1ZSwgYm9vbCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSA9IHRydWUpOwotICAgIGJv
b2wgcGFpbnROaW5lUGllY2VJbWFnZShHcmFwaGljc0NvbnRleHQmLCBjb25zdCBMYXlvdXRSZWN0
JiwgY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBOaW5lUGllY2VJbWFnZSYsIENvbXBvc2l0ZU9w
ZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3Zlcik7CisgICAgYm9vbCBwYWludE5pbmVQaWVjZUlt
YWdlKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IExheW91dFJlY3QmLCBjb25zdCBSZW5kZXJTdHls
ZSYsIGNvbnN0IE5pbmVQaWVjZUltYWdlJiwgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3NpdGVP
cGVyYXRvcjo6U291cmNlT3Zlcik7CiAgICAgdm9pZCBwYWludEJveFNoYWRvdyhjb25zdCBQYWlu
dEluZm8mLCBjb25zdCBMYXlvdXRSZWN0JiwgY29uc3QgUmVuZGVyU3R5bGUmLCBTaGFkb3dTdHls
ZSwgYm9vbCBpbmNsdWRlTG9naWNhbExlZnRFZGdlID0gdHJ1ZSwgYm9vbCBpbmNsdWRlTG9naWNh
bFJpZ2h0RWRnZSA9IHRydWUpOwotICAgIHZvaWQgcGFpbnRGaWxsTGF5ZXJFeHRlbmRlZChjb25z
dCBQYWludEluZm8mLCBjb25zdCBDb2xvciYsIGNvbnN0IEZpbGxMYXllciYsIGNvbnN0IExheW91
dFJlY3QmLCBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UsIElubGluZUZsb3dCb3gqID0gbnVsbHB0
ciwgY29uc3QgTGF5b3V0U2l6ZSYgPSBMYXlvdXRTaXplKCksIENvbXBvc2l0ZU9wZXJhdG9yID0g
Q29tcG9zaXRlU291cmNlT3ZlciwgUmVuZGVyRWxlbWVudCogYmFja2dyb3VuZE9iamVjdCA9IG51
bGxwdHIsIEJhc2VCYWNrZ3JvdW5kQ29sb3JVc2FnZSA9IEJhc2VCYWNrZ3JvdW5kQ29sb3JVc2Up
OworICAgIHZvaWQgcGFpbnRGaWxsTGF5ZXJFeHRlbmRlZChjb25zdCBQYWludEluZm8mLCBjb25z
dCBDb2xvciYsIGNvbnN0IEZpbGxMYXllciYsIGNvbnN0IExheW91dFJlY3QmLCBCYWNrZ3JvdW5k
QmxlZWRBdm9pZGFuY2UsIElubGluZUZsb3dCb3gqID0gbnVsbHB0ciwgY29uc3QgTGF5b3V0U2l6
ZSYgPSBMYXlvdXRTaXplKCksIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlT3BlcmF0b3I6
OlNvdXJjZU92ZXIsIFJlbmRlckVsZW1lbnQqIGJhY2tncm91bmRPYmplY3QgPSBudWxscHRyLCBC
YXNlQmFja2dyb3VuZENvbG9yVXNhZ2UgPSBCYXNlQmFja2dyb3VuZENvbG9yVXNlKTsKIAogICAg
IHZpcnR1YWwgYm9vbCBib3hTaGFkb3dTaG91bGRCZUFwcGxpZWRUb0JhY2tncm91bmQoY29uc3Qg
TGF5b3V0UG9pbnQmIGFic29sdXRlUGFpbnRQb3N0aW9uLCBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFu
Y2UsIElubGluZUZsb3dCb3gqID0gbnVsbHB0cikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCmluZGV4IDdhYzA0YjhiYTRm
NDE1MTNiM2ZjYmFmMTkzMWJjZjQ0ODA1Yzk0OGQuLjJkMDBkZmYwYmEwMjVhMjVjOWYxZTZjNDI3
ZDA1ZGQ3NTgxYzBhYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJFbWJlZGRlZE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckVtYmVkZGVkT2JqZWN0LmNwcApAQCAtMzM5LDcgKzMzOSw3IEBAIHZvaWQgUmVuZGVyRW1iZWRk
ZWRPYmplY3Q6OnBhaW50UmVwbGFjZWQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91
dFBvaW50CiAgICAgICAgIGNvbnRleHQuc2V0RmlsbENvbG9yKHJlcGxhY2VtZW50VGV4dENvbG9y
KCkpOwogICAgICAgICBjb250ZXh0LmZpbGxFbGxpcHNlKGFycm93UmVjdCk7CiAKLSAgICAgICAg
Y29udGV4dC5zZXRDb21wb3NpdGVPcGVyYXRpb24oQ29tcG9zaXRlQ2xlYXIpOworICAgICAgICBj
b250ZXh0LnNldENvbXBvc2l0ZU9wZXJhdGlvbihDb21wb3NpdGVPcGVyYXRvcjo6Q2xlYXIpOwog
ICAgICAgICBkcmF3UmVwbGFjZW1lbnRBcnJvdyhjb250ZXh0LCBhcnJvd1JlY3QpOwogICAgICAg
ICBjb250ZXh0LmVuZFRyYW5zcGFyZW5jeUxheWVyKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKaW5kZXggYTFmZDMwMDI3MzExMDc2ODY1ZDkyM2VjNjg4
NDA4MmNhZDc2NzI3MC4uYjJjNDlhNjY2NjU0YTE0MTM4YzgyNjY2YmZlOGNhZWZiZDVkZmU3ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCkBAIC02NDUsNyArNjQ1
LDcgQEAgSW1hZ2VEcmF3UmVzdWx0IFJlbmRlckltYWdlOjpwYWludEludG9SZWN0KFBhaW50SW5m
byYgcGFpbnRJbmZvLCBjb25zdCBGbG9hdFJlY3QKICAgICAgICAgZG93bmNhc3Q8Qml0bWFwSW1h
Z2U+KCppbWFnZSkudXBkYXRlRnJvbVNldHRpbmdzKHNldHRpbmdzKCkpOwogCiAgICAgSW1hZ2VQ
YWludGluZ09wdGlvbnMgb3B0aW9ucyA9IHsKLSAgICAgICAgaW1hZ2VFbGVtZW50ID8gaW1hZ2VF
bGVtZW50LT5jb21wb3NpdGVPcGVyYXRvcigpIDogQ29tcG9zaXRlU291cmNlT3ZlciwKKyAgICAg
ICAgaW1hZ2VFbGVtZW50ID8gaW1hZ2VFbGVtZW50LT5jb21wb3NpdGVPcGVyYXRvcigpIDogQ29t
cG9zaXRlT3BlcmF0b3I6OlNvdXJjZU92ZXIsCiAgICAgICAgIGRlY29kaW5nTW9kZUZvckltYWdl
RHJhdygqaW1hZ2UsIHBhaW50SW5mbyksCiAgICAgICAgIGltYWdlT3JpZW50YXRpb24oKSwKICAg
ICAgICAgaW1hZ2UgPyBjaG9vc2VJbnRlcnBvbGF0aW9uUXVhbGl0eShwYWludEluZm8uY29udGV4
dCgpLCAqaW1hZ2UsIGltYWdlLCBMYXlvdXRTaXplKHJlY3Quc2l6ZSgpKSkgOiBJbnRlcnBvbGF0
aW9uRGVmYXVsdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmNwcAppbmRleCBkNWNjODY2YjAxZDNhODFmMjBlZDI2M2EwMTIxZjU1YmQ3MzA5ZTIzLi5k
MDgyOGEyMmVhMDBiZTdiMzNhYzNiN2EyZDViZTdjMTM0YTJjYzEwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtMjI3OSw3ICsyMjc5
LDcgQEAgc3RhdGljIGJvb2wgc3VwcG9ydHNEaXJlY3RseUNvbXBvc2l0ZWRCb3hEZWNvcmF0aW9u
cyhjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWMKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAg
ICAgLy8gRklYTUU6IHdlIHNob3VsZCBiZSBhYmxlIHRvIGFsbG93IGJhY2tncm91bmRDb21wb3Np
dGU7IEhvd2V2ZXIgc2luY2UgdGhpcyBpcyBub3QgYSBjb21tb24gdXNlIGNhc2UgaXQgaGFzIGJl
ZW4gZGVmZXJyZWQgZm9yIG5vdy4KLSAgICBpZiAoc3R5bGUuYmFja2dyb3VuZENvbXBvc2l0ZSgp
ICE9IENvbXBvc2l0ZVNvdXJjZU92ZXIpCisgICAgaWYgKHN0eWxlLmJhY2tncm91bmRDb21wb3Np
dGUoKSAhPSBDb21wb3NpdGVPcGVyYXRvcjo6U291cmNlT3ZlcikKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVHJlZUFzVGV4dC5jcHAKaW5kZXggMjEzNWE1MmJjN2UxMzI4NTkzMWI5Y2RmOWI3N2EwMGUy
OTZkOWNhNS4uZTgwYzMzOTIyZmJlMjNkN2Y1NjEyODljZGUxYWZlZWE2OTAxNDQ4NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcApAQCAtNjM4LDcg
KzYzOCw3IEBAIHN0YXRpYyB2b2lkIHdyaXRlTGF5ZXIoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFJl
bmRlckxheWVyJiBsYXllciwgY29uc3QgTGF5b3V0UmVjCiAgICAgaWYgKGxheWVyLmlzb2xhdGVz
QmxlbmRpbmcoKSkKICAgICAgICAgdHMgPDwgIiBpc29sYXRlc0JsZW5kaW5nIjsKICAgICBpZiAo
bGF5ZXIuaGFzQmxlbmRNb2RlKCkpCi0gICAgICAgIHRzIDw8ICIgYmxlbmRNb2RlOiAiIDw8IGNv
bXBvc2l0ZU9wZXJhdG9yTmFtZShDb21wb3NpdGVTb3VyY2VPdmVyLCBsYXllci5ibGVuZE1vZGUo
KSk7CisgICAgICAgIHRzIDw8ICIgYmxlbmRNb2RlOiAiIDw8IGNvbXBvc2l0ZU9wZXJhdG9yTmFt
ZShDb21wb3NpdGVPcGVyYXRvcjo6U291cmNlT3ZlciwgbGF5ZXIuYmxlbmRNb2RlKCkpOwogI2Vu
ZGlmCiAgICAgCiAgICAgdHMgPDwgIlxuIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJW
aWV3LmNwcAppbmRleCBmNjQ4NjE0M2E3YzdkYjk2YmY0OGNkMDE4Y2ViYjdlZDI5NGNkN2FjLi4w
NTdiNDQxZWQ3ZjEzN2ZmNTVkOTZhMWQwZWFkZTVlYzc0MDM5OGQyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCkBAIC00MjEsNyArNDIxLDcgQEAgdm9pZCBSZW5kZXJW
aWV3OjpwYWludEJveERlY29yYXRpb25zKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlv
dXRQb2ludCYpCiAgICAgICAgIGNvbnN0IENvbG9yJiBiYWNrZ3JvdW5kQ29sb3IgPSAoc2V0dGlu
Z3MoKS5iYWNrZ3JvdW5kU2hvdWxkRXh0ZW5kQmV5b25kUGFnZSgpICYmIGRvY3VtZW50QmFja2dy
b3VuZENvbG9yLmlzVmFsaWQoKSkgPyBkb2N1bWVudEJhY2tncm91bmRDb2xvciA6IGZyYW1lVmll
dygpLmJhc2VCYWNrZ3JvdW5kQ29sb3IoKTsKICAgICAgICAgaWYgKGJhY2tncm91bmRDb2xvci5p
c1Zpc2libGUoKSkgewogICAgICAgICAgICAgQ29tcG9zaXRlT3BlcmF0b3IgcHJldmlvdXNPcGVy
YXRvciA9IHBhaW50SW5mby5jb250ZXh0KCkuY29tcG9zaXRlT3BlcmF0aW9uKCk7Ci0gICAgICAg
ICAgICBwYWludEluZm8uY29udGV4dCgpLnNldENvbXBvc2l0ZU9wZXJhdGlvbihDb21wb3NpdGVD
b3B5KTsKKyAgICAgICAgICAgIHBhaW50SW5mby5jb250ZXh0KCkuc2V0Q29tcG9zaXRlT3BlcmF0
aW9uKENvbXBvc2l0ZU9wZXJhdG9yOjpDb3B5KTsKICAgICAgICAgICAgIHBhaW50SW5mby5jb250
ZXh0KCkuZmlsbFJlY3QocGFpbnRJbmZvLnJlY3QsIGJhY2tncm91bmRDb2xvcik7CiAgICAgICAg
ICAgICBwYWludEluZm8uY29udGV4dCgpLnNldENvbXBvc2l0ZU9wZXJhdGlvbihwcmV2aW91c09w
ZXJhdG9yKTsKICAgICAgICAgfSBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvRmlsbExheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9GaWxsTGF5ZXIuY3BwCmluZGV4IGFhYWM1ZjdmMmM3YzhlMTI2YjkwZmI3NmQ3MGE2MmMwOGVk
NWZkZGQuLmZlNWMwMTI2YzAxOWZmZTQ2MWU3OTJiM2E5MWI3Njk5YjEzYzMwMGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwCkBAIC01Miw3ICs1Miw3
IEBAIEZpbGxMYXllcjo6RmlsbExheWVyKEZpbGxMYXllclR5cGUgdHlwZSkKICAgICAsIG1fb3Jp
Z2luKHN0YXRpY19jYXN0PHVuc2lnbmVkPihGaWxsTGF5ZXI6OmluaXRpYWxGaWxsT3JpZ2luKHR5
cGUpKSkKICAgICAsIG1fcmVwZWF0WChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oRmlsbExheWVyOjpp
bml0aWFsRmlsbFJlcGVhdFgodHlwZSkpKQogICAgICwgbV9yZXBlYXRZKHN0YXRpY19jYXN0PHVu
c2lnbmVkPihGaWxsTGF5ZXI6OmluaXRpYWxGaWxsUmVwZWF0WSh0eXBlKSkpCi0gICAgLCBtX2Nv
bXBvc2l0ZShGaWxsTGF5ZXI6OmluaXRpYWxGaWxsQ29tcG9zaXRlKHR5cGUpKQorICAgICwgbV9j
b21wb3NpdGUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEZpbGxMYXllcjo6aW5pdGlhbEZpbGxDb21w
b3NpdGUodHlwZSkpKQogICAgICwgbV9zaXplVHlwZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oRmls
bFNpemVUeXBlOjpOb25lKSkKICAgICAsIG1fYmxlbmRNb2RlKHN0YXRpY19jYXN0PHVuc2lnbmVk
PihGaWxsTGF5ZXI6OmluaXRpYWxGaWxsQmxlbmRNb2RlKHR5cGUpKSkKICAgICAsIG1fbWFza1Nv
dXJjZVR5cGUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEZpbGxMYXllcjo6aW5pdGlhbEZpbGxNYXNr
U291cmNlVHlwZSh0eXBlKSkpCkBAIC0zNTQsMTAgKzM1NCwxMCBAQCBib29sIEZpbGxMYXllcjo6
aGFzT3BhcXVlSW1hZ2UoY29uc3QgUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIpIGNvbnN0CiAgICAg
aWYgKCFtX2ltYWdlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAobV9jb21wb3Np
dGUgPT0gQ29tcG9zaXRlQ2xlYXIgfHwgbV9jb21wb3NpdGUgPT0gQ29tcG9zaXRlQ29weSkKKyAg
ICBpZiAoc3RhdGljX2Nhc3Q8Q29tcG9zaXRlT3BlcmF0b3I+KG1fY29tcG9zaXRlKSA9PSBDb21w
b3NpdGVPcGVyYXRvcjo6Q2xlYXIgfHwgc3RhdGljX2Nhc3Q8Q29tcG9zaXRlT3BlcmF0b3I+KG1f
Y29tcG9zaXRlKSA9PSBDb21wb3NpdGVPcGVyYXRvcjo6Q29weSkKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8QmxlbmRNb2RlPihtX2JsZW5kTW9kZSkgPT0g
QmxlbmRNb2RlOjpOb3JtYWwgJiYgbV9jb21wb3NpdGUgPT0gQ29tcG9zaXRlU291cmNlT3ZlciAm
JiBtX2ltYWdlLT5rbm93blRvQmVPcGFxdWUoJnJlbmRlcmVyKTsKKyAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8QmxlbmRNb2RlPihtX2JsZW5kTW9kZSkgPT0gQmxlbmRNb2RlOjpOb3JtYWwgJiYgc3Rh
dGljX2Nhc3Q8Q29tcG9zaXRlT3BlcmF0b3I+KG1fY29tcG9zaXRlKSA9PSBDb21wb3NpdGVPcGVy
YXRvcjo6U291cmNlT3ZlciAmJiBtX2ltYWdlLT5rbm93blRvQmVPcGFxdWUoJnJlbmRlcmVyKTsK
IH0KIAogYm9vbCBGaWxsTGF5ZXI6Omhhc1JlcGVhdFhZKCkgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuaAppbmRleCBiY2QyYzYxZjQzNDRhM2Q2YjRkNjgy
ZGUyNDZkNjU5MmRjNzdlN2MxLi40MzE3NDJiZWJjMmE1YmE5N2JmNmRhOGFmYzUwMzg0N2M1NWE3
NzQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oCkBAIC0x
NjMsNyArMTYzLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBGaWxsQm94IGluaXRpYWxGaWxsT3Jp
Z2luKEZpbGxMYXllclR5cGUgdHlwZSkgeyByZXR1cm4gdHlwZSA9PSBGaWxsTGF5ZXJUeXBlOjpC
YWNrZ3JvdW5kID8gRmlsbEJveDo6UGFkZGluZyA6IEZpbGxCb3g6OkJvcmRlcjsgfQogICAgIHN0
YXRpYyBGaWxsUmVwZWF0IGluaXRpYWxGaWxsUmVwZWF0WChGaWxsTGF5ZXJUeXBlKSB7IHJldHVy
biBGaWxsUmVwZWF0OjpSZXBlYXQ7IH0KICAgICBzdGF0aWMgRmlsbFJlcGVhdCBpbml0aWFsRmls
bFJlcGVhdFkoRmlsbExheWVyVHlwZSkgeyByZXR1cm4gRmlsbFJlcGVhdDo6UmVwZWF0OyB9Ci0g
ICAgc3RhdGljIENvbXBvc2l0ZU9wZXJhdG9yIGluaXRpYWxGaWxsQ29tcG9zaXRlKEZpbGxMYXll
clR5cGUpIHsgcmV0dXJuIENvbXBvc2l0ZVNvdXJjZU92ZXI7IH0KKyAgICBzdGF0aWMgQ29tcG9z
aXRlT3BlcmF0b3IgaW5pdGlhbEZpbGxDb21wb3NpdGUoRmlsbExheWVyVHlwZSkgeyByZXR1cm4g
Q29tcG9zaXRlT3BlcmF0b3I6OlNvdXJjZU92ZXI7IH0KICAgICBzdGF0aWMgQmxlbmRNb2RlIGlu
aXRpYWxGaWxsQmxlbmRNb2RlKEZpbGxMYXllclR5cGUpIHsgcmV0dXJuIEJsZW5kTW9kZTo6Tm9y
bWFsOyB9CiAgICAgc3RhdGljIEZpbGxTaXplIGluaXRpYWxGaWxsU2l6ZShGaWxsTGF5ZXJUeXBl
KSB7IHJldHVybiB7IH07IH0KICAgICBzdGF0aWMgTGVuZ3RoIGluaXRpYWxGaWxsWFBvc2l0aW9u
KEZpbGxMYXllclR5cGUpIHsgcmV0dXJuIExlbmd0aCgwLjBmLCBQZXJjZW50KTsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAKaW5kZXggMWRmNDAwMDNmNGIzMWM1NGIx
ODQxNzA2OGQwMzEzNDYwMjUyY2VjYy4uYzM1MzdlMzhjZDk4MDQ4ZmMwMjE3NWYyODIyMTRiNTE1
MzlhMDkzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCkBAIC0y
NDcsNyArMjQ3LDcgQEAgTmF0aXZlSW1hZ2VQdHIgU1ZHSW1hZ2U6Om5hdGl2ZUltYWdlKGNvbnN0
IEdyYXBoaWNzQ29udGV4dCogdGFyZ2V0Q29udGV4dCkKICAgICBQbGF0Zm9ybUNvbnRleHREaXJl
Y3QyRCBwbGF0Zm9ybUNvbnRleHQobmF0aXZlSW1hZ2VUYXJnZXQuZ2V0KCkpOwogICAgIEdyYXBo
aWNzQ29udGV4dCBsb2NhbENvbnRleHQoJnBsYXRmb3JtQ29udGV4dCwgR3JhcGhpY3NDb250ZXh0
OjpCaXRtYXBSZW5kZXJpbmdDb250ZXh0VHlwZTo6R1BVTWVtb3J5KTsKIAotICAgIGRyYXcobG9j
YWxDb250ZXh0LCByZWN0KCksIHJlY3QoKSwgeyBDb21wb3NpdGVTb3VyY2VPdmVyLCBCbGVuZE1v
ZGU6Ok5vcm1hbCwgRGVjb2RpbmdNb2RlOjpTeW5jaHJvbm91cywgSW1hZ2VPcmllbnRhdGlvbjo6
Tm9uZSB9KTsKKyAgICBkcmF3KGxvY2FsQ29udGV4dCwgcmVjdCgpLCByZWN0KCksIHsgQ29tcG9z
aXRlT3BlcmF0b3I6OlNvdXJjZU92ZXIsIEJsZW5kTW9kZTo6Tm9ybWFsLCBEZWNvZGluZ01vZGU6
OlN5bmNocm9ub3VzLCBJbWFnZU9yaWVudGF0aW9uOjpOb25lIH0pOwogCiAgICAgQ09NUHRyPElE
MkQxQml0bWFwPiBuYXRpdmVJbWFnZTsKICAgICBIUkVTVUxUIGhyID0gbmF0aXZlSW1hZ2VUYXJn
ZXQtPkdldEJpdG1hcCgmbmF0aXZlSW1hZ2UpOwpAQCAtMzEzLDEwICszMTMsMTAgQEAgSW1hZ2VE
cmF3UmVzdWx0IFNWR0ltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3Qg
RmxvYXRSZWN0JiBkc3RSZWMKICAgICBjb250ZXh0LmNsaXAoZW5jbG9zaW5nSW50UmVjdChkc3RS
ZWN0KSk7CiAKICAgICBmbG9hdCBhbHBoYSA9IGNvbnRleHQuYWxwaGEoKTsKLSAgICBib29sIGNv
bXBvc2l0aW5nUmVxdWlyZXNUcmFuc3BhcmVuY3lMYXllciA9IG9wdGlvbnMuY29tcG9zaXRlT3Bl
cmF0b3IoKSAhPSBDb21wb3NpdGVTb3VyY2VPdmVyIHx8IG9wdGlvbnMuYmxlbmRNb2RlKCkgIT0g
QmxlbmRNb2RlOjpOb3JtYWwgfHwgYWxwaGEgPCAxOworICAgIGJvb2wgY29tcG9zaXRpbmdSZXF1
aXJlc1RyYW5zcGFyZW5jeUxheWVyID0gb3B0aW9ucy5jb21wb3NpdGVPcGVyYXRvcigpICE9IENv
bXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VPdmVyIHx8IG9wdGlvbnMuYmxlbmRNb2RlKCkgIT0gQmxl
bmRNb2RlOjpOb3JtYWwgfHwgYWxwaGEgPCAxOwogICAgIGlmIChjb21wb3NpdGluZ1JlcXVpcmVz
VHJhbnNwYXJlbmN5TGF5ZXIpIHsKICAgICAgICAgY29udGV4dC5iZWdpblRyYW5zcGFyZW5jeUxh
eWVyKGFscGhhKTsKLSAgICAgICAgY29udGV4dC5zZXRDb21wb3NpdGVPcGVyYXRpb24oQ29tcG9z
aXRlU291cmNlT3ZlciwgQmxlbmRNb2RlOjpOb3JtYWwpOworICAgICAgICBjb250ZXh0LnNldENv
bXBvc2l0ZU9wZXJhdGlvbihDb21wb3NpdGVPcGVyYXRvcjo6U291cmNlT3ZlciwgQmxlbmRNb2Rl
OjpOb3JtYWwpOwogICAgIH0KIAogICAgIEZsb2F0U2l6ZSBzY2FsZShkc3RSZWN0LnNpemUoKSAv
IHNyY1JlY3Quc2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2Nh
aXJvL0JhY2tpbmdTdG9yZUNhaXJvLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2NhaXJv
L0JhY2tpbmdTdG9yZUNhaXJvLmNwcAppbmRleCA3YmRkMDNkM2M4ZWM4ZTA2NjJlNzdkMDE4MjUw
YjUwODhjMjZjZmJiLi4zMDM1ZjZmM2VlNjg3YzBhOTYxY2UyYjE2M2VhNTAxNjhmNmFhOGJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9jYWlyby9CYWNraW5nU3RvcmVDYWly
by5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvY2Fpcm8vQmFja2luZ1N0b3JlQ2Fp
cm8uY3BwCkBAIC04Nyw4ICs4Nyw4IEBAIHZvaWQgQmFja2luZ1N0b3JlOjppbmNvcnBvcmF0ZVVw
ZGF0ZShTaGFyZWFibGVCaXRtYXAqIGJpdG1hcCwgY29uc3QgVXBkYXRlSW5mbyYKICAgICBHcmFw
aGljc0NvbnRleHQgZ3JhcGhpY3NDb250ZXh0KEdyYXBoaWNzQ29udGV4dEltcGxDYWlybzo6Y3Jl
YXRlRmFjdG9yeShjYWlyb0NvbnRleHQuZ2V0KCkpKTsKIAogICAgIC8vIFdoZW4gbV93ZWJQYWdl
UHJveHkuZHJhd3NCYWNrZ3JvdW5kKCkgaXMgZmFsc2UsIGJpdG1hcCBjb250YWlucyB0cmFuc3Bh
cmVudCBwYXJ0cyBhcyBhIGJhY2tncm91bmQgb2YgdGhlIHdlYnBhZ2UuCi0gICAgLy8gRm9yIHN1
Y2ggY2FzZSwgYml0bWFwIG11c3QgYmUgZHJhd24gdXNpbmcgQ29tcG9zaXRlQ29weSB0byBvdmVy
d3JpdGUgdGhlIGV4aXN0aW5nIHN1cmZhY2UuCi0gICAgZ3JhcGhpY3NDb250ZXh0LnNldENvbXBv
c2l0ZU9wZXJhdGlvbihXZWJDb3JlOjpDb21wb3NpdGVDb3B5KTsKKyAgICAvLyBGb3Igc3VjaCBj
YXNlLCBiaXRtYXAgbXVzdCBiZSBkcmF3biB1c2luZyBDb21wb3NpdGVPcGVyYXRvcjo6Q29weSB0
byBvdmVyd3JpdGUgdGhlIGV4aXN0aW5nIHN1cmZhY2UuCisgICAgZ3JhcGhpY3NDb250ZXh0LnNl
dENvbXBvc2l0ZU9wZXJhdGlvbihXZWJDb3JlOjpDb21wb3NpdGVPcGVyYXRvcjo6Q29weSk7CiAK
ICAgICBmb3IgKGNvbnN0IGF1dG8mIHVwZGF0ZVJlY3QgOiB1cGRhdGVJbmZvLnVwZGF0ZVJlY3Rz
KSB7CiAgICAgICAgIEludFJlY3Qgc3JjUmVjdCA9IHVwZGF0ZVJlY3Q7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5jcHAKaW5kZXggOWFiNTgzNzMw
Yjg5ZGJkOTYwMWQ2NTIwZWY4ZjliMGJlMDA2ZGM1NC4uMTg0Y2Y2NzVlM2I0ZjlhOGNmZGZkMjJj
ZjYyYTY0NTFmMjhmZDM2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblByb3h5LmNwcApAQCAtMjE1LDcgKzIxNSw3IEBAIHZvaWQgUGx1Z2luUHJveHk6
OnBhaW50KEdyYXBoaWNzQ29udGV4dCYgZ3JhcGhpY3NDb250ZXh0LCBjb25zdCBJbnRSZWN0JiBk
aXJ0eVJlCiAgICAgICAgIGF1dG8gZ3JhcGhpY3NDb250ZXh0ID0gbV9iYWNraW5nU3RvcmUtPmNy
ZWF0ZUdyYXBoaWNzQ29udGV4dCgpOwogICAgICAgICBpZiAoZ3JhcGhpY3NDb250ZXh0KSB7CiAg
ICAgICAgICAgICBncmFwaGljc0NvbnRleHQtPmFwcGx5RGV2aWNlU2NhbGVGYWN0b3IoY29udGVu
dHNTY2FsZUZhY3RvcigpKTsKLSAgICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+c2V0Q29tcG9z
aXRlT3BlcmF0aW9uKENvbXBvc2l0ZUNvcHkpOworICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0
LT5zZXRDb21wb3NpdGVPcGVyYXRpb24oQ29tcG9zaXRlT3BlcmF0b3I6OkNvcHkpOwogCiAgICAg
ICAgICAgICBtX3BsdWdpbkJhY2tpbmdTdG9yZS0+cGFpbnQoKmdyYXBoaWNzQ29udGV4dCwgY29u
dGVudHNTY2FsZUZhY3RvcigpLCBJbnRQb2ludCgpLCBwbHVnaW5Cb3VuZHMoKSk7CiAKQEAgLTcy
Nyw3ICs3MjcsNyBAQCB2b2lkIFBsdWdpblByb3h5Ojp1cGRhdGUoY29uc3QgSW50UmVjdCYgcGFp
bnRlZFJlY3QpCiAgICAgICAgIGF1dG8gZ3JhcGhpY3NDb250ZXh0ID0gbV9iYWNraW5nU3RvcmUt
PmNyZWF0ZUdyYXBoaWNzQ29udGV4dCgpOwogICAgICAgICBpZiAoZ3JhcGhpY3NDb250ZXh0KSB7
CiAgICAgICAgICAgICBncmFwaGljc0NvbnRleHQtPmFwcGx5RGV2aWNlU2NhbGVGYWN0b3IoY29u
dGVudHNTY2FsZUZhY3RvcigpKTsKLSAgICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+c2V0Q29t
cG9zaXRlT3BlcmF0aW9uKENvbXBvc2l0ZUNvcHkpOworICAgICAgICAgICAgZ3JhcGhpY3NDb250
ZXh0LT5zZXRDb21wb3NpdGVPcGVyYXRpb24oQ29tcG9zaXRlT3BlcmF0b3I6OkNvcHkpOwogICAg
ICAgICAgICAgbV9wbHVnaW5CYWNraW5nU3RvcmUtPnBhaW50KCpncmFwaGljc0NvbnRleHQsIGNv
bnRlbnRzU2NhbGVGYWN0b3IoKSwgcGFpbnRlZFJlY3QubG9jYXRpb24oKSwgcGFpbnRlZFJlY3Qp
OwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwCmluZGV4IGVkMzZhOGExMTY2ZDc2YmJlNGM0OGY3ZThj
N2E2MzMwYjUxYjBhZTYuLmM5NzAxN2E4OGJmZjhlZDc0OTM2Y2ZmMThkN2Y3NTk4NDBiZDQ2YTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJv
bGxlci5jcHAKQEAgLTUzNyw3ICs1MzcsNyBAQCB2b2lkIEZpbmRDb250cm9sbGVyOjpkcmF3UmVj
dChQYWdlT3ZlcmxheSYsIEdyYXBoaWNzQ29udGV4dCYgZ3JhcGhpY3NDb250ZXh0LCBjbwogICAg
IGdyYXBoaWNzQ29udGV4dC5jbGVhclNoYWRvdygpOwogCiAgICAgLy8gQ2xlYXIgb3V0IHRoZSBo
b2xlcy4KLSAgICBncmFwaGljc0NvbnRleHQuc2V0Q29tcG9zaXRlT3BlcmF0aW9uKENvbXBvc2l0
ZUNsZWFyKTsKKyAgICBncmFwaGljc0NvbnRleHQuc2V0Q29tcG9zaXRlT3BlcmF0aW9uKENvbXBv
c2l0ZU9wZXJhdG9yOjpDbGVhcik7CiAgICAgZm9yIChhdXRvJiBwYXRoIDogd2hpdGVGcmFtZVBh
dGhzKQogICAgICAgICBncmFwaGljc0NvbnRleHQuZmlsbFBhdGgocGF0aCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0Z1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXIuY3Bw
IGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlci5jcHAK
aW5kZXggOWIxNDY3NDdmZjc3YmMwYWI1ZTY1MDRhNzkxZDVhYzFjZmYwZDhkYy4uMDczM2FlNDBm
OTRjZGY1NGQzMTNjYWYxNGZjMjU2MzVhZDRkZjU3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlci5jcHAKQEAgLTUwMSw3ICs1
MDEsNyBAQCB2b2lkIEZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXI6OmRyYXcoKQogICAgIEludFJl
Y3QgaW5uZXJSZWN0KGJvcmRlclRoaWNrbmVzcywgYm9yZGVyVGhpY2tuZXNzLCB3aW5kb3dXaWR0
aCAtIGJvcmRlclRoaWNrbmVzcyAqIDIsIHdpbmRvd0hlaWdodCAtIGJvcmRlclRoaWNrbmVzcyAq
IDIpOwogCiAgICAgY29udGV4dC5maWxsUm91bmRlZFJlY3QoRmxvYXRSb3VuZGVkUmVjdChvdXRl
clJlY3QsIG91dGVyUmFkaXVzLCBvdXRlclJhZGl1cywgb3V0ZXJSYWRpdXMsIG91dGVyUmFkaXVz
KSwgQ29sb3IoYm9yZGVyQ29sb3IpKTsKLSAgICBjb250ZXh0LnNldENvbXBvc2l0ZU9wZXJhdGlv
bihDb21wb3NpdGVDb3B5KTsKKyAgICBjb250ZXh0LnNldENvbXBvc2l0ZU9wZXJhdGlvbihDb21w
b3NpdGVPcGVyYXRvcjo6Q29weSk7CiAgICAgY29udGV4dC5maWxsUm91bmRlZFJlY3QoRmxvYXRS
b3VuZGVkUmVjdChpbm5lclJlY3QsIGlubmVyUmFkaXVzLCBpbm5lclJhZGl1cywgaW5uZXJSYWRp
dXMsIGlubmVyUmFkaXVzKSwgQ29sb3IoYmFja2dyb3VuZENvbG9yKSk7CiAKICAgICAvLyBEcmF3
IHRoZSB3aWRnZXRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3
LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCmluZGV4IDIzYmY0YjQ1
MmJkMzgxOWFhYmFjN2M4ZjViYTYwODIyM2Y4YzUzMzYuLjM2ZGQ1ODllMmQwNDEzMDU0ZjRmYzY0
MmVkMTA0MjEzYjE2Njg2ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dl
YlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCkBAIC0x
MjY4LDcgKzEyNjgsNyBAQCB2b2lkIFdlYlZpZXc6OnBhaW50V2l0aERpcmVjdDJEKCkKICAgICAg
ICAgICAgIGdjLmNsaXAobG9naWNhbERpcnR5UmVjdCk7CiAgICAgICAgICAgICBmcmFtZVZpZXct
PnBhaW50KGdjLCBsb2dpY2FsRGlydHlSZWN0KTsKICAgICAgICAgICAgIGlmIChtX3Nob3VsZElu
dmVydENvbG9ycykKLSAgICAgICAgICAgICAgICBnYy5maWxsUmVjdChsb2dpY2FsRGlydHlSZWN0
LCBDb2xvcjo6d2hpdGUsIENvbXBvc2l0ZURpZmZlcmVuY2UpOworICAgICAgICAgICAgICAgIGdj
LmZpbGxSZWN0KGxvZ2ljYWxEaXJ0eVJlY3QsIENvbG9yOjp3aGl0ZSwgQ29tcG9zaXRlT3BlcmF0
b3I6OkRpZmZlcmVuY2UpOwogICAgICAgICAgICAgZ2MucmVzdG9yZSgpOwogICAgICAgICB9CiAg
ICAgfQpAQCAtMTQyMCw3ICsxNDIwLDcgQEAgdm9pZCBXZWJWaWV3OjpwYWludEludG9CYWNraW5n
U3RvcmUoRnJhbWVWaWV3KiBmcmFtZVZpZXcsIEhEQyBiaXRtYXBEQywgY29uc3QgSW4KICAgICAg
ICAgZ2MuY2xpcChsb2dpY2FsRGlydHlSZWN0KTsKICAgICAgICAgZnJhbWVWaWV3LT5wYWludChn
YywgbG9naWNhbERpcnR5UmVjdCk7CiAgICAgICAgIGlmIChtX3Nob3VsZEludmVydENvbG9ycykK
LSAgICAgICAgICAgIGdjLmZpbGxSZWN0KGxvZ2ljYWxEaXJ0eVJlY3QsIENvbG9yOjp3aGl0ZSwg
Q29tcG9zaXRlRGlmZmVyZW5jZSk7CisgICAgICAgICAgICBnYy5maWxsUmVjdChsb2dpY2FsRGly
dHlSZWN0LCBDb2xvcjo6d2hpdGUsIENvbXBvc2l0ZU9wZXJhdG9yOjpEaWZmZXJlbmNlKTsKICAg
ICAgICAgZ2MucmVzdG9yZSgpOwogICAgIH0KICAgICBnYy5yZXN0b3JlKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384554</attachid>
            <date>2019-11-30 16:08:26 -0800</date>
            <delta_ts>2019-11-30 22:10:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204722-20191130160825.patch</filename>
            <type>text/plain</type>
            <size>80362</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyOTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGZhOTQzODEyNDE3NmJk
NzI3YzY1OTgwZjFhZmQ4OGNiY2VhMTVmNC4uNzJiMTM3OWMxOGRkYjg2YzEyYWY1ZDhiZjMwZTVj
YzNkNTE0MjdmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExMSBAQAorMjAxOS0xMS0zMCAgVGlt
IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIENvbXBv
c2l0ZU9wZXJhdG9yIGFuZCBCbGVuZE1vZGUgZW5jb2RhYmxlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ3MjIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIENvbXBvc2l0ZU9wZXJhdG9yIGFuIGBl
bnVtIGNsYXNzYCwgYW5kIGZpeCB0aGUgZmFsbG91dC4KKyAgICAgICAgQWRkIEVudW1UcmFpdHMg
Zm9yIENvbXBvc2l0ZU9wZXJhdG9yIGFuZCBCbGVuZE1vZGUsIHNvIHRoYXQgdGhleSBjYW4gYmUg
ZW5jb2RlZC4KKworICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIENvbXBvc2l0ZU9w
ZXJhdG9yIGNvbnN0KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OmNvbXBvc2l0ZU9wZXJhdG9yRm9yQmFja2dyb3VuZENvbG9yIGNvbnN0
KToKKyAgICAgICAgKiBodG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTEltYWdlRWxlbWVudDo6SFRNTEltYWdlRWxlbWVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MSW1hZ2VFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgICogaHRtbC9jYW52
YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbCk6CisgICAgICAgICogaHRtbC9j
YW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpTdGF0ZTo6U3RhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6c2V0R2xvYmFsQ29tcG9zaXRl
T3BlcmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJh
c2U6OmlzRnVsbENhbnZhc0NvbXBvc2l0ZU1vZGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6ZmlsbEludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6
OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OnN0cm9rZUludGVybmFsKToKKyAgICAgICAg
KFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmNsZWFyUmVjdCk6CisgICAg
ICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpmaWxsUmVjdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpzdHJva2VSZWN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmRyYXdJ
bWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpk
cmF3SW1hZ2VGcm9tUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkRCYXNlOjpmdWxsQ2FudmFzQ29tcG9zaXRlZERyYXdJbWFnZSk6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZHJhd091dGxp
bmVkUXVhZFdpdGhDbGlwKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVH
ZW5lcmF0ZWRJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcm9zc2ZhZGVHZW5lcmF0ZWRJ
bWFnZTo6ZHJhd0Nyb3NzZmFkZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpkdW1wUHJvcGVydGllcyBjb25z
dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBlcy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpwYXJzZUNvbXBvc2l0ZUFuZEJsZW5kT3BlcmF0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6Y29tcG9zaXRlT3BlcmF0b3JOYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc1R5cGVzLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2U6OmZpbGxXaXRoU29saWRDb2xvcik6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VQYWludGluZ09wdGlvbnMuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNo
YWRvd0JsdXI6OmJsdXJBbmRDb2xvclNoYWRvd0J1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNh
aXJvOjpkcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0NhaXJvT3BlcmF0aW9ucy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0Nh
aXJvVXRpbGl0aWVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvQ2Fpcm9Db21wb3NpdGVPcGVy
YXRvcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0M0RD
Ry5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cGFpbnRUb0NhbnZh
cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6c2VsZWN0Q0dCbGVuZE1vZGUpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRUJs
ZW5kOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUpOgorICAgICAgICAoV2ViQ29yZTo6RkVCbGVuZDo6
ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbiBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRUNvbXBvc2l0
ZTo6cGxhdGZvcm1BcHBseVNvZnR3YXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFRHJvcFNoYWRvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRURyb3BTaGFkb3c6
OnBsYXRmb3JtQXBwbHlTb2Z0d2FyZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9Tb3VyY2VBbHBoYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VBbHBoYTo6cGxh
dGZvcm1BcHBseVNvZnR3YXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cGFpbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL25pY29zaWEvTmljb3NpYVBhaW50aW5nRW5naW5lQmFzaWMuY3BwOgorICAgICAgICAo
Tmljb3NpYTo6UGFpbnRpbmdFbmdpbmVCYXNpYzo6cGFpbnQpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL25pY29zaWEvTmljb3NpYVBhaW50aW5nRW5naW5lVGhyZWFkZWQuY3BwOgorICAg
ICAgICAoTmljb3NpYTo6cGFpbnRMYXllcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmZsdXNoQ29tcG9zaXRpbmdTdGF0
ZUZvclRoaXNMYXllck9ubHkpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9EaXJl
Y3QyRE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlyZWN0MkQ6OlN0YXRlOjpz
ZXRDb21wb3NpdGVPcGVyYXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9E
aXJlY3QyRE9wZXJhdGlvbnMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1h
Z2VDR1dpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6Z2V0SEJJVE1BUE9m
U2l6ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdlQ2Fpcm9XaW4uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmdldEhCSVRNQVBPZlNpemUpOgorICAg
ICAgICAqIHJlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
bGluZUZsb3dCb3g6OnBhaW50TWFzayk6CisgICAgICAgICogcmVuZGVyaW5nL0lubGluZUZsb3dC
b3guaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJveDo6cGFpbnRNYXNrSW1hZ2VzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyQm94Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEZpbGxMYXllckV4
dGVuZGVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OnBhaW50UmVwbGFjZWQpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbWFnZTo6
cGFpbnRJbnRvUmVjdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpzdXBwb3J0c0RpcmVjdGx5Q29tcG9zaXRlZEJveERlY29y
YXRpb25zKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHA6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
Vmlldzo6cGFpbnRCb3hEZWNvcmF0aW9ucyk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0Zp
bGxMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxsTGF5ZXI6OkZpbGxMYXllcik6Cisg
ICAgICAgIChXZWJDb3JlOjpGaWxsTGF5ZXI6Omhhc09wYXF1ZUltYWdlIGNvbnN0KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpGaWxs
TGF5ZXI6OmluaXRpYWxGaWxsQ29tcG9zaXRlKToKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZH
SW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2U6Om5hdGl2ZUltYWdlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0ltYWdlOjpkcmF3KToKKwogMjAxOS0xMS0zMCAgeW91ZW5uIGZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgU2ltcGxpZnkgQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZSBzdXNwZW5zaW9uIGxvZ2ljCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDA5ZWY0NDQ5NTRmYjliYWI4
ODBjMTZhMTY3ZmRlYjUzZGRiNjRjMWIuLjIwYTE4MmIxZmEyYTVlNzRhODJkYzE5MWNhODk2MWEy
YzhiOWQ4NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTktMTEtMzAgIFRpbSBIb3J0
b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBDb21wb3NpdGVP
cGVyYXRvciBhbmQgQmxlbmRNb2RlIGVuY29kYWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0NzIyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvY2Fpcm8vQmFja2luZ1N0b3JlQ2Fp
cm8uY3BwOgorICAgICAgICAoV2ViS2l0OjpCYWNraW5nU3RvcmU6OmluY29ycG9yYXRlVXBkYXRl
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpQbHVnaW5Qcm94eTo6cGFpbnQpOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Q
cm94eTo6dXBkYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xs
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpGaW5kQ29udHJvbGxlcjo6ZHJhd1JlY3QpOgorCiAy
MDE5LTExLTI3ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CiAKICAgICAgICAg
W1dlYiBBbmltYXRpb25zXSBFbmFibGUgV2ViQW5pbWF0aW9uc0NTU0ludGVncmF0aW9uRW5hYmxl
ZCBieSBkZWZhdWx0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggZTdhMGIzODc3Y2Jh
NTliZWQwMTVlM2Y3MDY4MTc4MDU0MGIzM2NkMi4uNGRjYjRmZWQyYjZlNzJkMTIwNWY4MmY5NTli
MWE4YzZiMGExZTk4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
IEBACisyMDE5LTExLTMwICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgor
CisgICAgICAgIE1ha2UgQ29tcG9zaXRlT3BlcmF0b3IgYW5kIEJsZW5kTW9kZSBlbmNvZGFibGUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDcyMgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRnVsbHNj
cmVlblZpZGVvQ29udHJvbGxlci5jcHA6CisgICAgICAgIChGdWxsc2NyZWVuVmlkZW9Db250cm9s
bGVyOjpkcmF3KToKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6OnBh
aW50V2l0aERpcmVjdDJEKToKKyAgICAgICAgKFdlYlZpZXc6OnBhaW50SW50b0JhY2tpbmdTdG9y
ZSk6CisKIDIwMTktMTAtMzEgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgV2luZG93cyBidWlsZCBmaXggYXR0ZW1wdCBhZnRlciByMjUxNzk4LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKaW5kZXggYTM5OGQxMDQ4
OWUwNTBlY2RiZTQyMDNiOTc0NzhkZGM3MzA0MTU4ZC4uNDM2MWYyY2Q2ZjIwZTQ0OTlhYmM5YWQz
MjgwZjUxMWNhZTBlMmRlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1p
dGl2ZVZhbHVlTWFwcGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZl
VmFsdWVNYXBwaW5ncy5oCkBAIC0zMzQsNDYgKzMzNCw0NiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQ29tcG9zaXRlT3BlcmF0b3IgZSkK
IHsKICAgICBzZXRQcmltaXRpdmVVbml0VHlwZShDU1NVbml0VHlwZTo6Q1NTX1ZBTFVFX0lEKTsK
ICAgICBzd2l0Y2ggKGUpIHsKLSAgICBjYXNlIENvbXBvc2l0ZUNsZWFyOgorICAgIGNhc2UgQ29t
cG9zaXRlT3BlcmF0b3I6OkNsZWFyOgogICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1
ZUNsZWFyOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIENvbXBvc2l0ZUNvcHk6CisgICAgY2Fz
ZSBDb21wb3NpdGVPcGVyYXRvcjo6Q29weToKICAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NT
VmFsdWVDb3B5OwogICAgICAgICBicmVhazsKLSAgICBjYXNlIENvbXBvc2l0ZVNvdXJjZU92ZXI6
CisgICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6U291cmNlT3ZlcjoKICAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVTb3VyY2VPdmVyOwogICAgICAgICBicmVhazsKLSAgICBjYXNl
IENvbXBvc2l0ZVNvdXJjZUluOgorICAgIGNhc2UgQ29tcG9zaXRlT3BlcmF0b3I6OlNvdXJjZUlu
OgogICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVNvdXJjZUluOwogICAgICAgICBi
cmVhazsKLSAgICBjYXNlIENvbXBvc2l0ZVNvdXJjZU91dDoKKyAgICBjYXNlIENvbXBvc2l0ZU9w
ZXJhdG9yOjpTb3VyY2VPdXQ6CiAgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlU291
cmNlT3V0OwogICAgICAgICBicmVhazsKLSAgICBjYXNlIENvbXBvc2l0ZVNvdXJjZUF0b3A6Cisg
ICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6U291cmNlQXRvcDoKICAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVTb3VyY2VBdG9wOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIENv
bXBvc2l0ZURlc3RpbmF0aW9uT3ZlcjoKKyAgICBjYXNlIENvbXBvc2l0ZU9wZXJhdG9yOjpEZXN0
aW5hdGlvbk92ZXI6CiAgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRGVzdGluYXRp
b25PdmVyOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIENvbXBvc2l0ZURlc3RpbmF0aW9uSW46
CisgICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6RGVzdGluYXRpb25JbjoKICAgICAgICAgbV92
YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVEZXN0aW5hdGlvbkluOwogICAgICAgICBicmVhazsKLSAg
ICBjYXNlIENvbXBvc2l0ZURlc3RpbmF0aW9uT3V0OgorICAgIGNhc2UgQ29tcG9zaXRlT3BlcmF0
b3I6OkRlc3RpbmF0aW9uT3V0OgogICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZURl
c3RpbmF0aW9uT3V0OwogICAgICAgICBicmVhazsKLSAgICBjYXNlIENvbXBvc2l0ZURlc3RpbmF0
aW9uQXRvcDoKKyAgICBjYXNlIENvbXBvc2l0ZU9wZXJhdG9yOjpEZXN0aW5hdGlvbkF0b3A6CiAg
ICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlRGVzdGluYXRpb25BdG9wOwogICAgICAg
ICBicmVhazsKLSAgICBjYXNlIENvbXBvc2l0ZVhPUjoKKyAgICBjYXNlIENvbXBvc2l0ZU9wZXJh
dG9yOjpYT1I6CiAgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlWG9yOwogICAgICAg
ICBicmVhazsKLSAgICBjYXNlIENvbXBvc2l0ZVBsdXNEYXJrZXI6CisgICAgY2FzZSBDb21wb3Np
dGVPcGVyYXRvcjo6UGx1c0RhcmtlcjoKICAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFs
dWVQbHVzRGFya2VyOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIENvbXBvc2l0ZVBsdXNMaWdo
dGVyOgorICAgIGNhc2UgQ29tcG9zaXRlT3BlcmF0b3I6OlBsdXNMaWdodGVyOgogICAgICAgICBt
X3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVBsdXNMaWdodGVyOwogICAgICAgICBicmVhazsKLSAg
ICBjYXNlIENvbXBvc2l0ZURpZmZlcmVuY2U6CisgICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6
RGlmZmVyZW5jZToKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGJyZWFr
OwogICAgIH0KQEAgLTM4NSwzNyArMzg1LDM3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpvcGVyYXRvciBDb21wb3NpdGVPcGVyYXRvcigpIGNvbnN0CiAKICAgICBzd2l0
Y2ggKG1fdmFsdWUudmFsdWVJRCkgewogICAgIGNhc2UgQ1NTVmFsdWVDbGVhcjoKLSAgICAgICAg
cmV0dXJuIENvbXBvc2l0ZUNsZWFyOworICAgICAgICByZXR1cm4gQ29tcG9zaXRlT3BlcmF0b3I6
OkNsZWFyOwogICAgIGNhc2UgQ1NTVmFsdWVDb3B5OgotICAgICAgICByZXR1cm4gQ29tcG9zaXRl
Q29weTsKKyAgICAgICAgcmV0dXJuIENvbXBvc2l0ZU9wZXJhdG9yOjpDb3B5OwogICAgIGNhc2Ug
Q1NTVmFsdWVTb3VyY2VPdmVyOgotICAgICAgICByZXR1cm4gQ29tcG9zaXRlU291cmNlT3ZlcjsK
KyAgICAgICAgcmV0dXJuIENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VPdmVyOwogICAgIGNhc2Ug
Q1NTVmFsdWVTb3VyY2VJbjoKLSAgICAgICAgcmV0dXJuIENvbXBvc2l0ZVNvdXJjZUluOworICAg
ICAgICByZXR1cm4gQ29tcG9zaXRlT3BlcmF0b3I6OlNvdXJjZUluOwogICAgIGNhc2UgQ1NTVmFs
dWVTb3VyY2VPdXQ6Ci0gICAgICAgIHJldHVybiBDb21wb3NpdGVTb3VyY2VPdXQ7CisgICAgICAg
IHJldHVybiBDb21wb3NpdGVPcGVyYXRvcjo6U291cmNlT3V0OwogICAgIGNhc2UgQ1NTVmFsdWVT
b3VyY2VBdG9wOgotICAgICAgICByZXR1cm4gQ29tcG9zaXRlU291cmNlQXRvcDsKKyAgICAgICAg
cmV0dXJuIENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VBdG9wOwogICAgIGNhc2UgQ1NTVmFsdWVE
ZXN0aW5hdGlvbk92ZXI6Ci0gICAgICAgIHJldHVybiBDb21wb3NpdGVEZXN0aW5hdGlvbk92ZXI7
CisgICAgICAgIHJldHVybiBDb21wb3NpdGVPcGVyYXRvcjo6RGVzdGluYXRpb25PdmVyOwogICAg
IGNhc2UgQ1NTVmFsdWVEZXN0aW5hdGlvbkluOgotICAgICAgICByZXR1cm4gQ29tcG9zaXRlRGVz
dGluYXRpb25JbjsKKyAgICAgICAgcmV0dXJuIENvbXBvc2l0ZU9wZXJhdG9yOjpEZXN0aW5hdGlv
bkluOwogICAgIGNhc2UgQ1NTVmFsdWVEZXN0aW5hdGlvbk91dDoKLSAgICAgICAgcmV0dXJuIENv
bXBvc2l0ZURlc3RpbmF0aW9uT3V0OworICAgICAgICByZXR1cm4gQ29tcG9zaXRlT3BlcmF0b3I6
OkRlc3RpbmF0aW9uT3V0OwogICAgIGNhc2UgQ1NTVmFsdWVEZXN0aW5hdGlvbkF0b3A6Ci0gICAg
ICAgIHJldHVybiBDb21wb3NpdGVEZXN0aW5hdGlvbkF0b3A7CisgICAgICAgIHJldHVybiBDb21w
b3NpdGVPcGVyYXRvcjo6RGVzdGluYXRpb25BdG9wOwogICAgIGNhc2UgQ1NTVmFsdWVYb3I6Ci0g
ICAgICAgIHJldHVybiBDb21wb3NpdGVYT1I7CisgICAgICAgIHJldHVybiBDb21wb3NpdGVPcGVy
YXRvcjo6WE9SOwogICAgIGNhc2UgQ1NTVmFsdWVQbHVzRGFya2VyOgotICAgICAgICByZXR1cm4g
Q29tcG9zaXRlUGx1c0RhcmtlcjsKKyAgICAgICAgcmV0dXJuIENvbXBvc2l0ZU9wZXJhdG9yOjpQ
bHVzRGFya2VyOwogICAgIGNhc2UgQ1NTVmFsdWVQbHVzTGlnaHRlcjoKLSAgICAgICAgcmV0dXJu
IENvbXBvc2l0ZVBsdXNMaWdodGVyOworICAgICAgICByZXR1cm4gQ29tcG9zaXRlT3BlcmF0b3I6
OlBsdXNMaWdodGVyOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBDb21wb3NpdGVDbGVhcjsKKyAgICBy
ZXR1cm4gQ29tcG9zaXRlT3BlcmF0b3I6OkNsZWFyOwogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQ29udHJvbFBhcnQgZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCmluZGV4IGQ1NjJlOTNlM2E2NDcxYmIzYWFmNjU1OTY5NWIxNDZkOWE2
ZjhiYjcuLmZmMGU0MjIwYWMzYzkyNWVkNWYyOTg0ZWEyMTM0ZmY2YTg0Y2JiODQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcApAQCAtNzExOSwxNSArNzExOSwxNSBAQCBPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4gRG9jdW1lbnQ6OnN0eWxlQ29sb3JPcHRpb25zKGNvbnN0IFJlbmRlclN0
eWxlKiBzdAogQ29tcG9zaXRlT3BlcmF0b3IgRG9jdW1lbnQ6OmNvbXBvc2l0ZU9wZXJhdG9yRm9y
QmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJiBjb2xvciwgY29uc3QgUmVuZGVyT2JqZWN0JiBy
ZW5kZXJlcikgY29uc3QKIHsKICAgICBpZiAoTElLRUxZKCFzZXR0aW5ncygpLnB1bmNoT3V0V2hp
dGVCYWNrZ3JvdW5kc0luRGFya01vZGUoKSB8fCAhQ29sb3I6OmlzV2hpdGVDb2xvcihjb2xvcikg
fHwgIXJlbmRlcmVyLnVzZURhcmtBcHBlYXJhbmNlKCkpKQotICAgICAgICByZXR1cm4gQ29tcG9z
aXRlU291cmNlT3ZlcjsKKyAgICAgICAgcmV0dXJuIENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VP
dmVyOwogCiAgICAgYXV0byogZnJhbWVWaWV3ID0gdmlldygpOwogICAgIGlmICghZnJhbWVWaWV3
KQotICAgICAgICByZXR1cm4gQ29tcG9zaXRlU291cmNlT3ZlcjsKKyAgICAgICAgcmV0dXJuIENv
bXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VPdmVyOwogCiAgICAgLy8gTWFpbCBvbiBtYWNPUyB1c2Vz
IGEgdHJhbnNwYXJlbnQgdmlldywgYW5kIG9uIGlPUyBpdCBpcyBhbiBvcGFxdWUgdmlldy4gV2Ug
bmVlZCB0bwogICAgIC8vIHVzZSBkaWZmZXJlbnQgY29tcG9zaXRlIG1vZGVzIHRvIGdldCB0aGUg
cmlnaHQgcmVzdWx0cyBpbiB0aGlzIGNhc2UuCi0gICAgcmV0dXJuIGZyYW1lVmlldy0+aXNUcmFu
c3BhcmVudCgpID8gQ29tcG9zaXRlRGVzdGluYXRpb25PdXQgOiBDb21wb3NpdGVEZXN0aW5hdGlv
bkluOworICAgIHJldHVybiBmcmFtZVZpZXctPmlzVHJhbnNwYXJlbnQoKSA/IENvbXBvc2l0ZU9w
ZXJhdG9yOjpEZXN0aW5hdGlvbk91dCA6IENvbXBvc2l0ZU9wZXJhdG9yOjpEZXN0aW5hdGlvbklu
OwogfQogCiB2b2lkIERvY3VtZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbChFbGVtZW50JiBl
bGVtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKaW5kZXggOWI3
NzM5NGI2YTg1OTRjYjI4ZTA5ZTQxZjAyMTc5NzA1MWMyYTI5My4uNzljMzQyNTgwMzlkNzNiMTEz
YWI0MjE1ODg5NDM3NTAzZDZjYzY0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVs
ZW1lbnQuY3BwCkBAIC03NCw3ICs3NCw3IEBAIEhUTUxJbWFnZUVsZW1lbnQ6OkhUTUxJbWFnZUVs
ZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtCiAgICAg
LCBtX2ltYWdlTG9hZGVyKFdURjo6bWFrZVVuaXF1ZTxIVE1MSW1hZ2VMb2FkZXI+KCp0aGlzKSkK
ICAgICAsIG1fZm9ybShudWxscHRyKQogICAgICwgbV9mb3JtU2V0QnlQYXJzZXIobWFrZVdlYWtQ
dHIoZm9ybSkpCi0gICAgLCBtX2NvbXBvc2l0ZU9wZXJhdG9yKENvbXBvc2l0ZVNvdXJjZU92ZXIp
CisgICAgLCBtX2NvbXBvc2l0ZU9wZXJhdG9yKENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VPdmVy
KQogICAgICwgbV9pbWFnZURldmljZVBpeGVsUmF0aW8oMS4wZikKICAgICAsIG1fZXhwZXJpbWVu
dGFsSW1hZ2VNZW51RW5hYmxlZChmYWxzZSkKICAgICAsIG1fY3JlYXRlZEJ5UGFyc2VyKGNyZWF0
ZWRCeVBhcnNlcikKQEAgLTI1Miw3ICsyNTIsNyBAQCB2b2lkIEhUTUxJbWFnZUVsZW1lbnQ6OnBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbgog
ICAgICAgICAvLyBGSVhNRTogaW1hZ2VzIGRvbid0IHN1cHBvcnQgYmxlbmQgbW9kZXMgaW4gdGhl
aXIgY29tcG9zaXRpbmcgYXR0cmlidXRlLgogICAgICAgICBCbGVuZE1vZGUgYmxlbmRPcCA9IEJs
ZW5kTW9kZTo6Tm9ybWFsOwogICAgICAgICBpZiAoIXBhcnNlQ29tcG9zaXRlQW5kQmxlbmRPcGVy
YXRvcih2YWx1ZSwgbV9jb21wb3NpdGVPcGVyYXRvciwgYmxlbmRPcCkpCi0gICAgICAgICAgICBt
X2NvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3ZlcjsKKyAgICAgICAgICAgIG1f
Y29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3NpdGVPcGVyYXRvcjo6U291cmNlT3ZlcjsKICNpZiBF
TkFCTEUoU0VSVklDRV9DT05UUk9MUykKICAgICB9IGVsc2UgaWYgKG5hbWUgPT0gd2Via2l0aW1h
Z2VtZW51QXR0cikgewogICAgICAgICBtX2V4cGVyaW1lbnRhbEltYWdlTWVudUVuYWJsZWQgPSAh
dmFsdWUuaXNOdWxsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAppbmRleCA2OWFkYTJjNDkxODMyMTYyYjVkYTI2
YjNhZjEwMDUxZGEyNzA4MzE2Li4zMjNkZDRlMDNiYWNkYjJkOGY3ZjhkZWZiYWQ1Y2YwODAzYjE1
ZWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRC5jcHAKQEAgLTU5Myw3ICs1OTMsNyBAQCB2b2lkIENhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbChjb25zdCBTdHJpbmcmIHRleHQsIGZsb2F0
IHgsIGZsbwogICAgICAgICBmb250UHJveHkuZHJhd0JpZGlUZXh0KCpjLCB0ZXh0UnVuLCBsb2Nh
dGlvbiwgRm9udENhc2NhZGU6OlVzZUZhbGxiYWNrSWZGb250Tm90UmVhZHkpOwogICAgICAgICBl
bmRDb21wb3NpdGVMYXllcigpOwogICAgICAgICBkaWREcmF3RW50aXJlQ2FudmFzKCk7Ci0gICAg
fSBlbHNlIGlmIChzdGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSA9PSBDb21wb3NpdGVDb3B5KSB7Cisg
ICAgfSBlbHNlIGlmIChzdGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSA9PSBDb21wb3NpdGVPcGVyYXRv
cjo6Q29weSkgewogICAgICAgICBjbGVhckNhbnZhcygpOwogICAgICAgICBmb250UHJveHkuZHJh
d0JpZGlUZXh0KCpjLCB0ZXh0UnVuLCBsb2NhdGlvbiwgRm9udENhc2NhZGU6OlVzZUZhbGxiYWNr
SWZGb250Tm90UmVhZHkpOwogICAgICAgICBkaWREcmF3RW50aXJlQ2FudmFzKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRC
YXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyREJhc2UuY3BwCmluZGV4IGI0YTE1NTEzNTA2YWNmZmM5OGVmMGQyZWIyZmJjMjFhMDVlNjk5
NGIuLjkyODI4ODQ1NmIzNTgyMTRmM2ZkZTFlNWMwMjQ4MWJlOTVkZTg4OTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyREJhc2UuY3BwCkBAIC0xOTksNyArMTk5LDcgQEAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
QmFzZTo6U3RhdGU6OlN0YXRlKCkKICAgICAsIHNoYWRvd0JsdXIoMCkKICAgICAsIHNoYWRvd0Nv
bG9yKENvbG9yOjp0cmFuc3BhcmVudCkKICAgICAsIGdsb2JhbEFscGhhKDEpCi0gICAgLCBnbG9i
YWxDb21wb3NpdGUoQ29tcG9zaXRlU291cmNlT3ZlcikKKyAgICAsIGdsb2JhbENvbXBvc2l0ZShD
b21wb3NpdGVPcGVyYXRvcjo6U291cmNlT3ZlcikKICAgICAsIGdsb2JhbEJsZW5kKEJsZW5kTW9k
ZTo6Tm9ybWFsKQogICAgICwgaGFzSW52ZXJ0aWJsZVRyYW5zZm9ybSh0cnVlKQogICAgICwgbGlu
ZURhc2hPZmZzZXQoMCkKQEAgLTc2OSw3ICs3NjksNyBAQCBTdHJpbmcgQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEQmFzZTo6Z2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uKCkgY29uc3QKIAogdm9pZCBD
YW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpzZXRHbG9iYWxDb21wb3NpdGVPcGVyYXRpb24o
Y29uc3QgU3RyaW5nJiBvcGVyYXRpb24pCiB7Ci0gICAgQ29tcG9zaXRlT3BlcmF0b3Igb3AgPSBD
b21wb3NpdGVTb3VyY2VPdmVyOworICAgIENvbXBvc2l0ZU9wZXJhdG9yIG9wID0gQ29tcG9zaXRl
T3BlcmF0b3I6OlNvdXJjZU92ZXI7CiAgICAgQmxlbmRNb2RlIGJsZW5kTW9kZSA9IEJsZW5kTW9k
ZTo6Tm9ybWFsOwogICAgIGlmICghcGFyc2VDb21wb3NpdGVBbmRCbGVuZE9wZXJhdG9yKG9wZXJh
dGlvbiwgb3AsIGJsZW5kTW9kZSkpCiAgICAgICAgIHJldHVybjsKQEAgLTEwMzQsOSArMTAzNCw5
IEBAIHN0YXRpYyBib29sIHZhbGlkYXRlUmVjdEZvckNhbnZhcyhmbG9hdCYgeCwgZmxvYXQmIHks
IGZsb2F0JiB3aWR0aCwgZmxvYXQmIGhlaWdoCiBib29sIENhbnZhc1JlbmRlcmluZ0NvbnRleHQy
REJhc2U6OmlzRnVsbENhbnZhc0NvbXBvc2l0ZU1vZGUoQ29tcG9zaXRlT3BlcmF0b3Igb3ApCiB7
CiAgICAgLy8gU2VlIDQuOC4xMS4xLjMgQ29tcG9zaXRpbmcKLSAgICAvLyBDb21wb3NpdGVTb3Vy
Y2VBdG9wIGFuZCBDb21wb3NpdGVEZXN0aW5hdGlvbk91dCBhcmUgbm90IGxpc3RlZCBoZXJlIGFz
IHRoZSBwbGF0Zm9ybXMgYWxyZWFkeQorICAgIC8vIENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VB
dG9wIGFuZCBDb21wb3NpdGVPcGVyYXRvcjo6RGVzdGluYXRpb25PdXQgYXJlIG5vdCBsaXN0ZWQg
aGVyZSBhcyB0aGUgcGxhdGZvcm1zIGFscmVhZHkKICAgICAvLyBpbXBsZW1lbnQgdGhlIHNwZWNp
ZmljYXRpb24ncyBiZWhhdmlvci4KLSAgICByZXR1cm4gb3AgPT0gQ29tcG9zaXRlU291cmNlSW4g
fHwgb3AgPT0gQ29tcG9zaXRlU291cmNlT3V0IHx8IG9wID09IENvbXBvc2l0ZURlc3RpbmF0aW9u
SW4gfHwgb3AgPT0gQ29tcG9zaXRlRGVzdGluYXRpb25BdG9wOworICAgIHJldHVybiBvcCA9PSBD
b21wb3NpdGVPcGVyYXRvcjo6U291cmNlSW4gfHwgb3AgPT0gQ29tcG9zaXRlT3BlcmF0b3I6OlNv
dXJjZU91dCB8fCBvcCA9PSBDb21wb3NpdGVPcGVyYXRvcjo6RGVzdGluYXRpb25JbiB8fCBvcCA9
PSBDb21wb3NpdGVPcGVyYXRvcjo6RGVzdGluYXRpb25BdG9wOwogfQogCiBzdGF0aWMgV2luZFJ1
bGUgdG9XaW5kUnVsZShDYW52YXNGaWxsUnVsZSBydWxlKQpAQCAtMTA5Niw3ICsxMDk2LDcgQEAg
dm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpmaWxsSW50ZXJuYWwoY29uc3QgUGF0
aCYgcGF0aCwgQ2FudmFzRmlsbFJ1bGUKICAgICAgICAgICAgIGMtPmZpbGxQYXRoKHBhdGgpOwog
ICAgICAgICAgICAgZW5kQ29tcG9zaXRlTGF5ZXIoKTsKICAgICAgICAgICAgIGRpZERyYXdFbnRp
cmVDYW52YXMoKTsKLSAgICAgICAgfSBlbHNlIGlmIChzdGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSA9
PSBDb21wb3NpdGVDb3B5KSB7CisgICAgICAgIH0gZWxzZSBpZiAoc3RhdGUoKS5nbG9iYWxDb21w
b3NpdGUgPT0gQ29tcG9zaXRlT3BlcmF0b3I6OkNvcHkpIHsKICAgICAgICAgICAgIGNsZWFyQ2Fu
dmFzKCk7CiAgICAgICAgICAgICBjLT5maWxsUGF0aChwYXRoKTsKICAgICAgICAgICAgIGRpZERy
YXdFbnRpcmVDYW52YXMoKTsKQEAgLTExMjgsNyArMTEyOCw3IEBAIHZvaWQgQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEQmFzZTo6c3Ryb2tlSW50ZXJuYWwoY29uc3QgUGF0aCYgcGF0aCkKICAgICAg
ICAgICAgIGMtPnN0cm9rZVBhdGgocGF0aCk7CiAgICAgICAgICAgICBlbmRDb21wb3NpdGVMYXll
cigpOwogICAgICAgICAgICAgZGlkRHJhd0VudGlyZUNhbnZhcygpOwotICAgICAgICB9IGVsc2Ug
aWYgKHN0YXRlKCkuZ2xvYmFsQ29tcG9zaXRlID09IENvbXBvc2l0ZUNvcHkpIHsKKyAgICAgICAg
fSBlbHNlIGlmIChzdGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSA9PSBDb21wb3NpdGVPcGVyYXRvcjo6
Q29weSkgewogICAgICAgICAgICAgY2xlYXJDYW52YXMoKTsKICAgICAgICAgICAgIGMtPnN0cm9r
ZVBhdGgocGF0aCk7CiAgICAgICAgICAgICBkaWREcmF3RW50aXJlQ2FudmFzKCk7CkBAIC0xMjQz
LDEyICsxMjQzLDEyIEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6Y2xlYXJS
ZWN0KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRoLCBmbG9hCiAgICAgICAgIH0KICAgICAg
ICAgY29udGV4dC0+c2V0QWxwaGEoMSk7CiAgICAgfQotICAgIGlmIChzdGF0ZSgpLmdsb2JhbENv
bXBvc2l0ZSAhPSBDb21wb3NpdGVTb3VyY2VPdmVyKSB7CisgICAgaWYgKHN0YXRlKCkuZ2xvYmFs
Q29tcG9zaXRlICE9IENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VPdmVyKSB7CiAgICAgICAgIGlm
ICghc2F2ZWQpIHsKICAgICAgICAgICAgIGNvbnRleHQtPnNhdmUoKTsKICAgICAgICAgICAgIHNh
dmVkID0gdHJ1ZTsKICAgICAgICAgfQotICAgICAgICBjb250ZXh0LT5zZXRDb21wb3NpdGVPcGVy
YXRpb24oQ29tcG9zaXRlU291cmNlT3Zlcik7CisgICAgICAgIGNvbnRleHQtPnNldENvbXBvc2l0
ZU9wZXJhdGlvbihDb21wb3NpdGVPcGVyYXRvcjo6U291cmNlT3Zlcik7CiAgICAgfQogICAgIGNv
bnRleHQtPmNsZWFyUmVjdChyZWN0KTsKICAgICBpZiAoc2F2ZWQpCkBAIC0xMjg0LDcgKzEyODQs
NyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmZpbGxSZWN0KGZsb2F0IHgs
IGZsb2F0IHksIGZsb2F0IHdpZHRoLCBmbG9hdAogICAgICAgICBjLT5maWxsUmVjdChyZWN0KTsK
ICAgICAgICAgZW5kQ29tcG9zaXRlTGF5ZXIoKTsKICAgICAgICAgZGlkRHJhd0VudGlyZUNhbnZh
cygpOwotICAgIH0gZWxzZSBpZiAoc3RhdGUoKS5nbG9iYWxDb21wb3NpdGUgPT0gQ29tcG9zaXRl
Q29weSkgeworICAgIH0gZWxzZSBpZiAoc3RhdGUoKS5nbG9iYWxDb21wb3NpdGUgPT0gQ29tcG9z
aXRlT3BlcmF0b3I6OkNvcHkpIHsKICAgICAgICAgY2xlYXJDYW52YXMoKTsKICAgICAgICAgYy0+
ZmlsbFJlY3QocmVjdCk7CiAgICAgICAgIGRpZERyYXdFbnRpcmVDYW52YXMoKTsKQEAgLTEzMTgs
NyArMTMxOCw3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6c3Ryb2tlUmVj
dChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvCiAgICAgICAgIGMtPnN0cm9rZVJl
Y3QocmVjdCwgc3RhdGUoKS5saW5lV2lkdGgpOwogICAgICAgICBlbmRDb21wb3NpdGVMYXllcigp
OwogICAgICAgICBkaWREcmF3RW50aXJlQ2FudmFzKCk7Ci0gICAgfSBlbHNlIGlmIChzdGF0ZSgp
Lmdsb2JhbENvbXBvc2l0ZSA9PSBDb21wb3NpdGVDb3B5KSB7CisgICAgfSBlbHNlIGlmIChzdGF0
ZSgpLmdsb2JhbENvbXBvc2l0ZSA9PSBDb21wb3NpdGVPcGVyYXRvcjo6Q29weSkgewogICAgICAg
ICBjbGVhckNhbnZhcygpOwogICAgICAgICBjLT5zdHJva2VSZWN0KHJlY3QsIHN0YXRlKCkubGlu
ZVdpZHRoKTsKICAgICAgICAgZGlkRHJhd0VudGlyZUNhbnZhcygpOwpAQCAtMTU4MCw3ICsxNTgw
LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6ZHJh
d0ltYWdlKERvY3VtZW50JiBkb2N1bWVudCwgQ2EKICAgICB9IGVsc2UgaWYgKGlzRnVsbENhbnZh
c0NvbXBvc2l0ZU1vZGUob3ApKSB7CiAgICAgICAgIGZ1bGxDYW52YXNDb21wb3NpdGVkRHJhd0lt
YWdlKCppbWFnZSwgbm9ybWFsaXplZERzdFJlY3QsIG5vcm1hbGl6ZWRTcmNSZWN0LCBvcCk7CiAg
ICAgICAgIGRpZERyYXdFbnRpcmVDYW52YXMoKTsKLSAgICB9IGVsc2UgaWYgKG9wID09IENvbXBv
c2l0ZUNvcHkpIHsKKyAgICB9IGVsc2UgaWYgKG9wID09IENvbXBvc2l0ZU9wZXJhdG9yOjpDb3B5
KSB7CiAgICAgICAgIGNsZWFyQ2FudmFzKCk7CiAgICAgICAgIGMtPmRyYXdJbWFnZSgqaW1hZ2Us
IG5vcm1hbGl6ZWREc3RSZWN0LCBub3JtYWxpemVkU3JjUmVjdCwgb3B0aW9ucyk7CiAgICAgICAg
IGRpZERyYXdFbnRpcmVDYW52YXMoKTsKQEAgLTE2MzgsNyArMTYzOCw3IEBAIEV4Y2VwdGlvbk9y
PHZvaWQ+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmRyYXdJbWFnZShDYW52YXNCYXNl
JiBzb3VyY2VDYW52CiAgICAgfSBlbHNlIGlmIChpc0Z1bGxDYW52YXNDb21wb3NpdGVNb2RlKHN0
YXRlKCkuZ2xvYmFsQ29tcG9zaXRlKSkgewogICAgICAgICBmdWxsQ2FudmFzQ29tcG9zaXRlZERy
YXdJbWFnZSgqYnVmZmVyLCBkc3RSZWN0LCBzcmNSZWN0LCBzdGF0ZSgpLmdsb2JhbENvbXBvc2l0
ZSk7CiAgICAgICAgIGRpZERyYXdFbnRpcmVDYW52YXMoKTsKLSAgICB9IGVsc2UgaWYgKHN0YXRl
KCkuZ2xvYmFsQ29tcG9zaXRlID09IENvbXBvc2l0ZUNvcHkpIHsKKyAgICB9IGVsc2UgaWYgKHN0
YXRlKCkuZ2xvYmFsQ29tcG9zaXRlID09IENvbXBvc2l0ZU9wZXJhdG9yOjpDb3B5KSB7CiAgICAg
ICAgIGlmICgmc291cmNlQ2FudmFzID09ICZjYW52YXNCYXNlKCkpIHsKICAgICAgICAgICAgIGlm
IChhdXRvIGNvcHkgPSBidWZmZXItPmNvcHlSZWN0VG9CdWZmZXIoc3JjUmVjdCwgQ29sb3JTcGFj
ZVNSR0IsICpjKSkgewogICAgICAgICAgICAgICAgIGNsZWFyQ2FudmFzKCk7CkBAIC0xNzM2LDcg
KzE3MzYsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNl
OjpkcmF3SW1hZ2UoSW1hZ2VCaXRtYXAmIGltYWdlQml0bQogICAgIH0gZWxzZSBpZiAoaXNGdWxs
Q2FudmFzQ29tcG9zaXRlTW9kZShzdGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSkpIHsKICAgICAgICAg
ZnVsbENhbnZhc0NvbXBvc2l0ZWREcmF3SW1hZ2UoKmJ1ZmZlciwgZHN0UmVjdCwgc3JjUmVjdCwg
c3RhdGUoKS5nbG9iYWxDb21wb3NpdGUpOwogICAgICAgICBkaWREcmF3RW50aXJlQ2FudmFzKCk7
Ci0gICAgfSBlbHNlIGlmIChzdGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSA9PSBDb21wb3NpdGVDb3B5
KSB7CisgICAgfSBlbHNlIGlmIChzdGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSA9PSBDb21wb3NpdGVP
cGVyYXRvcjo6Q29weSkgewogICAgICAgICBjbGVhckNhbnZhcygpOwogICAgICAgICBjLT5kcmF3
SW1hZ2VCdWZmZXIoKmJ1ZmZlciwgZHN0UmVjdCwgc3JjUmVjdCwgeyBzdGF0ZSgpLmdsb2JhbENv
bXBvc2l0ZSwgc3RhdGUoKS5nbG9iYWxCbGVuZCB9KTsKICAgICAgICAgZGlkRHJhd0VudGlyZUNh
bnZhcygpOwpAQCAtMTc1Myw3ICsxNzUzLDcgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0
MkRCYXNlOjpkcmF3SW1hZ2VGcm9tUmVjdChIVE1MSW1hZ2VFbGVtZW50JiBpbWFnZUVsZW0KICAg
ICBDb21wb3NpdGVPcGVyYXRvciBvcDsKICAgICBhdXRvIGJsZW5kT3AgPSBCbGVuZE1vZGU6Ok5v
cm1hbDsKICAgICBpZiAoIXBhcnNlQ29tcG9zaXRlQW5kQmxlbmRPcGVyYXRvcihjb21wb3NpdGVP
cGVyYXRpb24sIG9wLCBibGVuZE9wKSB8fCBibGVuZE9wICE9IEJsZW5kTW9kZTo6Tm9ybWFsKQot
ICAgICAgICBvcCA9IENvbXBvc2l0ZVNvdXJjZU92ZXI7CisgICAgICAgIG9wID0gQ29tcG9zaXRl
T3BlcmF0b3I6OlNvdXJjZU92ZXI7CiAgICAgZHJhd0ltYWdlKGltYWdlRWxlbWVudCwgRmxvYXRS
ZWN0IHsgc3gsIHN5LCBzdywgc2ggfSwgRmxvYXRSZWN0IHsgZHgsIGR5LCBkdywgZGggfSwgb3As
IEJsZW5kTW9kZTo6Tm9ybWFsKTsKIH0KIApAQCAtMTg2Niw3ICsxODY2LDcgQEAgdGVtcGxhdGU8
Y2xhc3MgVD4gdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpmdWxsQ2FudmFzQ29t
cG9zaXRlZERyYXdJbWEKICAgICBidWZmZXItPmNvbnRleHQoKS50cmFuc2xhdGUoLXRyYW5zZm9y
bWVkQWRqdXN0ZWRSZWN0LmxvY2F0aW9uKCkpOwogICAgIGJ1ZmZlci0+Y29udGV4dCgpLnRyYW5z
bGF0ZShjcm9wcGVkT2Zmc2V0KTsKICAgICBidWZmZXItPmNvbnRleHQoKS5jb25jYXRDVE0oZWZm
ZWN0aXZlVHJhbnNmb3JtKTsKLSAgICBkcmF3SW1hZ2VUb0NvbnRleHQoaW1hZ2UsIGJ1ZmZlci0+
Y29udGV4dCgpLCBhZGp1c3RlZERlc3QsIHNyYywgeyBDb21wb3NpdGVTb3VyY2VPdmVyIH0pOwor
ICAgIGRyYXdJbWFnZVRvQ29udGV4dChpbWFnZSwgYnVmZmVyLT5jb250ZXh0KCksIGFkanVzdGVk
RGVzdCwgc3JjLCB7IENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VPdmVyIH0pOwogCiAgICAgY29t
cG9zaXRlQnVmZmVyKCpidWZmZXIsIGJ1ZmZlclJlY3QsIG9wKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAppbmRleCA4NzRiNDZiZDhhMTI0YmJk
NGFlNjU2OGMxOTBlMzM4MzZjNWM3NTVhLi42NjM4NjU1MTg1NThkMzA1MzQ5ZGFiZjg1MDRhNzEy
Y2M5OThkNWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
T3ZlcmxheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJs
YXkuY3BwCkBAIC0yMjEsNyArMjIxLDcgQEAgc3RhdGljIHZvaWQgZHJhd091dGxpbmVkUXVhZFdp
dGhDbGlwKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRRdWFkJgogICAgIGNv
bnRleHQuc2V0U3Ryb2tlVGhpY2tuZXNzKDApOwogICAgIGNvbnRleHQuZmlsbFBhdGgocXVhZFRv
UGF0aChxdWFkLCBib3VuZHMpKTsKIAotICAgIGNvbnRleHQuc2V0Q29tcG9zaXRlT3BlcmF0aW9u
KENvbXBvc2l0ZURlc3RpbmF0aW9uT3V0KTsKKyAgICBjb250ZXh0LnNldENvbXBvc2l0ZU9wZXJh
dGlvbihDb21wb3NpdGVPcGVyYXRvcjo6RGVzdGluYXRpb25PdXQpOwogICAgIGNvbnRleHQuc2V0
RmlsbENvbG9yKENvbG9yOjpjcmVhdGVVbmNoZWNrZWQoMjU1LCAwLCAwKSk7CiAgICAgY29udGV4
dC5maWxsUGF0aChxdWFkVG9QYXRoKGNsaXBRdWFkLCBib3VuZHMpKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRl
ZEltYWdlLmNwcAppbmRleCBkNGJkYjVmMjBhYTRhZDJhNTczNjVhMzg2YzI2MDJjZDM5M2FlNjM4
Li40YjVkNmMwZTRhMDA0MmQ5YWRjZjQzNWQ3MzM2NmEyNThiOTQzNzY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJh
dGVkSW1hZ2UuY3BwCkBAIC04MSw4ICs4MSw4IEBAIHZvaWQgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1h
Z2U6OmRyYXdDcm9zc2ZhZGUoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KQogICAgIGNvbnRleHQu
Y2xpcChGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBtX2Nyb3NzZmFkZVNpemUpKTsKICAgICBjb250
ZXh0LmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIoMSk7CiAKLSAgICBkcmF3Q3Jvc3NmYWRlU3ViaW1h
Z2UoY29udGV4dCwgbV9mcm9tSW1hZ2UuZ2V0KCksIENvbXBvc2l0ZVNvdXJjZU92ZXIsIDEgLSBt
X3BlcmNlbnRhZ2UsIG1fY3Jvc3NmYWRlU2l6ZSk7Ci0gICAgZHJhd0Nyb3NzZmFkZVN1YmltYWdl
KGNvbnRleHQsIG1fdG9JbWFnZS5nZXQoKSwgQ29tcG9zaXRlUGx1c0xpZ2h0ZXIsIG1fcGVyY2Vu
dGFnZSwgbV9jcm9zc2ZhZGVTaXplKTsKKyAgICBkcmF3Q3Jvc3NmYWRlU3ViaW1hZ2UoY29udGV4
dCwgbV9mcm9tSW1hZ2UuZ2V0KCksIENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VPdmVyLCAxIC0g
bV9wZXJjZW50YWdlLCBtX2Nyb3NzZmFkZVNpemUpOworICAgIGRyYXdDcm9zc2ZhZGVTdWJpbWFn
ZShjb250ZXh0LCBtX3RvSW1hZ2UuZ2V0KCksIENvbXBvc2l0ZU9wZXJhdG9yOjpQbHVzTGlnaHRl
ciwgbV9wZXJjZW50YWdlLCBtX2Nyb3NzZmFkZVNpemUpOwogCiAgICAgY29udGV4dC5lbmRUcmFu
c3BhcmVuY3lMYXllcigpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHQuaAppbmRleCAwODc5MTQ1YjEzYzU3ZDZjMjA3YmJmNDkyNjlm
ZmYyZmQzMDNhYzVlLi5kOTEzOTExZmNhYTg3NDAyYzk2NjdjM2NhY2QzYWJhMTdmMDE1M2Q2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQuaApAQCAtMTk0LDcgKzE5NCw3IEBAIHN0cnVjdCBHcmFwaGljc0NvbnRleHRTdGF0ZSB7CiAg
ICAgV2luZFJ1bGUgZmlsbFJ1bGUgeyBXaW5kUnVsZTo6Tm9uWmVybyB9OwogCiAgICAgZmxvYXQg
YWxwaGEgeyAxIH07Ci0gICAgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3BlcmF0b3IgeyBD
b21wb3NpdGVTb3VyY2VPdmVyIH07CisgICAgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3Bl
cmF0b3IgeyBDb21wb3NpdGVPcGVyYXRvcjo6U291cmNlT3ZlciB9OwogICAgIEJsZW5kTW9kZSBi
bGVuZE1vZGUgeyBCbGVuZE1vZGU6Ok5vcm1hbCB9OwogICAgIEludGVycG9sYXRpb25RdWFsaXR5
IGltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkgeyBJbnRlcnBvbGF0aW9uRGVmYXVsdCB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3Bw
CmluZGV4IDUwNmIyNjE4MzljMzNkOTcyZDRmMjRiMGFhYjViZjBhN2MwMTUyNGMuLmQ0ZWE1MGRl
NzdlMTkyNGNhNDgyNjViMTU4MzA3OWVjOTcxZjk2MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCkBAIC04OTgsNyArODk4LDcg
QEAgdm9pZCBHcmFwaGljc0xheWVyOjpkdW1wUHJvcGVydGllcyhUZXh0U3RyZWFtJiB0cywgTGF5
ZXJUcmVlQXNUZXh0QmVoYXZpb3IgYmVoYXYKIAogI2lmIEVOQUJMRShDU1NfQ09NUE9TSVRJTkcp
CiAgICAgaWYgKG1fYmxlbmRNb2RlICE9IEJsZW5kTW9kZTo6Tm9ybWFsKQotICAgICAgICB0cyA8
PCBpbmRlbnQgPDwgIihibGVuZE1vZGUgIiA8PCBjb21wb3NpdGVPcGVyYXRvck5hbWUoQ29tcG9z
aXRlU291cmNlT3ZlciwgbV9ibGVuZE1vZGUpIDw8ICIpXG4iOworICAgICAgICB0cyA8PCBpbmRl
bnQgPDwgIihibGVuZE1vZGUgIiA8PCBjb21wb3NpdGVPcGVyYXRvck5hbWUoQ29tcG9zaXRlT3Bl
cmF0b3I6OlNvdXJjZU92ZXIsIG1fYmxlbmRNb2RlKSA8PCAiKVxuIjsKICNlbmRpZgogCiAgICAg
aWYgKHR5cGUoKSA9PSBUeXBlOjpOb3JtYWwgJiYgdGlsZWRCYWNraW5nKCkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc1R5cGVzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMuY3BwCmluZGV4IDM5
OTc4YzQ4NWM1YzdiOTM2OTc3OGI4YTVkODQ3YjQ3NGNmYjlhMGYuLjQ1OGFlNzJmMmFlMDI1NjI0
NzY4ZTg3OWRiZDQ5Njk2NGI0OTFiMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMuY3BwCkBAIC03MSw4ICs3MSw4IEBAIHN0YXRpYyBj
b25zdCBjaGFyKiBjb25zdCBibGVuZE9wZXJhdG9yTmFtZXNbXSA9IHsKICAgICAicGx1cy1kYXJr
ZXIiLAogICAgICJwbHVzLWxpZ2h0ZXIiCiB9OwotY29uc3QgaW50IG51bUNvbXBvc2l0ZU9wZXJh
dG9yTmFtZXMgPSBXVEZfQVJSQVlfTEVOR1RIKGNvbXBvc2l0ZU9wZXJhdG9yTmFtZXMpOwotY29u
c3QgdW5zaWduZWQgbnVtQmxlbmRPcGVyYXRvck5hbWVzID0gV1RGX0FSUkFZX0xFTkdUSChibGVu
ZE9wZXJhdG9yTmFtZXMpOworY29uc3QgdWludDhfdCBudW1Db21wb3NpdGVPcGVyYXRvck5hbWVz
ID0gV1RGX0FSUkFZX0xFTkdUSChjb21wb3NpdGVPcGVyYXRvck5hbWVzKTsKK2NvbnN0IHVpbnQ4
X3QgbnVtQmxlbmRPcGVyYXRvck5hbWVzID0gV1RGX0FSUkFZX0xFTkdUSChibGVuZE9wZXJhdG9y
TmFtZXMpOwogCiBib29sIHBhcnNlQmxlbmRNb2RlKGNvbnN0IFN0cmluZyYgcywgQmxlbmRNb2Rl
JiBibGVuZE1vZGUpCiB7CkBAIC05OCw3ICs5OCw3IEBAIGJvb2wgcGFyc2VDb21wb3NpdGVBbmRC
bGVuZE9wZXJhdG9yKGNvbnN0IFN0cmluZyYgcywgQ29tcG9zaXRlT3BlcmF0b3ImIG9wLCBCbGVu
CiAgICAgCiAgICAgaWYgKHBhcnNlQmxlbmRNb2RlKHMsIGJsZW5kT3ApKSB7CiAgICAgICAgIC8v
IEZvciBub3csIGJsZW5kaW5nIHdpbGwgYWx3YXlzIGFzc3VtZSBzb3VyY2Utb3Zlci4gVGhpcyB3
aWxsIGJlIGZpeGVkIGluIHRoZSBmdXR1cmUKLSAgICAgICAgb3AgPSBDb21wb3NpdGVTb3VyY2VP
dmVyOworICAgICAgICBvcCA9IENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VPdmVyOwogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgCkBAIC0xMDksMTMgKzEwOSwxMyBAQCBib29sIHBh
cnNlQ29tcG9zaXRlQW5kQmxlbmRPcGVyYXRvcihjb25zdCBTdHJpbmcmIHMsIENvbXBvc2l0ZU9w
ZXJhdG9yJiBvcCwgQmxlbgogLy8gdGhpcyByb3V0aW5lIG5lZWRzIHRvIGJlIHVwZGF0ZWQuCiBT
dHJpbmcgY29tcG9zaXRlT3BlcmF0b3JOYW1lKENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBCbGVuZE1v
ZGUgYmxlbmRPcCkKIHsKLSAgICBBU1NFUlQob3AgPj0gMCk7Ci0gICAgQVNTRVJUKG9wIDwgbnVt
Q29tcG9zaXRlT3BlcmF0b3JOYW1lcyk7CisgICAgQVNTRVJUKG9wID49IENvbXBvc2l0ZU9wZXJh
dG9yOjpDbGVhcik7CisgICAgQVNTRVJUKHN0YXRpY19jYXN0PHVpbnQ4X3Q+KG9wKSA8IG51bUNv
bXBvc2l0ZU9wZXJhdG9yTmFtZXMpOwogICAgIEFTU0VSVChibGVuZE9wID49IEJsZW5kTW9kZTo6
Tm9ybWFsKTsKLSAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGJsZW5kT3ApIDw9IG51
bUJsZW5kT3BlcmF0b3JOYW1lcyk7CisgICAgQVNTRVJUKHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGJs
ZW5kT3ApIDw9IG51bUJsZW5kT3BlcmF0b3JOYW1lcyk7CiAgICAgaWYgKGJsZW5kT3AgPiBCbGVu
ZE1vZGU6Ok5vcm1hbCkKICAgICAgICAgcmV0dXJuIGJsZW5kT3BlcmF0b3JOYW1lc1tzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oYmxlbmRPcCkgLSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oQmxlbmRNb2Rl
OjpOb3JtYWwpXTsKLSAgICByZXR1cm4gY29tcG9zaXRlT3BlcmF0b3JOYW1lc1tvcF07CisgICAg
cmV0dXJuIGNvbXBvc2l0ZU9wZXJhdG9yTmFtZXNbc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG9wKV07
CiB9CiAKIFN0cmluZyBibGVuZE1vZGVOYW1lKEJsZW5kTW9kZSBibGVuZE9wKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBlcy5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBlcy5oCmluZGV4IDZlMWFm
ZWUxOThjYTQzOGVkMjVlNDcxNWY3OWQ2NTJhN2ZiMWQyMjAuLjJjZTZiMGNiYTAwMGM5MTZmMWE0
ZGE0NzI0NTI5OTNlZjRjOTA1NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc1R5cGVzLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQog
CiAjaW5jbHVkZSAiV2luZFJ1bGUuaCIKKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgogI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKIG5hbWVzcGFjZSBXVEYgewpAQCAtMzQsMjQgKzM1LDI0
IEBAIGNsYXNzIFRleHRTdHJlYW07CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotZW51bSBDb21w
b3NpdGVPcGVyYXRvciB7Ci0gICAgQ29tcG9zaXRlQ2xlYXIsCi0gICAgQ29tcG9zaXRlQ29weSwK
LSAgICBDb21wb3NpdGVTb3VyY2VPdmVyLAotICAgIENvbXBvc2l0ZVNvdXJjZUluLAotICAgIENv
bXBvc2l0ZVNvdXJjZU91dCwKLSAgICBDb21wb3NpdGVTb3VyY2VBdG9wLAotICAgIENvbXBvc2l0
ZURlc3RpbmF0aW9uT3ZlciwKLSAgICBDb21wb3NpdGVEZXN0aW5hdGlvbkluLAotICAgIENvbXBv
c2l0ZURlc3RpbmF0aW9uT3V0LAotICAgIENvbXBvc2l0ZURlc3RpbmF0aW9uQXRvcCwKLSAgICBD
b21wb3NpdGVYT1IsCi0gICAgQ29tcG9zaXRlUGx1c0RhcmtlciwKLSAgICBDb21wb3NpdGVQbHVz
TGlnaHRlciwKLSAgICBDb21wb3NpdGVEaWZmZXJlbmNlCitlbnVtIGNsYXNzIENvbXBvc2l0ZU9w
ZXJhdG9yIDogdWludDhfdCB7CisgICAgQ2xlYXIsCisgICAgQ29weSwKKyAgICBTb3VyY2VPdmVy
LAorICAgIFNvdXJjZUluLAorICAgIFNvdXJjZU91dCwKKyAgICBTb3VyY2VBdG9wLAorICAgIERl
c3RpbmF0aW9uT3ZlciwKKyAgICBEZXN0aW5hdGlvbkluLAorICAgIERlc3RpbmF0aW9uT3V0LAor
ICAgIERlc3RpbmF0aW9uQXRvcCwKKyAgICBYT1IsCisgICAgUGx1c0RhcmtlciwKKyAgICBQbHVz
TGlnaHRlciwKKyAgICBEaWZmZXJlbmNlCiB9OwogCi1lbnVtIGNsYXNzIEJsZW5kTW9kZSB7Citl
bnVtIGNsYXNzIEJsZW5kTW9kZSA6IHVpbnQ4X3QgewogICAgIE5vcm1hbCA9IDEsIC8vIFN0YXJ0
IHdpdGggMSB0byBtYXRjaCBTVkcncyBibGVuZG1vZGUgZW51bWVyYXRpb24uCiAgICAgTXVsdGlw
bHksCiAgICAgU2NyZWVuLApAQCAtMTQ2LDMgKzE0Nyw1MCBAQCBXRUJDT1JFX0VYUE9SVCBXVEY6
OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgQWxwaGFQcmVtdWx0aXBs
aWNhdAogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK25hbWVzcGFjZSBXVEYgeworCit0ZW1w
bGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkNvbXBvc2l0ZU9wZXJhdG9yPiB7Cisg
ICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICBXZWJDb3JlOjpDb21wb3NpdGVPcGVy
YXRvciwKKyAgICBXZWJDb3JlOjpDb21wb3NpdGVPcGVyYXRvcjo6Q2xlYXIsCisgICAgV2ViQ29y
ZTo6Q29tcG9zaXRlT3BlcmF0b3I6OkNvcHksCisgICAgV2ViQ29yZTo6Q29tcG9zaXRlT3BlcmF0
b3I6OlNvdXJjZU92ZXIsCisgICAgV2ViQ29yZTo6Q29tcG9zaXRlT3BlcmF0b3I6OlNvdXJjZUlu
LAorICAgIFdlYkNvcmU6OkNvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VPdXQsCisgICAgV2ViQ29y
ZTo6Q29tcG9zaXRlT3BlcmF0b3I6OlNvdXJjZUF0b3AsCisgICAgV2ViQ29yZTo6Q29tcG9zaXRl
T3BlcmF0b3I6OkRlc3RpbmF0aW9uT3ZlciwKKyAgICBXZWJDb3JlOjpDb21wb3NpdGVPcGVyYXRv
cjo6RGVzdGluYXRpb25JbiwKKyAgICBXZWJDb3JlOjpDb21wb3NpdGVPcGVyYXRvcjo6RGVzdGlu
YXRpb25PdXQsCisgICAgV2ViQ29yZTo6Q29tcG9zaXRlT3BlcmF0b3I6OkRlc3RpbmF0aW9uQXRv
cCwKKyAgICBXZWJDb3JlOjpDb21wb3NpdGVPcGVyYXRvcjo6WE9SLAorICAgIFdlYkNvcmU6OkNv
bXBvc2l0ZU9wZXJhdG9yOjpQbHVzRGFya2VyLAorICAgIFdlYkNvcmU6OkNvbXBvc2l0ZU9wZXJh
dG9yOjpQbHVzTGlnaHRlciwKKyAgICBXZWJDb3JlOjpDb21wb3NpdGVPcGVyYXRvcjo6RGlmZmVy
ZW5jZQorICAgID47Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6
OkJsZW5kTW9kZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgV2ViQ29y
ZTo6QmxlbmRNb2RlLAorICAgIFdlYkNvcmU6OkJsZW5kTW9kZTo6Tm9ybWFsLAorICAgIFdlYkNv
cmU6OkJsZW5kTW9kZTo6TXVsdGlwbHksCisgICAgV2ViQ29yZTo6QmxlbmRNb2RlOjpTY3JlZW4s
CisgICAgV2ViQ29yZTo6QmxlbmRNb2RlOjpEYXJrZW4sCisgICAgV2ViQ29yZTo6QmxlbmRNb2Rl
OjpMaWdodGVuLAorICAgIFdlYkNvcmU6OkJsZW5kTW9kZTo6T3ZlcmxheSwKKyAgICBXZWJDb3Jl
OjpCbGVuZE1vZGU6OkNvbG9yRG9kZ2UsCisgICAgV2ViQ29yZTo6QmxlbmRNb2RlOjpDb2xvckJ1
cm4sCisgICAgV2ViQ29yZTo6QmxlbmRNb2RlOjpIYXJkTGlnaHQsCisgICAgV2ViQ29yZTo6Qmxl
bmRNb2RlOjpTb2Z0TGlnaHQsCisgICAgV2ViQ29yZTo6QmxlbmRNb2RlOjpEaWZmZXJlbmNlLAor
ICAgIFdlYkNvcmU6OkJsZW5kTW9kZTo6RXhjbHVzaW9uLAorICAgIFdlYkNvcmU6OkJsZW5kTW9k
ZTo6SHVlLAorICAgIFdlYkNvcmU6OkJsZW5kTW9kZTo6U2F0dXJhdGlvbiwKKyAgICBXZWJDb3Jl
OjpCbGVuZE1vZGU6OkNvbG9yLAorICAgIFdlYkNvcmU6OkJsZW5kTW9kZTo6THVtaW5vc2l0eSwK
KyAgICBXZWJDb3JlOjpCbGVuZE1vZGU6OlBsdXNEYXJrZXIsCisgICAgV2ViQ29yZTo6QmxlbmRN
b2RlOjpQbHVzTGlnaHRlcgorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmNwcAppbmRleCAxNTMzNjU0YmIzMTZl
OGZjNDczYWY4ZDJhMDQ3M2NjNmNlY2M2OTBkLi4wOThmNjAxMzZlYzAwN2JkZDhjNzZiN2M4MTQ2
MWIxZTYwMzY5MDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9JbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2Uu
Y3BwCkBAIC0xMzIsNyArMTMyLDcgQEAgdm9pZCBJbWFnZTo6ZmlsbFdpdGhTb2xpZENvbG9yKEdy
YXBoaWNzQ29udGV4dCYgY3R4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LAogICAgICAgICBy
ZXR1cm47CiAgICAgCiAgICAgQ29tcG9zaXRlT3BlcmF0b3IgcHJldmlvdXNPcGVyYXRvciA9IGN0
eHQuY29tcG9zaXRlT3BlcmF0aW9uKCk7Ci0gICAgY3R4dC5zZXRDb21wb3NpdGVPcGVyYXRpb24o
Y29sb3IuaXNPcGFxdWUoKSAmJiBvcCA9PSBDb21wb3NpdGVTb3VyY2VPdmVyID8gQ29tcG9zaXRl
Q29weSA6IG9wKTsKKyAgICBjdHh0LnNldENvbXBvc2l0ZU9wZXJhdGlvbihjb2xvci5pc09wYXF1
ZSgpICYmIG9wID09IENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VPdmVyID8gQ29tcG9zaXRlT3Bl
cmF0b3I6OkNvcHkgOiBvcCk7CiAgICAgY3R4dC5maWxsUmVjdChkc3RSZWN0LCBjb2xvcik7CiAg
ICAgY3R4dC5zZXRDb21wb3NpdGVPcGVyYXRpb24ocHJldmlvdXNPcGVyYXRvcik7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVBhaW50aW5nT3B0
aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VQYWludGluZ09w
dGlvbnMuaAppbmRleCAyZjQ1YzNmZDZkMzM4NDFiYzAzNTU1ZjA3YzkwMmM5MWQ1MTFjZGEwLi5k
ZWE3ZDJhNTM1MzNlYmJiMDZkMGNjOTYyNDVhMThhY2M1MWI4YmUwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVBhaW50aW5nT3B0aW9ucy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlUGFpbnRpbmdPcHRpb25zLmgK
QEAgLTY5LDcgKzY5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldE9wdGlvbihJbWFnZU9yaWVu
dGF0aW9uOjpPcmllbnRhdGlvbiBvcmllbnRhdGlvbikgeyBtX29yaWVudGF0aW9uID0gb3JpZW50
YXRpb247IH0KICAgICB2b2lkIHNldE9wdGlvbihJbnRlcnBvbGF0aW9uUXVhbGl0eSBpbnRlcnBv
bGF0aW9uUXVhbGl0eSkgeyBtX2ludGVycG9sYXRpb25RdWFsaXR5ID0gaW50ZXJwb2xhdGlvblF1
YWxpdHk7IH0KIAotICAgIENvbXBvc2l0ZU9wZXJhdG9yIG1fY29tcG9zaXRlT3BlcmF0b3IgeyBD
b21wb3NpdGVTb3VyY2VPdmVyIH07CisgICAgQ29tcG9zaXRlT3BlcmF0b3IgbV9jb21wb3NpdGVP
cGVyYXRvciB7IENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VPdmVyIH07CiAgICAgQmxlbmRNb2Rl
IG1fYmxlbmRNb2RlIHsgQmxlbmRNb2RlOjpOb3JtYWwgfTsKICAgICBEZWNvZGluZ01vZGUgbV9k
ZWNvZGluZ01vZGUgeyBEZWNvZGluZ01vZGU6OlN5bmNocm9ub3VzIH07CiAgICAgSW1hZ2VPcmll
bnRhdGlvbiBtX29yaWVudGF0aW9uIHsgSW1hZ2VPcmllbnRhdGlvbjo6Tm9uZSB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcAppbmRleCBlYWRh
YTE4YTE2Y2RjZWM5NzAzN2EyYTJhZjM0Nzk1MGI0MjhmMTAyLi45NDk5NThlYzViMzRkZTIyNTdl
ZmQ0NjgzMmQ2NGJmZmQ0ZTE4MDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9TaGFkb3dCbHVyLmNwcApAQCAtODk5LDcgKzg5OSw3IEBAIHZvaWQgU2hhZG93Qmx1
cjo6Ymx1ckFuZENvbG9yU2hhZG93QnVmZmVyKEltYWdlQnVmZmVyJiBsYXllckltYWdlLCBjb25z
dCBJbnRTaXplCiAgICAgLy8gTWFzayB0aGUgaW1hZ2Ugd2l0aCB0aGUgc2hhZG93IGNvbG9yLgog
ICAgIEdyYXBoaWNzQ29udGV4dCYgc2hhZG93Q29udGV4dCA9IGxheWVySW1hZ2UuY29udGV4dCgp
OwogICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihzaGFkb3dDb250ZXh0
KTsKLSAgICBzaGFkb3dDb250ZXh0LnNldENvbXBvc2l0ZU9wZXJhdGlvbihDb21wb3NpdGVTb3Vy
Y2VJbik7CisgICAgc2hhZG93Q29udGV4dC5zZXRDb21wb3NpdGVPcGVyYXRpb24oQ29tcG9zaXRl
T3BlcmF0b3I6OlNvdXJjZUluKTsKICAgICBzaGFkb3dDb250ZXh0LnNldEZpbGxDb2xvcihtX2Nv
bG9yKTsKICAgICBzaGFkb3dDb250ZXh0LmZpbGxSZWN0KEZsb2F0UmVjdCgwLCAwLCB0ZW1wbGF0
ZVNpemUud2lkdGgoKSwgdGVtcGxhdGVTaXplLmhlaWdodCgpKSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb09wZXJhdGlvbnMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25z
LmNwcAppbmRleCBiNmZhNjljNzlmZWFmNzMwMWEwOWM3ZWE0ZjJkM2JlZDYwMjJjYzVjLi43ZTNk
NzQ0MGQyNjA3YmM2ZTE1YzJiMzE2YjBiZDJiYzFmMjBkZjM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb09wZXJhdGlvbnMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0aW9ucy5j
cHAKQEAgLTg3MCw4ICs4NzAsOCBAQCB2b2lkIGRyYXdOYXRpdmVJbWFnZShQbGF0Zm9ybUNvbnRl
eHRDYWlybyYgcGxhdGZvcm1Db250ZXh0LCBjYWlyb19zdXJmYWNlX3QqIHN1cgogICAgIHBsYXRm
b3JtQ29udGV4dC5zYXZlKCk7CiAKICAgICAvLyBTZXQgdGhlIGNvbXBvc2l0aW5nIG9wZXJhdGlv
bi4KLSAgICBpZiAob3B0aW9ucy5jb21wb3NpdGVPcGVyYXRvcigpID09IENvbXBvc2l0ZVNvdXJj
ZU92ZXIgJiYgb3B0aW9ucy5ibGVuZE1vZGUoKSA9PSBCbGVuZE1vZGU6Ok5vcm1hbCAmJiAhY2Fp
cm9TdXJmYWNlSGFzQWxwaGEoc3VyZmFjZSkpCi0gICAgICAgIENhaXJvOjpTdGF0ZTo6c2V0Q29t
cG9zaXRlT3BlcmF0aW9uKHBsYXRmb3JtQ29udGV4dCwgQ29tcG9zaXRlQ29weSwgQmxlbmRNb2Rl
OjpOb3JtYWwpOworICAgIGlmIChvcHRpb25zLmNvbXBvc2l0ZU9wZXJhdG9yKCkgPT0gQ29tcG9z
aXRlT3BlcmF0b3I6OlNvdXJjZU92ZXIgJiYgb3B0aW9ucy5ibGVuZE1vZGUoKSA9PSBCbGVuZE1v
ZGU6Ok5vcm1hbCAmJiAhY2Fpcm9TdXJmYWNlSGFzQWxwaGEoc3VyZmFjZSkpCisgICAgICAgIENh
aXJvOjpTdGF0ZTo6c2V0Q29tcG9zaXRlT3BlcmF0aW9uKHBsYXRmb3JtQ29udGV4dCwgQ29tcG9z
aXRlT3BlcmF0b3I6OkNvcHksIEJsZW5kTW9kZTo6Tm9ybWFsKTsKICAgICBlbHNlCiAgICAgICAg
IENhaXJvOjpTdGF0ZTo6c2V0Q29tcG9zaXRlT3BlcmF0aW9uKHBsYXRmb3JtQ29udGV4dCwgb3B0
aW9ucy5jb21wb3NpdGVPcGVyYXRvcigpLCBvcHRpb25zLmJsZW5kTW9kZSgpKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRp
b25zLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb09wZXJh
dGlvbnMuaAppbmRleCA1ODM0ZjQzMGYwNWRkMTU4MzczOGUzMWU0MzNkMjcxNDBhNmNkMmFhLi5m
NTIwMGE4MmJhYmI5MmZjNTk4Y2I1NjE5M2RlYjBhNmVmYTYxYmUzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb09wZXJhdGlvbnMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb09wZXJhdGlvbnMu
aApAQCAtMTE4LDcgKzExOCw3IEBAIHN0cnVjdCBTaGFkb3dTdGF0ZSB7CiAgICAgYm9vbCBpZ25v
cmVUcmFuc2Zvcm1zIHsgZmFsc2UgfTsKIAogICAgIGZsb2F0IGdsb2JhbEFscGhhIHsgMS4wIH07
Ci0gICAgQ29tcG9zaXRlT3BlcmF0b3IgZ2xvYmFsQ29tcG9zaXRlT3BlcmF0b3IgeyBDb21wb3Np
dGVTb3VyY2VPdmVyIH07CisgICAgQ29tcG9zaXRlT3BlcmF0b3IgZ2xvYmFsQ29tcG9zaXRlT3Bl
cmF0b3IgeyBDb21wb3NpdGVPcGVyYXRvcjo6U291cmNlT3ZlciB9OwogfTsKIAogdm9pZCBzZXRM
aW5lQ2FwKFBsYXRmb3JtQ29udGV4dENhaXJvJiwgTGluZUNhcCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5jcHAK
aW5kZXggOGE1ZTAwOWQ5ZmExNTk4YmMyMzEyMGVjMGYzYzE1OGNkNWVmNzYzOS4uZjkwYWIyODE0
OGNkOTA3YmQzM2UyYmQzMWE4OGZmM2Q2NGFmMjUxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9VdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvVXRpbGl0aWVzLmNwcApAQCAt
MTI4LDMzICsxMjgsMzMgQEAgdm9pZCBhcHBlbmRSZWdpb25Ub0NhaXJvQ29udGV4dChjYWlyb190
KiB0bywgY29uc3QgY2Fpcm9fcmVnaW9uX3QqIHJlZ2lvbikKIHN0YXRpYyBjYWlyb19vcGVyYXRv
cl90IHRvQ2Fpcm9Db21wb3NpdGVPcGVyYXRvcihDb21wb3NpdGVPcGVyYXRvciBvcCkKIHsKICAg
ICBzd2l0Y2ggKG9wKSB7Ci0gICAgY2FzZSBDb21wb3NpdGVDbGVhcjoKKyAgICBjYXNlIENvbXBv
c2l0ZU9wZXJhdG9yOjpDbGVhcjoKICAgICAgICAgcmV0dXJuIENBSVJPX09QRVJBVE9SX0NMRUFS
OwotICAgIGNhc2UgQ29tcG9zaXRlQ29weToKKyAgICBjYXNlIENvbXBvc2l0ZU9wZXJhdG9yOjpD
b3B5OgogICAgICAgICByZXR1cm4gQ0FJUk9fT1BFUkFUT1JfU09VUkNFOwotICAgIGNhc2UgQ29t
cG9zaXRlU291cmNlT3ZlcjoKKyAgICBjYXNlIENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VPdmVy
OgogICAgICAgICByZXR1cm4gQ0FJUk9fT1BFUkFUT1JfT1ZFUjsKLSAgICBjYXNlIENvbXBvc2l0
ZVNvdXJjZUluOgorICAgIGNhc2UgQ29tcG9zaXRlT3BlcmF0b3I6OlNvdXJjZUluOgogICAgICAg
ICByZXR1cm4gQ0FJUk9fT1BFUkFUT1JfSU47Ci0gICAgY2FzZSBDb21wb3NpdGVTb3VyY2VPdXQ6
CisgICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6U291cmNlT3V0OgogICAgICAgICByZXR1cm4g
Q0FJUk9fT1BFUkFUT1JfT1VUOwotICAgIGNhc2UgQ29tcG9zaXRlU291cmNlQXRvcDoKKyAgICBj
YXNlIENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VBdG9wOgogICAgICAgICByZXR1cm4gQ0FJUk9f
T1BFUkFUT1JfQVRPUDsKLSAgICBjYXNlIENvbXBvc2l0ZURlc3RpbmF0aW9uT3ZlcjoKKyAgICBj
YXNlIENvbXBvc2l0ZU9wZXJhdG9yOjpEZXN0aW5hdGlvbk92ZXI6CiAgICAgICAgIHJldHVybiBD
QUlST19PUEVSQVRPUl9ERVNUX09WRVI7Ci0gICAgY2FzZSBDb21wb3NpdGVEZXN0aW5hdGlvbklu
OgorICAgIGNhc2UgQ29tcG9zaXRlT3BlcmF0b3I6OkRlc3RpbmF0aW9uSW46CiAgICAgICAgIHJl
dHVybiBDQUlST19PUEVSQVRPUl9ERVNUX0lOOwotICAgIGNhc2UgQ29tcG9zaXRlRGVzdGluYXRp
b25PdXQ6CisgICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6RGVzdGluYXRpb25PdXQ6CiAgICAg
ICAgIHJldHVybiBDQUlST19PUEVSQVRPUl9ERVNUX09VVDsKLSAgICBjYXNlIENvbXBvc2l0ZURl
c3RpbmF0aW9uQXRvcDoKKyAgICBjYXNlIENvbXBvc2l0ZU9wZXJhdG9yOjpEZXN0aW5hdGlvbkF0
b3A6CiAgICAgICAgIHJldHVybiBDQUlST19PUEVSQVRPUl9ERVNUX0FUT1A7Ci0gICAgY2FzZSBD
b21wb3NpdGVYT1I6CisgICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6WE9SOgogICAgICAgICBy
ZXR1cm4gQ0FJUk9fT1BFUkFUT1JfWE9SOwotICAgIGNhc2UgQ29tcG9zaXRlUGx1c0RhcmtlcjoK
KyAgICBjYXNlIENvbXBvc2l0ZU9wZXJhdG9yOjpQbHVzRGFya2VyOgogICAgICAgICByZXR1cm4g
Q0FJUk9fT1BFUkFUT1JfREFSS0VOOwotICAgIGNhc2UgQ29tcG9zaXRlUGx1c0xpZ2h0ZXI6Cisg
ICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6UGx1c0xpZ2h0ZXI6CiAgICAgICAgIHJldHVybiBD
QUlST19PUEVSQVRPUl9BREQ7Ci0gICAgY2FzZSBDb21wb3NpdGVEaWZmZXJlbmNlOgorICAgIGNh
c2UgQ29tcG9zaXRlT3BlcmF0b3I6OkRpZmZlcmVuY2U6CiAgICAgICAgIHJldHVybiBDQUlST19P
UEVSQVRPUl9ESUZGRVJFTkNFOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBDQUlST19P
UEVSQVRPUl9TT1VSQ0U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jZy9HcmFwaGljc0NvbnRleHQzRENHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dDNEQ0cuY3BwCmluZGV4IGNkNmJiNzMwZTYxNjE5
MTkzZWNlNjBhOTdlZjg4OGQ3N2VmYjYxMGUuLjNhZmFhMGFiMDFkNGE0MGMyZGIxNTlmZjQ5Mjlh
MGM0YmE4YzExMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL0dyYXBoaWNzQ29udGV4dDNEQ0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dDNEQ0cuY3BwCkBAIC01MzksNyArNTM5LDcgQEAg
dm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cGFpbnRUb0NhbnZhcyhjb25zdCB1bnNpZ25lZCBjaGFy
KiBpbWFnZVBpeGVscywgY29uc3QgSW4KICAgICBjb250ZXh0LnNjYWxlKEZsb2F0U2l6ZSgxLCAt
MSkpOwogICAgIGNvbnRleHQudHJhbnNsYXRlKDAsIC1pbWFnZVNpemUuaGVpZ2h0KCkpOwogICAg
IGNvbnRleHQuc2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uTm9uZSk7
Ci0gICAgY29udGV4dC5kcmF3TmF0aXZlSW1hZ2UoY2dJbWFnZSwgaW1hZ2VTaXplLCBjYW52YXNS
ZWN0LCBGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBpbWFnZVNpemUpLCB7IENvbXBvc2l0ZUNvcHkg
fSk7CisgICAgY29udGV4dC5kcmF3TmF0aXZlSW1hZ2UoY2dJbWFnZSwgaW1hZ2VTaXplLCBjYW52
YXNSZWN0LCBGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBpbWFnZVNpemUpLCB7IENvbXBvc2l0ZU9w
ZXJhdG9yOjpDb3B5IH0pOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRD
Ry5jcHAKaW5kZXggOTcwZmQwN2U2NmFlY2JhZDIzZDgzYzcxNGYwYTc1NzZlMDg0YzZkNi4uMmRm
MmU1NDMyNDlmZGRkZjUzZWY4ZjE4ZWM3OTM4MGNmZTQ3YTk3NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNw
cApAQCAtMTYxLDMzICsxNjEsMzMgQEAgc3RhdGljIENHQmxlbmRNb2RlIHNlbGVjdENHQmxlbmRN
b2RlKENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE0KICAgICBzd2l0
Y2ggKGJsZW5kTW9kZSkgewogICAgIGNhc2UgQmxlbmRNb2RlOjpOb3JtYWw6CiAgICAgICAgIHN3
aXRjaCAoY29tcG9zaXRlT3BlcmF0b3IpIHsKLSAgICAgICAgY2FzZSBDb21wb3NpdGVDbGVhcjoK
KyAgICAgICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6Q2xlYXI6CiAgICAgICAgICAgICByZXR1
cm4ga0NHQmxlbmRNb2RlQ2xlYXI7Ci0gICAgICAgIGNhc2UgQ29tcG9zaXRlQ29weToKKyAgICAg
ICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6Q29weToKICAgICAgICAgICAgIHJldHVybiBrQ0dC
bGVuZE1vZGVDb3B5OwotICAgICAgICBjYXNlIENvbXBvc2l0ZVNvdXJjZU92ZXI6CisgICAgICAg
IGNhc2UgQ29tcG9zaXRlT3BlcmF0b3I6OlNvdXJjZU92ZXI6CiAgICAgICAgICAgICByZXR1cm4g
a0NHQmxlbmRNb2RlTm9ybWFsOwotICAgICAgICBjYXNlIENvbXBvc2l0ZVNvdXJjZUluOgorICAg
ICAgICBjYXNlIENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VJbjoKICAgICAgICAgICAgIHJldHVy
biBrQ0dCbGVuZE1vZGVTb3VyY2VJbjsKLSAgICAgICAgY2FzZSBDb21wb3NpdGVTb3VyY2VPdXQ6
CisgICAgICAgIGNhc2UgQ29tcG9zaXRlT3BlcmF0b3I6OlNvdXJjZU91dDoKICAgICAgICAgICAg
IHJldHVybiBrQ0dCbGVuZE1vZGVTb3VyY2VPdXQ7Ci0gICAgICAgIGNhc2UgQ29tcG9zaXRlU291
cmNlQXRvcDoKKyAgICAgICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6U291cmNlQXRvcDoKICAg
ICAgICAgICAgIHJldHVybiBrQ0dCbGVuZE1vZGVTb3VyY2VBdG9wOwotICAgICAgICBjYXNlIENv
bXBvc2l0ZURlc3RpbmF0aW9uT3ZlcjoKKyAgICAgICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6
RGVzdGluYXRpb25PdmVyOgogICAgICAgICAgICAgcmV0dXJuIGtDR0JsZW5kTW9kZURlc3RpbmF0
aW9uT3ZlcjsKLSAgICAgICAgY2FzZSBDb21wb3NpdGVEZXN0aW5hdGlvbkluOgorICAgICAgICBj
YXNlIENvbXBvc2l0ZU9wZXJhdG9yOjpEZXN0aW5hdGlvbkluOgogICAgICAgICAgICAgcmV0dXJu
IGtDR0JsZW5kTW9kZURlc3RpbmF0aW9uSW47Ci0gICAgICAgIGNhc2UgQ29tcG9zaXRlRGVzdGlu
YXRpb25PdXQ6CisgICAgICAgIGNhc2UgQ29tcG9zaXRlT3BlcmF0b3I6OkRlc3RpbmF0aW9uT3V0
OgogICAgICAgICAgICAgcmV0dXJuIGtDR0JsZW5kTW9kZURlc3RpbmF0aW9uT3V0OwotICAgICAg
ICBjYXNlIENvbXBvc2l0ZURlc3RpbmF0aW9uQXRvcDoKKyAgICAgICAgY2FzZSBDb21wb3NpdGVP
cGVyYXRvcjo6RGVzdGluYXRpb25BdG9wOgogICAgICAgICAgICAgcmV0dXJuIGtDR0JsZW5kTW9k
ZURlc3RpbmF0aW9uQXRvcDsKLSAgICAgICAgY2FzZSBDb21wb3NpdGVYT1I6CisgICAgICAgIGNh
c2UgQ29tcG9zaXRlT3BlcmF0b3I6OlhPUjoKICAgICAgICAgICAgIHJldHVybiBrQ0dCbGVuZE1v
ZGVYT1I7Ci0gICAgICAgIGNhc2UgQ29tcG9zaXRlUGx1c0RhcmtlcjoKKyAgICAgICAgY2FzZSBD
b21wb3NpdGVPcGVyYXRvcjo6UGx1c0RhcmtlcjoKICAgICAgICAgICAgIHJldHVybiBrQ0dCbGVu
ZE1vZGVQbHVzRGFya2VyOwotICAgICAgICBjYXNlIENvbXBvc2l0ZVBsdXNMaWdodGVyOgorICAg
ICAgICBjYXNlIENvbXBvc2l0ZU9wZXJhdG9yOjpQbHVzTGlnaHRlcjoKICAgICAgICAgICAgIHJl
dHVybiBrQ0dCbGVuZE1vZGVQbHVzTGlnaHRlcjsKLSAgICAgICAgY2FzZSBDb21wb3NpdGVEaWZm
ZXJlbmNlOgorICAgICAgICBjYXNlIENvbXBvc2l0ZU9wZXJhdG9yOjpEaWZmZXJlbmNlOgogICAg
ICAgICAgICAgcmV0dXJuIGtDR0JsZW5kTW9kZURpZmZlcmVuY2U7CiAgICAgICAgIH0KICAgICAg
ICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFQmxlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRUJsZW5kLmNwcAppbmRleCBlNGQ3Mjk1N2IwY2RlODdmMTdmZjk3MmZjYjcxOTdjOTU5
ZjMzMGUwLi4yM2QzZDIxYTJkZjBiYmRiOWQ4ZTkwYjdkNjZmOGMxMDAwMjI0Y2Y5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5j
cHAKQEAgLTcwLDcgKzcwLDcgQEAgdm9pZCBGRUJsZW5kOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUo
KQogICAgICAgICByZXR1cm47CiAKICAgICBmaWx0ZXJDb250ZXh0LmRyYXdJbWFnZUJ1ZmZlcigq
aW1hZ2VCdWZmZXIyLCBkcmF3aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGluMi0+YWJzb2x1dGVQYWlu
dFJlY3QoKSkpOwotICAgIGZpbHRlckNvbnRleHQuZHJhd0ltYWdlQnVmZmVyKCppbWFnZUJ1ZmZl
ciwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbi0+YWJzb2x1dGVQYWludFJlY3QoKSksIElu
dFJlY3QoSW50UG9pbnQoKSwgaW1hZ2VCdWZmZXItPmxvZ2ljYWxTaXplKCkpLCB7IENvbXBvc2l0
ZVNvdXJjZU92ZXIsIG1fbW9kZSB9KTsKKyAgICBmaWx0ZXJDb250ZXh0LmRyYXdJbWFnZUJ1ZmZl
cigqaW1hZ2VCdWZmZXIsIGRyYXdpbmdSZWdpb25PZklucHV0SW1hZ2UoaW4tPmFic29sdXRlUGFp
bnRSZWN0KCkpLCBJbnRSZWN0KEludFBvaW50KCksIGltYWdlQnVmZmVyLT5sb2dpY2FsU2l6ZSgp
KSwgeyBDb21wb3NpdGVPcGVyYXRvcjo6U291cmNlT3ZlciwgbV9tb2RlIH0pOwogfQogI2VuZGlm
CiAKQEAgLTc4LDcgKzc4LDcgQEAgVGV4dFN0cmVhbSYgRkVCbGVuZDo6ZXh0ZXJuYWxSZXByZXNl
bnRhdGlvbihUZXh0U3RyZWFtJiB0cywgUmVwcmVzZW50YXRpb25UeXBlIHIKIHsKICAgICB0cyA8
PCBpbmRlbnQgPDwgIltmZUJsZW5kIjsKICAgICBGaWx0ZXJFZmZlY3Q6OmV4dGVybmFsUmVwcmVz
ZW50YXRpb24odHMsIHJlcHJlc2VudGF0aW9uKTsKLSAgICB0cyA8PCAiIG1vZGU9XCIiIDw8ICht
X21vZGUgPT0gQmxlbmRNb2RlOjpOb3JtYWwgPyAibm9ybWFsIiA6IGNvbXBvc2l0ZU9wZXJhdG9y
TmFtZShDb21wb3NpdGVTb3VyY2VPdmVyLCBtX21vZGUpKSA8PCAiXCJdXG4iOworICAgIHRzIDw8
ICIgbW9kZT1cIiIgPDwgKG1fbW9kZSA9PSBCbGVuZE1vZGU6Ok5vcm1hbCA/ICJub3JtYWwiIDog
Y29tcG9zaXRlT3BlcmF0b3JOYW1lKENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VPdmVyLCBtX21v
ZGUpKSA8PCAiXCJdXG4iOwogCiAgICAgVGV4dFN0cmVhbTo6SW5kZW50U2NvcGUgaW5kZW50U2Nv
cGUodHMpOwogICAgIGlucHV0RWZmZWN0KDApLT5leHRlcm5hbFJlcHJlc2VudGF0aW9uKHRzLCBy
ZXByZXNlbnRhdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFQ29tcG9zaXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuY3BwCmluZGV4IGQ1NmRiNDBjMDQ5NGRiMTczZjAw
MTc0NGI1YzFiYzRkMmMxYTVhMzQuLmExOWVhMDUzNzU4MTljZWNkYWMyNWQ1ZDk2M2Q1NDRkZDRk
MWE5NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVDb21wb3NpdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVDb21wb3NpdGUuY3BwCkBAIC0yNzEsMjQgKzI3MSwyNCBAQCB2b2lkIEZFQ29t
cG9zaXRlOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKQogICAgICAgICBJbnRSZWN0IHNvdXJjZVJl
Y3QgPSBkZXN0aW5hdGlvblJlY3QgLSBpbi0+YWJzb2x1dGVQYWludFJlY3QoKS5sb2NhdGlvbigp
OwogICAgICAgICBJbnRSZWN0IHNvdXJjZTJSZWN0ID0gZGVzdGluYXRpb25SZWN0IC0gaW4yLT5h
YnNvbHV0ZVBhaW50UmVjdCgpLmxvY2F0aW9uKCk7CiAgICAgICAgIGZpbHRlckNvbnRleHQuZHJh
d0ltYWdlQnVmZmVyKCppbWFnZUJ1ZmZlcjIsIEZsb2F0UmVjdChhZGp1c3RlZERlc3RpbmF0aW9u
UmVjdCksIEZsb2F0UmVjdChzb3VyY2UyUmVjdCkpOwotICAgICAgICBmaWx0ZXJDb250ZXh0LmRy
YXdJbWFnZUJ1ZmZlcigqaW1hZ2VCdWZmZXIsIEZsb2F0UmVjdChhZGp1c3RlZERlc3RpbmF0aW9u
UmVjdCksIEZsb2F0UmVjdChzb3VyY2VSZWN0KSwgeyBDb21wb3NpdGVTb3VyY2VJbiB9KTsKKyAg
ICAgICAgZmlsdGVyQ29udGV4dC5kcmF3SW1hZ2VCdWZmZXIoKmltYWdlQnVmZmVyLCBGbG9hdFJl
Y3QoYWRqdXN0ZWREZXN0aW5hdGlvblJlY3QpLCBGbG9hdFJlY3Qoc291cmNlUmVjdCksIHsgQ29t
cG9zaXRlT3BlcmF0b3I6OlNvdXJjZUluIH0pOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAg
Y2FzZSBGRUNPTVBPU0lURV9PUEVSQVRPUl9PVVQ6CiAgICAgICAgIGZpbHRlckNvbnRleHQuZHJh
d0ltYWdlQnVmZmVyKCppbWFnZUJ1ZmZlciwgZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbi0+
YWJzb2x1dGVQYWludFJlY3QoKSkpOwotICAgICAgICBmaWx0ZXJDb250ZXh0LmRyYXdJbWFnZUJ1
ZmZlcigqaW1hZ2VCdWZmZXIyLCBkcmF3aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGluMi0+YWJzb2x1
dGVQYWludFJlY3QoKSksIEludFJlY3QoSW50UG9pbnQoKSwgaW1hZ2VCdWZmZXIyLT5sb2dpY2Fs
U2l6ZSgpKSwgQ29tcG9zaXRlRGVzdGluYXRpb25PdXQpOworICAgICAgICBmaWx0ZXJDb250ZXh0
LmRyYXdJbWFnZUJ1ZmZlcigqaW1hZ2VCdWZmZXIyLCBkcmF3aW5nUmVnaW9uT2ZJbnB1dEltYWdl
KGluMi0+YWJzb2x1dGVQYWludFJlY3QoKSksIEludFJlY3QoSW50UG9pbnQoKSwgaW1hZ2VCdWZm
ZXIyLT5sb2dpY2FsU2l6ZSgpKSwgQ29tcG9zaXRlT3BlcmF0b3I6OkRlc3RpbmF0aW9uT3V0KTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBGRUNPTVBPU0lURV9PUEVSQVRPUl9BVE9QOgogICAg
ICAgICBmaWx0ZXJDb250ZXh0LmRyYXdJbWFnZUJ1ZmZlcigqaW1hZ2VCdWZmZXIyLCBkcmF3aW5n
UmVnaW9uT2ZJbnB1dEltYWdlKGluMi0+YWJzb2x1dGVQYWludFJlY3QoKSkpOwotICAgICAgICBm
aWx0ZXJDb250ZXh0LmRyYXdJbWFnZUJ1ZmZlcigqaW1hZ2VCdWZmZXIsIGRyYXdpbmdSZWdpb25P
ZklucHV0SW1hZ2UoaW4tPmFic29sdXRlUGFpbnRSZWN0KCkpLCBJbnRSZWN0KEludFBvaW50KCks
IGltYWdlQnVmZmVyLT5sb2dpY2FsU2l6ZSgpKSwgQ29tcG9zaXRlU291cmNlQXRvcCk7CisgICAg
ICAgIGZpbHRlckNvbnRleHQuZHJhd0ltYWdlQnVmZmVyKCppbWFnZUJ1ZmZlciwgZHJhd2luZ1Jl
Z2lvbk9mSW5wdXRJbWFnZShpbi0+YWJzb2x1dGVQYWludFJlY3QoKSksIEludFJlY3QoSW50UG9p
bnQoKSwgaW1hZ2VCdWZmZXItPmxvZ2ljYWxTaXplKCkpLCBDb21wb3NpdGVPcGVyYXRvcjo6U291
cmNlQXRvcCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRkVDT01QT1NJVEVfT1BFUkFUT1Jf
WE9SOgogICAgICAgICBmaWx0ZXJDb250ZXh0LmRyYXdJbWFnZUJ1ZmZlcigqaW1hZ2VCdWZmZXIy
LCBkcmF3aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGluMi0+YWJzb2x1dGVQYWludFJlY3QoKSkpOwot
ICAgICAgICBmaWx0ZXJDb250ZXh0LmRyYXdJbWFnZUJ1ZmZlcigqaW1hZ2VCdWZmZXIsIGRyYXdp
bmdSZWdpb25PZklucHV0SW1hZ2UoaW4tPmFic29sdXRlUGFpbnRSZWN0KCkpLCBJbnRSZWN0KElu
dFBvaW50KCksIGltYWdlQnVmZmVyLT5sb2dpY2FsU2l6ZSgpKSwgQ29tcG9zaXRlWE9SKTsKKyAg
ICAgICAgZmlsdGVyQ29udGV4dC5kcmF3SW1hZ2VCdWZmZXIoKmltYWdlQnVmZmVyLCBkcmF3aW5n
UmVnaW9uT2ZJbnB1dEltYWdlKGluLT5hYnNvbHV0ZVBhaW50UmVjdCgpKSwgSW50UmVjdChJbnRQ
b2ludCgpLCBpbWFnZUJ1ZmZlci0+bG9naWNhbFNpemUoKSksIENvbXBvc2l0ZU9wZXJhdG9yOjpY
T1IpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEZFQ09NUE9TSVRFX09QRVJBVE9SX0xJR0hU
RVI6CiAgICAgICAgIGZpbHRlckNvbnRleHQuZHJhd0ltYWdlQnVmZmVyKCppbWFnZUJ1ZmZlcjIs
IGRyYXdpbmdSZWdpb25PZklucHV0SW1hZ2UoaW4yLT5hYnNvbHV0ZVBhaW50UmVjdCgpKSk7Ci0g
ICAgICAgIGZpbHRlckNvbnRleHQuZHJhd0ltYWdlQnVmZmVyKCppbWFnZUJ1ZmZlciwgZHJhd2lu
Z1JlZ2lvbk9mSW5wdXRJbWFnZShpbi0+YWJzb2x1dGVQYWludFJlY3QoKSksIEludFJlY3QoSW50
UG9pbnQoKSwgaW1hZ2VCdWZmZXItPmxvZ2ljYWxTaXplKCkpLCBDb21wb3NpdGVQbHVzTGlnaHRl
cik7CisgICAgICAgIGZpbHRlckNvbnRleHQuZHJhd0ltYWdlQnVmZmVyKCppbWFnZUJ1ZmZlciwg
ZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShpbi0+YWJzb2x1dGVQYWludFJlY3QoKSksIEludFJl
Y3QoSW50UG9pbnQoKSwgaW1hZ2VCdWZmZXItPmxvZ2ljYWxTaXplKCkpLCBDb21wb3NpdGVPcGVy
YXRvcjo6UGx1c0xpZ2h0ZXIpOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAg
ICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVEcm9wU2hhZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVEcm9wU2hhZG93LmNwcAppbmRleCA4ODlhYTJkZmIyZTE2NTYxNDk4YjM1ZGVm
MTY4ODRmN2FiZTYwY2JjLi4yMzY2NmExYWVmNTM1MzIxNDkzYzllYTJkNTYxOGU4ZmRkZDg0ZWNi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
RHJvcFNoYWRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRURyb3BTaGFkb3cuY3BwCkBAIC0xMDgsOSArMTA4LDkgQEAgdm9pZCBGRURyb3BTaGFk
b3c6OnBsYXRmb3JtQXBwbHlTb2Z0d2FyZSgpCiAKICAgICByZXN1bHRJbWFnZS0+cHV0Qnl0ZUFy
cmF5KCpzcmNQaXhlbEFycmF5LCBBbHBoYVByZW11bHRpcGxpY2F0aW9uOjpQcmVtdWx0aXBsaWVk
LCBzaGFkb3dBcmVhLnNpemUoKSwgc2hhZG93QXJlYSwgSW50UG9pbnQoKSwgSW1hZ2VCdWZmZXI6
OkJhY2tpbmdTdG9yZUNvb3JkaW5hdGVTeXN0ZW0pOwogCi0gICAgcmVzdWx0Q29udGV4dC5zZXRD
b21wb3NpdGVPcGVyYXRpb24oQ29tcG9zaXRlU291cmNlSW4pOworICAgIHJlc3VsdENvbnRleHQu
c2V0Q29tcG9zaXRlT3BlcmF0aW9uKENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VJbik7CiAgICAg
cmVzdWx0Q29udGV4dC5maWxsUmVjdChGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBhYnNvbHV0ZVBh
aW50UmVjdCgpLnNpemUoKSksIG1fc2hhZG93Q29sb3IpOwotICAgIHJlc3VsdENvbnRleHQuc2V0
Q29tcG9zaXRlT3BlcmF0aW9uKENvbXBvc2l0ZURlc3RpbmF0aW9uT3Zlcik7CisgICAgcmVzdWx0
Q29udGV4dC5zZXRDb21wb3NpdGVPcGVyYXRpb24oQ29tcG9zaXRlT3BlcmF0b3I6OkRlc3RpbmF0
aW9uT3Zlcik7CiAKICAgICByZXN1bHRJbWFnZS0+Y29udGV4dCgpLmRyYXdJbWFnZUJ1ZmZlcigq
c291cmNlSW1hZ2UsIGRyYXdpbmdSZWdpb24pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcAppbmRleCAzYTY4
MGEyOTg1MzY4NTVlN2IxNjUxZDFmZGVkODQxNTgwODkzZjhhLi5hMGFhMjUwM2VhNWViZWM5Y2Jl
YTVhYzcyN2Y3MDYwNTkzOTQ1NzU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcApAQCAtNjAsNyArNjAsNyBA
QCB2b2lkIFNvdXJjZUFscGhhOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKQogCiAgICAgRmxvYXRS
ZWN0IGltYWdlUmVjdChGbG9hdFBvaW50KCksIGFic29sdXRlUGFpbnRSZWN0KCkuc2l6ZSgpKTsK
ICAgICBmaWx0ZXJDb250ZXh0LmZpbGxSZWN0KGltYWdlUmVjdCwgQ29sb3I6OmJsYWNrKTsKLSAg
ICBmaWx0ZXJDb250ZXh0LmRyYXdJbWFnZUJ1ZmZlcigqaW1hZ2VCdWZmZXIsIEludFBvaW50KCks
IENvbXBvc2l0ZURlc3RpbmF0aW9uSW4pOworICAgIGZpbHRlckNvbnRleHQuZHJhd0ltYWdlQnVm
ZmVyKCppbWFnZUJ1ZmZlciwgSW50UG9pbnQoKSwgQ29tcG9zaXRlT3BlcmF0b3I6OkRlc3RpbmF0
aW9uSW4pOwogfQogCiBUZXh0U3RyZWFtJiBTb3VyY2VBbHBoYTo6ZXh0ZXJuYWxSZXByZXNlbnRh
dGlvbihUZXh0U3RyZWFtJiB0cywgUmVwcmVzZW50YXRpb25UeXBlKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCAzZTcwYTM2ZDZk
NTAzZjE3NjQzNzliZTI2MWYwOTY3YjliOWRiOTI3Li5mNWE5NWY5NTliZjZjMGRmMTgwYTFkNTQ5
NTlmYWYxYmRkZGVhYjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyLmNwcApAQCAtMzI1NSw3ICszMjU1LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXI6OnBhaW50KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRS
ZWMKICAgICBpZiAoIWdzdEltYWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICBjb250ZXh0LmRy
YXdJbWFnZShnc3RJbWFnZS0+aW1hZ2UoKSwgcmVjdCwgZ3N0SW1hZ2UtPnJlY3QoKSwgeyBDb21w
b3NpdGVDb3B5LCBtX2NhblJlbmRlcmluZ0JlQWNjZWxlcmF0ZWQgPyBtX3ZpZGVvU291cmNlT3Jp
ZW50YXRpb24gOiBJbWFnZU9yaWVudGF0aW9uKCkgfSk7CisgICAgY29udGV4dC5kcmF3SW1hZ2Uo
Z3N0SW1hZ2UtPmltYWdlKCksIHJlY3QsIGdzdEltYWdlLT5yZWN0KCksIHsgQ29tcG9zaXRlT3Bl
cmF0b3I6OkNvcHksIG1fY2FuUmVuZGVyaW5nQmVBY2NlbGVyYXRlZCA/IG1fdmlkZW9Tb3VyY2VP
cmllbnRhdGlvbiA6IEltYWdlT3JpZW50YXRpb24oKSB9KTsKIH0KIAogI2lmIFVTRShHU1RSRUFN
RVJfR0wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNv
c2lhL05pY29zaWFQYWludGluZ0VuZ2luZUJhc2ljLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL25pY29zaWEvTmljb3NpYVBhaW50aW5nRW5naW5lQmFzaWMuY3BwCmluZGV4
IDNhMTY0YzI4YTZmYzViODAyNzA1MDdkMjkxMjYzZGI5ZTAwNDkxODMuLjU1ODg5NDEwOWNlNjRl
OWIwNzdiZmU2M2I3YWU4N2VjMDc5MjM2MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL25pY29zaWEvTmljb3NpYVBhaW50aW5nRW5naW5lQmFzaWMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvTmljb3NpYVBhaW50
aW5nRW5naW5lQmFzaWMuY3BwCkBAIC01NSw5ICs1NSw5IEBAIGJvb2wgUGFpbnRpbmdFbmdpbmVC
YXNpYzo6cGFpbnQoR3JhcGhpY3NMYXllciYgbGF5ZXIsIFJlZjxCdWZmZXI+JiYgYnVmZmVyLCBj
b25zCiAgICAgICAgICAgICBjb250ZXh0LnRyYW5zbGF0ZSh0YXJnZXRSZWN0LngoKSwgdGFyZ2V0
UmVjdC55KCkpOwogCiAgICAgICAgICAgICBpZiAoc3VwcG9ydHNBbHBoYSkgewotICAgICAgICAg
ICAgICAgIGNvbnRleHQuc2V0Q29tcG9zaXRlT3BlcmF0aW9uKENvbXBvc2l0ZUNvcHkpOworICAg
ICAgICAgICAgICAgIGNvbnRleHQuc2V0Q29tcG9zaXRlT3BlcmF0aW9uKENvbXBvc2l0ZU9wZXJh
dG9yOjpDb3B5KTsKICAgICAgICAgICAgICAgICBjb250ZXh0LmZpbGxSZWN0KEludFJlY3QoSW50
UG9pbnQ6Onplcm8oKSwgc291cmNlUmVjdC5zaXplKCkpLCBDb2xvcjo6dHJhbnNwYXJlbnQpOwot
ICAgICAgICAgICAgICAgIGNvbnRleHQuc2V0Q29tcG9zaXRlT3BlcmF0aW9uKENvbXBvc2l0ZVNv
dXJjZU92ZXIpOworICAgICAgICAgICAgICAgIGNvbnRleHQuc2V0Q29tcG9zaXRlT3BlcmF0aW9u
KENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VPdmVyKTsKICAgICAgICAgICAgIH0KIAogICAgICAg
ICAgICAgY29udGV4dC50cmFuc2xhdGUoLXNvdXJjZVJlY3QueCgpLCAtc291cmNlUmVjdC55KCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9O
aWNvc2lhUGFpbnRpbmdFbmdpbmVUaHJlYWRlZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9uaWNvc2lhL05pY29zaWFQYWludGluZ0VuZ2luZVRocmVhZGVkLmNwcAppbmRl
eCA0M2M4YWY0YTIyNTA5NTQ3MTY5OTA2MWRjZTZhZjNhOGM5OWY4ZWFiLi5lMzVhMTVkZjVkZjdk
NDJmYmYyNzQ5MmM1NGM1NDIyZDZlMDIzYTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL05pY29zaWFQYWludGluZ0VuZ2luZVRocmVhZGVkLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL05pY29zaWFQ
YWludGluZ0VuZ2luZVRocmVhZGVkLmNwcApAQCAtNDYsOSArNDYsOSBAQCBzdGF0aWMgdm9pZCBw
YWludExheWVyKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgR3JhcGhpY3NMYXllciYgbGF5ZXIs
IGNvbnN0IEludAogICAgIGNvbnRleHQudHJhbnNsYXRlKHRhcmdldFJlY3QueCgpLCB0YXJnZXRS
ZWN0LnkoKSk7CiAKICAgICBpZiAoc3VwcG9ydHNBbHBoYSkgewotICAgICAgICBjb250ZXh0LnNl
dENvbXBvc2l0ZU9wZXJhdGlvbihDb21wb3NpdGVDb3B5KTsKKyAgICAgICAgY29udGV4dC5zZXRD
b21wb3NpdGVPcGVyYXRpb24oQ29tcG9zaXRlT3BlcmF0b3I6OkNvcHkpOwogICAgICAgICBjb250
ZXh0LmZpbGxSZWN0KEludFJlY3QoSW50UG9pbnQ6Onplcm8oKSwgc291cmNlUmVjdC5zaXplKCkp
LCBDb2xvcjo6dHJhbnNwYXJlbnQpOwotICAgICAgICBjb250ZXh0LnNldENvbXBvc2l0ZU9wZXJh
dGlvbihDb21wb3NpdGVTb3VyY2VPdmVyKTsKKyAgICAgICAgY29udGV4dC5zZXRDb21wb3NpdGVP
cGVyYXRpb24oQ29tcG9zaXRlT3BlcmF0b3I6OlNvdXJjZU92ZXIpOwogICAgIH0KIAogICAgIGNv
bnRleHQudHJhbnNsYXRlKC1zb3VyY2VSZWN0LngoKSwgLXNvdXJjZVJlY3QueSgpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRl
ZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAK
aW5kZXggMmU2NDNiNTVjYmU1OGQ1MGY0ZGU2YmNjNGZhMTVlYzVhNTJjODMzZS4uYmQ2OTBlNWMz
NTFlMGE2ZGEzY2M3MGY0NTc4YWJlOGM4NTZiNTVkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKQEAgLTgyNSw3ICs4MjUs
NyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6Zmx1c2hDb21wb3NpdGluZ1N0YXRl
Rm9yVGhpc0xheWVyT25seSgpCiAgICAgICAgICAgICAgICAgWyZpbWFnZV0oR3JhcGhpY3NDb250
ZXh0JiBjb250ZXh0KQogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgSW50
UmVjdCByZWN0IHsgeyB9LCBJbnRTaXplIHsgaW1hZ2Uuc2l6ZSgpIH0gfTsKLSAgICAgICAgICAg
ICAgICAgICAgY29udGV4dC5kcmF3SW1hZ2UoaW1hZ2UsIHJlY3QsIHJlY3QsIEltYWdlUGFpbnRp
bmdPcHRpb25zKENvbXBvc2l0ZUNvcHkpKTsKKyAgICAgICAgICAgICAgICAgICAgY29udGV4dC5k
cmF3SW1hZ2UoaW1hZ2UsIHJlY3QsIHJlY3QsIEltYWdlUGFpbnRpbmdPcHRpb25zKENvbXBvc2l0
ZU9wZXJhdG9yOjpDb3B5KSk7CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICBsYXll
clN0YXRlLm5hdGl2ZUltYWdlSUQgPSBuYXRpdmVJbWFnZUlEOwogICAgICAgICAgICAgbGF5ZXJT
dGF0ZS51cGRhdGUuYnVmZmVyID0gV1RGTW92ZShidWZmZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0RpcmVjdDJET3BlcmF0aW9ucy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRGlyZWN0MkRPcGVyYXRpb25zLmNw
cAppbmRleCA4NjU4YTQ4YjRjZjJkMmZmNzkwZGEyYTg3MGYxZDcwYTNmZTk1MGUzLi4xOGI4NzE4
MTYxYzZhMGUxMWU0NDdkNDRhYWIyNmU4OTJiNjUyZTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRGlyZWN0MkRPcGVyYXRpb25zLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRGlyZWN0MkRPcGVyYXRpb25zLmNw
cApAQCAtMTg5LDQ2ICsxODksNDYgQEAgdm9pZCBzZXRDb21wb3NpdGVPcGVyYXRpb24oUGxhdGZv
cm1Db250ZXh0RGlyZWN0MkQmIHBsYXRmb3JtQ29udGV4dCwgQ29tcG9zaXRlT3AKICAgICAgICAg
fQogICAgIH0gZWxzZSB7CiAgICAgICAgIHN3aXRjaCAoY29tcG9zaXRlT3BlcmF0aW9uKSB7Ci0g
ICAgICAgIGNhc2UgQ29tcG9zaXRlQ2xlYXI6CisgICAgICAgIGNhc2UgQ29tcG9zaXRlT3BlcmF0
b3I6OkNsZWFyOgogICAgICAgICAgICAgLy8gRklYTUU6IHRhcmdldEJsZW5kTW9kZSA9IEQyRDFf
QkxFTkRfTU9ERV9DTEVBUjsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENvbXBv
c2l0ZUNvcHk6CisgICAgICAgIGNhc2UgQ29tcG9zaXRlT3BlcmF0b3I6OkNvcHk6CiAgICAgICAg
ICAgICB0YXJnZXRDb21wb3NpdGVNb2RlID0gRDJEMV9DT01QT1NJVEVfTU9ERV9TT1VSQ0VfQ09Q
WTsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENvbXBvc2l0ZVNvdXJjZU92ZXI6
CisgICAgICAgIGNhc2UgQ29tcG9zaXRlT3BlcmF0b3I6OlNvdXJjZU92ZXI6CiAgICAgICAgICAg
ICB0YXJnZXRDb21wb3NpdGVNb2RlID0gRDJEMV9DT01QT1NJVEVfTU9ERV9TT1VSQ0VfT1ZFUjsK
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENvbXBvc2l0ZVNvdXJjZUluOgorICAg
ICAgICBjYXNlIENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VJbjoKICAgICAgICAgICAgIHRhcmdl
dENvbXBvc2l0ZU1vZGUgPSBEMkQxX0NPTVBPU0lURV9NT0RFX1NPVVJDRV9JTjsKICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBjYXNlIENvbXBvc2l0ZVNvdXJjZU91dDoKKyAgICAgICAgY2Fz
ZSBDb21wb3NpdGVPcGVyYXRvcjo6U291cmNlT3V0OgogICAgICAgICAgICAgdGFyZ2V0Q29tcG9z
aXRlTW9kZSA9IEQyRDFfQ09NUE9TSVRFX01PREVfU09VUkNFX09VVDsKICAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICBjYXNlIENvbXBvc2l0ZVNvdXJjZUF0b3A6CisgICAgICAgIGNhc2UgQ29t
cG9zaXRlT3BlcmF0b3I6OlNvdXJjZUF0b3A6CiAgICAgICAgICAgICB0YXJnZXRDb21wb3NpdGVN
b2RlID0gRDJEMV9DT01QT1NJVEVfTU9ERV9TT1VSQ0VfQVRPUDsKICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlIENvbXBvc2l0ZURlc3RpbmF0aW9uT3ZlcjoKKyAgICAgICAgY2FzZSBD
b21wb3NpdGVPcGVyYXRvcjo6RGVzdGluYXRpb25PdmVyOgogICAgICAgICAgICAgdGFyZ2V0Q29t
cG9zaXRlTW9kZSA9IEQyRDFfQ09NUE9TSVRFX01PREVfREVTVElOQVRJT05fT1ZFUjsKICAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENvbXBvc2l0ZURlc3RpbmF0aW9uSW46CisgICAg
ICAgIGNhc2UgQ29tcG9zaXRlT3BlcmF0b3I6OkRlc3RpbmF0aW9uSW46CiAgICAgICAgICAgICB0
YXJnZXRDb21wb3NpdGVNb2RlID0gRDJEMV9DT01QT1NJVEVfTU9ERV9ERVNUSU5BVElPTl9JTjsK
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENvbXBvc2l0ZURlc3RpbmF0aW9uT3V0
OgorICAgICAgICBjYXNlIENvbXBvc2l0ZU9wZXJhdG9yOjpEZXN0aW5hdGlvbk91dDoKICAgICAg
ICAgICAgIHRhcmdldENvbXBvc2l0ZU1vZGUgPSBEMkQxX0NPTVBPU0lURV9NT0RFX0RFU1RJTkFU
SU9OX09VVDsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENvbXBvc2l0ZURlc3Rp
bmF0aW9uQXRvcDoKKyAgICAgICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6RGVzdGluYXRpb25B
dG9wOgogICAgICAgICAgICAgdGFyZ2V0Q29tcG9zaXRlTW9kZSA9IEQyRDFfQ09NUE9TSVRFX01P
REVfREVTVElOQVRJT05fQVRPUDsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENv
bXBvc2l0ZVhPUjoKKyAgICAgICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6WE9SOgogICAgICAg
ICAgICAgdGFyZ2V0Q29tcG9zaXRlTW9kZSA9IEQyRDFfQ09NUE9TSVRFX01PREVfWE9SOwogICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ29tcG9zaXRlUGx1c0RhcmtlcjoKKyAgICAg
ICAgY2FzZSBDb21wb3NpdGVPcGVyYXRvcjo6UGx1c0RhcmtlcjoKICAgICAgICAgICAgIHRhcmdl
dEJsZW5kTW9kZSA9IEQyRDFfQkxFTkRfTU9ERV9EQVJLRU47CiAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgY2FzZSBDb21wb3NpdGVQbHVzTGlnaHRlcjoKKyAgICAgICAgY2FzZSBDb21wb3Np
dGVPcGVyYXRvcjo6UGx1c0xpZ2h0ZXI6CiAgICAgICAgICAgICB0YXJnZXRCbGVuZE1vZGUgPSBE
MkQxX0JMRU5EX01PREVfTElHSFRFTjsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNl
IENvbXBvc2l0ZURpZmZlcmVuY2U6CisgICAgICAgIGNhc2UgQ29tcG9zaXRlT3BlcmF0b3I6OkRp
ZmZlcmVuY2U6CiAgICAgICAgICAgICB0YXJnZXRCbGVuZE1vZGUgPSBEMkQxX0JMRU5EX01PREVf
RElGRkVSRU5DRTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRGlyZWN0MkRPcGVyYXRpb25zLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRGlyZWN0MkRPcGVyYXRpb25z
LmgKaW5kZXggMWRkNGYxMjk1ZWEzN2I1ODRhMzA5NmQzOGQzNmRjNGFiM2QxNjIxNC4uNzRhMTAz
NjcwOWYzODU1Y2U4ZDU0Zjc1ZWNjMzZmMzFkODYzMmM1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0RpcmVjdDJET3BlcmF0aW9ucy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9EaXJlY3QyRE9wZXJhdGlvbnMuaApA
QCAtMTA2LDcgKzEwNiw3IEBAIHN0cnVjdCBTaGFkb3dTdGF0ZSB7CiAgICAgYm9vbCBpZ25vcmVU
cmFuc2Zvcm1zIHsgZmFsc2UgfTsKIAogICAgIGZsb2F0IGdsb2JhbEFscGhhIHsgMS4wIH07Ci0g
ICAgQ29tcG9zaXRlT3BlcmF0b3IgZ2xvYmFsQ29tcG9zaXRlT3BlcmF0b3IgeyBDb21wb3NpdGVT
b3VyY2VPdmVyIH07CisgICAgQ29tcG9zaXRlT3BlcmF0b3IgZ2xvYmFsQ29tcG9zaXRlT3BlcmF0
b3IgeyBDb21wb3NpdGVPcGVyYXRvcjo6U291cmNlT3ZlciB9OwogfTsKIAogdm9pZCBzZXRMaW5l
Q2FwKFBsYXRmb3JtQ29udGV4dERpcmVjdDJEJiwgTGluZUNhcCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VDR1dpbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VDR1dpbi5jcHAKaW5kZXggOTMyM2Rh
NzI0OGY2ZjQ5OTgxZTQ1OTM4MzY4MzI4NzlkZDFkZTJmOS4uNzRkMzZkZmQ1OGMzNzZlODRmOTNi
OWQ0ZTkyMTMzZDU1M2NkM2E0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL0ltYWdlQ0dXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9JbWFnZUNHV2luLmNwcApAQCAtNzcsOSArNzcsOSBAQCBib29sIEJpdG1h
cEltYWdlOjpnZXRIQklUTUFQT2ZTaXplKEhCSVRNQVAgYm1wLCBjb25zdCBJbnRTaXplKiBzaXpl
KQogCiAgICAgRmxvYXRTaXplIGltYWdlU2l6ZSA9IEJpdG1hcEltYWdlOjpzaXplKCk7CiAgICAg
aWYgKHNpemUpCi0gICAgICAgIGRyYXdGcmFtZU1hdGNoaW5nU291cmNlU2l6ZShnYywgRmxvYXRS
ZWN0KDAuMGYsIDAuMGYsIGJtcEluZm8uYm1XaWR0aCwgYm1wSW5mby5ibUhlaWdodCksICpzaXpl
LCBDb21wb3NpdGVDb3B5KTsKKyAgICAgICAgZHJhd0ZyYW1lTWF0Y2hpbmdTb3VyY2VTaXplKGdj
LCBGbG9hdFJlY3QoMC4wZiwgMC4wZiwgYm1wSW5mby5ibVdpZHRoLCBibXBJbmZvLmJtSGVpZ2h0
KSwgKnNpemUsIENvbXBvc2l0ZU9wZXJhdG9yOjpDb3B5KTsKICAgICBlbHNlCi0gICAgICAgIGRy
YXcoZ2MsIEZsb2F0UmVjdCgwLjBmLCAwLjBmLCBibXBJbmZvLmJtV2lkdGgsIGJtcEluZm8uYm1I
ZWlnaHQpLCBGbG9hdFJlY3QoMC4wZiwgMC4wZiwgaW1hZ2VTaXplLndpZHRoKCksIGltYWdlU2l6
ZS5oZWlnaHQoKSksIHsgQ29tcG9zaXRlQ29weSB9KTsKKyAgICAgICAgZHJhdyhnYywgRmxvYXRS
ZWN0KDAuMGYsIDAuMGYsIGJtcEluZm8uYm1XaWR0aCwgYm1wSW5mby5ibUhlaWdodCksIEZsb2F0
UmVjdCgwLjBmLCAwLjBmLCBpbWFnZVNpemUud2lkdGgoKSwgaW1hZ2VTaXplLmhlaWdodCgpKSwg
eyBDb21wb3NpdGVPcGVyYXRvcjo6Q29weSB9KTsKIAogICAgIC8vIERvIGNsZWFudXAKICAgICBD
R0NvbnRleHRSZWxlYXNlKGNnQ29udGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VDYWlyb1dpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VDYWlyb1dpbi5jcHAKaW5kZXggNjhiZjM5N2RlZmIx
OGVkMDc3OGU4M2Y2NDJjZDlmMmE1ZGY2ZGIzMy4uZDRlYWZjNTk5YTAwZjIzOTU3ODkyZTNjYWEy
ZTg1ZWJjZTM4MDVjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL0ltYWdlQ2Fpcm9XaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbi9JbWFnZUNhaXJvV2luLmNwcApAQCAtNzksOSArNzksOSBAQCBib29sIEJpdG1h
cEltYWdlOjpnZXRIQklUTUFQT2ZTaXplKEhCSVRNQVAgYm1wLCBjb25zdCBJbnRTaXplKiBzaXpl
KQogCiAgICAgRmxvYXRTaXplIGltYWdlU2l6ZSA9IEJpdG1hcEltYWdlOjpzaXplKCk7CiAgICAg
aWYgKHNpemUpCi0gICAgICAgIGRyYXdGcmFtZU1hdGNoaW5nU291cmNlU2l6ZShnYywgRmxvYXRS
ZWN0KDAuMGYsIDAuMGYsIGJtcEluZm8uYm1XaWR0aCwgYm1wSW5mby5ibUhlaWdodCksICpzaXpl
LCBDb21wb3NpdGVDb3B5KTsKKyAgICAgICAgZHJhd0ZyYW1lTWF0Y2hpbmdTb3VyY2VTaXplKGdj
LCBGbG9hdFJlY3QoMC4wZiwgMC4wZiwgYm1wSW5mby5ibVdpZHRoLCBibXBJbmZvLmJtSGVpZ2h0
KSwgKnNpemUsIENvbXBvc2l0ZU9wZXJhdG9yOjpDb3B5KTsKICAgICBlbHNlCi0gICAgICAgIGRy
YXcoZ2MsIEZsb2F0UmVjdCgwLjBmLCAwLjBmLCBibXBJbmZvLmJtV2lkdGgsIGJtcEluZm8uYm1I
ZWlnaHQpLCBGbG9hdFJlY3QoMC4wZiwgMC4wZiwgaW1hZ2VTaXplLndpZHRoKCksIGltYWdlU2l6
ZS5oZWlnaHQoKSksIHsgQ29tcG9zaXRlQ29weSB9KTsKKyAgICAgICAgZHJhdyhnYywgRmxvYXRS
ZWN0KDAuMGYsIDAuMGYsIGJtcEluZm8uYm1XaWR0aCwgYm1wSW5mby5ibUhlaWdodCksIEZsb2F0
UmVjdCgwLjBmLCAwLjBmLCBpbWFnZVNpemUud2lkdGgoKSwgaW1hZ2VTaXplLmhlaWdodCgpKSwg
eyBDb21wb3NpdGVPcGVyYXRvcjo6Q29weSB9KTsKIAogICAgIC8vIERvIGNsZWFudXAKICAgICBj
YWlyb19kZXN0cm95KHRhcmdldFJlZik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvSW5saW5lRmxvd0JveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5l
Rmxvd0JveC5jcHAKaW5kZXggOTA3NTc3NDc5ZTBkZDc5NmNkOTBjY2YzYjI0NTU4NjNjZTdhZGU0
NC4uYzMxNjQ5NGJkYjM2ZDkxN2JhZGQ3YjY1MGUwYmViOWQ5ZmJlYjgyMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcApAQCAtMTQzOCwxNiArMTQzOCwxNiBA
QCB2b2lkIElubGluZUZsb3dCb3g6OnBhaW50TWFzayhQYWludEluZm8mIHBhaW50SW5mbywgY29u
c3QgTGF5b3V0UG9pbnQmIHBhaW50T2ZmcwogICAgIGJvb2wgcHVzaFRyYW5zcGFyZW5jeUxheWVy
ID0gZmFsc2U7CiAgICAgYm9vbCBjb21wb3NpdGVkTWFzayA9IHJlbmRlcmVyKCkuaGFzTGF5ZXIo
KSAmJiByZW5kZXJlcigpLmxheWVyKCktPmhhc0NvbXBvc2l0ZWRNYXNrKCk7CiAgICAgYm9vbCBm
bGF0dGVuQ29tcG9zaXRpbmdMYXllcnMgPSByZW5kZXJlcigpLnZpZXcoKS5mcmFtZVZpZXcoKS5w
YWludEJlaGF2aW9yKCkuY29udGFpbnMoUGFpbnRCZWhhdmlvcjo6RmxhdHRlbkNvbXBvc2l0aW5n
TGF5ZXJzKTsKLSAgICBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcCA9IENvbXBvc2l0ZVNv
dXJjZU92ZXI7CisgICAgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3AgPSBDb21wb3NpdGVP
cGVyYXRvcjo6U291cmNlT3ZlcjsKICAgICBpZiAoIWNvbXBvc2l0ZWRNYXNrIHx8IGZsYXR0ZW5D
b21wb3NpdGluZ0xheWVycykgewogICAgICAgICBpZiAoKG1hc2tCb3hJbWFnZSAmJiByZW5kZXJl
cigpLnN0eWxlKCkubWFza0xheWVycygpLmhhc0ltYWdlKCkpIHx8IHJlbmRlcmVyKCkuc3R5bGUo
KS5tYXNrTGF5ZXJzKCkubmV4dCgpKQogICAgICAgICAgICAgcHVzaFRyYW5zcGFyZW5jeUxheWVy
ID0gdHJ1ZTsKICAgICAgICAgCi0gICAgICAgIGNvbXBvc2l0ZU9wID0gQ29tcG9zaXRlRGVzdGlu
YXRpb25JbjsKKyAgICAgICAgY29tcG9zaXRlT3AgPSBDb21wb3NpdGVPcGVyYXRvcjo6RGVzdGlu
YXRpb25JbjsKICAgICAgICAgaWYgKHB1c2hUcmFuc3BhcmVuY3lMYXllcikgewotICAgICAgICAg
ICAgcGFpbnRJbmZvLmNvbnRleHQoKS5zZXRDb21wb3NpdGVPcGVyYXRpb24oQ29tcG9zaXRlRGVz
dGluYXRpb25Jbik7CisgICAgICAgICAgICBwYWludEluZm8uY29udGV4dCgpLnNldENvbXBvc2l0
ZU9wZXJhdGlvbihDb21wb3NpdGVPcGVyYXRvcjo6RGVzdGluYXRpb25Jbik7CiAgICAgICAgICAg
ICBwYWludEluZm8uY29udGV4dCgpLmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIoMS4wZik7Ci0gICAg
ICAgICAgICBjb21wb3NpdGVPcCA9IENvbXBvc2l0ZVNvdXJjZU92ZXI7CisgICAgICAgICAgICBj
b21wb3NpdGVPcCA9IENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VPdmVyOwogICAgICAgICB9CiAg
ICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0Jv
eC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guaAppbmRleCA4MDQx
NWQ5NGY5ZmMwYzVlMjQxNDZhZWZmMmFhZDkzM2NkZTViNDJhLi5kMzZhMTViNzQ5N2Q2Y2E0ZTAy
ZDk4ODU4MzllYjRkNDdhYWM2ZTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvSW5saW5lRmxvd0JveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVG
bG93Qm94LmgKQEAgLTExNSw4ICsxMTUsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHBhaW50Qm94
RGVjb3JhdGlvbnMoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKTsKICAgICB2b2lkIHBh
aW50TWFzayhQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpOwotICAgIHZvaWQgcGFpbnRG
aWxsTGF5ZXJzKGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IENvbG9yJiwgY29uc3QgRmlsbExheWVy
JiwgY29uc3QgTGF5b3V0UmVjdCYsIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNl
T3Zlcik7Ci0gICAgdm9pZCBwYWludEZpbGxMYXllcihjb25zdCBQYWludEluZm8mLCBjb25zdCBD
b2xvciYsIGNvbnN0IEZpbGxMYXllciYsIGNvbnN0IExheW91dFJlY3QmLCBDb21wb3NpdGVPcGVy
YXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIpOworICAgIHZvaWQgcGFpbnRGaWxsTGF5ZXJzKGNv
bnN0IFBhaW50SW5mbyYsIGNvbnN0IENvbG9yJiwgY29uc3QgRmlsbExheWVyJiwgY29uc3QgTGF5
b3V0UmVjdCYsIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlT3BlcmF0b3I6OlNvdXJjZU92
ZXIpOworICAgIHZvaWQgcGFpbnRGaWxsTGF5ZXIoY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgQ29s
b3ImLCBjb25zdCBGaWxsTGF5ZXImLCBjb25zdCBMYXlvdXRSZWN0JiwgQ29tcG9zaXRlT3BlcmF0
b3IgPSBDb21wb3NpdGVPcGVyYXRvcjo6U291cmNlT3Zlcik7CiAgICAgdm9pZCBwYWludEJveFNo
YWRvdyhjb25zdCBQYWludEluZm8mLCBjb25zdCBSZW5kZXJTdHlsZSYsIFNoYWRvd1N0eWxlLCBj
b25zdCBMYXlvdXRSZWN0Jik7CiAgICAgdm9pZCBwYWludChQYWludEluZm8mLCBjb25zdCBMYXlv
dXRQb2ludCYsIExheW91dFVuaXQgbGluZVRvcCwgTGF5b3V0VW5pdCBsaW5lQm90dG9tKSBvdmVy
cmlkZTsKICAgICBib29sIG5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVz
dFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29u
c3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBMYXlvdXRVbml0IGxpbmVUb3AsIExh
eW91dFVuaXQgbGluZUJvdHRvbSwgSGl0VGVzdEFjdGlvbikgb3ZlcnJpZGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IDg3YWU3NjI0MDYxZjQ3Yzc0M2U0MDYwYTE4
NWU5MzI5MjdiYzczNTIuLmY4ZDNhNDkyNWFkOTAxMmMxNWIzMGNiYzM2MDI3ODkzY2ZmMmVkMDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCkBAIC0xNTg5LDcgKzE1ODks
NyBAQCB2b2lkIFJlbmRlckJveDo6cGFpbnRNYXNrSW1hZ2VzKGNvbnN0IFBhaW50SW5mbyYgcGFp
bnRJbmZvLCBjb25zdCBMYXlvdXRSZWN0JiBwYQogICAgIGJvb2wgcHVzaFRyYW5zcGFyZW5jeUxh
eWVyID0gZmFsc2U7CiAgICAgYm9vbCBjb21wb3NpdGVkTWFzayA9IGhhc0xheWVyKCkgJiYgbGF5
ZXIoKS0+aGFzQ29tcG9zaXRlZE1hc2soKTsKICAgICBib29sIGZsYXR0ZW5Db21wb3NpdGluZ0xh
eWVycyA9IHBhaW50SW5mby5wYWludEJlaGF2aW9yLmNvbnRhaW5zKFBhaW50QmVoYXZpb3I6OkZs
YXR0ZW5Db21wb3NpdGluZ0xheWVycyk7Ci0gICAgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRl
T3AgPSBDb21wb3NpdGVTb3VyY2VPdmVyOworICAgIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0
ZU9wID0gQ29tcG9zaXRlT3BlcmF0b3I6OlNvdXJjZU92ZXI7CiAKICAgICBib29sIGFsbE1hc2tJ
bWFnZXNMb2FkZWQgPSB0cnVlOwogICAgIApAQCAtMTYwMiw5ICsxNjAyLDkgQEAgdm9pZCBSZW5k
ZXJCb3g6OnBhaW50TWFza0ltYWdlcyhjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY29uc3Qg
TGF5b3V0UmVjdCYgcGEKIAogICAgICAgICBhbGxNYXNrSW1hZ2VzTG9hZGVkICY9IHN0eWxlKCku
bWFza0xheWVycygpLmltYWdlc0FyZUxvYWRlZCgpOwogCi0gICAgICAgIHBhaW50SW5mby5jb250
ZXh0KCkuc2V0Q29tcG9zaXRlT3BlcmF0aW9uKENvbXBvc2l0ZURlc3RpbmF0aW9uSW4pOworICAg
ICAgICBwYWludEluZm8uY29udGV4dCgpLnNldENvbXBvc2l0ZU9wZXJhdGlvbihDb21wb3NpdGVP
cGVyYXRvcjo6RGVzdGluYXRpb25Jbik7CiAgICAgICAgIHBhaW50SW5mby5jb250ZXh0KCkuYmVn
aW5UcmFuc3BhcmVuY3lMYXllcigxKTsKLSAgICAgICAgY29tcG9zaXRlT3AgPSBDb21wb3NpdGVT
b3VyY2VPdmVyOworICAgICAgICBjb21wb3NpdGVPcCA9IENvbXBvc2l0ZU9wZXJhdG9yOjpTb3Vy
Y2VPdmVyOwogICAgIH0KIAogICAgIGlmIChhbGxNYXNrSW1hZ2VzTG9hZGVkKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKaW5kZXggMmJmY2U1ZjY3NGI5ZjA5MWJjNDUxYTY5NTgz
ODEzNDVhMTNiMGU1NS4uNDk1NDgxNDA1NGE2MDE3MTA4ZDY1NDkxOTUyYTM1YWY4YzJlMzAyYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaApAQCAtNjY3LDcgKzY2Nyw3IEBAIHBy
b3RlY3RlZDoKICAgICB2b2lkIHBhaW50QmFja2dyb3VuZChjb25zdCBQYWludEluZm8mLCBjb25z
dCBMYXlvdXRSZWN0JiwgQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlID0gQmFja2dyb3VuZEJsZWVk
Tm9uZSk7CiAgICAgCiAgICAgdm9pZCBwYWludEZpbGxMYXllcihjb25zdCBQYWludEluZm8mLCBj
b25zdCBDb2xvciYsIGNvbnN0IEZpbGxMYXllciYsIGNvbnN0IExheW91dFJlY3QmLCBCYWNrZ3Jv
dW5kQmxlZWRBdm9pZGFuY2UsIENvbXBvc2l0ZU9wZXJhdG9yLCBSZW5kZXJFbGVtZW50KiBiYWNr
Z3JvdW5kT2JqZWN0LCBCYXNlQmFja2dyb3VuZENvbG9yVXNhZ2UgPSBCYXNlQmFja2dyb3VuZENv
bG9yVXNlKTsKLSAgICB2b2lkIHBhaW50RmlsbExheWVycyhjb25zdCBQYWludEluZm8mLCBjb25z
dCBDb2xvciYsIGNvbnN0IEZpbGxMYXllciYsIGNvbnN0IExheW91dFJlY3QmLCBCYWNrZ3JvdW5k
QmxlZWRBdm9pZGFuY2UgPSBCYWNrZ3JvdW5kQmxlZWROb25lLCBDb21wb3NpdGVPcGVyYXRvciA9
IENvbXBvc2l0ZVNvdXJjZU92ZXIsIFJlbmRlckVsZW1lbnQqIGJhY2tncm91bmRPYmplY3QgPSBu
dWxscHRyKTsKKyAgICB2b2lkIHBhaW50RmlsbExheWVycyhjb25zdCBQYWludEluZm8mLCBjb25z
dCBDb2xvciYsIGNvbnN0IEZpbGxMYXllciYsIGNvbnN0IExheW91dFJlY3QmLCBCYWNrZ3JvdW5k
QmxlZWRBdm9pZGFuY2UgPSBCYWNrZ3JvdW5kQmxlZWROb25lLCBDb21wb3NpdGVPcGVyYXRvciA9
IENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VPdmVyLCBSZW5kZXJFbGVtZW50KiBiYWNrZ3JvdW5k
T2JqZWN0ID0gbnVsbHB0cik7CiAKICAgICB2b2lkIHBhaW50TWFza0ltYWdlcyhjb25zdCBQYWlu
dEluZm8mLCBjb25zdCBMYXlvdXRSZWN0Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCmluZGV4IDc1YTlmZTc4ODhiNmEyNDZhODNh
NWU5N2I0NjBjNDVjZjI5MzVjY2YuLmU1Yjc1NTgyNThjZGU2NmYzZDI2ODAxNTc5NDNlNDdkNTBm
NGRhOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2Rl
bE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVs
T2JqZWN0LmNwcApAQCAtOTI2LDE0ICs5MjYsMTQgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVj
dDo6cGFpbnRGaWxsTGF5ZXJFeHRlbmRlZChjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY28K
ICAgICAgICAgICAgIGlmIChiYXNlQ29sb3IuaXNWaXNpYmxlKCkpIHsKICAgICAgICAgICAgICAg
ICBpZiAoIWJhc2VCZ0NvbG9yT25seSAmJiBiZ0NvbG9yLmlzVmlzaWJsZSgpKQogICAgICAgICAg
ICAgICAgICAgICBiYXNlQ29sb3IgPSBiYXNlQ29sb3IuYmxlbmQoYmdDb2xvcik7Ci0gICAgICAg
ICAgICAgICAgY29udGV4dC5maWxsUmVjdChiYWNrZ3JvdW5kUmVjdEZvclBhaW50aW5nLCBiYXNl
Q29sb3IsIENvbXBvc2l0ZUNvcHkpOworICAgICAgICAgICAgICAgIGNvbnRleHQuZmlsbFJlY3Qo
YmFja2dyb3VuZFJlY3RGb3JQYWludGluZywgYmFzZUNvbG9yLCBDb21wb3NpdGVPcGVyYXRvcjo6
Q29weSk7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKCFiYXNlQmdDb2xvck9ubHkgJiYgYmdDb2xv
ci5pc1Zpc2libGUoKSkgewogICAgICAgICAgICAgICAgIGF1dG8gb3BlcmF0aW9uID0gY29udGV4
dC5jb21wb3NpdGVPcGVyYXRpb24oKTsKICAgICAgICAgICAgICAgICBpZiAoc2hvdWxkQ2xlYXJC
YWNrZ3JvdW5kKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChvcCA9PSBDb21wb3NpdGVEZXN0
aW5hdGlvbk91dCkgLy8gV2UncmUgcHVuY2hpbmcgb3V0IHRoZSBiYWNrZ3JvdW5kLgorICAgICAg
ICAgICAgICAgICAgICBpZiAob3AgPT0gQ29tcG9zaXRlT3BlcmF0b3I6OkRlc3RpbmF0aW9uT3V0
KSAvLyBXZSdyZSBwdW5jaGluZyBvdXQgdGhlIGJhY2tncm91bmQuCiAgICAgICAgICAgICAgICAg
ICAgICAgICBvcGVyYXRpb24gPSBvcDsKICAgICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uID0gQ29tcG9zaXRlQ29weTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIG9wZXJhdGlvbiA9IENvbXBvc2l0ZU9wZXJhdG9yOjpDb3B5OwogICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBjb250ZXh0LmZpbGxSZWN0KGJhY2tncm91bmRS
ZWN0Rm9yUGFpbnRpbmcsIGJnQ29sb3IsIG9wZXJhdGlvbik7CiAgICAgICAgICAgICB9IGVsc2Ug
aWYgKHNob3VsZENsZWFyQmFja2dyb3VuZCkKQEAgLTk1Myw3ICs5NTMsNyBAQCB2b2lkIFJlbmRl
ckJveE1vZGVsT2JqZWN0OjpwYWludEZpbGxMYXllckV4dGVuZGVkKGNvbnN0IFBhaW50SW5mbyYg
cGFpbnRJbmZvLCBjbwogICAgICAgICAgICAgICAgIGRvd25jYXN0PEJpdG1hcEltYWdlPigqaW1h
Z2UpLnVwZGF0ZUZyb21TZXR0aW5ncyhzZXR0aW5ncygpKTsKIAogICAgICAgICAgICAgSW1hZ2VQ
YWludGluZ09wdGlvbnMgb3B0aW9ucyA9IHsKLSAgICAgICAgICAgICAgICBvcCA9PSBDb21wb3Np
dGVTb3VyY2VPdmVyID8gYmdMYXllci5jb21wb3NpdGUoKSA6IG9wLAorICAgICAgICAgICAgICAg
IG9wID09IENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VPdmVyID8gYmdMYXllci5jb21wb3NpdGUo
KSA6IG9wLAogICAgICAgICAgICAgICAgIGJnTGF5ZXIuYmxlbmRNb2RlKCksCiAgICAgICAgICAg
ICAgICAgZGVjb2RpbmdNb2RlRm9ySW1hZ2VEcmF3KCppbWFnZSwgcGFpbnRJbmZvKSwKICAgICAg
ICAgICAgICAgICBJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UsCkBAIC05NjksNyArOTY5LDcg
QEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRGaWxsTGF5ZXJFeHRlbmRlZChjb25z
dCBQYWludEluZm8mIHBhaW50SW5mbywgY28KICAgICB9CiAKICAgICBpZiAobWFza0ltYWdlICYm
IGJnTGF5ZXIuY2xpcCgpID09IEZpbGxCb3g6OlRleHQpIHsKLSAgICAgICAgY29udGV4dC5kcmF3
Q29uc3VtaW5nSW1hZ2VCdWZmZXIoV1RGTW92ZShtYXNrSW1hZ2UpLCBtYXNrUmVjdCwgQ29tcG9z
aXRlRGVzdGluYXRpb25Jbik7CisgICAgICAgIGNvbnRleHQuZHJhd0NvbnN1bWluZ0ltYWdlQnVm
ZmVyKFdURk1vdmUobWFza0ltYWdlKSwgbWFza1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yOjpEZXN0
aW5hdGlvbkluKTsKICAgICAgICAgY29udGV4dC5lbmRUcmFuc3BhcmVuY3lMYXllcigpOwogICAg
IH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2Rl
bE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0
LmgKaW5kZXggYjU5YmYwYWI1NjYwMGE3MjgwNjkwYWQ1OTgyNmMyOTFlMmNjYmI0OS4uOGFmNDVl
MWY2ZDQ2MWIwNjMxY2VmNDFmMDRkMDNiNzgyMGEzZmZiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgKQEAgLTIwMyw5ICsyMDMsOSBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBMYXlvdXRVbml0IGNvbnRhaW5pbmdCbG9ja0xvZ2ljYWxXaWR0
aEZvckNvbnRlbnQoKSBjb25zdDsKIAogICAgIHZvaWQgcGFpbnRCb3JkZXIoY29uc3QgUGFpbnRJ
bmZvJiwgY29uc3QgTGF5b3V0UmVjdCYsIGNvbnN0IFJlbmRlclN0eWxlJiwgQmFja2dyb3VuZEJs
ZWVkQXZvaWRhbmNlID0gQmFja2dyb3VuZEJsZWVkTm9uZSwgYm9vbCBpbmNsdWRlTG9naWNhbExl
ZnRFZGdlID0gdHJ1ZSwgYm9vbCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSA9IHRydWUpOwotICAg
IGJvb2wgcGFpbnROaW5lUGllY2VJbWFnZShHcmFwaGljc0NvbnRleHQmLCBjb25zdCBMYXlvdXRS
ZWN0JiwgY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBOaW5lUGllY2VJbWFnZSYsIENvbXBvc2l0
ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3Zlcik7CisgICAgYm9vbCBwYWludE5pbmVQaWVj
ZUltYWdlKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IExheW91dFJlY3QmLCBjb25zdCBSZW5kZXJT
dHlsZSYsIGNvbnN0IE5pbmVQaWVjZUltYWdlJiwgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3Np
dGVPcGVyYXRvcjo6U291cmNlT3Zlcik7CiAgICAgdm9pZCBwYWludEJveFNoYWRvdyhjb25zdCBQ
YWludEluZm8mLCBjb25zdCBMYXlvdXRSZWN0JiwgY29uc3QgUmVuZGVyU3R5bGUmLCBTaGFkb3dT
dHlsZSwgYm9vbCBpbmNsdWRlTG9naWNhbExlZnRFZGdlID0gdHJ1ZSwgYm9vbCBpbmNsdWRlTG9n
aWNhbFJpZ2h0RWRnZSA9IHRydWUpOwotICAgIHZvaWQgcGFpbnRGaWxsTGF5ZXJFeHRlbmRlZChj
b25zdCBQYWludEluZm8mLCBjb25zdCBDb2xvciYsIGNvbnN0IEZpbGxMYXllciYsIGNvbnN0IExh
eW91dFJlY3QmLCBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UsIElubGluZUZsb3dCb3gqID0gbnVs
bHB0ciwgY29uc3QgTGF5b3V0U2l6ZSYgPSBMYXlvdXRTaXplKCksIENvbXBvc2l0ZU9wZXJhdG9y
ID0gQ29tcG9zaXRlU291cmNlT3ZlciwgUmVuZGVyRWxlbWVudCogYmFja2dyb3VuZE9iamVjdCA9
IG51bGxwdHIsIEJhc2VCYWNrZ3JvdW5kQ29sb3JVc2FnZSA9IEJhc2VCYWNrZ3JvdW5kQ29sb3JV
c2UpOworICAgIHZvaWQgcGFpbnRGaWxsTGF5ZXJFeHRlbmRlZChjb25zdCBQYWludEluZm8mLCBj
b25zdCBDb2xvciYsIGNvbnN0IEZpbGxMYXllciYsIGNvbnN0IExheW91dFJlY3QmLCBCYWNrZ3Jv
dW5kQmxlZWRBdm9pZGFuY2UsIElubGluZUZsb3dCb3gqID0gbnVsbHB0ciwgY29uc3QgTGF5b3V0
U2l6ZSYgPSBMYXlvdXRTaXplKCksIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlT3BlcmF0
b3I6OlNvdXJjZU92ZXIsIFJlbmRlckVsZW1lbnQqIGJhY2tncm91bmRPYmplY3QgPSBudWxscHRy
LCBCYXNlQmFja2dyb3VuZENvbG9yVXNhZ2UgPSBCYXNlQmFja2dyb3VuZENvbG9yVXNlKTsKIAog
ICAgIHZpcnR1YWwgYm9vbCBib3hTaGFkb3dTaG91bGRCZUFwcGxpZWRUb0JhY2tncm91bmQoY29u
c3QgTGF5b3V0UG9pbnQmIGFic29sdXRlUGFpbnRQb3N0aW9uLCBCYWNrZ3JvdW5kQmxlZWRBdm9p
ZGFuY2UsIElubGluZUZsb3dCb3gqID0gbnVsbHB0cikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCmluZGV4IDdhYzA0Yjhi
YTRmNDE1MTNiM2ZjYmFmMTkzMWJjZjQ0ODA1Yzk0OGQuLjJkMDBkZmYwYmEwMjVhMjVjOWYxZTZj
NDI3ZDA1ZGQ3NTgxYzBhYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckVtYmVkZGVkT2JqZWN0LmNwcApAQCAtMzM5LDcgKzMzOSw3IEBAIHZvaWQgUmVuZGVyRW1i
ZWRkZWRPYmplY3Q6OnBhaW50UmVwbGFjZWQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExh
eW91dFBvaW50CiAgICAgICAgIGNvbnRleHQuc2V0RmlsbENvbG9yKHJlcGxhY2VtZW50VGV4dENv
bG9yKCkpOwogICAgICAgICBjb250ZXh0LmZpbGxFbGxpcHNlKGFycm93UmVjdCk7CiAKLSAgICAg
ICAgY29udGV4dC5zZXRDb21wb3NpdGVPcGVyYXRpb24oQ29tcG9zaXRlQ2xlYXIpOworICAgICAg
ICBjb250ZXh0LnNldENvbXBvc2l0ZU9wZXJhdGlvbihDb21wb3NpdGVPcGVyYXRvcjo6Q2xlYXIp
OwogICAgICAgICBkcmF3UmVwbGFjZW1lbnRBcnJvdyhjb250ZXh0LCBhcnJvd1JlY3QpOwogICAg
ICAgICBjb250ZXh0LmVuZFRyYW5zcGFyZW5jeUxheWVyKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKaW5kZXggYTFmZDMwMDI3MzExMDc2ODY1ZDkyM2Vj
Njg4NDA4MmNhZDc2NzI3MC4uYjJjNDlhNjY2NjU0YTE0MTM4YzgyNjY2YmZlOGNhZWZiZDVkZmU3
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCkBAIC02NDUsNyAr
NjQ1LDcgQEAgSW1hZ2VEcmF3UmVzdWx0IFJlbmRlckltYWdlOjpwYWludEludG9SZWN0KFBhaW50
SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBGbG9hdFJlY3QKICAgICAgICAgZG93bmNhc3Q8Qml0bWFw
SW1hZ2U+KCppbWFnZSkudXBkYXRlRnJvbVNldHRpbmdzKHNldHRpbmdzKCkpOwogCiAgICAgSW1h
Z2VQYWludGluZ09wdGlvbnMgb3B0aW9ucyA9IHsKLSAgICAgICAgaW1hZ2VFbGVtZW50ID8gaW1h
Z2VFbGVtZW50LT5jb21wb3NpdGVPcGVyYXRvcigpIDogQ29tcG9zaXRlU291cmNlT3ZlciwKKyAg
ICAgICAgaW1hZ2VFbGVtZW50ID8gaW1hZ2VFbGVtZW50LT5jb21wb3NpdGVPcGVyYXRvcigpIDog
Q29tcG9zaXRlT3BlcmF0b3I6OlNvdXJjZU92ZXIsCiAgICAgICAgIGRlY29kaW5nTW9kZUZvcklt
YWdlRHJhdygqaW1hZ2UsIHBhaW50SW5mbyksCiAgICAgICAgIGltYWdlT3JpZW50YXRpb24oKSwK
ICAgICAgICAgaW1hZ2UgPyBjaG9vc2VJbnRlcnBvbGF0aW9uUXVhbGl0eShwYWludEluZm8uY29u
dGV4dCgpLCAqaW1hZ2UsIGltYWdlLCBMYXlvdXRTaXplKHJlY3Quc2l6ZSgpKSkgOiBJbnRlcnBv
bGF0aW9uRGVmYXVsdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJC
YWNraW5nLmNwcAppbmRleCBkNWNjODY2YjAxZDNhODFmMjBlZDI2M2EwMTIxZjU1YmQ3MzA5ZTIz
Li5kMDgyOGEyMmVhMDBiZTdiMzNhYzNiN2EyZDViZTdjMTM0YTJjYzEwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtMjI3OSw3ICsy
Mjc5LDcgQEAgc3RhdGljIGJvb2wgc3VwcG9ydHNEaXJlY3RseUNvbXBvc2l0ZWRCb3hEZWNvcmF0
aW9ucyhjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWMKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgLy8gRklYTUU6IHdlIHNob3VsZCBiZSBhYmxlIHRvIGFsbG93IGJhY2tncm91bmRDb21w
b3NpdGU7IEhvd2V2ZXIgc2luY2UgdGhpcyBpcyBub3QgYSBjb21tb24gdXNlIGNhc2UgaXQgaGFz
IGJlZW4gZGVmZXJyZWQgZm9yIG5vdy4KLSAgICBpZiAoc3R5bGUuYmFja2dyb3VuZENvbXBvc2l0
ZSgpICE9IENvbXBvc2l0ZVNvdXJjZU92ZXIpCisgICAgaWYgKHN0eWxlLmJhY2tncm91bmRDb21w
b3NpdGUoKSAhPSBDb21wb3NpdGVPcGVyYXRvcjo6U291cmNlT3ZlcikKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVHJlZUFzVGV4dC5jcHAKaW5kZXggMzEzZTNlNTMwYjAxMjg0ZjI4N2VkOGJhZGZkMDNk
Njg5MzFmYWYyMC4uODYxMTI3OTQ5MTc3NTk1MTY3YjZjZGYwZmJhZGUyMjA0MGRkMzljZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcApAQCAtNjM4
LDcgKzYzOCw3IEBAIHN0YXRpYyB2b2lkIHdyaXRlTGF5ZXIoVGV4dFN0cmVhbSYgdHMsIGNvbnN0
IFJlbmRlckxheWVyJiBsYXllciwgY29uc3QgTGF5b3V0UmVjCiAgICAgaWYgKGxheWVyLmlzb2xh
dGVzQmxlbmRpbmcoKSkKICAgICAgICAgdHMgPDwgIiBpc29sYXRlc0JsZW5kaW5nIjsKICAgICBp
ZiAobGF5ZXIuaGFzQmxlbmRNb2RlKCkpCi0gICAgICAgIHRzIDw8ICIgYmxlbmRNb2RlOiAiIDw8
IGNvbXBvc2l0ZU9wZXJhdG9yTmFtZShDb21wb3NpdGVTb3VyY2VPdmVyLCBsYXllci5ibGVuZE1v
ZGUoKSk7CisgICAgICAgIHRzIDw8ICIgYmxlbmRNb2RlOiAiIDw8IGNvbXBvc2l0ZU9wZXJhdG9y
TmFtZShDb21wb3NpdGVPcGVyYXRvcjo6U291cmNlT3ZlciwgbGF5ZXIuYmxlbmRNb2RlKCkpOwog
I2VuZGlmCiAgICAgCiAgICAgdHMgPDwgIlxuIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJWaWV3LmNwcAppbmRleCBmNjQ4NjE0M2E3YzdkYjk2YmY0OGNkMDE4Y2ViYjdlZDI5NGNkN2Fj
Li4wNTdiNDQxZWQ3ZjEzN2ZmNTVkOTZhMWQwZWFkZTVlYzc0MDM5OGQyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCkBAIC00MjEsNyArNDIxLDcgQEAgdm9pZCBSZW5k
ZXJWaWV3OjpwYWludEJveERlY29yYXRpb25zKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBM
YXlvdXRQb2ludCYpCiAgICAgICAgIGNvbnN0IENvbG9yJiBiYWNrZ3JvdW5kQ29sb3IgPSAoc2V0
dGluZ3MoKS5iYWNrZ3JvdW5kU2hvdWxkRXh0ZW5kQmV5b25kUGFnZSgpICYmIGRvY3VtZW50QmFj
a2dyb3VuZENvbG9yLmlzVmFsaWQoKSkgPyBkb2N1bWVudEJhY2tncm91bmRDb2xvciA6IGZyYW1l
VmlldygpLmJhc2VCYWNrZ3JvdW5kQ29sb3IoKTsKICAgICAgICAgaWYgKGJhY2tncm91bmRDb2xv
ci5pc1Zpc2libGUoKSkgewogICAgICAgICAgICAgQ29tcG9zaXRlT3BlcmF0b3IgcHJldmlvdXNP
cGVyYXRvciA9IHBhaW50SW5mby5jb250ZXh0KCkuY29tcG9zaXRlT3BlcmF0aW9uKCk7Ci0gICAg
ICAgICAgICBwYWludEluZm8uY29udGV4dCgpLnNldENvbXBvc2l0ZU9wZXJhdGlvbihDb21wb3Np
dGVDb3B5KTsKKyAgICAgICAgICAgIHBhaW50SW5mby5jb250ZXh0KCkuc2V0Q29tcG9zaXRlT3Bl
cmF0aW9uKENvbXBvc2l0ZU9wZXJhdG9yOjpDb3B5KTsKICAgICAgICAgICAgIHBhaW50SW5mby5j
b250ZXh0KCkuZmlsbFJlY3QocGFpbnRJbmZvLnJlY3QsIGJhY2tncm91bmRDb2xvcik7CiAgICAg
ICAgICAgICBwYWludEluZm8uY29udGV4dCgpLnNldENvbXBvc2l0ZU9wZXJhdGlvbihwcmV2aW91
c09wZXJhdG9yKTsKICAgICAgICAgfSBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9GaWxsTGF5ZXIuY3BwCmluZGV4IGFhYWM1ZjdmMmM3YzhlMTI2YjkwZmI3NmQ3MGE2MmMw
OGVkNWZkZGQuLmZlNWMwMTI2YzAxOWZmZTQ2MWU3OTJiM2E5MWI3Njk5YjEzYzMwMGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwCkBAIC01Miw3ICs1
Miw3IEBAIEZpbGxMYXllcjo6RmlsbExheWVyKEZpbGxMYXllclR5cGUgdHlwZSkKICAgICAsIG1f
b3JpZ2luKHN0YXRpY19jYXN0PHVuc2lnbmVkPihGaWxsTGF5ZXI6OmluaXRpYWxGaWxsT3JpZ2lu
KHR5cGUpKSkKICAgICAsIG1fcmVwZWF0WChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oRmlsbExheWVy
Ojppbml0aWFsRmlsbFJlcGVhdFgodHlwZSkpKQogICAgICwgbV9yZXBlYXRZKHN0YXRpY19jYXN0
PHVuc2lnbmVkPihGaWxsTGF5ZXI6OmluaXRpYWxGaWxsUmVwZWF0WSh0eXBlKSkpCi0gICAgLCBt
X2NvbXBvc2l0ZShGaWxsTGF5ZXI6OmluaXRpYWxGaWxsQ29tcG9zaXRlKHR5cGUpKQorICAgICwg
bV9jb21wb3NpdGUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEZpbGxMYXllcjo6aW5pdGlhbEZpbGxD
b21wb3NpdGUodHlwZSkpKQogICAgICwgbV9zaXplVHlwZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
RmlsbFNpemVUeXBlOjpOb25lKSkKICAgICAsIG1fYmxlbmRNb2RlKHN0YXRpY19jYXN0PHVuc2ln
bmVkPihGaWxsTGF5ZXI6OmluaXRpYWxGaWxsQmxlbmRNb2RlKHR5cGUpKSkKICAgICAsIG1fbWFz
a1NvdXJjZVR5cGUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEZpbGxMYXllcjo6aW5pdGlhbEZpbGxN
YXNrU291cmNlVHlwZSh0eXBlKSkpCkBAIC0zNTQsMTAgKzM1NCwxMCBAQCBib29sIEZpbGxMYXll
cjo6aGFzT3BhcXVlSW1hZ2UoY29uc3QgUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIpIGNvbnN0CiAg
ICAgaWYgKCFtX2ltYWdlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAobV9jb21w
b3NpdGUgPT0gQ29tcG9zaXRlQ2xlYXIgfHwgbV9jb21wb3NpdGUgPT0gQ29tcG9zaXRlQ29weSkK
KyAgICBpZiAoc3RhdGljX2Nhc3Q8Q29tcG9zaXRlT3BlcmF0b3I+KG1fY29tcG9zaXRlKSA9PSBD
b21wb3NpdGVPcGVyYXRvcjo6Q2xlYXIgfHwgc3RhdGljX2Nhc3Q8Q29tcG9zaXRlT3BlcmF0b3I+
KG1fY29tcG9zaXRlKSA9PSBDb21wb3NpdGVPcGVyYXRvcjo6Q29weSkKICAgICAgICAgcmV0dXJu
IHRydWU7CiAKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8QmxlbmRNb2RlPihtX2JsZW5kTW9kZSkg
PT0gQmxlbmRNb2RlOjpOb3JtYWwgJiYgbV9jb21wb3NpdGUgPT0gQ29tcG9zaXRlU291cmNlT3Zl
ciAmJiBtX2ltYWdlLT5rbm93blRvQmVPcGFxdWUoJnJlbmRlcmVyKTsKKyAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8QmxlbmRNb2RlPihtX2JsZW5kTW9kZSkgPT0gQmxlbmRNb2RlOjpOb3JtYWwgJiYg
c3RhdGljX2Nhc3Q8Q29tcG9zaXRlT3BlcmF0b3I+KG1fY29tcG9zaXRlKSA9PSBDb21wb3NpdGVP
cGVyYXRvcjo6U291cmNlT3ZlciAmJiBtX2ltYWdlLT5rbm93blRvQmVPcGFxdWUoJnJlbmRlcmVy
KTsKIH0KIAogYm9vbCBGaWxsTGF5ZXI6Omhhc1JlcGVhdFhZKCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuaAppbmRleCBiY2QyYzYxZjQzNDRhM2Q2YjRk
NjgyZGUyNDZkNjU5MmRjNzdlN2MxLi40MzE3NDJiZWJjMmE1YmE5N2JmNmRhOGFmYzUwMzg0N2M1
NWE3NzQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExh
eWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oCkBA
IC0xNjMsNyArMTYzLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBGaWxsQm94IGluaXRpYWxGaWxs
T3JpZ2luKEZpbGxMYXllclR5cGUgdHlwZSkgeyByZXR1cm4gdHlwZSA9PSBGaWxsTGF5ZXJUeXBl
OjpCYWNrZ3JvdW5kID8gRmlsbEJveDo6UGFkZGluZyA6IEZpbGxCb3g6OkJvcmRlcjsgfQogICAg
IHN0YXRpYyBGaWxsUmVwZWF0IGluaXRpYWxGaWxsUmVwZWF0WChGaWxsTGF5ZXJUeXBlKSB7IHJl
dHVybiBGaWxsUmVwZWF0OjpSZXBlYXQ7IH0KICAgICBzdGF0aWMgRmlsbFJlcGVhdCBpbml0aWFs
RmlsbFJlcGVhdFkoRmlsbExheWVyVHlwZSkgeyByZXR1cm4gRmlsbFJlcGVhdDo6UmVwZWF0OyB9
Ci0gICAgc3RhdGljIENvbXBvc2l0ZU9wZXJhdG9yIGluaXRpYWxGaWxsQ29tcG9zaXRlKEZpbGxM
YXllclR5cGUpIHsgcmV0dXJuIENvbXBvc2l0ZVNvdXJjZU92ZXI7IH0KKyAgICBzdGF0aWMgQ29t
cG9zaXRlT3BlcmF0b3IgaW5pdGlhbEZpbGxDb21wb3NpdGUoRmlsbExheWVyVHlwZSkgeyByZXR1
cm4gQ29tcG9zaXRlT3BlcmF0b3I6OlNvdXJjZU92ZXI7IH0KICAgICBzdGF0aWMgQmxlbmRNb2Rl
IGluaXRpYWxGaWxsQmxlbmRNb2RlKEZpbGxMYXllclR5cGUpIHsgcmV0dXJuIEJsZW5kTW9kZTo6
Tm9ybWFsOyB9CiAgICAgc3RhdGljIEZpbGxTaXplIGluaXRpYWxGaWxsU2l6ZShGaWxsTGF5ZXJU
eXBlKSB7IHJldHVybiB7IH07IH0KICAgICBzdGF0aWMgTGVuZ3RoIGluaXRpYWxGaWxsWFBvc2l0
aW9uKEZpbGxMYXllclR5cGUpIHsgcmV0dXJuIExlbmd0aCgwLjBmLCBQZXJjZW50KTsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAKaW5kZXggMWRmNDAwMDNmNGIzMWM1
NGIxODQxNzA2OGQwMzEzNDYwMjUyY2VjYy4uYzM1MzdlMzhjZDk4MDQ4ZmMwMjE3NWYyODIyMTRi
NTE1MzlhMDkzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0lt
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCkBA
IC0yNDcsNyArMjQ3LDcgQEAgTmF0aXZlSW1hZ2VQdHIgU1ZHSW1hZ2U6Om5hdGl2ZUltYWdlKGNv
bnN0IEdyYXBoaWNzQ29udGV4dCogdGFyZ2V0Q29udGV4dCkKICAgICBQbGF0Zm9ybUNvbnRleHRE
aXJlY3QyRCBwbGF0Zm9ybUNvbnRleHQobmF0aXZlSW1hZ2VUYXJnZXQuZ2V0KCkpOwogICAgIEdy
YXBoaWNzQ29udGV4dCBsb2NhbENvbnRleHQoJnBsYXRmb3JtQ29udGV4dCwgR3JhcGhpY3NDb250
ZXh0OjpCaXRtYXBSZW5kZXJpbmdDb250ZXh0VHlwZTo6R1BVTWVtb3J5KTsKIAotICAgIGRyYXco
bG9jYWxDb250ZXh0LCByZWN0KCksIHJlY3QoKSwgeyBDb21wb3NpdGVTb3VyY2VPdmVyLCBCbGVu
ZE1vZGU6Ok5vcm1hbCwgRGVjb2RpbmdNb2RlOjpTeW5jaHJvbm91cywgSW1hZ2VPcmllbnRhdGlv
bjo6Tm9uZSB9KTsKKyAgICBkcmF3KGxvY2FsQ29udGV4dCwgcmVjdCgpLCByZWN0KCksIHsgQ29t
cG9zaXRlT3BlcmF0b3I6OlNvdXJjZU92ZXIsIEJsZW5kTW9kZTo6Tm9ybWFsLCBEZWNvZGluZ01v
ZGU6OlN5bmNocm9ub3VzLCBJbWFnZU9yaWVudGF0aW9uOjpOb25lIH0pOwogCiAgICAgQ09NUHRy
PElEMkQxQml0bWFwPiBuYXRpdmVJbWFnZTsKICAgICBIUkVTVUxUIGhyID0gbmF0aXZlSW1hZ2VU
YXJnZXQtPkdldEJpdG1hcCgmbmF0aXZlSW1hZ2UpOwpAQCAtMzEzLDEwICszMTMsMTAgQEAgSW1h
Z2VEcmF3UmVzdWx0IFNWR0ltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29u
c3QgRmxvYXRSZWN0JiBkc3RSZWMKICAgICBjb250ZXh0LmNsaXAoZW5jbG9zaW5nSW50UmVjdChk
c3RSZWN0KSk7CiAKICAgICBmbG9hdCBhbHBoYSA9IGNvbnRleHQuYWxwaGEoKTsKLSAgICBib29s
IGNvbXBvc2l0aW5nUmVxdWlyZXNUcmFuc3BhcmVuY3lMYXllciA9IG9wdGlvbnMuY29tcG9zaXRl
T3BlcmF0b3IoKSAhPSBDb21wb3NpdGVTb3VyY2VPdmVyIHx8IG9wdGlvbnMuYmxlbmRNb2RlKCkg
IT0gQmxlbmRNb2RlOjpOb3JtYWwgfHwgYWxwaGEgPCAxOworICAgIGJvb2wgY29tcG9zaXRpbmdS
ZXF1aXJlc1RyYW5zcGFyZW5jeUxheWVyID0gb3B0aW9ucy5jb21wb3NpdGVPcGVyYXRvcigpICE9
IENvbXBvc2l0ZU9wZXJhdG9yOjpTb3VyY2VPdmVyIHx8IG9wdGlvbnMuYmxlbmRNb2RlKCkgIT0g
QmxlbmRNb2RlOjpOb3JtYWwgfHwgYWxwaGEgPCAxOwogICAgIGlmIChjb21wb3NpdGluZ1JlcXVp
cmVzVHJhbnNwYXJlbmN5TGF5ZXIpIHsKICAgICAgICAgY29udGV4dC5iZWdpblRyYW5zcGFyZW5j
eUxheWVyKGFscGhhKTsKLSAgICAgICAgY29udGV4dC5zZXRDb21wb3NpdGVPcGVyYXRpb24oQ29t
cG9zaXRlU291cmNlT3ZlciwgQmxlbmRNb2RlOjpOb3JtYWwpOworICAgICAgICBjb250ZXh0LnNl
dENvbXBvc2l0ZU9wZXJhdGlvbihDb21wb3NpdGVPcGVyYXRvcjo6U291cmNlT3ZlciwgQmxlbmRN
b2RlOjpOb3JtYWwpOwogICAgIH0KIAogICAgIEZsb2F0U2l6ZSBzY2FsZShkc3RSZWN0LnNpemUo
KSAvIHNyY1JlY3Quc2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2NhaXJvL0JhY2tpbmdTdG9yZUNhaXJvLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2Nh
aXJvL0JhY2tpbmdTdG9yZUNhaXJvLmNwcAppbmRleCA3YmRkMDNkM2M4ZWM4ZTA2NjJlNzdkMDE4
MjUwYjUwODhjMjZjZmJiLi4zMDM1ZjZmM2VlNjg3YzBhOTYxY2UyYjE2M2VhNTAxNjhmNmFhOGJl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9jYWlyby9CYWNraW5nU3RvcmVD
YWlyby5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvY2Fpcm8vQmFja2luZ1N0b3Jl
Q2Fpcm8uY3BwCkBAIC04Nyw4ICs4Nyw4IEBAIHZvaWQgQmFja2luZ1N0b3JlOjppbmNvcnBvcmF0
ZVVwZGF0ZShTaGFyZWFibGVCaXRtYXAqIGJpdG1hcCwgY29uc3QgVXBkYXRlSW5mbyYKICAgICBH
cmFwaGljc0NvbnRleHQgZ3JhcGhpY3NDb250ZXh0KEdyYXBoaWNzQ29udGV4dEltcGxDYWlybzo6
Y3JlYXRlRmFjdG9yeShjYWlyb0NvbnRleHQuZ2V0KCkpKTsKIAogICAgIC8vIFdoZW4gbV93ZWJQ
YWdlUHJveHkuZHJhd3NCYWNrZ3JvdW5kKCkgaXMgZmFsc2UsIGJpdG1hcCBjb250YWlucyB0cmFu
c3BhcmVudCBwYXJ0cyBhcyBhIGJhY2tncm91bmQgb2YgdGhlIHdlYnBhZ2UuCi0gICAgLy8gRm9y
IHN1Y2ggY2FzZSwgYml0bWFwIG11c3QgYmUgZHJhd24gdXNpbmcgQ29tcG9zaXRlQ29weSB0byBv
dmVyd3JpdGUgdGhlIGV4aXN0aW5nIHN1cmZhY2UuCi0gICAgZ3JhcGhpY3NDb250ZXh0LnNldENv
bXBvc2l0ZU9wZXJhdGlvbihXZWJDb3JlOjpDb21wb3NpdGVDb3B5KTsKKyAgICAvLyBGb3Igc3Vj
aCBjYXNlLCBiaXRtYXAgbXVzdCBiZSBkcmF3biB1c2luZyBDb21wb3NpdGVPcGVyYXRvcjo6Q29w
eSB0byBvdmVyd3JpdGUgdGhlIGV4aXN0aW5nIHN1cmZhY2UuCisgICAgZ3JhcGhpY3NDb250ZXh0
LnNldENvbXBvc2l0ZU9wZXJhdGlvbihXZWJDb3JlOjpDb21wb3NpdGVPcGVyYXRvcjo6Q29weSk7
CiAKICAgICBmb3IgKGNvbnN0IGF1dG8mIHVwZGF0ZVJlY3QgOiB1cGRhdGVJbmZvLnVwZGF0ZVJl
Y3RzKSB7CiAgICAgICAgIEludFJlY3Qgc3JjUmVjdCA9IHVwZGF0ZVJlY3Q7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5jcHAKaW5kZXggOWFiNTgz
NzMwYjg5ZGJkOTYwMWQ2NTIwZWY4ZjliMGJlMDA2ZGM1NC4uMTg0Y2Y2NzVlM2I0ZjlhOGNmZGZk
MjJjZjYyYTY0NTFmMjhmZDM2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblByb3h5LmNwcApAQCAtMjE1LDcgKzIxNSw3IEBAIHZvaWQgUGx1Z2luUHJv
eHk6OnBhaW50KEdyYXBoaWNzQ29udGV4dCYgZ3JhcGhpY3NDb250ZXh0LCBjb25zdCBJbnRSZWN0
JiBkaXJ0eVJlCiAgICAgICAgIGF1dG8gZ3JhcGhpY3NDb250ZXh0ID0gbV9iYWNraW5nU3RvcmUt
PmNyZWF0ZUdyYXBoaWNzQ29udGV4dCgpOwogICAgICAgICBpZiAoZ3JhcGhpY3NDb250ZXh0KSB7
CiAgICAgICAgICAgICBncmFwaGljc0NvbnRleHQtPmFwcGx5RGV2aWNlU2NhbGVGYWN0b3IoY29u
dGVudHNTY2FsZUZhY3RvcigpKTsKLSAgICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+c2V0Q29t
cG9zaXRlT3BlcmF0aW9uKENvbXBvc2l0ZUNvcHkpOworICAgICAgICAgICAgZ3JhcGhpY3NDb250
ZXh0LT5zZXRDb21wb3NpdGVPcGVyYXRpb24oQ29tcG9zaXRlT3BlcmF0b3I6OkNvcHkpOwogCiAg
ICAgICAgICAgICBtX3BsdWdpbkJhY2tpbmdTdG9yZS0+cGFpbnQoKmdyYXBoaWNzQ29udGV4dCwg
Y29udGVudHNTY2FsZUZhY3RvcigpLCBJbnRQb2ludCgpLCBwbHVnaW5Cb3VuZHMoKSk7CiAKQEAg
LTcyNyw3ICs3MjcsNyBAQCB2b2lkIFBsdWdpblByb3h5Ojp1cGRhdGUoY29uc3QgSW50UmVjdCYg
cGFpbnRlZFJlY3QpCiAgICAgICAgIGF1dG8gZ3JhcGhpY3NDb250ZXh0ID0gbV9iYWNraW5nU3Rv
cmUtPmNyZWF0ZUdyYXBoaWNzQ29udGV4dCgpOwogICAgICAgICBpZiAoZ3JhcGhpY3NDb250ZXh0
KSB7CiAgICAgICAgICAgICBncmFwaGljc0NvbnRleHQtPmFwcGx5RGV2aWNlU2NhbGVGYWN0b3Io
Y29udGVudHNTY2FsZUZhY3RvcigpKTsKLSAgICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+c2V0
Q29tcG9zaXRlT3BlcmF0aW9uKENvbXBvc2l0ZUNvcHkpOworICAgICAgICAgICAgZ3JhcGhpY3ND
b250ZXh0LT5zZXRDb21wb3NpdGVPcGVyYXRpb24oQ29tcG9zaXRlT3BlcmF0b3I6OkNvcHkpOwog
ICAgICAgICAgICAgbV9wbHVnaW5CYWNraW5nU3RvcmUtPnBhaW50KCpncmFwaGljc0NvbnRleHQs
IGNvbnRlbnRzU2NhbGVGYWN0b3IoKSwgcGFpbnRlZFJlY3QubG9jYXRpb24oKSwgcGFpbnRlZFJl
Y3QpOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwCmluZGV4IGVkMzZhOGExMTY2ZDc2YmJlNGM0OGY3
ZThjN2E2MzMwYjUxYjBhZTYuLmM5NzAxN2E4OGJmZjhlZDc0OTM2Y2ZmMThkN2Y3NTk4NDBiZDQ2
YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250
cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29u
dHJvbGxlci5jcHAKQEAgLTUzNyw3ICs1MzcsNyBAQCB2b2lkIEZpbmRDb250cm9sbGVyOjpkcmF3
UmVjdChQYWdlT3ZlcmxheSYsIEdyYXBoaWNzQ29udGV4dCYgZ3JhcGhpY3NDb250ZXh0LCBjbwog
ICAgIGdyYXBoaWNzQ29udGV4dC5jbGVhclNoYWRvdygpOwogCiAgICAgLy8gQ2xlYXIgb3V0IHRo
ZSBob2xlcy4KLSAgICBncmFwaGljc0NvbnRleHQuc2V0Q29tcG9zaXRlT3BlcmF0aW9uKENvbXBv
c2l0ZUNsZWFyKTsKKyAgICBncmFwaGljc0NvbnRleHQuc2V0Q29tcG9zaXRlT3BlcmF0aW9uKENv
bXBvc2l0ZU9wZXJhdG9yOjpDbGVhcik7CiAgICAgZm9yIChhdXRvJiBwYXRoIDogd2hpdGVGcmFt
ZVBhdGhzKQogICAgICAgICBncmFwaGljc0NvbnRleHQuZmlsbFBhdGgocGF0aCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0Z1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlci5j
cHAKaW5kZXggOWIxNDY3NDdmZjc3YmMwYWI1ZTY1MDRhNzkxZDVhYzFjZmYwZDhkYy4uMDczM2Fl
NDBmOTRjZGY1NGQzMTNjYWYxNGZjMjU2MzVhZDRkZjU3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlci5jcHAKQEAgLTUwMSw3
ICs1MDEsNyBAQCB2b2lkIEZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXI6OmRyYXcoKQogICAgIElu
dFJlY3QgaW5uZXJSZWN0KGJvcmRlclRoaWNrbmVzcywgYm9yZGVyVGhpY2tuZXNzLCB3aW5kb3dX
aWR0aCAtIGJvcmRlclRoaWNrbmVzcyAqIDIsIHdpbmRvd0hlaWdodCAtIGJvcmRlclRoaWNrbmVz
cyAqIDIpOwogCiAgICAgY29udGV4dC5maWxsUm91bmRlZFJlY3QoRmxvYXRSb3VuZGVkUmVjdChv
dXRlclJlY3QsIG91dGVyUmFkaXVzLCBvdXRlclJhZGl1cywgb3V0ZXJSYWRpdXMsIG91dGVyUmFk
aXVzKSwgQ29sb3IoYm9yZGVyQ29sb3IpKTsKLSAgICBjb250ZXh0LnNldENvbXBvc2l0ZU9wZXJh
dGlvbihDb21wb3NpdGVDb3B5KTsKKyAgICBjb250ZXh0LnNldENvbXBvc2l0ZU9wZXJhdGlvbihD
b21wb3NpdGVPcGVyYXRvcjo6Q29weSk7CiAgICAgY29udGV4dC5maWxsUm91bmRlZFJlY3QoRmxv
YXRSb3VuZGVkUmVjdChpbm5lclJlY3QsIGlubmVyUmFkaXVzLCBpbm5lclJhZGl1cywgaW5uZXJS
YWRpdXMsIGlubmVyUmFkaXVzKSwgQ29sb3IoYmFja2dyb3VuZENvbG9yKSk7CiAKICAgICAvLyBE
cmF3IHRoZSB3aWRnZXRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJW
aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCmluZGV4IDIzYmY0
YjQ1MmJkMzgxOWFhYmFjN2M4ZjViYTYwODIyM2Y4YzUzMzYuLjM2ZGQ1ODllMmQwNDEzMDU0ZjRm
YzY0MmVkMTA0MjEzYjE2Njg2ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCkBA
IC0xMjY4LDcgKzEyNjgsNyBAQCB2b2lkIFdlYlZpZXc6OnBhaW50V2l0aERpcmVjdDJEKCkKICAg
ICAgICAgICAgIGdjLmNsaXAobG9naWNhbERpcnR5UmVjdCk7CiAgICAgICAgICAgICBmcmFtZVZp
ZXctPnBhaW50KGdjLCBsb2dpY2FsRGlydHlSZWN0KTsKICAgICAgICAgICAgIGlmIChtX3Nob3Vs
ZEludmVydENvbG9ycykKLSAgICAgICAgICAgICAgICBnYy5maWxsUmVjdChsb2dpY2FsRGlydHlS
ZWN0LCBDb2xvcjo6d2hpdGUsIENvbXBvc2l0ZURpZmZlcmVuY2UpOworICAgICAgICAgICAgICAg
IGdjLmZpbGxSZWN0KGxvZ2ljYWxEaXJ0eVJlY3QsIENvbG9yOjp3aGl0ZSwgQ29tcG9zaXRlT3Bl
cmF0b3I6OkRpZmZlcmVuY2UpOwogICAgICAgICAgICAgZ2MucmVzdG9yZSgpOwogICAgICAgICB9
CiAgICAgfQpAQCAtMTQyMCw3ICsxNDIwLDcgQEAgdm9pZCBXZWJWaWV3OjpwYWludEludG9CYWNr
aW5nU3RvcmUoRnJhbWVWaWV3KiBmcmFtZVZpZXcsIEhEQyBiaXRtYXBEQywgY29uc3QgSW4KICAg
ICAgICAgZ2MuY2xpcChsb2dpY2FsRGlydHlSZWN0KTsKICAgICAgICAgZnJhbWVWaWV3LT5wYWlu
dChnYywgbG9naWNhbERpcnR5UmVjdCk7CiAgICAgICAgIGlmIChtX3Nob3VsZEludmVydENvbG9y
cykKLSAgICAgICAgICAgIGdjLmZpbGxSZWN0KGxvZ2ljYWxEaXJ0eVJlY3QsIENvbG9yOjp3aGl0
ZSwgQ29tcG9zaXRlRGlmZmVyZW5jZSk7CisgICAgICAgICAgICBnYy5maWxsUmVjdChsb2dpY2Fs
RGlydHlSZWN0LCBDb2xvcjo6d2hpdGUsIENvbXBvc2l0ZU9wZXJhdG9yOjpEaWZmZXJlbmNlKTsK
ICAgICAgICAgZ2MucmVzdG9yZSgpOwogICAgIH0KICAgICBnYy5yZXN0b3JlKCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>