<?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>207502</bug_id>
          
          <creation_ts>2020-02-10 13:36:15 -0800</creation_ts>
          <short_desc>Rename VideoFullscreenLayerManager to VideoLayerManager</short_desc>
          <delta_ts>2020-02-12 13:48:06 -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>Media</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>
          <dependson>207573</dependson>
          <blocked>206132</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Peng Liu">peng.liu6</reporter>
          <assigned_to name="Peng Liu">peng.liu6</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1617073</commentid>
    <comment_count>0</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-02-10 13:36:15 -0800</bug_when>
    <thetext>Rename VideoFullscreenLayerManager to VideoLayerManager</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617100</commentid>
    <comment_count>1</comment_count>
      <attachid>390294</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-02-10 14:07:43 -0800</bug_when>
    <thetext>Created attachment 390294
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617143</commentid>
    <comment_count>2</comment_count>
      <attachid>390302</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-02-10 15:33:50 -0800</bug_when>
    <thetext>Created attachment 390302
A clearer patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617144</commentid>
    <comment_count>3</comment_count>
      <attachid>390302</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-02-10 15:37:36 -0800</bug_when>
    <thetext>Comment on attachment 390302
A clearer patch

View in context: https://bugs.webkit.org/attachment.cgi?id=390302&amp;action=review

&gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:-846
&gt; -		2DDE1D081F574D0E00D1A365 /* JSVRStageParameters.h in Headers */ = {isa = PBXBuildFile; fileRef = 2DDE1CF61F574BFF00D1A365 /* JSVRStageParameters.h */; };

Those are cleanup for https://trac.webkit.org/changeset/255241/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617343</commentid>
    <comment_count>4</comment_count>
      <attachid>390302</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-02-11 05:29:57 -0800</bug_when>
    <thetext>Comment on attachment 390302
A clearer patch

View in context: https://bugs.webkit.org/attachment.cgi?id=390302&amp;action=review

&gt;&gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:-846
&gt;&gt; -		2DDE1D081F574D0E00D1A365 /* JSVRStageParameters.h in Headers */ = {isa = PBXBuildFile; fileRef = 2DDE1CF61F574BFF00D1A365 /* JSVRStageParameters.h */; };
&gt; 
&gt; Those are cleanup for https://trac.webkit.org/changeset/255241/webkit

Could we try to not include these changes, or as separate unreviewed changes maybe. Ditto for below.

&gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:328
&gt; +    std::unique_ptr&lt;VideoLayerManagerObjC&gt; m_videoLayerManager;

We could use UniqueRef.

&gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:245
&gt; +    std::unique_ptr&lt;VideoLayerManagerObjC&gt; m_videoLayerManager;

Ditto here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617700</commentid>
    <comment_count>5</comment_count>
      <attachid>390302</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-02-11 15:42:55 -0800</bug_when>
    <thetext>Comment on attachment 390302
A clearer patch

View in context: https://bugs.webkit.org/attachment.cgi?id=390302&amp;action=review

&gt;&gt;&gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:-846
&gt;&gt;&gt; -		2DDE1D081F574D0E00D1A365 /* JSVRStageParameters.h in Headers */ = {isa = PBXBuildFile; fileRef = 2DDE1CF61F574BFF00D1A365 /* JSVRStageParameters.h */; };
&gt;&gt; 
&gt;&gt; Those are cleanup for https://trac.webkit.org/changeset/255241/webkit
&gt; 
&gt; Could we try to not include these changes, or as separate unreviewed changes maybe. Ditto for below.

Yes. It is done in webkit.org/b/207573.

&gt;&gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:328
&gt;&gt; +    std::unique_ptr&lt;VideoLayerManagerObjC&gt; m_videoLayerManager;
&gt; 
&gt; We could use UniqueRef.

Right. Will do that in webkit.org/b/207592.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617760</commentid>
    <comment_count>6</comment_count>
      <attachid>390461</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-02-11 16:34:58 -0800</bug_when>
    <thetext>Created attachment 390461
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617863</commentid>
    <comment_count>7</comment_count>
      <attachid>390461</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-11 21:11:26 -0800</bug_when>
    <thetext>Comment on attachment 390461
patch for landing

Clearing flags on attachment: 390461

Committed r256424: &lt;https://trac.webkit.org/changeset/256424&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618047</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-02-12 09:32:26 -0800</bug_when>
    <thetext>&lt;rdar://problem/59389344&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390294</attachid>
            <date>2020-02-10 14:07:43 -0800</date>
            <delta_ts>2020-02-10 15:33:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207502-20200210140742.patch</filename>
            <type>text/plain</type>
            <size>72050</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2MTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGY0NTc3YzA0MTUwZDBm
M2E3NDIxNDFhNzdkNjRhZDkxZDcxNDY4MS4uNWQzM2Q3MTZkNDFjYzNkNGMxMTNhZGQ4NjFmYzMw
YmQ3NzQyNDA5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDIwLTAyLTEwICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIFZpZGVvRnVsbHNj
cmVlbkxheWVyTWFuYWdlciB0byBWaWRlb0xheWVyTWFuYWdlcgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA3NTAyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIC0tIG5vIG5ldyBvciBj
aGFuZ2VkIGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9WaWRlb0xheWVyTWFuYWdlci5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLmguCisg
ICAgICAgIChXZWJDb3JlOjpWaWRlb0xheWVyTWFuYWdlcjo6flZpZGVvTGF5ZXJNYW5hZ2VyKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZQbGF5ZXJMYXllcik6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpkZXN0
cm95VmlkZW9MYXllcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjpwbGF0Zm9ybUxheWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnVwZGF0ZVZpZGVvRnVsbHNjcmVlbklu
bGluZUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakM6OnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldFZpZGVvRnVsbHNjcmVlbkZyYW1l
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6
OnVwZGF0ZVZpZGVvTGF5ZXJHcmF2aXR5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnJlcXVpcmVzVGV4dFRyYWNrUmVwcmVzZW50YXRpb24g
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6c3luY1RleHRUcmFja0JvdW5kcyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRUZXh0VHJhY2tSZXByZXNlbnRhdGlvbik6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1t
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
OjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpwbGF0Zm9ybUxheWVyIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQzo6ZW5zdXJlTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDOjpkZXN0cm95TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXll
cik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akM6OnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRh
dGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakM6OnN5bmNUZXh0VHJhY2tCb3VuZHMpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzZXRUZXh0VHJhY2tSZXByZXNlbnRh
dGlvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjplbnN1cmVM
YXllcnMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDOjpkZXN0cm95TGF5ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGxhdGZvcm1MYXllciBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNldFZpZGVvRnVs
bHNjcmVlbkxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oOiBS
ZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQy5oLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbTog
UmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL1ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakMubW0uCisgICAgICAgIChXZWJD
b3JlOjpWaWRlb0xheWVyTWFuYWdlck9iakM6OlZpZGVvTGF5ZXJNYW5hZ2VyT2JqQyk6CisgICAg
ICAgIChXZWJDb3JlOjpWaWRlb0xheWVyTWFuYWdlck9iakM6OnNldFZpZGVvTGF5ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6VmlkZW9MYXllck1hbmFnZXJPYmpDOjp1cGRhdGVWaWRlb0Z1bGxzY3Jl
ZW5JbmxpbmVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0xheWVyTWFuYWdlck9iakM6
OnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvTGF5ZXJN
YW5hZ2VyT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6
VmlkZW9MYXllck1hbmFnZXJPYmpDOjpkaWREZXN0cm95VmlkZW9MYXllcik6CisgICAgICAgIChX
ZWJDb3JlOjpWaWRlb0xheWVyTWFuYWdlck9iakM6OnJlcXVpcmVzVGV4dFRyYWNrUmVwcmVzZW50
YXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9MYXllck1hbmFnZXJPYmpDOjpz
eW5jVGV4dFRyYWNrQm91bmRzKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvTGF5ZXJNYW5hZ2Vy
T2JqQzo6c2V0VGV4dFRyYWNrUmVwcmVzZW50YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Vmlk
ZW9MYXllck1hbmFnZXJPYmpDOjpsb2dDaGFubmVsIGNvbnN0KToKKwogMjAyMC0wMi0xMCAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmVh
Y2hhYmxlIGNvZGUgaGl0IGluIFdlYkNvcmU6OlNoYXBlOjpjcmVhdGVTaGFwZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXNDb2NvYS50eHQKaW5kZXggMjU3YzExMzNmZjkxMDQ0N2I3YzE0NDFjNGVhM2ZjYWY2NmY2NWFj
OC4uYWIzYTU3OTQ5MGM5M2FhNTIzMGE2NGNlOGIzODk2YzliOTEwZDI4NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzQ29jb2EudHh0CkBAIC0yNjIsNyArMjYyLDcgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tIEBuby0K
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5t
bSBAbm8tdW5pZnkKIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU291
cmNlUHJpdmF0ZUFWRk9iakMubW0gQG5vLXVuaWZ5CiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbSBAbm8tdW5pZnkKLXBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdl
ck9iakMubW0gQG5vLXVuaWZ5CitwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9W
aWRlb0xheWVyTWFuYWdlck9iakMubW0gQG5vLXVuaWZ5CiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuY3BwIEBuby11bmlmeQogcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9UcmFja1ByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakMubW0gQG5vLXVuaWZ5CiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9XZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIubW0gQG5vLXVuaWZ5CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMmE1N2M0YzFk
OTZlZDY0ZGQxODBkZmViYTk2YTdmMjkyYWQyNzFkNC4uZWQ0OGYyNDExMGVhMmVjYTlmYWM3ZTZh
NDQ5ZjkxNGE1M2IwZmVkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTMxLDcgKzEzMSw2IEBACiAJCTA3NTM4NjAzMTQ0ODlF
OTgwMEI3ODQ1MiAvKiBDYWNoZWRUZXh0VHJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NTM4NjAxMTQ0ODlFOTgwMEI3ODQ1MiAvKiBDYWNoZWRU
ZXh0VHJhY2suaCAqLzsgfTsKIAkJMDc1NEE1RUEyMTVFQTNCODAwMkQzQTk5IC8qIFJlYWx0aW1l
TWVkaWFTb3VyY2VGYWN0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwNzU0QTVFODIxNUVBM0I3MDAyRDNBOTkgLyogUmVhbHRpbWVNZWRpYVNvdXJj
ZUZhY3RvcnkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkwNzU3QjEzRTIxNEFFNzk5MDA3OTRCMEQgLyogVmlkZW9QcmVzZXQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NTdCMTNDMjE0QUU3OTcwMDc5
NEIwRCAvKiBWaWRlb1ByZXNldC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07Ci0JCTA3NUJBODQ5MjA2MThBQTUwMEZDQjRBRCAvKiBWaWRlb0Z1bGxzY3Jl
ZW5MYXllck1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDA3NUJBODQ3MjA2MThBQTUwMEZDQjRBRCAvKiBWaWRlb0Z1bGxzY3JlZW5MYXllck1h
bmFnZXIuaCAqLzsgfTsKIAkJMDc2MzhBOTkxODg0NDg3MjAwRTE1QTFCIC8qIE1lZGlhU2Vzc2lv
bk1hbmFnZXJJT1MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA3NjM4QTk3MTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRpYVNlc3Npb25NYW5hZ2VySU9TLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDc2MzhB
OUExODg0NDg3MjAwRTE1QTFCIC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzYzOEE5ODE4ODQ0ODcyMDBF
MTVBMUIgLyogTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbSAqLzsgfTsKIAkJMDc2OTcwODYxNDYz
QUQ4NzAwRjUwMkNGIC8qIFRleHRUcmFja0xpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2OTcwODQxNDYzQUQ4NzAwRjUwMkNGIC8qIFRleHRU
cmFja0xpc3QuY3BwICovOyB9OwpAQCAtNjM0LDYgKzYzMyw3IEBACiAJCTFEMkY4RTA0MjM0NDc1
MTYwMDk5M0I2OCAvKiBFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURFRjA2Q0EyMzNDM0QwQjAwRUUyMjhE
IC8qIEVudGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUQyRjhFMDUyMzQ0NzUxRDAwOTkzQjY4IC8qIEhU
TUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREVGMDZDQzIzM0MzRDIwMDBFRTIyOEQgLyogSFRNTFZp
ZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkxRDJGOEUwNjIzNDQ3NTIzMDA5OTNCNjggLyogUGljdHVy
ZUluUGljdHVyZVdpbmRvdy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMURFRjA2Q0QyMzNDM0QyQTAwRUUyMjhEIC8qIFBpY3R1cmVJblBpY3R1cmVXaW5k
b3cuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkx
RDM5MkYyRDIzRjIwQTcwMDBFMDRCMkQgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQzOTJGMjgyM0YyMDlC
NDAwRTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLzsgfTsKIAkJMUQ5RjBGQzEy
MTIyMDI5QjAwNUQ4RkQ0IC8qIFNoYXJlRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMURDNTU0MDAyMTFCQThDODAwNEI3ODBFIC8qIFNoYXJlRGF0
YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFE
QkMxQjU2MjM0N0IzRDIwMEI5MDFBRiAvKiBQaWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEQkMxQjU1MjM0N0Iz
RDIwMEI5MDFBRiAvKiBQaWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxRjM2RUE5QzFFMjFCQTE3MDA2MjFF
MjUgLyogV2ViQmFja2dyb3VuZFRhc2tDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRjM2RUE5QTFFMjFCQTE3MDA2MjFFMjUgLyogV2Vi
QmFja2dyb3VuZFRhc2tDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTgzMywxNyArODMzLDYgQEAKIAkJMkRBQ0I5RTkyMzc1NUQw
MDAwQjRDMTg1IC8qIEdyYXBoaWNzQ29udGV4dEltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMDAxMjNGMUZBRDg3RDYwMDUzMUQ3NiAvKiBHcmFw
aGljc0NvbnRleHRJbXBsLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJMkRBRjM0M0QxRUE3RTBGMTAwMzgyQ0QzIC8qIENvbnN0YW50UHJvcGVydHlN
YXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEQUYz
NDNCMUVBN0UwRjEwMDM4MkNEMyAvKiBDb25zdGFudFByb3BlcnR5TWFwLmggKi87IH07CiAJCTJE
RDVBNzI3MUVCRUU0N0QwMDlCQTU5NyAvKiBDb21wb3NpdGlvblVuZGVybGluZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRENUE3MjYxRUJFRTQ3RDAw
OUJBNTk3IC8qIENvbXBvc2l0aW9uVW5kZXJsaW5lLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMkRERTFDRTMxRjU3NEFFNTAwRDFBMzY1IC8qIEpT
VlJGaWVsZE9mVmlldy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkRERTFDRTAxRjU3NEFEMTAwRDFBMzY1IC8qIEpTVlJGaWVsZE9mVmlldy5oICovOyB9
OwotCQkyRERFMUNFNDFGNTc0QUU5MDBEMUEzNjUgLyogSlNWUkRpc3BsYXkuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEREUxQ0RFMUY1NzRBQUIwMEQx
QTM2NSAvKiBKU1ZSRGlzcGxheS5oICovOyB9OwotCQkyRERFMUNGODFGNTc0QzM5MDBEMUEzNjUg
LyogSlNWUkRpc3BsYXlDYXBhYmlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDJEREUxQ0U2MUY1NzRCRkYwMEQxQTM2NSAvKiBKU1ZSRGlzcGxh
eUNhcGFiaWxpdGllcy5oICovOyB9OwotCQkyRERFMUNGQTFGNTc0QzNFMDBEMUEzNjUgLyogSlNW
UkRpc3BsYXlFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkRERTFDRTgxRjU3NEJGRjAwRDFBMzY1IC8qIEpTVlJEaXNwbGF5RXZlbnQuaCAqLzsg
fTsKLQkJMkRERTFDRkMxRjU3NENFRTAwRDFBMzY1IC8qIEpTVlJEaXNwbGF5RXZlbnRSZWFzb24u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEREUxQ0VB
MUY1NzRCRkYwMEQxQTM2NSAvKiBKU1ZSRGlzcGxheUV2ZW50UmVhc29uLmggKi87IH07Ci0JCTJE
REUxQ0ZFMUY1NzRDRjMwMEQxQTM2NSAvKiBKU1ZSRXllLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRERFMUNFQzFGNTc0QkZGMDBEMUEzNjUgLyogSlNW
UkV5ZS5oICovOyB9OwotCQkyRERFMUQwMDFGNTc0Q0Y3MDBEMUEzNjUgLyogSlNWUkV5ZVBhcmFt
ZXRlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJE
REUxQ0VFMUY1NzRCRkYwMEQxQTM2NSAvKiBKU1ZSRXllUGFyYW1ldGVycy5oICovOyB9OwotCQky
RERFMUQwMjFGNTc0RDAwMDBEMUEzNjUgLyogSlNWUkZyYW1lRGF0YS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRERTFDRjAxRjU3NEJGRjAwRDFBMzY1
IC8qIEpTVlJGcmFtZURhdGEuaCAqLzsgfTsKLQkJMkRERTFEMDQxRjU3NEQwNTAwRDFBMzY1IC8q
IEpTVlJMYXllckluaXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDJEREUxQ0YyMUY1NzRCRkYwMEQxQTM2NSAvKiBKU1ZSTGF5ZXJJbml0LmggKi87IH07
Ci0JCTJEREUxRDA2MUY1NzREMEEwMEQxQTM2NSAvKiBKU1ZSUG9zZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRERTFDRjQxRjU3NEJGRjAwRDFBMzY1
IC8qIEpTVlJQb3NlLmggKi87IH07Ci0JCTJEREUxRDA4MUY1NzREMEUwMEQxQTM2NSAvKiBKU1ZS
U3RhZ2VQYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyRERFMUNGNjFGNTc0QkZGMDBEMUEzNjUgLyogSlNWUlN0YWdlUGFyYW1ldGVycy5o
ICovOyB9OwogCQkyREU3MDAyMzE5MkZFODJBMDBCMDk3NUMgLyogRGlzcGxheVJlZnJlc2hNb25p
dG9yTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
REU3MDAyMjE5MkZFODJBMDBCMDk3NUMgLyogRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmggKi87
IH07CiAJCTJERjUxMkNFMUQ4NzNFNDcwMDFENjc4MCAvKiBSZXBsYWNlUmFuZ2VXaXRoVGV4dENv
bW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJE
RjUxMkNDMUQ4NzNFNDcwMDFENjc4MCAvKiBSZXBsYWNlUmFuZ2VXaXRoVGV4dENvbW1hbmQuaCAq
LzsgfTsKIAkJMkRGQTQ4OEYxREI1NDFEMDAwMzYyQjk5IC8qIEJ1ZmZlclNvdXJjZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRGQTQ4OEUxREI1NDFD
MjAwMzYyQjk5IC8qIEJ1ZmZlclNvdXJjZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CkBAIC0xNTk4LDcgKzE1ODcsNiBAQAogCQk1MkIwRDRCRTFDNTdG
RDFFMDA3N0NFNTMgLyogUGxhdGZvcm1WaWV3LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MkIwRDRCRDFDNTdGRDFFMDA3N0NFNTMgLyogUGxhdGZvcm1W
aWV3LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NTJCMEQ0QzAxQzU3RkQ2NjAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkIwRDRC
RjFDNTdGRDY2MDA3N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MkIwRDRDMjFD
NTdGRjkxMDA3N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkIwRDRDMTFDNTdGRjkxMDA3
N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJNTJENUExOEYxQzU0NTkyMzAwREUzNEEz
IC8qIFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakMubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkQ1QTE4RDFDNTQ1OTAzMDBERTM0QTMgLyog
VmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLzsgfTsKIAkJNTJENUExQTcxQzU3
NDg5RDAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkQ1QTFBNDFDNTc0ODg5MDBERTM0QTMgLyog
VmlkZW9GdWxsc2NyZWVuTW9kZWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk1MkQ1QTFBODFDNTc0OEEzMDBERTM0QTMgLyogVmlkZW9GdWxsc2Ny
ZWVuTW9kZWxWaWRlb0VsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUyRDVBMUE1MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5N
b2RlbFZpZGVvRWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTUyRTJDQUZDMTlGRjAyMDcwMDFFRUI0RiAvKiBNZWRpYVByb2R1Y2VyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkUyQ0FGQjE5
RkYwMjA3MDAxRUVCNEYgLyogTWVkaWFQcm9kdWNlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0yMTQxLDggKzIxMjksNiBAQAogCQk3MUUyQzQy
NjIxQzkzNTI4MDAyNEY4QzggLyogQW5pbWF0aW9uRWZmZWN0UGhhc2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcxRTJDNDI0MjFDOTM1MUQwMDI0RjhD
OCAvKiBBbmltYXRpb25FZmZlY3RQaGFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTcxRUFEQ0Q4MjIwODdFNzIwMDY1QTQ1RiAvKiBQb2ludGVy
SUQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcxRUFE
Q0Q2MjIwODdFNkQwMDY1QTQ1RiAvKiBQb2ludGVySUQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3MUVGQ0VEQzIwMkIzOEE5MDBEN0M0MTEgLyog
QW5pbWF0aW9uRWZmZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3MUVGQ0VENzIwMkIzODhEMDBEN0M0MTEgLyogQW5pbWF0aW9uRWZmZWN0LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJNzIxNDQzMzEy
MjNFQzg1NDAwRjEyRkY3IC8qIChudWxsKSBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk3MjE0
NDMzMjIyM0VDODVGMDBGMTJGRjcgLyogKG51bGwpIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTcyMTQ0MzMzMjIzRUM4QjAwMEYxMkZGNyAvKiBTVkdQcm9wZXJ0eS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTVFRTUzNjMyMjNCMkEyNDAwRkJBOTQ0
IC8qIFNWR1Byb3BlcnR5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJNzIxNDQzMzQyMjNFQzkxNjAwRjEyRkY3IC8qIFNWR1Byb3BlcnR5T3duZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1RUU1MzYw
MjIzQjJBMjEwMEZCQTk0NCAvKiBTVkdQcm9wZXJ0eU93bmVyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzIyODNGMEUyMzBCMjY4QzAwRjVEODI4
IC8qIEltYWdlUGFpbnRpbmdPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3MkMxOEEzRjIzMEIwNEI3MDA2ODQ3QzcgLyogSW1hZ2VQYWludGlu
Z09wdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwpAQCAtMjU4Miw3ICsyNTY4LDYgQEAKIAkJOEFGNEU1NUMxMURDNUE2MzAwMEVEM0RFIC8qIFBl
cmZvcm1hbmNlVGltaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4QUY0RTU1OTExREM1QTYzMDAwRUQzREUgLyogUGVyZm9ybWFuY2VUaW1pbmcuaCAq
LzsgfTsKIAkJOEJEMzdBNjgyMDFCQjM5QzAwMTE3MzRBIC8qIFJlYWRhYmxlU3RyZWFtQ2h1bmsu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhCRDM3QTY3
MjAxQkIzOUMwMDExNzM0QSAvKiBSZWFkYWJsZVN0cmVhbUNodW5rLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOEU0Qzk2REQxQUQ0NDgzNTAwMzY1
QTUwIC8qIEpTRmV0Y2hSZXNwb25zZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOEU0Qzk2RDkxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hSZXNwb25z
ZS5oICovOyB9OwotCQk4RTYyMEU4MTIwRUU2MDI0MDA3QkM1RUYgLyogVlJQbGF0Zm9ybURpc3Bs
YXlDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDhFNjIwRTgwMjBFRTVGRkMwMDdCQzVFRiAvKiBWUlBsYXRmb3JtRGlzcGxheUNsaWVudC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCThFQzZDOTYz
MjAxQTI1MTYwMEZCRkE1MyAvKiBHYXBMZW5ndGguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhFQzZDOTYxMjAxQTI1MDEwMEZCRkE1MyAvKiBHYXBMZW5n
dGguaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4
RjY3NTYxQjEyODhCMTdCMDA0N0FDQTMgLyogRXZlbnRRdWV1ZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEY2NzU2MTkxMjg4QjE3QjAwNDdBQ0EzIC8q
IEV2ZW50UXVldWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk5MDAxNzc0MTEyRTAzNDc4MDA2NDg0NjIgLyogT0VTU3RhbmRhcmREZXJpdmF0aXZl
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTAwMTc3
M0UxMkUwMzQ3ODAwNjQ4NDYyIC8qIE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaCAqLzsgfTsKQEAg
LTU0ODQsNyArNTQ2OSw2IEBACiAJCTA3NTRBNUU4MjE1RUEzQjcwMDJEM0E5OSAvKiBSZWFsdGlt
ZU1lZGlhU291cmNlRmFjdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
ZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwNzU0QTVFQjIxNUVBREYzMDAyRDNBOTkgLyogUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3Rvcnku
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVhbHRpbWVNZWRpYVNv
dXJjZUZhY3RvcnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzU3QjEzQzIx
NEFFNzk3MDA3OTRCMEQgLyogVmlkZW9QcmVzZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gVmlkZW9QcmVzZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDc1
QkE4NDcyMDYxOEFBNTAwRkNCNEFEIC8qIFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFn
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc2MzhBOTcxODg0NDg3MjAwRTE1
QTFCIC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJJT1MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwNzYzOEE5ODE4ODQ0ODcyMDBFMTVBMUIgLyogTWVkaWFTZXNzaW9uTWFuYWdlcklP
Uy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhU2Vzc2lv
bk1hbmFnZXJJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Njk3MDg0MTQ2
M0FEODcwMEY1MDJDRiAvKiBUZXh0VHJhY2tMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFRleHRUcmFja0xpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtNjUyNyw2ICs2NTExLDkgQEAKIAkJMUQwMDI2QTgyMzc0RjlEOTAwQ0E2Q0RGIC8q
IEpTRW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxRDAwMjZBOTIzNzRGOUQ5MDBDQTZDREYgLyogSlNFbnRlclBpY3R1cmVJ
blBpY3R1cmVFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U0VudGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMUQyQzgyQjYyMzZBM0Y2QTAwNTVENkM1IC8qIFBpY3R1cmVJblBpY3R1cmVTdXBwb3J0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFBpY3R1cmVJblBpY3R1cmVTdXBwb3J0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTFEMzkyRjI4MjNGMjA5QjQwMEUwNEIyRCAvKiBWaWRlb0xheWVy
TWFuYWdlck9iakMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBW
aWRlb0xheWVyTWFuYWdlck9iakMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFE
MzkyRjJBMjNGMjA5QjUwMEUwNEIyRCAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9MYXllck1hbmFnZXJPYmpDLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFEMzkyRjJCMjNGMjA5RDgwMEUwNEIyRCAvKiBWaWRl
b0xheWVyTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0xh
eWVyTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxREJDMUI1NTIzNDdC
M0QyMDBCOTAxQUYgLyogUGljdHVyZUluUGljdHVyZU9ic2VydmVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFBpY3R1cmVJblBpY3R1cmVPYnNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkxREM1NTNGRDIxMUJBMTJBMDA0Qjc4MEUgLyogTmF2aWdhdG9yU2hhcmUuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IE5hdmlnYXRvclNoYXJlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMURDNTUzRkYyMTFCQTg0MTAwNEI3ODBFIC8qIFNoYXJlRGF0YS5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gU2hhcmVEYXRhLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTg0NzAsOCArODQ1Nyw2IEBACiAJCTUyQjBENEJGMUM1N0ZENjYwMDc3Q0U1MyAvKiBW
aWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1MkIwRDRDMTFDNTdGRjkxMDA3N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZU1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MkNC
MTFEQjIyRkREQjJFMDA5RjBBNjQgLyogV0hMU0xEZWZhdWx0RGVsZXRlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdITFNMRGVmYXVsdERlbGV0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1
MkQ1QTE4RDFDNTQ1OTAzMDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2Jq
Qy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFZpZGVvRnVsbHNj
cmVlbkxheWVyTWFuYWdlck9iakMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUy
RDVBMThFMUM1NDU5MDMwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpD
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvRnVsbHNjcmVlbkxheWVy
TWFuYWdlck9iakMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJENUExQTQxQzU3
NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFZpZGVvRnVsbHNjcmVlbk1vZGVsLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTUyRDVBMUE1MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5N
b2RlbFZpZGVvRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRl
b0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1MkQ1QTFBNjFDNTc0ODg5MDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRl
b0VsZW1lbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBWaWRl
b0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTEwNTQ5LDggKzEwNTM0LDYgQEAKIAkJOEUzM0NEOTMyMDFBMjlDMTAwRTM5MDkzIC8q
IEdhcExlbmd0aC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHYXBM
ZW5ndGguY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4RTRDOTZEODFBRDQ0ODM1
MDAzNjVBNTAgLyogSlNGZXRjaFJlc3BvbnNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTRmV0Y2hSZXNwb25zZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCThFNEM5NkQ5MUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoUmVzcG9uc2UuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNGZXRjaFJlc3BvbnNlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCThFNjIwRTdFMjBFRTVGRTIwMDdCQzVFRiAvKiBWUlBsYXRm
b3JtRGlzcGxheS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWUlBs
YXRmb3JtRGlzcGxheS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCThFNjIwRTgw
MjBFRTVGRkMwMDdCQzVFRiAvKiBWUlBsYXRmb3JtRGlzcGxheUNsaWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBWUlBsYXRmb3JtRGlzcGxheUNsaWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk4RUM2Qzk2MTIwMUEyNTAxMDBGQkZBNTMgLyogR2FwTGVu
Z3RoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdhcExlbmd0aC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4RjY3NTYxOTEyODhCMTdCMDA0N0FDQTMgLyogRXZl
bnRRdWV1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFdmVudFF1ZXVlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThGOTM0RDgzMTE4OUYxRUUwMDUwOEQ1RCAv
KiBKU0V4ZWNTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0V4ZWNT
dGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTU1NDAsNyArMTU1MjMsNyBA
QAogCQlGNTg3ODY2MjAyREUzQjExMDFFQTQxMjIgLyogU1NMS2V5R2VuZXJhdG9yLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNTTEtleUdlbmVy
YXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0g
MDsgfTsKIAkJRjU4Nzg2ODQwMkRFM0I4NjAxRUE0MTIyIC8qIEN1cnNvci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDdXJzb3IuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUY1OTcz
RERFMTVDRkIyMDMwMDI3RjgwNCAvKiBMb2NhbGVDb2NvYS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBMb2NhbGVDb2NvYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlGNTk3M0RERjE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlQ29jb2EubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBMb2NhbGVDb2NvYS5tbTsgcGF0aCA9ICIuLi9j
b2NvYS9Mb2NhbGVDb2NvYS5tbSI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1OTcz
RERGMTVDRkIyMDMwMDI3RjgwNCAvKiBMb2NhbGVDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgbmFtZSA9IExvY2FsZUNvY29hLm1tOyBwYXRoID0gLi4vY29jb2EvTG9j
YWxlQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1OUM5NUZEMTI1NUIy
M0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU5Qzk1RkUxMjU1QjIzRjAwMDYyM0MwIC8qIEJh
c2VEYXRlQW5kVGltZUlucHV0VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRjVBMTU0MjUxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZhbGlkYXRpb25NZXNzYWdlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI1MTM3LDcgKzI1MTIwLDcgQEAKIAkJCQlF
NEFGQ0ZBNDBEQUYyOUEzMDBGNUY1NUMgLyogVW5pdEJlemllci5oICovLAogCQkJCTBGNUE1N0NB
MjI5QjE4QUUwMDI1RURBOSAvKiBWZWxvY2l0eURhdGEuY3BwICovLAogCQkJCTBGMUEwQzM2MjI5
QTQ4MTgwMEQzN0FEQiAvKiBWZWxvY2l0eURhdGEuaCAqLywKLQkJCQkwNzVCQTg0NzIwNjE4QUE1
MDBGQ0I0QUQgLyogVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLmggKi8sCisJCQkJMUQzOTJG
MkIyM0YyMDlEODAwRTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyLmggKi8sCiAJCQkJQkVGMjlF
RUExNzE1REQwOTAwQzRCNEM5IC8qIFZpZGVvVHJhY2tQcml2YXRlLmggKi8sCiAJCQkJMTQxMURD
QjAxNjRDMzlBODAwRDQ5QkMxIC8qIFdpZHRoQ2FjaGUuaCAqLywKIAkJCQk5MzlCMDJFQzBFQTJE
QkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5jcHAgKi8sCkBAIC0yNTgzOCw3ICsyNTgyMSw2
IEBACiAJCQkJNjU2Qjg0RDcwQUVBMUNFOTAwQTA5NUI0IC8qIG5ldHdvcmsgKi8sCiAJCQkJMUEy
RTZFNTYwQ0M1NTFFMDAwNEEyMDYyIC8qIHNxbCAqLywKIAkJCQlCMkMzRDlFQzBEMDA2QzFEMDBF
RjZGMjYgLyogdGV4dCAqLywKLQkJCQlFMTg4MjM1RjIwMzFGNTBGMDBCNDJERjMgLyogdnIgKi8s
CiAJCQkJREZEQjkxMkNGOEU4OEE2REExQUQyNjRGIC8qIEFib3J0YWJsZVRhc2tRdWV1ZS5oICov
LAogCQkJCTQ5QUUyRDk0MTM0RUU1RjkwMDcyOTIwQSAvKiBDYWxjdWxhdGlvblZhbHVlLmNwcCAq
LywKIAkJCQk0OUFFMkQ5NTEzNEVFNUY5MDA3MjkyMEEgLyogQ2FsY3VsYXRpb25WYWx1ZS5oICov
LApAQCAtMjY3NDIsOCArMjY3MjQsOCBAQAogCQkJCTdBMjlGNTcxMThDNjk1MTQwMDREMEY4MSAv
KiBPdXRPZkJhbmRUZXh0VHJhY2tQcml2YXRlQVZGLmggKi8sCiAJCQkJQ0RDOEI1QTkxODA0N0ZG
MTAwMTZFNjg1IC8qIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLmggKi8sCiAJCQkJQ0RDOEI1
QTgxODA0N0ZGMTAwMTZFNjg1IC8qIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tICovLAot
CQkJCTUyRDVBMThFMUM1NDU5MDMwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFn
ZXJPYmpDLmggKi8sCi0JCQkJNTJENUExOEQxQzU0NTkwMzAwREUzNEEzIC8qIFZpZGVvRnVsbHNj
cmVlbkxheWVyTWFuYWdlck9iakMubW0gKi8sCisJCQkJMUQzOTJGMkEyM0YyMDlCNTAwRTA0QjJE
IC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oICovLAorCQkJCTFEMzkyRjI4MjNGMjA5QjQwMEUw
NEIyRCAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gKi8sCiAJCQkJQ0QzMzZGNjUxN0ZBMEFD
NjAwREREQ0QwIC8qIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5jcHAgKi8sCiAJCQkJQ0QzMzZG
NjYxN0ZBMEFDNjAwREREQ0QwIC8qIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5oICovLAogCQkJ
CUNEOEI1QTQxMTgwRDE0OUEwMDhCOEU2NSAvKiBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQy5oICovLApAQCAtMjg5MTUsOCArMjg4OTcsNiBAQAogCQkJaXNhID0gUEJYSGVhZGVy
c0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMg
PSAoCi0JCQkJNzIxNDQzMzIyMjNFQzg1RjAwRjEyRkY3IC8qIChudWxsKSBpbiBIZWFkZXJzICov
LAotCQkJCTcyMTQ0MzMxMjIzRUM4NTQwMEYxMkZGNyAvKiAobnVsbCkgaW4gSGVhZGVycyAqLywK
IAkJCQk3Q0QwRTJCODFGODBBNDgyMDAxNkE0Q0UgLyogQWJvcnRDb250cm9sbGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk3Q0QwRTJCRjFGODBBNTZFMDAxNkE0Q0UgLyogQWJvcnRTaWduYWwuaCBp
biBIZWFkZXJzICovLAogCQkJCTQ2Qjk1MTk1MjA3RDYzMzQwMEE3RDJERCAvKiBBYnN0cmFjdERP
TVdpbmRvdy5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTE3OCwxNyArMzExNTgsNiBAQAogCQkJCUJF
OEVGMDREMTcxQzkwMTQwMDlCNDhDMyAvKiBKU1ZpZGVvVHJhY2tMaXN0LmggaW4gSGVhZGVycyAq
LywKIAkJCQk0NkU3OTE0OTFGOTdFMDFBMDAxOTk3MzkgLyogSlNWaXNpYmlsaXR5U3RhdGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTc3NzlCRDk2MUYzMjI0NkEwMEMyMTQxNyAvKiBKU1Zpc3VhbFZp
ZXdwb3J0LmggaW4gSGVhZGVycyAqLywKLQkJCQkyRERFMUNFNDFGNTc0QUU5MDBEMUEzNjUgLyog
SlNWUkRpc3BsYXkuaCBpbiBIZWFkZXJzICovLAotCQkJCTJEREUxQ0Y4MUY1NzRDMzkwMEQxQTM2
NSAvKiBKU1ZSRGlzcGxheUNhcGFiaWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMkRERTFD
RkExRjU3NEMzRTAwRDFBMzY1IC8qIEpTVlJEaXNwbGF5RXZlbnQuaCBpbiBIZWFkZXJzICovLAot
CQkJCTJEREUxQ0ZDMUY1NzRDRUUwMEQxQTM2NSAvKiBKU1ZSRGlzcGxheUV2ZW50UmVhc29uLmgg
aW4gSGVhZGVycyAqLywKLQkJCQkyRERFMUNGRTFGNTc0Q0YzMDBEMUEzNjUgLyogSlNWUkV5ZS5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJMkRERTFEMDAxRjU3NENGNzAwRDFBMzY1IC8qIEpTVlJFeWVQ
YXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLywKLQkJCQkyRERFMUNFMzFGNTc0QUU1MDBEMUEzNjUg
LyogSlNWUkZpZWxkT2ZWaWV3LmggaW4gSGVhZGVycyAqLywKLQkJCQkyRERFMUQwMjFGNTc0RDAw
MDBEMUEzNjUgLyogSlNWUkZyYW1lRGF0YS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMkRERTFEMDQx
RjU3NEQwNTAwRDFBMzY1IC8qIEpTVlJMYXllckluaXQuaCBpbiBIZWFkZXJzICovLAotCQkJCTJE
REUxRDA2MUY1NzREMEEwMEQxQTM2NSAvKiBKU1ZSUG9zZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
MkRERTFEMDgxRjU3NEQwRTAwRDFBMzY1IC8qIEpTVlJTdGFnZVBhcmFtZXRlcnMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJFMjA1MDgyMThBNDYwQzMwMDgwNjQ3RSAvKiBKU1ZUVEN1ZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJN0FGOUIyMEQxOENGQjVGNDAwQzY0QkVGIC8qIEpTVlRUUmVnaW9uLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk3QUY5QjIwRjE4Q0ZCNUY0MDBDNjRCRUYgLyogSlNWVFRSZWdp
b25MaXN0LmggaW4gSGVhZGVycyAqLywKQEAgLTMyODU0LDcgKzMyODIzLDYgQEAKIAkJCQk1MkIw
RDRDMDFDNTdGRDY2MDA3N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTNGQkM0QUY0MTg5ODgxNTYwMDQ2RUUzOCAvKiBWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VBVktpdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTJCMEQ0QzIxQzU3RkY5
MTAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMDc1QkE4NDkyMDYxOEFBNTAwRkNCNEFEIC8qIFZpZGVvRnVsbHNjcmVlbkxheWVyTWFu
YWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTJENUExQTcxQzU3NDg5RDAwREUzNEEzIC8qIFZp
ZGVvRnVsbHNjcmVlbk1vZGVsLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MkQ1QTFBODFDNTc0OEEz
MDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUNERTgzREIyMTgzQzQ0MDYwMDMxRUFBMyAvKiBWaWRlb1BsYXliYWNrUXVhbGl0
eS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDI4Niw3ICszNDI1NCw3IEBACiAJCQkJN0NFNjgzNDQx
OTIxNDNBODAwRjREOTI4IC8qIFVzZXJNZXNzYWdlSGFuZGxlckRlc2NyaXB0b3IuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJN0M3M0ZCMDcxOTFFRjQxNzAwN0RFMDYxIC8qIFVzZXJNZXNzYWdlSGFu
ZGxlcnNOYW1lc3BhY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJM0ZCQzRBRjMxODk4ODE1NjAw
NDZFRTM4IC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tIGluIFNvdXJjZXMgKi8s
Ci0JCQkJNTJENUExOEYxQzU0NTkyMzAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbkxheWVyTWFu
YWdlck9iakMubW0gaW4gU291cmNlcyAqLywKKwkJCQkxRDM5MkYyRDIzRjIwQTcwMDBFMDRCMkQg
LyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFDRDZGOEMy
M0Q2RTgyMTAwQjE2NDIxIC8qIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCUJFODhFMERFMTcxNUQyQTIwMDY1OEQ5OCAvKiBWaWRlb1RyYWNrLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUJFODhFMEUxMTcxNUQyQTIwMDY1OEQ5OCAvKiBWaWRlb1RyYWNr
TGlzdC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLmgKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY2MmE5NGM5ZTMwNjhlYzNiMjk4YTdiNDgzZjhhNjFi
NWY1M2NkN2QuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5h
Z2VyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
LSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJOYXRp
dmVJbWFnZS5oIgotI2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXIuaCIKLSNpbmNsdWRlIDx3dGYvRnVu
Y3Rpb24uaD4KLSNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotCi1jbGFzcyBGbG9hdFJlY3Q7Ci1jbGFzcyBJbnRTaXplOwotY2xhc3MgVGV4dFRyYWNr
UmVwcmVzZW50YXRpb247Ci0KLWNsYXNzIFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlciB7Ci0g
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyKTsKLXB1
YmxpYzoKLSAgICBWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXIoKSA9IGRlZmF1bHQ7Ci0gICAg
dmlydHVhbCB+VmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyKCkgeyB9Ci0KLSAgICB2aXJ0dWFs
IFBsYXRmb3JtTGF5ZXIgKnZpZGVvSW5saW5lTGF5ZXIoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVh
bCBQbGF0Zm9ybUxheWVyICp2aWRlb0Z1bGxzY3JlZW5MYXllcigpIGNvbnN0ID0gMDsKLSAgICB2
aXJ0dWFsIEZsb2F0UmVjdCB2aWRlb0Z1bGxzY3JlZW5GcmFtZSgpIGNvbnN0ID0gMDsKLSAgICB2
aXJ0dWFsIHZvaWQgc2V0VmlkZW9MYXllcihQbGF0Zm9ybUxheWVyKiwgSW50U2l6ZSkgPSAwOwot
ICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyKiwg
V1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIsIE5hdGl2ZUltYWdlUHRy
KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdl
KE5hdGl2ZUltYWdlUHRyKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNldFZpZGVvRnVsbHNjcmVl
bkZyYW1lKEZsb2F0UmVjdCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBkaWREZXN0cm95VmlkZW9M
YXllcigpID0gMDsKLQotICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc1RleHRUcmFja1JlcHJlc2Vu
dGF0aW9uKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0VHJhY2tSZXByZXNl
bnRhdGlvbihUZXh0VHJhY2tSZXByZXNlbnRhdGlvbiopID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQg
c3luY1RleHRUcmFja0JvdW5kcygpID0gMDsKLX07Ci0KLX0KLQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9MYXllck1hbmFnZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvTGF5ZXJNYW5hZ2VyLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZWU0Nzc5ZWZlZDc0NTc4ZmFjNDRiODUwMTgxM2Q1MGYwMzZmZWVkNwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvTGF5ZXJNYW5hZ2VyLmgK
QEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiTmF0aXZlSW1hZ2UuaCIKKyNpbmNsdWRl
ICJQbGF0Zm9ybUxheWVyLmgiCisjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CisjaW5jbHVkZSA8
d3RmL05vbmNvcHlhYmxlLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRmxvYXRS
ZWN0OworY2xhc3MgSW50U2l6ZTsKK2NsYXNzIFRleHRUcmFja1JlcHJlc2VudGF0aW9uOworCitj
bGFzcyBWaWRlb0xheWVyTWFuYWdlciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVmlkZW9M
YXllck1hbmFnZXIpOworcHVibGljOgorICAgIFZpZGVvTGF5ZXJNYW5hZ2VyKCkgPSBkZWZhdWx0
OworICAgIHZpcnR1YWwgflZpZGVvTGF5ZXJNYW5hZ2VyKCkgeyB9CisKKyAgICB2aXJ0dWFsIFBs
YXRmb3JtTGF5ZXIgKnZpZGVvSW5saW5lTGF5ZXIoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBQ
bGF0Zm9ybUxheWVyICp2aWRlb0Z1bGxzY3JlZW5MYXllcigpIGNvbnN0ID0gMDsKKyAgICB2aXJ0
dWFsIEZsb2F0UmVjdCB2aWRlb0Z1bGxzY3JlZW5GcmFtZSgpIGNvbnN0ID0gMDsKKworICAgIHZp
cnR1YWwgdm9pZCBzZXRWaWRlb0xheWVyKFBsYXRmb3JtTGF5ZXIqLCBJbnRTaXplKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIGRpZERlc3Ryb3lWaWRlb0xheWVyKCkgPSAwOworCisgICAgdmlydHVh
bCB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5ZXIqLCBXVEY6OkZ1bmN0
aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlciwgTmF0aXZlSW1hZ2VQdHIpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgdXBkYXRlVmlkZW9GdWxsc2NyZWVuSW5saW5lSW1hZ2UoTmF0aXZlSW1h
Z2VQdHIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoRmxv
YXRSZWN0KSA9IDA7CisKKyAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNUZXh0VHJhY2tSZXByZXNl
bnRhdGlvbigpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4dFRyYWNrUmVwcmVz
ZW50YXRpb24oVGV4dFRyYWNrUmVwcmVzZW50YXRpb24qKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IHN5bmNUZXh0VHJhY2tCb3VuZHMoKSA9IDA7Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgK
aW5kZXggNmQxY2NjOWYzY2QxNDkxOTFmZjBjMDE2ZDAzOGZjMjQ3OTk0ZGYwYS4uYWY2YzgwNGY2
Y2Y4ZTYwOGQ4N2Q4MzlmZDgwNmYwODkwM2QyM2ZiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaApA
QCAtNjUsNyArNjUsNyBAQCBjbGFzcyBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkY7
CiBjbGFzcyBNZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQzsKIGNsYXNzIFBpeGVsQnVmZmVyQ29u
Zm9ybWVyQ1Y7CiBjbGFzcyBTaGFyZWRCdWZmZXI7Ci1jbGFzcyBWaWRlb0Z1bGxzY3JlZW5MYXll
ck1hbmFnZXJPYmpDOworY2xhc3MgVmlkZW9MYXllck1hbmFnZXJPYmpDOwogY2xhc3MgVmlkZW9U
ZXh0dXJlQ29waWVyQ1Y7CiBjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakM7CiBjbGFzcyBX
ZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXI7CkBAIC0zNDAsNyArMzQwLDcgQEAgcHJpdmF0ZToKICAg
ICBSZXRhaW5QdHI8QVZQbGF5ZXI+IG1fYXZQbGF5ZXI7CiAgICAgUmV0YWluUHRyPEFWUGxheWVy
SXRlbT4gbV9hdlBsYXllckl0ZW07CiAgICAgUmV0YWluUHRyPEFWUGxheWVyTGF5ZXI+IG1fdmlk
ZW9MYXllcjsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8VmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2Vy
T2JqQz4gbV92aWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXI7CisgICAgc3RkOjp1bmlxdWVfcHRy
PFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQz4gbV92aWRlb0xheWVyTWFuYWdlcjsKICAgICBNZWRpYVBs
YXllcjo6VmlkZW9HcmF2aXR5IG1fdmlkZW9GdWxsc2NyZWVuR3Jhdml0eTsKICAgICBSZXRhaW5Q
dHI8V2ViQ29yZUFWRk1vdmllT2JzZXJ2ZXI+IG1fb2JqY09ic2VydmVyOwogICAgIFJldGFpblB0
cjxpZD4gbV90aW1lT2JzZXJ2ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCAxZWFkNWNm
MTc4ZGNhNWQ3NjQxMmU0YjAzNDNhODdkMDYxYWRiNTMyLi44OGEwNTRlYzlhYzllMGE3YjUxMDA1
MTE3NGViZmMwZDE4YWJjMzcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTYwLDcgKzYw
LDcgQEAKICNpbXBvcnQgIlRleHRFbmNvZGluZy5oIgogI2ltcG9ydCAiVGV4dFRyYWNrUmVwcmVz
ZW50YXRpb24uaCIKICNpbXBvcnQgIlRleHR1cmVDYWNoZUNWLmgiCi0jaW1wb3J0ICJWaWRlb0Z1
bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDLmgiCisjaW1wb3J0ICJWaWRlb0xheWVyTWFuYWdlck9i
akMuaCIKICNpbXBvcnQgIlZpZGVvVGV4dHVyZUNvcGllckNWLmgiCiAjaW1wb3J0ICJWaWRlb1Ry
YWNrUHJpdmF0ZUFWRk9iakMuaCIKICNpbXBvcnQgIldlYkNvcmVBVkZSZXNvdXJjZUxvYWRlci5o
IgpAQCAtNDA0LDcgKzQwNCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6Y2xlYXJNZWRpYUNhY2hlRm9yT3JpZ2lucyhjb25zdCBTdHJpbmcmCiAKIE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMoTWVkaWFQbGF5ZXIqIHBsYXllcikKICAgICA6IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbihwbGF5ZXIpCi0gICAgLCBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlcihtYWtl
VW5pcXVlPFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakM+KGxvZ2dlcigpLCBsb2dJZGVu
dGlmaWVyKCkpKQorICAgICwgbV92aWRlb0xheWVyTWFuYWdlcihtYWtlVW5pcXVlPFZpZGVvTGF5
ZXJNYW5hZ2VyT2JqQz4obG9nZ2VyKCksIGxvZ0lkZW50aWZpZXIoKSkpCiAgICAgLCBtX3ZpZGVv
RnVsbHNjcmVlbkdyYXZpdHkoTWVkaWFQbGF5ZXI6OlZpZGVvR3Jhdml0eTo6UmVzaXplQXNwZWN0
KQogICAgICwgbV9vYmpjT2JzZXJ2ZXIoYWRvcHROUyhbW1dlYkNvcmVBVkZNb3ZpZU9ic2VydmVy
IGFsbG9jXSBpbml0V2l0aFBsYXllcjptYWtlV2Vha1B0cigqdGhpcyldKSkKICAgICAsIG1fdmlk
ZW9GcmFtZUhhc0RyYXduKGZhbHNlKQpAQCAtNjE5LDcgKzYxOSw3IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZQbGF5ZXJMYXllcigpCiAgICAgSW50
U2l6ZSBkZWZhdWx0U2l6ZSA9IHNuYXBwZWRJbnRSZWN0KHBsYXllcigpLT5wbGF5ZXJDb250ZW50
Qm94UmVjdCgpKS5zaXplKCk7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKIAotICAg
IG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLT5zZXRWaWRlb0xheWVyKG1fdmlkZW9MYXll
ci5nZXQoKSwgZGVmYXVsdFNpemUpOworICAgIG1fdmlkZW9MYXllck1hbmFnZXItPnNldFZpZGVv
TGF5ZXIobV92aWRlb0xheWVyLmdldCgpLCBkZWZhdWx0U2l6ZSk7CiAKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKSAmJiAhUExBVEZPUk0oV0FUQ0hPUykKICAgICBpZiAoW21fdmlkZW9MYXllciBy
ZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHNldFBJUE1vZGVFbmFibGVkOildKQpAQCAtNjM2
LDcgKzYzNiw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6ZGVz
dHJveVZpZGVvTGF5ZXIoKQogCiAgICAgW21fdmlkZW9MYXllciByZW1vdmVPYnNlcnZlcjptX29i
amNPYnNlcnZlci5nZXQoKSBmb3JLZXlQYXRoOkAicmVhZHlGb3JEaXNwbGF5Il07CiAgICAgW21f
dmlkZW9MYXllciBzZXRQbGF5ZXI6bmlsXTsKLSAgICBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyTWFu
YWdlci0+ZGlkRGVzdHJveVZpZGVvTGF5ZXIoKTsKKyAgICBtX3ZpZGVvTGF5ZXJNYW5hZ2VyLT5k
aWREZXN0cm95VmlkZW9MYXllcigpOwogCiAgICAgbV92aWRlb0xheWVyID0gbmlsOwogfQpAQCAt
MTA3MywyNiArMTA3MywyNiBAQCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246Okl0ZW1T
dGF0dXMgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cAogCiBQbGF0Zm9ybUxh
eWVyKiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybUxheWVyKCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gbV92aWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXItPnZpZGVv
SW5saW5lTGF5ZXIoKTsKKyAgICByZXR1cm4gbV92aWRlb0xheWVyTWFuYWdlci0+dmlkZW9Jbmxp
bmVMYXllcigpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6
OnVwZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKCkKIHsKICAgICB1cGRhdGVMYXN0SW1h
Z2UoVXBkYXRlVHlwZTo6VXBkYXRlU3luY2hyb25vdXNseSk7Ci0gICAgbV92aWRlb0Z1bGxzY3Jl
ZW5MYXllck1hbmFnZXItPnVwZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKG1fbGFzdElt
YWdlKTsKKyAgICBtX3ZpZGVvTGF5ZXJNYW5hZ2VyLT51cGRhdGVWaWRlb0Z1bGxzY3JlZW5Jbmxp
bmVJbWFnZShtX2xhc3RJbWFnZSk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciogdmlkZW9G
dWxsc2NyZWVuTGF5ZXIsIEZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICAgICB1cGRhdGVMYXN0SW1hZ2UoVXBkYXRlVHlwZTo6VXBkYXRlU3luY2hyb25vdXNseSk7Ci0g
ICAgbV92aWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXItPnNldFZpZGVvRnVsbHNjcmVlbkxheWVy
KHZpZGVvRnVsbHNjcmVlbkxheWVyLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgbV9sYXN0
SW1hZ2UpOworICAgIG1fdmlkZW9MYXllck1hbmFnZXItPnNldFZpZGVvRnVsbHNjcmVlbkxheWVy
KHZpZGVvRnVsbHNjcmVlbkxheWVyLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgbV9sYXN0
SW1hZ2UpOwogICAgIHVwZGF0ZURpc2FibGVFeHRlcm5hbFBsYXliYWNrKCk7CiB9CiAKIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuRnJh
bWUoRmxvYXRSZWN0IGZyYW1lKQogewogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgIndp
ZHRoID0gIiwgZnJhbWUuc2l6ZSgpLndpZHRoKCksICIsIGhlaWdodCA9ICIsIGZyYW1lLnNpemUo
KS5oZWlnaHQoKSk7Ci0gICAgbV92aWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXItPnNldFZpZGVv
RnVsbHNjcmVlbkZyYW1lKGZyYW1lKTsKKyAgICBtX3ZpZGVvTGF5ZXJNYW5hZ2VyLT5zZXRWaWRl
b0Z1bGxzY3JlZW5GcmFtZShmcmFtZSk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuR3Jhdml0eShNZWRpYVBsYXllcjo6Vmlk
ZW9HcmF2aXR5IGdyYXZpdHkpCkBAIC0xNzY0LDcgKzE3NjQsNyBAQCB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnVwZGF0ZVZpZGVvTGF5ZXJHcmF2aXR5KCkKIAogICAg
IC8vIERvIG5vdCBhdHRlbXB0IHRvIGNoYW5nZSB0aGUgdmlkZW8gZ3Jhdml0eSB3aGlsZSBpbiBm
dWxsIHNjcmVlbiBtb2RlLgogICAgIC8vIFNlZSBzZXRWaWRlb0Z1bGxzY3JlZW5HcmF2aXR5KCku
Ci0gICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLT52aWRlb0Z1bGxzY3JlZW5M
YXllcigpKQorICAgIGlmIChtX3ZpZGVvTGF5ZXJNYW5hZ2VyLT52aWRlb0Z1bGxzY3JlZW5MYXll
cigpKQogICAgICAgICByZXR1cm47CiAKICAgICBbQ0FUcmFuc2FjdGlvbiBiZWdpbl07CkBAIC0y
MDUzLDE3ICsyMDUzLDE3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6dXBkYXRlVmlkZW9UcmFja3MoKQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakM6OnJlcXVpcmVzVGV4dFRyYWNrUmVwcmVzZW50YXRpb24oKSBjb25zdAogewotICAg
IHJldHVybiBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlci0+cmVxdWlyZXNUZXh0VHJhY2tS
ZXByZXNlbnRhdGlvbigpOworICAgIHJldHVybiBtX3ZpZGVvTGF5ZXJNYW5hZ2VyLT5yZXF1aXJl
c1RleHRUcmFja1JlcHJlc2VudGF0aW9uKCk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQzo6c3luY1RleHRUcmFja0JvdW5kcygpCiB7Ci0gICAgbV92aWRlb0Z1
bGxzY3JlZW5MYXllck1hbmFnZXItPnN5bmNUZXh0VHJhY2tCb3VuZHMoKTsKKyAgICBtX3ZpZGVv
TGF5ZXJNYW5hZ2VyLT5zeW5jVGV4dFRyYWNrQm91bmRzKCk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0VGV4dFRyYWNrUmVwcmVzZW50YXRpb24oVGV4
dFRyYWNrUmVwcmVzZW50YXRpb24qIHJlcHJlc2VudGF0aW9uKQogewotICAgIG1fdmlkZW9GdWxs
c2NyZWVuTGF5ZXJNYW5hZ2VyLT5zZXRUZXh0VHJhY2tSZXByZXNlbnRhdGlvbihyZXByZXNlbnRh
dGlvbik7CisgICAgbV92aWRlb0xheWVyTWFuYWdlci0+c2V0VGV4dFRyYWNrUmVwcmVzZW50YXRp
b24ocmVwcmVzZW50YXRpb24pOwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFZJREVPX1RSQUNLKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakMuaAppbmRleCAxNGRkZmJmYmUyZmFhZmJkOWMyN2VhYTJhZDQ2
MzU1ODlkNTVjYjIwLi41ZGUzMzZjYjY0Yjk5NDU3YmZmYmU2NzJmMWE1MmMzZjYyNzc4OGUzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaApAQCAtNTUsNyArNTUsNyBAQCBjbGFzcyBNZWRpYVNv
dXJjZVByaXZhdGVBVkZPYmpDOwogY2xhc3MgUGl4ZWxCdWZmZXJDb25mb3JtZXJDVjsKIGNsYXNz
IFBsYXRmb3JtQ2xvY2tDTTsKIGNsYXNzIFRleHR1cmVDYWNoZUNWOwotY2xhc3MgVmlkZW9GdWxs
c2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQzsKK2NsYXNzIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQzsKIGNs
YXNzIFZpZGVvVGV4dHVyZUNvcGllckNWOwogY2xhc3MgV2ViQ29yZURlY29tcHJlc3Npb25TZXNz
aW9uOwogCkBAIC0zMjUsOCArMzI1LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogICAgIFJlZjxjb25z
dCBMb2dnZXI+IG1fbG9nZ2VyOwogICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllcjsKLSAg
ICBzdGQ6OnVuaXF1ZV9wdHI8VmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQz4gbV92aWRl
b0Z1bGxzY3JlZW5MYXllck1hbmFnZXI7Ci0KKyAgICBzdGQ6OnVuaXF1ZV9wdHI8VmlkZW9MYXll
ck1hbmFnZXJPYmpDPiBtX3ZpZGVvTGF5ZXJNYW5hZ2VyOwogICAgIFJlZjxFZmZlY3RpdmVSYXRl
Q2hhbmdlZExpc3RlbmVyPiBtX2VmZmVjdGl2ZVJhdGVDaGFuZ2VkTGlzdGVuZXI7CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakMubW0KaW5kZXggNzAyOWZmOTcyODkxOWMxNWMwNmUzN2U4NmFj
YWExMjI2YzMyZTZhNi4uOTI3M2M5ZWIxYTRiMjgwZDkxYTRhODY5YjA2N2EwNGM5ZTBjZWRiNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpAQCAtMzksNyArMzksNyBAQAogI2ltcG9ydCAi
UGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oIgogI2ltcG9ydCAiVGV4dFRyYWNrUmVwcmVzZW50YXRp
b24uaCIKICNpbXBvcnQgIlRleHR1cmVDYWNoZUNWLmgiCi0jaW1wb3J0ICJWaWRlb0Z1bGxzY3Jl
ZW5MYXllck1hbmFnZXJPYmpDLmgiCisjaW1wb3J0ICJWaWRlb0xheWVyTWFuYWdlck9iakMuaCIK
ICNpbXBvcnQgIlZpZGVvVGV4dHVyZUNvcGllckNWLmgiCiAjaW1wb3J0ICJXZWJDb3JlRGVjb21w
cmVzc2lvblNlc3Npb24uaCIKICNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVkFzc2V0Lmg+CkBAIC0x
MzksNyArMTM5LDcgQEAgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpNZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMoTWVkaWEKICAgICAsIG1fbG9hZGluZ1By
b2dyZXNzZWQoZmFsc2UpCiAgICAgLCBtX2xvZ2dlcihwbGF5ZXItPm1lZGlhUGxheWVyTG9nZ2Vy
KCkpCiAgICAgLCBtX2xvZ0lkZW50aWZpZXIocGxheWVyLT5tZWRpYVBsYXllckxvZ0lkZW50aWZp
ZXIoKSkKLSAgICAsIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyKG1ha2VVbmlxdWU8Vmlk
ZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQz4obV9sb2dnZXIsIG1fbG9nSWRlbnRpZmllcikp
CisgICAgLCBtX3ZpZGVvTGF5ZXJNYW5hZ2VyKG1ha2VVbmlxdWU8VmlkZW9MYXllck1hbmFnZXJP
YmpDPihtX2xvZ2dlciwgbV9sb2dJZGVudGlmaWVyKSkKICAgICAsIG1fZWZmZWN0aXZlUmF0ZUNo
YW5nZWRMaXN0ZW5lcihFZmZlY3RpdmVSYXRlQ2hhbmdlZExpc3RlbmVyOjpjcmVhdGUoKnRoaXMs
IFttX3N5bmNocm9uaXplciB0aW1lYmFzZV0pKQogewogICAgIGF1dG8gbG9nU2l0ZUlkZW50aWZp
ZXIgPSBMT0dJREVOVElGSUVSOwpAQCAtMzEwLDcgKzMxMCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpwcmVwYXJlVG9QbGF5KCkKIAogUGxhdGZvcm1MYXll
ciogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpwbGF0Zm9ybUxheWVyKCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gbV92aWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXItPnZpZGVv
SW5saW5lTGF5ZXIoKTsKKyAgICByZXR1cm4gbV92aWRlb0xheWVyTWFuYWdlci0+dmlkZW9Jbmxp
bmVMYXllcigpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Qzo6cGxheSgpCkBAIC03NjEsNyArNzYxLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakM6OmVuc3VyZUxheWVyKCkKICAgICBbbV9zeW5jaHJvbml6ZXIgYWRkUmVu
ZGVyZXI6bV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuZ2V0KCldOwogICAgIGlmIChtX21lZGlh
U291cmNlUHJpdmF0ZSkKICAgICAgICAgbV9tZWRpYVNvdXJjZVByaXZhdGUtPnNldFZpZGVvTGF5
ZXIobV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuZ2V0KCkpOwotICAgIG1fdmlkZW9GdWxsc2Ny
ZWVuTGF5ZXJNYW5hZ2VyLT5zZXRWaWRlb0xheWVyKG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
LmdldCgpLCBzbmFwcGVkSW50UmVjdChtX3BsYXllci0+cGxheWVyQ29udGVudEJveFJlY3QoKSku
c2l6ZSgpKTsKKyAgICBtX3ZpZGVvTGF5ZXJNYW5hZ2VyLT5zZXRWaWRlb0xheWVyKG1fc2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyLmdldCgpLCBzbmFwcGVkSW50UmVjdChtX3BsYXllci0+cGxheWVy
Q29udGVudEJveFJlY3QoKSkuc2l6ZSgpKTsKICAgICBtX3BsYXllci0+cmVuZGVyaW5nTW9kZUNo
YW5nZWQoKTsKIH0KIApAQCAtNzc3LDcgKzc3Nyw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDOjpkZXN0cm95TGF5ZXIoKQogCiAgICAgaWYgKG1fbWVkaWFTb3Vy
Y2VQcml2YXRlKQogICAgICAgICBtX21lZGlhU291cmNlUHJpdmF0ZS0+c2V0VmlkZW9MYXllcihu
dWxscHRyKTsKLSAgICBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlci0+ZGlkRGVzdHJveVZp
ZGVvTGF5ZXIoKTsKKyAgICBtX3ZpZGVvTGF5ZXJNYW5hZ2VyLT5kaWREZXN0cm95VmlkZW9MYXll
cigpOwogICAgIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyID0gbnVsbHB0cjsKICAgICBzZXRI
YXNBdmFpbGFibGVWaWRlb0ZyYW1lKGZhbHNlKTsKICAgICBtX3BsYXllci0+cmVuZGVyaW5nTW9k
ZUNoYW5nZWQoKTsKQEAgLTExNTQsMjcgKzExNTQsMjcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakM6OmNoYXJhY3RlcmlzdGljc0NoYW5nZWQoKQogdm9pZCBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldFZpZGVvRnVsbHNjcmVlbkxheWVy
KFBsYXRmb3JtTGF5ZXIgKnZpZGVvRnVsbHNjcmVlbkxheWVyLCBXVEY6OkZ1bmN0aW9uPHZvaWQo
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICB1cGRhdGVMYXN0SW1hZ2UoKTsKLSAgICBt
X3ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlci0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIodmlk
ZW9GdWxsc2NyZWVuTGF5ZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBtX2xhc3RJbWFn
ZSk7CisgICAgbV92aWRlb0xheWVyTWFuYWdlci0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIodmlk
ZW9GdWxsc2NyZWVuTGF5ZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBtX2xhc3RJbWFn
ZSk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzZXRW
aWRlb0Z1bGxzY3JlZW5GcmFtZShGbG9hdFJlY3QgZnJhbWUpCiB7Ci0gICAgbV92aWRlb0Z1bGxz
Y3JlZW5MYXllck1hbmFnZXItPnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKGZyYW1lKTsKKyAgICBt
X3ZpZGVvTGF5ZXJNYW5hZ2VyLT5zZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShmcmFtZSk7CiB9CiAK
IGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpyZXF1aXJlc1RleHRU
cmFja1JlcHJlc2VudGF0aW9uKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV92aWRlb0Z1bGxzY3Jl
ZW5MYXllck1hbmFnZXItPnZpZGVvRnVsbHNjcmVlbkxheWVyKCk7CisgICAgcmV0dXJuIG1fdmlk
ZW9MYXllck1hbmFnZXItPnZpZGVvRnVsbHNjcmVlbkxheWVyKCk7CiB9CiAgICAgCiB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c3luY1RleHRUcmFja0JvdW5kcygp
CiB7Ci0gICAgbV92aWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXItPnN5bmNUZXh0VHJhY2tCb3Vu
ZHMoKTsKKyAgICBtX3ZpZGVvTGF5ZXJNYW5hZ2VyLT5zeW5jVGV4dFRyYWNrQm91bmRzKCk7CiB9
CiAgICAgCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c2V0VGV4
dFRyYWNrUmVwcmVzZW50YXRpb24oVGV4dFRyYWNrUmVwcmVzZW50YXRpb24qIHJlcHJlc2VudGF0
aW9uKQogewotICAgIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLT5zZXRUZXh0VHJhY2tS
ZXByZXNlbnRhdGlvbihyZXByZXNlbnRhdGlvbik7CisgICAgbV92aWRlb0xheWVyTWFuYWdlci0+
c2V0VGV4dFRyYWNrUmVwcmVzZW50YXRpb24ocmVwcmVzZW50YXRpb24pOwogfQogCiAjaWYgRU5B
QkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgKaW5k
ZXggOTA5ZWI0OTAzYTE4OTQ0YmM2NjQ2NjUwODgwNzgzOGQ2ZmFlZmRkZS4uOTJjMDgyMTY1NDk4
Y2RlYTI3YzEzN2U5NTZmY2EzZjQ3OTg5ZjY4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgK
QEAgLTQ4LDcgKzQ4LDcgQEAgY2xhc3MgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTsKIGNs
YXNzIEFWVmlkZW9DYXB0dXJlU291cmNlOwogY2xhc3MgTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50
OwogY2xhc3MgUGl4ZWxCdWZmZXJDb25mb3JtZXJDVjsKLWNsYXNzIFZpZGVvRnVsbHNjcmVlbkxh
eWVyTWFuYWdlck9iakM7CitjbGFzcyBWaWRlb0xheWVyTWFuYWdlck9iakM7CiBjbGFzcyBWaWRl
b1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOwogCiBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakMgZmluYWwgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNl
LCBwcml2YXRlIE1lZGlhU3RyZWFtUHJpdmF0ZTo6T2JzZXJ2ZXIsIHByaXZhdGUgTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGU6Ok9ic2VydmVyLCBwdWJsaWMgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
OjpDbGllbnQKQEAgLTI0Miw3ICsyNDIsNyBAQCBwcml2YXRlOgogCiAgICAgUmVmPGNvbnN0IExv
Z2dlcj4gbV9sb2dnZXI7CiAgICAgY29uc3Qgdm9pZCogbV9sb2dJZGVudGlmaWVyOwotICAgIHN0
ZDo6dW5pcXVlX3B0cjxWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDPiBtX3ZpZGVvRnVs
bHNjcmVlbkxheWVyTWFuYWdlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8VmlkZW9MYXllck1hbmFn
ZXJPYmpDPiBtX3ZpZGVvTGF5ZXJNYW5hZ2VyOwogCiAgICAgLy8gU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyOjpDbGllbnQKICAgICB2b2lkIHNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllclN0YXR1c0Rp
ZENoYW5nZShTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXImKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQy5tbQppbmRleCAwZjU3NDQxMjBlOGFiMWMyYTBkNDQxYjA4ZDY0OTIxNjgyYzNiNjEw
Li42MTg4N2Y3ZWZmMDlhZTAwNjFjMGQ3OGViOTI4ZTA4Nzk0YTM0ZGY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDLm1tCkBAIC0zNCw3ICszNCw3IEBACiAjaW1wb3J0ICJMb2NhbFNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllci5oIgogI2ltcG9ydCAiTWVkaWFTdHJlYW1Qcml2YXRlLmgiCiAjaW1w
b3J0ICJQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmgiCi0jaW1wb3J0ICJWaWRlb0Z1bGxzY3JlZW5M
YXllck1hbmFnZXJPYmpDLmgiCisjaW1wb3J0ICJWaWRlb0xheWVyTWFuYWdlck9iakMuaCIKICNp
bXBvcnQgIlZpZGVvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uaCIKICNpbXBvcnQgPENvcmVHcmFw
aGljcy9DR0FmZmluZVRyYW5zZm9ybS5oPgogI2ltcG9ydCA8b2JqY19ydW50aW1lLmg+CkBAIC0x
NDYsNyArMTQ2LDcgQEAgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMoTWVkaWEKICAgICAsIG1fY2xvY2soUEFM
OjpDbG9jazo6Y3JlYXRlKCkpCiAgICAgLCBtX2xvZ2dlcihwbGF5ZXItPm1lZGlhUGxheWVyTG9n
Z2VyKCkpCiAgICAgLCBtX2xvZ0lkZW50aWZpZXIocGxheWVyLT5tZWRpYVBsYXllckxvZ0lkZW50
aWZpZXIoKSkKLSAgICAsIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyKG1ha2VVbmlxdWU8
VmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQz4obV9sb2dnZXIsIG1fbG9nSWRlbnRpZmll
cikpCisgICAgLCBtX3ZpZGVvTGF5ZXJNYW5hZ2VyKG1ha2VVbmlxdWU8VmlkZW9MYXllck1hbmFn
ZXJPYmpDPihtX2xvZ2dlciwgbV9sb2dJZGVudGlmaWVyKSkKICAgICAsIG1fYm91bmRzQ2hhbmdl
TGlzdGVuZXIoYWRvcHROUyhbW1dlYlJvb3RTYW1wbGVCdWZmZXJCb3VuZHNDaGFuZ2VMaXN0ZW5l
ciBhbGxvY10gaW5pdFdpdGhQYXJlbnQ6dGhpc10pKQogewogICAgIElORk9fTE9HKExPR0lERU5U
SUZJRVIpOwpAQCAtMzgwLDcgKzM4MCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDOjplbnN1cmVMYXllcnMoKQogICAgIHVwZGF0ZVJlbmRlcmluZ01vZGUoKTsK
ICAgICB1cGRhdGVEaXNwbGF5TGF5ZXIoKTsKIAotICAgIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXJN
YW5hZ2VyLT5zZXRWaWRlb0xheWVyKG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLT5yb290TGF5
ZXIoKSwgc2l6ZSk7CisgICAgbV92aWRlb0xheWVyTWFuYWdlci0+c2V0VmlkZW9MYXllcihtX3Nh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllci0+cm9vdExheWVyKCksIHNpemUpOwogCiAgICAgW21fYm91
bmRzQ2hhbmdlTGlzdGVuZXIgYmVnaW5dOwogfQpAQCAtMzkyLDcgKzM5Miw3IEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpkZXN0cm95TGF5ZXJzKCkKIAogICAg
IHVwZGF0ZVJlbmRlcmluZ01vZGUoKTsKICAgICAKLSAgICBtX3ZpZGVvRnVsbHNjcmVlbkxheWVy
TWFuYWdlci0+ZGlkRGVzdHJveVZpZGVvTGF5ZXIoKTsKKyAgICBtX3ZpZGVvTGF5ZXJNYW5hZ2Vy
LT5kaWREZXN0cm95VmlkZW9MYXllcigpOwogfQogCiAjcHJhZ21hIG1hcmsgLQpAQCAtNDYzLDcg
KzQ2Myw3IEBAIFBsYXRmb3JtTGF5ZXIqIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQzo6cGxhdGZvcm1MYXllcigpIGNvbnN0CiAgICAgaWYgKCFtX3NhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllciB8fCAhbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXItPnJvb3RMYXllcigpIHx8IG1f
ZGlzcGxheU1vZGUgPT0gTm9uZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICByZXR1
cm4gbV92aWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXItPnZpZGVvSW5saW5lTGF5ZXIoKTsKKyAg
ICByZXR1cm4gbV92aWRlb0xheWVyTWFuYWdlci0+dmlkZW9JbmxpbmVMYXllcigpOwogfQogCiBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OkRpc3BsYXlNb2RlIE1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6Y3VycmVudERpc3BsYXlNb2RlKCkgY29uc3QK
QEAgLTc3NiwxMiArNzc2LDEyIEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDOjpzdXBwb3J0c1BpY3R1cmVJblBpY3R1cmUoKSBjb25zdAogdm9pZCBNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKFBsYXRm
b3JtTGF5ZXIqIHZpZGVvRnVsbHNjcmVlbkxheWVyLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKICAgICB1cGRhdGVDdXJyZW50RnJhbWVJbWFnZSgpOwotICAg
IG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLT5zZXRWaWRlb0Z1bGxzY3JlZW5MYXllcih2
aWRlb0Z1bGxzY3JlZW5MYXllciwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIG1faW1hZ2VQ
YWludGVyLmNnSW1hZ2UpOworICAgIG1fdmlkZW9MYXllck1hbmFnZXItPnNldFZpZGVvRnVsbHNj
cmVlbkxheWVyKHZpZGVvRnVsbHNjcmVlbkxheWVyLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSwgbV9pbWFnZVBhaW50ZXIuY2dJbWFnZSk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShGbG9hdFJlY3QgZnJh
bWUpCiB7Ci0gICAgbV92aWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXItPnNldFZpZGVvRnVsbHNj
cmVlbkZyYW1lKGZyYW1lKTsKKyAgICBtX3ZpZGVvTGF5ZXJNYW5hZ2VyLT5zZXRWaWRlb0Z1bGxz
Y3JlZW5GcmFtZShmcmFtZSk7CiB9CiAKIHR5cGVkZWYgZW51bSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0Z1bGxz
Y3JlZW5MYXllck1hbmFnZXJPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDLmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFmZjhiYjZlZjFhZGJjYTIzMGE2ZmRiODczMzk4
NGY2NDdjYWFlZGIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlk
ZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQy5oCisrKyAvZGV2L251bGwKQEAgLTEsNzggKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgot
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFn
bWEgb25jZQotCi0jaW5jbHVkZSAiRmxvYXRSZWN0LmgiCi0jaW5jbHVkZSAiSW50U2l6ZS5oIgot
I2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXIuaCIKLSNpbmNsdWRlICJWaWRlb0Z1bGxzY3JlZW5MYXll
ck1hbmFnZXIuaCIKLSNpbmNsdWRlICJXZWJWaWRlb0NvbnRhaW5lckxheWVyLmgiCi0jaW5jbHVk
ZSA8d3RmL0Z1bmN0aW9uLmg+Ci0jaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgotI2luY2x1
ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgotI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KLQotT0JK
Q19DTEFTUyBBVlBsYXllckxheWVyOwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFZp
ZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakMgZmluYWwgOiBwdWJsaWMgVmlkZW9GdWxsc2Ny
ZWVuTGF5ZXJNYW5hZ2VyICwgcHVibGljIExvZ2dlckhlbHBlciB7Ci0gICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2Jq
Qyhjb25zdCBMb2dnZXImLCBjb25zdCB2b2lkKik7Ci0KLSAgICBQbGF0Zm9ybUxheWVyICp2aWRl
b0lubGluZUxheWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV92aWRlb0lubGluZUxheWVyLmdl
dCgpOyB9Ci0gICAgUGxhdGZvcm1MYXllciAqdmlkZW9GdWxsc2NyZWVuTGF5ZXIoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyLmdldCgpOyB9Ci0gICAgRmxvYXRS
ZWN0IHZpZGVvRnVsbHNjcmVlbkZyYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV92aWRlb0Z1
bGxzY3JlZW5GcmFtZTsgfQotICAgIHZvaWQgc2V0VmlkZW9MYXllcihQbGF0Zm9ybUxheWVyICos
IEludFNpemUgY29udGVudFNpemUpIGZpbmFsOwotICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVu
TGF5ZXIoUGxhdGZvcm1MYXllciAqLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9u
SGFuZGxlciwgTmF0aXZlSW1hZ2VQdHIpIGZpbmFsOwotICAgIHZvaWQgdXBkYXRlVmlkZW9GdWxs
c2NyZWVuSW5saW5lSW1hZ2UoTmF0aXZlSW1hZ2VQdHIpIGZpbmFsOwotICAgIHZvaWQgc2V0Vmlk
ZW9GdWxsc2NyZWVuRnJhbWUoRmxvYXRSZWN0KSBmaW5hbDsKLSAgICB2b2lkIGRpZERlc3Ryb3lW
aWRlb0xheWVyKCkgZmluYWw7Ci0KLSAgICBib29sIHJlcXVpcmVzVGV4dFRyYWNrUmVwcmVzZW50
YXRpb24oKSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIHNldFRleHRUcmFja1JlcHJlc2VudGF0aW9u
KFRleHRUcmFja1JlcHJlc2VudGF0aW9uKikgZmluYWw7Ci0gICAgdm9pZCBzeW5jVGV4dFRyYWNr
Qm91bmRzKCkgZmluYWw7Ci0KLXByaXZhdGU6Ci0gICAgY29uc3QgTG9nZ2VyJiBsb2dnZXIoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBtX2xvZ2dlci5nZXQoKTsgfQotICAgIGNvbnN0IHZvaWQqIGxv
Z0lkZW50aWZpZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2xvZ0lkZW50aWZpZXI7IH0KLSAg
ICBjb25zdCBjaGFyKiBsb2dDbGFzc05hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiVmlkZW9G
dWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQyI7IH0KLSAgICBXVEZMb2dDaGFubmVsJiBsb2dDaGFu
bmVsKCkgY29uc3QgZmluYWw7Ci0KLSAgICBSZWY8Y29uc3QgTG9nZ2VyPiBtX2xvZ2dlcjsKLSAg
ICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50aWZpZXI7Ci0KLSAgICBSZXRhaW5QdHI8UGxhdGZvcm1M
YXllcj4gbV90ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkxheWVyOwotICAgIFJldGFpblB0cjxXZWJW
aWRlb0NvbnRhaW5lckxheWVyPiBtX3ZpZGVvSW5saW5lTGF5ZXI7Ci0gICAgUmV0YWluUHRyPFBs
YXRmb3JtTGF5ZXI+IG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXI7Ci0gICAgUmV0YWluUHRyPFBsYXRm
b3JtTGF5ZXI+IG1fdmlkZW9MYXllcjsKLSAgICBGbG9hdFJlY3QgbV92aWRlb0Z1bGxzY3JlZW5G
cmFtZTsKLSAgICBGbG9hdFJlY3QgbV92aWRlb0lubGluZUZyYW1lOwotfTsKLQotfQotCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9WaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5h
Z2VyT2JqQy5tbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmE3OGRmNDk3OGZmMDIy
NDUwMTUxNjY0NTk2NjFlMmJhYjg3MDQ3MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9WaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDLm1tCisrKyAvZGV2L251
bGwKQEAgLTEsMjA1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAiVmlkZW9GdWxsc2Ny
ZWVuTGF5ZXJNYW5hZ2VyT2JqQy5oIgotCi0jaW1wb3J0ICJDb2xvci5oIgotI2ltcG9ydCAiTG9n
Z2luZy5oIgotI2ltcG9ydCAiVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaCIKLSNpbXBvcnQgIldl
YkNvcmVDQUxheWVyRXh0cmFzLmgiCi0jaW1wb3J0IDxtYWNoL21hY2hfaW5pdC5oPgotI2ltcG9y
dCA8bWFjaC9tYWNoX3BvcnQuaD4KLSNpbXBvcnQgPHBhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQ
SS5oPgotI2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+Ci0jaW1wb3J0IDx3dGYvTWFjaFNlbmRSaWdo
dC5oPgotCi0jaW5jbHVkZSA8cGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmg+Ci0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLQotVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQzo6Vmlk
ZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQyhjb25zdCBMb2dnZXImIGxvZ2dlciwgY29uc3Qg
dm9pZCogbG9nSWRlbnRpZmllcikKLSAgICA6IFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlcigp
Ci0gICAgLCBtX2xvZ2dlcihsb2dnZXIpCi0gICAgLCBtX2xvZ0lkZW50aWZpZXIobG9nSWRlbnRp
ZmllcikKLXsKLX0KLQotdm9pZCBWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDOjpzZXRW
aWRlb0xheWVyKFBsYXRmb3JtTGF5ZXIgKnZpZGVvTGF5ZXIsIEludFNpemUgY29udGVudFNpemUp
Ci17Ci0gICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCBjb250ZW50U2l6ZS53aWR0aCgpLCAi
LCAiLCBjb250ZW50U2l6ZS5oZWlnaHQoKSk7Ci0KLSAgICBtX3ZpZGVvTGF5ZXIgPSB2aWRlb0xh
eWVyOwotICAgIG1fdmlkZW9JbmxpbmVGcmFtZSA9IENHUmVjdE1ha2UoMCwgMCwgY29udGVudFNp
emUud2lkdGgoKSwgY29udGVudFNpemUuaGVpZ2h0KCkpOwotCi0gICAgW21fdmlkZW9MYXllciB3
ZWJfZGlzYWJsZUFsbEFjdGlvbnNdOwotICAgIG1fdmlkZW9JbmxpbmVMYXllciA9IGFkb3B0TlMo
W1tXZWJWaWRlb0NvbnRhaW5lckxheWVyIGFsbG9jXSBpbml0XSk7Ci0jaWZuZGVmIE5ERUJVRwot
ICAgIFttX3ZpZGVvSW5saW5lTGF5ZXIgc2V0TmFtZTpAIldlYlZpZGVvQ29udGFpbmVyTGF5ZXIi
XTsKLSNlbmRpZgotICAgIFttX3ZpZGVvSW5saW5lTGF5ZXIgc2V0RnJhbWU6bV92aWRlb0lubGlu
ZUZyYW1lXTsKLSAgICBbbV92aWRlb0lubGluZUxheWVyIHNldENvbnRlbnRzR3Jhdml0eTprQ0FH
cmF2aXR5UmVzaXplQXNwZWN0XTsKLSAgICBpZiAoW3ZpZGVvTGF5ZXIgaXNLaW5kT2ZDbGFzczpQ
QUw6OmdldEFWUGxheWVyTGF5ZXJDbGFzcygpXSkKLSAgICAgICAgW21fdmlkZW9JbmxpbmVMYXll
ciBzZXRQbGF5ZXJMYXllcjooQVZQbGF5ZXJMYXllciAqKXZpZGVvTGF5ZXJdOwotCi0gICAgaWYg
KG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIpIHsKLSAgICAgICAgW21fdmlkZW9MYXllciBzZXRGcmFt
ZTpDR1JlY3RNYWtlKDAsIDAsIG1fdmlkZW9GdWxsc2NyZWVuRnJhbWUud2lkdGgoKSwgbV92aWRl
b0Z1bGxzY3JlZW5GcmFtZS5oZWlnaHQoKSldOwotICAgICAgICBbbV92aWRlb0Z1bGxzY3JlZW5M
YXllciBpbnNlcnRTdWJsYXllcjptX3ZpZGVvTGF5ZXIuZ2V0KCkgYXRJbmRleDowXTsKLSAgICB9
IGVsc2UgewotICAgICAgICBbbV92aWRlb0lubGluZUxheWVyIGluc2VydFN1YmxheWVyOm1fdmlk
ZW9MYXllci5nZXQoKSBhdEluZGV4OjBdOwotICAgICAgICBbbV92aWRlb0xheWVyIHNldEZyYW1l
Om1fdmlkZW9JbmxpbmVMYXllci5nZXQoKS5ib3VuZHNdOwotICAgIH0KLX0KLQotdm9pZCBWaWRl
b0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDOjp1cGRhdGVWaWRlb0Z1bGxzY3JlZW5JbmxpbmVJ
bWFnZShOYXRpdmVJbWFnZVB0ciBpbWFnZSkKLXsKLSAgICBpZiAobV92aWRlb0lubGluZUxheWVy
KQotICAgICAgICBbbV92aWRlb0lubGluZUxheWVyIHNldENvbnRlbnRzOihfX2JyaWRnZSBpZClp
bWFnZS5nZXQoKV07Ci19Ci0KLXZvaWQgVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQzo6
c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciAqdmlkZW9GdWxsc2NyZWVuTGF5
ZXIsIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyLCBOYXRpdmVJbWFn
ZVB0ciBjdXJyZW50SW1hZ2UpCi17Ci0gICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIgPT0g
dmlkZW9GdWxsc2NyZWVuTGF5ZXIpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAg
ICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7Ci0K
LSAgICBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyID0gdmlkZW9GdWxsc2NyZWVuTGF5ZXI7Ci0KLSAg
ICBbQ0FUcmFuc2FjdGlvbiBiZWdpbl07Ci0gICAgW0NBVHJhbnNhY3Rpb24gc2V0RGlzYWJsZUFj
dGlvbnM6WUVTXTsKLQotICAgIGlmIChtX3ZpZGVvTGF5ZXIpIHsKLSAgICAgICAgQ0FDb250ZXh0
ICpvbGRDb250ZXh0ID0gW21fdmlkZW9MYXllciBjb250ZXh0XTsKLQotICAgICAgICBpZiAobV92
aWRlb0lubGluZUxheWVyKQotICAgICAgICAgICAgW21fdmlkZW9JbmxpbmVMYXllciBzZXRDb250
ZW50czooX19icmlkZ2UgaWQpY3VycmVudEltYWdlLmdldCgpXTsKLQotICAgICAgICBpZiAobV92
aWRlb0Z1bGxzY3JlZW5MYXllcikgewotICAgICAgICAgICAgW21fdmlkZW9GdWxsc2NyZWVuTGF5
ZXIgaW5zZXJ0U3VibGF5ZXI6bV92aWRlb0xheWVyLmdldCgpIGF0SW5kZXg6MF07Ci0gICAgICAg
ICAgICBbbV92aWRlb0xheWVyIHNldEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgbV92aWRlb0Z1bGxz
Y3JlZW5GcmFtZS53aWR0aCgpLCBtX3ZpZGVvRnVsbHNjcmVlbkZyYW1lLmhlaWdodCgpKV07Ci0g
ICAgICAgIH0gZWxzZSBpZiAobV92aWRlb0lubGluZUxheWVyKSB7Ci0gICAgICAgICAgICBbbV92
aWRlb0xheWVyIHNldEZyYW1lOlttX3ZpZGVvSW5saW5lTGF5ZXIgYm91bmRzXV07Ci0gICAgICAg
ICAgICBbbV92aWRlb0lubGluZUxheWVyIGluc2VydFN1YmxheWVyOm1fdmlkZW9MYXllci5nZXQo
KSBhdEluZGV4OjBdOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIFttX3ZpZGVvTGF5ZXIg
cmVtb3ZlRnJvbVN1cGVybGF5ZXJdOwotCi0gICAgICAgIENBQ29udGV4dCAqbmV3Q29udGV4dCA9
IFttX3ZpZGVvTGF5ZXIgY29udGV4dF07Ci0gICAgICAgIGlmIChvbGRDb250ZXh0ICYmIG5ld0Nv
bnRleHQgJiYgb2xkQ29udGV4dCAhPSBuZXdDb250ZXh0KSB7Ci0jaWYgUExBVEZPUk0oTUFDKQot
ICAgICAgICAgICAgb2xkQ29udGV4dC5jb21taXRQcmlvcml0eSA9IDA7Ci0gICAgICAgICAgICBu
ZXdDb250ZXh0LmNvbW1pdFByaW9yaXR5ID0gMTsKLSNlbmRpZgotICAgICAgICAgICAgYXV0byBm
ZW5jZVBvcnQgPSBNYWNoU2VuZFJpZ2h0OjphZG9wdChbb2xkQ29udGV4dCBjcmVhdGVGZW5jZVBv
cnRdKTsKLSAgICAgICAgICAgIFtuZXdDb250ZXh0IHNldEZlbmNlUG9ydDpmZW5jZVBvcnQuc2Vu
ZFJpZ2h0KCldOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgW0NBVHJhbnNhY3Rpb24gc2V0Q29t
cGxldGlvbkJsb2NrOm1ha2VCbG9ja1B0cihbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKV0gewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0p
LmdldCgpXTsKLQotICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07Ci19Ci0KLXZvaWQgVmlkZW9G
dWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoRmxvYXRS
ZWN0IHZpZGVvRnVsbHNjcmVlbkZyYW1lKQotewotICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklF
UiwgdmlkZW9GdWxsc2NyZWVuRnJhbWUueCgpLCAiLCAiLCB2aWRlb0Z1bGxzY3JlZW5GcmFtZS55
KCksICIsICIsIHZpZGVvRnVsbHNjcmVlbkZyYW1lLndpZHRoKCksICIsICIsIHZpZGVvRnVsbHNj
cmVlbkZyYW1lLmhlaWdodCgpKTsKLQotICAgIG1fdmlkZW9GdWxsc2NyZWVuRnJhbWUgPSB2aWRl
b0Z1bGxzY3JlZW5GcmFtZTsKLSAgICBpZiAoIW1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIFttX3ZpZGVvTGF5ZXIgc2V0RnJhbWU6bV92aWRlb0Z1bGxzY3Jl
ZW5GcmFtZV07Ci0gICAgc3luY1RleHRUcmFja0JvdW5kcygpOwotfQotCi12b2lkIFZpZGVvRnVs
bHNjcmVlbkxheWVyTWFuYWdlck9iakM6OmRpZERlc3Ryb3lWaWRlb0xheWVyKCkKLXsKLSAgICBB
TFdBWVNfTE9HKExPR0lERU5USUZJRVIpOwotCi0gICAgW21fdmlkZW9MYXllciByZW1vdmVGcm9t
U3VwZXJsYXllcl07Ci0KLSAgICBtX3ZpZGVvSW5saW5lTGF5ZXIgPSBuaWw7Ci0gICAgbV92aWRl
b0xheWVyID0gbmlsOwotfQotCi1ib29sIFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakM6
OnJlcXVpcmVzVGV4dFRyYWNrUmVwcmVzZW50YXRpb24oKSBjb25zdAotewotICAgIHJldHVybiBt
X3ZpZGVvRnVsbHNjcmVlbkxheWVyOwotfQotCi12b2lkIFZpZGVvRnVsbHNjcmVlbkxheWVyTWFu
YWdlck9iakM6OnN5bmNUZXh0VHJhY2tCb3VuZHMoKQotewotICAgIGlmICghbV92aWRlb0Z1bGxz
Y3JlZW5MYXllciB8fCAhbV90ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkxheWVyKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBpZiAobV90ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkxheWVyLmdldCgpLmJv
dW5kcyA9PSBtX3ZpZGVvRnVsbHNjcmVlbkZyYW1lKQotICAgICAgICByZXR1cm47Ci0KLSAgICBb
Q0FUcmFuc2FjdGlvbiBiZWdpbl07Ci0gICAgW0NBVHJhbnNhY3Rpb24gc2V0RGlzYWJsZUFjdGlv
bnM6WUVTXTsKLQotICAgIFttX3RleHRUcmFja1JlcHJlc2VudGF0aW9uTGF5ZXIgc2V0RnJhbWU6
bV92aWRlb0Z1bGxzY3JlZW5GcmFtZV07Ci0KLSAgICBbQ0FUcmFuc2FjdGlvbiBjb21taXRdOwot
fQotCi12b2lkIFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakM6OnNldFRleHRUcmFja1Jl
cHJlc2VudGF0aW9uKFRleHRUcmFja1JlcHJlc2VudGF0aW9uKiByZXByZXNlbnRhdGlvbikKLXsK
LSAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOwotCi0gICAgUGxhdGZvcm1MYXllciogcmVw
cmVzZW50YXRpb25MYXllciA9IHJlcHJlc2VudGF0aW9uID8gcmVwcmVzZW50YXRpb24tPnBsYXRm
b3JtTGF5ZXIoKSA6IG5pbDsKLSAgICBpZiAocmVwcmVzZW50YXRpb25MYXllciA9PSBtX3RleHRU
cmFja1JlcHJlc2VudGF0aW9uTGF5ZXIpIHsKLSAgICAgICAgc3luY1RleHRUcmFja0JvdW5kcygp
OwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgW0NBVHJhbnNhY3Rpb24gYmVnaW5dOwot
ICAgIFtDQVRyYW5zYWN0aW9uIHNldERpc2FibGVBY3Rpb25zOllFU107Ci0KLSAgICBpZiAobV90
ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkxheWVyKQotICAgICAgICBbbV90ZXh0VHJhY2tSZXByZXNl
bnRhdGlvbkxheWVyIHJlbW92ZUZyb21TdXBlcmxheWVyXTsKLQotICAgIG1fdGV4dFRyYWNrUmVw
cmVzZW50YXRpb25MYXllciA9IHJlcHJlc2VudGF0aW9uTGF5ZXI7Ci0KLSAgICBpZiAobV92aWRl
b0Z1bGxzY3JlZW5MYXllciAmJiBtX3RleHRUcmFja1JlcHJlc2VudGF0aW9uTGF5ZXIpIHsKLSAg
ICAgICAgc3luY1RleHRUcmFja0JvdW5kcygpOwotICAgICAgICBbbV92aWRlb0Z1bGxzY3JlZW5M
YXllciBhZGRTdWJsYXllcjptX3RleHRUcmFja1JlcHJlc2VudGF0aW9uTGF5ZXIuZ2V0KCldOwot
ICAgIH0KLQotICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07Ci0KLX0KLQotV1RGTG9nQ2hhbm5l
bCYgVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQzo6bG9nQ2hhbm5lbCgpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIExvZ01lZGlhOwotfQotCi19Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvTGF5ZXJNYW5hZ2Vy
T2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvVmlkZW9MYXllck1hbmFnZXJPYmpDLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2NiODc1NjQzM2FkM2Q0YzZi
MGExYzMxNjM2YTYyOTFhZDEwNDU2ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvTGF5ZXJNYW5hZ2VyT2Jq
Qy5oCkBAIC0wLDAgKzEsNzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgorI2luY2x1
ZGUgIkludFNpemUuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybUxheWVyLmgiCisjaW5jbHVkZSAiVmlk
ZW9MYXllck1hbmFnZXIuaCIKKyNpbmNsdWRlICJXZWJWaWRlb0NvbnRhaW5lckxheWVyLmgiCisj
aW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CisjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgor
I2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4K
KworT0JKQ19DTEFTUyBBVlBsYXllckxheWVyOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQyBmaW5hbCA6IHB1YmxpYyBWaWRlb0xheWVyTWFuYWdl
ciAsIHB1YmxpYyBMb2dnZXJIZWxwZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwor
cHVibGljOgorICAgIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQyhjb25zdCBMb2dnZXImLCBjb25zdCB2
b2lkKik7CisKKyAgICBQbGF0Zm9ybUxheWVyICp2aWRlb0lubGluZUxheWVyKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gbV92aWRlb0lubGluZUxheWVyLmdldCgpOyB9CisgICAgUGxhdGZvcm1MYXll
ciAqdmlkZW9GdWxsc2NyZWVuTGF5ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3ZpZGVvRnVs
bHNjcmVlbkxheWVyLmdldCgpOyB9CisgICAgRmxvYXRSZWN0IHZpZGVvRnVsbHNjcmVlbkZyYW1l
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV92aWRlb0Z1bGxzY3JlZW5GcmFtZTsgfQorCisgICAg
dm9pZCBzZXRWaWRlb0xheWVyKFBsYXRmb3JtTGF5ZXIgKiwgSW50U2l6ZSBjb250ZW50U2l6ZSkg
ZmluYWw7CisgICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyICos
IFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyLCBOYXRpdmVJbWFnZVB0
cikgZmluYWw7CisgICAgdm9pZCB1cGRhdGVWaWRlb0Z1bGxzY3JlZW5JbmxpbmVJbWFnZShOYXRp
dmVJbWFnZVB0cikgZmluYWw7CisgICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShGbG9h
dFJlY3QpIGZpbmFsOworICAgIHZvaWQgZGlkRGVzdHJveVZpZGVvTGF5ZXIoKSBmaW5hbDsKKwor
ICAgIGJvb2wgcmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbigpIGNvbnN0IGZpbmFsOwor
ICAgIHZvaWQgc2V0VGV4dFRyYWNrUmVwcmVzZW50YXRpb24oVGV4dFRyYWNrUmVwcmVzZW50YXRp
b24qKSBmaW5hbDsKKyAgICB2b2lkIHN5bmNUZXh0VHJhY2tCb3VuZHMoKSBmaW5hbDsKKworcHJp
dmF0ZToKKyAgICBjb25zdCBMb2dnZXImIGxvZ2dlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1f
bG9nZ2VyLmdldCgpOyB9CisgICAgY29uc3Qgdm9pZCogbG9nSWRlbnRpZmllcigpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIG1fbG9nSWRlbnRpZmllcjsgfQorICAgIGNvbnN0IGNoYXIqIGxvZ0NsYXNz
TmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJWaWRlb0xheWVyTWFuYWdlck9iakMiOyB9Cisg
ICAgV1RGTG9nQ2hhbm5lbCYgbG9nQ2hhbm5lbCgpIGNvbnN0IGZpbmFsOworCisgICAgUmVmPGNv
bnN0IExvZ2dlcj4gbV9sb2dnZXI7CisgICAgY29uc3Qgdm9pZCogbV9sb2dJZGVudGlmaWVyOwor
CisgICAgUmV0YWluUHRyPFBsYXRmb3JtTGF5ZXI+IG1fdGV4dFRyYWNrUmVwcmVzZW50YXRpb25M
YXllcjsKKyAgICBSZXRhaW5QdHI8V2ViVmlkZW9Db250YWluZXJMYXllcj4gbV92aWRlb0lubGlu
ZUxheWVyOworICAgIFJldGFpblB0cjxQbGF0Zm9ybUxheWVyPiBtX3ZpZGVvRnVsbHNjcmVlbkxh
eWVyOworICAgIFJldGFpblB0cjxQbGF0Zm9ybUxheWVyPiBtX3ZpZGVvTGF5ZXI7CisgICAgRmxv
YXRSZWN0IG1fdmlkZW9GdWxsc2NyZWVuRnJhbWU7CisgICAgRmxvYXRSZWN0IG1fdmlkZW9Jbmxp
bmVGcmFtZTsKK307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvTGF5ZXJN
YW5hZ2VyT2JqQy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NzEwYzZhM2NhMGY0YTQ2ZDRjMzdjMDlkZmFlZjVj
MDVkNDliZTI4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tCkBAIC0wLDAg
KzEsMjAzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTggQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5o
IgorCisjaW1wb3J0ICJDb2xvci5oIgorI2ltcG9ydCAiTG9nZ2luZy5oIgorI2ltcG9ydCAiVGV4
dFRyYWNrUmVwcmVzZW50YXRpb24uaCIKKyNpbXBvcnQgIldlYkNvcmVDQUxheWVyRXh0cmFzLmgi
CisjaW1wb3J0IDxtYWNoL21hY2hfaW5pdC5oPgorI2ltcG9ydCA8bWFjaC9tYWNoX3BvcnQuaD4K
KyNpbXBvcnQgPHBhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oPgorI2ltcG9ydCA8d3RmL0Js
b2NrUHRyLmg+CisjaW1wb3J0IDx3dGYvTWFjaFNlbmRSaWdodC5oPgorCisjaW5jbHVkZSA8cGFs
L2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
VmlkZW9MYXllck1hbmFnZXJPYmpDOjpWaWRlb0xheWVyTWFuYWdlck9iakMoY29uc3QgTG9nZ2Vy
JiBsb2dnZXIsIGNvbnN0IHZvaWQqIGxvZ0lkZW50aWZpZXIpCisgICAgOiBWaWRlb0xheWVyTWFu
YWdlcigpCisgICAgLCBtX2xvZ2dlcihsb2dnZXIpCisgICAgLCBtX2xvZ0lkZW50aWZpZXIobG9n
SWRlbnRpZmllcikKK3sKK30KKwordm9pZCBWaWRlb0xheWVyTWFuYWdlck9iakM6OnNldFZpZGVv
TGF5ZXIoUGxhdGZvcm1MYXllciAqdmlkZW9MYXllciwgSW50U2l6ZSBjb250ZW50U2l6ZSkKK3sK
KyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsIGNvbnRlbnRTaXplLndpZHRoKCksICIsICIs
IGNvbnRlbnRTaXplLmhlaWdodCgpKTsKKworICAgIG1fdmlkZW9MYXllciA9IHZpZGVvTGF5ZXI7
CisgICAgW21fdmlkZW9MYXllciB3ZWJfZGlzYWJsZUFsbEFjdGlvbnNdOworCisgICAgbV92aWRl
b0lubGluZUxheWVyID0gYWRvcHROUyhbW1dlYlZpZGVvQ29udGFpbmVyTGF5ZXIgYWxsb2NdIGlu
aXRdKTsKKyNpZm5kZWYgTkRFQlVHCisgICAgW21fdmlkZW9JbmxpbmVMYXllciBzZXROYW1lOkAi
V2ViVmlkZW9Db250YWluZXJMYXllciJdOworI2VuZGlmCisgICAgbV92aWRlb0lubGluZUZyYW1l
ID0gQ0dSZWN0TWFrZSgwLCAwLCBjb250ZW50U2l6ZS53aWR0aCgpLCBjb250ZW50U2l6ZS5oZWln
aHQoKSk7CisgICAgW21fdmlkZW9JbmxpbmVMYXllciBzZXRGcmFtZTptX3ZpZGVvSW5saW5lRnJh
bWVdOworICAgIFttX3ZpZGVvSW5saW5lTGF5ZXIgc2V0Q29udGVudHNHcmF2aXR5OmtDQUdyYXZp
dHlSZXNpemVBc3BlY3RdOworICAgIGlmIChbdmlkZW9MYXllciBpc0tpbmRPZkNsYXNzOlBBTDo6
Z2V0QVZQbGF5ZXJMYXllckNsYXNzKCldKQorICAgICAgICBbbV92aWRlb0lubGluZUxheWVyIHNl
dFBsYXllckxheWVyOihBVlBsYXllckxheWVyICopdmlkZW9MYXllcl07CisKKyAgICBpZiAobV92
aWRlb0Z1bGxzY3JlZW5MYXllcikgeworICAgICAgICBbbV92aWRlb0xheWVyIHNldEZyYW1lOkNH
UmVjdE1ha2UoMCwgMCwgbV92aWRlb0Z1bGxzY3JlZW5GcmFtZS53aWR0aCgpLCBtX3ZpZGVvRnVs
bHNjcmVlbkZyYW1lLmhlaWdodCgpKV07CisgICAgICAgIFttX3ZpZGVvRnVsbHNjcmVlbkxheWVy
IGluc2VydFN1YmxheWVyOm1fdmlkZW9MYXllci5nZXQoKSBhdEluZGV4OjBdOworICAgIH0gZWxz
ZSB7CisgICAgICAgIFttX3ZpZGVvSW5saW5lTGF5ZXIgaW5zZXJ0U3VibGF5ZXI6bV92aWRlb0xh
eWVyLmdldCgpIGF0SW5kZXg6MF07CisgICAgICAgIFttX3ZpZGVvTGF5ZXIgc2V0RnJhbWU6bV92
aWRlb0lubGluZUxheWVyLmdldCgpLmJvdW5kc107CisgICAgfQorfQorCit2b2lkIFZpZGVvTGF5
ZXJNYW5hZ2VyT2JqQzo6dXBkYXRlVmlkZW9GdWxsc2NyZWVuSW5saW5lSW1hZ2UoTmF0aXZlSW1h
Z2VQdHIgaW1hZ2UpCit7CisgICAgaWYgKG1fdmlkZW9JbmxpbmVMYXllcikKKyAgICAgICAgW21f
dmlkZW9JbmxpbmVMYXllciBzZXRDb250ZW50czooX19icmlkZ2UgaWQpaW1hZ2UuZ2V0KCldOwor
fQorCit2b2lkIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIo
UGxhdGZvcm1MYXllciAqdmlkZW9GdWxsc2NyZWVuTGF5ZXIsIFdURjo6RnVuY3Rpb248dm9pZCgp
PiYmIGNvbXBsZXRpb25IYW5kbGVyLCBOYXRpdmVJbWFnZVB0ciBjdXJyZW50SW1hZ2UpCit7Cisg
ICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIgPT0gdmlkZW9GdWxsc2NyZWVuTGF5ZXIpIHsK
KyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CisKKyAgICBtX3ZpZGVvRnVsbHNjcmVlbkxh
eWVyID0gdmlkZW9GdWxsc2NyZWVuTGF5ZXI7CisKKyAgICBbQ0FUcmFuc2FjdGlvbiBiZWdpbl07
CisgICAgW0NBVHJhbnNhY3Rpb24gc2V0RGlzYWJsZUFjdGlvbnM6WUVTXTsKKworICAgIGlmICht
X3ZpZGVvTGF5ZXIpIHsKKyAgICAgICAgQ0FDb250ZXh0ICpvbGRDb250ZXh0ID0gW21fdmlkZW9M
YXllciBjb250ZXh0XTsKKworICAgICAgICBpZiAobV92aWRlb0lubGluZUxheWVyKQorICAgICAg
ICAgICAgW21fdmlkZW9JbmxpbmVMYXllciBzZXRDb250ZW50czooX19icmlkZ2UgaWQpY3VycmVu
dEltYWdlLmdldCgpXTsKKworICAgICAgICBpZiAobV92aWRlb0Z1bGxzY3JlZW5MYXllcikgewor
ICAgICAgICAgICAgW21fdmlkZW9GdWxsc2NyZWVuTGF5ZXIgaW5zZXJ0U3VibGF5ZXI6bV92aWRl
b0xheWVyLmdldCgpIGF0SW5kZXg6MF07CisgICAgICAgICAgICBbbV92aWRlb0xheWVyIHNldEZy
YW1lOkNHUmVjdE1ha2UoMCwgMCwgbV92aWRlb0Z1bGxzY3JlZW5GcmFtZS53aWR0aCgpLCBtX3Zp
ZGVvRnVsbHNjcmVlbkZyYW1lLmhlaWdodCgpKV07CisgICAgICAgIH0gZWxzZSBpZiAobV92aWRl
b0lubGluZUxheWVyKSB7CisgICAgICAgICAgICBbbV92aWRlb0xheWVyIHNldEZyYW1lOlttX3Zp
ZGVvSW5saW5lTGF5ZXIgYm91bmRzXV07CisgICAgICAgICAgICBbbV92aWRlb0lubGluZUxheWVy
IGluc2VydFN1YmxheWVyOm1fdmlkZW9MYXllci5nZXQoKSBhdEluZGV4OjBdOworICAgICAgICB9
IGVsc2UKKyAgICAgICAgICAgIFttX3ZpZGVvTGF5ZXIgcmVtb3ZlRnJvbVN1cGVybGF5ZXJdOwor
CisgICAgICAgIENBQ29udGV4dCAqbmV3Q29udGV4dCA9IFttX3ZpZGVvTGF5ZXIgY29udGV4dF07
CisgICAgICAgIGlmIChvbGRDb250ZXh0ICYmIG5ld0NvbnRleHQgJiYgb2xkQ29udGV4dCAhPSBu
ZXdDb250ZXh0KSB7CisjaWYgUExBVEZPUk0oTUFDKQorICAgICAgICAgICAgb2xkQ29udGV4dC5j
b21taXRQcmlvcml0eSA9IDA7CisgICAgICAgICAgICBuZXdDb250ZXh0LmNvbW1pdFByaW9yaXR5
ID0gMTsKKyNlbmRpZgorICAgICAgICAgICAgYXV0byBmZW5jZVBvcnQgPSBNYWNoU2VuZFJpZ2h0
OjphZG9wdChbb2xkQ29udGV4dCBjcmVhdGVGZW5jZVBvcnRdKTsKKyAgICAgICAgICAgIFtuZXdD
b250ZXh0IHNldEZlbmNlUG9ydDpmZW5jZVBvcnQuc2VuZFJpZ2h0KCldOworICAgICAgICB9Cisg
ICAgfQorCisgICAgW0NBVHJhbnNhY3Rpb24gc2V0Q29tcGxldGlvbkJsb2NrOm1ha2VCbG9ja1B0
cihbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0geworICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcigpOworICAgIH0pLmdldCgpXTsKKworICAgIFtDQVRyYW5z
YWN0aW9uIGNvbW1pdF07Cit9CisKK3ZvaWQgVmlkZW9MYXllck1hbmFnZXJPYmpDOjpzZXRWaWRl
b0Z1bGxzY3JlZW5GcmFtZShGbG9hdFJlY3QgdmlkZW9GdWxsc2NyZWVuRnJhbWUpCit7CisgICAg
QUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCB2aWRlb0Z1bGxzY3JlZW5GcmFtZS54KCksICIsICIs
IHZpZGVvRnVsbHNjcmVlbkZyYW1lLnkoKSwgIiwgIiwgdmlkZW9GdWxsc2NyZWVuRnJhbWUud2lk
dGgoKSwgIiwgIiwgdmlkZW9GdWxsc2NyZWVuRnJhbWUuaGVpZ2h0KCkpOworCisgICAgbV92aWRl
b0Z1bGxzY3JlZW5GcmFtZSA9IHZpZGVvRnVsbHNjcmVlbkZyYW1lOworICAgIGlmICghbV92aWRl
b0Z1bGxzY3JlZW5MYXllcikKKyAgICAgICAgcmV0dXJuOworCisgICAgW21fdmlkZW9MYXllciBz
ZXRGcmFtZTptX3ZpZGVvRnVsbHNjcmVlbkZyYW1lXTsKKyAgICBzeW5jVGV4dFRyYWNrQm91bmRz
KCk7Cit9CisKK3ZvaWQgVmlkZW9MYXllck1hbmFnZXJPYmpDOjpkaWREZXN0cm95VmlkZW9MYXll
cigpCit7CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKKworICAgIFttX3ZpZGVvTGF5
ZXIgcmVtb3ZlRnJvbVN1cGVybGF5ZXJdOworCisgICAgbV92aWRlb0lubGluZUxheWVyID0gbmls
OworICAgIG1fdmlkZW9MYXllciA9IG5pbDsKK30KKworYm9vbCBWaWRlb0xheWVyTWFuYWdlck9i
akM6OnJlcXVpcmVzVGV4dFRyYWNrUmVwcmVzZW50YXRpb24oKSBjb25zdAoreworICAgIHJldHVy
biBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyOworfQorCit2b2lkIFZpZGVvTGF5ZXJNYW5hZ2VyT2Jq
Qzo6c3luY1RleHRUcmFja0JvdW5kcygpCit7CisgICAgaWYgKCFtX3ZpZGVvRnVsbHNjcmVlbkxh
eWVyIHx8ICFtX3RleHRUcmFja1JlcHJlc2VudGF0aW9uTGF5ZXIpCisgICAgICAgIHJldHVybjsK
KworICAgIGlmIChtX3RleHRUcmFja1JlcHJlc2VudGF0aW9uTGF5ZXIuZ2V0KCkuYm91bmRzID09
IG1fdmlkZW9GdWxsc2NyZWVuRnJhbWUpCisgICAgICAgIHJldHVybjsKKworICAgIFtDQVRyYW5z
YWN0aW9uIGJlZ2luXTsKKyAgICBbQ0FUcmFuc2FjdGlvbiBzZXREaXNhYmxlQWN0aW9uczpZRVNd
OworCisgICAgW21fdGV4dFRyYWNrUmVwcmVzZW50YXRpb25MYXllciBzZXRGcmFtZTptX3ZpZGVv
RnVsbHNjcmVlbkZyYW1lXTsKKworICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07Cit9CisKK3Zv
aWQgVmlkZW9MYXllck1hbmFnZXJPYmpDOjpzZXRUZXh0VHJhY2tSZXByZXNlbnRhdGlvbihUZXh0
VHJhY2tSZXByZXNlbnRhdGlvbiogcmVwcmVzZW50YXRpb24pCit7CisgICAgQUxXQVlTX0xPRyhM
T0dJREVOVElGSUVSKTsKKworICAgIFBsYXRmb3JtTGF5ZXIqIHJlcHJlc2VudGF0aW9uTGF5ZXIg
PSByZXByZXNlbnRhdGlvbiA/IHJlcHJlc2VudGF0aW9uLT5wbGF0Zm9ybUxheWVyKCkgOiBuaWw7
CisgICAgaWYgKHJlcHJlc2VudGF0aW9uTGF5ZXIgPT0gbV90ZXh0VHJhY2tSZXByZXNlbnRhdGlv
bkxheWVyKSB7CisgICAgICAgIHN5bmNUZXh0VHJhY2tCb3VuZHMoKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIFtDQVRyYW5zYWN0aW9uIGJlZ2luXTsKKyAgICBbQ0FUcmFuc2FjdGlv
biBzZXREaXNhYmxlQWN0aW9uczpZRVNdOworCisgICAgaWYgKG1fdGV4dFRyYWNrUmVwcmVzZW50
YXRpb25MYXllcikKKyAgICAgICAgW21fdGV4dFRyYWNrUmVwcmVzZW50YXRpb25MYXllciByZW1v
dmVGcm9tU3VwZXJsYXllcl07CisKKyAgICBtX3RleHRUcmFja1JlcHJlc2VudGF0aW9uTGF5ZXIg
PSByZXByZXNlbnRhdGlvbkxheWVyOworCisgICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIg
JiYgbV90ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkxheWVyKSB7CisgICAgICAgIHN5bmNUZXh0VHJh
Y2tCb3VuZHMoKTsKKyAgICAgICAgW21fdmlkZW9GdWxsc2NyZWVuTGF5ZXIgYWRkU3VibGF5ZXI6
bV90ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkxheWVyLmdldCgpXTsKKyAgICB9CisKKyAgICBbQ0FU
cmFuc2FjdGlvbiBjb21taXRdOworfQorCitXVEZMb2dDaGFubmVsJiBWaWRlb0xheWVyTWFuYWdl
ck9iakM6OmxvZ0NoYW5uZWwoKSBjb25zdAoreworICAgIHJldHVybiBMb2dNZWRpYTsKK30KKwor
fQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390302</attachid>
            <date>2020-02-10 15:33:50 -0800</date>
            <delta_ts>2020-02-11 05:29:57 -0800</delta_ts>
            <desc>A clearer patch</desc>
            <filename>revised.patch</filename>
            <type>text/plain</type>
            <size>51902</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0ZjQ1NzdjMDQxNS4uNWQzM2Q3MTZkNDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MSBAQAorMjAyMC0wMi0xMCAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgor
CisgICAgICAgIFJlbmFtZSBWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXIgdG8gVmlkZW9MYXll
ck1hbmFnZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwNzUwMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE5vIG5ldyB0ZXN0cyAtLSBubyBuZXcgb3IgY2hhbmdlZCBmdW5jdGlvbmFsaXR5LgorCisgICAg
ICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9MYXllck1hbmFn
ZXIuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZpZGVv
RnVsbHNjcmVlbkxheWVyTWFuYWdlci5oLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9MYXllck1h
bmFnZXI6On5WaWRlb0xheWVyTWFuYWdlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OmNyZWF0ZUFWUGxheWVyTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6ZGVzdHJveVZpZGVvTGF5ZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1MYXllciBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjp1cGRhdGVWaWRlb0Z1bGxzY3JlZW5JbmxpbmVJbWFnZSk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5M
YXllcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp1cGRhdGVWaWRlb0xheWVyR3Jhdml0eSk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpyZXF1
aXJlc1RleHRUcmFja1JlcHJlc2VudGF0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnN5bmNUZXh0VHJhY2tCb3VuZHMpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0
VGV4dFRyYWNrUmVwcmVzZW50YXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQzo6cGxhdGZvcm1MYXllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmVuc3VyZUxheWVyKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6ZGVzdHJveUxh
eWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZSk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6
OnJlcXVpcmVzVGV4dFRyYWNrUmVwcmVzZW50YXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzeW5jVGV4dFRyYWNrQm91
bmRzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQzo6c2V0VGV4dFRyYWNrUmVwcmVzZW50YXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZW5zdXJlTGF5ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZGVzdHJveUxheWVycyk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnBsYXRm
b3JtTGF5ZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcik6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNldFZpZGVvRnVsbHNj
cmVlbkZyYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9WaWRlb0xheWVyTWFuYWdlck9iakMuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvRnVsbHNjcmVlbkxheWVyTWFu
YWdlck9iakMuaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9WaWRlb0xheWVyTWFuYWdlck9iakMubW06IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0Z1bGxzY3JlZW5MYXllck1h
bmFnZXJPYmpDLm1tLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9MYXllck1hbmFnZXJPYmpDOjpW
aWRlb0xheWVyTWFuYWdlck9iakMpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9MYXllck1hbmFn
ZXJPYmpDOjpzZXRWaWRlb0xheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvTGF5ZXJNYW5h
Z2VyT2JqQzo6dXBkYXRlVmlkZW9GdWxsc2NyZWVuSW5saW5lSW1hZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6VmlkZW9MYXllck1hbmFnZXJPYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcik6Cisg
ICAgICAgIChXZWJDb3JlOjpWaWRlb0xheWVyTWFuYWdlck9iakM6OnNldFZpZGVvRnVsbHNjcmVl
bkZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvTGF5ZXJNYW5hZ2VyT2JqQzo6ZGlkRGVz
dHJveVZpZGVvTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9MYXllck1hbmFnZXJPYmpD
OjpyZXF1aXJlc1RleHRUcmFja1JlcHJlc2VudGF0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlZpZGVvTGF5ZXJNYW5hZ2VyT2JqQzo6c3luY1RleHRUcmFja0JvdW5kcyk6CisgICAgICAg
IChXZWJDb3JlOjpWaWRlb0xheWVyTWFuYWdlck9iakM6OnNldFRleHRUcmFja1JlcHJlc2VudGF0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvTGF5ZXJNYW5hZ2VyT2JqQzo6bG9nQ2hhbm5l
bCBjb25zdCk6CisKIDIwMjAtMDItMTAgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdh
QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJlYWNoYWJsZSBjb2RlIGhpdCBpbiBXZWJDb3JlOjpT
aGFwZTo6Y3JlYXRlU2hhcGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2Nv
YS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDI1N2MxMTMzZmY5
Li5hYjNhNTc5NDkwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4
dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CkBAIC0yNjIsNyArMjYyLDcg
QEAgcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDLm1tIEBuby0KIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5tbSBAbm8tdW5pZnkKIHBsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMubW0gQG5vLXVuaWZ5
CiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQy5tbSBAbm8tdW5pZnkKLXBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L1ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakMubW0gQG5vLXVuaWZ5CitwbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMubW0gQG5vLXVu
aWZ5CiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0
ZUFWRk9iakMuY3BwIEBuby11bmlmeQogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvVmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gQG5vLXVuaWZ5CiBwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9XZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIu
bW0gQG5vLXVuaWZ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggMmE1N2M0YzFkOTYuLmVkNDhmMjQxMTBlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzEsNyAr
MTMxLDYgQEAKIAkJMDc1Mzg2MDMxNDQ4OUU5ODAwQjc4NDUyIC8qIENhY2hlZFRleHRUcmFjay5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc1Mzg2MDEx
NDQ4OUU5ODAwQjc4NDUyIC8qIENhY2hlZFRleHRUcmFjay5oICovOyB9OwogCQkwNzU0QTVFQTIx
NUVBM0I4MDAyRDNBOTkgLyogUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NTRBNUU4MjE1RUEzQjcwMDJE
M0E5OSAvKiBSZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3NTdCMTNFMjE0QUU3OTkwMDc5NEIwRCAv
KiBWaWRlb1ByZXNldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMDc1N0IxM0MyMTRBRTc5NzAwNzk0QjBEIC8qIFZpZGVvUHJlc2V0LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMDc1QkE4NDkyMDYxOEFB
NTAwRkNCNEFEIC8qIFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc1QkE4NDcyMDYxOEFBNTAwRkNCNEFE
IC8qIFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlci5oICovOyB9OwogCQkwNzYzOEE5OTE4ODQ0
ODcyMDBFMTVBMUIgLyogTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2MzhBOTcxODg0NDg3MjAwRTE1QTFCIC8q
IE1lZGlhU2Vzc2lvbk1hbmFnZXJJT1MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQkwNzYzOEE5QTE4ODQ0ODcyMDBFMTVBMUIgLyogTWVkaWFTZXNz
aW9uTWFuYWdlcklPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDA3NjM4QTk4MTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRpYVNlc3Npb25NYW5hZ2VySU9T
Lm1tICovOyB9OwogCQkwNzY5NzA4NjE0NjNBRDg3MDBGNTAyQ0YgLyogVGV4dFRyYWNrTGlzdC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzY5NzA4
NDE0NjNBRDg3MDBGNTAyQ0YgLyogVGV4dFRyYWNrTGlzdC5jcHAgKi87IH07CkBAIC02MzQsNiAr
NjMzLDcgQEAKIAkJMUQyRjhFMDQyMzQ0NzUxNjAwOTkzQjY4IC8qIEVudGVyUGljdHVyZUluUGlj
dHVyZUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxREVGMDZDQTIzM0MzRDBCMDBFRTIyOEQgLyogRW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxRDJG
OEUwNTIzNDQ3NTFEMDA5OTNCNjggLyogSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFERUYwNkND
MjMzQzNEMjAwMEVFMjI4RCAvKiBIVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFEMkY4RTA2
MjM0NDc1MjMwMDk5M0I2OCAvKiBQaWN0dXJlSW5QaWN0dXJlV2luZG93LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREVGMDZDRDIzM0MzRDJBMDBFRTIy
OEQgLyogUGljdHVyZUluUGljdHVyZVdpbmRvdy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTFEMzkyRjJEMjNGMjBBNzAwMEUwNEIyRCAvKiBWaWRl
b0xheWVyTWFuYWdlck9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxRDM5MkYyODIzRjIwOUI0MDBFMDRCMkQgLyogVmlkZW9MYXllck1hbmFnZXJP
YmpDLm1tICovOyB9OwogCQkxRDlGMEZDMTIxMjIwMjlCMDA1RDhGRDQgLyogU2hhcmVEYXRhLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREM1NTQwMDIx
MUJBOEM4MDA0Qjc4MEUgLyogU2hhcmVEYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMURCQzFCNTYyMzQ3QjNEMjAwQjkwMUFGIC8qIFBpY3R1
cmVJblBpY3R1cmVPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMURCQzFCNTUyMzQ3QjNEMjAwQjkwMUFGIC8qIFBpY3R1cmVJblBpY3R1cmVP
YnNlcnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTFGMzZFQTlDMUUyMUJBMTcwMDYyMUUyNSAvKiBXZWJCYWNrZ3JvdW5kVGFza0NvbnRyb2xs
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFGMzZF
QTlBMUUyMUJBMTcwMDYyMUUyNSAvKiBXZWJCYWNrZ3JvdW5kVGFza0NvbnRyb2xsZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtODMzLDE3ICs4
MzMsNiBAQAogCQkyREFDQjlFOTIzNzU1RDAwMDBCNEMxODUgLyogR3JhcGhpY3NDb250ZXh0SW1w
bC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYwMDEy
M0YxRkFEODdENjAwNTMxRDc2IC8qIEdyYXBoaWNzQ29udGV4dEltcGwuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyREFGMzQzRDFFQTdFMEYxMDAz
ODJDRDMgLyogQ29uc3RhbnRQcm9wZXJ0eU1hcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMkRBRjM0M0IxRUE3RTBGMTAwMzgyQ0QzIC8qIENvbnN0YW50
UHJvcGVydHlNYXAuaCAqLzsgfTsKIAkJMkRENUE3MjcxRUJFRTQ3RDAwOUJBNTk3IC8qIENvbXBv
c2l0aW9uVW5kZXJsaW5lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyREQ1QTcyNjFFQkVFNDdEMDA5QkE1OTcgLyogQ29tcG9zaXRpb25VbmRlcmxpbmUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkyRERF
MUNFMzFGNTc0QUU1MDBEMUEzNjUgLyogSlNWUkZpZWxkT2ZWaWV3LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRERFMUNFMDFGNTc0QUQxMDBEMUEzNjUg
LyogSlNWUkZpZWxkT2ZWaWV3LmggKi87IH07Ci0JCTJEREUxQ0U0MUY1NzRBRTkwMEQxQTM2NSAv
KiBKU1ZSRGlzcGxheS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkRERTFDREUxRjU3NEFBQjAwRDFBMzY1IC8qIEpTVlJEaXNwbGF5LmggKi87IH07Ci0J
CTJEREUxQ0Y4MUY1NzRDMzkwMEQxQTM2NSAvKiBKU1ZSRGlzcGxheUNhcGFiaWxpdGllcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRERTFDRTYxRjU3
NEJGRjAwRDFBMzY1IC8qIEpTVlJEaXNwbGF5Q2FwYWJpbGl0aWVzLmggKi87IH07Ci0JCTJEREUx
Q0ZBMUY1NzRDM0UwMEQxQTM2NSAvKiBKU1ZSRGlzcGxheUV2ZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRERFMUNFODFGNTc0QkZGMDBEMUEzNjUg
LyogSlNWUkRpc3BsYXlFdmVudC5oICovOyB9OwotCQkyRERFMUNGQzFGNTc0Q0VFMDBEMUEzNjUg
LyogSlNWUkRpc3BsYXlFdmVudFJlYXNvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMkRERTFDRUExRjU3NEJGRjAwRDFBMzY1IC8qIEpTVlJEaXNwbGF5
RXZlbnRSZWFzb24uaCAqLzsgfTsKLQkJMkRERTFDRkUxRjU3NENGMzAwRDFBMzY1IC8qIEpTVlJF
eWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEREUx
Q0VDMUY1NzRCRkYwMEQxQTM2NSAvKiBKU1ZSRXllLmggKi87IH07Ci0JCTJEREUxRDAwMUY1NzRD
RjcwMEQxQTM2NSAvKiBKU1ZSRXllUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRERTFDRUUxRjU3NEJGRjAwRDFBMzY1IC8qIEpTVlJF
eWVQYXJhbWV0ZXJzLmggKi87IH07Ci0JCTJEREUxRDAyMUY1NzREMDAwMEQxQTM2NSAvKiBKU1ZS
RnJhbWVEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyRERFMUNGMDFGNTc0QkZGMDBEMUEzNjUgLyogSlNWUkZyYW1lRGF0YS5oICovOyB9OwotCQky
RERFMUQwNDFGNTc0RDA1MDBEMUEzNjUgLyogSlNWUkxheWVySW5pdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRERTFDRjIxRjU3NEJGRjAwRDFBMzY1
IC8qIEpTVlJMYXllckluaXQuaCAqLzsgfTsKLQkJMkRERTFEMDYxRjU3NEQwQTAwRDFBMzY1IC8q
IEpTVlJQb3NlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyRERFMUNGNDFGNTc0QkZGMDBEMUEzNjUgLyogSlNWUlBvc2UuaCAqLzsgfTsKLQkJMkRERTFE
MDgxRjU3NEQwRTAwRDFBMzY1IC8qIEpTVlJTdGFnZVBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEREUxQ0Y2MUY1NzRCRkYwMEQxQTM2
NSAvKiBKU1ZSU3RhZ2VQYXJhbWV0ZXJzLmggKi87IH07CiAJCTJERTcwMDIzMTkyRkU4MkEwMEIw
OTc1QyAvKiBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJERTcwMDIyMTkyRkU4MkEwMEIwOTc1QyAvKiBEaXNw
bGF5UmVmcmVzaE1vbml0b3JNYWMuaCAqLzsgfTsKIAkJMkRGNTEyQ0UxRDg3M0U0NzAwMUQ2Nzgw
IC8qIFJlcGxhY2VSYW5nZVdpdGhUZXh0Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRGNTEyQ0MxRDg3M0U0NzAwMUQ2NzgwIC8qIFJlcGxh
Y2VSYW5nZVdpdGhUZXh0Q29tbWFuZC5oICovOyB9OwogCQkyREZBNDg4RjFEQjU0MUQwMDAzNjJC
OTkgLyogQnVmZmVyU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyREZBNDg4RTFEQjU0MUMyMDAzNjJCOTkgLyogQnVmZmVyU291cmNlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE1OTgsNyAr
MTU4Nyw2IEBACiAJCTUyQjBENEJFMUM1N0ZEMUUwMDc3Q0U1MyAvKiBQbGF0Zm9ybVZpZXcuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyQjBENEJEMUM1
N0ZEMUUwMDc3Q0U1MyAvKiBQbGF0Zm9ybVZpZXcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MkIwRDRDMDFDNTdGRDY2MDA3N0NFNTMgLyogVmlk
ZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUyQjBENEJGMUM1N0ZENjYwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxz
Y3JlZW5DaGFuZ2VPYnNlcnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTUyQjBENEMyMUM1N0ZGOTEwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUyQjBENEMxMUM1N0ZGOTEwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owot
CQk1MkQ1QTE4RjFDNTQ1OTIzMDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2Vy
T2JqQy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUy
RDVBMThEMUM1NDU5MDMwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpD
Lm1tICovOyB9OwogCQk1MkQ1QTFBNzFDNTc0ODlEMDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVu
TW9kZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUy
RDVBMUE0MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUyRDVBMUE4MUM1NzQ4
QTMwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJENUExQTUxQzU3NDg4OTAw
REUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTJFMkNBRkMxOUZGMDIwNzAw
MUVFQjRGIC8qIE1lZGlhUHJvZHVjZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUyRTJDQUZCMTlGRjAyMDcwMDFFRUI0RiAvKiBNZWRpYVByb2R1Y2Vy
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTIx
NDEsOCArMjEyOSw2IEBACiAJCTcxRTJDNDI2MjFDOTM1MjgwMDI0RjhDOCAvKiBBbmltYXRpb25F
ZmZlY3RQaGFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzFFMkM0MjQyMUM5MzUxRDAwMjRGOEM4IC8qIEFuaW1hdGlvbkVmZmVjdFBoYXNlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzFFQURDRDgy
MjA4N0U3MjAwNjVBNDVGIC8qIFBvaW50ZXJJRC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNzFFQURDRDYyMjA4N0U2RDAwNjVBNDVGIC8qIFBvaW50ZXJJ
RC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcx
RUZDRURDMjAyQjM4QTkwMEQ3QzQxMSAvKiBBbmltYXRpb25FZmZlY3QuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcxRUZDRUQ3MjAyQjM4OEQwMEQ3QzQx
MSAvKiBBbmltYXRpb25FZmZlY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwotCQk3MjE0NDMzMTIyM0VDODU0MDBGMTJGRjcgLyogKG51bGwpIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07Ci0JCTcyMTQ0MzMyMjIzRUM4NUYwMEYxMkZGNyAvKiAobnVsbCkg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzIxNDQzMzMyMjNFQzhCMDAwRjEyRkY3IC8qIFNW
R1Byb3BlcnR5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1NUVFNTM2MzIyM0IyQTI0MDBGQkE5NDQgLyogU1ZHUHJvcGVydHkuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3MjE0NDMzNDIyM0VDOTE2MDBG
MTJGRjcgLyogU1ZHUHJvcGVydHlPd25lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTVFRTUzNjAyMjNCMkEyMTAwRkJBOTQ0IC8qIFNWR1Byb3BlcnR5
T3duZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk3MjI4M0YwRTIzMEIyNjhDMDBGNUQ4MjggLyogSW1hZ2VQYWludGluZ09wdGlvbnMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyQzE4QTNGMjMwQjA0
QjcwMDY4NDdDNyAvKiBJbWFnZVBhaW50aW5nT3B0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0yNTgyLDcgKzI1NjgsNiBAQAogCQk4QUY0
RTU1QzExREM1QTYzMDAwRUQzREUgLyogUGVyZm9ybWFuY2VUaW1pbmcuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBRjRFNTU5MTFEQzVBNjMwMDBFRDNE
RSAvKiBQZXJmb3JtYW5jZVRpbWluZy5oICovOyB9OwogCQk4QkQzN0E2ODIwMUJCMzlDMDAxMTcz
NEEgLyogUmVhZGFibGVTdHJlYW1DaHVuay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOEJEMzdBNjcyMDFCQjM5QzAwMTE3MzRBIC8qIFJlYWRhYmxlU3Ry
ZWFtQ2h1bmsuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk4RTRDOTZERDFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaFJlc3BvbnNlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4RTRDOTZEOTFBRDQ0ODM1
MDAzNjVBNTAgLyogSlNGZXRjaFJlc3BvbnNlLmggKi87IH07Ci0JCThFNjIwRTgxMjBFRTYwMjQw
MDdCQzVFRiAvKiBWUlBsYXRmb3JtRGlzcGxheUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEU2MjBFODAyMEVFNUZGQzAwN0JDNUVGIC8qIFZS
UGxhdGZvcm1EaXNwbGF5Q2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJOEVDNkM5NjMyMDFBMjUxNjAwRkJGQTUzIC8qIEdhcExlbmd0aC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEVDNkM5NjEy
MDFBMjUwMTAwRkJGQTUzIC8qIEdhcExlbmd0aC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCThGNjc1NjFCMTI4OEIxN0IwMDQ3QUNBMyAvKiBFdmVu
dFF1ZXVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
RjY3NTYxOTEyODhCMTdCMDA0N0FDQTMgLyogRXZlbnRRdWV1ZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkwMDE3NzQxMTJFMDM0NzgwMDY0ODQ2
MiAvKiBPRVNTdGFuZGFyZERlcml2YXRpdmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5MDAxNzczRTEyRTAzNDc4MDA2NDg0NjIgLyogT0VTU3RhbmRh
cmREZXJpdmF0aXZlcy5oICovOyB9OwpAQCAtNTQ4NCw3ICs1NDY5LDYgQEAKIAkJMDc1NEE1RTgy
MTVFQTNCNzAwMkQzQTk5IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NTRBNUVCMjE1RUFERjMwMDJEM0E5OSAvKiBS
ZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBSZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTA3NTdCMTNDMjE0QUU3OTcwMDc5NEIwRCAvKiBWaWRlb1ByZXNldC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb1ByZXNldC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQkwNzVCQTg0NzIwNjE4QUE1MDBGQ0I0QUQgLyogVmlkZW9G
dWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwNzYzOEE5NzE4ODQ0ODcyMDBFMTVBMUIgLyogTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVNlc3Npb25NYW5hZ2VySU9T
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NjM4QTk4MTg4NDQ4NzIwMEUxNUEx
QiAvKiBNZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMDc2OTcwODQxNDYzQUQ4NzAwRjUwMkNGIC8qIFRleHRUcmFja0xpc3Qu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGV4dFRyYWNrTGlzdC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02NTI3LDYgKzY1MTEsOSBAQAogCQkx
RDAwMjZBODIzNzRGOUQ5MDBDQTZDREYgLyogSlNFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0VudGVyUGljdHVyZUluUGljdHVy
ZUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEMDAyNkE5MjM3NEY5RDkw
MENBNkNERiAvKiBKU0VudGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRDJDODJCNjIzNkEzRjZBMDA1NUQ2QzUg
LyogUGljdHVyZUluUGljdHVyZVN1cHBvcnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGljdHVyZUluUGlj
dHVyZVN1cHBvcnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUQzOTJGMjgyM0Yy
MDlCNDAwRTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUQzOTJGMkEyM0YyMDlCNTAwRTA0QjJEIC8qIFZpZGVv
TGF5ZXJNYW5hZ2VyT2JqQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRl
b0xheWVyTWFuYWdlck9iakMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUQzOTJG
MkIyM0YyMDlEODAwRTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvTGF5ZXJNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTFEQkMxQjU1MjM0N0IzRDIwMEI5MDFBRiAvKiBQaWN0dXJlSW5QaWN0dXJl
T2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGljdHVyZUluUGljdHVyZU9ic2VydmVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEQzU1M0ZEMjExQkExMkEwMDRCNzgwRSAvKiBO
YXZpZ2F0b3JTaGFyZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTmF2aWdhdG9yU2hhcmUu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxREM1NTNGRjIxMUJBODQxMDA0Qjc4
MEUgLyogU2hhcmVEYXRhLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTaGFyZURhdGEuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODQ3MCw4ICs4NDU3LDYgQEAKIAkJNTJC
MEQ0QkYxQzU3RkQ2NjAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvRnVsbHNjcmVlbkNoYW5nZU9i
c2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyQjBENEMxMUM1N0ZGOTEw
MDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyQ0IxMURCMjJGRERCMkUwMDlGMEE2NCAvKiBXSExTTERl
ZmF1bHREZWxldGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0hMU0xEZWZhdWx0RGVsZXRlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUyRDVBMThEMUM1NDU5MDMwMERFMzRBMyAvKiBWaWRl
b0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTJENUExOEUxQzU0NTkwMzAwREUzNEEzIC8qIFZpZGVv
RnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1MkQ1QTFBNDFDNTc0ODg5MDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVu
TW9kZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVu
TW9kZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJENUExQTUxQzU3NDg4OTAw
REUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyRDVBMUE2MUM1NzQ4ODkwMERFMzRBMyAv
KiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA1NDksOCArMTA1MzQsNiBAQAogCQk4
RTMzQ0Q5MzIwMUEyOUMxMDBFMzkwOTMgLyogR2FwTGVuZ3RoLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdhcExlbmd0aC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCThFNEM5NkQ4MUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoUmVzcG9uc2UuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNGZXRjaFJlc3BvbnNlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEU0Qzk2RDkxQUQ0NDgzNTAwMzY1QTUw
IC8qIEpTRmV0Y2hSZXNwb25zZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U0ZldGNoUmVzcG9uc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOEU2MjBFN0Uy
MEVFNUZFMjAwN0JDNUVGIC8qIFZSUGxhdGZvcm1EaXNwbGF5LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZSUGxhdGZvcm1EaXNwbGF5LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJOEU2MjBFODAyMEVFNUZGQzAwN0JDNUVGIC8qIFZSUGxhdGZvcm1E
aXNwbGF5Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZSUGxhdGZv
cm1EaXNwbGF5Q2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThFQzZDOTYx
MjAxQTI1MDEwMEZCRkE1MyAvKiBHYXBMZW5ndGguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gR2FwTGVuZ3RoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThGNjc1
NjE5MTI4OEIxN0IwMDQ3QUNBMyAvKiBFdmVudFF1ZXVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEV2ZW50UXVldWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OEY5MzREODMxMTg5RjFFRTAwNTA4RDVEIC8qIEpTRXhlY1N0YXRlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTRXhlY1N0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xNTU0MCw3ICsxNTUyMyw3IEBACiAJCUY1ODc4NjYyMDJERTNCMTEwMUVBNDEyMiAv
KiBTU0xLZXlHZW5lcmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU1NMS2V5R2VuZXJhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlGNTg3ODY4NDAyREUzQjg2MDFFQTQx
MjIgLyogQ3Vyc29yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEN1cnNvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7
IHVzZXNUYWJzID0gMDsgfTsKIAkJRjU5NzNEREUxNUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZUNv
Y29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvY2FsZUNvY29hLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUY1OTczRERGMTVDRkIyMDMwMDI3RjgwNCAvKiBM
b2NhbGVDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IExv
Y2FsZUNvY29hLm1tOyBwYXRoID0gIi4uL2NvY29hL0xvY2FsZUNvY29hLm1tIjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU5NzNEREYxNUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZUNv
Y29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gTG9jYWxlQ29j
b2EubW07IHBhdGggPSAuLi9jb2NvYS9Mb2NhbGVDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjU5Qzk1RkQxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlu
cHV0VHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCYXNlRGF0
ZUFuZFRpbWVJbnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTlD
OTVGRTEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUExNTQyNTEyNzk1MzREMDBEMEIwQzAgLyog
VmFsaWRhdGlvbk1lc3NhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gVmFsaWRhdGlvbk1lc3NhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MjUxMzcsNyArMjUxMjAsNyBAQAogCQkJCUU0QUZDRkE0MERBRjI5QTMwMEY1RjU1QyAvKiBVbml0
QmV6aWVyLmggKi8sCiAJCQkJMEY1QTU3Q0EyMjlCMThBRTAwMjVFREE5IC8qIFZlbG9jaXR5RGF0
YS5jcHAgKi8sCiAJCQkJMEYxQTBDMzYyMjlBNDgxODAwRDM3QURCIC8qIFZlbG9jaXR5RGF0YS5o
ICovLAotCQkJCTA3NUJBODQ3MjA2MThBQTUwMEZDQjRBRCAvKiBWaWRlb0Z1bGxzY3JlZW5MYXll
ck1hbmFnZXIuaCAqLywKKwkJCQkxRDM5MkYyQjIzRjIwOUQ4MDBFMDRCMkQgLyogVmlkZW9MYXll
ck1hbmFnZXIuaCAqLywKIAkJCQlCRUYyOUVFQTE3MTVERDA5MDBDNEI0QzkgLyogVmlkZW9UcmFj
a1ByaXZhdGUuaCAqLywKIAkJCQkxNDExRENCMDE2NEMzOUE4MDBENDlCQzEgLyogV2lkdGhDYWNo
ZS5oICovLAogCQkJCTkzOUIwMkVDMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmNw
cCAqLywKQEAgLTI1ODM4LDcgKzI1ODIxLDYgQEAKIAkJCQk2NTZCODRENzBBRUExQ0U5MDBBMDk1
QjQgLyogbmV0d29yayAqLywKIAkJCQkxQTJFNkU1NjBDQzU1MUUwMDA0QTIwNjIgLyogc3FsICov
LAogCQkJCUIyQzNEOUVDMEQwMDZDMUQwMEVGNkYyNiAvKiB0ZXh0ICovLAotCQkJCUUxODgyMzVG
MjAzMUY1MEYwMEI0MkRGMyAvKiB2ciAqLywKIAkJCQlERkRCOTEyQ0Y4RTg4QTZEQTFBRDI2NEYg
LyogQWJvcnRhYmxlVGFza1F1ZXVlLmggKi8sCiAJCQkJNDlBRTJEOTQxMzRFRTVGOTAwNzI5MjBB
IC8qIENhbGN1bGF0aW9uVmFsdWUuY3BwICovLAogCQkJCTQ5QUUyRDk1MTM0RUU1RjkwMDcyOTIw
QSAvKiBDYWxjdWxhdGlvblZhbHVlLmggKi8sCkBAIC0yNjc0Miw4ICsyNjcyNCw4IEBACiAJCQkJ
N0EyOUY1NzExOEM2OTUxNDAwNEQwRjgxIC8qIE91dE9mQmFuZFRleHRUcmFja1ByaXZhdGVBVkYu
aCAqLywKIAkJCQlDREM4QjVBOTE4MDQ3RkYxMDAxNkU2ODUgLyogU291cmNlQnVmZmVyUHJpdmF0
ZUFWRk9iakMuaCAqLywKIAkJCQlDREM4QjVBODE4MDQ3RkYxMDAxNkU2ODUgLyogU291cmNlQnVm
ZmVyUHJpdmF0ZUFWRk9iakMubW0gKi8sCi0JCQkJNTJENUExOEUxQzU0NTkwMzAwREUzNEEzIC8q
IFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakMuaCAqLywKLQkJCQk1MkQ1QTE4RDFDNTQ1
OTAzMDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLywKKwkJ
CQkxRDM5MkYyQTIzRjIwOUI1MDBFMDRCMkQgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLmggKi8s
CisJCQkJMUQzOTJGMjgyM0YyMDlCNDAwRTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5t
bSAqLywKIAkJCQlDRDMzNkY2NTE3RkEwQUM2MDBERERDRDAgLyogVmlkZW9UcmFja1ByaXZhdGVB
VkZPYmpDLmNwcCAqLywKIAkJCQlDRDMzNkY2NjE3RkEwQUM2MDBERERDRDAgLyogVmlkZW9UcmFj
a1ByaXZhdGVBVkZPYmpDLmggKi8sCiAJCQkJQ0Q4QjVBNDExODBEMTQ5QTAwOEI4RTY1IC8qIFZp
ZGVvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmggKi8sCkBAIC0yODkxNSw4ICsyODg5
Nyw2IEBACiAJCQlpc2EgPSBQQlhIZWFkZXJzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFz
ayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKLQkJCQk3MjE0NDMzMjIyM0VDODVGMDBGMTJG
RjcgLyogKG51bGwpIGluIEhlYWRlcnMgKi8sCi0JCQkJNzIxNDQzMzEyMjNFQzg1NDAwRjEyRkY3
IC8qIChudWxsKSBpbiBIZWFkZXJzICovLAogCQkJCTdDRDBFMkI4MUY4MEE0ODIwMDE2QTRDRSAv
KiBBYm9ydENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDRDBFMkJGMUY4MEE1NkUw
MDE2QTRDRSAvKiBBYm9ydFNpZ25hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDZCOTUxOTUyMDdE
NjMzNDAwQTdEMkREIC8qIEFic3RyYWN0RE9NV2luZG93LmggaW4gSGVhZGVycyAqLywKQEAgLTMx
MTc4LDE3ICszMTE1OCw2IEBACiAJCQkJQkU4RUYwNEQxNzFDOTAxNDAwOUI0OEMzIC8qIEpTVmlk
ZW9UcmFja0xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2RTc5MTQ5MUY5N0UwMUEwMDE5OTcz
OSAvKiBKU1Zpc2liaWxpdHlTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzc3OUJEOTYxRjMy
MjQ2QTAwQzIxNDE3IC8qIEpTVmlzdWFsVmlld3BvcnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTJE
REUxQ0U0MUY1NzRBRTkwMEQxQTM2NSAvKiBKU1ZSRGlzcGxheS5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJMkRERTFDRjgxRjU3NEMzOTAwRDFBMzY1IC8qIEpTVlJEaXNwbGF5Q2FwYWJpbGl0aWVzLmgg
aW4gSGVhZGVycyAqLywKLQkJCQkyRERFMUNGQTFGNTc0QzNFMDBEMUEzNjUgLyogSlNWUkRpc3Bs
YXlFdmVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMkRERTFDRkMxRjU3NENFRTAwRDFBMzY1IC8q
IEpTVlJEaXNwbGF5RXZlbnRSZWFzb24uaCBpbiBIZWFkZXJzICovLAotCQkJCTJEREUxQ0ZFMUY1
NzRDRjMwMEQxQTM2NSAvKiBKU1ZSRXllLmggaW4gSGVhZGVycyAqLywKLQkJCQkyRERFMUQwMDFG
NTc0Q0Y3MDBEMUEzNjUgLyogSlNWUkV5ZVBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTJEREUxQ0UzMUY1NzRBRTUwMEQxQTM2NSAvKiBKU1ZSRmllbGRPZlZpZXcuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTJEREUxRDAyMUY1NzREMDAwMEQxQTM2NSAvKiBKU1ZSRnJhbWVEYXRhLmggaW4g
SGVhZGVycyAqLywKLQkJCQkyRERFMUQwNDFGNTc0RDA1MDBEMUEzNjUgLyogSlNWUkxheWVySW5p
dC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMkRERTFEMDYxRjU3NEQwQTAwRDFBMzY1IC8qIEpTVlJQ
b3NlLmggaW4gSGVhZGVycyAqLywKLQkJCQkyRERFMUQwODFGNTc0RDBFMDBEMUEzNjUgLyogSlNW
UlN0YWdlUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkUyMDUwODIxOEE0NjBDMzAw
ODA2NDdFIC8qIEpTVlRUQ3VlLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUY5QjIwRDE4Q0ZCNUY0
MDBDNjRCRUYgLyogSlNWVFRSZWdpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTdBRjlCMjBGMThD
RkI1RjQwMEM2NEJFRiAvKiBKU1ZUVFJlZ2lvbkxpc3QuaCBpbiBIZWFkZXJzICovLApAQCAtMzI4
NTQsNyArMzI4MjMsNiBAQAogCQkJCTUyQjBENEMwMUM1N0ZENjYwMDc3Q0U1MyAvKiBWaWRlb0Z1
bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJM0ZCQzRBRjQxODk4
ODE1NjAwNDZFRTM4IC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1MkIwRDRDMjFDNTdGRjkxMDA3N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVuSW50
ZXJmYWNlTWFjLmggaW4gSGVhZGVycyAqLywKLQkJCQkwNzVCQTg0OTIwNjE4QUE1MDBGQ0I0QUQg
LyogVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MkQ1
QTFBNzFDNTc0ODlEMDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWwuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTUyRDVBMUE4MUM1NzQ4QTMwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2Rl
bFZpZGVvRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RFODNEQjIxODNDNDQwNjAwMzFF
QUEzIC8qIFZpZGVvUGxheWJhY2tRdWFsaXR5LmggaW4gSGVhZGVycyAqLywKQEAgLTM0Mjg2LDcg
KzM0MjU0LDcgQEAKIAkJCQk3Q0U2ODM0NDE5MjE0M0E4MDBGNEQ5MjggLyogVXNlck1lc3NhZ2VI
YW5kbGVyRGVzY3JpcHRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QzczRkIwNzE5MUVGNDE3
MDA3REUwNjEgLyogVXNlck1lc3NhZ2VIYW5kbGVyc05hbWVzcGFjZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkzRkJDNEFGMzE4OTg4MTU2MDA0NkVFMzggLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQubW0gaW4gU291cmNlcyAqLywKLQkJCQk1MkQ1QTE4RjFDNTQ1OTIzMDBERTM0QTMg
LyogVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQy5tbSBpbiBTb3VyY2VzICovLAorCQkJ
CTFEMzkyRjJEMjNGMjBBNzAwMEUwNEIyRCAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gaW4g
U291cmNlcyAqLywKIAkJCQk0MUNENkY4QzIzRDZFODIxMDBCMTY0MjEgLyogVmlkZW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkU4OEUwREUxNzE1RDJBMjAw
NjU4RDk4IC8qIFZpZGVvVHJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkU4OEUwRTExNzE1
RDJBMjAwNjU4RDk4IC8qIFZpZGVvVHJhY2tMaXN0LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9GdWxsc2NyZWVuTGF5
ZXJNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb0xheWVy
TWFuYWdlci5oCnNpbWlsYXJpdHkgaW5kZXggOTIlCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlci5oCnJlbmFtZSB0
byBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb0xheWVyTWFuYWdlci5oCmlu
ZGV4IDY2MmE5NGM5ZTMwLi5lZTQ3NzllZmVkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9MYXllck1hbmFnZXIuaApAQCAtMzYs
MjAgKzM2LDIyIEBAIGNsYXNzIEZsb2F0UmVjdDsKIGNsYXNzIEludFNpemU7CiBjbGFzcyBUZXh0
VHJhY2tSZXByZXNlbnRhdGlvbjsKIAotY2xhc3MgVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2Vy
IHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXIp
OworY2xhc3MgVmlkZW9MYXllck1hbmFnZXIgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFZp
ZGVvTGF5ZXJNYW5hZ2VyKTsKIHB1YmxpYzoKLSAgICBWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFn
ZXIoKSA9IGRlZmF1bHQ7Ci0gICAgdmlydHVhbCB+VmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2Vy
KCkgeyB9CisgICAgVmlkZW9MYXllck1hbmFnZXIoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+
VmlkZW9MYXllck1hbmFnZXIoKSB7IH0KIAogICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciAqdmlk
ZW9JbmxpbmVMYXllcigpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIgKnZp
ZGVvRnVsbHNjcmVlbkxheWVyKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgRmxvYXRSZWN0IHZp
ZGVvRnVsbHNjcmVlbkZyYW1lKCkgY29uc3QgPSAwOworCiAgICAgdmlydHVhbCB2b2lkIHNldFZp
ZGVvTGF5ZXIoUGxhdGZvcm1MYXllciosIEludFNpemUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkRGVzdHJveVZpZGVvTGF5ZXIoKSA9IDA7CisKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9G
dWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciosIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNv
bXBsZXRpb25IYW5kbGVyLCBOYXRpdmVJbWFnZVB0cikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB1
cGRhdGVWaWRlb0Z1bGxzY3JlZW5JbmxpbmVJbWFnZShOYXRpdmVJbWFnZVB0cikgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShGbG9hdFJlY3QpID0gMDsKLSAg
ICB2aXJ0dWFsIHZvaWQgZGlkRGVzdHJveVZpZGVvTGF5ZXIoKSA9IDA7CiAKICAgICB2aXJ0dWFs
IGJvb2wgcmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbigpIGNvbnN0ID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0VGV4dFRyYWNrUmVwcmVzZW50YXRpb24oVGV4dFRyYWNrUmVwcmVzZW50
YXRpb24qKSA9IDA7CkBAIC01Nyw0ICs1OSwzIEBAIHB1YmxpYzoKIH07CiAKIH0KLQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5oCmluZGV4IDZkMWNjYzlmM2NkLi5hZjZjODA0ZjZjZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMuaApAQCAtNjUsNyArNjUsNyBAQCBjbGFzcyBJbmJhbmRNZXRhZGF0YVRleHRUcmFj
a1ByaXZhdGVBVkY7CiBjbGFzcyBNZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQzsKIGNsYXNzIFBp
eGVsQnVmZmVyQ29uZm9ybWVyQ1Y7CiBjbGFzcyBTaGFyZWRCdWZmZXI7Ci1jbGFzcyBWaWRlb0Z1
bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDOworY2xhc3MgVmlkZW9MYXllck1hbmFnZXJPYmpDOwog
Y2xhc3MgVmlkZW9UZXh0dXJlQ29waWVyQ1Y7CiBjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZUFWRk9i
akM7CiBjbGFzcyBXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXI7CkBAIC0zNDAsNyArMzQwLDcgQEAg
cHJpdmF0ZToKICAgICBSZXRhaW5QdHI8QVZQbGF5ZXI+IG1fYXZQbGF5ZXI7CiAgICAgUmV0YWlu
UHRyPEFWUGxheWVySXRlbT4gbV9hdlBsYXllckl0ZW07CiAgICAgUmV0YWluUHRyPEFWUGxheWVy
TGF5ZXI+IG1fdmlkZW9MYXllcjsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8VmlkZW9GdWxsc2NyZWVu
TGF5ZXJNYW5hZ2VyT2JqQz4gbV92aWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXI7CisgICAgc3Rk
Ojp1bmlxdWVfcHRyPFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQz4gbV92aWRlb0xheWVyTWFuYWdlcjsK
ICAgICBNZWRpYVBsYXllcjo6VmlkZW9HcmF2aXR5IG1fdmlkZW9GdWxsc2NyZWVuR3Jhdml0eTsK
ICAgICBSZXRhaW5QdHI8V2ViQ29yZUFWRk1vdmllT2JzZXJ2ZXI+IG1fb2JqY09ic2VydmVyOwog
ICAgIFJldGFpblB0cjxpZD4gbV90aW1lT2JzZXJ2ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpp
bmRleCAxZWFkNWNmMTc4ZC4uODhhMDU0ZWM5YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpA
QCAtNjAsNyArNjAsNyBAQAogI2ltcG9ydCAiVGV4dEVuY29kaW5nLmgiCiAjaW1wb3J0ICJUZXh0
VHJhY2tSZXByZXNlbnRhdGlvbi5oIgogI2ltcG9ydCAiVGV4dHVyZUNhY2hlQ1YuaCIKLSNpbXBv
cnQgIlZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakMuaCIKKyNpbXBvcnQgIlZpZGVvTGF5
ZXJNYW5hZ2VyT2JqQy5oIgogI2ltcG9ydCAiVmlkZW9UZXh0dXJlQ29waWVyQ1YuaCIKICNpbXBv
cnQgIlZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5oIgogI2ltcG9ydCAiV2ViQ29yZUFWRlJlc291
cmNlTG9hZGVyLmgiCkBAIC00MDQsNyArNDA0LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjpjbGVhck1lZGlhQ2FjaGVGb3JPcmlnaW5zKGNvbnN0IFN0cmluZyYK
IAogTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQyhNZWRpYVBsYXllciogcGxheWVyKQogICAgIDogTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uKHBsYXllcikKLSAgICAsIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXJN
YW5hZ2VyKG1ha2VVbmlxdWU8VmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQz4obG9nZ2Vy
KCksIGxvZ0lkZW50aWZpZXIoKSkpCisgICAgLCBtX3ZpZGVvTGF5ZXJNYW5hZ2VyKG1ha2VVbmlx
dWU8VmlkZW9MYXllck1hbmFnZXJPYmpDPihsb2dnZXIoKSwgbG9nSWRlbnRpZmllcigpKSkKICAg
ICAsIG1fdmlkZW9GdWxsc2NyZWVuR3Jhdml0eShNZWRpYVBsYXllcjo6VmlkZW9HcmF2aXR5OjpS
ZXNpemVBc3BlY3QpCiAgICAgLCBtX29iamNPYnNlcnZlcihhZG9wdE5TKFtbV2ViQ29yZUFWRk1v
dmllT2JzZXJ2ZXIgYWxsb2NdIGluaXRXaXRoUGxheWVyOm1ha2VXZWFrUHRyKCp0aGlzKV0pKQog
ICAgICwgbV92aWRlb0ZyYW1lSGFzRHJhd24oZmFsc2UpCkBAIC02MTksNyArNjE5LDcgQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVlBsYXllckxheWVy
KCkKICAgICBJbnRTaXplIGRlZmF1bHRTaXplID0gc25hcHBlZEludFJlY3QocGxheWVyKCktPnBs
YXllckNvbnRlbnRCb3hSZWN0KCkpLnNpemUoKTsKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJ
RVIpOwogCi0gICAgbV92aWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXItPnNldFZpZGVvTGF5ZXIo
bV92aWRlb0xheWVyLmdldCgpLCBkZWZhdWx0U2l6ZSk7CisgICAgbV92aWRlb0xheWVyTWFuYWdl
ci0+c2V0VmlkZW9MYXllcihtX3ZpZGVvTGF5ZXIuZ2V0KCksIGRlZmF1bHRTaXplKTsKIAogI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpICYmICFQTEFURk9STShXQVRDSE9TKQogICAgIGlmIChbbV92
aWRlb0xheWVyIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Ioc2V0UElQTW9kZUVuYWJsZWQ6
KV0pCkBAIC02MzYsNyArNjM2LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDOjpkZXN0cm95VmlkZW9MYXllcigpCiAKICAgICBbbV92aWRlb0xheWVyIHJlbW92ZU9i
c2VydmVyOm1fb2JqY09ic2VydmVyLmdldCgpIGZvcktleVBhdGg6QCJyZWFkeUZvckRpc3BsYXki
XTsKICAgICBbbV92aWRlb0xheWVyIHNldFBsYXllcjpuaWxdOwotICAgIG1fdmlkZW9GdWxsc2Ny
ZWVuTGF5ZXJNYW5hZ2VyLT5kaWREZXN0cm95VmlkZW9MYXllcigpOworICAgIG1fdmlkZW9MYXll
ck1hbmFnZXItPmRpZERlc3Ryb3lWaWRlb0xheWVyKCk7CiAKICAgICBtX3ZpZGVvTGF5ZXIgPSBu
aWw7CiB9CkBAIC0xMDczLDI2ICsxMDczLDI2IEBAIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbjo6SXRlbVN0YXR1cyBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwCiAK
IFBsYXRmb3JtTGF5ZXIqIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBsYXRm
b3JtTGF5ZXIoKSBjb25zdAogewotICAgIHJldHVybiBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyTWFu
YWdlci0+dmlkZW9JbmxpbmVMYXllcigpOworICAgIHJldHVybiBtX3ZpZGVvTGF5ZXJNYW5hZ2Vy
LT52aWRlb0lubGluZUxheWVyKCk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6dXBkYXRlVmlkZW9GdWxsc2NyZWVuSW5saW5lSW1hZ2UoKQogewogICAgIHVw
ZGF0ZUxhc3RJbWFnZShVcGRhdGVUeXBlOjpVcGRhdGVTeW5jaHJvbm91c2x5KTsKLSAgICBtX3Zp
ZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlci0+dXBkYXRlVmlkZW9GdWxsc2NyZWVuSW5saW5lSW1h
Z2UobV9sYXN0SW1hZ2UpOworICAgIG1fdmlkZW9MYXllck1hbmFnZXItPnVwZGF0ZVZpZGVvRnVs
bHNjcmVlbklubGluZUltYWdlKG1fbGFzdEltYWdlKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxh
eWVyKiB2aWRlb0Z1bGxzY3JlZW5MYXllciwgRnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQogewogICAgIHVwZGF0ZUxhc3RJbWFnZShVcGRhdGVUeXBlOjpVcGRhdGVTeW5jaHJv
bm91c2x5KTsKLSAgICBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlci0+c2V0VmlkZW9GdWxs
c2NyZWVuTGF5ZXIodmlkZW9GdWxsc2NyZWVuTGF5ZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpLCBtX2xhc3RJbWFnZSk7CisgICAgbV92aWRlb0xheWVyTWFuYWdlci0+c2V0VmlkZW9GdWxs
c2NyZWVuTGF5ZXIodmlkZW9GdWxsc2NyZWVuTGF5ZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpLCBtX2xhc3RJbWFnZSk7CiAgICAgdXBkYXRlRGlzYWJsZUV4dGVybmFsUGxheWJhY2soKTsK
IH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRWaWRlb0Z1
bGxzY3JlZW5GcmFtZShGbG9hdFJlY3QgZnJhbWUpCiB7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVO
VElGSUVSLCAid2lkdGggPSAiLCBmcmFtZS5zaXplKCkud2lkdGgoKSwgIiwgaGVpZ2h0ID0gIiwg
ZnJhbWUuc2l6ZSgpLmhlaWdodCgpKTsKLSAgICBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdl
ci0+c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoZnJhbWUpOworICAgIG1fdmlkZW9MYXllck1hbmFn
ZXItPnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKGZyYW1lKTsKIH0KIAogdm9pZCBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5HcmF2aXR5KE1lZGlh
UGxheWVyOjpWaWRlb0dyYXZpdHkgZ3Jhdml0eSkKQEAgLTE3NjQsNyArMTc2NCw3IEBAIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dXBkYXRlVmlkZW9MYXllckdyYXZp
dHkoKQogCiAgICAgLy8gRG8gbm90IGF0dGVtcHQgdG8gY2hhbmdlIHRoZSB2aWRlbyBncmF2aXR5
IHdoaWxlIGluIGZ1bGwgc2NyZWVuIG1vZGUuCiAgICAgLy8gU2VlIHNldFZpZGVvRnVsbHNjcmVl
bkdyYXZpdHkoKS4KLSAgICBpZiAobV92aWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXItPnZpZGVv
RnVsbHNjcmVlbkxheWVyKCkpCisgICAgaWYgKG1fdmlkZW9MYXllck1hbmFnZXItPnZpZGVvRnVs
bHNjcmVlbkxheWVyKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIFtDQVRyYW5zYWN0aW9uIGJl
Z2luXTsKQEAgLTIwNTMsMTcgKzIwNTMsMTcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjp1cGRhdGVWaWRlb1RyYWNrcygpCiAKIGJvb2wgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6cmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbigpIGNv
bnN0CiB7Ci0gICAgcmV0dXJuIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLT5yZXF1aXJl
c1RleHRUcmFja1JlcHJlc2VudGF0aW9uKCk7CisgICAgcmV0dXJuIG1fdmlkZW9MYXllck1hbmFn
ZXItPnJlcXVpcmVzVGV4dFRyYWNrUmVwcmVzZW50YXRpb24oKTsKIH0KIAogdm9pZCBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzeW5jVGV4dFRyYWNrQm91bmRzKCkKIHsKLSAg
ICBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlci0+c3luY1RleHRUcmFja0JvdW5kcygpOwor
ICAgIG1fdmlkZW9MYXllck1hbmFnZXItPnN5bmNUZXh0VHJhY2tCb3VuZHMoKTsKIH0KIAogdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRUZXh0VHJhY2tSZXByZXNl
bnRhdGlvbihUZXh0VHJhY2tSZXByZXNlbnRhdGlvbiogcmVwcmVzZW50YXRpb24pCiB7Ci0gICAg
bV92aWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXItPnNldFRleHRUcmFja1JlcHJlc2VudGF0aW9u
KHJlcHJlc2VudGF0aW9uKTsKKyAgICBtX3ZpZGVvTGF5ZXJNYW5hZ2VyLT5zZXRUZXh0VHJhY2tS
ZXByZXNlbnRhdGlvbihyZXByZXNlbnRhdGlvbik7CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoVklE
RU9fVFJBQ0spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCmluZGV4IDE0ZGRmYmZiZTJmLi41ZGUz
MzZjYjY0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKQEAgLTU1LDcgKzU1LDcgQEAgY2xh
c3MgTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQzsKIGNsYXNzIFBpeGVsQnVmZmVyQ29uZm9ybWVy
Q1Y7CiBjbGFzcyBQbGF0Zm9ybUNsb2NrQ007CiBjbGFzcyBUZXh0dXJlQ2FjaGVDVjsKLWNsYXNz
IFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakM7CitjbGFzcyBWaWRlb0xheWVyTWFuYWdl
ck9iakM7CiBjbGFzcyBWaWRlb1RleHR1cmVDb3BpZXJDVjsKIGNsYXNzIFdlYkNvcmVEZWNvbXBy
ZXNzaW9uU2Vzc2lvbjsKIApAQCAtMzI1LDggKzMyNSw3IEBAIHByaXZhdGU6CiAjZW5kaWYKICAg
ICBSZWY8Y29uc3QgTG9nZ2VyPiBtX2xvZ2dlcjsKICAgICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50
aWZpZXI7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9i
akM+IG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyOwotCisgICAgc3RkOjp1bmlxdWVfcHRy
PFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQz4gbV92aWRlb0xheWVyTWFuYWdlcjsKICAgICBSZWY8RWZm
ZWN0aXZlUmF0ZUNoYW5nZWRMaXN0ZW5lcj4gbV9lZmZlY3RpdmVSYXRlQ2hhbmdlZExpc3RlbmVy
OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCmluZGV4IDcwMjlmZjk3Mjg5Li45Mjcz
YzllYjFhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpAQCAtMzksNyArMzksNyBAQAog
I2ltcG9ydCAiUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oIgogI2ltcG9ydCAiVGV4dFRyYWNrUmVw
cmVzZW50YXRpb24uaCIKICNpbXBvcnQgIlRleHR1cmVDYWNoZUNWLmgiCi0jaW1wb3J0ICJWaWRl
b0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDLmgiCisjaW1wb3J0ICJWaWRlb0xheWVyTWFuYWdl
ck9iakMuaCIKICNpbXBvcnQgIlZpZGVvVGV4dHVyZUNvcGllckNWLmgiCiAjaW1wb3J0ICJXZWJD
b3JlRGVjb21wcmVzc2lvblNlc3Npb24uaCIKICNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVkFzc2V0
Lmg+CkBAIC0xMzksNyArMTM5LDcgQEAgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMoTWVkaWEKICAgICAsIG1f
bG9hZGluZ1Byb2dyZXNzZWQoZmFsc2UpCiAgICAgLCBtX2xvZ2dlcihwbGF5ZXItPm1lZGlhUGxh
eWVyTG9nZ2VyKCkpCiAgICAgLCBtX2xvZ0lkZW50aWZpZXIocGxheWVyLT5tZWRpYVBsYXllckxv
Z0lkZW50aWZpZXIoKSkKLSAgICAsIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyKG1ha2VV
bmlxdWU8VmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQz4obV9sb2dnZXIsIG1fbG9nSWRl
bnRpZmllcikpCisgICAgLCBtX3ZpZGVvTGF5ZXJNYW5hZ2VyKG1ha2VVbmlxdWU8VmlkZW9MYXll
ck1hbmFnZXJPYmpDPihtX2xvZ2dlciwgbV9sb2dJZGVudGlmaWVyKSkKICAgICAsIG1fZWZmZWN0
aXZlUmF0ZUNoYW5nZWRMaXN0ZW5lcihFZmZlY3RpdmVSYXRlQ2hhbmdlZExpc3RlbmVyOjpjcmVh
dGUoKnRoaXMsIFttX3N5bmNocm9uaXplciB0aW1lYmFzZV0pKQogewogICAgIGF1dG8gbG9nU2l0
ZUlkZW50aWZpZXIgPSBMT0dJREVOVElGSUVSOwpAQCAtMzEwLDcgKzMxMCw3IEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpwcmVwYXJlVG9QbGF5KCkKIAogUGxh
dGZvcm1MYXllciogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpwbGF0Zm9y
bUxheWVyKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV92aWRlb0Z1bGxzY3JlZW5MYXllck1hbmFn
ZXItPnZpZGVvSW5saW5lTGF5ZXIoKTsKKyAgICByZXR1cm4gbV92aWRlb0xheWVyTWFuYWdlci0+
dmlkZW9JbmxpbmVMYXllcigpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQzo6cGxheSgpCkBAIC03NjEsNyArNzYxLDcgQEAgdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmVuc3VyZUxheWVyKCkKICAgICBbbV9zeW5jaHJvbml6
ZXIgYWRkUmVuZGVyZXI6bV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuZ2V0KCldOwogICAgIGlm
IChtX21lZGlhU291cmNlUHJpdmF0ZSkKICAgICAgICAgbV9tZWRpYVNvdXJjZVByaXZhdGUtPnNl
dFZpZGVvTGF5ZXIobV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuZ2V0KCkpOwotICAgIG1fdmlk
ZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLT5zZXRWaWRlb0xheWVyKG1fc2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyLmdldCgpLCBzbmFwcGVkSW50UmVjdChtX3BsYXllci0+cGxheWVyQ29udGVudEJv
eFJlY3QoKSkuc2l6ZSgpKTsKKyAgICBtX3ZpZGVvTGF5ZXJNYW5hZ2VyLT5zZXRWaWRlb0xheWVy
KG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmdldCgpLCBzbmFwcGVkSW50UmVjdChtX3BsYXll
ci0+cGxheWVyQ29udGVudEJveFJlY3QoKSkuc2l6ZSgpKTsKICAgICBtX3BsYXllci0+cmVuZGVy
aW5nTW9kZUNoYW5nZWQoKTsKIH0KIApAQCAtNzc3LDcgKzc3Nyw3IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpkZXN0cm95TGF5ZXIoKQogCiAgICAgaWYgKG1f
bWVkaWFTb3VyY2VQcml2YXRlKQogICAgICAgICBtX21lZGlhU291cmNlUHJpdmF0ZS0+c2V0Vmlk
ZW9MYXllcihudWxscHRyKTsKLSAgICBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlci0+ZGlk
RGVzdHJveVZpZGVvTGF5ZXIoKTsKKyAgICBtX3ZpZGVvTGF5ZXJNYW5hZ2VyLT5kaWREZXN0cm95
VmlkZW9MYXllcigpOwogICAgIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyID0gbnVsbHB0cjsK
ICAgICBzZXRIYXNBdmFpbGFibGVWaWRlb0ZyYW1lKGZhbHNlKTsKICAgICBtX3BsYXllci0+cmVu
ZGVyaW5nTW9kZUNoYW5nZWQoKTsKQEAgLTExNTQsMjcgKzExNTQsMjcgQEAgdm9pZCBNZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmNoYXJhY3RlcmlzdGljc0NoYW5nZWQoKQog
dm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldFZpZGVvRnVsbHNj
cmVlbkxheWVyKFBsYXRmb3JtTGF5ZXIgKnZpZGVvRnVsbHNjcmVlbkxheWVyLCBXVEY6OkZ1bmN0
aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICB1cGRhdGVMYXN0SW1hZ2Uo
KTsKLSAgICBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlci0+c2V0VmlkZW9GdWxsc2NyZWVu
TGF5ZXIodmlkZW9GdWxsc2NyZWVuTGF5ZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBt
X2xhc3RJbWFnZSk7CisgICAgbV92aWRlb0xheWVyTWFuYWdlci0+c2V0VmlkZW9GdWxsc2NyZWVu
TGF5ZXIodmlkZW9GdWxsc2NyZWVuTGF5ZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBt
X2xhc3RJbWFnZSk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShGbG9hdFJlY3QgZnJhbWUpCiB7Ci0gICAgbV92
aWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXItPnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKGZyYW1l
KTsKKyAgICBtX3ZpZGVvTGF5ZXJNYW5hZ2VyLT5zZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShmcmFt
ZSk7CiB9CiAKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpyZXF1
aXJlc1RleHRUcmFja1JlcHJlc2VudGF0aW9uKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV92aWRl
b0Z1bGxzY3JlZW5MYXllck1hbmFnZXItPnZpZGVvRnVsbHNjcmVlbkxheWVyKCk7CisgICAgcmV0
dXJuIG1fdmlkZW9MYXllck1hbmFnZXItPnZpZGVvRnVsbHNjcmVlbkxheWVyKCk7CiB9CiAgICAg
CiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c3luY1RleHRUcmFj
a0JvdW5kcygpCiB7Ci0gICAgbV92aWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXItPnN5bmNUZXh0
VHJhY2tCb3VuZHMoKTsKKyAgICBtX3ZpZGVvTGF5ZXJNYW5hZ2VyLT5zeW5jVGV4dFRyYWNrQm91
bmRzKCk7CiB9CiAgICAgCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Qzo6c2V0VGV4dFRyYWNrUmVwcmVzZW50YXRpb24oVGV4dFRyYWNrUmVwcmVzZW50YXRpb24qIHJl
cHJlc2VudGF0aW9uKQogewotICAgIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLT5zZXRU
ZXh0VHJhY2tSZXByZXNlbnRhdGlvbihyZXByZXNlbnRhdGlvbik7CisgICAgbV92aWRlb0xheWVy
TWFuYWdlci0+c2V0VGV4dFRyYWNrUmVwcmVzZW50YXRpb24ocmVwcmVzZW50YXRpb24pOwogfQog
CiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDLmgKaW5kZXggOTA5ZWI0OTAzYTEuLjkyYzA4MjE2NTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakMuaApAQCAtNDgsNyArNDgsNyBAQCBjbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3Ry
ZWFtOwogY2xhc3MgQVZWaWRlb0NhcHR1cmVTb3VyY2U7CiBjbGFzcyBNZWRpYVNvdXJjZVByaXZh
dGVDbGllbnQ7CiBjbGFzcyBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWOwotY2xhc3MgVmlkZW9GdWxs
c2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQzsKK2NsYXNzIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQzsKIGNs
YXNzIFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW07CiAKIGNsYXNzIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQyBmaW5hbCA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJ
bnRlcmZhY2UsIHByaXZhdGUgTWVkaWFTdHJlYW1Qcml2YXRlOjpPYnNlcnZlciwgcHJpdmF0ZSBN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXIsIHB1YmxpYyBTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXI6OkNsaWVudApAQCAtMjQyLDcgKzI0Miw3IEBAIHByaXZhdGU6CiAKICAgICBSZWY8
Y29uc3QgTG9nZ2VyPiBtX2xvZ2dlcjsKICAgICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50aWZpZXI7
Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakM+IG1f
dmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxWaWRlb0xh
eWVyTWFuYWdlck9iakM+IG1fdmlkZW9MYXllck1hbmFnZXI7CiAKICAgICAvLyBTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXI6OkNsaWVudAogICAgIHZvaWQgc2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
U3RhdHVzRGlkQ2hhbmdlKFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciYpIGZpbmFsOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDLm1tCmluZGV4IDBmNTc0NDEyMGU4Li42MTg4N2Y3ZWZmMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQpAQCAtMzQsNyArMzQsNyBAQAogI2ltcG9ydCAiTG9jYWxT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaCIKICNpbXBvcnQgIk1lZGlhU3RyZWFtUHJpdmF0ZS5o
IgogI2ltcG9ydCAiUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oIgotI2ltcG9ydCAiVmlkZW9GdWxs
c2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQy5oIgorI2ltcG9ydCAiVmlkZW9MYXllck1hbmFnZXJPYmpD
LmgiCiAjaW1wb3J0ICJWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmgiCiAjaW1wb3J0IDxD
b3JlR3JhcGhpY3MvQ0dBZmZpbmVUcmFuc2Zvcm0uaD4KICNpbXBvcnQgPG9iamNfcnVudGltZS5o
PgpAQCAtMTQ2LDcgKzE0Niw3IEBAIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
Qzo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKE1lZGlhCiAgICAgLCBtX2Ns
b2NrKFBBTDo6Q2xvY2s6OmNyZWF0ZSgpKQogICAgICwgbV9sb2dnZXIocGxheWVyLT5tZWRpYVBs
YXllckxvZ2dlcigpKQogICAgICwgbV9sb2dJZGVudGlmaWVyKHBsYXllci0+bWVkaWFQbGF5ZXJM
b2dJZGVudGlmaWVyKCkpCi0gICAgLCBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlcihtYWtl
VW5pcXVlPFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakM+KG1fbG9nZ2VyLCBtX2xvZ0lk
ZW50aWZpZXIpKQorICAgICwgbV92aWRlb0xheWVyTWFuYWdlcihtYWtlVW5pcXVlPFZpZGVvTGF5
ZXJNYW5hZ2VyT2JqQz4obV9sb2dnZXIsIG1fbG9nSWRlbnRpZmllcikpCiAgICAgLCBtX2JvdW5k
c0NoYW5nZUxpc3RlbmVyKGFkb3B0TlMoW1tXZWJSb290U2FtcGxlQnVmZmVyQm91bmRzQ2hhbmdl
TGlzdGVuZXIgYWxsb2NdIGluaXRXaXRoUGFyZW50OnRoaXNdKSkKIHsKICAgICBJTkZPX0xPRyhM
T0dJREVOVElGSUVSKTsKQEAgLTM4MCw3ICszODAsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZW5zdXJlTGF5ZXJzKCkKICAgICB1cGRhdGVSZW5kZXJpbmdN
b2RlKCk7CiAgICAgdXBkYXRlRGlzcGxheUxheWVyKCk7CiAKLSAgICBtX3ZpZGVvRnVsbHNjcmVl
bkxheWVyTWFuYWdlci0+c2V0VmlkZW9MYXllcihtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci0+
cm9vdExheWVyKCksIHNpemUpOworICAgIG1fdmlkZW9MYXllck1hbmFnZXItPnNldFZpZGVvTGF5
ZXIobV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXItPnJvb3RMYXllcigpLCBzaXplKTsKIAogICAg
IFttX2JvdW5kc0NoYW5nZUxpc3RlbmVyIGJlZ2luXTsKIH0KQEAgLTM5Miw3ICszOTIsNyBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZGVzdHJveUxheWVycygp
CiAKICAgICB1cGRhdGVSZW5kZXJpbmdNb2RlKCk7CiAgICAgCi0gICAgbV92aWRlb0Z1bGxzY3Jl
ZW5MYXllck1hbmFnZXItPmRpZERlc3Ryb3lWaWRlb0xheWVyKCk7CisgICAgbV92aWRlb0xheWVy
TWFuYWdlci0+ZGlkRGVzdHJveVZpZGVvTGF5ZXIoKTsKIH0KIAogI3ByYWdtYSBtYXJrIC0KQEAg
LTQ2Myw3ICs0NjMsNyBAQCBQbGF0Zm9ybUxheWVyKiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakM6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAogICAgIGlmICghbV9zYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXIgfHwgIW1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLT5yb290TGF5ZXIo
KSB8fCBtX2Rpc3BsYXlNb2RlID09IE5vbmUpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0g
ICAgcmV0dXJuIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLT52aWRlb0lubGluZUxheWVy
KCk7CisgICAgcmV0dXJuIG1fdmlkZW9MYXllck1hbmFnZXItPnZpZGVvSW5saW5lTGF5ZXIoKTsK
IH0KIAogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpEaXNwbGF5TW9kZSBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmN1cnJlbnREaXNwbGF5TW9kZSgp
IGNvbnN0CkBAIC03NzYsMTIgKzc3NiwxMiBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQzo6c3VwcG9ydHNQaWN0dXJlSW5QaWN0dXJlKCkgY29uc3QKIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXll
cihQbGF0Zm9ybUxheWVyKiB2aWRlb0Z1bGxzY3JlZW5MYXllciwgV1RGOjpGdW5jdGlvbjx2b2lk
KCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgdXBkYXRlQ3VycmVudEZyYW1lSW1hZ2Uo
KTsKLSAgICBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlci0+c2V0VmlkZW9GdWxsc2NyZWVu
TGF5ZXIodmlkZW9GdWxsc2NyZWVuTGF5ZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBt
X2ltYWdlUGFpbnRlci5jZ0ltYWdlKTsKKyAgICBtX3ZpZGVvTGF5ZXJNYW5hZ2VyLT5zZXRWaWRl
b0Z1bGxzY3JlZW5MYXllcih2aWRlb0Z1bGxzY3JlZW5MYXllciwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlciksIG1faW1hZ2VQYWludGVyLmNnSW1hZ2UpOwogfQogCiB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoRmxvYXRS
ZWN0IGZyYW1lKQogewotICAgIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLT5zZXRWaWRl
b0Z1bGxzY3JlZW5GcmFtZShmcmFtZSk7CisgICAgbV92aWRlb0xheWVyTWFuYWdlci0+c2V0Vmlk
ZW9GdWxsc2NyZWVuRnJhbWUoZnJhbWUpOwogfQogCiB0eXBlZGVmIGVudW0gewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlk
ZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9MYXllck1hbmFnZXJPYmpDLmgKc2ltaWxh
cml0eSBpbmRleCA5MCUKcmVuYW1lIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQy5oCnJl
bmFtZSB0byBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9WaWRlb0xheWVyTWFuYWdlck9iakMuaAppbmRleCAxZmY4YmI2ZWYxYS4uY2NiODc1NjQzM2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL1ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdl
ck9iakMuaApAQCAtMjgsNyArMjgsNyBAQAogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1
ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUxheWVyLmgiCi0jaW5jbHVkZSAiVmlk
ZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLmgiCisjaW5jbHVkZSAiVmlkZW9MYXllck1hbmFnZXIu
aCIKICNpbmNsdWRlICJXZWJWaWRlb0NvbnRhaW5lckxheWVyLmgiCiAjaW5jbHVkZSA8d3RmL0Z1
bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgpAQCAtMzksMTQgKzM5LDE1
IEBAIE9CSkNfQ0xBU1MgQVZQbGF5ZXJMYXllcjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1j
bGFzcyBWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDIGZpbmFsIDogcHVibGljIFZpZGVv
RnVsbHNjcmVlbkxheWVyTWFuYWdlciAsIHB1YmxpYyBMb2dnZXJIZWxwZXIgeworY2xhc3MgVmlk
ZW9MYXllck1hbmFnZXJPYmpDIGZpbmFsIDogcHVibGljIFZpZGVvTGF5ZXJNYW5hZ2VyICwgcHVi
bGljIExvZ2dlckhlbHBlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6
Ci0gICAgVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQyhjb25zdCBMb2dnZXImLCBjb25z
dCB2b2lkKik7CisgICAgVmlkZW9MYXllck1hbmFnZXJPYmpDKGNvbnN0IExvZ2dlciYsIGNvbnN0
IHZvaWQqKTsKIAogICAgIFBsYXRmb3JtTGF5ZXIgKnZpZGVvSW5saW5lTGF5ZXIoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBtX3ZpZGVvSW5saW5lTGF5ZXIuZ2V0KCk7IH0KICAgICBQbGF0Zm9ybUxh
eWVyICp2aWRlb0Z1bGxzY3JlZW5MYXllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fdmlkZW9G
dWxsc2NyZWVuTGF5ZXIuZ2V0KCk7IH0KICAgICBGbG9hdFJlY3QgdmlkZW9GdWxsc2NyZWVuRnJh
bWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3ZpZGVvRnVsbHNjcmVlbkZyYW1lOyB9CisKICAg
ICB2b2lkIHNldFZpZGVvTGF5ZXIoUGxhdGZvcm1MYXllciAqLCBJbnRTaXplIGNvbnRlbnRTaXpl
KSBmaW5hbDsKICAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5ZXIg
KiwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIsIE5hdGl2ZUltYWdl
UHRyKSBmaW5hbDsKICAgICB2b2lkIHVwZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKE5h
dGl2ZUltYWdlUHRyKSBmaW5hbDsKQEAgLTYwLDcgKzYxLDcgQEAgcHVibGljOgogcHJpdmF0ZToK
ICAgICBjb25zdCBMb2dnZXImIGxvZ2dlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fbG9nZ2Vy
LmdldCgpOyB9CiAgICAgY29uc3Qgdm9pZCogbG9nSWRlbnRpZmllcigpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIG1fbG9nSWRlbnRpZmllcjsgfQotICAgIGNvbnN0IGNoYXIqIGxvZ0NsYXNzTmFtZSgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuICJWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDIjsg
fQorICAgIGNvbnN0IGNoYXIqIGxvZ0NsYXNzTmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJW
aWRlb0xheWVyTWFuYWdlck9iakMiOyB9CiAgICAgV1RGTG9nQ2hhbm5lbCYgbG9nQ2hhbm5lbCgp
IGNvbnN0IGZpbmFsOwogCiAgICAgUmVmPGNvbnN0IExvZ2dlcj4gbV9sb2dnZXI7CkBAIC03NSw0
ICs3NiwzIEBAIHByaXZhdGU6CiB9OwogCiB9Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvRnVsbHNjcmVlbkxheWVy
TWFuYWdlck9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMubW0Kc2ltaWxhcml0eSBpbmRleCA4NSUK
cmVuYW1lIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQy5tbQpyZW5hbWUgdG8gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9MYXllck1h
bmFnZXJPYmpDLm1tCmluZGV4IDZhNzhkZjQ5NzhmLi41NzEwYzZhM2NhMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9G
dWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0xheWVyTWFuYWdlck9iakMubW0KQEAg
LTI0LDcgKzI0LDcgQEAKICAqLwogCiAjaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIlZpZGVv
RnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakMuaCIKKyNpbXBvcnQgIlZpZGVvTGF5ZXJNYW5hZ2Vy
T2JqQy5oIgogCiAjaW1wb3J0ICJDb2xvci5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgpAQCAtNDAs
MjUgKzQwLDI1IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotVmlkZW9GdWxsc2NyZWVuTGF5
ZXJNYW5hZ2VyT2JqQzo6VmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQyhjb25zdCBMb2dn
ZXImIGxvZ2dlciwgY29uc3Qgdm9pZCogbG9nSWRlbnRpZmllcikKLSAgICA6IFZpZGVvRnVsbHNj
cmVlbkxheWVyTWFuYWdlcigpCitWaWRlb0xheWVyTWFuYWdlck9iakM6OlZpZGVvTGF5ZXJNYW5h
Z2VyT2JqQyhjb25zdCBMb2dnZXImIGxvZ2dlciwgY29uc3Qgdm9pZCogbG9nSWRlbnRpZmllcikK
KyAgICA6IFZpZGVvTGF5ZXJNYW5hZ2VyKCkKICAgICAsIG1fbG9nZ2VyKGxvZ2dlcikKICAgICAs
IG1fbG9nSWRlbnRpZmllcihsb2dJZGVudGlmaWVyKQogewogfQogCi12b2lkIFZpZGVvRnVsbHNj
cmVlbkxheWVyTWFuYWdlck9iakM6OnNldFZpZGVvTGF5ZXIoUGxhdGZvcm1MYXllciAqdmlkZW9M
YXllciwgSW50U2l6ZSBjb250ZW50U2l6ZSkKK3ZvaWQgVmlkZW9MYXllck1hbmFnZXJPYmpDOjpz
ZXRWaWRlb0xheWVyKFBsYXRmb3JtTGF5ZXIgKnZpZGVvTGF5ZXIsIEludFNpemUgY29udGVudFNp
emUpCiB7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCBjb250ZW50U2l6ZS53aWR0aCgp
LCAiLCAiLCBjb250ZW50U2l6ZS5oZWlnaHQoKSk7CiAKICAgICBtX3ZpZGVvTGF5ZXIgPSB2aWRl
b0xheWVyOwotICAgIG1fdmlkZW9JbmxpbmVGcmFtZSA9IENHUmVjdE1ha2UoMCwgMCwgY29udGVu
dFNpemUud2lkdGgoKSwgY29udGVudFNpemUuaGVpZ2h0KCkpOwotCiAgICAgW21fdmlkZW9MYXll
ciB3ZWJfZGlzYWJsZUFsbEFjdGlvbnNdOworCiAgICAgbV92aWRlb0lubGluZUxheWVyID0gYWRv
cHROUyhbW1dlYlZpZGVvQ29udGFpbmVyTGF5ZXIgYWxsb2NdIGluaXRdKTsKICNpZm5kZWYgTkRF
QlVHCiAgICAgW21fdmlkZW9JbmxpbmVMYXllciBzZXROYW1lOkAiV2ViVmlkZW9Db250YWluZXJM
YXllciJdOwogI2VuZGlmCisgICAgbV92aWRlb0lubGluZUZyYW1lID0gQ0dSZWN0TWFrZSgwLCAw
LCBjb250ZW50U2l6ZS53aWR0aCgpLCBjb250ZW50U2l6ZS5oZWlnaHQoKSk7CiAgICAgW21fdmlk
ZW9JbmxpbmVMYXllciBzZXRGcmFtZTptX3ZpZGVvSW5saW5lRnJhbWVdOwogICAgIFttX3ZpZGVv
SW5saW5lTGF5ZXIgc2V0Q29udGVudHNHcmF2aXR5OmtDQUdyYXZpdHlSZXNpemVBc3BlY3RdOwog
ICAgIGlmIChbdmlkZW9MYXllciBpc0tpbmRPZkNsYXNzOlBBTDo6Z2V0QVZQbGF5ZXJMYXllckNs
YXNzKCldKQpAQCAtNzMsMTMgKzczLDEzIEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5h
Z2VyT2JqQzo6c2V0VmlkZW9MYXllcihQbGF0Zm9ybUxheWVyICp2aWRlb0xheWVyLCBJCiAgICAg
fQogfQogCi12b2lkIFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakM6OnVwZGF0ZVZpZGVv
RnVsbHNjcmVlbklubGluZUltYWdlKE5hdGl2ZUltYWdlUHRyIGltYWdlKQordm9pZCBWaWRlb0xh
eWVyTWFuYWdlck9iakM6OnVwZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKE5hdGl2ZUlt
YWdlUHRyIGltYWdlKQogewogICAgIGlmIChtX3ZpZGVvSW5saW5lTGF5ZXIpCiAgICAgICAgIFtt
X3ZpZGVvSW5saW5lTGF5ZXIgc2V0Q29udGVudHM6KF9fYnJpZGdlIGlkKWltYWdlLmdldCgpXTsK
IH0KIAotdm9pZCBWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDOjpzZXRWaWRlb0Z1bGxz
Y3JlZW5MYXllcihQbGF0Zm9ybUxheWVyICp2aWRlb0Z1bGxzY3JlZW5MYXllciwgV1RGOjpGdW5j
dGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIsIE5hdGl2ZUltYWdlUHRyIGN1cnJlbnRJ
bWFnZSkKK3ZvaWQgVmlkZW9MYXllck1hbmFnZXJPYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXll
cihQbGF0Zm9ybUxheWVyICp2aWRlb0Z1bGxzY3JlZW5MYXllciwgV1RGOjpGdW5jdGlvbjx2b2lk
KCk+JiYgY29tcGxldGlvbkhhbmRsZXIsIE5hdGl2ZUltYWdlUHRyIGN1cnJlbnRJbWFnZSkKIHsK
ICAgICBpZiAobV92aWRlb0Z1bGxzY3JlZW5MYXllciA9PSB2aWRlb0Z1bGxzY3JlZW5MYXllcikg
ewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwpAQCAtMTI2LDcgKzEyNiw3IEBAIHZvaWQg
VmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIo
UGxhdGZvcm1MYXllciAqdmlkCiAgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKIH0KIAotdm9p
ZCBWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5GcmFt
ZShGbG9hdFJlY3QgdmlkZW9GdWxsc2NyZWVuRnJhbWUpCit2b2lkIFZpZGVvTGF5ZXJNYW5hZ2Vy
T2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoRmxvYXRSZWN0IHZpZGVvRnVsbHNjcmVlbkZy
YW1lKQogewogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgdmlkZW9GdWxsc2NyZWVuRnJh
bWUueCgpLCAiLCAiLCB2aWRlb0Z1bGxzY3JlZW5GcmFtZS55KCksICIsICIsIHZpZGVvRnVsbHNj
cmVlbkZyYW1lLndpZHRoKCksICIsICIsIHZpZGVvRnVsbHNjcmVlbkZyYW1lLmhlaWdodCgpKTsK
IApAQCAtMTM4LDcgKzEzOCw3IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2Jq
Qzo6c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoRmxvYXRSZWN0IHZpZGVvRnVsCiAgICAgc3luY1Rl
eHRUcmFja0JvdW5kcygpOwogfQogCi12b2lkIFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9i
akM6OmRpZERlc3Ryb3lWaWRlb0xheWVyKCkKK3ZvaWQgVmlkZW9MYXllck1hbmFnZXJPYmpDOjpk
aWREZXN0cm95VmlkZW9MYXllcigpCiB7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsK
IApAQCAtMTQ4LDEyICsxNDgsMTIgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJP
YmpDOjpkaWREZXN0cm95VmlkZW9MYXllcigpCiAgICAgbV92aWRlb0xheWVyID0gbmlsOwogfQog
Ci1ib29sIFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakM6OnJlcXVpcmVzVGV4dFRyYWNr
UmVwcmVzZW50YXRpb24oKSBjb25zdAorYm9vbCBWaWRlb0xheWVyTWFuYWdlck9iakM6OnJlcXVp
cmVzVGV4dFRyYWNrUmVwcmVzZW50YXRpb24oKSBjb25zdAogewogICAgIHJldHVybiBtX3ZpZGVv
RnVsbHNjcmVlbkxheWVyOwogfQogCi12b2lkIFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9i
akM6OnN5bmNUZXh0VHJhY2tCb3VuZHMoKQordm9pZCBWaWRlb0xheWVyTWFuYWdlck9iakM6OnN5
bmNUZXh0VHJhY2tCb3VuZHMoKQogewogICAgIGlmICghbV92aWRlb0Z1bGxzY3JlZW5MYXllciB8
fCAhbV90ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkxheWVyKQogICAgICAgICByZXR1cm47CkBAIC0x
NjksNyArMTY5LDcgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDOjpzeW5j
VGV4dFRyYWNrQm91bmRzKCkKICAgICBbQ0FUcmFuc2FjdGlvbiBjb21taXRdOwogfQogCi12b2lk
IFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakM6OnNldFRleHRUcmFja1JlcHJlc2VudGF0
aW9uKFRleHRUcmFja1JlcHJlc2VudGF0aW9uKiByZXByZXNlbnRhdGlvbikKK3ZvaWQgVmlkZW9M
YXllck1hbmFnZXJPYmpDOjpzZXRUZXh0VHJhY2tSZXByZXNlbnRhdGlvbihUZXh0VHJhY2tSZXBy
ZXNlbnRhdGlvbiogcmVwcmVzZW50YXRpb24pCiB7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElG
SUVSKTsKIApAQCAtMTkzLDEzICsxOTMsMTEgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5MYXllck1h
bmFnZXJPYmpDOjpzZXRUZXh0VHJhY2tSZXByZXNlbnRhdGlvbihUZXh0VHJhY2tSZXByZXMKICAg
ICB9CiAKICAgICBbQ0FUcmFuc2FjdGlvbiBjb21taXRdOwotCiB9CiAKLVdURkxvZ0NoYW5uZWwm
IFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakM6OmxvZ0NoYW5uZWwoKSBjb25zdAorV1RG
TG9nQ2hhbm5lbCYgVmlkZW9MYXllck1hbmFnZXJPYmpDOjpsb2dDaGFubmVsKCkgY29uc3QKIHsK
ICAgICByZXR1cm4gTG9nTWVkaWE7CiB9CiAKIH0KLQo=
</data>
<flag name="review"
          id="405967"
          type_id="1"
          status="+"
          setter="youennf"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390461</attachid>
            <date>2020-02-11 16:34:58 -0800</date>
            <delta_ts>2020-02-11 21:11:26 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>207502-landing.patch</filename>
            <type>text/plain</type>
            <size>43422</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5ODUwODZjOTZkNy4uMGYyZDE0ZWQ1OGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MSBAQAorMjAyMC0wMi0xMSAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgor
CisgICAgICAgIFJlbmFtZSBWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXIgdG8gVmlkZW9MYXll
ck1hbmFnZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwNzUwMgorCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzIC0tIG5vIG5ldyBvciBjaGFuZ2VkIGZ1bmN0aW9uYWxpdHkuCisKKyAgICAg
ICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9WaWRlb0xheWVyTWFuYWdl
ci5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9G
dWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLmguCisgICAgICAgIChXZWJDb3JlOjpWaWRlb0xheWVyTWFu
YWdlcjo6flZpZGVvTGF5ZXJNYW5hZ2VyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6Y3JlYXRlQVZQbGF5ZXJMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDOjpkZXN0cm95VmlkZW9MYXllcik6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybUxheWVyIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OnVwZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldFZpZGVvRnVsbHNjcmVlbkxh
eWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnVwZGF0ZVZpZGVvTGF5ZXJHcmF2aXR5KToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnJlcXVp
cmVzVGV4dFRyYWNrUmVwcmVzZW50YXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c3luY1RleHRUcmFja0JvdW5kcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRU
ZXh0VHJhY2tSZXByZXNlbnRhdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDOjpwbGF0Zm9ybUxheWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6ZW5zdXJlTGF5ZXIpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpkZXN0cm95TGF5
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6
cmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnN5bmNUZXh0VHJhY2tCb3Vu
ZHMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDOjpzZXRUZXh0VHJhY2tSZXByZXNlbnRhdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDOjplbnN1cmVMYXllcnMpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpkZXN0cm95TGF5ZXJzKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGxhdGZv
cm1MYXllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakM6OnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0VmlkZW9GdWxsc2Ny
ZWVuRnJhbWUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5h
Z2VyT2JqQy5oLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbTogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvRnVsbHNjcmVlbkxheWVyTWFu
YWdlck9iakMubW0uCisgICAgICAgIChXZWJDb3JlOjpWaWRlb0xheWVyTWFuYWdlck9iakM6OlZp
ZGVvTGF5ZXJNYW5hZ2VyT2JqQyk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0xheWVyTWFuYWdl
ck9iakM6OnNldFZpZGVvTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9MYXllck1hbmFn
ZXJPYmpDOjp1cGRhdGVWaWRlb0Z1bGxzY3JlZW5JbmxpbmVJbWFnZSk6CisgICAgICAgIChXZWJD
b3JlOjpWaWRlb0xheWVyTWFuYWdlck9iakM6OnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlZpZGVvTGF5ZXJNYW5hZ2VyT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVu
RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9MYXllck1hbmFnZXJPYmpDOjpkaWREZXN0
cm95VmlkZW9MYXllcik6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0xheWVyTWFuYWdlck9iakM6
OnJlcXVpcmVzVGV4dFRyYWNrUmVwcmVzZW50YXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6VmlkZW9MYXllck1hbmFnZXJPYmpDOjpzeW5jVGV4dFRyYWNrQm91bmRzKToKKyAgICAgICAg
KFdlYkNvcmU6OlZpZGVvTGF5ZXJNYW5hZ2VyT2JqQzo6c2V0VGV4dFRyYWNrUmVwcmVzZW50YXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9MYXllck1hbmFnZXJPYmpDOjpsb2dDaGFubmVs
IGNvbnN0KToKKwogMjAyMC0wMi0xMSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFtMRkNdIEludHJvZHVjZSBMYXlvdXQ6OlJlcGxhY2VkQm94CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNl
c0NvY29hLnR4dAppbmRleCAyNTdjMTEzM2ZmOS4uYWIzYTU3OTQ5MGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNl
c0NvY29hLnR4dApAQCAtMjYyLDcgKzI2Miw3IEBAIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBAbm8tCiBw
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMubW0g
QG5vLXVuaWZ5CiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNvdXJj
ZVByaXZhdGVBVkZPYmpDLm1tIEBuby11bmlmeQogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0gQG5vLXVuaWZ5Ci1wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJP
YmpDLm1tIEBuby11bmlmeQorcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlk
ZW9MYXllck1hbmFnZXJPYmpDLm1tIEBuby11bmlmeQogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmNwcCBAbm8tdW5pZnkKIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJhY2tQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDLm1tIEBuby11bmlmeQogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLm1tIEBuby11bmlmeQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGJkZGI0OGUxMTgx
Li40YTAxYTc3ZjIyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMTMxLDcgKzEzMSw2IEBACiAJCTA3NTM4NjAzMTQ0ODlFOTgw
MEI3ODQ1MiAvKiBDYWNoZWRUZXh0VHJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDA3NTM4NjAxMTQ0ODlFOTgwMEI3ODQ1MiAvKiBDYWNoZWRUZXh0
VHJhY2suaCAqLzsgfTsKIAkJMDc1NEE1RUEyMTVFQTNCODAwMkQzQTk5IC8qIFJlYWx0aW1lTWVk
aWFTb3VyY2VGYWN0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzU0QTVFODIxNUVBM0I3MDAyRDNBOTkgLyogUmVhbHRpbWVNZWRpYVNvdXJjZUZh
Y3RvcnkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQkwNzU3QjEzRTIxNEFFNzk5MDA3OTRCMEQgLyogVmlkZW9QcmVzZXQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NTdCMTNDMjE0QUU3OTcwMDc5NEIw
RCAvKiBWaWRlb1ByZXNldC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07Ci0JCTA3NUJBODQ5MjA2MThBQTUwMEZDQjRBRCAvKiBWaWRlb0Z1bGxzY3JlZW5M
YXllck1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA3NUJBODQ3MjA2MThBQTUwMEZDQjRBRCAvKiBWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFn
ZXIuaCAqLzsgfTsKIAkJMDc2MzhBOTkxODg0NDg3MjAwRTE1QTFCIC8qIE1lZGlhU2Vzc2lvbk1h
bmFnZXJJT1MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDA3NjM4QTk3MTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRpYVNlc3Npb25NYW5hZ2VySU9TLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDc2MzhBOUEx
ODg0NDg3MjAwRTE1QTFCIC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzYzOEE5ODE4ODQ0ODcyMDBFMTVB
MUIgLyogTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbSAqLzsgfTsKIAkJMDc2OTcwODYxNDYzQUQ4
NzAwRjUwMkNGIC8qIFRleHRUcmFja0xpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2OTcwODQxNDYzQUQ4NzAwRjUwMkNGIC8qIFRleHRUcmFj
a0xpc3QuY3BwICovOyB9OwpAQCAtNjM0LDYgKzYzMyw3IEBACiAJCTFEMkY4RTA0MjM0NDc1MTYw
MDk5M0I2OCAvKiBFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURFRjA2Q0EyMzNDM0QwQjAwRUUyMjhEIC8q
IEVudGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUQyRjhFMDUyMzQ0NzUxRDAwOTkzQjY4IC8qIEhUTUxW
aWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxREVGMDZDQzIzM0MzRDIwMDBFRTIyOEQgLyogSFRNTFZpZGVv
RWxlbWVudFBpY3R1cmVJblBpY3R1cmUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQkxRDJGOEUwNjIzNDQ3NTIzMDA5OTNCNjggLyogUGljdHVyZUlu
UGljdHVyZVdpbmRvdy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMURFRjA2Q0QyMzNDM0QyQTAwRUUyMjhEIC8qIFBpY3R1cmVJblBpY3R1cmVXaW5kb3cu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkxRDM5
MkYyRDIzRjIwQTcwMDBFMDRCMkQgLyogVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQzOTJGMjgyM0YyMDlCNDAw
RTA0QjJEIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLzsgfTsKIAkJMUQ5RjBGQzEyMTIy
MDI5QjAwNUQ4RkQ0IC8qIFNoYXJlRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMURDNTU0MDAyMTFCQThDODAwNEI3ODBFIC8qIFNoYXJlRGF0YS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFEQkMx
QjU2MjM0N0IzRDIwMEI5MDFBRiAvKiBQaWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEQkMxQjU1MjM0N0IzRDIw
MEI5MDFBRiAvKiBQaWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxRjM2RUE5QzFFMjFCQTE3MDA2MjFFMjUg
LyogV2ViQmFja2dyb3VuZFRhc2tDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRjM2RUE5QTFFMjFCQTE3MDA2MjFFMjUgLyogV2ViQmFj
a2dyb3VuZFRhc2tDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKQEAgLTE1ODcsNyArMTU4Nyw2IEBACiAJCTUyQjBENEJFMUM1N0ZEMUUw
MDc3Q0U1MyAvKiBQbGF0Zm9ybVZpZXcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUyQjBENEJEMUM1N0ZEMUUwMDc3Q0U1MyAvKiBQbGF0Zm9ybVZpZXcu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MkIw
RDRDMDFDNTdGRDY2MDA3N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyQjBENEJGMUM1
N0ZENjYwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUyQjBENEMyMUM1N0ZG
OTEwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyQjBENEMxMUM1N0ZGOTEwMDc3Q0U1
MyAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk1MkQ1QTE4RjFDNTQ1OTIzMDBERTM0QTMgLyog
VmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyRDVBMThEMUM1NDU5MDMwMERFMzRBMyAvKiBWaWRl
b0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDLm1tICovOyB9OwogCQk1MkQ1QTFBNzFDNTc0ODlE
MDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTW9kZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyRDVBMUE0MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRl
b0Z1bGxzY3JlZW5Nb2RlbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTUyRDVBMUE4MUM1NzQ4QTMwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5N
b2RlbFZpZGVvRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTJENUExQTUxQzU3NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVs
VmlkZW9FbGVtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJNTJFMkNBRkMxOUZGMDIwNzAwMUVFQjRGIC8qIE1lZGlhUHJvZHVjZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyRTJDQUZCMTlGRjAy
MDcwMDFFRUI0RiAvKiBNZWRpYVByb2R1Y2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTU0NzIsNyArNTQ3MSw2IEBACiAJCTA3NTRBNUU4MjE1
RUEzQjcwMDJEM0E5OSAvKiBSZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBSZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzU0QTVFQjIxNUVBREYzMDAyRDNBOTkgLyogUmVh
bHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwNzU3QjEzQzIxNEFFNzk3MDA3OTRCMEQgLyogVmlkZW9QcmVzZXQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9QcmVzZXQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDc1QkE4NDcyMDYxOEFBNTAwRkNCNEFEIC8qIFZpZGVvRnVs
bHNjcmVlbkxheWVyTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBW
aWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMDc2MzhBOTcxODg0NDg3MjAwRTE1QTFCIC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJJT1MuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzYzOEE5ODE4ODQ0ODcyMDBFMTVBMUIg
LyogTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IE1lZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTA3Njk3MDg0MTQ2M0FEODcwMEY1MDJDRiAvKiBUZXh0VHJhY2tMaXN0LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRleHRUcmFja0xpc3QuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjUxNCw2ICs2NTEyLDkgQEAKIAkJMUQw
MDI2QTgyMzc0RjlEOTAwQ0E2Q0RGIC8qIEpTRW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNFbnRlclBpY3R1cmVJblBpY3R1cmVF
dmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRDAwMjZBOTIzNzRGOUQ5MDBD
QTZDREYgLyogSlNFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0VudGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUQyQzgyQjYyMzZBM0Y2QTAwNTVENkM1IC8q
IFBpY3R1cmVJblBpY3R1cmVTdXBwb3J0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBpY3R1cmVJblBpY3R1
cmVTdXBwb3J0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFEMzkyRjI4MjNGMjA5
QjQwMEUwNEIyRCAvKiBWaWRlb0xheWVyTWFuYWdlck9iakMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBWaWRlb0xheWVyTWFuYWdlck9iakMubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFEMzkyRjJBMjNGMjA5QjUwMEUwNEIyRCAvKiBWaWRlb0xh
eWVyTWFuYWdlck9iakMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9M
YXllck1hbmFnZXJPYmpDLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFEMzkyRjJC
MjNGMjA5RDgwMEUwNEIyRCAvKiBWaWRlb0xheWVyTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBWaWRlb0xheWVyTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxREJDMUI1NTIzNDdCM0QyMDBCOTAxQUYgLyogUGljdHVyZUluUGljdHVyZU9i
c2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBpY3R1cmVJblBpY3R1cmVPYnNlcnZlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxREM1NTNGRDIxMUJBMTJBMDA0Qjc4MEUgLyogTmF2
aWdhdG9yU2hhcmUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE5hdmlnYXRvclNoYXJlLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMURDNTUzRkYyMTFCQTg0MTAwNEI3ODBF
IC8qIFNoYXJlRGF0YS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU2hhcmVEYXRhLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg0NTcsOCArODQ1OCw2IEBACiAJCTUyQjBE
NEJGMUM1N0ZENjYwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNl
cnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MkIwRDRDMTFDNTdGRjkxMDA3
N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1MkNCMTFEQjIyRkREQjJFMDA5RjBBNjQgLyogV0hMU0xEZWZh
dWx0RGVsZXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdITFNMRGVmYXVsdERlbGV0ZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk1MkQ1QTE4RDFDNTQ1OTAzMDBERTM0QTMgLyogVmlkZW9G
dWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakMubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUyRDVBMThFMUM1NDU5MDMwMERFMzRBMyAvKiBWaWRlb0Z1
bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTJENUExQTQxQzU3NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1v
ZGVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvRnVsbHNjcmVlbk1v
ZGVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyRDVBMUE1MUM1NzQ4ODkwMERF
MzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MkQ1QTFBNjFDNTc0ODg5MDBERTM0QTMgLyog
VmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1NTI5LDcgKzE1NTI4LDcgQEAKIAkJRjU4
Nzg2NjIwMkRFM0IxMTAxRUE0MTIyIC8qIFNTTEtleUdlbmVyYXRvci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTU0xLZXlHZW5lcmF0b3IuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJ
CUY1ODc4Njg0MDJERTNCODYwMUVBNDEyMiAvKiBDdXJzb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3Vyc29yLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlGNTk3M0RERTE1Q0ZC
MjAzMDAyN0Y4MDQgLyogTG9jYWxlQ29jb2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTG9jYWxlQ29jb2EuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjU5NzNE
REYxNUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZUNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBuYW1lID0gTG9jYWxlQ29jb2EubW07IHBhdGggPSAiLi4vY29jb2EvTG9j
YWxlQ29jb2EubW0iOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTk3M0RERjE1Q0ZC
MjAzMDAyN0Y4MDQgLyogTG9jYWxlQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IG5hbWUgPSBMb2NhbGVDb2NvYS5tbTsgcGF0aCA9IC4uL2NvY29hL0xvY2FsZUNvY29h
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTlDOTVGRDEyNTVCMjNGMDAwNjIz
QzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUY1OUM5NUZFMTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFu
ZFRpbWVJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFzZURh
dGVBbmRUaW1lSW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1QTE1
NDI1MTI3OTUzNEQwMEQwQjBDMCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWYWxpZGF0aW9uTWVzc2FnZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNTEyOSw3ICsyNTEyOCw3IEBACiAJCQkJRTRBRkNGQTQw
REFGMjlBMzAwRjVGNTVDIC8qIFVuaXRCZXppZXIuaCAqLywKIAkJCQkwRjVBNTdDQTIyOUIxOEFF
MDAyNUVEQTkgLyogVmVsb2NpdHlEYXRhLmNwcCAqLywKIAkJCQkwRjFBMEMzNjIyOUE0ODE4MDBE
MzdBREIgLyogVmVsb2NpdHlEYXRhLmggKi8sCi0JCQkJMDc1QkE4NDcyMDYxOEFBNTAwRkNCNEFE
IC8qIFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlci5oICovLAorCQkJCTFEMzkyRjJCMjNGMjA5
RDgwMEUwNEIyRCAvKiBWaWRlb0xheWVyTWFuYWdlci5oICovLAogCQkJCUJFRjI5RUVBMTcxNURE
MDkwMEM0QjRDOSAvKiBWaWRlb1RyYWNrUHJpdmF0ZS5oICovLAogCQkJCTE0MTFEQ0IwMTY0QzM5
QTgwMEQ0OUJDMSAvKiBXaWR0aENhY2hlLmggKi8sCiAJCQkJOTM5QjAyRUMwRUEyREJDNDAwQzU0
NTcwIC8qIFdpZHRoSXRlcmF0b3IuY3BwICovLApAQCAtMjU4MzAsNyArMjU4MjksNiBAQAogCQkJ
CTY1NkI4NEQ3MEFFQTFDRTkwMEEwOTVCNCAvKiBuZXR3b3JrICovLAogCQkJCTFBMkU2RTU2MEND
NTUxRTAwMDRBMjA2MiAvKiBzcWwgKi8sCiAJCQkJQjJDM0Q5RUMwRDAwNkMxRDAwRUY2RjI2IC8q
IHRleHQgKi8sCi0JCQkJRTE4ODIzNUYyMDMxRjUwRjAwQjQyREYzIC8qIHZyICovLAogCQkJCURG
REI5MTJDRjhFODhBNkRBMUFEMjY0RiAvKiBBYm9ydGFibGVUYXNrUXVldWUuaCAqLywKIAkJCQk0
OUFFMkQ5NDEzNEVFNUY5MDA3MjkyMEEgLyogQ2FsY3VsYXRpb25WYWx1ZS5jcHAgKi8sCiAJCQkJ
NDlBRTJEOTUxMzRFRTVGOTAwNzI5MjBBIC8qIENhbGN1bGF0aW9uVmFsdWUuaCAqLywKQEAgLTI2
NzM0LDggKzI2NzMyLDggQEAKIAkJCQk3QTI5RjU3MTE4QzY5NTE0MDA0RDBGODEgLyogT3V0T2ZC
YW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5oICovLAogCQkJCUNEQzhCNUE5MTgwNDdGRjEwMDE2RTY4
NSAvKiBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oICovLAogCQkJCUNEQzhCNUE4MTgwNDdG
RjEwMDE2RTY4NSAvKiBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbSAqLywKLQkJCQk1MkQ1
QTE4RTFDNTQ1OTAzMDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQy5o
ICovLAotCQkJCTUyRDVBMThEMUM1NDU5MDMwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5MYXll
ck1hbmFnZXJPYmpDLm1tICovLAorCQkJCTFEMzkyRjJBMjNGMjA5QjUwMEUwNEIyRCAvKiBWaWRl
b0xheWVyTWFuYWdlck9iakMuaCAqLywKKwkJCQkxRDM5MkYyODIzRjIwOUI0MDBFMDRCMkQgLyog
VmlkZW9MYXllck1hbmFnZXJPYmpDLm1tICovLAogCQkJCUNEMzM2RjY1MTdGQTBBQzYwMERERENE
MCAvKiBWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuY3BwICovLAogCQkJCUNEMzM2RjY2MTdGQTBB
QzYwMERERENEMCAvKiBWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuaCAqLywKIAkJCQlDRDhCNUE0
MTE4MEQxNDlBMDA4QjhFNjUgLyogVmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMu
aCAqLywKQEAgLTMyODM1LDcgKzMyODMzLDYgQEAKIAkJCQk1MkIwRDRDMDFDNTdGRDY2MDA3N0NF
NTMgLyogVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTNGQkM0QUY0MTg5ODgxNTYwMDQ2RUUzOCAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktp
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTJCMEQ0QzIxQzU3RkY5MTAwNzdDRTUzIC8qIFZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZU1hYy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMDc1QkE4NDkyMDYx
OEFBNTAwRkNCNEFEIC8qIFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTJENUExQTcxQzU3NDg5RDAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVs
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MkQ1QTFBODFDNTc0OEEzMDBERTM0QTMgLyogVmlkZW9G
dWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUNERTgzREIy
MTgzQzQ0MDYwMDMxRUFBMyAvKiBWaWRlb1BsYXliYWNrUXVhbGl0eS5oIGluIEhlYWRlcnMgKi8s
CkBAIC0zNDI2Nyw3ICszNDI2NCw3IEBACiAJCQkJN0NFNjgzNDQxOTIxNDNBODAwRjREOTI4IC8q
IFVzZXJNZXNzYWdlSGFuZGxlckRlc2NyaXB0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M3
M0ZCMDcxOTFFRjQxNzAwN0RFMDYxIC8qIFVzZXJNZXNzYWdlSGFuZGxlcnNOYW1lc3BhY2UuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJM0ZCQzRBRjMxODk4ODE1NjAwNDZFRTM4IC8qIFZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJNTJENUExOEYxQzU0
NTkyMzAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakMubW0gaW4gU291
cmNlcyAqLywKKwkJCQkxRDM5MkYyRDIzRjIwQTcwMDBFMDRCMkQgLyogVmlkZW9MYXllck1hbmFn
ZXJPYmpDLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFDRDZGOEMyM0Q2RTgyMTAwQjE2NDIxIC8q
IFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJFODhF
MERFMTcxNUQyQTIwMDY1OEQ5OCAvKiBWaWRlb1RyYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUJFODhFMEUxMTcxNUQyQTIwMDY1OEQ5OCAvKiBWaWRlb1RyYWNrTGlzdC5jcHAgaW4gU291cmNl
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZpZGVv
RnVsbHNjcmVlbkxheWVyTWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvVmlkZW9MYXllck1hbmFnZXIuaApzaW1pbGFyaXR5IGluZGV4IDkyJQpyZW5hbWUgZnJvbSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFn
ZXIuaApyZW5hbWUgdG8gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9MYXll
ck1hbmFnZXIuaAppbmRleCA2NjJhOTRjOWUzMC4uZWU0Nzc5ZWZlZDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvTGF5ZXJNYW5h
Z2VyLmgKQEAgLTM2LDIwICszNiwyMiBAQCBjbGFzcyBGbG9hdFJlY3Q7CiBjbGFzcyBJbnRTaXpl
OwogY2xhc3MgVGV4dFRyYWNrUmVwcmVzZW50YXRpb247CiAKLWNsYXNzIFZpZGVvRnVsbHNjcmVl
bkxheWVyTWFuYWdlciB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVmlkZW9GdWxsc2NyZWVu
TGF5ZXJNYW5hZ2VyKTsKK2NsYXNzIFZpZGVvTGF5ZXJNYW5hZ2VyIHsKKyAgICBXVEZfTUFLRV9O
T05DT1BZQUJMRShWaWRlb0xheWVyTWFuYWdlcik7CiBwdWJsaWM6Ci0gICAgVmlkZW9GdWxsc2Ny
ZWVuTGF5ZXJNYW5hZ2VyKCkgPSBkZWZhdWx0OwotICAgIHZpcnR1YWwgflZpZGVvRnVsbHNjcmVl
bkxheWVyTWFuYWdlcigpIHsgfQorICAgIFZpZGVvTGF5ZXJNYW5hZ2VyKCkgPSBkZWZhdWx0Owor
ICAgIHZpcnR1YWwgflZpZGVvTGF5ZXJNYW5hZ2VyKCkgeyB9CiAKICAgICB2aXJ0dWFsIFBsYXRm
b3JtTGF5ZXIgKnZpZGVvSW5saW5lTGF5ZXIoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBQbGF0
Zm9ybUxheWVyICp2aWRlb0Z1bGxzY3JlZW5MYXllcigpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFs
IEZsb2F0UmVjdCB2aWRlb0Z1bGxzY3JlZW5GcmFtZSgpIGNvbnN0ID0gMDsKKwogICAgIHZpcnR1
YWwgdm9pZCBzZXRWaWRlb0xheWVyKFBsYXRmb3JtTGF5ZXIqLCBJbnRTaXplKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGRpZERlc3Ryb3lWaWRlb0xheWVyKCkgPSAwOworCiAgICAgdmlydHVhbCB2
b2lkIHNldFZpZGVvRnVsbHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5ZXIqLCBXVEY6OkZ1bmN0aW9u
PHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlciwgTmF0aXZlSW1hZ2VQdHIpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlVmlkZW9GdWxsc2NyZWVuSW5saW5lSW1hZ2UoTmF0aXZlSW1hZ2VQ
dHIpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoRmxvYXRS
ZWN0KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRpZERlc3Ryb3lWaWRlb0xheWVyKCkgPSAwOwog
CiAgICAgdmlydHVhbCBib29sIHJlcXVpcmVzVGV4dFRyYWNrUmVwcmVzZW50YXRpb24oKSBjb25z
dCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFRleHRUcmFja1JlcHJlc2VudGF0aW9uKFRleHRU
cmFja1JlcHJlc2VudGF0aW9uKikgPSAwOwpAQCAtNTcsNCArNTksMyBAQCBwdWJsaWM6CiB9Owog
CiB9Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAppbmRleCA2ZDFjY2M5ZjNjZC4uYWY2YzgwNGY2Y2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKQEAgLTY1LDcgKzY1LDcgQEAgY2xhc3MgSW5iYW5kTWV0
YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGOwogY2xhc3MgTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9i
akM7CiBjbGFzcyBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWOwogY2xhc3MgU2hhcmVkQnVmZmVyOwot
Y2xhc3MgVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQzsKK2NsYXNzIFZpZGVvTGF5ZXJN
YW5hZ2VyT2JqQzsKIGNsYXNzIFZpZGVvVGV4dHVyZUNvcGllckNWOwogY2xhc3MgVmlkZW9UcmFj
a1ByaXZhdGVBVkZPYmpDOwogY2xhc3MgV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyOwpAQCAtMzQw
LDcgKzM0MCw3IEBAIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPEFWUGxheWVyPiBtX2F2UGxheWVy
OwogICAgIFJldGFpblB0cjxBVlBsYXllckl0ZW0+IG1fYXZQbGF5ZXJJdGVtOwogICAgIFJldGFp
blB0cjxBVlBsYXllckxheWVyPiBtX3ZpZGVvTGF5ZXI7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFZp
ZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakM+IG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5h
Z2VyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxWaWRlb0xheWVyTWFuYWdlck9iakM+IG1fdmlkZW9M
YXllck1hbmFnZXI7CiAgICAgTWVkaWFQbGF5ZXI6OlZpZGVvR3Jhdml0eSBtX3ZpZGVvRnVsbHNj
cmVlbkdyYXZpdHk7CiAgICAgUmV0YWluUHRyPFdlYkNvcmVBVkZNb3ZpZU9ic2VydmVyPiBtX29i
amNPYnNlcnZlcjsKICAgICBSZXRhaW5QdHI8aWQ+IG1fdGltZU9ic2VydmVyOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMubW0KaW5kZXggMWUzNzJiZWNlNDQuLjBkYzJlNzcyYWU5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMubW0KQEAgLTYwLDcgKzYwLDcgQEAKICNpbXBvcnQgIlRleHRFbmNvZGluZy5oIgog
I2ltcG9ydCAiVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaCIKICNpbXBvcnQgIlRleHR1cmVDYWNo
ZUNWLmgiCi0jaW1wb3J0ICJWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDLmgiCisjaW1w
b3J0ICJWaWRlb0xheWVyTWFuYWdlck9iakMuaCIKICNpbXBvcnQgIlZpZGVvVGV4dHVyZUNvcGll
ckNWLmgiCiAjaW1wb3J0ICJWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuaCIKICNpbXBvcnQgIldl
YkNvcmVBVkZSZXNvdXJjZUxvYWRlci5oIgpAQCAtNDA0LDcgKzQwNCw3IEBAIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y2xlYXJNZWRpYUNhY2hlRm9yT3JpZ2lucyhj
b25zdCBTdHJpbmcmCiAKIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Ok1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMoTWVkaWFQbGF5ZXIqIHBsYXllcikKICAgICA6
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbihwbGF5ZXIpCi0gICAgLCBtX3ZpZGVvRnVs
bHNjcmVlbkxheWVyTWFuYWdlcihtYWtlVW5pcXVlPFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdl
ck9iakM+KGxvZ2dlcigpLCBsb2dJZGVudGlmaWVyKCkpKQorICAgICwgbV92aWRlb0xheWVyTWFu
YWdlcihtYWtlVW5pcXVlPFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQz4obG9nZ2VyKCksIGxvZ0lkZW50
aWZpZXIoKSkpCiAgICAgLCBtX3ZpZGVvRnVsbHNjcmVlbkdyYXZpdHkoTWVkaWFQbGF5ZXI6OlZp
ZGVvR3Jhdml0eTo6UmVzaXplQXNwZWN0KQogICAgICwgbV9vYmpjT2JzZXJ2ZXIoYWRvcHROUyhb
W1dlYkNvcmVBVkZNb3ZpZU9ic2VydmVyIGFsbG9jXSBpbml0V2l0aFBsYXllcjptYWtlV2Vha1B0
cigqdGhpcyldKSkKICAgICAsIG1fdmlkZW9GcmFtZUhhc0RyYXduKGZhbHNlKQpAQCAtNjE5LDcg
KzYxOSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRl
QVZQbGF5ZXJMYXllcigpCiAgICAgSW50U2l6ZSBkZWZhdWx0U2l6ZSA9IHNuYXBwZWRJbnRSZWN0
KHBsYXllcigpLT5wbGF5ZXJDb250ZW50Qm94UmVjdCgpKS5zaXplKCk7CiAgICAgQUxXQVlTX0xP
RyhMT0dJREVOVElGSUVSKTsKIAotICAgIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLT5z
ZXRWaWRlb0xheWVyKG1fdmlkZW9MYXllci5nZXQoKSwgZGVmYXVsdFNpemUpOworICAgIG1fdmlk
ZW9MYXllck1hbmFnZXItPnNldFZpZGVvTGF5ZXIobV92aWRlb0xheWVyLmdldCgpLCBkZWZhdWx0
U2l6ZSk7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiAhUExBVEZPUk0oV0FUQ0hPUykK
ICAgICBpZiAoW21fdmlkZW9MYXllciByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHNldFBJ
UE1vZGVFbmFibGVkOildKQpAQCAtNjM2LDcgKzYzNiw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6ZGVzdHJveVZpZGVvTGF5ZXIoKQogCiAgICAgW21fdmlkZW9M
YXllciByZW1vdmVPYnNlcnZlcjptX29iamNPYnNlcnZlci5nZXQoKSBmb3JLZXlQYXRoOkAicmVh
ZHlGb3JEaXNwbGF5Il07CiAgICAgW21fdmlkZW9MYXllciBzZXRQbGF5ZXI6bmlsXTsKLSAgICBt
X3ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlci0+ZGlkRGVzdHJveVZpZGVvTGF5ZXIoKTsKKyAg
ICBtX3ZpZGVvTGF5ZXJNYW5hZ2VyLT5kaWREZXN0cm95VmlkZW9MYXllcigpOwogCiAgICAgbV92
aWRlb0xheWVyID0gbmlsOwogfQpAQCAtMTA3MywyNiArMTA3MywyNiBAQCBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb246Okl0ZW1TdGF0dXMgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6cAogCiBQbGF0Zm9ybUxheWVyKiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV92aWRlb0Z1bGxz
Y3JlZW5MYXllck1hbmFnZXItPnZpZGVvSW5saW5lTGF5ZXIoKTsKKyAgICByZXR1cm4gbV92aWRl
b0xheWVyTWFuYWdlci0+dmlkZW9JbmxpbmVMYXllcigpOwogfQogCiB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnVwZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdl
KCkKIHsKICAgICB1cGRhdGVMYXN0SW1hZ2UoVXBkYXRlVHlwZTo6VXBkYXRlU3luY2hyb25vdXNs
eSk7Ci0gICAgbV92aWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXItPnVwZGF0ZVZpZGVvRnVsbHNj
cmVlbklubGluZUltYWdlKG1fbGFzdEltYWdlKTsKKyAgICBtX3ZpZGVvTGF5ZXJNYW5hZ2VyLT51
cGRhdGVWaWRlb0Z1bGxzY3JlZW5JbmxpbmVJbWFnZShtX2xhc3RJbWFnZSk7CiB9CiAKIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5
ZXIoUGxhdGZvcm1MYXllciogdmlkZW9GdWxsc2NyZWVuTGF5ZXIsIEZ1bmN0aW9uPHZvaWQoKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICB1cGRhdGVMYXN0SW1hZ2UoVXBkYXRlVHlwZTo6
VXBkYXRlU3luY2hyb25vdXNseSk7Ci0gICAgbV92aWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXIt
PnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKHZpZGVvRnVsbHNjcmVlbkxheWVyLCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSwgbV9sYXN0SW1hZ2UpOworICAgIG1fdmlkZW9MYXllck1hbmFnZXIt
PnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKHZpZGVvRnVsbHNjcmVlbkxheWVyLCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSwgbV9sYXN0SW1hZ2UpOwogICAgIHVwZGF0ZURpc2FibGVFeHRlcm5h
bFBsYXliYWNrKCk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoRmxvYXRSZWN0IGZyYW1lKQogewogICAgIEFMV0FZ
U19MT0coTE9HSURFTlRJRklFUiwgIndpZHRoID0gIiwgZnJhbWUuc2l6ZSgpLndpZHRoKCksICIs
IGhlaWdodCA9ICIsIGZyYW1lLnNpemUoKS5oZWlnaHQoKSk7Ci0gICAgbV92aWRlb0Z1bGxzY3Jl
ZW5MYXllck1hbmFnZXItPnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKGZyYW1lKTsKKyAgICBtX3Zp
ZGVvTGF5ZXJNYW5hZ2VyLT5zZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShmcmFtZSk7CiB9CiAKIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVu
R3Jhdml0eShNZWRpYVBsYXllcjo6VmlkZW9HcmF2aXR5IGdyYXZpdHkpCkBAIC0xNzY0LDcgKzE3
NjQsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnVwZGF0ZVZp
ZGVvTGF5ZXJHcmF2aXR5KCkKIAogICAgIC8vIERvIG5vdCBhdHRlbXB0IHRvIGNoYW5nZSB0aGUg
dmlkZW8gZ3Jhdml0eSB3aGlsZSBpbiBmdWxsIHNjcmVlbiBtb2RlLgogICAgIC8vIFNlZSBzZXRW
aWRlb0Z1bGxzY3JlZW5HcmF2aXR5KCkuCi0gICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXJN
YW5hZ2VyLT52aWRlb0Z1bGxzY3JlZW5MYXllcigpKQorICAgIGlmIChtX3ZpZGVvTGF5ZXJNYW5h
Z2VyLT52aWRlb0Z1bGxzY3JlZW5MYXllcigpKQogICAgICAgICByZXR1cm47CiAKICAgICBbQ0FU
cmFuc2FjdGlvbiBiZWdpbl07CkBAIC0yMDUzLDE3ICsyMDUzLDE3IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dXBkYXRlVmlkZW9UcmFja3MoKQogCiBib29sIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnJlcXVpcmVzVGV4dFRyYWNrUmVwcmVz
ZW50YXRpb24oKSBjb25zdAogewotICAgIHJldHVybiBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyTWFu
YWdlci0+cmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbigpOworICAgIHJldHVybiBtX3Zp
ZGVvTGF5ZXJNYW5hZ2VyLT5yZXF1aXJlc1RleHRUcmFja1JlcHJlc2VudGF0aW9uKCk7CiB9CiAK
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c3luY1RleHRUcmFja0Jv
dW5kcygpCiB7Ci0gICAgbV92aWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXItPnN5bmNUZXh0VHJh
Y2tCb3VuZHMoKTsKKyAgICBtX3ZpZGVvTGF5ZXJNYW5hZ2VyLT5zeW5jVGV4dFRyYWNrQm91bmRz
KCk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0VGV4
dFRyYWNrUmVwcmVzZW50YXRpb24oVGV4dFRyYWNrUmVwcmVzZW50YXRpb24qIHJlcHJlc2VudGF0
aW9uKQogewotICAgIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLT5zZXRUZXh0VHJhY2tS
ZXByZXNlbnRhdGlvbihyZXByZXNlbnRhdGlvbik7CisgICAgbV92aWRlb0xheWVyTWFuYWdlci0+
c2V0VGV4dFRyYWNrUmVwcmVzZW50YXRpb24ocmVwcmVzZW50YXRpb24pOwogfQogCiAjZW5kaWYg
Ly8gRU5BQkxFKFZJREVPX1RSQUNLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAppbmRleCAxNGRk
ZmJmYmUyZi4uNWRlMzM2Y2I2NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCkBAIC01NSw3
ICs1NSw3IEBAIGNsYXNzIE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakM7CiBjbGFzcyBQaXhlbEJ1
ZmZlckNvbmZvcm1lckNWOwogY2xhc3MgUGxhdGZvcm1DbG9ja0NNOwogY2xhc3MgVGV4dHVyZUNh
Y2hlQ1Y7Ci1jbGFzcyBWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDOworY2xhc3MgVmlk
ZW9MYXllck1hbmFnZXJPYmpDOwogY2xhc3MgVmlkZW9UZXh0dXJlQ29waWVyQ1Y7CiBjbGFzcyBX
ZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb247CiAKQEAgLTMyNSw4ICszMjUsNyBAQCBwcml2YXRl
OgogI2VuZGlmCiAgICAgUmVmPGNvbnN0IExvZ2dlcj4gbV9sb2dnZXI7CiAgICAgY29uc3Qgdm9p
ZCogbV9sb2dJZGVudGlmaWVyOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxWaWRlb0Z1bGxzY3JlZW5M
YXllck1hbmFnZXJPYmpDPiBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlcjsKLQorICAgIHN0
ZDo6dW5pcXVlX3B0cjxWaWRlb0xheWVyTWFuYWdlck9iakM+IG1fdmlkZW9MYXllck1hbmFnZXI7
CiAgICAgUmVmPEVmZmVjdGl2ZVJhdGVDaGFuZ2VkTGlzdGVuZXI+IG1fZWZmZWN0aXZlUmF0ZUNo
YW5nZWRMaXN0ZW5lcjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQppbmRleCA3MDI5
ZmY5NzI4OS4uOTI3M2M5ZWIxYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KQEAgLTM5
LDcgKzM5LDcgQEAKICNpbXBvcnQgIlBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaCIKICNpbXBvcnQg
IlRleHRUcmFja1JlcHJlc2VudGF0aW9uLmgiCiAjaW1wb3J0ICJUZXh0dXJlQ2FjaGVDVi5oIgot
I2ltcG9ydCAiVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQy5oIgorI2ltcG9ydCAiVmlk
ZW9MYXllck1hbmFnZXJPYmpDLmgiCiAjaW1wb3J0ICJWaWRlb1RleHR1cmVDb3BpZXJDVi5oIgog
I2ltcG9ydCAiV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uLmgiCiAjaW1wb3J0IDxBVkZvdW5k
YXRpb24vQVZBc3NldC5oPgpAQCAtMTM5LDcgKzEzOSw3IEBAIE1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKE1l
ZGlhCiAgICAgLCBtX2xvYWRpbmdQcm9ncmVzc2VkKGZhbHNlKQogICAgICwgbV9sb2dnZXIocGxh
eWVyLT5tZWRpYVBsYXllckxvZ2dlcigpKQogICAgICwgbV9sb2dJZGVudGlmaWVyKHBsYXllci0+
bWVkaWFQbGF5ZXJMb2dJZGVudGlmaWVyKCkpCi0gICAgLCBtX3ZpZGVvRnVsbHNjcmVlbkxheWVy
TWFuYWdlcihtYWtlVW5pcXVlPFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakM+KG1fbG9n
Z2VyLCBtX2xvZ0lkZW50aWZpZXIpKQorICAgICwgbV92aWRlb0xheWVyTWFuYWdlcihtYWtlVW5p
cXVlPFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQz4obV9sb2dnZXIsIG1fbG9nSWRlbnRpZmllcikpCiAg
ICAgLCBtX2VmZmVjdGl2ZVJhdGVDaGFuZ2VkTGlzdGVuZXIoRWZmZWN0aXZlUmF0ZUNoYW5nZWRM
aXN0ZW5lcjo6Y3JlYXRlKCp0aGlzLCBbbV9zeW5jaHJvbml6ZXIgdGltZWJhc2VdKSkKIHsKICAg
ICBhdXRvIGxvZ1NpdGVJZGVudGlmaWVyID0gTE9HSURFTlRJRklFUjsKQEAgLTMxMCw3ICszMTAs
NyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cHJlcGFyZVRv
UGxheSgpCiAKIFBsYXRmb3JtTGF5ZXIqIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQzo6cGxhdGZvcm1MYXllcigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fdmlkZW9GdWxsc2Ny
ZWVuTGF5ZXJNYW5hZ2VyLT52aWRlb0lubGluZUxheWVyKCk7CisgICAgcmV0dXJuIG1fdmlkZW9M
YXllck1hbmFnZXItPnZpZGVvSW5saW5lTGF5ZXIoKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnBsYXkoKQpAQCAtNzYxLDcgKzc2MSw3IEBAIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjplbnN1cmVMYXllcigpCiAgICAg
W21fc3luY2hyb25pemVyIGFkZFJlbmRlcmVyOm1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmdl
dCgpXTsKICAgICBpZiAobV9tZWRpYVNvdXJjZVByaXZhdGUpCiAgICAgICAgIG1fbWVkaWFTb3Vy
Y2VQcml2YXRlLT5zZXRWaWRlb0xheWVyKG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmdldCgp
KTsKLSAgICBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlci0+c2V0VmlkZW9MYXllcihtX3Nh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllci5nZXQoKSwgc25hcHBlZEludFJlY3QobV9wbGF5ZXItPnBs
YXllckNvbnRlbnRCb3hSZWN0KCkpLnNpemUoKSk7CisgICAgbV92aWRlb0xheWVyTWFuYWdlci0+
c2V0VmlkZW9MYXllcihtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5nZXQoKSwgc25hcHBlZElu
dFJlY3QobV9wbGF5ZXItPnBsYXllckNvbnRlbnRCb3hSZWN0KCkpLnNpemUoKSk7CiAgICAgbV9w
bGF5ZXItPnJlbmRlcmluZ01vZGVDaGFuZ2VkKCk7CiB9CiAKQEAgLTc3Nyw3ICs3NzcsNyBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6ZGVzdHJveUxheWVyKCkK
IAogICAgIGlmIChtX21lZGlhU291cmNlUHJpdmF0ZSkKICAgICAgICAgbV9tZWRpYVNvdXJjZVBy
aXZhdGUtPnNldFZpZGVvTGF5ZXIobnVsbHB0cik7Ci0gICAgbV92aWRlb0Z1bGxzY3JlZW5MYXll
ck1hbmFnZXItPmRpZERlc3Ryb3lWaWRlb0xheWVyKCk7CisgICAgbV92aWRlb0xheWVyTWFuYWdl
ci0+ZGlkRGVzdHJveVZpZGVvTGF5ZXIoKTsKICAgICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ciA9IG51bGxwdHI7CiAgICAgc2V0SGFzQXZhaWxhYmxlVmlkZW9GcmFtZShmYWxzZSk7CiAgICAg
bV9wbGF5ZXItPnJlbmRlcmluZ01vZGVDaGFuZ2VkKCk7CkBAIC0xMTU0LDI3ICsxMTU0LDI3IEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpjaGFyYWN0ZXJpc3Rp
Y3NDaGFuZ2VkKCkKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpz
ZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyICp2aWRlb0Z1bGxzY3JlZW5MYXll
ciwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgdXBk
YXRlTGFzdEltYWdlKCk7Ci0gICAgbV92aWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXItPnNldFZp
ZGVvRnVsbHNjcmVlbkxheWVyKHZpZGVvRnVsbHNjcmVlbkxheWVyLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSwgbV9sYXN0SW1hZ2UpOworICAgIG1fdmlkZW9MYXllck1hbmFnZXItPnNldFZp
ZGVvRnVsbHNjcmVlbkxheWVyKHZpZGVvRnVsbHNjcmVlbkxheWVyLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSwgbV9sYXN0SW1hZ2UpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoRmxvYXRSZWN0IGZyYW1l
KQogewotICAgIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLT5zZXRWaWRlb0Z1bGxzY3Jl
ZW5GcmFtZShmcmFtZSk7CisgICAgbV92aWRlb0xheWVyTWFuYWdlci0+c2V0VmlkZW9GdWxsc2Ny
ZWVuRnJhbWUoZnJhbWUpOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQzo6cmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbigpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLT52aWRlb0Z1bGxzY3JlZW5MYXll
cigpOworICAgIHJldHVybiBtX3ZpZGVvTGF5ZXJNYW5hZ2VyLT52aWRlb0Z1bGxzY3JlZW5MYXll
cigpOwogfQogICAgIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6
OnN5bmNUZXh0VHJhY2tCb3VuZHMoKQogewotICAgIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5h
Z2VyLT5zeW5jVGV4dFRyYWNrQm91bmRzKCk7CisgICAgbV92aWRlb0xheWVyTWFuYWdlci0+c3lu
Y1RleHRUcmFja0JvdW5kcygpOwogfQogICAgIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakM6OnNldFRleHRUcmFja1JlcHJlc2VudGF0aW9uKFRleHRUcmFja1JlcHJl
c2VudGF0aW9uKiByZXByZXNlbnRhdGlvbikKIHsKLSAgICBtX3ZpZGVvRnVsbHNjcmVlbkxheWVy
TWFuYWdlci0+c2V0VGV4dFRyYWNrUmVwcmVzZW50YXRpb24ocmVwcmVzZW50YXRpb24pOworICAg
IG1fdmlkZW9MYXllck1hbmFnZXItPnNldFRleHRUcmFja1JlcHJlc2VudGF0aW9uKHJlcHJlc2Vu
dGF0aW9uKTsKIH0KIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQy5oCmluZGV4IDkwOWViNDkwM2ExLi45MmMwODIxNjU0OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgY2xhc3MgQXVkaW9UcmFja1By
aXZhdGVNZWRpYVN0cmVhbTsKIGNsYXNzIEFWVmlkZW9DYXB0dXJlU291cmNlOwogY2xhc3MgTWVk
aWFTb3VyY2VQcml2YXRlQ2xpZW50OwogY2xhc3MgUGl4ZWxCdWZmZXJDb25mb3JtZXJDVjsKLWNs
YXNzIFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakM7CitjbGFzcyBWaWRlb0xheWVyTWFu
YWdlck9iakM7CiBjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtOwogCiBjbGFzcyBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMgZmluYWwgOiBwdWJsaWMgTWVkaWFQ
bGF5ZXJQcml2YXRlSW50ZXJmYWNlLCBwcml2YXRlIE1lZGlhU3RyZWFtUHJpdmF0ZTo6T2JzZXJ2
ZXIsIHByaXZhdGUgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6Ok9ic2VydmVyLCBwdWJsaWMgU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyOjpDbGllbnQKQEAgLTI0Miw3ICsyNDIsNyBAQCBwcml2YXRl
OgogCiAgICAgUmVmPGNvbnN0IExvZ2dlcj4gbV9sb2dnZXI7CiAgICAgY29uc3Qgdm9pZCogbV9s
b2dJZGVudGlmaWVyOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxWaWRlb0Z1bGxzY3JlZW5MYXllck1h
bmFnZXJPYmpDPiBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlcjsKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8VmlkZW9MYXllck1hbmFnZXJPYmpDPiBtX3ZpZGVvTGF5ZXJNYW5hZ2VyOwogCiAgICAg
Ly8gU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpDbGllbnQKICAgICB2b2lkIHNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllclN0YXR1c0RpZENoYW5nZShTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXImKSBm
aW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQppbmRleCAwZjU3NDQxMjBlOC4uNjE4ODdm
N2VmZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KQEAgLTM0LDcgKzM0LDcgQEAKICNp
bXBvcnQgIkxvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgiCiAjaW1wb3J0ICJNZWRpYVN0
cmVhbVByaXZhdGUuaCIKICNpbXBvcnQgIlBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaCIKLSNpbXBv
cnQgIlZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakMuaCIKKyNpbXBvcnQgIlZpZGVvTGF5
ZXJNYW5hZ2VyT2JqQy5oIgogI2ltcG9ydCAiVmlkZW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5o
IgogI2ltcG9ydCA8Q29yZUdyYXBoaWNzL0NHQWZmaW5lVHJhbnNmb3JtLmg+CiAjaW1wb3J0IDxv
YmpjX3J1bnRpbWUuaD4KQEAgLTE0Niw3ICsxNDYsNyBAQCBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQyhNZWRp
YQogICAgICwgbV9jbG9jayhQQUw6OkNsb2NrOjpjcmVhdGUoKSkKICAgICAsIG1fbG9nZ2VyKHBs
YXllci0+bWVkaWFQbGF5ZXJMb2dnZXIoKSkKICAgICAsIG1fbG9nSWRlbnRpZmllcihwbGF5ZXIt
Pm1lZGlhUGxheWVyTG9nSWRlbnRpZmllcigpKQotICAgICwgbV92aWRlb0Z1bGxzY3JlZW5MYXll
ck1hbmFnZXIobWFrZVVuaXF1ZTxWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDPihtX2xv
Z2dlciwgbV9sb2dJZGVudGlmaWVyKSkKKyAgICAsIG1fdmlkZW9MYXllck1hbmFnZXIobWFrZVVu
aXF1ZTxWaWRlb0xheWVyTWFuYWdlck9iakM+KG1fbG9nZ2VyLCBtX2xvZ0lkZW50aWZpZXIpKQog
ICAgICwgbV9ib3VuZHNDaGFuZ2VMaXN0ZW5lcihhZG9wdE5TKFtbV2ViUm9vdFNhbXBsZUJ1ZmZl
ckJvdW5kc0NoYW5nZUxpc3RlbmVyIGFsbG9jXSBpbml0V2l0aFBhcmVudDp0aGlzXSkpCiB7CiAg
ICAgSU5GT19MT0coTE9HSURFTlRJRklFUik7CkBAIC0zODAsNyArMzgwLDcgQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmVuc3VyZUxheWVycygpCiAgICAgdXBk
YXRlUmVuZGVyaW5nTW9kZSgpOwogICAgIHVwZGF0ZURpc3BsYXlMYXllcigpOwogCi0gICAgbV92
aWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXItPnNldFZpZGVvTGF5ZXIobV9zYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXItPnJvb3RMYXllcigpLCBzaXplKTsKKyAgICBtX3ZpZGVvTGF5ZXJNYW5hZ2Vy
LT5zZXRWaWRlb0xheWVyKG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLT5yb290TGF5ZXIoKSwg
c2l6ZSk7CiAKICAgICBbbV9ib3VuZHNDaGFuZ2VMaXN0ZW5lciBiZWdpbl07CiB9CkBAIC0zOTIs
NyArMzkyLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmRl
c3Ryb3lMYXllcnMoKQogCiAgICAgdXBkYXRlUmVuZGVyaW5nTW9kZSgpOwogICAgIAotICAgIG1f
dmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLT5kaWREZXN0cm95VmlkZW9MYXllcigpOworICAg
IG1fdmlkZW9MYXllck1hbmFnZXItPmRpZERlc3Ryb3lWaWRlb0xheWVyKCk7CiB9CiAKICNwcmFn
bWEgbWFyayAtCkBAIC00NjMsNyArNDYzLDcgQEAgUGxhdGZvcm1MYXllciogTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKICAgICBpZiAo
IW1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyIHx8ICFtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ci0+cm9vdExheWVyKCkgfHwgbV9kaXNwbGF5TW9kZSA9PSBOb25lKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKIAotICAgIHJldHVybiBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlci0+dmlk
ZW9JbmxpbmVMYXllcigpOworICAgIHJldHVybiBtX3ZpZGVvTGF5ZXJNYW5hZ2VyLT52aWRlb0lu
bGluZUxheWVyKCk7CiB9CiAKIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6
RGlzcGxheU1vZGUgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpjdXJyZW50
RGlzcGxheU1vZGUoKSBjb25zdApAQCAtNzc2LDEyICs3NzYsMTIgQEAgYm9vbCBNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnN1cHBvcnRzUGljdHVyZUluUGljdHVyZSgpIGNv
bnN0CiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0VmlkZW9G
dWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciogdmlkZW9GdWxsc2NyZWVuTGF5ZXIsIFdURjo6
RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIHVwZGF0ZUN1cnJl
bnRGcmFtZUltYWdlKCk7Ci0gICAgbV92aWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXItPnNldFZp
ZGVvRnVsbHNjcmVlbkxheWVyKHZpZGVvRnVsbHNjcmVlbkxheWVyLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSwgbV9pbWFnZVBhaW50ZXIuY2dJbWFnZSk7CisgICAgbV92aWRlb0xheWVyTWFu
YWdlci0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIodmlkZW9GdWxsc2NyZWVuTGF5ZXIsIFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpLCBtX2ltYWdlUGFpbnRlci5jZ0ltYWdlKTsKIH0KIAogdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNldFZpZGVvRnVsbHNjcmVl
bkZyYW1lKEZsb2F0UmVjdCBmcmFtZSkKIHsKLSAgICBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyTWFu
YWdlci0+c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoZnJhbWUpOworICAgIG1fdmlkZW9MYXllck1h
bmFnZXItPnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKGZyYW1lKTsKIH0KIAogdHlwZWRlZiBlbnVt
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL1ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakMuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvTGF5ZXJNYW5hZ2Vy
T2JqQy5oCnNpbWlsYXJpdHkgaW5kZXggOTAlCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvRnVsbHNjcmVlbkxheWVyTWFu
YWdlck9iakMuaApyZW5hbWUgdG8gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvVmlkZW9MYXllck1hbmFnZXJPYmpDLmgKaW5kZXggMWZmOGJiNmVmMWEu
LmNjYjg3NTY0MzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlk
ZW9MYXllck1hbmFnZXJPYmpDLmgKQEAgLTI4LDcgKzI4LDcgQEAKICNpbmNsdWRlICJGbG9hdFJl
Y3QuaCIKICNpbmNsdWRlICJJbnRTaXplLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1MYXllci5oIgot
I2luY2x1ZGUgIlZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlci5oIgorI2luY2x1ZGUgIlZpZGVv
TGF5ZXJNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViVmlkZW9Db250YWluZXJMYXllci5oIgogI2lu
Y2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KQEAg
LTM5LDE0ICszOSwxNSBAQCBPQkpDX0NMQVNTIEFWUGxheWVyTGF5ZXI7CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotY2xhc3MgVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQyBmaW5hbCA6
IHB1YmxpYyBWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXIgLCBwdWJsaWMgTG9nZ2VySGVscGVy
IHsKK2NsYXNzIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQyBmaW5hbCA6IHB1YmxpYyBWaWRlb0xheWVy
TWFuYWdlciAsIHB1YmxpYyBMb2dnZXJIZWxwZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogcHVibGljOgotICAgIFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakMoY29uc3Qg
TG9nZ2VyJiwgY29uc3Qgdm9pZCopOworICAgIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQyhjb25zdCBM
b2dnZXImLCBjb25zdCB2b2lkKik7CiAKICAgICBQbGF0Zm9ybUxheWVyICp2aWRlb0lubGluZUxh
eWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV92aWRlb0lubGluZUxheWVyLmdldCgpOyB9CiAg
ICAgUGxhdGZvcm1MYXllciAqdmlkZW9GdWxsc2NyZWVuTGF5ZXIoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyLmdldCgpOyB9CiAgICAgRmxvYXRSZWN0IHZpZGVv
RnVsbHNjcmVlbkZyYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV92aWRlb0Z1bGxzY3JlZW5G
cmFtZTsgfQorCiAgICAgdm9pZCBzZXRWaWRlb0xheWVyKFBsYXRmb3JtTGF5ZXIgKiwgSW50U2l6
ZSBjb250ZW50U2l6ZSkgZmluYWw7CiAgICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQ
bGF0Zm9ybUxheWVyICosIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
LCBOYXRpdmVJbWFnZVB0cikgZmluYWw7CiAgICAgdm9pZCB1cGRhdGVWaWRlb0Z1bGxzY3JlZW5J
bmxpbmVJbWFnZShOYXRpdmVJbWFnZVB0cikgZmluYWw7CkBAIC02MCw3ICs2MSw3IEBAIHB1Ymxp
YzoKIHByaXZhdGU6CiAgICAgY29uc3QgTG9nZ2VyJiBsb2dnZXIoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBtX2xvZ2dlci5nZXQoKTsgfQogICAgIGNvbnN0IHZvaWQqIGxvZ0lkZW50aWZpZXIoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBtX2xvZ0lkZW50aWZpZXI7IH0KLSAgICBjb25zdCBjaGFyKiBs
b2dDbGFzc05hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiVmlkZW9GdWxsc2NyZWVuTGF5ZXJN
YW5hZ2VyT2JqQyI7IH0KKyAgICBjb25zdCBjaGFyKiBsb2dDbGFzc05hbWUoKSBjb25zdCBmaW5h
bCB7IHJldHVybiAiVmlkZW9MYXllck1hbmFnZXJPYmpDIjsgfQogICAgIFdURkxvZ0NoYW5uZWwm
IGxvZ0NoYW5uZWwoKSBjb25zdCBmaW5hbDsKIAogICAgIFJlZjxjb25zdCBMb2dnZXI+IG1fbG9n
Z2VyOwpAQCAtNzUsNCArNzYsMyBAQCBwcml2YXRlOgogfTsKIAogfQotCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb0Z1
bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9MYXllck1hbmFnZXJPYmpDLm1tCnNpbWlsYXJp
dHkgaW5kZXggODUlCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakMubW0KcmVu
YW1lIHRvIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbQppbmRleCA2YTc4ZGY0OTc4Zi4uNTcxMGM2YTNjYTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL1ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakMubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9MYXllck1hbmFn
ZXJPYmpDLm1tCkBAIC0yNCw3ICsyNCw3IEBACiAgKi8KIAogI2ltcG9ydCAiY29uZmlnLmgiCi0j
aW1wb3J0ICJWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDLmgiCisjaW1wb3J0ICJWaWRl
b0xheWVyTWFuYWdlck9iakMuaCIKIAogI2ltcG9ydCAiQ29sb3IuaCIKICNpbXBvcnQgIkxvZ2dp
bmcuaCIKQEAgLTQwLDI1ICs0MCwyNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVZpZGVv
RnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakM6OlZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9i
akMoY29uc3QgTG9nZ2VyJiBsb2dnZXIsIGNvbnN0IHZvaWQqIGxvZ0lkZW50aWZpZXIpCi0gICAg
OiBWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXIoKQorVmlkZW9MYXllck1hbmFnZXJPYmpDOjpW
aWRlb0xheWVyTWFuYWdlck9iakMoY29uc3QgTG9nZ2VyJiBsb2dnZXIsIGNvbnN0IHZvaWQqIGxv
Z0lkZW50aWZpZXIpCisgICAgOiBWaWRlb0xheWVyTWFuYWdlcigpCiAgICAgLCBtX2xvZ2dlcihs
b2dnZXIpCiAgICAgLCBtX2xvZ0lkZW50aWZpZXIobG9nSWRlbnRpZmllcikKIHsKIH0KIAotdm9p
ZCBWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDOjpzZXRWaWRlb0xheWVyKFBsYXRmb3Jt
TGF5ZXIgKnZpZGVvTGF5ZXIsIEludFNpemUgY29udGVudFNpemUpCit2b2lkIFZpZGVvTGF5ZXJN
YW5hZ2VyT2JqQzo6c2V0VmlkZW9MYXllcihQbGF0Zm9ybUxheWVyICp2aWRlb0xheWVyLCBJbnRT
aXplIGNvbnRlbnRTaXplKQogewogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgY29udGVu
dFNpemUud2lkdGgoKSwgIiwgIiwgY29udGVudFNpemUuaGVpZ2h0KCkpOwogCiAgICAgbV92aWRl
b0xheWVyID0gdmlkZW9MYXllcjsKLSAgICBtX3ZpZGVvSW5saW5lRnJhbWUgPSBDR1JlY3RNYWtl
KDAsIDAsIGNvbnRlbnRTaXplLndpZHRoKCksIGNvbnRlbnRTaXplLmhlaWdodCgpKTsKLQogICAg
IFttX3ZpZGVvTGF5ZXIgd2ViX2Rpc2FibGVBbGxBY3Rpb25zXTsKKwogICAgIG1fdmlkZW9Jbmxp
bmVMYXllciA9IGFkb3B0TlMoW1tXZWJWaWRlb0NvbnRhaW5lckxheWVyIGFsbG9jXSBpbml0XSk7
CiAjaWZuZGVmIE5ERUJVRwogICAgIFttX3ZpZGVvSW5saW5lTGF5ZXIgc2V0TmFtZTpAIldlYlZp
ZGVvQ29udGFpbmVyTGF5ZXIiXTsKICNlbmRpZgorICAgIG1fdmlkZW9JbmxpbmVGcmFtZSA9IENH
UmVjdE1ha2UoMCwgMCwgY29udGVudFNpemUud2lkdGgoKSwgY29udGVudFNpemUuaGVpZ2h0KCkp
OwogICAgIFttX3ZpZGVvSW5saW5lTGF5ZXIgc2V0RnJhbWU6bV92aWRlb0lubGluZUZyYW1lXTsK
ICAgICBbbV92aWRlb0lubGluZUxheWVyIHNldENvbnRlbnRzR3Jhdml0eTprQ0FHcmF2aXR5UmVz
aXplQXNwZWN0XTsKICAgICBpZiAoW3ZpZGVvTGF5ZXIgaXNLaW5kT2ZDbGFzczpQQUw6OmdldEFW
UGxheWVyTGF5ZXJDbGFzcygpXSkKQEAgLTczLDEzICs3MywxMyBAQCB2b2lkIFZpZGVvRnVsbHNj
cmVlbkxheWVyTWFuYWdlck9iakM6OnNldFZpZGVvTGF5ZXIoUGxhdGZvcm1MYXllciAqdmlkZW9M
YXllciwgSQogICAgIH0KIH0KIAotdm9pZCBWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpD
Ojp1cGRhdGVWaWRlb0Z1bGxzY3JlZW5JbmxpbmVJbWFnZShOYXRpdmVJbWFnZVB0ciBpbWFnZSkK
K3ZvaWQgVmlkZW9MYXllck1hbmFnZXJPYmpDOjp1cGRhdGVWaWRlb0Z1bGxzY3JlZW5JbmxpbmVJ
bWFnZShOYXRpdmVJbWFnZVB0ciBpbWFnZSkKIHsKICAgICBpZiAobV92aWRlb0lubGluZUxheWVy
KQogICAgICAgICBbbV92aWRlb0lubGluZUxheWVyIHNldENvbnRlbnRzOihfX2JyaWRnZSBpZClp
bWFnZS5nZXQoKV07CiB9CiAKLXZvaWQgVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQzo6
c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciAqdmlkZW9GdWxsc2NyZWVuTGF5
ZXIsIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyLCBOYXRpdmVJbWFn
ZVB0ciBjdXJyZW50SW1hZ2UpCit2b2lkIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQzo6c2V0VmlkZW9G
dWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciAqdmlkZW9GdWxsc2NyZWVuTGF5ZXIsIFdURjo6
RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyLCBOYXRpdmVJbWFnZVB0ciBjdXJy
ZW50SW1hZ2UpCiB7CiAgICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIgPT0gdmlkZW9GdWxs
c2NyZWVuTGF5ZXIpIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKQEAgLTEyNiw3ICsx
MjYsNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlck9iakM6OnNldFZpZGVvRnVs
bHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5ZXIgKnZpZAogICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1p
dF07CiB9CiAKLXZvaWQgVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQzo6c2V0VmlkZW9G
dWxsc2NyZWVuRnJhbWUoRmxvYXRSZWN0IHZpZGVvRnVsbHNjcmVlbkZyYW1lKQordm9pZCBWaWRl
b0xheWVyTWFuYWdlck9iakM6OnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKEZsb2F0UmVjdCB2aWRl
b0Z1bGxzY3JlZW5GcmFtZSkKIHsKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsIHZpZGVv
RnVsbHNjcmVlbkZyYW1lLngoKSwgIiwgIiwgdmlkZW9GdWxsc2NyZWVuRnJhbWUueSgpLCAiLCAi
LCB2aWRlb0Z1bGxzY3JlZW5GcmFtZS53aWR0aCgpLCAiLCAiLCB2aWRlb0Z1bGxzY3JlZW5GcmFt
ZS5oZWlnaHQoKSk7CiAKQEAgLTEzOCw3ICsxMzgsNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkxh
eWVyTWFuYWdlck9iakM6OnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKEZsb2F0UmVjdCB2aWRlb0Z1
bAogICAgIHN5bmNUZXh0VHJhY2tCb3VuZHMoKTsKIH0KIAotdm9pZCBWaWRlb0Z1bGxzY3JlZW5M
YXllck1hbmFnZXJPYmpDOjpkaWREZXN0cm95VmlkZW9MYXllcigpCit2b2lkIFZpZGVvTGF5ZXJN
YW5hZ2VyT2JqQzo6ZGlkRGVzdHJveVZpZGVvTGF5ZXIoKQogewogICAgIEFMV0FZU19MT0coTE9H
SURFTlRJRklFUik7CiAKQEAgLTE0OCwxMiArMTQ4LDEyIEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVu
TGF5ZXJNYW5hZ2VyT2JqQzo6ZGlkRGVzdHJveVZpZGVvTGF5ZXIoKQogICAgIG1fdmlkZW9MYXll
ciA9IG5pbDsKIH0KIAotYm9vbCBWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDOjpyZXF1
aXJlc1RleHRUcmFja1JlcHJlc2VudGF0aW9uKCkgY29uc3QKK2Jvb2wgVmlkZW9MYXllck1hbmFn
ZXJPYmpDOjpyZXF1aXJlc1RleHRUcmFja1JlcHJlc2VudGF0aW9uKCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gbV92aWRlb0Z1bGxzY3JlZW5MYXllcjsKIH0KIAotdm9pZCBWaWRlb0Z1bGxzY3JlZW5M
YXllck1hbmFnZXJPYmpDOjpzeW5jVGV4dFRyYWNrQm91bmRzKCkKK3ZvaWQgVmlkZW9MYXllck1h
bmFnZXJPYmpDOjpzeW5jVGV4dFRyYWNrQm91bmRzKCkKIHsKICAgICBpZiAoIW1fdmlkZW9GdWxs
c2NyZWVuTGF5ZXIgfHwgIW1fdGV4dFRyYWNrUmVwcmVzZW50YXRpb25MYXllcikKICAgICAgICAg
cmV0dXJuOwpAQCAtMTY5LDcgKzE2OSw3IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5h
Z2VyT2JqQzo6c3luY1RleHRUcmFja0JvdW5kcygpCiAgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0
XTsKIH0KIAotdm9pZCBWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDOjpzZXRUZXh0VHJh
Y2tSZXByZXNlbnRhdGlvbihUZXh0VHJhY2tSZXByZXNlbnRhdGlvbiogcmVwcmVzZW50YXRpb24p
Cit2b2lkIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQzo6c2V0VGV4dFRyYWNrUmVwcmVzZW50YXRpb24o
VGV4dFRyYWNrUmVwcmVzZW50YXRpb24qIHJlcHJlc2VudGF0aW9uKQogewogICAgIEFMV0FZU19M
T0coTE9HSURFTlRJRklFUik7CiAKQEAgLTE5MywxMyArMTkzLDExIEBAIHZvaWQgVmlkZW9GdWxs
c2NyZWVuTGF5ZXJNYW5hZ2VyT2JqQzo6c2V0VGV4dFRyYWNrUmVwcmVzZW50YXRpb24oVGV4dFRy
YWNrUmVwcmVzCiAgICAgfQogCiAgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKLQogfQogCi1X
VEZMb2dDaGFubmVsJiBWaWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXJPYmpDOjpsb2dDaGFubmVs
KCkgY29uc3QKK1dURkxvZ0NoYW5uZWwmIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQzo6bG9nQ2hhbm5l
bCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIExvZ01lZGlhOwogfQogCiB9Ci0K
</data>

          </attachment>
      

    </bug>

</bugzilla>