<?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>124423</bug_id>
          
          <creation_ts>2013-11-15 11:15:34 -0800</creation_ts>
          <short_desc>REGRESSION(r159337): broke a bunch of fast/regions tests on EFL/GTK (Requested by philn on #webkit).</short_desc>
          <delta_ts>2013-11-21 02:18:10 -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>
          
          <blocked>118665</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>hyatt</cc>
    
    <cc>stavila</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>951130</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-15 11:15:34 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/159337 broke the build:
broke a bunch of fast/regions tests on EFL/GTK (Requested by philn on #webkit).

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>951131</commentid>
    <comment_count>1</comment_count>
      <attachid>217067</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-15 11:15:58 -0800</bug_when>
    <thetext>Created attachment 217067
ROLLOUT of r159337

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>951133</commentid>
    <comment_count>2</comment_count>
      <attachid>217067</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-15 11:19:09 -0800</bug_when>
    <thetext>Comment on attachment 217067
ROLLOUT of r159337

Clearing flags on attachment: 217067

Committed r159347: &lt;http://trac.webkit.org/changeset/159347&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>951134</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-15 11:19:11 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952059</commentid>
    <comment_count>4</comment_count>
      <attachid>217296</attachid>
    <who name="Radu Stavila">stavila</who>
    <bug_when>2013-11-19 06:56:59 -0800</bug_when>
    <thetext>Created attachment 217296
WIP, the simplest patch that breaks GTK/EFL</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>953004</commentid>
    <comment_count>5</comment_count>
    <who name="Radu Stavila">stavila</who>
    <bug_when>2013-11-21 02:18:10 -0800</bug_when>
    <thetext>The patch was fixed and re-committed in https://bugs.webkit.org/show_bug.cgi?id=118665</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217067</attachid>
            <date>2013-11-15 11:15:58 -0800</date>
            <delta_ts>2013-11-15 11:19:09 -0800</delta_ts>
            <desc>ROLLOUT of r159337</desc>
            <filename>bug-124423-20131115111558.patch</filename>
            <type>text/plain</type>
            <size>267185</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU5MzQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjA5ODFkMDk0NzA5MTcw
NGUxNDBkMWQ3ZGM2NzVjYzFiYTA2YzVkMi4uNTFiOTgxOWI0Y2IyNzI0OWRiNGZlMTk3MjVjZDJl
NDg0NzcxYTc2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk5IEBACisyMDEzLTExLTE1ICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMTU5MzM3LgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2No
YW5nZXNldC8xNTkzMzcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEyNDQyMworCisgICAgICAgIGJyb2tlIGEgYnVuY2ggb2YgZmFzdC9yZWdpb25zIHRl
c3RzIG9uIEVGTC9HVEsgKFJlcXVlc3RlZCBieQorICAgICAgICBwaGlsbiBvbiAjd2Via2l0KS4K
KworICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OklubGluZUZsb3dCb3g6OnNldExheW91dE92ZXJmbG93KToKKyAgICAgICAgKFdlYkNvcmU6
OklubGluZUZsb3dCb3g6OnNldFZpc3VhbE92ZXJmbG93KToKKyAgICAgICAgKiByZW5kZXJpbmcv
SW5saW5lRmxvd0JveC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6YWRkT3ZlcmZsb3dGcm9tQ2hpbGRyZW4pOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckJsb2NrOjpwYWludE9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9j
azo6ZXN0aW1hdGVSZWdpb25SYW5nZUZvckJveENoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckJsb2NrOjp1cGRhdGVSZWdpb25SYW5nZUZvckJveENoaWxkKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2Nr
Rmxvdzo6aGFzTmV4dFBhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93Ojpy
ZWxheW91dEZvclBhZ2luYXRpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9ja0xp
bmVMYXlvdXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93Ojpwb3NpdGlv
bk5ld0Zsb2F0T25MaW5lKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6Ym9yZGVyQm94UmVjdEluUmVnaW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJveDo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJveDo6YWRkTGF5b3V0T3ZlcmZsb3cpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyQm94OjphZGRWaXN1YWxPdmVyZmxvdyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJCb3g6OmlzVW5zcGxpdHRhYmxlRm9yUGFnaW5hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCb3g6Om92ZXJmbG93UmVjdEZvclBhaW50UmVqZWN0aW9uKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyQm94Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2Jq
ZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEZp
bGxMYXllckV4dGVuZGVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmpl
Y3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94UmVnaW9uSW5mby5oOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyQm94UmVnaW9uSW5mbzo6Y3JlYXRlT3ZlcmZsb3cpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckZsb3dUaHJlYWQ6OnBhaW50Rmxvd1RocmVhZFBvcnRpb25JblJlZ2lvbik6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJGbG93VGhyZWFkOjpoaXRUZXN0Rmxvd1RocmVhZFBvcnRpb25JblJl
Z2lvbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbG93VGhyZWFkOjpjaGVja1JlZ2lvbnNX
aXRoU3R5bGluZyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbG93VGhyZWFkOjptYXBGcm9t
TG9jYWxUb0Zsb3dUaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxvd1RocmVhZDo6
bWFwRnJvbUZsb3dUaHJlYWRUb0xvY2FsKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsb3dU
aHJlYWQ6OmFkZFJlZ2lvbnNPdmVyZmxvd0Zyb21DaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpD
dXJyZW50UmVuZGVyRmxvd1RocmVhZE1haW50YWluZXI6OkN1cnJlbnRSZW5kZXJGbG93VGhyZWFk
TWFpbnRhaW5lcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXI6OnVwZGF0ZUxheWVyUG9zaXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OmV4cGFu
ZENsaXBSZWN0Rm9yRGVzY2VuZGFudHNBbmRSZWZsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxheWVyOjpwYWludExheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
OjpwYWludExheWVyQ29udGVudHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVw
ZGF0ZVBhaW50aW5nSW5mb0ZvckZyYWdtZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllcjo6cGFpbnRGb3JlZ3JvdW5kRm9yRnJhZ21lbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxheWVyOjpoaXRUZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpoaXRU
ZXN0TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmNhbGN1bGF0ZUNsaXBS
ZWN0cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6cGFyZW50Q2xpcFJlY3RzKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjYWxjdWxhdGVSZWN0cyk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllcjo6aW50ZXJzZWN0c0RhbWFnZVJlY3QpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnJlcGFpbnRJbmNsdWRpbmdEZXNjZW5kYW50cyk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBv
c2l0b3I6OmNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cyk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckxpc3RJdGVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RJdGVt
OjphZGRPdmVyZmxvd0Zyb21DaGlsZHJlbik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck11
bHRpQ29sdW1uU2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck11bHRpQ29sdW1uU2V0
OjpmbG93VGhyZWFkUG9ydGlvbk92ZXJmbG93UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJNdWx0aUNvbHVtblNldDo6cmVwYWludEZsb3dUaHJlYWRDb250ZW50KToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyTmFtZWRGbG93RnJhZ21lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTmFtZWRG
bG93RnJhZ21lbnQ6OmNyZWF0ZVN0eWxlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTmFt
ZWRGbG93RnJhZ21lbnQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT3ZlcmZsb3cuaDoK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclJlZ2lvbjo6Zmxvd1RocmVhZFBvcnRpb25PdmVyZmxvd1JlY3QpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyUmVnaW9uOjpvdmVyZmxvd1JlY3RGb3JGbG93VGhyZWFkUG9ydGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpzaG91bGRQYWludFJlZ2lvbkNvbnRlbnRzSW5QaGFzZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJSZWdpb246OnBhaW50T2JqZWN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclJlZ2lvbjo6aGl0VGVzdENvbnRlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclJlZ2lvbjo6Y29tcHV0ZU92ZXJmbG93RnJvbUZsb3dUaHJlYWQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyUmVnaW9uOjpyZXBhaW50Rmxvd1RocmVhZENvbnRlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyUmVnaW9uOjpyZXBhaW50Rmxvd1RocmVhZENvbnRlbnRSZWN0YW5n
bGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVnaW9uOjppbnNlcnRlZEludG9UcmVlKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlZ2lvbjo6ZW5zdXJlT3ZlcmZsb3dGb3JCb3gpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVnaW9uOjpyZWN0Rmxvd1BvcnRpb25Gb3JCb3gpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVnaW9uOjphZGRMYXlvdXRPdmVyZmxvd0ZvckJveCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJSZWdpb246OmFkZFZpc3VhbE92ZXJmbG93Rm9yQm94
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlZ2lvbjo6bGF5b3V0T3ZlcmZsb3dSZWN0Rm9y
Qm94KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlZ2lvbjo6dmlzdWFsT3ZlcmZsb3dSZWN0
Rm9yQm94KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlZ2lvbjo6dmlzdWFsT3ZlcmZsb3dS
ZWN0Rm9yQm94Rm9yUHJvcGFnYXRpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJSZWdp
b24uaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OnNob3VsZFBhaW50KToKKyAgICAgICAgKiByZW5kZXJp
bmcvUm9vdElubGluZUJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSb290SW5saW5lQm94Ojpw
YWludCk6CisKIDIwMTMtMTEtMTUgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgog
CiAgICAgICAgIEhvdmVyaW5nIG92ZXIgdGV4dCB1c2luZyBzaW1wbGUgbGluZSBwYXRoIHNob3Vs
ZCBub3QgY2F1c2Ugc3dpdGNoIHRvIGxpbmUgYm94ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9JbmxpbmVGbG93Qm94LmNwcAppbmRleCBkM2VlZmM4ODYwZTUwOGIwNTM2YzkwNWQxMDVhN2Ey
MjY5Yzg3Mzk3Li4wY2MwMGI0NGNiYzJmMGJiYzFkZGZlOTRmMjUyYTljNjA0M2JkMTM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCkBAIC05NzUsNyArOTc1
LDcgQEAgdm9pZCBJbmxpbmVGbG93Qm94OjpzZXRMYXlvdXRPdmVyZmxvdyhjb25zdCBMYXlvdXRS
ZWN0JiByZWN0LCBMYXlvdXRVbml0IGxpbmVUb3AKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYg
KCFtX292ZXJmbG93KQotICAgICAgICBtX292ZXJmbG93ID0gYWRvcHRSZWYobmV3IFJlbmRlck92
ZXJmbG93KGZyYW1lQm94LCBmcmFtZUJveCkpOworICAgICAgICBtX292ZXJmbG93ID0gYWRvcHRQ
dHIobmV3IFJlbmRlck92ZXJmbG93KGZyYW1lQm94LCBmcmFtZUJveCkpOwogICAgIAogICAgIG1f
b3ZlcmZsb3ctPnNldExheW91dE92ZXJmbG93KHJlY3QpOwogfQpAQCAtOTg3LDcgKzk4Nyw3IEBA
IHZvaWQgSW5saW5lRmxvd0JveDo6c2V0VmlzdWFsT3ZlcmZsb3coY29uc3QgTGF5b3V0UmVjdCYg
cmVjdCwgTGF5b3V0VW5pdCBsaW5lVG9wCiAgICAgICAgIHJldHVybjsKICAgICAgICAgCiAgICAg
aWYgKCFtX292ZXJmbG93KQotICAgICAgICBtX292ZXJmbG93ID0gYWRvcHRSZWYobmV3IFJlbmRl
ck92ZXJmbG93KGZyYW1lQm94LCBmcmFtZUJveCkpOworICAgICAgICBtX292ZXJmbG93ID0gYWRv
cHRQdHIobmV3IFJlbmRlck92ZXJmbG93KGZyYW1lQm94LCBmcmFtZUJveCkpOwogICAgIAogICAg
IG1fb3ZlcmZsb3ctPnNldFZpc3VhbE92ZXJmbG93KHJlY3QpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9JbmxpbmVGbG93Qm94LmgKaW5kZXggYWE0YTgwZTliMzdiZWYxZWU0NmVkMDNmYzAz
NDdkZmY2YTcxNjY1Yy4uNzAxOGJhOGU0ZGYwNDE1YTZiYWFjOWFjMGEzODkyNDQxYThkY2ZlYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5oCkBAIC0zMDIsNyArMzAy
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNvbnN0cmFpblRvTGluZVRvcEFuZEJvdHRvbUlmTmVl
ZGVkKExheW91dFJlY3QmKSBjb25zdDsKIAogcHJvdGVjdGVkOgotICAgIFJlZlB0cjxSZW5kZXJP
dmVyZmxvdz4gbV9vdmVyZmxvdzsKKyAgICBPd25QdHI8UmVuZGVyT3ZlcmZsb3c+IG1fb3ZlcmZs
b3c7CiAKICAgICBJbmxpbmVCb3gqIG1fZmlyc3RDaGlsZDsKICAgICBJbmxpbmVCb3gqIG1fbGFz
dENoaWxkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXggYTBh
OGQ1MzNkNzQ4ZTUzNTQ5NDgyOTYwNWIyYjRhMTFiMDZjYWY2MS4uMDY1NmM1OTJjZGZjODJlY2Ew
ZTU4NjEzZGMyNzI4MWVjMmJlNzMwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2suY3BwCkBAIC0xNjEyLDEyICsxNjEyLDYgQEAgdm9pZCBSZW5kZXJCbG9jazo6YWRkT3Zl
cmZsb3dGcm9tQ2hpbGRyZW4oKQogICAgICAgICAgICAgYWRkT3ZlcmZsb3dGcm9tSW5saW5lQ2hp
bGRyZW4oKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgYWRkT3ZlcmZsb3dGcm9tQmxvY2tD
aGlsZHJlbigpOwotICAgICAgICAKLSAgICAgICAgLy8gSWYgdGhpcyBibG9jayBpcyBmbG93ZWQg
aW5zaWRlIGEgZmxvdyB0aHJlYWQsIG1ha2Ugc3VyZSBpdHMgb3ZlcmZsb3cgaXMgcHJvcGFnYXRl
ZCB0byB0aGUgY29udGFpbmluZyByZWdpb25zLgotICAgICAgICBpZiAobV9vdmVyZmxvdykgewot
ICAgICAgICAgICAgaWYgKFJlbmRlckZsb3dUaHJlYWQqIGNvbnRhaW5pbmdGbG93VGhyZWFkID0g
Zmxvd1RocmVhZENvbnRhaW5pbmdCbG9jaygpKQotICAgICAgICAgICAgICAgIGNvbnRhaW5pbmdG
bG93VGhyZWFkLT5hZGRSZWdpb25zVmlzdWFsT3ZlcmZsb3codGhpcywgbV9vdmVyZmxvdy0+dmlz
dWFsT3ZlcmZsb3dSZWN0KCkpOwotICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAgICAgQ29s
dW1uSW5mbyogY29sSW5mbyA9IGNvbHVtbkluZm8oKTsKICAgICAgICAgaWYgKGNvbHVtbkNvdW50
KGNvbEluZm8pKSB7CkBAIC0yMTgzLDE1ICsyMTc3LDExIEBAIHZvaWQgUmVuZGVyQmxvY2s6OnBh
aW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQp
CiAgICAgCiAgICAgUGFpbnRQaGFzZSBwaGFzZSA9IHBhaW50SW5mby5waGFzZTsKIAotICAgIC8v
IENoZWNrIG91ciByZWdpb24gcmFuZ2UgdG8gbWFrZSBzdXJlIHdlIG5lZWQgdG8gYmUgcGFpbnRp
bmcgaW4gdGhpcyByZWdpb24uCi0gICAgaWYgKHBhaW50SW5mby5yZW5kZXJSZWdpb24gJiYgIXBh
aW50SW5mby5yZW5kZXJSZWdpb24tPmZsb3dUaHJlYWQoKS0+b2JqZWN0U2hvdWxkUGFpbnRJbkZs
b3dSZWdpb24odGhpcywgcGFpbnRJbmZvLnJlbmRlclJlZ2lvbikpCi0gICAgICAgIHJldHVybjsK
LQogICAgIC8vIENoZWNrIGlmIHdlIG5lZWQgdG8gZG8gYW55dGhpbmcgYXQgYWxsLgogICAgIC8v
IEZJWE1FOiBDb3VsZCBlbGltaW5hdGUgdGhlIGlzUm9vdCgpIGNoZWNrIGlmIHdlIGZpeCBiYWNr
Z3JvdW5kIHBhaW50aW5nIHNvIHRoYXQgdGhlIFJlbmRlclZpZXcKICAgICAvLyBwYWludHMgdGhl
IHJvb3QncyBiYWNrZ3JvdW5kLgogICAgIGlmICghaXNSb290KCkpIHsKLSAgICAgICAgTGF5b3V0
UmVjdCBvdmVyZmxvd0JveCA9IG92ZXJmbG93UmVjdEZvclBhaW50UmVqZWN0aW9uKHBhaW50SW5m
by5yZW5kZXJSZWdpb24pOworICAgICAgICBMYXlvdXRSZWN0IG92ZXJmbG93Qm94ID0gb3ZlcmZs
b3dSZWN0Rm9yUGFpbnRSZWplY3Rpb24oKTsKICAgICAgICAgZmxpcEZvcldyaXRpbmdNb2RlKG92
ZXJmbG93Qm94KTsKICAgICAgICAgb3ZlcmZsb3dCb3guaW5mbGF0ZShtYXhpbWFsT3V0bGluZVNp
emUocGFpbnRJbmZvLnBoYXNlKSk7CiAgICAgICAgIG92ZXJmbG93Qm94Lm1vdmVCeShhZGp1c3Rl
ZFBhaW50T2Zmc2V0KTsKQEAgLTI0ODAsMjYgKzI0NzAsOCBAQCB2b2lkIFJlbmRlckJsb2NrOjpw
YWludE9iamVjdChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50
T2ZmcwogCiAgICAgLy8gMS4gcGFpbnQgYmFja2dyb3VuZCwgYm9yZGVycyBldGMKICAgICBpZiAo
KHBhaW50UGhhc2UgPT0gUGFpbnRQaGFzZUJsb2NrQmFja2dyb3VuZCB8fCBwYWludFBoYXNlID09
IFBhaW50UGhhc2VDaGlsZEJsb2NrQmFja2dyb3VuZCkgJiYgc3R5bGUoKS52aXNpYmlsaXR5KCkg
PT0gVklTSUJMRSkgewotICAgICAgICBpZiAoaGFzQm94RGVjb3JhdGlvbnMoKSkgewotICAgICAg
ICAgICAgYm9vbCBkaWRDbGlwVG9SZWdpb24gPSBmYWxzZTsKLSAgICAgICAgICAgIAotICAgICAg
ICAgICAgaWYgKHBhaW50SW5mby5wYWludENvbnRhaW5lciAmJiBwYWludEluZm8ucmVuZGVyUmVn
aW9uICYmIHBhaW50SW5mby5wYWludENvbnRhaW5lci0+aXNSZW5kZXJGbG93VGhyZWFkKCkpIHsK
LSAgICAgICAgICAgICAgICAvLyBJZiB0aGlzIGJveCBnb2VzIGJleW9uZCB0aGUgY3VycmVudCBy
ZWdpb24sIHRoZW4gbWFrZSBzdXJlIG5vdCB0byBvdmVyZmxvdyB0aGUgcmVnaW9uLgotICAgICAg
ICAgICAgICAgIC8vIFRoaXMgKG92ZXJmbG93aW5nIHJlZ2lvbiBYIGFsdG91Z2ggYWxzbyBmcmFn
bWVudGVkIHRvIHJlZ2lvbiBYKzEpIGNvdWxkIGhhcHBlbiB3aGVuIG9uZSBvZiB0aGlzIGJveCdz
IGNoaWxkcmVuCi0gICAgICAgICAgICAgICAgLy8gb3ZlcmZsb3dzIHJlZ2lvbiBYIGFuZCBpcyBh
biB1bnNwbGl0dGFibGUgZWxlbWVudCAobGlrZSBhbiBpbWFnZSkuCi0gICAgICAgICAgICAgICAg
Ly8gVGhlIHNhbWUgYXBwbGllcyBmb3IgYSBib3ggb3ZlcmZsb3dpbmcgdGhlIHRvcCBvZiByZWdp
b24gWCB3aGVuIHRoYXQgYm94IGlzIGFsc28gZnJhZ21lbnRlZCBpbiByZWdpb24gWC0xLgotCi0g
ICAgICAgICAgICAgICAgcGFpbnRJbmZvLmNvbnRleHQtPnNhdmUoKTsKLSAgICAgICAgICAgICAg
ICBkaWRDbGlwVG9SZWdpb24gPSB0cnVlOwotCi0gICAgICAgICAgICAgICAgcGFpbnRJbmZvLmNv
bnRleHQtPmNsaXAodG9SZW5kZXJGbG93VGhyZWFkKHBhaW50SW5mby5wYWludENvbnRhaW5lcikt
PmRlY29yYXRpb25zQ2xpcFJlY3RGb3JCb3hJblJlZ2lvbigqdGhpcywgKnBhaW50SW5mby5yZW5k
ZXJSZWdpb24pKTsKLSAgICAgICAgICAgIH0KLQorICAgICAgICBpZiAoaGFzQm94RGVjb3JhdGlv
bnMoKSkKICAgICAgICAgICAgIHBhaW50Qm94RGVjb3JhdGlvbnMocGFpbnRJbmZvLCBwYWludE9m
ZnNldCk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGlmIChkaWRDbGlwVG9SZWdpb24pCi0g
ICAgICAgICAgICAgICAgcGFpbnRJbmZvLmNvbnRleHQtPnJlc3RvcmUoKTsKLSAgICAgICAgfQog
ICAgICAgICBpZiAoaGFzQ29sdW1ucygpICYmICFwYWludEluZm8ucGFpbnRSb290QmFja2dyb3Vu
ZE9ubHkoKSkKICAgICAgICAgICAgIHBhaW50Q29sdW1uUnVsZXMocGFpbnRJbmZvLCBwYWludE9m
ZnNldCk7CiAgICAgfQpAQCAtNTIwNiw2ICs1MTc4LDcgQEAgUmVuZGVyQm94KiBSZW5kZXJCbG9j
azo6Y3JlYXRlQW5vbnltb3VzQm94V2l0aFNhbWVUeXBlQXMoY29uc3QgUmVuZGVyT2JqZWN0KiBw
YXIKICAgICByZXR1cm4gY3JlYXRlQW5vbnltb3VzV2l0aFBhcmVudFJlbmRlcmVyQW5kRGlzcGxh
eShwYXJlbnQsIHN0eWxlKCkuZGlzcGxheSgpKTsKIH0KIAorCiBDb2x1bW5JbmZvOjpQYWdpbmF0
aW9uVW5pdCBSZW5kZXJCbG9jazo6cGFnaW5hdGlvblVuaXQoKSBjb25zdAogewogICAgIHJldHVy
biBDb2x1bW5JbmZvOjpDb2x1bW47CkBAIC01MjYzLDcgKzUyMzYsNyBAQCB2b2lkIFJlbmRlckJs
b2NrOjpjb21wdXRlUmVnaW9uUmFuZ2VGb3JCb3hDaGlsZChjb25zdCBSZW5kZXJCb3gmIGJveCkg
Y29uc3QKIHZvaWQgUmVuZGVyQmxvY2s6OmVzdGltYXRlUmVnaW9uUmFuZ2VGb3JCb3hDaGlsZChj
b25zdCBSZW5kZXJCb3gmIGJveCkgY29uc3QKIHsKICAgICBSZW5kZXJGbG93VGhyZWFkKiBmbG93
VGhyZWFkID0gZmxvd1RocmVhZENvbnRhaW5pbmdCbG9jaygpOwotICAgIGlmICghZmxvd1RocmVh
ZCB8fCAhZmxvd1RocmVhZC0+aGFzUmVnaW9ucygpIHx8ICFib3guY2FuSGF2ZU91dHNpZGVSZWdp
b25SYW5nZSgpKQorICAgIGlmICghZmxvd1RocmVhZCB8fCAhZmxvd1RocmVhZC0+aGFzUmVnaW9u
cygpKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoYm94LmlzVW5zcGxpdHRhYmxlRm9yUGFn
aW5hdGlvbigpKSB7CkBAIC01Mjg0LDcgKzUyNTcsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjplc3Rp
bWF0ZVJlZ2lvblJhbmdlRm9yQm94Q2hpbGQoY29uc3QgUmVuZGVyQm94JiBib3gpIGNvbnN0CiBi
b29sIFJlbmRlckJsb2NrOjp1cGRhdGVSZWdpb25SYW5nZUZvckJveENoaWxkKGNvbnN0IFJlbmRl
ckJveCYgYm94KSBjb25zdAogewogICAgIFJlbmRlckZsb3dUaHJlYWQqIGZsb3dUaHJlYWQgPSBm
bG93VGhyZWFkQ29udGFpbmluZ0Jsb2NrKCk7Ci0gICAgaWYgKCFmbG93VGhyZWFkIHx8ICFmbG93
VGhyZWFkLT5oYXNSZWdpb25zKCkgfHwgIWJveC5jYW5IYXZlT3V0c2lkZVJlZ2lvblJhbmdlKCkp
CisgICAgaWYgKCFmbG93VGhyZWFkIHx8ICFmbG93VGhyZWFkLT5oYXNSZWdpb25zKCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIFJlbmRlclJlZ2lvbiogc3RhcnRSZWdpb24gPSAwOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAppbmRleCA3ZjM5
ZTliOTY3ZjI2MjdhYTM3ZjUzM2U0MDljMTMxNWNmYjVjZGVhLi5mMWYxOWQ4MjhjOThjNDdhYWVh
MDg1YjBjOGVlNWVhNzM2OTFkYmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2tGbG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2tGbG93LmNwcApAQCAtMTU3MCwxOSArMTU3MCwxMiBAQCBib29sIFJlbmRlckJsb2Nr
Rmxvdzo6aGFzTmV4dFBhZ2UoTGF5b3V0VW5pdCBsb2dpY2FsT2Zmc2V0LCBQYWdlQm91bmRhcnlS
dWxlIHBhZwogCiAgICAgLy8gU2VlIGlmIHdlJ3JlIGluIHRoZSBsYXN0IHJlZ2lvbi4KICAgICBM
YXlvdXRVbml0IHBhZ2VPZmZzZXQgPSBvZmZzZXRGcm9tTG9naWNhbFRvcE9mRmlyc3RQYWdlKCkg
KyBsb2dpY2FsT2Zmc2V0OwotICAgIFJlbmRlclJlZ2lvbiogcmVnaW9uID0gZmxvd1RocmVhZC0+
cmVnaW9uQXRCbG9ja09mZnNldCh0aGlzLCBwYWdlT2Zmc2V0LCB0cnVlKTsKKyAgICBSZW5kZXJS
ZWdpb24qIHJlZ2lvbiA9IGZsb3dUaHJlYWQtPnJlZ2lvbkF0QmxvY2tPZmZzZXQodGhpcywgcGFn
ZU9mZnNldCwgdGhpcyk7CiAgICAgaWYgKCFyZWdpb24pCiAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICBpZiAocmVnaW9uLT5pc0xhc3RSZWdpb24oKSkKICAgICAgICAgcmV0dXJuIHJlZ2lvbi0+
aXNSZW5kZXJSZWdpb25TZXQoKSB8fCByZWdpb24tPnN0eWxlKCkucmVnaW9uRnJhZ21lbnQoKSA9
PSBCcmVha1JlZ2lvbkZyYWdtZW50CiAgICAgICAgICAgICB8fCAocGFnZUJvdW5kYXJ5UnVsZSA9
PSBJbmNsdWRlUGFnZUJvdW5kYXJ5ICYmIHBhZ2VPZmZzZXQgPT0gcmVnaW9uLT5sb2dpY2FsVG9w
Rm9yRmxvd1RocmVhZENvbnRlbnQoKSk7Ci0KLSAgICBSZW5kZXJSZWdpb24qIHN0YXJ0UmVnaW9u
ID0gMDsKLSAgICBSZW5kZXJSZWdpb24qIGVuZFJlZ2lvbiA9IDA7Ci0gICAgZmxvd1RocmVhZC0+
Z2V0UmVnaW9uUmFuZ2VGb3JCb3godGhpcywgc3RhcnRSZWdpb24sIGVuZFJlZ2lvbik7Ci0KLSAg
ICBpZiAocmVnaW9uID09IGVuZFJlZ2lvbikKLSAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHJl
dHVybiB0cnVlOwogfQogCkBAIC0zMDk4LDcgKzMwOTEsNyBAQCBib29sIFJlbmRlckJsb2NrRmxv
dzo6cmVsYXlvdXRGb3JQYWdpbmF0aW9uKGJvb2wgaGFzU3BlY2lmaWVkUGFnZUxvZ2ljYWxIZWln
aHQsCiAgICAgaWYgKCFoYXNDb2x1bW5zKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAg
IFJlZlB0cjxSZW5kZXJPdmVyZmxvdz4gc2F2ZWRPdmVyZmxvdyA9IG1fb3ZlcmZsb3cucmVsZWFz
ZSgpOworICAgIE93blB0cjxSZW5kZXJPdmVyZmxvdz4gc2F2ZWRPdmVyZmxvdyA9IG1fb3ZlcmZs
b3cucmVsZWFzZSgpOwogICAgIGlmIChjaGlsZHJlbklubGluZSgpKQogICAgICAgICBhZGRPdmVy
Zmxvd0Zyb21JbmxpbmVDaGlsZHJlbigpOwogICAgIGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKaW5kZXggOGZjN2FlNGEyN2Nl
Zjc1NmZjZjYxOGNmZTRjYjMxY2E5ZDA0MTNhNi4uZTU3YmM4NTZiYzE0YTYwMTcxZjFkZGQyY2M3
YjA5ZjZlOTUzOWUxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrTGluZUxheW91dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrTGluZUxheW91dC5jcHAKQEAgLTM2NjAsMTMgKzM2NjAsOSBAQCBib29sIFJlbmRlckJs
b2NrRmxvdzo6cG9zaXRpb25OZXdGbG9hdE9uTGluZShGbG9hdGluZ09iamVjdCogbmV3RmxvYXQs
IEZsb2F0aW5nTwogICAgICAgICAgICAgZmxvYXRpbmdPYmplY3QtPnNldFBhZ2luYXRpb25TdHJ1
dChwYWdpbmF0aW9uU3RydXQgKyBmbG9hdGluZ09iamVjdC0+cGFnaW5hdGlvblN0cnV0KCkpOwog
ICAgICAgICAgICAgUmVuZGVyQm94JiBmbG9hdEJveCA9IGZsb2F0aW5nT2JqZWN0LT5yZW5kZXJl
cigpOwogICAgICAgICAgICAgc2V0TG9naWNhbFRvcEZvckNoaWxkKGZsb2F0Qm94LCBsb2dpY2Fs
VG9wRm9yQ2hpbGQoZmxvYXRCb3gpICsgbWFyZ2luQmVmb3JlRm9yQ2hpbGQoZmxvYXRCb3gpICsg
cGFnaW5hdGlvblN0cnV0KTsKLQotICAgICAgICAgICAgaWYgKHVwZGF0ZVJlZ2lvblJhbmdlRm9y
Qm94Q2hpbGQoZmxvYXRpbmdPYmplY3QtPnJlbmRlcmVyKCkpKQotICAgICAgICAgICAgICAgIGZs
b2F0Qm94LnNldE5lZWRzTGF5b3V0KE1hcmtPbmx5VGhpcyk7Ci0gICAgICAgICAgICBlbHNlIGlm
IChmbG9hdEJveC5pc1JlbmRlckJsb2NrKCkpCisgICAgICAgICAgICBpZiAoZmxvYXRCb3guaXNS
ZW5kZXJCbG9jaygpKQogICAgICAgICAgICAgICAgIHRvUmVuZGVyQmxvY2soZmxvYXRCb3gpLnNl
dENoaWxkTmVlZHNMYXlvdXQoTWFya09ubHlUaGlzKTsKICAgICAgICAgICAgIGZsb2F0Qm94Lmxh
eW91dElmTmVlZGVkKCk7Ci0KICAgICAgICAgICAgIC8vIFNhdmUgdGhlIG9sZCBsb2dpY2FsIHRv
cCBiZWZvcmUgY2FsbGluZyByZW1vdmVQbGFjZWRPYmplY3Qgd2hpY2ggd2lsbCBzZXQKICAgICAg
ICAgICAgIC8vIGlzUGxhY2VkIHRvIGZhbHNlLiBPdGhlcndpc2UgaXQgd2lsbCB0cmlnZ2VyIGFu
IGFzc2VydCBpbiBsb2dpY2FsVG9wRm9yRmxvYXQuCiAgICAgICAgICAgICBMYXlvdXRVbml0IG9s
ZExvZ2ljYWxUb3AgPSBsb2dpY2FsVG9wRm9yRmxvYXQoZmxvYXRpbmdPYmplY3QpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAppbmRleCBjYTRjZDk2OGMyZGUzMTE1NmQyZTg5
YjY2M2I4ODk1MmJhYmUwOGVkLi43ZDRiY2JhOWJmMTA3OTAzZDcxYjYxNDEzZDRkZmQ2ZDI1MGI4
ZDRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtMTY0LDEyICsx
NjQsMTcgQEAgTGF5b3V0UmVjdCBSZW5kZXJCb3g6OmJvcmRlckJveFJlY3RJblJlZ2lvbihSZW5k
ZXJSZWdpb24qIHJlZ2lvbiwgUmVuZGVyQm94UmVnaW8KICAgICBSZW5kZXJSZWdpb24qIHN0YXJ0
UmVnaW9uID0gMDsKICAgICBSZW5kZXJSZWdpb24qIGVuZFJlZ2lvbiA9IDA7CiAgICAgZmxvd1Ro
cmVhZC0+Z2V0UmVnaW9uUmFuZ2VGb3JCb3godGhpcywgc3RhcnRSZWdpb24sIGVuZFJlZ2lvbik7
Ci0gICAgCisKICAgICAvLyBGSVhNRTogSW4gYSBwZXJmZWN0IHdvcmxkIHRoaXMgY29uZGl0aW9u
IHNob3VsZCBuZXZlciBoYXBwZW4uCiAgICAgaWYgKCFzdGFydFJlZ2lvbiB8fCAhZW5kUmVnaW9u
KQogICAgICAgICByZXR1cm4gYm9yZGVyQm94UmVjdCgpOwogCi0gICAgQVNTRVJUKGZsb3dUaHJl
YWQtPnJlZ2lvbkluUmFuZ2UocmVnaW9uLCBzdGFydFJlZ2lvbiwgZW5kUmVnaW9uKSk7CisgICAg
Ly8gRklYTUU6IE9uY2Ugb3ZlcmZsb3cgaXMgaW1wbGVtZW50ZWQgdGhpcyBhc3NlcnRpb24gbmVl
ZHMgdG8gYmUgZW5hYmxlZC4gUmlnaHQgbm93IHRoZSBvdmVyZmxvdyBjb250ZW50IGlzIHBhaW50
ZWQKKyAgICAvLyBpbiByZWdpb25zIG91dHNpZGUgdGhlIGJveCByYW5nZSBzbyB0aGUgYXNzZXJ0
IGlzIGRpc2FibGVkLgorICAgIC8vIEFTU0VSVChjbGFtcFRvU3RhcnRBbmRFbmRSZWdpb25zKHJl
Z2lvbikgPT0gcmVnaW9uKTsKKworICAgIC8vIEZJWE1FOiBSZW1vdmUgb25jZSBib3hlcyBhcmUg
cGFpbnRlZCBpbnNpZGUgdGhlaXIgcmVnaW9uIHJhbmdlLgorICAgIHJlZ2lvbiA9IGNsYW1wVG9T
dGFydEFuZEVuZFJlZ2lvbnMocmVnaW9uKTsKIAogICAgIC8vIENvbXB1dGUgdGhlIGxvZ2ljYWwg
d2lkdGggYW5kIHBsYWNlbWVudCBpbiB0aGlzIHJlZ2lvbi4KICAgICBSZW5kZXJCb3hSZWdpb25J
bmZvKiBib3hJbmZvID0gcmVuZGVyQm94UmVnaW9uSW5mbyhyZWdpb24sIGNhY2hlRmxhZyk7CkBA
IC0yMDYxLDE0ICsyMDY2LDYgQEAgdm9pZCBSZW5kZXJCb3g6OmNvbXB1dGVSZWN0Rm9yUmVwYWlu
dChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGEKICAgICBpZiAoIW8p
CiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChvLT5pc1JlbmRlckZsb3dUaHJlYWQoKSkgewot
ICAgICAgICBSZW5kZXJSZWdpb24qIGZpcnN0UmVnaW9uID0gMDsKLSAgICAgICAgUmVuZGVyUmVn
aW9uKiBsYXN0UmVnaW9uID0gMDsKLSAgICAgICAgdG9SZW5kZXJGbG93VGhyZWFkKG8pLT5nZXRS
ZWdpb25SYW5nZUZvckJveCh0aGlzLCBmaXJzdFJlZ2lvbiwgbGFzdFJlZ2lvbik7Ci0gICAgICAg
IGlmIChmaXJzdFJlZ2lvbikKLSAgICAgICAgICAgIHJlY3QubW92ZUJ5KGZpcnN0UmVnaW9uLT5m
bG93VGhyZWFkUG9ydGlvblJlY3QoKS5sb2NhdGlvbigpKTsKLSAgICB9Ci0KICAgICBpZiAoaXNX
cml0aW5nTW9kZVJvb3QoKSAmJiAhaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkpCiAgICAgICAgIGZs
aXBGb3JXcml0aW5nTW9kZShyZWN0KTsKIApAQCAtNDI3Nyw3ICs0Mjc0LDcgQEAgdm9pZCBSZW5k
ZXJCb3g6OmFkZExheW91dE92ZXJmbG93KGNvbnN0IExheW91dFJlY3QmIHJlY3QpCiAgICAgfQog
CiAgICAgaWYgKCFtX292ZXJmbG93KQotICAgICAgICBtX292ZXJmbG93ID0gYWRvcHRSZWYobmV3
IFJlbmRlck92ZXJmbG93KGNsaWVudEJveCwgYm9yZGVyQm94UmVjdCgpKSk7CisgICAgICAgIG1f
b3ZlcmZsb3cgPSBhZG9wdFB0cihuZXcgUmVuZGVyT3ZlcmZsb3coY2xpZW50Qm94LCBib3JkZXJC
b3hSZWN0KCkpKTsKICAgICAKICAgICBtX292ZXJmbG93LT5hZGRMYXlvdXRPdmVyZmxvdyhvdmVy
Zmxvd1JlY3QpOwogfQpAQCAtNDI4OSw3ICs0Mjg2LDcgQEAgdm9pZCBSZW5kZXJCb3g6OmFkZFZp
c3VhbE92ZXJmbG93KGNvbnN0IExheW91dFJlY3QmIHJlY3QpCiAgICAgICAgIHJldHVybjsKICAg
ICAgICAgCiAgICAgaWYgKCFtX292ZXJmbG93KQotICAgICAgICBtX292ZXJmbG93ID0gYWRvcHRS
ZWYobmV3IFJlbmRlck92ZXJmbG93KGNsaWVudEJveFJlY3QoKSwgYm9yZGVyQm94KSk7CisgICAg
ICAgIG1fb3ZlcmZsb3cgPSBhZG9wdFB0cihuZXcgUmVuZGVyT3ZlcmZsb3coY2xpZW50Qm94UmVj
dCgpLCBib3JkZXJCb3gpKTsKICAgICAKICAgICBtX292ZXJmbG93LT5hZGRWaXN1YWxPdmVyZmxv
dyhyZWN0KTsKIH0KQEAgLTQzNzAsMTAgKzQzNjcsNyBAQCBib29sIFJlbmRlckJveDo6aGFzVW5z
cGxpdHRhYmxlU2Nyb2xsaW5nT3ZlcmZsb3coKSBjb25zdAogCiBib29sIFJlbmRlckJveDo6aXNV
bnNwbGl0dGFibGVGb3JQYWdpbmF0aW9uKCkgY29uc3QKIHsKLSAgICByZXR1cm4gaXNSZXBsYWNl
ZCgpIHx8IGhhc1Vuc3BsaXR0YWJsZVNjcm9sbGluZ092ZXJmbG93KCkgfHwgKHBhcmVudCgpICYm
IGlzV3JpdGluZ01vZGVSb290KCkpCi0gICAgICAgIC8vIEZJWE1FOiBUcmVhdCBtdWx0aS1jb2x1
bW4gZWxlbWVudHMgYXMgdW5zcGxpdHRhYmxlIGZvciBub3cuIFJlbW92ZSBvbmNlIHdlIGltcGxl
bWVudCB0aGUgY29ycmVjdAotICAgICAgICAvLyBmcmFnbWVudGF0aW9uIG1vZGVsIGZvciBtdWx0
aWNvbHVtbi4KLSAgICAgICAgfHwgaXNSZW5kZXJNdWx0aUNvbHVtbkJsb2NrKCk7CisgICAgcmV0
dXJuIGlzUmVwbGFjZWQoKSB8fCBoYXNVbnNwbGl0dGFibGVTY3JvbGxpbmdPdmVyZmxvdygpIHx8
IChwYXJlbnQoKSAmJiBpc1dyaXRpbmdNb2RlUm9vdCgpKTsKIH0KIAogTGF5b3V0VW5pdCBSZW5k
ZXJCb3g6OmxpbmVIZWlnaHQoYm9vbCAvKmZpcnN0TGluZSovLCBMaW5lRGlyZWN0aW9uTW9kZSBk
aXJlY3Rpb24sIExpbmVQb3NpdGlvbk1vZGUgLypsaW5lUG9zaXRpb25Nb2RlKi8pIGNvbnN0CkBA
IC00NDgwLDI1ICs0NDc0LDkgQEAgTGF5b3V0UmVjdCBSZW5kZXJCb3g6OmxheW91dE92ZXJmbG93
UmVjdEZvclByb3BhZ2F0aW9uKFJlbmRlclN0eWxlKiBwYXJlbnRTdHlsZSkKICAgICByZXR1cm4g
cmVjdDsKIH0KIAotTGF5b3V0UmVjdCBSZW5kZXJCb3g6Om92ZXJmbG93UmVjdEZvclBhaW50UmVq
ZWN0aW9uKFJlbmRlclJlZ2lvbiogcmVnaW9uKSBjb25zdAorTGF5b3V0UmVjdCBSZW5kZXJCb3g6
Om92ZXJmbG93UmVjdEZvclBhaW50UmVqZWN0aW9uKCkgY29uc3QKIHsKICAgICBMYXlvdXRSZWN0
IG92ZXJmbG93UmVjdCA9IHZpc3VhbE92ZXJmbG93UmVjdCgpOwotICAgIAotICAgIC8vIFdoZW4g
dXNpbmcgcmVnaW9ucywgc29tZSBib3hlcyBtaWdodCBoYXZlIHRoZWlyIGZyYW1lIHJlY3QgcmVs
YXRpdmUgdG8gdGhlIGZsb3cgdGhyZWFkLCB3aGljaCBjb3VsZAotICAgIC8vIGNhdXNlIHRoZSBw
YWludCByZWplY3Rpb24gYWxnb3JpdGhtIHRvIHByZXZlbnQgdGhlbSBmcm9tIHBhaW50aW5nIHdo
ZW4gdXNpbmcgZGlmZmVyZW50IHdpZHRoIHJlZ2lvbnMuCi0gICAgLy8gZS5nLiBhbiBhYnNvbHV0
ZWx5IHBvc2l0aW9uZWQgYm94IHdpdGggYm90dG9tOjBweCBhbmQgcmlnaHQ6MHB4IHdvdWxkIGhh
dmUgaXQncyBmcmFtZVJlY3QueCByZWxhdGl2ZQotICAgIC8vIHRvIHRoZSBmbG93IHRocmVhZCwg
bm90IHRoZSBsYXN0IHJlZ2lvbiAoaW4gd2hpY2ggaXQgd2lsbCBlbmQgdXAgYmVjYXVzZSBvZiBi
b3R0b206MHB4KQotICAgIGlmIChyZWdpb24pIHsKLSAgICAgICAgaWYgKFJlbmRlckZsb3dUaHJl
YWQqIGZsb3dUaHJlYWQgPSByZWdpb24tPmZsb3dUaHJlYWQoKSkgewotICAgICAgICAgICAgUmVu
ZGVyUmVnaW9uKiBzdGFydFJlZ2lvbiA9IDA7Ci0gICAgICAgICAgICBSZW5kZXJSZWdpb24qIGVu
ZFJlZ2lvbiA9IDA7Ci0gICAgICAgICAgICBmbG93VGhyZWFkLT5nZXRSZWdpb25SYW5nZUZvckJv
eCh0aGlzLCBzdGFydFJlZ2lvbiwgZW5kUmVnaW9uKTsKLQotICAgICAgICAgICAgaWYgKHN0YXJ0
UmVnaW9uICYmIGVuZFJlZ2lvbikKLSAgICAgICAgICAgICAgICBvdmVyZmxvd1JlY3QudW5pdGUo
cmVnaW9uLT52aXN1YWxPdmVyZmxvd1JlY3RGb3JCb3godGhpcykpOwotICAgICAgICB9Ci0gICAg
fQotICAgIAogICAgIGlmICghbV9vdmVyZmxvdyB8fCAhdXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmco
KSkKICAgICAgICAgcmV0dXJuIG92ZXJmbG93UmVjdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveC5oCmluZGV4IDM0M2Q5N2RmZGYxNDhjNjE5OTc4MDJlNmRjYzNjYjY3ZWRjZDI3YTEu
LmFhZTA5OGI4N2Q1NGM0YjBlNzEzOTc5ODM4ODM4ODBjODNiNGI0NDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94LmgKQEAgLTE4OSw3ICsxODksNyBAQCBwdWJsaWM6CiAgICAgTGF5
b3V0VW5pdCBsb2dpY2FsTGVmdFZpc3VhbE92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gc3R5bGUo
KS5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gdmlzdWFsT3ZlcmZsb3dSZWN0KCkueCgpIDog
dmlzdWFsT3ZlcmZsb3dSZWN0KCkueSgpOyB9CiAgICAgTGF5b3V0VW5pdCBsb2dpY2FsUmlnaHRW
aXN1YWxPdmVyZmxvdygpIGNvbnN0IHsgcmV0dXJuIHN0eWxlKCkuaXNIb3Jpem9udGFsV3JpdGlu
Z01vZGUoKSA/IHZpc3VhbE92ZXJmbG93UmVjdCgpLm1heFgoKSA6IHZpc3VhbE92ZXJmbG93UmVj
dCgpLm1heFkoKTsgfQogCi0gICAgTGF5b3V0UmVjdCBvdmVyZmxvd1JlY3RGb3JQYWludFJlamVj
dGlvbihSZW5kZXJSZWdpb24qKSBjb25zdDsKKyAgICBMYXlvdXRSZWN0IG92ZXJmbG93UmVjdEZv
clBhaW50UmVqZWN0aW9uKCkgY29uc3Q7CiAgICAgCiAgICAgdm9pZCBhZGRMYXlvdXRPdmVyZmxv
dyhjb25zdCBMYXlvdXRSZWN0Jik7CiAgICAgdm9pZCBhZGRWaXN1YWxPdmVyZmxvdyhjb25zdCBM
YXlvdXRSZWN0Jik7CkBAIC02MDEsOSArNjAxLDYgQEAgcHVibGljOgogICAgIH0KICNlbmRpZgog
Ci0gICAgLy8gVHJ1ZSBpZiB0aGlzIGJveCBjYW4gaGF2ZSBhIHJhbmdlIGluIGFuIG91dHNpZGUg
ZnJhZ21lbnRhdGlvbiBjb250ZXh0LgotICAgIGJvb2wgY2FuSGF2ZU91dHNpZGVSZWdpb25SYW5n
ZSgpIGNvbnN0IHsgcmV0dXJuICFpc0luRmxvd1JlbmRlckZsb3dUaHJlYWQoKTsgfQotCiBwcm90
ZWN0ZWQ6CiAgICAgUmVuZGVyQm94KEVsZW1lbnQmLCBQYXNzUmVmPFJlbmRlclN0eWxlPiwgdW5z
aWduZWQgYmFzZVR5cGVGbGFncyk7CiAgICAgUmVuZGVyQm94KERvY3VtZW50JiwgUGFzc1JlZjxS
ZW5kZXJTdHlsZT4sIHVuc2lnbmVkIGJhc2VUeXBlRmxhZ3MpOwpAQCAtNzA5LDcgKzcwNiw3IEBA
IHByb3RlY3RlZDoKICAgICBJbmxpbmVFbGVtZW50Qm94KiBtX2lubGluZUJveFdyYXBwZXI7CiAK
ICAgICAvLyBPdXIgb3ZlcmZsb3cgaW5mb3JtYXRpb24uCi0gICAgUmVmUHRyPFJlbmRlck92ZXJm
bG93PiBtX292ZXJmbG93OworICAgIE93blB0cjxSZW5kZXJPdmVyZmxvdz4gbV9vdmVyZmxvdzsK
IAogcHJpdmF0ZToKICAgICAvLyBVc2VkIHRvIHN0b3JlIHN0YXRlIGJldHdlZW4gc3R5bGVXaWxs
Q2hhbmdlIGFuZCBzdHlsZURpZENoYW5nZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKaW5kZXggZTc4NTFkMTdmNGFhMDViNWRkOWRiNTE5
NzcyZmZjNTQ1NDYzOTEwNi4uYzVlYWE2OTBjNjdiNmIwYjg4MzM2YjBjNTNjNzQ2OWM4YmEyOTlj
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmpl
Y3QuY3BwCkBAIC0zNyw3ICszNyw2IEBACiAjaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKICNpbmNs
dWRlICJSZW5kZXJJbmxpbmUuaCIKICNpbmNsdWRlICJSZW5kZXJMYXllci5oIgotI2luY2x1ZGUg
IlJlbmRlck5hbWVkRmxvd0ZyYWdtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyTmFtZWRGbG93VGhy
ZWFkLmgiCiAjaW5jbHVkZSAiUmVuZGVyUmVnaW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGFibGUu
aCIKQEAgLTU3MiwyOCArNTcxLDYgQEAgc3RhdGljIHZvaWQgYXBwbHlCb3hTaGFkb3dGb3JCYWNr
Z3JvdW5kKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgUmVuZGVyU3R5bGUqIHMKICAgICAgICAg
Y29udGV4dC0+c2V0TGVnYWN5U2hhZG93KHNoYWRvd09mZnNldCwgYm94U2hhZG93LT5yYWRpdXMo
KSwgYm94U2hhZG93LT5jb2xvcigpLCBzdHlsZS0+Y29sb3JTcGFjZSgpKTsKIH0KIAotdm9pZCBS
ZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRNYXNrRm9yVGV4dEZpbGxCb3goSW1hZ2VCdWZmZXIq
IG1hc2tJbWFnZSwgY29uc3QgSW50UmVjdCYgbWFza1JlY3QsIElubGluZUZsb3dCb3gqIGJveCwg
Y29uc3QgTGF5b3V0UmVjdCYgc2Nyb2xsZWRQYWludFJlY3QsIFJlbmRlclJlZ2lvbiogcmVnaW9u
KQotewotICAgIEdyYXBoaWNzQ29udGV4dCogbWFza0ltYWdlQ29udGV4dCA9IG1hc2tJbWFnZS0+
Y29udGV4dCgpOwotICAgIG1hc2tJbWFnZUNvbnRleHQtPnRyYW5zbGF0ZSgtbWFza1JlY3QueCgp
LCAtbWFza1JlY3QueSgpKTsKLQotICAgIC8vIE5vdyBhZGQgdGhlIHRleHQgdG8gdGhlIGNsaXAu
IFdlIGRvIHRoaXMgYnkgcGFpbnRpbmcgdXNpbmcgYSBzcGVjaWFsIHBhaW50IHBoYXNlIHRoYXQg
c2lnbmFscyB0bwotICAgIC8vIElubGluZVRleHRCb3hlcyB0aGF0IHRoZXkgc2hvdWxkIGp1c3Qg
YWRkIHRoZWlyIGNvbnRlbnRzIHRvIHRoZSBjbGlwLgotICAgIFBhaW50SW5mbyBpbmZvKG1hc2tJ
bWFnZUNvbnRleHQsIG1hc2tSZWN0LCBQYWludFBoYXNlVGV4dENsaXAsIFBhaW50QmVoYXZpb3JG
b3JjZUJsYWNrVGV4dCwgMCwgcmVnaW9uKTsKLSAgICBpZiAoYm94KSB7Ci0gICAgICAgIGNvbnN0
IFJvb3RJbmxpbmVCb3gmIHJvb3RCb3ggPSBib3gtPnJvb3QoKTsKLSAgICAgICAgYm94LT5wYWlu
dChpbmZvLCBMYXlvdXRQb2ludChzY3JvbGxlZFBhaW50UmVjdC54KCkgLSBib3gtPngoKSwgc2Ny
b2xsZWRQYWludFJlY3QueSgpIC0gYm94LT55KCkpLCByb290Qm94LmxpbmVUb3AoKSwgcm9vdEJv
eC5saW5lQm90dG9tKCkpOwotICAgIH0gZWxzZSBpZiAoaXNSZW5kZXJOYW1lZEZsb3dGcmFnbWVu
dENvbnRhaW5lcigpKSB7Ci0gICAgICAgIFJlbmRlck5hbWVkRmxvd0ZyYWdtZW50KiByZWdpb24g
PSB0b1JlbmRlckJsb2NrRmxvdyh0aGlzKS0+cmVuZGVyTmFtZWRGbG93RnJhZ21lbnQoKTsKLSAg
ICAgICAgaWYgKCFyZWdpb24tPmZsb3dUaHJlYWQoKSkKLSAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgcmVnaW9uLT5mbG93VGhyZWFkKCktPmxheWVyKCktPnBhaW50TmFtZWRGbG93VGhyZWFk
SW5zaWRlUmVnaW9uKG1hc2tJbWFnZUNvbnRleHQsIHJlZ2lvbiwgbWFza1JlY3QsIG1hc2tSZWN0
LmxvY2F0aW9uKCksIFBhaW50QmVoYXZpb3JGb3JjZUJsYWNrVGV4dCwgUmVuZGVyTGF5ZXI6OlBh
aW50TGF5ZXJUZW1wb3JhcnlDbGlwUmVjdHMpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIExheW91
dFNpemUgbG9jYWxPZmZzZXQgPSBpc0JveCgpID8gdG9SZW5kZXJCb3godGhpcyktPmxvY2F0aW9u
T2Zmc2V0KCkgOiBMYXlvdXRTaXplKCk7Ci0gICAgICAgIHBhaW50KGluZm8sIHNjcm9sbGVkUGFp
bnRSZWN0LmxvY2F0aW9uKCkgLSBsb2NhbE9mZnNldCk7Ci0gICAgfQotfQotCiB2b2lkIFJlbmRl
ckJveE1vZGVsT2JqZWN0OjpwYWludEZpbGxMYXllckV4dGVuZGVkKGNvbnN0IFBhaW50SW5mbyYg
cGFpbnRJbmZvLCBjb25zdCBDb2xvciYgY29sb3IsIGNvbnN0IEZpbGxMYXllciogYmdMYXllciwg
Y29uc3QgTGF5b3V0UmVjdCYgcmVjdCwKICAgICBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UgYmxl
ZWRBdm9pZGFuY2UsIElubGluZUZsb3dCb3gqIGJveCwgY29uc3QgTGF5b3V0U2l6ZSYgYm94U2l6
ZSwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIFJlbmRlckVsZW1lbnQqIGJhY2tncm91bmRPYmplY3Qp
CiB7CkBAIC03MjYsNyArNzAzLDIwIEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50
RmlsbExheWVyRXh0ZW5kZWQoY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvCiAgICAgICAg
IG1hc2tJbWFnZSA9IGNvbnRleHQtPmNyZWF0ZUNvbXBhdGlibGVCdWZmZXIobWFza1JlY3Quc2l6
ZSgpKTsKICAgICAgICAgaWYgKCFtYXNrSW1hZ2UpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIHBhaW50TWFza0ZvclRleHRGaWxsQm94KG1hc2tJbWFnZS5nZXQoKSwgbWFza1JlY3QsIGJv
eCwgc2Nyb2xsZWRQYWludFJlY3QsIHBhaW50SW5mby5yZW5kZXJSZWdpb24pOworCisgICAgICAg
IEdyYXBoaWNzQ29udGV4dCogbWFza0ltYWdlQ29udGV4dCA9IG1hc2tJbWFnZS0+Y29udGV4dCgp
OworICAgICAgICBtYXNrSW1hZ2VDb250ZXh0LT50cmFuc2xhdGUoLW1hc2tSZWN0LngoKSwgLW1h
c2tSZWN0LnkoKSk7CisKKyAgICAgICAgLy8gTm93IGFkZCB0aGUgdGV4dCB0byB0aGUgY2xpcC4g
IFdlIGRvIHRoaXMgYnkgcGFpbnRpbmcgdXNpbmcgYSBzcGVjaWFsIHBhaW50IHBoYXNlIHRoYXQg
c2lnbmFscyB0bworICAgICAgICAvLyBJbmxpbmVUZXh0Qm94ZXMgdGhhdCB0aGV5IHNob3VsZCBq
dXN0IGFkZCB0aGVpciBjb250ZW50cyB0byB0aGUgY2xpcC4KKyAgICAgICAgUGFpbnRJbmZvIGlu
Zm8obWFza0ltYWdlQ29udGV4dCwgbWFza1JlY3QsIFBhaW50UGhhc2VUZXh0Q2xpcCwgUGFpbnRC
ZWhhdmlvckZvcmNlQmxhY2tUZXh0LCAwLCBwYWludEluZm8ucmVuZGVyUmVnaW9uKTsKKyAgICAg
ICAgaWYgKGJveCkgeworICAgICAgICAgICAgY29uc3QgUm9vdElubGluZUJveCYgcm9vdEJveCA9
IGJveC0+cm9vdCgpOworICAgICAgICAgICAgYm94LT5wYWludChpbmZvLCBMYXlvdXRQb2ludChz
Y3JvbGxlZFBhaW50UmVjdC54KCkgLSBib3gtPngoKSwgc2Nyb2xsZWRQYWludFJlY3QueSgpIC0g
Ym94LT55KCkpLCByb290Qm94LmxpbmVUb3AoKSwgcm9vdEJveC5saW5lQm90dG9tKCkpOworICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgTGF5b3V0U2l6ZSBsb2NhbE9mZnNldCA9IGlzQm94
KCkgPyB0b1JlbmRlckJveCh0aGlzKS0+bG9jYXRpb25PZmZzZXQoKSA6IExheW91dFNpemUoKTsK
KyAgICAgICAgICAgIHBhaW50KGluZm8sIHNjcm9sbGVkUGFpbnRSZWN0LmxvY2F0aW9uKCkgLSBs
b2NhbE9mZnNldCk7CisgICAgICAgIH0KIAogICAgICAgICAvLyBUaGUgbWFzayBoYXMgYmVlbiBj
cmVhdGVkLiAgTm93IHdlIGp1c3QgbmVlZCB0byBjbGlwIHRvIGl0LgogICAgICAgICBiYWNrZ3Jv
dW5kQ2xpcFN0YXRlU2F2ZXIuc2F2ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94TW9kZWxPYmplY3QuaAppbmRleCBiM2UzN2JlZDJhNmUxYWNmMDczNzA1YzY3MzU3
MWQ1NDBjZjQ5NzBlLi44OWI2MzI1OTQwYzllNWZkNjNjODFjZjE2ODhhZTg1MmM1ZDZlZmMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3Qu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaApA
QCAtNTEsOSArNTEsOCBAQCBlbnVtIENvbnRlbnRDaGFuZ2VUeXBlIHsKICAgICBGdWxsU2NyZWVu
Q2hhbmdlZAogfTsKIAotY2xhc3MgSW1hZ2VCdWZmZXI7Ci1jbGFzcyBJbmxpbmVGbG93Qm94Owog
Y2xhc3MgS2V5ZnJhbWVMaXN0OworY2xhc3MgSW5saW5lRmxvd0JveDsKIGNsYXNzIFJlbmRlclRl
eHRGcmFnbWVudDsKIGNsYXNzIFN0aWNreVBvc2l0aW9uVmlld3BvcnRDb25zdHJhaW50czsKIApA
QCAtMTgxLDYgKzE4MCw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgY2FuSGF2ZUJveEluZm9JblJl
Z2lvbigpIGNvbnN0IHsgcmV0dXJuICFpc0Zsb2F0aW5nKCkgJiYgIWlzUmVwbGFjZWQoKSAmJiAh
aXNJbmxpbmUoKSAmJiAhaGFzQ29sdW1ucygpICYmICFpc1RhYmxlQ2VsbCgpICYmIGlzUmVuZGVy
QmxvY2soKSAmJiAhaXNSZW5kZXJTVkdCbG9jaygpOyB9CiAKKwogICAgIHZvaWQgZ2V0R2VvbWV0
cnlGb3JCYWNrZ3JvdW5kSW1hZ2UoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcGFpbnRD
b250YWluZXIsIEludFJlY3QmIGRlc3RSZWN0LCBJbnRQb2ludCYgcGhhc2UsIEludFNpemUmIHRp
bGVTaXplKSBjb25zdDsKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdm9p
ZCBjb250ZW50Q2hhbmdlZChDb250ZW50Q2hhbmdlVHlwZSk7CkBAIC0zNDIsNyArMzQyLDYgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGRyYXdCb3hTaWRlRnJvbVBhdGgoR3JhcGhpY3NDb250ZXh0Kiwg
Y29uc3QgTGF5b3V0UmVjdCYsIGNvbnN0IFBhdGgmLCBjb25zdCBjbGFzcyBCb3JkZXJFZGdlW10s
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgdGhpY2tuZXNzLCBmbG9hdCBkcmF3
VGhpY2tuZXNzLCBCb3hTaWRlLCBjb25zdCBSZW5kZXJTdHlsZSosIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIENvbG9yLCBFQm9yZGVyU3R5bGUsIEJhY2tncm91bmRCbGVlZEF2b2lkYW5j
ZSwgYm9vbCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBib29sIGluY2x1ZGVMb2dpY2FsUmlnaHRF
ZGdlKTsKLSAgICB2b2lkIHBhaW50TWFza0ZvclRleHRGaWxsQm94KEltYWdlQnVmZmVyKiwgY29u
c3QgSW50UmVjdCYsIElubGluZUZsb3dCb3gqLCBjb25zdCBMYXlvdXRSZWN0JiwgUmVuZGVyUmVn
aW9uKik7CiB9OwogCiBSRU5ERVJfT0JKRUNUX1RZUEVfQ0FTVFMoUmVuZGVyQm94TW9kZWxPYmpl
Y3QsIGlzQm94TW9kZWxPYmplY3QoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3hSZWdpb25JbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94UmVnaW9uSW5mby5oCmluZGV4IGJmZTBkY2NjMzBkOTAxY2ZiMGIxMDhjNWI2NzcyOTY1
M2FhNTI4NjcuLjYxNGIxMTY4MjRhZGNjNjIyNDhjY2Y5ZWIzYWQzN2Q2NjQzNmMwYjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hSZWdpb25JbmZvLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveFJlZ2lvbkluZm8uaApAQCAtNDks
NyArNDksNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzU2hpZnRlZCgpIGNvbnN0IHsgcmV0dXJu
IG1faXNTaGlmdGVkOyB9CiAKLSAgICB2b2lkIGNyZWF0ZU92ZXJmbG93KGNvbnN0IExheW91dFJl
Y3QmIGxheW91dE92ZXJmbG93LCBjb25zdCBMYXlvdXRSZWN0JiB2aXN1YWxPdmVyZmxvdykgeyBt
X292ZXJmbG93ID0gYWRvcHRSZWYobmV3IFJlbmRlck92ZXJmbG93KGxheW91dE92ZXJmbG93LCB2
aXN1YWxPdmVyZmxvdykpOyB9CisgICAgdm9pZCBjcmVhdGVPdmVyZmxvdyhjb25zdCBMYXlvdXRS
ZWN0JiBsYXlvdXRPdmVyZmxvdywgY29uc3QgTGF5b3V0UmVjdCYgdmlzdWFsT3ZlcmZsb3cpIHsg
bV9vdmVyZmxvdyA9IGFkb3B0UHRyKG5ldyBSZW5kZXJPdmVyZmxvdyhsYXlvdXRPdmVyZmxvdywg
dmlzdWFsT3ZlcmZsb3cpKTsgfQogICAgIFJlbmRlck92ZXJmbG93KiBvdmVyZmxvdygpIGNvbnN0
IHsgcmV0dXJuIG1fb3ZlcmZsb3cuZ2V0KCk7IH0KICAgICB2b2lkIGNsZWFyT3ZlcmZsb3coKQog
ICAgIHsKQEAgLTYxLDcgKzYxLDcgQEAgcHJpdmF0ZToKICAgICBMYXlvdXRVbml0IG1fbG9naWNh
bExlZnQ7CiAgICAgTGF5b3V0VW5pdCBtX2xvZ2ljYWxXaWR0aDsKICAgICBib29sIG1faXNTaGlm
dGVkOwotICAgIFJlZlB0cjxSZW5kZXJPdmVyZmxvdz4gbV9vdmVyZmxvdzsKKyAgICBPd25QdHI8
UmVuZGVyT3ZlcmZsb3c+IG1fb3ZlcmZsb3c7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAKaW5kZXgg
ZmIxMTE5N2E3OGViMTY2Y2YzMWQ3M2ZmODk1OWQ2MmFmMTdlZjBiNC4uY2JiOGYxNmRhODM1OTQ2
ZjBjY2M1ZmI1MTNjYThkY2NlNWU0MmE3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJGbG93VGhyZWFkLmNwcApAQCAtNDA4LDYgKzQwOCw1OCBAQCBMYXlvdXRSZWN0IFJl
bmRlckZsb3dUaHJlYWQ6OmNvbXB1dGVSZWdpb25DbGlwcGluZ1JlY3QoY29uc3QgTGF5b3V0UG9p
bnQmIG9mZnNldAogICAgIHJldHVybiByZWdpb25DbGlwcGluZ1JlY3Q7CiB9CiAKK3ZvaWQgUmVu
ZGVyRmxvd1RocmVhZDo6cGFpbnRGbG93VGhyZWFkUG9ydGlvbkluUmVnaW9uKFBhaW50SW5mbyYg
cGFpbnRJbmZvLCBSZW5kZXJSZWdpb24qIHJlZ2lvbiwgY29uc3QgTGF5b3V0UmVjdCYgZmxvd1Ro
cmVhZFBvcnRpb25SZWN0LCBjb25zdCBMYXlvdXRSZWN0JiBmbG93VGhyZWFkUG9ydGlvbk92ZXJm
bG93UmVjdCwgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KSBjb25zdAoreworICAgIEdy
YXBoaWNzQ29udGV4dCogY29udGV4dCA9IHBhaW50SW5mby5jb250ZXh0OworICAgIGlmICghY29u
dGV4dCkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gUmVuZGVyRmxvd1RocmVhZCBzaG91bGQg
c3RhcnQgcGFpbnRpbmcgaXRzIGNvbnRlbnQgaW4gYSBwb3NpdGlvbiB0aGF0IGlzIG9mZnNldAor
ICAgIC8vIGZyb20gdGhlIHJlZ2lvbiByZWN0J3MgY3VycmVudCBwb3NpdGlvbi4gVGhlIGFtb3Vu
dCBvZiBvZmZzZXQgaXMgZXF1YWwgdG8gdGhlIGxvY2F0aW9uIG9mCisgICAgLy8gdGhlIGZsb3cg
dGhyZWFkIHBvcnRpb24gaW4gdGhlIGZsb3cgdGhyZWFkJ3MgbG9jYWwgY29vcmRpbmF0ZXMuCisg
ICAgLy8gTm90ZSB0aGF0IHdlIGhhdmUgdG8gcGl4ZWwgc25hcCB0aGUgbG9jYXRpb24gYXQgd2hp
Y2ggd2UncmUgZ29pbmcgdG8gcGFpbnQsIHNpbmNlIHRoaXMgaXMgbmVjZXNzYXJ5CisgICAgLy8g
dG8gbWluaW1pemUgdGhlIGFtb3VudCBvZiBpbmNvcnJlY3Qgc25hcHBpbmcgdGhhdCB3b3VsZCBv
dGhlcndpc2Ugb2NjdXIuCisgICAgLy8gSWYgd2UgdHJpZWQgdG8gcGFpbnQgYnkgYXBwbHlpbmcg
YSBub24taW50ZWdyYWwgdHJhbnNsYXRpb24sIHRoZW4gYWxsIHRoZQorICAgIC8vIGxheW91dCBj
b2RlIHRoYXQgYXR0ZW1wdGVkIHRvIHBpeGVsIHNuYXAgd291bGQgYmUgaW5jb3JyZWN0LgorICAg
IEludFBvaW50IGFkanVzdGVkUGFpbnRPZmZzZXQ7CisgICAgTGF5b3V0UG9pbnQgcG9ydGlvbkxv
Y2F0aW9uOworICAgIGlmIChzdHlsZSgpLmlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKCkpIHsK
KyAgICAgICAgTGF5b3V0UmVjdCBmbGlwcGVkRmxvd1RocmVhZFBvcnRpb25SZWN0KGZsb3dUaHJl
YWRQb3J0aW9uUmVjdCk7CisgICAgICAgIGZsaXBGb3JXcml0aW5nTW9kZShmbGlwcGVkRmxvd1Ro
cmVhZFBvcnRpb25SZWN0KTsKKyAgICAgICAgcG9ydGlvbkxvY2F0aW9uID0gZmxpcHBlZEZsb3dU
aHJlYWRQb3J0aW9uUmVjdC5sb2NhdGlvbigpOworICAgIH0gZWxzZQorICAgICAgICBwb3J0aW9u
TG9jYXRpb24gPSBmbG93VGhyZWFkUG9ydGlvblJlY3QubG9jYXRpb24oKTsKKyAgICBhZGp1c3Rl
ZFBhaW50T2Zmc2V0ID0gcm91bmRlZEludFBvaW50KHBhaW50T2Zmc2V0IC0gcG9ydGlvbkxvY2F0
aW9uKTsKKworICAgIC8vIFRoZSBjbGlwcGluZyByZWN0IGZvciB0aGUgcmVnaW9uIGlzIHNldCB1
cCBieSBhc3N1bWluZyB0aGUgZmxvd1RocmVhZFBvcnRpb25SZWN0IGlzIGdvaW5nIHRvIHBhaW50
IG9mZnNldCBmcm9tIGFkanVzdGVkUGFpbnRPZmZzZXQuCisgICAgLy8gUmVtZW1iZXIgdGhhdCB3
ZSBwaXhlbCBzbmFwcGVkIGFuZCBtb3ZlZCB0aGUgcGFpbnRPZmZzZXQgYW5kIHN0b3JlZCB0aGUg
c25hcHBlZCByZXN1bHQgaW4gYWRqdXN0ZWRQYWludE9mZnNldC4gTm93IHdlIGFkZCBiYWNrIGlu
CisgICAgLy8gdGhlIGZsb3dUaHJlYWRQb3J0aW9uUmVjdCdzIGxvY2F0aW9uIHRvIGdldCB0aGUg
c3BvdCB3aGVyZSB3ZSBleHBlY3QgdGhlIHBvcnRpb24gdG8gYWN0dWFsbHkgcGFpbnQuIFRoaXMg
Y2FuIGJlIG5vbi1pbnRlZ3JhbCBhbmQKKyAgICAvLyB0aGF0J3Mgb2suIFdlIHRoZW4gcGl4ZWwg
c25hcCB0aGUgcmVzdWx0aW5nIGNsaXBwaW5nIHJlY3QgdG8gYWNjb3VudCBmb3Igc25hcHBpbmcg
dGhhdCB3aWxsIG9jY3VyIHdoZW4gdGhlIGZsb3cgdGhyZWFkIHBhaW50cy4KKyAgICBJbnRSZWN0
IHJlZ2lvbkNsaXBwaW5nUmVjdCA9IHBpeGVsU25hcHBlZEludFJlY3QoY29tcHV0ZVJlZ2lvbkNs
aXBwaW5nUmVjdChhZGp1c3RlZFBhaW50T2Zmc2V0ICsgcG9ydGlvbkxvY2F0aW9uLCBmbG93VGhy
ZWFkUG9ydGlvblJlY3QsIGZsb3dUaHJlYWRQb3J0aW9uT3ZlcmZsb3dSZWN0KSk7CisKKyAgICBQ
YWludEluZm8gaW5mbyhwYWludEluZm8pOworICAgIGluZm8ucmVjdC5pbnRlcnNlY3QocmVnaW9u
Q2xpcHBpbmdSZWN0KTsKKworICAgIGlmICghaW5mby5yZWN0LmlzRW1wdHkoKSkgeworICAgICAg
ICBjb250ZXh0LT5zYXZlKCk7CisKKyAgICAgICAgY29udGV4dC0+Y2xpcChyZWdpb25DbGlwcGlu
Z1JlY3QpOworCisgICAgICAgIGNvbnRleHQtPnRyYW5zbGF0ZShhZGp1c3RlZFBhaW50T2Zmc2V0
LngoKSwgYWRqdXN0ZWRQYWludE9mZnNldC55KCkpOworICAgICAgICBpbmZvLnJlY3QubW92ZUJ5
KC1hZGp1c3RlZFBhaW50T2Zmc2V0KTsKKyAgICAgICAgCisgICAgICAgIFBhaW50QmVoYXZpb3Ig
cGFpbnRCZWhhdmlvciA9IDA7CisgICAgICAgIGlmIChpbmZvLnBoYXNlID09IFBhaW50UGhhc2VU
ZXh0Q2xpcCkKKyAgICAgICAgICAgIHBhaW50QmVoYXZpb3IgfD0gUGFpbnRCZWhhdmlvckZvcmNl
QmxhY2tUZXh0OworICAgICAgICBlbHNlIGlmIChpbmZvLnBoYXNlID09IFBhaW50UGhhc2VTZWxl
Y3Rpb24pCisgICAgICAgICAgICBwYWludEJlaGF2aW9yIHw9IFBhaW50QmVoYXZpb3JTZWxlY3Rp
b25Pbmx5OworCisgICAgICAgIGxheWVyKCktPnBhaW50KGNvbnRleHQsIGluZm8ucmVjdCwgcGFp
bnRCZWhhdmlvciwgMCwgcmVnaW9uLCBSZW5kZXJMYXllcjo6UGFpbnRMYXllclRlbXBvcmFyeUNs
aXBSZWN0cyk7CisKKyAgICAgICAgY29udGV4dC0+cmVzdG9yZSgpOworICAgIH0KK30KKwogYm9v
bCBSZW5kZXJGbG93VGhyZWFkOjpub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVx
dWVzdCwgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0
aW9uSW5Db250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0
VGVzdEFjdGlvbiBoaXRUZXN0QWN0aW9uKQogewogICAgIGlmIChoaXRUZXN0QWN0aW9uID09IEhp
dFRlc3RCbG9ja0JhY2tncm91bmQpCkBAIC00MTUsNiArNDY3LDM0IEBAIGJvb2wgUmVuZGVyRmxv
d1RocmVhZDo6bm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVlc3QsIEhpdFRl
c3RSZXN1bHQmCiAgICAgcmV0dXJuIFJlbmRlckJsb2NrRmxvdzo6bm9kZUF0UG9pbnQocmVxdWVz
dCwgcmVzdWx0LCBsb2NhdGlvbkluQ29udGFpbmVyLCBhY2N1bXVsYXRlZE9mZnNldCwgaGl0VGVz
dEFjdGlvbik7CiB9CiAKK2Jvb2wgUmVuZGVyRmxvd1RocmVhZDo6aGl0VGVzdEZsb3dUaHJlYWRQ
b3J0aW9uSW5SZWdpb24oUmVuZGVyUmVnaW9uKiByZWdpb24sIGNvbnN0IExheW91dFJlY3QmIGZs
b3dUaHJlYWRQb3J0aW9uUmVjdCwgY29uc3QgTGF5b3V0UmVjdCYgZmxvd1RocmVhZFBvcnRpb25P
dmVyZmxvd1JlY3QsIGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiByZXF1ZXN0LCBIaXRUZXN0UmVzdWx0
JiByZXN1bHQsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29u
c3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0KSBjb25zdAoreworICAgIExheW91dFJl
Y3QgcmVnaW9uQ2xpcHBpbmdSZWN0ID0gY29tcHV0ZVJlZ2lvbkNsaXBwaW5nUmVjdChhY2N1bXVs
YXRlZE9mZnNldCwgZmxvd1RocmVhZFBvcnRpb25SZWN0LCBmbG93VGhyZWFkUG9ydGlvbk92ZXJm
bG93UmVjdCk7CisgICAgaWYgKCFyZWdpb25DbGlwcGluZ1JlY3QuY29udGFpbnMobG9jYXRpb25J
bkNvbnRhaW5lci5wb2ludCgpKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgTGF5b3V0
U2l6ZSByZW5kZXJGbG93VGhyZWFkT2Zmc2V0OworICAgIGlmIChzdHlsZSgpLmlzRmxpcHBlZEJs
b2Nrc1dyaXRpbmdNb2RlKCkpIHsKKyAgICAgICAgTGF5b3V0UmVjdCBmbGlwcGVkRmxvd1RocmVh
ZFBvcnRpb25SZWN0KGZsb3dUaHJlYWRQb3J0aW9uUmVjdCk7CisgICAgICAgIGZsaXBGb3JXcml0
aW5nTW9kZShmbGlwcGVkRmxvd1RocmVhZFBvcnRpb25SZWN0KTsKKyAgICAgICAgcmVuZGVyRmxv
d1RocmVhZE9mZnNldCA9IGFjY3VtdWxhdGVkT2Zmc2V0IC0gZmxpcHBlZEZsb3dUaHJlYWRQb3J0
aW9uUmVjdC5sb2NhdGlvbigpOworICAgIH0gZWxzZQorICAgICAgICByZW5kZXJGbG93VGhyZWFk
T2Zmc2V0ID0gYWNjdW11bGF0ZWRPZmZzZXQgLSBmbG93VGhyZWFkUG9ydGlvblJlY3QubG9jYXRp
b24oKTsKKworICAgIC8vIEFsd2F5cyBpZ25vcmUgY2xpcHBpbmcsIHNpbmNlIHRoZSBSZW5kZXJG
bG93VGhyZWFkIGhhcyBub3RoaW5nIHRvIGRvIHdpdGggdGhlIGJvdW5kcyBvZiB0aGUgRnJhbWVW
aWV3LgorICAgIEhpdFRlc3RSZXF1ZXN0IG5ld1JlcXVlc3QocmVxdWVzdC50eXBlKCkgfCBIaXRU
ZXN0UmVxdWVzdDo6SWdub3JlQ2xpcHBpbmcgfCBIaXRUZXN0UmVxdWVzdDo6RGlzYWxsb3dTaGFk
b3dDb250ZW50KTsKKworICAgIC8vIE1ha2UgYSBuZXcgdGVtcG9yYXJ5IEhpdFRlc3RMb2NhdGlv
biBpbiB0aGUgbmV3IHJlZ2lvbi4KKyAgICBIaXRUZXN0TG9jYXRpb24gbmV3SGl0VGVzdExvY2F0
aW9uKGxvY2F0aW9uSW5Db250YWluZXIsIC1yZW5kZXJGbG93VGhyZWFkT2Zmc2V0LCByZWdpb24p
OworCisgICAgYm9vbCBpc1BvaW50SW5zaWRlRmxvd1RocmVhZCA9IGxheWVyKCktPmhpdFRlc3Qo
bmV3UmVxdWVzdCwgbmV3SGl0VGVzdExvY2F0aW9uLCByZXN1bHQpOworCisgICAgLy8gRklYTUU6
IFNob3VsZCB3ZSBzZXQgcmVzdWx0Lm1fbG9jYWxQb2ludCBiYWNrIHRvIHRoZSBSZW5kZXJSZWdp
b24ncyBjb29yZGluYXRlIHNwYWNlIG9yIGxlYXZlIGl0IGluIHRoZSBSZW5kZXJGbG93VGhyZWFk
J3MgY29vcmRpbmF0ZQorICAgIC8vIHNwYWNlPyBSaWdodCBub3cgaXQncyBzdGF5aW5nIGluIHRo
ZSBSZW5kZXJGbG93VGhyZWFkJ3MgY29vcmRpbmF0ZSBzcGFjZSwgd2hpY2ggbWF5IGVuZCB1cCBi
ZWluZyBvay4gV2Ugd2lsbCBrbm93IG1vcmUgd2hlbiB3ZSBnZXQgYXJvdW5kIHRvCisgICAgLy8g
cGF0Y2hpbmcgcG9zaXRpb25Gb3JQb2ludC4KKyAgICByZXR1cm4gaXNQb2ludEluc2lkZUZsb3dU
aHJlYWQ7Cit9CisKIGJvb2wgUmVuZGVyRmxvd1RocmVhZDo6c2hvdWxkUmVwYWludChjb25zdCBM
YXlvdXRSZWN0JiByKSBjb25zdAogewogICAgIGlmICh2aWV3KCkucHJpbnRpbmcoKSB8fCByLmlz
RW1wdHkoKSkKQEAgLTg0NSwzMCArOTI1LDYgQEAgdm9pZCBSZW5kZXJGbG93VGhyZWFkOjpjaGVj
a1JlZ2lvbnNXaXRoU3R5bGluZygpCiAgICAgfQogICAgIG1faGFzUmVnaW9uc1dpdGhTdHlsaW5n
ID0gaGFzUmVnaW9uc1dpdGhTdHlsaW5nOwogfQotICAgIAotYm9vbCBSZW5kZXJGbG93VGhyZWFk
OjpvYmplY3RTaG91bGRQYWludEluRmxvd1JlZ2lvbihjb25zdCBSZW5kZXJPYmplY3QqIG9iamVj
dCwgY29uc3QgUmVuZGVyUmVnaW9uKiByZWdpb24pIGNvbnN0Ci17Ci0gICAgQVNTRVJUKG9iamVj
dCk7Ci0gICAgQVNTRVJUKHJlZ2lvbik7Ci0gICAgCi0gICAgUmVuZGVyRmxvd1RocmVhZCogZmxv
d1RocmVhZCA9IG9iamVjdC0+Zmxvd1RocmVhZENvbnRhaW5pbmdCbG9jaygpOwotICAgIGlmIChm
bG93VGhyZWFkICE9IHRoaXMpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIW1fcmVn
aW9uTGlzdC5jb250YWlucyhjb25zdF9jYXN0PFJlbmRlclJlZ2lvbio+KHJlZ2lvbikpKQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgUmVuZGVyQm94KiBlbmNsb3NpbmdCb3ggPSBv
YmplY3QtPmVuY2xvc2luZ0JveCgpOwotICAgIFJlbmRlclJlZ2lvbiogZW5jbG9zaW5nQm94U3Rh
cnRSZWdpb24gPSAwOwotICAgIFJlbmRlclJlZ2lvbiogZW5jbG9zaW5nQm94RW5kUmVnaW9uID0g
MDsKLSAgICBnZXRSZWdpb25SYW5nZUZvckJveChlbmNsb3NpbmdCb3gsIGVuY2xvc2luZ0JveFN0
YXJ0UmVnaW9uLCBlbmNsb3NpbmdCb3hFbmRSZWdpb24pOwotICAgIAotICAgIC8vIElmIHRoZSBi
b3ggaGFzIG5vIHJhbmdlLCBkbyBub3QgY2hlY2sgcmVnaW9uSW5SYW5nZS4gQm94ZXMgaW5zaWRl
IGlubGluZXMgZG8gbm90IGdldCByYW5nZXMuCi0gICAgLy8gSW5zdGVhZCwgdGhlIGNvbnRhaW5p
bmcgUm9vdElubGluZUJveCB3aWxsIGFib3J0IHdoZW4gdHJ5aW5nIHRvIHBhaW50IGluc2lkZSB0
aGUgd3JvbmcgcmVnaW9uLgotICAgIGlmIChlbmNsb3NpbmdCb3hTdGFydFJlZ2lvbiAmJiBlbmNs
b3NpbmdCb3hFbmRSZWdpb24gJiYgIXJlZ2lvbkluUmFuZ2UocmVnaW9uLCBlbmNsb3NpbmdCb3hT
dGFydFJlZ2lvbiwgZW5jbG9zaW5nQm94RW5kUmVnaW9uKSkKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIAotICAgIHJldHVybiBvYmplY3QtPmlzQm94KCk7Ci19CiAKIGJvb2wgUmVuZGVyRmxv
d1RocmVhZDo6b2JqZWN0SW5GbG93UmVnaW9uKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0LCBj
b25zdCBSZW5kZXJSZWdpb24qIHJlZ2lvbikgY29uc3QKIHsKQEAgLTEyNTYsOSArMTMxMiwxNSBA
QCBMYXlvdXRSZWN0IFJlbmRlckZsb3dUaHJlYWQ6Om1hcEZyb21Mb2NhbFRvRmxvd1RocmVhZChj
b25zdCBSZW5kZXJCb3gqIGJveCwgY29ucwogICAgICAgICAgICAgcmV0dXJuIExheW91dFJlY3Qo
KTsKICAgICAgICAgTGF5b3V0UG9pbnQgY3VycmVudEJveExvY2F0aW9uID0gYm94LT5sb2NhdGlv
bigpOwogCi0gICAgICAgIGlmIChjb250YWluZXJCbG9jay0+c3R5bGUoKS53cml0aW5nTW9kZSgp
ICE9IGJveC0+c3R5bGUoKS53cml0aW5nTW9kZSgpKQorICAgICAgICBpZiAoY29udGFpbmVyQmxv
Y2stPnN0eWxlKCkud3JpdGluZ01vZGUoKSAhPSBib3gtPnN0eWxlKCkud3JpdGluZ01vZGUoKSkg
eworICAgICAgICAgICAgaWYgKGNvbnRhaW5lckJsb2NrLT5zdHlsZSgpLmlzRmxpcHBlZEJsb2Nr
c1dyaXRpbmdNb2RlKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoY29udGFpbmVyQmxvY2stPmlz
SG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCisgICAgICAgICAgICAgICAgICAgIGJveFJlY3Quc2V0
WShib3gtPmhlaWdodCgpIC0gYm94UmVjdC5tYXhZKCkpOworICAgICAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICAgICAgYm94UmVjdC5zZXRYKGJveC0+d2lkdGgoKSAtIGJveFJlY3Qu
bWF4WCgpKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJveC0+ZmxpcEZvcldyaXRpbmdN
b2RlKGJveFJlY3QpOwotCisgICAgICAgIH0KICAgICAgICAgYm94UmVjdC5tb3ZlQnkoY3VycmVu
dEJveExvY2F0aW9uKTsKICAgICAgICAgYm94ID0gY29udGFpbmVyQmxvY2s7CiAgICAgfQpAQCAt
MTI4Miw2MyArMTM0NCwxNyBAQCBMYXlvdXRSZWN0IFJlbmRlckZsb3dUaHJlYWQ6Om1hcEZyb21G
bG93VGhyZWFkVG9Mb2NhbChjb25zdCBSZW5kZXJCb3gqIGJveCwgY29ucwogICAgIExheW91dFBv
aW50IGN1cnJlbnRCb3hMb2NhdGlvbiA9IGJveC0+bG9jYXRpb24oKTsKICAgICBsb2NhbFJlY3Qu
bW92ZUJ5KC1jdXJyZW50Qm94TG9jYXRpb24pOwogCi0gICAgaWYgKGNvbnRhaW5lckJsb2NrLT5z
dHlsZSgpLndyaXRpbmdNb2RlKCkgIT0gYm94LT5zdHlsZSgpLndyaXRpbmdNb2RlKCkpCi0gICAg
ICAgIGJveC0+ZmxpcEZvcldyaXRpbmdNb2RlKGxvY2FsUmVjdCk7Ci0KLSAgICByZXR1cm4gbG9j
YWxSZWN0OwotfQotCi1MYXlvdXRSZWN0IFJlbmRlckZsb3dUaHJlYWQ6OmRlY29yYXRpb25zQ2xp
cFJlY3RGb3JCb3hJblJlZ2lvbihjb25zdCBSZW5kZXJCb3gmIGJveCwgUmVuZGVyUmVnaW9uJiBy
ZWdpb24pIGNvbnN0Ci17Ci0gICAgTGF5b3V0UmVjdCB2aXN1YWxPdmVyZmxvd1JlY3QgPSByZWdp
b24udmlzdWFsT3ZlcmZsb3dSZWN0Rm9yQm94KCZib3gpOwotICAgIAotICAgIC8vIFRoZSB2aXN1
YWwgb3ZlcmZsb3cgcmVjdCByZXR1cm5lZCBieSB2aXN1YWxPdmVyZmxvd1JlY3RGb3JCb3ggaXMg
YWxyZWFkeSBmbGlwcGVkIGJ1dCB0aGUKLSAgICAvLyBSZW5kZXJSZWdpb246OnJlY3RGbG93UG9y
dGlvbkZvckJveCBtZXRob2QgZXhwZWN0cyBpdCB1bmZsaXBwZWQuCi0gICAgZmxpcEZvcldyaXRp
bmdNb2RlTG9jYWxDb29yZGluYXRlcyh2aXN1YWxPdmVyZmxvd1JlY3QpOwotICAgIHZpc3VhbE92
ZXJmbG93UmVjdCA9IHJlZ2lvbi5yZWN0Rmxvd1BvcnRpb25Gb3JCb3goJmJveCwgdmlzdWFsT3Zl
cmZsb3dSZWN0KTsKLSAgICAKLSAgICAvLyBOb3cgZmxpcCBpdCBhZ2Fpbi4KLSAgICBmbGlwRm9y
V3JpdGluZ01vZGVMb2NhbENvb3JkaW5hdGVzKHZpc3VhbE92ZXJmbG93UmVjdCk7Ci0gICAgCi0g
ICAgLy8gTGF5ZXJzIGFyZSBpbiBwaHlzaWNhbCBjb29yZGluYXRlcyBzbyB0aGUgb3JpZ2luIG11
c3QgYmUgbW92ZWQgdG8gdGhlIHBoeXNpY2FsIHRvcC1sZWZ0IG9mIHRoZSBmbG93dGhyZWFkLgot
ICAgIGlmIChzdHlsZSgpLmlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKCkpIHsKLSAgICAgICAg
aWYgKHN0eWxlKCkuaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkKLSAgICAgICAgICAgIHZpc3Vh
bE92ZXJmbG93UmVjdC5tb3ZlQnkoTGF5b3V0UG9pbnQoMCwgaGVpZ2h0KCkpKTsKLSAgICAgICAg
ZWxzZQotICAgICAgICAgICAgdmlzdWFsT3ZlcmZsb3dSZWN0Lm1vdmVCeShMYXlvdXRQb2ludCh3
aWR0aCgpLCAwKSk7Ci0gICAgfQotICAgIAotICAgIGNvbnN0IFJlbmRlckJveCogaXRlckJveCA9
ICZib3g7Ci0gICAgd2hpbGUgKGl0ZXJCb3ggJiYgaXRlckJveCAhPSB0aGlzKSB7Ci0gICAgICAg
IFJlbmRlckJsb2NrKiBjb250YWluZXJCbG9jayA9IGl0ZXJCb3gtPmNvbnRhaW5pbmdCbG9jaygp
OwotICAgICAgICAKLSAgICAgICAgTGF5b3V0UmVjdCBjdXJyZW50Qm94UmVjdCA9IGl0ZXJCb3gt
PmZyYW1lUmVjdCgpOwotICAgICAgICBpZiAoaXRlckJveC0+c3R5bGUoKS5pc0ZsaXBwZWRCbG9j
a3NXcml0aW5nTW9kZSgpKSB7Ci0gICAgICAgICAgICBpZiAoaXRlckJveC0+c3R5bGUoKS5pc0hv
cml6b250YWxXcml0aW5nTW9kZSgpKQotICAgICAgICAgICAgICAgIGN1cnJlbnRCb3hSZWN0LnNl
dFkoY3VycmVudEJveFJlY3QuaGVpZ2h0KCkgLSBjdXJyZW50Qm94UmVjdC5tYXhZKCkpOworICAg
IGlmIChjb250YWluZXJCbG9jay0+c3R5bGUoKS53cml0aW5nTW9kZSgpICE9IGJveC0+c3R5bGUo
KS53cml0aW5nTW9kZSgpKSB7CisgICAgICAgIGlmIChjb250YWluZXJCbG9jay0+c3R5bGUoKS5p
c0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSgpKSB7CisgICAgICAgICAgICBpZiAoY29udGFpbmVy
QmxvY2stPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCisgICAgICAgICAgICAgICAgbG9jYWxS
ZWN0LnNldFkoYm94LT5oZWlnaHQoKSAtIGxvY2FsUmVjdC5tYXhZKCkpOwogICAgICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgICAgIGN1cnJlbnRCb3hSZWN0LnNldFgoY3VycmVudEJveFJlY3Qu
d2lkdGgoKSAtIGN1cnJlbnRCb3hSZWN0Lm1heFgoKSk7CisgICAgICAgICAgICAgICAgbG9jYWxS
ZWN0LnNldFgoYm94LT53aWR0aCgpIC0gbG9jYWxSZWN0Lm1heFgoKSk7CiAgICAgICAgIH0KLSAg
ICAgICAgCi0gICAgICAgIGlmIChjb250YWluZXJCbG9jay0+c3R5bGUoKS53cml0aW5nTW9kZSgp
ICE9IGl0ZXJCb3gtPnN0eWxlKCkud3JpdGluZ01vZGUoKSkKLSAgICAgICAgICAgIGl0ZXJCb3gt
PmZsaXBGb3JXcml0aW5nTW9kZShjdXJyZW50Qm94UmVjdCk7Ci0gICAgICAgIAotICAgICAgICB2
aXN1YWxPdmVyZmxvd1JlY3QubW92ZUJ5KGN1cnJlbnRCb3hSZWN0LmxvY2F0aW9uKCkpOwotICAg
ICAgICBpdGVyQm94ID0gY29udGFpbmVyQmxvY2s7CisgICAgICAgIGJveC0+ZmxpcEZvcldyaXRp
bmdNb2RlKGxvY2FsUmVjdCk7CiAgICAgfQotICAgIAotICAgIHJldHVybiB2aXN1YWxPdmVyZmxv
d1JlY3Q7Ci19CiAKLXZvaWQgUmVuZGVyRmxvd1RocmVhZDo6ZmxpcEZvcldyaXRpbmdNb2RlTG9j
YWxDb29yZGluYXRlcyhMYXlvdXRSZWN0JiByZWN0KSBjb25zdAotewotICAgIGlmICghc3R5bGUo
KS5pc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSgpKQotICAgICAgICByZXR1cm47Ci0gICAgCi0g
ICAgaWYgKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCi0gICAgICAgIHJlY3Quc2V0WSgwIC0g
cmVjdC5tYXhZKCkpOwotICAgIGVsc2UKLSAgICAgICAgcmVjdC5zZXRYKDAgLSByZWN0Lm1heFgo
KSk7CisgICAgcmV0dXJuIGxvY2FsUmVjdDsKIH0KIAogdm9pZCBSZW5kZXJGbG93VGhyZWFkOjph
ZGRSZWdpb25zVmlzdWFsRWZmZWN0T3ZlcmZsb3coY29uc3QgUmVuZGVyQm94KiBib3gpCkBAIC0x
MzkzLDIxICsxNDA5LDE1IEBAIHZvaWQgUmVuZGVyRmxvd1RocmVhZDo6YWRkUmVnaW9uc092ZXJm
bG93RnJvbUNoaWxkKGNvbnN0IFJlbmRlckJveCogYm94LCBjb25zdCBSCiAKICAgICBmb3IgKGF1
dG8gaXRlciA9IG1fcmVnaW9uTGlzdC5maW5kKHN0YXJ0UmVnaW9uKSwgZW5kID0gbV9yZWdpb25M
aXN0LmVuZCgpOyBpdGVyICE9IGVuZDsgKytpdGVyKSB7CiAgICAgICAgIFJlbmRlclJlZ2lvbiog
cmVnaW9uID0gKml0ZXI7Ci0gICAgICAgIGlmICghcmVnaW9uSW5SYW5nZShyZWdpb24sIGNvbnRh
aW5lclN0YXJ0UmVnaW9uLCBjb250YWluZXJFbmRSZWdpb24pKSB7Ci0gICAgICAgICAgICBpZiAo
cmVnaW9uID09IGVuZFJlZ2lvbikKLSAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgaWYg
KCFyZWdpb25JblJhbmdlKHJlZ2lvbiwgY29udGFpbmVyU3RhcnRSZWdpb24sIGNvbnRhaW5lckVu
ZFJlZ2lvbikpCiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQogCiAgICAgICAgIExh
eW91dFJlY3QgY2hpbGRMYXlvdXRPdmVyZmxvd1JlY3QgPSByZWdpb24tPmxheW91dE92ZXJmbG93
UmVjdEZvckJveEZvclByb3BhZ2F0aW9uKGNoaWxkKTsKICAgICAgICAgY2hpbGRMYXlvdXRPdmVy
Zmxvd1JlY3QubW92ZShkZWx0YSk7CiAgICAgICAgIHJlZ2lvbi0+YWRkTGF5b3V0T3ZlcmZsb3dG
b3JCb3goYm94LCBjaGlsZExheW91dE92ZXJmbG93UmVjdCk7CiAKLSAgICAgICAgaWYgKGNoaWxk
LT5oYXNTZWxmUGFpbnRpbmdMYXllcigpIHx8IGJveC0+aGFzT3ZlcmZsb3dDbGlwKCkpIHsKLSAg
ICAgICAgICAgIGlmIChyZWdpb24gPT0gZW5kUmVnaW9uKQotICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBpZiAoY2hpbGQtPmhhc1NlbGZQYWludGluZ0xheWVyKCkgfHwgYm94LT5oYXNP
dmVyZmxvd0NsaXAoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9CiAgICAgICAg
IExheW91dFJlY3QgY2hpbGRWaXN1YWxPdmVyZmxvd1JlY3QgPSByZWdpb24tPnZpc3VhbE92ZXJm
bG93UmVjdEZvckJveEZvclByb3BhZ2F0aW9uKGNoaWxkKTsKICAgICAgICAgY2hpbGRWaXN1YWxP
dmVyZmxvd1JlY3QubW92ZShkZWx0YSk7CiAgICAgICAgIHJlZ2lvbi0+YWRkVmlzdWFsT3ZlcmZs
b3dGb3JCb3goYm94LCBjaGlsZFZpc3VhbE92ZXJmbG93UmVjdCk7CkBAIC0xNDE2LDcgKzE0MjYs
NyBAQCB2b2lkIFJlbmRlckZsb3dUaHJlYWQ6OmFkZFJlZ2lvbnNPdmVyZmxvd0Zyb21DaGlsZChj
b25zdCBSZW5kZXJCb3gqIGJveCwgY29uc3QgUgogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQog
fQotICAgIAorCiB2b2lkIFJlbmRlckZsb3dUaHJlYWQ6OmFkZFJlZ2lvbnNMYXlvdXRPdmVyZmxv
dyhjb25zdCBSZW5kZXJCb3gqIGJveCwgY29uc3QgTGF5b3V0UmVjdCYgbGF5b3V0T3ZlcmZsb3cp
CiB7CiAgICAgUmVuZGVyUmVnaW9uKiBzdGFydFJlZ2lvbiA9IDA7CkBAIC0xNDM0LDIzICsxNDQ0
LDYgQEAgdm9pZCBSZW5kZXJGbG93VGhyZWFkOjphZGRSZWdpb25zTGF5b3V0T3ZlcmZsb3coY29u
c3QgUmVuZGVyQm94KiBib3gsIGNvbnN0IExheW8KICAgICB9CiB9CiAKLXZvaWQgUmVuZGVyRmxv
d1RocmVhZDo6YWRkUmVnaW9uc1Zpc3VhbE92ZXJmbG93KGNvbnN0IFJlbmRlckJveCogYm94LCBj
b25zdCBMYXlvdXRSZWN0JiB2aXN1YWxPdmVyZmxvdykKLXsKLSAgICBSZW5kZXJSZWdpb24qIHN0
YXJ0UmVnaW9uID0gMDsKLSAgICBSZW5kZXJSZWdpb24qIGVuZFJlZ2lvbiA9IDA7Ci0gICAgZ2V0
UmVnaW9uUmFuZ2VGb3JCb3goYm94LCBzdGFydFJlZ2lvbiwgZW5kUmVnaW9uKTsKLSAgICAKLSAg
ICBmb3IgKFJlbmRlclJlZ2lvbkxpc3Q6Oml0ZXJhdG9yIGl0ZXIgPSBtX3JlZ2lvbkxpc3QuZmlu
ZChzdGFydFJlZ2lvbik7IGl0ZXIgIT0gbV9yZWdpb25MaXN0LmVuZCgpOyArK2l0ZXIpIHsKLSAg
ICAgICAgUmVuZGVyUmVnaW9uKiByZWdpb24gPSAqaXRlcjsKLSAgICAgICAgTGF5b3V0UmVjdCB2
aXN1YWxPdmVyZmxvd0luUmVnaW9uID0gcmVnaW9uLT5yZWN0Rmxvd1BvcnRpb25Gb3JCb3goYm94
LCB2aXN1YWxPdmVyZmxvdyk7Ci0gICAgICAgIAotICAgICAgICByZWdpb24tPmFkZFZpc3VhbE92
ZXJmbG93Rm9yQm94KGJveCwgdmlzdWFsT3ZlcmZsb3dJblJlZ2lvbik7Ci0gICAgICAgIAotICAg
ICAgICBpZiAocmVnaW9uID09IGVuZFJlZ2lvbikKLSAgICAgICAgICAgIGJyZWFrOwotICAgIH0K
LX0KLQogdm9pZCBSZW5kZXJGbG93VGhyZWFkOjpjbGVhclJlZ2lvbnNPdmVyZmxvdyhjb25zdCBS
ZW5kZXJCb3gqIGJveCkKIHsKICAgICBSZW5kZXJSZWdpb24qIHN0YXJ0UmVnaW9uID0gMDsKQEAg
LTE0NzYsOCArMTQ2OSw3IEBAIEN1cnJlbnRSZW5kZXJGbG93VGhyZWFkTWFpbnRhaW5lcjo6Q3Vy
cmVudFJlbmRlckZsb3dUaHJlYWRNYWludGFpbmVyKFJlbmRlckZsb3dUCiAgICAgICAgIHJldHVy
bjsKICAgICBGbG93VGhyZWFkQ29udHJvbGxlciYgY29udHJvbGxlciA9IG1fcmVuZGVyRmxvd1Ro
cmVhZC0+dmlldygpLmZsb3dUaHJlYWRDb250cm9sbGVyKCk7CiAgICAgbV9wcmV2aW91c1JlbmRl
ckZsb3dUaHJlYWQgPSBjb250cm9sbGVyLmN1cnJlbnRSZW5kZXJGbG93VGhyZWFkKCk7Ci0gICAg
Ly8gUmVtb3ZlIHRoZSBhc3NlcnQgc28gd2UgY2FuIHVzZSB0aGlzIHRvIGNoYW5nZSB0aGUgZmxv
dyB0aHJlYWQgY29udGV4dC4KLSAgICAvLyBBU1NFUlQoIW1fcHJldmlvdXNSZW5kZXJGbG93VGhy
ZWFkIHx8ICFyZW5kZXJGbG93VGhyZWFkLT5pc1JlbmRlck5hbWVkRmxvd1RocmVhZCgpKTsKKyAg
ICBBU1NFUlQoIW1fcHJldmlvdXNSZW5kZXJGbG93VGhyZWFkIHx8ICFyZW5kZXJGbG93VGhyZWFk
LT5pc1JlbmRlck5hbWVkRmxvd1RocmVhZCgpKTsKICAgICBjb250cm9sbGVyLnNldEN1cnJlbnRS
ZW5kZXJGbG93VGhyZWFkKG1fcmVuZGVyRmxvd1RocmVhZCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oCmluZGV4IGE5Zjc2YTFhMjk4NzhkMmM1ZWQz
NzQ5N2U3NjQyZjA2NDVlZWIxMTcuLjU2Y2IyZTZkZjdkNDA5OTRlYzM5ODA2NDIwMmEzOGRiZDRh
OWNlZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhy
ZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaApA
QCAtODMsNiArODMsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUxvZ2ljYWxX
aWR0aCgpIE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlTG9naWNhbEhl
aWdodChMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQsIExheW91dFVuaXQgbG9naWNhbFRvcCwgTG9n
aWNhbEV4dGVudENvbXB1dGVkVmFsdWVzJikgY29uc3QgT1ZFUlJJREU7CiAKKyAgICB2b2lkIHBh
aW50Rmxvd1RocmVhZFBvcnRpb25JblJlZ2lvbihQYWludEluZm8mLCBSZW5kZXJSZWdpb24qLCBj
b25zdCBMYXlvdXRSZWN0JiBmbG93VGhyZWFkUG9ydGlvblJlY3QsIGNvbnN0IExheW91dFJlY3Qm
IGZsb3dUaHJlYWRQb3J0aW9uT3ZlcmZsb3dSZWN0LCBjb25zdCBMYXlvdXRQb2ludCYpIGNvbnN0
OworICAgIGJvb2wgaGl0VGVzdEZsb3dUaHJlYWRQb3J0aW9uSW5SZWdpb24oUmVuZGVyUmVnaW9u
KiwgY29uc3QgTGF5b3V0UmVjdCYgZmxvd1RocmVhZFBvcnRpb25SZWN0LCBjb25zdCBMYXlvdXRS
ZWN0JiBmbG93VGhyZWFkUG9ydGlvbk92ZXJmbG93UmVjdCwgY29uc3QgSGl0VGVzdFJlcXVlc3Qm
LCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlvbkluQ29udGFp
bmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQpIGNvbnN0OwogICAgIHZp
cnR1YWwgYm9vbCBub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1
bHQmLCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5Db250YWluZXIsIGNvbnN0IExh
eW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFjdGlvbikgT1ZFUlJJREU7CiAK
ICAgICBib29sIGhhc1JlZ2lvbnMoKSBjb25zdCB7IHJldHVybiBtX3JlZ2lvbkxpc3Quc2l6ZSgp
OyB9CkBAIC0xNDMsOSArMTQ1LDYgQEAgcHVibGljOgogCiAgICAgLy8gQ2hlY2sgaWYgdGhlIG9i
amVjdCBpcyBpbiByZWdpb24gYW5kIHRoZSByZWdpb24gaXMgcGFydCBvZiB0aGlzIGZsb3cgdGhy
ZWFkLgogICAgIGJvb2wgb2JqZWN0SW5GbG93UmVnaW9uKGNvbnN0IFJlbmRlck9iamVjdCosIGNv
bnN0IFJlbmRlclJlZ2lvbiopIGNvbnN0OwotICAgIAotICAgIC8vIENoZWNrIGlmIHRoZSBvYmpl
Y3Qgc2hvdWxkIGJlIHBhaW50ZWQgaW4gdGhpcyByZWdpb24gYW5kIGlmIHRoZSByZWdpb24gaXMg
cGFydCBvZiB0aGlzIGZsb3cgdGhyZWFkLgotICAgIGJvb2wgb2JqZWN0U2hvdWxkUGFpbnRJbkZs
b3dSZWdpb24oY29uc3QgUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyUmVnaW9uKikgY29uc3Q7
CiAKICAgICB2b2lkIG1hcmtBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnNGb3JMYXlvdXQoKTsKICAg
ICB2b2lkIG1hcmtSZWdpb25zRm9yT3ZlcmZsb3dMYXlvdXRJZk5lZWRlZCgpOwpAQCAtMjA2LDI0
ICsyMDUsMTcgQEAgcHVibGljOgogICAgIExheW91dFVuaXQgb2Zmc2V0RnJvbUxvZ2ljYWxUb3BP
ZkZpcnN0UmVnaW9uKGNvbnN0IFJlbmRlckJsb2NrKikgY29uc3Q7CiAgICAgdm9pZCBjbGVhclJl
bmRlckJveFJlZ2lvbkluZm9BbmRDdXN0b21TdHlsZShjb25zdCBSZW5kZXJCb3gqLCBjb25zdCBS
ZW5kZXJSZWdpb24qLCBjb25zdCBSZW5kZXJSZWdpb24qLCBjb25zdCBSZW5kZXJSZWdpb24qLCBj
b25zdCBSZW5kZXJSZWdpb24qKTsKIAorICAgIExheW91dFJlY3QgbWFwRnJvbUZsb3dUaHJlYWRU
b0xvY2FsKGNvbnN0IFJlbmRlckJveCosIGNvbnN0IExheW91dFJlY3QmKSBjb25zdDsKKyAgICBM
YXlvdXRSZWN0IG1hcEZyb21Mb2NhbFRvRmxvd1RocmVhZChjb25zdCBSZW5kZXJCb3gqLCBjb25z
dCBMYXlvdXRSZWN0JikgY29uc3Q7CisKICAgICB2b2lkIGFkZFJlZ2lvbnNWaXN1YWxFZmZlY3RP
dmVyZmxvdyhjb25zdCBSZW5kZXJCb3gqKTsKICAgICB2b2lkIGFkZFJlZ2lvbnNWaXN1YWxPdmVy
Zmxvd0Zyb21UaGVtZShjb25zdCBSZW5kZXJCbG9jayopOwogICAgIHZvaWQgYWRkUmVnaW9uc092
ZXJmbG93RnJvbUNoaWxkKGNvbnN0IFJlbmRlckJveCosIGNvbnN0IFJlbmRlckJveCosIGNvbnN0
IExheW91dFNpemUmKTsKICAgICB2b2lkIGFkZFJlZ2lvbnNMYXlvdXRPdmVyZmxvdyhjb25zdCBS
ZW5kZXJCb3gqLCBjb25zdCBMYXlvdXRSZWN0Jik7Ci0gICAgdm9pZCBhZGRSZWdpb25zVmlzdWFs
T3ZlcmZsb3coY29uc3QgUmVuZGVyQm94KiwgY29uc3QgTGF5b3V0UmVjdCYpOwogICAgIHZvaWQg
Y2xlYXJSZWdpb25zT3ZlcmZsb3coY29uc3QgUmVuZGVyQm94Kik7CiAKLSAgICBMYXlvdXRSZWN0
IG1hcEZyb21GbG93VGhyZWFkVG9Mb2NhbChjb25zdCBSZW5kZXJCb3gqLCBjb25zdCBMYXlvdXRS
ZWN0JikgY29uc3Q7Ci0gICAgTGF5b3V0UmVjdCBtYXBGcm9tTG9jYWxUb0Zsb3dUaHJlYWQoY29u
c3QgUmVuZGVyQm94KiwgY29uc3QgTGF5b3V0UmVjdCYpIGNvbnN0OwotICAgIAotICAgIExheW91
dFJlY3QgZGVjb3JhdGlvbnNDbGlwUmVjdEZvckJveEluUmVnaW9uKGNvbnN0IFJlbmRlckJveCYs
IFJlbmRlclJlZ2lvbiYpIGNvbnN0OwotICAgIAotICAgIHZvaWQgZmxpcEZvcldyaXRpbmdNb2Rl
TG9jYWxDb29yZGluYXRlcyhMYXlvdXRSZWN0JikgY29uc3Q7Ci0KICAgICAvLyBVc2VkIHRvIGVz
dGltYXRlIHRoZSBtYXhpbXVtIGhlaWdodCBvZiB0aGUgZmxvdyB0aHJlYWQuCiAgICAgc3RhdGlj
IExheW91dFVuaXQgbWF4TG9naWNhbEhlaWdodCgpIHsgcmV0dXJuIExheW91dFVuaXQ6Om1heCgp
IC8gMjsgfQotICAgIAotICAgIGJvb2wgcmVnaW9uSW5SYW5nZShjb25zdCBSZW5kZXJSZWdpb24q
IHRhcmdldFJlZ2lvbiwgY29uc3QgUmVuZGVyUmVnaW9uKiBzdGFydFJlZ2lvbiwgY29uc3QgUmVu
ZGVyUmVnaW9uKiBlbmRSZWdpb24pIGNvbnN0OwogCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBj
b25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3QgPSAwOwpAQCAtMjM2LDYgKzIyOCw3IEBAIHBy
b3RlY3RlZDoKIAogICAgIHZvaWQgdXBkYXRlUmVnaW9uc0Zsb3dUaHJlYWRQb3J0aW9uUmVjdChj
b25zdCBSZW5kZXJSZWdpb24qID0gMCk7CiAgICAgYm9vbCBzaG91bGRSZXBhaW50KGNvbnN0IExh
eW91dFJlY3QmKSBjb25zdDsKKyAgICBib29sIHJlZ2lvbkluUmFuZ2UoY29uc3QgUmVuZGVyUmVn
aW9uKiB0YXJnZXRSZWdpb24sIGNvbnN0IFJlbmRlclJlZ2lvbiogc3RhcnRSZWdpb24sIGNvbnN0
IFJlbmRlclJlZ2lvbiogZW5kUmVnaW9uKSBjb25zdDsKIAogICAgIExheW91dFJlY3QgY29tcHV0
ZVJlZ2lvbkNsaXBwaW5nUmVjdChjb25zdCBMYXlvdXRQb2ludCYsIGNvbnN0IExheW91dFJlY3Qm
LCBjb25zdCBMYXlvdXRSZWN0JikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuY3BwCmluZGV4IDM3ODllNzYyMzUwNGIxZjllNWM0OGViOTI4NDc5Mjc1NmFhYWNi
YTQuLjk2MzI0Yzc1Mzc3NjBmNGQ3MmY4MmRhYzgzZjg2ZTRhODVmMzA5OTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtODIsNyArODIsNiBAQAogI2luY2x1
ZGUgIlJlbmRlckdlb21ldHJ5TWFwLmgiCiAjaW5jbHVkZSAiUmVuZGVySW5saW5lLmgiCiAjaW5j
bHVkZSAiUmVuZGVyTWFycXVlZS5oIgotI2luY2x1ZGUgIlJlbmRlck5hbWVkRmxvd0ZyYWdtZW50
LmgiCiAjaW5jbHVkZSAiUmVuZGVyTmFtZWRGbG93VGhyZWFkLmgiCiAjaW5jbHVkZSAiUmVuZGVy
UmVnaW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyUmVwbGljYS5oIgpAQCAtNDQzLDI1ICs0NDIsMTIg
QEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlTGF5ZXJQb3NpdGlvbnMoUmVuZGVyR2VvbWV0cnlN
YXAqIGdlb21ldHJ5TWFwLCBVcGRhdGVMYXkKICAgICAgICAgLy8gYXMgdGhlIHZhbHVlIG5vdCB1
c2luZyB0aGUgY2FjaGVkIG9mZnNldCwgYnV0IHdlIGNhbid0IGR1ZSB0byBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzcwNDgKICAgICAgICAgaWYgKGZsYWdzICYgQ2hl
Y2tGb3JSZXBhaW50KSB7CiAgICAgICAgICAgICBpZiAoIXJlbmRlcmVyKCkudmlldygpLnByaW50
aW5nKCkpIHsKLSAgICAgICAgICAgICAgICBib29sIGRpZFJlcGFpbnQgPSBmYWxzZTsKICAgICAg
ICAgICAgICAgICBpZiAobV9yZXBhaW50U3RhdHVzICYgTmVlZHNGdWxsUmVwYWludCkgewogICAg
ICAgICAgICAgICAgICAgICByZW5kZXJlcigpLnJlcGFpbnRVc2luZ0NvbnRhaW5lcihyZXBhaW50
Q29udGFpbmVyLCBwaXhlbFNuYXBwZWRJbnRSZWN0KG9sZFJlcGFpbnRSZWN0KSk7Ci0gICAgICAg
ICAgICAgICAgICAgIGlmIChtX3JlcGFpbnRSZWN0ICE9IG9sZFJlcGFpbnRSZWN0KSB7CisgICAg
ICAgICAgICAgICAgICAgIGlmIChtX3JlcGFpbnRSZWN0ICE9IG9sZFJlcGFpbnRSZWN0KQogICAg
ICAgICAgICAgICAgICAgICAgICAgcmVuZGVyZXIoKS5yZXBhaW50VXNpbmdDb250YWluZXIocmVw
YWludENvbnRhaW5lciwgcGl4ZWxTbmFwcGVkSW50UmVjdChtX3JlcGFpbnRSZWN0KSk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBkaWRSZXBhaW50ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc2hvdWxkUmVwYWludEFmdGVyTGF5b3V0
KCkpIHsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHNob3VsZFJlcGFpbnRBZnRlckxheW91
dCgpKQogICAgICAgICAgICAgICAgICAgICByZW5kZXJlcigpLnJlcGFpbnRBZnRlckxheW91dElm
TmVlZGVkKHJlcGFpbnRDb250YWluZXIsIG9sZFJlcGFpbnRSZWN0LCBvbGRPdXRsaW5lQm94LCAm
bV9yZXBhaW50UmVjdCwgJm1fb3V0bGluZUJveCk7Ci0gICAgICAgICAgICAgICAgICAgIGRpZFJl
cGFpbnQgPSB0cnVlOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIGlmIChk
aWRSZXBhaW50ICYmIHJlbmRlcmVyKCkuaXNSZW5kZXJOYW1lZEZsb3dGcmFnbWVudENvbnRhaW5l
cigpKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIElmIHdlIGp1c3QgcmVwYWludGVkIGEgcmVn
aW9uLCB3ZSBtdXN0IGFsc28gcmVwYWludCB0aGUgZmxvdyB0aHJlYWQgc2luY2UgaXQgaXMgdGhl
IG9uZQotICAgICAgICAgICAgICAgICAgICAvLyBkb2luZyB0aGUgYWN0dWFsIHBhaW50aW5nIG9m
IHRoZSBmbG93ZWQgY29udGVudC4KLSAgICAgICAgICAgICAgICAgICAgUmVuZGVyTmFtZWRGbG93
RnJhZ21lbnQqIHJlZ2lvbiA9IHRvUmVuZGVyQmxvY2tGbG93KCZyZW5kZXJlcigpKS0+cmVuZGVy
TmFtZWRGbG93RnJhZ21lbnQoKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHJlZ2lvbi0+Zmxv
d1RocmVhZCgpKQotICAgICAgICAgICAgICAgICAgICAgICAgcmVnaW9uLT5mbG93VGhyZWFkKCkt
PmxheWVyKCktPnJlcGFpbnRJbmNsdWRpbmdEZXNjZW5kYW50cygpOwotICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0gZWxzZQpAQCAtMTYzOCwyOCArMTYy
NCw2IEBAIGVudW0gVHJhbnNwYXJlbmN5Q2xpcEJveE1vZGUgewogCiBzdGF0aWMgTGF5b3V0UmVj
dCB0cmFuc3BhcmVuY3lDbGlwQm94KGNvbnN0IFJlbmRlckxheWVyKiwgY29uc3QgUmVuZGVyTGF5
ZXIqIHJvb3RMYXllciwgVHJhbnNwYXJlbmN5Q2xpcEJveEJlaGF2aW9yLCBUcmFuc3BhcmVuY3lD
bGlwQm94TW9kZSwgUGFpbnRCZWhhdmlvciA9IDApOwogCi1zdGF0aWMgdm9pZCBleHBhbmRDbGlw
UmVjdEZvclJlZ2lvbkFuZFJlZmxlY3Rpb24oTGF5b3V0UmVjdCYgY2xpcFJlY3QsIGNvbnN0IFJl
bmRlckxheWVyKiBsYXllciwgY29uc3QgUmVuZGVyTGF5ZXIqIHJvb3RMYXllciwKLSAgICBUcmFu
c3BhcmVuY3lDbGlwQm94QmVoYXZpb3IgdHJhbnNwYXJlbmN5QmVoYXZpb3IsIFBhaW50QmVoYXZp
b3IgcGFpbnRCZWhhdmlvcikKLXsKLSAgICAvLyBJZiB0aGlzIGlzIGEgcmVnaW9uLCB0aGVuIHRo
ZSBwYWludGluZyBpcyBhY3R1YWxseSBkb25lIGJ5IGl0cyBmbG93IHRocmVhZCdzIGxheWVyLgot
ICAgIGlmIChsYXllci0+cmVuZGVyZXIoKS5pc1JlbmRlck5hbWVkRmxvd0ZyYWdtZW50Q29udGFp
bmVyKCkpIHsKLSAgICAgICAgUmVuZGVyQmxvY2tGbG93KiByZWdpb25Db250YWluZXIgPSB0b1Jl
bmRlckJsb2NrRmxvdygmbGF5ZXItPnJlbmRlcmVyKCkpOwotICAgICAgICBSZW5kZXJOYW1lZEZs
b3dGcmFnbWVudCogcmVnaW9uID0gcmVnaW9uQ29udGFpbmVyLT5yZW5kZXJOYW1lZEZsb3dGcmFn
bWVudCgpOwotICAgICAgICBSZW5kZXJMYXllciogZmxvd1RocmVhZExheWVyID0gcmVnaW9uLT5m
bG93VGhyZWFkKCktPmxheWVyKCk7Ci0gICAgICAgIGlmICghbGF5ZXItPnJlZmxlY3Rpb24oKSB8
fCBsYXllci0+cmVmbGVjdGlvbkxheWVyKCkgIT0gZmxvd1RocmVhZExheWVyKSB7Ci0gICAgICAg
ICAgICBMYXlvdXRSZWN0IGZsb3dUaHJlYWRDbGlwUmVjdCA9IHRyYW5zcGFyZW5jeUNsaXBCb3go
Zmxvd1RocmVhZExheWVyLCByb290TGF5ZXIsIHRyYW5zcGFyZW5jeUJlaGF2aW9yLCBEZXNjZW5k
YW50c09mVHJhbnNwYXJlbmN5Q2xpcEJveCwgcGFpbnRCZWhhdmlvcik7Ci0gICAgICAgICAgICAK
LSAgICAgICAgICAgIExheW91dFBvaW50IG9mZnNldEZyb21Sb290OwotICAgICAgICAgICAgbGF5
ZXItPmNvbnZlcnRUb0xheWVyQ29vcmRzKGZsb3dUaHJlYWRMYXllciwgb2Zmc2V0RnJvbVJvb3Qp
OwotCi0gICAgICAgICAgICBMYXlvdXRTaXplIG1vdmVPZmZzZXQgPSAob2Zmc2V0RnJvbVJvb3Qg
KyByZWdpb25Db250YWluZXItPmNvbnRlbnRCb3hSZWN0KCkubG9jYXRpb24oKSkgLSByZWdpb24t
PmZsb3dUaHJlYWRQb3J0aW9uUmVjdCgpLmxvY2F0aW9uKCk7Ci0gICAgICAgICAgICBmbG93VGhy
ZWFkQ2xpcFJlY3QubW92ZShtb3ZlT2Zmc2V0KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAg
Y2xpcFJlY3QudW5pdGUoZmxvd1RocmVhZENsaXBSZWN0KTsKLSAgICAgICAgfQotICAgIH0KLX0K
LQogc3RhdGljIHZvaWQgZXhwYW5kQ2xpcFJlY3RGb3JEZXNjZW5kYW50c0FuZFJlZmxlY3Rpb24o
TGF5b3V0UmVjdCYgY2xpcFJlY3QsIGNvbnN0IFJlbmRlckxheWVyKiBsYXllciwgY29uc3QgUmVu
ZGVyTGF5ZXIqIHJvb3RMYXllciwKICAgICBUcmFuc3BhcmVuY3lDbGlwQm94QmVoYXZpb3IgdHJh
bnNwYXJlbmN5QmVoYXZpb3IsIFBhaW50QmVoYXZpb3IgcGFpbnRCZWhhdmlvcikKIHsKQEAgLTE2
NzQsOCArMTYzOCw2IEBAIHN0YXRpYyB2b2lkIGV4cGFuZENsaXBSZWN0Rm9yRGVzY2VuZGFudHNB
bmRSZWZsZWN0aW9uKExheW91dFJlY3QmIGNsaXBSZWN0LCBjb25zCiAgICAgICAgIH0KICAgICB9
CiAKLSAgICBleHBhbmRDbGlwUmVjdEZvclJlZ2lvbkFuZFJlZmxlY3Rpb24oY2xpcFJlY3QsIGxh
eWVyLCByb290TGF5ZXIsIHRyYW5zcGFyZW5jeUJlaGF2aW9yLCBwYWludEJlaGF2aW9yKTsKLQog
ICAgIC8vIElmIHdlIGhhdmUgYSByZWZsZWN0aW9uLCB0aGVuIHdlIG5lZWQgdG8gYWNjb3VudCBm
b3IgdGhhdCB3aGVuIHdlIHB1c2ggdGhlIGNsaXAuICBSZWZsZWN0IG91ciBlbnRpcmUKICAgICAv
LyBjdXJyZW50IHRyYW5zcGFyZW5jeUNsaXBCb3ggdG8gY2F0Y2ggYWxsIGNoaWxkIGxheWVycy4K
ICAgICAvLyBGSVhNRTogQWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgd2lsbCBldmVudHVhbGx5IHdh
bnQgdG8gZG8gc29tZXRoaW5nIHNtYXJ0IGhlcmUgdG8gYXZvaWQgaW5jb3Jwb3JhdGluZyB0aGlz
CkBAIC0zNjQyLDI0ICszNjA0LDYgQEAgdm9pZCBSZW5kZXJMYXllcjo6cGFpbnRMYXllcihHcmFw
aGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IExheWVyUGFpbnRpbmdJbmZvJgogICAgIGlmICgh
cmVuZGVyZXIoKS5vcGFjaXR5KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIERvbid0IHBh
aW50IHRoZSBsYXllciBpZiB0aGUgcmVuZGVyZXIgZG9lc24ndCBiZWxvbmcgdG8gdGhpcyByZWdp
b24uCi0gICAgLy8gVGhpcyBpcyB0cnVlIGFzIGxvbmcgYXMgd2UgY2xhbXAgdGhlIHJhbmdlIG9m
IGEgYm94IHRvIGl0cyBjb250YWluaW5nIGJsb2NrIHJhbmdlLgotCi0gICAgLy8gRklYTUU6IEhh
Y2sgdG8gZGlzYWJsZSByZWdpb24gaW5mb3JtYXRpb24gZm9yIGluIGZsb3cgdGhyZWFkcy4gSW1w
bGVtZW50IHRoaXMgbG9naWMgaW4gYSBkaWZmZXJlbnQgd2F5LgotICAgIExheWVyUGFpbnRpbmdJ
bmZvJiBpbmZvID0gY29uc3RfY2FzdDxMYXllclBhaW50aW5nSW5mbyY+KHBhaW50aW5nSW5mbyk7
Ci0gICAgUmVuZGVyUmVnaW9uKiByZWdpb24gPSBpbmZvLnJlZ2lvbjsKLSAgICBpZiAocmVnaW9u
KSB7Ci0gICAgICAgIGlmIChlbmNsb3NpbmdQYWdpbmF0aW9uTGF5ZXIoKSkKLSAgICAgICAgICAg
IGluZm8ucmVnaW9uID0gMDsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBSZW5kZXJGbG93
VGhyZWFkKiBmbG93VGhyZWFkID0gcmVnaW9uLT5mbG93VGhyZWFkKCk7Ci0gICAgICAgICAgICBB
U1NFUlQoZmxvd1RocmVhZCk7Ci0KLSAgICAgICAgICAgIGlmICghZmxvd1RocmVhZC0+b2JqZWN0
U2hvdWxkUGFpbnRJbkZsb3dSZWdpb24oJnJlbmRlcmVyKCksIHJlZ2lvbikpCi0gICAgICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfQotCiAgICAgaWYgKHBhaW50c1dpdGhUcmFu
c3BhcmVuY3kocGFpbnRpbmdJbmZvLnBhaW50QmVoYXZpb3IpKQogICAgICAgICBwYWludEZsYWdz
IHw9IFBhaW50TGF5ZXJIYXZlVHJhbnNwYXJlbmN5OwogCkBAIC0zNjY3LDEwICszNjExLDggQEAg
dm9pZCBSZW5kZXJMYXllcjo6cGFpbnRMYXllcihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNv
bnN0IExheWVyUGFpbnRpbmdJbmZvJgogICAgIGlmIChwYWludHNXaXRoVHJhbnNmb3JtKHBhaW50
aW5nSW5mby5wYWludEJlaGF2aW9yKSAmJiAhKHBhaW50RmxhZ3MgJiBQYWludExheWVyQXBwbGll
ZFRyYW5zZm9ybSkpIHsKICAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbGF5ZXJUcmFuc2Zv
cm0gPSByZW5kZXJhYmxlVHJhbnNmb3JtKHBhaW50aW5nSW5mby5wYWludEJlaGF2aW9yKTsKICAg
ICAgICAgLy8gSWYgdGhlIHRyYW5zZm9ybSBjYW4ndCBiZSBpbnZlcnRlZCwgdGhlbiBkb24ndCBw
YWludCBhbnl0aGluZy4KLSAgICAgICAgaWYgKCFsYXllclRyYW5zZm9ybS5pc0ludmVydGlibGUo
KSkgewotICAgICAgICAgICAgaW5mby5yZWdpb24gPSByZWdpb247CisgICAgICAgIGlmICghbGF5
ZXJUcmFuc2Zvcm0uaXNJbnZlcnRpYmxlKCkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
IH0KIAogICAgICAgICAvLyBJZiB3ZSBoYXZlIGEgdHJhbnNwYXJlbmN5IGxheWVyIGVuY2xvc2lu
ZyB1cyBhbmQgd2UgYXJlIHRoZSByb290IG9mIGEgdHJhbnNmb3JtLCB0aGVuIHdlIG5lZWQgdG8g
ZXN0YWJsaXNoIHRoZSB0cmFuc3BhcmVuY3kKICAgICAgICAgLy8gbGF5ZXIgZnJvbSB0aGUgcGFy
ZW50IG5vdywgYXNzdW1pbmcgdGhlcmUgaXMgYSBwYXJlbnQKQEAgLTM2ODMsNyArMzYyNSw2IEBA
IHZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50TGF5ZXIoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBj
b25zdCBMYXllclBhaW50aW5nSW5mbyYKIAogICAgICAgICBpZiAoZW5jbG9zaW5nUGFnaW5hdGlv
bkxheWVyKCkpIHsKICAgICAgICAgICAgIHBhaW50VHJhbnNmb3JtZWRMYXllckludG9GcmFnbWVu
dHMoY29udGV4dCwgcGFpbnRpbmdJbmZvLCBwYWludEZsYWdzKTsKLSAgICAgICAgICAgIGluZm8u
cmVnaW9uID0gcmVnaW9uOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKQEAgLTM3
MDUsMTIgKzM2NDYsMTAgQEAgdm9pZCBSZW5kZXJMYXllcjo6cGFpbnRMYXllcihHcmFwaGljc0Nv
bnRleHQqIGNvbnRleHQsIGNvbnN0IExheWVyUGFpbnRpbmdJbmZvJgogICAgICAgICBpZiAocGFy
ZW50KCkpCiAgICAgICAgICAgICBwYXJlbnQoKS0+cmVzdG9yZUNsaXAoY29udGV4dCwgcGFpbnRp
bmdJbmZvLnBhaW50RGlydHlSZWN0LCBjbGlwUmVjdCk7CiAKLSAgICAgICAgaW5mby5yZWdpb24g
PSByZWdpb247CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCiAgICAgcGFpbnRMYXllckNv
bnRlbnRzQW5kUmVmbGVjdGlvbihjb250ZXh0LCBwYWludGluZ0luZm8sIHBhaW50RmxhZ3MpOwot
ICAgIGluZm8ucmVnaW9uID0gcmVnaW9uOwogfQogCiB2b2lkIFJlbmRlckxheWVyOjpwYWludExh
eWVyQ29udGVudHNBbmRSZWZsZWN0aW9uKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3Qg
TGF5ZXJQYWludGluZ0luZm8mIHBhaW50aW5nSW5mbywgUGFpbnRMYXllckZsYWdzIHBhaW50Rmxh
Z3MpCkBAIC0zOTc0LDExICszOTEzLDExIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50TGF5ZXJD
b250ZW50cyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IExheWVyUGFpbnRpCiAgICAg
ICAgIHBhaW50QmVoYXZpb3IgfD0gUGFpbnRCZWhhdmlvclJvb3RCYWNrZ3JvdW5kT25seTsKIAog
ICAgIExheWVyRnJhZ21lbnRzIGxheWVyRnJhZ21lbnRzOwotICAgIExheW91dFJlY3QgcGFpbnRE
aXJ0eVJlY3QgPSBsb2NhbFBhaW50aW5nSW5mby5wYWludERpcnR5UmVjdDsKICAgICBpZiAoc2hv
dWxkUGFpbnRDb250ZW50IHx8IHNob3VsZFBhaW50T3V0bGluZSB8fCBpc1BhaW50aW5nT3Zlcmxh
eVNjcm9sbGJhcnMpIHsKICAgICAgICAgLy8gQ29sbGVjdCB0aGUgZnJhZ21lbnRzLiBUaGlzIHdp
bGwgY29tcHV0ZSB0aGUgY2xpcCByZWN0YW5nbGVzIGFuZCBwYWludCBvZmZzZXRzIGZvciBlYWNo
IGxheWVyIGZyYWdtZW50LCBhcyB3ZWxsIGFzIHdoZXRoZXIgb3Igbm90IHRoZSBjb250ZW50IG9m
IGVhY2gKICAgICAgICAgLy8gZnJhZ21lbnQgc2hvdWxkIHBhaW50LiBJZiB0aGUgcGFyZW50J3Mg
ZmlsdGVyIGRpY3RhdGVzIGZ1bGwgcmVwYWludCB0byBlbnN1cmUgcHJvcGVyIGZpbHRlciBlZmZl
Y3QsCiAgICAgICAgIC8vIHVzZSB0aGUgb3ZlcmZsb3cgY2xpcCBhcyBkaXJ0eSByZWN0LCBpbnN0
ZWFkIG9mIG5vIGNsaXBwaW5nLiBJdCBtYWludGFpbnMgcHJvcGVyIGNsaXBwaW5nIGZvciBvdmVy
Zmxvdzo6c2Nyb2xsLgorICAgICAgICBMYXlvdXRSZWN0IHBhaW50RGlydHlSZWN0ID0gbG9jYWxQ
YWludGluZ0luZm8ucGFpbnREaXJ0eVJlY3Q7CiAgICAgICAgIGlmICghcGFpbnRpbmdJbmZvLmNs
aXBUb0RpcnR5UmVjdCAmJiByZW5kZXJlcigpLmhhc092ZXJmbG93Q2xpcCgpKSB7CiAgICAgICAg
ICAgICAvLyBXZSBjYW4gdHVybiBjbGlwcGluZyBiYWNrIGJ5IHJlcXVlc3RpbmcgZnVsbCByZXBh
aW50IGZvciB0aGUgb3ZlcmZsb3cgYXJlYS4KICAgICAgICAgICAgIGxvY2FsUGFpbnRpbmdJbmZv
LmNsaXBUb0RpcnR5UmVjdCA9IHRydWU7CkBAIC00MDE3LDExICszOTU2LDggQEAgdm9pZCBSZW5k
ZXJMYXllcjo6cGFpbnRMYXllckNvbnRlbnRzKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29u
c3QgTGF5ZXJQYWludGkKICAgICAgICAgLy8gTm93IHdhbGsgdGhlIHNvcnRlZCBsaXN0IG9mIGNo
aWxkcmVuIHdpdGggcG9zaXRpdmUgei1pbmRpY2VzLgogICAgICAgICBwYWludExpc3QocG9zWk9y
ZGVyTGlzdCgpLCBjb250ZXh0LCBsb2NhbFBhaW50aW5nSW5mbywgbG9jYWxQYWludEZsYWdzKTsK
IAotICAgICAgICAvLyBQYWludCB0aGUgZml4ZWQgZWxlbWVudHMgZnJvbSBmbG93IHRocmVhZHMu
CisgICAgICAgIC8vIFBhaW50IHRoZSBmaXhlZCBlbGVtZW50cyBmcm9tIGZsb3cgdGhyZWFkcwog
ICAgICAgICBwYWludEZpeGVkTGF5ZXJzSW5OYW1lZEZsb3dzKGNvbnRleHQsIGxvY2FsUGFpbnRp
bmdJbmZvLCBsb2NhbFBhaW50RmxhZ3MpOwotICAgICAgICAKLSAgICAgICAgLy8gSWYgdGhpcyBp
cyBhIHJlZ2lvbiwgcGFpbnQgaXRzIGNvbnRlbnRzIHZpYSB0aGUgZmxvdyB0aHJlYWQncyBsYXll
ci4KLSAgICAgICAgcGFpbnRGbG93VGhyZWFkSWZSZWdpb24oY29udGV4dCwgbG9jYWxQYWludGlu
Z0luZm8sIGxvY2FsUGFpbnRGbGFncywgb2Zmc2V0RnJvbVJvb3QsIHBhaW50RGlydHlSZWN0LCBp
c1BhaW50aW5nT3ZlcmZsb3dDb250ZW50cyk7CiAgICAgfQogCiAgICAgaWYgKGlzUGFpbnRpbmdP
dmVybGF5U2Nyb2xsYmFycykKQEAgLTQxODQsNyArNDEyMCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6
OnVwZGF0ZVBhaW50aW5nSW5mb0ZvckZyYWdtZW50cyhMYXllckZyYWdtZW50cyYgZnJhZ21lbnRz
LCBjb25zCiAgICAgICAgIGZyYWdtZW50LnNob3VsZFBhaW50Q29udGVudCA9IHNob3VsZFBhaW50
Q29udGVudDsKICAgICAgICAgaWYgKHRoaXMgIT0gbG9jYWxQYWludGluZ0luZm8ucm9vdExheWVy
IHx8ICEobG9jYWxQYWludEZsYWdzICYgUGFpbnRMYXllclBhaW50aW5nT3ZlcmZsb3dDb250ZW50
cykpIHsKICAgICAgICAgICAgIExheW91dFBvaW50IG5ld09mZnNldEZyb21Sb290ID0gKm9mZnNl
dEZyb21Sb290ICsgZnJhZ21lbnQucGFnaW5hdGlvbk9mZnNldDsKLSAgICAgICAgICAgIGZyYWdt
ZW50LnNob3VsZFBhaW50Q29udGVudCAmPSBpbnRlcnNlY3RzRGFtYWdlUmVjdChmcmFnbWVudC5s
YXllckJvdW5kcywgZnJhZ21lbnQuYmFja2dyb3VuZFJlY3QucmVjdCgpLCBsb2NhbFBhaW50aW5n
SW5mby5yb290TGF5ZXIsICZuZXdPZmZzZXRGcm9tUm9vdCwgbG9jYWxQYWludGluZ0luZm8ucmVn
aW9uKTsKKyAgICAgICAgICAgIGZyYWdtZW50LnNob3VsZFBhaW50Q29udGVudCAmPSBpbnRlcnNl
Y3RzRGFtYWdlUmVjdChmcmFnbWVudC5sYXllckJvdW5kcywgZnJhZ21lbnQuYmFja2dyb3VuZFJl
Y3QucmVjdCgpLCBsb2NhbFBhaW50aW5nSW5mby5yb290TGF5ZXIsICZuZXdPZmZzZXRGcm9tUm9v
dCk7CiAgICAgICAgIH0KICAgICB9CiB9CkBAIC00MjcwLDExICs0MjA2LDggQEAgdm9pZCBSZW5k
ZXJMYXllcjo6cGFpbnRGb3JlZ3JvdW5kRm9yRnJhZ21lbnRzKGNvbnN0IExheWVyRnJhZ21lbnRz
JiBsYXllckZyYWdtZW4KIAogICAgIC8vIE9wdGltaXplIGNsaXBwaW5nIGZvciB0aGUgc2luZ2xl
IGZyYWdtZW50IGNhc2UuCiAgICAgYm9vbCBzaG91bGRDbGlwID0gbG9jYWxQYWludGluZ0luZm8u
Y2xpcFRvRGlydHlSZWN0ICYmIGxheWVyRnJhZ21lbnRzLnNpemUoKSA9PSAxICYmIGxheWVyRnJh
Z21lbnRzWzBdLnNob3VsZFBhaW50Q29udGVudCAmJiAhbGF5ZXJGcmFnbWVudHNbMF0uZm9yZWdy
b3VuZFJlY3QuaXNFbXB0eSgpOwotICAgIENsaXBSZWN0IGNsaXBwZWRSZWN0OwotICAgIGlmIChz
aG91bGRDbGlwKSB7Ci0gICAgICAgIGNsaXBwZWRSZWN0ID0gbGF5ZXJGcmFnbWVudHNbMF0uZm9y
ZWdyb3VuZFJlY3Q7Ci0gICAgICAgIGNsaXBUb1JlY3QobG9jYWxQYWludGluZ0luZm8ucm9vdExh
eWVyLCBjb250ZXh0LCBsb2NhbFBhaW50aW5nSW5mby5wYWludERpcnR5UmVjdCwgY2xpcHBlZFJl
Y3QpOwotICAgIH0KKyAgICBpZiAoc2hvdWxkQ2xpcCkKKyAgICAgICAgY2xpcFRvUmVjdChsb2Nh
bFBhaW50aW5nSW5mby5yb290TGF5ZXIsIGNvbnRleHQsIGxvY2FsUGFpbnRpbmdJbmZvLnBhaW50
RGlydHlSZWN0LCBsYXllckZyYWdtZW50c1swXS5mb3JlZ3JvdW5kUmVjdCk7CiAgICAgCiAgICAg
Ly8gV2UgaGF2ZSB0byBsb29wIHRocm91Z2ggZXZlcnkgZnJhZ21lbnQgbXVsdGlwbGUgdGltZXMs
IHNpbmNlIHdlIGhhdmUgdG8gcmVwYWludCBpbiBlYWNoIHNwZWNpZmljIHBoYXNlIGluIG9yZGVy
IGZvcgogICAgIC8vIGludGVybGVhdmluZyBvZiB0aGUgZnJhZ21lbnRzIHRvIHdvcmsgcHJvcGVy
bHkuCkBAIC00Mjg0LDIzICs0MjE3LDExIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50Rm9yZWdy
b3VuZEZvckZyYWdtZW50cyhjb25zdCBMYXllckZyYWdtZW50cyYgbGF5ZXJGcmFnbWVuCiAgICAg
aWYgKCFzZWxlY3Rpb25Pbmx5KSB7CiAgICAgICAgIHBhaW50Rm9yZWdyb3VuZEZvckZyYWdtZW50
c1dpdGhQaGFzZShQYWludFBoYXNlRmxvYXQsIGxheWVyRnJhZ21lbnRzLCBjb250ZXh0LCBsb2Nh
bFBhaW50aW5nSW5mbywgbG9jYWxQYWludEJlaGF2aW9yLCBzdWJ0cmVlUGFpbnRSb290Rm9yUmVu
ZGVyZXIpOwogICAgICAgICBwYWludEZvcmVncm91bmRGb3JGcmFnbWVudHNXaXRoUGhhc2UoUGFp
bnRQaGFzZUZvcmVncm91bmQsIGxheWVyRnJhZ21lbnRzLCBjb250ZXh0LCBsb2NhbFBhaW50aW5n
SW5mbywgbG9jYWxQYWludEJlaGF2aW9yLCBzdWJ0cmVlUGFpbnRSb290Rm9yUmVuZGVyZXIpOwot
Ci0gICAgICAgIC8vIFN3aXRjaCB0aGUgY2xpcHBpbmcgcmVjdGFuZ2xlIHRvIHRoZSBvdXRsaW5l
IHZlcnNpb24uCi0gICAgICAgIGlmIChzaG91bGRDbGlwICYmIGNsaXBwZWRSZWN0ICE9IGxheWVy
RnJhZ21lbnRzWzBdLm91dGxpbmVSZWN0KSB7Ci0gICAgICAgICAgICByZXN0b3JlQ2xpcChjb250
ZXh0LCBsb2NhbFBhaW50aW5nSW5mby5wYWludERpcnR5UmVjdCwgY2xpcHBlZFJlY3QpOwotICAg
ICAgICAgICAgCi0gICAgICAgICAgICBpZiAoIWxheWVyRnJhZ21lbnRzWzBdLm91dGxpbmVSZWN0
LmlzRW1wdHkoKSkgewotICAgICAgICAgICAgICAgIGNsaXBwZWRSZWN0ID0gbGF5ZXJGcmFnbWVu
dHNbMF0ub3V0bGluZVJlY3Q7Ci0gICAgICAgICAgICAgICAgY2xpcFRvUmVjdChsb2NhbFBhaW50
aW5nSW5mby5yb290TGF5ZXIsIGNvbnRleHQsIGxvY2FsUGFpbnRpbmdJbmZvLnBhaW50RGlydHlS
ZWN0LCBjbGlwcGVkUmVjdCk7Ci0gICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBz
aG91bGRDbGlwID0gZmFsc2U7Ci0gICAgICAgIH0KLQogICAgICAgICBwYWludEZvcmVncm91bmRG
b3JGcmFnbWVudHNXaXRoUGhhc2UoUGFpbnRQaGFzZUNoaWxkT3V0bGluZXMsIGxheWVyRnJhZ21l
bnRzLCBjb250ZXh0LCBsb2NhbFBhaW50aW5nSW5mbywgbG9jYWxQYWludEJlaGF2aW9yLCBzdWJ0
cmVlUGFpbnRSb290Rm9yUmVuZGVyZXIpOwogICAgIH0KICAgICAKICAgICBpZiAoc2hvdWxkQ2xp
cCkKLSAgICAgICAgcmVzdG9yZUNsaXAoY29udGV4dCwgbG9jYWxQYWludGluZ0luZm8ucGFpbnRE
aXJ0eVJlY3QsIGNsaXBwZWRSZWN0KTsKKyAgICAgICAgcmVzdG9yZUNsaXAoY29udGV4dCwgbG9j
YWxQYWludGluZ0luZm8ucGFpbnREaXJ0eVJlY3QsIGxheWVyRnJhZ21lbnRzWzBdLmZvcmVncm91
bmRSZWN0KTsKIH0KIAogdm9pZCBSZW5kZXJMYXllcjo6cGFpbnRGb3JlZ3JvdW5kRm9yRnJhZ21l
bnRzV2l0aFBoYXNlKFBhaW50UGhhc2UgcGhhc2UsIGNvbnN0IExheWVyRnJhZ21lbnRzJiBsYXll
ckZyYWdtZW50cywgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LApAQCAtNDQ4Niw4ICs0NDA3LDgg
QEAgYm9vbCBSZW5kZXJMYXllcjo6aGl0VGVzdChjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVz
dCwgY29uc3QgSGl0VGVzdExvY2F0aW9uJgogICAgIEFTU0VSVChpc1NlbGZQYWludGluZ0xheWVy
KCkgfHwgaGFzU2VsZlBhaW50aW5nTGF5ZXJEZXNjZW5kYW50KCkpOwogCiAgICAgcmVuZGVyZXIo
KS5kb2N1bWVudCgpLnVwZGF0ZUxheW91dCgpOwotCi0gICAgTGF5b3V0UmVjdCBoaXRUZXN0QXJl
YSA9IGlzT3V0T2ZGbG93UmVuZGVyRmxvd1RocmVhZCgpID8gdG9SZW5kZXJGbG93VGhyZWFkKCZy
ZW5kZXJlcigpKS0+dmlzdWFsT3ZlcmZsb3dSZWN0KCkgOiByZW5kZXJlcigpLnZpZXcoKS5kb2N1
bWVudFJlY3QoKTsKKyAgICAKKyAgICBMYXlvdXRSZWN0IGhpdFRlc3RBcmVhID0gaXNPdXRPZkZs
b3dSZW5kZXJGbG93VGhyZWFkKCkgPyB0b1JlbmRlckZsb3dUaHJlYWQocmVuZGVyZXIoKSkuYm9y
ZGVyQm94UmVjdCgpIDogcmVuZGVyZXIoKS52aWV3KCkuZG9jdW1lbnRSZWN0KCk7CiAgICAgaWYg
KCFyZXF1ZXN0Lmlnbm9yZUNsaXBwaW5nKCkpCiAgICAgICAgIGhpdFRlc3RBcmVhLmludGVyc2Vj
dChyZW5kZXJlcigpLnZpZXcoKS5mcmFtZVZpZXcoKS52aXNpYmxlQ29udGVudFJlY3QoKSk7CiAK
QEAgLTQ2NzgsMTcgKzQ1OTksNiBAQCBSZW5kZXJMYXllciogUmVuZGVyTGF5ZXI6OmhpdFRlc3RM
YXllcihSZW5kZXJMYXllciogcm9vdExheWVyLCBSZW5kZXJMYXllciogY29udAogICAgIGlmIChy
ZW5kZXJlcigpLmZpeGVkUG9zaXRpb25lZFdpdGhOYW1lZEZsb3dDb250YWluaW5nQmxvY2soKSAm
JiBoaXRUZXN0TG9jYXRpb24ucmVnaW9uKCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgLy8g
RG9uJ3QgaGl0LXRlc3QgdGhlIGxheWVyIGlmIHRoZSByZW5kZXJlciBkb2Vzbid0IGJlbG9uZyB0
byB0aGlzIHJlZ2lvbi4KLSAgICAvLyBUaGlzIGlzIHRydWUgYXMgbG9uZyBhcyB3ZSBjbGFtcCB0
aGUgcmFuZ2Ugb2YgYSBib3ggdG8gaXRzIGNvbnRhaW5pbmcgYmxvY2sgcmFuZ2UuCi0gICAgLy8g
RklYTUU6IEZpeCBoaXQgdGVzdGluZyB3aXRoIGluLWZsb3cgdGhyZWFkcyBpbmNsdWRlZCBpbiBv
dXQtb2YtZmxvdyB0aHJlYWRzLgotICAgIGlmIChoaXRUZXN0TG9jYXRpb24ucmVnaW9uKCkpIHsK
LSAgICAgICAgUmVuZGVyRmxvd1RocmVhZCogZmxvd1RocmVhZCA9IGhpdFRlc3RMb2NhdGlvbi5y
ZWdpb24oKS0+Zmxvd1RocmVhZCgpOwotICAgICAgICBBU1NFUlQoZmxvd1RocmVhZCk7Ci0KLSAg
ICAgICAgaWYgKCFmbG93VGhyZWFkLT5vYmplY3RTaG91bGRQYWludEluRmxvd1JlZ2lvbigmcmVu
ZGVyZXIoKSwgaGl0VGVzdExvY2F0aW9uLnJlZ2lvbigpKSkKLSAgICAgICAgICAgIHJldHVybiAw
OwotICAgIH0KLQogICAgIC8vIFRoZSBuYXR1cmFsIHRoaW5nIHdvdWxkIGJlIHRvIGtlZXAgSGl0
VGVzdGluZ1RyYW5zZm9ybVN0YXRlIG9uIHRoZSBzdGFjaywgYnV0IGl0J3MgYmlnLCBzbyB3ZSBo
ZWFwLWFsbG9jYXRlLgogCiAgICAgLy8gQXBwbHkgYSB0cmFuc2Zvcm0gaWYgd2UgaGF2ZSBvbmUu
CkBAIC00NzkxLDEzICs0NzAxLDYgQEAgUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVyOjpoaXRUZXN0
TGF5ZXIoUmVuZGVyTGF5ZXIqIHJvb3RMYXllciwgUmVuZGVyTGF5ZXIqIGNvbnQKICAgICAgICAg
Y2FuZGlkYXRlTGF5ZXIgPSBoaXRMYXllcjsKICAgICB9CiAKLSAgICBoaXRMYXllciA9IGhpdFRl
c3RGbG93VGhyZWFkSWZSZWdpb24ocm9vdExheWVyLCByZXF1ZXN0LCByZXN1bHQsIGhpdFRlc3RS
ZWN0LCBoaXRUZXN0TG9jYXRpb24sIGxvY2FsVHJhbnNmb3JtU3RhdGUuZ2V0KCksIHpPZmZzZXRG
b3JEZXNjZW5kYW50c1B0cik7Ci0gICAgaWYgKGhpdExheWVyKSB7Ci0gICAgICAgIGlmICghZGVw
dGhTb3J0RGVzY2VuZGFudHMpCi0gICAgICAgICAgICByZXR1cm4gaGl0TGF5ZXI7Ci0gICAgICAg
IGNhbmRpZGF0ZUxheWVyID0gaGl0TGF5ZXI7Ci0gICAgfQotCiAgICAgLy8gQ29sbGVjdCB0aGUg
ZnJhZ21lbnRzLiBUaGlzIHdpbGwgY29tcHV0ZSB0aGUgY2xpcCByZWN0YW5nbGVzIGZvciBlYWNo
IGxheWVyIGZyYWdtZW50LgogICAgIExheWVyRnJhZ21lbnRzIGxheWVyRnJhZ21lbnRzOwogICAg
IGNvbGxlY3RGcmFnbWVudHMobGF5ZXJGcmFnbWVudHMsIHJvb3RMYXllciwgaGl0VGVzdExvY2F0
aW9uLnJlZ2lvbigpLCBoaXRUZXN0UmVjdCwgUm9vdFJlbGF0aXZlQ2xpcFJlY3RzLCBJbmNsdWRl
T3ZlcmxheVNjcm9sbGJhclNpemUpOwpAQCAtNTE2OCwzMiArNTA3MSw2IEBAIHZvaWQgUmVuZGVy
TGF5ZXI6OnVwZGF0ZUNsaXBSZWN0cyhjb25zdCBDbGlwUmVjdHNDb250ZXh0JiBjbGlwUmVjdHND
b250ZXh0KQogI2VuZGlmCiB9CiAKLXZvaWQgUmVuZGVyTGF5ZXI6Om1hcExheWVyQ2xpcFJlY3Rz
VG9GcmFnbWVudGF0aW9uTGF5ZXIoUmVuZGVyUmVnaW9uKiByZWdpb24sIENsaXBSZWN0cyYgY2xp
cFJlY3RzKSBjb25zdAotewotICAgIEFTU0VSVChyZWdpb24gJiYgcmVnaW9uLT5wYXJlbnQoKSAm
JiByZWdpb24tPnBhcmVudCgpLT5pc1JlbmRlck5hbWVkRmxvd0ZyYWdtZW50Q29udGFpbmVyKCkp
OwotCi0gICAgQ2xpcFJlY3RzQ29udGV4dCB0YXJnZXRDbGlwUmVjdHNDb250ZXh0KHJlZ2lvbi0+
cmVnaW9uQ29udGFpbmVyTGF5ZXIoKSwgMCwgVGVtcG9yYXJ5Q2xpcFJlY3RzKTsKLSAgICByZWdp
b24tPnJlZ2lvbkNvbnRhaW5lckxheWVyKCktPmNhbGN1bGF0ZUNsaXBSZWN0cyh0YXJnZXRDbGlw
UmVjdHNDb250ZXh0LCBjbGlwUmVjdHMpOwotCi0gICAgTGF5b3V0UmVjdCBmbG93VGhyZWFkUG9y
dGlvblJlY3QgPSByZWdpb24tPmZsb3dUaHJlYWRQb3J0aW9uUmVjdCgpOwotCi0gICAgTGF5b3V0
UG9pbnQgcG9ydGlvbkxvY2F0aW9uID0gZmxvd1RocmVhZFBvcnRpb25SZWN0LmxvY2F0aW9uKCk7
Ci0gICAgTGF5b3V0UmVjdCByZWdpb25Db250ZW50Qm94ID0gcmVnaW9uLT5jb250ZW50Qm94UmVj
dCgpOwotICAgIExheW91dFNpemUgbW92ZU9mZnNldCA9IHBvcnRpb25Mb2NhdGlvbiAtIHJlZ2lv
bkNvbnRlbnRCb3gubG9jYXRpb24oKTsKLQotICAgIENsaXBSZWN0IG5ld092ZXJmbG93Q2xpcFJl
Y3QgPSBjbGlwUmVjdHMub3ZlcmZsb3dDbGlwUmVjdCgpOwotICAgIG5ld092ZXJmbG93Q2xpcFJl
Y3QubW92ZShtb3ZlT2Zmc2V0KTsKLSAgICBjbGlwUmVjdHMuc2V0T3ZlcmZsb3dDbGlwUmVjdChu
ZXdPdmVyZmxvd0NsaXBSZWN0KTsKLQotICAgIENsaXBSZWN0IG5ld0ZpeGVkQ2xpcFJlY3QgPSBj
bGlwUmVjdHMuZml4ZWRDbGlwUmVjdCgpOwotICAgIG5ld0ZpeGVkQ2xpcFJlY3QubW92ZShtb3Zl
T2Zmc2V0KTsKLSAgICBjbGlwUmVjdHMuc2V0Rml4ZWRDbGlwUmVjdChuZXdGaXhlZENsaXBSZWN0
KTsKLQotICAgIENsaXBSZWN0IG5ld1Bvc0NsaXBSZWN0ID0gY2xpcFJlY3RzLnBvc0NsaXBSZWN0
KCk7Ci0gICAgbmV3UG9zQ2xpcFJlY3QubW92ZShtb3ZlT2Zmc2V0KTsKLSAgICBjbGlwUmVjdHMu
c2V0UG9zQ2xpcFJlY3QobmV3UG9zQ2xpcFJlY3QpOwotfQotCiB2b2lkIFJlbmRlckxheWVyOjpj
YWxjdWxhdGVDbGlwUmVjdHMoY29uc3QgQ2xpcFJlY3RzQ29udGV4dCYgY2xpcFJlY3RzQ29udGV4
dCwgQ2xpcFJlY3RzJiBjbGlwUmVjdHMpIGNvbnN0CiB7CiAgICAgaWYgKCFwYXJlbnQoKSkgewpA
QCAtNTIwNSwxMyArNTA4Miw4IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmNhbGN1bGF0ZUNsaXBSZWN0
cyhjb25zdCBDbGlwUmVjdHNDb250ZXh0JiBjbGlwUmVjdHNDb250ZXh0LCBDCiAgICAgQ2xpcFJl
Y3RzVHlwZSBjbGlwUmVjdHNUeXBlID0gY2xpcFJlY3RzQ29udGV4dC5jbGlwUmVjdHNUeXBlOwog
ICAgIGJvb2wgdXNlQ2FjaGVkID0gY2xpcFJlY3RzVHlwZSAhPSBUZW1wb3JhcnlDbGlwUmVjdHM7
CiAKLSAgICBpZiAocmVuZGVyZXIoKS5pc1JlbmRlckZsb3dUaHJlYWQoKSAmJiBjbGlwUmVjdHND
b250ZXh0LnJlZ2lvbikgewotICAgICAgICBtYXBMYXllckNsaXBSZWN0c1RvRnJhZ21lbnRhdGlv
bkxheWVyKGNsaXBSZWN0c0NvbnRleHQucmVnaW9uLCBjbGlwUmVjdHMpOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotCiAgICAgLy8gRm9yIHRyYW5zZm9ybWVkIGxheWVycywgdGhlIHJvb3QgbGF5
ZXIgd2FzIHNoaWZ0ZWQgdG8gYmUgdXMsIHNvIHRoZXJlIGlzIG5vIG5lZWQgdG8KLSAgICAvLyBl
eGFtaW5lIHRoZSBwYXJlbnQuIFdlIHdhbnQgdG8gY2FjaGUgY2xpcCByZWN0cyB3aXRoIHVzIGFz
IHRoZSByb290LgorICAgIC8vIGV4YW1pbmUgdGhlIHBhcmVudC4gIFdlIHdhbnQgdG8gY2FjaGUg
Y2xpcCByZWN0cyB3aXRoIHVzIGFzIHRoZSByb290LgogICAgIFJlbmRlckxheWVyKiBwYXJlbnRM
YXllciA9IGNsaXBSZWN0c0NvbnRleHQucm9vdExheWVyICE9IHRoaXMgPyBwYXJlbnQoKSA6IDA7
CiAgICAgCiAgICAgLy8gRW5zdXJlIHRoYXQgb3VyIHBhcmVudCdzIGNsaXAgaGFzIGJlZW4gY2Fs
Y3VsYXRlZCBzbyB0aGF0IHdlIGNhbiBleGFtaW5lIHRoZSB2YWx1ZXMuCkBAIC01MjY5LDExICs1
MTQxLDYgQEAgdm9pZCBSZW5kZXJMYXllcjo6Y2FsY3VsYXRlQ2xpcFJlY3RzKGNvbnN0IENsaXBS
ZWN0c0NvbnRleHQmIGNsaXBSZWN0c0NvbnRleHQsIEMKIHZvaWQgUmVuZGVyTGF5ZXI6OnBhcmVu
dENsaXBSZWN0cyhjb25zdCBDbGlwUmVjdHNDb250ZXh0JiBjbGlwUmVjdHNDb250ZXh0LCBDbGlw
UmVjdHMmIGNsaXBSZWN0cykgY29uc3QKIHsKICAgICBBU1NFUlQocGFyZW50KCkpOwotICAgIGlm
IChyZW5kZXJlcigpLmlzUmVuZGVyRmxvd1RocmVhZCgpICYmIGNsaXBSZWN0c0NvbnRleHQucmVn
aW9uKSB7Ci0gICAgICAgIG1hcExheWVyQ2xpcFJlY3RzVG9GcmFnbWVudGF0aW9uTGF5ZXIoY2xp
cFJlY3RzQ29udGV4dC5yZWdpb24sIGNsaXBSZWN0cyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0KICAgICBpZiAoY2xpcFJlY3RzQ29udGV4dC5jbGlwUmVjdHNUeXBlID09IFRlbXBvcmFyeUNs
aXBSZWN0cykgewogICAgICAgICBwYXJlbnQoKS0+Y2FsY3VsYXRlQ2xpcFJlY3RzKGNsaXBSZWN0
c0NvbnRleHQsIGNsaXBSZWN0cyk7CiAgICAgICAgIHJldHVybjsKQEAgLTUzMjgsNiArNTE5NSw5
IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmNhbGN1bGF0ZVJlY3RzKGNvbnN0IENsaXBSZWN0c0NvbnRl
eHQmIGNsaXBSZWN0c0NvbnRleHQsIGNvbnN0CiAgICAgfSBlbHNlCiAgICAgICAgIGJhY2tncm91
bmRSZWN0ID0gcGFpbnREaXJ0eVJlY3Q7CiAKKyAgICBmb3JlZ3JvdW5kUmVjdCA9IGJhY2tncm91
bmRSZWN0OworICAgIG91dGxpbmVSZWN0ID0gYmFja2dyb3VuZFJlY3Q7CisgICAgCiAgICAgTGF5
b3V0UG9pbnQgb2Zmc2V0OwogICAgIGlmIChvZmZzZXRGcm9tUm9vdCkKICAgICAgICAgb2Zmc2V0
ID0gKm9mZnNldEZyb21Sb290OwpAQCAtNTM0MywzMyArNTIxMyw2IEBAIHZvaWQgUmVuZGVyTGF5
ZXI6OmNhbGN1bGF0ZVJlY3RzKGNvbnN0IENsaXBSZWN0c0NvbnRleHQmIGNsaXBSZWN0c0NvbnRl
eHQsIGNvbnN0CiAKICAgICBsYXllckJvdW5kcyA9IExheW91dFJlY3Qob2Zmc2V0LCBzaXplKCkp
OwogCi0gICAgZm9yZWdyb3VuZFJlY3QgPSBiYWNrZ3JvdW5kUmVjdDsKLSAgICBvdXRsaW5lUmVj
dCA9IGJhY2tncm91bmRSZWN0OwotCi0gICAgUmVuZGVyRmxvd1RocmVhZCogZmxvd1RocmVhZCA9
IGNsaXBSZWN0c0NvbnRleHQucmVnaW9uID8gY2xpcFJlY3RzQ29udGV4dC5yZWdpb24tPmZsb3dU
aHJlYWQoKSA6IDA7Ci0gICAgaWYgKGlzU2VsZlBhaW50aW5nTGF5ZXIoKSAmJiBmbG93VGhyZWFk
ICYmICFyZW5kZXJlcigpLmlzSW5GbG93UmVuZGVyRmxvd1RocmVhZCgpICYmIHJlbmRlckJveCgp
KSB7Ci0gICAgICAgIC8vIEZJWE1FOiBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgdGhlIHJlbmRlcmVy
IGlzIG5vdCBhIFJlbmRlckJveC4KLSAgICAgICAgTGF5b3V0UmVjdCBsYXllckJvdW5kc1dpdGhW
aXN1YWxPdmVyZmxvdyA9IGNsaXBSZWN0c0NvbnRleHQucmVnaW9uLT52aXN1YWxPdmVyZmxvd1Jl
Y3RGb3JCb3gocmVuZGVyQm94KCkpOwotCi0gICAgICAgIC8vIExheWVycyBhcmUgaW4gcGh5c2lj
YWwgY29vcmRpbmF0ZXMgc28gdGhlIG9yaWdpbiBtdXN0IGJlIG1vdmVkIHRvIHRoZSBwaHlzaWNh
bCB0b3AtbGVmdCBvZiB0aGUgZmxvd3RocmVhZC4KLSAgICAgICAgaWYgKGZsb3dUaHJlYWQtPnN0
eWxlKCkuaXNGbGlwcGVkQmxvY2tzV3JpdGluZ01vZGUoKSkgewotICAgICAgICAgICAgaWYgKGZs
b3dUaHJlYWQtPnN0eWxlKCkuaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkKLSAgICAgICAgICAg
ICAgICBsYXllckJvdW5kc1dpdGhWaXN1YWxPdmVyZmxvdy5tb3ZlQnkoTGF5b3V0UG9pbnQoMCwg
Zmxvd1RocmVhZC0+aGVpZ2h0KCkpKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAg
ICBsYXllckJvdW5kc1dpdGhWaXN1YWxPdmVyZmxvdy5tb3ZlQnkoTGF5b3V0UG9pbnQoZmxvd1Ro
cmVhZC0+d2lkdGgoKSwgMCkpOwotICAgICAgICB9Ci0KLSAgICAgICAgbGF5ZXJCb3VuZHNXaXRo
VmlzdWFsT3ZlcmZsb3cubW92ZUJ5KG9mZnNldCk7Ci0gICAgICAgIGJhY2tncm91bmRSZWN0Lmlu
dGVyc2VjdChsYXllckJvdW5kc1dpdGhWaXN1YWxPdmVyZmxvdyk7Ci0KLSAgICAgICAgZm9yZWdy
b3VuZFJlY3QgPSBiYWNrZ3JvdW5kUmVjdDsKLSAgICAgICAgb3V0bGluZVJlY3QgPSBiYWNrZ3Jv
dW5kUmVjdDsKLSAgICAgICAgCi0gICAgICAgIC8vIElmIHRoZSByZWdpb24gZG9lcyBub3QgY2xp
cCBpdHMgb3ZlcmZsb3csIGluZmxhdGUgdGhlIG91dGxpbmUgcmVjdC4KLSAgICAgICAgaWYgKCEo
Y2xpcFJlY3RzQ29udGV4dC5yZWdpb24tPnBhcmVudCgpLT5oYXNPdmVyZmxvd0NsaXAoKSAmJiAo
Y2xpcFJlY3RzQ29udGV4dC5yZWdpb24tPnJlZ2lvbkNvbnRhaW5lckxheWVyKCkgIT0gY2xpcFJl
Y3RzQ29udGV4dC5yb290TGF5ZXIgfHwgY2xpcFJlY3RzQ29udGV4dC5yZXNwZWN0T3ZlcmZsb3dD
bGlwID09IFJlc3BlY3RPdmVyZmxvd0NsaXApKSkKLSAgICAgICAgICAgIG91dGxpbmVSZWN0Lmlu
ZmxhdGUocmVuZGVyZXIoKS5tYXhpbWFsT3V0bGluZVNpemUoUGFpbnRQaGFzZU91dGxpbmUpKTsK
LSAgICB9Ci0KICAgICAvLyBVcGRhdGUgdGhlIGNsaXAgcmVjdHMgdGhhdCB3aWxsIGJlIHBhc3Nl
ZCB0byBjaGlsZCBsYXllcnMuCiAgICAgaWYgKHJlbmRlcmVyKCkuaGFzQ2xpcE9yT3ZlcmZsb3dD
bGlwKCkpIHsKICAgICAgICAgLy8gVGhpcyBsYXllciBlc3RhYmxpc2hlcyBhIGNsaXAgb2Ygc29t
ZSBraW5kLgpAQCAtNTM5Myw3ICs1MjM2LDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6Y2FsY3VsYXRl
UmVjdHMoY29uc3QgQ2xpcFJlY3RzQ29udGV4dCYgY2xpcFJlY3RzQ29udGV4dCwgY29uc3QKICAg
ICAgICAgaWYgKHJlbmRlckJveCgpLT5oYXNWaXN1YWxPdmVyZmxvdygpKSB7CiAgICAgICAgICAg
ICAvLyBGSVhNRTogRG9lcyBub3QgZG8gdGhlIHJpZ2h0IHRoaW5nIHdpdGggQ1NTIHJlZ2lvbnMg
eWV0LCBzaW5jZSB3ZSBkb24ndCB5ZXQgZmFjdG9yIGluIHRoZQogICAgICAgICAgICAgLy8gaW5k
aXZpZHVhbCByZWdpb24gYm94ZXMgYXMgb3ZlcmZsb3cuCi0gICAgICAgICAgICBMYXlvdXRSZWN0
IGxheWVyQm91bmRzV2l0aFZpc3VhbE92ZXJmbG93ID0gY2xpcFJlY3RzQ29udGV4dC5yZWdpb24g
PyBjbGlwUmVjdHNDb250ZXh0LnJlZ2lvbi0+dmlzdWFsT3ZlcmZsb3dSZWN0Rm9yQm94KHJlbmRl
ckJveCgpKSA6IHJlbmRlckJveCgpLT52aXN1YWxPdmVyZmxvd1JlY3QoKTsKKyAgICAgICAgICAg
IExheW91dFJlY3QgbGF5ZXJCb3VuZHNXaXRoVmlzdWFsT3ZlcmZsb3cgPSByZW5kZXJCb3goKS0+
dmlzdWFsT3ZlcmZsb3dSZWN0KCk7CiAgICAgICAgICAgICByZW5kZXJCb3goKS0+ZmxpcEZvcldy
aXRpbmdNb2RlKGxheWVyQm91bmRzV2l0aFZpc3VhbE92ZXJmbG93KTsgLy8gTGF5ZXJzIGFyZSBp
biBwaHlzaWNhbCBjb29yZGluYXRlcywgc28gdGhlIG92ZXJmbG93IGhhcyB0byBiZSBmbGlwcGVk
LgogICAgICAgICAgICAgbGF5ZXJCb3VuZHNXaXRoVmlzdWFsT3ZlcmZsb3cubW92ZUJ5KG9mZnNl
dCk7CiAgICAgICAgICAgICBpZiAodGhpcyAhPSBjbGlwUmVjdHNDb250ZXh0LnJvb3RMYXllciB8
fCBjbGlwUmVjdHNDb250ZXh0LnJlc3BlY3RPdmVyZmxvd0NsaXAgPT0gUmVzcGVjdE92ZXJmbG93
Q2xpcCkKQEAgLTU0MDEsOSArNTI0NCw2IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmNhbGN1bGF0ZVJl
Y3RzKGNvbnN0IENsaXBSZWN0c0NvbnRleHQmIGNsaXBSZWN0c0NvbnRleHQsIGNvbnN0CiAgICAg
ICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAvLyBTaGlmdCB0aGUgYm91bmRzIHRvIGJlIGZvciBv
dXIgcmVnaW9uIG9ubHkuCiAgICAgICAgICAgICBMYXlvdXRSZWN0IGJvdW5kcyA9IHJlbmRlckJv
eCgpLT5ib3JkZXJCb3hSZWN0SW5SZWdpb24oY2xpcFJlY3RzQ29udGV4dC5yZWdpb24pOwotICAg
ICAgICAgICAgaWYgKGNsaXBSZWN0c0NvbnRleHQucmVnaW9uKQotICAgICAgICAgICAgICAgIGJv
dW5kcyA9IGNsaXBSZWN0c0NvbnRleHQucmVnaW9uLT5yZWN0Rmxvd1BvcnRpb25Gb3JCb3gocmVu
ZGVyQm94KCksIGJvdW5kcyk7Ci0KICAgICAgICAgICAgIGJvdW5kcy5tb3ZlQnkob2Zmc2V0KTsK
ICAgICAgICAgICAgIGlmICh0aGlzICE9IGNsaXBSZWN0c0NvbnRleHQucm9vdExheWVyIHx8IGNs
aXBSZWN0c0NvbnRleHQucmVzcGVjdE92ZXJmbG93Q2xpcCA9PSBSZXNwZWN0T3ZlcmZsb3dDbGlw
KQogICAgICAgICAgICAgICAgIGJhY2tncm91bmRSZWN0LmludGVyc2VjdChib3VuZHMpOwpAQCAt
NTQ4Nyw3ICs1MzI3LDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6cmVwYWludEJsb2NrU2VsZWN0aW9u
R2FwcygpCiAgICAgICAgIHJlbmRlcmVyKCkucmVwYWludFJlY3RhbmdsZShyZWN0KTsKIH0KIAot
Ym9vbCBSZW5kZXJMYXllcjo6aW50ZXJzZWN0c0RhbWFnZVJlY3QoY29uc3QgTGF5b3V0UmVjdCYg
bGF5ZXJCb3VuZHMsIGNvbnN0IExheW91dFJlY3QmIGRhbWFnZVJlY3QsIGNvbnN0IFJlbmRlckxh
eWVyKiByb290TGF5ZXIsIGNvbnN0IExheW91dFBvaW50KiBvZmZzZXRGcm9tUm9vdCwgUmVuZGVy
UmVnaW9uKiByZWdpb24pIGNvbnN0Citib29sIFJlbmRlckxheWVyOjppbnRlcnNlY3RzRGFtYWdl
UmVjdChjb25zdCBMYXlvdXRSZWN0JiBsYXllckJvdW5kcywgY29uc3QgTGF5b3V0UmVjdCYgZGFt
YWdlUmVjdCwgY29uc3QgUmVuZGVyTGF5ZXIqIHJvb3RMYXllciwgY29uc3QgTGF5b3V0UG9pbnQq
IG9mZnNldEZyb21Sb290KSBjb25zdAogewogICAgIC8vIEFsd2F5cyBleGFtaW5lIHRoZSBjYW52
YXMgYW5kIHRoZSByb290LgogICAgIC8vIEZJWE1FOiBDb3VsZCBlbGltaW5hdGUgdGhlIGlzUm9v
dCgpIGNoZWNrIGlmIHdlIGZpeCBiYWNrZ3JvdW5kIHBhaW50aW5nIHNvIHRoYXQgdGhlIFJlbmRl
clZpZXcKQEAgLTU1MDMsMTkgKzUzNDMsNyBAQCBib29sIFJlbmRlckxheWVyOjppbnRlcnNlY3Rz
RGFtYWdlUmVjdChjb25zdCBMYXlvdXRSZWN0JiBsYXllckJvdW5kcywgY29uc3QgTGF5bwogICAg
ICAgICBpZiAoYi5pbnRlcnNlY3RzKGRhbWFnZVJlY3QpKQogICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgfQotCi0gICAgLy8gV2hlbiB1c2luZyByZWdpb25zLCBzb21lIGJveGVzIG1pZ2h0
IGhhdmUgdGhlaXIgZnJhbWUgcmVjdCByZWxhdGl2ZSB0byB0aGUgZmxvdyB0aHJlYWQsIHdoaWNo
IGNvdWxkCi0gICAgLy8gY2F1c2UgdGhlIHBhaW50IHJlamVjdGlvbiBhbGdvcml0aG0gdG8gcHJl
dmVudCB0aGVtIGZyb20gcGFpbnRpbmcgd2hlbiB1c2luZyBkaWZmZXJlbnQgd2lkdGggcmVnaW9u
cy4KLSAgICAvLyBlLmcuIGFuIGFic29sdXRlbHkgcG9zaXRpb25lZCBib3ggd2l0aCBib3R0b206
MHB4IGFuZCByaWdodDowcHggd291bGQgaGF2ZSBpdCdzIGZyYW1lUmVjdC54IHJlbGF0aXZlCi0g
ICAgLy8gdG8gdGhlIGZsb3cgdGhyZWFkLCBub3QgdGhlIGxhc3QgcmVnaW9uIChpbiB3aGljaCBp
dCB3aWxsIGVuZCB1cCBiZWNhdXNlIG9mIGJvdHRvbTowcHgpCi0gICAgaWYgKHJlZ2lvbiAmJiBy
ZW5kZXJlcigpLmlzQm94KCkgJiYgcmVuZGVyZXIoKS5mbG93VGhyZWFkQ29udGFpbmluZ0Jsb2Nr
KCkpIHsKLSAgICAgICAgTGF5b3V0UmVjdCBiID0gbGF5ZXJCb3VuZHM7Ci0gICAgICAgIGIubW92
ZUJ5KHJlZ2lvbi0+dmlzdWFsT3ZlcmZsb3dSZWN0Rm9yQm94KHRvUmVuZGVyQm94KCZyZW5kZXJl
cigpKSkubG9jYXRpb24oKSk7Ci0gICAgICAgIGIuaW5mbGF0ZShyZW5kZXJlcigpLnZpZXcoKS5t
YXhpbWFsT3V0bGluZVNpemUoKSk7Ci0gICAgICAgIGlmIChiLmludGVyc2VjdHMoZGFtYWdlUmVj
dCkpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KKyAgICAgICAgCiAgICAgLy8g
T3RoZXJ3aXNlIHdlIG5lZWQgdG8gY29tcHV0ZSB0aGUgYm91bmRpbmcgYm94IG9mIHRoaXMgc2lu
Z2xlIGxheWVyIGFuZCBzZWUgaWYgaXQgaW50ZXJzZWN0cwogICAgIC8vIHRoZSBkYW1hZ2UgcmVj
dC4KICAgICByZXR1cm4gYm91bmRpbmdCb3gocm9vdExheWVyLCAwLCBvZmZzZXRGcm9tUm9vdCku
aW50ZXJzZWN0cyhkYW1hZ2VSZWN0KTsKQEAgLTYwNTIsNDggKzU4ODAsNiBAQCB2b2lkIFJlbmRl
ckxheWVyOjp1cGRhdGVMYXllckxpc3RzSWZOZWVkZWQoKQogICAgIH0KIH0KIAotdm9pZCBSZW5k
ZXJMYXllcjo6dXBkYXRlRGVzY2VuZGFudHNMYXllckxpc3RzSWZOZWVkZWQoYm9vbCByZWN1cnNp
dmUpCi17Ci0gICAgVmVjdG9yPFJlbmRlckxheWVyKj4gbGF5ZXJzVG9VcGRhdGU7Ci0gICAgCi0g
ICAgaWYgKGlzU3RhY2tpbmdDb250YWluZXIoKSkgewotICAgICAgICBpZiAoVmVjdG9yPFJlbmRl
ckxheWVyKj4qIGxpc3QgPSBuZWdaT3JkZXJMaXN0KCkpIHsKLSAgICAgICAgICAgIHNpemVfdCBs
aXN0U2l6ZSA9IGxpc3QtPnNpemUoKTsKLSAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgbGlzdFNpemU7ICsraSkgewotICAgICAgICAgICAgICAgIFJlbmRlckxheWVyKiBjaGlsZExh
eWVyID0gbGlzdC0+YXQoaSk7Ci0gICAgICAgICAgICAgICAgbGF5ZXJzVG9VcGRhdGUuYXBwZW5k
KGNoaWxkTGF5ZXIpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotICAgIAotICAg
IGlmIChWZWN0b3I8UmVuZGVyTGF5ZXIqPiogbGlzdCA9IG5vcm1hbEZsb3dMaXN0KCkpIHsKLSAg
ICAgICAgc2l6ZV90IGxpc3RTaXplID0gbGlzdC0+c2l6ZSgpOwotICAgICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IGxpc3RTaXplOyArK2kpIHsKLSAgICAgICAgICAgIFJlbmRlckxheWVyKiBj
aGlsZExheWVyID0gbGlzdC0+YXQoaSk7Ci0gICAgICAgICAgICBsYXllcnNUb1VwZGF0ZS5hcHBl
bmQoY2hpbGRMYXllcik7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgCi0gICAgaWYgKGlzU3RhY2tp
bmdDb250YWluZXIoKSkgewotICAgICAgICBpZiAoVmVjdG9yPFJlbmRlckxheWVyKj4qIGxpc3Qg
PSBwb3NaT3JkZXJMaXN0KCkpIHsKLSAgICAgICAgICAgIHNpemVfdCBsaXN0U2l6ZSA9IGxpc3Qt
PnNpemUoKTsKLSAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdFNpemU7ICsr
aSkgewotICAgICAgICAgICAgICAgIFJlbmRlckxheWVyKiBjaGlsZExheWVyID0gbGlzdC0+YXQo
aSk7Ci0gICAgICAgICAgICAgICAgbGF5ZXJzVG9VcGRhdGUuYXBwZW5kKGNoaWxkTGF5ZXIpOwot
ICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotICAgIAotICAgIHNpemVfdCBsaXN0U2l6
ZSA9IGxheWVyc1RvVXBkYXRlLnNpemUoKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxp
c3RTaXplOyArK2kpIHsKLSAgICAgICAgUmVuZGVyTGF5ZXIqIGNoaWxkTGF5ZXIgPSBsYXllcnNU
b1VwZGF0ZS5hdChpKTsKLSAgICAgICAgY2hpbGRMYXllci0+dXBkYXRlTGF5ZXJMaXN0c0lmTmVl
ZGVkKCk7Ci0gICAgICAgIAotICAgICAgICBpZiAocmVjdXJzaXZlKQotICAgICAgICAgICAgY2hp
bGRMYXllci0+dXBkYXRlRGVzY2VuZGFudHNMYXllckxpc3RzSWZOZWVkZWQodHJ1ZSk7Ci0gICAg
fQotfQotCiB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVDb21wb3NpdGluZ0FuZExheWVyTGlzdHNJ
Zk5lZWRlZCgpCiB7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpAQCAtNjExMSwx
MSArNTg5Nyw2IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnJlcGFpbnRJbmNsdWRpbmdEZXNjZW5kYW50
cygpCiAgICAgcmVuZGVyZXIoKS5yZXBhaW50KCk7CiAgICAgZm9yIChSZW5kZXJMYXllciogY3Vy
ciA9IGZpcnN0Q2hpbGQoKTsgY3VycjsgY3VyciA9IGN1cnItPm5leHRTaWJsaW5nKCkpCiAgICAg
ICAgIGN1cnItPnJlcGFpbnRJbmNsdWRpbmdEZXNjZW5kYW50cygpOwotCi0gICAgLy8gSWYgdGhp
cyBpcyBhIHJlZ2lvbiwgd2UgbXVzdCBhbHNvIHJlcGFpbnQgdGhlIGZsb3cgdGhyZWFkJ3MgbGF5
ZXIgc2luY2UgaXQgaXMgdGhlIG9uZQotICAgIC8vIGRvaW5nIHRoZSBhY3R1YWwgcGFpbnRpbmcg
b2YgdGhlIGZsb3dlZCBjb250ZW50LgotICAgIGlmIChyZW5kZXJlcigpLmlzUmVuZGVyTmFtZWRG
bG93RnJhZ21lbnRDb250YWluZXIoKSkKLSAgICAgICAgdG9SZW5kZXJCbG9ja0Zsb3coJnJlbmRl
cmVyKCkpLT5yZW5kZXJOYW1lZEZsb3dGcmFnbWVudCgpLT5mbG93VGhyZWFkKCktPmxheWVyKCkt
PnJlcGFpbnRJbmNsdWRpbmdEZXNjZW5kYW50cygpOwogfQogCiAjaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQpAQCAtNjcyOCwxMDggKzY1MDksNiBAQCB2b2lkIFJlbmRlckxheWVyOjpm
aWx0ZXJOZWVkc1JlcGFpbnQoKQogCiAjZW5kaWYKIAotdm9pZCBSZW5kZXJMYXllcjo6cGFpbnRO
YW1lZEZsb3dUaHJlYWRJbnNpZGVSZWdpb24oR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBSZW5k
ZXJOYW1lZEZsb3dGcmFnbWVudCogcmVnaW9uLCBMYXlvdXRSZWN0IHBhaW50RGlydHlSZWN0LCBM
YXlvdXRQb2ludCBwYWludE9mZnNldCwgUGFpbnRCZWhhdmlvciBwYWludEJlaGF2aW9yLCBQYWlu
dExheWVyRmxhZ3MgcGFpbnRGbGFncykKLXsKLSAgICBMYXlvdXRSZWN0IHJlZ2lvbkNvbnRlbnRC
b3ggPSB0b1JlbmRlckJveChyZWdpb24tPmxheWVyT3duZXIoKSktPmNvbnRlbnRCb3hSZWN0KCk7
Ci0gICAgTGF5b3V0U2l6ZSBtb3ZlT2Zmc2V0ID0gcmVnaW9uLT5mbG93VGhyZWFkUG9ydGlvbkxv
Y2F0aW9uKCkgLSAocGFpbnRPZmZzZXQgKyByZWdpb25Db250ZW50Qm94LmxvY2F0aW9uKCkpOwot
ICAgIEludFBvaW50IGFkanVzdGVkUGFpbnRPZmZzZXQgPSByb3VuZGVkSW50UG9pbnQoLW1vdmVP
ZmZzZXQpOwotICAgIHBhaW50RGlydHlSZWN0Lm1vdmUobW92ZU9mZnNldCk7Ci0KLSAgICBjb250
ZXh0LT5zYXZlKCk7Ci0gICAgY29udGV4dC0+dHJhbnNsYXRlKGFkanVzdGVkUGFpbnRPZmZzZXQu
eCgpLCBhZGp1c3RlZFBhaW50T2Zmc2V0LnkoKSk7Ci0KLSAgICByZWdpb24tPnNldFJlZ2lvbk9i
amVjdHNSZWdpb25TdHlsZSgpOwotICAgIHBhaW50KGNvbnRleHQsIHBhaW50RGlydHlSZWN0LCBw
YWludEJlaGF2aW9yLCAwLCByZWdpb24sIHBhaW50RmxhZ3MgfCBQYWludExheWVyVGVtcG9yYXJ5
Q2xpcFJlY3RzKTsKLSAgICByZWdpb24tPnJlc3RvcmVSZWdpb25PYmplY3RzT3JpZ2luYWxTdHls
ZSgpOwotCi0gICAgY29udGV4dC0+cmVzdG9yZSgpOwotfQotCi12b2lkIFJlbmRlckxheWVyOjpw
YWludEZsb3dUaHJlYWRJZlJlZ2lvbihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IExh
eWVyUGFpbnRpbmdJbmZvJiBwYWludGluZ0luZm8sIFBhaW50TGF5ZXJGbGFncyBwYWludEZsYWdz
LCBMYXlvdXRQb2ludCBwYWludE9mZnNldCwgTGF5b3V0UmVjdCBkaXJ0eVJlY3QsIGJvb2wgaXNQ
YWludGluZ092ZXJmbG93Q29udGVudHMpCi17Ci0gICAgaWYgKCFyZW5kZXJlcigpLmlzUmVuZGVy
TmFtZWRGbG93RnJhZ21lbnRDb250YWluZXIoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAg
IFJlbmRlckJsb2NrRmxvdyogcmVuZGVyTmFtZWRGbG93RnJhZ21lbnRDb250YWluZXIgPSB0b1Jl
bmRlckJsb2NrRmxvdygmcmVuZGVyZXIoKSk7Ci0gICAgUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQq
IHJlZ2lvbiA9IHJlbmRlck5hbWVkRmxvd0ZyYWdtZW50Q29udGFpbmVyLT5yZW5kZXJOYW1lZEZs
b3dGcmFnbWVudCgpOwotICAgIGlmICghcmVnaW9uLT5pc1ZhbGlkKCkpCi0gICAgICAgIHJldHVy
bjsKLSAgICAKLSAgICBDbGlwUmVjdCByZWdpb25DbGlwUmVjdDsKLSAgICBpZiAocGFpbnRpbmdJ
bmZvLnJvb3RMYXllciAhPSB0aGlzICYmIHBhcmVudCgpKSB7Ci0gICAgICAgIENsaXBSZWN0c0Nv
bnRleHQgY2xpcFJlY3RzQ29udGV4dChwYWludGluZ0luZm8ucm9vdExheWVyLCByZWdpb24sCi0g
ICAgICAgICAgICAocGFpbnRGbGFncyAmIFBhaW50TGF5ZXJUZW1wb3JhcnlDbGlwUmVjdHMpID8g
VGVtcG9yYXJ5Q2xpcFJlY3RzIDogUGFpbnRpbmdDbGlwUmVjdHMsCi0gICAgICAgICAgICBJZ25v
cmVPdmVybGF5U2Nyb2xsYmFyU2l6ZSwgKGlzUGFpbnRpbmdPdmVyZmxvd0NvbnRlbnRzKSA/IEln
bm9yZU92ZXJmbG93Q2xpcCA6IFJlc3BlY3RPdmVyZmxvd0NsaXApOwotICAgICAgICByZWdpb25D
bGlwUmVjdCA9IGJhY2tncm91bmRDbGlwUmVjdChjbGlwUmVjdHNDb250ZXh0KTsKLSAgICB9IGVs
c2UKLSAgICAgICAgcmVnaW9uQ2xpcFJlY3QgPSBkaXJ0eVJlY3Q7Ci0KLSAgICBSZW5kZXJOYW1l
ZEZsb3dUaHJlYWQqIGZsb3dUaHJlYWQgPSByZWdpb24tPm5hbWVkRmxvd1RocmVhZCgpOwotICAg
IExheW91dFJlY3QgcmVnaW9uQ29udGVudEJveCA9IHJlbmRlck5hbWVkRmxvd0ZyYWdtZW50Q29u
dGFpbmVyLT5jb250ZW50Qm94UmVjdCgpOwotICAgIAotICAgIFJlbmRlckxheWVyKiBmbG93VGhy
ZWFkTGF5ZXIgPSBmbG93VGhyZWFkLT5sYXllcigpOwotICAgIGJvb2wgaXNMYXN0UmVnaW9uV2l0
aFJlZ2lvbkZyYWdtZW50QnJlYWsgPSAocmVnaW9uLT5pc0xhc3RSZWdpb24oKSAmJiByZWdpb24t
PnN0eWxlKCkucmVnaW9uRnJhZ21lbnQoKSA9PSBCcmVha1JlZ2lvbkZyYWdtZW50KTsKLSAgICBp
ZiAocmVnaW9uLT5oYXNPdmVyZmxvd0NsaXAoKSB8fCBpc0xhc3RSZWdpb25XaXRoUmVnaW9uRnJh
Z21lbnRCcmVhaykgewotICAgICAgICBMYXlvdXRQb2ludCByZWdpb25PZmZzZXRGcm9tUm9vdDsK
LSAgICAgICAgY29udmVydFRvTGF5ZXJDb29yZHMoZmxvd1RocmVhZExheWVyLCByZWdpb25PZmZz
ZXRGcm9tUm9vdCk7Ci0gICAgICAgIHJlZ2lvbkNsaXBSZWN0ID0gcmVnaW9uQ29udGVudEJveDsK
LSAgICAgICAgcmVnaW9uQ2xpcFJlY3QubW92ZUJ5KHJlZ2lvbk9mZnNldEZyb21Sb290KTsKLSAg
ICB9Ci0KLSAgICAvLyBPcHRpbWl6ZSBjbGlwcGluZyBmb3IgdGhlIHNpbmdsZSBmcmFnbWVudCBj
YXNlLgotICAgIGlmICghcmVnaW9uQ2xpcFJlY3QuaXNFbXB0eSgpKQotICAgICAgICBjbGlwVG9S
ZWN0KHBhaW50aW5nSW5mby5yb290TGF5ZXIsIGNvbnRleHQsIHBhaW50aW5nSW5mby5wYWludERp
cnR5UmVjdCwgcmVnaW9uQ2xpcFJlY3QpOwotCi0gICAgZmxvd1RocmVhZExheWVyLT5wYWludE5h
bWVkRmxvd1RocmVhZEluc2lkZVJlZ2lvbihjb250ZXh0LCByZWdpb24sIHBhaW50aW5nSW5mby5w
YWludERpcnR5UmVjdCwgcGFpbnRPZmZzZXQsIHBhaW50aW5nSW5mby5wYWludEJlaGF2aW9yLCBw
YWludEZsYWdzKTsKLQotICAgIGlmICghcmVnaW9uQ2xpcFJlY3QuaXNFbXB0eSgpKQotICAgICAg
ICByZXN0b3JlQ2xpcChjb250ZXh0LCBwYWludGluZ0luZm8ucGFpbnREaXJ0eVJlY3QsIHJlZ2lv
bkNsaXBSZWN0KTsKLX0KLQotUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVyOjpoaXRUZXN0Rmxvd1Ro
cmVhZElmUmVnaW9uKFJlbmRlckxheWVyKiByb290TGF5ZXIsIGNvbnN0IEhpdFRlc3RSZXF1ZXN0
JiByZXF1ZXN0LCBIaXRUZXN0UmVzdWx0JiByZXN1bHQsIGNvbnN0IExheW91dFJlY3QmIGhpdFRl
c3RSZWN0LCAKLSAgICBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGhpdFRlc3RMb2NhdGlvbiwKLSAg
ICBjb25zdCBIaXRUZXN0aW5nVHJhbnNmb3JtU3RhdGUqIHRyYW5zZm9ybVN0YXRlLCAKLSAgICBk
b3VibGUqIHpPZmZzZXRGb3JEZXNjZW5kYW50cykKLXsKLSAgICBpZiAoIXJlbmRlcmVyKCkuaXNS
ZW5kZXJOYW1lZEZsb3dGcmFnbWVudENvbnRhaW5lcigpKQotICAgICAgICByZXR1cm4gMDsKLQot
ICAgIFJlbmRlck5hbWVkRmxvd0ZyYWdtZW50KiByZWdpb24gPSB0b1JlbmRlckJsb2NrRmxvdygm
cmVuZGVyZXIoKSktPnJlbmRlck5hbWVkRmxvd0ZyYWdtZW50KCk7Ci0gICAgaWYgKCFyZWdpb24t
PmlzVmFsaWQoKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBSZW5kZXJGbG93VGhyZWFkKiBm
bG93VGhyZWFkID0gcmVnaW9uLT5mbG93VGhyZWFkKCk7Ci0KLSAgICBMYXlvdXRQb2ludCByZWdp
b25PZmZzZXRGcm9tUm9vdDsKLSAgICBjb252ZXJ0VG9MYXllckNvb3Jkcyhyb290TGF5ZXIsIHJl
Z2lvbk9mZnNldEZyb21Sb290KTsKLQotICAgIExheW91dFBvaW50IHBvcnRpb25Mb2NhdGlvbiA9
IHJlZ2lvbi0+Zmxvd1RocmVhZFBvcnRpb25SZWN0KCkubG9jYXRpb24oKTsKLQotICAgIGlmIChm
bG93VGhyZWFkLT5zdHlsZSgpLmlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKCkpIHsKLSAgICAg
ICAgLy8gVGhlIHBvcnRpb24gbG9jYXRpb24gY29vcmRpbmF0ZSBtdXN0IGJlIHRyYW5zbGF0ZWQg
aW50byBwaHlzaWNhbCBjb29yZGluYXRlcy4KLSAgICAgICAgaWYgKGZsb3dUaHJlYWQtPnN0eWxl
KCkuaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkKLSAgICAgICAgICAgIHBvcnRpb25Mb2NhdGlv
bi5zZXRZKGZsb3dUaHJlYWQtPmhlaWdodCgpIC0gKHBvcnRpb25Mb2NhdGlvbi55KCkgKyByZWdp
b24tPmNvbnRlbnRIZWlnaHQoKSkpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBwb3J0aW9u
TG9jYXRpb24uc2V0WChmbG93VGhyZWFkLT53aWR0aCgpIC0gKHBvcnRpb25Mb2NhdGlvbi54KCkg
KyByZWdpb24tPmNvbnRlbnRXaWR0aCgpKSk7Ci0gICAgfQotCi0gICAgTGF5b3V0UmVjdCByZWdp
b25Db250ZW50Qm94ID0gdG9SZW5kZXJCbG9ja0Zsb3coJnJlbmRlcmVyKCkpLT5jb250ZW50Qm94
UmVjdCgpOwotICAgIExheW91dFNpemUgaGl0VGVzdE9mZnNldCA9IHBvcnRpb25Mb2NhdGlvbiAt
IChyZWdpb25PZmZzZXRGcm9tUm9vdCArIHJlZ2lvbkNvbnRlbnRCb3gubG9jYXRpb24oKSk7Ci0K
LSAgICAvLyBBbHdheXMgaWdub3JlIGNsaXBwaW5nLCBzaW5jZSB0aGUgUmVuZGVyRmxvd1RocmVh
ZCBoYXMgbm90aGluZyB0byBkbyB3aXRoIHRoZSBib3VuZHMgb2YgdGhlIEZyYW1lVmlldy4KLSAg
ICBIaXRUZXN0UmVxdWVzdCBuZXdSZXF1ZXN0KHJlcXVlc3QudHlwZSgpIHwgSGl0VGVzdFJlcXVl
c3Q6Oklnbm9yZUNsaXBwaW5nIHwgSGl0VGVzdFJlcXVlc3Q6OkRpc2FsbG93U2hhZG93Q29udGVu
dCk7Ci0KLSAgICAvLyBNYWtlIGEgbmV3IHRlbXBvcmFyeSBIaXRUZXN0TG9jYXRpb24gaW4gdGhl
IG5ldyByZWdpb24uCi0gICAgSGl0VGVzdExvY2F0aW9uIG5ld0hpdFRlc3RMb2NhdGlvbihoaXRU
ZXN0TG9jYXRpb24sIGhpdFRlc3RPZmZzZXQsIHJlZ2lvbik7Ci0KLSAgICAvLyBFeHBhbmQgdGhl
IGhpdC10ZXN0IHJlY3QgdG8gdGhlIGZsb3cgdGhyZWFkJ3MgY29vcmRpbmF0ZSBzeXN0ZW0uCi0g
ICAgTGF5b3V0UmVjdCBoaXRUZXN0UmVjdEluRmxvd1RocmVhZCA9IGhpdFRlc3RSZWN0OwotICAg
IGhpdFRlc3RSZWN0SW5GbG93VGhyZWFkLm1vdmUoaGl0VGVzdE9mZnNldC53aWR0aCgpLCBoaXRU
ZXN0T2Zmc2V0LmhlaWdodCgpKTsKLSAgICBoaXRUZXN0UmVjdEluRmxvd1RocmVhZC5leHBhbmQo
TGF5b3V0U2l6ZShmYWJzKChkb3VibGUpaGl0VGVzdE9mZnNldC53aWR0aCgpKSwgZmFicygoZG91
YmxlKWhpdFRlc3RPZmZzZXQuaGVpZ2h0KCkpKSk7Ci0KLSAgICByZXR1cm4gZmxvd1RocmVhZC0+
bGF5ZXIoKS0+aGl0VGVzdExheWVyKGZsb3dUaHJlYWQtPmxheWVyKCksIDAsIG5ld1JlcXVlc3Qs
IHJlc3VsdCwgaGl0VGVzdFJlY3RJbkZsb3dUaHJlYWQsIG5ld0hpdFRlc3RMb2NhdGlvbiwgZmFs
c2UsIHRyYW5zZm9ybVN0YXRlLCB6T2Zmc2V0Rm9yRGVzY2VuZGFudHMpOwotfQotCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNpZm5kZWYgTkRFQlVHCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5oCmluZGV4IDE0MmI1NmM2YmEyZjQ2MTBiYmI4MzU4MDYyYWNhNzczNDUyYjAx
YzcuLjhmYzIxYzI4ZmM5Mzg5NjIwNzMxMzA4MzNkMTRlMzU0OTY1NTRjNTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCkBAIC02Miw3ICs2Miw2IEBAIGNsYXNzIFJlbmRl
ckdlb21ldHJ5TWFwOwogY2xhc3MgUmVuZGVyTGF5ZXJCYWNraW5nOwogY2xhc3MgUmVuZGVyTGF5
ZXJDb21wb3NpdG9yOwogY2xhc3MgUmVuZGVyTWFycXVlZTsKLWNsYXNzIFJlbmRlck5hbWVkRmxv
d0ZyYWdtZW50OwogY2xhc3MgUmVuZGVyUmVwbGljYTsKIGNsYXNzIFJlbmRlclNjcm9sbGJhclBh
cnQ7CiBjbGFzcyBSZW5kZXJTdHlsZTsKQEAgLTExNSwxMCArMTE0LDYgQEAgcHVibGljOgogICAg
IGJvb2wgaW50ZXJzZWN0cyhjb25zdCBMYXlvdXRSZWN0JiByZWN0KSBjb25zdCB7IHJldHVybiBt
X3JlY3QuaW50ZXJzZWN0cyhyZWN0KTsgfQogICAgIGJvb2wgaW50ZXJzZWN0cyhjb25zdCBIaXRU
ZXN0TG9jYXRpb24mKSBjb25zdDsKIAotICAgIHZvaWQgaW5mbGF0ZVgoTGF5b3V0VW5pdCBkeCkg
eyBtX3JlY3QuaW5mbGF0ZVgoZHgpOyB9Ci0gICAgdm9pZCBpbmZsYXRlWShMYXlvdXRVbml0IGR5
KSB7IG1fcmVjdC5pbmZsYXRlWShkeSk7IH0KLSAgICB2b2lkIGluZmxhdGUoTGF5b3V0VW5pdCBk
KSB7IGluZmxhdGVYKGQpOyBpbmZsYXRlWShkKTsgfQotCiBwcml2YXRlOgogICAgIExheW91dFJl
Y3QgbV9yZWN0OwogICAgIGJvb2wgbV9oYXNSYWRpdXM7CkBAIC01MzMsOSArNTI4LDYgQEAgcHVi
bGljOgogICAgIC8vIFVwZGF0ZSBvdXIgbm9ybWFsIGFuZCB6LWluZGV4IGxpc3RzLgogICAgIHZv
aWQgdXBkYXRlTGF5ZXJMaXN0c0lmTmVlZGVkKCk7CiAKLSAgICAvLyBVcGRhdGUgdGhlIG5vcm1h
bCBhbmQgei1pbmRleCBsaXN0cyBvZiBvdXIgZGVzY2VuZGFudHMuCi0gICAgdm9pZCB1cGRhdGVE
ZXNjZW5kYW50c0xheWVyTGlzdHNJZk5lZWRlZChib29sIHJlY3Vyc2l2ZSk7Ci0KICAgICAvLyBG
SVhNRTogV2Ugc2hvdWxkIEFTU0VSVCghbV92aXNpYmxlQ29udGVudFN0YXR1c0RpcnR5KSBoZXJl
LCBidXQgc2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTA0NAog
ICAgIC8vIGRpdHRvIGZvciBoYXNWaXNpYmxlRGVzY2VuZGFudCgpLCBzZWUgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMjc3CiAgICAgYm9vbCBoYXNWaXNpYmxlQ29u
dGVudCgpIGNvbnN0IHsgcmV0dXJuIG1faGFzVmlzaWJsZUNvbnRlbnQ7IH0KQEAgLTYzNyw4ICs2
MjksNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBoaXRUZXN0KGNvbnN0IEhpdFRlc3RSZXF1ZXN0Jiwg
Y29uc3QgSGl0VGVzdExvY2F0aW9uJiwgSGl0VGVzdFJlc3VsdCYpOwogICAgIHZvaWQgcGFpbnRP
dmVybGF5U2Nyb2xsYmFycyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBMYXlvdXRSZWN0JiBkYW1h
Z2VSZWN0LCBQYWludEJlaGF2aW9yLCBSZW5kZXJPYmplY3QqIHN1YnRyZWVQYWludFJvb3QgPSAw
KTsKIAotICAgIHZvaWQgcGFpbnROYW1lZEZsb3dUaHJlYWRJbnNpZGVSZWdpb24oR3JhcGhpY3ND
b250ZXh0KiwgUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQqLCBMYXlvdXRSZWN0LCBMYXlvdXRQb2lu
dCwgUGFpbnRCZWhhdmlvciA9IFBhaW50QmVoYXZpb3JOb3JtYWwsIFBhaW50TGF5ZXJGbGFncyA9
IDApOwotCiAgICAgc3RydWN0IENsaXBSZWN0c0NvbnRleHQgewogICAgICAgICBDbGlwUmVjdHND
b250ZXh0KGNvbnN0IFJlbmRlckxheWVyKiBpblJvb3RMYXllciwgUmVuZGVyUmVnaW9uKiBpblJl
Z2lvbiwgQ2xpcFJlY3RzVHlwZSBpbkNsaXBSZWN0c1R5cGUsIE92ZXJsYXlTY3JvbGxiYXJTaXpl
UmVsZXZhbmN5IGluT3ZlcmxheVNjcm9sbGJhclNpemVSZWxldmFuY3kgPSBJZ25vcmVPdmVybGF5
U2Nyb2xsYmFyU2l6ZSwgU2hvdWxkUmVzcGVjdE92ZXJmbG93Q2xpcCBpblJlc3BlY3RPdmVyZmxv
d0NsaXAgPSBSZXNwZWN0T3ZlcmZsb3dDbGlwKQogICAgICAgICAgICAgOiByb290TGF5ZXIoaW5S
b290TGF5ZXIpCkBAIC02NzgsNyArNjY4LDcgQEAgcHVibGljOgogICAgIExheW91dFJlY3QgbG9j
YWxDbGlwUmVjdCgpIGNvbnN0OyAvLyBSZXR1cm5zIHRoZSBiYWNrZ3JvdW5kIGNsaXAgcmVjdCBv
ZiB0aGUgbGF5ZXIgaW4gdGhlIGxvY2FsIGNvb3JkaW5hdGUgc3BhY2UuCiAKICAgICAvLyBQYXNz
IG9mZnNldEZyb21Sb290IGlmIGtub3duLgotICAgIGJvb2wgaW50ZXJzZWN0c0RhbWFnZVJlY3Qo
Y29uc3QgTGF5b3V0UmVjdCYgbGF5ZXJCb3VuZHMsIGNvbnN0IExheW91dFJlY3QmIGRhbWFnZVJl
Y3QsIGNvbnN0IFJlbmRlckxheWVyKiByb290TGF5ZXIsIGNvbnN0IExheW91dFBvaW50KiBvZmZz
ZXRGcm9tUm9vdCA9IDAsIFJlbmRlclJlZ2lvbiogPSAwKSBjb25zdDsKKyAgICBib29sIGludGVy
c2VjdHNEYW1hZ2VSZWN0KGNvbnN0IExheW91dFJlY3QmIGxheWVyQm91bmRzLCBjb25zdCBMYXlv
dXRSZWN0JiBkYW1hZ2VSZWN0LCBjb25zdCBSZW5kZXJMYXllciogcm9vdExheWVyLCBjb25zdCBM
YXlvdXRQb2ludCogb2Zmc2V0RnJvbVJvb3QgPSAwKSBjb25zdDsKIAogICAgIGVudW0gQ2FsY3Vs
YXRlTGF5ZXJCb3VuZHNGbGFnIHsKICAgICAgICAgSW5jbHVkZVNlbGZUcmFuc2Zvcm0gPSAxIDw8
IDAsCkBAIC0xMTQyLDEyICsxMTMyLDYgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgb3ZlcmZsb3dD
b250cm9sc0ludGVyc2VjdFJlY3QoY29uc3QgSW50UmVjdCYgbG9jYWxSZWN0KSBjb25zdDsKIAot
ICAgIFJlbmRlckxheWVyKiBoaXRUZXN0Rmxvd1RocmVhZElmUmVnaW9uKFJlbmRlckxheWVyKiwg
Y29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwKLSAgICAgICAgY29uc3QgTGF5
b3V0UmVjdCYsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYsCi0gICAgICAgIGNvbnN0IEhpdFRlc3Rp
bmdUcmFuc2Zvcm1TdGF0ZSosIGRvdWJsZSopOwotICAgIHZvaWQgcGFpbnRGbG93VGhyZWFkSWZS
ZWdpb24oR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgTGF5ZXJQYWludGluZ0luZm8mLCBQYWludExh
eWVyRmxhZ3MsIExheW91dFBvaW50LCBMYXlvdXRSZWN0LCBib29sKTsKLSAgICB2b2lkIG1hcExh
eWVyQ2xpcFJlY3RzVG9GcmFnbWVudGF0aW9uTGF5ZXIoUmVuZGVyUmVnaW9uKiwgQ2xpcFJlY3Rz
JikgY29uc3Q7Ci0KIHByaXZhdGU6CiAgICAgLy8gVGhlIGJpdGZpZWxkcyBhcmUgdXAgaGVyZSBz
byB0aGV5IHdpbGwgZmFsbCBpbnRvIHRoZSBwYWRkaW5nIGZyb20gU2Nyb2xsYWJsZUFyZWEgb24g
NjQtYml0LgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNv
bXBvc2l0b3IuY3BwCmluZGV4IDQ2ZjI1YjY0ZWE0MjBhNDMzYTZmNmNhMDdhODkyZDdiZTllMDcy
NTQuLjhkMTBlZGE0YjgwZGQzYjAyODA5YTNkOGE2MzRiZDFiN2JkMjQzYWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC05
MzksMTIgKzkzOSw2IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRlQ29tcG9z
aXRpbmdSZXF1aXJlbWVudHMoUmVuZGVyTGF5ZXIqIGFuY2VzdG9yCiAgICAgaWYgKGxheWVyLmlz
Rmxvd1RocmVhZENvbGxlY3RpbmdHcmFwaGljc0xheWVyc1VuZGVyUmVnaW9ucygpKSB7CiAgICAg
ICAgIFJlbmRlckZsb3dUaHJlYWQmIGZsb3dUaHJlYWQgPSB0b1JlbmRlckZsb3dUaHJlYWQobGF5
ZXIucmVuZGVyZXIoKSk7CiAgICAgICAgIGxheWVyLnNldEhhc0NvbXBvc2l0aW5nRGVzY2VuZGFu
dChmbG93VGhyZWFkLmhhc0NvbXBvc2l0aW5nUmVnaW9uRGVzY2VuZGFudCgpKTsKLQotICAgICAg
ICAvLyBCZWZvcmUgcmV0dXJuaW5nLCB3ZSBuZWVkIHRvIHVwZGF0ZSB0aGUgbGlzdHMgb2YgYWxs
IGNoaWxkIGxheWVycy4gVGhpcyBpcyByZXF1aXJlZCBiZWNhdXNlLAotICAgICAgICAvLyBpZiB0
aGlzIGZsb3cgdGhyZWFkIHdpbGwgbm90IGJlIHBhaW50ZWQgKGZvciBpbnN0YW5jZSBiZWNhdXNl
IG9mIGhhdmluZyBubyByZWdpb25zLCBvciBvbmx5IGludmFsaWQgcmVnaW9ucyksCi0gICAgICAg
IC8vIHRoZSBjaGlsZCBsYXllcnMgd2lsbCBuZXZlciBoYXZlIHRoZWlyIGxpc3RzIHVwZGF0ZWQg
KHdoaWNoIHdvdWxkIG5vcm1hbGx5IGhhcHBlbiBkdXJpbmcgcGFpbnRpbmcpLgotICAgICAgICBs
YXllci51cGRhdGVEZXNjZW5kYW50c0xheWVyTGlzdHNJZk5lZWRlZCh0cnVlKTsKLQogICAgICAg
ICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGlzdEl0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RJ
dGVtLmNwcAppbmRleCAzMzJiNWZjZWIxNWQ3OGRiM2VkMWJhOWRmYjkwZTUyZGZjZmY2MGM3Li5h
ZGU1ZTBhZjYwYjY1YWE3YjZkMWU4NGExYmExZjE3ZDQxMGE5ZjkwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEl0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0SXRlbS5jcHAKQEAgLTMxMiw4ICszMTIsOCBAQCB2b2lk
IFJlbmRlckxpc3RJdGVtOjpsYXlvdXQoKQogCiB2b2lkIFJlbmRlckxpc3RJdGVtOjphZGRPdmVy
Zmxvd0Zyb21DaGlsZHJlbigpCiB7Ci0gICAgcG9zaXRpb25MaXN0TWFya2VyKCk7CiAgICAgUmVu
ZGVyQmxvY2tGbG93OjphZGRPdmVyZmxvd0Zyb21DaGlsZHJlbigpOworICAgIHBvc2l0aW9uTGlz
dE1hcmtlcigpOwogfQogCiB2b2lkIFJlbmRlckxpc3RJdGVtOjpjb21wdXRlUHJlZmVycmVkTG9n
aWNhbFdpZHRocygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TXVsdGlDb2x1bW5TZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRp
Q29sdW1uU2V0LmNwcAppbmRleCA0Mjg2ZGE5MDE0ZjNjOWY2ZGU0NjNlYTYwNDNmYmZmZWNiZDFm
YjlmLi43ODJiNTdhMDIyYzI5NTcxOWU3MzM4NWZhZGVhMGE2Y2U5NGQwZWIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5jcHAKQEAgLTI1
NCw3ICsyNTQsNyBAQCBMYXlvdXRSZWN0IFJlbmRlck11bHRpQ29sdW1uU2V0OjpmbG93VGhyZWFk
UG9ydGlvblJlY3RBdCh1bnNpZ25lZCBpbmRleCkgY29uc3QKICAgICByZXR1cm4gcG9ydGlvblJl
Y3Q7CiB9CiAKLUxheW91dFJlY3QgUmVuZGVyTXVsdGlDb2x1bW5TZXQ6OmZsb3dUaHJlYWRQb3J0
aW9uT3ZlcmZsb3dSZWN0KGNvbnN0IExheW91dFJlY3QmIHBvcnRpb25SZWN0LCB1bnNpZ25lZCBp
bmRleCwgdW5zaWduZWQgY29sQ291bnQsIExheW91dFVuaXQgY29sR2FwKQorTGF5b3V0UmVjdCBS
ZW5kZXJNdWx0aUNvbHVtblNldDo6Zmxvd1RocmVhZFBvcnRpb25PdmVyZmxvd1JlY3QoY29uc3Qg
TGF5b3V0UmVjdCYgcG9ydGlvblJlY3QsIHVuc2lnbmVkIGluZGV4LCB1bnNpZ25lZCBjb2xDb3Vu
dCwgTGF5b3V0VW5pdCBjb2xHYXApIGNvbnN0CiB7CiAgICAgLy8gVGhpcyBmdW5jdGlvbiBkZXRl
cm1pbmVzIHRoZSBwb3J0aW9uIG9mIHRoZSBmbG93IHRocmVhZCB0aGF0IHBhaW50cyBmb3IgdGhl
IGNvbHVtbi4gQWxvbmcgdGhlIGlubGluZSBheGlzLCBjb2x1bW5zIGFyZQogICAgIC8vIHVuY2xp
cHBlZCBhdCBvdXRzaWRlIGVkZ2VzIChpLmUuLCB0aGUgZmlyc3QgYW5kIGxhc3QgY29sdW1uIGlu
IHRoZSBzZXQpLCBhbmQgdGhleSBjbGlwIHRvIGhhbGYgdGhlIGNvbHVtbgpAQCAtMzYzLDcgKzM2
Myw3IEBAIHZvaWQgUmVuZGVyTXVsdGlDb2x1bW5TZXQ6OnBhaW50Q29sdW1uUnVsZXMoUGFpbnRJ
bmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvCiAgICAgfQogfQogCi12b2lkIFJlbmRlck11
bHRpQ29sdW1uU2V0OjpyZXBhaW50Rmxvd1RocmVhZENvbnRlbnQoY29uc3QgTGF5b3V0UmVjdCYg
cmVwYWludFJlY3QsIGJvb2wgaW1tZWRpYXRlKQordm9pZCBSZW5kZXJNdWx0aUNvbHVtblNldDo6
cmVwYWludEZsb3dUaHJlYWRDb250ZW50KGNvbnN0IExheW91dFJlY3QmIHJlcGFpbnRSZWN0LCBi
b29sIGltbWVkaWF0ZSkgY29uc3QKIHsKICAgICAvLyBGaWd1cmUgb3V0IHRoZSBzdGFydCBhbmQg
ZW5kIGNvbHVtbnMgYW5kIG9ubHkgY2hlY2sgd2l0aGluIHRoYXQgcmFuZ2Ugc28gdGhhdCB3ZSBk
b24ndCB3YWxrIHRoZQogICAgIC8vIGVudGlyZSBjb2x1bW4gc2V0LiBQdXQgdGhlIHJlcGFpbnQg
cmVjdCBpbnRvIGZsb3cgdGhyZWFkIGNvb3JkaW5hdGVzIGJ5IGZsaXBwaW5nIGl0IGZpcnN0LgpA
QCAtMzkyLDEyICszOTIsMTIgQEAgdm9pZCBSZW5kZXJNdWx0aUNvbHVtblNldDo6cmVwYWludEZs
b3dUaHJlYWRDb250ZW50KGNvbnN0IExheW91dFJlY3QmIHJlcGFpbnRSZWMKICAgICAgICAgCiAg
ICAgICAgIC8vIEdldCB0aGUgcG9ydGlvbiBvZiB0aGUgZmxvdyB0aHJlYWQgdGhhdCBjb3JyZXNw
b25kcyB0byB0aGlzIGNvbHVtbi4KICAgICAgICAgTGF5b3V0UmVjdCBmbG93VGhyZWFkUG9ydGlv
biA9IGZsb3dUaHJlYWRQb3J0aW9uUmVjdEF0KGkpOwotCisgICAgICAgIAogICAgICAgICAvLyBO
b3cgZ2V0IHRoZSBvdmVyZmxvdyByZWN0IHRoYXQgY29ycmVzcG9uZHMgdG8gdGhlIGNvbHVtbi4K
ICAgICAgICAgTGF5b3V0UmVjdCBmbG93VGhyZWFkT3ZlcmZsb3dQb3J0aW9uID0gZmxvd1RocmVh
ZFBvcnRpb25PdmVyZmxvd1JlY3QoZmxvd1RocmVhZFBvcnRpb24sIGksIGNvbENvdW50LCBjb2xH
YXApOwogCiAgICAgICAgIC8vIERvIGEgcmVwYWludCBmb3IgdGhpcyBzcGVjaWZpYyBjb2x1bW4u
Ci0gICAgICAgIHJlcGFpbnRGbG93VGhyZWFkQ29udGVudFJlY3RhbmdsZShyZXBhaW50UmVjdCwg
aW1tZWRpYXRlLCBmbG93VGhyZWFkUG9ydGlvbiwgY29sUmVjdC5sb2NhdGlvbigpLCAmZmxvd1Ro
cmVhZE92ZXJmbG93UG9ydGlvbik7CisgICAgICAgIHJlcGFpbnRGbG93VGhyZWFkQ29udGVudFJl
Y3RhbmdsZShyZXBhaW50UmVjdCwgaW1tZWRpYXRlLCBmbG93VGhyZWFkUG9ydGlvbiwgZmxvd1Ro
cmVhZE92ZXJmbG93UG9ydGlvbiwgY29sUmVjdC5sb2NhdGlvbigpKTsKICAgICB9CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU2V0LmgKaW5kZXgg
MDM4ZWMzZjhiOWQxNjdjYmQyNjMyNGYxY2NjMTlhNTYwNGU2ZDBjMy4uOWVlMzJiZDQyZGY0ZWM4
MzQwNGZiMmZiMDk4MmU2NmU3ZmZhYzEwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck11bHRpQ29sdW1uU2V0LmgKQEAgLTExNCw3ICsxMTQsNyBAQCBwcml2YXRlOgog
ICAgIC8vIGJhbGFuY2luZy4gVGhhdCdzIHdoeSB3ZSBoYXZlIGFuIG92ZXJyaWRlIG9mIHRoaXMg
ZnVuY3Rpb24gdGhhdCBpcyBkaXN0aW5jdCBmcm9tIFJlbmRlclJlZ2lvblNldCdzIG92ZXJyaWRl
LgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRIYXZlQXV0b0xvZ2ljYWxIZWlnaHQoKSBjb25zdCBP
VkVSUklERSB7IHJldHVybiBmYWxzZTsgfQogICAgIAotICAgIHZpcnR1YWwgdm9pZCByZXBhaW50
Rmxvd1RocmVhZENvbnRlbnQoY29uc3QgTGF5b3V0UmVjdCYgcmVwYWludFJlY3QsIGJvb2wgaW1t
ZWRpYXRlKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVwYWludEZsb3dUaHJlYWRDb250
ZW50KGNvbnN0IExheW91dFJlY3QmIHJlcGFpbnRSZWN0LCBib29sIGltbWVkaWF0ZSkgY29uc3Qg
T1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdExheWVyRnJhZ21lbnRzKExheWVy
RnJhZ21lbnRzJiwgY29uc3QgTGF5b3V0UmVjdCYgbGF5ZXJCb3VuZGluZ0JveCwgY29uc3QgTGF5
b3V0UmVjdCYgZGlydHlSZWN0KSBPVkVSUklERTsKIApAQCAtMTI5LDcgKzEyOSw3IEBAIHByaXZh
dGU6CiAgICAgdW5zaWduZWQgY29sdW1uQ291bnQoKSBjb25zdDsKIAogICAgIExheW91dFJlY3Qg
Zmxvd1RocmVhZFBvcnRpb25SZWN0QXQodW5zaWduZWQgaW5kZXgpIGNvbnN0OwotICAgIExheW91
dFJlY3QgZmxvd1RocmVhZFBvcnRpb25PdmVyZmxvd1JlY3QoY29uc3QgTGF5b3V0UmVjdCYgZmxv
d1RocmVhZFBvcnRpb24sIHVuc2lnbmVkIGluZGV4LCB1bnNpZ25lZCBjb2xDb3VudCwgTGF5b3V0
VW5pdCBjb2xHYXApOworICAgIExheW91dFJlY3QgZmxvd1RocmVhZFBvcnRpb25PdmVyZmxvd1Jl
Y3QoY29uc3QgTGF5b3V0UmVjdCYgZmxvd1RocmVhZFBvcnRpb24sIHVuc2lnbmVkIGluZGV4LCB1
bnNpZ25lZCBjb2xDb3VudCwgTGF5b3V0VW5pdCBjb2xHYXApIGNvbnN0OwogCiAgICAgZW51bSBD
b2x1bW5JbmRleENhbGN1bGF0aW9uTW9kZSB7CiAgICAgICAgIENsYW1wVG9FeGlzdGluZ0NvbHVt
bnMsIC8vIFN0YXkgd2l0aGluIHRoZSByYW5nZSBvZiBhbHJlYWR5IGV4aXN0aW5nIGNvbHVtbnMu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93RnJh
Z21lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd0ZyYWdt
ZW50LmNwcAppbmRleCBmM2U5MWNhZDc2MzBkZmQzOTFlYjM0ZDJlY2UxOWViMjAxMzBiNTg3Li4z
MWExM2MwNTcxNDZkNmQ1ZjliNDMxODgwODExMWFhNjhmNDhmODMwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dGcmFnbWVudC5jcHAKQEAgLTU2
LDggKzU2LDYgQEAgUGFzc1JlZjxSZW5kZXJTdHlsZT4gUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQ6
OmNyZWF0ZVN0eWxlKGNvbnN0IFJlbmRlclN0eWxlJiBwYXIKICAgICBzdHlsZS5nZXQoKS5zZXRG
bG93VGhyZWFkKHBhcmVudFN0eWxlLmZsb3dUaHJlYWQoKSk7CiAgICAgc3R5bGUuZ2V0KCkuc2V0
UmVnaW9uVGhyZWFkKHBhcmVudFN0eWxlLnJlZ2lvblRocmVhZCgpKTsKICAgICBzdHlsZS5nZXQo
KS5zZXRSZWdpb25GcmFnbWVudChwYXJlbnRTdHlsZS5yZWdpb25GcmFnbWVudCgpKTsKLSAgICBz
dHlsZS5nZXQoKS5zZXRPdmVyZmxvd1gocGFyZW50U3R5bGUub3ZlcmZsb3dYKCkpOwotICAgIHN0
eWxlLmdldCgpLnNldE92ZXJmbG93WShwYXJlbnRTdHlsZS5vdmVyZmxvd1koKSk7CiAjaWYgRU5B
QkxFKENTU19TSEFQRVMpCiAgICAgc3R5bGUuZ2V0KCkuc2V0U2hhcGVJbnNpZGUocGFyZW50U3R5
bGUuc2hhcGVJbnNpZGUoKSk7CiAjZW5kaWYKQEAgLTk2LDkgKzk0LDQgQEAgTGF5b3V0VW5pdCBS
ZW5kZXJOYW1lZEZsb3dGcmFnbWVudDo6bWF4UGFnZUxvZ2ljYWxIZWlnaHQoKSBjb25zdAogICAg
IHJldHVybiBzdHlsZVRvVXNlLmxvZ2ljYWxNYXhIZWlnaHQoKS5pc1VuZGVmaW5lZCgpID8gUmVu
ZGVyRmxvd1RocmVhZDo6bWF4TG9naWNhbEhlaWdodCgpIDogdG9SZW5kZXJCbG9jayhwYXJlbnQo
KSktPmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxIZWlnaHRVc2luZyhzdHlsZVRvVXNlLmxvZ2ljYWxN
YXhIZWlnaHQoKSk7CiB9CiAKLVJlbmRlck5hbWVkRmxvd1RocmVhZCogUmVuZGVyTmFtZWRGbG93
RnJhZ21lbnQ6Om5hbWVkRmxvd1RocmVhZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHRvUmVuZGVy
TmFtZWRGbG93VGhyZWFkKGZsb3dUaHJlYWQoKSk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dG
cmFnbWVudC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd0ZyYWdt
ZW50LmgKaW5kZXggYWRmYjExYjcxZTE5NGE1Mjk1ODY3YWUxZWFkMzNlM2U4OTY5NTY5OS4uMGI2
ODM2MjhkNTlmMzcwMzMzY2IzNmQzODNmYmY2YTQxZTZkNzYyOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd0ZyYWdtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd0ZyYWdtZW50LmgKQEAgLTY4LDggKzY4
LDYgQEAgcHVibGljOgogICAgIFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGxheWVyT3duZXIoKSBj
b25zdCB7IHJldHVybiBwYXJlbnQoKSAmJiBwYXJlbnQoKS0+aXNSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KCkgPwogICAgICAgICB0b1JlbmRlckxheWVyTW9kZWxPYmplY3QocGFyZW50KCkpIDogbnVs
bHB0cjsgfQogCi0gICAgUmVuZGVyTmFtZWRGbG93VGhyZWFkKiBuYW1lZEZsb3dUaHJlYWQoKSBj
b25zdDsKLQogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSGF2ZUF1dG9Mb2dpY2Fs
SGVpZ2h0KCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJO
YW1lKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gIlJlbmRlck5hbWVkRmxvd0ZyYWdtZW50Ijsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck92ZXJmbG93Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT3ZlcmZsb3cuaAppbmRleCAxNTQyZjdl
NzkwNmI1ZGNlMTg0ZmRkMGE4N2VhYTIwZjg5ZTk2ZmViLi4yNDMwYjg4MmRjNTU0NzA3ZDBkNjM3
NDQzMGYxMGZmM2I2NGQ4MzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyT3ZlcmZsb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT3Zl
cmZsb3cuaApAQCAtMjIsNyArMjIsNiBAQAogI2RlZmluZSBSZW5kZXJPdmVyZmxvd19oCiAKICNp
bmNsdWRlICJMYXlvdXRSZWN0LmgiCi0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUKIHsKQEAgLTM4LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUKIC8v
IEV4YW1wbGVzIG9mIHZpc3VhbCBvdmVyZmxvdyBhcmUgc2hhZG93cywgdGV4dCBzdHJva2UgKGFu
ZCBldmVudHVhbGx5IG91dGxpbmUgYW5kIGJvcmRlci1pbWFnZSkuCiAKIC8vIFRoaXMgb2JqZWN0
IGlzIGFsbG9jYXRlZCBvbmx5IHdoZW4gc29tZSBvZiB0aGVzZSBmaWVsZHMgaGF2ZSBub24tZGVm
YXVsdCB2YWx1ZXMgaW4gdGhlIG93bmluZyBib3guCi1jbGFzcyBSZW5kZXJPdmVyZmxvdyA6IHB1
YmxpYyBXVEY6OlJlZkNvdW50ZWQ8UmVuZGVyT3ZlcmZsb3c+IHsKK2NsYXNzIFJlbmRlck92ZXJm
bG93IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShSZW5kZXJPdmVyZmxvdyk7IFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIFJlbmRlck92ZXJmbG93KGNvbnN0IExheW91
dFJlY3QmIGxheW91dFJlY3QsIGNvbnN0IExheW91dFJlY3QmIHZpc3VhbFJlY3QpIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmNwcAppbmRleCBmOWE5ZDA2MTRhNjhlYmFh
YjVmZGVjNTAyZWYyNTcxOWUyOGYzOGUyLi41ZGNhMzM4OTBhMTk3YzIwYjdmOTFlODAxNjI4MTM2
YTE0ODdiYjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVn
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmNwcApA
QCAtMTU0LDMzICsxNTQsMTIgQEAgTGF5b3V0VW5pdCBSZW5kZXJSZWdpb246OmxvZ2ljYWxIZWln
aHRPZkFsbEZsb3dUaHJlYWRDb250ZW50KCkgY29uc3QKICAgICByZXR1cm4gbV9mbG93VGhyZWFk
LT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gY29udGVudEhlaWdodCgpIDogY29udGVudFdp
ZHRoKCk7CiB9CiAKLUxheW91dFJlY3QgUmVuZGVyUmVnaW9uOjpmbG93VGhyZWFkUG9ydGlvbk92
ZXJmbG93UmVjdCgpCitMYXlvdXRSZWN0IFJlbmRlclJlZ2lvbjo6Zmxvd1RocmVhZFBvcnRpb25P
dmVyZmxvd1JlY3QoKSBjb25zdAogewogICAgIHJldHVybiBvdmVyZmxvd1JlY3RGb3JGbG93VGhy
ZWFkUG9ydGlvbihmbG93VGhyZWFkUG9ydGlvblJlY3QoKSwgaXNGaXJzdFJlZ2lvbigpLCBpc0xh
c3RSZWdpb24oKSwgVmlzdWFsT3ZlcmZsb3cpOwogfQogCi1MYXlvdXRQb2ludCBSZW5kZXJSZWdp
b246OmZsb3dUaHJlYWRQb3J0aW9uTG9jYXRpb24oKSBjb25zdAotewotICAgIExheW91dFBvaW50
IHBvcnRpb25Mb2NhdGlvbjsKLSAgICBMYXlvdXRSZWN0IHBvcnRpb25SZWN0ID0gZmxvd1RocmVh
ZFBvcnRpb25SZWN0KCk7Ci0KLSAgICBpZiAoZmxvd1RocmVhZCgpLT5zdHlsZSgpLmlzRmxpcHBl
ZEJsb2Nrc1dyaXRpbmdNb2RlKCkpIHsKLSAgICAgICAgTGF5b3V0UmVjdCBmbGlwcGVkRmxvd1Ro
cmVhZFBvcnRpb25SZWN0KHBvcnRpb25SZWN0KTsKLSAgICAgICAgZmxvd1RocmVhZCgpLT5mbGlw
Rm9yV3JpdGluZ01vZGUoZmxpcHBlZEZsb3dUaHJlYWRQb3J0aW9uUmVjdCk7Ci0gICAgICAgIHBv
cnRpb25Mb2NhdGlvbiA9IGZsaXBwZWRGbG93VGhyZWFkUG9ydGlvblJlY3QubG9jYXRpb24oKTsK
LSAgICB9IGVsc2UKLSAgICAgICAgcG9ydGlvbkxvY2F0aW9uID0gcG9ydGlvblJlY3QubG9jYXRp
b24oKTsKLQotICAgIHJldHVybiBwb3J0aW9uTG9jYXRpb247Ci19Ci0KLVJlbmRlckxheWVyKiBS
ZW5kZXJSZWdpb246OnJlZ2lvbkNvbnRhaW5lckxheWVyKCkgY29uc3QKLXsKLSAgICBBU1NFUlQo
cGFyZW50KCkgJiYgcGFyZW50KCktPmlzUmVuZGVyTmFtZWRGbG93RnJhZ21lbnRDb250YWluZXIo
KSk7Ci0gICAgcmV0dXJuIHRvUmVuZGVyQmxvY2tGbG93KHBhcmVudCgpKS0+bGF5ZXIoKTsKLX0K
LQotTGF5b3V0UmVjdCBSZW5kZXJSZWdpb246Om92ZXJmbG93UmVjdEZvckZsb3dUaHJlYWRQb3J0
aW9uKGNvbnN0IExheW91dFJlY3QmIGZsb3dUaHJlYWRQb3J0aW9uUmVjdCwgYm9vbCBpc0ZpcnN0
UG9ydGlvbiwgYm9vbCBpc0xhc3RQb3J0aW9uLCBPdmVyZmxvd1R5cGUgb3ZlcmZsb3dUeXBlKQor
TGF5b3V0UmVjdCBSZW5kZXJSZWdpb246Om92ZXJmbG93UmVjdEZvckZsb3dUaHJlYWRQb3J0aW9u
KGNvbnN0IExheW91dFJlY3QmIGZsb3dUaHJlYWRQb3J0aW9uUmVjdCwgYm9vbCBpc0ZpcnN0UG9y
dGlvbiwgYm9vbCBpc0xhc3RQb3J0aW9uLCBPdmVyZmxvd1R5cGUgb3ZlcmZsb3dUeXBlKSBjb25z
dAogewogICAgIEFTU0VSVChpc1ZhbGlkKCkpOwogCkBAIC0xOTIsNyArMTcxLDcgQEAgTGF5b3V0
UmVjdCBSZW5kZXJSZWdpb246Om92ZXJmbG93UmVjdEZvckZsb3dUaHJlYWRQb3J0aW9uKGNvbnN0
IExheW91dFJlY3QmIGZsb3cKICAgICBpZiAoKGNsaXBYICYmIGNsaXBZKSB8fCBpc0xhc3RSZWdp
b25XaXRoUmVnaW9uRnJhZ21lbnRCcmVhaykKICAgICAgICAgcmV0dXJuIGZsb3dUaHJlYWRQb3J0
aW9uUmVjdDsKIAotICAgIExheW91dFJlY3QgZmxvd1RocmVhZE92ZXJmbG93ID0gb3ZlcmZsb3dU
eXBlID09IFZpc3VhbE92ZXJmbG93ID8gdmlzdWFsT3ZlcmZsb3dSZWN0Rm9yQm94KG1fZmxvd1Ro
cmVhZCkgOiBsYXlvdXRPdmVyZmxvd1JlY3RGb3JCb3gobV9mbG93VGhyZWFkKTsKKyAgICBMYXlv
dXRSZWN0IGZsb3dUaHJlYWRPdmVyZmxvdyA9IG92ZXJmbG93VHlwZSA9PSBWaXN1YWxPdmVyZmxv
dyA/IG1fZmxvd1RocmVhZC0+dmlzdWFsT3ZlcmZsb3dSZWN0KCkgOiBtX2Zsb3dUaHJlYWQtPmxh
eW91dE92ZXJmbG93UmVjdCgpOwogCiAgICAgLy8gV2UgYXJlIGludGVyZXN0ZWQgYWJvdXQgdGhl
IG91dGxpbmUgc2l6ZSBvbmx5IHdoZW4gY29tcHV0aW5nIHRoZSB2aXN1YWwgb3ZlcmZsb3cuCiAg
ICAgTGF5b3V0VW5pdCBvdXRsaW5lU2l6ZSA9IG92ZXJmbG93VHlwZSA9PSBWaXN1YWxPdmVyZmxv
dyA/IExheW91dFVuaXQobWF4aW1hbE91dGxpbmVTaXplKFBhaW50UGhhc2VPdXRsaW5lKSkgOiBM
YXlvdXRVbml0KCk7CkBAIC0yNTAsNiArMjI5LDU0IEBAIGJvb2wgUmVuZGVyUmVnaW9uOjppc0xh
c3RSZWdpb24oKSBjb25zdAogICAgIHJldHVybiBtX2Zsb3dUaHJlYWQtPmxhc3RSZWdpb24oKSA9
PSB0aGlzOwogfQogCitzdGF0aWMgYm9vbCBzaG91bGRQYWludFJlZ2lvbkNvbnRlbnRzSW5QaGFz
ZShQYWludFBoYXNlIHBoYXNlKQoreworICAgIHJldHVybiBwaGFzZSA9PSBQYWludFBoYXNlQmxv
Y2tCYWNrZ3JvdW5kCisgICAgICAgIHx8IHBoYXNlID09IFBhaW50UGhhc2VDaGlsZEJsb2NrQmFj
a2dyb3VuZAorICAgICAgICB8fCBwaGFzZSA9PSBQYWludFBoYXNlU2VsZWN0aW9uCisgICAgICAg
IHx8IHBoYXNlID09IFBhaW50UGhhc2VUZXh0Q2xpcDsKK30KKwordm9pZCBSZW5kZXJSZWdpb246
OnBhaW50T2JqZWN0KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFp
bnRPZmZzZXQpCit7CisgICAgaWYgKHN0eWxlKCkudmlzaWJpbGl0eSgpICE9IFZJU0lCTEUpCisg
ICAgICAgIHJldHVybjsKKworICAgIFJlbmRlckJsb2NrRmxvdzo6cGFpbnRPYmplY3QocGFpbnRJ
bmZvLCBwYWludE9mZnNldCk7CisKKyAgICBpZiAoIWlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgLy8gV2UgZG8gbm90IHdhbnQgdG8gcGFpbnQgYSByZWdpb24ncyBjb250ZW50cyBt
dWx0aXBsZSB0aW1lcyAoZm9yIGVhY2ggcGFpbnQgcGhhc2Ugb2YgdGhlIHJlZ2lvbiBvYmplY3Qp
LgorICAgIC8vIFRodXMsIHdlIG9ubHkgcGFpbnQgdGhlIHJlZ2lvbidzIGNvbnRlbnRzIGluIGNl
cnRhaW4gcGhhc2VzLgorICAgIGlmICghc2hvdWxkUGFpbnRSZWdpb25Db250ZW50c0luUGhhc2Uo
cGFpbnRJbmZvLnBoYXNlKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRGVsZWdhdGUgdGhl
IHBhaW50aW5nIG9mIGEgcmVnaW9uJ3MgY29udGVudHMgdG8gUmVuZGVyRmxvd1RocmVhZC4KKyAg
ICAvLyBSZW5kZXJGbG93VGhyZWFkIGlzIGEgc2VsZiBwYWludGluZyBsYXllciBiZWNhdXNlIGl0
J3MgYSBwb3NpdGlvbmVkIG9iamVjdC4KKyAgICAvLyBSZW5kZXJGbG93VGhyZWFkIHBhaW50cyBp
dHMgY2hpbGRyZW4sIHRoZSBjb2xsZWN0ZWQgb2JqZWN0cy4KKyAgICBzZXRSZWdpb25PYmplY3Rz
UmVnaW9uU3R5bGUoKTsKKyAgICBtX2Zsb3dUaHJlYWQtPnBhaW50Rmxvd1RocmVhZFBvcnRpb25J
blJlZ2lvbihwYWludEluZm8sIHRoaXMsIGZsb3dUaHJlYWRQb3J0aW9uUmVjdCgpLCBmbG93VGhy
ZWFkUG9ydGlvbk92ZXJmbG93UmVjdCgpLCBMYXlvdXRQb2ludChwYWludE9mZnNldC54KCkgKyBi
b3JkZXJMZWZ0KCkgKyBwYWRkaW5nTGVmdCgpLCBwYWludE9mZnNldC55KCkgKyBib3JkZXJUb3Ao
KSArIHBhZGRpbmdUb3AoKSkpOworICAgIHJlc3RvcmVSZWdpb25PYmplY3RzT3JpZ2luYWxTdHls
ZSgpOworfQorCisvLyBIaXQgVGVzdGluZworYm9vbCBSZW5kZXJSZWdpb246OmhpdFRlc3RDb250
ZW50cyhjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVzdCwgSGl0VGVzdFJlc3VsdCYgcmVzdWx0
LCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5Db250YWluZXIsIGNvbnN0IExheW91
dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFjdGlvbiBhY3Rpb24pCit7CisgICAg
aWYgKCFpc1ZhbGlkKCkgfHwgYWN0aW9uICE9IEhpdFRlc3RGb3JlZ3JvdW5kKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICBMYXlvdXRSZWN0IGJvdW5kc1JlY3QgPSBib3JkZXJCb3hSZWN0
SW5SZWdpb24obG9jYXRpb25JbkNvbnRhaW5lci5yZWdpb24oKSk7CisgICAgYm91bmRzUmVjdC5t
b3ZlQnkoYWNjdW11bGF0ZWRPZmZzZXQpOworICAgIGlmICh2aXNpYmxlVG9IaXRUZXN0aW5nKCkg
JiYgbG9jYXRpb25JbkNvbnRhaW5lci5pbnRlcnNlY3RzKGJvdW5kc1JlY3QpKSB7CisgICAgICAg
IGlmIChtX2Zsb3dUaHJlYWQtPmhpdFRlc3RGbG93VGhyZWFkUG9ydGlvbkluUmVnaW9uKHRoaXMs
IGZsb3dUaHJlYWRQb3J0aW9uUmVjdCgpLCBmbG93VGhyZWFkUG9ydGlvbk92ZXJmbG93UmVjdCgp
LCByZXF1ZXN0LCByZXN1bHQsCisgICAgICAgICAgICBsb2NhdGlvbkluQ29udGFpbmVyLCBMYXlv
dXRQb2ludChhY2N1bXVsYXRlZE9mZnNldC54KCkgKyBib3JkZXJMZWZ0KCkgKyBwYWRkaW5nTGVm
dCgpLCBhY2N1bXVsYXRlZE9mZnNldC55KCkgKyBib3JkZXJUb3AoKSArIHBhZGRpbmdUb3AoKSkp
KQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOwor
fQorCiB2b2lkIFJlbmRlclJlZ2lvbjo6Y2hlY2tSZWdpb25TdHlsZSgpCiB7CiAgICAgQVNTRVJU
KG1fZmxvd1RocmVhZCk7CkBAIC0zNjEsMTQgKzM4OCw4IEBAIHZvaWQgUmVuZGVyUmVnaW9uOjps
YXlvdXRCbG9jayhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQpCiB2b2lkIFJlbmRl
clJlZ2lvbjo6Y29tcHV0ZU92ZXJmbG93RnJvbUZsb3dUaHJlYWQoKQogewogICAgIEFTU0VSVChp
c1ZhbGlkKCkpOwotICAgIAotICAgIExheW91dFJlY3QgbGF5b3V0UmVjdDsKLSAgICB7Ci0gICAg
ICAgIC8vIFdoZW4gZ2V0dGluZyB0aGUgb3ZlcmZsb3cgZnJvbSB0aGUgZmxvdyB0aHJlYWQgd2Ug
bmVlZCB0byB0ZW1wb3Jhcmx5IHJlc2V0IHRoZSBjdXJyZW50IGZsb3cgdGhyZWFkIGJlY2F1c2UK
LSAgICAgICAgLy8gd2UncmUgY2hhbmdpbmcgZmxvd3MuCi0gICAgICAgIEN1cnJlbnRSZW5kZXJG
bG93VGhyZWFkTWFpbnRhaW5lciBmbG93VGhyZWFkTWFpbnRhaW5lcihtX2Zsb3dUaHJlYWQpOwot
ICAgICAgICBsYXlvdXRSZWN0ID0gbGF5b3V0T3ZlcmZsb3dSZWN0Rm9yQm94KG1fZmxvd1RocmVh
ZCk7Ci0gICAgfQorCisgICAgTGF5b3V0UmVjdCBsYXlvdXRSZWN0ID0gbGF5b3V0T3ZlcmZsb3dS
ZWN0Rm9yQm94KG1fZmxvd1RocmVhZCk7CiAKICAgICBsYXlvdXRSZWN0LnNldExvY2F0aW9uKGNv
bnRlbnRCb3hSZWN0KCkubG9jYXRpb24oKSArIChsYXlvdXRSZWN0LmxvY2F0aW9uKCkgLSBtX2Zs
b3dUaHJlYWRQb3J0aW9uUmVjdC5sb2NhdGlvbigpKSk7CiAKQEAgLTM4MiwyNyArNDAzLDIzIEBA
IHZvaWQgUmVuZGVyUmVnaW9uOjpjb21wdXRlT3ZlcmZsb3dGcm9tRmxvd1RocmVhZCgpCiAgICAg
dXBkYXRlU2Nyb2xsSW5mb0FmdGVyTGF5b3V0KCk7CiB9CiAKLXZvaWQgUmVuZGVyUmVnaW9uOjpy
ZXBhaW50Rmxvd1RocmVhZENvbnRlbnQoY29uc3QgTGF5b3V0UmVjdCYgcmVwYWludFJlY3QsIGJv
b2wgaW1tZWRpYXRlKQordm9pZCBSZW5kZXJSZWdpb246OnJlcGFpbnRGbG93VGhyZWFkQ29udGVu
dChjb25zdCBMYXlvdXRSZWN0JiByZXBhaW50UmVjdCwgYm9vbCBpbW1lZGlhdGUpIGNvbnN0CiB7
Ci0gICAgcmVwYWludEZsb3dUaHJlYWRDb250ZW50UmVjdGFuZ2xlKHJlcGFpbnRSZWN0LCBpbW1l
ZGlhdGUsIGZsb3dUaHJlYWRQb3J0aW9uUmVjdCgpLCBjb250ZW50Qm94UmVjdCgpLmxvY2F0aW9u
KCkpOworICAgIHJlcGFpbnRGbG93VGhyZWFkQ29udGVudFJlY3RhbmdsZShyZXBhaW50UmVjdCwg
aW1tZWRpYXRlLCBmbG93VGhyZWFkUG9ydGlvblJlY3QoKSwgZmxvd1RocmVhZFBvcnRpb25PdmVy
Zmxvd1JlY3QoKSwgY29udGVudEJveFJlY3QoKS5sb2NhdGlvbigpKTsKIH0KIAotdm9pZCBSZW5k
ZXJSZWdpb246OnJlcGFpbnRGbG93VGhyZWFkQ29udGVudFJlY3RhbmdsZShjb25zdCBMYXlvdXRS
ZWN0JiByZXBhaW50UmVjdCwgYm9vbCBpbW1lZGlhdGUsIGNvbnN0IExheW91dFJlY3QmIGZsb3dU
aHJlYWRQb3J0aW9uUmVjdCwgY29uc3QgTGF5b3V0UG9pbnQmIHJlZ2lvbkxvY2F0aW9uLCBjb25z
dCBMYXlvdXRSZWN0KiBmbG93VGhyZWFkUG9ydGlvbkNsaXBSZWN0KQordm9pZCBSZW5kZXJSZWdp
b246OnJlcGFpbnRGbG93VGhyZWFkQ29udGVudFJlY3RhbmdsZShjb25zdCBMYXlvdXRSZWN0JiBy
ZXBhaW50UmVjdCwgYm9vbCBpbW1lZGlhdGUsIGNvbnN0IExheW91dFJlY3QmIGZsb3dUaHJlYWRQ
b3J0aW9uUmVjdCwgY29uc3QgTGF5b3V0UmVjdCYgZmxvd1RocmVhZFBvcnRpb25PdmVyZmxvd1Jl
Y3QsIGNvbnN0IExheW91dFBvaW50JiByZWdpb25Mb2NhdGlvbikgY29uc3QKIHsKICAgICBBU1NF
UlQoaXNWYWxpZCgpKTsKIAogICAgIC8vIFdlIG9ubHkgaGF2ZSB0byBpc3N1ZSBhIHJlcGFpbnQg
aW4gdGhpcyByZWdpb24gaWYgdGhlIHJlZ2lvbiByZWN0IGludGVyc2VjdHMgdGhlIHJlcGFpbnQg
cmVjdC4KICAgICBMYXlvdXRSZWN0IGZsaXBwZWRGbG93VGhyZWFkUG9ydGlvblJlY3QoZmxvd1Ro
cmVhZFBvcnRpb25SZWN0KTsKKyAgICBMYXlvdXRSZWN0IGZsaXBwZWRGbG93VGhyZWFkUG9ydGlv
bk92ZXJmbG93UmVjdChmbG93VGhyZWFkUG9ydGlvbk92ZXJmbG93UmVjdCk7CiAgICAgZmxvd1Ro
cmVhZCgpLT5mbGlwRm9yV3JpdGluZ01vZGUoZmxpcHBlZEZsb3dUaHJlYWRQb3J0aW9uUmVjdCk7
IC8vIFB1dCB0aGUgcmVnaW9uIHJlY3RzIGludG8gcGh5c2ljYWwgY29vcmRpbmF0ZXMuCisgICAg
Zmxvd1RocmVhZCgpLT5mbGlwRm9yV3JpdGluZ01vZGUoZmxpcHBlZEZsb3dUaHJlYWRQb3J0aW9u
T3ZlcmZsb3dSZWN0KTsKIAogICAgIExheW91dFJlY3QgY2xpcHBlZFJlY3QocmVwYWludFJlY3Qp
OwotCi0gICAgaWYgKGZsb3dUaHJlYWRQb3J0aW9uQ2xpcFJlY3QpIHsKLSAgICAgICAgTGF5b3V0
UmVjdCBmbGlwcGVkRmxvd1RocmVhZFBvcnRpb25DbGlwUmVjdCgqZmxvd1RocmVhZFBvcnRpb25D
bGlwUmVjdCk7Ci0gICAgICAgIGZsb3dUaHJlYWQoKS0+ZmxpcEZvcldyaXRpbmdNb2RlKGZsaXBw
ZWRGbG93VGhyZWFkUG9ydGlvbkNsaXBSZWN0KTsKLSAgICAgICAgY2xpcHBlZFJlY3QuaW50ZXJz
ZWN0KGZsaXBwZWRGbG93VGhyZWFkUG9ydGlvbkNsaXBSZWN0KTsKLSAgICB9Ci0KKyAgICBjbGlw
cGVkUmVjdC5pbnRlcnNlY3QoZmxpcHBlZEZsb3dUaHJlYWRQb3J0aW9uT3ZlcmZsb3dSZWN0KTsK
ICAgICBpZiAoY2xpcHBlZFJlY3QuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKQEAgLTU5
NCw5ICs2MTEsOSBAQCB2b2lkIFJlbmRlclJlZ2lvbjo6cmVzdG9yZVJlZ2lvbk9iamVjdHNPcmln
aW5hbFN0eWxlKCkKIAogdm9pZCBSZW5kZXJSZWdpb246Omluc2VydGVkSW50b1RyZWUoKQogewor
ICAgIFJlbmRlckJsb2NrRmxvdzo6aW5zZXJ0ZWRJbnRvVHJlZSgpOworCiAgICAgYXR0YWNoUmVn
aW9uKCk7Ci0gICAgaWYgKGlzVmFsaWQoKSkKLSAgICAgICAgUmVuZGVyQmxvY2tGbG93OjppbnNl
cnRlZEludG9UcmVlKCk7CiB9CiAKIHZvaWQgUmVuZGVyUmVnaW9uOjp3aWxsQmVSZW1vdmVkRnJv
bVRyZWUoKQpAQCAtNzcwLDM5ICs3ODcsMjUgQEAgdm9pZCBSZW5kZXJSZWdpb246OmFkanVzdFJl
Z2lvbkJvdW5kc0Zyb21GbG93VGhyZWFkUG9ydGlvblJlY3QoY29uc3QgSW50UG9pbnQmIGwKICAg
ICBVTlVTRURfUEFSQU0obGF5ZXJPZmZzZXQpOwogfQogCi12b2lkIFJlbmRlclJlZ2lvbjo6ZW5z
dXJlT3ZlcmZsb3dGb3JCb3goY29uc3QgUmVuZGVyQm94KiBib3gsIFJlZlB0cjxSZW5kZXJPdmVy
Zmxvdz4mIG92ZXJmbG93LCBib29sIGZvcmNlQ3JlYXRpb24pCisKK1JlbmRlck92ZXJmbG93KiBS
ZW5kZXJSZWdpb246OmVuc3VyZU92ZXJmbG93Rm9yQm94KGNvbnN0IFJlbmRlckJveCogYm94KQog
ewotICAgIFJlbmRlckZsb3dUaHJlYWQqIGZsb3dUaHJlYWQgPSB0aGlzLT5mbG93VGhyZWFkKCk7
Ci0gICAgQVNTRVJUKGZsb3dUaHJlYWQpOwotICAgIAogICAgIFJlbmRlckJveFJlZ2lvbkluZm8q
IGJveEluZm8gPSByZW5kZXJCb3hSZWdpb25JbmZvKGJveCk7Ci0gICAgaWYgKCFib3hJbmZvICYm
ICFmb3JjZUNyZWF0aW9uKQotICAgICAgICByZXR1cm47CisgICAgaWYgKCFib3hJbmZvKQorICAg
ICAgICByZXR1cm4gMDsKKworICAgIGlmIChib3hJbmZvLT5vdmVyZmxvdygpKQorICAgICAgICBy
ZXR1cm4gYm94SW5mby0+b3ZlcmZsb3coKTsKIAotICAgIGlmIChib3hJbmZvICYmIGJveEluZm8t
Pm92ZXJmbG93KCkpIHsKLSAgICAgICAgb3ZlcmZsb3cgPSBib3hJbmZvLT5vdmVyZmxvdygpOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIAogICAgIExheW91dFJlY3QgYm9yZGVyQm94ID0g
Ym94LT5ib3JkZXJCb3hSZWN0SW5SZWdpb24odGhpcyk7Ci0gICAgTGF5b3V0UmVjdCBjbGllbnRC
b3g7Ci0gICAgQVNTRVJUKGZsb3dUaHJlYWQtPm9iamVjdFNob3VsZFBhaW50SW5GbG93UmVnaW9u
KGJveCwgdGhpcykpOwotCi0gICAgaWYgKCFib3JkZXJCb3guaXNFbXB0eSgpKSB7Ci0gICAgICAg
IGJvcmRlckJveCA9IHJlY3RGbG93UG9ydGlvbkZvckJveChib3gsIGJvcmRlckJveCk7Ci0gICAg
ICAgIAotICAgICAgICBjbGllbnRCb3ggPSBib3gtPmNsaWVudEJveFJlY3RJblJlZ2lvbih0aGlz
KTsKLSAgICAgICAgY2xpZW50Qm94ID0gcmVjdEZsb3dQb3J0aW9uRm9yQm94KGJveCwgY2xpZW50
Qm94KTsKLSAgICAgICAgCi0gICAgICAgIGZsb3dUaHJlYWQtPmZsaXBGb3JXcml0aW5nTW9kZUxv
Y2FsQ29vcmRpbmF0ZXMoYm9yZGVyQm94KTsKLSAgICAgICAgZmxvd1RocmVhZC0+ZmxpcEZvcldy
aXRpbmdNb2RlTG9jYWxDb29yZGluYXRlcyhjbGllbnRCb3gpOwotICAgIH0KKyAgICBib3JkZXJC
b3ggPSByZWN0Rmxvd1BvcnRpb25Gb3JCb3goYm94LCBib3JkZXJCb3gpOworCisgICAgTGF5b3V0
UmVjdCBjbGllbnRCb3ggPSBib3gtPmNsaWVudEJveFJlY3RJblJlZ2lvbih0aGlzKTsKKyAgICBj
bGllbnRCb3ggPSByZWN0Rmxvd1BvcnRpb25Gb3JCb3goYm94LCBjbGllbnRCb3gpOwogCi0gICAg
aWYgKGJveEluZm8pIHsKLSAgICAgICAgYm94SW5mby0+Y3JlYXRlT3ZlcmZsb3coY2xpZW50Qm94
LCBib3JkZXJCb3gpOwotICAgICAgICBvdmVyZmxvdyA9IGJveEluZm8tPm92ZXJmbG93KCk7Ci0g
ICAgfSBlbHNlCi0gICAgICAgIG92ZXJmbG93ID0gYWRvcHRSZWYobmV3IFJlbmRlck92ZXJmbG93
KGNsaWVudEJveCwgYm9yZGVyQm94KSk7CisgICAgYm94SW5mby0+Y3JlYXRlT3ZlcmZsb3coY2xp
ZW50Qm94LCBib3JkZXJCb3gpOworCisgICAgcmV0dXJuIGJveEluZm8tPm92ZXJmbG93KCk7CiB9
CiAKIExheW91dFJlY3QgUmVuZGVyUmVnaW9uOjpyZWN0Rmxvd1BvcnRpb25Gb3JCb3goY29uc3Qg
UmVuZGVyQm94KiBib3gsIGNvbnN0IExheW91dFJlY3QmIHJlY3QpIGNvbnN0CkBAIC04MTEsMjAg
KzgxNCwxMiBAQCBMYXlvdXRSZWN0IFJlbmRlclJlZ2lvbjo6cmVjdEZsb3dQb3J0aW9uRm9yQm94
KGNvbnN0IFJlbmRlckJveCogYm94LCBjb25zdCBMYXlvdQogICAgIFJlbmRlclJlZ2lvbiogZW5k
UmVnaW9uID0gMDsKICAgICBtX2Zsb3dUaHJlYWQtPmdldFJlZ2lvblJhbmdlRm9yQm94KGJveCwg
c3RhcnRSZWdpb24sIGVuZFJlZ2lvbik7CiAKKyAgICAvLyBGSVhNRTogSXMgdGhpcyB3cml0aW5n
IG1vZGUgZnJpZW5kbHk/CiAgICAgTGF5b3V0UmVjdCBtYXBwZWRSZWN0ID0gbV9mbG93VGhyZWFk
LT5tYXBGcm9tTG9jYWxUb0Zsb3dUaHJlYWQoYm94LCByZWN0KTsKLSAgICBpZiAoZmxvd1RocmVh
ZCgpLT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpKSB7Ci0gICAgICAgIGlmICh0aGlzICE9IHN0
YXJ0UmVnaW9uKQotICAgICAgICAgICAgbWFwcGVkUmVjdC5zaGlmdFlFZGdlVG8oc3RkOjptYXg8
TGF5b3V0VW5pdD4obG9naWNhbFRvcEZvckZsb3dUaHJlYWRDb250ZW50KCksIG1hcHBlZFJlY3Qu
eSgpKSk7Ci0KLSAgICAgICAgaWYgKHRoaXMgIT0gZW5kUmVnaW9uKQotICAgICAgICAgICAgbWFw
cGVkUmVjdC5zZXRIZWlnaHQoc3RkOjptYXg8TGF5b3V0VW5pdD4oMCwgc3RkOjptaW48TGF5b3V0
VW5pdD4obG9naWNhbEJvdHRvbUZvckZsb3dUaHJlYWRDb250ZW50KCkgLSBtYXBwZWRSZWN0Lnko
KSwgbWFwcGVkUmVjdC5oZWlnaHQoKSkpKTsKLSAgICB9IGVsc2UgewotICAgICAgICBpZiAodGhp
cyAhPSBzdGFydFJlZ2lvbikKLSAgICAgICAgICAgIG1hcHBlZFJlY3Quc2hpZnRYRWRnZVRvKHN0
ZDo6bWF4PExheW91dFVuaXQ+KGxvZ2ljYWxUb3BGb3JGbG93VGhyZWFkQ29udGVudCgpLCBtYXBw
ZWRSZWN0LngoKSkpOwotICAgICAgICAgICAgCi0gICAgICAgIGlmICh0aGlzICE9IGVuZFJlZ2lv
bikKLSAgICAgICAgICAgIG1hcHBlZFJlY3Quc2V0V2lkdGgoc3RkOjptYXg8TGF5b3V0VW5pdD4o
MCwgc3RkOjptaW48TGF5b3V0VW5pdD4obG9naWNhbEJvdHRvbUZvckZsb3dUaHJlYWRDb250ZW50
KCkgLSBtYXBwZWRSZWN0LngoKSwgbWFwcGVkUmVjdC53aWR0aCgpKSkpOwotICAgIH0KKyAgICBp
ZiAodGhpcyAhPSBzdGFydFJlZ2lvbikKKyAgICAgICAgbWFwcGVkUmVjdC5zaGlmdFlFZGdlVG8o
c3RkOjptYXg8TGF5b3V0VW5pdD4obG9naWNhbFRvcEZvckZsb3dUaHJlYWRDb250ZW50KCksIG1h
cHBlZFJlY3QueSgpKSk7CisgICAgaWYgKHRoaXMgIT0gZW5kUmVnaW9uKQorICAgICAgICBtYXBw
ZWRSZWN0LnNldEhlaWdodChzdGQ6Om1heDxMYXlvdXRVbml0PigwLCBzdGQ6Om1pbjxMYXlvdXRV
bml0Pihsb2dpY2FsQm90dG9tRm9yRmxvd1RocmVhZENvbnRlbnQoKSAtIG1hcHBlZFJlY3QueSgp
LCBtYXBwZWRSZWN0LmhlaWdodCgpKSkpOwogCiAgICAgYm9vbCBjbGlwWCA9IHN0eWxlKCkub3Zl
cmZsb3dYKCkgIT0gT1ZJU0lCTEU7CiAgICAgYm9vbCBjbGlwWSA9IHN0eWxlKCkub3ZlcmZsb3dZ
KCkgIT0gT1ZJU0lCTEU7CkBAIC04MzIsMTYgKzgyNywxMiBAQCBMYXlvdXRSZWN0IFJlbmRlclJl
Z2lvbjo6cmVjdEZsb3dQb3J0aW9uRm9yQm94KGNvbnN0IFJlbmRlckJveCogYm94LCBjb25zdCBM
YXlvdQogICAgIGlmICgoY2xpcFggJiYgY2xpcFkpIHx8IGlzTGFzdFJlZ2lvbldpdGhSZWdpb25G
cmFnbWVudEJyZWFrKQogICAgICAgICBtYXBwZWRSZWN0LmludGVyc2VjdChmbG93VGhyZWFkUG9y
dGlvblJlY3QoKSk7CiAKLSAgICByZXR1cm4gbWFwcGVkUmVjdC5pc0VtcHR5KCkgPyBtYXBwZWRS
ZWN0IDogbV9mbG93VGhyZWFkLT5tYXBGcm9tRmxvd1RocmVhZFRvTG9jYWwoYm94LCBtYXBwZWRS
ZWN0KTsKKyAgICByZXR1cm4gbV9mbG93VGhyZWFkLT5tYXBGcm9tRmxvd1RocmVhZFRvTG9jYWwo
Ym94LCBtYXBwZWRSZWN0KTsKIH0KIAogdm9pZCBSZW5kZXJSZWdpb246OmFkZExheW91dE92ZXJm
bG93Rm9yQm94KGNvbnN0IFJlbmRlckJveCogYm94LCBjb25zdCBMYXlvdXRSZWN0JiByZWN0KQog
ewotICAgIGlmIChyZWN0LmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgUmVmUHRy
PFJlbmRlck92ZXJmbG93PiByZWdpb25PdmVyZmxvdzsKLSAgICBlbnN1cmVPdmVyZmxvd0ZvckJv
eChib3gsIHJlZ2lvbk92ZXJmbG93LCBmYWxzZSk7CisgICAgUmVuZGVyT3ZlcmZsb3cqIHJlZ2lv
bk92ZXJmbG93ID0gZW5zdXJlT3ZlcmZsb3dGb3JCb3goYm94KTsKIAogICAgIGlmICghcmVnaW9u
T3ZlcmZsb3cpCiAgICAgICAgIHJldHVybjsKQEAgLTg1MSwzNSArODQyLDI5IEBAIHZvaWQgUmVu
ZGVyUmVnaW9uOjphZGRMYXlvdXRPdmVyZmxvd0ZvckJveChjb25zdCBSZW5kZXJCb3gqIGJveCwg
Y29uc3QgTGF5b3V0UmVjCiAKIHZvaWQgUmVuZGVyUmVnaW9uOjphZGRWaXN1YWxPdmVyZmxvd0Zv
ckJveChjb25zdCBSZW5kZXJCb3gqIGJveCwgY29uc3QgTGF5b3V0UmVjdCYgcmVjdCkKIHsKLSAg
ICBpZiAocmVjdC5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIFJlZlB0cjxSZW5k
ZXJPdmVyZmxvdz4gcmVnaW9uT3ZlcmZsb3c7Ci0gICAgZW5zdXJlT3ZlcmZsb3dGb3JCb3goYm94
LCByZWdpb25PdmVyZmxvdywgZmFsc2UpOworICAgIFJlbmRlck92ZXJmbG93KiByZWdpb25PdmVy
ZmxvdyA9IGVuc3VyZU92ZXJmbG93Rm9yQm94KGJveCk7CiAKICAgICBpZiAoIXJlZ2lvbk92ZXJm
bG93KQogICAgICAgICByZXR1cm47CiAKLSAgICBMYXlvdXRSZWN0IGZsaXBwZWRSZWN0ID0gcmVj
dDsKLSAgICBmbG93VGhyZWFkKCktPmZsaXBGb3JXcml0aW5nTW9kZUxvY2FsQ29vcmRpbmF0ZXMo
ZmxpcHBlZFJlY3QpOwotICAgIHJlZ2lvbk92ZXJmbG93LT5hZGRWaXN1YWxPdmVyZmxvdyhmbGlw
cGVkUmVjdCk7CisgICAgcmVnaW9uT3ZlcmZsb3ctPmFkZFZpc3VhbE92ZXJmbG93KHJlY3QpOwog
fQogCiBMYXlvdXRSZWN0IFJlbmRlclJlZ2lvbjo6bGF5b3V0T3ZlcmZsb3dSZWN0Rm9yQm94KGNv
bnN0IFJlbmRlckJveCogYm94KQogewotICAgIFJlZlB0cjxSZW5kZXJPdmVyZmxvdz4gb3ZlcmZs
b3c7Ci0gICAgZW5zdXJlT3ZlcmZsb3dGb3JCb3goYm94LCBvdmVyZmxvdywgdHJ1ZSk7Ci0gICAg
Ci0gICAgQVNTRVJUKG92ZXJmbG93KTsKKyAgICBSZW5kZXJPdmVyZmxvdyogb3ZlcmZsb3cgPSBl
bnN1cmVPdmVyZmxvd0ZvckJveChib3gpOworICAgIGlmICghb3ZlcmZsb3cpCisgICAgICAgIHJl
dHVybiBib3gtPmxheW91dE92ZXJmbG93UmVjdCgpOworCiAgICAgcmV0dXJuIG92ZXJmbG93LT5s
YXlvdXRPdmVyZmxvd1JlY3QoKTsKIH0KIAogTGF5b3V0UmVjdCBSZW5kZXJSZWdpb246OnZpc3Vh
bE92ZXJmbG93UmVjdEZvckJveChjb25zdCBSZW5kZXJCb3gqIGJveCkKIHsKLSAgICBSZWZQdHI8
UmVuZGVyT3ZlcmZsb3c+IG92ZXJmbG93OwotICAgIGVuc3VyZU92ZXJmbG93Rm9yQm94KGJveCwg
b3ZlcmZsb3csIHRydWUpOwotICAgIAotICAgIEFTU0VSVChvdmVyZmxvdyk7CisgICAgUmVuZGVy
T3ZlcmZsb3cqIG92ZXJmbG93ID0gZW5zdXJlT3ZlcmZsb3dGb3JCb3goYm94KTsKKyAgICBpZiAo
IW92ZXJmbG93KQorICAgICAgICByZXR1cm4gYm94LT52aXN1YWxPdmVyZmxvd1JlY3QoKTsKKwog
ICAgIHJldHVybiBvdmVyZmxvdy0+dmlzdWFsT3ZlcmZsb3dSZWN0KCk7CiB9CiAKQEAgLTkwNCwx
MSArODg5LDEwIEBAIExheW91dFJlY3QgUmVuZGVyUmVnaW9uOjpsYXlvdXRPdmVyZmxvd1JlY3RG
b3JCb3hGb3JQcm9wYWdhdGlvbihjb25zdCBSZW5kZXJCb3gqCiAgICAgcmV0dXJuIHJlY3Q7CiB9
CiAKKy8vIEZJWE1FOiBUaGlzIGRvZXNuJ3Qgd29yayBmb3Igd3JpdGluZyBtb2Rlcy4KIExheW91
dFJlY3QgUmVuZGVyUmVnaW9uOjp2aXN1YWxPdmVyZmxvd1JlY3RGb3JCb3hGb3JQcm9wYWdhdGlv
bihjb25zdCBSZW5kZXJCb3gqIGJveCkKIHsKICAgICBMYXlvdXRSZWN0IHJlY3QgPSB2aXN1YWxP
dmVyZmxvd1JlY3RGb3JCb3goYm94KTsKLSAgICBmbG93VGhyZWFkKCktPmZsaXBGb3JXcml0aW5n
TW9kZUxvY2FsQ29vcmRpbmF0ZXMocmVjdCk7Ci0KICAgICByZXR1cm4gcmVjdDsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oCmluZGV4IGIzYjFmM2RjMzA3ZThiYjVm
YWMyYWU1M2Q0MzZjZWZiNjcwNmU5NjguLjE3Njg2NDYzYmIxMGYwZWM1NjA3NjM4MmE4YWY5MWYy
MDk0MjYxMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdp
b24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmgKQEAgLTQ5
LDE1ICs0OSwxMyBAQCBjbGFzcyBSZW5kZXJSZWdpb24gOiBwdWJsaWMgUmVuZGVyQmxvY2tGbG93
IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJSZWdpb24oKSBjb25zdCBPVkVS
UklERSBGSU5BTCB7IHJldHVybiB0cnVlOyB9CiAKKyAgICB2aXJ0dWFsIGJvb2wgaGl0VGVzdENv
bnRlbnRzKGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRl
c3RMb2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3Vt
dWxhdGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9uKSBPVkVSUklERTsKKwogICAgIHZpcnR1YWwgdm9p
ZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRT
dHlsZSk7CiAKICAgICB2b2lkIHNldEZsb3dUaHJlYWRQb3J0aW9uUmVjdChjb25zdCBMYXlvdXRS
ZWN0JiByZWN0KSB7IG1fZmxvd1RocmVhZFBvcnRpb25SZWN0ID0gcmVjdDsgfQogICAgIExheW91
dFJlY3QgZmxvd1RocmVhZFBvcnRpb25SZWN0KCkgY29uc3QgeyByZXR1cm4gbV9mbG93VGhyZWFk
UG9ydGlvblJlY3Q7IH0KLSAgICBMYXlvdXRSZWN0IGZsb3dUaHJlYWRQb3J0aW9uT3ZlcmZsb3dS
ZWN0KCk7Ci0KLSAgICBMYXlvdXRQb2ludCBmbG93VGhyZWFkUG9ydGlvbkxvY2F0aW9uKCkgY29u
c3Q7Ci0gICAgCi0gICAgUmVuZGVyTGF5ZXIqIHJlZ2lvbkNvbnRhaW5lckxheWVyKCkgY29uc3Q7
CisgICAgTGF5b3V0UmVjdCBmbG93VGhyZWFkUG9ydGlvbk92ZXJmbG93UmVjdCgpIGNvbnN0Owog
CiAgICAgdm9pZCBhdHRhY2hSZWdpb24oKTsKICAgICB2b2lkIGRldGFjaFJlZ2lvbigpOwpAQCAt
MTM3LDcgKzEzNSw3IEBAIHB1YmxpYzoKICAgICAvLyBXaGV0aGVyIG9yIG5vdCB0aGlzIHJlZ2lv
biBpcyBhIHNldC4KICAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJSZWdpb25TZXQoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogICAgIAotICAgIHZpcnR1YWwgdm9pZCByZXBhaW50Rmxvd1RocmVh
ZENvbnRlbnQoY29uc3QgTGF5b3V0UmVjdCYgcmVwYWludFJlY3QsIGJvb2wgaW1tZWRpYXRlKTsK
KyAgICB2aXJ0dWFsIHZvaWQgcmVwYWludEZsb3dUaHJlYWRDb250ZW50KGNvbnN0IExheW91dFJl
Y3QmIHJlcGFpbnRSZWN0LCBib29sIGltbWVkaWF0ZSkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIHZv
aWQgY29sbGVjdExheWVyRnJhZ21lbnRzKExheWVyRnJhZ21lbnRzJiwgY29uc3QgTGF5b3V0UmVj
dCYsIGNvbnN0IExheW91dFJlY3QmKSB7IH0KIApAQCAtMTUxLDkgKzE0OSw2IEBAIHB1YmxpYzoK
ICAgICBMYXlvdXRSZWN0IHZpc3VhbE92ZXJmbG93UmVjdEZvckJveEZvclByb3BhZ2F0aW9uKGNv
bnN0IFJlbmRlckJveCopOwogCiAgICAgTGF5b3V0UmVjdCByZWN0Rmxvd1BvcnRpb25Gb3JCb3go
Y29uc3QgUmVuZGVyQm94KiwgY29uc3QgTGF5b3V0UmVjdCYpIGNvbnN0OwotICAgIAotICAgIHZv
aWQgc2V0UmVnaW9uT2JqZWN0c1JlZ2lvblN0eWxlKCk7Ci0gICAgdm9pZCByZXN0b3JlUmVnaW9u
T2JqZWN0c09yaWdpbmFsU3R5bGUoKTsKIAogICAgIHZpcnR1YWwgYm9vbCBjYW5IYXZlQ2hpbGRy
ZW4oKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBj
YW5IYXZlR2VuZXJhdGVkQ2hpbGRyZW4oKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9
CkBAIC0xNjMsNyArMTU4LDEwIEBAIHByb3RlY3RlZDoKICAgICBSZW5kZXJSZWdpb24oRWxlbWVu
dCYsIFBhc3NSZWY8UmVuZGVyU3R5bGU+LCBSZW5kZXJGbG93VGhyZWFkKik7CiAgICAgUmVuZGVy
UmVnaW9uKERvY3VtZW50JiwgUGFzc1JlZjxSZW5kZXJTdHlsZT4sIFJlbmRlckZsb3dUaHJlYWQq
KTsKIAotICAgIHZvaWQgZW5zdXJlT3ZlcmZsb3dGb3JCb3goY29uc3QgUmVuZGVyQm94KiwgUmVm
UHRyPFJlbmRlck92ZXJmbG93PiYsIGJvb2wpOworICAgIFJlbmRlck92ZXJmbG93KiBlbnN1cmVP
dmVyZmxvd0ZvckJveChjb25zdCBSZW5kZXJCb3gqKTsKKworICAgIHZvaWQgc2V0UmVnaW9uT2Jq
ZWN0c1JlZ2lvblN0eWxlKCk7CisgICAgdm9pZCByZXN0b3JlUmVnaW9uT2JqZWN0c09yaWdpbmFs
U3R5bGUoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRo
cygpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlSW50cmluc2ljTG9naWNhbFdp
ZHRocyhMYXlvdXRVbml0JiBtaW5Mb2dpY2FsV2lkdGgsIExheW91dFVuaXQmIG1heExvZ2ljYWxX
aWR0aCkgY29uc3QgT1ZFUlJJREU7CkBAIC0xNzIsOSArMTcwLDExIEBAIHByb3RlY3RlZDoKICAg
ICAgICAgTGF5b3V0T3ZlcmZsb3cgPSAwLAogICAgICAgICBWaXN1YWxPdmVyZmxvdwogICAgIH07
CisgICAgTGF5b3V0UmVjdCBvdmVyZmxvd1JlY3RGb3JGbG93VGhyZWFkUG9ydGlvbihjb25zdCBM
YXlvdXRSZWN0JiBmbG93VGhyZWFkUG9ydGlvblJlY3QsIGJvb2wgaXNGaXJzdFBvcnRpb24sIGJv
b2wgaXNMYXN0UG9ydGlvbiwgT3ZlcmZsb3dUeXBlKSBjb25zdDsKKworICAgIHZvaWQgcmVwYWlu
dEZsb3dUaHJlYWRDb250ZW50UmVjdGFuZ2xlKGNvbnN0IExheW91dFJlY3QmIHJlcGFpbnRSZWN0
LCBib29sIGltbWVkaWF0ZSwgY29uc3QgTGF5b3V0UmVjdCYgZmxvd1RocmVhZFBvcnRpb25SZWN0
LAorICAgICAgICBjb25zdCBMYXlvdXRSZWN0JiBmbG93VGhyZWFkUG9ydGlvbk92ZXJmbG93UmVj
dCwgY29uc3QgTGF5b3V0UG9pbnQmIHJlZ2lvbkxvY2F0aW9uKSBjb25zdDsKIAotICAgIExheW91
dFJlY3Qgb3ZlcmZsb3dSZWN0Rm9yRmxvd1RocmVhZFBvcnRpb24oY29uc3QgTGF5b3V0UmVjdCYg
Zmxvd1RocmVhZFBvcnRpb25SZWN0LCBib29sIGlzRmlyc3RQb3J0aW9uLCBib29sIGlzTGFzdFBv
cnRpb24sIE92ZXJmbG93VHlwZSk7Ci0gICAgdm9pZCByZXBhaW50Rmxvd1RocmVhZENvbnRlbnRS
ZWN0YW5nbGUoY29uc3QgTGF5b3V0UmVjdCYgcmVwYWludFJlY3QsIGJvb2wgaW1tZWRpYXRlLCBj
b25zdCBMYXlvdXRSZWN0JiBmbG93VGhyZWFkUG9ydGlvblJlY3QsIGNvbnN0IExheW91dFBvaW50
JiByZWdpb25Mb2NhdGlvbiwgY29uc3QgTGF5b3V0UmVjdCogZmxvd1RocmVhZFBvcnRpb25DbGlw
UmVjdCA9IDApOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRIYXZlQXV0b0xvZ2ljYWxIZWlnaHQo
KSBjb25zdDsKIAogICAgIHZvaWQgY29tcHV0ZU92ZXJmbG93RnJvbUZsb3dUaHJlYWQoKTsKQEAg
LTE4Niw2ICsxODYsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVSZW1vdmVk
RnJvbVRyZWUoKSBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgdm9pZCBsYXlvdXRCbG9jayhib29s
IHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQgcGFnZUxvZ2ljYWxIZWlnaHQgPSAwKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnRPYmplY3QoUGFpbnRJbmZvJiwgY29uc3QgTGF5
b3V0UG9pbnQmKSBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgdm9pZCBpbnN0YWxsRmxvd1RocmVh
ZCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFj
ZWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcAppbmRl
eCBkODFiNmNiZjI4NTRkYmU0NzIxODhhNzQzMmE4NjUwZDYxYzE3YmZlLi4yMWE4MzcyYzA4YTI2
ZWI1NDFkYWVmMTdhNmM0MTRkYTUyZjRlYjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJSZXBsYWNlZC5jcHAKQEAgLTMwLDkgKzMwLDcgQEAKICNpbmNsdWRlICJMYXlvdXRS
ZXBhaW50ZXIuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIK
LSNpbmNsdWRlICJSZW5kZXJGbG93VGhyZWFkLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIK
LSNpbmNsdWRlICJSZW5kZXJSZWdpb24uaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2lu
Y2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJWaXNpYmxlUG9zaXRpb24uaCIKQEAgLTE5
MCwxMCArMTg4LDYgQEAgYm9vbCBSZW5kZXJSZXBsYWNlZDo6c2hvdWxkUGFpbnQoUGFpbnRJbmZv
JiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE8KICAgICAvLyBpZiB3ZSdyZSBp
bnZpc2libGUgb3IgaGF2ZW4ndCByZWNlaXZlZCBhIGxheW91dCB5ZXQsIHRoZW4ganVzdCBiYWls
LgogICAgIGlmIChzdHlsZSgpLnZpc2liaWxpdHkoKSAhPSBWSVNJQkxFKQogICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgCi0gICAgLy8gQ2hlY2sgb3VyIHJlZ2lvbiByYW5nZSB0byBtYWtlIHN1
cmUgd2UgbmVlZCB0byBiZSBwYWludGluZyBpbiB0aGlzIHJlZ2lvbi4KLSAgICBpZiAocGFpbnRJ
bmZvLnJlbmRlclJlZ2lvbiAmJiAhcGFpbnRJbmZvLnJlbmRlclJlZ2lvbi0+Zmxvd1RocmVhZCgp
LT5vYmplY3RTaG91bGRQYWludEluRmxvd1JlZ2lvbih0aGlzLCBwYWludEluZm8ucmVuZGVyUmVn
aW9uKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgTGF5b3V0UG9pbnQgYWRqdXN0ZWRQ
YWludE9mZnNldCA9IHBhaW50T2Zmc2V0ICsgbG9jYXRpb24oKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guY3BwCmluZGV4IDE4ZDczODkxZDkyZDBlNWE2NmFkYzJl
MGRlMTgxZDE2OWY2MWU4ZjguLmE2MzFkOGYwOTBlMmYwMjliYzkwYjMwOGYxN2RhZTdjOWI1NDY3
N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGluZUJveC5jcHAKQEAgLTE5
MywxMCArMTkzLDYgQEAgdm9pZCBSb290SW5saW5lQm94OjpwYWludEN1c3RvbUhpZ2hsaWdodChQ
YWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQKIAogdm9pZCBSb290SW5saW5l
Qm94OjpwYWludChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50
T2Zmc2V0LCBMYXlvdXRVbml0IGxpbmVUb3AsIExheW91dFVuaXQgbGluZUJvdHRvbSkKIHsKLSAg
ICAvLyBDaGVjayBpZiB3ZSBhcmUgaW4gdGhlIGNvcnJlY3QgcmVnaW9uLgotICAgIGlmIChwYWlu
dEluZm8ucmVuZGVyUmVnaW9uICYmIGNvbnRhaW5pbmdSZWdpb24oKSAmJiBjb250YWluaW5nUmVn
aW9uKCkgIT0gcGFpbnRJbmZvLnJlbmRlclJlZ2lvbikKLSAgICAgICAgcmV0dXJuOwotICAgIAog
ICAgIElubGluZUZsb3dCb3g6OnBhaW50KHBhaW50SW5mbywgcGFpbnRPZmZzZXQsIGxpbmVUb3As
IGxpbmVCb3R0b20pOwogICAgIHBhaW50RWxsaXBzaXNCb3gocGFpbnRJbmZvLCBwYWludE9mZnNl
dCwgbGluZVRvcCwgbGluZUJvdHRvbSk7CiAjaWYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGMwMTNj
N2NhN2JjYzhlYWU2NWFiZTFmYjY2Njk3ZjY0M2UwMjZiNTkuLjI1NDg0ZDQ5N2MwYTEwM2QzZWEz
YjRkOTUwYmQ4YzljNTk5NDkxYTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OSBAQAorMjAxMy0xMS0xNSAg
Q29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5yZXZp
ZXdlZCwgcm9sbGluZyBvdXQgcjE1OTMzNy4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9y
Zy9jaGFuZ2VzZXQvMTU5MzM3CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMjQ0MjMKKworICAgICAgICBicm9rZSBhIGJ1bmNoIG9mIGZhc3QvcmVnaW9u
cyB0ZXN0cyBvbiBFRkwvR1RLIChSZXF1ZXN0ZWQgYnkKKyAgICAgICAgcGhpbG4gb24gI3dlYmtp
dCkuCisKKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvYm90dG9tLW92ZXJmbG93LW91dC1vZi1maXJz
dC1yZWdpb24tZXhwZWN0ZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvYm90dG9tLW92
ZXJmbG93LW91dC1vZi1maXJzdC1yZWdpb24uaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMv
Y291bnRlcnMvZXh0cmFjdC1vcmRlcmVkLWxpc3RzLWluLXJlZ2lvbnMtZXhwbGljaXQtY291bnRl
cnMtMDA1LWV4cGVjdGVkLmh0bWw6CisgICAgICAgICogZmFzdC9yZWdpb25zL2NvdW50ZXJzL2V4
dHJhY3Qtb3JkZXJlZC1saXN0cy1pbi1yZWdpb25zLWV4cGxpY2l0LWNvdW50ZXJzLTAwNS5odG1s
OgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9lbGVtZW50LWluLW5hbWVkLWZsb3ctYWJzb2x1dGUt
ZnJvbS1maXhlZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9yZWdpb25zL2VsZW1lbnQt
aW4tbmFtZWQtZmxvdy1maXhlZC1mcm9tLWFic29sdXRlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBmYXN0L3JlZ2lvbnMvZWxlbWVudC1pbmZsb3ctZml4ZWQtZnJvbS1vdXRmbG93LXN0YXRpYy1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9yZWdpb25zL2VsZW1lbnQtb3V0Zmxvdy1zdGF0
aWMtZnJvbS1pbmZsb3ctZml4ZWQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvcmVnaW9u
cy9mbG9hdC1wdXNoZWQtd2lkdGgtY2hhbmdlLTItZXhwZWN0ZWQuaHRtbDoKKyAgICAgICAgKiBm
YXN0L3JlZ2lvbnMvZmxvYXQtcHVzaGVkLXdpZHRoLWNoYW5nZS0yLmh0bWw6CisgICAgICAgICog
ZmFzdC9yZWdpb25zL2Zsb2F0LXB1c2hlZC13aWR0aC1jaGFuZ2UtZXhwZWN0ZWQuaHRtbDoKKyAg
ICAgICAgKiBmYXN0L3JlZ2lvbnMvZmxvYXQtcHVzaGVkLXdpZHRoLWNoYW5nZS5odG1sOgorICAg
ICAgICAqIGZhc3QvcmVnaW9ucy9sYXllcnMvZHluYW1pYy1sYXllci1hZGRlZC13aXRoLW5vLWxh
eW91dC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9yZWdpb25zL2xheWVy
cy9keW5hbWljLWxheWVyLXJlbW92ZWQtd2l0aC1uby1sYXlvdXQtZXhwZWN0ZWQudHh0OiBSZW1v
dmVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9sYXllcnMvcmVnaW9ucy1wcm9tb3RlZC10by1s
YXllcnMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9sYXll
cnMvcmVnaW9ucy1wcm9tb3RlZC10by1sYXllcnMtaG9yaXpvbnRhbC1idC1leHBlY3RlZC50eHQ6
IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9yZWdpb25zL2xheWVycy9yZWdpb25zLXByb21vdGVk
LXRvLWxheWVycy12ZXJ0aWNhbC1sci1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
ZmFzdC9yZWdpb25zL2xheWVycy9yZWdpb25zLXByb21vdGVkLXRvLWxheWVycy12ZXJ0aWNhbC1y
bC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9yZWdpb25zL291dGxpbmUt
c2lkZXMtaW4tcmVnaW9uLWV4cGVjdGVkLmh0bWw6CisgICAgICAgICogZmFzdC9yZWdpb25zL291
dGxpbmUtc2lkZXMtaW4tcmVnaW9uLmh0bWw6CisgICAgICAgICogZmFzdC9yZWdpb25zL292ZXJm
bG93LWZpcnN0LWFuZC1sYXN0LXJlZ2lvbnMtZXhwZWN0ZWQuaHRtbDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBmYXN0L3JlZ2lvbnMvb3ZlcmZsb3ctZmlyc3QtYW5kLWxhc3QtcmVnaW9ucy1pbi1jb250
YWluZXItaGlkZGVuLWV4cGVjdGVkLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9yZWdp
b25zL292ZXJmbG93LWZpcnN0LWFuZC1sYXN0LXJlZ2lvbnMtaW4tY29udGFpbmVyLWhpZGRlbi5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9vdmVyZmxvdy1maXJzdC1hbmQt
bGFzdC1yZWdpb25zLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9yZWdpb25zL292ZXJm
bG93LWxhc3QtcmVnaW9uLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVn
aW9ucy9vdmVyZmxvdy1sYXN0LXJlZ2lvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Jl
Z2lvbnMvb3ZlcmZsb3ctbmVzdGVkLXJlZ2lvbnMtZXhwZWN0ZWQuaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBmYXN0L3JlZ2lvbnMvb3ZlcmZsb3ctbmVzdGVkLXJlZ2lvbnMuaHRtbDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvb3ZlcmZsb3ctcmVnaW9uLWZsb2F0LWV4cGVjdGVk
Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9yZWdpb25zL292ZXJmbG93LXJlZ2lvbi1m
bG9hdC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9vdmVyZmxvdy1yZWdp
b24taW5saW5lLWV4cGVjdGVkLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9yZWdpb25z
L292ZXJmbG93LXJlZ2lvbi1pbmxpbmUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Jl
Z2lvbnMvb3ZlcmZsb3ctcmVnaW9uLXRyYW5zZm9ybS1leHBlY3RlZC5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIGZhc3QvcmVnaW9ucy9vdmVyZmxvdy1yZWdpb24tdHJhbnNmb3JtLmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogZmFzdC9yZWdpb25zL292ZXJmbG93LXNjcm9sbGFibGUtcm90YXRl
ZC1mcmFnbWVudC1leHBlY3RlZC5odG1sOgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9vdmVyZmxv
dy1zY3JvbGxhYmxlLXJvdGF0ZWQtZnJhZ21lbnQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlZ2lv
bnMvdG9wLW92ZXJmbG93LW91dC1vZi1zZWNvbmQtcmVnaW9uLWV4cGVjdGVkLmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICogZmFzdC9yZWdpb25zL3RvcC1vdmVyZmxvdy1vdXQtb2Ytc2Vjb25kLXJl
Z2lvbi5odG1sOgorICAgICAgICAqIGZhc3QvcmVnaW9ucy93ZWJraXQtZmxvdy1mbG9hdC11bmFi
bGUtdG8tcHVzaC1leHBlY3RlZC5odG1sOgorICAgICAgICAqIGZhc3QvcmVnaW9ucy93ZWJraXQt
Zmxvdy1mbG9hdC11bmFibGUtdG8tcHVzaC5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9p
bmNyZWFzaW5nLXJlZ2lvbi1jb250ZW50LWhlaWdodC1leHBlY3RlZC50eHQ6CisgICAgICAgICog
ZmFzdC9yZXBhaW50L2luY3JlYXNpbmctcmVnaW9uLWNvbnRlbnQtaGVpZ2h0Lmh0bWw6CisgICAg
ICAgICogcGxhdGZvcm0vZ3RrL2Zhc3QvcmVnaW9ucy90ZXh0LXJlZ2lvbi1zcGxpdC12ZXJ0aWNh
bC1ybC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvVGVz
dEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9yZWdpb25zL3RvcC1v
dmVyZmxvdy1vdXQtb2Ytc2Vjb25kLXJlZ2lvbi1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy9mYXN0L3JlZ2lvbnMvdG9wLW92ZXJmbG93LW91dC1vZi1zZWNvbmQt
cmVnaW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMTMtMTEtMTUgIEFudHRpIEtvaXZpc3Rv
ICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIEhvdmVyaW5nIG92ZXIgdGV4dCB1c2luZyBz
aW1wbGUgbGluZSBwYXRoIHNob3VsZCBub3QgY2F1c2Ugc3dpdGNoIHRvIGxpbmUgYm94ZXMKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9ib3R0b20tb3ZlcmZsb3ctb3V0LW9m
LWZpcnN0LXJlZ2lvbi1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2Jv
dHRvbS1vdmVyZmxvdy1vdXQtb2YtZmlyc3QtcmVnaW9uLWV4cGVjdGVkLmh0bWwKaW5kZXggYjJh
YTFlZGNjZGMyZDdmYjdjZWYzOTU3Mzc5NjA1NTRlYTc4OWVlMy4uOTViNmI0ODc2NmIwZmIzMDI4
MzIyMjJiNThjYTA3MDI3ZDkzNjUzOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdp
b25zL2JvdHRvbS1vdmVyZmxvdy1vdXQtb2YtZmlyc3QtcmVnaW9uLWV4cGVjdGVkLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2JvdHRvbS1vdmVyZmxvdy1vdXQtb2YtZmlyc3Qt
cmVnaW9uLWV4cGVjdGVkLmh0bWwKQEAgLTQsMTkgKzQsMTYgQEAKICAgICAgICAgPHN0eWxlPgog
ICAgICAgICAgICAgYm9keSB7IGZvbnQ6IDE2cHgvMS4yNSBtb25vc3BhY2U7IH0KIAotICAgICAg
ICAgICAgI3JlZ2lvbjEsICNyZWdpb24yIHsgYm9yZGVyOiAxcHggc29saWQgcmVkOyB9CisgICAg
ICAgICAgICAjcmVnaW9uMSwgI3JlZ2lvbjIgeyBib3JkZXI6IDFweCBzb2xpZCBibGFjazsgfQog
CiAgICAgICAgICAgICAjcmVnaW9uMSB7CiAgICAgICAgICAgICAgICAgd2lkdGg6IDQxMnB4Owot
ICAgICAgICAgICAgICAgIGhlaWdodDogMTQwcHg7CisgICAgICAgICAgICAgICAgaGVpZ2h0OiAy
MTBweDsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgI3JlZ2lvbjIgewogICAgICAgICAg
ICAgICAgIHdpZHRoOiAzMDBweDsKICAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1MHB4OwotICAg
ICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKLSAgICAgICAgICAgICAgICBsZWZ0OiAx
MDBweDsKLSAgICAgICAgICAgICAgICB0b3A6IDUwcHg7CiAgICAgICAgICAgICB9CiAKICAgICAg
ICAgICAgICNjb250ZW50IHsKQEAgLTI1LDIyICsyMiwzMSBAQAogCiAgICAgICAgICAgICAjZmly
c3QtYm94IHsKICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBibHVlOwotICAgICAg
ICAgICAgICAgIGhlaWdodDoxMjVweDsKKyAgICAgICAgICAgICAgICBoZWlnaHQ6MjAwcHg7CiAg
ICAgICAgICAgICB9CiAKICAgICAgICAgICAgICNzZWNvbmQtYm94IHsKICAgICAgICAgICAgICAg
ICBtYXJnaW46IGF1dG87CiAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgZ3JlZW47
CisgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMHB4OwogICAgICAgICAgICAgICAgIHdp
ZHRoOiA3NSU7CisgICAgICAgICAgICAgICAgaGVpZ2h0OiAyMDNweDsKICAgICAgICAgICAgIH0K
IAotICAgICAgICAgICAgI3AxLCAjcDIgeworICAgICAgICAgICAgI3NlY29uZC1ib3gtMiB7Cisg
ICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgZ3JlZW47CisgICAgICAgICAgICAgICAg
Ym9yZGVyLXRvcDogMHB4OworICAgICAgICAgICAgICAgIHdpZHRoOiAzMDBweDsKKyAgICAgICAg
ICAgICAgICBtYXJnaW4tbGVmdDogNTVweDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
I3AxLCAjcDIsICNwMyB7CiAgICAgICAgICAgICAgICAgbWFyZ2luOiAwOwogICAgICAgICAgICAg
fQogICAgICAgICA8L3N0eWxlPgogICAgIDwvaGVhZD4KICAgICA8Ym9keT4KLSAgICAgICAgPHA+
SW4gdGhlIHRlc3QgY2FzZSBiZWxvdywgdGhlIGdyZWVuIGJsb2NrIHNob3VsZCBub3QgYmUgZnJh
Z21lbnRlZCBpbnRvIHRoZSBzZWNvbmQgcmVnaW9uLiBJdCBpcyBvdmVyZmxvd2luZyBkb3dud2Fy
ZHMgb3V0IG9mIHRoZSBmaXJzdCByZWdpb24gYmVjYXVzZSBpdHMgcGFyZW50ICh0aGUgYmx1ZSBi
bG9jaykgaXMgb25seSBmbG93ZWQgaW5zaWRlIHRoZSBmaXJzdCByZWdpb24uPC9wPgorICAgICAg
ICA8cD5JbiB0aGUgdGVzdCBjYXNlIGJlbG93LCB0aGUgZ3JlZW4gYmxvY2sncyB3aWR0aCBzaG91
bGQgbm90IHZhcnkgYW5kIHNob3VsZCB1c2UgdGhlIGZpcnN0IHJlZ2lvbiB0byBkZXRlcm1pbmUg
aXRzIHdpZHRoLiBJdCBpcyBvdmVyZmxvd2luZyBkb3dud2FyZHMgb3V0IG9mIHRoZSBibHVlIGJs
b2NrLCBhbmQgc28gdGhlIHBvcnRpb24gdGhhdCBvdmVyZmxvd3Mgc2hvdWxkIGNvbnRpbnVlIHRv
IHVzZSB0aGUgYmx1ZSBibG9jaydzIGNvbnRhaW5pbmcgYmxvY2sgd2lkdGguIFRoZSBibHVlIGJs
b2NrIGRvZXMgbm90IGV4aXN0IGluIHJlZ2lvbiB0d28sIHNvIHVzaW5nIHNvbWUgaHlwb3RoZXRp
Y2FsIG1hZGUtdXAgd2lkdGggaXMgaW5jb3JyZWN0LiBUaGUgb3ZlcmZsb3cgc2hvdWxkIGJlIHNw
aWxsaW5nIG91dCBvZiB0aGUgdG9wIG9mIHJlZ2lvbiBvbmUgYW5kIGJlIHBhaW50ZWQgaW4gcmVn
aW9uIHR3by48L3A+CiAgICAgICAgIDxkaXYgaWQ9InJlZ2lvbjEiPgogICAgICAgICAgICAgPGRp
diBpZD0iY29udGVudCI+CiAgICAgICAgICAgICAgICAgPGRpdiBpZD0iZmlyc3QtYm94Ij4KQEAg
LTUyLDYgKzU4LDkgQEAKICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICA8L2Rpdj4KICAgICAg
ICAgPGRpdiBpZD0icmVnaW9uMiI+CisgICAgICAgICAgICA8ZGl2IGlkPSJzZWNvbmQtYm94LTIi
PgorICAgICAgICAgICAgICAgIDxwIGlkPSJwMyI+VGhlc2UgbGluZXMgc2hvdWxkIGFsbCBmaXQg
dG8gdGhlIHdpZHRoIG9mIHRoZSBibG9jayBpbiB0aGUgZmlyc3QgcmVnaW9uIGFuZCBzcGlsbCBv
dXQgb2YgdGhlIGJvdHRvbSBvZiB0aGUgZmlyc3QgcmVnaW9uLjwvcD4KKyAgICAgICAgICAgIDwv
ZGl2PgogICAgICAgICA8L2Rpdj4KICAgICA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvYm90dG9tLW92ZXJmbG93LW91dC1vZi1maXJzdC1yZWdp
b24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9ib3R0b20tb3ZlcmZsb3ctb3V0LW9m
LWZpcnN0LXJlZ2lvbi5odG1sCmluZGV4IDNjYjgzMDQ4NmE5MTllNTc2ODk5YzllZWZlMmY1MTc0
MzEyNzBjNWUuLjdlMjJmY2QyMmJmMTE0ZTBkYzAyZTI4MjYwYTYxYWRkMTRhZjE2YzggMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9ib3R0b20tb3ZlcmZsb3ctb3V0LW9mLWZp
cnN0LXJlZ2lvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9ib3R0b20tb3Zl
cmZsb3ctb3V0LW9mLWZpcnN0LXJlZ2lvbi5odG1sCkBAIC0xMSw3ICsxMSw3IEBACiAKICAgICAg
ICAgICAgICNmaXJzdC1ib3ggewogICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJs
dWU7Ci0gICAgICAgICAgICAgICAgaGVpZ2h0OjEyNXB4OworICAgICAgICAgICAgICAgIGhlaWdo
dDoyMDBweDsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgI3NlY29uZC1ib3ggewpAQCAt
MjEsMzQgKzIxLDMyIEBACiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICNyZWdpb24xLCAj
cmVnaW9uMiB7Ci0gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmVkOworICAgICAg
ICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOwogICAgICAgICAgICAgICAgIC13ZWJr
aXQtZmxvdy1mcm9tOiBmbG93MTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgI3JlZ2lv
bjEgewogICAgICAgICAgICAgICAgIHdpZHRoOiA0MTJweDsKLSAgICAgICAgICAgICAgICBoZWln
aHQ6IDE0MHB4OworICAgICAgICAgICAgICAgIGhlaWdodDogMjEwcHg7CiAgICAgICAgICAgICB9
CiAKICAgICAgICAgICAgICNyZWdpb24yIHsKICAgICAgICAgICAgICAgICB3aWR0aDogMzAwcHg7
CiAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxNTBweDsKLSAgICAgICAgICAgICAgICBwb3NpdGlv
bjogcmVsYXRpdmU7Ci0gICAgICAgICAgICAgICAgbGVmdDogMTAwcHg7Ci0gICAgICAgICAgICAg
ICAgdG9wOiA1MHB4OwogICAgICAgICAgICAgfQotICAgICAgICAgICAgI3AxLCAjcDIgeworICAg
ICAgICAgICAgI3AxLCAjcDIsICNwMyB7CiAgICAgICAgICAgICAgICAgbWFyZ2luOiAwOwogICAg
ICAgICAgICAgfQogICAgICAgICA8L3N0eWxlPgogICAgIDwvaGVhZD4KICAgICA8Ym9keT4KLSAg
ICAgICAgPHA+SW4gdGhlIHRlc3QgY2FzZSBiZWxvdywgdGhlIGdyZWVuIGJsb2NrIHNob3VsZCBu
b3QgYmUgZnJhZ21lbnRlZCBpbnRvIHRoZSBzZWNvbmQgcmVnaW9uLiBJdCBpcyBvdmVyZmxvd2lu
ZyBkb3dud2FyZHMgb3V0IG9mIHRoZSBmaXJzdCByZWdpb24gYmVjYXVzZSBpdHMgcGFyZW50ICh0
aGUgYmx1ZSBibG9jaykgaXMgb25seSBmbG93ZWQgaW5zaWRlIHRoZSBmaXJzdCByZWdpb24uPC9w
PgorICAgICAgICA8cD5JbiB0aGUgdGVzdCBjYXNlIGJlbG93LCB0aGUgZ3JlZW4gYmxvY2sncyB3
aWR0aCBzaG91bGQgbm90IHZhcnkgYW5kIHNob3VsZCB1c2UgdGhlIGZpcnN0IHJlZ2lvbiB0byBk
ZXRlcm1pbmUgaXRzIHdpZHRoLiBJdCBpcyBvdmVyZmxvd2luZyBkb3dud2FyZHMgb3V0IG9mIHRo
ZSBibHVlIGJsb2NrLCBhbmQgc28gdGhlIHBvcnRpb24gdGhhdCBvdmVyZmxvd3Mgc2hvdWxkIGNv
bnRpbnVlIHRvIHVzZSB0aGUgYmx1ZSBibG9jaydzIGNvbnRhaW5pbmcgYmxvY2sgd2lkdGguIFRo
ZSBibHVlIGJsb2NrIGRvZXMgbm90IGV4aXN0IGluIHJlZ2lvbiB0d28sIHNvIHVzaW5nIHNvbWUg
aHlwb3RoZXRpY2FsIG1hZGUtdXAgd2lkdGggaXMgaW5jb3JyZWN0LiBUaGUgb3ZlcmZsb3cgc2hv
dWxkIGJlIHNwaWxsaW5nIG91dCBvZiB0aGUgdG9wIG9mIHJlZ2lvbiBvbmUgYW5kIGJlIHBhaW50
ZWQgaW4gcmVnaW9uIHR3by48L3A+CiAgICAgICAgIDxkaXYgaWQ9ImNvbnRlbnQiPgogICAgICAg
ICAgICAgPGRpdiBpZD0iZmlyc3QtYm94Ij4KICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJzZWNv
bmQtYm94Ij4KICAgICAgICAgICAgICAgICAgICAgPHAgaWQ9InAxIj5UaGVzZSBsaW5lcyBzaG91
bGQgYWxsIGZpdCB0byB0aGUgd2lkdGggb2YgdGhlIGJsb2NrIGluIHRoZSBmaXJzdCByZWdpb24g
YW5kIHNwaWxsIG91dCBvZiB0aGUgYm90dG9tIG9mIHRoZSBmaXJzdCByZWdpb24uPC9wPgogICAg
ICAgICAgICAgICAgICAgICA8cCBpZD0icDIiPlRoZXNlIGxpbmVzIHNob3VsZCBhbGwgZml0IHRv
IHRoZSB3aWR0aCBvZiB0aGUgYmxvY2sgaW4gdGhlIGZpcnN0IHJlZ2lvbiBhbmQgc3BpbGwgb3V0
IG9mIHRoZSBib3R0b20gb2YgdGhlIGZpcnN0IHJlZ2lvbi48L3A+CisgICAgICAgICAgICAgICAg
ICAgIDxwIGlkPSJwMyI+VGhlc2UgbGluZXMgc2hvdWxkIGFsbCBmaXQgdG8gdGhlIHdpZHRoIG9m
IHRoZSBibG9jayBpbiB0aGUgZmlyc3QgcmVnaW9uIGFuZCBzcGlsbCBvdXQgb2YgdGhlIGJvdHRv
bSBvZiB0aGUgZmlyc3QgcmVnaW9uLjwvcD4KICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAg
ICAgICAgIDwvZGl2PgogICAgICAgICA8L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvcmVnaW9ucy9jb3VudGVycy9leHRyYWN0LW9yZGVyZWQtbGlzdHMtaW4tcmVnaW9ucy1leHBs
aWNpdC1jb3VudGVycy0wMDUtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9u
cy9jb3VudGVycy9leHRyYWN0LW9yZGVyZWQtbGlzdHMtaW4tcmVnaW9ucy1leHBsaWNpdC1jb3Vu
dGVycy0wMDUtZXhwZWN0ZWQuaHRtbAppbmRleCAzMTIwODg4YTQxMWZiMjI1YTNjODM4ODAwNTIx
Yzg3Mjk3YWI1YjQyLi5lOTJiNGY3ZjFmMTllZjM3N2YxMzQ2NzVlNDQ0NTMxYzQ1YTY0OWM1IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvY291bnRlcnMvZXh0cmFjdC1vcmRl
cmVkLWxpc3RzLWluLXJlZ2lvbnMtZXhwbGljaXQtY291bnRlcnMtMDA1LWV4cGVjdGVkLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2NvdW50ZXJzL2V4dHJhY3Qtb3JkZXJlZC1s
aXN0cy1pbi1yZWdpb25zLWV4cGxpY2l0LWNvdW50ZXJzLTAwNS1leHBlY3RlZC5odG1sCkBAIC03
MCw3ICs3MCw3IEBACiAgICAgICAgIH0KICAgICAgICAgPC9zdHlsZT4KICAgICA8L2hlYWQ+Ci0g
ICAgPGJvZHkgc3R5bGU9Ii13ZWJraXQtZm9udC1zbW9vdGhpbmc6IG5vbmU7Ij4KKyAgICA8Ym9k
eT4KICAgICAgICAgPHA+VGhpcyB0ZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIHR3byBncmF5IHJlY3Rh
bmdsZXMsIGFzIGRlc2NyaWJlZCBiZWxvdy4gQWxsIG51bWJlcmluZyBzaG91bGQgYmUgYWxpZ25l
ZCB0byB0aGUgcmlnaHQgbWFyZ2luIG9mIHRoZSByZWN0YW5nbGVzLjwvcD4KICAgICAgICAgPHA+
VGhlIGZpcnN0IHJlY3RhbmdsZSBjb250YWlucyB0d28gbnVtYmVyZWQgbGlzdHMuIFRoZSA8c3Ry
b25nPmZpcnN0IGxpc3Q8L3N0cm9uZz4gaGFzIHRocmVlIGl0ZW1zIGFuZCBpcyBudW1iZXJlZCB1
c2luZyBib2xkIHJvbWFuIG51bWVyYWxzLCBzdGFydGluZyBhdCAxIChJKS4gQWZ0ZXIgdGhlIGZp
cnN0IGl0ZW0gdGhlcmUncyBhIG51bWJlcmVkIHN1Ymxpc3Q7IGl0IGlzIGluZGVudGVkIGFuZCBo
YXMgZm91ciBpdGVtcywgbnVtYmVyZWQgdXNpbmcgZGVjaW1hbCBudW1iZXJzIHByZWNlZGVkIGJ5
IGFuIGVsbGlwc2lzICgmaGVsbGlwOyksIHN0YXJ0aW5nIGF0IDEuIEFmdGVyIHRoZSBsYXN0IGl0
ZW0gaW4gdGhpcyBzdWJsaXN0IHRoZXJlJ3MgYSBzaW5nbGUgaXRlbSBudW1iZXJlZCBsaXN0OyB0
aGUgbnVtYmVyaW5nIGlzIGJsdWUgYW5kIHVzZXMgdGhyZWUgbGV2ZWxzIG9mIG51bWJlcmluZzog
cm9tYW4sIGRlY2ltYWwgYW5kIHdpdGggbGF0aW4gbGV0dGVycywgcmVzcGVjdGl2ZWx5OyBudW1i
ZXJpbmcgc3RhcnRzIHdpdGggSS40LWEuIFRoZSA8c3Ryb25nPnNlY29uZCBsaXN0PC9zdHJvbmc+
IGhhcyB0d28gaXRlbXMgYW5kIHVzZXMgdGhlIHNhbWUgYmx1ZSwgdGhyZWUtbGV2ZWwgbnVtYmVy
aW5nLCB0aGF0IHN0YXJ0cyBhdCBJLjMtYSB0aGlzIHRpbWUuPC9wPgogICAgICAgICA8cD5UaGUg
c2Vjb25kIHJlY3RhbmdsZSBjb250YWlucyBhIHR3by1pdGVtcyBudW1iZXJlZCBsaXN0LCBudW1i
ZXJlZCB1c2luZyBkZWNpbWFsIG51bWJlcnMgcHJlY2VkZWQgYnkgYW4gZWxsaXBzaXMuIEFmdGVy
IHRoZSBmaXJzdCBpdGVtIHRoZXJlJ3MgYSBzdWJsaXN0LiBUaGUgc3VibGlzdCBpcyBpbmRlbnRl
ZCBhbmQgaGFzIGJsdWUsIHRocmVlIGxldmVsLW51bWJlcmluZzogcm9tYW4sIGRlY2ltYWwgYW5k
IHdpdGggbGF0aW4gbGV0dGVycywgcmVzcGVjdGl2ZWx5LiBOdW1iZXJpbmcgc3RhcnRzIHdpdGgg
PGVtPklJSS4xLWE8L2VtPi48L3A+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lv
bnMvY291bnRlcnMvZXh0cmFjdC1vcmRlcmVkLWxpc3RzLWluLXJlZ2lvbnMtZXhwbGljaXQtY291
bnRlcnMtMDA1Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvY291bnRlcnMvZXh0cmFj
dC1vcmRlcmVkLWxpc3RzLWluLXJlZ2lvbnMtZXhwbGljaXQtY291bnRlcnMtMDA1Lmh0bWwKaW5k
ZXggOTNiMzhlMWU4YzQ1NjUzYjY2NjE2ZjQwNTY5ODZlYzI5YzAzMmQ1Mi4uYjU5YjU3MmY4ODBj
ZTliNzRiNTRkNGIxY2ZlNGNjODYxMTgxOTE1YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9yZWdpb25zL2NvdW50ZXJzL2V4dHJhY3Qtb3JkZXJlZC1saXN0cy1pbi1yZWdpb25zLWV4cGxp
Y2l0LWNvdW50ZXJzLTAwNS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9jb3Vu
dGVycy9leHRyYWN0LW9yZGVyZWQtbGlzdHMtaW4tcmVnaW9ucy1leHBsaWNpdC1jb3VudGVycy0w
MDUuaHRtbApAQCAtNzcsNyArNzcsNyBAQAogICAgICAgICB9CiAgICAgICAgIDwvc3R5bGU+CiAg
ICAgPC9oZWFkPgotICAgIDxib2R5IHN0eWxlPSItd2Via2l0LWZvbnQtc21vb3RoaW5nOiBub25l
OyI+CisgICAgPGJvZHk+CiAgICAgICAgIDxwPlRoaXMgdGVzdCBwYXNzZXMgaWYgeW91IHNlZSB0
d28gZ3JheSByZWN0YW5nbGVzLCBhcyBkZXNjcmliZWQgYmVsb3cuIEFsbCBudW1iZXJpbmcgc2hv
dWxkIGJlIGFsaWduZWQgdG8gdGhlIHJpZ2h0IG1hcmdpbiBvZiB0aGUgcmVjdGFuZ2xlcy48L3A+
CiAgICAgICAgIDxwPlRoZSBmaXJzdCByZWN0YW5nbGUgY29udGFpbnMgdHdvIG51bWJlcmVkIGxp
c3RzLiBUaGUgPHN0cm9uZz5maXJzdCBsaXN0PC9zdHJvbmc+IGhhcyB0aHJlZSBpdGVtcyBhbmQg
aXMgbnVtYmVyZWQgdXNpbmcgYm9sZCByb21hbiBudW1lcmFscywgc3RhcnRpbmcgYXQgMSAoSSku
IEFmdGVyIHRoZSBmaXJzdCBpdGVtIHRoZXJlJ3MgYSBudW1iZXJlZCBzdWJsaXN0OyBpdCBpcyBp
bmRlbnRlZCBhbmQgaGFzIGZvdXIgaXRlbXMsIG51bWJlcmVkIHVzaW5nIGRlY2ltYWwgbnVtYmVy
cyBwcmVjZWRlZCBieSBhbiBlbGxpcHNpcyAoJmhlbGxpcDspLCBzdGFydGluZyBhdCAxLiBBZnRl
ciB0aGUgbGFzdCBpdGVtIGluIHRoaXMgc3VibGlzdCB0aGVyZSdzIGEgc2luZ2xlIGl0ZW0gbnVt
YmVyZWQgbGlzdDsgdGhlIG51bWJlcmluZyBpcyBibHVlIGFuZCB1c2VzIHRocmVlIGxldmVscyBv
ZiBudW1iZXJpbmc6IHJvbWFuLCBkZWNpbWFsIGFuZCB3aXRoIGxhdGluIGxldHRlcnMsIHJlc3Bl
Y3RpdmVseTsgbnVtYmVyaW5nIHN0YXJ0cyB3aXRoIEkuNC1hLiBUaGUgPHN0cm9uZz5zZWNvbmQg
bGlzdDwvc3Ryb25nPiBoYXMgdHdvIGl0ZW1zIGFuZCB1c2VzIHRoZSBzYW1lIGJsdWUsIHRocmVl
LWxldmVsIG51bWJlcmluZywgdGhhdCBzdGFydHMgYXQgSS4zLWEgdGhpcyB0aW1lLjwvcD4KICAg
ICAgICAgPHA+VGhlIHNlY29uZCByZWN0YW5nbGUgY29udGFpbnMgYSB0d28taXRlbXMgbnVtYmVy
ZWQgbGlzdCwgbnVtYmVyZWQgdXNpbmcgZGVjaW1hbCBudW1iZXJzIHByZWNlZGVkIGJ5IGFuIGVs
bGlwc2lzLiBBZnRlciB0aGUgZmlyc3QgaXRlbSB0aGVyZSdzIGEgc3VibGlzdC4gVGhlIHN1Ymxp
c3QgaXMgaW5kZW50ZWQgYW5kIGhhcyBibHVlLCB0aHJlZSBsZXZlbC1udW1iZXJpbmc6IHJvbWFu
LCBkZWNpbWFsIGFuZCB3aXRoIGxhdGluIGxldHRlcnMsIHJlc3BlY3RpdmVseS4gTnVtYmVyaW5n
IHN0YXJ0cyB3aXRoIDxlbT5JSUkuMS1hPC9lbT4uPC9wPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9yZWdpb25zL2VsZW1lbnQtaW4tbmFtZWQtZmxvdy1hYnNvbHV0ZS1mcm9tLWZpeGVk
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9lbGVtZW50LWluLW5hbWVk
LWZsb3ctYWJzb2x1dGUtZnJvbS1maXhlZC1leHBlY3RlZC50eHQKaW5kZXggMDNmYzMwNzAyMjE3
ODM0Y2IwZWFlNDM3NDU5YzljYzM1ZGQxMmM2Ni4uM2YyYzRkMmExNjJlYzhkN2I5ZmEwYmJlYjJl
YWVjYTJmNTcyMWY1MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2VsZW1l
bnQtaW4tbmFtZWQtZmxvdy1hYnNvbHV0ZS1mcm9tLWZpeGVkLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZWxlbWVudC1pbi1uYW1lZC1mbG93LWFic29sdXRlLWZy
b20tZml4ZWQtZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNSBAQAogKHJlcGFpbnQgcmVjdHMKICAg
KHJlY3QgNTAgMTAwIDUwIDUwKQotICAocmVjdCAxMDAgMTAwIDIwMCAyMDApCi0gIChyZWN0IDE1
MCAyMDAgNTAgNTApCiAgIChyZWN0IDE1MCAyMDAgNTAgNTApCiApCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9lbGVtZW50LWluLW5hbWVkLWZsb3ctZml4ZWQtZnJvbS1h
YnNvbHV0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZWxlbWVudC1p
bi1uYW1lZC1mbG93LWZpeGVkLWZyb20tYWJzb2x1dGUtZXhwZWN0ZWQudHh0CmluZGV4IGI3MGIx
OTAxZWJhOTkwNWNiOGNkMDI5MDYzOWY1NjcwYmMwNWVhZWQuLmYyZjIxOWNhNjdmYTc2MTZjYmY4
YTM2ZGYwZjAyNWEyM2IzMWRjODEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9u
cy9lbGVtZW50LWluLW5hbWVkLWZsb3ctZml4ZWQtZnJvbS1hYnNvbHV0ZS1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2VsZW1lbnQtaW4tbmFtZWQtZmxvdy1maXhl
ZC1mcm9tLWFic29sdXRlLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDUgQEAKIChyZXBhaW50IHJl
Y3RzCiAgIChyZWN0IDE1MCAyMDAgNTAgNTApCi0gIChyZWN0IDEwMCAxMDAgMjAwIDIwMCkKLSAg
KHJlY3QgNTAgMTAwIDUwIDUwKQogICAocmVjdCA1MCAxMDAgNTAgNTApCiApCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9lbGVtZW50LWluZmxvdy1maXhlZC1mcm9tLW91
dGZsb3ctc3RhdGljLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9lbGVt
ZW50LWluZmxvdy1maXhlZC1mcm9tLW91dGZsb3ctc3RhdGljLWV4cGVjdGVkLnR4dAppbmRleCAx
YmMxZWEyOWU5M2E0ZjUzYTU3NmQyODM4MTViZTE2YTA0ODNkMjFhLi5jOTQwOTg1YWE1NjNiMmIw
YTA0MDMxNzUwNDE4MzQwMzMxYjY3MDg3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Jl
Z2lvbnMvZWxlbWVudC1pbmZsb3ctZml4ZWQtZnJvbS1vdXRmbG93LXN0YXRpYy1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2VsZW1lbnQtaW5mbG93LWZpeGVkLWZy
b20tb3V0Zmxvdy1zdGF0aWMtZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNSBAQAogKHJlcGFpbnQg
cmVjdHMKICAgKHJlY3QgMzAwIDMwMCA1MCA1MCkKLSAgKHJlY3QgMTAwIDEwMCAyMDAgMjAwKQot
ICAocmVjdCA1MCAxMDAgNTAgNTApCiAgIChyZWN0IDUwIDEwMCA1MCA1MCkKICkKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2VsZW1lbnQtb3V0Zmxvdy1zdGF0aWMtZnJv
bS1pbmZsb3ctZml4ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2Vs
ZW1lbnQtb3V0Zmxvdy1zdGF0aWMtZnJvbS1pbmZsb3ctZml4ZWQtZXhwZWN0ZWQudHh0CmluZGV4
IDc5YTc0MWIwYzkwNDdkMTM1MmM1YmE2NWZkMWUxMGUwZTY5YWI3MGQuLmNhOWYzZDA2ZmFjMzA3
OGFlMjI5MzU1NjdiMWQ2ZTZiZWIwYzBmMjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
cmVnaW9ucy9lbGVtZW50LW91dGZsb3ctc3RhdGljLWZyb20taW5mbG93LWZpeGVkLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZWxlbWVudC1vdXRmbG93LXN0YXRp
Yy1mcm9tLWluZmxvdy1maXhlZC1leHBlY3RlZC50eHQKQEAgLTEsNiArMSw1IEBACiAocmVwYWlu
dCByZWN0cwogICAocmVjdCA1MCAxMDAgNTAgNTApCiAgIChyZWN0IDMwMCAzMDAgNTAgNTApCi0g
IChyZWN0IDEwMCAxMDAgMjAwIDIwMCkKICkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9yZWdpb25zL2Zsb2F0LXB1c2hlZC13aWR0aC1jaGFuZ2UtMi1leHBlY3RlZC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9yZWdpb25zL2Zsb2F0LXB1c2hlZC13aWR0aC1jaGFuZ2UtMi1leHBlY3Rl
ZC5odG1sCmluZGV4IGQ2MWFiMWRmZDQ2NjkwYWFlNzcyZmJjMjBjMjE3OTdiMGYwZDQ0ZTAuLjYz
YTk2OGNjZGZjMTIwYjNhOWNlYTI0Njc5OTIzOTYyZmQ0N2IwZGUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvcmVnaW9ucy9mbG9hdC1wdXNoZWQtd2lkdGgtY2hhbmdlLTItZXhwZWN0ZWQu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZmxvYXQtcHVzaGVkLXdpZHRoLWNo
YW5nZS0yLWV4cGVjdGVkLmh0bWwKQEAgLTYsOCArNiw5IEBACiAgICAgICAgIGZsb2F0OiBsZWZ0
OwogICAgICAgICBwb3NpdGlvbjphYnNvbHV0ZTsKICAgICAgICAgd2lkdGg6IDE1MHB4OwotICAg
ICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICBoZWlnaHQ6IDEwMnB4OwogICAgICAgICBiYWNr
Z3JvdW5kLWNvbG9yOmdyZWVuOworICAgICAgICB6LWluZGV4Oi0xOwogICAgIH0KICAgICAKICAg
ICAjZmxvYXQyIHsKQEAgLTMzLDE4ICszNCwxNCBAQAogICAgICAgICBwYWRkaW5nLXRvcDoxcHg7
CiAgICAgICAgIHBhZGRpbmctbGVmdDo1cHg7CiAgICAgICAgIHBhZGRpbmctcmlnaHQ6NXB4Owot
ICAgICAgICBtYXJnaW4tbGVmdDogMTAwcHg7Ci0gICAgICAgIG1hcmdpbi10b3A6IDUwcHg7CiAg
ICAgfQogICAgIAogICAgICNyZWdpb24zIHsKLSAgICAgICAgd2lkdGg6IDM5MHB4OwotICAgICAg
ICBoZWlnaHQ6IDg1cHg7CisgICAgICAgIHdpZHRoOiAzODVweDsKKyAgICAgICAgaGVpZ2h0OiA4
MHB4OwogICAgICAgICBwYWRkaW5nLWxlZnQ6NXB4OwotICAgICAgICBwYWRkaW5nLXJpZ2h0OjVw
eDsKLSAgICAgICAgcGFkZGluZy1ib3R0b206NXB4OwotICAgICAgICBtYXJnaW4tbGVmdDogNTBw
eDsKLSAgICAgICAgbWFyZ2luLXRvcDogNTBweDsKKyAgICAgICAgcGFkZGluZy1yaWdodDoxMHB4
OworICAgICAgICBwYWRkaW5nLWJvdHRvbToxMHB4OwogICAgIH0KICAgICAKICAgICBwLmZsb3cx
IHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9mbG9hdC1wdXNoZWQtd2lk
dGgtY2hhbmdlLTIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9mbG9hdC1wdXNoZWQt
d2lkdGgtY2hhbmdlLTIuaHRtbAppbmRleCA0YjU2ZjA2Mzk2YTkwYjc1NTRlNThiYTBlMmNkYzdj
NzZjMzg3NDRmLi45OTZiNjBiNTAyM2ZlOTNiNjk3MjU2MDA3Y2FiZjAxYjczMzMyMWU5IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZmxvYXQtcHVzaGVkLXdpZHRoLWNoYW5n
ZS0yLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2Zsb2F0LXB1c2hlZC13aWR0
aC1jaGFuZ2UtMi5odG1sCkBAIC0zNCwxNSArMzQsMTEgQEAKICAgICAjcmVnaW9uMiB7CiAgICAg
ICAgIHdpZHRoOiA0MDBweDsKICAgICAgICAgaGVpZ2h0OiA5MHB4OwotICAgICAgICBtYXJnaW4t
bGVmdDogMTAwcHg7Ci0gICAgICAgIG1hcmdpbi10b3A6IDUwcHg7CiAgICAgfQogICAgIAogICAg
ICNyZWdpb24zIHsKICAgICAgICAgd2lkdGg6IDQwMHB4OwogICAgICAgICBoZWlnaHQ6IDkwcHg7
Ci0gICAgICAgIG1hcmdpbi1sZWZ0OiA1MHB4OwotICAgICAgICBtYXJnaW4tdG9wOiA1MHB4Owog
ICAgIH0KIAogICAgICNmbG9hdGNvbnRhaW5lciB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3JlZ2lvbnMvZmxvYXQtcHVzaGVkLXdpZHRoLWNoYW5nZS1leHBlY3RlZC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9yZWdpb25zL2Zsb2F0LXB1c2hlZC13aWR0aC1jaGFuZ2UtZXhwZWN0ZWQu
aHRtbAppbmRleCA3ODA1M2UzZmJiNTc4MDE5MGRhNjg3MGY3Mjk4YTU5NWMxM2ZmY2YzLi5jZmEy
NzYwZDY0ZjkwODViNTBmYTI5NmNjZDY5NjRjNGQ0ZTExMzMzIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L3JlZ2lvbnMvZmxvYXQtcHVzaGVkLXdpZHRoLWNoYW5nZS1leHBlY3RlZC5odG1s
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9mbG9hdC1wdXNoZWQtd2lkdGgtY2hhbmdl
LWV4cGVjdGVkLmh0bWwKQEAgLTEsMjEgKzEsMjAgQEAKIDwhZG9jdHlwZSBodG1sPgogCiAgPHN0
eWxlPgotCi0gICAgI2NvbnRlbnQgewotICAgICAgICBwYWRkaW5nOiA1cHg7Ci0gICAgICAgIGJv
cmRlcjogMXB4IHNvbGlkIHJlZDsKLSAgICB9CiAgICAKICAgICAjZmxvYXQxIHsKICAgICAgICAg
ZmxvYXQ6IGxlZnQ7CisgICAgICAgIHBvc2l0aW9uOmFic29sdXRlOwogICAgICAgICB3aWR0aDog
MTUwcHg7Ci0gICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgIGhlaWdodDogMTAycHg7CiAg
ICAgICAgIGJhY2tncm91bmQtY29sb3I6Z3JlZW47CisgICAgICAgIHotaW5kZXg6LTE7CiAgICAg
fQogICAgIAogICAgICNmbG9hdDIgewotICAgICAgICBmbG9hdDpyaWdodDsKKyAgICAgICAgbWFy
Z2luLXRvcDogMzBweDsKKyAgICAgICAgbWFyZ2luLWxlZnQ6IC0zMHB4OworICAgICAgICBmbG9h
dDpsZWZ0OwogICAgICAgICB3aWR0aDoyMDBweDsKICAgICAgICAgaGVpZ2h0OjMwcHg7CiAgICAg
ICAgIGJhY2tncm91bmQtY29sb3I6b3JhbmdlCkBAIC0yMywyMSArMjIsMzAgQEAKIAogICAgICNy
ZWdpb24xLCAjcmVnaW9uMiwgI3JlZ2lvbjMgewogICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBi
bGFjazsKLSAgICAgICAgbWFyZ2luOiAxMHB4OwogICAgIH0KICAKICAgICAjcmVnaW9uMSB7Ci0g
ICAgICAgIG1hcmdpbi1sZWZ0OiAzMHB4OwotICAgICAgICB3aWR0aDogMTgwcHg7Ci0gICAgICAg
IGhlaWdodDogOTBweDsKKyAgICAgICAgd2lkdGg6IDE3MHB4OworICAgICAgICBoZWlnaHQ6IDgw
cHg7CisgICAgICAgIHBhZGRpbmc6IDVweDsKICAgICB9CiAgICAgCiAgICAgI3JlZ2lvbjIgewot
ICAgICAgICBtYXJnaW4tdG9wOiA4MHB4OwotICAgICAgICB3aWR0aDogNDAwcHg7Ci0gICAgICAg
IGhlaWdodDogOTBweDsKKyAgICAgICAgd2lkdGg6IDM5MHB4OworICAgICAgICBoZWlnaHQ6IDg5
cHg7CisgICAgICAgIHBhZGRpbmctdG9wOjFweDsKKyAgICAgICAgcGFkZGluZy1sZWZ0OjVweDsK
KyAgICAgICAgcGFkZGluZy1yaWdodDo1cHg7CiAgICAgfQotCisgICAgCisgICAgI3JlZ2lvbjMg
eworICAgICAgICB3aWR0aDogMzg1cHg7CisgICAgICAgIGhlaWdodDogODBweDsKKyAgICAgICAg
cGFkZGluZy1sZWZ0OjVweDsKKyAgICAgICAgcGFkZGluZy1yaWdodDoxMHB4OworICAgICAgICBw
YWRkaW5nLWJvdHRvbToxMHB4OworICAgIH0KKwkKICAgIAlwLmZsb3cxIHsKIAkJY2xlYXI6Ym90
aDsKIAkJbWFyZ2luLWJvdHRvbTogMHB4OwpAQCAtNDksMTQgKzU3LDE4IEBACiAJCiA8L3N0eWxl
PgogCi08cD5JbiB0aGUgZXhhbXBsZSBiZWxvdywgdGhlIGdyZWVuIGZsb2F0IHNob3VsZCBiZSBh
dCB0aGUgdG9wIG9mIHRoZSBmaXJzdCByZWdpb24gYW5kIG9uIHRoZSBsZWZ0LiBJdCBzaG91bGQg
b3ZlcmZsb3cgdGhlIGZpcnN0IHJlZ2lvbi4KLVRoZSBvcmFuZ2UgZmxvYXQgc2hvdWxkIGJlIHJp
Z2h0IGFsaWduZWQgdW5kZXIgdGhlIGdyZWVuIGZsb2F0IGFuZCBzaG91bGQgb3ZlcmZsb3cgdGhl
IGZpcnN0IHJlZ2lvbiBiZWNhdXNlIHRoZWlyIGNvbnRhaW5pbmcgYmxvY2sgKHJlZCBib3JkZXIp
IGlzIGZsb3dlZCBvbmx5IGluIHRoZSBmaXJzdCByZWdpb24uPC9wPgotPHA+Tm8gY29udGVudCBz
aG91bGQgYmUgZGlzcGxheWVkIGluIHRoZSBzZWNvbmQgcmVnaW9uLjwvcD4KKzxwPkluIHRoZSBl
eGFtcGxlIGJlbG93LCB0aGUgZ3JlZW4gZmxvYXQgc2hvdWxkIGJlIGF0IHRoZSB0b3Agb2YgdGhl
IGZpcnN0IHJlZ2lvbiBhbmQgb24gdGhlIGxlZnQuIEl0IHNob3VsZCBzcGlsbCBpbnRvIHJlZ2lv
biB0d28uCitUaGUgb3JhbmdlIGZsb2F0IHNob3VsZCBiZSByaWdodCBhbGlnbmVkIHVuZGVyIHRo
ZSBncmVlbiBmbG9hdCBiZWNhdXNlIHRoZWlyIGNvbnRhaW5pbmcgYmxvY2sgaXMgZmxvd24gb25s
eSBpbiB0aGUgZmlyc3QgcmVnaW9uPC9wPgogCiA8ZGl2IGlkPSJyZWdpb24xIj4KLSAgICA8ZGl2
IGlkPSJjb250ZW50Ij4KLSAgICAgICAgPGltZyBpZD0iZmxvYXQxIj48aW1nIGlkPSJmbG9hdDIi
PgotICAgIDwvZGl2PgorICAgICA8cD48aW1nIGlkPSJmbG9hdDEiPjwvcD4KKzwvZGl2PgorPGRp
diBpZD0icmVnaW9uMiI+CisgICAgPGltZyBpZD0iZmxvYXQyIj4KKyAgICA8cCBjbGFzcz0iZmxv
dzEiPlRoaXMgbGluZSBvZiB0ZXh0IHNob3VsZCBub3QgZ2V0IG91dCBvZiB0aGUgcmVnaW9uLjwv
cD4KKzwvZGl2PgorPGRpdiBpZD0icmVnaW9uMyI+Cis8cCBjbGFzcz0iZmxvdzIiPlRoaXMgbGlu
ZSBvZiB0ZXh0IHNob3VsZCBub3QgZ2V0IG91dCBvZiB0aGUgcmVnaW9uLiBUaGlzIGxpbmUgb2Yg
dGV4dCBzaG91bGQgbm90IGdldCBvdXQgb2YgdGhlIHJlZ2lvbi48L3A+Cis8cD5UaGlzIGxpbmUg
b2YgdGV4dCBzaG91bGQgbm90IGdldCBvdXQgb2YgdGhlIHJlZ2lvbi48L3A+CiA8L2Rpdj4KLTxk
aXYgaWQ9InJlZ2lvbjIiPjwvZGl2PgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Jl
Z2lvbnMvZmxvYXQtcHVzaGVkLXdpZHRoLWNoYW5nZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9y
ZWdpb25zL2Zsb2F0LXB1c2hlZC13aWR0aC1jaGFuZ2UuaHRtbAppbmRleCA3YmNmZTgxNWZjOGIw
NGU0MzY5OGJkNjQ3MTc5YjA2YWFlMWNjNzkzLi44OTE2ZGYxNjViZWQ2NmNhYmMwMWYxZGEyN2Vm
ZTU4OTU4NGQzZWQ3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZmxvYXQt
cHVzaGVkLXdpZHRoLWNoYW5nZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9m
bG9hdC1wdXNoZWQtd2lkdGgtY2hhbmdlLmh0bWwKQEAgLTUsNyArNSw2IEBACiAgICAgI2NvbnRl
bnQgewogICAgICAgICAtd2Via2l0LWZsb3ctaW50bzogZmxvdzE7CiAgICAgICAgIHBhZGRpbmc6
IDVweDsKLSAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmVkOwogICAgIH0KICAgCiAgICAgI2Zs
b2F0MSB7CkBAIC0xOSwzNiArMTgsNDEgQEAKICAgICAgICAgZmxvYXQ6cmlnaHQ7CiAgICAgICAg
IHdpZHRoOjIwMHB4OwogICAgICAgICBoZWlnaHQ6MzBweDsKLSAgICAgICAgYmFja2dyb3VuZC1j
b2xvcjpvcmFuZ2U7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6b3JhbmdlCiAgICAgfQogCiAg
ICAgI3JlZ2lvbjEsICNyZWdpb24yLCAjcmVnaW9uMyB7Ci0gICAgICAgIG1hcmdpbjogMTBweDsK
ICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CiAgICAgICAgIC13ZWJraXQtZmxvdy1m
cm9tOiBmbG93MTsKICAgICB9CiAKICAgICAjcmVnaW9uMSB7Ci0gICAgICAgIG1hcmdpbi1sZWZ0
OiAzMHB4OwogICAgICAgICB3aWR0aDogMTgwcHg7CiAgICAgICAgIGhlaWdodDogOTBweDsKICAg
ICB9CiAgICAgCiAgICAgI3JlZ2lvbjIgewotICAgICAgICBtYXJnaW4tdG9wOiA4MHB4OworICAg
ICAgICB3aWR0aDogNDAwcHg7CisgICAgICAgIGhlaWdodDogOTBweDsKKyAgICB9CisgICAgCisg
ICAgI3JlZ2lvbjMgewogICAgICAgICB3aWR0aDogNDAwcHg7CiAgICAgICAgIGhlaWdodDogOTBw
eDsKICAgICB9CiA8L3N0eWxlPgogCi08cD5JbiB0aGUgZXhhbXBsZSBiZWxvdywgdGhlIGdyZWVu
IGZsb2F0IHNob3VsZCBiZSBhdCB0aGUgdG9wIG9mIHRoZSBmaXJzdCByZWdpb24gYW5kIG9uIHRo
ZSBsZWZ0LiBJdCBzaG91bGQgb3ZlcmZsb3cgdGhlIGZpcnN0IHJlZ2lvbi4KLVRoZSBvcmFuZ2Ug
ZmxvYXQgc2hvdWxkIGJlIHJpZ2h0IGFsaWduZWQgdW5kZXIgdGhlIGdyZWVuIGZsb2F0IGFuZCBz
aG91bGQgb3ZlcmZsb3cgdGhlIGZpcnN0IHJlZ2lvbiBiZWNhdXNlIHRoZWlyIGNvbnRhaW5pbmcg
YmxvY2sgKHJlZCBib3JkZXIpIGlzIGZsb3dlZCBvbmx5IGluIHRoZSBmaXJzdCByZWdpb24uPC9w
PgotPHA+Tm8gY29udGVudCBzaG91bGQgYmUgZGlzcGxheWVkIGluIHRoZSBzZWNvbmQgcmVnaW9u
LjwvcD4KKzxwPkluIHRoZSBleGFtcGxlIGJlbG93LCB0aGUgZ3JlZW4gZmxvYXQgc2hvdWxkIGJl
IGF0IHRoZSB0b3Agb2YgdGhlIGZpcnN0IHJlZ2lvbiBhbmQgb24gdGhlIGxlZnQuIEl0IHNob3Vs
ZCBzcGlsbCBpbnRvIHJlZ2lvbiB0d28uCitUaGUgb3JhbmdlIGZsb2F0IHNob3VsZCBiZSByaWdo
dCBhbGlnbmVkIHVuZGVyIHRoZSBncmVlbiBmbG9hdCBiZWNhdXNlIHRoZWlyIGNvbnRhaW5pbmcg
YmxvY2sgaXMgZmxvd24gb25seSBpbiB0aGUgZmlyc3QgcmVnaW9uPC9wPgogCiA8ZGl2IGlkPSJj
b250ZW50Ij4KICAgICA8ZGl2IGlkPSJmaXJzdC1ib3giPgogICAgICAgICA8ZGl2IGlkPSJzZWNv
bmQtYm94Ij4KLSAgICAgICAgICAgIDxpbWcgaWQ9ImZsb2F0MSI+PGltZyBpZD0iZmxvYXQyIj4K
KyAgICAgICAgICAgIDxwPjxpbWcgaWQ9ImZsb2F0MSI+PGltZyBpZD0iZmxvYXQyIj48cC8+Cisg
ICAgICAgICAgICA8cD5UaGlzIGxpbmUgb2YgdGV4dCBzaG91bGQgbm90IGdldCBvdXQgb2YgdGhl
IHJlZ2lvbi48L3A+CisJICAgIDxwPlRoaXMgbGluZSBvZiB0ZXh0IHNob3VsZCBub3QgZ2V0IG91
dCBvZiB0aGUgcmVnaW9uLiBUaGlzIGxpbmUgb2YgdGV4dCBzaG91bGQgbm90IGdldCBvdXQgb2Yg
dGhlIHJlZ2lvbi48L3A+CisgICAgICAgICAgICA8cD5UaGlzIGxpbmUgb2YgdGV4dCBzaG91bGQg
bm90IGdldCBvdXQgb2YgdGhlIHJlZ2lvbi48L3A+CisgICAgICAgICAgICAKICAgICAgICAgPC9k
aXY+CiAgICAgPC9kaXY+CiA8L2Rpdj4KQEAgLTU2LDQgKzYwLDUgQEAgVGhlIG9yYW5nZSBmbG9h
dCBzaG91bGQgYmUgcmlnaHQgYWxpZ25lZCB1bmRlciB0aGUgZ3JlZW4gZmxvYXQgYW5kIHNob3Vs
ZCBvdmVyZmwKIDxkaXYgaWQ9ImNvbnRhaW5lciI+CiAgICAgPGRpdiBpZD0icmVnaW9uMSI+PC9k
aXY+CiAgICAgPGRpdiBpZD0icmVnaW9uMiI+PC9kaXY+CisgICAgPGRpdiBpZD0icmVnaW9uMyI+
PC9kaXY+CiA8L2Rpdj4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvbGF5ZXJzL2R5bmFtaWMtbGF5ZXItYWRkZWQtd2l0aC1u
by1sYXlvdXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2xheWVycy9k
eW5hbWljLWxheWVyLWFkZGVkLXdpdGgtbm8tbGF5b3V0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNTMyZWUyZmYxNzJkZjhlODcyMzhhNDE3NGJkOWFiYWRjNDBk
YzM3Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L3JlZ2lvbnMvbGF5ZXJzL2R5bmFtaWMtbGF5ZXItYWRkZWQtd2l0aC1uby1s
YXlvdXQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
Ci1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MAotICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAs
MCkgc2l6ZSA4MDB4NjAKLSAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHgw
Ci1sYXllciBhdCAoOCw4KSBzaXplIDUyeDUyCi0gIFJlbmRlclJlZ2lvbiB7RElWfSBhdCAoMCww
KSBzaXplIDUyeDUyIFtib3JkZXI6ICgxcHggc29saWQgIzAwMDAwMCldCi1sYXllciBhdCAoNjAs
OCkgc2l6ZSA1Mng1MgotICBSZW5kZXJSZWdpb24ge0RJVn0gYXQgKDUyLDApIHNpemUgNTJ4NTIg
W2JvcmRlcjogKDFweCBzb2xpZCAjMDAwMDAwKV0KLWxheWVyIGF0ICgxMTIsOCkgc2l6ZSA1Mng1
MgotICBSZW5kZXJSZWdpb24ge0RJVn0gYXQgKDEwNCwwKSBzaXplIDUyeDUyIFtib3JkZXI6ICgx
cHggc29saWQgIzAwMDAwMCldCi1GbG93IFRocmVhZHMKLSAgVGhyZWFkIHdpdGggZmxvdy1uYW1l
ICdhcnRpY2xlJwotICAgIGxheWVyIGF0ICgwLDApIHNpemUgNTB4MTUwCi0gICAgICBSZW5kZXJO
YW1lZEZsb3dUaHJlYWQgYXQgKDAsMCkgc2l6ZSA1MHgxNTAKLSAgICAgICAgUmVuZGVyQmxvY2sg
e0RJVn0gYXQgKDAsMCkgc2l6ZSA1MHgxNTAKLSAgICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBh
dCAoMCwwKSBzaXplIDUweDUwIFtiZ2NvbG9yPSMwMDgwMDBdCi0gICAgICAgICAgUmVuZGVyQmxv
Y2sge0RJVn0gYXQgKDAsMTAwKSBzaXplIDUweDUwIFtiZ2NvbG9yPSNGRkE1MDBdCi0gICAgbGF5
ZXIgYXQgKDAsNTApIHNpemUgNTB4NTAKLSAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDUw
KSBzaXplIDUweDUwIFtiZ2NvbG9yPSMwMDAwRkZdCi0gIFJlZ2lvbnMgZm9yIGZsb3cgJ2FydGlj
bGUnCi0gICAgUmVuZGVyUmVnaW9uIHtESVZ9IGhhc0xheWVyCi0gICAgUmVuZGVyUmVnaW9uIHtE
SVZ9ICNzaG91bGQtaGF2ZS1sYXllciBoYXNMYXllcgotICAgIFJlbmRlclJlZ2lvbiB7RElWfSBo
YXNMYXllcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2xheWVycy9keW5h
bWljLWxheWVyLXJlbW92ZWQtd2l0aC1uby1sYXlvdXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9yZWdpb25zL2xheWVycy9keW5hbWljLWxheWVyLXJlbW92ZWQtd2l0aC1uby1sYXlv
dXQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ODMzNmY2NmI3
MzY4Mzg1N2QzZTVhYWM3ZGIwNjBkODFjZTEwYmM4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9sYXllcnMvZHlu
YW1pYy1sYXllci1yZW1vdmVkLXdpdGgtbm8tbGF5b3V0LWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDI0ICswLDAgQEAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBSZW5k
ZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAK
LSAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwCi0gICAgUmVuZGVyQm9k
eSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4MAotbGF5ZXIgYXQgKDgsOCkgc2l6ZSA1Mng1Mgot
ICBSZW5kZXJSZWdpb24ge0RJVn0gYXQgKDAsMCkgc2l6ZSA1Mng1MiBbYm9yZGVyOiAoMXB4IHNv
bGlkICMwMDAwMDApXQotbGF5ZXIgYXQgKDYwLDgpIHNpemUgNTJ4NTIKLSAgUmVuZGVyUmVnaW9u
IHtESVZ9IGF0ICg1MiwwKSBzaXplIDUyeDUyIFtib3JkZXI6ICgxcHggc29saWQgIzAwMDAwMCld
Ci1sYXllciBhdCAoMTEyLDgpIHNpemUgNTJ4NTIKLSAgUmVuZGVyUmVnaW9uIHtESVZ9IGF0ICgx
MDQsMCkgc2l6ZSA1Mng1MiBbYm9yZGVyOiAoMXB4IHNvbGlkICMwMDAwMDApXQotRmxvdyBUaHJl
YWRzCi0gIFRocmVhZCB3aXRoIGZsb3ctbmFtZSAnYXJ0aWNsZScKLSAgICBsYXllciBhdCAoMCww
KSBzaXplIDUweDE1MAotICAgICAgUmVuZGVyTmFtZWRGbG93VGhyZWFkIGF0ICgwLDApIHNpemUg
NTB4MTUwCi0gICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgNTB4MTUwCi0g
ICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNTApIHNpemUgNTB4NTAgW2JnY29sb3I9
IzAwMDBGRl0KLSAgICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwxMDApIHNpemUgNTB4
NTAgW2JnY29sb3I9I0ZGQTUwMF0KLSAgICBsYXllciBhdCAoMCwwKSBzaXplIDUweDUwCi0gICAg
ICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDUweDUwIFtiZ2NvbG9yPSMwMDgwMDBd
Ci0gIFJlZ2lvbnMgZm9yIGZsb3cgJ2FydGljbGUnCi0gICAgUmVuZGVyUmVnaW9uIHtESVZ9ICNz
aG91bGQtaGF2ZS1sYXllciBoYXNMYXllcgotICAgIFJlbmRlclJlZ2lvbiB7RElWfSBoYXNMYXll
cgotICAgIFJlbmRlclJlZ2lvbiB7RElWfSBoYXNMYXllcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9yZWdpb25zL2xheWVycy9yZWdpb25zLXByb21vdGVkLXRvLWxheWVycy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvbGF5ZXJzL3JlZ2lvbnMtcHJvbW90ZWQt
dG8tbGF5ZXJzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTEw
MzI4OWJiMmFjNzBiOWJlOGFkOWVjYTU1YTdhOTNjMzdlOGUxNC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvbGF5
ZXJzL3JlZ2lvbnMtcHJvbW90ZWQtdG8tbGF5ZXJzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDI0ICswLDAgQEAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBSZW5kZXJW
aWV3IGF0ICgwLDApIHNpemUgODAweDYwMAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAKLSAg
UmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwCi0gICAgUmVuZGVyQm9keSB7
Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4MAotbGF5ZXIgYXQgKDgsOCkgc2l6ZSA1Mng1MgotICBS
ZW5kZXJSZWdpb24ge0RJVn0gYXQgKDAsMCkgc2l6ZSA1Mng1MiBbYm9yZGVyOiAoMXB4IHNvbGlk
ICMwMDAwMDApXQotbGF5ZXIgYXQgKDYwLDgpIHNpemUgNTJ4NTIKLSAgUmVuZGVyUmVnaW9uIHtE
SVZ9IGF0ICg1MiwwKSBzaXplIDUyeDUyIFtib3JkZXI6ICgxcHggc29saWQgIzAwMDAwMCldCi1s
YXllciBhdCAoMTEyLDgpIHNpemUgNTJ4NTIKLSAgUmVuZGVyUmVnaW9uIHtESVZ9IGF0ICgxMDQs
MCkgc2l6ZSA1Mng1MiBbYm9yZGVyOiAoMXB4IHNvbGlkICMwMDAwMDApXQotRmxvdyBUaHJlYWRz
Ci0gIFRocmVhZCB3aXRoIGZsb3ctbmFtZSAnYXJ0aWNsZScKLSAgICBsYXllciBhdCAoMCwwKSBz
aXplIDUweDE1MAotICAgICAgUmVuZGVyTmFtZWRGbG93VGhyZWFkIGF0ICgwLDApIHNpemUgNTB4
MTUwCi0gICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgNTB4MTUwCi0gICAg
ICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSA1MHg1MCBbYmdjb2xvcj0jMDA4
MDAwXQotICAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDEwMCkgc2l6ZSA1MHg1MCBb
Ymdjb2xvcj0jRkZBNTAwXQotICAgIGxheWVyIGF0ICgwLDUwKSBzaXplIDUweDUwCi0gICAgICBS
ZW5kZXJCbG9jayAocmVsYXRpdmUgcG9zaXRpb25lZCkge0RJVn0gYXQgKDAsNTApIHNpemUgNTB4
NTAgW2JnY29sb3I9IzAwMDBGRl0KLSAgUmVnaW9ucyBmb3IgZmxvdyAnYXJ0aWNsZScKLSAgICBS
ZW5kZXJSZWdpb24ge0RJVn0gaGFzTGF5ZXIKLSAgICBSZW5kZXJSZWdpb24ge0RJVn0gI3Nob3Vs
ZC1oYXZlLWxheWVyIGhhc0xheWVyCi0gICAgUmVuZGVyUmVnaW9uIHtESVZ9IGhhc0xheWVyCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvbGF5ZXJzL3JlZ2lvbnMtcHJvbW90
ZWQtdG8tbGF5ZXJzLWhvcml6b250YWwtYnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9yZWdpb25zL2xheWVycy9yZWdpb25zLXByb21vdGVkLXRvLWxheWVycy1ob3Jpem9udGFsLWJ0
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGIyYTI1MDU1OGVm
N2IyMGYyNTVmMWZjMTA4Yjg0ODY1MDk3MWMyYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvbGF5ZXJzL3JlZ2lv
bnMtcHJvbW90ZWQtdG8tbGF5ZXJzLWhvcml6b250YWwtYnQtZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMjQgKzAsMCBAQAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJl
bmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi1sYXllciBhdCAoMCw1NDApIHNpemUgODAw
eDYwCi0gIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MAotICAgIFJlbmRl
ckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDAKLWxheWVyIGF0ICg4LDU0MCkgc2l6ZSA1
Mng1MgotICBSZW5kZXJSZWdpb24ge0RJVn0gYXQgKDAsMCkgc2l6ZSA1Mng1MiBbYm9yZGVyOiAo
MXB4IHNvbGlkICMwMDAwMDApXQotbGF5ZXIgYXQgKDYwLDU0MCkgc2l6ZSA1Mng1MgotICBSZW5k
ZXJSZWdpb24ge0RJVn0gYXQgKDUyLDApIHNpemUgNTJ4NTIgW2JvcmRlcjogKDFweCBzb2xpZCAj
MDAwMDAwKV0KLWxheWVyIGF0ICgxMTIsNTQwKSBzaXplIDUyeDUyCi0gIFJlbmRlclJlZ2lvbiB7
RElWfSBhdCAoMTA0LDApIHNpemUgNTJ4NTIgW2JvcmRlcjogKDFweCBzb2xpZCAjMDAwMDAwKV0K
LUZsb3cgVGhyZWFkcwotICBUaHJlYWQgd2l0aCBmbG93LW5hbWUgJ2FydGljbGUnCi0gICAgbGF5
ZXIgYXQgKDAsNDUwKSBzaXplIDUweDE1MAotICAgICAgUmVuZGVyTmFtZWRGbG93VGhyZWFkIGF0
ICgwLDApIHNpemUgNTB4MTUwCi0gICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNp
emUgNTB4MTUwCi0gICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSA1MHg1
MCBbYmdjb2xvcj0jMDA4MDAwXQotICAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDEw
MCkgc2l6ZSA1MHg1MCBbYmdjb2xvcj0jRkZBNTAwXQotICAgIGxheWVyIGF0ICgwLDUwMCkgc2l6
ZSA1MHg1MAotICAgICAgUmVuZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHtESVZ9IGF0
ICgwLDUwKSBzaXplIDUweDUwIFtiZ2NvbG9yPSMwMDAwRkZdCi0gIFJlZ2lvbnMgZm9yIGZsb3cg
J2FydGljbGUnCi0gICAgUmVuZGVyUmVnaW9uIHtESVZ9IGhhc0xheWVyCi0gICAgUmVuZGVyUmVn
aW9uIHtESVZ9ICNzaG91bGQtaGF2ZS1sYXllciBoYXNMYXllcgotICAgIFJlbmRlclJlZ2lvbiB7
RElWfSBoYXNMYXllcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2xheWVy
cy9yZWdpb25zLXByb21vdGVkLXRvLWxheWVycy12ZXJ0aWNhbC1sci1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvbGF5ZXJzL3JlZ2lvbnMtcHJvbW90ZWQtdG8tbGF5ZXJz
LXZlcnRpY2FsLWxyLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MWRhNTQ5ZjhlNDc4NzYyMTUwNzQ2ZWExYjZmMmFjMDA4NzJlM2Q5Ny4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMv
bGF5ZXJzL3JlZ2lvbnMtcHJvbW90ZWQtdG8tbGF5ZXJzLXZlcnRpY2FsLWxyLWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDI0ICswLDAgQEAKLWxheWVyIGF0ICgwLDApIHNpemUgODAw
eDYwMAotICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAotbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA2MHg2MDAKLSAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNjB4NjAwCi0g
ICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAweDU4NAotbGF5ZXIgYXQgKDgsOCkg
c2l6ZSA1Mng1MgotICBSZW5kZXJSZWdpb24ge0RJVn0gYXQgKDAsMCkgc2l6ZSA1Mng1MiBbYm9y
ZGVyOiAoMXB4IHNvbGlkICMwMDAwMDApXQotbGF5ZXIgYXQgKDgsNjApIHNpemUgNTJ4NTIKLSAg
UmVuZGVyUmVnaW9uIHtESVZ9IGF0ICgwLDUyKSBzaXplIDUyeDUyIFtib3JkZXI6ICgxcHggc29s
aWQgIzAwMDAwMCldCi1sYXllciBhdCAoOCwxMTIpIHNpemUgNTJ4NTIKLSAgUmVuZGVyUmVnaW9u
IHtESVZ9IGF0ICgwLDEwNCkgc2l6ZSA1Mng1MiBbYm9yZGVyOiAoMXB4IHNvbGlkICMwMDAwMDAp
XQotRmxvdyBUaHJlYWRzCi0gIFRocmVhZCB3aXRoIGZsb3ctbmFtZSAnYXJ0aWNsZScKLSAgICBs
YXllciBhdCAoMCwwKSBzaXplIDE1MHg1MAotICAgICAgUmVuZGVyTmFtZWRGbG93VGhyZWFkIGF0
ICgwLDApIHNpemUgMTUweDUwCi0gICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNp
emUgMTUweDUwCi0gICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSA1MHg1
MCBbYmdjb2xvcj0jMDA4MDAwXQotICAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgxMDAs
MCkgc2l6ZSA1MHg1MCBbYmdjb2xvcj0jRkZBNTAwXQotICAgIGxheWVyIGF0ICg1MCwwKSBzaXpl
IDUweDUwCi0gICAgICBSZW5kZXJCbG9jayAocmVsYXRpdmUgcG9zaXRpb25lZCkge0RJVn0gYXQg
KDUwLDApIHNpemUgNTB4NTAgW2JnY29sb3I9IzAwMDBGRl0KLSAgUmVnaW9ucyBmb3IgZmxvdyAn
YXJ0aWNsZScKLSAgICBSZW5kZXJSZWdpb24ge0RJVn0gaGFzTGF5ZXIKLSAgICBSZW5kZXJSZWdp
b24ge0RJVn0gI3Nob3VsZC1oYXZlLWxheWVyIGhhc0xheWVyCi0gICAgUmVuZGVyUmVnaW9uIHtE
SVZ9IGhhc0xheWVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvbGF5ZXJz
L3JlZ2lvbnMtcHJvbW90ZWQtdG8tbGF5ZXJzLXZlcnRpY2FsLXJsLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9sYXllcnMvcmVnaW9ucy1wcm9tb3RlZC10by1sYXllcnMt
dmVydGljYWwtcmwtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAx
YzhkY2EwNmY5ODVjMWQ5YjI1NTRhNmJkNDgxNTQ3NDA1M2JlMWJiLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9s
YXllcnMvcmVnaW9ucy1wcm9tb3RlZC10by1sYXllcnMtdmVydGljYWwtcmwtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4
NjAwCi0gIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi1sYXllciBhdCAoNzQwLDAp
IHNpemUgNjB4NjAwCi0gIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDYweDYwMAot
ICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMHg1ODQKLWxheWVyIGF0ICg3NDAs
OCkgc2l6ZSA1Mng1MgotICBSZW5kZXJSZWdpb24ge0RJVn0gYXQgKDAsMCkgc2l6ZSA1Mng1MiBb
Ym9yZGVyOiAoMXB4IHNvbGlkICMwMDAwMDApXQotbGF5ZXIgYXQgKDc0MCw2MCkgc2l6ZSA1Mng1
MgotICBSZW5kZXJSZWdpb24ge0RJVn0gYXQgKDAsNTIpIHNpemUgNTJ4NTIgW2JvcmRlcjogKDFw
eCBzb2xpZCAjMDAwMDAwKV0KLWxheWVyIGF0ICg3NDAsMTEyKSBzaXplIDUyeDUyCi0gIFJlbmRl
clJlZ2lvbiB7RElWfSBhdCAoMCwxMDQpIHNpemUgNTJ4NTIgW2JvcmRlcjogKDFweCBzb2xpZCAj
MDAwMDAwKV0KLUZsb3cgVGhyZWFkcwotICBUaHJlYWQgd2l0aCBmbG93LW5hbWUgJ2FydGljbGUn
Ci0gICAgbGF5ZXIgYXQgKDY1MCwwKSBzaXplIDE1MHg1MAotICAgICAgUmVuZGVyTmFtZWRGbG93
VGhyZWFkIGF0ICgwLDApIHNpemUgMTUweDUwCi0gICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0
ICgwLDApIHNpemUgMTUweDUwCi0gICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkg
c2l6ZSA1MHg1MCBbYmdjb2xvcj0jMDA4MDAwXQotICAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9
IGF0ICgxMDAsMCkgc2l6ZSA1MHg1MCBbYmdjb2xvcj0jRkZBNTAwXQotICAgIGxheWVyIGF0ICg3
MDAsMCkgc2l6ZSA1MHg1MAotICAgICAgUmVuZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQp
IHtESVZ9IGF0ICg1MCwwKSBzaXplIDUweDUwIFtiZ2NvbG9yPSMwMDAwRkZdCi0gIFJlZ2lvbnMg
Zm9yIGZsb3cgJ2FydGljbGUnCi0gICAgUmVuZGVyUmVnaW9uIHtESVZ9IGhhc0xheWVyCi0gICAg
UmVuZGVyUmVnaW9uIHtESVZ9ICNzaG91bGQtaGF2ZS1sYXllciBoYXNMYXllcgotICAgIFJlbmRl
clJlZ2lvbiB7RElWfSBoYXNMYXllcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdp
b25zL291dGxpbmUtc2lkZXMtaW4tcmVnaW9uLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L3JlZ2lvbnMvb3V0bGluZS1zaWRlcy1pbi1yZWdpb24tZXhwZWN0ZWQuaHRtbAppbmRleCBj
NDVkN2RiM2RkNDFmMDE0MTdmNTBiZTYyNDE2ZjQwYzk0NmI0NzgzLi5mNzJhMTBlNGQwNTM0ODk3
ODc2MmRmNDdiMTliNGIzNmRjYjVkOGMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Jl
Z2lvbnMvb3V0bGluZS1zaWRlcy1pbi1yZWdpb24tZXhwZWN0ZWQuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3JlZ2lvbnMvb3V0bGluZS1zaWRlcy1pbi1yZWdpb24tZXhwZWN0ZWQuaHRtbApA
QCAtMSwyNCArMSwxNyBAQAogPCEtLSB0aGlzIHRlc3Qgc2hvdWxkIGRpc3BsYXkgdHdvIGlkZW50
aWNhbCB5ZWxsb3cgc3F1YXJlcyAtLT4KIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CiAJCi0JaDEg
eworCWgxewogCQlvdXRsaW5lOiA1cHggc29saWQgeWVsbG93OwotCQltYXJnaW4tdG9wOiAwcHg7
CiAJfQogCQotCWRpdiB7CisJZGl2ewogCQl3aWR0aDoyMDBweDsKLQkJaGVpZ2h0OjEwMHB4Owot
CQltYXJnaW4tYm90dG9tOiAyMHB4OworCQloZWlnaHQ6MjAwcHg7CQkJCiAJfQogPC9zdHlsZT4K
IDxib2R5PgotCTxkaXYgc3R5bGU9ImJvcmRlcjogMXB4IHNvbGlkIHJlZCI+Ci0JCTxkaXY+Ci0J
CQk8aDE+Jm5ic3A7PC9oMT4KLQkJPC9kaXY+Ci0JPC9kaXY+Ci0JPGRpdiBzdHlsZT0iYm9yZGVy
OiAxcHggc29saWQgcmVkOyBvdmVyZmxvdzogaGlkZGVuOyI+CisJPGRpdj4KIAkJPGRpdj4KIAkJ
CTxoMT4mbmJzcDs8L2gxPgogCQk8L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
cmVnaW9ucy9vdXRsaW5lLXNpZGVzLWluLXJlZ2lvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9y
ZWdpb25zL291dGxpbmUtc2lkZXMtaW4tcmVnaW9uLmh0bWwKaW5kZXggMWNjNjc3N2EzMTE3ZDI0
YTMzODAxYzAwYTJjZjE4YzcxMzNlZDdkYy4uMWMzNTkzZWEyM2E4M2I0MmI3OGVhZTBjNWI0OTkx
NDA2OWU4OTg3NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL291dGxpbmUt
c2lkZXMtaW4tcmVnaW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL291dGxp
bmUtc2lkZXMtaW4tcmVnaW9uLmh0bWwKQEAgLTEsNDcgKzEsMzIgQEAKIDwhLS0gdGhpcyB0ZXN0
IHNob3VsZCBkaXNwbGF5IHR3byBpZGVudGljYWwgeWVsbG93IHNxdWFyZXMgLS0+CiA8c3R5bGUg
dHlwZT0idGV4dC9jc3MiPgogCQotCWgxIHsKKwloMXsKIAkJb3V0bGluZTogNXB4IHNvbGlkIHll
bGxvdzsKKwl9CisJCisJI3NvdXJjZSA+IGgxIHsKIAkJbWFyZ2luLXRvcDogMDsKIAl9CiAJCiAJ
I3NvdXJjZXsKIAkJLXdlYmtpdC1mbG93LWludG86IGJvZHk7CiAJfQotCi0JI3NvdXJjZV9jbGlw
cGVkIHsKLQkJLXdlYmtpdC1mbG93LWludG86IGJvZHlfY2xpcHBlZDsKLQl9CiAJCiAJI3JlZ2lv
bnsKIAkJLXdlYmtpdC1mbG93LWZyb206IGJvZHk7Ci0JCWJvcmRlcjogMXB4IHNvbGlkIHJlZDsK
IAl9Ci0KLQkjcmVnaW9uX2NsaXBwZWQgewotCQktd2Via2l0LWZsb3ctZnJvbTogYm9keV9jbGlw
cGVkOwotCQlib3JkZXI6IDFweCBzb2xpZCByZWQ7Ci0JCW92ZXJmbG93OiBoaWRkZW47Ci0JfQot
CWRpdiB7CisJZGl2ewogCQl3aWR0aDoyMDBweDsKLQkJaGVpZ2h0OjEwMHB4OwotCQltYXJnaW4t
Ym90dG9tOiAyMHB4OworCQloZWlnaHQ6MjAwcHg7CQkJCiAJfQogPC9zdHlsZT4KIDxib2R5Pgot
CTxkaXYgaWQ9InNvdXJjZSIgY2xhc3M9InNvdXJjZSI+Ci0JCTxoMT4mbmJzcDs8L2gxPgotCTwv
ZGl2PgotCi0JPGRpdiBpZD0ic291cmNlX2NsaXBwZWQiIGNsYXNzPSJzb3VyY2UiPgorCTxkaXYg
aWQ9InNvdXJjZSI+CiAJCTxoMT4mbmJzcDs8L2gxPgogCTwvZGl2PgogCQogCTxkaXYgaWQ9InJl
Z2lvbiI+PC9kaXY+Ci0JPGRpdiBpZD0icmVnaW9uX2NsaXBwZWQiPjwvZGl2PgotCiAJPGRpdj4K
IAkJPGgxPiZuYnNwOzwvaDE+CiAJPC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3JlZ2lvbnMvb3ZlcmZsb3ctZmlyc3QtYW5kLWxhc3QtcmVnaW9ucy1leHBlY3RlZC5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL292ZXJmbG93LWZpcnN0LWFuZC1sYXN0LXJlZ2lvbnMt
ZXhwZWN0ZWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGNmYTU2NWU2Nzdi
MWY5NTQwNDM4ZjMwMmNiZDJkOTE5ZmFiNmRkNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvb3ZlcmZsb3ctZmly
c3QtYW5kLWxhc3QtcmVnaW9ucy1leHBlY3RlZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDAg
KzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbCBzdHlsZT0iZm9udDogMTZweC8xLjI1IG1v
bm9zcGFjZTsiPgotICAgIDxoZWFkPgotICAgICAgICA8c3R5bGU+Ci0gICAgICAgICAgICAub3Zl
cmZsb3cgeyBjb2xvcjogb3JhbmdlOyBwb3NpdGlvbjogYWJzb2x1dGU7IH0KLQotICAgICAgICAg
ICAgLnJlZ2lvbiB7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiA0MHB4OyBwb3NpdGlvbjogYWJzb2x1
dGU7IGJvcmRlci1zdHlsZTogc29saWQ7IGJvcmRlci13aWR0aDogNXB4OyB9Ci0gICAgICAgICAg
ICAjcmVnaW9uMSB7IHRvcDogMzYwcHg7IGxlZnQ6IDEwMHB4OyBib3JkZXItY29sb3I6IGdyZWVu
O30KLSAgICAgICAgICAgICNyZWdpb24yIHsgdG9wOiA0MTVweDsgbGVmdDogMTAwcHg7IGJvcmRl
ci1jb2xvcjogYmx1ZTt9Ci0gICAgICAgICAgICAjb3ZlcmZsb3cxXzEgeyB0b3A6IDMwNXB4OyBs
ZWZ0OiAxMDVweDsgfQotICAgICAgICAgICAgI292ZXJmbG93MV8yIHsgdG9wOiAzMjVweDsgbGVm
dDogMTA1cHg7IH0KLSAgICAgICAgICAgICNvdmVyZmxvdzJfMSB7IHRvcDogNDgwcHg7IGxlZnQ6
IDEwNXB4OyB9Ci0gICAgICAgICAgICAjb3ZlcmZsb3cyXzIgeyB0b3A6IDUwMHB4OyBsZWZ0OiAx
MDVweDsgfQotICAgICAgICAgICAgLnJlc3VsdCB7IGNvbG9yOiBncmVlbjsgZm9udC13ZWlnaHQ6
IGJvbGQ7IH0KLSAgICAgICAgPC9zdHlsZT4KLSAgICA8L2hlYWQ+Ci0gICAgPGJvZHk+Ci0gICAg
ICAgIDxwPlRlc3QgdGhhdCBvdmVyZmxvdyBjb250ZW50IGZvciB0aGUgZmlyc3QgYW5kIGxhc3Qg
cmVnaW9ucyBpbiB0aGUgY2hhaW4gaXMgY29ycmVjdGx5IGRpc3BsYXllZCBpbiBkaWZmZXJlbnQg
c2l0dWF0aW9ucy48L3A+Ci0gICAgICAgIDxwPk9uIHN1Y2Nlc3MsIHRoZSBmb2xsb3dpbmcgc2hv
dWxkIGJlIHRydWU6PC9wPgotICAgICAgICA8dWw+Ci0gICAgICAgICAgICA8bGk+Rm91ciA8c3Bh
biBzdHlsZT0iY29sb3I6IG9yYW5nZTsiPjxiPm9yYW5nZTwvYj48L3NwYW4+IG92ZXJmbG93IGxp
bmVzIHNob3VsZCBiZSB2aXNpYmxlIGFib3ZlIGFuZCBiZWxvdyB0aGUgPHNwYW4gc3R5bGU9ImNv
bG9yOiBibHVlOyI+PGI+Ymx1ZTwvYj48L3NwYW4+IHJlZ2lvbiAodGhlIDR0aCBsaW5lIG92ZXJm
bG93cyBpbnRvIGEgZGlmZmVyZW50IHRpbGUpPC9saT4KLSAgICAgICAgICAgIDxsaT5BbGwgPHNw
YW4gc3R5bGU9ImNvbG9yOiBvcmFuZ2U7Ij48Yj5vcmFuZ2U8L2I+PC9zcGFuPiBvdmVyZmxvdyBs
aW5lcyBzaG91bGQgYmUgc2VsZWN0YWJsZTwvbGk+Ci0gICAgICAgIDwvdWw+Ci0gICAgICAgIDxk
aXYgY2xhc3M9InJlc3VsdCI+MXN0IGF1dG9tYXRlZCBzZWxlY3Rpb24gdGVzdDogUEFTUzwvZGl2
PgotICAgICAgICA8ZGl2IGNsYXNzPSJyZXN1bHQiPjJuZCBhdXRvbWF0ZWQgc2VsZWN0aW9uIHRl
c3Q6IFBBU1M8L2Rpdj4KLQotICAgICAgICA8ZGl2IGlkPSJvdmVyZmxvdzFfMSIgY2xhc3M9Im92
ZXJmbG93Ij5PdmVyZmxvdzFfMTwvZGl2PgotICAgICAgICA8ZGl2IGlkPSJvdmVyZmxvdzFfMiIg
Y2xhc3M9Im92ZXJmbG93Ij5PdmVyZmxvdzFfMjwvZGl2PgotICAgICAgICA8ZGl2IGNsYXNzPSJy
ZWdpb24iIGlkPSJyZWdpb24xIj4KLSAgICAgICAgICAgIDxkaXY+ZmxvdzFfMTwvZGl2PgotICAg
ICAgICAgICAgPGRpdj5mbG93MV8yPC9kaXY+Ci0gICAgICAgIDwvZGl2PgotICAgICAgICA8ZGl2
IGNsYXNzPSJyZWdpb24iIGlkPSJyZWdpb24yIj4KLSAgICAgICAgICAgIDxkaXY+ZmxvdzFfMzwv
ZGl2PgotICAgICAgICAgICAgPGRpdj5mbG93MV80PC9kaXY+Ci0gICAgICAgIDwvZGl2PgotICAg
ICAgICA8ZGl2IGlkPSJvdmVyZmxvdzJfMSIgY2xhc3M9Im92ZXJmbG93Ij5PdmVyZmxvdzJfMTwv
ZGl2PgotICAgICAgICA8ZGl2IGlkPSJvdmVyZmxvdzJfMiIgY2xhc3M9Im92ZXJmbG93Ij5PdmVy
ZmxvdzJfMjwvZGl2PgotICAgIDwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvcmVnaW9ucy9vdmVyZmxvdy1maXJzdC1hbmQtbGFzdC1yZWdpb25zLWluLWNvbnRh
aW5lci1oaWRkZW4tZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9vdmVy
Zmxvdy1maXJzdC1hbmQtbGFzdC1yZWdpb25zLWluLWNvbnRhaW5lci1oaWRkZW4tZXhwZWN0ZWQu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGJiYWNkMTc5ZGRmMDdkNGRmNGJj
Njg5NzdiNjMwMWViZGZlNjFiOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvb3ZlcmZsb3ctZmlyc3QtYW5kLWxh
c3QtcmVnaW9ucy1pbi1jb250YWluZXItaGlkZGVuLWV4cGVjdGVkLmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSwxNTkgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbCBzdHlsZT0iZm9udDog
MTRweC8xLjI1IG1vbm9zcGFjZTsiPgotICAgIDxoZWFkPgotICAgICAgICA8c3R5bGU+Ci0gICAg
ICAgICAgICBwIHsKLSAgICAgICAgICAgICAgICBtYXJnaW46IDVweDsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIC5vdmVyZmxvd1RleHQgewotICAgICAgICAgICAgICAgIGNvbG9yOiByZWQ7
Ci0gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAub3ZlcmZsb3dIaWRkZW4gewotICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRk
ZW47Ci0gICAgICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgb3JhbmdlOwotICAgICAgICAg
ICAgfQotICAgICAgICAgICAgLm92ZXJmbG93VmlzaWJsZSB7Ci0gICAgICAgICAgICAgICAgb3Zl
cmZsb3c6IHZpc2libGU7Ci0gICAgICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgYmx1ZTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIC5jb250ZW50IHsKLSAgICAgICAgICAgICAgICBt
YXJnaW4tdG9wOiAtNjlweDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIC5yZWdpb24gewot
ICAgICAgICAgICAgICAgIHdpZHRoOiA4MHB4OwotICAgICAgICAgICAgICAgIGhlaWdodDogNDBw
eDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIC5yZWdpb25SZWxhdGl2ZSB7Ci0gICAgICAg
ICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwotICAgICAgICAgICAgICAgIHRvcDogMTJweDsK
LSAgICAgICAgICAgICAgICBsZWZ0OiA1cHg7Ci0gICAgICAgICAgICAgICAgYm9yZGVyOiAzcHgg
ZG90dGVkIGdyZWVuOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgLnJlZ2lvblN0YXRpYyB7
Ci0gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYzsKLSAgICAgICAgICAgICAgICBtYXJn
aW4tdG9wOiAxMnB4OwotICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7Ci0gICAgICAg
ICAgICAgICAgYm9yZGVyOiAzcHggc29saWQgZ3JlZW47Ci0gICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAub3V0ZXJDb250YWluZXIgewotICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0
ZTsKLSAgICAgICAgICAgICAgICB3aWR0aDogMTM1cHg7Ci0gICAgICAgICAgICAgICAgaGVpZ2h0
OiA5N3B4OwotICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwcHg7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAuZmlyc3RSb3cgewotICAgICAgICAgICAgICAgIHRvcDogMjAwcHg7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAuc2Vjb25kUm93IHsKLSAgICAgICAgICAgICAgICB0b3A6
IDM3NXB4OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgLmlubmVyQ29udGFpbmVyIHsKLSAg
ICAgICAgICAgICAgICB3aWR0aDogMTAwcHg7Ci0gICAgICAgICAgICAgICAgaGVpZ2h0OiA2M3B4
OwotICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwcHg7Ci0gICAgICAgICAgICAgICAgbWFyZ2lu
LXRvcDogNXB4OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgLmxlZnQxIHsKLSAgICAgICAg
ICAgICAgICBsZWZ0OiAxMHB4OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgLmxlZnQyIHsK
LSAgICAgICAgICAgICAgICBsZWZ0OiAxODVweDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IC5sZWZ0MyB7Ci0gICAgICAgICAgICAgICAgbGVmdDogMzYwcHg7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAubGVmdDQgewotICAgICAgICAgICAgICAgIGxlZnQ6IDUzNXB4OwotICAgICAg
ICAgICAgfQotICAgICAgICA8L3N0eWxlPgotICAgIDwvaGVhZD4KLSAgICA8Ym9keT4KLSAgICAg
ICAgPHA+VGVzdHMgdGhhdCBjb250ZW50IG92ZXJmbG93aW5nIHRoZSByZWdpb24gcmVzcGVjdHMg
dGhlIG92ZXJmbG93IHN0eWxlIG9mIHRoZSByZWdpb24ncyBjb250YWluZXIuPC9wPgotICAgICAg
ICA8cD5BbGwgPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij48Yj5yZWQ8L2I+PC9zcGFuPiBvdmVy
ZmxvdyBsaW5lcyBzaG91bGQgYmUgPGI+c2VsZWN0YWJsZTwvYj4uPC9wPgotICAgICAgICA8cD48
Yj5MZWdlbmQ6PC9iPjwvcD4KLSAgICAgICAgPHVsIHN0eWxlPSJtYXJnaW4tdG9wOiAwcHg7Ij4K
LSAgICAgICAgICAgIDxsaT48c3BhbiBzdHlsZT0iY29sb3I6IGdyZWVuOyI+PGI+UmVnaW9uczo8
L2I+PC9zcGFuPgotICAgICAgICAgICAgICAgIDx1bCBzdHlsZT0iY29sb3I6IGdyZWVuOyI+Ci0g
ICAgICAgICAgICAgICAgICAgIDxsaT48Yj5Tb2xpZDwvYj4gYm9yZGVyIG1lYW5zICJwb3NpdGlv
bjogPGI+c3RhdGljPC9iPiI8L2xpPgotICAgICAgICAgICAgICAgICAgICA8bGk+PGI+RG90dGVk
PC9iPiBib3JkZXIgbWVhbnMgInBvc2l0aW9uOiA8Yj5yZWxhdGl2ZTwvYj4iPC9saT4KLSAgICAg
ICAgICAgICAgICA8L3VsPgotICAgICAgICAgICAgPC9saT4KLSAgICAgICAgICAgIDxsaT48c3Bh
biBzdHlsZT0iY29sb3I6IG9yYW5nZTsiPjxiPk9yYW5nZTwvYj4gY29udGFpbmVycyBoYXZlICJv
dmVyZmxvdzogPGI+aGlkZGVuPC9iPiI8L3NwYW4+PC9saT4KLSAgICAgICAgICAgIDxsaT48c3Bh
biBzdHlsZT0iY29sb3I6IGJsdWU7Ij48Yj5CbHVlPC9iPiBjb250YWluZXJzIGhhdmUgIm92ZXJm
bG93OiA8Yj52aXNpYmxlPC9iPiI8L3NwYW4+PC9saT4KLSAgICAgICAgPC91bD4KLQotICAgICAg
ICA8ZGl2IGlkPSJjb250YWluZXIxX291dGVyIiBjbGFzcz0ibGVmdDEgb3V0ZXJDb250YWluZXIg
Zmlyc3RSb3cgb3ZlcmZsb3dIaWRkZW4iPgotICAgICAgICAgICAgPGRpdiBpZD0iY29udGFpbmVy
MV9pbm5lciIgY2xhc3M9ImlubmVyQ29udGFpbmVyIG92ZXJmbG93SGlkZGVuIj4KLSAgICAgICAg
ICAgICAgICA8ZGl2IGNsYXNzPSJvdmVyZmxvd1RleHQiIHN0eWxlPSJtYXJnaW4tdG9wOiAtNTRw
eDsgbWFyZ2luLWxlZnQ6IDhweDsiPk92ZXJmbG93bG9uZ2xvbmdsb25ndGV4dDxici8+T3ZlcmZs
b3dsb25nbG9uZ2xvbmd0ZXh0PGJyLz5PdmVyZmxvd2xvbmdsb25nbG9uZ3RleHQ8L2Rpdj4KLSAg
ICAgICAgICAgICAgICA8ZGl2IGlkPSJyZWdpb24xIiBjbGFzcz0icmVnaW9uIHJlZ2lvblJlbGF0
aXZlIiBzdHlsZT0ibWFyZ2luLXRvcDogM3B4OyI+Ci0gICAgICAgICAgICAgICAgICAgIDxkaXYg
c3R5bGU9InBvc2l0aW9uOiByZWxhdGl2ZTsgdG9wOiAtMXB4OyI+ZmxvdzFfMTxici8+ZmxvdzFf
MjwvZGl2PgotICAgICAgICAgICAgICAgIDwvZGl2PgotICAgICAgICAgICAgICAgIDxkaXYgY2xh
c3M9Im92ZXJmbG93VGV4dCIgc3R5bGU9Im1hcmdpbi10b3A6IDE5cHg7IG1hcmdpbi1sZWZ0OiA4
cHg7Ij5PdmVyZmxvd2xvbmdsb25nbG9uZ3RleHQ8YnIvPk92ZXJmbG93bG9uZ2xvbmdsb25ndGV4
dDxici8+T3ZlcmZsb3dsb25nbG9uZ2xvbmd0ZXh0PC9kaXY+Ci0gICAgICAgICAgICA8L2Rpdj4K
LSAgICAgICAgPC9kaXY+Ci0gICAgICAgIDxkaXYgaWQ9ImNvbnRhaW5lcjJfb3V0ZXIiIGNsYXNz
PSJsZWZ0MiBvdXRlckNvbnRhaW5lciBmaXJzdFJvdyBvdmVyZmxvd1Zpc2libGUiPgotICAgICAg
ICAgICAgPGRpdiBpZD0iY29udGFpbmVyMl9pbm5lciIgY2xhc3M9ImlubmVyQ29udGFpbmVyIG92
ZXJmbG93SGlkZGVuIj4KLSAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdmVyZmxvd1RleHQi
IHN0eWxlPSJtYXJnaW4tdG9wOiAtNTRweDsgbWFyZ2luLWxlZnQ6IDhweDsiPk92ZXJmbG93bG9u
Z2xvbmdsb25ndGV4dDxici8+T3ZlcmZsb3dsb25nbG9uZ2xvbmd0ZXh0PGJyLz5PdmVyZmxvd2xv
bmdsb25nbG9uZ3RleHQ8L2Rpdj4KLSAgICAgICAgICAgICAgICA8ZGl2IGlkPSJyZWdpb24yIiBj
bGFzcz0icmVnaW9uIHJlZ2lvblJlbGF0aXZlIiBzdHlsZT0ibWFyZ2luLXRvcDogM3B4OyI+Ci0g
ICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOiByZWxhdGl2ZTsgdG9wOiAt
MXB4OyI+ZmxvdzJfMTxici8+ZmxvdzJfMjwvZGl2PgotICAgICAgICAgICAgICAgIDwvZGl2Pgot
ICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJmbG93VGV4dCIgc3R5bGU9Im1hcmdpbi10
b3A6IDE5cHg7IG1hcmdpbi1sZWZ0OiA4cHg7Ij5PdmVyZmxvd2xvbmdsb25nbG9uZ3RleHQ8YnIv
Pk92ZXJmbG93bG9uZ2xvbmdsb25ndGV4dDxici8+T3ZlcmZsb3dsb25nbG9uZ2xvbmd0ZXh0PC9k
aXY+Ci0gICAgICAgICAgICA8L2Rpdj4KLSAgICAgICAgPC9kaXY+Ci0gICAgICAgIDxkaXYgaWQ9
ImNvbnRhaW5lcjNfb3V0ZXIiIGNsYXNzPSJsZWZ0MyBvdXRlckNvbnRhaW5lciBmaXJzdFJvdyBv
dmVyZmxvd0hpZGRlbiI+Ci0gICAgICAgICAgICA8ZGl2IGlkPSJjb250YWluZXIzX2lubmVyIiBj
bGFzcz0iaW5uZXJDb250YWluZXIgb3ZlcmZsb3dWaXNpYmxlIj4KLSAgICAgICAgICAgICAgICA8
ZGl2IGNsYXNzPSJvdmVyZmxvd1RleHQiIHN0eWxlPSJtYXJnaW4tdG9wOiAtNTRweDsgbWFyZ2lu
LWxlZnQ6IDhweDsiPk92ZXJmbG93bG9uZ2xvbmdsb25ndGV4dDxici8+T3ZlcmZsb3dsb25nbG9u
Z2xvbmd0ZXh0PGJyLz5PdmVyZmxvd2xvbmdsb25nbG9uZ3RleHQ8L2Rpdj4KLSAgICAgICAgICAg
ICAgICA8ZGl2IGlkPSJyZWdpb24zIiBjbGFzcz0icmVnaW9uIHJlZ2lvblJlbGF0aXZlIiBzdHls
ZT0ibWFyZ2luLXRvcDogM3B4OyI+Ci0gICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9InBv
c2l0aW9uOiByZWxhdGl2ZTsgdG9wOiAtMXB4OyI+ZmxvdzNfMTxici8+ZmxvdzNfMjwvZGl2Pgot
ICAgICAgICAgICAgICAgIDwvZGl2PgotICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJm
bG93VGV4dCIgc3R5bGU9Im1hcmdpbi10b3A6IDE5cHg7IG1hcmdpbi1sZWZ0OiA4cHg7Ij5PdmVy
Zmxvd2xvbmdsb25nbG9uZ3RleHQ8YnIvPk92ZXJmbG93bG9uZ2xvbmdsb25ndGV4dDxici8+T3Zl
cmZsb3dsb25nbG9uZ2xvbmd0ZXh0PC9kaXY+Ci0gICAgICAgICAgICA8L2Rpdj4KLSAgICAgICAg
PC9kaXY+Ci0gICAgICAgIDxkaXYgaWQ9ImNvbnRhaW5lcjRfb3V0ZXIiIGNsYXNzPSJsZWZ0NCBv
dXRlckNvbnRhaW5lciBmaXJzdFJvdyBvdmVyZmxvd1Zpc2libGUiPgotICAgICAgICAgICAgPGRp
diBpZD0iY29udGFpbmVyNF9pbm5lciIgY2xhc3M9ImlubmVyQ29udGFpbmVyIG92ZXJmbG93Vmlz
aWJsZSI+Ci0gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3ZlcmZsb3dUZXh0IiBzdHlsZT0i
bWFyZ2luLXRvcDogLTU0cHg7IG1hcmdpbi1sZWZ0OiA4cHg7Ij5PdmVyZmxvd2xvbmdsb25nbG9u
Z3RleHQ8YnIvPk92ZXJmbG93bG9uZ2xvbmdsb25ndGV4dDxici8+T3ZlcmZsb3dsb25nbG9uZ2xv
bmd0ZXh0PC9kaXY+Ci0gICAgICAgICAgICAgICAgPGRpdiBpZD0icmVnaW9uNCIgY2xhc3M9InJl
Z2lvbiByZWdpb25SZWxhdGl2ZSIgc3R5bGU9Im1hcmdpbi10b3A6IDNweDsiPgotICAgICAgICAg
ICAgICAgICAgICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmU7IHRvcDogLTFweDsiPmZs
b3c0XzE8YnIvPmZsb3c0XzI8L2Rpdj4KLSAgICAgICAgICAgICAgICA8L2Rpdj4KLSAgICAgICAg
ICAgICAgICA8ZGl2IGNsYXNzPSJvdmVyZmxvd1RleHQiIHN0eWxlPSJtYXJnaW4tdG9wOiAxOXB4
OyBtYXJnaW4tbGVmdDogOHB4OyI+T3ZlcmZsb3dsb25nbG9uZ2xvbmd0ZXh0PGJyLz5PdmVyZmxv
d2xvbmdsb25nbG9uZ3RleHQ8YnIvPk92ZXJmbG93bG9uZ2xvbmdsb25ndGV4dDwvZGl2PgotICAg
ICAgICAgICAgPC9kaXY+Ci0gICAgICAgIDwvZGl2PgotICAgICAgICA8ZGl2IGlkPSJjb250YWlu
ZXI1X291dGVyIiBjbGFzcz0ibGVmdDEgb3V0ZXJDb250YWluZXIgc2Vjb25kUm93IG92ZXJmbG93
SGlkZGVuIj4KLSAgICAgICAgICAgIDxkaXYgaWQ9ImNvbnRhaW5lcjVfaW5uZXIiIGNsYXNzPSJp
bm5lckNvbnRhaW5lciBvdmVyZmxvd0hpZGRlbiI+Ci0gICAgICAgICAgICAgICAgPGRpdiBjbGFz
cz0ib3ZlcmZsb3dUZXh0IiBzdHlsZT0ibWFyZ2luLXRvcDogLTU0cHg7IG1hcmdpbi1sZWZ0OiA4
cHg7Ij5PdmVyZmxvd2xvbmdsb25nbG9uZ3RleHQ8YnIvPk92ZXJmbG93bG9uZ2xvbmdsb25ndGV4
dDxici8+T3ZlcmZsb3dsb25nbG9uZ2xvbmd0ZXh0PC9kaXY+Ci0gICAgICAgICAgICAgICAgPGRp
diBpZD0icmVnaW9uNSIgY2xhc3M9InJlZ2lvbiByZWdpb25TdGF0aWMiIHN0eWxlPSJtYXJnaW4t
dG9wOiAxNXB4OyI+Ci0gICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOiBy
ZWxhdGl2ZTsgdG9wOiAtMXB4OyI+ZmxvdzVfMTxici8+ZmxvdzVfMjwvZGl2PgotICAgICAgICAg
ICAgICAgIDwvZGl2PgotICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJmbG93VGV4dCIg
c3R5bGU9Im1hcmdpbi10b3A6IDdweDsgbWFyZ2luLWxlZnQ6IDhweDsiPk92ZXJmbG93bG9uZ2xv
bmdsb25ndGV4dDxici8+T3ZlcmZsb3dsb25nbG9uZ2xvbmd0ZXh0PGJyLz5PdmVyZmxvd2xvbmds
b25nbG9uZ3RleHQ8L2Rpdj4KLSAgICAgICAgICAgIDwvZGl2PgotICAgICAgICA8L2Rpdj4KLSAg
ICAgICAgPGRpdiBpZD0iY29udGFpbmVyNl9vdXRlciIgY2xhc3M9ImxlZnQyIG91dGVyQ29udGFp
bmVyIHNlY29uZFJvdyBvdmVyZmxvd1Zpc2libGUiPgotICAgICAgICAgICAgPGRpdiBpZD0iY29u
dGFpbmVyNl9pbm5lciIgY2xhc3M9ImlubmVyQ29udGFpbmVyIG92ZXJmbG93SGlkZGVuIj4KLSAg
ICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdmVyZmxvd1RleHQiIHN0eWxlPSJtYXJnaW4tdG9w
OiAtNTRweDsgbWFyZ2luLWxlZnQ6IDhweDsiPk92ZXJmbG93bG9uZ2xvbmdsb25ndGV4dDxici8+
T3ZlcmZsb3dsb25nbG9uZ2xvbmd0ZXh0PGJyLz5PdmVyZmxvd2xvbmdsb25nbG9uZ3RleHQ8L2Rp
dj4KLSAgICAgICAgICAgICAgICA8ZGl2IGlkPSJyZWdpb242IiBjbGFzcz0icmVnaW9uIHJlZ2lv
blN0YXRpYyIgc3R5bGU9Im1hcmdpbi10b3A6IDE1cHg7Ij4KLSAgICAgICAgICAgICAgICAgICAg
PGRpdiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlOyB0b3A6IC0xcHg7Ij5mbG93Nl8xPGJyLz5m
bG93Nl8yPC9kaXY+Ci0gICAgICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAgICAgICAgICAgPGRp
diBjbGFzcz0ib3ZlcmZsb3dUZXh0IiBzdHlsZT0ibWFyZ2luLXRvcDogN3B4OyBtYXJnaW4tbGVm
dDogOHB4OyI+T3ZlcmZsb3dsb25nbG9uZ2xvbmd0ZXh0PGJyLz5PdmVyZmxvd2xvbmdsb25nbG9u
Z3RleHQ8YnIvPk92ZXJmbG93bG9uZ2xvbmdsb25ndGV4dDwvZGl2PgotICAgICAgICAgICAgPC9k
aXY+Ci0gICAgICAgIDwvZGl2PgotICAgICAgICA8ZGl2IGlkPSJjb250YWluZXI3X291dGVyIiBj
bGFzcz0ibGVmdDMgb3V0ZXJDb250YWluZXIgc2Vjb25kUm93IG92ZXJmbG93SGlkZGVuIj4KLSAg
ICAgICAgICAgIDxkaXYgaWQ9ImNvbnRhaW5lcjdfaW5uZXIiIGNsYXNzPSJpbm5lckNvbnRhaW5l
ciBvdmVyZmxvd1Zpc2libGUiPgotICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJmbG93
VGV4dCIgc3R5bGU9Im1hcmdpbi10b3A6IC01NHB4OyBtYXJnaW4tbGVmdDogOHB4OyI+T3ZlcmZs
b3dsb25nbG9uZ2xvbmd0ZXh0PGJyLz5PdmVyZmxvd2xvbmdsb25nbG9uZ3RleHQ8YnIvPk92ZXJm
bG93bG9uZ2xvbmdsb25ndGV4dDwvZGl2PgotICAgICAgICAgICAgICAgIDxkaXYgaWQ9InJlZ2lv
bjciIGNsYXNzPSJyZWdpb24gcmVnaW9uU3RhdGljIiBzdHlsZT0ibWFyZ2luLXRvcDogMTVweDsi
PgotICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmU7IHRv
cDogLTFweDsiPmZsb3c3XzE8YnIvPmZsb3c3XzI8L2Rpdj4KLSAgICAgICAgICAgICAgICA8L2Rp
dj4KLSAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdmVyZmxvd1RleHQiIHN0eWxlPSJtYXJn
aW4tdG9wOiA3cHg7IG1hcmdpbi1sZWZ0OiA4cHg7Ij5PdmVyZmxvd2xvbmdsb25nbG9uZ3RleHQ8
YnIvPk92ZXJmbG93bG9uZ2xvbmdsb25ndGV4dDxici8+T3ZlcmZsb3dsb25nbG9uZ2xvbmd0ZXh0
PC9kaXY+Ci0gICAgICAgICAgICA8L2Rpdj4KLSAgICAgICAgPC9kaXY+Ci0gICAgICAgIDxkaXYg
aWQ9ImNvbnRhaW5lcjhfb3V0ZXIiIGNsYXNzPSJsZWZ0NCBvdXRlckNvbnRhaW5lciBzZWNvbmRS
b3cgb3ZlcmZsb3dWaXNpYmxlIj4KLSAgICAgICAgICAgIDxkaXYgaWQ9ImNvbnRhaW5lcjhfaW5u
ZXIiIGNsYXNzPSJpbm5lckNvbnRhaW5lciBvdmVyZmxvd1Zpc2libGUiPgotICAgICAgICAgICAg
ICAgIDxkaXYgY2xhc3M9Im92ZXJmbG93VGV4dCIgc3R5bGU9Im1hcmdpbi10b3A6IC01NHB4OyBt
YXJnaW4tbGVmdDogOHB4OyI+T3ZlcmZsb3dsb25nbG9uZ2xvbmd0ZXh0PGJyLz5PdmVyZmxvd2xv
bmdsb25nbG9uZ3RleHQ8YnIvPk92ZXJmbG93bG9uZ2xvbmdsb25ndGV4dDwvZGl2PgotICAgICAg
ICAgICAgICAgIDxkaXYgaWQ9InJlZ2lvbjgiIGNsYXNzPSJyZWdpb24gcmVnaW9uU3RhdGljIiBz
dHlsZT0ibWFyZ2luLXRvcDogMTVweDsiPgotICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxl
PSJwb3NpdGlvbjogcmVsYXRpdmU7IHRvcDogLTFweDsiPmZsb3c4XzE8YnIvPmZsb3c4XzI8L2Rp
dj4KLSAgICAgICAgICAgICAgICA8L2Rpdj4KLSAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJv
dmVyZmxvd1RleHQiIHN0eWxlPSJtYXJnaW4tdG9wOiA3cHg7IG1hcmdpbi1sZWZ0OiA4cHg7Ij5P
dmVyZmxvd2xvbmdsb25nbG9uZ3RleHQ8YnIvPk92ZXJmbG93bG9uZ2xvbmdsb25ndGV4dDxici8+
T3ZlcmZsb3dsb25nbG9uZ2xvbmd0ZXh0PC9kaXY+Ci0gICAgICAgICAgICA8L2Rpdj4KLSAgICAg
ICAgPC9kaXY+Ci0gICAgPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9yZWdpb25zL292ZXJmbG93LWZpcnN0LWFuZC1sYXN0LXJlZ2lvbnMtaW4tY29udGFpbmVy
LWhpZGRlbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL292ZXJmbG93LWZpcnN0LWFu
ZC1sYXN0LXJlZ2lvbnMtaW4tY29udGFpbmVyLWhpZGRlbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBmMjgwMWQ1NzE5NmFiOGIwYjMxMGNmZWY5MWE5NWY3NmJmZGJlM2RhLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvcmVnaW9ucy9vdmVyZmxvdy1maXJzdC1hbmQtbGFzdC1yZWdpb25zLWluLWNvbnRhaW5l
ci1oaWRkZW4uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI3OSArMCwwIEBACi08IWRvY3R5cGUg
aHRtbD4KLTxodG1sIHN0eWxlPSJmb250OiAxNHB4LzEuMjUgbW9ub3NwYWNlOyI+Ci0gICAgPGhl
YWQ+Ci0gICAgICAgIDxzdHlsZT4KLSAgICAgICAgICAgIHAgewotICAgICAgICAgICAgICAgIG1h
cmdpbjogNXB4OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgLm92ZXJmbG93VGV4dCB7Ci0g
ICAgICAgICAgICAgICAgY29sb3I6IHJlZDsKLSAgICAgICAgICAgICAgICBmb250LXdlaWdodDog
Ym9sZDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIC5vdmVyZmxvd0hpZGRlbiB7Ci0gICAg
ICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKLSAgICAgICAgICAgICAgICBib3JkZXI6IDJw
eCBzb2xpZCBvcmFuZ2U7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAub3ZlcmZsb3dWaXNp
YmxlIHsKLSAgICAgICAgICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTsKLSAgICAgICAgICAgICAg
ICBib3JkZXI6IDJweCBzb2xpZCBibHVlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgLmNv
bnRlbnQgewotICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC02OXB4OwotICAgICAgICAgICAg
fQotICAgICAgICAgICAgLnJlZ2lvbiB7Ci0gICAgICAgICAgICAgICAgd2lkdGg6IDgwcHg7Ci0g
ICAgICAgICAgICAgICAgaGVpZ2h0OiA0MHB4OwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
LnJlZ2lvblJlbGF0aXZlIHsKLSAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7Ci0g
ICAgICAgICAgICAgICAgdG9wOiAxMnB4OwotICAgICAgICAgICAgICAgIGxlZnQ6IDVweDsKLSAg
ICAgICAgICAgICAgICBib3JkZXI6IDNweCBkb3R0ZWQgZ3JlZW47Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAucmVnaW9uU3RhdGljIHsKLSAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3Rh
dGljOwotICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDEycHg7Ci0gICAgICAgICAgICAgICAg
bWFyZ2luLWxlZnQ6IDVweDsKLSAgICAgICAgICAgICAgICBib3JkZXI6IDNweCBzb2xpZCBncmVl
bjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIC5vdXRlckNvbnRhaW5lciB7Ci0gICAgICAg
ICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwotICAgICAgICAgICAgICAgIHdpZHRoOiAxMzVw
eDsKLSAgICAgICAgICAgICAgICBoZWlnaHQ6IDk3cHg7Ci0gICAgICAgICAgICAgICAgcGFkZGlu
ZzogMTBweDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIC5maXJzdFJvdyB7Ci0gICAgICAg
ICAgICAgICAgdG9wOiAyMDBweDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIC5zZWNvbmRS
b3cgewotICAgICAgICAgICAgICAgIHRvcDogMzc1cHg7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAub3V0ZXJDb250YWluZXI6aG92ZXIgewotICAgICAgICAgICAgICAgIC13ZWJraXQtdHJh
bnNmb3JtOiB0cmFuc2xhdGVYKDE1cHgpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgLmlu
bmVyQ29udGFpbmVyIHsKLSAgICAgICAgICAgICAgICB3aWR0aDogMTAwcHg7Ci0gICAgICAgICAg
ICAgICAgaGVpZ2h0OiA2M3B4OwotICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwcHg7Ci0gICAg
ICAgICAgICAgICAgbWFyZ2luLXRvcDogNXB4OwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
LmlubmVyQ29udGFpbmVyOmhvdmVyIHsKLSAgICAgICAgICAgICAgICAtd2Via2l0LXRyYW5zZm9y
bTogdHJhbnNsYXRlWCgxNXB4KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIC5sZWZ0MSB7
Ci0gICAgICAgICAgICAgICAgbGVmdDogMTBweDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IC5sZWZ0MiB7Ci0gICAgICAgICAgICAgICAgbGVmdDogMTg1cHg7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAubGVmdDMgewotICAgICAgICAgICAgICAgIGxlZnQ6IDM2MHB4OwotICAgICAg
ICAgICAgfQotICAgICAgICAgICAgLmxlZnQ0IHsKLSAgICAgICAgICAgICAgICBsZWZ0OiA1MzVw
eDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgI2NvbnRlbnQxIHsKLSAgICAgICAgICAg
ICAgICAtd2Via2l0LWZsb3ctaW50bzogZmxvdzE7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAjY29udGVudDIgewotICAgICAgICAgICAgICAgIC13ZWJraXQtZmxvdy1pbnRvOiBmbG93MjsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgICAgICNjb250ZW50MyB7Ci0gICAgICAgICAgICAgICAg
LXdlYmtpdC1mbG93LWludG86IGZsb3czOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgI2Nv
bnRlbnQ0IHsKLSAgICAgICAgICAgICAgICAtd2Via2l0LWZsb3ctaW50bzogZmxvdzQ7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAjY29udGVudDUgewotICAgICAgICAgICAgICAgIC13ZWJr
aXQtZmxvdy1pbnRvOiBmbG93NTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgICNjb250ZW50
NiB7Ci0gICAgICAgICAgICAgICAgLXdlYmtpdC1mbG93LWludG86IGZsb3c2OwotICAgICAgICAg
ICAgfQotICAgICAgICAgICAgI2NvbnRlbnQ3IHsKLSAgICAgICAgICAgICAgICAtd2Via2l0LWZs
b3ctaW50bzogZmxvdzc7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAjY29udGVudDggewot
ICAgICAgICAgICAgICAgIC13ZWJraXQtZmxvdy1pbnRvOiBmbG93ODsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICNyZWdpb24xIHsKLSAgICAgICAgICAgICAgICAtd2Via2l0LWZsb3ctZnJv
bTogZmxvdzE7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAjcmVnaW9uMiB7Ci0gICAgICAg
ICAgICAgICAgLXdlYmtpdC1mbG93LWZyb206IGZsb3cyOwotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgI3JlZ2lvbjMgewotICAgICAgICAgICAgICAgIC13ZWJraXQtZmxvdy1mcm9tOiBmbG93
MzsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgICNyZWdpb240IHsKLSAgICAgICAgICAgICAg
ICAtd2Via2l0LWZsb3ctZnJvbTogZmxvdzQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAj
cmVnaW9uNSB7Ci0gICAgICAgICAgICAgICAgLXdlYmtpdC1mbG93LWZyb206IGZsb3c1OwotICAg
ICAgICAgICAgfQotICAgICAgICAgICAgI3JlZ2lvbjYgewotICAgICAgICAgICAgICAgIC13ZWJr
aXQtZmxvdy1mcm9tOiBmbG93NjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgICNyZWdpb243
IHsKLSAgICAgICAgICAgICAgICAtd2Via2l0LWZsb3ctZnJvbTogZmxvdzc7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAjcmVnaW9uOCB7Ci0gICAgICAgICAgICAgICAgLXdlYmtpdC1mbG93
LWZyb206IGZsb3c4OwotICAgICAgICAgICAgfQotICAgICAgICA8L3N0eWxlPgotICAgIDwvaGVh
ZD4KLSAgICA8Ym9keT4KLSAgICAgICAgPHA+VGVzdHMgdGhhdCBjb250ZW50IG92ZXJmbG93aW5n
IHRoZSByZWdpb24gcmVzcGVjdHMgdGhlIG92ZXJmbG93IHN0eWxlIG9mIHRoZSByZWdpb24ncyBj
b250YWluZXIuPC9wPgotICAgICAgICA8cD5BbGwgPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij48
Yj5yZWQ8L2I+PC9zcGFuPiBvdmVyZmxvdyBsaW5lcyBzaG91bGQgYmUgPGI+c2VsZWN0YWJsZTwv
Yj4uPC9wPgotICAgICAgICA8cD48Yj5MZWdlbmQ6PC9iPjwvcD4KLSAgICAgICAgPHVsIHN0eWxl
PSJtYXJnaW4tdG9wOiAwcHg7Ij4KLSAgICAgICAgICAgIDxsaT48c3BhbiBzdHlsZT0iY29sb3I6
IGdyZWVuOyI+PGI+UmVnaW9uczo8L2I+PC9zcGFuPgotICAgICAgICAgICAgICAgIDx1bCBzdHls
ZT0iY29sb3I6IGdyZWVuOyI+Ci0gICAgICAgICAgICAgICAgICAgIDxsaT48Yj5Tb2xpZDwvYj4g
Ym9yZGVyIG1lYW5zICJwb3NpdGlvbjogPGI+c3RhdGljPC9iPiI8L2xpPgotICAgICAgICAgICAg
ICAgICAgICA8bGk+PGI+RG90dGVkPC9iPiBib3JkZXIgbWVhbnMgInBvc2l0aW9uOiA8Yj5yZWxh
dGl2ZTwvYj4iPC9saT4KLSAgICAgICAgICAgICAgICA8L3VsPgotICAgICAgICAgICAgPC9saT4K
LSAgICAgICAgICAgIDxsaT48c3BhbiBzdHlsZT0iY29sb3I6IG9yYW5nZTsiPjxiPk9yYW5nZTwv
Yj4gY29udGFpbmVycyBoYXZlICJvdmVyZmxvdzogPGI+aGlkZGVuPC9iPiI8L3NwYW4+PC9saT4K
LSAgICAgICAgICAgIDxsaT48c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij48Yj5CbHVlPC9iPiBj
b250YWluZXJzIGhhdmUgIm92ZXJmbG93OiA8Yj52aXNpYmxlPC9iPiI8L3NwYW4+PC9saT4KLSAg
ICAgICAgPC91bD4KLQotICAgICAgICA8ZGl2IGlkPSJjb250ZW50MSIgY2xhc3M9ImNvbnRlbnQi
PgotICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3ZlcmZsb3dUZXh0Ij5PdmVyZmxvd2xvbmdsb25n
bG9uZ3RleHQ8L2Rpdj4KLSAgICAgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJmbG93VGV4dCI+T3Zl
cmZsb3dsb25nbG9uZ2xvbmd0ZXh0PC9kaXY+Ci0gICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdmVy
Zmxvd1RleHQiPk92ZXJmbG93bG9uZ2xvbmdsb25ndGV4dDwvZGl2PgotICAgICAgICAgICAgPGJy
Lz4KLSAgICAgICAgICAgIDxkaXY+ZmxvdzFfMTwvZGl2PgotICAgICAgICAgICAgPGRpdj5mbG93
MV8yPC9kaXY+Ci0gICAgICAgICAgICA8YnIvPgotICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3Zl
cmZsb3dUZXh0Ij5PdmVyZmxvd2xvbmdsb25nbG9uZ3RleHQ8L2Rpdj4KLSAgICAgICAgICAgIDxk
aXYgY2xhc3M9Im92ZXJmbG93VGV4dCI+T3ZlcmZsb3dsb25nbG9uZ2xvbmd0ZXh0PC9kaXY+Ci0g
ICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdmVyZmxvd1RleHQiPk92ZXJmbG93bG9uZ2xvbmdsb25n
dGV4dDwvZGl2PgotICAgICAgICA8L2Rpdj4KLSAgICAgICAgPGRpdiBpZD0iY29udGVudDIiIGNs
YXNzPSJjb250ZW50Ij4KLSAgICAgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJmbG93VGV4dCI+T3Zl
cmZsb3dsb25nbG9uZ2xvbmd0ZXh0PC9kaXY+Ci0gICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdmVy
Zmxvd1RleHQiPk92ZXJmbG93bG9uZ2xvbmdsb25ndGV4dDwvZGl2PgotICAgICAgICAgICAgPGRp
diBjbGFzcz0ib3ZlcmZsb3dUZXh0Ij5PdmVyZmxvd2xvbmdsb25nbG9uZ3RleHQ8L2Rpdj4KLSAg
ICAgICAgICAgIDxici8+Ci0gICAgICAgICAgICA8ZGl2PmZsb3cyXzE8L2Rpdj4KLSAgICAgICAg
ICAgIDxkaXY+ZmxvdzJfMjwvZGl2PgotICAgICAgICAgICAgPGJyLz4KLSAgICAgICAgICAgIDxk
aXYgY2xhc3M9Im92ZXJmbG93VGV4dCI+T3ZlcmZsb3dsb25nbG9uZ2xvbmd0ZXh0PC9kaXY+Ci0g
ICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdmVyZmxvd1RleHQiPk92ZXJmbG93bG9uZ2xvbmdsb25n
dGV4dDwvZGl2PgotICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3ZlcmZsb3dUZXh0Ij5PdmVyZmxv
d2xvbmdsb25nbG9uZ3RleHQ8L2Rpdj4KLSAgICAgICAgPC9kaXY+Ci0gICAgICAgIDxkaXYgaWQ9
ImNvbnRlbnQzIiBjbGFzcz0iY29udGVudCI+Ci0gICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdmVy
Zmxvd1RleHQiPk92ZXJmbG93bG9uZ2xvbmdsb25ndGV4dDwvZGl2PgotICAgICAgICAgICAgPGRp
diBjbGFzcz0ib3ZlcmZsb3dUZXh0Ij5PdmVyZmxvd2xvbmdsb25nbG9uZ3RleHQ8L2Rpdj4KLSAg
ICAgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJmbG93VGV4dCI+T3ZlcmZsb3dsb25nbG9uZ2xvbmd0
ZXh0PC9kaXY+Ci0gICAgICAgICAgICA8YnIvPgotICAgICAgICAgICAgPGRpdj5mbG93M18xPC9k
aXY+Ci0gICAgICAgICAgICA8ZGl2PmZsb3czXzI8L2Rpdj4KLSAgICAgICAgICAgIDxici8+Ci0g
ICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdmVyZmxvd1RleHQiPk92ZXJmbG93bG9uZ2xvbmdsb25n
dGV4dDwvZGl2PgotICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3ZlcmZsb3dUZXh0Ij5PdmVyZmxv
d2xvbmdsb25nbG9uZ3RleHQ8L2Rpdj4KLSAgICAgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJmbG93
VGV4dCI+T3ZlcmZsb3dsb25nbG9uZ2xvbmd0ZXh0PC9kaXY+Ci0gICAgICAgIDwvZGl2PgotICAg
ICAgICA8ZGl2IGlkPSJjb250ZW50NCIgY2xhc3M9ImNvbnRlbnQiPgotICAgICAgICAgICAgPGRp
diBjbGFzcz0ib3ZlcmZsb3dUZXh0Ij5PdmVyZmxvd2xvbmdsb25nbG9uZ3RleHQ8L2Rpdj4KLSAg
ICAgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJmbG93VGV4dCI+T3ZlcmZsb3dsb25nbG9uZ2xvbmd0
ZXh0PC9kaXY+Ci0gICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdmVyZmxvd1RleHQiPk92ZXJmbG93
bG9uZ2xvbmdsb25ndGV4dDwvZGl2PgotICAgICAgICAgICAgPGJyLz4KLSAgICAgICAgICAgIDxk
aXY+ZmxvdzRfMTwvZGl2PgotICAgICAgICAgICAgPGRpdj5mbG93NF8yPC9kaXY+Ci0gICAgICAg
ICAgICA8YnIvPgotICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3ZlcmZsb3dUZXh0Ij5PdmVyZmxv
d2xvbmdsb25nbG9uZ3RleHQ8L2Rpdj4KLSAgICAgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJmbG93
VGV4dCI+T3ZlcmZsb3dsb25nbG9uZ2xvbmd0ZXh0PC9kaXY+Ci0gICAgICAgICAgICA8ZGl2IGNs
YXNzPSJvdmVyZmxvd1RleHQiPk92ZXJmbG93bG9uZ2xvbmdsb25ndGV4dDwvZGl2PgotICAgICAg
ICA8L2Rpdj4KLSAgICAgICAgPGRpdiBpZD0iY29udGVudDUiIGNsYXNzPSJjb250ZW50Ij4KLSAg
ICAgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJmbG93VGV4dCI+T3ZlcmZsb3dsb25nbG9uZ2xvbmd0
ZXh0PC9kaXY+Ci0gICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdmVyZmxvd1RleHQiPk92ZXJmbG93
bG9uZ2xvbmdsb25ndGV4dDwvZGl2PgotICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3ZlcmZsb3dU
ZXh0Ij5PdmVyZmxvd2xvbmdsb25nbG9uZ3RleHQ8L2Rpdj4KLSAgICAgICAgICAgIDxici8+Ci0g
ICAgICAgICAgICA8ZGl2PmZsb3c1XzE8L2Rpdj4KLSAgICAgICAgICAgIDxkaXY+ZmxvdzVfMjwv
ZGl2PgotICAgICAgICAgICAgPGJyLz4KLSAgICAgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJmbG93
VGV4dCI+T3ZlcmZsb3dsb25nbG9uZ2xvbmd0ZXh0PC9kaXY+Ci0gICAgICAgICAgICA8ZGl2IGNs
YXNzPSJvdmVyZmxvd1RleHQiPk92ZXJmbG93bG9uZ2xvbmdsb25ndGV4dDwvZGl2PgotICAgICAg
ICAgICAgPGRpdiBjbGFzcz0ib3ZlcmZsb3dUZXh0Ij5PdmVyZmxvd2xvbmdsb25nbG9uZ3RleHQ8
L2Rpdj4KLSAgICAgICAgPC9kaXY+Ci0gICAgICAgIDxkaXYgaWQ9ImNvbnRlbnQ2IiBjbGFzcz0i
Y29udGVudCI+Ci0gICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdmVyZmxvd1RleHQiPk92ZXJmbG93
bG9uZ2xvbmdsb25ndGV4dDwvZGl2PgotICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3ZlcmZsb3dU
ZXh0Ij5PdmVyZmxvd2xvbmdsb25nbG9uZ3RleHQ8L2Rpdj4KLSAgICAgICAgICAgIDxkaXYgY2xh
c3M9Im92ZXJmbG93VGV4dCI+T3ZlcmZsb3dsb25nbG9uZ2xvbmd0ZXh0PC9kaXY+Ci0gICAgICAg
ICAgICA8YnIvPgotICAgICAgICAgICAgPGRpdj5mbG93Nl8xPC9kaXY+Ci0gICAgICAgICAgICA8
ZGl2PmZsb3c2XzI8L2Rpdj4KLSAgICAgICAgICAgIDxici8+Ci0gICAgICAgICAgICA8ZGl2IGNs
YXNzPSJvdmVyZmxvd1RleHQiPk92ZXJmbG93bG9uZ2xvbmdsb25ndGV4dDwvZGl2PgotICAgICAg
ICAgICAgPGRpdiBjbGFzcz0ib3ZlcmZsb3dUZXh0Ij5PdmVyZmxvd2xvbmdsb25nbG9uZ3RleHQ8
L2Rpdj4KLSAgICAgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJmbG93VGV4dCI+T3ZlcmZsb3dsb25n
bG9uZ2xvbmd0ZXh0PC9kaXY+Ci0gICAgICAgIDwvZGl2PgotICAgICAgICA8ZGl2IGlkPSJjb250
ZW50NyIgY2xhc3M9ImNvbnRlbnQiPgotICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3ZlcmZsb3dU
ZXh0Ij5PdmVyZmxvd2xvbmdsb25nbG9uZ3RleHQ8L2Rpdj4KLSAgICAgICAgICAgIDxkaXYgY2xh
c3M9Im92ZXJmbG93VGV4dCI+T3ZlcmZsb3dsb25nbG9uZ2xvbmd0ZXh0PC9kaXY+Ci0gICAgICAg
ICAgICA8ZGl2IGNsYXNzPSJvdmVyZmxvd1RleHQiPk92ZXJmbG93bG9uZ2xvbmdsb25ndGV4dDwv
ZGl2PgotICAgICAgICAgICAgPGJyLz4KLSAgICAgICAgICAgIDxkaXY+ZmxvdzdfMTwvZGl2Pgot
ICAgICAgICAgICAgPGRpdj5mbG93N18yPC9kaXY+Ci0gICAgICAgICAgICA8YnIvPgotICAgICAg
ICAgICAgPGRpdiBjbGFzcz0ib3ZlcmZsb3dUZXh0Ij5PdmVyZmxvd2xvbmdsb25nbG9uZ3RleHQ8
L2Rpdj4KLSAgICAgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJmbG93VGV4dCI+T3ZlcmZsb3dsb25n
bG9uZ2xvbmd0ZXh0PC9kaXY+Ci0gICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdmVyZmxvd1RleHQi
Pk92ZXJmbG93bG9uZ2xvbmdsb25ndGV4dDwvZGl2PgotICAgICAgICA8L2Rpdj4KLSAgICAgICAg
PGRpdiBpZD0iY29udGVudDgiIGNsYXNzPSJjb250ZW50Ij4KLSAgICAgICAgICAgIDxkaXYgY2xh
c3M9Im92ZXJmbG93VGV4dCI+T3ZlcmZsb3dsb25nbG9uZ2xvbmd0ZXh0PC9kaXY+Ci0gICAgICAg
ICAgICA8ZGl2IGNsYXNzPSJvdmVyZmxvd1RleHQiPk92ZXJmbG93bG9uZ2xvbmdsb25ndGV4dDwv
ZGl2PgotICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3ZlcmZsb3dUZXh0Ij5PdmVyZmxvd2xvbmds
b25nbG9uZ3RleHQ8L2Rpdj4KLSAgICAgICAgICAgIDxici8+Ci0gICAgICAgICAgICA8ZGl2PmZs
b3c4XzE8L2Rpdj4KLSAgICAgICAgICAgIDxkaXY+ZmxvdzhfMjwvZGl2PgotICAgICAgICAgICAg
PGJyLz4KLSAgICAgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJmbG93VGV4dCI+T3ZlcmZsb3dsb25n
bG9uZ2xvbmd0ZXh0PC9kaXY+Ci0gICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdmVyZmxvd1RleHQi
Pk92ZXJmbG93bG9uZ2xvbmdsb25ndGV4dDwvZGl2PgotICAgICAgICAgICAgPGRpdiBjbGFzcz0i
b3ZlcmZsb3dUZXh0Ij5PdmVyZmxvd2xvbmdsb25nbG9uZ3RleHQ8L2Rpdj4KLSAgICAgICAgPC9k
aXY+Ci0KLSAgICAgICAgPGRpdiBpZD0iY29udGFpbmVyMV9vdXRlciIgY2xhc3M9ImxlZnQxIG91
dGVyQ29udGFpbmVyIGZpcnN0Um93IG92ZXJmbG93SGlkZGVuIj4KLSAgICAgICAgICAgIDxkaXYg
aWQ9ImNvbnRhaW5lcjFfaW5uZXIiIGNsYXNzPSJpbm5lckNvbnRhaW5lciBvdmVyZmxvd0hpZGRl
biI+Ci0gICAgICAgICAgICAgICAgPGRpdiBpZD0icmVnaW9uMSIgY2xhc3M9InJlZ2lvbiByZWdp
b25SZWxhdGl2ZSI+PC9kaXY+Ci0gICAgICAgICAgICA8L2Rpdj4KLSAgICAgICAgPC9kaXY+Ci0g
ICAgICAgIDxkaXYgaWQ9ImNvbnRhaW5lcjJfb3V0ZXIiIGNsYXNzPSJsZWZ0MiBvdXRlckNvbnRh
aW5lciBmaXJzdFJvdyBvdmVyZmxvd1Zpc2libGUiPgotICAgICAgICAgICAgPGRpdiBpZD0iY29u
dGFpbmVyMl9pbm5lciIgY2xhc3M9ImlubmVyQ29udGFpbmVyIG92ZXJmbG93SGlkZGVuIj4KLSAg
ICAgICAgICAgICAgICA8ZGl2IGlkPSJyZWdpb24yIiBjbGFzcz0icmVnaW9uIHJlZ2lvblJlbGF0
aXZlIj48L2Rpdj4KLSAgICAgICAgICAgIDwvZGl2PgotICAgICAgICA8L2Rpdj4KLSAgICAgICAg
PGRpdiBpZD0iY29udGFpbmVyM19vdXRlciIgY2xhc3M9ImxlZnQzIG91dGVyQ29udGFpbmVyIGZp
cnN0Um93IG92ZXJmbG93SGlkZGVuIj4KLSAgICAgICAgICAgIDxkaXYgaWQ9ImNvbnRhaW5lcjNf
aW5uZXIiIGNsYXNzPSJpbm5lckNvbnRhaW5lciBvdmVyZmxvd1Zpc2libGUiPgotICAgICAgICAg
ICAgICAgIDxkaXYgaWQ9InJlZ2lvbjMiIGNsYXNzPSJyZWdpb24gcmVnaW9uUmVsYXRpdmUiPjwv
ZGl2PgotICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAgIDwvZGl2PgotICAgICAgICA8ZGl2IGlk
PSJjb250YWluZXI0X291dGVyIiBjbGFzcz0ibGVmdDQgb3V0ZXJDb250YWluZXIgZmlyc3RSb3cg
b3ZlcmZsb3dWaXNpYmxlIj4KLSAgICAgICAgICAgIDxkaXYgaWQ9ImNvbnRhaW5lcjRfaW5uZXIi
IGNsYXNzPSJpbm5lckNvbnRhaW5lciBvdmVyZmxvd1Zpc2libGUiPgotICAgICAgICAgICAgICAg
IDxkaXYgaWQ9InJlZ2lvbjQiIGNsYXNzPSJyZWdpb24gcmVnaW9uUmVsYXRpdmUiPjwvZGl2Pgot
ICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAgIDwvZGl2PgotICAgICAgICA8ZGl2IGlkPSJjb250
YWluZXI1X291dGVyIiBjbGFzcz0ibGVmdDEgb3V0ZXJDb250YWluZXIgc2Vjb25kUm93IG92ZXJm
bG93SGlkZGVuIj4KLSAgICAgICAgICAgIDxkaXYgaWQ9ImNvbnRhaW5lcjVfaW5uZXIiIGNsYXNz
PSJpbm5lckNvbnRhaW5lciBvdmVyZmxvd0hpZGRlbiI+Ci0gICAgICAgICAgICAgICAgPGRpdiBp
ZD0icmVnaW9uNSIgY2xhc3M9InJlZ2lvbiByZWdpb25TdGF0aWMiPjwvZGl2PgotICAgICAgICAg
ICAgPC9kaXY+Ci0gICAgICAgIDwvZGl2PgotICAgICAgICA8ZGl2IGlkPSJjb250YWluZXI2X291
dGVyIiBjbGFzcz0ibGVmdDIgb3V0ZXJDb250YWluZXIgc2Vjb25kUm93IG92ZXJmbG93VmlzaWJs
ZSI+Ci0gICAgICAgICAgICA8ZGl2IGlkPSJjb250YWluZXI2X2lubmVyIiBjbGFzcz0iaW5uZXJD
b250YWluZXIgb3ZlcmZsb3dIaWRkZW4iPgotICAgICAgICAgICAgICAgIDxkaXYgaWQ9InJlZ2lv
bjYiIGNsYXNzPSJyZWdpb24gcmVnaW9uU3RhdGljIj48L2Rpdj4KLSAgICAgICAgICAgIDwvZGl2
PgotICAgICAgICA8L2Rpdj4KLSAgICAgICAgPGRpdiBpZD0iY29udGFpbmVyN19vdXRlciIgY2xh
c3M9ImxlZnQzIG91dGVyQ29udGFpbmVyIHNlY29uZFJvdyBvdmVyZmxvd0hpZGRlbiI+Ci0gICAg
ICAgICAgICA8ZGl2IGlkPSJjb250YWluZXI3X2lubmVyIiBjbGFzcz0iaW5uZXJDb250YWluZXIg
b3ZlcmZsb3dWaXNpYmxlIj4KLSAgICAgICAgICAgICAgICA8ZGl2IGlkPSJyZWdpb243IiBjbGFz
cz0icmVnaW9uIHJlZ2lvblN0YXRpYyI+PC9kaXY+Ci0gICAgICAgICAgICA8L2Rpdj4KLSAgICAg
ICAgPC9kaXY+Ci0gICAgICAgIDxkaXYgaWQ9ImNvbnRhaW5lcjhfb3V0ZXIiIGNsYXNzPSJsZWZ0
NCBvdXRlckNvbnRhaW5lciBzZWNvbmRSb3cgb3ZlcmZsb3dWaXNpYmxlIj4KLSAgICAgICAgICAg
IDxkaXYgaWQ9ImNvbnRhaW5lcjhfaW5uZXIiIGNsYXNzPSJpbm5lckNvbnRhaW5lciBvdmVyZmxv
d1Zpc2libGUiPgotICAgICAgICAgICAgICAgIDxkaXYgaWQ9InJlZ2lvbjgiIGNsYXNzPSJyZWdp
b24gcmVnaW9uU3RhdGljIj48L2Rpdj4KLSAgICAgICAgICAgIDwvZGl2PgotICAgICAgICA8L2Rp
dj4KLSAgICA8L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Jl
Z2lvbnMvb3ZlcmZsb3ctZmlyc3QtYW5kLWxhc3QtcmVnaW9ucy5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9yZWdpb25zL292ZXJmbG93LWZpcnN0LWFuZC1sYXN0LXJlZ2lvbnMuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTFlYTJkMzM3NmI4MjgzYzhkZTY1MTY0ZDlhZWMzNzc5
M2JlM2IzYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvb3ZlcmZsb3ctZmlyc3QtYW5kLWxhc3QtcmVnaW9ucy5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTIwICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0
bWwgc3R5bGU9ImZvbnQ6IDE2cHgvMS4yNSBtb25vc3BhY2U7Ij4KLSAgICA8c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCI+Ci0gICAgICAgIGZ1bmN0aW9uIG9uQm9keUxvYWQoKSB7Ci0gICAg
ICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAgICAgICB2YXIgc2Vs
ZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpOwotCi0gICAgICAgICAgICAgICAgLy8gVGVz
dCBzZWxlY3Rpb24gb24gdGhlIG92ZXJmbG93IGJlbG93IHRoZSBsYXN0IHJlZ2lvbi4KLSAgICAg
ICAgICAgICAgICB2YXIgcmVnaW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjIi
KTsKLSAgICAgICAgICAgICAgICB2YXIgc3RhcnRQb3NpdGlvblggPSByZWdpb24ub2Zmc2V0TGVm
dCArIDIwOwotICAgICAgICAgICAgICAgIHZhciBzdGFydFBvc2l0aW9uWSA9IHJlZ2lvbi5vZmZz
ZXRUb3AgKyA0MCArIDM1OwotICAgICAgICAgICAgICAgIHZhciBlbmRQb3NpdGlvblggPSBzdGFy
dFBvc2l0aW9uWCArIDYwOwotICAgICAgICAgICAgICAgIHZhciBlbmRQb3NpdGlvblkgPSBzdGFy
dFBvc2l0aW9uWSArIDIwOwotCi0gICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3Zl
VG8oc3RhcnRQb3NpdGlvblgsIHN0YXJ0UG9zaXRpb25ZKTsKLSAgICAgICAgICAgICAgICBldmVu
dFNlbmRlci5tb3VzZURvd24oKTsKLSAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1v
dmVUbyhlbmRQb3NpdGlvblgsIGVuZFBvc2l0aW9uWSk7Ci0gICAgICAgICAgICAgICAgZXZlbnRT
ZW5kZXIubW91c2VVcCgpOwotCi0gICAgICAgICAgICAgICAgdmFyIGVsZW1SZXN1bHQgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0MSIpOwotICAgICAgICAgICAgICAgIHZhciByZXN1
bHQgPSAiRkFJTCI7Ci0gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGlvbi50b1N0cmluZygpID09
ICJ2ZXJmbG93Ml8xXG5PdmVyZmxvIikKLSAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gIlBB
U1MiOwotCi0gICAgICAgICAgICAgICAgZWxlbVJlc3VsdC5jbGFzc05hbWUgPSByZXN1bHQ7Ci0g
ICAgICAgICAgICAgICAgZWxlbVJlc3VsdC5pbm5lckhUTUwgPSAiMXN0IGF1dG9tYXRlZCBzZWxl
Y3Rpb24gdGVzdDogIiArIHJlc3VsdDsKLQotICAgICAgICAgICAgICAgIC8vIFRlc3Qgc2VsZWN0
aW9uIG9uIHRoZSBvdmVyZmxvdyBhYm92ZSB0aGUgZmlyc3QgcmVnaW9uLgotICAgICAgICAgICAg
ICAgIHJlZ2lvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24xIik7Ci0gICAgICAg
ICAgICAgICAgc3RhcnRQb3NpdGlvblggPSByZWdpb24ub2Zmc2V0TGVmdCArIDIwOwotICAgICAg
ICAgICAgICAgIHN0YXJ0UG9zaXRpb25ZID0gcmVnaW9uLm9mZnNldFRvcCAtIDQ1OwotICAgICAg
ICAgICAgICAgIGVuZFBvc2l0aW9uWCA9IHN0YXJ0UG9zaXRpb25YICsgNjA7Ci0gICAgICAgICAg
ICAgICAgZW5kUG9zaXRpb25ZID0gc3RhcnRQb3NpdGlvblkgKyAyMDsKLQotICAgICAgICAgICAg
ICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHN0YXJ0UG9zaXRpb25YLCBzdGFydFBvc2l0aW9u
WSk7Ci0gICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Ci0gICAgICAgICAg
ICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oZW5kUG9zaXRpb25YLCBlbmRQb3NpdGlvblkp
OwotICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKLQotICAgICAgICAgICAg
ICAgIGVsZW1SZXN1bHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0MiIpOwotICAg
ICAgICAgICAgICAgIHJlc3VsdCA9ICJGQUlMIjsKLSAgICAgICAgICAgICAgICBpZiAoc2VsZWN0
aW9uLnRvU3RyaW5nKCkgPT0gInZlcmZsb3cxXzFcbk92ZXJmbG8iKQotICAgICAgICAgICAgICAg
ICAgICByZXN1bHQgPSAiUEFTUyI7Ci0KLSAgICAgICAgICAgICAgICBlbGVtUmVzdWx0LmNsYXNz
TmFtZSA9IHJlc3VsdDsKLSAgICAgICAgICAgICAgICBlbGVtUmVzdWx0LmlubmVySFRNTCA9ICIy
bmQgYXV0b21hdGVkIHNlbGVjdGlvbiB0ZXN0OiAiICsgcmVzdWx0OwotCi0gICAgICAgICAgICAg
ICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3RhcnRQb3NpdGlvblggKyAyMDAsIHN0YXJ0UG9z
aXRpb25ZKTsKLSAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKLSAgICAg
ICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
IH0KLSAgICA8L3NjcmlwdD4KLSAgICA8aGVhZD4KLSAgICAgICAgPHN0eWxlPgotICAgICAgICAg
ICAgI2NvbnRlbnQgewotICAgICAgICAgICAgICAgIC13ZWJraXQtZmxvdy1pbnRvOiBmbG93Owot
ICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC02MHB4OwotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgLm92ZXJmbG93IHsKLSAgICAgICAgICAgICAgICBjb2xvcjogb3JhbmdlOwotICAgICAg
ICAgICAgfQotICAgICAgICAgICAgLnJlZ2lvbiB7Ci0gICAgICAgICAgICAgICAgLXdlYmtpdC1m
bG93LWZyb206IGZsb3c7Ci0gICAgICAgICAgICAgICAgd2lkdGg6IDEwMHB4OwotICAgICAgICAg
ICAgICAgIGhlaWdodDogNDBweDsKLSAgICAgICAgICAgICAgICBib3JkZXItd2lkdGg6IDVweDsK
LSAgICAgICAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkOwotICAgICAgICAgICAgICAgIHBv
c2l0aW9uOiBhYnNvbHV0ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgICNyZWdpb24xIHsg
Ci0gICAgICAgICAgICAgICAgdG9wOiAzNjBweDsKLSAgICAgICAgICAgICAgICBsZWZ0OiAxMDBw
eDsKLSAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IGdyZWVuOwotICAgICAgICAgICAgfQot
ICAgICAgICAgICAgI3JlZ2lvbjIgeyAKLSAgICAgICAgICAgICAgICB0b3A6IDQxNXB4OwotICAg
ICAgICAgICAgICAgIGxlZnQ6IDEwMHB4OwotICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjog
Ymx1ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIC5QQVNTIHsKLSAgICAgICAgICAgICAg
ICBjb2xvcjogZ3JlZW47Ci0gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAuRkFJTCB7Ci0gICAgICAgICAgICAgICAgY29sb3I6IHJl
ZDsKLSAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIC5ub3RydW4gewotICAgICAgICAgICAgICAgIGNvbG9yOiByZWQ7Ci0gICAgICAg
ICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIDwvc3R5
bGU+Ci0gICAgPC9oZWFkPgotICAgIDxib2R5IG9ubG9hZD0ib25Cb2R5TG9hZCgpOyI+Ci0gICAg
ICAgIDxwPlRlc3QgdGhhdCBvdmVyZmxvdyBjb250ZW50IGZvciB0aGUgZmlyc3QgYW5kIGxhc3Qg
cmVnaW9ucyBpbiB0aGUgY2hhaW4gaXMgY29ycmVjdGx5IGRpc3BsYXllZCBpbiBkaWZmZXJlbnQg
c2l0dWF0aW9ucy48L3A+Ci0gICAgICAgIDxwPk9uIHN1Y2Nlc3MsIHRoZSBmb2xsb3dpbmcgc2hv
dWxkIGJlIHRydWU6PC9wPgotICAgICAgICA8dWw+Ci0gICAgICAgICAgICA8bGk+Rm91ciA8c3Bh
biBzdHlsZT0iY29sb3I6IG9yYW5nZTsiPjxiPm9yYW5nZTwvYj48L3NwYW4+IG92ZXJmbG93IGxp
bmVzIHNob3VsZCBiZSB2aXNpYmxlIGFib3ZlIGFuZCBiZWxvdyB0aGUgPHNwYW4gc3R5bGU9ImNv
bG9yOiBibHVlOyI+PGI+Ymx1ZTwvYj48L3NwYW4+IHJlZ2lvbiAodGhlIDR0aCBsaW5lIG92ZXJm
bG93cyBpbnRvIGEgZGlmZmVyZW50IHRpbGUpPC9saT4KLSAgICAgICAgICAgIDxsaT5BbGwgPHNw
YW4gc3R5bGU9ImNvbG9yOiBvcmFuZ2U7Ij48Yj5vcmFuZ2U8L2I+PC9zcGFuPiBvdmVyZmxvdyBs
aW5lcyBzaG91bGQgYmUgc2VsZWN0YWJsZTwvbGk+Ci0gICAgICAgIDwvdWw+Ci0gICAgICAgIDxk
aXYgaWQ9ImNvbnRlbnQiPgotICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3ZlcmZsb3ciPk92ZXJm
bG93MV8xPC9kaXY+Ci0gICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdmVyZmxvdyI+T3ZlcmZsb3cx
XzI8L2Rpdj4KLSAgICAgICAgICAgIDxici8+Ci0gICAgICAgICAgICA8ZGl2PmZsb3cxXzE8L2Rp
dj4KLSAgICAgICAgICAgIDxkaXY+ZmxvdzFfMjwvZGl2PgotICAgICAgICAgICAgPGRpdj5mbG93
MV8zPC9kaXY+Ci0gICAgICAgICAgICA8ZGl2PmZsb3cxXzQ8L2Rpdj4KLSAgICAgICAgICAgIDxi
ci8+Ci0gICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdmVyZmxvdyI+T3ZlcmZsb3cyXzE8L2Rpdj4K
LSAgICAgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJmbG93Ij5PdmVyZmxvdzJfMjwvZGl2PgotICAg
ICAgICA8L2Rpdj4KLQotICAgICAgICA8ZGl2IGNsYXNzPSJyZWdpb24iIGlkPSJyZWdpb24xIj48
L2Rpdj4KLSAgICAgICAgPGRpdiBjbGFzcz0icmVnaW9uIiBpZD0icmVnaW9uMiI+PC9kaXY+Ci0g
ICAgICAgIDxkaXYgaWQ9InJlc3VsdDEiIGNsYXNzPSJub3RydW4iPjFzdCBhdXRvbWF0ZWQgc2Vs
ZWN0aW9uIHRlc3Q6IE5PVCBSVU48L2Rpdj4KLSAgICAgICAgPGRpdiBpZD0icmVzdWx0MiIgY2xh
c3M9Im5vdHJ1biI+Mm5kIGF1dG9tYXRlZCBzZWxlY3Rpb24gdGVzdDogTk9UIFJVTjwvZGl2Pgot
ICAgIDwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9u
cy9vdmVyZmxvdy1sYXN0LXJlZ2lvbi1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9y
ZWdpb25zL292ZXJmbG93LWxhc3QtcmVnaW9uLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTAx
MDIzYzEwMDM1NjQ0NTUyOWE5ZTgxYzdjMDJiNTM1YmRiODcyMQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9vdmVyZmxvdy1sYXN0LXJlZ2lvbi1leHBlY3RlZC5o
dG1sCkBAIC0wLDAgKzEsMzUgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWwgc3R5bGU9ImZvbnQ6
IDE2cHgvMS4yNSBtb25vc3BhY2U7Ij4KKyAgICA8aGVhZD4KKyAgICAgICAgPHN0eWxlPgorICAg
ICAgICAgICAgLm92ZXJmbG93IHsgY29sb3I6IG9yYW5nZTsgbWFyZ2luOiAwOyB9CisgICAgICAg
ICAgICBkaXYgPiBwIHsgbWFyZ2luOiAwOyB9CisKKyAgICAgICAgICAgICNyZWdpb24xLCAjcmVn
aW9uMiB7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsgfQorICAgICAgICAgICAgI3JlZ2lv
bjEgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMjAwcHg7IGxlZnQ6IDEwMHB4OyBib3JkZXI6
IDVweCBzb2xpZCBncmVlbjt9CisgICAgICAgICAgICAjcmVnaW9uMiB7IHBvc2l0aW9uOiBhYnNv
bHV0ZTsgdG9wOiAzNTBweDsgbGVmdDogMTAwcHg7IGJvcmRlcjogNXB4IHNvbGlkIGJsdWU7fQor
ICAgICAgICAgICAgI3AxIHsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDQ3NXB4OyBsZWZ0OiAx
MDVweDsgfQorICAgICAgICAgICAgI3AyIHsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDQ5NXB4
OyBsZWZ0OiAxMDVweDsgfQorICAgICAgICA8L3N0eWxlPgorICAgIDwvaGVhZD4KKyAgICA8Ym9k
eT4KKyAgICAgICAgPHA+VGVzdCB0aGF0IG92ZXJmbG93IGNvbnRlbnQgZm9yIHRoZSBsYXN0IHJl
Z2lvbiBpbiBjaGFpbiBpcyBjb3JyZWN0bHkgZGlzcGxheWVkIGluIGRpZmZlcmVudCB3cml0aW5n
IG1vZGVzLjwvcD4KKyAgICAgICAgPHA+T24gc3VjY2VzcywgdGhlIG9yYW5nZSBsaW5lcyBvZiB0
ZXh0IHNob3VsZCBiZSB2aXNpYmxlIGFib3ZlIHRoZSBibHVlIGJvcmRlciByZWN0YW5nbGUuPC9w
PgorICAgICAgICA8ZGl2IGlkPSJyZWdpb24xIj4KKyAgICAgICAgICAgIDxwPkxpbmV0ZXh0MTwv
cD4KKyAgICAgICAgICAgIDxwPkxpbmV0ZXh0MjwvcD4KKyAgICAgICAgICAgIDxwPkxpbmV0ZXh0
MzwvcD4KKyAgICAgICAgICAgIDxwPkxpbmV0ZXh0NDwvcD4KKyAgICAgICAgICAgIDxwPkxpbmV0
ZXh0NTwvcD4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgaWQ9InJlZ2lvbjIiPgorICAg
ICAgICAgICAgPHA+TGluZXRleHQ2PC9wPgorICAgICAgICAgICAgPHA+TGluZXRleHQ3PC9wPgor
ICAgICAgICAgICAgPHA+TGluZXRleHQ4PC9wPgorICAgICAgICAgICAgPHA+TGluZXRleHQ5PC9w
PgorICAgICAgICAgICAgPHA+TGluZXRleHQxMDwvcD4KKyAgICAgICAgPC9kaXY+CisgICAgICAg
IDxwIGlkPSJwMSIgY2xhc3M9Im92ZXJmbG93Ij5PdmVyZmxvdzExPC9wPgorICAgICAgICA8cCBp
ZD0icDIiIGNsYXNzPSJvdmVyZmxvdyI+T3ZlcmZsb3cxMjwvcD4KKyAgICA8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvb3ZlcmZsb3ctbGFzdC1y
ZWdpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9vdmVyZmxvdy1sYXN0LXJlZ2lv
bi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjIxNDM5NTFkZjg3N2E2Y2ExOGI2MTI5MjBkNGIxZGU5NjUzOTZl
NzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvb3ZlcmZsb3ct
bGFzdC1yZWdpb24uaHRtbApAQCAtMCwwICsxLDM3IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1s
IHN0eWxlPSJmb250OiAxNnB4LzEuMjUgbW9ub3NwYWNlOyI+CisgICAgPGhlYWQ+CisgICAgICAg
IDxzdHlsZT4KKyAgICAgICAgICAgICNjb250ZW50IHsKKyAgICAgICAgICAgICAgICAtd2Via2l0
LWZsb3ctaW50bzogZmxvdzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC5vdmVyZmxvdyB7
IGNvbG9yOiBvcmFuZ2U7IH0KKyAgICAgICAgICAgICNjb250ZW50ID4gcCB7IG1hcmdpbjogMDsg
fQorCisgICAgICAgICAgICAjcmVnaW9uMSwgI3JlZ2lvbjIgeyAtd2Via2l0LWZsb3ctZnJvbTog
Zmxvdzsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyB9CisgICAgICAgICAgICAjcmVnaW9u
MSB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAyMDBweDsgbGVmdDogMTAwcHg7IGJvcmRlcjog
NXB4IHNvbGlkIGdyZWVuO30KKyAgICAgICAgICAgICNyZWdpb24yIHsgcG9zaXRpb246IGFic29s
dXRlOyB0b3A6IDM1MHB4OyBsZWZ0OiAxMDBweDsgYm9yZGVyOiA1cHggc29saWQgYmx1ZTt9Cisg
ICAgICAgIDwvc3R5bGU+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8cD5UZXN0
IHRoYXQgb3ZlcmZsb3cgY29udGVudCBmb3IgdGhlIGxhc3QgcmVnaW9uIGluIGNoYWluIGlzIGNv
cnJlY3RseSBkaXNwbGF5ZWQgaW4gZGlmZmVyZW50IHdyaXRpbmcgbW9kZXMuPC9wPgorICAgICAg
ICA8cD5PbiBzdWNjZXNzLCB0aGUgb3JhbmdlIGxpbmVzIG9mIHRleHQgc2hvdWxkIGJlIHZpc2li
bGUgYWJvdmUgdGhlIGJsdWUgYm9yZGVyIHJlY3RhbmdsZS48L3A+CisgICAgICAgIDxkaXYgaWQ9
ImNvbnRlbnQiPgorICAgICAgICAgICAgPHA+TGluZXRleHQxPC9wPgorICAgICAgICAgICAgPHA+
TGluZXRleHQyPC9wPgorICAgICAgICAgICAgPHA+TGluZXRleHQzPC9wPgorICAgICAgICAgICAg
PHA+TGluZXRleHQ0PC9wPgorICAgICAgICAgICAgPHA+TGluZXRleHQ1PC9wPgorICAgICAgICAg
ICAgPHA+TGluZXRleHQ2PC9wPgorICAgICAgICAgICAgPHA+TGluZXRleHQ3PC9wPgorICAgICAg
ICAgICAgPHA+TGluZXRleHQ4PC9wPgorICAgICAgICAgICAgPHA+TGluZXRleHQ5PC9wPgorICAg
ICAgICAgICAgPHA+TGluZXRleHQxMDwvcD4KKyAgICAgICAgICAgIDxici8+CisgICAgICAgICAg
ICA8cCBjbGFzcz0ib3ZlcmZsb3ciPk92ZXJmbG93MTE8L3A+CisgICAgICAgICAgICA8cCBjbGFz
cz0ib3ZlcmZsb3ciPk92ZXJmbG93MTI8L3A+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2
IGlkPSJyZWdpb24xIj48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0icmVnaW9uMiI+PC9kaXY+Cisg
ICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25z
L292ZXJmbG93LW5lc3RlZC1yZWdpb25zLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L3JlZ2lvbnMvb3ZlcmZsb3ctbmVzdGVkLXJlZ2lvbnMtZXhwZWN0ZWQuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDc1YWY2NmRmYTQ0ODZmYzZhNmY1N2Y0MDJlZWUzOTgyYzgy
MjlmMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L3JlZ2lvbnMvb3ZlcmZsb3ctbmVzdGVkLXJlZ2lvbnMtZXhwZWN0ZWQuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDUzICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci0gICAgPHN0
eWxlPgotICAgICAgICAjY29udGVudEJsdWUgewotICAgICAgICAgICAgY29sb3I6IGJsdWU7Ci0g
ICAgICAgIH0KLQotICAgICAgICAjY29udGVudFJlZCB7Ci0gICAgICAgICAgICBjb2xvcjogcmVk
OwotICAgICAgICB9Ci0KLSAgICAgICAgI3JlZ2lvbkJsdWUgewotICAgICAgICAgICAgYm9yZGVy
OiB0aGljayBzb2xpZCBibHVlOwotICAgICAgICAgICAgd2lkdGg6IDQwMHB4OwotICAgICAgICAg
ICAgaGVpZ2h0OiAyMTNweDsKLSAgICAgICAgfQotCi0gICAgICAgICNyZWdpb25SZWQgewotICAg
ICAgICAgICAgd2lkdGg6IDMwMHB4OwotICAgICAgICAgICAgYm9yZGVyOiB0aGljayBzb2xpZCBy
ZWQ7Ci0gICAgICAgICAgICBtYXgtaGVpZ2h0OiA1MHB4OwotICAgICAgICAgICAgcGFkZGluZzog
NXB4OwotICAgICAgICB9Ci0KLSAgICAgICAgLnJlZ2lvbl9jb250YWluZXIgewotICAgICAgICAg
ICAgYm9yZGVyOiB0aGluIHNvbGlkIGJsYWNrOwotICAgICAgICAgICAgb3ZlcmZsb3c6IHZpc2li
bGU7Ci0gICAgICAgICAgICBwYWRkaW5nOiAxMHB4OwotICAgICAgICAgICAgaGVpZ2h0OiAyNjBw
eDsKLSAgICAgICAgfQotCi0gICAgICAgICNyZXN1bHQgewotICAgICAgICAgICAgbWFyZ2luLXRv
cDogNzBweDsKLSAgICAgICAgICAgIGNvbG9yOiBncmVlbjsKLSAgICAgICAgICAgIGZvbnQtd2Vp
Z2h0OiBib2xkOwotICAgICAgICB9Ci0gICAgPC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5PgotICAg
IDxwPlRlc3QgdGhhdCBvdmVyZmxvdyBjb250ZW50IGlzIGNvcnJlY3RseSBjb21wdXRlZCBpbiBu
ZXN0ZWQgcmVnaW9ucy48L3A+Ci0gICAgPGRpdiBjbGFzcz0icmVnaW9uX2NvbnRhaW5lciI+Ci0g
ICAgICAgIDxkaXYgY2xhc3M9InJlZ2lvbkJsdWUiIGlkPSJyZWdpb25CbHVlIj4KLSAgICAgICAg
ICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQiIGlkPSJjb250ZW50Qmx1ZSI+TG9yZW0gaXBzdW0gZG9s
b3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gQWVuZWFuIHVybmEgb3Jj
aSwgY29uc2VxdWF0IHNlZCBsb2JvcnRpcyBpbiwgY29udmFsbGlzIGV0IHZlbGl0LiBVdCBlbGVt
ZW50dW0gbGFjdXMgYWMgZHVpIHZlc3RpYnVsdW0gZXUgY29uZGltZW50dW0gbWkgbHVjdHVzLiBG
dXNjZSBwaGFyZXRyYSB0dXJwaXMgaWQgZXJhdCBjb25ndWUgbmVjIGFsaXF1YW0gbGVvIHZlbmVu
YXRpcy4gQ3VtIHNvY2lpcyBuYXRvcXVlIHBlbmF0aWJ1cyBldCBtYWduaXMgZGlzIHBhcnR1cmll
bnQgbW9udGVzLCBuYXNjZXR1ciByaWRpY3VsdXMgbXVzLgotICAgICAgICAgICAgICAgIDxkaXYg
Y2xhc3M9InJlZ2lvblJlZCIgaWQ9InJlZ2lvblJlZCI+Ci0gICAgICAgICAgICAgICAgICAgIDxk
aXYgY2xhc3M9ImNvbnRlbnQiIGlkPSJjb250ZW50UmVkIj5VdCBhdCB0b3J0b3IgbGlndWxhLiBD
cmFzIHRlbXBvciBzZW0gc2VkIHRlbGx1cyBjb252YWxsaXMgdGluY2lkdW50IGVnZXQgZWdldCBk
b2xvci4gSW4gZmFjaWxpc2lzIGFudGUgYXQgdHVycGlzIHNlbXBlciBzZW1wZXIuIEN1cmFiaXR1
ciB2dWxwdXRhdGUgYWxpcXVldCB0aW5jaWR1bnQuIFF1aXNxdWUgc2l0IGFtZXQgbWFzc2EganVz
dG8sIGluIGJpYmVuZHVtIGxlby4gQWxpcXVhbSBsYWNpbmlhIHBoYXJldHJhIGp1c3RvLiBTdXNw
ZW5kaXNzZSByaG9uY3VzIGp1c3RvIG5lYyBkaWFtIGN1cnN1cyB1bGxhbWNvcnBlci4gTmFtIHBv
cnR0aXRvciBwb3J0dGl0b3IgbGliZXJvLCBjb252YWxsaXMgc29sbGljaXR1ZGluIG51bmMgZXVp
c21vZCBhdC4gUHJvaW4gdGVtcHVzIGF1Y3RvciB0dXJwaXMgdXQgY29uZ3VlLiBOdWxsYW0gb3Ju
YXJlIGludGVyZHVtIGVyb3Mgc2VkIHN1c2NpcGl0LjwvZGl2PgotICAgICAgICAgICAgICAgIDwv
ZGl2PgotICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAgIDwvZGl2PgotICAgIDwvZGl2PgotCi0g
ICAgPGRpdiBpZD0icmVzdWx0Ij5BdXRvbWF0ZWQgc2VsZWN0aW9uIHRlc3Q6IFBBU1M8L2Rpdj4K
LTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9v
dmVyZmxvdy1uZXN0ZWQtcmVnaW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL292
ZXJmbG93LW5lc3RlZC1yZWdpb25zLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDdmNDEzMjk2ODIzZTdjOGM3OTg5MDY2MDk3Mzk0NjhlYzBkY2RhNjAuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25z
L292ZXJmbG93LW5lc3RlZC1yZWdpb25zLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMDIgKzAs
MCBAQAotPGh0bWw+Ci08aGVhZD4KLSAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+
Ci0gICAgICAgIGZ1bmN0aW9uIG9uQm9keUxvYWQoKSB7Ci0gICAgICAgICAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAgICAgICAKLQotICAgICAgICAgICAgICAgIC8vIFRl
c3Qgc2VsZWN0aW9uIG9uIHRoZSBvdmVyZmxvdyBiZWxvdyB0aGUgbGFzdCByZWdpb24uCi0gICAg
ICAgICAgICAgICAgdmFyIHJlZ2lvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb25S
ZWQiKTsKLSAgICAgICAgICAgICAgICB2YXIgc3RhcnRQb3NpdGlvblggPSByZWdpb24ub2Zmc2V0
TGVmdCArIDcwOwotICAgICAgICAgICAgICAgIHZhciBzdGFydFBvc2l0aW9uWSA9IHJlZ2lvbi5v
ZmZzZXRUb3AgKyAxNTsKLSAgICAgICAgICAgICAgICB2YXIgZW5kUG9zaXRpb25YID0gc3RhcnRQ
b3NpdGlvblggKyAxMDA7Ci0gICAgICAgICAgICAgICAgdmFyIGVuZFBvc2l0aW9uWSA9IHN0YXJ0
UG9zaXRpb25ZICsgMTUwOwotCi0gICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3Zl
VG8oc3RhcnRQb3NpdGlvblgsIHN0YXJ0UG9zaXRpb25ZKTsKLSAgICAgICAgICAgICAgICBldmVu
dFNlbmRlci5tb3VzZURvd24oKTsKLSAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1v
dmVUbyhlbmRQb3NpdGlvblgsIGVuZFBvc2l0aW9uWSk7Ci0gICAgICAgICAgICAgICAgZXZlbnRT
ZW5kZXIubW91c2VVcCgpOwotCi0gICAgICAgICAgICAgICAgdmFyIGVsZW1SZXN1bHQgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0Iik7Ci0gICAgICAgICAgICAgICAgdmFyIHJlc3Vs
dCA9ICJGQUlMIjsKLSAgICAgICAgICAgICAgICB2YXIgc2VsZWN0aW9uID0gd2luZG93LmdldFNl
bGVjdGlvbigpOwotICAgICAgICAgICAgICAgIGlmIChzZWxlY3Rpb24udG9TdHJpbmcoKSA9PSAi
b3IgbGlndWxhLiBDcmFzIHRlbXBvciBzZW0gc2VkIHRlbGx1cyBjb252YWxsaXMgdGluY2lkdW50
IGVnZXQgZWdldCBkb2xvci4gSW4gZmFjaWxpc2lzIGFudGUgYXQgdHVycGlzIHNlbXBlciBzZW1w
ZXIuIEN1cmFiaXR1ciB2dWxwdXRhdGUgYWxpcXVldCB0aW5jaWR1bnQuIFF1aXNxdWUgc2l0IGFt
ZXQgbWFzc2EganVzdG8sIGluIGJpYmVuZHVtIGxlby4gQWxpcXVhbSBsYWNpbmlhIHBoYXJldHJh
IGp1c3RvLiBTdXNwZW5kaXNzZSByaG9uY3VzIGp1c3RvIG5lYyBkaWFtIGN1cnN1cyB1bGxhbWNv
cnBlci4gTmFtIHBvcnR0aXRvciBwb3J0dGl0b3IgbGliZXJvLCBjb252YWxsaXMgc29sbGljaXR1
ZGluIG51bmMgZXVpc21vZCBhdC4gUHJvaW4gdGVtcHVzIikKLSAgICAgICAgICAgICAgICAgICAg
cmVzdWx0ID0gIlBBU1MiOwotCi0gICAgICAgICAgICAgICAgZWxlbVJlc3VsdC5jbGFzc05hbWUg
PSByZXN1bHQ7Ci0gICAgICAgICAgICAgICAgZWxlbVJlc3VsdC5pbm5lckhUTUwgPSAiQXV0b21h
dGVkIHNlbGVjdGlvbiB0ZXN0OiAiICsgcmVzdWx0OwotCi0gICAgICAgICAgICAgICAgLy8gQ2xl
YXIgc2VsZWN0aW9uLgotICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHN0
YXJ0UG9zaXRpb25YLCBzdGFydFBvc2l0aW9uWSk7Ci0gICAgICAgICAgICAgICAgZXZlbnRTZW5k
ZXIubW91c2VEb3duKCk7Ci0gICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwot
ICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgPC9zY3JpcHQ+Ci0KLSAgICA8c3R5bGU+Ci0g
ICAgICAgICNjb250ZW50Qmx1ZSB7Ci0gICAgICAgICAgICAtd2Via2l0LWZsb3ctaW50bzogZmxv
d0JsdWU7Ci0gICAgICAgICAgICBjb2xvcjogYmx1ZTsKLSAgICAgICAgfQotCi0gICAgICAgICNj
b250ZW50UmVkIHsKLSAgICAgICAgICAgIC13ZWJraXQtZmxvdy1pbnRvOiBmbG93UmVkOwotICAg
ICAgICAgICAgY29sb3I6IHJlZDsKLSAgICAgICAgfQotCi0gICAgICAgICNyZWdpb25CbHVlIHsK
LSAgICAgICAgICAgIGJvcmRlcjogdGhpY2sgc29saWQgYmx1ZTsKLSAgICAgICAgICAgIC13ZWJr
aXQtZmxvdy1mcm9tOiBmbG93Qmx1ZTsKLSAgICAgICAgICAgIHdpZHRoOiA0MDBweDsKLSAgICAg
ICAgICAgIGhlaWdodDogMjEzcHg7Ci0gICAgICAgIH0KLQotICAgICAgICAjcmVnaW9uUmVkIHsK
LSAgICAgICAgICAgIHdpZHRoOiAzMDBweDsKLSAgICAgICAgICAgIGJvcmRlcjogdGhpY2sgc29s
aWQgcmVkOwotICAgICAgICAgICAgLXdlYmtpdC1mbG93LWZyb206IGZsb3dSZWQ7Ci0gICAgICAg
ICAgICBtYXgtaGVpZ2h0OiA1MHB4OwotICAgICAgICAgICAgcGFkZGluZzogNXB4OwotICAgICAg
ICB9Ci0KLSAgICAgICAgLnJlZ2lvbl9jb250YWluZXIgewotICAgICAgICAgICAgYm9yZGVyOiB0
aGluIHNvbGlkIGJsYWNrOwotICAgICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7Ci0gICAgICAg
ICAgICBwYWRkaW5nOiAxMHB4OwotICAgICAgICAgICAgaGVpZ2h0OiAyNjBweDsKLSAgICAgICAg
fQotCi0gICAgICAgIC5QQVNTIHsKLSAgICAgICAgICAgIGNvbG9yOiBncmVlbjsKLSAgICAgICAg
ICAgIGZvbnQtd2VpZ2h0OiBib2xkOwotICAgICAgICB9Ci0KLSAgICAgICAgLkZBSUwgewotICAg
ICAgICAgICAgY29sb3I6IHJlZDsKLSAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwotICAg
ICAgICB9Ci0KLSAgICAgICAgLm5vdHJ1biB7Ci0gICAgICAgICAgICBjb2xvcjogcmVkOwotICAg
ICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7Ci0gICAgICAgIH0KLQotICAgICAgICAjcmVzdWx0
IHsKLSAgICAgICAgICAgIG1hcmdpbi10b3A6IDcwcHg7Ci0gICAgICAgIH0KLSAgICA8L3N0eWxl
PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJvbkJvZHlMb2FkKCk7Ij4KLSAgICA8cD5UZXN0IHRo
YXQgb3ZlcmZsb3cgY29udGVudCBpcyBjb3JyZWN0bHkgY29tcHV0ZWQgaW4gbmVzdGVkIHJlZ2lv
bnMuPC9wPgotICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQiIGlkPSJjb250ZW50Qmx1ZSI+TG9yZW0g
aXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gQWVuZWFu
IHVybmEgb3JjaSwgY29uc2VxdWF0IHNlZCBsb2JvcnRpcyBpbiwgY29udmFsbGlzIGV0IHZlbGl0
LiBVdCBlbGVtZW50dW0gbGFjdXMgYWMgZHVpIHZlc3RpYnVsdW0gZXUgY29uZGltZW50dW0gbWkg
bHVjdHVzLiBGdXNjZSBwaGFyZXRyYSB0dXJwaXMgaWQgZXJhdCBjb25ndWUgbmVjIGFsaXF1YW0g
bGVvIHZlbmVuYXRpcy4gQ3VtIHNvY2lpcyBuYXRvcXVlIHBlbmF0aWJ1cyBldCBtYWduaXMgZGlz
IHBhcnR1cmllbnQgbW9udGVzLCBuYXNjZXR1ciByaWRpY3VsdXMgbXVzLgotICAgICAgICA8ZGl2
IGNsYXNzPSJyZWdpb25SZWQiIGlkPSJyZWdpb25SZWQiPjwvZGl2PgotICAgIDwvZGl2PgotICAg
IDxkaXYgY2xhc3M9ImNvbnRlbnQiIGlkPSJjb250ZW50UmVkIj5VdCBhdCB0b3J0b3IgbGlndWxh
LiBDcmFzIHRlbXBvciBzZW0gc2VkIHRlbGx1cyBjb252YWxsaXMgdGluY2lkdW50IGVnZXQgZWdl
dCBkb2xvci4gSW4gZmFjaWxpc2lzIGFudGUgYXQgdHVycGlzIHNlbXBlciBzZW1wZXIuIEN1cmFi
aXR1ciB2dWxwdXRhdGUgYWxpcXVldCB0aW5jaWR1bnQuIFF1aXNxdWUgc2l0IGFtZXQgbWFzc2Eg
anVzdG8sIGluIGJpYmVuZHVtIGxlby4gQWxpcXVhbSBsYWNpbmlhIHBoYXJldHJhIGp1c3RvLiBT
dXNwZW5kaXNzZSByaG9uY3VzIGp1c3RvIG5lYyBkaWFtIGN1cnN1cyB1bGxhbWNvcnBlci4gTmFt
IHBvcnR0aXRvciBwb3J0dGl0b3IgbGliZXJvLCBjb252YWxsaXMgc29sbGljaXR1ZGluIG51bmMg
ZXVpc21vZCBhdC4gUHJvaW4gdGVtcHVzIGF1Y3RvciB0dXJwaXMgdXQgY29uZ3VlLiBOdWxsYW0g
b3JuYXJlIGludGVyZHVtIGVyb3Mgc2VkIHN1c2NpcGl0LjwvZGl2PgotICAgIDxkaXYgY2xhc3M9
InJlZ2lvbl9jb250YWluZXIiPgotICAgICAgICA8ZGl2IGNsYXNzPSJyZWdpb25CbHVlIiBpZD0i
cmVnaW9uQmx1ZSI+PC9kaXY+Ci0gICAgPC9kaXY+Ci0KLSAgICA8ZGl2IGlkPSJyZXN1bHQiIGNs
YXNzPSJub3RydW4iPkF1dG9tYXRlZCBzZWxlY3Rpb24gdGVzdDogTk9UIFJVTjwvZGl2PgotPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL292ZXJm
bG93LXJlZ2lvbi1mbG9hdC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25z
L292ZXJmbG93LXJlZ2lvbi1mbG9hdC1leHBlY3RlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBkZjZiNWQzMzBhMjFmZTgyODdiNzU1YTYxYzE4OGZhZTdjM2FjNDE5Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvcmVnaW9ucy9vdmVyZmxvdy1yZWdpb24tZmxvYXQtZXhwZWN0ZWQuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDUwICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWwgc3R5bGU9ImZvbnQ6
IDE2cHgvMS4yNSBtb25vc3BhY2U7Ij4KLSAgICA8aGVhZD4KLSAgICAgICAgPHN0eWxlPgotICAg
ICAgICAgICAgI2NvbnRlbnQgewotICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IGRvdHRlZCBi
bGFjazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIC5vdmVyZmxvdyB7Ci0gICAgICAgICAg
ICAgICAgY29sb3I6IG9yYW5nZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgICNyZWdpb24g
ewotICAgICAgICAgICAgICAgIHdpZHRoOiAzMDBweDsKLSAgICAgICAgICAgICAgICBoZWlnaHQ6
IDEwMHB4OwotICAgICAgICAgICAgICAgIGJvcmRlcjogMTBweCBzb2xpZCBibHVlOwotICAgICAg
ICAgICAgICAgIHBhZGRpbmc6IDVweDsKLSAgICAgICAgICAgICAgICBmbG9hdDogcmlnaHQ7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAjcmVnaW9uQ29udGFpbmVyIHsKLSAgICAgICAgICAg
ICAgICBib3JkZXI6IDJweCBzb2xpZCBibGFjazsKLSAgICAgICAgICAgICAgICBwb3NpdGlvbjog
YWJzb2x1dGU7Ci0gICAgICAgICAgICAgICAgdG9wOiAxNjBweDsKLSAgICAgICAgICAgICAgICBw
YWRkaW5nOiAxMHB4OwotICAgICAgICAgICAgICAgIHdpZHRoOiA5NSU7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgIDwvc3R5bGU+Ci0gICAgPC9oZWFkPgotICAgIDxib2R5PgotICAgICAgICA8cD5U
ZXN0IHRoYXQgb3ZlcmZsb3cgY29udGVudCBpcyBjb3JyZWN0bHkgY29tcHV0ZWQgd2hlbiB0aGUg
cmVnaW9uIGlzIGZsb2F0aW5nLjwvcD4KLSAgICAgICAgPHA+T24gc3VjY2VzcywgdGhlIGZvbGxv
d2luZyBzaG91bGQgYmUgdHJ1ZTo8L3A+Ci0gICAgICAgIDx1bD4KLSAgICAgICAgICAgIDxsaT5U
aHJlZSA8c3BhbiBzdHlsZT0iY29sb3I6IG9yYW5nZTsiPjxiPm9yYW5nZTwvYj48L3NwYW4+IG92
ZXJmbG93IGxpbmVzIHNob3VsZCBiZSB2aXNpYmxlIGJlbG93IHRoZSA8c3BhbiBzdHlsZT0iY29s
b3I6IGJsdWU7Ij48Yj5ibHVlPC9iPjwvc3Bhbj4gcmVnaW9uLjwvbGk+Ci0gICAgICAgICAgICA8
bGk+QWxsIDxzcGFuIHN0eWxlPSJjb2xvcjogb3JhbmdlOyI+PGI+b3JhbmdlPC9iPjwvc3Bhbj4g
b3ZlcmZsb3cgbGluZXMgc2hvdWxkIGJlIHNlbGVjdGFibGU8L2xpPgotICAgICAgICA8L3VsPgot
ICAgICAgICA8ZGl2IGlkPSJyZWdpb25Db250YWluZXIiPgotICAgICAgICAgICAgPGRpdiBpZD0i
cmVnaW9uIj4KLSAgICAgICAgICAgICAgICA8ZGl2IGlkPSJjb250ZW50Ij4KLSAgICAgICAgICAg
ICAgICAgICAgPGRpdj5mbG93MV8xPC9kaXY+Ci0gICAgICAgICAgICAgICAgICAgIDxkaXY+Zmxv
dzFfMjwvZGl2PgotICAgICAgICAgICAgICAgICAgICA8ZGl2PmZsb3cxXzM8L2Rpdj4KLSAgICAg
ICAgICAgICAgICAgICAgPGRpdj5mbG93MV80PC9kaXY+Ci0gICAgICAgICAgICAgICAgICAgIDxk
aXY+ZmxvdzFfNTwvZGl2PgotICAgICAgICAgICAgICAgICAgICA8YnIvPjxici8+Ci0gICAgICAg
ICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJmbG93Ij5PdmVyZmxvdzJfMTwvZGl2PgotICAg
ICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdmVyZmxvdyI+T3ZlcmZsb3cyXzI8L2Rpdj4K
LSAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3ZlcmZsb3ciPk92ZXJmbG93Ml8zPC9k
aXY+Ci0gICAgICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAgICAgICA8L2Rpdj4KLSAgICAgICAg
PC9kaXY+Ci0gICAgPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9yZWdpb25zL292ZXJmbG93LXJlZ2lvbi1mbG9hdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9y
ZWdpb25zL292ZXJmbG93LXJlZ2lvbi1mbG9hdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBiMTRiM2I0ZGJmYmM0NTgxMTIxZWIwYTdlZDZiNWRhNDUwYjUyMWUzLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
cmVnaW9ucy9vdmVyZmxvdy1yZWdpb24tZmxvYXQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUx
ICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWwgc3R5bGU9ImZvbnQ6IDE2cHgvMS4yNSBt
b25vc3BhY2U7Ij4KLSAgICA8aGVhZD4KLSAgICAgICAgPHN0eWxlPgotICAgICAgICAgICAgI2Nv
bnRlbnQgewotICAgICAgICAgICAgICAgIC13ZWJraXQtZmxvdy1pbnRvOiBmbG93OwotICAgICAg
ICAgICAgICAgIGJvcmRlcjogMXB4IGRvdHRlZCBibGFjazsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIC5vdmVyZmxvdyB7Ci0gICAgICAgICAgICAgICAgY29sb3I6IG9yYW5nZTsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICNyZWdpb24gewotICAgICAgICAgICAgICAgIC13ZWJraXQt
Zmxvdy1mcm9tOiBmbG93OwotICAgICAgICAgICAgICAgIHdpZHRoOiAzMDBweDsKLSAgICAgICAg
ICAgICAgICBoZWlnaHQ6IDEwMHB4OwotICAgICAgICAgICAgICAgIGJvcmRlcjogMTBweCBzb2xp
ZCBibHVlOwotICAgICAgICAgICAgICAgIHBhZGRpbmc6IDVweDsKLSAgICAgICAgICAgICAgICBm
bG9hdDogcmlnaHQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAjcmVnaW9uQ29udGFpbmVy
IHsKLSAgICAgICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCBibGFjazsKLSAgICAgICAgICAg
ICAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgICAgICAgICAgICAgdG9wOiAxNjBweDsKLSAg
ICAgICAgICAgICAgICBwYWRkaW5nOiAxMHB4OwotICAgICAgICAgICAgICAgIHdpZHRoOiA5NSU7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgIDwvc3R5bGU+Ci0gICAgPC9oZWFkPgotICAgIDxib2R5
PgotICAgICAgICA8cD5UZXN0IHRoYXQgb3ZlcmZsb3cgY29udGVudCBpcyBjb3JyZWN0bHkgY29t
cHV0ZWQgd2hlbiB0aGUgcmVnaW9uIGlzIGZsb2F0aW5nLjwvcD4KLSAgICAgICAgPHA+T24gc3Vj
Y2VzcywgdGhlIGZvbGxvd2luZyBzaG91bGQgYmUgdHJ1ZTo8L3A+Ci0gICAgICAgIDx1bD4KLSAg
ICAgICAgICAgIDxsaT5UaHJlZSA8c3BhbiBzdHlsZT0iY29sb3I6IG9yYW5nZTsiPjxiPm9yYW5n
ZTwvYj48L3NwYW4+IG92ZXJmbG93IGxpbmVzIHNob3VsZCBiZSB2aXNpYmxlIGJlbG93IHRoZSA8
c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij48Yj5ibHVlPC9iPjwvc3Bhbj4gcmVnaW9uLjwvbGk+
Ci0gICAgICAgICAgICA8bGk+QWxsIDxzcGFuIHN0eWxlPSJjb2xvcjogb3JhbmdlOyI+PGI+b3Jh
bmdlPC9iPjwvc3Bhbj4gb3ZlcmZsb3cgbGluZXMgc2hvdWxkIGJlIHNlbGVjdGFibGU8L2xpPgot
ICAgICAgICA8L3VsPgotICAgICAgICA8ZGl2IGlkPSJjb250ZW50Ij4KLSAgICAgICAgICAgIDxk
aXY+ZmxvdzFfMTwvZGl2PgotICAgICAgICAgICAgPGRpdj5mbG93MV8yPC9kaXY+Ci0gICAgICAg
ICAgICA8ZGl2PmZsb3cxXzM8L2Rpdj4KLSAgICAgICAgICAgIDxkaXY+ZmxvdzFfNDwvZGl2Pgot
ICAgICAgICAgICAgPGRpdj5mbG93MV81PC9kaXY+Ci0gICAgICAgICAgICA8YnIvPjxici8+Ci0g
ICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdmVyZmxvdyI+T3ZlcmZsb3cyXzE8L2Rpdj4KLSAgICAg
ICAgICAgIDxkaXYgY2xhc3M9Im92ZXJmbG93Ij5PdmVyZmxvdzJfMjwvZGl2PgotICAgICAgICAg
ICAgPGRpdiBjbGFzcz0ib3ZlcmZsb3ciPk92ZXJmbG93Ml8zPC9kaXY+Ci0gICAgICAgIDwvZGl2
PgotICAgICAgICA8ZGl2IGlkPSJyZWdpb25Db250YWluZXIiPgotICAgICAgICAgICAgPGRpdiBp
ZD0icmVnaW9uIj48L2Rpdj4KLSAgICAgICAgPC9kaXY+Ci0gICAgPC9ib2R5PgotPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL292ZXJmbG93LXJlZ2lvbi1pbmxp
bmUtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9vdmVyZmxvdy1yZWdp
b24taW5saW5lLWV4cGVjdGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY0
NWQxNmUyZTI2MTM1MDM3NGEwOWIxYTZiODQ0YTdiYjYyYzE3MzkuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL292
ZXJmbG93LXJlZ2lvbi1pbmxpbmUtZXhwZWN0ZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDc5
ICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWwgc3R5bGU9ImZvbnQ6IDE2cHgvMS4yNSBt
b25vc3BhY2U7Ij4KLSAgICA8aGVhZD4KLSAgICAgICAgPHN0eWxlPgotICAgICAgICAgICAgI2Nv
bnRlbnQgewotICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IGRvdHRlZCBibGFjazsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICNjb250ZW50MiB7Ci0gICAgICAgICAgICAgICAgLXdlYmtp
dC1mbG93LWludG86IGZsb3cyOwotICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IGRvdHRlZCBi
bGFjazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIC5vdmVyZmxvdyB7Ci0gICAgICAgICAg
ICAgICAgY29sb3I6IG9yYW5nZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIC5vcGFjaXR5
IHsKLSAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAjcmVnaW9uIHsKLSAgICAgICAgICAgICAgICB3aWR0aDogMjcwcHg7Ci0gICAgICAgICAg
ICAgICAgaGVpZ2h0OiAxMDBweDsKLSAgICAgICAgICAgICAgICBib3JkZXI6IDEwcHggc29saWQg
Ymx1ZTsKLSAgICAgICAgICAgICAgICBwYWRkaW5nOiA1cHg7Ci0gICAgICAgICAgICAgICAgZGlz
cGxheTogaW5saW5lLWJsb2NrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgI3JlZ2lvbklu
U3BhbiB7Ci0gICAgICAgICAgICAgICAgLXdlYmtpdC1mbG93LWZyb206IGZsb3cyOwotICAgICAg
ICAgICAgICAgIHdpZHRoOiAyNzBweDsKLSAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4Owot
ICAgICAgICAgICAgICAgIGJvcmRlcjogMTBweCBzb2xpZCBibHVlOwotICAgICAgICAgICAgICAg
IHBhZGRpbmc6IDVweDsKLSAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Ci0g
ICAgICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0OwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
I3JlZ2lvbkNvbnRhaW5lciB7Ci0gICAgICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgYmxh
Y2s7Ci0gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwotICAgICAgICAgICAgICAg
IHRvcDogMTYwcHg7Ci0gICAgICAgICAgICAgICAgcGFkZGluZzogMTBweDsKLSAgICAgICAgICAg
ICAgICB3aWR0aDogNzAwcHg7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAua2V5d29yZCB7
Ci0gICAgICAgICAgICAgICAgY29sb3I6IHJlZDsKLSAgICAgICAgICAgICAgICBmb250LXN0eWxl
OiBpdGFsaWM7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIDwvc3R5bGU+Ci0gICAgPC9oZWFkPgot
ICAgIDxib2R5PgotICAgICAgICA8cD5UZXN0IHRoYXQgb3ZlcmZsb3cgY29udGVudCBpcyBjb3Jy
ZWN0bHkgY29tcHV0ZWQgd2hlbiB0aGUgcmVnaW9uIGlzIGluc2lkZSBvbmUgb3IgbW9yZSBpbmxp
bmUgZWxlbWVudHMgb3IgaXMgaW5saW5lIGl0c2VsZi48L3A+Ci0gICAgICAgIDxwPk9uIHN1Y2Nl
c3MsIHRoZSBmb2xsb3dpbmcgc2hvdWxkIGJlIHRydWU6PC9wPgotICAgICAgICA8dWw+Ci0gICAg
ICAgICAgICA8bGk+VGhyZWUgPHNwYW4gc3R5bGU9ImNvbG9yOiBvcmFuZ2U7Ij48Yj5vcmFuZ2U8
L2I+PC9zcGFuPiBvdmVyZmxvdyBsaW5lcyBzaG91bGQgYmUgdmlzaWJsZSBiZWxvdyBlYWNoIDxz
cGFuIHN0eWxlPSJjb2xvcjogYmx1ZTsiPjxiPmJsdWU8L2I+PC9zcGFuPiByZWdpb24uPC9saT4K
LSAgICAgICAgICAgIDxsaT5BbGwgPHNwYW4gc3R5bGU9ImNvbG9yOiBvcmFuZ2U7Ij48Yj5vcmFu
Z2U8L2I+PC9zcGFuPiBvdmVyZmxvdyBsaW5lcyBzaG91bGQgYmUgc2VsZWN0YWJsZTwvbGk+Ci0g
ICAgICAgIDwvdWw+Ci0gICAgICAgIDxkaXYgaWQ9InJlZ2lvbkNvbnRhaW5lciI+Ci0gICAgICAg
ICAgICA8c3BhbiBjbGFzcz0ib3BhY2l0eSI+Ci0gICAgICAgICAgICAgICAgPGI+eTxpPnggPGRp
diBpZD0icmVnaW9uIj48L2k+PC9iPgotICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJjb250
ZW50Ij4KLSAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+VGhpcyByZWdpb24gaGFzPGJyLz48
c3BhbiBjbGFzcz0ia2V5d29yZCI+ZGlzcGxheTogaW5saW5lLWJsb2NrPC9zcGFuPiBhbmQgaXMg
c2l0dGluZyBpbnNpZGUgYW4gPHNwYW4gY2xhc3M9ImtleXdvcmQiPmk8L3NwYW4+LCBpbnNpZGUg
YSA8c3BhbiBjbGFzcz0ia2V5d29yZCI+Yjwvc3Bhbj4gd2l0aCAwLjUgb3BhY2l0eSBhbmQgaW5z
aWRlIGEgPHNwYW4gY2xhc3M9ImtleXdvcmQiPnNwYW48L3NwYW4+LDwvZGl2PgotICAgICAgICAg
ICAgICAgICAgICAgICAgPGJyLz48YnIvPgotICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBj
bGFzcz0ib3ZlcmZsb3ciPmNhdXNpbmcgaXQgdG8gYmUgcGFydCBvZiBhIGNvbXBsZXggdHJlZSBv
ZiBsaW5lIGVsZW1lbnRzLjwvZGl2PgotICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFz
cz0ib3ZlcmZsb3ciPk92ZXJmbG93Ml8xX092ZXJmbG93Ml8xX092ZXJmbG93Ml8xPC9kaXY+Ci0g
ICAgICAgICAgICAgICAgICAgIDwvZGl2PgotICAgICAgICAgICAgICAgIDwvZGl2PiAgPGI+PGk+
eDwvaT55PC9iPgotICAgICAgICAgICAgPC9zcGFuPgotICAgICAgICAgICAgPGRpdiBpZD0icmVn
aW9uSW5TcGFuIj4KLSAgICAgICAgICAgICAgICA8ZGl2IGlkPSJjb250ZW50MiI+Ci0gICAgICAg
ICAgICAgICAgICAgIDxkaXY+VGhpcyByZWdpb24gaXMgPHNwYW4gY2xhc3M9ImtleXdvcmQiPmZs
b2F0OnJpZ2h0PC9zcGFuPiBhbmQgaXMgaW5zaWRlIGEgPHNwYW4gY2xhc3M9ImtleXdvcmQiPnNw
YW48L3NwYW4+PC9kaXY+Ci0gICAgICAgICAgICAgICAgICAgIDxkaXY+U29tZTwvZGl2PgotICAg
ICAgICAgICAgICAgICAgICA8ZGl2Pm1vcmU8L2Rpdj4KLSAgICAgICAgICAgICAgICAgICAgPGRp
dj50ZXh0PC9kaXY+Ci0gICAgICAgICAgICAgICAgICAgIDxici8+PGJyLz4KLSAgICAgICAgICAg
ICAgICAgICAgPGRpdiBjbGFzcz0ib3ZlcmZsb3ciPk92ZXJmbG93Ml8xX092ZXJmbG93Ml8xX092
ZXJmbG93Ml8xPC9kaXY+Ci0gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJmbG93
Ij5PdmVyZmxvdzJfMjwvZGl2PgotICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdmVy
ZmxvdyI+T3ZlcmZsb3cyXzM8L2Rpdj4KLSAgICAgICAgICAgICAgICA8L2Rpdj4KLSAgICAgICAg
ICAgIDwvZGl2PgotICAgICAgICA8L2Rpdj4KLSAgICA8L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvb3ZlcmZsb3ctcmVnaW9uLWlubGluZS5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL292ZXJmbG93LXJlZ2lvbi1pbmxpbmUuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWU2YjU1MTk4YzBlM2FiYTgyODdkNDMxMmM4
NmQzOGViY2YxNDFmZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvb3ZlcmZsb3ctcmVnaW9uLWlubGluZS5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsODAgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbCBz
dHlsZT0iZm9udDogMTZweC8xLjI1IG1vbm9zcGFjZTsiPgotICAgIDxoZWFkPgotICAgICAgICA8
c3R5bGU+Ci0gICAgICAgICAgICAjY29udGVudCB7Ci0gICAgICAgICAgICAgICAgLXdlYmtpdC1m
bG93LWludG86IGZsb3c7Ci0gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggZG90dGVkIGJsYWNr
OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgI2NvbnRlbnQyIHsKLSAgICAgICAgICAgICAg
ICAtd2Via2l0LWZsb3ctaW50bzogZmxvdzI7Ci0gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHgg
ZG90dGVkIGJsYWNrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgLm92ZXJmbG93IHsKLSAg
ICAgICAgICAgICAgICBjb2xvcjogb3JhbmdlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
I3JlZ2lvbiB7Ci0gICAgICAgICAgICAgICAgLXdlYmtpdC1mbG93LWZyb206IGZsb3c7Ci0gICAg
ICAgICAgICAgICAgd2lkdGg6IDI3MHB4OwotICAgICAgICAgICAgICAgIGhlaWdodDogMTAwcHg7
Ci0gICAgICAgICAgICAgICAgYm9yZGVyOiAxMHB4IHNvbGlkIGJsdWU7Ci0gICAgICAgICAgICAg
ICAgcGFkZGluZzogNXB4OwotICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgICAgICNyZWdpb25JblNwYW4gewotICAgICAgICAgICAg
ICAgIC13ZWJraXQtZmxvdy1mcm9tOiBmbG93MjsKLSAgICAgICAgICAgICAgICB3aWR0aDogMjcw
cHg7Ci0gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKLSAgICAgICAgICAgICAgICBib3Jk
ZXI6IDEwcHggc29saWQgYmx1ZTsKLSAgICAgICAgICAgICAgICBwYWRkaW5nOiA1cHg7Ci0gICAg
ICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwotICAgICAgICAgICAgICAgIGZsb2F0
OiByaWdodDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgICNyZWdpb25Db250YWluZXIgewot
ICAgICAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIGJsYWNrOwotICAgICAgICAgICAgICAg
IHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICAgICAgICAgICAgICB0b3A6IDE2MHB4OwotICAgICAg
ICAgICAgICAgIHBhZGRpbmc6IDEwcHg7Ci0gICAgICAgICAgICAgICAgd2lkdGg6IDcwMHB4Owot
ICAgICAgICAgICAgfQotICAgICAgICAgICAgI2IgewotICAgICAgICAgICAgICAgIG9wYWNpdHk6
IDAuNTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIC5rZXl3b3JkIHsKLSAgICAgICAgICAg
ICAgICBjb2xvcjogcmVkOwotICAgICAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgPC9zdHlsZT4KLSAgICA8L2hlYWQ+Ci0gICAgPGJvZHk+Ci0g
ICAgICAgIDxwPlRlc3QgdGhhdCBvdmVyZmxvdyBjb250ZW50IGlzIGNvcnJlY3RseSBjb21wdXRl
ZCB3aGVuIHRoZSByZWdpb24gaXMgaW5zaWRlIG9uZSBvciBtb3JlIGlubGluZSBlbGVtZW50cyBv
ciBpcyBpbmxpbmUgaXRzZWxmLjwvcD4KLSAgICAgICAgPHA+T24gc3VjY2VzcywgdGhlIGZvbGxv
d2luZyBzaG91bGQgYmUgdHJ1ZTo8L3A+Ci0gICAgICAgIDx1bD4KLSAgICAgICAgICAgIDxsaT5U
aHJlZSA8c3BhbiBzdHlsZT0iY29sb3I6IG9yYW5nZTsiPjxiPm9yYW5nZTwvYj48L3NwYW4+IG92
ZXJmbG93IGxpbmVzIHNob3VsZCBiZSB2aXNpYmxlIGJlbG93IGVhY2ggPHNwYW4gc3R5bGU9ImNv
bG9yOiBibHVlOyI+PGI+Ymx1ZTwvYj48L3NwYW4+IHJlZ2lvbi48L2xpPgotICAgICAgICAgICAg
PGxpPkFsbCA8c3BhbiBzdHlsZT0iY29sb3I6IG9yYW5nZTsiPjxiPm9yYW5nZTwvYj48L3NwYW4+
IG92ZXJmbG93IGxpbmVzIHNob3VsZCBiZSBzZWxlY3RhYmxlPC9saT4KLSAgICAgICAgPC91bD4K
LSAgICAgICAgPGRpdiBpZD0icmVnaW9uQ29udGFpbmVyIj4KLSAgICAgICAgICAgIDxzcGFuPjxi
IGlkPSJiIj55PGk+eCA8ZGl2IGlkPSJyZWdpb24iPjwvZGl2PiB4PC9pPnk8L2I+Ci0gICAgICAg
ICAgICAgICAgPHNwYW4+Ci0gICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9InJlZ2lvbkluU3Bh
biI+PC9kaXY+Ci0gICAgICAgICAgICAgICAgPC9zcGFuPgotICAgICAgICAgICAgPC9zcGFuPgot
ICAgICAgICA8L2Rpdj4KLSAgICAgICAgPGRpdiBpZD0iY29udGVudCI+Ci0gICAgICAgICAgICA8
ZGl2PlRoaXMgcmVnaW9uIGhhczxici8+PHNwYW4gY2xhc3M9ImtleXdvcmQiPmRpc3BsYXk6IGlu
bGluZS1ibG9jazwvc3Bhbj4gYW5kIGlzIHNpdHRpbmcgaW5zaWRlIGFuIDxzcGFuIGNsYXNzPSJr
ZXl3b3JkIj5pPC9zcGFuPiwgaW5zaWRlIGEgPHNwYW4gY2xhc3M9ImtleXdvcmQiPmI8L3NwYW4+
IHdpdGggMC41IG9wYWNpdHkgYW5kIGluc2lkZSBhIDxzcGFuIGNsYXNzPSJrZXl3b3JkIj5zcGFu
PC9zcGFuPiw8L2Rpdj4KLSAgICAgICAgICAgIDxici8+PGJyLz4KLSAgICAgICAgICAgIDxkaXYg
Y2xhc3M9Im92ZXJmbG93Ij5jYXVzaW5nIGl0IHRvIGJlIHBhcnQgb2YgYSBjb21wbGV4IHRyZWUg
b2YgbGluZSBlbGVtZW50cy48L2Rpdj4KLSAgICAgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJmbG93
Ij5PdmVyZmxvdzJfMV9PdmVyZmxvdzJfMV9PdmVyZmxvdzJfMTwvZGl2PgotICAgICAgICA8L2Rp
dj4KLSAgICAgICAgPGRpdiBpZD0iY29udGVudDIiPgotICAgICAgICAgICAgPGRpdj5UaGlzIHJl
Z2lvbiBpcyA8c3BhbiBjbGFzcz0ia2V5d29yZCI+ZmxvYXQ6cmlnaHQ8L3NwYW4+IGFuZCBpcyBp
bnNpZGUgYSA8c3BhbiBjbGFzcz0ia2V5d29yZCI+c3Bhbjwvc3Bhbj48L2Rpdj4KLSAgICAgICAg
ICAgIDxkaXY+U29tZTwvZGl2PgotICAgICAgICAgICAgPGRpdj5tb3JlPC9kaXY+Ci0gICAgICAg
ICAgICA8ZGl2PnRleHQ8L2Rpdj4KLSAgICAgICAgICAgIDxici8+PGJyLz4KLSAgICAgICAgICAg
IDxkaXYgY2xhc3M9Im92ZXJmbG93Ij5PdmVyZmxvdzJfMV9PdmVyZmxvdzJfMV9PdmVyZmxvdzJf
MTwvZGl2PgotICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3ZlcmZsb3ciPk92ZXJmbG93Ml8yPC9k
aXY+Ci0gICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdmVyZmxvdyI+T3ZlcmZsb3cyXzM8L2Rpdj4K
LSAgICAgICAgPC9kaXY+Ci0gICAgPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9yZWdpb25zL292ZXJmbG93LXJlZ2lvbi10cmFuc2Zvcm0tZXhwZWN0ZWQuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9vdmVyZmxvdy1yZWdpb24tdHJhbnNmb3JtLWV4
cGVjdGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk2MzI1MDRhZmQzZTdh
MTc4OGIxMjg0N2MzNmY5OTVhYTkyNTMzMWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL292ZXJmbG93LXJlZ2lv
bi10cmFuc2Zvcm0tZXhwZWN0ZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAK
LTwhZG9jdHlwZSBodG1sPgotPGh0bWwgc3R5bGU9ImZvbnQ6IDE2cHgvMS4yNSBtb25vc3BhY2U7
Ij4KLSAgICA8aGVhZD4KLSAgICAgICAgPHN0eWxlPgotICAgICAgICAgICAgI2NvbnRlbnQgewot
ICAgICAgICAgICAgICAgIHdpZHRoOiAxNTBweDsKLSAgICAgICAgICAgICAgICBtYXJnaW4tbGVm
dDogNTBweDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIC5vdmVyZmxvdyB7Ci0gICAgICAg
ICAgICAgICAgY29sb3I6IG9yYW5nZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgICNyZWdp
b24gewotICAgICAgICAgICAgICAgIHdpZHRoOiAzMDBweDsKLSAgICAgICAgICAgICAgICBoZWln
aHQ6IDEwMHB4OwotICAgICAgICAgICAgICAgIGJvcmRlcjogMTBweCBzb2xpZCBibHVlOwotICAg
ICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICAgICAgICAgICAgICB0b3A6IDMw
MHB4OwotICAgICAgICAgICAgICAgIGxlZnQ6IDEwMHB4OwotICAgICAgICAgICAgICAgIHBhZGRp
bmc6IDVweDsKLSAgICAgICAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVn
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIC5QQVNTIHsKLSAgICAgICAgICAgICAgICBj
b2xvcjogZ3JlZW47Ci0gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgIDwvc3R5bGU+Ci0gICAgPC9oZWFkPgotICAgIDxib2R5PgotICAgICAg
ICA8cD5UZXN0IHRoYXQgb3ZlcmZsb3cgY29udGVudCBpcyBjb3JyZWN0bHkgY29tcHV0ZWQgd2hl
biBhIHRyYW5zZm9ybSBpcyBhcHBsaWVkIHRvIHRoZSByZWdpb24uPC9wPgotICAgICAgICA8cD5P
biBzdWNjZXNzLCB0aGUgZm9sbG93aW5nIHNob3VsZCBiZSB0cnVlOjwvcD4KLSAgICAgICAgPHVs
PgotICAgICAgICAgICAgPGxpPlR3byA8c3BhbiBzdHlsZT0iY29sb3I6IG9yYW5nZTsiPjxiPm9y
YW5nZTwvYj48L3NwYW4+IG92ZXJmbG93IGxpbmVzIHNob3VsZCBiZSB2aXNpYmxlIGJlbG93IHRo
ZSA8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij48Yj5ibHVlPC9iPjwvc3Bhbj4gcmVnaW9uLjwv
bGk+Ci0gICAgICAgICAgICA8bGk+QWxsIDxzcGFuIHN0eWxlPSJjb2xvcjogb3JhbmdlOyI+PGI+
b3JhbmdlPC9iPjwvc3Bhbj4gb3ZlcmZsb3cgbGluZXMgc2hvdWxkIGJlIHNlbGVjdGFibGU8L2xp
PgotICAgICAgICA8L3VsPgotICAgICAgICA8ZGl2IGlkPSJyZWdpb24iPgotICAgICAgICAgICAg
PGRpdiBpZD0iY29udGVudCI+Ci0gICAgICAgICAgICAgICAgPGRpdj5mbG93MV8xPC9kaXY+Ci0g
ICAgICAgICAgICAgICAgPGRpdj5mbG93MV8yPC9kaXY+Ci0gICAgICAgICAgICAgICAgPGRpdj5m
bG93MV8zPC9kaXY+Ci0gICAgICAgICAgICAgICAgPGRpdj5mbG93MV80PC9kaXY+Ci0gICAgICAg
ICAgICAgICAgPGRpdj5mbG93MV81PC9kaXY+Ci0gICAgICAgICAgICAgICAgPGJyLz4KLSAgICAg
ICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdmVyZmxvdyI+T3ZlcmZsb3cyXzE8L2Rpdj4KLSAgICAg
ICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdmVyZmxvdyI+T3ZlcmZsb3cyXzI8L2Rpdj4KLSAgICAg
ICAgICAgIDwvZGl2PgotICAgICAgICA8L2Rpdj4KLSAgICAgICAgPGRpdiBpZD0icmVzdWx0IiBj
bGFzcz0iUEFTUyI+QXV0b21hdGVkIHNlbGVjdGlvbiB0ZXN0OiBQQVNTPC9kaXY+Ci0gICAgPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL292ZXJm
bG93LXJlZ2lvbi10cmFuc2Zvcm0uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9vdmVy
Zmxvdy1yZWdpb24tdHJhbnNmb3JtLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGZiZjYxNDA1ZmQ1ZGFkMGFjNGFlZjA3NmEwN2ExM2YyNDEzYTMyNTkuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25z
L292ZXJmbG93LXJlZ2lvbi10cmFuc2Zvcm0uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDkwICsw
LDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWwgc3R5bGU9ImZvbnQ6IDE2cHgvMS4yNSBtb25v
c3BhY2U7Ij4KLSAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0gICAgICAgIGZ1
bmN0aW9uIG9uQm9keUxvYWQoKSB7Ci0gICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKLSAgICAgICAgICAgICAgICB2YXIgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigp
OwotCi0gICAgICAgICAgICAgICAgLy8gVGVzdCBzZWxlY3Rpb24gb24gdGhlIG92ZXJmbG93IGJl
bG93IHRoZSByZWdpb24uCi0gICAgICAgICAgICAgICAgdmFyIHJlZ2lvbiA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJyZWdpb24iKTsKLSAgICAgICAgICAgICAgICB2YXIgc3RhcnRQb3NpdGlv
blggPSByZWdpb24ub2Zmc2V0TGVmdCArIDY1OwotICAgICAgICAgICAgICAgIHZhciBzdGFydFBv
c2l0aW9uWSA9IHJlZ2lvbi5vZmZzZXRUb3AgKyA5MDsKLSAgICAgICAgICAgICAgICB2YXIgZW5k
UG9zaXRpb25YID0gc3RhcnRQb3NpdGlvblggKyAxMDsKLSAgICAgICAgICAgICAgICB2YXIgZW5k
UG9zaXRpb25ZID0gc3RhcnRQb3NpdGlvblkgKyAzMDsKLQotICAgICAgICAgICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlTW92ZVRvKHN0YXJ0UG9zaXRpb25YLCBzdGFydFBvc2l0aW9uWSk7Ci0gICAg
ICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Ci0gICAgICAgICAgICAgICAgZXZl
bnRTZW5kZXIubW91c2VNb3ZlVG8oZW5kUG9zaXRpb25YLCBlbmRQb3NpdGlvblkpOwotICAgICAg
ICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKLQotICAgICAgICAgICAgICAgIHZhciBl
bGVtUmVzdWx0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpOwotICAgICAgICAg
ICAgICAgIHZhciByZXN1bHQgPSAiRkFJTCI7Ci0gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGlv
bi50b1N0cmluZygpID09ICJsb3cyXzFcbk92ZXJmbG8iKQotICAgICAgICAgICAgICAgICAgICBy
ZXN1bHQgPSAiUEFTUyI7Ci0KLSAgICAgICAgICAgICAgICBlbGVtUmVzdWx0LmNsYXNzTmFtZSA9
IHJlc3VsdDsKLSAgICAgICAgICAgICAgICBlbGVtUmVzdWx0LmlubmVySFRNTCA9ICJBdXRvbWF0
ZWQgc2VsZWN0aW9uIHRlc3Q6ICIgKyByZXN1bHQ7Ci0KLSAgICAgICAgICAgICAgICBldmVudFNl
bmRlci5tb3VzZU1vdmVUbyhzdGFydFBvc2l0aW9uWCArIDIwMCwgc3RhcnRQb3NpdGlvblkpOwot
ICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwotICAgICAgICAgICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIDwv
c2NyaXB0PgotICAgIDxoZWFkPgotICAgICAgICA8c3R5bGU+Ci0gICAgICAgICAgICAjY29udGVu
dCB7Ci0gICAgICAgICAgICAgICAgLXdlYmtpdC1mbG93LWludG86IGZsb3c7Ci0gICAgICAgICAg
ICAgICAgd2lkdGg6IDE1MHB4OwotICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MHB4Owot
ICAgICAgICAgICAgfQotICAgICAgICAgICAgLm92ZXJmbG93IHsKLSAgICAgICAgICAgICAgICBj
b2xvcjogb3JhbmdlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgI3JlZ2lvbiB7Ci0gICAg
ICAgICAgICAgICAgLXdlYmtpdC1mbG93LWZyb206IGZsb3c7Ci0gICAgICAgICAgICAgICAgd2lk
dGg6IDMwMHB4OwotICAgICAgICAgICAgICAgIGhlaWdodDogMTAwcHg7Ci0gICAgICAgICAgICAg
ICAgYm9yZGVyOiAxMHB4IHNvbGlkIGJsdWU7Ci0gICAgICAgICAgICAgICAgcG9zaXRpb246IGFi
c29sdXRlOwotICAgICAgICAgICAgICAgIHRvcDogMzAwcHg7Ci0gICAgICAgICAgICAgICAgbGVm
dDogMTAwcHg7Ci0gICAgICAgICAgICAgICAgcGFkZGluZzogNXB4OwotICAgICAgICAgICAgICAg
IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpOwotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgLlBBU1MgewotICAgICAgICAgICAgICAgIGNvbG9yOiBncmVlbjsKLSAgICAgICAgICAg
ICAgICBmb250LXdlaWdodDogYm9sZDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIC5GQUlM
IHsKLSAgICAgICAgICAgICAgICBjb2xvcjogcmVkOwotICAgICAgICAgICAgICAgIGZvbnQtd2Vp
Z2h0OiBib2xkOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgLm5vdHJ1biB7Ci0gICAgICAg
ICAgICAgICAgY29sb3I6IHJlZDsKLSAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgPC9zdHlsZT4KLSAgICA8L2hlYWQ+Ci0gICAgPGJvZHkg
b25sb2FkPSJvbkJvZHlMb2FkKCk7Ij4KLSAgICAgICAgPHA+VGVzdCB0aGF0IG92ZXJmbG93IGNv
bnRlbnQgaXMgY29ycmVjdGx5IGNvbXB1dGVkIHdoZW4gYSB0cmFuc2Zvcm0gaXMgYXBwbGllZCB0
byB0aGUgcmVnaW9uLjwvcD4KLSAgICAgICAgPHA+T24gc3VjY2VzcywgdGhlIGZvbGxvd2luZyBz
aG91bGQgYmUgdHJ1ZTo8L3A+Ci0gICAgICAgIDx1bD4KLSAgICAgICAgICAgIDxsaT5Ud28gPHNw
YW4gc3R5bGU9ImNvbG9yOiBvcmFuZ2U7Ij48Yj5vcmFuZ2U8L2I+PC9zcGFuPiBvdmVyZmxvdyBs
aW5lcyBzaG91bGQgYmUgdmlzaWJsZSBiZWxvdyB0aGUgPHNwYW4gc3R5bGU9ImNvbG9yOiBibHVl
OyI+PGI+Ymx1ZTwvYj48L3NwYW4+IHJlZ2lvbi48L2xpPgotICAgICAgICAgICAgPGxpPkFsbCA8
c3BhbiBzdHlsZT0iY29sb3I6IG9yYW5nZTsiPjxiPm9yYW5nZTwvYj48L3NwYW4+IG92ZXJmbG93
IGxpbmVzIHNob3VsZCBiZSBzZWxlY3RhYmxlPC9saT4KLSAgICAgICAgPC91bD4KLSAgICAgICAg
PGRpdiBpZD0iY29udGVudCI+Ci0gICAgICAgICAgICA8ZGl2PmZsb3cxXzE8L2Rpdj4KLSAgICAg
ICAgICAgIDxkaXY+ZmxvdzFfMjwvZGl2PgotICAgICAgICAgICAgPGRpdj5mbG93MV8zPC9kaXY+
Ci0gICAgICAgICAgICA8ZGl2PmZsb3cxXzQ8L2Rpdj4KLSAgICAgICAgICAgIDxkaXY+ZmxvdzFf
NTwvZGl2PgotICAgICAgICAgICAgPGJyLz4KLSAgICAgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJm
bG93Ij5PdmVyZmxvdzJfMTwvZGl2PgotICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3ZlcmZsb3ci
Pk92ZXJmbG93Ml8yPC9kaXY+Ci0gICAgICAgIDwvZGl2PgotCi0gICAgICAgIDxkaXYgaWQ9InJl
Z2lvbiI+PC9kaXY+Ci0gICAgICAgIDxkaXYgaWQ9InJlc3VsdCIgY2xhc3M9Im5vdHJ1biI+QXV0
b21hdGVkIHNlbGVjdGlvbiB0ZXN0OiBOT1QgUlVOPC9kaXY+Ci0gICAgPC9ib2R5PgotPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL292ZXJmbG93LXNjcm9sbGFi
bGUtcm90YXRlZC1mcmFnbWVudC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdp
b25zL292ZXJmbG93LXNjcm9sbGFibGUtcm90YXRlZC1mcmFnbWVudC1leHBlY3RlZC5odG1sCmlu
ZGV4IDMyNTQzNTkzYjg2OWUxZWE4ZDE2MDNiOWE2YTcxNmY3MmFiY2EwYTIuLjhjZjk5MmFlMTE2
MWYyNGI1NzVkMmNjNDg1MDNmMWYyMzdkNjlmMTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvcmVnaW9ucy9vdmVyZmxvdy1zY3JvbGxhYmxlLXJvdGF0ZWQtZnJhZ21lbnQtZXhwZWN0ZWQu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvb3ZlcmZsb3ctc2Nyb2xsYWJsZS1y
b3RhdGVkLWZyYWdtZW50LWV4cGVjdGVkLmh0bWwKQEAgLTIsNyArMiw3IEBACiA8aHRtbCBzdHls
ZT0iZm9udDogMTZweC8xLjI1IG1vbm9zcGFjZTsiPgogICAgIDxoZWFkPgogICAgICAgICA8c3R5
bGU+Ci0gICAgICAgICAgICAubm9fb3ZlcmZsb3cgeyBtYXJnaW46IDJweDsgLXdlYmtpdC10cmFu
c2Zvcm06IHJvdGF0ZSgtOTBkZWcpO30KKyAgICAgICAgICAgIC5ub19vdmVyZmxvdyB7IG1hcmdp
bjogMnB4OyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC0yNWRlZyk7fQogCiAgICAgICAgICAg
ICAjcmVnaW9uMSwgI3JlZ2lvbjIgeyBoZWlnaHQ6IDEwMHB4OyB9CiAgICAgICAgICAgICAjcmVn
aW9uMSB7IGJvcmRlcjogNXB4IHNvbGlkIGdyZWVuOyB3aWR0aDogMTUwcHg7IH0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9vdmVyZmxvdy1zY3JvbGxhYmxlLXJvdGF0ZWQt
ZnJhZ21lbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9vdmVyZmxvdy1zY3JvbGxh
YmxlLXJvdGF0ZWQtZnJhZ21lbnQuaHRtbAppbmRleCA3NjI0NzI3MDRhMDYyYTA0NzBiMDkwN2Q3
MzIzOTY5OGRhMzY4Mzk2Li44NWY0N2I2MTc0OWRhZGZkZDM4YmUyNmNhYWM5OGIzMzVjMmY0ZjJi
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvb3ZlcmZsb3ctc2Nyb2xsYWJs
ZS1yb3RhdGVkLWZyYWdtZW50Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL292
ZXJmbG93LXNjcm9sbGFibGUtcm90YXRlZC1mcmFnbWVudC5odG1sCkBAIC02LDcgKzYsNyBAQAog
ICAgICAgICAgICAgICAgIC13ZWJraXQtZmxvdy1pbnRvOiBmbG93OwogICAgICAgICAgICAgfQog
Ci0gICAgICAgICAgICAubm9fb3ZlcmZsb3cgeyBtYXJnaW46IDJweDsgLXdlYmtpdC10cmFuc2Zv
cm06IHJvdGF0ZSgtOTBkZWcpOyB9CisgICAgICAgICAgICAubm9fb3ZlcmZsb3cgeyBtYXJnaW46
IDJweDsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtMjVkZWcpO30KIAogICAgICAgICAgICAg
I3JlZ2lvbjEsICNyZWdpb24yIHsgLXdlYmtpdC1mbG93LWZyb206IGZsb3c7IGhlaWdodDogMTAw
cHg7IH0KICAgICAgICAgICAgICNyZWdpb24xIHsgYm9yZGVyOiA1cHggc29saWQgZ3JlZW47IHdp
ZHRoOiAxNTBweDsgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3RvcC1v
dmVyZmxvdy1vdXQtb2Ytc2Vjb25kLXJlZ2lvbi1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9yZWdpb25zL3RvcC1vdmVyZmxvdy1vdXQtb2Ytc2Vjb25kLXJlZ2lvbi1leHBlY3RlZC5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNTJjY2YwNzQzMWUzOWQ1YTI4Mzgx
MjQ5OTc5ZTA3NmFmZWNhODdiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy90b3Atb3ZlcmZsb3ctb3V0LW9mLXNl
Y29uZC1yZWdpb24tZXhwZWN0ZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDYxICswLDAgQEAK
LTwhZG9jdHlwZSBodG1sPgotCi0gPHN0eWxlPgotICAgICNjb250ZW50IHsKLSAgICAgICAgdGV4
dC1hbGlnbjoganVzdGlmeTsKLSAgICAgICAgcGFkZGluZzogNXB4OwotICAgICAgICBtYXJnaW4t
dG9wOiAtMTA1cHg7Ci0gICAgfQotICAgIAotICAgICNmaXJzdC1ib3ggewotICAgICAgICBib3Jk
ZXI6IDFweCBzb2xpZCBibHVlOwotICAgICAgICBtYXJnaW4tdG9wOjEwMHB4OwotICAgIH0KLSAg
ICAKLSAgICAjc2Vjb25kLWJveCB7Ci0gICAgICAgIG1hcmdpbjotMTAwcHggYXV0byAwIGF1dG87
Ci0gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGdyZWVuOwotICAgICAgICB3aWR0aDo3NSUKLSAg
ICB9Ci0gICAgCi0gICAgI3JlZ2lvbjEsICNyZWdpb24yIHsKLSAgICAgICAgYm9yZGVyOiAxcHgg
c29saWQgcmVkOwotICAgIH0KLQotICAgICNyZWdpb24xIHsKLSAgICAgICAgd2lkdGg6IDMwMHB4
OwotICAgICAgICBoZWlnaHQ6IDEwMHB4OwotICAgIH0KLSAgICAKLSAgICAjcmVnaW9uMiB7Ci0g
ICAgICAgIHdpZHRoOiA0MDBweDsKLSAgICAgICAgaGVpZ2h0OiAyMDBweDsKLSAgICAgICAgbWFy
Z2luLWxlZnQ6IDMwMHB4OwotICAgICAgICBtYXJnaW4tdG9wOiA1MHB4OwotICAgIH0KLTwvc3R5
bGU+Ci0KLTxib2R5PgotCi08cD5JbiB0aGUgdGVzdCBjYXNlIGJlbG93LCB0aGUgZ3JlZW4gYmxv
Y2sncyB3aWR0aCBzaG91bGQgbm90IHZhcnkgYW5kIHNob3VsZCB1c2UgdGhlIHNlY29uZCByZWdp
b24gdG8gZGV0ZXJtaW5lIGl0cyB3aWR0aC4KLUl0IGlzIG92ZXJmbG93aW5nIHVwd2FyZHMgb3V0
IG9mIHRoZSBibHVlIGJsb2NrLCBhbmQgc28gdGhlIHBvcnRpb24gdGhhdCBvdmVyZmxvd3Mgc2hv
dWxkIGNvbnRpbnVlIHRvIHVzZSB0aGUgYmx1ZSBibG9jaydzCi1jb250YWluaW5nIGJsb2NrIHdp
ZHRoLiBUaGUgYmx1ZSBibG9jayBkb2VzIG5vdCBleGlzdCBpbiByZWdpb24gb25lLCBzbyB1c2lu
ZyBzb21lIGh5cG90aGV0aWNhbCBtYWRlLXVwIHdpZHRoIGlzIGluY29ycmVjdC4KLVRoZSBvdmVy
ZmxvdyBzaG91bGQgYmUgc3BpbGxpbmcgb3V0IG9mIHRoZSB0b3Agb2YgcmVnaW9uIHR3byBhbmQg
YmUgcGFpbnRlZCBpbiByZWdpb24gb25lLiAKLQotCi0KLTxkaXYgaWQ9ImNvbnRhaW5lciI+Ci0g
ICAgPGRpdiBpZD0icmVnaW9uMSI+PC9kaXY+Ci0gICAgPGRpdiBpZD0icmVnaW9uMiI+Ci0gICAg
ICAgIDxkaXYgaWQ9ImNvbnRlbnQiPgotICAgICAgICAgICAgPGRpdiBpZD0iZmlyc3QtYm94Ij4K
LSAgICAgICAgICAgICAgICA8ZGl2IGlkPSJzZWNvbmQtYm94Ij4KLSAgICAgICAgICAgICAgICAg
ICAgPHA+VGhlc2UgbGluZXMgc2hvdWxkIGFsbCBmaXQgdG8gdGhlIHdpZHRoIG9mIHRoZSBibG9j
ayBpbiB0aGUgc2Vjb25kIHJlZ2lvbiBhbmQgc3BpbGwgb3V0IG9mIHRoZSB0b3Agb2YgdGhlIHNl
Y29uZAotICAgICAgICAgICAgICAgICAgICByZWdpb24uPC9QPgotICAgICAgICAgICAgICAgICAg
ICAgPHA+VGhlc2UgbGluZXMgc2hvdWxkIGFsbCBmaXQgdG8gdGhlIHdpZHRoIG9mIHRoZSBibG9j
ayBpbiB0aGUgc2Vjb25kIHJlZ2lvbiBhbmQgc3BpbGwgb3V0IG9mIHRoZSB0b3Agb2YgdGhlIHNl
Y29uZAotICAgICAgICAgICAgICAgICAgICByZWdpb24uPC9QPgotICAgICAgICAgICAgICAgIDwv
ZGl2PgotICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAgIDwvZGl2PgotICAgIDwvZGl2PgotPC9k
aXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvdG9wLW92ZXJmbG93LW91
dC1vZi1zZWNvbmQtcmVnaW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvdG9wLW92
ZXJmbG93LW91dC1vZi1zZWNvbmQtcmVnaW9uLmh0bWwKaW5kZXggZGYxZTRkOTQ2OGI1ZDQxZTEz
YWRlMzcwY2YxZWI0ZGMyYTliNzgzZi4uOTg1OGNkYTI0Y2Y2YWI0NDFlYTM3OTkwNzkyOWY0OGJl
ZmM4NDIyOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3RvcC1vdmVyZmxv
dy1vdXQtb2Ytc2Vjb25kLXJlZ2lvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9u
cy90b3Atb3ZlcmZsb3ctb3V0LW9mLXNlY29uZC1yZWdpb24uaHRtbApAQCAtMTgsOCArMTgsOCBA
QAogICAgICAgICB3aWR0aDo3NSUKICAgICB9CiAgICAgCi0gICAgI3JlZ2lvbjEsICNyZWdpb24y
IHsKLSAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmVkOworICAgICNyZWdpb24xLCAjcmVnaW9u
MiwgI3JlZ2lvbjMgeworICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKICAgICAgICAg
LXdlYmtpdC1mbG93LWZyb206IGZsb3cxOwogICAgIH0KIApAQCAtMzEsOCArMzEsNiBAQAogICAg
ICNyZWdpb24yIHsKICAgICAgICAgd2lkdGg6IDQwMHB4OwogICAgICAgICBoZWlnaHQ6IDIwMHB4
OwotICAgICAgICBtYXJnaW4tbGVmdDogMzAwcHg7Ci0gICAgICAgIG1hcmdpbi10b3A6IDUwcHg7
CiAgICAgfQogCiAgICAgI3JlZ2lvbjMgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9y
ZWdpb25zL3dlYmtpdC1mbG93LWZsb2F0LXVuYWJsZS10by1wdXNoLWV4cGVjdGVkLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LWZsb3ctZmxvYXQtdW5hYmxlLXRvLXB1c2gt
ZXhwZWN0ZWQuaHRtbAppbmRleCBiY2JlZmY1NTg5NzEzYmM0OWZlOGFjNTJjNWM0MjQ3N2NjYjA0
NjA0Li42YWVhMGNlNTJiYmI5NDcyOTNjMWVkMjMyMWM3Y2EwMzFjNWMwZTExIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LWZsb3ctZmxvYXQtdW5hYmxlLXRvLXB1
c2gtZXhwZWN0ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LWZs
b3ctZmxvYXQtdW5hYmxlLXRvLXB1c2gtZXhwZWN0ZWQuaHRtbApAQCAtMTIsNTEgKzEyLDI5IEBA
CiAKICAgICAvKiBDcmVhdGVkIHRvIGp1c3RpZnkgdGhlIGxhc3QgbGluZSBvZiB0ZXh0IGluIHRo
ZSBkaXYgKi8KICAgICAjcGFyYWdyYXBoMTphZnRlciB7Ci0gICAgICAgIGNvbnRlbnQ6ICIgX19f
X19fX18iOworICAgICAgICBjb250ZW50OiAiIF9fX18iOwogICAgICAgICBsaW5lLWhlaWdodDog
MDsKICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOwogICAgIH0KLQotICAgIC5yZWdpb24gewot
ICAgICAgICBib3JkZXI6IDNweCBzb2xpZCBibGFjazsKLSAgICAgICAgYm9yZGVyLWxlZnQ6IDEw
cHggc29saWQgYmxhY2s7Ci0gICAgfQotCi0gICAgLmNvbnRlbnQgewotICAgICAgICBib3JkZXI6
IDJweCBzb2xpZCByZWQ7Ci0gICAgICAgIHBhZGRpbmc6IDVweDsKLSAgICB9Ci0KLSAgICAuZmly
c3QtYm94IHsKLSAgICAgICAgYm9yZGVyOiAzcHggc29saWQgYmx1ZTsKLSAgICAgICAgYmFja2dy
b3VuZC1jb2xvcjogI2ZmZmYwMDsKLSAgICB9Ci0KLSAgICAuc2Vjb25kLWJveCB7Ci0gICAgICAg
IGJvcmRlcjogNnB4IHNvbGlkIGdyZWVuOwotICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZm
ZmFhOwotICAgIH0KICAgICAKICAgICAjcmVnaW9uMSB7Ci0gICAgICAgIHdpZHRoOiA0MDBweDsK
LSAgICAgICAgaGVpZ2h0OiA5MHB4OwotICAgICAgICBtYXJnaW4tbGVmdDogNTBweDsKLSAgICB9
Ci0KLSAgICAjY29udGVudDEgewotICAgICAgICBib3JkZXItYm90dG9tOiBub25lOwotICAgICAg
ICBoZWlnaHQ6IDc4cHg7CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgICAg
ICB3aWR0aDogMzkwcHg7CisgICAgICAgIGhlaWdodDogODBweDsKKyAgICAgICAgcGFkZGluZzog
NXB4OwogICAgIH0KICAgICAKICAgICAjZmlyc3QtYm94MSB7CisgICAgICAgIGJvcmRlcjogMXB4
IHNvbGlkIGJsdWU7CiAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7Ci0gICAgICAgIGhlaWdo
dDogODBweDsKICAgICB9CiAgICAgCiAgICAgI3NlY29uZC1ib3gxIHsKICAgICAgICAgbWFyZ2lu
OjEwcHg7CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGdyZWVuOwogICAgICAgICBib3JkZXIt
Ym90dG9tOiBub25lOwotICAgICAgICBoZWlnaHQ6IDY0cHg7CisgICAgICAgIHdpZHRoOiAzNjZw
eDsKKyAgICAgICAgaGVpZ2h0OiA3M3B4OwogICAgIH0KIAogICAgICNmaXJzdC1wYXJhZ3JhcGgy
IHsKQEAgLTY1LDM0ICs0MywzMiBAQAogICAgIAogICAgIC8qIENyZWF0ZWQgdG8ganVzdGlmeSB0
aGUgbGFzdCBsaW5lIG9mIHRleHQgaW4gdGhlIGRpdiAqLwogICAgICNzZWNvbmQtcGFyYWdyYXBo
MjphZnRlciB7Ci0gICAgICAgIGNvbnRlbnQ6ICIgX19fX19fX18iOworICAgICAgICBjb250ZW50
OiAiIF9fX18iOwogICAgICAgICBsaW5lLWhlaWdodDogMDsKICAgICAgICAgdmlzaWJpbGl0eTog
aGlkZGVuOwogICAgIH0KICAgICAKICAgICAjcmVnaW9uMiB7Ci0gICAgICAgIHdpZHRoOiAzMDBw
eDsKLSAgICAgICAgaGVpZ2h0OiA5MHB4OwotICAgICAgICBtYXJnaW4tdG9wOiA3MHB4OwotICAg
IH0KLQotICAgICNjb250ZW50MiB7Ci0gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7Ci0gICAg
ICAgIGJvcmRlci10b3A6IG5vbmU7Ci0gICAgICAgIGhlaWdodDogODVweDsKLSAgICAgICAgcGFk
ZGluZy10b3A6IDBweDsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgICAg
IHdpZHRoOiAyOTBweDsKKyAgICAgICAgaGVpZ2h0OiA4MHB4OworICAgICAgICBwYWRkaW5nOiA1
cHg7CiAgICAgfQogICAgIAogICAgICNmaXJzdC1ib3gyIHsKKyAgICAgICAgYm9yZGVyOiAxcHgg
c29saWQgYmx1ZTsKICAgICAgICAgYm9yZGVyLXRvcDogbm9uZTsKICAgICAgICAgYm9yZGVyLWJv
dHRvbTogbm9uZTsKLSAgICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4OwotICAgICAgICBwYWRkaW5n
LXJpZ2h0OiAxMHB4OwogICAgIH0KICAgICAKICAgICAjc2Vjb25kLWJveDIgeworICAgICAgICBt
YXJnaW4tbGVmdDoxMHB4OworICAgICAgICBtYXJnaW4tdG9wOiAtNXB4OworICAgICAgICBwYWRk
aW5nOiAwcHg7CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGdyZWVuOwogICAgICAgICBib3Jk
ZXItdG9wOiBub25lOwogICAgICAgICBib3JkZXItYm90dG9tOiBub25lOworICAgICAgICB3aWR0
aDogMjY2cHg7CiAgICAgICAgIGhlaWdodDogOTBweDsKICAgICB9CiAKQEAgLTEwMSw3NCArNzcs
NzUgQEAKICAgICB9CiAKICAgICAjcmVnaW9uMyB7Ci0gICAgICAgIHdpZHRoOiA0MDBweDsKLSAg
ICAgICAgaGVpZ2h0OiAxMjBweDsKLSAgICAgICAgbWFyZ2luLXRvcDogNTBweDsKLSAgICAgICAg
bWFyZ2luLWxlZnQ6IDIwcHg7Ci0gICAgfQotCi0gICAgI2NvbnRlbnQzIHsKLSAgICAgICAgYm9y
ZGVyLXRvcDogbm9uZTsKLSAgICAgICAgYWhlaWdodDogMTA5cHg7Ci0gICAgICAgIHBhZGRpbmct
dG9wOiAwcHg7CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgICAgICB3aWR0
aDogMzkwcHg7CisgICAgICAgIGhlaWdodDogODBweDsKKyAgICAgICAgcGFkZGluZzogNXB4Owog
ICAgIH0KICAgICAKICAgICAjZmlyc3QtYm94MyB7CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlk
IGJsdWU7CiAgICAgICAgIGJvcmRlci10b3A6IG5vbmU7Ci0gICAgICAgIHBhZGRpbmctbGVmdDog
MTBweDsKLSAgICAgICAgcGFkZGluZy1yaWdodDogMTBweDsKLSAgICAgICAgcGFkZGluZy1ib3R0
b206IDEwcHg7CiAgICAgfQogICAgIAogICAgICNzZWNvbmQtYm94MyB7CisgICAgICAgIG1hcmdp
bjoxMHB4OworICAgICAgICBtYXJnaW4tdG9wOiAtNXB4OworICAgICAgICBib3JkZXI6IDFweCBz
b2xpZCBncmVlbjsKICAgICAgICAgYm9yZGVyLXRvcDogbm9uZTsKKyAgICAgICAgd2lkdGg6IDM2
NnB4OwogICAgIH0KIAotICAgICNmbG9hdDEgeworICAgIC5pbWdGbG9hdCB7CiAgICAgICAgIGZs
b2F0OiByaWdodDsKICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjpncmVlbjsKLSAgICAgICAgYm9y
ZGVyOiAycHggc29saWQgcmVkOworICAgIH0KKworICAgICNmbG9hdDEgewogICAgICAgICB3aWR0
aDogMTMwcHg7Ci0gICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgIGhlaWdodDogNjNweDsK
ICAgICB9CiAKICAgICAjZmxvYXQyIHsKLSAgICAgICAgZmxvYXQ6IHJpZ2h0OwotICAgICAgICB3
aWR0aDogMzRweDsKLSAgICAgICAgaGVpZ2h0OiA3MHB4OwotICAgICAgICB2aXNpYmlsaXR5OiBo
aWRkZW47CisgICAgICAgIHdpZHRoOiAzMHB4OworICAgICAgICBoZWlnaHQ6IDM3cHg7CisgICAg
fQorCisgICAgI2ltZ0Fic29sdXRlIHsKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAg
ICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAgICAgd2lkdGg6IDEwMHB4OworICAg
ICAgICBoZWlnaHQ6IDM3cHg7CisgICAgICAgIGxlZnQ6IDI5MnB4OworICAgICAgICB0b3A6IDEw
MXB4OwogICAgIH0KIDwvc3R5bGU+CiAKLTxkaXY+Ci0gICAgPGRpdiBjbGFzcz0icmVnaW9uIiBp
ZD0icmVnaW9uMSI+Ci0gICAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQiIGlkPSJjb250ZW50MSI+
Ci0gICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaXJzdC1ib3giIGlkPSJmaXJzdC1ib3gxIj4KLSAg
ICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWNvbmQtYm94IiBpZD0ic2Vjb25kLWJveDEiPgot
ICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXN0X3BhcmFncmFwaCIgaWQ9InBhcmFn
cmFwaDEiPlRoaXMgPGltZyBpZD0iZmxvYXQxIiBzcmM9InJlc291cmNlcy90cmFuc3BhcmVudC5w
bmciPmxpbmUgb2YgdGV4dCBzaG91bGQgbm90IGdldCBvdXQgb2YgdGhlIHJlZ2lvbi4gVGhpcyBs
aW5lIG9mIHRleHQgc2hvdWxkIG5vdCBnZXQgb3V0IG9mIHRoZTwvZGl2PgotICAgICAgICAgICAg
ICAgIDwvZGl2PgorPGRpdiBpZD0iY29udGVudCI+CisgICAgPGRpdiBpZD0icmVnaW9uMSI+Cisg
ICAgICAgIDxkaXYgaWQ9ImZpcnN0LWJveDEiPgorICAgICAgICAgICAgPGRpdiBpZD0ic2Vjb25k
LWJveDEiPgorICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRlc3RfcGFyYWdyYXBoIiBpZD0i
cGFyYWdyYXBoMSI+VGhpcyA8aW1nIGNsYXNzPSJpbWdGbG9hdCIgaWQ9ImZsb2F0MSIgc3JjPSJy
ZXNvdXJjZXMvdHJhbnNwYXJlbnQucG5nIj5saW5lIG9mIHRleHQgc2hvdWxkIG5vdCBnZXQgb3V0
IG9mIHRoZSByZWdpb24uIFRoaXMgbGluZSBvZiB0ZXh0IHNob3VsZCBub3QgZ2V0IG91dCBvZiB0
aGUgcmVnaW9uLiBUaGlzIGxpbmUgb2YgdGV4dCBzaG91bGQgbm90PC9kaXY+CiAgICAgICAgICAg
ICA8L2Rpdj4KICAgICAgICAgPC9kaXY+CiAgICAgPC9kaXY+CiAgICAgCi0gICAgPGRpdiBjbGFz
cz0icmVnaW9uIiBpZD0icmVnaW9uMiI+Ci0gICAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQiIGlk
PSJjb250ZW50MiI+Ci0gICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaXJzdC1ib3giIGlkPSJmaXJz
dC1ib3gyIj4KLSAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWNvbmQtYm94IiBpZD0ic2Vj
b25kLWJveDIiPgotICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXN0X3BhcmFncmFw
aCIgaWQ9ImZpcnN0LXBhcmFncmFwaDIiPnJlZ2lvbi4gPGltZyBpZD0iZmxvYXQyIiBzcmM9InJl
c291cmNlcy90cmFuc3BhcmVudC5wbmciPlRoaXMgbGluZSBvZiB0ZXh0IHNob3VsZCBub3QgZ2V0
IG91dCBvZiB0aGUgcmVnaW9uLiBUaGlzIGxpbmUgb2YgdGV4dCBzaG91bGQgbm90IGdldCBvdXQg
b2YgdGhlIHJlZ2lvbi48L2Rpdj4KLSAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGVz
dF9wYXJhZ3JhcGgiIGlkPSJzZWNvbmQtcGFyYWdyYXBoMiI+VGhpcyBsaW5lIG9mIHRleHQgc2hv
dWxkIG5vdCBnZXQgb3V0IG9mIHRoZTwvZGl2PgotICAgICAgICAgICAgICAgIDwvZGl2PgorICAg
IDxkaXYgaWQ9InJlZ2lvbjIiPgorICAgICAgICA8ZGl2IGlkPSJmaXJzdC1ib3gyIj4KKyAgICAg
ICAgICAgIDxkaXYgaWQ9InNlY29uZC1ib3gyIj4KKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNz
PSJ0ZXN0X3BhcmFncmFwaCIgaWQ9ImZpcnN0LXBhcmFncmFwaDIiPmdldDxpbWcgY2xhc3M9Imlt
Z0Zsb2F0IiBpZD0iZmxvYXQyIiBzcmM9InJlc291cmNlcy90cmFuc3BhcmVudC5wbmciPiBvdXQg
b2YgdGhlIHJlZ2lvbi4gVGhpcyBsaW5lIG9mIHRleHQgc2hvdWxkIG5vdCBnZXQgb3V0IG9mIHRo
ZSByZWdpb24uPC9kaXY+CisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGVzdF9wYXJhZ3Jh
cGgiIGlkPSJzZWNvbmQtcGFyYWdyYXBoMiI+VGhpcyBsaW5lIG9mIHRleHQgc2hvdWxkIG5vdCBn
ZXQgb3V0IG9mIHRoZSByZWdpb24uIFRoaXMgbGluZSBvZiB0ZXh0IHNob3VsZCBub3QgZ2V0IG91
dCBvZiB0aGUgcmVnaW9uLjwvZGl2PgogICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgIDwvZGl2
PgogICAgIDwvZGl2PgogCi0gICAgPGRpdiBjbGFzcz0icmVnaW9uIiBpZD0icmVnaW9uMyI+Ci0g
ICAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQiIGlkPSJjb250ZW50MyI+Ci0gICAgICAgICAgICA8
ZGl2IGNsYXNzPSJmaXJzdC1ib3giIGlkPSJmaXJzdC1ib3gzIj4KLSAgICAgICAgICAgICAgICA8
ZGl2IGNsYXNzPSJzZWNvbmQtYm94IiBpZD0ic2Vjb25kLWJveDMiPgotICAgICAgICAgICAgICAg
ICAgICA8ZGl2IGNsYXNzPSJ0ZXN0X3BhcmFncmFwaCIgaWQ9ImZpcnN0LXBhcmFncmFwaDMiPnJl
Z2lvbi4gVGhpcyBsaW5lIG9mIHRleHQgc2hvdWxkIG5vdCBnZXQgb3V0IG9mIHRoZSByZWdpb24u
IFRoaXMgbGluZSBvZiB0ZXh0IHNob3VsZCBub3QgZ2V0IG91dCBvZiB0aGUgcmVnaW9uLiBUaGlz
IGxpbmUgb2YgdGV4dCBzaG91bGQgbm90IGdldCBvdXQgb2YgdGhlIHJlZ2lvbi48L2Rpdj4KLSAg
ICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGVzdF9wYXJhZ3JhcGgiIGlkPSJzZWNvbmQt
cGFyYWdyYXBoMyI+VGhpcyBsaW5lIG9mIHRleHQgc2hvdWxkIG5vdCBnZXQgb3V0IG9mIHRoZSBy
ZWdpb24uPC9kaXY+Ci0gICAgICAgICAgICAgICAgPC9kaXY+CisgICAgPGltZyBpZD0iaW1nQWJz
b2x1dGUiIHNyYz0icmVzb3VyY2VzL3RyYW5zcGFyZW50LnBuZyI+CisgICAgCisgICAgPGRpdiBp
ZD0icmVnaW9uMyI+CisgICAgICAgIDxkaXYgaWQ9ImZpcnN0LWJveDMiPgorICAgICAgICAgICAg
PGRpdiBpZD0ic2Vjb25kLWJveDMiPgorICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRlc3Rf
cGFyYWdyYXBoIiBpZD0iZmlyc3QtcGFyYWdyYXBoMyI+VGhpcyBsaW5lIG9mIHRleHQgc2hvdWxk
IG5vdCBnZXQgb3V0IG9mIHRoZSByZWdpb24uIFRoaXMgbGluZSBvZiB0ZXh0IHNob3VsZCBub3Qg
Z2V0IG91dCBvZiB0aGUgcmVnaW9uLjwvZGl2PgorICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9
InRlc3RfcGFyYWdyYXBoIiBpZD0ic2Vjb25kLXBhcmFncmFwaDMiPlRoaXMgbGluZSBvZiB0ZXh0
IHNob3VsZCBub3QgZ2V0IG91dCBvZiB0aGUgcmVnaW9uLjwvZGl2PgogICAgICAgICAgICAgPC9k
aXY+CiAgICAgICAgIDwvZGl2PgogICAgIDwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9yZWdpb25zL3dlYmtpdC1mbG93LWZsb2F0LXVuYWJsZS10by1wdXNoLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LWZsb3ctZmxvYXQtdW5hYmxlLXRvLXB1c2guaHRt
bAppbmRleCA2YzU5ZWRlNzQ2ZTEyYzYxMGZlMWNhMDRhYjc1ZTg4Njc5Y2RiYTkwLi4zNWZhOGFh
ZDg3OGYzOGIxZDE2YTc4MTQxZDUwNGYzYjU5NmYxM2RhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L3JlZ2lvbnMvd2Via2l0LWZsb3ctZmxvYXQtdW5hYmxlLXRvLXB1c2guaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvd2Via2l0LWZsb3ctZmxvYXQtdW5hYmxlLXRvLXB1
c2guaHRtbApAQCAtOCwxOCArOCwxNSBAQAogICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAg
ICAgIGZvbnQtZmFtaWx5OiBBaGVtOwogICAgICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBu
b25lOwotICAgICAgICBib3JkZXI6IDJweCBzb2xpZCByZWQ7CiAgICAgfQogICAgIAogICAgICNm
aXJzdC1ib3ggewotICAgICAgICBib3JkZXI6IDNweCBzb2xpZCBibHVlOwotICAgICAgICBiYWNr
Z3JvdW5kLWNvbG9yOiAjZmZmZjAwOworICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBibHVlOwog
ICAgIH0KICAgICAKICAgICAjc2Vjb25kLWJveCB7CiAgICAgICAgIG1hcmdpbjoxMHB4OwotICAg
ICAgICBib3JkZXI6IDZweCBzb2xpZCBncmVlbjsKLSAgICAgICAgYmFja2dyb3VuZC1jb2xvcjog
I2ZmZmZhYTsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgZ3JlZW47CiAgICAgfQogICAgIAog
ICAgICNmbG9hdDEgewpAQCAtMjcsMzIgKzI0LDI2IEBACiAgICAgICAgIHdpZHRoOiAxMzBweDsK
ICAgICAgICAgaGVpZ2h0OiAxMDBweDsKICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjpncmVlbjsK
LSAgICAgICAgYm9yZGVyOiAycHggc29saWQgcmVkOwogICAgIH0KICAgICAKICAgICAjcmVnaW9u
MSwgI3JlZ2lvbjIsICNyZWdpb24zIHsKLSAgICAgICAgYm9yZGVyOiAzcHggc29saWQgYmxhY2s7
Ci0gICAgICAgIGJvcmRlci1sZWZ0OiAxMHB4IHNvbGlkIGJsYWNrOworICAgICAgICBib3JkZXI6
IDFweCBzb2xpZCBibGFjazsKICAgICAgICAgLXdlYmtpdC1mbG93LWZyb206IGZsb3cxOwogICAg
IH0KIAogICAgICNyZWdpb24xIHsKICAgICAgICAgd2lkdGg6IDQwMHB4OwogICAgICAgICBoZWln
aHQ6IDkwcHg7Ci0gICAgICAgIG1hcmdpbi1sZWZ0OiA1MHB4OwogICAgIH0KICAgICAKICAgICAj
cmVnaW9uMiB7CiAgICAgICAgIHdpZHRoOiAzMDBweDsKICAgICAgICAgaGVpZ2h0OiA5MHB4Owot
ICAgICAgICBtYXJnaW4tdG9wOiA3MHB4OwogICAgIH0KICAgICAKICAgICAjcmVnaW9uMyB7CiAg
ICAgICAgIHdpZHRoOiA0MDBweDsKLSAgICAgICAgaGVpZ2h0OiAxMjBweDsKLSAgICAgICAgbWFy
Z2luLXRvcDogNTBweDsKLSAgICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7CisgICAgICAgIGhlaWdo
dDogOTBweDsKICAgICB9CiA8L3N0eWxlPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3JlcGFpbnQvaW5jcmVhc2luZy1yZWdpb24tY29udGVudC1oZWlnaHQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2luY3JlYXNpbmctcmVnaW9uLWNvbnRlbnQtaGVpZ2h0
LWV4cGVjdGVkLnR4dAppbmRleCBhMTVmZjc5MjMzNmVhYjQzN2IwODkyODRlNDlkYjdhOTE3NTI0
MzM4Li40YTQzNmM0YzZmMmM0ZmJhNTc0YWRhMWI5ZWI3NjBhNzZhZDJlMDNiIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvaW5jcmVhc2luZy1yZWdpb24tY29udGVudC1oZWln
aHQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9pbmNyZWFzaW5n
LXJlZ2lvbi1jb250ZW50LWhlaWdodC1leHBlY3RlZC50eHQKQEAgLTEsMTAgKzEsMTAgQEAKK09u
IHN1Y2Nlc3MsIHRoZSB0ZXh0IGluc2lkZSB0aGUgcmVnaW9uIHNob3VsZCBub3QgYmUgY2xpcHBl
ZAogVGhpcyB0ZXh0IHNob3VsZCBub3QgZ2V0IGNsaXBwZWQKIChyZXBhaW50IHJlY3RzCi0gIChy
ZWN0IDAgMCA4MDAgNTApCi0gIChyZWN0IDAgMjAwIDgwMCA1MCkKLSAgKHJlY3QgMCAyMDAgODAw
IDUwKQotICAocmVjdCAwIDAgNDAwIDIwMCkKLSAgKHJlY3QgMCA1MCA0MDAgMjAwKQotICAocmVj
dCAwIDUwIDQwMCAyMDApCisgIChyZWN0IDAgMTggODAwIDUwKQorICAocmVjdCAwIDIxOCA4MDAg
NTApCisgIChyZWN0IDAgMjE4IDgwMCA1MCkKKyAgKHJlY3QgMCAxOCA0MDAgMjAwKQorICAocmVj
dCAwIDY4IDQwMCAyMDApCiApCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWlu
dC9pbmNyZWFzaW5nLXJlZ2lvbi1jb250ZW50LWhlaWdodC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9yZXBhaW50L2luY3JlYXNpbmctcmVnaW9uLWNvbnRlbnQtaGVpZ2h0Lmh0bWwKaW5kZXggODdk
ZjMwMDUwM2JhOTBmM2U3Y2YxZTM5YTZjNDM0ZmRiZmZjNTlhNy4uYWU4MWI0Yjg0ZDg4M2QwNjg4
YTEyNzBkZDdmMDRkNDE2YTc0MGE1OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L2luY3JlYXNpbmctcmVnaW9uLWNvbnRlbnQtaGVpZ2h0Lmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9yZXBhaW50L2luY3JlYXNpbmctcmVnaW9uLWNvbnRlbnQtaGVpZ2h0Lmh0bWwKQEAg
LTIwLDYgKzIwLDcgQEAKIAkJPC9zdHlsZT4KIAk8L2hlYWQ+CiAJPGJvZHkgb25sb2FkPSJydW5S
ZXBhaW50VGVzdCgpOyI+CisJCTxwPk9uIHN1Y2Nlc3MsIHRoZSB0ZXh0IGluc2lkZSB0aGUgcmVn
aW9uIHNob3VsZCBub3QgYmUgY2xpcHBlZDwvcD4KIAkJPGRpdiBpZD0iYm94Ij48L2Rpdj4KIAkJ
PGRpdiBjbGFzcz0iY29udGVudCI+CiAJCQk8cD5UaGlzIHRleHQgc2hvdWxkIG5vdCBnZXQgY2xp
cHBlZDwvcD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L3JlZ2lv
bnMvdGV4dC1yZWdpb24tc3BsaXQtdmVydGljYWwtcmwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL2Zhc3QvcmVnaW9ucy90ZXh0LXJlZ2lvbi1zcGxpdC12ZXJ0aWNhbC1y
bC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTJlMDMwNTg1ZTlkZTg0Y2RhZTkyYWRhYmQ5OGQw
ZWQwZWQ0NTUyNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9m
YXN0L3JlZ2lvbnMvdGV4dC1yZWdpb24tc3BsaXQtdmVydGljYWwtcmwtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsOCBAQAorVGV4dCBpbiByZWdpb24gMS4gVGhpcyBwYXJhZ3JhcGggaGFzICItd2Vi
a2l0LXJlZ2lvbi1icmVhay1hZnRlcjogYWx3YXlzIi4gVGhlcmUgc2hvdWxkIGJlIG5vdGhpbmcg
aW4gdGhpcyByZWdpb24gYWZ0ZXIgdGhpcyBsaW5lLgorCitGaXJzdCBlbGVtZW50IGluIHRoZSBy
ZWdpb24gMy4gU29tZSB0ZXh0IGluc2lkZSBhIGZsb3cuIFNvbWUgdGV4dCBpbnNpZGUgYSBmbG93
LiBTb21lIHRleHQgaW5zaWRlIGEgZmxvdy4gVGV4dCBpbiByZWdpb24gNC4KKworU2ltcGxlIGxp
bmUgaW4gcmVnaW9uIDQuCitGaXJzdCBsaW5lIGluIHJlZ2lvbiA1LiBUaGlzIHBhcmFncmFwaCBk
aXNwbGF5cyBpbiByZWdpb24gNSBiZWNhdXNlIGl0IGhhcyBhIG1hcmdpbi10b3AsIHdoaWNoIGlz
IHRvbyBoaWdoIHRvIGZpdCBpbiB0aGUgcHJldmlvdXMgcmVnaW9uLgorRmlyc3QgbGluZSBpbiBy
ZWdpb24gNi4gVGhpcyBwYXJhZ3JhcGggdXNlcyAiLXdlYmtpdC1yZWdpb24tYnJlYWstYmVmb3Jl
OiBhbHdheXMiLgorRkFJTChjaGVjayByZWdpb241KSBvdXRzaWRlIGJvdW5kaW5nIHJlY3Qgd2Fz
OiBbOCwgODIsIDIwOCwgMTkyLCAxMTAsIDIwMF0sIGFuZCBpbnNpZGUgd2FzOiBbOCwgMTk2LCA4
NSwgMjEzLCAxNywgNzddCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sy
L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBl
Y3RhdGlvbnMKaW5kZXggYWM2MGIzYTc0OWJmZDI5NDA3YmUwNjBjZTQxODQzYzE4NTQ1MmE4OC4u
OTkxNjA5ZGI1MDRiODUyYmE1ZTFjOWNlMmJhYWY0ODcyMGNiYjRjYiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzM3LDYgKzMzNywxMyBA
QCB3ZWJraXQub3JnL2IvMTA3MDE4IHN2Zy9hbmltYXRpb25zL2FuaW1hdGUtbGluZWFyLWRpc2Ny
ZXRlLWFkZGl0aXZlLWIuc3ZnIFsgSW1hZwogd2Via2l0Lm9yZy9iLzEwNzAxOCBzdmcvYW5pbWF0
aW9ucy9hbmltYXRlLWxpbmVhci1kaXNjcmV0ZS1hZGRpdGl2ZS1jLnN2ZyAgWyBJbWFnZU9ubHlG
YWlsdXJlIFBhc3MgXQogd2Via2l0Lm9yZy9iLzEwNzAxOCBzdmcvYW5pbWF0aW9ucy9tb3ppbGxh
L2FuaW1hdGVNb3Rpb24tbXBhdGgtcGF0aExlbmd0aC0xLnN2ZyBbIEltYWdlT25seUZhaWx1cmUg
UGFzcyBdCiAKKyMgUmVnaW9uIG92ZXJmbG93IGRvZXNuJ3QgcXVpdGUgd29yayB3aXRoIHRpbGVk
IGRyYXdpbmcuCit3ZWJraXQub3JnL2IvMTIyMjMzIGZhc3QvcmVnaW9ucy9wZXJjZW50YWdlLW1h
cmdpbnMtbWl4ZWQtbHRyLWRvbWluYW50LXJlZ2lvbnMuaHRtbCBbIEltYWdlT25seUZhaWx1cmUg
XQord2Via2l0Lm9yZy9iLzEyMjIzMyBmYXN0L3JlZ2lvbnMvcGVyY2VudGFnZS1tYXJnaW5zLW1p
eGVkLXJ0bC1kb21pbmFudC1yZWdpb25zLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KK3dlYmtp
dC5vcmcvYi8xMjIyMzMgZmFzdC9yZWdpb25zL3BlcmNlbnRhZ2UtbWFyZ2lucy1ydGwtdmFyaWFi
bGUtd2lkdGgtcmVnaW9ucy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCit3ZWJraXQub3JnL2Iv
MTIyMjMzIGZhc3QvcmVnaW9ucy9wZXJjZW50YWdlLW1hcmdpbnMtdmFyaWFibGUtd2lkdGgtcmVn
aW9ucy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCit3ZWJraXQub3JnL2IvMTIyMjMzIGZhc3Qv
cmVnaW9ucy9mcmFtZS12aWV3LW92ZXJmbG93LXNjcm9sbC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVy
ZSBdCisKICMgQ29sb3Igc3BhY2UgaXNzdWVzIGZyb20gc3dpdGNoaW5nIHRvIHRpbGVkIGRyYXdp
bmcuCiB3ZWJraXQub3JnL2IvMTIyMjM0IGZhc3QvY3NzL2NvbXB1dGVkLWltYWdlLXdpZHRoLXdp
dGgtcGVyY2VudC1oZWlnaHQuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9i
LzEyMjIzNCBzdmcvZmlsdGVycy9jb2xvci1zcGFjZS1jb252ZXJzaW9uLnN2ZyAgWyBJbWFnZU9u
bHlGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3Jl
Z2lvbnMvdG9wLW92ZXJmbG93LW91dC1vZi1zZWNvbmQtcmVnaW9uLWV4cGVjdGVkLnBuZyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3JlZ2lvbnMvdG9wLW92ZXJmbG93LW91dC1vZi1z
ZWNvbmQtcmVnaW9uLWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZDI4NjI4OTU1NmIzM2NiN2M4
NTc5MzQ3NDAxNWNmYTliZDlmODI2CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA0OTM2Mgp6Y21l
RlleOz14Y3d5cTY8SyFTJGc0azFgQF9hPWJeMl9EPn5ZMjRpITRlcjRxSz05ITE/JFM2a3VFODYz
aHRxbDIKelQ0KFI/P0NVIyEhVEQpa0d8K1ItcyFeayFhZ1YxJDczQyF7KE1acWA1RCtrPnI5T1d7
S3RRNUdLek8wPzNJK2EyCnpzKkFySntLRHc7TVoqYmIxX0R8LUkkSTt+YkY9Z0VmQ05sSCskTE97
SlV7Xj5VU2tzaDZDUXFVRStafXU2SFlATQp6aTUoc0l3QHtkaWl6YFp0aSZINSYqcVdHSWZlO1lm
NUNjX0tFdkZSbW8pJHBxNzM8LUdyWn0kd1gwYk5MJTErYHgKej5uem9xTXptbk9fMCY+bmBQTXFB
ZWVWeXdEXlRhZFozVE4+UGYtRTRzMktBQnd3XnlRYHx1MkpOPCFZclVjSVolCnpOYUwySFM0THtR
WmVHMVQ1fUBETiljYlg3dVFpM29oSztBSHRrQiFfKDZmb1JkV05WK0NlSEw9Q0tuej1AUmQmVAp6
QmxjOTRgKkhPLTdEYjx4KH48M0pAZT5mNW50KnxHTFBwZ1YmKHJnNlVHdFpAJmFATm0rRHp6aUl0
TmVKaF4oVlYKejByRzF+UStge1otK0R3T09gLWBtJiZTbClVOHVjY2YtKCZzYElGN3AmTjFna3tx
USNGPT9aX2FoNkAqZWBOcDxvCnp7R3wleD5WKG9VOzdxXmJjbD0maj5DVCUtPnJgVS0zOXFtZk4m
JkU0IzVNeDdRJmdYKl47MUstb2Qpa2w0dik5awp6JG9uIUp5NElafEMtZFkoUC0+RFU8NkJ5P19i
bzskV241T34rdnJINHNvUFZCN203YkJHUCZFaXhpcnI9NGl5dVMKel9jP2ttdVZmQEhucCRUVVc4
K1hhY21NXkFHZD5AbVRDWG8xIW5XTGhvYjE8N0xfI21MZSthNUFFXmR6Ryh7JVReCnpEdjJVVmlU
T3Y3ODhmV0tpZVZWMDAoKipYV0NAN2hlYSlSVGNUI2IkOy0zKj5oKVg7cWxYTSVAJDc7fGN4WVZ2
ewp6eExVaTxTZi10Z1lRWWNldDxSWkxJO3syRVlwVExjQ0d+TU8lKihNXj1XRTxiQmVnQ0BmMkgm
a3dwQSZtMk8zaUYKelNESk9eLUh1VUNkVD5TYDxCVUl8YiRQM1MoTnVEeGNre3N0TyhCcjVFMih7
WVYwNUp2MmpYa2IzQEZZfTlfYyV2Cnpvc155MkgqUlBUeUE8bXF4e2N1dypHZ31ERlpWTXs7QX13
PW9nVCYyZX1EVXI0JTtraE0pUj1sYGQjQ3pRZFMzPQp6czRsfEdGSjlDcVpDcV50e2QoSUYhLUI9
T0RkWVZkNHoyeT5zbzE5TU57eyZITWZ4anxzM0toQXM+LSVYWj8jdVUKekhRN0xtdWhtV3AydVFU
bkA9NTB9PEJvQkBxa0R5dnY0bG4hOD56PUFGcm5GfFZDV0BiTlM4fl52c01VMkEwcEskCnomKipO
Tz5wS2RaZjNWdmxlZUIrNjx4QHFgQmtxYFJXRmBFPzwtR2EyIWJee05BQWdaaklIVFMtUiVqN2VE
cT9OZQp6NmI/YDtVVVh2QnJhKX1RRXswfX42K3hHR0hoc3xEYXZvMyRZMHpmNnZoK0MtNVUzRU9L
WXZuakxwJVYjWnBpR3UKemU5b29LNk1NJSVFbWlhVyhfM2hmTio2WnV5SERDT1o9UHBuMEgwTlU9
WV9DYntpZS1UKFQqUzJGcDhgVnttIWMqCnpSO2Ntcj5ZRk5jVVgzY3Q7bHRQdF9qIygyWXUkRDhA
X3A7fEBjR2dgY241NGNgdHY7SGR7b0Zaa3hRNVJDR0RwLQp6WjsrN0BLWWpkZjdlNXJMbE42TUE+
TXlUZWAxP3soejU0SCRqI25Yd0A1MjdTcFopeV9RflY9Rk93Y0VtbSNfY0YKent9NTRTQm1JeD44
RH5mQ0tgPHdwe3VjOXArPEB4dTRGdnorNFNjRW9GR0V6NWZfUWVfeztkMFc4dG9ITEdWbD5XCno8
OGU+SFhHbSZaYUlwUjlsST9QRl57TVZNZlZYSyU2REZjK1QzZUZqXktfbUchfWhybXVhSD1FK2xY
QU4pKUtqYQp6PXMjdWFkN2J1Qkg5a009aCszVGY+RndPOW9lYkJTYytIVm9SM0hEN3kyK3VQPVM2
fU1xdUA5UiF+OzBsKUtrfjIKelQpM2gjV002Yng5QjxRbCN6VF9IPWBmODhAdEJNbk8jWjs5TkA7
ejFsPHlXYnNKKlFAaUVzLW9fcyl9dUF9ZWZpCnorUk1KWCslTkZIbzYxYmdJK3BXMUFLQCQzWXhP
OSFFTmA4OypSaztxPnRPUmZNWHoxM0NAdilDR1YkYEBJKX1Obwp6LT4yVyomOTt9aHRiKHRIJHU4
dyl7X2BTPkhxQ09TKXVWIzJFX0FqRndIMyFQa3BrWGpDKnxYNnRyZytSWTJeVHEKenROWWJ3SkA2
S2p6RVV1bUxyREZBKjR+JVdVQUw2bnZfY1A9TEU+enRZaSR9dSM+OHgtKCNqRyh4PjZhZFd9eVVf
Cno5MW1JbExZdXx6NDJgWSFuekJUY2htb2VqMHRZZDBEPDc3Izs5NVdWPFFjSihUbXM2WiNmKFhK
UyYpfGQkc2ZELQp6KWMkPF4/NEtUQCgpb1BURkZMKkt4O2lwPXdkQU4heVcrOCpTN2pfKFoqRlNw
QE9IKk9OVzYrfTB0czdLQCR6ODQKemBrantrQlRPQXktfk08UWJ+ZmBORjRENGV6ZzEwbUNSTSZA
KUl5Vk9ePV9zPDg+SjZjVCZgRjc2eUxla2F6M2hqCnp6M1M3PjJUNXZ3ME0oQjBGODx6MSlHbCs9
ISoyYXVAMHx4NXAqTityaSk2SzB2aU14M2A9YnlLR1dyV2kwTi1SXgp6eHxMJmF5K0Z6UTEyb096
Q2NHOTU5cGBhQll+c0hEQFc+TGJ6eWNYdlpfTG5Xc3YpSUsoPUxrKUM8aj16NkBndkYKekE2PVU8
KGtMQ3RIfEJFLWR1PUJYSzJhQiFSR31xLXlkZVkrJDNEOzZodCo+TSpsOWx7VFU5b2Z6aDs2KEso
cV4lCnpUJlooeCR2MlhoZWpxfGhwTkM0JTsqaUJIZF9GRj1xUnloIW1YdzIrYWtxQSpzRz84PFFz
Y0hFUjdMXmlGJGlBIQp6IXg7cDFISUhYVEwpXk9NdzZBbWtOPlYpcjReTjhgbz4/b15RSj8yfntr
SDQqRj5me1NIcktQSWpZVDEwOENoKmwKelozNFIhJkY1QTYweVpDPllwKHs/dVdVMUZzJFp1QClp
RUVkRytiMjM/WTYyO0JYI2RELXNqZUgyb3s8cW9GISN6CnpAMTBrOURBKWFyWTAwVzlYOW53Zz08
RDgxWlk/cVdZWHE+KFZXRHwpTFVoYHtHYU55N1F9YkkzVl91aSo4XnNIKgp6dmxvamE8PmVTQFkm
eVlpV2p3cl5DP1N4Z3A4fTU0RTF0KXRRM0JnVW0oYGgldmYkSGp7bW1gU0B8THIod0Q9OT4KejAo
c1NIKD1qI0lDSHI4KG8zI01eNTtvKSNhUTZZNGk4JH1QRzRBQ1Znelgmc2FEU2ZwVG9NSmlHcGx7
UFN9WSNuCnpUTlE0ST92eFp0eXVSQm5TNU1PU1pXTWZlSUVTaWZUbGEzPW4mQ3ctSHpTUEVYU2lr
R08rPFY1Xngtam8jLSY9Xgp6OUVeajtHYiZHeVhOZzAqMD98aWt3d1NRN2Z4LWtTclJlZGAwaEFC
RUxoYzxLRFcoflc4SHJoIW92NCgqeVJrKWUKeiRsO0c9NWlONEhXfm9lQnp2fHVHNihXI21ePnx0
Q3FkSnVAckBZJHtNWn1UKUoxdn5HRE1ZZm1rXnExJiktYVIzCnpxUXJhaUgwcyl4NkQ1Mm1eLV9q
WChFViFPdzBRTWxuLTRaMk52WFBlemo4ZS1PYG8xUyVEO2g7WHhadWlRZld6Pwp6S04wRjBBWDcz
Yk9MOShIT3FoI1U4dUxVPGFzeGdhcXtvK2xEWVoqcmJLRHo8Tmx9aENKfHNlczRpcDQ7ZW1ZTGEK
elA+WjgrWVNhdGJFYio1YHBLa09RX2Z2UzV4VCVIZTtpViskX0gyZ2lzYmlRakpON3Y2byY/KSVN
RGpUX3lYPEJLCnp2b2g2UUQjKig3SVkmfFMta2A2VzNebmQjY3VzM3NtZ2QjWDhITjc9emRZSjZa
fTtYOSFuWXspSSEwZTFCYFIrfAp6czAjT1p5NGA2Y3N1OXdkeCF1PSlVY2cpWSF9blFLQGBfVTxk
KSNFJmtCbDZCNVpAd0dPOWtQSm44I2FCSFY1OzUKenlYYzlLVDc4YzZeNGdWfjMqayVNNVV7RDJ3
U01peyt+cjt8Z2F8QkQtWURPeXA1PHwjSz5sXlY4XjArRUBKQzZLCnp5Y2FCYnA8UkpAeSZnPXRa
SHBeJFU1V1FSJXIkMUxycHhSSTFOMjE0RTxaSFlmVTUjbWd2NjJCTV4zRDNaWkNFMwp6anE5ZnhI
UCR0O2N6R2lhRVVWMFpfekNoUHZ5TS05WnI4e3B1fGdtM3VYallYZmNjP0BBX2c0QGEoIVE3KUdg
NUoKelpmQzZVb2Q2V2YkdSNTX2w+RV9iSUAteUxFVColbS1JUlBWZVgxVXJvTFk4MVJ6eURkTyk3
NjYtdDhmSm5oUF9WCnpyZ3k1SXwydzh1dlEhZEspRk84bkA9V2leZE4pdDJ1fitjU0FxVH5Ve1ZY
TjtBfnJ1c083eEB5PkFgOTtTMnxWagp6I0ViamBUT1c8Nyk2P2JBdmk2anFIKWFXPyQxZTNfOXZm
SVhLITAzZXFHfEpvNDdjO3c8YVpWQ2I3VH1VMHFHazkKekdVPjE3KHl5flchJi1LY3U9c3o0aCN4
Jih1ZU9KKnk2PmM/ViNLfTZYdEp7fTErfEooNCZFM0w1VV48VklFd300CnooZTBxNW5rO0lWcUZf
XiR6IWdkJXk9P05ZTFJ8ZG1WeHAqb1VDKXh5NCFlMWUqTCMjXnY5Vj4qe0N7NVFTWGsmPgp6VkRj
Pz4leC03OCtsdCtwUDBxSzJGNG97IzctfkZpIUtzSi1jQVFiR2VhTD43e0FBOSlwRkRnQWJkZnoh
Yk1USCUKelFudWFVZzM+RiljfURYfll6KGx4XzNGYlBtKTNRWXVjUG0xYmFPOGxmPCsxVyhnMDxI
OGs1e3FEb1pHOF9sTmJBCnp7WHB4NFZ7akhDYj9kVXI7JU8jeiRufCRZRVZfazFkPWpGeExhITEh
dDJDVnY5UXZHPy0+YTheVSYhJF97RWVUWAp6QHZgYEsjcnVUR1RkbjtfZykhamolUWNldyhGU1hN
bWQjS29ENkIxd0BOfntJcH56RF4rUT1OLWtabWcmVkNXSG0KeiQtOEZEajtSRiRVb1dkKUExPG5J
MiswTmZUJDsoWTRZaUZBMk5mTHc5fiRAQFlFRzlEUyNvRHQkJEoqaD5uSGxsCno3a3dtMnZ8YWUz
ISZRbGBiaEhaSHpIbXteO21MaT9NWnFFKSRrfjh6dlVTPG0yX0VaI2d4TnZTJjZeZSV5QXV9cwp6
clM7b05MWXNWZzQhOzlSMEpvZENVKCQ2YzB1Tj9OKTRJeU1CQ0xZX3YmYlIkQEomaWkxaXEjQTJI
OUFKKGZYcU8KejIkSFl8Jmk5c1JSXiMhVzh5VnlIVmJENy1KSV53NUJDRWBuPkVoMmswOWghLXU4
KT1sU2p4bj1kZmgkKV5yPmlrCnpFQmkxWUBZTTs/aXwkWS0pfHZ8bG40b3x1K1QkY0kyPGBwfnp+
bFdlbEV4USh7My1HTnM1I29TenooPSpVOVVScgp6cj1JKSRmZWQ3e29odTZ1NnhHJW9FT3ViUE0t
PXVrRVdgTHt6PV5PV08yTytuLWA0JUk9Q2d6OGh1aVoyNUIlPVIKelood1hfTzFOJjNwMyRBQFJN
IUZDaXAoKGJlQ0dpKitGbmxqajg0KS1mVTNHfiFZU1lKVGpEfEM0UVVrQUlQdTQ1Cno1fXUoTFIm
VTQ0PzE3NGRjZUlqSD9jZXdWOT8rT2QjKkc5UCE8ZnFFLXIxYzBVQDkxbG82STQ1YFV2U0E4U2lI
Xgp6Tm4/K0Q3QCZ6aHYyS0JFZ1FJSXppUERgYDMxUiN2eUlUUiswRjljJTxsN1N7RW40YDUha2Bg
aiF+fX1DaEJzOWkKenFmPmVIbmo3MitqVGBxPTNVWi0rPXZecH1BRHp7Kl80MSYmWEdOSHViTTNS
ZkZHfWNGazhVdTlhZWk0SCRARDA5CnpmVVUlbiVmUnlyU20qLWgpVmh6ND1uJTwhSnByZCFkdEFO
QzB0NEMyLWw8WCszWFkmOExgfHg1dz1xV0Z0Q2NvPQp6dUdfS0E4OEwrfDM+QFY8Uig9U0dsd3Jh
ekEzIzc8VnopJntwck5qMT93N1lVQlNPaUZOUVFtPk5LWHVAOyQ1OzYKemY5Z2lYcWM5dTQjZDt8
Jmx0QFU8O2VeJjdMN2RZVU1HaT88Rk9sUXg5QX4jYjReTUp+dSsoIWFKPkBCVmYjeWhKCnpfeFZj
NUxXfDRXaEpwfT5gczMtdmV6eT1zfEN+NnQtQVlockp4YX1FLThHQlAzZnY7bmAxWjI5ODx+Yk1A
cmNUeAp6ZUFNJX13UDFUUjlkY1RiPjc1I2hPfmpiKlQ+Kz9vJnZFU3JiWHE2XlRYcllhN1hfa2Ne
QnI1e0RDSkd9aGJ4VFIKeiZndjFAc0ozOShAQ25kY2BTUl9RczVwfHV5VHEzeSVrMDtPdDEqQkRe
ST5PQWsmNHNLa0I5KDRsTXpOVUY7bEF0CnpKMnJ5KSVOT1F7RithTlZFdktae3QmKENMKTBxbjdB
YnFjfHR3bn5tI3VDVCFCUTElUmghe0gwcT4pP2Rgd1R2fAp6RFFYQVM5TnFoUz8kI0srQ1FLfVNY
UTBUaXNta182bCtJST1JWllGbFhyUUEjTXlLIzxQO3dOQ0RgZUE3MnJeVWUKeihsMj0mbnorQDFW
Y0khZDNlKTwpZ247TWpyTlY2PEp0RTRrMHZGYUtoMVZad257ezEybCFnfSVURG5QKzlqMjRaCnpr
fDdQaDshU0w4U2t9d0dHNCE3aU97JlheVVg5VnlvKTNweUp5PGcqND53Zm9fc1pELVJaJlFqPFVj
JV9Ee3Y9Tgp6cF5PMXZFTi1zKUpjQmIqSXleZDs0OXA3N156M2BfZyZoKDNmVilsYEZMYG95Z016
Zl88WCNyUjx3OTRoWnFLUHcKemVeYTlqVFdoQE52YGZMOXg/V2huenVucjR7cHBGdXomeCFXMHkp
aGhUQTlSP0NvQ2RgUn5qM2IwbXglLUtIfSEhCnoqfkxiMTI0UnhzdiFneyFwYippNE9ockYoZVBf
eTsmeCY5a2FQNHxjZV98IyY2UEE0JUZoUjJLK3JRaE5GKXlzPAp6VkxoODdMIS0qWl89cUdqJT1f
X315JT0+Q29WN00zbmUqKERWUjVrcipFbExTLTRQK1cqSD03NDRqVjRGaDVJQEoKelIpVU5fNHtI
UXc4eSZYQyNacTtpekJMJUM7b2IremkjfEhsUEpVJSM8WSMyM28+NUVUekc1Um9DM0JmR1owU2U2
CnpGaVhMWSk+JHc9KnNyPmZUbHJkWDVGJl5tP0IkPzMzQ08kWEcwO3pSKFI/eUdSNCpHUCltdld1
ZGVONWBgPWZvPgp6SERBa0pYR0x+dDhsLXYwPT1INUMkNGw4b1VhUS03bSsmdyYlWEE3V0ZNN0hC
cjY/fk9wdypfJjdLcClocFRnMSUKelVVZnxtazdUbncoQ2cpKjs+Z1oySDNebTJaRVRGcmxlPUU9
RWJsVTUhbVc2WnAyalRSSVVjcHUrWm1oOzZNRE1ZCnp6fFlyUl59ZUAwKGpaTEAzSk9pclhhM0BM
U1VhbV9eJmxiYzMmTFdUOWhOWXk3eUZ3THhqfXYybyMtWi03NHI9awp6RUQ9Iys1PmBaOWgoV2om
eTxFNnYqZGF9cUd1bHY0bDVXMFRxJFcqNzF5Q1NacX15UCF6KzFlYj4yXyRxemh3PzEKekphVGp7
QnEoWV4qTDhYOGhaUm9yTTZgKElyYClhKFR+cFJqbURaayV2MnAqe1MyO01CLX18fTwjcU1AeCFh
V21VCnpoIVZxd0JAMG4reStFNj16X2pgakdDQ2hMKD5TYlNhcnVEK3UzJj02JjlrSmckUWpNXmRq
Izx3PUpwcWw4cnAkNwp6U3FPc3MyWDcmP1lrMlNSS0lDRDBmR1Z3QSRZMVNnTlJAcUVEMlVIVV9G
eHVvZSowZW9VZ2ZjfEVlVCUkRGFXJDQKelhFISg5QkZhZ2l5QENfekw3U3hYSU5seH5rKXY2RSRe
YzhMYSZmUXZTekJPO3t3a1FKYDhXayEmZGxxd0dWUHAqCno9JiQ2Nj5AKzkkRiZLT1FQXzlGZSEp
WnR5YWYrWDxfMk87MilHbThBUWx1filsfSNlK2BUPzNve1lefWxMQzRENQp6NUBLI29jM0Z5WiVj
Kj0hXzBBU3tHcVY2eik5d3NSdldrWUlyaFNLe2U4aV4lLXpfYTc9Xm5RSHhKdnlPOFRNPDkKemA8
SnUmSkd1UFVXUiZKYShpJW1gJXhsc14+VXheRGlvV3YhZXdIUExGV0VHPGVgTFNSN0BwKUcpPntN
bUlfSl9FCnpuM0d5aHN8ZyljMVReK2k8Z3I2VHdgN3VFYl5faW9GTChYbXBCPjE/bHZ6XkJsZV91
aWVjI252bnxTR2NQfXpTcgp6JkZJJHVqZE5vZzhqbjMzQS19R05ROVFAQiR4P2hnZkxwe1IlJXNm
NUB5TjlgeldzVVMrQ04yUEE/N0goR0pIPlQKencqbTNeVE4lWmdacVB+cWMxd05je25GMCNPRzJI
Rl9ZP0JKOUskOVd1dGd0WWp1UiUobGdnOUhJTih7d2h2OyhkCno5S3BUZjd+TUwwblBUb1RrKXtD
UkRJNHVAPDduQD1NLSNRaHFkXngpbjtPJnE5WF8yTmo7bi1tKm9PJGx0PzwldQp6andaNDNfJGh6
NC08VH5OI0leclh3cU1MNFotS3NeUll4U1dfNVVaVSlxfGwhOCM2UzJUeShufU8tSzJiIy0mQDsK
ejhScmtIZk1CTmhvaitsb3lQazc+eXMpP1NRfWk2R1FnTUJLWipQSWxuU2FQezU3I0VeSztxaGFg
XkVGT2h4PUMtCnopOylhcSl6ZlRrSGB5YWJfSntsSmkmY3hPZH50KClBMSs0SVlFJlA4O054TCg8
OTZ6fntDO3l+YXVTI01ATGRFagp6QXNOKndJPkdFNHF8Vl5NJFpnR09xI3lfSXJfYzFfXmttSExs
aFN3Sk49T3c5S2xsPFpOT3c+ZiF1ISE7QXYkWXQKemd4SXdHNHB6KCkzM0glO0p5Pyh8VSZVXkRA
Pjt0b3p1TDtmKE9oe3twdDt3PFFjYjFueWBIb35yfEF9KDU8bmZzCnpaVyZoV1BtZmRGdmc5PTNX
PGl7Y2lOcGQ8KXZUbjg+Pndsb0hjUjFRNStZZnooPSRqOz1TZldDPlVfWkN6alNIPQp6ZHhiQThV
U3BPUj5ATDNDRGZHN1c7JT9xRjZCTW09Qjg0SnItZCZaU1JRP09aYGc7T3UlJTF1aXJMV0I/MkZG
PCUKenZLM1p5Nnt5UXNUanNpa0ZoNUw1OUdjMS1RdSZqY3dCeW9Pa2NRQ1ZyM2BnUjRBbGgmI3Bu
PFdFX3khe0NkRTkoCno3SGVRT1d8PGx6VFJIQGUqcnk3encjKlEoMU1oNG44YD1kdDVabmg0SGEm
YkBhZChORylyaCZZMm54KWxHeEwjZgp6PWFFUlFjUUBZKyEyKENyckxZV1FFITRsPURSXmVpZDZF
ZHNqS2AjIyV5QTNmYlJlYWR1WTdZQEBZPmxgM0tKI2UKenQ4dmN5MnprclhDfURIVEtjbntlaHBf
I21qViVhKU1VfHorSmpMX0tIVWlNTkJpQU1sczwyV2NNPTtAbDdmZ1goCnpTeSEqZW1KSWYjU3Io
VlMtbEVzKXVMPFIhM21uVDV3LSM8VHpxdWQxZm00O09QJD0hbkVmSldIP0dLfXVrcTJtQgp6c2w7
eyp1NH1+SSkqaVlEK2QyZkpaRTspRHsmPm4yT1UkN1l1PFVSMDZXYmd4TFl8Xz1LVSE5ZWdxKyN7
Kk5mQDMKemQ5fldlNHZPY1U0KSg5a3RpUGl3a2BUP3o+TnJNQFEwVSpeOWxJR29qPVV2eE57ay1v
KUx0Z0dfentOJjEtaD1kCno3cFEwJmxSRm03NjF9YipYMF9KVytpKnhxNDZYPipQcykoIzI0Zk1y
Knx1SUxkWnVtTStAJChlO2U2WT1iPnJzdAp6WUcpQW97elgmRW44bmMpcypaSXVGKDRpO1h8dkAw
JUdJTUYtNmEpVi0wT0BzT0F5TlZnOSR4P2ZoMjJZYjZ6JEYKekYpTXshNCR7al9RbD0zQyYmbEJ2
NyRWYCY2Z0d0dHhFOV5YKjs8aj0lU29mS3VVfWJpVjJmQEhLOWdOdU01JVZTCnokdytaS3ZaWnhz
cn4mZUtgKkkkMFR+T25IYkkzb3QmKjtCX15zPWFeT1lwfDAoTklvNFVLRUk4VnpJNl9sN0dtdQp6
Sj0teXdLTTtIflNzQVliU300I0Y7aDVWUUZBSGl7eHlQUyE/KntKanNvUlIoK0theVQkeS1nYSp0
RWFCZlAjcU8KemQhSlpVMEN4Uj5oRX4kQ0x7SVUwfDNLb1RXaFItO0oqKkd4S0hSRFRDVGYkdG5g
U0dPfDRNNnFETz99JXdaZEZnCnpWQC1sXmk5VEcjcEd1TUFnfVNiRCFyajdiK2wmI1ZiWi13USpC
Xng4R0BHVkVldUVMP2ZMVGhpaHx0VGR3e1U+YAp6T0F3aElLWUdqUTxTekpuTUF1KUYrPEIxWVJn
RXEzcnFFUXx6R1E9PyYwcFNvYloxR3AxbmxOJHEydUF+NU1qU1UKej9nU0ZIPFFaQjZXKDVDQ24+
PEx2UU00Y0lqVn5ebW0yZmFCcEheU0AmS3AlcEI/dDV1Qlowbk5ybTRray14cyZWCno7R2xXQ2g7
NG1GMz9UfF9PKEc+eDtQZ3s2PWYwc0lPX0trfGdqWEclJGNNI0J0MmNkb2N2eHUoUklpKlF7eXFZ
Kwp6ckxNNkpAKFV3aD9pVjBOQCZDclV8MyR1dXtGd1AjezFnNU1paGxLP19UdypJUW1QWExTeXB1
WCMxfUVNWnZ2fSUKelZmWHwxbiZaKDl0d1VDMFBKYCF1U31rdCZvK2NiYVh7QUNGLSFJKygmZ3wj
cFN6ZWZ9K3gwOHtFfS1ENnZOfncmCnpCbztaT3UxUDRIYERSUHYyaDNTKUZ6S2MqeiZkY3IlUSR3
eFZrX2puPj1VSysoUVp1dz0jWjQmMTFNN1deak1yeAp6WWN8dDxQbXxpVk92cnYxZjF8ZnBpcyoz
S09MJVUrIzRjIXVLIUtJb3l7PmhNI0B8dHphazFhKUR6ZmB5KXBUVkoKekpVfF5oOXBKVFd6Uio7
QytEQSRsT21VMFdjRHRSWFRDVWY2Z0ote2ImVXdBZHsxVlYmLXhvbz1WI1ItZlF2alAwCnpBMHlH
Y3ZhVm41QmFMSGdJVDApVzhRQyhnKX0kclZZTDJIRFh8PDd4bGNeI3ljbGVkMk9gNmYkWGx5Xnly
LTtSfQp6Xz9xKihHPngtcGs5aFNgZEVPRUNTQFkoZiNlcGoyKXo0JVc7bVFaSkhKXlghbDJGK194
Oz5vc3BZS0lFOEFONnkKelM+dlQya04tRik9XnF0M1pjJF5ed2JjMU03MVBhbHhAYzckc2IkbCtN
S2ExSUtVSnEtITNPYXk3TWpiJjs+JmlhCnpmWHUtT0ZGdHZxc2M2fHZEJVBoPldsTTJueUJEMUR3
eHlEMCNgOHxVNFZ1a21OZWhjRkMofUgzazwxbnotc3Y2bAp6ajxTfDdUbzJ7SFR2LSVzX34pXnEx
M0R+RWc7bVBkbmwhNjJsO3ZlbCk3c1p5O2JjISV3cnl8RXlJU3s+ZjR7KXwKektRQUNpI0p8OTI9
WUd0NT5TRkZZWmVFTndSb31Qc0FWRiV+bFd2R3hGMWE8bnctcUtvIVliRTkoZkBuOyQ5NnhaCnpr
SXEqKkxGVFpqc2x0bWVgMj9HVWBveHlUcDFxSU13UFMkJC18JH5BZiNiPXFfb0NBMClsbzE/d2Y1
QSkpTEBNeAp6bWg8fn5odHViclRQJCFPJUZ8Zz07PUxmOD8qeD8oLT93bjhVLTFCKlloaCp2TU1i
WkVVRX4rJXk0cSlBUSh4NX4KektiWihpU1BuNjViRD5wbHYkJXlvUVRjUlJaX3l7JT8pQjhkcXRq
TGtMQCVlb148RnxwOEA9OW81WDxAfU5BcjYoCno0NSY0JG9SSUZ7bzV+ZCpJRVQ1dysqOGhzUih0
KmVTVk52NShoc0Z2TiVHWncrU2x3TktmRiNsUTRnQDY4YUFTbwp6SnI2MlRefUNIRTh2YyNlZFFD
Wjc7TjtmcHhVISFAYDUoTk48TGd7NE5lUWw1QFYtQlVabH5HbTljO04+T2hgaG4KeitwYXxkSEtW
dmpgTmNjR19GVjIyV1J+c3IqZ0UmJU5kQmdMSXRpQVlkTC1QfnlJUW4wKXpXfjg2KnZgfVB2dFcq
CnpiY0VwMCNJSyliaHFMfXNALTZ9UC10ezwrM1BAclNiQUFzYDtXQ1h7ZlkqKnRqKClObnlFaXlr
Yl5FakJuSTc7YAp6Nk9FVloqfHFKUSs8N3hydklxfDVMI0wpZjNsOWtEcS1xWGMkVCtPWV9gcyRN
eS0+P29Ke155WFZ7aD9lamZ1TyoKekprOX41TEJnS2JOMlBYQFN0WV4pVCVLMX1Kbm09NEpmSTt3
OTthUSFURHhfekJ7amU+QSt0dXVKeWw7TVgjckxECnomRkthe1kjZUo9LT4wPCtKX2dYK295X3ZP
MXEtSG9yU05APyk/N09Uen1rSjMoMippNHI1QWhqU3s7PnFFREBNMgp6QnpaRGprKGt8JFVqRkFt
SEZjVSptMj8oOGdKXkMkdDFUVllAPVloVWNMeGZ+MSRqRTV6U08jKEBafF42OGxjNz4KemZsZEM/
OSRhWCZfWFEwdjIxblF+eCZxKTlGN08hXlA7KlMlb1VVNDl5dGk5Q0hJJkp3UkdaMGtmfVF3aSt2
TiV9CnpKbU5mX0owJkMzU0FgPCRBbF55NCkwK2c9SSQ8WEFBfVprdVFtQTRZaSg5PVh5UlROPzUw
RmYxbExvNmFYKjNnYgp6dmxtITkrJW53al4oYGIzKilsRldVR19zQ1JpNFBeOVQhMUtnYWMlOEJm
Wj9nTmlpOEotODQ1TGQtQU4tR3xedFQKel99NkB4NmpfMj9WP3Jacm5nJGFlYkJJI35lfHA/cT9F
UT9BRENSQiYmUTk7S28rKExjRGJ1JXgjQzw4PCtneTcwCnpJMW8kMiF5YHtwXlZfamxVRTcqUkYw
RzNAKCZfd2l0dXg/cUlFQ3gtYClnY287I2FCaU9IbDRSejQ3aXwrOWFMcQp6IVNRdVowcFNVMT1S
MDJ7RUN3P1NOYFRIM1hXMlhOb3BlX1ZQRmE1V3Y/VSgkaFAqKzlLUjEoa0dTMUlXa0dJaSsKenNI
cXJ1fEc/NG9La3IyMEB7RXwwT3V4bnFNP1ArTFQ0MSYmckJNb35BTStffE9tTSZDNTVkVkk5RXJp
ZENYUmNnCnpaNU5Zdz94VjcpKndqVF5lKWxDZUcwVEBiJk5EQX41VHs9OD80blkqYEpPQUphIWJj
P152ek5hY1ZkQDVaZ09gSgp6SnstWjkyYm09Sm5gQ1BGWHx5MDtEb01kUjgmKEd4WjRsRCMjb20t
OzlGRFA2LU9XaFdAbC1tJlhKSFRxM0FkRE8Kei1NbVJecU5UWm8yMlozNG8tLXlHZCNfeEUoMClN
RFFpU0pYSjFkeEModXd5cTFRYFJ6Tjw+MDlOS3luYytXR2J2Cno7e3dOVCM7SDBnJlR6PHtNMFQ5
fVc1P2A4RVI9N180b1FGS0EkLXF0dzMlPjl3Zi1VSVhuV3Z6KCFzZX0/UWF8Pwp6dyo7LTJyfEgq
NiUxakl3MjN3cWo/amhfaHZAfnoheD1HJWRKa3RlVSU9RXJYV1g7Yk1BbklHN0o2VyMtZm1VUVQK
enYxezJGUn4oJENXKz5JSzluYXZVITZOSG9PUmd+enQ0K3gxK29FUit4NmlqNiVaeElsNC1oXmok
NHRWeEFRO0EmCnpwdGpWZ3VZbXxhVnhYe2tTYntqZTFXUnoyaVh1SWUmejU0Zko0Qz5RcG57Y1B6
M3UqcFgpPG9UdEQxT3ZlTWh7cwp6JCQzQTJFJXRAd0lmcjBHM1dDKldYWHAlM1hATlpkUkxDUF97
cV9FSDJXcEFpY2xiVn03OHslTWAlQ359SW00VlcKekAoSD1YRXpWRGdkNGRXX2BWeCpyRzBGSTJP
eSVyZSZBS2RGN3dFYUl6Wj96c25ibWJBQUZFbTthaioxMzJUZWVOCnp2YGY0R3A/SEhzYUVoblYh
eSlBRilxR2UtSWAtYT5FK18mJkJjKVRpPFB+VWhaPXNme3BrR2t1YF9YYlVsYTteTgp6aVF5QUdp
PUNNPDV8ak56Znk3RWdsSnc1cjFZZUZSaCtNe1puUEklKEV0bUBMbiFSZk89QEdoYVU+MkF0ekJT
SXIKentqSkBHSTdjI0NQMjBBV1hBRj40N0t2SnN7MWh9cUM3eUpOIWxlTXVvdmZiV3sleUJuN3x8
WXk+ME5JaCM3eWxMCnpna0tQd203RV9MTWtoPTZIMlZ7YEVXTWM7bntKa3Ime2F7X3I0VmFNYChm
YT1lKlBhWHota2B3JipnYTlebks8Wgp6PShUKkIlazteOW9qcWV9cCRFSExMd21sa3F2KFpSdVQj
Z1N2dzZ4cjw0U0RWZTdpSnRELVRpZnMhRyRGcis7UXkKengkVHphcE17UVIrdF80JjBibDRwQTJ7
WmolIyQkTDgwUnJFdTUyVGM2ZCU+UWF+T3FrZyVaWFNaTD5kSWBGQDhECnp1ZFNxYiREekRSezl8
elk3NlRpMUVmeCg/aFY2flAkNnE9QWRHZkNgejhNSHN1PEtPfTY2JVNjcG8qaFZhRX1YIQp6Y1Im
SkJ2U2JJPVV3Z2lXX3NUP0VIcWFNIzJmQSslWT9IQSpjUWgmRGooPCMrY3lZYk5rM3I4byVaVWkt
clNRSG4KeiMwMyNvKmYmcjVvKmpxfj9xWTF2TUQ3YFY9UkVUenooYGl0MlBYKTFuMW0qKmtNeHJE
UUFQWSNSbnpRIVopay08CnpBPncmdU9wZ0hVaSU8Z2dNfWZOMEp3R3FTRDZgcDY9cjZfWjFCJnMl
PElhJFo0ZmVUK3NOOVIkRXU3Tj9iLWwoMAp6PiVffkhKZkdmeGkxMl5yZmdKNVRnSCs5MlA1RStu
cVdrbXd1bF8xIzhzSTZGSnpAIylFX0JCUUphP0AzUmVkPkkKejk2bEw7Q3hCUEshTCt9NGZeX19L
PiQ1O2goe1c5LWUhTC1ramhoI3NpWm9NVGZVanJBYEt9S2VCQyhKOW9lKnZoCnpUWUBPTzlvPWxO
WWA7bV9UOWV0T2U+RFl+WkRhO3lYeyN+b1VBMEVrdkkoPyZWJTZyJnZ7QEtpek9ZJEo1YEF3PQp6
ZHN3d2pEX04pNSptaj9GUn57cyg5Sk5rdHVrSEZGaSlIbjVmVz0rPEJSOG5Pe2NnSkcpeGcmJllt
MzFqdkBKPHAKelBKb0lPNnFNSClEWlpMR0M0fkpYNCsmfm8odVUkI1VIOFpCVj53JGp4ZFpQQEBB
IWkwQlJtWSR3aVliUXgzSmJMCno0Nz40NiRQSFMlKipvPFRFI09lXlhHY3lPYDxzKX47OEBpPDhV
aU5EbWFkUFM2NWxsNGhjU2xvbEp0Zj1gSypBMAp6RVFETkNIe0ImYyVlITs0Pk5AcztVQXVmcyM5
YiNuc0hoVWo8UE5aMmRDSTBiTmJTXmc3e0R4T3J+PWFNVHplTmoKelZhP3Q0eVMqd2ExNXs5djNx
cGcxKHIxS0pNRyRsQzsreW9XSEM0KG88WWUrTGxqK3RAWjdkV3RHdjRadyg1KjFFCnpSPDF0N2A7
JFYmbjdxT1o/Yk9+KDM5ST5zJX4lT0xHSEh7M1olVERtKGpMPGByP2wld1VZMGZQOVM5RWVqKnNG
dAp6djtHcz9UQmloKW5hTn1WVjt9eTtiP3VMbD9KNHpWPSF4MFhtOUR6alZtezRrJihNa3tYP0sp
RWBjSzQ4c2tlZ3AKemJHdjNRYyYma1B7MjNffiQ4R2w/dn1QZlk+UnxeS1ZleGBYYzxecFRzPylL
WThSWnp7UTc2JGFBYSQ5Qj5iVDU8CnomfU5mU2ROYFN4TX5ZMTlVVStRP3FnczlNSERNa0EhfUFZ
cXVpc0xtLSZJMXpnbFYrYyZRTCY5Jml0RyROdDtIYQp6OVQ3cWZiQiFpUkBXdU1MSyFaZXZzODU/
JUBUO0pvcXo/UEVmZFJKZWdoTkFsJDdmc04hOSNYYVlRXnBGZWlWdUEKek5rODQ4OztWSX51X3xR
XnF1MURPXzBCSVM2ez81ZFJ7ZV5ASyV6WHgxTmIqKSFTJGsoYSs1X3R1ZHxlXkA+I1EhCnpZPlNj
eXU+Q3BWM0B0PGFLfX4kaFZFckM1VkpDbE47JElfb259Iz4zUDF3S1dXWWVhREEjTlFmUS0wdHtZ
Xm0/eQp6PyZ4bH1MSCVleTc1SW54VXI4Wmhofk4qYzNWaVUweTFKTGp6dDtfaHVafSorVkwoJE5s
fXNEdU52TSg7S0xZKH4KeiF8NG9PPDZEIWR8Qkg8JkpEbXN5PUZ6I0JxVkdfMjgxP2xkcS16fUhf
KTBRWSpPNVc4KkY/SXBifV48KlNYTWpACnpqeTUoeSl5Tjs8Vn5XPWdMODw2TCZsI1VYXzFga3FL
LStkMXU0S2lBKmVKNVRoKE4zTUxBRG9gTD4pJFVFQUcwVwp6WFpNWFlWOVI3VEtoUVRnVE1OTUVC
cmhwTiNiVmJ4RnZ1aTgheyheRE98aj1TY2kzYCZ5cXB6NCRGZkpaVlpXangKenkkU1lXLVRxRGJH
cl8qfEM3flQpQVFKMF5MQG5VcU00WHF4SmRRKU95WTF+c0V1MGpSKVA9NDdecElYaGtrJDl0Cnpx
ZG5xcHl4QVBULWpuWkt0M3QyRypya05jQktKaGY9VT5jalJ7RCRwWHFMTFFPcXNSMi18YGBBTjg/
MlFZa3ZHcQp6aG1IUmJMVEQ+aShlKVBCczQpO1ojZ1p6WDV2cSsmRypIdHl7Q0tecUNLUklINDQz
fWwlZ2R+RVd5PnI2TEplVkUKenYrdyZTPklGayl3UWE/WWVYej1wZ2JwYG1aOGpYdGBlMGRGVWYl
QFFqSTVLQXhgaWZ6XkhTQmBhYmd+cDhAfkcqCnphT3N2OVV8Mz07SHQoWFhfVX1aSj1RSVZTKVZ9
V1l7Tk4qZFJkclozZi1XcXplTm9Wbl5PezNYPnsxXnlgc1MkNQp6c2VzdmZmT18/X2FAd2l1KXMj
eTVXKkdDaXVeWVVoS09jX1JmOyVEQW97dzJAUCZ6YXMxJlFUdXRhaTVEaGooX2cKenJweT5VQyNh
RXAmOGN1QUdjMkA+ZE1KSmt1bl9NQXBmYjJFenFgNW8rdj9zTHxKfEcpI2tMeUlQdE4oLWlCLVh2
CnohMztKfEFlYD1YSGR5TTAzZyYjNTM9cX4tRG9+cDA0O1BYNHFqVz5hbUpweEh6X193T0hyZ352
bTxtdk1QJUBSOQp6bENhK3tXZipRczdJSjB2ZTh8UTtCb1VyQ2M8cVZrU058VF8hZE9FaDYqT00o
KDs7akgtYU9gTWFjIVdNcX5JaDsKekNTYnZ3bmpZVldDJVIxZ3BqajN7QCo0YlloSylwUjheYVdI
IyszWCMlVCVuSGImcD5vU0UmLTZeR3Vpe0A2OD12CnptdFlHV3UqPWJLdlJhWlVLeE5RU3I/RjN2
UzVNLSVnTlZTSE0tOF8pXl5rX01BKlQ1YWw5bWk1KUtybmBTUmteVAp6cjtkaE5GN19UPE14KT03
YmFqNlgqTytpellzTSNxVUdiNFlGT1EjSElUQGgtM2dtOSVoT18zLUpLclFCNTtwXloKemZrXklz
UHMlZTUzNWhiZz51SXVKTElKbTZAZVV5KjEoJWNVP1Z4MXVBTTVFfSpHNWdTTUV0NGNfeV5XZjUx
MVY2CnpHNVFve0RjUlhQIW5RISU5NFMrcWJARDY4MDsjeEBKfEFnWCk0YkRqLWxiIV5TaEhRNHFx
VE1tSitFNlI/MyEoKwp6dGsoJCopVSFhUnVkVE0taXV8Wn0/e0NUaG12TFBBX1g0WmUkcD5yWXZk
dmNLRkxhe0BRNU9DWWF6NWp+PDBXdEQKelk9JCFVIVFrYlgoUVBrV3h6O3x8YVBBJitKQ1hTKSl9
fSg1NU5SYV9jaHdwPUF7dEhTQVZ7IW1NVjZSUFMtQTBgCno7V1hsMWk/bCgrMWFsREd2MH5+PnIp
NFZqV0tCPGFCJXYpelEpbn4qKERKR1N6UX0hbFJlejx5ekRzdnFzaWRySgp6YUpoQmVhNH1MUUlC
TUxRLXk3eGBAeGxZOCQjWjNfMTczYDx2aXAhcEtaSFlORmk+TTYyV2BWNUMtfV5iKzY2IyEKenct
REdkVHVMUkI/bFRJKkc8bDY5NDVoMmROVUJ1Yz9xWDFZN3Q5TUBSd3FJZyhpRWxDNTRqc2dDemd7
UlNYKHt6Cno8Y3t3M2dWYXdseEB8UjZTP09HYTN4dEtodlp4TWJUUEdBMkc+fHJSLXFwJXxKT3gl
ITg/cVk1aSNwayt1ZVdsdwp6YTsoY3MqT1F3dmFPdW04TnhvX3VePmxOVjs+a0Q8Kl5RMSk7O2Fn
RWxpcmlBNigoVyFZNnFGb3cwcSRgMk9BWlEKemRURj4kZCtKZ1ZNY1JGM0BJJTAmJnBvRkwzbX1r
RmJEUWhSM2U9I3s8VGEyY3h5bmxoRFQyO3JKVTt6dXJTPVY9Cnpab2pINnVicEY+UyNoJnNkbDxO
MSl3Mi0wYE0yVEg0RWNwTG4/fEhUX1dWIT5pY15WdXpsbz5ZYihmWmc4eWRVewp6KUJWNStzN1Ih
XlhaY19jVTlnJmEtSlh0JHNNVigpZHRFKm5GI2h+TDtrdnlWK0F6VE1aKkx8UzYrUjRzY2N2U2sK
ek1VTHI9SXh1MF9CUlJYZ2FodjJ6MGt0Q0A+MnlWd2Y8SyZYSWJrN2hKfDJAQEdKaXcrbXIydHIl
JEpCTih9LUlBCnpmN21rPk9fNmB0eGI1cS0jU3MxdmNjfWRMa0lLWVVuX2NwO0owUy0hI3h5fE1O
ITluMDFuY2BGKlltZz93N19iOQp6MyFJOEU8ZWxIc090fV5CI3hWYko3WEk7amk4V1d+YFdxdz1T
dDNmOUIkMjNGZFh4KVdOaHI8ZlMzZHEpX0U0SzAKenI+Knh2Kks+b3UqT3A3PElBVSg1czxpQmo/
KEMwREV2UEJXe1ZOY00jZyZWUURrfGdjNUtPJE48O18jVkh1fVdBCnopT0ZlckxaX2M4enMzaT9j
KTNnJiFvNksjJXM/YjgpOFhYeGspVXBwTzNoWWBjMERudF5TVlZGPF43V0NzSFQlSAp6YmFDbVRI
cD1kPlFLeiskdEE5TCNLaHRkNkclc1AkYUUwRDBJO298ZVpTWkQpSzhWY1d2I0RKTFVuU2hFcjRV
S1AKejtnMm8tbGgtPTZzRSNaeFFlcX1rbSRpJmspMXxnNHVFPGxwWnVDdWJELSZxNTk2eX5DKUho
a2o9V1chJnlJNElNCnpXWC1ZJikwJWNKeSlGQyNvfmVwZkIqPSp4RllBWDwoZHlJUXk8dVZ0XjJ4
aDM7dWFkTnVEZkVCUldxfF5IdyteYgp6OUJIMFRLP1kzfjQ3cH5PKlVvNiYhSTZsQUV1bFJwKEc2
QW85fD9SeWAwfVdJZGIpMWNlO01kRGdRdiNlMzNzVGwKemcqMDUmIUV4VnRye0A+e3d9a3Z1Njk2
WTFSMGF5VzQjYngpOW8kUlUrOC1SRSlScEJ3KzBCMlUqKUx+LWwpPGZQCnpPfEJzR1huUz4wJVJ3
TWFtampnTkhqb0cwaDJHYjxvK3toQWxTO1I5OEVIZjZudG43bnRoUVUrKnFjTCgwRzlLVAp6NEI8
KiNiXkNQQGdAU2Zsans2bFFmWlU7S192Jih7NXp7RiV3cHJGNz1vdkpoaV4/ZWBhPXxuY0ppUVN1
eC0jX1oKenskP1h1ZHBTcFczWXV6SkhWXmFPbTYqUT4hdCUzViYxcnw1M1Z5PWlidihOcSUkK0BG
cnhSfEpxaHhgXjx4UThxCnpRTTFEZF5WTkpVc0ZfcF96RXExVyFLSVQ4WHxqQ1c9NCZyKGQpUSln
b1FLQURCYldGdlk4Q0RmNml5fkZFKT8jNwp6JmBNTlh5YDEmKW1veWZaVCR2P2tFYHwjLXZ1WUJT
dXY/a3hXQ2V1M0AyWWV1cndIP0F5MHEyKD5FRiY7bldkaCQKeilHZ0ROJnpveTxgc1M0PW16a3xU
YTt7WnAyLS1TcF4rYEN9JFdmSUItYCNPMW9XJk9yPlRBKnxoJTdvUTJpPEdlCnpKdU4tN3gmNmxT
ST1oOGNGa2ZZemVYOXlReUVWMkx5WT9iZGdWLWhfaVZeJTJ7TkVzbD1yOFdmVWN2XzRkP2ZlMgp6
UyU+e154PChfP18xfUdrZiErNlpRdV4pUWtKQykkRW5ROzteNjVuO1Y7UUF6KzxAZl89VzxNJjsk
Q04pZ0JDO2EKemoyNjQmU3IrU0VmajxkNlN3O25SJGFzdGctYjU5Y0NDT29ER2R2NWUtYk0rWTRi
Vlg0ZyR7ZEtyYjJmUFk/OUN+CnpBSCpwSEpBWSM0eiZyOWZCSW08Zzg3an1zX315clhBRE87YSVV
dWw4WFIwX2tafnw+a0RsXzR8Pl9keDdzUVMqOQp6ejd0N3AqViRqRVc8VX5HTzB8VTliYFVuOGhl
VTt0WTVianhkTCR7SXtITGU/U29ScFkpTlMyRGMjPzRHPHlHTUIKenFLcE9PSUp2NFpvPStuRUY5
Z1Q9JDQ5P3cyPmk3bUwqZUdaUW5OYVZFV2tIVUpCTkwyblpwVlV0U1h1JXhGeHYrCno1PWBPbytm
Vzh0WT10K0B1PjQ4MHZUMUNjSG1Eb2t3SmtUfWx9WXpgeTBzYFN0JFdkXk10eH5SQmFSVXI8R2xj
MQp6MCR6Vlk+Mkg8YENPOXRQcmFtb2RmWk5ITWskY3YkPyYpQ3NwVSU4RW4oQzN+b009RSUralot
NFZWdTA2Ymg+PlgKekBrMU0lTWc+KC1LO19sUTdKWjwtcm5sdU1IV2dEfCkrfGVYQDtvO09eUXtg
aEhVfUxtJEJKLWgwKSs1U259ZmFSCnpSWW5VdWIzOWxCVjgzJjJORiVQXj9yNGNUb09DfWRGVD9x
P3laSGchYk5UdWsrMGV8Vi09JUhxTDhOI3E5TCgpdAp6eFp5QmB3PUc/eEY1KCgxXyU4Yng7U3Ey
KDJnRHl5RF8meyFKYndoMGQ8TFBuYGNRais8YShiYmdNUDFnKiFKcUkKenVXZE9DZk8qeXtNdGgw
TiF+YHUxLW4+M2RfOEBlQ2pwWit7KyVxMnVWWFROQnw3MXhAVzRtNil6QzsyWlMwQVZPCnpjS2I1
aiVISXNSdHxJTXZMSCRiVmpmbnRXNFJxYEw8Zld6RTdyeXllZz4qOD8lSmdEPy1GY2FAKDklTjBp
RH56cAp6fEtld08tO19iU2gpNWBBb1Y7UDJfWk5GUGc+ako2WHV6RytscGV4azJOSmZPKkl6NSht
RXM5YzslLWI8UDlicFEKejZ6e05WP15BcFBnPEshJSlMK3lGa3RVfj1PRG4kM3hRezBKK2A1O2FX
LSlMRGhweSY9PSUyK1lzXytFJXstVjlnCnpWTn5pc3tLQFpqZU8kfncrMT1Sb2gwLXxPSlpvTyRj
YXJvPl4le04xM3ZmWl82Wi0mUEZ3QDQjYzF5aXpkYGlKSgp6QDtAPklUbkN5cXFKJGpDbykwfDR5
fmNsaUB+OXIrb3BSejAlTVgkVGRRNnA+PF89O1d5PTR+Q0ZDcDdxe21VSGwKelV3M2o1JWNveExu
SnBsaiM0KGdYcllTazhBMm0oV1JYMCYzR3lwLTBWXnlUM0xYfU1scipGRnZrNiRgRnBnb3V3Cnpo
JCNwRTNQfXJ9WmNoSiQ9JW4rPVUye3NoZmlwKHdiQEl2a2BaUXx6ciRGMiktOyQpPVlDXklzMlpm
RnhXNkhEbwp6VUJSPllPdE4hWTFrSEE9MkBhMypYNyhNVzwqSlZOSD0/QWlkTSVHYSFGIy12OFRC
bHx1Y3k8Zy0mIXpWQzJTYV8KejE/Wk5QPjltUCQ8IXtteSg1MGVPYWlAIykzVnNleU4qKDwqM0JK
RkEtVypNPTtuJXl+dG1JJl9Ycm9ydmsjSmhvCnpGU3xVTFpYJHY/SkB+KXc3QGVNaFBKLUl7WGAr
UioybCokdFUtZ1ZCUzVlMl9LbFI+NzUxTEZsP0JqdzArbTxXZwp6S3tPOVc/bTFNZl5ab3x2VUFU
O1k7TUx6MnliX1V4V0BaX31qYmVhcz9WVCp3KEx+ZilvM0B7PnFQYTRSPkRPUmYKekdyUlQrKkxO
eV8mQnw0em8/Xl5GO3V5X3BsUmBNaGw4PCQkczEjM157Y0hJPDRQQTl6MT1ufXxDWTQ4KT8xLVFG
CnpnaTc5JWdMbDM/dkxVeEhvbX1YTGduRzduNCtqbi0hQj9HQ14jUGlGKTN1aUImVEQ/QzFRNj5j
KlcqelQmMCRlLQp6UzwhJS0odENFKFVYJkF9enJscChWN1FIZDJyX0lXbCN0IzF2ZjxoMEdoSnZw
Jm1RSjspVk5ic0BXRWdeMnYzZFUKenI/cG1jcXdmK0NkRHpQfUh+NyYyaiVUVSohQDkpfUZqKzxx
ZHckWlA/ZylKVWFDfkJBVmNhaCRzR15kTzVoT2ZlCno8JWQ0YEU1b2Y1SWcoNVp3akRYRDd4dGta
QmJARlpaWlErWWdEVVBlO31yMG0kPXJqb3dkLXhyQz5aUHZqMlNqKAp6RDlfPnlyO1VpMHteNXVG
bmwzY1heczNqNGRQZSpZaHFnWS1hM1pMKC1oZTJOSWVjJDVze21WO0tRJUNHeWZaKVEKemNsKF9C
ZUJiYE9rdXJgZSYrbTcrVGhXY2hySyNQQCNGISFgKztGVihiPXgwcWxxVnxmdipOX2B7U0NNQUIk
ITYqCnpqQWM/bnBFZDVjJipIaW9uQUBSfkdIQEdYRyZ3ZEBEVTNjWHM0PVAqRzMhNjZYdWJDI1ho
PzNie15AVDJ5cTxWZgp6YVE5N0hgJVEwRkwtTG90WXI8bUVIQH4/YEpgQEhoWUdiQSp5SGYtOFE9
U2teMEs9eyopZ3cxWU17eGJLYmxvdzgKek83Z0hpZStUIzlZMl9Jc2Zzd0J0KE5FKU8oejNRQE9i
LV54X29wN0J5SEIzMHsqYCFrMjk2eV9KUEUmRD9vNWljCnpoK0p6ZjMxWVc4bWcoNUVPKmQwYzw7
OVFReDRtfXI4UzxoeCs5STdGX0I4a2RlVzFnOSEqQiR6IVJFNnUrfntFdwp6SWpDJXEmUGZVKTNj
QlBQNFo4MExDZX1ke2o2R0c5TGRpUWZVdWUkWmhhNFBDRGYlJDtHM0QmYzh8ezxvP3cyQikKel9Z
QSFaPyZnc2hBaVJySyEwZVVQZjdxUkVWc0h2Yno4OSZmPDgzfD5KTyhoeWlRWl5EbkdBN1VnV0tu
eyYqOFlICnp1K2VlbjQ5TEJ9NHEpZjgkUkRsWG9qQGlmYiglWD4oZ0chQDRnJipncT0zTzFXUnpe
bVFSeEspdm80SjswXkB8dAp6JmtKX2xuNzd6TDlLdy0zaUVkam5gZURaJmlPVypVKG9rPyU1KWxA
aEdPRG9Pen11dyVTUndsV1J8TDJJck98RlMKej9adTF+NyRWdlYheSpyVFpycG5uT0wjVlU5QnhL
ZWZEfV8rK3JKYS1uPCY+JFNQJFhfRXc9OT57RUZuSHJkMk5qCnpTS2toSCZkRm1fNyhKLVR1K2dT
PGMzaEpkPCZiNH5VNUgoYVpCZXlgQ3k9XlUlMExyRiNENmM1LUZrVj0pcFFjUgp6S3ltbWBoJjBh
RVg7VztFLUc/QUp1a2o8KSpOPGs9XjhNTXVGJEdIZl8rVEdyQkg4QE1EYzA0PCNmUXhTbGN9IVMK
eihFaGUlRGN0PWotdlcmYSRSfE4lTzFrTEs5Qig1fi1vajxfIT4qOGw5clBndTVWJWYjZiRsQUt4
ZFdNaz88ZysxCnotJlhgT2J6QV8jdHtZYz5yPE4/O3dmIX4yU1N3LWl6USptWkshaGh0ZF9YUFAz
cTEzb2tsOWM3NmpMP25UMjtvTwp6VD52RGFfcGRaJlUmSE4jNGdvQU4jOUl2KWxRTkJsUmhhJWQ5
dHJ1fkFAbjgkO35pTyg8MCZKMTJXZSpwbXBTNi0KeiNqfWA8Qn1WK0RURkoycDZoczArcT5VTn4q
aEN7dVJ8fVJZMSV9OzBqMWhDZFQlQDRUbCpmfF5IfjErYnszbXVuCno+KUErZnE/Z1QtV08zfkUz
ZnUjXk99d0FYXnQkcCtXfT9gMUs1e3g7V3gycGpkZmwhVVU7WDVPUTN1eTM8XmBuJAp6Kk00JT5v
VXA+RiFEUWVDUzEtLWtsbXA2VEFlKXo7WGozd0Bja0w1SGsxXldtbnszc1EkRzxqO2RZdVR6K3RO
aDYKenVYVDhvWkd1SUteIWgxbjRucmAkLU5adHMtMEtBR1BfSkZ+MXdsKUZiIzJ0T0RKJXhgPmhM
KVFgQDZrQGIwTzNtCnpEIWh9JnU4JX1kRHsjJEooaVN9ODZUKjc1R2VEND9hT1d+eHJHUSZaSWVf
eTR6SzhkM19HMlc+N1gpeV5uYEhyKwp6bGJ2T3ZgcjlWXilpKjFSVXNzJC0hO0BLNiZqNT14QmhE
cGR6XiR+MHRtX1Y4dykzPX5oKj48enUtYUtZJWdSUVEKemtLP0piOEJkYipfLVhwRzlyPmlwMGlC
YitPOXFMQzJIZ2VvRHc7Q1hqPCsyc3s4bFl9Q2ReSkI7YUlDfHNwS2FYCnp6aE5IPVkwb2wodSNy
WnU5ZEZJYWl8JF8/dmFqTXJAZHB4MHxDYHh4IWdSQkR2U2UtO09Dcng4d30qRSskNGMzagp6NWtQ
WUpeSj91a3l6ODM4TjF3YD42QEk8czcjJTklMUgzZmxedl9fTXUwRGB9JHJsfGR4QWZSYE03JjZK
QW9GPVIKek1TfSM2aHgmZmY7bXZocHpZeDE0LWs4YEYqQHs9akpOJStkdzBGMFQ/UEYkQmU8d0dI
X2FfVEtpKTJZXlAmRlM2Cno+RSV5NHdBamx0NG5NXnklSzdTIV9CWSFad0ZHNyk2YyNIc0NKWWgm
RE5HZjdIU3lnKEleYkw3Rzx1WXtrPjNeUQp6JXokMV5iOHsmMXslSCQ3KWNFJTxlREk8RUUweTVH
alB+TkVGNmZDfSotJmcobXdvSXx6eG5DbHs+cilmTFFAUWAKem5QZ35aSWRxNGh3PD9YNU87SEs5
eUZue1I9UGtxVmxUTXhBTGdEQjxHKWRPTDFJMUhsP0d7eHBpYWlWfnNGSFVDCnpuYzNaTUhrc1VJ
JmQpWkJDS2AtS1hLK1l7TDQ8cWE9ZCtpVylXQnQjWHgtX0VMcWg5QlJ2Q2YxWE8wdmxycV5SMQp6
OEkhSGNFN0RAXk9MLUN7RmA1RDNlclJlcFFGd1UtZD9ZKlJJLV5BJUZpMT94c3xaYGkmfCpNITBI
I3cpTTRPOXkKeipxTmExO2gwU2tFNmZ8RXBxUTljVT9iQnNZR2lNY3hiZHBoO0tYNy1IP1I0bEN1
Nn58QlN8SGN7JGs4RiheKm1zCnpVTHc2O2hBO2tIb2U2QXFvMmtSemR2Y3B+VX5wTnN5PHRLUENo
QlRKZWNzKFErQztIVDhGYHxtWSticSYqQ1JeUQp6c0t5WWVXSjl+NDc3YFBJKnlPQFhhNm03ZCFu
bUZJVVh2bT5zTH0tXlRFSTg+dCVpSEhFMUxwMDFRdkJzPnBLcEwKeip1UURydS1xfmtyfjZ5VVVw
U2FgJGtwa3NacDdJT3xDMlBWS084QmlPUEolal92QTh6Ml5PblgtVldAbi1MfHpDCnotPk4xfDZl
eGBTQ1UlMXEkK3UyNkMmVHtFQDVrO3dmPlMofiFsb0NQeE1Fd3wxSHBBT04xeSVLcmNlVWYlcWl7
Sgp6UjhmTnsmcSp6ZDx3KDVKIzwkbmYxMDxSRzNfZWFGeVNhJl9gOHxEIXZPMm1hK0BQbVRsWXh8
dCZER3otJUxDSVoKemFXRn05dzgzVkw0YGY9UWd0X0c0V0AhZ2RBaHZufCpFfFl2JkJMMF5vcHJ9
R3chQ15aWkVFamN5KVMkKitVV2tLCnp7K3liXl5CVUxgcEwyZjFocSU+dlpSQVlPTHxMPFJPO3hX
UytfTGc8TXdUOyV4YFRvLSNGdExKREsjU0UtNUM0Owp6OTM8bnsrRitPbzF+KzM8elF+Jmd2WHY2
RXVMJmFCbyM4S3EmMDsmViZCXklLcXJ8ZX42YVhuQXFjTGtGOE13Y0oKeisyKiUjNSlWKUokRnRu
YUxtNUg4ayR3I190a3M7MWVAY0kzdXFIOE5OdVgkbjV6QGBhN0M0bSpPM0lIXk4rbSVRCnp3IXQ1
R3IxaVhmI318ME9mX3opfVkyQXJ8dmRSfiRNYUBxRmdVSnxlVTZ4ZnBnKXNHUWRPRjczMFhTQCpk
SVRLUAp6RWhWYjk4NHMzP15IWDAhVCo+enltTHBfM2BBVWkwbXowPWd0fkhkbTd3PlQ4Q1hxJVhr
ZnYqXnVJSFhkMmFJZUAKemtJbCtua00hZE9tfXsrOzU0S1ZpMWdtcCFkUip8Iz5IeCM2RkomeXto
OzBvZFB+ITMqU3lNNT4talVsJEM1V2VnCnprPm1PakF3O1lfQTxoYiFwKTNXMXFUZz1IZW5MYERX
ZFI9M3BaTmJIdHFYKzt8NFFwRkthPVVYYUZtZ09PMStwKgp6TVRKMSs+R0grX2JHfm9GYjliKz8w
WERCcnI2Nm9QN2VQemZqcyU/Q0pTPmIqVitRalVgbER1bFVkLWI+Zz91N3gKeilecnVtP0sxX2d0
Uj56YklUJihCUk4/KjlqV0pYK1pIKjdQMyZsU0xLT30zcDsxcE1yZDJxfXRWdztoIUYlRHZLCnp3
MSVIPFBKUi1lTEhSeXBVcFoyXnVjNiFNNiolO3pEY1MzV3UzTHROZ356ekBNQXdoLVElIXIjVGZi
ST1pQWpiaQp6PCg9VTZ1fVo7OythZEV9SVM7TCVMVWFBWFA9ZmE5Jk1qTXBrenxZMSpsQm5MPy0t
NmAzOVJ4OWQzQFVQJH15XiUKenVOaHhpMW1tPFlXIWRzTWs3dDhQPloyODNERy1BOGdIZippS316
KTh3e3A+Z3cmJFFTO1BII2VULWV5U3owYWFkCnpYNzRyeDkxSn00WDRXNVZya3RjNWtLQWlIUEZy
aDY3NXBiN3dXSHBZWkN+c3c+TTxCPlEhe25Fb1ApQy1kfEM3QAp6TmhDRkNIQE4+biVlWSZ7QGBj
X3tpSStyNSsobzU+JUYrMykxZ1IhMiskYEVnSz45dTt5SG4+fUY/Uz00SlVncmoKempBZVN1PTNX
fVVsfE5heWUmSCgwZTA+I0ZhbWw3dnQjZHBxamlEbENeSVc/YTVoWTg0akxKU1liM342OWRuT19m
CnpsI2h7PHw3QHRJPmo8ZkBZRmVVb1gmck5pZF5tKV4tUio1dUc3Qi1MZD1yam1WV1M3Ym8jMmMw
TTEyQWU0ZHo4egp6Z2ctRHI5bzdmdDE/ayVhPkoxKUlkJURDS1YlOHRPNV44WX1HJURxbklTakdU
PXpuTU4jdyFqYChPVyZ3ZTdZIzsKel8wNEBHQmlBNEA7JnhRPjNPP0FgN05wYWp6aDxNOzRwVGM9
dn5EOV9CTCs9I14kaHUhNWVheSRVTC0jTkdRe0RkCnp4SUwzOEdrY2lSVjkoYnx0fXRrN1R6e19P
a2JYWEBEbUo/cnk3elhuJDd5OTs+YWg8ZHNNWiM0JG4pNjVZVmJvcwp6U1A8T3REVUAmN0RLMSt4
aTluO241KVZ0VXIlQi1US2ZJSGg9MCRvSXhJMFVtelhIIVBGSE9LSHM3ZFY2eiNKe3sKeldvSSM2
VGtCRGswZHNuPC1qYH50LXpvYndUeFlEOHYmNUZJS1pvSldjNThzZyoyM3pweUE3P3VDWGtTfVdU
WGR4CnpUcTErTms+a0Z2JUtzT2JfUmBDYFVSKl5jaEkpdis7bmpZMDRZSWB7JVE0c3h4WUM/QmA+
b2M4OHJnQXtBKVlDNwp6WiZFeHFJIzUyWFooNEdCI3RGZCkyXyl1YT9gQzBPOEMqeGc/TERkSmg/
U0ErdWFOa1U3WFdAcC1ePkN6N2leZ1UKeit1d0Q1UyU2cmhARU4+OHh+ajxrWVl3d1VKcUcpODUx
N0JIUV5OVzZOUHpGT3tgc2AzdyE7UyREZVlgRjVjPmFkCnpEbkF7PUZQQyZoSn01WmtLTTQ4MVBX
ZH4zeyp7bU4+Y01LbUhfLSUoZjdXamEhWUdScTdtV0p5ZEQpc0E3SFJvYQp6e19OJSMwaD1EI2Nm
XlBKcj8hQ0NgIX5LaVVBNnFjb2BnWlRneD8+fk84WmZGRGJPcGBkZGFObntsRDBJPiE+V2QKej9w
cyh3OFUmQDA1KEpUd2tTOyskcXkoaDl5U3FVWWxvYVZzPkZ5NWM/aHVnZj92OEk/YHVNIT5gSk1D
VUhedyk8CnpHMHZZYlpuJkA1ZCtvTDZuc1lBUiNIaTU1c1lDN25EZnRnX0VNPz9oYjNeVDtmMjQ9
akVzcSlsd0FhczJpfkBaMQp6NHhWPjklbT5OSWRZMlF+JCQzOUdpRkdyP1E8VkR5STIwbSpUOHl9
bVA/ZGVvalV9XjE+e2xObEwmTGNhQUxuQmMKek0yeEsjP1RAdjQ0WCR6aWErWWU9UitNYkt6UlEl
SjZMbUNxVXhoRlo3UUlHZnRmTk9rK3FySWwkb2BRWjNuNzc4CnolblhOOSRxMmlEaGUodn0pPUBp
PXJQXmN2aml0MCVtc1ElKip8WTlXTztpbW9BTHZwYCFLTFFRe0J4PH0jJVY9ZQp6RTI2YHwrKDAw
VjtfRCVmZ2hxPFc8NjlwZyphc1oqVVFkWHMyUyRLXm0kTUB+dE9mQjk9UndeMTJkUm8+SUx3N1IK
emB+XlQzbzUwZz5BfTRLezlNPjVvbmgxfWR5U3FJKjBSJVlHazEmNDk+VUtsSSYxKnFVYHlybSFY
PkZWQDNuVk9OCnpCPEdNd2RjdDNvVmhzc2wlYXlyWlptKE1SV1BNTXBGOGZ1b01MWkROSUw8U3du
bUkpe1Z6T2BJJUxhY0trPjZzbgp6TiU9YGtTdEJQcURaWHdlREN1JEgoOyRITm11YlIoVjxHenVv
VSNHc1plI1gzdDJBNTdkaDVLeD9zMDR6VSlxUXMKelBEWDFHPDYjaW4pU0wxTW9eJUYhdHozM2VA
PUw0bGVxUEZxVD40ZV9yNXp+ND1jTUZMcmBucU9fZ3FnZTIwUyV9Cnp2SW04a3Fvfjw7R1o+a3Y3
fkolIU9Ucy1RNWFGfWtQaylMSWVMNEpvNnBPfl4mTmleV01jZE5XRFckbk9DMForUwp6dEQrVkV0
cjNtaVZoWW5VVmwhTlA0ekNiYmo8aiNhNl5PPklFcnR+fnJiXklaU1c7PyF1cTNKSlp4Iyk2Yit4
NlYKekZARFdkQXBmWVdkTFR6entWXkUyOVkqK1hZaEd4P1QmJiMoMDROXnQ8QnhnMC1ZT2w+QSlg
JCotYzRKV1hWNCR0CnpDMD89cmMmbTdUfElZMnhoOU90RSFWTTdUMTQoc3hNQXlffWxuOVY7UCR5
OyR0fmNYeE0wIWdtQCtqdyo0WnJtZAp6X0UkdEN3KT84JF97KTlfKHYlKlB4XjZSLTFKSSpIYFQq
cDk8VnhjWmd5O2VBT0l0JTZLUWlyQGNFSCl7UFQ9TEAKemoyblBlMjIhbCpKWHx5eCVKenwrJURJ
QXV0NnpKRSYwLXZ3czVVQE5KN2dBcnZyTnNlTz0yNz0wS311X0NhMnAhCno+K0pmemR4Q0I/Wkl4
eSNqTn1gYEpebjhYZ2lFTzZ6cVF1KGZHfHItWHN0V3AyZkNncHdGRFY0dntDbmlOM3MmUgp6MENm
ME1selk8KjBLWHtGdCp9QUNHfD1yR01sfitHRE1jRCR6fCtkQEB1NkFhUUAmXmA7bi1mZVhUREIr
LUxZM1QKekIyeys+ZStHZmJGRmtMc0AjQykxdUg/Nm1aQzg2YElJZEFJO2FlV0xgMVlVSXBVdzYj
a2NBPjIwI0crTiRhPnB2CnpWPF5wIWtqSlRya2opSCNxRlVBSHI5SEYjPUtKd2J1bXxQcExBa2Qx
T2BKaXl6T3ZgQDVUWmlYU3YyMk9fcjA2dwp6IzEtKEkqZyNzbl9Xb3dkQ1RgMVE8KlhiSTAqWGBz
KGYpKF5ka0k3PHJSO3BVZDZzdEY7Qz0kLWdEbzhoKUh+IXYKejttRCR8dHA5U0w4Pkw/YEIqaERX
YkRuZHJRKj1YaWZpPUxRJHpgSnlqU3txcEZ2cHdXWUlhMmw2cT43SWp0KmFHCno4OyFYelhTK2R8
VzRoQGJzLThMUih4UGt4UUdLdS1ZMHlZQ2QhQ2BXZ3lxM3M+UnRjdjszJlFrLTNBQWM9NXJ6awp6
djJCRD5oPys8IT4mQT0jWDZNVHQ7PSFgd0tDMCNrQ24/YEFpRzEhWnA7NHphTXdAMjEjJDg1KCQz
dSpadGMyZjwKekhRJEV2eX5ob0RaZC1qIUtCaC0kNnVVNV9IKlpBdUcpP0NBMHx+PnJQaWs9OzYx
ZzhXKkZ8YURWYzl+OS14ZzNqCnpDbWspI2ZuSTJLYzk/QUk0KGZnKnBrZD14TEprNnczMmVhflIo
JVYoaihmQjhrP2s7fGJvbmdKayZuKnk8NEB1RAp6YnE3VH5IdXN+S15GMHBZMUpOWihKI1QqRnNR
a2liZkx0aCkhRilwVVY/S3l8Y0sqQjdAJms8I0tZNHpEXn5ZaWEKempNe3oxSVRGTnhWPGs1RTR5
YVFuQUpgU0N4T1ghJll3V1VqPU5rRiVVTGpuYlp2bClLeTlQQj9FPDw4U3Vhb0lVCnpIfj80TXxF
LSo7UH1zPClSMCYmfDA0XjkwKDYqQHt8R0NLUypDM3N3aWtiM1JSWVlRLWR6N05QKmZ7ZkNhOyZo
Jgp6KFZ0e0VhflpyP0I/a2YlYl4oP1F4Qnt1flBRNjIlO2xfd1dheDt1MHYrM3U+SjxUVjg4SnVv
QkRFZURUWnVBPkkKelJ5d2Y5KmZTc1ZPfUM/PWljPENDdzMpTDE8fDVqeUM1ejBjI0BUY0dHUmBD
T21fOzZzWDR+OXNTcF9pa3J4ME5tCno+fGYjI2l1fVdgRF5Dc1A0aztucDZWc0V9fDRlODkheF81
KUt6N15LQFE4UVNGY2hKdnhPRFMhVD9jNHNMKHZDSwp6PipJQ0tNO3gzNEZMK280NkomeFJ4S2o5
MU5xTXdPQCNnWW1ZM0tyQVp9S3Zrc3JWfWZnNUk4LUpqNzEoLVk5TmIKeldxOF5eZlY+aWV4djZD
OUhsQzthJDI4JUwpUE9oOVdpd2xjZ2BMZWslcGJjO3V4ZlEqU1ZYdEQzPU4oc1BDR0lkCno9UlJG
NjhRY2ZhSWk/QH1VVXEzQktgTilMKkZ3SXkrKXRZVmUqKkR5RT9fPExLa0ZwUU1VN0hIZntUdzc3
WVV2Kwp6dWwkOD1Vanh9Nml+Pn07amZHVTJ8QXV3bz9icWYoU2pNT2RWb20hb2BHXkZQeGI+Xmtv
bUAhQiV7O0dfMllebmcKemRlRFVzdF5tPyFzWmo0MD4qWTJaIyE7NFk4PT9HNyVKLXQyJExmaUsp
fEcpQExIUjV5N256YzwkUyZYTG58TDhQCnojSW04Jip4KyFsKUcrIWJPMVRVWnY2Y1B2SG4wYVQm
ZUB8RW0xOW4rK0NvJG5mUUNEIUwwTXpFLXFyREIjJipFRQp6MWJmZj89aWlxXyEtO04/QSpIa1RN
cEAhSHBjOVhwVF95fDx5ak8yNlZ2cGBEezFjaUBFV0QhSUBwVHJ7S0l4KygKenk/OW5zMmgoRztG
R3toR0dXKjMleXNqd1RCPFNWMVIqTWhJMil8UmhwYzYyS3hXTWFpOVZCUWdMND9QciZQYT1ZCnpq
IUpDOVlOUmlTQSsxei0yUWE7MkJGI2FPSFQtciZDbChHWnVeN2hWP1ZvWmZrTjZGR0BuMVNARUE0
TFU/MHJIZQp6U0Y9NTVYMGBGcSMhVTY4P3x6PCgtUEsmRz9zM3BtKGAzV19OUTtiMlllT3hFTDR4
R0V7ZXs1QURJWWR8Xn0yK1gKejI/QC1BOUZOVHB7a3hmQ2lebUFlayorY0ttWD81QjFEbmheRFZe
dVJDelVhPUg7RjFraDxnP1U0dDJ3NDZJd2NlCnpOZjF6MGVFRXt+QVdtb2l1LXpQe3l+N0pLP0N2
cCNOQm00ajNASEUpdlNLOTQqc0AjNCpHNmpAUWxJZjgtIW0pdgp6KmFePjU+MEluPSp+MTJaP09w
aGxBdEhqN0RsX1BRZiRwVW9HTF4rb2k8JFBCZVZzZURGcHNyJEx5MjRiUSNMOWEKemRNRm57Xmo7
P1VzIzVHPGtCJmMtYEpGfVY4KjQmTkIlU2gpdEpnKjJCO0p2PiNqaWRYUWZWb2BaKl94SlcyWFV0
CnoyXmJ7KFpzcyFDTW91Mj5RSXlpPjI2dzJaaCp9amVYKUdAITFXUVJYd3JMQmgxY3dmdkleMEpW
TE01ZVYqfGRQZgp6VntYO1hJQGE2Vk97QU1CPW5jckg8PClxWFpPPHN0OT9ye0RGeFc4TkR8aXRv
aEBrJHReNmclZCllbUhvejR8aSkKekE0RjBJe0VfeFM4e19kRERaJUlvZjQqfiFoPXVPPTYocl9V
NSZKfkJiOHB3SDU2PjVBMiZNJVEpJWJRVXBPNEpHCnp7fTI8U1VrOUs7b1lSMXgydnQyJSNGa3Ja
dCppR1ozSy07e01+UDNnTit6QChYV35YakEzbmJjSXpXc3kmel80fAp6JmtQY0olZl85cjJDYE94
RH1tJXk3QmNlVSFRJUR8NEtyMzJtPiVNeWxvfEJzVWptNXVMPm1BTjw0ST5IaW5JMHYKei0ybk5y
akhvQz5aSVFOKiU9JDRyKj5oQCVveCk1PlBkfWk/UmtpMEt1JSt1N0Q7VHZ0KT9kME9OfmlrNno/
JHk5CnpHdzdaRnc5M1pPWSt8NiFZck1UUXFpWVUkX1pAflBsUyQ8ZypjVX5oPWdoYjtgb1FlOFh1
KnkzMkZpRHZUSlhoMwp6ZTJgcTlUdGBaJTEpSzFMdmFTNzdkRnM9TEpoZXE/bWt4PThfRX43YD9v
YW9eUWBDX2dpIWJ2KENlbnM1Q1ZuZD4KejtoSkJmYTJVYHM4RDZlbipKbzszSl5JXjx7MygqTmtX
RHwwKzJWNiF4K1ZNNDx8cGZwc1Q/KWFQNDt+JWhuTlZwCnpqJnIjQmlxWEIyJVo9YCZaKygpQyk9
JnhIM2pkYVhaMmc2e0dLdkFVOCUlOyEtViFeRUhIJiRPNUV8MjRtXjJ0LQp6XlNuYThzQXFJKEhn
RTxnTWxIb1owUUkmPTRWNlNgZXhWemw0eSQ+PVIlejN4eldfUEFxPT5HMkFIWnE4QUp+NEIKeiYp
KzU4VF5rbW9RM0d6Q1FLdlchO08zUnlgQF93MUZjOWdNaCZnM01We3RrYllecEp4TGhJM3AhMzxm
NVpOViNZCnoyQXllVHchOV5UKUFjdVRUMExKYnkmYTJDOExHVFViKDcldXJ0cTd1X0ZFb0VNaytL
S0IlelhNP0lBe25ZU1NwQAp6RnFqRTRwPyQ+PSR3Sj1PZzl9VzRnZnolYVhEZFlmV1JtJH0oWlU1
RSQ2eWEqYyFeVkZNWiF6KjFzI15wWlMjNkAKemx2NmI4WTkrNHloWX00eSlNSVBpc1N6YUxKYSll
e0o3KW41WSRqZT54c1lWYjUjUCsoXyVsdzBNcWs3MEB3WG44CnojQmFLeWhoYkRSWkpaPUY7Xnxv
bSVxND1QenpnOEtvP05MMU9fYXg8c1FLIXxAdF4mO2BzNF9ecnhiV3JWSX54YQp6TXl+JDBPTWlt
Z3NCTzhgd3BRdkxVVyVwS1E7PWBtem4pQnFJcCFBUypSPkNJYVhpQEorQWVBdDRQYjBBNX43QGQK
ekB7VU5QIUY1VDY8UXVlREhyfHBtKG9MbDtWNmk0R3I+bllMNH5ROCoxRi05bVcmR3FAUCFZe2Yk
SUMpcWdgdFd7CnpJZjU9YkFnVVA+aj8jcFhsJH55dTR3TSleYiVJU0RHTFk9aW9LJSZVMFc4RVJ4
YTB4UTtYa1h1aCFFfmNXMksrZwp6RV99T3U3Oyk1YGA+QFZKaEljKEpuOUlLPk1IeHhiX3VkP1pW
P1puI1Y/eGcoYH1lSCZCJmRsfWQ+NDkqZCYwMGEKeiRwbmF9azYqSjsyamFicTFsZjZsa0V3cWw9
JE1xT0Y7MSFGSHhtVWRuPnd3Mz0lN3hEdWJpPDdwandnfFZXeUIyCno/Pj8/PElIN08lVl9UU18h
PCU0eitwVXEtJnZQVmtTfFBtYV53TTYlZT1WaXYqK2FUb0J5RnpfejFQPDZnSl97dAp6Pl8xIXBP
Mkw1OWA0TFNJK2UqRWUxJjh5d2smSShRUllEPmZSVjFFPFhFTiRDbH1nSko/aGNjNzs1JENPNDw2
Q3sKekhpJihEYUt9SUphPFUle2B0JkUkRikhQzhGNnd8Y3lTKzVUO0c7JTNhZVB5NSslbHBic0pW
fXV0NFhAWTxpZEcpCnpIM2J2P1hrO3VKcWx6b3FnbUdSU1dsdT9CT3w0cDhxVkgodGwqJV9JTWMq
VTRyRns+Um8/VlopPyhYKWdgcSMlWgp6OV9ISnl4PU1LPipqd0VpPkBaWjQ+K1Q5djNuPXVVUTVF
cDVsKndmNT9vUzZeNXwwZVRwRlE+RTwtckBpbSl4KSMKellpYnQjQ2x8cj1XX1Q5SSNmNlRGfEVm
aW5OSjRCbkU+OCRlM21YOTItPWIzQUhSWWorP0VIRkhMQzVhLUVPRGBHCnpyNmNIU1VGU1ZrKzlu
Ni1lT0cweFMrU3AoT1E+bnVfek44X00pTndTSnMtUjhAaF91JUo0QERETSFxN0VnPDtYMQp6RU0z
ZjxoX0NzcT9HP2pKcmBfVH44cllkfStNZSEyZS0kNjcjJUdBMnFeMC1wPGFMMXRQUEs8WnlLWiFk
IUFwQz0KejBfcmZFX1Z1ZkM+JUVuNT9YfDlLKFhkJWo/cERrMUNxJGArUEZjKEJsKUFpaiQja0I0
NjJESHtmQDx9e282K19OCnpyX2VzZUpHM3o1KG9iUUFDIzh2eGI/V3pnSG0jSHJ5ITB1SChFOHcz
anopZXY8Pk1qTCZ3UlBEYDB5TTAyQjJMTQp6WVhyQCZoRV9xUkpVVDJveVRGdSkxV294KnRRUUY9
ckwxfE9oeDE8ckByaFZiVz5TQCQqanIlaWxzeEhEeFp0TnMKekpadzRlaCZ4fHBnRGh+Yld8WiVw
TiFPPSFNe3lvWERzYUdeaCRkQG02bTJzNGhZIWtOSEQhXlhDVGtUK3RIUFcwCnpeREtVKm42emlE
dEl8SGtGNkQoeG9BNjByV19fKEZuMHQpJThxd3lSJHJXb352YmNHT3RTUUZwTXBmTT5qKiN4Twp6
MGpVJTFqciMlND0xVCN1QHR4O2YzKCsqJUVHJXF4WStQRWxHJjReY2Z2PHd3bzBNTGMoRUB9aXBf
fG49NmtLMEAKeldUIUtYYW4oJiEhPl8qd2N3QVlCKWBCaGtqdWE/VnZtWD0pJUt2WmpQIyZha28w
aEZFIyFCI2d8ODB+QXtuUk19CnpeciZXOGxxdWk9e2tLc2Y4UGZYenpeKXM2XjZjWE58TkpYNUF7
WnV0bDlYPkJmOCRYOXthNWVrZmt5UnhLPVNoYwp6UFA7UCRtKUdVe19UZkw9ejVvMWBLc201WGwl
QGFoUDRqPWRARGVPY0k3KmBEViRjNF5yNkl3Tkp0MEdRUTt6aTMKejxOdDNycXtJK1cwJktDZURH
JH00K3gyJCU8VFlOU2VuOFJ0cDlqKkVpQTBIeE5me0F4az9HWTFpRiR6eVMjTDFpCnplSW1xKWB0
TzZWQlZUJkxfNU8yK15BajwtKUpncXN6MXl0JVpPOWBaMVEzTTxrX2dUSHh3QSV9TUUtZkQwKjBe
Mgp6T2NCITRVQDF0aWdIPWtPQz5ufUBoJF5Xa2tqYFM3KlUxMz1NfWFqVjBrI3khMX0/bFd8S253
UXZxOHB+WSg1JCYKenhjYEdsJHdkbFl3Y1k+eWxtOVFEbjhaNTM7dT5ATFp4MkZadmJVblBIU2FF
P0UmO191Nj8tMnpFKCtKNUY5cnpMCnpAdjRteShjLX09dUt1O2orfSlBMnUwJiVgZH4mK1JmMlo3
K3peenloNDZKaE0kN0pmYXM2VX02WDEpKmApMmBQcQp6K0Z9JFgzQ295dWk/TFome0pTLWM0Qil4
U1ZNPS0hWU9eMkBPaVRBSSlsSkIpXksjcGVLZXlxJGpXT3BSek53KTUKenU1RlVzenJiZkxLd1lO
RzNPcz9xYWR4NVMmNmRnOEZHdDM2NCZjd0YrOFRncFpZTmB6PVl+SS0zTmI/IUg3fmpxCnpONkd5
aj4mITlPPz9mKU4lZTZ2P3NYZ0gzbTg0WEdZJE8rQ3BWX31nZV93NW9HcygjR2QqWDNiZ3Z3aGp4
N0NscAp6JmFUQkw5cWFFfWpmTEArR1dUKT0oM2ZIV0YxOyl1QkVAfk05cytjcC0pNUFXd30oK0Nw
aXRmZkVvVjlDPjVMYDEKej9xLWpKd2dwP15LJXZKO3VHekRuZiRfa0pWSDMyIURsTi01P0NYbVV3
WTUrSWY3M0gmJWNePU12ZVl1RiMtWWIqCnppQWwldllJPCVJKmg+fi0wR2Q3PGtIPUJtVG8lWUFs
WkE8SW1QcWczZmVQTCs1UkpiX0dVfCFtTlZlbG14KWFsWQp6dUZGPCNpJThkZUU8Zjdxa0FpOUVD
PXJaamY0ODV2IVJ1cj5BXyk5Xm1zP097UVooQ2UoUCNQRyZLR2txV2R8YWgKem4payF5K2U/KWc1
a0BgMG1vWTc8SGVpK2g+OEYyVEgmVitKTnpXZ19feGk1IT91T0JATz04QFRGUlhBMTB4RU4jCnp7
OT5NUSUwPXQzLX5rTHVscGVwcDA8KkZxaz93KnRVfEtuNmxIYDZXNlQqTSVeY2o5YEtvYWslLX4p
RiU4LTF+JQp6ZzRPRHZGT25VS2VuSHtRaWtAdHFyfWgqVkJ8UTxRZjglY1FQcHI8cD89TmY5TnBB
ZnhoJlFYUkh1NmBaRyZTNkoKek9mX2pPbDY1KCk3aGZsJHt7KGMoKEhfUHxISitCKDB7fSo8bV5h
Pj5uZ0VKfld3Rz9xfEZuO2NoeyR8e1U0MV4xCnpiZXNOezlWKyRHdT5XeTZGZnEjMjRkeFdOMGMm
ayhNR3J0QmE9Xmd5P1dedyhgMnU/VGgySm54MjVBMnVUcTZUMQp6RFNEJXNnZG8+ZDZRSFBtK3o2
SHNqdm1NSHBiK1FvbTdvM0RRaFNnYjFSRHxaZCheb0EzbW1zRG0weGtadGApSTcKeiZMeSRUYHUt
bW49K3ZyOzxZU3JIM3Utbz4rWEw9SUYzPmY8Q2JuK0grVnRiVVBPO2ZTdlBxZlktbU1aTTFfSmMl
CnomWWozNWFsRHFrS0ZkV3VFK15kRnIwOEokbiR0WjlUVUYzPng3UlFAb29LdmBoQHZralpZUWhA
OUlCKGhRQDZ0IQp6a2tJQX4zcVVxJStibnVXVjBPRWBoNDAmTlMkYjQ2NXdTMGl0NkN9WDw9K01m
RilSI1dlSzVqOT1GMil8KHdxXk0Kem9ebGAtZz90S3xYb3IodWA1WVU+blAoVl8xIVlLbSVxWUsh
PEB5PlFES2RCaGFTSDhJUyVjPEhIc1FCYE1KR19MCnpzN2pgIyREKTF2S3QrSFUlakwteG5mWWVC
eChhdzk5cz9pQkhmYlpEKHYwQWBqREZJTkM8Z1ZNdEZ5ZlUmcWgjRQp6dmYzWFhkJT9pdkVSTTlt
JlleVURAPyo7TGRPKUJKc2ktOW9JUitiVz5xbiV4dHNtZEgwRFU/blNBRyZ+PSg8eWAKemgqaW5k
Qip+TGBhKDRhcklNbE8pKnBZN2RpaD1LUG9rSEA7XkI4IWBIaWJ9MiMtPHh2TmB7V293Kj11S0Nq
PGI4Cno0elpES2FxRWVFM1pDX20lbiZOdz5eRn5VaWJodUVCWlV4K2J4ITI2SDd0dFRhT3IwZ3tz
QWkrd0tnRXlXbSVIewp6NX0kO3V5XiRgPTZEOSZkYXxIfXZpeUl0UmMhdXRNb1I7d2tsS2NNUSh8
P2x8ZmYwKHFZKHMlPW05S3ZoeCtpYn4KejBOOFQpbD0qYTE7d1gjVno2NHVqeVZpY0lVQmpkM21l
ak82JHpfdjw8Zm98ZjxZUCZkRyN6Sn5peXd6ZiVyQnh6Cno0ITtoaVVIJGBmcjQwYWlIcnZxIXU9
am5AcjQmUVhDc2Rhez57cystKjYlKGw/bGIwUihYNWVoI0NDKFB7TCFkaAp6VEYmd2BpMjc8M2U/
KD9pUF91NXN3VSNRfG8pZGImK3NjQlhYU0dqRT1UNysyQnNgKGpIUnkmOWhgRl9qVE1LfmgKemUt
antiTTtaQzY4TEZiYms7PHcxaXolOTY0MllHTz1yaW5nNjB6QFlUSjJod1BpfG0pZXA/Yk0/N0tt
aGdlLT5yCnolVEtqRj5xX0dvKU1CYmgqbGZLfUx8fHc9RHBXel5yTXlzSigyVVJfZGFrKHA/LUp7
U1dFRD9NYGdlX3pUVENKYwp6bDcpZ0tIO0Y4JiRuUjJZKEZlcW8jeiNzR3JHK1YpT345QCkqYDYk
fWR3PF4qVGdVbHJRN2ZASGFHam1EI3VzVzIKemtrMEdIT2R7OGktN3FJSCVQWm5SPjlOJnZpWUB7
Y1BLUFVpVTBgZ1hmQV4hKTJkZUBDeV99MDBuOzA2TXdBQU4wCnpgJTFDXl8kIX5feD84UEFzKVg9
OSNIJlFqVzV5ezxFdiFJZzI4fiFRbjdERl9JKWozJGExWlpGMSVQYjQ0IW5WRAp6NWNFaHlgaHU+
e15AOXImJW5Be1MmRExPZ3JFIz5XRHVWNjZPK0t6clJOfE1sTHdUQnRqSz4hXmUtOCNPNnhnSXcK
elNaQEU8PTQyZ14tbjEwYz5UVk1pbDgwVW5NPlY5K3lJPzFuKjtVQ3B5Vj5RYE0/RHx1cGRMVDw2
YTBDY0VZJE9FCnpeeElRJD57QXFBTUNse2VCMlNPQGtjWENOKjZtMzA2TXlnWHBUd2BPeEwhWChL
c3UjUmJKX1NfQyVPaVpJZ0Y/SQp6N2RNWUAtKGBzQChwJmdTejVOOzx7UDlwJUteTiNRXih9MXhU
ZlBNOVF3KnFTa0NPZi1rRjU7a3gyT0BnPkNiREYKejxOTDAhTFlKT212KG9UNEtfQVM2RGg2fkRq
UF5Gcl97YzQ0OSltWX4tMm1EPj1sZWhTdU5OTHskSiphc1V1PVNhCnp2JH4+SyU7UEpQQDJSVzVf
Kkl4UmlKWVc2Z1dWNERuYFhsJGFYKiVeNEc2azd8SCtWd0ViLUJ9cmw8U3Z7MH49fAp6bkVscEEo
bldESSEyY3BgZUwxUjIoXzk1I2cwbmR0bkVKZFA4QVJxfktoeCNYOFVFO0RlMjFPblk0Y00qaWJo
UiQKel4rOFdqNWk5QyR6N1RtT2hPSXRRZ2REdnVjfT15T3lwTVU3U3ZCTHxvRTA+emItZF91VSlu
aHB6ZWkzeFlWY2EmCnpvSUtObFR7UCZ6eitoQCFVaj0mbW8mPX11WU17S0ZpdFo4VmZfaG0kPVpC
LSVhJnpxYClUMEtEa1hEJVYmcG9VZQp6ejlgRm5UQU4xfVMyT2FWcl9Tc2ZZdlhifG4oM3VgfEFZ
RmAkK2JgTU4qSm5gdTk3eVQ4ISNqX3ZjXkQmJXRhXlIKelFRODQpUjwoIXl6bnAkVUtIRUxfNjhB
fjtKX056TT0tQD0+Rm9sRGVQMCYpKWRWZDJQaGdwP1haVztpPDtgU2kzCnorbE00amNwZlJ3PiRe
SV8hPHF2SF9eNGteTSpONDxISCtnfGslamREN2N+MykpMjVuciQ4Sjl7QCZePzIqQChtTwp6ZSNk
OzU2d1JxT3tafm12Yyp2ej41RUE4fTZ1YUw0YTU4IyVSR1daNkBPb3VFdkc3KiMqczJqdDZCdFl7
eS1OSm8KemQweGAqVWVLJkM5NVN+MVl+Qk8mTFk2V09eJHt1K0clP2RuNHI0QSMkdVI0OHBHQW16
ZXdKZUtOWFY9eWoxWFlOCnpzPG9JKl5gdnkmcl4mMl55dS17UjRHMmQhaEN4M05aIVI7YGBQQWln
K0s+MjFqSTBzOD9iaz14X3FwKntlTnd3Vgp6RkVEckImJnJVVGp5O3ZPaWRWWmZuT2VeXnJzcntX
Yk9DbEd0Tz9LWnZxeTRfVGdyVkU9e34rYXgwez9kZFE8UT8KekZWWCF9U3V6YT45OG93engzbmE4
UlJWTSVPSDdTY3FldTBTSU4pWFY8aylAPUpiQFpvQztrWTRWXkRofXVkRzw8Cno7ZkMhPmN3Snx0
U3o3O2MwajUlWUN7YmZ+Py1OaTVLSUtVb250ZCRrJDd3UV4pLStwVEJ4Z3EoWiQyWkYhRmJRcwp6
PkhHcjt2SGhxRi1KfHBKRWhKfWY/Q01HUipldVl7VzYjKnAlLUYxfTBTaCZwRXR9NWA/eFpLZT9l
ZjtCJSMtIzMKemg8XkAlJn5OMTkyNW0ybiQyN15gJSVgR2hsM31eclpKJDFTN2U0Y0VDQnVhVnQ0
QGFPVWdRSHE1JXE8I3hvK3A7CnpSZ0BVek03R1MzY3hsTHhFdUd8I1p4NzhfTVZwS2BGeHB4WTUj
d25+ZldjI1ZAPmI4dGxVS3d+OGtwdFdZUnRrVgp6X2Z8ejhtKT5oYVBPUDJyNX1KSngybEdIXzkm
ZlNAX01INXpwc3RJd1JBNF9uOz9hdnpaKVF4Sj95aSlXRmtkdykKem1jczBeMjBOeDEhREJaJkwx
WEs9T3A0OztSUlYqeD9YWj8jUmJwI2JsNElIaFhxQEg+UHdfOUUrVXdPQ0JzQHFmCnpQSy1oJW9E
Y3R7SkN3MFFoRSRkPnBJayVybj5eQW9LQUFrdUpISzhYdVRoeHk8VFFXdytASjs0UzY7SDYzWF9q
YQp6ZkFoNn0+aV5ePWEhXjJiPGpSRzxgSjNBUm1HeERFYSh2aCNSfE5tai0oZEw8WWB7ZVZSZVdf
XklBOHQ7al5PUE8KekFkdHh9VV99S2gpcS0pfj43WkV8c35sOys+U04yVDRQM1I2Sm4rb1p1e2hN
QD5PXjV3UGs3b0NGdXZGcEt0eUdjCnp6bSs+MUlEclpyVjkkdGNtUUVyfDJgQFI9S2d8ZjFganRR
Q080dVJwWD97S1laJkF6dW49cDBucUsobGIjbVo8Mwp6RmUyMntJRCs5MDgqV2J1YkFmNXt1ZEJN
PXpXPXQ/QDlsVGslKzRIN0heWVhBeFBSXlgqPW55MXF9fmBOWEJFMXcKeiZ+NV5YZz5mYH5kMHdG
bGlATE8lKzJhfDwmWSVnXmV2QEBnRmpUOztnZDJnM1pQc1pDN3QhbC0tSiF5PCpVeCtBCnotdj9y
WXhqdUAzTTlrTW9QMmxKQzxJNDwzZUhFQFpNdShpO3hkeDRfOWEoQkIrfk0xbTt6dnQqZHd8XiRY
U29COwp6WT00WitRY31sdCh8RTROemRyY2RIVlVlbT0oXiEzSW47Yj83YHhvZD9PUlZ2XlJGVnB5
fkMhVU9rNWJ6RjkhbkoKekE8Pnd6YjtGa3c8RVc5SnZySW5UKloqUURgZEg5fkd6bFcmdFJafDkr
O28xSHc4d2ByNSlpU25uaTV0Rz5ENHg3Cnpgfjg+NThoXjdKdlVofHBSa34je3pYek47eW5CaktD
ZSVkayN7cGs1UEVLazBAPGN2VF5zI31XQGlTbiRxWT1MNgp6eTFGPk9uTHQkZEszSXVRQGw0bSll
SVVfIW00Rlh2cV5eKzJ5aTZ1bkZVWU0hMSY0d0M/P1VqVjU9cGpoWTF6VDIKejRBaS11TjkyRmsy
eD10Zm45KHhoa3FAT2ZLIWY1OTNDZUp8bCEyNnduYjghYSk7ODhaSUVAbTNqa1U+YHl5OG0jCno5
cT13RzA0NzlMM2Q4JnQlVkM/ZmIya09Rb3RYZU5JVE0mXyZwYmd0e3E3WTRXIVpnNntGOzMrRVRU
e3VBUDJlXwp6MSVpZjFgbCVGLXB1PntgM35gYyRIQ3xgQEJSKyRVPHJBUmYkUUVhKXt5M3ViPiNw
XzdCajxtfjdUSGp9ZGRRT0oKeiRQYkxgYVUkMnxtcnFILUZhJGBad1BASmozSGM/dCt9KWh2aHkp
YjNfSElYZjhUenZEc0QofGBCZD9Ka2d0fV5zCno8YCY+I0EwWEdTZWhaaXFHQUY8dUtPVVZZZWtO
I3pFdD51Wm9lVUQoSnxFLUB1ZXdiU195fnYtKTQ7c35VI1BhPgp6b2tzYSM2JVIhKW1wam1ZTyV+
T0ZmKkNTU1pSWiYhQm5AQjVvcjZYIVl5eUZhRVI9SUdpaGJ5UGtxNERJPHNoe18KekBPWH1nSVFY
MU1YSHZUaEx9YCpQN0hvKShHWEAmIVN5RyVVKnlWdHVrcXpwc195OE13JitpY21DZTRDQGU5Si12
CnpOcDZRPHhCeGgqPGhTMllvcjFMJnQod3ZMWj41UmhlSkBCJDFQKy0xSSZRe3tANH0kSWVyJStP
QHV0IVMoNnFocgp6K3p7NnNjRTNDeFZ5KT4pbUZaQjJXU3dyMzZka2MjJVRWSX5JOCgrKigpQmZ+
ZUh7d0U/KnIwO1l9KzJ8JX0mJCMKekd2SEtaNE4oQXkyXiV1ezEwWSRNenVSc2IqYnVxRTU3ZXEy
OTheYlgtXkhVZ1oqUSlTTlMmVS0yfHZKcEFwbisyCnp2Jkh4bTQ5PFNPdEwtT3pNdVRNYUtNbXJI
UmlzazBlRn1gI1R8LUdyMHZ+aEElMjhfd14jayNxPUBlPDJ2NTxBPgp6VCpFeStKdkUjXl5ufl54
c1VoVHJ1cGkpNmpsJCkoNyR5b2x1JilKRjRQMmZuSlhWKDAhX2JBeUV+RjdxU2BSYHoKejgqQ3BN
eGVUTXRiTEpTcEMkUnFZdHZKPEt4NnhyTTd4IUBUZGhycXp0SFdnPnxJR3VTS0NzVX1LcHh1eiMm
IypqCnozUX1RMUp1Ykp2UVFLKEJHfGt4YShiMi05U0tLTjBhKTdQS21MPmB9clNQd0JEVm9jSXp4
RHRWeyY1SFErTk1ZNwp6UnxjRSlJbEI/YlNjOEZXdnN1JjFfX3VSUkJQN25LcD5oOUtDV3UxR3Io
MUhkZ0xLb0xjUTwzZVRrUUE1MVExMWYKejVfMWd0ViNuUy00RXpjLWZDNGgyZW81TDBpXilEMXZp
TFpPPzNSZ3dpSUNSRzlGI2BhQG15RUdhU2dyRXZTai1xCnpWWjdgSF9wMk9gRnhJeFliQUtTZldg
NSFTbHdwIUNnYS1+MExyLUh1IV99UFJ6I1hgKFo9Mjs4XmdWb2RyMWcpewp6eGBOKCZZbWNSO3so
O1gpNChkVHEkb1h8T3ElQGloRUlSIyNfaFJje1I4QVUpPSlDeDYrJD1neStNXmNnUHYmbnUKem1g
UikreXdFVFZATjZLREAoIS1LbWZyVjM4MHdUXjNRfUhxSisqeV9NPFZxP197amBpV1hzb0NNMDZv
N2ZlLUN7CnpvZlRSTzNRYmxIbX1VViFeVH1PJnZlQTFHYm8wbUEpZ31tJi1yZjhOZzxidnkkfV48
X0tRd3xMRUZSSXR1QW1mRwp6VUFRO2Y/VGhWQFRuV25IR050fmlNU3QzZyZsRXdxUzU8eXJoMy02
UWomNXNMTW1MRmpYd194Xk98Ymc+eXklKSEKenhtc2k/OX1UN21IWFN9XkFDJk1fKEc3YTNWckRq
TCg/aWNtNWN3WHUqWH53SDRaNlkteEphSSVIeClrIWtLUE0oCnp3Q35QVFM+cSNIODU1IzljJSt2
dXR2QmY/VzVKQCkoKChUb0NXT0VLRl5GUVd3KWU5JV5UUHJnWCFWeF5aPGEkQAp6dmhDezZMKFNo
SkYhXlpBdnt+RGh7WmlvSnY/QW1jdn5MZHteZW1lPjJPI3peNDFOKnJgMUtLZz8reDcyP2BEMSUK
ekNuSC07b0VCdXM/VkU5ZmRaeyN2czFDTnkpI1NhXzV8JjVYaHQ+bipBdG1QQEh9VUxiZzZrXzA/
QlNNPmRZWkp6CnpZVGR9Qlc0YCpSV0FOQFRwcThndjhyN34kOSY5X0JyS0Nfbl5yR0pvemQobm0w
MipkeUZ3K2xJQTl4bF9pPkNJdQp6LSt0T2lkM1R+LXUyUWBwPUx6VjI3RVVmS19fJXx5VDxtbjFi
bmpJcm9NMVFASzJ5THd3YjRSPUQ9QFdmIUJKRmUKekY2RmtXXl9PRGVzJUdNMWErOTZSYVFkTnZj
bGA9TSkhPlJ0bjQrRWdGY0l8S2N9emJBdmp5VmU4QDZsTjghT1U9CnpoITM9Q2R1ZGZINDJ2X2Er
K2I5XihpPVlhcGwkOUBZJjFhVldQbUd1QFp4a3xHMms4VHd4R1F4P1dNXjBKST5ZVwp6MygxV3JH
M3goWnpObn1gcSEjRFBLPWYmUmRFZVQxPmBnJW9UdmR9elgwVGo3Tik8a2FsVzQpJHJgcmZ6Kyt8
WDsKemx4eWh1OTA3MUY8bT5aZSsrSzY+VWl2emRnVFp+KFIwMEt7I08hI2pkYzd6aF5mKDdlQCV0
cEA5aVRLRzlwPlVFCno7RGd0c2lvTj48Plpvc200UCl3RVBweTJjNWFfN2E4dU1jRVY9KCR8YlE9
SCtZZDsoViZ3RWspeFBnVS1yLTNafQp6TSVzRTghIT44IWk7cj9OcVprJjtOUFVCQjkzNlYxKnch
PXs5MG11SmtUeUlSWnQlXm9sKFFhbHFaaTBzdTRGXygKek97dzEqNChLQ2MhaEpOcy1EUTwqO2A+
eXIraV8/XkdTamxMVmh9U3o7PTBgfGYtd0Z5JmRYPFB6UytjJiprUnNuCnp6cnlFd0dSKGBKOUZp
UEVRZV9VIz9pQlBRbCZjM1hPeiVENVVWclprSkhEWCUxXmJYSmNfZUByayFxZTNFJmcyLQp6YjhN
N2AlYTxUM3lJNUB7QCh8P0RhWmg8VF9UVllYbCUoI3J6YEJacSR1OD9VYH5oOU05QDwlaFI0JjBm
KHktPVEKemg3Wik0eFNGMVJsdHhqLSN0dEtPWWwkMCFqR2NMNHNJPndAP3wlQ19TS3F4Tzc0aEgr
STAjPGJGUzspd0dxRytxCnotU2MmUzJITUxveXpGJlFBJSF+SW8qZVo4QlpZSmpYOGpGNGhAT1FE
JGk5YHhgeThKeColTjJYOSlFNTNATj1eawp6PmJQRmpAYEwjUmQ8ZWZYYnVgZWYpN3M2ekUxdmJh
VSN8fU9GYC1LQW9WOF9XN3lQbUB4ZEBKN3t0cU8qWlV1VlIKej5hMVV6aFN2SG4yYn5nOWhWKUxV
PntudzlPQjlLMUkmIW1IVDZLbXghNGRTKm1IV2ZRYkxROF9rUGJxbGJZOShHCnpyMEp6Tzx3VGln
eHxjV0NyfHFYbVJpVW5ga19hZ0w2cEFVYVR5eHRBZXEzS0tmck17P3FmVns0XzhaWVZIaFVYWAp6
WD5tUCNWLUBMc2pqIXwwTkYpe1dVcHxrfG1MZjg7XkRqY2kmVEU7JGphMk59K2hkNHtXbSZvZjMt
fHJtdmB3Y2YKelFAUnBwfEpYWHlYRDt4Uk8/K0I4OGZ4UT5VQ356Vk01a05KZ3F2bSFkUEJZT2Fz
TzMyZSNRUUVfX3NUdFM2Tl4hCnpWfF9jKVpYQFooVW95Y3cjbmJRaF5VZXRPP1pgTHMwJExrKFJV
VXVzZCVwemdXQkVzXiV+MV5OdCtyXnQoe2RoUwp6T1ZIUG4zSGhJZE10VH5MKGgkcGJGKmpYM0I3
a3w+TXk9MnxkU1M/Q2JTZlRwcjMlSGlRb0kqTTg7YiVXUDV+aDgKemdgP0t8eWE3OHJraVo+UEEw
NWhxQW5CV3U1a3JJaXo7cXdlQDNQb19abW8tNmdtZSREP3c1QnpGd1BsVXltND9ZCnpANXg+elg0
d2Y5KklmS0p1IXoxK00qVyFqITJFQGx5WF9PUDduWkliZ1pkQTw+XkMhMGJ1QUljRHxJUkNySjh6
Uwp6aGt2ans1UDlLNlFwJnIwUDhLaFc8djNNOEFLJnBhKHFTZDt1YEpTfl9Qc0NTI3t9bmZCeHI+
SlpAeypWbkhLaGcKeitCYVhfY2FQOTVsdlhLe2ZDWTlrU0JDQVE2RihUaGdEcTh5cGRKX348WHwo
PXk7Zzw0cmBrfUc2V1NzQWZDWGpKCnooZmdpO3gySHVYYm5FK3Z6SXxzdkhwKD8lNWs2Rj8jd1Ne
Vz8tMVNtTGp0ZDskb2hyM0xoeD9LSXVRdz1BRldLWAp6eD9RZVJoJnM0YnxFRVlLZ3NQcjBMTEJH
SzVCRCY8S05pMCMjaF9ucnh6Qj1PKHxVUV58MWMwbkMkaEdqeSpkYkgKemM9cGA/ZkNBd1M4bkg5
ZkNJKmpYYTBuQlZRSGVOVExeIWRBJW5OO2V2SmBIamJzeVZUOEwybVIyUSpPPHkzZDw+CnprJGA0
Oz1LYUtkQy1VY2lrckVfV1Zob3JWbTw9b1c9ZGZkX0ZsTkpreGVMSG1IUTw1dXduUWxqIVV6RVRN
VFUmbQp6QUFlRzBGfXQ8MmR9U2FvcjVjMzl8TD08c2hpYnp3ZXl0IXFQd29QdENCMkxHLVErKGwr
NFgmLSZxVDhybnIlOyMKenxBd0V4UU9FLW1kXkJQN2UqWCl5aVBZXzhuem8xaWdrRzZCe2gwR0JN
cXM9ZWBsQVQ3M2c5SCtSOzt9dV9VaUFLCnpMOHBveDh9eDtVRkZrPDRaIVR6YCRTLShSZ1BnUkE8
OXg3VjNWMWY7eHR3ZiV3fkJRVWVQQjBeWTxiU057OGZtTQp6Pk4mPmU4ODloXk5GZm9NQDteOEpM
QkxRYmQ0ITBKTHVgdWdYV2JCcipBZUJxMEp8e2ExIVJCbGdgSVFod0klbD8KeiYqRWJnRX41ZEQ4
U08mckE2KSUkTioyfWFvVGZuS2EtPm97d05yRjJLPG1HK3RfJWgkOS1DaG9UeTIrenF7PW5aCnpl
clVpJldGN3U4O3VjTkYqOGM9Kmczdm8xOURLJjg3TXB1d2pUNVRVREp5KUNVLUlKQEVpOHNtdEc4
YnsyRCRUdwp6LUxacVVtdE90fmo/NGVAdWtxanMqfj99JENAYXBSeCRKWGRkMHA5KE8heG0qOTZ7
Y1hxPExnZ0RFdno/aWVgKn4KemAtUiZ1SjRRaytOYld+e2k3WXlNKGxhRkUrQjRybE0oYCVVcDFi
NmtyXl5MMl4kTEBCRnFUUXo3dChnMDJPYEk+CnoyYk9IbDExV3pveVV0P2ttcFd8SWw/WCl6Mi1B
Zi0qaGprKD54YW5WUGJFMD11UjhjfGlAX01Xe1FXSFhEaUMmWQp6V19vbX1SKUtWU05uaCY/Y0E3
VXEzfX1JZj1odGxKbkFNcCNUJnpNPzk9Y09aJlRHOWZYOyNUfDs3c2ZCI250PTcKeldEaEUtPVQm
eVhPfUNNe0Etb0R1PER+YWJzbmZ7bWVYPDcpKEJpK2w4Mkc4eGwhcH5ycVJvY05AfHlnamBLcm8j
CnpEY2JST3RAQUpVZGRaS2c5d2dxLWwkK3t3bGE9RGgyPVZfRmhhZU42WGRlMCtOKlVXJiYtWHNf
TSo1aH57YztffAp6PWVWRWdHTERrT19QcCt3Y0VMY0wqJTZEOEpmZiMmNzJuVDQyb2BAdk10QDAw
ZjF3QTJSMXY/OyVyNCE9VkcoezEKenZ1PFpETnBVQFV5XyhUU3Y1V3BNZUw4JipJRDFYOHJ2ZUtU
RWgmc2RRODNnbW8xIyRXN088eUp6fCtid3drOz1ECnp5ZEt7NnImPnorT2xzVDk2cEtjYmtqbXRD
WldUI04oQTdDSzd6KEMoMUA7NmlSTjhJR3slWjh9eXJzflV4JnMzWAp6aHY1Kj1vO2V9JVlEciRI
UyM9I2xUQE5zO09mPE9tJlM9JE5wOGAlVzM/PjVfMWVGQkxLZURiTitPakIjR2k4X3gKekZxfUEm
WVdMNU95dCN4WEtLWVMpUkI1PU1qOW9iQSt9YlEjSjRaVSpVPlVXdV5efVI4aD5FYGIyYktZWlZp
TkRFCnpMaTNiRCYoaXkpQHlLYXc1TXl8eGZFLVJfP0V4P157UypgOGU2KUl5I2JmX0AlJVhORDFC
Pzx3Z15YMWFrJn1iVgp6VCViKChPRzRfemJEP0c1ZyZ8NDtVWUR7ZG0jekZVc00rSlVORlhodiQ4
ISthNFk5b34+SkNLNEA+U1hJNEBod2MKejQ0X0EhSH59RVYyXlYzWT14NXd9KioycnoqcTdxR0t1
JH0/ZkIyTz15YFhsTml3flhXREk8WWtqXiRpfiQkWFF5CnpOJFkxVTZFSCE8VXsoe0BufF9zano8
WjIyQEZ1am0qfTlYKldifDNYPX1rK29JQWp4KDVvZUwoQFhLQ054YyZacwp6bndBSStCfGoodmVZ
ISNxVDF1Ji1CP2Fxc0w9ZXhzVTxBdCNVdG5HUSVYfDB9UiQmNEUxUE5vTEkjYjUyeXEoYXIKelox
VDdjdj0qNFAwNjw4Ml9hd2liOGIoOV84dE4yQFM1NUFoNylPb0cmSigtbFB6VHk0REI9T1kxeW1k
UFZkUiR1CnpPVzs7MCtYKGF5UDwxNmF6RjI4RWtaMXg1ZSNMKmhJYWgpP1B0e3REbiU9eUsjdW8l
c09IeE10P29kM3A+QURzSAp6RngmQ0FFblNQVWBKTkp4PSVYMkhwY3JOe2xGLSNFWEBBMU9NazlL
cFElOFh3N3lANEdCO3tKJjxoc1ImSn1gSTwKektsVlRILVM3TEByLTRteWRHT2kwKzBNIyVCTldL
ZWtAdz03WDc5bVF3WTVuZ0MwQFh1bnFTfFk/IXFmWT1JfWtYCnpZVjtoYGRXWlMoQXEqVCtOZTw/
eTdwJWcyZnA8bClwU15KUG84SDRUZHdxVD1nV0cmaE1AJnpxVGI5K1VeOWZsMQp6NSg1bX5yeT5I
Xz1OOEdZOXdDNDVlKUYpXlghITFrZG4mQnEkWTUyZnY3eFk5JFcjNGZIZXJ7fkora25zVldNJXYK
elI7dDQoXnFpJVJQVFpyI2BUZHFXYXFmdlZ6Yj1vY25APmBXWjsmeyU7VDBHWGsmdlgoZFImVTdD
eWU9bUNTLUljCnozeHBCdyluJUZkR1Y/dTFIcWYjM2BldGg8LT9OfmJAWFN7QipIU2JmYFE9T2tF
dypoRmV6UTJkPT5ldGI9eF95Wgp6K0ZAREhKczRQY0J1dWhGTTtLez1WVnJtTiluNXZENG1jNm02
fipsZXtUWDxSRWwwbiNWPWE1PnBKeGxDdDRDZ28Kekx8eyRsYTBPM21uJEgzNmdRTWhLZD4oYXJu
TDgqVHMxUlFWTWlJPHtIb0coN0ppZ3J4RmpgI1FSU1l9KStgUCE3CnojYyF+ZTZJbXJBeWAtJkQy
fCkxKWRKXmE1UCk9dD5lVGdlQGZmT09FOFBwRjFMdGRSaXBxbipkSEhQJUxrUHBtRgp6M1R+NExj
PlRWX1Z+T041bV5YR3BISn1CM2d6bkxjamwoYFViaz9ZbmRMYFRZdCppeHVgK2J+MCglWVA7MjE5
UnMKejhmO0B0UjhONGQmUklOclc3VUZgUHI/ITFgIVZZbHt3QDFKcVAxdzY9azFwNyNxJkNubHQ4
YEZjbnotJGhgKVchCnohaHdZeDBHfm43V3l7ZkJHPSElQ0p6PCR5PzdmLUs0eXxiTjs0VFZPWCFG
WnRjU35ANzczLU13MD5oSGBXKn5zSwp6dkYtJUwtUXdISSY8X1A4WTNZMzc+TSZDUGhUMHw/QSRB
OTRQWkktcTA4SGdQeXwyazZYKzNzMiQpM0dpJXheRz4KekdRZzM5I1g0Uikoc3I5QVpEJHhAMypK
U2o8fHl+PCFRIyRsaVo9Tl93QG00TSs7YGNrP0AjJENMXkY+JlNKQENLCnpLY2FhYSQ8YEcydmsz
bko9ZUdYa0QpJkhPTDwyRlNvTVFzQldDeW9WeVNUPlRIfEFlP1E1ITRYRTVLKTZicis7Swp6Jlpw
X0dLQlBQZEl9QWBSKDszZnQwbzMwdVl2RlBPODUkanxFMCYyYlgkYHtPdmFqaikhYmMkSkw+WF8z
STBHdyQKejxyZEtSazd1Pz1ANDNpZXFTcjZlOXNRUTU2VkI4ITR6dmFsQShISWZgWXROV21Md2Et
WnhoayFIdFUtYWh7OT4hCno1YjV6fSo4X2lQcF91bUVhQVQ3dDl2YExOV0U+WCU/QFgtdno1WH5v
MEFoPEFOaVVHbUNzZmtkMStBdV4mKEtMbwp6ISk0c3hTbyQhXk87b0J5dV9qb1JTSTNYdUlAVD1f
fDlyWWg7d2skPWV6KT1OUi1lI01IWH5DJkFMWkBnWCoyPEMKek1ZKnxqWiZeZ20qOVpXJD4/Vjhn
KFA/XmY2cVopSnphIX5Xc1VNNV95PHE0OW4hYSY3eVliXzdfO1AhOExgbVNmCnp0dXRHXmRfRyNS
PFN+N1dLaz0/RkBja0hQcUpPS2BjNjUxbUwraUY4bGhNVjtNXmV1YEVfeVQ+P0EzVjlaO3E8Mgp6
SDt0Kj5OI3J9a0hrUHNsP1RZO15CIV99ISNOQiNHclNDMU9sUz9+eSVOPlJWeHp2YWB4NHkodXVL
PDNBQ3FmOEcKeihgRD9ONWdEejA2JGg9OT9JeGAxP1BFNn1pKHB0WktNYnx4KzQpP05uZil+WXxC
WXJ9IV5AbUp3akYwTWpxLTNBCnpBPz5pLWVCcipxIUNjO0RxYk1ybDZWY3podlp4OWtPO0NER20q
ZjFpOUpWZXA3NXh4OCY4PFhqWmA3UklNUFNaUwp6eTYlKFkmJTFoSWt2VWZ+Rlh1ZnRjRzd0a3NW
dnBAdWBiR3RFa3w9cl9EYk1NV3AxLS1JPmEkYERAeVBgWWlOcXgKemszRzNMc0ZybHFGP2Zta1hY
Z3VlSENmKD1DcXBtemN5N1NnUFNIdjxPa1laazJ7I0Ixalh8RTUqMVpwTHJIZ2ROCnpPTSV7e1Q7
N1l4XmBWS3hwQUN1V3Y8UHE0WUAoSFBkNFJXSnpKQnI5c1JxKzBnVEN9Qj1FIW1UYDw0ZWhgdk0t
dwp6SSZzdVFyREtQO3FZOEw9eEFDVSpQcj1nbXspdnQwKXd9OH1YOV40N2opV3g4LVpjNT1VKmRp
ZCp2bml7cihBcFcKejU9NWxHYCg5QXMtZitOM1VNTGkke2A/TnQmK0RGXmJ2JERFLV9MO1hnJGVg
bmhFYnxpPGwoPStRK2Y7d2A/YnhRCnpXYzAmN0F4XitjZkRzO150ZSZIZlEwJCp1QVFSQkMyM0xV
RjtydEh1X1hHZF4xQClNaVVkTX45cmombWwmXl8tcQp6YTxZNU1rSm56Jnw5Y1RnJE4lQGp7KFU5
Pz8+O2Zfcn1gPlg8I3hjTEk/UTJPNmY3OEY+SzZuMnJVMztGJnRMejMKemFoSEB1Zj1QdEFgUzNg
YExRUXpvMGI0dyVOTyUoJD99KSVWPFFhbU15SEEjT2RsWT92TlU8al8/SiYhSnVyVG4qCnotNkNB
dE9GJERva0BBaXQkUiZ7aGY0ZklHRjlGO0B3MSFzQkp2fXZ0d0EpZ0dEMkhObU8mZDN2VVlpQGR4
WGVwVAp6dlo4SFJYPHlGfWdJbj16ZVNZXn5PMFliPGVQSXomcT4pZFA/azx3cmAwdE1SckRJJCFv
P1pkMWh5My07K30leUcKem0qLVdiQ29RbT9OXkhLPUlXTVpxX2VKLWV6SkA7ODJJZ0FTRloyYkNg
fU4+IUJyJXFILWJ7R1g3WFhOQjVpa0BPCnphSGx5e1g0ZWUpO3dKZiV5ND0+Um9HVmoyWlpuTGZC
TWg3O2EtVmxkfDZaUmpkU0w0QDFWRzkqdkIpeyNFTDk5Qgp6Q1VfdCUobVpmJkphY1ZCQVRvUGIy
U3tvUjQjNFBpQHl6cT9FQzlkXmdeO2F8Wkg9XyY8JXNscF49JihRZ0d9QUYKekp8aXRTbkw9TGlM
SmMzekVneGQoTEJBRkFtKSomO3FuXzZ0b14lQDVpK0ZldDw7QzRMWko8UlR0I0JhZkN6ISpiCno7
Ull5JEo+SDllOy12NXhYajIxTEFKZ3cwdV9RXkJkaykpayZ2Qn5GbiZiMCVWITI2YCgoU29PJHtg
eTYtWS1wYgp6TlhLMEZFYDBkVWVITVlhcHBeQitOKSNUSjhxWjAjR2ArQHd6YW48aE1YI1locXZ1
Nlc4XytzeVVJUnJjLVIhPEUKekpHU1MhcFhkMzxxPUJmcTwpQHRRYXVrPXJmTVRyIU42JDBJNkdg
ZHl3TGNkOyZ3clc1LUBSdF8yYDk0TmFsd2s5CnpXJFdiN207YktBXklHJl4qUmlxb0pmUUpCO0lX
ZSVNMkN8Qzw0OEh6KSpFbFA4dlBtRjdFb0xLN3xRdn5ZcmJQVgp6b19hVDY9JHc/NGxHOyVxUmJ3
SFYmezhuPFYpTUVVNHtJczFWRG57eCtjWXYxZXd5ZXx6QDJhYzwlVTApMjVQX1UKemReTiY8R3hF
ZzNTTFh9U1JEfTxYREVjYT8+VWxKQSVnSlo1TykhR2BHPHZrQnFTfjAoWnspIypeLW1MfiticnZn
Cnp5Uz0reE9USzRgZE4rLUM+XkkrVWZhez0zXzc3ak1DTnd2Xz1GSERlRDt3MmNwUVVXN3s0YDFu
XjF0TX4xZlNwMgp6MG8qe0UrWGQyRlo4Y295dEZqRiRnS3JNTy1HKTtZeS18KkZIfSt2SmR9O21L
UVJldmV4MEAlcXAxVU8pQ3BQWD4KenpvU194ITsyZ0Jza308TipFZkp6SEkxY3VYRWBGNWNvQEY4
XkJLQUlGQmMlPj9tUHNNWHREalVlJFU7fmdSbGU9CnpubkZZdCNILVlTYjFjIXZHSWc4c2gwbnBu
bDNkT3VSdDh7WHhUczVkckY0Kzt6Jio8ZW9SQHJLT2dedDRAbSsmUwp6UX1qU0h2YUFDfTNVXzZM
JUFgZ0k2dFdEbjd5WFg3UCshbTF1PmBeLSZjUXJ0KT1xdXBPLT5He15fRDZKO1N3PGcKelU+MGF9
UCpHVyomakhrXjBpZThMQGVIPjdyZHRqOGFRPmlpUV9CR2VsU2h8cmMkI1hqaU5LX1k8VH0zMSFn
V1ZhCnp6JEMkPVBPeWA7MjIrYyRmJVdAVW1ZJXJ6Umt2YjtZYGpmM08maFMzUC1yYzswekQ3PGg+
UntAWTQ9VUpIZWd4Kgp6NCRgdklWMU5eRHZHOGBZKDB7PWVkJmwxZndEYElnXkRXJj9XeSlRdjsk
PTNkcz9rWGBeRno5K1BiSW5kIXdOIzUKeiZzYDF4OEM8Rm9DPV9ra09UcVQ/OVFjSmhwYDtyJDZJ
NlVqZDt2Nj9Aa3RXR2p2M2x2b3U8UV9ZTFJUQ1RaKHIpCnpUfj96UHh1bzNKJmRRcihxWWhPUFRm
ZjhSeWNxZXtoV2Y7K2JkbGcwZXVKYVZ2SCl3e2dORTxaPClDe0s+M000Qwp6JHlRUnM9clI9ME88
eUB2QkI1XjVaVENuZnF2MXhzIz1GO2VnbmZNbFEwPiQqOzxBfENlTjsyejxgMHp6VG9oc3UKenJY
bnt+aG5lcUZgdFpuRXl+fkpldj45Z2RYe0YkYzJhYzYxcGM1VCltSlpYZVVsWW5XKHg8NWItfiYk
JGk7Xnk/CnppLUQreTxMfUpCKSp9R3ImcDZqNUk3QEpyd0xyYnRfTTd+OUkkMiZGQEN+eHpUbG1e
dTkkeDYmWEx7JnpVRWFeTgp6NiVHYzRFXjZfZmYrfHpQPWNNTTlTPlIzZm8lPH41TWFLYU1DYCk4
RlNyNEY4S0JvT0g5NytnaC0yczNRV28qXyoKendnR0tXcE5+U01keztqUUF+IWFBdzZedit7ZlBt
eVNSPn1jX2dBc2pxPztRVileU3V4WiYpXzI+OSpgSTAyaj16CnpmM0g2bV5rZmd8RXVETGstdlhL
MFNgVGFEXlRINzNuN3ptMl5pUlVYJTwtfGdqPHBGfTdMTTQlK2hsVmtIKHohKwp6ajVkbWo8NVlD
QTJWVWBPJilrcyopTiRzMyF2cUdsTTwjaGZTfEM+QllvWTZ9RXF9biNZSXAtOVp+JkghJjVJRykK
em53YjdNbSZ+fWxDa0AzUVVNM3xQVVZPUXw4X0srbm80WW8rSFE/X0tYZGM+ZCF3bjBMc244ZzVy
QE4yTyp+bWU0CnpwU0tNVlhmXkJoS1FaPnNAajw9Vz5PXzdwcFR7T0x0b3lPemZWRilMO3wpaEh7
KkBLRE5uRCFiUEd3UVlXTjUxTwp6OHlMOSpGaGlaIVFydnEhOENBfkFYPSlecSY1KVArQHxQejJ0
ZHApcz5RfnN7eH5EYUteezNeOWBQMmojb2I2WkoKekFRfD55YUxDT29kMyozeyYlO3F+aWpCeGBL
cWYrUU9nTEFDXnNNd1BkKGQ8aGtCKH51STV1VzNWKGZ6NmNMWk0mCnpMfjRSKWVpUmxsY31NTWVO
WmtnX0Z8UEckYXx6NyQmcn5sKWk8NUIwJFRTeVgmfS1FK007RnpMVlY2YGIpR3NHaQp6RVpGKElQ
Xy0xRz82NjwkTXVmc2JEUi1CfVQ4UCtaNm5YX357TU5SX0VZIWw0aUdhP1V8N0gjeiYoZHYpRDFn
MHcKekwkVyZlWko8b0ZvcktUeDZgfiVPYGJBckotVlo0enhKaEZBIU1TVHlITjg7ezhoJG5NYnxM
PHxvTEVscGRqUT0jCnpmZ2lHR0FJciUwNiMwdHhZNyUlY0BOaUpJPEJqJV5aZkNpRnpTKkQ9S2Fq
cFZtVHA3ait4Sz9rT0M9Z1NSNyVaVAp6eElgLXFwezt5N0Zgbk9AYDg9fmhnQ0UrYW8wQnM5eEB0
WVotMTF1e04kfTB3PCM/c2RLOTt4c2lSOzYpPzwlUisKeklUI359RXpqTH5McEUqZShaP3psbEZa
VGxqJmpFe15Dd0VDNmpzanY8YzVpS3V5PkFsPVglQ05qfFBMRyQ5RjtWCnpUSD1uJmdjQVVtMGV9
QCheZl9CfWlIaDV6WUwobUlKKWUxSHBXPHFraV4keHF3Zk0rIXNQdnw8PkB9YzkoQ1h3aAp6djRG
RUotZDtrVTJ1NXQldn1PaTBsWkNJcFdXR0hpWVE5e3ZiezR0IWEwIWQ9YXd1ZSNpM0BubGo4dnRn
SG5fKUwKejNhN318UjlNTEs5bGd8UkZ4OHRtSUMhck1Wc31xejd3OzBteiV1fFIpP1AwXlojVzVR
Tl9WK3IrQmBRTlNTVH5jCnptbHJXSkhSV0tLR3V8ckN0NjF0VFB4emhwX1UzcHxsYzhGektCPWsj
e1FtJl9jQD1zbCVuSnw8eCk+U2pweCk/Ywp6OXczUXtBTio2VDJXS0JEdHRXK2IyUyg4YT1kNHc2
dX1XJkw5RFRzNkJTUzw1U0Q7IT5nOXgqTGJDdlVTSlgzaWIKemxtdT0qTTVUQnltQkVlPTxeZCte
ZkM8cW89QEdVeG9lfF9eOVEqdyhkcD1sPXhvKyh7ZyUjMkBBfn4hfTl2S0k2Cno3ZE87fjNIQXpE
TmxSVXRifWp3fCUxcmVxUnIqdTU5T2d2cjVoTFNQWTdIYWZ4antRc0NGYXpCNHpPb3JfYnpAWgp6
Mk4yRCE9VX50RWhwNDJ3TihIKVJNSmc1NllgMlB8RWx1fTxRa1o/TndJZXpwOGpCWGF4OT9TI0Zy
SXEmZzgmLSQKejV2YE5PPkgmOFBrRUQoJi01aDMtbzR+VmdANn5nM0pWJEEycz91UjlJR3FYQWMt
UT9qY00yMmY9KWAkI0dibkVUCnp3TV5nRktHfnFtSipUPk05Jm53RktodHtjU1dhSXRuTDRUTU17
RlpARmRHRVA1fnxJYTckfHNqUG1AaXVpOVJ+bAp6V3M9WDlWfk98ZlZtQXhCPD0lcUNPNVRzfDxj
T084TFRuYi1HOXUqcWk0c356NWxXOD5MOHo2SmRwNFM5QzMoWTYKeiRrTnRDSDs4P15yVTI1ZyNB
d356QT96PHJXSDZBOTghJGdWSD5wcFE0cmt4RW1IXk1+eThUODF1SXVQTDZGJmYzCnpganlWKEgr
R2MpMXolZEVrdkZNRTsjO1c5QGY5MTUzK2lSb0VZJj1VPiY1RClDWiUkRy0yWkllUnJ1amIkNDYx
NAp6JClRJnJXK1g4Vk9jcj9xVHcjfkZRTzIwJlpjbylTaCUlWSREZjE8b28wRiVFd1ZWQHdKfk4x
WiVVLUdQO3dLYzcKejtZJlpGNndFQzdEdDA2Umo4ZkFscSlSd0AhPit6RXJsXkB2blE2SXRscWI1
T3gpOUcrcElqaSgrfjJCO2FRfWgoCno4fGlvNSpzYVVWIWBSOUNna3xhKDJhbFkyQkBhfEh5Y19n
NFFJaVpFWWR+VnJiMWJzS3tIclh8eFhHVE5SSHY8awp6PyZOV2ZoejlYUWZwSCFMM05YNzlCXlo3
eyR6LSoraXBla34jPG00TUN1Xz5CISheOS0+VSVEVkYmVUhleChlVG8KelQ4ZHR3dzA4cCQzfCVG
NlB6I001ZG9wd1ZQcmlZJjJufFprUFRPLUs2c1ojWlVibzJoKSRrNGRWMTJeMHVaR2lhCnplTnYt
cjNUajFUKGpzNGs1SHVgdWFSREkySFpIWnsjMV59UTFjMSgqbEhvKXctLUE/ck5CWSotQj45ckFt
I0wjSgp6UjdqI2MtQ2c0Z3ZETUpvZ28hclMqYzx9Pzk2SzR0RXk9SiNxKk1nS1QlSk9Iak85fmg4
Y1FCYG58Q0RpQHx9VFoKel8tQ0Yhc191amcodkA/NU4wZ3BkVDRLdkZ3PzZvX3Q/V14wLV9yWXh1
Tz9lP1otU3E4V0k3TzY3TkxLKDk3cj5qCnp3V0ltc3k7fEhfeG97dmBoa3R+KmhvZngjSnp7ay1r
anBebyElN2l6UFZkRGdyJj5fUGhGP2c/aTR6S0A2cURgNQp6e3pGRlJmSl8xPUlFN0w2WjdPPTFC
LVZPVWw0Vms5WnlsPDk8NEM2eEVkNXF5TnpSZEZQUlVxU2VWYytVSClHTjcKemFtI0VCaldRUjM7
elpNOz5KKHdhaWRUeXBZQnpsZ0VuRCg2R1c9YFlldjtFS2Fzb31KT1lqdnNGeihEJDNTfXlLCnpt
Z2RxSFRwMEZGdG5hQTdpS14jM0Eka2lmdV83bU1KT0ZkWUVDTHU8VU14XkpGVFhhV2YobUNuNytu
RTFxfkVMWAp6UHFsNEZNUnNvXlEwM0tze1ImQXk0ZXF+d3s2Qm8rbkQ1PmYkMHgxUk1JSDFeMG4m
QX1JXj5iaiktKVFZPl50OHcKempPZHslJVEkUXhqJHcraCliMiQ4aSpneXsocnJJSl5OQ05ocipe
VFkkOGJ7bit8a0klLU1PKzxeN2RkaG9SIWAjCnpRUUpKJD9lZGhIRSQ5cERAOSktOU59aG59b1Yo
cWIhI3gtLTEyaT9nJCl8LUtzRH5QLUJ+ZHRGaCsjK1BqVT0wZgp6JEhodDtYZXl+K19zdzFSanJ0
TFRFKDVCcDFHVz16YWx7PlA/emk9YT5NT1lAe3ZQQko/c3h1cHoqZWAtODxBdkUKem5GYVVJamVo
U2ZxalhZRCVsX1dye15nO0NWY2F6ISVwWUdIb1NubiEwMn1KS0JpS1FpaV87eFB2djY8b0tiSik0
Cnp0JHwza3ZFcCtmKn1qeSM3JkxRbXk3KTxIeGFZd0NfXkA2P2A4KGJkKz5RSXJMQlpNNyFSKVN7
MyNnaSVhbGgtTwp6NFBwMF9VKCVaYzJqZHJ0YiZFSnsmPHJ6Vz8mLXdCe156a01EdjVtZGVoWUlj
M253ZE10QyFgQ2JvI0F2USokQEYKemooOGh3RFElI29xejt1eGFZcjZ1JmooeU0tTEhzcShYT0cy
N1kwYEh6Ni1Henl1d1UhZHE3RCR7bX5Bbzw0bzRoCnowZHV7V0swMGFHWV9CPkdOYWFYb2RCJEFv
SXhWMyhXbXQ2QGFSYVl9LWJaNEBQbGhva1oqVDk/d3ItRmkoeTI/awp6NCZFanUlNmlBI3dqcCsk
TnlESHJQaDJqXmRNRF5tYmNlX1J6aFQjUkJDNEV0RFZXSDlDcSRndjs7T1JvWDZPMXoKekA4KzMo
U2BlR2NeTmxRPE5YT35Pb1I4PiNvKVdfU25reUc0dGZraDw9c2wrblp2TyRkUmhIXkZVYChGQ2Vy
bnRYCnppSmE9emM9dT0pc2tWU2ZOUEJuT3VBMyRrWlB0cCFJbCpjMU9CPisjI2FpQjBmfF9PI2tq
Szw9UEpxaEhATDxqSgp6Y0M5VH08ME5PWCYoZ3lkdSgodXYjVTNybXJqaHsxTHcjIzdaMiVoLTZZ
MipDQSlhK2twY1luYj9SeXRhenxJWV4KencrX0khU0BzdGYrV19KTkV+S0ZJMmVPOTdiTVIzJEM8
RXR8SmloWVdiRGZLOykla3NsMTFWRkU0JmNYa1VacGwoCnpgU0JnNkpnSGYwamhwNV8zPVA0Q1lU
PV4+OEJjWW1nLT9LU2RsMnhYZmoqZVFVYCMxUz5fWHgmTXZxKGFEKCZ2Mwp6Y0pgI2U0ST5RJDBA
VVp9KklHXipmeChOdndBPG4lJlpZbyVNXlZRKENsemV6RllOQGNlfVRyXnlxa3J0U3I/UiMKenhY
blQtZ3FhZSpyaXtrKURjU18qXylgMz1icTZ0TFE0T2QqezZWdmtjMHhQRkp2QzJlP016KHJRdVpL
UStDOWUhCnpERU58VURUVSlHaWYofSltMiV6YyVmaGF1WSt2RmhnJjk0UndkPjNtcG02Mm9QZFY+
dHl6V19DM305cGs8fl5OVQp6ajN7KXxLUFYxeUgoTUBtMWt+LW0+PnVnWlkzPyVabU8hNGoyei1o
OUNmOzIpcGZqcHAyY3QoQnw0Q1ZSWHlBdzAKenFyc3VvYFJ9MWNIK3dlaTBDaHEySHdvbzRoO2sy
cz9IVX5ARUx2PnBQc1Y5U0Qmd2xCSFVMWjh3KHNUOStIcyRDCno0Q3czdjxzVnNMcmUjVkd0NE8q
OHlNXy17MTVpJmZqUCNqbk5WNmE2cFpAfV5SJWhQKE1FVyU7VH1kTi07Pzk3ZAp6aGFPQ0h5QVNM
cHFBWHBmckBRfjNfT0FSTj5hUDd1YSU7Q24yI0k4Z05UaDUlY2VaVFZtdHRmPnd6MDMtSihYPXAK
eldYWUgqJVVIN3tsRSY2TyowSURgJTk/I0krZ0p6Ul5DNVRyMmozcWFlbHhFKnBFPjd6JmJpTEB6
VFdUYUleZGo+CnpgTUwyZ080OTdPY0k0NitWOWJtd05OKmpeJCt7TUIldzM7S2k9bSRSNGIlRW44
ZU19O3YzXyZHQmRNMzZpalJxaQp6Vlp4JmNrVnZWR1RAYlpreShAamFWKjkrMHcmUygwJVBrJWlN
UVlYUlFaVSZPcFlmdCg/M05SVXdqQjk+TSFpVk8KejkwPHg+JnhDTE4/SlhBRDgmNnAmY0kzZXJh
NmFfP0skME5sa3N9RTF5cXYwKXZ8MzkzPkJFUVZXejNEV0h1SVBBCnpzV183JkwpeGdGMFFiZT4p
SjhsVEE/QG5WOHsyQ20xYVZuQGY3M0A4ci1AYkFfODY+alN2T0RabVAxOTAxSz07agp6a2o0RE9I
U0dQVTJoWUE1P3duJlNNeFZ+enhgcnt+TEFvU1NaZEdlSnthNks3dVg8eT9Tbmd9SXRYajtEbUU3
aHgKekYmVVgwUEttYE9NPThSX1A1cklNO19zZkh7ZFdEdyZWUVlEbzs0e0s+QmN+d1hJeWFBPVQq
KGI+VmpFLStFZmRICnpiZTBKJEl7U3NkKD5gM1N4K0lYbD42STBTbW1DRzYzZnBMZT50Y2xgckJs
X1J6WmUoWiZJNHdUIzJ2V35mO2FiWQp6JWpxSmBvNVdeNkN2WCk0R2s8MWNPZ0dyZUwqfkZLNUxw
NH5NXmUycmYodWw8TV83VnxnKyZjekJmV3F6T3FlT18KekdQV0lhQGJSQXk9SWw2cVpgITV2Tm18
Y0JTJEJFZlNNYil1OEZqfS1hKlJeNkA0bD5EKmE5aTFtYFdgX2ZifnJBCnpjOFlEUXo4JjxNR0Vr
PUhEZUN6O3YhQVpNWEpRcjtOM1VZJGVDOU4oO2VJeSZDY0VHTlh3Pz9CKmB1WWArQkA5UAp6MGhT
XlA7fGd7akxnQVMzVmhuYno+b012VWlvaSVhSn5HbUdkJHJVdkJeTDI/TmhmK14tS0gwPCNwRk0m
Z0U3WEoKenJuNk1pNWQ/Ql9VKnZ5UyErbnQqWD5tfFhxbit+dyhJOEN6bDZ9ZHlpKmdJJGVDYGw8
aUV8RHF5SmorODZpJFh4CnopVEh7KVZwaVR+RyNmPlV8SV9WZjdqRSYyPzRSVVpSezR4emxzUTs5
YnRnVi0mK1NKQzJwZGtKNmIjYUFMZk50bgp6UXl6RUR6ZCUxXnc5UEg3TUZsbmtlVGJYSjhJeD1k
QDV3aFEjYCUlUkE5XkktR1U7QE9jajEkOCorRl9xMn50d2gKejVRJkR+ezA+bj9iISQhODAyYW1l
YnlBO0VsfWYqRD5yej00bz9oPDQ3Z2s5fS17TVl2TDJrIyNwb0ZDMUVEJVMyCno2dWNZcEYoRnBk
KSMmV1JSZzY4QWRRMTt6cGYoaSskZ3B6R15DdlUpazUxMj5uX2NVRlJ2TDxBVGVWNWxUfiVoTgp6
dTJZeG4qWDM9a3RDZTUxJD9ERnhmMUU4bkJYP25FYSk3ekoyUmNhRURISn54Kjx7NllfRCoqemYj
WUlBYXVNa34KejRZd1djeVkweD5VJlNyWWsqQ0I/ZTMpMl5jdHVYKE5SNH5hU2xJe3lJMiMpc20y
ZU5la0wkaz45VTFUZVooUF8xCno9TjBBWUhNeVJ+diNmMHZWWVk7I3FDJlFKM2h+UlIxczxOMmJp
fGQ5e0BlM1RCK31ZYlMlbXBXPXE8SjBrR1N9YQp6PH1ZZFElIVFQc3QzJEdFR2ZXXzFHfSlDOFls
Mkp+RV5TRFRaUk5xTitmQyU/TTdWe0B3TFNHdG4hIXZFO0RDMWgKejNUUmdXeCNCUmtJVH07JD5w
NElYaTBkdH14P1g3YEw7MmpaWEM4YHpNUntjWWJ6QVMxbVJ4KnxSbWJ7VUcoeyZOCnpCO3ojUVl6
XmojO2g5RTYtJHomYElqMUMyRnJ4PnloNUVVWC1NJkFYUzt7aUFsZ1VGWTE/TDZAPlJqTGFxcEZ0
NQp6Q1JyKlBAWD5oS0A9RG5wekpsY2hNX280dGZwNkJCPTdhSUo5eVQ1XlZGeUQqJSpVPExsYWVo
JTUkMis9V3ZEMGcKelJvfkE1Rz89QTdMNV5UJXR5TmAkWFNjS1A/Q2dgYnlHdE1TU3QmT2Mxb0xW
RHJXVUw3eVp0VVM+MCtuTXNSKW5ICnpjJj1yWj87TShpY0AtUGVoM20ha3QoZyg8Y2B2bzJuOz9u
WVUqcXtUZnd9bi1FTGh3PjlWLWdhd2Z+STFfRjA/aQp6JTZ3MD5PWD9FTllnSGtYK1dQbTlgTm04
SkNHJHw7dWh5Z29OIUwmVkgrRmQhJnYoYVk8bDdVR1F7cCtpd2Z3aiMKemIlKH0mRll8bDJhQF9S
emQlKmpSYjZ3YllabEg9WXlsaCN9MUZZa3NsVzRDN0oxM21we0NAcERKMWdaQzgkKEBuCnpNcyVB
QyY1QSM5KEA5NFA1JGQ8cnJYVWEqJThUJVpIe0J9NlpfX3h8VVQjQjwxNiRJM09RJW08JCY5SEVr
aSFOaAp6cDJOTzszbiVTZUdzM0Y0WXZiNUtzJlZqd1BeVn5URH4mRnxBfjtxIWVMS2E5Xnh4ZlNL
QSRhNnR2KTRNVSghflQKeiVIYXxAO0J0cCstVGJKfTUqNiRJejxYUlE4TEF4aShWZEkoamhXYHln
Zzw/STE/aDU1dlhfS1ZGMEF5Yz1xY2VfCnpXSGE/IWpLUGVtaX1vN2NrRWRnPUNEQz11LUBrQnQ+
Z29AJnpGU3o7Q3U0S1Z5ejR1aVk2IVB5JH51c1pIWFlPMQp6TGUmYWFhSUgtblJLOUE0X3Z6aXdj
UzBIdj04SXdXUTVmUFZYU0gySW1wXlJVT0JWeW9MajdRMl82ZlBZQE82dl4Kem0reGFxQ3pYPk5B
TmB4Z3FwZ2BvWUhoal9tK2hVPT5lS2w8OH5JRFFIPl9fQWkxbDk/NlVjQl9BLUs5RVRpcHlaCnol
RipXMTlzblRRdDFDQ2JNOE5tM0RLPkRfZj5sSzlrJEQrXlF4Vm1aZCM/c2MpREdQbGh7cW5nT2w8
WipLTT9HZgp6a0NPdllqWWFQIVhRbT4tbE9rSH5XZXcrPS1wNWo9aWpud1FpQDBpPHt1Y2Q1enYq
YEQjPXlpYCsqNSNOS3Z3eGgKelA3SCFmNUxkVEJjaylAYi07b0AqWHJnPmN7VUZ9RFBjYWVlKCk8
aHFxMG5pS20/I3l2aVN3cjc3K1lfPDQhU1ErCnp7R14/JVk8YTwzd0wjXzlCKjNnK2NZSTtyTD43
bF9paCVNanNFY2skMGI8cG5TVUZqPSlpe25pWVFucDc9WkB4Xgp6I3R3XjFtPmx1YFMrajFROzhL
WlVvV0IzQzVCQXAzZEtycj5Ze144Ql99PVBuKX1YSSlwbCRfKyZUNzZgaT96M2sKejE+KjBmP2J4
N3pCY3chRUtWcXxnb3w1OzU5KEt4c1ZCLUZieDBVaXRDJWUxeXR1KytuVkxQJUd0Q2dNTTJCI0Ra
CnpWPG9CQEJPMSRwTVRpKWFDMXo8RGVzPFZBMyR+ZVI+NntlblB4aDteXktlMX43NE4pTTwpR0Ez
NH4qcDhMeXB3agp6O3BsdmF7dW5pfnR4MlBfJEoxc1c3WWNwMyUhJldYeUNFNU1oa29RSEFFJVRB
TDdAPWR1I2phXncqQDFAP1VhQHMKenE1P2FKTEpKU2l4N1JsNXstZiV0NVQ5bkA4fldZUiYlTyla
U0NpP3RJa0ZoeEt1cTBLY20wPDVrWiRsKTlZY1U4CnpPZDBuVkhgPVp2VVMrKiQ7JVk7UVg+RGUh
Uj16bHM5bH1NTEV+Sm9FSj5KTzskX0VQZj5+JE11ODtucnVDQXoqewp6bWw1dXF5X2VjKExxdXo+
KkR5UmBAdHstZnhKSiR9ITlzSGJrTmQjbDt9N25KOW5EfTwmJiMpLUYtbEsqJGdFaX4KenRZVG1v
O2hacXVnTmdPbWQkI1ZVcGAjJWFyUGJYJVUjVWJ8RT9WXkorY2BTMmVMQ0BfZGxueUwwKSVqWT1O
KGNYCnpUak9DMmlJLU9faChfT052TmxueFcqMmRlKnh2RnIlQkQhMHs/UWZoRjRGM0xPZz02bjQr
cEpydiU7ZVpNe0VtfAp6PX0xUGdsJWY8ZXdYXnNSeXJfPCRecGxWYk9KS3VuXk1qJjEjcHArRDZ4
RFVnRktNRmcoQ3NuQztUbHk4JmxOb0cKej1zcWV1aFVlTiF1dnI3fXR6TmB3bVolZG9qWTB2Znhg
SD5HdzwqJTcqP2hoLXkmTUc5PTF6fDcjaXVUQ1E2d2gyCnpxKzxkM3J+PCZTVzs7V1U1ZD1gS1hq
aDVqRSpSUEVmdjcjbTtzeG1EeE0kTzFxaTI2IVFQdjNgS1pfY19ETHJ0Rgp6X05wR35MOHd2Vzko
P1QoeDNGfnI+Sj9YZ2JrSUtHPzhgdEtBUVdgZjU2SC12RmBJbzhWVj4xfWZRNklyVG99c0MKekhV
V3Z3SDdAOFM2ISFwamB5czZUbGc0N2VQbXRBTFA9dXtMJkpDcGp3S1ZGYD93VkNEYFBVQVY8KWBJ
YCkhUnZ1CnpOZ2xxM0BTOG1DJE5SJlV4aHNiIVE9P2pmUTZ0QyFRbzNvSz1WPUErSGRFaSNtPXpi
PzFET0hJIXEzUDApd0A9fQp6d2V5WnlTPy13a1JqaTc4eFNyT05rX3pCTWUwVVNNNC1+XikmZzdG
Z3Naez5EJnt9WntObkUkRVMkTE9jREFEc00KelJtdnpMOHtZVGFVfX1OflFUVUc1LWRjO1N7akFu
Q3pZdEhMOWVNS1hjekp9YWdaSXNpNndrb1h8OW1qOytucTFLCnp4N0tpZj17RiNScmBIc0ZxckFv
d1lZWndEVXlAQ09BdiZxJXRROUljSUIqcjxFYGAzMytFMXJhSmB3cGRQJWozVAp6JnhzXiZjNFd4
dk5kdU9ud0xjQXpCez1lI1gtIX5mWWl2IUlVS3pMU3RTJGg9ZCUxUnUqfmBTYWZ3dTtOQmptX1gK
eiZzM0xLSih5eXI9dHx3ITVRd2gqREE7dXN5JH5AQnorJDVhS0hPSW5KXkRCMiMkN3MtZ2trJUIm
aD5od0ZpXz1YCnp0azU9VjQzcnhYR1dZKUdOJCYjSyU/WDVBXmRvSktoMT1zR20wTCpQI0kySlpY
QWdYKDhqdnhUeFA8TikwTGNxXgp6QTxQPnhzfj1tTjFOR2x1Myg1alQzcmEleFAyaXltbXckUzll
fVlKX284M2N6THUxOH1adGBWcnhxJmhRT3FleDEKenBLfSRoQ05mM3ZvXioyPC18ZGtlUEIlR0Zs
LTh5SDdxJkFHemcpNSNBKWFOUFNPI0hxQXExJEFhJG1jNXI2WVVoCnohbWt3JkFXeEkjNVgyYHVA
fWtMcTZtTiVfUHA7Vm5xOEwhLURxazhQOGZWfTM0P2lyKnZfd1FvelgjI0EwWTYhJAp6Q2h9VFAk
MSVFX3hPdXR9TEk0KEpNZ1U0VmMhQTgkX15FVlBAR3IrVl4hajNXYUM+aHRWZm99dntZVmF5YmZk
T30KenhxTU9xJE5+e1lTUCQpM3s9MWltck99SEohPX1PRTJGM2RjdGB9ZzY+KS19TzxASD1Fbkg7
cz9vU2EhfElVQDA7CnoqcGJ1MEIjKC12V1Eke1ZqcThoXnEjUmdzRlh2eGF1OGF1VlFKfnN0OWFD
VDJ7MCteSGpXPEY/O1VSUShCbEdibgp6YkMpJHIpdShBNDAqcXEtT0NAd2ExMiNYO3htVE0pM3Jt
cUo0ZH5tKHBQPUZqTCQ1IUNyNXIldjcjSUNQS3ZGdlEKej5sQTJYWio3ZiU2IWlOUWJNXzhgUCQ2
OExmNW5vZGBzMWZGY0Y5JGowO2RPNHdLZ3ArZFB7ZDBZUFVHVzFuMERPCnpzZCs9c3okWlVAVXU9
SSFFS1orcFZIYHZjMCYoWk1lUnRjX0hUVWcrIT4yOXtIYEdENmhXeXMyPzdYbikmUEYlMAp6aTBf
bllfXnp2ZVI5VWpVMXtCTUNvQm0xJD1CSWtAJTdlZjQ+STUyUU9qcGF5MGxoRU0xJn1SUzgpdCpm
V1J4RGAKejZNKSM0YThObjApTj5jTUctKWhRbUpqaXd5P3NFJW48bVclPUNCaGg4dTVtcns4Nzc8
eChDbyNfSDZeMj5PVDs+CnpqdjF0dWcrMTJjKHVIenNZTDNJIUtBUXZHdmo2fjBafHw+aWxFNDJJ
dD4taj9scE4+Tj1LbyRsKD5DNSt1fk5MZwp6bHZ6MzRLIThlfTxHdnBleGRmX0VmOGFqQ3l4eVE3
dDtPMkNvb1JkUWluQlphVDcjek11KGRYLStjU2xzX2NLPnEKeiR5YEk/VEtGeStmJFZaKjAwb2Jl
dUhAPn1KK2U2ezxlRzRHKGhLbG1Fb007RVcmNW80NDRqXnUjdUxJdXdedmghCnowSUdRIWJAcWQ0
WEpIUXYxX1MhZXV0e1M4S0pLPDE7ViVvViFHSHFOSWN0IVIhUzImc04jfm5qNDlGS1hVV29nRQp6
T1pTQTMkZ1o7fUlXOVZHdUZYTm1xa0I8TDUhJjdeMjNZR0pIZDA9PDN9cVVXOzM8X3VeTWFlZzVH
Y1FNYSRVZisKejB+XihtZ1Q5OEs3SSEjfVVBNkBmQzh8PyMwIX5LZnI4Rm5vO3JeVS0pNT87JHRp
fFBCYTBeLUc/PmtpOUdTcTQyCnpuRnZSbj8kbHdoRXNRdU0+RU1VV0wjPkBnUkZyNGdpdChqTDc3
PT4/cnx9akk0JWVlPiVDcTZjdk9tQ3VUX0Z6aAp6SV42fE1EJnV4P2ZLRk4+aDl+JCoxbSk2RFVM
MT1xSkk0ZWZpKitkSj8zWDJUPClISDVrfCEkRHpyMzgocyVKRmYKenI7K2BiLUs5ZklpM3Z6S0p4
O00pQEMtRyhqRENuVD9rVGEtTVZJX0skKjRBanphTGREcXMkaFRZPHROa1RsYW4zCnpDaUk3MVRS
UHRnKHp5TTQ1UFFLMUlpYF5KZ2NwT0VWJj9icz5ZTyVuPUdZaUpYJHZTUSp0Yjx+LV9re3RLSCVz
JAp6N28zczlKTUdfbXR5PyFJN18lVnU0Xld6alhkWSR7JlYkbEpgP2hTZklZYlNtc2J9a0VPKi1p
JXI+JipjVz56NCsKemUtfFJ+e21oUUFfNk1DRWpqbWxEeSlgTFh6WVdTVmlSXip8QmF6V3t3dEZH
eF9SVHhgQz19dkZDX0B9Yk1SaW5TCnokfXNpS2pjdVNsZ0BxWnRhMGlAPWpTayV7bTE0WSp2R29A
WjRJVFImS1BjJENHfG52OVhJPGNlZXYqOXl2MVV+cwp6PWBfTkFSaVMxTFglazlYVjt9Jk9BQ0VE
RTBJNWBJJE80bFJAWlFhdTZ5NE93NW5OOzdIcV4kWDtiZ1k5JGI+Z3cKejZtNUY4QVdPSD1xJEs2
MGVnc2wjQF54PyskZDxxKlY5VDl8b04oYzYtWDZMYFlDPjhRM0MrX1cmJDQrWVN7UGt8CnprQWRY
cUxKbi0oZj57MiU5KiN8YmhGMG9NKyMzUipIPmxSenF3Rmd1RGZFWShsTHFBN2hrTXVFR3t1Pzdo
enNveAp6bmRmPGg1dkRYa1JjdDRrcH4mfk1oa2o4REo3NkVZRX5kR3tsZFp6YXoqR35LZmc2MlIo
RCRZKF9Rd3MyU0NKbGYKejJPJGoldShLalchZUlpKTJgSzNVWVJiaH5tMCY3Qkw1d2pNSip2c29k
Zj5BKl5zSlJYMUZjPmpZMjcjfFpMOG1PCnpAZzxeI2taQEdzQndtPks2fWJwKnFwTj9tJWpRaDgj
eDFHQ2pUO307VyVBMEBUbXJaUjNqMSo7QXp9JjM/O2ozRwp6dy1hTmYqJGdgI2c4PTB2byN6dHVl
JWc7Nk57NjBgQXIxSjY5a3BLNmckY0k9RWc0bmVqfld4MDFtaHFjQ1BUI30KendOYm5QMlc2QkxY
fFlQblVQfDN+SzBwbl88fmUqNnchU2ZCPDA2JXsxO3VJS3NkbVYwcjxyOSNXR0YlV1JKeGpHCnpV
P1hHZj0kejxQZUxMRztiYl9eQCtqJjlZe2BCNDJeNU1FN2JRYzdlYUszUn0jQyYyc3VWM3JsR2A8
IXQ7TCZnUQp6ci1qRSlgcFhIWl5xQCtqV2JFMzA4YW4mZmJVUmhyJVNZSHxTfUpBPmFBKyErJWV5
IUE9KSVsYmEjLUhgMEgyZioKeiU4UVNgayV1blhfUFh5ITV8NUZNMCFxcnwxPk4meWg2KjNCKDBv
KmtNZSRLQTxVUC1qOV4rcWNQP1lIaHkyQDd9CnohdVBDPWhkMGcjeDdxX01henwmX3ZlKG1gOSk5
aFdAV2B8dUNgUWVeQWhCTEFpRlV1O09WcTdiSUZYaWJJbW9Kfgp6cFJeKGtzJDYrRjJXemVPQ357
RSZjQm5iS3tAMmx3R3BGa1NzayREQ245K0tSdjdlRit4PmlmQ1d9TCNOTy1eKUEKejZzY1RhSlBW
fCFiK19mfGBXcjRAKT59PXJzb0hZdjBiKjEybiRxdFY3T2paYG5GZ0gkN0RyYE0kWGFldUBtI2Zi
Cno3TldHfTYlb2g4WEVzTSVsMi02ZEhmTUhLVzU3KWY5MFh7Wl81UlU/V31nVjk1WHJRQW1ZUTdE
dVFAXmQkSUU2bwp6Zm1hQV5SK0RRNXh5THlhQEQta3Bna05UUjkpRU4pc0l5OXpHJFBYOGAoPXI0
IVN5X35gYU1ma0Y2PE9DPm5TSEYKemRRUFV0T0szYDE9OFZ+Vk47dStMWlFOdn4pREt4bHZwMnZN
SzdMdDE0KWoxQTJ0TEtCVm89YVNFc2JCVjY2YWYlCnp6disxR193NWtuUlhgMFQ3QlhQVmVyKnh4
ZHEobVVWZ3hKQXskMWRAN3Q9fXJjJVc3elZmd2VvR3J7N31wP1Y+Vgp6ak4yWW4zXmwoMzJYVVVX
SHk+b0h7JkcpMlUqYlN0aWhOYyZfVHROK2NMN3hxTWBgM09YYUFjZXl6ZGlIMVI5K0kKenk0MXlR
SXYpU2U5bX5BfUN6KlZpN01BakIycFo/UmBueHcmN21vfF42VUYjfUdFeX42T1FxZCU0O3IlMkx+
SU5gCnoxUU02dlU+XnZ+MVAmWShUNEgjdndiUW4mcCY5JnB7JTlaWm40TTYqQVJQTVZNKnpIN3Il
bzlEQGd1QllXPn1xNgp6X0dQfXtpU2xlZlVDU21AX2p9JkN6OTw3KFppdVMrQU1KVm93Q1MwWWly
WVcmS31RdDl0NUNkOCYjKHV2cHR0aXkKejV3dWZtRSZUbldYfmdObD5LSn5wenZRMytOUHU8ey1q
UkA2X31BLXM5VVZaQ01pLUMmcXVxUEpIb2daWFYqWSlCCnpoYldPaS0tfDVlKiVROSllKVRtSHZf
cW9kZS00PWszPm5XV2BiUnJeKDlWOUR7cjhGcWtpUChpZEB4bDlRdzB7Xwp6IUt3bGxeSSF1KV9U
cz0rTEZXMHV0VjFXKyEzaFg8I1EmdFRwcjBgUTluQD00aSYxMCEhfmRhQ1ZAd2RCMnhWYDQKemhm
MFdzUWNNMnpkSjs2e25SRDB3Sk53Jjdse2MlVjh1ejZIRmAqek1MZGQ/ODZDblRkaTFlWVVFbmJS
JHtoazFNCno1OHc7XiRiR3EmYDJzIWteKHkjZTA3Z21pYHhqaktmVjhUYFNtcFBSZFcoUWg0anl6
Y05CZHN4ITgkdEZBX3IjVgp6eihWZXlIM3o1MiEyeDtUTD54Rjt8OVl0aEtJRE8pe1hZI01ifnV+
Z3hEZCZlKUBsXnNQZW5vRmNIViE/ZzhtUDkKQ3FKP0p3CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEK
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9yZWdpb25zL3RvcC1v
dmVyZmxvdy1vdXQtb2Ytc2Vjb25kLXJlZ2lvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvZmFzdC9yZWdpb25zL3RvcC1vdmVyZmxvdy1vdXQtb2Ytc2Vjb25kLXJlZ2lv
bi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2NjZDIzOTgzNzhmOTIxNTExNjBmZTJjMzJhZGY0
ZWEwZjE4NWYyOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9m
YXN0L3JlZ2lvbnMvdG9wLW92ZXJmbG93LW91dC1vZi1zZWNvbmQtcmVnaW9uLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDQ0IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVy
VmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDQxOAor
ICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NDE4CisgICAgUmVuZGVyQm9k
eSB7Qk9EWX0gYXQgKDgsMTYpIHNpemUgNzg0eDM5NAorICAgICAgUmVuZGVyQmxvY2sge1B9IGF0
ICgwLDApIHNpemUgNzg0eDcyCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBz
aXplIDc3OXg3MgorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDc3NTogIkluIHRo
ZSB0ZXN0IGNhc2UgYmVsb3csIHRoZSBncmVlbiBibG9jaydzIHdpZHRoIHNob3VsZCBub3QgdmFy
eSBhbmQgc2hvdWxkIHVzZSB0aGUgc2Vjb25kIHJlZ2lvbiB0byBkZXRlcm1pbmUgaXRzIHdpZHRo
LiBJdCBpcyIKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxOCkgd2lkdGggNzMxOiAib3ZlcmZs
b3dpbmcgdXB3YXJkcyBvdXQgb2YgdGhlIGJsdWUgYmxvY2ssIGFuZCBzbyB0aGUgcG9ydGlvbiB0
aGF0IG92ZXJmbG93cyBzaG91bGQgY29udGludWUgdG8gdXNlIHRoZSBibHVlIGJsb2NrJ3MiCisg
ICAgICAgICAgdGV4dCBydW4gYXQgKDAsMzYpIHdpZHRoIDc3OTogImNvbnRhaW5pbmcgYmxvY2sg
d2lkdGguIFRoZSBibHVlIGJsb2NrIGRvZXMgbm90IGV4aXN0IGluIHJlZ2lvbiBvbmUsIHNvIHVz
aW5nIHNvbWUgaHlwb3RoZXRpY2FsIG1hZGUtdXAgd2lkdGggaXMgaW5jb3JyZWN0LiIKKyAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMCw1NCkgd2lkdGggNTY1OiAiVGhlIG92ZXJmbG93IHNob3VsZCBi
ZSBzcGlsbGluZyBvdXQgb2YgdGhlIHRvcCBvZiByZWdpb24gdHdvIGFuZCBiZSBwYWludGVkIGlu
IHJlZ2lvbiBvbmUuIgorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsODgpIHNpemUgNzg0
eDMwNgorbGF5ZXIgYXQgKDgsMTA0KSBzaXplIDMwMngxMDIKKyAgUmVuZGVyQmxvY2sge0RJVn0g
YXQgKDAsMCkgc2l6ZSAzMDJ4MTAyIFtib3JkZXI6ICgxcHggc29saWQgIzAwMDAwMCldCisgICAg
UmVuZGVyTmFtZWRGbG93RnJhZ21lbnQgYXQgKDEsMSkgc2l6ZSAzMDB4MTAwCitsYXllciBhdCAo
OCwyMDYpIHNpemUgNDAyeDIwMgorICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwxMDIpIHNpemUg
NDAyeDIwMiBbYm9yZGVyOiAoMXB4IHNvbGlkICMwMDAwMDApXQorICAgIFJlbmRlck5hbWVkRmxv
d0ZyYWdtZW50IGF0ICgxLDEpIHNpemUgNDAweDIwMAorbGF5ZXIgYXQgKDgsNDA4KSBzaXplIDJ4
MgorICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwzMDQpIHNpemUgMngyIFtib3JkZXI6ICgxcHgg
c29saWQgIzAwMDAwMCldCisgICAgUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQgYXQgKDEsMSkgc2l6
ZSAweDAKK05hbWVkIGZsb3dzCisgIE5hbWVkIGZsb3cgJ2Zsb3cxJworICAgIGxheWVyIGF0ICgw
LDApIHNpemUgNDAweDMwMAorICAgICAgUmVuZGVyTmFtZWRGbG93VGhyZWFkIGF0ICgwLDApIHNp
emUgNDAweDMwMAorICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDQwMHgx
NzcKKyAgICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoNSwxMDApIHNpemUgMzkweDcyIFti
b3JkZXI6ICgxcHggc29saWQgIzAwMDBGRildCisgICAgICAgICAgICBSZW5kZXJCbG9jayB7RElW
fSBhdCAoNDgsLTk5KSBzaXplIDI5M3gxNzAgW2JvcmRlcjogKDFweCBzb2xpZCAjMDA4MDAwKV0K
KyAgICAgICAgICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgxLDE3KSBzaXplIDI5MXg1NAorICAg
ICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI5MXg1NAorICAg
ICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjkxOiAiVGhlc2UgbGluZXMg
c2hvdWxkIGFsbCBmaXQgdG8gdGhlIHdpZHRoIG9mIHRoZSIKKyAgICAgICAgICAgICAgICAgIHRl
eHQgcnVuIGF0ICgwLDE4KSB3aWR0aCAyOTE6ICJibG9jayBpbiB0aGUgc2Vjb25kIHJlZ2lvbiBh
bmQgc3BpbGwgb3V0IG9mIHRoZSIKKyAgICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDM2
KSB3aWR0aCAxMTI6ICJ0b3Agb2YgdGhlIHNlY29uZCAiCisgICAgICAgICAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMTEyLDM2KSB3aWR0aCA0NDogInJlZ2lvbi4iCisgICAgICAgICAgICAgIFJlbmRl
ckJsb2NrIHtQfSBhdCAoMSw5OSkgc2l6ZSAyOTF4NTQKKyAgICAgICAgICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyOTF4NTQKKyAgICAgICAgICAgICAgICAgIHRleHQg
cnVuIGF0ICgwLDApIHdpZHRoIDI5MTogIlRoZXNlIGxpbmVzIHNob3VsZCBhbGwgZml0IHRvIHRo
ZSB3aWR0aCBvZiB0aGUiCisgICAgICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxOCkgd2lk
dGggMjkxOiAiYmxvY2sgaW4gdGhlIHNlY29uZCByZWdpb24gYW5kIHNwaWxsIG91dCBvZiB0aGUi
CisgICAgICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwzNikgd2lkdGggMTEyOiAidG9wIG9m
IHRoZSBzZWNvbmQgIgorICAgICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDExMiwzNikgd2lk
dGggNDQ6ICJyZWdpb24uIgorICAgIFJlZ2lvbnMgZm9yIG5hbWVkIGZsb3cgJ2Zsb3cxJworICAg
ICAgUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQgKGFub255bW91cyBjaGlsZCBvZiB7RElWfSAjcmVn
aW9uMSkKKyAgICAgIFJlbmRlck5hbWVkRmxvd0ZyYWdtZW50IChhbm9ueW1vdXMgY2hpbGQgb2Yg
e0RJVn0gI3JlZ2lvbjIpCisgICAgICBSZW5kZXJOYW1lZEZsb3dGcmFnbWVudCAoYW5vbnltb3Vz
IGNoaWxkIG9mIHtESVZ9ICNyZWdpb24zKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217296</attachid>
            <date>2013-11-19 06:56:59 -0800</date>
            <delta_ts>2013-11-19 06:56:59 -0800</delta_ts>
            <desc>WIP, the simplest patch that breaks GTK/EFL</desc>
            <filename>simple.patch</filename>
            <type>text/plain</type>
            <size>42939</size>
            <attacher name="Radu Stavila">stavila</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5kZXggN2Q0YmNiYS4uYmNiYmIz
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTIwMjMsNiArMjAy
MywxNCBAQCBMYXlvdXRSZWN0IFJlbmRlckJveDo6Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFp
bnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdAogICAgIHJldHVybiByOwogfQogCitMYXlv
dXRSZWN0IFJlbmRlckJveDo6dmlzdWFsT3ZlcmZsb3dSZWN0SW5SZWdpb24oY29uc3QgUmVuZGVy
UmVnaW9uKiByZWdpb24pCit7CisgICAgTGF5b3V0UmVjdCB2aXN1YWxPdmVyZmxvdyA9IHZpc3Vh
bE92ZXJmbG93UmVjdCgpOworICAgIExheW91dFJlY3QgdmlzdWFsT3ZlcmZsb3dJblJlZ2lvbiA9
IHJlZ2lvbi0+cmVjdEZsb3dQb3J0aW9uRm9yQm94KHRoaXMsIHZpc3VhbE92ZXJmbG93KTsKKwor
ICAgIHJldHVybiB2aXN1YWxPdmVyZmxvd0luUmVnaW9uOworfQorCiB2b2lkIFJlbmRlckJveDo6
Y29tcHV0ZVJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFp
bnRDb250YWluZXIsIExheW91dFJlY3QmIHJlY3QsIGJvb2wgZml4ZWQpIGNvbnN0CiB7CiAgICAg
Ly8gVGhlIHJlY3Qgd2UgY29tcHV0ZSBhdCBlYWNoIHN0ZXAgaXMgc2hpZnRlZCBieSBvdXIgeC95
IG9mZnNldCBpbiB0aGUgcGFyZW50IGNvbnRhaW5lcidzIGNvb3JkaW5hdGUgc3BhY2UuCkBAIC0y
MDY2LDYgKzIwNzQsMTQgQEAgdm9pZCBSZW5kZXJCb3g6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChj
b25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGEKICAgICBpZiAoIW8pCiAg
ICAgICAgIHJldHVybjsKIAorICAgIGlmIChvLT5pc1JlbmRlckZsb3dUaHJlYWQoKSkgeworICAg
ICAgICBSZW5kZXJSZWdpb24qIGZpcnN0UmVnaW9uID0gMDsKKyAgICAgICAgUmVuZGVyUmVnaW9u
KiBsYXN0UmVnaW9uID0gMDsKKyAgICAgICAgdG9SZW5kZXJGbG93VGhyZWFkKG8pLT5nZXRCb3hS
ZWdpb25SYW5nZUZvck92ZXJmbG93KHRoaXMsIGZpcnN0UmVnaW9uLCBsYXN0UmVnaW9uKTsKKyAg
ICAgICAgaWYgKGZpcnN0UmVnaW9uKQorICAgICAgICAgICAgcmVjdC5tb3ZlQnkoZmlyc3RSZWdp
b24tPmZsb3dUaHJlYWRQb3J0aW9uUmVjdCgpLmxvY2F0aW9uKCkpOworICAgIH0KKwogICAgIGlm
IChpc1dyaXRpbmdNb2RlUm9vdCgpICYmICFpc091dE9mRmxvd1Bvc2l0aW9uZWQoKSkKICAgICAg
ICAgZmxpcEZvcldyaXRpbmdNb2RlKHJlY3QpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94LmgKaW5kZXggYWFlMDk4Yi4uZjQ0MzhkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3guaApAQCAtMTg5LDYgKzE4OSw4IEBAIHB1YmxpYzoKICAgICBMYXlvdXRVbml0IGxvZ2lj
YWxMZWZ0VmlzdWFsT3ZlcmZsb3coKSBjb25zdCB7IHJldHVybiBzdHlsZSgpLmlzSG9yaXpvbnRh
bFdyaXRpbmdNb2RlKCkgPyB2aXN1YWxPdmVyZmxvd1JlY3QoKS54KCkgOiB2aXN1YWxPdmVyZmxv
d1JlY3QoKS55KCk7IH0KICAgICBMYXlvdXRVbml0IGxvZ2ljYWxSaWdodFZpc3VhbE92ZXJmbG93
KCkgY29uc3QgeyByZXR1cm4gc3R5bGUoKS5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gdmlz
dWFsT3ZlcmZsb3dSZWN0KCkubWF4WCgpIDogdmlzdWFsT3ZlcmZsb3dSZWN0KCkubWF4WSgpOyB9
CiAKKyAgICBMYXlvdXRSZWN0IHZpc3VhbE92ZXJmbG93UmVjdEluUmVnaW9uKGNvbnN0IFJlbmRl
clJlZ2lvbiopOworCiAgICAgTGF5b3V0UmVjdCBvdmVyZmxvd1JlY3RGb3JQYWludFJlamVjdGlv
bigpIGNvbnN0OwogICAgIAogICAgIHZvaWQgYWRkTGF5b3V0T3ZlcmZsb3coY29uc3QgTGF5b3V0
UmVjdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dU
aHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3Bw
CmluZGV4IGNiYjhmMTYuLjJlYzQ3MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRmxvd1RocmVhZC5jcHAKQEAgLTQwOCw1NyArNDA4LDcgQEAgTGF5b3V0UmVjdCBSZW5k
ZXJGbG93VGhyZWFkOjpjb21wdXRlUmVnaW9uQ2xpcHBpbmdSZWN0KGNvbnN0IExheW91dFBvaW50
JiBvZmZzZXQKICAgICByZXR1cm4gcmVnaW9uQ2xpcHBpbmdSZWN0OwogfQogCi12b2lkIFJlbmRl
ckZsb3dUaHJlYWQ6OnBhaW50Rmxvd1RocmVhZFBvcnRpb25JblJlZ2lvbihQYWludEluZm8mIHBh
aW50SW5mbywgUmVuZGVyUmVnaW9uKiByZWdpb24sIGNvbnN0IExheW91dFJlY3QmIGZsb3dUaHJl
YWRQb3J0aW9uUmVjdCwgY29uc3QgTGF5b3V0UmVjdCYgZmxvd1RocmVhZFBvcnRpb25PdmVyZmxv
d1JlY3QsIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkgY29uc3QKLXsKLSAgICBHcmFw
aGljc0NvbnRleHQqIGNvbnRleHQgPSBwYWludEluZm8uY29udGV4dDsKLSAgICBpZiAoIWNvbnRl
eHQpCi0gICAgICAgIHJldHVybjsKLQotICAgIC8vIFJlbmRlckZsb3dUaHJlYWQgc2hvdWxkIHN0
YXJ0IHBhaW50aW5nIGl0cyBjb250ZW50IGluIGEgcG9zaXRpb24gdGhhdCBpcyBvZmZzZXQKLSAg
ICAvLyBmcm9tIHRoZSByZWdpb24gcmVjdCdzIGN1cnJlbnQgcG9zaXRpb24uIFRoZSBhbW91bnQg
b2Ygb2Zmc2V0IGlzIGVxdWFsIHRvIHRoZSBsb2NhdGlvbiBvZgotICAgIC8vIHRoZSBmbG93IHRo
cmVhZCBwb3J0aW9uIGluIHRoZSBmbG93IHRocmVhZCdzIGxvY2FsIGNvb3JkaW5hdGVzLgotICAg
IC8vIE5vdGUgdGhhdCB3ZSBoYXZlIHRvIHBpeGVsIHNuYXAgdGhlIGxvY2F0aW9uIGF0IHdoaWNo
IHdlJ3JlIGdvaW5nIHRvIHBhaW50LCBzaW5jZSB0aGlzIGlzIG5lY2Vzc2FyeQotICAgIC8vIHRv
IG1pbmltaXplIHRoZSBhbW91bnQgb2YgaW5jb3JyZWN0IHNuYXBwaW5nIHRoYXQgd291bGQgb3Ro
ZXJ3aXNlIG9jY3VyLgotICAgIC8vIElmIHdlIHRyaWVkIHRvIHBhaW50IGJ5IGFwcGx5aW5nIGEg
bm9uLWludGVncmFsIHRyYW5zbGF0aW9uLCB0aGVuIGFsbCB0aGUKLSAgICAvLyBsYXlvdXQgY29k
ZSB0aGF0IGF0dGVtcHRlZCB0byBwaXhlbCBzbmFwIHdvdWxkIGJlIGluY29ycmVjdC4KLSAgICBJ
bnRQb2ludCBhZGp1c3RlZFBhaW50T2Zmc2V0OwotICAgIExheW91dFBvaW50IHBvcnRpb25Mb2Nh
dGlvbjsKLSAgICBpZiAoc3R5bGUoKS5pc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSgpKSB7Ci0g
ICAgICAgIExheW91dFJlY3QgZmxpcHBlZEZsb3dUaHJlYWRQb3J0aW9uUmVjdChmbG93VGhyZWFk
UG9ydGlvblJlY3QpOwotICAgICAgICBmbGlwRm9yV3JpdGluZ01vZGUoZmxpcHBlZEZsb3dUaHJl
YWRQb3J0aW9uUmVjdCk7Ci0gICAgICAgIHBvcnRpb25Mb2NhdGlvbiA9IGZsaXBwZWRGbG93VGhy
ZWFkUG9ydGlvblJlY3QubG9jYXRpb24oKTsKLSAgICB9IGVsc2UKLSAgICAgICAgcG9ydGlvbkxv
Y2F0aW9uID0gZmxvd1RocmVhZFBvcnRpb25SZWN0LmxvY2F0aW9uKCk7Ci0gICAgYWRqdXN0ZWRQ
YWludE9mZnNldCA9IHJvdW5kZWRJbnRQb2ludChwYWludE9mZnNldCAtIHBvcnRpb25Mb2NhdGlv
bik7Ci0KLSAgICAvLyBUaGUgY2xpcHBpbmcgcmVjdCBmb3IgdGhlIHJlZ2lvbiBpcyBzZXQgdXAg
YnkgYXNzdW1pbmcgdGhlIGZsb3dUaHJlYWRQb3J0aW9uUmVjdCBpcyBnb2luZyB0byBwYWludCBv
ZmZzZXQgZnJvbSBhZGp1c3RlZFBhaW50T2Zmc2V0LgotICAgIC8vIFJlbWVtYmVyIHRoYXQgd2Ug
cGl4ZWwgc25hcHBlZCBhbmQgbW92ZWQgdGhlIHBhaW50T2Zmc2V0IGFuZCBzdG9yZWQgdGhlIHNu
YXBwZWQgcmVzdWx0IGluIGFkanVzdGVkUGFpbnRPZmZzZXQuIE5vdyB3ZSBhZGQgYmFjayBpbgot
ICAgIC8vIHRoZSBmbG93VGhyZWFkUG9ydGlvblJlY3QncyBsb2NhdGlvbiB0byBnZXQgdGhlIHNw
b3Qgd2hlcmUgd2UgZXhwZWN0IHRoZSBwb3J0aW9uIHRvIGFjdHVhbGx5IHBhaW50LiBUaGlzIGNh
biBiZSBub24taW50ZWdyYWwgYW5kCi0gICAgLy8gdGhhdCdzIG9rLiBXZSB0aGVuIHBpeGVsIHNu
YXAgdGhlIHJlc3VsdGluZyBjbGlwcGluZyByZWN0IHRvIGFjY291bnQgZm9yIHNuYXBwaW5nIHRo
YXQgd2lsbCBvY2N1ciB3aGVuIHRoZSBmbG93IHRocmVhZCBwYWludHMuCi0gICAgSW50UmVjdCBy
ZWdpb25DbGlwcGluZ1JlY3QgPSBwaXhlbFNuYXBwZWRJbnRSZWN0KGNvbXB1dGVSZWdpb25DbGlw
cGluZ1JlY3QoYWRqdXN0ZWRQYWludE9mZnNldCArIHBvcnRpb25Mb2NhdGlvbiwgZmxvd1RocmVh
ZFBvcnRpb25SZWN0LCBmbG93VGhyZWFkUG9ydGlvbk92ZXJmbG93UmVjdCkpOwotCi0gICAgUGFp
bnRJbmZvIGluZm8ocGFpbnRJbmZvKTsKLSAgICBpbmZvLnJlY3QuaW50ZXJzZWN0KHJlZ2lvbkNs
aXBwaW5nUmVjdCk7Ci0KLSAgICBpZiAoIWluZm8ucmVjdC5pc0VtcHR5KCkpIHsKLSAgICAgICAg
Y29udGV4dC0+c2F2ZSgpOwogCi0gICAgICAgIGNvbnRleHQtPmNsaXAocmVnaW9uQ2xpcHBpbmdS
ZWN0KTsKLQotICAgICAgICBjb250ZXh0LT50cmFuc2xhdGUoYWRqdXN0ZWRQYWludE9mZnNldC54
KCksIGFkanVzdGVkUGFpbnRPZmZzZXQueSgpKTsKLSAgICAgICAgaW5mby5yZWN0Lm1vdmVCeSgt
YWRqdXN0ZWRQYWludE9mZnNldCk7Ci0gICAgICAgIAotICAgICAgICBQYWludEJlaGF2aW9yIHBh
aW50QmVoYXZpb3IgPSAwOwotICAgICAgICBpZiAoaW5mby5waGFzZSA9PSBQYWludFBoYXNlVGV4
dENsaXApCi0gICAgICAgICAgICBwYWludEJlaGF2aW9yIHw9IFBhaW50QmVoYXZpb3JGb3JjZUJs
YWNrVGV4dDsKLSAgICAgICAgZWxzZSBpZiAoaW5mby5waGFzZSA9PSBQYWludFBoYXNlU2VsZWN0
aW9uKQotICAgICAgICAgICAgcGFpbnRCZWhhdmlvciB8PSBQYWludEJlaGF2aW9yU2VsZWN0aW9u
T25seTsKLQotICAgICAgICBsYXllcigpLT5wYWludChjb250ZXh0LCBpbmZvLnJlY3QsIHBhaW50
QmVoYXZpb3IsIDAsIHJlZ2lvbiwgUmVuZGVyTGF5ZXI6OlBhaW50TGF5ZXJUZW1wb3JhcnlDbGlw
UmVjdHMpOwotCi0gICAgICAgIGNvbnRleHQtPnJlc3RvcmUoKTsKLSAgICB9Ci19CiAKIGJvb2wg
UmVuZGVyRmxvd1RocmVhZDo6bm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVl
c3QsIEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlv
bkluQ29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRl
c3RBY3Rpb24gaGl0VGVzdEFjdGlvbikKIHsKQEAgLTQ2NywzOCArNDE3LDEwIEBAIGJvb2wgUmVu
ZGVyRmxvd1RocmVhZDo6bm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVlc3Qs
IEhpdFRlc3RSZXN1bHQmCiAgICAgcmV0dXJuIFJlbmRlckJsb2NrRmxvdzo6bm9kZUF0UG9pbnQo
cmVxdWVzdCwgcmVzdWx0LCBsb2NhdGlvbkluQ29udGFpbmVyLCBhY2N1bXVsYXRlZE9mZnNldCwg
aGl0VGVzdEFjdGlvbik7CiB9CiAKLWJvb2wgUmVuZGVyRmxvd1RocmVhZDo6aGl0VGVzdEZsb3dU
aHJlYWRQb3J0aW9uSW5SZWdpb24oUmVuZGVyUmVnaW9uKiByZWdpb24sIGNvbnN0IExheW91dFJl
Y3QmIGZsb3dUaHJlYWRQb3J0aW9uUmVjdCwgY29uc3QgTGF5b3V0UmVjdCYgZmxvd1RocmVhZFBv
cnRpb25PdmVyZmxvd1JlY3QsIGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiByZXF1ZXN0LCBIaXRUZXN0
UmVzdWx0JiByZXN1bHQsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5l
ciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0KSBjb25zdAotewotICAgIExh
eW91dFJlY3QgcmVnaW9uQ2xpcHBpbmdSZWN0ID0gY29tcHV0ZVJlZ2lvbkNsaXBwaW5nUmVjdChh
Y2N1bXVsYXRlZE9mZnNldCwgZmxvd1RocmVhZFBvcnRpb25SZWN0LCBmbG93VGhyZWFkUG9ydGlv
bk92ZXJmbG93UmVjdCk7Ci0gICAgaWYgKCFyZWdpb25DbGlwcGluZ1JlY3QuY29udGFpbnMobG9j
YXRpb25JbkNvbnRhaW5lci5wb2ludCgpKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAg
TGF5b3V0U2l6ZSByZW5kZXJGbG93VGhyZWFkT2Zmc2V0OwotICAgIGlmIChzdHlsZSgpLmlzRmxp
cHBlZEJsb2Nrc1dyaXRpbmdNb2RlKCkpIHsKLSAgICAgICAgTGF5b3V0UmVjdCBmbGlwcGVkRmxv
d1RocmVhZFBvcnRpb25SZWN0KGZsb3dUaHJlYWRQb3J0aW9uUmVjdCk7Ci0gICAgICAgIGZsaXBG
b3JXcml0aW5nTW9kZShmbGlwcGVkRmxvd1RocmVhZFBvcnRpb25SZWN0KTsKLSAgICAgICAgcmVu
ZGVyRmxvd1RocmVhZE9mZnNldCA9IGFjY3VtdWxhdGVkT2Zmc2V0IC0gZmxpcHBlZEZsb3dUaHJl
YWRQb3J0aW9uUmVjdC5sb2NhdGlvbigpOwotICAgIH0gZWxzZQotICAgICAgICByZW5kZXJGbG93
VGhyZWFkT2Zmc2V0ID0gYWNjdW11bGF0ZWRPZmZzZXQgLSBmbG93VGhyZWFkUG9ydGlvblJlY3Qu
bG9jYXRpb24oKTsKLQotICAgIC8vIEFsd2F5cyBpZ25vcmUgY2xpcHBpbmcsIHNpbmNlIHRoZSBS
ZW5kZXJGbG93VGhyZWFkIGhhcyBub3RoaW5nIHRvIGRvIHdpdGggdGhlIGJvdW5kcyBvZiB0aGUg
RnJhbWVWaWV3LgotICAgIEhpdFRlc3RSZXF1ZXN0IG5ld1JlcXVlc3QocmVxdWVzdC50eXBlKCkg
fCBIaXRUZXN0UmVxdWVzdDo6SWdub3JlQ2xpcHBpbmcgfCBIaXRUZXN0UmVxdWVzdDo6RGlzYWxs
b3dTaGFkb3dDb250ZW50KTsKLQotICAgIC8vIE1ha2UgYSBuZXcgdGVtcG9yYXJ5IEhpdFRlc3RM
b2NhdGlvbiBpbiB0aGUgbmV3IHJlZ2lvbi4KLSAgICBIaXRUZXN0TG9jYXRpb24gbmV3SGl0VGVz
dExvY2F0aW9uKGxvY2F0aW9uSW5Db250YWluZXIsIC1yZW5kZXJGbG93VGhyZWFkT2Zmc2V0LCBy
ZWdpb24pOwotCi0gICAgYm9vbCBpc1BvaW50SW5zaWRlRmxvd1RocmVhZCA9IGxheWVyKCktPmhp
dFRlc3QobmV3UmVxdWVzdCwgbmV3SGl0VGVzdExvY2F0aW9uLCByZXN1bHQpOwotCi0gICAgLy8g
RklYTUU6IFNob3VsZCB3ZSBzZXQgcmVzdWx0Lm1fbG9jYWxQb2ludCBiYWNrIHRvIHRoZSBSZW5k
ZXJSZWdpb24ncyBjb29yZGluYXRlIHNwYWNlIG9yIGxlYXZlIGl0IGluIHRoZSBSZW5kZXJGbG93
VGhyZWFkJ3MgY29vcmRpbmF0ZQotICAgIC8vIHNwYWNlPyBSaWdodCBub3cgaXQncyBzdGF5aW5n
IGluIHRoZSBSZW5kZXJGbG93VGhyZWFkJ3MgY29vcmRpbmF0ZSBzcGFjZSwgd2hpY2ggbWF5IGVu
ZCB1cCBiZWluZyBvay4gV2Ugd2lsbCBrbm93IG1vcmUgd2hlbiB3ZSBnZXQgYXJvdW5kIHRvCi0g
ICAgLy8gcGF0Y2hpbmcgcG9zaXRpb25Gb3JQb2ludC4KLSAgICByZXR1cm4gaXNQb2ludEluc2lk
ZUZsb3dUaHJlYWQ7Ci19Ci0KIGJvb2wgUmVuZGVyRmxvd1RocmVhZDo6c2hvdWxkUmVwYWludChj
b25zdCBMYXlvdXRSZWN0JiByKSBjb25zdAogewogICAgIGlmICh2aWV3KCkucHJpbnRpbmcoKSB8
fCByLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworCXJldHVybiBmYWxzZTsKIAog
ICAgIHJldHVybiB0cnVlOwogfQpAQCAtNTIxLDYgKzQ0MywxMiBAQCB2b2lkIFJlbmRlckZsb3dU
aHJlYWQ6OnJlcGFpbnRSZWN0YW5nbGVJblJlZ2lvbnMoY29uc3QgTGF5b3V0UmVjdCYgcmVwYWlu
dFJlY3QsCiAgICAgfQogfQogCit2b2lkIFJlbmRlckZsb3dUaHJlYWQ6OmdldEJveFJlZ2lvblJh
bmdlRm9yT3ZlcmZsb3coY29uc3QgUmVuZGVyQm94KiBib3gsIFJlbmRlclJlZ2lvbiomIHN0YXJ0
UmVnaW9uLCBSZW5kZXJSZWdpb24qJiBlbmRSZWdpb24pIGNvbnN0Cit7CisgICAgLy8gQWxsIHRo
ZSBib3hlcyBoYXZlIHJhbmdlcyBub3cuIFVzZSB0aGVtLgorICAgIGdldFJlZ2lvblJhbmdlRm9y
Qm94KGJveCwgc3RhcnRSZWdpb24sIGVuZFJlZ2lvbik7Cit9CisKIFJlbmRlclJlZ2lvbiogUmVu
ZGVyRmxvd1RocmVhZDo6cmVnaW9uQXRCbG9ja09mZnNldChjb25zdCBSZW5kZXJCb3gqIGNsYW1w
Qm94LCBMYXlvdXRVbml0IG9mZnNldCwgYm9vbCBleHRlbmRMYXN0UmVnaW9uLCBSZWdpb25BdXRv
R2VuZXJhdGlvblBvbGljeSBhdXRvR2VuZXJhdGlvblBvbGljeSkKIHsKICAgICBBU1NFUlQoIW1f
cmVnaW9uc0ludmFsaWRhdGVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJGbG93VGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxv
d1RocmVhZC5oCmluZGV4IDU2Y2IyZTYuLjkxNWE1YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaApAQCAtODMsOCArODMsNiBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIHVwZGF0ZUxvZ2ljYWxXaWR0aCgpIE9WRVJSSURFIEZJTkFMOwogICAgIHZp
cnR1YWwgdm9pZCBjb21wdXRlTG9naWNhbEhlaWdodChMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQs
IExheW91dFVuaXQgbG9naWNhbFRvcCwgTG9naWNhbEV4dGVudENvbXB1dGVkVmFsdWVzJikgY29u
c3QgT1ZFUlJJREU7CiAKLSAgICB2b2lkIHBhaW50Rmxvd1RocmVhZFBvcnRpb25JblJlZ2lvbihQ
YWludEluZm8mLCBSZW5kZXJSZWdpb24qLCBjb25zdCBMYXlvdXRSZWN0JiBmbG93VGhyZWFkUG9y
dGlvblJlY3QsIGNvbnN0IExheW91dFJlY3QmIGZsb3dUaHJlYWRQb3J0aW9uT3ZlcmZsb3dSZWN0
LCBjb25zdCBMYXlvdXRQb2ludCYpIGNvbnN0OwotICAgIGJvb2wgaGl0VGVzdEZsb3dUaHJlYWRQ
b3J0aW9uSW5SZWdpb24oUmVuZGVyUmVnaW9uKiwgY29uc3QgTGF5b3V0UmVjdCYgZmxvd1RocmVh
ZFBvcnRpb25SZWN0LCBjb25zdCBMYXlvdXRSZWN0JiBmbG93VGhyZWFkUG9ydGlvbk92ZXJmbG93
UmVjdCwgY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVz
dExvY2F0aW9uJiBsb2NhdGlvbkluQ29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11
bGF0ZWRPZmZzZXQpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBub2RlQXRQb2ludChjb25zdCBI
aXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxv
Y2F0aW9uSW5Db250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwg
SGl0VGVzdEFjdGlvbikgT1ZFUlJJREU7CiAKICAgICBib29sIGhhc1JlZ2lvbnMoKSBjb25zdCB7
IHJldHVybiBtX3JlZ2lvbkxpc3Quc2l6ZSgpOyB9CkBAIC0yMDUsNiArMjAzLDcgQEAgcHVibGlj
OgogICAgIExheW91dFVuaXQgb2Zmc2V0RnJvbUxvZ2ljYWxUb3BPZkZpcnN0UmVnaW9uKGNvbnN0
IFJlbmRlckJsb2NrKikgY29uc3Q7CiAgICAgdm9pZCBjbGVhclJlbmRlckJveFJlZ2lvbkluZm9B
bmRDdXN0b21TdHlsZShjb25zdCBSZW5kZXJCb3gqLCBjb25zdCBSZW5kZXJSZWdpb24qLCBjb25z
dCBSZW5kZXJSZWdpb24qLCBjb25zdCBSZW5kZXJSZWdpb24qLCBjb25zdCBSZW5kZXJSZWdpb24q
KTsKIAorICAgIHZvaWQgZ2V0Qm94UmVnaW9uUmFuZ2VGb3JPdmVyZmxvdyhjb25zdCBSZW5kZXJC
b3gqLCBSZW5kZXJSZWdpb24qJiwgUmVuZGVyUmVnaW9uKiYpIGNvbnN0OwogICAgIExheW91dFJl
Y3QgbWFwRnJvbUZsb3dUaHJlYWRUb0xvY2FsKGNvbnN0IFJlbmRlckJveCosIGNvbnN0IExheW91
dFJlY3QmKSBjb25zdDsKICAgICBMYXlvdXRSZWN0IG1hcEZyb21Mb2NhbFRvRmxvd1RocmVhZChj
b25zdCBSZW5kZXJCb3gqLCBjb25zdCBMYXlvdXRSZWN0JikgY29uc3Q7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDk2MzI0YzcuLjRlYmM2NjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtNDQyLDEyICs0NDIsMjgg
QEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlTGF5ZXJQb3NpdGlvbnMoUmVuZGVyR2VvbWV0cnlN
YXAqIGdlb21ldHJ5TWFwLCBVcGRhdGVMYXkKICAgICAgICAgLy8gYXMgdGhlIHZhbHVlIG5vdCB1
c2luZyB0aGUgY2FjaGVkIG9mZnNldCwgYnV0IHdlIGNhbid0IGR1ZSB0byBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzcwNDgKICAgICAgICAgaWYgKGZsYWdzICYgQ2hl
Y2tGb3JSZXBhaW50KSB7CiAgICAgICAgICAgICBpZiAoIXJlbmRlcmVyKCkudmlldygpLnByaW50
aW5nKCkpIHsKKwkJYm9vbCByZXBhaW50UmVnaW9uID0gZmFsc2U7CiAgICAgICAgICAgICAgICAg
aWYgKG1fcmVwYWludFN0YXR1cyAmIE5lZWRzRnVsbFJlcGFpbnQpIHsKICAgICAgICAgICAgICAg
ICAgICAgcmVuZGVyZXIoKS5yZXBhaW50VXNpbmdDb250YWluZXIocmVwYWludENvbnRhaW5lciwg
cGl4ZWxTbmFwcGVkSW50UmVjdChvbGRSZXBhaW50UmVjdCkpOwotICAgICAgICAgICAgICAgICAg
ICBpZiAobV9yZXBhaW50UmVjdCAhPSBvbGRSZXBhaW50UmVjdCkKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKG1fcmVwYWludFJlY3QgIT0gb2xkUmVwYWludFJlY3QpIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlbmRlcmVyKCkucmVwYWludFVzaW5nQ29udGFpbmVyKHJlcGFpbnRDb250YWlu
ZXIsIHBpeGVsU25hcHBlZEludFJlY3QobV9yZXBhaW50UmVjdCkpOwotICAgICAgICAgICAgICAg
IH0gZWxzZSBpZiAoc2hvdWxkUmVwYWludEFmdGVyTGF5b3V0KCkpCisJCQlpZiAocmVuZGVyZXIo
KS5pc1JlbmRlclJlZ2lvbigpKQorCQkJCXJlcGFpbnRSZWdpb24gPSB0cnVlOworCQkgICAgfQor
ICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc2hvdWxkUmVwYWludEFmdGVyTGF5b3V0KCkpIHsK
ICAgICAgICAgICAgICAgICAgICAgcmVuZGVyZXIoKS5yZXBhaW50QWZ0ZXJMYXlvdXRJZk5lZWRl
ZChyZXBhaW50Q29udGFpbmVyLCBvbGRSZXBhaW50UmVjdCwgb2xkT3V0bGluZUJveCwgJm1fcmVw
YWludFJlY3QsICZtX291dGxpbmVCb3gpOworCisgCQkgICAgaWYgKHJlbmRlcmVyKCkuaXNSZW5k
ZXJSZWdpb24oKSkKKwkJCXJlcGFpbnRSZWdpb24gPSB0cnVlOworICAgICAgICAgICAgICAgIH0K
KworCQkvLyBJZiB3ZSBqdXN0IHJlcGFpbnRlZCBhIHJlZ2lvbiwgd2UgbXVzdCBhbHNvIHJlcGFp
bnQgdGhlIGZsb3cgdGhyZWFkIHNpbmNlIGl0IGlzIHRoZSBvbmUKKyAgICAgICAgICAgICAgICAv
LyBkb2luZyB0aGUgYWN0dWFsIHBhaW50aW5nIG9mIHRoZSBmbG93ZWQgY29udGVudC4KKyAgICAg
ICAgICAgICAgICBpZiAocmVwYWludFJlZ2lvbikgeworICAgICAgICAgICAgICAgICAgICBSZW5k
ZXJSZWdpb24qIHJlZ2lvbiA9IHRvUmVuZGVyUmVnaW9uKCZyZW5kZXJlcigpKTsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKHJlZ2lvbi0+Zmxvd1RocmVhZCgpKQorICAgICAgICAgICAgICAgICAg
ICAgICAgcmVnaW9uLT5mbG93VGhyZWFkKCktPmxheWVyKCktPnJlcGFpbnRJbmNsdWRpbmdEZXNj
ZW5kYW50cygpOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQog
ICAgIH0gZWxzZQpAQCAtMTYzOCw2ICsxNjU0LDIzIEBAIHN0YXRpYyB2b2lkIGV4cGFuZENsaXBS
ZWN0Rm9yRGVzY2VuZGFudHNBbmRSZWZsZWN0aW9uKExheW91dFJlY3QmIGNsaXBSZWN0LCBjb25z
CiAgICAgICAgIH0KICAgICB9CiAKKyAgICAvLyBJZiB0aGlzIGlzIGEgcmVnaW9uLCB0aGVuIHRo
ZSBwYWludGluZyBpcyBhY3R1YWxseSBkb25lIGJ5IGl0cyBmbG93IHRocmVhZCdzIGxheWVyLgor
ICAgIGlmIChsYXllci0+cmVuZGVyZXIoKS5pc1JlbmRlclJlZ2lvbigpKSB7CisgICAgICAgIFJl
bmRlclJlZ2lvbiogcmVnaW9uID0gdG9SZW5kZXJSZWdpb24oJmxheWVyLT5yZW5kZXJlcigpKTsK
KyAgICAgICAgUmVuZGVyTGF5ZXIqIGZsb3dUaHJlYWRMYXllciA9IHJlZ2lvbi0+Zmxvd1RocmVh
ZCgpLT5sYXllcigpOworICAgICAgICBpZiAoIWxheWVyLT5yZWZsZWN0aW9uKCkgfHwgbGF5ZXIt
PnJlZmxlY3Rpb25MYXllcigpICE9IGZsb3dUaHJlYWRMYXllcikgeworICAgICAgICAgICAgTGF5
b3V0UmVjdCBmbG93VGhyZWFkQ2xpcFJlY3QgPSB0cmFuc3BhcmVuY3lDbGlwQm94KGZsb3dUaHJl
YWRMYXllciwgcm9vdExheWVyLCB0cmFuc3BhcmVuY3lCZWhhdmlvciwgRGVzY2VuZGFudHNPZlRy
YW5zcGFyZW5jeUNsaXBCb3gsIHBhaW50QmVoYXZpb3IpOworICAgICAgICAgICAgCisgICAgICAg
ICAgICBMYXlvdXRQb2ludCBvZmZzZXRGcm9tUm9vdDsKKyAgICAgICAgICAgIGxheWVyLT5jb252
ZXJ0VG9MYXllckNvb3JkcyhmbG93VGhyZWFkTGF5ZXIsIG9mZnNldEZyb21Sb290KTsKKworICAg
ICAgICAgICAgTGF5b3V0U2l6ZSBtb3ZlT2Zmc2V0ID0gKG9mZnNldEZyb21Sb290ICsgcmVnaW9u
LT5jb250ZW50Qm94UmVjdCgpLmxvY2F0aW9uKCkpIC0gcmVnaW9uLT5mbG93VGhyZWFkUG9ydGlv
blJlY3QoKS5sb2NhdGlvbigpOworICAgICAgICAgICAgZmxvd1RocmVhZENsaXBSZWN0Lm1vdmUo
bW92ZU9mZnNldCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNsaXBSZWN0LnVuaXRlKGZs
b3dUaHJlYWRDbGlwUmVjdCk7CisgICAgICAgIH0KKyAgICB9CisKICAgICAvLyBJZiB3ZSBoYXZl
IGEgcmVmbGVjdGlvbiwgdGhlbiB3ZSBuZWVkIHRvIGFjY291bnQgZm9yIHRoYXQgd2hlbiB3ZSBw
dXNoIHRoZSBjbGlwLiAgUmVmbGVjdCBvdXIgZW50aXJlCiAgICAgLy8gY3VycmVudCB0cmFuc3Bh
cmVuY3lDbGlwQm94IHRvIGNhdGNoIGFsbCBjaGlsZCBsYXllcnMuCiAgICAgLy8gRklYTUU6IEFj
Y2VsZXJhdGVkIGNvbXBvc2l0aW5nIHdpbGwgZXZlbnR1YWxseSB3YW50IHRvIGRvIHNvbWV0aGlu
ZyBzbWFydCBoZXJlIHRvIGF2b2lkIGluY29ycG9yYXRpbmcgdGhpcwpAQCAtMzkxMywxMSArMzk0
NiwxMiBAQCB2b2lkIFJlbmRlckxheWVyOjpwYWludExheWVyQ29udGVudHMoR3JhcGhpY3NDb250
ZXh0KiBjb250ZXh0LCBjb25zdCBMYXllclBhaW50aQogICAgICAgICBwYWludEJlaGF2aW9yIHw9
IFBhaW50QmVoYXZpb3JSb290QmFja2dyb3VuZE9ubHk7CiAKICAgICBMYXllckZyYWdtZW50cyBs
YXllckZyYWdtZW50czsKKyAgICBMYXlvdXRSZWN0IHBhaW50RGlydHlSZWN0ID0gbG9jYWxQYWlu
dGluZ0luZm8ucGFpbnREaXJ0eVJlY3Q7CiAgICAgaWYgKHNob3VsZFBhaW50Q29udGVudCB8fCBz
aG91bGRQYWludE91dGxpbmUgfHwgaXNQYWludGluZ092ZXJsYXlTY3JvbGxiYXJzKSB7CiAgICAg
ICAgIC8vIENvbGxlY3QgdGhlIGZyYWdtZW50cy4gVGhpcyB3aWxsIGNvbXB1dGUgdGhlIGNsaXAg
cmVjdGFuZ2xlcyBhbmQgcGFpbnQgb2Zmc2V0cyBmb3IgZWFjaCBsYXllciBmcmFnbWVudCwgYXMg
d2VsbCBhcyB3aGV0aGVyIG9yIG5vdCB0aGUgY29udGVudCBvZiBlYWNoCiAgICAgICAgIC8vIGZy
YWdtZW50IHNob3VsZCBwYWludC4gSWYgdGhlIHBhcmVudCdzIGZpbHRlciBkaWN0YXRlcyBmdWxs
IHJlcGFpbnQgdG8gZW5zdXJlIHByb3BlciBmaWx0ZXIgZWZmZWN0LAogICAgICAgICAvLyB1c2Ug
dGhlIG92ZXJmbG93IGNsaXAgYXMgZGlydHkgcmVjdCwgaW5zdGVhZCBvZiBubyBjbGlwcGluZy4g
SXQgbWFpbnRhaW5zIHByb3BlciBjbGlwcGluZyBmb3Igb3ZlcmZsb3c6OnNjcm9sbC4KLSAgICAg
ICAgTGF5b3V0UmVjdCBwYWludERpcnR5UmVjdCA9IGxvY2FsUGFpbnRpbmdJbmZvLnBhaW50RGly
dHlSZWN0OworICAgICAgICAKICAgICAgICAgaWYgKCFwYWludGluZ0luZm8uY2xpcFRvRGlydHlS
ZWN0ICYmIHJlbmRlcmVyKCkuaGFzT3ZlcmZsb3dDbGlwKCkpIHsKICAgICAgICAgICAgIC8vIFdl
IGNhbiB0dXJuIGNsaXBwaW5nIGJhY2sgYnkgcmVxdWVzdGluZyBmdWxsIHJlcGFpbnQgZm9yIHRo
ZSBvdmVyZmxvdyBhcmVhLgogICAgICAgICAgICAgbG9jYWxQYWludGluZ0luZm8uY2xpcFRvRGly
dHlSZWN0ID0gdHJ1ZTsKQEAgLTM5NTgsNiArMzk5MiwxOSBAQCB2b2lkIFJlbmRlckxheWVyOjpw
YWludExheWVyQ29udGVudHMoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBMYXllclBh
aW50aQogCiAgICAgICAgIC8vIFBhaW50IHRoZSBmaXhlZCBlbGVtZW50cyBmcm9tIGZsb3cgdGhy
ZWFkcwogICAgICAgICBwYWludEZpeGVkTGF5ZXJzSW5OYW1lZEZsb3dzKGNvbnRleHQsIGxvY2Fs
UGFpbnRpbmdJbmZvLCBsb2NhbFBhaW50RmxhZ3MpOworCisJaWYgKHJlbmRlcmVyKCkuaXNSZW5k
ZXJSZWdpb24oKSkgeworICAgICAgICAgICAgQ2xpcFJlY3QgcmVnaW9uQ2xpcFJlY3Q7CisgICAg
ICAgICAgICBpZiAobG9jYWxQYWludGluZ0luZm8ucm9vdExheWVyICE9IHRoaXMgJiYgcGFyZW50
KCkpIHsKKyAgICAgICAgICAgICAgICBDbGlwUmVjdHNDb250ZXh0IGNsaXBSZWN0c0NvbnRleHQo
bG9jYWxQYWludGluZ0luZm8ucm9vdExheWVyLCB0b1JlbmRlclJlZ2lvbigmcmVuZGVyZXIoKSks
CisgICAgICAgICAgICAgICAgICAgIChsb2NhbFBhaW50RmxhZ3MgJiBQYWludExheWVyVGVtcG9y
YXJ5Q2xpcFJlY3RzKSA/IFRlbXBvcmFyeUNsaXBSZWN0cyA6IFBhaW50aW5nQ2xpcFJlY3RzLAor
ICAgICAgICAgICAgICAgICAgICBJZ25vcmVPdmVybGF5U2Nyb2xsYmFyU2l6ZSwgKGlzUGFpbnRp
bmdPdmVyZmxvd0NvbnRlbnRzKSA/IElnbm9yZU92ZXJmbG93Q2xpcCA6IFJlc3BlY3RPdmVyZmxv
d0NsaXApOworICAgICAgICAgICAgICAgIHJlZ2lvbkNsaXBSZWN0ID0gYmFja2dyb3VuZENsaXBS
ZWN0KGNsaXBSZWN0c0NvbnRleHQpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAg
ICAgcmVnaW9uQ2xpcFJlY3QgPSBwYWludERpcnR5UmVjdDsKKworICAgICAgICAgICAgcGFpbnRG
bG93VGhyZWFkRm9yUmVnaW9uKGNvbnRleHQsIGxvY2FsUGFpbnRpbmdJbmZvLCBsb2NhbFBhaW50
RmxhZ3MsIG9mZnNldEZyb21Sb290LCByZWdpb25DbGlwUmVjdCk7CisgICAgICAgIH0KICAgICB9
CiAKICAgICBpZiAoaXNQYWludGluZ092ZXJsYXlTY3JvbGxiYXJzKQpAQCAtNDIwNiw4ICs0MjUz
LDkgQEAgdm9pZCBSZW5kZXJMYXllcjo6cGFpbnRGb3JlZ3JvdW5kRm9yRnJhZ21lbnRzKGNvbnN0
IExheWVyRnJhZ21lbnRzJiBsYXllckZyYWdtZW4KIAogICAgIC8vIE9wdGltaXplIGNsaXBwaW5n
IGZvciB0aGUgc2luZ2xlIGZyYWdtZW50IGNhc2UuCiAgICAgYm9vbCBzaG91bGRDbGlwID0gbG9j
YWxQYWludGluZ0luZm8uY2xpcFRvRGlydHlSZWN0ICYmIGxheWVyRnJhZ21lbnRzLnNpemUoKSA9
PSAxICYmIGxheWVyRnJhZ21lbnRzWzBdLnNob3VsZFBhaW50Q29udGVudCAmJiAhbGF5ZXJGcmFn
bWVudHNbMF0uZm9yZWdyb3VuZFJlY3QuaXNFbXB0eSgpOworICAgIENsaXBSZWN0IGNsaXBwZWRS
ZWN0ID0gbGF5ZXJGcmFnbWVudHNbMF0uZm9yZWdyb3VuZFJlY3Q7CiAgICAgaWYgKHNob3VsZENs
aXApCi0gICAgICAgIGNsaXBUb1JlY3QobG9jYWxQYWludGluZ0luZm8ucm9vdExheWVyLCBjb250
ZXh0LCBsb2NhbFBhaW50aW5nSW5mby5wYWludERpcnR5UmVjdCwgbGF5ZXJGcmFnbWVudHNbMF0u
Zm9yZWdyb3VuZFJlY3QpOworICAgICAgICBjbGlwVG9SZWN0KGxvY2FsUGFpbnRpbmdJbmZvLnJv
b3RMYXllciwgY29udGV4dCwgbG9jYWxQYWludGluZ0luZm8ucGFpbnREaXJ0eVJlY3QsIGNsaXBw
ZWRSZWN0KTsKICAgICAKICAgICAvLyBXZSBoYXZlIHRvIGxvb3AgdGhyb3VnaCBldmVyeSBmcmFn
bWVudCBtdWx0aXBsZSB0aW1lcywgc2luY2Ugd2UgaGF2ZSB0byByZXBhaW50IGluIGVhY2ggc3Bl
Y2lmaWMgcGhhc2UgaW4gb3JkZXIgZm9yCiAgICAgLy8gaW50ZXJsZWF2aW5nIG9mIHRoZSBmcmFn
bWVudHMgdG8gd29yayBwcm9wZXJseS4KQEAgLTQyMTcsMTEgKzQyNjUsMjMgQEAgdm9pZCBSZW5k
ZXJMYXllcjo6cGFpbnRGb3JlZ3JvdW5kRm9yRnJhZ21lbnRzKGNvbnN0IExheWVyRnJhZ21lbnRz
JiBsYXllckZyYWdtZW4KICAgICBpZiAoIXNlbGVjdGlvbk9ubHkpIHsKICAgICAgICAgcGFpbnRG
b3JlZ3JvdW5kRm9yRnJhZ21lbnRzV2l0aFBoYXNlKFBhaW50UGhhc2VGbG9hdCwgbGF5ZXJGcmFn
bWVudHMsIGNvbnRleHQsIGxvY2FsUGFpbnRpbmdJbmZvLCBsb2NhbFBhaW50QmVoYXZpb3IsIHN1
YnRyZWVQYWludFJvb3RGb3JSZW5kZXJlcik7CiAgICAgICAgIHBhaW50Rm9yZWdyb3VuZEZvckZy
YWdtZW50c1dpdGhQaGFzZShQYWludFBoYXNlRm9yZWdyb3VuZCwgbGF5ZXJGcmFnbWVudHMsIGNv
bnRleHQsIGxvY2FsUGFpbnRpbmdJbmZvLCBsb2NhbFBhaW50QmVoYXZpb3IsIHN1YnRyZWVQYWlu
dFJvb3RGb3JSZW5kZXJlcik7Ci0gICAgICAgIHBhaW50Rm9yZWdyb3VuZEZvckZyYWdtZW50c1dp
dGhQaGFzZShQYWludFBoYXNlQ2hpbGRPdXRsaW5lcywgbGF5ZXJGcmFnbWVudHMsIGNvbnRleHQs
IGxvY2FsUGFpbnRpbmdJbmZvLCBsb2NhbFBhaW50QmVoYXZpb3IsIHN1YnRyZWVQYWludFJvb3RG
b3JSZW5kZXJlcik7CisKKwkvLyBTd2l0Y2ggdGhlIGNsaXBwaW5nIHJlY3RhbmdsZSB0byB0aGUg
b3V0bGluZSB2ZXJzaW9uLgorICAgICAgICBpZiAoc2hvdWxkQ2xpcCAmJiBjbGlwcGVkUmVjdCAh
PSBsYXllckZyYWdtZW50c1swXS5vdXRsaW5lUmVjdCkgeworICAgICAgICAgICAgcmVzdG9yZUNs
aXAoY29udGV4dCwgbG9jYWxQYWludGluZ0luZm8ucGFpbnREaXJ0eVJlY3QsIGNsaXBwZWRSZWN0
KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKCFsYXllckZyYWdtZW50c1swXS5vdXRs
aW5lUmVjdC5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICBjbGlwcGVkUmVjdCA9IGxheWVy
RnJhZ21lbnRzWzBdLm91dGxpbmVSZWN0OworICAgICAgICAgICAgICAgIGNsaXBUb1JlY3QobG9j
YWxQYWludGluZ0luZm8ucm9vdExheWVyLCBjb250ZXh0LCBsb2NhbFBhaW50aW5nSW5mby5wYWlu
dERpcnR5UmVjdCwgY2xpcHBlZFJlY3QpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAg
ICAgICAgc2hvdWxkQ2xpcCA9IGZhbHNlOworICAgICAgICB9ICAgICAgICAKKworCXBhaW50Rm9y
ZWdyb3VuZEZvckZyYWdtZW50c1dpdGhQaGFzZShQYWludFBoYXNlQ2hpbGRPdXRsaW5lcywgbGF5
ZXJGcmFnbWVudHMsIGNvbnRleHQsIGxvY2FsUGFpbnRpbmdJbmZvLCBsb2NhbFBhaW50QmVoYXZp
b3IsIHN1YnRyZWVQYWludFJvb3RGb3JSZW5kZXJlcik7CiAgICAgfQogICAgIAogICAgIGlmIChz
aG91bGRDbGlwKQotICAgICAgICByZXN0b3JlQ2xpcChjb250ZXh0LCBsb2NhbFBhaW50aW5nSW5m
by5wYWludERpcnR5UmVjdCwgbGF5ZXJGcmFnbWVudHNbMF0uZm9yZWdyb3VuZFJlY3QpOworICAg
ICAgICByZXN0b3JlQ2xpcChjb250ZXh0LCBsb2NhbFBhaW50aW5nSW5mby5wYWludERpcnR5UmVj
dCwgY2xpcHBlZFJlY3QpOwogfQogCiB2b2lkIFJlbmRlckxheWVyOjpwYWludEZvcmVncm91bmRG
b3JGcmFnbWVudHNXaXRoUGhhc2UoUGFpbnRQaGFzZSBwaGFzZSwgY29uc3QgTGF5ZXJGcmFnbWVu
dHMmIGxheWVyRnJhZ21lbnRzLCBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsCkBAIC00NDA4LDcg
KzQ0NjgsNyBAQCBib29sIFJlbmRlckxheWVyOjpoaXRUZXN0KGNvbnN0IEhpdFRlc3RSZXF1ZXN0
JiByZXF1ZXN0LCBjb25zdCBIaXRUZXN0TG9jYXRpb24mCiAKICAgICByZW5kZXJlcigpLmRvY3Vt
ZW50KCkudXBkYXRlTGF5b3V0KCk7CiAgICAgCi0gICAgTGF5b3V0UmVjdCBoaXRUZXN0QXJlYSA9
IGlzT3V0T2ZGbG93UmVuZGVyRmxvd1RocmVhZCgpID8gdG9SZW5kZXJGbG93VGhyZWFkKHJlbmRl
cmVyKCkpLmJvcmRlckJveFJlY3QoKSA6IHJlbmRlcmVyKCkudmlldygpLmRvY3VtZW50UmVjdCgp
OworICAgIExheW91dFJlY3QgaGl0VGVzdEFyZWEgPSBpc091dE9mRmxvd1JlbmRlckZsb3dUaHJl
YWQoKSA/IHRvUmVuZGVyRmxvd1RocmVhZCgmcmVuZGVyZXIoKSktPnZpc3VhbE92ZXJmbG93UmVj
dCgpIDogcmVuZGVyZXIoKS52aWV3KCkuZG9jdW1lbnRSZWN0KCk7CiAgICAgaWYgKCFyZXF1ZXN0
Lmlnbm9yZUNsaXBwaW5nKCkpCiAgICAgICAgIGhpdFRlc3RBcmVhLmludGVyc2VjdChyZW5kZXJl
cigpLnZpZXcoKS5mcmFtZVZpZXcoKS52aXNpYmxlQ29udGVudFJlY3QoKSk7CiAKQEAgLTQ3MDEs
NiArNDc2MSwxMyBAQCBSZW5kZXJMYXllciogUmVuZGVyTGF5ZXI6OmhpdFRlc3RMYXllcihSZW5k
ZXJMYXllciogcm9vdExheWVyLCBSZW5kZXJMYXllciogY29udAogICAgICAgICBjYW5kaWRhdGVM
YXllciA9IGhpdExheWVyOwogICAgIH0KIAorICAgIGhpdExheWVyID0gaGl0VGVzdEZsb3dUaHJl
YWRJZlJlZ2lvbihyb290TGF5ZXIsIHJlcXVlc3QsIHJlc3VsdCwgaGl0VGVzdFJlY3QsIGhpdFRl
c3RMb2NhdGlvbiwgbG9jYWxUcmFuc2Zvcm1TdGF0ZS5nZXQoKSwgek9mZnNldEZvckRlc2NlbmRh
bnRzUHRyKTsKKyAgICBpZiAoaGl0TGF5ZXIpIHsKKyAgICAgICAgaWYgKCFkZXB0aFNvcnREZXNj
ZW5kYW50cykKKyAgICAgICAgICAgIHJldHVybiBoaXRMYXllcjsKKyAgICAgICAgY2FuZGlkYXRl
TGF5ZXIgPSBoaXRMYXllcjsKKyAgICB9CisKICAgICAvLyBDb2xsZWN0IHRoZSBmcmFnbWVudHMu
IFRoaXMgd2lsbCBjb21wdXRlIHRoZSBjbGlwIHJlY3RhbmdsZXMgZm9yIGVhY2ggbGF5ZXIgZnJh
Z21lbnQuCiAgICAgTGF5ZXJGcmFnbWVudHMgbGF5ZXJGcmFnbWVudHM7CiAgICAgY29sbGVjdEZy
YWdtZW50cyhsYXllckZyYWdtZW50cywgcm9vdExheWVyLCBoaXRUZXN0TG9jYXRpb24ucmVnaW9u
KCksIGhpdFRlc3RSZWN0LCBSb290UmVsYXRpdmVDbGlwUmVjdHMsIEluY2x1ZGVPdmVybGF5U2Ny
b2xsYmFyU2l6ZSk7CkBAIC00NzYxLDYgKzQ4MjgsMzIgQEAgUmVuZGVyTGF5ZXIqIFJlbmRlckxh
eWVyOjpoaXRUZXN0TGF5ZXIoUmVuZGVyTGF5ZXIqIHJvb3RMYXllciwgUmVuZGVyTGF5ZXIqIGNv
bnQKICAgICByZXR1cm4gMDsKIH0KIAordm9pZCBSZW5kZXJMYXllcjo6bWFwTGF5ZXJDbGlwUmVj
dHNUb0ZyYWdtZW50YXRpb25MYXllcihSZW5kZXJSZWdpb24qIHJlZ2lvbiwgQ2xpcFJlY3RzJiBj
bGlwUmVjdHMpIGNvbnN0Cit7CisgICAgQVNTRVJUKHJlZ2lvbik7CisKKyAgICBDbGlwUmVjdHND
b250ZXh0IHRhcmdldENsaXBSZWN0c0NvbnRleHQocmVnaW9uLT5sYXllcigpLCAwLCBUZW1wb3Jh
cnlDbGlwUmVjdHMpOworICAgIHJlZ2lvbi0+bGF5ZXIoKS0+Y2FsY3VsYXRlQ2xpcFJlY3RzKHRh
cmdldENsaXBSZWN0c0NvbnRleHQsIGNsaXBSZWN0cyk7CisKKyAgICBMYXlvdXRSZWN0IGZsb3dU
aHJlYWRQb3J0aW9uUmVjdCA9IHJlZ2lvbi0+Zmxvd1RocmVhZFBvcnRpb25SZWN0KCk7CisKKyAg
ICBMYXlvdXRQb2ludCBwb3J0aW9uTG9jYXRpb24gPSBmbG93VGhyZWFkUG9ydGlvblJlY3QubG9j
YXRpb24oKTsKKyAgICBMYXlvdXRSZWN0IHJlZ2lvbkNvbnRlbnRCb3ggPSByZWdpb24tPmNvbnRl
bnRCb3hSZWN0KCk7CisgICAgTGF5b3V0U2l6ZSBtb3ZlT2Zmc2V0ID0gcG9ydGlvbkxvY2F0aW9u
IC0gcmVnaW9uQ29udGVudEJveC5sb2NhdGlvbigpOworCisgICAgQ2xpcFJlY3QgbmV3T3ZlcmZs
b3dDbGlwUmVjdCA9IGNsaXBSZWN0cy5vdmVyZmxvd0NsaXBSZWN0KCk7CisgICAgbmV3T3ZlcmZs
b3dDbGlwUmVjdC5tb3ZlKG1vdmVPZmZzZXQpOworICAgIGNsaXBSZWN0cy5zZXRPdmVyZmxvd0Ns
aXBSZWN0KG5ld092ZXJmbG93Q2xpcFJlY3QpOworCisgICAgQ2xpcFJlY3QgbmV3Rml4ZWRDbGlw
UmVjdCA9IGNsaXBSZWN0cy5maXhlZENsaXBSZWN0KCk7CisgICAgbmV3Rml4ZWRDbGlwUmVjdC5t
b3ZlKG1vdmVPZmZzZXQpOworICAgIGNsaXBSZWN0cy5zZXRGaXhlZENsaXBSZWN0KG5ld0ZpeGVk
Q2xpcFJlY3QpOworCisgICAgQ2xpcFJlY3QgbmV3UG9zQ2xpcFJlY3QgPSBjbGlwUmVjdHMucG9z
Q2xpcFJlY3QoKTsKKyAgICBuZXdQb3NDbGlwUmVjdC5tb3ZlKG1vdmVPZmZzZXQpOworICAgIGNs
aXBSZWN0cy5zZXRQb3NDbGlwUmVjdChuZXdQb3NDbGlwUmVjdCk7Cit9CisKIGJvb2wgUmVuZGVy
TGF5ZXI6OmhpdFRlc3RDb250ZW50c0ZvckZyYWdtZW50cyhjb25zdCBMYXllckZyYWdtZW50cyYg
bGF5ZXJGcmFnbWVudHMsIGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiByZXF1ZXN0LCBIaXRUZXN0UmVz
dWx0JiByZXN1bHQsCiAgICAgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBoaXRUZXN0TG9jYXRpb24s
IEhpdFRlc3RGaWx0ZXIgaGl0VGVzdEZpbHRlciwgYm9vbCYgaW5zaWRlQ2xpcFJlY3QpIGNvbnN0
CiB7CkBAIC01MDgyLDYgKzUxNzUsMTEgQEAgdm9pZCBSZW5kZXJMYXllcjo6Y2FsY3VsYXRlQ2xp
cFJlY3RzKGNvbnN0IENsaXBSZWN0c0NvbnRleHQmIGNsaXBSZWN0c0NvbnRleHQsIEMKICAgICBD
bGlwUmVjdHNUeXBlIGNsaXBSZWN0c1R5cGUgPSBjbGlwUmVjdHNDb250ZXh0LmNsaXBSZWN0c1R5
cGU7CiAgICAgYm9vbCB1c2VDYWNoZWQgPSBjbGlwUmVjdHNUeXBlICE9IFRlbXBvcmFyeUNsaXBS
ZWN0czsKIAorICAgIGlmIChyZW5kZXJlcigpLmlzUmVuZGVyRmxvd1RocmVhZCgpICYmIGNsaXBS
ZWN0c0NvbnRleHQucmVnaW9uKSB7CisgICAgICAgIG1hcExheWVyQ2xpcFJlY3RzVG9GcmFnbWVu
dGF0aW9uTGF5ZXIoY2xpcFJlY3RzQ29udGV4dC5yZWdpb24sIGNsaXBSZWN0cyk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKICAgICAvLyBGb3IgdHJhbnNmb3JtZWQgbGF5ZXJzLCB0aGUgcm9v
dCBsYXllciB3YXMgc2hpZnRlZCB0byBiZSB1cywgc28gdGhlcmUgaXMgbm8gbmVlZCB0bwogICAg
IC8vIGV4YW1pbmUgdGhlIHBhcmVudC4gIFdlIHdhbnQgdG8gY2FjaGUgY2xpcCByZWN0cyB3aXRo
IHVzIGFzIHRoZSByb290LgogICAgIFJlbmRlckxheWVyKiBwYXJlbnRMYXllciA9IGNsaXBSZWN0
c0NvbnRleHQucm9vdExheWVyICE9IHRoaXMgPyBwYXJlbnQoKSA6IDA7CkBAIC01MTQxLDYgKzUy
MzksMTEgQEAgdm9pZCBSZW5kZXJMYXllcjo6Y2FsY3VsYXRlQ2xpcFJlY3RzKGNvbnN0IENsaXBS
ZWN0c0NvbnRleHQmIGNsaXBSZWN0c0NvbnRleHQsIEMKIHZvaWQgUmVuZGVyTGF5ZXI6OnBhcmVu
dENsaXBSZWN0cyhjb25zdCBDbGlwUmVjdHNDb250ZXh0JiBjbGlwUmVjdHNDb250ZXh0LCBDbGlw
UmVjdHMmIGNsaXBSZWN0cykgY29uc3QKIHsKICAgICBBU1NFUlQocGFyZW50KCkpOworICAgIGlm
IChyZW5kZXJlcigpLmlzUmVuZGVyRmxvd1RocmVhZCgpICYmIGNsaXBSZWN0c0NvbnRleHQucmVn
aW9uKSB7CisgICAgICAgIG1hcExheWVyQ2xpcFJlY3RzVG9GcmFnbWVudGF0aW9uTGF5ZXIoY2xp
cFJlY3RzQ29udGV4dC5yZWdpb24sIGNsaXBSZWN0cyk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKICAgICBpZiAoY2xpcFJlY3RzQ29udGV4dC5jbGlwUmVjdHNUeXBlID09IFRlbXBvcmFyeUNs
aXBSZWN0cykgewogICAgICAgICBwYXJlbnQoKS0+Y2FsY3VsYXRlQ2xpcFJlY3RzKGNsaXBSZWN0
c0NvbnRleHQsIGNsaXBSZWN0cyk7CiAgICAgICAgIHJldHVybjsKQEAgLTUxOTUsOSArNTI5OCw2
IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmNhbGN1bGF0ZVJlY3RzKGNvbnN0IENsaXBSZWN0c0NvbnRl
eHQmIGNsaXBSZWN0c0NvbnRleHQsIGNvbnN0CiAgICAgfSBlbHNlCiAgICAgICAgIGJhY2tncm91
bmRSZWN0ID0gcGFpbnREaXJ0eVJlY3Q7CiAKLSAgICBmb3JlZ3JvdW5kUmVjdCA9IGJhY2tncm91
bmRSZWN0OwotICAgIG91dGxpbmVSZWN0ID0gYmFja2dyb3VuZFJlY3Q7Ci0gICAgCiAgICAgTGF5
b3V0UG9pbnQgb2Zmc2V0OwogICAgIGlmIChvZmZzZXRGcm9tUm9vdCkKICAgICAgICAgb2Zmc2V0
ID0gKm9mZnNldEZyb21Sb290OwpAQCAtNTIxMyw2ICs1MzEzLDIyIEBAIHZvaWQgUmVuZGVyTGF5
ZXI6OmNhbGN1bGF0ZVJlY3RzKGNvbnN0IENsaXBSZWN0c0NvbnRleHQmIGNsaXBSZWN0c0NvbnRl
eHQsIGNvbnN0CiAKICAgICBsYXllckJvdW5kcyA9IExheW91dFJlY3Qob2Zmc2V0LCBzaXplKCkp
OwogCisgICAgZm9yZWdyb3VuZFJlY3QgPSBiYWNrZ3JvdW5kUmVjdDsKKyAgICBvdXRsaW5lUmVj
dCA9IGJhY2tncm91bmRSZWN0OworCisgICAgaWYgKGlzU2VsZlBhaW50aW5nTGF5ZXIoKSAmJiBj
bGlwUmVjdHNDb250ZXh0LnJlZ2lvbikgeworICAgICAgICBMYXlvdXRSZWN0IGxheWVyQm91bmRz
V2l0aFZpc3VhbE92ZXJmbG93ID0gcmVuZGVyQm94KCktPnZpc3VhbE92ZXJmbG93UmVjdEluUmVn
aW9uKGNsaXBSZWN0c0NvbnRleHQucmVnaW9uKTsKKyAgICAgICAgbGF5ZXJCb3VuZHNXaXRoVmlz
dWFsT3ZlcmZsb3cubW92ZUJ5KG9mZnNldCk7CisgICAgICAgIGJhY2tncm91bmRSZWN0LmludGVy
c2VjdChsYXllckJvdW5kc1dpdGhWaXN1YWxPdmVyZmxvdyk7CisKKyAgICAgICAgZm9yZWdyb3Vu
ZFJlY3QgPSBiYWNrZ3JvdW5kUmVjdDsKKyAgICAgICAgb3V0bGluZVJlY3QgPSBiYWNrZ3JvdW5k
UmVjdDsKKyAgICAgICAgCisgICAgICAgIC8vIElmIHRoZSByZWdpb24gZG9lcyBub3QgY2xpcCBp
dHMgb3ZlcmZsb3csIGluZmxhdGUgdGhlIG91dGxpbmUgcmVjdC4KKyAgICAgICAgaWYgKCEoY2xp
cFJlY3RzQ29udGV4dC5yZWdpb24tPmhhc092ZXJmbG93Q2xpcCgpICYmIChjbGlwUmVjdHNDb250
ZXh0LnJlZ2lvbi0+bGF5ZXIoKSAhPSBjbGlwUmVjdHNDb250ZXh0LnJvb3RMYXllciB8fCBjbGlw
UmVjdHNDb250ZXh0LnJlc3BlY3RPdmVyZmxvd0NsaXAgPT0gUmVzcGVjdE92ZXJmbG93Q2xpcCkp
KQorICAgICAgICAgICAgb3V0bGluZVJlY3QuaW5mbGF0ZShyZW5kZXJlcigpLm1heGltYWxPdXRs
aW5lU2l6ZShQYWludFBoYXNlT3V0bGluZSkpOworICAgIH0KKwogICAgIC8vIFVwZGF0ZSB0aGUg
Y2xpcCByZWN0cyB0aGF0IHdpbGwgYmUgcGFzc2VkIHRvIGNoaWxkIGxheWVycy4KICAgICBpZiAo
cmVuZGVyZXIoKS5oYXNDbGlwT3JPdmVyZmxvd0NsaXAoKSkgewogICAgICAgICAvLyBUaGlzIGxh
eWVyIGVzdGFibGlzaGVzIGEgY2xpcCBvZiBzb21lIGtpbmQuCkBAIC01MjM2LDcgKzUzNTIsNyBA
QCB2b2lkIFJlbmRlckxheWVyOjpjYWxjdWxhdGVSZWN0cyhjb25zdCBDbGlwUmVjdHNDb250ZXh0
JiBjbGlwUmVjdHNDb250ZXh0LCBjb25zdAogICAgICAgICBpZiAocmVuZGVyQm94KCktPmhhc1Zp
c3VhbE92ZXJmbG93KCkpIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBEb2VzIG5vdCBkbyB0aGUg
cmlnaHQgdGhpbmcgd2l0aCBDU1MgcmVnaW9ucyB5ZXQsIHNpbmNlIHdlIGRvbid0IHlldCBmYWN0
b3IgaW4gdGhlCiAgICAgICAgICAgICAvLyBpbmRpdmlkdWFsIHJlZ2lvbiBib3hlcyBhcyBvdmVy
Zmxvdy4KLSAgICAgICAgICAgIExheW91dFJlY3QgbGF5ZXJCb3VuZHNXaXRoVmlzdWFsT3ZlcmZs
b3cgPSByZW5kZXJCb3goKS0+dmlzdWFsT3ZlcmZsb3dSZWN0KCk7CisgICAgICAgICAgICBMYXlv
dXRSZWN0IGxheWVyQm91bmRzV2l0aFZpc3VhbE92ZXJmbG93ID0gcmVuZGVyQm94KCktPnZpc3Vh
bE92ZXJmbG93UmVjdEluUmVnaW9uKGNsaXBSZWN0c0NvbnRleHQucmVnaW9uKTsKICAgICAgICAg
ICAgIHJlbmRlckJveCgpLT5mbGlwRm9yV3JpdGluZ01vZGUobGF5ZXJCb3VuZHNXaXRoVmlzdWFs
T3ZlcmZsb3cpOyAvLyBMYXllcnMgYXJlIGluIHBoeXNpY2FsIGNvb3JkaW5hdGVzLCBzbyB0aGUg
b3ZlcmZsb3cgaGFzIHRvIGJlIGZsaXBwZWQuCiAgICAgICAgICAgICBsYXllckJvdW5kc1dpdGhW
aXN1YWxPdmVyZmxvdy5tb3ZlQnkob2Zmc2V0KTsKICAgICAgICAgICAgIGlmICh0aGlzICE9IGNs
aXBSZWN0c0NvbnRleHQucm9vdExheWVyIHx8IGNsaXBSZWN0c0NvbnRleHQucmVzcGVjdE92ZXJm
bG93Q2xpcCA9PSBSZXNwZWN0T3ZlcmZsb3dDbGlwKQpAQCAtNTI0NCw2ICs1MzYwLDkgQEAgdm9p
ZCBSZW5kZXJMYXllcjo6Y2FsY3VsYXRlUmVjdHMoY29uc3QgQ2xpcFJlY3RzQ29udGV4dCYgY2xp
cFJlY3RzQ29udGV4dCwgY29uc3QKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIC8vIFNo
aWZ0IHRoZSBib3VuZHMgdG8gYmUgZm9yIG91ciByZWdpb24gb25seS4KICAgICAgICAgICAgIExh
eW91dFJlY3QgYm91bmRzID0gcmVuZGVyQm94KCktPmJvcmRlckJveFJlY3RJblJlZ2lvbihjbGlw
UmVjdHNDb250ZXh0LnJlZ2lvbik7CisJICAgIGlmIChjbGlwUmVjdHNDb250ZXh0LnJlZ2lvbikK
KwkJYm91bmRzID0gY2xpcFJlY3RzQ29udGV4dC5yZWdpb24tPnJlY3RGbG93UG9ydGlvbkZvckJv
eChyZW5kZXJCb3goKSwgYm91bmRzKTsKKwogICAgICAgICAgICAgYm91bmRzLm1vdmVCeShvZmZz
ZXQpOwogICAgICAgICAgICAgaWYgKHRoaXMgIT0gY2xpcFJlY3RzQ29udGV4dC5yb290TGF5ZXIg
fHwgY2xpcFJlY3RzQ29udGV4dC5yZXNwZWN0T3ZlcmZsb3dDbGlwID09IFJlc3BlY3RPdmVyZmxv
d0NsaXApCiAgICAgICAgICAgICAgICAgYmFja2dyb3VuZFJlY3QuaW50ZXJzZWN0KGJvdW5kcyk7
CkBAIC01MjUxLDYgKzUzNzAsNDggQEAgdm9pZCBSZW5kZXJMYXllcjo6Y2FsY3VsYXRlUmVjdHMo
Y29uc3QgQ2xpcFJlY3RzQ29udGV4dCYgY2xpcFJlY3RzQ29udGV4dCwgY29uc3QKICAgICB9CiB9
CiAKK3ZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZURlc2NlbmRhbnRzTGF5ZXJMaXN0c0lmTmVlZGVk
KGJvb2wgcmVjdXJzaXZlKQoreworICAgIFZlY3RvcjxSZW5kZXJMYXllcio+IGxheWVyc1RvVXBk
YXRlOworICAgIAorICAgIGlmIChpc1N0YWNraW5nQ29udGFpbmVyKCkpIHsKKyAgICAgICAgaWYg
KFZlY3RvcjxSZW5kZXJMYXllcio+KiBsaXN0ID0gbmVnWk9yZGVyTGlzdCgpKSB7CisgICAgICAg
ICAgICBzaXplX3QgbGlzdFNpemUgPSBsaXN0LT5zaXplKCk7CisgICAgICAgICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IGxpc3RTaXplOyArK2kpIHsKKyAgICAgICAgICAgICAgICBSZW5kZXJM
YXllciogY2hpbGRMYXllciA9IGxpc3QtPmF0KGkpOworICAgICAgICAgICAgICAgIGxheWVyc1Rv
VXBkYXRlLmFwcGVuZChjaGlsZExheWVyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAg
IH0KKyAgICAKKyAgICBpZiAoVmVjdG9yPFJlbmRlckxheWVyKj4qIGxpc3QgPSBub3JtYWxGbG93
TGlzdCgpKSB7CisgICAgICAgIHNpemVfdCBsaXN0U2l6ZSA9IGxpc3QtPnNpemUoKTsKKyAgICAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsaXN0U2l6ZTsgKytpKSB7CisgICAgICAgICAgICBS
ZW5kZXJMYXllciogY2hpbGRMYXllciA9IGxpc3QtPmF0KGkpOworICAgICAgICAgICAgbGF5ZXJz
VG9VcGRhdGUuYXBwZW5kKGNoaWxkTGF5ZXIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAg
IGlmIChpc1N0YWNraW5nQ29udGFpbmVyKCkpIHsKKyAgICAgICAgaWYgKFZlY3RvcjxSZW5kZXJM
YXllcio+KiBsaXN0ID0gcG9zWk9yZGVyTGlzdCgpKSB7CisgICAgICAgICAgICBzaXplX3QgbGlz
dFNpemUgPSBsaXN0LT5zaXplKCk7CisgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IGxpc3RTaXplOyArK2kpIHsKKyAgICAgICAgICAgICAgICBSZW5kZXJMYXllciogY2hpbGRMYXll
ciA9IGxpc3QtPmF0KGkpOworICAgICAgICAgICAgICAgIGxheWVyc1RvVXBkYXRlLmFwcGVuZChj
aGlsZExheWVyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBz
aXplX3QgbGlzdFNpemUgPSBsYXllcnNUb1VwZGF0ZS5zaXplKCk7CisgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBsaXN0U2l6ZTsgKytpKSB7CisgICAgICAgIFJlbmRlckxheWVyKiBjaGlsZExh
eWVyID0gbGF5ZXJzVG9VcGRhdGUuYXQoaSk7CisgICAgICAgIGNoaWxkTGF5ZXItPnVwZGF0ZUxh
eWVyTGlzdHNJZk5lZWRlZCgpOworICAgICAgICAKKyAgICAgICAgaWYgKHJlY3Vyc2l2ZSkKKyAg
ICAgICAgICAgIGNoaWxkTGF5ZXItPnVwZGF0ZURlc2NlbmRhbnRzTGF5ZXJMaXN0c0lmTmVlZGVk
KHRydWUpOworICAgIH0KK30KKwogTGF5b3V0UmVjdCBSZW5kZXJMYXllcjo6Y2hpbGRyZW5DbGlw
UmVjdCgpIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IGJvcmRlci1yYWRpdXMgbm90IGFjY291bnRl
ZCBmb3IuCkBAIC01ODkyLDExICs2MDUzLDkwIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZUNv
bXBvc2l0aW5nQW5kTGF5ZXJMaXN0c0lmTmVlZGVkKCkKICAgICB1cGRhdGVMYXllckxpc3RzSWZO
ZWVkZWQoKTsKIH0KIAordm9pZCBSZW5kZXJMYXllcjo6cGFpbnRGbG93VGhyZWFkRm9yUmVnaW9u
KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgTGF5ZXJQYWludGluZ0luZm8mIHBhaW50
aW5nSW5mbywgUGFpbnRMYXllckZsYWdzIHBhaW50RmxhZ3MsIExheW91dFBvaW50IHBhaW50T2Zm
c2V0LCBjb25zdCBDbGlwUmVjdCYgY2xpcFJlY3QpCit7CisgICAgQVNTRVJUKHJlbmRlcmVyKCku
aXNSZW5kZXJSZWdpb24oKSk7CisKKyAgICBSZW5kZXJSZWdpb24qIHJlZ2lvbiA9IHRvUmVuZGVy
UmVnaW9uKCZyZW5kZXJlcigpKTsKKyAgICBpZiAoIXJlZ2lvbi0+aXNWYWxpZCgpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBSZW5kZXJGbG93VGhyZWFkKiBmbG93VGhyZWFkID0gcmVnaW9uLT5m
bG93VGhyZWFkKCk7CisgICAgTGF5b3V0UmVjdCBmbG93VGhyZWFkUG9ydGlvblJlY3QgPSByZWdp
b24tPmZsb3dUaHJlYWRQb3J0aW9uUmVjdCgpOworCisgICAgSW50UG9pbnQgYWRqdXN0ZWRQYWlu
dE9mZnNldDsKKyAgICBMYXlvdXRQb2ludCBwb3J0aW9uTG9jYXRpb24gPSBmbG93VGhyZWFkUG9y
dGlvblJlY3QubG9jYXRpb24oKTsKKyAgICBhZGp1c3RlZFBhaW50T2Zmc2V0ID0gcm91bmRlZElu
dFBvaW50KHBhaW50T2Zmc2V0IC0gKHBvcnRpb25Mb2NhdGlvbiAtIExheW91dFBvaW50KHJlZ2lv
bi0+Ym9yZGVyTGVmdCgpICsgcmVnaW9uLT5wYWRkaW5nTGVmdCgpLCByZWdpb24tPmJvcmRlclRv
cCgpICsgcmVnaW9uLT5wYWRkaW5nVG9wKCkpKSk7CisKKyAgICBMYXlvdXRSZWN0IHJlZ2lvbkNv
bnRlbnRCb3ggPSByZWdpb24tPmNvbnRlbnRCb3hSZWN0KCk7CisgICAgTGF5b3V0UmVjdCBwYWlu
dERpcnR5UmVjdCA9IHBhaW50aW5nSW5mby5wYWludERpcnR5UmVjdDsKKyAgICBMYXlvdXRTaXpl
IG1vdmVPZmZzZXQgPSBwb3J0aW9uTG9jYXRpb24gLSAocGFpbnRPZmZzZXQgKyByZWdpb25Db250
ZW50Qm94LmxvY2F0aW9uKCkpOworICAgIHBhaW50RGlydHlSZWN0Lm1vdmUobW92ZU9mZnNldCk7
CisKKyAgICAvLyBPcHRpbWl6ZSBjbGlwcGluZyBmb3IgdGhlIHNpbmdsZSBmcmFnbWVudCBjYXNl
LgorICAgIGlmICghY2xpcFJlY3QuaXNFbXB0eSgpKQorICAgICAgICBjbGlwVG9SZWN0KHBhaW50
aW5nSW5mby5yb290TGF5ZXIsIGNvbnRleHQsIHBhaW50aW5nSW5mby5wYWludERpcnR5UmVjdCwg
Y2xpcFJlY3QpOworCisgICAgY29udGV4dC0+c2F2ZSgpOworICAgIGNvbnRleHQtPnRyYW5zbGF0
ZShhZGp1c3RlZFBhaW50T2Zmc2V0LngoKSwgYWRqdXN0ZWRQYWludE9mZnNldC55KCkpOworCisg
ICAgcmVnaW9uLT5zZXRSZWdpb25PYmplY3RzUmVnaW9uU3R5bGUoKTsKKyAgICBSZW5kZXJMYXll
ciogZmxvd1RocmVhZExheWVyID0gZmxvd1RocmVhZC0+bGF5ZXIoKTsKKyAgICBmbG93VGhyZWFk
TGF5ZXItPnBhaW50KGNvbnRleHQsIHBhaW50RGlydHlSZWN0LCBwYWludGluZ0luZm8ucGFpbnRC
ZWhhdmlvciwgMCwgcmVnaW9uLCBwYWludEZsYWdzKTsKKyAgICByZWdpb24tPnJlc3RvcmVSZWdp
b25PYmplY3RzT3JpZ2luYWxTdHlsZSgpOworCisgICAgY29udGV4dC0+cmVzdG9yZSgpOworCisg
ICAgaWYgKCFjbGlwUmVjdC5pc0VtcHR5KCkpCisgICAgICAgIHJlc3RvcmVDbGlwKGNvbnRleHQs
IHBhaW50aW5nSW5mby5wYWludERpcnR5UmVjdCwgY2xpcFJlY3QpOworfQorCitSZW5kZXJMYXll
ciogUmVuZGVyTGF5ZXI6OmhpdFRlc3RGbG93VGhyZWFkSWZSZWdpb24oUmVuZGVyTGF5ZXIqIHJv
b3RMYXllciwgY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVlc3QsIEhpdFRlc3RSZXN1bHQmIHJl
c3VsdCwgY29uc3QgTGF5b3V0UmVjdCYgaGl0VGVzdFJlY3QsIAorICAgIGNvbnN0IEhpdFRlc3RM
b2NhdGlvbiYgaGl0VGVzdExvY2F0aW9uLAorICAgIGNvbnN0IEhpdFRlc3RpbmdUcmFuc2Zvcm1T
dGF0ZSogdHJhbnNmb3JtU3RhdGUsIAorICAgIGRvdWJsZSogek9mZnNldEZvckRlc2NlbmRhbnRz
KQoreworICAgIGlmICghcmVuZGVyZXIoKS5pc1JlbmRlclJlZ2lvbigpKQorICAgICAgICByZXR1
cm4gMDsKKworICAgIFJlbmRlclJlZ2lvbiogcmVnaW9uID0gdG9SZW5kZXJSZWdpb24oJnJlbmRl
cmVyKCkpOworICAgIGlmICghcmVnaW9uLT5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybiAwOwor
CisgICAgUmVuZGVyRmxvd1RocmVhZCogZmxvd1RocmVhZCA9IHJlZ2lvbi0+Zmxvd1RocmVhZCgp
OworICAgIExheW91dFJlY3QgZmxvd1RocmVhZFBvcnRpb25SZWN0ID0gcmVnaW9uLT5mbG93VGhy
ZWFkUG9ydGlvblJlY3QoKTsKKyAgICAKKyAgICBMYXlvdXRQb2ludCBvZmZzZXRGcm9tUm9vdDsK
KyAgICBjb252ZXJ0VG9MYXllckNvb3Jkcyhyb290TGF5ZXIsIG9mZnNldEZyb21Sb290KTsKKwor
ICAgIExheW91dFBvaW50IHBvcnRpb25Mb2NhdGlvbiA9IGZsb3dUaHJlYWRQb3J0aW9uUmVjdC5s
b2NhdGlvbigpOworICAgIExheW91dFJlY3QgcmVnaW9uQ29udGVudEJveCA9IHJlZ2lvbi0+Y29u
dGVudEJveFJlY3QoKTsKKyAgICBMYXlvdXRTaXplIGhpdFRlc3RPZmZzZXQgPSBwb3J0aW9uTG9j
YXRpb24gLSAob2Zmc2V0RnJvbVJvb3QgKyByZWdpb25Db250ZW50Qm94LmxvY2F0aW9uKCkpOwor
CisgICAgLy8gQWx3YXlzIGlnbm9yZSBjbGlwcGluZywgc2luY2UgdGhlIFJlbmRlckZsb3dUaHJl
YWQgaGFzIG5vdGhpbmcgdG8gZG8gd2l0aCB0aGUgYm91bmRzIG9mIHRoZSBGcmFtZVZpZXcuCisg
ICAgSGl0VGVzdFJlcXVlc3QgbmV3UmVxdWVzdChyZXF1ZXN0LnR5cGUoKSB8IEhpdFRlc3RSZXF1
ZXN0OjpJZ25vcmVDbGlwcGluZyB8IEhpdFRlc3RSZXF1ZXN0OjpEaXNhbGxvd1NoYWRvd0NvbnRl
bnQpOworCisgICAgLy8gTWFrZSBhIG5ldyB0ZW1wb3JhcnkgSGl0VGVzdExvY2F0aW9uIGluIHRo
ZSBuZXcgcmVnaW9uLgorICAgIEhpdFRlc3RMb2NhdGlvbiBuZXdIaXRUZXN0TG9jYXRpb24oaGl0
VGVzdExvY2F0aW9uLCBoaXRUZXN0T2Zmc2V0LCByZWdpb24pOworCisgICAgLy8gRXhwYW5kIHRo
ZSBoaXQtdGVzdCByZWN0IHRvIHRoZSBmbG93IHRocmVhZCdzIGNvb3JkaW5hdGUgc3lzdGVtLgor
ICAgIExheW91dFJlY3QgaGl0VGVzdFJlY3RJbkZsb3dUaHJlYWQgPSBoaXRUZXN0UmVjdDsKKyAg
ICBoaXRUZXN0UmVjdEluRmxvd1RocmVhZC5tb3ZlKGhpdFRlc3RPZmZzZXQud2lkdGgoKSwgaGl0
VGVzdE9mZnNldC5oZWlnaHQoKSk7CisgICAgaGl0VGVzdFJlY3RJbkZsb3dUaHJlYWQuZXhwYW5k
KExheW91dFNpemUob2Zmc2V0RnJvbVJvb3QueCgpLCBvZmZzZXRGcm9tUm9vdC55KCkpKTsKKwor
ICAgIHJldHVybiBmbG93VGhyZWFkLT5sYXllcigpLT5oaXRUZXN0TGF5ZXIoZmxvd1RocmVhZC0+
bGF5ZXIoKSwgMCwgbmV3UmVxdWVzdCwgcmVzdWx0LCBoaXRUZXN0UmVjdEluRmxvd1RocmVhZCwg
bmV3SGl0VGVzdExvY2F0aW9uLCBmYWxzZSwgdHJhbnNmb3JtU3RhdGUsIHpPZmZzZXRGb3JEZXNj
ZW5kYW50cyk7Cit9CisKIHZvaWQgUmVuZGVyTGF5ZXI6OnJlcGFpbnRJbmNsdWRpbmdEZXNjZW5k
YW50cygpCiB7CiAgICAgcmVuZGVyZXIoKS5yZXBhaW50KCk7CiAgICAgZm9yIChSZW5kZXJMYXll
ciogY3VyciA9IGZpcnN0Q2hpbGQoKTsgY3VycjsgY3VyciA9IGN1cnItPm5leHRTaWJsaW5nKCkp
CiAgICAgICAgIGN1cnItPnJlcGFpbnRJbmNsdWRpbmdEZXNjZW5kYW50cygpOworCisgICAgLy8g
SWYgdGhpcyBpcyBhIHJlZ2lvbiwgd2UgbXVzdCBhbHNvIHJlcGFpbnQgdGhlIGZsb3cgdGhyZWFk
J3MgbGF5ZXIgc2luY2UgaXQgaXMgdGhlIG9uZQorICAgIC8vIGRvaW5nIHRoZSBhY3R1YWwgcGFp
bnRpbmcgb2YgdGhlIGZsb3dlZCBjb250ZW50LgorICAgIGlmIChyZW5kZXJlcigpLmlzUmVuZGVy
UmVnaW9uKCkpCisgICAgICAgIHRvUmVuZGVyUmVnaW9uKCZyZW5kZXJlcigpKS0+Zmxvd1RocmVh
ZCgpLT5sYXllcigpLT5yZXBhaW50SW5jbHVkaW5nRGVzY2VuZGFudHMoKTsKIH0KIAogI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmgKaW5kZXggOGZjMjFjMi4uMjRkOGU5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmgKQEAgLTExNCw2ICsxMTQsMTAgQEAgcHVibGljOgogICAgIGJvb2wgaW50ZXJz
ZWN0cyhjb25zdCBMYXlvdXRSZWN0JiByZWN0KSBjb25zdCB7IHJldHVybiBtX3JlY3QuaW50ZXJz
ZWN0cyhyZWN0KTsgfQogICAgIGJvb2wgaW50ZXJzZWN0cyhjb25zdCBIaXRUZXN0TG9jYXRpb24m
KSBjb25zdDsKIAorICAgIHZvaWQgaW5mbGF0ZVgoTGF5b3V0VW5pdCBkeCkgeyBtX3JlY3QuaW5m
bGF0ZVgoZHgpOyB9CisgICAgdm9pZCBpbmZsYXRlWShMYXlvdXRVbml0IGR5KSB7IG1fcmVjdC5p
bmZsYXRlWShkeSk7IH0KKyAgICB2b2lkIGluZmxhdGUoTGF5b3V0VW5pdCBkKSB7IGluZmxhdGVY
KGQpOyBpbmZsYXRlWShkKTsgfQorCiBwcml2YXRlOgogICAgIExheW91dFJlY3QgbV9yZWN0Owog
ICAgIGJvb2wgbV9oYXNSYWRpdXM7CkBAIC01MjgsNiArNTMyLDkgQEAgcHVibGljOgogICAgIC8v
IFVwZGF0ZSBvdXIgbm9ybWFsIGFuZCB6LWluZGV4IGxpc3RzLgogICAgIHZvaWQgdXBkYXRlTGF5
ZXJMaXN0c0lmTmVlZGVkKCk7CiAKKyAgICAvLyBVcGRhdGUgdGhlIG5vcm1hbCBhbmQgei1pbmRl
eCBsaXN0cyBvZiBvdXIgZGVzY2VuZGFudHMuCisgICAgdm9pZCB1cGRhdGVEZXNjZW5kYW50c0xh
eWVyTGlzdHNJZk5lZWRlZChib29sIHJlY3Vyc2l2ZSk7CisKICAgICAvLyBGSVhNRTogV2Ugc2hv
dWxkIEFTU0VSVCghbV92aXNpYmxlQ29udGVudFN0YXR1c0RpcnR5KSBoZXJlLCBidXQgc2VlIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTA0NAogICAgIC8vIGRpdHRv
IGZvciBoYXNWaXNpYmxlRGVzY2VuZGFudCgpLCBzZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTcxMjc3CiAgICAgYm9vbCBoYXNWaXNpYmxlQ29udGVudCgpIGNvbnN0
IHsgcmV0dXJuIG1faGFzVmlzaWJsZUNvbnRlbnQ7IH0KQEAgLTExMzIsNiArMTEzOSwxMiBAQCBw
cml2YXRlOgogCiAgICAgYm9vbCBvdmVyZmxvd0NvbnRyb2xzSW50ZXJzZWN0UmVjdChjb25zdCBJ
bnRSZWN0JiBsb2NhbFJlY3QpIGNvbnN0OwogCisgICAgUmVuZGVyTGF5ZXIqIGhpdFRlc3RGbG93
VGhyZWFkSWZSZWdpb24oUmVuZGVyTGF5ZXIqLCBjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRl
c3RSZXN1bHQmLAorICAgICAgICBjb25zdCBMYXlvdXRSZWN0JiwgY29uc3QgSGl0VGVzdExvY2F0
aW9uJiwKKyAgICAgICAgY29uc3QgSGl0VGVzdGluZ1RyYW5zZm9ybVN0YXRlKiwgZG91YmxlKik7
CisgICAgdm9pZCBwYWludEZsb3dUaHJlYWRGb3JSZWdpb24oR3JhcGhpY3NDb250ZXh0KiwgY29u
c3QgTGF5ZXJQYWludGluZ0luZm8mLCBQYWludExheWVyRmxhZ3MsIExheW91dFBvaW50LCBjb25z
dCBDbGlwUmVjdCYpOworICAgIHZvaWQgbWFwTGF5ZXJDbGlwUmVjdHNUb0ZyYWdtZW50YXRpb25M
YXllcihSZW5kZXJSZWdpb24qLCBDbGlwUmVjdHMmKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICAv
LyBUaGUgYml0ZmllbGRzIGFyZSB1cCBoZXJlIHNvIHRoZXkgd2lsbCBmYWxsIGludG8gdGhlIHBh
ZGRpbmcgZnJvbSBTY3JvbGxhYmxlQXJlYSBvbiA2NC1iaXQuCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggOGQxMGVkYS4u
YjkyNGYxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
Q29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
Q29tcG9zaXRvci5jcHAKQEAgLTkzOSw2ICs5MzksMTIgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBv
c2l0b3I6OmNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cyhSZW5kZXJMYXllciogYW5jZXN0
b3IKICAgICBpZiAobGF5ZXIuaXNGbG93VGhyZWFkQ29sbGVjdGluZ0dyYXBoaWNzTGF5ZXJzVW5k
ZXJSZWdpb25zKCkpIHsKICAgICAgICAgUmVuZGVyRmxvd1RocmVhZCYgZmxvd1RocmVhZCA9IHRv
UmVuZGVyRmxvd1RocmVhZChsYXllci5yZW5kZXJlcigpKTsKICAgICAgICAgbGF5ZXIuc2V0SGFz
Q29tcG9zaXRpbmdEZXNjZW5kYW50KGZsb3dUaHJlYWQuaGFzQ29tcG9zaXRpbmdSZWdpb25EZXNj
ZW5kYW50KCkpOworCisJLy8gQmVmb3JlIHJldHVybmluZywgd2UgbmVlZCB0byB1cGRhdGUgdGhl
IGxpc3RzIG9mIGFsbCBjaGlsZCBsYXllcnMuIFRoaXMgaXMgcmVxdWlyZWQgYmVjYXVzZSwKKyAg
ICAgICAgLy8gaWYgdGhpcyBmbG93IHRocmVhZCB3aWxsIG5vdCBiZSBwYWludGVkIChmb3IgaW5z
dGFuY2UgYmVjYXVzZSBvZiBoYXZpbmcgbm8gcmVnaW9ucywgb3Igb25seSBpbnZhbGlkIHJlZ2lv
bnMpLAorICAgICAgICAvLyB0aGUgY2hpbGQgbGF5ZXJzIHdpbGwgbmV2ZXIgaGF2ZSB0aGVpciBs
aXN0cyB1cGRhdGVkICh3aGljaCB3b3VsZCBub3JtYWxseSBoYXBwZW4gZHVyaW5nIHBhaW50aW5n
KS4KKyAgICAgICAgbGF5ZXIudXBkYXRlRGVzY2VuZGFudHNMYXllckxpc3RzSWZOZWVkZWQodHJ1
ZSk7CisKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5jcHAKaW5kZXggNzgyYjU3YS4uZjhkNjcyYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU2V0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQu
Y3BwCkBAIC0zODUsMTkgKzM4NSwxNCBAQCB2b2lkIFJlbmRlck11bHRpQ29sdW1uU2V0OjpyZXBh
aW50Rmxvd1RocmVhZENvbnRlbnQoY29uc3QgTGF5b3V0UmVjdCYgcmVwYWludFJlYwogICAgIHVu
c2lnbmVkIHN0YXJ0Q29sdW1uID0gY29sdW1uSW5kZXhBdE9mZnNldChyZXBhaW50TG9naWNhbFRv
cCk7CiAgICAgdW5zaWduZWQgZW5kQ29sdW1uID0gY29sdW1uSW5kZXhBdE9mZnNldChyZXBhaW50
TG9naWNhbEJvdHRvbSk7CiAgICAgCi0gICAgTGF5b3V0VW5pdCBjb2xHYXAgPSBjb2x1bW5HYXAo
KTsKLSAgICB1bnNpZ25lZCBjb2xDb3VudCA9IGNvbHVtbkNvdW50KCk7CiAgICAgZm9yICh1bnNp
Z25lZCBpID0gc3RhcnRDb2x1bW47IGkgPD0gZW5kQ29sdW1uOyBpKyspIHsKICAgICAgICAgTGF5
b3V0UmVjdCBjb2xSZWN0ID0gY29sdW1uUmVjdEF0KGkpOwogICAgICAgICAKICAgICAgICAgLy8g
R2V0IHRoZSBwb3J0aW9uIG9mIHRoZSBmbG93IHRocmVhZCB0aGF0IGNvcnJlc3BvbmRzIHRvIHRo
aXMgY29sdW1uLgogICAgICAgICBMYXlvdXRSZWN0IGZsb3dUaHJlYWRQb3J0aW9uID0gZmxvd1Ro
cmVhZFBvcnRpb25SZWN0QXQoaSk7Ci0gICAgICAgIAotICAgICAgICAvLyBOb3cgZ2V0IHRoZSBv
dmVyZmxvdyByZWN0IHRoYXQgY29ycmVzcG9uZHMgdG8gdGhlIGNvbHVtbi4KLSAgICAgICAgTGF5
b3V0UmVjdCBmbG93VGhyZWFkT3ZlcmZsb3dQb3J0aW9uID0gZmxvd1RocmVhZFBvcnRpb25PdmVy
Zmxvd1JlY3QoZmxvd1RocmVhZFBvcnRpb24sIGksIGNvbENvdW50LCBjb2xHYXApOwotCisgICAg
IAogICAgICAgICAvLyBEbyBhIHJlcGFpbnQgZm9yIHRoaXMgc3BlY2lmaWMgY29sdW1uLgotICAg
ICAgICByZXBhaW50Rmxvd1RocmVhZENvbnRlbnRSZWN0YW5nbGUocmVwYWludFJlY3QsIGltbWVk
aWF0ZSwgZmxvd1RocmVhZFBvcnRpb24sIGZsb3dUaHJlYWRPdmVyZmxvd1BvcnRpb24sIGNvbFJl
Y3QubG9jYXRpb24oKSk7CisgICAgICAgIHJlcGFpbnRGbG93VGhyZWFkQ29udGVudFJlY3Rhbmds
ZShyZXBhaW50UmVjdCwgaW1tZWRpYXRlLCBmbG93VGhyZWFkUG9ydGlvbiwgY29sUmVjdC5sb2Nh
dGlvbigpKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJSZWdpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lv
bi5jcHAKaW5kZXggNWRjYTMzOC4uOGEzNzhiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclJlZ2lvbi5jcHAKQEAgLTE1OSw2ICsxNTksMjEgQEAgTGF5b3V0UmVjdCBSZW5kZXJS
ZWdpb246OmZsb3dUaHJlYWRQb3J0aW9uT3ZlcmZsb3dSZWN0KCkgY29uc3QKICAgICByZXR1cm4g
b3ZlcmZsb3dSZWN0Rm9yRmxvd1RocmVhZFBvcnRpb24oZmxvd1RocmVhZFBvcnRpb25SZWN0KCks
IGlzRmlyc3RSZWdpb24oKSwgaXNMYXN0UmVnaW9uKCksIFZpc3VhbE92ZXJmbG93KTsKIH0KIAor
TGF5b3V0UmVjdCBSZW5kZXJSZWdpb246OnZpc3VhbE92ZXJmbG93UmVjdCgpIGNvbnN0Cit7Cisg
ICAgLy8gVGhpcyBzaXR1YXRpb24gY291bGQgaGFwcGVuIHdoZW4gZmxvd2luZyBhIHJlZ2lvbiBp
bnRvIGl0c2VsZi4KKyAgICBpZiAoIWZsb3dUaHJlYWQoKSB8fCAhaXNWYWxpZCgpKQorICAgICAg
ICByZXR1cm4gUmVuZGVyQmxvY2s6OnZpc3VhbE92ZXJmbG93UmVjdCgpOworCisgICAgTGF5b3V0
UmVjdCB2aXN1YWxPdmVyZmxvdyA9IGZsb3dUaHJlYWQoKS0+dmlzdWFsT3ZlcmZsb3dSZWN0SW5S
ZWdpb24odGhpcyk7CisKKyAgICBMYXlvdXRQb2ludCBvZmZzZXQoYm9yZGVyTGVmdCgpICsgcGFk
ZGluZ0xlZnQoKSwgYm9yZGVyVG9wKCkgKyBwYWRkaW5nVG9wKCkpOworICAgIHZpc3VhbE92ZXJm
bG93Lm1vdmVCeShvZmZzZXQpOworICAgIAorICAgIHZpc3VhbE92ZXJmbG93LnVuaXRlKFJlbmRl
ckJsb2NrOjp2aXN1YWxPdmVyZmxvd1JlY3QoKSk7CisgICAgcmV0dXJuIHZpc3VhbE92ZXJmbG93
OworfQorCiBMYXlvdXRSZWN0IFJlbmRlclJlZ2lvbjo6b3ZlcmZsb3dSZWN0Rm9yRmxvd1RocmVh
ZFBvcnRpb24oY29uc3QgTGF5b3V0UmVjdCYgZmxvd1RocmVhZFBvcnRpb25SZWN0LCBib29sIGlz
Rmlyc3RQb3J0aW9uLCBib29sIGlzTGFzdFBvcnRpb24sIE92ZXJmbG93VHlwZSBvdmVyZmxvd1R5
cGUpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVmFsaWQoKSk7CkBAIC0yMjksNTQgKzI0NCw2IEBA
IGJvb2wgUmVuZGVyUmVnaW9uOjppc0xhc3RSZWdpb24oKSBjb25zdAogICAgIHJldHVybiBtX2Zs
b3dUaHJlYWQtPmxhc3RSZWdpb24oKSA9PSB0aGlzOwogfQogCi1zdGF0aWMgYm9vbCBzaG91bGRQ
YWludFJlZ2lvbkNvbnRlbnRzSW5QaGFzZShQYWludFBoYXNlIHBoYXNlKQotewotICAgIHJldHVy
biBwaGFzZSA9PSBQYWludFBoYXNlQmxvY2tCYWNrZ3JvdW5kCi0gICAgICAgIHx8IHBoYXNlID09
IFBhaW50UGhhc2VDaGlsZEJsb2NrQmFja2dyb3VuZAotICAgICAgICB8fCBwaGFzZSA9PSBQYWlu
dFBoYXNlU2VsZWN0aW9uCi0gICAgICAgIHx8IHBoYXNlID09IFBhaW50UGhhc2VUZXh0Q2xpcDsK
LX0KLQotdm9pZCBSZW5kZXJSZWdpb246OnBhaW50T2JqZWN0KFBhaW50SW5mbyYgcGFpbnRJbmZv
LCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCi17Ci0gICAgaWYgKHN0eWxlKCkudmlz
aWJpbGl0eSgpICE9IFZJU0lCTEUpCi0gICAgICAgIHJldHVybjsKLQotICAgIFJlbmRlckJsb2Nr
Rmxvdzo6cGFpbnRPYmplY3QocGFpbnRJbmZvLCBwYWludE9mZnNldCk7Ci0KLSAgICBpZiAoIWlz
VmFsaWQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgLy8gV2UgZG8gbm90IHdhbnQgdG8gcGFp
bnQgYSByZWdpb24ncyBjb250ZW50cyBtdWx0aXBsZSB0aW1lcyAoZm9yIGVhY2ggcGFpbnQgcGhh
c2Ugb2YgdGhlIHJlZ2lvbiBvYmplY3QpLgotICAgIC8vIFRodXMsIHdlIG9ubHkgcGFpbnQgdGhl
IHJlZ2lvbidzIGNvbnRlbnRzIGluIGNlcnRhaW4gcGhhc2VzLgotICAgIGlmICghc2hvdWxkUGFp
bnRSZWdpb25Db250ZW50c0luUGhhc2UocGFpbnRJbmZvLnBoYXNlKSkKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgLy8gRGVsZWdhdGUgdGhlIHBhaW50aW5nIG9mIGEgcmVnaW9uJ3MgY29udGVudHMg
dG8gUmVuZGVyRmxvd1RocmVhZC4KLSAgICAvLyBSZW5kZXJGbG93VGhyZWFkIGlzIGEgc2VsZiBw
YWludGluZyBsYXllciBiZWNhdXNlIGl0J3MgYSBwb3NpdGlvbmVkIG9iamVjdC4KLSAgICAvLyBS
ZW5kZXJGbG93VGhyZWFkIHBhaW50cyBpdHMgY2hpbGRyZW4sIHRoZSBjb2xsZWN0ZWQgb2JqZWN0
cy4KLSAgICBzZXRSZWdpb25PYmplY3RzUmVnaW9uU3R5bGUoKTsKLSAgICBtX2Zsb3dUaHJlYWQt
PnBhaW50Rmxvd1RocmVhZFBvcnRpb25JblJlZ2lvbihwYWludEluZm8sIHRoaXMsIGZsb3dUaHJl
YWRQb3J0aW9uUmVjdCgpLCBmbG93VGhyZWFkUG9ydGlvbk92ZXJmbG93UmVjdCgpLCBMYXlvdXRQ
b2ludChwYWludE9mZnNldC54KCkgKyBib3JkZXJMZWZ0KCkgKyBwYWRkaW5nTGVmdCgpLCBwYWlu
dE9mZnNldC55KCkgKyBib3JkZXJUb3AoKSArIHBhZGRpbmdUb3AoKSkpOwotICAgIHJlc3RvcmVS
ZWdpb25PYmplY3RzT3JpZ2luYWxTdHlsZSgpOwotfQotCi0vLyBIaXQgVGVzdGluZwotYm9vbCBS
ZW5kZXJSZWdpb246OmhpdFRlc3RDb250ZW50cyhjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVz
dCwgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9u
SW5Db250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0VGVz
dEFjdGlvbiBhY3Rpb24pCi17Ci0gICAgaWYgKCFpc1ZhbGlkKCkgfHwgYWN0aW9uICE9IEhpdFRl
c3RGb3JlZ3JvdW5kKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBMYXlvdXRSZWN0IGJv
dW5kc1JlY3QgPSBib3JkZXJCb3hSZWN0SW5SZWdpb24obG9jYXRpb25JbkNvbnRhaW5lci5yZWdp
b24oKSk7Ci0gICAgYm91bmRzUmVjdC5tb3ZlQnkoYWNjdW11bGF0ZWRPZmZzZXQpOwotICAgIGlm
ICh2aXNpYmxlVG9IaXRUZXN0aW5nKCkgJiYgbG9jYXRpb25JbkNvbnRhaW5lci5pbnRlcnNlY3Rz
KGJvdW5kc1JlY3QpKSB7Ci0gICAgICAgIGlmIChtX2Zsb3dUaHJlYWQtPmhpdFRlc3RGbG93VGhy
ZWFkUG9ydGlvbkluUmVnaW9uKHRoaXMsIGZsb3dUaHJlYWRQb3J0aW9uUmVjdCgpLCBmbG93VGhy
ZWFkUG9ydGlvbk92ZXJmbG93UmVjdCgpLCByZXF1ZXN0LCByZXN1bHQsCi0gICAgICAgICAgICBs
b2NhdGlvbkluQ29udGFpbmVyLCBMYXlvdXRQb2ludChhY2N1bXVsYXRlZE9mZnNldC54KCkgKyBi
b3JkZXJMZWZ0KCkgKyBwYWRkaW5nTGVmdCgpLCBhY2N1bXVsYXRlZE9mZnNldC55KCkgKyBib3Jk
ZXJUb3AoKSArIHBhZGRpbmdUb3AoKSkpKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAg
fQotCi0gICAgcmV0dXJuIGZhbHNlOwotfQotCiB2b2lkIFJlbmRlclJlZ2lvbjo6Y2hlY2tSZWdp
b25TdHlsZSgpCiB7CiAgICAgQVNTRVJUKG1fZmxvd1RocmVhZCk7CkBAIC00MDUsMjUgKzM3Miwy
MiBAQCB2b2lkIFJlbmRlclJlZ2lvbjo6Y29tcHV0ZU92ZXJmbG93RnJvbUZsb3dUaHJlYWQoKQog
CiB2b2lkIFJlbmRlclJlZ2lvbjo6cmVwYWludEZsb3dUaHJlYWRDb250ZW50KGNvbnN0IExheW91
dFJlY3QmIHJlcGFpbnRSZWN0LCBib29sIGltbWVkaWF0ZSkgY29uc3QKIHsKLSAgICByZXBhaW50
Rmxvd1RocmVhZENvbnRlbnRSZWN0YW5nbGUocmVwYWludFJlY3QsIGltbWVkaWF0ZSwgZmxvd1Ro
cmVhZFBvcnRpb25SZWN0KCksIGZsb3dUaHJlYWRQb3J0aW9uT3ZlcmZsb3dSZWN0KCksIGNvbnRl
bnRCb3hSZWN0KCkubG9jYXRpb24oKSk7CisgICAgcmVwYWludEZsb3dUaHJlYWRDb250ZW50UmVj
dGFuZ2xlKHJlcGFpbnRSZWN0LCBpbW1lZGlhdGUsIGZsb3dUaHJlYWRQb3J0aW9uUmVjdCgpLCBj
b250ZW50Qm94UmVjdCgpLmxvY2F0aW9uKCkpOwogfQogCi12b2lkIFJlbmRlclJlZ2lvbjo6cmVw
YWludEZsb3dUaHJlYWRDb250ZW50UmVjdGFuZ2xlKGNvbnN0IExheW91dFJlY3QmIHJlcGFpbnRS
ZWN0LCBib29sIGltbWVkaWF0ZSwgY29uc3QgTGF5b3V0UmVjdCYgZmxvd1RocmVhZFBvcnRpb25S
ZWN0LCBjb25zdCBMYXlvdXRSZWN0JiBmbG93VGhyZWFkUG9ydGlvbk92ZXJmbG93UmVjdCwgY29u
c3QgTGF5b3V0UG9pbnQmIHJlZ2lvbkxvY2F0aW9uKSBjb25zdAordm9pZCBSZW5kZXJSZWdpb246
OnJlcGFpbnRGbG93VGhyZWFkQ29udGVudFJlY3RhbmdsZShjb25zdCBMYXlvdXRSZWN0JiByZXBh
aW50UmVjdCwgYm9vbCBpbW1lZGlhdGUsIGNvbnN0IExheW91dFJlY3QmIGZsb3dUaHJlYWRQb3J0
aW9uUmVjdCwgY29uc3QgTGF5b3V0UG9pbnQmIHJlZ2lvbkxvY2F0aW9uKSBjb25zdAogewogICAg
IEFTU0VSVChpc1ZhbGlkKCkpOwogCiAgICAgLy8gV2Ugb25seSBoYXZlIHRvIGlzc3VlIGEgcmVw
YWludCBpbiB0aGlzIHJlZ2lvbiBpZiB0aGUgcmVnaW9uIHJlY3QgaW50ZXJzZWN0cyB0aGUgcmVw
YWludCByZWN0LgogICAgIExheW91dFJlY3QgZmxpcHBlZEZsb3dUaHJlYWRQb3J0aW9uUmVjdChm
bG93VGhyZWFkUG9ydGlvblJlY3QpOwotICAgIExheW91dFJlY3QgZmxpcHBlZEZsb3dUaHJlYWRQ
b3J0aW9uT3ZlcmZsb3dSZWN0KGZsb3dUaHJlYWRQb3J0aW9uT3ZlcmZsb3dSZWN0KTsKICAgICBm
bG93VGhyZWFkKCktPmZsaXBGb3JXcml0aW5nTW9kZShmbGlwcGVkRmxvd1RocmVhZFBvcnRpb25S
ZWN0KTsgLy8gUHV0IHRoZSByZWdpb24gcmVjdHMgaW50byBwaHlzaWNhbCBjb29yZGluYXRlcy4K
LSAgICBmbG93VGhyZWFkKCktPmZsaXBGb3JXcml0aW5nTW9kZShmbGlwcGVkRmxvd1RocmVhZFBv
cnRpb25PdmVyZmxvd1JlY3QpOwotCi0gICAgTGF5b3V0UmVjdCBjbGlwcGVkUmVjdChyZXBhaW50
UmVjdCk7Ci0gICAgY2xpcHBlZFJlY3QuaW50ZXJzZWN0KGZsaXBwZWRGbG93VGhyZWFkUG9ydGlv
bk92ZXJmbG93UmVjdCk7Ci0gICAgaWYgKGNsaXBwZWRSZWN0LmlzRW1wdHkoKSkKKyAgICAKKyAg
ICBpZiAocmVwYWludFJlY3QuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBQ
dXQgdGhlIHJlZ2lvbiByZWN0IGludG8gdGhlIHJlZ2lvbidzIHBoeXNpY2FsIGNvb3JkaW5hdGUg
c3BhY2UuCisgICAgTGF5b3V0UmVjdCBjbGlwcGVkUmVjdChyZXBhaW50UmVjdCk7CiAgICAgY2xp
cHBlZFJlY3Quc2V0TG9jYXRpb24ocmVnaW9uTG9jYXRpb24gKyAoY2xpcHBlZFJlY3QubG9jYXRp
b24oKSAtIGZsaXBwZWRGbG93VGhyZWFkUG9ydGlvblJlY3QubG9jYXRpb24oKSkpOwogCiAgICAg
Ly8gTm93IHN3aXRjaCB0byB0aGUgcmVnaW9uJ3Mgd3JpdGluZyBtb2RlIGNvb3JkaW5hdGUgc3Bh
Y2UgYW5kIGxldCBpdCByZXBhaW50IGl0c2VsZi4KQEAgLTYxMSw5ICs1NzUsOSBAQCB2b2lkIFJl
bmRlclJlZ2lvbjo6cmVzdG9yZVJlZ2lvbk9iamVjdHNPcmlnaW5hbFN0eWxlKCkKIAogdm9pZCBS
ZW5kZXJSZWdpb246Omluc2VydGVkSW50b1RyZWUoKQogewotICAgIFJlbmRlckJsb2NrRmxvdzo6
aW5zZXJ0ZWRJbnRvVHJlZSgpOwotCiAgICAgYXR0YWNoUmVnaW9uKCk7CisgICAgaWYgKGlzVmFs
aWQoKSkKKwlSZW5kZXJCbG9ja0Zsb3c6Omluc2VydGVkSW50b1RyZWUoKTsKIH0KIAogdm9pZCBS
ZW5kZXJSZWdpb246OndpbGxCZVJlbW92ZWRGcm9tVHJlZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUmVnaW9uLmgKaW5kZXggMTc2ODY0Ni4uZjZkODFmZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaApAQCAtNDksOCArNDksNiBAQCBjbGFzcyBSZW5kZXJS
ZWdpb24gOiBwdWJsaWMgUmVuZGVyQmxvY2tGbG93IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJv
b2wgaXNSZW5kZXJSZWdpb24oKSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVybiB0cnVlOyB9
CiAKLSAgICB2aXJ0dWFsIGJvb2wgaGl0VGVzdENvbnRlbnRzKGNvbnN0IEhpdFRlc3RSZXF1ZXN0
JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRpb25JbkNvbnRh
aW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9u
KSBPVkVSUklERTsKLQogICAgIHZpcnR1YWwgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZl
cmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSk7CiAKICAgICB2b2lkIHNldEZsb3dU
aHJlYWRQb3J0aW9uUmVjdChjb25zdCBMYXlvdXRSZWN0JiByZWN0KSB7IG1fZmxvd1RocmVhZFBv
cnRpb25SZWN0ID0gcmVjdDsgfQpAQCAtMTUwLDYgKzE0OCw5IEBAIHB1YmxpYzoKIAogICAgIExh
eW91dFJlY3QgcmVjdEZsb3dQb3J0aW9uRm9yQm94KGNvbnN0IFJlbmRlckJveCosIGNvbnN0IExh
eW91dFJlY3QmKSBjb25zdDsKIAorICAgIHZvaWQgc2V0UmVnaW9uT2JqZWN0c1JlZ2lvblN0eWxl
KCk7CisgICAgdm9pZCByZXN0b3JlUmVnaW9uT2JqZWN0c09yaWdpbmFsU3R5bGUoKTsKKwogICAg
IHZpcnR1YWwgYm9vbCBjYW5IYXZlQ2hpbGRyZW4oKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBm
YWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBjYW5IYXZlR2VuZXJhdGVkQ2hpbGRyZW4oKSBjb25z
dCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBWaXNpYmxlUG9zaXRpb24g
cG9zaXRpb25Gb3JQb2ludChjb25zdCBMYXlvdXRQb2ludCYpIE9WRVJSSURFOwpAQCAtMTYwLDkg
KzE2MSw2IEBAIHByb3RlY3RlZDoKIAogICAgIFJlbmRlck92ZXJmbG93KiBlbnN1cmVPdmVyZmxv
d0ZvckJveChjb25zdCBSZW5kZXJCb3gqKTsKIAotICAgIHZvaWQgc2V0UmVnaW9uT2JqZWN0c1Jl
Z2lvblN0eWxlKCk7Ci0gICAgdm9pZCByZXN0b3JlUmVnaW9uT2JqZWN0c09yaWdpbmFsU3R5bGUo
KTsKLQogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpIE9W
RVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRocyhM
YXlvdXRVbml0JiBtaW5Mb2dpY2FsV2lkdGgsIExheW91dFVuaXQmIG1heExvZ2ljYWxXaWR0aCkg
Y29uc3QgT1ZFUlJJREU7CiAKQEAgLTE3MCwxMSArMTY4LDEwIEBAIHByb3RlY3RlZDoKICAgICAg
ICAgTGF5b3V0T3ZlcmZsb3cgPSAwLAogICAgICAgICBWaXN1YWxPdmVyZmxvdwogICAgIH07Cisg
ICAgdmlydHVhbCBMYXlvdXRSZWN0IHZpc3VhbE92ZXJmbG93UmVjdCgpIGNvbnN0IE9WRVJSSURF
OwogICAgIExheW91dFJlY3Qgb3ZlcmZsb3dSZWN0Rm9yRmxvd1RocmVhZFBvcnRpb24oY29uc3Qg
TGF5b3V0UmVjdCYgZmxvd1RocmVhZFBvcnRpb25SZWN0LCBib29sIGlzRmlyc3RQb3J0aW9uLCBi
b29sIGlzTGFzdFBvcnRpb24sIE92ZXJmbG93VHlwZSkgY29uc3Q7Ci0KLSAgICB2b2lkIHJlcGFp
bnRGbG93VGhyZWFkQ29udGVudFJlY3RhbmdsZShjb25zdCBMYXlvdXRSZWN0JiByZXBhaW50UmVj
dCwgYm9vbCBpbW1lZGlhdGUsIGNvbnN0IExheW91dFJlY3QmIGZsb3dUaHJlYWRQb3J0aW9uUmVj
dCwKLSAgICAgICAgY29uc3QgTGF5b3V0UmVjdCYgZmxvd1RocmVhZFBvcnRpb25PdmVyZmxvd1Jl
Y3QsIGNvbnN0IExheW91dFBvaW50JiByZWdpb25Mb2NhdGlvbikgY29uc3Q7Ci0KKyAgICB2b2lk
IHJlcGFpbnRGbG93VGhyZWFkQ29udGVudFJlY3RhbmdsZShjb25zdCBMYXlvdXRSZWN0JiByZXBh
aW50UmVjdCwgYm9vbCBpbW1lZGlhdGUsIGNvbnN0IExheW91dFJlY3QmIGZsb3dUaHJlYWRQb3J0
aW9uUmVjdCwgY29uc3QgTGF5b3V0UG9pbnQmIHJlZ2lvbkxvY2F0aW9uKSBjb25zdDsKKyAgICAg
CiAgICAgdmlydHVhbCBib29sIHNob3VsZEhhdmVBdXRvTG9naWNhbEhlaWdodCgpIGNvbnN0Owog
CiAgICAgdm9pZCBjb21wdXRlT3ZlcmZsb3dGcm9tRmxvd1RocmVhZCgpOwpAQCAtMTg2LDggKzE4
Myw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHdpbGxCZVJlbW92ZWRGcm9tVHJlZSgp
IE9WRVJSSURFOwogCiAgICAgdmlydHVhbCB2b2lkIGxheW91dEJsb2NrKGJvb2wgcmVsYXlvdXRD
aGlsZHJlbiwgTGF5b3V0VW5pdCBwYWdlTG9naWNhbEhlaWdodCA9IDApIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgdm9pZCBwYWludE9iamVjdChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYp
IE9WRVJSSURFOwotCisgICAgCiAgICAgdmlydHVhbCB2b2lkIGluc3RhbGxGbG93VGhyZWFkKCk7
CiAKICAgICBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBjb21wdXRlU3R5bGVJblJlZ2lvbihjb25z
dCBSZW5kZXJPYmplY3QqKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>