<?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>124109</bug_id>
          
          <creation_ts>2013-11-09 20:01:31 -0800</creation_ts>
          <short_desc>Add Map Iterators</short_desc>
          <delta_ts>2013-11-09 20:18:25 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Oliver Hunt">oliver</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>rakuco</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>949081</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-11-09 20:01:31 -0800</bug_when>
    <thetext>Add Map Iterators</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949082</commentid>
    <comment_count>1</comment_count>
      <attachid>216507</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-11-09 20:07:30 -0800</bug_when>
    <thetext>Created attachment 216507
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949083</commentid>
    <comment_count>2</comment_count>
      <attachid>216507</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-11-09 20:13:05 -0800</bug_when>
    <thetext>Comment on attachment 216507
Patch

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

r=me

&gt; Source/JavaScriptCore/runtime/JSMapIterator.h:34
&gt; +enum MapIterationKind : uint32_t {

mind: blown</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949086</commentid>
    <comment_count>3</comment_count>
      <attachid>216507</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-11-09 20:15:10 -0800</bug_when>
    <thetext>Comment on attachment 216507
Patch

Attachment 216507 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/22638977</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949087</commentid>
    <comment_count>4</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-11-09 20:18:25 -0800</bug_when>
    <thetext>Committed r159008: &lt;http://trac.webkit.org/changeset/159008&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>216507</attachid>
            <date>2013-11-09 20:07:30 -0800</date>
            <delta_ts>2013-11-09 20:15:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124109-20131109200728.patch</filename>
            <type>text/plain</type>
            <size>64120</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU4OTU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
YjUxM2ZhMWIwZDMwYzhhMWJhYjQ1Y2E2ZTNmZTVlZDg5MTZmNThlLi5hYzI2NmFlMjlhNDE1NGJk
NDMzYjAxZDIzYTg4YzUwMDk3NjRhYmNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NiBAQAorMjAxMy0xMS0wOSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCBNYXAgSXRlcmF0b3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQxMDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGRlZCBuZXcgTWFwIGl0ZXJhdG9yIGltcGxlbWVudGF0aW9u
LiAgVGhpcyBpcyBhIG1vc3RseSBib2lsZXJwbGF0ZSBwYXRjaAorICAgICAgICBob3dldmVyIHRo
ZXJlJ3MgYSBhIGxpdHRsZSBiaXQgb2YgYWRkaXRpb25hbCBsb2dpYyBhZGRlZCB0byB0aGUgTWFw
RGF0YSBpdGVyYXRvcgorICAgICAgICB0byBkZWFsIHdpdGggdGhlIHBvc3NpYmlsaXR5IG9mIG1h
cCBtdXRhdGlvbiBiZXR3ZWVuIGNyZWF0aW9uIG9mIHRoZSBpdGVyYXRvcgorICAgICAgICBhbmQg
dXNlIG9mIGl0LiAgV2UnbGwgYmUgYWJsZSB0byBpbXByb3ZlIHRoZSBwZXJmb3JtYW5jZSBvZiB0
aGlzIHN1YnN0YW50aWFsbHkKKyAgICAgICAgYnkgdXNpbmcgaW50cmluc2ljcywgaG93ZXZlciBJ
J20gcG9uZGVyaW5nIGNvbWluZyB1cCB3aXRoIGEgYmV0dGVyIHdheSB0byBkZWZpbmUKKyAgICAg
ICAgdGhlc2UgdGh1bmtzIHdpdGhvdXQgcmVxdWlyaW5nIHNvIG11Y2ggZHVwbGljYXRlZCBsb2dp
Yy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxp
c3QuYW06CisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52
Y3hwcm9qOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUu
dmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNH
bG9iYWxPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0pTTWFwSXRlcmF0b3IuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKEpTQzo6SlNNYXBJdGVyYXRvcjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAg
ICAoSlNDOjpKU01hcEl0ZXJhdG9yOjp2aXNpdENoaWxkcmVuKToKKyAgICAgICAgKEpTQzo6SlNN
YXBJdGVyYXRvcjo6Y3JlYXRlUGFpcik6CisgICAgICAgICogcnVudGltZS9KU01hcEl0ZXJhdG9y
Lmg6IEFkZGVkLgorICAgICAgICAoSlNDOjpKU01hcEl0ZXJhdG9yOjpjcmVhdGVTdHJ1Y3R1cmUp
OgorICAgICAgICAoSlNDOjpKU01hcEl0ZXJhdG9yOjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpK
U01hcEl0ZXJhdG9yOjpuZXh0KToKKyAgICAgICAgKEpTQzo6SlNNYXBJdGVyYXRvcjo6SlNNYXBJ
dGVyYXRvcik6CisgICAgICAgICogcnVudGltZS9NYXBEYXRhLmg6CisgICAgICAgIChKU0M6Ok1h
cERhdGE6OmNvbnN0X2l0ZXJhdG9yOjplbnN1cmVTbG90KToKKyAgICAgICAgKiBydW50aW1lL01h
cEl0ZXJhdG9yQ29uc3RydWN0b3IuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6TWFwSXRlcmF0
b3JDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvTWFwSXRl
cmF0b3JDb25zdHJ1Y3Rvci5oOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6TWFwSXRlcmF0b3JDb25z
dHJ1Y3Rvcjo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6TWFwSXRlcmF0b3JDb25zdHJ1Y3Rvcjo6
Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6TWFwSXRlcmF0b3JDb25zdHJ1Y3Rvcjo6
TWFwSXRlcmF0b3JDb25zdHJ1Y3Rvcik6CisgICAgICAgICogcnVudGltZS9NYXBJdGVyYXRvclBy
b3RvdHlwZS5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpNYXBJdGVyYXRvclByb3RvdHlwZTo6
ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpNYXBJdGVyYXRvclByb3RvdHlwZUZ1bmNJ
dGVyYXRvcik6CisgICAgICAgIChKU0M6Ok1hcEl0ZXJhdG9yUHJvdG90eXBlRnVuY05leHQpOgor
ICAgICAgICAqIHJ1bnRpbWUvTWFwSXRlcmF0b3JQcm90b3R5cGUuaDogQWRkZWQuCisgICAgICAg
IChKU0M6Ok1hcEl0ZXJhdG9yUHJvdG90eXBlOjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpNYXBJ
dGVyYXRvclByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6TWFwSXRl
cmF0b3JQcm90b3R5cGU6Ok1hcEl0ZXJhdG9yUHJvdG90eXBlKToKKyAgICAgICAgKiBydW50aW1l
L01hcFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6Ok1hcFByb3RvdHlwZTo6ZmluaXNoQ3Jl
YXRpb24pOgorICAgICAgICAoSlNDOjptYXBQcm90b0Z1bmNWYWx1ZXMpOgorICAgICAgICAoSlND
OjptYXBQcm90b0Z1bmNFbnRyaWVzKToKKyAgICAgICAgKEpTQzo6bWFwUHJvdG9GdW5jS2V5cyk6
CisKIDIwMTMtMTEtMDggIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZW1vdmUgbW9yZSBhY2NpZGVudGFsbHkgYWRkZWQgZmlsZXMuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Q01ha2VMaXN0cy50eHQKaW5kZXggMGRiODQwMGRiNmI5MTc2YmE2NDZiZGFmM2VjMTAxOGI1M2U1
ZWMyMS4uNWEzMTJjMTU4MTY5YWNhYmIwNTk3ZjU2NTBiNDdlZjliOTFkOGZiZCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMzM3LDYgKzMzNyw3IEBAIHNldChKYXZhU2Ny
aXB0Q29yZV9TT1VSQ0VTCiAgICAgcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAK
ICAgICBydW50aW1lL0pTTG9jay5jcHAKICAgICBydW50aW1lL0pTTWFwLmNwcAorICAgIHJ1bnRp
bWUvSlNNYXBJdGVyYXRvci5jcHAKICAgICBydW50aW1lL0pTTmFtZVNjb3BlLmNwcAogICAgIHJ1
bnRpbWUvSlNOb3RBbk9iamVjdC5jcHAKICAgICBydW50aW1lL0pTT05PYmplY3QuY3BwCkBAIC0z
NjgsNiArMzY5LDggQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAgICBydW50aW1lL0xv
b2t1cC5jcHAKICAgICBydW50aW1lL01hcENvbnN0cnVjdG9yLmNwcAogICAgIHJ1bnRpbWUvTWFw
RGF0YS5jcHAKKyAgICBydW50aW1lL01hcEl0ZXJhdG9yQ29uc3RydWN0b3IuY3BwCisgICAgcnVu
dGltZS9NYXBJdGVyYXRvclByb3RvdHlwZS5jcHAKICAgICBydW50aW1lL01hcFByb3RvdHlwZS5j
cHAKICAgICBydW50aW1lL01hdGhPYmplY3QuY3BwCiAgICAgcnVudGltZS9NZW1vcnlTdGF0aXN0
aWNzLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBk
NjE2ODBlMWY0OTE2MWY2ODE3ZTU2N2QzNjY3ZGIxMjQ0MDBjMWJmLi40YzMwNzIzNTljYzBlMzNh
N2ZkZTdhY2Q0YmU2ZWVhMTlkNjMzOTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbQpAQCAtOTI4LDYgKzkyOCw4IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJjZXMg
Kz0gXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5oIFwKIAlTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01hcC5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTTWFwLmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTWFw
SXRlcmF0b3IuY3BwIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01hcEl0ZXJh
dG9yLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuY3Bw
IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmggXAogCVNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcCBcCkBAIC05OTYsNiArOTk4
LDEwIEBAIGphdmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL01hcENvbnN0cnVjdG9yLmhcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTWFwRGF0YS5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcERhdGEu
aCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFwSXRlcmF0b3JDb25zdHJ1Y3Rv
ci5jcHAgXAorICAgIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcEl0ZXJhdG9yQ29u
c3RydWN0b3IuaCBcCisgICAgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFwSXRlcmF0
b3JQcm90b3R5cGUuY3BwIFwKKyAgICBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBJ
dGVyYXRvclByb3RvdHlwZS5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBQ
cm90b3R5cGUuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBQcm90b3R5
cGUuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0Y2hSZXN1bHQuaCBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9K
YXZhU2NyaXB0Q29yZS52Y3hwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagppbmRleCBjZWI5ZjBjNTY1OGNmYjRi
NjcyZTdkNzRkOTY0MDA3NjYwNGViZWY3Li41OWUwMWUwZTYwZWE3N2I1MzY4Yjg3NmIwNWIzYTVh
NmUyY2I5ZWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oKQEAgLTU3
NSw2ICs1NzUsNyBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxKU0dsb2Jh
bE9iamVjdEZ1bmN0aW9ucy5jcHAiIC8+DQogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVu
dGltZVxKU0xvY2suY3BwIiAvPg0KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVc
SlNNYXAuY3BwIiAvPg0KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSlNNYXBJ
dGVyYXRvci5jcHAiIC8+DQogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxKU05h
bWVTY29wZS5jcHAiIC8+DQogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxKU05v
dEFuT2JqZWN0LmNwcCIgLz4NCiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEpT
T05PYmplY3QuY3BwIiAvPg0KQEAgLTYwNSw2ICs2MDYsOCBAQAogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5ccnVudGltZVxMb29rdXAuY3BwIiAvPg0KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXHJ1bnRpbWVcTWFwQ29uc3RydWN0b3IuY3BwIiAvPg0KICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXHJ1bnRpbWVcTWFwRGF0YS5jcHAiIC8+DQorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5ccnVudGltZVxNYXBJdGVyYXRvckNvbnN0cnVjdG9yLmNwcCIgLz4NCisgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxydW50aW1lXE1hcEl0ZXJhdG9yUHJvdG90eXBlLmNwcCIgLz4NCiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXE1hcFByb3RvdHlwZS5jcHAiIC8+DQogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxNYXRoT2JqZWN0LmNwcCIgLz4NCiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXE5hbWVDb25zdHJ1Y3Rvci5jcHAiIC8+DQpA
QCAtMTE1OCw2ICsxMTYxLDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVc
SlNJbnQ4QXJyYXkuaCIgLz4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEpT
TG9jay5oIiAvPg0KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSlNNYXAuaCIg
Lz4NCisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEpTTWFwSXRlcmF0b3IuaCIg
Lz4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEpTTmFtZVNjb3BlLmgiIC8+
DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxKU05vdEFuT2JqZWN0LmgiIC8+
DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxKU09OT2JqZWN0LmgiIC8+DQpA
QCAtMTE5NSw2ICsxMTk5LDggQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVc
TG9va3VwLmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxNYXBDb25z
dHJ1Y3Rvci5oIiAvPg0KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcTWFwRGF0
YS5oIiAvPg0KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcTWFwSXRlcmF0b3JD
b25zdHJ1Y3Rvci5oIiAvPg0KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcTWFw
SXRlcmF0b3JQcm90b3R5cGUuaCIgLz4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50
aW1lXE1hcFByb3RvdHlwZS5oIiAvPg0KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRp
bWVcTWF0Y2hSZXN1bHQuaCIgLz4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1l
XE1hdGhPYmplY3QuaCIgLz4NCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52
Y3hwcm9qLmZpbHRlcnMKaW5kZXggYTk0MDdmNDAzNWQ1Y2VlZDQ2YmNkMWYwZGQzODcyMWE4Mjg2
NDRmNi4uYWE1Y2FhNjY1MTU0MzUwOWFjYThjOTU2ZTI1YzE3NDczZmUwMWFmOSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlw
dENvcmUudmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycwpAQCAtMTE3OSw2
ICsxMTc5LDEyIEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEFyZ3VtZW50
c0l0ZXJhdG9yUHJvdG90eXBlLmNwcCI+DQogICAgICAgPEZpbHRlcj5ydW50aW1lPC9GaWx0ZXI+
DQogICAgIDwvQ2xDb21waWxlPg0KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVc
TWFwSXRlcmF0b3JDb25zdHJ1Y3Rvci5jcHAiPg0KKyAgICAgIDxGaWx0ZXI+cnVudGltZTwvRmls
dGVyPg0KKyAgICA8L0NsQ29tcGlsZT4NCisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50
aW1lXE1hcEl0ZXJhdG9yUHJvdG90eXBlLmNwcCI+DQorICAgICAgPEZpbHRlcj5ydW50aW1lPC9G
aWx0ZXI+DQorICAgIDwvQ2xDb21waWxlPg0KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGpp
dFxBc3NlbWJseUhlbHBlcnMuY3BwIj4NCiAgICAgICA8RmlsdGVyPmppdDwvRmlsdGVyPg0KICAg
ICA8L0NsQ29tcGlsZT4NCkBAIC0xMTg4LDYgKzExOTQsOSBAQAogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5ccnVudGltZVxKU0FyZ3VtZW50c0l0ZXJhdG9yLmNwcCI+DQogICAgICAgPEZpbHRl
cj5ydW50aW1lPC9GaWx0ZXI+DQogICAgIDwvQ2xDb21waWxlPg0KKyAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXHJ1bnRpbWVcSlNNYXBJdGVyYXRvci5jcHAiPg0KKyAgICAgIDxGaWx0ZXI+cnVu
dGltZTwvRmlsdGVyPg0KKyAgICA8L0NsQ29tcGlsZT4NCiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxqaXRcUmVwYXRjaC5jcHAiPg0KICAgICAgIDxGaWx0ZXI+aml0PC9GaWx0ZXI+DQogICAg
IDwvQ2xDb21waWxlPg0KQEAgLTI5OTcsNiArMzAwNiwxMiBAQAogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5ccnVudGltZVxBcmd1bWVudHNJdGVyYXRvckNvbnN0cnVjdG9yLmgiPg0KICAgICAg
IDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPg0KICAgICA8L0NsSW5jbHVkZT4NCisgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXE1hcEl0ZXJhdG9yUHJvdG90eXBlLmgiPg0KKyAgICAg
IDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPg0KKyAgICA8L0NsSW5jbHVkZT4NCisgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXE1hcEl0ZXJhdG9yQ29uc3RydWN0b3IuaCI+DQorICAg
ICAgPEZpbHRlcj5ydW50aW1lPC9GaWx0ZXI+DQorICAgIDwvQ2xJbmNsdWRlPg0KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGppdFxBc3NlbWJseUhlbHBlcnMuaCI+DQogICAgICAgPEZpbHRl
cj5qaXQ8L0ZpbHRlcj4NCiAgICAgPC9DbEluY2x1ZGU+DQpAQCAtMzAyMSw2ICszMDM2LDkgQEAK
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSlNBcmd1bWVudHNJdGVyYXRvci5o
Ij4NCiAgICAgICA8RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4NCiAgICAgPC9DbEluY2x1ZGU+DQor
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxKU01hcEl0ZXJhdG9yLmgiPg0KKyAg
ICAgIDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPg0KKyAgICA8L0NsSW5jbHVkZT4NCiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxqaXRcUmVwYXRjaC5oIj4NCiAgICAgICA8RmlsdGVyPmppdDwv
RmlsdGVyPg0KICAgICA8L0NsSW5jbHVkZT4NCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDZiYjk2MjhlNzEzNmY5M2ZmN2M0N2U5Yzg3NmY1MzU4ZWVlMzQxZTguLjhhZDdkNzQ4Mzk4
YTAzYjg5ZDBmMWFlMWU1ZTYzOGIwYjYyNDIzZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC05MzIsNiArOTMyLDEyIEBACiAJCUE3NDgyQjk0MTE2NzExNDcwMDNCMDcxMiAvKiBK
U1dlYWtPYmplY3RNYXBSZWZQcml2YXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE3NDgyQjdBMTE2NkNERUEwMDNCMDcxMiAvKiBKU1dlYWtPYmpl
Y3RNYXBSZWZQcml2YXRlLmNwcCAqLzsgfTsKIAkJQTc0ODJFOTMxMTZBN0NBRDAwM0IwNzEyIC8q
IEpTV2Vha09iamVjdE1hcFJlZkludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBNzQ4MkUzNzExNkE2OTdCMDAzQjA3MTIgLyogSlNXZWFrT2Jq
ZWN0TWFwUmVmSW50ZXJuYWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlBNzRERTFEMDEyMEI4NzU2MDBENDBENUIgLyogQVJNdjdBc3NlbWJsZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc0REUx
Q0IxMjBCODZENjAwRDQwRDVCIC8qIEFSTXY3QXNzZW1ibGVyLmNwcCAqLzsgfTsKKwkJQTc0REVG
OTExODJEOTkxNDAwNTIyQzIyIC8qIE1hcEl0ZXJhdG9yQ29uc3RydWN0b3IuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc0REVGOEIxODJEOTkxNDAw
NTIyQzIyIC8qIE1hcEl0ZXJhdG9yQ29uc3RydWN0b3IuY3BwICovOyB9OworCQlBNzRERUY5MjE4
MkQ5OTE0MDA1MjJDMjIgLyogTWFwSXRlcmF0b3JDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc0REVGOEMxODJEOTkxNDAwNTIyQzIy
IC8qIE1hcEl0ZXJhdG9yQ29uc3RydWN0b3IuaCAqLzsgfTsKKwkJQTc0REVGOTMxODJEOTkxNDAw
NTIyQzIyIC8qIE1hcEl0ZXJhdG9yUHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NERFRjhEMTgyRDk5MTQwMDUyMkMyMiAvKiBNYXBJ
dGVyYXRvclByb3RvdHlwZS5jcHAgKi87IH07CisJCUE3NERFRjk0MTgyRDk5MTQwMDUyMkMyMiAv
KiBNYXBJdGVyYXRvclByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTc0REVGOEUxODJEOTkxNDAwNTIyQzIyIC8qIE1hcEl0ZXJhdG9yUHJv
dG90eXBlLmggKi87IH07CisJCUE3NERFRjk1MTgyRDk5MTQwMDUyMkMyMiAvKiBKU01hcEl0ZXJh
dG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3
NERFRjhGMTgyRDk5MTQwMDUyMkMyMiAvKiBKU01hcEl0ZXJhdG9yLmNwcCAqLzsgfTsKKwkJQTc0
REVGOTYxODJEOTkxNDAwNTIyQzIyIC8qIEpTTWFwSXRlcmF0b3IuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NERFRjkwMTgyRDk5MTQwMDUyMkMyMiAv
KiBKU01hcEl0ZXJhdG9yLmggKi87IH07CiAJCUE3NTcwNkRFMTE4QTJCQ0YwMDU3Rjg4RiAvKiBK
SVRBcml0aG1ldGljMzJfNjQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTc1NzA2REQxMThBMkJDRjAwNTdGODhGIC8qIEpJVEFyaXRobWV0aWMzMl82
NC5jcHAgKi87IH07CiAJCUE3NjE0MENEMTgyOTgyQ0IwMDc1MDYyNCAvKiBBcmd1bWVudHNJdGVy
YXRvckNvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE3NjE0MEM3MTgyOTgyQ0IwMDc1MDYyNCAvKiBBcmd1bWVudHNJdGVyYXRvckNv
bnN0cnVjdG9yLmNwcCAqLzsgfTsKIAkJQTc2MTQwQ0UxODI5ODJDQjAwNzUwNjI0IC8qIEFyZ3Vt
ZW50c0l0ZXJhdG9yQ29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE3NjE0MEM4MTgyOTgyQ0IwMDc1MDYyNCAvKiBBcmd1bWVudHNJdGVy
YXRvckNvbnN0cnVjdG9yLmggKi87IH07CkBAIC0yMjIyLDYgKzIyMjgsMTIgQEAKIAkJQTc0ODJC
N0ExMTY2Q0RFQTAwM0IwNzEyIC8qIEpTV2Vha09iamVjdE1hcFJlZlByaXZhdGUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWFrT2JqZWN0TWFwUmVmUHJpdmF0
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3NDgyRTM3MTE2QTY5N0IwMDNC
MDcxMiAvKiBKU1dlYWtPYmplY3RNYXBSZWZJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU1dlYWtPYmplY3RNYXBSZWZJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBNzRERTFDQjEyMEI4NkQ2MDBENDBENUIgLyogQVJNdjdBc3NlbWJs
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQVJNdjdBc3NlbWJs
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNzRERUY4QjE4MkQ5OTE0MDA1
MjJDMjIgLyogTWFwSXRlcmF0b3JDb25zdHJ1Y3Rvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBNYXBJdGVyYXRvckNvbnN0cnVjdG9yLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQTc0REVGOEMxODJEOTkxNDAwNTIyQzIyIC8qIE1hcEl0ZXJhdG9y
Q29uc3RydWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWFwSXRlcmF0
b3JDb25zdHJ1Y3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNzRERUY4RDE4
MkQ5OTE0MDA1MjJDMjIgLyogTWFwSXRlcmF0b3JQcm90b3R5cGUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWFwSXRlcmF0b3JQcm90b3R5cGUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlBNzRERUY4RTE4MkQ5OTE0MDA1MjJDMjIgLyogTWFwSXRl
cmF0b3JQcm90b3R5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWFwSXRl
cmF0b3JQcm90b3R5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTc0REVGOEYx
ODJEOTkxNDAwNTIyQzIyIC8qIEpTTWFwSXRlcmF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNNYXBJdGVyYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUE3NERFRjkwMTgyRDk5MTQwMDUyMkMyMiAvKiBKU01hcEl0ZXJhdG9yLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWFwSXRlcmF0b3IuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc1NzA2REQxMThBMkJDRjAwNTdGODhGIC8qIEpJVEFyaXRo
bWV0aWMzMl82NC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKSVRB
cml0aG1ldGljMzJfNjQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzYxNDBD
NzE4Mjk4MkNCMDA3NTA2MjQgLyogQXJndW1lbnRzSXRlcmF0b3JDb25zdHJ1Y3Rvci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBcmd1bWVudHNJdGVyYXRvckNvbnN0
cnVjdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc2MTQwQzgxODI5ODJD
QjAwNzUwNjI0IC8qIEFyZ3VtZW50c0l0ZXJhdG9yQ29uc3RydWN0b3IuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQXJndW1lbnRzSXRlcmF0b3JDb25zdHJ1Y3Rvci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzY0NCw2ICszNjU2LDEyIEBACiAJCQkJQTdDQTNB
RTAxN0RBNDFBRTAwNjUzOEFGIC8qIFdlYWtNYXBQcm90b3R5cGUuaCAqLywKIAkJCQkxNDIwQkU3
QTEwQUE2RERCMDBGNDU1RDIgLyogV2Vha1JhbmRvbS5oICovLAogCQkJCUE3RENCNzc5MTJFM0Q5
MDUwMDkxMTk0MCAvKiBXcml0ZUJhcnJpZXIuaCAqLywKKwkJCQlBNzRERUY4QjE4MkQ5OTE0MDA1
MjJDMjIgLyogTWFwSXRlcmF0b3JDb25zdHJ1Y3Rvci5jcHAgKi8sCisJCQkJQTc0REVGOEMxODJE
OTkxNDAwNTIyQzIyIC8qIE1hcEl0ZXJhdG9yQ29uc3RydWN0b3IuaCAqLywKKwkJCQlBNzRERUY4
RDE4MkQ5OTE0MDA1MjJDMjIgLyogTWFwSXRlcmF0b3JQcm90b3R5cGUuY3BwICovLAorCQkJCUE3
NERFRjhFMTgyRDk5MTQwMDUyMkMyMiAvKiBNYXBJdGVyYXRvclByb3RvdHlwZS5oICovLAorCQkJ
CUE3NERFRjhGMTgyRDk5MTQwMDUyMkMyMiAvKiBKU01hcEl0ZXJhdG9yLmNwcCAqLywKKwkJCQlB
NzRERUY5MDE4MkQ5OTE0MDA1MjJDMjIgLyogSlNNYXBJdGVyYXRvci5oICovLAogCQkJKTsKIAkJ
CXBhdGggPSBydW50aW1lOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTQ1MjAsNiAr
NDUzOCw3IEBACiAJCQkJN0MxODRFMjMxN0JFRTI0MDAwN0NCNjNBIC8qIEpTUHJvbWlzZUNvbnN0
cnVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzE4NEUxRjE3QkVFMjJFMDA3Q0I2M0EgLyog
SlNQcm9taXNlUHJvdG90eXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzNCQTI5NTE3QzAzOTU2
MDA3MkREQzkgLyogSlNQcm9taXNlUmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUE3NERF
Rjk2MTgyRDk5MTQwMDUyMkMyMiAvKiBKU01hcEl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk3QzNCQTI5NzE3QzAzOTU2MDA3MkREQzkgLyogSlNQcm9taXNlUmVzb2x2ZXJDb25zdHJ1Y3Rv
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0MzQkEyOTkxN0MwMzk1NjAwNzJEREM5IC8qIEpTUHJv
bWlzZVJlc29sdmVyUHJvdG90eXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NjI1NTNEMjE2MTM2
RTFBMDA5RjE3RDAgLyogSlNQcm94eS5oIGluIEhlYWRlcnMgKi8sCkBAIC00NTU5LDYgKzQ1Nzgs
NyBAQAogCQkJCTg2RTNDNjE5MTY3QkFCRUUwMDZENzYwQSAvKiBKU1dyYXBwZXJNYXAuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDMThDNDJFMEUxNkY1Q0QwMEIzNDQ2MCAvKiBKU1dyYXBwZXJPYmpl
Y3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRkQ4QzkzMEVFQjJFRTcwMDI4Mzg0OCAvKiBKdW1w
VGFibGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUE3NERFRjk0MTgyRDk5MTQwMDUyMkMyMiAvKiBN
YXBJdGVyYXRvclByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTcyRkZENjQxMzk5ODVB
ODAwRTUzNjVBIC8qIEtleXdvcmRMb29rdXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTk2OUEwNzJB
MEVEMUNFNjkwMEYxRjY4MSAvKiBMYWJlbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTYwMDk3QTYw
RUJBQkI1ODAwN0E3Mjk3IC8qIExhYmVsU2NvcGUuaCBpbiBIZWFkZXJzICovLApAQCAtNDc4Miw2
ICs0ODAyLDcgQEAKIAkJCQkxNEU4NEZBMTE0RUUxQUNDMDBENkQ1RDQgLyogV2Vha1NldC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMTQxNTAxMzMxNTRCQjEzRjAwNUQ4Qzk4IC8qIFdlYWtTZXRJbmxp
bmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQ3QTBFMTZGNUNEMDBCMzQ0NjAgLyogV2Vi
S2l0QXZhaWxhYmlsaXR5LmggaW4gSGVhZGVycyAqLywKKwkJCQlBNzRERUY5MjE4MkQ5OTE0MDA1
MjJDMjIgLyogTWFwSXRlcmF0b3JDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdE
Q0I5NzMxMkU1MTkzRjAwOTExOTQwIC8qIFdyaXRlQmFycmllci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEZDODE1MEExNDA0M0JGNTAwQ0ZBNjAzIC8qIFdyaXRlQmFycmllclN1cHBvcnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTk2ODhDQjE2MEVEMTJCNEUwMDFENjQ5RiAvKiBYODZBc3NlbWJsZXIu
aCBpbiBIZWFkZXJzICovLApAQCAtNTI5MCw2ICs1MzExLDcgQEAKIAkJCQkwRkQ4MUFEMjE1NEZC
NEVFMDA5ODNFNzIgLyogREZHRG9taW5hdG9ycy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkQz
QzgyNjE0MTE1RDQwMDBGRDgxQ0IgLyogREZHRHJpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTBGRjBGMTlFMTZCNzJBMEIwMDVERjk1QiAvKiBERkdFZGdlLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCUE3NERFRjkzMTgyRDk5MTQwMDUyMkMyMiAvKiBNYXBJdGVyYXRvclByb3RvdHlwZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwRkJDMEFFNzE0OTZDN0M0MDBENEZCREQgLyogREZHRXhpdFBy
b2ZpbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc4QTk3NzQxNzk3MzhCODAwOURGNzQ0IC8q
IERGR0ZhaWxlZEZpbmFsaXplci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzhBOTc3NjE3OTcz
OEI4MDA5REY3NDQgLyogREZHRmluYWxpemVyLmNwcCBpbiBTb3VyY2VzICovLApAQCAtNTM3OCw2
ICs1NDAwLDcgQEAKIAkJCQkwRkVBMEEwRDE3MDUxM0RCMDBCQjcyMkMgLyogRlRMSklUQ29kZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzhBOTc4MDE3OTczOEQ1MDA5REY3NDQgLyogRlRMSklU
RmluYWxpemVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGOEYyQjk1MTcyRTA0QTAwMDdEQkRB
NSAvKiBGVExMaW5rLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUE3NERFRjk1MTgyRDk5MTQwMDUy
MkMyMiAvKiBKU01hcEl0ZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQ0VGQURGMTgw
NzM4QzAwMDQ3MkNFNCAvKiBGVExMb2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkVB
MEEwRjE3MDUxM0RCMDBCQjcyMkMgLyogRlRMTG93ZXJERkdUb0xMVk0uY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMEZEOEEzMUIxN0Q1MUYyMjAwQ0EyQzQwIC8qIEZUTE9TUkVudHJ5LmNwcCBpbiBT
b3VyY2VzICovLApAQCAtNTYxMiw2ICs1NjM1LDcgQEAKIAkJCQlDMkYwRjJEMTE2QkFFRUU5MDAx
ODdDMTkgLyogU3RydWN0dXJlUmFyZURhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY3NjZE
MzgxNUFFNEExQzAwOEYzNjNFIC8qIFN0cnVjdHVyZVN0dWJDbGVhcmluZ1dhdGNocG9pbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQkNDRjBEMEMwRUYwQjhBNTAwNDEzQzhGIC8qIFN0cnVjdHVy
ZVN0dWJJbmZvLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUE3NERFRjkxMTgyRDk5MTQwMDUyMkMy
MiAvKiBNYXBJdGVyYXRvckNvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUMyREY0
NDJGMTcwN0FDMDEwMEE1Q0E5NiAvKiBTdXBlclJlZ2lvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwRjkxOUQyODE1ODU2NzczMDA0QTRFN0QgLyogU3ltYm9sVGFibGUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMEZDMzE0MTMxODE0NTU5MTAwMDMzMjMyIC8qIFRlbXBSZWdpc3RlclNldC5jcHAg
aW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbW1vbklkZW50aWZpZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21t
b25JZGVudGlmaWVycy5oCmluZGV4IGE5MjliOTQ3YmNjNjBhNjQ5ZDAzMGRhZTQzZjAzZjk0ODlm
ODU3YTguLmMzYzVmZWVlODhlNDA2OWEwYjMxMTVhMmFjMzEwOTBiOGE2MTk2YWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaApAQCAt
NDAsNiArNDAsNyBAQAogICAgIG1hY3JvKEluZmluaXR5KSBcCiAgICAgbWFjcm8oSlNPTikgXAog
ICAgIG1hY3JvKE1hcClcCisgICAgbWFjcm8oTWFwSXRlcmF0b3IpXAogICAgIG1hY3JvKE1hdGgp
IFwKICAgICBtYWNybyhOYU4pIFwKICAgICBtYWNybyhOdW1iZXIpIFwKQEAgLTg4LDYgKzg5LDcg
QEAKICAgICBtYWNybyhkaXNwbGF5TmFtZSkgXAogICAgIG1hY3JvKGRvY3VtZW50KSBcCiAgICAg
bWFjcm8oZG9uZSkgXAorICAgIG1hY3JvKGVudHJpZXMpIFwKICAgICBtYWNybyhlbnVtZXJhYmxl
KSBcCiAgICAgbWFjcm8oZXZhbCkgXAogICAgIG1hY3JvKGV4ZWMpIFwKQEAgLTExMSw2ICsxMTMs
NyBAQAogICAgIG1hY3JvKGlzUHJvdG90eXBlT2YpIFwKICAgICBtYWNybyhpc1dhdGNocG9pbnQp
IFwKICAgICBtYWNybyhqb2luKSBcCisgICAgbWFjcm8oa2V5cykgXAogICAgIG1hY3JvKGxhc3RJ
bmRleCkgXAogICAgIG1hY3JvKGxlbmd0aCkgXAogICAgIG1hY3JvKG1lc3NhZ2UpIFwKQEAgLTE0
Nyw2ICsxNTAsNyBAQAogICAgIG1hY3JvKHRvUHJlY2lzaW9uKSBcCiAgICAgbWFjcm8odG9TdHJp
bmcpIFwKICAgICBtYWNybyh2YWx1ZSkgXAorICAgIG1hY3JvKHZhbHVlcykgXAogICAgIG1hY3Jv
KHZhbHVlT2YpIFwKICAgICBtYWNybyh3aW5kb3cpIFwKICAgICBtYWNybyh3cml0YWJsZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAppbmRl
eCBlMjI4YjNhYzQxZTFlZTVkNzIzY2ZkN2FhZTA0YWI2ODQ4Njg2NzY2Li42MmQ5MDNjZjcxZWNj
ZjVhNmEwODg3ZjA4YTIwNjIxYjJlZmVmZDI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCkBAIC03Miw2ICs3Miw3IEBACiAjaW5jbHVk
ZSAiSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuaCIKICNpbmNsdWRlICJKU0xvY2suaCIKICNpbmNs
dWRlICJKU01hcC5oIgorI2luY2x1ZGUgIkpTTWFwSXRlcmF0b3IuaCIKICNpbmNsdWRlICJKU05h
bWVTY29wZS5oIgogI2luY2x1ZGUgIkpTT05PYmplY3QuaCIKICNpbmNsdWRlICJKU1NldC5oIgpA
QCAtODMsNiArODQsOCBAQAogI2luY2x1ZGUgIkxlZ2FjeVByb2ZpbGVyLmgiCiAjaW5jbHVkZSAi
TG9va3VwLmgiCiAjaW5jbHVkZSAiTWFwQ29uc3RydWN0b3IuaCIKKyNpbmNsdWRlICJNYXBJdGVy
YXRvckNvbnN0cnVjdG9yLmgiCisjaW5jbHVkZSAiTWFwSXRlcmF0b3JQcm90b3R5cGUuaCIKICNp
bmNsdWRlICJNYXBQcm90b3R5cGUuaCIKICNpbmNsdWRlICJNYXRoT2JqZWN0LmgiCiAjaW5jbHVk
ZSAiTmFtZUNvbnN0cnVjdG9yLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNHbG9iYWxPYmplY3QuaAppbmRleCBkNTlhNWI1NjM1OGQzYTVmN2Y5NzhmZDRiNWI1YWE4N2Rk
YzE1YWE0Li4xMGZjYWEyZmI4NjcxODNmMTJlMWU4MjkxZWE4NWU3Yjc4ZDNlYTkwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKQEAgLTcxLDYg
KzcxLDggQEAgY2xhc3MgU291cmNlQ29kZTsKIHN0cnVjdCBBY3RpdmF0aW9uU3RhY2tOb2RlOwog
c3RydWN0IEhhc2hUYWJsZTsKIAorI2RlZmluZSBERUZJTkVfU1RBTkRBUkRfQlVJTFRJTihtYWNy
bywgdXBwZXJOYW1lLCBsb3dlck5hbWUpIG1hY3JvKHVwcGVyTmFtZSwgbG93ZXJOYW1lLCBsb3dl
ck5hbWUsIEpTICMjIHVwcGVyTmFtZSwgdXBwZXJOYW1lKQorICAgIAogI2RlZmluZSBGT1JfRUFD
SF9TSU1QTEVfQlVJTFRJTl9UWVBFKG1hY3JvKSBcCiAgICAgbWFjcm8oU2V0LCBzZXQsIHNldCwg
SlNTZXQsIFNldCkgXAogICAgIG1hY3JvKE1hcCwgbWFwLCBtYXAsIEpTTWFwLCBNYXApIFwKQEAg
LTgwLDkgKzgyLDExIEBAIHN0cnVjdCBIYXNoVGFibGU7CiAgICAgbWFjcm8oTnVtYmVyLCBudW1i
ZXIsIG51bWJlck9iamVjdCwgTnVtYmVyT2JqZWN0LCBOdW1iZXIpIFwKICAgICBtYWNybyhFcnJv
ciwgZXJyb3IsIGVycm9yLCBFcnJvckluc3RhbmNlLCBFcnJvcikgXAogICAgIG1hY3JvKEpTQXJy
YXlCdWZmZXIsIGFycmF5QnVmZmVyLCBhcnJheUJ1ZmZlciwgSlNBcnJheUJ1ZmZlciwgQXJyYXlC
dWZmZXIpIFwKLSAgICBtYWNybyhXZWFrTWFwLCB3ZWFrTWFwLCB3ZWFrTWFwLCBKU1dlYWtNYXAs
IFdlYWtNYXApIFwKLSAgICBtYWNybyhBcnJheUl0ZXJhdG9yLCBhcnJheUl0ZXJhdG9yLCBhcnJh
eUl0ZXJhdG9yLCBKU0FycmF5SXRlcmF0b3IsIEFycmF5SXRlcmF0b3IpIFwKLSAgICBtYWNybyhB
cmd1bWVudHNJdGVyYXRvciwgYXJndW1lbnRzSXRlcmF0b3IsIGFyZ3VtZW50c0l0ZXJhdG9yLCBK
U0FyZ3VtZW50c0l0ZXJhdG9yLCBBcmd1bWVudHNJdGVyYXRvcikgXAorICAgIERFRklORV9TVEFO
REFSRF9CVUlMVElOKG1hY3JvLCBXZWFrTWFwLCB3ZWFrTWFwKSBcCisgICAgREVGSU5FX1NUQU5E
QVJEX0JVSUxUSU4obWFjcm8sIEFycmF5SXRlcmF0b3IsIGFycmF5SXRlcmF0b3IpIFwKKyAgICBE
RUZJTkVfU1RBTkRBUkRfQlVJTFRJTihtYWNybywgQXJndW1lbnRzSXRlcmF0b3IsIGFyZ3VtZW50
c0l0ZXJhdG9yKSBcCisgICAgREVGSU5FX1NUQU5EQVJEX0JVSUxUSU4obWFjcm8sIE1hcEl0ZXJh
dG9yLCBtYXBJdGVyYXRvcikgXAorCiAKICNkZWZpbmUgREVDTEFSRV9TSU1QTEVfQlVJTFRJTl9U
WVBFKGNhcGl0YWxOYW1lLCBsb3dlck5hbWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlwZSwganNO
YW1lKSBcCiAgICAgY2xhc3MgSlMgIyMgY2FwaXRhbE5hbWU7IFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTWFwSXRlcmF0b3IuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNNYXBJdGVyYXRvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDkxZDkwYjUy
NmQ3ZjBmMjUwMWM0MmExMzg5NWZlZDJkY2RiYzMxNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTWFwSXRlcmF0b3IuY3BwCkBAIC0wLDAgKzEsNjQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUsIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJKU01hcEl0ZXJhdG9yLmgiCisKKyNpbmNsdWRlICJK
U0NKU1ZhbHVlSW5saW5lcy5oIgorI2luY2x1ZGUgIkpTQ2VsbElubGluZXMuaCIKKyNpbmNsdWRl
ICJKU01hcC5oIgorI2luY2x1ZGUgIlNsb3RWaXNpdG9ySW5saW5lcy5oIgorCituYW1lc3BhY2Ug
SlNDIHsKKworY29uc3QgQ2xhc3NJbmZvIEpTTWFwSXRlcmF0b3I6OnNfaW5mbyA9IHsgIk1hcCBJ
dGVyYXRvciIsICZCYXNlOjpzX2luZm8sIDAsIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNNYXBJ
dGVyYXRvcikgfTsKKwordm9pZCBKU01hcEl0ZXJhdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0s
IEpTTWFwKiBpdGVyYXRlZE9iamVjdCkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7
CisgICAgbV9pdGVyYXRlZE9iamVjdERhdGEuc2V0KHZtLCB0aGlzLCBpdGVyYXRlZE9iamVjdC0+
bWFwRGF0YSgpKTsKK30KKwordm9pZCBKU01hcEl0ZXJhdG9yOjp2aXNpdENoaWxkcmVuKEpTQ2Vs
bCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCit7CisgICAgSlNNYXBJdGVyYXRvciogdGhp
c09iamVjdCA9IGpzQ2FzdDxKU01hcEl0ZXJhdG9yKj4oY2VsbCk7CisgICAgQVNTRVJUX0dDX09C
SkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOworICAgIENPTVBJTEVfQVNTRVJUKFN0
cnVjdHVyZUZsYWdzICYgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiwgT3ZlcnJpZGVzVmlzaXRDaGls
ZHJlbldpdGhvdXRTZXR0aW5nRmxhZyk7CisgICAgQVNTRVJUKHRoaXNPYmplY3QtPnN0cnVjdHVy
ZSgpLT50eXBlSW5mbygpLm92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4oKSk7CisgICAgICAgIAorICAg
IEJhc2U6OnZpc2l0Q2hpbGRyZW4odGhpc09iamVjdCwgdmlzaXRvcik7CisgICAgdmlzaXRvci5h
cHBlbmQoJnRoaXNPYmplY3QtPm1faXRlcmF0ZWRPYmplY3REYXRhKTsKK30KKworSlNWYWx1ZSBK
U01hcEl0ZXJhdG9yOjpjcmVhdGVQYWlyKENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU1ZhbHVlIGtl
eSwgSlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdzOworICAg
IGFyZ3MuYXBwZW5kKGtleSk7CisgICAgYXJncy5hcHBlbmQodmFsdWUpOworICAgIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QgPSBjYWxsRnJhbWUtPmNhbGxlZSgpLT5nbG9iYWxPYmplY3Qo
KTsKKyAgICByZXR1cm4gY29uc3RydWN0QXJyYXkoY2FsbEZyYW1lLCAwLCBnbG9iYWxPYmplY3Qs
IGFyZ3MpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU01hcEl0ZXJhdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01hcEl0
ZXJhdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMDA5NmQ5ZTA0Mzc3OTU0OGIxZjM4Yzk2MTk0YmE1MmExYjdh
YmM5YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
TWFwSXRlcmF0b3IuaApAQCAtMCwwICsxLDk1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEz
IEFwcGxlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEpTTWFwSXRlcmF0b3JfaAorI2RlZmluZSBK
U01hcEl0ZXJhdG9yX2gKKworI2luY2x1ZGUgIkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LmgiCisjaW5j
bHVkZSAiSlNNYXAuaCIKKyNpbmNsdWRlICJNYXBEYXRhLmgiCisKK25hbWVzcGFjZSBKU0Mgewor
ZW51bSBNYXBJdGVyYXRpb25LaW5kIDogdWludDMyX3QgeworICAgIE1hcEl0ZXJhdGVLZXksCisg
ICAgTWFwSXRlcmF0ZVZhbHVlLAorICAgIE1hcEl0ZXJhdGVLZXlWYWx1ZSwKK307CisKK2NsYXNz
IEpTTWFwSXRlcmF0b3IgOiBwdWJsaWMgSlNEZXN0cnVjdGlibGVPYmplY3QgeworcHVibGljOgor
ICAgIHR5cGVkZWYgSlNEZXN0cnVjdGlibGVPYmplY3QgQmFzZTsKKworICAgIERFQ0xBUkVfRVhQ
T1JUX0lORk87CisKKyAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZt
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICB7
CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90
b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAg
ICB9CisKKyAgICBzdGF0aWMgSlNNYXBJdGVyYXRvciogY3JlYXRlKFZNJiB2bSwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIEpTTWFwKiBpdGVyYXRlZE9iamVjdCwgTWFwSXRlcmF0aW9uS2luZCBraW5k
KQorICAgIHsKKyAgICAgICAgSlNNYXBJdGVyYXRvciogaW5zdGFuY2UgPSBuZXcgKE5vdE51bGws
IGFsbG9jYXRlQ2VsbDxKU01hcEl0ZXJhdG9yPih2bS5oZWFwKSkgSlNNYXBJdGVyYXRvcih2bSwg
c3RydWN0dXJlLCBpdGVyYXRlZE9iamVjdCwga2luZCk7CisgICAgICAgIGluc3RhbmNlLT5maW5p
c2hDcmVhdGlvbih2bSwgaXRlcmF0ZWRPYmplY3QpOworICAgICAgICByZXR1cm4gaW5zdGFuY2U7
CisgICAgfQorCisgICAgYm9vbCBuZXh0KENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU1ZhbHVlJiB2
YWx1ZSkKKyAgICB7CisgICAgICAgIGlmICghbV9pdGVyYXRvci5lbnN1cmVTbG90KCkpCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgaWYgKG1fa2luZCA9PSBNYXBJdGVyYXRl
VmFsdWUpCisgICAgICAgICAgICB2YWx1ZSA9IG1faXRlcmF0b3IudmFsdWUoKTsKKyAgICAgICAg
ZWxzZSBpZiAobV9raW5kID09IE1hcEl0ZXJhdGVLZXkpCisgICAgICAgICAgICB2YWx1ZSA9IG1f
aXRlcmF0b3Iua2V5KCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHZhbHVlID0gY3JlYXRl
UGFpcihjYWxsRnJhbWUsIG1faXRlcmF0b3Iua2V5KCksIG1faXRlcmF0b3IudmFsdWUoKSk7Cisg
ICAgICAgICsrbV9pdGVyYXRvcjsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCitwcml2
YXRlOgorCisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6
U3RydWN0dXJlRmxhZ3MgfCBPdmVycmlkZXNWaXNpdENoaWxkcmVuOworCisgICAgSlNNYXBJdGVy
YXRvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU01hcCogaXRlcmF0ZWRPYmplY3Qs
IE1hcEl0ZXJhdGlvbktpbmQga2luZCkKKyAgICAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCisg
ICAgICAgICwgbV9pdGVyYXRvcihpdGVyYXRlZE9iamVjdC0+bWFwRGF0YSgpLT5iZWdpbigpKQor
ICAgICAgICAsIG1fa2luZChraW5kKQorICAgIHsKKyAgICB9CisKKyAgICB2b2lkIGZpbmlzaENy
ZWF0aW9uKFZNJiwgSlNNYXAqKTsKKyAgICBKU1ZhbHVlIGNyZWF0ZVBhaXIoQ2FsbEZyYW1lKiwg
SlNWYWx1ZSwgSlNWYWx1ZSk7CisgICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwq
LCBTbG90VmlzaXRvciYpOworCisgICAgV3JpdGVCYXJyaWVyPE1hcERhdGE+IG1faXRlcmF0ZWRP
YmplY3REYXRhOworICAgIE1hcERhdGE6OmNvbnN0X2l0ZXJhdG9yIG1faXRlcmF0b3I7CisgICAg
TWFwSXRlcmF0aW9uS2luZCBtX2tpbmQ7Cit9OworCit9CisKKyNlbmRpZiAvLyAhZGVmaW5lZChK
U01hcEl0ZXJhdG9yX2gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9NYXBEYXRhLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBEYXRhLmgKaW5k
ZXggNGEzMGVhYWYxZmU3MTdjZWMzZmUwYmNkZmUxNGY5NTk3YTI2NWVhZS4uZTZjODQ2MTMwOTI2
ZDRlOGIzMWI3ZWI0MmY2NDRlMmU5ZGUyMGFlMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTWFwRGF0YS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL01hcERhdGEuaApAQCAtNDksNiArNDksOCBAQCBwdWJsaWM6CiAgICAgICAgIGJvb2wgb3Bl
cmF0b3IhPShjb25zdCBjb25zdF9pdGVyYXRvciYgb3RoZXIpOwogICAgICAgICBib29sIG9wZXJh
dG9yPT0oY29uc3QgY29uc3RfaXRlcmF0b3ImIG90aGVyKTsKIAorICAgICAgICBib29sIGVuc3Vy
ZVNsb3QoKTsKKwogICAgIHByaXZhdGU6CiAgICAgICAgIC8vIFRoaXMgaXMgYSBiaXQgZ25hcmx5
LiBXZSB1c2UgYW4gaW5kZXggb2YgLTEgdG8gaW5kaWNhdGUgdGhlCiAgICAgICAgIC8vICJlbmQo
KSIgaXRlcmF0b3IuIEJ5IGNhc3RpbmcgdG8gdW5zaWduZWQgd2UgY2FuIGltbWVkaWF0ZWx5CkBA
IC0xNzYsNiArMTc4LDE5IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBNYXBEYXRhOjpjb25zdF9pdGVy
YXRvcjo6aW50ZXJuYWxJbmNyZW1lbnQoKQogICAgICAgICBpbmRleCsrOwogICAgIG1faW5kZXgg
PSBpbmRleDsKIH0KKyAgICAKK0FMV0FZU19JTkxJTkUgYm9vbCBNYXBEYXRhOjpjb25zdF9pdGVy
YXRvcjo6ZW5zdXJlU2xvdCgpCit7CisgICAgLy8gV2hlbiBhbiBpdGVyYXRvciBleGlzdHMgb3V0
c2lkZSBvZiBob3N0IGNvc3QgaXQgaXMgcG9zc2libGUgZm9yCisgICAgLy8gdGhlIGNvbnRhaW5p
bmcgbWFwIHRvIGJlIG1vZGlmaWVkCisgICAgRW50cnkqIGVudHJpZXMgPSBtX21hcERhdGEtPm1f
ZW50cmllczsKKyAgICBzaXplX3QgaW5kZXggPSBtX2luZGV4OworICAgIHNpemVfdCBlbmQgPSBt
X21hcERhdGEtPm1fc2l6ZTsKKyAgICBpZiAoaW5kZXggPCBlbmQgJiYgZW50cmllc1tpbmRleF0u
a2V5KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpbnRlcm5hbEluY3JlbWVudCgpOworICAg
IHJldHVybiBzdGF0aWNfY2FzdDxzaXplX3Q+KG1faW5kZXgpIDwgZW5kOworfQogCiBBTFdBWVNf
SU5MSU5FIE1hcERhdGE6OmNvbnN0X2l0ZXJhdG9yOjpjb25zdF9pdGVyYXRvcihjb25zdCBNYXBE
YXRhKiBtYXBEYXRhKQogICAgIDogbV9tYXBEYXRhKG1hcERhdGEpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBJdGVyYXRvckNvbnN0cnVjdG9yLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcEl0ZXJhdG9yQ29uc3RydWN0b3IuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmZiYzZjOGI3MzUxMjM3MzY4MWZhODY4YjUyZGIzZTAxNjc4YWJlMGEKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBJdGVyYXRvckNv
bnN0cnVjdG9yLmNwcApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEz
IEFwcGxlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWFw
SXRlcmF0b3JDb25zdHJ1Y3Rvci5oIgorCisjaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIK
KyNpbmNsdWRlICJKU0NlbGxJbmxpbmVzLmgiCisjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIK
KyNpbmNsdWRlICJKU01hcEl0ZXJhdG9yLmgiCisjaW5jbHVkZSAiTWFwSXRlcmF0b3JQcm90b3R5
cGUuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK2NvbnN0IENsYXNzSW5mbyBNYXBJdGVyYXRvckNv
bnN0cnVjdG9yOjpzX2luZm8gPSB7ICJNYXBJdGVyYXRvciBJdGVyYXRvciIsICZCYXNlOjpzX2lu
Zm8sIDAsIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoTWFwSXRlcmF0b3JDb25zdHJ1Y3RvcikgfTsK
Kwordm9pZCBNYXBJdGVyYXRvckNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIE1h
cEl0ZXJhdG9yUHJvdG90eXBlKiBwcm90b3R5cGUpCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRp
b24odm0pOworICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5h
bWVzLT5wcm90b3R5cGUsIHByb3RvdHlwZSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9u
bHkpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9N
YXBJdGVyYXRvckNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9N
YXBJdGVyYXRvckNvbnN0cnVjdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDViYTViN2ZmNGQ4MWExYTFkY2Y2
Mjk1NzQxNzcwODM2MzdjYmM3NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL01hcEl0ZXJhdG9yQ29uc3RydWN0b3IuaApAQCAtMCwwICsxLDYzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIE1h
cEl0ZXJhdG9yQ29uc3RydWN0b3JfaAorI2RlZmluZSBNYXBJdGVyYXRvckNvbnN0cnVjdG9yX2gK
KworI2luY2x1ZGUgIkpTT2JqZWN0LmgiCisKK25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBNYXBJ
dGVyYXRvclByb3RvdHlwZTsKKworY2xhc3MgTWFwSXRlcmF0b3JDb25zdHJ1Y3RvciA6IHB1Ymxp
YyBKU05vbkZpbmFsT2JqZWN0IHsKK3B1YmxpYzoKKyAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmpl
Y3QgQmFzZTsKKworICAgIHN0YXRpYyBNYXBJdGVyYXRvckNvbnN0cnVjdG9yKiBjcmVhdGUoVk0m
IHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgTWFwSXRlcmF0b3JQcm90b3R5cGUqIHByb3RvdHlw
ZSkKKyAgICB7CisgICAgICAgIE1hcEl0ZXJhdG9yQ29uc3RydWN0b3IqIGNvbnN0cnVjdG9yID0g
bmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8TWFwSXRlcmF0b3JDb25zdHJ1Y3Rvcj4odm0uaGVh
cCkpIE1hcEl0ZXJhdG9yQ29uc3RydWN0b3Iodm0sIHN0cnVjdHVyZSk7CisgICAgICAgIGNvbnN0
cnVjdG9yLT5maW5pc2hDcmVhdGlvbih2bSwgcHJvdG90eXBlKTsKKyAgICAgICAgcmV0dXJuIGNv
bnN0cnVjdG9yOworICAgIH0KKworICAgIERFQ0xBUkVfSU5GTzsKKworICAgIHN0YXRpYyBTdHJ1
Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTVmFsdWUgcHJvdG90eXBlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBNYXBJdGVy
YXRvckNvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCisgICAgICAgIDog
QmFzZSh2bSwgc3RydWN0dXJlKQorICAgIHsKKyAgICB9CisgICAgdm9pZCBmaW5pc2hDcmVhdGlv
bihWTSYsIE1hcEl0ZXJhdG9yUHJvdG90eXBlKik7Cit9OworCit9CisKKyNlbmRpZiAvLyAhZGVm
aW5lZChNYXBDb25zdHJ1Y3Rvcl9oKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTWFwSXRlcmF0b3JQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTWFwSXRlcmF0b3JQcm90b3R5cGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMyZDU0NWVmNjE3
MDA1MDI2YjFhODNhOWMxNTkwYjE1NWQzZWMxNDUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBJdGVyYXRvclByb3RvdHlwZS5jcHAKQEAgLTAsMCAr
MSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSwgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1hcEl0ZXJhdG9yUHJvdG90eXBlLmgiCisK
KyNpbmNsdWRlICJKU01hcEl0ZXJhdG9yLmgiCisKK25hbWVzcGFjZSBKU0MgeworCitjb25zdCBD
bGFzc0luZm8gTWFwSXRlcmF0b3JQcm90b3R5cGU6OnNfaW5mbyA9IHsgIk1hcCBJdGVyYXRvciIs
ICZCYXNlOjpzX2luZm8sIDAsIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoTWFwSXRlcmF0b3JQcm90
b3R5cGUpIH07CisKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIE1hcEl0ZXJh
dG9yUHJvdG90eXBlRnVuY0l0ZXJhdG9yKEV4ZWNTdGF0ZSopOworc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgTWFwSXRlcmF0b3JQcm90b3R5cGVGdW5jTmV4dChFeGVjU3RhdGUq
KTsKKworCit2b2lkIE1hcEl0ZXJhdG9yUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0s
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRp
b24odm0pOworICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKKyAgICB2bS5wcm90b3R5cGVN
YXAuYWRkUHJvdG90eXBlKHRoaXMpOworCisgICAgSlNDX05BVElWRV9GVU5DVElPTih2bS5wcm9w
ZXJ0eU5hbWVzLT5pdGVyYXRvclByaXZhdGVOYW1lLCBNYXBJdGVyYXRvclByb3RvdHlwZUZ1bmNJ
dGVyYXRvciwgRG9udEVudW0sIDApOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT04odm0ucHJvcGVy
dHlOYW1lcy0+aXRlcmF0b3JOZXh0UHJpdmF0ZU5hbWUsIE1hcEl0ZXJhdG9yUHJvdG90eXBlRnVu
Y05leHQsIERvbnRFbnVtLCAwKTsKK30KKworRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBN
YXBJdGVyYXRvclByb3RvdHlwZUZ1bmNJdGVyYXRvcihDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK3sK
KyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkpOworfQor
CitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIE1hcEl0ZXJhdG9yUHJvdG90eXBlRnVuY05l
eHQoQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCit7CisgICAgSlNNYXBJdGVyYXRvciogaXRlcmF0b3Ig
PSBqc0R5bmFtaWNDYXN0PEpTTWFwSXRlcmF0b3IqPihjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsK
KyAgICBpZiAoIWl0ZXJhdG9yKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93
VHlwZUVycm9yKGNhbGxGcmFtZSwgQVNDSUlMaXRlcmFsKCJDYW5ub3QgY2FsbCBNYXBJdGVyYXRv
ci5uZXh0KCkgb24gYSBub24tTWFwSXRlcmF0b3Igb2JqZWN0IikpKTsKKyAgICAKKyAgICBKU1Zh
bHVlIHJlc3VsdDsKKyAgICBpZiAoaXRlcmF0b3ItPm5leHQoY2FsbEZyYW1lLCByZXN1bHQpKQor
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CisgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShjYWxsRnJhbWUtPnZtKCkuaXRlcmF0aW9uVGVybWluYXRvci5nZXQoKSk7Cit9
CisKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFwSXRl
cmF0b3JQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcEl0ZXJh
dG9yUHJvdG90eXBlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzU2MDM0ZjhhMDIwZjNjNWQ5MDhmMDA1NmZlNTYx
MWVhY2NhZTQ2OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL01hcEl0ZXJhdG9yUHJvdG90eXBlLmgKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMyBBcHBsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBNYXBJdGVyYXRvclBy
b3RvdHlwZV9oCisjZGVmaW5lIE1hcEl0ZXJhdG9yUHJvdG90eXBlX2gKKworI2luY2x1ZGUgIkpT
T2JqZWN0LmgiCisKK25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBNYXBJdGVyYXRvclByb3RvdHlw
ZSA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKK3B1YmxpYzoKKyAgICB0eXBlZGVmIEpTTm9u
RmluYWxPYmplY3QgQmFzZTsKKworICAgIHN0YXRpYyBNYXBJdGVyYXRvclByb3RvdHlwZSogY3Jl
YXRlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1
Y3R1cmUpCisgICAgeworICAgICAgICBNYXBJdGVyYXRvclByb3RvdHlwZSogcHJvdG90eXBlID0g
bmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8TWFwSXRlcmF0b3JQcm90b3R5cGU+KHZtLmhlYXAp
KSBNYXBJdGVyYXRvclByb3RvdHlwZSh2bSwgc3RydWN0dXJlKTsKKyAgICAgICAgcHJvdG90eXBl
LT5maW5pc2hDcmVhdGlvbih2bSwgZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgcmV0dXJuIHByb3Rv
dHlwZTsKKyAgICB9CisKKyAgICBERUNMQVJFX0lORk87CisKKyAgICBzdGF0aWMgU3RydWN0dXJl
KiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U1ZhbHVlIHByb3RvdHlwZSkKKyAgICB7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVj
dHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgTWFwSXRlcmF0b3JQ
cm90b3R5cGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKKyAgICAgICAgOiBCYXNlKHZt
LCBzdHJ1Y3R1cmUpCisgICAgeworICAgIH0KKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwg
SlNHbG9iYWxPYmplY3QqKTsKK307CisKK30KKworI2VuZGlmIC8vICFkZWZpbmVkKE1hcEl0ZXJh
dG9yUHJvdG90eXBlX2gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9NYXBQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFwUHJv
dG90eXBlLmNwcAppbmRleCAyNTIwMGY2YTZlODVhOGUwOGVmMDRjNWQ4MzAwOTAzNTJjMTQ3NzI2
Li41NjZlZTQ2ZTdiMTM1NTk3YWZkNGZlYjhhY2U0NTM3MmJhMzY0YjE1IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcFByb3RvdHlwZS5jcHAKQEAgLTMzLDYgKzMzLDcg
QEAKICNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTRnVuY3Rpb25J
bmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNNYXAuaCIKKyNpbmNsdWRlICJKU01hcEl0ZXJhdG9yLmgi
CiAjaW5jbHVkZSAiTWFwRGF0YS5oIgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTQ1LDYgKzQ2LDkg
QEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFwUHJvdG9GdW5jRm9yRWFj
aChFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hcFBy
b3RvRnVuY0dldChFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIG1hcFByb3RvRnVuY0hhcyhFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIG1hcFByb3RvRnVuY1NldChFeGVjU3RhdGUqKTsKK3N0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hcFByb3RvRnVuY0tleXMoRXhlY1N0YXRlKik7CitzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXBQcm90b0Z1bmNWYWx1ZXMoRXhlY1N0
YXRlKik7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXBQcm90b0Z1bmNF
bnRyaWVzKEV4ZWNTdGF0ZSopOwogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBtYXBQcm90b0Z1bmNTaXplKEV4ZWNTdGF0ZSopOwogICAgIApAQCAtNjAsNiArNjQsMTAgQEAg
dm9pZCBNYXBQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCkKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OKHZtLnByb3BlcnR5TmFtZXMt
PmdldCwgbWFwUHJvdG9GdW5jR2V0LCBEb250RW51bSwgMSk7CiAgICAgSlNDX05BVElWRV9GVU5D
VElPTih2bS5wcm9wZXJ0eU5hbWVzLT5oYXMsIG1hcFByb3RvRnVuY0hhcywgRG9udEVudW0sIDEp
OwogICAgIEpTQ19OQVRJVkVfRlVOQ1RJT04odm0ucHJvcGVydHlOYW1lcy0+c2V0LCBtYXBQcm90
b0Z1bmNTZXQsIERvbnRFbnVtLCAyKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OKHZtLnByb3Bl
cnR5TmFtZXMtPmtleXMsIG1hcFByb3RvRnVuY0tleXMsIERvbnRFbnVtLCAyKTsKKyAgICBKU0Nf
TkFUSVZFX0ZVTkNUSU9OKHZtLnByb3BlcnR5TmFtZXMtPnZhbHVlcywgbWFwUHJvdG9GdW5jVmFs
dWVzLCBEb250RW51bSwgMik7CisgICAgSlNDX05BVElWRV9GVU5DVElPTih2bS5wcm9wZXJ0eU5h
bWVzLT5lbnRyaWVzLCBtYXBQcm90b0Z1bmNFbnRyaWVzLCBEb250RW51bSwgMik7CisgICAgSlND
X05BVElWRV9GVU5DVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5pdGVyYXRvclByaXZhdGVOYW1lLCBt
YXBQcm90b0Z1bmNFbnRyaWVzLCBEb250RW51bSwgMik7CiAKICAgICBHZXR0ZXJTZXR0ZXIqIGFj
Y2Vzc29yID0gR2V0dGVyU2V0dGVyOjpjcmVhdGUodm0pOwogICAgIEpTRnVuY3Rpb24qIGZ1bmN0
aW9uID0gSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIDAsIHZtLnByb3BlcnR5
TmFtZXMtPnNpemUuc3RyaW5nKCksIG1hcFByb3RvRnVuY1NpemUpOwpAQCAtMTY2LDQgKzE3NCwy
OCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hcFByb3RvRnVuY1NpemUoQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihkYXRh
LT5zaXplKGNhbGxGcmFtZSkpKTsKIH0KIAorRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBt
YXBQcm90b0Z1bmNWYWx1ZXMoQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCit7CisgICAgSlNNYXAqIHRo
aXNPYmogPSBqc0R5bmFtaWNDYXN0PEpTTWFwKj4oY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7Cisg
ICAgaWYgKCF0aGlzT2JqKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93VHlw
ZUVycm9yKGNhbGxGcmFtZSwgQVNDSUlMaXRlcmFsKCJDYW5ub3QgY3JlYXRlIGEgTWFwIHZhbHVl
IGl0ZXJhdG9yIGZvciBhIG5vbi1NYXAgb2JqZWN0LiIpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShKU01hcEl0ZXJhdG9yOjpjcmVhdGUoY2FsbEZyYW1lLT52bSgpLCBjYWxsRnJhbWUt
PmNhbGxlZSgpLT5nbG9iYWxPYmplY3QoKS0+bWFwSXRlcmF0b3JTdHJ1Y3R1cmUoKSwgdGhpc09i
aiwgTWFwSXRlcmF0ZVZhbHVlKSk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
bWFwUHJvdG9GdW5jRW50cmllcyhDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK3sKKyAgICBKU01hcCog
dGhpc09iaiA9IGpzRHluYW1pY0Nhc3Q8SlNNYXAqPihjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsK
KyAgICBpZiAoIXRoaXNPYmopCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dU
eXBlRXJyb3IoY2FsbEZyYW1lLCBBU0NJSUxpdGVyYWwoIkNhbm5vdCBjcmVhdGUgYSBNYXAga2V5
IGl0ZXJhdG9yIGZvciBhIG5vbi1NYXAgb2JqZWN0LiIpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShKU01hcEl0ZXJhdG9yOjpjcmVhdGUoY2FsbEZyYW1lLT52bSgpLCBjYWxsRnJhbWUt
PmNhbGxlZSgpLT5nbG9iYWxPYmplY3QoKS0+bWFwSXRlcmF0b3JTdHJ1Y3R1cmUoKSwgdGhpc09i
aiwgTWFwSXRlcmF0ZUtleVZhbHVlKSk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgbWFwUHJvdG9GdW5jS2V5cyhDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK3sKKyAgICBKU01hcCog
dGhpc09iaiA9IGpzRHluYW1pY0Nhc3Q8SlNNYXAqPihjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsK
KyAgICBpZiAoIXRoaXNPYmopCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dU
eXBlRXJyb3IoY2FsbEZyYW1lLCBBU0NJSUxpdGVyYWwoIkNhbm5vdCBjcmVhdGUgYSBNYXAgZW50
cnkgaXRlcmF0b3IgZm9yIGEgbm9uLU1hcCBvYmplY3QuIikpKTsKKyAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKEpTTWFwSXRlcmF0b3I6OmNyZWF0ZShjYWxsRnJhbWUtPnZtKCksIGNhbGxGcmFt
ZS0+Y2FsbGVlKCktPmdsb2JhbE9iamVjdCgpLT5tYXBJdGVyYXRvclN0cnVjdHVyZSgpLCB0aGlz
T2JqLCBNYXBJdGVyYXRlS2V5KSk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2ODE2ZTY2MjNkMDgxMWE4ODJi
OTQ0YjdhODc1OThlNzg2NGM3MmZmLi4wYzYxZTc1MjkyODc2ZGE1M2NmOWRlOTNlZWU2ZjM4MmFj
MDY3YjZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTMtMTEtMDkgIE9saXZlciBIdW50ICA8
b2xpdmVyQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgTWFwIEl0ZXJhdG9ycworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0MTA5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZWQgbWFwIHRlc3RzIHRv
IGEgbW9yZSBzZW5zaWJsZSBsb2NhdGlvbiwgYW5kIGFkZGVkIG5ldyBpdGVyYXRpb24gdGVzdHMu
CisKKyAgICAgICAgKiBqcy9iYXNpYy1tYXAtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5
b3V0VGVzdHMvanMvZG9tL2Jhc2ljLW1hcC1leHBlY3RlZC50eHQuCisgICAgICAgICoganMvYmFz
aWMtbWFwLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9qcy9kb20vYmFzaWMtbWFwLmh0
bWwuCisgICAgICAgICoganMvc2NyaXB0LXRlc3RzL2Jhc2ljLW1hcC5qczogUmVuYW1lZCBmcm9t
IExheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvYmFzaWMtbWFwLmpzLgorICAgICAgICAo
c2V0IHNob3VsZEJlKToKKyAgICAgICAgKHNldCB2YXIpOgorCiAyMDEzLTExLTA4ICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBKV0sga2V5
IGltcG9ydCBmb3IgSE1BQyBhbmQgQUVTLUNCQwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMv
YmFzaWMtbWFwLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2Jhc2ljLW1hcC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZTkyNTE4YzAwNTZhNGE4ZDM5OGEzYWU0ODRiMGJhMmYxN2Y0YWEw
YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2Jhc2ljLW1hcC1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwyMjEgQEAKK1Rlc3RzIGJhc2ljIGNvcnJlY3RuZXNzIG9mIEVTIE1hcCBv
YmplY3QKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgTWFwIGluc3RhbmNl
b2YgTWFwIGlzIGZhbHNlCitQQVNTIE1hcC5wcm90b3R5cGUgaW5zdGFuY2VvZiBNYXAgaXMgZmFs
c2UKK1BBU1MgbmV3IE1hcCgpIGluc3RhbmNlb2YgTWFwIGlzIHRydWUKK1BBU1MgbmV3IE1hcChu
dWxsKSBpbnN0YW5jZW9mIE1hcCBpcyB0cnVlCitQQVNTIG5ldyBNYXAodW5kZWZpbmVkKSBpbnN0
YW5jZW9mIE1hcCBpcyB0cnVlCitQQVNTIG5ldyBNYXAodW5kZWZpbmVkLCB1bmRlZmluZWQpIGlu
c3RhbmNlb2YgTWFwIGlzIHRydWUKK1BBU1MgbmV3IE1hcChudWxsLCB1bmRlZmluZWQpIGluc3Rh
bmNlb2YgTWFwIGlzIHRydWUKK1BBU1MgbmV3IE1hcCgxKSB0aHJldyBleGNlcHRpb24gVHlwZUVy
cm9yOiBNYXAgY29uc3RydWN0b3IgZG9lcyBub3QgYWNjZXB0IGFyZ3VtZW50cy4KK1BBU1MgbmV3
IE1hcCh0cnVlKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBNYXAgY29uc3RydWN0b3IgZG9l
cyBub3QgYWNjZXB0IGFyZ3VtZW50cy4KK1BBU1MgbmV3IE1hcChbXSkgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogTWFwIGNvbnN0cnVjdG9yIGRvZXMgbm90IGFjY2VwdCBhcmd1bWVudHMuCitQ
QVNTIG5ldyBNYXAoe30pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE1hcCBjb25zdHJ1Y3Rv
ciBkb2VzIG5vdCBhY2NlcHQgYXJndW1lbnRzLgorUEFTUyBuZXcgTWFwKHVuZGVmaW5lZCwgbnVs
bCkgdGhyZXcgZXhjZXB0aW9uIFJhbmdlRXJyb3I6IEludmFsaWQgY29tcGFyYXRvciBmdW5jdGlv
bi4KK1BBU1MgbmV3IE1hcCh1bmRlZmluZWQsIHt9KSB0aHJldyBleGNlcHRpb24gUmFuZ2VFcnJv
cjogSW52YWxpZCBjb21wYXJhdG9yIGZ1bmN0aW9uLgorUEFTUyBPYmplY3QuaGFzT3duUHJvcGVy
dHkobWFwLCAnc2l6ZScpIGlzIGZhbHNlCitQQVNTIE1hcC5wcm90b3R5cGUuaGFzT3duUHJvcGVy
dHkoJ3NpemUnKSBpcyB0cnVlCitQQVNTIE1hcC5wcm90b3R5cGUuc2l6ZSB0aHJldyBleGNlcHRp
b24gVHlwZUVycm9yOiBNYXAgb3BlcmF0aW9uIGNhbGxlZCBvbiBub24tTWFwIG9iamVjdC4KK1BB
U1MgbWFwLnNpemUgaXMgMAorUEFTUyBtYXAuc2V0KC0wLCAxKSBpcyBtYXAKK1BBU1MgbWFwLnNl
dCgwLCAyKSBpcyBtYXAKK1BBU1MgbWFwLnNldChJbmZpbml0eSwgMykgaXMgbWFwCitQQVNTIG1h
cC5zZXQoLUluZmluaXR5LCA0KSBpcyBtYXAKK1BBU1MgbWFwLnNldChOYU4sIDUpIGlzIG1hcAor
UEFTUyBtYXAuc2V0KCcwJywgNikgaXMgbWFwCitQQVNTIG1hcC5zZXQoMC4xLCA3KSBpcyBtYXAK
K1BBU1MgbWFwLnNpemUgaXMgNworUEFTUyBtYXAuZ2V0KC0wKSBpcyAxCitQQVNTIG1hcC5nZXQo
MCkgaXMgMgorUEFTUyBtYXAuZ2V0KEluZmluaXR5KSBpcyAzCitQQVNTIG1hcC5nZXQoLUluZmlu
aXR5KSBpcyA0CitQQVNTIG1hcC5nZXQoTmFOKSBpcyA1CitQQVNTIG1hcC5nZXQoJzAnKSBpcyA2
CitQQVNTIG1hcC5nZXQoMC4xKSBpcyA3CitQQVNTIG1hcC5oYXMoLTApIGlzIHRydWUKK1BBU1Mg
bWFwLmhhcygwKSBpcyB0cnVlCitQQVNTIG1hcC5oYXMoSW5maW5pdHkpIGlzIHRydWUKK1BBU1Mg
bWFwLmhhcygtSW5maW5pdHkpIGlzIHRydWUKK1BBU1MgbWFwLmhhcyhOYU4pIGlzIHRydWUKK1BB
U1MgbWFwLmhhcygnMCcpIGlzIHRydWUKK1BBU1MgbWFwLmhhcygwLjEpIGlzIHRydWUKK1BBU1Mg
bWFwLmRlbGV0ZSgtMCkgaXMgdHJ1ZQorUEFTUyBtYXAuZGVsZXRlKDApIGlzIHRydWUKK1BBU1Mg
bWFwLmRlbGV0ZShJbmZpbml0eSkgaXMgdHJ1ZQorUEFTUyBtYXAuZGVsZXRlKC1JbmZpbml0eSkg
aXMgdHJ1ZQorUEFTUyBtYXAuZGVsZXRlKE5hTikgaXMgdHJ1ZQorUEFTUyBtYXAuZGVsZXRlKCcw
JykgaXMgdHJ1ZQorUEFTUyBtYXAuZGVsZXRlKDAuMSkgaXMgdHJ1ZQorUEFTUyBtYXAuZGVsZXRl
KC0wKSBpcyBmYWxzZQorUEFTUyBtYXAuZGVsZXRlKDApIGlzIGZhbHNlCitQQVNTIG1hcC5kZWxl
dGUoSW5maW5pdHkpIGlzIGZhbHNlCitQQVNTIG1hcC5kZWxldGUoLUluZmluaXR5KSBpcyBmYWxz
ZQorUEFTUyBtYXAuZGVsZXRlKE5hTikgaXMgZmFsc2UKK1BBU1MgbWFwLmRlbGV0ZSgnMCcpIGlz
IGZhbHNlCitQQVNTIG1hcC5kZWxldGUoMC4xKSBpcyBmYWxzZQorUEFTUyBtYXAuZ2V0KHNpbXBs
ZVN0cmluZykgaXMgbWFwLmdldChvdGhlclN0cmluZykKK1BBU1MgbWFwLmNsZWFyKCkgaXMgdW5k
ZWZpbmVkLgorUEFTUyBtYXAuc2l6ZSBpcyAwCitQQVNTIG1hcC5zZXQoMCwgMCkgaXMgbWFwCitQ
QVNTIG1hcC5zZXQoJzAnLCAxKSBpcyBtYXAKK1BBU1MgbWFwLnNldCgxLCAyKSBpcyBtYXAKK1BB
U1MgbWFwLnNldCgnMScsIDMpIGlzIG1hcAorUEFTUyBtYXAuc2V0KDIsIDQpIGlzIG1hcAorUEFT
UyBtYXAuc2V0KCcyJywgNSkgaXMgbWFwCitQQVNTIG1hcC5zZXQoMywgNikgaXMgbWFwCitQQVNT
IG1hcC5zZXQoJzMnLCA3KSBpcyBtYXAKK1BBU1MgbWFwLnNldCg0LCA4KSBpcyBtYXAKK1BBU1Mg
bWFwLnNldCgnNCcsIDkpIGlzIG1hcAorUEFTUyBtYXAuc2V0KDUsIDEwKSBpcyBtYXAKK1BBU1Mg
bWFwLnNldCgnNScsIDExKSBpcyBtYXAKK1BBU1MgbWFwLnNldCg2LCAxMikgaXMgbWFwCitQQVNT
IG1hcC5zZXQoJzYnLCAxMykgaXMgbWFwCitQQVNTIG1hcC5zaXplIGlzIDE0Citmb3JFYWNoICMw
CitQQVNTIHRlc3RUaGlzIGlzIHVuZGVmaW5lZC4KKzAKK2ZvckVhY2ggIzEKK1BBU1MgdGVzdFRo
aXMgaXMgdGhpc1ZhbHVlCisxCiswCisxCisyCiszCis0Cis1Cis2Cis3Cis4Cis5CisxMAorMTEK
KzEyCisxMworUEFTUyBtYXAuZm9yRWFjaChkZWJ1ZykgaXMgdW5kZWZpbmVkLgorMCA6IG51bWJl
ciA9PiAwCiswIDogc3RyaW5nID0+IDEKKzEgOiBudW1iZXIgPT4gMgorMSA6IHN0cmluZyA9PiAz
CisyIDogbnVtYmVyID0+IDQKKzIgOiBzdHJpbmcgPT4gNQorMyA6IHN0cmluZyA9PiA3Cis0IDog
c3RyaW5nID0+IDkKKzUgOiBudW1iZXIgPT4gMTAKKzUgOiBzdHJpbmcgPT4gMTEKKzYgOiBudW1i
ZXIgPT4gMTIKKzYgOiBzdHJpbmcgPT4gMTMKKzQgOiBudW1iZXIgPT4gMTEKK1BBU1MgbWFwLmdl
dCgwKSBpcyAwCitQQVNTIG1hcC5nZXQoIjAiKSBpcyAxCitQQVNTIG1hcC5nZXQoMSkgaXMgMgor
UEFTUyBtYXAuZ2V0KCIxIikgaXMgMworUEFTUyBtYXAuZ2V0KDIpIGlzIDQKK1BBU1MgbWFwLmdl
dCgiMiIpIGlzIDUKK1BBU1MgbWFwLmdldCgiMyIpIGlzICJyZXBsYWNlZCIKK1BBU1MgbWFwLmdl
dCgiNCIpIGlzIDkKK1BBU1MgbWFwLmdldCg1KSBpcyAxMAorUEFTUyBtYXAuZ2V0KCI1IikgaXMg
MTEKK1BBU1MgbWFwLmdldCg2KSBpcyAxMgorUEFTUyBtYXAuZ2V0KCI2IikgaXMgMTMKK1BBU1Mg
bWFwLmdldCg0KSBpcyAxMQorbWFwLkBAaXRlcmF0b3IoKQorUEFTUyBrZXkgaXMgMAorUEFTUyB2
YWx1ZSBpcyAwCitQQVNTIGtleSBpcyAnMCcKK1BBU1MgdmFsdWUgaXMgMQorUEFTUyBrZXkgaXMg
MQorUEFTUyB2YWx1ZSBpcyAyCitQQVNTIGtleSBpcyAnMScKK1BBU1MgdmFsdWUgaXMgMworUEFT
UyBrZXkgaXMgMgorUEFTUyB2YWx1ZSBpcyA0CitQQVNTIGtleSBpcyAnMicKK1BBU1MgdmFsdWUg
aXMgNQorUEFTUyBrZXkgaXMgMworUEFTUyB2YWx1ZSBpcyA2CitQQVNTIGtleSBpcyAnMycKK1BB
U1MgdmFsdWUgaXMgNworUEFTUyBrZXkgaXMgNAorUEFTUyB2YWx1ZSBpcyA4CitQQVNTIGtleSBp
cyAnNCcKK1BBU1MgdmFsdWUgaXMgOQorbWFwLmVudHJpZXMoKQorUEFTUyBpIGlzIDEwCitQQVNT
IGtleSBpcyAwCitQQVNTIHZhbHVlIGlzIDAKK1BBU1Mga2V5IGlzICcwJworUEFTUyB2YWx1ZSBp
cyAxCitQQVNTIGtleSBpcyAxCitQQVNTIHZhbHVlIGlzIDIKK1BBU1Mga2V5IGlzICcxJworUEFT
UyB2YWx1ZSBpcyAzCitQQVNTIGtleSBpcyAyCitQQVNTIHZhbHVlIGlzIDQKK1BBU1Mga2V5IGlz
ICcyJworUEFTUyB2YWx1ZSBpcyA1CitQQVNTIGtleSBpcyAzCitQQVNTIHZhbHVlIGlzIDYKK1BB
U1Mga2V5IGlzICczJworUEFTUyB2YWx1ZSBpcyA3CitQQVNTIGtleSBpcyA0CitQQVNTIHZhbHVl
IGlzIDgKK1BBU1Mga2V5IGlzICc0JworUEFTUyB2YWx1ZSBpcyA5CitQQVNTIGkgaXMgMTAKK21h
cC5rZXlzKCkKK1BBU1Mga2V5IGlzIDAKK1BBU1Mga2V5IGlzICcwJworUEFTUyBrZXkgaXMgMQor
UEFTUyBrZXkgaXMgJzEnCitQQVNTIGtleSBpcyAyCitQQVNTIGtleSBpcyAnMicKK1BBU1Mga2V5
IGlzIDMKK1BBU1Mga2V5IGlzICczJworUEFTUyBrZXkgaXMgNAorUEFTUyBrZXkgaXMgJzQnCitQ
QVNTIGkgaXMgMTAKK21hcC52YWx1ZXMoKQorUEFTUyB2YWx1ZSBpcyAwCitQQVNTIHZhbHVlIGlz
IDEKK1BBU1MgdmFsdWUgaXMgMgorUEFTUyB2YWx1ZSBpcyAzCitQQVNTIHZhbHVlIGlzIDQKK1BB
U1MgdmFsdWUgaXMgNQorUEFTUyB2YWx1ZSBpcyA2CitQQVNTIHZhbHVlIGlzIDcKK1BBU1MgdmFs
dWUgaXMgOAorUEFTUyB2YWx1ZSBpcyA5CitQQVNTIGkgaXMgMTAKK01hcCBtdXRhdGlvbiB3aXRo
IGxpdmUgaXRlcmF0b3IgYW5kIEdDCitQQVNTIGtleSBpcyAxCitQQVNTIHZhbHVlIGlzIDIKK1BB
U1Mga2V5IGlzIDMKK1BBU1MgdmFsdWUgaXMgNgorUEFTUyBrZXkgaXMgNAorUEFTUyB2YWx1ZSBp
cyA4CitQQVNTIGtleSBpcyA1CitQQVNTIHZhbHVlIGlzIDEwCitQQVNTIGtleSBpcyA3CitQQVNT
IHZhbHVlIGlzIDE0CitQQVNTIGkgaXMgNQorUEFTUyBtYXAuc2l6ZSBpcyA0Cit0ZXN0IGZvckVh
Y2gKK1BBU1Mga2V5IGlzIDEKK1BBU1MgdmFsdWUgaXMgMgorUEFTUyBrZXkgaXMgMworUEFTUyB2
YWx1ZSBpcyA2CitQQVNTIGtleSBpcyA0CitQQVNTIHZhbHVlIGlzIDgKK1BBU1Mga2V5IGlzIDUK
K1BBU1MgdmFsdWUgaXMgMTAKK1BBU1Mga2V5IGlzIDcKK1BBU1MgdmFsdWUgaXMgMTQKK1BBU1Mg
aSBpcyA1CitQQVNTIG1hcC5zaXplIGlzIDQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9iYXNpYy1t
YXAuaHRtbCBiL0xheW91dFRlc3RzL2pzL2Jhc2ljLW1hcC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2YTY4
M2Y1OTgwYWY4Y2I3ZWRlY2VkMjQ4Yjk4MDZiNzFiNGY1YTYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9qcy9iYXNpYy1tYXAuaHRtbApAQCAtMCwwICsxLDEwIEBACis8IURPQ1RZUEUg
SFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvYmFzaWMtbWFwLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9iYXNpYy1t
YXAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL2Jhc2ljLW1hcC1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgyMzQ0MmY5M2M1NDg5YzRhNWEyNDVi
YWFlNGJlOTYxOTVhNDRjMDAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvZG9tL2Jhc2ljLW1hcC1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSwxMjcgKzAsMCBAQAotVGVzdHMgYmFzaWMgY29ycmVjdG5lc3Mgb2YgRVMg
TWFwIG9iamVjdAotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBNYXAgaW5z
dGFuY2VvZiBNYXAgaXMgZmFsc2UKLVBBU1MgTWFwLnByb3RvdHlwZSBpbnN0YW5jZW9mIE1hcCBp
cyBmYWxzZQotUEFTUyBuZXcgTWFwKCkgaW5zdGFuY2VvZiBNYXAgaXMgdHJ1ZQotUEFTUyBuZXcg
TWFwKG51bGwpIGluc3RhbmNlb2YgTWFwIGlzIHRydWUKLVBBU1MgbmV3IE1hcCh1bmRlZmluZWQp
IGluc3RhbmNlb2YgTWFwIGlzIHRydWUKLVBBU1MgbmV3IE1hcCh1bmRlZmluZWQsIHVuZGVmaW5l
ZCkgaW5zdGFuY2VvZiBNYXAgaXMgdHJ1ZQotUEFTUyBuZXcgTWFwKG51bGwsIHVuZGVmaW5lZCkg
aW5zdGFuY2VvZiBNYXAgaXMgdHJ1ZQotUEFTUyBuZXcgTWFwKDEpIHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IE1hcCBjb25zdHJ1Y3RvciBkb2VzIG5vdCBhY2NlcHQgYXJndW1lbnRzLgotUEFT
UyBuZXcgTWFwKHRydWUpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE1hcCBjb25zdHJ1Y3Rv
ciBkb2VzIG5vdCBhY2NlcHQgYXJndW1lbnRzLgotUEFTUyBuZXcgTWFwKFtdKSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBNYXAgY29uc3RydWN0b3IgZG9lcyBub3QgYWNjZXB0IGFyZ3VtZW50
cy4KLVBBU1MgbmV3IE1hcCh7fSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTWFwIGNvbnN0
cnVjdG9yIGRvZXMgbm90IGFjY2VwdCBhcmd1bWVudHMuCi1QQVNTIG5ldyBNYXAodW5kZWZpbmVk
LCBudWxsKSB0aHJldyBleGNlcHRpb24gUmFuZ2VFcnJvcjogSW52YWxpZCBjb21wYXJhdG9yIGZ1
bmN0aW9uLgotUEFTUyBuZXcgTWFwKHVuZGVmaW5lZCwge30pIHRocmV3IGV4Y2VwdGlvbiBSYW5n
ZUVycm9yOiBJbnZhbGlkIGNvbXBhcmF0b3IgZnVuY3Rpb24uCi1QQVNTIE9iamVjdC5oYXNPd25Q
cm9wZXJ0eShtYXAsICdzaXplJykgaXMgZmFsc2UKLVBBU1MgTWFwLnByb3RvdHlwZS5oYXNPd25Q
cm9wZXJ0eSgnc2l6ZScpIGlzIHRydWUKLVBBU1MgTWFwLnByb3RvdHlwZS5zaXplIHRocmV3IGV4
Y2VwdGlvbiBUeXBlRXJyb3I6IE1hcCBvcGVyYXRpb24gY2FsbGVkIG9uIG5vbi1NYXAgb2JqZWN0
LgotUEFTUyBtYXAuc2l6ZSBpcyAwCi1QQVNTIG1hcC5zZXQoLTAsIDEpIGlzIG1hcAotUEFTUyBt
YXAuc2V0KDAsIDIpIGlzIG1hcAotUEFTUyBtYXAuc2V0KEluZmluaXR5LCAzKSBpcyBtYXAKLVBB
U1MgbWFwLnNldCgtSW5maW5pdHksIDQpIGlzIG1hcAotUEFTUyBtYXAuc2V0KE5hTiwgNSkgaXMg
bWFwCi1QQVNTIG1hcC5zZXQoJzAnLCA2KSBpcyBtYXAKLVBBU1MgbWFwLnNldCgwLjEsIDcpIGlz
IG1hcAotUEFTUyBtYXAuc2l6ZSBpcyA3Ci1QQVNTIG1hcC5nZXQoLTApIGlzIDEKLVBBU1MgbWFw
LmdldCgwKSBpcyAyCi1QQVNTIG1hcC5nZXQoSW5maW5pdHkpIGlzIDMKLVBBU1MgbWFwLmdldCgt
SW5maW5pdHkpIGlzIDQKLVBBU1MgbWFwLmdldChOYU4pIGlzIDUKLVBBU1MgbWFwLmdldCgnMCcp
IGlzIDYKLVBBU1MgbWFwLmdldCgwLjEpIGlzIDcKLVBBU1MgbWFwLmhhcygtMCkgaXMgdHJ1ZQot
UEFTUyBtYXAuaGFzKDApIGlzIHRydWUKLVBBU1MgbWFwLmhhcyhJbmZpbml0eSkgaXMgdHJ1ZQot
UEFTUyBtYXAuaGFzKC1JbmZpbml0eSkgaXMgdHJ1ZQotUEFTUyBtYXAuaGFzKE5hTikgaXMgdHJ1
ZQotUEFTUyBtYXAuaGFzKCcwJykgaXMgdHJ1ZQotUEFTUyBtYXAuaGFzKDAuMSkgaXMgdHJ1ZQot
UEFTUyBtYXAuZGVsZXRlKC0wKSBpcyB0cnVlCi1QQVNTIG1hcC5kZWxldGUoMCkgaXMgdHJ1ZQot
UEFTUyBtYXAuZGVsZXRlKEluZmluaXR5KSBpcyB0cnVlCi1QQVNTIG1hcC5kZWxldGUoLUluZmlu
aXR5KSBpcyB0cnVlCi1QQVNTIG1hcC5kZWxldGUoTmFOKSBpcyB0cnVlCi1QQVNTIG1hcC5kZWxl
dGUoJzAnKSBpcyB0cnVlCi1QQVNTIG1hcC5kZWxldGUoMC4xKSBpcyB0cnVlCi1QQVNTIG1hcC5k
ZWxldGUoLTApIGlzIGZhbHNlCi1QQVNTIG1hcC5kZWxldGUoMCkgaXMgZmFsc2UKLVBBU1MgbWFw
LmRlbGV0ZShJbmZpbml0eSkgaXMgZmFsc2UKLVBBU1MgbWFwLmRlbGV0ZSgtSW5maW5pdHkpIGlz
IGZhbHNlCi1QQVNTIG1hcC5kZWxldGUoTmFOKSBpcyBmYWxzZQotUEFTUyBtYXAuZGVsZXRlKCcw
JykgaXMgZmFsc2UKLVBBU1MgbWFwLmRlbGV0ZSgwLjEpIGlzIGZhbHNlCi1QQVNTIG1hcC5nZXQo
c2ltcGxlU3RyaW5nKSBpcyBtYXAuZ2V0KG90aGVyU3RyaW5nKQotUEFTUyBtYXAuY2xlYXIoKSBp
cyB1bmRlZmluZWQuCi1QQVNTIG1hcC5zaXplIGlzIDAKLVBBU1MgbWFwLnNldCgwLCAwKSBpcyBt
YXAKLVBBU1MgbWFwLnNldCgnMCcsIDEpIGlzIG1hcAotUEFTUyBtYXAuc2V0KDEsIDIpIGlzIG1h
cAotUEFTUyBtYXAuc2V0KCcxJywgMykgaXMgbWFwCi1QQVNTIG1hcC5zZXQoMiwgNCkgaXMgbWFw
Ci1QQVNTIG1hcC5zZXQoJzInLCA1KSBpcyBtYXAKLVBBU1MgbWFwLnNldCgzLCA2KSBpcyBtYXAK
LVBBU1MgbWFwLnNldCgnMycsIDcpIGlzIG1hcAotUEFTUyBtYXAuc2V0KDQsIDgpIGlzIG1hcAot
UEFTUyBtYXAuc2V0KCc0JywgOSkgaXMgbWFwCi1QQVNTIG1hcC5zZXQoNSwgMTApIGlzIG1hcAot
UEFTUyBtYXAuc2V0KCc1JywgMTEpIGlzIG1hcAotUEFTUyBtYXAuc2V0KDYsIDEyKSBpcyBtYXAK
LVBBU1MgbWFwLnNldCgnNicsIDEzKSBpcyBtYXAKLVBBU1MgbWFwLnNpemUgaXMgMTQKLWZvckVh
Y2ggIzAKLVBBU1MgdGVzdFRoaXMgaXMgdW5kZWZpbmVkLgotMAotZm9yRWFjaCAjMQotUEFTUyB0
ZXN0VGhpcyBpcyB0aGlzVmFsdWUKLTEKLTAKLTEKLTIKLTMKLTQKLTUKLTYKLTcKLTgKLTkKLTEw
Ci0xMQotMTIKLTEzCi1QQVNTIG1hcC5mb3JFYWNoKGRlYnVnKSBpcyB1bmRlZmluZWQuCi0wIDog
bnVtYmVyID0+IDAKLTAgOiBzdHJpbmcgPT4gMQotMSA6IG51bWJlciA9PiAyCi0xIDogc3RyaW5n
ID0+IDMKLTIgOiBudW1iZXIgPT4gNAotMiA6IHN0cmluZyA9PiA1Ci0zIDogc3RyaW5nID0+IDcK
LTQgOiBzdHJpbmcgPT4gOQotNSA6IG51bWJlciA9PiAxMAotNSA6IHN0cmluZyA9PiAxMQotNiA6
IG51bWJlciA9PiAxMgotNiA6IHN0cmluZyA9PiAxMwotNCA6IG51bWJlciA9PiAxMQotUEFTUyBt
YXAuZ2V0KDApIGlzIDAKLVBBU1MgbWFwLmdldCgiMCIpIGlzIDEKLVBBU1MgbWFwLmdldCgxKSBp
cyAyCi1QQVNTIG1hcC5nZXQoIjEiKSBpcyAzCi1QQVNTIG1hcC5nZXQoMikgaXMgNAotUEFTUyBt
YXAuZ2V0KCIyIikgaXMgNQotUEFTUyBtYXAuZ2V0KCIzIikgaXMgInJlcGxhY2VkIgotUEFTUyBt
YXAuZ2V0KCI0IikgaXMgOQotUEFTUyBtYXAuZ2V0KDUpIGlzIDEwCi1QQVNTIG1hcC5nZXQoIjUi
KSBpcyAxMQotUEFTUyBtYXAuZ2V0KDYpIGlzIDEyCi1QQVNTIG1hcC5nZXQoIjYiKSBpcyAxMwot
UEFTUyBtYXAuZ2V0KDQpIGlzIDExCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0K
LVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL2Jhc2ljLW1h
cC5odG1sIGIvTGF5b3V0VGVzdHMvanMvZG9tL2Jhc2ljLW1hcC5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA3NTE3ZDZlNTI5MjUwMmM5MGNiMmRjNmZlMGExMGYxMTMzZjJhNDA2
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2pzL2RvbS9iYXNpYy1tYXAuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAK
LTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KLTxodG1sPgot
PGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9iYXNpYy1t
YXAuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvanMvZG9tL3NjcmlwdC10ZXN0cy9iYXNpYy1tYXAuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20v
c2NyaXB0LXRlc3RzL2Jhc2ljLW1hcC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NDhjZDZjYzc4MTdmYWE5NWIyMzBhMTA0YTBlMTQ3NDFlODNiMWVhNS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0
LXRlc3RzL2Jhc2ljLW1hcC5qcworKysgL2Rldi9udWxsCkBAIC0xLDEyMyArMCwwIEBACi1kZXNj
cmlwdGlvbigiVGVzdHMgYmFzaWMgY29ycmVjdG5lc3Mgb2YgRVMgTWFwIG9iamVjdCIpOwotCi0v
LyBDdXJyZW50bHkgd2UgZG9uJ3Qgc3VwcG9ydCBpdGVyYXRvcnMsIHNvIHdlIHRocm93Ci0vLyBv
biBhbnkgbm9uLXRocm93aW5nIHBhcmFtZXRlcnMKLXNob3VsZEJlRmFsc2UoIk1hcCBpbnN0YW5j
ZW9mIE1hcCIpOwotc2hvdWxkQmVGYWxzZSgiTWFwLnByb3RvdHlwZSBpbnN0YW5jZW9mIE1hcCIp
Owotc2hvdWxkQmVUcnVlKCJuZXcgTWFwKCkgaW5zdGFuY2VvZiBNYXAiKTsKLXNob3VsZEJlVHJ1
ZSgibmV3IE1hcChudWxsKSBpbnN0YW5jZW9mIE1hcCIpOwotc2hvdWxkQmVUcnVlKCJuZXcgTWFw
KHVuZGVmaW5lZCkgaW5zdGFuY2VvZiBNYXAiKTsKLXNob3VsZEJlVHJ1ZSgibmV3IE1hcCh1bmRl
ZmluZWQsIHVuZGVmaW5lZCkgaW5zdGFuY2VvZiBNYXAiKTsKLXNob3VsZEJlVHJ1ZSgibmV3IE1h
cChudWxsLCB1bmRlZmluZWQpIGluc3RhbmNlb2YgTWFwIik7Ci0KLXNob3VsZFRocm93KCJuZXcg
TWFwKDEpIik7Ci1zaG91bGRUaHJvdygibmV3IE1hcCh0cnVlKSIpOwotc2hvdWxkVGhyb3coIm5l
dyBNYXAoW10pIik7Ci1zaG91bGRUaHJvdygibmV3IE1hcCh7fSkiKTsKLXNob3VsZFRocm93KCJu
ZXcgTWFwKHVuZGVmaW5lZCwgbnVsbCkiKTsKLXNob3VsZFRocm93KCJuZXcgTWFwKHVuZGVmaW5l
ZCwge30pIik7Ci0KLXZhciBtYXAgPSBuZXcgTWFwOwotc2hvdWxkQmVGYWxzZSgiT2JqZWN0Lmhh
c093blByb3BlcnR5KG1hcCwgJ3NpemUnKSIpCi1zaG91bGRCZVRydWUoIk1hcC5wcm90b3R5cGUu
aGFzT3duUHJvcGVydHkoJ3NpemUnKSIpCi1zaG91bGRUaHJvdygiTWFwLnByb3RvdHlwZS5zaXpl
IikKLXNob3VsZEJlKCJtYXAuc2l6ZSIsICIwIikKLXNob3VsZEJlKCJtYXAuc2V0KC0wLCAxKSIs
ICJtYXAiKQotc2hvdWxkQmUoIm1hcC5zZXQoMCwgMikiLCAibWFwIikKLXNob3VsZEJlKCJtYXAu
c2V0KEluZmluaXR5LCAzKSIsICJtYXAiKQotc2hvdWxkQmUoIm1hcC5zZXQoLUluZmluaXR5LCA0
KSIsICJtYXAiKQotc2hvdWxkQmUoIm1hcC5zZXQoTmFOLCA1KSIsICJtYXAiKQotc2hvdWxkQmUo
Im1hcC5zZXQoJzAnLCA2KSIsICJtYXAiKQotc2hvdWxkQmUoIm1hcC5zZXQoMC4xLCA3KSIsICJt
YXAiKQotc2hvdWxkQmUoIm1hcC5zaXplIiwgIjciKQotc2hvdWxkQmUoIm1hcC5nZXQoLTApIiwg
IjEiKQotc2hvdWxkQmUoIm1hcC5nZXQoMCkiLCAiMiIpCi1zaG91bGRCZSgibWFwLmdldChJbmZp
bml0eSkiLCAiMyIpCi1zaG91bGRCZSgibWFwLmdldCgtSW5maW5pdHkpIiwgIjQiKQotc2hvdWxk
QmUoIm1hcC5nZXQoTmFOKSIsICI1IikKLXNob3VsZEJlKCJtYXAuZ2V0KCcwJykiLCAiNiIpCi1z
aG91bGRCZSgibWFwLmdldCgwLjEpIiwgIjciKQotCi1zaG91bGRCZVRydWUoIm1hcC5oYXMoLTAp
IikKLXNob3VsZEJlVHJ1ZSgibWFwLmhhcygwKSIpCi1zaG91bGRCZVRydWUoIm1hcC5oYXMoSW5m
aW5pdHkpIikKLXNob3VsZEJlVHJ1ZSgibWFwLmhhcygtSW5maW5pdHkpIikKLXNob3VsZEJlVHJ1
ZSgibWFwLmhhcyhOYU4pIikKLXNob3VsZEJlVHJ1ZSgibWFwLmhhcygnMCcpIikKLXNob3VsZEJl
VHJ1ZSgibWFwLmhhcygwLjEpIikKLQotc2hvdWxkQmVUcnVlKCJtYXAuZGVsZXRlKC0wKSIpCi1z
aG91bGRCZVRydWUoIm1hcC5kZWxldGUoMCkiKQotc2hvdWxkQmVUcnVlKCJtYXAuZGVsZXRlKElu
ZmluaXR5KSIpCi1zaG91bGRCZVRydWUoIm1hcC5kZWxldGUoLUluZmluaXR5KSIpCi1zaG91bGRC
ZVRydWUoIm1hcC5kZWxldGUoTmFOKSIpCi1zaG91bGRCZVRydWUoIm1hcC5kZWxldGUoJzAnKSIp
Ci1zaG91bGRCZVRydWUoIm1hcC5kZWxldGUoMC4xKSIpCi0KLXNob3VsZEJlRmFsc2UoIm1hcC5k
ZWxldGUoLTApIikKLXNob3VsZEJlRmFsc2UoIm1hcC5kZWxldGUoMCkiKQotc2hvdWxkQmVGYWxz
ZSgibWFwLmRlbGV0ZShJbmZpbml0eSkiKQotc2hvdWxkQmVGYWxzZSgibWFwLmRlbGV0ZSgtSW5m
aW5pdHkpIikKLXNob3VsZEJlRmFsc2UoIm1hcC5kZWxldGUoTmFOKSIpCi1zaG91bGRCZUZhbHNl
KCJtYXAuZGVsZXRlKCcwJykiKQotc2hvdWxkQmVGYWxzZSgibWFwLmRlbGV0ZSgwLjEpIikKLQot
dmFyIHNpbXBsZVN0cmluZyA9ICJhYWFhYSI7Ci12YXIgb3RoZXJTdHJpbmcgPSAiIjsKLWZvciAo
dmFyIGkgPSAwOyBpIDwgNTsgaSsrKQotCW90aGVyU3RyaW5nICs9ICJhIgotbWFwLnNldChzaW1w
bGVTdHJpbmcsIHt9KTsKLXNob3VsZEJlKCJtYXAuZ2V0KHNpbXBsZVN0cmluZykiLCAibWFwLmdl
dChvdGhlclN0cmluZykiKTsKLQotCi0KLXNob3VsZEJlVW5kZWZpbmVkKCJtYXAuY2xlYXIoKSIp
Owotc2hvdWxkQmUoIm1hcC5zaXplIiwgIjAiKQotdmFyIGNvdW50ID0gNzsKLWZvciAodmFyIGkg
PSAwOyBpIDwgY291bnQ7IGkrKykgewotICAgIHNob3VsZEJlKCJtYXAuc2V0KCIgKyBpICsgIiwg
IiArIChpICogMikgKyAiKSIsICJtYXAiKQotICAgIHNob3VsZEJlKCJtYXAuc2V0KCciICsgaSAr
ICInLCAiICsgKGkgKiAyICsgMSkgKyAiKSIsICJtYXAiKQotfQotCi1zaG91bGRCZSgibWFwLnNp
emUiLCAiMTQiKQotCi12YXIgdGhpc1ZhbHVlID0gMHhmMDAKLXZhciB0ZXN0VGhpczsKLXZhciBj
b3VudCA9IDA7Ci0KLXRyeSB7Ci0JbWFwLmZvckVhY2goZnVuY3Rpb24oKSB7ICJ1c2Ugc3RyaWN0
IjsgZGVidWcoImZvckVhY2ggIzAiKTsgdGVzdFRoaXMgPSB0aGlzOyBzaG91bGRCZVVuZGVmaW5l
ZCgidGVzdFRoaXMiKTsgdGhyb3cgY291bnQrKzsgIH0pCi19IGNhdGNoKGUpIHsKLSAgICBkZWJ1
ZyhlKQotfQotdHJ5IHsKLSAgICBtYXAuZm9yRWFjaChmdW5jdGlvbigpIHsgInVzZSBzdHJpY3Qi
OyBkZWJ1ZygiZm9yRWFjaCAjMSIpOyB0ZXN0VGhpcyA9IHRoaXM7IHNob3VsZEJlKCJ0ZXN0VGhp
cyIsICJ0aGlzVmFsdWUiKTsgdGhyb3cgY291bnQrKzsgIH0sIHRoaXNWYWx1ZSkKLX0gY2F0Y2go
ZSkgewotICAgIGRlYnVnKGUpCi19Ci0KLXNob3VsZEJlVW5kZWZpbmVkKCdtYXAuZm9yRWFjaChk
ZWJ1ZyknKQotCi1tYXAuZm9yRWFjaChmdW5jdGlvbiAodixrKSB7Ci0JZGVidWcoayArICIgOiAi
ICsgdHlwZW9mIChrKSArICIgPT4gIiArIHYpCi0KLQlpZiAoayA9PSAyKQotCQltYXAuZGVsZXRl
KDMpCi0JaWYgKGsgPT0gIjMiKSB7Ci0JCW1hcC5zZXQoIjMiLCAicmVwbGFjZWQiKTsKLQkJbWFw
LmRlbGV0ZSg0KQotCQltYXAuc2V0KDQsIDExKQotCX0KLX0pCi0KLXZhciBrZXlzOwotbWFwLmZv
ckVhY2goZnVuY3Rpb24gKHYsaykgewotCWtleXMgPSBrZXlzIHx8IFtdOwotCWtleXMucHVzaChb
ayx2XSk7Ci19KQotZ2MoKTsKLWZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykg
ewotCXZhciBleHBlY3RlZEtleSA9IGtleXNbaV1bMF0KLQl2YXIgZXhwZWN0ZWRWYWx1ZSA9IGtl
eXNbaV1bMV0KLQlzaG91bGRCZSgibWFwLmdldCgiK0pTT04uc3RyaW5naWZ5KGV4cGVjdGVkS2V5
KSsiKSIsIEpTT04uc3RyaW5naWZ5KGV4cGVjdGVkVmFsdWUpKTsKLX0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9iYXNpYy1tYXAuanMgYi9MYXlvdXRUZXN0cy9qcy9z
Y3JpcHQtdGVzdHMvYmFzaWMtbWFwLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIwOTM4MDI4ZjA0YzRiMWQ1YTg4
M2YzNDk2ZDk2NzY1MDQ3OWYyMDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9z
Y3JpcHQtdGVzdHMvYmFzaWMtbWFwLmpzCkBAIC0wLDAgKzEsMjM5IEBACitkZXNjcmlwdGlvbigi
VGVzdHMgYmFzaWMgY29ycmVjdG5lc3Mgb2YgRVMgTWFwIG9iamVjdCIpOworCisvLyBDdXJyZW50
bHkgd2UgZG9uJ3Qgc3VwcG9ydCBpdGVyYXRvcnMsIHNvIHdlIHRocm93CisvLyBvbiBhbnkgbm9u
LXRocm93aW5nIHBhcmFtZXRlcnMKK3Nob3VsZEJlRmFsc2UoIk1hcCBpbnN0YW5jZW9mIE1hcCIp
Oworc2hvdWxkQmVGYWxzZSgiTWFwLnByb3RvdHlwZSBpbnN0YW5jZW9mIE1hcCIpOworc2hvdWxk
QmVUcnVlKCJuZXcgTWFwKCkgaW5zdGFuY2VvZiBNYXAiKTsKK3Nob3VsZEJlVHJ1ZSgibmV3IE1h
cChudWxsKSBpbnN0YW5jZW9mIE1hcCIpOworc2hvdWxkQmVUcnVlKCJuZXcgTWFwKHVuZGVmaW5l
ZCkgaW5zdGFuY2VvZiBNYXAiKTsKK3Nob3VsZEJlVHJ1ZSgibmV3IE1hcCh1bmRlZmluZWQsIHVu
ZGVmaW5lZCkgaW5zdGFuY2VvZiBNYXAiKTsKK3Nob3VsZEJlVHJ1ZSgibmV3IE1hcChudWxsLCB1
bmRlZmluZWQpIGluc3RhbmNlb2YgTWFwIik7CisKK3Nob3VsZFRocm93KCJuZXcgTWFwKDEpIik7
CitzaG91bGRUaHJvdygibmV3IE1hcCh0cnVlKSIpOworc2hvdWxkVGhyb3coIm5ldyBNYXAoW10p
Iik7CitzaG91bGRUaHJvdygibmV3IE1hcCh7fSkiKTsKK3Nob3VsZFRocm93KCJuZXcgTWFwKHVu
ZGVmaW5lZCwgbnVsbCkiKTsKK3Nob3VsZFRocm93KCJuZXcgTWFwKHVuZGVmaW5lZCwge30pIik7
CisKK3ZhciBtYXAgPSBuZXcgTWFwOworc2hvdWxkQmVGYWxzZSgiT2JqZWN0Lmhhc093blByb3Bl
cnR5KG1hcCwgJ3NpemUnKSIpCitzaG91bGRCZVRydWUoIk1hcC5wcm90b3R5cGUuaGFzT3duUHJv
cGVydHkoJ3NpemUnKSIpCitzaG91bGRUaHJvdygiTWFwLnByb3RvdHlwZS5zaXplIikKK3Nob3Vs
ZEJlKCJtYXAuc2l6ZSIsICIwIikKK3Nob3VsZEJlKCJtYXAuc2V0KC0wLCAxKSIsICJtYXAiKQor
c2hvdWxkQmUoIm1hcC5zZXQoMCwgMikiLCAibWFwIikKK3Nob3VsZEJlKCJtYXAuc2V0KEluZmlu
aXR5LCAzKSIsICJtYXAiKQorc2hvdWxkQmUoIm1hcC5zZXQoLUluZmluaXR5LCA0KSIsICJtYXAi
KQorc2hvdWxkQmUoIm1hcC5zZXQoTmFOLCA1KSIsICJtYXAiKQorc2hvdWxkQmUoIm1hcC5zZXQo
JzAnLCA2KSIsICJtYXAiKQorc2hvdWxkQmUoIm1hcC5zZXQoMC4xLCA3KSIsICJtYXAiKQorc2hv
dWxkQmUoIm1hcC5zaXplIiwgIjciKQorc2hvdWxkQmUoIm1hcC5nZXQoLTApIiwgIjEiKQorc2hv
dWxkQmUoIm1hcC5nZXQoMCkiLCAiMiIpCitzaG91bGRCZSgibWFwLmdldChJbmZpbml0eSkiLCAi
MyIpCitzaG91bGRCZSgibWFwLmdldCgtSW5maW5pdHkpIiwgIjQiKQorc2hvdWxkQmUoIm1hcC5n
ZXQoTmFOKSIsICI1IikKK3Nob3VsZEJlKCJtYXAuZ2V0KCcwJykiLCAiNiIpCitzaG91bGRCZSgi
bWFwLmdldCgwLjEpIiwgIjciKQorCitzaG91bGRCZVRydWUoIm1hcC5oYXMoLTApIikKK3Nob3Vs
ZEJlVHJ1ZSgibWFwLmhhcygwKSIpCitzaG91bGRCZVRydWUoIm1hcC5oYXMoSW5maW5pdHkpIikK
K3Nob3VsZEJlVHJ1ZSgibWFwLmhhcygtSW5maW5pdHkpIikKK3Nob3VsZEJlVHJ1ZSgibWFwLmhh
cyhOYU4pIikKK3Nob3VsZEJlVHJ1ZSgibWFwLmhhcygnMCcpIikKK3Nob3VsZEJlVHJ1ZSgibWFw
LmhhcygwLjEpIikKKworc2hvdWxkQmVUcnVlKCJtYXAuZGVsZXRlKC0wKSIpCitzaG91bGRCZVRy
dWUoIm1hcC5kZWxldGUoMCkiKQorc2hvdWxkQmVUcnVlKCJtYXAuZGVsZXRlKEluZmluaXR5KSIp
CitzaG91bGRCZVRydWUoIm1hcC5kZWxldGUoLUluZmluaXR5KSIpCitzaG91bGRCZVRydWUoIm1h
cC5kZWxldGUoTmFOKSIpCitzaG91bGRCZVRydWUoIm1hcC5kZWxldGUoJzAnKSIpCitzaG91bGRC
ZVRydWUoIm1hcC5kZWxldGUoMC4xKSIpCisKK3Nob3VsZEJlRmFsc2UoIm1hcC5kZWxldGUoLTAp
IikKK3Nob3VsZEJlRmFsc2UoIm1hcC5kZWxldGUoMCkiKQorc2hvdWxkQmVGYWxzZSgibWFwLmRl
bGV0ZShJbmZpbml0eSkiKQorc2hvdWxkQmVGYWxzZSgibWFwLmRlbGV0ZSgtSW5maW5pdHkpIikK
K3Nob3VsZEJlRmFsc2UoIm1hcC5kZWxldGUoTmFOKSIpCitzaG91bGRCZUZhbHNlKCJtYXAuZGVs
ZXRlKCcwJykiKQorc2hvdWxkQmVGYWxzZSgibWFwLmRlbGV0ZSgwLjEpIikKKwordmFyIHNpbXBs
ZVN0cmluZyA9ICJhYWFhYSI7Cit2YXIgb3RoZXJTdHJpbmcgPSAiIjsKK2ZvciAodmFyIGkgPSAw
OyBpIDwgNTsgaSsrKQorCW90aGVyU3RyaW5nICs9ICJhIgorbWFwLnNldChzaW1wbGVTdHJpbmcs
IHt9KTsKK3Nob3VsZEJlKCJtYXAuZ2V0KHNpbXBsZVN0cmluZykiLCAibWFwLmdldChvdGhlclN0
cmluZykiKTsKKworCisKK3Nob3VsZEJlVW5kZWZpbmVkKCJtYXAuY2xlYXIoKSIpOworc2hvdWxk
QmUoIm1hcC5zaXplIiwgIjAiKQordmFyIGNvdW50ID0gNzsKK2ZvciAodmFyIGkgPSAwOyBpIDwg
Y291bnQ7IGkrKykgeworICAgIHNob3VsZEJlKCJtYXAuc2V0KCIgKyBpICsgIiwgIiArIChpICog
MikgKyAiKSIsICJtYXAiKQorICAgIHNob3VsZEJlKCJtYXAuc2V0KCciICsgaSArICInLCAiICsg
KGkgKiAyICsgMSkgKyAiKSIsICJtYXAiKQorfQorCitzaG91bGRCZSgibWFwLnNpemUiLCAiMTQi
KQorCit2YXIgdGhpc1ZhbHVlID0gMHhmMDAKK3ZhciB0ZXN0VGhpczsKK3ZhciBjb3VudCA9IDA7
CisKK3RyeSB7CisJbWFwLmZvckVhY2goZnVuY3Rpb24oKSB7ICJ1c2Ugc3RyaWN0IjsgZGVidWco
ImZvckVhY2ggIzAiKTsgdGVzdFRoaXMgPSB0aGlzOyBzaG91bGRCZVVuZGVmaW5lZCgidGVzdFRo
aXMiKTsgdGhyb3cgY291bnQrKzsgIH0pCit9IGNhdGNoKGUpIHsKKyAgICBkZWJ1ZyhlKQorfQor
dHJ5IHsKKyAgICBtYXAuZm9yRWFjaChmdW5jdGlvbigpIHsgInVzZSBzdHJpY3QiOyBkZWJ1Zygi
Zm9yRWFjaCAjMSIpOyB0ZXN0VGhpcyA9IHRoaXM7IHNob3VsZEJlKCJ0ZXN0VGhpcyIsICJ0aGlz
VmFsdWUiKTsgdGhyb3cgY291bnQrKzsgIH0sIHRoaXNWYWx1ZSkKK30gY2F0Y2goZSkgeworICAg
IGRlYnVnKGUpCit9CisKK3Nob3VsZEJlVW5kZWZpbmVkKCdtYXAuZm9yRWFjaChkZWJ1ZyknKQor
CittYXAuZm9yRWFjaChmdW5jdGlvbiAodixrKSB7CisJZGVidWcoayArICIgOiAiICsgdHlwZW9m
IChrKSArICIgPT4gIiArIHYpCisKKwlpZiAoayA9PSAyKQorCQltYXAuZGVsZXRlKDMpCisJaWYg
KGsgPT0gIjMiKSB7CisJCW1hcC5zZXQoIjMiLCAicmVwbGFjZWQiKTsKKwkJbWFwLmRlbGV0ZSg0
KQorCQltYXAuc2V0KDQsIDExKQorCX0KK30pCisKK3ZhciBrZXlzOworbWFwLmZvckVhY2goZnVu
Y3Rpb24gKHYsaykgeworCWtleXMgPSBrZXlzIHx8IFtdOworCWtleXMucHVzaChbayx2XSk7Cit9
KQorZ2MoKTsKK2ZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgeworCXZhciBl
eHBlY3RlZEtleSA9IGtleXNbaV1bMF0KKwl2YXIgZXhwZWN0ZWRWYWx1ZSA9IGtleXNbaV1bMV0K
KwlzaG91bGRCZSgibWFwLmdldCgiK0pTT04uc3RyaW5naWZ5KGV4cGVjdGVkS2V5KSsiKSIsIEpT
T04uc3RyaW5naWZ5KGV4cGVjdGVkVmFsdWUpKTsKK30KKworbWFwID0gbmV3IE1hcDsKKwordmFy
IGNvdW50ID0gNTsKK3ZhciBrZXlzID0gW107Cit2YXIgdmFsdWVzID0gW107Citmb3IgKHZhciBp
ID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKyAgICBtYXAuc2V0KGksIGkgKiAyKQorICAgIG1hcC5z
ZXQoIiIgKyBpICwgaSAqIDIgKyAxKQorICAgIGtleXMucHVzaCgiIiArIGkpCisgICAga2V5cy5w
dXNoKCInIiArIGkgKyAiJyIpCisgICAgdmFsdWVzLnB1c2goaSAqIDIpCisgICAgdmFsdWVzLnB1
c2goaSAqIDIgKyAxKQorfQorCit2YXIgaSA9IDA7CisKK2RlYnVnKCJtYXAuQEBpdGVyYXRvcigp
IikKK2ZvciAodmFyIFtrZXksIHZhbHVlXSBvZiBtYXApIHsKKyAgICBzaG91bGRCZSgia2V5Iiwg
IiIgKyBrZXlzW2ldKQorICAgIHNob3VsZEJlKCJ2YWx1ZSIsICIiICsgdmFsdWVzW2ldKQorICAg
IGkrKzsKK30KKworZGVidWcoIm1hcC5lbnRyaWVzKCkiKQorc2hvdWxkQmUoImkiLCAiIiArIGNv
dW50ICogMikKK3ZhciBpID0gMDsKK2ZvciAodmFyIFtrZXksIHZhbHVlXSBvZiBtYXAuZW50cmll
cygpKSB7CisgICAgc2hvdWxkQmUoImtleSIsICIiICsga2V5c1tpXSkKKyAgICBzaG91bGRCZSgi
dmFsdWUiLCAiIiArIHZhbHVlc1tpXSkKKyAgICBpKys7Cit9CitzaG91bGRCZSgiaSIsICIiICsg
Y291bnQgKiAyKQorCitkZWJ1ZygibWFwLmtleXMoKSIpCit2YXIgaSA9IDA7Citmb3IgKHZhciBr
ZXkgb2YgbWFwLmtleXMoKSkgeworICAgIHNob3VsZEJlKCJrZXkiLCAiIiArIGtleXNbaV0pCisg
ICAgaSsrOworfQorc2hvdWxkQmUoImkiLCAiIiArIGNvdW50ICogMikKKwordmFyIGkgPSAwOwor
ZGVidWcoIm1hcC52YWx1ZXMoKSIpCitmb3IgKHZhciB2YWx1ZSBvZiBtYXAudmFsdWVzKCkpIHsK
KyAgICBzaG91bGRCZSgidmFsdWUiLCAiIiArIHZhbHVlc1tpXSkKKyAgICBpKys7Cit9CitzaG91
bGRCZSgiaSIsICIiICsgY291bnQgKiAyKQorCitkZWJ1ZygiTWFwIG11dGF0aW9uIHdpdGggbGl2
ZSBpdGVyYXRvciBhbmQgR0MiKQorbWFwID0gbmV3IE1hcDsKK21hcC5zZXQoMCwgMCkKK21hcC5z
ZXQoMSwgMikKK21hcC5zZXQoMiwgNCkKK21hcC5zZXQoMywgNikKK21hcC5zZXQoNCwgOCkKK21h
cC5zZXQoNSwgMTApCittYXAuc2V0KDYsIDEyKQorbWFwLnNldCg3LCAxNCkKK21hcC5zZXQoOSwg
MTQpCittYXAuc2V0KDE0LCAic2hvdWxkIGJlIGRlbGV0ZWQiKQorCit2YXIga2V5cyA9IFsxLDMs
NCw1LDddCit2YXIgdmFsdWVzID0gWzIsNiw4LDEwLDE0XQordmFyIGVudHJpZXMgPSBtYXAuZW50
cmllcygpOworZ2MoKTsKK21hcC5kZWxldGUoMCkKK2djKCkKK3ZhciBpID0gMDsKK2ZvciAodmFy
IFtrZXksIHZhbHVlXSBvZiBlbnRyaWVzKSB7CisgICAgc2hvdWxkQmUoImtleSIsICIiICsga2V5
c1tpXSkKKyAgICBzaG91bGRCZSgidmFsdWUiLCAiIiArIHZhbHVlc1tpXSkKKyAgICBpZiAoa2V5
ID09IDcpCisgICAgICAgIG1hcC5kZWxldGUoOSkKKyAgICBtYXAuZGVsZXRlKDEpCisgICAgbWFw
LmRlbGV0ZShrZXkgKiAyKQorICAgIGdjKCkKKyAgICBpKysKK30KK3Nob3VsZEJlKCJpIiwgIjUi
KQorc2hvdWxkQmUoIm1hcC5zaXplIiwgIjQiKTsKKworZGVidWcoInRlc3QgZm9yRWFjaCIpCisK
K21hcCA9IG5ldyBNYXA7CittYXAuc2V0KDAsIDApCittYXAuc2V0KDEsIDIpCittYXAuc2V0KDIs
IDQpCittYXAuc2V0KDMsIDYpCittYXAuc2V0KDQsIDgpCittYXAuc2V0KDUsIDEwKQorbWFwLnNl
dCg2LCAxMikKK21hcC5zZXQoNywgMTQpCittYXAuc2V0KDksIDE0KQorbWFwLnNldCgxNCwgInNo
b3VsZCBiZSBkZWxldGVkIikKKwordmFyIGtleXMgPSBbMSwzLDQsNSw3XQordmFyIHZhbHVlcyA9
IFsyLDYsOCwxMCwxNF0KK21hcC5kZWxldGUoMCkKK3ZhciBpID0gMDsKK21hcC5mb3JFYWNoKGZ1
bmN0aW9uICh2LCBrKSB7CisgICAga2V5ID0gazsKKyAgICB2YWx1ZSA9IHY7CisgICAgc2hvdWxk
QmUoImtleSIsICIiICsga2V5c1tpXSkKKyAgICBzaG91bGRCZSgidmFsdWUiLCAiIiArIHZhbHVl
c1tpXSkKKyAgICBpZiAoa2V5ID09IDcpCisgICAgICAgIG1hcC5kZWxldGUoOSkKKyAgICBtYXAu
ZGVsZXRlKDEpCisgICAgbWFwLmRlbGV0ZShrZXkgKiAyKQorICAgIGdjKCkKKyAgICBpKysKK30p
Oworc2hvdWxkQmUoImkiLCAiNSIpCitzaG91bGRCZSgibWFwLnNpemUiLCAiNCIpOworCg==
</data>
<flag name="review"
          id="239486"
          type_id="1"
          status="+"
          setter="kling"
    />
    <flag name="commit-queue"
          id="239487"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>