<?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>224270</bug_id>
          
          <creation_ts>2021-04-07 00:15:16 -0700</creation_ts>
          <short_desc>[GPU Process] Simplify DisplayList::Iterator part 6: Migrate ItemBufferWritingClient from ItemHandle to a const Variant&amp;</short_desc>
          <delta_ts>2021-05-09 02:52:56 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>223560</blocked>
    
    <blocked>224314</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1747784</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-04-07 00:15:16 -0700</bug_when>
    <thetext>[GPU Process] Simplify DisplayList::Iterator part 6: Migrate ItemBufferWritingClient from ItemHandle to a const Variant&amp;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747787</commentid>
    <comment_count>1</comment_count>
      <attachid>425359</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-04-07 00:23:41 -0700</bug_when>
    <thetext>Created attachment 425359
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747802</commentid>
    <comment_count>2</comment_count>
      <attachid>425362</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-04-07 00:44:51 -0700</bug_when>
    <thetext>Created attachment 425362
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748176</commentid>
    <comment_count>3</comment_count>
      <attachid>425362</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-04-07 18:41:20 -0700</bug_when>
    <thetext>Comment on attachment 425362
Patch

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

&gt; Source/WebCore/platform/graphics/displaylists/DisplayListItemBuffer.cpp:607
&gt; +inline bool safeCopyHelper(const T&amp; source, ItemHandle destination)

We can do
using T = typename WTF::RemoveCVAndReference&lt;decltype(a)&gt;::type;
instead of needing a helper.

&gt; Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h:324
&gt; +    static RefPtr&lt;WebCore::SharedBuffer&gt; encodeItemOutOfLineHelper(const T&amp; item)

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748188</commentid>
    <comment_count>4</comment_count>
      <attachid>425471</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-04-07 19:32:09 -0700</bug_when>
    <thetext>Created attachment 425471
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749411</commentid>
    <comment_count>5</comment_count>
      <attachid>425471</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-04-12 15:27:22 -0700</bug_when>
    <thetext>Comment on attachment 425471
Patch

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

&gt; Source/WebKit/WebKit.xcodeproj/xcshareddata/xcschemes/WebKit.xcscheme:34
&gt; +      buildConfiguration = &quot;Debug&quot;

This change doesn&apos;t seem intentional.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1750022</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-04-14 00:16:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/76631891&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758304</commentid>
    <comment_count>7</comment_count>
      <attachid>428114</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-05-09 00:55:59 -0700</bug_when>
    <thetext>Created attachment 428114
Patch for committing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758309</commentid>
    <comment_count>8</comment_count>
      <attachid>428117</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-05-09 01:56:34 -0700</bug_when>
    <thetext>Created attachment 428117
Patch for committing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758316</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-09 02:52:55 -0700</bug_when>
    <thetext>Committed r277244 (237513@main): &lt;https://commits.webkit.org/237513@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 428117.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425359</attachid>
            <date>2021-04-07 00:23:41 -0700</date>
            <delta_ts>2021-04-07 01:15:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224270-20210407002340.patch</filename>
            <type>text/plain</type>
            <size>26215</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1NTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmM0ZTYyN2IwNDAzODEy
NjMwNWIxYTg5NDM3OWVkOWE4OWZjODU4MS4uNjViNGRjNDc5NjhlMmI1NTBmMzhiMmQ0MWUxNGMz
ODFlM2Y3OGQxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIxLTA0LTA3ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9j
ZXNzXSBTaW1wbGlmeSBEaXNwbGF5TGlzdDo6SXRlcmF0b3IgcGFydCA2OiBNaWdyYXRlIEl0ZW1C
dWZmZXJXcml0aW5nQ2xpZW50IGZyb20gSXRlbUhhbmRsZSB0byBhIGNvbnN0IFZhcmlhbnQmCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQyNzAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNo
IGFkZHMgYSBuZXcgVmFyaWFudCB0aGF0IGNvbnRhaW5zIGFsbCB0aGUgRGlzcGxheUxpc3QgaXRl
bSB0eXBlcywgbmFtZWQgRGlzcGxheUxpc3RJdGVtLiBJdCBhbHNvIG1pZ3JhdGVzCisgICAgICAg
IEl0ZW1CdWZmZXJXcml0aW5nQ2xpZW50IGZyb20gSXRlbUhhbmRsZSB0byB0aGlzIG5ldyBWYXJp
YW50LgorCisgICAgICAgIFRoZXJlIGFyZSB0d28gYmVuZWZpdHMgdG8gdGhpczoKKyAgICAgICAg
MS4gVGhlIHRlbXBsYXRlZCBvdmVybG9hZCBvZiBJdGVtQnVmZmVyOjphcHBlbmQoKSBpcyB3YXkg
c2ltcGxlciBub3cuIFByZXZpb3VzbHksIHdlIHVzZWQgdG8gYWxsb2NhdGUgYSBieXRlIGJ1ZmZl
cgorICAgICAgICAgICAgICAgb24gdGhlIHN0YWNrIGFuZCBydW4gYSBwbGFjZW1lbnQgbmV3IG9m
IHRoZSBkaXNwbGF5IGxpc3QgaXRlbSB0eXBlIGludG8gaXQuIE5vdywgd2UgY2FuIGp1c3QgcnVu
IHRoZSBEaXNwbGF5TGlzdEl0ZW0KKyAgICAgICAgICAgICAgIGNvbnN0cnVjdG9yIGluc3RlYWQu
IFVzaW5nIHRoZSBWYXJpYW50IGRvZXMgcmVxdWlyZSBtb3JlIHN0YWNrIHNwYWNlLCBidXQgd2Ug
b25seSB3aWxsIGV2ZXIgaGF2ZSBvbmUgb2YgdGhlc2Ugb2JqZWN0cworICAgICAgICAgICAgICAg
b24gdGhlIHN0YWNrIGF0IGEgdGltZS4KKyAgICAgICAgMi4gVGhlIGJpZyB0YWJsZSBpbnNpZGUg
UmVtb3RlSW1hZ2VCdWZmZXJQcm94eTo6ZW5jb2RlSXRlbU91dE9mTGluZSgpIGlzIGdvbmUsIGFu
ZCBpcyByZXBsYWNlZCB3aXRoIGp1c3QgNyBsaW5lcy4gVGhpcyBpcworICAgICAgICAgICAgICAg
b25lIGZld2VyIHBsYWNlIHdoZXJlIHdlJ2xsIGhhdmUgdG8gbWFrZSBzdXJlIHRoZSBEaXNwbGF5
TGlzdEl0ZW0gdHlwZXMgbWF0Y2ggYSBmdW5jdGlvbiBpbiBhbiBlbnRpcmVseSBkaWZmZXJlbnQK
KyAgICAgICAgICAgICAgIGZyYW1ld29yay4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGJlY2F1
c2UgdGhlcmUgaXMgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6Y29weUludG8pOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OnNhZmVDb3B5SGVscGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0Ojpz
YWZlQ29weSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcjo6YXBw
ZW5kKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RJdGVtQnVmZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZl
cldyaXRpbmdDbGllbnQ6OnJlcXVpcmVkU2l6ZUZvckl0ZW0gY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXJXcml0aW5nQ2xpZW50OjplbmNvZGVJdGVtT3V0
T2ZMaW5lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVy
V3JpdGluZ0NsaWVudDo6ZW5jb2RlSXRlbUlubGluZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcjo6YXBwZW5kKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6cGFkZGVkU2l6ZU9mVHlwZUFuZEl0ZW1JbkJ5dGVzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpkaXNwbGF5TGlzdEl0ZW1UeXBlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9Jbk1lbW9yeURpc3BsYXlM
aXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJbk1lbW9yeURpc3BsYXlM
aXN0OjpXcml0aW5nQ2xpZW50OjpyZXF1aXJlZFNpemVGb3JJdGVtIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJbk1lbW9yeURpc3BsYXlMaXN0OjpXcml0aW5nQ2xpZW50
OjplbmNvZGVJdGVtSW5saW5lIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvSW5NZW1vcnlEaXNwbGF5TGlzdC5oOgorCiAyMDIxLTA0LTA2ICBaYWxhbiBC
dWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSUZDXSBJbmxpbmVGb3Jt
YXR0aW5nU3RhdGU6OnNocmlua1RvRml0IHNob3VsZCBzaHJpbmsgSW5saW5lSXRlbXMgdG9vCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IDI1OWIxOGZlYmZkZjU0YWFkOWNiODQ0ZjJjNTQwMzEwODA2ODgwNzUuLjQxNGQy
MzkyMTJmMWQ4ZWFkOGQ0MmMyZmEzODYyYTBiNWRjMmY5NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTMgQEAKKzIwMjEtMDQtMDcgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNv
bT4KKworICAgICAgICBbR1BVIFByb2Nlc3NdIFNpbXBsaWZ5IERpc3BsYXlMaXN0OjpJdGVyYXRv
ciBwYXJ0IDY6IE1pZ3JhdGUgSXRlbUJ1ZmZlcldyaXRpbmdDbGllbnQgZnJvbSBJdGVtSGFuZGxl
IHRvIGEgY29uc3QgVmFyaWFudCYKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNDI3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQ
cm94eS5oOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlclByb3h5OjplbmNvZGVJ
dGVtT3V0T2ZMaW5lSGVscGVyKToKKwogMjAyMS0wNC0wNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29u
X2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGRyZXNzIHNvbWUgcG9zdC1sYW5kaW5nIGNv
bW1lbnRzIGFmdGVyIHIyNzU0OTEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1
ZmZlci5jcHAKaW5kZXggOWM2NjRmZjY2ZWUzNTY5YWRlNzAwMGFkYWRkZjdkMmM2Yjg0NzE5My4u
NGY4NDhlNTcyZDNjMDZkZDlmZWI1NzViZjM5OTU1NzMwNDRlNzA3ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRl
bUJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHAKQEAgLTQ0MiwxOSArNDQyLDI1IEBAIHRl
bXBsYXRlPHR5cGVuYW1lLCB0eXBlbmFtZSA9IHZvaWQ+IGlubGluZSBjb25zdGV4cHIgYm9vbCBI
YXNJc1ZhbGlkID0gZmFsc2U7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgY29uc3RleHBy
IGJvb2wgSGFzSXNWYWxpZDxULCBzdGQ6OnZvaWRfdDxkZWNsdHlwZShzdGQ6OmRlY2x2YWw8VD4o
KS5pc1ZhbGlkKCkpPj4gPSB0cnVlOwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBJdGVtPgotc3RhdGlj
IHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmX3Q8IUhhc0lzVmFsaWQ8SXRlbT4sIGJvb2w+IGNvcHlJ
bnRvKGNvbnN0IEl0ZW1IYW5kbGUmIGl0ZW1IYW5kbGUsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uV2l0
aE9mZnNldCkKK3N0YXRpYyBpbmxpbmUgdHlwZW5hbWUgc3RkOjplbmFibGVfaWZfdDwhSGFzSXNW
YWxpZDxJdGVtPiwgYm9vbD4gY29weUludG8oY29uc3QgSXRlbSYgaXRlbSwgdWludDhfdCogZGVz
dGluYXRpb25XaXRoT2Zmc2V0KQogewotICAgIG5ldyAoZGVzdGluYXRpb25XaXRoT2Zmc2V0KSBJ
dGVtKGl0ZW1IYW5kbGUuZ2V0PEl0ZW0+KCkpOworICAgIG5ldyAoZGVzdGluYXRpb25XaXRoT2Zm
c2V0KSBJdGVtKGl0ZW0pOwogICAgIHJldHVybiB0cnVlOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBJdGVtPgotc3RhdGljIHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmX3Q8SGFzSXNWYWxpZDxJdGVt
PiwgYm9vbD4gY29weUludG8oY29uc3QgSXRlbUhhbmRsZSYgaXRlbUhhbmRsZSwgdWludDhfdCog
ZGVzdGluYXRpb25XaXRoT2Zmc2V0KQorc3RhdGljIGlubGluZSB0eXBlbmFtZSBzdGQ6OmVuYWJs
ZV9pZl90PEhhc0lzVmFsaWQ8SXRlbT4sIGJvb2w+IGNvcHlJbnRvKGNvbnN0IEl0ZW0mIGl0ZW0s
IHVpbnQ4X3QqIGRlc3RpbmF0aW9uV2l0aE9mZnNldCkKIHsKLSAgICBhdXRvKiBuZXdJdGVtID0g
bmV3IChkZXN0aW5hdGlvbldpdGhPZmZzZXQpIEl0ZW0oaXRlbUhhbmRsZS5nZXQ8SXRlbT4oKSk7
CisgICAgYXV0byogbmV3SXRlbSA9IG5ldyAoZGVzdGluYXRpb25XaXRoT2Zmc2V0KSBJdGVtKGl0
ZW0pOwogICAgIHJldHVybiBuZXdJdGVtLT5pc1ZhbGlkKCk7CiB9CiAKK3RlbXBsYXRlPHR5cGVu
YW1lIEl0ZW0+CitzdGF0aWMgaW5saW5lIGJvb2wgY29weUludG8oY29uc3QgSXRlbUhhbmRsZSYg
aXRlbUhhbmRsZSwgdWludDhfdCogZGVzdGluYXRpb25XaXRoT2Zmc2V0KQoreworICAgIHJldHVy
biBjb3B5SW50byhpdGVtSGFuZGxlLmdldDxJdGVtPigpLCBkZXN0aW5hdGlvbldpdGhPZmZzZXQp
OworfQorCiBib29sIEl0ZW1IYW5kbGU6OnNhZmVDb3B5KEl0ZW1IYW5kbGUgZGVzdGluYXRpb24p
IGNvbnN0CiB7CiAgICAgYXV0byBpdGVtVHlwZSA9IHR5cGUoKTsKQEAgLTU5Nyw2ICs2MDMsMjIg
QEAgYm9vbCBJdGVtSGFuZGxlOjpzYWZlQ29weShJdGVtSGFuZGxlIGRlc3RpbmF0aW9uKSBjb25z
dAogICAgIHJldHVybiBmYWxzZTsKIH0KIAordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitpbmxpbmUg
Ym9vbCBzYWZlQ29weUhlbHBlcihjb25zdCBUJiBzb3VyY2UsIEl0ZW1IYW5kbGUgZGVzdGluYXRp
b24pCit7CisgICAgY29uc3RleHByIGF1dG8gaXRlbVR5cGUgPSBUOjppdGVtVHlwZTsKKyAgICBk
ZXN0aW5hdGlvbi5kYXRhWzBdID0gc3RhdGljX2Nhc3Q8dWludDhfdD4oaXRlbVR5cGUpOworICAg
IGF1dG8gaXRlbU9mZnNldCA9IGRlc3RpbmF0aW9uLmRhdGEgKyBzaXplb2YodWludDY0X3QpOwor
ICAgIHJldHVybiBjb3B5SW50bzxUPihzb3VyY2UsIGl0ZW1PZmZzZXQpOworfQorCitib29sIHNh
ZmVDb3B5KGNvbnN0IERpc3BsYXlMaXN0SXRlbSYgc291cmNlLCBJdGVtSGFuZGxlIGRlc3RpbmF0
aW9uKQoreworICAgIHJldHVybiBXVEY6OnZpc2l0KFsmXShjb25zdCBhdXRvJiBzb3VyY2UpIHsK
KyAgICAgICAgcmV0dXJuIHNhZmVDb3B5SGVscGVyKHNvdXJjZSwgZGVzdGluYXRpb24pOworICAg
IH0sIHNvdXJjZSk7Cit9CisKIEl0ZW1CdWZmZXI6Okl0ZW1CdWZmZXIoSXRlbUJ1ZmZlckhhbmRs
ZXMmJiBoYW5kbGVzKQogICAgIDogbV9yZWFkT25seUJ1ZmZlcnMoV1RGTW92ZShoYW5kbGVzKSkK
IHsKQEAgLTY4Miw3ICs3MDQsNyBAQCBEaWRDaGFuZ2VJdGVtQnVmZmVyIEl0ZW1CdWZmZXI6OnN3
YXBXcml0YWJsZUJ1ZmZlcklmTmVlZGVkKHNpemVfdCBudW1iZXJPZkJ5dGVzKQogICAgIHJldHVy
biBoYWRQcmV2aW91c0J1ZmZlciA/IERpZENoYW5nZUl0ZW1CdWZmZXI6OlllcyA6IERpZENoYW5n
ZUl0ZW1CdWZmZXI6Ok5vOwogfQogCi12b2lkIEl0ZW1CdWZmZXI6OmFwcGVuZChJdGVtSGFuZGxl
IHRlbXBvcmFyeUl0ZW0pCit2b2lkIEl0ZW1CdWZmZXI6OmFwcGVuZChjb25zdCBEaXNwbGF5TGlz
dEl0ZW0mIHRlbXBvcmFyeUl0ZW0pCiB7CiAgICAgYXV0byByZXF1aXJlZFNpemVGb3JJdGVtID0g
bV93cml0aW5nQ2xpZW50LT5yZXF1aXJlZFNpemVGb3JJdGVtKHRlbXBvcmFyeUl0ZW0pOwogICAg
IFJlZlB0cjxTaGFyZWRCdWZmZXI+IG91dE9mTGluZUl0ZW07CkBAIC03MDAsNyArNzIyLDcgQEAg
dm9pZCBJdGVtQnVmZmVyOjphcHBlbmQoSXRlbUhhbmRsZSB0ZW1wb3JhcnlJdGVtKQogCiAgICAg
YXV0byBidWZmZXJDaGFuZ2VkID0gc3dhcFdyaXRhYmxlQnVmZmVySWZOZWVkZWQoYWRkaXRpb25h
bENhcGFjaXR5Rm9yRW5jb2RlZEl0ZW0pOwogCi0gICAgbV93cml0YWJsZUJ1ZmZlci5kYXRhW21f
d3JpdHRlbk51bWJlck9mQnl0ZXNdID0gc3RhdGljX2Nhc3Q8dWludDhfdD4odGVtcG9yYXJ5SXRl
bS50eXBlKCkpOworICAgIG1fd3JpdGFibGVCdWZmZXIuZGF0YVttX3dyaXR0ZW5OdW1iZXJPZkJ5
dGVzXSA9IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGRpc3BsYXlMaXN0SXRlbVR5cGUodGVtcG9yYXJ5
SXRlbSkpOwogICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3QqPihtX3dyaXRhYmxlQnVmZmVy
LmRhdGEgKyBtX3dyaXR0ZW5OdW1iZXJPZkJ5dGVzKVsxXSA9IGRhdGFMZW5ndGg7CiAgICAgYXV0
byogbG9jYXRpb24gPSBtX3dyaXRhYmxlQnVmZmVyLmRhdGEgKyBtX3dyaXR0ZW5OdW1iZXJPZkJ5
dGVzICsgMiAqIHNpemVvZih1aW50NjRfdCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dEl0ZW1CdWZmZXIuaAppbmRleCBhMmE1Njc5YzJiNTY2NDBiMmMyNmUxZGE2MzdjOGY1OGYzMGY1
Y2Q3Li5mZDk0Mzk3MDJmNTI1NWZjODVlMGY1YTUxMjNkYTZlNmY4Mzc1NTBmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RJdGVtQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5oCkBAIC04Miw2ICs4Miw4IEBAIHN0cnVj
dCBJdGVtSGFuZGxlIHsKICAgICBib29sIHNhZmVDb3B5KEl0ZW1IYW5kbGUgZGVzdGluYXRpb24p
IGNvbnN0OwogfTsKIAorYm9vbCBzYWZlQ29weShjb25zdCBEaXNwbGF5TGlzdEl0ZW0mIHNvdXJj
ZSwgSXRlbUhhbmRsZSBkZXN0aW5hdGlvbik7CisKIGVudW0gY2xhc3MgRGlkQ2hhbmdlSXRlbUJ1
ZmZlciA6IGJvb2wgeyBObywgWWVzIH07CiAKIGNsYXNzIEl0ZW1CdWZmZXJXcml0aW5nQ2xpZW50
IHsKQEAgLTk1LDE3ICs5NywxNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiB7IH07CiAgICAg
fQogCi0gICAgdmlydHVhbCBPcHRpb25hbDxzdGQ6OnNpemVfdD4gcmVxdWlyZWRTaXplRm9ySXRl
bShJdGVtSGFuZGxlKSBjb25zdAorICAgIHZpcnR1YWwgT3B0aW9uYWw8c3RkOjpzaXplX3Q+IHJl
cXVpcmVkU2l6ZUZvckl0ZW0oY29uc3QgRGlzcGxheUxpc3RJdGVtJikgY29uc3QKICAgICB7CiAg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAgfQogCi0gICAgdmlydHVhbCBSZWZQdHI8
U2hhcmVkQnVmZmVyPiBlbmNvZGVJdGVtT3V0T2ZMaW5lKEl0ZW1IYW5kbGUpIGNvbnN0CisgICAg
dmlydHVhbCBSZWZQdHI8U2hhcmVkQnVmZmVyPiBlbmNvZGVJdGVtT3V0T2ZMaW5lKGNvbnN0IERp
c3BsYXlMaXN0SXRlbSYpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAg
ICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgZW5jb2RlSXRlbUlubGluZShJdGVtSGFuZGxlLCB1aW50
OF90KikgY29uc3QKKyAgICB2aXJ0dWFsIHZvaWQgZW5jb2RlSXRlbUlubGluZShjb25zdCBEaXNw
bGF5TGlzdEl0ZW0mLCB1aW50OF90KikgY29uc3QKICAgICB7CiAgICAgfQogCkBAIC0xNzQsMTgg
KzE3Niw5IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190
cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPFQ+Ojp2YWx1ZSA9PSBUOjppc0lubGluZUl0ZW0pOwogCi0g
ICAgICAgIGlmICghVDo6aXNJbmxpbmVJdGVtKSB7CisgICAgICAgIGlmIGNvbnN0ZXhwciAoIVQ6
OmlzSW5saW5lSXRlbSkgewogICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQobV93cml0aW5nQ2xp
ZW50KTsKLSNpZiBDT01QSUxFUihNU1ZDKQotICAgICAgICAgICAgX19kZWNsc3BlYyhhbGlnbig4
KSkgdHlwZWRlZiB1aW50OF90IEVuY29kaW5nQnVmZmVyW3NpemVvZih1aW50NjRfdCkgKyBzaXpl
b2YoVCldOwotI2Vsc2UKLSAgICAgICAgICAgIHVzaW5nIEVuY29kaW5nQnVmZmVyIF9fYXR0cmli
dXRlX18oKGFsaWduZWQgKDgpKSkgPSB1aW50OF90W3NpemVvZih1aW50NjRfdCkgKyBzaXplb2Yo
VCldOwotI2VuZGlmCi0gICAgICAgICAgICBzdGF0aWMgRW5jb2RpbmdCdWZmZXIgdGVtcG9yYXJ5
SXRlbUJ1ZmZlcjsKLSAgICAgICAgICAgIHRlbXBvcmFyeUl0ZW1CdWZmZXJbMF0gPSBzdGF0aWNf
Y2FzdDx1aW50OF90PihUOjppdGVtVHlwZSk7Ci0gICAgICAgICAgICBuZXcgKHRlbXBvcmFyeUl0
ZW1CdWZmZXIgKyBzaXplb2YodWludDY0X3QpKSBUKHN0ZDo6Zm9yd2FyZDxBcmdzPihhcmdzKS4u
Lik7Ci0gICAgICAgICAgICBhcHBlbmQoeyB0ZW1wb3JhcnlJdGVtQnVmZmVyIH0pOwotICAgICAg
ICAgICAgSXRlbUhhbmRsZSB7IHRlbXBvcmFyeUl0ZW1CdWZmZXIgfS5kZXN0cm95KCk7CisgICAg
ICAgICAgICBhcHBlbmQoRGlzcGxheUxpc3RJdGVtKFQoc3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3Mp
Li4uKSkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKQEAgLTIwNCw3ICsxOTcs
NyBAQCBwcml2YXRlOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkQXBwZW5kRGF0YShzaXpl
X3QgbnVtYmVyT2ZCeXRlcywgRGlkQ2hhbmdlSXRlbUJ1ZmZlcik7CiAKICAgICBXRUJDT1JFX0VY
UE9SVCBEaWRDaGFuZ2VJdGVtQnVmZmVyIHN3YXBXcml0YWJsZUJ1ZmZlcklmTmVlZGVkKHNpemVf
dCBudW1iZXJPZkJ5dGVzKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFwcGVuZChJdGVtSGFu
ZGxlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFwcGVuZChjb25zdCBEaXNwbGF5TGlzdEl0
ZW0mKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBjbGFzcy4uLiBBcmdzPiB2b2lkIHVuY2hl
Y2tlZEFwcGVuZChEaWRDaGFuZ2VJdGVtQnVmZmVyIGRpZENoYW5nZUl0ZW1CdWZmZXIsIEFyZ3Mm
Ji4uLiBhcmdzKQogICAgIHsKICAgICAgICAgYXV0byogc3RhcnRPZkl0ZW0gPSAmbV93cml0YWJs
ZUJ1ZmZlci5kYXRhW21fd3JpdHRlbk51bWJlck9mQnl0ZXNdOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5
cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0SXRlbVR5cGUuY3BwCmluZGV4IDRhNjYzYWZhNzYwZTY5ZmYyYzU2ZjU1MzIyNGVl
MDZhMjlkMzQ0YmMuLmExZTA5MWU0NTdmNTg5ZGM4MzI0ZjA5NGY2N2ExN2UyODQ2ZmJiN2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdEl0ZW1UeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5jcHAKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjU5LDYgKzI1OSwyMSBA
QCBzaXplX3QgcGFkZGVkU2l6ZU9mVHlwZUFuZEl0ZW1JbkJ5dGVzKEl0ZW1UeXBlIHR5cGUpCiAg
ICAgcmV0dXJuIHNpemVvZih1aW50NjRfdCkgKyByb3VuZFVwVG9NdWx0aXBsZU9mKGFsaWdub2Yo
dWludDY0X3QpLCBzaXplT2ZJdGVtSW5CeXRlcyh0eXBlKSk7CiB9CiAKK3NpemVfdCBwYWRkZWRT
aXplT2ZUeXBlQW5kSXRlbUluQnl0ZXMoY29uc3QgRGlzcGxheUxpc3RJdGVtJiBkaXNwbGF5TGlz
dEl0ZW0pCit7CisgICAgYXV0byBpdGVtU2l6ZSA9IFdURjo6dmlzaXQoW10oY29uc3QgYXV0byYg
aXRlbSkgeworICAgICAgICByZXR1cm4gc2l6ZW9mKGl0ZW0pOworICAgIH0sIGRpc3BsYXlMaXN0
SXRlbSk7CisgICAgcmV0dXJuIHNpemVvZih1aW50NjRfdCkgKyByb3VuZFVwVG9NdWx0aXBsZU9m
KGFsaWdub2YodWludDY0X3QpLCBpdGVtU2l6ZSk7Cit9CisKK0l0ZW1UeXBlIGRpc3BsYXlMaXN0
SXRlbVR5cGUoY29uc3QgRGlzcGxheUxpc3RJdGVtJiBkaXNwbGF5TGlzdEl0ZW0pCit7CisgICAg
cmV0dXJuIFdURjo6dmlzaXQoW10oY29uc3QgYXV0byYgaXRlbSkgeworICAgICAgICByZXR1cm4g
aXRlbS5pdGVtVHlwZTsKKyAgICB9LCBkaXNwbGF5TGlzdEl0ZW0pOworfQorCiBib29sIGlzSW5s
aW5lSXRlbShJdGVtVHlwZSB0eXBlKQogewogICAgIC8qIFNlZSB0aGUgY29tbWVudCBhdCB0aGUg
dG9wIG9mIERpc3BsYXlMaXN0SXRlbXMuaCBmb3Igd2hhdCB0aGlzIG1lYW5zLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0SXRlbXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdEl0ZW1zLmgKaW5kZXggZTg2OGM3OTc5NDdjNWE2Y2FmZjgxNDJlZjdmY2I4
MzBhYmQyZGRmMi4uMjhhNDg3ODlmN2E3NzlmZGM3MmZjZjRhZTc2OGY2M2EyZmY4MGQxZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0SXRlbXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCkBAIC0yMjgyLDYgKzIyODIsNzMgQEAgcHJp
dmF0ZToKICAgICBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOwogfTsK
IAordXNpbmcgRGlzcGxheUxpc3RJdGVtID0gVmFyaWFudDwKKyAgICBTYXZlLAorICAgIFJlc3Rv
cmUsCisgICAgVHJhbnNsYXRlLAorICAgIFJvdGF0ZSwKKyAgICBTY2FsZSwKKyAgICBTZXRDVE0s
CisgICAgQ29uY2F0ZW5hdGVDVE0sCisgICAgU2V0SW5saW5lRmlsbEdyYWRpZW50LAorICAgIFNl
dElubGluZUZpbGxDb2xvciwKKyAgICBTZXRJbmxpbmVTdHJva2VDb2xvciwKKyAgICBTZXRTdHJv
a2VUaGlja25lc3MsCisgICAgU2V0U3RhdGUsCisgICAgU2V0TGluZUNhcCwKKyAgICBTZXRMaW5l
RGFzaCwKKyAgICBTZXRMaW5lSm9pbiwKKyAgICBTZXRNaXRlckxpbWl0LAorICAgIENsZWFyU2hh
ZG93LAorICAgIENsaXAsCisgICAgQ2xpcE91dCwKKyAgICBDbGlwVG9JbWFnZUJ1ZmZlciwKKyAg
ICBDbGlwT3V0VG9QYXRoLAorICAgIENsaXBQYXRoLAorICAgIEJlZ2luQ2xpcFRvRHJhd2luZ0Nv
bW1hbmRzLAorICAgIEVuZENsaXBUb0RyYXdpbmdDb21tYW5kcywKKyAgICBEcmF3R2x5cGhzLAor
ICAgIERyYXdJbWFnZUJ1ZmZlciwKKyAgICBEcmF3TmF0aXZlSW1hZ2UsCisgICAgRHJhd1BhdHRl
cm4sCisgICAgQmVnaW5UcmFuc3BhcmVuY3lMYXllciwKKyAgICBFbmRUcmFuc3BhcmVuY3lMYXll
ciwKKyAgICBEcmF3UmVjdCwKKyAgICBEcmF3TGluZSwKKyAgICBEcmF3TGluZXNGb3JUZXh0LAor
ICAgIERyYXdEb3RzRm9yRG9jdW1lbnRNYXJrZXIsCisgICAgRHJhd0VsbGlwc2UsCisgICAgRHJh
d1BhdGgsCisgICAgRHJhd0ZvY3VzUmluZ1BhdGgsCisgICAgRHJhd0ZvY3VzUmluZ1JlY3RzLAor
ICAgIEZpbGxSZWN0LAorICAgIEZpbGxSZWN0V2l0aENvbG9yLAorICAgIEZpbGxSZWN0V2l0aEdy
YWRpZW50LAorICAgIEZpbGxDb21wb3NpdGVkUmVjdCwKKyAgICBGaWxsUm91bmRlZFJlY3QsCisg
ICAgRmlsbFJlY3RXaXRoUm91bmRlZEhvbGUsCisgICAgRmlsbElubGluZVBhdGgsCisgICAgRmls
bFBhdGgsCisgICAgRmlsbEVsbGlwc2UsCisgICAgR2V0SW1hZ2VEYXRhLAorICAgIFB1dEltYWdl
RGF0YSwKKyAgICBQYWludEZyYW1lRm9yTWVkaWEsCisgICAgU3Ryb2tlUmVjdCwKKyAgICBTdHJv
a2VMaW5lLAorICAgIFN0cm9rZUlubGluZVBhdGgsCisgICAgU3Ryb2tlUGF0aCwKKyAgICBTdHJv
a2VFbGxpcHNlLAorICAgIENsZWFyUmVjdCwKKyAgICBBcHBseVN0cm9rZVBhdHRlcm4sCisgICAg
QXBwbHlGaWxsUGF0dGVybiwKKyAgICBBcHBseURldmljZVNjYWxlRmFjdG9yLAorICAgIEZsdXNo
Q29udGV4dCwKKyAgICBNZXRhQ29tbWFuZENoYW5nZUl0ZW1CdWZmZXIsCisgICAgTWV0YUNvbW1h
bmRDaGFuZ2VEZXN0aW5hdGlvbkltYWdlQnVmZmVyPjsKKworc2l6ZV90IHBhZGRlZFNpemVPZlR5
cGVBbmRJdGVtSW5CeXRlcyhjb25zdCBEaXNwbGF5TGlzdEl0ZW0mKTsKK0l0ZW1UeXBlIGRpc3Bs
YXlMaXN0SXRlbVR5cGUoY29uc3QgRGlzcGxheUxpc3RJdGVtJik7CisKIFRleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoVGV4dFN0cmVhbSYsIEl0ZW1IYW5kbGUpOwogCiB9IC8vIG5hbWVzcGFjZSBEaXNw
bGF5TGlzdApAQCAtMjM2Myw2ICsyNDMwLDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0
czxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU+IHsKICNlbmRpZgogICAgIFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6QXBwbHlEZXZpY2VTY2FsZUZhY3RvcgogICAgID47CisK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0luTWVtb3J5RGlzcGxheUxpc3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0luTWVtb3J5RGlzcGxh
eUxpc3QuY3BwCmluZGV4IGRkNTBmMjcxZGFiNTM4Njg4ZTI1NGUzMjkzNWRiMTVkOWI5Zjc2N2Qu
LmFlOTYxM2JjOThmNWY1ZjRkYzZlNjU1YmUwOTUyMGJjNjJmMTUzZmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9Jbk1lbW9yeURpc3Bs
YXlMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvSW5NZW1vcnlEaXNwbGF5TGlzdC5jcHAKQEAgLTI5LDE0ICsyOSwxNCBAQAogbmFtZXNw
YWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIERpc3BsYXlMaXN0IHsKIAotT3B0aW9uYWw8c3RkOjpz
aXplX3Q+IEluTWVtb3J5RGlzcGxheUxpc3Q6OldyaXRpbmdDbGllbnQ6OnJlcXVpcmVkU2l6ZUZv
ckl0ZW0oSXRlbUhhbmRsZSBpdGVtSGFuZGxlKSBjb25zdAorT3B0aW9uYWw8c3RkOjpzaXplX3Q+
IEluTWVtb3J5RGlzcGxheUxpc3Q6OldyaXRpbmdDbGllbnQ6OnJlcXVpcmVkU2l6ZUZvckl0ZW0o
Y29uc3QgRGlzcGxheUxpc3RJdGVtJiBkaXNwbGF5TGlzdEl0ZW0pIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIHBhZGRlZFNpemVPZlR5cGVBbmRJdGVtSW5CeXRlcyhpdGVtSGFuZGxlLnR5cGUoKSk7Cisg
ICAgcmV0dXJuIHBhZGRlZFNpemVPZlR5cGVBbmRJdGVtSW5CeXRlcyhkaXNwbGF5TGlzdEl0ZW0p
OwogfQogCi12b2lkIEluTWVtb3J5RGlzcGxheUxpc3Q6OldyaXRpbmdDbGllbnQ6OmVuY29kZUl0
ZW1JbmxpbmUoSXRlbUhhbmRsZSBpdGVtSGFuZGxlLCB1aW50OF90KiBsb2NhdGlvbikgY29uc3QK
K3ZvaWQgSW5NZW1vcnlEaXNwbGF5TGlzdDo6V3JpdGluZ0NsaWVudDo6ZW5jb2RlSXRlbUlubGlu
ZShjb25zdCBEaXNwbGF5TGlzdEl0ZW0mIGRpc3BsYXlMaXN0SXRlbSwgdWludDhfdCogbG9jYXRp
b24pIGNvbnN0CiB7Ci0gICAgaXRlbUhhbmRsZS5zYWZlQ29weSh7IGxvY2F0aW9uIH0pOworICAg
IHNhZmVDb3B5KGRpc3BsYXlMaXN0SXRlbSwgeyBsb2NhdGlvbiB9KTsKIH0KIAogT3B0aW9uYWw8
SXRlbUhhbmRsZT4gV0FSTl9VTlVTRURfUkVUVVJOIEluTWVtb3J5RGlzcGxheUxpc3Q6OlJlYWRp
bmdDbGllbnQ6OmRlY29kZUl0ZW0oY29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90IGRhdGFMZW5n
dGgsIEl0ZW1UeXBlIHR5cGUsIHVpbnQ4X3QqIGhhbmRsZUxvY2F0aW9uKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0luTWVtb3J5RGlz
cGxheUxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9Jbk1lbW9yeURpc3BsYXlMaXN0LmgKaW5kZXggNGU4Zjk5MDY0NzQyNWVjOTcxYmM4OWViZGIw
NTVkOWMyY2YzNzA4MC4uMWNjMDhhZmFiZmYyZGE1N2MxYzJkMThkODk2ZmRjZjk1ZGNhYTNkMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0luTWVtb3J5RGlzcGxheUxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvSW5NZW1vcnlEaXNwbGF5TGlzdC5oCkBAIC00MCw4ICs0MCw4IEBA
IHB1YmxpYzoKICAgICBjbGFzcyBXRUJDT1JFX0VYUE9SVCBXcml0aW5nQ2xpZW50IDogcHVibGlj
IEl0ZW1CdWZmZXJXcml0aW5nQ2xpZW50IHsKICAgICAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CiAgICAgcHJpdmF0ZToKLSAgICAgICAgT3B0aW9uYWw8c3RkOjpzaXplX3Q+IHJlcXVpcmVk
U2l6ZUZvckl0ZW0oSXRlbUhhbmRsZSkgY29uc3QgZmluYWw7Ci0gICAgICAgIHZvaWQgZW5jb2Rl
SXRlbUlubGluZShJdGVtSGFuZGxlLCB1aW50OF90KikgY29uc3QgZmluYWw7CisgICAgICAgIE9w
dGlvbmFsPHN0ZDo6c2l6ZV90PiByZXF1aXJlZFNpemVGb3JJdGVtKGNvbnN0IERpc3BsYXlMaXN0
SXRlbSYpIGNvbnN0IGZpbmFsOworICAgICAgICB2b2lkIGVuY29kZUl0ZW1JbmxpbmUoY29uc3Qg
RGlzcGxheUxpc3RJdGVtJiwgdWludDhfdCopIGNvbnN0IGZpbmFsOwogICAgIH07CiAKICAgICBj
bGFzcyBXRUJDT1JFX0VYUE9SVCBSZWFkaW5nQ2xpZW50IDogcHVibGljIEl0ZW1CdWZmZXJSZWFk
aW5nQ2xpZW50IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKaW5kZXggMmI2YmZmMTA0N2Yx
MTcwOTY3MThjZGU5ZGM3MWE0Y2Y5MGJmNWVlZi4uNDJhNjEwZjZmNGQ5NzYxNGM1MDE2NzRkOTM1
MmI2MjAxNzg0ZTZiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKQEAgLTMyMCwxMDUg
KzMyMCwyMCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCi0gICAg
UmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4gZW5jb2RlSXRlbU91dE9mTGluZShXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZSBpdGVtKSBjb25zdCBmaW5hbAotICAgIHsKLSAgICAg
ICAgLyogVGhpcyBuZWVkcyB0byBtYXRjaCAoMSkgaXNJbmxpbmVJdGVtKCkgaW4gRGlzcGxheUxp
c3RJdGVtVHlwZS5jcHAsICgyKSBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpkZWNvZGVJdGVtKCks
Ci0gICAgICAgICAqIGFuZCAoMykgYWxsIHRoZSAic3RhdGljIGNvbnN0ZXhwciBib29sIGlzSW5s
aW5lSXRlbSJzIGluc2lkZSB0aGUgaW5kaXZpZHVhbCBpdGVtIGNsYXNzZXMuCi0gICAgICAgICAq
IFNlZSB0aGUgY29tbWVudCBhdCB0aGUgdG9wIG9mIERpc3BsYXlMaXN0SXRlbXMuaCBmb3Igd2h5
LiAqLwotCi0gICAgICAgIHN3aXRjaCAoaXRlbS50eXBlKCkpIHsKLSAgICAgICAgY2FzZSBXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkNsaXBPdXRUb1BhdGg6Ci0gICAgICAgICAgICBy
ZXR1cm4gSVBDOjpFbmNvZGVyOjplbmNvZGVTaW5nbGVPYmplY3Q8V2ViQ29yZTo6RGlzcGxheUxp
c3Q6OkNsaXBPdXRUb1BhdGg+KGl0ZW0uZ2V0PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpDbGlwT3V0
VG9QYXRoPigpKTsKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6
OkNsaXBQYXRoOgotICAgICAgICAgICAgcmV0dXJuIElQQzo6RW5jb2Rlcjo6ZW5jb2RlU2luZ2xl
T2JqZWN0PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpDbGlwUGF0aD4oaXRlbS5nZXQ8V2ViQ29yZTo6
RGlzcGxheUxpc3Q6OkNsaXBQYXRoPigpKTsKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6SXRlbVR5cGU6OkRyYXdGb2N1c1JpbmdQYXRoOgotICAgICAgICAgICAgcmV0dXJuIElQ
Qzo6RW5jb2Rlcjo6ZW5jb2RlU2luZ2xlT2JqZWN0PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3
Rm9jdXNSaW5nUGF0aD4oaXRlbS5nZXQ8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdGb2N1c1Jp
bmdQYXRoPigpKTsKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6
OkRyYXdGb2N1c1JpbmdSZWN0czoKLSAgICAgICAgICAgIHJldHVybiBJUEM6OkVuY29kZXI6OmVu
Y29kZVNpbmdsZU9iamVjdDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0ZvY3VzUmluZ1JlY3Rz
PihpdGVtLmdldDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0ZvY3VzUmluZ1JlY3RzPigpKTsK
LSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkRyYXdHbHlwaHM6
Ci0gICAgICAgICAgICByZXR1cm4gSVBDOjpFbmNvZGVyOjplbmNvZGVTaW5nbGVPYmplY3Q8V2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHM+KGl0ZW0uZ2V0PFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpEcmF3R2x5cGhzPigpKTsKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
SXRlbVR5cGU6OkRyYXdMaW5lc0ZvclRleHQ6Ci0gICAgICAgICAgICByZXR1cm4gSVBDOjpFbmNv
ZGVyOjplbmNvZGVTaW5nbGVPYmplY3Q8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdMaW5lc0Zv
clRleHQ+KGl0ZW0uZ2V0PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3TGluZXNGb3JUZXh0Pigp
KTsKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkRyYXdQYXRo
OgotICAgICAgICAgICAgcmV0dXJuIElQQzo6RW5jb2Rlcjo6ZW5jb2RlU2luZ2xlT2JqZWN0PFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3UGF0aD4oaXRlbS5nZXQ8V2ViQ29yZTo6RGlzcGxheUxp
c3Q6OkRyYXdQYXRoPigpKTsKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRl
bVR5cGU6OkZpbGxDb21wb3NpdGVkUmVjdDoKLSAgICAgICAgICAgIHJldHVybiBJUEM6OkVuY29k
ZXI6OmVuY29kZVNpbmdsZU9iamVjdDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RmlsbENvbXBvc2l0
ZWRSZWN0PihpdGVtLmdldDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RmlsbENvbXBvc2l0ZWRSZWN0
PigpKTsKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkZpbGxQ
YXRoOgotICAgICAgICAgICAgcmV0dXJuIElQQzo6RW5jb2Rlcjo6ZW5jb2RlU2luZ2xlT2JqZWN0
PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpGaWxsUGF0aD4oaXRlbS5nZXQ8V2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OkZpbGxQYXRoPigpKTsKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
SXRlbVR5cGU6OkZpbGxSZWN0V2l0aENvbG9yOgotICAgICAgICAgICAgcmV0dXJuIElQQzo6RW5j
b2Rlcjo6ZW5jb2RlU2luZ2xlT2JqZWN0PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpGaWxsUmVjdFdp
dGhDb2xvcj4oaXRlbS5nZXQ8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkZpbGxSZWN0V2l0aENvbG9y
PigpKTsKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkZpbGxS
ZWN0V2l0aEdyYWRpZW50OgotICAgICAgICAgICAgcmV0dXJuIElQQzo6RW5jb2Rlcjo6ZW5jb2Rl
U2luZ2xlT2JqZWN0PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpGaWxsUmVjdFdpdGhHcmFkaWVudD4o
aXRlbS5nZXQ8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkZpbGxSZWN0V2l0aEdyYWRpZW50PigpKTsK
LSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkZpbGxSZWN0V2l0
aFJvdW5kZWRIb2xlOgotICAgICAgICAgICAgcmV0dXJuIElQQzo6RW5jb2Rlcjo6ZW5jb2RlU2lu
Z2xlT2JqZWN0PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpGaWxsUmVjdFdpdGhSb3VuZGVkSG9sZT4o
aXRlbS5nZXQ8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkZpbGxSZWN0V2l0aFJvdW5kZWRIb2xlPigp
KTsKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkZpbGxSb3Vu
ZGVkUmVjdDoKLSAgICAgICAgICAgIHJldHVybiBJUEM6OkVuY29kZXI6OmVuY29kZVNpbmdsZU9i
amVjdDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RmlsbFJvdW5kZWRSZWN0PihpdGVtLmdldDxXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6RmlsbFJvdW5kZWRSZWN0PigpKTsKLSAgICAgICAgY2FzZSBXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlB1dEltYWdlRGF0YToKLSAgICAgICAgICAgIHJl
dHVybiBJUEM6OkVuY29kZXI6OmVuY29kZVNpbmdsZU9iamVjdDxXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6UHV0SW1hZ2VEYXRhPihpdGVtLmdldDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UHV0SW1hZ2VE
YXRhPigpKTsKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNl
dExpbmVEYXNoOgotICAgICAgICAgICAgcmV0dXJuIElQQzo6RW5jb2Rlcjo6ZW5jb2RlU2luZ2xl
T2JqZWN0PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRMaW5lRGFzaD4oaXRlbS5nZXQ8V2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OlNldExpbmVEYXNoPigpKTsKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldFN0YXRlOgotICAgICAgICAgICAgcmV0dXJuIElQQzo6
RW5jb2Rlcjo6ZW5jb2RlU2luZ2xlT2JqZWN0PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRTdGF0
ZT4oaXRlbS5nZXQ8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldFN0YXRlPigpKTsKLSAgICAgICAg
Y2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlN0cm9rZVBhdGg6Ci0gICAgICAg
ICAgICByZXR1cm4gSVBDOjpFbmNvZGVyOjplbmNvZGVTaW5nbGVPYmplY3Q8V2ViQ29yZTo6RGlz
cGxheUxpc3Q6OlN0cm9rZVBhdGg+KGl0ZW0uZ2V0PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTdHJv
a2VQYXRoPigpKTsKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6
OkFwcGx5RGV2aWNlU2NhbGVGYWN0b3I6Ci0jaWYgVVNFKENHKQotICAgICAgICBjYXNlIFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6QXBwbHlGaWxsUGF0dGVybjoKLSAgICAgICAgY2Fz
ZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkFwcGx5U3Ryb2tlUGF0dGVybjoKLSNl
bmRpZgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6QmVnaW5U
cmFuc3BhcmVuY3lMYXllcjoKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRl
bVR5cGU6OkNsZWFyUmVjdDoKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRl
bVR5cGU6OkNsZWFyU2hhZG93OgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJ
dGVtVHlwZTo6Q2xpcDoKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5
cGU6OkNsaXBPdXQ6Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBl
OjpDbGlwVG9JbWFnZUJ1ZmZlcjoKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
SXRlbVR5cGU6OkJlZ2luQ2xpcFRvRHJhd2luZ0NvbW1hbmRzOgotICAgICAgICBjYXNlIFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RW5kQ2xpcFRvRHJhd2luZ0NvbW1hbmRzOgotICAg
ICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6Q29uY2F0ZW5hdGVDVE06
Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpEcmF3RG90c0Zv
ckRvY3VtZW50TWFya2VyOgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVt
VHlwZTo6RHJhd0VsbGlwc2U6Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0
ZW1UeXBlOjpEcmF3SW1hZ2VCdWZmZXI6Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxp
c3Q6Okl0ZW1UeXBlOjpEcmF3TmF0aXZlSW1hZ2U6Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlz
cGxheUxpc3Q6Okl0ZW1UeXBlOjpEcmF3UGF0dGVybjoKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6SXRlbVR5cGU6OkRyYXdMaW5lOgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpJdGVtVHlwZTo6RHJhd1JlY3Q6Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlz
cGxheUxpc3Q6Okl0ZW1UeXBlOjpFbmRUcmFuc3BhcmVuY3lMYXllcjoKLSAgICAgICAgY2FzZSBX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkZpbGxFbGxpcHNlOgotI2lmIEVOQUJMRShJ
TkxJTkVfUEFUSF9EQVRBKQotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVt
VHlwZTo6RmlsbElubGluZVBhdGg6Ci0jZW5kaWYKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6SXRlbVR5cGU6OkZpbGxSZWN0OgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpJdGVtVHlwZTo6Rmx1c2hDb250ZXh0OgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpJdGVtVHlwZTo6TWV0YUNvbW1hbmRDaGFuZ2VEZXN0aW5hdGlvbkltYWdlQnVm
ZmVyOgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6TWV0YUNv
bW1hbmRDaGFuZ2VJdGVtQnVmZmVyOgotI2lmIEVOQUJMRShWSURFTykKLSAgICAgICAgY2FzZSBX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlBhaW50RnJhbWVGb3JNZWRpYToKLSNlbmRp
ZgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6UmVzdG9yZToK
LSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlJvdGF0ZToKLSAg
ICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNhdmU6Ci0gICAgICAg
IGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTY2FsZToKLSAgICAgICAgY2Fz
ZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldENUTToKLSAgICAgICAgY2FzZSBX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldElubGluZUZpbGxDb2xvcjoKLSAgICAg
ICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldElubGluZUZpbGxHcmFk
aWVudDoKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldElu
bGluZVN0cm9rZUNvbG9yOgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVt
VHlwZTo6U2V0TGluZUNhcDoKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRl
bVR5cGU6OlNldExpbmVKb2luOgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJ
dGVtVHlwZTo6U2V0TWl0ZXJMaW1pdDoKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6SXRlbVR5cGU6OlNldFN0cm9rZVRoaWNrbmVzczoKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6SXRlbVR5cGU6OlN0cm9rZUVsbGlwc2U6Ci0jaWYgRU5BQkxFKElOTElORV9Q
QVRIX0RBVEEpCi0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpT
dHJva2VJbmxpbmVQYXRoOgotI2VuZGlmCi0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxp
c3Q6Okl0ZW1UeXBlOjpTdHJva2VSZWN0OgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpJdGVtVHlwZTo6U3Ryb2tlTGluZToKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6SXRlbVR5cGU6OlRyYW5zbGF0ZToKLSAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05P
VF9SRUFDSEVEKCk7Ci0gICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgZGVmYXVs
dDoKLSAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgfQorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgor
ICAgIHN0YXRpYyBSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiBlbmNvZGVJdGVtT3V0T2ZM
aW5lSGVscGVyKGNvbnN0IFQmIGl0ZW0pCisgICAgeworICAgICAgICBpZiBjb25zdGV4cHIgKCFU
Ojppc0lubGluZUl0ZW0pCisgICAgICAgICAgICByZXR1cm4gSVBDOjpFbmNvZGVyOjplbmNvZGVT
aW5nbGVPYmplY3Q8VD4oaXRlbSk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIFJlZlB0cjxXZWJDb3Jl
OjpTaGFyZWRCdWZmZXI+IGVuY29kZUl0ZW1PdXRPZkxpbmUoY29uc3QgV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OkRpc3BsYXlMaXN0SXRlbSYgaXRlbSkgY29uc3QgZmluYWwKKyAgICB7CisgICAgICAg
IHJldHVybiBXVEY6OnZpc2l0KFtdKGNvbnN0IGF1dG8mIGRpc3BsYXlMaXN0SXRlbSkgLT4gUmVm
UHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4geworICAgICAgICAgICAgcmV0dXJuIGVuY29kZUl0
ZW1PdXRPZkxpbmVIZWxwZXIoZGlzcGxheUxpc3RJdGVtKTsKKyAgICAgICAgfSwgaXRlbSk7CiAg
ICAgfQogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlRocmVhZFNhZmVJbWFnZUJ1ZmZl
ckZsdXNoZXI+IGNyZWF0ZUZsdXNoZXIoKSBvdmVycmlkZQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGVmNWZkMjVlNzIzMTAyMzgwY2I1YWE5ZGY1
YzMxNTFlMmJhODU1MTIuLjFhYzE4MTJhMWQwODVhM2FkNjBhYWY4NDQyYmNiZGQzNTYyYjQxNDcg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAyMS0wNC0wNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10gU2ltcGxpZnkgRGlzcGxheUxpc3Q6Okl0
ZXJhdG9yIHBhcnQgNjogTWlncmF0ZSBJdGVtQnVmZmVyV3JpdGluZ0NsaWVudCBmcm9tIEl0ZW1I
YW5kbGUgdG8gYSBjb25zdCBWYXJpYW50JgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI0MjcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRGlzcGxheUxp
c3RUZXN0cy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NHLmNwcDoKKwog
MjAyMS0wNC0wNiAgSmVhbi1ZdmVzIEF2ZW5hcmQgIDxqeWFAYXBwbGUuY29tPgogCiAgICAgICAg
IEFkZCBqeWFAYXBwbGUuY29tIGFzIGNvbW1pdHRlci4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9EaXNwbGF5TGlzdFRlc3RzLmNwcCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9EaXNwbGF5TGlzdFRlc3RzLmNwcAppbmRleCBkNGZkZDBi
ZThiYWY2M2FiZjViODYzZGY0N2JlOGJjNDAxM2VlYTc2Li5jY2JkNzcwNjQ2ZjVhMWE2ZGRiOWNl
OTRlYTczZGRlMTA0YzllYzRiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvRGlzcGxheUxpc3RUZXN0cy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL0Rpc3BsYXlMaXN0VGVzdHMuY3BwCkBAIC0xOTksMTAgKzE5OSwxMCBAQCBU
RVNUKERpc3BsYXlMaXN0VGVzdHMsIEl0ZW1CdWZmZXJDbGllbnQpCiAgICAgICAgICAgICByZXR1
cm4geyBnbG9iYWxCdWZmZXJJZGVudGlmaWVyLCBnbG9iYWxJdGVtQnVmZmVyLCBnbG9iYWxJdGVt
QnVmZmVyQ2FwYWNpdHkgfTsKICAgICAgICAgfQogCi0gICAgICAgIFJlZlB0cjxTaGFyZWRCdWZm
ZXI+IGVuY29kZUl0ZW1PdXRPZkxpbmUoSXRlbUhhbmRsZSBoYW5kbGUpIGNvbnN0IGZpbmFsCisg
ICAgICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGVuY29kZUl0ZW1PdXRPZkxpbmUoY29uc3QgRGlz
cGxheUxpc3RJdGVtJiBkaXNwbGF5TGlzdEl0ZW0pIGNvbnN0IGZpbmFsCiAgICAgICAgIHsKICAg
ICAgICAgICAgIGF1dG8gaW5kZXggPSBtX2l0ZW1zLnNpemUoKTsKLSAgICAgICAgICAgIG1faXRl
bXMuYXBwZW5kKGhhbmRsZS5nZXQ8U3Ryb2tlUGF0aD4oKSk7CisgICAgICAgICAgICBtX2l0ZW1z
LmFwcGVuZChXVEY6OmdldDxTdHJva2VQYXRoPihkaXNwbGF5TGlzdEl0ZW0pKTsKICAgICAgICAg
ICAgIHJldHVybiBTaGFyZWRCdWZmZXI6OmNyZWF0ZShyZWludGVycHJldF9jYXN0PHVpbnQ4X3Qq
PigmaW5kZXgpLCBzaXplb2Yoc2l6ZV90KSk7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NnL0Rpc3BsYXlMaXN0VGVzdHNDRy5jcHAg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NH
LmNwcAppbmRleCAyNWU5OGJiMTE3Y2QxZDI2N2E2YTdhNDJkMGJhYTdmMjY5NmIwZDI4Li4zNjlk
NGZlZThhYmNhOTU0ZTAyNmVhNjllYzFlOTgxMzc2OGYxMDAwIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NHLmNwcAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NH
LmNwcApAQCAtMTAwLDcgKzEwMCw3IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiB7IGdsb2Jh
bEJ1ZmZlcklkZW50aWZpZXIsIGdsb2JhbEl0ZW1CdWZmZXIsIGdsb2JhbEl0ZW1CdWZmZXJDYXBh
Y2l0eSB9OwogICAgIH0KIAotICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGVuY29kZUl0ZW1PdXRP
ZkxpbmUoSXRlbUhhbmRsZSkgY29uc3QgZmluYWwKKyAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBl
bmNvZGVJdGVtT3V0T2ZMaW5lKGNvbnN0IERpc3BsYXlMaXN0SXRlbSYpIGNvbnN0IGZpbmFsCiAg
ICAgewogICAgICAgICByZXR1cm4gU2hhcmVkQnVmZmVyOjpjcmVhdGUoKTsKICAgICB9Cg==
</data>
<flag name="commit-queue"
          id="445299"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425362</attachid>
            <date>2021-04-07 00:44:51 -0700</date>
            <delta_ts>2021-04-07 19:32:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224270-20210407004450.patch</filename>
            <type>text/plain</type>
            <size>26472</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1NTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzQzMWZlYTQyZWYwM2Fj
YjM2N2RiYTZkMDY2Yjg1YjFmMmM4MDJmMC4uOWI0ZDk1ZDUxZWY1NDgyZmY3N2VjNzdlMWUyMmM0
YTI4ZDFjMjg5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIxLTA0LTA3ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9j
ZXNzXSBTaW1wbGlmeSBEaXNwbGF5TGlzdDo6SXRlcmF0b3IgcGFydCA2OiBNaWdyYXRlIEl0ZW1C
dWZmZXJXcml0aW5nQ2xpZW50IGZyb20gSXRlbUhhbmRsZSB0byBhIGNvbnN0IFZhcmlhbnQmCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQyNzAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNo
IGFkZHMgYSBuZXcgVmFyaWFudCB0aGF0IGNvbnRhaW5zIGFsbCB0aGUgRGlzcGxheUxpc3QgaXRl
bSB0eXBlcywgbmFtZWQgRGlzcGxheUxpc3RJdGVtLiBJdCBhbHNvIG1pZ3JhdGVzCisgICAgICAg
IEl0ZW1CdWZmZXJXcml0aW5nQ2xpZW50IGZyb20gSXRlbUhhbmRsZSB0byB0aGlzIG5ldyBWYXJp
YW50LgorCisgICAgICAgIFRoZXJlIGFyZSB0d28gYmVuZWZpdHMgdG8gdGhpczoKKyAgICAgICAg
MS4gVGhlIHRlbXBsYXRlZCBvdmVybG9hZCBvZiBJdGVtQnVmZmVyOjphcHBlbmQoKSBpcyB3YXkg
c2ltcGxlciBub3cuIFByZXZpb3VzbHksIHdlIHVzZWQgdG8gYWxsb2NhdGUgYSBieXRlIGJ1ZmZl
cgorICAgICAgICAgICAgICAgb24gdGhlIHN0YWNrIGFuZCBydW4gYSBwbGFjZW1lbnQgbmV3IG9m
IHRoZSBkaXNwbGF5IGxpc3QgaXRlbSB0eXBlIGludG8gaXQuIE5vdywgd2UgY2FuIGp1c3QgcnVu
IHRoZSBEaXNwbGF5TGlzdEl0ZW0KKyAgICAgICAgICAgICAgIGNvbnN0cnVjdG9yIGluc3RlYWQu
IFVzaW5nIHRoZSBWYXJpYW50IGRvZXMgcmVxdWlyZSBtb3JlIHN0YWNrIHNwYWNlLCBidXQgd2Ug
b25seSB3aWxsIGV2ZXIgaGF2ZSBvbmUgb2YgdGhlc2Ugb2JqZWN0cworICAgICAgICAgICAgICAg
b24gdGhlIHN0YWNrIGF0IGEgdGltZS4KKyAgICAgICAgMi4gVGhlIGJpZyB0YWJsZSBpbnNpZGUg
UmVtb3RlSW1hZ2VCdWZmZXJQcm94eTo6ZW5jb2RlSXRlbU91dE9mTGluZSgpIGlzIGdvbmUsIGFu
ZCBpcyByZXBsYWNlZCB3aXRoIGp1c3QgNyBsaW5lcy4gVGhpcyBpcworICAgICAgICAgICAgICAg
b25lIGZld2VyIHBsYWNlIHdoZXJlIHdlJ2xsIGhhdmUgdG8gbWFrZSBzdXJlIHRoZSBEaXNwbGF5
TGlzdEl0ZW0gdHlwZXMgbWF0Y2ggYSBmdW5jdGlvbiBpbiBhbiBlbnRpcmVseSBkaWZmZXJlbnQK
KyAgICAgICAgICAgICAgIGZyYW1ld29yay4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGJlY2F1
c2UgdGhlcmUgaXMgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6Y29weUludG8pOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OnNhZmVDb3B5SGVscGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0Ojpz
YWZlQ29weSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcjo6YXBw
ZW5kKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RJdGVtQnVmZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZl
cldyaXRpbmdDbGllbnQ6OnJlcXVpcmVkU2l6ZUZvckl0ZW0gY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXJXcml0aW5nQ2xpZW50OjplbmNvZGVJdGVtT3V0
T2ZMaW5lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVy
V3JpdGluZ0NsaWVudDo6ZW5jb2RlSXRlbUlubGluZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcjo6YXBwZW5kKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6cGFkZGVkU2l6ZU9mVHlwZUFuZEl0ZW1JbkJ5dGVzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpkaXNwbGF5TGlzdEl0ZW1UeXBlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9Jbk1lbW9yeURpc3BsYXlM
aXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJbk1lbW9yeURpc3BsYXlM
aXN0OjpXcml0aW5nQ2xpZW50OjpyZXF1aXJlZFNpemVGb3JJdGVtIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJbk1lbW9yeURpc3BsYXlMaXN0OjpXcml0aW5nQ2xpZW50
OjplbmNvZGVJdGVtSW5saW5lIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvSW5NZW1vcnlEaXNwbGF5TGlzdC5oOgorCiAyMDIxLTA0LTA2ICBNeWxlcyBD
LiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVSBQcm9jZXNz
XSBTaW1wbGlmeSBEaXNwbGF5TGlzdDo6SXRlcmF0b3IgcGFydCA1OiBUd2VhayB0aGUgcmV0dXJu
IHR5cGUgb2YgRGlzcGxheUxpc3Q6Okl0ZXJhdG9yOjpvcGVyYXRvciooKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAy
NTliMThmZWJmZGY1NGFhZDljYjg0NGYyYzU0MDMxMDgwNjg4MDc1Li40MTRkMjM5MjEyZjFkOGVh
ZDhkNDJjMmZhMzg2MmEwYjVkYzJmOTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIx
LTA0LTA3ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAg
ICAgW0dQVSBQcm9jZXNzXSBTaW1wbGlmeSBEaXNwbGF5TGlzdDo6SXRlcmF0b3IgcGFydCA2OiBN
aWdyYXRlIEl0ZW1CdWZmZXJXcml0aW5nQ2xpZW50IGZyb20gSXRlbUhhbmRsZSB0byBhIGNvbnN0
IFZhcmlhbnQmCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjQyNzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaDoKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXJQcm94eTo6ZW5jb2RlSXRlbU91dE9mTGlu
ZUhlbHBlcik6CisKIDIwMjEtMDQtMDYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBs
ZS5jb20+CiAKICAgICAgICAgQWRkcmVzcyBzb21lIHBvc3QtbGFuZGluZyBjb21tZW50cyBhZnRl
ciByMjc1NDkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3BwCmlu
ZGV4IDljNjY0ZmY2NmVlMzU2OWFkZTcwMDBhZGFkZGY3ZDJjNmI4NDcxOTMuLjRmODQ4ZTU3MmQz
YzA2ZGQ5ZmViNTc1YmYzOTk1NTczMDQ0ZTcwN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdEl0ZW1CdWZmZXIuY3BwCkBAIC00NDIsMTkgKzQ0MiwyNSBAQCB0ZW1wbGF0ZTx0eXBl
bmFtZSwgdHlwZW5hbWUgPSB2b2lkPiBpbmxpbmUgY29uc3RleHByIGJvb2wgSGFzSXNWYWxpZCA9
IGZhbHNlOwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIGNvbnN0ZXhwciBib29sIEhhc0lz
VmFsaWQ8VCwgc3RkOjp2b2lkX3Q8ZGVjbHR5cGUoc3RkOjpkZWNsdmFsPFQ+KCkuaXNWYWxpZCgp
KT4+ID0gdHJ1ZTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgSXRlbT4KLXN0YXRpYyB0eXBlbmFtZSBz
dGQ6OmVuYWJsZV9pZl90PCFIYXNJc1ZhbGlkPEl0ZW0+LCBib29sPiBjb3B5SW50byhjb25zdCBJ
dGVtSGFuZGxlJiBpdGVtSGFuZGxlLCB1aW50OF90KiBkZXN0aW5hdGlvbldpdGhPZmZzZXQpCitz
dGF0aWMgaW5saW5lIHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmX3Q8IUhhc0lzVmFsaWQ8SXRlbT4s
IGJvb2w+IGNvcHlJbnRvKGNvbnN0IEl0ZW0mIGl0ZW0sIHVpbnQ4X3QqIGRlc3RpbmF0aW9uV2l0
aE9mZnNldCkKIHsKLSAgICBuZXcgKGRlc3RpbmF0aW9uV2l0aE9mZnNldCkgSXRlbShpdGVtSGFu
ZGxlLmdldDxJdGVtPigpKTsKKyAgICBuZXcgKGRlc3RpbmF0aW9uV2l0aE9mZnNldCkgSXRlbShp
dGVtKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgSXRlbT4KLXN0
YXRpYyB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZl90PEhhc0lzVmFsaWQ8SXRlbT4sIGJvb2w+IGNv
cHlJbnRvKGNvbnN0IEl0ZW1IYW5kbGUmIGl0ZW1IYW5kbGUsIHVpbnQ4X3QqIGRlc3RpbmF0aW9u
V2l0aE9mZnNldCkKK3N0YXRpYyBpbmxpbmUgdHlwZW5hbWUgc3RkOjplbmFibGVfaWZfdDxIYXNJ
c1ZhbGlkPEl0ZW0+LCBib29sPiBjb3B5SW50byhjb25zdCBJdGVtJiBpdGVtLCB1aW50OF90KiBk
ZXN0aW5hdGlvbldpdGhPZmZzZXQpCiB7Ci0gICAgYXV0byogbmV3SXRlbSA9IG5ldyAoZGVzdGlu
YXRpb25XaXRoT2Zmc2V0KSBJdGVtKGl0ZW1IYW5kbGUuZ2V0PEl0ZW0+KCkpOworICAgIGF1dG8q
IG5ld0l0ZW0gPSBuZXcgKGRlc3RpbmF0aW9uV2l0aE9mZnNldCkgSXRlbShpdGVtKTsKICAgICBy
ZXR1cm4gbmV3SXRlbS0+aXNWYWxpZCgpOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBJdGVtPgor
c3RhdGljIGlubGluZSBib29sIGNvcHlJbnRvKGNvbnN0IEl0ZW1IYW5kbGUmIGl0ZW1IYW5kbGUs
IHVpbnQ4X3QqIGRlc3RpbmF0aW9uV2l0aE9mZnNldCkKK3sKKyAgICByZXR1cm4gY29weUludG8o
aXRlbUhhbmRsZS5nZXQ8SXRlbT4oKSwgZGVzdGluYXRpb25XaXRoT2Zmc2V0KTsKK30KKwogYm9v
bCBJdGVtSGFuZGxlOjpzYWZlQ29weShJdGVtSGFuZGxlIGRlc3RpbmF0aW9uKSBjb25zdAogewog
ICAgIGF1dG8gaXRlbVR5cGUgPSB0eXBlKCk7CkBAIC01OTcsNiArNjAzLDIyIEBAIGJvb2wgSXRl
bUhhbmRsZTo6c2FmZUNvcHkoSXRlbUhhbmRsZSBkZXN0aW5hdGlvbikgY29uc3QKICAgICByZXR1
cm4gZmFsc2U7CiB9CiAKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgoraW5saW5lIGJvb2wgc2FmZUNv
cHlIZWxwZXIoY29uc3QgVCYgc291cmNlLCBJdGVtSGFuZGxlIGRlc3RpbmF0aW9uKQoreworICAg
IGNvbnN0ZXhwciBhdXRvIGl0ZW1UeXBlID0gVDo6aXRlbVR5cGU7CisgICAgZGVzdGluYXRpb24u
ZGF0YVswXSA9IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGl0ZW1UeXBlKTsKKyAgICBhdXRvIGl0ZW1P
ZmZzZXQgPSBkZXN0aW5hdGlvbi5kYXRhICsgc2l6ZW9mKHVpbnQ2NF90KTsKKyAgICByZXR1cm4g
Y29weUludG88VD4oc291cmNlLCBpdGVtT2Zmc2V0KTsKK30KKworYm9vbCBzYWZlQ29weShjb25z
dCBEaXNwbGF5TGlzdEl0ZW0mIHNvdXJjZSwgSXRlbUhhbmRsZSBkZXN0aW5hdGlvbikKK3sKKyAg
ICByZXR1cm4gV1RGOjp2aXNpdChbJl0oY29uc3QgYXV0byYgc291cmNlKSB7CisgICAgICAgIHJl
dHVybiBzYWZlQ29weUhlbHBlcihzb3VyY2UsIGRlc3RpbmF0aW9uKTsKKyAgICB9LCBzb3VyY2Up
OworfQorCiBJdGVtQnVmZmVyOjpJdGVtQnVmZmVyKEl0ZW1CdWZmZXJIYW5kbGVzJiYgaGFuZGxl
cykKICAgICA6IG1fcmVhZE9ubHlCdWZmZXJzKFdURk1vdmUoaGFuZGxlcykpCiB7CkBAIC02ODIs
NyArNzA0LDcgQEAgRGlkQ2hhbmdlSXRlbUJ1ZmZlciBJdGVtQnVmZmVyOjpzd2FwV3JpdGFibGVC
dWZmZXJJZk5lZWRlZChzaXplX3QgbnVtYmVyT2ZCeXRlcykKICAgICByZXR1cm4gaGFkUHJldmlv
dXNCdWZmZXIgPyBEaWRDaGFuZ2VJdGVtQnVmZmVyOjpZZXMgOiBEaWRDaGFuZ2VJdGVtQnVmZmVy
OjpObzsKIH0KIAotdm9pZCBJdGVtQnVmZmVyOjphcHBlbmQoSXRlbUhhbmRsZSB0ZW1wb3JhcnlJ
dGVtKQordm9pZCBJdGVtQnVmZmVyOjphcHBlbmQoY29uc3QgRGlzcGxheUxpc3RJdGVtJiB0ZW1w
b3JhcnlJdGVtKQogewogICAgIGF1dG8gcmVxdWlyZWRTaXplRm9ySXRlbSA9IG1fd3JpdGluZ0Ns
aWVudC0+cmVxdWlyZWRTaXplRm9ySXRlbSh0ZW1wb3JhcnlJdGVtKTsKICAgICBSZWZQdHI8U2hh
cmVkQnVmZmVyPiBvdXRPZkxpbmVJdGVtOwpAQCAtNzAwLDcgKzcyMiw3IEBAIHZvaWQgSXRlbUJ1
ZmZlcjo6YXBwZW5kKEl0ZW1IYW5kbGUgdGVtcG9yYXJ5SXRlbSkKIAogICAgIGF1dG8gYnVmZmVy
Q2hhbmdlZCA9IHN3YXBXcml0YWJsZUJ1ZmZlcklmTmVlZGVkKGFkZGl0aW9uYWxDYXBhY2l0eUZv
ckVuY29kZWRJdGVtKTsKIAotICAgIG1fd3JpdGFibGVCdWZmZXIuZGF0YVttX3dyaXR0ZW5OdW1i
ZXJPZkJ5dGVzXSA9IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KHRlbXBvcmFyeUl0ZW0udHlwZSgpKTsK
KyAgICBtX3dyaXRhYmxlQnVmZmVyLmRhdGFbbV93cml0dGVuTnVtYmVyT2ZCeXRlc10gPSBzdGF0
aWNfY2FzdDx1aW50OF90PihkaXNwbGF5TGlzdEl0ZW1UeXBlKHRlbXBvcmFyeUl0ZW0pKTsKICAg
ICByZWludGVycHJldF9jYXN0PHVpbnQ2NF90Kj4obV93cml0YWJsZUJ1ZmZlci5kYXRhICsgbV93
cml0dGVuTnVtYmVyT2ZCeXRlcylbMV0gPSBkYXRhTGVuZ3RoOwogICAgIGF1dG8qIGxvY2F0aW9u
ID0gbV93cml0YWJsZUJ1ZmZlci5kYXRhICsgbV93cml0dGVuTnVtYmVyT2ZCeXRlcyArIDIgKiBz
aXplb2YodWludDY0X3QpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVy
LmgKaW5kZXggYTJhNTY3OWMyYjU2NjQwYjJjMjZlMWRhNjM3YzhmNThmMzBmNWNkNy4uZmQ5NDM5
NzAyZjUyNTVmYzg1ZTBmNWE1MTIzZGE2ZTZmODM3NTUwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdEl0ZW1CdWZmZXIuaApAQCAtODIsNiArODIsOCBAQCBzdHJ1Y3QgSXRlbUhhbmRs
ZSB7CiAgICAgYm9vbCBzYWZlQ29weShJdGVtSGFuZGxlIGRlc3RpbmF0aW9uKSBjb25zdDsKIH07
CiAKK2Jvb2wgc2FmZUNvcHkoY29uc3QgRGlzcGxheUxpc3RJdGVtJiBzb3VyY2UsIEl0ZW1IYW5k
bGUgZGVzdGluYXRpb24pOworCiBlbnVtIGNsYXNzIERpZENoYW5nZUl0ZW1CdWZmZXIgOiBib29s
IHsgTm8sIFllcyB9OwogCiBjbGFzcyBJdGVtQnVmZmVyV3JpdGluZ0NsaWVudCB7CkBAIC05NSwx
NyArOTcsMTcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIAotICAgIHZp
cnR1YWwgT3B0aW9uYWw8c3RkOjpzaXplX3Q+IHJlcXVpcmVkU2l6ZUZvckl0ZW0oSXRlbUhhbmRs
ZSkgY29uc3QKKyAgICB2aXJ0dWFsIE9wdGlvbmFsPHN0ZDo6c2l6ZV90PiByZXF1aXJlZFNpemVG
b3JJdGVtKGNvbnN0IERpc3BsYXlMaXN0SXRlbSYpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OwogICAgIH0KIAotICAgIHZpcnR1YWwgUmVmUHRyPFNoYXJlZEJ1ZmZl
cj4gZW5jb2RlSXRlbU91dE9mTGluZShJdGVtSGFuZGxlKSBjb25zdAorICAgIHZpcnR1YWwgUmVm
UHRyPFNoYXJlZEJ1ZmZlcj4gZW5jb2RlSXRlbU91dE9mTGluZShjb25zdCBEaXNwbGF5TGlzdEl0
ZW0mKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAg
dmlydHVhbCB2b2lkIGVuY29kZUl0ZW1JbmxpbmUoSXRlbUhhbmRsZSwgdWludDhfdCopIGNvbnN0
CisgICAgdmlydHVhbCB2b2lkIGVuY29kZUl0ZW1JbmxpbmUoY29uc3QgRGlzcGxheUxpc3RJdGVt
JiwgdWludDhfdCopIGNvbnN0CiAgICAgewogICAgIH0KIApAQCAtMTc0LDE4ICsxNzYsOSBAQCBw
dWJsaWM6CiAgICAgewogICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rl
c3RydWN0aWJsZTxUPjo6dmFsdWUgPT0gVDo6aXNJbmxpbmVJdGVtKTsKIAotICAgICAgICBpZiAo
IVQ6OmlzSW5saW5lSXRlbSkgeworICAgICAgICBpZiBjb25zdGV4cHIgKCFUOjppc0lubGluZUl0
ZW0pIHsKICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKG1fd3JpdGluZ0NsaWVudCk7Ci0jaWYg
Q09NUElMRVIoTVNWQykKLSAgICAgICAgICAgIF9fZGVjbHNwZWMoYWxpZ24oOCkpIHR5cGVkZWYg
dWludDhfdCBFbmNvZGluZ0J1ZmZlcltzaXplb2YodWludDY0X3QpICsgc2l6ZW9mKFQpXTsKLSNl
bHNlCi0gICAgICAgICAgICB1c2luZyBFbmNvZGluZ0J1ZmZlciBfX2F0dHJpYnV0ZV9fKChhbGln
bmVkICg4KSkpID0gdWludDhfdFtzaXplb2YodWludDY0X3QpICsgc2l6ZW9mKFQpXTsKLSNlbmRp
ZgotICAgICAgICAgICAgc3RhdGljIEVuY29kaW5nQnVmZmVyIHRlbXBvcmFyeUl0ZW1CdWZmZXI7
Ci0gICAgICAgICAgICB0ZW1wb3JhcnlJdGVtQnVmZmVyWzBdID0gc3RhdGljX2Nhc3Q8dWludDhf
dD4oVDo6aXRlbVR5cGUpOwotICAgICAgICAgICAgbmV3ICh0ZW1wb3JhcnlJdGVtQnVmZmVyICsg
c2l6ZW9mKHVpbnQ2NF90KSkgVChzdGQ6OmZvcndhcmQ8QXJncz4oYXJncykuLi4pOwotICAgICAg
ICAgICAgYXBwZW5kKHsgdGVtcG9yYXJ5SXRlbUJ1ZmZlciB9KTsKLSAgICAgICAgICAgIEl0ZW1I
YW5kbGUgeyB0ZW1wb3JhcnlJdGVtQnVmZmVyIH0uZGVzdHJveSgpOworICAgICAgICAgICAgYXBw
ZW5kKERpc3BsYXlMaXN0SXRlbShUKHN0ZDo6Zm9yd2FyZDxBcmdzPihhcmdzKS4uLikpKTsKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC0yMDQsNyArMTk3LDcgQEAgcHJpdmF0
ZToKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZEFwcGVuZERhdGEoc2l6ZV90IG51bWJlck9m
Qnl0ZXMsIERpZENoYW5nZUl0ZW1CdWZmZXIpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgRGlkQ2hh
bmdlSXRlbUJ1ZmZlciBzd2FwV3JpdGFibGVCdWZmZXJJZk5lZWRlZChzaXplX3QgbnVtYmVyT2ZC
eXRlcyk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhcHBlbmQoSXRlbUhhbmRsZSk7CisgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBhcHBlbmQoY29uc3QgRGlzcGxheUxpc3RJdGVtJik7CiAgICAg
dGVtcGxhdGU8dHlwZW5hbWUgVCwgY2xhc3MuLi4gQXJncz4gdm9pZCB1bmNoZWNrZWRBcHBlbmQo
RGlkQ2hhbmdlSXRlbUJ1ZmZlciBkaWRDaGFuZ2VJdGVtQnVmZmVyLCBBcmdzJiYuLi4gYXJncykK
ICAgICB7CiAgICAgICAgIGF1dG8qIHN0YXJ0T2ZJdGVtID0gJm1fd3JpdGFibGVCdWZmZXIuZGF0
YVttX3dyaXR0ZW5OdW1iZXJPZkJ5dGVzXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0
ZW1UeXBlLmNwcAppbmRleCA0YTY2M2FmYTc2MGU2OWZmMmM1NmY1NTMyMjRlZTA2YTI5ZDM0NGJj
Li5hMWUwOTFlNDU3ZjU4OWRjODMyNGYwOTRmNjdhMTdlMjg0NmZiYjdkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJ
dGVtVHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI1OSw2ICsyNTksMjEgQEAgc2l6ZV90IHBh
ZGRlZFNpemVPZlR5cGVBbmRJdGVtSW5CeXRlcyhJdGVtVHlwZSB0eXBlKQogICAgIHJldHVybiBz
aXplb2YodWludDY0X3QpICsgcm91bmRVcFRvTXVsdGlwbGVPZihhbGlnbm9mKHVpbnQ2NF90KSwg
c2l6ZU9mSXRlbUluQnl0ZXModHlwZSkpOwogfQogCitzaXplX3QgcGFkZGVkU2l6ZU9mVHlwZUFu
ZEl0ZW1JbkJ5dGVzKGNvbnN0IERpc3BsYXlMaXN0SXRlbSYgZGlzcGxheUxpc3RJdGVtKQorewor
ICAgIGF1dG8gaXRlbVNpemUgPSBXVEY6OnZpc2l0KFtdKGNvbnN0IGF1dG8mIGl0ZW0pIHsKKyAg
ICAgICAgcmV0dXJuIHNpemVvZihpdGVtKTsKKyAgICB9LCBkaXNwbGF5TGlzdEl0ZW0pOworICAg
IHJldHVybiBzaXplb2YodWludDY0X3QpICsgcm91bmRVcFRvTXVsdGlwbGVPZihhbGlnbm9mKHVp
bnQ2NF90KSwgaXRlbVNpemUpOworfQorCitJdGVtVHlwZSBkaXNwbGF5TGlzdEl0ZW1UeXBlKGNv
bnN0IERpc3BsYXlMaXN0SXRlbSYgZGlzcGxheUxpc3RJdGVtKQoreworICAgIHJldHVybiBXVEY6
OnZpc2l0KFtdKGNvbnN0IGF1dG8mIGl0ZW0pIHsKKyAgICAgICAgcmV0dXJuIGl0ZW0uaXRlbVR5
cGU7CisgICAgfSwgZGlzcGxheUxpc3RJdGVtKTsKK30KKwogYm9vbCBpc0lubGluZUl0ZW0oSXRl
bVR5cGUgdHlwZSkKIHsKICAgICAvKiBTZWUgdGhlIGNvbW1lbnQgYXQgdGhlIHRvcCBvZiBEaXNw
bGF5TGlzdEl0ZW1zLmggZm9yIHdoYXQgdGhpcyBtZWFucy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RJdGVtcy5oCmluZGV4IGU4NjhjNzk3OTQ3YzVhNmNhZmY4MTQyZWY3ZmNiODMwYWJkMmRkZjIu
Ljk4MGJhYjUwZTg2NzYwYmMxMTE0MTA5MzMyODJmMmFjM2Q3YWIyMDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0
ZW1zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0SXRlbXMuaApAQCAtMjI4Miw2ICsyMjgyLDgxIEBAIHByaXZhdGU6CiAgICAg
UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKIH07CiAKK3VzaW5nIERp
c3BsYXlMaXN0SXRlbSA9IFZhcmlhbnQ8CisgICAgU2F2ZSwKKyAgICBSZXN0b3JlLAorICAgIFRy
YW5zbGF0ZSwKKyAgICBSb3RhdGUsCisgICAgU2NhbGUsCisgICAgU2V0Q1RNLAorICAgIENvbmNh
dGVuYXRlQ1RNLAorICAgIFNldElubGluZUZpbGxHcmFkaWVudCwKKyAgICBTZXRJbmxpbmVGaWxs
Q29sb3IsCisgICAgU2V0SW5saW5lU3Ryb2tlQ29sb3IsCisgICAgU2V0U3Ryb2tlVGhpY2tuZXNz
LAorICAgIFNldFN0YXRlLAorICAgIFNldExpbmVDYXAsCisgICAgU2V0TGluZURhc2gsCisgICAg
U2V0TGluZUpvaW4sCisgICAgU2V0TWl0ZXJMaW1pdCwKKyAgICBDbGVhclNoYWRvdywKKyAgICBD
bGlwLAorICAgIENsaXBPdXQsCisgICAgQ2xpcFRvSW1hZ2VCdWZmZXIsCisgICAgQ2xpcE91dFRv
UGF0aCwKKyAgICBDbGlwUGF0aCwKKyAgICBCZWdpbkNsaXBUb0RyYXdpbmdDb21tYW5kcywKKyAg
ICBFbmRDbGlwVG9EcmF3aW5nQ29tbWFuZHMsCisgICAgRHJhd0dseXBocywKKyAgICBEcmF3SW1h
Z2VCdWZmZXIsCisgICAgRHJhd05hdGl2ZUltYWdlLAorICAgIERyYXdQYXR0ZXJuLAorICAgIEJl
Z2luVHJhbnNwYXJlbmN5TGF5ZXIsCisgICAgRW5kVHJhbnNwYXJlbmN5TGF5ZXIsCisgICAgRHJh
d1JlY3QsCisgICAgRHJhd0xpbmUsCisgICAgRHJhd0xpbmVzRm9yVGV4dCwKKyAgICBEcmF3RG90
c0ZvckRvY3VtZW50TWFya2VyLAorICAgIERyYXdFbGxpcHNlLAorICAgIERyYXdQYXRoLAorICAg
IERyYXdGb2N1c1JpbmdQYXRoLAorICAgIERyYXdGb2N1c1JpbmdSZWN0cywKKyAgICBGaWxsUmVj
dCwKKyAgICBGaWxsUmVjdFdpdGhDb2xvciwKKyAgICBGaWxsUmVjdFdpdGhHcmFkaWVudCwKKyAg
ICBGaWxsQ29tcG9zaXRlZFJlY3QsCisgICAgRmlsbFJvdW5kZWRSZWN0LAorICAgIEZpbGxSZWN0
V2l0aFJvdW5kZWRIb2xlLAorI2lmIEVOQUJMRShJTkxJTkVfUEFUSF9EQVRBKQorICAgIEZpbGxJ
bmxpbmVQYXRoLAorI2VuZGlmCisgICAgRmlsbFBhdGgsCisgICAgRmlsbEVsbGlwc2UsCisgICAg
R2V0SW1hZ2VEYXRhLAorICAgIFB1dEltYWdlRGF0YSwKKyNpZiBFTkFCTEUoVklERU8pCisgICAg
UGFpbnRGcmFtZUZvck1lZGlhLAorI2VuZGlmCisgICAgU3Ryb2tlUmVjdCwKKyAgICBTdHJva2VM
aW5lLAorI2lmIEVOQUJMRShJTkxJTkVfUEFUSF9EQVRBKQorICAgIFN0cm9rZUlubGluZVBhdGgs
CisjZW5kaWYKKyAgICBTdHJva2VQYXRoLAorICAgIFN0cm9rZUVsbGlwc2UsCisgICAgQ2xlYXJS
ZWN0LAorI2lmIFVTRShDRykKKyAgICBBcHBseVN0cm9rZVBhdHRlcm4sCisgICAgQXBwbHlGaWxs
UGF0dGVybiwKKyNlbmRpZgorICAgIEFwcGx5RGV2aWNlU2NhbGVGYWN0b3IsCisgICAgRmx1c2hD
b250ZXh0LAorICAgIE1ldGFDb21tYW5kQ2hhbmdlSXRlbUJ1ZmZlciwKKyAgICBNZXRhQ29tbWFu
ZENoYW5nZURlc3RpbmF0aW9uSW1hZ2VCdWZmZXI+OworCitzaXplX3QgcGFkZGVkU2l6ZU9mVHlw
ZUFuZEl0ZW1JbkJ5dGVzKGNvbnN0IERpc3BsYXlMaXN0SXRlbSYpOworSXRlbVR5cGUgZGlzcGxh
eUxpc3RJdGVtVHlwZShjb25zdCBEaXNwbGF5TGlzdEl0ZW0mKTsKKwogVGV4dFN0cmVhbSYgb3Bl
cmF0b3I8PChUZXh0U3RyZWFtJiwgSXRlbUhhbmRsZSk7CiAKIH0gLy8gbmFtZXNwYWNlIERpc3Bs
YXlMaXN0CkBAIC0yMzYzLDYgKzI0MzgsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRz
PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZT4gewogI2VuZGlmCiAgICAgV2ViQ29yZTo6
RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpBcHBseURldmljZVNjYWxlRmFjdG9yCiAgICAgPjsKKwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvSW5NZW1vcnlEaXNwbGF5TGlzdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvSW5NZW1vcnlEaXNwbGF5
TGlzdC5jcHAKaW5kZXggOWRmYTFjNjZhMmNjYzI2NTg5ZDExNGViNmUzMjgyZDVmODQ5MjBmNS4u
NmNiYzc0MGFmNzc1MTY0MThmZDExMzNiOTFlMmE5ZjUyOTY4ZmJlZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0luTWVtb3J5RGlzcGxh
eUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9Jbk1lbW9yeURpc3BsYXlMaXN0LmNwcApAQCAtMjksMTQgKzI5LDE0IEBACiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgRGlzcGxheUxpc3QgewogCi1PcHRpb25hbDxzdGQ6OnNp
emVfdD4gSW5NZW1vcnlEaXNwbGF5TGlzdDo6V3JpdGluZ0NsaWVudDo6cmVxdWlyZWRTaXplRm9y
SXRlbShJdGVtSGFuZGxlIGl0ZW1IYW5kbGUpIGNvbnN0CitPcHRpb25hbDxzdGQ6OnNpemVfdD4g
SW5NZW1vcnlEaXNwbGF5TGlzdDo6V3JpdGluZ0NsaWVudDo6cmVxdWlyZWRTaXplRm9ySXRlbShj
b25zdCBEaXNwbGF5TGlzdEl0ZW0mIGRpc3BsYXlMaXN0SXRlbSkgY29uc3QKIHsKLSAgICByZXR1
cm4gcGFkZGVkU2l6ZU9mVHlwZUFuZEl0ZW1JbkJ5dGVzKGl0ZW1IYW5kbGUudHlwZSgpKTsKKyAg
ICByZXR1cm4gcGFkZGVkU2l6ZU9mVHlwZUFuZEl0ZW1JbkJ5dGVzKGRpc3BsYXlMaXN0SXRlbSk7
CiB9CiAKLXZvaWQgSW5NZW1vcnlEaXNwbGF5TGlzdDo6V3JpdGluZ0NsaWVudDo6ZW5jb2RlSXRl
bUlubGluZShJdGVtSGFuZGxlIGl0ZW1IYW5kbGUsIHVpbnQ4X3QqIGxvY2F0aW9uKSBjb25zdAor
dm9pZCBJbk1lbW9yeURpc3BsYXlMaXN0OjpXcml0aW5nQ2xpZW50OjplbmNvZGVJdGVtSW5saW5l
KGNvbnN0IERpc3BsYXlMaXN0SXRlbSYgZGlzcGxheUxpc3RJdGVtLCB1aW50OF90KiBsb2NhdGlv
bikgY29uc3QKIHsKLSAgICBpdGVtSGFuZGxlLnNhZmVDb3B5KHsgbG9jYXRpb24gfSk7CisgICAg
c2FmZUNvcHkoZGlzcGxheUxpc3RJdGVtLCB7IGxvY2F0aW9uIH0pOwogfQogCiBPcHRpb25hbDxJ
dGVtSGFuZGxlPiBXQVJOX1VOVVNFRF9SRVRVUk4gSW5NZW1vcnlEaXNwbGF5TGlzdDo6UmVhZGlu
Z0NsaWVudDo6ZGVjb2RlSXRlbShjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3QgZGF0YUxlbmd0
aCwgSXRlbVR5cGUgdHlwZSwgdWludDhfdCogaGFuZGxlTG9jYXRpb24pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvSW5NZW1vcnlEaXNw
bGF5TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0luTWVtb3J5RGlzcGxheUxpc3QuaAppbmRleCA0ZThmOTkwNjQ3NDI1ZWM5NzFiYzg5ZWJkYjA1
NWQ5YzJjZjM3MDgwLi4xY2MwOGFmYWJmZjJkYTU3YzFjMmQxOGQ4OTZmZGNmOTVkY2FhM2QxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
SW5NZW1vcnlEaXNwbGF5TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9Jbk1lbW9yeURpc3BsYXlMaXN0LmgKQEAgLTQwLDggKzQwLDggQEAg
cHVibGljOgogICAgIGNsYXNzIFdFQkNPUkVfRVhQT1JUIFdyaXRpbmdDbGllbnQgOiBwdWJsaWMg
SXRlbUJ1ZmZlcldyaXRpbmdDbGllbnQgewogICAgICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKICAgICBwcml2YXRlOgotICAgICAgICBPcHRpb25hbDxzdGQ6OnNpemVfdD4gcmVxdWlyZWRT
aXplRm9ySXRlbShJdGVtSGFuZGxlKSBjb25zdCBmaW5hbDsKLSAgICAgICAgdm9pZCBlbmNvZGVJ
dGVtSW5saW5lKEl0ZW1IYW5kbGUsIHVpbnQ4X3QqKSBjb25zdCBmaW5hbDsKKyAgICAgICAgT3B0
aW9uYWw8c3RkOjpzaXplX3Q+IHJlcXVpcmVkU2l6ZUZvckl0ZW0oY29uc3QgRGlzcGxheUxpc3RJ
dGVtJikgY29uc3QgZmluYWw7CisgICAgICAgIHZvaWQgZW5jb2RlSXRlbUlubGluZShjb25zdCBE
aXNwbGF5TGlzdEl0ZW0mLCB1aW50OF90KikgY29uc3QgZmluYWw7CiAgICAgfTsKIAogICAgIGNs
YXNzIFdFQkNPUkVfRVhQT1JUIFJlYWRpbmdDbGllbnQgOiBwdWJsaWMgSXRlbUJ1ZmZlclJlYWRp
bmdDbGllbnQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaAppbmRleCAyYjZiZmYxMDQ3ZjEx
NzA5NjcxOGNkZTlkYzcxYTRjZjkwYmY1ZWVmLi40MmE2MTBmNmY0ZDk3NjE0YzUwMTY3NGQ5MzUy
YjYyMDE3ODRlNmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaApAQCAtMzIwLDEwNSAr
MzIwLDIwIEBAIHByb3RlY3RlZDoKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKLSAgICBS
ZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiBlbmNvZGVJdGVtT3V0T2ZMaW5lKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpJdGVtSGFuZGxlIGl0ZW0pIGNvbnN0IGZpbmFsCi0gICAgewotICAgICAg
ICAvKiBUaGlzIG5lZWRzIHRvIG1hdGNoICgxKSBpc0lubGluZUl0ZW0oKSBpbiBEaXNwbGF5TGlz
dEl0ZW1UeXBlLmNwcCwgKDIpIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmRlY29kZUl0ZW0oKSwK
LSAgICAgICAgICogYW5kICgzKSBhbGwgdGhlICJzdGF0aWMgY29uc3RleHByIGJvb2wgaXNJbmxp
bmVJdGVtInMgaW5zaWRlIHRoZSBpbmRpdmlkdWFsIGl0ZW0gY2xhc3Nlcy4KLSAgICAgICAgICog
U2VlIHRoZSBjb21tZW50IGF0IHRoZSB0b3Agb2YgRGlzcGxheUxpc3RJdGVtcy5oIGZvciB3aHku
ICovCi0KLSAgICAgICAgc3dpdGNoIChpdGVtLnR5cGUoKSkgewotICAgICAgICBjYXNlIFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6Q2xpcE91dFRvUGF0aDoKLSAgICAgICAgICAgIHJl
dHVybiBJUEM6OkVuY29kZXI6OmVuY29kZVNpbmdsZU9iamVjdDxXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6Q2xpcE91dFRvUGF0aD4oaXRlbS5nZXQ8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkNsaXBPdXRU
b1BhdGg+KCkpOwotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6
Q2xpcFBhdGg6Ci0gICAgICAgICAgICByZXR1cm4gSVBDOjpFbmNvZGVyOjplbmNvZGVTaW5nbGVP
YmplY3Q8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkNsaXBQYXRoPihpdGVtLmdldDxXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6Q2xpcFBhdGg+KCkpOwotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpJdGVtVHlwZTo6RHJhd0ZvY3VzUmluZ1BhdGg6Ci0gICAgICAgICAgICByZXR1cm4gSVBD
OjpFbmNvZGVyOjplbmNvZGVTaW5nbGVPYmplY3Q8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdG
b2N1c1JpbmdQYXRoPihpdGVtLmdldDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0ZvY3VzUmlu
Z1BhdGg+KCkpOwotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6
RHJhd0ZvY3VzUmluZ1JlY3RzOgotICAgICAgICAgICAgcmV0dXJuIElQQzo6RW5jb2Rlcjo6ZW5j
b2RlU2luZ2xlT2JqZWN0PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3Rm9jdXNSaW5nUmVjdHM+
KGl0ZW0uZ2V0PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3Rm9jdXNSaW5nUmVjdHM+KCkpOwot
ICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RHJhd0dseXBoczoK
LSAgICAgICAgICAgIHJldHVybiBJUEM6OkVuY29kZXI6OmVuY29kZVNpbmdsZU9iamVjdDxXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBocz4oaXRlbS5nZXQ8V2ViQ29yZTo6RGlzcGxheUxp
c3Q6OkRyYXdHbHlwaHM+KCkpOwotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJ
dGVtVHlwZTo6RHJhd0xpbmVzRm9yVGV4dDoKLSAgICAgICAgICAgIHJldHVybiBJUEM6OkVuY29k
ZXI6OmVuY29kZVNpbmdsZU9iamVjdDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0xpbmVzRm9y
VGV4dD4oaXRlbS5nZXQ8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdMaW5lc0ZvclRleHQ+KCkp
OwotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RHJhd1BhdGg6
Ci0gICAgICAgICAgICByZXR1cm4gSVBDOjpFbmNvZGVyOjplbmNvZGVTaW5nbGVPYmplY3Q8V2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OkRyYXdQYXRoPihpdGVtLmdldDxXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6RHJhd1BhdGg+KCkpOwotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVt
VHlwZTo6RmlsbENvbXBvc2l0ZWRSZWN0OgotICAgICAgICAgICAgcmV0dXJuIElQQzo6RW5jb2Rl
cjo6ZW5jb2RlU2luZ2xlT2JqZWN0PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpGaWxsQ29tcG9zaXRl
ZFJlY3Q+KGl0ZW0uZ2V0PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpGaWxsQ29tcG9zaXRlZFJlY3Q+
KCkpOwotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RmlsbFBh
dGg6Ci0gICAgICAgICAgICByZXR1cm4gSVBDOjpFbmNvZGVyOjplbmNvZGVTaW5nbGVPYmplY3Q8
V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkZpbGxQYXRoPihpdGVtLmdldDxXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6RmlsbFBhdGg+KCkpOwotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJ
dGVtVHlwZTo6RmlsbFJlY3RXaXRoQ29sb3I6Ci0gICAgICAgICAgICByZXR1cm4gSVBDOjpFbmNv
ZGVyOjplbmNvZGVTaW5nbGVPYmplY3Q8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkZpbGxSZWN0V2l0
aENvbG9yPihpdGVtLmdldDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RmlsbFJlY3RXaXRoQ29sb3I+
KCkpOwotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RmlsbFJl
Y3RXaXRoR3JhZGllbnQ6Ci0gICAgICAgICAgICByZXR1cm4gSVBDOjpFbmNvZGVyOjplbmNvZGVT
aW5nbGVPYmplY3Q8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkZpbGxSZWN0V2l0aEdyYWRpZW50Pihp
dGVtLmdldDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RmlsbFJlY3RXaXRoR3JhZGllbnQ+KCkpOwot
ICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RmlsbFJlY3RXaXRo
Um91bmRlZEhvbGU6Ci0gICAgICAgICAgICByZXR1cm4gSVBDOjpFbmNvZGVyOjplbmNvZGVTaW5n
bGVPYmplY3Q8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkZpbGxSZWN0V2l0aFJvdW5kZWRIb2xlPihp
dGVtLmdldDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RmlsbFJlY3RXaXRoUm91bmRlZEhvbGU+KCkp
OwotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RmlsbFJvdW5k
ZWRSZWN0OgotICAgICAgICAgICAgcmV0dXJuIElQQzo6RW5jb2Rlcjo6ZW5jb2RlU2luZ2xlT2Jq
ZWN0PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpGaWxsUm91bmRlZFJlY3Q+KGl0ZW0uZ2V0PFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpGaWxsUm91bmRlZFJlY3Q+KCkpOwotICAgICAgICBjYXNlIFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6UHV0SW1hZ2VEYXRhOgotICAgICAgICAgICAgcmV0
dXJuIElQQzo6RW5jb2Rlcjo6ZW5jb2RlU2luZ2xlT2JqZWN0PFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpQdXRJbWFnZURhdGE+KGl0ZW0uZ2V0PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpQdXRJbWFnZURh
dGE+KCkpOwotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0
TGluZURhc2g6Ci0gICAgICAgICAgICByZXR1cm4gSVBDOjpFbmNvZGVyOjplbmNvZGVTaW5nbGVP
YmplY3Q8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldExpbmVEYXNoPihpdGVtLmdldDxXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6U2V0TGluZURhc2g+KCkpOwotICAgICAgICBjYXNlIFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0U3RhdGU6Ci0gICAgICAgICAgICByZXR1cm4gSVBDOjpF
bmNvZGVyOjplbmNvZGVTaW5nbGVPYmplY3Q8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldFN0YXRl
PihpdGVtLmdldDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0U3RhdGU+KCkpOwotICAgICAgICBj
YXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U3Ryb2tlUGF0aDoKLSAgICAgICAg
ICAgIHJldHVybiBJUEM6OkVuY29kZXI6OmVuY29kZVNpbmdsZU9iamVjdDxXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6U3Ryb2tlUGF0aD4oaXRlbS5nZXQ8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OlN0cm9r
ZVBhdGg+KCkpOwotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6
QXBwbHlEZXZpY2VTY2FsZUZhY3RvcjoKLSNpZiBVU0UoQ0cpCi0gICAgICAgIGNhc2UgV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpBcHBseUZpbGxQYXR0ZXJuOgotICAgICAgICBjYXNl
IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6QXBwbHlTdHJva2VQYXR0ZXJuOgotI2Vu
ZGlmCi0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpCZWdpblRy
YW5zcGFyZW5jeUxheWVyOgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVt
VHlwZTo6Q2xlYXJSZWN0OgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVt
VHlwZTo6Q2xlYXJTaGFkb3c6Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0
ZW1UeXBlOjpDbGlwOgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlw
ZTo6Q2xpcE91dDoKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6
OkNsaXBUb0ltYWdlQnVmZmVyOgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJ
dGVtVHlwZTo6QmVnaW5DbGlwVG9EcmF3aW5nQ29tbWFuZHM6Ci0gICAgICAgIGNhc2UgV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpFbmRDbGlwVG9EcmF3aW5nQ29tbWFuZHM6Ci0gICAg
ICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpDb25jYXRlbmF0ZUNUTToK
LSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkRyYXdEb3RzRm9y
RG9jdW1lbnRNYXJrZXI6Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1U
eXBlOjpEcmF3RWxsaXBzZToKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRl
bVR5cGU6OkRyYXdJbWFnZUJ1ZmZlcjoKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6SXRlbVR5cGU6OkRyYXdOYXRpdmVJbWFnZToKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6SXRlbVR5cGU6OkRyYXdQYXR0ZXJuOgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpJdGVtVHlwZTo6RHJhd0xpbmU6Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlz
cGxheUxpc3Q6Okl0ZW1UeXBlOjpEcmF3UmVjdDoKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6SXRlbVR5cGU6OkVuZFRyYW5zcGFyZW5jeUxheWVyOgotICAgICAgICBjYXNlIFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RmlsbEVsbGlwc2U6Ci0jaWYgRU5BQkxFKElO
TElORV9QQVRIX0RBVEEpCi0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1U
eXBlOjpGaWxsSW5saW5lUGF0aDoKLSNlbmRpZgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpJdGVtVHlwZTo6RmlsbFJlY3Q6Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6Okl0ZW1UeXBlOjpGbHVzaENvbnRleHQ6Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlz
cGxheUxpc3Q6Okl0ZW1UeXBlOjpNZXRhQ29tbWFuZENoYW5nZURlc3RpbmF0aW9uSW1hZ2VCdWZm
ZXI6Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpNZXRhQ29t
bWFuZENoYW5nZUl0ZW1CdWZmZXI6Ci0jaWYgRU5BQkxFKFZJREVPKQotICAgICAgICBjYXNlIFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6UGFpbnRGcmFtZUZvck1lZGlhOgotI2VuZGlm
Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpSZXN0b3JlOgot
ICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6Um90YXRlOgotICAg
ICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2F2ZToKLSAgICAgICAg
Y2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNjYWxlOgotICAgICAgICBjYXNl
IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0Q1RNOgotICAgICAgICBjYXNlIFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0SW5saW5lRmlsbENvbG9yOgotICAgICAg
ICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0SW5saW5lRmlsbEdyYWRp
ZW50OgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0SW5s
aW5lU3Ryb2tlQ29sb3I6Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1U
eXBlOjpTZXRMaW5lQ2FwOgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVt
VHlwZTo6U2V0TGluZUpvaW46Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0
ZW1UeXBlOjpTZXRNaXRlckxpbWl0OgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpJdGVtVHlwZTo6U2V0U3Ryb2tlVGhpY2tuZXNzOgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpJdGVtVHlwZTo6U3Ryb2tlRWxsaXBzZToKLSNpZiBFTkFCTEUoSU5MSU5FX1BB
VEhfREFUQSkKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlN0
cm9rZUlubGluZVBhdGg6Ci0jZW5kaWYKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6SXRlbVR5cGU6OlN0cm9rZVJlY3Q6Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxp
c3Q6Okl0ZW1UeXBlOjpTdHJva2VMaW5lOgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpJdGVtVHlwZTo6VHJhbnNsYXRlOgotICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9U
X1JFQUNIRUQoKTsKLSAgICAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgICAgICBkZWZhdWx0
OgotICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAg
IHJldHVybiBudWxscHRyOwotICAgICAgICB9CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Cisg
ICAgc3RhdGljIFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IGVuY29kZUl0ZW1PdXRPZkxp
bmVIZWxwZXIoY29uc3QgVCYgaXRlbSkKKyAgICB7CisgICAgICAgIGlmIGNvbnN0ZXhwciAoIVQ6
OmlzSW5saW5lSXRlbSkKKyAgICAgICAgICAgIHJldHVybiBJUEM6OkVuY29kZXI6OmVuY29kZVNp
bmdsZU9iamVjdDxUPihpdGVtKTsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgUmVmUHRyPFdlYkNvcmU6
OlNoYXJlZEJ1ZmZlcj4gZW5jb2RlSXRlbU91dE9mTGluZShjb25zdCBXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6RGlzcGxheUxpc3RJdGVtJiBpdGVtKSBjb25zdCBmaW5hbAorICAgIHsKKyAgICAgICAg
cmV0dXJuIFdURjo6dmlzaXQoW10oY29uc3QgYXV0byYgZGlzcGxheUxpc3RJdGVtKSAtPiBSZWZQ
dHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiB7CisgICAgICAgICAgICByZXR1cm4gZW5jb2RlSXRl
bU91dE9mTGluZUhlbHBlcihkaXNwbGF5TGlzdEl0ZW0pOworICAgICAgICB9LCBpdGVtKTsKICAg
ICB9CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6VGhyZWFkU2FmZUltYWdlQnVmZmVy
Rmx1c2hlcj4gY3JlYXRlRmx1c2hlcigpIG92ZXJyaWRlCmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYWMyZTFkMThiMzNmN2U1YzM5M2Q5NDBhNzE4
NjRlYTQyNGVjNTcyMy4uMjY0YTNkMzNhMzZjNTQ5MGE2Nzc5OWM0YTgyYWEyYmNiOWE2MzAxYiAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE0IEBACisyMDIxLTA0LTA3ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBs
ZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBTaW1wbGlmeSBEaXNwbGF5TGlzdDo6SXRl
cmF0b3IgcGFydCA2OiBNaWdyYXRlIEl0ZW1CdWZmZXJXcml0aW5nQ2xpZW50IGZyb20gSXRlbUhh
bmRsZSB0byBhIGNvbnN0IFZhcmlhbnQmCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjQyNzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9EaXNwbGF5TGlz
dFRlc3RzLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jZy9EaXNwbGF5TGlzdFRlc3RzQ0cuY3BwOgorCiAy
MDIxLTA0LTA2ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAg
ICAgICAgW0dQVSBQcm9jZXNzXSBTaW1wbGlmeSBEaXNwbGF5TGlzdDo6SXRlcmF0b3IgcGFydCA1
OiBUd2VhayB0aGUgcmV0dXJuIHR5cGUgb2YgRGlzcGxheUxpc3Q6Okl0ZXJhdG9yOjpvcGVyYXRv
ciooKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Rpc3Bs
YXlMaXN0VGVzdHMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Rpc3Bs
YXlMaXN0VGVzdHMuY3BwCmluZGV4IDBkNTA4N2UxNjQ2YjgzYmZjMDAyODRjMGQ1ZTA2MjY5MDFj
NWVlNWMuLmQ4NjhjMDNlY2EyYjU2NGU1NjQwYTFmYjUwMmU5NTk3ZjM2NTBmNGEgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9EaXNwbGF5TGlzdFRlc3RzLmNw
cAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRGlzcGxheUxpc3RUZXN0
cy5jcHAKQEAgLTIwMSwxMCArMjAxLDEwIEBAIFRFU1QoRGlzcGxheUxpc3RUZXN0cywgSXRlbUJ1
ZmZlckNsaWVudCkKICAgICAgICAgICAgIHJldHVybiB7IGdsb2JhbEJ1ZmZlcklkZW50aWZpZXIs
IGdsb2JhbEl0ZW1CdWZmZXIsIGdsb2JhbEl0ZW1CdWZmZXJDYXBhY2l0eSB9OwogICAgICAgICB9
CiAKLSAgICAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZW5jb2RlSXRlbU91dE9mTGluZShJdGVt
SGFuZGxlIGhhbmRsZSkgY29uc3QgZmluYWwKKyAgICAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4g
ZW5jb2RlSXRlbU91dE9mTGluZShjb25zdCBEaXNwbGF5TGlzdEl0ZW0mIGRpc3BsYXlMaXN0SXRl
bSkgY29uc3QgZmluYWwKICAgICAgICAgewogICAgICAgICAgICAgYXV0byBpbmRleCA9IG1faXRl
bXMuc2l6ZSgpOwotICAgICAgICAgICAgbV9pdGVtcy5hcHBlbmQoaGFuZGxlLmdldDxTdHJva2VQ
YXRoPigpKTsKKyAgICAgICAgICAgIG1faXRlbXMuYXBwZW5kKFdURjo6Z2V0PFN0cm9rZVBhdGg+
KGRpc3BsYXlMaXN0SXRlbSkpOwogICAgICAgICAgICAgcmV0dXJuIFNoYXJlZEJ1ZmZlcjo6Y3Jl
YXRlKHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KCZpbmRleCksIHNpemVvZihzaXplX3QpKTsK
ICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvY2cvRGlzcGxheUxpc3RUZXN0c0NHLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9jZy9EaXNwbGF5TGlzdFRlc3RzQ0cuY3BwCmluZGV4IDI1ZTk4YmIxMTdjZDFkMjY3
YTZhN2E0MmQwYmFhN2YyNjk2YjBkMjguLjM2OWQ0ZmVlOGFiY2E5NTRlMDI2ZWE2OWVjMWU5ODEz
NzY4ZjEwMDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9j
Zy9EaXNwbGF5TGlzdFRlc3RzQ0cuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9jZy9EaXNwbGF5TGlzdFRlc3RzQ0cuY3BwCkBAIC0xMDAsNyArMTAwLDcgQEAgcHJp
dmF0ZToKICAgICAgICAgcmV0dXJuIHsgZ2xvYmFsQnVmZmVySWRlbnRpZmllciwgZ2xvYmFsSXRl
bUJ1ZmZlciwgZ2xvYmFsSXRlbUJ1ZmZlckNhcGFjaXR5IH07CiAgICAgfQogCi0gICAgUmVmUHRy
PFNoYXJlZEJ1ZmZlcj4gZW5jb2RlSXRlbU91dE9mTGluZShJdGVtSGFuZGxlKSBjb25zdCBmaW5h
bAorICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGVuY29kZUl0ZW1PdXRPZkxpbmUoY29uc3QgRGlz
cGxheUxpc3RJdGVtJikgY29uc3QgZmluYWwKICAgICB7CiAgICAgICAgIHJldHVybiBTaGFyZWRC
dWZmZXI6OmNyZWF0ZSgpOwogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425471</attachid>
            <date>2021-04-07 19:32:09 -0700</date>
            <delta_ts>2021-04-12 15:27:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224270-20210407193208.patch</filename>
            <type>text/plain</type>
            <size>27044</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1NjQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTliNTRiYjIwNzRjZGY3
NDcwNmNmZWVhNWYxZmI1M2IyZmExZDUwNi4uZmViNzE0NzhjMWU5OGRlMzRmNDc4YWZkMWNlMDA1
NmMxYzMxOGY3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIxLTA0LTA3ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9j
ZXNzXSBTaW1wbGlmeSBEaXNwbGF5TGlzdDo6SXRlcmF0b3IgcGFydCA2OiBNaWdyYXRlIEl0ZW1C
dWZmZXJXcml0aW5nQ2xpZW50IGZyb20gSXRlbUhhbmRsZSB0byBhIGNvbnN0IFZhcmlhbnQmCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQyNzAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNo
IGFkZHMgYSBuZXcgVmFyaWFudCB0aGF0IGNvbnRhaW5zIGFsbCB0aGUgRGlzcGxheUxpc3QgaXRl
bSB0eXBlcywgbmFtZWQgRGlzcGxheUxpc3RJdGVtLiBJdCBhbHNvIG1pZ3JhdGVzCisgICAgICAg
IEl0ZW1CdWZmZXJXcml0aW5nQ2xpZW50IGZyb20gSXRlbUhhbmRsZSB0byB0aGlzIG5ldyBWYXJp
YW50LgorCisgICAgICAgIFRoZXJlIGFyZSB0d28gYmVuZWZpdHMgdG8gdGhpczoKKyAgICAgICAg
MS4gVGhlIHRlbXBsYXRlZCBvdmVybG9hZCBvZiBJdGVtQnVmZmVyOjphcHBlbmQoKSBpcyB3YXkg
c2ltcGxlciBub3cuIFByZXZpb3VzbHksIHdlIHVzZWQgdG8gYWxsb2NhdGUgYSBieXRlIGJ1ZmZl
cgorICAgICAgICAgICAgICAgb24gdGhlIHN0YWNrIGFuZCBydW4gYSBwbGFjZW1lbnQgbmV3IG9m
IHRoZSBkaXNwbGF5IGxpc3QgaXRlbSB0eXBlIGludG8gaXQuIE5vdywgd2UgY2FuIGp1c3QgcnVu
IHRoZSBEaXNwbGF5TGlzdEl0ZW0KKyAgICAgICAgICAgICAgIGNvbnN0cnVjdG9yIGluc3RlYWQu
IFVzaW5nIHRoZSBWYXJpYW50IGRvZXMgcmVxdWlyZSBtb3JlIHN0YWNrIHNwYWNlLCBidXQgd2Ug
b25seSB3aWxsIGV2ZXIgaGF2ZSBvbmUgb2YgdGhlc2Ugb2JqZWN0cworICAgICAgICAgICAgICAg
b24gdGhlIHN0YWNrIGF0IGEgdGltZS4KKyAgICAgICAgMi4gVGhlIGJpZyB0YWJsZSBpbnNpZGUg
UmVtb3RlSW1hZ2VCdWZmZXJQcm94eTo6ZW5jb2RlSXRlbU91dE9mTGluZSgpIGlzIGdvbmUsIGFu
ZCBpcyByZXBsYWNlZCB3aXRoIGp1c3QgNyBsaW5lcy4gVGhpcyBpcworICAgICAgICAgICAgICAg
b25lIGZld2VyIHBsYWNlIHdoZXJlIHdlJ2xsIGhhdmUgdG8gbWFrZSBzdXJlIHRoZSBEaXNwbGF5
TGlzdEl0ZW0gdHlwZXMgbWF0Y2ggYSBmdW5jdGlvbiBpbiBhbiBlbnRpcmVseSBkaWZmZXJlbnQK
KyAgICAgICAgICAgICAgIGZyYW1ld29yay4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGJlY2F1
c2UgdGhlcmUgaXMgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6Y29weUludG8pOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OnNhZmVDb3B5SGVscGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0Ojpz
YWZlQ29weSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcjo6YXBw
ZW5kKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RJdGVtQnVmZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZl
cldyaXRpbmdDbGllbnQ6OnJlcXVpcmVkU2l6ZUZvckl0ZW0gY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXJXcml0aW5nQ2xpZW50OjplbmNvZGVJdGVtT3V0
T2ZMaW5lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVy
V3JpdGluZ0NsaWVudDo6ZW5jb2RlSXRlbUlubGluZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcjo6YXBwZW5kKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6cGFkZGVkU2l6ZU9mVHlwZUFuZEl0ZW1JbkJ5dGVzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpkaXNwbGF5TGlzdEl0ZW1UeXBlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9Jbk1lbW9yeURpc3BsYXlM
aXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJbk1lbW9yeURpc3BsYXlM
aXN0OjpXcml0aW5nQ2xpZW50OjpyZXF1aXJlZFNpemVGb3JJdGVtIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJbk1lbW9yeURpc3BsYXlMaXN0OjpXcml0aW5nQ2xpZW50
OjplbmNvZGVJdGVtSW5saW5lIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvSW5NZW1vcnlEaXNwbGF5TGlzdC5oOgorCiAyMDIxLTA0LTA3ICBNYXJrIExh
bSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5hbWUgYW5kIG1ha2UgdGhlIFRl
cm1pbmF0aW9uRXhjZXB0aW9uIGEgc2luZ2xldG9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAwMjRjMWZjM2QzYjY3
MjVkY2JkNTlhZWUzM2U5MTI1ZTE5ZDhjNWMxLi4yNTRlZTMwMDg4M2FmOTkzOTc0ZDQyNzFlYzI5
Njg0YWY1NmY4YmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTA0LTA3ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9j
ZXNzXSBTaW1wbGlmeSBEaXNwbGF5TGlzdDo6SXRlcmF0b3IgcGFydCA2OiBNaWdyYXRlIEl0ZW1C
dWZmZXJXcml0aW5nQ2xpZW50IGZyb20gSXRlbUhhbmRsZSB0byBhIGNvbnN0IFZhcmlhbnQmCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQyNzAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaDoKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlSW1hZ2VCdWZmZXJQcm94eTo6ZW5jb2RlSXRlbU91dE9mTGluZUhlbHBlcik6CisK
IDIwMjEtMDQtMDcgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCBidWlsZCBmaXggYWZ0ZXIgcjI3NTYxNDsgbWFrZSBzdXJlIFNXSUZUX1ZFUlNJ
T04gaXMgZGVmaW5lZCBpbnNpZGUgdGhlIFdlYktpdFN3aWZ0IGJ1aWxkIHRhcmdldC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdEl0ZW1CdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHAKaW5kZXggYjg1YWE3MGRlZDVh
N2E3NzFkODdlZjY1MGVhZjY1M2I2ZmRjMGJlNC4uZjQ0OWJiNDA2MzkxNjk1YzAzOTBhMWYzY2Jm
OWUxNTBkNjE3MjJjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZl
ci5jcHAKQEAgLTQ0MiwxNyArNDQyLDI4IEBAIHRlbXBsYXRlPHR5cGVuYW1lLCB0eXBlbmFtZSA9
IHZvaWQ+IGlubGluZSBjb25zdGV4cHIgYm9vbCBIYXNJc1ZhbGlkID0gZmFsc2U7CiB0ZW1wbGF0
ZTx0eXBlbmFtZSBUPiBpbmxpbmUgY29uc3RleHByIGJvb2wgSGFzSXNWYWxpZDxULCBzdGQ6OnZv
aWRfdDxkZWNsdHlwZShzdGQ6OmRlY2x2YWw8VD4oKS5pc1ZhbGlkKCkpPj4gPSB0cnVlOwogCiB0
ZW1wbGF0ZTx0eXBlbmFtZSBJdGVtPgotc3RhdGljIHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmX3Q8
IUhhc0lzVmFsaWQ8SXRlbT4sIGJvb2w+IGNvcHlJbnRvKGNvbnN0IEl0ZW1IYW5kbGUmIGl0ZW1I
YW5kbGUsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uV2l0aE9mZnNldCkKK3N0YXRpYyBpbmxpbmUgdHlw
ZW5hbWUgc3RkOjplbmFibGVfaWZfdDwhSGFzSXNWYWxpZDxJdGVtPiwgYm9vbD4gaXNWYWxpZChj
b25zdCBJdGVtJikKIHsKLSAgICBuZXcgKGRlc3RpbmF0aW9uV2l0aE9mZnNldCkgSXRlbShpdGVt
SGFuZGxlLmdldDxJdGVtPigpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdGVtcGxhdGU8dHlw
ZW5hbWUgSXRlbT4KLXN0YXRpYyB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZl90PEhhc0lzVmFsaWQ8
SXRlbT4sIGJvb2w+IGNvcHlJbnRvKGNvbnN0IEl0ZW1IYW5kbGUmIGl0ZW1IYW5kbGUsIHVpbnQ4
X3QqIGRlc3RpbmF0aW9uV2l0aE9mZnNldCkKK3N0YXRpYyBpbmxpbmUgdHlwZW5hbWUgc3RkOjpl
bmFibGVfaWZfdDxIYXNJc1ZhbGlkPEl0ZW0+LCBib29sPiBpc1ZhbGlkKGNvbnN0IEl0ZW0mIGl0
ZW0pCiB7Ci0gICAgYXV0byogbmV3SXRlbSA9IG5ldyAoZGVzdGluYXRpb25XaXRoT2Zmc2V0KSBJ
dGVtKGl0ZW1IYW5kbGUuZ2V0PEl0ZW0+KCkpOwotICAgIHJldHVybiBuZXdJdGVtLT5pc1ZhbGlk
KCk7CisgICAgcmV0dXJuIGl0ZW0uaXNWYWxpZCgpOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBJ
dGVtPgorc3RhdGljIGlubGluZSBib29sIGNvcHlJbnRvKGNvbnN0IEl0ZW0mIGl0ZW0sIHVpbnQ4
X3QqIGRlc3RpbmF0aW9uV2l0aE9mZnNldCkKK3sKKyAgICBhdXRvKiBuZXdJdGVtID0gbmV3IChk
ZXN0aW5hdGlvbldpdGhPZmZzZXQpIEl0ZW0oaXRlbSk7CisgICAgcmV0dXJuIGlzVmFsaWQoKm5l
d0l0ZW0pOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBJdGVtPgorc3RhdGljIGlubGluZSBib29s
IGNvcHlJbnRvKGNvbnN0IEl0ZW1IYW5kbGUmIGl0ZW1IYW5kbGUsIHVpbnQ4X3QqIGRlc3RpbmF0
aW9uV2l0aE9mZnNldCkKK3sKKyAgICByZXR1cm4gY29weUludG8oaXRlbUhhbmRsZS5nZXQ8SXRl
bT4oKSwgZGVzdGluYXRpb25XaXRoT2Zmc2V0KTsKIH0KIAogYm9vbCBJdGVtSGFuZGxlOjpzYWZl
Q29weShJdGVtSGFuZGxlIGRlc3RpbmF0aW9uKSBjb25zdApAQCAtNTk3LDYgKzYwOCwxNyBAQCBi
b29sIEl0ZW1IYW5kbGU6OnNhZmVDb3B5KEl0ZW1IYW5kbGUgZGVzdGluYXRpb24pIGNvbnN0CiAg
ICAgcmV0dXJuIGZhbHNlOwogfQogCitib29sIHNhZmVDb3B5KGNvbnN0IERpc3BsYXlMaXN0SXRl
bSYgc291cmNlLCBJdGVtSGFuZGxlIGRlc3RpbmF0aW9uKQoreworICAgIHJldHVybiBXVEY6OnZp
c2l0KFsmXShjb25zdCBhdXRvJiBzb3VyY2UpIHsKKyAgICAgICAgdXNpbmcgRGlzcGxheUxpc3RJ
dGVtVHlwZSA9IHR5cGVuYW1lIFdURjo6UmVtb3ZlQ1ZBbmRSZWZlcmVuY2U8ZGVjbHR5cGUoc291
cmNlKT46OnR5cGU7CisgICAgICAgIGNvbnN0ZXhwciBhdXRvIGl0ZW1UeXBlID0gRGlzcGxheUxp
c3RJdGVtVHlwZTo6aXRlbVR5cGU7CisgICAgICAgIGRlc3RpbmF0aW9uLmRhdGFbMF0gPSBzdGF0
aWNfY2FzdDx1aW50OF90PihpdGVtVHlwZSk7CisgICAgICAgIGF1dG8gaXRlbU9mZnNldCA9IGRl
c3RpbmF0aW9uLmRhdGEgKyBzaXplb2YodWludDY0X3QpOworICAgICAgICByZXR1cm4gY29weUlu
dG88RGlzcGxheUxpc3RJdGVtVHlwZT4oc291cmNlLCBpdGVtT2Zmc2V0KTsKKyAgICB9LCBzb3Vy
Y2UpOworfQorCiBJdGVtQnVmZmVyOjpJdGVtQnVmZmVyKEl0ZW1CdWZmZXJIYW5kbGVzJiYgaGFu
ZGxlcykKICAgICA6IG1fcmVhZE9ubHlCdWZmZXJzKFdURk1vdmUoaGFuZGxlcykpCiB7CkBAIC02
ODcsNyArNzA5LDcgQEAgRGlkQ2hhbmdlSXRlbUJ1ZmZlciBJdGVtQnVmZmVyOjpzd2FwV3JpdGFi
bGVCdWZmZXJJZk5lZWRlZChzaXplX3QgbnVtYmVyT2ZCeXRlcykKICAgICByZXR1cm4gaGFkUHJl
dmlvdXNCdWZmZXIgPyBEaWRDaGFuZ2VJdGVtQnVmZmVyOjpZZXMgOiBEaWRDaGFuZ2VJdGVtQnVm
ZmVyOjpObzsKIH0KIAotdm9pZCBJdGVtQnVmZmVyOjphcHBlbmQoSXRlbUhhbmRsZSB0ZW1wb3Jh
cnlJdGVtKQordm9pZCBJdGVtQnVmZmVyOjphcHBlbmQoY29uc3QgRGlzcGxheUxpc3RJdGVtJiB0
ZW1wb3JhcnlJdGVtKQogewogICAgIGF1dG8gcmVxdWlyZWRTaXplRm9ySXRlbSA9IG1fd3JpdGlu
Z0NsaWVudC0+cmVxdWlyZWRTaXplRm9ySXRlbSh0ZW1wb3JhcnlJdGVtKTsKICAgICBSZWZQdHI8
U2hhcmVkQnVmZmVyPiBvdXRPZkxpbmVJdGVtOwpAQCAtNzA1LDcgKzcyNyw3IEBAIHZvaWQgSXRl
bUJ1ZmZlcjo6YXBwZW5kKEl0ZW1IYW5kbGUgdGVtcG9yYXJ5SXRlbSkKIAogICAgIGF1dG8gYnVm
ZmVyQ2hhbmdlZCA9IHN3YXBXcml0YWJsZUJ1ZmZlcklmTmVlZGVkKGFkZGl0aW9uYWxDYXBhY2l0
eUZvckVuY29kZWRJdGVtKTsKIAotICAgIG1fd3JpdGFibGVCdWZmZXIuZGF0YVttX3dyaXR0ZW5O
dW1iZXJPZkJ5dGVzXSA9IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KHRlbXBvcmFyeUl0ZW0udHlwZSgp
KTsKKyAgICBtX3dyaXRhYmxlQnVmZmVyLmRhdGFbbV93cml0dGVuTnVtYmVyT2ZCeXRlc10gPSBz
dGF0aWNfY2FzdDx1aW50OF90PihkaXNwbGF5TGlzdEl0ZW1UeXBlKHRlbXBvcmFyeUl0ZW0pKTsK
ICAgICByZWludGVycHJldF9jYXN0PHVpbnQ2NF90Kj4obV93cml0YWJsZUJ1ZmZlci5kYXRhICsg
bV93cml0dGVuTnVtYmVyT2ZCeXRlcylbMV0gPSBkYXRhTGVuZ3RoOwogICAgIGF1dG8qIGxvY2F0
aW9uID0gbV93cml0YWJsZUJ1ZmZlci5kYXRhICsgbV93cml0dGVuTnVtYmVyT2ZCeXRlcyArIDIg
KiBzaXplb2YodWludDY0X3QpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVm
ZmVyLmgKaW5kZXggYzQ0MWFjMzVhOTVmNGNjNDljY2YzYjY3M2YyOWViY2M2MjUwMTExYS4uMTQ4
YTk1YzRkN2M1M2NlZDhhZDE5ZDEyMzExZmUyYjhhMzllNmU0NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1
ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuaApAQCAtODIsNiArODIsOCBAQCBzdHJ1Y3QgSXRlbUhh
bmRsZSB7CiAgICAgYm9vbCBzYWZlQ29weShJdGVtSGFuZGxlIGRlc3RpbmF0aW9uKSBjb25zdDsK
IH07CiAKK2Jvb2wgc2FmZUNvcHkoY29uc3QgRGlzcGxheUxpc3RJdGVtJiBzb3VyY2UsIEl0ZW1I
YW5kbGUgZGVzdGluYXRpb24pOworCiBlbnVtIGNsYXNzIERpZENoYW5nZUl0ZW1CdWZmZXIgOiBi
b29sIHsgTm8sIFllcyB9OwogCiBjbGFzcyBJdGVtQnVmZmVyV3JpdGluZ0NsaWVudCB7CkBAIC05
NSwxNyArOTcsMTcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIAotICAg
IHZpcnR1YWwgT3B0aW9uYWw8c3RkOjpzaXplX3Q+IHJlcXVpcmVkU2l6ZUZvckl0ZW0oSXRlbUhh
bmRsZSkgY29uc3QKKyAgICB2aXJ0dWFsIE9wdGlvbmFsPHN0ZDo6c2l6ZV90PiByZXF1aXJlZFNp
emVGb3JJdGVtKGNvbnN0IERpc3BsYXlMaXN0SXRlbSYpIGNvbnN0CiAgICAgewogICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIH0KIAotICAgIHZpcnR1YWwgUmVmUHRyPFNoYXJlZEJ1
ZmZlcj4gZW5jb2RlSXRlbU91dE9mTGluZShJdGVtSGFuZGxlKSBjb25zdAorICAgIHZpcnR1YWwg
UmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZW5jb2RlSXRlbU91dE9mTGluZShjb25zdCBEaXNwbGF5TGlz
dEl0ZW0mKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0g
ICAgdmlydHVhbCB2b2lkIGVuY29kZUl0ZW1JbmxpbmUoSXRlbUhhbmRsZSwgdWludDhfdCopIGNv
bnN0CisgICAgdmlydHVhbCB2b2lkIGVuY29kZUl0ZW1JbmxpbmUoY29uc3QgRGlzcGxheUxpc3RJ
dGVtJiwgdWludDhfdCopIGNvbnN0CiAgICAgewogICAgIH0KIApAQCAtMTc1LDE4ICsxNzcsOSBA
QCBwdWJsaWM6CiAgICAgewogICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5
X2Rlc3RydWN0aWJsZTxUPjo6dmFsdWUgPT0gVDo6aXNJbmxpbmVJdGVtKTsKIAotICAgICAgICBp
ZiAoIVQ6OmlzSW5saW5lSXRlbSkgeworICAgICAgICBpZiBjb25zdGV4cHIgKCFUOjppc0lubGlu
ZUl0ZW0pIHsKICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKG1fd3JpdGluZ0NsaWVudCk7Ci0j
aWYgQ09NUElMRVIoTVNWQykKLSAgICAgICAgICAgIF9fZGVjbHNwZWMoYWxpZ24oOCkpIHR5cGVk
ZWYgdWludDhfdCBFbmNvZGluZ0J1ZmZlcltzaXplb2YodWludDY0X3QpICsgc2l6ZW9mKFQpXTsK
LSNlbHNlCi0gICAgICAgICAgICB1c2luZyBFbmNvZGluZ0J1ZmZlciBfX2F0dHJpYnV0ZV9fKChh
bGlnbmVkICg4KSkpID0gdWludDhfdFtzaXplb2YodWludDY0X3QpICsgc2l6ZW9mKFQpXTsKLSNl
bmRpZgotICAgICAgICAgICAgc3RhdGljIEVuY29kaW5nQnVmZmVyIHRlbXBvcmFyeUl0ZW1CdWZm
ZXI7Ci0gICAgICAgICAgICB0ZW1wb3JhcnlJdGVtQnVmZmVyWzBdID0gc3RhdGljX2Nhc3Q8dWlu
dDhfdD4oVDo6aXRlbVR5cGUpOwotICAgICAgICAgICAgbmV3ICh0ZW1wb3JhcnlJdGVtQnVmZmVy
ICsgc2l6ZW9mKHVpbnQ2NF90KSkgVChzdGQ6OmZvcndhcmQ8QXJncz4oYXJncykuLi4pOwotICAg
ICAgICAgICAgYXBwZW5kKHsgdGVtcG9yYXJ5SXRlbUJ1ZmZlciB9KTsKLSAgICAgICAgICAgIEl0
ZW1IYW5kbGUgeyB0ZW1wb3JhcnlJdGVtQnVmZmVyIH0uZGVzdHJveSgpOworICAgICAgICAgICAg
YXBwZW5kKERpc3BsYXlMaXN0SXRlbShUKHN0ZDo6Zm9yd2FyZDxBcmdzPihhcmdzKS4uLikpKTsK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC0yMDUsNyArMTk4LDcgQEAgcHJp
dmF0ZToKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZEFwcGVuZERhdGEoc2l6ZV90IG51bWJl
ck9mQnl0ZXMsIERpZENoYW5nZUl0ZW1CdWZmZXIpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgRGlk
Q2hhbmdlSXRlbUJ1ZmZlciBzd2FwV3JpdGFibGVCdWZmZXJJZk5lZWRlZChzaXplX3QgbnVtYmVy
T2ZCeXRlcyk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhcHBlbmQoSXRlbUhhbmRsZSk7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhcHBlbmQoY29uc3QgRGlzcGxheUxpc3RJdGVtJik7CiAg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgY2xhc3MuLi4gQXJncz4gdm9pZCB1bmNoZWNrZWRBcHBl
bmQoRGlkQ2hhbmdlSXRlbUJ1ZmZlciBkaWRDaGFuZ2VJdGVtQnVmZmVyLCBBcmdzJiYuLi4gYXJn
cykKICAgICB7CiAgICAgICAgIGF1dG8qIHN0YXJ0T2ZJdGVtID0gJm1fd3JpdGFibGVCdWZmZXIu
ZGF0YVttX3dyaXR0ZW5OdW1iZXJPZkJ5dGVzXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dEl0ZW1UeXBlLmNwcAppbmRleCA0YTY2M2FmYTc2MGU2OWZmMmM1NmY1NTMyMjRlZTA2YTI5ZDM0
NGJjLi5hMWUwOTFlNDU3ZjU4OWRjODMyNGYwOTRmNjdhMTdlMjg0NmZiYjdkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RJdGVtVHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI1OSw2ICsyNTksMjEgQEAgc2l6ZV90
IHBhZGRlZFNpemVPZlR5cGVBbmRJdGVtSW5CeXRlcyhJdGVtVHlwZSB0eXBlKQogICAgIHJldHVy
biBzaXplb2YodWludDY0X3QpICsgcm91bmRVcFRvTXVsdGlwbGVPZihhbGlnbm9mKHVpbnQ2NF90
KSwgc2l6ZU9mSXRlbUluQnl0ZXModHlwZSkpOwogfQogCitzaXplX3QgcGFkZGVkU2l6ZU9mVHlw
ZUFuZEl0ZW1JbkJ5dGVzKGNvbnN0IERpc3BsYXlMaXN0SXRlbSYgZGlzcGxheUxpc3RJdGVtKQor
eworICAgIGF1dG8gaXRlbVNpemUgPSBXVEY6OnZpc2l0KFtdKGNvbnN0IGF1dG8mIGl0ZW0pIHsK
KyAgICAgICAgcmV0dXJuIHNpemVvZihpdGVtKTsKKyAgICB9LCBkaXNwbGF5TGlzdEl0ZW0pOwor
ICAgIHJldHVybiBzaXplb2YodWludDY0X3QpICsgcm91bmRVcFRvTXVsdGlwbGVPZihhbGlnbm9m
KHVpbnQ2NF90KSwgaXRlbVNpemUpOworfQorCitJdGVtVHlwZSBkaXNwbGF5TGlzdEl0ZW1UeXBl
KGNvbnN0IERpc3BsYXlMaXN0SXRlbSYgZGlzcGxheUxpc3RJdGVtKQoreworICAgIHJldHVybiBX
VEY6OnZpc2l0KFtdKGNvbnN0IGF1dG8mIGl0ZW0pIHsKKyAgICAgICAgcmV0dXJuIGl0ZW0uaXRl
bVR5cGU7CisgICAgfSwgZGlzcGxheUxpc3RJdGVtKTsKK30KKwogYm9vbCBpc0lubGluZUl0ZW0o
SXRlbVR5cGUgdHlwZSkKIHsKICAgICAvKiBTZWUgdGhlIGNvbW1lbnQgYXQgdGhlIHRvcCBvZiBE
aXNwbGF5TGlzdEl0ZW1zLmggZm9yIHdoYXQgdGhpcyBtZWFucy4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1z
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RJdGVtcy5oCmluZGV4IGJiMzc3NWFmNmM5MzZkNGFlYmFkNzRiYmU5NTI1NmE1MDNhMTZj
NDIuLjAzN2U0ODY5Yzc4NzcwYjBmOWJhYTQwZTMxZTI2NWU0YTQwMjRlMTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dEl0ZW1zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0SXRlbXMuaApAQCAtMjI4Miw2ICsyMjgyLDgxIEBAIHByaXZhdGU6CiAg
ICAgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKIH07CiAKK3VzaW5n
IERpc3BsYXlMaXN0SXRlbSA9IFZhcmlhbnQ8CisgICAgU2F2ZSwKKyAgICBSZXN0b3JlLAorICAg
IFRyYW5zbGF0ZSwKKyAgICBSb3RhdGUsCisgICAgU2NhbGUsCisgICAgU2V0Q1RNLAorICAgIENv
bmNhdGVuYXRlQ1RNLAorICAgIFNldElubGluZUZpbGxHcmFkaWVudCwKKyAgICBTZXRJbmxpbmVG
aWxsQ29sb3IsCisgICAgU2V0SW5saW5lU3Ryb2tlQ29sb3IsCisgICAgU2V0U3Ryb2tlVGhpY2tu
ZXNzLAorICAgIFNldFN0YXRlLAorICAgIFNldExpbmVDYXAsCisgICAgU2V0TGluZURhc2gsCisg
ICAgU2V0TGluZUpvaW4sCisgICAgU2V0TWl0ZXJMaW1pdCwKKyAgICBDbGVhclNoYWRvdywKKyAg
ICBDbGlwLAorICAgIENsaXBPdXQsCisgICAgQ2xpcFRvSW1hZ2VCdWZmZXIsCisgICAgQ2xpcE91
dFRvUGF0aCwKKyAgICBDbGlwUGF0aCwKKyAgICBCZWdpbkNsaXBUb0RyYXdpbmdDb21tYW5kcywK
KyAgICBFbmRDbGlwVG9EcmF3aW5nQ29tbWFuZHMsCisgICAgRHJhd0dseXBocywKKyAgICBEcmF3
SW1hZ2VCdWZmZXIsCisgICAgRHJhd05hdGl2ZUltYWdlLAorICAgIERyYXdQYXR0ZXJuLAorICAg
IEJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIsCisgICAgRW5kVHJhbnNwYXJlbmN5TGF5ZXIsCisgICAg
RHJhd1JlY3QsCisgICAgRHJhd0xpbmUsCisgICAgRHJhd0xpbmVzRm9yVGV4dCwKKyAgICBEcmF3
RG90c0ZvckRvY3VtZW50TWFya2VyLAorICAgIERyYXdFbGxpcHNlLAorICAgIERyYXdQYXRoLAor
ICAgIERyYXdGb2N1c1JpbmdQYXRoLAorICAgIERyYXdGb2N1c1JpbmdSZWN0cywKKyAgICBGaWxs
UmVjdCwKKyAgICBGaWxsUmVjdFdpdGhDb2xvciwKKyAgICBGaWxsUmVjdFdpdGhHcmFkaWVudCwK
KyAgICBGaWxsQ29tcG9zaXRlZFJlY3QsCisgICAgRmlsbFJvdW5kZWRSZWN0LAorICAgIEZpbGxS
ZWN0V2l0aFJvdW5kZWRIb2xlLAorI2lmIEVOQUJMRShJTkxJTkVfUEFUSF9EQVRBKQorICAgIEZp
bGxJbmxpbmVQYXRoLAorI2VuZGlmCisgICAgRmlsbFBhdGgsCisgICAgRmlsbEVsbGlwc2UsCisg
ICAgR2V0SW1hZ2VEYXRhLAorICAgIFB1dEltYWdlRGF0YSwKKyNpZiBFTkFCTEUoVklERU8pCisg
ICAgUGFpbnRGcmFtZUZvck1lZGlhLAorI2VuZGlmCisgICAgU3Ryb2tlUmVjdCwKKyAgICBTdHJv
a2VMaW5lLAorI2lmIEVOQUJMRShJTkxJTkVfUEFUSF9EQVRBKQorICAgIFN0cm9rZUlubGluZVBh
dGgsCisjZW5kaWYKKyAgICBTdHJva2VQYXRoLAorICAgIFN0cm9rZUVsbGlwc2UsCisgICAgQ2xl
YXJSZWN0LAorI2lmIFVTRShDRykKKyAgICBBcHBseVN0cm9rZVBhdHRlcm4sCisgICAgQXBwbHlG
aWxsUGF0dGVybiwKKyNlbmRpZgorICAgIEFwcGx5RGV2aWNlU2NhbGVGYWN0b3IsCisgICAgRmx1
c2hDb250ZXh0LAorICAgIE1ldGFDb21tYW5kQ2hhbmdlSXRlbUJ1ZmZlciwKKyAgICBNZXRhQ29t
bWFuZENoYW5nZURlc3RpbmF0aW9uSW1hZ2VCdWZmZXI+OworCitzaXplX3QgcGFkZGVkU2l6ZU9m
VHlwZUFuZEl0ZW1JbkJ5dGVzKGNvbnN0IERpc3BsYXlMaXN0SXRlbSYpOworSXRlbVR5cGUgZGlz
cGxheUxpc3RJdGVtVHlwZShjb25zdCBEaXNwbGF5TGlzdEl0ZW0mKTsKKwogVGV4dFN0cmVhbSYg
b3BlcmF0b3I8PChUZXh0U3RyZWFtJiwgSXRlbUhhbmRsZSk7CiAKIH0gLy8gbmFtZXNwYWNlIERp
c3BsYXlMaXN0CkBAIC0yMzYzLDYgKzI0MzgsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJh
aXRzPFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZT4gewogI2VuZGlmCiAgICAgV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpBcHBseURldmljZVNjYWxlRmFjdG9yCiAgICAgPjsK
KwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvSW5NZW1vcnlEaXNwbGF5TGlzdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvSW5NZW1vcnlEaXNw
bGF5TGlzdC5jcHAKaW5kZXggOWRmYTFjNjZhMmNjYzI2NTg5ZDExNGViNmUzMjgyZDVmODQ5MjBm
NS4uNmNiYzc0MGFmNzc1MTY0MThmZDExMzNiOTFlMmE5ZjUyOTY4ZmJlZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0luTWVtb3J5RGlz
cGxheUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9Jbk1lbW9yeURpc3BsYXlMaXN0LmNwcApAQCAtMjksMTQgKzI5LDE0IEBACiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgRGlzcGxheUxpc3QgewogCi1PcHRpb25hbDxzdGQ6
OnNpemVfdD4gSW5NZW1vcnlEaXNwbGF5TGlzdDo6V3JpdGluZ0NsaWVudDo6cmVxdWlyZWRTaXpl
Rm9ySXRlbShJdGVtSGFuZGxlIGl0ZW1IYW5kbGUpIGNvbnN0CitPcHRpb25hbDxzdGQ6OnNpemVf
dD4gSW5NZW1vcnlEaXNwbGF5TGlzdDo6V3JpdGluZ0NsaWVudDo6cmVxdWlyZWRTaXplRm9ySXRl
bShjb25zdCBEaXNwbGF5TGlzdEl0ZW0mIGRpc3BsYXlMaXN0SXRlbSkgY29uc3QKIHsKLSAgICBy
ZXR1cm4gcGFkZGVkU2l6ZU9mVHlwZUFuZEl0ZW1JbkJ5dGVzKGl0ZW1IYW5kbGUudHlwZSgpKTsK
KyAgICByZXR1cm4gcGFkZGVkU2l6ZU9mVHlwZUFuZEl0ZW1JbkJ5dGVzKGRpc3BsYXlMaXN0SXRl
bSk7CiB9CiAKLXZvaWQgSW5NZW1vcnlEaXNwbGF5TGlzdDo6V3JpdGluZ0NsaWVudDo6ZW5jb2Rl
SXRlbUlubGluZShJdGVtSGFuZGxlIGl0ZW1IYW5kbGUsIHVpbnQ4X3QqIGxvY2F0aW9uKSBjb25z
dAordm9pZCBJbk1lbW9yeURpc3BsYXlMaXN0OjpXcml0aW5nQ2xpZW50OjplbmNvZGVJdGVtSW5s
aW5lKGNvbnN0IERpc3BsYXlMaXN0SXRlbSYgZGlzcGxheUxpc3RJdGVtLCB1aW50OF90KiBsb2Nh
dGlvbikgY29uc3QKIHsKLSAgICBpdGVtSGFuZGxlLnNhZmVDb3B5KHsgbG9jYXRpb24gfSk7Cisg
ICAgc2FmZUNvcHkoZGlzcGxheUxpc3RJdGVtLCB7IGxvY2F0aW9uIH0pOwogfQogCiBPcHRpb25h
bDxJdGVtSGFuZGxlPiBXQVJOX1VOVVNFRF9SRVRVUk4gSW5NZW1vcnlEaXNwbGF5TGlzdDo6UmVh
ZGluZ0NsaWVudDo6ZGVjb2RlSXRlbShjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3QgZGF0YUxl
bmd0aCwgSXRlbVR5cGUgdHlwZSwgdWludDhfdCogaGFuZGxlTG9jYXRpb24pCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvSW5NZW1vcnlE
aXNwbGF5TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0luTWVtb3J5RGlzcGxheUxpc3QuaAppbmRleCA0ZThmOTkwNjQ3NDI1ZWM5NzFiYzg5ZWJk
YjA1NWQ5YzJjZjM3MDgwLi4xY2MwOGFmYWJmZjJkYTU3YzFjMmQxOGQ4OTZmZGNmOTVkY2FhM2Qx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvSW5NZW1vcnlEaXNwbGF5TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9Jbk1lbW9yeURpc3BsYXlMaXN0LmgKQEAgLTQwLDggKzQwLDgg
QEAgcHVibGljOgogICAgIGNsYXNzIFdFQkNPUkVfRVhQT1JUIFdyaXRpbmdDbGllbnQgOiBwdWJs
aWMgSXRlbUJ1ZmZlcldyaXRpbmdDbGllbnQgewogICAgICAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKICAgICBwcml2YXRlOgotICAgICAgICBPcHRpb25hbDxzdGQ6OnNpemVfdD4gcmVxdWly
ZWRTaXplRm9ySXRlbShJdGVtSGFuZGxlKSBjb25zdCBmaW5hbDsKLSAgICAgICAgdm9pZCBlbmNv
ZGVJdGVtSW5saW5lKEl0ZW1IYW5kbGUsIHVpbnQ4X3QqKSBjb25zdCBmaW5hbDsKKyAgICAgICAg
T3B0aW9uYWw8c3RkOjpzaXplX3Q+IHJlcXVpcmVkU2l6ZUZvckl0ZW0oY29uc3QgRGlzcGxheUxp
c3RJdGVtJikgY29uc3QgZmluYWw7CisgICAgICAgIHZvaWQgZW5jb2RlSXRlbUlubGluZShjb25z
dCBEaXNwbGF5TGlzdEl0ZW0mLCB1aW50OF90KikgY29uc3QgZmluYWw7CiAgICAgfTsKIAogICAg
IGNsYXNzIFdFQkNPUkVfRVhQT1JUIFJlYWRpbmdDbGllbnQgOiBwdWJsaWMgSXRlbUJ1ZmZlclJl
YWRpbmdDbGllbnQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMvV2ViS2l0Lnhjc2NoZW1lIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMvV2ViS2l0Lnhjc2NoZW1lCmlu
ZGV4IDYxMDM5YjFjNzE3MzhmMzIzM2RiOGIzNTk4NDNjNDRjODNlZjljOWYuLjIxOGRiMmIzNzY5
OTBjNDU4YjVlOTgzYjE1ZDgyZjlkYzRhMzE4NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai94Y3NoYXJlZGRhdGEveGNzY2hlbWVzL1dlYktpdC54Y3NjaGVtZQor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2oveGNzaGFyZWRkYXRhL3hjc2NoZW1l
cy9XZWJLaXQueGNzY2hlbWUKQEAgLTMxLDcgKzMxLDcgQEAKICAgICAgIDwvVGVzdGFibGVzPgog
ICAgPC9UZXN0QWN0aW9uPgogICAgPExhdW5jaEFjdGlvbgotICAgICAgYnVpbGRDb25maWd1cmF0
aW9uID0gIlJlbGVhc2UiCisgICAgICBidWlsZENvbmZpZ3VyYXRpb24gPSAiRGVidWciCiAgICAg
ICBzZWxlY3RlZERlYnVnZ2VySWRlbnRpZmllciA9ICJYY29kZS5EZWJ1Z2dlckZvdW5kYXRpb24u
RGVidWdnZXIuTExEQiIKICAgICAgIHNlbGVjdGVkTGF1bmNoZXJJZGVudGlmaWVyID0gIlhjb2Rl
LkRlYnVnZ2VyRm91bmRhdGlvbi5MYXVuY2hlci5MTERCIgogICAgICAgbGF1bmNoU3R5bGUgPSAi
MCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVt
b3RlSW1hZ2VCdWZmZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKaW5kZXggMmI2YmZmMTA0N2YxMTcwOTY3MThj
ZGU5ZGM3MWE0Y2Y5MGJmNWVlZi4uNzQ5ZTZiM2JlY2JhNTRjMWM1ZmNkOWEzZDkyYzUzYzY1NzIy
OWY5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKQEAgLTMyMCwxMDUgKzMyMCwxNSBA
QCBwcm90ZWN0ZWQ6CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCi0gICAgUmVmUHRyPFdl
YkNvcmU6OlNoYXJlZEJ1ZmZlcj4gZW5jb2RlSXRlbU91dE9mTGluZShXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6SXRlbUhhbmRsZSBpdGVtKSBjb25zdCBmaW5hbAorICAgIFJlZlB0cjxXZWJDb3JlOjpT
aGFyZWRCdWZmZXI+IGVuY29kZUl0ZW1PdXRPZkxpbmUoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OkRpc3BsYXlMaXN0SXRlbSYgaXRlbSkgY29uc3QgZmluYWwKICAgICB7Ci0gICAgICAgIC8q
IFRoaXMgbmVlZHMgdG8gbWF0Y2ggKDEpIGlzSW5saW5lSXRlbSgpIGluIERpc3BsYXlMaXN0SXRl
bVR5cGUuY3BwLCAoMikgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6ZGVjb2RlSXRlbSgpLAotICAg
ICAgICAgKiBhbmQgKDMpIGFsbCB0aGUgInN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0lubGluZUl0
ZW0icyBpbnNpZGUgdGhlIGluZGl2aWR1YWwgaXRlbSBjbGFzc2VzLgotICAgICAgICAgKiBTZWUg
dGhlIGNvbW1lbnQgYXQgdGhlIHRvcCBvZiBEaXNwbGF5TGlzdEl0ZW1zLmggZm9yIHdoeS4gKi8K
LQotICAgICAgICBzd2l0Y2ggKGl0ZW0udHlwZSgpKSB7Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6
RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpDbGlwT3V0VG9QYXRoOgotICAgICAgICAgICAgcmV0dXJu
IElQQzo6RW5jb2Rlcjo6ZW5jb2RlU2luZ2xlT2JqZWN0PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpD
bGlwT3V0VG9QYXRoPihpdGVtLmdldDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6Q2xpcE91dFRvUGF0
aD4oKSk7Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpDbGlw
UGF0aDoKLSAgICAgICAgICAgIHJldHVybiBJUEM6OkVuY29kZXI6OmVuY29kZVNpbmdsZU9iamVj
dDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6Q2xpcFBhdGg+KGl0ZW0uZ2V0PFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpDbGlwUGF0aD4oKSk7Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6
Okl0ZW1UeXBlOjpEcmF3Rm9jdXNSaW5nUGF0aDoKLSAgICAgICAgICAgIHJldHVybiBJUEM6OkVu
Y29kZXI6OmVuY29kZVNpbmdsZU9iamVjdDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0ZvY3Vz
UmluZ1BhdGg+KGl0ZW0uZ2V0PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3Rm9jdXNSaW5nUGF0
aD4oKSk7Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpEcmF3
Rm9jdXNSaW5nUmVjdHM6Ci0gICAgICAgICAgICByZXR1cm4gSVBDOjpFbmNvZGVyOjplbmNvZGVT
aW5nbGVPYmplY3Q8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdGb2N1c1JpbmdSZWN0cz4oaXRl
bS5nZXQ8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdGb2N1c1JpbmdSZWN0cz4oKSk7Ci0gICAg
ICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpEcmF3R2x5cGhzOgotICAg
ICAgICAgICAgcmV0dXJuIElQQzo6RW5jb2Rlcjo6ZW5jb2RlU2luZ2xlT2JqZWN0PFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzPihpdGVtLmdldDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
RHJhd0dseXBocz4oKSk7Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1U
eXBlOjpEcmF3TGluZXNGb3JUZXh0OgotICAgICAgICAgICAgcmV0dXJuIElQQzo6RW5jb2Rlcjo6
ZW5jb2RlU2luZ2xlT2JqZWN0PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3TGluZXNGb3JUZXh0
PihpdGVtLmdldDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0xpbmVzRm9yVGV4dD4oKSk7Ci0g
ICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpEcmF3UGF0aDoKLSAg
ICAgICAgICAgIHJldHVybiBJUEM6OkVuY29kZXI6OmVuY29kZVNpbmdsZU9iamVjdDxXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6RHJhd1BhdGg+KGl0ZW0uZ2V0PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpE
cmF3UGF0aD4oKSk7Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBl
OjpGaWxsQ29tcG9zaXRlZFJlY3Q6Ci0gICAgICAgICAgICByZXR1cm4gSVBDOjpFbmNvZGVyOjpl
bmNvZGVTaW5nbGVPYmplY3Q8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkZpbGxDb21wb3NpdGVkUmVj
dD4oaXRlbS5nZXQ8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkZpbGxDb21wb3NpdGVkUmVjdD4oKSk7
Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpGaWxsUGF0aDoK
LSAgICAgICAgICAgIHJldHVybiBJUEM6OkVuY29kZXI6OmVuY29kZVNpbmdsZU9iamVjdDxXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6RmlsbFBhdGg+KGl0ZW0uZ2V0PFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpGaWxsUGF0aD4oKSk7Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1U
eXBlOjpGaWxsUmVjdFdpdGhDb2xvcjoKLSAgICAgICAgICAgIHJldHVybiBJUEM6OkVuY29kZXI6
OmVuY29kZVNpbmdsZU9iamVjdDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RmlsbFJlY3RXaXRoQ29s
b3I+KGl0ZW0uZ2V0PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpGaWxsUmVjdFdpdGhDb2xvcj4oKSk7
Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpGaWxsUmVjdFdp
dGhHcmFkaWVudDoKLSAgICAgICAgICAgIHJldHVybiBJUEM6OkVuY29kZXI6OmVuY29kZVNpbmds
ZU9iamVjdDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RmlsbFJlY3RXaXRoR3JhZGllbnQ+KGl0ZW0u
Z2V0PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpGaWxsUmVjdFdpdGhHcmFkaWVudD4oKSk7Ci0gICAg
ICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpGaWxsUmVjdFdpdGhSb3Vu
ZGVkSG9sZToKLSAgICAgICAgICAgIHJldHVybiBJUEM6OkVuY29kZXI6OmVuY29kZVNpbmdsZU9i
amVjdDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RmlsbFJlY3RXaXRoUm91bmRlZEhvbGU+KGl0ZW0u
Z2V0PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpGaWxsUmVjdFdpdGhSb3VuZGVkSG9sZT4oKSk7Ci0g
ICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpGaWxsUm91bmRlZFJl
Y3Q6Ci0gICAgICAgICAgICByZXR1cm4gSVBDOjpFbmNvZGVyOjplbmNvZGVTaW5nbGVPYmplY3Q8
V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkZpbGxSb3VuZGVkUmVjdD4oaXRlbS5nZXQ8V2ViQ29yZTo6
RGlzcGxheUxpc3Q6OkZpbGxSb3VuZGVkUmVjdD4oKSk7Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6
RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpQdXRJbWFnZURhdGE6Ci0gICAgICAgICAgICByZXR1cm4g
SVBDOjpFbmNvZGVyOjplbmNvZGVTaW5nbGVPYmplY3Q8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OlB1
dEltYWdlRGF0YT4oaXRlbS5nZXQ8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OlB1dEltYWdlRGF0YT4o
KSk7Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRMaW5l
RGFzaDoKLSAgICAgICAgICAgIHJldHVybiBJUEM6OkVuY29kZXI6OmVuY29kZVNpbmdsZU9iamVj
dDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0TGluZURhc2g+KGl0ZW0uZ2V0PFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpTZXRMaW5lRGFzaD4oKSk7Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6Okl0ZW1UeXBlOjpTZXRTdGF0ZToKLSAgICAgICAgICAgIHJldHVybiBJUEM6OkVuY29k
ZXI6OmVuY29kZVNpbmdsZU9iamVjdDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0U3RhdGU+KGl0
ZW0uZ2V0PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRTdGF0ZT4oKSk7Ci0gICAgICAgIGNhc2Ug
V2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTdHJva2VQYXRoOgotICAgICAgICAgICAg
cmV0dXJuIElQQzo6RW5jb2Rlcjo6ZW5jb2RlU2luZ2xlT2JqZWN0PFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpTdHJva2VQYXRoPihpdGVtLmdldDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U3Ryb2tlUGF0
aD4oKSk7Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpBcHBs
eURldmljZVNjYWxlRmFjdG9yOgotI2lmIFVTRShDRykKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6SXRlbVR5cGU6OkFwcGx5RmlsbFBhdHRlcm46Ci0gICAgICAgIGNhc2UgV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpBcHBseVN0cm9rZVBhdHRlcm46Ci0jZW5kaWYK
LSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkJlZ2luVHJhbnNw
YXJlbmN5TGF5ZXI6Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBl
OjpDbGVhclJlY3Q6Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBl
OjpDbGVhclNoYWRvdzoKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5
cGU6OkNsaXA6Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpD
bGlwT3V0OgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6Q2xp
cFRvSW1hZ2VCdWZmZXI6Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1U
eXBlOjpCZWdpbkNsaXBUb0RyYXdpbmdDb21tYW5kczoKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6SXRlbVR5cGU6OkVuZENsaXBUb0RyYXdpbmdDb21tYW5kczoKLSAgICAgICAg
Y2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkNvbmNhdGVuYXRlQ1RNOgotICAg
ICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RHJhd0RvdHNGb3JEb2N1
bWVudE1hcmtlcjoKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6
OkRyYXdFbGxpcHNlOgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlw
ZTo6RHJhd0ltYWdlQnVmZmVyOgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJ
dGVtVHlwZTo6RHJhd05hdGl2ZUltYWdlOgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpJdGVtVHlwZTo6RHJhd1BhdHRlcm46Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6Okl0ZW1UeXBlOjpEcmF3TGluZToKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6SXRlbVR5cGU6OkRyYXdSZWN0OgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpJdGVtVHlwZTo6RW5kVHJhbnNwYXJlbmN5TGF5ZXI6Ci0gICAgICAgIGNhc2UgV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpGaWxsRWxsaXBzZToKLSNpZiBFTkFCTEUoSU5MSU5F
X1BBVEhfREFUQSkKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6
OkZpbGxJbmxpbmVQYXRoOgotI2VuZGlmCi0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxp
c3Q6Okl0ZW1UeXBlOjpGaWxsUmVjdDoKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6SXRlbVR5cGU6OkZsdXNoQ29udGV4dDoKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6SXRlbVR5cGU6Ok1ldGFDb21tYW5kQ2hhbmdlRGVzdGluYXRpb25JbWFnZUJ1ZmZlcjoK
LSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6Ok1ldGFDb21tYW5k
Q2hhbmdlSXRlbUJ1ZmZlcjoKLSNpZiBFTkFCTEUoVklERU8pCi0gICAgICAgIGNhc2UgV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpQYWludEZyYW1lRm9yTWVkaWE6Ci0jZW5kaWYKLSAg
ICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlJlc3RvcmU6Ci0gICAg
ICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpSb3RhdGU6Ci0gICAgICAg
IGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTYXZlOgotICAgICAgICBjYXNl
IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2NhbGU6Ci0gICAgICAgIGNhc2UgV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRDVE06Ci0gICAgICAgIGNhc2UgV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsQ29sb3I6Ci0gICAgICAgIGNh
c2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6
Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRJbmxpbmVT
dHJva2VDb2xvcjoKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6
OlNldExpbmVDYXA6Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBl
OjpTZXRMaW5lSm9pbjoKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5
cGU6OlNldE1pdGVyTGltaXQ6Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0
ZW1UeXBlOjpTZXRTdHJva2VUaGlja25lc3M6Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6Okl0ZW1UeXBlOjpTdHJva2VFbGxpcHNlOgotI2lmIEVOQUJMRShJTkxJTkVfUEFUSF9E
QVRBKQotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U3Ryb2tl
SW5saW5lUGF0aDoKLSNlbmRpZgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJ
dGVtVHlwZTo6U3Ryb2tlUmVjdDoKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
SXRlbVR5cGU6OlN0cm9rZUxpbmU6Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6
Okl0ZW1UeXBlOjpUcmFuc2xhdGU6CisgICAgICAgIHJldHVybiBXVEY6OnZpc2l0KFtdKGNvbnN0
IGF1dG8mIGRpc3BsYXlMaXN0SXRlbSkgLT4gUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4g
eworICAgICAgICAgICAgdXNpbmcgRGlzcGxheUxpc3RJdGVtVHlwZSA9IHR5cGVuYW1lIFdURjo6
UmVtb3ZlQ1ZBbmRSZWZlcmVuY2U8ZGVjbHR5cGUoZGlzcGxheUxpc3RJdGVtKT46OnR5cGU7Cisg
ICAgICAgICAgICBpZiBjb25zdGV4cHIgKCFEaXNwbGF5TGlzdEl0ZW1UeXBlOjppc0lubGluZUl0
ZW0pCisgICAgICAgICAgICAgICAgcmV0dXJuIElQQzo6RW5jb2Rlcjo6ZW5jb2RlU2luZ2xlT2Jq
ZWN0PERpc3BsYXlMaXN0SXRlbVR5cGU+KGRpc3BsYXlMaXN0SXRlbSk7CiAgICAgICAgICAgICBS
RUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7
Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hF
RCgpOwotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIH0KKyAgICAgICAgfSwg
aXRlbSk7CiAgICAgfQogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlRocmVhZFNhZmVJ
bWFnZUJ1ZmZlckZsdXNoZXI+IGNyZWF0ZUZsdXNoZXIoKSBvdmVycmlkZQpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDhlMjdlYjBjZmRlN2Q5YTY0
YWMyYzg3ZDliZWM0OWFkY2JkN2NkMjIuLjZhOWUzNDUzMTFmMTUzYjViZWY5NzEwYWY1MWRiMzdi
N2JkMmZiMjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0wNC0wNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4
ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10gU2ltcGxpZnkgRGlzcGxh
eUxpc3Q6Okl0ZXJhdG9yIHBhcnQgNjogTWlncmF0ZSBJdGVtQnVmZmVyV3JpdGluZ0NsaWVudCBm
cm9tIEl0ZW1IYW5kbGUgdG8gYSBjb25zdCBWYXJpYW50JgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0MjcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
RGlzcGxheUxpc3RUZXN0cy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NH
LmNwcDoKKwogMjAyMS0wNC0wNyAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+
CiAKICAgICAgICAgW3dlYmtpdHNjbXB5XSBIYW5kbGUgbXVsdGlwbGUgZG91YmxlLWJyYW5jaCBj
b21taXRzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRGlz
cGxheUxpc3RUZXN0cy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRGlz
cGxheUxpc3RUZXN0cy5jcHAKaW5kZXggMGQ1MDg3ZTE2NDZiODNiZmMwMDI4NGMwZDVlMDYyNjkw
MWM1ZWU1Yy4uZDg2OGMwM2VjYTJiNTY0ZTU2NDBhMWZiNTAyZTk1OTdmMzY1MGY0YSAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Rpc3BsYXlMaXN0VGVzdHMu
Y3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9EaXNwbGF5TGlzdFRl
c3RzLmNwcApAQCAtMjAxLDEwICsyMDEsMTAgQEAgVEVTVChEaXNwbGF5TGlzdFRlc3RzLCBJdGVt
QnVmZmVyQ2xpZW50KQogICAgICAgICAgICAgcmV0dXJuIHsgZ2xvYmFsQnVmZmVySWRlbnRpZmll
ciwgZ2xvYmFsSXRlbUJ1ZmZlciwgZ2xvYmFsSXRlbUJ1ZmZlckNhcGFjaXR5IH07CiAgICAgICAg
IH0KIAotICAgICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBlbmNvZGVJdGVtT3V0T2ZMaW5lKEl0
ZW1IYW5kbGUgaGFuZGxlKSBjb25zdCBmaW5hbAorICAgICAgICBSZWZQdHI8U2hhcmVkQnVmZmVy
PiBlbmNvZGVJdGVtT3V0T2ZMaW5lKGNvbnN0IERpc3BsYXlMaXN0SXRlbSYgZGlzcGxheUxpc3RJ
dGVtKSBjb25zdCBmaW5hbAogICAgICAgICB7CiAgICAgICAgICAgICBhdXRvIGluZGV4ID0gbV9p
dGVtcy5zaXplKCk7Ci0gICAgICAgICAgICBtX2l0ZW1zLmFwcGVuZChoYW5kbGUuZ2V0PFN0cm9r
ZVBhdGg+KCkpOworICAgICAgICAgICAgbV9pdGVtcy5hcHBlbmQoV1RGOjpnZXQ8U3Ryb2tlUGF0
aD4oZGlzcGxheUxpc3RJdGVtKSk7CiAgICAgICAgICAgICByZXR1cm4gU2hhcmVkQnVmZmVyOjpj
cmVhdGUocmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oJmluZGV4KSwgc2l6ZW9mKHNpemVfdCkp
OwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9jZy9EaXNwbGF5TGlzdFRlc3RzQ0cuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL2NnL0Rpc3BsYXlMaXN0VGVzdHNDRy5jcHAKaW5kZXggMjVlOThiYjExN2NkMWQy
NjdhNmE3YTQyZDBiYWE3ZjI2OTZiMGQyOC4uMzY5ZDRmZWU4YWJjYTk1NGUwMjZlYTY5ZWMxZTk4
MTM3NjhmMTAwMCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L2NnL0Rpc3BsYXlMaXN0VGVzdHNDRy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL2NnL0Rpc3BsYXlMaXN0VGVzdHNDRy5jcHAKQEAgLTEwMCw3ICsxMDAsNyBAQCBw
cml2YXRlOgogICAgICAgICByZXR1cm4geyBnbG9iYWxCdWZmZXJJZGVudGlmaWVyLCBnbG9iYWxJ
dGVtQnVmZmVyLCBnbG9iYWxJdGVtQnVmZmVyQ2FwYWNpdHkgfTsKICAgICB9CiAKLSAgICBSZWZQ
dHI8U2hhcmVkQnVmZmVyPiBlbmNvZGVJdGVtT3V0T2ZMaW5lKEl0ZW1IYW5kbGUpIGNvbnN0IGZp
bmFsCisgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZW5jb2RlSXRlbU91dE9mTGluZShjb25zdCBE
aXNwbGF5TGlzdEl0ZW0mKSBjb25zdCBmaW5hbAogICAgIHsKICAgICAgICAgcmV0dXJuIFNoYXJl
ZEJ1ZmZlcjo6Y3JlYXRlKCk7CiAgICAgfQo=
</data>
<flag name="review"
          id="445435"
          type_id="1"
          status="+"
          setter="wenson_hsieh"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428114</attachid>
            <date>2021-05-09 00:55:59 -0700</date>
            <delta_ts>2021-05-09 00:59:31 -0700</delta_ts>
            <desc>Patch for committing</desc>
            <filename>bug-224270-20210509005558.patch</filename>
            <type>text/plain</type>
            <size>26343</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MjQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2NlY2JjMjhlZmFlMDlm
MDhmOWQ2MTIxZTA0NjcxMGJhYWM0NGVlNC4uNWZmNGJkMGUxMWIyODZiNTY1MWFlMTQ5M2UwZTBj
ZDBhNTViZmZkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIxLTA1LTA5ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9j
ZXNzXSBTaW1wbGlmeSBEaXNwbGF5TGlzdDo6SXRlcmF0b3IgcGFydCA2OiBNaWdyYXRlIEl0ZW1C
dWZmZXJXcml0aW5nQ2xpZW50IGZyb20gSXRlbUhhbmRsZSB0byBhIGNvbnN0IFZhcmlhbnQmCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQyNzAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBXZW5zb24gSHNpZWguCisKKyAgICAgICAgVGhpcyBwYXRjaCBh
ZGRzIGEgbmV3IFZhcmlhbnQgdGhhdCBjb250YWlucyBhbGwgdGhlIERpc3BsYXlMaXN0IGl0ZW0g
dHlwZXMsIG5hbWVkIERpc3BsYXlMaXN0SXRlbS4gSXQgYWxzbyBtaWdyYXRlcworICAgICAgICBJ
dGVtQnVmZmVyV3JpdGluZ0NsaWVudCBmcm9tIEl0ZW1IYW5kbGUgdG8gdGhpcyBuZXcgVmFyaWFu
dC4KKworICAgICAgICBUaGVyZSBhcmUgdHdvIGJlbmVmaXRzIHRvIHRoaXM6CisgICAgICAgIDEu
IFRoZSB0ZW1wbGF0ZWQgb3ZlcmxvYWQgb2YgSXRlbUJ1ZmZlcjo6YXBwZW5kKCkgaXMgd2F5IHNp
bXBsZXIgbm93LiBQcmV2aW91c2x5LCB3ZSB1c2VkIHRvIGFsbG9jYXRlIGEgYnl0ZSBidWZmZXIK
KyAgICAgICAgICAgICAgIG9uIHRoZSBzdGFjayBhbmQgcnVuIGEgcGxhY2VtZW50IG5ldyBvZiB0
aGUgZGlzcGxheSBsaXN0IGl0ZW0gdHlwZSBpbnRvIGl0LiBOb3csIHdlIGNhbiBqdXN0IHJ1biB0
aGUgRGlzcGxheUxpc3RJdGVtCisgICAgICAgICAgICAgICBjb25zdHJ1Y3RvciBpbnN0ZWFkLiBV
c2luZyB0aGUgVmFyaWFudCBkb2VzIHJlcXVpcmUgbW9yZSBzdGFjayBzcGFjZSwgYnV0IHdlIG9u
bHkgd2lsbCBldmVyIGhhdmUgb25lIG9mIHRoZXNlIG9iamVjdHMKKyAgICAgICAgICAgICAgIG9u
IHRoZSBzdGFjayBhdCBhIHRpbWUuCisgICAgICAgIDIuIFRoZSBiaWcgdGFibGUgaW5zaWRlIFJl
bW90ZUltYWdlQnVmZmVyUHJveHk6OmVuY29kZUl0ZW1PdXRPZkxpbmUoKSBpcyBnb25lLCBhbmQg
aXMgcmVwbGFjZWQgd2l0aCBqdXN0IDcgbGluZXMuIFRoaXMgaXMKKyAgICAgICAgICAgICAgIG9u
ZSBmZXdlciBwbGFjZSB3aGVyZSB3ZSdsbCBoYXZlIHRvIG1ha2Ugc3VyZSB0aGUgRGlzcGxheUxp
c3RJdGVtIHR5cGVzIG1hdGNoIGEgZnVuY3Rpb24gaW4gYW4gZW50aXJlbHkgZGlmZmVyZW50Cisg
ICAgICAgICAgICAgICBmcmFtZXdvcmsuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBiZWNhdXNl
IHRoZXJlIGlzIG5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OmNvcHlJbnRvKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpzYWZlQ29weUhlbHBlcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6c2Fm
ZUNvcHkpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXI6OmFwcGVu
ZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
SXRlbUJ1ZmZlci5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXJX
cml0aW5nQ2xpZW50OjpyZXF1aXJlZFNpemVGb3JJdGVtIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVyV3JpdGluZ0NsaWVudDo6ZW5jb2RlSXRlbU91dE9m
TGluZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcldy
aXRpbmdDbGllbnQ6OmVuY29kZUl0ZW1JbmxpbmUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXI6OmFwcGVuZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OnBhZGRlZFNpemVPZlR5cGVBbmRJdGVtSW5CeXRlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6ZGlzcGxheUxpc3RJdGVtVHlwZSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvSW5NZW1vcnlEaXNwbGF5TGlz
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SW5NZW1vcnlEaXNwbGF5TGlz
dDo6V3JpdGluZ0NsaWVudDo6cmVxdWlyZWRTaXplRm9ySXRlbSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6SW5NZW1vcnlEaXNwbGF5TGlzdDo6V3JpdGluZ0NsaWVudDo6
ZW5jb2RlSXRlbUlubGluZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0luTWVtb3J5RGlzcGxheUxpc3QuaDoKKwogMjAyMS0wNS0wOSAgTXlsZXMgQy4g
TWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gVW5pZnkg
bGFzdCByZXNvcnQgZmFsbGJhY2sgZm9udCBiZXR3ZWVuIGFsbCBDb2NvYSBwb3J0cwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpp
bmRleCA0OTc4OGYzMzZjOGJiNDRmZWI2YTkxZDdmNjhiMjNjZTFlZjI0Njc3Li4xMmVmYTNmMWIw
NzRhNDMzMmY2NTNhZmExMjdlMjAxZDViZjU1ZTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBA
CisyMDIxLTA1LTA5ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisK
KyAgICAgICAgW0dQVSBQcm9jZXNzXSBTaW1wbGlmeSBEaXNwbGF5TGlzdDo6SXRlcmF0b3IgcGFy
dCA2OiBNaWdyYXRlIEl0ZW1CdWZmZXJXcml0aW5nQ2xpZW50IGZyb20gSXRlbUhhbmRsZSB0byBh
IGNvbnN0IFZhcmlhbnQmCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjQyNzAKKworICAgICAgICBSZXZpZXdlZCBieSBXZW5zb24gSHNpZWguCisKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmg6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyUHJveHk6OmVuY29kZUl0ZW1PdXRP
ZkxpbmVIZWxwZXIpOgorCiAyMDIxLTA1LTA4ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5j
b20+CiAKICAgICAgICAgW0dQVVBdIEEgc21hbGwgdmlkZW8gZWxlbWVudCBlbnRlcnMgZnVsbHNj
cmVlbiB3aXRoIHN0cmFuZ2UgYW5pbWF0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RJdGVtQnVmZmVyLmNwcAppbmRleCBiODVhYTcwZGVkNWE3YTc3MWQ4N2VmNjUwZWFmNjUzYjZm
ZGMwYmU0Li5mNDQ5YmI0MDYzOTE2OTVjMDM5MGExZjNjYmY5ZTE1MGQ2MTcyMmNhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RJdGVtQnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNwcApAQCAtNDQyLDE3ICs0NDIs
MjggQEAgdGVtcGxhdGU8dHlwZW5hbWUsIHR5cGVuYW1lID0gdm9pZD4gaW5saW5lIGNvbnN0ZXhw
ciBib29sIEhhc0lzVmFsaWQgPSBmYWxzZTsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBj
b25zdGV4cHIgYm9vbCBIYXNJc1ZhbGlkPFQsIHN0ZDo6dm9pZF90PGRlY2x0eXBlKHN0ZDo6ZGVj
bHZhbDxUPigpLmlzVmFsaWQoKSk+PiA9IHRydWU7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEl0ZW0+
Ci1zdGF0aWMgdHlwZW5hbWUgc3RkOjplbmFibGVfaWZfdDwhSGFzSXNWYWxpZDxJdGVtPiwgYm9v
bD4gY29weUludG8oY29uc3QgSXRlbUhhbmRsZSYgaXRlbUhhbmRsZSwgdWludDhfdCogZGVzdGlu
YXRpb25XaXRoT2Zmc2V0KQorc3RhdGljIGlubGluZSB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZl90
PCFIYXNJc1ZhbGlkPEl0ZW0+LCBib29sPiBpc1ZhbGlkKGNvbnN0IEl0ZW0mKQogewotICAgIG5l
dyAoZGVzdGluYXRpb25XaXRoT2Zmc2V0KSBJdGVtKGl0ZW1IYW5kbGUuZ2V0PEl0ZW0+KCkpOwog
ICAgIHJldHVybiB0cnVlOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBJdGVtPgotc3RhdGljIHR5
cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmX3Q8SGFzSXNWYWxpZDxJdGVtPiwgYm9vbD4gY29weUludG8o
Y29uc3QgSXRlbUhhbmRsZSYgaXRlbUhhbmRsZSwgdWludDhfdCogZGVzdGluYXRpb25XaXRoT2Zm
c2V0KQorc3RhdGljIGlubGluZSB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZl90PEhhc0lzVmFsaWQ8
SXRlbT4sIGJvb2w+IGlzVmFsaWQoY29uc3QgSXRlbSYgaXRlbSkKIHsKLSAgICBhdXRvKiBuZXdJ
dGVtID0gbmV3IChkZXN0aW5hdGlvbldpdGhPZmZzZXQpIEl0ZW0oaXRlbUhhbmRsZS5nZXQ8SXRl
bT4oKSk7Ci0gICAgcmV0dXJuIG5ld0l0ZW0tPmlzVmFsaWQoKTsKKyAgICByZXR1cm4gaXRlbS5p
c1ZhbGlkKCk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIEl0ZW0+CitzdGF0aWMgaW5saW5lIGJv
b2wgY29weUludG8oY29uc3QgSXRlbSYgaXRlbSwgdWludDhfdCogZGVzdGluYXRpb25XaXRoT2Zm
c2V0KQoreworICAgIGF1dG8qIG5ld0l0ZW0gPSBuZXcgKGRlc3RpbmF0aW9uV2l0aE9mZnNldCkg
SXRlbShpdGVtKTsKKyAgICByZXR1cm4gaXNWYWxpZCgqbmV3SXRlbSk7Cit9CisKK3RlbXBsYXRl
PHR5cGVuYW1lIEl0ZW0+CitzdGF0aWMgaW5saW5lIGJvb2wgY29weUludG8oY29uc3QgSXRlbUhh
bmRsZSYgaXRlbUhhbmRsZSwgdWludDhfdCogZGVzdGluYXRpb25XaXRoT2Zmc2V0KQoreworICAg
IHJldHVybiBjb3B5SW50byhpdGVtSGFuZGxlLmdldDxJdGVtPigpLCBkZXN0aW5hdGlvbldpdGhP
ZmZzZXQpOwogfQogCiBib29sIEl0ZW1IYW5kbGU6OnNhZmVDb3B5KEl0ZW1IYW5kbGUgZGVzdGlu
YXRpb24pIGNvbnN0CkBAIC01OTcsNiArNjA4LDE3IEBAIGJvb2wgSXRlbUhhbmRsZTo6c2FmZUNv
cHkoSXRlbUhhbmRsZSBkZXN0aW5hdGlvbikgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
K2Jvb2wgc2FmZUNvcHkoY29uc3QgRGlzcGxheUxpc3RJdGVtJiBzb3VyY2UsIEl0ZW1IYW5kbGUg
ZGVzdGluYXRpb24pCit7CisgICAgcmV0dXJuIFdURjo6dmlzaXQoWyZdKGNvbnN0IGF1dG8mIHNv
dXJjZSkgeworICAgICAgICB1c2luZyBEaXNwbGF5TGlzdEl0ZW1UeXBlID0gdHlwZW5hbWUgV1RG
OjpSZW1vdmVDVkFuZFJlZmVyZW5jZTxkZWNsdHlwZShzb3VyY2UpPjo6dHlwZTsKKyAgICAgICAg
Y29uc3RleHByIGF1dG8gaXRlbVR5cGUgPSBEaXNwbGF5TGlzdEl0ZW1UeXBlOjppdGVtVHlwZTsK
KyAgICAgICAgZGVzdGluYXRpb24uZGF0YVswXSA9IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGl0ZW1U
eXBlKTsKKyAgICAgICAgYXV0byBpdGVtT2Zmc2V0ID0gZGVzdGluYXRpb24uZGF0YSArIHNpemVv
Zih1aW50NjRfdCk7CisgICAgICAgIHJldHVybiBjb3B5SW50bzxEaXNwbGF5TGlzdEl0ZW1UeXBl
Pihzb3VyY2UsIGl0ZW1PZmZzZXQpOworICAgIH0sIHNvdXJjZSk7Cit9CisKIEl0ZW1CdWZmZXI6
Okl0ZW1CdWZmZXIoSXRlbUJ1ZmZlckhhbmRsZXMmJiBoYW5kbGVzKQogICAgIDogbV9yZWFkT25s
eUJ1ZmZlcnMoV1RGTW92ZShoYW5kbGVzKSkKIHsKQEAgLTY4Nyw3ICs3MDksNyBAQCBEaWRDaGFu
Z2VJdGVtQnVmZmVyIEl0ZW1CdWZmZXI6OnN3YXBXcml0YWJsZUJ1ZmZlcklmTmVlZGVkKHNpemVf
dCBudW1iZXJPZkJ5dGVzKQogICAgIHJldHVybiBoYWRQcmV2aW91c0J1ZmZlciA/IERpZENoYW5n
ZUl0ZW1CdWZmZXI6OlllcyA6IERpZENoYW5nZUl0ZW1CdWZmZXI6Ok5vOwogfQogCi12b2lkIEl0
ZW1CdWZmZXI6OmFwcGVuZChJdGVtSGFuZGxlIHRlbXBvcmFyeUl0ZW0pCit2b2lkIEl0ZW1CdWZm
ZXI6OmFwcGVuZChjb25zdCBEaXNwbGF5TGlzdEl0ZW0mIHRlbXBvcmFyeUl0ZW0pCiB7CiAgICAg
YXV0byByZXF1aXJlZFNpemVGb3JJdGVtID0gbV93cml0aW5nQ2xpZW50LT5yZXF1aXJlZFNpemVG
b3JJdGVtKHRlbXBvcmFyeUl0ZW0pOwogICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IG91dE9mTGlu
ZUl0ZW07CkBAIC03MDUsNyArNzI3LDcgQEAgdm9pZCBJdGVtQnVmZmVyOjphcHBlbmQoSXRlbUhh
bmRsZSB0ZW1wb3JhcnlJdGVtKQogCiAgICAgYXV0byBidWZmZXJDaGFuZ2VkID0gc3dhcFdyaXRh
YmxlQnVmZmVySWZOZWVkZWQoYWRkaXRpb25hbENhcGFjaXR5Rm9yRW5jb2RlZEl0ZW0pOwogCi0g
ICAgbV93cml0YWJsZUJ1ZmZlci5kYXRhW21fd3JpdHRlbk51bWJlck9mQnl0ZXNdID0gc3RhdGlj
X2Nhc3Q8dWludDhfdD4odGVtcG9yYXJ5SXRlbS50eXBlKCkpOworICAgIG1fd3JpdGFibGVCdWZm
ZXIuZGF0YVttX3dyaXR0ZW5OdW1iZXJPZkJ5dGVzXSA9IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGRp
c3BsYXlMaXN0SXRlbVR5cGUodGVtcG9yYXJ5SXRlbSkpOwogICAgIHJlaW50ZXJwcmV0X2Nhc3Q8
dWludDY0X3QqPihtX3dyaXRhYmxlQnVmZmVyLmRhdGEgKyBtX3dyaXR0ZW5OdW1iZXJPZkJ5dGVz
KVsxXSA9IGRhdGFMZW5ndGg7CiAgICAgYXV0byogbG9jYXRpb24gPSBtX3dyaXRhYmxlQnVmZmVy
LmRhdGEgKyBtX3dyaXR0ZW5OdW1iZXJPZkJ5dGVzICsgMiAqIHNpemVvZih1aW50NjRfdCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuaAppbmRleCBjNDQxYWMzNWE5
NWY0Y2M0OWNjZjNiNjczZjI5ZWJjYzYyNTAxMTFhLi4xNDhhOTVjNGQ3YzUzY2VkOGFkMTlkMTIz
MTFmZTJiOGEzOWU2ZTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZl
ci5oCkBAIC04Miw2ICs4Miw4IEBAIHN0cnVjdCBJdGVtSGFuZGxlIHsKICAgICBib29sIHNhZmVD
b3B5KEl0ZW1IYW5kbGUgZGVzdGluYXRpb24pIGNvbnN0OwogfTsKIAorYm9vbCBzYWZlQ29weShj
b25zdCBEaXNwbGF5TGlzdEl0ZW0mIHNvdXJjZSwgSXRlbUhhbmRsZSBkZXN0aW5hdGlvbik7CisK
IGVudW0gY2xhc3MgRGlkQ2hhbmdlSXRlbUJ1ZmZlciA6IGJvb2wgeyBObywgWWVzIH07CiAKIGNs
YXNzIEl0ZW1CdWZmZXJXcml0aW5nQ2xpZW50IHsKQEAgLTk1LDE3ICs5NywxNyBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCi0gICAgdmlydHVhbCBPcHRpb25hbDxzdGQ6
OnNpemVfdD4gcmVxdWlyZWRTaXplRm9ySXRlbShJdGVtSGFuZGxlKSBjb25zdAorICAgIHZpcnR1
YWwgT3B0aW9uYWw8c3RkOjpzaXplX3Q+IHJlcXVpcmVkU2l6ZUZvckl0ZW0oY29uc3QgRGlzcGxh
eUxpc3RJdGVtJikgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAg
ICAgfQogCi0gICAgdmlydHVhbCBSZWZQdHI8U2hhcmVkQnVmZmVyPiBlbmNvZGVJdGVtT3V0T2ZM
aW5lKEl0ZW1IYW5kbGUpIGNvbnN0CisgICAgdmlydHVhbCBSZWZQdHI8U2hhcmVkQnVmZmVyPiBl
bmNvZGVJdGVtT3V0T2ZMaW5lKGNvbnN0IERpc3BsYXlMaXN0SXRlbSYpIGNvbnN0CiAgICAgewog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgZW5jb2Rl
SXRlbUlubGluZShJdGVtSGFuZGxlLCB1aW50OF90KikgY29uc3QKKyAgICB2aXJ0dWFsIHZvaWQg
ZW5jb2RlSXRlbUlubGluZShjb25zdCBEaXNwbGF5TGlzdEl0ZW0mLCB1aW50OF90KikgY29uc3QK
ICAgICB7CiAgICAgfQogCkBAIC0xNzUsMTggKzE3Nyw5IEBAIHB1YmxpYzoKICAgICB7CiAgICAg
ICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPFQ+Ojp2YWx1
ZSA9PSBUOjppc0lubGluZUl0ZW0pOwogCi0gICAgICAgIGlmICghVDo6aXNJbmxpbmVJdGVtKSB7
CisgICAgICAgIGlmIGNvbnN0ZXhwciAoIVQ6OmlzSW5saW5lSXRlbSkgewogICAgICAgICAgICAg
UkVMRUFTRV9BU1NFUlQobV93cml0aW5nQ2xpZW50KTsKLSNpZiBDT01QSUxFUihNU1ZDKQotICAg
ICAgICAgICAgX19kZWNsc3BlYyhhbGlnbig4KSkgdHlwZWRlZiB1aW50OF90IEVuY29kaW5nQnVm
ZmVyW3NpemVvZih1aW50NjRfdCkgKyBzaXplb2YoVCldOwotI2Vsc2UKLSAgICAgICAgICAgIHVz
aW5nIEVuY29kaW5nQnVmZmVyIF9fYXR0cmlidXRlX18oKGFsaWduZWQgKDgpKSkgPSB1aW50OF90
W3NpemVvZih1aW50NjRfdCkgKyBzaXplb2YoVCldOwotI2VuZGlmCi0gICAgICAgICAgICBzdGF0
aWMgRW5jb2RpbmdCdWZmZXIgdGVtcG9yYXJ5SXRlbUJ1ZmZlcjsKLSAgICAgICAgICAgIHRlbXBv
cmFyeUl0ZW1CdWZmZXJbMF0gPSBzdGF0aWNfY2FzdDx1aW50OF90PihUOjppdGVtVHlwZSk7Ci0g
ICAgICAgICAgICBuZXcgKHRlbXBvcmFyeUl0ZW1CdWZmZXIgKyBzaXplb2YodWludDY0X3QpKSBU
KHN0ZDo6Zm9yd2FyZDxBcmdzPihhcmdzKS4uLik7Ci0gICAgICAgICAgICBhcHBlbmQoeyB0ZW1w
b3JhcnlJdGVtQnVmZmVyIH0pOwotICAgICAgICAgICAgSXRlbUhhbmRsZSB7IHRlbXBvcmFyeUl0
ZW1CdWZmZXIgfS5kZXN0cm95KCk7CisgICAgICAgICAgICBhcHBlbmQoRGlzcGxheUxpc3RJdGVt
KFQoc3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKSkpOwogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9CiAKQEAgLTIwNSw3ICsxOTgsNyBAQCBwcml2YXRlOgogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgZGlkQXBwZW5kRGF0YShzaXplX3QgbnVtYmVyT2ZCeXRlcywgRGlkQ2hhbmdlSXRl
bUJ1ZmZlcik7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBEaWRDaGFuZ2VJdGVtQnVmZmVyIHN3YXBX
cml0YWJsZUJ1ZmZlcklmTmVlZGVkKHNpemVfdCBudW1iZXJPZkJ5dGVzKTsKLSAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIGFwcGVuZChJdGVtSGFuZGxlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IGFwcGVuZChjb25zdCBEaXNwbGF5TGlzdEl0ZW0mKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBU
LCBjbGFzcy4uLiBBcmdzPiB2b2lkIHVuY2hlY2tlZEFwcGVuZChEaWRDaGFuZ2VJdGVtQnVmZmVy
IGRpZENoYW5nZUl0ZW1CdWZmZXIsIEFyZ3MmJi4uLiBhcmdzKQogICAgIHsKICAgICAgICAgYXV0
byogc3RhcnRPZkl0ZW0gPSAmbV93cml0YWJsZUJ1ZmZlci5kYXRhW21fd3JpdHRlbk51bWJlck9m
Qnl0ZXNdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwCmluZGV4IDRh
NjYzYWZhNzYwZTY5ZmYyYzU2ZjU1MzIyNGVlMDZhMjlkMzQ0YmMuLmExZTA5MWU0NTdmNTg5ZGM4
MzI0ZjA5NGY2N2ExN2UyODQ2ZmJiN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJ
dGVtVHlwZS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMC0yMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMjU5LDYgKzI1OSwyMSBAQCBzaXplX3QgcGFkZGVkU2l6ZU9mVHlwZUFuZEl0
ZW1JbkJ5dGVzKEl0ZW1UeXBlIHR5cGUpCiAgICAgcmV0dXJuIHNpemVvZih1aW50NjRfdCkgKyBy
b3VuZFVwVG9NdWx0aXBsZU9mKGFsaWdub2YodWludDY0X3QpLCBzaXplT2ZJdGVtSW5CeXRlcyh0
eXBlKSk7CiB9CiAKK3NpemVfdCBwYWRkZWRTaXplT2ZUeXBlQW5kSXRlbUluQnl0ZXMoY29uc3Qg
RGlzcGxheUxpc3RJdGVtJiBkaXNwbGF5TGlzdEl0ZW0pCit7CisgICAgYXV0byBpdGVtU2l6ZSA9
IFdURjo6dmlzaXQoW10oY29uc3QgYXV0byYgaXRlbSkgeworICAgICAgICByZXR1cm4gc2l6ZW9m
KGl0ZW0pOworICAgIH0sIGRpc3BsYXlMaXN0SXRlbSk7CisgICAgcmV0dXJuIHNpemVvZih1aW50
NjRfdCkgKyByb3VuZFVwVG9NdWx0aXBsZU9mKGFsaWdub2YodWludDY0X3QpLCBpdGVtU2l6ZSk7
Cit9CisKK0l0ZW1UeXBlIGRpc3BsYXlMaXN0SXRlbVR5cGUoY29uc3QgRGlzcGxheUxpc3RJdGVt
JiBkaXNwbGF5TGlzdEl0ZW0pCit7CisgICAgcmV0dXJuIFdURjo6dmlzaXQoW10oY29uc3QgYXV0
byYgaXRlbSkgeworICAgICAgICByZXR1cm4gaXRlbS5pdGVtVHlwZTsKKyAgICB9LCBkaXNwbGF5
TGlzdEl0ZW0pOworfQorCiBib29sIGlzSW5saW5lSXRlbShJdGVtVHlwZSB0eXBlKQogewogICAg
IC8qIFNlZSB0aGUgY29tbWVudCBhdCB0aGUgdG9wIG9mIERpc3BsYXlMaXN0SXRlbXMuaCBmb3Ig
d2hhdCB0aGlzIG1lYW5zLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKaW5kZXggYmIz
Nzc1YWY2YzkzNmQ0YWViYWQ3NGJiZTk1MjU2YTUwM2ExNmM0Mi4uMDM3ZTQ4NjljNzg3NzBiMGY5
YmFhNDBlMzFlMjY1ZTRhNDAyNGUxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5o
CkBAIC0yMjgyLDYgKzIyODIsODEgQEAgcHJpdmF0ZToKICAgICBSZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIgbV9pZGVudGlmaWVyOwogfTsKIAordXNpbmcgRGlzcGxheUxpc3RJdGVtID0gVmFy
aWFudDwKKyAgICBTYXZlLAorICAgIFJlc3RvcmUsCisgICAgVHJhbnNsYXRlLAorICAgIFJvdGF0
ZSwKKyAgICBTY2FsZSwKKyAgICBTZXRDVE0sCisgICAgQ29uY2F0ZW5hdGVDVE0sCisgICAgU2V0
SW5saW5lRmlsbEdyYWRpZW50LAorICAgIFNldElubGluZUZpbGxDb2xvciwKKyAgICBTZXRJbmxp
bmVTdHJva2VDb2xvciwKKyAgICBTZXRTdHJva2VUaGlja25lc3MsCisgICAgU2V0U3RhdGUsCisg
ICAgU2V0TGluZUNhcCwKKyAgICBTZXRMaW5lRGFzaCwKKyAgICBTZXRMaW5lSm9pbiwKKyAgICBT
ZXRNaXRlckxpbWl0LAorICAgIENsZWFyU2hhZG93LAorICAgIENsaXAsCisgICAgQ2xpcE91dCwK
KyAgICBDbGlwVG9JbWFnZUJ1ZmZlciwKKyAgICBDbGlwT3V0VG9QYXRoLAorICAgIENsaXBQYXRo
LAorICAgIEJlZ2luQ2xpcFRvRHJhd2luZ0NvbW1hbmRzLAorICAgIEVuZENsaXBUb0RyYXdpbmdD
b21tYW5kcywKKyAgICBEcmF3R2x5cGhzLAorICAgIERyYXdJbWFnZUJ1ZmZlciwKKyAgICBEcmF3
TmF0aXZlSW1hZ2UsCisgICAgRHJhd1BhdHRlcm4sCisgICAgQmVnaW5UcmFuc3BhcmVuY3lMYXll
ciwKKyAgICBFbmRUcmFuc3BhcmVuY3lMYXllciwKKyAgICBEcmF3UmVjdCwKKyAgICBEcmF3TGlu
ZSwKKyAgICBEcmF3TGluZXNGb3JUZXh0LAorICAgIERyYXdEb3RzRm9yRG9jdW1lbnRNYXJrZXIs
CisgICAgRHJhd0VsbGlwc2UsCisgICAgRHJhd1BhdGgsCisgICAgRHJhd0ZvY3VzUmluZ1BhdGgs
CisgICAgRHJhd0ZvY3VzUmluZ1JlY3RzLAorICAgIEZpbGxSZWN0LAorICAgIEZpbGxSZWN0V2l0
aENvbG9yLAorICAgIEZpbGxSZWN0V2l0aEdyYWRpZW50LAorICAgIEZpbGxDb21wb3NpdGVkUmVj
dCwKKyAgICBGaWxsUm91bmRlZFJlY3QsCisgICAgRmlsbFJlY3RXaXRoUm91bmRlZEhvbGUsCisj
aWYgRU5BQkxFKElOTElORV9QQVRIX0RBVEEpCisgICAgRmlsbElubGluZVBhdGgsCisjZW5kaWYK
KyAgICBGaWxsUGF0aCwKKyAgICBGaWxsRWxsaXBzZSwKKyAgICBHZXRJbWFnZURhdGEsCisgICAg
UHV0SW1hZ2VEYXRhLAorI2lmIEVOQUJMRShWSURFTykKKyAgICBQYWludEZyYW1lRm9yTWVkaWEs
CisjZW5kaWYKKyAgICBTdHJva2VSZWN0LAorICAgIFN0cm9rZUxpbmUsCisjaWYgRU5BQkxFKElO
TElORV9QQVRIX0RBVEEpCisgICAgU3Ryb2tlSW5saW5lUGF0aCwKKyNlbmRpZgorICAgIFN0cm9r
ZVBhdGgsCisgICAgU3Ryb2tlRWxsaXBzZSwKKyAgICBDbGVhclJlY3QsCisjaWYgVVNFKENHKQor
ICAgIEFwcGx5U3Ryb2tlUGF0dGVybiwKKyAgICBBcHBseUZpbGxQYXR0ZXJuLAorI2VuZGlmCisg
ICAgQXBwbHlEZXZpY2VTY2FsZUZhY3RvciwKKyAgICBGbHVzaENvbnRleHQsCisgICAgTWV0YUNv
bW1hbmRDaGFuZ2VJdGVtQnVmZmVyLAorICAgIE1ldGFDb21tYW5kQ2hhbmdlRGVzdGluYXRpb25J
bWFnZUJ1ZmZlcj47CisKK3NpemVfdCBwYWRkZWRTaXplT2ZUeXBlQW5kSXRlbUluQnl0ZXMoY29u
c3QgRGlzcGxheUxpc3RJdGVtJik7CitJdGVtVHlwZSBkaXNwbGF5TGlzdEl0ZW1UeXBlKGNvbnN0
IERpc3BsYXlMaXN0SXRlbSYpOworCiBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0m
LCBJdGVtSGFuZGxlKTsKIAogfSAvLyBuYW1lc3BhY2UgRGlzcGxheUxpc3QKQEAgLTIzNjMsNiAr
MjQzOCw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6RGlzcGxheUxp
c3Q6Okl0ZW1UeXBlPiB7CiAjZW5kaWYKICAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5
cGU6OkFwcGx5RGV2aWNlU2NhbGVGYWN0b3IKICAgICA+OworCiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9Jbk1lbW9yeURpc3BsYXlMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9Jbk1lbW9yeURpc3BsYXlMaXN0LmNwcAppbmRleCAyNmU2
MjUzNzg4ZGRkZmEzYTYwM2I3MmRhZTFiYmZiNjE2MTgxMTdjLi44MDlkOTczZTY5OWRmMWQ2NTU1
YmVhMDBmZDI2OWMwYzg5NTY4OTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvSW5NZW1vcnlEaXNwbGF5TGlzdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0luTWVtb3J5RGlzcGxh
eUxpc3QuY3BwCkBAIC0zMSwxNCArMzEsMTQgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVz
cGFjZSBEaXNwbGF5TGlzdCB7CiAKLU9wdGlvbmFsPHN0ZDo6c2l6ZV90PiBJbk1lbW9yeURpc3Bs
YXlMaXN0OjpXcml0aW5nQ2xpZW50OjpyZXF1aXJlZFNpemVGb3JJdGVtKEl0ZW1IYW5kbGUgaXRl
bUhhbmRsZSkgY29uc3QKK09wdGlvbmFsPHN0ZDo6c2l6ZV90PiBJbk1lbW9yeURpc3BsYXlMaXN0
OjpXcml0aW5nQ2xpZW50OjpyZXF1aXJlZFNpemVGb3JJdGVtKGNvbnN0IERpc3BsYXlMaXN0SXRl
bSYgZGlzcGxheUxpc3RJdGVtKSBjb25zdAogewotICAgIHJldHVybiBwYWRkZWRTaXplT2ZUeXBl
QW5kSXRlbUluQnl0ZXMoaXRlbUhhbmRsZS50eXBlKCkpOworICAgIHJldHVybiBwYWRkZWRTaXpl
T2ZUeXBlQW5kSXRlbUluQnl0ZXMoZGlzcGxheUxpc3RJdGVtKTsKIH0KIAotdm9pZCBJbk1lbW9y
eURpc3BsYXlMaXN0OjpXcml0aW5nQ2xpZW50OjplbmNvZGVJdGVtSW5saW5lKEl0ZW1IYW5kbGUg
aXRlbUhhbmRsZSwgdWludDhfdCogbG9jYXRpb24pIGNvbnN0Cit2b2lkIEluTWVtb3J5RGlzcGxh
eUxpc3Q6OldyaXRpbmdDbGllbnQ6OmVuY29kZUl0ZW1JbmxpbmUoY29uc3QgRGlzcGxheUxpc3RJ
dGVtJiBkaXNwbGF5TGlzdEl0ZW0sIHVpbnQ4X3QqIGxvY2F0aW9uKSBjb25zdAogewotICAgIGl0
ZW1IYW5kbGUuc2FmZUNvcHkoeyBsb2NhdGlvbiB9KTsKKyAgICBzYWZlQ29weShkaXNwbGF5TGlz
dEl0ZW0sIHsgbG9jYXRpb24gfSk7CiB9CiAKIE9wdGlvbmFsPEl0ZW1IYW5kbGU+IFdBUk5fVU5V
U0VEX1JFVFVSTiBJbk1lbW9yeURpc3BsYXlMaXN0OjpSZWFkaW5nQ2xpZW50OjpkZWNvZGVJdGVt
KGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBkYXRhTGVuZ3RoLCBJdGVtVHlwZSB0eXBlLCB1
aW50OF90KiBoYW5kbGVMb2NhdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9Jbk1lbW9yeURpc3BsYXlMaXN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvSW5NZW1vcnlEaXNwbGF5TGlz
dC5oCmluZGV4IDRlOGY5OTA2NDc0MjVlYzk3MWJjODllYmRiMDU1ZDljMmNmMzcwODAuLjFjYzA4
YWZhYmZmMmRhNTdjMWMyZDE4ZDg5NmZkY2Y5NWRjYWEzZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9Jbk1lbW9yeURpc3BsYXlMaXN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0lu
TWVtb3J5RGlzcGxheUxpc3QuaApAQCAtNDAsOCArNDAsOCBAQCBwdWJsaWM6CiAgICAgY2xhc3Mg
V0VCQ09SRV9FWFBPUlQgV3JpdGluZ0NsaWVudCA6IHB1YmxpYyBJdGVtQnVmZmVyV3JpdGluZ0Ns
aWVudCB7CiAgICAgICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIHByaXZhdGU6Ci0g
ICAgICAgIE9wdGlvbmFsPHN0ZDo6c2l6ZV90PiByZXF1aXJlZFNpemVGb3JJdGVtKEl0ZW1IYW5k
bGUpIGNvbnN0IGZpbmFsOwotICAgICAgICB2b2lkIGVuY29kZUl0ZW1JbmxpbmUoSXRlbUhhbmRs
ZSwgdWludDhfdCopIGNvbnN0IGZpbmFsOworICAgICAgICBPcHRpb25hbDxzdGQ6OnNpemVfdD4g
cmVxdWlyZWRTaXplRm9ySXRlbShjb25zdCBEaXNwbGF5TGlzdEl0ZW0mKSBjb25zdCBmaW5hbDsK
KyAgICAgICAgdm9pZCBlbmNvZGVJdGVtSW5saW5lKGNvbnN0IERpc3BsYXlMaXN0SXRlbSYsIHVp
bnQ4X3QqKSBjb25zdCBmaW5hbDsKICAgICB9OwogCiAgICAgY2xhc3MgV0VCQ09SRV9FWFBPUlQg
UmVhZGluZ0NsaWVudCA6IHB1YmxpYyBJdGVtQnVmZmVyUmVhZGluZ0NsaWVudCB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVm
ZmVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
SW1hZ2VCdWZmZXJQcm94eS5oCmluZGV4IDYzYTRmNTA5YzRlYTE5Mjk4ZGY2NjIzMWEyMWJjNzRk
NTI2ODY4MjMuLjdlOGRhYWNkNmIzMmQ4YjY4MWEwZDdkYTU2YWQ5YTljN2I0YjY1YzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VC
dWZmZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCkBAIC0zMjIsMTA1ICszMjIsMTUgQEAgcHJvdGVjdGVk
OgogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIAotICAgIFJlZlB0cjxXZWJDb3JlOjpTaGFy
ZWRCdWZmZXI+IGVuY29kZUl0ZW1PdXRPZkxpbmUoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1I
YW5kbGUgaXRlbSkgY29uc3QgZmluYWwKKyAgICBSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVy
PiBlbmNvZGVJdGVtT3V0T2ZMaW5lKGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5
TGlzdEl0ZW0mIGl0ZW0pIGNvbnN0IGZpbmFsCiAgICAgewotICAgICAgICAvKiBUaGlzIG5lZWRz
IHRvIG1hdGNoICgxKSBpc0lubGluZUl0ZW0oKSBpbiBEaXNwbGF5TGlzdEl0ZW1UeXBlLmNwcCwg
KDIpIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmRlY29kZUl0ZW0oKSwKLSAgICAgICAgICogYW5k
ICgzKSBhbGwgdGhlICJzdGF0aWMgY29uc3RleHByIGJvb2wgaXNJbmxpbmVJdGVtInMgaW5zaWRl
IHRoZSBpbmRpdmlkdWFsIGl0ZW0gY2xhc3Nlcy4KLSAgICAgICAgICogU2VlIHRoZSBjb21tZW50
IGF0IHRoZSB0b3Agb2YgRGlzcGxheUxpc3RJdGVtcy5oIGZvciB3aHkuICovCi0KLSAgICAgICAg
c3dpdGNoIChpdGVtLnR5cGUoKSkgewotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpJdGVtVHlwZTo6Q2xpcE91dFRvUGF0aDoKLSAgICAgICAgICAgIHJldHVybiBJUEM6OkVuY29k
ZXI6OmVuY29kZVNpbmdsZU9iamVjdDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6Q2xpcE91dFRvUGF0
aD4oaXRlbS5nZXQ8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkNsaXBPdXRUb1BhdGg+KCkpOwotICAg
ICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6Q2xpcFBhdGg6Ci0gICAg
ICAgICAgICByZXR1cm4gSVBDOjpFbmNvZGVyOjplbmNvZGVTaW5nbGVPYmplY3Q8V2ViQ29yZTo6
RGlzcGxheUxpc3Q6OkNsaXBQYXRoPihpdGVtLmdldDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6Q2xp
cFBhdGg+KCkpOwotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6
RHJhd0ZvY3VzUmluZ1BhdGg6Ci0gICAgICAgICAgICByZXR1cm4gSVBDOjpFbmNvZGVyOjplbmNv
ZGVTaW5nbGVPYmplY3Q8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdGb2N1c1JpbmdQYXRoPihp
dGVtLmdldDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0ZvY3VzUmluZ1BhdGg+KCkpOwotICAg
ICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RHJhd0ZvY3VzUmluZ1Jl
Y3RzOgotICAgICAgICAgICAgcmV0dXJuIElQQzo6RW5jb2Rlcjo6ZW5jb2RlU2luZ2xlT2JqZWN0
PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3Rm9jdXNSaW5nUmVjdHM+KGl0ZW0uZ2V0PFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpEcmF3Rm9jdXNSaW5nUmVjdHM+KCkpOwotICAgICAgICBjYXNlIFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RHJhd0dseXBoczoKLSAgICAgICAgICAgIHJl
dHVybiBJUEM6OkVuY29kZXI6OmVuY29kZVNpbmdsZU9iamVjdDxXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6RHJhd0dseXBocz4oaXRlbS5nZXQ8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHM+
KCkpOwotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RHJhd0xp
bmVzRm9yVGV4dDoKLSAgICAgICAgICAgIHJldHVybiBJUEM6OkVuY29kZXI6OmVuY29kZVNpbmds
ZU9iamVjdDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0xpbmVzRm9yVGV4dD4oaXRlbS5nZXQ8
V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdMaW5lc0ZvclRleHQ+KCkpOwotICAgICAgICBjYXNl
IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RHJhd1BhdGg6Ci0gICAgICAgICAgICBy
ZXR1cm4gSVBDOjpFbmNvZGVyOjplbmNvZGVTaW5nbGVPYmplY3Q8V2ViQ29yZTo6RGlzcGxheUxp
c3Q6OkRyYXdQYXRoPihpdGVtLmdldDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd1BhdGg+KCkp
OwotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RmlsbENvbXBv
c2l0ZWRSZWN0OgotICAgICAgICAgICAgcmV0dXJuIElQQzo6RW5jb2Rlcjo6ZW5jb2RlU2luZ2xl
T2JqZWN0PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpGaWxsQ29tcG9zaXRlZFJlY3Q+KGl0ZW0uZ2V0
PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpGaWxsQ29tcG9zaXRlZFJlY3Q+KCkpOwotICAgICAgICBj
YXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RmlsbFBhdGg6Ci0gICAgICAgICAg
ICByZXR1cm4gSVBDOjpFbmNvZGVyOjplbmNvZGVTaW5nbGVPYmplY3Q8V2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OkZpbGxQYXRoPihpdGVtLmdldDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RmlsbFBhdGg+
KCkpOwotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RmlsbFJl
Y3RXaXRoQ29sb3I6Ci0gICAgICAgICAgICByZXR1cm4gSVBDOjpFbmNvZGVyOjplbmNvZGVTaW5n
bGVPYmplY3Q8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkZpbGxSZWN0V2l0aENvbG9yPihpdGVtLmdl
dDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RmlsbFJlY3RXaXRoQ29sb3I+KCkpOwotICAgICAgICBj
YXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RmlsbFJlY3RXaXRoR3JhZGllbnQ6
Ci0gICAgICAgICAgICByZXR1cm4gSVBDOjpFbmNvZGVyOjplbmNvZGVTaW5nbGVPYmplY3Q8V2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OkZpbGxSZWN0V2l0aEdyYWRpZW50PihpdGVtLmdldDxXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6RmlsbFJlY3RXaXRoR3JhZGllbnQ+KCkpOwotICAgICAgICBjYXNlIFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RmlsbFJlY3RXaXRoUm91bmRlZEhvbGU6Ci0g
ICAgICAgICAgICByZXR1cm4gSVBDOjpFbmNvZGVyOjplbmNvZGVTaW5nbGVPYmplY3Q8V2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OkZpbGxSZWN0V2l0aFJvdW5kZWRIb2xlPihpdGVtLmdldDxXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6RmlsbFJlY3RXaXRoUm91bmRlZEhvbGU+KCkpOwotICAgICAgICBjYXNl
IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RmlsbFJvdW5kZWRSZWN0OgotICAgICAg
ICAgICAgcmV0dXJuIElQQzo6RW5jb2Rlcjo6ZW5jb2RlU2luZ2xlT2JqZWN0PFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpGaWxsUm91bmRlZFJlY3Q+KGl0ZW0uZ2V0PFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpGaWxsUm91bmRlZFJlY3Q+KCkpOwotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpJdGVtVHlwZTo6UHV0SW1hZ2VEYXRhOgotICAgICAgICAgICAgcmV0dXJuIElQQzo6RW5jb2Rl
cjo6ZW5jb2RlU2luZ2xlT2JqZWN0PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpQdXRJbWFnZURhdGE+
KGl0ZW0uZ2V0PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpQdXRJbWFnZURhdGE+KCkpOwotICAgICAg
ICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0TGluZURhc2g6Ci0gICAg
ICAgICAgICByZXR1cm4gSVBDOjpFbmNvZGVyOjplbmNvZGVTaW5nbGVPYmplY3Q8V2ViQ29yZTo6
RGlzcGxheUxpc3Q6OlNldExpbmVEYXNoPihpdGVtLmdldDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
U2V0TGluZURhc2g+KCkpOwotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVt
VHlwZTo6U2V0U3RhdGU6Ci0gICAgICAgICAgICByZXR1cm4gSVBDOjpFbmNvZGVyOjplbmNvZGVT
aW5nbGVPYmplY3Q8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldFN0YXRlPihpdGVtLmdldDxXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6U2V0U3RhdGU+KCkpOwotICAgICAgICBjYXNlIFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpJdGVtVHlwZTo6U3Ryb2tlUGF0aDoKLSAgICAgICAgICAgIHJldHVybiBJUEM6
OkVuY29kZXI6OmVuY29kZVNpbmdsZU9iamVjdDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U3Ryb2tl
UGF0aD4oaXRlbS5nZXQ8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OlN0cm9rZVBhdGg+KCkpOwotICAg
ICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6QXBwbHlEZXZpY2VTY2Fs
ZUZhY3RvcjoKLSNpZiBVU0UoQ0cpCi0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6
Okl0ZW1UeXBlOjpBcHBseUZpbGxQYXR0ZXJuOgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpJdGVtVHlwZTo6QXBwbHlTdHJva2VQYXR0ZXJuOgotI2VuZGlmCi0gICAgICAgIGNh
c2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpCZWdpblRyYW5zcGFyZW5jeUxheWVy
OgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6Q2xlYXJSZWN0
OgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6Q2xlYXJTaGFk
b3c6Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpDbGlwOgot
ICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6Q2xpcE91dDoKLSAg
ICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkNsaXBUb0ltYWdlQnVm
ZmVyOgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6QmVnaW5D
bGlwVG9EcmF3aW5nQ29tbWFuZHM6Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6
Okl0ZW1UeXBlOjpFbmRDbGlwVG9EcmF3aW5nQ29tbWFuZHM6Ci0gICAgICAgIGNhc2UgV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpDb25jYXRlbmF0ZUNUTToKLSAgICAgICAgY2FzZSBX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkRyYXdEb3RzRm9yRG9jdW1lbnRNYXJrZXI6
Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpEcmF3RWxsaXBz
ZToKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkRyYXdJbWFn
ZUJ1ZmZlcjoKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkRy
YXdOYXRpdmVJbWFnZToKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5
cGU6OkRyYXdQYXR0ZXJuOgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVt
VHlwZTo6RHJhd0xpbmU6Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1U
eXBlOjpEcmF3UmVjdDoKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5
cGU6OkVuZFRyYW5zcGFyZW5jeUxheWVyOgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpJdGVtVHlwZTo6RmlsbEVsbGlwc2U6Ci0jaWYgRU5BQkxFKElOTElORV9QQVRIX0RBVEEp
Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpGaWxsSW5saW5l
UGF0aDoKLSNlbmRpZgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlw
ZTo6RmlsbFJlY3Q6Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBl
OjpGbHVzaENvbnRleHQ6Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1U
eXBlOjpNZXRhQ29tbWFuZENoYW5nZURlc3RpbmF0aW9uSW1hZ2VCdWZmZXI6Ci0gICAgICAgIGNh
c2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpNZXRhQ29tbWFuZENoYW5nZUl0ZW1C
dWZmZXI6Ci0jaWYgRU5BQkxFKFZJREVPKQotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpJdGVtVHlwZTo6UGFpbnRGcmFtZUZvck1lZGlhOgotI2VuZGlmCi0gICAgICAgIGNhc2Ug
V2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpSZXN0b3JlOgotICAgICAgICBjYXNlIFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6Um90YXRlOgotICAgICAgICBjYXNlIFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2F2ZToKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNjYWxlOgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpJdGVtVHlwZTo6U2V0Q1RNOgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpJdGVtVHlwZTo6U2V0SW5saW5lRmlsbENvbG9yOgotICAgICAgICBjYXNlIFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0SW5saW5lRmlsbEdyYWRpZW50OgotICAgICAgICBj
YXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3I6
Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRMaW5lQ2Fw
OgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0TGluZUpv
aW46Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRNaXRl
ckxpbWl0OgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0
U3Ryb2tlVGhpY2tuZXNzOgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVt
VHlwZTo6U3Ryb2tlRWxsaXBzZToKLSNpZiBFTkFCTEUoSU5MSU5FX1BBVEhfREFUQSkKLSAgICAg
ICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlN0cm9rZUlubGluZVBhdGg6
Ci0jZW5kaWYKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlN0
cm9rZVJlY3Q6Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpT
dHJva2VMaW5lOgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6
VHJhbnNsYXRlOgorICAgICAgICByZXR1cm4gV1RGOjp2aXNpdChbXShjb25zdCBhdXRvJiBkaXNw
bGF5TGlzdEl0ZW0pIC0+IFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IHsKKyAgICAgICAg
ICAgIHVzaW5nIERpc3BsYXlMaXN0SXRlbVR5cGUgPSB0eXBlbmFtZSBXVEY6OlJlbW92ZUNWQW5k
UmVmZXJlbmNlPGRlY2x0eXBlKGRpc3BsYXlMaXN0SXRlbSk+Ojp0eXBlOworICAgICAgICAgICAg
aWYgY29uc3RleHByICghRGlzcGxheUxpc3RJdGVtVHlwZTo6aXNJbmxpbmVJdGVtKQorICAgICAg
ICAgICAgICAgIHJldHVybiBJUEM6OkVuY29kZXI6OmVuY29kZVNpbmdsZU9iamVjdDxEaXNwbGF5
TGlzdEl0ZW1UeXBlPihkaXNwbGF5TGlzdEl0ZW0pOwogICAgICAgICAgICAgUkVMRUFTRV9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgICAgICBk
ZWZhdWx0OgotICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAg
ICAgICAgIHJldHVybiBudWxscHRyOwotICAgICAgICB9CisgICAgICAgIH0sIGl0ZW0pOwogICAg
IH0KIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpUaHJlYWRTYWZlSW1hZ2VCdWZmZXJG
bHVzaGVyPiBjcmVhdGVGbHVzaGVyKCkgb3ZlcnJpZGUKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhMjJjY2Q0Y2Y5MjIyOTAwZmRhZTU0MzNhMjg0
ZWQzZjdjYzcxYzI0Li5mN2YxYjQzZDdhMjRlOGZhNjk1NDY0YzBiZDQyYWM1ODY4NWQ5YzAwIDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTQgQEAKKzIwMjEtMDUtMDkgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxl
LmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3NdIFNpbXBsaWZ5IERpc3BsYXlMaXN0OjpJdGVy
YXRvciBwYXJ0IDY6IE1pZ3JhdGUgSXRlbUJ1ZmZlcldyaXRpbmdDbGllbnQgZnJvbSBJdGVtSGFu
ZGxlIHRvIGEgY29uc3QgVmFyaWFudCYKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyNDI3MAorCisgICAgICAgIFJldmlld2VkIGJ5IFdlbnNvbiBIc2ll
aC4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9EaXNwbGF5TGlzdFRl
c3RzLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jZy9EaXNwbGF5TGlzdFRlc3RzQ0cuY3BwOgorCiAyMDIx
LTA1LTA4ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgUkVHUkVTU0lPTiAocjI3Njc5Nz8pOiBbIG1hY09TL2lPUyBdIFRlc3RXZWJLaXRBUEku
VVJMU2NoZW1lSGFuZGxlci5FeGNlcHRpb25zIGlzIGZsYWtleSBjcmFzaGluZwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Rpc3BsYXlMaXN0VGVzdHMuY3Bw
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Rpc3BsYXlMaXN0VGVzdHMuY3Bw
CmluZGV4IDQxMDc3Y2U5OTU5MzkzMGZiMWQwYjljMGZjZmMxNWFlZmZlM2MzZjAuLmJjN2E4NDlh
ZDc0ZTRhNjQzNTg4MTk0NzhmZTQzODM1NzFlODc1MmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9EaXNwbGF5TGlzdFRlc3RzLmNwcAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRGlzcGxheUxpc3RUZXN0cy5jcHAKQEAgLTIwMiwx
MCArMjAyLDEwIEBAIFRFU1QoRGlzcGxheUxpc3RUZXN0cywgSXRlbUJ1ZmZlckNsaWVudCkKICAg
ICAgICAgICAgIHJldHVybiB7IGdsb2JhbEJ1ZmZlcklkZW50aWZpZXIsIGdsb2JhbEl0ZW1CdWZm
ZXIsIGdsb2JhbEl0ZW1CdWZmZXJDYXBhY2l0eSB9OwogICAgICAgICB9CiAKLSAgICAgICAgUmVm
UHRyPFNoYXJlZEJ1ZmZlcj4gZW5jb2RlSXRlbU91dE9mTGluZShJdGVtSGFuZGxlIGhhbmRsZSkg
Y29uc3QgZmluYWwKKyAgICAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZW5jb2RlSXRlbU91dE9m
TGluZShjb25zdCBEaXNwbGF5TGlzdEl0ZW0mIGRpc3BsYXlMaXN0SXRlbSkgY29uc3QgZmluYWwK
ICAgICAgICAgewogICAgICAgICAgICAgYXV0byBpbmRleCA9IG1faXRlbXMuc2l6ZSgpOwotICAg
ICAgICAgICAgbV9pdGVtcy5hcHBlbmQoaGFuZGxlLmdldDxTdHJva2VQYXRoPigpKTsKKyAgICAg
ICAgICAgIG1faXRlbXMuYXBwZW5kKFdURjo6Z2V0PFN0cm9rZVBhdGg+KGRpc3BsYXlMaXN0SXRl
bSkpOwogICAgICAgICAgICAgcmV0dXJuIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHJlaW50ZXJwcmV0
X2Nhc3Q8dWludDhfdCo+KCZpbmRleCksIHNpemVvZihzaXplX3QpKTsKICAgICAgICAgfQogCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY2cvRGlzcGxheUxp
c3RUZXN0c0NHLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jZy9EaXNw
bGF5TGlzdFRlc3RzQ0cuY3BwCmluZGV4IGVlZjcxNmQ5NTk4MWZmOTUxM2UxMTg2OWY2MTRiZGQw
NmY0ZWRhMTEuLjQxYWMzOWU1MzZkODg3NmViNmRmZWJmMjMzYjk2NjM1YzE0MDg5MDAgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jZy9EaXNwbGF5TGlzdFRl
c3RzQ0cuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jZy9EaXNw
bGF5TGlzdFRlc3RzQ0cuY3BwCkBAIC0xMDAsNyArMTAwLDcgQEAgcHJpdmF0ZToKICAgICAgICAg
cmV0dXJuIHsgZ2xvYmFsQnVmZmVySWRlbnRpZmllciwgZ2xvYmFsSXRlbUJ1ZmZlciwgZ2xvYmFs
SXRlbUJ1ZmZlckNhcGFjaXR5IH07CiAgICAgfQogCi0gICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4g
ZW5jb2RlSXRlbU91dE9mTGluZShJdGVtSGFuZGxlKSBjb25zdCBmaW5hbAorICAgIFJlZlB0cjxT
aGFyZWRCdWZmZXI+IGVuY29kZUl0ZW1PdXRPZkxpbmUoY29uc3QgRGlzcGxheUxpc3RJdGVtJikg
Y29uc3QgZmluYWwKICAgICB7CiAgICAgICAgIHJldHVybiBTaGFyZWRCdWZmZXI6OmNyZWF0ZSgp
OwogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428117</attachid>
            <date>2021-05-09 01:56:34 -0700</date>
            <delta_ts>2021-05-09 02:52:56 -0700</delta_ts>
            <desc>Patch for committing</desc>
            <filename>bug-224270-20210509015633.patch</filename>
            <type>text/plain</type>
            <size>36405</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MjQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2NlY2JjMjhlZmFlMDlm
MDhmOWQ2MTIxZTA0NjcxMGJhYWM0NGVlNC4uNWZmNGJkMGUxMWIyODZiNTY1MWFlMTQ5M2UwZTBj
ZDBhNTViZmZkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIxLTA1LTA5ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9j
ZXNzXSBTaW1wbGlmeSBEaXNwbGF5TGlzdDo6SXRlcmF0b3IgcGFydCA2OiBNaWdyYXRlIEl0ZW1C
dWZmZXJXcml0aW5nQ2xpZW50IGZyb20gSXRlbUhhbmRsZSB0byBhIGNvbnN0IFZhcmlhbnQmCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQyNzAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBXZW5zb24gSHNpZWguCisKKyAgICAgICAgVGhpcyBwYXRjaCBh
ZGRzIGEgbmV3IFZhcmlhbnQgdGhhdCBjb250YWlucyBhbGwgdGhlIERpc3BsYXlMaXN0IGl0ZW0g
dHlwZXMsIG5hbWVkIERpc3BsYXlMaXN0SXRlbS4gSXQgYWxzbyBtaWdyYXRlcworICAgICAgICBJ
dGVtQnVmZmVyV3JpdGluZ0NsaWVudCBmcm9tIEl0ZW1IYW5kbGUgdG8gdGhpcyBuZXcgVmFyaWFu
dC4KKworICAgICAgICBUaGVyZSBhcmUgdHdvIGJlbmVmaXRzIHRvIHRoaXM6CisgICAgICAgIDEu
IFRoZSB0ZW1wbGF0ZWQgb3ZlcmxvYWQgb2YgSXRlbUJ1ZmZlcjo6YXBwZW5kKCkgaXMgd2F5IHNp
bXBsZXIgbm93LiBQcmV2aW91c2x5LCB3ZSB1c2VkIHRvIGFsbG9jYXRlIGEgYnl0ZSBidWZmZXIK
KyAgICAgICAgICAgICAgIG9uIHRoZSBzdGFjayBhbmQgcnVuIGEgcGxhY2VtZW50IG5ldyBvZiB0
aGUgZGlzcGxheSBsaXN0IGl0ZW0gdHlwZSBpbnRvIGl0LiBOb3csIHdlIGNhbiBqdXN0IHJ1biB0
aGUgRGlzcGxheUxpc3RJdGVtCisgICAgICAgICAgICAgICBjb25zdHJ1Y3RvciBpbnN0ZWFkLiBV
c2luZyB0aGUgVmFyaWFudCBkb2VzIHJlcXVpcmUgbW9yZSBzdGFjayBzcGFjZSwgYnV0IHdlIG9u
bHkgd2lsbCBldmVyIGhhdmUgb25lIG9mIHRoZXNlIG9iamVjdHMKKyAgICAgICAgICAgICAgIG9u
IHRoZSBzdGFjayBhdCBhIHRpbWUuCisgICAgICAgIDIuIFRoZSBiaWcgdGFibGUgaW5zaWRlIFJl
bW90ZUltYWdlQnVmZmVyUHJveHk6OmVuY29kZUl0ZW1PdXRPZkxpbmUoKSBpcyBnb25lLCBhbmQg
aXMgcmVwbGFjZWQgd2l0aCBqdXN0IDcgbGluZXMuIFRoaXMgaXMKKyAgICAgICAgICAgICAgIG9u
ZSBmZXdlciBwbGFjZSB3aGVyZSB3ZSdsbCBoYXZlIHRvIG1ha2Ugc3VyZSB0aGUgRGlzcGxheUxp
c3RJdGVtIHR5cGVzIG1hdGNoIGEgZnVuY3Rpb24gaW4gYW4gZW50aXJlbHkgZGlmZmVyZW50Cisg
ICAgICAgICAgICAgICBmcmFtZXdvcmsuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBiZWNhdXNl
IHRoZXJlIGlzIG5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OmNvcHlJbnRvKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpzYWZlQ29weUhlbHBlcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6c2Fm
ZUNvcHkpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXI6OmFwcGVu
ZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
SXRlbUJ1ZmZlci5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXJX
cml0aW5nQ2xpZW50OjpyZXF1aXJlZFNpemVGb3JJdGVtIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVyV3JpdGluZ0NsaWVudDo6ZW5jb2RlSXRlbU91dE9m
TGluZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcldy
aXRpbmdDbGllbnQ6OmVuY29kZUl0ZW1JbmxpbmUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXI6OmFwcGVuZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OnBhZGRlZFNpemVPZlR5cGVBbmRJdGVtSW5CeXRlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6ZGlzcGxheUxpc3RJdGVtVHlwZSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvSW5NZW1vcnlEaXNwbGF5TGlz
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SW5NZW1vcnlEaXNwbGF5TGlz
dDo6V3JpdGluZ0NsaWVudDo6cmVxdWlyZWRTaXplRm9ySXRlbSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6SW5NZW1vcnlEaXNwbGF5TGlzdDo6V3JpdGluZ0NsaWVudDo6
ZW5jb2RlSXRlbUlubGluZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0luTWVtb3J5RGlzcGxheUxpc3QuaDoKKwogMjAyMS0wNS0wOSAgTXlsZXMgQy4g
TWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gVW5pZnkg
bGFzdCByZXNvcnQgZmFsbGJhY2sgZm9udCBiZXR3ZWVuIGFsbCBDb2NvYSBwb3J0cwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpp
bmRleCA0OTc4OGYzMzZjOGJiNDRmZWI2YTkxZDdmNjhiMjNjZTFlZjI0Njc3Li4xMmVmYTNmMWIw
NzRhNDMzMmY2NTNhZmExMjdlMjAxZDViZjU1ZTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBA
CisyMDIxLTA1LTA5ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisK
KyAgICAgICAgW0dQVSBQcm9jZXNzXSBTaW1wbGlmeSBEaXNwbGF5TGlzdDo6SXRlcmF0b3IgcGFy
dCA2OiBNaWdyYXRlIEl0ZW1CdWZmZXJXcml0aW5nQ2xpZW50IGZyb20gSXRlbUhhbmRsZSB0byBh
IGNvbnN0IFZhcmlhbnQmCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjQyNzAKKworICAgICAgICBSZXZpZXdlZCBieSBXZW5zb24gSHNpZWguCisKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmg6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVyUHJveHk6OmVuY29kZUl0ZW1PdXRP
ZkxpbmVIZWxwZXIpOgorCiAyMDIxLTA1LTA4ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5j
b20+CiAKICAgICAgICAgW0dQVVBdIEEgc21hbGwgdmlkZW8gZWxlbWVudCBlbnRlcnMgZnVsbHNj
cmVlbiB3aXRoIHN0cmFuZ2UgYW5pbWF0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RJdGVtQnVmZmVyLmNwcAppbmRleCBiODVhYTcwZGVkNWE3YTc3MWQ4N2VmNjUwZWFmNjUzYjZm
ZGMwYmU0Li41YTcyNTAxNDE1NTAyNDRmY2YwZTVhZDZkNjVmN2E0MTQ3NjlhYzIyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RJdGVtQnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNwcApAQCAtNDQyLDE3ICs0NDIs
MjggQEAgdGVtcGxhdGU8dHlwZW5hbWUsIHR5cGVuYW1lID0gdm9pZD4gaW5saW5lIGNvbnN0ZXhw
ciBib29sIEhhc0lzVmFsaWQgPSBmYWxzZTsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBj
b25zdGV4cHIgYm9vbCBIYXNJc1ZhbGlkPFQsIHN0ZDo6dm9pZF90PGRlY2x0eXBlKHN0ZDo6ZGVj
bHZhbDxUPigpLmlzVmFsaWQoKSk+PiA9IHRydWU7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEl0ZW0+
Ci1zdGF0aWMgdHlwZW5hbWUgc3RkOjplbmFibGVfaWZfdDwhSGFzSXNWYWxpZDxJdGVtPiwgYm9v
bD4gY29weUludG8oY29uc3QgSXRlbUhhbmRsZSYgaXRlbUhhbmRsZSwgdWludDhfdCogZGVzdGlu
YXRpb25XaXRoT2Zmc2V0KQorc3RhdGljIGlubGluZSB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZl90
PCFIYXNJc1ZhbGlkPEl0ZW0+LCBib29sPiBpc1ZhbGlkKGNvbnN0IEl0ZW0mKQogewotICAgIG5l
dyAoZGVzdGluYXRpb25XaXRoT2Zmc2V0KSBJdGVtKGl0ZW1IYW5kbGUuZ2V0PEl0ZW0+KCkpOwog
ICAgIHJldHVybiB0cnVlOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBJdGVtPgotc3RhdGljIHR5
cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmX3Q8SGFzSXNWYWxpZDxJdGVtPiwgYm9vbD4gY29weUludG8o
Y29uc3QgSXRlbUhhbmRsZSYgaXRlbUhhbmRsZSwgdWludDhfdCogZGVzdGluYXRpb25XaXRoT2Zm
c2V0KQorc3RhdGljIGlubGluZSB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZl90PEhhc0lzVmFsaWQ8
SXRlbT4sIGJvb2w+IGlzVmFsaWQoY29uc3QgSXRlbSYgaXRlbSkKIHsKLSAgICBhdXRvKiBuZXdJ
dGVtID0gbmV3IChkZXN0aW5hdGlvbldpdGhPZmZzZXQpIEl0ZW0oaXRlbUhhbmRsZS5nZXQ8SXRl
bT4oKSk7Ci0gICAgcmV0dXJuIG5ld0l0ZW0tPmlzVmFsaWQoKTsKKyAgICByZXR1cm4gaXRlbS5p
c1ZhbGlkKCk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIEl0ZW0+CitzdGF0aWMgaW5saW5lIGJv
b2wgY29weUludG8odWludDhfdCogZGVzdGluYXRpb25XaXRoT2Zmc2V0LCBjb25zdCBJdGVtJiBp
dGVtKQoreworICAgIGF1dG8qIG5ld0l0ZW0gPSBuZXcgKGRlc3RpbmF0aW9uV2l0aE9mZnNldCkg
SXRlbShpdGVtKTsKKyAgICByZXR1cm4gaXNWYWxpZCgqbmV3SXRlbSk7Cit9CisKK3RlbXBsYXRl
PHR5cGVuYW1lIEl0ZW0+CitzdGF0aWMgaW5saW5lIGJvb2wgY29weUludG8odWludDhfdCogZGVz
dGluYXRpb25XaXRoT2Zmc2V0LCBjb25zdCBJdGVtSGFuZGxlJiBpdGVtSGFuZGxlKQoreworICAg
IHJldHVybiBjb3B5SW50byhkZXN0aW5hdGlvbldpdGhPZmZzZXQsIGl0ZW1IYW5kbGUuZ2V0PEl0
ZW0+KCkpOwogfQogCiBib29sIEl0ZW1IYW5kbGU6OnNhZmVDb3B5KEl0ZW1IYW5kbGUgZGVzdGlu
YXRpb24pIGNvbnN0CkBAIC00NjIsMTQxICs0NzMsMTUyIEBAIGJvb2wgSXRlbUhhbmRsZTo6c2Fm
ZUNvcHkoSXRlbUhhbmRsZSBkZXN0aW5hdGlvbikgY29uc3QKICAgICBhdXRvIGl0ZW1PZmZzZXQg
PSBkZXN0aW5hdGlvbi5kYXRhICsgc2l6ZW9mKHVpbnQ2NF90KTsKICAgICBzd2l0Y2ggKGl0ZW1U
eXBlKSB7CiAgICAgY2FzZSBJdGVtVHlwZTo6Q2xpcE91dFRvUGF0aDoKLSAgICAgICAgcmV0dXJu
IGNvcHlJbnRvPENsaXBPdXRUb1BhdGg+KCp0aGlzLCBpdGVtT2Zmc2V0KTsKKyAgICAgICAgcmV0
dXJuIGNvcHlJbnRvPENsaXBPdXRUb1BhdGg+KGl0ZW1PZmZzZXQsICp0aGlzKTsKICAgICBjYXNl
IEl0ZW1UeXBlOjpDbGlwUGF0aDoKLSAgICAgICAgcmV0dXJuIGNvcHlJbnRvPENsaXBQYXRoPigq
dGhpcywgaXRlbU9mZnNldCk7CisgICAgICAgIHJldHVybiBjb3B5SW50bzxDbGlwUGF0aD4oaXRl
bU9mZnNldCwgKnRoaXMpOwogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdGb2N1c1JpbmdQYXRoOgot
ICAgICAgICByZXR1cm4gY29weUludG88RHJhd0ZvY3VzUmluZ1BhdGg+KCp0aGlzLCBpdGVtT2Zm
c2V0KTsKKyAgICAgICAgcmV0dXJuIGNvcHlJbnRvPERyYXdGb2N1c1JpbmdQYXRoPihpdGVtT2Zm
c2V0LCAqdGhpcyk7CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ZvY3VzUmluZ1JlY3RzOgotICAg
ICAgICByZXR1cm4gY29weUludG88RHJhd0ZvY3VzUmluZ1JlY3RzPigqdGhpcywgaXRlbU9mZnNl
dCk7CisgICAgICAgIHJldHVybiBjb3B5SW50bzxEcmF3Rm9jdXNSaW5nUmVjdHM+KGl0ZW1PZmZz
ZXQsICp0aGlzKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3R2x5cGhzOgotICAgICAgICByZXR1
cm4gY29weUludG88RHJhd0dseXBocz4oKnRoaXMsIGl0ZW1PZmZzZXQpOworICAgICAgICByZXR1
cm4gY29weUludG88RHJhd0dseXBocz4oaXRlbU9mZnNldCwgKnRoaXMpOwogICAgIGNhc2UgSXRl
bVR5cGU6OkRyYXdJbWFnZUJ1ZmZlcjoKLSAgICAgICAgcmV0dXJuIGNvcHlJbnRvPERyYXdJbWFn
ZUJ1ZmZlcj4oKnRoaXMsIGl0ZW1PZmZzZXQpOworICAgICAgICByZXR1cm4gY29weUludG88RHJh
d0ltYWdlQnVmZmVyPihpdGVtT2Zmc2V0LCAqdGhpcyk7CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJh
d0xpbmVzRm9yVGV4dDoKLSAgICAgICAgcmV0dXJuIGNvcHlJbnRvPERyYXdMaW5lc0ZvclRleHQ+
KCp0aGlzLCBpdGVtT2Zmc2V0KTsKKyAgICAgICAgcmV0dXJuIGNvcHlJbnRvPERyYXdMaW5lc0Zv
clRleHQ+KGl0ZW1PZmZzZXQsICp0aGlzKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3TmF0aXZl
SW1hZ2U6Ci0gICAgICAgIHJldHVybiBjb3B5SW50bzxEcmF3TmF0aXZlSW1hZ2U+KCp0aGlzLCBp
dGVtT2Zmc2V0KTsKKyAgICAgICAgcmV0dXJuIGNvcHlJbnRvPERyYXdOYXRpdmVJbWFnZT4oaXRl
bU9mZnNldCwgKnRoaXMpOwogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdQYXR0ZXJuOgotICAgICAg
ICByZXR1cm4gY29weUludG88RHJhd1BhdHRlcm4+KCp0aGlzLCBpdGVtT2Zmc2V0KTsKKyAgICAg
ICAgcmV0dXJuIGNvcHlJbnRvPERyYXdQYXR0ZXJuPihpdGVtT2Zmc2V0LCAqdGhpcyk7CiAgICAg
Y2FzZSBJdGVtVHlwZTo6RHJhd1BhdGg6Ci0gICAgICAgIHJldHVybiBjb3B5SW50bzxEcmF3UGF0
aD4oKnRoaXMsIGl0ZW1PZmZzZXQpOworICAgICAgICByZXR1cm4gY29weUludG88RHJhd1BhdGg+
KGl0ZW1PZmZzZXQsICp0aGlzKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpGaWxsQ29tcG9zaXRlZFJl
Y3Q6Ci0gICAgICAgIHJldHVybiBjb3B5SW50bzxGaWxsQ29tcG9zaXRlZFJlY3Q+KCp0aGlzLCBp
dGVtT2Zmc2V0KTsKKyAgICAgICAgcmV0dXJuIGNvcHlJbnRvPEZpbGxDb21wb3NpdGVkUmVjdD4o
aXRlbU9mZnNldCwgKnRoaXMpOwogICAgIGNhc2UgSXRlbVR5cGU6OkZpbGxQYXRoOgotICAgICAg
ICByZXR1cm4gY29weUludG88RmlsbFBhdGg+KCp0aGlzLCBpdGVtT2Zmc2V0KTsKKyAgICAgICAg
cmV0dXJuIGNvcHlJbnRvPEZpbGxQYXRoPihpdGVtT2Zmc2V0LCAqdGhpcyk7CiAgICAgY2FzZSBJ
dGVtVHlwZTo6RmlsbFJlY3RXaXRoQ29sb3I6Ci0gICAgICAgIHJldHVybiBjb3B5SW50bzxGaWxs
UmVjdFdpdGhDb2xvcj4oKnRoaXMsIGl0ZW1PZmZzZXQpOworICAgICAgICByZXR1cm4gY29weUlu
dG88RmlsbFJlY3RXaXRoQ29sb3I+KGl0ZW1PZmZzZXQsICp0aGlzKTsKICAgICBjYXNlIEl0ZW1U
eXBlOjpGaWxsUmVjdFdpdGhHcmFkaWVudDoKLSAgICAgICAgcmV0dXJuIGNvcHlJbnRvPEZpbGxS
ZWN0V2l0aEdyYWRpZW50PigqdGhpcywgaXRlbU9mZnNldCk7CisgICAgICAgIHJldHVybiBjb3B5
SW50bzxGaWxsUmVjdFdpdGhHcmFkaWVudD4oaXRlbU9mZnNldCwgKnRoaXMpOwogICAgIGNhc2Ug
SXRlbVR5cGU6OkZpbGxSZWN0V2l0aFJvdW5kZWRIb2xlOgotICAgICAgICByZXR1cm4gY29weUlu
dG88RmlsbFJlY3RXaXRoUm91bmRlZEhvbGU+KCp0aGlzLCBpdGVtT2Zmc2V0KTsKKyAgICAgICAg
cmV0dXJuIGNvcHlJbnRvPEZpbGxSZWN0V2l0aFJvdW5kZWRIb2xlPihpdGVtT2Zmc2V0LCAqdGhp
cyk7CiAgICAgY2FzZSBJdGVtVHlwZTo6RmlsbFJvdW5kZWRSZWN0OgotICAgICAgICByZXR1cm4g
Y29weUludG88RmlsbFJvdW5kZWRSZWN0PigqdGhpcywgaXRlbU9mZnNldCk7CisgICAgICAgIHJl
dHVybiBjb3B5SW50bzxGaWxsUm91bmRlZFJlY3Q+KGl0ZW1PZmZzZXQsICp0aGlzKTsKICAgICBj
YXNlIEl0ZW1UeXBlOjpHZXRJbWFnZURhdGE6Ci0gICAgICAgIHJldHVybiBjb3B5SW50bzxHZXRJ
bWFnZURhdGE+KCp0aGlzLCBpdGVtT2Zmc2V0KTsKKyAgICAgICAgcmV0dXJuIGNvcHlJbnRvPEdl
dEltYWdlRGF0YT4oaXRlbU9mZnNldCwgKnRoaXMpOwogICAgIGNhc2UgSXRlbVR5cGU6OlB1dElt
YWdlRGF0YToKLSAgICAgICAgcmV0dXJuIGNvcHlJbnRvPFB1dEltYWdlRGF0YT4oKnRoaXMsIGl0
ZW1PZmZzZXQpOworICAgICAgICByZXR1cm4gY29weUludG88UHV0SW1hZ2VEYXRhPihpdGVtT2Zm
c2V0LCAqdGhpcyk7CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0TGluZURhc2g6Ci0gICAgICAgIHJl
dHVybiBjb3B5SW50bzxTZXRMaW5lRGFzaD4oKnRoaXMsIGl0ZW1PZmZzZXQpOworICAgICAgICBy
ZXR1cm4gY29weUludG88U2V0TGluZURhc2g+KGl0ZW1PZmZzZXQsICp0aGlzKTsKICAgICBjYXNl
IEl0ZW1UeXBlOjpTZXRTdGF0ZToKLSAgICAgICAgcmV0dXJuIGNvcHlJbnRvPFNldFN0YXRlPigq
dGhpcywgaXRlbU9mZnNldCk7CisgICAgICAgIHJldHVybiBjb3B5SW50bzxTZXRTdGF0ZT4oaXRl
bU9mZnNldCwgKnRoaXMpOwogICAgIGNhc2UgSXRlbVR5cGU6OlN0cm9rZVBhdGg6Ci0gICAgICAg
IHJldHVybiBjb3B5SW50bzxTdHJva2VQYXRoPigqdGhpcywgaXRlbU9mZnNldCk7CisgICAgICAg
IHJldHVybiBjb3B5SW50bzxTdHJva2VQYXRoPihpdGVtT2Zmc2V0LCAqdGhpcyk7CiAgICAgY2Fz
ZSBJdGVtVHlwZTo6QXBwbHlEZXZpY2VTY2FsZUZhY3RvcjoKLSAgICAgICAgcmV0dXJuIGNvcHlJ
bnRvPEFwcGx5RGV2aWNlU2NhbGVGYWN0b3I+KCp0aGlzLCBpdGVtT2Zmc2V0KTsKKyAgICAgICAg
cmV0dXJuIGNvcHlJbnRvPEFwcGx5RGV2aWNlU2NhbGVGYWN0b3I+KGl0ZW1PZmZzZXQsICp0aGlz
KTsKICNpZiBVU0UoQ0cpCiAgICAgY2FzZSBJdGVtVHlwZTo6QXBwbHlGaWxsUGF0dGVybjoKLSAg
ICAgICAgcmV0dXJuIGNvcHlJbnRvPEFwcGx5RmlsbFBhdHRlcm4+KCp0aGlzLCBpdGVtT2Zmc2V0
KTsKKyAgICAgICAgcmV0dXJuIGNvcHlJbnRvPEFwcGx5RmlsbFBhdHRlcm4+KGl0ZW1PZmZzZXQs
ICp0aGlzKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpBcHBseVN0cm9rZVBhdHRlcm46Ci0gICAgICAg
IHJldHVybiBjb3B5SW50bzxBcHBseVN0cm9rZVBhdHRlcm4+KCp0aGlzLCBpdGVtT2Zmc2V0KTsK
KyAgICAgICAgcmV0dXJuIGNvcHlJbnRvPEFwcGx5U3Ryb2tlUGF0dGVybj4oaXRlbU9mZnNldCwg
KnRoaXMpOwogI2VuZGlmCiAgICAgY2FzZSBJdGVtVHlwZTo6QmVnaW5DbGlwVG9EcmF3aW5nQ29t
bWFuZHM6Ci0gICAgICAgIHJldHVybiBjb3B5SW50bzxCZWdpbkNsaXBUb0RyYXdpbmdDb21tYW5k
cz4oKnRoaXMsIGl0ZW1PZmZzZXQpOworICAgICAgICByZXR1cm4gY29weUludG88QmVnaW5DbGlw
VG9EcmF3aW5nQ29tbWFuZHM+KGl0ZW1PZmZzZXQsICp0aGlzKTsKICAgICBjYXNlIEl0ZW1UeXBl
OjpCZWdpblRyYW5zcGFyZW5jeUxheWVyOgotICAgICAgICByZXR1cm4gY29weUludG88QmVnaW5U
cmFuc3BhcmVuY3lMYXllcj4oKnRoaXMsIGl0ZW1PZmZzZXQpOworICAgICAgICByZXR1cm4gY29w
eUludG88QmVnaW5UcmFuc3BhcmVuY3lMYXllcj4oaXRlbU9mZnNldCwgKnRoaXMpOwogICAgIGNh
c2UgSXRlbVR5cGU6OkNsZWFyUmVjdDoKLSAgICAgICAgcmV0dXJuIGNvcHlJbnRvPENsZWFyUmVj
dD4oKnRoaXMsIGl0ZW1PZmZzZXQpOworICAgICAgICByZXR1cm4gY29weUludG88Q2xlYXJSZWN0
PihpdGVtT2Zmc2V0LCAqdGhpcyk7CiAgICAgY2FzZSBJdGVtVHlwZTo6Q2xlYXJTaGFkb3c6Ci0g
ICAgICAgIHJldHVybiBjb3B5SW50bzxDbGVhclNoYWRvdz4oKnRoaXMsIGl0ZW1PZmZzZXQpOwor
ICAgICAgICByZXR1cm4gY29weUludG88Q2xlYXJTaGFkb3c+KGl0ZW1PZmZzZXQsICp0aGlzKTsK
ICAgICBjYXNlIEl0ZW1UeXBlOjpDbGlwOgotICAgICAgICByZXR1cm4gY29weUludG88Q2xpcD4o
KnRoaXMsIGl0ZW1PZmZzZXQpOworICAgICAgICByZXR1cm4gY29weUludG88Q2xpcD4oaXRlbU9m
ZnNldCwgKnRoaXMpOwogICAgIGNhc2UgSXRlbVR5cGU6OkNsaXBPdXQ6Ci0gICAgICAgIHJldHVy
biBjb3B5SW50bzxDbGlwT3V0PigqdGhpcywgaXRlbU9mZnNldCk7CisgICAgICAgIHJldHVybiBj
b3B5SW50bzxDbGlwT3V0PihpdGVtT2Zmc2V0LCAqdGhpcyk7CiAgICAgY2FzZSBJdGVtVHlwZTo6
Q2xpcFRvSW1hZ2VCdWZmZXI6Ci0gICAgICAgIHJldHVybiBjb3B5SW50bzxDbGlwVG9JbWFnZUJ1
ZmZlcj4oKnRoaXMsIGl0ZW1PZmZzZXQpOworICAgICAgICByZXR1cm4gY29weUludG88Q2xpcFRv
SW1hZ2VCdWZmZXI+KGl0ZW1PZmZzZXQsICp0aGlzKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpDb25j
YXRlbmF0ZUNUTToKLSAgICAgICAgcmV0dXJuIGNvcHlJbnRvPENvbmNhdGVuYXRlQ1RNPigqdGhp
cywgaXRlbU9mZnNldCk7CisgICAgICAgIHJldHVybiBjb3B5SW50bzxDb25jYXRlbmF0ZUNUTT4o
aXRlbU9mZnNldCwgKnRoaXMpOwogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdEb3RzRm9yRG9jdW1l
bnRNYXJrZXI6Ci0gICAgICAgIHJldHVybiBjb3B5SW50bzxEcmF3RG90c0ZvckRvY3VtZW50TWFy
a2VyPigqdGhpcywgaXRlbU9mZnNldCk7CisgICAgICAgIHJldHVybiBjb3B5SW50bzxEcmF3RG90
c0ZvckRvY3VtZW50TWFya2VyPihpdGVtT2Zmc2V0LCAqdGhpcyk7CiAgICAgY2FzZSBJdGVtVHlw
ZTo6RHJhd0VsbGlwc2U6Ci0gICAgICAgIHJldHVybiBjb3B5SW50bzxEcmF3RWxsaXBzZT4oKnRo
aXMsIGl0ZW1PZmZzZXQpOworICAgICAgICByZXR1cm4gY29weUludG88RHJhd0VsbGlwc2U+KGl0
ZW1PZmZzZXQsICp0aGlzKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3TGluZToKLSAgICAgICAg
cmV0dXJuIGNvcHlJbnRvPERyYXdMaW5lPigqdGhpcywgaXRlbU9mZnNldCk7CisgICAgICAgIHJl
dHVybiBjb3B5SW50bzxEcmF3TGluZT4oaXRlbU9mZnNldCwgKnRoaXMpOwogICAgIGNhc2UgSXRl
bVR5cGU6OkRyYXdSZWN0OgotICAgICAgICByZXR1cm4gY29weUludG88RHJhd1JlY3Q+KCp0aGlz
LCBpdGVtT2Zmc2V0KTsKKyAgICAgICAgcmV0dXJuIGNvcHlJbnRvPERyYXdSZWN0PihpdGVtT2Zm
c2V0LCAqdGhpcyk7CiAgICAgY2FzZSBJdGVtVHlwZTo6RW5kQ2xpcFRvRHJhd2luZ0NvbW1hbmRz
OgotICAgICAgICByZXR1cm4gY29weUludG88RW5kQ2xpcFRvRHJhd2luZ0NvbW1hbmRzPigqdGhp
cywgaXRlbU9mZnNldCk7CisgICAgICAgIHJldHVybiBjb3B5SW50bzxFbmRDbGlwVG9EcmF3aW5n
Q29tbWFuZHM+KGl0ZW1PZmZzZXQsICp0aGlzKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpFbmRUcmFu
c3BhcmVuY3lMYXllcjoKLSAgICAgICAgcmV0dXJuIGNvcHlJbnRvPEVuZFRyYW5zcGFyZW5jeUxh
eWVyPigqdGhpcywgaXRlbU9mZnNldCk7CisgICAgICAgIHJldHVybiBjb3B5SW50bzxFbmRUcmFu
c3BhcmVuY3lMYXllcj4oaXRlbU9mZnNldCwgKnRoaXMpOwogICAgIGNhc2UgSXRlbVR5cGU6OkZp
bGxFbGxpcHNlOgotICAgICAgICByZXR1cm4gY29weUludG88RmlsbEVsbGlwc2U+KCp0aGlzLCBp
dGVtT2Zmc2V0KTsKKyAgICAgICAgcmV0dXJuIGNvcHlJbnRvPEZpbGxFbGxpcHNlPihpdGVtT2Zm
c2V0LCAqdGhpcyk7CiAjaWYgRU5BQkxFKElOTElORV9QQVRIX0RBVEEpCiAgICAgY2FzZSBJdGVt
VHlwZTo6RmlsbElubGluZVBhdGg6Ci0gICAgICAgIHJldHVybiBjb3B5SW50bzxGaWxsSW5saW5l
UGF0aD4oKnRoaXMsIGl0ZW1PZmZzZXQpOworICAgICAgICByZXR1cm4gY29weUludG88RmlsbElu
bGluZVBhdGg+KGl0ZW1PZmZzZXQsICp0aGlzKTsKICNlbmRpZgogICAgIGNhc2UgSXRlbVR5cGU6
OkZpbGxSZWN0OgotICAgICAgICByZXR1cm4gY29weUludG88RmlsbFJlY3Q+KCp0aGlzLCBpdGVt
T2Zmc2V0KTsKKyAgICAgICAgcmV0dXJuIGNvcHlJbnRvPEZpbGxSZWN0PihpdGVtT2Zmc2V0LCAq
dGhpcyk7CiAgICAgY2FzZSBJdGVtVHlwZTo6Rmx1c2hDb250ZXh0OgotICAgICAgICByZXR1cm4g
Y29weUludG88Rmx1c2hDb250ZXh0PigqdGhpcywgaXRlbU9mZnNldCk7CisgICAgICAgIHJldHVy
biBjb3B5SW50bzxGbHVzaENvbnRleHQ+KGl0ZW1PZmZzZXQsICp0aGlzKTsKICAgICBjYXNlIEl0
ZW1UeXBlOjpNZXRhQ29tbWFuZENoYW5nZURlc3RpbmF0aW9uSW1hZ2VCdWZmZXI6Ci0gICAgICAg
IHJldHVybiBjb3B5SW50bzxNZXRhQ29tbWFuZENoYW5nZURlc3RpbmF0aW9uSW1hZ2VCdWZmZXI+
KCp0aGlzLCBpdGVtT2Zmc2V0KTsKKyAgICAgICAgcmV0dXJuIGNvcHlJbnRvPE1ldGFDb21tYW5k
Q2hhbmdlRGVzdGluYXRpb25JbWFnZUJ1ZmZlcj4oaXRlbU9mZnNldCwgKnRoaXMpOwogICAgIGNh
c2UgSXRlbVR5cGU6Ok1ldGFDb21tYW5kQ2hhbmdlSXRlbUJ1ZmZlcjoKLSAgICAgICAgcmV0dXJu
IGNvcHlJbnRvPE1ldGFDb21tYW5kQ2hhbmdlSXRlbUJ1ZmZlcj4oKnRoaXMsIGl0ZW1PZmZzZXQp
OworICAgICAgICByZXR1cm4gY29weUludG88TWV0YUNvbW1hbmRDaGFuZ2VJdGVtQnVmZmVyPihp
dGVtT2Zmc2V0LCAqdGhpcyk7CiAjaWYgRU5BQkxFKFZJREVPKQogICAgIGNhc2UgSXRlbVR5cGU6
OlBhaW50RnJhbWVGb3JNZWRpYToKLSAgICAgICAgcmV0dXJuIGNvcHlJbnRvPFBhaW50RnJhbWVG
b3JNZWRpYT4oKnRoaXMsIGl0ZW1PZmZzZXQpOworICAgICAgICByZXR1cm4gY29weUludG88UGFp
bnRGcmFtZUZvck1lZGlhPihpdGVtT2Zmc2V0LCAqdGhpcyk7CiAjZW5kaWYKICAgICBjYXNlIEl0
ZW1UeXBlOjpSZXN0b3JlOgotICAgICAgICByZXR1cm4gY29weUludG88UmVzdG9yZT4oKnRoaXMs
IGl0ZW1PZmZzZXQpOworICAgICAgICByZXR1cm4gY29weUludG88UmVzdG9yZT4oaXRlbU9mZnNl
dCwgKnRoaXMpOwogICAgIGNhc2UgSXRlbVR5cGU6OlJvdGF0ZToKLSAgICAgICAgcmV0dXJuIGNv
cHlJbnRvPFJvdGF0ZT4oKnRoaXMsIGl0ZW1PZmZzZXQpOworICAgICAgICByZXR1cm4gY29weUlu
dG88Um90YXRlPihpdGVtT2Zmc2V0LCAqdGhpcyk7CiAgICAgY2FzZSBJdGVtVHlwZTo6U2F2ZToK
LSAgICAgICAgcmV0dXJuIGNvcHlJbnRvPFNhdmU+KCp0aGlzLCBpdGVtT2Zmc2V0KTsKKyAgICAg
ICAgcmV0dXJuIGNvcHlJbnRvPFNhdmU+KGl0ZW1PZmZzZXQsICp0aGlzKTsKICAgICBjYXNlIEl0
ZW1UeXBlOjpTY2FsZToKLSAgICAgICAgcmV0dXJuIGNvcHlJbnRvPFNjYWxlPigqdGhpcywgaXRl
bU9mZnNldCk7CisgICAgICAgIHJldHVybiBjb3B5SW50bzxTY2FsZT4oaXRlbU9mZnNldCwgKnRo
aXMpOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldENUTToKLSAgICAgICAgcmV0dXJuIGNvcHlJbnRv
PFNldENUTT4oKnRoaXMsIGl0ZW1PZmZzZXQpOworICAgICAgICByZXR1cm4gY29weUludG88U2V0
Q1RNPihpdGVtT2Zmc2V0LCAqdGhpcyk7CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmls
bENvbG9yOgotICAgICAgICByZXR1cm4gY29weUludG88U2V0SW5saW5lRmlsbENvbG9yPigqdGhp
cywgaXRlbU9mZnNldCk7CisgICAgICAgIHJldHVybiBjb3B5SW50bzxTZXRJbmxpbmVGaWxsQ29s
b3I+KGl0ZW1PZmZzZXQsICp0aGlzKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxs
R3JhZGllbnQ6Ci0gICAgICAgIHJldHVybiBjb3B5SW50bzxTZXRJbmxpbmVGaWxsR3JhZGllbnQ+
KCp0aGlzLCBpdGVtT2Zmc2V0KTsKKyAgICAgICAgcmV0dXJuIGNvcHlJbnRvPFNldElubGluZUZp
bGxHcmFkaWVudD4oaXRlbU9mZnNldCwgKnRoaXMpOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldElu
bGluZVN0cm9rZUNvbG9yOgotICAgICAgICByZXR1cm4gY29weUludG88U2V0SW5saW5lU3Ryb2tl
Q29sb3I+KCp0aGlzLCBpdGVtT2Zmc2V0KTsKKyAgICAgICAgcmV0dXJuIGNvcHlJbnRvPFNldElu
bGluZVN0cm9rZUNvbG9yPihpdGVtT2Zmc2V0LCAqdGhpcyk7CiAgICAgY2FzZSBJdGVtVHlwZTo6
U2V0TGluZUNhcDoKLSAgICAgICAgcmV0dXJuIGNvcHlJbnRvPFNldExpbmVDYXA+KCp0aGlzLCBp
dGVtT2Zmc2V0KTsKKyAgICAgICAgcmV0dXJuIGNvcHlJbnRvPFNldExpbmVDYXA+KGl0ZW1PZmZz
ZXQsICp0aGlzKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lSm9pbjoKLSAgICAgICAgcmV0
dXJuIGNvcHlJbnRvPFNldExpbmVKb2luPigqdGhpcywgaXRlbU9mZnNldCk7CisgICAgICAgIHJl
dHVybiBjb3B5SW50bzxTZXRMaW5lSm9pbj4oaXRlbU9mZnNldCwgKnRoaXMpOwogICAgIGNhc2Ug
SXRlbVR5cGU6OlNldE1pdGVyTGltaXQ6Ci0gICAgICAgIHJldHVybiBjb3B5SW50bzxTZXRNaXRl
ckxpbWl0PigqdGhpcywgaXRlbU9mZnNldCk7CisgICAgICAgIHJldHVybiBjb3B5SW50bzxTZXRN
aXRlckxpbWl0PihpdGVtT2Zmc2V0LCAqdGhpcyk7CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0U3Ry
b2tlVGhpY2tuZXNzOgotICAgICAgICByZXR1cm4gY29weUludG88U2V0U3Ryb2tlVGhpY2tuZXNz
PigqdGhpcywgaXRlbU9mZnNldCk7CisgICAgICAgIHJldHVybiBjb3B5SW50bzxTZXRTdHJva2VU
aGlja25lc3M+KGl0ZW1PZmZzZXQsICp0aGlzKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpTdHJva2VF
bGxpcHNlOgotICAgICAgICByZXR1cm4gY29weUludG88U3Ryb2tlRWxsaXBzZT4oKnRoaXMsIGl0
ZW1PZmZzZXQpOworICAgICAgICByZXR1cm4gY29weUludG88U3Ryb2tlRWxsaXBzZT4oaXRlbU9m
ZnNldCwgKnRoaXMpOwogI2lmIEVOQUJMRShJTkxJTkVfUEFUSF9EQVRBKQogICAgIGNhc2UgSXRl
bVR5cGU6OlN0cm9rZUlubGluZVBhdGg6Ci0gICAgICAgIHJldHVybiBjb3B5SW50bzxTdHJva2VJ
bmxpbmVQYXRoPigqdGhpcywgaXRlbU9mZnNldCk7CisgICAgICAgIHJldHVybiBjb3B5SW50bzxT
dHJva2VJbmxpbmVQYXRoPihpdGVtT2Zmc2V0LCAqdGhpcyk7CiAjZW5kaWYKICAgICBjYXNlIEl0
ZW1UeXBlOjpTdHJva2VSZWN0OgotICAgICAgICByZXR1cm4gY29weUludG88U3Ryb2tlUmVjdD4o
KnRoaXMsIGl0ZW1PZmZzZXQpOworICAgICAgICByZXR1cm4gY29weUludG88U3Ryb2tlUmVjdD4o
aXRlbU9mZnNldCwgKnRoaXMpOwogICAgIGNhc2UgSXRlbVR5cGU6OlN0cm9rZUxpbmU6Ci0gICAg
ICAgIHJldHVybiBjb3B5SW50bzxTdHJva2VMaW5lPigqdGhpcywgaXRlbU9mZnNldCk7CisgICAg
ICAgIHJldHVybiBjb3B5SW50bzxTdHJva2VMaW5lPihpdGVtT2Zmc2V0LCAqdGhpcyk7CiAgICAg
Y2FzZSBJdGVtVHlwZTo6VHJhbnNsYXRlOgotICAgICAgICByZXR1cm4gY29weUludG88VHJhbnNs
YXRlPigqdGhpcywgaXRlbU9mZnNldCk7CisgICAgICAgIHJldHVybiBjb3B5SW50bzxUcmFuc2xh
dGU+KGl0ZW1PZmZzZXQsICp0aGlzKTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCiti
b29sIHNhZmVDb3B5KEl0ZW1IYW5kbGUgZGVzdGluYXRpb24sIGNvbnN0IERpc3BsYXlMaXN0SXRl
bSYgc291cmNlKQoreworICAgIHJldHVybiBXVEY6OnZpc2l0KFsmXShjb25zdCBhdXRvJiBzb3Vy
Y2UpIHsKKyAgICAgICAgdXNpbmcgRGlzcGxheUxpc3RJdGVtVHlwZSA9IHR5cGVuYW1lIFdURjo6
UmVtb3ZlQ1ZBbmRSZWZlcmVuY2U8ZGVjbHR5cGUoc291cmNlKT46OnR5cGU7CisgICAgICAgIGNv
bnN0ZXhwciBhdXRvIGl0ZW1UeXBlID0gRGlzcGxheUxpc3RJdGVtVHlwZTo6aXRlbVR5cGU7Cisg
ICAgICAgIGRlc3RpbmF0aW9uLmRhdGFbMF0gPSBzdGF0aWNfY2FzdDx1aW50OF90PihpdGVtVHlw
ZSk7CisgICAgICAgIGF1dG8gaXRlbU9mZnNldCA9IGRlc3RpbmF0aW9uLmRhdGEgKyBzaXplb2Yo
dWludDY0X3QpOworICAgICAgICByZXR1cm4gY29weUludG88RGlzcGxheUxpc3RJdGVtVHlwZT4o
aXRlbU9mZnNldCwgc291cmNlKTsKKyAgICB9LCBzb3VyY2UpOworfQorCiBJdGVtQnVmZmVyOjpJ
dGVtQnVmZmVyKEl0ZW1CdWZmZXJIYW5kbGVzJiYgaGFuZGxlcykKICAgICA6IG1fcmVhZE9ubHlC
dWZmZXJzKFdURk1vdmUoaGFuZGxlcykpCiB7CkBAIC02ODcsNyArNzA5LDcgQEAgRGlkQ2hhbmdl
SXRlbUJ1ZmZlciBJdGVtQnVmZmVyOjpzd2FwV3JpdGFibGVCdWZmZXJJZk5lZWRlZChzaXplX3Qg
bnVtYmVyT2ZCeXRlcykKICAgICByZXR1cm4gaGFkUHJldmlvdXNCdWZmZXIgPyBEaWRDaGFuZ2VJ
dGVtQnVmZmVyOjpZZXMgOiBEaWRDaGFuZ2VJdGVtQnVmZmVyOjpObzsKIH0KIAotdm9pZCBJdGVt
QnVmZmVyOjphcHBlbmQoSXRlbUhhbmRsZSB0ZW1wb3JhcnlJdGVtKQordm9pZCBJdGVtQnVmZmVy
OjphcHBlbmQoY29uc3QgRGlzcGxheUxpc3RJdGVtJiB0ZW1wb3JhcnlJdGVtKQogewogICAgIGF1
dG8gcmVxdWlyZWRTaXplRm9ySXRlbSA9IG1fd3JpdGluZ0NsaWVudC0+cmVxdWlyZWRTaXplRm9y
SXRlbSh0ZW1wb3JhcnlJdGVtKTsKICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBvdXRPZkxpbmVJ
dGVtOwpAQCAtNzA1LDcgKzcyNyw3IEBAIHZvaWQgSXRlbUJ1ZmZlcjo6YXBwZW5kKEl0ZW1IYW5k
bGUgdGVtcG9yYXJ5SXRlbSkKIAogICAgIGF1dG8gYnVmZmVyQ2hhbmdlZCA9IHN3YXBXcml0YWJs
ZUJ1ZmZlcklmTmVlZGVkKGFkZGl0aW9uYWxDYXBhY2l0eUZvckVuY29kZWRJdGVtKTsKIAotICAg
IG1fd3JpdGFibGVCdWZmZXIuZGF0YVttX3dyaXR0ZW5OdW1iZXJPZkJ5dGVzXSA9IHN0YXRpY19j
YXN0PHVpbnQ4X3Q+KHRlbXBvcmFyeUl0ZW0udHlwZSgpKTsKKyAgICBtX3dyaXRhYmxlQnVmZmVy
LmRhdGFbbV93cml0dGVuTnVtYmVyT2ZCeXRlc10gPSBzdGF0aWNfY2FzdDx1aW50OF90PihkaXNw
bGF5TGlzdEl0ZW1UeXBlKHRlbXBvcmFyeUl0ZW0pKTsKICAgICByZWludGVycHJldF9jYXN0PHVp
bnQ2NF90Kj4obV93cml0YWJsZUJ1ZmZlci5kYXRhICsgbV93cml0dGVuTnVtYmVyT2ZCeXRlcylb
MV0gPSBkYXRhTGVuZ3RoOwogICAgIGF1dG8qIGxvY2F0aW9uID0gbV93cml0YWJsZUJ1ZmZlci5k
YXRhICsgbV93cml0dGVuTnVtYmVyT2ZCeXRlcyArIDIgKiBzaXplb2YodWludDY0X3QpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RJdGVtQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmgKaW5kZXggYzQ0MWFjMzVhOTVm
NGNjNDljY2YzYjY3M2YyOWViY2M2MjUwMTExYS4uYjk5MTc1N2MyMmRjNzdlMGQ4N2JjM2M1Y2Ix
ZDAxOWZkMDdjNDM4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIu
aApAQCAtODIsNiArODIsOCBAQCBzdHJ1Y3QgSXRlbUhhbmRsZSB7CiAgICAgYm9vbCBzYWZlQ29w
eShJdGVtSGFuZGxlIGRlc3RpbmF0aW9uKSBjb25zdDsKIH07CiAKK2Jvb2wgc2FmZUNvcHkoSXRl
bUhhbmRsZSBkZXN0aW5hdGlvbiwgY29uc3QgRGlzcGxheUxpc3RJdGVtJiBzb3VyY2UpOworCiBl
bnVtIGNsYXNzIERpZENoYW5nZUl0ZW1CdWZmZXIgOiBib29sIHsgTm8sIFllcyB9OwogCiBjbGFz
cyBJdGVtQnVmZmVyV3JpdGluZ0NsaWVudCB7CkBAIC05NSwxNyArOTcsMTcgQEAgcHVibGljOgog
ICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIAotICAgIHZpcnR1YWwgT3B0aW9uYWw8c3RkOjpz
aXplX3Q+IHJlcXVpcmVkU2l6ZUZvckl0ZW0oSXRlbUhhbmRsZSkgY29uc3QKKyAgICB2aXJ0dWFs
IE9wdGlvbmFsPHN0ZDo6c2l6ZV90PiByZXF1aXJlZFNpemVGb3JJdGVtKGNvbnN0IERpc3BsYXlM
aXN0SXRlbSYpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAg
IH0KIAotICAgIHZpcnR1YWwgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZW5jb2RlSXRlbU91dE9mTGlu
ZShJdGVtSGFuZGxlKSBjb25zdAorICAgIHZpcnR1YWwgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZW5j
b2RlSXRlbU91dE9mTGluZShjb25zdCBEaXNwbGF5TGlzdEl0ZW0mKSBjb25zdAogICAgIHsKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIGVuY29kZUl0
ZW1JbmxpbmUoSXRlbUhhbmRsZSwgdWludDhfdCopIGNvbnN0CisgICAgdmlydHVhbCB2b2lkIGVu
Y29kZUl0ZW1JbmxpbmUoY29uc3QgRGlzcGxheUxpc3RJdGVtJiwgdWludDhfdCopIGNvbnN0CiAg
ICAgewogICAgIH0KIApAQCAtMTc1LDE4ICsxNzcsOSBAQCBwdWJsaWM6CiAgICAgewogICAgICAg
ICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxUPjo6dmFsdWUg
PT0gVDo6aXNJbmxpbmVJdGVtKTsKIAotICAgICAgICBpZiAoIVQ6OmlzSW5saW5lSXRlbSkgewor
ICAgICAgICBpZiBjb25zdGV4cHIgKCFUOjppc0lubGluZUl0ZW0pIHsKICAgICAgICAgICAgIFJF
TEVBU0VfQVNTRVJUKG1fd3JpdGluZ0NsaWVudCk7Ci0jaWYgQ09NUElMRVIoTVNWQykKLSAgICAg
ICAgICAgIF9fZGVjbHNwZWMoYWxpZ24oOCkpIHR5cGVkZWYgdWludDhfdCBFbmNvZGluZ0J1ZmZl
cltzaXplb2YodWludDY0X3QpICsgc2l6ZW9mKFQpXTsKLSNlbHNlCi0gICAgICAgICAgICB1c2lu
ZyBFbmNvZGluZ0J1ZmZlciBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkICg4KSkpID0gdWludDhfdFtz
aXplb2YodWludDY0X3QpICsgc2l6ZW9mKFQpXTsKLSNlbmRpZgotICAgICAgICAgICAgc3RhdGlj
IEVuY29kaW5nQnVmZmVyIHRlbXBvcmFyeUl0ZW1CdWZmZXI7Ci0gICAgICAgICAgICB0ZW1wb3Jh
cnlJdGVtQnVmZmVyWzBdID0gc3RhdGljX2Nhc3Q8dWludDhfdD4oVDo6aXRlbVR5cGUpOwotICAg
ICAgICAgICAgbmV3ICh0ZW1wb3JhcnlJdGVtQnVmZmVyICsgc2l6ZW9mKHVpbnQ2NF90KSkgVChz
dGQ6OmZvcndhcmQ8QXJncz4oYXJncykuLi4pOwotICAgICAgICAgICAgYXBwZW5kKHsgdGVtcG9y
YXJ5SXRlbUJ1ZmZlciB9KTsKLSAgICAgICAgICAgIEl0ZW1IYW5kbGUgeyB0ZW1wb3JhcnlJdGVt
QnVmZmVyIH0uZGVzdHJveSgpOworICAgICAgICAgICAgYXBwZW5kKERpc3BsYXlMaXN0SXRlbShU
KHN0ZDo6Zm9yd2FyZDxBcmdzPihhcmdzKS4uLikpKTsKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQogCkBAIC0yMDUsNyArMTk4LDcgQEAgcHJpdmF0ZToKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGRpZEFwcGVuZERhdGEoc2l6ZV90IG51bWJlck9mQnl0ZXMsIERpZENoYW5nZUl0ZW1C
dWZmZXIpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgRGlkQ2hhbmdlSXRlbUJ1ZmZlciBzd2FwV3Jp
dGFibGVCdWZmZXJJZk5lZWRlZChzaXplX3QgbnVtYmVyT2ZCeXRlcyk7Ci0gICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBhcHBlbmQoSXRlbUhhbmRsZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBh
cHBlbmQoY29uc3QgRGlzcGxheUxpc3RJdGVtJik7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwg
Y2xhc3MuLi4gQXJncz4gdm9pZCB1bmNoZWNrZWRBcHBlbmQoRGlkQ2hhbmdlSXRlbUJ1ZmZlciBk
aWRDaGFuZ2VJdGVtQnVmZmVyLCBBcmdzJiYuLi4gYXJncykKICAgICB7CiAgICAgICAgIGF1dG8q
IHN0YXJ0T2ZJdGVtID0gJm1fd3JpdGFibGVCdWZmZXIuZGF0YVttX3dyaXR0ZW5OdW1iZXJPZkJ5
dGVzXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmNwcAppbmRleCA0YTY2
M2FmYTc2MGU2OWZmMmM1NmY1NTMyMjRlZTA2YTI5ZDM0NGJjLi5hMWUwOTFlNDU3ZjU4OWRjODMy
NGYwOTRmNjdhMTdlMjg0NmZiYjdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRl
bVR5cGUuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTI1OSw2ICsyNTksMjEgQEAgc2l6ZV90IHBhZGRlZFNpemVPZlR5cGVBbmRJdGVt
SW5CeXRlcyhJdGVtVHlwZSB0eXBlKQogICAgIHJldHVybiBzaXplb2YodWludDY0X3QpICsgcm91
bmRVcFRvTXVsdGlwbGVPZihhbGlnbm9mKHVpbnQ2NF90KSwgc2l6ZU9mSXRlbUluQnl0ZXModHlw
ZSkpOwogfQogCitzaXplX3QgcGFkZGVkU2l6ZU9mVHlwZUFuZEl0ZW1JbkJ5dGVzKGNvbnN0IERp
c3BsYXlMaXN0SXRlbSYgZGlzcGxheUxpc3RJdGVtKQoreworICAgIGF1dG8gaXRlbVNpemUgPSBX
VEY6OnZpc2l0KFtdKGNvbnN0IGF1dG8mIGl0ZW0pIHsKKyAgICAgICAgcmV0dXJuIHNpemVvZihp
dGVtKTsKKyAgICB9LCBkaXNwbGF5TGlzdEl0ZW0pOworICAgIHJldHVybiBzaXplb2YodWludDY0
X3QpICsgcm91bmRVcFRvTXVsdGlwbGVPZihhbGlnbm9mKHVpbnQ2NF90KSwgaXRlbVNpemUpOwor
fQorCitJdGVtVHlwZSBkaXNwbGF5TGlzdEl0ZW1UeXBlKGNvbnN0IERpc3BsYXlMaXN0SXRlbSYg
ZGlzcGxheUxpc3RJdGVtKQoreworICAgIHJldHVybiBXVEY6OnZpc2l0KFtdKGNvbnN0IGF1dG8m
IGl0ZW0pIHsKKyAgICAgICAgcmV0dXJuIGl0ZW0uaXRlbVR5cGU7CisgICAgfSwgZGlzcGxheUxp
c3RJdGVtKTsKK30KKwogYm9vbCBpc0lubGluZUl0ZW0oSXRlbVR5cGUgdHlwZSkKIHsKICAgICAv
KiBTZWUgdGhlIGNvbW1lbnQgYXQgdGhlIHRvcCBvZiBEaXNwbGF5TGlzdEl0ZW1zLmggZm9yIHdo
YXQgdGhpcyBtZWFucy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCmluZGV4IGJiMzc3
NWFmNmM5MzZkNGFlYmFkNzRiYmU5NTI1NmE1MDNhMTZjNDIuLjFlYjgxNTZkMTY2Mzc4ZWJmMDVl
ZTZiYzJjZWUxMDFmOTJlMjZjNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaApA
QCAtMjI4Miw2ICsyMjgyLDgzIEBAIHByaXZhdGU6CiAgICAgUmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyIG1faWRlbnRpZmllcjsKIH07CiAKK3VzaW5nIERpc3BsYXlMaXN0SXRlbSA9IFZhcmlh
bnQKKyAgICA8IEFwcGx5RGV2aWNlU2NhbGVGYWN0b3IKKyAgICAsIEJlZ2luQ2xpcFRvRHJhd2lu
Z0NvbW1hbmRzCisgICAgLCBCZWdpblRyYW5zcGFyZW5jeUxheWVyCisgICAgLCBDbGVhclJlY3QK
KyAgICAsIENsZWFyU2hhZG93CisgICAgLCBDbGlwCisgICAgLCBDbGlwT3V0CisgICAgLCBDbGlw
T3V0VG9QYXRoCisgICAgLCBDbGlwUGF0aAorICAgICwgQ2xpcFRvSW1hZ2VCdWZmZXIKKyAgICAs
IENvbmNhdGVuYXRlQ1RNCisgICAgLCBEcmF3RG90c0ZvckRvY3VtZW50TWFya2VyCisgICAgLCBE
cmF3RWxsaXBzZQorICAgICwgRHJhd0ZvY3VzUmluZ1BhdGgKKyAgICAsIERyYXdGb2N1c1JpbmdS
ZWN0cworICAgICwgRHJhd0dseXBocworICAgICwgRHJhd0ltYWdlQnVmZmVyCisgICAgLCBEcmF3
TGluZQorICAgICwgRHJhd0xpbmVzRm9yVGV4dAorICAgICwgRHJhd05hdGl2ZUltYWdlCisgICAg
LCBEcmF3UGF0aAorICAgICwgRHJhd1BhdHRlcm4KKyAgICAsIERyYXdSZWN0CisgICAgLCBFbmRD
bGlwVG9EcmF3aW5nQ29tbWFuZHMKKyAgICAsIEVuZFRyYW5zcGFyZW5jeUxheWVyCisgICAgLCBG
aWxsQ29tcG9zaXRlZFJlY3QKKyAgICAsIEZpbGxFbGxpcHNlCisgICAgLCBGaWxsUGF0aAorICAg
ICwgRmlsbFJlY3QKKyAgICAsIEZpbGxSZWN0V2l0aENvbG9yCisgICAgLCBGaWxsUmVjdFdpdGhH
cmFkaWVudAorICAgICwgRmlsbFJlY3RXaXRoUm91bmRlZEhvbGUKKyAgICAsIEZpbGxSb3VuZGVk
UmVjdAorICAgICwgRmx1c2hDb250ZXh0CisgICAgLCBHZXRJbWFnZURhdGEKKyAgICAsIE1ldGFD
b21tYW5kQ2hhbmdlRGVzdGluYXRpb25JbWFnZUJ1ZmZlcgorICAgICwgTWV0YUNvbW1hbmRDaGFu
Z2VJdGVtQnVmZmVyCisgICAgLCBQdXRJbWFnZURhdGEKKyAgICAsIFJlc3RvcmUKKyAgICAsIFJv
dGF0ZQorICAgICwgU2F2ZQorICAgICwgU2NhbGUKKyAgICAsIFNldENUTQorICAgICwgU2V0SW5s
aW5lRmlsbENvbG9yCisgICAgLCBTZXRJbmxpbmVGaWxsR3JhZGllbnQKKyAgICAsIFNldElubGlu
ZVN0cm9rZUNvbG9yCisgICAgLCBTZXRMaW5lQ2FwCisgICAgLCBTZXRMaW5lRGFzaAorICAgICwg
U2V0TGluZUpvaW4KKyAgICAsIFNldE1pdGVyTGltaXQKKyAgICAsIFNldFN0YXRlCisgICAgLCBT
ZXRTdHJva2VUaGlja25lc3MKKyAgICAsIFN0cm9rZUVsbGlwc2UKKyAgICAsIFN0cm9rZUxpbmUK
KyAgICAsIFN0cm9rZVBhdGgKKyAgICAsIFN0cm9rZVJlY3QKKyAgICAsIFRyYW5zbGF0ZQorCisj
aWYgRU5BQkxFKElOTElORV9QQVRIX0RBVEEpCisgICAgLCBGaWxsSW5saW5lUGF0aAorICAgICwg
U3Ryb2tlSW5saW5lUGF0aAorI2VuZGlmCisKKyNpZiBFTkFCTEUoVklERU8pCisgICAgLCBQYWlu
dEZyYW1lRm9yTWVkaWEKKyNlbmRpZgorCisjaWYgVVNFKENHKQorICAgICwgQXBwbHlGaWxsUGF0
dGVybgorICAgICwgQXBwbHlTdHJva2VQYXR0ZXJuCisjZW5kaWYKKz47CisKK3NpemVfdCBwYWRk
ZWRTaXplT2ZUeXBlQW5kSXRlbUluQnl0ZXMoY29uc3QgRGlzcGxheUxpc3RJdGVtJik7CitJdGVt
VHlwZSBkaXNwbGF5TGlzdEl0ZW1UeXBlKGNvbnN0IERpc3BsYXlMaXN0SXRlbSYpOworCiBUZXh0
U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mLCBJdGVtSGFuZGxlKTsKIAogfSAvLyBuYW1l
c3BhY2UgRGlzcGxheUxpc3QKQEAgLTIzNjMsNiArMjQ0MCw3IEBAIHRlbXBsYXRlPD4gc3RydWN0
IEVudW1UcmFpdHM8V2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlPiB7CiAjZW5kaWYKICAg
ICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkFwcGx5RGV2aWNlU2NhbGVGYWN0b3IK
ICAgICA+OworCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9Jbk1lbW9yeURpc3BsYXlMaXN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9Jbk1l
bW9yeURpc3BsYXlMaXN0LmNwcAppbmRleCAyNmU2MjUzNzg4ZGRkZmEzYTYwM2I3MmRhZTFiYmZi
NjE2MTgxMTdjLi43MDc4MThiMGU3OWQ1YTAzODVjMDJiN2M1OWU1YzMxYTY4NzQ2YjMxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvSW5N
ZW1vcnlEaXNwbGF5TGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0luTWVtb3J5RGlzcGxheUxpc3QuY3BwCkBAIC0zMSwxNCArMzEsMTQg
QEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBEaXNwbGF5TGlzdCB7CiAKLU9wdGlv
bmFsPHN0ZDo6c2l6ZV90PiBJbk1lbW9yeURpc3BsYXlMaXN0OjpXcml0aW5nQ2xpZW50OjpyZXF1
aXJlZFNpemVGb3JJdGVtKEl0ZW1IYW5kbGUgaXRlbUhhbmRsZSkgY29uc3QKK09wdGlvbmFsPHN0
ZDo6c2l6ZV90PiBJbk1lbW9yeURpc3BsYXlMaXN0OjpXcml0aW5nQ2xpZW50OjpyZXF1aXJlZFNp
emVGb3JJdGVtKGNvbnN0IERpc3BsYXlMaXN0SXRlbSYgZGlzcGxheUxpc3RJdGVtKSBjb25zdAog
ewotICAgIHJldHVybiBwYWRkZWRTaXplT2ZUeXBlQW5kSXRlbUluQnl0ZXMoaXRlbUhhbmRsZS50
eXBlKCkpOworICAgIHJldHVybiBwYWRkZWRTaXplT2ZUeXBlQW5kSXRlbUluQnl0ZXMoZGlzcGxh
eUxpc3RJdGVtKTsKIH0KIAotdm9pZCBJbk1lbW9yeURpc3BsYXlMaXN0OjpXcml0aW5nQ2xpZW50
OjplbmNvZGVJdGVtSW5saW5lKEl0ZW1IYW5kbGUgaXRlbUhhbmRsZSwgdWludDhfdCogbG9jYXRp
b24pIGNvbnN0Cit2b2lkIEluTWVtb3J5RGlzcGxheUxpc3Q6OldyaXRpbmdDbGllbnQ6OmVuY29k
ZUl0ZW1JbmxpbmUoY29uc3QgRGlzcGxheUxpc3RJdGVtJiBkaXNwbGF5TGlzdEl0ZW0sIHVpbnQ4
X3QqIGxvY2F0aW9uKSBjb25zdAogewotICAgIGl0ZW1IYW5kbGUuc2FmZUNvcHkoeyBsb2NhdGlv
biB9KTsKKyAgICBzYWZlQ29weSh7IGxvY2F0aW9uIH0sIGRpc3BsYXlMaXN0SXRlbSk7CiB9CiAK
IE9wdGlvbmFsPEl0ZW1IYW5kbGU+IFdBUk5fVU5VU0VEX1JFVFVSTiBJbk1lbW9yeURpc3BsYXlM
aXN0OjpSZWFkaW5nQ2xpZW50OjpkZWNvZGVJdGVtKGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVf
dCBkYXRhTGVuZ3RoLCBJdGVtVHlwZSB0eXBlLCB1aW50OF90KiBoYW5kbGVMb2NhdGlvbikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9J
bk1lbW9yeURpc3BsYXlMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvSW5NZW1vcnlEaXNwbGF5TGlzdC5oCmluZGV4IDRlOGY5OTA2NDc0MjVlYzk3
MWJjODllYmRiMDU1ZDljMmNmMzcwODAuLjFjYzA4YWZhYmZmMmRhNTdjMWMyZDE4ZDg5NmZkY2Y5
NWRjYWEzZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9Jbk1lbW9yeURpc3BsYXlMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0luTWVtb3J5RGlzcGxheUxpc3QuaApAQCAtNDAs
OCArNDAsOCBAQCBwdWJsaWM6CiAgICAgY2xhc3MgV0VCQ09SRV9FWFBPUlQgV3JpdGluZ0NsaWVu
dCA6IHB1YmxpYyBJdGVtQnVmZmVyV3JpdGluZ0NsaWVudCB7CiAgICAgICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwogICAgIHByaXZhdGU6Ci0gICAgICAgIE9wdGlvbmFsPHN0ZDo6c2l6ZV90
PiByZXF1aXJlZFNpemVGb3JJdGVtKEl0ZW1IYW5kbGUpIGNvbnN0IGZpbmFsOwotICAgICAgICB2
b2lkIGVuY29kZUl0ZW1JbmxpbmUoSXRlbUhhbmRsZSwgdWludDhfdCopIGNvbnN0IGZpbmFsOwor
ICAgICAgICBPcHRpb25hbDxzdGQ6OnNpemVfdD4gcmVxdWlyZWRTaXplRm9ySXRlbShjb25zdCBE
aXNwbGF5TGlzdEl0ZW0mKSBjb25zdCBmaW5hbDsKKyAgICAgICAgdm9pZCBlbmNvZGVJdGVtSW5s
aW5lKGNvbnN0IERpc3BsYXlMaXN0SXRlbSYsIHVpbnQ4X3QqKSBjb25zdCBmaW5hbDsKICAgICB9
OwogCiAgICAgY2xhc3MgV0VCQ09SRV9FWFBPUlQgUmVhZGluZ0NsaWVudCA6IHB1YmxpYyBJdGVt
QnVmZmVyUmVhZGluZ0NsaWVudCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCmluZGV4IDYz
YTRmNTA5YzRlYTE5Mjk4ZGY2NjIzMWEyMWJjNzRkNTI2ODY4MjMuLjdlOGRhYWNkNmIzMmQ4YjY4
MWEwZDdkYTU2YWQ5YTljN2I0YjY1YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCkBA
IC0zMjIsMTA1ICszMjIsMTUgQEAgcHJvdGVjdGVkOgogICAgICAgICByZXR1cm4geyB9OwogICAg
IH0KIAotICAgIFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IGVuY29kZUl0ZW1PdXRPZkxp
bmUoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1IYW5kbGUgaXRlbSkgY29uc3QgZmluYWwKKyAg
ICBSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiBlbmNvZGVJdGVtT3V0T2ZMaW5lKGNvbnN0
IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdEl0ZW0mIGl0ZW0pIGNvbnN0IGZpbmFs
CiAgICAgewotICAgICAgICAvKiBUaGlzIG5lZWRzIHRvIG1hdGNoICgxKSBpc0lubGluZUl0ZW0o
KSBpbiBEaXNwbGF5TGlzdEl0ZW1UeXBlLmNwcCwgKDIpIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6
OmRlY29kZUl0ZW0oKSwKLSAgICAgICAgICogYW5kICgzKSBhbGwgdGhlICJzdGF0aWMgY29uc3Rl
eHByIGJvb2wgaXNJbmxpbmVJdGVtInMgaW5zaWRlIHRoZSBpbmRpdmlkdWFsIGl0ZW0gY2xhc3Nl
cy4KLSAgICAgICAgICogU2VlIHRoZSBjb21tZW50IGF0IHRoZSB0b3Agb2YgRGlzcGxheUxpc3RJ
dGVtcy5oIGZvciB3aHkuICovCi0KLSAgICAgICAgc3dpdGNoIChpdGVtLnR5cGUoKSkgewotICAg
ICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6Q2xpcE91dFRvUGF0aDoK
LSAgICAgICAgICAgIHJldHVybiBJUEM6OkVuY29kZXI6OmVuY29kZVNpbmdsZU9iamVjdDxXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6Q2xpcE91dFRvUGF0aD4oaXRlbS5nZXQ8V2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OkNsaXBPdXRUb1BhdGg+KCkpOwotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpJdGVtVHlwZTo6Q2xpcFBhdGg6Ci0gICAgICAgICAgICByZXR1cm4gSVBDOjpFbmNvZGVy
OjplbmNvZGVTaW5nbGVPYmplY3Q8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkNsaXBQYXRoPihpdGVt
LmdldDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6Q2xpcFBhdGg+KCkpOwotICAgICAgICBjYXNlIFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RHJhd0ZvY3VzUmluZ1BhdGg6Ci0gICAgICAg
ICAgICByZXR1cm4gSVBDOjpFbmNvZGVyOjplbmNvZGVTaW5nbGVPYmplY3Q8V2ViQ29yZTo6RGlz
cGxheUxpc3Q6OkRyYXdGb2N1c1JpbmdQYXRoPihpdGVtLmdldDxXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6RHJhd0ZvY3VzUmluZ1BhdGg+KCkpOwotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpJdGVtVHlwZTo6RHJhd0ZvY3VzUmluZ1JlY3RzOgotICAgICAgICAgICAgcmV0dXJuIElQ
Qzo6RW5jb2Rlcjo6ZW5jb2RlU2luZ2xlT2JqZWN0PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3
Rm9jdXNSaW5nUmVjdHM+KGl0ZW0uZ2V0PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3Rm9jdXNS
aW5nUmVjdHM+KCkpOwotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlw
ZTo6RHJhd0dseXBoczoKLSAgICAgICAgICAgIHJldHVybiBJUEM6OkVuY29kZXI6OmVuY29kZVNp
bmdsZU9iamVjdDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBocz4oaXRlbS5nZXQ8V2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHM+KCkpOwotICAgICAgICBjYXNlIFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RHJhd0xpbmVzRm9yVGV4dDoKLSAgICAgICAgICAgIHJl
dHVybiBJUEM6OkVuY29kZXI6OmVuY29kZVNpbmdsZU9iamVjdDxXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6RHJhd0xpbmVzRm9yVGV4dD4oaXRlbS5nZXQ8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdM
aW5lc0ZvclRleHQ+KCkpOwotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVt
VHlwZTo6RHJhd1BhdGg6Ci0gICAgICAgICAgICByZXR1cm4gSVBDOjpFbmNvZGVyOjplbmNvZGVT
aW5nbGVPYmplY3Q8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdQYXRoPihpdGVtLmdldDxXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6RHJhd1BhdGg+KCkpOwotICAgICAgICBjYXNlIFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpJdGVtVHlwZTo6RmlsbENvbXBvc2l0ZWRSZWN0OgotICAgICAgICAgICAgcmV0
dXJuIElQQzo6RW5jb2Rlcjo6ZW5jb2RlU2luZ2xlT2JqZWN0PFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpGaWxsQ29tcG9zaXRlZFJlY3Q+KGl0ZW0uZ2V0PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpGaWxs
Q29tcG9zaXRlZFJlY3Q+KCkpOwotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJ
dGVtVHlwZTo6RmlsbFBhdGg6Ci0gICAgICAgICAgICByZXR1cm4gSVBDOjpFbmNvZGVyOjplbmNv
ZGVTaW5nbGVPYmplY3Q8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkZpbGxQYXRoPihpdGVtLmdldDxX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6RmlsbFBhdGg+KCkpOwotICAgICAgICBjYXNlIFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RmlsbFJlY3RXaXRoQ29sb3I6Ci0gICAgICAgICAgICBy
ZXR1cm4gSVBDOjpFbmNvZGVyOjplbmNvZGVTaW5nbGVPYmplY3Q8V2ViQ29yZTo6RGlzcGxheUxp
c3Q6OkZpbGxSZWN0V2l0aENvbG9yPihpdGVtLmdldDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6Rmls
bFJlY3RXaXRoQ29sb3I+KCkpOwotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJ
dGVtVHlwZTo6RmlsbFJlY3RXaXRoR3JhZGllbnQ6Ci0gICAgICAgICAgICByZXR1cm4gSVBDOjpF
bmNvZGVyOjplbmNvZGVTaW5nbGVPYmplY3Q8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkZpbGxSZWN0
V2l0aEdyYWRpZW50PihpdGVtLmdldDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RmlsbFJlY3RXaXRo
R3JhZGllbnQ+KCkpOwotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlw
ZTo6RmlsbFJlY3RXaXRoUm91bmRlZEhvbGU6Ci0gICAgICAgICAgICByZXR1cm4gSVBDOjpFbmNv
ZGVyOjplbmNvZGVTaW5nbGVPYmplY3Q8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkZpbGxSZWN0V2l0
aFJvdW5kZWRIb2xlPihpdGVtLmdldDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RmlsbFJlY3RXaXRo
Um91bmRlZEhvbGU+KCkpOwotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVt
VHlwZTo6RmlsbFJvdW5kZWRSZWN0OgotICAgICAgICAgICAgcmV0dXJuIElQQzo6RW5jb2Rlcjo6
ZW5jb2RlU2luZ2xlT2JqZWN0PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpGaWxsUm91bmRlZFJlY3Q+
KGl0ZW0uZ2V0PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpGaWxsUm91bmRlZFJlY3Q+KCkpOwotICAg
ICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6UHV0SW1hZ2VEYXRhOgot
ICAgICAgICAgICAgcmV0dXJuIElQQzo6RW5jb2Rlcjo6ZW5jb2RlU2luZ2xlT2JqZWN0PFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpQdXRJbWFnZURhdGE+KGl0ZW0uZ2V0PFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpQdXRJbWFnZURhdGE+KCkpOwotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpJdGVtVHlwZTo6U2V0TGluZURhc2g6Ci0gICAgICAgICAgICByZXR1cm4gSVBDOjpFbmNvZGVy
OjplbmNvZGVTaW5nbGVPYmplY3Q8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldExpbmVEYXNoPihp
dGVtLmdldDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0TGluZURhc2g+KCkpOwotICAgICAgICBj
YXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0U3RhdGU6Ci0gICAgICAgICAg
ICByZXR1cm4gSVBDOjpFbmNvZGVyOjplbmNvZGVTaW5nbGVPYmplY3Q8V2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OlNldFN0YXRlPihpdGVtLmdldDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0U3RhdGU+
KCkpOwotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U3Ryb2tl
UGF0aDoKLSAgICAgICAgICAgIHJldHVybiBJUEM6OkVuY29kZXI6OmVuY29kZVNpbmdsZU9iamVj
dDxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U3Ryb2tlUGF0aD4oaXRlbS5nZXQ8V2ViQ29yZTo6RGlz
cGxheUxpc3Q6OlN0cm9rZVBhdGg+KCkpOwotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpJdGVtVHlwZTo6QXBwbHlEZXZpY2VTY2FsZUZhY3RvcjoKLSNpZiBVU0UoQ0cpCi0gICAg
ICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpBcHBseUZpbGxQYXR0ZXJu
OgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6QXBwbHlTdHJv
a2VQYXR0ZXJuOgotI2VuZGlmCi0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0
ZW1UeXBlOjpCZWdpblRyYW5zcGFyZW5jeUxheWVyOgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpJdGVtVHlwZTo6Q2xlYXJSZWN0OgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpJdGVtVHlwZTo6Q2xlYXJTaGFkb3c6Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6
RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpDbGlwOgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpJdGVtVHlwZTo6Q2xpcE91dDoKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6SXRlbVR5cGU6OkNsaXBUb0ltYWdlQnVmZmVyOgotICAgICAgICBjYXNlIFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6QmVnaW5DbGlwVG9EcmF3aW5nQ29tbWFuZHM6Ci0gICAg
ICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpFbmRDbGlwVG9EcmF3aW5n
Q29tbWFuZHM6Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpD
b25jYXRlbmF0ZUNUTToKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5
cGU6OkRyYXdEb3RzRm9yRG9jdW1lbnRNYXJrZXI6Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlz
cGxheUxpc3Q6Okl0ZW1UeXBlOjpEcmF3RWxsaXBzZToKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6SXRlbVR5cGU6OkRyYXdJbWFnZUJ1ZmZlcjoKLSAgICAgICAgY2FzZSBXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkRyYXdOYXRpdmVJbWFnZToKLSAgICAgICAgY2Fz
ZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkRyYXdQYXR0ZXJuOgotICAgICAgICBj
YXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RHJhd0xpbmU6Ci0gICAgICAgIGNh
c2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpEcmF3UmVjdDoKLSAgICAgICAgY2Fz
ZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkVuZFRyYW5zcGFyZW5jeUxheWVyOgot
ICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RmlsbEVsbGlwc2U6
Ci0jaWYgRU5BQkxFKElOTElORV9QQVRIX0RBVEEpCi0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlz
cGxheUxpc3Q6Okl0ZW1UeXBlOjpGaWxsSW5saW5lUGF0aDoKLSNlbmRpZgotICAgICAgICBjYXNl
IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RmlsbFJlY3Q6Ci0gICAgICAgIGNhc2Ug
V2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpGbHVzaENvbnRleHQ6Ci0gICAgICAgIGNh
c2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpNZXRhQ29tbWFuZENoYW5nZURlc3Rp
bmF0aW9uSW1hZ2VCdWZmZXI6Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0
ZW1UeXBlOjpNZXRhQ29tbWFuZENoYW5nZUl0ZW1CdWZmZXI6Ci0jaWYgRU5BQkxFKFZJREVPKQot
ICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6UGFpbnRGcmFtZUZv
ck1lZGlhOgotI2VuZGlmCi0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1U
eXBlOjpSZXN0b3JlOgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlw
ZTo6Um90YXRlOgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6
U2F2ZToKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNjYWxl
OgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0Q1RNOgot
ICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0SW5saW5lRmls
bENvbG9yOgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0
SW5saW5lRmlsbEdyYWRpZW50OgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJ
dGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3I6Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6RGlz
cGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRMaW5lQ2FwOgotICAgICAgICBjYXNlIFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0TGluZUpvaW46Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6
RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRNaXRlckxpbWl0OgotICAgICAgICBjYXNlIFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0U3Ryb2tlVGhpY2tuZXNzOgotICAgICAgICBj
YXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U3Ryb2tlRWxsaXBzZToKLSNpZiBF
TkFCTEUoSU5MSU5FX1BBVEhfREFUQSkKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6SXRlbVR5cGU6OlN0cm9rZUlubGluZVBhdGg6Ci0jZW5kaWYKLSAgICAgICAgY2FzZSBXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlN0cm9rZVJlY3Q6Ci0gICAgICAgIGNhc2UgV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTdHJva2VMaW5lOgotICAgICAgICBjYXNlIFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6VHJhbnNsYXRlOgorICAgICAgICByZXR1cm4g
V1RGOjp2aXNpdChbXShjb25zdCBhdXRvJiBkaXNwbGF5TGlzdEl0ZW0pIC0+IFJlZlB0cjxXZWJD
b3JlOjpTaGFyZWRCdWZmZXI+IHsKKyAgICAgICAgICAgIHVzaW5nIERpc3BsYXlMaXN0SXRlbVR5
cGUgPSB0eXBlbmFtZSBXVEY6OlJlbW92ZUNWQW5kUmVmZXJlbmNlPGRlY2x0eXBlKGRpc3BsYXlM
aXN0SXRlbSk+Ojp0eXBlOworICAgICAgICAgICAgaWYgY29uc3RleHByICghRGlzcGxheUxpc3RJ
dGVtVHlwZTo6aXNJbmxpbmVJdGVtKQorICAgICAgICAgICAgICAgIHJldHVybiBJUEM6OkVuY29k
ZXI6OmVuY29kZVNpbmdsZU9iamVjdDxEaXNwbGF5TGlzdEl0ZW1UeXBlPihkaXNwbGF5TGlzdEl0
ZW0pOwogICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAg
ICAgIHJldHVybiBudWxscHRyOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgUkVMRUFT
RV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgIHJldHVybiBudWxscHRyOwotICAg
ICAgICB9CisgICAgICAgIH0sIGl0ZW0pOwogICAgIH0KIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJDb3JlOjpUaHJlYWRTYWZlSW1hZ2VCdWZmZXJGbHVzaGVyPiBjcmVhdGVGbHVzaGVyKCkgb3Zl
cnJpZGUKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCBhMjJjY2Q0Y2Y5MjIyOTAwZmRhZTU0MzNhMjg0ZWQzZjdjYzcxYzI0Li5mN2YxYjQzZDdhMjRl
OGZhNjk1NDY0YzBiZDQyYWM1ODY4NWQ5YzAwIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cK
KysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDUtMDkgIE15bGVz
IEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nl
c3NdIFNpbXBsaWZ5IERpc3BsYXlMaXN0OjpJdGVyYXRvciBwYXJ0IDY6IE1pZ3JhdGUgSXRlbUJ1
ZmZlcldyaXRpbmdDbGllbnQgZnJvbSBJdGVtSGFuZGxlIHRvIGEgY29uc3QgVmFyaWFudCYKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDI3MAorCisg
ICAgICAgIFJldmlld2VkIGJ5IFdlbnNvbiBIc2llaC4KKworICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9EaXNwbGF5TGlzdFRlc3RzLmNwcDoKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jZy9E
aXNwbGF5TGlzdFRlc3RzQ0cuY3BwOgorCiAyMDIxLTA1LTA4ICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI3Njc5Nz8p
OiBbIG1hY09TL2lPUyBdIFRlc3RXZWJLaXRBUEkuVVJMU2NoZW1lSGFuZGxlci5FeGNlcHRpb25z
IGlzIGZsYWtleSBjcmFzaGluZwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL0Rpc3BsYXlMaXN0VGVzdHMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL0Rpc3BsYXlMaXN0VGVzdHMuY3BwCmluZGV4IDQxMDc3Y2U5OTU5MzkzMGZiMWQw
YjljMGZjZmMxNWFlZmZlM2MzZjAuLmJjN2E4NDlhZDc0ZTRhNjQzNTg4MTk0NzhmZTQzODM1NzFl
ODc1MmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9EaXNw
bGF5TGlzdFRlc3RzLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
RGlzcGxheUxpc3RUZXN0cy5jcHAKQEAgLTIwMiwxMCArMjAyLDEwIEBAIFRFU1QoRGlzcGxheUxp
c3RUZXN0cywgSXRlbUJ1ZmZlckNsaWVudCkKICAgICAgICAgICAgIHJldHVybiB7IGdsb2JhbEJ1
ZmZlcklkZW50aWZpZXIsIGdsb2JhbEl0ZW1CdWZmZXIsIGdsb2JhbEl0ZW1CdWZmZXJDYXBhY2l0
eSB9OwogICAgICAgICB9CiAKLSAgICAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZW5jb2RlSXRl
bU91dE9mTGluZShJdGVtSGFuZGxlIGhhbmRsZSkgY29uc3QgZmluYWwKKyAgICAgICAgUmVmUHRy
PFNoYXJlZEJ1ZmZlcj4gZW5jb2RlSXRlbU91dE9mTGluZShjb25zdCBEaXNwbGF5TGlzdEl0ZW0m
IGRpc3BsYXlMaXN0SXRlbSkgY29uc3QgZmluYWwKICAgICAgICAgewogICAgICAgICAgICAgYXV0
byBpbmRleCA9IG1faXRlbXMuc2l6ZSgpOwotICAgICAgICAgICAgbV9pdGVtcy5hcHBlbmQoaGFu
ZGxlLmdldDxTdHJva2VQYXRoPigpKTsKKyAgICAgICAgICAgIG1faXRlbXMuYXBwZW5kKFdURjo6
Z2V0PFN0cm9rZVBhdGg+KGRpc3BsYXlMaXN0SXRlbSkpOwogICAgICAgICAgICAgcmV0dXJuIFNo
YXJlZEJ1ZmZlcjo6Y3JlYXRlKHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KCZpbmRleCksIHNp
emVvZihzaXplX3QpKTsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvY2cvRGlzcGxheUxpc3RUZXN0c0NHLmNwcCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jZy9EaXNwbGF5TGlzdFRlc3RzQ0cuY3BwCmluZGV4IGVl
ZjcxNmQ5NTk4MWZmOTUxM2UxMTg2OWY2MTRiZGQwNmY0ZWRhMTEuLjQxYWMzOWU1MzZkODg3NmVi
NmRmZWJmMjMzYjk2NjM1YzE0MDg5MDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9jZy9EaXNwbGF5TGlzdFRlc3RzQ0cuY3BwCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jZy9EaXNwbGF5TGlzdFRlc3RzQ0cuY3BwCkBAIC0xMDAs
NyArMTAwLDcgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIHsgZ2xvYmFsQnVmZmVySWRlbnRp
ZmllciwgZ2xvYmFsSXRlbUJ1ZmZlciwgZ2xvYmFsSXRlbUJ1ZmZlckNhcGFjaXR5IH07CiAgICAg
fQogCi0gICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZW5jb2RlSXRlbU91dE9mTGluZShJdGVtSGFu
ZGxlKSBjb25zdCBmaW5hbAorICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGVuY29kZUl0ZW1PdXRP
ZkxpbmUoY29uc3QgRGlzcGxheUxpc3RJdGVtJikgY29uc3QgZmluYWwKICAgICB7CiAgICAgICAg
IHJldHVybiBTaGFyZWRCdWZmZXI6OmNyZWF0ZSgpOwogICAgIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>