<?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>214722</bug_id>
          
          <creation_ts>2020-07-24 00:05:27 -0700</creation_ts>
          <short_desc>Propagating media only user gesture through Fetch ReadableStream</short_desc>
          <delta_ts>2020-07-31 00:06:21 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=214444</see_also>
          <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>181943</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jiewen Tan">jiewen_tan</reporter>
          <assigned_to name="Jiewen Tan">jiewen_tan</assigned_to>
          <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>dwaite</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>joepeck</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1674557</commentid>
    <comment_count>0</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-07-24 00:05:27 -0700</bug_when>
    <thetext>Propagating media only user gesture through Fetch ReadableStream. A follow up from Bug 214444.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675901</commentid>
    <comment_count>1</comment_count>
      <attachid>405439</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-07-28 22:17:02 -0700</bug_when>
    <thetext>Created attachment 405439
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675906</commentid>
    <comment_count>2</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-07-28 22:22:04 -0700</bug_when>
    <thetext>The WIP patch is not completed. It is uploaded here for Youenn to review such that we could continue our discussion off line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676000</commentid>
    <comment_count>3</comment_count>
      <attachid>405460</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-07-29 08:43:49 -0700</bug_when>
    <thetext>Created attachment 405460
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676353</commentid>
    <comment_count>4</comment_count>
      <attachid>405563</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-07-30 05:54:42 -0700</bug_when>
    <thetext>Created attachment 405563
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676355</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-07-30 06:03:07 -0700</bug_when>
    <thetext>Current patch allows using async appropriately with keeping user gesture until a timeout:
// within click event handler, so user gesture active
const response = await fetch(&apos;blo&apos;);
// user gesture should still be active if fetch token is not expired
const reader = response.body.getReader();
const chunk = await reader.read();
// user gesture should still be active if fetch token is not expired
...

This seems fine to me but we should probably discuss this, see how the spec is defining this and if not defining this, make sure to start discussion there.

With the current patch, a click event handler doing the following would be like:

// within click event handler, so user gesture active
const promise = fetch(&apos;blabla&apos;);
...
// promise not yet resolved, may be out of the click event handler
promise.then(callback1)
...
// promise gets resolved before fetch token is expired.
...
// promise is now resolved but fetch token is not expired.
promise.then(callback2)

I believe callback1 would get user gesture priviledges, not callback2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676396</commentid>
    <comment_count>6</comment_count>
      <attachid>405573</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-07-30 09:00:41 -0700</bug_when>
    <thetext>Created attachment 405573
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676464</commentid>
    <comment_count>7</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-07-30 11:23:36 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #5)
&gt; Current patch allows using async appropriately with keeping user gesture
&gt; until a timeout:
&gt; // within click event handler, so user gesture active
&gt; const response = await fetch(&apos;blo&apos;);
&gt; // user gesture should still be active if fetch token is not expired
&gt; const reader = response.body.getReader();
&gt; const chunk = await reader.read();
&gt; // user gesture should still be active if fetch token is not expired
&gt; ...
&gt; 
&gt; This seems fine to me but we should probably discuss this, see how the spec
&gt; is defining this and if not defining this, make sure to start discussion
&gt; there.
&gt; 
&gt; With the current patch, a click event handler doing the following would be
&gt; like:
&gt; 
&gt; // within click event handler, so user gesture active
&gt; const promise = fetch(&apos;blabla&apos;);
&gt; ...
&gt; // promise not yet resolved, may be out of the click event handler
&gt; promise.then(callback1)
&gt; ...
&gt; // promise gets resolved before fetch token is expired.
&gt; ...
&gt; // promise is now resolved but fetch token is not expired.
&gt; promise.then(callback2)
&gt; 
&gt; I believe callback1 would get user gesture priviledges, not callback2.

As far I can tell, the user activation spec Google is proposing has deprecated a token base user gesture model with a producer-consumer model.
https://developers.google.com/web/updates/2019/01/user-activation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676747</commentid>
    <comment_count>8</comment_count>
      <attachid>405573</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-07-30 23:46:27 -0700</bug_when>
    <thetext>Comment on attachment 405573
Patch

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

LGTM. r=me. Youenn, thanks for making the patch.

&gt; Source/WebCore/Modules/fetch/FetchBodySource.cpp:105
&gt; +    // We asynchronously call the callback so that any promise that got resolved can be thened by the page before the promise got settled with user gesture priviledge.

&apos;thened&apos; doesn&apos;t seem to be an English word. It&apos;s unclear to me why doing it synchronously doesn&apos;t have the benefit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676753</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-07-31 00:06:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/66367691&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405439</attachid>
            <date>2020-07-28 22:17:02 -0700</date>
            <delta_ts>2020-07-29 08:43:44 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-214722-20200728221701.patch</filename>
            <type>text/plain</type>
            <size>24884</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0OTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWFmNDI1MDI1OTY5NzE3
ZDM0OWE3YzY5NjI3OTMwNmM1ZTNiMmQ4MS4uZmZiZDNkNDFmNjdhZWVjYjM2ZDc2MWQ2NDFkMjJh
ZGRlZmQ3YzVjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIwLTA3LTI4ICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgUHJvcGFnYXRpbmcgbWVk
aWEgb25seSB1c2VyIGdlc3R1cmUgdGhyb3VnaCBGZXRjaCBSZWFkYWJsZVN0cmVhbQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0NzIyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChP
T1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0RPTVdpbmRvd0ZldGNoLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd0ZldGNoOjpmZXRjaCk6CisgICAgICAgICogTW9kdWxl
cy9mZXRjaC9GZXRjaEJvZHlDb25zdW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJv
ZHlDb25zdW1lcjo6cmVzb2x2ZSk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHlDb25zdW1l
cjo6bG9hZGluZ1N1Y2NlZWRlZCk6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlT
b3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5U291cmNlOjpkb1N0YXJ0KToK
KyAgICAgICAgKFdlYkNvcmU6OkZldGNoQm9keVNvdXJjZTo6ZG9DYW5jZWwpOgorICAgICAgICAo
V2ViQ29yZTo6RmV0Y2hCb2R5U291cmNlOjpjbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpGZXRj
aEJvZHlTb3VyY2U6OmVycm9yKToKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNoQm9keVNv
dXJjZS5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6OnF1ZXVlTWljcm90YXNrVG9FdmVudExvb3Ap
OgorICAgICAgICAqIGRvbS9Vc2VyR2VzdHVyZUluZGljYXRvci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpVc2VyR2VzdHVyZVRva2VuOjppc1ZhbGlkRm9yRmV0Y2hGb3J3YXJkaW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6OlVzZXJHZXN0dXJlSW5kaWNhdG9yOjpVc2VyR2VzdHVyZUluZGljYXRvcik6
CisgICAgICAgIChXZWJDb3JlOjpVc2VyR2VzdHVyZUluZGljYXRvcjo6flVzZXJHZXN0dXJlSW5k
aWNhdG9yKToKKyAgICAgICAgKiBkb20vVXNlckdlc3R1cmVJbmRpY2F0b3IuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlVzZXJHZXN0dXJlVG9rZW46OnNldFNob3VsZFBlcnNpc3RJbk5leHRNaWNyb3Rh
c2spOgorICAgICAgICAoV2ViQ29yZTo6VXNlckdlc3R1cmVUb2tlbjo6cmVzZXRTaG91bGRQZXJz
aXN0SW5OZXh0TWljcm90YXNrKToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJHZXN0dXJlVG9rZW46
OnNob3VsZFBlcnNpc3RJbk5leHRNaWNyb3Rhc2sgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
VXNlckdlc3R1cmVUb2tlbjo6c2V0SXNQcm9wYWdhdGVkRnJvbUZldGNoKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlVzZXJHZXN0dXJlVG9rZW46OnJlc2V0SXNQcm9wYWdhdGVkRnJvbUZl
dGNoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlVzZXJHZXN0dXJlVG9rZW46OmlzUHJv
cGFnYXRlZEZyb21GZXRjaCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpyZXNldFRvQ29uc2lzdGVu
dFN0YXRlKToKKwogMjAyMC0wNy0yNSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxl
LmNvbT4KIAogICAgICAgICBTY3JvbGwgU25hcCBicm9rZW4gd2hlbiB1c2luZyBSVEwgbGF5b3V0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0RPTVdpbmRvd0ZldGNo
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRE9NV2luZG93RmV0Y2guY3BwCmlu
ZGV4IDdiNzJlZmFmYWE3OWM4ZDZkYmI2YjhmY2IxY2E2MWYwODZjOGQ3ZWIuLjI2NmNkNjc5M2E0
ZGQ1ZjU1MTdjMDBkZTFkYmNkMTNlNTdiZDMyYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmV0Y2gvRE9NV2luZG93RmV0Y2guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmV0Y2gvRE9NV2luZG93RmV0Y2guY3BwCkBAIC01OCwxMiArNTgsMTIgQEAgdm9pZCBE
T01XaW5kb3dGZXRjaDo6ZmV0Y2goRE9NV2luZG93JiB3aW5kb3csIEZldGNoUmVxdWVzdDo6SW5m
byYmIGlucHV0LCBGZXRjaFIKICAgICB9CiAKICAgICBGZXRjaFJlc3BvbnNlOjpmZXRjaCgqZG9j
dW1lbnQsIHJlcXVlc3QucmVsZWFzZVJldHVyblZhbHVlKCksIFtwcm9taXNlID0gV1RGTW92ZShw
cm9taXNlKSwgdXNlckdlc3R1cmVUb2tlbiA9IFVzZXJHZXN0dXJlSW5kaWNhdG9yOjpjdXJyZW50
VXNlckdlc3R1cmUoKV0oRXhjZXB0aW9uT3I8RmV0Y2hSZXNwb25zZSY+JiYgcmVzdWx0KSBtdXRh
YmxlIHsKLSAgICAgICAgaWYgKCF1c2VyR2VzdHVyZVRva2VuIHx8IHVzZXJHZXN0dXJlVG9rZW4t
Pmhhc0V4cGlyZWQoVXNlckdlc3R1cmVUb2tlbjo6bWF4aW11bUludGVydmFsRm9yVXNlckdlc3R1
cmVGb3J3YXJkaW5nRm9yRmV0Y2goKSkgfHwgIXVzZXJHZXN0dXJlVG9rZW4tPnByb2Nlc3NpbmdV
c2VyR2VzdHVyZSgpKSB7CisgICAgICAgIGlmICghVXNlckdlc3R1cmVUb2tlbjo6aXNWYWxpZEZv
ckZldGNoRm9yd2FyZGluZyh1c2VyR2VzdHVyZVRva2VuLmdldCgpKSkgewogICAgICAgICAgICAg
cHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQogCi0gICAgICAgIFVzZXJHZXN0dXJlSW5kaWNhdG9yIGdlc3R1cmVJbmRpY2F0b3Io
dXNlckdlc3R1cmVUb2tlbiwgVXNlckdlc3R1cmVUb2tlbjo6R2VzdHVyZVNjb3BlOjpNZWRpYU9u
bHksIFVzZXJHZXN0dXJlVG9rZW46OklzUHJvcGFnYXRlZEZyb21GZXRjaDo6WWVzKTsKKyAgICAg
ICAgVXNlckdlc3R1cmVJbmRpY2F0b3IgZ2VzdHVyZUluZGljYXRvcih1c2VyR2VzdHVyZVRva2Vu
LCBVc2VyR2VzdHVyZVRva2VuOjpHZXN0dXJlU2NvcGU6Ok1lZGlhT25seSwgVXNlckdlc3R1cmVU
b2tlbjo6U2hvdWxkUGVyc2lzdEluTmV4dE1pY3JvdGFzazo6WWVzKTsKICAgICAgICAgcHJvbWlz
ZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKICAgICB9KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5Q29uc3VtZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlDb25zdW1lci5jcHAKaW5kZXggOTVjZmI2ZmQz
YTBkOTk2MzY1MmNkZDQ1MDM4MTczMWE0ZDliMjNmZi4uMWI5MTcyMTQyMDUzYjU3ZWUxNWI0NTRl
OWFiNDNmYjU2N2Y2NTdlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRj
aC9GZXRjaEJvZHlDb25zdW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRj
aC9GZXRjaEJvZHlDb25zdW1lci5jcHAKQEAgLTkwLDggKzkwLDEyIEBAIHZvaWQgRmV0Y2hCb2R5
Q29uc3VtZXI6OmV4dHJhY3QoUmVhZGFibGVTdHJlYW0mIHN0cmVhbSwgUmVhZGFibGVTdHJlYW1U
b1NoYXJlZEJ1CiB2b2lkIEZldGNoQm9keUNvbnN1bWVyOjpyZXNvbHZlKFJlZjxEZWZlcnJlZFBy
b21pc2U+JiYgcHJvbWlzZSwgUmVhZGFibGVTdHJlYW0qIHN0cmVhbSkKIHsKICAgICBpZiAoc3Ry
ZWFtKSB7CisgICAgICAgIGF1dG8gdXNlckdlc3R1cmVUb2tlbiA9IFVzZXJHZXN0dXJlSW5kaWNh
dG9yOjpjdXJyZW50VXNlckdlc3R1cmUoKTsKKyAgICAgICAgaWYgKHVzZXJHZXN0dXJlVG9rZW4g
JiYgIXVzZXJHZXN0dXJlVG9rZW4tPnByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkpCisg
ICAgICAgICAgICB1c2VyR2VzdHVyZVRva2VuID0gbnVsbHB0cjsKKwogICAgICAgICBBU1NFUlQo
IW1fc2luayk7Ci0gICAgICAgIG1fc2luayA9IFJlYWRhYmxlU3RyZWFtVG9TaGFyZWRCdWZmZXJT
aW5rOjpjcmVhdGUoW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCBkYXRhID0gU2hhcmVkQnVm
ZmVyOjpjcmVhdGUoKSwgdHlwZSA9IG1fdHlwZSwgY29udGVudFR5cGUgPSBtX2NvbnRlbnRUeXBl
XShhdXRvJiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgbV9zaW5rID0gUmVhZGFibGVTdHJl
YW1Ub1NoYXJlZEJ1ZmZlclNpbms6OmNyZWF0ZShbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSks
IGRhdGEgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZSgpLCB0eXBlID0gbV90eXBlLCBjb250ZW50VHlw
ZSA9IG1fY29udGVudFR5cGUsIHVzZXJHZXN0dXJlVG9rZW4gPSBXVEZNb3ZlKHVzZXJHZXN0dXJl
VG9rZW4pXShhdXRvJiYgcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmIChyZXN1bHQu
aGFzRXhjZXB0aW9uKCkpIHsKICAgICAgICAgICAgICAgICBwcm9taXNlLT5yZWplY3QocmVzdWx0
LnJlbGVhc2VFeGNlcHRpb24oKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtOTksOCAr
MTAzLDE1IEBAIHZvaWQgRmV0Y2hCb2R5Q29uc3VtZXI6OnJlc29sdmUoUmVmPERlZmVycmVkUHJv
bWlzZT4mJiBwcm9taXNlLCBSZWFkYWJsZVN0cmVhbSoKIAogICAgICAgICAgICAgaWYgKGF1dG8g
Y2h1bmsgPSByZXN1bHQucmV0dXJuVmFsdWUoKSkKICAgICAgICAgICAgICAgICBkYXRhLT5hcHBl
bmQocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oY2h1bmstPmRhdGEpLCBjaHVuay0+c2l6
ZSk7Ci0gICAgICAgICAgICBlbHNlCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAg
ICBpZiAoIVVzZXJHZXN0dXJlVG9rZW46OmlzVmFsaWRGb3JGZXRjaEZvcndhcmRpbmcodXNlckdl
c3R1cmVUb2tlbi5nZXQoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZVdpdGhUeXBl
QW5kRGF0YShXVEZNb3ZlKHByb21pc2UpLCB0eXBlLCBjb250ZW50VHlwZSwgcmVpbnRlcnByZXRf
Y2FzdDxjb25zdCB1bnNpZ25lZCBjaGFyKj4oZGF0YS0+ZGF0YSgpKSwgZGF0YS0+c2l6ZSgpKTsK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgICAgIFVzZXJHZXN0dXJlSW5kaWNhdG9yIGdlc3R1cmVJbmRpY2F0b3IodXNlckdlc3R1
cmVUb2tlbiwgVXNlckdlc3R1cmVUb2tlbjo6R2VzdHVyZVNjb3BlOjpNZWRpYU9ubHksIFVzZXJH
ZXN0dXJlVG9rZW46OlNob3VsZFBlcnNpc3RJbk5leHRNaWNyb3Rhc2s6Olllcyk7CiAgICAgICAg
ICAgICAgICAgcmVzb2x2ZVdpdGhUeXBlQW5kRGF0YShXVEZNb3ZlKHByb21pc2UpLCB0eXBlLCBj
b250ZW50VHlwZSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1bnNpZ25lZCBjaGFyKj4oZGF0YS0+
ZGF0YSgpKSwgZGF0YS0+c2l6ZSgpKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfSk7CiAgICAg
ICAgIG1fc2luay0+cGlwZUZyb20oKnN0cmVhbSk7CiAgICAgICAgIHJldHVybjsKQEAgLTIyNiwx
MCArMjM3LDEwIEBAIHZvaWQgRmV0Y2hCb2R5Q29uc3VtZXI6OmxvYWRpbmdTdWNjZWVkZWQoKQog
ICAgIG1faXNMb2FkaW5nID0gZmFsc2U7CiAKICAgICBpZiAobV9jb25zdW1lUHJvbWlzZSkgewot
ICAgICAgICBpZiAoIW1fdXNlckdlc3R1cmVUb2tlbiB8fCBtX3VzZXJHZXN0dXJlVG9rZW4tPmhh
c0V4cGlyZWQoVXNlckdlc3R1cmVUb2tlbjo6bWF4aW11bUludGVydmFsRm9yVXNlckdlc3R1cmVG
b3J3YXJkaW5nRm9yRmV0Y2goKSkgfHwgIW1fdXNlckdlc3R1cmVUb2tlbi0+cHJvY2Vzc2luZ1Vz
ZXJHZXN0dXJlKCkpCisgICAgICAgIGlmICghVXNlckdlc3R1cmVUb2tlbjo6aXNWYWxpZEZvckZl
dGNoRm9yd2FyZGluZyhtX3VzZXJHZXN0dXJlVG9rZW4uZ2V0KCkpKQogICAgICAgICAgICAgcmVz
b2x2ZShtX2NvbnN1bWVQcm9taXNlLnJlbGVhc2VOb25OdWxsKCksIG51bGxwdHIpOwogICAgICAg
ICBlbHNlIHsKLSAgICAgICAgICAgIFVzZXJHZXN0dXJlSW5kaWNhdG9yIGdlc3R1cmVJbmRpY2F0
b3IobV91c2VyR2VzdHVyZVRva2VuLCBVc2VyR2VzdHVyZVRva2VuOjpHZXN0dXJlU2NvcGU6Ok1l
ZGlhT25seSwgVXNlckdlc3R1cmVUb2tlbjo6SXNQcm9wYWdhdGVkRnJvbUZldGNoOjpZZXMpOwor
ICAgICAgICAgICAgVXNlckdlc3R1cmVJbmRpY2F0b3IgZ2VzdHVyZUluZGljYXRvcihtX3VzZXJH
ZXN0dXJlVG9rZW4sIFVzZXJHZXN0dXJlVG9rZW46Okdlc3R1cmVTY29wZTo6TWVkaWFPbmx5LCBV
c2VyR2VzdHVyZVRva2VuOjpTaG91bGRQZXJzaXN0SW5OZXh0TWljcm90YXNrOjpZZXMpOwogICAg
ICAgICAgICAgcmVzb2x2ZShtX2NvbnN1bWVQcm9taXNlLnJlbGVhc2VOb25OdWxsKCksIG51bGxw
dHIpOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9mZXRjaC9GZXRjaEJvZHlTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRj
aC9GZXRjaEJvZHlTb3VyY2UuY3BwCmluZGV4IDJiNmFiYzViYjgxMDA5OWRmZjkwMmQ5NGE2Y2Nk
YzM0ZTQ2NDI0YTQuLjUxZmQxMjdiYjVjNGZjYjc1YzRjN2NhYmQ1ODRjNTY1YTMwYWMwODcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5U291cmNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keVNvdXJjZS5jcHAK
QEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJGZXRjaEJvZHlTb3VyY2UuaCIKIAogI2luY2x1
ZGUgIkZldGNoUmVzcG9uc2UuaCIKKyNpbmNsdWRlICJVc2VyR2VzdHVyZUluZGljYXRvci5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTU0LDggKzU1LDEwIEBAIHZvaWQgRmV0Y2hCb2R5
U291cmNlOjpzZXRJbmFjdGl2ZSgpCiB2b2lkIEZldGNoQm9keVNvdXJjZTo6ZG9TdGFydCgpCiB7
CiAgICAgQVNTRVJUKG1fYm9keU93bmVyKTsKLSAgICBpZiAobV9ib2R5T3duZXIpCisgICAgaWYg
KG1fYm9keU93bmVyKSB7CisgICAgICAgIG1fdXNlckdlc3R1cmVUb2tlbiA9IFVzZXJHZXN0dXJl
SW5kaWNhdG9yOjpjdXJyZW50VXNlckdlc3R1cmUoKTsKICAgICAgICAgbV9ib2R5T3duZXItPmNv
bnN1bWVCb2R5QXNTdHJlYW0oKTsKKyAgICB9CiB9CiAKIHZvaWQgRmV0Y2hCb2R5U291cmNlOjpk
b1B1bGwoKQpAQCAtNzQsNiArNzcsNyBAQCB2b2lkIEZldGNoQm9keVNvdXJjZTo6ZG9DYW5jZWwo
KQogCiAgICAgbV9ib2R5T3duZXItPmNhbmNlbCgpOwogICAgIG1fYm9keU93bmVyID0gbnVsbHB0
cjsKKyAgICBtX3VzZXJHZXN0dXJlVG9rZW4gPSBudWxscHRyOwogfQogCiB2b2lkIEZldGNoQm9k
eVNvdXJjZTo6Y2xvc2UoKQpAQCAtODIsNiArODYsMTUgQEAgdm9pZCBGZXRjaEJvZHlTb3VyY2U6
OmNsb3NlKCkKICAgICBtX2lzQ2xvc2VkID0gdHJ1ZTsKICNlbmRpZgogCisgICAgaWYgKCFVc2Vy
R2VzdHVyZVRva2VuOjppc1ZhbGlkRm9yRmV0Y2hGb3J3YXJkaW5nKG1fdXNlckdlc3R1cmVUb2tl
bi5nZXQoKSkpIHsKKyAgICAgICAgY29udHJvbGxlcigpLmNsb3NlKCk7CisgICAgICAgIGNsZWFu
KCk7CisgICAgICAgIG1fYm9keU93bmVyID0gbnVsbHB0cjsKKyAgICAgICAgbV91c2VyR2VzdHVy
ZVRva2VuID0gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFVzZXJHZXN0
dXJlSW5kaWNhdG9yIGdlc3R1cmVJbmRpY2F0b3IobV91c2VyR2VzdHVyZVRva2VuLCBVc2VyR2Vz
dHVyZVRva2VuOjpHZXN0dXJlU2NvcGU6Ok1lZGlhT25seSwgVXNlckdlc3R1cmVUb2tlbjo6U2hv
dWxkUGVyc2lzdEluTmV4dE1pY3JvdGFzazo6WWVzKTsKICAgICBjb250cm9sbGVyKCkuY2xvc2Uo
KTsKICAgICBjbGVhbigpOwogICAgIG1fYm9keU93bmVyID0gbnVsbHB0cjsKQEAgLTkyLDYgKzEw
NSw3IEBAIHZvaWQgRmV0Y2hCb2R5U291cmNlOjplcnJvcihjb25zdCBFeGNlcHRpb24mIHZhbHVl
KQogICAgIGNvbnRyb2xsZXIoKS5lcnJvcih2YWx1ZSk7CiAgICAgY2xlYW4oKTsKICAgICBtX2Jv
ZHlPd25lciA9IG51bGxwdHI7CisgICAgbV91c2VyR2VzdHVyZVRva2VuID0gbnVsbHB0cjsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9mZXRjaC9GZXRjaEJvZHlTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0
Y2gvRmV0Y2hCb2R5U291cmNlLmgKaW5kZXggYjk1ZGQxMTY5YjQxNWJkODU4OGQxNmQ5MmE1ZjIz
ODVkODdjNjU4MC4uYWYzNGFlNTIzYzMwNDY2YmU4MDhmMTE0MjYzMTIyYzA3NzI4YmI4OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlTb3VyY2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keVNvdXJjZS5oCkBAIC0z
Niw2ICszNiw3IEBAIGNsYXNzIEFycmF5QnVmZmVyOwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBGZXRjaEJvZHlPd25lcjsKK2NsYXNzIFVzZXJHZXN0dXJlVG9rZW47CiAKIGNsYXNzIEZl
dGNoQm9keVNvdXJjZSBmaW5hbCA6IHB1YmxpYyBSZWFkYWJsZVN0cmVhbVNvdXJjZSB7CiBwdWJs
aWM6CkBAIC02Myw2ICs2NCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzQ2xvc2VkIHsgZmFs
c2UgfTsKICNlbmRpZgogICAgIFJlZlB0cjxBY3RpdmVET01PYmplY3Q6OlBlbmRpbmdBY3Rpdml0
eTxGZXRjaEJvZHlPd25lcj4+IG1fcGVuZGluZ0FjdGl2aXR5OworICAgIFJlZlB0cjxVc2VyR2Vz
dHVyZVRva2VuPiBtX3VzZXJHZXN0dXJlVG9rZW47CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jh
c2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcApp
bmRleCAxODhkOGU0NWUwNTZhNDM4MWFmYWE0OTViYTIzMTFhMWQ5ZjZjNWVlLi4yNjFmMGUxODJm
ZjY3MGRiZjRjMjg3OGIzYWIwNmM0MjFhZjdlZjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKQEAgLTIxNyw3ICsyMTcsNyBAQCB2b2lkIEpT
RE9NV2luZG93QmFzZTo6cXVldWVNaWNyb3Rhc2tUb0V2ZW50TG9vcChKU0dsb2JhbE9iamVjdCYg
b2JqZWN0LCBSZWY8SlNDOgogICAgIGF1dG8mIGV2ZW50TG9vcCA9IHRoaXNPYmplY3Quc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpLT5ldmVudExvb3AoKTsKICAgICAvLyBQcm9wYWdhdGluZyBtZWRp
YSBvbmx5IHVzZXIgZ2VzdHVyZSBmb3IgRmV0Y2ggQVBJJ3MgcHJvbWlzZSBjaGFpbi4KICAgICBh
dXRvIHVzZXJHZXN0dXJlVG9rZW4gPSBVc2VyR2VzdHVyZUluZGljYXRvcjo6Y3VycmVudFVzZXJH
ZXN0dXJlKCk7Ci0gICAgaWYgKHVzZXJHZXN0dXJlVG9rZW4gJiYgIXVzZXJHZXN0dXJlVG9rZW4t
PmlzUHJvcGFnYXRlZEZyb21GZXRjaCgpKQorICAgIGlmICh1c2VyR2VzdHVyZVRva2VuICYmICF1
c2VyR2VzdHVyZVRva2VuLT5zaG91bGRQZXJzaXN0SW5OZXh0TWljcm90YXNrKCkpCiAgICAgICAg
IHVzZXJHZXN0dXJlVG9rZW4gPSBudWxscHRyOwogICAgIGV2ZW50TG9vcC5xdWV1ZU1pY3JvdGFz
ayhbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgdXNlckdlc3R1cmVUb2tlbiA9IFdURk1v
dmUodXNlckdlc3R1cmVUb2tlbildKCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghdXNlckdlc3R1
cmVUb2tlbikgewpAQCAtMjI1LDcgKzIyNSw3IEBAIHZvaWQgSlNET01XaW5kb3dCYXNlOjpxdWV1
ZU1pY3JvdGFza1RvRXZlbnRMb29wKEpTR2xvYmFsT2JqZWN0JiBvYmplY3QsIFJlZjxKU0M6CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBVc2VyR2VzdHVyZUluZGlj
YXRvciBnZXN0dXJlSW5kaWNhdG9yKHVzZXJHZXN0dXJlVG9rZW4sIFVzZXJHZXN0dXJlVG9rZW46
Okdlc3R1cmVTY29wZTo6TWVkaWFPbmx5LCBVc2VyR2VzdHVyZVRva2VuOjpJc1Byb3BhZ2F0ZWRG
cm9tRmV0Y2g6Olllcyk7CisgICAgICAgIFVzZXJHZXN0dXJlSW5kaWNhdG9yIGdlc3R1cmVJbmRp
Y2F0b3IodXNlckdlc3R1cmVUb2tlbiwgVXNlckdlc3R1cmVUb2tlbjo6R2VzdHVyZVNjb3BlOjpN
ZWRpYU9ubHksIFVzZXJHZXN0dXJlVG9rZW46OlNob3VsZFBlcnNpc3RJbk5leHRNaWNyb3Rhc2s6
Olllcyk7CiAgICAgICAgIGNhbGxiYWNrLT5jYWxsKCk7CiAgICAgfSk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vVXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL1VzZXJHZXN0dXJlSW5kaWNhdG9yLmNwcAppbmRleCA3NjM5OWFiNTc0ZDk0ZDcz
YzVhYmMwOGY4ZGY3OTAxOTc5ZTU4MjczLi43ZGJjODgxYjI2NTAzOTJkMjE0YjhhZWE4OTI2YmY5
OGM4Zjg0YmI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVXNlckdlc3R1cmVJbmRp
Y2F0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Vc2VyR2VzdHVyZUluZGljYXRvci5j
cHAKQEAgLTYwLDYgKzYwLDExIEBAIHZvaWQgVXNlckdlc3R1cmVUb2tlbjo6c2V0TWF4aW11bUlu
dGVydmFsRm9yVXNlckdlc3R1cmVGb3J3YXJkaW5nRm9yRmV0Y2hGb3JUZXN0CiAgICAgbWF4SW50
ZXJ2YWxGb3JVc2VyR2VzdHVyZUZvcndhcmRpbmdGb3JGZXRjaCA9IFdURk1vdmUodmFsdWUpOwog
fQogCitib29sIFVzZXJHZXN0dXJlVG9rZW46OmlzVmFsaWRGb3JGZXRjaEZvcndhcmRpbmcoVXNl
ckdlc3R1cmVUb2tlbiogdXNlckdlc3R1cmVUb2tlbikKK3sKKyAgICByZXR1cm4gdXNlckdlc3R1
cmVUb2tlbiAmJiAhdXNlckdlc3R1cmVUb2tlbi0+aGFzRXhwaXJlZChVc2VyR2VzdHVyZVRva2Vu
OjptYXhpbXVtSW50ZXJ2YWxGb3JVc2VyR2VzdHVyZUZvcndhcmRpbmdGb3JGZXRjaCgpKSAmJiB1
c2VyR2VzdHVyZVRva2VuLT5wcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpOworfQorCiBV
c2VyR2VzdHVyZUluZGljYXRvcjo6VXNlckdlc3R1cmVJbmRpY2F0b3IoT3B0aW9uYWw8UHJvY2Vz
c2luZ1VzZXJHZXN0dXJlU3RhdGU+IHN0YXRlLCBEb2N1bWVudCogZG9jdW1lbnQsIFVzZXJHZXN0
dXJlVHlwZSBnZXN0dXJlVHlwZSwgUHJvY2Vzc0ludGVyYWN0aW9uU3R5bGUgcHJvY2Vzc0ludGVy
YWN0aW9uU3R5bGUpCiAgICAgOiBtX3ByZXZpb3VzVG9rZW4geyBjdXJyZW50VG9rZW4oKSB9CiB7
CkBAIC04NSw3ICs5MCw3IEBAIFVzZXJHZXN0dXJlSW5kaWNhdG9yOjpVc2VyR2VzdHVyZUluZGlj
YXRvcihPcHRpb25hbDxQcm9jZXNzaW5nVXNlckdlc3R1cmVTdGF0ZT4KICAgICB9CiB9CiAKLVVz
ZXJHZXN0dXJlSW5kaWNhdG9yOjpVc2VyR2VzdHVyZUluZGljYXRvcihSZWZQdHI8VXNlckdlc3R1
cmVUb2tlbj4gdG9rZW4sIFVzZXJHZXN0dXJlVG9rZW46Okdlc3R1cmVTY29wZSBzY29wZSwgVXNl
ckdlc3R1cmVUb2tlbjo6SXNQcm9wYWdhdGVkRnJvbUZldGNoIGlzUHJvcGFnYXRlZEZyb21GZXRj
aCkKK1VzZXJHZXN0dXJlSW5kaWNhdG9yOjpVc2VyR2VzdHVyZUluZGljYXRvcihSZWZQdHI8VXNl
ckdlc3R1cmVUb2tlbj4gdG9rZW4sIFVzZXJHZXN0dXJlVG9rZW46Okdlc3R1cmVTY29wZSBzY29w
ZSwgVXNlckdlc3R1cmVUb2tlbjo6U2hvdWxkUGVyc2lzdEluTmV4dE1pY3JvdGFzayBzaG91bGRQ
ZXJzaXN0SW5OZXh0TWljcm90YXNrKQogewogICAgIC8vIFNpbGVudGx5IGlnbm9yZSBVc2VyR2Vz
dHVyZUluZGljYXRvcnMgb24gbm9uIG1haW4gdGhyZWFkcy4KICAgICBpZiAoIWlzTWFpblRocmVh
ZCgpKQpAQCAtOTYsNyArMTAxLDcgQEAgVXNlckdlc3R1cmVJbmRpY2F0b3I6OlVzZXJHZXN0dXJl
SW5kaWNhdG9yKFJlZlB0cjxVc2VyR2VzdHVyZVRva2VuPiB0b2tlbiwgVXNlckcKIAogICAgIGlm
ICh0b2tlbikgewogICAgICAgICB0b2tlbi0+c2V0U2NvcGUoc2NvcGUpOwotICAgICAgICB0b2tl
bi0+c2V0SXNQcm9wYWdhdGVkRnJvbUZldGNoKGlzUHJvcGFnYXRlZEZyb21GZXRjaCk7CisgICAg
ICAgIHRva2VuLT5zZXRTaG91bGRQZXJzaXN0SW5OZXh0TWljcm90YXNrKHNob3VsZFBlcnNpc3RJ
bk5leHRNaWNyb3Rhc2spOwogICAgICAgICBjdXJyZW50VG9rZW4oKSA9IHRva2VuOwogICAgIH0K
IH0KQEAgLTEwOSw3ICsxMTQsNyBAQCBVc2VyR2VzdHVyZUluZGljYXRvcjo6flVzZXJHZXN0dXJl
SW5kaWNhdG9yKCkKICAgICBpZiAoYXV0byB0b2tlbiA9IGN1cnJlbnRUb2tlbigpKSB7CiAgICAg
ICAgIHRva2VuLT5yZXNldERPTVBhc3RlQWNjZXNzKCk7CiAgICAgICAgIHRva2VuLT5yZXNldFNj
b3BlKCk7Ci0gICAgICAgIHRva2VuLT5yZXNldElzUHJvcGFnYXRlZEZyb21GZXRjaCgpOworICAg
ICAgICB0b2tlbi0+cmVzZXRTaG91bGRQZXJzaXN0SW5OZXh0TWljcm90YXNrKCk7CiAgICAgfQog
CiAgICAgY3VycmVudFRva2VuKCkgPSBtX3ByZXZpb3VzVG9rZW47CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVXNlckdlc3R1cmVJbmRpY2F0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Vc2VyR2VzdHVyZUluZGljYXRvci5oCmluZGV4IDc5NTAzYjA0OGVmZTQ4YjI3MGFlZTVkYzAy
MTg4M2NmMjRmZDUyOTYuLmNiZGE4NzExZDA1ODRiNGE5ZDUxMDNmNWMzOWIxY2RhODQ2ZjIwZWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Vc2VyR2VzdHVyZUluZGljYXRvci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Vc2VyR2VzdHVyZUluZGljYXRvci5oCkBAIC01MSw2ICs1
MSw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgU2Vjb25kcyYgbWF4aW11bUludGVydmFs
Rm9yVXNlckdlc3R1cmVGb3J3YXJkaW5nRm9yRmV0Y2goKTsKICAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgdm9pZCBzZXRNYXhpbXVtSW50ZXJ2YWxGb3JVc2VyR2VzdHVyZUZvcndhcmRpbmdGb3JG
ZXRjaEZvclRlc3RpbmcoU2Vjb25kcyk7CiAKKyAgICBzdGF0aWMgYm9vbCBpc1ZhbGlkRm9yRmV0
Y2hGb3J3YXJkaW5nKFVzZXJHZXN0dXJlVG9rZW4qKTsKKwogICAgIHN0YXRpYyBSZWY8VXNlckdl
c3R1cmVUb2tlbj4gY3JlYXRlKFByb2Nlc3NpbmdVc2VyR2VzdHVyZVN0YXRlIHN0YXRlLCBVc2Vy
R2VzdHVyZVR5cGUgZ2VzdHVyZVR5cGUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBVc2VyR2VzdHVyZVRva2VuKHN0YXRlLCBnZXN0dXJlVHlwZSkpOwpAQCAtODgsMTEgKzkw
LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNjb3BlKEdlc3R1cmVTY29wZSBzY29wZSkgeyBt
X3Njb3BlID0gc2NvcGU7IH0KICAgICB2b2lkIHJlc2V0U2NvcGUoKSB7IG1fc2NvcGUgPSBHZXN0
dXJlU2NvcGU6OkFsbDsgfQogCi0gICAgLy8gRXhwYW5kIHRoZSBmb2xsb3dpbmcgbWV0aG9kcyBp
ZiBtb3JlIHByb3BhZ2F0aW9uIHNvdXJjZXMgYXJlIGFkZGVkIGxhdGVyLgotICAgIGVudW0gY2xh
c3MgSXNQcm9wYWdhdGVkRnJvbUZldGNoIHsgWWVzLCBObyB9OwotICAgIHZvaWQgc2V0SXNQcm9w
YWdhdGVkRnJvbUZldGNoKElzUHJvcGFnYXRlZEZyb21GZXRjaCBpcykgeyBtX2lzUHJvcGFnYXRl
ZEZyb21GZXRjaCA9IGlzOyB9Ci0gICAgdm9pZCByZXNldElzUHJvcGFnYXRlZEZyb21GZXRjaCgp
IHsgbV9pc1Byb3BhZ2F0ZWRGcm9tRmV0Y2ggPSBJc1Byb3BhZ2F0ZWRGcm9tRmV0Y2g6Ok5vOyB9
Ci0gICAgYm9vbCBpc1Byb3BhZ2F0ZWRGcm9tRmV0Y2goKSBjb25zdCB7IHJldHVybiBtX2lzUHJv
cGFnYXRlZEZyb21GZXRjaCA9PSBJc1Byb3BhZ2F0ZWRGcm9tRmV0Y2g6OlllczsgfQorICAgIGVu
dW0gY2xhc3MgU2hvdWxkUGVyc2lzdEluTmV4dE1pY3JvdGFzayB7IFllcywgTm8gfTsKKyAgICB2
b2lkIHNldFNob3VsZFBlcnNpc3RJbk5leHRNaWNyb3Rhc2soU2hvdWxkUGVyc2lzdEluTmV4dE1p
Y3JvdGFzayBzaG91bGQpIHsgbV9zaG91bGRQZXJzaXN0SW5OZXh0TWljcm90YXNrID0gc2hvdWxk
OyB9CisgICAgdm9pZCByZXNldFNob3VsZFBlcnNpc3RJbk5leHRNaWNyb3Rhc2soKSB7IG1fc2hv
dWxkUGVyc2lzdEluTmV4dE1pY3JvdGFzayA9IFNob3VsZFBlcnNpc3RJbk5leHRNaWNyb3Rhc2s6
Ok5vOyB9CisgICAgYm9vbCBzaG91bGRQZXJzaXN0SW5OZXh0TWljcm90YXNrKCkgY29uc3QgeyBy
ZXR1cm4gbV9zaG91bGRQZXJzaXN0SW5OZXh0TWljcm90YXNrID09IFNob3VsZFBlcnNpc3RJbk5l
eHRNaWNyb3Rhc2s6OlllczsgfQogCiAgICAgYm9vbCBoYXNFeHBpcmVkKFNlY29uZHMgZXhwaXJh
dGlvbkludGVydmFsKSBjb25zdAogICAgIHsKQEAgLTExNCw3ICsxMTUsNyBAQCBwcml2YXRlOgog
ICAgIERPTVBhc3RlQWNjZXNzUG9saWN5IG1fZG9tUGFzdGVBY2Nlc3NQb2xpY3kgeyBET01QYXN0
ZUFjY2Vzc1BvbGljeTo6Tm90UmVxdWVzdGVkWWV0IH07CiAgICAgR2VzdHVyZVNjb3BlIG1fc2Nv
cGUgeyBHZXN0dXJlU2NvcGU6OkFsbCB9OwogICAgIE1vbm90b25pY1RpbWUgbV9zdGFydFRpbWUg
eyBNb25vdG9uaWNUaW1lOjpub3coKSB9OwotICAgIElzUHJvcGFnYXRlZEZyb21GZXRjaCBtX2lz
UHJvcGFnYXRlZEZyb21GZXRjaCB7IElzUHJvcGFnYXRlZEZyb21GZXRjaDo6Tm8gfTsKKyAgICBT
aG91bGRQZXJzaXN0SW5OZXh0TWljcm90YXNrIG1fc2hvdWxkUGVyc2lzdEluTmV4dE1pY3JvdGFz
ayB7IFNob3VsZFBlcnNpc3RJbk5leHRNaWNyb3Rhc2s6Ok5vIH07CiB9OwogCiBjbGFzcyBVc2Vy
R2VzdHVyZUluZGljYXRvciB7CkBAIC0xMjksNyArMTMwLDcgQEAgcHVibGljOgogICAgIC8vIElm
IGEgZG9jdW1lbnQgaXMgcHJvdmlkZWQsIGl0cyBsYXN0IGtub3duIHVzZXIgZ2VzdHVyZSB0aW1l
c3RhbXAgaXMgdXBkYXRlZC4KICAgICBlbnVtIGNsYXNzIFByb2Nlc3NJbnRlcmFjdGlvblN0eWxl
IHsgSW1tZWRpYXRlLCBEZWxheWVkIH07CiAgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgVXNl
ckdlc3R1cmVJbmRpY2F0b3IoT3B0aW9uYWw8UHJvY2Vzc2luZ1VzZXJHZXN0dXJlU3RhdGU+LCBE
b2N1bWVudCogPSBudWxscHRyLCBVc2VyR2VzdHVyZVR5cGUgPSBVc2VyR2VzdHVyZVR5cGU6Ok90
aGVyLCBQcm9jZXNzSW50ZXJhY3Rpb25TdHlsZSA9IFByb2Nlc3NJbnRlcmFjdGlvblN0eWxlOjpJ
bW1lZGlhdGUpOwotICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IFVzZXJHZXN0dXJlSW5kaWNh
dG9yKFJlZlB0cjxVc2VyR2VzdHVyZVRva2VuPiwgVXNlckdlc3R1cmVUb2tlbjo6R2VzdHVyZVNj
b3BlID0gVXNlckdlc3R1cmVUb2tlbjo6R2VzdHVyZVNjb3BlOjpBbGwsIFVzZXJHZXN0dXJlVG9r
ZW46OklzUHJvcGFnYXRlZEZyb21GZXRjaCA9IFVzZXJHZXN0dXJlVG9rZW46OklzUHJvcGFnYXRl
ZEZyb21GZXRjaDo6Tm8pOworICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IFVzZXJHZXN0dXJl
SW5kaWNhdG9yKFJlZlB0cjxVc2VyR2VzdHVyZVRva2VuPiwgVXNlckdlc3R1cmVUb2tlbjo6R2Vz
dHVyZVNjb3BlID0gVXNlckdlc3R1cmVUb2tlbjo6R2VzdHVyZVNjb3BlOjpBbGwsIFVzZXJHZXN0
dXJlVG9rZW46OlNob3VsZFBlcnNpc3RJbk5leHRNaWNyb3Rhc2sgPSBVc2VyR2VzdHVyZVRva2Vu
OjpTaG91bGRQZXJzaXN0SW5OZXh0TWljcm90YXNrOjpObyk7CiAgICAgV0VCQ09SRV9FWFBPUlQg
flVzZXJHZXN0dXJlSW5kaWNhdG9yKCk7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5jcHAKaW5kZXggNGQyY2JiZGY5YWM3NzY5YWJiZmNkYjA5ZjVjZWUzMjQ4MTU3MmY0
MS4uMjM2NDU0ZjU0M2M1MDRlZDE3ZGUwMWVmNzEwZjA2ZjdmODM5N2UwYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtNTg4LDYgKzU4OCw4IEBAIHZvaWQgSW50ZXJuYWxz
OjpyZXNldFRvQ29uc2lzdGVudFN0YXRlKFBhZ2UmIHBhZ2UpCiAjaWYgUExBVEZPUk0oSU9TKQog
ICAgIFJlbmRlclRoZW1lSU9TOjpzZXRDb250ZW50U2l6ZUNhdGVnb3J5KGtDVEZvbnRDb250ZW50
U2l6ZUNhdGVnb3J5TCk7CiAjZW5kaWYKKworICAgIFVzZXJHZXN0dXJlVG9rZW46OnNldE1heGlt
dW1JbnRlcnZhbEZvclVzZXJHZXN0dXJlRm9yd2FyZGluZ0ZvckZldGNoRm9yVGVzdGluZygxMF9z
KTsKIH0KIAogSW50ZXJuYWxzOjpJbnRlcm5hbHMoRG9jdW1lbnQmIGRvY3VtZW50KQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IGEzZjM2YmQ4NDY1NWUyZmMwMTAyZDg5ZDIzYTBlODM0YmRiNGVkZWEuLjFkMTU1YjEwNTYxNjk5
MjNhNDZlMTVkOGE4NDdmZWVhYmUzYzM1YmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0w
Ny0yOCAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgorCisgICAgICAgIFByb3Bh
Z2F0aW5nIG1lZGlhIG9ubHkgdXNlciBnZXN0dXJlIHRocm91Z2ggRmV0Y2ggUmVhZGFibGVTdHJl
YW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDcy
MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0
cC90ZXN0cy9tZWRpYS91c2VyLWdlc3R1cmUtcHJlc2VydmVkLWFjcm9zcy14bWxodHRwcmVxdWVz
dC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9tZWRpYS91c2VyLWdlc3R1cmUt
cHJlc2VydmVkLWFjcm9zcy14bWxodHRwcmVxdWVzdC5odG1sOgorCiAyMDIwLTA3LTI1ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFNjcm9sbCBTbmFw
IGJyb2tlbiB3aGVuIHVzaW5nIFJUTCBsYXlvdXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWVkaWEvdXNlci1nZXN0dXJlLXByZXNlcnZlZC1hY3Jvc3MteG1saHR0cHJlcXVl
c3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS91c2VyLWdlc3R1
cmUtcHJlc2VydmVkLWFjcm9zcy14bWxodHRwcmVxdWVzdC1leHBlY3RlZC50eHQKaW5kZXggYzk5
YWQ5N2U2MGIzMWVjMDdhN2EyZDNjNDU3N2E1Y2QzMjYxZjgxMC4uOTQ3YmNiODNkNDBkZDg5OWY2
MjMxYjEyMTVlY2NmZGYwMWU0MWMxNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9tZWRpYS91c2VyLWdlc3R1cmUtcHJlc2VydmVkLWFjcm9zcy14bWxodHRwcmVxdWVzdC1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS91c2VyLWdlc3R1cmUt
cHJlc2VydmVkLWFjcm9zcy14bWxodHRwcmVxdWVzdC1leHBlY3RlZC50eHQKQEAgLTEzOCw1ICsx
MzgsMzAgQEAgQ1JZUFRPKGtleSBnZW5lcmF0ZWQpCiBSVU4oc2hvdWxkUmVqZWN0KG1lZGlhRWxl
bWVudC5wbGF5KCkpLnRoZW4odGVzdENvbXBsZXRlLCB0ZXN0Q29tcGxldGUpKQogUHJvbWlzZSBy
ZWplY3RlZCBjb3JyZWN0bHkgT0sKIAorKiogZ2VzdHVyZSAtPiBmZXRjaCAtPiByZWFkYWJsZSBz
dHJlYW0gLT4gY2xvc2VkIC0+IHZpZGVvIHBsYXliYWNrOiBzaG91bGQgc3VjY2VlZAorRVZFTlQo
Y2FucGxheXRocm91Z2gpCitmZXRjaCB0aGVuIHJlYWRhYmxlIHN0cmVhbSBjbG9zZWQKK0ZFVENI
KHJlc29sdmVkKTogc3RhdHVzID0gMjAwCitGRVRDSChyZWFkYWJsZSBzdHJlYW0gY2xvc2VkKQor
UlVOKHNob3VsZFJlc29sdmUobWVkaWFFbGVtZW50LnBsYXkoKSkudGhlbih0ZXN0Q29tcGxldGUs
IHRlc3RDb21wbGV0ZSkpCitQcm9taXNlIHJlamVjdGVkIEZBSUwKKworKiogZ2VzdHVyZSAtPiBm
ZXRjaCAtPiByZWFkYWJsZSBzdHJlYW0gLT4gcmVhZCAtPiB2aWRlbyBwbGF5YmFjazogc2hvdWxk
IHN1Y2NlZWQKK0VWRU5UKGNhbnBsYXl0aHJvdWdoKQorZmV0Y2ggdGhlbiByZWFkYWJsZSBzdHJl
YW0gcmVhZAorRkVUQ0gocmVzb2x2ZWQpOiBzdGF0dXMgPSAyMDAKK0ZFVENIKHJlYWRhYmxlIHN0
cmVhbSBjbG9zZWQpCitSVU4oc2hvdWxkUmVzb2x2ZShtZWRpYUVsZW1lbnQucGxheSgpKS50aGVu
KHRlc3RDb21wbGV0ZSwgdGVzdENvbXBsZXRlKSkKK1Byb21pc2UgcmVqZWN0ZWQgRkFJTAorCisq
KiBnZXN0dXJlIC0+IGZldGNoIC0+IHJlYWRhYmxlIHN0cmVhbSAtPiByZXNwb25zZSAtPiB2aWRl
byBwbGF5YmFjazogc2hvdWxkIHN1Y2NlZWQKK0VWRU5UKGNhbnBsYXl0aHJvdWdoKQorZmV0Y2gg
dGhlbiByZWFkYWJsZSBzdHJlYW0gcmVzcG9uc2UKK0ZFVENIKHJlc29sdmVkKTogc3RhdHVzID0g
MjAwCitGRVRDSChyZWFkYWJsZSBzdHJlYW0gcmVzcG9uc2UgcmVzb2x2ZWQpOiBzdGF0dXMgPSAy
MDAKK0ZFVENIKHJlc3BvbnNlIHRleHQgcmVzb2x2ZWQpCitSVU4oc2hvdWxkUmVzb2x2ZShtZWRp
YUVsZW1lbnQucGxheSgpKS50aGVuKHRlc3RDb21wbGV0ZSwgdGVzdENvbXBsZXRlKSkKK1Byb21p
c2UgcmVqZWN0ZWQgRkFJTAorCiBFTkQgT0YgVEVTVAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21lZGlhL3VzZXItZ2VzdHVyZS1wcmVzZXJ2ZWQtYWNyb3NzLXhtbGh0dHBy
ZXF1ZXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3VzZXItZ2VzdHVyZS1w
cmVzZXJ2ZWQtYWNyb3NzLXhtbGh0dHByZXF1ZXN0Lmh0bWwKaW5kZXggMjM1YTE1OTQyYzkyZDM1
Mzk0NDRmMWFjMDZlMjYzMTM3ODFmOTk0NS4uMjg3NDM1MTIyMzFjODc4OTYwZWRiMjI2OTY1MTkx
YzZkMzUyNWVkZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS91c2Vy
LWdlc3R1cmUtcHJlc2VydmVkLWFjcm9zcy14bWxodHRwcmVxdWVzdC5odG1sCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvdXNlci1nZXN0dXJlLXByZXNlcnZlZC1hY3Jvc3MteG1s
aHR0cHJlcXVlc3QuaHRtbApAQCAtMTA1LDYgKzEwNSw4MCBAQAogICAgICAgICAgICAgfSk7CiAg
ICAgICAgIH0KIAorICAgICAgICBmdW5jdGlvbiBkb0ZldGNoUmVhZGFibGVTdHJlYW1DbG9zZWQo
Y29tcGxldGlvbkhhbmRsZXIpCisgICAgICAgIHsKKyAgICAgICAgICAgIGZldGNoKGAveG1saHR0
cHJlcXVlc3QvcmVzb3VyY2VzL2Rvd25sb2FkLXdpdGgtZGVsYXkucGhwP2l0ZXJhdGlvbj0xYCwg
eyBtZXRob2Q6ICdHRVQnLCBjYWNoZTogIm5vLWNhY2hlIiB9KS50aGVuKGFzeW5jIHJlc3BvbnNl
ID0+IHsKKyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoYEZFVENIKHJlc29sdmVkKTogc3Rh
dHVzID0gJHtyZXNwb25zZS5zdGF0dXN9YCk7CisgICAgICAgICAgICAgICAgY29uc3QgcmVhZGVy
ID0gcmVzcG9uc2UuYm9keS5nZXRSZWFkZXIoKTsKKyAgICAgICAgICAgICAgICBsZXQgY2h1bms7
CisgICAgICAgICAgICAgICAgd2hpbGUgKCFjaHVuayB8fCAhY2h1bmsuZG9uZSkKKyAgICAgICAg
ICAgICAgICAgICAgY2h1bmsgPSBhd2FpdCByZWFkZXIucmVhZCgpOworICAgICAgICAgICAgICAg
IHJldHVybiByZWFkZXIuY2xvc2VkOworICAgICAgICAgICAgfSwgZXJyb3IgPT4geworICAgICAg
ICAgICAgICAgIGNvbnNvbGVXcml0ZShgRkVUQ0gocmVqZWN0ZWQpOiBleGNlcHRpb24gPSAke2Vy
cm9yfWApOworICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CisgICAgICAgICAgICAgICAgY29u
c29sZVdyaXRlKGBGRVRDSChyZWFkYWJsZSBzdHJlYW0gY2xvc2VkKWApOworICAgICAgICAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgICAgICAgICB9LCBlcnJvciA9PiB7CisgICAg
ICAgICAgICAgICAgY29uc29sZVdyaXRlKGBGRVRDSChyZWFkYWJsZSBzdHJlYW0gY2xvc2UgcmVq
ZWN0ZWQpOiBleGNlcHRpb24gY29kZSA9ICR7ZXJyb3J9YCk7CisgICAgICAgICAgICB9KTsKKyAg
ICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGRvRmV0Y2hSZWFkYWJsZVN0cmVhbVJlYWQoY29t
cGxldGlvbkhhbmRsZXIpCisgICAgICAgIHsKKyAgICAgICAgICAgIGZldGNoKGAveG1saHR0cHJl
cXVlc3QvcmVzb3VyY2VzL2Rvd25sb2FkLXdpdGgtZGVsYXkucGhwP2l0ZXJhdGlvbj0xYCwgeyBt
ZXRob2Q6ICdHRVQnLCBjYWNoZTogIm5vLWNhY2hlIiB9KS50aGVuKHJlc3BvbnNlID0+IHsKKyAg
ICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoYEZFVENIKHJlc29sdmVkKTogc3RhdHVzID0gJHty
ZXNwb25zZS5zdGF0dXN9YCk7CisgICAgICAgICAgICAgICAgY29uc3QgcmVhZGVyID0gcmVzcG9u
c2UuYm9keS5nZXRSZWFkZXIoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVhZGVyLnJlYWQo
KTsKKyAgICAgICAgICAgIH0sIGVycm9yID0+IHsKKyAgICAgICAgICAgICAgICBjb25zb2xlV3Jp
dGUoYEZFVENIKHJlamVjdGVkKTogZXhjZXB0aW9uID0gJHtlcnJvcn1gKTsKKyAgICAgICAgICAg
IH0pLnRoZW4oKHsgZG9uZSwgY2h1bmsgfSkgPT4geworICAgICAgICAgICAgICAgIGNvbnNvbGVX
cml0ZShgRkVUQ0gocmVhZGFibGUgc3RyZWFtIGNsb3NlZClgKTsKKyAgICAgICAgICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcigpOworICAgICAgICAgICAgfSwgZXJyb3IgPT4geworICAgICAgICAg
ICAgICAgIGNvbnNvbGVXcml0ZShgRkVUQ0gocmVhZGFibGUgc3RyZWFtIGNsb3NlIHJlamVjdGVk
KTogZXhjZXB0aW9uIGNvZGUgPSAke2Vycm9yfWApOworICAgICAgICAgICAgfSk7CisgICAgICAg
IH0KKworICAgICAgICBmdW5jdGlvbiBkb0ZldGNoUmVhZGFibGVTdHJlYW1SZXNwb25zZShjb21w
bGV0aW9uSGFuZGxlcikKKyAgICAgICAgeworICAgICAgICAgICAgZmV0Y2goYC94bWxodHRwcmVx
dWVzdC9yZXNvdXJjZXMvZG93bmxvYWQtd2l0aC1kZWxheS5waHA/aXRlcmF0aW9uPTFgLCB7IG1l
dGhvZDogJ0dFVCcsIGNhY2hlOiAibm8tY2FjaGUiIH0pLnRoZW4oYXN5bmMgcmVzcG9uc2UgPT4g
eworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZShgRkVUQ0gocmVzb2x2ZWQpOiBzdGF0dXMg
PSAke3Jlc3BvbnNlLnN0YXR1c31gKTsKKyAgICAgICAgICAgICAgICBjb25zdCByZWFkZXIgPSBy
ZXNwb25zZS5ib2R5LmdldFJlYWRlcigpOworICAgICAgICAgICAgICAgIGNvbnN0IHN0cmVhbSA9
IG5ldyBSZWFkYWJsZVN0cmVhbSh7CisgICAgICAgICAgICAgICAgICAgIHN0YXJ0KGNvbnRyb2xs
ZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHB1c2goKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlYWRlci5yZWFkKCkudGhlbigoeyBkb25lLCB2
YWx1ZSB9KSA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkb25lKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyLmNsb3NlKCk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb250cm9sbGVyLmVucXVldWUodmFsdWUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwdXNoKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICB9OworCisgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKCk7CisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAg
IHJldHVybiBuZXcgUmVzcG9uc2Uoc3RyZWFtLCB7IGhlYWRlcnM6IHsgIkNvbnRlbnQtVHlwZSI6
ICJ0ZXh0L2h0bWwiIH0gfSk7CisgICAgICAgICAgICB9LCBlcnJvciA9PiB7CisgICAgICAgICAg
ICAgICAgY29uc29sZVdyaXRlKGBGRVRDSChyZWplY3RlZCk6IGV4Y2VwdGlvbiA9ICR7ZXJyb3J9
YCk7CisgICAgICAgICAgICB9KS50aGVuKHJlc3BvbnNlID0+IHsKKyAgICAgICAgICAgICAgICBj
b25zb2xlV3JpdGUoYEZFVENIKHJlYWRhYmxlIHN0cmVhbSByZXNwb25zZSByZXNvbHZlZCk6IHN0
YXR1cyA9ICR7cmVzcG9uc2Uuc3RhdHVzfWApOworICAgICAgICAgICAgICAgIHJldHVybiByZXNw
b25zZS50ZXh0KCk7CisgICAgICAgICAgICB9LCBlcnJvciA9PiB7CisgICAgICAgICAgICAgICAg
Y29uc29sZVdyaXRlKGBGRVRDSChyZWFkYWJsZSBzdHJlYW0gcmVzcG9uc2UgcmVqZWN0ZWQpOiBl
eGNlcHRpb24gY29kZSA9ICR7ZXJyb3J9YCk7CisgICAgICAgICAgICB9KS50aGVuKHRleHQgPT4g
eworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZShgRkVUQ0gocmVzcG9uc2UgdGV4dCByZXNv
bHZlZClgKTsKKyAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOworICAgICAgICAg
ICAgfSwgZXJyb3IgPT4geworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZShgRkVUQ0gocmVz
cG9uc2UgdGV4dCByZWplY3RlZCk6IGV4Y2VwdGlvbiA9ICR7ZXJyb3J9YCk7CisgICAgICAgICAg
ICB9KTsKKyAgICAgICAgfQorCiAgICAgICAgIGZ1bmN0aW9uIHRlc3RDb21wbGV0ZSgpCiAgICAg
ICAgIHsKICAgICAgICAgICAgIGlmIChhdXRvUnVuKQpAQCAtMTM2LDYgKzIxMCw3IEBACiAgICAg
ICAgICAgICBsZXQgZGVsYXkgPSBjb21tYW5kWzBdOwogICAgICAgICAgICAgbGV0IG1ldGhvZCA9
IGNvbW1hbmRbMV0udG9Mb3dlckNhc2UoKTsKIAorCiAgICAgICAgICAgICBzd2l0Y2ggKG1ldGhv
ZCkgewogICAgICAgICAgICAgY2FzZSAneGhyJzoKICAgICAgICAgICAgICAgICBjb25zb2xlV3Jp
dGUoYHNlbmRpbmcgWEhSLCBkZWxheSA9ICR7ZGVsYXl9YCk7CkBAIC0xNjUsNiArMjQwLDE4IEBA
CiAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKGBmZXRjaCB0aGVuIGNyeXB0b2ApOwogICAg
ICAgICAgICAgICAgIGRvRmV0Y2hUaGVuQ3J5cHRvKCgpID0+IHJ1blRlc3QodGVzdCkpOwogICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAnZmV0Y2hyZWFkYWJsZXN0cmVh
bWNsb3NlZCc6CisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKGBmZXRjaCB0aGVuIHJlYWRh
YmxlIHN0cmVhbSBjbG9zZWRgKTsKKyAgICAgICAgICAgICAgICBkb0ZldGNoUmVhZGFibGVTdHJl
YW1DbG9zZWQoKCkgPT4gcnVuVGVzdCh0ZXN0KSk7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBjYXNlICdmZXRjaHJlYWRhYmxlc3RyZWFtcmVhZCc6CisgICAgICAgICAgICAg
ICAgY29uc29sZVdyaXRlKGBmZXRjaCB0aGVuIHJlYWRhYmxlIHN0cmVhbSByZWFkYCk7CisgICAg
ICAgICAgICAgICAgZG9GZXRjaFJlYWRhYmxlU3RyZWFtUmVhZCgoKSA9PiBydW5UZXN0KHRlc3Qp
KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgJ2ZldGNocmVhZGFi
bGVzdHJlYW1yZXNwb25zZSc6CisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKGBmZXRjaCB0
aGVuIHJlYWRhYmxlIHN0cmVhbSByZXNwb25zZWApOworICAgICAgICAgICAgICAgIGRvRmV0Y2hS
ZWFkYWJsZVN0cmVhbVJlc3BvbnNlKCgpID0+IHJ1blRlc3QodGVzdCkpOworICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKQEAgLTIyMyw2ICszMTAsMTQg
QEAKICAgICAgICAgICAgIHsgdGl0bGUgOiAnZ2VzdHVyZSAtPiBmZXRjaCAtPiBjcnlwdG8gLT4g
dmlkZW8gcGxheWJhY2s6IHNob3VsZCBmYWlsIHNpbmNlIHRoZSB1c2VyIGdlc3R1cmUgd2lsbCBu
b3QgYmUgcHJvcGFnYXRlZCB0aHJvdWdoIG90aGVyIEFQSSBldmVuIHRob3VnaCBpdCByZXR1cm5z
IHByb21pc2VzJywKICAgICAgICAgICAgICAgICBhY3Rpb24gOiAncGxheScsICB3aXRoa2V5IDog
dHJ1ZSwgIHN1Y2Nlc3MgOiBmYWxzZSwgIHNlcXVlbmNlIDogWycwIEZldGNoVGhlbkNyeXB0bydd
IH0sCiAKKyAgICAgICAgICAgIHsgdGl0bGUgOiAnZ2VzdHVyZSAtPiBmZXRjaCAtPiByZWFkYWJs
ZSBzdHJlYW0gLT4gY2xvc2VkIC0+IHZpZGVvIHBsYXliYWNrOiBzaG91bGQgc3VjY2VlZCcsCisg
ICAgICAgICAgICAgICAgYWN0aW9uIDogJ3BsYXknLCAgd2l0aGtleSA6IHRydWUsICBzdWNjZXNz
IDogdHJ1ZSwgIHNlcXVlbmNlIDogWycwIEZldGNoUmVhZGFibGVTdHJlYW1DbG9zZWQnXSB9LAor
CisgICAgICAgICAgICB7IHRpdGxlIDogJ2dlc3R1cmUgLT4gZmV0Y2ggLT4gcmVhZGFibGUgc3Ry
ZWFtIC0+IHJlYWQgLT4gdmlkZW8gcGxheWJhY2s6IHNob3VsZCBzdWNjZWVkJywKKyAgICAgICAg
ICAgICAgICBhY3Rpb24gOiAncGxheScsICB3aXRoa2V5IDogdHJ1ZSwgIHN1Y2Nlc3MgOiB0cnVl
LCAgc2VxdWVuY2UgOiBbJzAgRmV0Y2hSZWFkYWJsZVN0cmVhbVJlYWQnXSB9LAorCisgICAgICAg
ICAgICB7IHRpdGxlIDogJ2dlc3R1cmUgLT4gZmV0Y2ggLT4gcmVhZGFibGUgc3RyZWFtIC0+IHJl
c3BvbnNlIC0+IHZpZGVvIHBsYXliYWNrOiBzaG91bGQgc3VjY2VlZCcsCisgICAgICAgICAgICAg
ICAgYWN0aW9uIDogJ3BsYXknLCAgd2l0aGtleSA6IHRydWUsICBzdWNjZXNzIDogdHJ1ZSwgIHNl
cXVlbmNlIDogWycwIEZldGNoUmVhZGFibGVTdHJlYW1SZXNwb25zZSddIH0sCiAgICAgICAgIF07
CiAKICAgICAgICAgZnVuY3Rpb24gbmV4dFRlc3QoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405460</attachid>
            <date>2020-07-29 08:43:49 -0700</date>
            <delta_ts>2020-07-30 05:54:37 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-214722-20200729174347.patch</filename>
            <type>text/plain</type>
            <size>29154</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0OTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTRhNDJjZWQ2OTQ1ZDNk
OTFjYTY1OWZmMmMyYWYwMDgwYzhmNTAzNy4uOWQwMGZjMTJiNGYzYzkwYWQ3NTRiZDJhZjYwY2Uw
YzExNjAyMDQwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDIwLTA3LTI5ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBQcm9wYWdhdGluZyBtZWRp
YSBvbmx5IHVzZXIgZ2VzdHVyZSB0aHJvdWdoIEZldGNoIFJlYWRhYmxlU3RyZWFtCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQ3MjIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIHNldHRsaW5nIGNs
b3NlZCBwcm9taXNlIG9yIHJlYWQgcHJvbWlzZXMsIFJlYWRhYmxlU3RyZWFtIHdpbGwgZmlyc3Qg
Y2hlY2sgd2hldGhlciBpdHMgc291cmNlIHNob3VsZCBlbmFibGUgdXNlciBhY3RpdmF0aW9uLgor
ICAgICAgICBUbyBkbyBzbywgUmVhZGFibGVTdHJlYW1Tb3VyY2UgaGFzIGEgbmV3IEB3aXRoVXNl
ckFjdGl2YXRpb25JZk5lZWRlZCBtZXRob2QgdGhhdCB0YWtlcyBhIGNhbGxiYWNrLgorICAgICAg
ICBUaGlzIGNhbGxiYWNrIHdpbGwgc2V0dGxlIHRoZSBwcm9taXNlcyBhbmQgd2l0aFVzZXJBY3Rp
dmF0aW9uSWZOZWVkZWQgaXMgcmVzcG9uc2libGUgdG8gdGFrZSB0aGUgdXNlciBhY3RpdmF0aW9u
IHRva2VuIGlmIG5lZWRlZC4KKyAgICAgICAgSlMgc291cmNlcyB3aWxsIG5vdCBoYXZlIGFueSBz
dWNoIG1ldGhvZCBhbmQgYnkgZGVmYXVsdCB3aXRoVXNlckFjdGl2YXRpb25JZk5lZWRlZCB3aWxs
IGp1c3QgY2FsbCB0aGUgZ2l2ZW4gY2FsbGJhY2suCisKKyAgICAgICAgRmV0Y2hCb2R5U291cmNl
IGltcGxlbWVudHMgd2l0aFVzZXJBY3RpdmF0aW9uSWZOZWVkZWQgYnkgY2hlY2tpbmcgd2hldGhl
ciBpdHMgYm9keSBvd25lciBoYXMgYSB2YWxpZCB1c2VyIGdlc3R1cmUuCisgICAgICAgIElmIHNv
LCBpdCB3aWxsIGVuYWJsZSB1c2VyIGFjdGl2YXRpb24gd2hpbGUgdGhlIGNhbGxiYWNrIGlzIGV4
ZWN1dGVkLgorCisgICAgICAgIEluIGNhc2Ugb2YgdGVlaW5nLCB0aGUgdGVlZCBzb3VyY2VzIHdp
bGwgdXNlIHRoZSBvcmlnaW5hbCBzb3VyY2Ugd2l0aFVzZXJBY3RpdmF0aW9uSWZOZWVkZWQgbWV0
aG9kIHRvIGVuYWJsZSByZXNwb25zZSBjbG9uaW5nLgorCisgICAgICAgIFdpbGwgYWRkIHRlc3Qg
aW4gZm9sbG93LXVwIHBhdGNoLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgor
ICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaEJv
ZHlPd25lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHlPd25lcjo6Y3JlYXRlUmVh
ZGFibGVTdHJlYW0pOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5T3duZXI6OnN0b3JlVXNl
ckdlc3R1cmVUb2tlbik6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHlPd25lcjo6aGFzVmFs
aWRVc2VyR2VzdHVyZSBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlP
d25lci5oOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5T3duZXI6OnVzZXJHZXN0dXJlVG9r
ZW4pOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5U291cmNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZldGNoQm9keVNvdXJjZTo6d2l0aFVzZXJBY3RpdmF0aW9uSWZOZWVkZWQp
OgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5U291cmNlLmg6CisgICAgICAgICog
TW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZldGNo
UmVzcG9uc2U6OmZldGNoKToKKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJl
YW0uanM6CisgICAgICAgIChpbml0aWFsaXplUmVhZGFibGVTdHJlYW0pOgorICAgICAgICAqIE1v
ZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUludGVybmFscy5qczoKKyAgICAgICAgKHJlYWRh
YmxlU3RyZWFtVGVlKToKKyAgICAgICAgKHJlYWRhYmxlU3RyZWFtRXJyb3IpOgorICAgICAgICAo
cmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlclB1bGwpOgorICAgICAgICAocmVhZGFibGVT
dHJlYW1DbG9zZSk6CisgICAgICAgICogTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291
cmNlLmg6CisgICAgICAgICogTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNlLmlk
bDoKKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1Tb3VyY2VDYWxsYmFj
ay5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1Tb3Vy
Y2VDYWxsYmFjay5pZGw6IEFkZGVkLgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAq
IFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9XZWJDb3JlQnVpbHRpbk5hbWVzLmg6CisKIDIwMjAtMDctMjkgIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIHNjYWxlUmVzb2x1dGlvbkRvd25CeSBoYXMgbm8g
ZWZmZWN0IG9uIFJUQ1J0cFNlbmRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA3NWQwMjc1Njlj
ODNkODdjNmJjOWE5ZTczODdlZDdhOTM2MDdkMWY1Li5kNTYxMDNhNTU5OTE4MjdmMGViYWYzODE5
OWIwNjQwMjkwZTY3NWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNDQzLDYgKzQ0Myw3IEBA
IHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRh
YmxlU3RyZWFtRGVmYXVsdFJlYWRlci5pZGwKICAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVT
dHJlYW1TaW5rLmlkbAogICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNvdXJjZS5p
ZGwKKyAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1Tb3VyY2VDYWxsYmFjay5pZGwK
ICAgICBNb2R1bGVzL3N0cmVhbXMvV3JpdGFibGVTdHJlYW0uaWRsCiAKICAgICBNb2R1bGVzL3dl
YmF1ZGlvL0FuYWx5c2VyTm9kZS5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDljM2Q5N2NhMDNiOWQ1NDkwMGM4ZTczZDVkMDBjMzky
Njc1NjQ3YWUuLmQ1NjE1MzM3NTVlNWNjNDAyYzdkZmE0YzI2MzM4YThjNzA0ZWJiOGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysr
IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMjkw
LDYgKzI5MCw3IEBAICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVh
bURlZmF1bHRSZWFkZXIuanMKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJs
ZVN0cmVhbUludGVybmFscy5qcwogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9zdHJlYW1zL1JlYWRh
YmxlU3RyZWFtU2luay5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJs
ZVN0cmVhbVNvdXJjZS5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJs
ZVN0cmVhbVNvdXJjZUNhbGxiYWNrLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9zdHJlYW1z
L1N0cmVhbUludGVybmFscy5qcwogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9zdHJlYW1zL1dyaXRh
YmxlU3RyZWFtLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9zdHJlYW1zL1dyaXRhYmxlU3Ry
ZWFtLmpzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQu
eGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVs
aXN0CmluZGV4IDc1MDA1MWIyOTg1NWQ2YTcwZDg2MTE4Mzc3ZjNlODljNDIwNmRiMTMuLmI5Njlk
MmY3NTljYjk2OTI2MDEzN2MzZWIwNjc1NzdmNmY2MmZmYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0xNDU4LDYgKzE0NTgsOCBA
QCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JlYWRhYmxl
U3RyZWFtU2luay5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTUmVhZGFibGVTdHJlYW1TaW5rLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTUmVhZGFibGVTdHJlYW1Tb3VyY2UuY3BwCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JlYWRhYmxlU3RyZWFtU291cmNlLmgK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUmVhZGFibGVT
dHJlYW1Tb3VyY2VDYWxsYmFjay5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTUmVhZGFibGVTdHJlYW1Tb3VyY2VDYWxsYmFjay5oCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JlbW90ZURPTVdpbmRvdy5jcHAK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUmVtb3RlRE9N
V2luZG93LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
UmVtb3RlUGxheWJhY2suY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBlMTQ3
ZWQxZGVlZjhmMjgwYTIwZTI5YWMzOTJhNWE4MjAxNDY5YjgxLi40Nzk1MjIyZWFmZjVlZjBlOTMx
YWZiODYwMDdjNTc3NDJiYjVkNWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAg
LTM3Niw2ICszNzYsNyBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyLmlkbCBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1TaW5rLmlkbCBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1Tb3VyY2UuaWRsIFwKKyAgICAkKFdl
YkNvcmUpL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNvdXJjZUNhbGxiYWNrLmlkbCBc
CiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVhbXMvV3JpdGFibGVTdHJlYW0uaWRsIFwKICAg
ICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQW5hbHlzZXJOb2RlLmlkbCBcCiAgICAgJChX
ZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyLmlkbCBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZQppbmRleCAwNmUzNTE5YTBkNzRmZGNjMGEwZjAxY2RhOTg0NmZmZWYyOTg4ZmJiLi43ZDI2MzU4
ZmE5ZmUxNDU2N2FhNjhlYmNlNWY3NWQxZDE1NTBlOTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAg
LTExNyw2ICsxMTcsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAg
ICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtQ2h1bmsuaAogICAgIE1vZHVsZXMvc3Ry
ZWFtcy9SZWFkYWJsZVN0cmVhbVNpbmsuaAogICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0
cmVhbVNvdXJjZS5oCisgICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNlQ2Fs
bGJhY2suaAogCiAgICAgTW9kdWxlcy93ZWJhdXRobi9BdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVm
ZXJlbmNlLmgKICAgICBNb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0Ns
aWVudElucHV0cy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0Zl
dGNoQm9keU93bmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5
T3duZXIuY3BwCmluZGV4IGRmNjNmMjQ5NTBlY2UzODk5N2UyYmI4NmU4ZmJlNjFiMjRjM2I0ZDUu
LjI0ZTFjOWIzZjgyOWE5ZGQ3OTI3NTA4N2FiMTkyNmI4ZjZmYTQ1YjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5T3duZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5T3duZXIuY3BwCkBAIC0zNiw2ICszNiw3
IEBACiAjaW5jbHVkZSAiSlNCbG9iLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgogI2lu
Y2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKKyNpbmNsdWRlICJVc2VyR2VzdHVyZUluZGljYXRv
ci5oIgogI2luY2x1ZGUgIldpbmRvd0V2ZW50TG9vcC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkBAIC0zMzgsNyArMzM5LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gRmV0Y2hCb2R5T3duZXI6OmNy
ZWF0ZVJlYWRhYmxlU3RyZWFtKEpTQzo6SlNHbG9iYWxPYmplY3QmIHN0YXQKICAgICAgICAgcmV0
dXJuIHsgfTsKICAgICB9CiAKLSAgICBtX3JlYWRhYmxlU3RyZWFtU291cmNlID0gYWRvcHRSZWYo
Km5ldyBGZXRjaEJvZHlTb3VyY2UoKnRoaXMpKTsKKyAgICBtX3JlYWRhYmxlU3RyZWFtU291cmNl
ID0gRmV0Y2hCb2R5U291cmNlOjpjcmVhdGUoKnRoaXMpOwogICAgIGF1dG8gc3RyZWFtT3JFeGNl
cHRpb24gPSBSZWFkYWJsZVN0cmVhbTo6Y3JlYXRlKHN0YXRlLCBtX3JlYWRhYmxlU3RyZWFtU291
cmNlKTsKICAgICBpZiAoVU5MSUtFTFkoc3RyZWFtT3JFeGNlcHRpb24uaGFzRXhjZXB0aW9uKCkp
KSB7CiAgICAgICAgIG1fcmVhZGFibGVTdHJlYW1Tb3VyY2UgPSBudWxscHRyOwpAQCAtNDE2LDQg
KzQxNywxNCBAQCB2b2lkIEZldGNoQm9keU93bmVyOjpzZXRMb2FkaW5nRXJyb3IoUmVzb3VyY2VF
cnJvciYmIGVycm9yKQogICAgIG1fbG9hZGluZ0Vycm9yID0gV1RGTW92ZShlcnJvcik7CiB9CiAK
K3ZvaWQgRmV0Y2hCb2R5T3duZXI6OnN0b3JlVXNlckdlc3R1cmVUb2tlbigpCit7CisgICAgbV91
c2VyR2VzdHVyZVRva2VuID0gVXNlckdlc3R1cmVJbmRpY2F0b3I6OmN1cnJlbnRVc2VyR2VzdHVy
ZSgpOworfQorCitib29sIEZldGNoQm9keU93bmVyOjpoYXNWYWxpZFVzZXJHZXN0dXJlKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV91c2VyR2VzdHVyZVRva2VuICYmICFtX3VzZXJHZXN0dXJlVG9r
ZW4tPmhhc0V4cGlyZWQoVXNlckdlc3R1cmVUb2tlbjo6bWF4aW11bUludGVydmFsRm9yVXNlckdl
c3R1cmVGb3J3YXJkaW5nRm9yRmV0Y2goKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5T3duZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5T3duZXIuaAppbmRleCBh
MzRjOTI2MjU0OWI4MDljNTMzMGU2NDU5N2IxNTg5NTZlMWRkN2EyLi4yZmIxNDNkOTI0NGY3ZDQ4
MWVmODhjNWM3ZjE3MWZkOWRiNDVkZmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZldGNoL0ZldGNoQm9keU93bmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
ZXRjaC9GZXRjaEJvZHlPd25lci5oCkBAIC00MCw2ICs0MCw4IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAorY2xhc3MgVXNlckdlc3R1cmVJbmRpY2F0b3I7CisKIGNsYXNzIEZldGNoQm9keU93
bmVyIDogcHVibGljIFJlZkNvdW50ZWQ8RmV0Y2hCb2R5T3duZXI+LCBwdWJsaWMgQWN0aXZlRE9N
T2JqZWN0IHsKIHB1YmxpYzoKICAgICBGZXRjaEJvZHlPd25lcihTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiwgT3B0aW9uYWw8RmV0Y2hCb2R5PiYmLCBSZWY8RmV0Y2hIZWFkZXJzPiYmKTsKQEAgLTcw
LDYgKzcyLDkgQEAgcHVibGljOgogICAgIFJlc291cmNlRXJyb3IgbG9hZGluZ0Vycm9yKCkgY29u
c3Q7CiAgICAgT3B0aW9uYWw8RXhjZXB0aW9uPiBsb2FkaW5nRXhjZXB0aW9uKCkgY29uc3Q7CiAK
KyAgICBib29sIGhhc1ZhbGlkVXNlckdlc3R1cmUoKSBjb25zdDsKKyAgICBVc2VyR2VzdHVyZVRv
a2VuKiB1c2VyR2VzdHVyZVRva2VuKCkgeyByZXR1cm4gbV91c2VyR2VzdHVyZVRva2VuLmdldCgp
OyB9CisKIHByb3RlY3RlZDoKICAgICBjb25zdCBGZXRjaEJvZHkmIGJvZHkoKSBjb25zdCB7IHJl
dHVybiAqbV9ib2R5OyB9CiAgICAgRmV0Y2hCb2R5JiBib2R5KCkgeyByZXR1cm4gKm1fYm9keTsg
fQpAQCAtOTUsNiArMTAwLDggQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgc2V0TG9hZGluZ0Vycm9y
KEV4Y2VwdGlvbiYmKTsKICAgICB2b2lkIHNldExvYWRpbmdFcnJvcihSZXNvdXJjZUVycm9yJiYp
OwogCisgICAgdm9pZCBzdG9yZVVzZXJHZXN0dXJlVG9rZW4oKTsKKwogcHJpdmF0ZToKICAgICAv
LyBCbG9iIGxvYWRpbmcgcm91dGluZXMKICAgICB2b2lkIGJsb2JDaHVuayhjb25zdCBjaGFyKiwg
c2l6ZV90KTsKQEAgLTEyOCw2ICsxMzUsNyBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIE9w
dGlvbmFsPEJsb2JMb2FkZXI+IG1fYmxvYkxvYWRlcjsKICAgICBib29sIG1faXNCb2R5T3BhcXVl
IHsgZmFsc2UgfTsKKyAgICBSZWZQdHI8VXNlckdlc3R1cmVUb2tlbj4gbV91c2VyR2VzdHVyZVRv
a2VuOwogCiAgICAgVmFyaWFudDxzdGQ6Om51bGxwdHJfdCwgRXhjZXB0aW9uLCBSZXNvdXJjZUVy
cm9yPiBtX2xvYWRpbmdFcnJvcjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZldGNoL0ZldGNoQm9keVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zl
dGNoL0ZldGNoQm9keVNvdXJjZS5jcHAKaW5kZXggMmI2YWJjNWJiODEwMDk5ZGZmOTAyZDk0YTZj
Y2RjMzRlNDY0MjRhNC4uNjMyOGRkNjhlZTRkZmQwMTY1MDZjNDIxMDA2MmFmY2YwZjAyYzFiYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlTb3VyY2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5U291cmNlLmNw
cApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkZldGNoQm9keVNvdXJjZS5oIgogCiAjaW5j
bHVkZSAiRmV0Y2hSZXNwb25zZS5oIgorI2luY2x1ZGUgIlJlYWRhYmxlU3RyZWFtU291cmNlQ2Fs
bGJhY2suaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC05NCw0ICs5NSwxNSBAQCB2b2lk
IEZldGNoQm9keVNvdXJjZTo6ZXJyb3IoY29uc3QgRXhjZXB0aW9uJiB2YWx1ZSkKICAgICBtX2Jv
ZHlPd25lciA9IG51bGxwdHI7CiB9CiAKK3ZvaWQgRmV0Y2hCb2R5U291cmNlOjp3aXRoVXNlckFj
dGl2YXRpb25JZk5lZWRlZChSZWY8UmVhZGFibGVTdHJlYW1Tb3VyY2VDYWxsYmFjaz4mJiBjYWxs
YmFjaykKK3sKKyAgICBpZiAoIW1fYm9keU93bmVyIHx8ICFtX2JvZHlPd25lci0+aGFzVmFsaWRV
c2VyR2VzdHVyZSgpKSB7CisgICAgICAgIGNhbGxiYWNrLT5oYW5kbGVFdmVudCgpOworICAgICAg
ICByZXR1cm47CisgICAgfQorICAgIFVzZXJHZXN0dXJlSW5kaWNhdG9yIGdlc3R1cmVJbmRpY2F0
b3IobV9ib2R5T3duZXItPnVzZXJHZXN0dXJlVG9rZW4oKSwgVXNlckdlc3R1cmVUb2tlbjo6R2Vz
dHVyZVNjb3BlOjpNZWRpYU9ubHksIFVzZXJHZXN0dXJlVG9rZW46OklzUHJvcGFnYXRlZEZyb21G
ZXRjaDo6WWVzKTsKKyAgICBjYWxsYmFjay0+aGFuZGxlRXZlbnQoKTsKK30KKworCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNo
L0ZldGNoQm9keVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJv
ZHlTb3VyY2UuaAppbmRleCBiOTVkZDExNjliNDE1YmQ4NTg4ZDE2ZDkyYTVmMjM4NWQ4N2M2NTgw
Li5iNjc0NDk1YzMwNGY3YTlkMWFjY2FkMWQ5MGJmMTdlOWI3OTYyYTRlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keVNvdXJjZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5U291cmNlLmgKQEAgLTM5LDcgKzM5LDcg
QEAgY2xhc3MgRmV0Y2hCb2R5T3duZXI7CiAKIGNsYXNzIEZldGNoQm9keVNvdXJjZSBmaW5hbCA6
IHB1YmxpYyBSZWFkYWJsZVN0cmVhbVNvdXJjZSB7CiBwdWJsaWM6Ci0gICAgRmV0Y2hCb2R5U291
cmNlKEZldGNoQm9keU93bmVyJik7CisgICAgc3RhdGljIFJlZjxGZXRjaEJvZHlTb3VyY2U+IGNy
ZWF0ZShGZXRjaEJvZHlPd25lciYgb3duZXIpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRmV0Y2hC
b2R5U291cmNlKG93bmVyKSk7IH0KIAogICAgIGJvb2wgZW5xdWV1ZShSZWZQdHI8SlNDOjpBcnJh
eUJ1ZmZlcj4mJiBjaHVuaykgeyByZXR1cm4gY29udHJvbGxlcigpLmVucXVldWUoV1RGTW92ZShj
aHVuaykpOyB9CiAgICAgdm9pZCBjbG9zZSgpOwpAQCAtNTEsMTEgKzUxLDE0IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGRldGFjaCgpIHsgbV9ib2R5T3duZXIgPSBudWxscHRyOyB9CiAKIHByaXZhdGU6
CisgICAgZXhwbGljaXQgRmV0Y2hCb2R5U291cmNlKEZldGNoQm9keU93bmVyJik7CisKICAgICB2
b2lkIGRvU3RhcnQoKSBmaW5hbDsKICAgICB2b2lkIGRvUHVsbCgpIGZpbmFsOwogICAgIHZvaWQg
ZG9DYW5jZWwoKSBmaW5hbDsKICAgICB2b2lkIHNldEFjdGl2ZSgpIGZpbmFsOwogICAgIHZvaWQg
c2V0SW5hY3RpdmUoKSBmaW5hbDsKKyAgICB2b2lkIHdpdGhVc2VyQWN0aXZhdGlvbklmTmVlZGVk
KFJlZjxSZWFkYWJsZVN0cmVhbVNvdXJjZUNhbGxiYWNrPiYmKSBmaW5hbDsKIAogICAgIEZldGNo
Qm9keU93bmVyKiBtX2JvZHlPd25lcjsKICAgICBib29sIG1faXNDYW5jZWxsaW5nIHsgZmFsc2Ug
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25z
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuY3BwCmlu
ZGV4IDQyNjM5MWRjZTg0Y2VmMzM0ZGYyNWQyY2QwNGM2NzBkYzk2MzQxYmIuLmE5ZTdiNmQyMGZm
ZmYzOTk2MGNiNWI2Mjc2YzJjMWVhZWJmNjZiZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmNwcApAQCAtMjQzLDYgKzI0Myw3IEBAIHZvaWQgRmV0
Y2hSZXNwb25zZTo6ZmV0Y2goU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgRmV0Y2hS
ZXF1ZXN0JiByZXF1ZXN0CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRmV0Y2go
Y29udGV4dCwgcmVxdWVzdC51cmwoKS5zdHJpbmcoKSk7CiAKICAgICBhdXRvIHJlc3BvbnNlID0g
YWRvcHRSZWYoKm5ldyBGZXRjaFJlc3BvbnNlKGNvbnRleHQsIEZldGNoQm9keSB7IH0sIEZldGNo
SGVhZGVyczo6Y3JlYXRlKEZldGNoSGVhZGVyczo6R3VhcmQ6OkltbXV0YWJsZSksIHsgfSkpOwor
ICAgIHJlc3BvbnNlLT5zdG9yZVVzZXJHZXN0dXJlVG9rZW4oKTsKIAogICAgIHJlc3BvbnNlLT5i
b2R5KCkuY29uc3VtZXIoKS5zZXRBc0xvYWRpbmcoKTsKIApAQCAtMjg1LDcgKzI4Niw3IEBAIHZv
aWQgRmV0Y2hSZXNwb25zZTo6Qm9keUxvYWRlcjo6ZGlkU3VjY2VlZCgpCiAgICAgaWYgKGF1dG8g
Y29uc3VtZURhdGFDYWxsYmFjayA9IFdURk1vdmUobV9jb25zdW1lRGF0YUNhbGxiYWNrKSkKICAg
ICAgICAgY29uc3VtZURhdGFDYWxsYmFjayhudWxscHRyKTsKIAotICAgIGlmIChtX2xvYWRlci0+
aXNTdGFydGVkKCkpIHsKKyAgICBpZiAobV9sb2FkZXIgJiYgbV9sb2FkZXItPmlzU3RhcnRlZCgp
KSB7CiAgICAgICAgIFJlZjxGZXRjaFJlc3BvbnNlPiBwcm90ZWN0b3IobV9yZXNwb25zZSk7CiAg
ICAgICAgIG1fcmVzcG9uc2UubV9ib2R5TG9hZGVyID0gbnVsbHB0cjsKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uanMgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uanMKaW5kZXggY2Ux
ODg5OWFiZmI0NTIzMzU2NWFmMzI0NzEyYjdiMjFmOTQzNjkyMy4uYWZiOGNiZDUzNjI2YTU4ZDI2
NGU0NTE3YmY4M2NlZDNjODZjZTEyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5qcwpAQCAtNDYsNiArNDYsOSBAQCBmdW5jdGlvbiBpbml0
aWFsaXplUmVhZGFibGVTdHJlYW0odW5kZXJseWluZ1NvdXJjZSwgc3RyYXRlZ3kpCiAgICAgLy8g
SW5pdGlhbGl6ZWQgd2l0aCBudWxsIHZhbHVlIHRvIGVuYWJsZSBkaXN0aW5jdGlvbiB3aXRoIHVu
ZGVmaW5lZCBjYXNlLgogICAgIEBwdXRCeUlkRGlyZWN0UHJpdmF0ZSh0aGlzLCAicmVhZGFibGVT
dHJlYW1Db250cm9sbGVyIiwgbnVsbCk7CiAKKyAgICBpZiAodW5kZXJseWluZ1NvdXJjZS5Ad2l0
aFVzZXJBY3RpdmF0aW9uSWZOZWVkZWQgPT09IEB1bmRlZmluZWQpCisgICAgICAgIHVuZGVybHlp
bmdTb3VyY2UuQHdpdGhVc2VyQWN0aXZhdGlvbklmTmVlZGVkID0gY2FsbGJhY2sgPT4gY2FsbGJh
Y2soKTsKKwogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgaW50cm9kdWNlIGh0dHBzOi8vc3RyZWFt
cy5zcGVjLndoYXR3Zy5vcmcvI2NyZWF0ZS1yZWFkYWJsZS1zdHJlYW0uCiAgICAgLy8gRm9yIG5v
dywgd2UgZW11bGF0ZSB0aGlzIHdpdGggdW5kZXJseWluZ1NvdXJjZSB3aXRoIHByaXZhdGUgcHJv
cGVydGllcy4KICAgICBpZiAoQGdldEJ5SWREaXJlY3RQcml2YXRlKHVuZGVybHlpbmdTb3VyY2Us
ICJwdWxsIikgIT09IEB1bmRlZmluZWQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUludGVybmFscy5qcyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUludGVybmFscy5qcwppbmRleCAzMjU0MDIx
ZjI2MzdjMTg0YmU0MjY4YzhiODc0MjNmYjVkNzdiNDc2Li4zYmQ3NDc3ZmU3MmQyNmFjNjBjZGMz
MmQ3YjY5MTBlODQ2NjA5MjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0
cmVhbXMvUmVhZGFibGVTdHJlYW1JbnRlcm5hbHMuanMKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtSW50ZXJuYWxzLmpzCkBAIC0xNTAsMTUgKzE1MCwx
OSBAQCBmdW5jdGlvbiByZWFkYWJsZVN0cmVhbVRlZShzdHJlYW0sIHNob3VsZENsb25lKQogCiAg
ICAgdGVlU3RhdGUuY2FuY2VsUHJvbWlzZUNhcGFiaWxpdHkgPSBAbmV3UHJvbWlzZUNhcGFiaWxp
dHkoQFByb21pc2UpOwogCisgICAgY29uc3QgY29udHJvbGxlciA9IEBnZXRCeUlkRGlyZWN0UHJp
dmF0ZShzdHJlYW0sICJyZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIiKTsKKyAgICBjb25zdCB1bmRl
cmx5aW5nU291cmNlID0gQGdldEJ5SWREaXJlY3RQcml2YXRlKGNvbnRyb2xsZXIsICJ1bmRlcmx5
aW5nU291cmNlIik7CiAgICAgY29uc3QgcHVsbEZ1bmN0aW9uID0gQHJlYWRhYmxlU3RyZWFtVGVl
UHVsbEZ1bmN0aW9uKHRlZVN0YXRlLCByZWFkZXIsIHNob3VsZENsb25lKTsKIAogICAgIGNvbnN0
IGJyYW5jaDFTb3VyY2UgPSB7IH07CiAgICAgQHB1dEJ5SWREaXJlY3RQcml2YXRlKGJyYW5jaDFT
b3VyY2UsICJwdWxsIiwgcHVsbEZ1bmN0aW9uKTsKICAgICBAcHV0QnlJZERpcmVjdFByaXZhdGUo
YnJhbmNoMVNvdXJjZSwgImNhbmNlbCIsIEByZWFkYWJsZVN0cmVhbVRlZUJyYW5jaDFDYW5jZWxG
dW5jdGlvbih0ZWVTdGF0ZSwgc3RyZWFtKSk7CisgICAgYnJhbmNoMVNvdXJjZS5Ad2l0aFVzZXJB
Y3RpdmF0aW9uSWZOZWVkZWQgPSAoY2FsbGJhY2spID0+IHVuZGVybHlpbmdTb3VyY2UuQHdpdGhV
c2VyQWN0aXZhdGlvbklmTmVlZGVkKGNhbGxiYWNrKTsKIAogICAgIGNvbnN0IGJyYW5jaDJTb3Vy
Y2UgPSB7IH07CiAgICAgQHB1dEJ5SWREaXJlY3RQcml2YXRlKGJyYW5jaDJTb3VyY2UsICJwdWxs
IiwgcHVsbEZ1bmN0aW9uKTsKICAgICBAcHV0QnlJZERpcmVjdFByaXZhdGUoYnJhbmNoMlNvdXJj
ZSwgImNhbmNlbCIsIEByZWFkYWJsZVN0cmVhbVRlZUJyYW5jaDJDYW5jZWxGdW5jdGlvbih0ZWVT
dGF0ZSwgc3RyZWFtKSk7CisgICAgYnJhbmNoMlNvdXJjZS5Ad2l0aFVzZXJBY3RpdmF0aW9uSWZO
ZWVkZWQgPSAoY2FsbGJhY2spID0+IHVuZGVybHlpbmdTb3VyY2UuQHdpdGhVc2VyQWN0aXZhdGlv
bklmTmVlZGVkKGNhbGxiYWNrKTsKIAogICAgIGNvbnN0IGJyYW5jaDEgPSBuZXcgQFJlYWRhYmxl
U3RyZWFtKGJyYW5jaDFTb3VyY2UpOwogICAgIGNvbnN0IGJyYW5jaDIgPSBuZXcgQFJlYWRhYmxl
U3RyZWFtKGJyYW5jaDJTb3VyY2UpOwpAQCAtMjk0LDI0ICsyOTgsMjYgQEAgZnVuY3Rpb24gcmVh
ZGFibGVTdHJlYW1FcnJvcihzdHJlYW0sIGVycm9yKQogICAgIGlmICghQGdldEJ5SWREaXJlY3RQ
cml2YXRlKHN0cmVhbSwgInJlYWRlciIpKQogICAgICAgICByZXR1cm47CiAKLSAgICBjb25zdCBy
ZWFkZXIgPSBAZ2V0QnlJZERpcmVjdFByaXZhdGUoc3RyZWFtLCAicmVhZGVyIik7Ci0KLSAgICBp
ZiAoQGlzUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyKHJlYWRlcikpIHsKLSAgICAgICAgY29u
c3QgcmVxdWVzdHMgPSBAZ2V0QnlJZERpcmVjdFByaXZhdGUocmVhZGVyLCAicmVhZFJlcXVlc3Rz
Iik7Ci0gICAgICAgIGZvciAobGV0IGluZGV4ID0gMCwgbGVuZ3RoID0gcmVxdWVzdHMubGVuZ3Ro
OyBpbmRleCA8IGxlbmd0aDsgKytpbmRleCkKLSAgICAgICAgICAgIHJlcXVlc3RzW2luZGV4XS5A
cmVqZWN0LkBjYWxsKEB1bmRlZmluZWQsIGVycm9yKTsKLSAgICAgICAgQHB1dEJ5SWREaXJlY3RQ
cml2YXRlKHJlYWRlciwgInJlYWRSZXF1ZXN0cyIsIFtdKTsKLSAgICB9IGVsc2UgewotICAgICAg
ICBAYXNzZXJ0KEBpc1JlYWRhYmxlU3RyZWFtQllPQlJlYWRlcihyZWFkZXIpKTsKLSAgICAgICAg
Y29uc3QgcmVxdWVzdHMgPSBAZ2V0QnlJZERpcmVjdFByaXZhdGUocmVhZGVyLCAicmVhZEludG9S
ZXF1ZXN0cyIpOwotICAgICAgICBmb3IgKGxldCBpbmRleCA9IDAsIGxlbmd0aCA9IHJlcXVlc3Rz
Lmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7ICsraW5kZXgpCi0gICAgICAgICAgICByZXF1ZXN0c1tp
bmRleF0uQHJlamVjdC5AY2FsbChAdW5kZWZpbmVkLCBlcnJvcik7Ci0gICAgICAgIEBwdXRCeUlk
RGlyZWN0UHJpdmF0ZShyZWFkZXIsICJyZWFkSW50b1JlcXVlc3RzIiwgW10pOwotICAgIH0KKyAg
ICBAcmVhZGFibGVTdHJlYW1XaXRoVXNlckFjdGl2YXRpb25JZk5lZWRlZChzdHJlYW0sICgpID0+
ICB7CisgICAgICAgIGNvbnN0IHJlYWRlciA9IEBnZXRCeUlkRGlyZWN0UHJpdmF0ZShzdHJlYW0s
ICJyZWFkZXIiKTsKKworICAgICAgICBpZiAoQGlzUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVy
KHJlYWRlcikpIHsKKyAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gQGdldEJ5SWREaXJlY3RQ
cml2YXRlKHJlYWRlciwgInJlYWRSZXF1ZXN0cyIpOworICAgICAgICAgICAgZm9yIChsZXQgaW5k
ZXggPSAwLCBsZW5ndGggPSByZXF1ZXN0cy5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyArK2luZGV4
KQorICAgICAgICAgICAgICAgIHJlcXVlc3RzW2luZGV4XS5AcmVqZWN0LkBjYWxsKEB1bmRlZmlu
ZWQsIGVycm9yKTsKKyAgICAgICAgICAgIEBwdXRCeUlkRGlyZWN0UHJpdmF0ZShyZWFkZXIsICJy
ZWFkUmVxdWVzdHMiLCBbXSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBAYXNzZXJ0
KEBpc1JlYWRhYmxlU3RyZWFtQllPQlJlYWRlcihyZWFkZXIpKTsKKyAgICAgICAgICAgIGNvbnN0
IHJlcXVlc3RzID0gQGdldEJ5SWREaXJlY3RQcml2YXRlKHJlYWRlciwgInJlYWRJbnRvUmVxdWVz
dHMiKTsKKyAgICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMCwgbGVuZ3RoID0gcmVxdWVzdHMu
bGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgKytpbmRleCkKKyAgICAgICAgICAgICAgICByZXF1ZXN0
c1tpbmRleF0uQHJlamVjdC5AY2FsbChAdW5kZWZpbmVkLCBlcnJvcik7CisgICAgICAgICAgICBA
cHV0QnlJZERpcmVjdFByaXZhdGUocmVhZGVyLCAicmVhZEludG9SZXF1ZXN0cyIsIFtdKTsKKyAg
ICAgICAgfQogCi0gICAgQGdldEJ5SWREaXJlY3RQcml2YXRlKHJlYWRlciwgImNsb3NlZFByb21p
c2VDYXBhYmlsaXR5IikuQHJlamVjdC5AY2FsbChAdW5kZWZpbmVkLCBlcnJvcik7Ci0gICAgY29u
c3QgcHJvbWlzZSA9IEBnZXRCeUlkRGlyZWN0UHJpdmF0ZShyZWFkZXIsICJjbG9zZWRQcm9taXNl
Q2FwYWJpbGl0eSIpLkBwcm9taXNlOwotICAgIEBwdXRQcm9taXNlSW50ZXJuYWxGaWVsZChwcm9t
aXNlLCBAcHJvbWlzZUZpZWxkRmxhZ3MsIEBnZXRQcm9taXNlSW50ZXJuYWxGaWVsZChwcm9taXNl
LCBAcHJvbWlzZUZpZWxkRmxhZ3MpIHwgQHByb21pc2VGbGFnc0lzSGFuZGxlZCk7CisgICAgICAg
IEBnZXRCeUlkRGlyZWN0UHJpdmF0ZShyZWFkZXIsICJjbG9zZWRQcm9taXNlQ2FwYWJpbGl0eSIp
LkByZWplY3QuQGNhbGwoQHVuZGVmaW5lZCwgZXJyb3IpOworICAgICAgICBjb25zdCBwcm9taXNl
ID0gQGdldEJ5SWREaXJlY3RQcml2YXRlKHJlYWRlciwgImNsb3NlZFByb21pc2VDYXBhYmlsaXR5
IikuQHByb21pc2U7CisgICAgICAgIEBwdXRQcm9taXNlSW50ZXJuYWxGaWVsZChwcm9taXNlLCBA
cHJvbWlzZUZpZWxkRmxhZ3MsIEBnZXRQcm9taXNlSW50ZXJuYWxGaWVsZChwcm9taXNlLCBAcHJv
bWlzZUZpZWxkRmxhZ3MpIHwgQHByb21pc2VGbGFnc0lzSGFuZGxlZCk7CisgICAgfSk7CiB9CiAK
IGZ1bmN0aW9uIHJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXJDYWxsUHVsbElmTmVlZGVk
KGNvbnRyb2xsZXIpCkBAIC00MTIsNyArNDE4LDEyIEBAIGZ1bmN0aW9uIHJlYWRhYmxlU3RyZWFt
RGVmYXVsdENvbnRyb2xsZXJQdWxsKGNvbnRyb2xsZXIpCiAgICAgICAgICAgICBAcmVhZGFibGVT
dHJlYW1DbG9zZShzdHJlYW0pOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBAcmVhZGFibGVT
dHJlYW1EZWZhdWx0Q29udHJvbGxlckNhbGxQdWxsSWZOZWVkZWQoY29udHJvbGxlcik7Ci0gICAg
ICAgIHJldHVybiBAUHJvbWlzZS5AcmVzb2x2ZSh7dmFsdWU6IGNodW5rLCBkb25lOiBmYWxzZX0p
OworCisgICAgICAgIGxldCByZXN1bHQ7CisgICAgICAgIEByZWFkYWJsZVN0cmVhbVdpdGhVc2Vy
QWN0aXZhdGlvbklmTmVlZGVkKHN0cmVhbSwgKCkgPT4gIHsKKyAgICAgICAgICAgIHJlc3VsdCA9
IEBQcm9taXNlLkByZXNvbHZlKHt2YWx1ZTogY2h1bmssIGRvbmU6IGZhbHNlfSk7CisgICAgICAg
IH0pOworICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICBjb25zdCBwZW5kaW5nUHJv
bWlzZSA9IEByZWFkYWJsZVN0cmVhbUFkZFJlYWRSZXF1ZXN0KHN0cmVhbSk7CiAgICAgQHJlYWRh
YmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXJDYWxsUHVsbElmTmVlZGVkKGNvbnRyb2xsZXIpOwpA
QCAtNDQwLDE0ICs0NTEsMjkgQEAgZnVuY3Rpb24gcmVhZGFibGVTdHJlYW1DbG9zZShzdHJlYW0p
CiAgICAgaWYgKCFyZWFkZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChAaXNSZWFkYWJs
ZVN0cmVhbURlZmF1bHRSZWFkZXIocmVhZGVyKSkgewotICAgICAgICBjb25zdCByZXF1ZXN0cyA9
IEBnZXRCeUlkRGlyZWN0UHJpdmF0ZShyZWFkZXIsICJyZWFkUmVxdWVzdHMiKTsKLSAgICAgICAg
Zm9yIChsZXQgaW5kZXggPSAwLCBsZW5ndGggPSByZXF1ZXN0cy5sZW5ndGg7IGluZGV4IDwgbGVu
Z3RoOyArK2luZGV4KQotICAgICAgICAgICAgcmVxdWVzdHNbaW5kZXhdLkByZXNvbHZlLkBjYWxs
KEB1bmRlZmluZWQsIHt2YWx1ZTpAdW5kZWZpbmVkLCBkb25lOiB0cnVlfSk7Ci0gICAgICAgIEBw
dXRCeUlkRGlyZWN0UHJpdmF0ZShyZWFkZXIsICJyZWFkUmVxdWVzdHMiLCBbXSk7Ci0gICAgfQor
ICAgIEByZWFkYWJsZVN0cmVhbVdpdGhVc2VyQWN0aXZhdGlvbklmTmVlZGVkKHN0cmVhbSwgKCkg
PT4gIHsKKyAgICAgICAgaWYgKEBpc1JlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlcihyZWFkZXIp
KSB7CisgICAgICAgICAgICBjb25zdCByZXF1ZXN0cyA9IEBnZXRCeUlkRGlyZWN0UHJpdmF0ZShy
ZWFkZXIsICJyZWFkUmVxdWVzdHMiKTsKKyAgICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMCwg
bGVuZ3RoID0gcmVxdWVzdHMubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgKytpbmRleCkKKyAgICAg
ICAgICAgICAgICByZXF1ZXN0c1tpbmRleF0uQHJlc29sdmUuQGNhbGwoQHVuZGVmaW5lZCwge3Zh
bHVlOkB1bmRlZmluZWQsIGRvbmU6IHRydWV9KTsKKyAgICAgICAgICAgIEBwdXRCeUlkRGlyZWN0
UHJpdmF0ZShyZWFkZXIsICJyZWFkUmVxdWVzdHMiLCBbXSk7CisgICAgICAgIH0KKworICAgICAg
ICBAZ2V0QnlJZERpcmVjdFByaXZhdGUocmVhZGVyLCAiY2xvc2VkUHJvbWlzZUNhcGFiaWxpdHki
KS5AcmVzb2x2ZS5AY2FsbCgpOworICAgIH0pOworfQorCitmdW5jdGlvbiByZWFkYWJsZVN0cmVh
bVdpdGhVc2VyQWN0aXZhdGlvbklmTmVlZGVkKHN0cmVhbSwgY2FsbGJhY2spCit7CisgICAgY29u
c3QgY29udHJvbGxlciA9IEBnZXRCeUlkRGlyZWN0UHJpdmF0ZShzdHJlYW0sICJyZWFkYWJsZVN0
cmVhbUNvbnRyb2xsZXIiKTsKKyAgICBpZiAoIWNvbnRyb2xsZXIpCisgICAgICAgIHJldHVybiBj
YWxsYmFjaygpOworCisgICAgY29uc3QgdW5kZXJseWluZ1NvdXJjZSA9IEBnZXRCeUlkRGlyZWN0
UHJpdmF0ZShjb250cm9sbGVyLCAidW5kZXJseWluZ1NvdXJjZSIpOworICAgIGlmICghdW5kZXJs
eWluZ1NvdXJjZSB8fCAhdW5kZXJseWluZ1NvdXJjZS5Ad2l0aFVzZXJBY3RpdmF0aW9uSWZOZWVk
ZWQpCisgICAgICAgIHJldHVybiBjYWxsYmFjaygpOwogCi0gICAgQGdldEJ5SWREaXJlY3RQcml2
YXRlKHJlYWRlciwgImNsb3NlZFByb21pc2VDYXBhYmlsaXR5IikuQHJlc29sdmUuQGNhbGwoKTsK
KyAgICByZXR1cm4gdW5kZXJseWluZ1NvdXJjZS5Ad2l0aFVzZXJBY3RpdmF0aW9uSWZOZWVkZWQu
QGNhbGwodW5kZXJseWluZ1NvdXJjZSwgY2FsbGJhY2spOwogfQogCiBmdW5jdGlvbiByZWFkYWJs
ZVN0cmVhbUZ1bGZpbGxSZWFkUmVxdWVzdChzdHJlYW0sIGNodW5rLCBkb25lKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1Tb3VyY2UuaApp
bmRleCA5MWUwYzJjZmQ5OWExMzQwYTMxZjM5NGY0OWNlZTRkYzE5NWUxOWI4Li43OWY4MzE1OGNk
MDNlOThhNzg4MzkyZGMwNmI4YjkyZDQ0MmJhMGE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1Tb3VyY2UuaApAQCAtMzQsNiArMzQs
NyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBJRExUeXBlPiBj
bGFzcyBET01Qcm9taXNlRGVmZXJyZWQ7CitjbGFzcyBSZWFkYWJsZVN0cmVhbVNvdXJjZUNhbGxi
YWNrOwogCiBjbGFzcyBSZWFkYWJsZVN0cmVhbVNvdXJjZSA6IHB1YmxpYyBSZWZDb3VudGVkPFJl
YWRhYmxlU3RyZWFtU291cmNlPiB7CiBwdWJsaWM6CkBAIC00Myw2ICs0NCw4IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHB1bGwoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwogICAgIHZvaWQgY2Fu
Y2VsKEpTQzo6SlNWYWx1ZSk7CiAKKyAgICB2aXJ0dWFsIHZvaWQgd2l0aFVzZXJBY3RpdmF0aW9u
SWZOZWVkZWQoUmVmPFJlYWRhYmxlU3RyZWFtU291cmNlQ2FsbGJhY2s+JiYpID0gMDsKKwogICAg
IGJvb2wgaXNQdWxsaW5nKCkgY29uc3QgeyByZXR1cm4gISFtX3Byb21pc2U7IH0KIAogcHJvdGVj
dGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxl
U3RyZWFtU291cmNlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJs
ZVN0cmVhbVNvdXJjZS5pZGwKaW5kZXggYmU1NGUzMTQ0MTNjZDk0NmQzMjBjNDc0NjY1NWE4NTI2
ZGZkNzAyMC4uZGJkYmU4NzI0YmM1MTU5MmNlNGVhN2ExM2M5N2RhOGRmNDc1NzE1ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNl
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1T
b3VyY2UuaWRsCkBAIC0zNCw2ICszNCw4IEBACiAgICAgW0N1c3RvbV0gUHJvbWlzZTx2b2lkPiBw
dWxsKFJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIgY29udHJvbGxlcik7CiAgICAgdm9p
ZCBjYW5jZWwoYW55IHJlYXNvbik7CiAKKyAgICBbUHJpdmF0ZUlkZW50aWZpZXJdIHZvaWQgd2l0
aFVzZXJBY3RpdmF0aW9uSWZOZWVkZWQoUmVhZGFibGVTdHJlYW1Tb3VyY2VDYWxsYmFjayBjYWxs
YmFjayk7CisKICAgICAvLyBQbGFjZSBob2xkZXIgdG8ga2VlcCB0aGUgY29udHJvbGxlciBsaW5r
ZWQgdG8gdGhlIHNvdXJjZS4KICAgICBbQ2FjaGVkQXR0cmlidXRlLCBDdXN0b21HZXR0ZXJdIHJl
YWRvbmx5IGF0dHJpYnV0ZSBhbnkgY29udHJvbGxlcjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1Tb3VyY2VDYWxsYmFjay5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNlQ2FsbGJh
Y2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi44YTgwZmQ5MjI4OWJiOGRkMDI1MzE4MDU3OTkwODc4NDVmMDY5MmRl
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRh
YmxlU3RyZWFtU291cmNlQ2FsbGJhY2suaApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE2IENhbm9uIEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSByZXF1aXJlZCB0byBiZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBDYW5vbiBJbmMuIG5vciB0aGUgbmFtZXMgb2YK
KyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQ0FOT04gSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIENBTk9OIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUgorICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJB
Y3RpdmVET01DYWxsYmFjay5oIgorI2luY2x1ZGUgIkNhbGxiYWNrUmVzdWx0LmgiCisjaW5jbHVk
ZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit0ZW1wbGF0ZTx0
eXBlbmFtZSBJRExUeXBlPiBjbGFzcyBET01Qcm9taXNlRGVmZXJyZWQ7CisKK2NsYXNzIFJlYWRh
YmxlU3RyZWFtU291cmNlQ2FsbGJhY2sgOiBwdWJsaWMgUmVmQ291bnRlZDxSZWFkYWJsZVN0cmVh
bVNvdXJjZUNhbGxiYWNrPiwgcHVibGljIEFjdGl2ZURPTUNhbGxiYWNrIHsKK3B1YmxpYzoKKyAg
ICB1c2luZyBBY3RpdmVET01DYWxsYmFjazo6QWN0aXZlRE9NQ2FsbGJhY2s7CisKKyAgICB2aXJ0
dWFsIENhbGxiYWNrUmVzdWx0PHZvaWQ+IGhhbmRsZUV2ZW50KCkgPSAwOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJl
YW1zL1JlYWRhYmxlU3RyZWFtU291cmNlQ2FsbGJhY2suaWRsIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNlQ2FsbGJhY2suaWRsCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmEwZjgxYjc3MGMzODEwZDZjY2Y3N2M5NDk5NWM2NWIwN2I4OGU5MDIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1Tb3VyY2VD
YWxsYmFjay5pZGwKQEAgLTAsMCArMSwzMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBD
YW5vbiBJbmMuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgcmVxdWly
ZWQgdG8gYmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRo
ZXIgdGhlIG5hbWUgb2YgQ2Fub24gSW5jLiBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIENB
Tk9OIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBDQU5PTiBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyAqIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgor
ICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKK1sKKyAgICBKU0dlbmVyYXRlVG9KU09iamVjdCwKK10gY2FsbGJhY2sg
UmVhZGFibGVTdHJlYW1Tb3VyY2VDYWxsYmFjayA9IHZvaWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXgg
OGM0ZmE3NzM2MjI3OTZhNDkzZjg1OGZlMTY4NWJiYTU4MmE0NDQzMi4uNzY0OWUyZDVlN2U5MTcz
MWE2YjI1ZjU4OGNiOTdkM2E4NTVjYTA3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTMyNDAsNiArMzI0
MCw3IEBAIEpTUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlci5jcHAKIEpTUmVhZGFibGVT
dHJlYW1EZWZhdWx0UmVhZGVyLmNwcAogSlNSZWFkYWJsZVN0cmVhbVNpbmsuY3BwCiBKU1JlYWRh
YmxlU3RyZWFtU291cmNlLmNwcAorSlNSZWFkYWJsZVN0cmVhbVNvdXJjZUNhbGxiYWNrLmNwcAog
SlNSZW1vdGVET01XaW5kb3cuY3BwCiBKU1JlbW90ZVBsYXliYWNrLmNwcAogSlNSZW1vdGVQbGF5
YmFja0F2YWlsYWJpbGl0eUNhbGxiYWNrLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDI2NjhjY2JhNzE2NTg4MWU2OTQ4ZmYw
M2UwYWM2ZjNlYjI5NWYxNzUuLmQ1NTdkYTcyN2I5ZjU4YzkwZWNmZDYyNThhNTMxMjdmMTY5NDQw
MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTc0NTIsNiArNzQ1Miw4IEBACiAJCTQxNEFENDAwMjE0OThEMzEwMDUyMTY3NiAv
KiBSVENSdHBEZWNvZGluZ1BhcmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDUnRwRGVjb2Rp
bmdQYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNEFENDAxMjE0
OThEMzEwMDUyMTY3NiAvKiBSVENSdHBEZWNvZGluZ1BhcmFtZXRlcnMuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJUQ1J0
cERlY29kaW5nUGFyYW1ldGVycy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQx
NEFENDAyMjE0OThEMzIwMDUyMTY3NiAvKiBSVENSdHBDb2RpbmdQYXJhbWV0ZXJzLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBSVENSdHBDb2RpbmdQYXJhbWV0ZXJzLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDE0QjdGOUYyNEQxQjA5MTAwMzNENDQyIC8qIFJlYWRhYmxlU3RyZWFtU291cmNlQ2FsbGJh
Y2suaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtU291cmNlQ2FsbGJh
Y2suaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTRCN0ZBMTI0RDFCMTIzMDAz
M0Q0NDIgLyogUmVhZGFibGVTdHJlYW1Tb3VyY2VDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZWFkYWJsZVN0cmVhbVNvdXJjZUNhbGxiYWNrLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNEI4MjAyMUQ2REYwRDkwMDc3RUJFMyAvKiBTdHJ1Y3R1
cmVkQ2xvbmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3RydWN0
dXJlZENsb25lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE0QjgyMDMxRDZE
RjBEOTAwNzdFQkUzIC8qIFN0cnVjdHVyZWRDbG9uZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTdHJ1Y3R1cmVkQ2xvbmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDE0REVERTUxRjlGRTkxNTAwNDdDNDBEIC8qIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRW1wdHlGcmFtZUxvYWRlckNsaWVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTg3OTYsNiArMTg3OTgsOCBAQAogCQkJ
CTJENDNFQjJEMjM0NzJCQzMwMDJBMUVENCAvKiBSZWFkYWJsZVN0cmVhbVNvdXJjZS5jcHAgKi8s
CiAJCQkJNDE4QzM5NUIxQzhGMEE2MTAwNTFDOEEzIC8qIFJlYWRhYmxlU3RyZWFtU291cmNlLmgg
Ki8sCiAJCQkJNDE4QzM5NUMxQzhGMEE2MTAwNTFDOEEzIC8qIFJlYWRhYmxlU3RyZWFtU291cmNl
LmlkbCAqLywKKwkJCQk0MTRCN0ZBMTI0RDFCMTIzMDAzM0Q0NDIgLyogUmVhZGFibGVTdHJlYW1T
b3VyY2VDYWxsYmFjay5oICovLAorCQkJCTQxNEI3RjlGMjREMUIwOTEwMDMzRDQ0MiAvKiBSZWFk
YWJsZVN0cmVhbVNvdXJjZUNhbGxiYWNrLmlkbCAqLywKIAkJCQk5OTA4QjBGMTFCQ0FDRjkxMDBF
RDBGNTUgLyogU3RyZWFtSW50ZXJuYWxzLmpzICovLAogCQkJCTQxQTAyM0VEMUEzOURCNzkwMEY3
MjJERiAvKiBXcml0YWJsZVN0cmVhbS5pZGwgKi8sCiAJCQkJOTkwOEIwRUYxQkNBQ0Y5MTAwRUQw
Rjc1IC8qIFdyaXRhYmxlU3RyZWFtLmpzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCmluZGV4IGFjMzk2NjdkY2RjN2Q0N2E4ZGFjNmFk
NTE4ODg5YjYyNjk5NjZkN2QuLjFiNDRiODRhZTQ0M2FiNGQ3NzU2MTQyNjJiZTBlYjJhMjc1NjNj
NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGlu
TmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5h
bWVzLmgKQEAgLTQwMyw2ICs0MDMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8o
d2Via2l0SW5kZXhlZERCKSBcCiAgICAgbWFjcm8od2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCkg
XAogICAgIG1hY3JvKHdpbmRvdykgXAorICAgIG1hY3JvKHdpdGhVc2VyQWN0aXZhdGlvbklmTmVl
ZGVkKSBcCiAgICAgbWFjcm8od3JpdGluZykgXAogICAgIFdFQkNPUkVfQURESVRJT05BTF9QUklW
QVRFX0lERU5USUZJRVJTKG1hY3JvKSBcCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405563</attachid>
            <date>2020-07-30 05:54:42 -0700</date>
            <delta_ts>2020-07-30 09:00:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214722-20200730145440.patch</filename>
            <type>text/plain</type>
            <size>36029</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1MDc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjFmY2E3ZGUzNzc1ZWZm
ZWQ3ODRhNTJkNDI3N2EwZmUyMzJiNjBjZC4uYTM0YjllMzI4ZTM4ZjhjNzczOWU5NzFjY2I2OTAz
OTVkN2Y1ZDhlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDIwLTA3LTMwICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBQcm9wYWdhdGluZyBtZWRp
YSBvbmx5IHVzZXIgZ2VzdHVyZSB0aHJvdWdoIEZldGNoIFJlYWRhYmxlU3RyZWFtCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQ3MjIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIHNldHRsaW5nIGNs
b3NlZCBwcm9taXNlIG9yIHJlYWQgcHJvbWlzZXMsIFJlYWRhYmxlU3RyZWFtIHdpbGwgZmlyc3Qg
Y2hlY2sgd2hldGhlciBpdHMgc291cmNlIHNob3VsZCBlbmFibGUgdXNlciBhY3RpdmF0aW9uLgor
ICAgICAgICBUbyBkbyBzbywgUmVhZGFibGVTdHJlYW1Tb3VyY2UgaGFzIGEgbmV3IEB3aXRoVXNl
ckFjdGl2YXRpb25JZk5lZWRlZCBtZXRob2QgdGhhdCB0YWtlcyBhIGNhbGxiYWNrLgorICAgICAg
ICBUaGlzIGNhbGxiYWNrIHdpbGwgc2V0dGxlIHRoZSBwcm9taXNlcyBhbmQgd2l0aFVzZXJBY3Rp
dmF0aW9uSWZOZWVkZWQgaXMgcmVzcG9uc2libGUgdG8gdGFrZSB0aGUgdXNlciBhY3RpdmF0aW9u
IHRva2VuIGlmIG5lZWRlZC4KKyAgICAgICAgSlMgc291cmNlcyB3aWxsIG5vdCBoYXZlIGFueSBz
dWNoIG1ldGhvZCBhbmQgYnkgZGVmYXVsdCB3aXRoVXNlckFjdGl2YXRpb25JZk5lZWRlZCB3aWxs
IGp1c3QgY2FsbCB0aGUgZ2l2ZW4gY2FsbGJhY2suCisKKyAgICAgICAgRmV0Y2hCb2R5U291cmNl
IGltcGxlbWVudHMgd2l0aFVzZXJBY3RpdmF0aW9uSWZOZWVkZWQgYnkgY2hlY2tpbmcgd2hldGhl
ciBpdHMgYm9keSBvd25lciBoYXMgYSB2YWxpZCB1c2VyIGdlc3R1cmUuCisgICAgICAgIElmIHNv
LCBpdCB3aWxsIGVuYWJsZSB1c2VyIGFjdGl2YXRpb24gd2hpbGUgdGhlIGNhbGxiYWNrIGlzIGV4
ZWN1dGVkLgorCisgICAgICAgIEluIGNhc2Ugb2YgdGVlaW5nLCB0aGUgdGVlZCBzb3VyY2VzIHdp
bGwgdXNlIHRoZSBvcmlnaW5hbCBzb3VyY2Ugd2l0aFVzZXJBY3RpdmF0aW9uSWZOZWVkZWQgbWV0
aG9kIHRvIGVuYWJsZSByZXNwb25zZSBjbG9uaW5nLgorCisgICAgICAgIE5vdGUgdGhhdCB3aXRo
IHRoZSBjdXJyZW50IGRlc2lnbiwgb25seSBwcm9taXNlIHJlc29sdXRpb24gY2FsbGJhY2tzIHRo
YXQgYXJlIHJlZ2lzdGVyZWQgYXQgdGhlIG1vbWVudCB0aGUgcHJvbWlzZSBnZXRzIHJlc29sdmVk
IG1pZ2h0IGdldCB1c2VyIGFjdGl2YXRpb24uCisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9t
ZWRpYS91c2VyLWdlc3R1cmUtcHJlc2VydmVkLWFjcm9zcy1mZXRjaC1yZWFkYWJsZXN0cmVhbS5o
dG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNl
cy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2Zp
bGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogSGVhZGVy
cy5jbWFrZToKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNoQm9keU93bmVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZldGNoQm9keU93bmVyOjpjcmVhdGVSZWFkYWJsZVN0cmVhbSk6Cisg
ICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHlPd25lcjo6c3RvcmVVc2VyR2VzdHVyZVRva2VuKToK
KyAgICAgICAgKFdlYkNvcmU6OkZldGNoQm9keU93bmVyOjpoYXNWYWxpZFVzZXJHZXN0dXJlIGNv
bnN0KToKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNoQm9keU93bmVyLmg6CisgICAgICAg
IChXZWJDb3JlOjpGZXRjaEJvZHlPd25lcjo6dXNlckdlc3R1cmVUb2tlbik6CisgICAgICAgICog
TW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmV0
Y2hCb2R5U291cmNlOjp3aXRoVXNlckFjdGl2YXRpb25JZk5lZWRlZCk6CisgICAgICAgICogTW9k
dWxlcy9mZXRjaC9GZXRjaEJvZHlTb3VyY2UuaDoKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0Zl
dGNoUmVzcG9uc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hSZXNwb25zZTo6ZmV0Y2gp
OgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hSZXNwb25zZTo6Qm9keUxvYWRlcjo6ZGlkU3VjY2Vl
ZCk6CisgICAgICAgICogTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmpzOgorICAgICAg
ICAoaW5pdGlhbGl6ZVJlYWRhYmxlU3RyZWFtKToKKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMv
UmVhZGFibGVTdHJlYW1JbnRlcm5hbHMuanM6CisgICAgICAgIChyZWFkYWJsZVN0cmVhbVRlZSk6
CisgICAgICAgIChyZWFkYWJsZVN0cmVhbUVycm9yKToKKyAgICAgICAgKHJlYWRhYmxlU3RyZWFt
RGVmYXVsdENvbnRyb2xsZXJQdWxsKToKKyAgICAgICAgKHJlYWRhYmxlU3RyZWFtQ2xvc2UpOgor
ICAgICAgICAocmVhZGFibGVTdHJlYW1GdWxmaWxsUmVhZFJlcXVlc3QpOgorICAgICAgICAocmVh
ZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyUmVhZCk6CisgICAgICAgICogTW9kdWxlcy9zdHJlYW1z
L1JlYWRhYmxlU3RyZWFtU291cmNlLmg6CisgICAgICAgICogTW9kdWxlcy9zdHJlYW1zL1JlYWRh
YmxlU3RyZWFtU291cmNlLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVT
dHJlYW1Tb3VyY2VDYWxsYmFjay5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3N0cmVhbXMvUmVhZGFibGVTdHJlYW1Tb3VyY2UuaWRsLgorICAgICAgICAqIE1vZHVsZXMvc3Ry
ZWFtcy9SZWFkYWJsZVN0cmVhbVNvdXJjZUNhbGxiYWNrLmlkbDogQ29waWVkIGZyb20gU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNlLmlkbC4KKyAgICAg
ICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oOgorCiAy
MDIwLTA3LTMwICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZWZhY3RvciBISUQgZ2FtZXBhZCBjb2RlIHRvIGJlIG11Y2ggbGVzcyBmcmFnaWxlIGFuZCBtdWNo
IGVhc2llciB0byBoYWNrIG9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAwZjI5YzllODYzM2Y5
MmE5ODY4OWU0NzYwNTEzMmU0Y2U5N2NiNmM2Li5kOGIyYzYxYmJjZWExZDBkYzRhNDcxMDU5ZTQ0
NGJmYjMwMDVmOTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNDQzLDYgKzQ0Myw3IEBAIHNl
dChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxl
U3RyZWFtRGVmYXVsdFJlYWRlci5pZGwKICAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJl
YW1TaW5rLmlkbAogICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNvdXJjZS5pZGwK
KyAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1Tb3VyY2VDYWxsYmFjay5pZGwKICAg
ICBNb2R1bGVzL3N0cmVhbXMvV3JpdGFibGVTdHJlYW0uaWRsCiAKICAgICBNb2R1bGVzL3dlYmF1
ZGlvL0FuYWx5c2VyTm9kZS5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1p
bnB1dC54Y2ZpbGVsaXN0CmluZGV4IDNkMmY4YTMxNjcyYTMzNzliNjNiMGM3MjNhYzJhYzUyYWY2
NmNmMmMuLjkyMjhiMGU4OTE3MDVkNjAxZTI0YmQ4ZjRiMDZlMGQ2NWNlNThlNWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMjkwLDYg
KzI5MCw3IEBAICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbURl
ZmF1bHRSZWFkZXIuanMKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0
cmVhbUludGVybmFscy5qcwogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxl
U3RyZWFtU2luay5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0
cmVhbVNvdXJjZS5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0
cmVhbVNvdXJjZUNhbGxiYWNrLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9zdHJlYW1zL1N0
cmVhbUludGVybmFscy5qcwogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9zdHJlYW1zL1dyaXRhYmxl
U3RyZWFtLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9zdHJlYW1zL1dyaXRhYmxlU3RyZWFt
LmpzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNm
aWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
CmluZGV4IGU2ZWIwNzJiYTc1ZTJjMTUyNzNjMTgzN2UxYzdkMDg0YTE3N2Y5MTcuLjQwN2M0ZjZj
MDIxMTVmZmRiODAzZTY4ZTViZTc3M2MzOWNlMmE2ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0xNDY2LDYgKzE0NjYsOCBAQCAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JlYWRhYmxlU3Ry
ZWFtU2luay5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTUmVhZGFibGVTdHJlYW1TaW5rLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTUmVhZGFibGVTdHJlYW1Tb3VyY2UuY3BwCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JlYWRhYmxlU3RyZWFtU291cmNlLmgKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUmVhZGFibGVTdHJl
YW1Tb3VyY2VDYWxsYmFjay5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTUmVhZGFibGVTdHJlYW1Tb3VyY2VDYWxsYmFjay5oCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JlbW90ZURPTVdpbmRvdy5jcHAKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUmVtb3RlRE9NV2lu
ZG93LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUmVt
b3RlUGxheWJhY2suY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA2OWJhYjg5
MWFmNGU4OTBjODI5ODRiMTQwOGFiZWJmMzQ2OTFjN2U1Li45NjIwMzNlMWZlMDJiNzUxZjU4MWJl
NzQ2NDgzMjI2OTJhZDRmZGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTM3
Niw2ICszNzYsNyBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVz
L3N0cmVhbXMvUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1TaW5rLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1Tb3VyY2UuaWRsIFwKKyAgICAkKFdlYkNv
cmUpL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNvdXJjZUNhbGxiYWNrLmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVhbXMvV3JpdGFibGVTdHJlYW0uaWRsIFwKICAgICAk
KFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQW5hbHlzZXJOb2RlLmlkbCBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpp
bmRleCAwNmUzNTE5YTBkNzRmZGNjMGEwZjAxY2RhOTg0NmZmZWYyOTg4ZmJiLi43ZDI2MzU4ZmE5
ZmUxNDU2N2FhNjhlYmNlNWY3NWQxZDE1NTBlOTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTEx
Nyw2ICsxMTcsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAg
TW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtQ2h1bmsuaAogICAgIE1vZHVsZXMvc3RyZWFt
cy9SZWFkYWJsZVN0cmVhbVNpbmsuaAogICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVh
bVNvdXJjZS5oCisgICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNlQ2FsbGJh
Y2suaAogCiAgICAgTW9kdWxlcy93ZWJhdXRobi9BdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJl
bmNlLmgKICAgICBNb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVu
dElucHV0cy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNo
Qm9keU93bmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5T3du
ZXIuY3BwCmluZGV4IGRmNjNmMjQ5NTBlY2UzODk5N2UyYmI4NmU4ZmJlNjFiMjRjM2I0ZDUuLjI0
ZTFjOWIzZjgyOWE5ZGQ3OTI3NTA4N2FiMTkyNmI4ZjZmYTQ1YjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5T3duZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5T3duZXIuY3BwCkBAIC0zNiw2ICszNiw3IEBA
CiAjaW5jbHVkZSAiSlNCbG9iLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgogI2luY2x1
ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKKyNpbmNsdWRlICJVc2VyR2VzdHVyZUluZGljYXRvci5o
IgogI2luY2x1ZGUgIldpbmRvd0V2ZW50TG9vcC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBA
IC0zMzgsNyArMzM5LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gRmV0Y2hCb2R5T3duZXI6OmNyZWF0
ZVJlYWRhYmxlU3RyZWFtKEpTQzo6SlNHbG9iYWxPYmplY3QmIHN0YXQKICAgICAgICAgcmV0dXJu
IHsgfTsKICAgICB9CiAKLSAgICBtX3JlYWRhYmxlU3RyZWFtU291cmNlID0gYWRvcHRSZWYoKm5l
dyBGZXRjaEJvZHlTb3VyY2UoKnRoaXMpKTsKKyAgICBtX3JlYWRhYmxlU3RyZWFtU291cmNlID0g
RmV0Y2hCb2R5U291cmNlOjpjcmVhdGUoKnRoaXMpOwogICAgIGF1dG8gc3RyZWFtT3JFeGNlcHRp
b24gPSBSZWFkYWJsZVN0cmVhbTo6Y3JlYXRlKHN0YXRlLCBtX3JlYWRhYmxlU3RyZWFtU291cmNl
KTsKICAgICBpZiAoVU5MSUtFTFkoc3RyZWFtT3JFeGNlcHRpb24uaGFzRXhjZXB0aW9uKCkpKSB7
CiAgICAgICAgIG1fcmVhZGFibGVTdHJlYW1Tb3VyY2UgPSBudWxscHRyOwpAQCAtNDE2LDQgKzQx
NywxNCBAQCB2b2lkIEZldGNoQm9keU93bmVyOjpzZXRMb2FkaW5nRXJyb3IoUmVzb3VyY2VFcnJv
ciYmIGVycm9yKQogICAgIG1fbG9hZGluZ0Vycm9yID0gV1RGTW92ZShlcnJvcik7CiB9CiAKK3Zv
aWQgRmV0Y2hCb2R5T3duZXI6OnN0b3JlVXNlckdlc3R1cmVUb2tlbigpCit7CisgICAgbV91c2Vy
R2VzdHVyZVRva2VuID0gVXNlckdlc3R1cmVJbmRpY2F0b3I6OmN1cnJlbnRVc2VyR2VzdHVyZSgp
OworfQorCitib29sIEZldGNoQm9keU93bmVyOjpoYXNWYWxpZFVzZXJHZXN0dXJlKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV91c2VyR2VzdHVyZVRva2VuICYmICFtX3VzZXJHZXN0dXJlVG9rZW4t
Pmhhc0V4cGlyZWQoVXNlckdlc3R1cmVUb2tlbjo6bWF4aW11bUludGVydmFsRm9yVXNlckdlc3R1
cmVGb3J3YXJkaW5nRm9yRmV0Y2goKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5T3duZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5T3duZXIuaAppbmRleCBhMzRj
OTI2MjU0OWI4MDljNTMzMGU2NDU5N2IxNTg5NTZlMWRkN2EyLi4yZmIxNDNkOTI0NGY3ZDQ4MWVm
ODhjNWM3ZjE3MWZkOWRiNDVkZmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZldGNoL0ZldGNoQm9keU93bmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRj
aC9GZXRjaEJvZHlPd25lci5oCkBAIC00MCw2ICs0MCw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAorY2xhc3MgVXNlckdlc3R1cmVJbmRpY2F0b3I7CisKIGNsYXNzIEZldGNoQm9keU93bmVy
IDogcHVibGljIFJlZkNvdW50ZWQ8RmV0Y2hCb2R5T3duZXI+LCBwdWJsaWMgQWN0aXZlRE9NT2Jq
ZWN0IHsKIHB1YmxpYzoKICAgICBGZXRjaEJvZHlPd25lcihTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiwgT3B0aW9uYWw8RmV0Y2hCb2R5PiYmLCBSZWY8RmV0Y2hIZWFkZXJzPiYmKTsKQEAgLTcwLDYg
KzcyLDkgQEAgcHVibGljOgogICAgIFJlc291cmNlRXJyb3IgbG9hZGluZ0Vycm9yKCkgY29uc3Q7
CiAgICAgT3B0aW9uYWw8RXhjZXB0aW9uPiBsb2FkaW5nRXhjZXB0aW9uKCkgY29uc3Q7CiAKKyAg
ICBib29sIGhhc1ZhbGlkVXNlckdlc3R1cmUoKSBjb25zdDsKKyAgICBVc2VyR2VzdHVyZVRva2Vu
KiB1c2VyR2VzdHVyZVRva2VuKCkgeyByZXR1cm4gbV91c2VyR2VzdHVyZVRva2VuLmdldCgpOyB9
CisKIHByb3RlY3RlZDoKICAgICBjb25zdCBGZXRjaEJvZHkmIGJvZHkoKSBjb25zdCB7IHJldHVy
biAqbV9ib2R5OyB9CiAgICAgRmV0Y2hCb2R5JiBib2R5KCkgeyByZXR1cm4gKm1fYm9keTsgfQpA
QCAtOTUsNiArMTAwLDggQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgc2V0TG9hZGluZ0Vycm9yKEV4
Y2VwdGlvbiYmKTsKICAgICB2b2lkIHNldExvYWRpbmdFcnJvcihSZXNvdXJjZUVycm9yJiYpOwog
CisgICAgdm9pZCBzdG9yZVVzZXJHZXN0dXJlVG9rZW4oKTsKKwogcHJpdmF0ZToKICAgICAvLyBC
bG9iIGxvYWRpbmcgcm91dGluZXMKICAgICB2b2lkIGJsb2JDaHVuayhjb25zdCBjaGFyKiwgc2l6
ZV90KTsKQEAgLTEyOCw2ICsxMzUsNyBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIE9wdGlv
bmFsPEJsb2JMb2FkZXI+IG1fYmxvYkxvYWRlcjsKICAgICBib29sIG1faXNCb2R5T3BhcXVlIHsg
ZmFsc2UgfTsKKyAgICBSZWZQdHI8VXNlckdlc3R1cmVUb2tlbj4gbV91c2VyR2VzdHVyZVRva2Vu
OwogCiAgICAgVmFyaWFudDxzdGQ6Om51bGxwdHJfdCwgRXhjZXB0aW9uLCBSZXNvdXJjZUVycm9y
PiBtX2xvYWRpbmdFcnJvcjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZldGNoL0ZldGNoQm9keVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNo
L0ZldGNoQm9keVNvdXJjZS5jcHAKaW5kZXggMmI2YWJjNWJiODEwMDk5ZGZmOTAyZDk0YTZjY2Rj
MzRlNDY0MjRhNC4uZDg2ZjBiODVlN2I0ZmQxMjQ5ZjA0ODQ0OTBkMzU0MWY4ZDQ3YzZlYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlTb3VyY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5U291cmNlLmNwcApA
QCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkZldGNoQm9keVNvdXJjZS5oIgogCiAjaW5jbHVk
ZSAiRmV0Y2hSZXNwb25zZS5oIgorI2luY2x1ZGUgIlJlYWRhYmxlU3RyZWFtU291cmNlQ2FsbGJh
Y2suaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC05NCw0ICs5NSwxOSBAQCB2b2lkIEZl
dGNoQm9keVNvdXJjZTo6ZXJyb3IoY29uc3QgRXhjZXB0aW9uJiB2YWx1ZSkKICAgICBtX2JvZHlP
d25lciA9IG51bGxwdHI7CiB9CiAKK3ZvaWQgRmV0Y2hCb2R5U291cmNlOjp3aXRoVXNlckFjdGl2
YXRpb25JZk5lZWRlZChSZWY8UmVhZGFibGVTdHJlYW1Tb3VyY2VDYWxsYmFjaz4mJiBjYWxsYmFj
aykKK3sKKyAgICBpZiAoIW1fYm9keU93bmVyIHx8ICFtX2JvZHlPd25lci0+aGFzVmFsaWRVc2Vy
R2VzdHVyZSgpKSB7CisgICAgICAgIGNhbGxiYWNrLT5oYW5kbGVFdmVudCgpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgLy8gV2UgYXN5bmNocm9ub3VzbHkgY2FsbCB0aGUgY2FsbGJh
Y2sgc28gdGhhdCBhbnkgcHJvbWlzZSB0aGF0IGdvdCByZXNvbHZlZCBjYW4gYmUgdGhlbmVkIGJ5
IHRoZSBwYWdlIGJlZm9yZSB0aGUgcHJvbWlzZSBnb3Qgc2V0dGxlZCB3aXRoIHVzZXIgZ2VzdHVy
ZSBwcml2aWxlZGdlLgorICAgIGNhbGxPbk1haW5UaHJlYWQoW2NhbGxiYWNrID0gV1RGTW92ZShj
YWxsYmFjayksIHVzZXJHZXN0dXJlVG9rZW4gPSBtX2JvZHlPd25lci0+dXNlckdlc3R1cmVUb2tl
bigpXSgpIG11dGFibGUgeworICAgICAgICBVc2VyR2VzdHVyZUluZGljYXRvciBnZXN0dXJlSW5k
aWNhdG9yKFdURk1vdmUodXNlckdlc3R1cmVUb2tlbiksIFVzZXJHZXN0dXJlVG9rZW46Okdlc3R1
cmVTY29wZTo6TWVkaWFPbmx5LCBVc2VyR2VzdHVyZVRva2VuOjpJc1Byb3BhZ2F0ZWRGcm9tRmV0
Y2g6Olllcyk7CisgICAgICAgIGNhbGxiYWNrLT5oYW5kbGVFdmVudCgpOworICAgIH0pOworfQor
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5U291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zl
dGNoL0ZldGNoQm9keVNvdXJjZS5oCmluZGV4IGI5NWRkMTE2OWI0MTViZDg1ODhkMTZkOTJhNWYy
Mzg1ZDg3YzY1ODAuLmI2NzQ0OTVjMzA0ZjdhOWQxYWNjYWQxZDkwYmYxN2U5Yjc5NjJhNGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5U291cmNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlTb3VyY2UuaApAQCAt
MzksNyArMzksNyBAQCBjbGFzcyBGZXRjaEJvZHlPd25lcjsKIAogY2xhc3MgRmV0Y2hCb2R5U291
cmNlIGZpbmFsIDogcHVibGljIFJlYWRhYmxlU3RyZWFtU291cmNlIHsKIHB1YmxpYzoKLSAgICBG
ZXRjaEJvZHlTb3VyY2UoRmV0Y2hCb2R5T3duZXImKTsKKyAgICBzdGF0aWMgUmVmPEZldGNoQm9k
eVNvdXJjZT4gY3JlYXRlKEZldGNoQm9keU93bmVyJiBvd25lcikgeyByZXR1cm4gYWRvcHRSZWYo
Km5ldyBGZXRjaEJvZHlTb3VyY2Uob3duZXIpKTsgfQogCiAgICAgYm9vbCBlbnF1ZXVlKFJlZlB0
cjxKU0M6OkFycmF5QnVmZmVyPiYmIGNodW5rKSB7IHJldHVybiBjb250cm9sbGVyKCkuZW5xdWV1
ZShXVEZNb3ZlKGNodW5rKSk7IH0KICAgICB2b2lkIGNsb3NlKCk7CkBAIC01MSwxMSArNTEsMTQg
QEAgcHVibGljOgogICAgIHZvaWQgZGV0YWNoKCkgeyBtX2JvZHlPd25lciA9IG51bGxwdHI7IH0K
IAogcHJpdmF0ZToKKyAgICBleHBsaWNpdCBGZXRjaEJvZHlTb3VyY2UoRmV0Y2hCb2R5T3duZXIm
KTsKKwogICAgIHZvaWQgZG9TdGFydCgpIGZpbmFsOwogICAgIHZvaWQgZG9QdWxsKCkgZmluYWw7
CiAgICAgdm9pZCBkb0NhbmNlbCgpIGZpbmFsOwogICAgIHZvaWQgc2V0QWN0aXZlKCkgZmluYWw7
CiAgICAgdm9pZCBzZXRJbmFjdGl2ZSgpIGZpbmFsOworICAgIHZvaWQgd2l0aFVzZXJBY3RpdmF0
aW9uSWZOZWVkZWQoUmVmPFJlYWRhYmxlU3RyZWFtU291cmNlQ2FsbGJhY2s+JiYpIGZpbmFsOwog
CiAgICAgRmV0Y2hCb2R5T3duZXIqIG1fYm9keU93bmVyOwogICAgIGJvb2wgbV9pc0NhbmNlbGxp
bmcgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9G
ZXRjaFJlc3BvbnNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNw
b25zZS5jcHAKaW5kZXggNDI2MzkxZGNlODRjZWYzMzRkZjI1ZDJjZDA0YzY3MGRjOTYzNDFiYi4u
YTllN2I2ZDIwZmZmZjM5OTYwY2I1YjYyNzZjMmMxZWFlYmY2NmJmYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuY3BwCkBAIC0yNDMsNiArMjQzLDcg
QEAgdm9pZCBGZXRjaFJlc3BvbnNlOjpmZXRjaChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250
ZXh0LCBGZXRjaFJlcXVlc3QmIHJlcXVlc3QKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OndpbGxGZXRjaChjb250ZXh0LCByZXF1ZXN0LnVybCgpLnN0cmluZygpKTsKIAogICAgIGF1dG8g
cmVzcG9uc2UgPSBhZG9wdFJlZigqbmV3IEZldGNoUmVzcG9uc2UoY29udGV4dCwgRmV0Y2hCb2R5
IHsgfSwgRmV0Y2hIZWFkZXJzOjpjcmVhdGUoRmV0Y2hIZWFkZXJzOjpHdWFyZDo6SW1tdXRhYmxl
KSwgeyB9KSk7CisgICAgcmVzcG9uc2UtPnN0b3JlVXNlckdlc3R1cmVUb2tlbigpOwogCiAgICAg
cmVzcG9uc2UtPmJvZHkoKS5jb25zdW1lcigpLnNldEFzTG9hZGluZygpOwogCkBAIC0yODUsNyAr
Mjg2LDcgQEAgdm9pZCBGZXRjaFJlc3BvbnNlOjpCb2R5TG9hZGVyOjpkaWRTdWNjZWVkKCkKICAg
ICBpZiAoYXV0byBjb25zdW1lRGF0YUNhbGxiYWNrID0gV1RGTW92ZShtX2NvbnN1bWVEYXRhQ2Fs
bGJhY2spKQogICAgICAgICBjb25zdW1lRGF0YUNhbGxiYWNrKG51bGxwdHIpOwogCi0gICAgaWYg
KG1fbG9hZGVyLT5pc1N0YXJ0ZWQoKSkgeworICAgIGlmIChtX2xvYWRlciAmJiBtX2xvYWRlci0+
aXNTdGFydGVkKCkpIHsKICAgICAgICAgUmVmPEZldGNoUmVzcG9uc2U+IHByb3RlY3RvcihtX3Jl
c3BvbnNlKTsKICAgICAgICAgbV9yZXNwb25zZS5tX2JvZHlMb2FkZXIgPSBudWxscHRyOwogICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0
cmVhbS5qcyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5q
cwppbmRleCBjZTE4ODk5YWJmYjQ1MjMzNTY1YWYzMjQ3MTJiN2IyMWY5NDM2OTIzLi5hZmI4Y2Jk
NTM2MjZhNThkMjY0ZTQ1MTdiZjgzY2VkM2M4NmNlMTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uanMKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmpzCkBAIC00Niw2ICs0Niw5IEBAIGZ1
bmN0aW9uIGluaXRpYWxpemVSZWFkYWJsZVN0cmVhbSh1bmRlcmx5aW5nU291cmNlLCBzdHJhdGVn
eSkKICAgICAvLyBJbml0aWFsaXplZCB3aXRoIG51bGwgdmFsdWUgdG8gZW5hYmxlIGRpc3RpbmN0
aW9uIHdpdGggdW5kZWZpbmVkIGNhc2UuCiAgICAgQHB1dEJ5SWREaXJlY3RQcml2YXRlKHRoaXMs
ICJyZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIiLCBudWxsKTsKIAorICAgIGlmICh1bmRlcmx5aW5n
U291cmNlLkB3aXRoVXNlckFjdGl2YXRpb25JZk5lZWRlZCA9PT0gQHVuZGVmaW5lZCkKKyAgICAg
ICAgdW5kZXJseWluZ1NvdXJjZS5Ad2l0aFVzZXJBY3RpdmF0aW9uSWZOZWVkZWQgPSBjYWxsYmFj
ayA9PiBjYWxsYmFjaygpOworCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBpbnRyb2R1Y2UgaHR0
cHM6Ly9zdHJlYW1zLnNwZWMud2hhdHdnLm9yZy8jY3JlYXRlLXJlYWRhYmxlLXN0cmVhbS4KICAg
ICAvLyBGb3Igbm93LCB3ZSBlbXVsYXRlIHRoaXMgd2l0aCB1bmRlcmx5aW5nU291cmNlIHdpdGgg
cHJpdmF0ZSBwcm9wZXJ0aWVzLgogICAgIGlmIChAZ2V0QnlJZERpcmVjdFByaXZhdGUodW5kZXJs
eWluZ1NvdXJjZSwgInB1bGwiKSAhPT0gQHVuZGVmaW5lZCkgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtSW50ZXJuYWxzLmpzIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtSW50ZXJuYWxzLmpzCmlu
ZGV4IDMyNTQwMjFmMjYzN2MxODRiZTQyNjhjOGI4NzQyM2ZiNWQ3N2I0NzYuLjJjZGVjNzRjN2I4
ZmQ0Y2JiNDIyMDBlNWFkZGZjZGZlNWU5ZDdiNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUludGVybmFscy5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1JbnRlcm5hbHMuanMKQEAgLTE1
MCwxNSArMTUwLDE5IEBAIGZ1bmN0aW9uIHJlYWRhYmxlU3RyZWFtVGVlKHN0cmVhbSwgc2hvdWxk
Q2xvbmUpCiAKICAgICB0ZWVTdGF0ZS5jYW5jZWxQcm9taXNlQ2FwYWJpbGl0eSA9IEBuZXdQcm9t
aXNlQ2FwYWJpbGl0eShAUHJvbWlzZSk7CiAKKyAgICBjb25zdCBjb250cm9sbGVyID0gQGdldEJ5
SWREaXJlY3RQcml2YXRlKHN0cmVhbSwgInJlYWRhYmxlU3RyZWFtQ29udHJvbGxlciIpOworICAg
IGNvbnN0IHVuZGVybHlpbmdTb3VyY2UgPSBAZ2V0QnlJZERpcmVjdFByaXZhdGUoY29udHJvbGxl
ciwgInVuZGVybHlpbmdTb3VyY2UiKTsKICAgICBjb25zdCBwdWxsRnVuY3Rpb24gPSBAcmVhZGFi
bGVTdHJlYW1UZWVQdWxsRnVuY3Rpb24odGVlU3RhdGUsIHJlYWRlciwgc2hvdWxkQ2xvbmUpOwog
CiAgICAgY29uc3QgYnJhbmNoMVNvdXJjZSA9IHsgfTsKICAgICBAcHV0QnlJZERpcmVjdFByaXZh
dGUoYnJhbmNoMVNvdXJjZSwgInB1bGwiLCBwdWxsRnVuY3Rpb24pOwogICAgIEBwdXRCeUlkRGly
ZWN0UHJpdmF0ZShicmFuY2gxU291cmNlLCAiY2FuY2VsIiwgQHJlYWRhYmxlU3RyZWFtVGVlQnJh
bmNoMUNhbmNlbEZ1bmN0aW9uKHRlZVN0YXRlLCBzdHJlYW0pKTsKKyAgICBicmFuY2gxU291cmNl
LkB3aXRoVXNlckFjdGl2YXRpb25JZk5lZWRlZCA9IChjYWxsYmFjaykgPT4gdW5kZXJseWluZ1Nv
dXJjZS5Ad2l0aFVzZXJBY3RpdmF0aW9uSWZOZWVkZWQoY2FsbGJhY2spOwogCiAgICAgY29uc3Qg
YnJhbmNoMlNvdXJjZSA9IHsgfTsKICAgICBAcHV0QnlJZERpcmVjdFByaXZhdGUoYnJhbmNoMlNv
dXJjZSwgInB1bGwiLCBwdWxsRnVuY3Rpb24pOwogICAgIEBwdXRCeUlkRGlyZWN0UHJpdmF0ZShi
cmFuY2gyU291cmNlLCAiY2FuY2VsIiwgQHJlYWRhYmxlU3RyZWFtVGVlQnJhbmNoMkNhbmNlbEZ1
bmN0aW9uKHRlZVN0YXRlLCBzdHJlYW0pKTsKKyAgICBicmFuY2gyU291cmNlLkB3aXRoVXNlckFj
dGl2YXRpb25JZk5lZWRlZCA9IChjYWxsYmFjaykgPT4gdW5kZXJseWluZ1NvdXJjZS5Ad2l0aFVz
ZXJBY3RpdmF0aW9uSWZOZWVkZWQoY2FsbGJhY2spOwogCiAgICAgY29uc3QgYnJhbmNoMSA9IG5l
dyBAUmVhZGFibGVTdHJlYW0oYnJhbmNoMVNvdXJjZSk7CiAgICAgY29uc3QgYnJhbmNoMiA9IG5l
dyBAUmVhZGFibGVTdHJlYW0oYnJhbmNoMlNvdXJjZSk7CkBAIC0yOTgsMTkgKzMwMiwzMCBAQCBm
dW5jdGlvbiByZWFkYWJsZVN0cmVhbUVycm9yKHN0cmVhbSwgZXJyb3IpCiAKICAgICBpZiAoQGlz
UmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyKHJlYWRlcikpIHsKICAgICAgICAgY29uc3QgcmVx
dWVzdHMgPSBAZ2V0QnlJZERpcmVjdFByaXZhdGUocmVhZGVyLCAicmVhZFJlcXVlc3RzIik7Ci0g
ICAgICAgIGZvciAobGV0IGluZGV4ID0gMCwgbGVuZ3RoID0gcmVxdWVzdHMubGVuZ3RoOyBpbmRl
eCA8IGxlbmd0aDsgKytpbmRleCkKLSAgICAgICAgICAgIHJlcXVlc3RzW2luZGV4XS5AcmVqZWN0
LkBjYWxsKEB1bmRlZmluZWQsIGVycm9yKTsKKyAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwLCBs
ZW5ndGggPSByZXF1ZXN0cy5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyArK2luZGV4KSB7CisgICAg
ICAgICAgICBjb25zdCByZWFkUmVxdWVzdCA9IHJlcXVlc3RzW2luZGV4XTsKKyAgICAgICAgICAg
IEByZWFkYWJsZVN0cmVhbVdpdGhVc2VyQWN0aXZhdGlvbklmTmVlZGVkKHN0cmVhbSwgKCkgPT4g
IHsKKyAgICAgICAgICAgICAgICByZWFkUmVxdWVzdC5AcmVqZWN0LkBjYWxsKEB1bmRlZmluZWQs
IGVycm9yKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CiAgICAgICAgIEBwdXRCeUlkRGly
ZWN0UHJpdmF0ZShyZWFkZXIsICJyZWFkUmVxdWVzdHMiLCBbXSk7CiAgICAgfSBlbHNlIHsKICAg
ICAgICAgQGFzc2VydChAaXNSZWFkYWJsZVN0cmVhbUJZT0JSZWFkZXIocmVhZGVyKSk7CiAgICAg
ICAgIGNvbnN0IHJlcXVlc3RzID0gQGdldEJ5SWREaXJlY3RQcml2YXRlKHJlYWRlciwgInJlYWRJ
bnRvUmVxdWVzdHMiKTsKLSAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwLCBsZW5ndGggPSByZXF1
ZXN0cy5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyArK2luZGV4KQotICAgICAgICAgICAgcmVxdWVz
dHNbaW5kZXhdLkByZWplY3QuQGNhbGwoQHVuZGVmaW5lZCwgZXJyb3IpOworICAgICAgICBmb3Ig
KGxldCBpbmRleCA9IDAsIGxlbmd0aCA9IHJlcXVlc3RzLmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7
ICsraW5kZXgpIHsKKyAgICAgICAgICAgIGNvbnN0IHJlYWRSZXF1ZXN0ID0gcmVxdWVzdHNbaW5k
ZXhdOworICAgICAgICAgICAgQHJlYWRhYmxlU3RyZWFtV2l0aFVzZXJBY3RpdmF0aW9uSWZOZWVk
ZWQoc3RyZWFtLCAoKSA9PiAgeworICAgICAgICAgICAgICAgIHJlYWRSZXF1ZXN0LkByZWplY3Qu
QGNhbGwoQHVuZGVmaW5lZCwgZXJyb3IpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KICAg
ICAgICAgQHB1dEJ5SWREaXJlY3RQcml2YXRlKHJlYWRlciwgInJlYWRJbnRvUmVxdWVzdHMiLCBb
XSk7CiAgICAgfQogCi0gICAgQGdldEJ5SWREaXJlY3RQcml2YXRlKHJlYWRlciwgImNsb3NlZFBy
b21pc2VDYXBhYmlsaXR5IikuQHJlamVjdC5AY2FsbChAdW5kZWZpbmVkLCBlcnJvcik7Ci0gICAg
Y29uc3QgcHJvbWlzZSA9IEBnZXRCeUlkRGlyZWN0UHJpdmF0ZShyZWFkZXIsICJjbG9zZWRQcm9t
aXNlQ2FwYWJpbGl0eSIpLkBwcm9taXNlOworICAgIGNvbnN0IGNsb3NlZFByb21pc2VDYXBhYmls
aXR5ID0gQGdldEJ5SWREaXJlY3RQcml2YXRlKHJlYWRlciwgImNsb3NlZFByb21pc2VDYXBhYmls
aXR5Iik7CisgICAgQHJlYWRhYmxlU3RyZWFtV2l0aFVzZXJBY3RpdmF0aW9uSWZOZWVkZWQoc3Ry
ZWFtLCAoKSA9PiAgeworICAgICAgICBjbG9zZWRQcm9taXNlQ2FwYWJpbGl0eS5AcmVqZWN0LkBj
YWxsKEB1bmRlZmluZWQsIGVycm9yKTsKKyAgICB9KTsKKyAgICBjb25zdCBwcm9taXNlID0gY2xv
c2VkUHJvbWlzZUNhcGFiaWxpdHkuQHByb21pc2U7CiAgICAgQHB1dFByb21pc2VJbnRlcm5hbEZp
ZWxkKHByb21pc2UsIEBwcm9taXNlRmllbGRGbGFncywgQGdldFByb21pc2VJbnRlcm5hbEZpZWxk
KHByb21pc2UsIEBwcm9taXNlRmllbGRGbGFncykgfCBAcHJvbWlzZUZsYWdzSXNIYW5kbGVkKTsK
IH0KIApAQCAtNDEyLDcgKzQyNywxMiBAQCBmdW5jdGlvbiByZWFkYWJsZVN0cmVhbURlZmF1bHRD
b250cm9sbGVyUHVsbChjb250cm9sbGVyKQogICAgICAgICAgICAgQHJlYWRhYmxlU3RyZWFtQ2xv
c2Uoc3RyZWFtKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgQHJlYWRhYmxlU3RyZWFtRGVm
YXVsdENvbnRyb2xsZXJDYWxsUHVsbElmTmVlZGVkKGNvbnRyb2xsZXIpOwotICAgICAgICByZXR1
cm4gQFByb21pc2UuQHJlc29sdmUoe3ZhbHVlOiBjaHVuaywgZG9uZTogZmFsc2V9KTsKKworICAg
ICAgICBjb25zdCByZWFkUmVxdWVzdCA9IEBuZXdQcm9taXNlQ2FwYWJpbGl0eShAUHJvbWlzZSk7
CisgICAgICAgIEByZWFkYWJsZVN0cmVhbVdpdGhVc2VyQWN0aXZhdGlvbklmTmVlZGVkKHN0cmVh
bSwgKCkgPT4gIHsKKyAgICAgICAgICAgIHJlYWRSZXF1ZXN0LkByZXNvbHZlLkBjYWxsKEB1bmRl
ZmluZWQsIHt2YWx1ZTogY2h1bmssIGRvbmU6IGZhbHNlfSk7CisgICAgICAgIH0pOworICAgICAg
ICByZXR1cm4gcmVhZFJlcXVlc3QuQHByb21pc2U7CiAgICAgfQogICAgIGNvbnN0IHBlbmRpbmdQ
cm9taXNlID0gQHJlYWRhYmxlU3RyZWFtQWRkUmVhZFJlcXVlc3Qoc3RyZWFtKTsKICAgICBAcmVh
ZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlckNhbGxQdWxsSWZOZWVkZWQoY29udHJvbGxlcik7
CkBAIC00NDIsMTkgKzQ2Miw0MSBAQCBmdW5jdGlvbiByZWFkYWJsZVN0cmVhbUNsb3NlKHN0cmVh
bSkKIAogICAgIGlmIChAaXNSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIocmVhZGVyKSkgewog
ICAgICAgICBjb25zdCByZXF1ZXN0cyA9IEBnZXRCeUlkRGlyZWN0UHJpdmF0ZShyZWFkZXIsICJy
ZWFkUmVxdWVzdHMiKTsKLSAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwLCBsZW5ndGggPSByZXF1
ZXN0cy5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyArK2luZGV4KQotICAgICAgICAgICAgcmVxdWVz
dHNbaW5kZXhdLkByZXNvbHZlLkBjYWxsKEB1bmRlZmluZWQsIHt2YWx1ZTpAdW5kZWZpbmVkLCBk
b25lOiB0cnVlfSk7CisgICAgICAgIGZvciAobGV0IGluZGV4ID0gMCwgbGVuZ3RoID0gcmVxdWVz
dHMubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgKytpbmRleCkgeworICAgICAgICAgICAgY29uc3Qg
cmVxdWVzdCA9IHJlcXVlc3RzW2luZGV4XTsKKyAgICAgICAgICAgIEByZWFkYWJsZVN0cmVhbVdp
dGhVc2VyQWN0aXZhdGlvbklmTmVlZGVkKHN0cmVhbSwgKCkgPT4gIHsKKyAgICAgICAgICAgICAg
ICByZXF1ZXN0LkByZXNvbHZlLkBjYWxsKEB1bmRlZmluZWQsIHt2YWx1ZTpAdW5kZWZpbmVkLCBk
b25lOiB0cnVlfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQogICAgICAgICBAcHV0QnlJ
ZERpcmVjdFByaXZhdGUocmVhZGVyLCAicmVhZFJlcXVlc3RzIiwgW10pOwogICAgIH0KIAotICAg
IEBnZXRCeUlkRGlyZWN0UHJpdmF0ZShyZWFkZXIsICJjbG9zZWRQcm9taXNlQ2FwYWJpbGl0eSIp
LkByZXNvbHZlLkBjYWxsKCk7CisgICAgY29uc3QgY2xvc2VkUHJvbWlzZUNhcGFiaWxpdHkgPSBA
Z2V0QnlJZERpcmVjdFByaXZhdGUocmVhZGVyLCAiY2xvc2VkUHJvbWlzZUNhcGFiaWxpdHkiKQor
ICAgIEByZWFkYWJsZVN0cmVhbVdpdGhVc2VyQWN0aXZhdGlvbklmTmVlZGVkKHN0cmVhbSwgKCkg
PT4gIHsKKyAgICAgICAgY2xvc2VkUHJvbWlzZUNhcGFiaWxpdHkuQHJlc29sdmUuQGNhbGwoKTsK
KyAgICB9KTsKK30KKworZnVuY3Rpb24gcmVhZGFibGVTdHJlYW1XaXRoVXNlckFjdGl2YXRpb25J
Zk5lZWRlZChzdHJlYW0sIGNhbGxiYWNrKQoreworICAgIGNvbnN0IGNvbnRyb2xsZXIgPSBAZ2V0
QnlJZERpcmVjdFByaXZhdGUoc3RyZWFtLCAicmVhZGFibGVTdHJlYW1Db250cm9sbGVyIik7Cisg
ICAgaWYgKCFjb250cm9sbGVyKQorICAgICAgICByZXR1cm4gY2FsbGJhY2soKTsKKworICAgIGNv
bnN0IHVuZGVybHlpbmdTb3VyY2UgPSBAZ2V0QnlJZERpcmVjdFByaXZhdGUoY29udHJvbGxlciwg
InVuZGVybHlpbmdTb3VyY2UiKTsKKyAgICBpZiAoIXVuZGVybHlpbmdTb3VyY2UgfHwgIXVuZGVy
bHlpbmdTb3VyY2UuQHdpdGhVc2VyQWN0aXZhdGlvbklmTmVlZGVkKQorICAgICAgICByZXR1cm4g
Y2FsbGJhY2soKTsKKworICAgIHJldHVybiB1bmRlcmx5aW5nU291cmNlLkB3aXRoVXNlckFjdGl2
YXRpb25JZk5lZWRlZC5AY2FsbCh1bmRlcmx5aW5nU291cmNlLCBjYWxsYmFjayk7CiB9CiAKIGZ1
bmN0aW9uIHJlYWRhYmxlU3RyZWFtRnVsZmlsbFJlYWRSZXF1ZXN0KHN0cmVhbSwgY2h1bmssIGRv
bmUpCiB7CiAgICAgInVzZSBzdHJpY3QiOwotCi0gICAgQGdldEJ5SWREaXJlY3RQcml2YXRlKEBn
ZXRCeUlkRGlyZWN0UHJpdmF0ZShzdHJlYW0sICJyZWFkZXIiKSwgInJlYWRSZXF1ZXN0cyIpLkBz
aGlmdCgpLkByZXNvbHZlLkBjYWxsKEB1bmRlZmluZWQsIHt2YWx1ZTogY2h1bmssIGRvbmU6IGRv
bmV9KTsKKyAgICBjb25zdCByZWFkUmVxdWVzdCA9IEBnZXRCeUlkRGlyZWN0UHJpdmF0ZShAZ2V0
QnlJZERpcmVjdFByaXZhdGUoc3RyZWFtLCAicmVhZGVyIiksICJyZWFkUmVxdWVzdHMiKS5Ac2hp
ZnQoKTsKKyAgICBAcmVhZGFibGVTdHJlYW1XaXRoVXNlckFjdGl2YXRpb25JZk5lZWRlZChzdHJl
YW0sICgpID0+IHsKKyAgICAgICAgcmVhZFJlcXVlc3QuQHJlc29sdmUuQGNhbGwoQHVuZGVmaW5l
ZCwge3ZhbHVlOiBjaHVuaywgZG9uZTogZG9uZX0pOworICAgIH0pOwogfQogCiBmdW5jdGlvbiBy
ZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyRW5xdWV1ZShjb250cm9sbGVyLCBjaHVuaykK
QEAgLTQ5MiwxMiArNTM0LDIyIEBAIGZ1bmN0aW9uIHJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRl
clJlYWQocmVhZGVyKQogICAgIGNvbnN0IHN0YXRlID0gQGdldEJ5SWREaXJlY3RQcml2YXRlKHN0
cmVhbSwgInN0YXRlIik7CiAKICAgICBAcHV0QnlJZERpcmVjdFByaXZhdGUoc3RyZWFtLCAiZGlz
dHVyYmVkIiwgdHJ1ZSk7Ci0gICAgaWYgKHN0YXRlID09PSBAc3RyZWFtQ2xvc2VkKQotICAgICAg
ICByZXR1cm4gQFByb21pc2UuQHJlc29sdmUoe3ZhbHVlOiBAdW5kZWZpbmVkLCBkb25lOiB0cnVl
fSk7Ci0gICAgaWYgKHN0YXRlID09PSBAc3RyZWFtRXJyb3JlZCkKLSAgICAgICAgcmV0dXJuIEBQ
cm9taXNlLkByZWplY3QoQGdldEJ5SWREaXJlY3RQcml2YXRlKHN0cmVhbSwgInN0b3JlZEVycm9y
IikpOwotICAgIEBhc3NlcnQoc3RhdGUgPT09IEBzdHJlYW1SZWFkYWJsZSk7CisgICAgaWYgKHN0
YXRlID09PSBAc3RyZWFtQ2xvc2VkKSB7CisgICAgICAgIGNvbnN0IHJlYWRSZXF1ZXN0ID0gQG5l
d1Byb21pc2VDYXBhYmlsaXR5KEBQcm9taXNlKTsKKyAgICAgICAgQHJlYWRhYmxlU3RyZWFtV2l0
aFVzZXJBY3RpdmF0aW9uSWZOZWVkZWQoc3RyZWFtLCAoKSA9PiAgeworICAgICAgICAgICAgcmVh
ZFJlcXVlc3QuQHJlc29sdmUuQGNhbGwoQHVuZGVmaW5lZCwge3ZhbHVlOiBAdW5kZWZpbmVkLCBk
b25lOiB0cnVlfSk7CisgICAgICAgIH0pOworICAgICAgICByZXR1cm4gcmVhZFJlcXVlc3QuQHBy
b21pc2U7CisgICAgfQorICAgIGlmIChzdGF0ZSA9PT0gQHN0cmVhbUVycm9yZWQpIHsKKyAgICAg
ICAgY29uc3QgcmVhZFJlcXVlc3QgPSBAbmV3UHJvbWlzZUNhcGFiaWxpdHkoQFByb21pc2UpOwor
ICAgICAgICBAcmVhZGFibGVTdHJlYW1XaXRoVXNlckFjdGl2YXRpb25JZk5lZWRlZChzdHJlYW0s
ICgpID0+ICB7CisgICAgICAgICAgICByZWFkUmVxdWVzdC5AcmVqZWN0LkBjYWxsKEB1bmRlZmlu
ZWQsIEBnZXRCeUlkRGlyZWN0UHJpdmF0ZShzdHJlYW0sICJzdG9yZWRFcnJvciIpKTsKKyAgICAg
ICAgfSk7CisgICAgICAgIHJldHVybiByZWFkUmVxdWVzdC5AcHJvbWlzZTsKKyAgICB9CiAKKyAg
ICBAYXNzZXJ0KHN0YXRlID09PSBAc3RyZWFtUmVhZGFibGUpOwogICAgIHJldHVybiBAZ2V0QnlJ
ZERpcmVjdFByaXZhdGUoc3RyZWFtLCAicmVhZGFibGVTdHJlYW1Db250cm9sbGVyIikuQHB1bGwo
QGdldEJ5SWREaXJlY3RQcml2YXRlKHN0cmVhbSwgInJlYWRhYmxlU3RyZWFtQ29udHJvbGxlciIp
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRh
YmxlU3RyZWFtU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFi
bGVTdHJlYW1Tb3VyY2UuaAppbmRleCA5MWUwYzJjZmQ5OWExMzQwYTMxZjM5NGY0OWNlZTRkYzE5
NWUxOWI4Li43OWY4MzE1OGNkMDNlOThhNzg4MzkyZGMwNmI4YjkyZDQ0MmJhMGE0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1Tb3VyY2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1Tb3Vy
Y2UuaApAQCAtMzQsNiArMzQsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB0ZW1wbGF0ZTx0
eXBlbmFtZSBJRExUeXBlPiBjbGFzcyBET01Qcm9taXNlRGVmZXJyZWQ7CitjbGFzcyBSZWFkYWJs
ZVN0cmVhbVNvdXJjZUNhbGxiYWNrOwogCiBjbGFzcyBSZWFkYWJsZVN0cmVhbVNvdXJjZSA6IHB1
YmxpYyBSZWZDb3VudGVkPFJlYWRhYmxlU3RyZWFtU291cmNlPiB7CiBwdWJsaWM6CkBAIC00Myw2
ICs0NCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHB1bGwoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+
JiYpOwogICAgIHZvaWQgY2FuY2VsKEpTQzo6SlNWYWx1ZSk7CiAKKyAgICB2aXJ0dWFsIHZvaWQg
d2l0aFVzZXJBY3RpdmF0aW9uSWZOZWVkZWQoUmVmPFJlYWRhYmxlU3RyZWFtU291cmNlQ2FsbGJh
Y2s+JiYpID0gMDsKKwogICAgIGJvb2wgaXNQdWxsaW5nKCkgY29uc3QgeyByZXR1cm4gISFtX3By
b21pc2U7IH0KIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNvdXJjZS5pZGwKaW5kZXggYmU1NGUzMTQ0MTNjZDk0
NmQzMjBjNDc0NjY1NWE4NTI2ZGZkNzAyMC4uZGJkYmU4NzI0YmM1MTU5MmNlNGVhN2ExM2M5N2Rh
OGRmNDc1NzE1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1Jl
YWRhYmxlU3RyZWFtU291cmNlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVh
bXMvUmVhZGFibGVTdHJlYW1Tb3VyY2UuaWRsCkBAIC0zNCw2ICszNCw4IEBACiAgICAgW0N1c3Rv
bV0gUHJvbWlzZTx2b2lkPiBwdWxsKFJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIgY29u
dHJvbGxlcik7CiAgICAgdm9pZCBjYW5jZWwoYW55IHJlYXNvbik7CiAKKyAgICBbUHJpdmF0ZUlk
ZW50aWZpZXJdIHZvaWQgd2l0aFVzZXJBY3RpdmF0aW9uSWZOZWVkZWQoUmVhZGFibGVTdHJlYW1T
b3VyY2VDYWxsYmFjayBjYWxsYmFjayk7CisKICAgICAvLyBQbGFjZSBob2xkZXIgdG8ga2VlcCB0
aGUgY29udHJvbGxlciBsaW5rZWQgdG8gdGhlIHNvdXJjZS4KICAgICBbQ2FjaGVkQXR0cmlidXRl
LCBDdXN0b21HZXR0ZXJdIHJlYWRvbmx5IGF0dHJpYnV0ZSBhbnkgY29udHJvbGxlcjsKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1T
b3VyY2VDYWxsYmFjay5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxl
U3RyZWFtU291cmNlQ2FsbGJhY2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ODI0ZWEwNDUxMDkyMGYyZTUxN2Ni
ZWQ4ZjA2ODdkZTA4ZTYxYjdiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNlQ2FsbGJhY2suaApAQCAtMCwwICsxLDQz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSByZXF1aXJlZCB0byBiZSBtZXQ6CisgKgorICogMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBD
QU5PTiBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQ0FOT04gSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIK
KyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkFjdGl2ZURPTUNhbGxi
YWNrLmgiCisjaW5jbHVkZSAiQ2FsbGJhY2tSZXN1bHQuaCIKKyNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3RlbXBsYXRlPHR5cGVuYW1lIElETFR5
cGU+IGNsYXNzIERPTVByb21pc2VEZWZlcnJlZDsKKworY2xhc3MgUmVhZGFibGVTdHJlYW1Tb3Vy
Y2VDYWxsYmFjayA6IHB1YmxpYyBSZWZDb3VudGVkPFJlYWRhYmxlU3RyZWFtU291cmNlQ2FsbGJh
Y2s+LCBwdWJsaWMgQWN0aXZlRE9NQ2FsbGJhY2sgeworcHVibGljOgorICAgIHVzaW5nIEFjdGl2
ZURPTUNhbGxiYWNrOjpBY3RpdmVET01DYWxsYmFjazsKKworICAgIHZpcnR1YWwgQ2FsbGJhY2tS
ZXN1bHQ8dm9pZD4gaGFuZGxlRXZlbnQoKSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVT
dHJlYW1Tb3VyY2VDYWxsYmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMv
UmVhZGFibGVTdHJlYW1Tb3VyY2VDYWxsYmFjay5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzc0OTM2MzdjODQ5
M2RlYTFiNWM5ZjI0NTU2NThhNWU1MmZmZDgyNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNvdXJjZUNhbGxiYWNrLmlkbApA
QCAtMCwwICsxLDI4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCwgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSByZXF1aXJlZCB0byBiZSBtZXQ6
CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBDQU5PTiBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQ0FOT04gSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3Qs
CitdIGNhbGxiYWNrIFJlYWRhYmxlU3RyZWFtU291cmNlQ2FsbGJhY2sgPSB2b2lkKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CmluZGV4IDg4MjgwYjkxNDg5NDE2ZTJjZTYyZTE5YjUxNTIwMzU5YzAxM2Q2MGYuLmE5
Y2JhMThjNWE4YWQ0NWE3MGU5MDkxYjU4N2I1MGY2YmJmZWJmYjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBA
IC0zMjQ2LDYgKzMyNDYsNyBAQCBKU1JlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuY3Bw
CiBKU1JlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlci5jcHAKIEpTUmVhZGFibGVTdHJlYW1TaW5r
LmNwcAogSlNSZWFkYWJsZVN0cmVhbVNvdXJjZS5jcHAKK0pTUmVhZGFibGVTdHJlYW1Tb3VyY2VD
YWxsYmFjay5jcHAKIEpTUmVtb3RlRE9NV2luZG93LmNwcAogSlNSZW1vdGVQbGF5YmFjay5jcHAK
IEpTUmVtb3RlUGxheWJhY2tBdmFpbGFiaWxpdHlDYWxsYmFjay5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzZDYyMzRkNzY0
Nzk1MmQzZTdjZWIwZWFjY2UyMzhlNTUyODAyZjNkLi42OTUwNDdiZDM2Mzk0Mzc2YTEyN2FjZDNk
MTZmZTMxMzEzNmRhODRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC03NDU2LDYgKzc0NTYsOCBAQAogCQk0MTRBRDQwMDIxNDk4
RDMxMDA1MjE2NzYgLyogUlRDUnRwRGVjb2RpbmdQYXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJUQ1J0cERlY29kaW5nUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0MTRBRDQwMTIxNDk4RDMxMDA1MjE2NzYgLyogUlRDUnRwRGVjb2RpbmdQYXJhbWV0ZXJzLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBSVENSdHBEZWNvZGluZ1BhcmFtZXRlcnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0MTRBRDQwMjIxNDk4RDMyMDA1MjE2NzYgLyogUlRDUnRwQ29kaW5nUGFyYW1l
dGVycy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gUlRDUnRwQ29kaW5nUGFyYW1ldGVycy5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTQxNEI3RjlGMjREMUIwOTEwMDMzRDQ0MiAvKiBSZWFkYWJsZVN0cmVh
bVNvdXJjZUNhbGxiYWNrLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZWFkYWJsZVN0cmVh
bVNvdXJjZUNhbGxiYWNrLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE0QjdG
QTEyNEQxQjEyMzAwMzNENDQyIC8qIFJlYWRhYmxlU3RyZWFtU291cmNlQ2FsbGJhY2suaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhZGFibGVTdHJlYW1Tb3VyY2VDYWxsYmFj
ay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTRCODIwMjFENkRGMEQ5MDA3N0VC
RTMgLyogU3RydWN0dXJlZENsb25lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFN0cnVjdHVyZWRDbG9uZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQxNEI4MjAzMUQ2REYwRDkwMDc3RUJFMyAvKiBTdHJ1Y3R1cmVkQ2xvbmUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RydWN0dXJlZENsb25lLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQxNERFREU1MUY5RkU5MTUwMDQ3QzQwRCAvKiBFbXB0eUZyYW1lTG9h
ZGVyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVtcHR5RnJhbWVM
b2FkZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4ODIxLDYgKzE4
ODIzLDggQEAKIAkJCQkyRDQzRUIyRDIzNDcyQkMzMDAyQTFFRDQgLyogUmVhZGFibGVTdHJlYW1T
b3VyY2UuY3BwICovLAogCQkJCTQxOEMzOTVCMUM4RjBBNjEwMDUxQzhBMyAvKiBSZWFkYWJsZVN0
cmVhbVNvdXJjZS5oICovLAogCQkJCTQxOEMzOTVDMUM4RjBBNjEwMDUxQzhBMyAvKiBSZWFkYWJs
ZVN0cmVhbVNvdXJjZS5pZGwgKi8sCisJCQkJNDE0QjdGQTEyNEQxQjEyMzAwMzNENDQyIC8qIFJl
YWRhYmxlU3RyZWFtU291cmNlQ2FsbGJhY2suaCAqLywKKwkJCQk0MTRCN0Y5RjI0RDFCMDkxMDAz
M0Q0NDIgLyogUmVhZGFibGVTdHJlYW1Tb3VyY2VDYWxsYmFjay5pZGwgKi8sCiAJCQkJOTkwOEIw
RjExQkNBQ0Y5MTAwRUQwRjU1IC8qIFN0cmVhbUludGVybmFscy5qcyAqLywKIAkJCQk0MUEwMjNF
RDFBMzlEQjc5MDBGNzIyREYgLyogV3JpdGFibGVTdHJlYW0uaWRsICovLAogCQkJCTk5MDhCMEVG
MUJDQUNGOTEwMEVEMEY3NSAvKiBXcml0YWJsZVN0cmVhbS5qcyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaAppbmRleCA4MDMzNTk2ZWU0
NmY4NTk0ZTlkMTJjYjljNTM4MmIyYjM0NTUzMGFiLi5iNDllYzY2ZjJlOGFhMTUwZjU0ZmE5NjI5
MWEzZjI2MTA4ZWVmZTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9X
ZWJDb3JlQnVpbHRpbk5hbWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2Vi
Q29yZUJ1aWx0aW5OYW1lcy5oCkBAIC00MDUsNiArNDA1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgIG1hY3JvKHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQpIFwKICAgICBtYWNybyh3ZWJr
aXRPc2NpbGxhdG9yTm9kZSkgXAogICAgIG1hY3JvKHdpbmRvdykgXAorICAgIG1hY3JvKHdpdGhV
c2VyQWN0aXZhdGlvbklmTmVlZGVkKSBcCiAgICAgbWFjcm8od3JpdGluZykgXAogICAgIFdFQkNP
UkVfQURESVRJT05BTF9QUklWQVRFX0lERU5USUZJRVJTKG1hY3JvKSBcCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyOWJl
NTI1ZmNlZGYxNGJiZWE3OGU5Y2YwMmI4MTA4NTAwMzQxNzcyLi42NTZlNWI4YTBjMWQxYjUyNzg4
NjE3MGEyNjkwNDI4ZTE5NDEyNDJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMDctMzAg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFByb3BhZ2F0aW5n
IG1lZGlhIG9ubHkgdXNlciBnZXN0dXJlIHRocm91Z2ggRmV0Y2ggUmVhZGFibGVTdHJlYW0KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDcyMgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0
cy9tZWRpYS91c2VyLWdlc3R1cmUtcHJlc2VydmVkLWFjcm9zcy1mZXRjaC1yZWFkYWJsZXN0cmVh
bS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWVkaWEvdXNlci1n
ZXN0dXJlLXByZXNlcnZlZC1hY3Jvc3MtZmV0Y2gtcmVhZGFibGVzdHJlYW0uaHRtbDogQWRkZWQu
CisKIDIwMjAtMDctMjkgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+
CiAKICAgICAgICAgTWlncmF0ZSBBcHAtQm91bmQgRG9tYWlucyBjb2RlIGZyb20gV2ViS2l0IEFk
ZGl0aW9ucwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS91c2VyLWdl
c3R1cmUtcHJlc2VydmVkLWFjcm9zcy1mZXRjaC1yZWFkYWJsZXN0cmVhbS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3VzZXItZ2VzdHVyZS1wcmVzZXJ2ZWQtYWNy
b3NzLWZldGNoLXJlYWRhYmxlc3RyZWFtLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZTk2ZmJh
YmNkOTYxNzczNjY3MjE3ZDc0MTViZDg1NTg4MGI5YWQ2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS91c2VyLWdlc3R1cmUtcHJlc2VydmVkLWFjcm9zcy1m
ZXRjaC1yZWFkYWJsZXN0cmVhbS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACisKK1BBU1Mg
SW5zaWRlIGJvZHkgcmVhZCBwcm9taXNlIGFzeW5jIAorUEFTUyBJbnNpZGUgYm9keSByZWFkIHBy
b21pc2UgCitQQVNTIEluc2lkZSByZWFkZXIuY2xvc2VkIHJlamVjdGlvbiBoYW5kbGVyIAorUEFT
UyBJbnNpZGUgcmVhZGVyLmNsb3NlZCBmdWxmaWxsbWVudCBoYW5kbGVyIAorUEFTUyBJbnNpZGUg
cmVhZGVyLnJlYWQgb25jZSBzdHJlYW0gaXMgZG9uZSAKK1BBU1MgSW5zaWRlIHJlYWRlci5yZWFk
IG9uY2Ugc3RyZWFtIGlzIGNsb3NlZCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9tZWRpYS91c2VyLWdlc3R1cmUtcHJlc2VydmVkLWFjcm9zcy1mZXRjaC1yZWFkYWJsZXN0
cmVhbS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS91c2VyLWdlc3R1cmUtcHJl
c2VydmVkLWFjcm9zcy1mZXRjaC1yZWFkYWJsZXN0cmVhbS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY0ZGE5
ZTE4MGI0ZDExYzNmNjZiYzIyOTRiMjJlZGQzOTYwNmQ2ZWUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3VzZXItZ2VzdHVyZS1wcmVzZXJ2ZWQtYWNyb3Nz
LWZldGNoLXJlYWRhYmxlc3RyZWFtLmh0bWwKQEAgLTAsMCArMSwxMDggQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPScvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzJz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPScvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzJz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPScvbWVkaWEtcmVzb3VyY2VzL21lZGlhLWZpbGUu
anMnPjwvc2NyaXB0PgorPHNjcmlwdD4KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIHdpbmRv
dy5pbnRlcm5hbHMuc2V0TWF4aW11bUludGVydmFsRm9yVXNlckdlc3R1cmVGb3J3YXJkaW5nRm9y
RmV0Y2goMS4wKTsKKworYXN5bmMgZnVuY3Rpb24gcHVtcFN0cmVhbShzdHJlYW1SZWFkZXIpCit7
CisgICAgY29uc3QgY2h1bmsgPSBhd2FpdCBzdHJlYW1SZWFkZXIucmVhZCgpOworICAgIGlmICgh
Y2h1bmsuZG9uZSkKKyAgICAgICAgcmV0dXJuIHB1bXBTdHJlYW0oc3RyZWFtUmVhZGVyKTsKK30K
KworYXN5bmMgZnVuY3Rpb24gdGVzdFZpZGVvQ2FuUGxheSgpCit7CisgICAgY29uc3QgdmlkZW8g
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworICAgIGlmICh3aW5kb3cuaW50ZXJu
YWxzKQorICAgICAgICBpbnRlcm5hbHMuc2V0TWVkaWFFbGVtZW50UmVzdHJpY3Rpb25zKHZpZGVv
LCAnUmVxdWlyZVVzZXJHZXN0dXJlRm9yQXVkaW9SYXRlQ2hhbmdlJyk7CisKKyAgICB2aWRlby5z
cmMgPSAiL21lZGlhLXJlc291cmNlcy9jb250ZW50LyIgKyBmaW5kTWVkaWFGaWxlKCJ2aWRlbyIs
ICJ0ZXN0Iik7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh2aWRlbyk7CisgICAgY29u
c3QgcmVzdWx0ID0gYXdhaXQgdmlkZW8ucGxheSgpLnRoZW4oKCkgPT4gdHJ1ZSwgKCkgPT4gZmFs
c2UpOworICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodmlkZW8pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIGRvVGVzdChjYWxsYmFjaykKK3sKKyAgICBsZXQg
cmVzdWx0ID0gYXdhaXQgY2FsbGJhY2soKTsKKyAgICBhc3NlcnRfZmFsc2UocmVzdWx0KTsKKwor
ICAgIGlmICghd2luZG93LmludGVybmFscykKKyAgICAgICAgcmV0dXJuOworCisgICAgbGV0IHBy
b21pc2U7CisgICAgaW50ZXJuYWxzLndpdGhVc2VyR2VzdHVyZSgoKSA9PiB7CisgICAgICAgIHBy
b21pc2UgPSBjYWxsYmFjaygpOworICAgIH0pOworICAgIGFzc2VydF90cnVlKGF3YWl0IHByb21p
c2UpOworfQorCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgcmV0dXJuIGRvVGVzdChh
c3luYyAoKSA9PiB7CisgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goInRlc3Qx
Iik7CisgICAgICAgIGF3YWl0IHJlc3BvbnNlLmJvZHkuZ2V0UmVhZGVyKCkucmVhZCgpOworICAg
ICAgICByZXR1cm4gdGVzdFZpZGVvQ2FuUGxheSgpOworICAgIH0pOworfSwgIkluc2lkZSBib2R5
IHJlYWQgcHJvbWlzZSBhc3luYyIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAg
cmV0dXJuIGRvVGVzdChhc3luYyAoKSA9PiB7CisgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdh
aXQgZmV0Y2goInRlc3QyIik7CisgICAgICAgIHJldHVybiByZXNwb25zZS5ib2R5LmdldFJlYWRl
cigpLnJlYWQoKS50aGVuKCgpID0+IHRlc3RWaWRlb0NhblBsYXkoKSk7CisgICAgfSk7Cit9LCAi
SW5zaWRlIGJvZHkgcmVhZCBwcm9taXNlIik7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsK
KyAgICByZXR1cm4gZG9UZXN0KGFzeW5jICgpID0+IHsKKyAgICAgICAgY29uc3QgY29udHJvbGxl
ciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTsKKyAgICAgICAgY29uc3Qgc2lnbmFsID0gY29udHJv
bGxlci5zaWduYWw7CisKKyAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCgnL25h
dmlnYXRpb24vcmVzb3VyY2VzL3Nsb3ctcmVzb3VyY2UucGwnLCB7IHNpZ25hbCB9KTsKKyAgICAg
ICAgY29uc3QgcmVhZGVyID0gcmVzcG9uc2UuYm9keS5nZXRSZWFkZXIoKTsKKworICAgICAgICBj
b25zdCByZXN1bHQgPSByZWFkZXIuY2xvc2VkLnRoZW4oKCkgPT4gYXNzZXJ0X3VucmVhY2hlZCgp
LCAoKSA9PiB0ZXN0VmlkZW9DYW5QbGF5KCkpOworCisgICAgICAgIGNvbnRyb2xsZXIuYWJvcnQo
KTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9KTsKK30sICJJbnNpZGUgcmVhZGVyLmNs
b3NlZCByZWplY3Rpb24gaGFuZGxlciIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Cisg
ICAgcmV0dXJuIGRvVGVzdChhc3luYyAoKSA9PiB7CisgICAgICAgIGNvbnN0IHJlc3BvbnNlID0g
YXdhaXQgZmV0Y2goInRlc3QzIik7CisgICAgICAgIGNvbnN0IHJlYWRlciA9IHJlc3BvbnNlLmJv
ZHkuZ2V0UmVhZGVyKCk7CisKKyAgICAgICAgY29uc3QgcmVzdWx0ID0gcmVhZGVyLmNsb3NlZC50
aGVuKCgpID0+IHRlc3RWaWRlb0NhblBsYXkoKSwgKCkgPT4gYXNzZXJ0X3VucmVhY2hlZCgpKTsK
KworICAgICAgICBhd2FpdCBwdW1wU3RyZWFtKHJlYWRlcik7CisgICAgICAgIHJldHVybiByZXN1
bHQ7CisgICAgfSk7Cit9LCAiSW5zaWRlIHJlYWRlci5jbG9zZWQgZnVsZmlsbG1lbnQgaGFuZGxl
ciIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgcmV0dXJuIGRvVGVzdChhc3lu
YyAoKSA9PiB7CisgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goInRlc3Q0Iik7
CisgICAgICAgIGNvbnN0IHJlYWRlciA9IHJlc3BvbnNlLmJvZHkuZ2V0UmVhZGVyKCk7CisgICAg
ICAgIGF3YWl0IHB1bXBTdHJlYW0ocmVhZGVyKTsKKyAgICAgICAgcmV0dXJuIHJlYWRlci5yZWFk
KCkudGhlbigoKSA9PiB0ZXN0VmlkZW9DYW5QbGF5KCksICgpID0+IGFzc2VydF91bnJlYWNoZWQo
KSk7CisgICAgfSk7Cit9LCAiSW5zaWRlIHJlYWRlci5yZWFkIG9uY2Ugc3RyZWFtIGlzIGRvbmUi
KTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIHJldHVybiBkb1Rlc3QoYXN5bmMg
KCkgPT4geworICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKCJ0ZXN0NSIpOwor
ICAgICAgICBjb25zdCByZWFkZXIgPSByZXNwb25zZS5ib2R5LmdldFJlYWRlcigpOworICAgICAg
ICBhd2FpdCBwdW1wU3RyZWFtKHJlYWRlcik7CisgICAgICAgIGF3YWl0IHJlYWRlci5jbG9zZWQ7
CisgICAgICAgIHJldHVybiByZWFkZXIucmVhZCgpLnRoZW4oKCkgPT4gdGVzdFZpZGVvQ2FuUGxh
eSgpLCAoKSA9PiBhc3NlcnRfdW5yZWFjaGVkKCkpOworICAgIH0pOworfSwgIkluc2lkZSByZWFk
ZXIucmVhZCBvbmNlIHN0cmVhbSBpcyBjbG9zZWQiKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405573</attachid>
            <date>2020-07-30 09:00:41 -0700</date>
            <delta_ts>2020-07-30 23:46:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214722-20200730180040.patch</filename>
            <type>text/plain</type>
            <size>36807</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1MDc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjFmY2E3ZGUzNzc1ZWZm
ZWQ3ODRhNTJkNDI3N2EwZmUyMzJiNjBjZC4uMDBjNWQ2M2Y5MDY5M2I1ZGJjNGUxYTRhNzk5OGU0
MWEwYmI0NzJiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDIwLTA3LTMwICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBQcm9wYWdhdGluZyBtZWRp
YSBvbmx5IHVzZXIgZ2VzdHVyZSB0aHJvdWdoIEZldGNoIFJlYWRhYmxlU3RyZWFtCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQ3MjIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIHNldHRsaW5nIGNs
b3NlZCBwcm9taXNlIG9yIHJlYWQgcHJvbWlzZXMsIFJlYWRhYmxlU3RyZWFtIHdpbGwgZmlyc3Qg
Y2hlY2sgd2hldGhlciBpdHMgc291cmNlIHNob3VsZCBlbmFibGUgdXNlciBhY3RpdmF0aW9uLgor
ICAgICAgICBUbyBkbyBzbywgUmVhZGFibGVTdHJlYW1Tb3VyY2UgaGFzIGEgbmV3IEB3aXRoVXNl
ckFjdGl2YXRpb25JZk5lZWRlZCBtZXRob2QgdGhhdCB0YWtlcyBhIGNhbGxiYWNrLgorICAgICAg
ICBUaGlzIGNhbGxiYWNrIHdpbGwgc2V0dGxlIHRoZSBwcm9taXNlcyBhbmQgd2l0aFVzZXJBY3Rp
dmF0aW9uSWZOZWVkZWQgaXMgcmVzcG9uc2libGUgdG8gdGFrZSB0aGUgdXNlciBhY3RpdmF0aW9u
IHRva2VuIGlmIG5lZWRlZC4KKyAgICAgICAgSlMgc291cmNlcyB3aWxsIG5vdCBoYXZlIGFueSBz
dWNoIG1ldGhvZCBhbmQgYnkgZGVmYXVsdCB3aXRoVXNlckFjdGl2YXRpb25JZk5lZWRlZCB3aWxs
IGp1c3QgY2FsbCB0aGUgZ2l2ZW4gY2FsbGJhY2suCisKKyAgICAgICAgRmV0Y2hCb2R5U291cmNl
IGltcGxlbWVudHMgd2l0aFVzZXJBY3RpdmF0aW9uSWZOZWVkZWQgYnkgY2hlY2tpbmcgd2hldGhl
ciBpdHMgYm9keSBvd25lciBoYXMgYSB2YWxpZCB1c2VyIGdlc3R1cmUuCisgICAgICAgIElmIHNv
LCBpdCB3aWxsIGVuYWJsZSB1c2VyIGFjdGl2YXRpb24gd2hpbGUgdGhlIGNhbGxiYWNrIGlzIGV4
ZWN1dGVkLgorCisgICAgICAgIEluIGNhc2Ugb2YgdGVlaW5nLCB0aGUgdGVlZCBzb3VyY2VzIHdp
bGwgdXNlIHRoZSBvcmlnaW5hbCBzb3VyY2Ugd2l0aFVzZXJBY3RpdmF0aW9uSWZOZWVkZWQgbWV0
aG9kIHRvIGVuYWJsZSByZXNwb25zZSBjbG9uaW5nLgorCisgICAgICAgIEFkZCBzb21lIHByb3Rl
Y3Rpb24gdG8gRmV0Y2hSZXNwb25zZTo6Qm9keUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEgc2luY2Ug
ZW5xdWV1aW5nIGEgY2h1bmsgbWlnaHQgdHJpZ2dlciBKUywgd2hpY2ggdGhlbiBnbyBiYWNrIHRv
IEMrKywgdGhlbiBKUyB0byBhYm9ydCB0aGUgZmV0Y2gKKyAgICAgICAgaGVuY2UgY2xlYW4gdGhl
IHNvdXJjZS4KKworICAgICAgICBOb3RlIHRoYXQgd2l0aCB0aGUgY3VycmVudCBkZXNpZ24sIG9u
bHkgcHJvbWlzZSByZXNvbHV0aW9uIGNhbGxiYWNrcyB0aGF0IGFyZSByZWdpc3RlcmVkIGF0IHRo
ZSBtb21lbnQgdGhlIHByb21pc2UgZ2V0cyByZXNvbHZlZCBtaWdodCBnZXQgdXNlciBhY3RpdmF0
aW9uLgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvbWVkaWEvdXNlci1nZXN0dXJlLXByZXNl
cnZlZC1hY3Jvc3MtZmV0Y2gtcmVhZGFibGVzdHJlYW0uaHRtbAorCisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJp
dmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogTW9k
dWxlcy9mZXRjaC9GZXRjaEJvZHlPd25lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJv
ZHlPd25lcjo6Y3JlYXRlUmVhZGFibGVTdHJlYW0pOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hC
b2R5T3duZXI6OnN0b3JlVXNlckdlc3R1cmVUb2tlbik6CisgICAgICAgIChXZWJDb3JlOjpGZXRj
aEJvZHlPd25lcjo6aGFzVmFsaWRVc2VyR2VzdHVyZSBjb25zdCk6CisgICAgICAgICogTW9kdWxl
cy9mZXRjaC9GZXRjaEJvZHlPd25lci5oOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5T3du
ZXI6OnVzZXJHZXN0dXJlVG9rZW4pOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5
U291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoQm9keVNvdXJjZTo6d2l0aFVzZXJB
Y3RpdmF0aW9uSWZOZWVkZWQpOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5U291
cmNlLmg6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZldGNoUmVzcG9uc2U6OmZldGNoKToKKyAgICAgICAgKFdlYkNvcmU6OkZl
dGNoUmVzcG9uc2U6OkJvZHlMb2FkZXI6OmRpZFN1Y2NlZWQpOgorICAgICAgICAqIE1vZHVsZXMv
c3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5qczoKKyAgICAgICAgKGluaXRpYWxpemVSZWFkYWJsZVN0
cmVhbSk6CisgICAgICAgICogTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtSW50ZXJuYWxz
LmpzOgorICAgICAgICAocmVhZGFibGVTdHJlYW1UZWUpOgorICAgICAgICAocmVhZGFibGVTdHJl
YW1FcnJvcik6CisgICAgICAgIChyZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyUHVsbCk6
CisgICAgICAgIChyZWFkYWJsZVN0cmVhbUNsb3NlKToKKyAgICAgICAgKHJlYWRhYmxlU3RyZWFt
RnVsZmlsbFJlYWRSZXF1ZXN0KToKKyAgICAgICAgKHJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRl
clJlYWQpOgorICAgICAgICAqIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNvdXJjZS5o
OgorICAgICAgICAqIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNvdXJjZS5pZGw6Cisg
ICAgICAgICogTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNlQ2FsbGJhY2suaDog
Q29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFt
U291cmNlLmlkbC4KKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1Tb3Vy
Y2VDYWxsYmFjay5pZGw6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFt
cy9SZWFkYWJsZVN0cmVhbVNvdXJjZS5pZGwuCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaDoKKwogMjAyMC0wNy0zMCAgQnJhZHkgRWlkc29u
ICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVmYWN0b3IgSElEIGdhbWVwYWQgY29k
ZSB0byBiZSBtdWNoIGxlc3MgZnJhZ2lsZSBhbmQgbXVjaCBlYXNpZXIgdG8gaGFjayBvbi4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKaW5kZXggMGYyOWM5ZTg2MzNmOTJhOTg2ODllNDc2MDUxMzJlNGNlOTdj
YjZjNi4uZDhiMmM2MWJiY2VhMWQwZGM0YTQ3MTA1OWU0NDRiZmIzMDA1Zjk3ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKQEAgLTQ0Myw2ICs0NDMsNyBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9G
SUxFUwogICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuaWRs
CiAgICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU2luay5pZGwKICAgICBNb2R1bGVz
L3N0cmVhbXMvUmVhZGFibGVTdHJlYW1Tb3VyY2UuaWRsCisgICAgTW9kdWxlcy9zdHJlYW1zL1Jl
YWRhYmxlU3RyZWFtU291cmNlQ2FsbGJhY2suaWRsCiAgICAgTW9kdWxlcy9zdHJlYW1zL1dyaXRh
YmxlU3RyZWFtLmlkbAogCiAgICAgTW9kdWxlcy93ZWJhdWRpby9BbmFseXNlck5vZGUuaWRsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCAz
ZDJmOGEzMTY3MmEzMzc5YjYzYjBjNzIzYWMyYWM1MmFmNjZjZjJjLi45MjI4YjBlODkxNzA1ZDYw
MWUyNGJkOGY0YjA2ZTBkNjVjZTU4ZTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTI5MCw2ICsyOTAsNyBAQCAkKFBST0pFQ1RfRElS
KS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyLmpzCiAkKFBST0pF
Q1RfRElSKS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1JbnRlcm5hbHMuanMKICQoUFJP
SkVDVF9ESVIpL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNpbmsuaWRsCiAkKFBST0pF
Q1RfRElSKS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1Tb3VyY2UuaWRsCiskKFBST0pF
Q1RfRElSKS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1Tb3VyY2VDYWxsYmFjay5pZGwK
ICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvc3RyZWFtcy9TdHJlYW1JbnRlcm5hbHMuanMKICQoUFJP
SkVDVF9ESVIpL01vZHVsZXMvc3RyZWFtcy9Xcml0YWJsZVN0cmVhbS5pZGwKICQoUFJPSkVDVF9E
SVIpL01vZHVsZXMvc3RyZWFtcy9Xcml0YWJsZVN0cmVhbS5qcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCBlNmViMDcyYmE3NWUyYzE1
MjczYzE4MzdlMWM3ZDA4NGExNzdmOTE3Li40MDdjNGY2YzAyMTE1ZmZkYjgwM2U2OGU1YmU3NzNj
MzljZTJhNmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRw
dXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQu
eGNmaWxlbGlzdApAQCAtMTQ2Niw2ICsxNDY2LDggQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSZWFkYWJsZVN0cmVhbVNpbmsuY3BwCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JlYWRhYmxlU3RyZWFtU2luay5o
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JlYWRhYmxl
U3RyZWFtU291cmNlLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNSZWFkYWJsZVN0cmVhbVNvdXJjZS5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JlYWRhYmxlU3RyZWFtU291cmNlQ2FsbGJhY2suY3BwCisk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JlYWRhYmxlU3Ry
ZWFtU291cmNlQ2FsbGJhY2suaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNSZW1vdGVET01XaW5kb3cuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JlbW90ZURPTVdpbmRvdy5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JlbW90ZVBsYXliYWNrLmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggNjliYWI4OTFhZjRlODkwYzgyOTg0YjE0MDhhYmVi
ZjM0NjkxYzdlNS4uOTYyMDMzZTFmZTAyYjc1MWY1ODFiZTc0NjQ4MzIyNjkyYWQ0ZmRhNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0zNzYsNiArMzc2LDcgQEAgSlNfQklORElO
R19JRExTID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFt
RGVmYXVsdFJlYWRlci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL1JlYWRh
YmxlU3RyZWFtU2luay5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL1JlYWRh
YmxlU3RyZWFtU291cmNlLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVhbXMvUmVh
ZGFibGVTdHJlYW1Tb3VyY2VDYWxsYmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9z
dHJlYW1zL1dyaXRhYmxlU3RyZWFtLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1
ZGlvL0FuYWx5c2VyTm9kZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb0J1ZmZlci5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggMDZlMzUxOWEwZDc0ZmRjYzBh
MGYwMWNkYTk4NDZmZmVmMjk4OGZiYi4uN2QyNjM1OGZhOWZlMTQ1NjdhYTY4ZWJjZTVmNzVkMWQx
NTUwZTkzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9T
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xMTcsNiArMTE3LDcgQEAgc2V0KFdlYkNv
cmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJs
ZVN0cmVhbUNodW5rLmgKICAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1TaW5rLmgK
ICAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1Tb3VyY2UuaAorICAgIE1vZHVsZXMv
c3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNvdXJjZUNhbGxiYWNrLmgKIAogICAgIE1vZHVsZXMvd2Vi
YXV0aG4vQXR0ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZS5oCiAgICAgTW9kdWxlcy93ZWJh
dXRobi9BdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMuaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlPd25lci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keU93bmVyLmNwcAppbmRleCBkZjYzZjI0OTUw
ZWNlMzg5OTdlMmJiODZlOGZiZTYxYjI0YzNiNGQ1Li4yNGUxYzliM2Y4MjlhOWRkNzkyNzUwODdh
YjE5MjZiOGY2ZmE0NWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNo
L0ZldGNoQm9keU93bmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0Zl
dGNoQm9keU93bmVyLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkpTQmxvYi5oIgog
I2luY2x1ZGUgIlJlc291cmNlRXJyb3IuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgi
CisjaW5jbHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0b3IuaCIKICNpbmNsdWRlICJXaW5kb3dFdmVu
dExvb3AuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzM4LDcgKzMzOSw3IEBAIEV4Y2Vw
dGlvbk9yPHZvaWQ+IEZldGNoQm9keU93bmVyOjpjcmVhdGVSZWFkYWJsZVN0cmVhbShKU0M6OkpT
R2xvYmFsT2JqZWN0JiBzdGF0CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCi0gICAgbV9y
ZWFkYWJsZVN0cmVhbVNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgRmV0Y2hCb2R5U291cmNlKCp0aGlz
KSk7CisgICAgbV9yZWFkYWJsZVN0cmVhbVNvdXJjZSA9IEZldGNoQm9keVNvdXJjZTo6Y3JlYXRl
KCp0aGlzKTsKICAgICBhdXRvIHN0cmVhbU9yRXhjZXB0aW9uID0gUmVhZGFibGVTdHJlYW06OmNy
ZWF0ZShzdGF0ZSwgbV9yZWFkYWJsZVN0cmVhbVNvdXJjZSk7CiAgICAgaWYgKFVOTElLRUxZKHN0
cmVhbU9yRXhjZXB0aW9uLmhhc0V4Y2VwdGlvbigpKSkgewogICAgICAgICBtX3JlYWRhYmxlU3Ry
ZWFtU291cmNlID0gbnVsbHB0cjsKQEAgLTQxNiw0ICs0MTcsMTQgQEAgdm9pZCBGZXRjaEJvZHlP
d25lcjo6c2V0TG9hZGluZ0Vycm9yKFJlc291cmNlRXJyb3ImJiBlcnJvcikKICAgICBtX2xvYWRp
bmdFcnJvciA9IFdURk1vdmUoZXJyb3IpOwogfQogCit2b2lkIEZldGNoQm9keU93bmVyOjpzdG9y
ZVVzZXJHZXN0dXJlVG9rZW4oKQoreworICAgIG1fdXNlckdlc3R1cmVUb2tlbiA9IFVzZXJHZXN0
dXJlSW5kaWNhdG9yOjpjdXJyZW50VXNlckdlc3R1cmUoKTsKK30KKworYm9vbCBGZXRjaEJvZHlP
d25lcjo6aGFzVmFsaWRVc2VyR2VzdHVyZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdXNlckdl
c3R1cmVUb2tlbiAmJiAhbV91c2VyR2VzdHVyZVRva2VuLT5oYXNFeHBpcmVkKFVzZXJHZXN0dXJl
VG9rZW46Om1heGltdW1JbnRlcnZhbEZvclVzZXJHZXN0dXJlRm9yd2FyZGluZ0ZvckZldGNoKCkp
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keU93bmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZldGNoL0ZldGNoQm9keU93bmVyLmgKaW5kZXggYTM0YzkyNjI1NDliODA5YzUzMzBlNjQ1OTdi
MTU4OTU2ZTFkZDdhMi4uMmZiMTQzZDkyNDRmN2Q0ODFlZjg4YzVjN2YxNzFmZDlkYjQ1ZGZlOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlPd25lci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5T3duZXIuaApAQCAt
NDAsNiArNDAsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIFVzZXJHZXN0dXJl
SW5kaWNhdG9yOworCiBjbGFzcyBGZXRjaEJvZHlPd25lciA6IHB1YmxpYyBSZWZDb3VudGVkPEZl
dGNoQm9keU93bmVyPiwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CiBwdWJsaWM6CiAgICAgRmV0
Y2hCb2R5T3duZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIE9wdGlvbmFsPEZldGNoQm9keT4m
JiwgUmVmPEZldGNoSGVhZGVycz4mJik7CkBAIC03MCw2ICs3Miw5IEBAIHB1YmxpYzoKICAgICBS
ZXNvdXJjZUVycm9yIGxvYWRpbmdFcnJvcigpIGNvbnN0OwogICAgIE9wdGlvbmFsPEV4Y2VwdGlv
bj4gbG9hZGluZ0V4Y2VwdGlvbigpIGNvbnN0OwogCisgICAgYm9vbCBoYXNWYWxpZFVzZXJHZXN0
dXJlKCkgY29uc3Q7CisgICAgVXNlckdlc3R1cmVUb2tlbiogdXNlckdlc3R1cmVUb2tlbigpIHsg
cmV0dXJuIG1fdXNlckdlc3R1cmVUb2tlbi5nZXQoKTsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgY29u
c3QgRmV0Y2hCb2R5JiBib2R5KCkgY29uc3QgeyByZXR1cm4gKm1fYm9keTsgfQogICAgIEZldGNo
Qm9keSYgYm9keSgpIHsgcmV0dXJuICptX2JvZHk7IH0KQEAgLTk1LDYgKzEwMCw4IEBAIHByb3Rl
Y3RlZDoKICAgICB2b2lkIHNldExvYWRpbmdFcnJvcihFeGNlcHRpb24mJik7CiAgICAgdm9pZCBz
ZXRMb2FkaW5nRXJyb3IoUmVzb3VyY2VFcnJvciYmKTsKIAorICAgIHZvaWQgc3RvcmVVc2VyR2Vz
dHVyZVRva2VuKCk7CisKIHByaXZhdGU6CiAgICAgLy8gQmxvYiBsb2FkaW5nIHJvdXRpbmVzCiAg
ICAgdm9pZCBibG9iQ2h1bmsoY29uc3QgY2hhciosIHNpemVfdCk7CkBAIC0xMjgsNiArMTM1LDcg
QEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICBPcHRpb25hbDxCbG9iTG9hZGVyPiBtX2Jsb2JM
b2FkZXI7CiAgICAgYm9vbCBtX2lzQm9keU9wYXF1ZSB7IGZhbHNlIH07CisgICAgUmVmUHRyPFVz
ZXJHZXN0dXJlVG9rZW4+IG1fdXNlckdlc3R1cmVUb2tlbjsKIAogICAgIFZhcmlhbnQ8c3RkOjpu
dWxscHRyX3QsIEV4Y2VwdGlvbiwgUmVzb3VyY2VFcnJvcj4gbV9sb2FkaW5nRXJyb3I7CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlTb3VyY2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlTb3VyY2UuY3BwCmlu
ZGV4IDJiNmFiYzViYjgxMDA5OWRmZjkwMmQ5NGE2Y2NkYzM0ZTQ2NDI0YTQuLmQ4NmYwYjg1ZTdi
NGZkMTI0OWYwNDg0NDkwZDM1NDFmOGQ0N2M2ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5U291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZldGNoL0ZldGNoQm9keVNvdXJjZS5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNs
dWRlICJGZXRjaEJvZHlTb3VyY2UuaCIKIAogI2luY2x1ZGUgIkZldGNoUmVzcG9uc2UuaCIKKyNp
bmNsdWRlICJSZWFkYWJsZVN0cmVhbVNvdXJjZUNhbGxiYWNrLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtOTQsNCArOTUsMTkgQEAgdm9pZCBGZXRjaEJvZHlTb3VyY2U6OmVycm9yKGNv
bnN0IEV4Y2VwdGlvbiYgdmFsdWUpCiAgICAgbV9ib2R5T3duZXIgPSBudWxscHRyOwogfQogCit2
b2lkIEZldGNoQm9keVNvdXJjZTo6d2l0aFVzZXJBY3RpdmF0aW9uSWZOZWVkZWQoUmVmPFJlYWRh
YmxlU3RyZWFtU291cmNlQ2FsbGJhY2s+JiYgY2FsbGJhY2spCit7CisgICAgaWYgKCFtX2JvZHlP
d25lciB8fCAhbV9ib2R5T3duZXItPmhhc1ZhbGlkVXNlckdlc3R1cmUoKSkgeworICAgICAgICBj
YWxsYmFjay0+aGFuZGxlRXZlbnQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8v
IFdlIGFzeW5jaHJvbm91c2x5IGNhbGwgdGhlIGNhbGxiYWNrIHNvIHRoYXQgYW55IHByb21pc2Ug
dGhhdCBnb3QgcmVzb2x2ZWQgY2FuIGJlIHRoZW5lZCBieSB0aGUgcGFnZSBiZWZvcmUgdGhlIHBy
b21pc2UgZ290IHNldHRsZWQgd2l0aCB1c2VyIGdlc3R1cmUgcHJpdmlsZWRnZS4KKyAgICBjYWxs
T25NYWluVGhyZWFkKFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCB1c2VyR2VzdHVyZVRv
a2VuID0gbV9ib2R5T3duZXItPnVzZXJHZXN0dXJlVG9rZW4oKV0oKSBtdXRhYmxlIHsKKyAgICAg
ICAgVXNlckdlc3R1cmVJbmRpY2F0b3IgZ2VzdHVyZUluZGljYXRvcihXVEZNb3ZlKHVzZXJHZXN0
dXJlVG9rZW4pLCBVc2VyR2VzdHVyZVRva2VuOjpHZXN0dXJlU2NvcGU6Ok1lZGlhT25seSwgVXNl
ckdlc3R1cmVUb2tlbjo6SXNQcm9wYWdhdGVkRnJvbUZldGNoOjpZZXMpOworICAgICAgICBjYWxs
YmFjay0+aGFuZGxlRXZlbnQoKTsKKyAgICB9KTsKK30KKworCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keVNv
dXJjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlTb3VyY2UuaApp
bmRleCBiOTVkZDExNjliNDE1YmQ4NTg4ZDE2ZDkyYTVmMjM4NWQ4N2M2NTgwLi5iNjc0NDk1YzMw
NGY3YTlkMWFjY2FkMWQ5MGJmMTdlOWI3OTYyYTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5U291cmNlLmgKQEAgLTM5LDcgKzM5LDcgQEAgY2xhc3MgRmV0
Y2hCb2R5T3duZXI7CiAKIGNsYXNzIEZldGNoQm9keVNvdXJjZSBmaW5hbCA6IHB1YmxpYyBSZWFk
YWJsZVN0cmVhbVNvdXJjZSB7CiBwdWJsaWM6Ci0gICAgRmV0Y2hCb2R5U291cmNlKEZldGNoQm9k
eU93bmVyJik7CisgICAgc3RhdGljIFJlZjxGZXRjaEJvZHlTb3VyY2U+IGNyZWF0ZShGZXRjaEJv
ZHlPd25lciYgb3duZXIpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRmV0Y2hCb2R5U291cmNlKG93
bmVyKSk7IH0KIAogICAgIGJvb2wgZW5xdWV1ZShSZWZQdHI8SlNDOjpBcnJheUJ1ZmZlcj4mJiBj
aHVuaykgeyByZXR1cm4gY29udHJvbGxlcigpLmVucXVldWUoV1RGTW92ZShjaHVuaykpOyB9CiAg
ICAgdm9pZCBjbG9zZSgpOwpAQCAtNTEsMTEgKzUxLDE0IEBAIHB1YmxpYzoKICAgICB2b2lkIGRl
dGFjaCgpIHsgbV9ib2R5T3duZXIgPSBudWxscHRyOyB9CiAKIHByaXZhdGU6CisgICAgZXhwbGlj
aXQgRmV0Y2hCb2R5U291cmNlKEZldGNoQm9keU93bmVyJik7CisKICAgICB2b2lkIGRvU3RhcnQo
KSBmaW5hbDsKICAgICB2b2lkIGRvUHVsbCgpIGZpbmFsOwogICAgIHZvaWQgZG9DYW5jZWwoKSBm
aW5hbDsKICAgICB2b2lkIHNldEFjdGl2ZSgpIGZpbmFsOwogICAgIHZvaWQgc2V0SW5hY3RpdmUo
KSBmaW5hbDsKKyAgICB2b2lkIHdpdGhVc2VyQWN0aXZhdGlvbklmTmVlZGVkKFJlZjxSZWFkYWJs
ZVN0cmVhbVNvdXJjZUNhbGxiYWNrPiYmKSBmaW5hbDsKIAogICAgIEZldGNoQm9keU93bmVyKiBt
X2JvZHlPd25lcjsKICAgICBib29sIG1faXNDYW5jZWxsaW5nIHsgZmFsc2UgfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuY3BwCmluZGV4IDQyNjM5MWRj
ZTg0Y2VmMzM0ZGYyNWQyY2QwNGM2NzBkYzk2MzQxYmIuLmNhMTUzOTUwY2NkNmVmYjQzMWM4MGUx
MTkyNzkwYWMyMTJlNWY5NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0
Y2gvRmV0Y2hSZXNwb25zZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9G
ZXRjaFJlc3BvbnNlLmNwcApAQCAtMjQzLDYgKzI0Myw3IEBAIHZvaWQgRmV0Y2hSZXNwb25zZTo6
ZmV0Y2goU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgRmV0Y2hSZXF1ZXN0JiByZXF1
ZXN0CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRmV0Y2goY29udGV4dCwgcmVx
dWVzdC51cmwoKS5zdHJpbmcoKSk7CiAKICAgICBhdXRvIHJlc3BvbnNlID0gYWRvcHRSZWYoKm5l
dyBGZXRjaFJlc3BvbnNlKGNvbnRleHQsIEZldGNoQm9keSB7IH0sIEZldGNoSGVhZGVyczo6Y3Jl
YXRlKEZldGNoSGVhZGVyczo6R3VhcmQ6OkltbXV0YWJsZSksIHsgfSkpOworICAgIHJlc3BvbnNl
LT5zdG9yZVVzZXJHZXN0dXJlVG9rZW4oKTsKIAogICAgIHJlc3BvbnNlLT5ib2R5KCkuY29uc3Vt
ZXIoKS5zZXRBc0xvYWRpbmcoKTsKIApAQCAtMjg1LDcgKzI4Niw3IEBAIHZvaWQgRmV0Y2hSZXNw
b25zZTo6Qm9keUxvYWRlcjo6ZGlkU3VjY2VlZCgpCiAgICAgaWYgKGF1dG8gY29uc3VtZURhdGFD
YWxsYmFjayA9IFdURk1vdmUobV9jb25zdW1lRGF0YUNhbGxiYWNrKSkKICAgICAgICAgY29uc3Vt
ZURhdGFDYWxsYmFjayhudWxscHRyKTsKIAotICAgIGlmIChtX2xvYWRlci0+aXNTdGFydGVkKCkp
IHsKKyAgICBpZiAobV9sb2FkZXIgJiYgbV9sb2FkZXItPmlzU3RhcnRlZCgpKSB7CiAgICAgICAg
IFJlZjxGZXRjaFJlc3BvbnNlPiBwcm90ZWN0b3IobV9yZXNwb25zZSk7CiAgICAgICAgIG1fcmVz
cG9uc2UubV9ib2R5TG9hZGVyID0gbnVsbHB0cjsKICAgICB9CkBAIC0zNzAsMTEgKzM3MSwxOSBA
QCB2b2lkIEZldGNoUmVzcG9uc2U6OkJvZHlMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKGNvbnN0IGNo
YXIqIGRhdGEsIHNpemVfdCBzaXplKQogICAgICAgICBzdG9wKCk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CisKKyAgICBpZiAoIXNvdXJjZS5pc1B1bGxpbmcoKSkgeworICAgICAgICBtX3Jlc3Bv
bnNlLmJvZHkoKS5jb25zdW1lcigpLmFwcGVuZChkYXRhLCBzaXplKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKwogICAgIGlmICghc291cmNlLmVucXVldWUoQXJyYXlCdWZmZXI6OnRyeUNyZWF0
ZShkYXRhLCBzaXplKSkpIHsKICAgICAgICAgc3RvcCgpOwogICAgICAgICByZXR1cm47CiAgICAg
fQotICAgIHNvdXJjZS5yZXNvbHZlUHVsbFByb21pc2UoKTsKKworICAgIGlmIChzb3VyY2UuaXNQ
dWxsaW5nKCkpCisgICAgICAgIHNvdXJjZS5yZXNvbHZlUHVsbFByb21pc2UoKTsKIH0KIAogYm9v
bCBGZXRjaFJlc3BvbnNlOjpCb2R5TG9hZGVyOjpzdGFydChTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBjb250ZXh0LCBjb25zdCBGZXRjaFJlcXVlc3QmIHJlcXVlc3QpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uanMgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uanMKaW5kZXggY2UxODg5OWFiZmI0
NTIzMzU2NWFmMzI0NzEyYjdiMjFmOTQzNjkyMy4uYWZiOGNiZDUzNjI2YTU4ZDI2NGU0NTE3YmY4
M2NlZDNjODZjZTEyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1z
L1JlYWRhYmxlU3RyZWFtLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9S
ZWFkYWJsZVN0cmVhbS5qcwpAQCAtNDYsNiArNDYsOSBAQCBmdW5jdGlvbiBpbml0aWFsaXplUmVh
ZGFibGVTdHJlYW0odW5kZXJseWluZ1NvdXJjZSwgc3RyYXRlZ3kpCiAgICAgLy8gSW5pdGlhbGl6
ZWQgd2l0aCBudWxsIHZhbHVlIHRvIGVuYWJsZSBkaXN0aW5jdGlvbiB3aXRoIHVuZGVmaW5lZCBj
YXNlLgogICAgIEBwdXRCeUlkRGlyZWN0UHJpdmF0ZSh0aGlzLCAicmVhZGFibGVTdHJlYW1Db250
cm9sbGVyIiwgbnVsbCk7CiAKKyAgICBpZiAodW5kZXJseWluZ1NvdXJjZS5Ad2l0aFVzZXJBY3Rp
dmF0aW9uSWZOZWVkZWQgPT09IEB1bmRlZmluZWQpCisgICAgICAgIHVuZGVybHlpbmdTb3VyY2Uu
QHdpdGhVc2VyQWN0aXZhdGlvbklmTmVlZGVkID0gY2FsbGJhY2sgPT4gY2FsbGJhY2soKTsKKwog
ICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgaW50cm9kdWNlIGh0dHBzOi8vc3RyZWFtcy5zcGVjLndo
YXR3Zy5vcmcvI2NyZWF0ZS1yZWFkYWJsZS1zdHJlYW0uCiAgICAgLy8gRm9yIG5vdywgd2UgZW11
bGF0ZSB0aGlzIHdpdGggdW5kZXJseWluZ1NvdXJjZSB3aXRoIHByaXZhdGUgcHJvcGVydGllcy4K
ICAgICBpZiAoQGdldEJ5SWREaXJlY3RQcml2YXRlKHVuZGVybHlpbmdTb3VyY2UsICJwdWxsIikg
IT09IEB1bmRlZmluZWQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Ry
ZWFtcy9SZWFkYWJsZVN0cmVhbUludGVybmFscy5qcyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3RyZWFtcy9SZWFkYWJsZVN0cmVhbUludGVybmFscy5qcwppbmRleCAzMjU0MDIxZjI2MzdjMTg0
YmU0MjY4YzhiODc0MjNmYjVkNzdiNDc2Li4yY2RlYzc0YzdiOGZkNGNiYjQyMjAwZTVhZGRmY2Rm
ZTVlOWQ3YjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVh
ZGFibGVTdHJlYW1JbnRlcm5hbHMuanMKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJl
YW1zL1JlYWRhYmxlU3RyZWFtSW50ZXJuYWxzLmpzCkBAIC0xNTAsMTUgKzE1MCwxOSBAQCBmdW5j
dGlvbiByZWFkYWJsZVN0cmVhbVRlZShzdHJlYW0sIHNob3VsZENsb25lKQogCiAgICAgdGVlU3Rh
dGUuY2FuY2VsUHJvbWlzZUNhcGFiaWxpdHkgPSBAbmV3UHJvbWlzZUNhcGFiaWxpdHkoQFByb21p
c2UpOwogCisgICAgY29uc3QgY29udHJvbGxlciA9IEBnZXRCeUlkRGlyZWN0UHJpdmF0ZShzdHJl
YW0sICJyZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIiKTsKKyAgICBjb25zdCB1bmRlcmx5aW5nU291
cmNlID0gQGdldEJ5SWREaXJlY3RQcml2YXRlKGNvbnRyb2xsZXIsICJ1bmRlcmx5aW5nU291cmNl
Iik7CiAgICAgY29uc3QgcHVsbEZ1bmN0aW9uID0gQHJlYWRhYmxlU3RyZWFtVGVlUHVsbEZ1bmN0
aW9uKHRlZVN0YXRlLCByZWFkZXIsIHNob3VsZENsb25lKTsKIAogICAgIGNvbnN0IGJyYW5jaDFT
b3VyY2UgPSB7IH07CiAgICAgQHB1dEJ5SWREaXJlY3RQcml2YXRlKGJyYW5jaDFTb3VyY2UsICJw
dWxsIiwgcHVsbEZ1bmN0aW9uKTsKICAgICBAcHV0QnlJZERpcmVjdFByaXZhdGUoYnJhbmNoMVNv
dXJjZSwgImNhbmNlbCIsIEByZWFkYWJsZVN0cmVhbVRlZUJyYW5jaDFDYW5jZWxGdW5jdGlvbih0
ZWVTdGF0ZSwgc3RyZWFtKSk7CisgICAgYnJhbmNoMVNvdXJjZS5Ad2l0aFVzZXJBY3RpdmF0aW9u
SWZOZWVkZWQgPSAoY2FsbGJhY2spID0+IHVuZGVybHlpbmdTb3VyY2UuQHdpdGhVc2VyQWN0aXZh
dGlvbklmTmVlZGVkKGNhbGxiYWNrKTsKIAogICAgIGNvbnN0IGJyYW5jaDJTb3VyY2UgPSB7IH07
CiAgICAgQHB1dEJ5SWREaXJlY3RQcml2YXRlKGJyYW5jaDJTb3VyY2UsICJwdWxsIiwgcHVsbEZ1
bmN0aW9uKTsKICAgICBAcHV0QnlJZERpcmVjdFByaXZhdGUoYnJhbmNoMlNvdXJjZSwgImNhbmNl
bCIsIEByZWFkYWJsZVN0cmVhbVRlZUJyYW5jaDJDYW5jZWxGdW5jdGlvbih0ZWVTdGF0ZSwgc3Ry
ZWFtKSk7CisgICAgYnJhbmNoMlNvdXJjZS5Ad2l0aFVzZXJBY3RpdmF0aW9uSWZOZWVkZWQgPSAo
Y2FsbGJhY2spID0+IHVuZGVybHlpbmdTb3VyY2UuQHdpdGhVc2VyQWN0aXZhdGlvbklmTmVlZGVk
KGNhbGxiYWNrKTsKIAogICAgIGNvbnN0IGJyYW5jaDEgPSBuZXcgQFJlYWRhYmxlU3RyZWFtKGJy
YW5jaDFTb3VyY2UpOwogICAgIGNvbnN0IGJyYW5jaDIgPSBuZXcgQFJlYWRhYmxlU3RyZWFtKGJy
YW5jaDJTb3VyY2UpOwpAQCAtMjk4LDE5ICszMDIsMzAgQEAgZnVuY3Rpb24gcmVhZGFibGVTdHJl
YW1FcnJvcihzdHJlYW0sIGVycm9yKQogCiAgICAgaWYgKEBpc1JlYWRhYmxlU3RyZWFtRGVmYXVs
dFJlYWRlcihyZWFkZXIpKSB7CiAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gQGdldEJ5SWREaXJl
Y3RQcml2YXRlKHJlYWRlciwgInJlYWRSZXF1ZXN0cyIpOwotICAgICAgICBmb3IgKGxldCBpbmRl
eCA9IDAsIGxlbmd0aCA9IHJlcXVlc3RzLmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7ICsraW5kZXgp
Ci0gICAgICAgICAgICByZXF1ZXN0c1tpbmRleF0uQHJlamVjdC5AY2FsbChAdW5kZWZpbmVkLCBl
cnJvcik7CisgICAgICAgIGZvciAobGV0IGluZGV4ID0gMCwgbGVuZ3RoID0gcmVxdWVzdHMubGVu
Z3RoOyBpbmRleCA8IGxlbmd0aDsgKytpbmRleCkgeworICAgICAgICAgICAgY29uc3QgcmVhZFJl
cXVlc3QgPSByZXF1ZXN0c1tpbmRleF07CisgICAgICAgICAgICBAcmVhZGFibGVTdHJlYW1XaXRo
VXNlckFjdGl2YXRpb25JZk5lZWRlZChzdHJlYW0sICgpID0+ICB7CisgICAgICAgICAgICAgICAg
cmVhZFJlcXVlc3QuQHJlamVjdC5AY2FsbChAdW5kZWZpbmVkLCBlcnJvcik7CisgICAgICAgICAg
ICB9KTsKKyAgICAgICAgfQogICAgICAgICBAcHV0QnlJZERpcmVjdFByaXZhdGUocmVhZGVyLCAi
cmVhZFJlcXVlc3RzIiwgW10pOwogICAgIH0gZWxzZSB7CiAgICAgICAgIEBhc3NlcnQoQGlzUmVh
ZGFibGVTdHJlYW1CWU9CUmVhZGVyKHJlYWRlcikpOwogICAgICAgICBjb25zdCByZXF1ZXN0cyA9
IEBnZXRCeUlkRGlyZWN0UHJpdmF0ZShyZWFkZXIsICJyZWFkSW50b1JlcXVlc3RzIik7Ci0gICAg
ICAgIGZvciAobGV0IGluZGV4ID0gMCwgbGVuZ3RoID0gcmVxdWVzdHMubGVuZ3RoOyBpbmRleCA8
IGxlbmd0aDsgKytpbmRleCkKLSAgICAgICAgICAgIHJlcXVlc3RzW2luZGV4XS5AcmVqZWN0LkBj
YWxsKEB1bmRlZmluZWQsIGVycm9yKTsKKyAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwLCBsZW5n
dGggPSByZXF1ZXN0cy5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyArK2luZGV4KSB7CisgICAgICAg
ICAgICBjb25zdCByZWFkUmVxdWVzdCA9IHJlcXVlc3RzW2luZGV4XTsKKyAgICAgICAgICAgIEBy
ZWFkYWJsZVN0cmVhbVdpdGhVc2VyQWN0aXZhdGlvbklmTmVlZGVkKHN0cmVhbSwgKCkgPT4gIHsK
KyAgICAgICAgICAgICAgICByZWFkUmVxdWVzdC5AcmVqZWN0LkBjYWxsKEB1bmRlZmluZWQsIGVy
cm9yKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CiAgICAgICAgIEBwdXRCeUlkRGlyZWN0
UHJpdmF0ZShyZWFkZXIsICJyZWFkSW50b1JlcXVlc3RzIiwgW10pOwogICAgIH0KIAotICAgIEBn
ZXRCeUlkRGlyZWN0UHJpdmF0ZShyZWFkZXIsICJjbG9zZWRQcm9taXNlQ2FwYWJpbGl0eSIpLkBy
ZWplY3QuQGNhbGwoQHVuZGVmaW5lZCwgZXJyb3IpOwotICAgIGNvbnN0IHByb21pc2UgPSBAZ2V0
QnlJZERpcmVjdFByaXZhdGUocmVhZGVyLCAiY2xvc2VkUHJvbWlzZUNhcGFiaWxpdHkiKS5AcHJv
bWlzZTsKKyAgICBjb25zdCBjbG9zZWRQcm9taXNlQ2FwYWJpbGl0eSA9IEBnZXRCeUlkRGlyZWN0
UHJpdmF0ZShyZWFkZXIsICJjbG9zZWRQcm9taXNlQ2FwYWJpbGl0eSIpOworICAgIEByZWFkYWJs
ZVN0cmVhbVdpdGhVc2VyQWN0aXZhdGlvbklmTmVlZGVkKHN0cmVhbSwgKCkgPT4gIHsKKyAgICAg
ICAgY2xvc2VkUHJvbWlzZUNhcGFiaWxpdHkuQHJlamVjdC5AY2FsbChAdW5kZWZpbmVkLCBlcnJv
cik7CisgICAgfSk7CisgICAgY29uc3QgcHJvbWlzZSA9IGNsb3NlZFByb21pc2VDYXBhYmlsaXR5
LkBwcm9taXNlOwogICAgIEBwdXRQcm9taXNlSW50ZXJuYWxGaWVsZChwcm9taXNlLCBAcHJvbWlz
ZUZpZWxkRmxhZ3MsIEBnZXRQcm9taXNlSW50ZXJuYWxGaWVsZChwcm9taXNlLCBAcHJvbWlzZUZp
ZWxkRmxhZ3MpIHwgQHByb21pc2VGbGFnc0lzSGFuZGxlZCk7CiB9CiAKQEAgLTQxMiw3ICs0Mjcs
MTIgQEAgZnVuY3Rpb24gcmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlclB1bGwoY29udHJv
bGxlcikKICAgICAgICAgICAgIEByZWFkYWJsZVN0cmVhbUNsb3NlKHN0cmVhbSk7CiAgICAgICAg
IGVsc2UKICAgICAgICAgICAgIEByZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyQ2FsbFB1
bGxJZk5lZWRlZChjb250cm9sbGVyKTsKLSAgICAgICAgcmV0dXJuIEBQcm9taXNlLkByZXNvbHZl
KHt2YWx1ZTogY2h1bmssIGRvbmU6IGZhbHNlfSk7CisKKyAgICAgICAgY29uc3QgcmVhZFJlcXVl
c3QgPSBAbmV3UHJvbWlzZUNhcGFiaWxpdHkoQFByb21pc2UpOworICAgICAgICBAcmVhZGFibGVT
dHJlYW1XaXRoVXNlckFjdGl2YXRpb25JZk5lZWRlZChzdHJlYW0sICgpID0+ICB7CisgICAgICAg
ICAgICByZWFkUmVxdWVzdC5AcmVzb2x2ZS5AY2FsbChAdW5kZWZpbmVkLCB7dmFsdWU6IGNodW5r
LCBkb25lOiBmYWxzZX0pOworICAgICAgICB9KTsKKyAgICAgICAgcmV0dXJuIHJlYWRSZXF1ZXN0
LkBwcm9taXNlOwogICAgIH0KICAgICBjb25zdCBwZW5kaW5nUHJvbWlzZSA9IEByZWFkYWJsZVN0
cmVhbUFkZFJlYWRSZXF1ZXN0KHN0cmVhbSk7CiAgICAgQHJlYWRhYmxlU3RyZWFtRGVmYXVsdENv
bnRyb2xsZXJDYWxsUHVsbElmTmVlZGVkKGNvbnRyb2xsZXIpOwpAQCAtNDQyLDE5ICs0NjIsNDEg
QEAgZnVuY3Rpb24gcmVhZGFibGVTdHJlYW1DbG9zZShzdHJlYW0pCiAKICAgICBpZiAoQGlzUmVh
ZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyKHJlYWRlcikpIHsKICAgICAgICAgY29uc3QgcmVxdWVz
dHMgPSBAZ2V0QnlJZERpcmVjdFByaXZhdGUocmVhZGVyLCAicmVhZFJlcXVlc3RzIik7Ci0gICAg
ICAgIGZvciAobGV0IGluZGV4ID0gMCwgbGVuZ3RoID0gcmVxdWVzdHMubGVuZ3RoOyBpbmRleCA8
IGxlbmd0aDsgKytpbmRleCkKLSAgICAgICAgICAgIHJlcXVlc3RzW2luZGV4XS5AcmVzb2x2ZS5A
Y2FsbChAdW5kZWZpbmVkLCB7dmFsdWU6QHVuZGVmaW5lZCwgZG9uZTogdHJ1ZX0pOworICAgICAg
ICBmb3IgKGxldCBpbmRleCA9IDAsIGxlbmd0aCA9IHJlcXVlc3RzLmxlbmd0aDsgaW5kZXggPCBs
ZW5ndGg7ICsraW5kZXgpIHsKKyAgICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSByZXF1ZXN0c1tp
bmRleF07CisgICAgICAgICAgICBAcmVhZGFibGVTdHJlYW1XaXRoVXNlckFjdGl2YXRpb25JZk5l
ZWRlZChzdHJlYW0sICgpID0+ICB7CisgICAgICAgICAgICAgICAgcmVxdWVzdC5AcmVzb2x2ZS5A
Y2FsbChAdW5kZWZpbmVkLCB7dmFsdWU6QHVuZGVmaW5lZCwgZG9uZTogdHJ1ZX0pOworICAgICAg
ICAgICAgfSk7CisgICAgICAgIH0KICAgICAgICAgQHB1dEJ5SWREaXJlY3RQcml2YXRlKHJlYWRl
ciwgInJlYWRSZXF1ZXN0cyIsIFtdKTsKICAgICB9CiAKLSAgICBAZ2V0QnlJZERpcmVjdFByaXZh
dGUocmVhZGVyLCAiY2xvc2VkUHJvbWlzZUNhcGFiaWxpdHkiKS5AcmVzb2x2ZS5AY2FsbCgpOwor
ICAgIGNvbnN0IGNsb3NlZFByb21pc2VDYXBhYmlsaXR5ID0gQGdldEJ5SWREaXJlY3RQcml2YXRl
KHJlYWRlciwgImNsb3NlZFByb21pc2VDYXBhYmlsaXR5IikKKyAgICBAcmVhZGFibGVTdHJlYW1X
aXRoVXNlckFjdGl2YXRpb25JZk5lZWRlZChzdHJlYW0sICgpID0+ICB7CisgICAgICAgIGNsb3Nl
ZFByb21pc2VDYXBhYmlsaXR5LkByZXNvbHZlLkBjYWxsKCk7CisgICAgfSk7Cit9CisKK2Z1bmN0
aW9uIHJlYWRhYmxlU3RyZWFtV2l0aFVzZXJBY3RpdmF0aW9uSWZOZWVkZWQoc3RyZWFtLCBjYWxs
YmFjaykKK3sKKyAgICBjb25zdCBjb250cm9sbGVyID0gQGdldEJ5SWREaXJlY3RQcml2YXRlKHN0
cmVhbSwgInJlYWRhYmxlU3RyZWFtQ29udHJvbGxlciIpOworICAgIGlmICghY29udHJvbGxlcikK
KyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7CisKKyAgICBjb25zdCB1bmRlcmx5aW5nU291cmNl
ID0gQGdldEJ5SWREaXJlY3RQcml2YXRlKGNvbnRyb2xsZXIsICJ1bmRlcmx5aW5nU291cmNlIik7
CisgICAgaWYgKCF1bmRlcmx5aW5nU291cmNlIHx8ICF1bmRlcmx5aW5nU291cmNlLkB3aXRoVXNl
ckFjdGl2YXRpb25JZk5lZWRlZCkKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7CisKKyAgICBy
ZXR1cm4gdW5kZXJseWluZ1NvdXJjZS5Ad2l0aFVzZXJBY3RpdmF0aW9uSWZOZWVkZWQuQGNhbGwo
dW5kZXJseWluZ1NvdXJjZSwgY2FsbGJhY2spOwogfQogCiBmdW5jdGlvbiByZWFkYWJsZVN0cmVh
bUZ1bGZpbGxSZWFkUmVxdWVzdChzdHJlYW0sIGNodW5rLCBkb25lKQogewogICAgICJ1c2Ugc3Ry
aWN0IjsKLQotICAgIEBnZXRCeUlkRGlyZWN0UHJpdmF0ZShAZ2V0QnlJZERpcmVjdFByaXZhdGUo
c3RyZWFtLCAicmVhZGVyIiksICJyZWFkUmVxdWVzdHMiKS5Ac2hpZnQoKS5AcmVzb2x2ZS5AY2Fs
bChAdW5kZWZpbmVkLCB7dmFsdWU6IGNodW5rLCBkb25lOiBkb25lfSk7CisgICAgY29uc3QgcmVh
ZFJlcXVlc3QgPSBAZ2V0QnlJZERpcmVjdFByaXZhdGUoQGdldEJ5SWREaXJlY3RQcml2YXRlKHN0
cmVhbSwgInJlYWRlciIpLCAicmVhZFJlcXVlc3RzIikuQHNoaWZ0KCk7CisgICAgQHJlYWRhYmxl
U3RyZWFtV2l0aFVzZXJBY3RpdmF0aW9uSWZOZWVkZWQoc3RyZWFtLCAoKSA9PiB7CisgICAgICAg
IHJlYWRSZXF1ZXN0LkByZXNvbHZlLkBjYWxsKEB1bmRlZmluZWQsIHt2YWx1ZTogY2h1bmssIGRv
bmU6IGRvbmV9KTsKKyAgICB9KTsKIH0KIAogZnVuY3Rpb24gcmVhZGFibGVTdHJlYW1EZWZhdWx0
Q29udHJvbGxlckVucXVldWUoY29udHJvbGxlciwgY2h1bmspCkBAIC00OTIsMTIgKzUzNCwyMiBA
QCBmdW5jdGlvbiByZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXJSZWFkKHJlYWRlcikKICAgICBj
b25zdCBzdGF0ZSA9IEBnZXRCeUlkRGlyZWN0UHJpdmF0ZShzdHJlYW0sICJzdGF0ZSIpOwogCiAg
ICAgQHB1dEJ5SWREaXJlY3RQcml2YXRlKHN0cmVhbSwgImRpc3R1cmJlZCIsIHRydWUpOwotICAg
IGlmIChzdGF0ZSA9PT0gQHN0cmVhbUNsb3NlZCkKLSAgICAgICAgcmV0dXJuIEBQcm9taXNlLkBy
ZXNvbHZlKHt2YWx1ZTogQHVuZGVmaW5lZCwgZG9uZTogdHJ1ZX0pOwotICAgIGlmIChzdGF0ZSA9
PT0gQHN0cmVhbUVycm9yZWQpCi0gICAgICAgIHJldHVybiBAUHJvbWlzZS5AcmVqZWN0KEBnZXRC
eUlkRGlyZWN0UHJpdmF0ZShzdHJlYW0sICJzdG9yZWRFcnJvciIpKTsKLSAgICBAYXNzZXJ0KHN0
YXRlID09PSBAc3RyZWFtUmVhZGFibGUpOworICAgIGlmIChzdGF0ZSA9PT0gQHN0cmVhbUNsb3Nl
ZCkgeworICAgICAgICBjb25zdCByZWFkUmVxdWVzdCA9IEBuZXdQcm9taXNlQ2FwYWJpbGl0eShA
UHJvbWlzZSk7CisgICAgICAgIEByZWFkYWJsZVN0cmVhbVdpdGhVc2VyQWN0aXZhdGlvbklmTmVl
ZGVkKHN0cmVhbSwgKCkgPT4gIHsKKyAgICAgICAgICAgIHJlYWRSZXF1ZXN0LkByZXNvbHZlLkBj
YWxsKEB1bmRlZmluZWQsIHt2YWx1ZTogQHVuZGVmaW5lZCwgZG9uZTogdHJ1ZX0pOworICAgICAg
ICB9KTsKKyAgICAgICAgcmV0dXJuIHJlYWRSZXF1ZXN0LkBwcm9taXNlOworICAgIH0KKyAgICBp
ZiAoc3RhdGUgPT09IEBzdHJlYW1FcnJvcmVkKSB7CisgICAgICAgIGNvbnN0IHJlYWRSZXF1ZXN0
ID0gQG5ld1Byb21pc2VDYXBhYmlsaXR5KEBQcm9taXNlKTsKKyAgICAgICAgQHJlYWRhYmxlU3Ry
ZWFtV2l0aFVzZXJBY3RpdmF0aW9uSWZOZWVkZWQoc3RyZWFtLCAoKSA9PiAgeworICAgICAgICAg
ICAgcmVhZFJlcXVlc3QuQHJlamVjdC5AY2FsbChAdW5kZWZpbmVkLCBAZ2V0QnlJZERpcmVjdFBy
aXZhdGUoc3RyZWFtLCAic3RvcmVkRXJyb3IiKSk7CisgICAgICAgIH0pOworICAgICAgICByZXR1
cm4gcmVhZFJlcXVlc3QuQHByb21pc2U7CisgICAgfQogCisgICAgQGFzc2VydChzdGF0ZSA9PT0g
QHN0cmVhbVJlYWRhYmxlKTsKICAgICByZXR1cm4gQGdldEJ5SWREaXJlY3RQcml2YXRlKHN0cmVh
bSwgInJlYWRhYmxlU3RyZWFtQ29udHJvbGxlciIpLkBwdWxsKEBnZXRCeUlkRGlyZWN0UHJpdmF0
ZShzdHJlYW0sICJyZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIiKSk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNvdXJjZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNlLmgKaW5k
ZXggOTFlMGMyY2ZkOTlhMTM0MGEzMWYzOTRmNDljZWU0ZGMxOTVlMTliOC4uNzlmODMxNThjZDAz
ZTk4YTc4ODM5MmRjMDZiOGI5MmQ0NDJiYTBhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNlLmgKQEAgLTM0LDYgKzM0LDcg
QEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdGVtcGxhdGU8dHlwZW5hbWUgSURMVHlwZT4gY2xh
c3MgRE9NUHJvbWlzZURlZmVycmVkOworY2xhc3MgUmVhZGFibGVTdHJlYW1Tb3VyY2VDYWxsYmFj
azsKIAogY2xhc3MgUmVhZGFibGVTdHJlYW1Tb3VyY2UgOiBwdWJsaWMgUmVmQ291bnRlZDxSZWFk
YWJsZVN0cmVhbVNvdXJjZT4gewogcHVibGljOgpAQCAtNDMsNiArNDQsOCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBwdWxsKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKICAgICB2b2lkIGNhbmNl
bChKU0M6OkpTVmFsdWUpOwogCisgICAgdmlydHVhbCB2b2lkIHdpdGhVc2VyQWN0aXZhdGlvbklm
TmVlZGVkKFJlZjxSZWFkYWJsZVN0cmVhbVNvdXJjZUNhbGxiYWNrPiYmKSA9IDA7CisKICAgICBi
b29sIGlzUHVsbGluZygpIGNvbnN0IHsgcmV0dXJuICEhbV9wcm9taXNlOyB9CiAKIHByb3RlY3Rl
ZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0
cmVhbVNvdXJjZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVT
dHJlYW1Tb3VyY2UuaWRsCmluZGV4IGJlNTRlMzE0NDEzY2Q5NDZkMzIwYzQ3NDY2NTVhODUyNmRm
ZDcwMjAuLmRiZGJlODcyNGJjNTE1OTJjZTRlYTdhMTNjOTdkYThkZjQ3NTcxNWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNvdXJjZS5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291
cmNlLmlkbApAQCAtMzQsNiArMzQsOCBAQAogICAgIFtDdXN0b21dIFByb21pc2U8dm9pZD4gcHVs
bChSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyIGNvbnRyb2xsZXIpOwogICAgIHZvaWQg
Y2FuY2VsKGFueSByZWFzb24pOwogCisgICAgW1ByaXZhdGVJZGVudGlmaWVyXSB2b2lkIHdpdGhV
c2VyQWN0aXZhdGlvbklmTmVlZGVkKFJlYWRhYmxlU3RyZWFtU291cmNlQ2FsbGJhY2sgY2FsbGJh
Y2spOworCiAgICAgLy8gUGxhY2UgaG9sZGVyIHRvIGtlZXAgdGhlIGNvbnRyb2xsZXIgbGlua2Vk
IHRvIHRoZSBzb3VyY2UuCiAgICAgW0NhY2hlZEF0dHJpYnV0ZSwgQ3VzdG9tR2V0dGVyXSByZWFk
b25seSBhdHRyaWJ1dGUgYW55IGNvbnRyb2xsZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNlQ2FsbGJhY2suaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNvdXJjZUNhbGxiYWNr
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjgyNGVhMDQ1MTA5MjBmMmU1MTdjYmVkOGYwNjg3ZGUwOGU2MWI3Ygot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJs
ZVN0cmVhbVNvdXJjZUNhbGxiYWNrLmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgcmVxdWlyZWQgdG8gYmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQ0FOT04gSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIENBTk9OIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorICogQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLAorICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlICJBY3RpdmVET01DYWxsYmFjay5oIgorI2luY2x1ZGUgIkNh
bGxiYWNrUmVzdWx0LmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCit0ZW1wbGF0ZTx0eXBlbmFtZSBJRExUeXBlPiBjbGFzcyBET01Qcm9taXNl
RGVmZXJyZWQ7CisKK2NsYXNzIFJlYWRhYmxlU3RyZWFtU291cmNlQ2FsbGJhY2sgOiBwdWJsaWMg
UmVmQ291bnRlZDxSZWFkYWJsZVN0cmVhbVNvdXJjZUNhbGxiYWNrPiwgcHVibGljIEFjdGl2ZURP
TUNhbGxiYWNrIHsKK3B1YmxpYzoKKyAgICB1c2luZyBBY3RpdmVET01DYWxsYmFjazo6QWN0aXZl
RE9NQ2FsbGJhY2s7CisKKyAgICB2aXJ0dWFsIENhbGxiYWNrUmVzdWx0PHZvaWQ+IGhhbmRsZUV2
ZW50KCkgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNlQ2FsbGJhY2su
aWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNl
Q2FsbGJhY2suaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM3NDkzNjM3Yzg0OTNkZWExYjVjOWYyNDU1NjU4YTVl
NTJmZmQ4MjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVh
bXMvUmVhZGFibGVTdHJlYW1Tb3VyY2VDYWxsYmFjay5pZGwKQEAgLTAsMCArMSwyOCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgcmVxdWlyZWQgdG8gYmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQ0FOT04gSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIENB
Tk9OIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorICogQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworWworICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0LAorXSBjYWxsYmFjayBSZWFkYWJs
ZVN0cmVhbVNvdXJjZUNhbGxiYWNrID0gdm9pZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA4ODI4MGI5
MTQ4OTQxNmUyY2U2MmUxOWI1MTUyMDM1OWMwMTNkNjBmLi5hOWNiYTE4YzVhOGFkNDVhNzBlOTA5
MWI1ODdiNTBmNmJiZmViZmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMzI0Niw2ICszMjQ2LDcgQEAg
SlNSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmNwcAogSlNSZWFkYWJsZVN0cmVhbURl
ZmF1bHRSZWFkZXIuY3BwCiBKU1JlYWRhYmxlU3RyZWFtU2luay5jcHAKIEpTUmVhZGFibGVTdHJl
YW1Tb3VyY2UuY3BwCitKU1JlYWRhYmxlU3RyZWFtU291cmNlQ2FsbGJhY2suY3BwCiBKU1JlbW90
ZURPTVdpbmRvdy5jcHAKIEpTUmVtb3RlUGxheWJhY2suY3BwCiBKU1JlbW90ZVBsYXliYWNrQXZh
aWxhYmlsaXR5Q2FsbGJhY2suY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggM2Q2MjM0ZDc2NDc5NTJkM2U3Y2ViMGVhY2NlMjM4
ZTU1MjgwMmYzZC4uNjk1MDQ3YmQzNjM5NDM3NmExMjdhY2QzZDE2ZmUzMTMxMzZkYTg0ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtNzQ1Niw2ICs3NDU2LDggQEAKIAkJNDE0QUQ0MDAyMTQ5OEQzMTAwNTIxNjc2IC8qIFJUQ1J0
cERlY29kaW5nUGFyYW1ldGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENSdHBEZWNvZGluZ1BhcmFt
ZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE0QUQ0MDEyMTQ5OEQzMTAw
NTIxNjc2IC8qIFJUQ1J0cERlY29kaW5nUGFyYW1ldGVycy5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUlRDUnRwRGVjb2Rp
bmdQYXJhbWV0ZXJzLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE0QUQ0MDIy
MTQ5OEQzMjAwNTIxNjc2IC8qIFJUQ1J0cENvZGluZ1BhcmFtZXRlcnMuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJUQ1J0
cENvZGluZ1BhcmFtZXRlcnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTRC
N0Y5RjI0RDFCMDkxMDAzM0Q0NDIgLyogUmVhZGFibGVTdHJlYW1Tb3VyY2VDYWxsYmFjay5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVhZGFibGVTdHJlYW1Tb3VyY2VDYWxsYmFjay5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNEI3RkExMjREMUIxMjMwMDMzRDQ0MiAv
KiBSZWFkYWJsZVN0cmVhbVNvdXJjZUNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtU291cmNlQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDE0QjgyMDIxRDZERjBEOTAwNzdFQkUzIC8qIFN0cnVjdHVyZWRDbG9u
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdHJ1Y3R1cmVkQ2xv
bmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTRCODIwMzFENkRGMEQ5MDA3
N0VCRTMgLyogU3RydWN0dXJlZENsb25lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFN0cnVjdHVyZWRDbG9uZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTRE
RURFNTFGOUZFOTE1MDA0N0M0MEQgLyogRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODgyMSw2ICsxODgyMyw4IEBACiAJCQkJMkQ0M0VC
MkQyMzQ3MkJDMzAwMkExRUQ0IC8qIFJlYWRhYmxlU3RyZWFtU291cmNlLmNwcCAqLywKIAkJCQk0
MThDMzk1QjFDOEYwQTYxMDA1MUM4QTMgLyogUmVhZGFibGVTdHJlYW1Tb3VyY2UuaCAqLywKIAkJ
CQk0MThDMzk1QzFDOEYwQTYxMDA1MUM4QTMgLyogUmVhZGFibGVTdHJlYW1Tb3VyY2UuaWRsICov
LAorCQkJCTQxNEI3RkExMjREMUIxMjMwMDMzRDQ0MiAvKiBSZWFkYWJsZVN0cmVhbVNvdXJjZUNh
bGxiYWNrLmggKi8sCisJCQkJNDE0QjdGOUYyNEQxQjA5MTAwMzNENDQyIC8qIFJlYWRhYmxlU3Ry
ZWFtU291cmNlQ2FsbGJhY2suaWRsICovLAogCQkJCTk5MDhCMEYxMUJDQUNGOTEwMEVEMEY1NSAv
KiBTdHJlYW1JbnRlcm5hbHMuanMgKi8sCiAJCQkJNDFBMDIzRUQxQTM5REI3OTAwRjcyMkRGIC8q
IFdyaXRhYmxlU3RyZWFtLmlkbCAqLywKIAkJCQk5OTA4QjBFRjFCQ0FDRjkxMDBFRDBGNzUgLyog
V3JpdGFibGVTdHJlYW0uanMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9X
ZWJDb3JlQnVpbHRpbk5hbWVzLmgKaW5kZXggODAzMzU5NmVlNDZmODU5NGU5ZDEyY2I5YzUzODJi
MmIzNDU1MzBhYi4uYjQ5ZWM2NmYyZThhYTE1MGY1NGZhOTYyOTFhM2YyNjEwOGVlZmU4NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaApA
QCAtNDA1LDYgKzQwNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyh3ZWJraXRP
ZmZsaW5lQXVkaW9Db250ZXh0KSBcCiAgICAgbWFjcm8od2Via2l0T3NjaWxsYXRvck5vZGUpIFwK
ICAgICBtYWNybyh3aW5kb3cpIFwKKyAgICBtYWNybyh3aXRoVXNlckFjdGl2YXRpb25JZk5lZWRl
ZCkgXAogICAgIG1hY3JvKHdyaXRpbmcpIFwKICAgICBXRUJDT1JFX0FERElUSU9OQUxfUFJJVkFU
RV9JREVOVElGSUVSUyhtYWNybykgXAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjliZTUyNWZjZWRmMTRiYmVhNzhlOWNm
MDJiODEwODUwMDM0MTc3Mi4uNjU2ZTViOGEwYzFkMWI1Mjc4ODYxNzBhMjY5MDQyOGUxOTQxMjQy
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTA3LTMwICBZb3Vlbm4gRmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBQcm9wYWdhdGluZyBtZWRpYSBvbmx5IHVzZXIgZ2Vz
dHVyZSB0aHJvdWdoIEZldGNoIFJlYWRhYmxlU3RyZWFtCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQ3MjIKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvbWVkaWEvdXNlci1nZXN0dXJl
LXByZXNlcnZlZC1hY3Jvc3MtZmV0Y2gtcmVhZGFibGVzdHJlYW0tZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL21lZGlhL3VzZXItZ2VzdHVyZS1wcmVzZXJ2ZWQtYWNy
b3NzLWZldGNoLXJlYWRhYmxlc3RyZWFtLmh0bWw6IEFkZGVkLgorCiAyMDIwLTA3LTI5ICBLYXRl
IENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgogCiAgICAgICAgIE1pZ3JhdGUg
QXBwLUJvdW5kIERvbWFpbnMgY29kZSBmcm9tIFdlYktpdCBBZGRpdGlvbnMKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvdXNlci1nZXN0dXJlLXByZXNlcnZlZC1hY3Jv
c3MtZmV0Y2gtcmVhZGFibGVzdHJlYW0tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9tZWRpYS91c2VyLWdlc3R1cmUtcHJlc2VydmVkLWFjcm9zcy1mZXRjaC1yZWFkYWJsZXN0
cmVhbS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGU5NmZiYWJjZDk2MTc3MzY2NzIxN2Q3NDE1
YmQ4NTU4ODBiOWFkNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWVkaWEvdXNlci1nZXN0dXJlLXByZXNlcnZlZC1hY3Jvc3MtZmV0Y2gtcmVhZGFibGVzdHJlYW0t
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorCitQQVNTIEluc2lkZSBib2R5IHJlYWQgcHJv
bWlzZSBhc3luYyAKK1BBU1MgSW5zaWRlIGJvZHkgcmVhZCBwcm9taXNlIAorUEFTUyBJbnNpZGUg
cmVhZGVyLmNsb3NlZCByZWplY3Rpb24gaGFuZGxlciAKK1BBU1MgSW5zaWRlIHJlYWRlci5jbG9z
ZWQgZnVsZmlsbG1lbnQgaGFuZGxlciAKK1BBU1MgSW5zaWRlIHJlYWRlci5yZWFkIG9uY2Ugc3Ry
ZWFtIGlzIGRvbmUgCitQQVNTIEluc2lkZSByZWFkZXIucmVhZCBvbmNlIHN0cmVhbSBpcyBjbG9z
ZWQgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvdXNlci1nZXN0
dXJlLXByZXNlcnZlZC1hY3Jvc3MtZmV0Y2gtcmVhZGFibGVzdHJlYW0uaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWVkaWEvdXNlci1nZXN0dXJlLXByZXNlcnZlZC1hY3Jvc3MtZmV0Y2gt
cmVhZGFibGVzdHJlYW0uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NGRhOWUxODBiNGQxMWMzZjY2YmMyMjk0
YjIyZWRkMzk2MDZkNmVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9tZWRpYS91c2VyLWdlc3R1cmUtcHJlc2VydmVkLWFjcm9zcy1mZXRjaC1yZWFkYWJsZXN0cmVh
bS5odG1sCkBAIC0wLDAgKzEsMTA4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+
Cis8c2NyaXB0IHNyYz0nL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyc+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0nL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyc+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0nL21lZGlhLXJlc291cmNlcy9tZWRpYS1maWxlLmpzJz48L3NjcmlwdD4KKzxzY3Jp
cHQ+CitpZiAod2luZG93LmludGVybmFscykKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldE1heGlt
dW1JbnRlcnZhbEZvclVzZXJHZXN0dXJlRm9yd2FyZGluZ0ZvckZldGNoKDEuMCk7CisKK2FzeW5j
IGZ1bmN0aW9uIHB1bXBTdHJlYW0oc3RyZWFtUmVhZGVyKQoreworICAgIGNvbnN0IGNodW5rID0g
YXdhaXQgc3RyZWFtUmVhZGVyLnJlYWQoKTsKKyAgICBpZiAoIWNodW5rLmRvbmUpCisgICAgICAg
IHJldHVybiBwdW1wU3RyZWFtKHN0cmVhbVJlYWRlcik7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIHRl
c3RWaWRlb0NhblBsYXkoKQoreworICAgIGNvbnN0IHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgndmlkZW8nKTsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgaW50ZXJu
YWxzLnNldE1lZGlhRWxlbWVudFJlc3RyaWN0aW9ucyh2aWRlbywgJ1JlcXVpcmVVc2VyR2VzdHVy
ZUZvckF1ZGlvUmF0ZUNoYW5nZScpOworCisgICAgdmlkZW8uc3JjID0gIi9tZWRpYS1yZXNvdXJj
ZXMvY29udGVudC8iICsgZmluZE1lZGlhRmlsZSgidmlkZW8iLCAidGVzdCIpOworICAgIGRvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQodmlkZW8pOworICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHZp
ZGVvLnBsYXkoKS50aGVuKCgpID0+IHRydWUsICgpID0+IGZhbHNlKTsKKyAgICBkb2N1bWVudC5i
b2R5LnJlbW92ZUNoaWxkKHZpZGVvKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCithc3luYyBm
dW5jdGlvbiBkb1Rlc3QoY2FsbGJhY2spCit7CisgICAgbGV0IHJlc3VsdCA9IGF3YWl0IGNhbGxi
YWNrKCk7CisgICAgYXNzZXJ0X2ZhbHNlKHJlc3VsdCk7CisKKyAgICBpZiAoIXdpbmRvdy5pbnRl
cm5hbHMpCisgICAgICAgIHJldHVybjsKKworICAgIGxldCBwcm9taXNlOworICAgIGludGVybmFs
cy53aXRoVXNlckdlc3R1cmUoKCkgPT4geworICAgICAgICBwcm9taXNlID0gY2FsbGJhY2soKTsK
KyAgICB9KTsKKyAgICBhc3NlcnRfdHJ1ZShhd2FpdCBwcm9taXNlKTsKK30KKworcHJvbWlzZV90
ZXN0KGFzeW5jIHQgPT4geworICAgIHJldHVybiBkb1Rlc3QoYXN5bmMgKCkgPT4geworICAgICAg
ICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKCJ0ZXN0MSIpOworICAgICAgICBhd2FpdCBy
ZXNwb25zZS5ib2R5LmdldFJlYWRlcigpLnJlYWQoKTsKKyAgICAgICAgcmV0dXJuIHRlc3RWaWRl
b0NhblBsYXkoKTsKKyAgICB9KTsKK30sICJJbnNpZGUgYm9keSByZWFkIHByb21pc2UgYXN5bmMi
KTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIHJldHVybiBkb1Rlc3QoYXN5bmMg
KCkgPT4geworICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKCJ0ZXN0MiIpOwor
ICAgICAgICByZXR1cm4gcmVzcG9uc2UuYm9keS5nZXRSZWFkZXIoKS5yZWFkKCkudGhlbigoKSA9
PiB0ZXN0VmlkZW9DYW5QbGF5KCkpOworICAgIH0pOworfSwgIkluc2lkZSBib2R5IHJlYWQgcHJv
bWlzZSIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgcmV0dXJuIGRvVGVzdChh
c3luYyAoKSA9PiB7CisgICAgICAgIGNvbnN0IGNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9s
bGVyKCk7CisgICAgICAgIGNvbnN0IHNpZ25hbCA9IGNvbnRyb2xsZXIuc2lnbmFsOworCisgICAg
ICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goJy9uYXZpZ2F0aW9uL3Jlc291cmNlcy9z
bG93LXJlc291cmNlLnBsJywgeyBzaWduYWwgfSk7CisgICAgICAgIGNvbnN0IHJlYWRlciA9IHJl
c3BvbnNlLmJvZHkuZ2V0UmVhZGVyKCk7CisKKyAgICAgICAgY29uc3QgcmVzdWx0ID0gcmVhZGVy
LmNsb3NlZC50aGVuKCgpID0+IGFzc2VydF91bnJlYWNoZWQoKSwgKCkgPT4gdGVzdFZpZGVvQ2Fu
UGxheSgpKTsKKworICAgICAgICBjb250cm9sbGVyLmFib3J0KCk7CisgICAgICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgfSk7Cit9LCAiSW5zaWRlIHJlYWRlci5jbG9zZWQgcmVqZWN0aW9uIGhhbmRs
ZXIiKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIHJldHVybiBkb1Rlc3QoYXN5
bmMgKCkgPT4geworICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKCJ0ZXN0MyIp
OworICAgICAgICBjb25zdCByZWFkZXIgPSByZXNwb25zZS5ib2R5LmdldFJlYWRlcigpOworCisg
ICAgICAgIGNvbnN0IHJlc3VsdCA9IHJlYWRlci5jbG9zZWQudGhlbigoKSA9PiB0ZXN0VmlkZW9D
YW5QbGF5KCksICgpID0+IGFzc2VydF91bnJlYWNoZWQoKSk7CisKKyAgICAgICAgYXdhaXQgcHVt
cFN0cmVhbShyZWFkZXIpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0pOworfSwgIklu
c2lkZSByZWFkZXIuY2xvc2VkIGZ1bGZpbGxtZW50IGhhbmRsZXIiKTsKKworcHJvbWlzZV90ZXN0
KGFzeW5jIHQgPT4geworICAgIHJldHVybiBkb1Rlc3QoYXN5bmMgKCkgPT4geworICAgICAgICBj
b25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKCJ0ZXN0NCIpOworICAgICAgICBjb25zdCByZWFk
ZXIgPSByZXNwb25zZS5ib2R5LmdldFJlYWRlcigpOworICAgICAgICBhd2FpdCBwdW1wU3RyZWFt
KHJlYWRlcik7CisgICAgICAgIHJldHVybiByZWFkZXIucmVhZCgpLnRoZW4oKCkgPT4gdGVzdFZp
ZGVvQ2FuUGxheSgpLCAoKSA9PiBhc3NlcnRfdW5yZWFjaGVkKCkpOworICAgIH0pOworfSwgIklu
c2lkZSByZWFkZXIucmVhZCBvbmNlIHN0cmVhbSBpcyBkb25lIik7CisKK3Byb21pc2VfdGVzdChh
c3luYyB0ID0+IHsKKyAgICByZXR1cm4gZG9UZXN0KGFzeW5jICgpID0+IHsKKyAgICAgICAgY29u
c3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCgidGVzdDUiKTsKKyAgICAgICAgY29uc3QgcmVhZGVy
ID0gcmVzcG9uc2UuYm9keS5nZXRSZWFkZXIoKTsKKyAgICAgICAgYXdhaXQgcHVtcFN0cmVhbShy
ZWFkZXIpOworICAgICAgICBhd2FpdCByZWFkZXIuY2xvc2VkOworICAgICAgICByZXR1cm4gcmVh
ZGVyLnJlYWQoKS50aGVuKCgpID0+IHRlc3RWaWRlb0NhblBsYXkoKSwgKCkgPT4gYXNzZXJ0X3Vu
cmVhY2hlZCgpKTsKKyAgICB9KTsKK30sICJJbnNpZGUgcmVhZGVyLnJlYWQgb25jZSBzdHJlYW0g
aXMgY2xvc2VkIik7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="421066"
          type_id="1"
          status="+"
          setter="jiewen_tan"
    />
          </attachment>
      

    </bug>

</bugzilla>